(function ($hx_exports, $global) { "use strict"; var $hx_script = (function (exports, global) { // Generated by Haxe 4.3.3 (function ($hx_exports, $global) { "use strict"; $hx_exports["lime"] = $hx_exports["lime"] || {}; var $hxClasses = {},$estr = function() { return js_Boot.__string_rec(this,''); },$hxEnums = $hxEnums || {},$_; function $extend(from, fields) { var proto = Object.create(from); for (var name in fields) proto[name] = fields[name]; if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString; return proto; } var lime_app_IModule = function() { }; $hxClasses["lime.app.IModule"] = lime_app_IModule; lime_app_IModule.__name__ = "lime.app.IModule"; lime_app_IModule.__isInterface__ = true; lime_app_IModule.prototype = { __registerLimeModule: null ,__unregisterLimeModule: 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 ,__registerLimeModule: function(application) { } ,__unregisterLimeModule: function(application) { } ,__class__: lime_app_Module }; var lime__$internal_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_media_AudioManager.init(); this.accelerometer = lime_system_Sensor.registerSensor(lime_system_SensorType.ACCELEROMETER,0); }; $hxClasses["lime._internal.backend.html5.HTML5Application"] = lime__$internal_backend_html5_HTML5Application; lime__$internal_backend_html5_HTML5Application.__name__ = "lime._internal.backend.html5.HTML5Application"; lime__$internal_backend_html5_HTML5Application.prototype = { accelerometer: null ,currentUpdate: null ,deltaTime: null ,framePeriod: null ,gameDeviceCache: null ,hidden: null ,lastUpdate: null ,nextUpdate: null ,parent: null ,convertKeyCode: function(keyCode) { if(keyCode >= 65 && keyCode <= 90) { return keyCode + 32; } switch(keyCode) { case 12: return 1073741980; case 16: return 1073742049; case 17: return 1073742048; case 18: return 1073742050; case 19: return 1073741896; case 20: return 1073741881; case 33: return 1073741899; case 34: return 1073741902; case 35: return 1073741901; case 36: return 1073741898; case 37: return 1073741904; case 38: return 1073741906; case 39: return 1073741903; case 40: return 1073741905; case 41: return 1073741943; case 43: return 1073741940; case 44: return 1073741894; case 45: return 1073741897; case 46: return 127; case 91: return 1073742051; case 92: return 1073742055; case 93: return 1073742055; case 95: return 1073742106; case 96: return 1073741922; case 97: return 1073741913; case 98: return 1073741914; case 99: return 1073741915; case 100: return 1073741916; case 101: return 1073741917; case 102: return 1073741918; case 103: return 1073741919; case 104: return 1073741920; case 105: return 1073741921; case 106: return 1073741909; case 107: return 1073741911; case 108: return 1073741923; case 109: return 1073741910; case 110: return 1073741923; case 111: return 1073741908; 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 127: return 1073741931; case 128: return 1073741932; case 129: return 1073741933; case 130: return 1073741934; case 131: return 1073741935; case 132: return 1073741936; case 133: return 1073741937; case 134: return 1073741938; case 135: return 1073741939; case 144: return 1073741907; case 145: return 1073741895; case 160: return 94; case 161: return 33; case 163: return 35; case 164: return 36; case 166: return 1073742094; case 167: return 1073742095; case 168: return 1073742097; case 169: return 41; case 170: return 42; case 171: return 96; case 172: return 1073741898; case 173: return 45; case 174: return 1073741953; case 175: return 1073741952; case 176: return 1073742082; case 177: return 1073742083; case 178: return 1073742084; case 179: return 1073742085; case 180: return 1073742089; case 181: return 1073742086; case 182: return 1073741953; case 183: return 1073741952; 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 193: return 63; case 194: return 1073741923; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39; case 223: return 96; case 224: return 1073742051; case 226: return 92; } return keyCode; } ,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); var o = window; if(Object.prototype.hasOwnProperty.call(o,"Accelerometer")) { window.addEventListener("devicemotion",$bind(this,this.handleSensorEvent),false); } if (!CanvasRenderingContext2D.prototype.isPointInStroke) { CanvasRenderingContext2D.prototype.isPointInStroke = function (path, x, y) { return false; }; } if (!CanvasRenderingContext2D.prototype.isPointInPath) { CanvasRenderingContext2D.prototype.isPointInPath = function (path, x, y) { return false; }; } if ('performance' in window == false) { window.performance = {}; } if ('now' in window.performance == false) { var offset = Date.now(); if (performance.timing && performance.timing.navigationStart) { offset = performance.timing.navigationStart } window.performance.now = function now() { return Date.now() - offset; } } 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() { } ,handleApplicationEvent: function(__) { var _g = 0; var _g1 = this.parent.__windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; $window.__backend.updateSize(); } this.updateGameDevices(); this.currentUpdate = new Date().getTime(); if(this.currentUpdate >= this.nextUpdate) { this.deltaTime = this.currentUpdate - this.lastUpdate; var _g = 0; var _g1 = this.parent.__windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; this.parent.onUpdate.dispatch(this.deltaTime | 0); if($window.context != null) { $window.onRender.dispatch($window.context); } } if(this.framePeriod < 0) { this.nextUpdate = this.currentUpdate; } else { this.nextUpdate = this.currentUpdate - this.currentUpdate % this.framePeriod + this.framePeriod; } this.lastUpdate = this.currentUpdate; } window.requestAnimationFrame($bind(this,this.handleApplicationEvent)); } ,handleKeyEvent: function(event) { if(this.parent.__window != null) { var keyCode = this.convertKeyCode(event.keyCode != null ? event.keyCode : event.which); var modifier = (event.shiftKey ? 3 : 0) | (event.ctrlKey ? 192 : 0) | (event.altKey ? 768 : 0) | (event.metaKey ? 3072 : 0); var timestamp = haxe_Int64Helper.fromFloat(event.timeStamp); if(event.type == "keydown") { this.parent.__window.onKeyDown.dispatch(keyCode,modifier); this.parent.__window.onKeyDownPrecise.dispatch(keyCode,modifier,timestamp); if((this.parent.__window.onKeyDown.canceled || this.parent.__window.onKeyDownPrecise.canceled) && event.cancelable) { event.preventDefault(); } } else { this.parent.__window.onKeyUp.dispatch(keyCode,modifier); this.parent.__window.onKeyUpPrecise.dispatch(keyCode,modifier,timestamp); if((this.parent.__window.onKeyUp.canceled || this.parent.__window.onKeyUpPrecise.canceled) && event.cancelable) { event.preventDefault(); } } } } ,handleSensorEvent: function(event) { this.accelerometer.onUpdate.dispatch(event.accelerationIncludingGravity.x,event.accelerationIncludingGravity.y,event.accelerationIncludingGravity.z); } ,handleWindowEvent: function(event) { if(this.parent.__window != null) { switch(event.type) { case "beforeunload": break; case "blur": if(!this.hidden) { this.parent.__window.onFocusOut.dispatch(); this.parent.__window.onDeactivate.dispatch(); this.hidden = true; } break; case "focus": if(this.hidden) { this.parent.__window.onFocusIn.dispatch(); this.parent.__window.onActivate.dispatch(); this.hidden = false; } break; case "resize": this.parent.__window.__backend.handleResizeEvent(event); break; case "visibilitychange": if(window.document.hidden) { if(!this.hidden) { this.parent.__window.onFocusOut.dispatch(); this.parent.__window.onDeactivate.dispatch(); this.hidden = true; } } else if(this.hidden) { this.parent.__window.onFocusIn.dispatch(); this.parent.__window.onActivate.dispatch(); this.hidden = false; } break; } } } ,updateGameDevices: function() { var devices = lime_ui_Joystick.__getDeviceData(); if(devices == null) { return; } var id; var gamepad; var joystick; var data; var cache; var _g = 0; var _g1 = devices.length; while(_g < _g1) { var i = _g++; id = i; data = devices[id]; if(data == null) { continue; } if(!this.gameDeviceCache.h.hasOwnProperty(id)) { cache = new lime__$internal_backend_html5_GameDeviceData(); cache.id = id; cache.connected = data.connected; var _g2 = 0; var _g3 = data.buttons.length; while(_g2 < _g3) { var i1 = _g2++; cache.buttons.push(data.buttons[i1].value); } var _g4 = 0; var _g5 = data.axes.length; while(_g4 < _g5) { var i2 = _g4++; 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 _g6 = 0; var _g7 = data.buttons.length; while(_g6 < _g7) { var i3 = _g6++; 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; } var timestamp = haxe_Int64Helper.fromFloat(window.performance.now()); if(value > 0) { gamepad.onButtonDown.dispatch(button); gamepad.onButtonDownPrecise.dispatch(button,timestamp); } else { gamepad.onButtonUp.dispatch(button); gamepad.onButtonUpPrecise.dispatch(button,timestamp); } } } cache.buttons[i3] = value; } } var _g8 = 0; var _g9 = data.axes.length; while(_g8 < _g9) { var i4 = _g8++; 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__$internal_backend_html5_HTML5Application }; var lime_app_Application = function() { this.onCreateWindow = new lime_app__$Event_$lime_$ui_$Window_$Void(); 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.meta = new haxe_ds_StringMap(); this.modules = []; this.__windowByID = new haxe_ds_IntMap(); this.__windows = []; this.__backend = new lime__$internal_backend_html5_HTML5Application(this); this.__registerLimeModule(this); this.__preloader = new lime_utils_Preloader(); this.__preloader.onProgress.add($bind(this,this.onPreloadProgress)); this.__preloader.onComplete.add($bind(this,this.onPreloadComplete)); }; $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,{ meta: null ,modules: null ,onUpdate: null ,onCreateWindow: null ,preloader: null ,window: null ,windows: null ,__backend: null ,__preloader: null ,__window: null ,__windowByID: null ,__windows: null ,addModule: function(module) { module.__registerLimeModule(this); this.modules.push(module); } ,createWindow: function(attributes) { var $window = this.__createWindow(attributes); this.__addWindow($window); return $window; } ,exec: function() { lime_app_Application.current = this; return this.__backend.exec(); } ,onGamepadAxisMove: function(gamepad,axis,value) { } ,onGamepadButtonDown: function(gamepad,button) { } ,onGamepadButtonUp: function(gamepad,button) { } ,onGamepadButtonDownPrecise: function(gamepad,button,timestamp) { } ,onGamepadButtonUpPrecise: function(gamepad,button,timestamp) { } ,onGamepadConnect: function(gamepad) { } ,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,x,y) { } ,onKeyDown: function(keyCode,modifier) { } ,onKeyUp: function(keyCode,modifier) { } ,onKeyDownPrecise: function(keyCode,modifier,timestamp) { } ,onKeyUpPrecise: function(keyCode,modifier,timestamp) { } ,onModuleExit: function(code) { } ,onMouseDown: function(x,y,button) { } ,onMouseMove: function(x,y) { } ,onMouseMoveRelative: function(x,y) { } ,onMouseUp: function(x,y,button) { } ,onMouseWheel: function(deltaX,deltaY,deltaMode) { } ,onPreloadComplete: function() { } ,onPreloadProgress: function(loaded,total) { } ,onRenderContextLost: function() { } ,onRenderContextRestored: function(context) { } ,onTextEdit: function(text,start,length) { } ,onTextInput: function(text) { } ,onTouchCancel: function(touch) { } ,onTouchEnd: function(touch) { } ,onTouchMove: function(touch) { } ,onTouchStart: function(touch) { } ,onWindowActivate: function() { } ,onWindowClose: function() { } ,onWindowCreate: function() { } ,onWindowDeactivate: function() { } ,onWindowDropFile: function(file) { } ,onWindowEnter: function() { } ,onWindowExpose: function() { } ,onWindowFocusIn: function() { } ,onWindowFocusOut: function() { } ,onWindowFullscreen: function() { } ,onWindowLeave: function() { } ,onWindowMove: function(x,y) { } ,onWindowMinimize: function() { } ,onWindowResize: function(width,height) { } ,onWindowRestore: function() { } ,removeModule: function(module) { if(module != null) { module.__unregisterLimeModule(this); HxOverrides.remove(this.modules,module); } } ,render: function(context) { } ,update: function(deltaTime) { } ,__addWindow: function($window) { if($window != null) { this.__windows.push($window); this.__windowByID.h[$window.id] = $window; var _g = this; var window1 = $window; var tmp = function() { _g.__onWindowClose(window1); }; $window.onClose.add(tmp,false,-10000); if(this.__window == null) { this.__window = $window; $window.onActivate.add($bind(this,this.onWindowActivate)); $window.onRenderContextLost.add($bind(this,this.onRenderContextLost)); $window.onRenderContextRestored.add($bind(this,this.onRenderContextRestored)); $window.onDeactivate.add($bind(this,this.onWindowDeactivate)); $window.onDropFile.add($bind(this,this.onWindowDropFile)); $window.onEnter.add($bind(this,this.onWindowEnter)); $window.onExpose.add($bind(this,this.onWindowExpose)); $window.onFocusIn.add($bind(this,this.onWindowFocusIn)); $window.onFocusOut.add($bind(this,this.onWindowFocusOut)); $window.onFullscreen.add($bind(this,this.onWindowFullscreen)); $window.onKeyDown.add($bind(this,this.onKeyDown)); $window.onKeyUp.add($bind(this,this.onKeyUp)); $window.onKeyDownPrecise.add($bind(this,this.onKeyDownPrecise)); $window.onKeyUpPrecise.add($bind(this,this.onKeyUpPrecise)); $window.onLeave.add($bind(this,this.onWindowLeave)); $window.onMinimize.add($bind(this,this.onWindowMinimize)); $window.onMouseDown.add($bind(this,this.onMouseDown)); $window.onMouseMove.add($bind(this,this.onMouseMove)); $window.onMouseMoveRelative.add($bind(this,this.onMouseMoveRelative)); $window.onMouseUp.add($bind(this,this.onMouseUp)); $window.onMouseWheel.add($bind(this,this.onMouseWheel)); $window.onMove.add($bind(this,this.onWindowMove)); $window.onRender.add($bind(this,this.render)); $window.onResize.add($bind(this,this.onWindowResize)); $window.onRestore.add($bind(this,this.onWindowRestore)); $window.onTextEdit.add($bind(this,this.onTextEdit)); $window.onTextInput.add($bind(this,this.onTextInput)); this.onWindowCreate(); } this.onCreateWindow.dispatch($window); } } ,__createWindow: function(attributes) { var $window = new lime_ui_Window(this,attributes); if($window.id == -1) { return null; } return $window; } ,__registerLimeModule: function(application) { application.onUpdate.add($bind(this,this.update)); application.onExit.add($bind(this,this.onModuleExit),false,0); application.onExit.add($bind(this,this.__onModuleExit),false,0); var gamepad = lime_ui_Gamepad.devices.iterator(); while(gamepad.hasNext()) { var gamepad1 = gamepad.next(); this.__onGamepadConnect(gamepad1); } lime_ui_Gamepad.onConnect.add($bind(this,this.__onGamepadConnect)); var joystick = lime_ui_Joystick.devices.iterator(); while(joystick.hasNext()) { var joystick1 = joystick.next(); this.__onJoystickConnect(joystick1); } lime_ui_Joystick.onConnect.add($bind(this,this.__onJoystickConnect)); lime_ui_Touch.onCancel.add($bind(this,this.onTouchCancel)); 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)); } ,__removeWindow: function($window) { if($window != null && this.__windowByID.h.hasOwnProperty($window.id)) { if(this.__window == $window) { this.__window = null; } HxOverrides.remove(this.__windows,$window); this.__windowByID.remove($window.id); $window.close(); if(this.__windows.length == 0) { lime_system_System.exit(0); } } } ,__onGamepadConnect: function(gamepad) { this.onGamepadConnect(gamepad); var _g = this; var gamepad1 = gamepad; var tmp = function(axis,value) { _g.onGamepadAxisMove(gamepad1,axis,value); }; gamepad.onAxisMove.add(tmp); var _g1 = this; var gamepad2 = gamepad; var tmp = function(button) { _g1.onGamepadButtonDown(gamepad2,button); }; gamepad.onButtonDown.add(tmp); var _g2 = this; var gamepad3 = gamepad; var tmp = function(button) { _g2.onGamepadButtonUp(gamepad3,button); }; gamepad.onButtonUp.add(tmp); var _g3 = this; var gamepad4 = gamepad; var tmp = function(button,timestamp) { _g3.onGamepadButtonDownPrecise(gamepad4,button,timestamp); }; gamepad.onButtonDownPrecise.add(tmp); var _g4 = this; var gamepad5 = gamepad; var tmp = function(button,timestamp) { _g4.onGamepadButtonUpPrecise(gamepad5,button,timestamp); }; gamepad.onButtonUpPrecise.add(tmp); var _g5 = this; var gamepad6 = gamepad; var tmp = function() { _g5.onGamepadDisconnect(gamepad6); }; gamepad.onDisconnect.add(tmp); } ,__onJoystickConnect: function(joystick) { this.onJoystickConnect(joystick); var _g = this; var joystick1 = joystick; var tmp = function(axis,value) { _g.onJoystickAxisMove(joystick1,axis,value); }; joystick.onAxisMove.add(tmp); var _g1 = this; var joystick2 = joystick; var tmp = function(button) { _g1.onJoystickButtonDown(joystick2,button); }; joystick.onButtonDown.add(tmp); var _g2 = this; var joystick3 = joystick; var tmp = function(button) { _g2.onJoystickButtonUp(joystick3,button); }; joystick.onButtonUp.add(tmp); var _g3 = this; var joystick4 = joystick; var tmp = function() { _g3.onJoystickDisconnect(joystick4); }; joystick.onDisconnect.add(tmp); var _g4 = this; var joystick5 = joystick; var tmp = function(hat,position) { _g4.onJoystickHatMove(joystick5,hat,position); }; joystick.onHatMove.add(tmp); var _g5 = this; var joystick6 = joystick; var tmp = function(trackball,x,y) { _g5.onJoystickTrackballMove(joystick6,trackball,x,y); }; joystick.onTrackballMove.add(tmp); } ,__onModuleExit: function(code) { this.__backend.exit(); } ,__onWindowClose: function($window) { if(this.__window == $window) { this.onWindowClose(); } this.__removeWindow($window); } ,__unregisterLimeModule: function(application) { application.onUpdate.remove($bind(this,this.update)); application.onExit.remove($bind(this,this.__onModuleExit)); application.onExit.remove($bind(this,this.onModuleExit)); lime_ui_Gamepad.onConnect.remove($bind(this,this.__onGamepadConnect)); lime_ui_Joystick.onConnect.remove($bind(this,this.__onJoystickConnect)); lime_ui_Touch.onCancel.remove($bind(this,this.onTouchCancel)); lime_ui_Touch.onStart.remove($bind(this,this.onTouchStart)); lime_ui_Touch.onMove.remove($bind(this,this.onTouchMove)); lime_ui_Touch.onEnd.remove($bind(this,this.onTouchEnd)); this.onModuleExit(0); } ,get_preloader: function() { return this.__preloader; } ,get_window: function() { return this.__window; } ,get_windows: function() { return this.__windows; } ,__class__: lime_app_Application ,__properties__: {get_windows:"get_windows",get_window:"get_window",get_preloader:"get_preloader"} }); var ApplicationMain = function() { }; $hxClasses["ApplicationMain"] = ApplicationMain; ApplicationMain.__name__ = "ApplicationMain"; ApplicationMain.main = function() { lime_system_System.__registerEntryPoint("Funkin",ApplicationMain.create); }; ApplicationMain.create = function(config) { var app = new openfl_display_Application(); ManifestResources.init(config); app.meta.h["build"] = "3812"; app.meta.h["company"] = "ninjamuffin99"; app.meta.h["file"] = "Funkin"; app.meta.h["name"] = "Friday Night Funkin'"; app.meta.h["packageName"] = "com.funkin.fnf"; app.meta.h["version"] = "0.4.1"; var attributes = { allowHighDPI : true, alwaysOnTop : false, borderless : false, element : null, frameRate : 60, height : 720, hidden : false, maximized : false, minimized : false, parameters : { }, resizable : true, title : "Friday Night Funkin'", width : 1280, x : null, y : null}; attributes.context = { antialiasing : 0, background : 0, colorDepth : 32, depth : true, hardware : true, stencil : true, type : null, vsync : false}; if(app.__window == null) { if(config != null) { var _g = 0; var _g1 = Reflect.fields(config); while(_g < _g1.length) { var field = _g1[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(attributes,field)) { attributes[field] = Reflect.field(config,field); } else if(Object.prototype.hasOwnProperty.call(attributes.context,field)) { attributes.context[field] = Reflect.field(config,field); } } } } app.createWindow(attributes); var preloader = new openfl_display_Preloader(new funkin_ui_transition_preload_FunkinPreloader()); app.__preloader.onProgress.add(function(loaded,total) { preloader.update(loaded,total); }); app.__preloader.onComplete.add(function() { preloader.start(); }); var stage = app.__window.stage; var tmp = function() { ApplicationMain.start(stage); }; preloader.onComplete.add(tmp); var _g = 0; var _g1 = ManifestResources.preloadLibraries; while(_g < _g1.length) { var library = _g1[_g]; ++_g; app.__preloader.addLibrary(library); } var _g = 0; var _g1 = ManifestResources.preloadLibraryNames; while(_g < _g1.length) { var name = _g1[_g]; ++_g; app.__preloader.addLibraryName(name); } app.__preloader.load(); var result = app.exec(); }; ApplicationMain.start = function(stage) { if(stage.__uncaughtErrorEvents.__enabled) { try { Main.main(); stage.dispatchEvent(new openfl_events_Event("resize",false,false)); if(stage.window.__fullscreen) { stage.dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true)); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); stage.__handleError(e); } } else { Main.main(); stage.dispatchEvent(new openfl_events_Event("resize",false,false)); if(stage.window.__fullscreen) { stage.dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true)); } } }; var openfl_events_IEventDispatcher = function() { }; $hxClasses["openfl.events.IEventDispatcher"] = openfl_events_IEventDispatcher; openfl_events_IEventDispatcher.__name__ = "openfl.events.IEventDispatcher"; openfl_events_IEventDispatcher.__isInterface__ = true; 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.prototype = { __eventMap: null ,__iterators: null ,__targetDispatcher: null ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) { useWeakReference = false; } if(priority == null) { priority = 0; } if(useCapture == null) { useCapture = false; } if(listener == null) { return; } if(this.__eventMap == null) { this.__eventMap = new haxe_ds_StringMap(); this.__iterators = new haxe_ds_StringMap(); } if(!Object.prototype.hasOwnProperty.call(this.__eventMap.h,type)) { var list = []; list.push(new openfl_events__$EventDispatcher_Listener(listener,useCapture,priority)); var iterator = new openfl_events__$EventDispatcher_DispatchIterator(list); this.__eventMap.h[type] = list; this.__iterators.h[type] = [iterator]; } else { var list = this.__eventMap.h[type]; var _g = 0; var _g1 = list.length; while(_g < _g1) { var i = _g++; if(list[i].match(listener,useCapture)) { return; } } var iterators = this.__iterators.h[type]; var _g = 0; while(_g < iterators.length) { var iterator = iterators[_g]; ++_g; if(iterator.active) { iterator.copy(); } } this.__addListenerByPriority(list,new openfl_events__$EventDispatcher_Listener(listener,useCapture,priority)); } } ,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; } return Object.prototype.hasOwnProperty.call(this.__eventMap.h,type); } ,removeEventListener: function(type,listener,useCapture) { if(useCapture == null) { useCapture = false; } if(this.__eventMap == null || listener == null) { return; } var list = this.__eventMap.h[type]; if(list == null) { return; } var iterators = this.__iterators.h[type]; var _g = 0; var _g1 = list.length; while(_g < _g1) { var i = _g++; if(list[i].match(listener,useCapture)) { var _g2 = 0; while(_g2 < iterators.length) { var iterator = iterators[_g2]; ++_g2; iterator.remove(list[i],i); } list.splice(i,1); break; } } if(list.length == 0) { var _this = this.__eventMap; var key = type; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } var _this = this.__iterators; var key = type; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } var h = this.__eventMap.h; var inlStringMapValueIterator_h = h; var inlStringMapValueIterator_keys = Object.keys(h); var inlStringMapValueIterator_length = inlStringMapValueIterator_keys.length; var inlStringMapValueIterator_current = 0; if(inlStringMapValueIterator_current >= inlStringMapValueIterator_length) { this.__eventMap = null; this.__iterators = null; } } ,toString: function() { var c = js_Boot.getClass(this); var full = c.__name__; 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 true; } var type = event.type; var list = this.__eventMap.h[type]; if(list == null) { return 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 iterators = this.__iterators.h[type]; var iterator = iterators[0]; if(iterator.active) { iterator = new openfl_events__$EventDispatcher_DispatchIterator(list); iterators.push(iterator); } iterator.start(); var listener = iterator; while(listener.hasNext()) { var listener1 = listener.next(); if(listener1 == null) { continue; } if(listener1.useCapture == capture) { listener1.callback(event); if(event.__isCanceledNow) { break; } } } iterator.stop(); if(iterator != iterators[0]) { HxOverrides.remove(iterators,iterator); } else { iterator.reset(list); } return !event.isDefaultPrevented(); } ,__removeAllListeners: function() { this.__eventMap = null; this.__iterators = null; } ,__addListenerByPriority: function(list,listener) { var numElements = list.length; var addAtPosition = numElements; var _g = 0; var _g1 = numElements; while(_g < _g1) { var i = _g++; if(list[i].priority < listener.priority) { addAtPosition = i; break; } } list.splice(addAtPosition,0,listener); } ,__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.__isInterface__ = true; openfl_display_IBitmapDrawable.prototype = { __blendMode: null ,__drawableType: null ,__isMask: null ,__renderable: null ,__renderTransform: null ,__transform: null ,__worldAlpha: null ,__worldColorTransform: null ,__worldTransform: null ,__getBounds: null ,__update: null ,__updateTransforms: null ,__mask: null ,__scrollRect: null ,__class__: openfl_display_IBitmapDrawable }; var haxe_ds_Map = {}; haxe_ds_Map.set = function(this1,key,value) { this1.set(key,value); }; haxe_ds_Map.get = function(this1,key) { return this1.get(key); }; haxe_ds_Map.exists = function(this1,key) { return this1.exists(key); }; haxe_ds_Map.remove = function(this1,key) { return this1.remove(key); }; haxe_ds_Map.keys = function(this1) { return this1.keys(); }; haxe_ds_Map.iterator = function(this1) { return this1.iterator(); }; haxe_ds_Map.keyValueIterator = function(this1) { return this1.keyValueIterator(); }; haxe_ds_Map.copy = function(this1) { return this1.copy(); }; haxe_ds_Map.toString = function(this1) { return this1.toString(); }; haxe_ds_Map.clear = function(this1) { this1.clear(); }; haxe_ds_Map.arrayWrite = function(this1,k,v) { this1.set(k,v); return v; }; haxe_ds_Map.toStringMap = function(t) { return new haxe_ds_StringMap(); }; haxe_ds_Map.toIntMap = function(t) { return new haxe_ds_IntMap(); }; haxe_ds_Map.toEnumValueMapMap = function(t) { return new haxe_ds_EnumValueMap(); }; haxe_ds_Map.toObjectMap = function(t) { return new haxe_ds_ObjectMap(); }; haxe_ds_Map.fromStringMap = function(map) { return map; }; haxe_ds_Map.fromIntMap = function(map) { return map; }; haxe_ds_Map.fromObjectMap = function(map) { return map; }; var openfl_Vector = {}; openfl_Vector.__properties__ = {set_length:"set_length",get_length:"get_length",set_fixed:"set_fixed",get_fixed:"get_fixed"}; openfl_Vector.ofArray_Float = function(array) { var vector = openfl_Vector.toFloatVector(null); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; vector.set(i,array[i]); } return vector; }; openfl_Vector.ofArray_Int = function(array) { var vector = openfl_Vector.toIntVector(null); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; vector.set(i,array[i]); } return vector; }; openfl_Vector.concat = function(this1,vec) { return this1.concat(vec); }; openfl_Vector.copy = function(this1) { return this1.copy(); }; openfl_Vector.every = function(this1,callback,thisObject) { var _g = 0; var _g1 = this1.get_length(); while(_g < _g1) { var i = _g++; this1.__tempIndex = i; if(thisObject != null) { if(callback.apply(thisObject,[this1.get(i),i,this1]) == false) { break; } } else if(callback(this1.get(i),i,this1) == false) { break; } } return this1.__tempIndex == this1.get_length() - 1; }; openfl_Vector.filter = function(this1,callback) { return this1.filter(callback); }; openfl_Vector.get = function(this1,index) { return this1.get(index); }; openfl_Vector.indexOf = function(this1,searchElement,fromIndex) { if(fromIndex == null) { fromIndex = 0; } return this1.indexOf(searchElement,fromIndex); }; openfl_Vector.insertAt = function(this1,index,element) { this1.insertAt(index,element); }; openfl_Vector.iterator = function(this1) { return this1.iterator(); }; openfl_Vector.join = function(this1,sep) { if(sep == null) { sep = ","; } return this1.join(sep); }; openfl_Vector.lastIndexOf = function(this1,searchElement,fromIndex) { return this1.lastIndexOf(searchElement,fromIndex); }; openfl_Vector.pop = function(this1) { return this1.pop(); }; openfl_Vector.push = function(this1,value) { return this1.push(value); }; openfl_Vector.removeAt = function(this1,index) { return this1.removeAt(index); }; openfl_Vector.reverse = function(this1) { return this1.reverse(); }; openfl_Vector.set = function(this1,index,value) { return this1.set(index,value); }; openfl_Vector.shift = function(this1) { return this1.shift(); }; openfl_Vector.slice = function(this1,startIndex,endIndex) { if(startIndex == null) { startIndex = 0; } return this1.slice(startIndex,endIndex); }; openfl_Vector.some = function(this1,callback,thisObject) { var _g = 0; var _g1 = this1.get_length(); while(_g < _g1) { var i = _g++; this1.__tempIndex = i; if(thisObject != null) { if(callback.apply(thisObject,[this1.get(i),i,this1]) == true) { break; } } else if(callback(this1.get(i),i,this1)) { break; } if(i == this1.get_length() - 1) { this1.__tempIndex++; } } return this1.__tempIndex < this1.get_length() - 1; }; openfl_Vector.sort = function(this1,sortBehavior) { this1.sort(sortBehavior); }; openfl_Vector.splice = function(this1,startIndex,deleteCount) { var $l=arguments.length; var items = new Array($l>3?$l-3:0); for(var $i=3;$i<$l;++$i){items[$i-3]=arguments[$i];} this1.__tempIndex = startIndex; var _g_current = 0; var _g_args = items; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } return this1.splice(this1.__tempIndex,deleteCount); }; openfl_Vector.toString = function(this1) { if(this1 != null) { return this1.toString(); } else { return null; } }; openfl_Vector.unshift = function(this1,value) { this1.unshift(value); }; openfl_Vector.convert = function(vec) { return vec; }; openfl_Vector.toBoolVector = function(t,length,fixed,array) { return new openfl__$Vector_BoolVector(length,fixed,array); }; openfl_Vector.toIntVector = function(t,length,fixed,array) { return new openfl__$Vector_IntVector(length,fixed,array); }; openfl_Vector.toFloatVector = function(t,length,fixed,array) { return new openfl__$Vector_FloatVector(length,fixed,array,true); }; openfl_Vector.toFunctionVector = function(t,length,fixed,array) { return new openfl__$Vector_FunctionVector(length,fixed,array); }; openfl_Vector.toObjectVector = function(t,length,fixed,array) { return new openfl__$Vector_ObjectVector(length,fixed,array,true); }; openfl_Vector.toNullVector = function(t,length,fixed,array) { return new openfl__$Vector_ObjectVector(length,fixed,array,true); }; openfl_Vector.fromBoolVector = function(vector) { return vector; }; openfl_Vector.fromIntVector = function(vector) { return vector; }; openfl_Vector.fromFloatVector = function(vector) { return vector; }; openfl_Vector.fromFunctionVector = function(vector) { return vector; }; openfl_Vector.fromObjectVector = function(vector) { return vector; }; openfl_Vector.get_fixed = function(this1) { return this1.fixed; }; openfl_Vector.set_fixed = function(this1,value) { return this1.fixed = value; }; openfl_Vector.get_length = function(this1) { return this1.get_length(); }; openfl_Vector.set_length = function(this1,value) { return this1.set_length(value); }; var lime_utils_ObjectPool = function(create,clean,size) { this.__pool = new haxe_ds_ObjectMap(); this.activeObjects = 0; this.inactiveObjects = 0; this.__inactiveObject0 = null; this.__inactiveObject1 = null; this.__inactiveObjectList = new haxe_ds_List(); if(create != null) { this.create = create; } if(clean != null) { this.clean = clean; } if(size != null) { this.set_size(size); } }; $hxClasses["lime.utils.ObjectPool"] = lime_utils_ObjectPool; lime_utils_ObjectPool.__name__ = "lime.utils.ObjectPool"; lime_utils_ObjectPool.prototype = { activeObjects: null ,inactiveObjects: null ,__inactiveObject0: null ,__inactiveObject1: null ,__inactiveObjectList: null ,__pool: null ,__size: null ,add: function(object) { if(!this.__pool.exists(object)) { this.__pool.set(object,false); this.clean(object); if(this.__inactiveObject0 == null) { this.__inactiveObject0 = object; } else if(this.__inactiveObject1 == null) { this.__inactiveObject1 = object; } else { this.__inactiveObjectList.add(object); } this.inactiveObjects++; } } ,clean: function(object) { } ,clear: function() { this.__pool = new haxe_ds_ObjectMap(); this.activeObjects = 0; this.inactiveObjects = 0; this.__inactiveObject0 = null; this.__inactiveObject1 = null; this.__inactiveObjectList.clear(); } ,create: function() { return null; } ,get: function() { var object = null; if(this.inactiveObjects > 0) { var object1 = null; if(this.__inactiveObject0 != null) { object1 = this.__inactiveObject0; this.__inactiveObject0 = null; } else if(this.__inactiveObject1 != null) { object1 = this.__inactiveObject1; this.__inactiveObject1 = null; } else { object1 = this.__inactiveObjectList.pop(); if(this.__inactiveObjectList.length > 0) { this.__inactiveObject0 = this.__inactiveObjectList.pop(); } if(this.__inactiveObjectList.length > 0) { this.__inactiveObject1 = this.__inactiveObjectList.pop(); } } this.inactiveObjects--; this.activeObjects++; object = object1; } else if(this.__size == null || this.activeObjects < this.__size) { object = this.create(); if(object != null) { this.__pool.set(object,true); this.activeObjects++; } } return object; } ,release: function(object) { this.activeObjects--; if(this.__size == null || this.activeObjects + this.inactiveObjects < this.__size) { this.clean(object); if(this.__inactiveObject0 == null) { this.__inactiveObject0 = object; } else if(this.__inactiveObject1 == null) { this.__inactiveObject1 = object; } else { this.__inactiveObjectList.add(object); } this.inactiveObjects++; } else { this.__pool.remove(object); } } ,remove: function(object) { if(this.__pool.exists(object)) { this.__pool.remove(object); if(this.__inactiveObject0 == object) { this.__inactiveObject0 = null; this.inactiveObjects--; } else if(this.__inactiveObject1 == object) { this.__inactiveObject1 = null; this.inactiveObjects--; } else if(this.__inactiveObjectList.remove(object)) { this.inactiveObjects--; } else { this.activeObjects--; } } } ,__addInactive: function(object) { if(this.__inactiveObject0 == null) { this.__inactiveObject0 = object; } else if(this.__inactiveObject1 == null) { this.__inactiveObject1 = object; } else { this.__inactiveObjectList.add(object); } this.inactiveObjects++; } ,__getInactive: function() { var object = null; if(this.__inactiveObject0 != null) { object = this.__inactiveObject0; this.__inactiveObject0 = null; } else if(this.__inactiveObject1 != null) { object = this.__inactiveObject1; this.__inactiveObject1 = null; } else { object = this.__inactiveObjectList.pop(); if(this.__inactiveObjectList.length > 0) { this.__inactiveObject0 = this.__inactiveObjectList.pop(); } if(this.__inactiveObjectList.length > 0) { this.__inactiveObject1 = this.__inactiveObjectList.pop(); } } this.inactiveObjects--; this.activeObjects++; return object; } ,__removeInactive: function(count) { if(count <= 0 || this.inactiveObjects == 0) { return; } if(this.__inactiveObject0 != null) { this.__pool.remove(this.__inactiveObject0); this.__inactiveObject0 = null; this.inactiveObjects--; --count; } if(count == 0 || this.inactiveObjects == 0) { return; } if(this.__inactiveObject1 != null) { this.__pool.remove(this.__inactiveObject1); this.__inactiveObject1 = null; this.inactiveObjects--; --count; } if(count == 0 || this.inactiveObjects == 0) { return; } var _g_head = this.__inactiveObjectList.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var object = val; this.__pool.remove(object); this.__inactiveObjectList.remove(object); this.inactiveObjects--; --count; if(count == 0 || this.inactiveObjects == 0) { return; } } } ,get_size: function() { return this.__size; } ,set_size: function(value) { if(value == null) { this.__size = null; } else { var current = this.inactiveObjects + this.activeObjects; this.__size = value; if(current > value) { this.__removeInactive(current - value); } else if(value > current) { var object; var _g = 0; var _g1 = value - current; while(_g < _g1) { var i = _g++; object = this.create(); if(object != null) { this.__pool.set(object,false); this.__inactiveObjectList.add(object); this.inactiveObjects++; } else { break; } } } } return value; } ,__class__: lime_utils_ObjectPool ,__properties__: {set_size:"set_size",get_size:"get_size"} }; var haxe_IMap = function() { }; $hxClasses["haxe.IMap"] = haxe_IMap; haxe_IMap.__name__ = "haxe.IMap"; haxe_IMap.__isInterface__ = true; haxe_IMap.prototype = { get: null ,set: null ,exists: null ,remove: null ,keys: null ,iterator: null ,keyValueIterator: null ,copy: null ,toString: null ,clear: null ,__class__: haxe_IMap }; var haxe_ds_ObjectMap = function() { 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.assignId = function(obj) { return (obj.__id__ = $global.$haxeUID++); }; haxe_ds_ObjectMap.getId = function(obj) { return obj.__id__; }; haxe_ds_ObjectMap.prototype = { h: null ,set: function(key,value) { var id = key.__id__; if(id == null) { id = (key.__id__ = $global.$haxeUID++); } 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 new haxe_iterators_ArrayIterator(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__]; }}; } ,keyValueIterator: function() { return new haxe_iterators_MapKeyValueIterator(this); } ,copy: function() { var copied = new haxe_ds_ObjectMap(); var key = this.keys(); while(key.hasNext()) { var key1 = key.next(); copied.set(key1,this.h[key1.__id__]); } return copied; } ,toString: function() { var s_b = ""; s_b += "["; var it = this.keys(); var i = it; while(i.hasNext()) { var i1 = i.next(); s_b += Std.string(Std.string(i1)); s_b += " => "; s_b += Std.string(Std.string(this.h[i1.__id__])); if(it.hasNext()) { s_b += ", "; } } s_b += "]"; return s_b; } ,clear: function() { this.h = { __keys__ : { }}; } ,__class__: haxe_ds_ObjectMap }; var haxe_ds_List = function() { this.length = 0; }; $hxClasses["haxe.ds.List"] = haxe_ds_List; haxe_ds_List.__name__ = "haxe.ds.List"; haxe_ds_List.prototype = { h: null ,q: null ,length: null ,add: function(item) { var x = new haxe_ds__$List_ListNode(item,null); if(this.h == null) { this.h = x; } else { this.q.next = x; } this.q = x; this.length++; } ,push: function(item) { var x = new haxe_ds__$List_ListNode(item,this.h); this.h = x; if(this.q == null) { this.q = x; } this.length++; } ,first: function() { if(this.h == null) { return null; } else { return this.h.item; } } ,last: function() { if(this.q == null) { return null; } else { return this.q.item; } } ,pop: function() { if(this.h == null) { return null; } var x = this.h.item; this.h = this.h.next; if(this.h == null) { this.q = null; } this.length--; return x; } ,isEmpty: function() { return this.h == null; } ,clear: function() { this.h = null; this.q = null; this.length = 0; } ,remove: function(v) { var prev = null; var l = this.h; while(l != null) { if(l.item == v) { if(prev == null) { this.h = l.next; } else { prev.next = l.next; } if(this.q == l) { this.q = prev; } this.length--; return true; } prev = l; l = l.next; } return false; } ,iterator: function() { return new haxe_ds__$List_ListIterator(this.h); } ,keyValueIterator: function() { return new haxe_ds__$List_ListKeyValueIterator(this.h); } ,toString: function() { var s_b = ""; var first = true; var l = this.h; s_b += "{"; while(l != null) { if(first) { first = false; } else { s_b += ", "; } s_b += Std.string(Std.string(l.item)); l = l.next; } s_b += "}"; return s_b; } ,join: function(sep) { var s_b = ""; var first = true; var l = this.h; while(l != null) { if(first) { first = false; } else { s_b += sep == null ? "null" : "" + sep; } s_b += Std.string(l.item); l = l.next; } return s_b; } ,filter: function(f) { var l2 = new haxe_ds_List(); var l = this.h; while(l != null) { var v = l.item; l = l.next; if(f(v)) { l2.add(v); } } return l2; } ,map: function(f) { var b = new haxe_ds_List(); var l = this.h; while(l != null) { var v = l.item; l = l.next; b.add(f(v)); } return b; } ,__class__: haxe_ds_List }; var openfl_display_DisplayObject = function() { openfl_events_EventDispatcher.call(this); this.__drawableType = 1; this.__alpha = 1; this.__blendMode = 10; this.__cacheAsBitmap = false; this.__transform = new openfl_geom_Matrix(); this.__visible = true; this.__rotation = 0; this.__rotationSine = 0; this.__rotationCosine = 1; this.__scaleX = 1; this.__scaleY = 1; this.__worldAlpha = 1; this.__worldBlendMode = 10; this.__worldTransform = new openfl_geom_Matrix(); this.__worldColorTransform = new openfl_geom_ColorTransform(); this.__renderTransform = new openfl_geom_Matrix(); this.__worldVisible = true; this.set_name("instance" + ++openfl_display_DisplayObject.__instanceCount); if(openfl_display_DisplayObject.__initStage != null) { this.stage = openfl_display_DisplayObject.__initStage; openfl_display_DisplayObject.__initStage = null; this.stage.addChild(this); } }; $hxClasses["openfl.display.DisplayObject"] = openfl_display_DisplayObject; openfl_display_DisplayObject.__name__ = "openfl.display.DisplayObject"; openfl_display_DisplayObject.__interfaces__ = [openfl_display_IBitmapDrawable]; openfl_display_DisplayObject.__initStage = null; openfl_display_DisplayObject.__supportDOM = null; openfl_display_DisplayObject.__calculateAbsoluteTransform = function(local,parentTransform,target) { target.a = local.a * parentTransform.a + local.b * parentTransform.c; target.b = local.a * parentTransform.b + local.b * parentTransform.d; target.c = local.c * parentTransform.a + local.d * parentTransform.c; target.d = local.c * parentTransform.b + local.d * parentTransform.d; target.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx; target.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty; }; openfl_display_DisplayObject.__super__ = openfl_events_EventDispatcher; openfl_display_DisplayObject.prototype = $extend(openfl_events_EventDispatcher.prototype,{ opaqueBackground: null ,parent: null ,stage: null ,__alpha: null ,__blendMode: null ,__cacheAsBitmap: null ,__cacheAsBitmapMatrix: null ,__cacheBitmap: null ,__cacheBitmapBackground: null ,__cacheBitmapColorTransform: null ,__cacheBitmapData: null ,__cacheBitmapData2: null ,__cacheBitmapData3: null ,__cacheBitmapMatrix: null ,__cacheBitmapRenderer: null ,__cairo: null ,__children: null ,__customRenderClear: null ,__customRenderEvent: null ,__drawableType: null ,__filters: null ,__graphics: null ,__interactive: null ,__isCacheBitmapRender: null ,__isMask: null ,__loaderInfo: null ,__mask: null ,__maskTarget: null ,__name: null ,__objectTransform: null ,__renderable: null ,__renderDirty: null ,__renderParent: null ,__renderTransform: null ,__renderTransformCache: null ,__renderTransformChanged: null ,__rotation: null ,__rotationCosine: null ,__rotationSine: null ,__scale9Grid: null ,__scaleX: null ,__scaleY: null ,__scrollRect: null ,__shader: null ,__tempPoint: null ,__transform: null ,__transformDirty: null ,__visible: null ,__worldAlpha: null ,__worldAlphaChanged: null ,__worldBlendMode: null ,__worldClip: null ,__worldClipChanged: null ,__worldColorTransform: null ,__worldShader: null ,__worldScale9Grid: null ,__worldTransform: null ,__worldVisible: null ,__worldVisibleChanged: null ,__worldTransformInvalid: null ,__worldZ: null ,__canvas: null ,__context: null ,__style: null ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) { useWeakReference = false; } if(priority == null) { priority = 0; } if(useCapture == null) { useCapture = false; } switch(type) { case "activate":case "deactivate":case "enterFrame":case "exitFrame":case "frameConstructed":case "render": if(!Object.prototype.hasOwnProperty.call(openfl_display_DisplayObject.__broadcastEvents.h,type)) { openfl_display_DisplayObject.__broadcastEvents.h[type] = []; } var dispatchers = openfl_display_DisplayObject.__broadcastEvents.h[type]; if(dispatchers.indexOf(this) == -1) { dispatchers.push(this); } break; case "clearDOM":case "renderCairo":case "renderCanvas":case "renderDOM":case "renderOpenGL": if(this.__customRenderEvent == null) { this.__customRenderEvent = new openfl_events_RenderEvent(null); this.__customRenderEvent.objectColorTransform = new openfl_geom_ColorTransform(); this.__customRenderEvent.objectMatrix = new openfl_geom_Matrix(); this.__customRenderClear = true; } break; default: } openfl_events_EventDispatcher.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference); } ,dispatchEvent: function(event) { if(((event) instanceof openfl_events_MouseEvent)) { var mouseEvent = event; var _this = this.__getRenderTransform(); mouseEvent.stageX = mouseEvent.localX * _this.a + mouseEvent.localY * _this.c + _this.tx; var _this = this.__getRenderTransform(); mouseEvent.stageY = mouseEvent.localX * _this.b + mouseEvent.localY * _this.d + _this.ty; } else if(((event) instanceof openfl_events_TouchEvent)) { var touchEvent = event; var _this = this.__getRenderTransform(); touchEvent.stageX = touchEvent.localX * _this.a + touchEvent.localY * _this.c + _this.tx; var _this = this.__getRenderTransform(); touchEvent.stageY = touchEvent.localX * _this.b + touchEvent.localY * _this.d + _this.ty; } event.target = this; return this.__dispatchWithCapture(event); } ,getBounds: function(targetCoordinateSpace) { var matrix = openfl_geom_Matrix.__pool.get(); if(targetCoordinateSpace != null && targetCoordinateSpace != this) { matrix.copyFrom(this.__getWorldTransform()); var targetMatrix = openfl_geom_Matrix.__pool.get(); targetMatrix.copyFrom(targetCoordinateSpace.__getWorldTransform()); targetMatrix.invert(); matrix.concat(targetMatrix); openfl_geom_Matrix.__pool.release(targetMatrix); } else { matrix.identity(); } var bounds = new openfl_geom_Rectangle(); this.__getBounds(bounds,matrix); openfl_geom_Matrix.__pool.release(matrix); return bounds; } ,getRect: function(targetCoordinateSpace) { return this.getBounds(targetCoordinateSpace); } ,globalToLocal: function(pos) { return this.__globalToLocal(pos,new openfl_geom_Point()); } ,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.stage != null) { return this.__hitTest(x,y,shapeFlag,null,false,this); } else { return false; } } ,invalidate: function() { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } ,localToGlobal: function(point) { return this.__getRenderTransform().transformPoint(point); } ,removeEventListener: function(type,listener,useCapture) { if(useCapture == null) { useCapture = false; } openfl_events_EventDispatcher.prototype.removeEventListener.call(this,type,listener,useCapture); switch(type) { case "activate":case "deactivate":case "enterFrame":case "exitFrame":case "frameConstructed":case "render": if(!this.hasEventListener(type)) { if(Object.prototype.hasOwnProperty.call(openfl_display_DisplayObject.__broadcastEvents.h,type)) { HxOverrides.remove(openfl_display_DisplayObject.__broadcastEvents.h[type],this); } } break; case "clearDOM":case "renderCairo":case "renderCanvas":case "renderDOM":case "renderOpenGL": if(!this.hasEventListener("clearDOM") && !this.hasEventListener("renderCairo") && !this.hasEventListener("renderCanvas") && !this.hasEventListener("renderDOM") && !this.hasEventListener("renderOpenGL")) { this.__customRenderEvent = null; } break; default: } } ,__cleanup: function() { this.__cairo = null; this.__canvas = null; this.__context = null; if(this.__graphics != null) { this.__graphics.__cleanup(); } if(this.__cacheBitmap != null) { this.__cacheBitmap.__cleanup(); this.__cacheBitmap = null; } if(this.__cacheBitmapData != null) { this.__cacheBitmapData.dispose(); this.__cacheBitmapData = null; } } ,__dispatch: function(event) { 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 true; } ,__dispatchChildren: function(event) { } ,__dispatchEvent: function(event) { var parent = event.bubbles ? this.parent : null; var result = openfl_events_EventDispatcher.prototype.__dispatchEvent.call(this,event); if(event.__isCanceled) { return true; } if(parent != null && parent != this) { event.eventPhase = 3; if(event.target == null) { event.target = this; } parent.__dispatchEvent(event); } return result; } ,__dispatchWithCapture: function(event) { if(event.target == null) { event.target = this; } if(this.parent != null) { event.eventPhase = 1; if(this.parent == this.stage) { this.parent.__dispatch(event); } else { var stack = openfl_display_DisplayObject.__tempStack.get(); var parent = this.parent; var i = 0; while(parent != null) { stack.set(i,parent); parent = parent.parent; ++i; } var _g = 0; var _g1 = i; while(_g < _g1) { var j = _g++; stack.get(i - j - 1).__dispatch(event); } openfl_display_DisplayObject.__tempStack.release(stack); } } event.eventPhase = 2; return this.__dispatchEvent(event); } ,__enterFrame: function(deltaTime) { } ,__getBounds: function(rect,matrix) { if(this.__graphics != null) { this.__graphics.__getBounds(rect,matrix); } } ,__getCursor: function() { return null; } ,__getFilterBounds: function(rect,matrix) { this.__getRenderBounds(rect,matrix); if(this.__filters != null) { var extension = openfl_geom_Rectangle.__pool.get(); var _g = 0; var _g1 = this.__filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; extension.__expand(-filter.__leftExtension,-filter.__topExtension,filter.__leftExtension + filter.__rightExtension,filter.__topExtension + filter.__bottomExtension); } rect.width += extension.width; rect.height += extension.height; rect.x += extension.x; rect.y += extension.y; openfl_geom_Rectangle.__pool.release(extension); } } ,__getInteractive: function(stack) { return false; } ,__getLocalBounds: function(rect) { this.__getBounds(rect,this.__transform); rect.x -= this.__transform.tx; rect.y -= this.__transform.ty; } ,__getRenderBounds: function(rect,matrix) { if(this.__scrollRect == null) { this.__getBounds(rect,matrix); } else { var r = openfl_geom_Rectangle.__pool.get(); r.copyFrom(this.__scrollRect); r.__transform(r,matrix); rect.__expand(r.x,r.y,r.width,r.height); openfl_geom_Rectangle.__pool.release(r); } } ,__getRenderTransform: function() { this.__getWorldTransform(); return this.__renderTransform; } ,__getWorldTransform: function() { var transformDirty = this.__transformDirty || this.__worldTransformInvalid; if(transformDirty) { var list = []; var current = this; if(this.parent == null) { this.__update(true,false); } else { while(current != this.stage) { list.push(current); current = current.parent; if(current == null) { break; } } } var i = list.length; while(--i >= 0) { current = list[i]; current.__update(true,false); } } return this.__worldTransform; } ,__globalToLocal: function(global,local) { this.__getRenderTransform(); if(global == local) { var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { global.x = -_this.tx; global.y = -_this.ty; } else { var px = 1.0 / norm * (_this.c * (_this.ty - global.y) + _this.d * (global.x - _this.tx)); global.y = 1.0 / norm * (_this.a * (global.y - _this.ty) + _this.b * (_this.tx - global.x)); global.x = px; } } else { var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; local.x = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - global.y) + _this.d * (global.x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; local.y = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (global.y - _this.ty) + _this.b * (_this.tx - global.x)); } return local; } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(this.__graphics != null) { if(!hitObject.__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.__getRenderTransform())) { 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.__getRenderTransform())) { return true; } } return false; } ,__readGraphicsData: function(graphicsData,recurse) { if(this.__graphics != null) { this.__graphics.__readGraphicsData(graphicsData); } } ,__setParentRenderDirty: function() { var renderParent = this.__renderParent != null ? this.__renderParent : this.parent; if(renderParent != null && !renderParent.__renderDirty) { renderParent.__renderDirty = true; renderParent.__setParentRenderDirty(); } } ,__setRenderDirty: function() { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } ,__setStageReference: function(stage) { this.stage = stage; } ,__setTransformDirty: function() { if(!this.__transformDirty) { this.__transformDirty = true; this.__setWorldTransformInvalid(); this.__setParentRenderDirty(); } } ,__setWorldTransformInvalid: function() { this.__worldTransformInvalid = true; } ,__stopAllMovieClips: function() { } ,__update: function(transformOnly,updateChildren) { var renderParent = this.__renderParent != null ? this.__renderParent : this.parent; if(this.__isMask && renderParent == null) { renderParent = this.__maskTarget; } this.__renderable = this.__visible && this.__scaleX != 0 && this.__scaleY != 0 && !this.__isMask && (renderParent == null || !renderParent.__isMask); this.__updateTransforms(); this.__transformDirty = false; this.__worldTransformInvalid = false; if(!transformOnly) { if(openfl_display_DisplayObject.__supportDOM) { this.__renderTransformChanged = !this.__renderTransform.equals(this.__renderTransformCache); if(this.__renderTransformCache == null) { this.__renderTransformCache = this.__renderTransform.clone(); } else { this.__renderTransformCache.copyFrom(this.__renderTransform); } } if(renderParent != null) { if(openfl_display_DisplayObject.__supportDOM) { var worldVisible = renderParent.__worldVisible && this.__visible; this.__worldVisibleChanged = this.__worldVisible != worldVisible; this.__worldVisible = worldVisible; var worldAlpha = this.get_alpha() * renderParent.__worldAlpha; this.__worldAlphaChanged = this.__worldAlpha != worldAlpha; this.__worldAlpha = worldAlpha; } else { this.__worldAlpha = this.get_alpha() * renderParent.__worldAlpha; } if(this.__objectTransform != null) { this.__worldColorTransform.__copyFrom(this.__objectTransform.__colorTransform); this.__worldColorTransform.__combine(renderParent.__worldColorTransform); } else { this.__worldColorTransform.__copyFrom(renderParent.__worldColorTransform); } if(this.__blendMode == null || this.__blendMode == 10) { this.__worldBlendMode = renderParent.__worldBlendMode; } else { this.__worldBlendMode = this.__blendMode; } if(this.__shader == null) { this.__worldShader = renderParent.__shader; } else { this.__worldShader = this.__shader; } if(this.__scale9Grid == null) { this.__worldScale9Grid = renderParent.__scale9Grid; } else { this.__worldScale9Grid = this.__scale9Grid; } } else { this.__worldAlpha = this.get_alpha(); if(openfl_display_DisplayObject.__supportDOM) { this.__worldVisibleChanged = this.__worldVisible != this.__visible; this.__worldVisible = this.__visible; this.__worldAlphaChanged = this.__worldAlpha != this.get_alpha(); } if(this.__objectTransform != null) { this.__worldColorTransform.__copyFrom(this.__objectTransform.__colorTransform); } else { this.__worldColorTransform.__identity(); } this.__worldBlendMode = this.__blendMode; this.__worldShader = this.__shader; this.__worldScale9Grid = this.__scale9Grid; } } if(updateChildren && this.get_mask() != null) { this.get_mask().__update(transformOnly,true); } } ,__updateTransforms: function(overrideTransform) { var overrided = overrideTransform != null; var local = overrided ? overrideTransform : this.__transform; if(this.__worldTransform == null) { this.__worldTransform = new openfl_geom_Matrix(); } if(this.__renderTransform == null) { this.__renderTransform = new openfl_geom_Matrix(); } var renderParent = this.__renderParent != null ? this.__renderParent : this.parent; if(!overrided && this.parent != null) { var parentTransform = this.parent.__worldTransform; var target = this.__worldTransform; target.a = local.a * parentTransform.a + local.b * parentTransform.c; target.b = local.a * parentTransform.b + local.b * parentTransform.d; target.c = local.c * parentTransform.a + local.d * parentTransform.c; target.d = local.c * parentTransform.b + local.d * parentTransform.d; target.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx; target.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty; } else { this.__worldTransform.copyFrom(local); } if(!overrided && renderParent != null) { var parentTransform = renderParent.__renderTransform; var target = this.__renderTransform; target.a = local.a * parentTransform.a + local.b * parentTransform.c; target.b = local.a * parentTransform.b + local.b * parentTransform.d; target.c = local.c * parentTransform.a + local.d * parentTransform.c; target.d = local.c * parentTransform.b + local.d * parentTransform.d; target.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx; target.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty; } else { this.__renderTransform.copyFrom(local); } if(this.__scrollRect != null) { var _this = this.__renderTransform; var px = -this.__scrollRect.x; var py = -this.__scrollRect.y; _this.tx = px * _this.a + py * _this.c + _this.tx; _this.ty = px * _this.b + py * _this.d + _this.ty; } } ,get_alpha: function() { return this.__alpha; } ,set_alpha: function(value) { if(value > 1.0) { value = 1.0; } if(value < 0.0) { value = 0.0; } if(value != this.__alpha && !this.get_cacheAsBitmap()) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__alpha = value; } ,get_blendMode: function() { return this.__blendMode; } ,set_blendMode: function(value) { if(value == null) { value = 10; } if(value != this.__blendMode) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__blendMode = value; } ,get_cacheAsBitmap: function() { if(this.__filters == null) { return this.__cacheAsBitmap; } else { return true; } } ,set_cacheAsBitmap: function(value) { if(value != this.__cacheAsBitmap) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__cacheAsBitmap = value; } ,get_cacheAsBitmapMatrix: function() { return this.__cacheAsBitmapMatrix; } ,set_cacheAsBitmapMatrix: function(value) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } return this.__cacheAsBitmapMatrix = value != null ? value.clone() : value; } ,get_filters: function() { if(this.__filters == null) { return []; } else { return this.__filters.slice(); } } ,set_filters: function(value) { if(value != null && value.length > 0) { var clonedFilters = []; var _g = 0; while(_g < value.length) { var filter = value[_g]; ++_g; var clonedFilter = filter.clone(); clonedFilter.__renderDirty = true; clonedFilters.push(clonedFilter); } this.__filters = clonedFilters; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } else if(this.__filters != null) { this.__filters = null; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return value; } ,get_height: function() { var rect = openfl_geom_Rectangle.__pool.get(); this.__getLocalBounds(rect); var height = rect.height; openfl_geom_Rectangle.__pool.release(rect); return height; } ,set_height: function(value) { var rect = openfl_geom_Rectangle.__pool.get(); var matrix = openfl_geom_Matrix.__pool.get(); matrix.identity(); this.__getBounds(rect,matrix); if(value != rect.height) { this.set_scaleY(value / rect.height); } else { this.set_scaleY(1); } openfl_geom_Rectangle.__pool.release(rect); openfl_geom_Matrix.__pool.release(matrix); return value; } ,get_loaderInfo: function() { if(this.stage != null) { return openfl_utils__$internal_Lib.current.__loaderInfo; } return null; } ,get_mask: function() { return this.__mask; } ,set_mask: function(value) { if(value == this.__mask) { return value; } if(value != this.__mask) { this.__setTransformDirty(); if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } if(this.__mask != null) { this.__mask.__isMask = false; this.__mask.__maskTarget = null; this.__mask.__setTransformDirty(); var _this = this.__mask; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } } if(value != null) { value.__isMask = true; value.__maskTarget = this; value.__setWorldTransformInvalid(); } if(this.__cacheBitmap != null && this.__cacheBitmap.get_mask() != value) { this.__cacheBitmap.set_mask(value); } return this.__mask = value; } ,get_mouseX: function() { var mouseX = this.stage != null ? this.stage.__mouseX : openfl_utils__$internal_Lib.current.stage.__mouseX; var mouseY = this.stage != null ? this.stage.__mouseY : openfl_utils__$internal_Lib.current.stage.__mouseY; var _this = this.__getRenderTransform(); 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 - mouseY) + _this.d * (mouseX - _this.tx)); } } ,get_mouseY: function() { var mouseX = this.stage != null ? this.stage.__mouseX : openfl_utils__$internal_Lib.current.stage.__mouseX; var mouseY = this.stage != null ? this.stage.__mouseY : openfl_utils__$internal_Lib.current.stage.__mouseY; var _this = this.__getRenderTransform(); var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { return -_this.ty; } else { return 1.0 / norm * (_this.a * (mouseY - _this.ty) + _this.b * (_this.tx - mouseX)); } } ,get_name: function() { return this.__name; } ,set_name: function(value) { return this.__name = value; } ,get_root: function() { if(this.stage != null) { return openfl_utils__$internal_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); this.__transform.a = this.__rotationCosine * this.__scaleX; this.__transform.b = this.__rotationSine * this.__scaleX; this.__transform.c = -this.__rotationSine * this.__scaleY; this.__transform.d = this.__rotationCosine * this.__scaleY; this.__setTransformDirty(); } return value; } ,get_scale9Grid: function() { if(this.__scale9Grid == null) { return null; } return this.__scale9Grid.clone(); } ,set_scale9Grid: function(value) { if(value == null && this.__scale9Grid == null) { return value; } if(value != null && this.__scale9Grid != null && this.__scale9Grid.equals(value)) { return value; } if(value != null) { if(this.__scale9Grid == null) { this.__scale9Grid = new openfl_geom_Rectangle(); } this.__scale9Grid.copyFrom(value); } else { this.__scale9Grid = null; } if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } return value; } ,get_scaleX: function() { return this.__scaleX; } ,set_scaleX: function(value) { if(value != this.__scaleX) { this.__scaleX = value; if(this.__transform.b == 0) { if(value != this.__transform.a) { this.__setTransformDirty(); } this.__transform.a = value; } else { var a = this.__rotationCosine * value; var b = this.__rotationSine * value; if(this.__transform.a != a || this.__transform.b != b) { this.__setTransformDirty(); } this.__transform.a = a; this.__transform.b = b; } } return value; } ,get_scaleY: function() { return this.__scaleY; } ,set_scaleY: function(value) { if(value != this.__scaleY) { this.__scaleY = value; if(this.__transform.c == 0) { if(value != this.__transform.d) { this.__setTransformDirty(); } this.__transform.d = value; } else { var c = -this.__rotationSine * value; var d = this.__rotationCosine * value; if(this.__transform.d != d || this.__transform.c != c) { this.__setTransformDirty(); } 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 == null && this.__scrollRect == null) { return value; } if(value != null && this.__scrollRect != null && this.__scrollRect.equals(value)) { return value; } if(value != null) { if(this.__scrollRect == null) { this.__scrollRect = new openfl_geom_Rectangle(); } this.__scrollRect.copyFrom(value); } else { this.__scrollRect = null; } this.__setTransformDirty(); if(openfl_display_DisplayObject.__supportDOM) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return value; } ,get_shader: function() { return this.__shader; } ,set_shader: function(value) { this.__shader = value; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } return 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 openfl_errors_TypeError("Parameter transform must be non-null."); } if(this.__objectTransform == null) { this.__objectTransform = new openfl_geom_Transform(this); } this.__setTransformDirty(); this.__objectTransform.set_matrix(value.get_matrix()); if(!this.__objectTransform.__colorTransform.__equals(value.__colorTransform,true) || !this.get_cacheAsBitmap() && this.__objectTransform.__colorTransform.alphaMultiplier != value.__colorTransform.alphaMultiplier) { this.__objectTransform.__colorTransform.__copyFrom(value.get_colorTransform()); if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__objectTransform; } ,get_visible: function() { return this.__visible; } ,set_visible: function(value) { if(value != this.__visible) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__visible = value; } ,get_width: function() { var rect = openfl_geom_Rectangle.__pool.get(); this.__getLocalBounds(rect); var width = rect.width; openfl_geom_Rectangle.__pool.release(rect); return width; } ,set_width: function(value) { var rect = openfl_geom_Rectangle.__pool.get(); var matrix = openfl_geom_Matrix.__pool.get(); matrix.identity(); this.__getBounds(rect,matrix); if(value != rect.width) { this.set_scaleX(value / rect.width); } else { this.set_scaleX(1); } openfl_geom_Rectangle.__pool.release(rect); openfl_geom_Matrix.__pool.release(matrix); return value; } ,get_x: function() { return this.__transform.tx; } ,set_x: function(value) { if(value != this.__transform.tx) { this.__setTransformDirty(); } return this.__transform.tx = value; } ,get_y: function() { return this.__transform.ty; } ,set_y: function(value) { if(value != this.__transform.ty) { this.__setTransformDirty(); } 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",get_shader:"get_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_scale9Grid:"set_scale9Grid",get_scale9Grid:"get_scale9Grid",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",get_loaderInfo:"get_loaderInfo",set_height:"set_height",get_height:"get_height",set_filters:"set_filters",get_filters:"get_filters",set_cacheAsBitmapMatrix:"set_cacheAsBitmapMatrix",get_cacheAsBitmapMatrix:"get_cacheAsBitmapMatrix",set_cacheAsBitmap:"set_cacheAsBitmap",get_cacheAsBitmap:"get_cacheAsBitmap",set_blendMode:"set_blendMode",get_blendMode:"get_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 = null; 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 ,__tabEnabled: null ,__tabIndex: null ,requestSoftKeyboard: function() { openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/display/InteractiveObject.hx", lineNumber : 1251, className : "openfl.display.InteractiveObject", methodName : "requestSoftKeyboard"}); return false; } ,__allowMouseFocus: function() { if(this.mouseEnabled) { return this.get_tabEnabled(); } else { 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); } ,__tabTest: function(stack) { if(this.get_tabEnabled()) { stack.push(this); } } ,get_tabEnabled: function() { if(this.__tabEnabled == true) { return true; } else { return false; } } ,set_tabEnabled: function(value) { if(this.__tabEnabled != value) { this.__tabEnabled = value; this.dispatchEvent(new openfl_events_Event("tabEnabledChange",true,false)); } return this.__tabEnabled; } ,get_tabIndex: function() { return this.__tabIndex; } ,set_tabIndex: function(value) { if(this.__tabIndex != value) { if(value < -1) { throw new openfl_errors_RangeError("Parameter tabIndex must be a non-negative number; got " + value); } this.__tabIndex = value; this.dispatchEvent(new openfl_events_Event("tabIndexChange",true,false)); } return this.__tabIndex; } ,__class__: openfl_display_InteractiveObject ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_tabIndex:"set_tabIndex",get_tabIndex:"get_tabIndex",set_tabEnabled:"set_tabEnabled",get_tabEnabled:"get_tabEnabled"}) }); var openfl_display_DisplayObjectContainer = function() { openfl_display_InteractiveObject.call(this); this.mouseChildren = true; this.__tabChildren = true; this.__children = []; this.__removedChildren = openfl_Vector.toObjectVector(null); }; $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 ,__removedChildren: null ,__tabChildren: null ,addChild: function(child) { return this.addChildAt(child,this.get_numChildren()); } ,addChildAt: function(child,index) { if(child == null) { var error = new openfl_errors_TypeError("Error #2007: Parameter child must be non-null."); error.errorID = 2007; throw error; } else if(child.stage == child) { var error = new openfl_errors_ArgumentError("Error #3783: A Stage object cannot be added as the child of another object."); error.errorID = 3783; throw error; } if(index > this.__children.length || index < 0) { throw haxe_Exception.thrown("Invalid index position " + index); } if(child.parent == this) { if(this.__children[index] != child) { HxOverrides.remove(this.__children,child); this.__children.splice(index,0,child); if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } else { if(child.parent != null) { child.parent.removeChild(child); } this.__children.splice(index,0,child); child.parent = this; var addedToStage = this.stage != null && child.stage == null; if(addedToStage) { child.__setStageReference(this.stage); } child.__setTransformDirty(); if(!child.__renderDirty) { child.__renderDirty = true; child.__setParentRenderDirty(); } if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } var event = new openfl_events_Event("added"); event.bubbles = true; event.target = child; child.__dispatchWithCapture(event); if(addedToStage) { event = new openfl_events_Event("addedToStage",false,false); child.__dispatchWithCapture(event); child.__dispatchChildren(event); } } 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 _g = 0; var _g1 = this.__children.length; while(_g < _g1) { var i = _g++; 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.__setTransformDirty(); if(!child.__renderDirty) { child.__renderDirty = true; child.__setParentRenderDirty(); } if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } var event = new openfl_events_Event("removed",true); child.__dispatchWithCapture(event); if(this.stage != null) { if(child.stage != null && this.stage.get_focus() == child) { this.stage.set_focus(null); } var event = new openfl_events_Event("removedFromStage",false,false); child.__dispatchWithCapture(event); child.__dispatchChildren(event); child.__setStageReference(null); } child.parent = null; HxOverrides.remove(this.__children,child); this.__removedChildren.push(child); child.__setTransformDirty(); } 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 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); } } ,stopAllMovieClips: function() { this.__stopAllMovieClips(); } ,swapChildren: function(child1,child2) { if(child1.parent == this && child2.parent == this) { var index1 = this.__children.indexOf(child1); var index2 = this.__children.indexOf(child2); this.__children[index1] = child2; this.__children[index2] = child1; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,swapChildrenAt: function(index1,index2) { var swap = this.__children[index1]; this.__children[index1] = this.__children[index2]; this.__children[index2] = swap; swap = null; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } ,__cleanup: function() { openfl_display_InteractiveObject.prototype.__cleanup.call(this); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__cleanup(); } var orphan = this.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } this.__removedChildren.set_length(0); } ,__cleanupRemovedChildren: function() { var orphan = this.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } this.__removedChildren.set_length(0); } ,__dispatchChildren: function(event) { if(this.__children != null) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; event.target = child; if(!child.__dispatchWithCapture(event)) { break; } child.__dispatchChildren(event); } } } ,__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; } var childWorldTransform = openfl_geom_Matrix.__pool.get(); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.__scaleX == 0 || child.__scaleY == 0) { continue; } var local = child.__transform; childWorldTransform.a = local.a * matrix.a + local.b * matrix.c; childWorldTransform.b = local.a * matrix.b + local.b * matrix.d; childWorldTransform.c = local.c * matrix.a + local.d * matrix.c; childWorldTransform.d = local.c * matrix.b + local.d * matrix.d; childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx; childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty; child.__getBounds(rect,childWorldTransform); } openfl_geom_Matrix.__pool.release(childWorldTransform); } ,__getFilterBounds: function(rect,matrix) { openfl_display_InteractiveObject.prototype.__getFilterBounds.call(this,rect,matrix); if(this.__scrollRect != null) { return; } if(this.__children.length == 0) { return; } var childWorldTransform = openfl_geom_Matrix.__pool.get(); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.__scaleX == 0 || child.__scaleY == 0 || child.__isMask) { continue; } var local = child.__transform; childWorldTransform.a = local.a * matrix.a + local.b * matrix.c; childWorldTransform.b = local.a * matrix.b + local.b * matrix.d; childWorldTransform.c = local.c * matrix.a + local.d * matrix.c; childWorldTransform.d = local.c * matrix.b + local.d * matrix.d; childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx; childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty; var childRect = openfl_geom_Rectangle.__pool.get(); child.__getFilterBounds(childRect,childWorldTransform); rect.__expand(childRect.x,childRect.y,childRect.width,childRect.height); openfl_geom_Rectangle.__pool.release(childRect); } openfl_geom_Matrix.__pool.release(childWorldTransform); } ,__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; } var childWorldTransform = openfl_geom_Matrix.__pool.get(); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.__scaleX == 0 || child.__scaleY == 0 || child.__isMask) { continue; } var local = child.__transform; childWorldTransform.a = local.a * matrix.a + local.b * matrix.c; childWorldTransform.b = local.a * matrix.b + local.b * matrix.d; childWorldTransform.c = local.c * matrix.a + local.d * matrix.c; childWorldTransform.d = local.c * matrix.b + local.d * matrix.d; childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx; childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty; child.__getRenderBounds(rect,childWorldTransform); } openfl_geom_Matrix.__pool.release(childWorldTransform); } ,__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.__scrollRect != null) { var point = openfl_geom_Point.__pool.get(); point.setTo(x,y); var _this = this.__getRenderTransform(); 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; } if(!this.__scrollRect.containsPoint(point)) { openfl_geom_Point.__pool.release(point); return false; } openfl_geom_Point.__pool.release(point); } 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 && stack.length > length) { break; } } } } if(hitTest) { stack.splice(length,0,hitObject); return true; } } } else { var hitTest = false; while(--i >= 0) if(this.__children[i].__hitTest(x,y,shapeFlag,stack,false,this.__children[i])) { hitTest = true; if(stack == null) { break; } } return hitTest; } 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; } ,__readGraphicsData: function(graphicsData,recurse) { openfl_display_InteractiveObject.prototype.__readGraphicsData.call(this,graphicsData,recurse); if(recurse) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__readGraphicsData(graphicsData,recurse); } } } ,__setStageReference: function(stage) { openfl_display_InteractiveObject.prototype.__setStageReference.call(this,stage); if(this.__children != null) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__setStageReference(stage); } } } ,__setWorldTransformInvalid: function() { if(!this.__worldTransformInvalid) { this.__worldTransformInvalid = true; if(this.__children != null) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__setWorldTransformInvalid(); } } } } ,__stopAllMovieClips: function() { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__stopAllMovieClips(); } } ,__tabTest: function(stack) { openfl_display_InteractiveObject.prototype.__tabTest.call(this,stack); if(!this.get_tabChildren()) { return; } var interactive = false; var interactiveObject = null; var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; interactive = child.__getInteractive(null); if(interactive) { interactiveObject = child; interactiveObject.__tabTest(stack); } } } ,__update: function(transformOnly,updateChildren) { openfl_display_InteractiveObject.prototype.__update.call(this,transformOnly,updateChildren); if(updateChildren) { 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; } ,get_tabChildren: function() { return this.__tabChildren; } ,set_tabChildren: function(value) { if(this.__tabChildren != value) { this.__tabChildren = value; this.dispatchEvent(new openfl_events_Event("tabChildrenChange",true,false)); } return this.__tabChildren; } ,__class__: openfl_display_DisplayObjectContainer ,__properties__: $extend(openfl_display_InteractiveObject.prototype.__properties__,{set_tabChildren:"set_tabChildren",get_tabChildren:"get_tabChildren",get_numChildren:"get_numChildren"}) }); var openfl_display_Sprite = function() { openfl_display_DisplayObjectContainer.call(this); this.__drawableType = 4; this.__buttonMode = false; this.useHandCursor = true; if(this.__pendingBindLibrary != null) { var library = this.__pendingBindLibrary; var className = this.__pendingBindClassName; this.__pendingBindLibrary = null; this.__pendingBindClassName = null; library.bind(className,this); } else if(openfl_display_Sprite.__constructor != null) { var method = openfl_display_Sprite.__constructor; openfl_display_Sprite.__constructor = null; method(this); } }; $hxClasses["openfl.display.Sprite"] = openfl_display_Sprite; openfl_display_Sprite.__name__ = "openfl.display.Sprite"; openfl_display_Sprite.__constructor = null; openfl_display_Sprite.fromTimeline = function(timeline) { var sprite = new openfl_display_Sprite(); timeline.initializeSprite(sprite); return sprite; }; openfl_display_Sprite.__super__ = openfl_display_DisplayObjectContainer; openfl_display_Sprite.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{ dropTarget: null ,hitArea: null ,useHandCursor: null ,__buttonMode: null ,__pendingBindClassName: null ,__pendingBindLibrary: 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); } } ,__bind: function(library,className) { if(this.__worldTransform == null) { this.__pendingBindLibrary = library; this.__pendingBindClassName = className; } else if(library == null || className == null || !library.bind(className,this)) { lime_utils_Log.error("Cannot bind class name \"" + className + "\"",{ fileName : "openfl/display/Sprite.hx", lineNumber : 281, className : "openfl.display.Sprite", methodName : "__bind"}); } } ,__getCursor: function() { if(this.__buttonMode && this.useHandCursor) { return "button"; } else { return null; } } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(interactiveOnly && !this.mouseEnabled && !this.mouseChildren) { return false; } if(!hitObject.get_visible() || this.__isMask) { return this.__hitTestHitArea(x,y,shapeFlag,stack,interactiveOnly,hitObject); } if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) { return this.__hitTestHitArea(x,y,shapeFlag,stack,interactiveOnly,hitObject); } if(this.__scrollRect != null) { var point = openfl_geom_Point.__pool.get(); point.setTo(x,y); var _this = this.__getRenderTransform(); 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; } if(!this.__scrollRect.containsPoint(point)) { openfl_geom_Point.__pool.release(point); return this.__hitTestHitArea(x,y,shapeFlag,stack,true,hitObject); } openfl_geom_Point.__pool.release(point); } if(openfl_display_DisplayObjectContainer.prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject)) { if(stack != null) { return interactiveOnly; } else { return true; } } else if(this.hitArea == null && this.__graphics != null && this.__graphics.__hitTest(x,y,shapeFlag,this.__getRenderTransform())) { if(stack != null && (!interactiveOnly || this.mouseEnabled)) { stack.push(hitObject); } return true; } return this.__hitTestHitArea(x,y,shapeFlag,stack,interactiveOnly,hitObject); } ,__hitTestHitArea: 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(stack != null && hitTest) { stack[stack.length] = hitObject; } return hitTest; } } 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.__getRenderTransform())) { return true; } return false; } ,get_graphics: function() { if(this.__graphics == null) { this.__graphics = new openfl_display_Graphics(this); } return this.__graphics; } ,get_tabEnabled: function() { if(this.__tabEnabled == null) { return this.__buttonMode; } else { return this.__tabEnabled; } } ,get_buttonMode: function() { return this.__buttonMode; } ,set_buttonMode: function(value) { return this.__buttonMode = value; } ,__class__: openfl_display_Sprite ,__properties__: $extend(openfl_display_DisplayObjectContainer.prototype.__properties__,{get_graphics:"get_graphics",set_buttonMode:"set_buttonMode",get_buttonMode:"get_buttonMode"}) }); var Main = function() { this.startFullscreen = false; this.skipSplash = true; this.framerate = 60; this.zoom = -1; this.initialState = funkin_InitState; this.gameHeight = 720; this.gameWidth = 1280; openfl_display_Sprite.call(this); haxe_Log.trace = funkin_util_logging_AnsiTrace.trace; funkin_util_logging_AnsiTrace.traceBF(); funkin_modding_PolymodHandler.loadAllMods(); if(this.stage != null) { this.init(); } else { this.addEventListener("addedToStage",$bind(this,this.init)); } }; $hxClasses["Main"] = Main; Main.__name__ = "Main"; Main.main = function() { funkin_util_logging_CrashHandler.initialize(); funkin_util_logging_CrashHandler.queryStatus(); openfl_Lib.get_current().addChild(new Main()); }; Main.fpsCounter = null; Main.memoryCounter = null; Main.__super__ = openfl_display_Sprite; Main.prototype = $extend(openfl_display_Sprite.prototype,{ gameWidth: null ,gameHeight: null ,initialState: null ,zoom: null ,framerate: null ,skipSplash: null ,startFullscreen: null ,init: function(event) { if(this.hasEventListener("addedToStage")) { this.removeEventListener("addedToStage",$bind(this,this.init)); } this.setupGame(); } ,video: null ,netStream: null ,overlay: null ,setupGame: function() { this.initHaxeUI(); Main.fpsCounter = new openfl_display_FPS(10,3,16777215); funkin_save_Save.load(); var game = new flixel_FlxGame(this.gameWidth,this.gameHeight,flixel_util_typeLimit_InitialState.fromType(this.initialState),this.framerate,this.framerate,this.skipSplash,this.startFullscreen); game._customSoundTray = funkin_ui_options_FunkinSoundTray; this.addChild(game); this.addChild(Main.fpsCounter); haxe_Log.trace("hxcpp_debug_server is disabled! This build does not support debugging.",{ fileName : "source/Main.hx", lineNumber : 125, className : "Main", methodName : "setupGame"}); } ,initHaxeUI: function() { haxe_ui_Toolkit.init(); haxe_ui_Toolkit.set_theme("dark"); haxe_ui_Toolkit.autoScale = false; haxe_ui_focus_FocusManager.get_instance().autoFocus = false; funkin_input_Cursor.registerHaxeUICursors(); haxe_ui_tooltips_ToolTipManager.defaultDelay = 200; } ,__class__: Main }); var DocumentClass = function(current) { 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 DateTools = function() { }; $hxClasses["DateTools"] = DateTools; DateTools.__name__ = "DateTools"; DateTools.__format_get = function(d,e) { switch(e) { case "%": return "%"; case "A": return DateTools.DAY_NAMES[d.getDay()]; case "B": return DateTools.MONTH_NAMES[d.getMonth()]; case "C": return StringTools.lpad(Std.string(d.getFullYear() / 100 | 0),"0",2); case "D": return DateTools.__format(d,"%m/%d/%y"); case "F": return DateTools.__format(d,"%Y-%m-%d"); case "M": return StringTools.lpad(Std.string(d.getMinutes()),"0",2); case "R": return DateTools.__format(d,"%H:%M"); case "S": return StringTools.lpad(Std.string(d.getSeconds()),"0",2); case "T": return DateTools.__format(d,"%H:%M:%S"); case "Y": return Std.string(d.getFullYear()); case "a": return DateTools.DAY_SHORT_NAMES[d.getDay()]; case "d": return StringTools.lpad(Std.string(d.getDate()),"0",2); case "e": return Std.string(d.getDate()); case "b":case "h": return DateTools.MONTH_SHORT_NAMES[d.getMonth()]; case "H":case "k": return StringTools.lpad(Std.string(d.getHours()),e == "H" ? "0" : " ",2); case "I":case "l": var hour = d.getHours() % 12; return StringTools.lpad(Std.string(hour == 0 ? 12 : hour),e == "I" ? "0" : " ",2); case "m": return StringTools.lpad(Std.string(d.getMonth() + 1),"0",2); case "n": return "\n"; case "p": if(d.getHours() > 11) { return "PM"; } else { return "AM"; } break; case "r": return DateTools.__format(d,"%I:%M:%S %p"); case "s": return Std.string(d.getTime() / 1000 | 0); case "t": return "\t"; case "u": var t = d.getDay(); if(t == 0) { return "7"; } else if(t == null) { return "null"; } else { return "" + t; } break; case "w": return Std.string(d.getDay()); case "y": return StringTools.lpad(Std.string(d.getFullYear() % 100),"0",2); default: throw new haxe_exceptions_NotImplementedException("Date.format %" + e + "- not implemented yet.",null,{ fileName : "DateTools.hx", lineNumber : 101, className : "DateTools", methodName : "__format_get"}); } }; DateTools.__format = function(d,f) { var r_b = ""; var p = 0; while(true) { var np = f.indexOf("%",p); if(np < 0) { break; } var len = np - p; r_b += len == null ? HxOverrides.substr(f,p,null) : HxOverrides.substr(f,p,len); r_b += Std.string(DateTools.__format_get(d,HxOverrides.substr(f,np + 1,1))); p = np + 2; } var len = f.length - p; r_b += len == null ? HxOverrides.substr(f,p,null) : HxOverrides.substr(f,p,len); return r_b; }; DateTools.format = function(d,f) { return DateTools.__format(d,f); }; DateTools.delta = function(d,t) { return new Date(d.getTime() + t); }; DateTools.getMonthDays = function(d) { var month = d.getMonth(); var year = d.getFullYear(); if(month != 1) { return DateTools.DAYS_OF_MONTH[month]; } var isB = year % 4 == 0 && year % 100 != 0 || year % 400 == 0; if(isB) { return 29; } else { return 28; } }; DateTools.seconds = function(n) { return n * 1000.0; }; DateTools.minutes = function(n) { return n * 60.0 * 1000.0; }; DateTools.hours = function(n) { return n * 60.0 * 60.0 * 1000.0; }; DateTools.days = function(n) { return n * 24.0 * 60.0 * 60.0 * 1000.0; }; DateTools.parse = function(t) { var s = t / 1000; var m = s / 60; var h = m / 60; return { ms : t % 1000, seconds : s % 60 | 0, minutes : m % 60 | 0, hours : h % 24 | 0, days : h / 24 | 0}; }; DateTools.make = function(o) { return o.ms + 1000.0 * (o.seconds + 60.0 * (o.minutes + 60.0 * (o.hours + 24.0 * o.days))); }; DateTools.makeUtc = function(year,month,day,hour,min,sec) { return Date.UTC(year,month,day,hour,min,sec); }; var EReg = function(r,opt) { this.r = new RegExp(r,opt.split("u").join("")); }; $hxClasses["EReg"] = EReg; EReg.__name__ = "EReg"; EReg.escape = function(s) { return s.replace(EReg.escapeRe,"\\$&"); }; 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 haxe_Exception.thrown("EReg::matched"); } } ,matchedLeft: function() { if(this.r.m == null) { throw haxe_Exception.thrown("No string matched"); } return HxOverrides.substr(this.r.s,0,this.r.m.index); } ,matchedRight: function() { if(this.r.m == null) { throw haxe_Exception.thrown("No string matched"); } var sz = this.r.m.index + this.r.m[0].length; return HxOverrides.substr(this.r.s,sz,this.r.s.length - sz); } ,matchedPos: function() { if(this.r.m == null) { throw haxe_Exception.thrown("No string matched"); } return { pos : this.r.m.index, len : this.r.m[0].length}; } ,matchSub: function(s,pos,len) { if(len == null) { len = -1; } if(this.r.global) { this.r.lastIndex = pos; this.r.m = this.r.exec(len < 0 ? s : HxOverrides.substr(s,0,pos + len)); var b = this.r.m != null; if(b) { this.r.s = s; } return b; } else { var b = this.match(len < 0 ? HxOverrides.substr(s,pos,null) : HxOverrides.substr(s,pos,len)); if(b) { this.r.s = s; this.r.m.index += pos; } return b; } } ,split: function(s) { var d = "#__delim__#"; return s.replace(this.r,d).split(d); } ,replace: function(s,by) { return s.replace(this.r,by); } ,map: function(s,f) { var offset = 0; var buf_b = ""; do { if(offset >= s.length) { break; } else if(!this.matchSub(s,offset)) { buf_b += Std.string(HxOverrides.substr(s,offset,null)); break; } var p = this.matchedPos(); buf_b += Std.string(HxOverrides.substr(s,offset,p.pos - offset)); buf_b += Std.string(f(this)); if(p.len == 0) { buf_b += Std.string(HxOverrides.substr(s,p.pos,1)); offset = p.pos + 1; } else { offset = p.pos + p.len; } } while(this.r.global); if(!this.r.global && offset > 0 && offset < s.length) { buf_b += Std.string(HxOverrides.substr(s,offset,null)); } return buf_b; } ,__class__: EReg }; var EnumValue = {}; EnumValue.match = function(this1,pattern) { return false; }; var HxOverrides = function() { }; $hxClasses["HxOverrides"] = HxOverrides; HxOverrides.__name__ = "HxOverrides"; HxOverrides.dateStr = function(date) { var m = date.getMonth() + 1; var d = date.getDate(); var h = date.getHours(); var mi = date.getMinutes(); var s = date.getSeconds(); return date.getFullYear() + "-" + (m < 10 ? "0" + m : "" + m) + "-" + (d < 10 ? "0" + d : "" + d) + " " + (h < 10 ? "0" + h : "" + h) + ":" + (mi < 10 ? "0" + mi : "" + mi) + ":" + (s < 10 ? "0" + s : "" + s); }; HxOverrides.strDate = function(s) { switch(s.length) { 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 k = s.split("-"); return new Date(k[0],k[1] - 1,k[2],0,0,0); case 19: var k = s.split(" "); var y = k[0].split("-"); var t = k[1].split(":"); return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]); default: throw haxe_Exception.thrown("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(len == null) { len = s.length; } else if(len < 0) { if(pos == 0) { len = s.length + len; } else { return ""; } } 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.lastIndexOf = function(a,obj,i) { var len = a.length; if(i >= len) { i = len - 1; } else if(i < 0) { i += len; } while(i >= 0) { if(((a[i]) === obj)) { return i; } --i; } return -1; }; HxOverrides.remove = function(a,obj) { var i = a.indexOf(obj); 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++]; }}; }; HxOverrides.keyValueIter = function(a) { return new haxe_iterators_ArrayKeyValueIterator(a); }; HxOverrides.now = function() { return Date.now(); }; var IntIterator = function(min,max) { this.min = min; this.max = max; }; $hxClasses["IntIterator"] = IntIterator; IntIterator.__name__ = "IntIterator"; IntIterator.prototype = { min: null ,max: null ,hasNext: function() { return this.min < this.max; } ,next: function() { return this.min++; } ,__class__: IntIterator }; var json2object_reader_BaseParser = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } this.ignoreUnknownVariables = false; this.errors = errors; this.putils = putils; this.errorType = errorType; this.ignoreUnknownVariables = ignoreUnknownVariables; }; $hxClasses["json2object.reader.BaseParser"] = json2object_reader_BaseParser; json2object_reader_BaseParser.__name__ = "json2object.reader.BaseParser"; json2object_reader_BaseParser.prototype = { value: null ,errors: null ,errorType: null ,putils: null ,ignoreUnknownVariables: null ,fromJson: function(jsonString,filename) { if(filename == null) { filename = ""; } this.putils = new json2object_PositionUtils(jsonString); this.errors = []; try { var json = new hxjsonast_Parser(jsonString,filename).doParse(); this.loadJson(json); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof hxjsonast_Error)) { var e = _g1; this.errors.push(json2object_Error.ParserError(e.message,this.putils.convertPosition(e.pos))); } else { throw _g; } } return this.value; } ,loadJson: function(json,variable) { if(variable == null) { variable = ""; } var pos = this.putils.convertPosition(json.pos); var _g = json.value; switch(_g._hx_index) { case 0: var s = _g.s; this.loadJsonString(s,pos,variable); break; case 1: var n = _g.s; this.loadJsonNumber(n,pos,variable); break; case 2: var o = _g.fields; this.loadJsonObject(o,pos,variable); break; case 3: var a = _g.values; this.loadJsonArray(a,pos,variable); break; case 4: var b = _g.b; this.loadJsonBool(b,pos,variable); break; case 5: this.loadJsonNull(pos,variable); break; } return this.value; } ,loadJsonNull: function(pos,variable) { this.onIncorrectType(pos,variable); } ,loadJsonString: function(s,pos,variable) { this.onIncorrectType(pos,variable); } ,loadString: function(s,pos,variable,validValues,defaultValue) { if(validValues.indexOf(s) != -1) { return s; } this.onIncorrectType(pos,variable); return defaultValue; } ,loadJsonNumber: function(f,pos,variable) { this.onIncorrectType(pos,variable); } ,loadJsonUInt: function(f,pos,variable,value) { var uint = 0; f = StringTools.trim(f); var neg = f.charAt(0) == "-"; if(neg) { f = HxOverrides.substr(f,1,null); } var hex = StringTools.startsWith(f,"0x"); if(hex) { f = HxOverrides.substr(f,2,null); } var base = hex ? 16 : 10; var pow = 1; var i = f.length - 1; while(i >= 0) { var cur = hex ? Std.parseInt("0x" + f.charAt(i)) : Std.parseInt(f.charAt(i)); if(cur == null) { this.onIncorrectType(pos,variable); return value; } uint = uint + pow * cur; pow *= base; --i; } return uint; } ,loadJsonInt: function(f,pos,variable,value) { if(Std.parseInt(f) != null && Std.parseInt(f) == parseFloat(f)) { return Std.parseInt(f); } this.onIncorrectType(pos,variable); return value; } ,loadJsonFloat: function(f,pos,variable,value) { if(Std.parseInt(f) != null) { return parseFloat(f); } this.onIncorrectType(pos,variable); return value; } ,loadJsonBool: function(b,pos,variable) { this.onIncorrectType(pos,variable); } ,loadJsonArray: function(a,pos,variable) { this.onIncorrectType(pos,variable); } ,loadJsonArrayValue: function(a,loadJsonFn,variable) { var _g = []; var _g1 = 0; while(_g1 < a.length) { var j = a[_g1]; ++_g1; var tmp; try { tmp = loadJsonFn(j,variable); } catch( _g2 ) { haxe_NativeStackTrace.lastError = _g2; var _g3 = haxe_Exception.caught(_g2).unwrap(); if(js_Boot.__instanceof(_g3,json2object_InternalError)) { var e = _g3; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } continue; } else { throw _g2; } } _g.push(tmp); } return _g; } ,loadJsonObject: function(o,pos,variable) { this.onIncorrectType(pos,variable); } ,loadObjectField: function(loadJsonFn,field,name,assigned,defaultValue,pos) { try { var ret = loadJsonFn(field.value,field.name); this.mapSet(assigned,name,true); return ret; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,json2object_InternalError)) { var e = _g1; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } } else { var e = _g1; this.errors.push(json2object_Error.CustomFunctionException(e,pos)); } } return defaultValue; } ,loadObjectFieldReflect: function(loadJsonFn,field,name,assigned,pos) { try { this.value[name] = loadJsonFn(field.value,field.name); this.mapSet(assigned,name,true); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,json2object_InternalError)) { var e = _g1; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } } else { var e = _g1; this.errors.push(json2object_Error.CustomFunctionException(e,pos)); } } } ,objectSetupAssign: function(assigned,keys,values) { var _g = 0; var _g1 = keys.length; while(_g < _g1) { var i = _g++; this.mapSet(assigned,keys[i],values[i]); } } ,objectErrors: function(assigned,pos) { var lastPos = this.putils.convertPosition(new hxjsonast_Position(pos.file,pos.max - 1,pos.max - 1)); var h = assigned.h; var s_h = h; var s_keys = Object.keys(h); var s_length = s_keys.length; var s_current = 0; while(s_current < s_length) { var s = s_keys[s_current++]; if(!assigned.h[s]) { this.errors.push(json2object_Error.UninitializedVariable(s,lastPos)); } } } ,onIncorrectType: function(pos,variable) { this.parsingThrow(); } ,parsingThrow: function() { if(this.errorType != 0) { throw haxe_Exception.thrown(json2object_InternalError.ParsingThrow); } } ,objectThrow: function(pos,variable) { if(this.errorType == 2) { throw haxe_Exception.thrown(json2object_InternalError.ParsingThrow); } if(this.errorType == 1) { this.errors.push(json2object_Error.UninitializedVariable(variable,pos)); } } ,mapSet: function(map,key,value) { map.h[key] = value; } ,__class__: json2object_reader_BaseParser }; var JsonParser_$0 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_0"] = JsonParser_$0; JsonParser_$0.__name__ = "JsonParser_0"; JsonParser_$0.__super__ = json2object_reader_BaseParser; JsonParser_$0.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongMetadata",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["version","songName","artist","charter","divisions","looped","offsets","playData","generatedBy","timeFormat","timeChanges"],[false,false,false,true,true,true,true,false,false,true,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "artist": this.value.artist = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"artist",assigned,this.value.artist,pos); break; case "charter": this.value.charter = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"charter",assigned,this.value.charter,pos); break; case "divisions": this.value.divisions = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"divisions",assigned,this.value.divisions,pos); break; case "generatedBy": this.value.generatedBy = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"generatedBy",assigned,this.value.generatedBy,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$25(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$39(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "playData": this.value.playData = this.loadObjectField(($_=new JsonParser_$40(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"playData",assigned,this.value.playData,pos); break; case "songName": this.value.songName = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songName",assigned,this.value.songName,pos); break; case "timeChanges": this.value.timeChanges = this.loadObjectField(($_=new JsonParser_$22(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeChanges",assigned,this.value.timeChanges,pos); break; case "timeFormat": this.value.timeFormat = this.loadObjectField(($_=new JsonParser_$21(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeFormat",assigned,this.value.timeFormat,pos); break; case "version": this.value.version = this.loadObjectField(funkin_data_DataParse.semverVersion,field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongMetadata.prototype); value.version = new JsonParser_$20([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.songName = "Unknown"; value.artist = "Unknown"; value.charter = null; value.divisions = 96; value.looped = false; value.offsets = new JsonParser_$39([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.playData = new JsonParser_$40([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); value.timeFormat = "ms"; value.timeChanges = new JsonParser_$22([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$0 }); var JsonParser_$1 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_1"] = JsonParser_$1; JsonParser_$1.__name__ = "JsonParser_1"; JsonParser_$1.__super__ = json2object_reader_BaseParser; JsonParser_$1.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.migrator.SongMetadata_v2_1_0",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["playData","version","songName","artist","divisions","looped","generatedBy","timeFormat","timeChanges"],[false,false,false,false,true,true,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "artist": this.value.artist = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"artist",assigned,this.value.artist,pos); break; case "divisions": this.value.divisions = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"divisions",assigned,this.value.divisions,pos); break; case "generatedBy": this.value.generatedBy = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"generatedBy",assigned,this.value.generatedBy,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$25(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; case "playData": this.value.playData = this.loadObjectField(($_=new JsonParser_$36(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"playData",assigned,this.value.playData,pos); break; case "songName": this.value.songName = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songName",assigned,this.value.songName,pos); break; case "timeChanges": this.value.timeChanges = this.loadObjectField(($_=new JsonParser_$22(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeChanges",assigned,this.value.timeChanges,pos); break; case "timeFormat": this.value.timeFormat = this.loadObjectField(($_=new JsonParser_$21(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeFormat",assigned,this.value.timeFormat,pos); break; case "version": this.value.version = this.loadObjectField(funkin_data_DataParse.semverVersion,field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_migrator_SongMetadata_$v2_$1_$0.prototype); value.playData = new JsonParser_$36([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.version = new JsonParser_$20([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.songName = "Unknown"; value.artist = "Unknown"; value.divisions = 96; value.looped = false; value.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); value.timeFormat = new JsonParser_$21([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.timeChanges = new JsonParser_$22([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$1 }); var JsonParser_$10 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_10"] = JsonParser_$10; JsonParser_$10.__name__ = "JsonParser_10"; JsonParser_$10.__super__ = json2object_reader_BaseParser; JsonParser_$10.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$11(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$10([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$10 }); var JsonParser_$100 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_100"] = JsonParser_$100; JsonParser_$100.__name__ = "JsonParser_100"; JsonParser_$100.__super__ = json2object_reader_BaseParser; JsonParser_$100.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?looped : Null, ?fadeTime : Null, asset : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["asset","fadeTime","looped"],[false,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "asset": this.value.asset = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"asset",assigned,this.value.asset,pos); break; case "fadeTime": this.value.fadeTime = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"fadeTime",assigned,this.value.fadeTime,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { asset : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), fadeTime : 0.0, looped : false}; } ,__class__: JsonParser_$100 }); var JsonParser_$102 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_102"] = JsonParser_$102; JsonParser_$102.__name__ = "JsonParser_102"; JsonParser_$102.__super__ = json2object_reader_BaseParser; JsonParser_$102.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.dialogue.conversation.OutroData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.errors.push(json2object_Error.IncorrectEnumValue(variable,"OutroData",pos)); this.parsingThrow(); } ,loadJsonObject: function(o,pos,variable) { if(o.length != 1) { this.errors.push(json2object_Error.IncorrectType(variable,"OutroData",pos)); this.parsingThrow(); } else { var field = o[0]; var _g = o[0].value.value; if(_g._hx_index == 2) { var s0 = _g.fields; switch(field.name) { case "FADE": var _names = ["data"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"OutroData",pos)); this.parsingThrow(); } var __data = new JsonParser_$108(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __data1 = __data.loadJson(_g[0].value,field.name + "." + "data"); this.value = funkin_data_dialogue_conversation_OutroData.FADE(__data1); break; case "NONE": var _names = ["data"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"OutroData",pos)); this.parsingThrow(); } var __data = new JsonParser_$106(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __data1 = __data.loadJson(_g[0].value,field.name + "." + "data"); this.value = funkin_data_dialogue_conversation_OutroData.NONE(__data1); break; default: this.errors.push(json2object_Error.IncorrectEnumValue(variable,"OutroData",pos)); this.parsingThrow(); } } else { this.errors.push(json2object_Error.IncorrectType(field.name,"OutroData",this.putils.convertPosition(field.value.pos))); this.parsingThrow(); } } } ,getAuto: function() { return new JsonParser_$102([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$102 }); var JsonParser_$106 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_106"] = JsonParser_$106; JsonParser_$106.__name__ = "JsonParser_106"; JsonParser_$106.__super__ = json2object_reader_BaseParser; JsonParser_$106.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ type : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["type"],[false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; if(field.name == "type") { this.value.type = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"type",assigned,this.value.type,pos); } else if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { type : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$106 }); var JsonParser_$108 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_108"] = JsonParser_$108; JsonParser_$108.__name__ = "JsonParser_108"; JsonParser_$108.__super__ = json2object_reader_BaseParser; JsonParser_$108.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ type : String, ?fadeTime : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["fadeTime","type"],[true,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "fadeTime": this.value.fadeTime = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"fadeTime",assigned,this.value.fadeTime,pos); break; case "type": this.value.type = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"type",assigned,this.value.type,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { fadeTime : 1.0, type : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$108 }); var JsonParser_$11 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_11"] = JsonParser_$11; JsonParser_$11.__name__ = "JsonParser_11"; JsonParser_$11.__super__ = json2object_reader_BaseParser; JsonParser_$11.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongNoteData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var tmp = new JsonParser_$12(this.errors,this.putils,0,this.ignoreUnknownVariables); var _this = this.putils; this.value = tmp.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JObject(o),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } ,getAuto: function() { return new JsonParser_$11([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$11 }); var JsonParser_$110 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_110"] = JsonParser_$110; JsonParser_$110.__name__ = "JsonParser_110"; JsonParser_$110.__super__ = json2object_reader_BaseParser; JsonParser_$110.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ text : Array, ?speed : Null, speakerAnimation : String, speaker : String, boxAnimation : String, box : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["box","boxAnimation","speaker","speakerAnimation","speed","text"],[false,false,false,false,true,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "box": this.value.box = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"box",assigned,this.value.box,pos); break; case "boxAnimation": this.value.boxAnimation = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"boxAnimation",assigned,this.value.boxAnimation,pos); break; case "speaker": this.value.speaker = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"speaker",assigned,this.value.speaker,pos); break; case "speakerAnimation": this.value.speakerAnimation = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"speakerAnimation",assigned,this.value.speakerAnimation,pos); break; case "speed": this.value.speed = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"speed",assigned,this.value.speed,pos); break; case "text": this.value.text = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"text",assigned,this.value.text,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { box : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), boxAnimation : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), speaker : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), speakerAnimation : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), speed : 1.0, text : new JsonParser_$34([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$110 }); var JsonParser_$112 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_112"] = JsonParser_$112; JsonParser_$112.__name__ = "JsonParser_112"; JsonParser_$112.__super__ = json2object_reader_BaseParser; JsonParser_$112.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ type : String, ?fadeTime : Null, color : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["color","fadeTime","type"],[false,true,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "color": this.value.color = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"color",assigned,this.value.color,pos); break; case "fadeTime": this.value.fadeTime = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"fadeTime",assigned,this.value.fadeTime,pos); break; case "type": this.value.type = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"type",assigned,this.value.type,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { color : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), fadeTime : 0.0, type : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$112 }); var JsonParser_$114 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_114"] = JsonParser_$114; JsonParser_$114.__name__ = "JsonParser_114"; JsonParser_$114.__super__ = json2object_reader_BaseParser; JsonParser_$114.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ version : String, text : funkin.data.dialogue.dialoguebox.DialogueBoxTextData, ?scale : Null, ?offsets : Null>, name : String, ?isPixel : Null, ?flipY : Null, ?flipX : Null, assetPath : String, ?animations : Null> }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["animations","assetPath","flipX","flipY","isPixel","name","offsets","scale","text","version"],[true,false,true,true,true,false,true,true,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "animations": this.value.animations = this.loadObjectField(($_=new JsonParser_$118(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"animations",assigned,this.value.animations,pos); break; case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "flipX": this.value.flipX = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipX",assigned,this.value.flipX,pos); break; case "flipY": this.value.flipY = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipY",assigned,this.value.flipY,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; case "text": this.value.text = this.loadObjectField(($_=new JsonParser_$116(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"text",assigned,this.value.text,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { animations : [], assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), flipX : false, flipY : false, isPixel : false, name : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), offsets : [0,0], scale : 1, text : new JsonParser_$116([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), version : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$114 }); var JsonParser_$116 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_116"] = JsonParser_$116; JsonParser_$116.__name__ = "JsonParser_116"; JsonParser_$116.__super__ = json2object_reader_BaseParser; JsonParser_$116.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?width : Null, ?size : Null, ?shadowWidth : Null, shadowColor : String, ?offsets : Null>, ?fontFamily : Null, ?color : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["color","fontFamily","offsets","shadowColor","shadowWidth","size","width"],[true,true,true,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "color": this.value.color = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"color",assigned,this.value.color,pos); break; case "fontFamily": this.value.fontFamily = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"fontFamily",assigned,this.value.fontFamily,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "shadowColor": this.value.shadowColor = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"shadowColor",assigned,this.value.shadowColor,pos); break; case "shadowWidth": this.value.shadowWidth = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"shadowWidth",assigned,this.value.shadowWidth,pos); break; case "size": this.value.size = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"size",assigned,this.value.size,pos); break; case "width": this.value.width = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"width",assigned,this.value.width,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { color : "#000000", fontFamily : "Arial", offsets : [0,0], shadowColor : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), shadowWidth : 0, size : 32, width : 300}; } ,__class__: JsonParser_$116 }); var JsonParser_$118 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_118"] = JsonParser_$118; JsonParser_$118.__name__ = "JsonParser_118"; JsonParser_$118.__super__ = json2object_reader_BaseParser; JsonParser_$118.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$120(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$118([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$118 }); var JsonParser_$12 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_12"] = JsonParser_$12; JsonParser_$12.__name__ = "JsonParser_12"; JsonParser_$12.__super__ = json2object_reader_BaseParser; JsonParser_$12.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongNoteDataRaw",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["time","data","length","kind"],[false,false,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "d": this.value.data = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "k": this.loadObjectFieldReflect(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"kind",assigned,pos); break; case "l": this.loadObjectFieldReflect(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"length",assigned,pos); break; case "t": this.loadObjectFieldReflect(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"time",assigned,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongNoteDataRaw.prototype); value["time"] = new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.data = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value["length"] = 0; value["kind"] = null; return value; } ,__class__: JsonParser_$12 }); var JsonParser_$120 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_120"] = JsonParser_$120; JsonParser_$120.__name__ = "JsonParser_120"; JsonParser_$120.__super__ = json2object_reader_BaseParser; JsonParser_$120.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?prefix : Null, ?offsets : Null>, name : String, ?looped : Null, ?frameRate : Null, ?frameIndices : Null>, ?flipY : Null, ?flipX : Null, ?assetPath : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","flipX","flipY","frameIndices","frameRate","looped","name","offsets","prefix"],[true,true,true,true,true,true,false,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "flipX": this.value.flipX = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipX",assigned,this.value.flipX,pos); break; case "flipY": this.value.flipY = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipY",assigned,this.value.flipY,pos); break; case "frameIndices": this.value.frameIndices = this.loadObjectField(($_=new JsonParser_$85(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"frameIndices",assigned,this.value.frameIndices,pos); break; case "frameRate": this.value.frameRate = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"frameRate",assigned,this.value.frameRate,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "prefix": this.value.prefix = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"prefix",assigned,this.value.prefix,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), flipX : false, flipY : false, frameIndices : [], frameRate : 24, looped : false, name : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), offsets : [0,0], prefix : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$120 }); var JsonParser_$122 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_122"] = JsonParser_$122; JsonParser_$122.__name__ = "JsonParser_122"; JsonParser_$122.__super__ = json2object_reader_BaseParser; JsonParser_$122.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ version : String, ?scale : Null, ?offsets : Null>, name : String, ?isPixel : Null, ?flipY : Null, ?flipX : Null, assetPath : String, ?animations : Null> }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["animations","assetPath","flipX","flipY","isPixel","name","offsets","scale","version"],[true,false,true,true,true,false,true,true,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "animations": this.value.animations = this.loadObjectField(($_=new JsonParser_$118(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"animations",assigned,this.value.animations,pos); break; case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "flipX": this.value.flipX = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipX",assigned,this.value.flipX,pos); break; case "flipY": this.value.flipY = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipY",assigned,this.value.flipY,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { animations : [], assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), flipX : false, flipY : false, isPixel : false, name : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), offsets : [0,0], scale : 1.0, version : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$122 }); var JsonParser_$123 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_123"] = JsonParser_$123; JsonParser_$123.__name__ = "JsonParser_123"; JsonParser_$123.__super__ = json2object_reader_BaseParser; JsonParser_$123.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.stage.StageData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["version","name","props","characters","cameraZoom"],[false,false,false,false,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "cameraZoom": this.value.cameraZoom = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"cameraZoom",assigned,this.value.cameraZoom,pos); break; case "characters": this.value.characters = this.loadObjectField(($_=new JsonParser_$126(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"characters",assigned,this.value.characters,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "props": this.value.props = this.loadObjectField(($_=new JsonParser_$124(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"props",assigned,this.value.props,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_stage_StageData.prototype); value.version = thx_semver_Version.toString(funkin_data_stage_StageRegistry.STAGE_DATA_VERSION); value.name = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.props = new JsonParser_$124([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.characters = new JsonParser_$126([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.cameraZoom = 1.0; return value; } ,__class__: JsonParser_$123 }); var JsonParser_$124 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_124"] = JsonParser_$124; JsonParser_$124.__name__ = "JsonParser_124"; JsonParser_$124.__super__ = json2object_reader_BaseParser; JsonParser_$124.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$130(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$124([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$124 }); var JsonParser_$126 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_126"] = JsonParser_$126; JsonParser_$126.__name__ = "JsonParser_126"; JsonParser_$126.__super__ = json2object_reader_BaseParser; JsonParser_$126.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ gf : funkin.data.stage.StageDataCharacter, dad : funkin.data.stage.StageDataCharacter, bf : funkin.data.stage.StageDataCharacter }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["bf","dad","gf"],[false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "bf": this.value.bf = this.loadObjectField(($_=new JsonParser_$128(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"bf",assigned,this.value.bf,pos); break; case "dad": this.value.dad = this.loadObjectField(($_=new JsonParser_$128(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"dad",assigned,this.value.dad,pos); break; case "gf": this.value.gf = this.loadObjectField(($_=new JsonParser_$128(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"gf",assigned,this.value.gf,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { bf : new JsonParser_$128([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), dad : new JsonParser_$128([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), gf : new JsonParser_$128([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$126 }); var JsonParser_$128 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_128"] = JsonParser_$128; JsonParser_$128.__name__ = "JsonParser_128"; JsonParser_$128.__super__ = json2object_reader_BaseParser; JsonParser_$128.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?zIndex : Null, ?scale : Null, ?position : Null>, ?cameraOffsets : Null> }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["cameraOffsets","position","scale","zIndex"],[true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "cameraOffsets": this.value.cameraOffsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"cameraOffsets",assigned,this.value.cameraOffsets,pos); break; case "position": this.value.position = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"position",assigned,this.value.position,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; case "zIndex": this.value.zIndex = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"zIndex",assigned,this.value.zIndex,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { cameraOffsets : new JsonParser_$79([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), position : [0,0], scale : 1, zIndex : 0}; } ,__class__: JsonParser_$128 }); var JsonParser_$13 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); this.value = 0; }; $hxClasses["JsonParser_13"] = JsonParser_$13; JsonParser_$13.__name__ = "JsonParser_13"; JsonParser_$13.__super__ = json2object_reader_BaseParser; JsonParser_$13.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Float",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNumber: function(f,pos,variable) { this.value = this.loadJsonFloat(f,pos,variable,this.value); } ,getAuto: function() { return new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$13 }); var JsonParser_$130 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_130"] = JsonParser_$130; JsonParser_$130.__name__ = "JsonParser_130"; JsonParser_$130.__super__ = json2object_reader_BaseParser; JsonParser_$130.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?zIndex : Null, ?startingAnimation : Null, ?scroll : Null>, ?scale : Null>>, position : Array, ?name : Null, ?isPixel : Null, ?danceEvery : Null, assetPath : String, ?animations : Null>, ?animType : Null, ?alpha : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["alpha","animType","animations","assetPath","danceEvery","isPixel","name","position","scale","scroll","startingAnimation","zIndex"],[true,true,true,false,true,true,true,false,true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "alpha": this.value.alpha = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"alpha",assigned,this.value.alpha,pos); break; case "animType": this.value.animType = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"animType",assigned,this.value.animType,pos); break; case "animations": this.value.animations = this.loadObjectField(($_=new JsonParser_$118(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"animations",assigned,this.value.animations,pos); break; case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "danceEvery": this.value.danceEvery = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"danceEvery",assigned,this.value.danceEvery,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "position": this.value.position = this.loadObjectField(($_=new JsonParser_$131(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"position",assigned,this.value.position,pos); break; case "scale": this.value.scale = this.loadObjectField(funkin_data_DataParse.eitherFloatOrFloats,field,"scale",assigned,this.value.scale,pos); break; case "scroll": this.value.scroll = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scroll",assigned,this.value.scroll,pos); break; case "startingAnimation": this.value.startingAnimation = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"startingAnimation",assigned,this.value.startingAnimation,pos); break; case "zIndex": this.value.zIndex = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"zIndex",assigned,this.value.zIndex,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { alpha : 1.0, animType : "sparrow", animations : [], assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), danceEvery : 0, isPixel : false, name : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), position : new JsonParser_$131([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), scale : haxe_ds_Either.Left(1.0), scroll : [0,0], startingAnimation : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), zIndex : 0}; } ,__class__: JsonParser_$130 }); var JsonParser_$131 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_131"] = JsonParser_$131; JsonParser_$131.__name__ = "JsonParser_131"; JsonParser_$131.__super__ = json2object_reader_BaseParser; JsonParser_$131.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$13(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$131([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$131 }); var JsonParser_$133 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_133"] = JsonParser_$133; JsonParser_$133.__name__ = "JsonParser_133"; JsonParser_$133.__super__ = json2object_reader_BaseParser; JsonParser_$133.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?valid : Null, notes : Array, events : Array }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["events","notes","valid"],[false,false,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "events": this.value.events = this.loadObjectField(($_=new JsonParser_$6(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"events",assigned,this.value.events,pos); break; case "notes": this.value.notes = this.loadObjectField(($_=new JsonParser_$10(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"notes",assigned,this.value.notes,pos); break; case "valid": this.value.valid = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"valid",assigned,this.value.valid,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { events : new JsonParser_$6([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), notes : new JsonParser_$10([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), valid : new JsonParser_$46([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$133 }); var JsonParser_$135 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_135"] = JsonParser_$135; JsonParser_$135.__name__ = "JsonParser_135"; JsonParser_$135.__super__ = json2object_reader_BaseParser; JsonParser_$135.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?visible : Null, version : String, titleAsset : String, songs : Array, props : Array, name : String, ?background : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["background","name","props","songs","titleAsset","version","visible"],[true,false,false,false,false,false,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "background": this.value.background = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"background",assigned,this.value.background,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "props": this.value.props = this.loadObjectField(($_=new JsonParser_$136(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"props",assigned,this.value.props,pos); break; case "songs": this.value.songs = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songs",assigned,this.value.songs,pos); break; case "titleAsset": this.value.titleAsset = this.loadObjectField(funkin_data_DataParse.stringNotEmpty,field,"titleAsset",assigned,this.value.titleAsset,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; case "visible": this.value.visible = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"visible",assigned,this.value.visible,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { background : "#F9CF51", name : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), props : [], songs : ["bopeebo"], titleAsset : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), version : thx_semver_Version.toString(funkin_data_story_level_LevelRegistry.LEVEL_DATA_VERSION), visible : true}; } ,__class__: JsonParser_$135 }); var JsonParser_$136 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_136"] = JsonParser_$136; JsonParser_$136.__name__ = "JsonParser_136"; JsonParser_$136.__super__ = json2object_reader_BaseParser; JsonParser_$136.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$138(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$136([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$136 }); var JsonParser_$138 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_138"] = JsonParser_$138; JsonParser_$138.__name__ = "JsonParser_138"; JsonParser_$138.__super__ = json2object_reader_BaseParser; JsonParser_$138.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?scale : Null, ?offsets : Null>, ?isPixel : Null, ?danceEvery : Null, assetPath : String, ?animations : Null>, ?alpha : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["alpha","animations","assetPath","danceEvery","isPixel","offsets","scale"],[true,true,false,true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "alpha": this.value.alpha = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"alpha",assigned,this.value.alpha,pos); break; case "animations": this.value.animations = this.loadObjectField(($_=new JsonParser_$118(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"animations",assigned,this.value.animations,pos); break; case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "danceEvery": this.value.danceEvery = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"danceEvery",assigned,this.value.danceEvery,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { alpha : 1.0, animations : [], assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), danceEvery : 1, isPixel : false, offsets : [0,0], scale : 1.0}; } ,__class__: JsonParser_$138 }); var JsonParser_$14 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); this.value = 0; }; $hxClasses["JsonParser_14"] = JsonParser_$14; JsonParser_$14.__name__ = "JsonParser_14"; JsonParser_$14.__super__ = json2object_reader_BaseParser; JsonParser_$14.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Int",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNumber: function(f,pos,variable) { this.value = this.loadJsonInt(f,pos,variable,this.value); } ,getAuto: function() { return new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$14 }); var JsonParser_$140 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_140"] = JsonParser_$140; JsonParser_$140.__name__ = "JsonParser_140"; JsonParser_$140.__super__ = json2object_reader_BaseParser; JsonParser_$140.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ version : String, name : String, artists : Array, albumTitleAsset : String, ?albumTitleAnimations : Null>, albumArtAsset : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["albumArtAsset","albumTitleAnimations","albumTitleAsset","artists","name","version"],[false,true,false,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "albumArtAsset": this.value.albumArtAsset = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"albumArtAsset",assigned,this.value.albumArtAsset,pos); break; case "albumTitleAnimations": this.value.albumTitleAnimations = this.loadObjectField(($_=new JsonParser_$118(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"albumTitleAnimations",assigned,this.value.albumTitleAnimations,pos); break; case "albumTitleAsset": this.value.albumTitleAsset = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"albumTitleAsset",assigned,this.value.albumTitleAsset,pos); break; case "artists": this.value.artists = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"artists",assigned,this.value.artists,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { albumArtAsset : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), albumTitleAnimations : [], albumTitleAsset : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), artists : new JsonParser_$34([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), name : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), version : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$140 }); var JsonParser_$141 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_141"] = JsonParser_$141; JsonParser_$141.__name__ = "JsonParser_141"; JsonParser_$141.__super__ = json2object_reader_BaseParser; JsonParser_$141.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.importer.ChartManifestData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["version","songId"],[false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "songId": this.value.songId = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songId",assigned,this.value.songId,pos); break; case "version": this.value.version = this.loadObjectField(funkin_data_DataParse.semverVersion,field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_importer_ChartManifestData.prototype); value.version = funkin_data_song_importer_ChartManifestData.CHART_MANIFEST_DATA_VERSION; value.songId = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$141 }); var JsonParser_$142 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_142"] = JsonParser_$142; JsonParser_$142.__name__ = "JsonParser_142"; JsonParser_$142.__super__ = json2object_reader_BaseParser; JsonParser_$142.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.importer.FNFLegacyData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["song"],[false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; if(field.name == "song") { this.value.song = this.loadObjectField(($_=new JsonParser_$143(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"song",assigned,this.value.song,pos); } else if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_importer_FNFLegacyData.prototype); value.song = new JsonParser_$143([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$142 }); var JsonParser_$143 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_143"] = JsonParser_$143; JsonParser_$143.__name__ = "JsonParser_143"; JsonParser_$143.__super__ = json2object_reader_BaseParser; JsonParser_$143.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.importer.LegacySongData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["player1","player2","speed","stageDefault","bpm","notes","song"],[false,false,false,true,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "bpm": this.value.bpm = this.loadObjectField(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"bpm",assigned,this.value.bpm,pos); break; case "notes": this.value.notes = this.loadObjectField(funkin_data_DataParse.eitherLegacyNoteData,field,"notes",assigned,this.value.notes,pos); break; case "player1": this.value.player1 = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"player1",assigned,this.value.player1,pos); break; case "player2": this.value.player2 = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"player2",assigned,this.value.player2,pos); break; case "song": this.value.song = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"song",assigned,this.value.song,pos); break; case "speed": this.value.speed = this.loadObjectField(funkin_data_DataParse.eitherLegacyScrollSpeeds,field,"speed",assigned,this.value.speed,pos); break; case "stageDefault": this.value.stageDefault = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"stageDefault",assigned,this.value.stageDefault,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_importer_LegacySongData.prototype); value.player1 = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.player2 = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.speed = new JsonParser_$144([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.stageDefault = new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.bpm = new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.notes = new JsonParser_$145([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.song = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$143 }); var JsonParser_$144 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_144"] = JsonParser_$144; JsonParser_$144.__name__ = "JsonParser_144"; JsonParser_$144.__super__ = json2object_reader_BaseParser; JsonParser_$144.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"haxe.ds.Either",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.errors.push(json2object_Error.IncorrectEnumValue(variable,"Either",pos)); this.parsingThrow(); } ,loadJsonObject: function(o,pos,variable) { if(o.length != 1) { this.errors.push(json2object_Error.IncorrectType(variable,"Either",pos)); this.parsingThrow(); } else { var field = o[0]; var _g = o[0].value.value; if(_g._hx_index == 2) { var s0 = _g.fields; switch(field.name) { case "Left": var _names = ["v"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"Either",pos)); this.parsingThrow(); } var __v = new JsonParser_$13(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __v1 = __v.loadJson(_g[0].value,field.name + "." + "v"); this.value = haxe_ds_Either.Left(__v1); break; case "Right": var _names = ["v"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"Either",pos)); this.parsingThrow(); } var __v = new JsonParser_$156(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __v1 = __v.loadJson(_g[0].value,field.name + "." + "v"); this.value = haxe_ds_Either.Right(__v1); break; default: this.errors.push(json2object_Error.IncorrectEnumValue(variable,"Either",pos)); this.parsingThrow(); } } else { this.errors.push(json2object_Error.IncorrectType(field.name,"Either",this.putils.convertPosition(field.value.pos))); this.parsingThrow(); } } } ,getAuto: function() { return new JsonParser_$144([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$144 }); var JsonParser_$145 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_145"] = JsonParser_$145; JsonParser_$145.__name__ = "JsonParser_145"; JsonParser_$145.__super__ = json2object_reader_BaseParser; JsonParser_$145.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"haxe.ds.Either, funkin.data.song.importer.LegacyNoteData>",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.errors.push(json2object_Error.IncorrectEnumValue(variable,"Either",pos)); this.parsingThrow(); } ,loadJsonObject: function(o,pos,variable) { if(o.length != 1) { this.errors.push(json2object_Error.IncorrectType(variable,"Either",pos)); this.parsingThrow(); } else { var field = o[0]; var _g = o[0].value.value; if(_g._hx_index == 2) { var s0 = _g.fields; switch(field.name) { case "Left": var _names = ["v"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"Either",pos)); this.parsingThrow(); } var __v = new JsonParser_$146(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __v1 = __v.loadJson(_g[0].value,field.name + "." + "v"); this.value = haxe_ds_Either.Left(__v1); break; case "Right": var _names = ["v"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"Either",pos)); this.parsingThrow(); } var __v = new JsonParser_$148(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __v1 = __v.loadJson(_g[0].value,field.name + "." + "v"); this.value = haxe_ds_Either.Right(__v1); break; default: this.errors.push(json2object_Error.IncorrectEnumValue(variable,"Either",pos)); this.parsingThrow(); } } else { this.errors.push(json2object_Error.IncorrectType(field.name,"Either",this.putils.convertPosition(field.value.pos))); this.parsingThrow(); } } } ,getAuto: function() { return new JsonParser_$145([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$145 }); var JsonParser_$146 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_146"] = JsonParser_$146; JsonParser_$146.__name__ = "JsonParser_146"; JsonParser_$146.__super__ = json2object_reader_BaseParser; JsonParser_$146.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$152(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$146([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$146 }); var JsonParser_$148 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_148"] = JsonParser_$148; JsonParser_$148.__name__ = "JsonParser_148"; JsonParser_$148.__super__ = json2object_reader_BaseParser; JsonParser_$148.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?normal : Null>, ?hard : Null>, ?easy : Null> }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["easy","hard","normal"],[true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "easy": this.value.easy = this.loadObjectField(($_=new JsonParser_$150(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"easy",assigned,this.value.easy,pos); break; case "hard": this.value.hard = this.loadObjectField(($_=new JsonParser_$150(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"hard",assigned,this.value.hard,pos); break; case "normal": this.value.normal = this.loadObjectField(($_=new JsonParser_$150(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"normal",assigned,this.value.normal,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { easy : new JsonParser_$150([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), hard : new JsonParser_$150([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), normal : new JsonParser_$150([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$148 }); var JsonParser_$150 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_150"] = JsonParser_$150; JsonParser_$150.__name__ = "JsonParser_150"; JsonParser_$150.__super__ = json2object_reader_BaseParser; JsonParser_$150.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$152(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$150([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$150 }); var JsonParser_$152 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_152"] = JsonParser_$152; JsonParser_$152.__name__ = "JsonParser_152"; JsonParser_$152.__super__ = json2object_reader_BaseParser; JsonParser_$152.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?typeOfSection : Null, sectionNotes : Array, mustHitSection : Bool, ?lengthInSteps : Null, ?changeBPM : Null, ?bpm : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["bpm","changeBPM","lengthInSteps","mustHitSection","sectionNotes","typeOfSection"],[true,true,true,false,false,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "bpm": this.value.bpm = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"bpm",assigned,this.value.bpm,pos); break; case "changeBPM": this.value.changeBPM = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"changeBPM",assigned,this.value.changeBPM,pos); break; case "lengthInSteps": this.value.lengthInSteps = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"lengthInSteps",assigned,this.value.lengthInSteps,pos); break; case "mustHitSection": this.value.mustHitSection = this.loadObjectField(($_=new JsonParser_$25(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"mustHitSection",assigned,this.value.mustHitSection,pos); break; case "sectionNotes": this.value.sectionNotes = this.loadObjectField(($_=new JsonParser_$153(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"sectionNotes",assigned,this.value.sectionNotes,pos); break; case "typeOfSection": this.value.typeOfSection = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"typeOfSection",assigned,this.value.typeOfSection,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { bpm : new JsonParser_$81([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), changeBPM : new JsonParser_$46([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), lengthInSteps : new JsonParser_$24([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), mustHitSection : new JsonParser_$25([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), sectionNotes : new JsonParser_$153([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), typeOfSection : new JsonParser_$24([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$152 }); var JsonParser_$153 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_153"] = JsonParser_$153; JsonParser_$153.__name__ = "JsonParser_153"; JsonParser_$153.__super__ = json2object_reader_BaseParser; JsonParser_$153.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$154(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$153([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$153 }); var JsonParser_$154 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_154"] = JsonParser_$154; JsonParser_$154.__name__ = "JsonParser_154"; JsonParser_$154.__super__ = json2object_reader_BaseParser; JsonParser_$154.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.importer.LegacyNote",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,getAuto: function() { return new JsonParser_$154([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,loadJson: function(json,variable) { if(variable == null) { variable = ""; } return this.value = funkin_data_DataParse.legacyNote(json,variable); } ,__class__: JsonParser_$154 }); var JsonParser_$156 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_156"] = JsonParser_$156; JsonParser_$156.__name__ = "JsonParser_156"; JsonParser_$156.__super__ = json2object_reader_BaseParser; JsonParser_$156.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?normal : Null, ?hard : Null, ?easy : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["easy","hard","normal"],[true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "easy": this.value.easy = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"easy",assigned,this.value.easy,pos); break; case "hard": this.value.hard = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"hard",assigned,this.value.hard,pos); break; case "normal": this.value.normal = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"normal",assigned,this.value.normal,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { easy : new JsonParser_$81([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), hard : new JsonParser_$81([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), normal : new JsonParser_$81([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$156 }); var JsonParser_$16 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_16"] = JsonParser_$16; JsonParser_$16.__name__ = "JsonParser_16"; JsonParser_$16.__super__ = json2object_reader_BaseParser; JsonParser_$16.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"String",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.value = s; } ,getAuto: function() { return new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$16 }); var JsonParser_$17 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_17"] = JsonParser_$17; JsonParser_$17.__name__ = "JsonParser_17"; JsonParser_$17.__super__ = json2object_reader_BaseParser; JsonParser_$17.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongEventData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var tmp = new JsonParser_$18(this.errors,this.putils,0,this.ignoreUnknownVariables); var _this = this.putils; this.value = tmp.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JObject(o),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } ,getAuto: function() { return new JsonParser_$17([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$17 }); var JsonParser_$18 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_18"] = JsonParser_$18; JsonParser_$18.__name__ = "JsonParser_18"; JsonParser_$18.__super__ = json2object_reader_BaseParser; JsonParser_$18.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongEventDataRaw",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["time","eventKind","value"],[false,false,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "e": this.value.eventKind = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"eventKind",assigned,this.value.eventKind,pos); break; case "t": this.loadObjectFieldReflect(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"time",assigned,pos); break; case "v": this.value.value = this.loadObjectField(funkin_data_DataParse.dynamicValue,field,"value",assigned,this.value.value,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongEventDataRaw.prototype); value["time"] = new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.eventKind = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.value = null; return value; } ,__class__: JsonParser_$18 }); var JsonParser_$19 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_19"] = JsonParser_$19; JsonParser_$19.__name__ = "JsonParser_19"; JsonParser_$19.__super__ = json2object_reader_BaseParser; JsonParser_$19.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.migrator.SongPlayData_v2_0_0",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["playableChars","noteSkin","songVariations","difficulties","stage"],[false,false,true,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "difficulties": this.value.difficulties = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"difficulties",assigned,this.value.difficulties,pos); break; case "noteSkin": this.value.noteSkin = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"noteSkin",assigned,this.value.noteSkin,pos); break; case "playableChars": this.value.playableChars = this.loadObjectField(($_=new JsonParser_$33(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"playableChars",assigned,this.value.playableChars,pos); break; case "songVariations": this.value.songVariations = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songVariations",assigned,this.value.songVariations,pos); break; case "stage": this.value.stage = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"stage",assigned,this.value.stage,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_migrator_SongPlayData_$v2_$0_$0.prototype); value.playableChars = new JsonParser_$33([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.noteSkin = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.songVariations = []; value.difficulties = new JsonParser_$34([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.stage = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$19 }); var JsonParser_$2 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_2"] = JsonParser_$2; JsonParser_$2.__name__ = "JsonParser_2"; JsonParser_$2.__super__ = json2object_reader_BaseParser; JsonParser_$2.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.migrator.SongMetadata_v2_0_0",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["playData","variation","version","songName","artist","divisions","looped","generatedBy","timeFormat","timeChanges"],[false,true,false,false,false,true,true,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "artist": this.value.artist = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"artist",assigned,this.value.artist,pos); break; case "divisions": this.value.divisions = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"divisions",assigned,this.value.divisions,pos); break; case "generatedBy": this.value.generatedBy = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"generatedBy",assigned,this.value.generatedBy,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$25(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; case "playData": this.value.playData = this.loadObjectField(($_=new JsonParser_$19(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"playData",assigned,this.value.playData,pos); break; case "songName": this.value.songName = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songName",assigned,this.value.songName,pos); break; case "timeChanges": this.value.timeChanges = this.loadObjectField(($_=new JsonParser_$22(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeChanges",assigned,this.value.timeChanges,pos); break; case "timeFormat": this.value.timeFormat = this.loadObjectField(($_=new JsonParser_$21(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeFormat",assigned,this.value.timeFormat,pos); break; case "variation": this.value.variation = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"variation",assigned,this.value.variation,pos); break; case "version": this.value.version = this.loadObjectField(funkin_data_DataParse.semverVersion,field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_migrator_SongMetadata_$v2_$0_$0.prototype); value.playData = new JsonParser_$19([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.variation = "default"; value.version = new JsonParser_$20([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.songName = "Unknown"; value.artist = "Unknown"; value.divisions = 96; value.looped = false; value.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); value.timeFormat = new JsonParser_$21([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.timeChanges = new JsonParser_$22([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$2 }); var JsonParser_$20 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_20"] = JsonParser_$20; JsonParser_$20.__name__ = "JsonParser_20"; JsonParser_$20.__super__ = json2object_reader_BaseParser; JsonParser_$20.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"thx.semver.Version",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { var tmp = new JsonParser_$9(this.errors,this.putils,0,this.ignoreUnknownVariables); var _this = this.putils; this.value = thx_semver_Version.stringToVersion(tmp.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JString(s),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable)); } ,loadJsonArray: function(a,pos,variable) { var tmp = new JsonParser_$27(this.errors,this.putils,0,this.ignoreUnknownVariables); var _this = this.putils; this.value = thx_semver_Version.arrayToVersion(tmp.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JArray(a),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable)); } ,loadJsonObject: function(o,pos,variable) { var tmp = new JsonParser_$29(this.errors,this.putils,0,this.ignoreUnknownVariables); var _this = this.putils; this.value = tmp.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JObject(o),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } ,getAuto: function() { return new JsonParser_$20([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$20 }); var JsonParser_$21 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_21"] = JsonParser_$21; JsonParser_$21.__name__ = "JsonParser_21"; JsonParser_$21.__super__ = json2object_reader_BaseParser; JsonParser_$21.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.value = "ticks"; this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongTimeFormat",pos)); this.objectThrow(pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.value = this.loadString(s,pos,variable,["ticks","float","ms"],"ticks"); } ,getAuto: function() { return new JsonParser_$21([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$21 }); var JsonParser_$22 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_22"] = JsonParser_$22; JsonParser_$22.__name__ = "JsonParser_22"; JsonParser_$22.__super__ = json2object_reader_BaseParser; JsonParser_$22.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$26(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$22([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$22 }); var JsonParser_$24 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_24"] = JsonParser_$24; JsonParser_$24.__name__ = "JsonParser_24"; JsonParser_$24.__super__ = json2object_reader_BaseParser; JsonParser_$24.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Int",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonNumber: function(f,pos,variable) { this.value = this.loadJsonInt(f,pos,variable,this.value); } ,getAuto: function() { return new JsonParser_$24([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$24 }); var JsonParser_$25 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); this.value = false; }; $hxClasses["JsonParser_25"] = JsonParser_$25; JsonParser_$25.__name__ = "JsonParser_25"; JsonParser_$25.__super__ = json2object_reader_BaseParser; JsonParser_$25.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Bool",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonBool: function(b,pos,variable) { this.value = b; } ,getAuto: function() { return new JsonParser_$25([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$25 }); var JsonParser_$26 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_26"] = JsonParser_$26; JsonParser_$26.__name__ = "JsonParser_26"; JsonParser_$26.__super__ = json2object_reader_BaseParser; JsonParser_$26.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongTimeChange",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["timeStamp","beatTime","bpm","timeSignatureNum","timeSignatureDen","beatTuplets"],[false,true,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "b": this.value.beatTime = this.loadObjectField(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"beatTime",assigned,this.value.beatTime,pos); break; case "bpm": this.value.bpm = this.loadObjectField(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"bpm",assigned,this.value.bpm,pos); break; case "bt": this.value.beatTuplets = this.loadObjectField(($_=new JsonParser_$27(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"beatTuplets",assigned,this.value.beatTuplets,pos); break; case "d": this.value.timeSignatureDen = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeSignatureDen",assigned,this.value.timeSignatureDen,pos); break; case "n": this.value.timeSignatureNum = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeSignatureNum",assigned,this.value.timeSignatureNum,pos); break; case "t": this.value.timeStamp = this.loadObjectField(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeStamp",assigned,this.value.timeStamp,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongTimeChange.prototype); value.timeStamp = new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.beatTime = new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.bpm = new JsonParser_$13([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.timeSignatureNum = 4; value.timeSignatureDen = 4; value.beatTuplets = new JsonParser_$27([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$26 }); var JsonParser_$27 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_27"] = JsonParser_$27; JsonParser_$27.__name__ = "JsonParser_27"; JsonParser_$27.__super__ = json2object_reader_BaseParser; JsonParser_$27.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$14(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$27([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$27 }); var JsonParser_$29 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_29"] = JsonParser_$29; JsonParser_$29.__name__ = "JsonParser_29"; JsonParser_$29.__super__ = json2object_reader_BaseParser; JsonParser_$29.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ version : Array, pre : Array, build : Array }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["build","pre","version"],[false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "build": this.value.build = this.loadObjectField(($_=new JsonParser_$30(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"build",assigned,this.value.build,pos); break; case "pre": this.value.pre = this.loadObjectField(($_=new JsonParser_$30(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"pre",assigned,this.value.pre,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$27(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { build : new JsonParser_$30([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), pre : new JsonParser_$30([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), version : new JsonParser_$27([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$29 }); var JsonParser_$3 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_3"] = JsonParser_$3; JsonParser_$3.__name__ = "JsonParser_3"; JsonParser_$3.__super__ = json2object_reader_BaseParser; JsonParser_$3.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongChartData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["version","scrollSpeed","events","notes","generatedBy"],[false,false,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "events": this.value.events = this.loadObjectField(($_=new JsonParser_$6(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"events",assigned,this.value.events,pos); break; case "generatedBy": this.value.generatedBy = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"generatedBy",assigned,this.value.generatedBy,pos); break; case "notes": this.value.notes = this.loadObjectField(($_=new JsonParser_$8(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"notes",assigned,this.value.notes,pos); break; case "scrollSpeed": this.value.scrollSpeed = this.loadObjectField(($_=new JsonParser_$5(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scrollSpeed",assigned,this.value.scrollSpeed,pos); break; case "version": this.value.version = this.loadObjectField(funkin_data_DataParse.semverVersion,field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongChartData.prototype); value.version = funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION; value.scrollSpeed = new JsonParser_$5([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.events = new JsonParser_$6([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.notes = new JsonParser_$8([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); return value; } ,__class__: JsonParser_$3 }); var JsonParser_$30 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_30"] = JsonParser_$30; JsonParser_$30.__name__ = "JsonParser_30"; JsonParser_$30.__super__ = json2object_reader_BaseParser; JsonParser_$30.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$31(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$30([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$30 }); var JsonParser_$31 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_31"] = JsonParser_$31; JsonParser_$31.__name__ = "JsonParser_31"; JsonParser_$31.__super__ = json2object_reader_BaseParser; JsonParser_$31.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"thx.semver.Identifier",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.errors.push(json2object_Error.IncorrectEnumValue(variable,"Identifier",pos)); this.parsingThrow(); } ,loadJsonObject: function(o,pos,variable) { if(o.length != 1) { this.errors.push(json2object_Error.IncorrectType(variable,"Identifier",pos)); this.parsingThrow(); } else { var field = o[0]; var _g = o[0].value.value; if(_g._hx_index == 2) { var s0 = _g.fields; switch(field.name) { case "IntId": var _names = ["value"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"Identifier",pos)); this.parsingThrow(); } var __value = new JsonParser_$14(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __value1 = __value.loadJson(_g[0].value,field.name + "." + "value"); this.value = thx_semver_Identifier.IntId(__value1); break; case "StringId": var _names = ["value"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"Identifier",pos)); this.parsingThrow(); } var __value = new JsonParser_$9(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __value1 = __value.loadJson(_g[0].value,field.name + "." + "value"); this.value = thx_semver_Identifier.StringId(__value1); break; default: this.errors.push(json2object_Error.IncorrectEnumValue(variable,"Identifier",pos)); this.parsingThrow(); } } else { this.errors.push(json2object_Error.IncorrectType(field.name,"Identifier",this.putils.convertPosition(field.value.pos))); this.parsingThrow(); } } } ,getAuto: function() { return new JsonParser_$31([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$31 }); var JsonParser_$33 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_33"] = JsonParser_$33; JsonParser_$33.__name__ = "JsonParser_33"; JsonParser_$33.__super__ = json2object_reader_BaseParser; JsonParser_$33.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"haxe.ds.Map",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { this.value = new haxe_ds_StringMap(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; var this1 = this.value; var key; try { var key1 = new JsonParser_$9(this.errors,this.putils,2,this.ignoreUnknownVariables); var _this = this.putils; key = key1.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JString(field.name),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var _g2 = haxe_Exception.caught(_g1).unwrap(); if(js_Boot.__instanceof(_g2,json2object_InternalError)) { var e = _g2; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } continue; } else { throw _g1; } } var value; try { value = new JsonParser_$35(this.errors,this.putils,2,this.ignoreUnknownVariables).loadJson(field.value,field.name); } catch( _g3 ) { haxe_NativeStackTrace.lastError = _g3; var _g4 = haxe_Exception.caught(_g3).unwrap(); if(js_Boot.__instanceof(_g4,json2object_InternalError)) { var e1 = _g4; if(e1 != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e1); } continue; } else { throw _g3; } } this1.h[key] = value; } } ,getAuto: function() { return new JsonParser_$33([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$33 }); var JsonParser_$34 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_34"] = JsonParser_$34; JsonParser_$34.__name__ = "JsonParser_34"; JsonParser_$34.__super__ = json2object_reader_BaseParser; JsonParser_$34.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$9(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$34([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$34 }); var JsonParser_$35 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_35"] = JsonParser_$35; JsonParser_$35.__name__ = "JsonParser_35"; JsonParser_$35.__super__ = json2object_reader_BaseParser; JsonParser_$35.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.migrator.SongPlayableChar_v2_0_0",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["girlfriend","opponent","inst"],[true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "g": this.value.girlfriend = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"girlfriend",assigned,this.value.girlfriend,pos); break; case "i": this.value.inst = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"inst",assigned,this.value.inst,pos); break; case "o": this.value.opponent = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"opponent",assigned,this.value.opponent,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_migrator_SongPlayableChar_$v2_$0_$0.prototype); value.girlfriend = ""; value.opponent = ""; value.inst = ""; return value; } ,__class__: JsonParser_$35 }); var JsonParser_$36 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_36"] = JsonParser_$36; JsonParser_$36.__name__ = "JsonParser_36"; JsonParser_$36.__super__ = json2object_reader_BaseParser; JsonParser_$36.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.migrator.SongPlayData_v2_1_0",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["noteSkin","songVariations","difficulties","characters","stage"],[false,true,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "characters": this.value.characters = this.loadObjectField(($_=new JsonParser_$37(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"characters",assigned,this.value.characters,pos); break; case "difficulties": this.value.difficulties = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"difficulties",assigned,this.value.difficulties,pos); break; case "noteSkin": this.value.noteSkin = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"noteSkin",assigned,this.value.noteSkin,pos); break; case "songVariations": this.value.songVariations = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songVariations",assigned,this.value.songVariations,pos); break; case "stage": this.value.stage = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"stage",assigned,this.value.stage,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_migrator_SongPlayData_$v2_$1_$0.prototype); value.noteSkin = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.songVariations = []; value.difficulties = new JsonParser_$34([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.characters = new JsonParser_$37([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.stage = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$36 }); var JsonParser_$37 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_37"] = JsonParser_$37; JsonParser_$37.__name__ = "JsonParser_37"; JsonParser_$37.__super__ = json2object_reader_BaseParser; JsonParser_$37.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongCharacterData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["player","girlfriend","opponent","instrumental","altInstrumentals"],[true,true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "altInstrumentals": this.value.altInstrumentals = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"altInstrumentals",assigned,this.value.altInstrumentals,pos); break; case "girlfriend": this.value.girlfriend = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"girlfriend",assigned,this.value.girlfriend,pos); break; case "instrumental": this.value.instrumental = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"instrumental",assigned,this.value.instrumental,pos); break; case "opponent": this.value.opponent = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"opponent",assigned,this.value.opponent,pos); break; case "player": this.value.player = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"player",assigned,this.value.player,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongCharacterData.prototype); value.player = ""; value.girlfriend = ""; value.opponent = ""; value.instrumental = ""; value.altInstrumentals = []; return value; } ,__class__: JsonParser_$37 }); var JsonParser_$39 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_39"] = JsonParser_$39; JsonParser_$39.__name__ = "JsonParser_39"; JsonParser_$39.__super__ = json2object_reader_BaseParser; JsonParser_$39.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongOffsets",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["instrumental","altInstrumentals","vocals"],[true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "altInstrumentals": this.value.altInstrumentals = this.loadObjectField(($_=new JsonParser_$5(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"altInstrumentals",assigned,this.value.altInstrumentals,pos); break; case "instrumental": this.value.instrumental = this.loadObjectField(($_=new JsonParser_$13(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"instrumental",assigned,this.value.instrumental,pos); break; case "vocals": this.value.vocals = this.loadObjectField(($_=new JsonParser_$5(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"vocals",assigned,this.value.vocals,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongOffsets.prototype); value.instrumental = 0; value.altInstrumentals = new haxe_ds_StringMap(); value.vocals = new haxe_ds_StringMap(); return value; } ,__class__: JsonParser_$39 }); var JsonParser_$40 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_40"] = JsonParser_$40; JsonParser_$40.__name__ = "JsonParser_40"; JsonParser_$40.__super__ = json2object_reader_BaseParser; JsonParser_$40.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongPlayData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["songVariations","difficulties","characters","stage","noteStyle","ratings","album","previewStart","previewEnd"],[true,false,false,false,false,true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "album": this.value.album = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"album",assigned,this.value.album,pos); break; case "characters": this.value.characters = this.loadObjectField(($_=new JsonParser_$37(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"characters",assigned,this.value.characters,pos); break; case "difficulties": this.value.difficulties = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"difficulties",assigned,this.value.difficulties,pos); break; case "noteStyle": this.value.noteStyle = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"noteStyle",assigned,this.value.noteStyle,pos); break; case "previewEnd": this.value.previewEnd = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"previewEnd",assigned,this.value.previewEnd,pos); break; case "previewStart": this.value.previewStart = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"previewStart",assigned,this.value.previewStart,pos); break; case "ratings": this.value.ratings = this.loadObjectField(($_=new JsonParser_$42(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"ratings",assigned,this.value.ratings,pos); break; case "songVariations": this.value.songVariations = this.loadObjectField(($_=new JsonParser_$34(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songVariations",assigned,this.value.songVariations,pos); break; case "stage": this.value.stage = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"stage",assigned,this.value.stage,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongPlayData.prototype); value.songVariations = []; value.difficulties = new JsonParser_$34([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.characters = new JsonParser_$37([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.stage = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.noteStyle = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); var _g = new haxe_ds_StringMap(); _g.h["normal"] = 0; value.ratings = _g; value.album = new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.previewStart = 0; value.previewEnd = 15000; return value; } ,__class__: JsonParser_$40 }); var JsonParser_$42 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_42"] = JsonParser_$42; JsonParser_$42.__name__ = "JsonParser_42"; JsonParser_$42.__super__ = json2object_reader_BaseParser; JsonParser_$42.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"haxe.ds.Map",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { this.value = new haxe_ds_StringMap(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; var this1 = this.value; var key; try { var key1 = new JsonParser_$9(this.errors,this.putils,2,this.ignoreUnknownVariables); var _this = this.putils; key = key1.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JString(field.name),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var _g2 = haxe_Exception.caught(_g1).unwrap(); if(js_Boot.__instanceof(_g2,json2object_InternalError)) { var e = _g2; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } continue; } else { throw _g1; } } var value; try { value = new JsonParser_$14(this.errors,this.putils,2,this.ignoreUnknownVariables).loadJson(field.value,field.name); } catch( _g3 ) { haxe_NativeStackTrace.lastError = _g3; var _g4 = haxe_Exception.caught(_g3).unwrap(); if(js_Boot.__instanceof(_g4,json2object_InternalError)) { var e1 = _g4; if(e1 != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e1); } continue; } else { throw _g3; } } this1.h[key] = value; } } ,getAuto: function() { return new JsonParser_$42([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$42 }); var JsonParser_$43 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_43"] = JsonParser_$43; JsonParser_$43.__name__ = "JsonParser_43"; JsonParser_$43.__super__ = json2object_reader_BaseParser; JsonParser_$43.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.audio.waveform.WaveformData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["version","channels","sampleRate","samplesPerPoint","bits","length","data"],[false,false,false,false,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "bits": this.value.bits = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"bits",assigned,this.value.bits,pos); break; case "channels": this.value.channels = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"channels",assigned,this.value.channels,pos); break; case "data": this.value.data = this.loadObjectField(($_=new JsonParser_$27(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "length": this.value.length = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"length",assigned,this.value.length,pos); break; case "sample_rate": this.value.sampleRate = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"sampleRate",assigned,this.value.sampleRate,pos); break; case "samples_per_pixel": this.value.samplesPerPoint = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"samplesPerPoint",assigned,this.value.samplesPerPoint,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$14(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_audio_waveform_WaveformData.prototype); value.version = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.channels = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.sampleRate = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.samplesPerPoint = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.bits = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.length = new JsonParser_$14([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.data = new JsonParser_$27([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$43 }); var JsonParser_$44 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_44"] = JsonParser_$44; JsonParser_$44.__name__ = "JsonParser_44"; JsonParser_$44.__super__ = json2object_reader_BaseParser; JsonParser_$44.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.song.SongMusicData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["version","songName","artist","divisions","looped","generatedBy","timeFormat","timeChanges"],[false,false,false,true,true,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "artist": this.value.artist = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"artist",assigned,this.value.artist,pos); break; case "divisions": this.value.divisions = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"divisions",assigned,this.value.divisions,pos); break; case "generatedBy": this.value.generatedBy = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"generatedBy",assigned,this.value.generatedBy,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; case "songName": this.value.songName = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"songName",assigned,this.value.songName,pos); break; case "timeChanges": this.value.timeChanges = this.loadObjectField(($_=new JsonParser_$22(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeChanges",assigned,this.value.timeChanges,pos); break; case "timeFormat": this.value.timeFormat = this.loadObjectField(($_=new JsonParser_$21(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"timeFormat",assigned,this.value.timeFormat,pos); break; case "version": this.value.version = this.loadObjectField(funkin_data_DataParse.semverVersion,field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { var value = Object.create(funkin_data_song_SongMusicData.prototype); value.version = new JsonParser_$20([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.songName = "Unknown"; value.artist = "Unknown"; value.divisions = 96; value.looped = false; value.generatedBy = new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.timeFormat = new JsonParser_$21([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); value.timeChanges = new JsonParser_$22([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); return value; } ,__class__: JsonParser_$44 }); var JsonParser_$46 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_46"] = JsonParser_$46; JsonParser_$46.__name__ = "JsonParser_46"; JsonParser_$46.__super__ = json2object_reader_BaseParser; JsonParser_$46.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Bool",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonBool: function(b,pos,variable) { this.value = b; } ,getAuto: function() { return new JsonParser_$46([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$46 }); var JsonParser_$48 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_48"] = JsonParser_$48; JsonParser_$48.__name__ = "JsonParser_48"; JsonParser_$48.__super__ = json2object_reader_BaseParser; JsonParser_$48.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ version : String, name : String, ?fallback : Null, author : String, assets : funkin.data.notestyle.NoteStyleAssetsData }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assets","author","fallback","name","version"],[false,false,true,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assets": this.value.assets = this.loadObjectField(($_=new JsonParser_$50(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assets",assigned,this.value.assets,pos); break; case "author": this.value.author = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"author",assigned,this.value.author,pos); break; case "fallback": this.value.fallback = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"fallback",assigned,this.value.fallback,pos); break; case "name": this.value.name = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"name",assigned,this.value.name,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assets : new JsonParser_$50([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), author : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), fallback : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), name : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), version : thx_semver_Version.toString(funkin_data_notestyle_NoteStyleRegistry.NOTE_STYLE_DATA_VERSION)}; } ,__class__: JsonParser_$48 }); var JsonParser_$5 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_5"] = JsonParser_$5; JsonParser_$5.__name__ = "JsonParser_5"; JsonParser_$5.__super__ = json2object_reader_BaseParser; JsonParser_$5.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"haxe.ds.Map",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { this.value = new haxe_ds_StringMap(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; var this1 = this.value; var key; try { var key1 = new JsonParser_$9(this.errors,this.putils,2,this.ignoreUnknownVariables); var _this = this.putils; key = key1.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JString(field.name),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var _g2 = haxe_Exception.caught(_g1).unwrap(); if(js_Boot.__instanceof(_g2,json2object_InternalError)) { var e = _g2; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } continue; } else { throw _g1; } } var value; try { value = new JsonParser_$13(this.errors,this.putils,2,this.ignoreUnknownVariables).loadJson(field.value,field.name); } catch( _g3 ) { haxe_NativeStackTrace.lastError = _g3; var _g4 = haxe_Exception.caught(_g3).unwrap(); if(js_Boot.__instanceof(_g4,json2object_InternalError)) { var e1 = _g4; if(e1 != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e1); } continue; } else { throw _g3; } } this1.h[key] = value; } } ,getAuto: function() { return new JsonParser_$5([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$5 }); var JsonParser_$50 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_50"] = JsonParser_$50; JsonParser_$50.__name__ = "JsonParser_50"; JsonParser_$50.__super__ = json2object_reader_BaseParser; JsonParser_$50.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?noteStrumline : Null>, ?noteSplash : Null>, ?note : Null>, ?holdNoteCover : Null>, ?holdNote : Null> }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["holdNote","holdNoteCover","note","noteSplash","noteStrumline"],[true,true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "holdNote": this.value.holdNote = this.loadObjectField(($_=new JsonParser_$53(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"holdNote",assigned,this.value.holdNote,pos); break; case "holdNoteCover": this.value.holdNoteCover = this.loadObjectField(($_=new JsonParser_$56(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"holdNoteCover",assigned,this.value.holdNoteCover,pos); break; case "note": this.value.note = this.loadObjectField(($_=new JsonParser_$59(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"note",assigned,this.value.note,pos); break; case "noteSplash": this.value.noteSplash = this.loadObjectField(($_=new JsonParser_$62(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"noteSplash",assigned,this.value.noteSplash,pos); break; case "noteStrumline": this.value.noteStrumline = this.loadObjectField(($_=new JsonParser_$65(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"noteStrumline",assigned,this.value.noteStrumline,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { holdNote : new JsonParser_$53([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), holdNoteCover : new JsonParser_$56([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), note : new JsonParser_$59([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), noteSplash : new JsonParser_$62([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), noteStrumline : new JsonParser_$65([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$50 }); var JsonParser_$53 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_53"] = JsonParser_$53; JsonParser_$53.__name__ = "JsonParser_53"; JsonParser_$53.__super__ = json2object_reader_BaseParser; JsonParser_$53.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?scale : Null, ?offsets : Null>, ?isPixel : Null, data : funkin.data.notestyle.NoteStyleData_HoldNote, assetPath : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","data","isPixel","offsets","scale"],[false,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "data": this.value.data = this.loadObjectField(($_=new JsonParser_$93(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), data : new JsonParser_$93([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isPixel : false, offsets : [0,0], scale : 1.0}; } ,__class__: JsonParser_$53 }); var JsonParser_$56 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_56"] = JsonParser_$56; JsonParser_$56.__name__ = "JsonParser_56"; JsonParser_$56.__super__ = json2object_reader_BaseParser; JsonParser_$56.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?scale : Null, ?offsets : Null>, ?isPixel : Null, data : funkin.data.notestyle.NoteStyleData_HoldNoteCover, assetPath : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","data","isPixel","offsets","scale"],[false,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "data": this.value.data = this.loadObjectField(($_=new JsonParser_$91(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), data : new JsonParser_$91([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isPixel : false, offsets : [0,0], scale : 1.0}; } ,__class__: JsonParser_$56 }); var JsonParser_$59 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_59"] = JsonParser_$59; JsonParser_$59.__name__ = "JsonParser_59"; JsonParser_$59.__super__ = json2object_reader_BaseParser; JsonParser_$59.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?scale : Null, ?offsets : Null>, ?isPixel : Null, data : funkin.data.notestyle.NoteStyleData_Note, assetPath : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","data","isPixel","offsets","scale"],[false,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "data": this.value.data = this.loadObjectField(($_=new JsonParser_$89(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), data : new JsonParser_$89([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isPixel : false, offsets : [0,0], scale : 1.0}; } ,__class__: JsonParser_$59 }); var JsonParser_$6 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_6"] = JsonParser_$6; JsonParser_$6.__name__ = "JsonParser_6"; JsonParser_$6.__super__ = json2object_reader_BaseParser; JsonParser_$6.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$17(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$6([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$6 }); var JsonParser_$62 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_62"] = JsonParser_$62; JsonParser_$62.__name__ = "JsonParser_62"; JsonParser_$62.__super__ = json2object_reader_BaseParser; JsonParser_$62.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?scale : Null, ?offsets : Null>, ?isPixel : Null, data : funkin.data.notestyle.NoteStyleData_NoteSplash, assetPath : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","data","isPixel","offsets","scale"],[false,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "data": this.value.data = this.loadObjectField(($_=new JsonParser_$87(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), data : new JsonParser_$87([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isPixel : false, offsets : [0,0], scale : 1.0}; } ,__class__: JsonParser_$62 }); var JsonParser_$65 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_65"] = JsonParser_$65; JsonParser_$65.__name__ = "JsonParser_65"; JsonParser_$65.__super__ = json2object_reader_BaseParser; JsonParser_$65.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?scale : Null, ?offsets : Null>, ?isPixel : Null, data : funkin.data.notestyle.NoteStyleData_NoteStrumline, assetPath : String }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","data","isPixel","offsets","scale"],[false,false,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "data": this.value.data = this.loadObjectField(($_=new JsonParser_$77(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"data",assigned,this.value.data,pos); break; case "isPixel": this.value.isPixel = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"isPixel",assigned,this.value.isPixel,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "scale": this.value.scale = this.loadObjectField(($_=new JsonParser_$81(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"scale",assigned,this.value.scale,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), data : new JsonParser_$77([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), isPixel : false, offsets : [0,0], scale : 1.0}; } ,__class__: JsonParser_$65 }); var JsonParser_$77 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_77"] = JsonParser_$77; JsonParser_$77.__name__ = "JsonParser_77"; JsonParser_$77.__super__ = json2object_reader_BaseParser; JsonParser_$77.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ upStatic : funkin.data.animation.UnnamedAnimationData, upPress : funkin.data.animation.UnnamedAnimationData, upConfirmHold : funkin.data.animation.UnnamedAnimationData, upConfirm : funkin.data.animation.UnnamedAnimationData, rightStatic : funkin.data.animation.UnnamedAnimationData, rightPress : funkin.data.animation.UnnamedAnimationData, rightConfirmHold : funkin.data.animation.UnnamedAnimationData, rightConfirm : funkin.data.animation.UnnamedAnimationData, leftStatic : funkin.data.animation.UnnamedAnimationData, leftPress : funkin.data.animation.UnnamedAnimationData, leftConfirmHold : funkin.data.animation.UnnamedAnimationData, leftConfirm : funkin.data.animation.UnnamedAnimationData, downStatic : funkin.data.animation.UnnamedAnimationData, downPress : funkin.data.animation.UnnamedAnimationData, downConfirmHold : funkin.data.animation.UnnamedAnimationData, downConfirm : funkin.data.animation.UnnamedAnimationData }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["downConfirm","downConfirmHold","downPress","downStatic","leftConfirm","leftConfirmHold","leftPress","leftStatic","rightConfirm","rightConfirmHold","rightPress","rightStatic","upConfirm","upConfirmHold","upPress","upStatic"],[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "downConfirm": this.value.downConfirm = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"downConfirm",assigned,this.value.downConfirm,pos); break; case "downConfirmHold": this.value.downConfirmHold = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"downConfirmHold",assigned,this.value.downConfirmHold,pos); break; case "downPress": this.value.downPress = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"downPress",assigned,this.value.downPress,pos); break; case "downStatic": this.value.downStatic = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"downStatic",assigned,this.value.downStatic,pos); break; case "leftConfirm": this.value.leftConfirm = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"leftConfirm",assigned,this.value.leftConfirm,pos); break; case "leftConfirmHold": this.value.leftConfirmHold = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"leftConfirmHold",assigned,this.value.leftConfirmHold,pos); break; case "leftPress": this.value.leftPress = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"leftPress",assigned,this.value.leftPress,pos); break; case "leftStatic": this.value.leftStatic = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"leftStatic",assigned,this.value.leftStatic,pos); break; case "rightConfirm": this.value.rightConfirm = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"rightConfirm",assigned,this.value.rightConfirm,pos); break; case "rightConfirmHold": this.value.rightConfirmHold = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"rightConfirmHold",assigned,this.value.rightConfirmHold,pos); break; case "rightPress": this.value.rightPress = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"rightPress",assigned,this.value.rightPress,pos); break; case "rightStatic": this.value.rightStatic = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"rightStatic",assigned,this.value.rightStatic,pos); break; case "upConfirm": this.value.upConfirm = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"upConfirm",assigned,this.value.upConfirm,pos); break; case "upConfirmHold": this.value.upConfirmHold = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"upConfirmHold",assigned,this.value.upConfirmHold,pos); break; case "upPress": this.value.upPress = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"upPress",assigned,this.value.upPress,pos); break; case "upStatic": this.value.upStatic = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"upStatic",assigned,this.value.upStatic,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { downConfirm : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), downConfirmHold : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), downPress : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), downStatic : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), leftConfirm : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), leftConfirmHold : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), leftPress : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), leftStatic : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), rightConfirm : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), rightConfirmHold : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), rightPress : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), rightStatic : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), upConfirm : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), upConfirmHold : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), upPress : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), upStatic : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$77 }); var JsonParser_$79 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_79"] = JsonParser_$79; JsonParser_$79.__name__ = "JsonParser_79"; JsonParser_$79.__super__ = json2object_reader_BaseParser; JsonParser_$79.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$13(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$79([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$79 }); var JsonParser_$8 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_8"] = JsonParser_$8; JsonParser_$8.__name__ = "JsonParser_8"; JsonParser_$8.__super__ = json2object_reader_BaseParser; JsonParser_$8.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"haxe.ds.Map>",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { this.value = new haxe_ds_StringMap(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; var this1 = this.value; var key; try { var key1 = new JsonParser_$9(this.errors,this.putils,2,this.ignoreUnknownVariables); var _this = this.putils; key = key1.loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JString(field.name),new hxjsonast_Position(pos.file,pos.min - 1,pos.max - 1)),variable); } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var _g2 = haxe_Exception.caught(_g1).unwrap(); if(js_Boot.__instanceof(_g2,json2object_InternalError)) { var e = _g2; if(e != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e); } continue; } else { throw _g1; } } var value; try { value = new JsonParser_$10(this.errors,this.putils,2,this.ignoreUnknownVariables).loadJson(field.value,field.name); } catch( _g3 ) { haxe_NativeStackTrace.lastError = _g3; var _g4 = haxe_Exception.caught(_g3).unwrap(); if(js_Boot.__instanceof(_g4,json2object_InternalError)) { var e1 = _g4; if(e1 != json2object_InternalError.ParsingThrow) { throw haxe_Exception.thrown(e1); } continue; } else { throw _g3; } } this1.h[key] = value; } } ,getAuto: function() { return new JsonParser_$8([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$8 }); var JsonParser_$81 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_81"] = JsonParser_$81; JsonParser_$81.__name__ = "JsonParser_81"; JsonParser_$81.__super__ = json2object_reader_BaseParser; JsonParser_$81.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Float",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonNumber: function(f,pos,variable) { this.value = this.loadJsonFloat(f,pos,variable,this.value); } ,getAuto: function() { return new JsonParser_$81([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$81 }); var JsonParser_$83 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_83"] = JsonParser_$83; JsonParser_$83.__name__ = "JsonParser_83"; JsonParser_$83.__super__ = json2object_reader_BaseParser; JsonParser_$83.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?prefix : Null, ?offsets : Null>, ?looped : Null, ?frameRate : Null, ?frameIndices : Null>, ?flipY : Null, ?flipX : Null, ?assetPath : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["assetPath","flipX","flipY","frameIndices","frameRate","looped","offsets","prefix"],[true,true,true,true,true,true,true,true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "assetPath": this.value.assetPath = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"assetPath",assigned,this.value.assetPath,pos); break; case "flipX": this.value.flipX = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipX",assigned,this.value.flipX,pos); break; case "flipY": this.value.flipY = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"flipY",assigned,this.value.flipY,pos); break; case "frameIndices": this.value.frameIndices = this.loadObjectField(($_=new JsonParser_$85(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"frameIndices",assigned,this.value.frameIndices,pos); break; case "frameRate": this.value.frameRate = this.loadObjectField(($_=new JsonParser_$24(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"frameRate",assigned,this.value.frameRate,pos); break; case "looped": this.value.looped = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"looped",assigned,this.value.looped,pos); break; case "offsets": this.value.offsets = this.loadObjectField(($_=new JsonParser_$79(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"offsets",assigned,this.value.offsets,pos); break; case "prefix": this.value.prefix = this.loadObjectField(($_=new JsonParser_$16(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"prefix",assigned,this.value.prefix,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { assetPath : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), flipX : false, flipY : false, frameIndices : [], frameRate : 24, looped : false, offsets : [0,0], prefix : new JsonParser_$16([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$83 }); var JsonParser_$85 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_85"] = JsonParser_$85; JsonParser_$85.__name__ = "JsonParser_85"; JsonParser_$85.__super__ = json2object_reader_BaseParser; JsonParser_$85.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$14(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$85([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$85 }); var JsonParser_$87 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_87"] = JsonParser_$87; JsonParser_$87.__name__ = "JsonParser_87"; JsonParser_$87.__super__ = json2object_reader_BaseParser; JsonParser_$87.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?enabled : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["enabled"],[true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; if(field.name == "enabled") { this.value.enabled = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"enabled",assigned,this.value.enabled,pos); } else if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { enabled : true}; } ,__class__: JsonParser_$87 }); var JsonParser_$89 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_89"] = JsonParser_$89; JsonParser_$89.__name__ = "JsonParser_89"; JsonParser_$89.__super__ = json2object_reader_BaseParser; JsonParser_$89.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ up : funkin.data.animation.UnnamedAnimationData, right : funkin.data.animation.UnnamedAnimationData, left : funkin.data.animation.UnnamedAnimationData, down : funkin.data.animation.UnnamedAnimationData }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["down","left","right","up"],[false,false,false,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "down": this.value.down = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"down",assigned,this.value.down,pos); break; case "left": this.value.left = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"left",assigned,this.value.left,pos); break; case "right": this.value.right = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"right",assigned,this.value.right,pos); break; case "up": this.value.up = this.loadObjectField(($_=new JsonParser_$83(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"up",assigned,this.value.up,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { down : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), left : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), right : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), up : new JsonParser_$83([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$89 }); var JsonParser_$9 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_9"] = JsonParser_$9; JsonParser_$9.__name__ = "JsonParser_9"; JsonParser_$9.__super__ = json2object_reader_BaseParser; JsonParser_$9.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"String",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.value = s; } ,getAuto: function() { return new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$9 }); var JsonParser_$91 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_91"] = JsonParser_$91; JsonParser_$91.__name__ = "JsonParser_91"; JsonParser_$91.__super__ = json2object_reader_BaseParser; JsonParser_$91.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ ?enabled : Null }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["enabled"],[true]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; if(field.name == "enabled") { this.value.enabled = this.loadObjectField(($_=new JsonParser_$46(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"enabled",assigned,this.value.enabled,pos); } else if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { enabled : true}; } ,__class__: JsonParser_$91 }); var JsonParser_$93 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_93"] = JsonParser_$93; JsonParser_$93.__name__ = "JsonParser_93"; JsonParser_$93.__super__ = json2object_reader_BaseParser; JsonParser_$93.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,[],[]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; var _g1 = field.name; if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { }; } ,__class__: JsonParser_$93 }); var JsonParser_$95 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_95"] = JsonParser_$95; JsonParser_$95.__name__ = "JsonParser_95"; JsonParser_$95.__super__ = json2object_reader_BaseParser; JsonParser_$95.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"{ version : String, ?outro : Null, ?music : Null, dialogue : Array, backdrop : funkin.data.dialogue.conversation.BackdropData }",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonObject: function(o,pos,variable) { var assigned = new haxe_ds_StringMap(); this.objectSetupAssign(assigned,["backdrop","dialogue","music","outro","version"],[false,false,true,true,false]); this.value = this.getAuto(); var _g = 0; while(_g < o.length) { var field = o[_g]; ++_g; switch(field.name) { case "backdrop": this.value.backdrop = this.loadObjectField(funkin_data_DataParse.backdropData,field,"backdrop",assigned,this.value.backdrop,pos); break; case "dialogue": this.value.dialogue = this.loadObjectField(($_=new JsonParser_$97(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"dialogue",assigned,this.value.dialogue,pos); break; case "music": this.value.music = this.loadObjectField(($_=new JsonParser_$100(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"music",assigned,this.value.music,pos); break; case "outro": this.value.outro = this.loadObjectField(funkin_data_DataParse.outroData,field,"outro",assigned,this.value.outro,pos); break; case "version": this.value.version = this.loadObjectField(($_=new JsonParser_$9(this.errors,this.putils,1,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),field,"version",assigned,this.value.version,pos); break; default: if(!this.ignoreUnknownVariables) { this.errors.push(json2object_Error.UnknownVariable(field.name,this.putils.convertPosition(field.namePos))); } } } this.objectErrors(assigned,pos); } ,getAuto: function() { return { backdrop : new JsonParser_$96([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), dialogue : new JsonParser_$97([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), music : new JsonParser_$100([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), outro : new JsonParser_$102([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))), version : new JsonParser_$9([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1)))}; } ,__class__: JsonParser_$95 }); var JsonParser_$96 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_96"] = JsonParser_$96; JsonParser_$96.__name__ = "JsonParser_96"; JsonParser_$96.__super__ = json2object_reader_BaseParser; JsonParser_$96.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"funkin.data.dialogue.conversation.BackdropData",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonString: function(s,pos,variable) { this.errors.push(json2object_Error.IncorrectEnumValue(variable,"BackdropData",pos)); this.parsingThrow(); } ,loadJsonObject: function(o,pos,variable) { if(o.length != 1) { this.errors.push(json2object_Error.IncorrectType(variable,"BackdropData",pos)); this.parsingThrow(); } else { var field = o[0]; var _g = o[0].value.value; if(_g._hx_index == 2) { var s0 = _g.fields; if(field.name == "SOLID") { var _names = ["data"]; var tmp; if(s0.length == 1) { var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_names.indexOf(v.name) != -1) { _g.push(v); } } tmp = _g.length != s0.length; } else { tmp = true; } if(tmp) { this.errors.push(json2object_Error.InvalidEnumConstructor(field.name,"BackdropData",pos)); this.parsingThrow(); } var __data = new JsonParser_$112(this.errors,this.putils,2,this.ignoreUnknownVariables); var _g = []; var _g1 = 0; var _g2 = s0; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == _names[0]) { _g.push(v); } } var __data1 = __data.loadJson(_g[0].value,field.name + "." + "data"); this.value = funkin_data_dialogue_conversation_BackdropData.SOLID(__data1); } else { this.errors.push(json2object_Error.IncorrectEnumValue(variable,"BackdropData",pos)); this.parsingThrow(); } } else { this.errors.push(json2object_Error.IncorrectType(field.name,"BackdropData",this.putils.convertPosition(field.value.pos))); this.parsingThrow(); } } } ,getAuto: function() { return new JsonParser_$96([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$96 }); var JsonParser_$97 = function(errors,putils,errorType,ignoreUnknownVariables) { if(ignoreUnknownVariables == null) { ignoreUnknownVariables = false; } if(errorType == null) { errorType = 0; } json2object_reader_BaseParser.call(this,errors,putils,errorType,ignoreUnknownVariables); }; $hxClasses["JsonParser_97"] = JsonParser_$97; JsonParser_$97.__name__ = "JsonParser_97"; JsonParser_$97.__super__ = json2object_reader_BaseParser; JsonParser_$97.prototype = $extend(json2object_reader_BaseParser.prototype,{ onIncorrectType: function(pos,variable) { this.errors.push(json2object_Error.IncorrectType(variable,"Array",pos)); json2object_reader_BaseParser.prototype.onIncorrectType.call(this,pos,variable); } ,loadJsonNull: function(pos,variable) { this.value = null; } ,loadJsonArray: function(a,pos,variable) { this.value = this.loadJsonArrayValue(a,($_=new JsonParser_$110(this.errors,this.putils,2,this.ignoreUnknownVariables),$bind($_,$_.loadJson)),variable); } ,getAuto: function() { return new JsonParser_$97([],this.putils,0).loadJson(new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position("",0,1))); } ,__class__: JsonParser_$97 }); var JsonWriter_$0 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_0"] = JsonWriter_$0; JsonWriter_$0.__name__ = "JsonWriter_0"; JsonWriter_$0.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"version\": " + funkin_data_DataWrite.semverVersion(o.version),indent + space + "\"songName\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.songName,space,level + 1,false,onAllOptionalNull),indent + space + "\"artist\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.artist,space,level + 1,false,onAllOptionalNull),indent + space + "\"charter\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.charter,space,level + 1,false,onAllOptionalNull),indent + space + "\"divisions\": " + new JsonWriter_$5(this.ignoreNullOptionals)._write(o.divisions,space,level + 1,false,onAllOptionalNull),indent + space + "\"looped\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.looped,space,level + 1,false,onAllOptionalNull),indent + space + "\"offsets\": " + new JsonWriter_$8(this.ignoreNullOptionals)._write(o.offsets,space,level + 1,false,onAllOptionalNull),indent + space + "\"playData\": " + new JsonWriter_$12(this.ignoreNullOptionals)._write(o.playData,space,level + 1,false,onAllOptionalNull),indent + space + "\"generatedBy\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.generatedBy,space,level + 1,false,onAllOptionalNull),indent + space + "\"timeFormat\": " + new JsonWriter_$18(this.ignoreNullOptionals)._write(o.timeFormat,space,level + 1,false,onAllOptionalNull),indent + space + "\"timeChanges\": " + new JsonWriter_$19(this.ignoreNullOptionals)._write(o.timeChanges,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,o.charter == null,o.divisions == null,false,o.offsets == null,false,false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$0 }; var JsonWriter_$1 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_1"] = JsonWriter_$1; JsonWriter_$1.__name__ = "JsonWriter_1"; JsonWriter_$1.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + (o == null ? "null" : this.shouldQuote ? json2object_writer_StringUtils.quote(o) : o); } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$1 }; var JsonWriter_$11 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_11"] = JsonWriter_$11; JsonWriter_$11.__name__ = "JsonWriter_11"; JsonWriter_$11.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$9(this.ignoreNullOptionals); var _g = []; var h = o.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; _g.push(indent + space + "\"" + key + "\": " + valueWriter._write(o.h[key],space,level + 1,false,onAllOptionalNull)); } var values = _g; var newLine = space != "" && values.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += values.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$11 }; var JsonWriter_$12 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_12"] = JsonWriter_$12; JsonWriter_$12.__name__ = "JsonWriter_12"; JsonWriter_$12.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"songVariations\": " + new JsonWriter_$13(this.ignoreNullOptionals)._write(o.songVariations,space,level + 1,false,onAllOptionalNull),indent + space + "\"difficulties\": " + new JsonWriter_$13(this.ignoreNullOptionals)._write(o.difficulties,space,level + 1,false,onAllOptionalNull),indent + space + "\"characters\": " + new JsonWriter_$14(this.ignoreNullOptionals)._write(o.characters,space,level + 1,false,onAllOptionalNull),indent + space + "\"stage\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.stage,space,level + 1,false,onAllOptionalNull),indent + space + "\"noteStyle\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.noteStyle,space,level + 1,false,onAllOptionalNull),indent + space + "\"ratings\": " + new JsonWriter_$16(this.ignoreNullOptionals)._write(o.ratings,space,level + 1,false,onAllOptionalNull),indent + space + "\"album\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.album,space,level + 1,false,onAllOptionalNull),indent + space + "\"previewStart\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.previewStart,space,level + 1,false,onAllOptionalNull),indent + space + "\"previewEnd\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.previewEnd,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.songVariations == null,false,false,false,false,o.ratings == null,o.album == null,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$12 }; var JsonWriter_$13 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_13"] = JsonWriter_$13; JsonWriter_$13.__name__ = "JsonWriter_13"; JsonWriter_$13.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$1(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$13 }; var JsonWriter_$14 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_14"] = JsonWriter_$14; JsonWriter_$14.__name__ = "JsonWriter_14"; JsonWriter_$14.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"player\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.player,space,level + 1,false,onAllOptionalNull),indent + space + "\"girlfriend\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.girlfriend,space,level + 1,false,onAllOptionalNull),indent + space + "\"opponent\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.opponent,space,level + 1,false,onAllOptionalNull),indent + space + "\"instrumental\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.instrumental,space,level + 1,false,onAllOptionalNull),indent + space + "\"altInstrumentals\": " + new JsonWriter_$13(this.ignoreNullOptionals)._write(o.altInstrumentals,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.player == null,o.girlfriend == null,o.opponent == null,o.instrumental == null,o.altInstrumentals == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$14 }; var JsonWriter_$16 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_16"] = JsonWriter_$16; JsonWriter_$16.__name__ = "JsonWriter_16"; JsonWriter_$16.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$17(this.ignoreNullOptionals); var _g = []; var h = o.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; _g.push(indent + space + "\"" + key + "\": " + valueWriter._write(o.h[key],space,level + 1,false,onAllOptionalNull)); } var values = _g; var newLine = space != "" && values.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += values.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$16 }; var JsonWriter_$17 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_17"] = JsonWriter_$17; JsonWriter_$17.__name__ = "JsonWriter_17"; JsonWriter_$17.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + o; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$17 }; var JsonWriter_$18 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_18"] = JsonWriter_$18; JsonWriter_$18.__name__ = "JsonWriter_18"; JsonWriter_$18.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var tmp = indentFirst ? this.buildIndent(space,level) : ""; var tmp1; if(o == null) { tmp1 = "null"; } else { var str = o; tmp1 = this.shouldQuote ? json2object_writer_StringUtils.quote(str) : str; } return tmp + tmp1; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$18 }; var JsonWriter_$19 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_19"] = JsonWriter_$19; JsonWriter_$19.__name__ = "JsonWriter_19"; JsonWriter_$19.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$20(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$19 }; var JsonWriter_$20 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_20"] = JsonWriter_$20; JsonWriter_$20.__name__ = "JsonWriter_20"; JsonWriter_$20.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"t\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.timeStamp,space,level + 1,false,onAllOptionalNull),indent + space + "\"b\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.beatTime,space,level + 1,false,onAllOptionalNull),indent + space + "\"bpm\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.bpm,space,level + 1,false,onAllOptionalNull),indent + space + "\"n\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.timeSignatureNum,space,level + 1,false,onAllOptionalNull),indent + space + "\"d\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.timeSignatureDen,space,level + 1,false,onAllOptionalNull),indent + space + "\"bt\": " + new JsonWriter_$21(this.ignoreNullOptionals)._write(o.beatTuplets,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,false,false,o.beatTuplets == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$20 }; var JsonWriter_$21 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_21"] = JsonWriter_$21; JsonWriter_$21.__name__ = "JsonWriter_21"; JsonWriter_$21.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$17(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$21 }; var JsonWriter_$22 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_22"] = JsonWriter_$22; JsonWriter_$22.__name__ = "JsonWriter_22"; JsonWriter_$22.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"version\": " + funkin_data_DataWrite.semverVersion(o.version),indent + space + "\"scrollSpeed\": " + new JsonWriter_$11(this.ignoreNullOptionals)._write(o.scrollSpeed,space,level + 1,false,onAllOptionalNull),indent + space + "\"events\": " + new JsonWriter_$23(this.ignoreNullOptionals)._write(o.events,space,level + 1,false,onAllOptionalNull),indent + space + "\"notes\": " + new JsonWriter_$27(this.ignoreNullOptionals)._write(o.notes,space,level + 1,false,onAllOptionalNull),indent + space + "\"generatedBy\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.generatedBy,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$22 }; var JsonWriter_$23 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_23"] = JsonWriter_$23; JsonWriter_$23.__name__ = "JsonWriter_23"; JsonWriter_$23.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$25(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$23 }; var JsonWriter_$25 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_25"] = JsonWriter_$25; JsonWriter_$25.__name__ = "JsonWriter_25"; JsonWriter_$25.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"t\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.time,space,level + 1,false,onAllOptionalNull),indent + space + "\"e\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.eventKind,space,level + 1,false,onAllOptionalNull),indent + space + "\"v\": " + funkin_data_DataWrite.dynamicValue(o.value)]; if(this.ignoreNullOptionals) { var skips = [false,false,o.value == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$25 }; var JsonWriter_$27 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_27"] = JsonWriter_$27; JsonWriter_$27.__name__ = "JsonWriter_27"; JsonWriter_$27.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$28(this.ignoreNullOptionals); var _g = []; var h = o.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; _g.push(indent + space + "\"" + key + "\": " + valueWriter._write(o.h[key],space,level + 1,false,onAllOptionalNull)); } var values = _g; var newLine = space != "" && values.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += values.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$27 }; var JsonWriter_$28 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_28"] = JsonWriter_$28; JsonWriter_$28.__name__ = "JsonWriter_28"; JsonWriter_$28.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$30(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$28 }; var JsonWriter_$3 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_3"] = JsonWriter_$3; JsonWriter_$3.__name__ = "JsonWriter_3"; JsonWriter_$3.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var tmp = indentFirst ? this.buildIndent(space,level) : ""; var tmp1; if(o == null) { tmp1 = "null"; } else { var str = o; tmp1 = this.shouldQuote ? json2object_writer_StringUtils.quote(str) : str; } return tmp + tmp1; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$3 }; var JsonWriter_$30 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_30"] = JsonWriter_$30; JsonWriter_$30.__name__ = "JsonWriter_30"; JsonWriter_$30.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"t\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.time,space,level + 1,false,onAllOptionalNull),indent + space + "\"d\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.data,space,level + 1,false,onAllOptionalNull),indent + space + "\"l\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.length,space,level + 1,false,onAllOptionalNull),indent + space + "\"k\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(Reflect.field(o,"kind"),space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,Reflect.field(o,"kind") == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$30 }; var JsonWriter_$31 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_31"] = JsonWriter_$31; JsonWriter_$31.__name__ = "JsonWriter_31"; JsonWriter_$31.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"version\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.version,space,level + 1,false,onAllOptionalNull),indent + space + "\"name\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.name,space,level + 1,false,onAllOptionalNull),indent + space + "\"props\": " + new JsonWriter_$32(this.ignoreNullOptionals)._write(o.props,space,level + 1,false,onAllOptionalNull),indent + space + "\"characters\": " + new JsonWriter_$49(this.ignoreNullOptionals)._write(o.characters,space,level + 1,false,onAllOptionalNull),indent + space + "\"cameraZoom\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.cameraZoom,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,false,o.cameraZoom == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$31 }; var JsonWriter_$32 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_32"] = JsonWriter_$32; JsonWriter_$32.__name__ = "JsonWriter_32"; JsonWriter_$32.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$34(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$32 }; var JsonWriter_$34 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_34"] = JsonWriter_$34; JsonWriter_$34.__name__ = "JsonWriter_34"; JsonWriter_$34.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"alpha\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.alpha,space,level + 1,false,onAllOptionalNull),indent + space + "\"animType\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.animType,space,level + 1,false,onAllOptionalNull),indent + space + "\"animations\": " + new JsonWriter_$38(this.ignoreNullOptionals)._write(o.animations,space,level + 1,false,onAllOptionalNull),indent + space + "\"assetPath\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.assetPath,space,level + 1,false,onAllOptionalNull),indent + space + "\"danceEvery\": " + new JsonWriter_$5(this.ignoreNullOptionals)._write(o.danceEvery,space,level + 1,false,onAllOptionalNull),indent + space + "\"isPixel\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.isPixel,space,level + 1,false,onAllOptionalNull),indent + space + "\"name\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.name,space,level + 1,false,onAllOptionalNull),indent + space + "\"position\": " + new JsonWriter_$47(this.ignoreNullOptionals)._write(o.position,space,level + 1,false,onAllOptionalNull),indent + space + "\"scale\": " + funkin_data_DataWrite.eitherFloatOrFloats(o.scale),indent + space + "\"scroll\": " + new JsonWriter_$46(this.ignoreNullOptionals)._write(o.scroll,space,level + 1,false,onAllOptionalNull),indent + space + "\"startingAnimation\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.startingAnimation,space,level + 1,false,onAllOptionalNull),indent + space + "\"zIndex\": " + new JsonWriter_$5(this.ignoreNullOptionals)._write(o.zIndex,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.alpha == null,o.animType == null,o.animations == null,false,o.danceEvery == null,o.isPixel == null,o.name == null,false,o.scale == null,o.scroll == null,o.startingAnimation == null,o.zIndex == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$34 }; var JsonWriter_$36 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_36"] = JsonWriter_$36; JsonWriter_$36.__name__ = "JsonWriter_36"; JsonWriter_$36.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + (o == null ? "null" : o + ""); } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$36 }; var JsonWriter_$38 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_38"] = JsonWriter_$38; JsonWriter_$38.__name__ = "JsonWriter_38"; JsonWriter_$38.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$40(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$38 }; var JsonWriter_$40 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_40"] = JsonWriter_$40; JsonWriter_$40.__name__ = "JsonWriter_40"; JsonWriter_$40.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"assetPath\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.assetPath,space,level + 1,false,onAllOptionalNull),indent + space + "\"flipX\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.flipX,space,level + 1,false,onAllOptionalNull),indent + space + "\"flipY\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.flipY,space,level + 1,false,onAllOptionalNull),indent + space + "\"frameIndices\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.frameIndices,space,level + 1,false,onAllOptionalNull),indent + space + "\"frameRate\": " + new JsonWriter_$5(this.ignoreNullOptionals)._write(o.frameRate,space,level + 1,false,onAllOptionalNull),indent + space + "\"looped\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.looped,space,level + 1,false,onAllOptionalNull),indent + space + "\"name\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.name,space,level + 1,false,onAllOptionalNull),indent + space + "\"offsets\": " + new JsonWriter_$46(this.ignoreNullOptionals)._write(o.offsets,space,level + 1,false,onAllOptionalNull),indent + space + "\"prefix\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.prefix,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.assetPath == null,o.flipX == null,o.flipY == null,o.frameIndices == null,o.frameRate == null,o.looped == null,false,o.offsets == null,o.prefix == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$40 }; var JsonWriter_$42 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_42"] = JsonWriter_$42; JsonWriter_$42.__name__ = "JsonWriter_42"; JsonWriter_$42.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + (o == null ? "null" : (o == null ? "null" : "" + o) + ""); } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$42 }; var JsonWriter_$44 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_44"] = JsonWriter_$44; JsonWriter_$44.__name__ = "JsonWriter_44"; JsonWriter_$44.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$17(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$44 }; var JsonWriter_$46 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_46"] = JsonWriter_$46; JsonWriter_$46.__name__ = "JsonWriter_46"; JsonWriter_$46.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$9(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$46 }; var JsonWriter_$47 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_47"] = JsonWriter_$47; JsonWriter_$47.__name__ = "JsonWriter_47"; JsonWriter_$47.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$9(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$47 }; var JsonWriter_$49 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_49"] = JsonWriter_$49; JsonWriter_$49.__name__ = "JsonWriter_49"; JsonWriter_$49.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"bf\": " + new JsonWriter_$51(this.ignoreNullOptionals)._write(o.bf,space,level + 1,false,onAllOptionalNull),indent + space + "\"dad\": " + new JsonWriter_$51(this.ignoreNullOptionals)._write(o.dad,space,level + 1,false,onAllOptionalNull),indent + space + "\"gf\": " + new JsonWriter_$51(this.ignoreNullOptionals)._write(o.gf,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$49 }; var JsonWriter_$5 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_5"] = JsonWriter_$5; JsonWriter_$5.__name__ = "JsonWriter_5"; JsonWriter_$5.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + (o == null ? "null" : o + ""); } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$5 }; var JsonWriter_$51 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_51"] = JsonWriter_$51; JsonWriter_$51.__name__ = "JsonWriter_51"; JsonWriter_$51.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"cameraOffsets\": " + new JsonWriter_$46(this.ignoreNullOptionals)._write(o.cameraOffsets,space,level + 1,false,onAllOptionalNull),indent + space + "\"position\": " + new JsonWriter_$46(this.ignoreNullOptionals)._write(o.position,space,level + 1,false,onAllOptionalNull),indent + space + "\"scale\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.scale,space,level + 1,false,onAllOptionalNull),indent + space + "\"zIndex\": " + new JsonWriter_$5(this.ignoreNullOptionals)._write(o.zIndex,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.cameraOffsets == null,o.position == null,o.scale == null,o.zIndex == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$51 }; var JsonWriter_$53 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_53"] = JsonWriter_$53; JsonWriter_$53.__name__ = "JsonWriter_53"; JsonWriter_$53.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"events\": " + new JsonWriter_$23(this.ignoreNullOptionals)._write(o.events,space,level + 1,false,onAllOptionalNull),indent + space + "\"notes\": " + new JsonWriter_$28(this.ignoreNullOptionals)._write(o.notes,space,level + 1,false,onAllOptionalNull),indent + space + "\"valid\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.valid,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,o.valid == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$53 }; var JsonWriter_$54 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_54"] = JsonWriter_$54; JsonWriter_$54.__name__ = "JsonWriter_54"; JsonWriter_$54.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"version\": " + funkin_data_DataWrite.semverVersion(o.version),indent + space + "\"songId\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(o.songId,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$54 }; var JsonWriter_$56 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_56"] = JsonWriter_$56; JsonWriter_$56.__name__ = "JsonWriter_56"; JsonWriter_$56.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"api\": " + new JsonWriter_$58(this.ignoreNullOptionals)._write(o.api,space,level + 1,false,onAllOptionalNull),indent + space + "\"favoriteSongs\": " + new JsonWriter_$13(this.ignoreNullOptionals)._write(o.favoriteSongs,space,level + 1,false,onAllOptionalNull),indent + space + "\"mods\": " + new JsonWriter_$62(this.ignoreNullOptionals)._write(o.mods,space,level + 1,false,onAllOptionalNull),indent + space + "\"mute\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.mute,space,level + 1,false,onAllOptionalNull),indent + space + "\"options\": " + new JsonWriter_$64(this.ignoreNullOptionals)._write(o.options,space,level + 1,false,onAllOptionalNull),indent + space + "\"optionsChartEditor\": " + new JsonWriter_$70(this.ignoreNullOptionals)._write(o.optionsChartEditor,space,level + 1,false,onAllOptionalNull),indent + space + "\"scores\": " + new JsonWriter_$78(this.ignoreNullOptionals)._write(o.scores,space,level + 1,false,onAllOptionalNull),indent + space + "\"version\": " + new JsonWriter_$93(this.ignoreNullOptionals)._write(o.version,space,level + 1,false,onAllOptionalNull),indent + space + "\"volume\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.volume,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,false,false,false,false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$56 }; var JsonWriter_$58 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_58"] = JsonWriter_$58; JsonWriter_$58.__name__ = "JsonWriter_58"; JsonWriter_$58.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"newgrounds\": " + new JsonWriter_$60(this.ignoreNullOptionals)._write(o.newgrounds,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$58 }; var JsonWriter_$6 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_6"] = JsonWriter_$6; JsonWriter_$6.__name__ = "JsonWriter_6"; JsonWriter_$6.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + (o == null ? "null" : "" + o); } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$6 }; var JsonWriter_$60 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_60"] = JsonWriter_$60; JsonWriter_$60.__name__ = "JsonWriter_60"; JsonWriter_$60.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"sessionId\": " + new JsonWriter_$3(this.ignoreNullOptionals)._write(o.sessionId,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$60 }; var JsonWriter_$62 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_62"] = JsonWriter_$62; JsonWriter_$62.__name__ = "JsonWriter_62"; JsonWriter_$62.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"enabledMods\": " + new JsonWriter_$13(this.ignoreNullOptionals)._write(o.enabledMods,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$62 }; var JsonWriter_$64 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_64"] = JsonWriter_$64; JsonWriter_$64.__name__ = "JsonWriter_64"; JsonWriter_$64.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"audioVisualOffset\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.audioVisualOffset,space,level + 1,false,onAllOptionalNull),indent + space + "\"autoPause\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.autoPause,space,level + 1,false,onAllOptionalNull),indent + space + "\"controls\": " + new JsonWriter_$65(this.ignoreNullOptionals)._write(o.controls,space,level + 1,false,onAllOptionalNull),indent + space + "\"debugDisplay\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.debugDisplay,space,level + 1,false,onAllOptionalNull),indent + space + "\"downscroll\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.downscroll,space,level + 1,false,onAllOptionalNull),indent + space + "\"flashingLights\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.flashingLights,space,level + 1,false,onAllOptionalNull),indent + space + "\"inputOffset\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.inputOffset,space,level + 1,false,onAllOptionalNull),indent + space + "\"naughtyness\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.naughtyness,space,level + 1,false,onAllOptionalNull),indent + space + "\"zoomCamera\": " + new JsonWriter_$6(this.ignoreNullOptionals)._write(o.zoomCamera,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,false,false,false,false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$64 }; var JsonWriter_$65 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_65"] = JsonWriter_$65; JsonWriter_$65.__name__ = "JsonWriter_65"; JsonWriter_$65.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"p1\": " + new JsonWriter_$66(this.ignoreNullOptionals)._write(o.p1,space,level + 1,false,onAllOptionalNull),indent + space + "\"p2\": " + new JsonWriter_$66(this.ignoreNullOptionals)._write(o.p2,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$65 }; var JsonWriter_$66 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_66"] = JsonWriter_$66; JsonWriter_$66.__name__ = "JsonWriter_66"; JsonWriter_$66.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"gamepad\": " + new JsonWriter_$68(this.ignoreNullOptionals)._write(o.gamepad,space,level + 1,false,onAllOptionalNull),indent + space + "\"keyboard\": " + new JsonWriter_$68(this.ignoreNullOptionals)._write(o.keyboard,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$66 }; var JsonWriter_$68 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_68"] = JsonWriter_$68; JsonWriter_$68.__name__ = "JsonWriter_68"; JsonWriter_$68.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"ACCEPT\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.ACCEPT,space,level + 1,false,onAllOptionalNull),indent + space + "\"BACK\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.BACK,space,level + 1,false,onAllOptionalNull),indent + space + "\"CUTSCENE_ADVANCE\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.CUTSCENE_ADVANCE,space,level + 1,false,onAllOptionalNull),indent + space + "\"NOTE_DOWN\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.NOTE_DOWN,space,level + 1,false,onAllOptionalNull),indent + space + "\"NOTE_LEFT\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.NOTE_LEFT,space,level + 1,false,onAllOptionalNull),indent + space + "\"NOTE_RIGHT\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.NOTE_RIGHT,space,level + 1,false,onAllOptionalNull),indent + space + "\"NOTE_UP\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.NOTE_UP,space,level + 1,false,onAllOptionalNull),indent + space + "\"PAUSE\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.PAUSE,space,level + 1,false,onAllOptionalNull),indent + space + "\"RESET\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.RESET,space,level + 1,false,onAllOptionalNull),indent + space + "\"UI_DOWN\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.UI_DOWN,space,level + 1,false,onAllOptionalNull),indent + space + "\"UI_LEFT\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.UI_LEFT,space,level + 1,false,onAllOptionalNull),indent + space + "\"UI_RIGHT\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.UI_RIGHT,space,level + 1,false,onAllOptionalNull),indent + space + "\"UI_UP\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.UI_UP,space,level + 1,false,onAllOptionalNull),indent + space + "\"VOLUME_DOWN\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.VOLUME_DOWN,space,level + 1,false,onAllOptionalNull),indent + space + "\"VOLUME_MUTE\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.VOLUME_MUTE,space,level + 1,false,onAllOptionalNull),indent + space + "\"VOLUME_UP\": " + new JsonWriter_$44(this.ignoreNullOptionals)._write(o.VOLUME_UP,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.ACCEPT == null,o.BACK == null,o.CUTSCENE_ADVANCE == null,o.NOTE_DOWN == null,o.NOTE_LEFT == null,o.NOTE_RIGHT == null,o.NOTE_UP == null,o.PAUSE == null,o.RESET == null,o.UI_DOWN == null,o.UI_LEFT == null,o.UI_RIGHT == null,o.UI_UP == null,o.VOLUME_DOWN == null,o.VOLUME_MUTE == null,o.VOLUME_UP == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$68 }; var JsonWriter_$70 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_70"] = JsonWriter_$70; JsonWriter_$70.__name__ = "JsonWriter_70"; JsonWriter_$70.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"chartEditorLiveInputStyle\": " + new JsonWriter_$72(this.ignoreNullOptionals)._write(o.chartEditorLiveInputStyle,space,level + 1,false,onAllOptionalNull),indent + space + "\"downscroll\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.downscroll,space,level + 1,false,onAllOptionalNull),indent + space + "\"hasBackup\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.hasBackup,space,level + 1,false,onAllOptionalNull),indent + space + "\"hitsoundVolumeOpponent\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.hitsoundVolumeOpponent,space,level + 1,false,onAllOptionalNull),indent + space + "\"hitsoundVolumePlayer\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.hitsoundVolumePlayer,space,level + 1,false,onAllOptionalNull),indent + space + "\"instVolume\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.instVolume,space,level + 1,false,onAllOptionalNull),indent + space + "\"metronomeVolume\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.metronomeVolume,space,level + 1,false,onAllOptionalNull),indent + space + "\"noteQuant\": " + new JsonWriter_$5(this.ignoreNullOptionals)._write(o.noteQuant,space,level + 1,false,onAllOptionalNull),indent + space + "\"playbackSpeed\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.playbackSpeed,space,level + 1,false,onAllOptionalNull),indent + space + "\"playtestStartTime\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.playtestStartTime,space,level + 1,false,onAllOptionalNull),indent + space + "\"previousFiles\": " + new JsonWriter_$74(this.ignoreNullOptionals)._write(o.previousFiles,space,level + 1,false,onAllOptionalNull),indent + space + "\"theme\": " + new JsonWriter_$76(this.ignoreNullOptionals)._write(o.theme,space,level + 1,false,onAllOptionalNull),indent + space + "\"themeMusic\": " + new JsonWriter_$42(this.ignoreNullOptionals)._write(o.themeMusic,space,level + 1,false,onAllOptionalNull),indent + space + "\"voicesVolume\": " + new JsonWriter_$36(this.ignoreNullOptionals)._write(o.voicesVolume,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [o.chartEditorLiveInputStyle == null,o.downscroll == null,o.hasBackup == null,o.hitsoundVolumeOpponent == null,o.hitsoundVolumePlayer == null,o.instVolume == null,o.metronomeVolume == null,o.noteQuant == null,o.playbackSpeed == null,o.playtestStartTime == null,o.previousFiles == null,o.theme == null,o.themeMusic == null,o.voicesVolume == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$70 }; var JsonWriter_$72 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_72"] = JsonWriter_$72; JsonWriter_$72.__name__ = "JsonWriter_72"; JsonWriter_$72.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } switch(o._hx_index) { case 0: return firstIndent + "\"None\""; case 1: return firstIndent + "\"NumberKeys\""; case 2: return firstIndent + "\"WASDKeys\""; } } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$72 }; var JsonWriter_$74 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_74"] = JsonWriter_$74; JsonWriter_$74.__name__ = "JsonWriter_74"; JsonWriter_$74.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$1(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$74 }; var JsonWriter_$76 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_76"] = JsonWriter_$76; JsonWriter_$76.__name__ = "JsonWriter_76"; JsonWriter_$76.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } switch(o._hx_index) { case 0: return firstIndent + "\"Light\""; case 1: return firstIndent + "\"Dark\""; } } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$76 }; var JsonWriter_$78 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_78"] = JsonWriter_$78; JsonWriter_$78.__name__ = "JsonWriter_78"; JsonWriter_$78.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"levels\": " + new JsonWriter_$81(this.ignoreNullOptionals)._write(o.levels,space,level + 1,false,onAllOptionalNull),indent + space + "\"songs\": " + new JsonWriter_$81(this.ignoreNullOptionals)._write(o.songs,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$78 }; var JsonWriter_$8 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_8"] = JsonWriter_$8; JsonWriter_$8.__name__ = "JsonWriter_8"; JsonWriter_$8.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"instrumental\": " + new JsonWriter_$9(this.ignoreNullOptionals)._write(o.instrumental,space,level + 1,false,onAllOptionalNull),indent + space + "\"altInstrumentals\": " + new JsonWriter_$11(this.ignoreNullOptionals)._write(o.altInstrumentals,space,level + 1,false,onAllOptionalNull),indent + space + "\"vocals\": " + new JsonWriter_$11(this.ignoreNullOptionals)._write(o.vocals,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,o.altInstrumentals == null,o.vocals == null]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$8 }; var JsonWriter_$81 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_81"] = JsonWriter_$81; JsonWriter_$81.__name__ = "JsonWriter_81"; JsonWriter_$81.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$84(this.ignoreNullOptionals); var _g = []; var h = o.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; _g.push(indent + space + "\"" + key + "\": " + valueWriter._write(o.h[key],space,level + 1,false,onAllOptionalNull)); } var values = _g; var newLine = space != "" && values.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += values.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$81 }; var JsonWriter_$84 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_84"] = JsonWriter_$84; JsonWriter_$84.__name__ = "JsonWriter_84"; JsonWriter_$84.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$86(this.ignoreNullOptionals); var _g = []; var h = o.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; _g.push(indent + space + "\"" + key + "\": " + valueWriter._write(o.h[key],space,level + 1,false,onAllOptionalNull)); } var values = _g; var newLine = space != "" && values.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += values.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$84 }; var JsonWriter_$86 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_86"] = JsonWriter_$86; JsonWriter_$86.__name__ = "JsonWriter_86"; JsonWriter_$86.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"score\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.score,space,level + 1,false,onAllOptionalNull),indent + space + "\"tallies\": " + new JsonWriter_$88(this.ignoreNullOptionals)._write(o.tallies,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$86 }; var JsonWriter_$88 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_88"] = JsonWriter_$88; JsonWriter_$88.__name__ = "JsonWriter_88"; JsonWriter_$88.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"bad\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.bad,space,level + 1,false,onAllOptionalNull),indent + space + "\"combo\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.combo,space,level + 1,false,onAllOptionalNull),indent + space + "\"good\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.good,space,level + 1,false,onAllOptionalNull),indent + space + "\"maxCombo\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.maxCombo,space,level + 1,false,onAllOptionalNull),indent + space + "\"missed\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.missed,space,level + 1,false,onAllOptionalNull),indent + space + "\"shit\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.shit,space,level + 1,false,onAllOptionalNull),indent + space + "\"sick\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.sick,space,level + 1,false,onAllOptionalNull),indent + space + "\"totalNotes\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.totalNotes,space,level + 1,false,onAllOptionalNull),indent + space + "\"totalNotesHit\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(o.totalNotesHit,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false,false,false,false,false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$88 }; var JsonWriter_$9 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_9"] = JsonWriter_$9; JsonWriter_$9.__name__ = "JsonWriter_9"; JsonWriter_$9.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } return (indentFirst ? this.buildIndent(space,level) : "") + o; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$9 }; var JsonWriter_$93 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_93"] = JsonWriter_$93; JsonWriter_$93.__name__ = "JsonWriter_93"; JsonWriter_$93.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var decl = [indent + space + "\"build\": " + new JsonWriter_$94(this.ignoreNullOptionals)._write(o.build,space,level + 1,false,onAllOptionalNull),indent + space + "\"pre\": " + new JsonWriter_$94(this.ignoreNullOptionals)._write(o.pre,space,level + 1,false,onAllOptionalNull),indent + space + "\"version\": " + new JsonWriter_$21(this.ignoreNullOptionals)._write(o.version,space,level + 1,false,onAllOptionalNull)]; if(this.ignoreNullOptionals) { var skips = [false,false,false]; if(skips.indexOf(false) == -1) { decl = onAllOptionalNull != null ? [onAllOptionalNull()] : []; } else { var _g = []; var _g1 = 0; var _g2 = decl.length; while(_g1 < _g2) { var i = _g1++; var decl1; if(skips[i]) { continue; } else { decl1 = decl[i]; } _g.push(decl1); } decl = _g; } } var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += decl.join("," + newLine) + newLine; json += indent + "}"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$93 }; var JsonWriter_$94 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_94"] = JsonWriter_$94; JsonWriter_$94.__name__ = "JsonWriter_94"; JsonWriter_$94.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } var valueWriter = new JsonWriter_$95(this.ignoreNullOptionals); var _g = []; var _g1 = 0; while(_g1 < o.length) { var element = o[_g1]; ++_g1; _g.push(valueWriter._write(element,space,level + 1,true,onAllOptionalNull)); } var values = _g; var newLine = space != "" && o.length > 0 ? "\n" : ""; var json = firstIndent + "[" + newLine; json += values.join("," + newLine) + newLine; json += indent + "]"; return json; } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$94 }; var JsonWriter_$95 = function(ignoreNullOptionals) { if(ignoreNullOptionals == null) { ignoreNullOptionals = false; } this.shouldQuote = true; this.ignoreNullOptionals = ignoreNullOptionals; }; $hxClasses["JsonWriter_95"] = JsonWriter_$95; JsonWriter_$95.__name__ = "JsonWriter_95"; JsonWriter_$95.prototype = { ignoreNullOptionals: null ,shouldQuote: null ,quote: function(str) { if(this.shouldQuote) { return json2object_writer_StringUtils.quote(str); } else { return str; } } ,dontQuote: function() { this.shouldQuote = false; return this; } ,buildIndent: function(space,level) { if(level == 0) { return ""; } var buff_b = ""; var _g = 0; var _g1 = level; while(_g < _g1) { var i = _g++; buff_b += space == null ? "null" : "" + space; } return buff_b; } ,_write: function(o,space,level,indentFirst,onAllOptionalNull) { if(indentFirst == null) { indentFirst = false; } if(level == null) { level = 0; } if(space == null) { space = ""; } var indent = this.buildIndent(space,level); var firstIndent = indentFirst ? indent : ""; if(o == null) { return firstIndent + "null"; } switch(o._hx_index) { case 0: var value = o.value; var decl = [indent + space + space + "\"" + "value" + "\": " + new JsonWriter_$1(this.ignoreNullOptionals)._write(value,space,level + 2,false,onAllOptionalNull)]; var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += indent + space + "\"" + "StringId" + "\": {" + newLine; json += decl.join("," + newLine) + newLine; json += indent + space + "}" + newLine; json += indent + "}"; return json; case 1: var value = o.value; var decl = [indent + space + space + "\"" + "value" + "\": " + new JsonWriter_$17(this.ignoreNullOptionals)._write(value,space,level + 2,false,onAllOptionalNull)]; var newLine = space != "" && decl.length > 0 ? "\n" : ""; var json = firstIndent + "{" + newLine; json += indent + space + "\"" + "IntId" + "\": {" + newLine; json += decl.join("," + newLine) + newLine; json += indent + space + "}" + newLine; json += indent + "}"; return json; } } ,write: function(o,space) { if(space == null) { space = ""; } return this._write(o,space,0,false); } ,__class__: JsonWriter_$95 }; var Lambda = function() { }; $hxClasses["Lambda"] = Lambda; Lambda.__name__ = "Lambda"; Lambda.array = function(it) { var a = []; var i = $getIterator(it); while(i.hasNext()) { var i1 = i.next(); a.push(i1); } return a; }; Lambda.list = function(it) { var l = new haxe_ds_List(); var i = $getIterator(it); while(i.hasNext()) { var i1 = i.next(); l.add(i1); } return l; }; Lambda.map = function(it,f) { var _g = []; var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); _g.push(f(x1)); } return _g; }; Lambda.mapi = function(it,f) { var i = 0; var _g = []; var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); _g.push(f(i++,x1)); } return _g; }; Lambda.flatten = function(it) { var _g = []; var e = $getIterator(it); while(e.hasNext()) { var e1 = e.next(); var x = $getIterator(e1); while(x.hasNext()) { var x1 = x.next(); _g.push(x1); } } return _g; }; Lambda.flatMap = function(it,f) { var _g = []; var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); _g.push(f(x1)); } var _g1 = []; var e = $getIterator(_g); while(e.hasNext()) { var e1 = e.next(); var x = $getIterator(e1); while(x.hasNext()) { var x1 = x.next(); _g1.push(x1); } } return _g1; }; Lambda.has = function(it,elt) { var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); if(x1 == elt) { return true; } } return false; }; Lambda.exists = function(it,f) { var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); if(f(x1)) { return true; } } return false; }; Lambda.foreach = function(it,f) { var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); if(!f(x1)) { return false; } } return true; }; Lambda.iter = function(it,f) { var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); f(x1); } }; Lambda.filter = function(it,f) { var _g = []; var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); if(f(x1)) { _g.push(x1); } } return _g; }; Lambda.fold = function(it,f,first) { var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); first = f(x1,first); } return first; }; Lambda.foldi = function(it,f,first) { var i = 0; var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); first = f(x1,first,i); ++i; } return first; }; Lambda.count = function(it,pred) { var n = 0; if(pred == null) { var _ = $getIterator(it); while(_.hasNext()) { var _1 = _.next(); ++n; } } else { var x = $getIterator(it); while(x.hasNext()) { var x1 = x.next(); if(pred(x1)) { ++n; } } } return n; }; Lambda.empty = function(it) { return !$getIterator(it).hasNext(); }; Lambda.indexOf = function(it,v) { var i = 0; var v2 = $getIterator(it); while(v2.hasNext()) { var v21 = v2.next(); if(v == v21) { return i; } ++i; } return -1; }; Lambda.find = function(it,f) { var v = $getIterator(it); while(v.hasNext()) { var v1 = v.next(); if(f(v1)) { return v1; } } return null; }; Lambda.findIndex = function(it,f) { var i = 0; var v = $getIterator(it); while(v.hasNext()) { var v1 = v.next(); if(f(v1)) { return i; } ++i; } return -1; }; Lambda.concat = function(a,b) { var l = []; var x = $getIterator(a); while(x.hasNext()) { var x1 = x.next(); l.push(x1); } var x = $getIterator(b); while(x.hasNext()) { var x1 = x.next(); l.push(x1); } return l; }; var ManifestResources = function() { }; $hxClasses["ManifestResources"] = ManifestResources; ManifestResources.__name__ = "ManifestResources"; ManifestResources.preloadLibraries = null; ManifestResources.preloadLibraryNames = null; ManifestResources.rootPath = null; ManifestResources.init = function(config) { ManifestResources.preloadLibraries = []; ManifestResources.preloadLibraryNames = []; ManifestResources.rootPath = null; if(config != null && Object.prototype.hasOwnProperty.call(config,"rootPath")) { ManifestResources.rootPath = Reflect.field(config,"rootPath"); if(!StringTools.endsWith(ManifestResources.rootPath,"/")) { ManifestResources.rootPath += "/"; } } if(ManifestResources.rootPath == null) { ManifestResources.rootPath = "./"; } openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf); var bundle; var v = ManifestResources.rootPath + "manifest/songs.json"; lime_utils_Assets.libraryPaths.h["songs"] = v; var v = ManifestResources.rootPath + "manifest/shared.json"; lime_utils_Assets.libraryPaths.h["shared"] = v; var v = ManifestResources.rootPath + "manifest/tutorial.json"; lime_utils_Assets.libraryPaths.h["tutorial"] = v; var v = ManifestResources.rootPath + "manifest/week1.json"; lime_utils_Assets.libraryPaths.h["week1"] = v; var v = ManifestResources.rootPath + "manifest/week2.json"; lime_utils_Assets.libraryPaths.h["week2"] = v; var v = ManifestResources.rootPath + "manifest/week3.json"; lime_utils_Assets.libraryPaths.h["week3"] = v; var v = ManifestResources.rootPath + "manifest/week4.json"; lime_utils_Assets.libraryPaths.h["week4"] = v; var v = ManifestResources.rootPath + "manifest/week5.json"; lime_utils_Assets.libraryPaths.h["week5"] = v; var v = ManifestResources.rootPath + "manifest/week6.json"; lime_utils_Assets.libraryPaths.h["week6"] = v; var v = ManifestResources.rootPath + "manifest/week7.json"; lime_utils_Assets.libraryPaths.h["week7"] = v; var v = ManifestResources.rootPath + "manifest/weekend1.json"; lime_utils_Assets.libraryPaths.h["weekend1"] = v; var v = ManifestResources.rootPath + "manifest/videos.json"; lime_utils_Assets.libraryPaths.h["videos"] = v; var v = ManifestResources.rootPath + "manifest/art.json"; lime_utils_Assets.libraryPaths.h["art"] = v; var data = "{\"name\":null,\"assets\":\"aoy4:pathy40:assets%2Fdata%2Fcharacters%2Fbf-car.jsony4:sizei2004y4:typey4:TEXTy2:idR1y7:preloadtgoR0y46:assets%2Fdata%2Fcharacters%2Fbf-christmas.jsonR2i1591R3R4R5R7R6tgoR0y47:assets%2Fdata%2Fcharacters%2Fbf-holding-gf.jsonR2i1856R3R4R5R8R6tgoR0y42:assets%2Fdata%2Fcharacters%2Fbf-pixel.jsonR2i1760R3R4R5R9R6tgoR0y36:assets%2Fdata%2Fcharacters%2Fbf.jsonR2i2232R3R4R5R10R6tgoR0y37:assets%2Fdata%2Fcharacters%2Fdad.jsonR2i1500R3R4R5R11R6tgoR0y48:assets%2Fdata%2Fcharacters%2Fdarnell-blazin.jsonR2i1854R3R4R5R12R6tgoR0y41:assets%2Fdata%2Fcharacters%2Fdarnell.jsonR2i1709R3R4R5R13R6tgoR0y40:assets%2Fdata%2Fcharacters%2Fgf-car.jsonR2i943R3R4R5R14R6tgoR0y46:assets%2Fdata%2Fcharacters%2Fgf-christmas.jsonR2i691R3R4R5R15R6tgoR0y42:assets%2Fdata%2Fcharacters%2Fgf-pixel.jsonR2i662R3R4R5R16R6tgoR0y44:assets%2Fdata%2Fcharacters%2Fgf-tankmen.jsonR2i724R3R4R5R17R6tgoR0y36:assets%2Fdata%2Fcharacters%2Fgf.jsonR2i1828R3R4R5R18R6tgoR0y41:assets%2Fdata%2Fcharacters%2Fmom-car.jsonR2i1582R3R4R5R19R6tgoR0y51:assets%2Fdata%2Fcharacters%2Fmonster-christmas.jsonR2i664R3R4R5R20R6tgoR0y41:assets%2Fdata%2Fcharacters%2Fmonster.jsonR2i609R3R4R5R21R6tgoR0y38:assets%2Fdata%2Fcharacters%2Fnene.jsonR2i1518R3R4R5R22R6tgoR0y51:assets%2Fdata%2Fcharacters%2Fparents-christmas.jsonR2i2755R3R4R5R23R6tgoR0y45:assets%2Fdata%2Fcharacters%2Fpico-blazin.jsonR2i2328R3R4R5R24R6tgoR0y47:assets%2Fdata%2Fcharacters%2Fpico-playable.jsonR2i3051R3R4R5R25R6tgoR0y46:assets%2Fdata%2Fcharacters%2Fpico-speaker.jsonR2i1406R3R4R5R26R6tgoR0y38:assets%2Fdata%2Fcharacters%2Fpico.jsonR2i614R3R4R5R27R6tgoR0y38:assets%2Fdata%2Fcharacters%2FREADME.mdR2i388R3R4R5R28R6tgoR0y46:assets%2Fdata%2Fcharacters%2Fsenpai-angry.jsonR2i754R3R4R5R29R6tgoR0y40:assets%2Fdata%2Fcharacters%2Fsenpai.jsonR2i765R3R4R5R30R6tgoR0y40:assets%2Fdata%2Fcharacters%2Fspirit.jsonR2i657R3R4R5R31R6tgoR0y40:assets%2Fdata%2Fcharacters%2Fspooky.jsonR2i957R3R4R5R32R6tgoR0y47:assets%2Fdata%2Fcharacters%2Ftankman-atlas.jsonR2i857R3R4R5R33R6tgoR0y41:assets%2Fdata%2Fcharacters%2Ftankman.jsonR2i1683R3R4R5R34R6tgoR0y47:assets%2Fdata%2Fdialogue%2Fboxes%2Fdefault.jsonR2i607R3R4R5R35R6tgoR0y45:assets%2Fdata%2Fdialogue%2Fboxes%2Froses.jsonR2i1228R3R4R5R36R6tgoR0y46:assets%2Fdata%2Fdialogue%2Fboxes%2Fthorns.jsonR2i1173R3R4R5R37R6tgoR0y62:assets%2Fdata%2Fdialogue%2Fconversations%2Froses-censored.jsonR2i1122R3R4R5R38R6tgoR0y53:assets%2Fdata%2Fdialogue%2Fconversations%2Froses.jsonR2i895R3R4R5R39R6tgoR0y54:assets%2Fdata%2Fdialogue%2Fconversations%2Fsenpai.jsonR2i899R3R4R5R40R6tgoR0y54:assets%2Fdata%2Fdialogue%2Fconversations%2Fthorns.jsonR2i1240R3R4R5R41R6tgoR0y51:assets%2Fdata%2Fdialogue%2Fspeakers%2Fbf-pixel.jsonR2i461R3R4R5R42R6tgoR0y55:assets%2Fdata%2Fdialogue%2Fspeakers%2Fsenpai-angry.jsonR2i281R3R4R5R43R6tgoR0y49:assets%2Fdata%2Fdialogue%2Fspeakers%2Fsenpai.jsonR2i418R3R4R5R44R6tgoR0y49:assets%2Fdata%2Fdialogue%2Fspeakers%2Fspirit.jsonR2i372R3R4R5R45R6tgoR0y29:assets%2Fdata%2FintroText.txtR2i1496R3R4R5R46R6tgoR0y38:assets%2Fdata%2Flevels%2Ftutorial.jsonR2i1038R3R4R5R47R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek1.jsonR2i1245R3R4R5R48R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek2.jsonR2i1416R3R4R5R49R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek3.jsonR2i1239R3R4R5R50R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek4.jsonR2i1249R3R4R5R51R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek5.jsonR2i1255R3R4R5R52R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek6.jsonR2i1260R3R4R5R53R6tgoR0y35:assets%2Fdata%2Flevels%2Fweek7.jsonR2i1251R3R4R5R54R6tgoR0y38:assets%2Fdata%2Flevels%2Fweekend1.jsonR2i1296R3R4R5R55R6tgoR0y40:assets%2Fdata%2Fnotestyles%2Ffunkin.jsonR2i1632R3R4R5R56R6tgoR0y39:assets%2Fdata%2Fnotestyles%2Fpixel.jsonR2i1776R3R4R5R57R6tgoR0y46:assets%2Fdata%2Fsongs%2F2hot%2F2hot-chart.jsonR2i142216R3R4R5R58R6tgoR0y49:assets%2Fdata%2Fsongs%2F2hot%2F2hot-metadata.jsonR2i651R3R4R5R59R6tgoR0y58:assets%2Fdata%2Fsongs%2Fblammed%2Fblammed-chart-erect.jsonR2i117666R3R4R5R60R6tgoR0y52:assets%2Fdata%2Fsongs%2Fblammed%2Fblammed-chart.jsonR2i28503R3R4R5R61R6tgoR0y61:assets%2Fdata%2Fsongs%2Fblammed%2Fblammed-metadata-erect.jsonR2i730R3R4R5R62R6tgoR0y55:assets%2Fdata%2Fsongs%2Fblammed%2Fblammed-metadata.jsonR2i581R3R4R5R63R6tgoR0y50:assets%2Fdata%2Fsongs%2Fblazin%2Fblazin-chart.jsonR2i145829R3R4R5R64R6tgoR0y53:assets%2Fdata%2Fsongs%2Fblazin%2Fblazin-metadata.jsonR2i656R3R4R5R65R6tgoR0y58:assets%2Fdata%2Fsongs%2Fbopeebo%2Fbopeebo-chart-erect.jsonR2i101769R3R4R5R66R6tgoR0y52:assets%2Fdata%2Fsongs%2Fbopeebo%2Fbopeebo-chart.jsonR2i15535R3R4R5R67R6tgoR0y61:assets%2Fdata%2Fsongs%2Fbopeebo%2Fbopeebo-metadata-erect.jsonR2i713R3R4R5R68R6tgoR0y55:assets%2Fdata%2Fsongs%2Fbopeebo%2Fbopeebo-metadata.jsonR2i570R3R4R5R69R6tgoR0y48:assets%2Fdata%2Fsongs%2Fcocoa%2Fcocoa-chart.jsonR2i35066R3R4R5R70R6tgoR0y51:assets%2Fdata%2Fsongs%2Fcocoa%2Fcocoa-metadata.jsonR2i598R3R4R5R71R6tgoR0y62:assets%2Fdata%2Fsongs%2Fdadbattle%2Fdadbattle-chart-erect.jsonR2i164797R3R4R5R72R6tgoR0y56:assets%2Fdata%2Fsongs%2Fdadbattle%2Fdadbattle-chart.jsonR2i25730R3R4R5R73R6tgoR0y65:assets%2Fdata%2Fsongs%2Fdadbattle%2Fdadbattle-metadata-erect.jsonR2i814R3R4R5R74R6tgoR0y59:assets%2Fdata%2Fsongs%2Fdadbattle%2Fdadbattle-metadata.jsonR2i620R3R4R5R75R6tgoR0y52:assets%2Fdata%2Fsongs%2Fdarnell%2Fdarnell-chart.jsonR2i89846R3R4R5R76R6tgoR0y55:assets%2Fdata%2Fsongs%2Fdarnell%2Fdarnell-metadata.jsonR2i662R3R4R5R77R6tgoR0y56:assets%2Fdata%2Fsongs%2Feggnog%2Feggnog-chart-erect.jsonR2i97959R3R4R5R78R6tgoR0y50:assets%2Fdata%2Fsongs%2Feggnog%2Feggnog-chart.jsonR2i39894R3R4R5R79R6tgoR0y59:assets%2Fdata%2Fsongs%2Feggnog%2Feggnog-metadata-erect.jsonR2i891R3R4R5R80R6tgoR0y53:assets%2Fdata%2Fsongs%2Feggnog%2Feggnog-metadata.jsonR2i632R3R4R5R81R6tgoR0y54:assets%2Fdata%2Fsongs%2Ffresh%2Ffresh-chart-erect.jsonR2i73037R3R4R5R82R6tgoR0y48:assets%2Fdata%2Fsongs%2Ffresh%2Ffresh-chart.jsonR2i23460R3R4R5R83R6tgoR0y57:assets%2Fdata%2Fsongs%2Ffresh%2Ffresh-metadata-erect.jsonR2i700R3R4R5R84R6tgoR0y51:assets%2Fdata%2Fsongs%2Ffresh%2Ffresh-metadata.jsonR2i576R3R4R5R85R6tgoR0y46:assets%2Fdata%2Fsongs%2Fguns%2Fguns-chart.jsonR2i83624R3R4R5R86R6tgoR0y49:assets%2Fdata%2Fsongs%2Fguns%2Fguns-metadata.jsonR2i569R3R4R5R87R6tgoR0y52:assets%2Fdata%2Fsongs%2Fhigh%2Fhigh-chart-erect.jsonR2i92667R3R4R5R88R6tgoR0y46:assets%2Fdata%2Fsongs%2Fhigh%2Fhigh-chart.jsonR2i39683R3R4R5R89R6tgoR0y55:assets%2Fdata%2Fsongs%2Fhigh%2Fhigh-metadata-erect.jsonR2i769R3R4R5R90R6tgoR0y49:assets%2Fdata%2Fsongs%2Fhigh%2Fhigh-metadata.jsonR2i600R3R4R5R91R6tgoR0y50:assets%2Fdata%2Fsongs%2Flit-up%2Flit-up-chart.jsonR2i110932R3R4R5R92R6tgoR0y53:assets%2Fdata%2Fsongs%2Flit-up%2Flit-up-metadata.jsonR2i694R3R4R5R93R6tgoR0y46:assets%2Fdata%2Fsongs%2Fmilf%2Fmilf-chart.jsonR2i63197R3R4R5R94R6tgoR0y49:assets%2Fdata%2Fsongs%2Fmilf%2Fmilf-metadata.jsonR2i645R3R4R5R95R6tgoR0y52:assets%2Fdata%2Fsongs%2Fmonster%2Fmonster-chart.jsonR2i57148R3R4R5R96R6tgoR0y55:assets%2Fdata%2Fsongs%2Fmonster%2Fmonster-metadata.jsonR2i1022R3R4R5R97R6tgoR0y66:assets%2Fdata%2Fsongs%2Fphilly-nice%2Fphilly-nice-chart-erect.jsonR2i134905R3R4R5R98R6tgoR0y60:assets%2Fdata%2Fsongs%2Fphilly-nice%2Fphilly-nice-chart.jsonR2i37100R3R4R5R99R6tgoR0y69:assets%2Fdata%2Fsongs%2Fphilly-nice%2Fphilly-nice-metadata-erect.jsonR2i747R3R4R5R100R6tgoR0y63:assets%2Fdata%2Fsongs%2Fphilly-nice%2Fphilly-nice-metadata.jsonR2i585R3R4R5R101R6tgoR0y52:assets%2Fdata%2Fsongs%2Fpico%2Fpico-chart-erect.jsonR2i136924R3R4R5R102R6tgoR0y46:assets%2Fdata%2Fsongs%2Fpico%2Fpico-chart.jsonR2i29704R3R4R5R103R6tgoR0y55:assets%2Fdata%2Fsongs%2Fpico%2Fpico-metadata-erect.jsonR2i740R3R4R5R104R6tgoR0y49:assets%2Fdata%2Fsongs%2Fpico%2Fpico-metadata.jsonR2i578R3R4R5R105R6tgoR0y54:assets%2Fdata%2Fsongs%2Froses%2Froses-chart-erect.jsonR2i85247R3R4R5R106R6tgoR0y48:assets%2Fdata%2Fsongs%2Froses%2Froses-chart.jsonR2i39704R3R4R5R107R6tgoR0y57:assets%2Fdata%2Fsongs%2Froses%2Froses-metadata-erect.jsonR2i726R3R4R5R108R6tgoR0y51:assets%2Fdata%2Fsongs%2Froses%2Froses-metadata.jsonR2i615R3R4R5R109R6tgoR0y70:assets%2Fdata%2Fsongs%2Fsatin-panties%2Fsatin-panties-chart-erect.jsonR2i121129R3R4R5R110R6tgoR0y64:assets%2Fdata%2Fsongs%2Fsatin-panties%2Fsatin-panties-chart.jsonR2i40651R3R4R5R111R6tgoR0y73:assets%2Fdata%2Fsongs%2Fsatin-panties%2Fsatin-panties-metadata-erect.jsonR2i674R3R4R5R112R6tgoR0y67:assets%2Fdata%2Fsongs%2Fsatin-panties%2Fsatin-panties-metadata.jsonR2i609R3R4R5R113R6tgoR0y56:assets%2Fdata%2Fsongs%2Fsenpai%2Fsenpai-chart-erect.jsonR2i121859R3R4R5R114R6tgoR0y50:assets%2Fdata%2Fsongs%2Fsenpai%2Fsenpai-chart.jsonR2i35128R3R4R5R115R6tgoR0y59:assets%2Fdata%2Fsongs%2Fsenpai%2Fsenpai-metadata-erect.jsonR2i749R3R4R5R116R6tgoR0y53:assets%2Fdata%2Fsongs%2Fsenpai%2Fsenpai-metadata.jsonR2i610R3R4R5R117R6tgoR0y54:assets%2Fdata%2Fsongs%2Fsouth%2Fsouth-chart-erect.jsonR2i131840R3R4R5R118R6tgoR0y48:assets%2Fdata%2Fsongs%2Fsouth%2Fsouth-chart.jsonR2i29715R3R4R5R119R6tgoR0y57:assets%2Fdata%2Fsongs%2Fsouth%2Fsouth-metadata-erect.jsonR2i741R3R4R5R120R6tgoR0y51:assets%2Fdata%2Fsongs%2Fsouth%2Fsouth-metadata.jsonR2i583R3R4R5R121R6tgoR0y60:assets%2Fdata%2Fsongs%2Fspookeez%2Fspookeez-chart-erect.jsonR2i214978R3R4R5R122R6tgoR0y54:assets%2Fdata%2Fsongs%2Fspookeez%2Fspookeez-chart.jsonR2i40425R3R4R5R123R6tgoR0y63:assets%2Fdata%2Fsongs%2Fspookeez%2Fspookeez-metadata-erect.jsonR2i746R3R4R5R124R6tgoR0y57:assets%2Fdata%2Fsongs%2Fspookeez%2Fspookeez-metadata.jsonR2i710R3R4R5R125R6tgoR0y50:assets%2Fdata%2Fsongs%2Fstress%2Fstress-chart.jsonR2i117440R3R4R5R126R6tgoR0y53:assets%2Fdata%2Fsongs%2Fstress%2Fstress-metadata.jsonR2i718R3R4R5R127R6tgoR0y40:assets%2Fdata%2Fsongs%2Ftest%2Ftest.jsonR2i22324R3R4R5R128R6tgoR0y56:assets%2Fdata%2Fsongs%2Fthorns%2Fthorns-chart-erect.jsonR2i150289R3R4R5R129R6tgoR0y50:assets%2Fdata%2Fsongs%2Fthorns%2Fthorns-chart.jsonR2i39759R3R4R5R130R6tgoR0y59:assets%2Fdata%2Fsongs%2Fthorns%2Fthorns-metadata-erect.jsonR2i758R3R4R5R131R6tgoR0y53:assets%2Fdata%2Fsongs%2Fthorns%2Fthorns-metadata.jsonR2i614R3R4R5R132R6tgoR0y54:assets%2Fdata%2Fsongs%2Ftutorial%2Ftutorial-chart.jsonR2i7604R3R4R5R133R6tgoR0y57:assets%2Fdata%2Fsongs%2Ftutorial%2Ftutorial-metadata.jsonR2i525R3R4R5R134R6tgoR0y44:assets%2Fdata%2Fsongs%2Fugh%2Fugh-chart.jsonR2i50112R3R4R5R135R6tgoR0y47:assets%2Fdata%2Fsongs%2Fugh%2Fugh-metadata.jsonR2i643R3R4R5R136R6tgoR0y72:assets%2Fdata%2Fsongs%2Fwinter-horrorland%2Fwinter-horrorland-chart.jsonR2i54826R3R4R5R137R6tgoR0y75:assets%2Fdata%2Fsongs%2Fwinter-horrorland%2Fwinter-horrorland-metadata.jsonR2i672R3R4R5R138R6tgoR0y38:assets%2Fdata%2Fstages%2FlimoRide.jsonR2i8514R3R4R5R139R6tgoR0y39:assets%2Fdata%2Fstages%2FmainStage.jsonR2i1264R3R4R5R140R6tgoR0y38:assets%2Fdata%2Fstages%2FmallEvil.jsonR2i1111R3R4R5R141R6tgoR0y38:assets%2Fdata%2Fstages%2FmallXmas.jsonR2i2647R3R4R5R142R6tgoR0y42:assets%2Fdata%2Fstages%2FphillyBlazin.jsonR2i1742R3R4R5R143R6tgoR0y43:assets%2Fdata%2Fstages%2FphillyStreets.jsonR2i6312R3R4R5R144R6tgoR0y41:assets%2Fdata%2Fstages%2FphillyTrain.jsonR2i3162R3R4R5R145R6tgoR0y36:assets%2Fdata%2Fstages%2Fschool.jsonR2i4284R3R4R5R146R6tgoR0y40:assets%2Fdata%2Fstages%2FschoolEvil.jsonR2i1091R3R4R5R147R6tgoR0y43:assets%2Fdata%2Fstages%2FspookyMansion.jsonR2i1326R3R4R5R148R6tgoR0y48:assets%2Fdata%2Fstages%2FtankmanBattlefield.jsonR2i4737R3R4R5R149R6tgoR0y62:assets%2Fdata%2Fui%2Fanimation-editor%2Foffset-editor-view.xmlR2i1596R3R4R5R150R6tgoR0y64:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fadd-difficulty.xmlR2i1269R3R4R5R151R6tgoR0y63:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fadd-variation.xmlR2i3576R3R4R5R152R6tgoR0y66:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fbackup-available.xmlR2i673R3R4R5R153R6tgoR0y62:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fimport-chart.xmlR2i597R3R4R5R154R6tgoR0y72:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fopen-chart-parts-entry.xmlR2i304R3R4R5R155R6tgoR0y66:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fopen-chart-parts.xmlR2i548R3R4R5R156R6tgoR0y63:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fsong-metadata.xmlR2i2830R3R4R5R157R6tgoR0y61:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fupload-inst.xmlR2i600R3R4R5R158R6tgoR0y60:assets%2Fdata%2Fui%2Fchart-editor%2Fdialogs%2Fuser-guide.xmlR2i3316R3R4R5R159R6tgoR0y62:assets%2Fdata%2Fui%2Fchart-editor%2Ftoolbox%2Ficonselector.xmlR2i338R3R4R5R160R6tgoR0y66:assets%2Fdata%2Fui%2Fchart-editor%2Ftoolbox%2Fopponent-preview.xmlR2i300R3R4R5R161R6tgoR0y64:assets%2Fdata%2Fui%2Fchart-editor%2Ftoolbox%2Fplayer-preview.xmlR2i296R3R4R5R162R6tgoR0y69:assets%2Fdata%2Fui%2Fchart-editor%2Ftoolbox%2Fplaytest-properties.xmlR2i842R3R4R5R163R6tgoR0y55:assets%2Fdata%2Fui%2Fchart-editor%2Ftoolbox%2Ftools.xmlR2i119R3R4R5R164R6tgoR0y53:assets%2Fdata%2Fui%2Ffreeplay%2Falbums%2Fvolume1.jsonR2i363R3R4R5R165R6tgoR0y53:assets%2Fdata%2Fui%2Ffreeplay%2Falbums%2Fvolume2.jsonR2i363R3R4R5R166R6tgoR0y53:assets%2Fdata%2Fui%2Ffreeplay%2Falbums%2Fvolume3.jsonR2i363R3R4R5R167R6tgoR0y59:assets%2Fdata%2Fui%2Fstage-editor%2Fcomponents%2Flayers.xmlR2i427R3R4R5R168R6tgoR0y60:assets%2Fdata%2Fui%2Fstage-editor%2Fcomponents%2Fmenubar.xmlR2i3674R3R4R5R169R6tgoR0y57:assets%2Fdata%2Fui%2Fstage-editor%2Fstage-editor-view.xmlR2i2328R3R4R5R170R6tgoR0y31:assets%2Fimages%2FmenuDesat.pngR2i214348R3y5:IMAGER5R171R6tgoR0y29:assets%2Fimages%2FaBotViz.pngR2i16006R3R172R5R173R6tgoR0y29:assets%2Fimages%2FaBotViz.xmlR2i5133R3R4R5R174R6tgoR0y30:assets%2Fimages%2Falphabet.pngR2i70630R3R172R5R175R6tgoR0y30:assets%2Fimages%2Falphabet.xmlR2i39458R3R4R5R176R6tgoR0y37:assets%2Fimages%2FcheckboxThingie.pngR2i8849R3R172R5R177R6tgoR0y37:assets%2Fimages%2FcheckboxThingie.xmlR2i2210R3R4R5R178R6tgoR0y42:assets%2Fimages%2Fcursor%2Fcursor-cell.pngR2i144R3R172R5R179R6tgoR0y43:assets%2Fimages%2Fcursor%2Fcursor-cross.pngR2i2154R3R172R5R180R6tgoR0y47:assets%2Fimages%2Fcursor%2Fcursor-crosshair.pngR2i136R3R172R5R181R6tgoR0y45:assets%2Fimages%2Fcursor%2Fcursor-default.pngR2i303R3R172R5R182R6tgoR0y44:assets%2Fimages%2Fcursor%2Fcursor-eraser.pngR2i2806R3R172R5R183R6tgoR0y46:assets%2Fimages%2Fcursor%2Fcursor-grabbing.pngR2i777R3R172R5R184R6tgoR0y47:assets%2Fimages%2Fcursor%2Fcursor-hourglass.pngR2i1783R3R172R5R185R6tgoR0y45:assets%2Fimages%2Fcursor%2Fcursor-pointer.pngR2i760R3R172R5R186R6tgoR0y44:assets%2Fimages%2Fcursor%2Fcursor-scroll.pngR2i1925R3R172R5R187R6tgoR0y51:assets%2Fimages%2Fcursor%2Fcursor-text-vertical.pngR2i472R3R172R5R188R6tgoR0y42:assets%2Fimages%2Fcursor%2Fcursor-text.pngR2i478R3R172R5R189R6tgoR0y45:assets%2Fimages%2Fcursor%2Fcursor-zoom-in.pngR2i2626R3R172R5R190R6tgoR0y46:assets%2Fimages%2Fcursor%2Fcursor-zoom-out.pngR2i2480R3R172R5R191R6tgoR0y37:assets%2Fimages%2Fdigital_numbers.pngR2i400931R3R172R5R192R6tgoR0y37:assets%2Fimages%2Fdigital_numbers.xmlR2i21531R3R4R5R193R6tgoR0y34:assets%2Fimages%2Ffonts%2Fbold.pngR2i47311R3R172R5R194R6tgoR0y34:assets%2Fimages%2Ffonts%2Fbold.xmlR2i17936R3R4R5R195R6tgoR0y37:assets%2Fimages%2Ffonts%2Fdefault.pngR2i40924R3R172R5R196R6tgoR0y37:assets%2Fimages%2Ffonts%2Fdefault.xmlR2i27519R3R4R5R197R6tgoR0y44:assets%2Fimages%2Ffonts%2Ffreeplay-clear.pngR2i683R3R172R5R198R6tgoR0y44:assets%2Fimages%2Ffonts%2Ffreeplay-clear.xmlR2i772R3R4R5R199R6tgoR0y46:assets%2Fimages%2Ffreeplay%2FfreeplayFlame.pngR2i19327R3R172R5R200R6tgoR0y71:assets%2Fimages%2Ffreeplay%2FalbumRoll%2FfreeplayAlbum%2FAnimation.jsonR2i62023R3R4R5R201R6tgoR0y72:assets%2Fimages%2Ffreeplay%2FalbumRoll%2FfreeplayAlbum%2Fspritemap1.jsonR2i1279R3R4R5R202R6tgoR0y71:assets%2Fimages%2Ffreeplay%2FalbumRoll%2FfreeplayAlbum%2Fspritemap1.pngR2i854366R3R172R5R203R6tgoR0y63:assets%2Fimages%2Ffreeplay%2Fbacking-text-yeah%2FAnimation.jsonR2i3692R3R4R5R204R6tgoR0y64:assets%2Fimages%2Ffreeplay%2Fbacking-text-yeah%2Fspritemap1.jsonR2i495R3R4R5R205R6tgoR0y63:assets%2Fimages%2Ffreeplay%2Fbacking-text-yeah%2Fspritemap1.pngR2i28946R3R172R5R206R6tgoR0y41:assets%2Fimages%2Ffreeplay%2Fbeatdark.pngR2i126641R3R172R5R207R6tgoR0y41:assets%2Fimages%2Ffreeplay%2Fbeatglow.pngR2i129668R3R172R5R208R6tgoR0y41:assets%2Fimages%2Ffreeplay%2FcardGlow.pngR2i47377R3R172R5R209R6tgoR0y41:assets%2Fimages%2Ffreeplay%2FclearBox.pngR2i615R3R172R5R210R6tgoR0y44:assets%2Fimages%2Ffreeplay%2FconfirmGlow.pngR2i127677R3R172R5R211R6tgoR0y45:assets%2Fimages%2Ffreeplay%2FconfirmGlow2.pngR2i92621R3R172R5R212R6tgoR0y41:assets%2Fimages%2Ffreeplay%2FfavHeart.pngR2i657R3R172R5R213R6tgoR0y41:assets%2Fimages%2Ffreeplay%2FfavHeart.xmlR2i1750R3R4R5R214R6tgoR0y64:assets%2Fimages%2Ffreeplay%2Ffreeplay-boyfriend%2FAnimation.jsonR2i1308821R3R4R5R215R6tgoR0y65:assets%2Fimages%2Ffreeplay%2Ffreeplay-boyfriend%2Fspritemap1.jsonR2i17902R3R4R5R216R6tgoR0y64:assets%2Fimages%2Ffreeplay%2Ffreeplay-boyfriend%2Fspritemap1.pngR2i1118207R3R172R5R217R6tgoR0y46:assets%2Fimages%2Ffreeplay%2FfreeplayBGdad.pngR2i733354R3R172R5R218R6tgoR0y61:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fbignumbers.pngR2i17263R3R172R5R219R6tgoR0y61:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fbignumbers.xmlR2i885R3R4R5R220R6tgoR0y58:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fbpmtext.pngR2i1455R3R172R5R221R6tgoR0y65:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fdifficultytext.pngR2i2596R3R172R5R222R6tgoR0y54:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fnew.pngR2i7181R3R172R5R223R6tgoR0y54:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fnew.xmlR2i3479R3R4R5R224R6tgoR0y63:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fsmallnumbers.pngR2i4206R3R172R5R225R6tgoR0y63:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fsmallnumbers.xmlR2i884R3R4R5R226R6tgoR0y60:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fweektypes.pngR2i2900R3R172R5R227R6tgoR0y60:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule%2Fweektypes.xmlR2i379R3R4R5R228R6tgoR0y48:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule.pngR2i387627R3R172R5R229R6tgoR0y48:assets%2Fimages%2Ffreeplay%2FfreeplayCapsule.xmlR2i2582R3R4R5R230R6tgoR0y45:assets%2Fimages%2Ffreeplay%2Ffreeplayeasy.pngR2i2100R3R172R5R231R6tgoR0y46:assets%2Fimages%2Ffreeplay%2Ffreeplayerect.pngR2i2474R3R172R5R232R6tgoR0y46:assets%2Fimages%2Ffreeplay%2FfreeplayFlame.xmlR2i1625R3R4R5R233R6tgoR0y45:assets%2Fimages%2Ffreeplay%2Ffreeplayhard.pngR2i2200R3R172R5R234R6tgoR0y50:assets%2Fimages%2Ffreeplay%2Ffreeplaynightmare.pngR2i17635R3R172R5R235R6tgoR0y50:assets%2Fimages%2Ffreeplay%2Ffreeplaynightmare.xmlR2i3293R3R4R5R236R6tgoR0y47:assets%2Fimages%2Ffreeplay%2Ffreeplaynormal.pngR2i2290R3R172R5R237R6tgoR0y49:assets%2Fimages%2Ffreeplay%2FfreeplaySelector.pngR2i3198R3R172R5R238R6tgoR0y49:assets%2Fimages%2Ffreeplay%2FfreeplaySelector.xmlR2i1339R3R4R5R239R6tgoR0y59:assets%2Fimages%2Ffreeplay%2FfreeplayStars%2FAnimation.jsonR2i7776377R3R4R5R240R6tgoR0y60:assets%2Fimages%2Ffreeplay%2FfreeplayStars%2Fspritemap1.jsonR2i447R3R4R5R241R6tgoR0y59:assets%2Fimages%2Ffreeplay%2FfreeplayStars%2Fspritemap1.pngR2i3920R3R172R5R242R6tgoR0y44:assets%2Fimages%2Ffreeplay%2FglowingText.pngR2i56791R3R172R5R243R6tgoR0y42:assets%2Fimages%2Ffreeplay%2Fhighscore.pngR2i50149R3R172R5R244R6tgoR0y42:assets%2Fimages%2Ffreeplay%2Fhighscore.xmlR2i2575R3R4R5R245R6tgoR0y48:assets%2Fimages%2Ffreeplay%2Ficons%2Fbfpixel.pngR2i430R3R172R5R246R6tgoR0y51:assets%2Fimages%2Ffreeplay%2Ficons%2Fdaddypixel.pngR2i430R3R172R5R247R6tgoR0y53:assets%2Fimages%2Ffreeplay%2Ficons%2Fdarnellpixel.pngR2i471R3R172R5R248R6tgoR0y48:assets%2Fimages%2Ffreeplay%2Ficons%2Fgfpixel.pngR2i437R3R172R5R249R6tgoR0y51:assets%2Fimages%2Ffreeplay%2Ficons%2Fmommypixel.pngR2i550R3R172R5R250R6tgoR0y53:assets%2Fimages%2Ffreeplay%2Ficons%2Fmonsterpixel.pngR2i385R3R172R5R251R6tgoR0y63:assets%2Fimages%2Ffreeplay%2Ficons%2Fparents-christmaspixel.pngR2i742R3R172R5R252R6tgoR0y50:assets%2Fimages%2Ffreeplay%2Ficons%2Fpicopixel.pngR2i394R3R172R5R253R6tgoR0y52:assets%2Fimages%2Ffreeplay%2Ficons%2Fsenpaipixel.pngR2i489R3R172R5R254R6tgoR0y52:assets%2Fimages%2Ffreeplay%2Ficons%2Fspiritpixel.pngR2i373R3R172R5R255R6tgoR0y52:assets%2Fimages%2Ffreeplay%2Ficons%2Fspookypixel.pngR2i429R3R172R5R256R6tgoR0y53:assets%2Fimages%2Ffreeplay%2Ficons%2Ftankmanpixel.pngR2i366R3R172R5R257R6tgoR0y44:assets%2Fimages%2Ffreeplay%2FletterStuff.pngR2i11738R3R172R5R258R6tgoR0y44:assets%2Fimages%2Ffreeplay%2FletterStuff.xmlR2i2538R3R4R5R259R6tgoR0y42:assets%2Fimages%2Ffreeplay%2FminiArrow.pngR2i226R3R172R5R260R6tgoR0y41:assets%2Fimages%2Ffreeplay%2FpinkBack.pngR2i550R3R172R5R261R6tgoR0y43:assets%2Fimages%2Ffreeplay%2Frankbadges.pngR2i49493R3R172R5R262R6tgoR0y43:assets%2Fimages%2Ffreeplay%2Frankbadges.xmlR2i6691R3R4R5R263R6tgoR0y45:assets%2Fimages%2Ffreeplay%2FrankVignette.pngR2i157014R3R172R5R264R6tgoR0y36:assets%2Fimages%2Ffreeplay%2Fref.pngR2i64273R3R172R5R265R6tgoR0y42:assets%2Fimages%2Ffreeplay%2Fseperator.pngR2i214R3R172R5R266R6tgoR0y59:assets%2Fimages%2Ffreeplay%2FsortedLetters%2FAnimation.jsonR2i548867R3R4R5R267R6tgoR0y60:assets%2Fimages%2Ffreeplay%2FsortedLetters%2Fspritemap1.jsonR2i1877R3R4R5R268R6tgoR0y59:assets%2Fimages%2Ffreeplay%2FsortedLetters%2Fspritemap1.pngR2i9464R3R172R5R269R6tgoR0y40:assets%2Fimages%2Ffreeplay%2Fsparkle.pngR2i10080R3R172R5R270R6tgoR0y40:assets%2Fimages%2Ffreeplay%2Fsparkle.xmlR2i1490R3R4R5R271R6tgoR0y39:assets%2Fimages%2Ffreeplay%2Fsparks.pngR2i41084R3R172R5R272R6tgoR0y39:assets%2Fimages%2Ffreeplay%2Fsparks.xmlR2i864R3R4R5R273R6tgoR0y42:assets%2Fimages%2Ffreeplay%2Fsparksadd.pngR2i49098R3R172R5R274R6tgoR0y42:assets%2Fimages%2Ffreeplay%2Fsparksadd.xmlR2i887R3R4R5R275R6tgoR0y28:assets%2Fimages%2Ffunkay.pngR2i265283R3R172R5R276R6tgoR0y34:assets%2Fimages%2FgfDanceTitle.pngR2i764068R3R172R5R277R6tgoR0y34:assets%2Fimages%2FgfDanceTitle.xmlR2i4178R3R4R5R278R6tgoR0y47:assets%2Fimages%2Ficons%2Ficon-bf-christmas.pngR2i13730R3R172R5R279R6tgoR0y41:assets%2Fimages%2Ficons%2Ficon-bf-old.pngR2i3858R3R172R5R280R6tgoR0y43:assets%2Fimages%2Ficons%2Ficon-bf-pixel.pngR2i274R3R172R5R281R6tgoR0y37:assets%2Fimages%2Ficons%2Ficon-bf.pngR2i13730R3R172R5R282R6tgoR0y38:assets%2Fimages%2Ficons%2Ficon-dad.pngR2i11862R3R172R5R283R6tgoR0y42:assets%2Fimages%2Ficons%2Ficon-darnell.pngR2i16047R3R172R5R284R6tgoR0y39:assets%2Fimages%2Ficons%2Ficon-face.pngR2i3096R3R172R5R285R6tgoR0y37:assets%2Fimages%2Ficons%2Ficon-gf.pngR2i9594R3R172R5R286R6tgoR0y38:assets%2Fimages%2Ficons%2Ficon-mom.pngR2i8540R3R172R5R287R6tgoR0y42:assets%2Fimages%2Ficons%2Ficon-monster.pngR2i16966R3R172R5R288R6tgoR0y52:assets%2Fimages%2Ficons%2Ficon-parents-christmas.pngR2i14689R3R172R5R289R6tgoR0y42:assets%2Fimages%2Ficons%2Ficon-parents.pngR2i14689R3R172R5R290R6tgoR0y39:assets%2Fimages%2Ficons%2Ficon-pico.pngR2i13645R3R172R5R291R6tgoR0y41:assets%2Fimages%2Ficons%2Ficon-senpai.pngR2i305R3R172R5R292R6tgoR0y41:assets%2Fimages%2Ficons%2Ficon-spirit.pngR2i273R3R172R5R293R6tgoR0y41:assets%2Fimages%2Ficons%2Ficon-spooky.pngR2i6529R3R172R5R294R6tgoR0y42:assets%2Fimages%2Ficons%2Ficon-tankman.pngR2i3171R3R172R5R295R6tgoR0y32:assets%2Fimages%2FlogoBumpin.pngR2i506830R3R172R5R296R6tgoR0y32:assets%2Fimages%2FlogoBumpin.xmlR2i2081R3R4R5R297R6tgoR0y40:assets%2Fimages%2Fmainmenu%2Fcredits.pngR2i24995R3R172R5R298R6tgoR0y40:assets%2Fimages%2Fmainmenu%2Fcredits.xmlR2i1798R3R4R5R299R6tgoR0y41:assets%2Fimages%2Fmainmenu%2Ffreeplay.pngR2i32888R3R172R5R300R6tgoR0y41:assets%2Fimages%2Fmainmenu%2Ffreeplay.xmlR2i1243R3R4R5R301R6tgoR0y38:assets%2Fimages%2Fmainmenu%2Fmerch.pngR2i22380R3R172R5R302R6tgoR0y38:assets%2Fimages%2Fmainmenu%2Fmerch.xmlR2i1772R3R4R5R303R6tgoR0y40:assets%2Fimages%2Fmainmenu%2Foptions.pngR2i29705R3R172R5R304R6tgoR0y40:assets%2Fimages%2Fmainmenu%2Foptions.xmlR2i1173R3R4R5R305R6tgoR0y42:assets%2Fimages%2Fmainmenu%2Fstorymode.pngR2i46125R3R172R5R306R6tgoR0y42:assets%2Fimages%2Fmainmenu%2Fstorymode.xmlR2i1255R3R4R5R307R6tgoR0y28:assets%2Fimages%2FmenuBG.pngR2i620342R3R172R5R308R6tgoR0y37:assets%2Fimages%2Fnewgrounds_logo.pngR2i38841R3R172R5R309R6tgoR0y46:assets%2Fimages%2Fnewgrounds_logo_animated.pngR2i85917R3R172R5R310R6tgoR0y45:assets%2Fimages%2Fnewgrounds_logo_classic.pngR2i32062R3R172R5R311R6tgoR0y33:assets%2Fimages%2FNOTE_assets.pngR2i630925R3R172R5R312R6tgoR0y33:assets%2Fimages%2FNOTE_assets.xmlR2i9003R3R4R5R313R6tgoR0y38:assets%2Fimages%2FNOTE_hold_assets.pngR2i2899R3R172R5R314R6tgoR0y26:assets%2Fimages%2Fnum0.pngR2i2183R3R172R5R315R6tgoR0y26:assets%2Fimages%2Fnum1.pngR2i1779R3R172R5R316R6tgoR0y26:assets%2Fimages%2Fnum2.pngR2i2263R3R172R5R317R6tgoR0y26:assets%2Fimages%2Fnum3.pngR2i2254R3R172R5R318R6tgoR0y26:assets%2Fimages%2Fnum4.pngR2i2343R3R172R5R319R6tgoR0y26:assets%2Fimages%2Fnum5.pngR2i2327R3R172R5R320R6tgoR0y26:assets%2Fimages%2Fnum6.pngR2i2390R3R172R5R321R6tgoR0y26:assets%2Fimages%2Fnum7.pngR2i2173R3R172R5R322R6tgoR0y26:assets%2Fimages%2Fnum8.pngR2i2328R3R172R5R323R6tgoR0y26:assets%2Fimages%2Fnum9.pngR2i2211R3R172R5R324R6tgoR0y37:assets%2Fimages%2Fprompt-ng_login.pngR2i35483R3R172R5R325R6tgoR0y37:assets%2Fimages%2Fprompt-ng_login.xmlR2i1652R3R4R5R326R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_1.pngR2i475R3R172R5R327R6tgoR0y41:assets%2Fimages%2Fsoundtray%2Fbars_10.pngR2i2600R3R172R5R328R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_2.pngR2i660R3R172R5R329R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_3.pngR2i839R3R172R5R330R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_4.pngR2i1016R3R172R5R331R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_5.pngR2i1237R3R172R5R332R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_6.pngR2i1509R3R172R5R333R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_7.pngR2i1793R3R172R5R334R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_8.pngR2i2016R3R172R5R335R6tgoR0y40:assets%2Fimages%2Fsoundtray%2Fbars_9.pngR2i2309R3R172R5R336R6tgoR0y43:assets%2Fimages%2Fsoundtray%2Fvolumebox.pngR2i8294R3R172R5R337R6tgoR0y45:assets%2Fimages%2FstageBuild%2FcursorGrab.pngR2i733R3R172R5R338R6tgoR0y49:assets%2Fimages%2FstageBuild%2FcursorGrabbing.pngR2i762R3R172R5R339R6tgoR0y47:assets%2Fimages%2FstageBuild%2FcursorSelect.pngR2i573R3R172R5R340R6tgoR0y47:assets%2Fimages%2FstageBuild%2FstageTempImg.pngR2i167R3R172R5R341R6tgoR0y44:assets%2Fimages%2FstageBuild%2FtoolbarBF.pngR2i1025R3R172R5R342R6tgoR0y53:assets%2Fimages%2Fstorymenu%2Fdifficulties%2Feasy.pngR2i1608R3R172R5R343R6tgoR0y54:assets%2Fimages%2Fstorymenu%2Fdifficulties%2Ferect.pngR2i1899R3R172R5R344R6tgoR0y53:assets%2Fimages%2Fstorymenu%2Fdifficulties%2Fhard.pngR2i1771R3R172R5R345R6tgoR0y58:assets%2Fimages%2Fstorymenu%2Fdifficulties%2Fnightmare.pngR2i32363R3R172R5R346R6tgoR0y58:assets%2Fimages%2Fstorymenu%2Fdifficulties%2Fnightmare.xmlR2i1055R3R4R5R347R6tgoR0y55:assets%2Fimages%2Fstorymenu%2Fdifficulties%2Fnormal.pngR2i2338R3R172R5R348R6tgoR0y44:assets%2Fimages%2Fstorymenu%2Fprops%2Fbf.pngR2i79836R3R172R5R349R6tgoR0y44:assets%2Fimages%2Fstorymenu%2Fprops%2Fbf.xmlR2i5605R3R4R5R350R6tgoR0y45:assets%2Fimages%2Fstorymenu%2Fprops%2Fdad.pngR2i43875R3R172R5R351R6tgoR0y45:assets%2Fimages%2Fstorymenu%2Fprops%2Fdad.xmlR2i2026R3R4R5R352R6tgoR0y49:assets%2Fimages%2Fstorymenu%2Fprops%2Fdarnell.pngR2i36598R3R172R5R353R6tgoR0y49:assets%2Fimages%2Fstorymenu%2Fprops%2Fdarnell.xmlR2i2244R3R4R5R354R6tgoR0y44:assets%2Fimages%2Fstorymenu%2Fprops%2Fgf.pngR2i110952R3R172R5R355R6tgoR0y44:assets%2Fimages%2Fstorymenu%2Fprops%2Fgf.xmlR2i4175R3R4R5R356R6tgoR0y45:assets%2Fimages%2Fstorymenu%2Fprops%2Fmom.pngR2i51112R3R172R5R357R6tgoR0y45:assets%2Fimages%2Fstorymenu%2Fprops%2Fmom.xmlR2i2242R3R4R5R358R6tgoR0y46:assets%2Fimages%2Fstorymenu%2Fprops%2Fnene.pngR2i266026R3R172R5R359R6tgoR0y46:assets%2Fimages%2Fstorymenu%2Fprops%2Fnene.xmlR2i4261R3R4R5R360R6tgoR0y54:assets%2Fimages%2Fstorymenu%2Fprops%2Fparents-xmas.pngR2i96526R3R172R5R361R6tgoR0y54:assets%2Fimages%2Fstorymenu%2Fprops%2Fparents-xmas.xmlR2i2043R3R4R5R362R6tgoR0y53:assets%2Fimages%2Fstorymenu%2Fprops%2Fpico-player.pngR2i113896R3R172R5R363R6tgoR0y53:assets%2Fimages%2Fstorymenu%2Fprops%2Fpico-player.xmlR2i5813R3R4R5R364R6tgoR0y46:assets%2Fimages%2Fstorymenu%2Fprops%2Fpico.pngR2i49578R3R172R5R365R6tgoR0y46:assets%2Fimages%2Fstorymenu%2Fprops%2Fpico.xmlR2i2021R3R4R5R366R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Fprops%2Fsenpai.pngR2i13644R3R172R5R367R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Fprops%2Fsenpai.xmlR2i2033R3R4R5R368R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Fprops%2Fspooky.pngR2i31716R3R172R5R369R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Fprops%2Fspooky.xmlR2i2547R3R4R5R370R6tgoR0y49:assets%2Fimages%2Fstorymenu%2Fprops%2Ftankman.pngR2i21169R3R172R5R371R6tgoR0y49:assets%2Fimages%2Fstorymenu%2Fprops%2Ftankman.xmlR2i2245R3R4R5R372R6tgoR0y51:assets%2Fimages%2Fstorymenu%2Ftitles%2Ftutorial.pngR2i3887R3R172R5R373R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek1.pngR2i3224R3R172R5R374R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek2.pngR2i3494R3R172R5R375R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek3.pngR2i3597R3R172R5R376R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek4.pngR2i3307R3R172R5R377R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek5.pngR2i3344R3R172R5R378R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek6.pngR2i3577R3R172R5R379R6tgoR0y48:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweek7.pngR2i3551R3R172R5R380R6tgoR0y51:assets%2Fimages%2Fstorymenu%2Ftitles%2Fweekend1.pngR2i58118R3R172R5R381R6tgoR0y45:assets%2Fimages%2Fstorymenu%2Fui%2Farrows.pngR2i1985R3R172R5R382R6tgoR0y45:assets%2Fimages%2Fstorymenu%2Fui%2Farrows.xmlR2i393R3R4R5R383R6tgoR0y43:assets%2Fimages%2Fstorymenu%2Fui%2Flock.pngR2i993R3R172R5R384R6tgoR0y36:assets%2Fimages%2FStrumlineNotes.pngR2i1003867R3R172R5R385R6tgoR0y36:assets%2Fimages%2FStrumlineNotes.xmlR2i5896R3R4R5R386R6tgoR0y32:assets%2Fimages%2FtitleEnter.pngR2i1080961R3R172R5R387R6tgoR0y32:assets%2Fimages%2FtitleEnter.xmlR2i4818R3R4R5R388R6tgoR0y64:assets%2Fmusic%2FchartEditorLoop%2FchartEditorLoop-metadata.jsonR2i257R3R4R5R389R6tgoR0y48:assets%2Fmusic%2Fcredits%2Fcredits-metadata.jsonR2i243R3R4R5R390R6tgoR0y54:assets%2Fmusic%2FfreakyMenu%2FfreakyMenu-metadata.jsonR2i249R3R4R5R391R6tgoR2i2712181R3y5:MUSICR5y44:assets%2Fmusic%2FfreakyMenu%2FfreakyMenu.mp3y9:pathGroupaR393hR6tgoR0y62:assets%2Fmusic%2FfreeplayRandom%2FfreeplayRandom-metadata.jsonR2i243R3R4R5R395R6tgoR2i1908445R3R392R5y52:assets%2Fmusic%2FfreeplayRandom%2FfreeplayRandom.mp3R394aR396hR6tgoR0y72:assets%2Fmusic%2FgirlfriendsRingtone%2FgirlfriendsRingtone-metadata.jsonR2i218R3R4R5R397R6tgoR2i4321754R3R392R5y62:assets%2Fmusic%2FgirlfriendsRingtone%2FgirlfriendsRingtone.mp3R394aR398hR6tgoR0y44:assets%2Fscripts%2Fcharacters%2Fbf-pixel.hxcR2i519R3R4R5R399R6tgoR0y38:assets%2Fscripts%2Fcharacters%2Fbf.hxcR2i1333R3R4R5R400R6tgoR0y50:assets%2Fscripts%2Fcharacters%2Fdarnell-blazin.hxcR2i8499R3R4R5R401R6tgoR0y43:assets%2Fscripts%2Fcharacters%2Fdarnell.hxcR2i2938R3R4R5R402R6tgoR0y38:assets%2Fscripts%2Fcharacters%2Fgf.hxcR2i1257R3R4R5R403R6tgoR0y40:assets%2Fscripts%2Fcharacters%2Fnene.hxcR2i9780R3R4R5R404R6tgoR0y53:assets%2Fscripts%2Fcharacters%2Fparents-christmas.hxcR2i604R3R4R5R405R6tgoR0y47:assets%2Fscripts%2Fcharacters%2Fpico-blazin.hxcR2i10774R3R4R5R406R6tgoR0y49:assets%2Fscripts%2Fcharacters%2Fpico-playable.hxcR2i9720R3R4R5R407R6tgoR0y48:assets%2Fscripts%2Fcharacters%2Fpico-speaker.hxcR2i2521R3R4R5R408R6tgoR0y42:assets%2Fscripts%2Fcharacters%2Fspirit.hxcR2i736R3R4R5R409R6tgoR0y49:assets%2Fscripts%2Fcharacters%2Ftankman-atlas.hxcR2i765R3R4R5R410R6tgoR0y43:assets%2Fscripts%2Fcharacters%2Ftankman.hxcR2i663R3R4R5R411R6tgoR0y47:assets%2Fscripts%2Fdialogue%2Fboxes%2Froses.hxcR2i1578R3R4R5R412R6tgoR0y48:assets%2Fscripts%2Fdialogue%2Fboxes%2Fthorns.hxcR2i1581R3R4R5R413R6tgoR0y40:assets%2Fscripts%2Flevels%2Fweekend1.hxcR2i557R3R4R5R414R6tgoR0y28:assets%2Fscripts%2FREADME.mdR2i352R3R4R5R415R6tgoR0y47:assets%2Fscripts%2Fshaders%2FAddColorShader.hxcR2i677R3R4R5R416R6tgoR0y53:assets%2Fscripts%2Fshaders%2FBuildingEffectShader.hxcR2i617R3R4R5R417R6tgoR0y50:assets%2Fscripts%2Fshaders%2FDarkenColorShader.hxcR2i683R3R4R5R418R6tgoR0y50:assets%2Fscripts%2Fshaders%2FInvertColorShader.hxcR2i258R3R4R5R419R6tgoR0y52:assets%2Fscripts%2Fshaders%2FMultiplyColorShader.hxcR2i687R3R4R5R420R6tgoR0y52:assets%2Fscripts%2Fshaders%2FSubtractColorShader.hxcR2i687R3R4R5R421R6tgoR0y35:assets%2Fscripts%2Fsongs%2F2hot.hxcR2i10512R3R4R5R422R6tgoR0y37:assets%2Fscripts%2Fsongs%2Fblazin.hxcR2i3073R3R4R5R423R6tgoR0y38:assets%2Fscripts%2Fsongs%2Fdarnell.hxcR2i10005R3R4R5R424R6tgoR0y37:assets%2Fscripts%2Fsongs%2Feggnog.hxcR2i4857R3R4R5R425R6tgoR0y35:assets%2Fscripts%2Fsongs%2Fguns.hxcR2i1125R3R4R5R426R6tgoR0y37:assets%2Fscripts%2Fsongs%2Flit-up.hxcR2i597R3R4R5R427R6tgoR0y36:assets%2Fscripts%2Fsongs%2Froses.hxcR2i2545R3R4R5R428R6tgoR0y44:assets%2Fscripts%2Fsongs%2Fsatin-panties.hxcR2i1023R3R4R5R429R6tgoR0y37:assets%2Fscripts%2Fsongs%2Fsenpai.hxcR2i2204R3R4R5R430R6tgoR0y37:assets%2Fscripts%2Fsongs%2Fstress.hxcR2i2222R3R4R5R431R6tgoR0y37:assets%2Fscripts%2Fsongs%2Fthorns.hxcR2i3384R3R4R5R432R6tgoR0y34:assets%2Fscripts%2Fsongs%2Fugh.hxcR2i1121R3R4R5R433R6tgoR0y40:assets%2Fscripts%2Fstages%2FlimoRide.hxcR2i2906R3R4R5R434R6tgoR0y44:assets%2Fscripts%2Fstages%2FphillyBlazin.hxcR2i6879R3R4R5R435R6tgoR0y45:assets%2Fscripts%2Fstages%2FphillyStreets.hxcR2i15731R3R4R5R436R6tgoR0y43:assets%2Fscripts%2Fstages%2FphillyTrain.hxcR2i3825R3R4R5R437R6tgoR0y55:assets%2Fscripts%2Fstages%2Fprops%2FABotAtlasSprite.hxcR2i450R3R4R5R438R6tgoR0y54:assets%2Fscripts%2Fstages%2Fprops%2FABotVisualizer.hxcR2i701R3R4R5R439R6tgoR0y52:assets%2Fscripts%2Fstages%2Fprops%2FCasingSprite.hxcR2i1683R3R4R5R440R6tgoR0y55:assets%2Fscripts%2Fstages%2Fprops%2FDadShootsSprite.hxcR2i900R3R4R5R441R6tgoR0y55:assets%2Fscripts%2Fstages%2Fprops%2FSantaDiesSprite.hxcR2i897R3R4R5R442R6tgoR0y59:assets%2Fscripts%2Fstages%2Fprops%2FSpraycanAtlasSprite.hxcR2i1688R3R4R5R443R6tgoR0y53:assets%2Fscripts%2Fstages%2Fprops%2FTankmanSprite.hxcR2i3129R3R4R5R444R6tgoR0y58:assets%2Fscripts%2Fstages%2Fprops%2FTankmanSpriteGroup.hxcR2i3327R3R4R5R445R6tgoR0y38:assets%2Fscripts%2Fstages%2Fschool.hxcR2i371R3R4R5R446R6tgoR0y42:assets%2Fscripts%2Fstages%2FschoolEvil.hxcR2i1142R3R4R5R447R6tgoR0y45:assets%2Fscripts%2Fstages%2FspookyMansion.hxcR2i1902R3R4R5R448R6tgoR0y50:assets%2Fscripts%2Fstages%2FtankmanBattlefield.hxcR2i1757R3R4R5R449R6tgoR0y32:assets%2Fshaders%2FaddColor.fragR2i532R3R4R5R450R6tgoR0y34:assets%2Fshaders%2FblendModes.fragR2i146R3R4R5R451R6tgoR0y32:assets%2Fshaders%2Fbuilding.fragR2i185R3R4R5R452R6tgoR0y35:assets%2Fshaders%2FcustomBlend.fragR2i1009R3R4R5R453R6tgoR0y35:assets%2Fshaders%2FdarkenColor.fragR2i872R3R4R5R454R6tgoR0y36:assets%2Fshaders%2FgaussianBlur.fragR2i4543R3R4R5R455R6tgoR0y33:assets%2Fshaders%2Fgrayscale.fragR2i1071R3R4R5R456R6tgoR0y27:assets%2Fshaders%2Fhsv.fragR2i1178R3R4R5R457R6tgoR0y35:assets%2Fshaders%2FinvertColor.fragR2i445R3R4R5R458R6tgoR0y30:assets%2Fshaders%2Fmosaic.fragR2i194R3R4R5R459R6tgoR0y37:assets%2Fshaders%2FmultiplyColor.fragR2i474R3R4R5R460R6tgoR0y29:assets%2Fshaders%2Fpixel.fragR2i1469R3R4R5R461R6tgoR0y30:assets%2Fshaders%2Fpuddle.fragR2i182R3R4R5R462R6tgoR0y28:assets%2Fshaders%2Frain.fragR2i7286R3R4R5R463R6tgoR0y29:assets%2Fshaders%2Fsepia.fragR2i1023R3R4R5R464R6tgoR0y37:assets%2Fshaders%2FsubtractColor.fragR2i547R3R4R5R465R6tgoR0y30:assets%2Fshaders%2Fwiggle.fragR2i2133R3R4R5R466R6tgoR2i11955R3R392R5y32:assets%2Fsounds%2FcancelMenu.mp3R394aR467hR6tgoR2i1235113R3R392R5y39:assets%2Fsounds%2Fcartoons%2F376197.mp3R394aR468hR6tgoR2i853934R3R392R5y39:assets%2Fsounds%2Fcartoons%2F445123.mp3R394aR469hR6tgoR2i1309509R3R392R5y39:assets%2Fsounds%2Fcartoons%2F527474.mp3R394aR470hR6tgoR2i1091544R3R392R5y39:assets%2Fsounds%2Fcartoons%2F544919.mp3R394aR471hR6tgoR2i662091R3R392R5y39:assets%2Fsounds%2Fcartoons%2F717986.mp3R394aR472hR6tgoR2i2943R3R392R5y36:assets%2Fsounds%2Fchannel_switch.mp3R394aR473hR6tgoR2i3805R3R392R5y48:assets%2Fsounds%2FchartingSounds%2FClickDown.mp3R394aR474hR6tgoR2i2551R3R392R5y46:assets%2Fsounds%2FchartingSounds%2FClickUp.mp3R394aR475hR6tgoR2i8821R3R392R5y49:assets%2Fsounds%2FchartingSounds%2FexitWindow.mp3R394aR476hR6tgoR2i32017R3R392R5y48:assets%2Fsounds%2FchartingSounds%2Fkeyboard1.mp3R394aR477hR6tgoR2i32017R3R392R5y48:assets%2Fsounds%2FchartingSounds%2Fkeyboard2.mp3R394aR478hR6tgoR2i32017R3R392R5y48:assets%2Fsounds%2FchartingSounds%2Fkeyboard3.mp3R394aR479hR6tgoR2i8194R3R392R5y49:assets%2Fsounds%2FchartingSounds%2Fmetronome1.mp3R394aR480hR6tgoR2i8194R3R392R5y49:assets%2Fsounds%2FchartingSounds%2Fmetronome2.mp3R394aR481hR6tgoR2i37033R3R392R5y48:assets%2Fsounds%2FchartingSounds%2FnoteErase.mp3R394aR482hR6tgoR2i11329R3R392R5y46:assets%2Fsounds%2FchartingSounds%2FnoteLay.mp3R394aR483hR6tgoR2i16971R3R392R5y49:assets%2Fsounds%2FchartingSounds%2FopenWindow.mp3R394aR484hR6tgoR2i33898R3R392R5y50:assets%2Fsounds%2FchartingSounds%2Fstretch1_UI.mp3R394aR485hR6tgoR2i33898R3R392R5y50:assets%2Fsounds%2FchartingSounds%2Fstretch2_UI.mp3R394aR486hR6tgoR2i33898R3R392R5y53:assets%2Fsounds%2FchartingSounds%2FstretchSNAP_UI.mp3R394aR487hR6tgoR2i17598R3R392R5y43:assets%2Fsounds%2FchartingSounds%2Fundo.mp3R394aR488hR6tgoR2i16344R3R392R5y32:assets%2Fsounds%2FcomboSound.mp3R394aR489hR6tgoR2i56468R3R392R5y33:assets%2Fsounds%2FconfirmMenu.mp3R394aR490hR6tgoR2i9017R3R392R5y25:assets%2Fsounds%2Ffav.mp3R394aR491hR6tgoR2i118963R3R392R5y29:assets%2Fsounds%2Fperfect.mp3R394aR492hR6tgoR2i45556R3R392R5y39:assets%2Fsounds%2Franks%2Fexcellent.mp3R394aR493hR6tgoR2i45556R3R392R5y34:assets%2Fsounds%2Franks%2Fgood.mp3R394aR494hR6tgoR2i45556R3R392R5y35:assets%2Fsounds%2Franks%2Fgreat.mp3R394aR495hR6tgoR2i59349R3R392R5y34:assets%2Fsounds%2Franks%2Floss.mp3R394aR496hR6tgoR2i79829R3R392R5y37:assets%2Fsounds%2Franks%2Fperfect.mp3R394aR497hR6tgoR2i14627R3R392R5y39:assets%2Fsounds%2Franks%2Frankinbad.mp3R394aR498hR6tgoR2i10448R3R392R5y42:assets%2Fsounds%2Franks%2Frankinnormal.mp3R394aR499hR6tgoR2i17135R3R392R5y43:assets%2Fsounds%2Franks%2Frankinperfect.mp3R394aR500hR6tgoR2i8612R3R392R5y34:assets%2Fsounds%2Fremote_click.mp3R394aR501hR6tgoR2i11955R3R392R5y32:assets%2Fsounds%2FscrollMenu.mp3R394aR502hR6tgoR2i385611R3R392R5y31:assets%2Fsounds%2FsoundTest.mp3R394aR503hR6tgoR2i4224R3R392R5y41:assets%2Fsounds%2Fsoundtray%2FVoldown.mp3R394aR504hR6tgoR2i7248R3R392R5y40:assets%2Fsounds%2Fsoundtray%2FVolMAX.mp3R394aR505hR6tgoR2i4272R3R392R5y39:assets%2Fsounds%2Fsoundtray%2FVolup.mp3R394aR506hR6tgoR2i13392R3R392R5y27:assets%2Fsounds%2Ftv_on.mp3R394aR507hR6tgoR2i4582R3R392R5y27:assets%2Fsounds%2Funfav.mp3R394aR508hR6tgoR2i454704R3y4:FONTy9:classNamey30:__ASSET__assets_fonts_5by7_ttfR5y25:assets%2Ffonts%2F5by7.ttfR6tgoR2i404132R3R509R510y32:__ASSET__assets_fonts_5by7_b_ttfR5y27:assets%2Ffonts%2F5by7_b.ttfR6tgoR2i24448R3R509R510y33:__ASSET__assets_fonts_ds_digi_ttfR5y28:assets%2Ffonts%2FDS-DIGI.TTFR6tgoR2i24896R3R509R510y34:__ASSET__assets_fonts_ds_digib_ttfR5y29:assets%2Ffonts%2FDS-DIGIB.TTFR6tgoR2i24676R3R509R510y34:__ASSET__assets_fonts_ds_digii_ttfR5y29:assets%2Ffonts%2FDS-DIGII.TTFR6tgoR2i25480R3R509R510y34:__ASSET__assets_fonts_ds_digit_ttfR5y29:assets%2Ffonts%2FDS-DIGIT.TTFR6tgoR0y34:assets%2Ffonts%2Ffonts-go-here.txtR2i68R3R4R5R523R6tgoR2i101924R3R509R510y43:__ASSET__assets_fonts_inconsolata_black_ttfR5y38:assets%2Ffonts%2FInconsolata-Black.ttfR6tgoR2i102152R3R509R510y42:__ASSET__assets_fonts_inconsolata_bold_ttfR5y37:assets%2Ffonts%2FInconsolata-Bold.ttfR6tgoR2i102136R3R509R510y47:__ASSET__assets_fonts_inconsolata_extrabold_ttfR5y42:assets%2Ffonts%2FInconsolata-ExtraBold.ttfR6tgoR2i101972R3R509R510y48:__ASSET__assets_fonts_inconsolata_extralight_ttfR5y43:assets%2Ffonts%2FInconsolata-ExtraLight.ttfR6tgoR2i102176R3R509R510y44:__ASSET__assets_fonts_inconsolata_medium_ttfR5y39:assets%2Ffonts%2FInconsolata-Medium.ttfR6tgoR2i101752R3R509R510y45:__ASSET__assets_fonts_inconsolata_regular_ttfR5y40:assets%2Ffonts%2FInconsolata-Regular.ttfR6tgoR2i102268R3R509R510y46:__ASSET__assets_fonts_inconsolata_semibold_ttfR5y41:assets%2Ffonts%2FInconsolata-SemiBold.ttfR6tgoR0y24:assets%2Ffonts%2FOFL.txtR2i4423R3R4R5R538R6tgoR2i14656R3R509R510y31:__ASSET__assets_fonts_pixel_otfR5y26:assets%2Ffonts%2Fpixel.otfR6tgoR2i19140R3R509R510y39:__ASSET__assets_fonts_quantico_bold_ttfR5y34:assets%2Ffonts%2FQuantico-Bold.ttfR6tgoR2i18888R3R509R510y45:__ASSET__assets_fonts_quantico_bolditalic_ttfR5y40:assets%2Ffonts%2FQuantico-BoldItalic.ttfR6tgoR2i20360R3R509R510y41:__ASSET__assets_fonts_quantico_italic_ttfR5y36:assets%2Ffonts%2FQuantico-Italic.ttfR6tgoR2i19200R3R509R510y42:__ASSET__assets_fonts_quantico_regular_ttfR5y37:assets%2Ffonts%2FQuantico-Regular.ttfR6tgoR2i75864R3R509R510y29:__ASSET__assets_fonts_vcr_ttfR5y24:assets%2Ffonts%2Fvcr.ttfR6tgoR2i8220R3R392R5y26:flixel%2Fsounds%2Fbeep.mp3R394aR551y26:flixel%2Fsounds%2Fbeep.ogghR6tgoR2i39706R3R392R5y28:flixel%2Fsounds%2Fflixel.mp3R394aR553y28:flixel%2Fsounds%2Fflixel.ogghR6tgoR2i6840R3y5:SOUNDR5R552R394aR551R552hgoR2i33629R3R555R5R554R394aR553R554hgoR2i15744R3R509R510y35:__ASSET__flixel_fonts_nokiafc22_ttfR5y30:flixel%2Ffonts%2Fnokiafc22.ttfR6tgoR2i29724R3R509R510y36:__ASSET__flixel_fonts_monsterrat_ttfR5y31:flixel%2Ffonts%2Fmonsterrat.ttfR6tgoR0y33:flixel%2Fimages%2Fui%2Fbutton.pngR2i248R3R172R5R560R6tgoR0y36:flixel%2Fimages%2Flogo%2Fdefault.pngR2i505R3R172R5R561R6tgoR0y42:flixel%2Fimages%2Ftransitions%2Fcircle.pngR2i824R3R172R5R562R6tgoR0y53:flixel%2Fimages%2Ftransitions%2Fdiagonal_gradient.pngR2i3812R3R172R5R563R6tgoR0y43:flixel%2Fimages%2Ftransitions%2Fdiamond.pngR2i788R3R172R5R564R6tgoR0y42:flixel%2Fimages%2Ftransitions%2Fsquare.pngR2i383R3R172R5R565R6tgoR0y34:flixel%2Fflixel-ui%2Fimg%2Fbox.pngR2i912R3R172R5R566R6tgoR0y37:flixel%2Fflixel-ui%2Fimg%2Fbutton.pngR2i433R3R172R5R567R6tgoR0y48:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_down.pngR2i446R3R172R5R568R6tgoR0y48:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_left.pngR2i459R3R172R5R569R6tgoR0y49:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_right.pngR2i511R3R172R5R570R6tgoR0y46:flixel%2Fflixel-ui%2Fimg%2Fbutton_arrow_up.pngR2i493R3R172R5R571R6tgoR0y42:flixel%2Fflixel-ui%2Fimg%2Fbutton_thin.pngR2i247R3R172R5R572R6tgoR0y44:flixel%2Fflixel-ui%2Fimg%2Fbutton_toggle.pngR2i534R3R172R5R573R6tgoR0y40:flixel%2Fflixel-ui%2Fimg%2Fcheck_box.pngR2i922R3R172R5R574R6tgoR0y41:flixel%2Fflixel-ui%2Fimg%2Fcheck_mark.pngR2i946R3R172R5R575R6tgoR0y37:flixel%2Fflixel-ui%2Fimg%2Fchrome.pngR2i253R3R172R5R576R6tgoR0y42:flixel%2Fflixel-ui%2Fimg%2Fchrome_flat.pngR2i212R3R172R5R577R6tgoR0y43:flixel%2Fflixel-ui%2Fimg%2Fchrome_inset.pngR2i192R3R172R5R578R6tgoR0y43:flixel%2Fflixel-ui%2Fimg%2Fchrome_light.pngR2i214R3R172R5R579R6tgoR0y44:flixel%2Fflixel-ui%2Fimg%2Fdropdown_mark.pngR2i156R3R172R5R580R6tgoR0y41:flixel%2Fflixel-ui%2Fimg%2Ffinger_big.pngR2i1724R3R172R5R581R6tgoR0y43:flixel%2Fflixel-ui%2Fimg%2Ffinger_small.pngR2i294R3R172R5R582R6tgoR0y38:flixel%2Fflixel-ui%2Fimg%2Fhilight.pngR2i129R3R172R5R583R6tgoR0y36:flixel%2Fflixel-ui%2Fimg%2Finvis.pngR2i128R3R172R5R584R6tgoR0y41:flixel%2Fflixel-ui%2Fimg%2Fminus_mark.pngR2i136R3R172R5R585R6tgoR0y40:flixel%2Fflixel-ui%2Fimg%2Fplus_mark.pngR2i147R3R172R5R586R6tgoR0y36:flixel%2Fflixel-ui%2Fimg%2Fradio.pngR2i191R3R172R5R587R6tgoR0y40:flixel%2Fflixel-ui%2Fimg%2Fradio_dot.pngR2i153R3R172R5R588R6tgoR0y37:flixel%2Fflixel-ui%2Fimg%2Fswatch.pngR2i185R3R172R5R589R6tgoR0y34:flixel%2Fflixel-ui%2Fimg%2Ftab.pngR2i201R3R172R5R590R6tgoR0y39:flixel%2Fflixel-ui%2Fimg%2Ftab_back.pngR2i210R3R172R5R591R6tgoR0y44:flixel%2Fflixel-ui%2Fimg%2Ftooltip_arrow.pngR2i18509R3R172R5R592R6tgoR0y39:flixel%2Fflixel-ui%2Fxml%2Fdefaults.xmlR2i1263R3R4R5R593R6tgoR0y53:flixel%2Fflixel-ui%2Fxml%2Fdefault_loading_screen.xmlR2i1953R3R4R5R594R6tgoR0y44:flixel%2Fflixel-ui%2Fxml%2Fdefault_popup.xmlR2i1848R3R4R5R595R6tgoR0y56:haxeui-flixel%2Fstyles%2Fdefault%2Fcursors%2Fpointer.pngR2i7282R3R172R5R596R6tgoR0y43:haxeui-flixel%2Fstyles%2Fdefault%2Fmain.cssR2i168R3R4R5R597R6tgoR0y31:flxanimate%2Fimages%2Fpivot.pngR2i300R3R172R5R598R6tgh\",\"rootPath\":null,\"version\":2,\"libraryArgs\":[],\"libraryType\":null}"; var manifest = lime_utils_AssetManifest.parse(data,ManifestResources.rootPath); var library = lime_utils_AssetLibrary.fromManifest(manifest); lime_utils_Assets.registerLibrary("default",library); library = lime_utils_Assets.getLibrary("default"); if(library != null) { ManifestResources.preloadLibraries.push(library); } else { ManifestResources.preloadLibraryNames.push("default"); } }; var lime_text_Font = function(name) { if(name != null) { this.name = name; } if(!this.__init) { if(this.ascender == undefined) { this.ascender = 0; } if(this.descender == undefined) { this.descender = 0; } if(this.height == undefined) { this.height = 0; } if(this.numGlyphs == undefined) { this.numGlyphs = 0; } if(this.underlinePosition == undefined) { this.underlinePosition = 0; } if(this.underlineThickness == undefined) { this.underlineThickness = 0; } if(this.unitsPerEM == undefined) { this.unitsPerEM = 0; } if(this.__fontID != null) { if(lime_utils_Assets.isLocal(this.__fontID)) { this.__fromBytes(lime_utils_Assets.getBytes(this.__fontID)); } } else 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) { if(bytes == null) { return null; } var font = new lime_text_Font(); font.__fromBytes(bytes); return font; }; lime_text_Font.fromFile = function(path) { if(path == null) { return null; } var font = new lime_text_Font(); font.__fromFile(path); return font; }; lime_text_Font.loadFromBytes = function(bytes) { return lime_app_Future.withValue(lime_text_Font.fromBytes(bytes)); }; lime_text_Font.loadFromFile = function(path) { var request = new lime_net__$HTTPRequest_$lime_$text_$Font(); return request.load(path).then(function(font) { if(font != null) { return lime_app_Future.withValue(font); } else { return lime_app_Future.withError(""); } }); }; lime_text_Font.loadFromName = function(path) { var font = new lime_text_Font(); return font.__loadFromName(path); }; lime_text_Font.__measureFontNode = function(fontFamily) { var node = window.document.createElement("span"); node.setAttribute("aria-hidden","true"); var text = window.document.createTextNode("BESbswy"); node.appendChild(text); var style = node.style; style.display = "block"; style.position = "absolute"; style.top = "-9999px"; style.left = "-9999px"; style.fontSize = "300px"; style.width = "auto"; style.height = "auto"; style.lineHeight = "normal"; style.margin = "0"; style.padding = "0"; style.fontVariant = "normal"; style.whiteSpace = "nowrap"; style.fontFamily = fontFamily; window.document.body.appendChild(node); return node; }; lime_text_Font.prototype = { ascender: null ,descender: null ,height: null ,name: null ,numGlyphs: null ,src: null ,underlinePosition: null ,underlineThickness: null ,unitsPerEM: null ,__fontID: null ,__fontPath: null ,__init: 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; } ,__copyFrom: function(other) { if(other != null) { this.ascender = other.ascender; this.descender = other.descender; this.height = other.height; this.name = other.name; this.numGlyphs = other.numGlyphs; this.src = other.src; this.underlinePosition = other.underlinePosition; this.underlineThickness = other.underlineThickness; this.unitsPerEM = other.unitsPerEM; this.__fontID = other.__fontID; this.__fontPath = other.__fontPath; this.__init = true; } } ,__fromBytes: function(bytes) { this.__fontPath = null; } ,__fromFile: function(path) { this.__fontPath = path; } ,__initializeSource: function() { this.__init = true; } ,__loadFromName: function(name) { var _gthis = this; var promise = new lime_app_Promise(); this.name = name; var userAgent = $global.navigator.userAgent.toLowerCase(); var isSafari = userAgent.indexOf(" safari/") >= 0 && userAgent.indexOf(" chrome/") < 0; var isUIWebView = new EReg("(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)","i").match(userAgent); if(!isSafari && !isUIWebView && (window.document.fonts && ($_=window.document.fonts,$bind($_,$_.load)))) { window.document.fonts.load("1em '" + name + "'").then(function(_) { promise.complete(_gthis); },function(_) { lime_utils_Log.warn("Could not load web font \"" + name + "\"",{ fileName : "lime/text/Font.hx", lineNumber : 513, className : "lime.text.Font", methodName : "__loadFromName"}); promise.complete(_gthis); }); } else { var node1 = lime_text_Font.__measureFontNode("'" + name + "', sans-serif"); var node2 = lime_text_Font.__measureFontNode("'" + name + "', serif"); var width1 = node1.offsetWidth; var width2 = node2.offsetWidth; var interval = -1; var timeout = 3000; var intervalLength = 50; var intervalCount = 0; var loaded; var timeExpired; var checkFont = function() { intervalCount += 1; loaded = node1.offsetWidth != width1 || node2.offsetWidth != width2; timeExpired = intervalCount * intervalLength >= timeout; if(loaded || timeExpired) { window.clearInterval(interval); node1.parentNode.removeChild(node1); node2.parentNode.removeChild(node2); node1 = null; node2 = null; if(timeExpired) { lime_utils_Log.warn("Could not load web font \"" + name + "\"",{ fileName : "lime/text/Font.hx", lineNumber : 548, className : "lime.text.Font", methodName : "__loadFromName"}); } promise.complete(_gthis); } }; interval = window.setInterval(checkFont,intervalLength); } return promise.future; } ,__setSize: function(size) { } ,__class__: lime_text_Font }; var _$_$ASSET_$_$assets_$fonts_$5by7_$ttf = $hx_exports["__ASSET__assets_fonts_5by7_ttf"] = function() { this.ascender = 700; this.descender = 0; this.height = 700; this.numGlyphs = 400; this.underlinePosition = -100; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "5by7"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_5by7_ttf"] = _$_$ASSET_$_$assets_$fonts_$5by7_$ttf; _$_$ASSET_$_$assets_$fonts_$5by7_$ttf.__name__ = "__ASSET__assets_fonts_5by7_ttf"; _$_$ASSET_$_$assets_$fonts_$5by7_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$5by7_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$5by7_$ttf }); var _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf = $hx_exports["__ASSET__assets_fonts_5by7_b_ttf"] = function() { this.ascender = 700; this.descender = 0; this.height = 700; this.numGlyphs = 400; this.underlinePosition = -100; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "5by7 Bold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_5by7_b_ttf"] = _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf; _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf.__name__ = "__ASSET__assets_fonts_5by7_b_ttf"; _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf }); var _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf = $hx_exports["__ASSET__assets_fonts_ds_digi_ttf"] = function() { this.ascender = 900; this.descender = -200; this.height = 1100; this.numGlyphs = 106; this.underlinePosition = -155; this.underlineThickness = 70; this.unitsPerEM = 1100; this.name = "DS-Digital"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_ds_digi_ttf"] = _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf; _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf.__name__ = "__ASSET__assets_fonts_ds_digi_ttf"; _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf }); var _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf = $hx_exports["__ASSET__assets_fonts_ds_digib_ttf"] = function() { this.ascender = 900; this.descender = -200; this.height = 1100; this.numGlyphs = 105; this.underlinePosition = -155; this.underlineThickness = 70; this.unitsPerEM = 1100; this.name = "DS-Digital Bold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_ds_digib_ttf"] = _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf; _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf.__name__ = "__ASSET__assets_fonts_ds_digib_ttf"; _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf }); var _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf = $hx_exports["__ASSET__assets_fonts_ds_digii_ttf"] = function() { this.ascender = 900; this.descender = -200; this.height = 1100; this.numGlyphs = 106; this.underlinePosition = -155; this.underlineThickness = 70; this.unitsPerEM = 1100; this.name = "DS-Digital Italic"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_ds_digii_ttf"] = _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf; _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf.__name__ = "__ASSET__assets_fonts_ds_digii_ttf"; _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf }); var _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf = $hx_exports["__ASSET__assets_fonts_ds_digit_ttf"] = function() { this.ascender = 900; this.descender = -200; this.height = 1100; this.numGlyphs = 105; this.underlinePosition = -155; this.underlineThickness = 70; this.unitsPerEM = 1100; this.name = "DS-Digital Bold Italic"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_ds_digit_ttf"] = _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf; _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf.__name__ = "__ASSET__assets_fonts_ds_digit_ttf"; _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_black_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata Black"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_black_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_black_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_bold_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata Bold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_bold_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_bold_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_extrabold_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata ExtraBold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_extrabold_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_extrabold_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_extralight_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata ExtraLight"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_extralight_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_extralight_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_medium_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata Medium"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_medium_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_medium_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_regular_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata Regular"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_regular_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_regular_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf }); var _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf = $hx_exports["__ASSET__assets_fonts_inconsolata_semibold_ttf"] = function() { this.ascender = 859; this.descender = -190; this.height = 1049; this.numGlyphs = 962; this.underlinePosition = -225; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Inconsolata SemiBold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_inconsolata_semibold_ttf"] = _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf; _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf.__name__ = "__ASSET__assets_fonts_inconsolata_semibold_ttf"; _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf }); var _$_$ASSET_$_$assets_$fonts_$pixel_$otf = $hx_exports["__ASSET__assets_fonts_pixel_otf"] = function() { this.ascender = 1125; this.descender = -250; this.height = 1375; this.numGlyphs = 262; this.underlinePosition = -143; this.underlineThickness = 20; this.unitsPerEM = 1000; this.name = "Pixel Arial 11 Bold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_pixel_otf"] = _$_$ASSET_$_$assets_$fonts_$pixel_$otf; _$_$ASSET_$_$assets_$fonts_$pixel_$otf.__name__ = "__ASSET__assets_fonts_pixel_otf"; _$_$ASSET_$_$assets_$fonts_$pixel_$otf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$pixel_$otf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$pixel_$otf }); var _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf = $hx_exports["__ASSET__assets_fonts_quantico_bold_ttf"] = function() { this.ascender = 1063; this.descender = -367; this.height = 1430; this.numGlyphs = 261; this.underlinePosition = -100; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Quantico-Bold"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_quantico_bold_ttf"] = _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf; _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf.__name__ = "__ASSET__assets_fonts_quantico_bold_ttf"; _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf }); var _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf = $hx_exports["__ASSET__assets_fonts_quantico_bolditalic_ttf"] = function() { this.ascender = 1063; this.descender = -367; this.height = 1430; this.numGlyphs = 261; this.underlinePosition = -100; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Quantico-BoldItalic"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_quantico_bolditalic_ttf"] = _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf; _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf.__name__ = "__ASSET__assets_fonts_quantico_bolditalic_ttf"; _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf }); var _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf = $hx_exports["__ASSET__assets_fonts_quantico_italic_ttf"] = function() { this.ascender = 1063; this.descender = -367; this.height = 1430; this.numGlyphs = 261; this.underlinePosition = -100; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Quantico-Italic"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_quantico_italic_ttf"] = _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf; _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf.__name__ = "__ASSET__assets_fonts_quantico_italic_ttf"; _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf }); var _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf = $hx_exports["__ASSET__assets_fonts_quantico_regular_ttf"] = function() { this.ascender = 1063; this.descender = -367; this.height = 1430; this.numGlyphs = 261; this.underlinePosition = -100; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Quantico"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_quantico_regular_ttf"] = _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf; _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf.__name__ = "__ASSET__assets_fonts_quantico_regular_ttf"; _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf }); var _$_$ASSET_$_$assets_$fonts_$vcr_$ttf = $hx_exports["__ASSET__assets_fonts_vcr_ttf"] = function() { this.ascender = 1800; this.descender = 0; this.height = 2000; this.numGlyphs = 204; this.underlinePosition = -292; this.underlineThickness = 150; this.unitsPerEM = 2048; this.name = "VCR OSD Mono"; lime_text_Font.call(this); }; $hxClasses["__ASSET__assets_fonts_vcr_ttf"] = _$_$ASSET_$_$assets_$fonts_$vcr_$ttf; _$_$ASSET_$_$assets_$fonts_$vcr_$ttf.__name__ = "__ASSET__assets_fonts_vcr_ttf"; _$_$ASSET_$_$assets_$fonts_$vcr_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$assets_$fonts_$vcr_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$assets_$fonts_$vcr_$ttf }); var _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf = $hx_exports["__ASSET__flixel_fonts_nokiafc22_ttf"] = function() { this.ascender = 2048; this.descender = -512; this.height = 2816; this.numGlyphs = 172; this.underlinePosition = -640; this.underlineThickness = 256; this.unitsPerEM = 2048; this.name = "Nokia Cellphone FC Small"; lime_text_Font.call(this); }; $hxClasses["__ASSET__flixel_fonts_nokiafc22_ttf"] = _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf; _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf.__name__ = "__ASSET__flixel_fonts_nokiafc22_ttf"; _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf }); var _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf = $hx_exports["__ASSET__flixel_fonts_monsterrat_ttf"] = function() { this.ascender = 968; this.descender = -251; this.height = 1219; this.numGlyphs = 263; this.underlinePosition = -150; this.underlineThickness = 50; this.unitsPerEM = 1000; this.name = "Monsterrat"; lime_text_Font.call(this); }; $hxClasses["__ASSET__flixel_fonts_monsterrat_ttf"] = _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf; _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf.__name__ = "__ASSET__flixel_fonts_monsterrat_ttf"; _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf }); 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.toBytes(bytes)); return font; }; openfl_text_Font.fromFile = function(path) { if(path == null) { return null; } var font = new openfl_text_Font(); font.__fromFile(path); return font; }; openfl_text_Font.loadFromBytes = function(bytes) { return lime_text_Font.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes)).then(function(limeFont) { var font = new openfl_text_Font(); font.__fromLimeFont(limeFont); return lime_app_Future.withValue(font); }); }; openfl_text_Font.loadFromFile = function(path) { return lime_text_Font.loadFromFile(path).then(function(limeFont) { var font = new openfl_text_Font(); font.__fromLimeFont(limeFont); return lime_app_Future.withValue(font); }); }; openfl_text_Font.loadFromName = function(path) { return lime_text_Font.loadFromName(path).then(function(limeFont) { var font = new openfl_text_Font(); font.__fromLimeFont(limeFont); return lime_app_Future.withValue(font); }); }; openfl_text_Font.registerFont = function(font) { var instance = null; if(js_Boot.getClass(font) == null) { instance = js_Boot.__cast(Type.createInstance(font,[]) , openfl_text_Font); } else { instance = js_Boot.__cast(font , openfl_text_Font); } if(instance != null) { openfl_text_Font.__registeredFonts.push(instance); openfl_text_Font.__fontByName.h[instance.name] = instance; } }; openfl_text_Font.__super__ = lime_text_Font; openfl_text_Font.prototype = $extend(lime_text_Font.prototype,{ fontStyle: null ,fontType: null ,__initialized: null ,__fromLimeFont: function(font) { this.__copyFrom(font); } ,__initialize: function() { return this.__initialized; } ,get_fontName: function() { return this.name; } ,set_fontName: function(value) { return this.name = value; } ,__class__: openfl_text_Font ,__properties__: {set_fontName:"set_fontName",get_fontName:"get_fontName"} }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_5by7_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$5by7_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_5by7_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_5by7_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_5by7_b_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$5by7_$b_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_5by7_b_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_5by7_b_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$5by7_$b_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_ds_digi_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$ds_$digi_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_ds_digi_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_ds_digi_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digi_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_ds_digib_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$ds_$digib_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_ds_digib_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_ds_digib_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digib_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_ds_digii_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$ds_$digii_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_ds_digii_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_ds_digii_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digii_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_ds_digit_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$ds_$digit_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_ds_digit_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_ds_digit_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$ds_$digit_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_black_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$black_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_black_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_black_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$black_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_bold_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$bold_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_bold_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_bold_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$bold_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_extrabold_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$extrabold_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_extrabold_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_extrabold_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extrabold_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_extralight_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$extralight_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_extralight_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_extralight_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$extralight_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_medium_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$medium_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_medium_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_medium_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$medium_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_regular_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$regular_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_regular_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_regular_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$regular_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_inconsolata_semibold_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$inconsolata_$semibold_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_inconsolata_semibold_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_inconsolata_semibold_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$inconsolata_$semibold_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf = $hx_exports["__ASSET__OPENFL__assets_fonts_pixel_otf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$pixel_$otf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_pixel_otf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf.__name__ = "__ASSET__OPENFL__assets_fonts_pixel_otf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$pixel_$otf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_quantico_bold_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$quantico_$bold_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_quantico_bold_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_quantico_bold_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bold_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_quantico_bolditalic_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$quantico_$bolditalic_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_quantico_bolditalic_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_quantico_bolditalic_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$bolditalic_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_quantico_italic_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$quantico_$italic_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_quantico_italic_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_quantico_italic_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$italic_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_quantico_regular_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$quantico_$regular_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_quantico_regular_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_quantico_regular_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$quantico_$regular_$ttf }); var _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf = $hx_exports["__ASSET__OPENFL__assets_fonts_vcr_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$assets_$fonts_$vcr_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__assets_fonts_vcr_ttf"] = _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf.__name__ = "__ASSET__OPENFL__assets_fonts_vcr_ttf"; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$assets_$fonts_$vcr_$ttf }); var _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf = $hx_exports["__ASSET__OPENFL__flixel_fonts_nokiafc22_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$flixel_$fonts_$nokiafc22_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__flixel_fonts_nokiafc22_ttf"] = _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf; _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf.__name__ = "__ASSET__OPENFL__flixel_fonts_nokiafc22_ttf"; _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$nokiafc22_$ttf }); var _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf = $hx_exports["__ASSET__OPENFL__flixel_fonts_monsterrat_ttf"] = function() { this.__fromLimeFont(new _$_$ASSET_$_$flixel_$fonts_$monsterrat_$ttf()); openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__flixel_fonts_monsterrat_ttf"] = _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf; _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf.__name__ = "__ASSET__OPENFL__flixel_fonts_monsterrat_ttf"; _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$flixel_$fonts_$monsterrat_$ttf }); Math.__name__ = "Math"; 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( _g ) { haxe_NativeStackTrace.lastError = _g; return null; } }; Reflect.setField = function(o,field,value) { o[field] = value; }; Reflect.getProperty = function(o,field) { var tmp; if(o == null) { return null; } else { var tmp1; if(o.__properties__) { tmp = o.__properties__["get_" + field]; tmp1 = tmp; } else { tmp1 = false; } if(tmp1) { return o[tmp](); } else { return o[field]; } } }; Reflect.setProperty = function(o,field,value) { var tmp; var tmp1; if(o.__properties__) { tmp = o.__properties__["set_" + field]; tmp1 = tmp; } else { tmp1 = false; } if(tmp1) { 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) { if(typeof(f) == "function") { return !(f.__name__ || f.__ename__); } else { return false; } }; Reflect.compare = function(a,b) { if(a == b) { return 0; } else if(a > b) { return 1; } else { return -1; } }; Reflect.compareMethods = function(f1,f2) { return f1 == f2; }; Reflect.isObject = function(v) { if(v == null) { return false; } var t = typeof(v); if(!(t == "string" || t == "object" && v.__enum__ == null)) { if(t == "function") { return (v.__name__ || v.__ename__) != null; } else { return false; } } else { return true; } }; Reflect.isEnumValue = function(v) { if(v != null) { return v.__enum__ != null; } else { return false; } }; Reflect.deleteField = function(o,field) { if(!Object.prototype.hasOwnProperty.call(o,field)) { return false; } delete(o[field]); return true; }; Reflect.copy = function(o) { if(o == null) { return null; } var o2 = { }; var _g = 0; var _g1 = Reflect.fields(o); while(_g < _g1.length) { var f = _g1[_g]; ++_g; o2[f] = Reflect.field(o,f); } return o2; }; Reflect.makeVarArgs = function(f) { return function() { var a = Array.prototype.slice; var a1 = arguments; var a2 = a.call(a1); return f(a2); }; }; var Std = function() { }; $hxClasses["Std"] = Std; Std.__name__ = "Std"; Std.is = function(v,t) { return js_Boot.__instanceof(v,t); }; Std.isOfType = function(v,t) { return js_Boot.__instanceof(v,t); }; Std.downcast = function(value,c) { if(js_Boot.__downcastCheck(value,c)) { return value; } else { return null; } }; Std.instance = function(value,c) { if(js_Boot.__downcastCheck(value,c)) { return value; } else { return null; } }; 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); 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 _$String_String_$Impl_$ = function() { }; $hxClasses["_String.String_Impl_"] = _$String_String_$Impl_$; _$String_String_$Impl_$.__name__ = "_String.String_Impl_"; _$String_String_$Impl_$.fromCharCode = function(code) { return String.fromCodePoint(code); }; var StringBuf = function() { this.b = ""; }; $hxClasses["StringBuf"] = StringBuf; StringBuf.__name__ = "StringBuf"; StringBuf.prototype = { b: null ,get_length: function() { return this.b.length; } ,add: function(x) { this.b += Std.string(x); } ,addChar: function(c) { this.b += String.fromCodePoint(c); } ,addSub: function(s,pos,len) { this.b += len == null ? HxOverrides.substr(s,pos,null) : HxOverrides.substr(s,pos,len); } ,toString: function() { return this.b; } ,__class__: StringBuf ,__properties__: {get_length:"get_length"} }; var haxe_SysTools = function() { }; $hxClasses["haxe.SysTools"] = haxe_SysTools; haxe_SysTools.__name__ = "haxe.SysTools"; haxe_SysTools.quoteUnixArg = function(argument) { if(argument == "") { return "''"; } if(!new EReg("[^a-zA-Z0-9_@%+=:,./-]","").match(argument)) { return argument; } return "'" + StringTools.replace(argument,"'","'\"'\"'") + "'"; }; haxe_SysTools.quoteWinArg = function(argument,escapeMetaCharacters) { if(!new EReg("^(/)?[^ \t/\\\\\"]+$","").match(argument)) { var result_b = ""; var needquote = argument.indexOf(" ") != -1 || argument.indexOf("\t") != -1 || argument == "" || argument.indexOf("/") > 0; if(needquote) { result_b += "\""; } var bs_buf = new StringBuf(); var _g = 0; var _g1 = argument.length; while(_g < _g1) { var i = _g++; var _g2 = HxOverrides.cca(argument,i); if(_g2 == null) { var c = _g2; if(bs_buf.b.length > 0) { result_b += Std.string(bs_buf.b); bs_buf = new StringBuf(); } result_b += String.fromCodePoint(c); } else { switch(_g2) { case 34: var bs = bs_buf.b; result_b += bs == null ? "null" : "" + bs; result_b += bs == null ? "null" : "" + bs; bs_buf = new StringBuf(); result_b += "\\\""; break; case 92: bs_buf.b += "\\"; break; default: var c1 = _g2; if(bs_buf.b.length > 0) { result_b += Std.string(bs_buf.b); bs_buf = new StringBuf(); } result_b += String.fromCodePoint(c1); } } } result_b += Std.string(bs_buf.b); if(needquote) { result_b += Std.string(bs_buf.b); result_b += "\""; } argument = result_b; } if(escapeMetaCharacters) { var result_b = ""; var _g = 0; var _g1 = argument.length; while(_g < _g1) { var i = _g++; var c = HxOverrides.cca(argument,i); if(haxe_SysTools.winMetaCharacters.indexOf(c) >= 0) { result_b += String.fromCodePoint(94); } result_b += String.fromCodePoint(c); } return result_b; } else { return argument; } }; 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.htmlEscape = function(s,quotes) { var buf_b = ""; var _g_offset = 0; var _g_s = s; while(_g_offset < _g_s.length) { var s = _g_s; var index = _g_offset++; var c = s.charCodeAt(index); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023; } var c1 = c; if(c1 >= 65536) { ++_g_offset; } var code = c1; switch(code) { case 34: if(quotes) { buf_b += """; } else { buf_b += String.fromCodePoint(code); } break; case 38: buf_b += "&"; break; case 39: if(quotes) { buf_b += "'"; } else { buf_b += String.fromCodePoint(code); } break; case 60: buf_b += "<"; break; case 62: buf_b += ">"; break; default: buf_b += String.fromCodePoint(code); } } return buf_b; }; StringTools.htmlUnescape = function(s) { return s.split(">").join(">").split("<").join("<").split(""").join("\"").split("'").join("'").split("&").join("&"); }; StringTools.contains = function(s,value) { return s.indexOf(value) != -1; }; StringTools.startsWith = function(s,start) { if(s.length >= start.length) { return s.lastIndexOf(start,0) == 0; } else { return false; } }; StringTools.endsWith = function(s,end) { var elen = end.length; var slen = s.length; if(slen >= elen) { return s.indexOf(end,slen - elen) == slen - elen; } else { return false; } }; StringTools.isSpace = function(s,pos) { var c = HxOverrides.cca(s,pos); if(!(c > 8 && c < 14)) { return c == 32; } else { return true; } }; 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.lpad = function(s,c,l) { if(c.length <= 0) { return s; } var buf_b = ""; l -= s.length; while(buf_b.length < l) buf_b += c == null ? "null" : "" + c; buf_b += s == null ? "null" : "" + s; return buf_b; }; StringTools.rpad = function(s,c,l) { if(c.length <= 0) { return s; } var buf_b = ""; buf_b += s == null ? "null" : "" + s; while(buf_b.length < l) buf_b += c == null ? "null" : "" + c; return buf_b; }; 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); }; StringTools.unsafeCodeAt = function(s,index) { return s.charCodeAt(index); }; StringTools.iterator = function(s) { return new haxe_iterators_StringIterator(s); }; StringTools.keyValueIterator = function(s) { return new haxe_iterators_StringKeyValueIterator(s); }; StringTools.isEof = function(c) { return c != c; }; StringTools.quoteUnixArg = function(argument) { if(argument == "") { return "''"; } else if(!new EReg("[^a-zA-Z0-9_@%+=:,./-]","").match(argument)) { return argument; } else { return "'" + StringTools.replace(argument,"'","'\"'\"'") + "'"; } }; StringTools.quoteWinArg = function(argument,escapeMetaCharacters) { var argument1 = argument; if(!new EReg("^(/)?[^ \t/\\\\\"]+$","").match(argument1)) { var result_b = ""; var needquote = argument1.indexOf(" ") != -1 || argument1.indexOf("\t") != -1 || argument1 == "" || argument1.indexOf("/") > 0; if(needquote) { result_b += "\""; } var bs_buf = new StringBuf(); var _g = 0; var _g1 = argument1.length; while(_g < _g1) { var i = _g++; var _g2 = HxOverrides.cca(argument1,i); if(_g2 == null) { var c = _g2; if(bs_buf.b.length > 0) { result_b += Std.string(bs_buf.b); bs_buf = new StringBuf(); } result_b += String.fromCodePoint(c); } else { switch(_g2) { case 34: var bs = bs_buf.b; result_b += Std.string(bs); result_b += Std.string(bs); bs_buf = new StringBuf(); result_b += "\\\""; break; case 92: bs_buf.b += "\\"; break; default: var c1 = _g2; if(bs_buf.b.length > 0) { result_b += Std.string(bs_buf.b); bs_buf = new StringBuf(); } result_b += String.fromCodePoint(c1); } } } result_b += Std.string(bs_buf.b); if(needquote) { result_b += Std.string(bs_buf.b); result_b += "\""; } argument1 = result_b; } if(escapeMetaCharacters) { var result_b = ""; var _g = 0; var _g1 = argument1.length; while(_g < _g1) { var i = _g++; var c = HxOverrides.cca(argument1,i); if(haxe_SysTools.winMetaCharacters.indexOf(c) >= 0) { result_b += String.fromCodePoint(94); } result_b += String.fromCodePoint(c); } return result_b; } else { return argument1; } }; StringTools.utf16CodePointAt = function(s,index) { var c = s.charCodeAt(index); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023; } return c; }; var ValueType = $hxEnums["ValueType"] = { __ename__:"ValueType",__constructs__:null ,TNull: {_hx_name:"TNull",_hx_index:0,__enum__:"ValueType",toString:$estr} ,TInt: {_hx_name:"TInt",_hx_index:1,__enum__:"ValueType",toString:$estr} ,TFloat: {_hx_name:"TFloat",_hx_index:2,__enum__:"ValueType",toString:$estr} ,TBool: {_hx_name:"TBool",_hx_index:3,__enum__:"ValueType",toString:$estr} ,TObject: {_hx_name:"TObject",_hx_index:4,__enum__:"ValueType",toString:$estr} ,TFunction: {_hx_name:"TFunction",_hx_index:5,__enum__:"ValueType",toString:$estr} ,TClass: ($_=function(c) { return {_hx_index:6,c:c,__enum__:"ValueType",toString:$estr}; },$_._hx_name="TClass",$_.__params__ = ["c"],$_) ,TEnum: ($_=function(e) { return {_hx_index:7,e:e,__enum__:"ValueType",toString:$estr}; },$_._hx_name="TEnum",$_.__params__ = ["e"],$_) ,TUnknown: {_hx_name:"TUnknown",_hx_index:8,__enum__:"ValueType",toString:$estr} }; ValueType.__constructs__ = [ValueType.TNull,ValueType.TInt,ValueType.TFloat,ValueType.TBool,ValueType.TObject,ValueType.TFunction,ValueType.TClass,ValueType.TEnum,ValueType.TUnknown]; ValueType.__empty_constructs__ = [ValueType.TNull,ValueType.TInt,ValueType.TFloat,ValueType.TBool,ValueType.TObject,ValueType.TFunction,ValueType.TUnknown]; var Type = function() { }; $hxClasses["Type"] = Type; Type.__name__ = "Type"; Type.getClass = function(o) { return js_Boot.getClass(o); }; Type.getEnum = function(o) { if(o == null) { return null; } return $hxEnums[o.__enum__]; }; Type.getSuperClass = function(c) { return c.__super__; }; Type.getClassName = function(c) { return c.__name__; }; Type.getEnumName = function(e) { return e.__ename__; }; Type.resolveClass = function(name) { return $hxClasses[name]; }; Type.resolveEnum = function(name) { return $hxEnums[name]; }; Type.createInstance = function(cl,args) { var ctor = Function.prototype.bind.apply(cl,[null].concat(args)); return new (ctor); }; Type.createEmptyInstance = function(cl) { return Object.create(cl.prototype); }; Type.createEnum = function(e,constr,params) { var f = Reflect.field(e,constr); if(f == null) { throw haxe_Exception.thrown("No such constructor " + constr); } if(Reflect.isFunction(f)) { if(params == null) { throw haxe_Exception.thrown("Constructor " + constr + " need parameters"); } return f.apply(e,params); } if(params != null && params.length != 0) { throw haxe_Exception.thrown("Constructor " + constr + " does not need parameters"); } return f; }; Type.createEnumIndex = function(e,index,params) { var c; var _g = e.__constructs__[index]; if(_g == null) { c = null; } else { var ctor = _g; c = ctor._hx_name; } if(c == null) { throw haxe_Exception.thrown(index + " is not a valid enum constructor index"); } return Type.createEnum(e,c,params); }; 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 _this = e.__constructs__; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = _this[i]._hx_name; } return result; }; Type.typeof = function(v) { switch(typeof(v)) { case "boolean": return ValueType.TBool; case "function": if(v.__name__ || v.__ename__) { return ValueType.TObject; } return ValueType.TFunction; 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($hxEnums[e]); } var c = js_Boot.getClass(v); if(c != null) { return ValueType.TClass(c); } return ValueType.TObject; case "string": return ValueType.TClass(String); case "undefined": return ValueType.TNull; default: return ValueType.TUnknown; } }; Type.enumEq = function(a,b) { if(a == b) { return true; } try { var e = a.__enum__; if(e == null || e != b.__enum__) { return false; } if(a._hx_index != b._hx_index) { return false; } var enm = $hxEnums[e]; var params = enm.__constructs__[a._hx_index].__params__; var _g = 0; while(_g < params.length) { var f = params[_g]; ++_g; if(!Type.enumEq(a[f],b[f])) { return false; } } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return false; } return true; }; Type.enumConstructor = function(e) { return $hxEnums[e.__enum__].__constructs__[e._hx_index]._hx_name; }; Type.enumParameters = function(e) { var enm = $hxEnums[e.__enum__]; var params = enm.__constructs__[e._hx_index].__params__; if(params != null) { var _g = []; var _g1 = 0; while(_g1 < params.length) { var p = params[_g1]; ++_g1; _g.push(e[p]); } return _g; } else { return []; } }; Type.enumIndex = function(e) { return e._hx_index; }; Type.allEnums = function(e) { return e.__empty_constructs__.slice(); }; var UInt = {}; UInt.add = function(a,b) { return a + b; }; UInt.div = function(a,b) { return UInt.toFloat(a) / UInt.toFloat(b); }; UInt.mul = function(a,b) { return a * b; }; UInt.sub = function(a,b) { return a - b; }; UInt.gt = function(a,b) { var aNeg = a < 0; var bNeg = b < 0; if(aNeg != bNeg) { return aNeg; } else { return a > b; } }; UInt.gte = function(a,b) { var aNeg = a < 0; var bNeg = b < 0; if(aNeg != bNeg) { return aNeg; } else { return a >= b; } }; UInt.lt = function(a,b) { return UInt.gt(b,a); }; UInt.lte = function(a,b) { return UInt.gte(b,a); }; UInt.and = function(a,b) { return a & b; }; UInt.or = function(a,b) { return a | b; }; UInt.xor = function(a,b) { return a ^ b; }; UInt.shl = function(a,b) { return a << b; }; UInt.shr = function(a,b) { return a >>> b; }; UInt.ushr = function(a,b) { return a >>> b; }; UInt.mod = function(a,b) { return UInt.toFloat(a) % UInt.toFloat(b) | 0; }; UInt.addWithFloat = function(a,b) { return UInt.toFloat(a) + b; }; UInt.mulWithFloat = function(a,b) { return UInt.toFloat(a) * b; }; UInt.divFloat = function(a,b) { return UInt.toFloat(a) / b; }; UInt.floatDiv = function(a,b) { return a / UInt.toFloat(b); }; UInt.subFloat = function(a,b) { return UInt.toFloat(a) - b; }; UInt.floatSub = function(a,b) { return a - UInt.toFloat(b); }; UInt.gtFloat = function(a,b) { return UInt.toFloat(a) > b; }; UInt.equalsInt = function(a,b) { return a == b; }; UInt.notEqualsInt = function(a,b) { return a != b; }; UInt.equalsFloat = function(a,b) { return UInt.toFloat(a) == b; }; UInt.notEqualsFloat = function(a,b) { return UInt.toFloat(a) != b; }; UInt.gteFloat = function(a,b) { return UInt.toFloat(a) >= b; }; UInt.floatGt = function(a,b) { return a > UInt.toFloat(b); }; UInt.floatGte = function(a,b) { return a >= UInt.toFloat(b); }; UInt.ltFloat = function(a,b) { return UInt.toFloat(a) < b; }; UInt.lteFloat = function(a,b) { return UInt.toFloat(a) <= b; }; UInt.floatLt = function(a,b) { return a < UInt.toFloat(b); }; UInt.floatLte = function(a,b) { return a <= UInt.toFloat(b); }; UInt.modFloat = function(a,b) { return UInt.toFloat(a) % b; }; UInt.floatMod = function(a,b) { return a % UInt.toFloat(b); }; UInt.negBits = function(this1) { return ~this1; }; UInt.prefixIncrement = function(this1) { return ++this1; }; UInt.postfixIncrement = function(this1) { return this1++; }; UInt.prefixDecrement = function(this1) { return --this1; }; UInt.postfixDecrement = function(this1) { return this1--; }; UInt.toString = function(this1,radix) { return Std.string(UInt.toFloat(this1)); }; UInt.toInt = function(this1) { return this1; }; UInt.toFloat = function(this1) { var int = this1; if(int < 0) { return 4294967296.0 + int; } else { return int + 0.0; } }; var UnicodeString = {}; UnicodeString.__properties__ = {get_length:"get_length"}; UnicodeString.validate = function(b,encoding) { switch(encoding._hx_index) { case 0: var data = b.b.bufferValue; var pos = 0; var max = b.length; while(pos < max) { var c = data.bytes[pos++]; if(c >= 128) { if(c < 194) { return false; } else if(c < 224) { if(pos + 1 > max) { return false; } var c2 = data.bytes[pos++]; if(c2 < 128 || c2 > 191) { return false; } } else if(c < 240) { if(pos + 2 > max) { return false; } var c21 = data.bytes[pos++]; if(c == 224) { if(c21 < 160 || c21 > 191) { return false; } } else if(c21 < 128 || c21 > 191) { return false; } var c3 = data.bytes[pos++]; if(c3 < 128 || c3 > 191) { return false; } c = c << 16 | c21 << 8 | c3; if(15573120 <= c && c <= 15581119) { return false; } } else if(c > 244) { return false; } else { if(pos + 3 > max) { return false; } var c22 = data.bytes[pos++]; if(c == 240) { if(c22 < 144 || c22 > 191) { return false; } } else if(c == 244) { if(c22 < 128 || c22 > 143) { return false; } } else if(c22 < 128 || c22 > 191) { return false; } var c31 = data.bytes[pos++]; if(c31 < 128 || c31 > 191) { return false; } var c4 = data.bytes[pos++]; if(c4 < 128 || c4 > 191) { return false; } } } } return true; case 1: throw haxe_Exception.thrown("UnicodeString.validate: RawNative encoding is not supported"); } }; UnicodeString._new = function(string) { return string; }; UnicodeString.iterator = function(this1) { return new haxe_iterators_StringIteratorUnicode(this1); }; UnicodeString.keyValueIterator = function(this1) { return new haxe_iterators_StringKeyValueIteratorUnicode(this1); }; UnicodeString.charAt = function(this1,index) { if(index < 0) { return ""; } var unicodeOffset = 0; var nativeOffset = 0; while(nativeOffset < this1.length) { var index1 = nativeOffset++; var c = this1.charCodeAt(index1); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | this1.charCodeAt(index1 + 1) & 1023; } var c1 = c; if(unicodeOffset == index) { return String.fromCodePoint(c1); } if(c1 >= 65536) { ++nativeOffset; } ++unicodeOffset; } return ""; }; UnicodeString.charCodeAt = function(this1,index) { if(index < 0) { return null; } var unicodeOffset = 0; var nativeOffset = 0; while(nativeOffset < this1.length) { var index1 = nativeOffset++; var c = this1.charCodeAt(index1); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | this1.charCodeAt(index1 + 1) & 1023; } var c1 = c; if(unicodeOffset == index) { return c1; } if(c1 >= 65536) { ++nativeOffset; } ++unicodeOffset; } return null; }; UnicodeString.indexOf = function(this1,str,startIndex) { if(startIndex == null) { startIndex = 0; } else if(startIndex < 0) { startIndex = UnicodeString.get_length(this1) + startIndex; } var unicodeOffset = 0; var nativeOffset = 0; var matchingOffset = 0; var result = -1; while(nativeOffset <= this1.length) { var c = this1.charCodeAt(nativeOffset); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | this1.charCodeAt(nativeOffset + 1) & 1023; } var c1 = c; if(unicodeOffset >= startIndex) { var c2 = str.charCodeAt(matchingOffset); if(c2 >= 55296 && c2 <= 56319) { c2 = c2 - 55232 << 10 | str.charCodeAt(matchingOffset + 1) & 1023; } var c21 = c2; if(c1 == c21) { if(matchingOffset == 0) { result = unicodeOffset; } ++matchingOffset; if(c21 >= 65536) { ++matchingOffset; } if(matchingOffset == str.length) { return result; } } else if(matchingOffset != 0) { result = -1; matchingOffset = 0; continue; } } ++nativeOffset; if(c1 >= 65536) { ++nativeOffset; } ++unicodeOffset; } return -1; }; UnicodeString.lastIndexOf = function(this1,str,startIndex) { if(startIndex == null) { startIndex = this1.length; } else if(startIndex < 0) { startIndex = 0; } var unicodeOffset = 0; var nativeOffset = 0; var result = -1; var lastIndex = -1; var matchingOffset = 0; var strUnicodeLength = UnicodeString.get_length(str); while(nativeOffset < this1.length && unicodeOffset < startIndex + strUnicodeLength) { var c = this1.charCodeAt(nativeOffset); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | this1.charCodeAt(nativeOffset + 1) & 1023; } var c1 = c; var c2 = str.charCodeAt(matchingOffset); if(c2 >= 55296 && c2 <= 56319) { c2 = c2 - 55232 << 10 | str.charCodeAt(matchingOffset + 1) & 1023; } var c21 = c2; if(c1 == c21) { if(matchingOffset == 0) { lastIndex = unicodeOffset; } ++matchingOffset; if(c21 >= 65536) { ++matchingOffset; } if(matchingOffset == str.length) { result = lastIndex; lastIndex = -1; } } else if(matchingOffset != 0) { lastIndex = -1; matchingOffset = 0; continue; } ++nativeOffset; if(c1 >= 65536) { ++nativeOffset; } ++unicodeOffset; } return result; }; UnicodeString.substr = function(this1,pos,len) { if(pos < 0) { pos = UnicodeString.get_length(this1) + pos; if(pos < 0) { pos = 0; } } if(len != null) { if(len < 0) { len = UnicodeString.get_length(this1) + len; } if(len <= 0) { return ""; } } var unicodeOffset = 0; var nativeOffset = 0; var fromOffset = -1; var subLength = 0; while(nativeOffset < this1.length) { var c = this1.charCodeAt(nativeOffset); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | this1.charCodeAt(nativeOffset + 1) & 1023; } var c1 = c; if(unicodeOffset >= pos) { if(fromOffset < 0) { if(len == null) { return HxOverrides.substr(this1,nativeOffset,null); } fromOffset = nativeOffset; } ++subLength; if(subLength >= len) { var lastOffset = c1 < 65536 ? nativeOffset : nativeOffset + 1; return HxOverrides.substr(this1,fromOffset,lastOffset - fromOffset + 1); } } nativeOffset += c1 >= 65536 ? 2 : 1; ++unicodeOffset; } if(fromOffset < 0) { return ""; } else { return HxOverrides.substr(this1,fromOffset,null); } }; UnicodeString.substring = function(this1,startIndex,endIndex) { if(startIndex < 0) { startIndex = 0; } if(endIndex != null) { if(endIndex < 0) { endIndex = 0; } if(startIndex == endIndex) { return ""; } if(startIndex > endIndex) { var tmp = startIndex; startIndex = endIndex; endIndex = tmp; } } var unicodeOffset = 0; var nativeOffset = 0; var fromOffset = -1; var subLength = 0; while(nativeOffset < this1.length) { var c = this1.charCodeAt(nativeOffset); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | this1.charCodeAt(nativeOffset + 1) & 1023; } var c1 = c; if(startIndex <= unicodeOffset) { if(fromOffset < 0) { if(endIndex == null) { return HxOverrides.substr(this1,nativeOffset,null); } fromOffset = nativeOffset; } ++subLength; if(subLength >= endIndex - startIndex) { var lastOffset = c1 < 65536 ? nativeOffset : nativeOffset + 1; return HxOverrides.substr(this1,fromOffset,lastOffset - fromOffset + 1); } } nativeOffset += c1 >= 65536 ? 2 : 1; ++unicodeOffset; } if(fromOffset < 0) { return ""; } else { return HxOverrides.substr(this1,fromOffset,null); } }; UnicodeString.get_length = function(this1) { var l = 0; var _g_offset = 0; var _g_s = this1; while(_g_offset < _g_s.length) { var s = _g_s; var index = _g_offset++; var c = s.charCodeAt(index); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023; } var c1 = c; if(c1 >= 65536) { ++_g_offset; } var c2 = c1; ++l; } return l; }; var XmlType = {}; XmlType.toString = function(this1) { switch(this1) { case 0: return "Element"; case 1: return "PCData"; case 2: return "CData"; case 3: return "Comment"; case 4: return "DocType"; case 5: return "ProcessingInstruction"; case 6: return "Document"; } }; 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 haxe_Exception.thrown("Bad node type, expected Element but found " + (xml.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, unexpected " + (xml.nodeType == null ? "null" : XmlType.toString(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_nodeName: function() { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return this.nodeName; } ,set_nodeName: function(v) { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return this.nodeName = v; } ,get_nodeValue: function() { if(this.nodeType == Xml.Document || this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return this.nodeValue; } ,set_nodeValue: function(v) { if(this.nodeType == Xml.Document || this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return this.nodeValue = v; } ,get: function(att) { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return this.attributeMap.h[att]; } ,set: function(att,value) { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } this.attributeMap.h[att] = value; } ,remove: function(att) { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } var _this = this.attributeMap; if(Object.prototype.hasOwnProperty.call(_this.h,att)) { delete(_this.h[att]); } } ,exists: function(att) { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return Object.prototype.hasOwnProperty.call(this.attributeMap.h,att); } ,attributes: function() { if(this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return new haxe_ds__$StringMap_StringMapKeyIterator(this.attributeMap.h); } ,iterator: function() { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return new haxe_iterators_ArrayIterator(this.children); } ,elements: function() { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } var _g = []; var _g1 = 0; var _g2 = this.children; while(_g1 < _g2.length) { var child = _g2[_g1]; ++_g1; if(child.nodeType == Xml.Element) { _g.push(child); } } var ret = _g; return new haxe_iterators_ArrayIterator(ret); } ,elementsNamed: function(name) { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } var _g = []; var _g1 = 0; var _g2 = this.children; while(_g1 < _g2.length) { var child = _g2[_g1]; ++_g1; var tmp; if(child.nodeType == Xml.Element) { if(child.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (child.nodeType == null ? "null" : XmlType.toString(child.nodeType))); } tmp = child.nodeName == name; } else { tmp = false; } if(tmp) { _g.push(child); } } var ret = _g; return new haxe_iterators_ArrayIterator(ret); } ,firstChild: function() { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } return this.children[0]; } ,firstElement: function() { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(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 haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } if(HxOverrides.remove(this.children,x)) { x.parent = null; return true; } return false; } ,insertChild: function(x,pos) { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } if(x.parent != null) { HxOverrides.remove(x.parent.children,x); } this.children.splice(pos,0,x); x.parent = this; } ,toString: function() { return haxe_xml_Printer.print(this); } ,ensureElementType: function() { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this.nodeType == null ? "null" : XmlType.toString(this.nodeType))); } } ,__class__: Xml ,__properties__: {set_nodeValue:"set_nodeValue",get_nodeValue:"get_nodeValue",set_nodeName:"set_nodeName",get_nodeName:"get_nodeName"} }; var flixel_util_IFlxDestroyable = function() { }; $hxClasses["flixel.util.IFlxDestroyable"] = flixel_util_IFlxDestroyable; flixel_util_IFlxDestroyable.__name__ = "flixel.util.IFlxDestroyable"; flixel_util_IFlxDestroyable.__isInterface__ = true; flixel_util_IFlxDestroyable.prototype = { destroy: null ,__class__: flixel_util_IFlxDestroyable }; var flixel_FlxBasic = function() { this.zIndex = 0; this.flixelType = 0; this.exists = true; this.alive = true; this.visible = true; this.active = true; this.ID = flixel_FlxBasic.idEnumerator++; }; $hxClasses["flixel.FlxBasic"] = flixel_FlxBasic; flixel_FlxBasic.__name__ = "flixel.FlxBasic"; flixel_FlxBasic.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_FlxBasic.prototype = { ID: null ,active: null ,visible: null ,alive: null ,exists: null ,flixelType: null ,_cameras: null ,destroy: function() { this.set_exists(false); this._cameras = null; } ,kill: function() { this.set_alive(false); this.set_exists(false); } ,revive: function() { this.set_alive(true); this.set_exists(true); } ,update: function(elapsed) { } ,draw: function() { } ,toString: function() { var value = this.active; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "active"; _this.value = value; var value = this.visible; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "visible"; _this1.value = value; var value = this.alive; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "alive"; _this2.value = value; var value = this.exists; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "exists"; _this3.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]); } ,set_visible: function(Value) { return this.visible = Value; } ,set_active: function(Value) { return this.active = Value; } ,set_exists: function(Value) { return this.exists = Value; } ,set_alive: function(Value) { return this.alive = Value; } ,get_camera: function() { if(this._cameras == null || this._cameras.length == 0) { return flixel_FlxCamera._defaultCameras[0]; } else { return this._cameras[0]; } } ,set_camera: function(Value) { if(this._cameras == null) { this._cameras = [Value]; } else { this._cameras[0] = Value; } return Value; } ,get_cameras: function() { if(this._cameras == null) { return flixel_FlxCamera._defaultCameras; } else { return this._cameras; } } ,set_cameras: function(Value) { return this._cameras = Value; } ,zIndex: null ,__class__: flixel_FlxBasic ,__properties__: {set_cameras:"set_cameras",get_cameras:"get_cameras",set_camera:"set_camera",get_camera:"get_camera",set_exists:"set_exists",set_alive:"set_alive",set_visible:"set_visible",set_active:"set_active"} }; var flixel_IFlxBasic = function() { }; $hxClasses["flixel.IFlxBasic"] = flixel_IFlxBasic; flixel_IFlxBasic.__name__ = "flixel.IFlxBasic"; flixel_IFlxBasic.__isInterface__ = true; flixel_IFlxBasic.prototype = { set_active: null ,set_visible: null ,set_alive: null ,set_exists: null ,ID: null ,active: null ,visible: null ,alive: null ,exists: null ,draw: null ,update: null ,destroy: null ,kill: null ,revive: null ,toString: null ,__class__: flixel_IFlxBasic ,__properties__: {set_exists:"set_exists",set_alive:"set_alive",set_visible:"set_visible",set_active:"set_active"} }; var flixel_util_IFlxPooled = function() { }; $hxClasses["flixel.util.IFlxPooled"] = flixel_util_IFlxPooled; flixel_util_IFlxPooled.__name__ = "flixel.util.IFlxPooled"; flixel_util_IFlxPooled.__isInterface__ = true; flixel_util_IFlxPooled.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util_IFlxPooled.prototype = { put: null ,__class__: flixel_util_IFlxPooled }; var flixel_util_IFlxPool = function() { }; $hxClasses["flixel.util.IFlxPool"] = flixel_util_IFlxPool; flixel_util_IFlxPool.__name__ = "flixel.util.IFlxPool"; flixel_util_IFlxPool.__isInterface__ = true; flixel_util_IFlxPool.prototype = { preAllocate: null ,clear: null ,__class__: flixel_util_IFlxPool }; var flixel_util_FlxPool = function(constructor) { this._count = 0; this._pool = []; this._constructor = constructor; }; $hxClasses["flixel.util.FlxPool"] = flixel_util_FlxPool; flixel_util_FlxPool.__name__ = "flixel.util.FlxPool"; flixel_util_FlxPool.__interfaces__ = [flixel_util_IFlxPool]; flixel_util_FlxPool.prototype = { _pool: null ,_constructor: null ,_count: null ,get: function() { if(this._count == 0) { return this._constructor(); } return this._pool[--this._count]; } ,put: function(obj) { if(obj != null) { var i = this._pool.indexOf(obj); if(i == -1 || i >= this._count) { obj.destroy(); this._pool[this._count++] = obj; } } } ,putUnsafe: function(obj) { if(obj != null) { obj.destroy(); this._pool[this._count++] = obj; } } ,preAllocate: function(numObjects) { while(numObjects-- > 0) this._pool[this._count++] = this._constructor(); } ,clear: function() { this._count = 0; var oldPool = this._pool; this._pool = []; return oldPool; } ,get_length: function() { return this._count; } ,__class__: flixel_util_FlxPool ,__properties__: {get_length:"get_length"} }; var flixel_math_FlxBasePoint = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this._inPool = false; this._weak = false; this.y = 0; this.x = 0; this.set(x,y); }; $hxClasses["flixel.math.FlxBasePoint"] = flixel_math_FlxBasePoint; flixel_math_FlxBasePoint.__name__ = "flixel.math.FlxBasePoint"; flixel_math_FlxBasePoint.__interfaces__ = [flixel_util_IFlxPooled]; flixel_math_FlxBasePoint.get = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; return point; }; flixel_math_FlxBasePoint.weak = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; return point1; }; flixel_math_FlxBasePoint.prototype = { x: null ,y: null ,_weak: null ,_inPool: null ,set: function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this.set_x(x); this.set_y(y); return this; } ,put: function() { if(!this._inPool) { this._inPool = true; this._weak = false; flixel_math_FlxBasePoint.pool.putUnsafe(this); } } ,putWeak: function() { if(this._weak) { this.put(); } } ,equals: function(point) { var result = Math.abs(this.x - point.x) <= 0.0000001 && Math.abs(this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } return result; } ,destroy: function() { } ,toString: function() { var value = this.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = this.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,set_x: function(Value) { return this.x = Value; } ,set_y: function(Value) { return this.y = Value; } ,__class__: flixel_math_FlxBasePoint ,__properties__: {set_y:"set_y",set_x:"set_x"} }; var flixel_math_FlxRect = 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._inPool = false; this._weak = false; var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } this.x = X1; this.y = Y1; this.width = Width1; this.height = Height1; }; $hxClasses["flixel.math.FlxRect"] = flixel_math_FlxRect; flixel_math_FlxRect.__name__ = "flixel.math.FlxRect"; flixel_math_FlxRect.__interfaces__ = [flixel_util_IFlxPooled]; flixel_math_FlxRect.__properties__ = {get_pool:"get_pool"}; flixel_math_FlxRect.get = 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; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; return rect; }; flixel_math_FlxRect.weak = 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; } var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } var _this = flixel_math_FlxRect._pool.get(); var X = X1; var Y = Y1; var Width = Width1; var Height = Height1; 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; var rect = _this; rect._inPool = false; var rect1 = rect; rect1._weak = true; return rect1; }; flixel_math_FlxRect.get_pool = function() { return flixel_math_FlxRect._pool; }; flixel_math_FlxRect.prototype = { x: null ,y: null ,width: null ,height: null ,_weak: null ,_inPool: null ,put: function() { if(!this._inPool) { this._inPool = true; this._weak = false; flixel_math_FlxRect._pool.putUnsafe(this); } } ,putWeak: function() { if(this._weak) { if(!this._inPool) { this._inPool = true; this._weak = false; flixel_math_FlxRect._pool.putUnsafe(this); } } } ,setSize: function(Width,Height) { this.width = Width; this.height = Height; return this; } ,setPosition: function(x,y) { this.x = x; this.y = y; return this; } ,set: 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; return this; } ,copyFrom: function(Rect) { this.x = Rect.x; this.y = Rect.y; this.width = Rect.width; this.height = Rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } return this; } ,copyTo: function(Rect) { Rect.x = this.x; Rect.y = this.y; Rect.width = this.width; Rect.height = this.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } return Rect; } ,copyFromFlash: function(FlashRect) { this.x = FlashRect.x; this.y = FlashRect.y; this.width = FlashRect.width; this.height = FlashRect.height; return this; } ,copyToFlash: function(FlashRect) { if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = this.x; FlashRect.y = this.y; FlashRect.width = this.width; FlashRect.height = this.height; return FlashRect; } ,overlaps: function(Rect) { var result = Rect.x + Rect.width > this.x && Rect.x < this.x + this.width && Rect.y + Rect.height > this.y && Rect.y < this.y + this.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } return result; } ,containsPoint: function(Point) { var result = flixel_math_FlxMath.pointInFlxRect(Point.x,Point.y,this); if(Point._weak) { Point.put(); } return result; } ,union: function(Rect) { var minX = Math.min(this.x,Rect.x); var minY = Math.min(this.y,Rect.y); var maxX = Math.max(this.x + this.width,Rect.x + Rect.width); var maxY = Math.max(this.y + this.height,Rect.y + Rect.height); if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; 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; return this; } ,floor: function() { this.x = Math.floor(this.x); this.y = Math.floor(this.y); this.width = Math.floor(this.width); this.height = Math.floor(this.height); return this; } ,ceil: function() { this.x = Math.ceil(this.x); this.y = Math.ceil(this.y); this.width = Math.ceil(this.width); this.height = Math.ceil(this.height); return this; } ,round: function() { this.x = Math.round(this.x); this.y = Math.round(this.y); this.width = Math.round(this.width); this.height = Math.round(this.height); return this; } ,fromTwoPoints: function(Point1,Point2) { var minX = Math.min(Point1.x,Point2.x); var minY = Math.min(Point1.y,Point2.y); var maxX = Math.max(Point1.x,Point2.x); var maxY = Math.max(Point1.y,Point2.y); if(Point1._weak) { Point1.put(); } if(Point2._weak) { Point2.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; 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; return this; } ,unionWithPoint: function(Point) { var minX = Math.min(this.x,Point.x); var minY = Math.min(this.y,Point.y); var maxX = Math.max(this.x + this.width,Point.x); var maxY = Math.max(this.y + this.height,Point.y); if(Point._weak) { Point.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; 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; return this; } ,offset: function(dx,dy) { this.x += dx; this.y += dy; return this; } ,getRotatedBounds: function(degrees,origin,newRect) { if(origin == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; origin = point1; } if(newRect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; newRect = rect; } degrees %= 360; if(degrees == 0) { if(origin._weak) { origin.put(); } var X = this.x; var Y = this.y; var Width = this.width; var Height = this.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } newRect.x = X; newRect.y = Y; newRect.width = Width; newRect.height = Height; return newRect; } if(degrees < 0) { degrees += 360; } var radians = Math.PI / 180 * degrees; var cos = Math.cos(radians); var sin = Math.sin(radians); var left = -origin.x; var top = -origin.y; var right = -origin.x + this.width; var bottom = -origin.y + this.height; if(degrees < 90) { newRect.x = this.x + origin.x + cos * left - sin * bottom; newRect.y = this.y + origin.y + sin * left + cos * top; } else if(degrees < 180) { newRect.x = this.x + origin.x + cos * right - sin * bottom; newRect.y = this.y + origin.y + sin * left + cos * bottom; } else if(degrees < 270) { newRect.x = this.x + origin.x + cos * right - sin * top; newRect.y = this.y + origin.y + sin * right + cos * bottom; } else { newRect.x = this.x + origin.x + cos * left - sin * top; newRect.y = this.y + origin.y + sin * right + cos * top; } var newHeight = Math.abs(cos * this.height) + Math.abs(sin * this.width); newRect.width = Math.abs(cos * this.width) + Math.abs(sin * this.height); newRect.height = newHeight; if(origin._weak) { origin.put(); } return newRect; } ,destroy: function() { } ,equals: function(rect) { var result = Math.abs(this.x - rect.x) <= 0.0000001 && Math.abs(this.y - rect.y) <= 0.0000001 && Math.abs(this.width - rect.width) <= 0.0000001 && Math.abs(this.height - rect.height) <= 0.0000001; if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return result; } ,intersection: function(rect,result) { if(result == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; result = rect1; } var x0 = this.x < rect.x ? rect.x : this.x; var x1 = this.x + this.width > rect.x + rect.width ? rect.x + rect.width : this.x + this.width; if(x1 <= x0) { if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return result; } var y0 = this.y < rect.y ? rect.y : this.y; var y1 = this.y + this.height > rect.y + rect.height ? rect.y + rect.height : this.y + this.height; if(y1 <= y0) { if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return result; } if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } var X = x0; var Y = y0; var Width = x1 - x0; var Height = y1 - y0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } result.x = X; result.y = Y; result.width = Width; result.height = Height; return result; } ,toString: function() { var value = this.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = this.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; var value = this.width; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "w"; _this2.value = value; var value = this.height; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "h"; _this3.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]); } ,get_left: function() { return this.x; } ,set_left: function(Value) { this.width -= Value - this.x; return this.x = Value; } ,get_right: function() { return this.x + this.width; } ,set_right: function(Value) { this.width = Value - this.x; return Value; } ,get_top: function() { return this.y; } ,set_top: function(Value) { this.height -= Value - this.y; return this.y = Value; } ,get_bottom: function() { return this.y + this.height; } ,set_bottom: function(Value) { this.height = Value - this.y; return Value; } ,get_isEmpty: function() { if(this.width != 0) { return this.height == 0; } else { return true; } } ,__class__: flixel_math_FlxRect ,__properties__: {get_isEmpty:"get_isEmpty",set_bottom:"set_bottom",get_bottom:"get_bottom",set_top:"set_top",get_top:"get_top",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left"} }; 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 haxe_Exception.thrown("Column " + column + " out of bounds (2)"); } else if(column == 0) { this.a = vector4.x; this.b = vector4.y; } else if(column == 1) { this.c = vector4.x; this.d = vector4.y; } else { this.tx = vector4.x; this.ty = vector4.y; } } ,copyColumnTo: function(column,vector4) { if(column > 2) { throw haxe_Exception.thrown("Column " + column + " out of bounds (2)"); } else if(column == 0) { vector4.x = this.a; vector4.y = this.b; vector4.z = 0; } else if(column == 1) { vector4.x = this.c; 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 haxe_Exception.thrown("Row " + row + " out of bounds (2)"); } else if(row == 0) { this.a = vector4.x; this.c = vector4.y; this.tx = vector4.z; } else if(row == 1) { this.b = vector4.x; this.d = vector4.y; this.ty = vector4.z; } } ,copyRowTo: function(row,vector4) { if(row > 2) { throw haxe_Exception.thrown("Row " + row + " out of bounds (2)"); } else if(row == 0) { vector4.x = this.a; vector4.y = this.c; vector4.z = this.tx; } else if(row == 1) { vector4.x = this.b; 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; } 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; } ,equals: function(matrix3) { if(matrix3 != null && this.tx == matrix3.tx && this.ty == matrix3.ty && this.a == matrix3.a && this.b == matrix3.b && this.c == matrix3.c) { return this.d == matrix3.d; } else { return false; } } ,deltaTransformVector: function(Vector2,result) { if(result == null) { result = new lime_math_Vector2(); } result.x = Vector2.x * this.a + Vector2.y * this.c; result.y = Vector2.x * this.b + Vector2.y * this.d; return result; } ,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)"; } } ,toString: function() { return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")"; } ,transformRect: function(rect,result) { if(result == null) { result = new lime_math_Rectangle(); } var tx0 = this.a * rect.x + this.c * rect.y; var tx1 = tx0; var ty0 = this.b * rect.x + this.d * rect.y; var ty1 = ty0; var tx = this.a * (rect.x + rect.width) + this.c * rect.y; var ty = this.b * (rect.x + rect.width) + this.d * rect.y; if(tx < tx0) { tx0 = tx; } if(ty < ty0) { ty0 = ty; } if(tx > tx1) { tx1 = tx; } if(ty > ty1) { ty1 = ty; } tx = this.a * (rect.x + rect.width) + this.c * (rect.y + rect.height); ty = this.b * (rect.x + rect.width) + this.d * (rect.y + rect.height); if(tx < tx0) { tx0 = tx; } if(ty < ty0) { ty0 = ty; } if(tx > tx1) { tx1 = tx; } if(ty > ty1) { ty1 = ty; } tx = this.a * rect.x + this.c * (rect.y + rect.height); ty = this.b * rect.x + this.d * (rect.y + rect.height); if(tx < tx0) { tx0 = tx; } if(ty < ty0) { ty0 = ty; } if(tx > tx1) { tx1 = tx; } if(ty > ty1) { ty1 = ty; } result.setTo(tx0 + tx,ty0 + ty,tx1 - tx0,ty1 - ty0); return result; } ,transformVector: function(pos,result) { if(result == null) { result = new lime_math_Vector2(); } result.x = pos.x * this.a + pos.y * this.c + this.tx; result.y = pos.x * this.b + pos.y * this.d + this.ty; return result; } ,translate: function(dx,dy) { this.tx += dx; this.ty += dy; } ,__class__: lime_math_Matrix3 }; 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 haxe_Exception.thrown("Column " + column + " out of bounds (2)"); } else if(column == 0) { this.a = vector3D.x; this.b = vector3D.y; } else if(column == 1) { this.c = vector3D.x; this.d = vector3D.y; } else { this.tx = vector3D.x; this.ty = vector3D.y; } } ,copyColumnTo: function(column,vector3D) { if(column > 2) { throw haxe_Exception.thrown("Column " + column + " out of bounds (2)"); } else if(column == 0) { vector3D.x = this.a; vector3D.y = this.b; vector3D.z = 0; } else if(column == 1) { vector3D.x = this.c; 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 haxe_Exception.thrown("Row " + row + " out of bounds (2)"); } else if(row == 0) { this.a = vector3D.x; this.c = vector3D.y; this.tx = vector3D.z; } else if(row == 1) { this.b = vector3D.x; this.d = vector3D.y; this.ty = vector3D.z; } } ,copyRowTo: function(row,vector3D) { if(row > 2) { throw haxe_Exception.thrown("Row " + row + " out of bounds (2)"); } else if(row == 0) { vector3D.x = this.a; vector3D.y = this.c; vector3D.z = this.tx; } else if(row == 1) { vector3D.x = this.b; 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) { if(matrix != null && this.tx == matrix.tx && this.ty == matrix.ty && this.a == matrix.a && this.b == matrix.b && this.c == matrix.c) { return this.d == matrix.d; } else { return false; } } ,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 array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__array = new Float32Array(9); } 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() { openfl_geom_Matrix.__matrix3.setTo(this.a,this.b,this.c,this.d,this.tx,this.ty); return openfl_geom_Matrix.__matrix3; } ,__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_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.__limeColorMatrix = null; openfl_geom_ColorTransform.prototype = { alphaMultiplier: null ,alphaOffset: null ,blueMultiplier: null ,blueOffset: null ,greenMultiplier: null ,greenOffset: null ,redMultiplier: null ,redOffset: null ,concat: function(second) { this.redOffset = second.redOffset * this.redMultiplier + this.redOffset; this.greenOffset = second.greenOffset * this.greenMultiplier + this.greenOffset; this.blueOffset = second.blueOffset * this.blueMultiplier + this.blueOffset; this.alphaOffset = second.alphaOffset * this.alphaMultiplier + this.alphaOffset; this.redMultiplier *= second.redMultiplier; this.greenMultiplier *= second.greenMultiplier; this.blueMultiplier *= second.blueMultiplier; this.alphaMultiplier *= second.alphaMultiplier; } ,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); } ,__copyFrom: 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; } ,__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; } ,__identity: function() { this.redMultiplier = 1; this.greenMultiplier = 1; this.blueMultiplier = 1; this.alphaMultiplier = 1; this.redOffset = 0; this.greenOffset = 0; this.blueOffset = 0; this.alphaOffset = 0; } ,__invert: function() { this.redMultiplier = this.redMultiplier != 0 ? 1 / this.redMultiplier : 1; this.greenMultiplier = this.greenMultiplier != 0 ? 1 / this.greenMultiplier : 1; this.blueMultiplier = this.blueMultiplier != 0 ? 1 / this.blueMultiplier : 1; this.alphaMultiplier = this.alphaMultiplier != 0 ? 1 / this.alphaMultiplier : 1; this.redOffset = -this.redOffset; this.greenOffset = -this.greenOffset; this.blueOffset = -this.blueOffset; this.alphaOffset = -this.alphaOffset; } ,__equals: function(ct,ignoreAlphaMultiplier) { if(ct != null && this.redMultiplier == ct.redMultiplier && this.greenMultiplier == ct.greenMultiplier && this.blueMultiplier == ct.blueMultiplier && (ignoreAlphaMultiplier || this.alphaMultiplier == ct.alphaMultiplier) && this.redOffset == ct.redOffset && this.greenOffset == ct.greenOffset && this.blueOffset == ct.blueOffset) { return this.alphaOffset == ct.alphaOffset; } else { return false; } } ,__isDefault: function(ignoreAlphaMultiplier) { if(ignoreAlphaMultiplier) { if(this.redMultiplier == 1 && this.greenMultiplier == 1 && this.blueMultiplier == 1 && this.redOffset == 0 && this.greenOffset == 0 && this.blueOffset == 0) { return this.alphaOffset == 0; } else { return false; } } else if(this.redMultiplier == 1 && this.greenMultiplier == 1 && this.blueMultiplier == 1 && this.alphaMultiplier == 1 && this.redOffset == 0 && this.greenOffset == 0 && this.blueOffset == 0) { return this.alphaOffset == 0; } else { return false; } } ,__setArrays: function(colorMultipliers,colorOffsets) { colorMultipliers[0] = this.redMultiplier; colorMultipliers[1] = this.greenMultiplier; colorMultipliers[2] = this.blueMultiplier; colorMultipliers[3] = this.alphaMultiplier; colorOffsets[0] = this.redOffset; colorOffsets[1] = this.greenOffset; colorOffsets[2] = this.blueOffset; colorOffsets[3] = this.alphaOffset; } ,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() { if(openfl_geom_ColorTransform.__limeColorMatrix == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; openfl_geom_ColorTransform.__limeColorMatrix = new Float32Array(20); } openfl_geom_ColorTransform.__limeColorMatrix[0] = this.redMultiplier; openfl_geom_ColorTransform.__limeColorMatrix[4] = this.redOffset / 255; openfl_geom_ColorTransform.__limeColorMatrix[6] = this.greenMultiplier; openfl_geom_ColorTransform.__limeColorMatrix[9] = this.greenOffset / 255; openfl_geom_ColorTransform.__limeColorMatrix[12] = this.blueMultiplier; openfl_geom_ColorTransform.__limeColorMatrix[14] = this.blueOffset / 255; openfl_geom_ColorTransform.__limeColorMatrix[18] = this.alphaMultiplier; openfl_geom_ColorTransform.__limeColorMatrix[19] = this.alphaOffset / 255; return openfl_geom_ColorTransform.__limeColorMatrix; } ,__class__: openfl_geom_ColorTransform ,__properties__: {set_color:"set_color",get_color:"get_color"} }; var flixel_FlxCamera = function(X,Y,Width,Height,Zoom) { if(Zoom == null) { Zoom = 0; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._helperPoint = new openfl_geom_Point(); this._helperMatrix = new flixel_math_FlxMatrix(); var _this = flixel_math_FlxRect._pool.get(); var X1 = 0; var Y1 = 0; var Width1 = 0; var Height1 = 0; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this._bounds = rect; this._scrollRect = new openfl_display_Sprite(); this.initialZoom = 1; this.filters = null; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._point = point; this._fxShakeAxes = 17; this._fxShakeDuration = 0; this._fxShakeIntensity = 0; this._fxFadeAlpha = 0; this._fxFadeComplete = null; this._fxFadeIn = false; this._fxFadeDuration = 0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._scrollTarget = point; this._fxFadeColor = 0; this._fxFlashAlpha = 0; this._fxFlashComplete = null; this._fxFlashDuration = 0; this._fxFlashColor = 0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._flashOffset = point; this._flashPoint = new openfl_geom_Point(); this.filtersEnabled = true; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.followLead = point; this.antialiasing = false; this.color = -1; this.angle = 0; this.alpha = 1; this._useBlitMatrix = false; this._blitMatrix = new flixel_math_FlxMatrix(); this.height = 0; this.width = 0; this.pixelPerfectShake = null; this.flashSprite = new openfl_display_Sprite(); this.useBgAlphaBlending = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.scroll = point; this.followLerp = 1.0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.targetOffset = point; this.scaleY = 0; this.scaleX = 0; this.y = 0; this.x = 0; flixel_FlxBasic.call(this); this.set_x(X); this.set_y(Y); this.set_width(Width <= 0 ? flixel_FlxG.width : Width); this.set_height(Height <= 0 ? flixel_FlxG.height : Height); this._flashRect = new openfl_geom_Rectangle(0,0,this.width,this.height); this.flashSprite.addChild(this._scrollRect); this._scrollRect.set_scrollRect(new openfl_geom_Rectangle()); this.pixelPerfectRender = flixel_FlxG.renderBlit; if(flixel_FlxG.renderBlit) { this.screen = new flixel_FlxSprite(); this.buffer = new openfl_display_BitmapData(this.width,this.height,true,0); this.screen.set_pixels(this.buffer); var this1 = this.screen.origin; this1.set_x(0); this1.set_y(0); this._flashBitmap = new openfl_display_Bitmap(this.buffer); this._scrollRect.addChild(this._flashBitmap); this._fill = new openfl_display_BitmapData(this.width,this.height,true,0); } else { this.canvas = new openfl_display_Sprite(); this._scrollRect.addChild(this.canvas); } this.set_color(-1); this.initialZoom = Zoom == 0 ? flixel_FlxCamera.defaultZoom : Zoom; this.set_zoom(Zoom); this.updateScrollRect(); this.updateFlashOffset(); this.updateFlashSpritePosition(); this.updateInternalSpritePositions(); this.bgColor = flixel_FlxG.cameras.get_bgColor(); }; $hxClasses["flixel.FlxCamera"] = flixel_FlxCamera; flixel_FlxCamera.__name__ = "flixel.FlxCamera"; flixel_FlxCamera.__properties__ = {set_defaultCameras:"set_defaultCameras",get_defaultCameras:"get_defaultCameras"}; flixel_FlxCamera._defaultCameras = null; flixel_FlxCamera._storageTilesHead = null; flixel_FlxCamera._storageTrianglesHead = null; flixel_FlxCamera.get_defaultCameras = function() { return flixel_FlxCamera._defaultCameras; }; flixel_FlxCamera.set_defaultCameras = function(value) { return flixel_FlxCamera._defaultCameras = value; }; flixel_FlxCamera.__super__ = flixel_FlxBasic; flixel_FlxCamera.prototype = $extend(flixel_FlxBasic.prototype,{ x: null ,y: null ,scaleX: null ,scaleY: null ,totalScaleX: null ,totalScaleY: null ,style: null ,target: null ,targetOffset: null ,followLerp: null ,deadzone: null ,minScrollX: null ,maxScrollX: null ,minScrollY: null ,maxScrollY: null ,scroll: null ,buffer: null ,bgColor: null ,screen: null ,useBgAlphaBlending: null ,flashSprite: null ,pixelPerfectRender: null ,pixelPerfectShake: null ,width: null ,height: null ,zoom: null ,viewMarginX: null ,viewMarginY: null ,_blitMatrix: null ,_useBlitMatrix: null ,alpha: null ,angle: null ,color: null ,antialiasing: null ,followLead: null ,filtersEnabled: null ,_flashRect: null ,_flashPoint: null ,_flashOffset: null ,_fxFlashColor: null ,_fxFlashDuration: null ,_fxFlashComplete: null ,_fxFlashAlpha: null ,_fxFadeColor: null ,_lastTargetPosition: null ,_scrollTarget: null ,_fxFadeDuration: null ,_fxFadeIn: null ,_fxFadeComplete: null ,_fxFadeAlpha: null ,_fxShakeIntensity: null ,_fxShakeDuration: null ,_fxShakeComplete: null ,_fxShakeAxes: null ,_point: null ,filters: null ,initialZoom: null ,_fill: null ,_flashBitmap: null ,_scrollRect: null ,_bounds: null ,canvas: null ,_helperMatrix: null ,_helperPoint: null ,_currentDrawItem: null ,_headOfDrawStack: null ,_headTiles: null ,_headTriangles: null ,startQuadBatch: function(graphic,colored,hasColorOffsets,blend,smooth,shader) { if(smooth == null) { smooth = false; } if(hasColorOffsets == null) { hasColorOffsets = false; } var itemToReturn = null; var blendInt = flixel_graphics_tile_FlxDrawBaseItem.blendToInt(blend); if(this._currentDrawItem != null && this._currentDrawItem.type == flixel_graphics_tile_FlxDrawItemType.TILES && this._headTiles.graphics == graphic && this._headTiles.colored == colored && this._headTiles.hasColorOffsets == hasColorOffsets && this._headTiles.blending == blendInt && this._headTiles.blend == blend && this._headTiles.antialiasing == smooth && this._headTiles.shader == shader) { return this._headTiles; } if(flixel_FlxCamera._storageTilesHead != null) { itemToReturn = flixel_FlxCamera._storageTilesHead; var newHead = flixel_FlxCamera._storageTilesHead.nextTyped; itemToReturn.reset(); flixel_FlxCamera._storageTilesHead = newHead; } else { itemToReturn = new flixel_graphics_tile_FlxDrawQuadsItem(); } if(graphic.shader == null) { throw haxe_Exception.thrown("Attempted to queue an invalid FlxDrawItem, did you destroy a cached sprite?"); } itemToReturn.graphics = graphic; itemToReturn.antialiasing = smooth; itemToReturn.colored = colored; itemToReturn.hasColorOffsets = hasColorOffsets; itemToReturn.blending = blendInt; itemToReturn.blend = blend; itemToReturn.shader = shader; itemToReturn.nextTyped = this._headTiles; this._headTiles = itemToReturn; if(this._headOfDrawStack == null) { this._headOfDrawStack = itemToReturn; } if(this._currentDrawItem != null) { this._currentDrawItem.next = itemToReturn; } this._currentDrawItem = itemToReturn; return itemToReturn; } ,startTrianglesBatch: function(graphic,smoothing,isColored,blend,hasColorOffsets,shader) { if(isColored == null) { isColored = false; } if(smoothing == null) { smoothing = false; } var blendInt = flixel_graphics_tile_FlxDrawBaseItem.blendToInt(blend); if(this._currentDrawItem != null && this._currentDrawItem.type == flixel_graphics_tile_FlxDrawItemType.TRIANGLES && this._headTriangles.graphics == graphic && this._headTriangles.antialiasing == smoothing && this._headTriangles.colored == isColored && this._headTriangles.blending == blendInt && this._headTriangles.hasColorOffsets == hasColorOffsets && this._headTriangles.shader == shader) { return this._headTriangles; } return this.getNewDrawTrianglesItem(graphic,smoothing,isColored,blend,hasColorOffsets,shader); } ,getNewDrawTrianglesItem: function(graphic,smoothing,isColored,blend,hasColorOffsets,shader) { if(isColored == null) { isColored = false; } if(smoothing == null) { smoothing = false; } var itemToReturn = null; var blendInt = flixel_graphics_tile_FlxDrawBaseItem.blendToInt(blend); if(flixel_FlxCamera._storageTrianglesHead != null) { itemToReturn = flixel_FlxCamera._storageTrianglesHead; var newHead = flixel_FlxCamera._storageTrianglesHead.nextTyped; itemToReturn.reset(); flixel_FlxCamera._storageTrianglesHead = newHead; } else { itemToReturn = new flixel_graphics_tile_FlxDrawTrianglesItem(); } itemToReturn.graphics = graphic; itemToReturn.antialiasing = smoothing; itemToReturn.colored = isColored; itemToReturn.blending = blendInt; itemToReturn.hasColorOffsets = hasColorOffsets; itemToReturn.shader = shader; itemToReturn.nextTyped = this._headTriangles; this._headTriangles = itemToReturn; if(this._headOfDrawStack == null) { this._headOfDrawStack = itemToReturn; } if(this._currentDrawItem != null) { this._currentDrawItem.next = itemToReturn; } this._currentDrawItem = itemToReturn; return itemToReturn; } ,clearDrawStack: function() { var currTiles = this._headTiles; var newTilesHead; while(currTiles != null) { newTilesHead = currTiles.nextTyped; currTiles.reset(); currTiles.nextTyped = flixel_FlxCamera._storageTilesHead; flixel_FlxCamera._storageTilesHead = currTiles; currTiles = newTilesHead; } var currTriangles = this._headTriangles; var newTrianglesHead; while(currTriangles != null) { newTrianglesHead = currTriangles.nextTyped; currTriangles.reset(); currTriangles.nextTyped = flixel_FlxCamera._storageTrianglesHead; flixel_FlxCamera._storageTrianglesHead = currTriangles; currTriangles = newTrianglesHead; } this._currentDrawItem = null; this._headOfDrawStack = null; this._headTiles = null; this._headTriangles = null; } ,render: function() { var currItem = this._headOfDrawStack; while(currItem != null) { currItem.render(this); currItem = currItem.next; } } ,drawPixels: function(frame,pixels,matrix,transform,blend,smoothing,shader) { if(smoothing == null) { smoothing = false; } if(flixel_FlxG.renderBlit) { this._helperMatrix.copyFrom(matrix); if(this._useBlitMatrix) { this._helperMatrix.concat(this._blitMatrix); this.buffer.draw(pixels,this._helperMatrix,null,null,null,smoothing || this.antialiasing); } else { this._helperMatrix.translate(-this.viewMarginX,-this.viewMarginY); this.buffer.draw(pixels,this._helperMatrix,null,blend,null,smoothing || this.antialiasing); } } else { var isColored = transform != null && flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform); var hasColorOffsets = transform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(transform); var drawItem = this.startQuadBatch(frame.parent,isColored,hasColorOffsets,blend,smoothing,shader); drawItem.addQuad(frame,matrix,transform); } } ,copyPixels: function(frame,pixels,sourceRect,destPoint,transform,blend,smoothing,shader) { if(smoothing == null) { smoothing = false; } if(flixel_FlxG.renderBlit) { if(pixels != null) { if(this._useBlitMatrix) { this._helperMatrix.identity(); this._helperMatrix.translate(destPoint.x,destPoint.y); this._helperMatrix.concat(this._blitMatrix); this.buffer.draw(pixels,this._helperMatrix,null,null,null,smoothing || this.antialiasing); } else { this._helperPoint.x = destPoint.x - (this.viewMarginX | 0); this._helperPoint.y = destPoint.y - (this.viewMarginY | 0); this.buffer.copyPixels(pixels,sourceRect,this._helperPoint,null,null,true); } } else if(frame != null) { frame.paint(this.buffer,destPoint,true); } } else { this._helperMatrix.identity(); this._helperMatrix.translate(destPoint.x + frame.offset.x,destPoint.y + frame.offset.y); var isColored = transform != null && flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform); var hasColorOffsets = transform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(transform); var drawItem = this.startQuadBatch(frame.parent,isColored,hasColorOffsets,blend,smoothing,shader); drawItem.addQuad(frame,this._helperMatrix,transform); } } ,drawTriangles: function(graphic,vertices,indices,uvtData,colors,position,blend,repeat,smoothing,transform,shader) { if(smoothing == null) { smoothing = false; } if(repeat == null) { repeat = false; } if(flixel_FlxG.renderBlit) { if(position == null) { var this1 = flixel_FlxCamera.renderPoint; this1.set_x(0); this1.set_y(0); position = this1; } var _this = this._bounds; var X = 0; var Y = 0; var Width = this.width; var Height = this.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; var verticesLength = vertices.get_length(); var currentVertexPosition = 0; var tempX; var tempY; var i = 0; var _this = flixel_FlxCamera.renderRect; _this.x = 0; _this.y = 0; _this.width = 0; _this.height = 0; var bounds = _this; var this1 = flixel_FlxCamera.drawVertices; var deleteCount = flixel_FlxCamera.drawVertices.get_length(); this1.__tempIndex = 0; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,deleteCount); while(i < verticesLength) { tempX = position.x + vertices.get(i); tempY = position.y + vertices.get(i + 1); flixel_FlxCamera.drawVertices.set(currentVertexPosition++,tempX); flixel_FlxCamera.drawVertices.set(currentVertexPosition++,tempY); if(i == 0) { var X = tempX; var Y = tempY; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } bounds.x = X; bounds.y = Y; bounds.width = Width; bounds.height = Height; } else { if(tempX < bounds.x) { bounds.width += bounds.x - tempX; bounds.x = tempX; } if(tempY < bounds.y) { bounds.height += bounds.y - tempY; bounds.y = tempY; } if(tempX > bounds.x + bounds.width) { bounds.width = tempX - bounds.x; } if(tempY > bounds.y + bounds.height) { bounds.height = tempY - bounds.y; } } i += 2; } if(position._weak) { position.put(); } var _this = this._bounds; var result = bounds.x + bounds.width > _this.x && bounds.x < _this.x + _this.width && bounds.y + bounds.height > _this.y && bounds.y < _this.y + _this.height; if(bounds._weak) { if(!bounds._inPool) { bounds._inPool = true; bounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(bounds); } } if(!result) { var this1 = flixel_FlxCamera.drawVertices; this1.__tempIndex = flixel_FlxCamera.drawVertices.get_length() - verticesLength; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,verticesLength); } else { flixel_FlxCamera.trianglesSprite.get_graphics().clear(); flixel_FlxCamera.trianglesSprite.get_graphics().beginBitmapFill(graphic.bitmap,null,repeat,smoothing); flixel_FlxCamera.trianglesSprite.get_graphics().drawTriangles(flixel_FlxCamera.drawVertices,indices,uvtData); flixel_FlxCamera.trianglesSprite.get_graphics().endFill(); if(this._useBlitMatrix) { this._helperMatrix.copyFrom(this._blitMatrix); } else { this._helperMatrix.identity(); this._helperMatrix.translate(-this.viewMarginX,-this.viewMarginY); } this.buffer.draw(flixel_FlxCamera.trianglesSprite,this._helperMatrix); } if(!bounds._inPool) { bounds._inPool = true; bounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(bounds); } } else { var _this = this._bounds; var X = 0; var Y = 0; var Width = this.width; var Height = this.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; var isColored = colors != null && colors.get_length() != 0; var hasColorOffsets = transform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(transform); isColored = isColored || transform != null && flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform); var drawItem = this.startTrianglesBatch(graphic,smoothing,isColored,blend,hasColorOffsets,shader); drawItem.addTriangles(vertices,indices,uvtData,colors,position,this._bounds,transform); } } ,transformRect: function(rect) { if(flixel_FlxG.renderBlit) { rect.x += -this.viewMarginX; rect.y += -this.viewMarginY; if(this._useBlitMatrix) { rect.x *= this.zoom; rect.y *= this.zoom; rect.width *= this.zoom; rect.height *= this.zoom; } } return rect; } ,transformPoint: function(point) { if(flixel_FlxG.renderBlit) { var x = this.viewMarginX; var y = this.viewMarginY; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(point.x - x); point.set_y(point.y - y); if(this._useBlitMatrix) { var x = this.zoom; var y = null; if(y == null) { y = x; } point.set_x(point.x * x); point.set_y(point.y * y); } } return point; } ,transformVector: function(vector) { if(flixel_FlxG.renderBlit && this._useBlitMatrix) { var x = this.zoom; var y = null; if(y == null) { y = x; } vector.set_x(vector.x * x); vector.set_y(vector.y * y); } return vector; } ,transformObject: function(object) { object.set_scaleX(object.get_scaleX() * this.totalScaleX); object.set_scaleY(object.get_scaleY() * this.totalScaleY); object.set_x(object.get_x() - this.scroll.x * this.totalScaleX); object.set_y(object.get_y() - this.scroll.y * this.totalScaleY); object.set_x(object.get_x() - 0.5 * this.width * (this.scaleX - this.initialZoom) * flixel_FlxG.scaleMode.scale.x); object.set_y(object.get_y() - 0.5 * this.height * (this.scaleY - this.initialZoom) * flixel_FlxG.scaleMode.scale.y); return object; } ,destroy: function() { flixel_util_FlxDestroyUtil.removeChild(this.flashSprite,this._scrollRect); if(flixel_FlxG.renderBlit) { flixel_util_FlxDestroyUtil.removeChild(this._scrollRect,this._flashBitmap); this.screen = flixel_util_FlxDestroyUtil.destroy(this.screen); this.buffer = null; this._flashBitmap = null; this._fill = flixel_util_FlxDestroyUtil.dispose(this._fill); } else { flixel_util_FlxDestroyUtil.removeChild(this._scrollRect,this.canvas); if(this.canvas != null) { var _g = 0; var _g1 = this.canvas.get_numChildren(); while(_g < _g1) { var i = _g++; this.canvas.removeChildAt(0); } this.canvas = null; } if(this._headOfDrawStack != null) { this.clearDrawStack(); } this._blitMatrix = null; this._helperMatrix = null; this._helperPoint = null; } this._bounds = null; this.scroll = flixel_util_FlxDestroyUtil.put(this.scroll); this.targetOffset = flixel_util_FlxDestroyUtil.put(this.targetOffset); this.deadzone = flixel_util_FlxDestroyUtil.put(this.deadzone); this.target = null; this.flashSprite = null; this._scrollRect = null; this._flashRect = null; this._flashPoint = null; this._fxFlashComplete = null; this._fxFadeComplete = null; this._fxShakeComplete = null; flixel_FlxBasic.prototype.destroy.call(this); } ,update: function(elapsed) { if(this.target != null) { this.updateFollow(); this.updateLerp(elapsed); } this.updateScroll(); this.updateFlash(elapsed); this.updateFade(elapsed); this.flashSprite.set_filters(this.filtersEnabled ? this.filters : null); this.updateFlashSpritePosition(); this.updateShake(elapsed); } ,updateScroll: function() { this.bindScrollPos(this.scroll); } ,bindScrollPos: function(scrollPos) { var minX = this.minScrollX == null ? null : this.minScrollX - (this.zoom - 1) * this.width / (2 * this.zoom); var maxX = this.maxScrollX == null ? null : this.maxScrollX + (this.zoom - 1) * this.width / (2 * this.zoom); var minY = this.minScrollY == null ? null : this.minScrollY - (this.zoom - 1) * this.height / (2 * this.zoom); var maxY = this.maxScrollY == null ? null : this.maxScrollY + (this.zoom - 1) * this.height / (2 * this.zoom); var Value = scrollPos.x; var Max = maxX != null ? maxX - this.width : null; var lowerBound = minX != null && Value < minX ? minX : Value; scrollPos.set_x(Max != null && lowerBound > Max ? Max : lowerBound); var Value = scrollPos.y; var Max = maxY != null ? maxY - this.height : null; var lowerBound = minY != null && Value < minY ? minY : Value; scrollPos.set_y(Max != null && lowerBound > Max ? Max : lowerBound); return scrollPos; } ,updateFollow: function() { if(this.deadzone == null) { this.target.getMidpoint(this._point); var this1 = this._point; var point = this.targetOffset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var this1 = this._scrollTarget; var x = this._point.x - this.width * 0.5; var y = this._point.y - this.height * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { var edge; var targetX = this.target.x + this.targetOffset.x; var targetY = this.target.y + this.targetOffset.y; if(this.style == flixel_FlxCameraFollowStyle.SCREEN_BY_SCREEN) { if(targetX >= this.scroll.x + (this.width - this.viewMarginX)) { this._scrollTarget.set_x(this._scrollTarget.x + (this.width - this.viewMarginX * 2)); } else if(targetX + this.target.get_width() < this.scroll.x + this.viewMarginX) { this._scrollTarget.set_x(this._scrollTarget.x - (this.width - this.viewMarginX * 2)); } if(targetY >= this.scroll.y + (this.height - this.viewMarginY)) { this._scrollTarget.set_y(this._scrollTarget.y + (this.height - this.viewMarginY * 2)); } else if(targetY + this.target.get_height() < this.scroll.y + this.viewMarginY) { this._scrollTarget.set_y(this._scrollTarget.y - (this.height - this.viewMarginY * 2)); } this.bindScrollPos(this._scrollTarget); } else { edge = targetX - this.deadzone.x; if(this._scrollTarget.x > edge) { this._scrollTarget.set_x(edge); } edge = targetX + this.target.get_width() - this.deadzone.x - this.deadzone.width; if(this._scrollTarget.x < edge) { this._scrollTarget.set_x(edge); } edge = targetY - this.deadzone.y; if(this._scrollTarget.y > edge) { this._scrollTarget.set_y(edge); } edge = targetY + this.target.get_height() - this.deadzone.y - this.deadzone.height; if(this._scrollTarget.y < edge) { this._scrollTarget.set_y(edge); } } if(((this.target) instanceof flixel_FlxSprite)) { if(this._lastTargetPosition == null) { var x = this.target.x; var y = this.target.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this._lastTargetPosition = point; } this._scrollTarget.set_x(this._scrollTarget.x + (this.target.x - this._lastTargetPosition.x) * this.followLead.x); this._scrollTarget.set_y(this._scrollTarget.y + (this.target.y - this._lastTargetPosition.y) * this.followLead.y); this._lastTargetPosition.set_x(this.target.x); this._lastTargetPosition.set_y(this.target.y); } } } ,updateLerp: function(elapsed) { var Value = this.followLerp; var lowerBound = Value < 0 ? 0 : Value; var boundLerp = lowerBound > 1 ? 1 : lowerBound; var adjustedLerp = 1.0 - Math.pow(1.0 - boundLerp,elapsed * 60); if(adjustedLerp >= 1) { var this1 = this.scroll; var p = this._scrollTarget; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } } else { this.scroll.set_x(this.scroll.x + (this._scrollTarget.x - this.scroll.x) * adjustedLerp); this.scroll.set_y(this.scroll.y + (this._scrollTarget.y - this.scroll.y) * adjustedLerp); } } ,updateFlash: function(elapsed) { if(this._fxFlashAlpha > 0.0) { this._fxFlashAlpha -= elapsed / this._fxFlashDuration; if(this._fxFlashAlpha <= 0 && this._fxFlashComplete != null) { this._fxFlashComplete(); } } } ,updateFade: function(elapsed) { if(this._fxFadeDuration == 0.0) { return; } if(this._fxFadeIn) { this._fxFadeAlpha -= elapsed / this._fxFadeDuration; if(this._fxFadeAlpha <= 0.0) { this._fxFadeAlpha = 0.0; this.completeFade(); } } else { this._fxFadeAlpha += elapsed / this._fxFadeDuration; if(this._fxFadeAlpha >= 1.0) { this._fxFadeAlpha = 1.0; this.completeFade(); } } } ,completeFade: function() { this._fxFadeDuration = 0.0; if(this._fxFadeComplete != null) { this._fxFadeComplete(); } } ,updateShake: function(elapsed) { if(this._fxShakeDuration > 0) { this._fxShakeDuration -= elapsed; if(this._fxShakeDuration <= 0) { if(this._fxShakeComplete != null) { this._fxShakeComplete(); } } else { var pixelPerfect = this.pixelPerfectShake == null ? this.pixelPerfectRender : this.pixelPerfectShake; var this1 = this._fxShakeAxes; if(this1 == 1 || this1 == 17) { var shakePixels = flixel_FlxG.random.float(-1,1) * this._fxShakeIntensity * this.width; if(pixelPerfect) { shakePixels = Math.round(shakePixels); } var fh = this.flashSprite; fh.set_x(fh.get_x() + shakePixels * this.zoom * flixel_FlxG.scaleMode.scale.x); } var this1 = this._fxShakeAxes; if(this1 == 16 || this1 == 17) { var shakePixels = flixel_FlxG.random.float(-1,1) * this._fxShakeIntensity * this.height; if(pixelPerfect) { shakePixels = Math.round(shakePixels); } var fh = this.flashSprite; fh.set_y(fh.get_y() + shakePixels * this.zoom * flixel_FlxG.scaleMode.scale.y); } } } } ,updateFlashSpritePosition: function() { if(this.flashSprite != null) { this.flashSprite.set_x(this.x * flixel_FlxG.scaleMode.scale.x + this._flashOffset.x); this.flashSprite.set_y(this.y * flixel_FlxG.scaleMode.scale.y + this._flashOffset.y); } } ,updateFlashOffset: function() { this._flashOffset.set_x(this.width * 0.5 * flixel_FlxG.scaleMode.scale.x * this.initialZoom); this._flashOffset.set_y(this.height * 0.5 * flixel_FlxG.scaleMode.scale.y * this.initialZoom); } ,updateScrollRect: function() { var rect = this._scrollRect != null ? this._scrollRect.get_scrollRect() : null; if(rect != null) { rect.x = rect.y = 0; rect.width = this.width * this.initialZoom * flixel_FlxG.scaleMode.scale.x; rect.height = this.height * this.initialZoom * flixel_FlxG.scaleMode.scale.y; this._scrollRect.set_scrollRect(rect); this._scrollRect.set_x(-0.5 * rect.width); this._scrollRect.set_y(-0.5 * rect.height); } } ,updateInternalSpritePositions: function() { if(flixel_FlxG.renderBlit) { if(this._flashBitmap != null) { this._flashBitmap.set_x(0); this._flashBitmap.set_y(0); } } else if(this.canvas != null) { this.canvas.set_x(-0.5 * this.width * (this.scaleX - this.initialZoom) * flixel_FlxG.scaleMode.scale.x); this.canvas.set_y(-0.5 * this.height * (this.scaleY - this.initialZoom) * flixel_FlxG.scaleMode.scale.y); this.canvas.set_scaleX(this.totalScaleX); this.canvas.set_scaleY(this.totalScaleY); } } ,follow: function(target,style,lerp) { if(lerp == null) { lerp = 1.0; } if(style == null) { style = flixel_FlxCameraFollowStyle.LOCKON; } this.style = style; this.target = target; this.followLerp = lerp; var helper; var w = 0; var h = 0; this._lastTargetPosition = null; switch(style._hx_index) { case 0: if(target != null) { w = target.get_width(); h = target.get_height(); } var X = (this.width - w) / 2; var Y = (this.height - h) / 2 - h * 0.25; var Width = w; var Height = h; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.deadzone = rect; break; case 1: var w = this.width / 8; var h = this.height / 3; var X = (this.width - w) / 2; var Y = (this.height - h) / 2 - h * 0.25; var Width = w; var Height = h; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.deadzone = rect; break; case 2: helper = Math.max(this.width,this.height) / 4; var X = (this.width - helper) / 2; var Y = (this.height - helper) / 2; var Width = helper; var Height = helper; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.deadzone = rect; break; case 3: helper = Math.max(this.width,this.height) / 8; var X = (this.width - helper) / 2; var Y = (this.height - helper) / 2; var Width = helper; var Height = helper; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.deadzone = rect; break; case 4: var X = 0; var Y = 0; var Width = this.width; var Height = this.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.deadzone = rect; break; case 5: this.deadzone = null; break; } } ,snapToTarget: function() { this.updateFollow(); var this1 = this.scroll; var p = this._scrollTarget; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } } ,focusOn: function(point) { var this1 = this.scroll; var x = point.x - this.width * 0.5; var y = point.y - this.height * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(point._weak) { point.put(); } } ,flash: function(Color,Duration,OnComplete,Force) { if(Force == null) { Force = false; } if(Duration == null) { Duration = 1; } if(Color == null) { Color = -1; } if(!Force && this._fxFlashAlpha > 0.0) { return; } this._fxFlashColor = Color; if(Duration <= 0) { Duration = 0.000001; } this._fxFlashDuration = Duration; this._fxFlashComplete = OnComplete; this._fxFlashAlpha = 1.0; } ,fade: function(Color,Duration,FadeIn,OnComplete,Force) { if(Force == null) { Force = false; } if(FadeIn == null) { FadeIn = false; } if(Duration == null) { Duration = 1; } if(Color == null) { Color = -16777216; } if(this._fxFadeDuration > 0 && !Force) { return; } this._fxFadeColor = Color; if(Duration <= 0) { Duration = 0.000001; } this._fxFadeIn = FadeIn; this._fxFadeDuration = Duration; this._fxFadeComplete = OnComplete; this._fxFadeAlpha = this._fxFadeIn ? 0.999999 : 0.000001; } ,shake: function(Intensity,Duration,OnComplete,Force,Axes) { if(Force == null) { Force = true; } if(Duration == null) { Duration = 0.5; } if(Intensity == null) { Intensity = 0.05; } if(Axes == null) { Axes = 17; } if(!Force && this._fxShakeDuration > 0) { return; } this._fxShakeIntensity = Intensity; this._fxShakeDuration = Duration; this._fxShakeComplete = OnComplete; this._fxShakeAxes = Axes; } ,stopFX: function() { this._fxFlashAlpha = 0.0; this._fxFadeAlpha = 0.0; this._fxFadeDuration = 0.0; this._fxShakeDuration = 0.0; this.updateFlashSpritePosition(); } ,setFilters: function(filters) { this.filters = filters; } ,copyFrom: function(Camera) { this.setScrollBounds(Camera.minScrollX,Camera.maxScrollX,Camera.minScrollY,Camera.maxScrollY); this.target = Camera.target; if(this.target != null) { if(Camera.deadzone == null) { this.deadzone = null; } else { if(this.deadzone == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this.deadzone = rect; } var _this = this.deadzone; var Rect = Camera.deadzone; _this.x = Rect.x; _this.y = Rect.y; _this.width = Rect.width; _this.height = Rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } } } return this; } ,fill: function(Color,BlendAlpha,FxAlpha,graphics) { if(FxAlpha == null) { FxAlpha = 1.0; } if(BlendAlpha == null) { BlendAlpha = true; } if(flixel_FlxG.renderBlit) { if(BlendAlpha) { this._fill.fillRect(this._flashRect,Color); this.buffer.copyPixels(this._fill,this._flashRect,this._flashPoint,null,null,BlendAlpha); } else { this.buffer.fillRect(this._flashRect,Color); } } else { if(FxAlpha == 0) { return; } var targetGraphics = graphics == null ? this.canvas.get_graphics() : graphics; targetGraphics.beginFill(Color,FxAlpha); targetGraphics.drawRect(this.viewMarginX - 1,this.viewMarginY - 1,this.width - this.viewMarginX * 2 + 2,this.height - this.viewMarginY * 2 + 2); targetGraphics.endFill(); } } ,drawFX: function() { var alphaComponent; if(this._fxFlashAlpha > 0.0) { alphaComponent = this._fxFlashColor >> 24 & 255; if(flixel_FlxG.renderBlit) { this.fill((((alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFlashAlpha | 0) << 24) + (this._fxFlashColor & 16777215)); } else { this.fill(this._fxFlashColor & 16777215,true,(alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFlashAlpha / 255,this.canvas.get_graphics()); } } if(this._fxFadeAlpha > 0.0) { alphaComponent = this._fxFadeColor >> 24 & 255; if(flixel_FlxG.renderBlit) { this.fill((((alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFadeAlpha | 0) << 24) + (this._fxFadeColor & 16777215)); } else { this.fill(this._fxFadeColor & 16777215,true,(alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFadeAlpha / 255,this.canvas.get_graphics()); } } } ,checkResize: function() { if(flixel_FlxG.renderBlit) { if(this.width != this.buffer.width || this.height != this.buffer.height) { var oldBuffer = this.screen.graphic; this.buffer = new openfl_display_BitmapData(this.width,this.height,true,0); this.screen.set_pixels(this.buffer); var this1 = this.screen.origin; this1.set_x(0); this1.set_y(0); this._flashBitmap.set_bitmapData(this.buffer); this._flashRect.width = this.width; this._flashRect.height = this.height; this._fill = flixel_util_FlxDestroyUtil.dispose(this._fill); this._fill = new openfl_display_BitmapData(this.width,this.height,true,0); flixel_FlxG.bitmap.removeIfNoUse(oldBuffer); } this._blitMatrix.identity(); this._blitMatrix.translate(-this.viewMarginX,-this.viewMarginY); this._blitMatrix.scale(this.scaleX,this.scaleY); this._useBlitMatrix = this.scaleX < this.initialZoom || this.scaleY < this.initialZoom; } } ,updateBlitMatrix: function() { this._blitMatrix.identity(); this._blitMatrix.translate(-this.viewMarginX,-this.viewMarginY); this._blitMatrix.scale(this.scaleX,this.scaleY); this._useBlitMatrix = this.scaleX < this.initialZoom || this.scaleY < this.initialZoom; } ,setSize: function(Width,Height) { this.set_width(Width); this.set_height(Height); } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.set_x(X); this.set_y(Y); } ,setScrollBoundsRect: function(X,Y,Width,Height,UpdateWorld) { if(UpdateWorld == null) { UpdateWorld = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } if(UpdateWorld) { var _this = flixel_FlxG.worldBounds; var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; } this.setScrollBounds(X,X + Width,Y,Y + Height); } ,setScrollBounds: function(MinX,MaxX,MinY,MaxY) { this.minScrollX = MinX; this.maxScrollX = MaxX; this.minScrollY = MinY; this.maxScrollY = MaxY; this.updateScroll(); } ,setScale: function(X,Y) { this.scaleX = X; this.scaleY = Y; this.totalScaleX = this.scaleX * flixel_FlxG.scaleMode.scale.x; this.totalScaleY = this.scaleY * flixel_FlxG.scaleMode.scale.y; if(flixel_FlxG.renderBlit) { this._blitMatrix.identity(); this._blitMatrix.translate(-this.viewMarginX,-this.viewMarginY); this._blitMatrix.scale(this.scaleX,this.scaleY); this._useBlitMatrix = this.scaleX < this.initialZoom || this.scaleY < this.initialZoom; if(this._useBlitMatrix) { this._flashBitmap.set_scaleX(this.initialZoom * flixel_FlxG.scaleMode.scale.x); this._flashBitmap.set_scaleY(this.initialZoom * flixel_FlxG.scaleMode.scale.y); } else { this._flashBitmap.set_scaleX(this.totalScaleX); this._flashBitmap.set_scaleY(this.totalScaleY); } } this.viewMarginX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX; this.viewMarginY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY; this.updateScrollRect(); this.updateInternalSpritePositions(); flixel_FlxG.cameras.cameraResized.dispatch(this); } ,onResize: function() { this.updateFlashOffset(); this.setScale(this.scaleX,this.scaleY); } ,getViewRect: function(rect) { if(rect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; rect = rect1; } var X = this.viewMarginX; var Y = this.viewMarginY; var Width = this.width - this.viewMarginX * 2; var Height = this.height - this.viewMarginY * 2; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } rect.x = X; rect.y = Y; rect.width = Width; rect.height = Height; return rect; } ,getViewMarginRect: function(rect) { if(rect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; rect = rect1; } var X = this.viewMarginX; var Y = this.viewMarginY; var Width = this.width - this.viewMarginX * 2; var Height = this.height - this.viewMarginY * 2; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } rect.x = X; rect.y = Y; rect.width = Width; rect.height = Height; return rect; } ,containsPoint: function(point,width,height) { if(height == null) { height = 0; } if(width == null) { width = 0; } var contained = point.x + width > this.viewMarginX && point.x < this.width - this.viewMarginX && point.y + height > this.viewMarginY && point.y < this.height - this.viewMarginY; if(point._weak) { point.put(); } return contained; } ,containsRect: function(rect) { var contained = rect.x + rect.width > this.viewMarginX && rect.x < this.width - this.viewMarginX && rect.y + rect.height > this.viewMarginY && rect.y < this.height - this.viewMarginY; if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return contained; } ,set_width: function(Value) { if(this.width != Value && Value > 0) { this.width = Value; this.viewMarginX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX; this.updateFlashOffset(); this.updateScrollRect(); this.updateInternalSpritePositions(); flixel_FlxG.cameras.cameraResized.dispatch(this); } return Value; } ,set_height: function(Value) { if(this.height != Value && Value > 0) { this.height = Value; this.viewMarginY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY; this.updateFlashOffset(); this.updateScrollRect(); this.updateInternalSpritePositions(); flixel_FlxG.cameras.cameraResized.dispatch(this); } return Value; } ,set_zoom: function(Zoom) { this.zoom = Zoom == 0 ? flixel_FlxCamera.defaultZoom : Zoom; this.setScale(this.zoom,this.zoom); return this.zoom; } ,set_alpha: function(Alpha) { var lowerBound = Alpha < 0 ? 0 : Alpha; this.alpha = lowerBound > 1 ? 1 : lowerBound; if(flixel_FlxG.renderBlit) { this._flashBitmap.set_alpha(Alpha); } else { this.canvas.set_alpha(Alpha); } return Alpha; } ,set_angle: function(Angle) { this.angle = Angle; this.flashSprite.set_rotation(Angle); return Angle; } ,set_color: function(Color) { this.color = Color; var colorTransform; if(flixel_FlxG.renderBlit) { if(this._flashBitmap == null) { return Color; } colorTransform = this._flashBitmap.get_transform().get_colorTransform(); } else { colorTransform = this.canvas.get_transform().get_colorTransform(); } colorTransform.redMultiplier = (this.color >> 16 & 255) / 255; colorTransform.greenMultiplier = (this.color >> 8 & 255) / 255; colorTransform.blueMultiplier = (this.color & 255) / 255; if(flixel_FlxG.renderBlit) { this._flashBitmap.get_transform().set_colorTransform(colorTransform); } else { this.canvas.get_transform().set_colorTransform(colorTransform); } return Color; } ,set_antialiasing: function(Antialiasing) { this.antialiasing = Antialiasing; if(flixel_FlxG.renderBlit) { this._flashBitmap.smoothing = Antialiasing; } return Antialiasing; } ,set_x: function(x) { this.x = x; this.updateFlashSpritePosition(); return x; } ,set_y: function(y) { this.y = y; this.updateFlashSpritePosition(); return y; } ,set_visible: function(visible) { if(this.flashSprite != null) { this.flashSprite.set_visible(visible); } return this.visible = visible; } ,calcOffsetX: function() { this.viewMarginX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX; } ,calcOffsetY: function() { this.viewMarginY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY; } ,calcMarginX: function() { this.viewMarginX = 0.5 * this.width * (this.scaleX - this.initialZoom) / this.scaleX; } ,calcMarginY: function() { this.viewMarginY = 0.5 * this.height * (this.scaleY - this.initialZoom) / this.scaleY; } ,get_viewMarginLeft: function() { return this.viewMarginX; } ,get_viewMarginTop: function() { return this.viewMarginY; } ,get_viewMarginRight: function() { return this.width - this.viewMarginX; } ,get_viewMarginBottom: function() { return this.height - this.viewMarginY; } ,get_viewWidth: function() { return this.width - this.viewMarginX * 2; } ,get_viewHeight: function() { return this.height - this.viewMarginY * 2; } ,get_viewX: function() { return this.scroll.x + this.viewMarginX; } ,get_viewY: function() { return this.scroll.y + this.viewMarginY; } ,get_viewLeft: function() { return this.scroll.x + this.viewMarginX; } ,get_viewTop: function() { return this.scroll.y + this.viewMarginY; } ,get_viewRight: function() { return this.scroll.x + (this.width - this.viewMarginX); } ,get_viewBottom: function() { return this.scroll.y + (this.height - this.viewMarginY); } ,get_viewOffsetX: function() { return this.viewMarginX; } ,set_viewOffsetX: function(value) { return this.viewMarginX = value; } ,get_viewOffsetY: function() { return this.viewMarginY; } ,set_viewOffsetY: function(value) { return this.viewMarginY = value; } ,get_viewOffsetWidth: function() { return this.width - this.viewMarginX; } ,get_viewOffsetHeight: function() { return this.height - this.viewMarginY; } ,get__filters: function() { return this.filters; } ,set__filters: function(Value) { return this.filters = Value; } ,get_camera: function() { throw haxe_Exception.thrown("don't reference camera.camera"); } ,set_camera: function(value) { throw haxe_Exception.thrown("don't reference camera.camera"); } ,get_cameras: function() { throw haxe_Exception.thrown("don't reference camera.cameras"); } ,set_cameras: function(value) { throw haxe_Exception.thrown("don't reference camera.cameras"); } ,__class__: flixel_FlxCamera ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set__filters:"set__filters",get__filters:"get__filters",set_antialiasing:"set_antialiasing",set_color:"set_color",set_angle:"set_angle",set_alpha:"set_alpha",get_viewBottom:"get_viewBottom",get_viewRight:"get_viewRight",get_viewTop:"get_viewTop",get_viewLeft:"get_viewLeft",get_viewY:"get_viewY",get_viewX:"get_viewX",get_viewHeight:"get_viewHeight",get_viewWidth:"get_viewWidth",get_viewMarginBottom:"get_viewMarginBottom",get_viewMarginRight:"get_viewMarginRight",get_viewMarginTop:"get_viewMarginTop",get_viewMarginLeft:"get_viewMarginLeft",get_viewOffsetHeight:"get_viewOffsetHeight",get_viewOffsetWidth:"get_viewOffsetWidth",set_viewOffsetY:"set_viewOffsetY",get_viewOffsetY:"get_viewOffsetY",set_viewOffsetX:"set_viewOffsetX",get_viewOffsetX:"get_viewOffsetX",set_zoom:"set_zoom",set_height:"set_height",set_width:"set_width",set_y:"set_y",set_x:"set_x"}) }); var flixel_FlxCameraFollowStyle = $hxEnums["flixel.FlxCameraFollowStyle"] = { __ename__:"flixel.FlxCameraFollowStyle",__constructs__:null ,LOCKON: {_hx_name:"LOCKON",_hx_index:0,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr} ,PLATFORMER: {_hx_name:"PLATFORMER",_hx_index:1,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr} ,TOPDOWN: {_hx_name:"TOPDOWN",_hx_index:2,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr} ,TOPDOWN_TIGHT: {_hx_name:"TOPDOWN_TIGHT",_hx_index:3,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr} ,SCREEN_BY_SCREEN: {_hx_name:"SCREEN_BY_SCREEN",_hx_index:4,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr} ,NO_DEAD_ZONE: {_hx_name:"NO_DEAD_ZONE",_hx_index:5,__enum__:"flixel.FlxCameraFollowStyle",toString:$estr} }; flixel_FlxCameraFollowStyle.__constructs__ = [flixel_FlxCameraFollowStyle.LOCKON,flixel_FlxCameraFollowStyle.PLATFORMER,flixel_FlxCameraFollowStyle.TOPDOWN,flixel_FlxCameraFollowStyle.TOPDOWN_TIGHT,flixel_FlxCameraFollowStyle.SCREEN_BY_SCREEN,flixel_FlxCameraFollowStyle.NO_DEAD_ZONE]; flixel_FlxCameraFollowStyle.__empty_constructs__ = [flixel_FlxCameraFollowStyle.LOCKON,flixel_FlxCameraFollowStyle.PLATFORMER,flixel_FlxCameraFollowStyle.TOPDOWN,flixel_FlxCameraFollowStyle.TOPDOWN_TIGHT,flixel_FlxCameraFollowStyle.SCREEN_BY_SCREEN,flixel_FlxCameraFollowStyle.NO_DEAD_ZONE]; var flixel_system_FlxVersion = function(Major,Minor,Patch) { this.major = Major; this.minor = Minor; this.patch = Patch; }; $hxClasses["flixel.system.FlxVersion"] = flixel_system_FlxVersion; flixel_system_FlxVersion.__name__ = "flixel.system.FlxVersion"; flixel_system_FlxVersion.prototype = { major: null ,minor: null ,patch: null ,toString: function() { var sha = flixel_system_FlxVersion.sha; if(sha != "") { sha = "@" + sha.substring(0,7); } return "HaxeFlixel " + this.major + "." + this.minor + "." + this.patch + sha; } ,__class__: flixel_system_FlxVersion }; var flixel_system_frontEnds_BitmapFrontEnd = function() { this._lastUniqueKeyIndex = 0; this.reset(); }; $hxClasses["flixel.system.frontEnds.BitmapFrontEnd"] = flixel_system_frontEnds_BitmapFrontEnd; flixel_system_frontEnds_BitmapFrontEnd.__name__ = "flixel.system.frontEnds.BitmapFrontEnd"; flixel_system_frontEnds_BitmapFrontEnd.prototype = { _cache: null ,_whitePixel: null ,_lastUniqueKeyIndex: null ,onAssetsReload: function(_) { var h = this._cache.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var obj = this._cache.h[key]; if(obj != null && (obj.assetsClass != null || obj.assetsKey != null)) { obj.onAssetsReload(); } } } ,onContext: function() { var h = this._cache.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var obj = this._cache.h[key]; if(obj != null && obj.isDumped) { obj.onContext(); } } } ,dumpCache: function() { } ,undumpCache: function() { } ,checkCache: function(Key) { return this._cache.h[Key] != null; } ,create: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } return flixel_graphics_FlxGraphic.fromRectangle(Width,Height,Color,Unique,Key); } ,add: function(Graphic,Unique,Key) { if(Unique == null) { Unique = false; } if(((Graphic) instanceof flixel_graphics_FlxGraphic)) { return flixel_graphics_FlxGraphic.fromGraphic(Graphic,Unique,Key); } else if(((Graphic) instanceof openfl_display_BitmapData)) { return flixel_graphics_FlxGraphic.fromBitmapData(Graphic,Unique,Key); } return flixel_graphics_FlxGraphic.fromAssetKey(Std.string(Graphic),Unique,Key); } ,addGraphic: function(graphic) { this._cache.h[graphic.key] = graphic; return graphic; } ,get: function(key) { return this._cache.h[key]; } ,findKeyForBitmap: function(bmd) { var h = this._cache.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var obj = this._cache.h[key]; if(obj != null && obj.bitmap == bmd) { return key; } } return null; } ,getKeyForClass: function(source) { return source.__name__; } ,generateKey: function(systemKey,userKey,unique) { if(unique == null) { unique = false; } var key = userKey; if(key == null) { key = systemKey; } if(unique || key == null) { key = this.getUniqueKey(key); } return key; } ,getUniqueKey: function(baseKey) { if(baseKey == null) { baseKey = "pixels"; } if(this._cache.h[baseKey] == null) { return baseKey; } var i = this._lastUniqueKeyIndex; var uniqueKey; do { ++i; uniqueKey = baseKey + i; } while(this._cache.h[uniqueKey] != null); this._lastUniqueKeyIndex = i; return uniqueKey; } ,getKeyWithSpacesAndBorders: function(baseKey,frameSize,frameSpacing,frameBorder,region) { var result = baseKey; if(region != null) { result += "_Region:" + region.x + "_" + region.y + "_" + region.width + "_" + region.height; } if(frameSize != null) { result += "_FrameSize:" + frameSize.x + "_" + frameSize.y; } if(frameSpacing != null) { result += "_Spaces:" + frameSpacing.x + "_" + frameSpacing.y; } if(frameBorder != null) { result += "_Border:" + frameBorder.x + "_" + frameBorder.y; } return result; } ,remove: function(graphic) { if(graphic != null) { var key = graphic.key; if(key != null) { openfl_utils_Assets.cache.removeBitmapData(key); var _this = this._cache; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } if(graphic.shader != null) { graphic.destroy(); } } } ,removeByKey: function(key) { if(key != null) { var obj = this._cache.h[key]; if(key != null) { openfl_utils_Assets.cache.removeBitmapData(key); var _this = this._cache; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } if(obj != null) { obj.destroy(); } } } ,removeIfNoUse: function(graphic) { if(graphic != null && graphic.useCount == 0 && !graphic.persist) { this.remove(graphic); } } ,clearCache: function() { if(this._cache == null) { this._cache = new haxe_ds_StringMap(); return; } var h = this._cache.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var obj = this._cache.h[key]; if(obj != null && !obj.persist && obj.useCount <= 0) { if(key != null) { openfl_utils_Assets.cache.removeBitmapData(key); var _this = this._cache; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } obj.destroy(); } } } ,removeKey: function(key) { if(key != null) { openfl_utils_Assets.cache.removeBitmapData(key); var _this = this._cache; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } ,reset: function() { if(this._cache == null) { this._cache = new haxe_ds_StringMap(); return; } var h = this._cache.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var obj = this._cache.h[key]; if(key != null) { openfl_utils_Assets.cache.removeBitmapData(key); var _this = this._cache; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } if(obj != null) { obj.destroy(); } } } ,clearUnused: function() { var h = this._cache.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var obj = this._cache.h[key]; if(obj != null && obj.useCount <= 0 && !obj.persist && obj.destroyOnNoUse) { this.removeByKey(key); } } } ,get_maxTextureSize: function() { return lime_graphics_opengl_GL.context.getParameter(3379); } ,get_whitePixel: function() { if(this._whitePixel == null) { var bd = new openfl_display_BitmapData(10,10,true,-1); var graphic = flixel_FlxG.bitmap.add(bd,true,"whitePixels"); graphic.persist = true; this._whitePixel = graphic.get_imageFrame().get_frame(); } return this._whitePixel; } ,__class__: flixel_system_frontEnds_BitmapFrontEnd ,__properties__: {get_whitePixel:"get_whitePixel",get_maxTextureSize:"get_maxTextureSize"} }; var flixel_system_frontEnds_BitmapLogFrontEnd = function() { }; $hxClasses["flixel.system.frontEnds.BitmapLogFrontEnd"] = flixel_system_frontEnds_BitmapLogFrontEnd; flixel_system_frontEnds_BitmapLogFrontEnd.__name__ = "flixel.system.frontEnds.BitmapLogFrontEnd"; flixel_system_frontEnds_BitmapLogFrontEnd.prototype = { add: function(Data,Name) { if(Name == null) { Name = ""; } } ,clear: function() { } ,clearAt: function(Index) { if(Index == null) { Index = -1; } } ,viewCache: function() { } ,__class__: flixel_system_frontEnds_BitmapLogFrontEnd }; var flixel_system_frontEnds_CameraFrontEnd = function() { this._cameraRect = new openfl_geom_Rectangle(); this.useBufferLocking = false; this.cameraResized = new flixel_util__$FlxSignal_FlxSignal1(); this.cameraRemoved = new flixel_util__$FlxSignal_FlxSignal1(); this.cameraAdded = new flixel_util__$FlxSignal_FlxSignal1(); this.defaults = []; this.list = []; flixel_FlxCamera._defaultCameras = this.defaults; }; $hxClasses["flixel.system.frontEnds.CameraFrontEnd"] = flixel_system_frontEnds_CameraFrontEnd; flixel_system_frontEnds_CameraFrontEnd.__name__ = "flixel.system.frontEnds.CameraFrontEnd"; flixel_system_frontEnds_CameraFrontEnd.prototype = { list: null ,defaults: null ,cameraAdded: null ,cameraRemoved: null ,cameraResized: null ,useBufferLocking: null ,_cameraRect: null ,add: function(NewCamera,DefaultDrawTarget) { if(DefaultDrawTarget == null) { DefaultDrawTarget = true; } flixel_FlxG.game.addChildAt(NewCamera.flashSprite,flixel_FlxG.game.getChildIndex(flixel_FlxG.game._inputContainer)); this.list.push(NewCamera); if(DefaultDrawTarget) { this.defaults.push(NewCamera); } NewCamera.ID = this.list.length - 1; this.cameraAdded.dispatch(NewCamera); return NewCamera; } ,remove: function(Camera,Destroy) { if(Destroy == null) { Destroy = true; } var index = this.list.indexOf(Camera); if(Camera != null && index != -1) { flixel_FlxG.game.removeChild(Camera.flashSprite); this.list.splice(index,1); HxOverrides.remove(this.defaults,Camera); } else { flixel_FlxG.log.advanced("FlxG.cameras.remove(): The camera you attempted to remove is not a part of the game.",flixel_system_debug_log_LogStyle.WARNING,true); return; } if(flixel_FlxG.renderTile) { var _g = 0; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; this.list[i].ID = i; } } if(Destroy) { Camera.destroy(); } this.cameraRemoved.dispatch(Camera); } ,setDefaultDrawTarget: function(camera,value) { if(this.list.indexOf(camera) == -1) { flixel_FlxG.log.advanced("FlxG.cameras.setDefaultDrawTarget(): The specified camera is not a part of the game.",flixel_system_debug_log_LogStyle.WARNING,true); return; } var index = this.defaults.indexOf(camera); if(value && index == -1) { this.defaults.push(camera); } else if(!value) { this.defaults.splice(index,1); } } ,reset: function(NewCamera) { while(this.list.length > 0) this.remove(this.list[0]); if(NewCamera == null) { NewCamera = new flixel_FlxCamera(0,0,flixel_FlxG.width,flixel_FlxG.height); } flixel_FlxG.camera = this.add(NewCamera); NewCamera.ID = 0; flixel_FlxCamera._defaultCameras = this.defaults; } ,flash: function(Color,Duration,OnComplete,Force) { if(Force == null) { Force = false; } if(Duration == null) { Duration = 1; } if(Color == null) { Color = -1; } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; camera.flash(Color,Duration,OnComplete,Force); } } ,fade: function(Color,Duration,FadeIn,OnComplete,Force) { if(Force == null) { Force = false; } if(FadeIn == null) { FadeIn = false; } if(Duration == null) { Duration = 1; } if(Color == null) { Color = -16777216; } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; camera.fade(Color,Duration,FadeIn,OnComplete,Force); } } ,shake: function(Intensity,Duration,OnComplete,Force,Axes) { if(Force == null) { Force = true; } if(Duration == null) { Duration = 0.5; } if(Intensity == null) { Intensity = 0.05; } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; camera.shake(Intensity,Duration,OnComplete,Force,Axes); } } ,lock: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera == null || !camera.exists || !camera.visible) { continue; } if(flixel_FlxG.renderBlit) { camera.checkResize(); if(this.useBufferLocking) { camera.buffer.lock(); } } if(flixel_FlxG.renderTile) { camera.clearDrawStack(); camera.canvas.get_graphics().clear(); } if(flixel_FlxG.renderBlit) { camera.fill(camera.bgColor,camera.useBgAlphaBlending); camera.screen.dirty = true; } else { camera.fill(camera.bgColor & 16777215,camera.useBgAlphaBlending,(camera.bgColor >> 24 & 255) / 255); } } } ,render: function() { if(flixel_FlxG.renderTile) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera != null && camera.exists && camera.visible) { camera.render(); } } } } ,unlock: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera == null || !camera.exists || !camera.visible) { continue; } camera.drawFX(); if(flixel_FlxG.renderBlit) { if(this.useBufferLocking) { camera.buffer.unlock(); } camera.screen.dirty = true; } } } ,update: function(elapsed) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera != null && camera.exists && camera.active) { camera.update(elapsed); } } } ,resize: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; camera.onResize(); } } ,get_bgColor: function() { if(flixel_FlxG.camera == null) { return -16777216; } else { return flixel_FlxG.camera.bgColor; } } ,set_bgColor: function(Color) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; camera.bgColor = Color; } return Color; } ,__class__: flixel_system_frontEnds_CameraFrontEnd ,__properties__: {set_bgColor:"set_bgColor",get_bgColor:"get_bgColor"} }; var flixel_system_frontEnds_ConsoleFrontEnd = function() { this.stepAfterCommand = true; this.autoPause = true; }; $hxClasses["flixel.system.frontEnds.ConsoleFrontEnd"] = flixel_system_frontEnds_ConsoleFrontEnd; flixel_system_frontEnds_ConsoleFrontEnd.__name__ = "flixel.system.frontEnds.ConsoleFrontEnd"; flixel_system_frontEnds_ConsoleFrontEnd.prototype = { autoPause: null ,stepAfterCommand: null ,registerFunction: function(alias,func) { } ,registerObject: function(alias,object) { } ,removeObject: function(object) { } ,removeFunction: function(func) { } ,removeByAlias: function(alias) { } ,registerClass: function(c) { } ,removeClass: function(c) { } ,registerEnum: function(e) { } ,removeEnum: function(e) { } ,__class__: flixel_system_frontEnds_ConsoleFrontEnd }; var flixel_system_frontEnds_DebuggerFrontEnd = function() { this.visible = false; this.visibilityChanged = new flixel_util__$FlxSignal_FlxSignal0(); this.drawDebugChanged = new flixel_util__$FlxSignal_FlxSignal0(); this.drawDebug = false; this.toggleKeys = [113,192,220]; this.precision = 3; }; $hxClasses["flixel.system.frontEnds.DebuggerFrontEnd"] = flixel_system_frontEnds_DebuggerFrontEnd; flixel_system_frontEnds_DebuggerFrontEnd.__name__ = "flixel.system.frontEnds.DebuggerFrontEnd"; flixel_system_frontEnds_DebuggerFrontEnd.prototype = { precision: null ,toggleKeys: null ,drawDebug: null ,drawDebugChanged: null ,visibilityChanged: null ,visible: null ,setLayout: function(Layout) { } ,resetLayout: function() { } ,addButton: function(Alignment,Icon,UpHandler,ToggleMode,UpdateLayout) { if(UpdateLayout == null) { UpdateLayout = true; } if(ToggleMode == null) { ToggleMode = false; } return null; } ,track: function(ObjectOrClass,WindowTitle) { return null; } ,addTrackerProfile: function(Profile) { } ,removeButton: function(Button,UpdateLayout) { if(UpdateLayout == null) { UpdateLayout = true; } } ,set_drawDebug: function(Value) { if(this.drawDebug == Value) { return this.drawDebug; } this.drawDebug = Value; return this.drawDebug; } ,set_visible: function(Value) { if(this.visible == Value) { return this.visible; } this.visible = Value; return this.visible; } ,__class__: flixel_system_frontEnds_DebuggerFrontEnd ,__properties__: {set_visible:"set_visible",set_drawDebug:"set_drawDebug"} }; var flixel_system_frontEnds_HTML5FrontEnd = function() { this.browser = this.getBrowser(); this.platform = this.getPlatform(); this.onMobile = this.getOnMobile(); }; $hxClasses["flixel.system.frontEnds.HTML5FrontEnd"] = flixel_system_frontEnds_HTML5FrontEnd; flixel_system_frontEnds_HTML5FrontEnd.__name__ = "flixel.system.frontEnds.HTML5FrontEnd"; flixel_system_frontEnds_HTML5FrontEnd.prototype = { browser: null ,platform: null ,onMobile: null ,browserPosition: null ,getBrowser: function() { if(this.userAgentContains(" OPR/")) { return flixel_system_frontEnds_FlxBrowser.OPERA; } else if(this.userAgentContains("chrome",true)) { return flixel_system_frontEnds_FlxBrowser.CHROME; } else if($global.navigator.appName == "Netscape") { return flixel_system_frontEnds_FlxBrowser.FIREFOX; } else if(document.documentMode) { return flixel_system_frontEnds_FlxBrowser.INTERNET_EXPLORER; } else if(Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor") > 0) { return flixel_system_frontEnds_FlxBrowser.SAFARI; } return flixel_system_frontEnds_FlxBrowser.UNKNOWN; } ,getPlatform: function() { if(this.userAgentContains("Win")) { return flixel_system_frontEnds_FlxPlatform.WINDOWS; } else if(this.userAgentContains("IEMobile")) { return flixel_system_frontEnds_FlxPlatform.WINDOWS_PHONE; } else if(this.userAgentContains("Android")) { return flixel_system_frontEnds_FlxPlatform.ANDROID; } else if(this.userAgentContains("Linux")) { return flixel_system_frontEnds_FlxPlatform.LINUX; } else if(this.userAgentContains("BlackBerry")) { return flixel_system_frontEnds_FlxPlatform.BLACKBERRY; } else if(this.userAgentContains("iPhone")) { return flixel_system_frontEnds_FlxPlatform.IOS(flixel_system_frontEnds_FlxIOSDevice.IPHONE); } else if(this.userAgentContains("iPad")) { return flixel_system_frontEnds_FlxPlatform.IOS(flixel_system_frontEnds_FlxIOSDevice.IPAD); } else if(this.userAgentContains("iPod")) { return flixel_system_frontEnds_FlxPlatform.IOS(flixel_system_frontEnds_FlxIOSDevice.IPOD); } else if(this.userAgentContains("Mac")) { return flixel_system_frontEnds_FlxPlatform.MAC; } else { return flixel_system_frontEnds_FlxPlatform.UNKNOWN; } } ,getOnMobile: function() { var _g = this.platform; switch(_g._hx_index) { case 3:case 4:case 5: return true; case 6: var _g1 = _g.device; return true; default: return false; } } ,userAgentContains: function(substring,toLowerCase) { if(toLowerCase == null) { toLowerCase = false; } var userAgent = $global.navigator.userAgent; if(toLowerCase) { userAgent = userAgent.toLowerCase(); } return userAgent.indexOf(substring) != -1; } ,get_browserPosition: function() { if(this.browserPosition == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.browserPosition = point; } var this1 = this.browserPosition; var x = window.screenX; var y = window.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return this.browserPosition; } ,get_browserWidth: function() { return window.innerWidth; } ,get_browserHeight: function() { return window.innerHeight; } ,__class__: flixel_system_frontEnds_HTML5FrontEnd ,__properties__: {get_browserPosition:"get_browserPosition",get_browserHeight:"get_browserHeight",get_browserWidth:"get_browserWidth"} }; var flixel_system_frontEnds_InputFrontEnd = function() { this.resetOnStateSwitch = true; this.list = []; }; $hxClasses["flixel.system.frontEnds.InputFrontEnd"] = flixel_system_frontEnds_InputFrontEnd; flixel_system_frontEnds_InputFrontEnd.__name__ = "flixel.system.frontEnds.InputFrontEnd"; flixel_system_frontEnds_InputFrontEnd.prototype = { add_flixel_input_actions_FlxActionManager: function(Input) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) { return Input; } } this.list.push(Input); return Input; } ,add_flixel_input_gamepad_FlxGamepadManager: function(Input) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) { return Input; } } this.list.push(Input); return Input; } ,add_flixel_input_touch_FlxTouchManager: function(Input) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) { return Input; } } this.list.push(Input); return Input; } ,add_flixel_input_keyboard_FlxKeyboard: function(Input) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) { return Input; } } this.list.push(Input); return Input; } ,replace_flixel_input_mouse_FlxMouse: function(Old,New) { var i = 0; var success = false; var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(input == Old) { this.list[i] = New; success = true; break; } ++i; } if(success) { return New; } return null; } ,add_flixel_input_mouse_FlxMouse: function(Input) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(flixel_util_FlxStringUtil.getClassName(Input,true) == flixel_util_FlxStringUtil.getClassName(input,true)) { return Input; } } this.list.push(Input); return Input; } ,list: null ,resetOnStateSwitch: null ,reset: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.reset(); } } ,update: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.update(); } } ,onFocus: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.onFocus(); } } ,onFocusLost: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.onFocusLost(); } } ,onStateSwitch: function() { if(this.resetOnStateSwitch) { this.reset(); } } ,destroy: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input = flixel_util_FlxDestroyUtil.destroy(input); } } ,__class__: flixel_system_frontEnds_InputFrontEnd }; var flixel_system_frontEnds_LogFrontEnd = function() { this.redirectTraces = false; this._standardTraceFunction = haxe_Log.trace; }; $hxClasses["flixel.system.frontEnds.LogFrontEnd"] = flixel_system_frontEnds_LogFrontEnd; flixel_system_frontEnds_LogFrontEnd.__name__ = "flixel.system.frontEnds.LogFrontEnd"; flixel_system_frontEnds_LogFrontEnd.prototype = { redirectTraces: null ,_standardTraceFunction: null ,add: function(data) { this.advanced(data,flixel_system_debug_log_LogStyle.NORMAL); } ,warn: function(data) { this.advanced(data,flixel_system_debug_log_LogStyle.WARNING,true); } ,error: function(data) { this.advanced(data,flixel_system_debug_log_LogStyle.ERROR,true); } ,notice: function(data) { this.advanced(data,flixel_system_debug_log_LogStyle.NOTICE); } ,advanced: function(data,style,fireOnce) { if(fireOnce == null) { fireOnce = false; } if(style == null) { style = flixel_system_debug_log_LogStyle.NORMAL; } if(!((data) instanceof Array)) { data = [data]; } if(style.throwException) { throw haxe_Exception.thrown(style.toLogString(data)); } } ,clear: function() { } ,set_redirectTraces: function(redirect) { haxe_Log.trace = redirect ? $bind(this,this.processTraceData) : this._standardTraceFunction; return this.redirectTraces = redirect; } ,processTraceData: function(data,info) { var paramArray = [data]; if(info.customParams != null) { var _g = 0; var _g1 = info.customParams; while(_g < _g1.length) { var i = _g1[_g]; ++_g; paramArray.push(i); } } this.advanced(paramArray,flixel_system_debug_log_LogStyle.NORMAL); } ,__class__: flixel_system_frontEnds_LogFrontEnd ,__properties__: {set_redirectTraces:"set_redirectTraces"} }; var haxe_Log = function() { }; $hxClasses["haxe.Log"] = haxe_Log; haxe_Log.__name__ = "haxe.Log"; haxe_Log.formatOutput = function(v,infos) { var str = Std.string(v); if(infos == null) { return str; } var pstr = infos.fileName + ":" + infos.lineNumber; if(infos.customParams != null) { var _g = 0; var _g1 = infos.customParams; while(_g < _g1.length) { var v = _g1[_g]; ++_g; str += ", " + Std.string(v); } } return pstr + ": " + str; }; haxe_Log.trace = function(v,infos) { var str = haxe_Log.formatOutput(v,infos); if(typeof(console) != "undefined" && console.log != null) { console.log(str); } }; var js_Boot = function() { }; $hxClasses["js.Boot"] = js_Boot; js_Boot.__name__ = "js.Boot"; js_Boot.isClass = function(o) { return o.__name__; }; js_Boot.isInterface = function(o) { return o.__isInterface__; }; js_Boot.isEnum = function(e) { return e.__ename__; }; js_Boot.getClass = function(o) { if(o == null) { return null; } else if(((o) instanceof Array)) { 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 "function": return ""; case "object": if(o.__enum__) { var e = $hxEnums[o.__enum__]; var con = e.__constructs__[o._hx_index]; var n = con._hx_name; if(con.__params__) { s = s + "\t"; return n + "(" + ((function($this) { var $r; var _g = []; { var _g1 = 0; var _g2 = con.__params__; while(true) { if(!(_g1 < _g2.length)) { break; } var p = _g2[_g1]; _g1 = _g1 + 1; _g.push(js_Boot.__string_rec(o[p],s)); } } $r = _g; return $r; }(this))).join(",") + ")"; } else { return n; } } if(((o) instanceof Array)) { var str = "["; s += "\t"; var _g = 0; var _g1 = o.length; while(_g < _g1) { var i = _g++; str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s); } str += "]"; return str; } var tostr; try { tostr = o.toString; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return "???"; } if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") { var s2 = o.toString(); if(s2 != "[object Object]") { return s2; } } var str = "{\n"; s += "\t"; var hasp = o.hasOwnProperty != null; var k = null; for( 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 "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 _g = 0; var _g1 = intf.length; while(_g < _g1) { var i = _g++; 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 Array: return ((o) instanceof Array); case Bool: return typeof(o) == "boolean"; case Dynamic: return o != null; case Float: return typeof(o) == "number"; case Int: if(typeof(o) == "number") { return ((o | 0) === o); } else { return false; } break; case String: return typeof(o) == "string"; default: if(o != null) { if(typeof(cl) == "function") { if(js_Boot.__downcastCheck(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 : false) { return true; } if(cl == Enum ? o.__ename__ != null : false) { return true; } return o.__enum__ != null ? $hxEnums[o.__enum__] == cl : false; } }; js_Boot.__downcastCheck = function(o,cl) { if(!((o) instanceof cl)) { if(cl.__isInterface__) { return js_Boot.__interfLoop(js_Boot.getClass(o),cl); } else { return false; } } else { return true; } }; js_Boot.__implements = function(o,iface) { return js_Boot.__interfLoop(js_Boot.getClass(o),iface); }; js_Boot.__cast = function(o,t) { if(o == null || js_Boot.__instanceof(o,t)) { return o; } else { throw haxe_Exception.thrown("Cannot cast " + Std.string(o) + " to " + Std.string(t)); } }; js_Boot.__toStr = null; 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 flixel_math_FlxRandom = function(InitialSeed) { this.internalSeed = 1; this._floatNormalRho = 0; this._twoPI = Math.PI * 2; this._floatNormalRand2 = 0; this._floatNormalRand1 = 0; this._hasFloatNormalSpare = false; this.initialSeed = 1; if(InitialSeed != null) { var lowerBound = InitialSeed < 1 ? 1 : InitialSeed; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0; } else { var Value = Math.random() * 2147483647 | 0; var lowerBound = Value < 1 ? 1 : Value; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0; } }; $hxClasses["flixel.math.FlxRandom"] = flixel_math_FlxRandom; flixel_math_FlxRandom.__name__ = "flixel.math.FlxRandom"; flixel_math_FlxRandom.rangeBound = function(Value) { var lowerBound = Value < 1 ? 1 : Value; return (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; }; flixel_math_FlxRandom.prototype = { getObject_funkin_ui_freeplay_SongMenuItem: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,getObject_funkin_play_notes_NoteHoldCover: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,getObject_funkin_play_notes_NoteSplash: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,getObject_Array_String: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,shuffle_funkin_ui_transition_StickerSprite: function(array) { var maxValidIndex = array.length - 1; var _g = 0; var _g1 = maxValidIndex; while(_g < _g1) { var i = _g++; var j = this.int(i,maxValidIndex); var tmp = array[i]; array[i] = array[j]; array[j] = tmp; } } ,getObject_String: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,getObject_flixel_sound_FlxSound: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,getObject_flixel_group_FlxTypedGroup_T: function(Objects,WeightsArray,StartIndex,EndIndex) { if(StartIndex == null) { StartIndex = 0; } var selected = null; if(Objects.length != 0) { if(WeightsArray == null) { var _g = []; var _g1 = 0; var _g2 = Objects.length; while(_g1 < _g2) { var i = _g1++; _g.push(1); } WeightsArray = _g; } if(EndIndex == null) { EndIndex = Objects.length - 1; } var Max = Objects.length - 1; var lowerBound = StartIndex < 0 ? 0 : StartIndex; StartIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = Objects.length - 1; var lowerBound = EndIndex < 0 ? 0 : EndIndex; EndIndex = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; if(EndIndex < StartIndex) { StartIndex += EndIndex; EndIndex = StartIndex - EndIndex; StartIndex -= EndIndex; } if(EndIndex > WeightsArray.length - 1) { EndIndex = WeightsArray.length - 1; } var _g = []; var _g1 = StartIndex; var _g2 = EndIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(WeightsArray[i]); } flixel_math_FlxRandom._arrayFloatHelper = _g; selected = Objects[StartIndex + this.weightedPick(flixel_math_FlxRandom._arrayFloatHelper)]; } return selected; } ,initialSeed: null ,resetInitialSeed: function() { var Value = Math.random() * 2147483647 | 0; var lowerBound = Value < 1 ? 1 : Value; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; return this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0; } ,int: function(Min,Max,Excludes) { if(Max == null) { Max = 2147483647; } if(Min == null) { Min = 0; } if(Min == 0 && Max == 2147483647 && Excludes == null) { return (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) | 0; } else if(Min == Max) { return Min; } else { if(Min > Max) { Min += Max; Max = Min - Max; Min -= Max; } if(Excludes == null) { return Math.floor(Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min + 1)); } else { var result = 0; do result = Math.floor(Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min + 1)); while(Excludes.indexOf(result) >= 0); return result; } } } ,float: function(Min,Max,Excludes) { if(Max == null) { Max = 1; } if(Min == null) { Min = 0; } var result = 0; if(Min == 0 && Max == 1 && Excludes == null) { return (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647; } else if(Min == Max) { result = Min; } else { if(Min > Max) { Min += Max; Max = Min - Max; Min -= Max; } if(Excludes == null) { result = Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min); } else { do result = Min + (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647 * (Max - Min); while(Excludes.indexOf(result) >= 0); } } return result; } ,_hasFloatNormalSpare: null ,_floatNormalRand1: null ,_floatNormalRand2: null ,_twoPI: null ,_floatNormalRho: null ,floatNormal: function(Mean,StdDev) { if(StdDev == null) { StdDev = 1; } if(Mean == null) { Mean = 0; } if(this._hasFloatNormalSpare) { this._hasFloatNormalSpare = false; var scale = StdDev * this._floatNormalRho; return Mean + scale * this._floatNormalRand2; } this._hasFloatNormalSpare = true; var theta = this._twoPI * ((this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647); this._floatNormalRho = Math.sqrt(-2 * Math.log(1 - (this.internalSeed = this.internalSeed * 48271.0 % 2147483647) / 2147483647)); var scale = StdDev * this._floatNormalRho; this._floatNormalRand1 = Math.cos(theta); this._floatNormalRand2 = Math.sin(theta); return Mean + scale * this._floatNormalRand1; } ,bool: function(Chance) { if(Chance == null) { Chance = 50; } return this.float(0,100) < Chance; } ,sign: function(Chance) { if(Chance == null) { Chance = 50; } var Chance1 = Chance; if(Chance1 == null) { Chance1 = 50; } if(this.float(0,100) < Chance1) { return 1; } else { return -1; } } ,weightedPick: function(WeightsArray) { var totalWeight = 0; var pick = 0; var _g = 0; while(_g < WeightsArray.length) { var i = WeightsArray[_g]; ++_g; totalWeight += i; } totalWeight = this.float(0,totalWeight); var _g = 0; var _g1 = WeightsArray.length; while(_g < _g1) { var i = _g++; if(totalWeight < WeightsArray[i]) { pick = i; break; } totalWeight -= WeightsArray[i]; } return pick; } ,color: function(Min,Max,Alpha,GreyScale) { if(GreyScale == null) { GreyScale = false; } var red; var green; var blue; var alpha; if(Min == null && Max == null) { red = this.int(0,255); green = this.int(0,255); blue = this.int(0,255); alpha = Alpha == null ? this.int(0,255) : Alpha; } else if(Max == null) { red = this.int(Min >> 16 & 255,255); green = GreyScale ? red : this.int(Min >> 8 & 255,255); blue = GreyScale ? red : this.int(Min & 255,255); alpha = Alpha == null ? this.int(Min >> 24 & 255,255) : Alpha; } else if(Min == null) { red = this.int(0,Max >> 16 & 255); green = GreyScale ? red : this.int(0,Max >> 8 & 255); blue = GreyScale ? red : this.int(0,Max & 255); alpha = Alpha == null ? this.int(0,Max >> 24 & 255) : Alpha; } else { red = this.int(Min >> 16 & 255,Max >> 16 & 255); green = GreyScale ? red : this.int(Min >> 8 & 255,Max >> 8 & 255); blue = GreyScale ? red : this.int(Min & 255,Max & 255); alpha = Alpha == null ? this.int(Min >> 24 & 255,Max >> 24 & 255) : Alpha; } var Alpha = alpha; if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (red > 255 ? 255 : red < 0 ? 0 : red) << 16; color &= -65281; color |= (green > 255 ? 255 : green < 0 ? 0 : green) << 8; color &= -256; color |= blue > 255 ? 255 : blue < 0 ? 0 : blue; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; return color; } ,generate: function() { return this.internalSeed = this.internalSeed * 48271.0 % 2147483647; } ,internalSeed: null ,set_initialSeed: function(NewSeed) { var lowerBound = NewSeed < 1 ? 1 : NewSeed; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; return this.initialSeed = (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0; } ,get_currentSeed: function() { return this.internalSeed | 0; } ,set_currentSeed: function(NewSeed) { var lowerBound = NewSeed < 1 ? 1 : NewSeed; return (this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0; } ,__class__: flixel_math_FlxRandom ,__properties__: {set_currentSeed:"set_currentSeed",get_currentSeed:"get_currentSeed",set_initialSeed:"set_initialSeed"} }; var flixel_util_FlxSave = function() { this.status = flixel_util_FlxSaveStatus.EMPTY; }; $hxClasses["flixel.util.FlxSave"] = flixel_util_FlxSave; flixel_util_FlxSave.__name__ = "flixel.util.FlxSave"; flixel_util_FlxSave.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util_FlxSave.hasInvalidChars = function(str) { return true; }; flixel_util_FlxSave.validate = function(str) { return str; }; flixel_util_FlxSave.validateAndWarn = function(str,fieldId) { var newStr = flixel_util_FlxSave.validate(str); return newStr; }; flixel_util_FlxSave.prototype = { data: null ,status: null ,_sharedObject: null ,destroy: function() { this._sharedObject = null; this.status = flixel_util_FlxSaveStatus.EMPTY; this.data = null; } ,bind: function(name,path) { this.destroy(); name = flixel_util_FlxSave.validateAndWarn(name,"name"); if(path != null) { path = flixel_util_FlxSave.validateAndWarn(path,"path"); } try { this._sharedObject = flixel_util__$FlxSave_FlxSharedObject.getLocal(name,path); this.status = flixel_util_FlxSaveStatus.BOUND(name,path); } catch( _g ) { var _g1 = haxe_Exception.caught(_g); if(((_g1) instanceof openfl_errors_Error)) { var e = _g1; flixel_FlxG.log.advanced("Error:" + e.get_message() + " name:\"" + name + "\", path:\"" + path + "\".",flixel_system_debug_log_LogStyle.ERROR,true); this.destroy(); return false; } else { throw _g; } } this.data = this._sharedObject.data; return true; } ,mergeDataFrom: function(name,path,overwrite,eraseSave,minFileSize) { if(minFileSize == null) { minFileSize = 0; } if(eraseSave == null) { eraseSave = true; } if(overwrite == null) { overwrite = false; } if(!this.checkStatus()) { return false; } var oldSave = new flixel_util_FlxSave(); if(oldSave.bind(name,path)) { var success = this.mergeData(oldSave.data,overwrite,minFileSize); if(eraseSave) { oldSave.erase(); } oldSave.destroy(); return success; } oldSave.destroy(); return false; } ,mergeData: function(sourceData,overwrite,minFileSize) { if(minFileSize == null) { minFileSize = 0; } if(overwrite == null) { overwrite = false; } var hasAnyField = false; var _g = 0; var _g1 = Reflect.fields(sourceData); while(_g < _g1.length) { var field = _g1[_g]; ++_g; hasAnyField = true; if(overwrite || !Object.prototype.hasOwnProperty.call(this.data,field)) { this.data[field] = Reflect.field(sourceData,field); } } if(hasAnyField) { return this.flush(minFileSize); } return true; } ,close: function(minFileSize) { if(minFileSize == null) { minFileSize = 0; } var success = this.flush(minFileSize); this.destroy(); return success; } ,flush: function(minFileSize) { if(minFileSize == null) { minFileSize = 0; } if(!this.checkStatus()) { return false; } try { var result = this._sharedObject.flush(minFileSize); if(result != 0) { this.status = flixel_util_FlxSaveStatus.ERROR("FlxSave is requesting extra storage space."); } } catch( _g ) { if(((haxe_Exception.caught(_g)) instanceof openfl_errors_Error)) { this.status = flixel_util_FlxSaveStatus.ERROR("There was an problem flushing the save data."); } else { throw _g; } } this.checkStatus(); var _g = this.status; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; return true; } else { return false; } } ,erase: function() { if(!this.checkStatus()) { return false; } this._sharedObject.clear(); this.data = { }; return true; } ,checkStatus: function() { var _g = this.status; switch(_g._hx_index) { case 0: flixel_FlxG.log.advanced("You must call FlxSave.bind() before you can read or write data.",flixel_system_debug_log_LogStyle.WARNING,true); break; case 2: var msg = _g.msg; flixel_FlxG.log.advanced(msg,flixel_system_debug_log_LogStyle.ERROR,true); break; default: return true; } return false; } ,get_name: function() { var _g = this.status; if(_g._hx_index == 1) { var _g1 = _g.path; var n = _g.name; return n; } else { return null; } } ,get_path: function() { var _g = this.status; if(_g._hx_index == 1) { var _g1 = _g.name; var p = _g.path; return p; } else { return null; } } ,get_isBound: function() { var _g = this.status; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; return true; } else { return false; } } ,isEmpty: function() { if(this.data != null) { return Reflect.fields(this.data).length == 0; } else { return true; } } ,__class__: flixel_util_FlxSave ,__properties__: {get_isBound:"get_isBound",get_path:"get_path",get_name:"get_name"} }; var flixel_system_scaleModes_BaseScaleMode = function() { this.verticalAlign = flixel_util_FlxVerticalAlign.CENTER; this.horizontalAlign = flixel_util_FlxHorizontalAlign.CENTER; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.deviceSize = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.gameSize = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.scale = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; }; $hxClasses["flixel.system.scaleModes.BaseScaleMode"] = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_BaseScaleMode.__name__ = "flixel.system.scaleModes.BaseScaleMode"; flixel_system_scaleModes_BaseScaleMode.prototype = { deviceSize: null ,gameSize: null ,scale: null ,offset: null ,horizontalAlign: null ,verticalAlign: null ,onMeasure: function(Width,Height) { flixel_FlxG.width = flixel_FlxG.initialWidth; flixel_FlxG.height = flixel_FlxG.initialHeight; this.updateGameSize(Width,Height); this.updateDeviceSize(Width,Height); this.updateScaleOffset(); this.updateGamePosition(); } ,updateGameSize: function(Width,Height) { var this1 = this.gameSize; var x = Width; var y = Height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,updateDeviceSize: function(Width,Height) { var this1 = this.deviceSize; var x = Width; var y = Height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,updateScaleOffset: function() { this.scale.set_x(this.gameSize.x / flixel_FlxG.width); this.scale.set_y(this.gameSize.y / flixel_FlxG.height); this.updateOffsetX(); this.updateOffsetY(); } ,updateOffsetX: function() { var this1 = this.offset; var x; switch(this.horizontalAlign._hx_index) { case 0: x = 0; break; case 1: x = Math.ceil((this.deviceSize.x - this.gameSize.x) * 0.5); break; case 2: x = this.deviceSize.x - this.gameSize.x; break; } this1.set_x(x); } ,updateOffsetY: function() { var this1 = this.offset; var y; switch(this.verticalAlign._hx_index) { case 0: y = 0; break; case 1: y = Math.ceil((this.deviceSize.y - this.gameSize.y) * 0.5); break; case 2: y = this.deviceSize.y - this.gameSize.y; break; } this1.set_y(y); } ,updateGamePosition: function() { if(flixel_FlxG.game == null) { return; } flixel_FlxG.game.set_x(this.offset.x); flixel_FlxG.game.set_y(this.offset.y); } ,set_horizontalAlign: function(value) { this.horizontalAlign = value; if(this.offset != null) { this.updateOffsetX(); this.updateGamePosition(); } return value; } ,set_verticalAlign: function(value) { this.verticalAlign = value; if(this.offset != null) { this.updateOffsetY(); this.updateGamePosition(); } return value; } ,__class__: flixel_system_scaleModes_BaseScaleMode ,__properties__: {set_verticalAlign:"set_verticalAlign",set_horizontalAlign:"set_horizontalAlign"} }; var flixel_system_scaleModes_RatioScaleMode = function(fillScreen) { if(fillScreen == null) { fillScreen = false; } flixel_system_scaleModes_BaseScaleMode.call(this); this.fillScreen = fillScreen; }; $hxClasses["flixel.system.scaleModes.RatioScaleMode"] = flixel_system_scaleModes_RatioScaleMode; flixel_system_scaleModes_RatioScaleMode.__name__ = "flixel.system.scaleModes.RatioScaleMode"; flixel_system_scaleModes_RatioScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_RatioScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ fillScreen: null ,updateGameSize: function(Width,Height) { var ratio = flixel_FlxG.width / flixel_FlxG.height; var realRatio = Width / Height; var scaleY = realRatio < ratio; if(this.fillScreen) { scaleY = !scaleY; } if(scaleY) { this.gameSize.set_x(Width); this.gameSize.set_y(Math.floor(this.gameSize.x / ratio)); } else { this.gameSize.set_y(Height); this.gameSize.set_x(Math.floor(this.gameSize.y * ratio)); } } ,__class__: flixel_system_scaleModes_RatioScaleMode }); var flixel_system_frontEnds_SignalFrontEnd = function() { this.focusLost = new flixel_util__$FlxSignal_FlxSignal0(); this.focusGained = new flixel_util__$FlxSignal_FlxSignal0(); this.postDraw = new flixel_util__$FlxSignal_FlxSignal0(); this.preDraw = new flixel_util__$FlxSignal_FlxSignal0(); this.postUpdate = new flixel_util__$FlxSignal_FlxSignal0(); this.preUpdate = new flixel_util__$FlxSignal_FlxSignal0(); this.postGameStart = new flixel_util__$FlxSignal_FlxSignal0(); this.preGameStart = new flixel_util__$FlxSignal_FlxSignal0(); this.postGameReset = new flixel_util__$FlxSignal_FlxSignal0(); this.preGameReset = new flixel_util__$FlxSignal_FlxSignal0(); this.gameResized = new flixel_util__$FlxSignal_FlxSignal2(); this.preStateCreate = new flixel_util__$FlxSignal_FlxSignal1(); this.postStateSwitch = new flixel_util__$FlxSignal_FlxSignal0(); this.preStateSwitch = new flixel_util__$FlxSignal_FlxSignal0(); }; $hxClasses["flixel.system.frontEnds.SignalFrontEnd"] = flixel_system_frontEnds_SignalFrontEnd; flixel_system_frontEnds_SignalFrontEnd.__name__ = "flixel.system.frontEnds.SignalFrontEnd"; flixel_system_frontEnds_SignalFrontEnd.prototype = { preStateSwitch: null ,postStateSwitch: null ,preStateCreate: null ,gameResized: null ,preGameReset: null ,postGameReset: null ,preGameStart: null ,postGameStart: null ,preUpdate: null ,postUpdate: null ,preDraw: null ,postDraw: null ,focusGained: null ,focusLost: null ,get_stateSwitched: function() { return this.preStateSwitch; } ,get_gameStarted: function() { return this.postGameStart; } ,__class__: flixel_system_frontEnds_SignalFrontEnd ,__properties__: {get_gameStarted:"get_gameStarted",get_stateSwitched:"get_stateSwitched"} }; var flixel_system_frontEnds_WatchFrontEnd = function() { }; $hxClasses["flixel.system.frontEnds.WatchFrontEnd"] = flixel_system_frontEnds_WatchFrontEnd; flixel_system_frontEnds_WatchFrontEnd.__name__ = "flixel.system.frontEnds.WatchFrontEnd"; flixel_system_frontEnds_WatchFrontEnd.prototype = { add: function(object,field,displayName) { } ,remove: function(object,field) { } ,addQuick: function(displayName,value) { } ,removeQuick: function(displayName) { } ,addExpression: function(expression,displayName) { } ,removeExpression: function(displayName) { } ,addFunction: function(displayName,func) { } ,removeFunction: function(displayName) { } ,addMouse: function() { } ,removeMouse: function() { } ,__class__: flixel_system_frontEnds_WatchFrontEnd }; var flixel_FlxG = function() { }; $hxClasses["flixel.FlxG"] = flixel_FlxG; flixel_FlxG.__name__ = "flixel.FlxG"; flixel_FlxG.__properties__ = {set_mouse:"set_mouse",set_fullscreen:"set_fullscreen",get_fullscreen:"get_fullscreen",set_scaleMode:"set_scaleMode",get_onMobile:"get_onMobile",set_drawFramerate:"set_drawFramerate",set_updateFramerate:"set_updateFramerate",get_state:"get_state",get_stage:"get_stage"}; flixel_FlxG.camera = null; flixel_FlxG.game = null; flixel_FlxG.updateFramerate = null; flixel_FlxG.drawFramerate = null; flixel_FlxG.renderMethod = null; flixel_FlxG.renderBlit = null; flixel_FlxG.renderTile = null; flixel_FlxG.width = null; flixel_FlxG.height = null; flixel_FlxG.mouse = null; flixel_FlxG.touches = null; flixel_FlxG.keys = null; flixel_FlxG.gamepads = null; flixel_FlxG.accelerometer = null; flixel_FlxG.vcr = null; flixel_FlxG.plugins = null; flixel_FlxG.sound = null; flixel_FlxG.resizeGame = function(width,height) { flixel_FlxG.scaleMode.onMeasure(width,height); }; flixel_FlxG.resizeWindow = function(width,height) { }; flixel_FlxG.resetGame = function() { flixel_FlxG.game._resetGame = true; }; flixel_FlxG.switchState = function(nextState) { var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); }; flixel_FlxG.resetState = function() { var nextState = flixel_util_typeLimit_NextState.fromMaker(flixel_FlxG.game._state._constructor); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); }; flixel_FlxG.overlap = function(objectOrGroup1,objectOrGroup2,notifyCallback,processCallback) { if(objectOrGroup1 == null) { objectOrGroup1 = flixel_FlxG.game._state; } if(objectOrGroup2 == objectOrGroup1) { objectOrGroup2 = null; } flixel_system_FlxQuadTree.divisions = flixel_FlxG.worldDivisions; var quadTree = flixel_system_FlxQuadTree.recycle(flixel_FlxG.worldBounds.x,flixel_FlxG.worldBounds.y,flixel_FlxG.worldBounds.width,flixel_FlxG.worldBounds.height); quadTree.load(objectOrGroup1,objectOrGroup2,notifyCallback,processCallback); var result = quadTree.execute(); quadTree.destroy(); return result; }; flixel_FlxG.pixelPerfectOverlap = function(sprite1,sprite2,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } return flixel_util_FlxCollision.pixelPerfectCheck(sprite1,sprite2,alphaTolerance,camera); }; flixel_FlxG.collide = function(objectOrGroup1,objectOrGroup2,notifyCallback) { return flixel_FlxG.overlap(objectOrGroup1,objectOrGroup2,notifyCallback,flixel_FlxObject.separate); }; flixel_FlxG.addChildBelowMouse = function(child,indexModifier) { if(indexModifier == null) { indexModifier = 0; } var index = flixel_FlxG.game.getChildIndex(flixel_FlxG.game._inputContainer); var max = flixel_FlxG.game.get_numChildren(); index = flixel_math_FlxMath.maxAdd(index,indexModifier,max); flixel_FlxG.game.addChildAt(child,index); return child; }; flixel_FlxG.removeChild = function(child) { if(flixel_FlxG.game.contains(child)) { flixel_FlxG.game.removeChild(child); } return child; }; flixel_FlxG.addPostProcess = function(postProcess) { return postProcess; }; flixel_FlxG.removePostProcess = function(postProcess) { }; flixel_FlxG.openURL = function(url,target) { if(target == null) { target = "_blank"; } if(!new EReg("^.\\w+?:/*","").match(url)) { url = "https://" + url; } openfl_Lib.getURL(new openfl_net_URLRequest(url),target); }; flixel_FlxG.init = function(game,width,height) { if(width < 0) { width = -width; } if(height < 0) { height = -height; } flixel_FlxG.game = game; flixel_FlxG.width = width; flixel_FlxG.height = height; flixel_FlxG.initRenderMethod(); flixel_FlxG.initialWidth = width; flixel_FlxG.initialHeight = height; var width = openfl_Lib.get_current().stage.stageWidth; var height = openfl_Lib.get_current().stage.stageHeight; flixel_FlxG.scaleMode.onMeasure(width,height); flixel_FlxG.keys = flixel_FlxG.inputs.add_flixel_input_keyboard_FlxKeyboard(new flixel_input_keyboard_FlxKeyboard()); flixel_FlxG.set_mouse(flixel_FlxG.inputs.add_flixel_input_mouse_FlxMouse(new flixel_input_mouse_FlxMouse(game._inputContainer))); flixel_FlxG.touches = flixel_FlxG.inputs.add_flixel_input_touch_FlxTouchManager(new flixel_input_touch_FlxTouchManager()); flixel_FlxG.gamepads = flixel_FlxG.inputs.add_flixel_input_gamepad_FlxGamepadManager(new flixel_input_gamepad_FlxGamepadManager()); flixel_FlxG.accelerometer = new flixel_input_FlxAccelerometer(); flixel_FlxG.initSave(); flixel_FlxG.plugins = new flixel_system_frontEnds_PluginFrontEnd(); flixel_FlxG.vcr = new flixel_system_frontEnds_VCRFrontEnd(); flixel_FlxG.sound = new flixel_system_frontEnds_SoundFrontEnd(); }; flixel_FlxG.initRenderMethod = function() { flixel_FlxG.renderMethod = flixel_FlxRenderMethod.BLITTING; var tmp; switch(openfl_Lib.get_current().stage.window.context.type) { case "opengl":case "opengles":case "webgl": tmp = flixel_FlxRenderMethod.DRAW_TILES; break; default: tmp = flixel_FlxRenderMethod.BLITTING; } flixel_FlxG.renderMethod = tmp; flixel_FlxG.renderBlit = flixel_FlxG.renderMethod == flixel_FlxRenderMethod.BLITTING; flixel_FlxG.renderTile = flixel_FlxG.renderMethod == flixel_FlxRenderMethod.DRAW_TILES; flixel_FlxObject.defaultPixelPerfectPosition = flixel_FlxG.renderBlit; }; flixel_FlxG.initSave = function() { var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(tmp) { return; } var name = openfl_Lib.get_current().stage.application.meta.h["file"]; flixel_FlxG.save.bind(flixel_util_FlxSave.validate(name)); if(flixel_FlxG.save.isEmpty()) { flixel_FlxG.save.mergeDataFrom("flixel",null,false,false); } }; flixel_FlxG.reset = function() { var _this = flixel_FlxG.random; var Value = Math.random() * 2147483647 | 0; var lowerBound = Value < 1 ? 1 : Value; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; var NewSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0; var lowerBound = NewSeed < 1 ? 1 : NewSeed; _this.initialSeed = (_this.internalSeed = (lowerBound > 2147483646 ? 2147483646 : lowerBound) | 0) | 0; flixel_FlxG.bitmap.reset(); flixel_FlxG.inputs.reset(); flixel_FlxG.sound.destroy(true); flixel_FlxG.autoPause = true; flixel_FlxG.fixedTimestep = true; flixel_FlxG.timeScale = 1.0; flixel_FlxG.animationTimeScale = 1.0; flixel_FlxG.elapsed = 0; flixel_FlxG.maxElapsed = 0.1; var _this = flixel_FlxG.worldBounds; var X = -10; var Y = -10; var Width = flixel_FlxG.width + 20; var Height = flixel_FlxG.height + 20; 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; flixel_FlxG.worldDivisions = 6; }; flixel_FlxG.set_scaleMode = function(value) { flixel_FlxG.scaleMode = value; flixel_FlxG.game.onResize(null); return value; }; flixel_FlxG.set_mouse = function(NewMouse) { if(flixel_FlxG.mouse == null) { flixel_FlxG.mouse = flixel_FlxG.inputs.add_flixel_input_mouse_FlxMouse(NewMouse); return flixel_FlxG.mouse; } var oldMouse = flixel_FlxG.mouse; var result = flixel_FlxG.inputs.replace_flixel_input_mouse_FlxMouse(oldMouse,NewMouse); if(result != null) { flixel_FlxG.mouse = result; oldMouse.destroy(); return NewMouse; } return oldMouse; }; flixel_FlxG.set_updateFramerate = function(value) { if(value < flixel_FlxG.drawFramerate) { flixel_FlxG.log.advanced("FlxG.framerate: the game's framerate shouldn't be smaller than the flash framerate," + " since it can stop your game from updating.",flixel_system_debug_log_LogStyle.WARNING,true); } flixel_FlxG.updateFramerate = value; flixel_FlxG.game._stepMS = Math.abs(1000 / value); flixel_FlxG.game._stepSeconds = flixel_FlxG.game._stepMS / 1000; if(flixel_FlxG.game._maxAccumulation < flixel_FlxG.game._stepMS) { flixel_FlxG.game._maxAccumulation = flixel_FlxG.game._stepMS; } return value; }; flixel_FlxG.set_drawFramerate = function(value) { if(value > flixel_FlxG.updateFramerate) { flixel_FlxG.log.advanced("FlxG.drawFramerate: the update framerate shouldn't be smaller than the draw framerate," + " since it can stop your game from updating.",flixel_system_debug_log_LogStyle.WARNING,true); } flixel_FlxG.drawFramerate = Math.abs(value) | 0; if(flixel_FlxG.game.stage != null) { flixel_FlxG.game.stage.set_frameRate(flixel_FlxG.drawFramerate); } flixel_FlxG.game._maxAccumulation = 2000 / flixel_FlxG.drawFramerate - 1; if(flixel_FlxG.game._maxAccumulation < flixel_FlxG.game._stepMS) { flixel_FlxG.game._maxAccumulation = flixel_FlxG.game._stepMS; } return value; }; flixel_FlxG.get_fullscreen = function() { if(openfl_Lib.get_current().stage.get_displayState() != 0) { return openfl_Lib.get_current().stage.get_displayState() == 1; } else { return true; } }; flixel_FlxG.set_fullscreen = function(value) { openfl_Lib.get_current().stage.set_displayState(value ? 0 : 2); return value; }; flixel_FlxG.get_stage = function() { return openfl_Lib.get_current().stage; }; flixel_FlxG.get_state = function() { return flixel_FlxG.game._state; }; flixel_FlxG.get_onMobile = function() { return flixel_FlxG.html5.onMobile; }; var flixel_FlxRenderMethod = $hxEnums["flixel.FlxRenderMethod"] = { __ename__:"flixel.FlxRenderMethod",__constructs__:null ,DRAW_TILES: {_hx_name:"DRAW_TILES",_hx_index:0,__enum__:"flixel.FlxRenderMethod",toString:$estr} ,BLITTING: {_hx_name:"BLITTING",_hx_index:1,__enum__:"flixel.FlxRenderMethod",toString:$estr} }; flixel_FlxRenderMethod.__constructs__ = [flixel_FlxRenderMethod.DRAW_TILES,flixel_FlxRenderMethod.BLITTING]; flixel_FlxRenderMethod.__empty_constructs__ = [flixel_FlxRenderMethod.DRAW_TILES,flixel_FlxRenderMethod.BLITTING]; var flixel_FlxGame = function(gameWidth,gameHeight,initialState,updateFramerate,drawFramerate,skipSplash,startFullscreen) { if(startFullscreen == null) { startFullscreen = false; } if(skipSplash == null) { skipSplash = false; } if(drawFramerate == null) { drawFramerate = 60; } if(updateFramerate == null) { updateFramerate = 60; } if(gameHeight == null) { gameHeight = 0; } if(gameWidth == null) { gameWidth = 0; } this._resetGame = false; this._skipSplash = false; this._customSoundTray = flixel_system_ui_FlxSoundTray; this._lostFocus = false; this._startTime = 0; this._total = 0; this._gameJustStarted = false; this.filtersEnabled = true; this.ticks = 0; this.focusLostFramerate = 10; openfl_display_Sprite.call(this); this._inputContainer = new openfl_display_Sprite(); if(gameWidth == 0) { gameWidth = openfl_Lib.get_current().stage.stageWidth; } if(gameHeight == 0) { gameHeight = openfl_Lib.get_current().stage.stageHeight; } flixel_FlxG.init(this,gameWidth,gameHeight); flixel_FlxG.set_updateFramerate(updateFramerate); flixel_FlxG.set_drawFramerate(drawFramerate); this._accumulator = this._stepMS; this._skipSplash = skipSplash; this._initialState = initialState == null ? flixel_util_typeLimit_NextState.fromMaker(function() { return new flixel_FlxState(); }) : flixel_util_typeLimit_InitialState.toNextState(initialState); this.addEventListener("addedToStage",$bind(this,this.create)); }; $hxClasses["flixel.FlxGame"] = flixel_FlxGame; flixel_FlxGame.__name__ = "flixel.FlxGame"; flixel_FlxGame.__super__ = openfl_display_Sprite; flixel_FlxGame.prototype = $extend(openfl_display_Sprite.prototype,{ focusLostFramerate: null ,soundTray: null ,ticks: null ,filtersEnabled: null ,_gameJustStarted: null ,_initialState: null ,_state: null ,_total: null ,_startTime: null ,_accumulator: null ,_elapsedMS: null ,_stepMS: null ,_stepSeconds: null ,_maxAccumulation: null ,_lostFocus: null ,_filters: null ,_inputContainer: null ,_customSoundTray: null ,_skipSplash: null ,_nextState: null ,_resetGame: null ,setFilters: function(filters) { this._filters = filters; } ,create: function(_) { if(this.stage == null) { return; } this.removeEventListener("addedToStage",$bind(this,this.create)); this._startTime = this.getTimer(); this._total = this.getTimer() - this._startTime; this.stage.set_scaleMode(2); this.stage.align = 6; this.stage.set_frameRate(flixel_FlxG.drawFramerate); this.addChild(this._inputContainer); this.soundTray = Type.createInstance(this._customSoundTray,[]); this.addChild(this.soundTray); this.stage.addEventListener("deactivate",$bind(this,this.onFocusLost)); this.stage.addEventListener("activate",$bind(this,this.onFocus)); var _gthis = this; flixel_FlxG.signals.preGameReset.dispatch(); if(this._skipSplash) { this._nextState = this._initialState; this._gameJustStarted = true; } else { this._nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new flixel__$FlxGame_FlxIntroSplash(_gthis._initialState); }); this._skipSplash = true; } flixel_FlxG.reset(); flixel_FlxG.signals.postGameReset.dispatch(); this.switchState(); if(flixel_FlxG.updateFramerate < flixel_FlxG.drawFramerate) { flixel_FlxG.log.advanced("FlxG.updateFramerate: The update framerate shouldn't be smaller" + " than the draw framerate, since it can slow down your game.",flixel_system_debug_log_LogStyle.WARNING,true); } this.stage.addEventListener("enterFrame",$bind(this,this.onEnterFrame)); this.stage.addEventListener("resize",$bind(this,this.onResize)); this.resizeGame(openfl_Lib.get_current().stage.stageWidth,openfl_Lib.get_current().stage.stageHeight); openfl_utils_Assets.addEventListener("change",($_=flixel_FlxG.bitmap,$bind($_,$_.onAssetsReload))); } ,onFocus: function(_) { this._lostFocus = false; flixel_FlxG.signals.focusGained.dispatch(); this._state.onFocus(); if(!flixel_FlxG.autoPause) { return; } this.stage.set_frameRate(flixel_FlxG.drawFramerate); flixel_FlxG.sound.onFocus(); var _g = 0; var _g1 = flixel_FlxG.inputs.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.onFocus(); } } ,onFocusLost: function(event) { this._lostFocus = true; flixel_FlxG.signals.focusLost.dispatch(); this._state.onFocusLost(); if(!flixel_FlxG.autoPause) { return; } this.stage.set_frameRate(this.focusLostFramerate); flixel_FlxG.sound.onFocusLost(); var _g = 0; var _g1 = flixel_FlxG.inputs.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.onFocusLost(); } } ,onResize: function(_) { var width = openfl_Lib.get_current().stage.stageWidth; var height = openfl_Lib.get_current().stage.stageHeight; if(flixel_FlxG.renderTile) { flixel_FlxG.bitmap.onContext(); } this.resizeGame(width,height); } ,resizeGame: function(width,height) { flixel_FlxG.scaleMode.onMeasure(width,height); this._state.onResize(width,height); flixel_FlxG.cameras.resize(); flixel_FlxG.signals.gameResized.dispatch(width,height); if(this.soundTray != null) { this.soundTray.screenCenter(); } } ,onEnterFrame: function(_) { this.ticks = this.getTimer() - this._startTime; this._elapsedMS = this.ticks - this._total; this._total = this.ticks; if(this.soundTray != null && this.soundTray.active) { this.soundTray.update(this._elapsedMS); } if(!this._lostFocus || !flixel_FlxG.autoPause) { if(flixel_FlxG.vcr.paused) { if(flixel_FlxG.vcr.stepRequested) { flixel_FlxG.vcr.stepRequested = false; } else if(this._nextState == null) { return; } } if(flixel_FlxG.fixedTimestep) { this._accumulator += this._elapsedMS; this._accumulator = this._accumulator > this._maxAccumulation ? this._maxAccumulation : this._accumulator; while(this._accumulator >= this._stepMS) { this.step(); this._accumulator -= this._stepMS; } } else { this.step(); } this.draw(); } } ,resetGame: function() { var _gthis = this; flixel_FlxG.signals.preGameReset.dispatch(); if(this._skipSplash) { this._nextState = this._initialState; this._gameJustStarted = true; } else { this._nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new flixel__$FlxGame_FlxIntroSplash(_gthis._initialState); }); this._skipSplash = true; } flixel_FlxG.reset(); flixel_FlxG.signals.postGameReset.dispatch(); } ,switchState: function() { flixel_FlxG.cameras.reset(); flixel_FlxG.inputs.onStateSwitch(); flixel_FlxG.sound.destroy(); flixel_FlxG.signals.preStateSwitch.dispatch(); if(this._state != null) { this._state.destroy(); } flixel_FlxG.bitmap.clearCache(); this._state = flixel_util_typeLimit_NextState.createInstance(this._nextState); this._state._constructor = flixel_util_typeLimit_NextState.getConstructor(this._nextState); this._nextState = null; if(this._gameJustStarted) { flixel_FlxG.signals.preGameStart.dispatch(); } flixel_FlxG.signals.preStateCreate.dispatch(this._state); this._state.create(); if(this._gameJustStarted) { this.gameStart(); } flixel_FlxG.signals.postStateSwitch.dispatch(); } ,gameStart: function() { flixel_FlxG.signals.postGameStart.dispatch(); this._gameJustStarted = false; } ,step: function() { if(this._resetGame) { var _gthis = this; flixel_FlxG.signals.preGameReset.dispatch(); if(this._skipSplash) { this._nextState = this._initialState; this._gameJustStarted = true; } else { this._nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new flixel__$FlxGame_FlxIntroSplash(_gthis._initialState); }); this._skipSplash = true; } flixel_FlxG.reset(); flixel_FlxG.signals.postGameReset.dispatch(); this._resetGame = false; } this.handleReplayRequests(); this.update(); } ,handleReplayRequests: function() { } ,update: function() { if(!this._state.active || !this._state.exists) { return; } if(this._nextState != null) { this.switchState(); } this.updateElapsed(); flixel_FlxG.signals.preUpdate.dispatch(); this.updateInput(); flixel_FlxG.sound.update(flixel_FlxG.elapsed); var elapsed = flixel_FlxG.elapsed; var _g = 0; var _g1 = flixel_FlxG.plugins.list; while(_g < _g1.length) { var plugin = _g1[_g]; ++_g; if(plugin.exists && plugin.active) { plugin.update(elapsed); } } this._state.tryUpdate(flixel_FlxG.elapsed); var elapsed = flixel_FlxG.elapsed; var _g = 0; var _g1 = flixel_FlxG.cameras.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera != null && camera.exists && camera.active) { camera.update(elapsed); } } flixel_FlxG.signals.postUpdate.dispatch(); flixel_util_FlxArrayUtil.clearArray(flixel_FlxG.swipes); this.set_filters(this.filtersEnabled ? this._filters : null); } ,updateElapsed: function() { if(flixel_FlxG.fixedTimestep) { flixel_FlxG.elapsed = flixel_FlxG.timeScale * this._stepSeconds; } else { flixel_FlxG.elapsed = flixel_FlxG.timeScale * (this._elapsedMS / 1000); var max = flixel_FlxG.maxElapsed * flixel_FlxG.timeScale; if(flixel_FlxG.elapsed > max) { flixel_FlxG.elapsed = max; } } } ,updateInput: function() { var _g = 0; var _g1 = flixel_FlxG.inputs.list; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.update(); } } ,draw: function() { if(!this._state.visible || !this._state.exists) { return; } flixel_FlxG.signals.preDraw.dispatch(); if(flixel_FlxG.renderTile) { flixel_graphics_tile_FlxDrawBaseItem.drawCalls = 0; } var _this = flixel_FlxG.cameras; var _g = 0; var _g1 = _this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera == null || !camera.exists || !camera.visible) { continue; } if(flixel_FlxG.renderBlit) { camera.checkResize(); if(_this.useBufferLocking) { camera.buffer.lock(); } } if(flixel_FlxG.renderTile) { camera.clearDrawStack(); camera.canvas.get_graphics().clear(); } if(flixel_FlxG.renderBlit) { camera.fill(camera.bgColor,camera.useBgAlphaBlending); camera.screen.dirty = true; } else { camera.fill(camera.bgColor & 16777215,camera.useBgAlphaBlending,(camera.bgColor >> 24 & 255) / 255); } } var _g = 0; var _g1 = flixel_FlxG.plugins.list; while(_g < _g1.length) { var plugin = _g1[_g]; ++_g; if(plugin.exists && plugin.visible) { plugin.draw(); } } this._state.draw(); if(flixel_FlxG.renderTile) { if(flixel_FlxG.renderTile) { var _g = 0; var _g1 = flixel_FlxG.cameras.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera != null && camera.exists && camera.visible) { camera.render(); } } } } var _this = flixel_FlxG.cameras; var _g = 0; var _g1 = _this.list; while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(camera == null || !camera.exists || !camera.visible) { continue; } camera.drawFX(); if(flixel_FlxG.renderBlit) { if(_this.useBufferLocking) { camera.buffer.unlock(); } camera.screen.dirty = true; } } flixel_FlxG.signals.postDraw.dispatch(); } ,getTicks: function() { return this.getTimer() - this._startTime; } ,getTimer: function() { return openfl_Lib.getTimer(); } ,__class__: flixel_FlxGame }); var flixel_group_FlxTypedGroup = function(MaxSize) { if(MaxSize == null) { MaxSize = 0; } this._marker = 0; this.length = 0; flixel_FlxBasic.call(this); this.members = []; this.set_maxSize(Math.abs(MaxSize) | 0); this.flixelType = 2; }; $hxClasses["flixel.group.FlxTypedGroup"] = flixel_group_FlxTypedGroup; flixel_group_FlxTypedGroup.__name__ = "flixel.group.FlxTypedGroup"; flixel_group_FlxTypedGroup.resolveGroup = function(basic) { if(basic != null) { if(basic.flixelType == 2) { return basic; } else if(basic.flixelType == 4) { return basic.group; } } return null; }; flixel_group_FlxTypedGroup.resolveSelectionGroup = function(basic) { return flixel_group_FlxTypedGroup.resolveGroup(basic); }; flixel_group_FlxTypedGroup.__super__ = flixel_FlxBasic; flixel_group_FlxTypedGroup.prototype = $extend(flixel_FlxBasic.prototype,{ members: null ,maxSize: null ,length: null ,_memberAdded: null ,_memberRemoved: null ,_marker: null ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); flixel_util_FlxDestroyUtil.destroy(this._memberAdded); flixel_util_FlxDestroyUtil.destroy(this._memberRemoved); if(this.members != null) { var i = 0; var basic = null; while(i < this.length) { basic = this.members[i++]; if(basic != null) { basic.destroy(); } } this.members = null; } } ,update: function(elapsed) { var i = 0; var basic = null; while(i < this.length) { basic = this.members[i++]; if(basic != null && basic.exists && basic.active) { basic.update(elapsed); } } } ,draw: function() { var oldDefaultCameras = flixel_FlxCamera._defaultCameras; if(this.get_cameras() != null) { flixel_FlxCamera._defaultCameras = this.get_cameras(); } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && basic.exists && basic.visible) { basic.draw(); } } flixel_FlxCamera._defaultCameras = oldDefaultCameras; } ,add: function(basic) { if(basic == null) { flixel_FlxG.log.advanced("Cannot add a `null` object to a FlxGroup.",flixel_system_debug_log_LogStyle.WARNING,true); return null; } if(this.members.indexOf(basic) >= 0) { return basic; } var index = this.getFirstNull(); if(index != -1) { this.members[index] = basic; if(index >= this.length) { this.length = index + 1; } if(this._memberAdded != null) { this._memberAdded.dispatch(basic); } return basic; } if(this.maxSize > 0 && this.length >= this.maxSize) { return basic; } this.members.push(basic); this.length++; if(this._memberAdded != null) { this._memberAdded.dispatch(basic); } return basic; } ,insert: function(position,object) { if(object == null) { flixel_FlxG.log.advanced("Cannot insert a `null` object into a FlxGroup.",flixel_system_debug_log_LogStyle.WARNING,true); return null; } if(this.members.indexOf(object) >= 0) { return object; } if(position < this.length && this.members[position] == null) { this.members[position] = object; if(this._memberAdded != null) { this._memberAdded.dispatch(object); } return object; } if(this.maxSize > 0 && this.length >= this.maxSize) { return object; } this.members.splice(position,0,object); this.length++; if(this._memberAdded != null) { this._memberAdded.dispatch(object); } return object; } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var _gthis = this; if(this.maxSize > 0) { if(this.length < this.maxSize) { return objectFactory != null ? _gthis.add(objectFactory()) : objectClass != null ? _gthis.add(Type.createInstance(objectClass,[])) : null; } var basic = this.members[this._marker++]; if(this._marker >= this.maxSize) { this._marker = 0; } if(revive) { basic.revive(); } return basic; } var basic = this.getFirstAvailable(objectClass,force); if(basic != null) { if(revive) { basic.revive(); } return basic; } return objectFactory != null ? _gthis.add(objectFactory()) : objectClass != null ? _gthis.add(Type.createInstance(objectClass,[])) : null; } ,remove: function(basic,splice) { if(splice == null) { splice = false; } if(this.members == null) { return null; } var index = this.members.indexOf(basic); if(index < 0) { return null; } if(splice) { this.members.splice(index,1); this.length--; } else { this.members[index] = null; } if(this._memberRemoved != null) { this._memberRemoved.dispatch(basic); } return basic; } ,replace: function(oldObject,newObject) { var index = this.members.indexOf(oldObject); if(index < 0) { return null; } this.members[index] = newObject; if(this._memberRemoved != null) { this._memberRemoved.dispatch(oldObject); } if(this._memberAdded != null) { this._memberAdded.dispatch(newObject); } return newObject; } ,sort: function(func,order) { if(order == null) { order = -1; } var _g = func; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.members.sort(tmp); } ,getFirst: function(func) { var result = null; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && func(basic)) { result = basic; break; } } return result; } ,getFirstHelper: function(func) { var result = null; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && func(basic)) { result = basic; break; } } return result; } ,getLast: function(func) { var result = null; var i = this.members.length; while(i-- > 0) { var basic = this.members[i]; if(basic != null && func(basic)) { result = basic; break; } } return result; } ,getFirstIndex: function(func) { var result = -1; var _g_current = 0; var _g_array = this.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var i = _g_key; var basic = _g_value; if(basic != null && func(basic)) { result = i; break; } } return result; } ,getLastIndex: function(func) { var result = -1; var i = this.members.length; while(i-- > 0) { var basic = this.members[i]; if(basic != null && func(basic)) { result = i; break; } } return result; } ,any: function(func) { var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && func(basic)) { return true; } } return false; } ,every: function(func) { var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && !func(basic)) { return false; } } return true; } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && !basic.exists && (objectClass == null || js_Boot.__instanceof(basic,objectClass))) { var tmp; if(force) { var c = js_Boot.getClass(basic); tmp = c.__name__ != objectClass.__name__; } else { tmp = false; } if(tmp) { continue; } return basic; } } return null; } ,getFirstNull: function() { return this.members.indexOf(null); } ,getFirstExisting: function() { var result = null; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && basic.exists) { result = basic; break; } } return result; } ,getFirstAlive: function() { var result = null; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && (basic.exists && basic.alive)) { result = basic; break; } } return result; } ,getFirstDead: function() { var result = null; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && !basic.alive) { result = basic; break; } } return result; } ,countLiving: function() { var count = -1; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null) { if(count < 0) { count = 0; } if(basic.exists && basic.alive) { ++count; } } } return count; } ,countDead: function() { var count = -1; var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null) { if(count < 0) { count = 0; } if(!basic.alive) { ++count; } } } return count; } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } if(startIndex < 0) { startIndex = 0; } if(length <= 0) { length = this.length; } return flixel_FlxG.random.getObject_flixel_group_FlxTypedGroup_T(this.members,null,startIndex,length); } ,clear: function() { this.length = 0; if(this._memberRemoved != null) { var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member != null) { this._memberRemoved.dispatch(member); } } } flixel_util_FlxArrayUtil.clearArray(this.members); } ,killMembers: function() { var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && basic.exists) { basic.kill(); } } } ,kill: function() { this.killMembers(); flixel_FlxBasic.prototype.kill.call(this); } ,reviveMembers: function() { var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && !basic.exists) { basic.revive(); } } } ,revive: function() { this.reviveMembers(); flixel_FlxBasic.prototype.revive.call(this); } ,iterator: function(filter) { return new flixel_group_FlxTypedGroupIterator(this.members,filter); } ,keyValueIterator: function() { return new haxe_iterators_ArrayKeyValueIterator(this.members); } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null) { if(recurse) { var group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { group.forEach(func,recurse); } } func(basic); } } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && basic.exists && basic.alive) { if(recurse) { var group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { group.forEachAlive(func,recurse); } } func(basic); } } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && !basic.alive) { if(recurse) { var group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { group.forEachDead(func,recurse); } } func(basic); } } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null && basic.exists) { if(recurse) { var group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { group.forEachExists(func,recurse); } } func(basic); } } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var _g = 0; var _g1 = this.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; if(basic != null) { if(recurse) { var group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { group.forEachOfType(objectClass,func,recurse); } } if(js_Boot.__instanceof(basic,objectClass)) { func(basic); } } } } ,set_maxSize: function(size) { this.maxSize = Math.abs(size) | 0; if(this._marker >= this.maxSize) { this._marker = 0; } if(this.maxSize == 0 || this.members == null || this.maxSize >= this.length) { return this.maxSize; } while(this.length > this.maxSize) { var basic = this.members.splice(this.maxSize - 1,1)[0]; if(basic != null) { if(this._memberRemoved != null) { this._memberRemoved.dispatch(basic); } basic.destroy(); } this.length--; } return this.maxSize; } ,get_memberAdded: function() { if(this._memberAdded == null) { this._memberAdded = new flixel_util__$FlxSignal_FlxSignal1(); } return this._memberAdded; } ,get_memberRemoved: function() { if(this._memberRemoved == null) { this._memberRemoved = new flixel_util__$FlxSignal_FlxSignal1(); } return this._memberRemoved; } ,__class__: flixel_group_FlxTypedGroup ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{get_memberRemoved:"get_memberRemoved",get_memberAdded:"get_memberAdded",set_maxSize:"set_maxSize"}) }); var flixel_FlxState = function() { this._requestSubStateReset = false; this.destroySubStates = true; this.persistentDraw = true; this.persistentUpdate = false; flixel_group_FlxTypedGroup.call(this,0); }; $hxClasses["flixel.FlxState"] = flixel_FlxState; flixel_FlxState.__name__ = "flixel.FlxState"; flixel_FlxState.__super__ = flixel_group_FlxTypedGroup; flixel_FlxState.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ persistentUpdate: null ,persistentDraw: null ,destroySubStates: null ,_constructor: null ,subState: null ,_requestedSubState: null ,_requestSubStateReset: null ,_subStateOpened: null ,_subStateClosed: null ,create: function() { } ,draw: function() { if(this.persistentDraw || this.subState == null) { flixel_group_FlxTypedGroup.prototype.draw.call(this); } if(this.subState != null) { this.subState.draw(); } } ,openSubState: function(SubState) { this._requestSubStateReset = true; this._requestedSubState = SubState; } ,closeSubState: function() { this._requestSubStateReset = true; } ,resetSubState: function() { if(this.subState != null) { if(this.subState.closeCallback != null) { this.subState.closeCallback(); } if(this._subStateClosed != null) { this._subStateClosed.dispatch(this.subState); } if(this.destroySubStates) { this.subState.destroy(); } } this.subState = this._requestedSubState; this._requestedSubState = null; if(this.subState != null) { if(!this.persistentUpdate) { flixel_FlxG.inputs.onStateSwitch(); } this.subState._parentState = this; if(!this.subState._created) { this.subState._created = true; this.subState.create(); } if(this.subState.openCallback != null) { this.subState.openCallback(); } if(this._subStateOpened != null) { this._subStateOpened.dispatch(this.subState); } } } ,destroy: function() { this._constructor = function() { throw haxe_Exception.thrown("Attempting to resetState while the current state is destroyed"); }; flixel_util_FlxDestroyUtil.destroy(this._subStateOpened); flixel_util_FlxDestroyUtil.destroy(this._subStateClosed); if(this.subState != null) { this.subState.destroy(); this.subState = null; } flixel_group_FlxTypedGroup.prototype.destroy.call(this); } ,startOutro: function(onOutroComplete) { onOutroComplete(); } ,onFocusLost: function() { } ,onFocus: function() { } ,onResize: function(Width,Height) { } ,tryUpdate: function(elapsed) { if(this.persistentUpdate || this.subState == null) { this.update(elapsed); } if(this._requestSubStateReset) { this._requestSubStateReset = false; this.resetSubState(); } if(this.subState != null) { this.subState.tryUpdate(elapsed); } } ,get_bgColor: function() { return flixel_FlxG.cameras.get_bgColor(); } ,set_bgColor: function(Value) { return flixel_FlxG.cameras.set_bgColor(Value); } ,get_subStateOpened: function() { if(this._subStateOpened == null) { this._subStateOpened = new flixel_util__$FlxSignal_FlxSignal1(); } return this._subStateOpened; } ,get_subStateClosed: function() { if(this._subStateClosed == null) { this._subStateClosed = new flixel_util__$FlxSignal_FlxSignal1(); } return this._subStateClosed; } ,__class__: flixel_FlxState ,__properties__: $extend(flixel_group_FlxTypedGroup.prototype.__properties__,{get_subStateClosed:"get_subStateClosed",get_subStateOpened:"get_subStateOpened",set_bgColor:"set_bgColor",get_bgColor:"get_bgColor"}) }); var flixel_system_FlxSplash = function(nextState) { this._curPart = 0; flixel_FlxState.call(this); this.nextState = nextState; }; $hxClasses["flixel.system.FlxSplash"] = flixel_system_FlxSplash; flixel_system_FlxSplash.__name__ = "flixel.system.FlxSplash"; flixel_system_FlxSplash.__super__ = flixel_FlxState; flixel_system_FlxSplash.prototype = $extend(flixel_FlxState.prototype,{ _sprite: null ,_gfx: null ,_text: null ,_times: null ,_colors: null ,_functions: null ,_curPart: null ,_cachedBgColor: null ,_cachedTimestep: null ,_cachedAutoPause: null ,nextState: null ,create: function() { this._cachedBgColor = flixel_FlxG.cameras.get_bgColor(); flixel_FlxG.cameras.set_bgColor(-16777216); this._cachedTimestep = flixel_FlxG.fixedTimestep; flixel_FlxG.fixedTimestep = false; this._cachedAutoPause = flixel_FlxG.autoPause; flixel_FlxG.autoPause = false; flixel_FlxG.keys.enabled = false; this._times = [0.041,0.184,0.334,0.495,0.636]; this._colors = [47394,16761138,16066382,3555839,314875]; this._functions = [$bind(this,this.drawGreen),$bind(this,this.drawYellow),$bind(this,this.drawRed),$bind(this,this.drawBlue),$bind(this,this.drawLightBlue)]; var _g = 0; var _g1 = this._times; while(_g < _g1.length) { var time = _g1[_g]; ++_g; new flixel_util_FlxTimer().start(time,$bind(this,this.timerCallback)); } var stageWidth = openfl_Lib.get_current().stage.stageWidth; var stageHeight = openfl_Lib.get_current().stage.stageHeight; this._sprite = new openfl_display_Sprite(); openfl_Lib.get_current().stage.addChild(this._sprite); this._gfx = this._sprite.get_graphics(); this._text = new openfl_text_TextField(); this._text.set_selectable(false); this._text.set_embedFonts(true); var dtf = new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEFAULT,16,16777215); dtf.align = 0; this._text.set_defaultTextFormat(dtf); this._text.set_text("HaxeFlixel"); openfl_Lib.get_current().stage.addChild(this._text); this.onResize(stageWidth,stageHeight); if(!flixel_system_FlxSplash.muted) { flixel_FlxG.sound.load(flixel_system_FlxAssets.getSound("flixel/sounds/flixel")).play(); } } ,destroy: function() { this._sprite = null; this._gfx = null; this._text = null; this._times = null; this._colors = null; this._functions = null; flixel_FlxState.prototype.destroy.call(this); } ,complete: function() { var nextState = this.nextState; var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,onResize: function(Width,Height) { flixel_FlxState.prototype.onResize.call(this,Width,Height); this._sprite.set_x(Width / 2); this._sprite.set_y(Height / 2 - 20 * flixel_FlxG.game.get_scaleY()); this._text.set_width(Width / flixel_FlxG.game.get_scaleX()); this._text.set_x(0); this._text.set_y(this._sprite.get_y() + 80 * flixel_FlxG.game.get_scaleY()); this._sprite.set_scaleX(this._text.set_scaleX(flixel_FlxG.game.get_scaleX())); this._sprite.set_scaleY(this._text.set_scaleY(flixel_FlxG.game.get_scaleY())); } ,timerCallback: function(Timer) { var _gthis = this; this._functions[this._curPart](); this._text.set_textColor(this._colors[this._curPart]); this._text.set_text("HaxeFlixel"); this._curPart++; if(this._curPart == 5) { flixel_tweens_FlxTween.tween(this._sprite,{ alpha : 0},3.0,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : function(_) { _gthis.complete(); }}); flixel_tweens_FlxTween.tween(this._text,{ alpha : 0},3.0,{ ease : flixel_tweens_FlxEase.quadOut}); } } ,drawGreen: function() { this._gfx.beginFill(47394); this._gfx.moveTo(0,-37); this._gfx.lineTo(1,-37); this._gfx.lineTo(37,0); this._gfx.lineTo(37,1); this._gfx.lineTo(1,37); this._gfx.lineTo(0,37); this._gfx.lineTo(-37,1); this._gfx.lineTo(-37,0); this._gfx.lineTo(0,-37); this._gfx.endFill(); } ,drawYellow: function() { this._gfx.beginFill(16761138); this._gfx.moveTo(-50,-50); this._gfx.lineTo(-25,-50); this._gfx.lineTo(0,-37); this._gfx.lineTo(-37,0); this._gfx.lineTo(-50,-25); this._gfx.lineTo(-50,-50); this._gfx.endFill(); } ,drawRed: function() { this._gfx.beginFill(16066382); this._gfx.moveTo(50,-50); this._gfx.lineTo(25,-50); this._gfx.lineTo(1,-37); this._gfx.lineTo(37,0); this._gfx.lineTo(50,-25); this._gfx.lineTo(50,-50); this._gfx.endFill(); } ,drawBlue: function() { this._gfx.beginFill(3555839); this._gfx.moveTo(-50,50); this._gfx.lineTo(-25,50); this._gfx.lineTo(0,37); this._gfx.lineTo(-37,1); this._gfx.lineTo(-50,25); this._gfx.lineTo(-50,50); this._gfx.endFill(); } ,drawLightBlue: function() { this._gfx.beginFill(314875); this._gfx.moveTo(50,50); this._gfx.lineTo(25,50); this._gfx.lineTo(1,37); this._gfx.lineTo(37,1); this._gfx.lineTo(50,25); this._gfx.lineTo(50,50); this._gfx.endFill(); } ,startOutro: function(onOutroComplete) { flixel_FlxG.cameras.set_bgColor(this._cachedBgColor); flixel_FlxG.fixedTimestep = this._cachedTimestep; flixel_FlxG.autoPause = this._cachedAutoPause; flixel_FlxG.keys.enabled = true; openfl_Lib.get_current().stage.removeChild(this._sprite); openfl_Lib.get_current().stage.removeChild(this._text); flixel_FlxState.prototype.startOutro.call(this,onOutroComplete); } ,__class__: flixel_system_FlxSplash }); var flixel__$FlxGame_FlxIntroSplash = function(nextState) { flixel_system_FlxSplash.call(this,nextState); }; $hxClasses["flixel._FlxGame.FlxIntroSplash"] = flixel__$FlxGame_FlxIntroSplash; flixel__$FlxGame_FlxIntroSplash.__name__ = "flixel._FlxGame.FlxIntroSplash"; flixel__$FlxGame_FlxIntroSplash.__super__ = flixel_system_FlxSplash; flixel__$FlxGame_FlxIntroSplash.prototype = $extend(flixel_system_FlxSplash.prototype,{ startOutro: function(onOutroComplete) { flixel_FlxG.game._gameJustStarted = true; flixel_system_FlxSplash.prototype.startOutro.call(this,onOutroComplete); } ,__class__: flixel__$FlxGame_FlxIntroSplash }); var flixel_FlxObject = 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; } var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this._rect = rect; var x1 = 0; var y1 = 0; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this._point = point; this.path = null; this.collisionYDrag = 0; this.collisionXDrag = 2; this.allowCollisions = 4369; this.wasTouching = 0; this.touching = 0; this.health = 1; this.maxAngular = 10000; this.angularDrag = 0; this.angularAcceleration = 0; this.angularVelocity = 0; this.elasticity = 0; this.mass = 1; this.immovable = false; this.moves = flixel_FlxObject.defaultMoves; this.angle = 0; this.pixelPerfectPosition = true; this.y = 0; this.x = 0; flixel_FlxBasic.call(this); this.set_x(x); this.set_y(y); this.set_width(width); this.set_height(height); this.initVars(); }; $hxClasses["flixel.FlxObject"] = flixel_FlxObject; flixel_FlxObject.__name__ = "flixel.FlxObject"; flixel_FlxObject.separate = function(object1,object2) { var separatedX = flixel_FlxObject.separateX(object1,object2); var separatedY = flixel_FlxObject.separateY(object1,object2); if(!separatedX) { return separatedY; } else { return true; } }; flixel_FlxObject.updateTouchingFlags = function(Object1,Object2) { var touchingX = flixel_FlxObject.updateTouchingFlagsX(Object1,Object2); var touchingY = flixel_FlxObject.updateTouchingFlagsY(Object1,Object2); if(!touchingX) { return touchingY; } else { return true; } }; flixel_FlxObject.allowCollisionDrag = function(type,object1,object2) { if(object2.active && object2.moves) { switch(type) { case 0: return false; case 1: return true; case 2: return object2.immovable; case 3: if(!object2.immovable) { return object2.mass > object1.mass; } else { return true; } break; } } else { return false; } }; flixel_FlxObject.computeOverlapX = function(object1,object2,checkMaxOverlap) { if(checkMaxOverlap == null) { checkMaxOverlap = true; } var overlap = 0; var obj1delta = object1.x - object1.last.x; var obj2delta = object2.x - object2.last.x; if(obj1delta != obj2delta) { var obj1deltaAbs = obj1delta > 0 ? obj1delta : -obj1delta; var obj2deltaAbs = obj2delta > 0 ? obj2delta : -obj2delta; var _this = flixel_FlxObject._firstSeparateFlxRect; var X = object1.x - (obj1delta > 0 ? obj1delta : 0); var Y = object1.last.y; var Width = object1.get_width() + obj1deltaAbs; var Height = object1.get_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; var obj1rect = _this; var _this = flixel_FlxObject._secondSeparateFlxRect; var X = object2.x - (obj2delta > 0 ? obj2delta : 0); var Y = object2.last.y; var Width = object2.get_width() + obj2deltaAbs; var Height = object2.get_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; var obj2rect = _this; if(obj1rect.x + obj1rect.width > obj2rect.x && obj1rect.x < obj2rect.x + obj2rect.width && obj1rect.y + obj1rect.height > obj2rect.y && obj1rect.y < obj2rect.y + obj2rect.height) { var maxOverlap = checkMaxOverlap ? obj1deltaAbs + obj2deltaAbs + flixel_FlxObject.SEPARATE_BIAS : 0; if(obj1delta > obj2delta) { overlap = object1.x + object1.get_width() - object2.x; if(checkMaxOverlap && overlap > maxOverlap || (object1.allowCollisions & 16) == 0 || (object2.allowCollisions & 1) == 0) { overlap = 0; } else { object1.touching |= 16; object2.touching |= 1; } } else if(obj1delta < obj2delta) { overlap = object1.x - object2.get_width() - object2.x; if(checkMaxOverlap && -overlap > maxOverlap || (object1.allowCollisions & 1) == 0 || (object2.allowCollisions & 16) == 0) { overlap = 0; } else { object1.touching |= 1; object2.touching |= 16; } } } } return overlap; }; flixel_FlxObject.separateX = function(object1,object2) { var immovable1 = object1.immovable; var immovable2 = object2.immovable; if(immovable1 && immovable2) { return false; } if(object1.flixelType == 3) { var tilemap = object1; return tilemap.overlapsWithCallback(object2,flixel_FlxObject.separateX); } if(object2.flixelType == 3) { var tilemap = object2; return tilemap.overlapsWithCallback(object1,flixel_FlxObject.separateX,true); } var overlap = flixel_FlxObject.computeOverlapX(object1,object2); if(overlap != 0) { var delta1 = object1.x - object1.last.x; var delta2 = object2.x - object2.last.x; var vel1 = object1.velocity.x; var vel2 = object2.velocity.x; var mass1 = object1.mass; var mass2 = object2.mass; var massSum = mass1 + mass2; var elasticity1 = object1.elasticity; var elasticity2 = object2.elasticity; if(!immovable1 && !immovable2) { object1.set_x(object1.x - overlap / 2); object2.set_x(object2.x + overlap / 2); var momentum = mass1 * vel1 + mass2 * vel2; var newVel1 = (momentum + elasticity1 * mass2 * (vel2 - vel1)) / massSum; var newVel2 = (momentum + elasticity2 * mass1 * (vel1 - vel2)) / massSum; object1.velocity.set_x(newVel1); object2.velocity.set_x(newVel2); } else if(!immovable1) { object1.set_x(object1.x - overlap); object1.velocity.set_x(vel2 - vel1 * elasticity1); } else if(!immovable2) { object2.set_x(object2.x + overlap); object2.velocity.set_x(vel1 - vel2 * elasticity2); } if(flixel_FlxObject.allowCollisionDrag(object1.collisionYDrag,object1,object2) && delta1 > delta2) { object1.set_y(object1.y + (object2.y - object2.last.y)); } else if(flixel_FlxObject.allowCollisionDrag(object2.collisionYDrag,object2,object1) && delta2 > delta1) { object2.set_y(object2.y + (object1.y - object1.last.y)); } return true; } return false; }; flixel_FlxObject.updateTouchingFlagsX = function(object1,object2) { if(object1.flixelType == 3) { var tilemap = object1; return tilemap.overlapsWithCallback(object2,flixel_FlxObject.updateTouchingFlagsX); } if(object2.flixelType == 3) { var tilemap = object2; return tilemap.overlapsWithCallback(object1,flixel_FlxObject.updateTouchingFlagsX,true); } return flixel_FlxObject.computeOverlapX(object1,object2,false) != 0; }; flixel_FlxObject.computeOverlapY = function(object1,object2,checkMaxOverlap) { if(checkMaxOverlap == null) { checkMaxOverlap = true; } var overlap = 0; var obj1delta = object1.y - object1.last.y; var obj2delta = object2.y - object2.last.y; if(obj1delta != obj2delta) { var obj1deltaAbs = obj1delta > 0 ? obj1delta : -obj1delta; var obj2deltaAbs = obj2delta > 0 ? obj2delta : -obj2delta; var _this = flixel_FlxObject._firstSeparateFlxRect; var X = object1.x; var Y = object1.y - (obj1delta > 0 ? obj1delta : 0); var Width = object1.get_width(); var Height = object1.get_height() + obj1deltaAbs; 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; var obj1rect = _this; var _this = flixel_FlxObject._secondSeparateFlxRect; var X = object2.x; var Y = object2.y - (obj2delta > 0 ? obj2delta : 0); var Width = object2.get_width(); var Height = object2.get_height() + obj2deltaAbs; 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; var obj2rect = _this; if(obj1rect.x + obj1rect.width > obj2rect.x && obj1rect.x < obj2rect.x + obj2rect.width && obj1rect.y + obj1rect.height > obj2rect.y && obj1rect.y < obj2rect.y + obj2rect.height) { var maxOverlap = checkMaxOverlap ? obj1deltaAbs + obj2deltaAbs + flixel_FlxObject.SEPARATE_BIAS : 0; if(obj1delta > obj2delta) { overlap = object1.y + object1.get_height() - object2.y; if(checkMaxOverlap && overlap > maxOverlap || (object1.allowCollisions & 4096) == 0 || (object2.allowCollisions & 256) == 0) { overlap = 0; } else { object1.touching |= 4096; object2.touching |= 256; } } else if(obj1delta < obj2delta) { overlap = object1.y - object2.get_height() - object2.y; if(checkMaxOverlap && -overlap > maxOverlap || (object1.allowCollisions & 256) == 0 || (object2.allowCollisions & 4096) == 0) { overlap = 0; } else { object1.touching |= 256; object2.touching |= 4096; } } } } return overlap; }; flixel_FlxObject.separateY = function(object1,object2) { var immovable1 = object1.immovable; var immovable2 = object2.immovable; if(immovable1 && immovable2) { return false; } if(object1.flixelType == 3) { var tilemap = object1; return tilemap.overlapsWithCallback(object2,flixel_FlxObject.separateY); } if(object2.flixelType == 3) { var tilemap = object2; return tilemap.overlapsWithCallback(object1,flixel_FlxObject.separateY,true); } var overlap = flixel_FlxObject.computeOverlapY(object1,object2); if(overlap != 0) { var delta1 = object1.y - object1.last.y; var delta2 = object2.y - object2.last.y; var vel1 = object1.velocity.y; var vel2 = object2.velocity.y; var mass1 = object1.mass; var mass2 = object2.mass; var massSum = mass1 + mass2; var elasticity1 = object1.elasticity; var elasticity2 = object2.elasticity; if(!immovable1 && !immovable2) { object1.set_y(object1.y - overlap / 2); object2.set_y(object2.y + overlap / 2); var momentum = mass1 * vel1 + mass2 * vel2; var newVel1 = (momentum + elasticity1 * mass2 * (vel2 - vel1)) / massSum; var newVel2 = (momentum + elasticity2 * mass1 * (vel1 - vel2)) / massSum; object1.velocity.set_y(newVel1); object2.velocity.set_y(newVel2); } else if(!immovable1) { object1.set_y(object1.y - overlap); object1.velocity.set_y(vel2 - vel1 * elasticity1); } else if(!immovable2) { object2.set_y(object2.y + overlap); object2.velocity.set_y(vel1 - vel2 * elasticity2); } if(flixel_FlxObject.allowCollisionDrag(object1.collisionXDrag,object1,object2) && delta1 > delta2) { object1.set_x(object1.x + (object2.x - object2.last.x)); } else if(flixel_FlxObject.allowCollisionDrag(object2.collisionXDrag,object2,object1) && delta2 > delta1) { object2.set_x(object2.x + (object1.x - object1.last.x)); } return true; } return false; }; flixel_FlxObject.updateTouchingFlagsY = function(object1,object2) { if(object1.flixelType == 3) { var tilemap = object1; return tilemap.overlapsWithCallback(object2,flixel_FlxObject.updateTouchingFlagsY); } if(object2.flixelType == 3) { var tilemap = object2; return tilemap.overlapsWithCallback(object1,flixel_FlxObject.updateTouchingFlagsY,true); } return flixel_FlxObject.computeOverlapY(object1,object2,false) != 0; }; flixel_FlxObject.__super__ = flixel_FlxBasic; flixel_FlxObject.prototype = $extend(flixel_FlxBasic.prototype,{ x: null ,y: null ,width: null ,height: null ,pixelPerfectRender: null ,pixelPerfectPosition: null ,angle: null ,moves: null ,immovable: null ,scrollFactor: null ,velocity: null ,acceleration: null ,drag: null ,maxVelocity: null ,last: null ,mass: null ,elasticity: null ,angularVelocity: null ,angularAcceleration: null ,angularDrag: null ,maxAngular: null ,health: null ,touching: null ,wasTouching: null ,allowCollisions: null ,collisionXDrag: null ,collisionYDrag: null ,path: null ,_point: null ,_rect: null ,initVars: function() { this.flixelType = 1; var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.last = point; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.scrollFactor = point; this.pixelPerfectPosition = flixel_FlxObject.defaultPixelPerfectPosition; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.velocity = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.acceleration = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.drag = point; var x = 10000; var y = 10000; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.maxVelocity = point; } ,initMotionVars: function() { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.velocity = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.acceleration = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.drag = point; var x = 10000; var y = 10000; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.maxVelocity = point; } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); this.velocity = flixel_util_FlxDestroyUtil.put(this.velocity); this.acceleration = flixel_util_FlxDestroyUtil.put(this.acceleration); this.drag = flixel_util_FlxDestroyUtil.put(this.drag); this.maxVelocity = flixel_util_FlxDestroyUtil.put(this.maxVelocity); this.scrollFactor = flixel_util_FlxDestroyUtil.put(this.scrollFactor); this.last = flixel_util_FlxDestroyUtil.put(this.last); this._point = flixel_util_FlxDestroyUtil.put(this._point); this._rect = flixel_util_FlxDestroyUtil.put(this._rect); } ,update: function(elapsed) { var this1 = this.last; var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.path != null && this.path.active) { this.path.update(elapsed); } if(this.moves) { this.updateMotion(elapsed); } this.wasTouching = this.touching; this.touching = 0; } ,updateMotion: function(elapsed) { var velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.angularVelocity,this.angularAcceleration,this.angularDrag,this.maxAngular,elapsed) - this.angularVelocity); this.angularVelocity += velocityDelta; this.set_angle(this.angle + this.angularVelocity * elapsed); this.angularVelocity += velocityDelta; velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.velocity.x,this.acceleration.x,this.drag.x,this.maxVelocity.x,elapsed) - this.velocity.x); this.velocity.set_x(this.velocity.x + velocityDelta); var delta = this.velocity.x * elapsed; this.velocity.set_x(this.velocity.x + velocityDelta); this.set_x(this.x + delta); velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.velocity.y,this.acceleration.y,this.drag.y,this.maxVelocity.y,elapsed) - this.velocity.y); this.velocity.set_y(this.velocity.y + velocityDelta); delta = this.velocity.y * elapsed; this.velocity.set_y(this.velocity.y + velocityDelta); this.set_y(this.y + delta); } ,draw: function() { } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var group = flixel_group_FlxTypedGroup.resolveGroup(objectOrGroup); if(group != null) { var _g = this; var x = 0; var y = 0; var inScreenSpace1 = inScreenSpace; var camera1 = camera; return group.any(function(objectOrGroup) { return _g.overlaps(objectOrGroup,inScreenSpace1,camera1); }); } if(objectOrGroup.flixelType == 3) { var tilemap = objectOrGroup; return tilemap.overlaps(this,inScreenSpace,camera); } var object = objectOrGroup; if(!inScreenSpace) { if(object.x + object.get_width() > this.x && object.x < this.x + this.get_width() && object.y + object.get_height() > this.y) { return object.y < this.y + this.get_height(); } else { return false; } } if(camera == null) { camera = flixel_FlxG.camera; } var objectScreenPos = object.getScreenPosition(null,camera); this.getScreenPosition(this._point,camera); if(objectScreenPos.x + object.get_width() > this._point.x && objectScreenPos.x < this._point.x + this.get_width() && objectScreenPos.y + object.get_height() > this._point.y) { return objectScreenPos.y < this._point.y + this.get_height(); } else { return false; } } ,overlapsCallback: function(objectOrGroup,x,y,inScreenSpace,camera) { return this.overlaps(objectOrGroup,inScreenSpace,camera); } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var group = flixel_group_FlxTypedGroup.resolveGroup(objectOrGroup); if(group != null) { var _g = this; var x1 = x; var y1 = y; var inScreenSpace1 = inScreenSpace; var camera1 = camera; return group.any(function(objectOrGroup) { return _g.overlapsAt(x1,y1,objectOrGroup,inScreenSpace1,camera1); }); } if(objectOrGroup.flixelType == 3) { var tilemap = objectOrGroup; return tilemap.overlapsAt(tilemap.x - (x - this.x),tilemap.y - (y - this.y),this,inScreenSpace,camera); } var object = objectOrGroup; if(!inScreenSpace) { if(object.x + object.get_width() > x && object.x < x + this.get_width() && object.y + object.get_height() > y) { return object.y < y + this.get_height(); } else { return false; } } if(camera == null) { camera = flixel_FlxG.camera; } var objectScreenPos = object.getScreenPosition(null,camera); this.getScreenPosition(this._point,camera); if(objectScreenPos.x + object.get_width() > this._point.x && objectScreenPos.x < this._point.x + this.get_width() && objectScreenPos.y + object.get_height() > this._point.y) { return objectScreenPos.y < this._point.y + this.get_height(); } else { return false; } } ,overlapsAtCallback: function(objectOrGroup,x,y,inScreenSpace,camera) { return this.overlapsAt(x,y,objectOrGroup,inScreenSpace,camera); } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } if(!inScreenSpace) { if(point.x >= this.x && point.x < this.x + this.get_width() && point.y >= this.y) { return point.y < this.y + this.get_height(); } else { return false; } } if(camera == null) { camera = flixel_FlxG.camera; } var xPos = point.x - camera.scroll.x; var yPos = point.y - camera.scroll.y; this.getScreenPosition(this._point,camera); if(point._weak) { point.put(); } if(xPos >= this._point.x && xPos < this._point.x + this.get_width() && yPos >= this._point.y) { return yPos < this._point.y + this.get_height(); } else { return false; } } ,inWorldBounds: function() { var tmp; if(this.x + this.get_width() > flixel_FlxG.worldBounds.x) { var _this = flixel_FlxG.worldBounds; tmp = this.x < _this.x + _this.width; } else { tmp = false; } if(tmp && this.y + this.get_height() > flixel_FlxG.worldBounds.y) { var _this = flixel_FlxG.worldBounds; return this.y < _this.y + _this.height; } else { return false; } } ,getScreenPosition: function(result,camera) { if(result == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; result = point; } if(camera == null) { camera = flixel_FlxG.camera; } var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(x); result.set_y(y); if(this.pixelPerfectPosition) { result.set_x(Math.floor(result.x)); result.set_y(Math.floor(result.y)); } var x = camera.scroll.x * this.scrollFactor.x; var y = camera.scroll.y * this.scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x - x); result.set_y(result.y - y); return result; } ,getPosition: function(result) { if(result == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; result = point; } var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(x); result.set_y(y); return result; } ,getMidpoint: function(point) { if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } var x = this.x + this.get_width() * 0.5; var y = this.y + this.get_height() * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(x); point.set_y(y); return point; } ,getHitbox: function(rect) { if(rect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; rect = rect1; } var X = this.x; var Y = this.y; var Width = this.get_width(); var Height = this.get_height(); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } rect.x = X; rect.y = Y; rect.width = Width; rect.height = Height; return rect; } ,reset: function(x,y) { this.touching = 0; this.wasTouching = 0; this.setPosition(x,y); var this1 = this.last; var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.velocity; this1.set_x(0); this1.set_y(0); this.revive(); } ,isOnScreen: function(camera) { if(camera == null) { camera = flixel_FlxG.camera; } this.getScreenPosition(this._point,camera); var point = this._point; var width = this.get_width(); var height = this.get_height(); if(height == null) { height = 0; } if(width == null) { width = 0; } var contained = point.x + width > camera.viewMarginX && point.x < camera.width - camera.viewMarginX && point.y + height > camera.viewMarginY && point.y < camera.height - camera.viewMarginY; if(point._weak) { point.put(); } return contained; } ,isPixelPerfectRender: function(camera) { if(camera == null) { camera = flixel_FlxG.camera; } if(this.pixelPerfectRender == null) { return camera.pixelPerfectRender; } else { return this.pixelPerfectRender; } } ,isTouching: function(direction) { return (this.touching & direction) > 0; } ,justTouched: function(direction) { if((this.touching & direction) > 0) { return !((this.wasTouching & direction) > 0); } else { return false; } } ,hurt: function(damage) { this.health -= damage; if(this.health <= 0) { this.kill(); } } ,screenCenter: function(axes) { if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { this.set_x((flixel_FlxG.width - this.get_width()) / 2); } if(axes == 16 || axes == 17) { this.set_y((flixel_FlxG.height - this.get_height()) / 2); } return this; } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.set_x(x); this.set_y(y); } ,setSize: function(width,height) { this.set_width(width); this.set_height(height); } ,getBoundingBox: function(camera) { this.getScreenPosition(this._point,camera); var _this = this._rect; var X = this._point.x; var Y = this._point.y; var Width = this.get_width(); var Height = this.get_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; this._rect = camera.transformRect(this._rect); if(this.isPixelPerfectRender(camera)) { var _this = this._rect; _this.x = Math.floor(_this.x); _this.y = Math.floor(_this.y); _this.width = Math.floor(_this.width); _this.height = Math.floor(_this.height); } return this._rect; } ,getRotatedBounds: function(newRect) { if(newRect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; newRect = rect; } var X = this.x; var Y = this.y; var Width = this.get_width(); var Height = this.get_height(); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } newRect.x = X; newRect.y = Y; newRect.width = Width; newRect.height = Height; return newRect.getRotatedBounds(this.angle,null,newRect); } ,toString: function() { var value = this.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = this.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; var value = this.get_width(); var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "w"; _this2.value = value; var value = this.get_height(); var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "h"; _this3.value = value; var value = this.visible; var _this4 = flixel_util_LabelValuePair._pool.get(); _this4.label = "visible"; _this4.value = value; var value = this.velocity; var _this5 = flixel_util_LabelValuePair._pool.get(); _this5.label = "velocity"; _this5.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5]); } ,set_x: function(value) { return this.x = value; } ,set_y: function(value) { return this.y = value; } ,set_width: function(value) { return this.width = value; } ,set_height: function(value) { return this.height = value; } ,get_width: function() { return this.width; } ,get_height: function() { return this.height; } ,get_solid: function() { return (this.allowCollisions & 4369) > 0; } ,set_solid: function(value) { this.set_allowCollisions(value ? 4369 : 0); return value; } ,set_angle: function(value) { return this.angle = value; } ,set_moves: function(value) { return this.moves = value; } ,set_immovable: function(value) { return this.immovable = value; } ,set_pixelPerfectRender: function(value) { return this.pixelPerfectRender = value; } ,set_allowCollisions: function(value) { return this.allowCollisions = value; } ,get_collisonXDrag: function() { return this.collisionXDrag == 2; } ,set_collisonXDrag: function(value) { this.collisionXDrag = value ? 2 : 0; return value; } ,set_path: function(path) { if(this.path == path) { return path; } if(this.path != null) { this.path.object = null; } if(path != null) { path.object = this; } return this.path = path; } ,__class__: flixel_FlxObject ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set_path:"set_path",set_collisonXDrag:"set_collisonXDrag",get_collisonXDrag:"get_collisonXDrag",set_allowCollisions:"set_allowCollisions",set_solid:"set_solid",get_solid:"get_solid",set_immovable:"set_immovable",set_moves:"set_moves",set_angle:"set_angle",set_pixelPerfectRender:"set_pixelPerfectRender",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_y:"set_y",set_x:"set_x"}) }); var flixel_FlxSprite = function(X,Y,SimpleGraphic) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._facingFlip = new haxe_ds_IntMap(); this._angleChanged = true; this._cosAngle = 1; this._sinAngle = 0; this._facingVerticalMult = 1; this._facingHorizontalMult = 1; this.useColorTransform = false; this.color = 16777215; this.flipY = false; this.flipX = false; this.facing = 16; this.alpha = 1.0; this.bakedRotationAngle = 0; this.frameHeight = 0; this.frameWidth = 0; this.dirty = true; this.antialiasing = flixel_FlxSprite.defaultAntialiasing; this.useFramePixels = true; flixel_FlxObject.call(this,X,Y); this.set_useFramePixels(flixel_FlxG.renderBlit); if(SimpleGraphic != null) { this.loadGraphic(SimpleGraphic); } }; $hxClasses["flixel.FlxSprite"] = flixel_FlxSprite; flixel_FlxSprite.__name__ = "flixel.FlxSprite"; flixel_FlxSprite.__super__ = flixel_FlxObject; flixel_FlxSprite.prototype = $extend(flixel_FlxObject.prototype,{ animation: null ,framePixels: null ,useFramePixels: null ,antialiasing: null ,dirty: null ,frame: null ,frameWidth: null ,frameHeight: null ,frames: null ,graphic: null ,bakedRotationAngle: null ,alpha: null ,facing: null ,flipX: null ,flipY: null ,origin: null ,offset: null ,scale: null ,blend: null ,color: null ,colorTransform: null ,useColorTransform: null ,clipRect: null ,shader: null ,_frame: null ,_frameGraphic: null ,_facingHorizontalMult: null ,_facingVerticalMult: null ,_flashPoint: null ,_flashRect: null ,_flashRect2: null ,_flashPointZero: null ,_matrix: null ,_halfSize: null ,_scaledOrigin: null ,_sinAngle: null ,_cosAngle: null ,_angleChanged: null ,_facingFlip: null ,initVars: function() { flixel_FlxObject.prototype.initVars.call(this); this.animation = new flixel_animation_FlxAnimationController(this); this._flashPoint = new openfl_geom_Point(); this._flashRect = new openfl_geom_Rectangle(); this._flashRect2 = new openfl_geom_Rectangle(); this._flashPointZero = new openfl_geom_Point(); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.origin = point; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.scale = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._halfSize = point; this._matrix = new flixel_math_FlxMatrix(); this.colorTransform = new openfl_geom_ColorTransform(); this._scaledOrigin = new flixel_math_FlxBasePoint(0,0); } ,destroy: function() { flixel_FlxObject.prototype.destroy.call(this); this.animation = flixel_util_FlxDestroyUtil.destroy(this.animation); this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this.origin = flixel_util_FlxDestroyUtil.put(this.origin); this.scale = flixel_util_FlxDestroyUtil.put(this.scale); this._halfSize = flixel_util_FlxDestroyUtil.put(this._halfSize); this._scaledOrigin = flixel_util_FlxDestroyUtil.put(this._scaledOrigin); this.framePixels = flixel_util_FlxDestroyUtil.dispose(this.framePixels); this._flashPoint = null; this._flashRect = null; this._flashRect2 = null; this._flashPointZero = null; this._matrix = null; this.colorTransform = null; this.set_blend(null); this.set_frames(null); this.set_graphic(null); this._frame = flixel_util_FlxDestroyUtil.destroy(this._frame); this._frameGraphic = flixel_util_FlxDestroyUtil.destroy(this._frameGraphic); this.shader = null; } ,clone: function() { return new flixel_FlxSprite().loadGraphicFromSprite(this); } ,loadGraphicFromSprite: function(Sprite) { this.set_frames(Sprite.frames); this.bakedRotationAngle = Sprite.bakedRotationAngle; if(this.bakedRotationAngle > 0) { this.set_width(Sprite.get_width()); this.set_height(Sprite.get_height()); this.centerOffsets(); } this.set_antialiasing(Sprite.antialiasing); this.animation.copyFrom(Sprite.animation); this.graphicLoaded(); this.set_clipRect(Sprite.clipRect); return this; } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var graph = flixel_FlxG.bitmap.add(graphic,unique,key); if(graph == null) { return this; } if(frameWidth == 0) { frameWidth = animated ? graph.height : graph.width; if(frameWidth > graph.width) { frameWidth = graph.width; } } else if(frameWidth > graph.width) { flixel_FlxG.log.advanced("frameWidth:" + frameWidth + " is larger than the graphic's width:" + graph.width,flixel_system_debug_log_LogStyle.WARNING,true); } if(frameHeight == 0) { frameHeight = animated ? frameWidth : graph.height; if(frameHeight > graph.height) { frameHeight = graph.height; } } else if(frameHeight > graph.height) { flixel_FlxG.log.advanced("frameHeight:" + frameHeight + " is larger than the graphic's height:" + graph.height,flixel_system_debug_log_LogStyle.WARNING,true); } if(animated) { var x = frameWidth; var y = frameHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.set_frames(flixel_graphics_frames_FlxTileFrames.fromGraphic(graph,point)); } else { this.set_frames(graph.get_imageFrame()); } return this; } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var brushGraphic = flixel_FlxG.bitmap.add(Graphic,false,Key); if(brushGraphic == null) { return this; } var brush = brushGraphic.bitmap; var key = brushGraphic.key; if(Frame >= 0) { var brushSize = brush.height; var framesNum = brush.width / brushSize | 0; if(!(framesNum > Frame || framesNum == 0)) { Frame %= framesNum; } key += ":" + Frame; var full = brush; brush = new openfl_display_BitmapData(brushSize,brushSize,true,0); this._flashRect.setTo(Frame * brushSize,0,brushSize,brushSize); brush.copyPixels(full,this._flashRect,this._flashPointZero); } key += ":" + Rotations + ":" + (AutoBuffer == null ? "null" : "" + AutoBuffer); var tempGraph = flixel_FlxG.bitmap._cache.h[key]; if(tempGraph == null) { var bitmap = flixel_util_FlxBitmapDataUtil.generateRotations(brush,Rotations,AntiAliasing,AutoBuffer); tempGraph = flixel_graphics_FlxGraphic.fromBitmapData(bitmap,false,key); } var max = brush.height > brush.width ? brush.height : brush.width; if(AutoBuffer) { max = max * 1.5 | 0; } var x = max; var y = max; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.set_frames(flixel_graphics_frames_FlxTileFrames.fromGraphic(tempGraph,point)); if(AutoBuffer) { this.set_width(brush.width); this.set_height(brush.height); this.centerOffsets(); } this.bakedRotationAngle = 360 / Rotations; this.animation.createPrerotated(); return this; } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var key = Frame.parent.key; if(Frame.name != null) { key += ":" + Frame.name; } else { var _this = Frame.frame; var value = _this.x; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "x"; _this1.value = value; var value = _this.y; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "y"; _this2.value = value; var value = _this.width; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "w"; _this3.value = value; var value = _this.height; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "h"; _this.value = value; key += ":" + flixel_util_FlxStringUtil.getDebugString([_this1,_this2,_this3,_this]); } var graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic == null) { graphic = flixel_graphics_FlxGraphic.fromBitmapData(Frame.paint(),false,key); } return this.loadRotatedGraphic(graphic,Rotations,-1,AntiAliasing,AutoBuffer); } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var graph = flixel_FlxG.bitmap.create(Width,Height,Color,Unique,Key); this.set_frames(graph.get_imageFrame()); return this; } ,graphicLoaded: function() { } ,resetSize: function() { this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = this.frameWidth; this._flashRect.height = this.frameHeight; } ,resetFrameSize: function() { if(this.frame != null) { this.frameWidth = this.frame.sourceSize.x | 0; this.frameHeight = this.frame.sourceSize.y | 0; } var this1 = this._halfSize; var x = 0.5 * this.frameWidth; var y = 0.5 * this.frameHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = this.frameWidth; this._flashRect.height = this.frameHeight; } ,resetSizeFromFrame: function() { this.set_width(this.frameWidth); this.set_height(this.frameHeight); } ,resetFrame: function() { this.set_frame(this.frame); } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } if(width <= 0 && height <= 0) { return; } var newScaleX = width / this.frameWidth; var newScaleY = height / this.frameHeight; var this1 = this.scale; var x = newScaleX; var y = newScaleY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(width <= 0) { this.scale.set_x(newScaleY); } else if(height <= 0) { this.scale.set_y(newScaleX); } } ,updateHitbox: function() { this.set_width(Math.abs(this.scale.x) * this.frameWidth); this.set_height(Math.abs(this.scale.y) * this.frameHeight); var this1 = this.offset; var x = -0.5 * (this.get_width() - this.frameWidth); var y = -0.5 * (this.get_height() - this.frameHeight); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,resetHelpers: function() { if(this.frame != null) { this.frameWidth = this.frame.sourceSize.x | 0; this.frameHeight = this.frame.sourceSize.y | 0; } var this1 = this._halfSize; var x = 0.5 * this.frameWidth; var y = 0.5 * this.frameHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = this.frameWidth; this._flashRect.height = this.frameHeight; this.set_width(this.frameWidth); this.set_height(this.frameHeight); this._flashRect2.x = 0; this._flashRect2.y = 0; if(this.graphic != null) { this._flashRect2.width = this.graphic.width; this._flashRect2.height = this.graphic.height; } var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(flixel_FlxG.renderBlit) { this.dirty = true; this.updateFramePixels(); } } ,update: function(elapsed) { flixel_FlxObject.prototype.update.call(this,elapsed); this.updateAnimation(elapsed); } ,updateAnimation: function(elapsed) { this.animation.update(elapsed); } ,checkEmptyFrame: function() { if(this._frame == null) { this.loadGraphic("flixel/images/logo/default.png"); } else if(this.graphic != null && this.graphic.shader == null) { var width = this.get_width(); var height = this.get_height(); flixel_FlxG.log.advanced("Cannot render a destroyed graphic, the placeholder image will be used instead",flixel_system_debug_log_LogStyle.ERROR,true); this.loadGraphic("flixel/images/logo/default.png"); this.set_width(width); this.set_height(height); } } ,draw: function() { this.checkEmptyFrame(); if(this.alpha == 0 || this._frame.type == 2) { return; } if(this.dirty) { this.calcFrame(this.useFramePixels); } var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) { continue; } if(this.isSimpleRender(camera)) { this.drawSimple(camera); } else { this.drawComplex(camera); } } } ,drawSimple: function(camera) { var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } if(this.isPixelPerfectRender(camera)) { var this1 = this._point; this1.set_x(Math.floor(this1.x)); this1.set_y(Math.floor(this1.y)); } var this1 = this._point; var p = this._flashPoint; if(p == null) { p = new openfl_geom_Point(); } p.x = this1.x; p.y = this1.y; camera.copyPixels(this._frame,this.framePixels,this._flashRect,this._flashPoint,this.colorTransform,this.blend,this.antialiasing); } ,drawComplex: function(camera) { var doFlipX = this.flipX != this._frame.flipX; var doFlipY = this.flipY != this._frame.flipY; this._frame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY); this._matrix.translate(-this.origin.x,-this.origin.y); this._matrix.scale(this.scale.x,this.scale.y); if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this1 = this._point; var x = this.origin.x; var y = this.origin.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); this._matrix.translate(this._point.x,this._point.y); if(this.isPixelPerfectRender(camera)) { this._matrix.tx = Math.floor(this._matrix.tx); this._matrix.ty = Math.floor(this._matrix.ty); } camera.drawPixels(this._frame,this.framePixels,this._matrix,this.colorTransform,this.blend,this.antialiasing,this.shader); } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } Brush.drawFrame(); if(this.graphic == null || Brush.graphic == null) { throw haxe_Exception.thrown("Cannot stamp to or from a FlxSprite with no graphics."); } var bitmapData = Brush.framePixels; if(this.isSimpleRenderBlit()) { this._flashPoint.x = X + this.frame.frame.x; this._flashPoint.y = Y + this.frame.frame.y; this._flashRect2.width = bitmapData.width; this._flashRect2.height = bitmapData.height; this.graphic.bitmap.copyPixels(bitmapData,this._flashRect2,this._flashPoint,null,null,true); this._flashRect2.width = this.graphic.bitmap.width; this._flashRect2.height = this.graphic.bitmap.height; } else { this._matrix.identity(); this._matrix.translate(-Brush.origin.x,-Brush.origin.y); this._matrix.scale(Brush.scale.x,Brush.scale.y); if(Brush.angle != 0) { this._matrix.rotate(Brush.angle * (Math.PI / 180)); } this._matrix.translate(X + this.frame.frame.x + Brush.origin.x,Y + this.frame.frame.y + Brush.origin.y); var brushBlend = Brush.blend; this.graphic.bitmap.draw(bitmapData,this._matrix,null,brushBlend,null,Brush.antialiasing); } if(flixel_FlxG.renderBlit) { this.dirty = true; this.calcFrame(); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } if(flixel_FlxG.renderBlit) { if(Force || this.dirty) { this.dirty = true; this.calcFrame(); } } else { this.dirty = true; this.calcFrame(true); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } this.offset.set_x((this.frameWidth - this.get_width()) * 0.5); this.offset.set_y((this.frameHeight - this.get_height()) * 0.5); if(AdjustPosition) { this.set_x(this.x + this.offset.x); this.set_y(this.y + this.offset.y); } } ,centerOrigin: function() { var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var positions = flixel_util_FlxBitmapDataUtil.replaceColor(this.graphic.bitmap,Color,NewColor,FetchPositions); if(positions != null) { this.dirty = true; } return positions; } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var color = flixel_util_FlxColor._new(); var Alpha = 1; if(Alpha == null) { Alpha = 1; } var Value = Math.round(redMultiplier * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(greenMultiplier * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(blueMultiplier * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; this.set_color(color & 16777215); this.set_alpha(alphaMultiplier); flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); flixel_util_FlxColorTransformUtil.setOffsets(this.colorTransform,redOffset,greenOffset,blueOffset,alphaOffset); this.useColorTransform = this.alpha != 1 || this.color != 16777215 || flixel_util_FlxColorTransformUtil.hasRGBOffsets(this.colorTransform); this.dirty = true; } ,updateColorTransform: function() { if(this.colorTransform == null) { return; } this.useColorTransform = this.alpha != 1 || this.color != 16777215; if(this.useColorTransform) { flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,(this.color >> 16 & 255) / 255,(this.color >> 8 & 255) / 255,(this.color & 255) / 255,this.alpha); } else { flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,1,1,1,1); } this.dirty = true; } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var pixelColor = this.getPixelAt(worldPoint,camera); if(pixelColor != null) { return (pixelColor >> 24 & 255) * this.alpha >= alphaTolerance; } return false; } ,getPixelAt: function(worldPoint,camera) { this.transformWorldToPixels(worldPoint,camera,this._point); if(this._point.x >= 0 && this._point.x <= this.frameWidth && this._point.y >= 0 && this._point.y <= this.frameHeight) { var frameData = this.updateFramePixels(); return frameData.getPixel32(this._point.x | 0,this._point.y | 0); } return null; } ,getPixelAtScreen: function(screenPoint,camera) { this.transformScreenToPixels(screenPoint,camera,this._point); if(this._point.x >= 0 && this._point.x <= this.frameWidth && this._point.y >= 0 && this._point.y <= this.frameHeight) { var frameData = this.updateFramePixels(); return frameData.getPixel32(this._point.x | 0,this._point.y | 0); } return null; } ,transformWorldToPixels: function(worldPoint,camera,result) { if(camera == null) { camera = flixel_FlxG.camera; } var x = worldPoint.x - camera.scroll.x; var y = worldPoint.y - camera.scroll.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var screenPoint = point1; if(worldPoint._weak) { worldPoint.put(); } return this.transformScreenToPixels(screenPoint,camera,result); } ,transformWorldToPixelsSimple: function(worldPoint,result) { result = this.getPosition(result); var x = worldPoint.x; var y = worldPoint.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x - x); result.set_y(result.y - y); result.set_x(result.x * -1); result.set_y(result.y * -1); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x + x); result.set_y(result.y + y); if(point._weak) { point.put(); } var point = this.origin; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x - x); result.set_y(result.y - y); if(point._weak) { point.put(); } var x = 1 / this.scale.x; var y = 1 / this.scale.y; if(y == null) { y = x; } result.set_x(result.x * x); result.set_y(result.y * y); var degs = flixel_math_FlxPoint.get_radians(result) * (180 / Math.PI) - this.angle; var rads = degs * (Math.PI / 180); var len = Math.sqrt(result.x * result.x + result.y * result.y); result.set_x(len * Math.cos(rads)); result.set_y(len * Math.sin(rads)); var point = this.origin; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x + x); result.set_y(result.y + y); if(point._weak) { point.put(); } if(worldPoint._weak) { worldPoint.put(); } return result; } ,transformScreenToPixels: function(screenPoint,camera,result) { result = this.getScreenPosition(result,camera); var x = screenPoint.x; var y = screenPoint.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x - x); result.set_y(result.y - y); result.set_x(result.x * -1); result.set_y(result.y * -1); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x + x); result.set_y(result.y + y); if(point._weak) { point.put(); } var point = this.origin; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x - x); result.set_y(result.y - y); if(point._weak) { point.put(); } var x = 1 / this.scale.x; var y = 1 / this.scale.y; if(y == null) { y = x; } result.set_x(result.x * x); result.set_y(result.y * y); var degs = flixel_math_FlxPoint.get_radians(result) * (180 / Math.PI) - this.angle; var rads = degs * (Math.PI / 180); var len = Math.sqrt(result.x * result.x + result.y * result.y); result.set_x(len * Math.cos(rads)); result.set_y(len * Math.sin(rads)); var point = this.origin; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(result.x + x); result.set_y(result.y + y); if(point._weak) { point.put(); } if(screenPoint._weak) { screenPoint.put(); } return result; } ,calcFrame: function(force) { if(force == null) { force = false; } this.checkEmptyFrame(); if(flixel_FlxG.renderTile && !force) { return; } this.updateFramePixels(); } ,updateFramePixels: function() { if(this._frame == null || !this.dirty) { return this.framePixels; } if(flixel_FlxG.renderTile && this._frameGraphic != null) { this.dirty = false; return this.framePixels; } var doFlipX = this.flipX != this._frame.flipX; var doFlipX1 = this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX; var doFlipY = this.flipY != this._frame.flipY; var doFlipY1 = this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY; if(!doFlipX1 && !doFlipY1 && this._frame.type == 0) { this.framePixels = this._frame.paint(this.framePixels,this._flashPointZero,false,true); } else { this.framePixels = this._frame.paintRotatedAndFlipped(this.framePixels,this._flashPointZero,0,doFlipX1,doFlipY1,false,true); } if(this.useColorTransform) { this.framePixels.colorTransform(this._flashRect,this.colorTransform); } if(flixel_FlxG.renderTile && this.useFramePixels) { this._frameGraphic = flixel_util_FlxDestroyUtil.destroy(this._frameGraphic); this._frameGraphic = flixel_graphics_FlxGraphic.fromBitmapData(this.framePixels,false,null,false); this._frame = this._frameGraphic.get_imageFrame().get_frame().copyTo(this._frame); } this.dirty = false; return this.framePixels; } ,getGraphicMidpoint: function(point) { if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } var x = this.x + this.frameWidth * 0.5; var y = this.y + this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(x); point.set_y(y); return point; } ,isOnScreen: function(camera) { if(camera == null) { camera = flixel_FlxG.camera; } var rect = this.getScreenBounds(this._rect,camera); var contained = rect.x + rect.width > camera.viewMarginX && rect.x < camera.width - camera.viewMarginX && rect.y + rect.height > camera.viewMarginY && rect.y < camera.height - camera.viewMarginY; if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return contained; } ,isSimpleRender: function(camera) { if(flixel_FlxG.renderTile) { return false; } return this.isSimpleRenderBlit(camera); } ,isSimpleRenderBlit: function(camera) { var result = (this.angle == 0 || this.bakedRotationAngle > 0) && this.scale.x == 1 && this.scale.y == 1 && this.blend == null; result = result && (camera != null ? this.isPixelPerfectRender(camera) : this.pixelPerfectRender); return result; } ,getRotatedBounds: function(newRect) { if(newRect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; newRect = rect; } var X = this.x; var Y = this.y; var Width = this.get_width(); var Height = this.get_height(); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } newRect.x = X; newRect.y = Y; newRect.width = Width; newRect.height = Height; return newRect.getRotatedBounds(this.angle,this.origin,newRect); } ,getScreenBounds: function(newRect,camera) { if(newRect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; newRect = rect; } if(camera == null) { camera = flixel_FlxG.camera; } newRect.x = this.x; newRect.y = this.y; if(this.pixelPerfectPosition) { newRect.x = Math.floor(newRect.x); newRect.y = Math.floor(newRect.y); newRect.width = Math.floor(newRect.width); newRect.height = Math.floor(newRect.height); } var this1 = this._scaledOrigin; var x = this.origin.x * this.scale.x; var y = this.origin.y * this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); newRect.x += -(camera.scroll.x * this.scrollFactor.x | 0) - this.offset.x + this.origin.x - this._scaledOrigin.x; newRect.y += -(camera.scroll.y * this.scrollFactor.y | 0) - this.offset.y + this.origin.y - this._scaledOrigin.y; if(this.isPixelPerfectRender(camera)) { newRect.x = Math.floor(newRect.x); newRect.y = Math.floor(newRect.y); newRect.width = Math.floor(newRect.width); newRect.height = Math.floor(newRect.height); } var Height = this.frameHeight * Math.abs(this.scale.y); newRect.width = this.frameWidth * Math.abs(this.scale.x); newRect.height = Height; return newRect.getRotatedBounds(this.angle,this._scaledOrigin,newRect); } ,setFacingFlip: function(Direction,FlipX,FlipY) { this._facingFlip.h[Direction] = { x : FlipX, y : FlipY}; } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } if(saveAnimations) { var animations = this.animation._animations; var reverse = false; var index = 0; var frameIndex = this.animation.frameIndex; var currName = null; if(this.animation._curAnim != null) { reverse = this.animation._curAnim.reversed; index = this.animation._curAnim.curFrame; currName = this.animation._curAnim.name; } this.animation._animations = null; this.set_frames(Frames); this.set_frame(this.frames.frames[frameIndex]); this.animation._animations = animations; if(currName != null) { this.animation.play(currName,false,reverse,index); } } else { this.set_frames(Frames); } return this; } ,get_pixels: function() { if(this.graphic == null) { return null; } else { return this.graphic.bitmap; } } ,set_pixels: function(Pixels) { var key = flixel_FlxG.bitmap.findKeyForBitmap(Pixels); if(key == null) { key = flixel_FlxG.bitmap.getUniqueKey(); this.set_graphic(flixel_FlxG.bitmap.add(Pixels,false,key)); } else { this.set_graphic(flixel_FlxG.bitmap._cache.h[key]); } this.set_frames(this.graphic.get_imageFrame()); return Pixels; } ,set_frame: function(Value) { this.frame = Value; if(this.frame != null) { if(this.frame != null) { this.frameWidth = this.frame.sourceSize.x | 0; this.frameHeight = this.frame.sourceSize.y | 0; } var this1 = this._halfSize; var x = 0.5 * this.frameWidth; var y = 0.5 * this.frameHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = this.frameWidth; this._flashRect.height = this.frameHeight; this.dirty = true; } else if(this.frames != null && this.frames.frames != null && this.get_numFrames() > 0) { this.frame = this.frames.frames[0]; this.dirty = true; } else { return null; } if(flixel_FlxG.renderTile) { this._frameGraphic = flixel_util_FlxDestroyUtil.destroy(this._frameGraphic); } if(this.clipRect != null) { this._frame = this.frame.clipTo(this.clipRect,this._frame); } else { this._frame = this.frame.copyTo(this._frame); } return this.frame; } ,set_facing: function(Direction) { var flip = this._facingFlip.h[Direction]; if(flip != null) { this.set_flipX(flip.x); this.set_flipY(flip.y); } return this.facing = Direction; } ,set_alpha: function(Alpha) { if(this.alpha == Alpha) { return Alpha; } var lowerBound = Alpha < 0 ? 0 : Alpha; this.alpha = lowerBound > 1 ? 1 : lowerBound; this.updateColorTransform(); return this.alpha; } ,set_color: function(Color) { if(this.color == Color) { return Color; } this.color = Color; this.updateColorTransform(); return this.color; } ,set_angle: function(Value) { var newAngle = this.angle != Value; var ret = flixel_FlxObject.prototype.set_angle.call(this,Value); if(newAngle) { this._angleChanged = true; this.animation.update(0); } return ret; } ,updateTrig: function() { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } } ,set_blend: function(Value) { return this.blend = Value; } ,set_graphic: function(value) { if(this.graphic != value) { if(value != null) { value.incrementUseCount(); } if(this.graphic != null) { this.graphic.decrementUseCount(); } this.graphic = value; } return value; } ,set_clipRect: function(rect) { if(rect != null) { rect.x = Math.round(rect.x); rect.y = Math.round(rect.y); rect.width = Math.round(rect.width); rect.height = Math.round(rect.height); this.clipRect = rect; } else { this.clipRect = null; } if(this.frames != null) { this.set_frame(this.frames.frames[this.animation.frameIndex]); } return rect; } ,set_frames: function(Frames) { if(this.animation != null) { this.animation.destroyAnimations(); } if(Frames != null) { this.set_graphic(Frames.parent); this.frames = Frames; this.set_frame(this.frames.frames[0]); this.resetHelpers(); this.bakedRotationAngle = 0; this.animation.set_frameIndex(0); this.graphicLoaded(); } else { this.frames = null; this.set_frame(null); this.set_graphic(null); } return Frames; } ,get_numFrames: function() { if(this.frames != null) { return this.frames.frames.length; } return 0; } ,set_flipX: function(Value) { if(flixel_FlxG.renderTile) { this._facingHorizontalMult = Value ? -1 : 1; } this.dirty = this.flipX != Value || this.dirty; return this.flipX = Value; } ,set_flipY: function(Value) { if(flixel_FlxG.renderTile) { this._facingVerticalMult = Value ? -1 : 1; } this.dirty = this.flipY != Value || this.dirty; return this.flipY = Value; } ,set_antialiasing: function(value) { return this.antialiasing = value; } ,set_useFramePixels: function(value) { if(flixel_FlxG.renderTile) { if(value != this.useFramePixels) { this.useFramePixels = value; this.set_frame(this.frame); if(value) { this.updateFramePixels(); } } return value; } else { this.useFramePixels = true; return true; } } ,checkFlipX: function() { var doFlipX = this.flipX != this._frame.flipX; if(this.animation._curAnim != null) { return doFlipX != this.animation._curAnim.flipX; } return doFlipX; } ,checkFlipY: function() { var doFlipY = this.flipY != this._frame.flipY; if(this.animation._curAnim != null) { return doFlipY != this.animation._curAnim.flipY; } return doFlipY; } ,__class__: flixel_FlxSprite ,__properties__: $extend(flixel_FlxObject.prototype.__properties__,{set_clipRect:"set_clipRect",set_color:"set_color",set_blend:"set_blend",set_flipY:"set_flipY",set_flipX:"set_flipX",set_facing:"set_facing",set_alpha:"set_alpha",set_graphic:"set_graphic",set_frames:"set_frames",get_numFrames:"get_numFrames",set_frame:"set_frame",set_pixels:"set_pixels",get_pixels:"get_pixels",set_antialiasing:"set_antialiasing",set_useFramePixels:"set_useFramePixels"}) }); var flixel_IFlxSprite = function() { }; $hxClasses["flixel.IFlxSprite"] = flixel_IFlxSprite; flixel_IFlxSprite.__name__ = "flixel.IFlxSprite"; flixel_IFlxSprite.__isInterface__ = true; flixel_IFlxSprite.__interfaces__ = [flixel_IFlxBasic]; flixel_IFlxSprite.prototype = { set_x: null ,set_y: null ,set_alpha: null ,set_angle: null ,set_facing: null ,set_moves: null ,set_immovable: null ,x: null ,y: null ,alpha: null ,angle: null ,facing: null ,moves: null ,immovable: null ,offset: null ,origin: null ,scale: null ,velocity: null ,maxVelocity: null ,acceleration: null ,drag: null ,scrollFactor: null ,reset: null ,setPosition: null ,__class__: flixel_IFlxSprite ,__properties__: {set_immovable:"set_immovable",set_moves:"set_moves",set_facing:"set_facing",set_angle:"set_angle",set_alpha:"set_alpha",set_y:"set_y",set_x:"set_x"} }; var flixel_FlxStrip = function(X,Y,SimpleGraphic) { this.repeat = false; this.colors = openfl_Vector.toIntVector(null); this.uvtData = openfl_Vector.toFloatVector(null); this.indices = openfl_Vector.toIntVector(null); this.vertices = openfl_Vector.toFloatVector(null); flixel_FlxSprite.call(this,X,Y,SimpleGraphic); }; $hxClasses["flixel.FlxStrip"] = flixel_FlxStrip; flixel_FlxStrip.__name__ = "flixel.FlxStrip"; flixel_FlxStrip.__super__ = flixel_FlxSprite; flixel_FlxStrip.prototype = $extend(flixel_FlxSprite.prototype,{ vertices: null ,indices: null ,uvtData: null ,colors: null ,repeat: null ,destroy: function() { this.vertices = null; this.indices = null; this.uvtData = null; this.colors = null; flixel_FlxSprite.prototype.destroy.call(this); } ,draw: function() { if(this.alpha == 0 || this.graphic == null || this.vertices == null) { return; } var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists) { continue; } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } camera.drawTriangles(this.graphic,this.vertices,this.indices,this.uvtData,this.colors,this._point,this.blend,this.repeat,this.antialiasing,this.colorTransform,this.shader); } } ,__class__: flixel_FlxStrip }); var flixel_FlxSubState = function(BGColor) { if(BGColor == null) { BGColor = 0; } this._created = false; flixel_FlxState.call(this); this.closeCallback = null; this.openCallback = null; if(flixel_FlxG.renderTile) { this._bgSprite = new flixel_system_FlxBGSprite(); } this.set_bgColor(BGColor); }; $hxClasses["flixel.FlxSubState"] = flixel_FlxSubState; flixel_FlxSubState.__name__ = "flixel.FlxSubState"; flixel_FlxSubState.__super__ = flixel_FlxState; flixel_FlxSubState.prototype = $extend(flixel_FlxState.prototype,{ openCallback: null ,closeCallback: null ,_bgSprite: null ,_parentState: null ,_bgColor: null ,_created: null ,draw: function() { if(flixel_FlxG.renderBlit) { var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; camera.fill(this._bgColor); } } else { this._bgSprite.draw(); } flixel_FlxState.prototype.draw.call(this); } ,destroy: function() { flixel_FlxState.prototype.destroy.call(this); this.closeCallback = null; this.openCallback = null; this._parentState = null; this._bgSprite = flixel_util_FlxDestroyUtil.destroy(this._bgSprite); } ,close: function() { if(this._parentState != null && this._parentState.subState == this) { this._parentState.closeSubState(); } } ,get_bgColor: function() { return this._bgColor; } ,set_bgColor: function(Value) { if(flixel_FlxG.renderTile && this._bgSprite != null) { this._bgSprite.get_pixels().setPixel32(0,0,Value); } return this._bgColor = Value; } ,__class__: flixel_FlxSubState }); var flixel_addons_api_FlxGameJolt = function() { }; $hxClasses["flixel.addons.api.FlxGameJolt"] = flixel_addons_api_FlxGameJolt; flixel_addons_api_FlxGameJolt.__name__ = "flixel.addons.api.FlxGameJolt"; flixel_addons_api_FlxGameJolt.__properties__ = {get_isEmbeddedFlash:"get_isEmbeddedFlash",get_isQuickPlay:"get_isQuickPlay",get_usertoken:"get_usertoken",get_username:"get_username",get_authenticated:"get_authenticated",get_gameInit:"get_gameInit",get_initialized:"get_initialized"}; flixel_addons_api_FlxGameJolt._callBack = null; flixel_addons_api_FlxGameJolt._userName = null; flixel_addons_api_FlxGameJolt._userToken = null; flixel_addons_api_FlxGameJolt._idURL = null; flixel_addons_api_FlxGameJolt._loader = null; flixel_addons_api_FlxGameJolt.init = function(GameID,PrivateKey,AutoAuth,UserName,UserToken,Callback) { if(AutoAuth == null) { AutoAuth = false; } if(flixel_addons_api_FlxGameJolt._gameID != 0 && flixel_addons_api_FlxGameJolt._privateKey != "") { return; } flixel_addons_api_FlxGameJolt._gameID = GameID; flixel_addons_api_FlxGameJolt._privateKey = PrivateKey; if(AutoAuth) { if(UserName != null && UserToken != null) { flixel_addons_api_FlxGameJolt.authUser(UserName,UserToken,Callback); } else if((UserName == null || UserToken == null) && (flixel_addons_api_FlxGameJolt.get_isEmbeddedFlash() || flixel_addons_api_FlxGameJolt.get_isQuickPlay())) { flixel_addons_api_FlxGameJolt.authUser(null,null,Callback); } else { Callback(false); } } }; flixel_addons_api_FlxGameJolt.fetchUser = function(UserID,UserName,UserIDs,Callback) { var tempURL = "https://gamejolt.com/api/game/v1/" + "users/" + "?format=keypair" + "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; if(UserID != null && UserID != 0) { tempURL += "&user_id=" + (UserID == null ? "null" : "" + UserID); } else if(UserName != null && UserName != "") { tempURL += "&username=" + UserName; } else if(UserIDs != null && UserIDs != []) { tempURL += "&user_id="; var _g = 0; while(_g < UserIDs.length) { var id = UserIDs[_g]; ++_g; tempURL += (id == null ? "null" : "" + id) + ","; } tempURL = HxOverrides.substr(tempURL,0,tempURL.length - 1); } else { return; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.authUser = function(UserName,UserToken,Callback) { if(!flixel_addons_api_FlxGameJolt.get_gameInit() || flixel_addons_api_FlxGameJolt._userName != null && flixel_addons_api_FlxGameJolt._userToken != null) { Callback(false); return; } if(!(UserName == null || UserToken == null)) { flixel_addons_api_FlxGameJolt._userName = UserName; flixel_addons_api_FlxGameJolt._userToken = UserToken; } if(flixel_addons_api_FlxGameJolt._userName != null && flixel_addons_api_FlxGameJolt._userToken != null) { flixel_addons_api_FlxGameJolt._idURL = "&game_id=" + flixel_addons_api_FlxGameJolt._gameID + "&username=" + flixel_addons_api_FlxGameJolt._userName + "&user_token=" + flixel_addons_api_FlxGameJolt._userToken; flixel_addons_api_FlxGameJolt._verifyAuth = true; flixel_addons_api_FlxGameJolt.sendLoaderRequest("https://gamejolt.com/api/game/v1/" + "users/auth/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL,Callback); } }; flixel_addons_api_FlxGameJolt.openSession = function(Callback) { if(!flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } flixel_addons_api_FlxGameJolt.sendLoaderRequest("https://gamejolt.com/api/game/v1/" + "sessions/open/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL,Callback); }; flixel_addons_api_FlxGameJolt.pingSession = function(Active,Callback) { if(Active == null) { Active = true; } if(!flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "sessions/ping/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL + "&active="; if(Active) { tempURL += "active"; } else { tempURL += "idle"; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.closeSession = function(Callback) { if(!flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } flixel_addons_api_FlxGameJolt.sendLoaderRequest("https://gamejolt.com/api/game/v1/" + "sessions/close/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL,Callback); }; flixel_addons_api_FlxGameJolt.fetchTrophy = function(DataType,Callback) { if(DataType == null) { DataType = 0; } if(!flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "trophies/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL; switch(DataType) { case -2: tempURL += "&achieved=true"; break; case -1: tempURL += "&achieved=false"; break; case 0: tempURL += "&achieved="; break; default: tempURL += "&trophy_id=" + (DataType == null ? "null" : "" + DataType); } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.addTrophy = function(TrophyID,Callback) { if(!flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } flixel_addons_api_FlxGameJolt.sendLoaderRequest("https://gamejolt.com/api/game/v1/" + "trophies/add-achieved/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL + "&trophy_id=" + TrophyID,Callback); }; flixel_addons_api_FlxGameJolt.fetchScore = function(Limit,TableID,Callback) { if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "scores/" + "?format=keypair" + "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; if(TableID != null) { tempURL += "&table_id=" + TableID; } if(!flixel_addons_api_FlxGameJolt._initialized) { if(Limit == null) { tempURL += "&limit=10"; } else { tempURL += "&limit=" + (Limit == null ? "null" : "" + Limit); } } else if(Limit != null) { tempURL += "&limit=" + (Limit == null ? "null" : "" + Limit); } else { tempURL += flixel_addons_api_FlxGameJolt._idURL; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.addScore = function(Score,Sort,TableID,AllowGuest,GuestName,ExtraData,Callback) { if(AllowGuest == null) { AllowGuest = false; } if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } if(!flixel_addons_api_FlxGameJolt.get_authenticated() && !AllowGuest) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "scores/add/" + "?format=keypair" + "&game_id=" + flixel_addons_api_FlxGameJolt._gameID + "&score=" + Score + "&sort=" + (Sort == null ? "null" : "" + Sort); if(AllowGuest && GuestName != null && GuestName != "") { tempURL += "&guest=" + GuestName; } else { tempURL += "&username=" + flixel_addons_api_FlxGameJolt._userName + "&user_token=" + flixel_addons_api_FlxGameJolt._userToken; } if(ExtraData != null && ExtraData != "") { tempURL += "&extra_data=" + ExtraData; } if(TableID != null && TableID != 0) { tempURL += "&table_id=" + TableID; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.getTables = function(Callback) { if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } flixel_addons_api_FlxGameJolt.sendLoaderRequest("https://gamejolt.com/api/game/v1/" + "scores/tables/" + "?format=keypair" + "&game_id=" + flixel_addons_api_FlxGameJolt._gameID,Callback); }; flixel_addons_api_FlxGameJolt.fetchData = function(Key,User,Callback) { if(User == null) { User = true; } if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } if(User && !flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "data-store/" + "?format=keypair" + "&key=" + Key; if(User) { tempURL += flixel_addons_api_FlxGameJolt._idURL; } else { tempURL += "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.setData = function(Key,Value,User,Callback) { if(User == null) { User = true; } if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } if(User && !flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "data-store/set/" + "?format=keypair" + "&key=" + Key + "&data=" + Value; if(User) { tempURL += flixel_addons_api_FlxGameJolt._idURL; } else { tempURL += "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.updateData = function(Key,Operation,Value,User,Callback) { if(User == null) { User = true; } if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } if(User && !flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "data-store/update/" + "?format=keypair" + "&key=" + Key + "&operation=" + Operation + "&value=" + Value; if(User) { tempURL += flixel_addons_api_FlxGameJolt._idURL; } else { tempURL += "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.removeData = function(Key,User,Callback) { if(User == null) { User = true; } if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } if(User && !flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "data-store/remove/" + "?format=keypair" + "&key=" + Key; if(User) { tempURL += flixel_addons_api_FlxGameJolt._idURL; } else { tempURL += "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.getAllKeys = function(User,Callback) { if(User == null) { User = true; } if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } if(User && !flixel_addons_api_FlxGameJolt.get_authenticated()) { return; } var tempURL = "https://gamejolt.com/api/game/v1/" + "data-store/get-keys/" + "?format=keypair"; if(User) { tempURL += flixel_addons_api_FlxGameJolt._idURL; } else { tempURL += "&game_id=" + flixel_addons_api_FlxGameJolt._gameID; } flixel_addons_api_FlxGameJolt.sendLoaderRequest(tempURL,Callback); }; flixel_addons_api_FlxGameJolt.sendLoaderRequest = function(URLString,Callback) { var request = new openfl_net_URLRequest(URLString + "&signature=" + flixel_addons_api_FlxGameJolt.encryptURL(URLString)); request.method = "POST"; flixel_addons_api_FlxGameJolt._callBack = Callback; if(flixel_addons_api_FlxGameJolt._loader == null) { flixel_addons_api_FlxGameJolt._loader = new openfl_net_URLLoader(); } flixel_addons_api_FlxGameJolt._loader.addEventListener("complete",flixel_addons_api_FlxGameJolt.parseData); flixel_addons_api_FlxGameJolt._loader.load(request); }; flixel_addons_api_FlxGameJolt.parseData = function(e) { flixel_addons_api_FlxGameJolt._loader.removeEventListener("complete",flixel_addons_api_FlxGameJolt.parseData); if(Std.string(e.currentTarget.data) == "") { return; } var stringArray = Std.string(e.currentTarget.data).split("\r"); var r_r = new RegExp("[\r\n\t\"]+","g".split("u").join("")); var _g = 0; while(_g < stringArray.length) { var string = stringArray[_g]; ++_g; string = string.replace(r_r,""); if(string.length > 1) { var split = string.indexOf(":"); var temp_0 = string.substring(0,split); var temp_1 = string.substring(split + 1,string.length); flixel_addons_api_FlxGameJolt.returnMap.h[temp_0] = temp_1; } } if(flixel_addons_api_FlxGameJolt._getImage) { flixel_addons_api_FlxGameJolt.retrieveImage(flixel_addons_api_FlxGameJolt.returnMap); return; } if(flixel_addons_api_FlxGameJolt._callBack != null && !flixel_addons_api_FlxGameJolt._verifyAuth) { flixel_addons_api_FlxGameJolt._callBack(flixel_addons_api_FlxGameJolt.returnMap); } else if(flixel_addons_api_FlxGameJolt._verifyAuth) { flixel_addons_api_FlxGameJolt.verifyAuthentication(flixel_addons_api_FlxGameJolt.returnMap); } }; flixel_addons_api_FlxGameJolt.verifyAuthentication = function(ReturnMap) { if(Object.prototype.hasOwnProperty.call(ReturnMap.h,"success") && ReturnMap.h["success"] == "true") { flixel_addons_api_FlxGameJolt._initialized = true; } else { flixel_addons_api_FlxGameJolt._userName = null; flixel_addons_api_FlxGameJolt._userToken = null; } flixel_addons_api_FlxGameJolt._verifyAuth = false; if(flixel_addons_api_FlxGameJolt._callBack != null) { flixel_addons_api_FlxGameJolt._callBack(flixel_addons_api_FlxGameJolt._initialized); } }; flixel_addons_api_FlxGameJolt.resetUser = function(UserName,UserToken,Callback) { flixel_addons_api_FlxGameJolt._userName = UserName; flixel_addons_api_FlxGameJolt._userToken = UserToken; flixel_addons_api_FlxGameJolt._idURL = "&game_id=" + flixel_addons_api_FlxGameJolt._gameID + "&username=" + flixel_addons_api_FlxGameJolt._userName + "&user_token=" + flixel_addons_api_FlxGameJolt._userToken; flixel_addons_api_FlxGameJolt._verifyAuth = true; flixel_addons_api_FlxGameJolt.sendLoaderRequest("https://gamejolt.com/api/game/v1/" + "users/auth/" + "?format=keypair" + flixel_addons_api_FlxGameJolt._idURL,Callback); }; flixel_addons_api_FlxGameJolt.fetchTrophyImage = function(ID,Callback) { if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } flixel_addons_api_FlxGameJolt._getImage = true; flixel_addons_api_FlxGameJolt.fetchTrophy(ID,Callback); }; flixel_addons_api_FlxGameJolt.fetchAvatarImage = function(Callback) { if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return; } flixel_addons_api_FlxGameJolt._getImage = true; flixel_addons_api_FlxGameJolt.fetchUser(0,flixel_addons_api_FlxGameJolt._userName,null,Callback); }; flixel_addons_api_FlxGameJolt.retrieveImage = function(ImageMap) { if(Object.prototype.hasOwnProperty.call(ImageMap.h,"image_url")) { var request = new openfl_net_URLRequest(ImageMap.h["image_url"]); var loader = new openfl_display_Loader(); loader.contentLoaderInfo.addEventListener("complete",flixel_addons_api_FlxGameJolt.returnImage); loader.load(request); } else if(Object.prototype.hasOwnProperty.call(ImageMap.h,"avatar_url")) { var request = new openfl_net_URLRequest(ImageMap.h["avatar_url"]); var loader = new openfl_display_Loader(); loader.contentLoaderInfo.addEventListener("complete",flixel_addons_api_FlxGameJolt.returnImage); loader.load(request); } }; flixel_addons_api_FlxGameJolt.returnImage = function(e) { if(flixel_addons_api_FlxGameJolt._callBack != null) { flixel_addons_api_FlxGameJolt._callBack(e.currentTarget.content.bitmapData); } flixel_addons_api_FlxGameJolt._getImage = false; }; flixel_addons_api_FlxGameJolt.encryptURL = function(Url) { if(flixel_addons_api_FlxGameJolt.hashType == 1) { return haxe_crypto_Sha1.encode(Url + flixel_addons_api_FlxGameJolt._privateKey); } else { return haxe_crypto_Md5.encode(Url + flixel_addons_api_FlxGameJolt._privateKey); } }; flixel_addons_api_FlxGameJolt.get_initialized = function() { return flixel_addons_api_FlxGameJolt._initialized; }; flixel_addons_api_FlxGameJolt.get_gameInit = function() { if(flixel_addons_api_FlxGameJolt._gameID == 0 || flixel_addons_api_FlxGameJolt._privateKey == "") { return false; } return true; }; flixel_addons_api_FlxGameJolt.get_authenticated = function() { if(!flixel_addons_api_FlxGameJolt.get_gameInit()) { return false; } if(!flixel_addons_api_FlxGameJolt._initialized) { return false; } return true; }; flixel_addons_api_FlxGameJolt.get_username = function() { if(!flixel_addons_api_FlxGameJolt._initialized || flixel_addons_api_FlxGameJolt._userName == null || flixel_addons_api_FlxGameJolt._userName == "") { return "No user"; } return flixel_addons_api_FlxGameJolt._userName; }; flixel_addons_api_FlxGameJolt.get_usertoken = function() { if(!flixel_addons_api_FlxGameJolt._initialized || flixel_addons_api_FlxGameJolt._userToken == null || flixel_addons_api_FlxGameJolt._userToken == "") { return "No token"; } return flixel_addons_api_FlxGameJolt._userToken; }; flixel_addons_api_FlxGameJolt.get_isQuickPlay = function() { return false; }; flixel_addons_api_FlxGameJolt.get_isEmbeddedFlash = function() { return false; }; var flixel_addons_display_FlxBackdrop = function(graphic,repeatAxes,spacingX,spacingY) { if(spacingY == null) { spacingY = 0.0; } if(spacingX == null) { spacingX = 0.0; } if(repeatAxes == null) { repeatAxes = 17; } this._prevDrawParams = { graphicKey : null, tilesX : -1, tilesY : -1, scaleX : 0.0, scaleY : 0.0, spacingX : 0.0, spacingY : 0.0, repeatAxes : 17, angle : 0.0}; this._tileMatrix = new flixel_math_FlxMatrix(); this._blitGraphic = null; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._blitOffset = point; this.blitMode = flixel_addons_display_BackdropBlitMode.AUTO; this.drawBlit = flixel_FlxG.renderBlit; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.spacing = point; this.repeatAxes = 17; flixel_FlxSprite.call(this,0,0,graphic); this.repeatAxes = repeatAxes; var this1 = this.spacing; var x = spacingX; var y = spacingY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; $hxClasses["flixel.addons.display.FlxBackdrop"] = flixel_addons_display_FlxBackdrop; flixel_addons_display_FlxBackdrop.__name__ = "flixel.addons.display.FlxBackdrop"; flixel_addons_display_FlxBackdrop.__super__ = flixel_FlxSprite; flixel_addons_display_FlxBackdrop.prototype = $extend(flixel_FlxSprite.prototype,{ repeatAxes: null ,spacing: null ,drawBlit: null ,blitMode: null ,_blitOffset: null ,_blitGraphic: null ,_tileMatrix: null ,_prevDrawParams: null ,destroy: function() { this.spacing = flixel_util_FlxDestroyUtil.put(this.spacing); this._blitOffset = flixel_util_FlxDestroyUtil.put(this._blitOffset); this._blitGraphic = flixel_util_FlxDestroyUtil.destroy(this._blitGraphic); this._tileMatrix = null; flixel_FlxSprite.prototype.destroy.call(this); } ,draw: function() { if(this.repeatAxes == 0) { flixel_FlxSprite.prototype.draw.call(this); return; } this.checkEmptyFrame(); if(this.alpha == 0 || this._frame.type == 2) { return; } if(this.scale.x <= 0 || this.scale.y <= 0) { return; } if(this.dirty) { this.calcFrame(this.useFramePixels); } if(this.drawBlit) { this.drawToLargestCamera(); } var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) { continue; } if(this.isSimpleRender(camera)) { this.drawSimple(camera); } else { this.drawComplex(camera); } } } ,isOnScreen: function(camera) { if(this.repeatAxes == 17) { return true; } if(this.repeatAxes == 0) { return flixel_FlxSprite.prototype.isOnScreen.call(this,camera); } if(camera == null) { camera = flixel_FlxG.camera; } var bounds = this.getScreenBounds(this._rect,camera); var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { bounds.x = camera.viewMarginX; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { bounds.y = camera.viewMarginY; } var contained = bounds.x + bounds.width > camera.viewMarginX && bounds.x < camera.width - camera.viewMarginX && bounds.y + bounds.height > camera.viewMarginY && bounds.y < camera.height - camera.viewMarginY; if(bounds._weak) { if(!bounds._inPool) { bounds._inPool = true; bounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(bounds); } } return contained; } ,drawToLargestCamera: function() { var largest = null; var largestArea = 0.0; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) { continue; } if((camera.width - camera.viewMarginX * 2) * (camera.height - camera.viewMarginY * 2) > largestArea) { largest = camera; largestArea = (camera.width - camera.viewMarginX * 2) * (camera.height - camera.viewMarginY * 2); } } if(largest != null) { this.regenGraphic(largest); } } ,isSimpleRenderBlit: function(camera) { if(this.repeatAxes == 0) { return flixel_FlxSprite.prototype.isSimpleRenderBlit.call(this,camera); } if(flixel_FlxSprite.prototype.isSimpleRenderBlit.call(this,camera) || this.drawBlit) { if(camera != null) { return this.isPixelPerfectRender(camera); } else { return this.pixelPerfectRender; } } else { return false; } } ,drawSimple: function(camera) { if(this.repeatAxes == 0) { flixel_FlxSprite.prototype.drawSimple.call(this,camera); return; } var drawDirect = !this.drawBlit; var graphic = this.drawBlit ? this._blitGraphic : this.graphic; var frame = this.drawBlit ? this._blitGraphic.get_imageFrame().get_frame() : this._frame; var x = frame.frame.width; var y = frame.frame.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; if(drawDirect) { var point = this.spacing; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } tileSize.set_x(tileSize.x + x); tileSize.set_y(tileSize.y + y); if(point._weak) { point.put(); } } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var tilesX = 1; var tilesY = 1; if(this.repeatAxes != 0) { var viewMargins = camera.getViewMarginRect(); var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { var left = this.modMin(this._point.x + this.frameWidth,tileSize.x,viewMargins.x) - this.frameWidth; var right = this.modMax(this._point.x,tileSize.x,viewMargins.x + viewMargins.width) + tileSize.x; tilesX = Math.round((right - left) / tileSize.x); var origTileSizeX = this.frameWidth + this.spacing.x; this._point.set_x(this.modMin(this._point.x + this.frameWidth,origTileSizeX,viewMargins.x) - this.frameWidth); } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { var top = this.modMin(this._point.y + this.frameHeight,tileSize.y,viewMargins.y) - this.frameHeight; var bottom = this.modMax(this._point.y,tileSize.y,viewMargins.y + viewMargins.height) + tileSize.y; tilesY = Math.round((bottom - top) / tileSize.y); var origTileSizeY = this.frameHeight + this.spacing.y; this._point.set_y(this.modMin(this._point.y + this.frameHeight,origTileSizeY,viewMargins.y) - this.frameHeight); } if(!viewMargins._inPool) { viewMargins._inPool = true; viewMargins._weak = false; flixel_math_FlxRect._pool.putUnsafe(viewMargins); } } if(this.drawBlit) { var this1 = this._point; var point = this._blitOffset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } } if(flixel_FlxG.renderBlit) { this.calcFrame(true); } camera.buffer.lock(); var _g = 0; var _g1 = tilesX; while(_g < _g1) { var tileX = _g++; var _g2 = 0; var _g3 = tilesY; while(_g2 < _g3) { var tileY = _g2++; this._flashPoint.setTo(this._point.x + tileSize.x * tileX,this._point.y + tileSize.y * tileY); if(this.isPixelPerfectRender(camera)) { this._flashPoint.x = Math.floor(this._flashPoint.x); this._flashPoint.y = Math.floor(this._flashPoint.y); } var pixels = this.drawBlit ? this._blitGraphic.bitmap : this.framePixels; camera.copyPixels(frame,pixels,pixels.rect,this._flashPoint,this.colorTransform,this.blend,this.antialiasing); } } tileSize.put(); camera.buffer.unlock(); } ,drawComplex: function(camera) { if(this.repeatAxes == 0) { flixel_FlxSprite.prototype.drawComplex.call(this,camera); return; } var drawDirect = !this.drawBlit; var graphic = this.drawBlit ? this._blitGraphic : this.graphic; var frame = this.drawBlit ? this._blitGraphic.get_imageFrame().get_frame() : this._frame; var doFlipX = this.flipX != this._frame.flipX; var doFlipY = this.flipY != this._frame.flipY; frame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY); this._matrix.translate(-this.origin.x,-this.origin.y); var x = frame.frame.width; var y = frame.frame.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; if(drawDirect) { var x = (frame.frame.width + this.spacing.x) * this.scale.x; var y = (frame.frame.height + this.spacing.y) * this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } tileSize.set_x(x); tileSize.set_y(y); this._matrix.scale(this.scale.x,this.scale.y); if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } } var drawItem = null; if(flixel_FlxG.renderTile) { var isColored = this.alpha != 1 || this.color != 16777215; var hasColorOffsets = this.colorTransform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(this.colorTransform); drawItem = camera.startQuadBatch(graphic,isColored,hasColorOffsets,this.blend,this.antialiasing,this.shader); } else { camera.buffer.lock(); } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var tilesX = 1; var tilesY = 1; if(this.repeatAxes != 0) { var viewMargins = camera.getViewMarginRect(); var bounds = this.getScreenBounds(null,camera); var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { var origTileSizeX = (this.frameWidth + this.spacing.x) * this.scale.x; var left = this.modMin(bounds.x + bounds.width,origTileSizeX,viewMargins.x) - bounds.width; var right = this.modMax(bounds.x,origTileSizeX,viewMargins.x + viewMargins.width) + origTileSizeX; tilesX = Math.round((right - left) / tileSize.x); this._point.set_x(left + this._point.x - bounds.x); } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { var origTileSizeY = (this.frameHeight + this.spacing.y) * this.scale.y; var top = this.modMin(bounds.y + bounds.height,origTileSizeY,viewMargins.y) - bounds.height; var bottom = this.modMax(bounds.y,origTileSizeY,viewMargins.y + viewMargins.height) + origTileSizeY; tilesY = Math.round((bottom - top) / tileSize.y); this._point.set_y(top + this._point.y - bounds.y); } if(!viewMargins._inPool) { viewMargins._inPool = true; viewMargins._weak = false; flixel_math_FlxRect._pool.putUnsafe(viewMargins); } if(!bounds._inPool) { bounds._inPool = true; bounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(bounds); } } var this1 = this._point; var point = this.origin; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } if(this.drawBlit) { var this1 = this._point; var point = this._blitOffset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } } var _g = 0; var _g1 = tilesX; while(_g < _g1) { var tileX = _g++; var _g2 = 0; var _g3 = tilesY; while(_g2 < _g3) { var tileY = _g2++; this._tileMatrix.copyFrom(this._matrix); this._tileMatrix.translate(this._point.x + tileSize.x * tileX,this._point.y + tileSize.y * tileY); if(this.isPixelPerfectRender(camera)) { this._tileMatrix.tx = Math.floor(this._tileMatrix.tx); this._tileMatrix.ty = Math.floor(this._tileMatrix.ty); } if(flixel_FlxG.renderBlit) { var pixels = this.drawBlit ? this._blitGraphic.bitmap : this.framePixels; camera.drawPixels(frame,pixels,this._tileMatrix,this.colorTransform,this.blend,this.antialiasing,this.shader); } else { drawItem.addQuad(frame,this._tileMatrix,this.colorTransform); } } } tileSize.put(); if(flixel_FlxG.renderBlit) { camera.buffer.unlock(); } } ,getFrameScreenBounds: function(camera) { if(this.drawBlit) { var frame = this._blitGraphic.get_imageFrame().get_frame().frame; var X = this.x; var Y = this.y; var Width = frame.width; var Height = frame.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; return rect; } var X = this.x; var Y = this.y; if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width; _this.height = Height; var rect = _this; rect._inPool = false; var newRect = rect; if(this.pixelPerfectPosition) { newRect.x = Math.floor(newRect.x); newRect.y = Math.floor(newRect.y); newRect.width = Math.floor(newRect.width); newRect.height = Math.floor(newRect.height); } var x = this.origin.x * this.scale.x; var y = this.origin.y * this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var scaledOrigin = point1; newRect.x += -(camera.scroll.x * this.scrollFactor.x | 0) - this.offset.x + this.origin.x - scaledOrigin.x; newRect.y += -(camera.scroll.y * this.scrollFactor.y | 0) - this.offset.y + this.origin.y - scaledOrigin.y; if(this.isPixelPerfectRender(camera)) { newRect.x = Math.floor(newRect.x); newRect.y = Math.floor(newRect.y); newRect.width = Math.floor(newRect.width); newRect.height = Math.floor(newRect.height); } var Height = this.frameHeight * Math.abs(this.scale.y); newRect.width = this.frameWidth * Math.abs(this.scale.x); newRect.height = Height; return newRect.getRotatedBounds(this.angle,scaledOrigin,newRect); } ,modMin: function(value,step,min) { return value - Math.floor((value - min) / step) * step; } ,modMax: function(value,step,max) { return value - Math.ceil((value - max) / step) * step; } ,regenGraphic: function(camera) { var x = (this.frameWidth + this.spacing.x) * this.scale.x; var y = (this.frameHeight + this.spacing.y) * this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; var viewMargins = camera.getViewMarginRect(); var tilesX = 1; var tilesY = 1; if(this.repeatAxes != 0) { var _g = this.blitMode; switch(_g._hx_index) { case 0: var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { tilesX = Math.ceil(viewMargins.width / tileSize.x) + 1; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { tilesY = Math.ceil(viewMargins.height / tileSize.y) + 1; } break; case 1: var _g1 = _g.x; var _g2 = _g.y; if(_g1 == 1) { if(_g2 != 1) { var maxX = _g1; var maxY = _g2; var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { var b = Math.ceil(viewMargins.width / tileSize.x) + 1; tilesX = maxX < b ? maxX : b; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { var b = Math.ceil(viewMargins.height / tileSize.y) + 1; tilesY = maxY < b ? maxY : b; } } } else { var maxX = _g1; var maxY = _g2; var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { var b = Math.ceil(viewMargins.width / tileSize.x) + 1; tilesX = maxX < b ? maxX : b; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { var b = Math.ceil(viewMargins.height / tileSize.y) + 1; tilesY = maxY < b ? maxY : b; } } break; case 2: var _g1 = _g.tiles; if(_g1 != 1) { var max = _g1; var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { var b = Math.ceil(viewMargins.width / tileSize.x) + 1; tilesX = max < b ? max : b; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { var b = Math.ceil(viewMargins.height / tileSize.y) + 1; tilesY = max < b ? max : b; } } break; case 3: var _g1 = _g.portions; if(_g1 == 1) { var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { tilesX = Math.ceil(viewMargins.width / tileSize.x) + 1; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { tilesY = Math.ceil(viewMargins.height / tileSize.y) + 1; } } else { var portions = _g1; var this1 = this.repeatAxes; if(this1 == 1 || this1 == 17) { var this1 = this.repeatAxes; tilesX = this1 == 1 || this1 == 17 ? Math.ceil(viewMargins.width / tileSize.x / portions + 1) : 1; } var this1 = this.repeatAxes; if(this1 == 16 || this1 == 17) { var this1 = this.repeatAxes; tilesY = this1 == 16 || this1 == 17 ? Math.ceil(viewMargins.height / tileSize.y / portions + 1) : 1; } } break; } } if(!viewMargins._inPool) { viewMargins._inPool = true; viewMargins._weak = false; flixel_math_FlxRect._pool.putUnsafe(viewMargins); } if(this._prevDrawParams.graphicKey == this.graphic.key && this._prevDrawParams.tilesX == tilesX && this._prevDrawParams.tilesY == tilesY && this._prevDrawParams.scaleX == this.scale.x && this._prevDrawParams.scaleY == this.scale.y && this._prevDrawParams.spacingX == this.spacing.x && this._prevDrawParams.spacingY == this.spacing.y && this._prevDrawParams.repeatAxes == this.repeatAxes && this._prevDrawParams.angle == this.angle) { tileSize.put(); return; } this._prevDrawParams.graphicKey = this.graphic.key; this._prevDrawParams.tilesX = tilesX; this._prevDrawParams.tilesY = tilesY; this._prevDrawParams.scaleX = this.scale.x; this._prevDrawParams.scaleY = this.scale.y; this._prevDrawParams.spacingX = this.spacing.x; this._prevDrawParams.spacingY = this.spacing.y; this._prevDrawParams.repeatAxes = this.repeatAxes; this._prevDrawParams.angle = this.angle; var this1 = this._blitOffset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var graphicSizeX = Math.ceil(tilesX * tileSize.x); var graphicSizeY = Math.ceil(tilesY * tileSize.y); if(this.repeatAxes != 17) { var screenBounds = this.getScreenBounds(); var screenPos = this.getScreenPosition(); var this1 = this.repeatAxes; if(!(this1 == 1 || this1 == 17)) { graphicSizeX = Math.ceil(screenBounds.width); this._blitOffset.set_x(screenBounds.x - screenPos.x); } var this1 = this.repeatAxes; if(!(this1 == 16 || this1 == 17)) { graphicSizeY = Math.ceil(screenBounds.height); this._blitOffset.set_y(screenBounds.y - screenPos.y); } if(!screenBounds._inPool) { screenBounds._inPool = true; screenBounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(screenBounds); } screenPos.put(); } if(this._blitGraphic == null || (this._blitGraphic.width != graphicSizeX || this._blitGraphic.height != graphicSizeY)) { this._blitGraphic = flixel_FlxG.bitmap.create(graphicSizeX,graphicSizeY,0,true); } var pixels = this._blitGraphic.bitmap; pixels.lock(); pixels.fillRect(pixels.rect,0); this.animation.set_frameIndex(0); this.calcFrame(true); this._matrix.identity(); this._matrix.translate(-this.origin.x,-this.origin.y); this._matrix.scale(this.scale.x,this.scale.y); if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } this._matrix.translate(this.origin.x,this.origin.y); this._matrix.translate(-this._blitOffset.x,-this._blitOffset.y); var this1 = this._point; var x = this._matrix.tx; var y = this._matrix.ty; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.repeatAxes; var bufferX = (this1 == 1 || this1 == 17) && this.angle != 0 ? 1 : 0; var this1 = this.repeatAxes; var bufferY = (this1 == 16 || this1 == 17) && this.angle != 0 ? 1 : 0; var _g = -bufferX; var _g1 = tilesX + bufferX; while(_g < _g1) { var tileX = _g++; var _g2 = -bufferY; var _g3 = tilesY + bufferY; while(_g2 < _g3) { var tileY = _g2++; this._matrix.tx = this._point.x + tileX * tileSize.x; this._matrix.ty = this._point.y + tileY * tileSize.y; pixels.draw(this.framePixels,this._matrix); } } pixels.unlock(); tileSize.put(); } ,matchPrevDrawParams: function(tilesX,tilesY) { if(this._prevDrawParams.graphicKey == this.graphic.key && this._prevDrawParams.tilesX == tilesX && this._prevDrawParams.tilesY == tilesY && this._prevDrawParams.scaleX == this.scale.x && this._prevDrawParams.scaleY == this.scale.y && this._prevDrawParams.spacingX == this.spacing.x && this._prevDrawParams.spacingY == this.spacing.y && this._prevDrawParams.repeatAxes == this.repeatAxes) { return this._prevDrawParams.angle == this.angle; } else { return false; } } ,setDrawParams: function(tilesX,tilesY) { this._prevDrawParams.graphicKey = this.graphic.key; this._prevDrawParams.tilesX = tilesX; this._prevDrawParams.tilesY = tilesY; this._prevDrawParams.scaleX = this.scale.x; this._prevDrawParams.scaleY = this.scale.y; this._prevDrawParams.spacingX = this.spacing.x; this._prevDrawParams.spacingY = this.spacing.y; this._prevDrawParams.repeatAxes = this.repeatAxes; this._prevDrawParams.angle = this.angle; } ,__class__: flixel_addons_display_FlxBackdrop }); var flixel_addons_display_BackdropBlitMode = $hxEnums["flixel.addons.display.BackdropBlitMode"] = { __ename__:"flixel.addons.display.BackdropBlitMode",__constructs__:null ,AUTO: {_hx_name:"AUTO",_hx_index:0,__enum__:"flixel.addons.display.BackdropBlitMode",toString:$estr} ,MAX_TILES_XY: ($_=function(x,y) { return {_hx_index:1,x:x,y:y,__enum__:"flixel.addons.display.BackdropBlitMode",toString:$estr}; },$_._hx_name="MAX_TILES_XY",$_.__params__ = ["x","y"],$_) ,MAX_TILES: ($_=function(tiles) { return {_hx_index:2,tiles:tiles,__enum__:"flixel.addons.display.BackdropBlitMode",toString:$estr}; },$_._hx_name="MAX_TILES",$_.__params__ = ["tiles"],$_) ,SPLIT: ($_=function(portions) { return {_hx_index:3,portions:portions,__enum__:"flixel.addons.display.BackdropBlitMode",toString:$estr}; },$_._hx_name="SPLIT",$_.__params__ = ["portions"],$_) }; flixel_addons_display_BackdropBlitMode.__constructs__ = [flixel_addons_display_BackdropBlitMode.AUTO,flixel_addons_display_BackdropBlitMode.MAX_TILES_XY,flixel_addons_display_BackdropBlitMode.MAX_TILES,flixel_addons_display_BackdropBlitMode.SPLIT]; flixel_addons_display_BackdropBlitMode.__empty_constructs__ = [flixel_addons_display_BackdropBlitMode.AUTO]; var flixel_addons_display_FlxExtendedMouseSprite = function(X,Y,SimpleGraphic) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._allowVerticalDrag = true; this._allowHorizontalDrag = true; this._dragPixelPerfect = false; this._clickCounter = 0; this._clickPixelPerfect = false; this._clickOnRelease = false; this._snapOnRelease = false; this._snapOnDrag = false; this.hasMouseSpring = false; this.springOffsetY = 0; this.springOffsetX = 0; this.springOnPressed = true; this.draggable = false; this.isDragged = false; this.hasGravity = false; this.throwable = false; this.clickable = false; this.isPressed = false; var _gthis = this; flixel_FlxSprite.call(this,X,Y,SimpleGraphic); var mouseChildren = false; var mouseEnabled = true; var pixelPerfect = false; if(pixelPerfect == null) { pixelPerfect = true; } if(mouseEnabled == null) { mouseEnabled = true; } if(mouseChildren == null) { mouseChildren = false; } flixel_input_mouse_FlxMouseEvent.globalManager.add(this,function(_) { _gthis.mousePressedHandler(); },null,null,null,mouseChildren,mouseEnabled,pixelPerfect,null); }; $hxClasses["flixel.addons.display.FlxExtendedMouseSprite"] = flixel_addons_display_FlxExtendedMouseSprite; flixel_addons_display_FlxExtendedMouseSprite.__name__ = "flixel.addons.display.FlxExtendedMouseSprite"; flixel_addons_display_FlxExtendedMouseSprite.__super__ = flixel_FlxSprite; flixel_addons_display_FlxExtendedMouseSprite.prototype = $extend(flixel_FlxSprite.prototype,{ priorityID: null ,isPressed: null ,clickable: null ,throwable: null ,boundsRect: null ,boundsSprite: null ,hasGravity: null ,gravityX: null ,gravityY: null ,frictionX: null ,frictionY: null ,toleranceX: null ,toleranceY: null ,isDragged: null ,draggable: null ,springOnPressed: null ,springOffsetX: null ,springOffsetY: null ,mousePressedCallback: null ,mouseReleasedCallback: null ,mouseSpring: null ,mouseStartDragCallback: null ,mouseStopDragCallback: null ,hasMouseSpring: null ,_snapOnDrag: null ,_snapOnRelease: null ,_snapX: null ,_snapY: null ,_clickOnRelease: null ,_clickPixelPerfect: null ,_clickPixelPerfectAlpha: null ,_clickCounter: null ,_throwXFactor: null ,_throwYFactor: null ,_dragPixelPerfect: null ,_dragPixelPerfectAlpha: null ,_dragOffsetX: null ,_dragOffsetY: null ,_dragFromPoint: null ,_allowHorizontalDrag: null ,_allowVerticalDrag: null ,enableMouseClicks: function(OnRelease,PixelPerfect,AlphaThreshold) { if(AlphaThreshold == null) { AlphaThreshold = 255; } if(PixelPerfect == null) { PixelPerfect = false; } this.clickable = true; this._clickOnRelease = OnRelease; this._clickPixelPerfect = PixelPerfect; this._clickPixelPerfectAlpha = AlphaThreshold; this._clickCounter = 0; } ,disableMouseClicks: function() { this.clickable = false; this.mousePressedCallback = null; this.mouseReleasedCallback = null; } ,enableMouseDrag: function(LockCenter,PixelPerfect,AlphaThreshold,BoundsRect,BoundsSprite) { if(AlphaThreshold == null) { AlphaThreshold = 255; } if(PixelPerfect == null) { PixelPerfect = false; } if(LockCenter == null) { LockCenter = false; } this.draggable = true; this._dragFromPoint = LockCenter; this._dragPixelPerfect = PixelPerfect; this._dragPixelPerfectAlpha = AlphaThreshold; if(BoundsRect != null) { this.boundsRect = BoundsRect; } if(BoundsSprite != null) { this.boundsSprite = BoundsSprite; } } ,disableMouseDrag: function() { if(this.isDragged) { this.stopDrag(); } this.isDragged = false; this.draggable = false; this.mouseStartDragCallback = null; this.mouseStopDragCallback = null; } ,enableMouseThrow: function(FactorX,FactorY) { this.throwable = true; this._throwXFactor = FactorX; this._throwYFactor = FactorY; } ,disableMouseThrow: function() { this.throwable = false; } ,enableMouseSnap: function(SnapX,SnapY,OnDrag,OnRelease) { if(OnRelease == null) { OnRelease = false; } if(OnDrag == null) { OnDrag = true; } this._snapOnDrag = OnDrag; this._snapOnRelease = OnRelease; this._snapX = SnapX; this._snapY = SnapY; } ,disableMouseSnap: function() { this._snapOnDrag = false; this._snapOnRelease = false; } ,enableMouseSpring: function(onPressed,retainVelocity,tension,friction,gravity,offset) { if(gravity == null) { gravity = 0.0; } if(friction == null) { friction = 0.95; } if(tension == null) { tension = 0.1; } if(retainVelocity == null) { retainVelocity = false; } if(onPressed == null) { onPressed = true; } this.hasMouseSpring = true; this.springOnPressed = onPressed; if(this.mouseSpring == null) { this.mouseSpring = new flixel_addons_display_FlxMouseSpring(this,retainVelocity,tension,friction,gravity,offset); } else { this.mouseSpring.tension = tension; this.mouseSpring.friction = friction; this.mouseSpring.gravity = gravity; this.mouseSpring.retainVelocity = retainVelocity; } return this.mouseSpring; } ,disableMouseSpring: function() { this.hasMouseSpring = false; this.mouseSpring = null; } ,setDragLock: function(AllowHorizontalDrag,AllowVerticalDrag) { if(AllowVerticalDrag == null) { AllowVerticalDrag = true; } if(AllowHorizontalDrag == null) { AllowHorizontalDrag = true; } this._allowHorizontalDrag = AllowHorizontalDrag; this._allowVerticalDrag = AllowVerticalDrag; } ,update: function(elapsed) { if(this.draggable && this.isDragged) { this.updateDrag(); } if(this.hasGravity) { this.updateGravity(); } if(this.hasMouseSpring) { if(this.springOnPressed == false) { this.mouseSpring.update(elapsed); } else if(this.isPressed) { this.mouseSpring.update(elapsed); } else { this.mouseSpring.reset(); } } if(flixel_FlxG.mouse._leftButton.current == -1) { this.mouseReleasedHandler(); } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,updateGravity: function() { if(this.velocity.x != 0) { if(this.acceleration.x < 0) { if((this.touching & 17) != 0) { this.drag.set_y(this.frictionY); if((this.wasTouching & 17) == 0) { if(this.velocity.x < this.toleranceX) { this.velocity.set_x(0); } } } else { this.drag.set_y(0); } } else if(this.acceleration.x > 0) { if((this.touching & 17) != 0) { this.drag.set_y(this.frictionY); if((this.wasTouching & 17) == 0) { if(this.velocity.x > -this.toleranceX) { this.velocity.set_x(0); } } } else { this.drag.set_y(0); } } } if(this.velocity.y != 0) { if(this.acceleration.y < 0) { if((this.touching & 256) != 0) { this.drag.set_x(this.frictionX); if((this.wasTouching & 256) == 0) { if(this.velocity.y < this.toleranceY) { this.velocity.set_y(0); } } } else { this.drag.set_x(0); } } else if(this.acceleration.y > 0) { if((this.touching & 4096) != 0) { this.drag.set_x(this.frictionX); if((this.wasTouching & 4096) == 0) { if(this.velocity.y > -this.toleranceY) { this.velocity.set_y(0); } } } else { this.drag.set_x(0); } } } } ,updateDrag: function() { if(this._allowHorizontalDrag) { this.set_x(Math.floor(flixel_FlxG.mouse.screenX + this.scrollFactor.x * (flixel_FlxG.mouse.x - flixel_FlxG.mouse.screenX)) - this._dragOffsetX); } if(this._allowVerticalDrag) { this.set_y(Math.floor(flixel_FlxG.mouse.screenY + this.scrollFactor.y * (flixel_FlxG.mouse.y - flixel_FlxG.mouse.screenY)) - this._dragOffsetY); } if(this.boundsRect != null) { this.checkBoundsRect(); } if(this.boundsSprite != null) { this.checkBoundsSprite(); } if(this._snapOnDrag) { this.set_x(Math.floor(this.x / this._snapX) * this._snapX); this.set_y(Math.floor(this.y / this._snapY) * this._snapY); } } ,mousePressedHandler: function() { this.isPressed = true; var mouse = flixel_FlxG.mouse.getWorldPosition(); if(this.clickable && this.isOverPixelPerfect(mouse,this._clickPixelPerfect,this._clickPixelPerfectAlpha)) { if(this._clickOnRelease == false) { this._clickCounter++; } if(this.mousePressedCallback != null) { this.mousePressedCallback(this,this.get_mouseX(),this.get_mouseY()); } } if(this.draggable && this.isOverPixelPerfect(mouse,this._dragPixelPerfect,this._dragPixelPerfectAlpha)) { this.startDrag(); } mouse.put(); } ,mouseReleasedHandler: function() { var wasPressed = this.isPressed; this.isPressed = false; if(this.isDragged) { this.stopDrag(); } if(wasPressed && this.throwable) { var _this = flixel_FlxG.mouse; this.velocity.set_x((_this.x - _this._prevX) * this._throwXFactor); var _this = flixel_FlxG.mouse; this.velocity.set_y((_this.y - _this._prevY) * this._throwYFactor); } var mouse = flixel_FlxG.mouse.getWorldPosition(); if(wasPressed && this.clickable && this.isOverPixelPerfect(mouse,this._clickPixelPerfect,this._clickPixelPerfectAlpha)) { if(this._clickOnRelease) { this._clickCounter++; } if(this.mouseReleasedCallback != null) { this.mouseReleasedCallback(this,this.get_mouseX(),this.get_mouseY()); } } } ,isOverPixelPerfect: function(mouse,pixelPerfect,alphaThreshold) { if(pixelPerfect != false) { return this.pixelsOverlapPoint(mouse,alphaThreshold); } else { return true; } } ,startDrag: function() { this.isDragged = true; if(this._dragFromPoint == false) { this._dragOffsetX = Math.floor(flixel_FlxG.mouse.screenX + this.scrollFactor.x * (flixel_FlxG.mouse.x - flixel_FlxG.mouse.screenX) - this.x); this._dragOffsetY = Math.floor(flixel_FlxG.mouse.screenY + this.scrollFactor.y * (flixel_FlxG.mouse.y - flixel_FlxG.mouse.screenY) - this.y); } else { this._dragOffsetX = this.frameWidth / 2 | 0; this._dragOffsetY = this.frameHeight / 2 | 0; } if(this.mouseStartDragCallback != null) { this.mouseStartDragCallback(this,this.get_mouseX(),this.get_mouseY()); } } ,checkBoundsRect: function() { if(this.x < this.boundsRect.x) { this.set_x(this.boundsRect.x); } else { var tmp = this.x + this.get_width(); var _this = this.boundsRect; if(tmp > _this.x + _this.width) { var _this = this.boundsRect; this.set_x(_this.x + _this.width - this.get_width()); } } if(this.y < this.boundsRect.y) { this.set_y(this.boundsRect.y); } else { var tmp = this.y + this.get_height(); var _this = this.boundsRect; if(tmp > _this.y + _this.height) { var _this = this.boundsRect; this.set_y(_this.y + _this.height - this.get_height()); } } } ,checkBoundsSprite: function() { if(this.x < this.boundsSprite.x) { this.set_x(this.boundsSprite.x); } else if(this.x + this.get_width() > this.boundsSprite.x + this.boundsSprite.get_width()) { this.set_x(this.boundsSprite.x + this.boundsSprite.get_width() - this.get_width()); } if(this.y < this.boundsSprite.y) { this.set_y(this.boundsSprite.y); } else if(this.y + this.get_height() > this.boundsSprite.y + this.boundsSprite.get_height()) { this.set_y(this.boundsSprite.y + this.boundsSprite.get_height() - this.get_height()); } } ,stopDrag: function() { this.isDragged = false; if(this._snapOnRelease) { this.set_x(Math.floor(this.x / this._snapX) * this._snapX); this.set_y(Math.floor(this.y / this._snapY) * this._snapY); } if(this.mouseStopDragCallback != null) { this.mouseStopDragCallback(this,this.get_mouseX(),this.get_mouseY()); } } ,setGravity: function(GravityX,GravityY,FrictionX,FrictionY,ToleranceX,ToleranceY) { if(ToleranceY == null) { ToleranceY = 10; } if(ToleranceX == null) { ToleranceX = 10; } if(FrictionY == null) { FrictionY = 500; } if(FrictionX == null) { FrictionX = 500; } this.hasGravity = true; this.gravityX = GravityX; this.gravityY = GravityY; this.frictionX = FrictionX; this.frictionY = FrictionY; this.toleranceX = ToleranceX; this.toleranceY = ToleranceY; if(GravityX == 0 && GravityY == 0) { this.hasGravity = false; } this.acceleration.set_x(GravityX); this.acceleration.set_y(GravityY); } ,flipGravity: function() { var f = this.gravityX; if(!isNaN(f) && this.gravityX != 0) { this.gravityX = -this.gravityX; this.acceleration.set_x(this.gravityX); } var f = this.gravityY; if(!isNaN(f) && this.gravityY != 0) { this.gravityY = -this.gravityY; this.acceleration.set_y(this.gravityY); } } ,get_clicks: function() { return this._clickCounter; } ,set_clicks: function(NewValue) { return this._clickCounter = NewValue; } ,get_springX: function() { return Math.floor(this.x + this.springOffsetX); } ,get_springY: function() { return Math.floor(this.y + this.springOffsetY); } ,get_point: function() { return this._point; } ,set_point: function(NewPoint) { return this._point = NewPoint; } ,get_mouseOver: function() { return flixel_math_FlxMath.pointInCoordinates(Math.floor(flixel_FlxG.mouse.screenX + this.scrollFactor.x * (flixel_FlxG.mouse.x - flixel_FlxG.mouse.screenX)),Math.floor(flixel_FlxG.mouse.screenY + this.scrollFactor.y * (flixel_FlxG.mouse.y - flixel_FlxG.mouse.screenY)),Math.floor(this.x),Math.floor(this.y),Math.floor(this.get_width()),Math.floor(this.get_height())); } ,get_mouseX: function() { if(this.get_mouseOver()) { return Math.floor(flixel_FlxG.mouse.x - this.x); } return -1; } ,get_mouseY: function() { if(this.get_mouseOver()) { return Math.floor(flixel_FlxG.mouse.y - this.y); } return -1; } ,get_rect: function() { this._rect.x = this.x; this._rect.y = this.y; this._rect.width = this.get_width(); this._rect.height = this.get_height(); return this._rect; } ,__class__: flixel_addons_display_FlxExtendedMouseSprite ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_mouseY:"get_mouseY",get_mouseX:"get_mouseX",get_mouseOver:"get_mouseOver",get_rect:"get_rect",set_point:"set_point",get_point:"get_point",get_springY:"get_springY",get_springX:"get_springX",set_clicks:"set_clicks",get_clicks:"get_clicks"}) }); var flixel_addons_display_FlxGridOverlay = function() { }; $hxClasses["flixel.addons.display.FlxGridOverlay"] = flixel_addons_display_FlxGridOverlay; flixel_addons_display_FlxGridOverlay.__name__ = "flixel.addons.display.FlxGridOverlay"; flixel_addons_display_FlxGridOverlay.create = function(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2) { if(Color2 == null) { Color2 = -2501163; } if(Color1 == null) { Color1 = -1579290; } if(Alternate == null) { Alternate = true; } if(Height == null) { Height = -1; } if(Width == null) { Width = -1; } if(Width == -1) { Width = flixel_FlxG.width; } if(Height == -1) { Height = flixel_FlxG.height; } if(Width < CellWidth || Height < CellHeight) { return null; } var grid = flixel_addons_display_FlxGridOverlay.createGrid(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2); var output = new flixel_FlxSprite(); output.set_pixels(grid); output.dirty = true; return output; }; flixel_addons_display_FlxGridOverlay.overlay = function(Sprite,CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2) { if(Color2 == null) { Color2 = -1998989867; } if(Color1 == null) { Color1 = -1998067994; } if(Alternate == null) { Alternate = true; } if(Height == null) { Height = -1; } if(Width == null) { Width = -1; } if(Width == -1) { Width = flixel_FlxG.width; } if(Height == -1) { Height = flixel_FlxG.height; } if(Width < CellWidth || Height < CellHeight) { return null; } var grid = flixel_addons_display_FlxGridOverlay.createGrid(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2); Sprite.get_pixels().copyPixels(grid,new openfl_geom_Rectangle(0,0,Width,Height),new openfl_geom_Point(0,0),null,null,true); return Sprite; }; flixel_addons_display_FlxGridOverlay.createGrid = function(CellWidth,CellHeight,Width,Height,Alternate,Color1,Color2) { var rowColor = Color1; var lastColor = Color1; var grid = new openfl_display_BitmapData(Width,Height,true); var y = 0; while(y <= Height) { if(y > 0 && lastColor == rowColor && Alternate) { if(lastColor == Color1) { lastColor = Color2; } else { lastColor = Color1; } } else if(y > 0 && lastColor != rowColor && Alternate == false) { if(lastColor == Color2) { lastColor = Color1; } else { lastColor = Color2; } } var x = 0; while(x <= Width) { if(x == 0) { rowColor = lastColor; } grid.fillRect(new openfl_geom_Rectangle(x,y,CellWidth,CellHeight),lastColor); if(lastColor == Color1) { lastColor = Color2; } else { lastColor = Color1; } x += CellWidth; } y += CellHeight; } return grid; }; var flixel_addons_display_FlxMouseSpring = function(sprite,retainVelocity,tension,friction,gravity,offset) { if(gravity == null) { gravity = 0.0; } if(friction == null) { friction = 0.95; } if(tension == null) { tension = 0.1; } if(retainVelocity == null) { retainVelocity = false; } var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.velocity = point; this.sprite = sprite; this.retainVelocity = retainVelocity; this.tension = tension; this.friction = friction; this.gravity = gravity; if(offset != null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var x = offset.x; var y = offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(offset._weak) { offset.put(); } this.offset = this1; if(offset._weak) { offset.put(); } } else if(((sprite) instanceof flixel_addons_display_FlxExtendedMouseSprite)) { var extSprite = sprite; var x = extSprite.springOffsetX; var y = extSprite.springOffsetY; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.offset = point; } }; $hxClasses["flixel.addons.display.FlxMouseSpring"] = flixel_addons_display_FlxMouseSpring; flixel_addons_display_FlxMouseSpring.__name__ = "flixel.addons.display.FlxMouseSpring"; flixel_addons_display_FlxMouseSpring.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_display_FlxMouseSpring.prototype = { sprite: null ,tension: null ,friction: null ,gravity: null ,offset: null ,retainVelocity: null ,get__retainVelocity: function() { return this.retainVelocity; } ,set__retainVelocity: function(value) { return this.retainVelocity = value; } ,velocity: null ,velY: null ,update: function(elapsed) { var offsetX = this.offset == null ? this.offset.x : this.sprite.origin.x; var offsetY = this.offset == null ? this.offset.y : this.sprite.origin.y; var disX = flixel_FlxG.mouse.x - (this.sprite.x + offsetX); var disY = flixel_FlxG.mouse.y - (this.sprite.y + offsetY); this.velocity.set_x(this.velocity.x + disX * this.tension); this.velocity.set_y(this.velocity.y + disY * this.tension); this.velocity.set_x(this.velocity.x * this.friction); this.velocity.set_y(this.velocity.y + this.gravity); this.velocity.set_y(this.velocity.y * this.friction); var fh = this.sprite; fh.set_x(fh.x + this.velocity.x); var fh = this.sprite; fh.set_y(fh.y + this.velocity.y); } ,reset: function() { var this1 = this.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,destroy: function() { this.sprite = null; this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this.velocity = flixel_util_FlxDestroyUtil.put(this.velocity); } ,__class__: flixel_addons_display_FlxMouseSpring ,__properties__: {set__retainVelocity:"set__retainVelocity",get__retainVelocity:"get__retainVelocity"} }; var flixel_addons_display_FlxNestedSprite = function(X,Y,SimpleGraphic) { this._parentBlue = 1; this._parentGreen = 1; this._parentRed = 1; this.children = []; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.relativeAcceleration = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.relativeVelocity = point; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.relativeScale = point; this.relativeAlpha = 1; this.relativeAngularAcceleration = 0; this.relativeAngularVelocity = 0; this.relativeAngle = 0; this.relativeY = 0; this.relativeX = 0; flixel_FlxSprite.call(this,X,Y,SimpleGraphic); }; $hxClasses["flixel.addons.display.FlxNestedSprite"] = flixel_addons_display_FlxNestedSprite; flixel_addons_display_FlxNestedSprite.__name__ = "flixel.addons.display.FlxNestedSprite"; flixel_addons_display_FlxNestedSprite.__super__ = flixel_FlxSprite; flixel_addons_display_FlxNestedSprite.prototype = $extend(flixel_FlxSprite.prototype,{ relativeX: null ,relativeY: null ,relativeAngle: null ,relativeAngularVelocity: null ,relativeAngularAcceleration: null ,relativeAlpha: null ,relativeScale: null ,relativeVelocity: null ,relativeAcceleration: null ,children: null ,_parentRed: null ,_parentGreen: null ,_parentBlue: null ,destroy: function() { flixel_FlxSprite.prototype.destroy.call(this); this.relativeScale = flixel_util_FlxDestroyUtil.put(this.relativeScale); this.relativeVelocity = flixel_util_FlxDestroyUtil.put(this.relativeVelocity); this.relativeAcceleration = flixel_util_FlxDestroyUtil.put(this.relativeAcceleration); this.children = flixel_util_FlxDestroyUtil.destroyArray(this.children); } ,add: function(Child) { if(this.children.indexOf(Child) != -1) { return Child; } this.children.push(Child); var this1 = Child.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Child.acceleration; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Child.scrollFactor; var p = this.scrollFactor; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } Child.set_alpha(Child.relativeAlpha * this.alpha); Child._parentRed = (this.color >> 16 & 255) / 255; Child._parentGreen = (this.color >> 8 & 255) / 255; Child._parentBlue = (this.color & 255) / 255; Child.set_color(Child.color); return Child; } ,remove: function(Child) { var index = this.children.indexOf(Child); if(index >= 0) { this.children.splice(index,1); } return Child; } ,removeAt: function(Index) { if(Index == null) { Index = 0; } if(this.children.length < Index || Index < 0) { return null; } return this.remove(this.children[Index]); } ,removeAll: function() { var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; this.remove(child); } } ,preUpdate: function(elapsed) { var this1 = this.last; var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.active && child.exists) { child.preUpdate(elapsed); } } } ,update: function(elapsed) { this.preUpdate(elapsed); var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.active && child.exists) { child.update(elapsed); } } this.postUpdate(elapsed); } ,postUpdate: function(elapsed) { if(this.moves) { this.updateMotion(elapsed); } this.wasTouching = this.touching; this.touching = 0; this.animation.update(elapsed); var velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.relativeAngularVelocity,this.relativeAngularAcceleration,this.angularDrag,this.maxAngular,elapsed) - this.relativeAngularVelocity); this.relativeAngularVelocity += velocityDelta; this.relativeAngle += this.relativeAngularVelocity * elapsed; this.relativeAngularVelocity += velocityDelta; velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.relativeVelocity.x,this.relativeAcceleration.x,this.drag.x,this.maxVelocity.x,elapsed) - this.relativeVelocity.x); this.relativeVelocity.set_x(this.relativeVelocity.x + velocityDelta); var delta = this.relativeVelocity.x * elapsed; this.relativeVelocity.set_x(this.relativeVelocity.x + velocityDelta); this.relativeX += delta; velocityDelta = 0.5 * (flixel_math_FlxVelocity.computeVelocity(this.relativeVelocity.y,this.relativeAcceleration.y,this.drag.y,this.maxVelocity.y,elapsed) - this.relativeVelocity.y); this.relativeVelocity.set_y(this.relativeVelocity.y + velocityDelta); delta = this.relativeVelocity.y * elapsed; this.relativeVelocity.set_y(this.relativeVelocity.y + velocityDelta); this.relativeY += delta; var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.active && child.exists) { child.velocity.set_x(child.velocity.set_y(0)); child.acceleration.set_x(child.acceleration.set_y(0)); child.angularVelocity = child.angularAcceleration = 0; child.postUpdate(elapsed); if(this.isSimpleRender(this.get_camera())) { child.set_x(this.x + child.relativeX - this.offset.x); child.set_y(this.y + child.relativeY - this.offset.y); } else { var radians = this.angle * (Math.PI / 180); var cos = Math.cos(radians); var sin = Math.sin(radians); var dx = this.get_width() / 2 - child.get_width() / 2 - this.offset.x; dx += this.scale.x * cos * (child.relativeX - this.get_width() / 2 + child.get_width() / 2); dx -= this.scale.y * sin * (child.relativeY - this.get_height() / 2 + child.get_height() / 2); var dy = this.get_height() / 2 - child.get_height() / 2 - this.offset.y; dy += this.scale.y * cos * (child.relativeY - this.get_height() / 2 + child.get_height() / 2); dy += this.scale.x * sin * (child.relativeX - this.get_width() / 2 + child.get_width() / 2); child.set_x(this.x + dx); child.set_y(this.y + dy); } child.set_angle(this.angle + child.relativeAngle); child.scale.set_x(this.scale.x * child.relativeScale.x); child.scale.set_y(this.scale.y * child.relativeScale.y); child.velocity.set_x(this.velocity.x); child.velocity.set_y(this.velocity.y); child.acceleration.set_x(this.acceleration.x); child.acceleration.set_y(this.acceleration.y); } } } ,draw: function() { if(this._frame != null) { flixel_FlxSprite.prototype.draw.call(this); } var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.exists && child.visible) { child.draw(); } } } ,set_alpha: function(Alpha) { var lowerBound = Alpha < 0 ? 0 : Alpha; Alpha = lowerBound > 1 ? 1 : lowerBound; if(Alpha == this.alpha) { return this.alpha; } this.alpha = Alpha * this.relativeAlpha; if(this.alpha != 1 || this.color != 16777215) { var red = (this.color >> 16) * this._parentRed / 255; var green = (this.color >> 8 & 255) * this._parentGreen / 255; var blue = (this.color & 255) * this._parentBlue / 255; if(this.colorTransform == null) { this.colorTransform = new openfl_geom_ColorTransform(red,green,blue,this.alpha); } else { this.colorTransform.redMultiplier = red; this.colorTransform.greenMultiplier = green; this.colorTransform.blueMultiplier = blue; this.colorTransform.alphaMultiplier = this.alpha; } this.useColorTransform = true; } else { if(this.colorTransform != null) { this.colorTransform.redMultiplier = 1; this.colorTransform.greenMultiplier = 1; this.colorTransform.blueMultiplier = 1; this.colorTransform.alphaMultiplier = 1; } this.useColorTransform = false; } this.dirty = true; if(this.children != null) { var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.set_alpha(this.alpha); } } return this.alpha; } ,set_color: function(Color) { Color = Color & 16777215; var combinedRed = (Color >> 16) * this._parentRed / 255; var combinedGreen = (Color >> 8 & 255) * this._parentGreen / 255; var combinedBlue = (Color & 255) * this._parentBlue / 255; var Alpha = 0; if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(combinedRed * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(combinedGreen * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(combinedBlue * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; var combinedColor = color; if(this.color == combinedColor) { return this.color; } this.color = combinedColor; if(this.alpha != 1 || this.color != 16777215) { if(this.colorTransform == null) { this.colorTransform = new openfl_geom_ColorTransform(combinedRed,combinedGreen,combinedBlue,this.alpha); } else { this.colorTransform.redMultiplier = combinedRed; this.colorTransform.greenMultiplier = combinedGreen; this.colorTransform.blueMultiplier = combinedBlue; this.colorTransform.alphaMultiplier = this.alpha; } this.useColorTransform = true; } else { if(this.colorTransform != null) { this.colorTransform.redMultiplier = 1; this.colorTransform.greenMultiplier = 1; this.colorTransform.blueMultiplier = 1; this.colorTransform.alphaMultiplier = 1; } this.useColorTransform = false; } this.dirty = true; if(flixel_FlxG.renderTile) { var Value = Math.round(combinedRed * 255); this.color &= -16711681; this.color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(combinedGreen * 255); this.color &= -65281; this.color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(combinedBlue * 255); this.color &= -256; this.color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; } var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; var childColor = child.color; var childRed = (childColor >> 16) / (255 * child._parentRed); var childGreen = (childColor >> 8 & 255) / (255 * child._parentGreen); var childBlue = (childColor & 255) / (255 * child._parentBlue); var Alpha = 0; if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(childRed * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value1 = Math.round(childGreen * 255); color &= -65281; color |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value2 = Math.round(childBlue * 255); color &= -256; color |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2; var Value3 = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value3 > 255 ? 255 : Value3 < 0 ? 0 : Value3) << 24; combinedColor = color; child.set_color(combinedColor); child._parentRed = combinedRed; child._parentGreen = combinedGreen; child._parentBlue = combinedBlue; } return this.color; } ,set_facing: function(Direction) { flixel_FlxSprite.prototype.set_facing.call(this,Direction); if(this.children != null) { var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.exists && child.active) { child.set_facing(Direction); } } } return Direction; } ,get_count: function() { return this.children.length; } ,__class__: flixel_addons_display_FlxNestedSprite ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_count:"get_count"}) }); var flixel_addons_display_FlxPieDial = function(X,Y,Radius,Color,Frames,Shape,Clockwise,InnerRadius) { if(InnerRadius == null) { InnerRadius = 0; } if(Clockwise == null) { Clockwise = true; } if(Frames == null) { Frames = 36; } if(Color == null) { Color = -1; } this.pieFrames = 0; if(Shape == null) { Shape = flixel_addons_display_FlxPieDialShape.CIRCLE; } flixel_FlxSprite.call(this,X,Y); this.makePieDialGraphic(Radius,Color,Frames,Shape,Clockwise,InnerRadius); this.set_amount(1.0); }; $hxClasses["flixel.addons.display.FlxPieDial"] = flixel_addons_display_FlxPieDial; flixel_addons_display_FlxPieDial.__name__ = "flixel.addons.display.FlxPieDial"; flixel_addons_display_FlxPieDial.__super__ = flixel_FlxSprite; flixel_addons_display_FlxPieDial.prototype = $extend(flixel_FlxSprite.prototype,{ amount: null ,pieFrames: null ,draw: function() { if(this.amount == 0) { return; } flixel_FlxSprite.prototype.draw.call(this); } ,makePieDialGraphic: function(Radius,Color,Frames,Shape,Clockwise,InnerRadius) { this.pieFrames = Frames; var key = "pie_dial_" + ("0x" + StringTools.hex(Color >> 24 & 255,2) + StringTools.hex(Color >> 16 & 255,2) + StringTools.hex(Color >> 8 & 255,2) + StringTools.hex(Color & 255,2)) + "_" + Radius + "_" + Frames + "_" + Std.string(Shape) + "_" + (Clockwise == null ? "null" : "" + Clockwise) + "_" + InnerRadius; var W = Radius * 2; var H = Radius * 2; if(flixel_FlxG.bitmap._cache.h[key] == null) { var bmp = this.makePieDialGraphicSub(Radius,Color,Frames,Shape,Clockwise,InnerRadius); flixel_FlxG.bitmap.add(bmp,true,key); } this.loadGraphic(key,true,W,H); } ,makePieDialGraphicSub: function(Radius,Color,Frames,Shape,Clockwise,InnerRadius) { var W = Radius * 2; var H = Radius * 2; var rows = Math.ceil(Math.sqrt(Frames)); var cols = Math.ceil(Frames / rows); var back = Clockwise ? -16777216 : -1; var fore = Clockwise ? -1 : -16777216; var fullFrame = this.makeFullFrame(Radius,Color,Frames,Shape,Clockwise,InnerRadius); var nextFrame = new flixel_FlxSprite().makeGraphic(W,H,back,false); var bmp = new openfl_display_BitmapData(W * cols,H * rows,false,back); var i = 0; this._flashPoint.setTo(0,0); var x = 0; var y = -1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var p = point; var degrees = 360 / Frames; if(!Clockwise) { degrees *= -1; } var sweep = Clockwise ? 0 : 360; var bmp2 = new openfl_display_BitmapData(bmp.width,bmp.height,true,0); var fullBmp = fullFrame.get_pixels().clone(); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point2 = flixel_math_FlxBasePoint.pool.get().set(x,y); point2._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point3 = flixel_math_FlxBasePoint.pool.get().set(x,y); point3._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point4 = flixel_math_FlxBasePoint.pool.get().set(x,y); point4._inPool = false; var polygon = [point,point1,point2,point3,point4]; var _g = 0; var _g1 = rows; while(_g < _g1) { var r = _g++; var _g2 = 0; var _g3 = cols; while(_g2 < _g3) { var c = _g2++; if(i >= Frames) { break; } this._flashPoint.setTo(c * W,r * H); bmp2.copyPixels(fullBmp,fullBmp.rect,this._flashPoint); if(i <= 0) { bmp.fillRect(fullBmp.rect,-1); } else { nextFrame.get_pixels().copyPixels(fullFrame.get_pixels(),fullFrame.get_pixels().rect,this._flashPointZero); this._flashPoint.setTo(c * W,r * H); this.drawSweep(sweep,p,nextFrame,polygon,W,H,back,fore); bmp.copyPixels(nextFrame.get_pixels(),nextFrame.get_pixels().rect,this._flashPoint); } sweep += degrees; var rads = degrees * (Math.PI / 180); var s = Math.sin(rads); var c1 = Math.cos(rads); var tempX = p.x; p.set_x(tempX * c1 - p.y * s); p.set_y(tempX * s + p.y * c1); ++i; } if(i >= Frames) { break; } } fullBmp.dispose(); fullFrame.destroy(); nextFrame.destroy(); var shapeChannel = new openfl_display_BitmapData(bmp.width,bmp.height,false); shapeChannel.copyChannel(bmp2,bmp2.rect,this._flashPointZero,8,1); shapeChannel.copyChannel(bmp2,bmp2.rect,this._flashPointZero,8,2); shapeChannel.copyChannel(bmp2,bmp2.rect,this._flashPointZero,8,4); shapeChannel.draw(bmp,null,null,9,null,true); bmp2.copyChannel(shapeChannel,shapeChannel.rect,this._flashPointZero,1,8); shapeChannel.dispose(); bmp.dispose(); return bmp2; } ,makeFullFrame: function(Radius,Color,Frames,Shape,Clockwise,InnerRadius) { var W = Radius * 2; var H = Radius * 2; var fullFrame = new flixel_FlxSprite().makeGraphic(W,H,0,true); if(InnerRadius > Radius) { InnerRadius = 0; } var dR = Radius - InnerRadius; if(Shape == flixel_addons_display_FlxPieDialShape.SQUARE) { fullFrame.get_pixels().fillRect(fullFrame.get_pixels().rect,Color); if(InnerRadius > 0) { this._flashRect.setTo(dR,dR,InnerRadius * 2,InnerRadius * 2); fullFrame.get_pixels().fillRect(this._flashRect,0); } } else if(Shape == flixel_addons_display_FlxPieDialShape.CIRCLE) { if(InnerRadius > 0) { var alpha = new openfl_display_BitmapData(fullFrame.get_pixels().width,fullFrame.get_pixels().height,false,-16777216); fullFrame.get_pixels().fillRect(this._flashRect,-16777216); flixel_util_FlxSpriteUtil.drawCircle(fullFrame,-1,-1,Radius,-1,null,{ smoothing : true}); flixel_util_FlxSpriteUtil.drawCircle(fullFrame,-1,-1,InnerRadius,-16777216,null,{ smoothing : true}); alpha.copyPixels(fullFrame.get_pixels(),fullFrame.get_pixels().rect,this._flashPointZero,null,null,true); fullFrame.get_pixels().fillRect(fullFrame.get_pixels().rect,Color); fullFrame.get_pixels().copyChannel(alpha,alpha.rect,this._flashPointZero,1,8); alpha.dispose(); } else { flixel_util_FlxSpriteUtil.drawCircle(fullFrame,-1,-1,Radius,Color); } } return fullFrame; } ,drawSweep: function(sweep,p,nextFrame,polygon,W,H,back,fore) { var halfW = W / 2; var halfH = H / 2; nextFrame.get_pixels().fillRect(nextFrame.get_pixels().rect,back); var this1 = polygon[0]; var x = halfW; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(sweep < 45) { var this1 = polygon[1]; var x = halfW; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 90) { var this1 = polygon[1]; var x = halfW; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = W; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 135) { this._flashRect.setTo(halfW,0,halfW,halfH); nextFrame.get_pixels().fillRect(this._flashRect,fore); var this1 = polygon[1]; var x = W; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 180) { this._flashRect.setTo(halfW,0,halfW,halfH); nextFrame.get_pixels().fillRect(this._flashRect,fore); var this1 = polygon[1]; var x = W; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = W; var y = H; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 225) { this._flashRect.setTo(halfW,0,halfW,H); nextFrame.get_pixels().fillRect(this._flashRect,fore); var this1 = polygon[1]; var x = halfW; var y = H; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 270) { this._flashRect.setTo(halfW,0,halfW,H); nextFrame.get_pixels().fillRect(this._flashRect,fore); var this1 = polygon[1]; var x = halfW; var y = H; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = 0; var y = H; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 315) { this._flashRect.setTo(halfW,0,halfW,H); nextFrame.get_pixels().fillRect(this._flashRect,fore); this._flashRect.setTo(0,halfH,halfW,halfH); nextFrame.get_pixels().fillRect(this._flashRect,fore); var this1 = polygon[1]; var x = 0; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else if(sweep < 360) { this._flashRect.setTo(halfW,0,halfW,H); nextFrame.get_pixels().fillRect(this._flashRect,fore); this._flashRect.setTo(0,halfH,halfW,halfH); nextFrame.get_pixels().fillRect(this._flashRect,fore); var this1 = polygon[1]; var x = 0; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[2]; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = polygon[3]; var x = halfW + W * p.x; var y = halfH + H * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } var this1 = polygon[4]; var x = halfW; var y = halfH; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); flixel_util_FlxSpriteUtil.drawPolygon(nextFrame,polygon,fore); } ,set_amount: function(f) { var lowerBound = f < 0.0 ? 0.0 : f; this.amount = lowerBound > 1.0 ? 1.0 : lowerBound; var frame = f * this.pieFrames | 0; this.animation.set_frameIndex(frame); if(this.amount == 1.0) { this.animation.set_frameIndex(0); } return this.amount; } ,__class__: flixel_addons_display_FlxPieDial ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_amount:"set_amount"}) }); var flixel_addons_display_FlxPieDialShape = $hxEnums["flixel.addons.display.FlxPieDialShape"] = { __ename__:"flixel.addons.display.FlxPieDialShape",__constructs__:null ,CIRCLE: {_hx_name:"CIRCLE",_hx_index:0,__enum__:"flixel.addons.display.FlxPieDialShape",toString:$estr} ,SQUARE: {_hx_name:"SQUARE",_hx_index:1,__enum__:"flixel.addons.display.FlxPieDialShape",toString:$estr} }; flixel_addons_display_FlxPieDialShape.__constructs__ = [flixel_addons_display_FlxPieDialShape.CIRCLE,flixel_addons_display_FlxPieDialShape.SQUARE]; flixel_addons_display_FlxPieDialShape.__empty_constructs__ = [flixel_addons_display_FlxPieDialShape.CIRCLE,flixel_addons_display_FlxPieDialShape.SQUARE]; var openfl_display_Shader = function(code) { this.__fieldList = null; this.byteCode = code; this.precisionHint = 1; this.__glSourceDirty = true; this.__numPasses = 1; this.__data = openfl_display_ShaderData._new(code); }; $hxClasses["openfl.display.Shader"] = openfl_display_Shader; openfl_display_Shader.__name__ = "openfl.display.Shader"; openfl_display_Shader.prototype = { byteCode: null ,glFragmentHeaderRaw: null ,glFragmentBodyRaw: null ,glFragmentSourceRaw: null ,glProgram: null ,glVertexHeaderRaw: null ,glVertexBodyRaw: null ,glVertexSourceRaw: null ,precisionHint: null ,program: null ,__alpha: null ,__bitmap: null ,__colorMultiplier: null ,__colorOffset: null ,__context: null ,__data: null ,__glVertexExtensions: null ,__glFragmentExtensions: null ,__glVersion: null ,__glFragmentHeaderRaw: null ,__glFragmentBodyRaw: null ,__glFragmentSourceRaw: null ,__glFragmentSource: null ,__glSourceDirty: null ,__glVertexHeaderRaw: null ,__glVertexBodyRaw: null ,__glVertexSourceRaw: null ,__glVertexSource: null ,__hasColorTransform: null ,__inputBitmapData: null ,__isGenerated: null ,__matrix: null ,__numPasses: null ,__paramBool: null ,__paramFloat: null ,__paramInt: null ,__position: null ,__textureCoord: null ,__texture: null ,__textureSize: null ,__clearUseArray: function() { var _g = 0; var _g1 = this.__paramBool; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__useArray = false; } var _g = 0; var _g1 = this.__paramFloat; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__useArray = false; } var _g = 0; var _g1 = this.__paramInt; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__useArray = false; } } ,__createGLShader: function(source,type) { var gl = this.__context.gl; var shader = gl.createShader(type); gl.shaderSource(shader,source); gl.compileShader(shader); var shaderInfoLog = gl.getShaderInfoLog(shader); var hasInfoLog = shaderInfoLog != null && StringTools.trim(shaderInfoLog) != ""; var compileStatus = gl.getShaderParameter(shader,gl.COMPILE_STATUS); if(hasInfoLog || compileStatus == 0) { var message = compileStatus == 0 ? "Error" : "Info"; message += type == gl.VERTEX_SHADER ? " compiling vertex shader" : " compiling fragment shader"; message += "\n" + shaderInfoLog; message += "\n" + source; if(compileStatus == 0) { lime_utils_Log.error(message,{ fileName : "openfl/display/Shader.hx", lineNumber : 424, className : "openfl.display.Shader", methodName : "__createGLShader"}); } else if(hasInfoLog) { lime_utils_Log.debug(message,{ fileName : "openfl/display/Shader.hx", lineNumber : 425, className : "openfl.display.Shader", methodName : "__createGLShader"}); } } return shader; } ,__createGLProgram: function(vertexSource,fragmentSource) { var gl = this.__context.gl; var vertexShader = this.__createGLShader(vertexSource,gl.VERTEX_SHADER); var fragmentShader = this.__createGLShader(fragmentSource,gl.FRAGMENT_SHADER); var program = gl.createProgram(); var _g = 0; var _g1 = this.__paramFloat; while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(param.name.indexOf("Position") > -1 && StringTools.startsWith(param.name,"openfl_")) { gl.bindAttribLocation(program,0,param.name); break; } } gl.attachShader(program,vertexShader); gl.attachShader(program,fragmentShader); gl.linkProgram(program); if(gl.getProgramParameter(program,gl.LINK_STATUS) == 0) { var message = "Unable to initialize the shader program"; message += "\n" + gl.getProgramInfoLog(program); lime_utils_Log.error(message,{ fileName : "openfl/display/Shader.hx", lineNumber : 458, className : "openfl.display.Shader", methodName : "__createGLProgram"}); } return program; } ,__disable: function() { if(this.program != null) { this.__disableGL(); } } ,__disableGL: function() { var gl = this.__context.gl; var textureCount = 0; var _g = 0; var _g1 = this.__inputBitmapData; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.__disableGL(this.__context,textureCount); ++textureCount; if(textureCount == gl.MAX_TEXTURE_IMAGE_UNITS) { break; } } var _g = 0; var _g1 = this.__paramBool; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__disableGL(this.__context); } var _g = 0; var _g1 = this.__paramFloat; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__disableGL(this.__context); } var _g = 0; var _g1 = this.__paramInt; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__disableGL(this.__context); } this.__context.__bindGLArrayBuffer(null); if(this.__context.__context.type == "opengl") { gl.disable(gl.TEXTURE_2D); } } ,__enable: function() { this.__init(); if(this.program != null) { this.__enableGL(); } } ,__enableGL: function() { var textureCount = 0; var gl = this.__context.gl; var _g = 0; var _g1 = this.__inputBitmapData; while(_g < _g1.length) { var input = _g1[_g]; ++_g; gl.uniform1i(input.index,textureCount); ++textureCount; } if(this.__context.__context.type == "opengl" && textureCount > 0) { gl.enable(gl.TEXTURE_2D); } } ,__init: function() { if(this.__data == null) { this.__data = openfl_display_ShaderData._new(null); } if(this.__glFragmentSource != null && this.__glVertexSource != null && (this.program == null || this.__glSourceDirty)) { this.__initGL(); } } ,__buildSourcePrefix: function(isFragment) { var extensions = ""; var extList = isFragment ? this.__glFragmentExtensions : this.__glVertexExtensions; var _g = 0; while(_g < extList.length) { var ext = extList[_g]; ++_g; extensions += "#extension " + ext.name + " : " + ext.behavior + "\n"; } return "#version " + this.__glVersion + "\n " + extensions + "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t" + (this.precisionHint == 1 ? "#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\t\t\tprecision highp float;\n\t\t\t\t#else\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#endif" : "precision lowp float;") + "\n\t\t\t\t#endif\n\t\t\t\t"; } ,__initGL: function() { if(this.__glSourceDirty || this.__paramBool == null) { this.__glSourceDirty = false; this.program = null; this.__inputBitmapData = []; this.__paramBool = []; this.__paramFloat = []; this.__paramInt = []; this.__processGLData(this.get_glVertexSource(),"attribute"); this.__processGLData(this.get_glVertexSource(),"in"); this.__processGLData(this.get_glVertexSource(),"uniform"); this.__processGLData(this.get_glFragmentSource(),"uniform"); } if(this.__context != null && this.program == null) { var gl = this.__context.gl; var vertex = this.__buildSourcePrefix(false) + this.get_glVertexSource(); var fragment = this.__buildSourcePrefix(true) + this.get_glFragmentSource(); var id = vertex + fragment; if(Object.prototype.hasOwnProperty.call(this.__context.__programs.h,id)) { this.program = this.__context.__programs.h[id]; } else { this.program = this.__context.createProgram(1); this.program.__glProgram = this.__createGLProgram(vertex,fragment); this.__context.__programs.h[id] = this.program; } if(this.program != null) { this.glProgram = this.program.__glProgram; var _g = 0; var _g1 = this.__inputBitmapData; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(input.__isUniform) { input.index = gl.getUniformLocation(this.glProgram,input.name); } else { input.index = gl.getAttribLocation(this.glProgram,input.name); } } var _g = 0; var _g1 = this.__paramBool; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; if(parameter.__isUniform) { parameter.index = gl.getUniformLocation(this.glProgram,parameter.name); } else { parameter.index = gl.getAttribLocation(this.glProgram,parameter.name); } } var _g = 0; var _g1 = this.__paramFloat; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; if(parameter.__isUniform) { parameter.index = gl.getUniformLocation(this.glProgram,parameter.name); } else { parameter.index = gl.getAttribLocation(this.glProgram,parameter.name); } } var _g = 0; var _g1 = this.__paramInt; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; if(parameter.__isUniform) { parameter.index = gl.getUniformLocation(this.glProgram,parameter.name); } else { parameter.index = gl.getAttribLocation(this.glProgram,parameter.name); } } } } } ,__processGLData: function(source,storageType) { var position; var name; var type; var regex; if(storageType == "uniform") { regex = new EReg("uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)",""); } else if(storageType == "in") { regex = new EReg("in ([A-Za-z0-9]+) ([A-Za-z0-9_]+)",""); } else { regex = new EReg("attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)",""); } var lastMatch = 0; while(regex.matchSub(source,lastMatch)) { type = regex.matched(1); name = regex.matched(2); if(StringTools.startsWith(name,"gl_")) { continue; } var isUniform = storageType == "uniform"; if(StringTools.startsWith(type,"sampler")) { var input = new openfl_display_ShaderInput(); input.name = name; input.__isUniform = isUniform; this.__inputBitmapData.push(input); switch(name) { case "bitmap": this.__bitmap = input; break; case "openfl_Texture": this.__texture = input; break; default: } this.__data[name] = input; if(this.__isGenerated && this.thisHasField(name)) { Reflect.setProperty(this,name,input); } } else if(!Object.prototype.hasOwnProperty.call(this.__data,name) || Reflect.field(this.__data,name) == null) { var parameterType; switch(type) { case "bool": parameterType = 0; break; case "bvec2": parameterType = 1; break; case "bvec3": parameterType = 2; break; case "bvec4": parameterType = 3; break; case "dvec2":case "vec2": parameterType = 5; break; case "dvec3":case "vec3": parameterType = 6; break; case "dvec4":case "vec4": parameterType = 7; break; case "double":case "float": parameterType = 4; break; case "mat2":case "mat2x2": parameterType = 12; break; case "mat2x3": parameterType = 13; break; case "mat2x4": parameterType = 14; break; case "mat3x2": parameterType = 15; break; case "mat3":case "mat3x3": parameterType = 16; break; case "mat3x4": parameterType = 17; break; case "mat4x2": parameterType = 18; break; case "mat4x3": parameterType = 19; break; case "mat4":case "mat4x4": parameterType = 20; break; case "int":case "uint": parameterType = 8; break; case "ivec2":case "uvec2": parameterType = 9; break; case "ivec3":case "uvec3": parameterType = 10; break; case "ivec4":case "uvec4": parameterType = 11; break; default: parameterType = null; } var length; switch(parameterType) { case 1:case 5:case 9: length = 2; break; case 2:case 6:case 10: length = 3; break; case 3:case 7:case 11:case 12: length = 4; break; case 16: length = 9; break; case 20: length = 16; break; default: length = 1; } var arrayLength; switch(parameterType) { case 12: arrayLength = 2; break; case 16: arrayLength = 3; break; case 20: arrayLength = 4; break; default: arrayLength = 1; } switch(parameterType) { case 0:case 1:case 2:case 3: var parameter = new openfl_display_ShaderParameter(); parameter.set_name(name); parameter.type = parameterType; parameter.__arrayLength = arrayLength; parameter.__isBool = true; parameter.__isUniform = isUniform; parameter.__length = length; this.__paramBool.push(parameter); if(name == "openfl_HasColorTransform") { this.__hasColorTransform = parameter; } this.__data[name] = parameter; if(this.__isGenerated && this.thisHasField(name)) { Reflect.setProperty(this,name,parameter); } break; case 8:case 9:case 10:case 11: var parameter1 = new openfl_display_ShaderParameter(); parameter1.set_name(name); parameter1.type = parameterType; parameter1.__arrayLength = arrayLength; parameter1.__isInt = true; parameter1.__isUniform = isUniform; parameter1.__length = length; this.__paramInt.push(parameter1); this.__data[name] = parameter1; if(this.__isGenerated && this.thisHasField(name)) { Reflect.setProperty(this,name,parameter1); } break; default: var parameter2 = new openfl_display_ShaderParameter(); parameter2.set_name(name); parameter2.type = parameterType; parameter2.__arrayLength = arrayLength; if(arrayLength > 0) { var elements = arrayLength * arrayLength; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } parameter2.__uniformMatrix = this1; } parameter2.__isFloat = true; parameter2.__isUniform = isUniform; parameter2.__length = length; this.__paramFloat.push(parameter2); if(StringTools.startsWith(name,"openfl_")) { switch(name) { case "openfl_Alpha": this.__alpha = parameter2; break; case "openfl_ColorMultiplier": this.__colorMultiplier = parameter2; break; case "openfl_ColorOffset": this.__colorOffset = parameter2; break; case "openfl_Matrix": this.__matrix = parameter2; break; case "openfl_Position": this.__position = parameter2; break; case "openfl_TextureCoord": this.__textureCoord = parameter2; break; case "openfl_TextureSize": this.__textureSize = parameter2; break; default: } } this.__data[name] = parameter2; if(this.__isGenerated && this.thisHasField(name)) { Reflect.setProperty(this,name,parameter2); } } } position = regex.matchedPos(); lastMatch = position.pos + position.len; } } ,__update: function() { if(this.program != null) { this.__updateGL(); } } ,__updateFromBuffer: function(shaderBuffer,bufferOffset) { if(this.program != null) { this.__updateGLFromBuffer(shaderBuffer,bufferOffset); } } ,__updateGL: function() { var textureCount = 0; var _g = 0; var _g1 = this.__inputBitmapData; while(_g < _g1.length) { var input = _g1[_g]; ++_g; input.__updateGL(this.__context,textureCount); ++textureCount; } var _g = 0; var _g1 = this.__paramBool; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__updateGL(this.__context); } var _g = 0; var _g1 = this.__paramFloat; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__updateGL(this.__context); } var _g = 0; var _g1 = this.__paramInt; while(_g < _g1.length) { var parameter = _g1[_g]; ++_g; parameter.__updateGL(this.__context); } } ,__updateGLFromBuffer: function(shaderBuffer,bufferOffset) { var textureCount = 0; var input; var inputData; var inputFilter; var inputMipFilter; var inputWrap; var _g = 0; var _g1 = shaderBuffer.inputCount; while(_g < _g1) { var i = _g++; input = shaderBuffer.inputRefs[i]; inputData = shaderBuffer.inputs[i]; inputFilter = shaderBuffer.inputFilter[i]; inputMipFilter = shaderBuffer.inputMipFilter[i]; inputWrap = shaderBuffer.inputWrap[i]; if(inputData != null) { input.__updateGL(this.__context,textureCount,inputData,inputFilter,inputMipFilter,inputWrap); ++textureCount; } } var gl = this.__context.gl; if(shaderBuffer.paramDataLength > 0) { if(shaderBuffer.paramDataBuffer == null) { shaderBuffer.paramDataBuffer = gl.createBuffer(); } this.__context.__bindGLArrayBuffer(shaderBuffer.paramDataBuffer); lime_graphics_WebGLRenderContext.bufferData(gl,gl.ARRAY_BUFFER,shaderBuffer.paramData,gl.DYNAMIC_DRAW); } else { this.__context.__bindGLArrayBuffer(null); } var boolIndex = 0; var floatIndex = 0; var intIndex = 0; var boolCount = shaderBuffer.paramBoolCount; var floatCount = shaderBuffer.paramFloatCount; var paramData = shaderBuffer.paramData; var boolRef; var floatRef; var intRef; var hasOverride; var overrideBoolValue = null; var overrideFloatValue = null; var overrideIntValue = null; var _g = 0; var _g1 = shaderBuffer.paramCount; while(_g < _g1) { var i = _g++; hasOverride = false; if(i < boolCount) { boolRef = shaderBuffer.paramRefs_Bool[boolIndex]; var _g2 = 0; var _g3 = shaderBuffer.overrideBoolCount; while(_g2 < _g3) { var j = _g2++; if(boolRef.name == shaderBuffer.overrideBoolNames[j]) { overrideBoolValue = shaderBuffer.overrideBoolValues[j]; hasOverride = true; break; } } if(hasOverride) { boolRef.__updateGL(this.__context,overrideBoolValue); } else { boolRef.__updateGLFromBuffer(this.__context,paramData,shaderBuffer.paramPositions[i],shaderBuffer.paramLengths[i],bufferOffset); } ++boolIndex; } else if(i < boolCount + floatCount) { floatRef = shaderBuffer.paramRefs_Float[floatIndex]; var _g4 = 0; var _g5 = shaderBuffer.overrideFloatCount; while(_g4 < _g5) { var j1 = _g4++; if(floatRef.name == shaderBuffer.overrideFloatNames[j1]) { overrideFloatValue = shaderBuffer.overrideFloatValues[j1]; hasOverride = true; break; } } if(hasOverride) { floatRef.__updateGL(this.__context,overrideFloatValue); } else { floatRef.__updateGLFromBuffer(this.__context,paramData,shaderBuffer.paramPositions[i],shaderBuffer.paramLengths[i],bufferOffset); } ++floatIndex; } else { intRef = shaderBuffer.paramRefs_Int[intIndex]; var _g6 = 0; var _g7 = shaderBuffer.overrideIntCount; while(_g6 < _g7) { var j2 = _g6++; if(intRef.name == shaderBuffer.overrideIntNames[j2]) { overrideIntValue = shaderBuffer.overrideIntValues[j2]; hasOverride = true; break; } } if(hasOverride) { intRef.__updateGL(this.__context,overrideIntValue); } else { intRef.__updateGLFromBuffer(this.__context,paramData,shaderBuffer.paramPositions[i],shaderBuffer.paramLengths[i],bufferOffset); } ++intIndex; } } } ,get_data: function() { if(this.__glSourceDirty || this.__data == null) { this.__init(); } return this.__data; } ,set_data: function(value) { return this.__data = value; } ,get_glFragmentHeaderRaw: function() { return this.__glFragmentHeaderRaw; } ,get_glFragmentBodyRaw: function() { return this.__glFragmentBodyRaw; } ,get_glFragmentSourceRaw: function() { return this.__glFragmentSourceRaw; } ,get_glFragmentSource: function() { return this.__glFragmentSource; } ,get_glVersion: function() { return this.__glVersion; } ,get_glVertexExtensions: function() { return this.__glVertexExtensions; } ,get_glFragmentExtensions: function() { return this.__glFragmentExtensions; } ,set_glFragmentSource: function(value) { if(value != this.__glFragmentSource) { this.__glSourceDirty = true; } return this.__glFragmentSource = value; } ,set_glVersion: function(value) { if(value != this.__glVersion) { this.__glSourceDirty = true; } return this.__glVersion = value; } ,set_glVertexExtensions: function(value) { if(value != this.__glVertexExtensions) { this.__glSourceDirty = true; } return this.__glVertexExtensions = value; } ,set_glFragmentExtensions: function(value) { if(value != this.__glFragmentExtensions) { this.__glSourceDirty = true; } return this.__glFragmentExtensions = value; } ,get_glVertexHeaderRaw: function() { return this.__glVertexHeaderRaw; } ,get_glVertexBodyRaw: function() { return this.__glVertexBodyRaw; } ,get_glVertexSourceRaw: function() { return this.__glVertexSourceRaw; } ,get_glVertexSource: function() { return this.__glVertexSource; } ,set_glVertexSource: function(value) { if(value != this.__glVertexSource) { this.__glSourceDirty = true; } return this.__glVertexSource = value; } ,__fieldList: null ,thisHasField: function(name) { if(this.__fieldList == null) { this.__fieldList = Reflect.fields(this).concat(Type.getInstanceFields(js_Boot.getClass(this))); } return this.__fieldList.indexOf(name) != -1; } ,__class__: openfl_display_Shader ,__properties__: {set_glVertexSource:"set_glVertexSource",get_glVertexSource:"get_glVertexSource",get_glVertexSourceRaw:"get_glVertexSourceRaw",get_glVertexBodyRaw:"get_glVertexBodyRaw",get_glVertexHeaderRaw:"get_glVertexHeaderRaw",set_glFragmentSource:"set_glFragmentSource",get_glFragmentSource:"get_glFragmentSource",get_glFragmentSourceRaw:"get_glFragmentSourceRaw",get_glFragmentBodyRaw:"get_glFragmentBodyRaw",get_glFragmentHeaderRaw:"get_glFragmentHeaderRaw",set_glFragmentExtensions:"set_glFragmentExtensions",get_glFragmentExtensions:"get_glFragmentExtensions",set_glVertexExtensions:"set_glVertexExtensions",get_glVertexExtensions:"get_glVertexExtensions",set_glVersion:"set_glVersion",get_glVersion:"get_glVersion",set_data:"set_data",get_data:"get_data"} }; var openfl_display_GraphicsShader = function(code) { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"; } this.__isGenerated = true; openfl_display_Shader.call(this,code); this.__initGL(); }; $hxClasses["openfl.display.GraphicsShader"] = openfl_display_GraphicsShader; openfl_display_GraphicsShader.__name__ = "openfl.display.GraphicsShader"; openfl_display_GraphicsShader.__super__ = openfl_display_Shader; openfl_display_GraphicsShader.prototype = $extend(openfl_display_Shader.prototype,{ openfl_Alpha: null ,openfl_ColorMultiplier: null ,openfl_ColorOffset: null ,openfl_Position: null ,openfl_TextureCoord: null ,openfl_Matrix: null ,openfl_HasColorTransform: null ,openfl_TextureSize: null ,bitmap: null ,__class__: openfl_display_GraphicsShader }); var flixel_graphics_tile_FlxGraphicsShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; openfl_display_GraphicsShader.call(this); this.__initGL(); }; $hxClasses["flixel.graphics.tile.FlxGraphicsShader"] = flixel_graphics_tile_FlxGraphicsShader; flixel_graphics_tile_FlxGraphicsShader.__name__ = "flixel.graphics.tile.FlxGraphicsShader"; flixel_graphics_tile_FlxGraphicsShader.__super__ = openfl_display_GraphicsShader; flixel_graphics_tile_FlxGraphicsShader.prototype = $extend(openfl_display_GraphicsShader.prototype,{ alpha: null ,colorMultiplier: null ,colorOffset: null ,hasColorTransform: null ,hasTransform: null ,__class__: flixel_graphics_tile_FlxGraphicsShader }); var flixel_addons_display_FlxRuntimeShader = function(fragmentSource,vertexSource,glslVersion) { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; if(glslVersion != null) { this.set_glVersion(glslVersion); } if(fragmentSource == null) { this.set_glFragmentSource(this.__processFragmentSource(this.get_glFragmentSourceRaw())); } else { this.set_glFragmentSource(this.__processFragmentSource(fragmentSource)); } if(vertexSource == null) { var s = this.__processVertexSource(this.get_glVertexSourceRaw()); this.set_glVertexSource(s); } else { var s = this.__processVertexSource(vertexSource); this.set_glVertexSource(s); } this.__glSourceDirty = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.__initGL(); }; $hxClasses["flixel.addons.display.FlxRuntimeShader"] = flixel_addons_display_FlxRuntimeShader; flixel_addons_display_FlxRuntimeShader.__name__ = "flixel.addons.display.FlxRuntimeShader"; flixel_addons_display_FlxRuntimeShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; flixel_addons_display_FlxRuntimeShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ __processFragmentSource: function(input) { var result = StringTools.replace(input,flixel_addons_display_FlxRuntimeShader.PRAGMA_HEADER,this.get_glFragmentHeaderRaw()); result = StringTools.replace(result,flixel_addons_display_FlxRuntimeShader.PRAGMA_BODY,this.get_glFragmentBodyRaw()); return result; } ,__processVertexSource: function(input) { var result = StringTools.replace(input,flixel_addons_display_FlxRuntimeShader.PRAGMA_HEADER,this.get_glVertexHeaderRaw()); result = StringTools.replace(result,flixel_addons_display_FlxRuntimeShader.PRAGMA_BODY,this.get_glVertexBodyRaw()); return result; } ,setFloat: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader float property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 119, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setFloat"}); return; } prop.value = [value]; } ,setFloatArray: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader float[] property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 136, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setFloatArray"}); return; } prop.value = value; } ,setInt: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader int property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 153, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setInt"}); return; } prop.value = [value]; } ,setIntArray: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader int[] property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 170, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setIntArray"}); return; } prop.value = value; } ,setBool: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader bool property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 186, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setBool"}); return; } prop.value = [value]; } ,setBoolArray: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader bool[] property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 202, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setBoolArray"}); return; } prop.value = value; } ,setBitmapData: function(name,value) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader sampler2D property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 218, className : "flixel.addons.display.FlxRuntimeShader", methodName : "setBitmapData"}); return; } prop.input = value; } ,getFloat: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null || prop.value.length == 0) { haxe_Log.trace("[WARN] Shader float property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 234, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getFloat"}); return null; } return prop.value[0]; } ,getFloatArray: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader float[] property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 250, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getFloatArray"}); return null; } return prop.value; } ,getInt: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null || prop.value.length == 0) { haxe_Log.trace("[WARN] Shader int property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 266, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getInt"}); return null; } return prop.value[0]; } ,getIntArray: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader int[] property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 282, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getIntArray"}); return null; } return prop.value; } ,getBool: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null || prop.value.length == 0) { haxe_Log.trace("[WARN] Shader bool property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 298, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getBool"}); return null; } return prop.value[0]; } ,getBoolArray: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader bool[] property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 314, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getBoolArray"}); return null; } return prop.value; } ,getBitmapData: function(name) { var prop = Reflect.field(this.get_data(),name); if(prop == null) { haxe_Log.trace("[WARN] Shader sampler2D property " + name + " not found.",{ fileName : "flixel/addons/display/FlxRuntimeShader.hx", lineNumber : 330, className : "flixel.addons.display.FlxRuntimeShader", methodName : "getBitmapData"}); return null; } return prop.input; } ,toString: function() { return "FlxRuntimeShader"; } ,__class__: flixel_addons_display_FlxRuntimeShader }); var flixel_addons_display_FlxShaderMaskCamera = function(effectShader,X,Y,Width,Height,Zoom) { if(Zoom == null) { Zoom = 0; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._shadedScrollRect = new openfl_display_Sprite(); if(flixel_FlxG.renderBlit) { throw haxe_Exception.thrown("FlxShaderMaskCamera is not supported in blit render mode"); } this.shaderCanvas = new openfl_display_Sprite(); this.maskCanvas = new openfl_display_Sprite(); this._shadedScrollRect.set_mask(this.maskCanvas); flixel_FlxCamera.call(this,X,Y,Width,Height,Zoom); this.flashSprite.addChild(this._shadedScrollRect); this._shadedScrollRect.addChild(this.shaderCanvas); this._shadedScrollRect.addChild(this.maskCanvas); this._maskGroup = new flixel_group_FlxTypedGroup(); this.shaderFilter = new openfl_filters_ShaderFilter(effectShader); this._shadedScrollRect.set_filters([this.shaderFilter]); }; $hxClasses["flixel.addons.display.FlxShaderMaskCamera"] = flixel_addons_display_FlxShaderMaskCamera; flixel_addons_display_FlxShaderMaskCamera.__name__ = "flixel.addons.display.FlxShaderMaskCamera"; flixel_addons_display_FlxShaderMaskCamera.__super__ = flixel_FlxCamera; flixel_addons_display_FlxShaderMaskCamera.prototype = $extend(flixel_FlxCamera.prototype,{ _shadedScrollRect: null ,shaderCanvas: null ,maskCanvas: null ,shaderFilter: null ,_maskGroup: null ,update: function(elapsed) { flixel_FlxCamera.prototype.update.call(this,elapsed); this._maskGroup.update(elapsed); } ,render: function() { this.shaderCanvas.get_graphics().clear(); flixel_FlxCamera.prototype.fill.call(this,this.bgColor & 16777215,this.useBgAlphaBlending,(this.bgColor >> 24 & 255) / 255,this.shaderCanvas.get_graphics()); var currItem = this._headOfDrawStack; var oldCanvas = this.canvas; while(currItem != null) { currItem.render(this); this.canvas = this.shaderCanvas; currItem.render(this); this.canvas = oldCanvas; currItem = currItem.next; } this._currentDrawItem = null; this._headOfDrawStack = null; this._maskGroup.draw(); this.maskCanvas.get_graphics().clear(); this.canvas = this.maskCanvas; currItem = this._headOfDrawStack; while(currItem != null) { currItem.render(this); currItem = currItem.next; } this.canvas = oldCanvas; } ,addMaskObject: function(object) { object.set_camera(this); return this._maskGroup.add(object); } ,removeMaskObject: function(object) { return this._maskGroup.remove(object); } ,destroy: function() { flixel_util_FlxDestroyUtil.removeChild(this.flashSprite,this._shadedScrollRect); flixel_util_FlxDestroyUtil.removeChild(this._shadedScrollRect,this.shaderCanvas); if(this.shaderCanvas != null) { var _g = 0; var _g1 = this.shaderCanvas.get_numChildren(); while(_g < _g1) { var i = _g++; this.shaderCanvas.removeChildAt(0); } this.shaderCanvas = null; } if(this.maskCanvas != null) { var _g = 0; var _g1 = this.maskCanvas.get_numChildren(); while(_g < _g1) { var i = _g++; this.maskCanvas.removeChildAt(0); } this.maskCanvas = null; } if(this._maskGroup != null) { this._maskGroup.destroy(); this._maskGroup = null; } this._shadedScrollRect = null; this.shaderFilter = null; flixel_FlxCamera.prototype.destroy.call(this); } ,updateInternalSpritePositions: function() { flixel_FlxCamera.prototype.updateInternalSpritePositions.call(this); var canvas = this.shaderCanvas; if(canvas != null) { canvas.set_x(-0.5 * this.width * (this.scaleX - this.initialZoom) * flixel_FlxG.scaleMode.scale.x); canvas.set_y(-0.5 * this.height * (this.scaleY - this.initialZoom) * flixel_FlxG.scaleMode.scale.y); canvas.set_scaleX(this.totalScaleX); canvas.set_scaleY(this.totalScaleY); } var canvas = this.maskCanvas; if(canvas != null) { canvas.set_x(-0.5 * this.width * (this.scaleX - this.initialZoom) * flixel_FlxG.scaleMode.scale.x); canvas.set_y(-0.5 * this.height * (this.scaleY - this.initialZoom) * flixel_FlxG.scaleMode.scale.y); canvas.set_scaleX(this.totalScaleX); canvas.set_scaleY(this.totalScaleY); } } ,fill: function(Color,BlendAlpha,FxAlpha,graphics) { if(FxAlpha == null) { FxAlpha = 1.0; } if(BlendAlpha == null) { BlendAlpha = true; } if(graphics != null) { flixel_FlxCamera.prototype.fill.call(this,Color,BlendAlpha,FxAlpha,graphics); } else { flixel_FlxCamera.prototype.fill.call(this,Color,BlendAlpha,FxAlpha,this.canvas.get_graphics()); flixel_FlxCamera.prototype.fill.call(this,Color,BlendAlpha,FxAlpha,this.shaderCanvas.get_graphics()); } } ,drawFX: function() { flixel_FlxCamera.prototype.drawFX.call(this); if(this._fxFlashAlpha > 0.0) { var alphaComponent = this._fxFlashColor >> 24 & 255; flixel_FlxCamera.prototype.fill.call(this,this._fxFlashColor & 16777215,true,(alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFlashAlpha / 255,this.shaderCanvas.get_graphics()); } if(this._fxFadeAlpha > 0.0) { var alphaComponent = this._fxFadeColor >> 24 & 255; flixel_FlxCamera.prototype.fill.call(this,this._fxFadeColor & 16777215,true,(alphaComponent <= 0 ? 255 : alphaComponent) * this._fxFadeAlpha / 255,this.shaderCanvas.get_graphics()); } } ,set_alpha: function(Alpha) { flixel_FlxCamera.prototype.set_alpha.call(this,Alpha); this.shaderCanvas.set_alpha(this.canvas.get_alpha()); return Alpha; } ,set_color: function(Color) { flixel_FlxCamera.prototype.set_color.call(this,Color); var colorTransform = this.shaderCanvas.get_transform().get_colorTransform(); colorTransform.redMultiplier = (this.color >> 16 & 255) / 255; colorTransform.greenMultiplier = (this.color >> 8 & 255) / 255; colorTransform.blueMultiplier = (this.color & 255) / 255; this.shaderCanvas.get_transform().set_colorTransform(colorTransform); return Color; } ,updateScrollRect: function() { flixel_FlxCamera.prototype.updateScrollRect.call(this); var rect = this._scrollRect != null ? this._scrollRect.get_scrollRect() : null; if(rect != null) { this._shadedScrollRect.set_scrollRect(rect); this._shadedScrollRect.set_x(-0.5 * rect.width); this._shadedScrollRect.set_y(-0.5 * rect.height); } } ,__class__: flixel_addons_display_FlxShaderMaskCamera }); var flixel_addons_display_FlxSliceSprite = function(Graphic,SliceRect,Width,Height,SourceRect) { this.numVertices = 0; this._snappedHeight = -1; this._snappedWidth = -1; this.regenSlices = true; this.regen = true; this.fillCenter = true; this.stretchCenter = false; this.stretchBottom = false; this.stretchRight = false; this.stretchTop = false; this.stretchLeft = false; this.snapHeight = false; this.snapWidth = false; flixel_FlxStrip.call(this); if(this.renderSprite == null) { this.renderSprite = new flixel_FlxSprite(); } this.sliceRects = []; this.sliceRects[0] = new flixel_math_FlxRect(); this.sliceRects[1] = new flixel_math_FlxRect(); this.sliceRects[2] = new flixel_math_FlxRect(); this.sliceRects[3] = new flixel_math_FlxRect(); this.sliceRects[4] = new flixel_math_FlxRect(); this.sliceRects[5] = new flixel_math_FlxRect(); this.sliceRects[6] = new flixel_math_FlxRect(); this.sliceRects[7] = new flixel_math_FlxRect(); this.sliceRects[8] = new flixel_math_FlxRect(); this.repeat = true; this.set_sliceRect(SliceRect); this.set_sourceRect(SourceRect); this.loadGraphic(Graphic); this.set_width(Width); this.set_height(Height); }; $hxClasses["flixel.addons.display.FlxSliceSprite"] = flixel_addons_display_FlxSliceSprite; flixel_addons_display_FlxSliceSprite.__name__ = "flixel.addons.display.FlxSliceSprite"; flixel_addons_display_FlxSliceSprite.__super__ = flixel_FlxStrip; flixel_addons_display_FlxSliceSprite.prototype = $extend(flixel_FlxStrip.prototype,{ snapWidth: null ,snapHeight: null ,stretchLeft: null ,stretchTop: null ,stretchRight: null ,stretchBottom: null ,stretchCenter: null ,fillCenter: null ,sliceRect: null ,sourceRect: null ,sliceRects: null ,renderSprite: null ,regen: null ,regenSlices: null ,helperFrame: null ,_snappedWidth: null ,_snappedHeight: null ,numVertices: null ,destroy: function() { this.set_sliceRect(null); this.sliceRects = null; this.helperFrame = flixel_util_FlxDestroyUtil.destroy(this.helperFrame); this.renderSprite = flixel_util_FlxDestroyUtil.destroy(this.renderSprite); flixel_FlxStrip.prototype.destroy.call(this); } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } this.set_graphic(flixel_FlxG.bitmap.add(Graphic)); return this; } ,loadFrame: function(Frame) { this.set_graphic(flixel_graphics_FlxGraphic.fromFrame(Frame)); return this; } ,set_graphic: function(Value) { if(this.graphic != Value) { this.regen = this.regenSlices = true; } return flixel_FlxStrip.prototype.set_graphic.call(this,Value); } ,regenGraphic: function() { if(!this.regen || this.graphic == null) { return; } if(this.regenSlices) { this.regenSliceRects(); } var topLeft = this.sliceRects[0]; var topMiddle = this.sliceRects[1]; var topRight = this.sliceRects[2]; var middleLeft = this.sliceRects[3]; var middle = this.sliceRects[4]; var middleRight = this.sliceRects[5]; var bottomLeft = this.sliceRects[6]; var bottomMiddle = this.sliceRects[7]; var bottomRight = this.sliceRects[8]; var centerWidth = this.get_width() - middleLeft.width - middleRight.width; var centerHeight = this.get_height() - topMiddle.height - bottomMiddle.height; if(this.snapWidth) { centerWidth = Math.floor((this.get_width() - middleLeft.width - middleRight.width) / middle.width) * middle.width; centerWidth = Math.max(centerWidth,middle.width); } if(this.snapHeight) { centerHeight = Math.floor((this.get_height() - topMiddle.height - bottomMiddle.height) / middle.height) * middle.height; centerHeight = Math.max(centerHeight,middle.height); } this._snappedWidth = centerWidth + middleLeft.width + middleRight.width; this._snappedHeight = centerHeight + topMiddle.height + bottomMiddle.height; var centerX = topLeft.width; var centerY = topLeft.height; var this1 = flixel_addons_display_FlxSliceSprite.helperBdSize; var x = this.graphic.width; var y = this.graphic.height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var bdSize = this1; var dst = flixel_addons_display_FlxSliceSprite.helperDst; var slice = flixel_addons_display_FlxSliceSprite.helperRect; var size = flixel_addons_display_FlxSliceSprite.helperSize; var numHorizontal = Math.ceil((this._snappedWidth - topLeft.width - topRight.width) / topMiddle.width); var numVertical = Math.ceil((this._snappedHeight - topLeft.height - bottomLeft.height) / middleLeft.height); this.vertices = openfl_Vector.toFloatVector(null); this.uvtData = openfl_Vector.toFloatVector(null); this.indices = openfl_Vector.toIntVector(null); this.colors = openfl_Vector.toIntVector(null); this.numVertices = 0; if(this.fillCenter) { slice.x = middle.x; slice.y = middle.y; slice.width = middle.width; slice.height = middle.height; if(middle._weak) { if(!middle._inPool) { middle._inPool = true; middle._weak = false; flixel_math_FlxRect._pool.putUnsafe(middle); } } if(this.stretchCenter) { var x = this._snappedWidth - middleLeft.width - middleRight.width; var y = this._snappedHeight - topMiddle.height - bottomMiddle.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); var x = topLeft.width; var y = topLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } else { var _g = 0; var _g1 = numHorizontal; while(_g < _g1) { var i = _g++; slice.width = middle.width; if(i == numHorizontal - 1) { slice.width = this._snappedWidth - middleLeft.width - middleRight.width - (numHorizontal - 1) * middle.width; } var _g2 = 0; var _g3 = numVertical; while(_g2 < _g3) { var j = _g2++; slice.height = middle.height; if(j == numVertical - 1) { slice.height = this._snappedHeight - topMiddle.height - bottomMiddle.height - (numVertical - 1) * middle.height; } var x = slice.width; var y = slice.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); var x1 = topLeft.width + i * middle.width; var y1 = topLeft.height + j * middle.height; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } dst.set_x(x1); dst.set_y(y1); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } } } } if(this.stretchTop) { slice.x = topMiddle.x; slice.y = topMiddle.y; slice.width = topMiddle.width; slice.height = topMiddle.height; if(topMiddle._weak) { if(!topMiddle._inPool) { topMiddle._inPool = true; topMiddle._weak = false; flixel_math_FlxRect._pool.putUnsafe(topMiddle); } } var x = this._snappedWidth - topLeft.width - topRight.width; var y = topMiddle.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); var x = topLeft.width; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } else { var _g = 0; var _g1 = numHorizontal; while(_g < _g1) { var i = _g++; slice.x = topMiddle.x; slice.y = topMiddle.y; slice.width = topMiddle.width; slice.height = topMiddle.height; if(topMiddle._weak) { if(!topMiddle._inPool) { topMiddle._inPool = true; topMiddle._weak = false; flixel_math_FlxRect._pool.putUnsafe(topMiddle); } } if(i == numHorizontal - 1) { slice.width = this._snappedWidth - topLeft.width - topRight.width - (numHorizontal - 1) * topMiddle.width; } var x = slice.width; var y = slice.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); var x1 = topLeft.width + i * topMiddle.width; var y1 = 0; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } dst.set_x(x1); dst.set_y(y1); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } } if(this.stretchBottom) { slice.x = bottomMiddle.x; slice.y = bottomMiddle.y; slice.width = bottomMiddle.width; slice.height = bottomMiddle.height; if(bottomMiddle._weak) { if(!bottomMiddle._inPool) { bottomMiddle._inPool = true; bottomMiddle._weak = false; flixel_math_FlxRect._pool.putUnsafe(bottomMiddle); } } var x = bottomLeft.width; var y = this._snappedHeight - bottomMiddle.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = this._snappedWidth - bottomLeft.width - bottomRight.width; var y = bottomMiddle.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } else { var _g = 0; var _g1 = numHorizontal; while(_g < _g1) { var i = _g++; slice.x = bottomMiddle.x; slice.y = bottomMiddle.y; slice.width = bottomMiddle.width; slice.height = bottomMiddle.height; if(bottomMiddle._weak) { if(!bottomMiddle._inPool) { bottomMiddle._inPool = true; bottomMiddle._weak = false; flixel_math_FlxRect._pool.putUnsafe(bottomMiddle); } } if(i == numHorizontal - 1) { slice.width = this._snappedWidth - bottomLeft.width - bottomRight.width - (numHorizontal - 1) * bottomMiddle.width; } var x = bottomLeft.width + i * bottomMiddle.width; var y = this._snappedHeight - bottomMiddle.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x1 = slice.width; var y1 = slice.height; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } size.set_x(x1); size.set_y(y1); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } } if(this.stretchLeft) { slice.x = middleLeft.x; slice.y = middleLeft.y; slice.width = middleLeft.width; slice.height = middleLeft.height; if(middleLeft._weak) { if(!middleLeft._inPool) { middleLeft._inPool = true; middleLeft._weak = false; flixel_math_FlxRect._pool.putUnsafe(middleLeft); } } var x = 0; var y = topLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = middleLeft.width; var y = this._snappedHeight - topLeft.height - bottomLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } else { var _g = 0; var _g1 = numVertical; while(_g < _g1) { var i = _g++; slice.x = middleLeft.x; slice.y = middleLeft.y; slice.width = middleLeft.width; slice.height = middleLeft.height; if(middleLeft._weak) { if(!middleLeft._inPool) { middleLeft._inPool = true; middleLeft._weak = false; flixel_math_FlxRect._pool.putUnsafe(middleLeft); } } if(i == numVertical - 1) { slice.height = this._snappedHeight - topLeft.height - bottomLeft.height - (numVertical - 1) * middleLeft.height; } var x = 0; var y = topLeft.height + i * middleLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x1 = slice.width; var y1 = slice.height; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } size.set_x(x1); size.set_y(y1); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } } if(this.stretchRight) { slice.x = middleRight.x; slice.y = middleRight.y; slice.width = middleRight.width; slice.height = middleRight.height; if(middleRight._weak) { if(!middleRight._inPool) { middleRight._inPool = true; middleRight._weak = false; flixel_math_FlxRect._pool.putUnsafe(middleRight); } } var x = this._snappedWidth - middleRight.width; var y = topRight.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = middleRight.width; var y = this._snappedHeight - topRight.height - bottomRight.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } else { var _g = 0; var _g1 = numVertical; while(_g < _g1) { var i = _g++; slice.x = middleRight.x; slice.y = middleRight.y; slice.width = middleRight.width; slice.height = middleRight.height; if(middleRight._weak) { if(!middleRight._inPool) { middleRight._inPool = true; middleRight._weak = false; flixel_math_FlxRect._pool.putUnsafe(middleRight); } } if(i == numVertical - 1) { slice.height = this._snappedHeight - topRight.height - bottomRight.height - (numVertical - 1) * middleRight.height; } var x = this._snappedWidth - middleRight.width; var y = topRight.height + i * middleRight.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x1 = slice.width; var y1 = slice.height; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } size.set_x(x1); size.set_y(y1); this.numVertices = this.stretchSlice(this.numVertices,slice,dst,bdSize,size); } } var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = topLeft.width; var y = topLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,topLeft,dst,bdSize,size); var x = 0; var y = this._snappedHeight - bottomLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = bottomLeft.width; var y = bottomLeft.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,bottomLeft,dst,bdSize,size); var x = this._snappedWidth - topRight.width; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = topRight.width; var y = topRight.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,topRight,dst,bdSize,size); var x = this._snappedWidth - bottomRight.width; var y = this._snappedHeight - bottomRight.height; if(y == null) { y = 0; } if(x == null) { x = 0; } dst.set_x(x); dst.set_y(y); var x = bottomRight.width; var y = bottomRight.height; if(y == null) { y = 0; } if(x == null) { x = 0; } size.set_x(x); size.set_y(y); this.numVertices = this.stretchSlice(this.numVertices,bottomRight,dst,bdSize,size); if(flixel_FlxG.renderBlit) { if(this.renderSprite.get_width() != this._snappedWidth || this.renderSprite.get_height() != this._snappedHeight) { this.renderSprite.makeGraphic(this._snappedWidth | 0,this._snappedHeight | 0,0,true); } else { this._flashRect2.setTo(0,0,this._snappedWidth,this._snappedHeight); this.renderSprite.get_pixels().fillRect(this._flashRect2,0); } flixel_util_FlxSpriteUtil.flashGfx.clear(); flixel_util_FlxSpriteUtil.flashGfx.beginBitmapFill(this.graphic.bitmap); flixel_util_FlxSpriteUtil.flashGfx.drawTriangles(this.vertices,this.indices,this.uvtData); flixel_util_FlxSpriteUtil.flashGfx.endFill(); this.renderSprite.get_pixels().draw(flixel_util_FlxSpriteUtil.flashGfxSprite,null,this.colorTransform); flixel_util_FlxSpriteUtil.flashGfx.clear(); this.renderSprite.dirty = true; } else { var c = this.color; var Value = this.alpha; var Value1 = Math.round(Value * 255); c &= 16777215; c |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; this.updateColors(c); } this.regen = false; } ,stretchSlice: function(vertex,slice,dst,bdSize,size) { var vertexIndex = 2 * vertex; var uvIndex = vertexIndex; var colorIndex = vertex; this.vertices.set(vertexIndex++,dst.x); this.vertices.set(vertexIndex++,dst.y); this.vertices.set(vertexIndex++,dst.x + size.x); this.vertices.set(vertexIndex++,dst.y); this.vertices.set(vertexIndex++,dst.x + size.x); this.vertices.set(vertexIndex++,dst.y + size.y); this.vertices.set(vertexIndex++,dst.x); this.vertices.set(vertexIndex++,dst.y + size.y); this.uvtData.set(uvIndex++,slice.x / bdSize.x); this.uvtData.set(uvIndex++,slice.y / bdSize.y); this.uvtData.set(uvIndex++,(slice.x + slice.width) / bdSize.x); this.uvtData.set(uvIndex++,slice.y / bdSize.y); this.uvtData.set(uvIndex++,(slice.x + slice.width) / bdSize.x); this.uvtData.set(uvIndex++,(slice.y + slice.height) / bdSize.y); this.uvtData.set(uvIndex++,slice.x / bdSize.x); this.uvtData.set(uvIndex++,(slice.y + slice.height) / bdSize.y); var indexPosition = Math.round(6 * vertex / 4); this.indices.set(indexPosition++,vertex); this.indices.set(indexPosition++,vertex + 1); this.indices.set(indexPosition++,vertex + 2); this.indices.set(indexPosition++,vertex); this.indices.set(indexPosition++,vertex + 2); this.indices.set(indexPosition++,vertex + 3); return vertex + 4; } ,regenSliceRects: function() { if(!this.regenSlices || this.graphic == null || this.sliceRect == null) { return; } var sourceWidth = this.graphic.width; var sourceHeight = this.graphic.height; var Value = this.sliceRect.x; var lowerBound = Value < 0 ? 0 : Value; var rectX = (sourceWidth != null && lowerBound > sourceWidth ? sourceWidth : lowerBound) | 0; var Value = this.sliceRect.y; var lowerBound = Value < 0 ? 0 : Value; var rectY = (sourceHeight != null && lowerBound > sourceHeight ? sourceHeight : lowerBound) | 0; var _this = this.sliceRect; var Value = _this.x + _this.width; var lowerBound = rectX != null && Value < rectX ? rectX : Value; var rectX2 = (sourceWidth != null && lowerBound > sourceWidth ? sourceWidth : lowerBound) | 0; var _this = this.sliceRect; var Value = _this.y + _this.height; var lowerBound = rectY != null && Value < rectY ? rectY : Value; var rectY2 = (sourceHeight != null && lowerBound > sourceHeight ? sourceHeight : lowerBound) | 0; var sourceX = 0; var sourceY = 0; if(this.sourceRect != null) { var Value = this.sourceRect.x; var lowerBound = Value < 0 ? 0 : Value; sourceX = (sourceWidth != null && lowerBound > sourceWidth ? sourceWidth : lowerBound) | 0; var Value = this.sourceRect.y; var lowerBound = Value < 0 ? 0 : Value; sourceY = (sourceHeight != null && lowerBound > sourceHeight ? sourceHeight : lowerBound) | 0; var Value = sourceX + this.sourceRect.width; var lowerBound = Value < 0 ? 0 : Value; sourceWidth = (sourceWidth != null && lowerBound > sourceWidth ? sourceWidth : lowerBound) | 0; var Value = sourceY + this.sourceRect.height; var lowerBound = Value < 0 ? 0 : Value; sourceHeight = (sourceHeight != null && lowerBound > sourceHeight ? sourceHeight : lowerBound) | 0; } rectX += sourceX; rectY += sourceY; rectX2 += sourceX; rectY2 += sourceY; var xArray_0 = sourceX; var xArray_1 = rectX; var xArray_2 = rectX2; var xArray_3 = sourceWidth; var yArray_0 = sourceY; var yArray_1 = rectY; var yArray_2 = rectY2; var yArray_3 = sourceHeight; rectX = xArray_0; rectX2 = xArray_1; rectY = yArray_0; rectY2 = yArray_1; var _this = this.sliceRects[0]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_1; rectX2 = xArray_2; rectY = yArray_0; rectY2 = yArray_1; var _this = this.sliceRects[1]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_2; rectX2 = xArray_3; rectY = yArray_0; rectY2 = yArray_1; var _this = this.sliceRects[2]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_0; rectX2 = xArray_1; rectY = yArray_1; rectY2 = yArray_2; var _this = this.sliceRects[3]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_1; rectX2 = xArray_2; rectY = yArray_1; rectY2 = yArray_2; var _this = this.sliceRects[4]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_2; rectX2 = xArray_3; rectY = yArray_1; rectY2 = yArray_2; var _this = this.sliceRects[5]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_0; rectX2 = xArray_1; rectY = yArray_2; rectY2 = yArray_3; var _this = this.sliceRects[6]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_1; rectX2 = xArray_2; rectY = yArray_2; rectY2 = yArray_3; var _this = this.sliceRects[7]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; rectX = xArray_2; rectX2 = xArray_3; rectY = yArray_2; rectY2 = yArray_3; var _this = this.sliceRects[8]; var X = rectX; var Y = rectY; var Width = rectX2 - rectX; var Height = rectY2 - rectY; 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; this.regenSlices = false; } ,draw: function() { if(this.regen) { this.regenGraphic(); } if(flixel_FlxG.renderBlit) { this.renderSprite.set_x(this.x); this.renderSprite.set_y(this.y); var this1 = this.renderSprite.scale; var p = this.scale; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } var this1 = this.renderSprite.scrollFactor; var x = this.scrollFactor.x; var y = this.scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.renderSprite._cameras = this._cameras; this.renderSprite.draw(); } else { flixel_FlxStrip.prototype.draw.call(this); } } ,updateColors: function(color) { var _g = 0; var _g1 = this.numVertices; while(_g < _g1) { var i = _g++; this.colors.set(i,color); } } ,set_alpha: function(Alpha) { if(this.alpha == Alpha) { return Alpha; } var newAlpha = flixel_FlxStrip.prototype.set_alpha.call(this,Alpha); if(flixel_FlxG.renderBlit && this.renderSprite != null) { this.renderSprite.set_alpha(newAlpha); } else if(flixel_FlxG.renderTile) { var c = this.color; var Value = Math.round(newAlpha * 255); c &= 16777215; c |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; this.updateColors(c); } this.regen = true; return newAlpha; } ,set_color: function(Color) { if(flixel_FlxG.renderBlit && this.renderSprite != null) { this.renderSprite.set_color(Color); } else if(flixel_FlxG.renderTile) { var newColor = Color; var Value = this.alpha; var Value1 = Math.round(Value * 255); newColor &= 16777215; newColor |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; this.updateColors(newColor); } return flixel_FlxStrip.prototype.set_color.call(this,Color); } ,set_width: function(Width) { if(Width <= 0) { return Width; } if(Width != this.get_width()) { this.regen = true; } return flixel_FlxStrip.prototype.set_width.call(this,Width); } ,set_height: function(Height) { if(Height <= 0) { return Height; } if(Height != this.get_height()) { this.regen = true; } return flixel_FlxStrip.prototype.set_height.call(this,Height); } ,set_snapWidth: function(Value) { if(Value != this.snapWidth) { this.regen = true; } return this.snapWidth = Value; } ,set_snapHeight: function(Value) { if(Value != this.snapHeight) { this.regen = true; } return this.snapHeight = Value; } ,set_stretchLeft: function(Value) { if(Value != this.stretchLeft) { this.regen = true; } return this.stretchLeft = Value; } ,set_stretchTop: function(Value) { if(Value != this.stretchTop) { this.regen = true; } return this.stretchTop = Value; } ,set_stretchRight: function(Value) { if(Value != this.stretchRight) { this.regen = true; } return this.stretchRight = Value; } ,set_stretchBottom: function(Value) { if(Value != this.stretchBottom) { this.regen = true; } return this.stretchBottom = Value; } ,set_stretchCenter: function(Value) { if(Value != this.stretchCenter) { this.regen = true; } return this.stretchCenter = Value; } ,set_fillCenter: function(Value) { if(Value != this.fillCenter) { this.regen = true; } return this.fillCenter = Value; } ,set_sliceRect: function(Value) { this.regen = this.regenSlices = true; return this.sliceRect = Value; } ,set_sourceRect: function(Value) { this.regen = this.regenSlices = true; return this.sourceRect = Value; } ,get_snappedWidth: function() { if(this.regen) { this.regenGraphic(); } return this._snappedWidth; } ,get_snappedHeight: function() { if(this.regen) { this.regenGraphic(); } return this._snappedHeight; } ,__class__: flixel_addons_display_FlxSliceSprite ,__properties__: $extend(flixel_FlxStrip.prototype.__properties__,{get_snappedHeight:"get_snappedHeight",get_snappedWidth:"get_snappedWidth",set_sourceRect:"set_sourceRect",set_sliceRect:"set_sliceRect",set_fillCenter:"set_fillCenter",set_stretchCenter:"set_stretchCenter",set_stretchBottom:"set_stretchBottom",set_stretchRight:"set_stretchRight",set_stretchTop:"set_stretchTop",set_stretchLeft:"set_stretchLeft",set_snapHeight:"set_snapHeight",set_snapWidth:"set_snapWidth"}) }); var flixel_addons_display_FlxSpriteAniRot = function(AnimatedGraphic,Rotations,AutoBuffer,Antialiasing,Width,Height,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Antialiasing == null) { Antialiasing = false; } if(AutoBuffer == null) { AutoBuffer = false; } if(Rotations == null) { Rotations = 16; } this.angleIndex = -1; this.rotations = 0; flixel_FlxSprite.call(this,X,Y); this.loadGraphic(AnimatedGraphic,true,Width,Height); this.graphic.set_destroyOnNoUse(false); this.rotations = Rotations; this.framesCache = []; var num = this.get_numFrames(); var helperSprite = new flixel_FlxSprite(); var frameToLoad = null; var _g = 0; var _g1 = num; while(_g < _g1) { var i = _g++; frameToLoad = this.frames.frames[i]; helperSprite.loadRotatedFrame(frameToLoad,Rotations,Antialiasing,AutoBuffer); helperSprite.graphic.set_destroyOnNoUse(false); this.framesCache.push(helperSprite.frames); } helperSprite.destroy(); if(AutoBuffer) { this.set_width(frameToLoad.sourceSize.x); this.set_height(frameToLoad.sourceSize.y); this.frameWidth = this.framesCache[0].frames[0].sourceSize.x | 0; this.frameHeight = this.framesCache[0].frames[0].sourceSize.y | 0; this.centerOffsets(); } this.animation.destroyAnimations(); this.bakedRotationAngle = 360 / Rotations; }; $hxClasses["flixel.addons.display.FlxSpriteAniRot"] = flixel_addons_display_FlxSpriteAniRot; flixel_addons_display_FlxSpriteAniRot.__name__ = "flixel.addons.display.FlxSpriteAniRot"; flixel_addons_display_FlxSpriteAniRot.__super__ = flixel_FlxSprite; flixel_addons_display_FlxSpriteAniRot.prototype = $extend(flixel_FlxSprite.prototype,{ framesCache: null ,rotations: null ,angleIndex: null ,destroy: function() { this.framesCache = null; flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); var oldIndex = this.angleIndex; var angleHelper = Math.floor(this.angle % 360); while(angleHelper < 0) angleHelper += 360; this.angleIndex = Math.floor(angleHelper / this.bakedRotationAngle + 0.5); this.angleIndex = this.angleIndex % this.rotations | 0; if(oldIndex != this.angleIndex) { this.dirty = true; } } ,calcFrame: function(RunOnCpp) { if(RunOnCpp == null) { RunOnCpp = false; } if(this.bakedRotationAngle != 0) { var idx = this.animation.frameIndex < 0 ? 0 : this.animation.frameIndex; this.set_frame(this.framesCache[idx].frames[this.angleIndex]); } if(flixel_FlxG.renderTile) { if(!RunOnCpp) { return; } } flixel_FlxSprite.prototype.calcFrame.call(this); } ,__class__: flixel_addons_display_FlxSpriteAniRot }); var flixel_addons_display__$FlxStarField_FlxStarField = function(X,Y,Width,Height,StarAmount) { this.bgColor = -16777216; flixel_FlxSprite.call(this,X,Y); if(Width <= 0) { Width = flixel_FlxG.width; } if(Height <= 0) { Height = flixel_FlxG.height; } this.makeGraphic(Width,Height,this.bgColor,true); this._stars = []; var _g = 0; var _g1 = StarAmount; while(_g < _g1) { var i = _g++; var star = new flixel_addons_display__$FlxStarField_FlxStar(); star.index = i; star.x = flixel_FlxG.random.int(0,Width); star.y = flixel_FlxG.random.int(0,Height); star.d = 1; star.r = flixel_FlxG.random.float() * Math.PI * 2; this._stars.push(star); } }; $hxClasses["flixel.addons.display._FlxStarField.FlxStarField"] = flixel_addons_display__$FlxStarField_FlxStarField; flixel_addons_display__$FlxStarField_FlxStarField.__name__ = "flixel.addons.display._FlxStarField.FlxStarField"; flixel_addons_display__$FlxStarField_FlxStarField.__super__ = flixel_FlxSprite; flixel_addons_display__$FlxStarField_FlxStarField.prototype = $extend(flixel_FlxSprite.prototype,{ bgColor: null ,_stars: null ,_depthColors: null ,_minSpeed: null ,_maxSpeed: null ,destroy: function() { var _g = 0; var _g1 = this._stars; while(_g < _g1.length) { var star = _g1[_g]; ++_g; star = null; } this._stars = null; this._depthColors = null; flixel_FlxSprite.prototype.destroy.call(this); } ,draw: function() { this.get_pixels().lock(); this.get_pixels().fillRect(this._flashRect,this.bgColor); var _g = 0; var _g1 = this._stars; while(_g < _g1.length) { var star = _g1[_g]; ++_g; var colorIndex = (star.speed - this._minSpeed) / (this._maxSpeed - this._minSpeed) * this._depthColors.length | 0; this.get_pixels().setPixel32(star.x | 0,star.y | 0,this._depthColors[colorIndex]); } this.get_pixels().unlock(); this.framePixels = this.get_pixels(); this.dirty = false; flixel_FlxSprite.prototype.draw.call(this); } ,setStarDepthColors: function(Depth,LowestColor,HighestColor) { if(HighestColor == null) { HighestColor = -723724; } if(LowestColor == null) { LowestColor = 267933784; } this._depthColors = flixel_util_FlxGradient.createGradientArray(1,Depth,[LowestColor,HighestColor]); } ,setStarSpeed: function(Min,Max) { this._minSpeed = Min; this._maxSpeed = Max; var _g = 0; var _g1 = this._stars; while(_g < _g1.length) { var star = _g1[_g]; ++_g; star.speed = flixel_FlxG.random.float(Min,Max); } } ,__class__: flixel_addons_display__$FlxStarField_FlxStarField }); var flixel_addons_display_FlxStarField2D = function(X,Y,Width,Height,StarAmount) { if(StarAmount == null) { StarAmount = 300; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_addons_display__$FlxStarField_FlxStarField.call(this,X,Y,Width,Height,StarAmount); var x = -1; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.starVelocityOffset = point; var LowestColor = -10987432; var HighestColor = -723724; if(HighestColor == null) { HighestColor = -723724; } if(LowestColor == null) { LowestColor = 267933784; } this._depthColors = flixel_util_FlxGradient.createGradientArray(1,5,[LowestColor,HighestColor]); this.setStarSpeed(100,400); }; $hxClasses["flixel.addons.display.FlxStarField2D"] = flixel_addons_display_FlxStarField2D; flixel_addons_display_FlxStarField2D.__name__ = "flixel.addons.display.FlxStarField2D"; flixel_addons_display_FlxStarField2D.__super__ = flixel_addons_display__$FlxStarField_FlxStarField; flixel_addons_display_FlxStarField2D.prototype = $extend(flixel_addons_display__$FlxStarField_FlxStarField.prototype,{ starVelocityOffset: null ,destroy: function() { this.starVelocityOffset = flixel_util_FlxDestroyUtil.put(this.starVelocityOffset); flixel_addons_display__$FlxStarField_FlxStarField.prototype.destroy.call(this); } ,update: function(elapsed) { var _g = 0; var _g1 = this._stars; while(_g < _g1.length) { var star = _g1[_g]; ++_g; star.x += this.starVelocityOffset.x * star.speed * elapsed; star.y += this.starVelocityOffset.y * star.speed * elapsed; if(star.x > this.get_width()) { star.x = 0; } else if(star.x < 0) { star.x = this.get_width(); } if(star.y > this.get_height()) { star.y = 0; } else if(star.y < 0) { star.y = this.get_height(); } } flixel_addons_display__$FlxStarField_FlxStarField.prototype.update.call(this,elapsed); } ,__class__: flixel_addons_display_FlxStarField2D }); var flixel_addons_display_FlxStarField3D = function(X,Y,Width,Height,StarAmount) { if(StarAmount == null) { StarAmount = 300; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_addons_display__$FlxStarField_FlxStarField.call(this,X,Y,Width,Height,StarAmount); var x = this.get_width() / 2; var y = this.get_height() / 2; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.center = point; var LowestColor = -14079703; var HighestColor = -1; if(HighestColor == null) { HighestColor = -723724; } if(LowestColor == null) { LowestColor = 267933784; } this._depthColors = flixel_util_FlxGradient.createGradientArray(1,300,[LowestColor,HighestColor]); this.setStarSpeed(0,200); }; $hxClasses["flixel.addons.display.FlxStarField3D"] = flixel_addons_display_FlxStarField3D; flixel_addons_display_FlxStarField3D.__name__ = "flixel.addons.display.FlxStarField3D"; flixel_addons_display_FlxStarField3D.__super__ = flixel_addons_display__$FlxStarField_FlxStarField; flixel_addons_display_FlxStarField3D.prototype = $extend(flixel_addons_display__$FlxStarField_FlxStarField.prototype,{ center: null ,destroy: function() { this.center = flixel_util_FlxDestroyUtil.put(this.center); flixel_addons_display__$FlxStarField_FlxStarField.prototype.destroy.call(this); } ,update: function(elapsed) { var _g = 0; var _g1 = this._stars; while(_g < _g1.length) { var star = _g1[_g]; ++_g; star.d *= 1.1; star.x = this.center.x + Math.cos(star.r) * star.d * star.speed * elapsed; star.y = this.center.y + Math.sin(star.r) * star.d * star.speed * elapsed; if(star.x < 0 || star.x > this.get_width() || star.y < 0 || star.y > this.get_height()) { star.d = 1; star.r = flixel_FlxG.random.float() * Math.PI * 2; star.x = 0; star.y = 0; star.speed = flixel_FlxG.random.float(this._minSpeed,this._maxSpeed); this._stars[star.index] = star; } } flixel_addons_display__$FlxStarField_FlxStarField.prototype.update.call(this,elapsed); } ,__class__: flixel_addons_display_FlxStarField3D }); var flixel_addons_display__$FlxStarField_FlxStar = function() { }; $hxClasses["flixel.addons.display._FlxStarField.FlxStar"] = flixel_addons_display__$FlxStarField_FlxStar; flixel_addons_display__$FlxStarField_FlxStar.__name__ = "flixel.addons.display._FlxStarField.FlxStar"; flixel_addons_display__$FlxStarField_FlxStar.prototype = { index: null ,x: null ,y: null ,d: null ,r: null ,speed: null ,__class__: flixel_addons_display__$FlxStarField_FlxStar }; var flixel_addons_display_FlxTiledSprite = function(Graphic,Width,Height,RepeatX,RepeatY) { if(RepeatY == null) { RepeatY = true; } if(RepeatX == null) { RepeatX = true; } this.graphicVisible = true; this.regen = true; this.repeatY = true; this.repeatX = true; this.scrollY = 0; this.scrollX = 0; flixel_FlxStrip.call(this); this.repeat = true; this.indices.set(0,0); this.indices.set(1,1); this.indices.set(2,2); this.indices.set(3,2); this.indices.set(4,3); this.indices.set(5,0); this.uvtData.set(0,0); this.uvtData.set(1,0); this.uvtData.set(2,1); this.uvtData.set(3,0); this.uvtData.set(4,1); this.uvtData.set(5,1); this.uvtData.set(6,0); this.uvtData.set(7,1); this.vertices.set(0,0); this.vertices.set(1,0); this.vertices.set(2,Width); this.vertices.set(3,0); this.vertices.set(4,Width); this.vertices.set(5,Height); this.vertices.set(6,0); this.vertices.set(7,Height); this.set_width(Width); this.set_height(Height); this.set_repeatX(RepeatX); this.set_repeatY(RepeatY); if(Graphic != null) { this.loadGraphic(Graphic); } }; $hxClasses["flixel.addons.display.FlxTiledSprite"] = flixel_addons_display_FlxTiledSprite; flixel_addons_display_FlxTiledSprite.__name__ = "flixel.addons.display.FlxTiledSprite"; flixel_addons_display_FlxTiledSprite.__super__ = flixel_FlxStrip; flixel_addons_display_FlxTiledSprite.prototype = $extend(flixel_FlxStrip.prototype,{ scrollX: null ,scrollY: null ,repeatX: null ,repeatY: null ,renderSprite: null ,regen: null ,graphicVisible: null ,destroy: function() { this.renderSprite = flixel_util_FlxDestroyUtil.destroy(this.renderSprite); flixel_FlxStrip.prototype.destroy.call(this); } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } this.set_graphic(flixel_FlxG.bitmap.add(Graphic)); return this; } ,loadFrame: function(Frame) { this.set_graphic(flixel_graphics_FlxGraphic.fromFrame(Frame)); return this; } ,set_clipRect: function(Value) { if(Value != this.clipRect) { this.regen = true; } return flixel_FlxStrip.prototype.set_clipRect.call(this,Value); } ,set_graphic: function(Value) { if(this.graphic != Value) { this.regen = true; } return flixel_FlxStrip.prototype.set_graphic.call(this,Value); } ,regenGraphic: function() { if(!this.regen || this.graphic == null) { return; } if(flixel_FlxG.renderBlit) { this.updateRenderSprite(); } else { this.updateVerticesData(); } this.regen = false; } ,draw: function() { if(this.regen) { this.regenGraphic(); } if(!this.graphicVisible) { return; } if(flixel_FlxG.renderBlit) { this.renderSprite.set_x(this.x); this.renderSprite.set_y(this.y); var this1 = this.renderSprite.scrollFactor; var x = this.scrollFactor.x; var y = this.scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.renderSprite._cameras = this._cameras; this.renderSprite.draw(); } else { flixel_FlxStrip.prototype.draw.call(this); } } ,updateRenderSprite: function() { this.graphicVisible = true; if(this.renderSprite == null) { this.renderSprite = new flixel_FlxSprite(); } var rectX = this.repeatX ? 0 : this.scrollX; var rectWidth = this.repeatX ? this.get_width() : this.graphic.bitmap.width; if(!this.repeatX && (rectX > this.get_width() || rectX + rectWidth < 0)) { this.graphicVisible = false; return; } var rectY = this.repeatY ? 0 : this.scrollY; var rectHeight = this.repeatY ? this.get_height() : this.graphic.bitmap.height; if(!this.repeatY && (rectY > this.get_height() || rectY + rectHeight < 0)) { this.graphicVisible = false; return; } if(this.renderSprite.get_width() != this.get_width() || this.renderSprite.get_height() != this.get_height()) { this.renderSprite.makeGraphic(this.get_width() | 0,this.get_height() | 0,0,true); } else { this._flashRect2.setTo(0,0,this.get_width(),this.get_height()); this.renderSprite.get_pixels().fillRect(this._flashRect2,0); } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(this.scrollX != 0 || this.scrollY != 0) { this._matrix.identity(); this._matrix.tx = Math.round(this.scrollX); this._matrix.ty = Math.round(this.scrollY); flixel_util_FlxSpriteUtil.flashGfx.beginBitmapFill(this.graphic.bitmap,this._matrix); } else { flixel_util_FlxSpriteUtil.flashGfx.beginBitmapFill(this.graphic.bitmap); } flixel_util_FlxSpriteUtil.flashGfx.drawRect(rectX,rectY,rectWidth,rectHeight); this.renderSprite.get_pixels().draw(flixel_util_FlxSpriteUtil.flashGfxSprite,null,this.colorTransform); flixel_util_FlxSpriteUtil.flashGfx.clear(); this.renderSprite.dirty = true; } ,updateVerticesData: function() { if(this.graphic == null) { return; } var frame = this.graphic.get_imageFrame().get_frame(); this.graphicVisible = true; var rectX = this.repeatX ? 0 : this.scrollX; var Max = this.get_width(); var lowerBound = rectX < 0 ? 0 : rectX; rectX = Max != null && lowerBound > Max ? Max : lowerBound; if(this.clipRect != null) { rectX += this.clipRect.x; } var rectWidth = this.repeatX ? rectX + this.get_width() : this.scrollX + frame.sourceSize.x; if(this.clipRect != null) { var Min = this.clipRect.x; var Max = this.clipRect.x + this.clipRect.width; var lowerBound = Min != null && rectWidth < Min ? Min : rectWidth; rectWidth = Max != null && lowerBound > Max ? Max : lowerBound; } var rectUX = (rectX - this.scrollX) / frame.sourceSize.x; var rectVX = rectUX + (rectWidth - rectX) / frame.sourceSize.x; this.vertices.set(0,rectX); this.vertices.set(2,rectWidth); this.vertices.set(4,rectWidth); this.vertices.set(6,rectX); this.uvtData.set(0,rectUX); this.uvtData.set(2,rectVX); this.uvtData.set(4,rectVX); this.uvtData.set(6,rectUX); var rectY = this.repeatY ? 0 : this.scrollY; var Max = this.get_height(); var lowerBound = rectY < 0 ? 0 : rectY; rectY = Max != null && lowerBound > Max ? Max : lowerBound; if(this.clipRect != null) { rectY += this.clipRect.y; } var rectHeight = this.repeatY ? rectY + this.get_height() : this.scrollY + frame.sourceSize.y; if(this.clipRect != null) { var Min = this.clipRect.y; var Max = this.clipRect.y + this.clipRect.height; var lowerBound = Min != null && rectHeight < Min ? Min : rectHeight; rectHeight = Max != null && lowerBound > Max ? Max : lowerBound; } var rectUY = (rectY - this.scrollY) / frame.sourceSize.y; var rectVY = rectUY + (rectHeight - rectY) / frame.sourceSize.y; this.vertices.set(1,rectY); this.vertices.set(3,rectY); this.vertices.set(5,rectHeight); this.vertices.set(7,rectHeight); this.uvtData.set(1,rectUY); this.uvtData.set(3,rectUY); this.uvtData.set(5,rectVY); this.uvtData.set(7,rectVY); } ,set_width: function(Width) { if(Width <= 0) { return Width; } if(Width != this.get_width()) { this.regen = true; } return flixel_FlxStrip.prototype.set_width.call(this,Width); } ,set_height: function(Height) { if(Height <= 0) { return Height; } if(Height != this.get_height()) { this.regen = true; } return flixel_FlxStrip.prototype.set_height.call(this,Height); } ,set_scrollX: function(Value) { if(Value != this.scrollX) { this.regen = true; } return this.scrollX = Value; } ,set_scrollY: function(Value) { if(Value != this.scrollY) { this.regen = true; } return this.scrollY = Value; } ,set_repeatX: function(Value) { if(Value != this.repeatX) { this.regen = true; } return this.repeatX = Value; } ,set_repeatY: function(Value) { if(Value != this.repeatY) { this.regen = true; } return this.repeatY = Value; } ,__class__: flixel_addons_display_FlxTiledSprite ,__properties__: $extend(flixel_FlxStrip.prototype.__properties__,{set_repeatY:"set_repeatY",set_repeatX:"set_repeatX",set_scrollY:"set_scrollY",set_scrollX:"set_scrollX"}) }); var flixel_addons_display_FlxZoomCamera = function(X,Y,Width,Height,Zoom) { if(Zoom == null) { Zoom = 0; } this.zoomMargin = 0.25; this.zoomSpeed = 25; flixel_FlxCamera.call(this,X,Y,Width,Height,flixel_FlxCamera.defaultZoom); this.targetZoom = Zoom; }; $hxClasses["flixel.addons.display.FlxZoomCamera"] = flixel_addons_display_FlxZoomCamera; flixel_addons_display_FlxZoomCamera.__name__ = "flixel.addons.display.FlxZoomCamera"; flixel_addons_display_FlxZoomCamera.__super__ = flixel_FlxCamera; flixel_addons_display_FlxZoomCamera.prototype = $extend(flixel_FlxCamera.prototype,{ targetZoom: null ,zoomSpeed: null ,zoomMargin: null ,update: function(elapsed) { flixel_FlxCamera.prototype.update.call(this,elapsed); this.set_zoom(this.zoom + (this.targetZoom - this.zoom) / 2 * elapsed * this.zoomSpeed); if(this.target != null && this.zoom != 1) { this.alignCamera(); } else { this.set_x(0); this.set_y(0); } } ,alignCamera: function() { var targetScreenX = this.target.x - this.scroll.x; var targetScreenY = this.target.y - this.scroll.y; var ratioMinX = targetScreenX / (this.width / 2) - 1 - this.zoomMargin; var ratioMinY = targetScreenY / (this.height / 2) - 1 - this.zoomMargin; var ratioMaxX = (-this.width + targetScreenX) / (this.width / 2) + 1 + this.zoomMargin; var ratioMaxY = (-this.height + targetScreenY) / (this.height / 2) + 1 + this.zoomMargin; var lowerBound = ratioMinX < -1 ? -1 : ratioMinX; var lowerBound1 = ratioMaxX < 0 ? 0 : ratioMaxX; var offsetX = (lowerBound > 0 ? 0 : lowerBound) + (lowerBound1 > 1 ? 1 : lowerBound1); var lowerBound = ratioMinY < -1 ? -1 : ratioMinY; var lowerBound1 = ratioMaxY < 0 ? 0 : ratioMaxY; var offsetY = (lowerBound > 0 ? 0 : lowerBound) + (lowerBound1 > 1 ? 1 : lowerBound1); this.set_x(-(this.width / 2) * offsetX * (this.zoom - flixel_FlxCamera.defaultZoom)); this.set_y(-(this.height / 2) * offsetY * (this.zoom - flixel_FlxCamera.defaultZoom)); } ,__class__: flixel_addons_display_FlxZoomCamera }); var flixel_addons_display_shapes_FlxShape = function(X,Y,CanvasWidth,CanvasHeight,LineStyle_,FillColor,TrueWidth,TrueHeight) { if(TrueHeight == null) { TrueHeight = 0; } if(TrueWidth == null) { TrueWidth = 0; } this.shapeDirty = false; this.shape_id = flixel_addons_display_shapes_FlxShapeType.UNKNOWN; flixel_FlxSprite.call(this,X,Y); this.lineStyle = LineStyle_; this.shapeDirty = true; this.fillColor = FillColor; this.shapeDirty = true; if(CanvasWidth == 0 && TrueWidth != 0) { CanvasWidth = TrueWidth + this.get_strokeBuffer(); } if(CanvasHeight == 0 && TrueHeight != 0) { CanvasHeight = TrueHeight + this.get_strokeBuffer(); } if(CanvasWidth < 1) { CanvasWidth = 1; } if(CanvasHeight < 1) { CanvasHeight = 1; } this.shapeWidth = TrueWidth; this.shapeDirty = true; this.shapeHeight = TrueHeight; this.shapeDirty = true; this.set_width(CanvasWidth); this.set_height(CanvasHeight); this.makeGraphic(this.get_width() | 0,this.get_height() | 0,0,true); this._drawStyle = { matrix : null, colorTransform : null, blendMode : 10, clipRect : null, smoothing : true}; if(this.shapeWidth != 0 && this.shapeHeight != 0) { if(this.shapeWidth < CanvasWidth && this.shapeHeight < CanvasHeight) { this.fixBoundaries(this.shapeWidth,this.shapeHeight); } } this.shapeDirty = true; }; $hxClasses["flixel.addons.display.shapes.FlxShape"] = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShape.__name__ = "flixel.addons.display.shapes.FlxShape"; flixel_addons_display_shapes_FlxShape.__super__ = flixel_FlxSprite; flixel_addons_display_shapes_FlxShape.prototype = $extend(flixel_FlxSprite.prototype,{ lineStyle: null ,fillColor: null ,shapeWidth: null ,shapeHeight: null ,shape_id: null ,shapeDirty: null ,destroy: function() { this.lineStyle = null; this.shapeDirty = true; flixel_FlxSprite.prototype.destroy.call(this); } ,drawSpecificShape: function(matrix) { } ,redrawShape: function() { var diffX = (this.shapeWidth | 0) - this.get_pixels().width; var diffY = (this.shapeHeight | 0) - this.get_pixels().height; if(diffX != 0 || diffY != 0) { var trueWidth = this.shapeWidth; var trueHeight = this.shapeHeight; this.makeGraphic(this.get_width() + this.get_strokeBuffer() | 0,this.get_height() + this.get_strokeBuffer() | 0,0,true); this.fixBoundaries(trueWidth,trueHeight); } else { this.get_pixels().fillRect(this.get_pixels().rect,0); } if(this.lineStyle.thickness > 1) { var matrix = this.getStrokeOffsetMatrix(this._matrix); this.drawSpecificShape(matrix); } else { this.drawSpecificShape(); } } ,draw: function() { if(this.shapeDirty) { this.redrawShape(); this.shapeDirty = false; } flixel_FlxSprite.prototype.draw.call(this); } ,_drawStyle: null ,fixBoundaries: function(trueWidth,trueHeight) { this.set_width(trueWidth); this.set_height(trueHeight); this.offset.set_x(this.getStrokeOffsetX()); this.offset.set_y(this.getStrokeOffsetY()); this.shapeDirty = true; } ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 4; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 4; } ,get_strokeBuffer: function() { return this.lineStyle.thickness * 2.0; } ,getStrokeOffsetMatrix: function(matrix) { var buffer = this.get_strokeBuffer() / 2; matrix.identity(); matrix.translate(buffer,buffer); return matrix; } ,set_fillColor: function(fc) { this.fillColor = fc; this.shapeDirty = true; return this.fillColor; } ,set_lineStyle: function(ls) { this.lineStyle = ls; this.shapeDirty = true; return this.lineStyle; } ,set_shapeWidth: function(f) { this.shapeWidth = f; this.shapeDirty = true; return this.shapeWidth; } ,set_shapeHeight: function(f) { this.shapeHeight = f; this.shapeDirty = true; return this.shapeHeight; } ,__class__: flixel_addons_display_shapes_FlxShape ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_strokeBuffer:"get_strokeBuffer",set_shapeHeight:"set_shapeHeight",set_shapeWidth:"set_shapeWidth",set_fillColor:"set_fillColor",set_lineStyle:"set_lineStyle"}) }); var flixel_addons_display_shapes_FlxShapeArrow = function(X,Y,Start,End,ArrowSize,LineStyle_,OutlineStyle_) { this.arrowSize = ArrowSize; this.shapeDirty = true; this.outlineStyle = OutlineStyle_; this.shapeDirty = true; this.point = new flixel_math_FlxCallbackPoint($bind(this,this.onSetPoint)); this.point2 = new flixel_math_FlxCallbackPoint($bind(this,this.onSetPoint)); var this1 = this.point; var x = Start.x; var y = Start.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(Start._weak) { Start.put(); } var this1 = this.point2; var x = End.x; var y = End.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(End._weak) { End.put(); } if(Start._weak) { Start.put(); } if(End._weak) { End.put(); } var trueWidth = Math.abs(this.point.x - this.point2.x); var trueHeight = Math.abs(this.point.y - this.point2.y); flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,0,trueWidth,trueHeight); this.lineStyle = LineStyle_; this.shapeDirty = true; this.shape_id = flixel_addons_display_shapes_FlxShapeType.ARROW; }; $hxClasses["flixel.addons.display.shapes.FlxShapeArrow"] = flixel_addons_display_shapes_FlxShapeArrow; flixel_addons_display_shapes_FlxShapeArrow.__name__ = "flixel.addons.display.shapes.FlxShapeArrow"; flixel_addons_display_shapes_FlxShapeArrow.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeArrow.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ outlineStyle: null ,arrowSize: null ,point: null ,point2: null ,_matrix2: null ,_vertices: null ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 6; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 6; } ,get_strokeBuffer: function() { return this.lineStyle.thickness * 3.0; } ,getStrokeOffsetMatrix: function(matrix) { var buffer = this.get_strokeBuffer() / 3; matrix.identity(); matrix.translate(buffer,buffer); return matrix; } ,destroy: function() { this.point = null; this.point2 = null; flixel_util_FlxDestroyUtil.destroyArray(this._vertices); this._vertices = null; this._matrix2 = null; this._matrix = null; this.outlineStyle = null; this.shapeDirty = true; flixel_addons_display_shapes_FlxShape.prototype.destroy.call(this); } ,drawSpecificShape: function(matrix) { if(this._matrix2 == null) { this._matrix2 = new openfl_geom_Matrix(); } var vertices = []; var x = 0; var y = -this.arrowSize; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; vertices.push(point); var x = -this.arrowSize; var y = -this.arrowSize; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; vertices.push(point); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; vertices.push(point); var x = this.arrowSize; var y = -this.arrowSize; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; vertices.push(point); var x = 0; var y = -this.arrowSize; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; vertices.push(point); var x = this.point.x - this.point2.x; var y = this.point.y - this.point2.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var fv = point; var canvasWidth = Math.max(this.shapeWidth,this.arrowSize * 2) + this.get_strokeBuffer() | 0; var canvasHeight = Math.max(this.shapeHeight,this.arrowSize * 2) + this.get_strokeBuffer() | 0; if(this.get_pixels().width != canvasWidth || this.get_pixels().height != this.get_pixels().height) { this.makeGraphic(canvasWidth,canvasHeight,0,true); } else { this.get_pixels().fillRect(this.get_pixels().rect,0); } this._matrix2.identity(); this._matrix2.rotate(flixel_math_FlxPoint.get_radians(fv) + Math.PI / 2); this._matrix2.translate(this.lineStyle.thickness + this.point2.x,this.lineStyle.thickness + this.point2.y); var dw = (this.arrowSize * 2 - this.shapeWidth) / 2; var dh = (this.arrowSize * 2 - this.shapeHeight) / 2; if(dw < 0) { dw = 0; } if(dh < 0) { dh = 0; } this._matrix.translate(dw,dh); this._matrix2.translate(dw,dh); if(this.outlineStyle != null) { flixel_util_FlxSpriteUtil.drawLine(this,this.point.x,this.point.y,this.point2.x,this.point2.y,this.outlineStyle,{ matrix : matrix}); flixel_util_FlxSpriteUtil.drawPolygon(this,vertices,this.outlineStyle.color,this.outlineStyle,{ matrix : this._matrix2}); } flixel_util_FlxSpriteUtil.drawLine(this,this.point.x,this.point.y,this.point2.x,this.point2.y,this.lineStyle,{ matrix : matrix}); flixel_util_FlxSpriteUtil.drawPolygon(this,vertices,this.lineStyle.color,this.lineStyle,{ matrix : this._matrix2}); this.fixBoundaries(Math.abs(this.point.x - this.point2.x),Math.abs(this.point.y - this.point2.y)); } ,onSetPoint: function(p) { this.updatePoint(); } ,updatePoint: function() { this.shapeWidth = Math.abs(this.point.x - this.point2.x); this.shapeDirty = true; this.shapeHeight = Math.abs(this.point.y - this.point2.y); this.shapeDirty = true; if(this.shapeWidth <= 0) { this.shapeWidth = 1; this.shapeDirty = true; } if(this.shapeHeight <= 0) { this.shapeHeight = 1; this.shapeDirty = true; } this.shapeDirty = true; } ,set_arrowSize: function(f) { this.arrowSize = f; this.shapeDirty = true; return this.arrowSize; } ,set_outlineStyle: function(ls) { this.outlineStyle = ls; this.shapeDirty = true; return this.outlineStyle; } ,fixBoundaries: function(trueWidth,trueHeight) { var diffX = this.get_pixels().width - trueWidth; var diffY = this.get_pixels().height - trueHeight; this.set_width(trueWidth); this.set_height(trueHeight); if(this.get_width() <= 0) { this.set_width(1); --diffX; } if(this.get_height() <= 0) { this.set_height(1); --diffY; } this.offset.set_x(diffX / 2); this.offset.set_y(diffY / 2); this.shapeDirty = true; } ,__class__: flixel_addons_display_shapes_FlxShapeArrow ,__properties__: $extend(flixel_addons_display_shapes_FlxShape.prototype.__properties__,{set_arrowSize:"set_arrowSize",set_outlineStyle:"set_outlineStyle"}) }); var flixel_addons_display_shapes_FlxShapeBox = function(X,Y,W,H,LineStyle_,FillColor) { flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,FillColor,W,H); this.shape_id = flixel_addons_display_shapes_FlxShapeType.BOX; }; $hxClasses["flixel.addons.display.shapes.FlxShapeBox"] = flixel_addons_display_shapes_FlxShapeBox; flixel_addons_display_shapes_FlxShapeBox.__name__ = "flixel.addons.display.shapes.FlxShapeBox"; flixel_addons_display_shapes_FlxShapeBox.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeBox.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ update: function(elapsed) { flixel_addons_display_shapes_FlxShape.prototype.update.call(this,elapsed); } ,drawSpecificShape: function(matrix) { flixel_util_FlxSpriteUtil.drawRect(this,this.lineStyle.thickness / 2,this.lineStyle.thickness / 2,this.shapeWidth,this.shapeHeight,this.fillColor,this.lineStyle); } ,__class__: flixel_addons_display_shapes_FlxShapeBox }); var flixel_addons_display_shapes_FlxShapeCircle = function(X,Y,Radius,LineStyle_,FillColor) { flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,FillColor,Radius * 2,Radius * 2); this.radius = Radius; this.shapeWidth = Radius * 2; this.shapeDirty = true; this.shapeHeight = Radius * 2; this.shapeDirty = true; this.shapeDirty = true; this.shape_id = flixel_addons_display_shapes_FlxShapeType.CIRCLE; }; $hxClasses["flixel.addons.display.shapes.FlxShapeCircle"] = flixel_addons_display_shapes_FlxShapeCircle; flixel_addons_display_shapes_FlxShapeCircle.__name__ = "flixel.addons.display.shapes.FlxShapeCircle"; flixel_addons_display_shapes_FlxShapeCircle.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeCircle.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ radius: null ,drawSpecificShape: function(matrix) { flixel_util_FlxSpriteUtil.drawCircle(this,this.radius,this.radius,this.radius,this.fillColor,this.lineStyle,{ matrix : matrix}); } ,set_radius: function(r) { this.radius = r; this.shapeWidth = r * 2; this.shapeDirty = true; this.shapeHeight = r * 2; this.shapeDirty = true; this.shapeDirty = true; return this.radius; } ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 2; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 2; } ,get_strokeBuffer: function() { return this.lineStyle.thickness; } ,__class__: flixel_addons_display_shapes_FlxShapeCircle ,__properties__: $extend(flixel_addons_display_shapes_FlxShape.prototype.__properties__,{set_radius:"set_radius"}) }); var flixel_addons_display_shapes_FlxShapeCross = function(X,Y,HLength,HThickness,VLength,VThickness,IntersectionH,IntersectionV,LineStyle_,FillColor) { flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,FillColor,HLength,VLength); this.horizontalLength = HLength; this.shapeWidth = Math.max(this.horizontalLength,this.verticalThickness); this.shapeDirty = true; this.shapeDirty = true; this.horizontalThickness = HThickness; this.shapeHeight = Math.max(this.verticalLength,this.horizontalThickness); this.shapeDirty = true; this.shapeDirty = true; this.verticalLength = VLength; this.shapeHeight = Math.max(this.verticalLength,this.horizontalThickness); this.shapeDirty = true; this.shapeDirty = true; this.verticalThickness = VThickness; this.shapeWidth = Math.max(this.horizontalLength,this.verticalThickness); this.shapeDirty = true; this.shapeDirty = true; this.set_intersectionH(IntersectionH); this.set_intersectionV(IntersectionV); this.shape_id = flixel_addons_display_shapes_FlxShapeType.CROSS; }; $hxClasses["flixel.addons.display.shapes.FlxShapeCross"] = flixel_addons_display_shapes_FlxShapeCross; flixel_addons_display_shapes_FlxShapeCross.__name__ = "flixel.addons.display.shapes.FlxShapeCross"; flixel_addons_display_shapes_FlxShapeCross.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeCross.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ horizontalLength: null ,horizontalThickness: null ,verticalLength: null ,verticalThickness: null ,intersectionV: null ,intersectionH: null ,vertices: null ,destroy: function() { flixel_addons_display_shapes_FlxShape.prototype.destroy.call(this); if(this.vertices != null) { while(this.vertices.length > 0) this.vertices.pop(); } this.vertices = null; } ,drawSpecificShape: function(matrix) { if(this.vertices == null) { this.vertices = []; var i = 13; while(i > 0) { var tmp = this.vertices; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; tmp.push(point); --i; } } this._flashRect.x = (this.horizontalLength - this.verticalThickness) * this.intersectionH; this._flashRect.y = 0; this._flashRect.width = this.verticalThickness; this._flashRect.height = this.verticalLength; this._flashRect2.x = 0; this._flashRect2.y = (this.verticalLength - this.horizontalThickness) * this.intersectionV; this._flashRect2.width = this.horizontalLength; this._flashRect2.height = this.horizontalThickness; this.vertices[0].set_y(this._flashRect.get_top()); this.vertices[0].set_x(this._flashRect.get_left()); this.vertices[1].set_y(this._flashRect.get_top()); this.vertices[1].set_x(this._flashRect.get_right()); this.vertices[6].set_y(this._flashRect.get_bottom()); this.vertices[6].set_x(this._flashRect.get_right()); this.vertices[7].set_y(this._flashRect.get_bottom()); this.vertices[7].set_x(this._flashRect.get_left()); this.vertices[3].set_y(this._flashRect2.get_top()); this.vertices[3].set_x(this._flashRect2.get_right()); this.vertices[4].set_y(this._flashRect2.get_bottom()); this.vertices[4].set_x(this._flashRect2.get_right()); this.vertices[9].set_y(this._flashRect2.get_bottom()); this.vertices[9].set_x(this._flashRect2.get_left()); this.vertices[10].set_y(this._flashRect2.get_top()); this.vertices[10].set_x(this._flashRect2.get_left()); this.vertices[2].set_x(this.vertices[1].x); this.vertices[2].set_y(this.vertices[3].y); this.vertices[5].set_x(this.vertices[6].x); this.vertices[5].set_y(this.vertices[4].y); this.vertices[8].set_x(this.vertices[7].x); this.vertices[8].set_y(this.vertices[9].y); this.vertices[11].set_x(this.vertices[0].x); this.vertices[11].set_y(this.vertices[10].y); this.vertices[12].set_x(this.vertices[0].x); this.vertices[12].set_y(this.vertices[0].y); this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect2.x = 0; this._flashRect2.y = 0; this.get_pixels().fillRect(this.get_pixels().rect,0); this.set_pixels(this.get_pixels()); this._matrix.identity(); this._matrix.translate(this.lineStyle.thickness / 2,this.lineStyle.thickness / 2); flixel_util_FlxSpriteUtil.drawPolygon(this,this.vertices,this.fillColor,this.lineStyle,{ matrix : this._matrix}); this.fixBoundaries(this.horizontalLength,this.verticalLength); } ,set_horizontalLength: function(f) { this.horizontalLength = f; this.shapeWidth = Math.max(this.horizontalLength,this.verticalThickness); this.shapeDirty = true; this.shapeDirty = true; return this.horizontalLength; } ,set_horizontalThickness: function(f) { this.horizontalThickness = f; this.shapeHeight = Math.max(this.verticalLength,this.horizontalThickness); this.shapeDirty = true; this.shapeDirty = true; return this.horizontalThickness; } ,set_verticalLength: function(f) { this.verticalLength = f; this.shapeHeight = Math.max(this.verticalLength,this.horizontalThickness); this.shapeDirty = true; this.shapeDirty = true; return this.verticalLength; } ,set_verticalThickness: function(f) { this.verticalThickness = f; this.shapeWidth = Math.max(this.horizontalLength,this.verticalThickness); this.shapeDirty = true; this.shapeDirty = true; return this.verticalThickness; } ,set_intersectionV: function(f) { if(f > 1) { f = 1; } if(f < 0) { f = 0; } this.intersectionV = f; this.shapeDirty = true; return this.intersectionV; } ,set_intersectionH: function(f) { if(f > 1) { f = 1; } if(f < 0) { f = 0; } this.intersectionH = f; this.shapeDirty = true; return this.intersectionH; } ,__class__: flixel_addons_display_shapes_FlxShapeCross ,__properties__: $extend(flixel_addons_display_shapes_FlxShape.prototype.__properties__,{set_intersectionH:"set_intersectionH",set_intersectionV:"set_intersectionV",set_verticalThickness:"set_verticalThickness",set_verticalLength:"set_verticalLength",set_horizontalThickness:"set_horizontalThickness",set_horizontalLength:"set_horizontalLength"}) }); var flixel_addons_display_shapes_FlxShapeDonut = function(X,Y,RadiusOut,RadiusIn,LineStyle_,FillColor) { flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,FillColor,RadiusOut * 2,RadiusOut * 2); this.radius_out = RadiusOut; this.shapeWidth = this.radius_out * 2; this.shapeDirty = true; this.shapeHeight = this.radius_out * 2; this.shapeDirty = true; this.shapeDirty = true; this.radius_in = RadiusIn; this.shapeDirty = true; this.shape_id = flixel_addons_display_shapes_FlxShapeType.DONUT; }; $hxClasses["flixel.addons.display.shapes.FlxShapeDonut"] = flixel_addons_display_shapes_FlxShapeDonut; flixel_addons_display_shapes_FlxShapeDonut.__name__ = "flixel.addons.display.shapes.FlxShapeDonut"; flixel_addons_display_shapes_FlxShapeDonut.helperSprite = null; flixel_addons_display_shapes_FlxShapeDonut.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeDonut.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ radius_out: null ,radius_in: null ,drawSpecificShape: function(matrix) { var cx = Math.ceil(this.get_width() / 2); var cy = Math.ceil(this.get_height() / 2); flixel_util_FlxSpriteUtil.drawCircle(this,cx,cy,this.radius_out,this.fillColor,this.lineStyle,{ matrix : matrix}); if(this.radius_in > 0) { flixel_util_FlxSpriteUtil.drawCircle(this,cx,cy,this.radius_in,-65536,null,{ matrix : matrix, blendMode : 4, smoothing : true}); flixel_util_FlxSpriteUtil.drawCircle(this,cx,cy,this.radius_in,0,this.lineStyle,{ matrix : matrix}); } } ,set_radius_out: function(r) { this.radius_out = r; this.shapeWidth = this.radius_out * 2; this.shapeDirty = true; this.shapeHeight = this.radius_out * 2; this.shapeDirty = true; this.shapeDirty = true; return this.radius_out; } ,set_radius_in: function(r) { this.radius_in = r; this.shapeDirty = true; return this.radius_in; } ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 2; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 2; } ,get_strokeBuffer: function() { return this.lineStyle.thickness; } ,__class__: flixel_addons_display_shapes_FlxShapeDonut ,__properties__: $extend(flixel_addons_display_shapes_FlxShape.prototype.__properties__,{set_radius_in:"set_radius_in",set_radius_out:"set_radius_out"}) }); var flixel_addons_display_shapes_FlxShapeDoubleCircle = function(X,Y,RadiusOut,RadiusIn,LineStyle_,FillColor) { flixel_addons_display_shapes_FlxShapeDonut.call(this,X,Y,RadiusOut,RadiusIn,LineStyle_,FillColor); this.shape_id = flixel_addons_display_shapes_FlxShapeType.DOUBLE_CIRCLE; }; $hxClasses["flixel.addons.display.shapes.FlxShapeDoubleCircle"] = flixel_addons_display_shapes_FlxShapeDoubleCircle; flixel_addons_display_shapes_FlxShapeDoubleCircle.__name__ = "flixel.addons.display.shapes.FlxShapeDoubleCircle"; flixel_addons_display_shapes_FlxShapeDoubleCircle.__super__ = flixel_addons_display_shapes_FlxShapeDonut; flixel_addons_display_shapes_FlxShapeDoubleCircle.prototype = $extend(flixel_addons_display_shapes_FlxShapeDonut.prototype,{ drawSpecificShape: function(matrix) { var cx = Math.ceil(this.get_width() / 2); var cy = Math.ceil(this.get_height() / 2); flixel_util_FlxSpriteUtil.drawCircle(this,cx,cy,this.radius_out,this.fillColor,this.lineStyle,{ matrix : matrix}); flixel_util_FlxSpriteUtil.drawCircle(this,cx,cy,this.radius_in,0,this.lineStyle,{ matrix : matrix}); } ,__class__: flixel_addons_display_shapes_FlxShapeDoubleCircle }); var flixel_addons_display_shapes_FlxShapeGrid = function(X,Y,CellWidth,CellHeight,CellsWide,CellsTall,LineStyle_,FillColor) { var w = CellWidth * CellsWide; var h = CellHeight * CellsTall; this.cellsWide = CellsWide; this.shapeDirty = true; this.cellsTall = CellsTall; this.shapeDirty = true; this.cellWidth = CellWidth; this.shapeDirty = true; this.cellHeight = CellHeight; this.shapeDirty = true; flixel_addons_display_shapes_FlxShapeBox.call(this,X,Y,w,h,LineStyle_,FillColor); this.shape_id = flixel_addons_display_shapes_FlxShapeType.GRID; }; $hxClasses["flixel.addons.display.shapes.FlxShapeGrid"] = flixel_addons_display_shapes_FlxShapeGrid; flixel_addons_display_shapes_FlxShapeGrid.__name__ = "flixel.addons.display.shapes.FlxShapeGrid"; flixel_addons_display_shapes_FlxShapeGrid.__super__ = flixel_addons_display_shapes_FlxShapeBox; flixel_addons_display_shapes_FlxShapeGrid.prototype = $extend(flixel_addons_display_shapes_FlxShapeBox.prototype,{ cellWidth: null ,cellHeight: null ,cellsWide: null ,cellsTall: null ,drawSpecificShape: function(matrix) { var ox = this.lineStyle.thickness / 2; var oy = this.lineStyle.thickness / 2; flixel_util_FlxSpriteUtil.drawRect(this,ox,oy,this.shapeWidth,this.shapeHeight,this.fillColor); var _g = 0; var _g1 = this.cellsWide + 1; while(_g < _g1) { var iw = _g++; flixel_util_FlxSpriteUtil.drawLine(this,ox + this.cellWidth * iw,oy,ox + this.cellWidth * iw,oy + this.shapeHeight,this.lineStyle); } var _g = 0; var _g1 = this.cellsTall + 1; while(_g < _g1) { var ih = _g++; flixel_util_FlxSpriteUtil.drawLine(this,ox,oy + this.cellHeight * ih,ox + this.shapeWidth,oy + this.cellHeight * ih,this.lineStyle); } } ,set_cellWidth: function(f) { this.cellWidth = f; this.shapeDirty = true; return this.cellWidth; } ,set_cellHeight: function(f) { this.cellHeight = f; this.shapeDirty = true; return this.cellHeight; } ,set_cellsWide: function(i) { this.cellsWide = i; this.shapeDirty = true; return this.cellsWide; } ,set_cellsTall: function(i) { this.cellsTall = i; this.shapeDirty = true; return this.cellsTall; } ,__class__: flixel_addons_display_shapes_FlxShapeGrid ,__properties__: $extend(flixel_addons_display_shapes_FlxShapeBox.prototype.__properties__,{set_cellsTall:"set_cellsTall",set_cellsWide:"set_cellsWide",set_cellHeight:"set_cellHeight",set_cellWidth:"set_cellWidth"}) }); var flixel_addons_display_shapes_FlxShapeLine = function(X,Y,a,b,LineStyle_) { var trueWidth = Math.abs(a.x - b.x); var trueHeight = Math.abs(a.y - b.y); flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,0,trueWidth,trueHeight); this.point = new flixel_math_FlxCallbackPoint($bind(this,this.onSetPoint)); this.point2 = new flixel_math_FlxCallbackPoint($bind(this,this.onSetPoint)); var this1 = this.point; var x = a.x; var y = a.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(a._weak) { a.put(); } var this1 = this.point2; var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(b._weak) { b.put(); } if(a._weak) { a.put(); } if(b._weak) { b.put(); } this.shape_id = flixel_addons_display_shapes_FlxShapeType.LINE; }; $hxClasses["flixel.addons.display.shapes.FlxShapeLine"] = flixel_addons_display_shapes_FlxShapeLine; flixel_addons_display_shapes_FlxShapeLine.__name__ = "flixel.addons.display.shapes.FlxShapeLine"; flixel_addons_display_shapes_FlxShapeLine.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeLine.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ point: null ,point2: null ,destroy: function() { this.point = null; this.point2 = null; flixel_addons_display_shapes_FlxShape.prototype.destroy.call(this); } ,drawSpecificShape: function(matrix) { flixel_util_FlxSpriteUtil.drawLine(this,this.point.x,this.point.y,this.point2.x,this.point2.y,this.lineStyle,{ matrix : matrix}); } ,onSetPoint: function(p) { this.updatePoint(); } ,updatePoint: function() { this.shapeWidth = Math.abs(this.point.x - this.point2.x); this.shapeDirty = true; this.shapeHeight = Math.abs(this.point.y - this.point2.y); this.shapeDirty = true; if(this.shapeWidth <= 0) { this.shapeWidth = 1; this.shapeDirty = true; } if(this.shapeHeight <= 0) { this.shapeHeight = 1; this.shapeDirty = true; } this.shapeDirty = true; } ,get_strokeBuffer: function() { return this.lineStyle.thickness * 2.0; } ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 2; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 2; } ,__class__: flixel_addons_display_shapes_FlxShapeLine }); var flixel_addons_display_shapes_FlxShapeLightning = function(X,Y,A,B,Style,UseDefaults) { if(UseDefaults == null) { UseDefaults = true; } this.expandDown = 0; this.expandUp = 0; this.expandRight = 0; this.expandLeft = 0; this.lightningStyle = Style; this.shapeDirty = true; var x = A.x - B.x; var y = A.y - B.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var v = new flixel_math_FlxBasePoint(x,y); this.magnitude = Math.sqrt(v.x * v.x + v.y * v.y); if(UseDefaults) { if(this.lightningStyle.displacement == null) { this.lightningStyle.displacement = 25.0; } if(this.lightningStyle.detail == null) { this.lightningStyle.detail = 1.0; } if(this.lightningStyle.halo_colors == null) { this.lightningStyle.halo_colors = [-7820562,-11184692,-13417336]; } } this.list_segs = []; this.list_branch = []; flixel_addons_display_shapes_FlxShapeLine.call(this,X,Y,A,B,{ thickness : this.lightningStyle.thickness, color : this.lightningStyle.color}); this.calculate(A,B,this.lightningStyle.displacement,0); this.shape_id = flixel_addons_display_shapes_FlxShapeType.LIGHTNING; }; $hxClasses["flixel.addons.display.shapes.FlxShapeLightning"] = flixel_addons_display_shapes_FlxShapeLightning; flixel_addons_display_shapes_FlxShapeLightning.__name__ = "flixel.addons.display.shapes.FlxShapeLightning"; flixel_addons_display_shapes_FlxShapeLightning.__super__ = flixel_addons_display_shapes_FlxShapeLine; flixel_addons_display_shapes_FlxShapeLightning.prototype = $extend(flixel_addons_display_shapes_FlxShapeLine.prototype,{ lightningStyle: null ,detail: null ,magnitude: null ,list_segs: null ,list_branch: null ,addSegment: function(Ax,Ay,Bx,By) { this.list_segs.push(new flixel_addons_display_shapes_LineSegment(Ax,Ay,Bx,By)); } ,calculate: function(A,B,Displacement,Iteration) { if(Displacement < this.lightningStyle.detail) { this.list_segs.push(new flixel_addons_display_shapes_LineSegment(A.x,A.y,B.x,B.y)); } else { var mid = new flixel_math_FlxBasePoint(0,0); mid.set_x((A.x + B.x) / 2); mid.set_y((A.y + B.y) / 2); var dispX = flixel_FlxG.random.float(-0.5,0.5); var dispY = flixel_FlxG.random.float(-0.5,0.5); mid.set_x(mid.x + dispX * Displacement); mid.set_y(mid.y + dispY * Displacement); this.calculate(A,mid,Displacement / 2,Iteration); this.calculate(B,mid,Displacement / 2,Iteration); } this.shapeDirty = true; } ,set_lightningStyle: function(Style) { this.lightningStyle = Style; this.shapeDirty = true; return this.lightningStyle; } ,copyLineStyle: function(ls) { var ls2 = { thickness : ls.thickness, color : ls.color, pixelHinting : ls.pixelHinting, scaleMode : ls.scaleMode, capsStyle : ls.capsStyle, jointStyle : ls.jointStyle, miterLimit : ls.miterLimit}; return ls2; } ,drawSpecificShape: function(matrix) { var up = Infinity; var left = Infinity; var down = 0; var right = 0; var _g = 0; var _g1 = this.list_segs; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(l.ax < left) { left = l.ax; } if(l.bx < left) { left = l.bx; } if(l.ay < up) { up = l.ay; } if(l.by < up) { up = l.by; } if(l.ax > right) { right = l.ax; } if(l.bx > right) { right = l.bx; } if(l.ay > down) { down = l.ay; } if(l.by > down) { down = l.by; } } if(left < 0) { this.expandLeft = left * -1; } if(right > this.shapeWidth) { this.expandRight = this.shapeWidth - right; } if(up < 0) { this.expandUp = up * -1; } if(down > this.shapeHeight) { this.expandDown = this.shapeHeight - down; } var newWidth = right - left; var newHeight = down - up; var canvasWidth = newWidth + this.get_strokeBuffer() | 0; var canvasHeight = newHeight + this.get_strokeBuffer() | 0; this.offset.set_x(0); this.offset.set_y(0); if(canvasWidth != this.get_pixels().width || canvasHeight != this.get_pixels().height) { this.makeGraphic(canvasWidth,canvasHeight,0,true); } else { this.get_pixels().fillRect(this.get_pixels().rect,0); } this._matrix.identity(); var dw = 0; var dh = 0; dw = this.get_strokeBuffer() / 2 | 0; dh = this.get_strokeBuffer() / 2 | 0; if(left < 0) { dw = -left + this.get_strokeBuffer() / 2 | 0; } if(up < 0) { dh = -up + this.get_strokeBuffer() / 2 | 0; } var _g = 0; var _g1 = this.list_segs; while(_g < _g1.length) { var l = _g1[_g]; ++_g; flixel_util_FlxSpriteUtil.drawLine(this,l.ax + dw,l.ay + dh,l.bx + dw,l.by + dh,this.lineStyle); } this.redrawFilter(); this.shapeDirty = true; } ,redrawFilter: function() { var skip = false; if(this.lightningStyle.halo_colors == null) { return; } if(!skip) { var i = 0; var a = []; var _g = 0; var _g1 = this.lightningStyle.halo_colors; while(_g < _g1.length) { var halo_color = _g1[_g]; ++_g; a.push(new openfl_filters_GlowFilter(halo_color,1.0 - 0.15 * i,3,3)); ++i; } var _g = 0; while(_g < a.length) { var gf = a[_g]; ++_g; var pixels2 = this.get_pixels().clone(); pixels2.applyFilter(this.get_pixels(),this.get_pixels().rect,this._flashPointZero,gf); var w = this.get_width(); var h = this.get_height(); var ox = this.offset.x; var oy = this.offset.y; this.set_pixels(pixels2); this.set_width(w); this.set_height(h); this.offset.set_x(ox); this.offset.set_y(oy); } var trueWidth = this.shapeWidth; var trueHeight = this.shapeHeight; this.set_width(this.shapeWidth); this.set_height(this.shapeHeight); this.offset.set_x(this.expandLeft + this.getStrokeOffsetX()); this.offset.set_y(this.expandUp + this.getStrokeOffsetY()); this.updateMotion(0); } } ,update: function(elapsed) { flixel_addons_display_shapes_FlxShapeLine.prototype.update.call(this,elapsed); } ,fixBoundaries: function(trueWidth,trueHeight) { this.set_width(this.shapeWidth); this.set_height(this.shapeHeight); this.offset.set_x(this.expandLeft + this.getStrokeOffsetX()); this.offset.set_y(this.expandUp + this.getStrokeOffsetY()); this.updateMotion(0); } ,get_strokeBuffer: function() { return this.lightningStyle.thickness * 2; } ,expandLeft: null ,expandRight: null ,expandUp: null ,expandDown: null ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 2; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 2; } ,__class__: flixel_addons_display_shapes_FlxShapeLightning ,__properties__: $extend(flixel_addons_display_shapes_FlxShapeLine.prototype.__properties__,{set_lightningStyle:"set_lightningStyle"}) }); var flixel_addons_display_shapes_LineSegment = function(Ax,Ay,Bx,By) { this.ax = Ax; this.ay = Ay; this.bx = Bx; this.by = By; }; $hxClasses["flixel.addons.display.shapes.LineSegment"] = flixel_addons_display_shapes_LineSegment; flixel_addons_display_shapes_LineSegment.__name__ = "flixel.addons.display.shapes.LineSegment"; flixel_addons_display_shapes_LineSegment.prototype = { ax: null ,ay: null ,bx: null ,by: null ,copy: function() { return new flixel_addons_display_shapes_LineSegment(this.ax,this.ay,this.bx,this.by); } ,__class__: flixel_addons_display_shapes_LineSegment }; var flixel_addons_display_shapes_FlxShapeSquareDonut = function(X,Y,RadiusOut,RadiusIn,LineStyle_,FillColor) { flixel_addons_display_shapes_FlxShape.call(this,X,Y,0,0,LineStyle_,FillColor,RadiusOut * 2,RadiusOut * 2); this.radius_out = RadiusOut; this.shapeWidth = this.radius_out * 2; this.shapeDirty = true; this.shapeHeight = this.radius_out * 2; this.shapeDirty = true; this.shapeDirty = true; this.radius_in = RadiusIn; this.shapeDirty = true; this.shape_id = flixel_addons_display_shapes_FlxShapeType.SQUARE_DONUT; }; $hxClasses["flixel.addons.display.shapes.FlxShapeSquareDonut"] = flixel_addons_display_shapes_FlxShapeSquareDonut; flixel_addons_display_shapes_FlxShapeSquareDonut.__name__ = "flixel.addons.display.shapes.FlxShapeSquareDonut"; flixel_addons_display_shapes_FlxShapeSquareDonut.__super__ = flixel_addons_display_shapes_FlxShape; flixel_addons_display_shapes_FlxShapeSquareDonut.prototype = $extend(flixel_addons_display_shapes_FlxShape.prototype,{ radius_out: null ,radius_in: null ,drawSpecificShape: function(matrix) { flixel_util_FlxSpriteUtil.drawRect(this,0,0,this.radius_out * 2,this.radius_out * 2,this.fillColor,this.lineStyle,{ matrix : matrix}); if(this.radius_in > 0) { flixel_util_FlxSpriteUtil.drawRect(this,this.radius_out - this.radius_in,this.radius_out - this.radius_in,this.radius_in * 2,this.radius_in * 2,-65536,null,{ matrix : matrix, blendMode : 4, smoothing : true}); } flixel_util_FlxSpriteUtil.drawRect(this,this.radius_out - this.radius_in,this.radius_out - this.radius_in,this.radius_in * 2,this.radius_in * 2,0,this.lineStyle,{ matrix : matrix}); } ,set_radius_out: function(r) { this.radius_out = r; this.shapeWidth = this.radius_out * 2; this.shapeDirty = true; this.shapeHeight = this.radius_out * 2; this.shapeDirty = true; this.shapeDirty = true; return this.radius_out; } ,set_radius_in: function(r) { this.radius_in = r; this.shapeDirty = true; return this.radius_in; } ,getStrokeOffsetX: function() { return this.get_strokeBuffer() / 2; } ,getStrokeOffsetY: function() { return this.get_strokeBuffer() / 2; } ,get_strokeBuffer: function() { return this.lineStyle.thickness; } ,__class__: flixel_addons_display_shapes_FlxShapeSquareDonut ,__properties__: $extend(flixel_addons_display_shapes_FlxShape.prototype.__properties__,{set_radius_in:"set_radius_in",set_radius_out:"set_radius_out"}) }); var flixel_addons_display_shapes_FlxShapeType = $hxEnums["flixel.addons.display.shapes.FlxShapeType"] = { __ename__:"flixel.addons.display.shapes.FlxShapeType",__constructs__:null ,ARROW: {_hx_name:"ARROW",_hx_index:0,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,BOX: {_hx_name:"BOX",_hx_index:1,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,CIRCLE: {_hx_name:"CIRCLE",_hx_index:2,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,CROSS: {_hx_name:"CROSS",_hx_index:3,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,DONUT: {_hx_name:"DONUT",_hx_index:4,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,DOUBLE_CIRCLE: {_hx_name:"DOUBLE_CIRCLE",_hx_index:5,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,GRID: {_hx_name:"GRID",_hx_index:6,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,LIGHTNING: {_hx_name:"LIGHTNING",_hx_index:7,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,LINE: {_hx_name:"LINE",_hx_index:8,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,SQUARE_DONUT: {_hx_name:"SQUARE_DONUT",_hx_index:9,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:10,__enum__:"flixel.addons.display.shapes.FlxShapeType",toString:$estr} }; flixel_addons_display_shapes_FlxShapeType.__constructs__ = [flixel_addons_display_shapes_FlxShapeType.ARROW,flixel_addons_display_shapes_FlxShapeType.BOX,flixel_addons_display_shapes_FlxShapeType.CIRCLE,flixel_addons_display_shapes_FlxShapeType.CROSS,flixel_addons_display_shapes_FlxShapeType.DONUT,flixel_addons_display_shapes_FlxShapeType.DOUBLE_CIRCLE,flixel_addons_display_shapes_FlxShapeType.GRID,flixel_addons_display_shapes_FlxShapeType.LIGHTNING,flixel_addons_display_shapes_FlxShapeType.LINE,flixel_addons_display_shapes_FlxShapeType.SQUARE_DONUT,flixel_addons_display_shapes_FlxShapeType.UNKNOWN]; flixel_addons_display_shapes_FlxShapeType.__empty_constructs__ = [flixel_addons_display_shapes_FlxShapeType.ARROW,flixel_addons_display_shapes_FlxShapeType.BOX,flixel_addons_display_shapes_FlxShapeType.CIRCLE,flixel_addons_display_shapes_FlxShapeType.CROSS,flixel_addons_display_shapes_FlxShapeType.DONUT,flixel_addons_display_shapes_FlxShapeType.DOUBLE_CIRCLE,flixel_addons_display_shapes_FlxShapeType.GRID,flixel_addons_display_shapes_FlxShapeType.LIGHTNING,flixel_addons_display_shapes_FlxShapeType.LINE,flixel_addons_display_shapes_FlxShapeType.SQUARE_DONUT,flixel_addons_display_shapes_FlxShapeType.UNKNOWN]; var flixel_addons_editors_ogmo_FlxOgmo3Loader = function(projectData,levelData) { this.project = flixel_addons_editors_ogmo_FlxOgmo3Loader.parseProjectJSON(openfl_utils_Assets.getText(projectData)); this.level = flixel_addons_editors_ogmo_FlxOgmo3Loader.parseLevelJSON(openfl_utils_Assets.getText(levelData)); }; $hxClasses["flixel.addons.editors.ogmo.FlxOgmo3Loader"] = flixel_addons_editors_ogmo_FlxOgmo3Loader; flixel_addons_editors_ogmo_FlxOgmo3Loader.__name__ = "flixel.addons.editors.ogmo.FlxOgmo3Loader"; flixel_addons_editors_ogmo_FlxOgmo3Loader.parseLevelJSON = function(json) { return JSON.parse(json); }; flixel_addons_editors_ogmo_FlxOgmo3Loader.parseProjectJSON = function(json) { return JSON.parse(json); }; flixel_addons_editors_ogmo_FlxOgmo3Loader.getTileLayer = function(data,name) { var _g = 0; var _g1 = data.layers; while(_g < _g1.length) { var layer = _g1[_g]; ++_g; if(layer.name == name) { return layer; } } return null; }; flixel_addons_editors_ogmo_FlxOgmo3Loader.getGridLayer = function(data,name) { var _g = 0; var _g1 = data.layers; while(_g < _g1.length) { var layer = _g1[_g]; ++_g; if(layer.name == name) { return layer; } } return null; }; flixel_addons_editors_ogmo_FlxOgmo3Loader.getEntityLayer = function(data,name) { var _g = 0; var _g1 = data.layers; while(_g < _g1.length) { var layer = _g1[_g]; ++_g; if(layer.name == name) { return layer; } } return null; }; flixel_addons_editors_ogmo_FlxOgmo3Loader.getDecalLayer = function(data,name) { var _g = 0; var _g1 = data.layers; while(_g < _g1.length) { var layer = _g1[_g]; ++_g; if(layer.name == name) { return layer; } } return null; }; flixel_addons_editors_ogmo_FlxOgmo3Loader.getTilesetData = function(data,name) { var _g = 0; var _g1 = data.tilesets; while(_g < _g1.length) { var tileset = _g1[_g]; ++_g; if(tileset.label == name) { return tileset; } } return null; }; flixel_addons_editors_ogmo_FlxOgmo3Loader.applyFlagsToTilemapExt = function(tileFlags,tilemap) { var specialTiles = []; var _g = 0; var _g1 = tileFlags.length; while(_g < _g1) { var i = _g++; var flag = tileFlags[i]; var specialTile = new flixel_addons_tile_FlxTileSpecial(tilemap.getTileByIndex(i),false,false,0); if((flag & 4) > 0) { specialTile.flipX = true; } if((flag & 2) > 0) { specialTile.flipY = true; } if((flag & 1) > 0) { if(specialTile.flipY) { specialTile.flipY = false; specialTile.rotate = 2; } else { specialTile.flipX = !specialTile.flipX; specialTile.rotate = 1; } } specialTiles.push(specialTile); } tilemap.setSpecialTiles(specialTiles); }; flixel_addons_editors_ogmo_FlxOgmo3Loader.prototype = { project: null ,level: null ,getLevelValue: function(value) { return Reflect.field(this.level.values,value); } ,loadTilemap: function(tileGraphic,tileLayer,tilemap) { if(tileLayer == null) { tileLayer = "tiles"; } if(tilemap == null) { tilemap = new flixel_tile_FlxTilemap(); } var layer = flixel_addons_editors_ogmo_FlxOgmo3Loader.getTileLayer(this.level,tileLayer); var tileset = flixel_addons_editors_ogmo_FlxOgmo3Loader.getTilesetData(this.project,layer.tileset); switch(layer.arrayMode) { case 0: tilemap.loadMapFromArray(layer.data,layer.gridCellsX,layer.gridCellsY,tileGraphic,tileset.tileWidth,tileset.tileHeight); break; case 1: tilemap.loadMapFrom2DArray(layer.data2D,tileGraphic,tileset.tileWidth,tileset.tileHeight); break; } return tilemap; } ,loadTilemapExt: function(tileGraphic,tileLayer,tilemap) { if(tileLayer == null) { tileLayer = "tiles"; } if(tilemap == null) { tilemap = new flixel_addons_tile_FlxTilemapExt(); } var layer = flixel_addons_editors_ogmo_FlxOgmo3Loader.getTileLayer(this.level,tileLayer); var tileset = flixel_addons_editors_ogmo_FlxOgmo3Loader.getTilesetData(this.project,layer.tileset); switch(layer.arrayMode) { case 0: tilemap.loadMapFromArray(layer.data,layer.gridCellsX,layer.gridCellsY,tileGraphic,tileset.tileWidth,tileset.tileHeight); if(layer.tileFlags != null) { flixel_addons_editors_ogmo_FlxOgmo3Loader.applyFlagsToTilemapExt(layer.tileFlags,tilemap); } break; case 1: tilemap.loadMapFrom2DArray(layer.data2D,tileGraphic,tileset.tileWidth,tileset.tileHeight); if(layer.tileFlags2D != null) { flixel_addons_editors_ogmo_FlxOgmo3Loader.applyFlagsToTilemapExt(flixel_util_FlxArrayUtil.flatten2DArray_Int(layer.tileFlags2D),tilemap); } break; } return tilemap; } ,loadGridMap: function(gridLayer) { if(gridLayer == null) { gridLayer = "grid"; } var gridLayer1 = flixel_addons_editors_ogmo_FlxOgmo3Loader.getGridLayer(this.level,gridLayer); var out = new haxe_ds_StringMap(); switch(gridLayer1.arrayMode) { case 0: var _g = 0; var _g1 = gridLayer1.grid.length; while(_g < _g1) { var i = _g++; if(!Object.prototype.hasOwnProperty.call(out.h,gridLayer1.grid[i])) { out.h[gridLayer1.grid[i]] = []; } var tmp = out.h[gridLayer1.grid[i]]; var x = i % gridLayer1.gridCellsX * gridLayer1.gridCellWidth; var y = Math.floor(i / gridLayer1.gridCellsX) * gridLayer1.gridCellHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tmp.push(point); } break; case 1: var _g = 0; var _g1 = gridLayer1.grid2D.length; while(_g < _g1) { var j = _g++; var _g2 = 0; var _g3 = gridLayer1.grid2D[j].length; while(_g2 < _g3) { var i = _g2++; if(!Object.prototype.hasOwnProperty.call(out.h,gridLayer1.grid2D[j][i])) { out.h[gridLayer1.grid2D[j][i]] = []; } var tmp = out.h[gridLayer1.grid2D[j][i]]; var x = i * gridLayer1.gridCellWidth; var y = j * gridLayer1.gridCellHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tmp.push(point); } } break; } return out; } ,loadEntities: function(entityLoadCallback,entityLayer) { if(entityLayer == null) { entityLayer = "entities"; } var _g = 0; var _g1 = flixel_addons_editors_ogmo_FlxOgmo3Loader.getEntityLayer(this.level,entityLayer).entities; while(_g < _g1.length) { var entity = _g1[_g]; ++_g; entityLoadCallback(entity); } } ,loadDecals: function(decalLayer,decalsPath) { if(decalLayer == null) { decalLayer = "decals"; } if(!StringTools.endsWith(decalsPath,"/")) { decalsPath += "/"; } var g = new flixel_group_FlxTypedGroup(); var _g = 0; var _g1 = flixel_addons_editors_ogmo_FlxOgmo3Loader.getDecalLayer(this.level,decalLayer).decals; while(_g < _g1.length) { var decal = _g1[_g]; ++_g; var s = new flixel_FlxSprite(decal.x,decal.y,decalsPath + decal.texture); var this1 = s.offset; var x = s.get_width() / 2; var y = s.get_height() / 2; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(decal.scaleX != null) { s.scale.set_x(decal.scaleX); } if(decal.scaleY != null) { s.scale.set_y(decal.scaleY); } if(decal.rotation != null) { s.set_angle(this.project.anglesRadians ? decal.rotation * (180 / Math.PI) : decal.rotation); } g.add(s); } return g; } ,__class__: flixel_addons_editors_ogmo_FlxOgmo3Loader }; var flixel_addons_editors_ogmo_FlxOgmoLoader = function(LevelData) { var str = ""; if(js_Boot.__instanceof(LevelData,Class)) { str = Type.createInstance(LevelData,[]); } else if(typeof(LevelData) == "string") { str = openfl_utils_Assets.getText(LevelData); } this._xml = haxe_xml_Parser.parse(str); var x = this._xml.firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } this._fastXml = x; this.width = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"width")); this.height = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"height")); }; $hxClasses["flixel.addons.editors.ogmo.FlxOgmoLoader"] = flixel_addons_editors_ogmo_FlxOgmoLoader; flixel_addons_editors_ogmo_FlxOgmoLoader.__name__ = "flixel.addons.editors.ogmo.FlxOgmoLoader"; flixel_addons_editors_ogmo_FlxOgmoLoader.prototype = { width: null ,height: null ,_xml: null ,_fastXml: null ,loadTilemap: function(TileGraphic,TileWidth,TileHeight,TileLayer,tilemap) { if(TileLayer == null) { TileLayer = "tiles"; } if(TileHeight == null) { TileHeight = 16; } if(TileWidth == null) { TileWidth = 16; } if(tilemap == null) { tilemap = new flixel_tile_FlxTilemap(); } tilemap.loadMapFromCSV(haxe_xml_Access.get_innerData(haxe_xml__$Access_NodeAccess.resolve(this._fastXml,TileLayer)),TileGraphic,TileWidth,TileHeight); return tilemap; } ,loadEntities: function(EntityLoadCallback,EntityLayer) { if(EntityLayer == null) { EntityLayer = "entities"; } var actors = haxe_xml__$Access_NodeAccess.resolve(this._fastXml,EntityLayer); var a = actors.elements(); while(a.hasNext()) { var a1 = a.next(); var tmp; if(a1.nodeType == Xml.Document) { tmp = "Document"; } else { if(a1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (a1.nodeType == null ? "null" : XmlType.toString(a1.nodeType))); } tmp = a1.nodeName; } EntityLoadCallback(tmp,a1); } } ,loadRectangles: function(RectLoadCallback,RectLayer) { if(RectLayer == null) { RectLayer = "rectangles"; } var rects = haxe_xml__$Access_NodeAccess.resolve(this._fastXml,RectLayer); var r = rects.elements(); while(r.hasNext()) { var r1 = r.next(); var X = Std.parseInt(r1.get("x")); var Y = Std.parseInt(r1.get("y")); var Width = Std.parseInt(r1.get("w")); var Height = Std.parseInt(r1.get("h")); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; RectLoadCallback(rect); } } ,getProperty: function(name) { return haxe_xml__$Access_AttribAccess.resolve(this._fastXml,name); } ,__class__: flixel_addons_editors_ogmo_FlxOgmoLoader }; var flixel_addons_editors_pex_FlxPexParser = function() { }; $hxClasses["flixel.addons.editors.pex.FlxPexParser"] = flixel_addons_editors_pex_FlxPexParser; flixel_addons_editors_pex_FlxPexParser.__name__ = "flixel.addons.editors.pex.FlxPexParser"; flixel_addons_editors_pex_FlxPexParser.parse = function(data,particleGraphic,emitter,scale) { if(scale == null) { scale = 1; } if(emitter == null) { emitter = new flixel_effects_particles_FlxTypedEmitter(); } var config = flixel_addons_editors_pex_FlxPexParser.getAccessNode(data); var particle = new flixel_effects_particles_FlxParticle(); particle.loadGraphic(particleGraphic); var emitterType = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(config,"emitterType"),"value")); if(emitterType != 0) { flixel_FlxG.log.advanced("FlxPexParser: This emitter type isn't supported. Only the 'Gravity' emitter type is supported.",flixel_system_debug_log_LogStyle.WARNING,true); } var maxParticles = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(config,"maxParticles"),"value")); var lifespan = flixel_addons_editors_pex_FlxPexParser.minMax("particleLifeSpan","particleLifespanVariance",config); var speed = flixel_addons_editors_pex_FlxPexParser.minMax("speed",null,config); var angle = flixel_addons_editors_pex_FlxPexParser.minMax("angle",null,config); var startSize = flixel_addons_editors_pex_FlxPexParser.minMax("startParticleSize",null,config); var finishSize = flixel_addons_editors_pex_FlxPexParser.minMax("finishParticleSize","finishParticleSizeVariance",config); var rotationStart = flixel_addons_editors_pex_FlxPexParser.minMax("rotationStart",null,config); var rotationEnd = flixel_addons_editors_pex_FlxPexParser.minMax("rotationEnd",null,config); var sourcePositionVariance = flixel_addons_editors_pex_FlxPexParser.xy("sourcePositionVariance",config); var gravity = flixel_addons_editors_pex_FlxPexParser.xy("gravity",config); var startColors = flixel_addons_editors_pex_FlxPexParser.color("startColor",config); var finishColors = flixel_addons_editors_pex_FlxPexParser.color("finishColor",config); emitter.launchMode = flixel_effects_particles_FlxEmitterMode.CIRCLE; emitter.loadParticles(particleGraphic,maxParticles); emitter.width = (sourcePositionVariance.x == 0 ? 1 : sourcePositionVariance.x * 2) * scale; emitter.height = (sourcePositionVariance.y == 0 ? 1 : sourcePositionVariance.y * 2) * scale; emitter.lifespan.set(lifespan.min,lifespan.max); emitter.acceleration.set(gravity.x * scale,gravity.y * scale); emitter.launchAngle.set(angle.min,angle.max); emitter.speed.start.set(speed.min * scale,speed.max * scale); emitter.speed.end.set(speed.min * scale,speed.max * scale); emitter.angle.set(rotationStart.min,rotationStart.max,rotationEnd.min,rotationEnd.max); var this1 = emitter.scale.start.min; var x = startSize.min / particle.frameWidth * scale; var y = startSize.min / particle.frameHeight * scale; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = emitter.scale.start.max; var x = startSize.max / particle.frameWidth * scale; var y = startSize.max / particle.frameHeight * scale; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = emitter.scale.end.min; var x = finishSize.min / particle.frameWidth * scale; var y = finishSize.min / particle.frameHeight * scale; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = emitter.scale.end.max; var x = finishSize.max / particle.frameWidth * scale; var y = finishSize.max / particle.frameHeight * scale; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); emitter.alpha.set((startColors.minColor >> 24 & 255) / 255,(startColors.maxColor >> 24 & 255) / 255,(finishColors.minColor >> 24 & 255) / 255,(finishColors.maxColor >> 24 & 255) / 255); emitter.color.set(startColors.minColor,startColors.maxColor,finishColors.minColor,finishColors.maxColor); if(haxe_xml__$Access_HasNodeAccess.resolve(config,"blendFuncSource") && haxe_xml__$Access_HasNodeAccess.resolve(config,"blendFuncDestination")) { var src = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(config,"blendFuncSource"),"value")); var dst = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(config,"blendFuncDestination"),"value")); var tmp; switch(src << 12 | dst) { case 4865: tmp = 12; break; case 4867:case 3154691: tmp = 10; break; case 3171075: tmp = 9; break; default: tmp = 0; } emitter.blend = tmp; } else { emitter.blend = 0; } emitter.keepScaleRatio = true; return emitter; }; flixel_addons_editors_pex_FlxPexParser.minMax = function(property,propertyVariance,config) { if(propertyVariance == null) { propertyVariance = property + "Variance"; } var node = haxe_xml__$Access_NodeAccess.resolve(config,haxe_xml__$Access_HasNodeAccess.resolve(config,property) ? property : HxOverrides.substr(property,0,1).toUpperCase() + HxOverrides.substr(property,1,null)); var varianceNode = haxe_xml__$Access_NodeAccess.resolve(config,haxe_xml__$Access_HasNodeAccess.resolve(config,propertyVariance) ? propertyVariance : HxOverrides.substr(propertyVariance,0,1).toUpperCase() + HxOverrides.substr(propertyVariance,1,null)); var min = parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"value")); var variance = parseFloat(haxe_xml__$Access_AttribAccess.resolve(varianceNode,"value")); return { min : min - variance, max : min + variance}; }; flixel_addons_editors_pex_FlxPexParser.xy = function(property,config) { var node = haxe_xml__$Access_NodeAccess.resolve(config,haxe_xml__$Access_HasNodeAccess.resolve(config,property) ? property : HxOverrides.substr(property,0,1).toUpperCase() + HxOverrides.substr(property,1,null)); return { x : parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"x")), y : parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"y"))}; }; flixel_addons_editors_pex_FlxPexParser.color = function(property,config) { var node = haxe_xml__$Access_NodeAccess.resolve(config,haxe_xml__$Access_HasNodeAccess.resolve(config,property) ? property : HxOverrides.substr(property,0,1).toUpperCase() + HxOverrides.substr(property,1,null)); var property1 = property + "Variance"; var varianceNode = haxe_xml__$Access_NodeAccess.resolve(config,haxe_xml__$Access_HasNodeAccess.resolve(config,property1) ? property1 : HxOverrides.substr(property1,0,1).toUpperCase() + HxOverrides.substr(property1,1,null)); var minR = parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"red")); var minG = parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"green")); var minB = parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"blue")); var minA = parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"alpha")); var varR = parseFloat(haxe_xml__$Access_AttribAccess.resolve(varianceNode,"red")); var varG = parseFloat(haxe_xml__$Access_AttribAccess.resolve(varianceNode,"green")); var varB = parseFloat(haxe_xml__$Access_AttribAccess.resolve(varianceNode,"blue")); var varA = parseFloat(haxe_xml__$Access_AttribAccess.resolve(varianceNode,"alpha")); var Red = minR - varR; var Green = minG - varG; var Blue = minB - varB; var Alpha = minA - varA; if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Red * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Green * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Blue * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; var Red = minR + varR; var Green = minG + varG; var Blue = minB + varB; var Alpha = minA + varA; if(Alpha == null) { Alpha = 1; } var color1 = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Red * 255); color1 &= -16711681; color1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Green * 255); color1 &= -65281; color1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Blue * 255); color1 &= -256; color1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color1 &= 16777215; color1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return { minColor : color, maxColor : color1}; }; flixel_addons_editors_pex_FlxPexParser.getNodeName = function(property,config) { if(haxe_xml__$Access_HasNodeAccess.resolve(config,property)) { return property; } else { return HxOverrides.substr(property,0,1).toUpperCase() + HxOverrides.substr(property,1,null); } }; flixel_addons_editors_pex_FlxPexParser.getAccessNode = function(data) { var str = ""; var firstElement = null; if(js_Boot.__instanceof(data,Class)) { str = Type.createInstance(data,[]); } else if(((data) instanceof Xml)) { firstElement = data.firstElement(); } else if(typeof(data) == "string") { if(openfl_utils_Assets.exists(data)) { str = openfl_utils_Assets.getText(data); } else { str = data; } } else { throw haxe_Exception.thrown("Unknown input data format. It has to be an ID to the assets file, a file embedded with @:file(), a string with the content of the file or a XML object."); } if(firstElement == null) { firstElement = haxe_xml_Parser.parse(str).firstElement(); } var tmp; if(firstElement != null) { if(firstElement.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (firstElement.nodeType == null ? "null" : XmlType.toString(firstElement.nodeType))); } tmp = firstElement.nodeName != "particleEmitterConfig"; } else { tmp = true; } if(tmp) { throw haxe_Exception.thrown("The input data is incorrect."); } if(firstElement.nodeType != Xml.Document && firstElement.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (firstElement.nodeType == null ? "null" : XmlType.toString(firstElement.nodeType))); } return firstElement; }; var flixel_addons_editors_tiled_TiledLayer = function(source,parent) { this.properties = new flixel_addons_editors_tiled_TiledPropertySet(); this.map = parent; this.name = haxe_xml__$Access_AttribAccess.resolve(source,"name"); this.visible = haxe_xml__$Access_HasAttribAccess.resolve(source,"visible") && haxe_xml__$Access_AttribAccess.resolve(source,"visible") == "0" ? false : true; this.opacity = haxe_xml__$Access_HasAttribAccess.resolve(source,"opacity") ? parseFloat(haxe_xml__$Access_AttribAccess.resolve(source,"opacity")) : 1.0; this.offsetX = haxe_xml__$Access_HasAttribAccess.resolve(source,"offsetx") ? parseFloat(haxe_xml__$Access_AttribAccess.resolve(source,"offsetx")) : 0.0; this.offsetY = haxe_xml__$Access_HasAttribAccess.resolve(source,"offsety") ? parseFloat(haxe_xml__$Access_AttribAccess.resolve(source,"offsety")) : 0.0; this.loadProperties(source); }; $hxClasses["flixel.addons.editors.tiled.TiledLayer"] = flixel_addons_editors_tiled_TiledLayer; flixel_addons_editors_tiled_TiledLayer.__name__ = "flixel.addons.editors.tiled.TiledLayer"; flixel_addons_editors_tiled_TiledLayer.prototype = { type: null ,map: null ,name: null ,opacity: null ,visible: null ,properties: null ,offsetX: null ,offsetY: null ,loadProperties: function(source) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"properties"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; this.properties.extend(node); } } ,__class__: flixel_addons_editors_tiled_TiledLayer }; var flixel_addons_editors_tiled_TiledGroupLayer = function(source,parent,noLoadHash) { this.layerMap = new haxe_ds_StringMap(); this.layers = []; flixel_addons_editors_tiled_TiledLayer.call(this,source,parent); this.type = flixel_addons_editors_tiled_TiledLayerType.GROUP; this.loadLayers(source,parent,noLoadHash); }; $hxClasses["flixel.addons.editors.tiled.TiledGroupLayer"] = flixel_addons_editors_tiled_TiledGroupLayer; flixel_addons_editors_tiled_TiledGroupLayer.__name__ = "flixel.addons.editors.tiled.TiledGroupLayer"; flixel_addons_editors_tiled_TiledGroupLayer.__super__ = flixel_addons_editors_tiled_TiledLayer; flixel_addons_editors_tiled_TiledGroupLayer.prototype = $extend(flixel_addons_editors_tiled_TiledLayer.prototype,{ layers: null ,layerMap: null ,loadLayers: function(source,parent,noLoadHash) { var el = source.elements(); while(el.hasNext()) { var el1 = el.next(); var tmp; if(haxe_xml__$Access_HasAttribAccess.resolve(el1,"name")) { var key = haxe_xml__$Access_AttribAccess.resolve(el1,"name"); tmp = Object.prototype.hasOwnProperty.call(noLoadHash.h,key); } else { tmp = false; } if(tmp) { continue; } var layer; var _g; if(el1.nodeType == Xml.Document) { _g = "Document"; } else { if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } _g = el1.nodeName; } switch(_g.toLowerCase()) { case "group": layer = new flixel_addons_editors_tiled_TiledGroupLayer(el1,parent,noLoadHash); break; case "imagelayer": layer = new flixel_addons_editors_tiled_TiledImageLayer(el1,parent); break; case "layer": layer = new flixel_addons_editors_tiled_TiledTileLayer(el1,parent); break; case "objectgroup": layer = new flixel_addons_editors_tiled_TiledObjectLayer(el1,parent); break; default: layer = null; } if(layer != null) { this.layers.push(layer); this.layerMap.h[layer.name] = layer; } } } ,getLayer: function(name) { return this.layerMap.h[name]; } ,__class__: flixel_addons_editors_tiled_TiledGroupLayer }); var flixel_addons_editors_tiled_TiledImageLayer = function(source,parent) { flixel_addons_editors_tiled_TiledLayer.call(this,source,parent); this.type = flixel_addons_editors_tiled_TiledLayerType.IMAGE; this.imagePath = haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(source,"image"),"source"); this.x = haxe_xml__$Access_HasAttribAccess.resolve(source,"x") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"x")) : 0; this.y = haxe_xml__$Access_HasAttribAccess.resolve(source,"y") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"y")) : 0; }; $hxClasses["flixel.addons.editors.tiled.TiledImageLayer"] = flixel_addons_editors_tiled_TiledImageLayer; flixel_addons_editors_tiled_TiledImageLayer.__name__ = "flixel.addons.editors.tiled.TiledImageLayer"; flixel_addons_editors_tiled_TiledImageLayer.__super__ = flixel_addons_editors_tiled_TiledLayer; flixel_addons_editors_tiled_TiledImageLayer.prototype = $extend(flixel_addons_editors_tiled_TiledLayer.prototype,{ imagePath: null ,x: null ,y: null ,__class__: flixel_addons_editors_tiled_TiledImageLayer }); var flixel_addons_editors_tiled_TiledImageTile = function(Source) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(Source,"image"); while(_g < _g1.length) { var img = _g1[_g]; ++_g; this.width = parseFloat(haxe_xml__$Access_AttribAccess.resolve(img,"width")); this.height = parseFloat(haxe_xml__$Access_AttribAccess.resolve(img,"height")); this.source = haxe_xml__$Access_AttribAccess.resolve(img,"source"); } }; $hxClasses["flixel.addons.editors.tiled.TiledImageTile"] = flixel_addons_editors_tiled_TiledImageTile; flixel_addons_editors_tiled_TiledImageTile.__name__ = "flixel.addons.editors.tiled.TiledImageTile"; flixel_addons_editors_tiled_TiledImageTile.prototype = { id: null ,width: null ,height: null ,source: null ,__class__: flixel_addons_editors_tiled_TiledImageTile }; var flixel_addons_editors_tiled_TiledLayerType = $hxEnums["flixel.addons.editors.tiled.TiledLayerType"] = { __ename__:"flixel.addons.editors.tiled.TiledLayerType",__constructs__:null ,TILE: {_hx_name:"TILE",_hx_index:0,__enum__:"flixel.addons.editors.tiled.TiledLayerType",toString:$estr} ,OBJECT: {_hx_name:"OBJECT",_hx_index:1,__enum__:"flixel.addons.editors.tiled.TiledLayerType",toString:$estr} ,IMAGE: {_hx_name:"IMAGE",_hx_index:2,__enum__:"flixel.addons.editors.tiled.TiledLayerType",toString:$estr} ,GROUP: {_hx_name:"GROUP",_hx_index:3,__enum__:"flixel.addons.editors.tiled.TiledLayerType",toString:$estr} }; flixel_addons_editors_tiled_TiledLayerType.__constructs__ = [flixel_addons_editors_tiled_TiledLayerType.TILE,flixel_addons_editors_tiled_TiledLayerType.OBJECT,flixel_addons_editors_tiled_TiledLayerType.IMAGE,flixel_addons_editors_tiled_TiledLayerType.GROUP]; flixel_addons_editors_tiled_TiledLayerType.__empty_constructs__ = [flixel_addons_editors_tiled_TiledLayerType.TILE,flixel_addons_editors_tiled_TiledLayerType.OBJECT,flixel_addons_editors_tiled_TiledLayerType.IMAGE,flixel_addons_editors_tiled_TiledLayerType.GROUP]; var flixel_addons_editors_tiled_TiledMap = function(data,rootPath) { this.layerMap = new haxe_ds_StringMap(); this.noLoadHash = new haxe_ds_StringMap(); this.layers = []; this.tilesetArray = []; this.tilesets = new haxe_ds_StringMap(); this.properties = new flixel_addons_editors_tiled_TiledPropertySet(); var source = null; if(rootPath != null) { this.rootPath = rootPath; } if(typeof(data) == "string") { if(this.rootPath == null) { this.rootPath = haxe_io_Path.directory(data) + "/"; } var x = Xml.parse(openfl_utils_Assets.getText(data)); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } source = x; } else if(((data) instanceof Xml)) { if(this.rootPath == null) { this.rootPath = ""; } var xml = data; if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } source = xml; } source = haxe_xml__$Access_NodeAccess.resolve(source,"map"); this.loadAttributes(source); this.loadProperties(source); this.loadTilesets(source); this.loadLayers(source); }; $hxClasses["flixel.addons.editors.tiled.TiledMap"] = flixel_addons_editors_tiled_TiledMap; flixel_addons_editors_tiled_TiledMap.__name__ = "flixel.addons.editors.tiled.TiledMap"; flixel_addons_editors_tiled_TiledMap.prototype = { version: null ,orientation: null ,backgroundColor: null ,width: null ,height: null ,tileWidth: null ,tileHeight: null ,fullWidth: null ,fullHeight: null ,properties: null ,tilesets: null ,tilesetArray: null ,layers: null ,noLoadHash: null ,layerMap: null ,rootPath: null ,loadAttributes: function(source) { this.version = haxe_xml__$Access_AttribAccess.resolve(source,"version") != null ? haxe_xml__$Access_AttribAccess.resolve(source,"version") : "unknown"; this.orientation = haxe_xml__$Access_AttribAccess.resolve(source,"orientation") != null ? haxe_xml__$Access_AttribAccess.resolve(source,"orientation") : "orthogonal"; this.backgroundColor = haxe_xml__$Access_HasAttribAccess.resolve(source,"backgroundcolor") && haxe_xml__$Access_AttribAccess.resolve(source,"backgroundcolor") != null ? flixel_util_FlxColor.fromString(haxe_xml__$Access_AttribAccess.resolve(source,"backgroundcolor")) : 0; this.width = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"width")); this.height = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"height")); this.tileWidth = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"tilewidth")); this.tileHeight = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"tileheight")); this.fullWidth = this.width * this.tileWidth; this.fullHeight = this.height * this.tileHeight; } ,loadProperties: function(source) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"properties"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; this.properties.extend(node); } var noLoadStr = this.properties.keys.h["noload"]; if(noLoadStr != null) { var noLoadArr = new EReg("[,;|]","").split(noLoadStr); var _g = 0; while(_g < noLoadArr.length) { var s = noLoadArr[_g]; ++_g; var this1 = this.noLoadHash; var key = StringTools.trim(s); this1.h[key] = true; } } } ,loadTilesets: function(source) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"tileset"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; var name = haxe_xml__$Access_HasAttribAccess.resolve(node,"name") ? haxe_xml__$Access_AttribAccess.resolve(node,"name") : ""; if(!Object.prototype.hasOwnProperty.call(this.noLoadHash.h,name)) { var ts = new flixel_addons_editors_tiled_TiledTileSet(node,this.rootPath); this.tilesets.h[ts.name] = ts; this.tilesetArray.push(ts); } } } ,loadLayers: function(source) { var el = source.elements(); while(el.hasNext()) { var el1 = el.next(); var tmp; if(haxe_xml__$Access_HasAttribAccess.resolve(el1,"name")) { var this1 = this.noLoadHash; var key = haxe_xml__$Access_AttribAccess.resolve(el1,"name"); tmp = Object.prototype.hasOwnProperty.call(this1.h,key); } else { tmp = false; } if(tmp) { continue; } var layer; var _g; if(el1.nodeType == Xml.Document) { _g = "Document"; } else { if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } _g = el1.nodeName; } switch(_g.toLowerCase()) { case "group": layer = new flixel_addons_editors_tiled_TiledGroupLayer(el1,this,this.noLoadHash); break; case "imagelayer": layer = new flixel_addons_editors_tiled_TiledImageLayer(el1,this); break; case "layer": layer = new flixel_addons_editors_tiled_TiledTileLayer(el1,this); break; case "objectgroup": layer = new flixel_addons_editors_tiled_TiledObjectLayer(el1,this); break; default: layer = null; } if(layer != null) { this.layers.push(layer); this.layerMap.h[layer.name] = layer; } } } ,getTileSet: function(name) { return this.tilesets.h[name]; } ,getLayer: function(name) { return this.layerMap.h[name]; } ,getGidOwner: function(gid) { var h = this.tilesets.h; var set_h = h; var set_keys = Object.keys(h); var set_length = set_keys.length; var set_current = 0; while(set_current < set_length) { var set = set_h[set_keys[set_current++]]; if(gid >= set.firstGID && gid < set.firstGID + set.numTiles) { return set; } } return null; } ,__class__: flixel_addons_editors_tiled_TiledMap }; var flixel_addons_editors_tiled_TiledObject = function(source,parent) { this.xmlData = source; this.layer = parent; this.name = haxe_xml__$Access_HasAttribAccess.resolve(source,"name") ? haxe_xml__$Access_AttribAccess.resolve(source,"name") : ""; this.type = haxe_xml__$Access_HasAttribAccess.resolve(source,"type") ? haxe_xml__$Access_AttribAccess.resolve(source,"type") : parent != null && Object.prototype.hasOwnProperty.call(parent.properties.keys.h,"defaultType") ? parent.properties.keys.h["defaultType"] : ""; this.x = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"x")); this.y = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"y")); this.width = haxe_xml__$Access_HasAttribAccess.resolve(source,"width") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"width")) : 0; this.height = haxe_xml__$Access_HasAttribAccess.resolve(source,"height") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"height")) : 0; this.angle = haxe_xml__$Access_HasAttribAccess.resolve(source,"rotation") ? parseFloat(haxe_xml__$Access_AttribAccess.resolve(source,"rotation")) : 0; this.objectType = 0; this.shared = null; this.gid = -1; if(haxe_xml__$Access_HasAttribAccess.resolve(source,"gid") && haxe_xml__$Access_AttribAccess.resolve(source,"gid").length != 0) { var gid64 = haxe_Int64Helper.parseString(haxe_xml__$Access_AttribAccess.resolve(source,"gid")); var b_high = -1; var b_low = -2147483648; var a_high = gid64.high & b_high; var a_low = gid64.low & b_low; var b_high = 0; var b_low = 0; var v = a_high - b_high | 0; if(v == 0) { v = haxe_Int32.ucompare(a_low,b_low); } this.flippedHorizontally = (a_high < 0 ? b_high < 0 ? v : -1 : b_high >= 0 ? v : 1) > 0; var b_high = 0; var b_low = 1073741824; var a_high = gid64.high & b_high; var a_low = gid64.low & b_low; var b_high = 0; var b_low = 0; var v = a_high - b_high | 0; if(v == 0) { v = haxe_Int32.ucompare(a_low,b_low); } this.flippedVertically = (a_high < 0 ? b_high < 0 ? v : -1 : b_high >= 0 ? v : 1) > 0; var b_high = 0; var b_low = 1073741823; gid64 = new haxe__$Int64__$_$_$Int64(gid64.high & b_high,gid64.low & b_low); this.gid = gid64.low; var h = this.layer.map.tilesets.h; var set_h = h; var set_keys = Object.keys(h); var set_length = set_keys.length; var set_current = 0; while(set_current < set_length) { var set = set_h[set_keys[set_current++]]; this.shared = set.getPropertiesByGid(this.gid); if(this.shared != null) { break; } } this.objectType = 4; } this.properties = new flixel_addons_editors_tiled_TiledPropertySet(); var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"properties"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; this.properties.extend(node); } if(haxe_xml__$Access_HasNodeAccess.resolve(source,"ellipse")) { this.objectType = 1; } else if(haxe_xml__$Access_HasNodeAccess.resolve(source,"polygon")) { this.objectType = 2; this.getPoints(haxe_xml__$Access_NodeAccess.resolve(source,"polygon")); } else if(haxe_xml__$Access_HasNodeAccess.resolve(source,"polyline")) { this.objectType = 3; this.getPoints(haxe_xml__$Access_NodeAccess.resolve(source,"polyline")); } }; $hxClasses["flixel.addons.editors.tiled.TiledObject"] = flixel_addons_editors_tiled_TiledObject; flixel_addons_editors_tiled_TiledObject.__name__ = "flixel.addons.editors.tiled.TiledObject"; flixel_addons_editors_tiled_TiledObject.prototype = { x: null ,y: null ,width: null ,height: null ,name: null ,type: null ,xmlData: null ,angle: null ,gid: null ,properties: null ,shared: null ,layer: null ,objectType: null ,flippedHorizontally: null ,flippedVertically: null ,points: null ,getPoints: function(node) { this.points = []; var pointsStr = haxe_xml__$Access_AttribAccess.resolve(node,"points").split(" "); var pair; var _g = 0; while(_g < pointsStr.length) { var p = pointsStr[_g]; ++_g; pair = p.split(","); var tmp = this.points; var x = parseFloat(pair[0]); var y = parseFloat(pair[1]); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tmp.push(point); } } ,__class__: flixel_addons_editors_tiled_TiledObject }; var flixel_addons_editors_tiled_TiledObjectLayer = function(source,parent) { flixel_addons_editors_tiled_TiledLayer.call(this,source,parent); this.type = flixel_addons_editors_tiled_TiledLayerType.OBJECT; this.objects = []; this.color = haxe_xml__$Access_HasAttribAccess.resolve(source,"color") ? flixel_util_FlxColor.fromString(haxe_xml__$Access_AttribAccess.resolve(source,"color")) : 0; this.loadObjects(source); }; $hxClasses["flixel.addons.editors.tiled.TiledObjectLayer"] = flixel_addons_editors_tiled_TiledObjectLayer; flixel_addons_editors_tiled_TiledObjectLayer.__name__ = "flixel.addons.editors.tiled.TiledObjectLayer"; flixel_addons_editors_tiled_TiledObjectLayer.__super__ = flixel_addons_editors_tiled_TiledLayer; flixel_addons_editors_tiled_TiledObjectLayer.prototype = $extend(flixel_addons_editors_tiled_TiledLayer.prototype,{ objects: null ,color: null ,loadObjects: function(source) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"object"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; this.objects.push(new flixel_addons_editors_tiled_TiledObject(node,this)); } } ,__class__: flixel_addons_editors_tiled_TiledObjectLayer }); var flixel_addons_editors_tiled_TiledPropertySet = function() { this.keys = new haxe_ds_StringMap(); }; $hxClasses["flixel.addons.editors.tiled.TiledPropertySet"] = flixel_addons_editors_tiled_TiledPropertySet; flixel_addons_editors_tiled_TiledPropertySet.__name__ = "flixel.addons.editors.tiled.TiledPropertySet"; flixel_addons_editors_tiled_TiledPropertySet.prototype = { keys: null ,get: function(Key) { return this.keys.h[Key]; } ,contains: function(Key) { return Object.prototype.hasOwnProperty.call(this.keys.h,Key); } ,resolve: function(Name) { return this.keys.h[Name]; } ,keysIterator: function() { return new haxe_ds__$StringMap_StringMapKeyIterator(this.keys.h); } ,extend: function(Source) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(Source,"property"); while(_g < _g1.length) { var prop = _g1[_g]; ++_g; var this1 = this.keys; var key = haxe_xml__$Access_AttribAccess.resolve(prop,"name"); var value = haxe_xml__$Access_AttribAccess.resolve(prop,"value"); this1.h[key] = value; } } ,__class__: flixel_addons_editors_tiled_TiledPropertySet }; var flixel_addons_editors_tiled_TiledTile = function(OriginalId) { this.isFlipVertically = false; this.isFlipHorizontally = false; this.tileID = OriginalId; this.tilesetID = this.tileID & 536870911; this.rotate = 0; this.resolveFlipAndRotation(); }; $hxClasses["flixel.addons.editors.tiled.TiledTile"] = flixel_addons_editors_tiled_TiledTile; flixel_addons_editors_tiled_TiledTile.__name__ = "flixel.addons.editors.tiled.TiledTile"; flixel_addons_editors_tiled_TiledTile.prototype = { tileID: null ,tilesetID: null ,isFlipHorizontally: null ,isFlipVertically: null ,rotate: null ,resolveFlipAndRotation: function() { var flipHorizontal = (this.tileID & -2147483648) != 0; var flipVertical = (this.tileID & 1073741824) != 0; if((this.tileID & 536870912) != 0) { if(flipHorizontal && flipVertical) { this.isFlipHorizontally = true; this.rotate = 2; } else if(flipHorizontal) { this.rotate = 1; } else if(flipVertical) { this.rotate = 2; } else { this.isFlipVertically = true; this.rotate = 2; } } else { this.isFlipHorizontally = flipHorizontal; this.isFlipVertically = flipVertical; } } ,resolveTilesetID: function() { return this.tileID & 536870911; } ,__class__: flixel_addons_editors_tiled_TiledTile }; var flixel_addons_editors_tiled_TiledTileLayer = function(source,parent) { flixel_addons_editors_tiled_TiledLayer.call(this,source,parent); this.type = flixel_addons_editors_tiled_TiledLayerType.TILE; this.x = haxe_xml__$Access_HasAttribAccess.resolve(source,"x") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"x")) : 0; this.y = haxe_xml__$Access_HasAttribAccess.resolve(source,"y") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"y")) : 0; this.width = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"width")); this.height = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"height")); this.tiles = []; this.xmlData = haxe_xml__$Access_NodeAccess.resolve(source,"data"); if(this.xmlData == null) { throw haxe_Exception.thrown("Error loading TiledLayer level data"); } }; $hxClasses["flixel.addons.editors.tiled.TiledTileLayer"] = flixel_addons_editors_tiled_TiledTileLayer; flixel_addons_editors_tiled_TiledTileLayer.__name__ = "flixel.addons.editors.tiled.TiledTileLayer"; flixel_addons_editors_tiled_TiledTileLayer.__super__ = flixel_addons_editors_tiled_TiledLayer; flixel_addons_editors_tiled_TiledTileLayer.prototype = $extend(flixel_addons_editors_tiled_TiledLayer.prototype,{ x: null ,y: null ,width: null ,height: null ,tiles: null ,encoding: null ,csvData: null ,tileArray: null ,xmlData: null ,getByteArrayData: function() { var result = null; if(this.get_encoding() == "base64") { var chunk = haxe_xml_Access.get_innerData(this.xmlData); var compressed = false; result = this.base64ToByteArray(chunk); result.__endian = 1; if(haxe_xml__$Access_HasAttribAccess.resolve(this.xmlData,"compression")) { if(haxe_xml__$Access_AttribAccess.resolve(this.xmlData,"compression") == "zlib") { compressed = true; } else { throw haxe_Exception.thrown("TiledLayer - data compression type not supported!"); } } if(compressed) { result.uncompress(null); } } else { throw haxe_Exception.thrown("Must use base64 encoding in order to get tileArray data."); } result.__endian = 1; return result; } ,base64ToByteArray: function(data) { var output = new openfl_utils_ByteArrayData(0); var lookup = []; var _g = 0; var _g1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".length; while(_g < _g1) { var c = _g++; lookup[HxOverrides.cca("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c)] = c; } var i = 0; while(i < data.length - 3) { if(data.charAt(i) == " " || data.charAt(i) == "\n" || data.charAt(i) == "\r") { ++i; continue; } var a0 = lookup[HxOverrides.cca(data,i)]; var a1 = lookup[HxOverrides.cca(data,i + 1)]; var a2 = lookup[HxOverrides.cca(data,i + 2)]; var a3 = lookup[HxOverrides.cca(data,i + 3)]; if(a1 < 64) { output.writeByte((a0 << 2) + ((a1 & 48) >> 4)); } if(a2 < 64) { output.writeByte(((a1 & 15) << 4) + ((a2 & 60) >> 2)); } if(a3 < 64) { output.writeByte(((a2 & 3) << 6) + a3); } i += 4; } output.position = 0; return output; } ,resolveTile: function(globalTileId) { var tile = new flixel_addons_editors_tiled_TiledTile(globalTileId); var tilesetID = tile.tilesetID; var h = this.map.tilesets.h; var tileset_h = h; var tileset_keys = Object.keys(h); var tileset_length = tileset_keys.length; var tileset_current = 0; while(tileset_current < tileset_length) { var tileset = tileset_h[tileset_keys[tileset_current++]]; if(tilesetID >= tileset.firstGID && tilesetID < tileset.firstGID + tileset.numTiles) { this.tiles.push(tile); return tilesetID; } } this.tiles.push(null); return 0; } ,get_encoding: function() { if(this.encoding == null) { this.encoding = haxe_xml__$Access_AttribAccess.resolve(this.xmlData,"encoding"); } return this.encoding; } ,get_csvData: function() { if(this.csvData == null) { if(haxe_xml__$Access_AttribAccess.resolve(this.xmlData,"encoding") == "csv") { this.csvData = StringTools.ltrim(haxe_xml_Access.get_innerData(this.xmlData)); } else { throw haxe_Exception.thrown("Must use CSV encoding in order to get CSV data."); } } return this.csvData; } ,get_tileArray: function() { if(this.tileArray == null) { this.tileArray = []; if(this.get_encoding() == "csv") { var endline = this.get_csvData().indexOf("\r\n") != -1 ? "\r\n" : "\n"; var rows = this.get_csvData().split(endline); var _g = 0; while(_g < rows.length) { var row = rows[_g]; ++_g; var cells = row.split(","); var _g1 = 0; while(_g1 < cells.length) { var cell = cells[_g1]; ++_g1; if(cell != "") { this.tileArray.push(this.resolveTile(Std.parseInt(cell))); } } } } else { var mapData = this.getByteArrayData(); if(mapData == null) { throw haxe_Exception.thrown("Must use Base64 encoding (with or without zlip compression) in order to get 1D Array."); } while((UInt.toFloat(mapData.position) | 0) < (UInt.toFloat(openfl_utils_ByteArray.get_length(mapData)) | 0)) this.tileArray.push(this.resolveTile(mapData.readUnsignedInt())); } } return this.tileArray; } ,__class__: flixel_addons_editors_tiled_TiledTileLayer ,__properties__: {get_tileArray:"get_tileArray",get_csvData:"get_csvData",get_encoding:"get_encoding"} }); var flixel_addons_editors_tiled_TiledTilePropertySet = function(tileID) { flixel_addons_editors_tiled_TiledPropertySet.call(this); this.tileID = tileID; this.animationFrames = []; this.tileObjects = []; }; $hxClasses["flixel.addons.editors.tiled.TiledTilePropertySet"] = flixel_addons_editors_tiled_TiledTilePropertySet; flixel_addons_editors_tiled_TiledTilePropertySet.__name__ = "flixel.addons.editors.tiled.TiledTilePropertySet"; flixel_addons_editors_tiled_TiledTilePropertySet.__super__ = flixel_addons_editors_tiled_TiledPropertySet; flixel_addons_editors_tiled_TiledTilePropertySet.prototype = $extend(flixel_addons_editors_tiled_TiledPropertySet.prototype,{ tileID: null ,animationFrames: null ,tileObjects: null ,addAnimationFrame: function(tileID,duration) { this.animationFrames.push({ tileID : tileID, duration : duration}); } ,addTileObject: function(tileObject) { this.tileObjects.push(tileObject); } ,__class__: flixel_addons_editors_tiled_TiledTilePropertySet }); var flixel_addons_editors_tiled_TiledTileSet = function(data,rootPath) { if(rootPath == null) { rootPath = ""; } var source; this.numTiles = 16777215; this.numRows = this.numCols = 1; if(((data) instanceof Xml)) { source = data; } else if(((data) instanceof openfl_utils_ByteArrayData)) { var bytes = data; var x = Xml.parse(bytes.toString()); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } source = x; source = haxe_xml__$Access_NodeAccess.resolve(source,"tileset"); } else { throw haxe_Exception.thrown("Unknown TMX tileset format"); } this.firstGID = haxe_xml__$Access_HasAttribAccess.resolve(source,"firstgid") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"firstgid")) : 1; if(haxe_xml__$Access_HasAttribAccess.resolve(source,"source")) { var sourcePath = haxe_io_Path.normalize(rootPath + haxe_xml__$Access_AttribAccess.resolve(source,"source")); if(openfl_utils_Assets.exists(sourcePath)) { var x = Xml.parse(openfl_utils_Assets.getText(sourcePath)); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } source = x; source = haxe_xml__$Access_NodeAccess.resolve(source,"tileset"); } else { throw haxe_Exception.thrown("Invalid TSX tileset path: " + sourcePath); } } if(!haxe_xml__$Access_HasAttribAccess.resolve(source,"source")) { var node; if(haxe_xml__$Access_HasNodeAccess.resolve(source,"image")) { node = haxe_xml__$Access_NodeAccess.resolve(source,"image"); this.imageSource = haxe_xml__$Access_AttribAccess.resolve(node,"source"); } else { node = haxe_xml__$Access_NodeAccess.resolve(source,"tile"); this.imageSource = ""; this.tileImagesSources = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"tile"); while(_g < _g1.length) { var node1 = _g1[_g]; ++_g; if(!haxe_xml__$Access_HasAttribAccess.resolve(node1,"id")) { continue; } var id = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(node1,"id")); this.tileImagesSources[id] = new flixel_addons_editors_tiled_TiledImageTile(node1); } } this.name = haxe_xml__$Access_AttribAccess.resolve(source,"name"); var imgWidth = 0; if(haxe_xml__$Access_HasAttribAccess.resolve(node,"width")) { imgWidth = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(node,"width")); } var imgHeight = 0; if(haxe_xml__$Access_HasAttribAccess.resolve(node,"height")) { imgHeight = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(node,"height")); } if(haxe_xml__$Access_HasAttribAccess.resolve(source,"tilewidth")) { this.tileWidth = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"tilewidth")); } if(haxe_xml__$Access_HasAttribAccess.resolve(source,"tileheight")) { this.tileHeight = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"tileheight")); } if(haxe_xml__$Access_HasAttribAccess.resolve(source,"spacing")) { this.spacing = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"spacing")); } if(haxe_xml__$Access_HasAttribAccess.resolve(source,"margin")) { this.margin = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(source,"margin")); } this.properties = new flixel_addons_editors_tiled_TiledPropertySet(); var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"properties"); while(_g < _g1.length) { var prop = _g1[_g]; ++_g; this.properties.extend(prop); } this.tileProps = []; this.tileTypes = []; this.tileProbabilities = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(source,"tile"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; if(!haxe_xml__$Access_HasAttribAccess.resolve(node,"id")) { continue; } var id = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(node,"id")); if(haxe_xml__$Access_HasAttribAccess.resolve(node,"type")) { var type = haxe_xml__$Access_AttribAccess.resolve(node,"type"); this.tileTypes[id] = type; } if(haxe_xml__$Access_HasAttribAccess.resolve(node,"probability")) { var probability = parseFloat(haxe_xml__$Access_AttribAccess.resolve(node,"probability")); this.tileProbabilities[id] = probability; } this.tileProps[id] = new flixel_addons_editors_tiled_TiledTilePropertySet(id); this.tileProps[id].keys.h["id"] = id == null ? "null" : "" + id; var _g2 = 0; var _g3 = haxe_xml__$Access_NodeListAccess.resolve(node,"properties"); while(_g2 < _g3.length) { var prop = _g3[_g2]; ++_g2; this.tileProps[id].extend(prop); } if(haxe_xml__$Access_HasNodeAccess.resolve(node,"animation")) { var _g4 = 0; var _g5 = haxe_xml__$Access_NodeListAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(node,"animation"),"frame"); while(_g4 < _g5.length) { var frame = _g5[_g4]; ++_g4; this.tileProps[id].addAnimationFrame(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(frame,"tileid")),parseFloat(haxe_xml__$Access_AttribAccess.resolve(frame,"duration"))); } } if(haxe_xml__$Access_HasNodeAccess.resolve(node,"objectgroup")) { var _g6 = 0; var _g7 = haxe_xml__$Access_NodeListAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(node,"objectgroup"),"object"); while(_g6 < _g7.length) { var object = _g7[_g6]; ++_g6; var tiledObject = new flixel_addons_editors_tiled_TiledObject(object); this.tileProps[id].addTileObject(tiledObject); } } } if(this.tileWidth > 0 && this.tileHeight > 0) { this.numRows = imgHeight / this.tileHeight | 0; this.numCols = imgWidth / this.tileWidth | 0; this.numTiles = this.numRows * this.numCols; } } else { throw haxe_Exception.thrown("TMX tileset misses source image or tiles"); } }; $hxClasses["flixel.addons.editors.tiled.TiledTileSet"] = flixel_addons_editors_tiled_TiledTileSet; flixel_addons_editors_tiled_TiledTileSet.__name__ = "flixel.addons.editors.tiled.TiledTileSet"; flixel_addons_editors_tiled_TiledTileSet.prototype = { firstGID: null ,name: null ,tileWidth: null ,tileHeight: null ,spacing: null ,margin: null ,imageSource: null ,numTiles: null ,numRows: null ,numCols: null ,properties: null ,tileTypes: null ,tileProbabilities: null ,tileProps: null ,tileImagesSources: null ,hasGid: function(Gid) { if(Gid >= this.firstGID) { return Gid < this.firstGID + this.numTiles; } else { return false; } } ,fromGid: function(Gid) { return Gid - (this.firstGID - 1); } ,toGid: function(ID) { return this.firstGID + ID; } ,getPropertiesByGid: function(Gid) { if(this.tileProps != null) { return this.tileProps[Gid - this.firstGID]; } return null; } ,getProperties: function(ID) { return this.tileProps[ID]; } ,getImageSourceByGid: function(Gid) { if(this.tileImagesSources != null) { return this.tileImagesSources[Gid - this.firstGID]; } return null; } ,getImageSource: function(ID) { return this.tileImagesSources[ID]; } ,getRect: function(ID) { return new openfl_geom_Rectangle(ID % this.numCols * this.tileWidth,ID / this.numCols * this.tileHeight); } ,__class__: flixel_addons_editors_tiled_TiledTileSet }; var flixel_addons_effects_FlxClothSprite = function(X,Y,SimpleGraphic,Columns,Rows,PinnedSide,CrossingConstraints) { if(CrossingConstraints == null) { CrossingConstraints = false; } if(PinnedSide == null) { PinnedSide = 256; } if(Rows == null) { Rows = 0; } if(Columns == null) { Columns = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.constraints = []; this.points = []; this.crossingConstraints = false; this.iterations = 3; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.meshScale = point; var x = 0.99; var y = 0.99; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.meshFriction = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.meshVelocity = point; flixel_FlxSprite.call(this,X,Y,SimpleGraphic); this.pinnedSide = PinnedSide; this.rows = Math.max(2,Rows) | 0; this.columns = Math.max(2,Columns) | 0; this.crossingConstraints = CrossingConstraints; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._drawOffset = point; this.setMesh(this.columns,this.rows); }; $hxClasses["flixel.addons.effects.FlxClothSprite"] = flixel_addons_effects_FlxClothSprite; flixel_addons_effects_FlxClothSprite.__name__ = "flixel.addons.effects.FlxClothSprite"; flixel_addons_effects_FlxClothSprite.__super__ = flixel_FlxSprite; flixel_addons_effects_FlxClothSprite.prototype = $extend(flixel_FlxSprite.prototype,{ meshVelocity: null ,meshFriction: null ,meshScale: null ,pinnedSide: null ,iterations: null ,crossingConstraints: null ,columns: null ,rows: null ,widthInTiles: null ,heightInTiles: null ,points: null ,constraints: null ,_vertices: null ,_indices: null ,_uvtData: null ,colors: null ,_drawOffset: null ,meshPixels: null ,destroy: function() { this.points = null; this.constraints = null; this._vertices = null; this._indices = null; this._uvtData = null; this.colors = null; this._drawOffset = flixel_util_FlxDestroyUtil.put(this._drawOffset); this.meshVelocity = flixel_util_FlxDestroyUtil.put(this.meshVelocity); this.meshFriction = flixel_util_FlxDestroyUtil.put(this.meshFriction); this.meshPixels = flixel_util_FlxDestroyUtil.dispose(this.meshPixels); flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { this.updatePoints(elapsed); var _g = 0; var _g1 = this.iterations; while(_g < _g1) { var i = _g++; this.updateConstraints(elapsed); } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,drawSimple: function(camera) { this.calcImage(); this.drawImage(); if(this.isPixelPerfectRender(camera)) { var this1 = this._point; this1.set_x(Math.floor(this1.x)); this1.set_y(Math.floor(this1.y)); } var this1 = this._point; var point = this._drawOffset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var this2 = this1; var p = this._flashPoint; if(p == null) { p = new openfl_geom_Point(); } p.x = this2.x; p.y = this2.y; camera.copyPixels(this._frame,this.meshPixels,this.meshPixels.rect,this._flashPoint,this.colorTransform,this.blend,this.antialiasing); } ,drawComplex: function(camera) { this.calcImage(); this.drawFrame(); var doFlipX = this.flipX != this._frame.flipX; var doFlipY = this.flipY != this._frame.flipY; this._frame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY); this._matrix.translate(-this.origin.x,-this.origin.y); this._matrix.scale(this.scale.x,this.scale.y); if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } if(this.isPixelPerfectRender(camera)) { var this1 = this._point; this1.set_x(Math.floor(this1.x)); this1.set_y(Math.floor(this1.y)); } if(this._frameGraphic == null) { this._frameGraphic = flixel_graphics_FlxGraphic.fromBitmapData(this.framePixels,false,null,false); } var tmp = this._frameGraphic; var tmp1 = this._vertices; var tmp2 = this._indices; var tmp3 = this._uvtData; var tmp4 = this.colors; var this1 = this._point; var point = this._drawOffset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } camera.drawTriangles(tmp,tmp1,tmp2,tmp3,tmp4,this1,this.blend,false,this.antialiasing); } ,setMesh: function(columns,rows,meshPixelsWidth,meshPixelsHeight,pinned) { if(meshPixelsHeight == null) { meshPixelsHeight = 0; } if(meshPixelsWidth == null) { meshPixelsWidth = 0; } if(rows == null) { rows = 0; } if(columns == null) { columns = 0; } meshPixelsWidth = Math.max(meshPixelsWidth,this.frameWidth) | 0; meshPixelsHeight = Math.max(meshPixelsHeight,this.frameHeight) | 0; if(meshPixelsWidth <= 0 || meshPixelsHeight <= 0) { return; } this.meshPixels = new openfl_display_BitmapData(meshPixelsWidth,meshPixelsHeight,true,0); this.points = []; this.constraints = []; this._vertices = openfl_Vector.toFloatVector(null); this._uvtData = openfl_Vector.toFloatVector(null); this._indices = openfl_Vector.toIntVector(null); rows = Math.max(2,rows) | 0; columns = Math.max(2,columns) | 0; this.widthInTiles = this.frameWidth / (columns - 1) * this.meshScale.x; this.heightInTiles = this.frameHeight / (rows - 1) * this.meshScale.y; var hyp = Math.sqrt(this.heightInTiles * this.heightInTiles + this.widthInTiles * this.widthInTiles); var _g = 0; var _g1 = rows; while(_g < _g1) { var r = _g++; var _g2 = 0; var _g3 = columns; while(_g2 < _g3) { var c = _g2++; this.points.push({ x : c * this.widthInTiles, y : r * this.heightInTiles, oldx : c * this.widthInTiles, oldy : r * this.heightInTiles, pinned : r == 0 && (this.pinnedSide & 256) != 0 || r == rows - 1 && (this.pinnedSide & 4096) != 0 || c == 0 && (this.pinnedSide & 1) != 0 || c == columns - 1 && (this.pinnedSide & 16) != 0}); this._vertices.push(c * this.widthInTiles); this._vertices.push(r * this.heightInTiles); this._uvtData.push(c / (columns - 1)); this._uvtData.push(r / (rows - 1)); if(c > 0) { this.constraints.push({ p0 : this.points[r * columns + c], p1 : this.points[r * columns + c - 1], length : this.widthInTiles}); } if(r > 0) { this.constraints.push({ p0 : this.points[r * columns + c], p1 : this.points[(r - 1) * columns + c], length : this.heightInTiles}); } if(r > 0 && c > 0) { this._indices.push(r * columns + c); this._indices.push((r - 1) * columns + c - 1); this._indices.push((r - 1) * columns + c); this._indices.push(r * columns + c); this._indices.push((r - 1) * columns + c - 1); this._indices.push(r * columns + c - 1); if(this.crossingConstraints) { this.constraints.push({ p0 : this.points[r * columns + c - 1], p1 : this.points[(r - 1) * columns + c], length : hyp}); this.constraints.push({ p0 : this.points[r * columns + c], p1 : this.points[(r - 1) * columns + c - 1], length : hyp}); } } } } if(pinned != null) { var _g = 0; while(_g < pinned.length) { var i = pinned[_g]; ++_g; this.points[i].pinned = true; } } } ,updatePoints: function(elapsed) { var _g = 0; var _g1 = this.points; while(_g < _g1.length) { var p = _g1[_g]; ++_g; if(!p.pinned) { var vx = (p.x - p.oldx) * this.meshFriction.x; var vy = (p.y - p.oldy) * this.meshFriction.y; p.oldx = p.x; p.oldy = p.y; p.x += vx; p.y += vy; p.x += this.meshVelocity.x * elapsed; p.y += this.meshVelocity.y * elapsed; p.x -= this.velocity.x * elapsed; p.y -= this.velocity.y * elapsed; } } } ,updateConstraints: function(elapsed) { var _g = 0; var _g1 = this.constraints; while(_g < _g1.length) { var s = _g1[_g]; ++_g; var dx = s.p1.x - s.p0.x; var dy = s.p1.y - s.p0.y; var distance = Math.sqrt(dx * dx + dy * dy); var difference = (s.length - distance) / distance; var offsetX = dx * 0.5 * difference; var offsetY = dy * 0.5 * difference; if(!s.p0.pinned) { s.p0.x -= offsetX; s.p0.y -= offsetY; } if(!s.p1.pinned) { s.p1.x += offsetX; s.p1.y += offsetY; } } } ,calcImage: function() { this._vertices = openfl_Vector.toFloatVector(null); var minX = 0; var maxX = 0; var minY = 0; var maxY = 0; var _g = 0; var _g1 = this.points; while(_g < _g1.length) { var p = _g1[_g]; ++_g; this._vertices.push(p.x); this._vertices.push(p.y); minX = Math.min(minX,p.x); minY = Math.min(minY,p.y); maxX = Math.max(maxX,p.x); maxY = Math.max(maxY,p.y); } var this1 = this._drawOffset; var x = minX; var y = minY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var i = 0; while(i < this._vertices.get_length() - 1) { this._vertices.set(i,this._vertices.get(i) - minX); this._vertices.set(i + 1,this._vertices.get(i + 1) - minY); i += 2; } if(this.meshPixels == null) { return; } var w = Math.max(this.meshPixels.width,maxX - minX) | 0; var h = Math.max(this.meshPixels.height,maxY - minY) | 0; if(this.meshPixels.width < w || this.meshPixels.height < h) { this.meshPixels = new openfl_display_BitmapData(w,h,true,0); } else { this.meshPixels.fillRect(this.meshPixels.rect,0); } } ,drawImage: function() { if(this.meshPixels != null) { flixel_util_FlxSpriteUtil.flashGfx.clear(); flixel_util_FlxSpriteUtil.flashGfx.beginBitmapFill(this.framePixels,null,false,true); flixel_util_FlxSpriteUtil.flashGfx.drawTriangles(this._vertices,this._indices,this._uvtData); flixel_util_FlxSpriteUtil.flashGfx.endFill(); this.meshPixels.draw(flixel_util_FlxSpriteUtil.flashGfxSprite); } } ,__class__: flixel_addons_effects_FlxClothSprite }); var flixel_addons_effects_FlxSkewedSprite = function(X,Y,SimpleGraphic) { this._skewMatrix = new openfl_geom_Matrix(); this.matrixExposed = false; this.transformMatrix = new openfl_geom_Matrix(); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.skew = point; flixel_FlxSprite.call(this,X,Y,SimpleGraphic); }; $hxClasses["flixel.addons.effects.FlxSkewedSprite"] = flixel_addons_effects_FlxSkewedSprite; flixel_addons_effects_FlxSkewedSprite.__name__ = "flixel.addons.effects.FlxSkewedSprite"; flixel_addons_effects_FlxSkewedSprite.__super__ = flixel_FlxSprite; flixel_addons_effects_FlxSkewedSprite.prototype = $extend(flixel_FlxSprite.prototype,{ skew: null ,transformMatrix: null ,matrixExposed: null ,_skewMatrix: null ,destroy: function() { this.skew = flixel_util_FlxDestroyUtil.put(this.skew); this._skewMatrix = null; this.transformMatrix = null; flixel_FlxSprite.prototype.destroy.call(this); } ,drawComplex: function(camera) { var doFlipX = this.flipX != this._frame.flipX; var doFlipY = this.flipY != this._frame.flipY; this._frame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY); this._matrix.translate(-this.origin.x,-this.origin.y); this._matrix.scale(this.scale.x,this.scale.y); if(this.matrixExposed) { this._matrix.concat(this.transformMatrix); } else { if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } this.updateSkewMatrix(); this._matrix.concat(this._skewMatrix); } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this1 = this._point; var point = this.origin; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } if(this.isPixelPerfectRender(camera)) { var this1 = this._point; this1.set_x(Math.floor(this1.x)); this1.set_y(Math.floor(this1.y)); } this._matrix.translate(this._point.x,this._point.y); camera.drawPixels(this._frame,this.framePixels,this._matrix,this.colorTransform,this.blend,this.antialiasing,this.shader); } ,updateSkewMatrix: function() { this._skewMatrix.identity(); if(this.skew.x != 0 || this.skew.y != 0) { this._skewMatrix.b = Math.tan(this.skew.y * (Math.PI / 180)); this._skewMatrix.c = Math.tan(this.skew.x * (Math.PI / 180)); } } ,isSimpleRender: function(camera) { if(flixel_FlxG.renderBlit) { if(flixel_FlxSprite.prototype.isSimpleRender.call(this,camera) && this.skew.x == 0 && this.skew.y == 0) { return !this.matrixExposed; } else { return false; } } else { return false; } } ,__class__: flixel_addons_effects_FlxSkewedSprite }); var flixel_group_FlxTypedSpriteGroup = function(X,Y,MaxSize) { if(MaxSize == null) { MaxSize = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._skipTransformChildren = false; this.directAlpha = false; flixel_FlxSprite.call(this,X,Y); this.group = new flixel_group_FlxTypedGroup(MaxSize); this._sprites = this.group.members; }; $hxClasses["flixel.group.FlxTypedSpriteGroup"] = flixel_group_FlxTypedSpriteGroup; flixel_group_FlxTypedSpriteGroup.__name__ = "flixel.group.FlxTypedSpriteGroup"; flixel_group_FlxTypedSpriteGroup.__super__ = flixel_FlxSprite; flixel_group_FlxTypedSpriteGroup.prototype = $extend(flixel_FlxSprite.prototype,{ transformChildren_flixel_math_FlxRect: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,transformChildren_openfl_display_BlendMode: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,transformChildren_Array_flixel_FlxCamera: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,transformChildren_flixel_FlxCamera: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,transformChildren_flixel_math_FlxPoint: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,transformChildren_Bool: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,transformChildren_Int: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,multiTransformChildren_Float: function(FunctionArray,ValueArray) { if(this._skipTransformChildren || this.group == null) { return; } var numProps = FunctionArray.length; if(numProps > ValueArray.length) { return; } var lambda; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null && sprite.exists) { var _g2 = 0; var _g3 = numProps; while(_g2 < _g3) { var i = _g2++; lambda = FunctionArray[i]; lambda(sprite,ValueArray[i]); } } } } ,transformChildren_Float: function(Function1,Value) { if(this._skipTransformChildren || this.group == null) { return; } var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { Function1(sprite,Value); } } } ,group: null ,directAlpha: null ,_skipTransformChildren: null ,_sprites: null ,initVars: function() { this.flixelType = 4; this.offset = new flixel_math_FlxCallbackPoint($bind(this,this.offsetCallback)); this.origin = new flixel_math_FlxCallbackPoint($bind(this,this.originCallback)); this.scale = new flixel_math_FlxCallbackPoint($bind(this,this.scaleCallback)); this.scrollFactor = new flixel_math_FlxCallbackPoint($bind(this,this.scrollFactorCallback)); var this1 = this.scale; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.scrollFactor; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.velocity = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.acceleration = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.drag = point; var x = 10000; var y = 10000; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.maxVelocity = point; } ,destroy: function() { this.offset = flixel_util_FlxDestroyUtil.destroy(this.offset); this.origin = flixel_util_FlxDestroyUtil.destroy(this.origin); this.scale = flixel_util_FlxDestroyUtil.destroy(this.scale); this.scrollFactor = flixel_util_FlxDestroyUtil.destroy(this.scrollFactor); this.group = flixel_util_FlxDestroyUtil.destroy(this.group); this._sprites = null; flixel_FlxSprite.prototype.destroy.call(this); } ,clone: function() { var newGroup = new flixel_group_FlxTypedSpriteGroup(this.x,this.y,this.group.maxSize); var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { newGroup.add(sprite.clone()); } } return newGroup; } ,isOnScreen: function(Camera) { var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null && sprite.exists && sprite.visible && sprite.isOnScreen(Camera)) { return true; } } return false; } ,overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var result = false; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null && sprite.exists && sprite.visible) { result = result || sprite.overlapsPoint(point,InScreenSpace,Camera); } } return result; } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var result = false; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null && sprite.exists && sprite.visible) { result = result || sprite.pixelsOverlapPoint(point,Mask,Camera); } } return result; } ,update: function(elapsed) { this.group.update(elapsed); if(this.path != null && this.path.active) { this.path.update(elapsed); } if(this.moves) { this.updateMotion(elapsed); } } ,draw: function() { this.group.draw(); } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var positions = null; if(FetchPositions) { positions = []; } var spritePositions; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { spritePositions = sprite.replaceColor(Color,NewColor,FetchPositions); if(FetchPositions) { positions = positions.concat(spritePositions); } } } return positions; } ,add: function(Sprite) { this.preAdd(Sprite); return this.group.add(Sprite); } ,insert: function(Position,Sprite) { this.preAdd(Sprite); return this.group.insert(Position,Sprite); } ,preAdd: function(Sprite) { var sprite = Sprite; sprite.set_x(sprite.x + this.x); sprite.set_y(sprite.y + this.y); sprite.set_alpha(sprite.alpha * this.alpha); var this1 = sprite.scrollFactor; var p = this.scrollFactor; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } sprite.set_cameras(this._cameras); if(this.clipRect != null) { var ClipRect = this.clipRect; if(ClipRect == null) { sprite.set_clipRect(null); } else { var X = ClipRect.x - sprite.x + this.x; var Y = ClipRect.y - sprite.y + this.y; var Width = ClipRect.width; var Height = ClipRect.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; sprite.set_clipRect(rect); } } } ,recycle: function(ObjectClass,ObjectFactory,Force,Revive) { if(Revive == null) { Revive = true; } if(Force == null) { Force = false; } return this.group.recycle(ObjectClass,ObjectFactory,Force,Revive); } ,remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var sprite = Sprite; sprite.set_x(sprite.x - this.x); sprite.set_y(sprite.y - this.y); sprite.set_cameras(null); return this.group.remove(Sprite,Splice); } ,replace: function(OldObject,NewObject) { return this.group.replace(OldObject,NewObject); } ,sort: function(Function1,Order) { if(Order == null) { Order = -1; } var order = Order; if(order == null) { order = -1; } var _g = Function1; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.group.members.sort(tmp); } ,getFirstAvailable: function(ObjectClass,Force) { if(Force == null) { Force = false; } return this.group.getFirstAvailable(ObjectClass,Force); } ,getFirstNull: function() { return this.group.getFirstNull(); } ,getFirstExisting: function() { return this.group.getFirstExisting(); } ,getFirstAlive: function() { return this.group.getFirstAlive(); } ,getFirstDead: function() { return this.group.getFirstDead(); } ,countLiving: function() { return this.group.countLiving(); } ,countDead: function() { return this.group.countDead(); } ,getRandom: function(StartIndex,Length) { if(Length == null) { Length = 0; } if(StartIndex == null) { StartIndex = 0; } return this.group.getRandom(StartIndex,Length); } ,iterator: function(filter) { return new flixel_group_FlxTypedGroupIterator(this.group.members,filter); } ,forEach: function(Function1,Recurse) { if(Recurse == null) { Recurse = false; } this.group.forEach(Function1,Recurse); } ,forEachAlive: function(Function1,Recurse) { if(Recurse == null) { Recurse = false; } this.group.forEachAlive(Function1,Recurse); } ,forEachDead: function(Function1,Recurse) { if(Recurse == null) { Recurse = false; } this.group.forEachDead(Function1,Recurse); } ,forEachExists: function(Function1,Recurse) { if(Recurse == null) { Recurse = false; } this.group.forEachExists(Function1,Recurse); } ,forEachOfType: function(ObjectClass,Function1,Recurse) { if(Recurse == null) { Recurse = false; } this.group.forEachOfType(ObjectClass,Function1,Recurse); } ,clear: function() { this.group.clear(); } ,kill: function() { this._skipTransformChildren = true; flixel_FlxSprite.prototype.kill.call(this); this._skipTransformChildren = false; this.group.kill(); } ,revive: function() { this._skipTransformChildren = true; flixel_FlxSprite.prototype.revive.call(this); this._skipTransformChildren = false; this.group.revive(); } ,reset: function(X,Y) { var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { sprite.reset(sprite.x + X - this.x,sprite.y + Y - this.y); } } this._skipTransformChildren = true; this.touching = 0; this.wasTouching = 0; this.set_x(X); this.set_y(Y); var this1 = this.velocity; this1.set_x(0); this1.set_y(0); flixel_FlxSprite.prototype.revive.call(this); this._skipTransformChildren = false; } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var dx = X - this.x; var dy = Y - this.y; this.multiTransformChildren_Float([$bind(this,this.xTransform),$bind(this,this.yTransform)],[dx,dy]); this._skipTransformChildren = true; this.set_x(X); this.set_y(Y); this._skipTransformChildren = false; } ,set_camera: function(Value) { if(this.get_camera() != Value) { this.transformChildren_flixel_FlxCamera($bind(this,this.cameraTransform),Value); } return flixel_FlxSprite.prototype.set_camera.call(this,Value); } ,set_cameras: function(Value) { if(this.get_cameras() != Value) { this.transformChildren_Array_flixel_FlxCamera($bind(this,this.camerasTransform),Value); } return flixel_FlxSprite.prototype.set_cameras.call(this,Value); } ,set_exists: function(Value) { if(this.exists != Value) { this.transformChildren_Bool($bind(this,this.existsTransform),Value); } return flixel_FlxSprite.prototype.set_exists.call(this,Value); } ,set_visible: function(Value) { if(this.exists && this.visible != Value) { this.transformChildren_Bool($bind(this,this.visibleTransform),Value); } return flixel_FlxSprite.prototype.set_visible.call(this,Value); } ,set_active: function(Value) { if(this.exists && this.active != Value) { this.transformChildren_Bool($bind(this,this.activeTransform),Value); } return flixel_FlxSprite.prototype.set_active.call(this,Value); } ,set_alive: function(Value) { if(this.alive != Value) { this.transformChildren_Bool($bind(this,this.aliveTransform),Value); } return flixel_FlxSprite.prototype.set_alive.call(this,Value); } ,set_x: function(Value) { if(this.exists && this.x != Value) { this.transformChildren_Float($bind(this,this.xTransform),Value - this.x); } return this.x = Value; } ,set_y: function(Value) { if(this.exists && this.y != Value) { this.transformChildren_Float($bind(this,this.yTransform),Value - this.y); } return this.y = Value; } ,set_angle: function(Value) { if(this.exists && this.angle != Value) { this.transformChildren_Float($bind(this,this.angleTransform),Value - this.angle); } return this.angle = Value; } ,set_alpha: function(Value) { var lowerBound = Value < 0 ? 0 : Value; Value = lowerBound > 1 ? 1 : lowerBound; if(this.exists && this.alpha != Value) { var factor = this.alpha > 0 ? Value / this.alpha : 0; if(!this.directAlpha && this.alpha != 0) { this.transformChildren_Float($bind(this,this.alphaTransform),factor); } else { this.transformChildren_Float($bind(this,this.directAlphaTransform),Value); } } return this.alpha = Value; } ,set_facing: function(Value) { if(this.exists && this.facing != Value) { this.transformChildren_Int($bind(this,this.facingTransform),Value); } return this.facing = Value; } ,set_flipX: function(Value) { if(this.exists && this.flipX != Value) { this.transformChildren_Bool($bind(this,this.flipXTransform),Value); } return this.flipX = Value; } ,set_flipY: function(Value) { if(this.exists && this.flipY != Value) { this.transformChildren_Bool($bind(this,this.flipYTransform),Value); } return this.flipY = Value; } ,set_moves: function(Value) { if(this.exists && this.moves != Value) { this.transformChildren_Bool($bind(this,this.movesTransform),Value); } return this.moves = Value; } ,set_immovable: function(Value) { if(this.exists && this.immovable != Value) { this.transformChildren_Bool($bind(this,this.immovableTransform),Value); } return this.immovable = Value; } ,set_solid: function(Value) { if(this.exists && (this.allowCollisions & 4369) > 0 != Value) { this.transformChildren_Bool($bind(this,this.solidTransform),Value); } return flixel_FlxSprite.prototype.set_solid.call(this,Value); } ,set_color: function(Value) { if(this.exists && this.color != Value) { this.transformChildren_Int($bind(this,this.gColorTransform),Value); } return this.color = Value; } ,set_blend: function(Value) { if(this.exists && this.blend != Value) { this.transformChildren_openfl_display_BlendMode($bind(this,this.blendTransform),Value); } return this.blend = Value; } ,set_clipRect: function(rect) { if(this.exists) { this.transformChildren_flixel_math_FlxRect($bind(this,this.clipRectTransform),rect); } return flixel_FlxSprite.prototype.set_clipRect.call(this,rect); } ,set_pixelPerfectRender: function(Value) { if(this.exists && this.pixelPerfectRender != Value) { this.transformChildren_Bool($bind(this,this.pixelPerfectTransform),Value); } return flixel_FlxSprite.prototype.set_pixelPerfectRender.call(this,Value); } ,set_width: function(Value) { return Value; } ,get_width: function() { if(this.group.length == 0) { return 0; } return this.findMaxXHelper() - this.findMinXHelper(); } ,findMinX: function() { if(this.group.length == 0) { return this.x; } else { return this.findMinXHelper(); } } ,findMinXHelper: function() { var value = Infinity; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member == null) { continue; } var minX; if(member.flixelType == 4) { minX = member.findMinX(); } else { minX = member.x; } if(minX < value) { value = minX; } } return value; } ,findMaxX: function() { if(this.group.length == 0) { return this.x; } else { return this.findMaxXHelper(); } } ,findMaxXHelper: function() { var value = -Infinity; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member == null) { continue; } var maxX; if(member.flixelType == 4) { maxX = member.findMaxX(); } else { maxX = member.x + member.get_width(); } if(maxX > value) { value = maxX; } } return value; } ,set_height: function(Value) { return Value; } ,get_height: function() { if(this.group.length == 0) { return 0; } return this.findMaxYHelper() - this.findMinYHelper(); } ,findMinY: function() { if(this.group.length == 0) { return this.y; } else { return this.findMinYHelper(); } } ,findMinYHelper: function() { var value = Infinity; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member == null) { continue; } var minY; if(member.flixelType == 4) { minY = member.findMinY(); } else { minY = member.y; } if(minY < value) { value = minY; } } return value; } ,findMaxY: function() { if(this.group.length == 0) { return this.y; } else { return this.findMaxYHelper(); } } ,findMaxYHelper: function() { var value = -Infinity; var _g = 0; var _g1 = this._sprites; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member == null) { continue; } var maxY; if(member.flixelType == 4) { maxY = member.findMaxY(); } else { maxY = member.y + member.get_height(); } if(maxY > value) { value = maxY; } } return value; } ,get_length: function() { return this.group.length; } ,get_maxSize: function() { return this.group.maxSize; } ,set_maxSize: function(Size) { return this.group.set_maxSize(Size); } ,get_members: function() { return this.group.members; } ,xTransform: function(Sprite,X) { Sprite.set_x(Sprite.x + X); } ,yTransform: function(Sprite,Y) { Sprite.set_y(Sprite.y + Y); } ,angleTransform: function(Sprite,Angle) { Sprite.set_angle(Sprite.angle + Angle); } ,alphaTransform: function(Sprite,Alpha) { if(Sprite.alpha != 0 || Alpha == 0) { Sprite.set_alpha(Sprite.alpha * Alpha); } else { Sprite.set_alpha(1 / Alpha); } } ,directAlphaTransform: function(Sprite,Alpha) { Sprite.set_alpha(Alpha); } ,facingTransform: function(Sprite,Facing) { Sprite.set_facing(Facing); } ,flipXTransform: function(Sprite,FlipX) { Sprite.set_flipX(FlipX); } ,flipYTransform: function(Sprite,FlipY) { Sprite.set_flipY(FlipY); } ,movesTransform: function(Sprite,Moves) { Sprite.set_moves(Moves); } ,pixelPerfectTransform: function(Sprite,PixelPerfect) { Sprite.set_pixelPerfectRender(PixelPerfect); } ,gColorTransform: function(Sprite,Color) { Sprite.set_color(Color); } ,blendTransform: function(Sprite,Blend) { Sprite.set_blend(Blend); } ,immovableTransform: function(Sprite,Immovable) { Sprite.set_immovable(Immovable); } ,visibleTransform: function(Sprite,Visible) { Sprite.set_visible(Visible); } ,activeTransform: function(Sprite,Active) { Sprite.set_active(Active); } ,solidTransform: function(Sprite,Solid) { Sprite.set_solid(Solid); } ,aliveTransform: function(Sprite,Alive) { Sprite.set_alive(Alive); } ,existsTransform: function(Sprite,Exists) { Sprite.set_exists(Exists); } ,cameraTransform: function(Sprite,Camera) { Sprite.set_camera(Camera); } ,camerasTransform: function(Sprite,Cameras) { Sprite.set_cameras(Cameras); } ,offsetTransform: function(Sprite,Offset) { var this1 = Sprite.offset; var x = Offset.x; var y = Offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(Offset._weak) { Offset.put(); } } ,originTransform: function(Sprite,Origin) { var this1 = Sprite.origin; var x = this.x + this.origin.x - Sprite.x; var y = this.y + this.origin.y - Sprite.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,scaleTransform: function(Sprite,Scale) { var this1 = Sprite.scale; var x = Scale.x; var y = Scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(Scale._weak) { Scale.put(); } } ,scrollFactorTransform: function(Sprite,ScrollFactor) { var this1 = Sprite.scrollFactor; var x = ScrollFactor.x; var y = ScrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(ScrollFactor._weak) { ScrollFactor.put(); } } ,clipRectTransform: function(Sprite,ClipRect) { if(ClipRect == null) { Sprite.set_clipRect(null); } else { var X = ClipRect.x - Sprite.x + this.x; var Y = ClipRect.y - Sprite.y + this.y; var Width = ClipRect.width; var Height = ClipRect.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; Sprite.set_clipRect(rect); } } ,offsetCallback: function(Offset) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.offsetTransform),Offset); } ,originCallback: function(Origin) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.originTransform),Origin); } ,scaleCallback: function(Scale) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.scaleTransform),Scale); } ,scrollFactorCallback: function(ScrollFactor) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.scrollFactorTransform),ScrollFactor); } ,loadGraphicFromSprite: function(Sprite) { return this; } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } return this; } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } return this; } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } return this; } ,set_pixels: function(Value) { return Value; } ,set_frame: function(Value) { return Value; } ,get_pixels: function() { return null; } ,calcFrame: function(RunOnCpp) { if(RunOnCpp == null) { RunOnCpp = false; } } ,resetHelpers: function() { } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } } ,set_frames: function(Frames) { return Frames; } ,updateColorTransform: function() { } ,__class__: flixel_group_FlxTypedSpriteGroup ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_maxSize:"set_maxSize",get_maxSize:"get_maxSize",get_length:"get_length",get_members:"get_members"}) }); var flixel_addons_effects_FlxTrail = function(Target,Graphic,Length,Delay,Alpha,Diff) { if(Diff == null) { Diff = 0.05; } if(Alpha == null) { Alpha = 0.4; } if(Delay == null) { Delay = 3; } if(Length == null) { Length = 10; } this._recentAnimations = []; this._recentFlipY = []; this._recentFlipX = []; this._recentFrames = []; this._recentScales = []; this._recentAngles = []; this._recentPositions = []; this._transp = 1; this._trailLength = 0; this._counter = 0; this.framesEnabled = true; this.scalesEnabled = true; this.rotationsEnabled = true; this.yEnabled = true; this.xEnabled = true; flixel_group_FlxTypedSpriteGroup.call(this); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var p = Target.origin; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } this._spriteOrigin = this1; this.target = Target; this.delay = Delay; this._graphic = Graphic; this._transp = Alpha; this._difference = Diff; this.increaseLength(Length); this.set_solid(false); }; $hxClasses["flixel.addons.effects.FlxTrail"] = flixel_addons_effects_FlxTrail; flixel_addons_effects_FlxTrail.__name__ = "flixel.addons.effects.FlxTrail"; flixel_addons_effects_FlxTrail.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_addons_effects_FlxTrail.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ target: null ,delay: null ,xEnabled: null ,yEnabled: null ,rotationsEnabled: null ,scalesEnabled: null ,framesEnabled: null ,_counter: null ,_trailLength: null ,_graphic: null ,_transp: null ,_difference: null ,_recentPositions: null ,_recentAngles: null ,_recentScales: null ,_recentFrames: null ,_recentFlipX: null ,_recentFlipY: null ,_recentAnimations: null ,_spriteOrigin: null ,destroy: function() { flixel_util_FlxDestroyUtil.putArray(this._recentPositions); flixel_util_FlxDestroyUtil.putArray(this._recentScales); this._recentAngles = null; this._recentPositions = null; this._recentScales = null; this._recentFrames = null; this._recentFlipX = null; this._recentFlipY = null; this._recentAnimations = null; this._spriteOrigin = null; this.target = null; this._graphic = null; flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); } ,update: function(elapsed) { this._counter++; if(this._counter >= this.delay && this._trailLength >= 1) { this._counter = 0; var spritePosition = null; if(this._recentPositions.length == this._trailLength) { spritePosition = this._recentPositions.pop(); } else { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; spritePosition = point; } var x = this.target.x - this.target.offset.x; var y = this.target.y - this.target.offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } spritePosition.set_x(x); spritePosition.set_y(y); this._recentPositions.unshift(spritePosition); if(this.rotationsEnabled) { this.cacheValue(this._recentAngles,this.target.angle); } if(this.scalesEnabled) { var spriteScale = null; if(this._recentScales.length == this._trailLength) { spriteScale = this._recentScales.pop(); } else { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; spriteScale = point; } var x = this.target.scale.x; var y = this.target.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } spriteScale.set_x(x); spriteScale.set_y(y); this._recentScales.unshift(spriteScale); } if(this.framesEnabled && this._graphic == null) { this.cacheValue(this._recentFrames,this.target.animation.frameIndex); this.cacheValue(this._recentFlipX,this.target.flipX); this.cacheValue(this._recentFlipY,this.target.flipY); this.cacheValue(this._recentAnimations,this.target.animation._curAnim); } var trailSprite; var _g = 0; var _g1 = this._recentPositions.length; while(_g < _g1) { var i = _g++; trailSprite = this.group.members[i]; trailSprite.set_x(this._recentPositions[i].x); trailSprite.set_y(this._recentPositions[i].y); if(this.rotationsEnabled) { trailSprite.set_angle(this._recentAngles[i]); trailSprite.origin.set_x(this._spriteOrigin.x); trailSprite.origin.set_y(this._spriteOrigin.y); } if(this.scalesEnabled) { trailSprite.scale.set_x(this._recentScales[i].x); trailSprite.scale.set_y(this._recentScales[i].y); } if(this.framesEnabled && this._graphic == null) { trailSprite.animation.set_frameIndex(this._recentFrames[i]); trailSprite.set_flipX(this._recentFlipX[i]); trailSprite.set_flipY(this._recentFlipY[i]); var _this = trailSprite.animation; var anim = this._recentAnimations[i]; if(anim != _this._curAnim) { if(_this._curAnim != null) { _this._curAnim.stop(); } if(anim != null) { anim.play(); } } _this._curAnim = anim; } trailSprite.set_exists(true); } } flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,cacheValue: function(array,value) { array.unshift(value); flixel_util_FlxArrayUtil.setLength_cacheValue_T(array,this._trailLength); } ,resetTrail: function() { this._recentPositions.splice(0,this._recentPositions.length); this._recentAngles.splice(0,this._recentAngles.length); this._recentScales.splice(0,this._recentScales.length); this._recentFrames.splice(0,this._recentFrames.length); this._recentFlipX.splice(0,this._recentFlipX.length); this._recentFlipY.splice(0,this._recentFlipY.length); this._recentAnimations.splice(0,this._recentAnimations.length); var _g = 0; var _g1 = this.group.members.length; while(_g < _g1) { var i = _g++; if(this.group.members[i] != null) { this.group.members[i].set_exists(false); } } } ,increaseLength: function(Amount) { if(Amount <= 0) { return; } this._trailLength += Amount; var _g = 0; var _g1 = Amount; while(_g < _g1) { var i = _g++; var trailSprite = new flixel_FlxSprite(0,0); if(this._graphic == null) { trailSprite.loadGraphicFromSprite(this.target); } else { trailSprite.loadGraphic(this._graphic); } trailSprite.set_exists(false); trailSprite.set_active(false); this.add(trailSprite); trailSprite.set_alpha(this._transp); this._transp -= this._difference; trailSprite.set_solid((this.allowCollisions & 4369) > 0); if(trailSprite.alpha <= 0) { trailSprite.kill(); } } } ,changeGraphic: function(Image1) { this._graphic = Image1; var _g = 0; var _g1 = this._trailLength; while(_g < _g1) { var i = _g++; this.group.members[i].loadGraphic(Image1); } } ,changeValuesEnabled: function(Angle,X,Y,Scale) { if(Scale == null) { Scale = true; } if(Y == null) { Y = true; } if(X == null) { X = true; } this.rotationsEnabled = Angle; this.xEnabled = X; this.yEnabled = Y; this.scalesEnabled = Scale; } ,__class__: flixel_addons_effects_FlxTrail }); var flixel_addons_effects_FlxTrailArea = function(X,Y,Width,Height,AlphaMultiplier,Delay,SimpleRender,Antialiasing,TrailBlendMode) { if(Antialiasing == null) { Antialiasing = false; } if(SimpleRender == null) { SimpleRender = false; } if(Delay == null) { Delay = 2; } if(AlphaMultiplier == null) { AlphaMultiplier = 0.8; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._height = 1; this._width = 1; this._counter = 0; this.alphaOffset = 0; this.blueOffset = 0; this.greenOffset = 0; this.redOffset = 0; this.blueMultiplier = 1; this.greenMultiplier = 1; this.redMultiplier = 1; this.blendMode = null; this.simpleRender = false; this.delay = 2; flixel_FlxSprite.call(this,X,Y); this.group = new flixel_group_FlxTypedGroup(); this.delay = Delay; this.simpleRender = SimpleRender; this.blendMode = TrailBlendMode; this.set_antialiasing(Antialiasing); this.alphaMultiplier = AlphaMultiplier; this.setSize(Width,Height); this.set_pixels(this._areaPixels); }; $hxClasses["flixel.addons.effects.FlxTrailArea"] = flixel_addons_effects_FlxTrailArea; flixel_addons_effects_FlxTrailArea.__name__ = "flixel.addons.effects.FlxTrailArea"; flixel_addons_effects_FlxTrailArea.__super__ = flixel_FlxSprite; flixel_addons_effects_FlxTrailArea.prototype = $extend(flixel_FlxSprite.prototype,{ delay: null ,simpleRender: null ,blendMode: null ,group: null ,redMultiplier: null ,greenMultiplier: null ,blueMultiplier: null ,alphaMultiplier: null ,redOffset: null ,greenOffset: null ,blueOffset: null ,alphaOffset: null ,_counter: null ,_width: null ,_height: null ,_areaPixels: null ,setSize: function(Width,Height) { if(Width <= 0) { Width = flixel_FlxG.width; } if(Height <= 0) { Height = flixel_FlxG.height; } if(Width != this._width || Height != this._height) { this._width = Width; this._height = Height; this._areaPixels = new openfl_display_BitmapData(this._width | 0,this._height | 0,true,0); } } ,destroy: function() { this.group = flixel_util_FlxDestroyUtil.destroy(this.group); this.blendMode = null; if(this.get_pixels() != this._areaPixels) { this._areaPixels.dispose(); } this._areaPixels = null; flixel_FlxSprite.prototype.destroy.call(this); } ,draw: function() { this._counter++; if(this._counter >= this.delay) { this._counter = 0; this._areaPixels.lock(); var cTrans = new openfl_geom_ColorTransform(this.redMultiplier,this.greenMultiplier,this.blueMultiplier,this.alphaMultiplier,this.redOffset,this.greenOffset,this.blueOffset,this.alphaOffset); this._areaPixels.colorTransform(new openfl_geom_Rectangle(0,0,this._areaPixels.width,this._areaPixels.height),cTrans); var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member.exists) { var finalX = member.x - this.x - member.offset.x; var finalY = member.y - this.y - member.offset.y; if(this.simpleRender) { this._areaPixels.copyPixels(member.updateFramePixels(),new openfl_geom_Rectangle(0,0,member.frameWidth,member.frameHeight),new openfl_geom_Point(finalX,finalY),null,null,true); } else { var scaled = member.scale.x != 1 || member.scale.y != 1; var rotated = member.angle != 0 && member.bakedRotationAngle <= 0; this._matrix.identity(); if(rotated || scaled) { this._matrix.translate(-member.origin.x,-member.origin.y); if(scaled) { this._matrix.scale(member.scale.x,member.scale.y); } if(rotated) { this._matrix.rotate(member.angle * (Math.PI / 180)); } this._matrix.translate(member.origin.x,member.origin.y); } this._matrix.translate(finalX,finalY); this._areaPixels.draw(member.updateFramePixels(),this._matrix,member.colorTransform,this.blendMode,null,this.antialiasing); } } } this._areaPixels.unlock(); this.set_pixels(this._areaPixels); } flixel_FlxSprite.prototype.draw.call(this); } ,resetTrail: function() { this._areaPixels.fillRect(new openfl_geom_Rectangle(0,0,this._areaPixels.width,this._areaPixels.height),0); } ,add: function(Sprite) { return this.group.add(Sprite); } ,get_width: function() { return this._width; } ,set_width: function(Width) { if(Width <= 0) { Width = flixel_FlxG.width; } if(Width != this._width) { this._areaPixels = new openfl_display_BitmapData(Width | 0,this._height | 0,true,0); } return this._width = Width; } ,get_height: function() { return this._height; } ,set_height: function(Height) { if(Height <= 0) { Height = flixel_FlxG.height; } if(Height != this._height) { this._areaPixels = new openfl_display_BitmapData(this._width | 0,Height | 0,true,0); } return this._height = Height; } ,__class__: flixel_addons_effects_FlxTrailArea }); var flixel_addons_effects_chainable_FlxEffectSprite = function(Target,Effects) { this.updateTargetAnimation = true; this.effectsEnabled = true; flixel_FlxSprite.call(this); this.target = Target; this.effects = Effects != null ? Effects : []; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._effectOffset = point; }; $hxClasses["flixel.addons.effects.chainable.FlxEffectSprite"] = flixel_addons_effects_chainable_FlxEffectSprite; flixel_addons_effects_chainable_FlxEffectSprite.__name__ = "flixel.addons.effects.chainable.FlxEffectSprite"; flixel_addons_effects_chainable_FlxEffectSprite.__super__ = flixel_FlxSprite; flixel_addons_effects_chainable_FlxEffectSprite.prototype = $extend(flixel_FlxSprite.prototype,{ effectsEnabled: null ,target: null ,updateTargetAnimation: null ,effects: null ,_effectOffset: null ,destroy: function() { this.effects = flixel_util_FlxDestroyUtil.destroyArray(this.effects); this._effectOffset = flixel_util_FlxDestroyUtil.put(this._effectOffset); this.target = null; flixel_FlxSprite.prototype.destroy.call(this); } ,getScreenPosition: function(point,Camera) { var this1 = flixel_FlxSprite.prototype.getScreenPosition.call(this,point,Camera); var point = this._effectOffset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } return this1; } ,draw: function() { if(this.target.dirty) { this.target.drawFrame(); } if(this.target.framePixels == null) { flixel_FlxSprite.prototype.draw.call(this); return; } if(this.get_pixels() != null && this.get_pixels().width == this.target.framePixels.width && this.get_pixels().height == this.target.framePixels.height) { this.get_pixels().fillRect(this.get_pixels().rect,0); this.get_pixels().draw(this.target.framePixels); } else { flixel_util_FlxDestroyUtil.dispose(this.get_pixels()); this.set_pixels(this.target.framePixels.clone()); } var this1 = this._effectOffset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.effectsEnabled) { this.get_pixels().lock(); var _g = 0; var _g1 = this.effects; while(_g < _g1.length) { var effect = _g1[_g]; ++_g; if(effect.active) { this.set_pixels(effect.apply(this.get_pixels())); if(effect.offset != null) { var this1 = this._effectOffset; var point = effect.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } } } } this.get_pixels().unlock(); this._flashRect = this.get_pixels().rect; } flixel_FlxSprite.prototype.draw.call(this); } ,update: function(elapsed) { if(this.updateTargetAnimation && this.target.animation._sprite.get_numFrames() > 1) { this.target.updateAnimation(elapsed); } if(this.effectsEnabled) { var _g = 0; var _g1 = this.effects; while(_g < _g1.length) { var effect = _g1[_g]; ++_g; if(effect.active) { effect.update(elapsed); } } } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,__class__: flixel_addons_effects_chainable_FlxEffectSprite }); var flixel_addons_effects_chainable_IFlxEffect = function() { }; $hxClasses["flixel.addons.effects.chainable.IFlxEffect"] = flixel_addons_effects_chainable_IFlxEffect; flixel_addons_effects_chainable_IFlxEffect.__name__ = "flixel.addons.effects.chainable.IFlxEffect"; flixel_addons_effects_chainable_IFlxEffect.__isInterface__ = true; flixel_addons_effects_chainable_IFlxEffect.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_effects_chainable_IFlxEffect.prototype = { active: null ,offset: null ,update: null ,apply: null ,__class__: flixel_addons_effects_chainable_IFlxEffect }; var flixel_addons_effects_chainable_FlxGlitchEffect = function(Strength,Size,Delay,Direction) { if(Delay == null) { Delay = 0.05; } if(Size == null) { Size = 1; } if(Strength == null) { Strength = 4; } this._flashRect = new openfl_geom_Rectangle(); this._flashPoint = new openfl_geom_Point(); this._time = 0; this.strength = 2; this.delay = 0.05; this.size = 1; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.active = true; this.strength = Strength; this.size = Size; this.delay = Delay; this.direction = Direction != null ? Direction : flixel_addons_effects_chainable_FlxGlitchDirection.HORIZONTAL; }; $hxClasses["flixel.addons.effects.chainable.FlxGlitchEffect"] = flixel_addons_effects_chainable_FlxGlitchEffect; flixel_addons_effects_chainable_FlxGlitchEffect.__name__ = "flixel.addons.effects.chainable.FlxGlitchEffect"; flixel_addons_effects_chainable_FlxGlitchEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect]; flixel_addons_effects_chainable_FlxGlitchEffect.prototype = { active: null ,offset: null ,size: null ,delay: null ,direction: null ,strength: null ,_time: null ,_flashPoint: null ,_flashRect: null ,_pixels: null ,destroy: function() { this._flashPoint = null; this._flashRect = null; this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this._pixels = flixel_util_FlxDestroyUtil.dispose(this._pixels); } ,update: function(elapsed) { if(this._time > this.delay) { this._time = 0; } else { this._time += elapsed; } } ,apply: function(bitmapData) { if(this._time == 0) { this._time = 0; var horizontalStrength = this.direction == flixel_addons_effects_chainable_FlxGlitchDirection.HORIZONTAL ? this.strength : 0; var verticalStrength = this.direction == flixel_addons_effects_chainable_FlxGlitchDirection.VERTICAL ? this.strength : 0; var this1 = this.offset; var x = -horizontalStrength; var y = -verticalStrength; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this._pixels == null || this._pixels.width < bitmapData.width + horizontalStrength * 2 || this._pixels.height < bitmapData.height + verticalStrength * 2) { flixel_util_FlxDestroyUtil.dispose(this._pixels); this._pixels = new openfl_display_BitmapData(bitmapData.width + horizontalStrength * 2,bitmapData.height + verticalStrength * 2,true,0); } else { this._pixels.fillRect(this._pixels.rect,0); } var p = 0; if(this.direction == flixel_addons_effects_chainable_FlxGlitchDirection.HORIZONTAL) { while(p < bitmapData.height) { this._flashRect.setTo(0,p,bitmapData.width,this.size); if(this._flashRect.get_bottom() > bitmapData.height) { this._flashRect.set_bottom(bitmapData.height); } this._flashPoint.setTo(flixel_FlxG.random.int(-this.strength,this.strength) + this.strength,p); p += this._flashRect.height | 0; this._pixels.copyPixels(bitmapData,this._flashRect,this._flashPoint); } } else { while(p < bitmapData.width) { this._flashRect.setTo(p,0,this.size,bitmapData.height); if(this._flashRect.get_right() > bitmapData.width) { this._flashRect.set_right(bitmapData.width); } this._flashPoint.setTo(p,flixel_FlxG.random.int(-this.strength,this.strength) + this.strength); p += this._flashRect.width | 0; this._pixels.copyPixels(bitmapData,this._flashRect,this._flashPoint); } } } if(this._pixels != null) { flixel_util_FlxDestroyUtil.dispose(bitmapData); return this._pixels.clone(); } return bitmapData; } ,__class__: flixel_addons_effects_chainable_FlxGlitchEffect }; var flixel_addons_effects_chainable_FlxGlitchDirection = $hxEnums["flixel.addons.effects.chainable.FlxGlitchDirection"] = { __ename__:"flixel.addons.effects.chainable.FlxGlitchDirection",__constructs__:null ,HORIZONTAL: {_hx_name:"HORIZONTAL",_hx_index:0,__enum__:"flixel.addons.effects.chainable.FlxGlitchDirection",toString:$estr} ,VERTICAL: {_hx_name:"VERTICAL",_hx_index:1,__enum__:"flixel.addons.effects.chainable.FlxGlitchDirection",toString:$estr} }; flixel_addons_effects_chainable_FlxGlitchDirection.__constructs__ = [flixel_addons_effects_chainable_FlxGlitchDirection.HORIZONTAL,flixel_addons_effects_chainable_FlxGlitchDirection.VERTICAL]; flixel_addons_effects_chainable_FlxGlitchDirection.__empty_constructs__ = [flixel_addons_effects_chainable_FlxGlitchDirection.HORIZONTAL,flixel_addons_effects_chainable_FlxGlitchDirection.VERTICAL]; var flixel_addons_effects_chainable_FlxOutlineEffect = function(Mode,Color,Thickness,Threshold,Quality) { if(Quality == null) { Quality = 1; } if(Threshold == null) { Threshold = 0; } if(Thickness == null) { Thickness = 1; } if(Color == null) { Color = -1; } this._matrix = new openfl_geom_Matrix(); this._flashPoint = new openfl_geom_Point(); this.dirty = true; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.active = true; this.mode = Mode == null ? flixel_addons_effects_chainable_FlxOutlineMode.FAST : Mode; this.color = Color; this.thickness = Thickness; this.threshold = Threshold; this.quality = Quality; }; $hxClasses["flixel.addons.effects.chainable.FlxOutlineEffect"] = flixel_addons_effects_chainable_FlxOutlineEffect; flixel_addons_effects_chainable_FlxOutlineEffect.__name__ = "flixel.addons.effects.chainable.FlxOutlineEffect"; flixel_addons_effects_chainable_FlxOutlineEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect]; flixel_addons_effects_chainable_FlxOutlineEffect.prototype = { active: null ,offset: null ,dirty: null ,mode: null ,color: null ,thickness: null ,threshold: null ,quality: null ,_pixels: null ,_borderPixels: null ,_flashPoint: null ,_matrix: null ,destroy: function() { this._pixels = flixel_util_FlxDestroyUtil.dispose(this._pixels); this._borderPixels = flixel_util_FlxDestroyUtil.dispose(this._borderPixels); this._flashPoint = null; this._matrix = null; this.offset = flixel_util_FlxDestroyUtil.put(this.offset); } ,update: function(elapsed) { } ,apply: function(bitmapData) { if(this.dirty) { var brush = this.thickness * 2; if(this._pixels == null || this._pixels.width < bitmapData.width + brush || this._pixels.height < bitmapData.height + brush) { flixel_util_FlxDestroyUtil.dispose(this._pixels); this._pixels = new openfl_display_BitmapData(bitmapData.width + brush,bitmapData.height + brush,true,this.color); } else { this._pixels.fillRect(this._pixels.rect,this.color); } if(this.mode == flixel_addons_effects_chainable_FlxOutlineMode.PIXEL_BY_PIXEL) { this.drawPixelByPixel(bitmapData); } else { if(this._borderPixels == null || this._borderPixels.width < bitmapData.width || this._borderPixels.height < bitmapData.height) { flixel_util_FlxDestroyUtil.dispose(this._borderPixels); this._borderPixels = new openfl_display_BitmapData(bitmapData.width,bitmapData.height,true,0); } else { this._borderPixels.fillRect(this._borderPixels.rect,0); } this._flashPoint.setTo(0,0); this._borderPixels.copyPixels(this._pixels,this._pixels.rect,this._flashPoint,bitmapData,null,true); this._pixels.fillRect(this._pixels.rect,0); this._matrix.identity(); this._matrix.translate(this.thickness,this.thickness); var iterations = Math.max(1,this.thickness * this.quality) | 0; switch(this.mode._hx_index) { case 0: this.drawFast(iterations); break; case 1: this.drawNormal(iterations); break; case 2: break; } } this.dirty = false; } if(this._pixels != null) { var this1 = this.offset; var x = -this.thickness; var y = -this.thickness; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._flashPoint.setTo(this.thickness,this.thickness); this._pixels.copyPixels(bitmapData,bitmapData.rect,this._flashPoint,null,null,true); flixel_util_FlxDestroyUtil.dispose(bitmapData); return this._pixels.clone(); } return bitmapData; } ,drawPixelByPixel: function(bitmapData) { this._pixels.fillRect(this._pixels.rect,0); var _g = 0; var _g1 = bitmapData.height; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = bitmapData.width; while(_g2 < _g3) { var x = _g2++; var c = bitmapData.getPixel32(x,y); if((c >> 24 & 255) > this.threshold) { this.surroundPixel(x,y,this.thickness * 2); } } } } ,drawNormal: function(iterations) { var delta = this.thickness / iterations; var curDelta = delta; var _g = 0; var _g1 = iterations; while(_g < _g1) { var i = _g++; this._matrix.translate(-curDelta,-curDelta); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(curDelta,0); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(curDelta,0); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(0,curDelta); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(0,curDelta); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(-curDelta,0); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(-curDelta,0); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(0,-curDelta); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(curDelta,0); curDelta += delta; } } ,drawFast: function(iterations) { var delta = this.thickness / iterations; var curDelta = delta; var _g = 0; var _g1 = iterations; while(_g < _g1) { var i = _g++; this._matrix.translate(-curDelta,-curDelta); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(curDelta * 2,0); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(0,curDelta * 2); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(-curDelta * 2,0); this._pixels.draw(this._borderPixels,this._matrix); this._matrix.translate(curDelta,-curDelta); curDelta += delta; } } ,drawBorder: function(x,y) { this._matrix.translate(x,y); this._pixels.draw(this._borderPixels,this._matrix); } ,surroundPixel: function(x,y,brush) { this._pixels.fillRect(new openfl_geom_Rectangle(x,y,brush,brush),this.color); return this._pixels; } ,__class__: flixel_addons_effects_chainable_FlxOutlineEffect }; var flixel_addons_effects_chainable_FlxOutlineMode = $hxEnums["flixel.addons.effects.chainable.FlxOutlineMode"] = { __ename__:"flixel.addons.effects.chainable.FlxOutlineMode",__constructs__:null ,FAST: {_hx_name:"FAST",_hx_index:0,__enum__:"flixel.addons.effects.chainable.FlxOutlineMode",toString:$estr} ,NORMAL: {_hx_name:"NORMAL",_hx_index:1,__enum__:"flixel.addons.effects.chainable.FlxOutlineMode",toString:$estr} ,PIXEL_BY_PIXEL: {_hx_name:"PIXEL_BY_PIXEL",_hx_index:2,__enum__:"flixel.addons.effects.chainable.FlxOutlineMode",toString:$estr} }; flixel_addons_effects_chainable_FlxOutlineMode.__constructs__ = [flixel_addons_effects_chainable_FlxOutlineMode.FAST,flixel_addons_effects_chainable_FlxOutlineMode.NORMAL,flixel_addons_effects_chainable_FlxOutlineMode.PIXEL_BY_PIXEL]; flixel_addons_effects_chainable_FlxOutlineMode.__empty_constructs__ = [flixel_addons_effects_chainable_FlxOutlineMode.FAST,flixel_addons_effects_chainable_FlxOutlineMode.NORMAL,flixel_addons_effects_chainable_FlxOutlineMode.PIXEL_BY_PIXEL]; var flixel_addons_effects_chainable_FlxRainbowEffect = function(Alpha,Brightness,Speed,StartHue) { if(StartHue == null) { StartHue = 0; } if(Speed == null) { Speed = 5; } if(Brightness == null) { Brightness = 1; } if(Alpha == null) { Alpha = 1; } this._flashPoint = new openfl_geom_Point(); this._time = 0; this._hue = 0; this.brightness = 1; this.alpha = 1; this.speed = 5; this.active = true; this.alpha = Alpha; this.brightness = Brightness; this.speed = Speed; var lowerBound = StartHue < 0 ? 0 : StartHue; this._time = this._hue = (lowerBound > 360 ? 360 : lowerBound) | 0; }; $hxClasses["flixel.addons.effects.chainable.FlxRainbowEffect"] = flixel_addons_effects_chainable_FlxRainbowEffect; flixel_addons_effects_chainable_FlxRainbowEffect.__name__ = "flixel.addons.effects.chainable.FlxRainbowEffect"; flixel_addons_effects_chainable_FlxRainbowEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect]; flixel_addons_effects_chainable_FlxRainbowEffect.prototype = { active: null ,offset: null ,speed: null ,alpha: null ,brightness: null ,_hue: null ,_time: null ,_flashPoint: null ,_pixels: null ,destroy: function() { this._flashPoint = null; this._pixels = flixel_util_FlxDestroyUtil.dispose(this._pixels); } ,update: function(elapsed) { this._time += this.speed; this._hue = this._time | 0; if(this._hue > 360) { this._hue = 0; this._time -= 360; } } ,apply: function(bitmapData) { if(this._pixels == null || this._pixels.width < bitmapData.width || this._pixels.height < bitmapData.height) { flixel_util_FlxDestroyUtil.dispose(this._pixels); this._pixels = new openfl_display_BitmapData(bitmapData.width,bitmapData.height,true,flixel_util_FlxColor.fromHSB(this._hue,1,this.brightness,this.alpha)); } else { this._pixels.fillRect(this._pixels.rect,flixel_util_FlxColor.fromHSB(this._hue,1,this.brightness,this.alpha)); } bitmapData.copyPixels(this._pixels,this._pixels.rect,this._flashPoint,bitmapData,null,true); return bitmapData; } ,__class__: flixel_addons_effects_chainable_FlxRainbowEffect }; var flixel_addons_effects_chainable_FlxShakeEffect = function(Intensity,Duration,OnComplete,Axes) { if(Duration == null) { Duration = 0.5; } if(Intensity == null) { Intensity = 5; } this._time = 0; this._duration = 0; this.axes = 17; this.intensity = 0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.active = true; this.intensity = Intensity; this._duration = Duration; this.onComplete = OnComplete; this.axes = Axes; }; $hxClasses["flixel.addons.effects.chainable.FlxShakeEffect"] = flixel_addons_effects_chainable_FlxShakeEffect; flixel_addons_effects_chainable_FlxShakeEffect.__name__ = "flixel.addons.effects.chainable.FlxShakeEffect"; flixel_addons_effects_chainable_FlxShakeEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect]; flixel_addons_effects_chainable_FlxShakeEffect.prototype = { active: null ,offset: null ,intensity: null ,onComplete: null ,axes: null ,_duration: null ,_time: null ,destroy: function() { this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this.onComplete = null; } ,update: function(elapsed) { if(this._time <= 0) { return; } this._time -= elapsed; if(this._time > 0) { if(this.axes != 16) { this.offset.set_x(flixel_FlxG.random.float(-this.intensity,this.intensity)); } if(this.axes != 1) { this.offset.set_y(flixel_FlxG.random.float(-this.intensity,this.intensity)); } } else { var this1 = this.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.onComplete != null) { this.onComplete(); } } } ,apply: function(bitmapData) { return bitmapData; } ,start: function(Force) { if(Force == null) { Force = false; } if(!Force && this._time > 0) { return; } this.reset(this.intensity,this._duration,this.onComplete,this.axes); } ,reset: function(Intensity,Duration,OnComplete,Axes) { if(Duration == null) { Duration = 0.5; } if(Intensity == null) { Intensity = 5; } if(Axes == null) { Axes = 17; } this.intensity = Intensity; this._duration = Duration; this._time = Duration; this.onComplete = OnComplete; this.axes = Axes; } ,__class__: flixel_addons_effects_chainable_FlxShakeEffect }; var flixel_addons_effects_chainable_FlxTrailEffect = function(Target,Length,Alpha,FramesDelay,CachePixels) { if(CachePixels == null) { CachePixels = true; } if(FramesDelay == null) { FramesDelay = 2; } if(Alpha == null) { Alpha = 0.5; } if(Length == null) { Length = 10; } this._colorTransform = new openfl_geom_ColorTransform(); this._matrix = new openfl_geom_Matrix(); this._currentFrames = 0; this._recentPixels = []; this._recentPositions = []; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.active = true; this.target = Target; this.set_length(1 > Length ? 1 : Length); this.framesDelay = FramesDelay; this.alpha = Alpha; this.set_cachePixels(CachePixels); }; $hxClasses["flixel.addons.effects.chainable.FlxTrailEffect"] = flixel_addons_effects_chainable_FlxTrailEffect; flixel_addons_effects_chainable_FlxTrailEffect.__name__ = "flixel.addons.effects.chainable.FlxTrailEffect"; flixel_addons_effects_chainable_FlxTrailEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect]; flixel_addons_effects_chainable_FlxTrailEffect.prototype = { active: null ,offset: null ,target: null ,length: null ,alpha: null ,framesDelay: null ,cachePixels: null ,_recentPositions: null ,_recentPixels: null ,_currentFrames: null ,_pixels: null ,_matrix: null ,_colorTransform: null ,destroy: function() { this.disposeCachedPixels(); this._recentPixels = null; this._recentPositions = flixel_util_FlxDestroyUtil.putArray(this._recentPositions); this._matrix = null; this._colorTransform = null; this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this._pixels = flixel_util_FlxDestroyUtil.dispose(this._pixels); } ,update: function(elapsed) { } ,updateRecents: function() { this._currentFrames++; if(this._currentFrames >= this.framesDelay) { var p = null; if(this._recentPositions.length >= this.length) { p = this._recentPositions.shift(); } else { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = this.target.x; var y = this.target.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); this._recentPositions.push(p); if(this.cachePixels) { if(this._recentPixels.length >= this.length) { flixel_util_FlxDestroyUtil.dispose(this._recentPixels.shift()); } this._recentPixels.push(this.target.get_pixels().clone()); } this._currentFrames = 0; } } ,apply: function(bitmapData) { this.updateRecents(); if(this._recentPositions.length < 1) { return bitmapData; } var minX = 0; var maxX = 0; var minY = 0; var maxY = 0; var ww = bitmapData.width; var hh = bitmapData.height; var _g = 0; var _g1 = this._recentPositions.length; while(_g < _g1) { var i = _g++; if(this.cachePixels) { ww = this._recentPixels[i].width; hh = this._recentPixels[i].height; } minX = Math.min(this._recentPositions[i].x - this.target.x,Math.min(minX,0)); minY = Math.min(this._recentPositions[i].y - this.target.y,Math.min(minY,0)); maxX = Math.max(this._recentPositions[i].x - this.target.x + ww,Math.max(maxX,0)); maxY = Math.max(this._recentPositions[i].y - this.target.y + hh,Math.max(maxY,0)); } var this1 = this.offset; var x = minX; var y = minY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(!this.cachePixels && minX == 0 && minY == 0 && maxX == 0 && maxY == 0) { return bitmapData; } if(this._pixels == null) { flixel_util_FlxDestroyUtil.dispose(this._pixels); this._pixels = new openfl_display_BitmapData(maxX - minX | 0,maxY - minY | 0,true,0); } else { var w = Math.max(this._pixels.width,maxX - minX) | 0; var h = Math.max(this._pixels.height,maxY - minY) | 0; if(this._pixels.width < w || this._pixels.height < h) { this._pixels = new openfl_display_BitmapData(w,h,true,0); } else { this._pixels.fillRect(this._pixels.rect,0); } } var alphaDiff = this.alpha / this._recentPositions.length; this._pixels.lock(); var _g = 0; var _g1 = this._recentPositions.length; while(_g < _g1) { var i = _g++; this._colorTransform.alphaMultiplier = alphaDiff * i; this._matrix.tx = this._recentPositions[i].x - this.target.x - this.offset.x; this._matrix.ty = this._recentPositions[i].y - this.target.y - this.offset.y; if(this.cachePixels || this._matrix.tx != 0 || this._matrix.ty != 0) { if(this.cachePixels && this._recentPixels.length > i) { this._pixels.draw(this._recentPixels[i],this._matrix,this._colorTransform); } else { this._pixels.draw(bitmapData,this._matrix,this._colorTransform); } } } this._matrix.tx = -this.offset.x; this._matrix.ty = -this.offset.y; this._pixels.draw(bitmapData,this._matrix); this._pixels.unlock(); flixel_util_FlxDestroyUtil.dispose(bitmapData); return this._pixels.clone(); } ,clear: function() { if(this._recentPositions.length > 0) { flixel_util_FlxDestroyUtil.putArray(this._recentPositions); this.disposeCachedPixels(); } } ,disposeCachedPixels: function() { while(this._recentPixels.length > 0) flixel_util_FlxDestroyUtil.dispose(this._recentPixels.shift()); } ,set_length: function(Value) { if(1 > Value) { Value = 1; } while(Value < this._recentPositions.length) { this._recentPositions.shift(); if(this._recentPixels.length > this._recentPositions.length) { this._recentPixels.shift(); } } return this.length = Value; } ,set_cachePixels: function(Value) { if(!Value) { this.disposeCachedPixels(); } return this.cachePixels = Value; } ,__class__: flixel_addons_effects_chainable_FlxTrailEffect ,__properties__: {set_cachePixels:"set_cachePixels",set_length:"set_length"} }; var flixel_addons_effects_chainable_FlxWaveEffect = function(Mode,Strength,Center,Speed,Wavelength,Direction,InterlaceOffset) { if(InterlaceOffset == null) { InterlaceOffset = 0; } if(Wavelength == null) { Wavelength = 5; } if(Speed == null) { Speed = 3; } if(Center == null) { Center = 0.5; } if(Strength == null) { Strength = 10; } this._flashRect = new openfl_geom_Rectangle(); this._flashPoint = new openfl_geom_Point(); this._time = 0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.active = true; this.strength = Strength; this.mode = Mode == null ? flixel_addons_effects_chainable_FlxWaveMode.ALL : Mode; this.speed = Speed; this.wavelength = Wavelength; this.direction = Direction != null ? Direction : flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL; this.center = Center; this.set_interlaceOffset(InterlaceOffset); }; $hxClasses["flixel.addons.effects.chainable.FlxWaveEffect"] = flixel_addons_effects_chainable_FlxWaveEffect; flixel_addons_effects_chainable_FlxWaveEffect.__name__ = "flixel.addons.effects.chainable.FlxWaveEffect"; flixel_addons_effects_chainable_FlxWaveEffect.__interfaces__ = [flixel_addons_effects_chainable_IFlxEffect]; flixel_addons_effects_chainable_FlxWaveEffect.prototype = { active: null ,offset: null ,mode: null ,speed: null ,center: null ,direction: null ,wavelength: null ,strength: null ,interlaceOffset: null ,_time: null ,_flashPoint: null ,_flashRect: null ,_pixels: null ,destroy: function() { this._flashPoint = null; this._flashRect = null; this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this._pixels = flixel_util_FlxDestroyUtil.dispose(this._pixels); } ,update: function(elapsed) { this._time += elapsed * this.speed; } ,apply: function(bitmapData) { var horizontalStrength = this.direction == flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL ? this.strength : 0; var verticalStrength = this.direction == flixel_addons_effects_chainable_FlxWaveDirection.VERTICAL ? this.strength : 0; var this1 = this.offset; var x = -horizontalStrength; var y = -verticalStrength; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this._pixels == null || this._pixels.width < bitmapData.width + horizontalStrength * 2 || this._pixels.height < bitmapData.height + verticalStrength * 2) { flixel_util_FlxDestroyUtil.dispose(this._pixels); this._pixels = new openfl_display_BitmapData(bitmapData.width + horizontalStrength * 2,bitmapData.height + verticalStrength * 2,true,0); } else { this._pixels.fillRect(this._pixels.rect,0); } var length = this.direction == flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL ? bitmapData.height : bitmapData.width; var p = 0; while(p < length) { var pixelOffset = 0; var offsetP = length * this.center; var size = 1; switch(this.mode._hx_index) { case 0: offsetP = this.strength; break; case 1: if(p <= offsetP) { offsetP = (1 - p / offsetP) * this.strength; } else { size = length - p; offsetP = 0; } break; case 2: if(p >= offsetP) { offsetP = (1 - (1 - p / length) / (1 - this.center)) * this.strength; } else { size = Math.ceil(offsetP); offsetP = 0; } break; } var waveOffset = 0; if(this.interlaceOffset != 0 && this.interlaceOffset != 1 && ((p | 0) & 1) != 0) { waveOffset = Math.PI * 2 * this.interlaceOffset; } var n = p / this.wavelength + this._time + waveOffset; n *= 0.3183098862; if(n > 1) { n -= Math.ceil(n) >> 1 << 1; } else if(n < -1) { n += Math.ceil(-n) >> 1 << 1; } pixelOffset = offsetP * (n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6)))); if(this.direction == flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL) { this._flashPoint.setTo(this.strength + pixelOffset,p); this._flashRect.setTo(0,p,bitmapData.width,size); } else { this._flashPoint.setTo(p,this.strength + pixelOffset); this._flashRect.setTo(p,0,size,bitmapData.height); } this._pixels.copyPixels(bitmapData,this._flashRect,this._flashPoint); p += size; } flixel_util_FlxDestroyUtil.dispose(bitmapData); return this._pixels.clone(); } ,calculateOffset: function(p,length) { var waveOffset = 0; if(this.interlaceOffset != 0 && this.interlaceOffset != 1 && ((p | 0) & 1) != 0) { waveOffset = Math.PI * 2 * this.interlaceOffset; } var n = p / this.wavelength + this._time + waveOffset; n *= 0.3183098862; if(n > 1) { n -= Math.ceil(n) >> 1 << 1; } else if(n < -1) { n += Math.ceil(-n) >> 1 << 1; } if(n > 0) { return n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))); } else { return n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6))); } } ,set_interlaceOffset: function(InterlaceOffset) { var lowerBound = InterlaceOffset < 0 ? 0 : InterlaceOffset; return this.interlaceOffset = lowerBound > 1 ? 1 : lowerBound; } ,__class__: flixel_addons_effects_chainable_FlxWaveEffect ,__properties__: {set_interlaceOffset:"set_interlaceOffset"} }; var flixel_addons_effects_chainable_FlxWaveMode = $hxEnums["flixel.addons.effects.chainable.FlxWaveMode"] = { __ename__:"flixel.addons.effects.chainable.FlxWaveMode",__constructs__:null ,ALL: {_hx_name:"ALL",_hx_index:0,__enum__:"flixel.addons.effects.chainable.FlxWaveMode",toString:$estr} ,START: {_hx_name:"START",_hx_index:1,__enum__:"flixel.addons.effects.chainable.FlxWaveMode",toString:$estr} ,END: {_hx_name:"END",_hx_index:2,__enum__:"flixel.addons.effects.chainable.FlxWaveMode",toString:$estr} }; flixel_addons_effects_chainable_FlxWaveMode.__constructs__ = [flixel_addons_effects_chainable_FlxWaveMode.ALL,flixel_addons_effects_chainable_FlxWaveMode.START,flixel_addons_effects_chainable_FlxWaveMode.END]; flixel_addons_effects_chainable_FlxWaveMode.__empty_constructs__ = [flixel_addons_effects_chainable_FlxWaveMode.ALL,flixel_addons_effects_chainable_FlxWaveMode.START,flixel_addons_effects_chainable_FlxWaveMode.END]; var flixel_addons_effects_chainable_FlxWaveDirection = $hxEnums["flixel.addons.effects.chainable.FlxWaveDirection"] = { __ename__:"flixel.addons.effects.chainable.FlxWaveDirection",__constructs__:null ,HORIZONTAL: {_hx_name:"HORIZONTAL",_hx_index:0,__enum__:"flixel.addons.effects.chainable.FlxWaveDirection",toString:$estr} ,VERTICAL: {_hx_name:"VERTICAL",_hx_index:1,__enum__:"flixel.addons.effects.chainable.FlxWaveDirection",toString:$estr} }; flixel_addons_effects_chainable_FlxWaveDirection.__constructs__ = [flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL,flixel_addons_effects_chainable_FlxWaveDirection.VERTICAL]; flixel_addons_effects_chainable_FlxWaveDirection.__empty_constructs__ = [flixel_addons_effects_chainable_FlxWaveDirection.HORIZONTAL,flixel_addons_effects_chainable_FlxWaveDirection.VERTICAL]; var flixel_addons_plugin_FlxMouseControl = function() { flixel_FlxBasic.call(this); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; flixel_addons_plugin_FlxMouseControl._clickCoords = point; }; $hxClasses["flixel.addons.plugin.FlxMouseControl"] = flixel_addons_plugin_FlxMouseControl; flixel_addons_plugin_FlxMouseControl.__name__ = "flixel.addons.plugin.FlxMouseControl"; flixel_addons_plugin_FlxMouseControl.dragTarget = null; flixel_addons_plugin_FlxMouseControl.clickTarget = null; flixel_addons_plugin_FlxMouseControl.speedX = null; flixel_addons_plugin_FlxMouseControl.speedY = null; flixel_addons_plugin_FlxMouseControl.mouseZone = null; flixel_addons_plugin_FlxMouseControl._clickCoords = null; flixel_addons_plugin_FlxMouseControl.addToStack = function(Item) { if(flixel_addons_plugin_FlxMouseControl.mouseZone != null) { if(flixel_math_FlxMath.pointInFlxRect(Math.floor(flixel_FlxG.mouse.x),Math.floor(flixel_FlxG.mouse.y),flixel_addons_plugin_FlxMouseControl.mouseZone) == true) { flixel_addons_plugin_FlxMouseControl._clickStack.push(Item); } } else { flixel_addons_plugin_FlxMouseControl._clickStack.push(Item); } }; flixel_addons_plugin_FlxMouseControl.clear = function() { flixel_addons_plugin_FlxMouseControl._clickCoords = flixel_util_FlxDestroyUtil.put(flixel_addons_plugin_FlxMouseControl._clickCoords); flixel_addons_plugin_FlxMouseControl._hasClickTarget = false; if(flixel_addons_plugin_FlxMouseControl.clickTarget != null) { flixel_addons_plugin_FlxMouseControl.clickTarget.mouseReleasedHandler(); } flixel_addons_plugin_FlxMouseControl.clickTarget = null; flixel_addons_plugin_FlxMouseControl.isDragging = false; if(flixel_addons_plugin_FlxMouseControl.dragTarget != null) { flixel_addons_plugin_FlxMouseControl.dragTarget.stopDrag(); } flixel_addons_plugin_FlxMouseControl.speedX = 0; flixel_addons_plugin_FlxMouseControl.speedY = 0; flixel_addons_plugin_FlxMouseControl.dragTarget = null; flixel_addons_plugin_FlxMouseControl.mouseZone = null; flixel_addons_plugin_FlxMouseControl.linkToDeadZone = false; }; flixel_addons_plugin_FlxMouseControl.__super__ = flixel_FlxBasic; flixel_addons_plugin_FlxMouseControl.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_addons_plugin_FlxMouseControl.speedX = flixel_FlxG.mouse.screenX - flixel_addons_plugin_FlxMouseControl._oldX; flixel_addons_plugin_FlxMouseControl.speedY = flixel_FlxG.mouse.screenY - flixel_addons_plugin_FlxMouseControl._oldY; flixel_addons_plugin_FlxMouseControl._oldX = flixel_FlxG.mouse.screenX; flixel_addons_plugin_FlxMouseControl._oldY = flixel_FlxG.mouse.screenY; if(flixel_addons_plugin_FlxMouseControl._hasClickTarget) { var _this = flixel_FlxG.mouse._leftButton; if(_this.current == 1 || _this.current == 2) { if(flixel_addons_plugin_FlxMouseControl.isDragging == false && flixel_addons_plugin_FlxMouseControl.clickTarget.draggable == true && (flixel_addons_plugin_FlxMouseControl._clickCoords.x != flixel_FlxG.mouse.x || flixel_addons_plugin_FlxMouseControl._clickCoords.y != flixel_FlxG.mouse.y)) { flixel_addons_plugin_FlxMouseControl.isDragging = true; flixel_addons_plugin_FlxMouseControl.dragTarget = flixel_addons_plugin_FlxMouseControl.clickTarget; flixel_addons_plugin_FlxMouseControl.dragTarget.startDrag(); } } else { this.releaseMouse(); } if(flixel_addons_plugin_FlxMouseControl.linkToDeadZone == true) { if(flixel_math_FlxMath.mouseInFlxRect(false,flixel_FlxG.camera.deadzone) == false) { this.releaseMouse(); } } else if(flixel_math_FlxMath.mouseInFlxRect(true,flixel_addons_plugin_FlxMouseControl.mouseZone) == false) { this.releaseMouse(); } } else { var _this = flixel_FlxG.mouse._leftButton; if((_this.current == 1 || _this.current == 2) && flixel_addons_plugin_FlxMouseControl._clickStack.length > 0) { this.assignClickedSprite(); } } } ,releaseMouse: function() { flixel_addons_plugin_FlxMouseControl.clickTarget.mouseReleasedHandler(); flixel_addons_plugin_FlxMouseControl._hasClickTarget = false; flixel_addons_plugin_FlxMouseControl.clickTarget = null; flixel_addons_plugin_FlxMouseControl.isDragging = false; flixel_addons_plugin_FlxMouseControl.dragTarget = null; } ,assignClickedSprite: function() { if(flixel_addons_plugin_FlxMouseControl._clickStack.length > 1) { flixel_addons_plugin_FlxMouseControl._clickStack.sort($bind(this,this.sortHandler)); } flixel_addons_plugin_FlxMouseControl.clickTarget = flixel_addons_plugin_FlxMouseControl._clickStack.pop(); flixel_addons_plugin_FlxMouseControl._clickCoords = flixel_FlxG.mouse.getWorldPosition(null,flixel_addons_plugin_FlxMouseControl._clickCoords); flixel_addons_plugin_FlxMouseControl._hasClickTarget = true; flixel_addons_plugin_FlxMouseControl.clickTarget.mousePressedHandler(); flixel_addons_plugin_FlxMouseControl._clickStack = []; } ,sortHandler: function(Item1,Item2) { var prop1 = Reflect.getProperty(Item1,flixel_addons_plugin_FlxMouseControl.sortIndex); var prop2 = Reflect.getProperty(Item2,flixel_addons_plugin_FlxMouseControl.sortIndex); if(prop1 < prop2) { return flixel_addons_plugin_FlxMouseControl.sortOrder; } else if(prop1 > prop2) { return -flixel_addons_plugin_FlxMouseControl.sortOrder; } return 0; } ,destroy: function() { flixel_addons_plugin_FlxMouseControl.clear(); } ,__class__: flixel_addons_plugin_FlxMouseControl }); 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.__limeVector2 = null; 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 = { 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) { if(toCompare != null && toCompare.x == this.x) { return toCompare.y == this.y; } else { return false; } } ,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() { if(openfl_geom_Point.__limeVector2 == null) { openfl_geom_Point.__limeVector2 = new lime_math_Vector2(); } var _this = openfl_geom_Point.__limeVector2; _this.x = this.x; _this.y = this.y; return openfl_geom_Point.__limeVector2; } ,get_length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); } ,__class__: openfl_geom_Point ,__properties__: {get_length:"get_length"} }; var flixel_addons_plugin_FlxScrollingText = function() { flixel_FlxBasic.call(this); }; $hxClasses["flixel.addons.plugin.FlxScrollingText"] = flixel_addons_plugin_FlxScrollingText; flixel_addons_plugin_FlxScrollingText.__name__ = "flixel.addons.plugin.FlxScrollingText"; flixel_addons_plugin_FlxScrollingText.add = function(bitmapText,region,pixels,steps,text,onlyScrollOnscreen,loopOnWrap) { if(loopOnWrap == null) { loopOnWrap = true; } if(onlyScrollOnscreen == null) { onlyScrollOnscreen = true; } if(steps == null) { steps = 0; } if(pixels == null) { pixels = 1; } var data = new flixel_addons_plugin_ScrollingTextData(); if(pixels <= 0) { pixels = 1; } data.bitmapText = bitmapText; if((text == "" || text == null) && (bitmapText.text == "" || bitmapText.text == null)) { bitmapText.set_text(" "); } else if(text != "" && text != null) { bitmapText.set_text(text); } bitmapText.drawFrame(true); data.shiftRect = new openfl_geom_Rectangle(0,0,region.width,region.height > bitmapText.frameHeight ? bitmapText.frameHeight : region.height); data.x = 0; data.sprite = new flixel_FlxSprite(region.x | 0,region.y | 0).makeGraphic(region.width | 0,region.height | 0,0,true); data.step = steps; data.maxStep = steps; data.pixels = pixels; data.wrap = loopOnWrap; data.complete = false; data.scrolling = true; data.onScreenScroller = onlyScrollOnscreen; flixel_addons_plugin_FlxScrollingText.scroll(data); flixel_addons_plugin_FlxScrollingText.members.set(data.sprite,data); return data.sprite; }; flixel_addons_plugin_FlxScrollingText.addText = function(source,text,overwrite) { if(overwrite == null) { overwrite = false; } var data = flixel_addons_plugin_FlxScrollingText.members.h[source.__id__]; if(overwrite) { data.bitmapText.set_text(text); } else { var fh = data.bitmapText; fh.set_text(fh.text + text); } data.bitmapText.drawFrame(true); }; flixel_addons_plugin_FlxScrollingText.scroll = function(data) { if(data.maxStep > 0 && data.step < data.maxStep) { data.step++; return; } else { data.step = 0; } var pixels = data.sprite.get_pixels(); pixels.fillRect(pixels.rect,0); data.shiftRect.x = data.x; if(data.shiftRect.get_right() > data.bitmapText.frameWidth) { var rw = data.shiftRect.width; data.shiftRect.width = data.bitmapText.frameWidth - data.x; pixels.copyPixels(data.bitmapText.framePixels,data.shiftRect,flixel_addons_plugin_FlxScrollingText.zeroPoint,null,null,true); data.shiftRect.width = rw; } else { pixels.copyPixels(data.bitmapText.framePixels,data.shiftRect,flixel_addons_plugin_FlxScrollingText.zeroPoint,null,null,true); } if(data.wrap && data.shiftRect.get_right() > data.bitmapText.frameWidth) { data.shiftRect.x = 0; flixel_addons_plugin_FlxScrollingText.zeroPoint.x = data.bitmapText.frameWidth - data.x; pixels.copyPixels(data.bitmapText.framePixels,data.shiftRect,flixel_addons_plugin_FlxScrollingText.zeroPoint,null,null,true); flixel_addons_plugin_FlxScrollingText.zeroPoint.x = 0; } if(data.complete == false) { data.x += data.pixels; if(data.x >= data.bitmapText.frameWidth) { if(data.wrap) { data.x = 0; } else { data.complete = true; data.scrolling = false; } if(data.complete == false) { data.x = 0; } } } data.sprite.set_pixels(pixels); }; flixel_addons_plugin_FlxScrollingText.clear = function() { var obj = flixel_addons_plugin_FlxScrollingText.members.iterator(); while(obj.hasNext()) { var obj1 = obj.next(); flixel_addons_plugin_FlxScrollingText.remove(obj1.sprite); } }; flixel_addons_plugin_FlxScrollingText.startScrolling = function(source) { if(source != null) { flixel_addons_plugin_FlxScrollingText.members.h[source.__id__].scrolling = true; } else { var obj = flixel_addons_plugin_FlxScrollingText.members.iterator(); while(obj.hasNext()) { var obj1 = obj.next(); obj1.scrolling = true; } } }; flixel_addons_plugin_FlxScrollingText.stopScrolling = function(source) { if(source != null) { flixel_addons_plugin_FlxScrollingText.members.h[source.__id__].scrolling = false; } else { var obj = flixel_addons_plugin_FlxScrollingText.members.iterator(); while(obj.hasNext()) { var obj1 = obj.next(); obj1.scrolling = false; } } }; flixel_addons_plugin_FlxScrollingText.isScrolling = function(source) { if(flixel_addons_plugin_FlxScrollingText.members.h[source.__id__] != null) { return flixel_addons_plugin_FlxScrollingText.members.h[source.__id__].scrolling; } return false; }; flixel_addons_plugin_FlxScrollingText.remove = function(source) { if(flixel_addons_plugin_FlxScrollingText.members.h.__keys__[source.__id__] != null) { var data = flixel_addons_plugin_FlxScrollingText.members.h[source.__id__]; data.destroy(); flixel_addons_plugin_FlxScrollingText.members.remove(source); return true; } return false; }; flixel_addons_plugin_FlxScrollingText.__super__ = flixel_FlxBasic; flixel_addons_plugin_FlxScrollingText.prototype = $extend(flixel_FlxBasic.prototype,{ draw: function() { var obj = flixel_addons_plugin_FlxScrollingText.members.iterator(); while(obj.hasNext()) { var obj1 = obj.next(); if(obj1 != null && (obj1.onScreenScroller == true && obj1.sprite.isOnScreen()) && obj1.scrolling == true && obj1.sprite.exists) { flixel_addons_plugin_FlxScrollingText.scroll(obj1); } } } ,destroy: function() { flixel_addons_plugin_FlxScrollingText.clear(); } ,__class__: flixel_addons_plugin_FlxScrollingText }); var flixel_addons_plugin_ScrollingTextData = function() { }; $hxClasses["flixel.addons.plugin.ScrollingTextData"] = flixel_addons_plugin_ScrollingTextData; flixel_addons_plugin_ScrollingTextData.__name__ = "flixel.addons.plugin.ScrollingTextData"; flixel_addons_plugin_ScrollingTextData.prototype = { bitmapText: null ,shiftRect: null ,x: null ,sprite: null ,step: null ,maxStep: null ,pixels: null ,wrap: null ,complete: null ,scrolling: null ,onScreenScroller: null ,destroy: function() { this.bitmapText = null; this.shiftRect = null; this.sprite = null; } ,__class__: flixel_addons_plugin_ScrollingTextData }; var flixel_addons_plugin_control_FlxControl = function() { flixel_FlxBasic.call(this); }; $hxClasses["flixel.addons.plugin.control.FlxControl"] = flixel_addons_plugin_control_FlxControl; flixel_addons_plugin_control_FlxControl.__name__ = "flixel.addons.plugin.control.FlxControl"; flixel_addons_plugin_control_FlxControl.player1 = null; flixel_addons_plugin_control_FlxControl.player2 = null; flixel_addons_plugin_control_FlxControl.player3 = null; flixel_addons_plugin_control_FlxControl.player4 = null; flixel_addons_plugin_control_FlxControl.create = function(Sprite,MovementType,StoppingType,Player,UpdateFacing,EnableArrowKeys) { if(EnableArrowKeys == null) { EnableArrowKeys = true; } if(UpdateFacing == null) { UpdateFacing = false; } if(Player == null) { Player = 1; } var result; if(Player == 1) { flixel_addons_plugin_control_FlxControl.player1 = new flixel_addons_plugin_control_FlxControlHandler(Sprite,MovementType,StoppingType,UpdateFacing,EnableArrowKeys); flixel_addons_plugin_control_FlxControl._members.set(flixel_addons_plugin_control_FlxControl.player1,flixel_addons_plugin_control_FlxControl.player1); result = flixel_addons_plugin_control_FlxControl.player1; } else if(Player == 2) { flixel_addons_plugin_control_FlxControl.player2 = new flixel_addons_plugin_control_FlxControlHandler(Sprite,MovementType,StoppingType,UpdateFacing,EnableArrowKeys); flixel_addons_plugin_control_FlxControl._members.set(flixel_addons_plugin_control_FlxControl.player2,flixel_addons_plugin_control_FlxControl.player2); result = flixel_addons_plugin_control_FlxControl.player2; } else if(Player == 3) { flixel_addons_plugin_control_FlxControl.player3 = new flixel_addons_plugin_control_FlxControlHandler(Sprite,MovementType,StoppingType,UpdateFacing,EnableArrowKeys); flixel_addons_plugin_control_FlxControl._members.set(flixel_addons_plugin_control_FlxControl.player3,flixel_addons_plugin_control_FlxControl.player3); result = flixel_addons_plugin_control_FlxControl.player3; } else if(Player == 4) { flixel_addons_plugin_control_FlxControl.player4 = new flixel_addons_plugin_control_FlxControlHandler(Sprite,MovementType,StoppingType,UpdateFacing,EnableArrowKeys); flixel_addons_plugin_control_FlxControl._members.set(flixel_addons_plugin_control_FlxControl.player4,flixel_addons_plugin_control_FlxControl.player4); result = flixel_addons_plugin_control_FlxControl.player4; } else { var newControlHandler = new flixel_addons_plugin_control_FlxControlHandler(Sprite,MovementType,StoppingType,UpdateFacing,EnableArrowKeys); flixel_addons_plugin_control_FlxControl._members.set(newControlHandler,newControlHandler); result = newControlHandler; } return result; }; flixel_addons_plugin_control_FlxControl.remove = function(ControlHandler) { if(flixel_addons_plugin_control_FlxControl._members.h.__keys__[ControlHandler.__id__] != null) { flixel_addons_plugin_control_FlxControl._members.remove(ControlHandler); return true; } return false; }; flixel_addons_plugin_control_FlxControl.clear = function() { var handler = flixel_addons_plugin_control_FlxControl._members.iterator(); while(handler.hasNext()) { var handler1 = handler.next(); flixel_addons_plugin_control_FlxControl._members.remove(handler1); } }; flixel_addons_plugin_control_FlxControl.start = function(ControlHandler) { if(ControlHandler != null) { flixel_addons_plugin_control_FlxControl._members.h[ControlHandler.__id__].enabled = true; } else { var handler = flixel_addons_plugin_control_FlxControl._members.iterator(); while(handler.hasNext()) { var handler1 = handler.next(); handler1.enabled = true; } } }; flixel_addons_plugin_control_FlxControl.stop = function(ControlHandler) { if(ControlHandler != null) { flixel_addons_plugin_control_FlxControl._members.h[ControlHandler.__id__].enabled = false; } else { var handler = flixel_addons_plugin_control_FlxControl._members.iterator(); while(handler.hasNext()) { var handler1 = handler.next(); handler1.enabled = false; } } }; flixel_addons_plugin_control_FlxControl.__super__ = flixel_FlxBasic; flixel_addons_plugin_control_FlxControl.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { var handler = flixel_addons_plugin_control_FlxControl._members.iterator(); while(handler.hasNext()) { var handler1 = handler.next(); if(handler1.enabled == true) { handler1.update(elapsed); } } } ,destroy: function() { flixel_addons_plugin_control_FlxControl.clear(); } ,__class__: flixel_addons_plugin_control_FlxControl }); var flixel_addons_plugin_control_FlxControlHandler = function(sprite,movementType,stoppingType,updateFacing,enableArrowKeys) { if(enableArrowKeys == null) { enableArrowKeys = true; } if(updateFacing == null) { updateFacing = false; } this._nextFireTime = 0; this._gravityY = 0; this._gravityX = 0; this._ySpeedAdjust = 0; this._xSpeedAdjust = 0; this._enforceAngleLimits = false; this._isRotating = false; this._thrustEnabled = false; this._right = false; this._left = false; this._down = false; this._up = false; this.enabled = false; this.isPressedRight = false; this.isPressedLeft = false; this.isPressedDown = false; this.isPressedUp = false; this._entity = sprite; this._movement = movementType; this._stopping = stoppingType; this._xFacing = updateFacing; this._yFacing = updateFacing; this._rotation = 0; this._rotationStopping = 0; if(enableArrowKeys) { this.setCursorControl(); } this.enabled = true; this.invertX = false; this.invertY = false; }; $hxClasses["flixel.addons.plugin.control.FlxControlHandler"] = flixel_addons_plugin_control_FlxControlHandler; flixel_addons_plugin_control_FlxControlHandler.__name__ = "flixel.addons.plugin.control.FlxControlHandler"; flixel_addons_plugin_control_FlxControlHandler.prototype = { isPressedUp: null ,isPressedDown: null ,isPressedLeft: null ,isPressedRight: null ,enabled: null ,_entity: null ,_bounds: null ,_up: null ,_down: null ,_left: null ,_right: null ,_fire: null ,_altFire: null ,_jump: null ,_altJump: null ,_xFacing: null ,_yFacing: null ,_rotateAntiClockwise: null ,_rotateClockwise: null ,_upMoveSpeed: null ,_downMoveSpeed: null ,_leftMoveSpeed: null ,_rightMoveSpeed: null ,_thrustSpeed: null ,_reverseSpeed: null ,_thrustEnabled: null ,_reverseEnabled: null ,_isRotating: null ,_antiClockwiseRotationSpeed: null ,_clockwiseRotationSpeed: null ,_enforceAngleLimits: null ,_minAngle: null ,_maxAngle: null ,_capAngularVelocity: null ,_xSpeedAdjust: null ,_ySpeedAdjust: null ,_gravityX: null ,_gravityY: null ,_fireRate: null ,_nextFireTime: null ,_lastFiredTime: null ,_fireKeyMode: null ,_fireCallback: null ,_jumpHeight: null ,_jumpRate: null ,_jumpKeyMode: null ,_nextJumpTime: null ,_lastJumpTime: null ,_jumpFromFallTime: null ,_extraSurfaceTime: null ,_jumpSurface: null ,_jumpCallback: null ,_movement: null ,_stopping: null ,_rotation: null ,_rotationStopping: null ,_capVelocity: null ,_hotkeys: null ,_upKey: null ,_downKey: null ,_leftKey: null ,_rightKey: null ,_fireKey: null ,_altFireKey: null ,_jumpKey: null ,_altJumpKey: null ,_antiClockwiseKey: null ,_clockwiseKey: null ,_thrustKey: null ,_reverseKey: null ,invertX: null ,invertY: null ,_jumpSound: null ,_fireSound: null ,_walkSound: null ,_thrustSound: null ,setMovementSpeed: function(speedX,speedY,speedMaxX,speedMaxY,decelerationX,decelerationY) { if(decelerationY == null) { decelerationY = 0; } if(decelerationX == null) { decelerationX = 0; } this._leftMoveSpeed = -speedX; this._rightMoveSpeed = speedX; this._upMoveSpeed = -speedY; this._downMoveSpeed = speedY; this.setMaximumSpeed(speedMaxX,speedMaxY); this.setDeceleration(decelerationX,decelerationY); } ,setStandardSpeed: function(speed,acceleration) { if(acceleration == null) { acceleration = true; } if(acceleration) { this.setMovementSpeed(speed,speed,speed,speed,speed,speed); } else { this.setMovementSpeed(speed,speed,speed,speed); } } ,setAdvancedMovementSpeed: function(leftSpeed,rightSpeed,upSpeed,downSpeed,speedMaxX,speedMaxY,decelerationX,decelerationY) { if(decelerationY == null) { decelerationY = 0; } if(decelerationX == null) { decelerationX = 0; } this._leftMoveSpeed = -leftSpeed; this._rightMoveSpeed = rightSpeed; this._upMoveSpeed = -upSpeed; this._downMoveSpeed = downSpeed; this.setMaximumSpeed(speedMaxX,speedMaxY); this.setDeceleration(decelerationX,decelerationY); } ,setRotationSpeed: function(antiClockwiseSpeed,clockwiseSpeed,speedMax,deceleration) { this._antiClockwiseRotationSpeed = -antiClockwiseSpeed; this._clockwiseRotationSpeed = clockwiseSpeed; this.setRotationKeys(); this.setMaximumRotationSpeed(speedMax); this.setRotationDeceleration(deceleration); } ,setRotationType: function(rotationType,stoppingType) { this._rotation = rotationType; this._rotationStopping = stoppingType; } ,setMaximumRotationSpeed: function(speed,limitVelocity) { if(limitVelocity == null) { limitVelocity = true; } this._entity.maxAngular = speed; this._capAngularVelocity = limitVelocity; } ,setRotationDeceleration: function(speed) { this._entity.angularDrag = speed; } ,setRotationLimits: function(minimumAngle,maximumAngle) { if(minimumAngle > maximumAngle || minimumAngle < -180 || maximumAngle > 180) { throw haxe_Exception.thrown("FlxControlHandler setRotationLimits: Invalid Minimum / Maximum angle"); } else { this._enforceAngleLimits = true; this._minAngle = minimumAngle; this._maxAngle = maximumAngle; } } ,disableRotationLimits: function() { this._enforceAngleLimits = false; } ,setRotationKeys: function(leftRight,upDown,customAntiClockwise,customClockwise) { if(customClockwise == null) { customClockwise = ""; } if(customAntiClockwise == null) { customAntiClockwise = ""; } if(upDown == null) { upDown = false; } if(leftRight == null) { leftRight = true; } this._isRotating = true; this._rotateAntiClockwise = true; this._rotateClockwise = true; this._antiClockwiseKey = "LEFT"; this._clockwiseKey = "RIGHT"; if(upDown) { this._antiClockwiseKey = "UP"; this._clockwiseKey = "DOWN"; } if(customAntiClockwise != "" && customClockwise != "") { this._antiClockwiseKey = customAntiClockwise; this._clockwiseKey = customClockwise; } } ,setThrust: function(thrustKey,thrustSpeed,reverseKey,reverseSpeed) { if(reverseSpeed == null) { reverseSpeed = 0; } this._thrustEnabled = false; this._reverseEnabled = false; if(thrustKey != "") { this._thrustKey = thrustKey; this._thrustSpeed = Math.floor(thrustSpeed); this._thrustEnabled = true; } if(reverseKey != null) { this._reverseKey = reverseKey; this._reverseSpeed = Math.floor(reverseSpeed); this._reverseEnabled = true; } } ,setMaximumSpeed: function(speedX,speedY,limitVelocity) { if(limitVelocity == null) { limitVelocity = true; } this._entity.maxVelocity.set_x(speedX); this._entity.maxVelocity.set_y(speedY); this._capVelocity = limitVelocity; } ,setDeceleration: function(speedX,speedY) { this._entity.drag.set_x(speedX); this._entity.drag.set_y(speedY); } ,setGravity: function(forceX,forceY) { this._gravityX = forceX; this._gravityY = forceY; this._entity.acceleration.set_x(this._gravityX); this._entity.acceleration.set_y(this._gravityY); } ,flipGravity: function() { var f = this._gravityX; if(!isNaN(f) && this._gravityX != 0) { this._gravityX = -this._gravityX; this._entity.acceleration.set_x(this._gravityX); } var f = this._gravityY; if(!isNaN(f) && this._gravityY != 0) { this._gravityY = -this._gravityY; this._entity.acceleration.set_y(this._gravityY); } } ,resetSpeeds: function(resetX,resetY) { if(resetY == null) { resetY = true; } if(resetX == null) { resetX = true; } if(resetX) { this._xSpeedAdjust = 0; } if(resetY) { this._ySpeedAdjust = 0; } } ,setSounds: function(jump,fire,walk,thrust) { if(jump != null) { this._jumpSound = jump; } if(fire != null) { this._fireSound = fire; } if(walk != null) { this._walkSound = walk; } if(thrust != null) { this._thrustSound = thrust; } } ,setFireButton: function(key,keymode,repeatDelay,callback,altKey) { if(altKey == null) { altKey = ""; } this._fireKey = key; this._fireKeyMode = keymode; this._fireRate = repeatDelay; this._fireCallback = callback; if(altKey != "") { this._altFireKey = altKey; } this._fire = true; } ,setJumpButton: function(key,keymode,height,surface,repeatDelay,jumpFromFall,callback,altKey) { if(altKey == null) { altKey = ""; } if(jumpFromFall == null) { jumpFromFall = 0; } if(repeatDelay == null) { repeatDelay = 250; } this._jumpKey = key; this._jumpKeyMode = keymode; this._jumpHeight = height; this._jumpSurface = surface; this._jumpRate = repeatDelay; this._jumpFromFallTime = jumpFromFall; this._jumpCallback = callback; if(altKey != "") { this._altJumpKey = altKey; } this._jump = true; } ,setBounds: function(x,y,width,height) { this._bounds = new openfl_geom_Rectangle(x,y,width,height); } ,removeBounds: function() { this._bounds = null; } ,moveUp: function() { var move = false; var _this = flixel_FlxG.keys; var KeyArray; if(this.invertY) { var s = this._downKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } else { var s = this._upKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } if(_this.checkKeyArrayState([KeyArray],1)) { move = true; this.isPressedUp = true; if(this._yFacing) { this._entity.set_facing(256); } if(this._movement == 0) { this._entity.velocity.set_y(this._upMoveSpeed); } else if(this._movement == 1) { this._entity.acceleration.set_y(this._upMoveSpeed); } if(this._bounds != null && this._entity.y < this._bounds.get_top()) { this._entity.set_y(this._bounds.get_top()); } } return move; } ,moveDown: function() { var move = false; var _this = flixel_FlxG.keys; var KeyArray; if(this.invertY) { var s = this._upKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } else { var s = this._downKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } if(_this.checkKeyArrayState([KeyArray],1)) { move = true; this.isPressedDown = true; if(this._yFacing) { this._entity.set_facing(4096); } if(this._movement == 0) { this._entity.velocity.set_y(this._downMoveSpeed); } else if(this._movement == 1) { this._entity.acceleration.set_y(this._downMoveSpeed); } if(this._bounds != null && this._entity.y > this._bounds.get_bottom()) { this._entity.set_y(this._bounds.get_bottom()); } } return move; } ,moveLeft: function() { var move = false; var _this = flixel_FlxG.keys; var KeyArray; if(this.invertX) { var s = this._rightKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } else { var s = this._leftKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } if(_this.checkKeyArrayState([KeyArray],1)) { move = true; this.isPressedLeft = true; if(this._xFacing) { this._entity.set_facing(1); } if(this._movement == 0) { this._entity.velocity.set_x(this._leftMoveSpeed); } else if(this._movement == 1) { this._entity.acceleration.set_x(this._leftMoveSpeed); } if(this._bounds != null && this._entity.x < this._bounds.x) { this._entity.set_x(this._bounds.x); } } return move; } ,moveRight: function() { var move = false; var _this = flixel_FlxG.keys; var KeyArray; if(this.invertX) { var s = this._leftKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } else { var s = this._rightKey; s = s.toUpperCase(); KeyArray = Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1; } if(_this.checkKeyArrayState([KeyArray],1)) { move = true; this.isPressedRight = true; if(this._xFacing) { this._entity.set_facing(16); } if(this._movement == 0) { this._entity.velocity.set_x(this._rightMoveSpeed); } else if(this._movement == 1) { this._entity.acceleration.set_x(this._rightMoveSpeed); } if(this._bounds != null && this._entity.x > this._bounds.get_right()) { this._entity.set_x(this._bounds.get_right()); } } return move; } ,moveAntiClockwise: function() { var move = false; var s = this._antiClockwiseKey; s = s.toUpperCase(); if(flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],1)) { move = true; if(this._rotation == 0) { this._entity.angularVelocity = this._antiClockwiseRotationSpeed; } else if(this._rotation == 1) { this._entity.angularAcceleration = this._antiClockwiseRotationSpeed; } var tmp = this._enforceAngleLimits; } return move; } ,moveClockwise: function() { var move = false; var s = this._clockwiseKey; s = s.toUpperCase(); if(flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],1)) { move = true; if(this._rotation == 0) { this._entity.angularVelocity = this._clockwiseRotationSpeed; } else if(this._rotation == 1) { this._entity.angularAcceleration = this._clockwiseRotationSpeed; } var tmp = this._enforceAngleLimits; } return move; } ,moveThrust: function() { var move = false; var s = this._thrustKey; s = s.toUpperCase(); if(flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],1)) { move = true; var Speed = this._thrustSpeed; var a = Math.floor(this._entity.angle) * (Math.PI / 180); var x = Math.cos(a) * Speed; var y = Math.sin(a) * Speed; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var motion = point; if(this._movement == 0) { this._entity.velocity.set_x(motion.x); this._entity.velocity.set_y(motion.y); } else if(this._movement == 1) { this._entity.acceleration.set_x(motion.x); this._entity.acceleration.set_y(motion.y); } if(this._bounds != null && this._entity.x < this._bounds.x) { this._entity.set_x(this._bounds.x); } } if(move && this._thrustSound != null) { this._thrustSound.play(false); } return move; } ,moveReverse: function() { var move = false; var s = this._reverseKey; s = s.toUpperCase(); if(flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],1)) { move = true; var Speed = this._reverseSpeed; var a = Math.floor(this._entity.angle) * (Math.PI / 180); var x = Math.cos(a) * Speed; var y = Math.sin(a) * Speed; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var motion = point; if(this._movement == 0) { this._entity.velocity.set_x(-motion.x); this._entity.velocity.set_y(-motion.y); } else if(this._movement == 1) { this._entity.acceleration.set_x(-motion.x); this._entity.acceleration.set_y(-motion.y); } if(this._bounds != null && this._entity.x < this._bounds.x) { this._entity.set_x(this._bounds.x); } } return move; } ,runFire: function() { var fired = false; var tmp; var tmp1; var tmp2; if(this._fireKeyMode == 0) { var s = this._fireKey; s = s.toUpperCase(); tmp2 = flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],1); } else { tmp2 = false; } if(!tmp2) { if(this._fireKeyMode == 1) { var s = this._fireKey; s = s.toUpperCase(); tmp1 = flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],2); } else { tmp1 = false; } } else { tmp1 = true; } if(!tmp1) { if(this._fireKeyMode == 2) { var s = this._fireKey; s = s.toUpperCase(); tmp = flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],-1); } else { tmp = false; } } else { tmp = true; } if(tmp) { if(this._fireRate > 0) { if(flixel_FlxG.game.ticks > this._nextFireTime) { this._lastFiredTime = flixel_FlxG.game.ticks; this._fireCallback(); fired = true; this._nextFireTime = this._lastFiredTime + (this._fireRate / flixel_FlxG.timeScale | 0); } } else { this._lastFiredTime = flixel_FlxG.game.ticks; this._fireCallback(); fired = true; } } if(fired && this._fireSound != null) { this._fireSound.play(true); } return fired; } ,runJump: function() { var jumped = false; if((this._entity.touching & this._jumpSurface) > 0) { this._extraSurfaceTime = flixel_FlxG.game.ticks + this._jumpFromFallTime; } var tmp; var tmp1; var tmp2; if(this._jumpKeyMode == 0) { var s = this._jumpKey; s = s.toUpperCase(); tmp2 = flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],1); } else { tmp2 = false; } if(!tmp2) { if(this._jumpKeyMode == 1) { var s = this._jumpKey; s = s.toUpperCase(); tmp1 = flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],2); } else { tmp1 = false; } } else { tmp1 = true; } if(!tmp1) { if(this._jumpKeyMode == 2) { var s = this._jumpKey; s = s.toUpperCase(); tmp = flixel_FlxG.keys.checkKeyArrayState([Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s) ? flixel_input_keyboard_FlxKey.fromStringMap.h[s] : -1],-1); } else { tmp = false; } } else { tmp = true; } if(tmp) { if((this._entity.touching & this._jumpSurface) > 0 == false) { if(flixel_FlxG.game.ticks > this._extraSurfaceTime) { return jumped; } else if(this._lastJumpTime > this._extraSurfaceTime - this._jumpFromFallTime) { return jumped; } if(flixel_FlxG.game.ticks < this._nextJumpTime) { return jumped; } } else if(flixel_FlxG.game.ticks < this._nextJumpTime) { return jumped; } if(this._gravityY > 0) { this._entity.velocity.set_y(-this._jumpHeight); } else { this._entity.velocity.set_y(this._jumpHeight); } if(this._jumpCallback != null) { this._jumpCallback(); } this._lastJumpTime = flixel_FlxG.game.ticks; this._nextJumpTime = this._lastJumpTime + (this._jumpRate / flixel_FlxG.timeScale | 0); jumped = true; } if(jumped && this._jumpSound != null) { this._jumpSound.play(true); } return jumped; } ,update: function(elapsed) { if(this._entity == null) { return; } this.isPressedUp = false; this.isPressedDown = false; this.isPressedLeft = false; this.isPressedRight = false; if(this._stopping == 0) { if(this._movement == 0) { this._entity.velocity.set_x(0); this._entity.velocity.set_y(0); } else if(this._movement == 1) { this._entity.acceleration.set_x(0); this._entity.acceleration.set_y(0); } } else if(this._stopping == 1) { if(this._movement == 0) { this._entity.velocity.set_x(0); this._entity.velocity.set_y(0); } else if(this._movement == 1) { this._entity.acceleration.set_x(this._gravityX); this._entity.acceleration.set_y(this._gravityY); } } if(this._isRotating) { if(this._rotationStopping == 0) { if(this._rotation == 0) { this._entity.angularVelocity = 0; } else if(this._rotation == 1) { this._entity.angularAcceleration = 0; } } else if(this._rotationStopping == 1) { if(this._rotation == 0) { this._entity.angularVelocity = 0; } } var hasRotatedAntiClockwise = false; var hasRotatedClockwise = false; hasRotatedAntiClockwise = this.moveAntiClockwise(); if(hasRotatedAntiClockwise == false) { hasRotatedClockwise = this.moveClockwise(); } if(this._rotationStopping == 1) { if(this._rotation == 1 && hasRotatedAntiClockwise == false && hasRotatedClockwise == false) { this._entity.angularAcceleration = 0; } } if(this._rotationStopping == 0 && this._rotation == 1 && hasRotatedAntiClockwise == false && hasRotatedClockwise == false) { this._entity.angularVelocity = 0; this._entity.angularAcceleration = 0; } } if(this._thrustEnabled || this._reverseEnabled) { var moved = false; if(this._thrustEnabled) { moved = this.moveThrust(); } if(moved == false && this._reverseEnabled) { moved = this.moveReverse(); } } else { var movedX = false; var movedY = false; if(this._up) { movedY = this.invertY ? this.moveDown() : this.moveUp(); } if(this._down && movedY == false) { movedY = this.invertY ? this.moveUp() : this.moveDown(); } if(this._left) { movedX = this.invertX ? this.moveRight() : this.moveLeft(); } if(this._right && movedX == false) { movedX = this.invertX ? this.moveLeft() : this.moveRight(); } if(movedX && movedY) { if(this._movement == 0) { var fh = this._entity; fh.velocity.set_x(fh.velocity.x * 0.707106781185); var fh = this._entity; fh.velocity.set_y(fh.velocity.y * 0.707106781185); } else if(this._movement == 1) { var fh = this._entity; fh.acceleration.set_x(fh.acceleration.x * 0.707106781185); var fh = this._entity; fh.acceleration.set_y(fh.acceleration.y * 0.707106781185); } } } if(this._fire) { this.runFire(); } if(this._jump) { this.runJump(); } if(this._capVelocity) { if(this._entity.velocity.x > this._entity.maxVelocity.x) { this._entity.velocity.set_x(this._entity.maxVelocity.x); } if(this._entity.velocity.y > this._entity.maxVelocity.y) { this._entity.velocity.set_y(this._entity.maxVelocity.y); } } if(this._walkSound != null) { if(this._movement == 0 && this._entity.velocity.x != 0 || this._movement == 1 && this._entity.acceleration.x != 0) { this._walkSound.play(false); } else { var _this = this._walkSound; _this.cleanup(_this.autoDestroy,true); } } } ,setCustomKeys: function(customUpKey,customDownKey,customLeftKey,customRightKey) { if(customUpKey != "") { this._up = true; this._upKey = customUpKey; } if(customDownKey != "") { this._down = true; this._downKey = customDownKey; } if(customLeftKey != "") { this._left = true; this._leftKey = customLeftKey; } if(customRightKey != "") { this._right = true; this._rightKey = customRightKey; } } ,setCursorControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "UP"; this._downKey = "DOWN"; this._leftKey = "LEFT"; this._rightKey = "RIGHT"; } ,setWASDControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "W"; this._downKey = "S"; this._leftKey = "A"; this._rightKey = "D"; } ,setESDFControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "E"; this._downKey = "D"; this._leftKey = "S"; this._rightKey = "F"; } ,setIJKLControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "I"; this._downKey = "K"; this._leftKey = "J"; this._rightKey = "L"; } ,setHJKLControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "K"; this._downKey = "J"; this._leftKey = "H"; this._rightKey = "L"; } ,setZQSDControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "Z"; this._downKey = "S"; this._leftKey = "Q"; this._rightKey = "D"; } ,setDvorakSimplifiedControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "COMMA"; this._downKey = "O"; this._leftKey = "A"; this._rightKey = "E"; } ,setNumpadControl: function(allowUp,allowDown,allowLeft,allowRight) { if(allowRight == null) { allowRight = true; } if(allowLeft == null) { allowLeft = true; } if(allowDown == null) { allowDown = true; } if(allowUp == null) { allowUp = true; } this._up = allowUp; this._down = allowDown; this._left = allowLeft; this._right = allowRight; this._upKey = "NUMPADEIGHT"; this._downKey = "NUMPADTWO"; this._leftKey = "NUMPADFOUR"; this._rightKey = "NUMPADSIX"; } ,__class__: flixel_addons_plugin_control_FlxControlHandler }; var flixel_addons_plugin_taskManager_FlxTask = function(Func,IgnoreCycle,Instant,Next) { if(Instant == null) { Instant = false; } if(IgnoreCycle == null) { IgnoreCycle = false; } this.func = Func; this.ignoreCycle = IgnoreCycle; this.instant = Instant; this.next = Next; }; $hxClasses["flixel.addons.plugin.taskManager.FlxTask"] = flixel_addons_plugin_taskManager_FlxTask; flixel_addons_plugin_taskManager_FlxTask.__name__ = "flixel.addons.plugin.taskManager.FlxTask"; flixel_addons_plugin_taskManager_FlxTask.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_plugin_taskManager_FlxTask.prototype = { func: null ,ignoreCycle: null ,instant: null ,next: null ,destroy: function() { this.next = flixel_util_FlxDestroyUtil.destroy(this.next); this.func = null; } ,__class__: flixel_addons_plugin_taskManager_FlxTask }; var flixel_addons_plugin_taskManager_FlxTaskManager = function(Cycle,OnComplete) { if(Cycle == null) { Cycle = false; } this._delay = 0; this._cycle = false; this.length = 0; flixel_FlxBasic.call(this); this._cycle = Cycle; this.onComplete = OnComplete; }; $hxClasses["flixel.addons.plugin.taskManager.FlxTaskManager"] = flixel_addons_plugin_taskManager_FlxTaskManager; flixel_addons_plugin_taskManager_FlxTaskManager.__name__ = "flixel.addons.plugin.taskManager.FlxTaskManager"; flixel_addons_plugin_taskManager_FlxTaskManager.__super__ = flixel_FlxBasic; flixel_addons_plugin_taskManager_FlxTaskManager.prototype = $extend(flixel_FlxBasic.prototype,{ onComplete: null ,length: null ,_taskList: null ,_cycle: null ,_delay: null ,destroy: function() { this.clear(); this.onComplete = null; this.kill(); } ,addTask: function(Function1,IgnoreCycle) { if(IgnoreCycle == null) { IgnoreCycle = false; } this.push(new flixel_addons_plugin_taskManager_FlxTask(Function1,IgnoreCycle,false)); } ,addInstantTask: function(Function1,IgnoreCycle) { if(IgnoreCycle == null) { IgnoreCycle = false; } this.push(new flixel_addons_plugin_taskManager_FlxTask(Function1,IgnoreCycle,true)); } ,addUrgentTask: function(Function1,IgnoreCycle) { if(IgnoreCycle == null) { IgnoreCycle = false; } this.unshift(new flixel_addons_plugin_taskManager_FlxTask(Function1,IgnoreCycle,false)); } ,addUrgentInstantTask: function(Function1,IgnoreCycle) { if(IgnoreCycle == null) { IgnoreCycle = false; } this.unshift(new flixel_addons_plugin_taskManager_FlxTask(Function1,IgnoreCycle,true)); } ,addPause: function(Delay,IgnoreCycle) { if(IgnoreCycle == null) { IgnoreCycle = false; } var _g = this; var Delay1 = Delay; this.addTask(function() { return _g.taskPause(Delay1); },IgnoreCycle); } ,clear: function() { this._taskList = flixel_util_FlxDestroyUtil.destroy(this._taskList); this._delay = 0; this.length = 0; } ,nextTask: function(IgnoreCycle) { if(IgnoreCycle == null) { IgnoreCycle = false; } if(this._cycle && !IgnoreCycle) { this.push(this.shift()); } else { flixel_util_FlxDestroyUtil.destroy(this.shift()); } } ,update: function(elapsed) { if(this._taskList != null) { var result = this._taskList.func(); if(this._taskList.instant || result) { this.nextTask(this._taskList.ignoreCycle); } } else if(this.onComplete != null) { this.onComplete(); } } ,taskPause: function(Delay) { this._delay += Delay; if(this._delay > Delay) { this._delay = 0; return true; } return false; } ,push: function(Task) { if(Task == null) { return null; } this.length++; if(this._taskList == null) { this._taskList = Task; return Task; } var cur = this._taskList; while(cur.next != null) cur = cur.next; cur.next = Task; return Task; } ,unshift: function(Task) { this.length++; if(this._taskList == null) { return Task; } var item = this._taskList; this._taskList = Task; this._taskList.next = item; return Task; } ,shift: function() { if(this._taskList == null) { return null; } var item = this._taskList; this._taskList = item.next; item.next = null; this.length--; return item; } ,__class__: flixel_addons_plugin_taskManager_FlxTaskManager }); var flixel_text_FlxText = function(X,Y,FieldWidth,Text1,Size,EmbeddedFont) { if(EmbeddedFont == null) { EmbeddedFont = true; } if(Size == null) { Size = 8; } if(FieldWidth == null) { FieldWidth = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._hasBorderAlpha = false; this._regen = true; this._formatRanges = []; this._autoHeight = true; this.borderQuality = 1; this.borderSize = 1; this.borderColor = 0; this.borderStyle = flixel_text_FlxTextBorderStyle.NONE; this.text = ""; flixel_FlxSprite.call(this,X,Y); if(Text1 == null || Text1 == "") { this.set_text(""); Text1 = " "; } else { this.set_text(Text1); } this.textField = new openfl_text_TextField(); this.textField.set_selectable(false); this.textField.set_multiline(true); this.textField.set_wordWrap(true); this._defaultFormat = new openfl_text_TextFormat(null,Size,16777215); this.set_letterSpacing(0); this.set_font(flixel_system_FlxAssets.FONT_DEFAULT); this._formatAdjusted = new openfl_text_TextFormat(); this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.set_text(Text1); this.set_fieldWidth(FieldWidth); this.textField.set_embedFonts(EmbeddedFont); this.textField.set_sharpness(100); this.textField.set_height(Text1.length <= 0 ? 1 : 10); this.set_allowCollisions(0); this.set_moves(false); this.drawFrame(); var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.shadowOffset = point; }; $hxClasses["flixel.text.FlxText"] = flixel_text_FlxText; flixel_text_FlxText.__name__ = "flixel.text.FlxText"; flixel_text_FlxText.__super__ = flixel_FlxSprite; flixel_text_FlxText.prototype = $extend(flixel_FlxSprite.prototype,{ text: null ,borderStyle: null ,borderColor: null ,borderSize: null ,borderQuality: null ,textField: null ,_autoHeight: null ,shadowOffset: null ,_defaultFormat: null ,_formatAdjusted: null ,_formatRanges: null ,_font: null ,_regen: null ,_borderPixels: null ,_borderColorTransform: null ,_hasBorderAlpha: null ,destroy: function() { this.textField = null; this._font = null; this._defaultFormat = null; this._formatAdjusted = null; this.shadowOffset = flixel_util_FlxDestroyUtil.put(this.shadowOffset); flixel_FlxSprite.prototype.destroy.call(this); } ,drawFrame: function(Force) { if(Force == null) { Force = false; } this._regen = this._regen || Force; flixel_FlxSprite.prototype.drawFrame.call(this,this._regen); } ,stampOnAtlas: function(atlas) { this.regenGraphic(); var node = atlas.addNode(this.graphic.bitmap,this.graphic.key); var result = node != null; if(node != null) { this.set_frames(node.getImageFrame()); } return result; } ,applyMarkup: function(input,rules) { if(rules == null || rules.length == 0) { return this; } this.clearFormats(); var rangeStarts = []; var rangeEnds = []; var rulesToApply = []; var i = 0; var _g = 0; while(_g < rules.length) { var rule = rules[_g]; ++_g; if(rule.marker == null || rule.format == null) { continue; } var start = false; var markerLength = UnicodeString.get_length(rule.marker); if(input.indexOf(rule.marker) == -1) { continue; } var _g1 = 0; var _g2 = UnicodeString.get_length(input); while(_g1 < _g2) { var charIndex = _g1++; if(UnicodeString.substr(input,charIndex,markerLength) != rule.marker) { continue; } if(start) { start = false; rangeEnds.push(charIndex); } else { start = true; rangeStarts.push(charIndex); rulesToApply.push(rule); } } if(start) { rangeEnds.push(-1); } ++i; } var _g = 0; while(_g < rules.length) { var rule = rules[_g]; ++_g; input = StringTools.replace(input,rule.marker,""); } var _g = 0; var _g1 = rangeStarts.length; while(_g < _g1) { var i = _g++; var delIndex = rangeStarts[i]; var markerLength = UnicodeString.get_length(rulesToApply[i].marker); var _g2 = 0; var _g3 = rangeStarts.length; while(_g2 < _g3) { var j = _g2++; if(rangeStarts[j] > delIndex) { rangeStarts[j] -= markerLength; } if(rangeEnds[j] > delIndex) { rangeEnds[j] -= markerLength; } } delIndex = rangeEnds[i]; var _g4 = 0; var _g5 = rangeStarts.length; while(_g4 < _g5) { var j1 = _g4++; if(rangeStarts[j1] > delIndex) { rangeStarts[j1] -= markerLength; } if(rangeEnds[j1] > delIndex) { rangeEnds[j1] -= markerLength; } } } this.set_text(input); var _g = 0; var _g1 = rangeStarts.length; while(_g < _g1) { var i = _g++; this.addFormat(rulesToApply[i].format,rangeStarts[i],rangeEnds[i]); } return this; } ,addFormat: function(Format,Start,End) { if(End == null) { End = -1; } if(Start == null) { Start = -1; } this._formatRanges.push(new flixel_text__$FlxText_FlxTextFormatRange(Format,Start,End)); this._formatRanges.sort(function(left,right) { if(left.range.start < right.range.start) { return -1; } else { return 1; } }); this._regen = true; return this; } ,removeFormat: function(Format,Start,End) { var i = this._formatRanges.length; while(i-- > 0) { var formatRange = this._formatRanges[i]; if(formatRange.format != Format) { continue; } if(Start != null && End != null) { var range = formatRange.range; if(Start >= range.end || End <= range.start) { continue; } if(Start > range.start && End < range.end) { this.addFormat(formatRange.format,End + 1,range.end); range.end = Start; continue; } if(Start <= range.start && End < range.end) { range.start = End; continue; } if(Start > range.start && End >= range.end) { range.end = Start; continue; } } HxOverrides.remove(this._formatRanges,formatRange); } this._regen = true; return this; } ,clearFormats: function() { this._formatRanges = []; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return this; } ,setFormat: function(Font,Size,Color,Alignment,BorderStyle,BorderColor,EmbeddedFont) { if(EmbeddedFont == null) { EmbeddedFont = true; } if(BorderColor == null) { BorderColor = 0; } if(Color == null) { Color = -1; } if(Size == null) { Size = 8; } if(BorderStyle == null) { BorderStyle = flixel_text_FlxTextBorderStyle.NONE; } if(EmbeddedFont) { this.set_font(Font); } else if(Font != null) { this.set_systemFont(Font); } this.set_size(Size); this.set_color(Color); if(Alignment != null) { this.set_alignment(Alignment); } var Color = BorderColor; if(Color == null) { Color = 0; } this.set_borderStyle(BorderStyle); this.set_borderColor(Color); this.set_borderSize(1); this.set_borderQuality(1); this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return this; } ,setBorderStyle: function(Style,Color,Size,Quality) { if(Quality == null) { Quality = 1; } if(Size == null) { Size = 1; } if(Color == null) { Color = 0; } this.set_borderStyle(Style); this.set_borderColor(Color); this.set_borderSize(Size); this.set_borderQuality(Quality); return this; } ,updateHitbox: function() { this.regenGraphic(); flixel_FlxSprite.prototype.updateHitbox.call(this); } ,getScreenBounds: function(newRect,camera) { this.regenGraphic(); return flixel_FlxSprite.prototype.getScreenBounds.call(this,newRect,camera); } ,set_fieldWidth: function(value) { if(this.textField == null) { return value; } if(value <= 0) { this.set_wordWrap(false); this.set_autoSize(true); this._autoHeight = true; } else { this.set_autoSize(false); this.set_wordWrap(true); this.textField.set_width(value); } this._regen = true; return value; } ,get_fieldWidth: function() { if(this.textField != null) { return this.textField.get_width(); } else { return 0; } } ,get_fieldHeight: function() { if(this.textField != null) { return this.textField.get_height(); } else { return 0; } } ,set_fieldHeight: function(value) { if(this.textField == null) { return value; } if(value <= 0) { this._autoHeight = true; } else { this._autoHeight = false; this.textField.set_height(value); } this._regen = true; return value; } ,set_autoSize: function(value) { if(this.textField != null) { this.textField.set_autoSize(value ? 1 : 2); this._regen = true; } return value; } ,get_autoSize: function() { if(this.textField != null) { return this.textField.get_autoSize() != 2; } else { return false; } } ,set_text: function(Text1) { this.text = Text1; if(this.textField != null) { var ot = this.textField.get_text(); this.textField.set_text(Text1); this._regen = this.textField.get_text() != ot || this._regen; } return Text1; } ,get_size: function() { return this._defaultFormat.size | 0; } ,set_size: function(Size) { this._defaultFormat.size = Size; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return Size; } ,get_letterSpacing: function() { return this._defaultFormat.letterSpacing; } ,set_letterSpacing: function(LetterSpacing) { this._defaultFormat.letterSpacing = LetterSpacing; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return LetterSpacing; } ,set_color: function(Color) { if(this._defaultFormat.color == (Color & 16777215)) { return Color; } this._defaultFormat.color = Color & 16777215; this.color = Color; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return Color; } ,get_font: function() { return this._font; } ,set_font: function(Font) { this.textField.set_embedFonts(true); if(Font != null) { var newFontName = Font; if(openfl_utils_Assets.exists(Font,"FONT")) { newFontName = openfl_utils_Assets.getFont(Font).name; } this._defaultFormat.font = newFontName; } else { this._defaultFormat.font = flixel_system_FlxAssets.FONT_DEFAULT; } this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return this._font = this._defaultFormat.font; } ,get_embedded: function() { return this.textField.get_embedFonts(); } ,get_systemFont: function() { return this._defaultFormat.font; } ,set_systemFont: function(Font) { this.textField.set_embedFonts(false); this._defaultFormat.font = Font; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return Font; } ,get_bold: function() { return this._defaultFormat.bold; } ,set_bold: function(value) { if(this._defaultFormat.bold != value) { this._defaultFormat.bold = value; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; } return value; } ,get_italic: function() { return this._defaultFormat.italic; } ,set_italic: function(value) { if(this._defaultFormat.italic != value) { this._defaultFormat.italic = value; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; } return value; } ,get_underline: function() { return this._defaultFormat.underline; } ,set_underline: function(value) { if(this._defaultFormat.underline != value) { this._defaultFormat.underline = value; this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; } return value; } ,get_wordWrap: function() { return this.textField.get_wordWrap(); } ,set_wordWrap: function(value) { if(this.textField.get_wordWrap() != value) { this.textField.set_wordWrap(value); this._regen = true; } return value; } ,get_alignment: function() { return flixel_text_FlxTextAlign.fromOpenFL(this._defaultFormat.align); } ,set_alignment: function(Alignment) { this._defaultFormat.align = flixel_text_FlxTextAlign.toOpenFL(Alignment); this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; return Alignment; } ,set_borderStyle: function(style) { if(style != this.borderStyle) { this._regen = true; } return this.borderStyle = style; } ,set_borderColor: function(Color) { if(this.borderColor != Color && this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) { this._regen = true; } this._hasBorderAlpha = (Color >> 24 & 255) / 255 < 1; return this.borderColor = Color; } ,set_borderSize: function(Value) { if(Value != this.borderSize && this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) { this._regen = true; } return this.borderSize = Value; } ,set_borderQuality: function(Value) { var lowerBound = Value < 0 ? 0 : Value; Value = lowerBound > 1 ? 1 : lowerBound; if(Value != this.borderQuality && this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) { this._regen = true; } return this.borderQuality = Value; } ,set_graphic: function(Value) { var oldGraphic = this.graphic; var graph = flixel_FlxSprite.prototype.set_graphic.call(this,Value); flixel_FlxG.bitmap.removeIfNoUse(oldGraphic); return graph; } ,get_width: function() { this.regenGraphic(); return flixel_FlxSprite.prototype.get_width.call(this); } ,get_height: function() { this.regenGraphic(); return flixel_FlxSprite.prototype.get_height.call(this); } ,updateColorTransform: function() { if(this.colorTransform == null) { this.colorTransform = new openfl_geom_ColorTransform(); } if(this.alpha != 1) { this.colorTransform.alphaMultiplier = this.alpha; this.useColorTransform = true; } else { this.colorTransform.alphaMultiplier = 1; this.useColorTransform = false; } this.dirty = true; } ,regenGraphic: function() { if(this.textField == null || !this._regen) { return; } var oldWidth = 0; var oldHeight = 4; if(this.graphic != null) { oldWidth = this.graphic.width; oldHeight = this.graphic.height; } var newWidth = Math.ceil(this.textField.get_width()); var textfieldHeight = this._autoHeight ? this.textField.get_textHeight() : this.textField.get_height(); var vertGutter = this._autoHeight ? 4 : 0; var newHeight = Math.ceil(textfieldHeight) + vertGutter; if(this.textField.get_textHeight() == 0) { newHeight = oldHeight; } if(oldWidth != newWidth || oldHeight != newHeight) { var key = flixel_FlxG.bitmap.getUniqueKey("text(" + this.text + ")"); this.makeGraphic(newWidth,newHeight,0,false,key); if(this._hasBorderAlpha) { this._borderPixels = this.graphic.bitmap.clone(); } if(this._autoHeight) { this.textField.set_height(newHeight); } this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = newWidth; this._flashRect.height = newHeight; } else { this.graphic.bitmap.fillRect(this._flashRect,0); if(this._hasBorderAlpha) { if(this._borderPixels == null) { this._borderPixels = new openfl_display_BitmapData(this.frameWidth,this.frameHeight,true); } else { this._borderPixels.fillRect(this._flashRect,0); } } } if(this.textField != null && this.textField.get_text() != null) { this.copyTextFormat(this._defaultFormat,this._formatAdjusted); this._matrix.identity(); this.applyBorderStyle(); if(this._hasBorderAlpha) { if(this._borderColorTransform == null) { this._borderColorTransform = new openfl_geom_ColorTransform(); } this._borderColorTransform.alphaMultiplier = (this.borderColor >> 24 & 255) / 255; this._borderPixels.colorTransform(this._borderPixels.rect,this._borderColorTransform); this.graphic.bitmap.draw(this._borderPixels); } this.applyFormats(this._formatAdjusted,false); this.drawTextFieldTo(this.graphic.bitmap); } this._regen = false; this.set_frame(this.frame); } ,drawTextFieldTo: function(graphic) { graphic.draw(this.textField,this._matrix); } ,draw: function() { this.regenGraphic(); flixel_FlxSprite.prototype.draw.call(this); } ,calcFrame: function(RunOnCpp) { if(RunOnCpp == null) { RunOnCpp = false; } if(this.textField == null) { return; } if(flixel_FlxG.renderTile && !RunOnCpp) { return; } this.regenGraphic(); flixel_FlxSprite.prototype.calcFrame.call(this,RunOnCpp); } ,applyBorderStyle: function() { var iterations = this.borderSize * this.borderQuality | 0; if(iterations <= 0) { iterations = 1; } var delta = this.borderSize / iterations; switch(this.borderStyle._hx_index) { case 0: break; case 1: this.applyFormats(this._formatAdjusted,true); var _g = 0; var _g1 = iterations; while(_g < _g1) { var i = _g++; var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(delta,delta); this.drawTextFieldTo(graphic); } this._matrix.translate(-this.shadowOffset.x * this.borderSize,-this.shadowOffset.y * this.borderSize); break; case 2: this.applyFormats(this._formatAdjusted,true); var curDelta = delta; var _g = 0; var _g1 = iterations; while(_g < _g1) { var i = _g++; var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(-curDelta,-curDelta); this.drawTextFieldTo(graphic); var graphic1 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(curDelta,0); this.drawTextFieldTo(graphic1); var graphic2 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(curDelta,0); this.drawTextFieldTo(graphic2); var graphic3 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(0,curDelta); this.drawTextFieldTo(graphic3); var graphic4 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(0,curDelta); this.drawTextFieldTo(graphic4); var graphic5 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(-curDelta,0); this.drawTextFieldTo(graphic5); var graphic6 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(-curDelta,0); this.drawTextFieldTo(graphic6); var graphic7 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(0,-curDelta); this.drawTextFieldTo(graphic7); this._matrix.translate(curDelta,0); curDelta += delta; } break; case 3: this.applyFormats(this._formatAdjusted,true); var curDelta = delta; var _g = 0; var _g1 = iterations; while(_g < _g1) { var i = _g++; var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(-curDelta,-curDelta); this.drawTextFieldTo(graphic); var graphic1 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(curDelta * 2,0); this.drawTextFieldTo(graphic1); var graphic2 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(0,curDelta * 2); this.drawTextFieldTo(graphic2); var graphic3 = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(-curDelta * 2,0); this.drawTextFieldTo(graphic3); this._matrix.translate(curDelta,-curDelta); curDelta += delta; } break; } } ,applyBorderTransparency: function() { if(!this._hasBorderAlpha) { return; } if(this._borderColorTransform == null) { this._borderColorTransform = new openfl_geom_ColorTransform(); } this._borderColorTransform.alphaMultiplier = (this.borderColor >> 24 & 255) / 255; this._borderPixels.colorTransform(this._borderPixels.rect,this._borderColorTransform); this.graphic.bitmap.draw(this._borderPixels); } ,copyTextWithOffset: function(x,y) { var graphic = this._hasBorderAlpha ? this._borderPixels : this.graphic.bitmap; this._matrix.translate(x,y); this.drawTextFieldTo(graphic); } ,applyFormats: function(FormatAdjusted,UseBorderColor) { if(UseBorderColor == null) { UseBorderColor = false; } this.copyTextFormat(this._defaultFormat,FormatAdjusted,false); FormatAdjusted.color = UseBorderColor ? this.borderColor & 16777215 : this._defaultFormat.color; this.textField.setTextFormat(FormatAdjusted); var _g = 0; var _g1 = this._formatRanges; while(_g < _g1.length) { var formatRange = _g1[_g]; ++_g; if(this.textField.get_text().length - 1 < formatRange.range.start) { break; } else { var textFormat = formatRange.format.format; this.copyTextFormat(textFormat,FormatAdjusted,false); FormatAdjusted.color = UseBorderColor ? formatRange.format.borderColor & 16777215 : textFormat.color; } this.textField.setTextFormat(FormatAdjusted,formatRange.range.start,Math.min(formatRange.range.end,this.textField.get_text().length) | 0); } } ,copyTextFormat: function(from,to,withAlign) { if(withAlign == null) { withAlign = true; } to.font = from.font; to.bold = from.bold; to.italic = from.italic; to.underline = from.underline; to.size = from.size; to.color = from.color; to.leading = from.leading; if(withAlign) { to.align = from.align; } } ,dtfCopy: function() { var dtf = this.textField.get_defaultTextFormat(); return new openfl_text_TextFormat(dtf.font,dtf.size,dtf.color,dtf.bold,dtf.italic,dtf.underline,dtf.url,dtf.target,dtf.align); } ,updateDefaultFormat: function() { this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; } ,set_frames: function(Frames) { flixel_FlxSprite.prototype.set_frames.call(this,Frames); this._regen = false; return Frames; } ,__class__: flixel_text_FlxText ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_autoSize:"set_autoSize",get_autoSize:"get_autoSize",set_fieldHeight:"set_fieldHeight",get_fieldHeight:"get_fieldHeight",set_fieldWidth:"set_fieldWidth",get_fieldWidth:"get_fieldWidth",set_borderQuality:"set_borderQuality",set_borderSize:"set_borderSize",set_borderColor:"set_borderColor",set_borderStyle:"set_borderStyle",set_alignment:"set_alignment",get_alignment:"get_alignment",set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_underline:"set_underline",get_underline:"get_underline",set_italic:"set_italic",get_italic:"get_italic",set_bold:"set_bold",get_bold:"get_bold",set_systemFont:"set_systemFont",get_systemFont:"get_systemFont",get_embedded:"get_embedded",set_font:"set_font",get_font:"get_font",set_letterSpacing:"set_letterSpacing",get_letterSpacing:"get_letterSpacing",set_size:"set_size",get_size:"get_size",set_text:"set_text"}) }); var flixel_addons_text_FlxTextField = function(X,Y,Width,Text1,Size,EmbeddedFont) { if(EmbeddedFont == null) { EmbeddedFont = true; } if(Size == null) { Size = 8; } flixel_text_FlxText.call(this,X,Y,Width,Text1,Size,EmbeddedFont); this.set_height(Text1 == null || Text1.length <= 0 ? 1 : this.textField.get_textHeight() + 4); this.textField.set_multiline(false); this.textField.set_wordWrap(false); this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.setTextFormat(this._defaultFormat); this._regen = true; this.dirty = false; }; $hxClasses["flixel.addons.text.FlxTextField"] = flixel_addons_text_FlxTextField; flixel_addons_text_FlxTextField.__name__ = "flixel.addons.text.FlxTextField"; flixel_addons_text_FlxTextField.__super__ = flixel_text_FlxText; flixel_addons_text_FlxTextField.prototype = $extend(flixel_text_FlxText.prototype,{ destroy: function() { var child = this.textField; if(flixel_FlxG.game.contains(child)) { flixel_FlxG.game.removeChild(child); } flixel_text_FlxText.prototype.destroy.call(this); } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } return false; } ,isSimpleRender: function(camera) { return true; } ,get_pixels: function() { this.calcFrame(true); return this.graphic.bitmap; } ,set_pixels: function(Pixels) { return Pixels; } ,set_alpha: function(Alpha) { var lowerBound = Alpha < 0 ? 0 : Alpha; this.alpha = lowerBound > 1 ? 1 : lowerBound; this.textField.set_alpha(this.alpha); return Alpha; } ,set_height: function(Height) { Height = flixel_text_FlxText.prototype.set_height.call(this,Height); if(this.textField != null) { this.textField.set_height(Height); } return Height; } ,set_visible: function(Value) { this.textField.set_visible(Value); return flixel_text_FlxText.prototype.set_visible.call(this,Value); } ,kill: function() { this.set_visible(false); flixel_text_FlxText.prototype.kill.call(this); } ,revive: function() { this.set_visible(true); flixel_text_FlxText.prototype.revive.call(this); } ,draw: function() { this.textField.set_visible(flixel_FlxG.camera.visible && flixel_FlxG.camera.exists && this.isOnScreen(flixel_FlxG.camera)); if(!this.textField.get_visible()) { return; } this.textField.set_x(this.x - this.offset.x); this.textField.set_y(this.y - this.offset.y); this.textField.set_scaleX(this.scale.x); this.textField.set_scaleY(this.scale.y); flixel_FlxG.camera.transformObject(this.textField); } ,get_camera: function() { return flixel_FlxG.camera; } ,set_camera: function(Value) { return flixel_FlxG.camera; } ,__class__: flixel_addons_text_FlxTextField }); var flixel_addons_text_internal_FlxBaseTextInput = function(x,y,fieldWidth,text,size,embeddedFont) { if(embeddedFont == null) { embeddedFont = true; } if(size == null) { size = 8; } if(fieldWidth == null) { fieldWidth = 0; } if(y == null) { y = 0; } if(x == null) { x = 0; } this._scrollVCounter = 0; this._regenFormats = false; this._lastPressTime = 0; this._down = false; this.onScroll = new flixel_util__$FlxSignal_FlxSignal0(); this.onInput = new flixel_util__$FlxSignal_FlxSignal0(); this.onFocusLost = new flixel_util__$FlxSignal_FlxSignal0(); this.onFocusGained = new flixel_util__$FlxSignal_FlxSignal0(); this.onEnter = new flixel_util__$FlxSignal_FlxSignal0(); this.onDelete = new flixel_util__$FlxSignal_FlxSignal0(); this.onChange = new flixel_util__$FlxSignal_FlxSignal0(); this.onBackspace = new flixel_util__$FlxSignal_FlxSignal0(); flixel_text_FlxText.call(this,x,y,fieldWidth,text,size,embeddedFont); if(text == null || text == "") { this.set_text(""); text = " "; } else { this.set_text(text); } this.textField = new flixel_addons_text_internal_CustomTextField(this); this.textField.set_selectable(true); this.textField.set_multiline(true); this.textField.set_wordWrap(true); this.textField.set_type(1); this.set_font(flixel_system_FlxAssets.FONT_DEFAULT); this.textField.set_defaultTextFormat(this._defaultFormat); this.textField.set_text(text); this.set_fieldWidth(fieldWidth); this.textField.set_embedFonts(embeddedFont); this.textField.set_sharpness(100); this.textField.set_height(text.length <= 0 ? 1 : 10); this.set_graphic(null); this.drawFrame(); this.initEvents(); }; $hxClasses["flixel.addons.text.internal.FlxBaseTextInput"] = flixel_addons_text_internal_FlxBaseTextInput; flixel_addons_text_internal_FlxBaseTextInput.__name__ = "flixel.addons.text.internal.FlxBaseTextInput"; flixel_addons_text_internal_FlxBaseTextInput.isModifierPressed = function(modifier) { if(!lime_ui_KeyModifier.get_metaKey(modifier)) { return lime_ui_KeyModifier.get_ctrlKey(modifier); } else { return true; } }; flixel_addons_text_internal_FlxBaseTextInput.__super__ = flixel_text_FlxText; flixel_addons_text_internal_FlxBaseTextInput.prototype = $extend(flixel_text_FlxText.prototype,{ onBackspace: null ,onChange: null ,onDelete: null ,onEnter: null ,onFocusGained: null ,onFocusLost: null ,onInput: null ,onScroll: null ,_down: null ,_lastPressTime: null ,_lastShowCursor: null ,_regenFormats: null ,_scrollVCounter: null ,destroy: function() { if(this.textField != null) { this.textField.removeEventListener("keyDown",$bind(this,this._onKeyDown)); this.textField.removeEventListener("scroll",$bind(this,this._onScroll)); if(this.textField.__inputEnabled) { this.onStopTextInput(); } } this.onBackspace = flixel_util_FlxDestroyUtil.destroy(this.onBackspace); this.onChange = flixel_util_FlxDestroyUtil.destroy(this.onChange); this.onDelete = flixel_util_FlxDestroyUtil.destroy(this.onDelete); this.onEnter = flixel_util_FlxDestroyUtil.destroy(this.onEnter); this.onFocusGained = flixel_util_FlxDestroyUtil.destroy(this.onFocusGained); this.onFocusLost = flixel_util_FlxDestroyUtil.destroy(this.onFocusLost); this.onInput = flixel_util_FlxDestroyUtil.destroy(this.onInput); this.onScroll = flixel_util_FlxDestroyUtil.destroy(this.onScroll); flixel_text_FlxText.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_text_FlxText.prototype.update.call(this,elapsed); if(this.visible) { this.updateInput(elapsed); } if(this._lastShowCursor != this.textField.__showCursor) { this._regen = true; this._lastShowCursor = this.textField.__showCursor; } } ,addFormat: function(format,start,end) { if(end == null) { end = -1; } if(start == null) { start = -1; } flixel_text_FlxText.prototype.addFormat.call(this,format,start,end); this._regenFormats = true; return this; } ,removeFormat: function(format,start,end) { flixel_text_FlxText.prototype.removeFormat.call(this,format,start,end); this._regenFormats = true; return this; } ,getTextInputRect: function(camera,rect) { if(camera == null) { camera = this.get_camera(); } if(rect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; rect = rect1; } this.getScreenBounds(rect,camera); if(camera.totalScaleX != 1 || camera.totalScaleY != 1) { rect.width *= camera.totalScaleX; rect.height *= camera.totalScaleY; rect.x -= camera.scroll.x * camera.totalScaleX - camera.scroll.x; rect.y -= camera.scroll.y * camera.totalScaleY - camera.scroll.y; rect.x -= 0.5 * camera.width * (camera.scaleX - camera.initialZoom) * flixel_FlxG.scaleMode.scale.x; rect.y -= 0.5 * camera.height * (camera.scaleY - camera.initialZoom) * flixel_FlxG.scaleMode.scale.y; } rect.x += camera.x * flixel_FlxG.scaleMode.scale.x + flixel_FlxG.game.get_x(); rect.y += camera.y * flixel_FlxG.scaleMode.scale.y + flixel_FlxG.game.get_y(); return rect; } ,replaceSelectedText: function(value) { if(value == null) { value = ""; } if(value == "" && this.textField.__selectionIndex == this.get_caretIndex()) { return; } this.textField.replaceSelectedText(value); this.updateText(); } ,setSelection: function(beginIndex,endIndex) { this.textField.setSelection(beginIndex,endIndex); this._regen = true; } ,regenGraphic: function() { if(this.textField == null || !this._regen) { return; } var oldWidth = 0; var oldHeight = 4; if(this.graphic != null) { oldWidth = this.graphic.width; oldHeight = this.graphic.height; } var newWidth = Math.ceil(this.textField.get_width()); var textfieldHeight = this._autoHeight ? this.textField.get_textHeight() : this.textField.get_height(); var vertGutter = this._autoHeight ? 4 : 0; var newHeight = Math.ceil(textfieldHeight) + vertGutter; if(this.textField.get_textHeight() == 0) { newHeight = oldHeight; } if(oldWidth != newWidth || oldHeight != newHeight) { var key = flixel_FlxG.bitmap.getUniqueKey("text"); this.makeGraphic(newWidth,newHeight,0,false,key); if(this._autoHeight) { this.textField.set_height(newHeight); } this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = newWidth; this._flashRect.height = newHeight; } else { this.graphic.bitmap.fillRect(this._flashRect,0); } if(this.textField != null && this.textField.get_text() != null) { this._matrix.identity(); if(this._regenFormats) { this.applyFormats(this._formatAdjusted,false); this._regenFormats = false; } this.drawTextFieldTo(this.graphic.bitmap); } this._regen = false; this.set_frame(this.frame); } ,checkDoublePress: function() { var currentTime = flixel_FlxG.game.ticks; if(currentTime - this._lastPressTime < 500) { this.onDoublePressHandler(); this._lastPressTime = 0; } else { this._lastPressTime = currentTime; } } ,initEvents: function() { this.textField.addEventListener("keyDown",$bind(this,this._onKeyDown)); this.textField.addEventListener("scroll",$bind(this,this._onScroll)); } ,onChangeHandler: function(_) { this.updateText(); this.onChange.dispatch(); } ,onDoublePressHandler: function() { if(!this.get_selectable()) { return; } this.textField.__updateLayout(); var delimiters = ["\n",".","!","?",","," ",";",":","(",")","-","_","/"]; var txtStr = this.text; var leftPos = -1; var rightPos = txtStr.length; var pos = 0; var startPos = Math.max(this.get_caretIndex(),1) | 0; if(txtStr.length > 0 && this.get_caretIndex() >= 0 && rightPos >= this.get_caretIndex()) { var _g = 0; while(_g < delimiters.length) { var c = delimiters[_g]; ++_g; pos = txtStr.lastIndexOf(c,startPos - 1); if(pos > leftPos) { leftPos = pos + 1; } pos = txtStr.indexOf(c,startPos); if(pos < rightPos && pos != -1) { rightPos = pos; } } if(leftPos != rightPos) { this.setSelection(leftPos,rightPos); this.textField.__dirty = true; var _this = this.textField; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } } } } ,onFocusInHandler: function(dispatch) { if(dispatch == null) { dispatch = true; } if(this.get_type() == 1 && this.get_focus()) { this.textField.__startTextInput(); this.onStartTextInput(); } else if(this.get_type() != 1 && this.get_selectable() && this.get_focus()) { this.textField.__startCursorTimer(); this._regen = true; } if(dispatch) { this.onFocusGained.dispatch(); } } ,onFocusOutHandler: function() { this.textField.__stopCursorTimer(); this.textField.__stopTextInput(); this.onStopTextInput(); if(this.textField.__selectionIndex != this.get_caretIndex()) { this.textField.__selectionIndex = this.get_caretIndex(); this.textField.__dirty = true; var _this = this.textField; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } } this.onFocusLost.dispatch(); } ,onDownHandler: function(pointerX,pointerY) { this._down = true; this.textField.__updateLayout(); var tmp = this.textField.__getPosition(pointerX + this.get_scrollH(),pointerY); this.textField.__selectionIndex = this.set_caretIndex(tmp); this.textField.__dirty = true; var _this = this.textField; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } this.set_focus(true); } ,onMoveHandler: function(pointerX,pointerY) { if(this.get_selectable() && this.textField.__selectionIndex >= 0) { this.textField.__updateLayout(); var position = this.textField.__getPosition(pointerX + this.get_scrollH(),pointerY); if(position != this.get_caretIndex()) { this.textField.__caretIndex = position; this.textField.__dirty = true; var _this = this.textField; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } this._regen = true; } } } ,onPasteHandler: function(text) { this.textField.__replaceSelectedText(text,true); this.onInput.dispatch(); this.onChangeHandler(); } ,onStartTextInput: function() { if(!openfl_Lib.get_current().stage.window.onTextInput.has($bind(this,this._onWindowTextInput))) { openfl_Lib.get_current().stage.window.onTextInput.add($bind(this,this._onWindowTextInput)); openfl_Lib.get_current().stage.window.onKeyDown.add($bind(this,this._onWindowKeyDown)); } this._regen = true; } ,onStopTextInput: function() { openfl_Lib.get_current().stage.window.onTextInput.remove($bind(this,this._onWindowTextInput)); openfl_Lib.get_current().stage.window.onKeyDown.remove($bind(this,this._onWindowKeyDown)); this._regen = true; } ,onUpHandler: function(pointerX,pointerY) { this._down = false; if(this.get_focus()) { this.textField.__getWorldTransform(); this.textField.__updateLayout(); var upPos = this.textField.__getPosition(pointerX + this.get_scrollH(),pointerY); var leftPos = Math.min(this.textField.__selectionIndex,upPos) | 0; var rightPos = Math.max(this.textField.__selectionIndex,upPos) | 0; this.textField.__selectionIndex = leftPos; this.textField.__caretIndex = rightPos; if(this.textField.__inputEnabled) { this.onFocusInHandler(false); this.textField.__stopCursorTimer(); this.textField.__startCursorTimer(); } this._regen = true; } } ,onWindowKeyDownHandler: function(key,modifier) { switch(key) { case 8: if(this.textField.__selectionIndex == this.get_caretIndex() && this.get_caretIndex() > 0) { var tmp = this.get_caretIndex(); this.textField.__selectionIndex = tmp - 1; } if(this.textField.__selectionIndex != this.get_caretIndex()) { this.replaceSelectedText(""); this.textField.__selectionIndex = this.get_caretIndex(); this.onBackspace.dispatch(); this.onChangeHandler(); } else { this.textField.__stopCursorTimer(); this.textField.__startCursorTimer(); this._regen = true; } break; case 97: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.setSelection(0,this.text.length); } } break; case 99: if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { if(this.get_caretIndex() != this.textField.__selectionIndex && !this.get_displayAsPassword()) { lime_system_Clipboard.set_text(this.text.substring(this.get_caretIndex(),this.textField.__selectionIndex)); } } break; case 120: if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { if(this.get_caretIndex() != this.textField.__selectionIndex && !this.get_displayAsPassword()) { lime_system_Clipboard.set_text(this.text.substring(this.get_caretIndex(),this.textField.__selectionIndex)); this.replaceSelectedText(""); this.onChangeHandler(); } } break; case 127: if(this.textField.__selectionIndex == this.get_caretIndex() && this.get_caretIndex() < this.text.length) { var tmp = this.get_caretIndex(); this.textField.__selectionIndex = tmp + 1; } if(this.textField.__selectionIndex != this.get_caretIndex()) { this.replaceSelectedText(""); this.textField.__selectionIndex = this.get_caretIndex(); this.onDelete.dispatch(); this.onChangeHandler(); } else { this.textField.__stopCursorTimer(); this.textField.__startCursorTimer(); this._regen = true; } break; case 1073741898: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.textField.__caretIndex = 0; } else { this.textField.__caretBeginningOfLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.textField.__selectionIndex = this.get_caretIndex(); } this.setSelection(this.textField.__selectionIndex,this.get_caretIndex()); } break; case 1073741901: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.textField.__caretIndex = this.text.length; } else { this.textField.__caretEndOfLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.textField.__selectionIndex = this.get_caretIndex(); } this.setSelection(this.textField.__selectionIndex,this.get_caretIndex()); } break; case 1073741903: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.textField.__caretBeginningOfNextLine(); } else { this.textField.__caretNextCharacter(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.textField.__selectionIndex = this.get_caretIndex(); } this.setSelection(this.textField.__selectionIndex,this.get_caretIndex()); } break; case 1073741904: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.textField.__caretBeginningOfPreviousLine(); } else { this.textField.__caretPreviousCharacter(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.textField.__selectionIndex = this.get_caretIndex(); } this.setSelection(this.textField.__selectionIndex,this.get_caretIndex()); } break; case 1073741905: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.textField.__caretIndex = this.text.length; } else { this.textField.__caretNextLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.textField.__selectionIndex = this.get_caretIndex(); } this.setSelection(this.textField.__selectionIndex,this.get_caretIndex()); } break; case 1073741906: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.textField.__caretIndex = 0; } else { this.textField.__caretPreviousLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.textField.__selectionIndex = this.get_caretIndex(); } this.setSelection(this.textField.__selectionIndex,this.get_caretIndex()); } break; case 13:case 1073741912: if(this.get_multiline()) { this.textField.__replaceSelectedText("\n",true); this.onEnter.dispatch(); this.onInput.dispatch(); this.onChangeHandler(); } else { this.textField.__stopCursorTimer(); this.textField.__startCursorTimer(); this.onEnter.dispatch(); } this._regen = true; break; default: } } ,onWindowTextInputHandler: function(value) { this.textField.__replaceSelectedText(value,true); this.onInput.dispatch(); this.onChangeHandler(); } ,updateDrag: function(elapsed,pointerX,pointerY) { if(pointerX > this.get_width() - 1) { this.set_scrollH(this.get_scrollH() + (Math.max(Math.min((pointerX - this.get_width()) * .1,10),1) | 0)); } else if(pointerX < 1) { this.set_scrollH(this.get_scrollH() - (Math.max(Math.min(pointerX * -.1,10),1) | 0)); } this._scrollVCounter += elapsed; if(this._scrollVCounter > 0.1) { if(pointerY > this.get_height() - 2) { this.set_scrollV(Math.min(this.get_scrollV() + Math.max(Math.min((pointerY - this.get_height()) * .03,5),1),this.get_maxScrollV()) | 0); } else if(pointerY < 2) { this.set_scrollV(this.get_scrollV() - (Math.max(Math.min(pointerY * -.03,5),1) | 0)); } this._scrollVCounter = 0; } this.onMoveHandler(pointerX,pointerY); } ,updateInput: function(elapsed) { } ,updateText: function() { this.set_text(this.textField.get_text()); this._regen = true; } ,onKeyDownHandler: function(event) { if(this.get_focus() && this.get_selectable() && this.get_type() != 1 && event.keyCode == 67 && (event.commandKey || event.ctrlKey)) { if(this.get_caretIndex() != this.textField.__selectionIndex && !this.get_displayAsPassword()) { lime_system_Clipboard.set_text(this.text.substring(this.get_caretIndex(),this.textField.__selectionIndex)); } } } ,_onKeyDown: function(event) { this.onKeyDownHandler(event); } ,_onScroll: function(_) { this._regen = true; this.onScroll.dispatch(); } ,_onWindowKeyDown: function(key,modifier) { this.onWindowKeyDownHandler(key,modifier); } ,_onWindowTextInput: function(value) { this.onWindowTextInputHandler(value); } ,set_alignment: function(value) { this._regenFormats = true; return flixel_text_FlxText.prototype.set_alignment.call(this,value); } ,set_bold: function(value) { if(this._defaultFormat.bold != value) { this._regenFormats = true; } return flixel_text_FlxText.prototype.set_bold.call(this,value); } ,set_borderColor: function(value) { return value; } ,set_borderQuality: function(value) { return value; } ,set_borderSize: function(value) { return value; } ,set_borderStyle: function(value) { return value; } ,set_color: function(value) { if(this._defaultFormat.color != (value & 16777215)) { this._regenFormats = true; } return flixel_text_FlxText.prototype.set_color.call(this,value); } ,set_font: function(value) { this._regenFormats = true; return flixel_text_FlxText.prototype.set_font.call(this,value); } ,set_italic: function(value) { if(this._defaultFormat.italic != value) { this._regenFormats = true; } return flixel_text_FlxText.prototype.set_italic.call(this,value); } ,set_size: function(value) { this._regenFormats = true; return flixel_text_FlxText.prototype.set_size.call(this,value); } ,set_systemFont: function(value) { this._regenFormats = true; return flixel_text_FlxText.prototype.set_systemFont.call(this,value); } ,set_text: function(value) { if(this.text != value) { this.text = value; if(this.textField != null) { this.textField.set_text(value); this._regen = true; } } return value; } ,get_bottomScrollV: function() { return this.textField.get_bottomScrollV(); } ,get_caretIndex: function() { return this.textField.get_caretIndex(); } ,set_caretIndex: function(value) { this.setSelection(value,value); return value; } ,get_displayAsPassword: function() { return this.textField.get_displayAsPassword(); } ,set_displayAsPassword: function(value) { if(this.textField.get_displayAsPassword() != value) { this.textField.set_displayAsPassword(value); this._regen = true; } return value; } ,get_focus: function() { return false; } ,set_focus: function(value) { return value; } ,get_maxChars: function() { return this.textField.get_maxChars(); } ,set_maxChars: function(value) { if(this.textField.get_maxChars() != value) { this.textField.set_maxChars(value); this._regen = true; } return value; } ,get_maxScrollH: function() { return this.textField.get_maxScrollH(); } ,get_maxScrollV: function() { return this.textField.get_maxScrollV(); } ,get_multiline: function() { return this.textField.get_multiline(); } ,set_multiline: function(value) { if(this.textField.get_multiline() != value) { this.textField.set_multiline(value); this.set_wordWrap(value); } return value; } ,get_restrict: function() { return this.textField.get_restrict(); } ,set_restrict: function(value) { if(this.textField.get_restrict() != value) { this.textField.set_restrict(value); this.updateText(); } return value; } ,get_scrollH: function() { return this.textField.get_scrollH(); } ,set_scrollH: function(value) { if(value > this.get_maxScrollH()) { value = this.get_maxScrollH(); } if(value < 0) { value = 0; } if(this.textField.get_scrollH() != value) { this.textField.set_scrollH(value); } return value; } ,get_scrollV: function() { return this.textField.get_scrollV(); } ,set_scrollV: function(value) { if(this.textField.get_scrollV() != value || this.textField.get_scrollV() == 0) { this.textField.set_scrollV(value); } return value; } ,get_selectable: function() { return this.textField.get_selectable(); } ,set_selectable: function(value) { if(this.textField.get_selectable() != value) { this.textField.set_selectable(value); if(this.get_type() == 1) { if(this.get_focus()) { this.onStartTextInput(); } else if(!value) { this.onStopTextInput(); } } } return value; } ,get_selectionBeginIndex: function() { return Math.min(this.get_caretIndex(),this.textField.__selectionIndex) | 0; } ,set_selectionBeginIndex: function(value) { this.setSelection(value,this.get_selectionEndIndex()); return value; } ,get_selectionEndIndex: function() { return Math.max(this.get_caretIndex(),this.textField.__selectionIndex) | 0; } ,set_selectionEndIndex: function(value) { this.setSelection(this.get_selectionBeginIndex(),value); return value; } ,get_type: function() { return this.textField.get_type(); } ,set_type: function(value) { if(this.textField.get_type() != value) { this.textField.set_type(value); if(value != 1) { this.onStopTextInput(); } this._regen = true; } return value; } ,__class__: flixel_addons_text_internal_FlxBaseTextInput ,__properties__: $extend(flixel_text_FlxText.prototype.__properties__,{set_type:"set_type",get_type:"get_type",set_selectionEndIndex:"set_selectionEndIndex",get_selectionEndIndex:"get_selectionEndIndex",set_selectionBeginIndex:"set_selectionBeginIndex",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",set_multiline:"set_multiline",get_multiline:"get_multiline",get_maxScrollV:"get_maxScrollV",get_maxScrollH:"get_maxScrollH",set_maxChars:"set_maxChars",get_maxChars:"get_maxChars",set_focus:"set_focus",get_focus:"get_focus",set_displayAsPassword:"set_displayAsPassword",get_displayAsPassword:"get_displayAsPassword",set_caretIndex:"set_caretIndex",get_caretIndex:"get_caretIndex",get_bottomScrollV:"get_bottomScrollV"}) }); var flixel_addons_text_FlxTextInput = function(x,y,fieldWidth,text,size,embeddedFont) { this.mouseWheelEnabled = true; this.doublePressEnabled = true; flixel_addons_text_internal_FlxBaseTextInput.call(this,x,y,fieldWidth,text,size,embeddedFont); }; $hxClasses["flixel.addons.text.FlxTextInput"] = flixel_addons_text_FlxTextInput; flixel_addons_text_FlxTextInput.__name__ = "flixel.addons.text.FlxTextInput"; flixel_addons_text_FlxTextInput.__super__ = flixel_addons_text_internal_FlxBaseTextInput; flixel_addons_text_FlxTextInput.prototype = $extend(flixel_addons_text_internal_FlxBaseTextInput.prototype,{ doublePressEnabled: null ,mouseWheelEnabled: null ,_currentCamera: null ,destroy: function() { if(this.textField != null) { this.textField.removeEventListener("focusIn",$bind(this,this._onFocusIn)); this.textField.removeEventListener("focusOut",$bind(this,this._onFocusOut)); } this._currentCamera = null; flixel_addons_text_internal_FlxBaseTextInput.prototype.destroy.call(this); } ,getTextInputRect: function(camera,rect) { if(camera == null) { camera = this._currentCamera; } return flixel_addons_text_internal_FlxBaseTextInput.prototype.getTextInputRect.call(this,camera,rect); } ,initEvents: function() { this.textField.addEventListener("focusIn",$bind(this,this._onFocusIn)); this.textField.addEventListener("focusOut",$bind(this,this._onFocusOut)); flixel_addons_text_internal_FlxBaseTextInput.prototype.initEvents.call(this); } ,updateInput: function(elapsed) { var input = this.updateMouseInput(elapsed); if(!input) { input = this.updateTouchInput(elapsed); } } ,checkPointerOverlap: function(pointer,camera) { return this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera); } ,getPointerPosition: function(pointer,camera,point) { if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } pointer.getScreenPosition(camera,point); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point1._inPool = false; var point2 = point1; point2._weak = true; var position = this.getScreenPosition(point2,camera); var x = position.x; var y = position.y; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(point.x - x); point.set_y(point.y - y); if(position._weak) { position.put(); } return point; } ,updateMouseInput: function(elapsed) { var input = false; var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(this.checkPointerOverlap(flixel_FlxG.mouse,camera)) { this._currentCamera = camera; overlap = true; break; } } var mousePos = this.getPointerPosition(flixel_FlxG.mouse,this._currentCamera); if(flixel_FlxG.mouse._leftButton.current == 2) { if(overlap) { this.onDownHandler(mousePos.x,mousePos.y); input = true; } else if(this.get_selectable() || this.get_type() == 1) { this.set_focus(false); } } if(overlap && flixel_FlxG.mouse.wheel != 0) { this.onMouseWheelHandler(); input = true; } if(this._down) { this.updateDrag(elapsed,mousePos.x,mousePos.y); if(flixel_FlxG.mouse._leftButton.current == -1) { this.onUpHandler(mousePos.x,mousePos.y); if(this.doublePressEnabled) { this.checkDoublePress(); } } input = true; } mousePos.put(); return input; } ,updateTouchInput: function(elapsed) { var input = false; var touch = null; var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var t = _g3[_g2]; ++_g2; if(this.checkPointerOverlap(t,camera)) { touch = t; this._currentCamera = camera; overlap = true; break; } } } if(touch == null) { return input; } var touchPos = this.getPointerPosition(touch,this._currentCamera); if(touch.input.current == 2) { if(overlap) { this.onDownHandler(touchPos.x,touchPos.y); input = true; } else if(this.get_selectable() || this.get_type() == 1) { this.set_focus(false); } } if(this._down) { this.updateDrag(elapsed,touchPos.x,touchPos.y); if(touch.input.current == -1) { this.onUpHandler(touchPos.x,touchPos.y); if(this.doublePressEnabled) { this.checkDoublePress(); } } input = true; } touchPos.put(); return input; } ,onMouseWheelHandler: function() { if(this.mouseWheelEnabled) { this.set_scrollV(Math.min(this.get_scrollV() - flixel_FlxG.mouse.wheel,this.get_maxScrollV()) | 0); } } ,_onFocusIn: function(_) { this.onFocusInHandler(); } ,_onFocusOut: function(_) { this.onFocusOutHandler(); } ,get_focus: function() { return openfl_Lib.get_current().stage.get_focus() == this.textField; } ,set_focus: function(value) { if(value) { if(this._currentCamera == null) { this._currentCamera = this.get_camera(); } openfl_Lib.get_current().stage.set_focus(this.textField); } else if(this.get_focus()) { openfl_Lib.get_current().stage.set_focus(null); } return value; } ,__class__: flixel_addons_text_FlxTextInput }); var openfl_media_Sound = function(stream,context) { openfl_events_EventDispatcher.call(this,this); this.bytesLoaded = 0; this.bytesTotal = 0; 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_media_AudioBuffer.fromFile(path)); }; openfl_media_Sound.loadFromFile = function(path) { return lime_media_AudioBuffer.loadFromFile(path).then(function(audioBuffer) { return lime_app_Future.withValue(openfl_media_Sound.fromAudioBuffer(audioBuffer)); }); }; openfl_media_Sound.loadFromFiles = function(paths) { return lime_media_AudioBuffer.loadFromFiles(paths).then(function(audioBuffer) { return lime_app_Future.withValue(openfl_media_Sound.fromAudioBuffer(audioBuffer)); }); }; openfl_media_Sound.__super__ = openfl_events_EventDispatcher; openfl_media_Sound.prototype = $extend(openfl_events_EventDispatcher.prototype,{ bytesLoaded: null ,bytesTotal: null ,isBuffering: null ,url: null ,__buffer: null ,close: function() { if(this.__buffer != null) { this.__buffer.dispose(); this.__buffer = null; } } ,load: function(stream,context) { var _gthis = this; this.url = stream.url; var defaultLibrary = lime_utils_Assets.getLibrary("default"); if(defaultLibrary != null && Object.prototype.hasOwnProperty.call(defaultLibrary.cachedAudioBuffers.h,this.url)) { this.AudioBuffer_onURLLoad(defaultLibrary.cachedAudioBuffers.h[this.url]); } else { lime_media_AudioBuffer.loadFromFile(this.url).onComplete($bind(this,this.AudioBuffer_onURLLoad)).onError(function(_) { _gthis.AudioBuffer_onURLLoad(null); }); } } ,loadCompressedDataFromByteArray: function(bytes,bytesLength) { if(bytes == null || bytesLength <= 0) { this.dispatchEvent(new openfl_events_IOErrorEvent("ioError")); return; } if(UInt.gt(bytes.position,0) || UInt.gt(openfl_utils_ByteArray.get_length(bytes),bytesLength)) { var length = bytesLength; if(length == null) { length = 0; } var copy = new openfl_utils_ByteArrayData(length); var offset = bytes.position; var length = bytesLength; if(length == null) { length = 0; } if(offset == null) { offset = 0; } copy.writeBytes(bytes,offset,length); bytes = copy; } this.__buffer = lime_media_AudioBuffer.fromBytes(openfl_utils_ByteArray.toBytes(bytes)); if(this.__buffer == null) { this.dispatchEvent(new openfl_events_IOErrorEvent("ioError")); } else { this.dispatchEvent(new openfl_events_Event("complete")); } } ,loadPCMFromByteArray: function(bytes,samples,format,stereo,sampleRate) { if(sampleRate == null) { sampleRate = 44100; } if(stereo == null) { stereo = true; } if(format == null) { format = "float"; } if(bytes == null) { this.dispatchEvent(new openfl_events_IOErrorEvent("ioError")); return; } var bitsPerSample = format == "float" ? 32 : 16; var channels = stereo ? 2 : 1; var bytesLength = samples * channels * (bitsPerSample / 8) | 0; if(UInt.gt(bytes.position,0) || UInt.gt(openfl_utils_ByteArray.get_length(bytes),bytesLength)) { var length = bytesLength; if(length == null) { length = 0; } var copy = new openfl_utils_ByteArrayData(length); var offset = bytes.position; var length = bytesLength; if(length == null) { length = 0; } if(offset == null) { offset = 0; } copy.writeBytes(bytes,offset,length); bytes = copy; } var audioBuffer = new lime_media_AudioBuffer(); audioBuffer.bitsPerSample = bitsPerSample; audioBuffer.channels = channels; var elements = null; var array = null; var vector = null; var view = null; var buffer = openfl_utils_ByteArray.toArrayBuffer(bytes); var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } audioBuffer.data = this1; audioBuffer.sampleRate = sampleRate | 0; this.__buffer = audioBuffer; this.dispatchEvent(new openfl_events_Event("complete")); } ,play: function(startTime,loops,sndTransform) { if(loops == null) { loops = 0; } if(startTime == null) { startTime = 0.0; } if(this.__buffer == null || openfl_media_SoundMixer.__soundChannels.length >= 32) { return null; } if(sndTransform == null) { sndTransform = new openfl_media_SoundTransform(); } else { sndTransform = sndTransform.clone(); } var pan = openfl_media_SoundMixer.__soundTransform.pan + sndTransform.pan; if(pan > 1) { pan = 1; } if(pan < -1) { pan = -1; } var volume = openfl_media_SoundMixer.__soundTransform.volume * sndTransform.volume; var source = new lime_media_AudioSource(this.__buffer); source.offset = startTime | 0; if(loops > 1) { source.set_loops(loops - 1); } source.set_gain(volume); var position = source.get_position(); position.x = pan; position.z = -1 * Math.sqrt(1 - Math.pow(pan,2)); source.set_position(position); return new openfl_media_SoundChannel(source,sndTransform); } ,get_id3: function() { return new openfl_media_ID3Info(); } ,get_length: function() { if(this.__buffer != null) { return this.__buffer.get_src().duration() * 1000 | 0; } 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")); } } ,__class__: openfl_media_Sound ,__properties__: {get_length:"get_length",get_id3:"get_id3"} }); var flixel_addons_text_TypeSound = function(stream,context) { openfl_media_Sound.call(this,stream,context); }; $hxClasses["flixel.addons.text.TypeSound"] = flixel_addons_text_TypeSound; flixel_addons_text_TypeSound.__name__ = "flixel.addons.text.TypeSound"; flixel_addons_text_TypeSound.__super__ = openfl_media_Sound; flixel_addons_text_TypeSound.prototype = $extend(openfl_media_Sound.prototype,{ __class__: flixel_addons_text_TypeSound }); var flixel_addons_text_FlxTypeText = function(X,Y,Width,Text1,Size,EmbeddedFont) { if(EmbeddedFont == null) { EmbeddedFont = true; } if(Size == null) { Size = 8; } this._typeVarPercent = 0.5; this._typingVariation = false; this._cursorTimer = 0.0; this._waiting = false; this._erasing = false; this._typing = false; this._length = 0; this._waitTimer = 0.0; this._timer = 0.0; this._finalText = ""; this.skipKeys = []; this.finishSounds = false; this.useDefaultSound = false; this.paused = false; this.waitTime = 1.0; this.autoErase = false; this.prefix = ""; this.cursorBlinkSpeed = 0.5; this.cursorCharacter = "|"; this.showCursor = false; this.eraseDelay = 0.02; this.delay = 0.05; flixel_text_FlxText.call(this,X,Y,Width,"",Size,EmbeddedFont); this._finalText = Text1; }; $hxClasses["flixel.addons.text.FlxTypeText"] = flixel_addons_text_FlxTypeText; flixel_addons_text_FlxTypeText.__name__ = "flixel.addons.text.FlxTypeText"; flixel_addons_text_FlxTypeText.__super__ = flixel_text_FlxText; flixel_addons_text_FlxTypeText.prototype = $extend(flixel_text_FlxText.prototype,{ delay: null ,eraseDelay: null ,showCursor: null ,cursorCharacter: null ,cursorBlinkSpeed: null ,prefix: null ,autoErase: null ,waitTime: null ,paused: null ,sounds: null ,useDefaultSound: null ,finishSounds: null ,skipKeys: null ,completeCallback: null ,eraseCallback: null ,_finalText: null ,_timer: null ,_waitTimer: null ,_length: null ,_typing: null ,_erasing: null ,_waiting: null ,_cursorTimer: null ,_typingVariation: null ,_typeVarPercent: null ,_sound: null ,start: function(Delay,ForceRestart,AutoErase,SkipKeys,Callback) { if(AutoErase == null) { AutoErase = false; } if(ForceRestart == null) { ForceRestart = false; } if(Delay != null) { this.delay = Delay; } this._typing = true; this._erasing = false; this.paused = false; this._waiting = false; if(ForceRestart) { this.set_text(""); this._length = 0; } this.autoErase = AutoErase; if(SkipKeys != null) { this.skipKeys = SkipKeys; } if(Callback != null) { this.completeCallback = Callback; } this.insertBreakLines(); if(this.useDefaultSound) { this.loadDefaultSound(); } } ,applyMarkup: function(input,rules) { flixel_text_FlxText.prototype.applyMarkup.call(this,input,rules); this.resetText(this.text); return this; } ,insertBreakLines: function() { var saveText = this.text; var last = this._finalText.length; var n0 = 0; var n1 = 0; while(true) { last = HxOverrides.substr(this._finalText,0,last).lastIndexOf(" "); if(last <= 0) { break; } this.set_text(this.prefix + this._finalText); n0 = this.textField.get_numLines(); var nextText = HxOverrides.substr(this._finalText,0,last) + "\n" + HxOverrides.substr(this._finalText,last + 1,this._finalText.length); this.set_text(this.prefix + nextText); n1 = this.textField.get_numLines(); if(n0 == n1) { this._finalText = nextText; } } this.set_text(saveText); } ,erase: function(Delay,ForceRestart,SkipKeys,Callback) { if(ForceRestart == null) { ForceRestart = false; } this._erasing = true; this._typing = false; this.paused = false; this._waiting = false; if(Delay != null) { this.eraseDelay = Delay; } if(ForceRestart) { this._length = this._finalText.length; this.set_text(this._finalText); } if(SkipKeys != null) { this.skipKeys = SkipKeys; } this.eraseCallback = Callback; if(this.useDefaultSound) { this.loadDefaultSound(); } } ,resetText: function(Text1) { this.set_text(""); this._finalText = Text1; this._typing = false; this._erasing = false; this.paused = false; this._waiting = false; this._length = 0; } ,setTypingVariation: function(Amount,On) { if(On == null) { On = true; } if(Amount == null) { Amount = 0.5; } this._typingVariation = On; var lowerBound = Amount < 0 ? 0 : Amount; this._typeVarPercent = lowerBound > 1 ? 1 : lowerBound; } ,onComplete: function() { this._timer = 0; this._typing = false; if(this.useDefaultSound) { var _this = this._sound; _this.cleanup(_this.autoDestroy,true); } else if(this.sounds != null) { var _g = 0; var _g1 = this.sounds; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; sound.cleanup(sound.autoDestroy,true); } } if(this.completeCallback != null) { this.completeCallback(); } if(this.autoErase && this.waitTime <= 0) { this._erasing = true; } else if(this.autoErase) { this._waitTimer = this.waitTime; this._waiting = true; } } ,onErased: function() { this._timer = 0; this._erasing = false; if(this.eraseCallback != null) { this.eraseCallback(); } } ,update: function(elapsed) { if(this.skipKeys != null && this.skipKeys.length > 0 && flixel_FlxG.keys.checkKeyArrayState(this.skipKeys,2)) { this.skip(); } if(this._waiting && !this.paused) { this._waitTimer -= elapsed; if(this._waitTimer <= 0) { this._waiting = false; this._erasing = true; } } if(!this._waiting && !this.paused) { if(this._length < this._finalText.length && this._typing) { this._timer += elapsed; } if(this._length > 0 && this._erasing) { this._timer += elapsed; } } if(this._typing || this._erasing) { if(this._typing && this._timer >= this.delay) { this._length += this._timer / this.delay | 0; if(this._length > this._finalText.length) { this._length = this._finalText.length; } } if(this._erasing && this._timer >= this.eraseDelay) { this._length -= this._timer / this.eraseDelay | 0; if(this._length < 0) { this._length = 0; } } if(this._typing && this._timer >= this.delay || this._erasing && this._timer >= this.eraseDelay) { if(this._typingVariation) { if(this._typing) { this._timer = flixel_FlxG.random.float(-this.delay * this._typeVarPercent / 2,this.delay * this._typeVarPercent / 2); } else { this._timer = flixel_FlxG.random.float(-this.eraseDelay * this._typeVarPercent / 2,this.eraseDelay * this._typeVarPercent / 2); } } else { this._timer %= this.delay; } if(this.sounds != null && !this.useDefaultSound) { if(!this.finishSounds) { var _g = 0; var _g1 = this.sounds; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; sound.cleanup(sound.autoDestroy,true); } } flixel_FlxG.random.getObject_flixel_sound_FlxSound(this.sounds).play(!this.finishSounds); } else if(this.useDefaultSound) { this._sound.play(!this.finishSounds); } } } flixel_addons_text_FlxTypeText.helperString = this.prefix + HxOverrides.substr(this._finalText,0,this._length); if(this.showCursor) { this._cursorTimer += elapsed; var isBreakLine = (this.prefix + this._finalText).charAt(flixel_addons_text_FlxTypeText.helperString.length) == "\n"; if(this._cursorTimer > this.cursorBlinkSpeed / 2 && !isBreakLine) { flixel_addons_text_FlxTypeText.helperString += this.cursorCharacter.charAt(0); } if(this._cursorTimer > this.cursorBlinkSpeed) { this._cursorTimer = 0; } } if(flixel_addons_text_FlxTypeText.helperString != this.text) { this.set_text(flixel_addons_text_FlxTypeText.helperString); if(this._length >= this._finalText.length && this._typing && !this._waiting && !this._erasing) { this.onComplete(); } if(this._length == 0 && this._erasing && !this._typing && !this._waiting) { this.onErased(); } } flixel_text_FlxText.prototype.update.call(this,elapsed); } ,skip: function() { if(this._erasing || this._waiting) { this._length = 0; this._waiting = false; } else if(this._typing) { this._length = this._finalText.length; } } ,loadDefaultSound: function() { this._sound = flixel_FlxG.sound.load(new flixel_addons_text_TypeSound()); } ,__class__: flixel_addons_text_FlxTypeText }); var openfl_text_TextField = function() { this.__forceCachedBitmapUpdate = false; this.__renderedOnCanvasWhileOnDOM = false; this.__mouseScrollVCounter = 0; this.condenseWhite = false; openfl_display_InteractiveObject.call(this); this.__drawableType = 7; this.__caretIndex = -1; this.__selectionIndex = -1; this.__displayAsPassword = false; this.__graphics = new openfl_display_Graphics(this); this.__textEngine = new openfl_text__$internal_TextEngine(this); this.__layoutDirty = true; this.__offsetX = 0; this.__offsetY = 0; this.__mouseWheelEnabled = true; this.__text = ""; this.doubleClickEnabled = 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_text__$internal_TextFormatRange(this.__textFormat,0,0)); this.addEventListener("mouseDown",$bind(this,this.this_onMouseDown)); this.addEventListener("focusIn",$bind(this,this.this_onFocusIn)); this.addEventListener("focusOut",$bind(this,this.this_onFocusOut)); this.addEventListener("keyDown",$bind(this,this.this_onKeyDown)); this.addEventListener("mouseWheel",$bind(this,this.this_onMouseWheel)); this.addEventListener("doubleClick",$bind(this,this.this_onDoubleClick)); }; $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,{ condenseWhite: null ,__bounds: null ,__caretIndex: null ,__cursorTimer: null ,__dirty: null ,__displayAsPassword: null ,__domRender: null ,__inputEnabled: null ,__isHTML: null ,__layoutDirty: null ,__mouseScrollVCounter: null ,__mouseWheelEnabled: null ,__offsetX: null ,__offsetY: null ,__selectionIndex: null ,__showCursor: null ,__styleSheet: null ,__text: null ,__htmlText: null ,__textEngine: null ,__textFormat: null ,__div: null ,__renderedOnCanvasWhileOnDOM: null ,__forceCachedBitmapUpdate: null ,appendText: function(text) { if(text == null || text == "") { return; } this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.__updateText(this.__text + text); this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end = this.__text.length; this.__selectionIndex = this.__caretIndex = this.__text.length; } ,getCharBoundaries: function(charIndex) { if(charIndex < 0 || charIndex > this.__text.length - 1) { return null; } var rect = new openfl_geom_Rectangle(); if(this.__getCharBoundaries(charIndex,rect)) { return rect; } else { 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 _g = 0; var _g1 = this.get_scrollV() - 1; while(_g < _g1) { var i = _g++; y += this.__textEngine.lineHeights.get(i); } var group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(y >= group1.offsetY && y <= group1.offsetY + group1.height) { if(x >= group1.offsetX && x <= group1.offsetX + group1.width) { var advance = 0.0; var _g = 0; var _g1 = group1.positions.length; while(_g < _g1) { var i = _g++; advance += group1.positions[i]; if(x <= group1.offsetX + advance) { return group1.startIndex + i; } } return group1.endIndex; } } } return -1; } ,getFirstCharInParagraph: function(charIndex) { if(charIndex < 0 || charIndex > this.get_text().length) { return -1; } if(this.__textEngine.lineBreaks.get_length() == 0) { return 0; } var _g = 0; var _g1 = this.__textEngine.lineBreaks.get_length(); while(_g < _g1) { var i = _g++; if(charIndex <= this.__textEngine.lineBreaks.get(i)) { if(i == 0) { return 0; } else { return this.__textEngine.lineBreaks.get(i - 1) + 1; } } } return this.__textEngine.lineBreaks.get(this.__textEngine.lineBreaks.get_length() - 1) + 1; } ,getLineIndexAtPoint: function(x,y) { this.__updateLayout(); if(x <= 2 || x > this.get_width() + 4 || y <= 0 || y > this.get_height() + 4) { return -1; } var _g = 0; var _g1 = this.get_scrollV() - 1; while(_g < _g1) { var i = _g++; y += this.__textEngine.lineHeights.get(i); } var group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(y >= group1.offsetY && y <= group1.offsetY + group1.height) { return group1.lineIndex; } } return -1; } ,getLineIndexOfChar: function(charIndex) { if(charIndex < 0 || charIndex > this.__text.length) { return -1; } this.__updateLayout(); var group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.startIndex <= charIndex && group1.endIndex >= charIndex) { return group1.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 group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex == lineIndex) { if(startIndex == -1) { startIndex = group1.startIndex; } } else if(group1.lineIndex == lineIndex + 1) { endIndex = group1.startIndex; break; } } if(endIndex == -1) { endIndex = this.__text.length; } return endIndex - startIndex; } ,getLineMetrics: function(lineIndex) { this.__updateLayout(); var ascender = this.__textEngine.lineAscents.get(lineIndex); var descender = this.__textEngine.lineDescents.get(lineIndex); var leading = this.__textEngine.lineLeadings.get(lineIndex); var lineHeight = this.__textEngine.lineHeights.get(lineIndex); var lineWidth = this.__textEngine.lineWidths.get(lineIndex); var margin; switch(this.__textFormat.align) { case 0: margin = (this.__textEngine.width - lineWidth) / 2; break; case 1:case 4: margin = this.__textEngine.width - lineWidth - 2; break; case 2:case 3:case 5: margin = 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 group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex == lineIndex) { return group1.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 group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex == lineIndex) { if(startIndex == -1) { startIndex = group1.startIndex; } } else if(group1.lineIndex == lineIndex + 1) { endIndex = group1.startIndex; break; } } if(endIndex == -1) { endIndex = this.__text.length; } return this.__textEngine.text.substring(startIndex,endIndex); } ,getParagraphLength: function(charIndex) { if(charIndex < 0 || charIndex > this.get_text().length) { return -1; } var startIndex = this.getFirstCharInParagraph(charIndex); if(charIndex >= this.get_text().length) { return this.get_text().length - startIndex + 1; } var endIndex = this.__textEngine.getLineBreakIndex(charIndex) + 1; if(endIndex == 0) { endIndex = this.__text.length; } return endIndex - startIndex; } ,getTextFormat: function(beginIndex,endIndex) { if(endIndex == null) { endIndex = -1; } if(beginIndex == null) { beginIndex = -1; } var format = null; if(beginIndex >= this.get_text().length || beginIndex < -1 || endIndex > this.get_text().length || endIndex < -1) { throw new openfl_errors_RangeError("The supplied index is out of bounds"); } if(beginIndex == -1) { beginIndex = 0; } if(endIndex == -1) { endIndex = this.get_text().length; } if(beginIndex >= endIndex) { return new openfl_text_TextFormat(); } var group = this.__textEngine.textFormatRanges.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.start <= beginIndex && group1.end > beginIndex || group1.start < endIndex && group1.end >= endIndex) { if(format == null) { format = group1.format.clone(); } else { if(group1.format.font != format.font) { format.font = null; } if(group1.format.size != format.size) { format.size = null; } if(group1.format.color != format.color) { format.color = null; } if(group1.format.bold != format.bold) { format.bold = null; } if(group1.format.italic != format.italic) { format.italic = null; } if(group1.format.underline != format.underline) { format.underline = null; } if(group1.format.url != format.url) { format.url = null; } if(group1.format.target != format.target) { format.target = null; } if(group1.format.align != format.align) { format.align = null; } if(group1.format.leftMargin != format.leftMargin) { format.leftMargin = null; } if(group1.format.rightMargin != format.rightMargin) { format.rightMargin = null; } if(group1.format.indent != format.indent) { format.indent = null; } if(group1.format.leading != format.leading) { format.leading = null; } if(group1.format.blockIndent != format.blockIndent) { format.blockIndent = null; } if(group1.format.bullet != format.bullet) { format.bullet = null; } if(group1.format.kerning != format.kerning) { format.kerning = null; } if(group1.format.letterSpacing != format.letterSpacing) { format.letterSpacing = null; } if(group1.format.tabStops != format.tabStops) { format.tabStops = null; } } } } if(format == null) { format = new openfl_text_TextFormat(); } return format; } ,replaceSelectedText: function(value) { this.__replaceSelectedText(value,false); } ,replaceText: function(beginIndex,endIndex,newText) { this.__replaceText(beginIndex,endIndex,newText,false); } ,setSelection: function(beginIndex,endIndex) { this.__selectionIndex = beginIndex; this.__caretIndex = endIndex; this.__updateScrollV(); this.__updateScrollH(); if(this.stage != null && this.stage.get_focus() == this) { this.__stopCursorTimer(); this.__startCursorTimer(); } } ,setTextFormat: function(format,beginIndex,endIndex) { if(endIndex == null) { endIndex = -1; } if(beginIndex == null) { beginIndex = -1; } var max = this.get_text().length; var range; if(beginIndex == -1) { if(endIndex == -1) { endIndex = max; } beginIndex = 0; } else if(endIndex == -1) { endIndex = beginIndex + 1; } if(beginIndex == endIndex) { return; } if(beginIndex < 0 || endIndex <= 0 || endIndex < beginIndex || beginIndex >= max || endIndex > max) { throw new openfl_errors_RangeError(); } if(beginIndex == 0 && endIndex == max) { this.__textEngine.textFormatRanges.set_length(1); range = this.__textEngine.textFormatRanges.get(0); range.start = 0; range.end = max; range.format.__merge(format); } else { var index = 0; var newRange; while(index < this.__textEngine.textFormatRanges.get_length()) { range = this.__textEngine.textFormatRanges.get(index); if(range.end <= beginIndex) { ++index; } else if(range.start >= endIndex) { break; } else if(range.start <= beginIndex && range.end >= endIndex) { if(range.start == beginIndex && range.end == endIndex) { range.format = range.format.clone(); range.format.__merge(format); break; } else if(range.start == beginIndex) { newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),beginIndex,endIndex); newRange.format.__merge(format); this.__textEngine.textFormatRanges.insertAt(index,newRange); range.start = endIndex; index += 2; } else if(range.end == endIndex) { newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),beginIndex,endIndex); newRange.format.__merge(format); this.__textEngine.textFormatRanges.insertAt(index + 1,newRange); range.end = beginIndex; break; } else { newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),beginIndex,endIndex); newRange.format.__merge(format); this.__textEngine.textFormatRanges.insertAt(index + 1,newRange); newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),endIndex,range.end); this.__textEngine.textFormatRanges.insertAt(index + 2,newRange); range.end = beginIndex; break; } } else if(range.start >= beginIndex && range.end <= endIndex) { if(range.start == beginIndex) { range.format = range.format.clone(); range.format.__merge(format); range.end = endIndex; } else { this.__textEngine.textFormatRanges.removeAt(index); } } else if(range.start > beginIndex && range.end > beginIndex) { range.start = endIndex; break; } else if(range.start < beginIndex && range.end <= endIndex) { newRange = new openfl_text__$internal_TextFormatRange(range.format.clone(),beginIndex,endIndex); newRange.format.__merge(format); this.__textEngine.textFormatRanges.insertAt(index + 1,newRange); range.end = beginIndex; index += 2; } else { ++index; lime_utils_Log.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.",{ fileName : "openfl/text/TextField.hx", lineNumber : 1578, className : "openfl.text.TextField", methodName : "setTextFormat"}); } } } this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } ,__allowMouseFocus: function() { return this.mouseEnabled; } ,__caretBeginningOfLine: function() { this.__caretIndex = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)); } ,__caretBeginningOfNextLine: function() { var lineIndex = this.getLineIndexOfChar(this.__caretIndex); if(lineIndex < this.__textEngine.numLines - 1) { this.__caretIndex = this.getLineOffset(lineIndex + 1); } else { this.__caretIndex = this.__text.length; } } ,__caretBeginningOfPreviousLine: function() { var lineIndex = this.getLineIndexOfChar(this.__caretIndex); if(lineIndex > 0) { var index = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)); if(this.__caretIndex == index) { this.__caretIndex = this.getLineOffset(lineIndex - 1); } else { this.__caretIndex = index; } } } ,__caretEndOfLine: function() { var lineIndex = this.getLineIndexOfChar(this.__caretIndex); if(lineIndex < this.__textEngine.numLines - 1) { this.__caretIndex = this.getLineOffset(lineIndex + 1) - 1; } else { this.__caretIndex = this.__text.length; } } ,__caretNextCharacter: function() { if(this.__caretIndex < this.__text.length) { this.__caretIndex++; } } ,__caretNextLine: function() { var lineIndex = this.getLineIndexOfChar(this.__caretIndex); if(lineIndex < this.__textEngine.numLines - 1) { this.__caretIndex = this.__getCharIndexOnDifferentLine(this.get_caretIndex(),lineIndex + 1); } } ,__caretPreviousCharacter: function() { if(this.__caretIndex > 0) { this.__caretIndex--; } } ,__caretPreviousLine: function() { var lineIndex = this.getLineIndexOfChar(this.__caretIndex); if(lineIndex > 0) { this.__caretIndex = this.__getCharIndexOnDifferentLine(this.get_caretIndex(),lineIndex - 1); } } ,__disableInput: function() { if(this.__inputEnabled && this.stage != null) { this.stage.window.__backend.setTextInputEnabled(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(); } } ,__dispatch: function(event) { if(event.eventPhase == 2 && event.type == "mouseUp") { var event1 = event; var group = this.__getGroup(this.get_mouseX(),this.get_mouseY(),true); if(group != null) { var url = group.format.url; if(url != null && url != "") { if(StringTools.startsWith(url,"event:")) { this.dispatchEvent(new openfl_events_TextEvent("link",true,false,HxOverrides.substr(url,6,null))); } else { openfl_Lib.getURL(new openfl_net_URLRequest(url)); } } } } return openfl_display_InteractiveObject.prototype.__dispatch.call(this,event); } ,__enableInput: function() { if(this.stage != null) { var bounds = this.getBounds(this.stage); var limeRect = new lime_math_Rectangle(bounds.x,bounds.y,bounds.width,bounds.height); this.stage.window.setTextInputRect(limeRect); this.stage.window.__backend.setTextInputEnabled(true); if(!this.__inputEnabled) { this.stage.window.__backend.setTextInputEnabled(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.__stopCursorTimer(); this.__startCursorTimer(); } } } ,__getAdvance: function(position) { return position; } ,__getBounds: function(rect,matrix) { this.__updateLayout(); var bounds = openfl_geom_Rectangle.__pool.get(); bounds.copyFrom(this.__textEngine.bounds); bounds.offset(this.__offsetX,this.__offsetY); bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); openfl_geom_Rectangle.__pool.release(bounds); } ,__getCharBoundaries: function(charIndex,rect) { if(charIndex < 0 || charIndex > this.__text.length - 1) { return false; } this.__updateLayout(); var group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(charIndex >= group1.startIndex && charIndex < group1.endIndex) { try { var x = group1.offsetX; var _g = 0; var _g1 = charIndex - group1.startIndex; while(_g < _g1) { var i = _g++; x += group1.positions[i]; } var lastPosition = group1.positions[charIndex - group1.startIndex]; rect.setTo(x,group1.offsetY,lastPosition,group1.ascent + group1.descent); return true; } catch( _g2 ) { haxe_NativeStackTrace.lastError = _g2; } } } return false; } ,__getCharIndexOnDifferentLine: function(charIndex,lineIndex) { if(charIndex < 0 || charIndex > this.__text.length) { return -1; } if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) { return -1; } var x = null; var y = null; var group = this.__textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(charIndex >= group1.startIndex && charIndex <= group1.endIndex) { x = group1.offsetX; var _g = 0; var _g1 = charIndex - group1.startIndex; while(_g < _g1) { var i = _g++; x += group1.positions[i]; } if(y != null) { return this.__getPosition(x,y); } } if(group1.lineIndex == lineIndex) { y = group1.offsetY + group1.height / 2; var _g2 = 0; var _g3 = this.get_scrollV() - 1; while(_g2 < _g3) { var i1 = _g2++; y -= this.__textEngine.lineHeights.get(i1); } if(x != null) { return this.__getPosition(x,y); } } } return -1; } ,__getCursor: function() { var group = this.__getGroup(this.get_mouseX(),this.get_mouseY(),true); if(group != null && group.format.url != "") { return "button"; } else if(this.__textEngine.selectable) { return "ibeam"; } return null; } ,__getGroup: function(x,y,precise) { if(precise == null) { precise = false; } this.__updateLayout(); x += this.get_scrollH(); var _g = 0; var _g1 = this.get_scrollV() - 1; while(_g < _g1) { var i = _g++; y += this.__textEngine.lineHeights.get(i); } if(!precise && y > this.__textEngine.textHeight) { y = this.__textEngine.textHeight; } var firstGroup = true; var group; var nextGroup; var _g = 0; var _g1 = this.__textEngine.layoutGroups.get_length(); while(_g < _g1) { var i = _g++; group = this.__textEngine.layoutGroups.get(i); if(i < this.__textEngine.layoutGroups.get_length() - 1) { nextGroup = this.__textEngine.layoutGroups.get(i + 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 || !precise && nextGroup == null) { if(x >= group.offsetX && x <= group.offsetX + group.width || !precise && (nextGroup == null || nextGroup.lineIndex != group.lineIndex)) { return group; } } } return null; } ,__getPosition: function(x,y) { var group = this.__getGroup(x,y); if(group == null) { return this.__text.length; } var advance = 0.0; var _g = 0; var _g1 = group.positions.length; while(_g < _g1) { var i = _g++; advance += group.positions[i]; if(x <= group.offsetX + advance) { if(x <= group.offsetX + (advance - group.positions[i]) + group.positions[i] / 2) { return group.startIndex + i; } else if(group.startIndex + i < group.endIndex) { return group.startIndex + i + 1; } else { return group.endIndex; } } } return group.endIndex; } ,__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.__getRenderTransform(); this.__updateLayout(); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x)); if(this.__textEngine.bounds.contains(px,py)) { if(stack != null) { stack.push(hitObject); } return true; } return false; } ,__hitTestMask: function(x,y) { this.__getRenderTransform(); this.__updateLayout(); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x)); if(this.__textEngine.bounds.contains(px,py)) { return true; } return false; } ,__replaceSelectedText: function(value,restrict) { if(restrict == null) { restrict = true; } if(value == null) { value = ""; } if(value == "" && this.__selectionIndex == this.__caretIndex) { return; } var startIndex = this.__caretIndex < this.__selectionIndex ? this.__caretIndex : this.__selectionIndex; var endIndex = this.__caretIndex > this.__selectionIndex ? this.__caretIndex : this.__selectionIndex; if(startIndex == endIndex && this.__textEngine.maxChars > 0 && this.__text.length == this.__textEngine.maxChars) { return; } if(startIndex > this.__text.length) { startIndex = this.__text.length; } if(endIndex > this.__text.length) { endIndex = this.__text.length; } if(endIndex < startIndex) { var cache = endIndex; endIndex = startIndex; startIndex = cache; } if(startIndex < 0) { startIndex = 0; } this.__replaceText(startIndex,endIndex,value,restrict); } ,__replaceText: function(beginIndex,endIndex,newText,restrict) { if(endIndex < beginIndex || beginIndex < 0 || endIndex > this.__text.length || newText == null) { return; } if(restrict) { newText = this.__textEngine.restrictText(newText); if(this.__textEngine.maxChars > 0) { var removeLength = endIndex - beginIndex; var maxLength = this.__textEngine.maxChars - this.__text.length + removeLength; if(maxLength <= 0) { newText = ""; } else if(maxLength < newText.length) { newText = HxOverrides.substr(newText,0,maxLength); } } } this.__updateText(this.__text.substring(0,beginIndex) + newText + this.__text.substring(endIndex)); var offset = newText.length - (endIndex - beginIndex); var i = 0; var range; while(i < this.__textEngine.textFormatRanges.get_length()) { range = this.__textEngine.textFormatRanges.get(i); if(beginIndex == endIndex) { if(range.start == range.end) { if(range.start != 0) { lime_utils_Log.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.",{ fileName : "openfl/text/TextField.hx", lineNumber : 2087, className : "openfl.text.TextField", methodName : "__replaceText"}); } else { range.end += offset; } } else if(range.end >= beginIndex) { if(range.start >= beginIndex) { range.start += offset; range.end += offset; } else if(range.start < beginIndex && range.end >= endIndex) { range.end += offset; } } } else if(range.end > beginIndex) { if(range.start > endIndex) { range.start += offset; range.end += offset; } else if(range.start <= beginIndex && range.end > endIndex) { range.end += offset; } else if(range.start >= beginIndex && range.end <= endIndex) { var this1 = this.__textEngine.textFormatRanges; this1.__tempIndex = i--; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,1); } else if(range.end > endIndex && range.start > beginIndex && range.start <= endIndex) { range.start = beginIndex; range.end += offset; } else if(range.start < beginIndex && range.end > beginIndex && range.end <= endIndex) { range.end = beginIndex; } } ++i; } if(this.__textEngine.textFormatRanges.get_length() == 0) { this.__textEngine.textFormatRanges.push(new openfl_text__$internal_TextFormatRange(this.get_defaultTextFormat().clone(),0,newText.length)); } else if(beginIndex == endIndex && this.__textEngine.textFormatRanges.get(0).start > 0) { this.__textEngine.textFormatRanges.unshift(new openfl_text__$internal_TextFormatRange(this.get_defaultTextFormat().clone(),0,this.__textEngine.textFormatRanges.get(0).start)); } else if(beginIndex != endIndex && this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end < this.__text.length) { this.__textEngine.textFormatRanges.push(new openfl_text__$internal_TextFormatRange(this.get_defaultTextFormat().clone(),this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end,this.__text.length)); } this.__selectionIndex = this.__caretIndex = beginIndex + newText.length; this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } ,__startCursorTimer: function() { if(this.get_type() == 1) { if(this.__inputEnabled) { this.__cursorTimer = haxe_Timer.delay($bind(this,this.__startCursorTimer),600); this.__showCursor = !this.__showCursor; } this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } else if(this.get_selectable()) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,__startTextInput: function() { if(this.__caretIndex < 0) { this.__caretIndex = this.__text.length; this.__selectionIndex = this.__caretIndex; } var enableInput = openfl_display_DisplayObject.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : true; if(enableInput) { this.__enableInput(); } } ,__stopCursorTimer: function() { if(this.__cursorTimer != null) { this.__cursorTimer.stop(); this.__cursorTimer = null; } if(this.__showCursor) { this.__showCursor = false; this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,__stopTextInput: function() { var disableInput = openfl_display_DisplayObject.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : true; if(disableInput) { this.__disableInput(); } } ,__updateLayout: function() { if(this.__layoutDirty) { var cacheWidth = this.__textEngine.width; this.__textEngine.update(); if(this.__textEngine.autoSize != 2) { if(this.__textEngine.width != cacheWidth) { switch(this.__textEngine.autoSize) { case 0: this.set_x(this.get_x() + (cacheWidth - this.__textEngine.width) / 2); break; case 3: this.set_x(this.get_x() + (cacheWidth - this.__textEngine.width)); break; default: } } this.__textEngine.getBounds(); } this.__layoutDirty = false; this.setSelection(this.__selectionIndex,this.__caretIndex); } } ,__updateScrollH: function() { this.__updateLayout(); if(this.get_textWidth() <= this.get_width() - 4) { this.set_scrollH(0); return; } var tempScrollH = this.get_scrollH(); if(this.__caretIndex == 0 || this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)) == this.__caretIndex) { tempScrollH = 0; } else { var caret = openfl_geom_Rectangle.__pool.get(); var written = false; if(this.__caretIndex < this.__text.length) { written = this.__getCharBoundaries(this.__caretIndex,caret); } if(!written) { this.__getCharBoundaries(this.__caretIndex - 1,caret); caret.x += caret.width; } while(caret.x < tempScrollH && tempScrollH > 0) tempScrollH -= 24; while(caret.x > tempScrollH + this.get_width() - 4) tempScrollH += 24; openfl_geom_Rectangle.__pool.release(caret); } if(tempScrollH > 0 && this.get_type() != 1) { var lineLength = this.getLineLength(this.getLineIndexOfChar(this.__caretIndex)); if(this.get_scrollH() + this.get_width() - 4 > lineLength) { this.set_scrollH(Math.ceil(lineLength - this.get_width() + 4)); } } if(tempScrollH < 0) { this.set_scrollH(0); } else if(tempScrollH > this.get_maxScrollH()) { this.set_scrollH(this.get_maxScrollH()); } else { this.set_scrollH(tempScrollH); } } ,__updateScrollV: function() { this.__updateLayout(); if(this.get_textHeight() <= this.get_height() - 4) { this.set_scrollV(1); return; } var lineIndex = this.getLineIndexOfChar(this.__caretIndex); if(lineIndex == -1 && this.__caretIndex > 0) { lineIndex = this.getLineIndexOfChar(this.__caretIndex - 1) + 1; } if(lineIndex + 1 < this.get_scrollV()) { this.set_scrollV(lineIndex + 1); } else if(lineIndex + 1 > this.get_bottomScrollV()) { var i = lineIndex; var tempHeight = 0.0; if(i >= this.__textEngine.lineHeights.get_length()) { i = this.__textEngine.lineHeights.get_length() - 1; } while(i >= 0) { tempHeight += this.__textEngine.lineHeights.get(i); if(tempHeight > this.get_height() - 4) { i += tempHeight - this.get_height() < 0 ? 1 : 2; break; } --i; } this.set_scrollV(i); } else { this.set_scrollV(this.get_scrollV()); } } ,__updateMouseDrag: function() { if(this.stage == null) { return; } if(this.get_mouseX() > this.get_width() - 1) { this.set_scrollH(this.get_scrollH() + (Math.max(Math.min((this.get_mouseX() - this.get_width()) * .1,10),1) | 0)); } else if(this.get_mouseX() < 1) { this.set_scrollH(this.get_scrollH() - (Math.max(Math.min(this.get_mouseX() * -.1,10),1) | 0)); } this.__mouseScrollVCounter++; if(this.__mouseScrollVCounter > this.stage.get_frameRate() / 10) { if(this.get_mouseY() > this.get_height() - 2) { this.set_scrollV(Math.min(this.get_scrollV() + Math.max(Math.min((this.get_mouseY() - this.get_height()) * .03,5),1),this.get_maxScrollV()) | 0); } else if(this.get_mouseY() < 2) { this.set_scrollV(this.get_scrollV() - (Math.max(Math.min(this.get_mouseY() * -.03,5),1) | 0)); } this.__mouseScrollVCounter = 0; } this.stage_onMouseMove(null); } ,__updateText: function(value) { if(openfl_display_DisplayObject.__supportDOM && this.__renderedOnCanvasWhileOnDOM) { this.__forceCachedBitmapUpdate = this.__text != value; } this.__textEngine.set_text(value); this.__text = this.__textEngine.text; if(this.stage != null && this.stage.get_focus() == this) { if(this.__text.length < this.__selectionIndex) { this.__selectionIndex = this.__text.length; } if(this.__text.length < this.__caretIndex) { this.__caretIndex = this.__text.length; } } else if(this.__isHTML) { this.__selectionIndex = this.__caretIndex = this.__text.length; } else { this.__selectionIndex = 0; this.__caretIndex = 0; } if(!this.__displayAsPassword || openfl_display_DisplayObject.__supportDOM && !this.__renderedOnCanvasWhileOnDOM) { this.__textEngine.set_text(this.__text); } else { var length = this.get_text().length; var mask = ""; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; mask += "*"; } this.__textEngine.set_text(mask); } } ,__updateTransforms: function(overrideTransform) { openfl_display_InteractiveObject.prototype.__updateTransforms.call(this,overrideTransform); var _this = this.__renderTransform; var px = this.__offsetX; var py = this.__offsetY; _this.tx = px * _this.a + py * _this.c + _this.tx; _this.ty = px * _this.b + py * _this.d + _this.ty; } ,get_antiAliasType: function() { return this.__textEngine.antiAliasType; } ,set_antiAliasType: function(value) { var tmp = 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; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.autoSize = value; } ,get_background: function() { return this.__textEngine.background; } ,set_background: function(value) { if(value != this.__textEngine.background) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.background = value; } ,get_backgroundColor: function() { return this.__textEngine.backgroundColor; } ,set_backgroundColor: function(value) { if(value != this.__textEngine.backgroundColor) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.backgroundColor = value; } ,get_border: function() { return this.__textEngine.border; } ,set_border: function(value) { if(value != this.__textEngine.border) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.border = value; } ,get_borderColor: function() { return this.__textEngine.borderColor; } ,set_borderColor: function(value) { if(value != this.__textEngine.borderColor) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.borderColor = value; } ,get_bottomScrollV: function() { this.__updateLayout(); return this.__textEngine.get_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; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } return value; } ,get_displayAsPassword: function() { return this.__displayAsPassword; } ,set_displayAsPassword: function(value) { if(value != this.__displayAsPassword) { this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.__displayAsPassword = value; this.__updateText(this.__text); } return 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 * Math.abs(this.get_scaleY()); } ,set_height: function(value) { if(value != this.__textEngine.height) { this.__setTransformDirty(); this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.__textEngine.height = value; } return this.__textEngine.height * Math.abs(this.get_scaleY()); } ,get_htmlText: function() { if(this.__isHTML) { return this.__htmlText; } else { return this.__text; } } ,set_htmlText: function(value) { if(!this.__isHTML || this.__text != value) { this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } this.__isHTML = true; if(this.condenseWhite) { var _this_r = new RegExp("\\s+","g".split("u").join("")); value = value.replace(_this_r," "); } this.__htmlText = value; value = openfl_text__$internal_HTMLParser.parse(value,this.get_multiline(),this.__styleSheet,this.__textFormat,this.__textEngine.textFormatRanges); this.__updateText(value); return value; } ,get_length: function() { if(this.__text != null) { return this.__text.length; } return 0; } ,get_maxChars: function() { return this.__textEngine.maxChars; } ,set_maxChars: function(value) { if(value != this.__textEngine.maxChars) { this.__textEngine.maxChars = value; this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return value; } ,get_maxScrollH: function() { this.__updateLayout(); return this.__textEngine.maxScrollH; } ,get_maxScrollV: function() { this.__updateLayout(); return this.__textEngine.get_maxScrollV(); } ,get_mouseWheelEnabled: function() { return this.__mouseWheelEnabled; } ,set_mouseWheelEnabled: function(value) { return this.__mouseWheelEnabled = value; } ,get_multiline: function() { return this.__textEngine.multiline; } ,set_multiline: function(value) { 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) { if(this.__textEngine.restrict != value) { this.__textEngine.set_restrict(value); this.__updateText(this.__text); } return value; } ,get_scrollH: function() { return this.__textEngine.scrollH; } ,set_scrollH: function(value) { this.__updateLayout(); if(value > this.__textEngine.maxScrollH) { value = this.__textEngine.maxScrollH; } if(value < 0) { value = 0; } if(value != this.__textEngine.scrollH) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.__textEngine.scrollH = value; this.dispatchEvent(new openfl_events_Event("scroll")); } return this.__textEngine.scrollH; } ,get_scrollV: function() { return this.__textEngine.get_scrollV(); } ,set_scrollV: function(value) { this.__updateLayout(); if(value != this.__textEngine.get_scrollV() || this.__textEngine.get_scrollV() == 0) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.__textEngine.set_scrollV(value); this.dispatchEvent(new openfl_events_Event("scroll")); } return this.__textEngine.get_scrollV(); } ,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 Math.min(this.__caretIndex,this.__selectionIndex) | 0; } ,get_selectionEndIndex: function() { return Math.max(this.__caretIndex,this.__selectionIndex) | 0; } ,get_sharpness: function() { return this.__textEngine.sharpness; } ,set_sharpness: function(value) { if(value != this.__textEngine.sharpness) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.sharpness = value; } ,get_styleSheet: function() { return this.__styleSheet; } ,set_styleSheet: function(value) { if(!(this.__styleSheet != null && value == null)) { if(value != null) { if(this.__isHTML && value != this.__styleSheet) { this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.set_htmlText(this.__htmlText); } this.set_type(0); } } return this.__styleSheet = value; } ,get_tabEnabled: function() { if(this.__tabEnabled == null) { return this.__textEngine.type == 1; } else { return this.__tabEnabled; } } ,get_text: function() { return this.__text; } ,set_text: function(value) { if(this.__styleSheet != null) { return this.set_htmlText(value); } if(this.__isHTML || this.__text != value) { this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } else { return value; } if(this.__textEngine.textFormatRanges.get_length() > 1) { var this1 = this.__textEngine.textFormatRanges; var deleteCount = this.__textEngine.textFormatRanges.get_length() - 1; this1.__tempIndex = 1; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,deleteCount); } var utfValue = value; var range = this.__textEngine.textFormatRanges.get(0); range.format = this.__textFormat; range.start = 0; range.end = utfValue.length; this.__isHTML = false; this.__updateText(value); return value; } ,get_textColor: function() { return this.__textFormat.color; } ,set_textColor: function(value) { if(value != this.__textFormat.color) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } var range = this.__textEngine.textFormatRanges.iterator(); while(range.hasNext()) { var range1 = range.next(); range1.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(this.__styleSheet != null) { value = 0; } if(value != this.__textEngine.type) { this.__textEngine.type = value; if(value == 1) { this.addEventListener("addedToStage",$bind(this,this.this_onAddedToStage)); this.this_onFocusIn(null); this.__textEngine.__useIntAdvances = true; } else { this.removeEventListener("addedToStage",$bind(this,this.this_onAddedToStage)); this.__stopTextInput(); this.__textEngine.__useIntAdvances = null; } this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.type; } ,get_width: function() { this.__updateLayout(); return this.__textEngine.width * Math.abs(this.__scaleX); } ,set_width: function(value) { if(value != this.__textEngine.width) { this.__setTransformDirty(); this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } this.__textEngine.width = value; } return this.__textEngine.width * Math.abs(this.__scaleX); } ,get_wordWrap: function() { return this.__textEngine.wordWrap; } ,set_wordWrap: function(value) { if(value != this.__textEngine.wordWrap) { this.__dirty = true; this.__layoutDirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return this.__textEngine.wordWrap = value; } ,get_x: function() { return this.__transform.tx + this.__offsetX; } ,set_x: function(value) { if(value != this.__transform.tx + this.__offsetX) { this.__setTransformDirty(); } this.__transform.tx = value - this.__offsetX; return value; } ,get_y: function() { return this.__transform.ty + this.__offsetY; } ,set_y: function(value) { if(value != this.__transform.ty + this.__offsetY) { this.__setTransformDirty(); } this.__transform.ty = value - this.__offsetY; return value; } ,stage_onMouseMove: function(event) { if(this.stage == null) { return; } if(this.get_selectable() && this.__selectionIndex >= 0) { this.__updateLayout(); var position = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY()); if(position != this.__caretIndex) { this.__caretIndex = position; var setDirty = true; if(openfl_display_DisplayObject.__supportDOM) { if(this.__renderedOnCanvasWhileOnDOM) { this.__forceCachedBitmapUpdate = true; } setDirty = false; } if(setDirty) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } } } ,stage_onMouseUp: function(event) { var stage = event.currentTarget; stage.removeEventListener("enterFrame",$bind(this,this.this_onEnterFrame)); stage.removeEventListener("mouseMove",$bind(this,this.stage_onMouseMove)); stage.removeEventListener("mouseUp",$bind(this,this.stage_onMouseUp)); if(this.stage != stage) { return; } if(stage.get_focus() == this) { this.__getWorldTransform(); this.__updateLayout(); var upPos = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY()); var leftPos = Math.min(this.__selectionIndex,upPos) | 0; var rightPos = Math.max(this.__selectionIndex,upPos) | 0; this.__selectionIndex = leftPos; this.__caretIndex = rightPos; if(this.__inputEnabled) { this.this_onFocusIn(null); this.__stopCursorTimer(); this.__startCursorTimer(); if(openfl_display_DisplayObject.__supportDOM && this.__renderedOnCanvasWhileOnDOM) { this.__forceCachedBitmapUpdate = true; } } } } ,this_onAddedToStage: function(event) { this.this_onFocusIn(null); } ,this_onEnterFrame: function(e) { this.__updateMouseDrag(); } ,this_onFocusIn: function(event) { if(this.get_type() == 1 && this.stage != null && this.stage.get_focus() == this) { this.__startTextInput(); } else if(this.get_type() != 1 && this.get_selectable() && this.stage != null && this.stage.get_focus() == this) { this.__startCursorTimer(); } } ,this_onFocusOut: function(event) { this.__stopCursorTimer(); this.__stopTextInput(); if(this.__selectionIndex != this.__caretIndex) { this.__selectionIndex = this.__caretIndex; this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,this_onKeyDown: function(event) { if(this.get_selectable() && this.get_type() != 1 && event.keyCode == 67 && (event.commandKey || event.ctrlKey)) { if(this.__caretIndex != this.__selectionIndex) { lime_system_Clipboard.set_text(this.__text.substring(this.__caretIndex,this.__selectionIndex)); } } } ,this_onMouseDown: function(event) { if(!this.get_selectable() && this.get_type() != 1) { return; } this.__updateLayout(); this.__caretIndex = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY()); this.__selectionIndex = this.__caretIndex; if(!openfl_display_DisplayObject.__supportDOM) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } if(this.stage == null) { return; } this.stage.addEventListener("enterFrame",$bind(this,this.this_onEnterFrame)); this.stage.addEventListener("mouseMove",$bind(this,this.stage_onMouseMove)); this.stage.addEventListener("mouseUp",$bind(this,this.stage_onMouseUp)); } ,this_onMouseWheel: function(event) { if(this.get_mouseWheelEnabled()) { this.set_scrollV(Math.min(this.get_scrollV() - event.delta,this.get_maxScrollV()) | 0); } } ,this_onDoubleClick: function(event) { if(this.get_selectable()) { this.__updateLayout(); var delimiters = ["\n",".","!","?",","," ",";",":","(",")","-","_","/"]; var txtStr = this.__text; var leftPos = -1; var rightPos = txtStr.length; var pos = 0; var startPos = Math.max(this.__caretIndex,1) | 0; if(txtStr.length > 0 && this.__caretIndex >= 0 && rightPos >= this.__caretIndex) { var _g = 0; while(_g < delimiters.length) { var c = delimiters[_g]; ++_g; pos = txtStr.lastIndexOf(c,startPos - 1); if(pos > leftPos) { leftPos = pos + 1; } pos = txtStr.indexOf(c,startPos); if(pos < rightPos && pos != -1) { rightPos = pos; } } if(leftPos != rightPos) { this.setSelection(leftPos,rightPos); var setDirty = true; if(openfl_display_DisplayObject.__supportDOM) { if(this.__renderedOnCanvasWhileOnDOM) { this.__forceCachedBitmapUpdate = true; } setDirty = false; } if(setDirty) { this.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } } } } ,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)); } else { this.__stopCursorTimer(); this.__startCursorTimer(); } break; case 97: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.setSelection(0,this.__text.length); } } break; case 99: if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { if(this.__caretIndex != this.__selectionIndex) { lime_system_Clipboard.set_text(this.__text.substring(this.__caretIndex,this.__selectionIndex)); } } break; case 120: if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { if(this.__caretIndex != this.__selectionIndex) { lime_system_Clipboard.set_text(this.__text.substring(this.__caretIndex,this.__selectionIndex)); this.replaceSelectedText(""); this.dispatchEvent(new openfl_events_Event("change",true)); } } break; case 127: if(this.__selectionIndex == this.__caretIndex && this.__caretIndex < this.__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)); } else { this.__stopCursorTimer(); this.__startCursorTimer(); } break; case 1073741898: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.__caretIndex = 0; } else { this.__caretBeginningOfLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.__selectionIndex = this.__caretIndex; } this.setSelection(this.__selectionIndex,this.__caretIndex); } break; case 1073741901: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.__caretIndex = this.__text.length; } else { this.__caretEndOfLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.__selectionIndex = this.__caretIndex; } this.setSelection(this.__selectionIndex,this.__caretIndex); } break; case 1073741903: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.__caretBeginningOfNextLine(); } else { this.__caretNextCharacter(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.__selectionIndex = this.__caretIndex; } this.setSelection(this.__selectionIndex,this.__caretIndex); } break; case 1073741904: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.__caretBeginningOfPreviousLine(); } else { this.__caretPreviousCharacter(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.__selectionIndex = this.__caretIndex; } this.setSelection(this.__selectionIndex,this.__caretIndex); } break; case 1073741905: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.__caretIndex = this.__text.length; } else { this.__caretNextLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.__selectionIndex = this.__caretIndex; } this.setSelection(this.__selectionIndex,this.__caretIndex); } break; case 1073741906: if(this.get_selectable()) { if(lime_ui_KeyModifier.get_metaKey(modifier) || lime_ui_KeyModifier.get_ctrlKey(modifier)) { this.__caretIndex = 0; } else { this.__caretPreviousLine(); } if(!lime_ui_KeyModifier.get_shiftKey(modifier)) { this.__selectionIndex = this.__caretIndex; } this.setSelection(this.__selectionIndex,this.__caretIndex); } break; case 13:case 1073741912: if(this.__textEngine.multiline) { var te = new openfl_events_TextEvent("textInput",true,true,"\n"); this.dispatchEvent(te); if(!te.isDefaultPrevented()) { this.__replaceSelectedText("\n",true); this.dispatchEvent(new openfl_events_Event("change",true)); } } else { this.__stopCursorTimer(); this.__startCursorTimer(); } break; default: } } ,window_onTextInput: function(value) { this.__replaceSelectedText(value,true); 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_styleSheet:"set_styleSheet",get_styleSheet:"get_styleSheet",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",set_mouseWheelEnabled:"set_mouseWheelEnabled",get_mouseWheelEnabled:"get_mouseWheelEnabled",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 flixel_addons_text_internal_CustomTextField = function(parent) { openfl_text_TextField.call(this); this.textParent = parent; this.stage = openfl_Lib.get_current().stage; this.removeEventListener("mouseDown",$bind(this,this.this_onMouseDown)); this.removeEventListener("focusIn",$bind(this,this.this_onFocusIn)); this.removeEventListener("focusOut",$bind(this,this.this_onFocusOut)); this.removeEventListener("keyDown",$bind(this,this.this_onKeyDown)); this.removeEventListener("mouseWheel",$bind(this,this.this_onMouseWheel)); this.removeEventListener("doubleClick",$bind(this,this.this_onDoubleClick)); }; $hxClasses["flixel.addons.text.internal.CustomTextField"] = flixel_addons_text_internal_CustomTextField; flixel_addons_text_internal_CustomTextField.__name__ = "flixel.addons.text.internal.CustomTextField"; flixel_addons_text_internal_CustomTextField.__super__ = openfl_text_TextField; flixel_addons_text_internal_CustomTextField.prototype = $extend(openfl_text_TextField.prototype,{ textParent: null ,__enableInput: function() { if(this.stage != null) { var rect = this.textParent.getTextInputRect(); if(rect != null) { this.stage.window.setTextInputRect(new lime_math_Rectangle(rect.x,rect.y,rect.width,rect.height)); if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } this.stage.window.__backend.setTextInputEnabled(true); if(!this.__inputEnabled) { this.stage.window.__backend.setTextInputEnabled(true); this.__inputEnabled = true; this.__stopCursorTimer(); this.__startCursorTimer(); } } } ,__class__: flixel_addons_text_internal_CustomTextField }); var flixel_addons_ui_interfaces_IFlxUIWidget = function() { }; $hxClasses["flixel.addons.ui.interfaces.IFlxUIWidget"] = flixel_addons_ui_interfaces_IFlxUIWidget; flixel_addons_ui_interfaces_IFlxUIWidget.__name__ = "flixel.addons.ui.interfaces.IFlxUIWidget"; flixel_addons_ui_interfaces_IFlxUIWidget.__isInterface__ = true; flixel_addons_ui_interfaces_IFlxUIWidget.__interfaces__ = [flixel_IFlxSprite]; flixel_addons_ui_interfaces_IFlxUIWidget.prototype = { get_width: null ,set_width: null ,get_height: null ,set_height: null ,name: null ,broadcastToFlxUI: null ,__class__: flixel_addons_ui_interfaces_IFlxUIWidget ,__properties__: {set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width"} }; var flixel_addons_ui_FlxTypedUIGroup = function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.autoBounds = true; this.broadcastToFlxUI = true; flixel_group_FlxTypedSpriteGroup.call(this,x,y); }; $hxClasses["flixel.addons.ui.FlxTypedUIGroup"] = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxTypedUIGroup.__name__ = "flixel.addons.ui.FlxTypedUIGroup"; flixel_addons_ui_FlxTypedUIGroup.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxTypedUIGroup.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_addons_ui_FlxTypedUIGroup.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ name: null ,broadcastToFlxUI: null ,autoBounds: null ,add: function(sprite) { var obj = flixel_group_FlxTypedSpriteGroup.prototype.add.call(this,sprite); if(this.autoBounds) { this.calcBounds(); } return sprite; } ,remove: function(sprite,splice) { if(splice == null) { splice = false; } var obj = flixel_group_FlxTypedSpriteGroup.prototype.remove.call(this,sprite,splice); if(this.autoBounds) { this.calcBounds(); } return obj; } ,setScrollFactor: function(x,y) { var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { var this1 = sprite.scrollFactor; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this1.set_x(x1); this1.set_y(y1); } } } ,hasThis: function(sprite) { return this.contains(sprite); } ,contains: function(sprite) { return this.group.members.indexOf(sprite) != -1; } ,calcBounds: function(rect) { if(this.group.members == null || this.group.members.length == 0) { this.set_width(this.set_height(0)); if(rect != null) { rect.x = 0; rect.y = 0; rect.width = 0; rect.height = 0; } return; } var left = Infinity; var right = -Infinity; var top = Infinity; var bottom = -Infinity; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null) { if(sprite.x < left) { left = sprite.x; } if(sprite.x + sprite.get_width() > right) { right = sprite.x + sprite.get_width(); } if(sprite.y < top) { top = sprite.y; } if(sprite.y + sprite.get_height() > bottom) { bottom = sprite.y + sprite.get_height(); } } } this.set_width(right - left); this.set_height(bottom - top); if(rect != null) { rect.x = left; rect.y = top; rect.width = this.get_width(); rect.height = this.get_height(); } } ,floorAll: function() { var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; sprite.set_x(Math.floor(sprite.x)); sprite.set_y(Math.floor(sprite.y)); } } ,__class__: flixel_addons_ui_FlxTypedUIGroup }); var flixel_addons_ui_interfaces_IHasParams = function() { }; $hxClasses["flixel.addons.ui.interfaces.IHasParams"] = flixel_addons_ui_interfaces_IHasParams; flixel_addons_ui_interfaces_IHasParams.__name__ = "flixel.addons.ui.interfaces.IHasParams"; flixel_addons_ui_interfaces_IHasParams.__isInterface__ = true; flixel_addons_ui_interfaces_IHasParams.prototype = { params: null ,set_params: null ,__class__: flixel_addons_ui_interfaces_IHasParams ,__properties__: {set_params:"set_params"} }; var flixel_addons_ui_interfaces_IFlxUIClickable = function() { }; $hxClasses["flixel.addons.ui.interfaces.IFlxUIClickable"] = flixel_addons_ui_interfaces_IFlxUIClickable; flixel_addons_ui_interfaces_IFlxUIClickable.__name__ = "flixel.addons.ui.interfaces.IFlxUIClickable"; flixel_addons_ui_interfaces_IFlxUIClickable.__isInterface__ = true; flixel_addons_ui_interfaces_IFlxUIClickable.prototype = { set_skipButtonUpdate: null ,skipButtonUpdate: null ,__class__: flixel_addons_ui_interfaces_IFlxUIClickable ,__properties__: {set_skipButtonUpdate:"set_skipButtonUpdate"} }; var flixel_addons_text_ui_FlxUINumericStepper = function(x,y,stepSize,defaultValue,min,max,decimals,stack,textInput,buttonPlus,buttonMinus,isPercent) { if(isPercent == null) { isPercent = false; } if(stack == null) { stack = flixel_addons_text_ui_StackMode.STACK_HORIZONTAL; } if(decimals == null) { decimals = 0; } if(max == null) { max = 999; } if(min == null) { min = -999; } if(defaultValue == null) { defaultValue = 0; } if(stepSize == null) { stepSize = 1; } if(y == null) { y = 0; } if(x == null) { x = 0; } this.value = 0; this.stepSize = 0; this.stack = flixel_addons_text_ui_StackMode.STACK_HORIZONTAL; this.min = 0; this.max = 10; this.isPercent = false; this.decimals = 0; flixel_addons_ui_FlxTypedUIGroup.call(this,x,y); if(textInput == null) { textInput = new flixel_addons_text_ui_FlxUITextInput(0,0,25); } textInput.setPosition(0,0); this.textInput = textInput; textInput.set_text(defaultValue == null ? "null" : "" + defaultValue); textInput.get_onChange().add($bind(this,this._onChange)); textInput.broadcastToFlxUI = false; this.stepSize = stepSize; this.set_decimals(decimals); this.set_min(min); this.set_max(max); this.set_value(defaultValue); this.set_isPercent(isPercent); var btnSize = textInput.get_height(); if(buttonPlus == null) { buttonPlus = new flixel_addons_ui_FlxUITypedButton(); buttonPlus.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],btnSize,btnSize,[flixel_util_FlxStringUtil.toIntArray("2,2,15,15")],0,-1,false,18,18); buttonPlus.set_label(new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/plus_mark.png")); buttonPlus.autoCenterLabel(); } if(buttonMinus == null) { buttonMinus = new flixel_addons_ui_FlxUITypedButton(); buttonMinus.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],btnSize,btnSize,[flixel_util_FlxStringUtil.toIntArray("2,2,15,15")],0,-1,false,18,18); buttonMinus.set_label(new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/minus_mark.png")); buttonMinus.autoCenterLabel(); } this.buttonPlus = buttonPlus; this.buttonMinus = buttonMinus; this.add(textInput); this.add(buttonPlus); this.add(buttonMinus); buttonPlus.onUp.callback = $bind(this,this._onPlus); buttonPlus.broadcastToFlxUI = false; buttonMinus.onUp.callback = $bind(this,this._onMinus); buttonMinus.broadcastToFlxUI = false; this.set_stack(stack); }; $hxClasses["flixel.addons.text.ui.FlxUINumericStepper"] = flixel_addons_text_ui_FlxUINumericStepper; flixel_addons_text_ui_FlxUINumericStepper.__name__ = "flixel.addons.text.ui.FlxUINumericStepper"; flixel_addons_text_ui_FlxUINumericStepper.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_text_ui_FlxUINumericStepper.__properties__ = {get_EDIT_EVENT:"get_EDIT_EVENT",get_CLICK_EVENT:"get_CLICK_EVENT",get_CHANGE_EVENT:"get_CHANGE_EVENT"}; flixel_addons_text_ui_FlxUINumericStepper.get_CHANGE_EVENT = function() { return "change_numeric_stepper"; }; flixel_addons_text_ui_FlxUINumericStepper.get_CLICK_EVENT = function() { return "click_numeric_stepper"; }; flixel_addons_text_ui_FlxUINumericStepper.get_EDIT_EVENT = function() { return "edit_numeric_stepper"; }; flixel_addons_text_ui_FlxUINumericStepper.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_text_ui_FlxUINumericStepper.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ decimals: null ,isPercent: null ,max: null ,min: null ,params: null ,skipButtonUpdate: null ,stack: null ,stepSize: null ,value: null ,buttonMinus: null ,buttonPlus: null ,textInput: null ,destroy: function() { this.buttonMinus = flixel_util_FlxDestroyUtil.destroy(this.buttonMinus); this.buttonPlus = flixel_util_FlxDestroyUtil.destroy(this.buttonPlus); this.textInput = flixel_util_FlxDestroyUtil.destroy(this.textInput); flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); } ,decimalize: function(f,digits) { var tens = Math.pow(10,digits); return Std.string(Math.round(f * tens) / tens); } ,doCallback: function(eventName) { if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event(eventName,this,this.value,this.params); } } ,_onChange: function() { var text = this.textInput.get_text(); var f = parseFloat(text); if(isNaN(f)) { text = Std.string(this.min); } var numDecimals = 0; var _g = 0; var _g1 = text.length; while(_g < _g1) { var i = _g++; var char = text.charAt(i); if(char == ".") { ++numDecimals; } } var justAddedDecimal = numDecimals == 1 && text.indexOf(".") == text.length - 1; if(!justAddedDecimal) { this.set_value(parseFloat(text)); this.doCallback("edit_numeric_stepper"); this.doCallback("change_numeric_stepper"); } } ,_onMinus: function() { this.set_value(this.value - this.stepSize); this.doCallback("click_numeric_stepper"); this.doCallback("change_numeric_stepper"); } ,_onPlus: function() { this.set_value(this.value + this.stepSize); this.doCallback("click_numeric_stepper"); this.doCallback("change_numeric_stepper"); } ,set_color: function(value) { this.color = value; this.buttonPlus.set_color(value); this.buttonMinus.set_color(value); this.textInput.set_backgroundColor(value); return value; } ,set_decimals: function(i) { this.decimals = i; if(i < 0) { this.decimals = 0; } this.set_value(this.value); return this.decimals; } ,set_isPercent: function(b) { this.isPercent = b; this.set_value(this.value); return this.isPercent; } ,set_max: function(f) { this.max = f; if(this.value > this.max) { this.set_value(this.max); } return this.max; } ,set_min: function(f) { this.min = f; if(this.value < this.min) { this.set_value(this.min); } return this.min; } ,set_params: function(p) { this.params = p; return this.params; } ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; this.buttonPlus.set_skipButtonUpdate(b); this.buttonMinus.set_skipButtonUpdate(b); return b; } ,set_stack: function(s) { this.stack = s; var btnSize = 10; switch(this.stack._hx_index) { case 0: btnSize = this.textInput.get_height() / 2; if(this.buttonPlus.get_height() != btnSize) { this.buttonPlus.resize(btnSize,btnSize); } if(this.buttonMinus.get_height() != btnSize) { this.buttonMinus.resize(btnSize,btnSize); } this.buttonPlus.set_x(this.textInput.x + this.textInput.get_width()); this.buttonPlus.set_y(this.textInput.y); this.buttonMinus.set_x(this.textInput.x + this.textInput.get_width()); this.buttonMinus.set_y(this.textInput.y + (this.textInput.get_height() - this.buttonMinus.get_height())); break; case 1: btnSize = this.textInput.get_height(); if(this.buttonPlus.get_height() != btnSize) { this.buttonPlus.resize(btnSize,btnSize); } if(this.buttonMinus.get_height() != btnSize) { this.buttonMinus.resize(btnSize,btnSize); } this.buttonPlus.set_x(this.textInput.x + this.textInput.get_width()); this.buttonPlus.set_y(this.textInput.y); this.buttonMinus.set_x(this.buttonPlus.x + this.buttonPlus.get_width()); this.buttonMinus.set_y(this.buttonPlus.y); break; } return this.stack; } ,set_value: function(f) { this.value = f; if(this.value < this.min) { this.value = this.min; } if(this.value > this.max) { this.value = this.max; } if(this.textInput != null) { var displayValue = this.value; if(this.isPercent) { displayValue *= 100; this.textInput.set_text(Std.string(this.decimalize(displayValue,this.decimals)) + "%"); } else { this.textInput.set_text(this.decimalize(displayValue,this.decimals)); } } return this.value; } ,__class__: flixel_addons_text_ui_FlxUINumericStepper ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_value:"set_value",set_stack:"set_stack",set_skipButtonUpdate:"set_skipButtonUpdate",set_params:"set_params",set_min:"set_min",set_max:"set_max",set_isPercent:"set_isPercent",set_decimals:"set_decimals"}) }); var flixel_addons_text_ui_StackMode = $hxEnums["flixel.addons.text.ui.StackMode"] = { __ename__:"flixel.addons.text.ui.StackMode",__constructs__:null ,STACK_VERTICAL: {_hx_name:"STACK_VERTICAL",_hx_index:0,__enum__:"flixel.addons.text.ui.StackMode",toString:$estr} ,STACK_HORIZONTAL: {_hx_name:"STACK_HORIZONTAL",_hx_index:1,__enum__:"flixel.addons.text.ui.StackMode",toString:$estr} }; flixel_addons_text_ui_StackMode.__constructs__ = [flixel_addons_text_ui_StackMode.STACK_VERTICAL,flixel_addons_text_ui_StackMode.STACK_HORIZONTAL]; flixel_addons_text_ui_StackMode.__empty_constructs__ = [flixel_addons_text_ui_StackMode.STACK_VERTICAL,flixel_addons_text_ui_StackMode.STACK_HORIZONTAL]; var flixel_addons_ui_interfaces_IResizable = function() { }; $hxClasses["flixel.addons.ui.interfaces.IResizable"] = flixel_addons_ui_interfaces_IResizable; flixel_addons_ui_interfaces_IResizable.__name__ = "flixel.addons.ui.interfaces.IResizable"; flixel_addons_ui_interfaces_IResizable.__isInterface__ = true; flixel_addons_ui_interfaces_IResizable.prototype = { get_width: null ,set_width: null ,get_height: null ,set_height: null ,resize: null ,__class__: flixel_addons_ui_interfaces_IResizable ,__properties__: {set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width"} }; var flixel_addons_text_ui_FlxUITextInput = function(x,y,fieldWidth,text,size,textColor,backgroundColor,embeddedFont) { if(embeddedFont == null) { embeddedFont = true; } if(backgroundColor == null) { backgroundColor = -1; } if(textColor == null) { textColor = -16777216; } if(size == null) { size = 8; } if(fieldWidth == null) { fieldWidth = 150; } if(y == null) { y = 0; } if(x == null) { x = 0; } this.fieldBorderThickness = 1; this.fieldBorderColor = -16777216; this.backgroundColor = -1; this.background = false; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.tf = new flixel_addons_text_ui_UITextInput(0,0,fieldWidth,text,size,embeddedFont); this.tf.set_wordWrap(this.tf.set_multiline(false)); this.tf.set_color(textColor); this.fieldBorderSprite = new flixel_FlxSprite(); this.backgroundSprite = new flixel_FlxSprite(); this.add(this.fieldBorderSprite); this.add(this.backgroundSprite); this.add(this.tf); this.set_backgroundColor(backgroundColor); if(backgroundColor != 0) { this.background = true; } this.get_onEnter().add($bind(this,this._onEnter)); this.get_onDelete().add($bind(this,this._onDelete)); this.get_onBackspace().add($bind(this,this._onDelete)); this.get_onInput().add($bind(this,this._onInput)); }; $hxClasses["flixel.addons.text.ui.FlxUITextInput"] = flixel_addons_text_ui_FlxUITextInput; flixel_addons_text_ui_FlxUITextInput.__name__ = "flixel.addons.text.ui.FlxUITextInput"; flixel_addons_text_ui_FlxUITextInput.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable]; flixel_addons_text_ui_FlxUITextInput.__properties__ = {get_INPUT_EVENT:"get_INPUT_EVENT",get_ENTER_EVENT:"get_ENTER_EVENT",get_DELETE_EVENT:"get_DELETE_EVENT",get_CHANGE_EVENT:"get_CHANGE_EVENT"}; flixel_addons_text_ui_FlxUITextInput.get_CHANGE_EVENT = function() { return "change_input_text"; }; flixel_addons_text_ui_FlxUITextInput.get_DELETE_EVENT = function() { return "delete_input_text"; }; flixel_addons_text_ui_FlxUITextInput.get_ENTER_EVENT = function() { return "enter_input_text"; }; flixel_addons_text_ui_FlxUITextInput.get_INPUT_EVENT = function() { return "input_input_text"; }; flixel_addons_text_ui_FlxUITextInput.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_addons_text_ui_FlxUITextInput.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ background: null ,backgroundColor: null ,broadcastToFlxUI: null ,fieldBorderColor: null ,fieldBorderThickness: null ,name: null ,params: null ,tf: null ,backgroundSprite: null ,fieldBorderSprite: null ,destroy: function() { this.backgroundSprite = flixel_util_FlxDestroyUtil.destroy(this.backgroundSprite); this.fieldBorderSprite = flixel_util_FlxDestroyUtil.destroy(this.fieldBorderSprite); this.tf = flixel_util_FlxDestroyUtil.destroy(this.tf); flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); } ,draw: function() { this.updateSprites(); flixel_group_FlxTypedSpriteGroup.prototype.draw.call(this); } ,updateHitbox: function() { this.updateSprites(); flixel_group_FlxTypedSpriteGroup.prototype.updateHitbox.call(this); } ,resize: function(w,h) { this.set_fieldWidth(w); this.set_fieldHeight(h); } ,updateSprites: function() { if(this.background && this.fieldBorderThickness > 0) { this.fieldBorderSprite.makeGraphic(1,1,this.fieldBorderColor); this.fieldBorderSprite.setGraphicSize(this.tf.get_width() + this.fieldBorderThickness * 2,this.tf.get_height() + this.fieldBorderThickness * 2); this.fieldBorderSprite.updateHitbox(); this.fieldBorderSprite.set_exists(true); } else { this.fieldBorderSprite.set_exists(false); } if(this.background) { this.backgroundSprite.makeGraphic(1,1,this.backgroundColor); this.backgroundSprite.setGraphicSize(this.tf.get_width(),this.tf.get_height()); this.backgroundSprite.updateHitbox(); this.backgroundSprite.setPosition(this.x + this.fieldBorderThickness,this.y + this.fieldBorderThickness); this.backgroundSprite.set_exists(true); } else { this.backgroundSprite.set_exists(false); } if(this.background) { this.tf.setPosition(this.x + this.fieldBorderThickness,this.y + this.fieldBorderThickness); } else { this.tf.setPosition(this.x,this.y); } } ,_onDelete: function() { if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("delete_input_text",this,this.get_text(),this.params); flixel_addons_ui_FlxUI.event("change_input_text",this,this.get_text(),this.params); } } ,_onEnter: function() { if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("enter_input_text",this,this.get_text(),this.params); } } ,_onInput: function() { if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("input_input_text",this,this.get_text(),this.params); flixel_addons_ui_FlxUI.event("change_input_text",this,this.get_text(),this.params); } } ,set_backgroundColor: function(value) { this.backgroundColor = value; this.updateSprites(); return this.backgroundColor; } ,get_caretIndex: function() { return this.tf.get_caretIndex(); } ,set_caretIndex: function(value) { return this.tf.set_caretIndex(value); } ,get_displayAsPassword: function() { return this.tf.get_displayAsPassword(); } ,set_displayAsPassword: function(value) { if(this.tf.get_displayAsPassword() != value) { this.tf.set_displayAsPassword(value); this.updateSprites(); } return value; } ,set_fieldBorderColor: function(value) { this.fieldBorderColor = value; this.updateSprites(); return this.fieldBorderColor; } ,set_fieldBorderThickness: function(value) { this.fieldBorderThickness = value; this.updateSprites(); return this.fieldBorderThickness; } ,get_fieldHeight: function() { return this.tf.get_fieldHeight(); } ,set_fieldHeight: function(value) { this.tf.set_fieldHeight(value); this.updateSprites(); return value; } ,get_fieldWidth: function() { return this.tf.get_fieldWidth(); } ,set_fieldWidth: function(value) { this.tf.set_fieldWidth(value); this.updateSprites(); return value; } ,get_filterMode: function() { return this.tf.filterMode; } ,set_filterMode: function(value) { if(this.tf.filterMode != value) { this.tf.set_filterMode(value); this.updateSprites(); } return value; } ,get_focus: function() { return this.tf.get_focus(); } ,set_focus: function(value) { return this.tf.set_focus(value); } ,get_forceCase: function() { return this.tf.forceCase; } ,set_forceCase: function(value) { if(this.tf.forceCase != value) { this.tf.set_forceCase(value); this.updateSprites(); } return value; } ,get_maxChars: function() { return this.tf.get_maxChars(); } ,set_maxChars: function(value) { return this.tf.set_maxChars(value); } ,get_multiline: function() { return this.tf.get_multiline(); } ,set_multiline: function(value) { return this.tf.set_multiline(value); } ,get_onBackspace: function() { return this.tf.onBackspace; } ,get_onChange: function() { return this.tf.onChange; } ,get_onDelete: function() { return this.tf.onDelete; } ,get_onEnter: function() { return this.tf.onEnter; } ,get_onFocusGained: function() { return this.tf.onFocusGained; } ,get_onFocusLost: function() { return this.tf.onFocusLost; } ,get_onInput: function() { return this.tf.onInput; } ,get_onScroll: function() { return this.tf.onScroll; } ,set_params: function(p) { this.params = p; if(this.params == null) { this.params = []; } var namedValue = { name : "value", value : this.get_text()}; this.params.push(namedValue); return p; } ,get_size: function() { return this.tf._defaultFormat.size | 0; } ,set_size: function(value) { this.tf.set_size(value); this.updateSprites(); return value; } ,get_text: function() { return this.tf.text; } ,set_text: function(value) { if(this.tf.text != value) { this.tf.set_text(value); this.updateSprites(); } return value; } ,get_wordWrap: function() { return this.tf.textField.get_wordWrap(); } ,set_wordWrap: function(value) { if(this.tf.textField.get_wordWrap() != value) { this.tf.set_wordWrap(value); this.updateSprites(); } return value; } ,__class__: flixel_addons_text_ui_FlxUITextInput ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_text:"set_text",get_text:"get_text",set_size:"set_size",get_size:"get_size",set_params:"set_params",get_onScroll:"get_onScroll",get_onInput:"get_onInput",get_onFocusLost:"get_onFocusLost",get_onFocusGained:"get_onFocusGained",get_onEnter:"get_onEnter",get_onDelete:"get_onDelete",get_onChange:"get_onChange",get_onBackspace:"get_onBackspace",set_multiline:"set_multiline",get_multiline:"get_multiline",set_maxChars:"set_maxChars",get_maxChars:"get_maxChars",set_forceCase:"set_forceCase",get_forceCase:"get_forceCase",set_focus:"set_focus",get_focus:"get_focus",set_filterMode:"set_filterMode",get_filterMode:"get_filterMode",set_fieldWidth:"set_fieldWidth",get_fieldWidth:"get_fieldWidth",set_fieldHeight:"set_fieldHeight",get_fieldHeight:"get_fieldHeight",set_fieldBorderThickness:"set_fieldBorderThickness",set_fieldBorderColor:"set_fieldBorderColor",set_displayAsPassword:"set_displayAsPassword",get_displayAsPassword:"get_displayAsPassword",set_caretIndex:"set_caretIndex",get_caretIndex:"get_caretIndex",set_backgroundColor:"set_backgroundColor"}) }); var flixel_addons_text_ui_UITextInput = function(x,y,fieldWidth,text,size,embeddedFont) { this.forceCase = flixel_addons_text_ui_CaseMode.ALL_CASES; this.filterMode = flixel_addons_text_ui_FilterMode.NO_FILTER; flixel_addons_text_FlxTextInput.call(this,x,y,fieldWidth,text,size,embeddedFont); }; $hxClasses["flixel.addons.text.ui.UITextInput"] = flixel_addons_text_ui_UITextInput; flixel_addons_text_ui_UITextInput.__name__ = "flixel.addons.text.ui.UITextInput"; flixel_addons_text_ui_UITextInput.__super__ = flixel_addons_text_FlxTextInput; flixel_addons_text_ui_UITextInput.prototype = $extend(flixel_addons_text_FlxTextInput.prototype,{ filterMode: null ,forceCase: null ,onPasteHandler: function(text) { flixel_addons_text_FlxTextInput.prototype.onPasteHandler.call(this,this.filter(text)); } ,onWindowTextInputHandler: function(value) { flixel_addons_text_FlxTextInput.prototype.onWindowTextInputHandler.call(this,this.filter(value)); } ,filter: function(text) { switch(this.forceCase._hx_index) { case 1: text = text.toUpperCase(); break; case 2: text = text.toLowerCase(); break; default: } if(this.filterMode != flixel_addons_text_ui_FilterMode.NO_FILTER) { var pattern; var _g = this.filterMode; switch(_g._hx_index) { case 1: pattern = new EReg("[^a-zA-Z]*","g"); break; case 2: pattern = new EReg("[^0-9]*","g"); break; case 3: pattern = new EReg("[^a-zA-Z0-9]*","g"); break; case 4: var e = _g.filter; pattern = e; break; default: throw haxe_Exception.thrown("FlxUITextInput: Unknown filterMode (" + Std.string(this.filterMode) + ")"); } text = text.replace(pattern.r,""); } return text; } ,set_filterMode: function(value) { this.filterMode = value; this.set_text(this.filter(this.text)); return value; } ,set_forceCase: function(value) { this.forceCase = value; this.set_text(this.filter(this.text)); return value; } ,__class__: flixel_addons_text_ui_UITextInput ,__properties__: $extend(flixel_addons_text_FlxTextInput.prototype.__properties__,{set_forceCase:"set_forceCase",set_filterMode:"set_filterMode"}) }); var flixel_addons_text_ui_CaseMode = $hxEnums["flixel.addons.text.ui.CaseMode"] = { __ename__:"flixel.addons.text.ui.CaseMode",__constructs__:null ,ALL_CASES: {_hx_name:"ALL_CASES",_hx_index:0,__enum__:"flixel.addons.text.ui.CaseMode",toString:$estr} ,UPPER_CASE: {_hx_name:"UPPER_CASE",_hx_index:1,__enum__:"flixel.addons.text.ui.CaseMode",toString:$estr} ,LOWER_CASE: {_hx_name:"LOWER_CASE",_hx_index:2,__enum__:"flixel.addons.text.ui.CaseMode",toString:$estr} }; flixel_addons_text_ui_CaseMode.__constructs__ = [flixel_addons_text_ui_CaseMode.ALL_CASES,flixel_addons_text_ui_CaseMode.UPPER_CASE,flixel_addons_text_ui_CaseMode.LOWER_CASE]; flixel_addons_text_ui_CaseMode.__empty_constructs__ = [flixel_addons_text_ui_CaseMode.ALL_CASES,flixel_addons_text_ui_CaseMode.UPPER_CASE,flixel_addons_text_ui_CaseMode.LOWER_CASE]; var flixel_addons_text_ui_FilterMode = $hxEnums["flixel.addons.text.ui.FilterMode"] = { __ename__:"flixel.addons.text.ui.FilterMode",__constructs__:null ,NO_FILTER: {_hx_name:"NO_FILTER",_hx_index:0,__enum__:"flixel.addons.text.ui.FilterMode",toString:$estr} ,ONLY_ALPHA: {_hx_name:"ONLY_ALPHA",_hx_index:1,__enum__:"flixel.addons.text.ui.FilterMode",toString:$estr} ,ONLY_NUMERIC: {_hx_name:"ONLY_NUMERIC",_hx_index:2,__enum__:"flixel.addons.text.ui.FilterMode",toString:$estr} ,ONLY_ALPHANUMERIC: {_hx_name:"ONLY_ALPHANUMERIC",_hx_index:3,__enum__:"flixel.addons.text.ui.FilterMode",toString:$estr} ,CUSTOM_FILTER: ($_=function(filter) { return {_hx_index:4,filter:filter,__enum__:"flixel.addons.text.ui.FilterMode",toString:$estr}; },$_._hx_name="CUSTOM_FILTER",$_.__params__ = ["filter"],$_) }; flixel_addons_text_ui_FilterMode.__constructs__ = [flixel_addons_text_ui_FilterMode.NO_FILTER,flixel_addons_text_ui_FilterMode.ONLY_ALPHA,flixel_addons_text_ui_FilterMode.ONLY_NUMERIC,flixel_addons_text_ui_FilterMode.ONLY_ALPHANUMERIC,flixel_addons_text_ui_FilterMode.CUSTOM_FILTER]; flixel_addons_text_ui_FilterMode.__empty_constructs__ = [flixel_addons_text_ui_FilterMode.NO_FILTER,flixel_addons_text_ui_FilterMode.ONLY_ALPHA,flixel_addons_text_ui_FilterMode.ONLY_NUMERIC,flixel_addons_text_ui_FilterMode.ONLY_ALPHANUMERIC]; var flixel_addons_tile_FlxCaveGenerator = function() { }; $hxClasses["flixel.addons.tile.FlxCaveGenerator"] = flixel_addons_tile_FlxCaveGenerator; flixel_addons_tile_FlxCaveGenerator.__name__ = "flixel.addons.tile.FlxCaveGenerator"; flixel_addons_tile_FlxCaveGenerator.convertMatrixToString = function(Matrix) { var mapString = ""; var _g = 0; var _g1 = Matrix.length; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = Matrix[y].length; while(_g2 < _g3) { var x = _g2++; mapString += Std.string(Matrix[y][x]) + ","; } mapString += "\n"; } return mapString; }; flixel_addons_tile_FlxCaveGenerator.generateCaveMatrix = function(Columns,Rows,SmoothingIterations,WallRatio) { if(WallRatio == null) { WallRatio = 0.5; } if(SmoothingIterations == null) { SmoothingIterations = 6; } var matrix = flixel_addons_tile_FlxCaveGenerator.generateInitialMatrix(Columns,Rows); var _g = 0; var _g1 = Rows; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = Columns; while(_g2 < _g3) { var x = _g2++; matrix[y][x] = flixel_FlxG.random.float() < WallRatio ? 1 : 0; } } var matrix2 = flixel_addons_tile_FlxCaveGenerator.generateInitialMatrix(Columns,Rows); var _g = 0; var _g1 = SmoothingIterations; while(_g < _g1) { var i = _g++; flixel_addons_tile_FlxCaveGenerator.runCelluarAutomata(matrix,matrix2); var temp = matrix; matrix = matrix2; matrix2 = temp; } return matrix; }; flixel_addons_tile_FlxCaveGenerator.generateCaveString = function(Columns,Rows,SmoothingIterations,WallRatio) { if(WallRatio == null) { WallRatio = 0.5; } if(SmoothingIterations == null) { SmoothingIterations = 6; } return flixel_addons_tile_FlxCaveGenerator.convertMatrixToString(flixel_addons_tile_FlxCaveGenerator.generateCaveMatrix(Columns,Rows,SmoothingIterations,WallRatio)); }; flixel_addons_tile_FlxCaveGenerator.generateInitialMatrix = function(Columns,Rows) { var matrix = []; var _g = 0; var _g1 = Rows; while(_g < _g1) { var y = _g++; matrix.push([]); var _g2 = 0; var _g3 = Columns; while(_g2 < _g3) { var x = _g2++; matrix[y].push(0); } } return matrix; }; flixel_addons_tile_FlxCaveGenerator.countNumWallsNeighbors = function(Matrix,PosX,PosY,Distance) { if(Distance == null) { Distance = 1; } var count = 0; var rows = Matrix.length; var columns = Matrix[0].length; var _g = -Distance; var _g1 = Distance + 1; while(_g < _g1) { var y = _g++; var _g2 = -Distance; var _g3 = Distance + 1; while(_g2 < _g3) { var x = _g2++; if(PosX + x < 0 || PosX + x > columns - 1 || PosY + y < 0 || PosY + y > rows - 1) { continue; } if(Matrix[PosY + y][PosX + x] != 0) { ++count; } } } return count; }; flixel_addons_tile_FlxCaveGenerator.runCelluarAutomata = function(InMatrix,OutMatrix) { var rows = InMatrix.length; var columns = InMatrix[0].length; var _g = 0; var _g1 = rows; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = columns; while(_g2 < _g3) { var x = _g2++; var numWalls = flixel_addons_tile_FlxCaveGenerator.countNumWallsNeighbors(InMatrix,x,y,1); if(numWalls >= 5) { OutMatrix[y][x] = 1; } else { OutMatrix[y][x] = 0; } } } }; var flixel_path_FlxTypedPathfinder = function(factory) { this.createData = factory; }; $hxClasses["flixel.path.FlxTypedPathfinder"] = flixel_path_FlxTypedPathfinder; flixel_path_FlxTypedPathfinder.__name__ = "flixel.path.FlxTypedPathfinder"; flixel_path_FlxTypedPathfinder.prototype = { createData: null ,findPath: function(map,start,end,simplify) { if(simplify == null) { simplify = flixel_path_FlxPathSimplifier.LINE; } var startIndex = map.getTileIndexByCoords(start); var endIndex = map.getTileIndexByCoords(end); var data = this.createData(map,startIndex,endIndex); var indices = this.findPathIndicesHelper(data); if(indices == null) { return null; } var path = this.getPathPointsFromIndices(data,indices); var this1 = path[0]; var x = start.x; var y = start.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(start._weak) { start.put(); } var this1 = path[path.length - 1]; var x = end.x; var y = end.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(end._weak) { end.put(); } path = this.simplifyPath(data,path,simplify); data.destroy(); return path; } ,findPathIndices: function(map,startIndex,endIndex) { var data = this.createData(map,startIndex,endIndex); var indices = this.findPathIndicesHelper(data); data.destroy(); return indices; } ,findPathIndicesHelper: function(data) { this.compute(data); if(!data.foundEnd) { return null; } return data.getPathIndicesTo(data.endIndex); } ,getPathPointsFromIndices: function(data,indices) { var _g = data.map; var midpoint = true; var f = function(index) { return _g.getTileCoordsByIndex(index,midpoint); }; var result = new Array(indices.length); var _g1 = 0; var _g2 = indices.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(indices[i]); } return result; } ,simplifyPath: function(data,points,simplify) { switch(simplify._hx_index) { case 0: break; case 1: this.simplifyLine(data,points); break; case 2: this.simplifyRay(data,points); break; case 3: var resolution = simplify.resolution; this.simplifyRayStep(data,points,resolution); break; case 4: var width = simplify.width; var height = simplify.height; this.simplifyRayBox(data,points,width,height); break; case 5: var method = simplify.method; points = method(data,points); break; } return points; } ,simplifyLine: function(data,points) { var i = points.length - 1; while(i-- > 1) { var node = points[i]; var next = points[i + 1]; var last = points[i - 1]; var deltaLast = (node.x - last.x) / (node.y - last.y); var deltaNext = (node.x - next.x) / (node.y - next.y); if(last.x == next.x || last.y == next.y || deltaLast == deltaNext) { HxOverrides.remove(points,node); } } } ,simplifyRay: function(data,points) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var tempPoint = point; var i = 1; while(i < points.length - 1) if(data.map.ray(points[i - 1],points[i + 1],tempPoint)) { HxOverrides.remove(points,points[i]); } else { ++i; } tempPoint.put(); } ,simplifyRayBox: function(data,points,width,height) { --width; --height; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var p1 = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var p2 = point; var i = 1; while(i < points.length - 1) { var p = points[i - 1]; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); if(p._weak) { p.put(); } var this1 = p1; var x1 = width / 2; var y1 = height / 2; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this1.set_x(this1.x - x1); this1.set_y(this1.y - y1); var p3 = points[i + 1]; var x2 = p3.x; var y2 = p3.y; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } p2.set_x(x2); p2.set_y(y2); if(p3._weak) { p3.put(); } var this2 = p2; var x3 = width / 2; var y3 = height / 2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } this2.set_x(this2.x - x3); this2.set_y(this2.y - y3); var tmp; var tmp1; var tmp2; if(data.map.ray(p1,p2)) { var data1 = data.map; var x4 = width; var y4 = 0; if(y4 == null) { y4 = 0; } if(x4 == null) { x4 = 0; } p1.set_x(p1.x + x4); p1.set_y(p1.y + y4); var x5 = width; var y5 = 0; if(y5 == null) { y5 = 0; } if(x5 == null) { x5 = 0; } p2.set_x(p2.x + x5); p2.set_y(p2.y + y5); tmp2 = data1.ray(p1,p2); } else { tmp2 = false; } if(tmp2) { var data2 = data.map; var x6 = 0; var y6 = height; if(y6 == null) { y6 = 0; } if(x6 == null) { x6 = 0; } p1.set_x(p1.x + x6); p1.set_y(p1.y + y6); var x7 = 0; var y7 = height; if(y7 == null) { y7 = 0; } if(x7 == null) { x7 = 0; } p2.set_x(p2.x + x7); p2.set_y(p2.y + y7); tmp1 = data2.ray(p1,p2); } else { tmp1 = false; } if(tmp1) { var data3 = data.map; var x8 = -width; var y8 = 0; if(y8 == null) { y8 = 0; } if(x8 == null) { x8 = 0; } p1.set_x(p1.x + x8); p1.set_y(p1.y + y8); var x9 = -width; var y9 = 0; if(y9 == null) { y9 = 0; } if(x9 == null) { x9 = 0; } p2.set_x(p2.x + x9); p2.set_y(p2.y + y9); tmp = data3.ray(p1,p2); } else { tmp = false; } if(tmp) { HxOverrides.remove(points,points[i]); } else { ++i; } } p1.put(); p2.put(); } ,simplifyRayStep: function(data,points,resolution) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var tempPoint = point; var i = 1; while(i < points.length - 1) if(data.map.rayStep(points[i - 1],points[i + 1],tempPoint,resolution)) { HxOverrides.remove(points,points[i]); } else { ++i; } tempPoint.put(); } ,computePathData: function(map,startIndex,endIndex,stopOnEnd) { if(stopOnEnd == null) { stopOnEnd = true; } return this.compute(this.createData(map,startIndex,endIndex),stopOnEnd); } ,compute: function(data,stopOnEnd) { if(stopOnEnd == null) { stopOnEnd = true; } if(!this.hasValidInitialData(data)) { return null; } var current = [data.startIndex]; while(current.length > 0) { var neighbors = []; var _g = 0; while(_g < current.length) { var currentIndex = current[_g]; ++_g; var cellNeighbors = this.getNeighbors(data,currentIndex); var distanceSoFar = data.distances[currentIndex]; var _g1 = 0; while(_g1 < cellNeighbors.length) { var neighbor = cellNeighbors[_g1]; ++_g1; var oldDistance = data.distances[neighbor]; if(oldDistance != -1 && distanceSoFar >= oldDistance) { continue; } var distance = distanceSoFar + this.getDistance(data,currentIndex,neighbor); if(oldDistance == -1 || distance < oldDistance) { data.distances[neighbor] = distance; data.moves[neighbor] = currentIndex; neighbors.push(neighbor); } } } var _g2 = 0; while(_g2 < neighbors.length) { var neighbor1 = neighbors[_g2]; ++_g2; if(this.isTileSolved(data,neighbor1)) { data.excluded.push(neighbor1); } } data.foundEnd = this.isComplete(data); if(stopOnEnd && data.foundEnd) { break; } current = neighbors; } return data; } ,getNeighbors: function(data,from) { throw haxe_Exception.thrown("FlxTilemapPathPolicy.getNeighbors should not be called, It must be overriden in derived classes"); } ,getDistance: function(data,from,to) { throw haxe_Exception.thrown("FlxTilemapPathPolicy.getDistance should not be called, It must be overriden in derived classes"); } ,isComplete: function(data) { return data.moves[data.endIndex] != -1; } ,isTileSolved: function(data,tile) { return true; } ,hasValidInitialData: function(data) { if(data.hasValidStartEnd() && data.map.getTileCollisions(data.map.getTileByIndex(data.startIndex)) == 0) { return data.map.getTileCollisions(data.map.getTileByIndex(data.endIndex)) == 0; } else { return false; } } ,__class__: flixel_path_FlxTypedPathfinder }; var flixel_path_FlxDiagonalPathfinder = function(diagonalPolicy) { if(diagonalPolicy == null) { diagonalPolicy = 0; } flixel_path_FlxTypedPathfinder.call(this,function(map,startIndex,endIndex) { return new flixel_path_FlxTypedPathfinderData(map,startIndex,endIndex); }); this.diagonalPolicy = diagonalPolicy; }; $hxClasses["flixel.path.FlxDiagonalPathfinder"] = flixel_path_FlxDiagonalPathfinder; flixel_path_FlxDiagonalPathfinder.__name__ = "flixel.path.FlxDiagonalPathfinder"; flixel_path_FlxDiagonalPathfinder.__super__ = flixel_path_FlxTypedPathfinder; flixel_path_FlxDiagonalPathfinder.prototype = $extend(flixel_path_FlxTypedPathfinder.prototype,{ diagonalPolicy: null ,getNeighbors: function(data,from) { var _gthis = this; var neighbors = []; var inBound = this.getInBoundDirections(data,from); var dir = 256; var up = (inBound & dir) == dir; var dir = 4096; var down = (inBound & dir) == dir; var dir = 1; var left = (inBound & dir) == dir; var dir = 16; var right = (inBound & dir) == dir; var addIf = function(condition,to,dir) { var condition1 = condition && (data.excluded.indexOf(to) == -1 && _gthis.canGo(data,to,dir)); if(condition1) { neighbors.push(to); } return condition1; }; var columns = data.map.widthInTiles; up = addIf(up,from - columns,256); down = addIf(down,from + columns,4096); left = addIf(left,from - 1,1); right = addIf(right,from + 1,16); if(this.diagonalPolicy != 0) { addIf(up && left,from - columns - 1,256 | 1); addIf(up && right,from - columns + 1,256 | 16); addIf(down && left,from + columns - 1,4096 | 1); addIf(down && right,from + columns + 1,4096 | 16); } return neighbors; } ,getInBoundDirections: function(data,from) { var x = from % data.map.widthInTiles; var y = from / data.map.widthInTiles | 0; return flixel_util_FlxDirectionFlags.fromBools(x > 0,x < data.map.widthInTiles - 1,y > 0,y < data.map.heightInTiles - 1); } ,canGo: function(data,to,dir) { if(dir == null) { dir = 4369; } return data.map.getTileCollisions(data.map.getTileByIndex(to)) == 0; } ,getDistance: function(data,from,to) { if(this.diagonalPolicy != 0 && from % data.map.widthInTiles != to % data.map.widthInTiles && (from / data.map.widthInTiles | 0) != (to / data.map.widthInTiles | 0)) { switch(this.diagonalPolicy) { case 0: return 0; case 1: return 1; case 2: return 2; } } return 1; } ,__class__: flixel_path_FlxDiagonalPathfinder }); var flixel_path_FlxTypedPathfinderData = function(map,startIndex,endIndex) { this.map = map; var _g = []; var _g1 = 0; var _g2 = map.totalTiles; while(_g1 < _g2) { var i = _g1++; _g.push(-1); } this.distances = _g; this.distances[startIndex] = 0; var _g = []; var _g1 = 0; var _g2 = map.totalTiles; while(_g1 < _g2) { var i = _g1++; _g.push(-1); } this.moves = _g; this.excluded = [startIndex]; this.startIndex = startIndex; this.endIndex = endIndex; }; $hxClasses["flixel.path.FlxTypedPathfinderData"] = flixel_path_FlxTypedPathfinderData; flixel_path_FlxTypedPathfinderData.__name__ = "flixel.path.FlxTypedPathfinderData"; flixel_path_FlxTypedPathfinderData.prototype = { startIndex: null ,endIndex: null ,map: null ,distances: null ,moves: null ,excluded: null ,foundEnd: null ,getPathIndicesTo: function(index) { if(index == this.startIndex) { return [this.startIndex,index]; } if(this.moves[index] == -1) { return null; } var path = []; while(index != -1) { path.unshift(index); index = this.moves[index]; } if(path[0] != this.startIndex) { flixel_FlxG.log.advanced("getPathIndices ended up somewhere other than the start",flixel_system_debug_log_LogStyle.ERROR,true); } return path; } ,getPathIndices: function() { return this.getPathIndicesTo(this.endIndex); } ,hasValidStartEnd: function() { if(this.startIndex >= 0 && this.endIndex >= 0 && this.startIndex < this.map.totalTiles) { return this.endIndex < this.map.totalTiles; } else { return false; } } ,destroy: function() { this.map = null; this.distances = null; this.moves = null; this.excluded = null; } ,isExcluded: function(index) { return this.excluded.indexOf(index) != -1; } ,getX: function(tile) { return tile % this.map.widthInTiles; } ,getY: function(tile) { return tile / this.map.widthInTiles | 0; } ,getTileCollisionsByIndex: function(tile) { return this.map.getTileCollisions(this.map.getTileByIndex(tile)); } ,__class__: flixel_path_FlxTypedPathfinderData }; var flixel_tile_FlxBaseTilemap = function() { this._collideIndex = 0; this._drawIndex = 0; this._startingIndex = 0; this._tileObjects = []; this.totalTiles = 0; this.heightInTiles = 0; this.widthInTiles = 0; this.auto = flixel_tile_FlxTilemapAutoTiling.OFF; flixel_FlxObject.call(this); this.flixelType = 3; this.set_immovable(true); this.set_moves(false); }; $hxClasses["flixel.tile.FlxBaseTilemap"] = flixel_tile_FlxBaseTilemap; flixel_tile_FlxBaseTilemap.__name__ = "flixel.tile.FlxBaseTilemap"; flixel_tile_FlxBaseTilemap.__super__ = flixel_FlxObject; flixel_tile_FlxBaseTilemap.prototype = $extend(flixel_FlxObject.prototype,{ auto: null ,widthInTiles: null ,heightInTiles: null ,totalTiles: null ,customTileRemap: null ,_randomIndices: null ,_randomChoices: null ,_randomLambda: null ,_tileObjects: null ,_startingIndex: null ,_data: null ,_drawIndex: null ,_collideIndex: null ,updateTile: function(index) { throw haxe_Exception.thrown("updateTile must be implemented"); } ,cacheGraphics: function(tileWidth,tileHeight,tileGraphic) { throw haxe_Exception.thrown("cacheGraphics must be implemented"); } ,initTileObjects: function() { throw haxe_Exception.thrown("initTileObjects must be implemented"); } ,updateMap: function() { throw haxe_Exception.thrown("updateMap must be implemented"); } ,computeDimensions: function() { throw haxe_Exception.thrown("computeDimensions must be implemented"); } ,getTileIndexByCoords: function(coord) { throw haxe_Exception.thrown("getTileIndexByCoords must be implemented"); } ,getTileCoordsByIndex: function(index,midpoint) { if(midpoint == null) { midpoint = true; } throw haxe_Exception.thrown("getTileCoordsByIndex must be implemented"); } ,ray: function(start,end,result) { throw haxe_Exception.thrown("ray must be implemented"); } ,rayStep: function(start,end,result,resolution) { if(resolution == null) { resolution = 1; } throw haxe_Exception.thrown("rayStep must be implemented?"); } ,calcRayEntry: function(start,end,result) { var bounds = this.getBounds(); bounds.width--; bounds.height--; return flixel_util_FlxCollision.calcRectEntry(bounds,start,end,result); } ,calcRayExit: function(start,end,result) { return this.calcRayEntry(end,start,result); } ,overlapsWithCallback: function(object,callback,flipCallbackParams,position) { if(flipCallbackParams == null) { flipCallbackParams = false; } throw haxe_Exception.thrown("overlapsWithCallback must be implemented"); } ,setDirty: function(dirty) { if(dirty == null) { dirty = true; } throw haxe_Exception.thrown("setDirty must be implemented"); } ,destroy: function() { this._data = null; flixel_FlxObject.prototype.destroy.call(this); } ,loadMapFromCSV: function(mapData,tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex) { if(collideIndex == null) { collideIndex = 1; } if(drawIndex == null) { drawIndex = 1; } if(startingIndex == null) { startingIndex = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } if(openfl_utils_Assets.exists(mapData)) { mapData = openfl_utils_Assets.getText(mapData); } this._data = []; var columns; var regex = new EReg("[ \t]*((\r\n)|\r|\n)[ \t]*","g"); var lines = regex.split(mapData); var _g = []; var _g1 = 0; var _g2 = lines; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != "") { _g.push(v); } } var rows = _g; this.heightInTiles = rows.length; this.widthInTiles = 0; var row = 0; while(row < this.heightInTiles) { var rowString = rows[row]; if(StringTools.endsWith(rowString,",")) { rowString = HxOverrides.substr(rowString,0,rowString.length - 1); } columns = rowString.split(","); if(columns.length == 0) { this.heightInTiles--; continue; } if(this.widthInTiles == 0) { this.widthInTiles = columns.length; } var column = 0; while(column < this.widthInTiles) { var columnString = columns[column]; var curTile = Std.parseInt(columnString); if(curTile == null) { throw haxe_Exception.thrown("String in row " + row + ", column " + column + " is not a valid integer: \"" + columnString + "\""); } this._data.push(curTile); ++column; } ++row; } this.loadMapHelper(tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex); return this; } ,loadMapFromArray: function(mapData,widthInTiles,heightInTiles,tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex) { if(collideIndex == null) { collideIndex = 1; } if(drawIndex == null) { drawIndex = 1; } if(startingIndex == null) { startingIndex = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } this.widthInTiles = widthInTiles; this.heightInTiles = heightInTiles; this._data = mapData.slice(); this.loadMapHelper(tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex); return this; } ,loadMapFrom2DArray: function(mapData,tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex) { if(collideIndex == null) { collideIndex = 1; } if(drawIndex == null) { drawIndex = 1; } if(startingIndex == null) { startingIndex = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } this.widthInTiles = mapData[0].length; this.heightInTiles = mapData.length; this._data = flixel_util_FlxArrayUtil.flatten2DArray_Int(mapData); this.loadMapHelper(tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex); return this; } ,loadMapFromGraphic: function(mapGraphic,invert,scale,colorMap,tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex) { if(collideIndex == null) { collideIndex = 1; } if(drawIndex == null) { drawIndex = 1; } if(startingIndex == null) { startingIndex = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } if(scale == null) { scale = 1; } if(invert == null) { invert = false; } var mapBitmap = flixel_system_FlxAssets.resolveBitmapData(mapGraphic); var mapData = flixel_util_FlxStringUtil.bitmapToCSV(mapBitmap,invert,scale,colorMap); return this.loadMapFromCSV(mapData,tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex); } ,loadMapHelper: function(tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex) { if(collideIndex == null) { collideIndex = 1; } if(drawIndex == null) { drawIndex = 1; } if(startingIndex == null) { startingIndex = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } var _g = 0; var _g1 = this._data.length; while(_g < _g1) { var i = _g++; if(this._data[i] < 0) { this._data[i] = 0; } } this.totalTiles = this._data.length; this.auto = autoTile == null ? flixel_tile_FlxTilemapAutoTiling.OFF : autoTile; this._startingIndex = startingIndex <= 0 ? 0 : startingIndex; if(this.auto != flixel_tile_FlxTilemapAutoTiling.OFF) { this._startingIndex = 1; drawIndex = 1; collideIndex = 1; } this._drawIndex = drawIndex; this._collideIndex = collideIndex; this.applyAutoTile(); this.applyCustomRemap(); this.randomizeIndices(); this.cacheGraphics(tileWidth,tileHeight,tileGraphic); this.postGraphicLoad(); } ,postGraphicLoad: function() { this.initTileObjects(); this.computeDimensions(); this.updateMap(); } ,applyAutoTile: function() { if(this.auto != flixel_tile_FlxTilemapAutoTiling.OFF) { var i = 0; while(i < this.totalTiles) this.autoTile(i++); } } ,applyCustomRemap: function() { var i = 0; if(this.customTileRemap != null) { while(i < this.totalTiles) { var oldIndex = this._data[i]; var newIndex = oldIndex; if(oldIndex < this.customTileRemap.length) { newIndex = this.customTileRemap[oldIndex]; } this._data[i] = newIndex; ++i; } } } ,randomizeIndices: function() { var i = 0; if(this._randomIndices != null) { var randLambda = this._randomLambda != null ? this._randomLambda : function() { return flixel_FlxG.random.float(); }; while(i < this.totalTiles) { var oldIndex = this._data[i]; var j = 0; var newIndex = oldIndex; var _g = 0; var _g1 = this._randomIndices; while(_g < _g1.length) { var rand = _g1[_g]; ++_g; if(oldIndex == rand) { var k = randLambda() * this._randomChoices[j].length | 0; newIndex = this._randomChoices[j][k]; } ++j; } this._data[i] = newIndex; ++i; } } } ,autoTile: function(index) { if(this._data[index] == 0) { return; } if(this.auto == flixel_tile_FlxTilemapAutoTiling.FULL) { this.autoTileFull(index); return; } this._data[index] = 0; if(index - this.widthInTiles < 0 || this._data[index - this.widthInTiles] > 0) { this._data[index] += 1; } if(index % this.widthInTiles >= this.widthInTiles - 1 || this._data[index + 1] > 0) { this._data[index] += 2; } if((index + this.widthInTiles | 0) >= this.totalTiles || this._data[index + this.widthInTiles] > 0) { this._data[index] += 4; } if(index % this.widthInTiles <= 0 || this._data[index - 1] > 0) { this._data[index] += 8; } if(this.auto == flixel_tile_FlxTilemapAutoTiling.ALT && this._data[index] == 15) { if(index % this.widthInTiles > 0 && (index + this.widthInTiles | 0) < this.totalTiles && this._data[index + this.widthInTiles - 1] <= 0) { this._data[index] = 1; } if(index % this.widthInTiles > 0 && index - this.widthInTiles >= 0 && this._data[index - this.widthInTiles - 1] <= 0) { this._data[index] = 2; } if(index % this.widthInTiles < this.widthInTiles - 1 && index - this.widthInTiles >= 0 && this._data[index - this.widthInTiles + 1] <= 0) { this._data[index] = 4; } if(index % this.widthInTiles < this.widthInTiles - 1 && (index + this.widthInTiles | 0) < this.totalTiles && this._data[index + this.widthInTiles + 1] <= 0) { this._data[index] = 8; } } this._data[index] += 1; } ,autoTileFull: function(index) { this._data[index] = 0; var wallUp = index - this.widthInTiles < 0; var wallRight = index % this.widthInTiles >= this.widthInTiles - 1; var wallDown = (index + this.widthInTiles | 0) >= this.totalTiles; var wallLeft = index % this.widthInTiles <= 0; var up = wallUp || this._data[index - this.widthInTiles] > 0; var upRight = wallUp || wallRight || this._data[index - this.widthInTiles + 1] > 0; var right = wallRight || this._data[index + 1] > 0; var rightDown = wallRight || wallDown || this._data[index + this.widthInTiles + 1] > 0; var down = wallDown || this._data[index + this.widthInTiles] > 0; var downLeft = wallDown || wallLeft || this._data[index + this.widthInTiles - 1] > 0; var left = wallLeft || this._data[index - 1] > 0; var leftUp = wallLeft || wallUp || this._data[index - this.widthInTiles - 1] > 0; if(up) { this._data[index] += 1; } if(upRight && up && right) { this._data[index] += 2; } if(right) { this._data[index] += 4; } if(rightDown && right && down) { this._data[index] += 8; } if(down) { this._data[index] += 16; } if(downLeft && down && left) { this._data[index] += 32; } if(left) { this._data[index] += 64; } if(leftUp && left && up) { this._data[index] += 128; } this._data[index] -= flixel_tile_FlxBaseTilemap.offsetAutoTile[this._data[index]] - 1; } ,setCustomTileMappings: function(mappings,randomIndices,randomChoices,randomLambda) { this.customTileRemap = mappings; this._randomIndices = randomIndices; this._randomChoices = randomChoices; this._randomLambda = randomLambda; if(this._randomIndices != null && (this._randomChoices == null || this._randomChoices.length == 0)) { throw haxe_Exception.thrown("You must provide valid 'randomChoices' if you wish to randomize tilemap indices, please read documentation of 'setCustomTileMappings' function."); } } ,getTile: function(x,y) { return this._data[y * this.widthInTiles + x]; } ,getTileByIndex: function(index) { return this._data[index]; } ,getTileCollisions: function(index) { return this._tileObjects[index].allowCollisions; } ,getTileInstances: function(index) { var array = null; var i = 0; var l = this.widthInTiles * this.heightInTiles; while(i < l) { if(this._data[i] == index) { if(array == null) { array = []; } array.push(i); } ++i; } return array; } ,setTile: function(x,y,tile,updateGraphics) { if(updateGraphics == null) { updateGraphics = true; } if(x >= this.widthInTiles || y >= this.heightInTiles) { return false; } return this.setTileByIndex(y * this.widthInTiles + x,tile,updateGraphics); } ,setTileByIndex: function(index,tile,updateGraphics) { if(updateGraphics == null) { updateGraphics = true; } if(index >= this._data.length) { return false; } var ok = true; this._data[index] = tile; if(!updateGraphics) { return ok; } this.setDirty(); if(this.auto == flixel_tile_FlxTilemapAutoTiling.OFF) { this.updateTile(this._data[index]); return ok; } var i; var row = (index / this.widthInTiles | 0) - 1; var rowLength = row + 3; var column = index % this.widthInTiles - 1; var columnHeight = column + 3; while(row < rowLength) { column = columnHeight - 3; while(column < columnHeight) { if(row >= 0 && row < this.heightInTiles && column >= 0 && column < this.widthInTiles) { i = row * this.widthInTiles + column; this.autoTile(i); this.updateTile(this._data[i]); } ++column; } ++row; } return ok; } ,setTileProperties: function(tile,allowCollisions,callback,callbackFilter,range) { if(range == null) { range = 1; } if(allowCollisions == null) { allowCollisions = 4369; } if(range <= 0) { range = 1; } var maxIndex = this._tileObjects.length; var end = tile + range; if(maxIndex == 0) { var rangeDisplay = range == 1 ? "tile " + tile : "tiles " + tile + "-" + (end - 1); flixel_FlxG.log.advanced("Cannot setTileProperties of " + rangeDisplay + " when tilemap does not contain any tiles." + " This may be due to an invalid graphic.",flixel_system_debug_log_LogStyle.ERROR,true); return; } if(end > maxIndex) { var rangeDisplay = range == 1 ? "tile " + tile : "tiles " + tile + "-" + (end - 1); flixel_FlxG.log.advanced("Cannot setTileProperties of " + rangeDisplay + " when there are only " + end + " tiles.",flixel_system_debug_log_LogStyle.ERROR,true); return; } var _g = tile; var _g1 = end; while(_g < _g1) { var i = _g++; var tileData = this._tileObjects[i]; tileData.set_allowCollisions(allowCollisions); tileData.callbackFunction = callback; tileData.filter = callbackFilter; } } ,getData: function(simple) { if(simple == null) { simple = false; } if(!simple) { return this._data; } var i = 0; var l = this._data.length; var data = []; flixel_util_FlxArrayUtil.setLength_Int(data,l); while(i < l) { data[i] = this._tileObjects[this._data[i]].allowCollisions > 0 ? 1 : 0; ++i; } return data; } ,findPath: function(start,end,simplify,diagonalPolicy) { if(diagonalPolicy == null) { diagonalPolicy = 2; } if(simplify == null) { simplify = flixel_path_FlxPathSimplifier.LINE; } flixel_tile_FlxBaseTilemap.diagonalPathfinder.diagonalPolicy = diagonalPolicy; return flixel_tile_FlxBaseTilemap.diagonalPathfinder.findPath(this,start,end,simplify); } ,findPathCustom: function(pathfinder,start,end,simplify) { if(simplify == null) { simplify = flixel_path_FlxPathSimplifier.LINE; } return pathfinder.findPath(this,start,end,simplify); } ,computePathDistance: function(startIndex,endIndex,diagonalPolicy,stopOnEnd) { if(stopOnEnd == null) { stopOnEnd = true; } if(diagonalPolicy == null) { diagonalPolicy = 2; } var data = this.computePathData(startIndex,endIndex,diagonalPolicy,stopOnEnd); if(data != null) { return data.distances; } return null; } ,computePathData: function(startIndex,endIndex,diagonalPolicy,stopOnEnd) { if(stopOnEnd == null) { stopOnEnd = true; } if(diagonalPolicy == null) { diagonalPolicy = 2; } flixel_tile_FlxBaseTilemap.diagonalPathfinder.diagonalPolicy = diagonalPolicy; var _this = flixel_tile_FlxBaseTilemap.diagonalPathfinder; var stopOnEnd1 = stopOnEnd; if(stopOnEnd1 == null) { stopOnEnd1 = true; } return _this.compute(_this.createData(this,startIndex,endIndex),stopOnEnd1); } ,getDiagonalPathfinder: function(diagonalPolicy) { flixel_tile_FlxBaseTilemap.diagonalPathfinder.diagonalPolicy = diagonalPolicy; return flixel_tile_FlxBaseTilemap.diagonalPathfinder; } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var group = flixel_group_FlxTypedGroup.resolveGroup(objectOrGroup); if(group != null) { var _g = this; var x = 0; var y = 0; var inScreenSpace1 = inScreenSpace; var camera1 = camera; return group.any(function(objectOrGroup) { var x1 = x; var y1 = y; var inScreenSpace = inScreenSpace1; if(inScreenSpace == null) { inScreenSpace = false; } if(objectOrGroup.flixelType == 1 || objectOrGroup.flixelType == 3) { return _g.overlapsWithCallback(objectOrGroup); } else { return _g.overlaps(objectOrGroup,inScreenSpace,camera1); } }); } if(objectOrGroup.flixelType == 1 || objectOrGroup.flixelType == 3) { return this.overlapsWithCallback(objectOrGroup); } else { return this.overlaps(objectOrGroup,false,null); } } ,tilemapOverlapsCallback: function(objectOrGroup,x,y,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } if(objectOrGroup.flixelType == 1 || objectOrGroup.flixelType == 3) { return this.overlapsWithCallback(objectOrGroup); } else { return this.overlaps(objectOrGroup,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var group = flixel_group_FlxTypedGroup.resolveGroup(objectOrGroup); if(group != null) { var _g = this; var x1 = x; var y1 = y; var inScreenSpace1 = inScreenSpace; var camera1 = camera; return group.any(function(objectOrGroup) { if(objectOrGroup.flixelType == 1 || objectOrGroup.flixelType == 3) { var _g1 = _g; var this1 = _g._point; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return _g1.overlapsWithCallback(objectOrGroup,null,false,this1); } else { return _g.overlapsAt(x1,y1,objectOrGroup,inScreenSpace1,camera1); } }); } if(objectOrGroup.flixelType == 1 || objectOrGroup.flixelType == 3) { var this1 = this._point; var x2 = x; var y2 = y; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } this1.set_x(x2); this1.set_y(y2); return this.overlapsWithCallback(objectOrGroup,null,false,this1); } else { return this.overlapsAt(x,y,objectOrGroup,inScreenSpace,camera); } } ,tilemapOverlapsAtCallback: function(objectOrGroup,x,y,inScreenSpace,camera) { if(objectOrGroup.flixelType == 1 || objectOrGroup.flixelType == 3) { var this1 = this._point; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this1.set_x(x1); this1.set_y(y1); return this.overlapsWithCallback(objectOrGroup,null,false,this1); } else { return this.overlapsAt(x,y,objectOrGroup,inScreenSpace,camera); } } ,overlapsPoint: function(worldPoint,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } if(inScreenSpace) { if(camera == null) { camera = flixel_FlxG.camera; } var point = camera.scroll; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } worldPoint.set_x(worldPoint.x - x); worldPoint.set_y(worldPoint.y - y); if(point._weak) { point.put(); } if(worldPoint._weak) { worldPoint.put(); } } return this.tileAtPointAllowsCollisions(worldPoint); } ,tileAtPointAllowsCollisions: function(point) { var tileIndex = this.getTileIndexByCoords(point); if(tileIndex < 0 || tileIndex >= this._data.length) { return false; } return this._tileObjects[this._data[tileIndex]].allowCollisions > 0; } ,getBounds: function(bounds) { if(bounds == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; bounds = rect; } var X = this.x; var Y = this.y; var Width = this.get_width(); var Height = this.get_height(); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } bounds.x = X; bounds.y = Y; bounds.width = Width; bounds.height = Height; return bounds; } ,__class__: flixel_tile_FlxBaseTilemap }); var flixel_tile_FlxTypedTilemap = function() { this._checkBufferChanges = false; this._buffers = []; this._flashRect = new openfl_geom_Rectangle(); this._flashPoint = new openfl_geom_Point(); this.scaledTileHeight = 0; this.scaledTileWidth = 0; this.tileHeight = 0; this.tileWidth = 0; this.blend = null; this.colorTransform = new openfl_geom_ColorTransform(); this.alpha = 1.0; this.color = 16777215; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.antialiasing = flixel_FlxSprite.defaultAntialiasing; this.framePadding = null; this.useScaleHack = false; flixel_tile_FlxBaseTilemap.call(this); if(flixel_FlxG.renderTile) { this._helperPoint = new openfl_geom_Point(); this._matrix = new flixel_math_FlxMatrix(); } this.scale = new flixel_math_FlxCallbackPoint($bind(this,this.setScaleXCallback),$bind(this,this.setScaleYCallback),$bind(this,this.setScaleXYCallback)); var this1 = this.scale; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); flixel_FlxG.signals.gameResized.add($bind(this,this.onGameResized)); flixel_FlxG.cameras.cameraAdded.add($bind(this,this.onCameraChanged)); flixel_FlxG.cameras.cameraRemoved.add($bind(this,this.onCameraChanged)); flixel_FlxG.cameras.cameraResized.add($bind(this,this.onCameraChanged)); }; $hxClasses["flixel.tile.FlxTypedTilemap"] = flixel_tile_FlxTypedTilemap; flixel_tile_FlxTypedTilemap.__name__ = "flixel.tile.FlxTypedTilemap"; flixel_tile_FlxTypedTilemap.__super__ = flixel_tile_FlxBaseTilemap; flixel_tile_FlxTypedTilemap.prototype = $extend(flixel_tile_FlxBaseTilemap.prototype,{ useScaleHack: null ,framePadding: null ,scale: null ,antialiasing: null ,offset: null ,frames: null ,graphic: null ,color: null ,alpha: null ,colorTransform: null ,blend: null ,tileWidth: null ,tileHeight: null ,scaledTileWidth: null ,scaledTileHeight: null ,shader: null ,_flashPoint: null ,_flashRect: null ,_buffers: null ,_helperPoint: null ,_matrix: null ,_checkBufferChanges: null ,destroy: function() { this._flashPoint = null; this._flashRect = null; this._tileObjects = flixel_util_FlxDestroyUtil.destroyArray(this._tileObjects); this._buffers = flixel_util_FlxDestroyUtil.destroyArray(this._buffers); if(!flixel_FlxG.renderBlit) { this._helperPoint = null; this._matrix = null; } this.set_frames(null); this.set_graphic(null); this.scale = flixel_util_FlxDestroyUtil.destroy(this.scale); this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this.colorTransform = null; flixel_FlxG.signals.gameResized.remove($bind(this,this.onGameResized)); flixel_FlxG.cameras.cameraAdded.remove($bind(this,this.onCameraChanged)); flixel_FlxG.cameras.cameraRemoved.remove($bind(this,this.onCameraChanged)); flixel_FlxG.cameras.cameraResized.remove($bind(this,this.onCameraChanged)); this.shader = null; flixel_tile_FlxBaseTilemap.prototype.destroy.call(this); } ,set_frames: function(value) { this.frames = value; if(value != null) { this.tileWidth = value.frames[0].sourceSize.x | 0; this.tileHeight = value.frames[0].sourceSize.y | 0; this._flashRect.setTo(0,0,this.tileWidth,this.tileHeight); this.set_graphic(value.parent); this.postGraphicLoad(); } return value; } ,onGameResized: function(w,h) { this._checkBufferChanges = true; } ,onCameraChanged: function(cam) { this._checkBufferChanges = true; } ,loadMapHelper: function(tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex) { if(collideIndex == null) { collideIndex = 1; } if(drawIndex == null) { drawIndex = 1; } if(startingIndex == null) { startingIndex = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } this._checkBufferChanges = true; flixel_tile_FlxBaseTilemap.prototype.loadMapHelper.call(this,tileGraphic,tileWidth,tileHeight,autoTile,startingIndex,drawIndex,collideIndex); } ,cacheGraphics: function(tileWidth,tileHeight,tileGraphic) { var _gthis = this; if(((tileGraphic) instanceof flixel_graphics_frames_FlxFramesCollection)) { this.set_frames(tileGraphic); return; } var graph = flixel_FlxG.bitmap.add(tileGraphic); if(graph == null) { return; } if(tileWidth <= 0) { tileWidth = graph.height; } if(tileHeight <= 0) { tileHeight = tileWidth; } this.tileWidth = tileWidth; this.tileHeight = tileHeight; var actualFramePadding = this.framePadding == null ? flixel_tile_FlxTypedTilemap.defaultFramePadding : this.framePadding; if(actualFramePadding > 0 && (graph.bitmap != null && !graph.bitmap.rect.isEmpty())) { this.set_frames(this.padTileFrames(tileWidth,tileHeight,graph,actualFramePadding)); } else { if(!(graph.bitmap != null && !graph.bitmap.rect.isEmpty()) && js_Boot.__implements(graph.bitmap,flixel_tile__$FlxTilemap_IEmbeddedBitmapData)) { var futureBitmap = graph.bitmap; futureBitmap.onLoad = function() { _gthis.set_frames(_gthis.padTileFrames(tileWidth,tileHeight,graph,actualFramePadding)); }; } else if(actualFramePadding > 0 && !(graph.bitmap != null && !graph.bitmap.rect.isEmpty())) { flixel_FlxG.log.advanced("Frame padding not applied to \"" + graph.key + "\" because it is loading asynchronously." + "Using `@:bitmap` assets on html5 is not recommended",flixel_system_debug_log_LogStyle.WARNING,true); } var graph1 = graph; var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.set_frames(flixel_graphics_frames_FlxTileFrames.fromGraphic(graph1,point)); } } ,padTileFrames: function(tileWidth,tileHeight,graphic,padding) { var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var x = padding; var y = padding; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point1._inPool = false; return flixel_graphics_frames_FlxTileFrames.fromBitmapAddSpacesAndBorders(graphic,point,null,point1); } ,computeDimensions: function() { this.scaledTileWidth = this.tileWidth * this.scale.x; this.scaledTileHeight = this.tileHeight * this.scale.y; this.set_width(this.widthInTiles * this.scaledTileWidth); this.set_height(this.heightInTiles * this.scaledTileHeight); } ,updateMap: function() { var numTiles = this._tileObjects.length; var _g = 0; var _g1 = numTiles; while(_g < _g1) { var i = _g++; this.updateTile(i); } } ,isOnScreen: function(camera) { if(camera == null) { camera = flixel_FlxG.camera; } var minX = this.x - this.offset.x - camera.scroll.x * this.scrollFactor.x; var minY = this.y - this.offset.y - camera.scroll.y * this.scrollFactor.y; var this1 = this._point; var x = minX; var y = minY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var point = this._point; var width = this.scaledTileWidth * this.widthInTiles; var height = this.scaledTileHeight * this.heightInTiles; if(height == null) { height = 0; } if(width == null) { width = 0; } var contained = point.x + width > camera.viewMarginX && point.x < camera.width - camera.viewMarginX && point.y + height > camera.viewMarginY && point.y < camera.height - camera.viewMarginY; if(point._weak) { point.put(); } return contained; } ,draw: function() { if(this.graphic == null) { return; } if(this._checkBufferChanges) { this.refreshBuffers(); this._checkBufferChanges = false; } var camera; var buffer; var l = this.get_cameras().length; var _g = 0; var _g1 = l; while(_g < _g1) { var i = _g++; camera = this.get_cameras()[i]; if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) { continue; } if(this._buffers[i] == null) { var tmp = this._buffers; var buffer1 = new flixel_tile_FlxTilemapBuffer(this.tileWidth,this.tileHeight,this.widthInTiles,this.heightInTiles,camera,this.scale.x,this.scale.y); buffer1.pixelPerfectRender = this.pixelPerfectRender; buffer1.antialiasing = this.antialiasing; tmp[i] = buffer1; } buffer = this._buffers[i]; if(flixel_FlxG.renderBlit) { if(buffer.isDirty(this,camera)) { this.drawTilemap(buffer,camera); } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this2 = this1; var x1 = buffer.x; var y1 = buffer.y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this2.set_x(this2.x + x1); this2.set_y(this2.y + y1); var this3 = this2; var p = this._flashPoint; if(p == null) { p = new openfl_geom_Point(); } p.x = this3.x; p.y = this3.y; buffer.draw(camera,this._flashPoint,this.scale.x,this.scale.y); } else { this.drawTilemap(buffer,camera); } } } ,refreshBuffers: function() { var _g = 0; var _g1 = this.get_cameras().length; while(_g < _g1) { var i = _g++; var camera = this.get_cameras()[i]; var buffer = this._buffers[i]; if(buffer == null) { var tmp = this._buffers; var buffer1 = new flixel_tile_FlxTilemapBuffer(this.tileWidth,this.tileHeight,this.widthInTiles,this.heightInTiles,camera,this.scale.x,this.scale.y); buffer1.pixelPerfectRender = this.pixelPerfectRender; buffer1.antialiasing = this.antialiasing; tmp[i] = buffer1; } else { buffer.resize(this.tileWidth,this.tileHeight,this.widthInTiles,this.heightInTiles,camera,this.scale.x,this.scale.y); } } } ,setDirty: function(dirty) { if(dirty == null) { dirty = true; } if(flixel_FlxG.renderTile) { return; } var _g = 0; var _g1 = this._buffers; while(_g < _g1.length) { var buffer = _g1[_g]; ++_g; if(buffer != null) { buffer.dirty = dirty; } } } ,overlapsWithCallback: function(object,callback,flipCallbackParams,position) { if(flipCallbackParams == null) { flipCallbackParams = false; } var results = false; var xPos = this.x; var yPos = this.y; if(position != null) { xPos = position.x; yPos = position.y; if(position._weak) { position.put(); } } var value = Math.floor((object.x - xPos) / this.scaledTileWidth); var max = this.widthInTiles; var lowerBound = value < 0 ? 0 : value; var minTileX = (max != null && lowerBound > max ? max : lowerBound) | 0; var value = Math.floor((object.y - yPos) / this.scaledTileHeight); var max = this.heightInTiles; var lowerBound = value < 0 ? 0 : value; var minTileY = (max != null && lowerBound > max ? max : lowerBound) | 0; var value = Math.ceil((object.x + object.get_width() - xPos) / this.scaledTileWidth); var max = this.widthInTiles; var lowerBound = value < 0 ? 0 : value; var maxTileX = (max != null && lowerBound > max ? max : lowerBound) | 0; var value = Math.ceil((object.y + object.get_height() - yPos) / this.scaledTileHeight); var max = this.heightInTiles; var lowerBound = value < 0 ? 0 : value; var maxTileY = (max != null && lowerBound > max ? max : lowerBound) | 0; var deltaX = xPos - this.last.x; var deltaY = yPos - this.last.y; var _g = minTileY; var _g1 = maxTileY; while(_g < _g1) { var row = _g++; var _g2 = minTileX; var _g3 = maxTileX; while(_g2 < _g3) { var column = _g2++; var mapIndex = row * this.widthInTiles + column; var dataIndex = this._data[mapIndex]; if(dataIndex < 0) { continue; } var tile = this._tileObjects[dataIndex]; tile.set_width(this.scaledTileWidth); tile.set_height(this.scaledTileHeight); tile.set_x(xPos + column * tile.get_width()); tile.set_y(yPos + row * tile.get_height()); tile.last.set_x(tile.x - deltaX); tile.last.set_y(tile.y - deltaY); var overlapFound = object.x + object.get_width() > tile.x && object.x < tile.x + tile.get_width() && object.y + object.get_height() > tile.y && object.y < tile.y + tile.get_height(); if(tile.allowCollisions != 0) { if(callback != null) { if(flipCallbackParams) { overlapFound = callback(object,tile); } else { overlapFound = callback(tile,object); } } } if(overlapFound) { if(tile.callbackFunction != null && (tile.filter == null || js_Boot.__instanceof(object,tile.filter))) { tile.mapIndex = mapIndex; tile.callbackFunction(tile,object); } if(tile.allowCollisions != 0) { results = true; } } } } return results; } ,getTileIndexByCoords: function(coord) { var localX = coord.x - this.x; var localY = coord.y - this.y; if(coord._weak) { coord.put(); } if(localX < 0 || localY < 0 || localX >= this.widthInTiles * this.scaledTileWidth || localY >= this.heightInTiles * this.scaledTileHeight) { return -1; } return (localY / this.scaledTileHeight | 0) * this.widthInTiles + (localX / this.scaledTileWidth | 0); } ,getTileCoordsByIndex: function(index,midpoint) { if(midpoint == null) { midpoint = true; } var x = this.x + index % this.widthInTiles * this.scaledTileWidth; var y = this.y + (index / this.widthInTiles | 0) * this.scaledTileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; if(midpoint) { point1.set_x(point1.x + this.scaledTileWidth * 0.5); point1.set_y(point1.y + this.scaledTileHeight * 0.5); } return point1; } ,getTileCoords: function(index,midpoint) { if(midpoint == null) { midpoint = true; } var array = null; var point; var l = this.widthInTiles * this.heightInTiles; var _g = 0; var _g1 = l; while(_g < _g1) { var i = _g++; if(this._data[i] == index) { var x = this.x + i % this.widthInTiles * this.scaledTileWidth; var y = this.y + (i / this.widthInTiles | 0) * this.scaledTileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point1._inPool = false; point = point1; if(midpoint) { point.set_x(point.x + this.scaledTileWidth * 0.5); point.set_y(point.y + this.scaledTileHeight * 0.5); } if(array == null) { array = []; } array.push(point); } } return array; } ,follow: function(camera,border,updateWorld) { if(updateWorld == null) { updateWorld = true; } if(border == null) { border = 0; } if(camera == null) { camera = flixel_FlxG.camera; } camera.setScrollBoundsRect(this.x + border * this.scaledTileWidth,this.y + border * this.scaledTileHeight,this.widthInTiles * this.scaledTileWidth - border * this.scaledTileWidth * 2,this.heightInTiles * this.scaledTileHeight - border * this.scaledTileHeight * 2,updateWorld); } ,ray: function(start,end,result) { var trimmedStart = this.calcRayEntry(start,end); var trimmedEnd = this.calcRayEntry(end,start,null); if(start._weak) { start.put(); } if(end._weak) { end.put(); } if(trimmedStart == null || trimmedEnd == null) { flixel_util_FlxDestroyUtil.put(trimmedStart); flixel_util_FlxDestroyUtil.put(trimmedEnd); return true; } start = trimmedStart; end = trimmedEnd; var startIndex = this.getTileIndexByCoords(start); var endIndex = this.getTileIndexByCoords(end); if(this.getTileCollisions(this.getTileByIndex(startIndex)) != 0) { if(result != null) { var x = start.x; var y = start.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(x); result.set_y(y); if(start._weak) { start.put(); } } trimmedStart.put(); trimmedEnd.put(); return false; } var startTileX = startIndex % this.widthInTiles; var startTileY = startIndex / this.widthInTiles | 0; var endTileX = endIndex % this.widthInTiles; var endTileY = endIndex / this.widthInTiles | 0; var hitIndex = -1; if(start.x == end.x) { hitIndex = this.checkColumn(startTileX,startTileY,endTileY); if(hitIndex != -1 && result != null) { var p = this.getTileCoordsByIndex(hitIndex,false); var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(x); result.set_y(y); if(p._weak) { p.put(); } result.set_x(start.x); if(start.y > end.y) { result.set_y(result.y + this.scaledTileHeight); } } } else { var m = (start.y - end.y) / (start.x - end.x); var b = start.y - m * start.x; var movesRight = start.x < end.x; var inc = movesRight ? 1 : -1; var offset = movesRight ? 1 : 0; var tileX = startTileX; var tileY = 0; var xPos = 0.0; var yPos = 0.0; var lastTileY = startTileY; while(tileX != endTileX) { xPos = this.x + (tileX + offset) * this.scaledTileWidth; yPos = m * xPos + b; tileY = Math.floor((yPos - this.y) / this.scaledTileHeight); hitIndex = this.checkColumn(tileX,lastTileY,tileY); if(hitIndex != -1) { break; } lastTileY = tileY; tileX += inc; } if(hitIndex == -1) { hitIndex = this.checkColumn(endTileX,lastTileY,endTileY); } if(hitIndex != -1 && result != null) { var p = this.getTileCoordsByIndex(hitIndex,false); var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } result.set_x(x); result.set_y(y); if(p._weak) { p.put(); } if((hitIndex / this.widthInTiles | 0) == lastTileY) { if(start.x > end.x) { result.set_x(result.x + this.scaledTileWidth); } result.set_y(m * result.x + b); } else { if(start.y > end.y) { result.set_y(result.y + this.scaledTileHeight); } result.set_x((result.y - b) / m); } } } trimmedStart.put(); trimmedEnd.put(); return hitIndex == -1; } ,checkColumn: function(x,startY,endY) { if(startY < 0) { startY = 0; } if(endY < 0) { endY = 0; } if(startY > this.heightInTiles - 1) { startY = this.heightInTiles - 1; } if(endY > this.heightInTiles - 1) { endY = this.heightInTiles - 1; } var y = startY; var step = startY <= endY ? 1 : -1; while(true) { var index = y * this.widthInTiles + x; if(this.getTileCollisions(this.getTileByIndex(index)) != 0) { return index; } if(y == endY) { break; } y += step; } return -1; } ,rayStep: function(start,end,result,resolution) { if(resolution == null) { resolution = 1; } var step = this.scaledTileWidth; if(this.scaledTileHeight < this.scaledTileWidth) { step = this.scaledTileHeight; } step /= resolution; var deltaX = end.x - start.x; var deltaY = end.y - start.y; var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); var steps = Math.ceil(distance / step); var stepX = deltaX / steps; var stepY = deltaY / steps; var curX = start.x - stepX - this.x; var curY = start.y - stepY - this.y; var tileX; var tileY; var i = 0; if(start._weak) { start.put(); } if(end._weak) { end.put(); } while(i < steps) { curX += stepX; curY += stepY; if(curX < 0 || curX > this.widthInTiles * this.scaledTileWidth || curY < 0 || curY > this.heightInTiles * this.scaledTileHeight) { ++i; continue; } tileX = Math.floor(curX / this.scaledTileWidth); tileY = Math.floor(curY / this.scaledTileHeight); if(this._tileObjects[this._data[tileY * this.widthInTiles + tileX]].allowCollisions != 0) { tileX *= this.scaledTileWidth | 0; tileY *= this.scaledTileHeight | 0; var rx = 0; var ry = 0; var lx = curX - stepX; var ly = curY - stepY; var q = tileX; if(deltaX < 0) { q += this.scaledTileWidth; } rx = q; ry = ly + stepY * ((q - lx) / stepX); if(ry >= tileY && ry <= tileY + this.scaledTileHeight) { if(result == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; result = point; } var x1 = rx + this.x; var y1 = ry + this.y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } result.set_x(x1); result.set_y(y1); return false; } q = tileY; if(deltaY < 0) { q += this.scaledTileHeight; } rx = lx + stepX * ((q - ly) / stepY); ry = q; if(rx >= tileX && rx <= tileX + this.scaledTileWidth) { if(result == null) { var x2 = 0; var y2 = 0; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x2,y2); point1._inPool = false; result = point1; } var x3 = rx + this.x; var y3 = ry + this.y; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } result.set_x(x3); result.set_y(y3); return false; } return true; } ++i; } return true; } ,tileToSprite: function(tileX,tileY,newTile,spriteFactory) { if(newTile == null) { newTile = 0; } if(spriteFactory == null) { spriteFactory = $bind(this,this.defaultTileToSprite); } var rowIndex = tileX + tileY * this.widthInTiles; var tile = this._tileObjects[this._data[rowIndex]]; var image = null; if(tile != null && tile.visible) { image = flixel_graphics_frames_FlxImageFrame.fromFrame(tile.frame); } else { var image1 = this.graphic; var X = 0; var Y = 0; var Width = this.tileWidth; var Height = this.tileHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; image = flixel_graphics_frames_FlxImageFrame.fromEmptyFrame(image1,rect); } var worldX = tileX * this.tileWidth * this.scale.x + this.x; var worldY = tileY * this.tileHeight * this.scale.y + this.y; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var p = this.scale; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } var tileSprite = spriteFactory({ graphic : image, x : worldX, y : worldY, scale : this1, alpha : this.alpha, blend : this.blend}); if(newTile >= 0) { this.setTile(tileX,tileY,newTile); } return tileSprite; } ,updateBuffers: function() { flixel_util_FlxDestroyUtil.destroyArray(this._buffers); this._buffers = []; } ,drawTilemap: function(buffer,camera) { var isColored = this.alpha != 1 || this.color != 16777215; var drawX = 0; var drawY = 0; var scaledWidth = 0; var scaledHeight = 0; var drawItem = null; if(flixel_FlxG.renderBlit) { buffer.fill(); } else { var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this2 = this1; var p = this._helperPoint; if(p == null) { p = new openfl_geom_Point(); } p.x = this2.x; p.y = this2.y; var tmp = this.isPixelPerfectRender(camera) ? Math.floor(this._helperPoint.x) : this._helperPoint.x; this._helperPoint.x = tmp; var tmp = this.isPixelPerfectRender(camera) ? Math.floor(this._helperPoint.y) : this._helperPoint.y; this._helperPoint.y = tmp; scaledWidth = this.scaledTileWidth; scaledHeight = this.scaledTileHeight; var hasColorOffsets = this.colorTransform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(this.colorTransform); drawItem = camera.startQuadBatch(this.graphic,isColored,hasColorOffsets,this.blend,this.antialiasing,this.shader); } this._point.set_x(camera.scroll.x * this.scrollFactor.x - this.x - this.offset.x + camera.viewMarginX); this._point.set_y(camera.scroll.y * this.scrollFactor.y - this.y - this.offset.y + camera.viewMarginY); var screenXInTiles = Math.floor(this._point.x / this.scaledTileWidth); var screenYInTiles = Math.floor(this._point.y / this.scaledTileHeight); var screenRows = buffer.rows; var screenColumns = buffer.columns; var Max = this.widthInTiles - screenColumns; var lowerBound = screenXInTiles < 0 ? 0 : screenXInTiles; screenXInTiles = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = this.heightInTiles - screenRows; var lowerBound = screenYInTiles < 0 ? 0 : screenYInTiles; screenYInTiles = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var rowIndex = screenYInTiles * this.widthInTiles + screenXInTiles; this._flashPoint.y = 0; var columnIndex; var tile; var frame; var _g = 0; var _g1 = screenRows; while(_g < _g1) { var row = _g++; columnIndex = rowIndex; this._flashPoint.x = 0; var _g2 = 0; var _g3 = screenColumns; while(_g2 < _g3) { var column = _g2++; tile = this._tileObjects[this._data[columnIndex]]; if(tile != null && tile.visible && tile.frame.type != 2) { frame = tile.frame; if(flixel_FlxG.renderBlit) { frame.paint(buffer.pixels,this._flashPoint,true); } else { drawX = this._helperPoint.x + columnIndex % this.widthInTiles * scaledWidth; drawY = this._helperPoint.y + Math.floor(columnIndex / this.widthInTiles) * scaledHeight; this._matrix.identity(); if(frame.angle != 0) { frame.prepareMatrix(this._matrix); } var scaleX = this.scale.x; var scaleY = this.scale.y; this._matrix.scale(scaleX,scaleY); this._matrix.translate(drawX,drawY); drawItem.addQuad(frame,this._matrix,this.colorTransform); } } if(flixel_FlxG.renderBlit) { this._flashPoint.x += this.tileWidth; } ++columnIndex; } if(flixel_FlxG.renderBlit) { this._flashPoint.y += this.tileHeight; } rowIndex += this.widthInTiles; } buffer.x = screenXInTiles * this.scaledTileWidth; buffer.y = screenYInTiles * this.scaledTileHeight; if(flixel_FlxG.renderBlit) { if(isColored) { buffer.colorTransform(this.colorTransform); } buffer.blend = this.blend; } buffer.dirty = false; } ,updateTile: function(index) { var tile = this._tileObjects[index]; if(tile == null || !tile.visible) { return; } tile.frame = this.frames.frames[index - this._startingIndex]; } ,createBuffer: function(camera) { var buffer = new flixel_tile_FlxTilemapBuffer(this.tileWidth,this.tileHeight,this.widthInTiles,this.heightInTiles,camera,this.scale.x,this.scale.y); buffer.pixelPerfectRender = this.pixelPerfectRender; buffer.antialiasing = this.antialiasing; return buffer; } ,set_antialiasing: function(value) { var _g = 0; var _g1 = this._buffers; while(_g < _g1.length) { var buffer = _g1[_g]; ++_g; buffer.antialiasing = value; } return this.antialiasing = value; } ,set_graphic: function(value) { if(this.graphic != value) { if(value != null) { value.incrementUseCount(); } if(this.graphic != null) { this.graphic.decrementUseCount(); } this.graphic = value; } return value; } ,set_pixelPerfectRender: function(value) { if(this._buffers != null) { var _g = 0; var _g1 = this._buffers; while(_g < _g1.length) { var buffer = _g1[_g]; ++_g; buffer.pixelPerfectRender = value; } } return this.pixelPerfectRender = value; } ,set_alpha: function(value) { var lowerBound = value < 0 ? 0 : value; this.alpha = lowerBound > 1 ? 1 : lowerBound; this.updateColorTransform(); return this.alpha; } ,set_color: function(value) { if(this.color == value) { return value; } this.color = value; this.updateColorTransform(); return this.color; } ,updateColorTransform: function() { if(this.colorTransform == null) { this.colorTransform = new openfl_geom_ColorTransform(); } if(this.alpha != 1 || this.color != 16777215) { flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,(this.color >> 16 & 255) / 255,(this.color >> 8 & 255) / 255,(this.color & 255) / 255,this.alpha); } else { flixel_util_FlxColorTransformUtil.setMultipliers(this.colorTransform,1,1,1,1); } this.setDirty(); } ,set_blend: function(value) { this.setDirty(); return this.blend = value; } ,setScaleXYCallback: function(scale) { this.setScaleXCallback(scale); this.setScaleYCallback(scale); } ,setScaleXCallback: function(scale) { this.scaledTileWidth = this.tileWidth * scale.x; this.set_width(this.widthInTiles * this.scaledTileWidth); if(this.get_cameras() == null) { return; } var _g = 0; var _g1 = this.get_cameras().length; while(_g < _g1) { var i = _g++; if(this._buffers[i] != null) { this._buffers[i].updateColumns(this.tileWidth,this.widthInTiles,scale.x,this.get_cameras()[i]); } } } ,setScaleYCallback: function(scale) { this.scaledTileHeight = this.tileHeight * scale.y; this.set_height(this.heightInTiles * this.scaledTileHeight); if(this.get_cameras() == null) { return; } var _g = 0; var _g1 = this.get_cameras().length; while(_g < _g1) { var i = _g++; if(this._buffers[i] != null) { this._buffers[i].updateRows(this.tileHeight,this.heightInTiles,scale.y,this.get_cameras()[i]); } } } ,defaultTileToSprite: function(tileProperties) { var tileSprite = new flixel_FlxSprite(tileProperties.x,tileProperties.y); tileSprite.set_frames(tileProperties.graphic); var this1 = tileSprite.scale; var p = tileProperties.scale; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } tileProperties.scale = flixel_util_FlxDestroyUtil.put(tileProperties.scale); tileSprite.set_alpha(tileProperties.alpha); tileSprite.set_blend(tileProperties.blend); return tileSprite; } ,set_allowCollisions: function(value) { var _g = 0; var _g1 = this._tileObjects; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; if(tile.index >= this._collideIndex) { tile.set_allowCollisions(value); } } return flixel_tile_FlxBaseTilemap.prototype.set_allowCollisions.call(this,value); } ,get_scaledWidth: function() { return this.widthInTiles * this.scaledTileWidth; } ,get_scaledHeight: function() { return this.heightInTiles * this.scaledTileHeight; } ,getBounds: function(bounds) { if(bounds == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; bounds = rect; } var X = this.x; var Y = this.y; var Width = this.widthInTiles * this.scaledTileWidth; var Height = this.heightInTiles * this.scaledTileHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } bounds.x = X; bounds.y = Y; bounds.width = Width; bounds.height = Height; return bounds; } ,__class__: flixel_tile_FlxTypedTilemap ,__properties__: $extend(flixel_tile_FlxBaseTilemap.prototype.__properties__,{get_scaledHeight:"get_scaledHeight",get_scaledWidth:"get_scaledWidth",set_blend:"set_blend",set_alpha:"set_alpha",set_color:"set_color",set_graphic:"set_graphic",set_frames:"set_frames",set_antialiasing:"set_antialiasing"}) }); var flixel_tile_FlxTilemap = function() { flixel_tile_FlxTypedTilemap.call(this); }; $hxClasses["flixel.tile.FlxTilemap"] = flixel_tile_FlxTilemap; flixel_tile_FlxTilemap.__name__ = "flixel.tile.FlxTilemap"; flixel_tile_FlxTilemap.__properties__ = {set_defaultFramePadding:"set_defaultFramePadding",get_defaultFramePadding:"get_defaultFramePadding"}; flixel_tile_FlxTilemap.get_defaultFramePadding = function() { return flixel_tile_FlxTypedTilemap.defaultFramePadding; }; flixel_tile_FlxTilemap.set_defaultFramePadding = function(value) { return flixel_tile_FlxTypedTilemap.defaultFramePadding = value; }; flixel_tile_FlxTilemap.__super__ = flixel_tile_FlxTypedTilemap; flixel_tile_FlxTilemap.prototype = $extend(flixel_tile_FlxTypedTilemap.prototype,{ initTileObjects: function() { if(this.frames == null) { return; } this._tileObjects = flixel_util_FlxDestroyUtil.destroyArray(this._tileObjects); this._tileObjects = []; var length = this.frames.frames.length; length += this._startingIndex; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; this._tileObjects[i] = new flixel_tile_FlxTile(this,i,this.tileWidth,this.tileHeight,i >= this._drawIndex,i >= this._collideIndex ? this.allowCollisions : 0); } } ,__class__: flixel_tile_FlxTilemap }); var flixel_addons_tile_FlxRayCastTilemap = function() { flixel_tile_FlxTilemap.call(this); }; $hxClasses["flixel.addons.tile.FlxRayCastTilemap"] = flixel_addons_tile_FlxRayCastTilemap; flixel_addons_tile_FlxRayCastTilemap.__name__ = "flixel.addons.tile.FlxRayCastTilemap"; flixel_addons_tile_FlxRayCastTilemap.__super__ = flixel_tile_FlxTilemap; flixel_addons_tile_FlxRayCastTilemap.prototype = $extend(flixel_tile_FlxTilemap.prototype,{ rayCast: function(Start,Direction,Result,ResultInTiles,MaxTilesToCheck) { if(MaxTilesToCheck == null) { MaxTilesToCheck = -1; } var cbx; var cby; var tMaxX; var tMaxY; var tDeltaX = 0; var tDeltaY = 0; var stepX; var stepY; var outX; var outY; var hitTile = false; var tResult = 0; if(Start == null) { return false; } if(Result == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; Result = point; } if(Direction == null || Direction.x == 0 && Direction.y == 0) { Result.set_x(Start.x); Result.set_y(Start.y); return false; } var cx = this.coordsToTileX(Start.x); var cy = this.coordsToTileY(Start.y); if(!this.inTileRange(cx,cy)) { Result.set_x(Start.x); Result.set_y(Start.y); return false; } if(this.getTile(cx | 0,cy | 0) > 0) { Result.set_x(Start.x); Result.set_y(Start.y); return true; } if(MaxTilesToCheck == -1) { MaxTilesToCheck = this.widthInTiles * this.heightInTiles; } if(Direction.x > 0) { stepX = 1; outX = this.widthInTiles; cbx = this.x + (cx + 1) * this.scaledTileWidth; } else { stepX = -1; outX = -1; cbx = this.x + cx * this.scaledTileWidth; } if(Direction.y > 0) { stepY = 1; outY = this.heightInTiles; cby = this.y + (cy + 1) * this.scaledTileHeight; } else { stepY = -1; outY = -1; cby = this.y + cy * this.scaledTileHeight; } if(Direction.x != 0) { tMaxX = (cbx - Start.x) / Direction.x; tDeltaX = this.scaledTileWidth * stepX / Direction.x; } else { tMaxX = 1000000; } if(Direction.y != 0) { tMaxY = (cby - Start.y) / Direction.y; tDeltaY = this.scaledTileHeight * stepY / Direction.y; } else { tMaxY = 1000000; } var _g = 0; var _g1 = MaxTilesToCheck; while(_g < _g1) { var tileCount = _g++; if(tMaxX < tMaxY) { cx += stepX; if(this.getTile(cx | 0,cy | 0) > 0) { hitTile = true; break; } if(cx == outX) { hitTile = false; break; } tMaxX += tDeltaX; } else { cy += stepY; if(this.getTile(cx | 0,cy | 0) > 0) { hitTile = true; break; } if(cy == outY) { hitTile = false; break; } tMaxY += tDeltaY; } } tResult = tMaxX < tMaxY ? tMaxX : tMaxY; Result.set_x(Start.x + Direction.x * tResult); Result.set_y(Start.y + Direction.y * tResult); if(ResultInTiles != null) { ResultInTiles.set_x(cx); ResultInTiles.set_y(cy); } return hitTile; } ,inTileRange: function(TileX,TileY) { if(TileX >= 0 && TileX < this.widthInTiles && TileY >= 0) { return TileY < this.heightInTiles; } else { return false; } } ,tileAt: function(CoordX,CoordY) { return this.getTile((CoordX - this.x) / this.scaledTileWidth | 0,(CoordY - this.y) / this.scaledTileHeight | 0); } ,tileIndexAt: function(CoordX,CoordY) { var X = (CoordX - this.x) / this.scaledTileWidth | 0; var Y = (CoordY - this.y) / this.scaledTileHeight | 0; return Y * this.widthInTiles + X; } ,getTileIndex: function(X,Y) { return Y * this.widthInTiles + X; } ,coordsToTileX: function(CoordX) { return (CoordX - this.x) / this.scaledTileWidth | 0; } ,coordsToTileY: function(CoordY) { return (CoordY - this.y) / this.scaledTileHeight | 0; } ,indexToCoordX: function(Index) { return Index % this.widthInTiles * this.scaledTileWidth + this.scaledTileWidth / 2; } ,indexToCoordY: function(Index) { return (Index / this.widthInTiles | 0) * this.scaledTileHeight + this.scaledTileHeight / 2; } ,__class__: flixel_addons_tile_FlxRayCastTilemap }); var flixel_addons_tile_FlxTileAnimation = function(Name,Frames,FrameRate,Looped,FramesData) { if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 0; } this.name = Name; this.set_frameRate(FrameRate); this.frames = Frames; this.looped = Looped; this.framesData = FramesData; }; $hxClasses["flixel.addons.tile.FlxTileAnimation"] = flixel_addons_tile_FlxTileAnimation; flixel_addons_tile_FlxTileAnimation.__name__ = "flixel.addons.tile.FlxTileAnimation"; flixel_addons_tile_FlxTileAnimation.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_tile_FlxTileAnimation.prototype = { name: null ,delay: null ,frames: null ,looped: null ,framesData: null ,frameRate: null ,destroy: function() { this.frames = null; this.framesData = null; } ,set_frameRate: function(value) { this.delay = 0; this.frameRate = value; if(value > 0) { this.delay = 1.0 / value; } return value; } ,__class__: flixel_addons_tile_FlxTileAnimation ,__properties__: {set_frameRate:"set_frameRate"} }; var flixel_addons_tile_FlxTileSpecial = function(TilesetId,FlipX,FlipY,Rotate) { this.dirty = true; this._frameTimer = 0.0; this._lastIndex = -1; this._currIndex = 0; this.currTileId = 0; this.flipY = false; this.flipX = false; flixel_FlxBasic.call(this); this.set_currTileId(TilesetId); this.flipX = FlipX; this.flipY = FlipY; this.rotate = Rotate; this._matrix = new flixel_math_FlxMatrix(); }; $hxClasses["flixel.addons.tile.FlxTileSpecial"] = flixel_addons_tile_FlxTileSpecial; flixel_addons_tile_FlxTileSpecial.__name__ = "flixel.addons.tile.FlxTileSpecial"; flixel_addons_tile_FlxTileSpecial.__super__ = flixel_FlxBasic; flixel_addons_tile_FlxTileSpecial.prototype = $extend(flixel_FlxBasic.prototype,{ flipX: null ,flipY: null ,rotate: null ,frames: null ,currTileId: null ,currFrame: null ,_tmp_flipH: null ,_tmp_flipV: null ,_tmp_rot: null ,_matrix: null ,animation: null ,_currIndex: null ,_lastIndex: null ,_currAnimParam: null ,_frameTimer: null ,dirty: null ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); this.animation = flixel_util_FlxDestroyUtil.destroy(this.animation); this._currAnimParam = null; this._matrix = null; this.currFrame = null; this.set_frames(null); } ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); if(flixel_FlxG.renderBlit) { this.dirty = false; } if(this.animation != null && this.animation.delay > 0) { this._frameTimer += elapsed; if(this._frameTimer > this.animation.delay) { this._lastIndex = this._currIndex; } while(this._frameTimer > this.animation.delay) { this._frameTimer -= this.animation.delay; if(this._currIndex >= this.animation.frames.length - 1) { this._currIndex = 0; } else { this._currIndex++; } } this.set_currTileId(this.animation.frames[this._currIndex]); if(this.animation.framesData != null) { this._currAnimParam = this.animation.framesData[this._currIndex]; } if(flixel_FlxG.renderBlit) { this.dirty = this._currIndex != this._lastIndex; } } } ,isSpecial: function() { if(!(this.flipX || this.flipY || this.rotate != 0)) { return this.animation != null; } else { return true; } } ,isFlipped: function() { if(!(this.flipX || this.flipY)) { return this.rotate != 0; } else { return true; } } ,hasAnimation: function() { return this.animation != null; } ,paint: function(bmd,at) { if(!flixel_FlxG.renderBlit) { return; } this._tmp_flipH = this.flipX; this._tmp_flipV = this.flipY; this._tmp_rot = this.rotate; if(this._currAnimParam != null) { this._tmp_flipH = this._currAnimParam.flipX; this._tmp_flipV = this._currAnimParam.flipY; this._tmp_rot = this._currAnimParam.rotate; } var rotation = 0; if(this._tmp_rot == 1) { rotation = 90; } else if(this._tmp_rot == 2) { rotation = -90; } this.currFrame.paintRotatedAndFlipped(bmd,at,rotation,this._tmp_flipH,this._tmp_flipV,true); } ,addAnimation: function(tiles,frameRate,framesData) { if(frameRate == null) { frameRate = 30; } this.animation = new flixel_addons_tile_FlxTileAnimation("tileAnim",tiles,frameRate,true,framesData); } ,fromSpriteAnimation: function(anim) { this.animation = new flixel_addons_tile_FlxTileAnimation(anim.name,Reflect.field(anim,"_frames"),anim.frameRate,anim.looped); } ,getMatrix: function() { this._tmp_flipH = this.flipX; this._tmp_flipV = this.flipY; this._tmp_rot = this.rotate; if(this._currAnimParam != null) { this._tmp_flipH = this._currAnimParam.flipX; this._tmp_flipV = this._currAnimParam.flipY; this._tmp_rot = this._currAnimParam.rotate; } var rotation = 0; if(this._tmp_rot == 1) { rotation = 90; } else if(this._tmp_rot == 2) { rotation = -90; } this.currFrame.prepareMatrix(this._matrix,rotation,this._tmp_flipH,this._tmp_flipV); return this._matrix; } ,set_frames: function(value) { this.frames = value; if(value != null) { this.currFrame = this.frames.frames[this.currTileId]; } return this.frames; } ,set_currTileId: function(value) { if(this.frames != null) { this.currFrame = this.frames.frames[value]; } return this.currTileId = value; } ,__class__: flixel_addons_tile_FlxTileSpecial ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set_currTileId:"set_currTileId",set_frames:"set_frames"}) }); var flixel_addons_tile_FlxTilemapExt = function() { this._slopeThinSteep = []; this._slopeThickSteep = []; this._slopeThinGentle = []; this._slopeThickGentle = []; this._slopeSoutheast = []; this._slopeSouthwest = []; this._slopeNortheast = []; this._slopeNorthwest = []; this._slopeSlowDownFactor = 0; this._downwardsGlue = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._objPoint = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._slopePoint = point; this._snapping = 2; flixel_tile_FlxTilemap.call(this); }; $hxClasses["flixel.addons.tile.FlxTilemapExt"] = flixel_addons_tile_FlxTilemapExt; flixel_addons_tile_FlxTilemapExt.__name__ = "flixel.addons.tile.FlxTilemapExt"; flixel_addons_tile_FlxTilemapExt.__super__ = flixel_tile_FlxTilemap; flixel_addons_tile_FlxTilemapExt.prototype = $extend(flixel_tile_FlxTilemap.prototype,{ _snapping: null ,_slopePoint: null ,_objPoint: null ,_downwardsGlue: null ,_velocityYDownSlope: null ,_slopeSlowDownFactor: null ,_slopeNorthwest: null ,_slopeNortheast: null ,_slopeSouthwest: null ,_slopeSoutheast: null ,_slopeThickGentle: null ,_slopeThinGentle: null ,_slopeThickSteep: null ,_slopeThinSteep: null ,_specialTiles: null ,destroy: function() { this._slopePoint = flixel_util_FlxDestroyUtil.put(this._slopePoint); this._objPoint = flixel_util_FlxDestroyUtil.put(this._objPoint); this._slopeNorthwest = null; this._slopeNortheast = null; this._slopeSouthwest = null; this._slopeSoutheast = null; this._slopeThickGentle = null; this._slopeThinGentle = null; this._slopeThickSteep = null; this._slopeThinSteep = null; flixel_tile_FlxTilemap.prototype.destroy.call(this); this._specialTiles = flixel_util_FlxDestroyUtil.destroyArray(this._specialTiles); } ,update: function(elapsed) { flixel_tile_FlxTilemap.prototype.update.call(this,elapsed); var dirty = false; if(this._specialTiles != null && this._specialTiles.length > 0) { var _g = 0; var _g1 = this._specialTiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; if(tile != null && tile.animation != null) { tile.update(elapsed); dirty = dirty || tile.dirty; } } } if(dirty) { this.setDirty(true); } } ,drawTilemap: function(buffer,camera) { var isColored = this.alpha != 1 || this.color != 16777215; var drawX = 0; var drawY = 0; var scaledWidth = 0; var scaledHeight = 0; var drawItem = null; var _tileTransformMatrix = null; var matrixToUse; if(flixel_FlxG.renderBlit) { buffer.fill(); } else { var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this2 = this1; var p = this._helperPoint; if(p == null) { p = new openfl_geom_Point(); } p.x = this2.x; p.y = this2.y; var tmp = this.isPixelPerfectRender(camera) ? Math.floor(this._helperPoint.x) : this._helperPoint.x; this._helperPoint.x = tmp; var tmp = this.isPixelPerfectRender(camera) ? Math.floor(this._helperPoint.y) : this._helperPoint.y; this._helperPoint.y = tmp; scaledWidth = this.scaledTileWidth; scaledHeight = this.scaledTileHeight; var hasColorOffsets = this.colorTransform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(this.colorTransform); drawItem = camera.startQuadBatch(this.graphic,isColored,hasColorOffsets,this.blend,this.antialiasing,this.shader); } this._point.set_x(camera.scroll.x * this.scrollFactor.x - this.x - this.offset.x + camera.viewMarginX); this._point.set_y(camera.scroll.y * this.scrollFactor.y - this.y - this.offset.y + camera.viewMarginY); var screenXInTiles = Math.floor(this._point.x / this.scaledTileWidth); var screenYInTiles = Math.floor(this._point.y / this.scaledTileHeight); var screenRows = buffer.rows; var screenColumns = buffer.columns; var Max = this.widthInTiles - screenColumns; var lowerBound = screenXInTiles < 0 ? 0 : screenXInTiles; screenXInTiles = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Max = this.heightInTiles - screenRows; var lowerBound = screenYInTiles < 0 ? 0 : screenYInTiles; screenYInTiles = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var rowIndex = screenYInTiles * this.widthInTiles + screenXInTiles; this._flashPoint.y = 0; var columnIndex; var tile; var frame; var special; var isSpecial = false; var _g = 0; var _g1 = screenRows; while(_g < _g1) { var row = _g++; columnIndex = rowIndex; this._flashPoint.x = 0; var _g2 = 0; var _g3 = screenColumns; while(_g2 < _g3) { var column = _g2++; tile = this._tileObjects[this._data[columnIndex]]; special = null; isSpecial = false; if(this._specialTiles != null && this._specialTiles[columnIndex] != null) { special = this._specialTiles[columnIndex]; isSpecial = special.flipX || special.flipY || special.rotate != 0 || special.animation != null; } if(flixel_FlxG.renderBlit) { if(isSpecial) { special.paint(buffer.pixels,this._flashPoint); buffer.dirty = special.dirty || buffer.dirty; } else if(tile != null && tile.visible && tile.frame.type != 2) { tile.frame.paint(buffer.pixels,this._flashPoint,true); } } else { frame = isSpecial ? special.currFrame : tile.frame; if(frame != null) { drawX = this._helperPoint.x + columnIndex % this.widthInTiles * scaledWidth; drawY = this._helperPoint.y + Math.floor(columnIndex / this.widthInTiles) * scaledHeight; this._matrix.identity(); if(isSpecial) { _tileTransformMatrix = special.getMatrix(); matrixToUse = _tileTransformMatrix; } else { frame.prepareMatrix(this._matrix); matrixToUse = this._matrix; } var scaleX = this.scale.x; var scaleY = this.scale.y; matrixToUse.scale(scaleX,scaleY); matrixToUse.translate(drawX,drawY); camera.drawPixels(frame,null,matrixToUse,this.colorTransform,this.blend); drawItem.addQuad(frame,matrixToUse,this.colorTransform); } } if(flixel_FlxG.renderBlit) { this._flashPoint.x += this.tileWidth; } ++columnIndex; } if(flixel_FlxG.renderBlit) { this._flashPoint.y += this.tileHeight; } rowIndex += this.widthInTiles; } buffer.x = screenXInTiles * this.scaledTileWidth; buffer.y = screenYInTiles * this.scaledTileHeight; if(flixel_FlxG.renderBlit) { if(isColored) { buffer.colorTransform(this.colorTransform); } buffer.blend = this.blend; } buffer.dirty = false; } ,setSpecialTiles: function(tiles) { this._specialTiles = []; var tile; var _g = 0; var _g1 = tiles.length; while(_g < _g1) { var i = _g++; tile = tiles[i]; if(tile != null && (tile.flipX || tile.flipY || tile.rotate != 0 || tile.animation != null)) { this._specialTiles[i] = tile; tile.set_currTileId(tile.currTileId - this._startingIndex); tile.set_frames(this.frames); if(tile.animation != null) { var animFrames = tile.animation.frames; var preparedFrames = []; var _g2 = 0; var _g3 = animFrames.length; while(_g2 < _g3) { var j = _g2++; preparedFrames[j] = animFrames[j] - this._startingIndex; } tile.animation.frames = preparedFrames; } } else { this._specialTiles[i] = null; } } } ,overlapsWithCallback: function(object,callback,flipCallbackParams,position) { if(flipCallbackParams == null) { flipCallbackParams = false; } var results = false; var xPos = this.x; var yPos = this.y; if(position != null) { xPos = position.x; yPos = position.y; if(position._weak) { position.put(); } } var value = Math.floor((object.x - xPos) / this.scaledTileWidth); var max = this.widthInTiles; var lowerBound = value < 0 ? 0 : value; var minTileX = (max != null && lowerBound > max ? max : lowerBound) | 0; var value = Math.floor((object.y - yPos) / this.scaledTileHeight); var max = this.heightInTiles; var lowerBound = value < 0 ? 0 : value; var minTileY = (max != null && lowerBound > max ? max : lowerBound) | 0; var value = Math.ceil((object.x + object.get_width() - xPos) / this.scaledTileWidth); var max = this.widthInTiles; var lowerBound = value < 0 ? 0 : value; var maxTileX = (max != null && lowerBound > max ? max : lowerBound) | 0; var value = Math.ceil((object.y + object.get_height() - yPos) / this.scaledTileHeight); var max = this.heightInTiles; var lowerBound = value < 0 ? 0 : value; var maxTileY = (max != null && lowerBound > max ? max : lowerBound) | 0; var deltaX = xPos - this.last.x; var deltaY = yPos - this.last.y; var _g = minTileY; var _g1 = maxTileY; while(_g < _g1) { var row = _g++; var _g2 = minTileX; var _g3 = maxTileX; while(_g2 < _g3) { var column = _g2++; var mapIndex = row * this.widthInTiles + column; var dataIndex = this._data[mapIndex]; if(dataIndex < 0) { continue; } var tile = this._tileObjects[dataIndex]; if(tile.allowCollisions != 0) { var overlapFound = false; tile.set_width(this.scaledTileWidth); tile.set_height(this.scaledTileHeight); tile.set_x(xPos + column * tile.get_width()); tile.set_y(yPos + row * tile.get_height()); tile.last.set_x(tile.x - deltaX); tile.last.set_y(tile.y - deltaY); if(callback != null) { if(flipCallbackParams) { overlapFound = callback(object,tile); } else { overlapFound = callback(tile,object); } } else { overlapFound = object.x + object.get_width() > tile.x && object.x < tile.x + tile.get_width() && object.y + object.get_height() > tile.y && object.y < tile.y + tile.get_height(); } if(overlapFound || !overlapFound && this.checkArrays(tile.index)) { if(tile.callbackFunction != null && (tile.filter == null || js_Boot.__instanceof(object,tile.filter))) { tile.mapIndex = mapIndex; tile.callbackFunction(tile,object); } results = true; } } else if(tile.callbackFunction != null && (tile.filter == null || js_Boot.__instanceof(object,tile.filter))) { tile.mapIndex = mapIndex; tile.callbackFunction(tile,object); } } } return results; } ,setDownwardsGlue: function(downwardsGlue,slopeSlowDownFactor,velocityYDownSlope) { if(velocityYDownSlope == null) { velocityYDownSlope = 200; } if(slopeSlowDownFactor == null) { slopeSlowDownFactor = 0.0; } this._downwardsGlue = downwardsGlue; this._slopeSlowDownFactor = 1 - slopeSlowDownFactor / 10; this._velocityYDownSlope = velocityYDownSlope; } ,setSlopes: function(northwest,northeast,southwest,southeast) { if(northwest != null) { this._slopeNorthwest = northwest; } if(northeast != null) { this._slopeNortheast = northeast; } if(southwest != null) { this._slopeSouthwest = southwest; } if(southeast != null) { this._slopeSoutheast = southeast; } this.setSlopeProperties(); } ,setGentle: function(thickTiles,thinTiles) { if(thickTiles != null) { this._slopeThickGentle = thickTiles; } if(thinTiles != null) { this._slopeThinGentle = thinTiles; var _g = 0; var _g1 = this._slopeThinGentle; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this._tileObjects[tile].set_allowCollisions(this._slopeSouthwest.indexOf(tile) >= 0 || this._slopeSoutheast.indexOf(tile) >= 0 ? 256 : 4096); } } } ,setSteep: function(thickTiles,thinTiles) { if(thickTiles != null) { this._slopeThickSteep = thickTiles; } if(thinTiles != null) { this._slopeThinSteep = thinTiles; var _g = 0; var _g1 = this._slopeThinSteep; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this._tileObjects[tile].set_allowCollisions(this._slopeSouthwest.indexOf(tile) >= 0 || this._slopeNorthwest.indexOf(tile) >= 0 ? 16 : 1); } } } ,checkThickGentle: function(tileIndex) { return this._slopeThickGentle.indexOf(tileIndex) >= 0; } ,checkThinGentle: function(tileIndex) { return this._slopeThinGentle.indexOf(tileIndex) >= 0; } ,checkThickSteep: function(tileIndex) { return this._slopeThickSteep.indexOf(tileIndex) >= 0; } ,checkThinSteep: function(tileIndex) { return this._slopeThinSteep.indexOf(tileIndex) >= 0; } ,fixSlopePoint: function(slope) { var Value = this._slopePoint.x; var Min = slope.x; var Max = slope.x + this.scaledTileWidth; var lowerBound = Min != null && Value < Min ? Min : Value; this._slopePoint.set_x(Max != null && lowerBound > Max ? Max : lowerBound); var Value = this._slopePoint.y; var Min = slope.y; var Max = slope.y + this.scaledTileHeight; var lowerBound = Min != null && Value < Min ? Min : Value; this._slopePoint.set_y(Max != null && lowerBound > Max ? Max : lowerBound); } ,onCollideFloorSlope: function(slope,object) { object.touching = 4096; if(this._downwardsGlue) { object.velocity.set_y(this._velocityYDownSlope); } else { object.velocity.set_y(Math.min(object.velocity.y,0)); } object.set_y(this._slopePoint.y - object.get_height()); if(object.y < slope.y - object.get_height()) { object.set_y(slope.y - object.get_height()); } } ,onCollideCeilSlope: function(slope,object) { object.touching = 256; object.velocity.set_y(Math.max(object.velocity.y,0)); object.set_y(this._slopePoint.y); if(object.y > slope.y + this.scaledTileHeight) { object.set_y(slope.y + this.scaledTileHeight); } } ,solveCollisionSlopeNorthwest: function(slope,object) { if(object.x + object.get_width() > slope.x + slope.get_width() + this._snapping) { return; } this._objPoint.set_x(Math.floor(object.x + object.get_width() + this._snapping)); this._objPoint.set_y(Math.floor(object.y + object.get_height())); this._slopePoint.set_x(this._objPoint.x); this._slopePoint.set_y(slope.y + this.scaledTileHeight - (this._slopePoint.x - slope.x)); var tileId = (js_Boot.__cast(slope , flixel_tile_FlxTile)).index; if(this.checkThinSteep(tileId)) { if(this._slopePoint.x - slope.x <= this.scaledTileWidth / 2) { return; } else { this._slopePoint.set_y(slope.y + this.scaledTileHeight * (2 - 2 * (this._slopePoint.x - slope.x) / this.scaledTileWidth) + this._snapping); if(this._downwardsGlue && object.velocity.x > 0) { object.velocity.set_x(object.velocity.x * (1 - (1 - this._slopeSlowDownFactor) * 3)); } } } else if(this.checkThickSteep(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight * (1 - 2 * ((this._slopePoint.x - slope.x) / this.scaledTileWidth)) + this._snapping); if(this._downwardsGlue && object.velocity.x > 0) { object.velocity.set_x(object.velocity.x * (1 - (1 - this._slopeSlowDownFactor) * 3)); } } else if(this.checkThickGentle(tileId)) { this._slopePoint.set_y(slope.y + (this.scaledTileHeight - this._slopePoint.x + slope.x) / 2); if(this._downwardsGlue && object.velocity.x > 0) { object.velocity.set_x(object.velocity.x * this._slopeSlowDownFactor); } } else if(this.checkThinGentle(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight - (this._slopePoint.x - slope.x) / 2); if(this._downwardsGlue && object.velocity.x > 0) { object.velocity.set_x(object.velocity.x * this._slopeSlowDownFactor); } } else if(this._downwardsGlue && object.velocity.x > 0) { object.velocity.set_x(object.velocity.x * this._slopeSlowDownFactor); } this.fixSlopePoint(js_Boot.__cast(slope , flixel_tile_FlxTile)); if(this._objPoint.x > slope.x + this._snapping && this._objPoint.x < slope.x + this.scaledTileWidth + object.get_width() + this._snapping && this._objPoint.y >= this._slopePoint.y && this._objPoint.y <= slope.y + this.scaledTileHeight) { this.onCollideFloorSlope(slope,object); } } ,solveCollisionSlopeNortheast: function(slope,object) { if(object.x < slope.x - this._snapping) { return; } this._objPoint.set_x(Math.floor(object.x - this._snapping)); this._objPoint.set_y(Math.floor(object.y + object.get_height())); this._slopePoint.set_x(this._objPoint.x); this._slopePoint.set_y(slope.y + this.scaledTileHeight - (slope.x - this._slopePoint.x + this.scaledTileWidth)); var tileId = (js_Boot.__cast(slope , flixel_tile_FlxTile)).index; if(this.checkThinSteep(tileId)) { if(this._slopePoint.x - slope.x >= this.scaledTileWidth / 2) { return; } else { this._slopePoint.set_y(slope.y + this.scaledTileHeight * 2 * ((this._slopePoint.x - slope.x) / this.scaledTileWidth) + this._snapping); } if(this._downwardsGlue && object.velocity.x < 0) { object.velocity.set_x(object.velocity.x * (1 - (1 - this._slopeSlowDownFactor) * 3)); } } else if(this.checkThickSteep(tileId)) { this._slopePoint.set_y(slope.y - this.scaledTileHeight * (1 + 2 * ((slope.x - this._slopePoint.x) / this.scaledTileWidth)) + this._snapping); if(this._downwardsGlue && object.velocity.x < 0) { object.velocity.set_x(object.velocity.x * (1 - (1 - this._slopeSlowDownFactor) * 3)); } } else if(this.checkThickGentle(tileId)) { this._slopePoint.set_y(slope.y + (this.scaledTileHeight - slope.x + this._slopePoint.x - this.scaledTileWidth) / 2); if(this._downwardsGlue && object.velocity.x < 0) { object.velocity.set_x(object.velocity.x * this._slopeSlowDownFactor); } } else if(this.checkThinGentle(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight - (slope.x - this._slopePoint.x + this.scaledTileWidth) / 2); if(this._downwardsGlue && object.velocity.x < 0) { object.velocity.set_x(object.velocity.x * this._slopeSlowDownFactor); } } else if(this._downwardsGlue && object.velocity.x < 0) { object.velocity.set_x(object.velocity.x * this._slopeSlowDownFactor); } this.fixSlopePoint(js_Boot.__cast(slope , flixel_tile_FlxTile)); if(this._objPoint.x > slope.x - object.get_width() - this._snapping && this._objPoint.x < slope.x + this.scaledTileWidth + this._snapping && this._objPoint.y >= this._slopePoint.y && this._objPoint.y <= slope.y + this.scaledTileHeight) { this.onCollideFloorSlope(slope,object); } } ,solveCollisionSlopeSouthwest: function(slope,object) { this._objPoint.set_x(Math.floor(object.x + object.get_width() + this._snapping)); this._objPoint.set_y(Math.ceil(object.y)); this._slopePoint.set_x(this._objPoint.x); this._slopePoint.set_y(slope.y + (this._slopePoint.x - slope.x)); var tileId = (js_Boot.__cast(slope , flixel_tile_FlxTile)).index; if(this.checkThinSteep(tileId)) { if(this._slopePoint.x - slope.x <= this.scaledTileWidth / 2) { return; } else { this._slopePoint.set_y(slope.y - this.scaledTileHeight * (1 + 2 * ((slope.x - this._slopePoint.x) / this.scaledTileWidth)) - this._snapping); } } else if(this.checkThickSteep(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight * 2 * ((this._slopePoint.x - slope.x) / this.scaledTileWidth) - this._snapping); } else if(this.checkThickGentle(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight - (slope.x - this._slopePoint.x + this.scaledTileWidth) / 2); } else if(this.checkThinGentle(tileId)) { this._slopePoint.set_y(slope.y + (this.scaledTileHeight - slope.x + this._slopePoint.x - this.scaledTileWidth) / 2); } this.fixSlopePoint(js_Boot.__cast(slope , flixel_tile_FlxTile)); if(this._objPoint.x > slope.x + this._snapping && this._objPoint.x < slope.x + this.scaledTileWidth + object.get_width() + this._snapping && this._objPoint.y <= this._slopePoint.y && this._objPoint.y >= slope.y) { this.onCollideCeilSlope(slope,object); } } ,solveCollisionSlopeSoutheast: function(slope,object) { this._objPoint.set_x(Math.floor(object.x - this._snapping)); this._objPoint.set_y(Math.ceil(object.y)); this._slopePoint.set_x(this._objPoint.x); this._slopePoint.set_y(slope.y + (slope.x - this._slopePoint.x + this.scaledTileWidth)); var tileId = (js_Boot.__cast(slope , flixel_tile_FlxTile)).index; if(this.checkThinSteep(tileId)) { if(this._slopePoint.x - slope.x >= this.scaledTileWidth / 2) { return; } else { this._slopePoint.set_y(slope.y + this.scaledTileHeight * (1 - 2 * ((this._slopePoint.x - slope.x) / this.scaledTileWidth)) - this._snapping); } } else if(this.checkThickSteep(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight * (2 - 2 * (this._slopePoint.x - slope.x) / this.scaledTileWidth) - this._snapping); } else if(this.checkThickGentle(tileId)) { this._slopePoint.set_y(slope.y + this.scaledTileHeight - (this._slopePoint.x - slope.x) / 2); } else if(this.checkThinGentle(tileId)) { this._slopePoint.set_y(slope.y + (this.scaledTileHeight - this._slopePoint.x + slope.x) / 2); } this.fixSlopePoint(js_Boot.__cast(slope , flixel_tile_FlxTile)); if(this._objPoint.x > slope.x - object.get_width() - this._snapping && this._objPoint.x < slope.x + this.scaledTileWidth + this._snapping && this._objPoint.y <= this._slopePoint.y && this._objPoint.y >= slope.y) { this.onCollideCeilSlope(slope,object); } } ,setSlopeProperties: function() { var _g = 0; var _g1 = this._slopeNorthwest; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this.setTileProperties(tile,16 | 4096,$bind(this,this.solveCollisionSlopeNorthwest)); } var _g = 0; var _g1 = this._slopeNortheast; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this.setTileProperties(tile,1 | 4096,$bind(this,this.solveCollisionSlopeNortheast)); } var _g = 0; var _g1 = this._slopeSouthwest; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this.setTileProperties(tile,16 | 256,$bind(this,this.solveCollisionSlopeSouthwest)); } var _g = 0; var _g1 = this._slopeSoutheast; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this.setTileProperties(tile,1 | 256,$bind(this,this.solveCollisionSlopeSoutheast)); } } ,checkArrays: function(tileIndex) { if(!(this._slopeNorthwest.indexOf(tileIndex) >= 0 || this._slopeNortheast.indexOf(tileIndex) >= 0 || this._slopeSouthwest.indexOf(tileIndex) >= 0)) { return this._slopeSoutheast.indexOf(tileIndex) >= 0; } else { return true; } } ,set_frames: function(value) { flixel_tile_FlxTilemap.prototype.set_frames.call(this,value); if(value != null && this._specialTiles != null && this._specialTiles.length > 0) { var _g = 0; var _g1 = this._specialTiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; if(tile != null) { tile.set_frames(this.frames); } } } return value; } ,__class__: flixel_addons_tile_FlxTilemapExt }); 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,result) { if(result == null) { result = new lime_math_Vector2(); } result.x = pt2.x + f * (pt1.x - pt2.x); result.y = pt2.y + f * (pt1.y - pt2.y); return result; }; lime_math_Vector2.polar = function(len,angle,result) { if(result == null) { result = new lime_math_Vector2(); } var ya = len * Math.sin(angle); result.x = len * Math.cos(angle); result.y = ya; return result; }; lime_math_Vector2.prototype = { x: null ,y: null ,add: function(v,result) { if(result == null) { result = new lime_math_Vector2(); } result.x = v.x + this.x; result.y = v.y + this.y; return result; } ,clone: function() { return new lime_math_Vector2(this.x,this.y); } ,equals: function(toCompare) { if(toCompare != null && toCompare.x == this.x) { return toCompare.y == this.y; } else { return false; } } ,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,result) { if(result == null) { result = new lime_math_Vector2(); } result.x = this.x - v.x; result.y = this.y - v.y; return result; } ,__toFlashPoint: function() { return null; } ,get_length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); } ,get_lengthSquared: function() { return this.x * this.x + this.y * this.y; } ,__class__: lime_math_Vector2 ,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"} }; var openfl_display_BitmapData = function(width,height,transparent,fillColor) { if(fillColor == null) { fillColor = -1; } if(transparent == null) { transparent = true; } this.__drawableType = 0; this.transparent = transparent; if(width == null) { width = 0; } if(height == null) { height = 0; } if(width < 0) { width = 0; } if(height < 0) { height = 0; } this.width = width; this.height = height; this.rect = new openfl_geom_Rectangle(0,0,width,height); this.__textureWidth = width; this.__textureHeight = 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.readable = true; } this.__renderTransform = new openfl_geom_Matrix(); this.__worldAlpha = 1; this.__worldTransform = new openfl_geom_Matrix(); this.__worldColorTransform = new openfl_geom_ColorTransform(); this.__renderable = true; }; $hxClasses["openfl.display.BitmapData"] = openfl_display_BitmapData; openfl_display_BitmapData.__name__ = "openfl.display.BitmapData"; openfl_display_BitmapData.__interfaces__ = [openfl_display_IBitmapDrawable]; openfl_display_BitmapData.__textureFormat = null; openfl_display_BitmapData.__textureInternalFormat = null; openfl_display_BitmapData.fromBase64 = function(base64,type) { return null; }; openfl_display_BitmapData.fromBytes = function(bytes,rawAlpha) { return null; }; 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,0); bitmapData.__fromImage(lime_graphics_Image.fromCanvas(canvas)); bitmapData.image.set_transparent(transparent); return bitmapData; }; openfl_display_BitmapData.fromFile = function(path) { return null; }; 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,0); bitmapData.__fromImage(image); bitmapData.image.set_transparent(transparent); if(bitmapData.image != null) { return bitmapData; } else { return null; } }; openfl_display_BitmapData.fromTexture = function(texture) { if(texture == null) { return null; } var bitmapData = new openfl_display_BitmapData(texture.__width,texture.__height,true,0); bitmapData.readable = false; bitmapData.__texture = texture; bitmapData.__textureContext = texture.__textureContext; bitmapData.image = null; return bitmapData; }; openfl_display_BitmapData.loadFromBase64 = function(base64,type) { return lime_graphics_Image.loadFromBase64(base64,type).then(function(image) { return lime_app_Future.withValue(openfl_display_BitmapData.fromImage(image)); }); }; openfl_display_BitmapData.loadFromBytes = function(bytes,rawAlpha) { return lime_graphics_Image.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes)).then(function(image) { var bitmapData = openfl_display_BitmapData.fromImage(image); if(rawAlpha != null) { bitmapData.__applyAlpha(rawAlpha); } return lime_app_Future.withValue(bitmapData); }); }; openfl_display_BitmapData.loadFromFile = function(path) { return lime_graphics_Image.loadFromFile(path).then(function(image) { return lime_app_Future.withValue(openfl_display_BitmapData.fromImage(image)); }); }; openfl_display_BitmapData.prototype = { height: null ,image: null ,readable: null ,rect: null ,transparent: null ,width: null ,__blendMode: null ,__drawableType: null ,__framebuffer: null ,__framebufferContext: null ,__indexBuffer: null ,__indexBufferContext: null ,__indexBufferData: null ,__indexBufferGrid: null ,__isMask: null ,__isValid: null ,__mask: null ,__renderable: null ,__renderTransform: null ,__scrollRect: null ,__stencilBuffer: null ,__surface: null ,__texture: null ,__textureContext: null ,__textureHeight: null ,__textureVersion: null ,__textureWidth: null ,__transform: null ,__uvRect: null ,__vertexBuffer: null ,__vertexBufferContext: null ,__vertexBufferData: null ,__vertexBufferGrid: null ,__vertexBufferHeight: null ,__vertexBufferScaleX: null ,__vertexBufferScaleY: null ,__vertexBufferWidth: null ,__worldAlpha: null ,__worldColorTransform: null ,__worldTransform: null ,applyFilter: function(sourceBitmapData,sourceRect,destPoint,filter) { if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable) { return; } var needSecondBitmapData = filter.__needSecondBitmapData; var needCopyOfOriginal = filter.__preserveObject; var bitmapData2 = null; var bitmapData3 = null; if(needSecondBitmapData) { bitmapData2 = new openfl_display_BitmapData(this.width,this.height,true,0); } else { bitmapData2 = this; } if(needCopyOfOriginal) { bitmapData3 = new openfl_display_BitmapData(this.width,this.height,true,0); } if(filter.__preserveObject) { bitmapData3.copyPixels(this,this.rect,destPoint); } var lastBitmap = filter.__applyFilter(bitmapData2,this,sourceRect,destPoint); if(filter.__preserveObject) { lastBitmap.draw(bitmapData3,null,null); } if(needSecondBitmapData && lastBitmap == bitmapData2) { bitmapData2.image.version = this.image.version; this.image = bitmapData2.image; } this.image.dirty = true; this.image.version++; } ,clone: function() { var bitmapData; if(!this.__isValid) { bitmapData = new openfl_display_BitmapData(this.width,this.height,this.transparent,0); } else if(!this.readable && this.image == null) { bitmapData = new openfl_display_BitmapData(0,0,this.transparent,0); bitmapData.width = this.width; bitmapData.height = this.height; bitmapData.__textureWidth = this.__textureWidth; bitmapData.__textureHeight = this.__textureHeight; bitmapData.rect.copyFrom(this.rect); bitmapData.__framebuffer = this.__framebuffer; bitmapData.__framebufferContext = this.__framebufferContext; bitmapData.__texture = this.__texture; bitmapData.__textureContext = this.__textureContext; bitmapData.__isValid = true; } else { bitmapData = openfl_display_BitmapData.fromImage(this.image.clone(),this.transparent); } bitmapData.__worldTransform.copyFrom(this.__worldTransform); bitmapData.__renderTransform.copyFrom(this.__renderTransform); return bitmapData; } ,colorTransform: function(rect,colorTransform) { if(!this.readable) { return; } this.image.colorTransform(rect.__toLimeRectangle(),colorTransform.__toLimeColorMatrix()); } ,compare: function(otherBitmapData) { if(otherBitmapData == this) { return 0; } else if(otherBitmapData == null) { return -1; } else if(this.readable == false || otherBitmapData.readable == 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 _g = 0; var _g1 = bytes.length; while(_g < _g1) { var i = _g++; 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 _g = 0; var _g1 = this.height; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = this.width; while(_g2 < _g3) { var x = _g2++; 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; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | 65280 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | 255; comparePixel = (a & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; foundDifference = true; } } else { comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (r & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (g & 255) << 8 | comparePixel & 255 & 255; comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | b & 255; comparePixel = -16777216 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 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.readable) { 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); } ,copyPixels: function(sourceBitmapData,sourceRect,destPoint,alphaBitmapData,alphaPoint,mergeAlpha) { if(mergeAlpha == null) { mergeAlpha = false; } if(!this.readable || sourceBitmapData == null) { return; } if(alphaPoint != null) { openfl_display_BitmapData.__tempVector.x = alphaPoint.x; openfl_display_BitmapData.__tempVector.y = alphaPoint.y; } this.image.copyPixels(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),alphaBitmapData != null ? alphaBitmapData.image : null,alphaPoint != null ? openfl_display_BitmapData.__tempVector : null,mergeAlpha); } ,dispose: function() { this.image = null; this.width = 0; this.height = 0; this.rect = null; this.__isValid = false; this.readable = false; this.__surface = null; this.__vertexBuffer = null; this.__framebuffer = null; this.__framebufferContext = null; this.__texture = null; this.__textureContext = null; } ,disposeImage: function() { this.readable = false; } ,draw: function(source,matrix,colorTransform,blendMode,clipRect,smoothing) { if(smoothing == null) { smoothing = false; } if(source == null) { return; } var wasVisible = true; var sourceAsDisplayObject = null; if(((source) instanceof openfl_display_DisplayObject)) { sourceAsDisplayObject = js_Boot.__cast(source , openfl_display_DisplayObject); if(!sourceAsDisplayObject.get_visible()) { wasVisible = false; sourceAsDisplayObject.set_visible(true); } } source.__update(false,true); var transform = openfl_geom_Matrix.__pool.get(); transform.copyFrom(source.__renderTransform); transform.invert(); if(matrix != null) { transform.concat(matrix); } var clipMatrix = null; if(clipRect != null) { clipMatrix = openfl_geom_Matrix.__pool.get(); clipMatrix.copyFrom(transform); clipMatrix.invert(); } var _colorTransform = new openfl_geom_ColorTransform(); _colorTransform.__copyFrom(source.__worldColorTransform); _colorTransform.__invert(); if(!this.readable && openfl_Lib.get_current().stage.context3D != null) { if(this.__textureContext == null) { this.__textureContext = lime_app_Application.current.__window.context; } if(colorTransform != null) { _colorTransform.__combine(colorTransform); } var renderer = new openfl_display_OpenGLRenderer(openfl_Lib.get_current().stage.context3D,this); renderer.__allowSmoothing = smoothing; renderer.__overrideBlendMode = blendMode; renderer.__worldTransform = transform; renderer.__worldAlpha = 1 / source.__worldAlpha; renderer.__worldColorTransform = _colorTransform; renderer.__resize(this.width,this.height); if(clipRect != null) { renderer.__pushMaskRect(clipRect,clipMatrix); } this.__drawGL(source,renderer); if(clipRect != null) { renderer.__popMaskRect(); openfl_geom_Matrix.__pool.release(clipMatrix); } } else { if(colorTransform != null) { var bounds = openfl_geom_Rectangle.__pool.get(); var boundsMatrix = openfl_geom_Matrix.__pool.get(); source.__getBounds(bounds,boundsMatrix); var width = Math.ceil(bounds.width); var height = Math.ceil(bounds.height); boundsMatrix.tx = -bounds.x; boundsMatrix.ty = -bounds.y; var copy = new openfl_display_BitmapData(width,height,true,0); copy.draw(source,boundsMatrix); copy.colorTransform(copy.rect,colorTransform); copy.__renderTransform.identity(); copy.__renderTransform.tx = bounds.x; copy.__renderTransform.ty = bounds.y; copy.__renderTransform.concat(source.__renderTransform); copy.__worldAlpha = source.__worldAlpha; copy.__worldColorTransform.__copyFrom(source.__worldColorTransform); source = copy; openfl_geom_Rectangle.__pool.release(bounds); openfl_geom_Matrix.__pool.release(boundsMatrix); } lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.image); var renderer = new openfl_display_CanvasRenderer(this.image.buffer.__srcContext); renderer.__allowSmoothing = smoothing; renderer.__overrideBlendMode = blendMode; renderer.__worldTransform = transform; renderer.__worldAlpha = 1 / source.__worldAlpha; renderer.__worldColorTransform = _colorTransform; if(clipRect != null) { renderer.__pushMaskRect(clipRect,clipMatrix); } this.__drawCanvas(source,renderer); if(clipRect != null) { renderer.__popMaskRect(); openfl_geom_Matrix.__pool.release(clipMatrix); } } openfl_geom_Matrix.__pool.release(transform); if(sourceAsDisplayObject != null && !wasVisible) { sourceAsDisplayObject.set_visible(false); } } ,drawWithQuality: function(source,matrix,colorTransform,blendMode,clipRect,smoothing,quality) { if(smoothing == null) { smoothing = false; } this.draw(source,matrix,colorTransform,blendMode,clipRect,quality != 2 && smoothing); } ,encode: function(rect,compressor,byteArray) { if(!this.readable || rect == null) { byteArray = null; return byteArray; } if(byteArray == null) { byteArray = new openfl_utils_ByteArrayData(0); } var image = this.image; if(!rect.equals(this.rect)) { var matrix = openfl_geom_Matrix.__pool.get(); matrix.tx = Math.round(-rect.x); matrix.ty = Math.round(-rect.y); var bitmapData = new openfl_display_BitmapData(Math.ceil(rect.width),Math.ceil(rect.height),true,0); bitmapData.draw(this,matrix); image = bitmapData.image; openfl_geom_Matrix.__pool.release(matrix); } if(((compressor) instanceof openfl_display_PNGEncoderOptions)) { byteArray.writeBytes(openfl_utils_ByteArray.fromBytes(image.encode(lime_graphics_ImageFileFormat.PNG)),0,0); return byteArray; } else if(((compressor) instanceof openfl_display_JPEGEncoderOptions)) { byteArray.writeBytes(openfl_utils_ByteArray.fromBytes(image.encode(lime_graphics_ImageFileFormat.JPEG,(js_Boot.__cast(compressor , openfl_display_JPEGEncoderOptions)).quality)),0,0); return byteArray; } byteArray = null; return byteArray; } ,fillRect: function(rect,color) { this.__fillRect(rect,color,true); } ,floodFill: function(x,y,color) { if(!this.readable) { return; } this.image.floodFill(x,y,color,1); } ,generateFilterRect: function(sourceRect,filter) { return sourceRect.clone(); } ,getIndexBuffer: function(context,scale9Grid) { var gl = context.gl; if(this.__indexBuffer == null || this.__indexBufferContext != context.__context || scale9Grid != null && this.__indexBufferGrid == null || this.__indexBufferGrid != null && !this.__indexBufferGrid.equals(scale9Grid)) { this.__indexBufferContext = context.__context; this.__indexBuffer = null; if(scale9Grid != null) { if(this.__indexBufferGrid == null) { this.__indexBufferGrid = new openfl_geom_Rectangle(); } this.__indexBufferGrid.copyFrom(scale9Grid); var centerX = scale9Grid.width; var centerY = scale9Grid.height; if(centerX != 0 && centerY != 0) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__indexBufferData = new Uint16Array(54); this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferData[6] = 4; this.__indexBufferData[7] = 0; this.__indexBufferData[8] = 5; this.__indexBufferData[9] = 5; this.__indexBufferData[10] = 0; this.__indexBufferData[11] = 2; this.__indexBufferData[12] = 6; this.__indexBufferData[13] = 4; this.__indexBufferData[14] = 7; this.__indexBufferData[15] = 7; this.__indexBufferData[16] = 4; this.__indexBufferData[17] = 5; this.__indexBufferData[18] = 8; this.__indexBufferData[19] = 9; this.__indexBufferData[20] = 0; this.__indexBufferData[21] = 0; this.__indexBufferData[22] = 9; this.__indexBufferData[23] = 1; this.__indexBufferData[24] = 10; this.__indexBufferData[25] = 8; this.__indexBufferData[26] = 4; this.__indexBufferData[27] = 4; this.__indexBufferData[28] = 8; this.__indexBufferData[29] = 0; this.__indexBufferData[30] = 11; this.__indexBufferData[31] = 10; this.__indexBufferData[32] = 6; this.__indexBufferData[33] = 6; this.__indexBufferData[34] = 10; this.__indexBufferData[35] = 4; this.__indexBufferData[36] = 12; this.__indexBufferData[37] = 13; this.__indexBufferData[38] = 8; this.__indexBufferData[39] = 8; this.__indexBufferData[40] = 13; this.__indexBufferData[41] = 9; this.__indexBufferData[42] = 14; this.__indexBufferData[43] = 12; this.__indexBufferData[44] = 10; this.__indexBufferData[45] = 10; this.__indexBufferData[46] = 12; this.__indexBufferData[47] = 8; this.__indexBufferData[48] = 15; this.__indexBufferData[49] = 14; this.__indexBufferData[50] = 11; this.__indexBufferData[51] = 11; this.__indexBufferData[52] = 14; this.__indexBufferData[53] = 10; this.__indexBuffer = context.createIndexBuffer(54); } else if(centerX == 0 && centerY != 0) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__indexBufferData = new Uint16Array(18); this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferData[6] = 4; this.__indexBufferData[7] = 5; this.__indexBufferData[8] = 0; this.__indexBufferData[9] = 0; this.__indexBufferData[10] = 5; this.__indexBufferData[11] = 1; this.__indexBufferData[12] = 6; this.__indexBufferData[13] = 7; this.__indexBufferData[14] = 4; this.__indexBufferData[15] = 4; this.__indexBufferData[16] = 7; this.__indexBufferData[17] = 5; this.__indexBuffer = context.createIndexBuffer(18); } else if(centerX != 0 && centerY == 0) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__indexBufferData = new Uint16Array(18); this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferData[6] = 4; this.__indexBufferData[7] = 0; this.__indexBufferData[8] = 5; this.__indexBufferData[9] = 5; this.__indexBufferData[10] = 0; this.__indexBufferData[11] = 2; this.__indexBufferData[12] = 6; this.__indexBufferData[13] = 4; this.__indexBufferData[14] = 7; this.__indexBufferData[15] = 7; this.__indexBufferData[16] = 4; this.__indexBufferData[17] = 5; this.__indexBuffer = context.createIndexBuffer(18); } } else { this.__indexBufferGrid = null; } if(this.__indexBuffer == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__indexBufferData = new Uint16Array(6); this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBuffer = context.createIndexBuffer(6); } this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData); } return this.__indexBuffer; } ,getVertexBuffer: function(context,scale9Grid,targetObject) { var gl = context.gl; if(this.__vertexBuffer == null || this.__vertexBufferContext != context.__context || scale9Grid != null && this.__vertexBufferGrid == null || this.__vertexBufferGrid != null && !this.__vertexBufferGrid.equals(scale9Grid) || targetObject != null && (this.__vertexBufferWidth != targetObject.get_width() || this.__vertexBufferHeight != targetObject.get_height() || this.__vertexBufferScaleX != targetObject.get_scaleX() || this.__vertexBufferScaleY != targetObject.get_scaleY())) { this.__uvRect = new openfl_geom_Rectangle(0,0,this.width,this.height); var uvWidth = 1; var uvHeight = 1; this.__vertexBufferContext = context.__context; this.__vertexBuffer = null; if(targetObject != null) { this.__vertexBufferWidth = targetObject.get_width(); this.__vertexBufferHeight = targetObject.get_height(); this.__vertexBufferScaleX = targetObject.get_scaleX(); this.__vertexBufferScaleY = targetObject.get_scaleY(); } if(scale9Grid != null && targetObject != null) { if(this.__vertexBufferGrid == null) { this.__vertexBufferGrid = new openfl_geom_Rectangle(); } this.__vertexBufferGrid.copyFrom(scale9Grid); this.__vertexBufferWidth = targetObject.get_width(); this.__vertexBufferHeight = targetObject.get_height(); this.__vertexBufferScaleX = targetObject.get_scaleX(); this.__vertexBufferScaleY = targetObject.get_scaleY(); var centerX = scale9Grid.width; var centerY = scale9Grid.height; if(centerX != 0 && centerY != 0) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__vertexBufferData = new Float32Array(224); var left = scale9Grid.x; var top = scale9Grid.y; var right = this.width - centerX - left; var bottom = this.height - centerY - top; var uvLeft = left / this.width; var uvTop = top / this.height; var uvCenterX = centerX / this.width; var uvCenterY = centerY / this.height; var uvRight = right / this.width; var uvBottom = bottom / this.height; var renderedLeft = left / targetObject.get_scaleX(); var renderedTop = top / targetObject.get_scaleY(); var renderedRight = right / targetObject.get_scaleX(); var renderedBottom = bottom / targetObject.get_scaleY(); var renderedCenterX = targetObject.get_width() / targetObject.get_scaleX() - renderedLeft - renderedRight; var renderedCenterY = targetObject.get_height() / targetObject.get_scaleY() - renderedTop - renderedBottom; this.__vertexBufferData[0] = renderedLeft; this.__vertexBufferData[1] = renderedTop; this.__vertexBufferData[3] = uvWidth * uvLeft; this.__vertexBufferData[4] = uvHeight * uvTop; this.__vertexBufferData[15] = renderedTop; this.__vertexBufferData[18] = uvHeight * uvTop; this.__vertexBufferData[28] = renderedLeft; this.__vertexBufferData[31] = uvWidth * uvLeft; this.__vertexBufferData[56] = renderedLeft + renderedCenterX; this.__vertexBufferData[57] = renderedTop; this.__vertexBufferData[59] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[60] = uvHeight * uvTop; this.__vertexBufferData[70] = renderedLeft + renderedCenterX; this.__vertexBufferData[73] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[84] = this.width; this.__vertexBufferData[85] = renderedTop; this.__vertexBufferData[87] = uvWidth; this.__vertexBufferData[88] = uvHeight * uvTop; this.__vertexBufferData[98] = this.width; this.__vertexBufferData[101] = uvWidth; this.__vertexBufferData[112] = renderedLeft; this.__vertexBufferData[113] = renderedTop + renderedCenterY; this.__vertexBufferData[115] = uvWidth * uvLeft; this.__vertexBufferData[116] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[127] = renderedTop + renderedCenterY; this.__vertexBufferData[130] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[140] = renderedLeft + renderedCenterX; this.__vertexBufferData[141] = renderedTop + renderedCenterY; this.__vertexBufferData[143] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[144] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[154] = this.width; this.__vertexBufferData[155] = renderedTop + renderedCenterY; this.__vertexBufferData[157] = uvWidth; this.__vertexBufferData[158] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[168] = renderedLeft; this.__vertexBufferData[169] = this.height; this.__vertexBufferData[171] = uvWidth * uvLeft; this.__vertexBufferData[172] = uvHeight; this.__vertexBufferData[183] = this.height; this.__vertexBufferData[186] = uvHeight; this.__vertexBufferData[196] = renderedLeft + renderedCenterX; this.__vertexBufferData[197] = this.height; this.__vertexBufferData[199] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[200] = uvHeight; this.__vertexBufferData[210] = this.width; this.__vertexBufferData[211] = this.height; this.__vertexBufferData[213] = uvWidth; this.__vertexBufferData[214] = uvHeight; this.__vertexBuffer = context.createVertexBuffer(16,14); } else if(centerX == 0 && centerY != 0) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__vertexBufferData = new Float32Array(112); var top = scale9Grid.y; var bottom = this.height - centerY - top; var uvTop = top / this.height; var uvCenterY = centerY / this.height; var uvBottom = bottom / this.height; var renderedTop = top / targetObject.get_scaleY(); var renderedBottom = bottom / targetObject.get_scaleY(); var renderedCenterY = targetObject.get_height() / targetObject.get_scaleY() - renderedTop - renderedBottom; var renderedWidth = targetObject.get_width() / targetObject.get_scaleX(); this.__vertexBufferData[0] = renderedWidth; this.__vertexBufferData[1] = renderedTop; this.__vertexBufferData[3] = uvWidth; this.__vertexBufferData[4] = uvHeight * uvTop; this.__vertexBufferData[15] = renderedTop; this.__vertexBufferData[18] = uvHeight * uvTop; this.__vertexBufferData[28] = renderedWidth; this.__vertexBufferData[31] = uvWidth; this.__vertexBufferData[56] = renderedWidth; this.__vertexBufferData[57] = renderedTop + renderedCenterY; this.__vertexBufferData[59] = uvWidth; this.__vertexBufferData[60] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[71] = renderedTop + renderedCenterY; this.__vertexBufferData[74] = uvHeight * (uvTop + uvCenterY); this.__vertexBufferData[84] = renderedWidth; this.__vertexBufferData[85] = this.height; this.__vertexBufferData[87] = uvWidth; this.__vertexBufferData[88] = uvHeight; this.__vertexBufferData[99] = this.height; this.__vertexBufferData[102] = uvHeight; this.__vertexBuffer = context.createVertexBuffer(8,14); } else if(centerY == 0 && centerX != 0) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__vertexBufferData = new Float32Array(112); var left = scale9Grid.x; var right = this.width - centerX - left; var uvLeft = left / this.width; var uvCenterX = centerX / this.width; var uvRight = right / this.width; var renderedLeft = left / targetObject.get_scaleX(); var renderedRight = right / targetObject.get_scaleX(); var renderedCenterX = targetObject.get_width() / targetObject.get_scaleX() - renderedLeft - renderedRight; var renderedHeight = targetObject.get_height() / targetObject.get_scaleY(); this.__vertexBufferData[0] = renderedLeft; this.__vertexBufferData[1] = renderedHeight; this.__vertexBufferData[3] = uvWidth * uvLeft; this.__vertexBufferData[4] = uvHeight; this.__vertexBufferData[15] = renderedHeight; this.__vertexBufferData[18] = uvHeight; this.__vertexBufferData[28] = renderedLeft; this.__vertexBufferData[31] = uvWidth * uvLeft; this.__vertexBufferData[56] = renderedLeft + renderedCenterX; this.__vertexBufferData[57] = renderedHeight; this.__vertexBufferData[59] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[60] = uvHeight; this.__vertexBufferData[70] = renderedLeft + renderedCenterX; this.__vertexBufferData[73] = uvWidth * (uvLeft + uvCenterX); this.__vertexBufferData[84] = this.width; this.__vertexBufferData[85] = renderedHeight; this.__vertexBufferData[87] = uvWidth; this.__vertexBufferData[88] = uvHeight; this.__vertexBufferData[98] = this.width; this.__vertexBufferData[101] = uvWidth; this.__vertexBuffer = context.createVertexBuffer(8,14); } } else { this.__vertexBufferGrid = null; } if(this.__vertexBuffer == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__vertexBufferData = new Float32Array(56); this.__vertexBufferData[0] = this.width; this.__vertexBufferData[1] = this.height; this.__vertexBufferData[3] = uvWidth; this.__vertexBufferData[4] = uvHeight; this.__vertexBufferData[15] = this.height; this.__vertexBufferData[18] = uvHeight; this.__vertexBufferData[28] = this.width; this.__vertexBufferData[31] = uvWidth; this.__vertexBuffer = context.createVertexBuffer(3,14); } this.__vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__vertexBufferData)); } return this.__vertexBuffer; } ,getColorBoundsRect: function(mask,color,findColor) { if(findColor == null) { findColor = true; } if(!this.readable) { 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.readable) { return 0; } return this.image.getPixel(x,y,1); } ,getPixel32: function(x,y) { if(!this.readable) { return 0; } return this.image.getPixel32(x,y,1); } ,getPixels: function(rect) { if(!this.readable) { return null; } if(rect == null) { rect = this.rect; } var byteArray = openfl_utils_ByteArray.fromBytes(this.image.getPixels(rect.__toLimeRectangle(),1)); byteArray.__endian = 0; return byteArray; } ,getSurface: function() { if(!this.readable) { return null; } if(this.__surface == null) { this.__surface = lime_graphics_cairo_CairoImageSurface.fromImage(this.image); } return this.__surface; } ,getTexture: function(context) { if(!this.__isValid) { return null; } if(this.__texture == null || this.__textureContext != context.__context) { this.__textureContext = context.__context; this.__texture = context.createRectangleTexture(this.width,this.height,1,false); this.__textureVersion = -1; } lime__$internal_graphics_ImageCanvasUtil.sync(this.image,false); if(this.image != null && this.image.version > this.__textureVersion) { if(this.__surface != null) { lime_graphics_cairo_CairoSurface.flush(this.__surface); } var textureImage = this.image; if(!openfl_display3D_textures_TextureBase.__supportsBGRA && textureImage.get_format() != 0) { textureImage = textureImage.clone(); textureImage.set_format(0); } this.__texture.__uploadFromImage(textureImage); this.__textureVersion = this.image.version; this.__textureWidth = textureImage.buffer.width; this.__textureHeight = textureImage.buffer.height; } if(!this.readable && this.image != null) { this.__surface = null; this.image = null; } return this.__texture; } ,getVector: function(rect) { var pixels = this.getPixels(rect); var length = UInt.toFloat(openfl_utils_ByteArray.get_length(pixels)) / UInt.toFloat(4) | 0; var result = openfl_Vector.toIntVector(null,length,true); var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; result.set(i,pixels.readUnsignedInt()); } return result; } ,histogram: function(hRect) { var rect = hRect != null ? hRect : new openfl_geom_Rectangle(0,0,this.width,this.height); var pixels = this.getPixels(rect); var _g = []; var _g1 = []; var _g2 = 0; while(_g2 < 256) { var j = _g2++; _g1.push(0); } _g.push(_g1); var _g1 = []; var _g2 = 0; while(_g2 < 256) { var j = _g2++; _g1.push(0); } _g.push(_g1); var _g1 = []; var _g2 = 0; while(_g2 < 256) { var j = _g2++; _g1.push(0); } _g.push(_g1); var _g1 = []; var _g2 = 0; while(_g2 < 256) { var j = _g2++; _g1.push(0); } _g.push(_g1); var result = _g; var _g = 0; var _g1 = openfl_utils_ByteArray.get_length(pixels); while(_g < _g1) { var i = _g++; var result1 = result[i % 4]; ++result1[pixels.readUnsignedByte()]; } return result; } ,hitTest: function(firstPoint,firstAlphaThreshold,secondObject,secondBitmapDataPoint,secondAlphaThreshold) { if(secondAlphaThreshold == null) { secondAlphaThreshold = 1; } if(!this.readable) { return false; } if(((secondObject) instanceof openfl_display_Bitmap)) { secondObject = (js_Boot.__cast(secondObject , openfl_display_Bitmap)).__bitmapData; } if(((secondObject) instanceof 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(((secondObject) instanceof openfl_display_BitmapData)) { var secondBitmapData = secondObject; var x; var y; if(secondBitmapDataPoint == null) { x = 0; y = 0; } else { x = Math.round(secondBitmapDataPoint.x - firstPoint.x); y = Math.round(secondBitmapDataPoint.y - firstPoint.y); } var hitRect = openfl_geom_Rectangle.__pool.get(); hitRect.setTo(x,y,secondBitmapData.width,secondBitmapData.height); if(this.rect.intersects(hitRect)) { if(x < 0) { hitRect.x = 0; hitRect.width = Math.min(secondBitmapData.width + x,this.width); } else { hitRect.width = Math.min(secondBitmapData.width,this.width - x); } if(y < 0) { hitRect.y = 0; hitRect.height = Math.min(secondBitmapData.height + y,this.height); } else { hitRect.height = Math.min(secondBitmapData.height,this.height - y); } var pixels = this.getPixels(hitRect); hitRect.x = x < 0 ? -x : 0; hitRect.y = y < 0 ? -y : 0; var testPixels = secondBitmapData.getPixels(hitRect); var length = hitRect.width * hitRect.height | 0; var pixel; var testPixel; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; pixel = pixels.readUnsignedInt(); testPixel = testPixels.readUnsignedInt(); if(UInt.gt(pixel >>> 24 & 255,firstAlphaThreshold) && UInt.gt(testPixel >>> 24 & 255,secondAlphaThreshold)) { openfl_geom_Rectangle.__pool.release(hitRect); return true; } } } openfl_geom_Rectangle.__pool.release(hitRect); } else if(((secondObject) instanceof openfl_geom_Rectangle)) { var secondRectangle = openfl_geom_Rectangle.__pool.get(); 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 pixels = this.getPixels(secondRectangle); var length = UInt.toFloat(openfl_utils_ByteArray.get_length(pixels)) / UInt.toFloat(4) | 0; var pixel; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; pixel = pixels.readUnsignedInt(); if(UInt.gt(pixel >>> 24 & 255,firstAlphaThreshold)) { openfl_geom_Rectangle.__pool.release(secondRectangle); return true; } } } openfl_geom_Rectangle.__pool.release(secondRectangle); } return false; } ,lock: function() { } ,merge: function(sourceBitmapData,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable || sourceRect == null || destPoint == null) { return; } this.image.merge(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); } ,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.readable) { return; } var func = function() { randomSeed = randomSeed * 1103515245 + 12345; return (Math.abs(randomSeed / 65536) | 0) % 32768; }; var rand = func; rand(); var range = high - low; var redChannel = (channelOptions & 1) == 1; var greenChannel = (channelOptions & 2) >> 1 == 1; var blueChannel = (channelOptions & 4) >> 2 == 1; var alphaChannel = (channelOptions & 8) >> 3 == 1; var _g = 0; var _g1 = this.height; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = this.width; while(_g2 < _g3) { var x = _g2++; var red = 0; var blue = 0; var green = 0; var alpha = 255; if(grayScale) { blue = low + rand() % range; green = blue; red = green; 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 = sourceBitmapData.getPixels(sourceRect); var pixelValue; var r; var g; var b; var a; var color; var _g = 0; var _g1 = sh * sw; while(_g < _g1) { var i = _g++; pixelValue = pixels.readUnsignedInt(); a = alphaArray == null ? pixelValue & -16777216 : alphaArray[pixelValue >> 24 & 255]; r = redArray == null ? pixelValue & 16711680 : redArray[pixelValue >> 16 & 255]; g = greenArray == null ? pixelValue & 65280 : greenArray[pixelValue >> 8 & 255]; b = blueArray == null ? pixelValue & 255 : blueArray[pixelValue & 255]; color = a + r + g + b; pixels.position = i * 4; pixels.writeUnsignedInt(color); } pixels.position = 0; var destRect = openfl_geom_Rectangle.__pool.get(); destRect.setTo(destPoint.x,destPoint.y,sw,sh); this.setPixels(destRect,pixels); openfl_geom_Rectangle.__pool.release(destRect); } ,perlinNoise: function(baseX,baseY,numOctaves,randomSeed,stitch,fractalNoise,channelOptions,grayScale,offsets) { if(grayScale == null) { grayScale = false; } if(channelOptions == null) { channelOptions = 7; } if(!this.readable) { return; } var noise = new openfl_display__$internal_PerlinNoise(randomSeed,numOctaves,channelOptions,grayScale,0.5,stitch,0.15); noise.fill(this,baseX,baseY,0); } ,scroll: function(x,y) { if(!this.readable) { return; } this.image.scroll(x,y); } ,setPixel: function(x,y,color) { if(!this.readable) { return; } this.image.setPixel(x,y,color,1); } ,setPixel32: function(x,y,color) { if(!this.readable) { return; } this.image.setPixel32(x,y,color,1); } ,setPixels: function(rect,byteArray) { if(!this.readable || rect == null) { return; } var length = rect.width * rect.height * 4; if(UInt.toFloat(byteArray.length - byteArray.position) < length) { throw new openfl_errors_Error("End of file was encountered.",2030); } this.image.setPixels(rect.__toLimeRectangle(),openfl_utils_ByteArray.toBytePointer(byteArray),1,openfl_utils_Endian.toLimeEndian(byteArray.__endian)); } ,setVector: function(rect,inputVector) { var byteArray = new openfl_utils_ByteArrayData(0); openfl_utils_ByteArray.set_length(byteArray,inputVector.get_length() * 4); var color = inputVector.iterator(); while(color.hasNext()) { var color1 = color.next(); byteArray.writeUnsignedInt(color1); } 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) { } ,__applyAlpha: function(alpha) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this.image); lime__$internal_graphics_ImageCanvasUtil.createImageData(this.image); var data = this.image.buffer.data; var _g = 0; var _g1 = openfl_utils_ByteArray.get_length(alpha); while(_g < _g1) { var i = _g++; data[i * 4 + 3] = alpha.readUnsignedByte(); } this.image.version++; } ,__drawCairo: function(source,renderer) { } ,__drawCanvas: function(source,renderer) { var buffer = this.image.buffer; if(!renderer.__allowSmoothing) { renderer.applySmoothing(buffer.__srcContext,false); } renderer.__render(source); if(!renderer.__allowSmoothing) { renderer.applySmoothing(buffer.__srcContext,true); } buffer.__srcContext.setTransform(1,0,0,1,0,0); buffer.__srcImageData = null; buffer.data = null; this.image.dirty = true; this.image.version++; } ,__drawGL: function(source,renderer) { var context = renderer.__context3D; var cacheRTT = context.__state.renderToTexture; var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil; var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias; var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector; context.setRenderToTexture(this.getTexture(context),true); renderer.__render(source); if(cacheRTT != null) { context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector); } else { context.setRenderToBackBuffer(); } } ,__fillRect: function(rect,color,allowFramebuffer) { if(rect == null) { return; } if(this.transparent && (color & -16777216) == 0) { color = 0; } if(allowFramebuffer && this.__texture != null && this.__texture.__glFramebuffer != null && openfl_Lib.get_current().stage.__renderer.__type == "opengl") { var renderer = openfl_Lib.get_current().stage.__renderer; var context = renderer.__context3D; var color1 = color; var useScissor = !this.rect.equals(rect); var cacheRTT = context.__state.renderToTexture; var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil; var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias; var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector; context.setRenderToTexture(this.__texture); if(useScissor) { context.setScissorRectangle(rect); } context.clear((color1 >>> 16 & 255) / 255,(color1 >>> 8 & 255) / 255,(color1 & 255) / 255,this.transparent ? (color1 >>> 24 & 255) / 255 : 1,0,0,1); if(useScissor) { context.setScissorRectangle(null); } if(cacheRTT != null) { context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector); } else { context.setRenderToBackBuffer(); } } else if(this.readable) { this.image.fillRect(rect.__toLimeRectangle(),color,1); } } ,__fromBase64: function(base64,type) { var image = lime_graphics_Image.fromBase64(base64,type); this.__fromImage(image); } ,__fromBytes: function(bytes,rawAlpha) { var image = lime_graphics_Image.fromBytes(openfl_utils_ByteArray.toBytes(bytes)); this.__fromImage(image); if(rawAlpha != null) { this.__applyAlpha(rawAlpha); } } ,__fromFile: function(path) { var image = lime_graphics_Image.fromFile(path); this.__fromImage(image); } ,__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.__textureWidth = this.width; this.__textureHeight = this.height; this.readable = true; this.__isValid = true; } } ,__getBounds: function(rect,matrix) { var bounds = openfl_geom_Rectangle.__pool.get(); this.rect.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); openfl_geom_Rectangle.__pool.release(bounds); } ,__loadFromBase64: function(base64,type) { var _gthis = this; return lime_graphics_Image.loadFromBase64(base64,type).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }); } ,__loadFromBytes: function(bytes,rawAlpha) { var _gthis = this; return lime_graphics_Image.loadFromBytes(openfl_utils_ByteArray.toBytes(bytes)).then(function(image) { _gthis.__fromImage(image); if(rawAlpha != null) { _gthis.__applyAlpha(rawAlpha); } return lime_app_Future.withValue(_gthis); }); } ,__loadFromFile: function(path) { var _gthis = this; return lime_graphics_Image.loadFromFile(path).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }); } ,__resize: function(width,height) { this.width = width; this.height = height; this.rect.width = width; this.rect.height = height; this.__textureWidth = width; this.__textureHeight = height; } ,__setUVRect: function(context,x,y,width,height) { var buffer = this.getVertexBuffer(context); if(buffer != null && (width != this.__uvRect.width || height != this.__uvRect.height || x != this.__uvRect.x || y != this.__uvRect.y)) { var gl = context.gl; if(this.__uvRect == null) { this.__uvRect = new openfl_geom_Rectangle(); } this.__uvRect.setTo(x,y,width,height); var uvX = this.__textureWidth > 0 ? x / this.__textureWidth : 0; var uvY = this.__textureHeight > 0 ? y / this.__textureHeight : 0; var uvWidth = this.__textureWidth > 0 ? width / this.__textureWidth : 0; var uvHeight = this.__textureHeight > 0 ? height / this.__textureHeight : 0; this.__vertexBufferData[0] = width; this.__vertexBufferData[1] = height; this.__vertexBufferData[3] = uvX + uvWidth; this.__vertexBufferData[4] = uvY + uvHeight; this.__vertexBufferData[15] = height; this.__vertexBufferData[17] = uvX; this.__vertexBufferData[18] = uvY + uvHeight; this.__vertexBufferData[28] = width; this.__vertexBufferData[31] = uvX + uvWidth; this.__vertexBufferData[32] = uvY; this.__vertexBufferData[45] = uvX; this.__vertexBufferData[46] = uvY; this.__vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__vertexBufferData)); } } ,__sync: function() { lime__$internal_graphics_ImageCanvasUtil.sync(this.image,false); } ,__update: function(transformOnly,updateChildren) { this.__updateTransforms(); } ,__updateTransforms: function(overrideTransform) { if(overrideTransform == null) { this.__worldTransform.identity(); } else { this.__worldTransform.copyFrom(overrideTransform); } this.__renderTransform.copyFrom(this.__worldTransform); } ,__class__: openfl_display_BitmapData }; var flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle = 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(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.preload != null) { this.__fromImage(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.resourceName),flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.preload == null) { flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.addons.transition._FlxTransitionSprite.RawGraphicTransTileCircle"] = flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.__name__ = "flixel.addons.transition._FlxTransitionSprite.RawGraphicTransTileCircle"; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.preload = null; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.__super__ = openfl_display_BitmapData; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle }); var flixel_addons_transition_GraphicTransTileCircle = function(onLoad) { flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.call(this,544,32,true,-1,onLoad); this.width = 544; this.height = 32; }; $hxClasses["flixel.addons.transition.GraphicTransTileCircle"] = flixel_addons_transition_GraphicTransTileCircle; flixel_addons_transition_GraphicTransTileCircle.__name__ = "flixel.addons.transition.GraphicTransTileCircle"; flixel_addons_transition_GraphicTransTileCircle.__super__ = flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle; flixel_addons_transition_GraphicTransTileCircle.prototype = $extend(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.prototype,{ __class__: flixel_addons_transition_GraphicTransTileCircle }); var flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond = 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(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.preload != null) { this.__fromImage(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.resourceName),flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.preload == null) { flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.addons.transition._FlxTransitionSprite.RawGraphicTransTileDiamond"] = flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.__name__ = "flixel.addons.transition._FlxTransitionSprite.RawGraphicTransTileDiamond"; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.preload = null; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.__super__ = openfl_display_BitmapData; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond }); var flixel_addons_transition_GraphicTransTileDiamond = function(onLoad) { flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.call(this,544,32,true,-1,onLoad); this.width = 544; this.height = 32; }; $hxClasses["flixel.addons.transition.GraphicTransTileDiamond"] = flixel_addons_transition_GraphicTransTileDiamond; flixel_addons_transition_GraphicTransTileDiamond.__name__ = "flixel.addons.transition.GraphicTransTileDiamond"; flixel_addons_transition_GraphicTransTileDiamond.__super__ = flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond; flixel_addons_transition_GraphicTransTileDiamond.prototype = $extend(flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.prototype,{ __class__: flixel_addons_transition_GraphicTransTileDiamond }); var flixel_addons_transition_RawGraphicTransTileSquare = 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(flixel_addons_transition_RawGraphicTransTileSquare.preload != null) { this.__fromImage(flixel_addons_transition_RawGraphicTransTileSquare.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition_RawGraphicTransTileSquare.resourceName),flixel_addons_transition_RawGraphicTransTileSquare.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_addons_transition_RawGraphicTransTileSquare.preload == null) { flixel_addons_transition_RawGraphicTransTileSquare.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.addons.transition.RawGraphicTransTileSquare"] = flixel_addons_transition_RawGraphicTransTileSquare; flixel_addons_transition_RawGraphicTransTileSquare.__name__ = "flixel.addons.transition.RawGraphicTransTileSquare"; flixel_addons_transition_RawGraphicTransTileSquare.preload = null; flixel_addons_transition_RawGraphicTransTileSquare.__super__ = openfl_display_BitmapData; flixel_addons_transition_RawGraphicTransTileSquare.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_addons_transition_RawGraphicTransTileSquare }); var flixel_addons_transition_GraphicTransTileSquare = function(onLoad) { flixel_addons_transition_RawGraphicTransTileSquare.call(this,544,32,true,-1,onLoad); this.width = 544; this.height = 32; }; $hxClasses["flixel.addons.transition.GraphicTransTileSquare"] = flixel_addons_transition_GraphicTransTileSquare; flixel_addons_transition_GraphicTransTileSquare.__name__ = "flixel.addons.transition.GraphicTransTileSquare"; flixel_addons_transition_GraphicTransTileSquare.__super__ = flixel_addons_transition_RawGraphicTransTileSquare; flixel_addons_transition_GraphicTransTileSquare.prototype = $extend(flixel_addons_transition_RawGraphicTransTileSquare.prototype,{ __class__: flixel_addons_transition_GraphicTransTileSquare }); var flixel_addons_transition_FlxTransitionSprite = function(X,Y,Delay,Graphic,GraphicWidth,GraphicHeight,FrameRate) { if(FrameRate == null) { FrameRate = 40; } if(GraphicHeight == null) { GraphicHeight = 32; } if(GraphicWidth == null) { GraphicWidth = 32; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._newStatus = -1; this.status = 0; this._finished = false; this._starting = true; flixel_FlxSprite.call(this,X,Y); if(Graphic == null) { Graphic = flixel_graphics_FlxGraphic.fromClass(flixel_addons_transition_GraphicTransTileDiamond); GraphicWidth = 32; GraphicHeight = 32; } this._delay = Delay; this.loadGraphic(Graphic,true,GraphicWidth,GraphicHeight); if(this.graphic == null) { return; } this.graphic.persist = true; this.graphic.set_destroyOnNoUse(false); var inArray = []; var outArray = []; var _g = 1; var _g1 = this.get_numFrames() - 1; while(_g < _g1) { var i = _g++; inArray.push(i); } outArray = inArray.slice(); outArray.reverse(); this.animation.add("empty",[0],0,false); this.animation.add("in",inArray,FrameRate,false); this.animation.add("full",[this.get_numFrames() - 1],0,false); this.animation.add("out",outArray,FrameRate,false); this.setStatus(3); }; $hxClasses["flixel.addons.transition.FlxTransitionSprite"] = flixel_addons_transition_FlxTransitionSprite; flixel_addons_transition_FlxTransitionSprite.__name__ = "flixel.addons.transition.FlxTransitionSprite"; flixel_addons_transition_FlxTransitionSprite.__super__ = flixel_FlxSprite; flixel_addons_transition_FlxTransitionSprite.prototype = $extend(flixel_FlxSprite.prototype,{ _delay: null ,_count: null ,_starting: null ,_finished: null ,status: null ,_newStatus: null ,start: function(NewStatus) { this._starting = true; this._finished = false; this._count = 0; this._newStatus = NewStatus; } ,startStatus: function(NewStatus) { this.setStatus(NewStatus); } ,setStatus: function(Status) { var anim; switch(Status) { case -1:case 2: anim = "empty"; break; case 0: anim = "in"; break; case 1: anim = "out"; break; case 3: anim = "full"; break; } this.animation.play(anim); this.animation.finishCallback = $bind(this,this.onFinishAnim); this.status = Status; } ,onFinishAnim: function(str) { if(!this._finished) { this._finished = true; switch(this.status) { case 0: this.setStatus(3); break; case 1: this.setStatus(2); break; default: } } } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); if(this._starting) { this._count += elapsed; if(this._count >= this._delay) { this.onTime(); } } } ,onTime: function() { this._starting = false; this._count = 0; this.setStatus(this._newStatus); this._newStatus = -1; } ,__class__: flixel_addons_transition_FlxTransitionSprite }); var flixel_addons_transition_FlxTransitionableState = function(TransIn,TransOut) { this._exiting = false; this.transOutFinished = false; this.transIn = TransIn; this.transOut = TransOut; if(this.transIn == null && flixel_addons_transition_FlxTransitionableState.defaultTransIn != null) { this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn; } if(this.transOut == null && flixel_addons_transition_FlxTransitionableState.defaultTransOut != null) { this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut; } flixel_FlxState.call(this); }; $hxClasses["flixel.addons.transition.FlxTransitionableState"] = flixel_addons_transition_FlxTransitionableState; flixel_addons_transition_FlxTransitionableState.__name__ = "flixel.addons.transition.FlxTransitionableState"; flixel_addons_transition_FlxTransitionableState.__super__ = flixel_FlxState; flixel_addons_transition_FlxTransitionableState.prototype = $extend(flixel_FlxState.prototype,{ transIn: null ,transOut: null ,destroy: function() { flixel_FlxState.prototype.destroy.call(this); this.transIn = null; this.transOut = null; this._onExit = null; } ,create: function() { flixel_FlxState.prototype.create.call(this); this.transitionIn(); } ,startOutro: function(onOutroComplete) { if(!this.get_hasTransOut()) { onOutroComplete(); } else if(!this._exiting) { this._exiting = true; this.transitionOut(onOutroComplete); if(flixel_addons_transition_FlxTransitionableState.skipNextTransOut) { flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false; this.finishTransOut(); } } } ,transitionIn: function() { if(this.transIn != null && this.transIn.type != "none") { if(flixel_addons_transition_FlxTransitionableState.skipNextTransIn) { flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false; if(this.finishTransIn != null) { this.finishTransIn(); } return; } var _trans = this.createTransition(this.transIn); _trans.setStatus(3); this.openSubState(_trans); _trans.set_finishCallback($bind(this,this.finishTransIn)); _trans.start(1); } } ,transitionOut: function(OnExit) { this._onExit = OnExit; if(this.get_hasTransOut()) { var _trans = this.createTransition(this.transOut); _trans.setStatus(2); this.openSubState(_trans); _trans.set_finishCallback($bind(this,this.finishTransOut)); _trans.start(0); } else { this._onExit(); } } ,transOutFinished: null ,_exiting: null ,_onExit: null ,get_hasTransIn: function() { if(this.transIn != null) { return this.transIn.type != "none"; } else { return false; } } ,get_hasTransOut: function() { if(this.transOut != null) { return this.transOut.type != "none"; } else { return false; } } ,createTransition: function(data) { switch(data.type) { case "fade": return new flixel_addons_transition_Transition(data); case "tiles": return new flixel_addons_transition_Transition(data); default: return null; } } ,finishTransIn: function() { this.closeSubState(); } ,finishTransOut: function() { this.transOutFinished = true; if(!this._exiting) { this.closeSubState(); } if(this._onExit != null) { this._onExit(); } } ,__class__: flixel_addons_transition_FlxTransitionableState ,__properties__: $extend(flixel_FlxState.prototype.__properties__,{get_hasTransOut:"get_hasTransOut",get_hasTransIn:"get_hasTransIn"}) }); var flixel_addons_transition_Transition = function(data) { flixel_FlxSubState.call(this,0); this._effect = this.createEffect(data); var this1 = this._effect.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this._effect); }; $hxClasses["flixel.addons.transition.Transition"] = flixel_addons_transition_Transition; flixel_addons_transition_Transition.__name__ = "flixel.addons.transition.Transition"; flixel_addons_transition_Transition.__super__ = flixel_FlxSubState; flixel_addons_transition_Transition.prototype = $extend(flixel_FlxSubState.prototype,{ _effect: null ,destroy: function() { flixel_FlxSubState.prototype.destroy.call(this); this.set_finishCallback(null); this._effect = flixel_util_FlxDestroyUtil.destroy(this._effect); } ,start: function(newStatus) { this._effect.start(newStatus); } ,setStatus: function(newStatus) { this._effect.setStatus(newStatus); } ,createEffect: function(data) { switch(data.type) { case "fade": return new flixel_addons_transition_TransitionFade(data); case "none": throw haxe_Exception.thrown("Unexpected TransitionType: NONE"); case "tiles": return new flixel_addons_transition_TransitionTiles(data); } } ,get_finishCallback: function() { if(this._effect != null) { return this._effect.finishCallback; } return null; } ,set_finishCallback: function(callback) { if(this._effect != null) { this._effect.finishCallback = callback; return callback; } return null; } ,__class__: flixel_addons_transition_Transition ,__properties__: $extend(flixel_FlxSubState.prototype.__properties__,{set_finishCallback:"set_finishCallback",get_finishCallback:"get_finishCallback"}) }); var flixel_addons_transition_TransitionCameraMode = $hxEnums["flixel.addons.transition.TransitionCameraMode"] = { __ename__:"flixel.addons.transition.TransitionCameraMode",__constructs__:null ,TOP: {_hx_name:"TOP",_hx_index:0,__enum__:"flixel.addons.transition.TransitionCameraMode",toString:$estr} ,NEW: {_hx_name:"NEW",_hx_index:1,__enum__:"flixel.addons.transition.TransitionCameraMode",toString:$estr} ,DEFAULT: {_hx_name:"DEFAULT",_hx_index:2,__enum__:"flixel.addons.transition.TransitionCameraMode",toString:$estr} }; flixel_addons_transition_TransitionCameraMode.__constructs__ = [flixel_addons_transition_TransitionCameraMode.TOP,flixel_addons_transition_TransitionCameraMode.NEW,flixel_addons_transition_TransitionCameraMode.DEFAULT]; flixel_addons_transition_TransitionCameraMode.__empty_constructs__ = [flixel_addons_transition_TransitionCameraMode.TOP,flixel_addons_transition_TransitionCameraMode.NEW,flixel_addons_transition_TransitionCameraMode.DEFAULT]; var flixel_addons_transition_TransitionData = function(type,color,duration,direction,tileData,region,cameraMode) { if(cameraMode == null) { cameraMode = flixel_addons_transition_TransitionCameraMode.TOP; } if(duration == null) { duration = 1.0; } if(color == null) { color = -1; } if(type == null) { type = "fade"; } this.cameraMode = flixel_addons_transition_TransitionCameraMode.TOP; this.duration = 1.0; this.type = type; this.tileData = tileData; this.duration = duration; this.color = color; if(direction == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } direction = new flixel_math_FlxBasePoint(x,y); } else { var Value = direction.x; var lowerBound = Value < -1 ? -1 : Value; direction.set_x(lowerBound > 1 ? 1 : lowerBound); var Value = direction.y; var lowerBound = Value < -1 ? -1 : Value; direction.set_y(lowerBound > 1 ? 1 : lowerBound); } this.direction = direction; this.tweenOptions = { onComplete : null}; if(region == null) { region = new flixel_math_FlxRect(0,0,flixel_FlxG.width,flixel_FlxG.height); } this.region = region; this.cameraMode = cameraMode; }; $hxClasses["flixel.addons.transition.TransitionData"] = flixel_addons_transition_TransitionData; flixel_addons_transition_TransitionData.__name__ = "flixel.addons.transition.TransitionData"; flixel_addons_transition_TransitionData.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_transition_TransitionData.prototype = { type: null ,tileData: null ,color: null ,duration: null ,direction: null ,tweenOptions: null ,region: null ,cameraMode: null ,destroy: function() { this.tileData = null; this.direction = null; this.tweenOptions = null; this.region = null; this.direction = null; } ,__class__: flixel_addons_transition_TransitionData }; var flixel_addons_transition_TransitionEffect = function(data) { this._finalDelayTime = 0.0; this._started = false; this.finished = false; this._data = data; flixel_group_FlxTypedSpriteGroup.call(this); }; $hxClasses["flixel.addons.transition.TransitionEffect"] = flixel_addons_transition_TransitionEffect; flixel_addons_transition_TransitionEffect.__name__ = "flixel.addons.transition.TransitionEffect"; flixel_addons_transition_TransitionEffect.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_addons_transition_TransitionEffect.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ finishCallback: null ,finished: null ,_started: null ,_endStatus: null ,_finalDelayTime: null ,_customCamera: null ,_data: null ,destroy: function() { flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); this.finishCallback = null; if(this._customCamera != null) { if(flixel_FlxG.cameras.list.indexOf(this._customCamera) != -1) { flixel_FlxG.cameras.remove(this._customCamera,true); } this._customCamera = null; } } ,start: function(newStatus) { this._started = true; if(newStatus == 0) { this._endStatus = 3; } else { this._endStatus = 2; } switch(this._data.cameraMode._hx_index) { case 0: var cams = flixel_FlxG.cameras.list; this.set_camera(cams[cams.length - 1]); break; case 1: this._customCamera = new flixel_FlxCamera(0,0,this._data.region.width | 0,this._data.region.height | 0); this._customCamera.bgColor = 0; flixel_FlxG.cameras.add(this._customCamera,false); this.set_camera(this._customCamera); break; case 2: break; } } ,setStatus: function(newStatus) { } ,delayThenFinish: function() { new flixel_util_FlxTimer().start(this._finalDelayTime,$bind(this,this.onFinish)); } ,onFinish: function(f) { this.finished = true; if(this.finishCallback != null) { var callback = this.finishCallback; this.finishCallback = null; callback(); } } ,__class__: flixel_addons_transition_TransitionEffect }); var flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient = 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(flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.preload != null) { this.__fromImage(flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.resourceName),flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.preload == null) { flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.addons.transition._TransitionFade.RawGraphicDiagonalGradient"] = flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient; flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.__name__ = "flixel.addons.transition._TransitionFade.RawGraphicDiagonalGradient"; flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.preload = null; flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.__super__ = openfl_display_BitmapData; flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient }); var flixel_addons_transition_GraphicDiagonalGradient = function(onLoad) { flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.call(this,319,128,true,-1,onLoad); this.width = 319; this.height = 128; }; $hxClasses["flixel.addons.transition.GraphicDiagonalGradient"] = flixel_addons_transition_GraphicDiagonalGradient; flixel_addons_transition_GraphicDiagonalGradient.__name__ = "flixel.addons.transition.GraphicDiagonalGradient"; flixel_addons_transition_GraphicDiagonalGradient.__super__ = flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient; flixel_addons_transition_GraphicDiagonalGradient.prototype = $extend(flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.prototype,{ __class__: flixel_addons_transition_GraphicDiagonalGradient }); var flixel_addons_transition_TransitionFade = function(data) { flixel_addons_transition_TransitionEffect.call(this,data); this.back = this.makeSprite(data.direction.x,data.direction.y,data.region); var this1 = this.back.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.back); }; $hxClasses["flixel.addons.transition.TransitionFade"] = flixel_addons_transition_TransitionFade; flixel_addons_transition_TransitionFade.__name__ = "flixel.addons.transition.TransitionFade"; flixel_addons_transition_TransitionFade.__super__ = flixel_addons_transition_TransitionEffect; flixel_addons_transition_TransitionFade.prototype = $extend(flixel_addons_transition_TransitionEffect.prototype,{ back: null ,destroy: function() { flixel_addons_transition_TransitionEffect.prototype.destroy.call(this); this.back = null; } ,start: function(newStatus) { flixel_addons_transition_TransitionEffect.prototype.start.call(this,newStatus); var endValues = { }; this.setTweenValues(newStatus == 0,this._data.direction.x,this._data.direction.y,this.back,endValues); this._data.tweenOptions.onComplete = $bind(this,this.finishTween); flixel_tweens_FlxTween.tween(this.back,endValues,this._data.duration,this._data.tweenOptions); } ,setTweenValues: function(isIn,dirX,dirY,sprite,values) { var isOut = !isIn; if(dirX == 0 && dirY == 0) { sprite.set_alpha(isIn ? 0 : 1); values.alpha = isOut ? 0 : 1; } else if(dirX != 0 && dirY != 0) { if(dirX > 0) { sprite.set_x(isIn ? -this.back.get_width() : 0); values.x = isOut ? -this.back.get_width() : 0; } else { sprite.set_x(isIn ? flixel_FlxG.width : flixel_FlxG.width - this.back.get_width()); values.x = isOut ? flixel_FlxG.width : flixel_FlxG.width - this.back.get_width(); } return; } else if(dirX != 0) { if(dirX > 0) { sprite.set_x(isIn ? -this.back.get_width() : 0); values.x = isOut ? -this.back.get_width() : 0; } else { sprite.set_x(isIn ? flixel_FlxG.width : -this.back.get_width() / 2); values.x = isOut ? flixel_FlxG.width : -this.back.get_width() / 2; } } else if(dirY > 0) { sprite.set_y(isIn ? -this.back.get_height() : 0); values.y = isOut ? -this.back.get_height() : 0; } else { sprite.set_y(isIn ? flixel_FlxG.height : -this.back.get_height() / 2); values.y = isOut ? flixel_FlxG.height : -this.back.get_height() / 2; } } ,getBitmapKey: function(dirX,dirY,color) { return "transition" + color + "x" + dirX + "y" + dirY; } ,makeSprite: function(dirX,dirY,region) { var sprite = new flixel_FlxSprite(region.x,region.y); var bitmapKey = "transition" + this._data.color + "x" + dirX + "y" + dirY; sprite.set_antialiasing(false); if(dirX == 0 && dirY == 0) { sprite.makeGraphic(1,1,this._data.color,false,bitmapKey); var this1 = sprite.scale; var x = region.width | 0; var y = region.height | 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); sprite.updateHitbox(); } else if(dirX == 0 && dirY != 0) { sprite.makeGraphic(1,region.height * 2 | 0,this._data.color,false,bitmapKey); var angle = dirY > 0 ? 90 : 270; var gradient = flixel_util_FlxGradient.createGradientBitmapData(1,region.height | 0,[this._data.color,0],1,angle); var destY = dirY > 0 ? region.height : 0; sprite.get_pixels().copyPixels(gradient,gradient.rect,new openfl_geom_Point(0,destY)); var this1 = sprite.scale; var x = region.width; var y = 1.0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); sprite.updateHitbox(); } else if(dirX != 0 && dirY == 0) { var destX = dirX > 0 ? region.width : 0; var angle = dirX > 0 ? 0 : 180; sprite.makeGraphic(region.width * 2 | 0,1,this._data.color,false,bitmapKey); var gradient = flixel_util_FlxGradient.createGradientBitmapData(region.width | 0,1,[this._data.color,0],1,angle); sprite.get_pixels().copyPixels(gradient,gradient.rect,new openfl_geom_Point(destX,0)); var this1 = sprite.scale; var x = 1.0; var y = region.height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); sprite.updateHitbox(); } else if(dirX != 0 && dirY != 0) { sprite.loadGraphic(this.getGradient()); sprite.set_color(this._data.color); sprite.set_flipX(dirX < 0); sprite.set_flipY(dirY < 0); } return sprite; } ,getGradient: function() { var gameWidth = flixel_FlxG.width; var gameHeight = flixel_FlxG.height; var source = flixel_FlxG.bitmap.add("flixel/images/transitions/diagonal_gradient.png").bitmap; var key = "flixel/images/transitions/diagonal_gradient.png" + ":" + gameWidth + "x" + gameHeight; var graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic == null) { var gradient = new openfl_display_BitmapData(Math.floor(gameWidth * 2.5),gameHeight,true,0); var matrix = new openfl_geom_Matrix(); matrix.scale(gradient.width / source.width,gradient.height / source.height); gradient.draw(source,matrix,null,null,null,true); graphic = flixel_FlxG.bitmap.add(gradient,false,key); graphic.persist = true; graphic.set_destroyOnNoUse(false); } return graphic; } ,finishTween: function(f) { this.delayThenFinish(); } ,__class__: flixel_addons_transition_TransitionFade }); var flixel_addons_transition_TransitionTiles = function(data) { this._isCenter = false; flixel_addons_transition_TransitionEffect.call(this,data); this._grpSprites = new flixel_group_FlxTypedSpriteGroup(); var delay = 0; if(data.tileData == null) { data.tileData = { asset : null, width : 32, height : 32}; } var region = data.region; var tilesX = Math.ceil(region.width / data.tileData.width); var tilesY = Math.ceil(region.height / data.tileData.height); var maxTiles = tilesX > tilesY ? tilesX : tilesY; var dTime = data.duration / maxTiles; var xDelay = dTime * Math.abs(data.direction.x); var yDelay = dTime * Math.abs(data.direction.y); var addX = data.tileData.width; var addY = data.tileData.height; var tx = 0; var ty = 0; var startX = region.x | 0; var startY = region.y | 0; if(data.direction.x < 0) { addX *= -1; startX += region.width + addX | 0; } if(data.direction.y < 0) { addY *= -1; startY += region.height + addY | 0; } tx = startX; ty = startY; var _g = 0; var _g1 = tilesY; while(_g < _g1) { var iy = _g++; var _g2 = 0; var _g3 = tilesX; while(_g2 < _g3) { var ix = _g2++; var frameRate = 40; if(data.tileData.frameRate != null) { frameRate = data.tileData.frameRate; } var ts = new flixel_addons_transition_FlxTransitionSprite(tx,ty,delay,data.tileData.asset,data.tileData.width,data.tileData.height,frameRate); ts.set_color(data.color); var this1 = ts.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._grpSprites.add(ts); tx += addX; delay += xDelay; } ty += addY; tx = startX; delay = (iy + 1) * yDelay; } this.add(this._grpSprites); this._isCenter = data.direction.x == 0 && data.direction.y == 0; }; $hxClasses["flixel.addons.transition.TransitionTiles"] = flixel_addons_transition_TransitionTiles; flixel_addons_transition_TransitionTiles.__name__ = "flixel.addons.transition.TransitionTiles"; flixel_addons_transition_TransitionTiles.__super__ = flixel_addons_transition_TransitionEffect; flixel_addons_transition_TransitionTiles.prototype = $extend(flixel_addons_transition_TransitionEffect.prototype,{ _grpSprites: null ,_isCenter: null ,destroy: function() { flixel_addons_transition_TransitionEffect.prototype.destroy.call(this); this._grpSprites = null; } ,start: function(NewStatus) { flixel_addons_transition_TransitionEffect.prototype.start.call(this,NewStatus); this._grpSprites.group.forEach(function(t) { t.start(NewStatus); },false); } ,setStatus: function(NewStatus) { flixel_addons_transition_TransitionEffect.prototype.setStatus.call(this,NewStatus); this._grpSprites.group.forEach(function(t) { t.setStatus(NewStatus); },false); } ,update: function(elapsed) { flixel_addons_transition_TransitionEffect.prototype.update.call(this,elapsed); if(this._started) { var allDone = true; var _g = 0; var _g1 = this._grpSprites.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite.status != -1 && sprite.status != this._endStatus) { allDone = false; break; } } if(allDone) { this._started = false; this.delayThenFinish(); } } } ,__class__: flixel_addons_transition_TransitionTiles }); var flixel_addons_ui_Anchor = function(XOff,YOff,XSide,YSide,XFlush,YFlush) { this.x = new flixel_addons_ui_AnchorPoint(XOff,XSide,XFlush); this.y = new flixel_addons_ui_AnchorPoint(YOff,YSide,YFlush); }; $hxClasses["flixel.addons.ui.Anchor"] = flixel_addons_ui_Anchor; flixel_addons_ui_Anchor.__name__ = "flixel.addons.ui.Anchor"; flixel_addons_ui_Anchor.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_ui_Anchor.prototype = { x: null ,y: null ,destroy: function() { this.x = null; this.y = null; } ,anchorThing: function(thing,destination) { var destX = 0; var destY = 0; switch(this.x.side) { case "center": destX = destination.x + destination.get_width() / 2; break; case "left": destX = destination.x; break; case "right": destX = destination.x + destination.get_width(); break; default: destX = destination.x; } switch(this.y.side) { case "bottom": destY = destination.y + destination.get_height(); break; case "center": destY = destination.y + destination.get_height() / 2; break; case "top": destY = destination.y; break; default: destY = destination.y; } switch(this.x.flush) { case "center": destX -= thing.get_width() / 2; break; case "left": break; case "right": destX -= thing.get_width(); break; default: } switch(this.y.flush) { case "bottom": destY -= thing.get_height(); break; case "center": destY -= thing.get_height() / 2; break; case "top": break; default: } thing.set_x(destX + this.x.offset); thing.set_y(destY + this.y.offset); } ,getFlipped: function(FlipX,FlipY,AnchorObject) { var xoff = FlipX ? -1 * this.x.offset : this.x.offset; var yoff = FlipY ? -1 * this.y.offset : this.y.offset; var xside = FlipX ? this.flipAnchorSide(this.x.side) : this.x.side; var yside = FlipY ? this.flipAnchorSide(this.y.side) : this.y.side; var xflush = FlipX ? this.flipAnchorSide(this.x.flush) : this.x.flush; var yflush = FlipY ? this.flipAnchorSide(this.y.flush) : this.y.flush; if(AnchorObject == null) { AnchorObject = new flixel_addons_ui_Anchor(xoff,yoff,xside,yside,xflush,yflush); } else { AnchorObject.x.offset = xoff; AnchorObject.y.offset = yoff; AnchorObject.x.side = xside; AnchorObject.y.side = yside; AnchorObject.x.flush = xflush; AnchorObject.y.flush = yflush; } return AnchorObject; } ,clone: function() { return new flixel_addons_ui_Anchor(this.x.offset,this.y.offset,this.x.side,this.y.side,this.x.flush,this.y.flush); } ,flipAnchorSide: function(str) { if(str == "left") { return "right"; } if(str == "right") { return "left"; } if(str == "top") { return "bottom"; } if(str == "bottom") { return "top"; } return str; } ,__class__: flixel_addons_ui_Anchor }; var flixel_addons_ui_AnchorPoint = function(Offset,Side,Flush) { this.flush = "center"; this.side = "center"; this.offset = 0; this.offset = Offset; this.side = Side; this.flush = Flush; }; $hxClasses["flixel.addons.ui.AnchorPoint"] = flixel_addons_ui_AnchorPoint; flixel_addons_ui_AnchorPoint.__name__ = "flixel.addons.ui.AnchorPoint"; flixel_addons_ui_AnchorPoint.prototype = { offset: null ,side: null ,flush: null ,__class__: flixel_addons_ui_AnchorPoint }; var flixel_addons_ui_BorderDef = function(Style,Color,Size,Quality) { if(Quality == null) { Quality = 1; } if(Size == null) { Size = 1; } this.style = Style; this.color = Color; this.size = Size; this.quality = Quality; }; $hxClasses["flixel.addons.ui.BorderDef"] = flixel_addons_ui_BorderDef; flixel_addons_ui_BorderDef.__name__ = "flixel.addons.ui.BorderDef"; flixel_addons_ui_BorderDef.fromXML = function(data) { var border_str = flixel_addons_ui_U.xml_str(data,"border"); var border_style = flixel_text_FlxTextBorderStyle.NONE; var border_color = flixel_addons_ui_U.xml_color(data,"border_color",true,0); var border_size = flixel_addons_ui_U.xml_f(data,"border_size",1); var border_quality = flixel_addons_ui_U.xml_f(data,"border_quality",0); var borderDef = new flixel_addons_ui_BorderDef(border_style,border_color,border_size,border_quality); switch(border_str) { case "": border_str = flixel_addons_ui_U.xml_str(data,"shadow",true,""); if(border_str != "" && border_str != "false" && border_str != "none") { borderDef.style = flixel_text_FlxTextBorderStyle.SHADOW; var safe = true; if(safe == null) { safe = false; } var return_val = flixel_util_FlxColor.fromString(border_str); if(return_val == null) { if(!safe) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + border_str); } else { return_val = 0; } } borderDef.color = return_val; } else { border_str = flixel_addons_ui_U.xml_str(data,"outline",true,""); if(border_str != "" && border_str != "false" && border_str != "none") { borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE; var safe = true; if(safe == null) { safe = false; } var return_val = flixel_util_FlxColor.fromString(border_str); if(return_val == null) { if(!safe) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + border_str); } else { return_val = 0; } } borderDef.color = return_val; } else { border_str = flixel_addons_ui_U.xml_str(data,"outline_fast"); if(border_str != "" && border_str != "false" && border_str != "none") { borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE_FAST; var safe = true; if(safe == null) { safe = false; } var return_val = flixel_util_FlxColor.fromString(border_str); if(return_val == null) { if(!safe) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + border_str); } else { return_val = 0; } } borderDef.color = return_val; } } } break; case "false":case "none": borderDef.style = flixel_text_FlxTextBorderStyle.NONE; break; case "outline": borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE; break; case "outline_fast": borderDef.style = flixel_text_FlxTextBorderStyle.OUTLINE_FAST; break; case "shadow": borderDef.style = flixel_text_FlxTextBorderStyle.SHADOW; break; } return borderDef; }; flixel_addons_ui_BorderDef.prototype = { style: null ,color: null ,size: null ,quality: null ,clone: function() { return new flixel_addons_ui_BorderDef(this.style,this.color,this.size,this.quality); } ,apply: function(f) { var Color = this.color; var Size = this.size; var Quality = this.quality; if(Quality == null) { Quality = 1; } if(Size == null) { Size = 1; } if(Color == null) { Color = 0; } f.set_borderStyle(this.style); f.set_borderColor(Color); f.set_borderSize(Size); f.set_borderQuality(Quality); return f; } ,__class__: flixel_addons_ui_BorderDef }; var flixel_addons_ui_ButtonLabelStyle = function(Font,Align,Color,Border) { this.align = null; this.color = null; this.border = null; this.font = null; this.font = Font; this.border = Border; this.color = Color; this.align = Align; }; $hxClasses["flixel.addons.ui.ButtonLabelStyle"] = flixel_addons_ui_ButtonLabelStyle; flixel_addons_ui_ButtonLabelStyle.__name__ = "flixel.addons.ui.ButtonLabelStyle"; flixel_addons_ui_ButtonLabelStyle.prototype = { font: null ,border: null ,color: null ,align: null ,apply: function(f) { if(this.font != null) { this.font.apply(null,f); } if(this.border != null) { this.border.apply(f); } if(this.color != null) { f.set_color(this.color); } if(this.align != null) { f.set_alignment(this.align); } } ,__class__: flixel_addons_ui_ButtonLabelStyle }; var flixel_addons_ui_FlxBaseMultiInput = function() { }; $hxClasses["flixel.addons.ui.FlxBaseMultiInput"] = flixel_addons_ui_FlxBaseMultiInput; flixel_addons_ui_FlxBaseMultiInput.__name__ = "flixel.addons.ui.FlxBaseMultiInput"; flixel_addons_ui_FlxBaseMultiInput.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_ui_FlxBaseMultiInput.prototype = { input: null ,combos: null ,forbiddens: null ,destroy: function() { this.combos = null; this.forbiddens = null; } ,checkJustPressed: function() { return false; } ,checkJustReleased: function() { return false; } ,checkPressed: function() { return false; } ,justPressed: function() { if(this.checkJustPressed()) { return this.passCombosAndForbiddens(); } else { return false; } } ,justReleased: function() { if(this.checkJustReleased()) { if(this.forbiddens != null) { return this.checkForbiddens(false); } else { return true; } } else { return false; } } ,pressed: function() { if(this.checkPressed()) { return this.passCombosAndForbiddens(); } else { return false; } } ,equals: function(other) { if(other == null) { return false; } if(Type.typeof(other) != Type.typeof(this)) { return false; } if(this.input != other.input) { return false; } if(this.combos == null != (other.combos == null)) { return false; } if(this.forbiddens == null != (other.forbiddens == null)) { return false; } if(this.combos != null && other.combos != null) { var _g = 0; var _g1 = this.combos; while(_g < _g1.length) { var i = _g1[_g]; ++_g; if(other.combos.indexOf(i) == -1) { return false; } } } if(this.forbiddens != null && other.forbiddens != null) { var _g = 0; var _g1 = this.forbiddens; while(_g < _g1.length) { var i = _g1[_g]; ++_g; if(other.forbiddens.indexOf(i) == -1) { return false; } } } return true; } ,passCombosAndForbiddens: function(comboValue,forbiddenValue) { if(forbiddenValue == null) { forbiddenValue = false; } if(comboValue == null) { comboValue = true; } var passCombos = this.combos == null || this.checkCombos(comboValue); var passForbiddens = this.forbiddens == null || this.checkForbiddens(forbiddenValue); if(passCombos) { return passForbiddens; } else { return false; } } ,checkCombos: function(value) { return false; } ,checkForbiddens: function(value) { return false; } ,__class__: flixel_addons_ui_FlxBaseMultiInput }; var flixel_addons_ui_FlxButtonPlus = function(X,Y,Callback,Label,Width,Height) { if(Height == null) { Height = 20; } if(Width == null) { Width = 100; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._initialized = false; this._status = 0; this.borderColor = -1; this.offColor = [-16744448,-16711936]; this.onColor = [-8388608,-65536]; flixel_group_FlxTypedSpriteGroup.call(this,4); this.set_x(X); this.set_y(Y); this.onClickCallback = Callback; var Value = new flixel_addons_display_FlxExtendedMouseSprite(); if(Value == null) { this.buttonNormal = null; } else { if(this.buttonHighlight != this.buttonNormal) { flixel_util_FlxDestroyUtil.destroy(this.buttonNormal); } this.group.replace(this.buttonNormal,Value); if(this._status != 0) { Value.set_visible(false); this.buttonHighlight.set_visible(true); } this.buttonNormal = Value; } this.buttonNormal.setSize(Width,Height); this.updateInactiveButtonColors(this.offColor); this.buttonNormal.set_solid(false); var this1 = this.buttonNormal.scrollFactor; this1.set_x(0); this1.set_y(0); var Value = new flixel_addons_display_FlxExtendedMouseSprite(); if(Value == null) { this.buttonHighlight = null; } else { if(this.buttonHighlight != this.buttonNormal) { flixel_util_FlxDestroyUtil.destroy(this.buttonHighlight); } if(this._status != 1) { Value.set_visible(false); this.buttonNormal.set_visible(true); } this.group.replace(this.buttonHighlight,Value); this.buttonHighlight = Value; } this.buttonHighlight.setSize(Width,Height); this.updateActiveButtonColors(this.onColor); this.buttonHighlight.set_solid(false); this.buttonHighlight.set_visible(false); var this1 = this.buttonHighlight.scrollFactor; this1.set_x(0); this1.set_y(0); this.add(this.buttonNormal); this.add(this.buttonHighlight); if(Label != null) { var Value = new flixel_text_FlxText(0,3,Width,Label); if(Value == null) { this.textNormal = null; } else { if(this.textNormal != this.textHighlight) { flixel_util_FlxDestroyUtil.destroy(this.textNormal); } if(this._status != 0) { Value.set_visible(false); this.textHighlight.set_visible(true); } this.group.replace(this.textNormal,Value); this.textNormal = Value; } this.textNormal.setFormat(null,8,16777215,"center"); var Value = new flixel_text_FlxText(0,3,Width,Label); if(Value == null) { this.textHighlight = null; } else { if(this.textNormal != this.textHighlight) { flixel_util_FlxDestroyUtil.destroy(this.textHighlight); } if(this._status != 1) { Value.set_visible(false); this.textNormal.set_visible(true); } this.group.replace(this.textHighlight,Value); this.textHighlight = Value; } this.textHighlight.setFormat(null,8,16777215,"center"); this.textHighlight.set_visible(false); this.add(this.textNormal); this.add(this.textHighlight); } }; $hxClasses["flixel.addons.ui.FlxButtonPlus"] = flixel_addons_ui_FlxButtonPlus; flixel_addons_ui_FlxButtonPlus.__name__ = "flixel.addons.ui.FlxButtonPlus"; flixel_addons_ui_FlxButtonPlus.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_addons_ui_FlxButtonPlus.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ borderColor: null ,offColor: null ,onColor: null ,onClickCallback: null ,enterCallback: null ,leaveCallback: null ,buttonNormal: null ,buttonHighlight: null ,textNormal: null ,textHighlight: null ,_status: null ,_initialized: null ,loadButtonGraphic: function(Normal,Highlight) { this.buttonNormal.set_pixels(Normal.get_pixels()); this.buttonHighlight.set_pixels(Highlight.get_pixels()); if(this._status == 1) { this.buttonNormal.set_visible(false); } else { this.buttonHighlight.set_visible(false); } } ,update: function(elapsed) { if(!this._initialized) { if(openfl_Lib.get_current().stage != null) { openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onMouseUp)); this._initialized = true; } } flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); this.updateButton(); } ,updateButton: function() { var prevStatus = this._status; var offAll = true; var _g = 0; var _g1 = this.buttonNormal.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _this = this.buttonNormal; _this._rect.x = _this.x; _this._rect.y = _this.y; _this._rect.width = _this.get_width(); _this._rect.height = _this.get_height(); if(flixel_math_FlxMath.mouseInFlxRect(true,_this._rect)) { offAll = false; if(flixel_FlxG.mouse._leftButton.current == 2) { this._status = 2; } if(this._status == 0) { this._status = 1; } } } if(offAll) { this._status = 0; } if(this._status != prevStatus) { if(this._status == 0) { this.buttonHighlight.set_visible(false); this.buttonNormal.set_visible(true); if(this.textNormal != null) { this.textHighlight.set_visible(false); this.textNormal.set_visible(true); } if(this.leaveCallback != null) { this.leaveCallback(); } } else if(this._status == 1) { this.buttonNormal.set_visible(false); this.buttonHighlight.set_visible(true); if(this.textNormal != null) { this.textNormal.set_visible(false); this.textHighlight.set_visible(true); } if(this.enterCallback != null) { this.enterCallback(); } } } } ,destroy: function() { if(openfl_Lib.get_current().stage != null) { openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onMouseUp)); } var Value = flixel_util_FlxDestroyUtil.destroy(this.buttonNormal); if(Value == null) { this.buttonNormal = null; } else { if(this.buttonHighlight != this.buttonNormal) { flixel_util_FlxDestroyUtil.destroy(this.buttonNormal); } this.group.replace(this.buttonNormal,Value); if(this._status != 0) { Value.set_visible(false); this.buttonHighlight.set_visible(true); } this.buttonNormal = Value; } var Value = flixel_util_FlxDestroyUtil.destroy(this.buttonHighlight); if(Value == null) { this.buttonHighlight = null; } else { if(this.buttonHighlight != this.buttonNormal) { flixel_util_FlxDestroyUtil.destroy(this.buttonHighlight); } if(this._status != 1) { Value.set_visible(false); this.buttonNormal.set_visible(true); } this.group.replace(this.buttonHighlight,Value); this.buttonHighlight = Value; } var Value = flixel_util_FlxDestroyUtil.destroy(this.textNormal); if(Value == null) { this.textNormal = null; } else { if(this.textNormal != this.textHighlight) { flixel_util_FlxDestroyUtil.destroy(this.textNormal); } if(this._status != 0) { Value.set_visible(false); this.textHighlight.set_visible(true); } this.group.replace(this.textNormal,Value); this.textNormal = Value; } var Value = flixel_util_FlxDestroyUtil.destroy(this.textHighlight); if(Value == null) { this.textHighlight = null; } else { if(this.textNormal != this.textHighlight) { flixel_util_FlxDestroyUtil.destroy(this.textHighlight); } if(this._status != 1) { Value.set_visible(false); this.textNormal.set_visible(true); } this.group.replace(this.textHighlight,Value); this.textHighlight = Value; } this.onClickCallback = null; this.enterCallback = null; this.leaveCallback = null; flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); } ,onMouseUp: function(E) { if(this.exists && this.visible && this.active && this._status == 2 && this.onClickCallback != null) { this.onClickCallback(); } } ,updateInactiveButtonColors: function(Colors) { this.offColor = Colors; var w = this.buttonNormal.get_width(); var h = this.buttonNormal.get_height(); var colA; var colRGB; var normalKey = "Gradient: " + w + " x " + h + ", colors: ["; var _g = 0; var _g1 = this.offColor; while(_g < _g1.length) { var col = _g1[_g]; ++_g; colA = col >> 24 & 255; colRGB = col & 16777215; normalKey = normalKey + colRGB + "_" + colA + ", "; } normalKey += "]"; if(flixel_FlxG.bitmap._cache.h[normalKey] != null == false) { var normalGraphics = flixel_FlxG.bitmap.create(w | 0,h | 0,0,false,normalKey); normalGraphics.bitmap.fillRect(new openfl_geom_Rectangle(0,0,w,h),this.borderColor); flixel_util_FlxGradient.overlayGradientOnBitmapData(normalGraphics.bitmap,w - 2 | 0,h - 2 | 0,this.offColor,1,1); } this.buttonNormal.set_pixels(flixel_FlxG.bitmap._cache.h[normalKey].bitmap); } ,updateActiveButtonColors: function(Colors) { this.onColor = Colors; var w = this.buttonHighlight.get_width(); var h = this.buttonHighlight.get_height(); var colA; var colRGB; var highlightKey = "Gradient: " + w + " x " + h + ", colors: ["; var _g = 0; var _g1 = this.onColor; while(_g < _g1.length) { var col = _g1[_g]; ++_g; colA = col >> 24 & 255; colRGB = col & 16777215; highlightKey = highlightKey + colRGB + "_" + colA + ", "; } highlightKey += "]"; if(flixel_FlxG.bitmap._cache.h[highlightKey] != null == false) { var highlightGraphics = flixel_FlxG.bitmap.create(w | 0,h | 0,0,false,highlightKey); highlightGraphics.bitmap.fillRect(new openfl_geom_Rectangle(0,0,w,h),this.borderColor); flixel_util_FlxGradient.overlayGradientOnBitmapData(highlightGraphics.bitmap,w - 2 | 0,h - 2 | 0,this.onColor,1,1); } this.buttonHighlight.set_pixels(flixel_FlxG.bitmap._cache.h[highlightKey].bitmap); } ,set_text: function(NewText) { if(this.textNormal != null && this.textNormal.text != NewText) { this.textNormal.set_text(NewText); this.textHighlight.set_text(NewText); } return NewText; } ,set_buttonNormal: function(Value) { if(Value == null) { return this.buttonNormal = null; } if(this.buttonHighlight != this.buttonNormal) { flixel_util_FlxDestroyUtil.destroy(this.buttonNormal); } this.group.replace(this.buttonNormal,Value); if(this._status != 0) { Value.set_visible(false); this.buttonHighlight.set_visible(true); } return this.buttonNormal = Value; } ,set_buttonHighlight: function(Value) { if(Value == null) { return this.buttonHighlight = null; } if(this.buttonHighlight != this.buttonNormal) { flixel_util_FlxDestroyUtil.destroy(this.buttonHighlight); } if(this._status != 1) { Value.set_visible(false); this.buttonNormal.set_visible(true); } this.group.replace(this.buttonHighlight,Value); return this.buttonHighlight = Value; } ,set_textNormal: function(Value) { if(Value == null) { return this.textNormal = null; } if(this.textNormal != this.textHighlight) { flixel_util_FlxDestroyUtil.destroy(this.textNormal); } if(this._status != 0) { Value.set_visible(false); this.textHighlight.set_visible(true); } this.group.replace(this.textNormal,Value); return this.textNormal = Value; } ,set_textHighlight: function(Value) { if(Value == null) { return this.textHighlight = null; } if(this.textNormal != this.textHighlight) { flixel_util_FlxDestroyUtil.destroy(this.textHighlight); } if(this._status != 1) { Value.set_visible(false); this.textNormal.set_visible(true); } this.group.replace(this.textHighlight,Value); return this.textHighlight = Value; } ,__class__: flixel_addons_ui_FlxButtonPlus ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_text:"set_text",set_textHighlight:"set_textHighlight",set_textNormal:"set_textNormal",set_buttonHighlight:"set_buttonHighlight",set_buttonNormal:"set_buttonNormal"}) }); var flixel_addons_ui_FlxClickArea = function(X,Y,Width,Height,OnUp) { if(Height == null) { Height = 20; } if(Width == null) { Width = 80; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_FlxObject.call(this,X,Y); this.set_width(Width); this.set_height(Height); this.onUp = OnUp; this.status = 0; this._pressed = false; this._initialized = false; this.scrollFactor.set_x(0); this.scrollFactor.set_y(0); }; $hxClasses["flixel.addons.ui.FlxClickArea"] = flixel_addons_ui_FlxClickArea; flixel_addons_ui_FlxClickArea.__name__ = "flixel.addons.ui.FlxClickArea"; flixel_addons_ui_FlxClickArea.__super__ = flixel_FlxObject; flixel_addons_ui_FlxClickArea.prototype = $extend(flixel_FlxObject.prototype,{ status: null ,onUp: null ,_pressed: null ,_initialized: null ,destroy: function() { if(openfl_Lib.get_current().stage != null) { openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onMouseUp)); openfl_Lib.get_current().stage.removeEventListener("touchEnd",$bind(this,this.onMouseUp)); } this.onUp = null; flixel_FlxObject.prototype.destroy.call(this); } ,update: function(elapsed) { if(!this._initialized) { if(openfl_Lib.get_current().stage != null) { openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onMouseUp)); openfl_Lib.get_current().stage.addEventListener("touchEnd",$bind(this,this.onMouseUp)); this._initialized = true; } } flixel_FlxObject.prototype.update.call(this,elapsed); this.updateButton(); } ,updateButton: function() { var continueUpdate = false; continueUpdate = true; continueUpdate = true; if(continueUpdate) { var offAll = true; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; flixel_FlxG.mouse.getWorldPosition(camera,this._point); if(this.updateButtonStatus(this._point,camera,flixel_FlxG.mouse._leftButton.current == 2) == false) { offAll = false; } var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var touch = _g3[_g2]; ++_g2; touch.getWorldPosition(camera,this._point); if(this.updateButtonStatus(this._point,camera,touch.input.current == 2) == false) { offAll = false; } } if(!offAll) { break; } } if(offAll) { this.status = 0; } } } ,updateButtonStatus: function(Point,Camera,JustPressed) { var offAll = true; if(this.overlapsPoint(Point,true,Camera)) { offAll = false; if(JustPressed) { this.status = 2; } if(this.status == 0) { this.status = 1; } } return offAll; } ,onMouseUp: function(event) { if(!this.exists || !this.visible || !this.active || this.status != 2) { return; } if(this.onUp != null) { this.onUp(); } this.status = 0; } ,__class__: flixel_addons_ui_FlxClickArea }); var flixel_addons_ui_FlxInputText = function(X,Y,Width,Text1,size,TextColor,BackgroundColor,EmbeddedFont) { if(EmbeddedFont == null) { EmbeddedFont = true; } if(BackgroundColor == null) { BackgroundColor = -1; } if(TextColor == null) { TextColor = -16777216; } if(size == null) { size = 8; } if(Width == null) { Width = 150; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._scrollBoundIndeces = { left : 0, right : 0}; this.backgroundColor = -1; this.fieldBorderThickness = 1; this.fieldBorderColor = -16777216; this.filterMode = 0; this.maxLength = 0; this.forceCase = 0; this.caretIndex = 0; this.hasFocus = false; this.caretWidth = 1; this.background = false; flixel_text_FlxText.call(this,X,Y,Width,Text1,size,EmbeddedFont); this.set_backgroundColor(BackgroundColor); if(BackgroundColor != 0) { this.background = true; } this.set_color(TextColor); this.set_caretColor(TextColor); this.caret = new flixel_FlxSprite(); this.caret.makeGraphic(this.caretWidth,size + 2 | 0); this._caretTimer = new flixel_util_FlxTimer(); this.set_caretIndex(0); this.set_hasFocus(false); if(this.background) { this.fieldBorderSprite = new flixel_FlxSprite(X,Y); this.backgroundSprite = new flixel_FlxSprite(X,Y); } this.set_lines(1); openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.onKeyDown),false,1); if(Text1 == null) { Text1 = ""; } openfl_Lib.get_current().stage.window.onTextInput.add($bind(this,this.handleClipboardText)); this.set_text(Text1); this.calcFrame(); }; $hxClasses["flixel.addons.ui.FlxInputText"] = flixel_addons_ui_FlxInputText; flixel_addons_ui_FlxInputText.__name__ = "flixel.addons.ui.FlxInputText"; flixel_addons_ui_FlxInputText.__super__ = flixel_text_FlxText; flixel_addons_ui_FlxInputText.prototype = $extend(flixel_text_FlxText.prototype,{ customFilterPattern: null ,set_customFilterPattern: function(cfp) { this.customFilterPattern = cfp; this.set_filterMode(4); return this.customFilterPattern; } ,callback: null ,background: null ,caretColor: null ,set_caretColor: function(i) { this.caretColor = i; this.dirty = true; return this.caretColor; } ,caretWidth: null ,set_caretWidth: function(i) { this.caretWidth = i; this.dirty = true; return this.caretWidth; } ,params: null ,hasFocus: null ,caretIndex: null ,focusGained: null ,focusLost: null ,forceCase: null ,maxLength: null ,lines: null ,filterMode: null ,fieldBorderColor: null ,fieldBorderThickness: null ,backgroundColor: null ,backgroundSprite: null ,_caretTimer: null ,caret: null ,fieldBorderSprite: null ,_scrollBoundIndeces: null ,_charBoundaries: null ,lastScroll: null ,destroy: function() { openfl_Lib.get_current().stage.removeEventListener("keyDown",$bind(this,this.onKeyDown)); this.backgroundSprite = flixel_util_FlxDestroyUtil.destroy(this.backgroundSprite); this.fieldBorderSprite = flixel_util_FlxDestroyUtil.destroy(this.fieldBorderSprite); this.callback = null; openfl_Lib.get_current().stage.window.onTextInput.remove($bind(this,this.handleClipboardText)); flixel_text_FlxText.prototype.destroy.call(this); } ,draw: function() { this.drawSprite(this.fieldBorderSprite); this.drawSprite(this.backgroundSprite); flixel_text_FlxText.prototype.draw.call(this); if(this.caretColor != this.caret.color || this.caret.get_height() != (this._defaultFormat.size | 0) + 2) { this.caret.set_color(this.caretColor); } this.drawSprite(this.caret); } ,drawSprite: function(Sprite) { if(Sprite != null && Sprite.visible) { Sprite.scrollFactor = this.scrollFactor; Sprite._cameras = this._cameras; Sprite.draw(); } } ,update: function(elapsed) { flixel_text_FlxText.prototype.update.call(this,elapsed); if(flixel_FlxG.mouse._leftButton.current == 2) { var hadFocus = this.hasFocus; if(flixel_FlxG.mouse.overlaps(this)) { this.set_caretIndex(this.getCaretIndex()); this.set_hasFocus(true); if(!hadFocus && this.focusGained != null) { this.focusGained(); } } else { this.set_hasFocus(false); if(hadFocus && this.focusLost != null) { this.focusLost(); } } } } ,onKeyDown: function(e) { var key = e.keyCode; if(this.hasFocus) { switch(key) { case 8: if(this.caretIndex > 0) { this.set_caretIndex(this.caretIndex - 1); this.set_text(this.text.substring(0,this.caretIndex) + this.text.substring(this.caretIndex + 1)); this.onChange("backspace"); } break; case 13: this.onChange("enter"); break; case 16:case 17:case 27:case 220: return; case 35: this.set_caretIndex(this.text.length); this.set_text(this.text); break; case 36: this.set_caretIndex(0); this.set_text(this.text); break; case 37: if(this.caretIndex > 0) { this.set_caretIndex(this.caretIndex - 1); this.set_text(this.text); } break; case 39: if(this.caretIndex < this.text.length) { this.set_caretIndex(this.caretIndex + 1); this.set_text(this.text); } break; case 46: if(this.text.length > 0 && this.caretIndex < this.text.length) { this.set_text(this.text.substring(0,this.caretIndex) + this.text.substring(this.caretIndex + 1)); this.onChange("delete"); } break; case 86: if(e.ctrlKey) { openfl_Lib.get_current().stage.window.__backend.setTextInputEnabled(true); } else { if(e.charCode == 0) { return; } var code = e.charCode; var newText = this.filter(String.fromCodePoint(code)); if(newText.length > 0 && (this.maxLength == 0 || this.text.length + newText.length <= this.maxLength)) { this.set_text(this.insertSubstring(this.text,newText,this.caretIndex)); this.set_caretIndex(this.caretIndex + 1); this.onChange("input"); } } break; default: if(e.charCode == 0) { return; } var code = e.charCode; var newText = this.filter(String.fromCodePoint(code)); if(newText.length > 0 && (this.maxLength == 0 || this.text.length + newText.length <= this.maxLength)) { this.set_text(this.insertSubstring(this.text,newText,this.caretIndex)); this.set_caretIndex(this.caretIndex + 1); this.onChange("input"); } } } } ,onChange: function(action) { if(this.callback != null) { this.callback(this.text,action); } } ,handleClipboardText: function(clipboardText) { if(lime_system_Clipboard._text == clipboardText) { this.pasteClipboardText(clipboardText); } } ,pasteClipboardText: function(clipboardText) { var newText = this.maxLength > 0 ? this.maxLength - this.text.length : clipboardText.length; var newText1 = this.filter(clipboardText).substring(0,newText); this.set_text(this.insertSubstring(this.text,newText1,this.caretIndex)); this.set_caretIndex(this.caretIndex + newText1.length); this.onChange("input"); } ,insertSubstring: function(Original,Insert,Index) { if(Index != Original.length) { Original = Original.substring(0,Index) + Insert + Original.substring(Index); } else { Original += Insert; } return Original; } ,getCaretIndex: function() { var x = flixel_FlxG.mouse.x - this.x; var y = flixel_FlxG.mouse.y - this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var hit = point; return this.getCharIndexAtPoint(hit.x,hit.y); } ,getCharBoundaries: function(charIndex) { if(this._charBoundaries != null && charIndex >= 0 && this._charBoundaries.length > 0) { var r = new openfl_geom_Rectangle(); if(charIndex >= this._charBoundaries.length) { var _this = this._charBoundaries[this._charBoundaries.length - 1]; var FlashRect = r; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; } else { var _this = this._charBoundaries[charIndex]; var FlashRect = r; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; } return r; } return null; } ,set_text: function(Text1) { var return_text = flixel_text_FlxText.prototype.set_text.call(this,Text1); if(this.textField == null) { return return_text; } var numChars = Text1.length; this.prepareCharBoundaries(numChars); this.textField.set_text(""); var textH = 0; var textW = 0; var lastW = 0; var magicX = 2; var magicY = 2; var _g = 0; var _g1 = numChars; while(_g < _g1) { var i = _g++; this.textField.appendText(HxOverrides.substr(Text1,i,1)); textW = this.textField.get_textWidth(); if(i == 0) { textH = this.textField.get_textHeight(); } this._charBoundaries[i].x = magicX + lastW; this._charBoundaries[i].y = magicY; this._charBoundaries[i].width = textW - lastW; this._charBoundaries[i].height = textH; lastW = textW; } this.textField.set_text(Text1); this.onSetTextCheck(); return return_text; } ,getCharIndexAtPoint: function(X,Y) { var i = 0; if(this._charBoundaries != null && this._charBoundaries.length > 0) { if(this.textField.get_textWidth() <= this.textField.get_width()) { switch(this.getAlignStr()) { case "center": X = X - this.textField.get_width() / 2 + this.textField.get_textWidth() / 2; break; case "right": X = X - this.textField.get_width() + this.textField.get_textWidth(); break; default: } } } if(this._charBoundaries != null) { var _g = 0; var _g1 = this._charBoundaries; while(_g < _g1.length) { var r = _g1[_g]; ++_g; if(X >= r.x && X <= r.x + r.width) { return i; } ++i; } } if(this._charBoundaries != null && this._charBoundaries.length > 0) { if(X > this.textField.get_textWidth()) { return this._charBoundaries.length; } } return 0; } ,prepareCharBoundaries: function(numChars) { if(this._charBoundaries == null) { this._charBoundaries = []; } if(this._charBoundaries.length > numChars) { var diff = this._charBoundaries.length - numChars; var _g = 0; var _g1 = diff; while(_g < _g1) { var i = _g++; this._charBoundaries.pop(); } } var _g = 0; var _g1 = numChars; while(_g < _g1) { var i = _g++; if(this._charBoundaries.length - 1 < i) { var tmp = this._charBoundaries; var X = 0; var Y = 0; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; tmp.push(rect); } } } ,onSetTextCheck: function() { } ,calcFrame: function(RunOnCpp) { if(RunOnCpp == null) { RunOnCpp = false; } flixel_text_FlxText.prototype.calcFrame.call(this,RunOnCpp); if(this.fieldBorderSprite != null) { if(this.fieldBorderThickness > 0) { this.fieldBorderSprite.makeGraphic(this.get_width() + this.fieldBorderThickness * 2 | 0,this.get_height() + this.fieldBorderThickness * 2 | 0,this.fieldBorderColor); this.fieldBorderSprite.set_x(this.x - this.fieldBorderThickness); this.fieldBorderSprite.set_y(this.y - this.fieldBorderThickness); } else if(this.fieldBorderThickness == 0) { this.fieldBorderSprite.set_visible(false); } } if(this.backgroundSprite != null) { if(this.background) { this.backgroundSprite.makeGraphic(this.get_width() | 0,this.get_height() | 0,this.backgroundColor); this.backgroundSprite.set_x(this.x); this.backgroundSprite.set_y(this.y); } else { this.backgroundSprite.set_visible(false); } } if(this.caret != null) { var cw = this.caretWidth; var ch = (this._defaultFormat.size | 0) + 2 | 0; var borderC = -16777216 | this.borderColor & 16777215; var caretC = -16777216 | this.caretColor & 16777215; var caretKey = "caret" + cw + "x" + ch + "c:" + caretC + "b:" + Std.string(this.borderStyle) + "," + this.borderSize + "," + borderC; switch(this.borderStyle._hx_index) { case 0: this.caret.makeGraphic(cw,ch,caretC,false,caretKey); this.caret.offset.set_x(this.caret.offset.set_y(0)); break; case 1: cw += this.borderSize | 0; ch += this.borderSize | 0; this.caret.makeGraphic(cw,ch,0,false,caretKey); var r = new openfl_geom_Rectangle(this.borderSize,this.borderSize,this.caretWidth,(this._defaultFormat.size | 0) + 2 | 0); this.caret.get_pixels().fillRect(r,borderC); r.x = r.y = 0; this.caret.get_pixels().fillRect(r,caretC); this.caret.offset.set_x(this.caret.offset.set_y(0)); break; case 2:case 3: cw += this.borderSize * 2 | 0; ch += this.borderSize * 2 | 0; this.caret.makeGraphic(cw,ch,borderC,false,caretKey); var r = new openfl_geom_Rectangle(this.borderSize,this.borderSize,this.caretWidth,(this._defaultFormat.size | 0) + 2 | 0); this.caret.get_pixels().fillRect(r,caretC); this.caret.offset.set_x(this.caret.offset.set_y(this.borderSize)); break; } this.caret.set_width(cw); this.caret.set_height(ch); this.set_caretIndex(this.caretIndex); } } ,toggleCaret: function(timer) { this.caret.set_visible(!this.caret.visible); } ,filter: function(text) { if(this.forceCase == 1) { text = text.toUpperCase(); } else if(this.forceCase == 2) { text = text.toLowerCase(); } if(this.filterMode != 0) { var pattern; switch(this.filterMode) { case 1: pattern = new EReg("[^a-zA-Z]*","g"); break; case 2: pattern = new EReg("[^0-9]*","g"); break; case 3: pattern = new EReg("[^a-zA-Z0-9]*","g"); break; case 4: pattern = this.customFilterPattern; break; default: throw new openfl_errors_Error("FlxInputText: Unknown filterMode (" + this.filterMode + ")"); } text = text.replace(pattern.r,""); } return text; } ,set_params: function(p) { this.params = p; if(this.params == null) { this.params = []; } var namedValue = { name : "value", value : this.text}; this.params.push(namedValue); return p; } ,set_x: function(X) { if(this.fieldBorderSprite != null && this.fieldBorderThickness > 0) { this.fieldBorderSprite.set_x(X - this.fieldBorderThickness); } if(this.backgroundSprite != null && this.background) { this.backgroundSprite.set_x(X); } return flixel_text_FlxText.prototype.set_x.call(this,X); } ,set_y: function(Y) { if(this.fieldBorderSprite != null && this.fieldBorderThickness > 0) { this.fieldBorderSprite.set_y(Y - this.fieldBorderThickness); } if(this.backgroundSprite != null && this.background) { this.backgroundSprite.set_y(Y); } return flixel_text_FlxText.prototype.set_y.call(this,Y); } ,set_hasFocus: function(newFocus) { if(newFocus) { if(this.hasFocus != newFocus) { this._caretTimer = new flixel_util_FlxTimer().start(0.5,$bind(this,this.toggleCaret),0); this.caret.set_visible(true); this.set_caretIndex(this.text.length); } } else { this.caret.set_visible(false); if(this._caretTimer != null) { this._caretTimer.cancel(); } } if(newFocus != this.hasFocus) { this.calcFrame(); var $window = openfl_Lib.get_current().stage.window; $window.__backend.setTextInputEnabled(newFocus); } return this.hasFocus = newFocus; } ,getAlignStr: function() { var alignStr = "left"; if(this._defaultFormat != null && this._defaultFormat.align != null) { alignStr = flixel_text_FlxTextAlign.fromOpenFL(this._defaultFormat.align); } return alignStr; } ,set_caretIndex: function(newCaretIndex) { var offx = 0; var alignStr = this.getAlignStr(); switch(alignStr) { case "center": if(offx <= 1) { offx = 0; } break; case "right": offx = this.textField.get_width() - 2 - this.textField.get_textWidth() - 2; if(offx < 0) { offx = 0; } break; default: offx = 0; } this.caretIndex = newCaretIndex; if(this.caretIndex > this.text.length + 1) { this.caretIndex = -1; } if(this.caretIndex != -1) { var boundaries = null; if(this.caretIndex < this.text.length) { boundaries = this.getCharBoundaries(this.caretIndex); if(boundaries != null) { this.caret.set_x(offx + boundaries.get_left() + this.x); this.caret.set_y(boundaries.get_top() + this.y); } } else { boundaries = this.getCharBoundaries(this.caretIndex - 1); if(boundaries != null) { this.caret.set_x(offx + boundaries.get_right() + this.x); this.caret.set_y(boundaries.get_top() + this.y); } else if(this.text.length == 0) { this.caret.set_x(this.x + offx + 2); this.caret.set_y(this.y + 2); } } } if(this.lines == 1 && this.caret.x + this.caret.get_width() > this.x + this.get_width()) { this.caret.set_x(this.x + this.get_width() - 2); } return this.caretIndex; } ,set_forceCase: function(Value) { this.forceCase = Value; this.set_text(this.filter(this.text)); return this.forceCase; } ,set_size: function(Value) { flixel_text_FlxText.prototype.set_size.call(this,Value); this.caret.makeGraphic(1,(this._defaultFormat.size | 0) + 2 | 0); return Value; } ,set_maxLength: function(Value) { this.maxLength = Value; if(this.text.length > this.maxLength) { this.set_text(this.text.substring(0,this.maxLength)); } return this.maxLength; } ,set_lines: function(Value) { if(Value == 0) { return 0; } if(Value > 1) { this.textField.set_wordWrap(true); this.textField.set_multiline(true); } else { this.textField.set_wordWrap(false); this.textField.set_multiline(false); } this.lines = Value; this.calcFrame(); return this.lines; } ,get_passwordMode: function() { return this.textField.get_displayAsPassword(); } ,set_passwordMode: function(value) { this.textField.set_displayAsPassword(value); this.calcFrame(); return value; } ,set_filterMode: function(Value) { this.filterMode = Value; this.set_text(this.filter(this.text)); return this.filterMode; } ,set_fieldBorderColor: function(Value) { this.fieldBorderColor = Value; this.calcFrame(); return this.fieldBorderColor; } ,set_fieldBorderThickness: function(Value) { this.fieldBorderThickness = Value; this.calcFrame(); return this.fieldBorderThickness; } ,set_backgroundColor: function(Value) { this.backgroundColor = Value; this.calcFrame(); return this.backgroundColor; } ,__class__: flixel_addons_ui_FlxInputText ,__properties__: $extend(flixel_text_FlxText.prototype.__properties__,{set_backgroundColor:"set_backgroundColor",set_fieldBorderThickness:"set_fieldBorderThickness",set_fieldBorderColor:"set_fieldBorderColor",set_filterMode:"set_filterMode",set_lines:"set_lines",set_maxLength:"set_maxLength",set_forceCase:"set_forceCase",set_caretIndex:"set_caretIndex",set_hasFocus:"set_hasFocus",set_passwordMode:"set_passwordMode",get_passwordMode:"get_passwordMode",set_params:"set_params",set_caretWidth:"set_caretWidth",set_caretColor:"set_caretColor",set_customFilterPattern:"set_customFilterPattern"}) }); var flixel_addons_ui_FlxMultiGamepad = function(Gamepad1,Input,Combos,Forbiddens) { flixel_addons_ui_FlxBaseMultiInput.call(this); this.input = Input; this.gamepad = Gamepad1; this.combos = Combos; this.forbiddens = Forbiddens; }; $hxClasses["flixel.addons.ui.FlxMultiGamepad"] = flixel_addons_ui_FlxMultiGamepad; flixel_addons_ui_FlxMultiGamepad.__name__ = "flixel.addons.ui.FlxMultiGamepad"; flixel_addons_ui_FlxMultiGamepad.__super__ = flixel_addons_ui_FlxBaseMultiInput; flixel_addons_ui_FlxMultiGamepad.prototype = $extend(flixel_addons_ui_FlxBaseMultiInput.prototype,{ gamepad: null ,destroy: function() { flixel_addons_ui_FlxBaseMultiInput.prototype.destroy.call(this); this.gamepad = null; } ,checkJustPressed: function() { var _this = this.gamepad; var ID = this.input; var Status = 2; switch(ID) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(ID); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,checkJustReleased: function() { var _this = this.gamepad; var ID = this.input; var Status = -1; switch(ID) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(ID); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,checkPressed: function() { var _this = this.gamepad; var ID = this.input; var Status = 1; switch(ID) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(ID); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,checkCombos: function(value) { return this.gamepad.checkButtonArrayState(this.combos,1) == value; } ,checkForbiddens: function(value) { return this.gamepad.checkButtonArrayState(this.forbiddens,1) == value; } ,__class__: flixel_addons_ui_FlxMultiGamepad }); var flixel_addons_ui_FlxMultiGamepadAnalogStick = function(Gamepad1,Input,Combos,Forbiddens) { this.sInput = Input; flixel_addons_ui_FlxMultiGamepad.call(this,Gamepad1,Input.id,Combos,Forbiddens); }; $hxClasses["flixel.addons.ui.FlxMultiGamepadAnalogStick"] = flixel_addons_ui_FlxMultiGamepadAnalogStick; flixel_addons_ui_FlxMultiGamepadAnalogStick.__name__ = "flixel.addons.ui.FlxMultiGamepadAnalogStick"; flixel_addons_ui_FlxMultiGamepadAnalogStick.getStickInput = function(str) { str = str.toLowerCase(); switch(str) { case "left_analog_stick_x_minus": return { id : 19, axis : flixel_addons_ui_XY.X, positive : false}; case "left_analog_stick_x_plus": return { id : 19, axis : flixel_addons_ui_XY.X, positive : true}; case "left_analog_stick_y_minus": return { id : 19, axis : flixel_addons_ui_XY.Y, positive : false}; case "left_analog_stick_y_plus": return { id : 19, axis : flixel_addons_ui_XY.Y, positive : true}; case "right_analog_stick_x_minus": return { id : 20, axis : flixel_addons_ui_XY.X, positive : false}; case "right_analog_stick_x_plus": return { id : 20, axis : flixel_addons_ui_XY.X, positive : true}; case "right_analog_stick_y_minus": return { id : 20, axis : flixel_addons_ui_XY.Y, positive : false}; case "right_analog_stick_y_plus": return { id : 20, axis : flixel_addons_ui_XY.Y, positive : true}; } return null; }; flixel_addons_ui_FlxMultiGamepadAnalogStick.__super__ = flixel_addons_ui_FlxMultiGamepad; flixel_addons_ui_FlxMultiGamepadAnalogStick.prototype = $extend(flixel_addons_ui_FlxMultiGamepad.prototype,{ sInput: null ,destroy: function() { flixel_addons_ui_FlxMultiGamepad.prototype.destroy.call(this); this.sInput = null; } ,checkJustPressed: function() { if(this.gamepad == null) { return false; } var dz = this.gamepad.get_deadZone(); switch(this.sInput.id) { case 19: if(this.sInput.axis == flixel_addons_ui_XY.X) { var _this = this.gamepad.analog.justMoved; var stick = _this.gamepad.mapping.getAnalogStick(19); var tmp; if(stick == null) { tmp = false; } else { var button = _this.gamepad.buttons[stick.x]; tmp = button != null && button.hasState(_this.status); } if(tmp) { if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) < -dz; } } else { return false; } } else { var _this = this.gamepad.analog.justMoved; var stick = _this.gamepad.mapping.getAnalogStick(19); var tmp; if(stick == null) { tmp = false; } else { var button = _this.gamepad.buttons[stick.y]; tmp = button != null && button.hasState(_this.status); } if(tmp) { if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) < -dz; } } else { return false; } } break; case 20: if(this.sInput.axis == flixel_addons_ui_XY.X) { var _this = this.gamepad.analog.justMoved; var stick = _this.gamepad.mapping.getAnalogStick(20); var tmp; if(stick == null) { tmp = false; } else { var button = _this.gamepad.buttons[stick.x]; tmp = button != null && button.hasState(_this.status); } if(tmp) { if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) < -dz; } } else { return false; } } else { var _this = this.gamepad.analog.justMoved; var stick = _this.gamepad.mapping.getAnalogStick(20); var tmp; if(stick == null) { tmp = false; } else { var button = _this.gamepad.buttons[stick.y]; tmp = button != null && button.hasState(_this.status); } if(tmp) { if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) < -dz; } } else { return false; } } break; default: return false; } } ,checkJustReleased: function() { if(this.gamepad == null) { return false; } switch(this.sInput.id) { case 19: if(this.sInput.axis == flixel_addons_ui_XY.X) { var _this = this.gamepad.analog.justReleased; var stick = _this.gamepad.mapping.getAnalogStick(19); if(stick == null) { return false; } else { var button = _this.gamepad.buttons[stick.x]; if(button != null) { return button.hasState(_this.status); } else { return false; } } } else { var _this = this.gamepad.analog.justReleased; var stick = _this.gamepad.mapping.getAnalogStick(19); if(stick == null) { return false; } else { var button = _this.gamepad.buttons[stick.y]; if(button != null) { return button.hasState(_this.status); } else { return false; } } } break; case 20: if(this.sInput.axis == flixel_addons_ui_XY.X) { var _this = this.gamepad.analog.justReleased; var stick = _this.gamepad.mapping.getAnalogStick(20); if(stick == null) { return false; } else { var button = _this.gamepad.buttons[stick.x]; if(button != null) { return button.hasState(_this.status); } else { return false; } } } else { var _this = this.gamepad.analog.justReleased; var stick = _this.gamepad.mapping.getAnalogStick(20); if(stick == null) { return false; } else { var button = _this.gamepad.buttons[stick.y]; if(button != null) { return button.hasState(_this.status); } else { return false; } } } break; default: return false; } } ,checkPressed: function() { if(this.gamepad == null) { return false; } var value = false; var dz = this.gamepad.get_deadZone(); switch(this.sInput.id) { case 19: if(this.sInput.axis == flixel_addons_ui_XY.X) { if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)) < -dz; } } else if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)) < -dz; } break; case 20: if(this.sInput.axis == flixel_addons_ui_XY.X) { if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)) < -dz; } } else if(this.sInput.positive) { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) > dz; } else { var _this = this.gamepad.analog.value.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)) < -dz; } break; default: value = false; return value; } } ,checkCombos: function(value) { if(this.gamepad == null) { return false; } return this.gamepad.checkButtonArrayState(this.combos,1) == value; } ,checkForbiddens: function(value) { if(this.gamepad == null) { return false; } return this.gamepad.checkButtonArrayState(this.forbiddens,1) == value; } ,__class__: flixel_addons_ui_FlxMultiGamepadAnalogStick }); var flixel_addons_ui_XY = $hxEnums["flixel.addons.ui.XY"] = { __ename__:"flixel.addons.ui.XY",__constructs__:null ,X: {_hx_name:"X",_hx_index:0,__enum__:"flixel.addons.ui.XY",toString:$estr} ,Y: {_hx_name:"Y",_hx_index:1,__enum__:"flixel.addons.ui.XY",toString:$estr} }; flixel_addons_ui_XY.__constructs__ = [flixel_addons_ui_XY.X,flixel_addons_ui_XY.Y]; flixel_addons_ui_XY.__empty_constructs__ = [flixel_addons_ui_XY.X,flixel_addons_ui_XY.Y]; var flixel_addons_ui_FlxMultiKey = function(Input,Combos,Forbiddens) { flixel_addons_ui_FlxBaseMultiInput.call(this); this.input = Input; this.combos = Combos; this.forbiddens = Forbiddens; }; $hxClasses["flixel.addons.ui.FlxMultiKey"] = flixel_addons_ui_FlxMultiKey; flixel_addons_ui_FlxMultiKey.__name__ = "flixel.addons.ui.FlxMultiKey"; flixel_addons_ui_FlxMultiKey.__super__ = flixel_addons_ui_FlxBaseMultiInput; flixel_addons_ui_FlxMultiKey.prototype = $extend(flixel_addons_ui_FlxBaseMultiInput.prototype,{ checkJustPressed: function() { return flixel_FlxG.keys.checkStatus(this.input,2); } ,checkJustReleased: function() { return flixel_FlxG.keys.checkStatus(this.input,-1); } ,checkPressed: function() { return flixel_FlxG.keys.checkStatus(this.input,1); } ,checkCombos: function(value) { return flixel_FlxG.keys.checkKeyArrayState(this.combos,1) == value; } ,checkForbiddens: function(value) { return flixel_FlxG.keys.checkKeyArrayState(this.forbiddens,1) == value; } ,__class__: flixel_addons_ui_FlxMultiKey }); var flixel_addons_ui_FlxSlider = function(Object1,VarString,X,Y,MinValue,MaxValue,Width,Height,Thickness,Color,HandleColor) { if(HandleColor == null) { HandleColor = -8224126; } if(Color == null) { Color = -16777216; } if(Thickness == null) { Thickness = 3; } if(Height == null) { Height = 15; } if(Width == null) { Width = 100; } if(MaxValue == null) { MaxValue = 10; } if(MinValue == null) { MinValue = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._justHovered = false; this._justClicked = false; this.setVariable = true; this.callback = null; this.hoverAlpha = 0.5; this.decimals = 0; flixel_group_FlxTypedSpriteGroup.call(this); this.set_x(X); this.set_y(Y); if(MinValue == MaxValue) { flixel_FlxG.log.advanced("FlxSlider: MinValue and MaxValue can't be the same (" + MinValue + ")",flixel_system_debug_log_LogStyle.ERROR,true); } this.decimals = flixel_math_FlxMath.getDecimals(MinValue); if(flixel_math_FlxMath.getDecimals(MaxValue) > this.decimals) { this.decimals = flixel_math_FlxMath.getDecimals(MaxValue); } this.decimals++; this.minValue = MinValue; this.maxValue = MaxValue; this._object = Object1; this.set_varString(VarString); this._width = Width; this._height = Height; this._thickness = Thickness; this._color = Color; this._handleColor = HandleColor; this.createSlider(); }; $hxClasses["flixel.addons.ui.FlxSlider"] = flixel_addons_ui_FlxSlider; flixel_addons_ui_FlxSlider.__name__ = "flixel.addons.ui.FlxSlider"; flixel_addons_ui_FlxSlider.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_addons_ui_FlxSlider.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ body: null ,handle: null ,minLabel: null ,maxLabel: null ,nameLabel: null ,valueLabel: null ,value: null ,minValue: null ,maxValue: null ,decimals: null ,clickSound: null ,hoverSound: null ,hoverAlpha: null ,callback: null ,setVariable: null ,varString: null ,_bounds: null ,_width: null ,_height: null ,_thickness: null ,_color: null ,_handleColor: null ,_object: null ,_lastPos: null ,_justClicked: null ,_justHovered: null ,createSlider: function() { var this1 = this.offset; var x = 7; var y = 18; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var X = this.x + this.offset.x; var Y = this.y + this.offset.y; var Width = this._width; var Height = this._height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this._bounds = rect; this.body = new flixel_FlxSprite(this.offset.x,this.offset.y); var this1 = this._color; var colorKey = "slider:W=" + this._width + "H=" + this._height + "C=" + ("0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2)) + "T=" + this._thickness; this.body.makeGraphic(this._width,this._height,0,false,colorKey); var this1 = this.body.scrollFactor; this1.set_x(0); this1.set_y(0); flixel_util_FlxSpriteUtil.drawLine(this.body,0,this._height / 2,this._width,this._height / 2,{ color : this._color, thickness : this._thickness}); this.handle = new flixel_FlxSprite(this.offset.x,this.offset.y); this.handle.makeGraphic(this._thickness,this._height,this._handleColor); var this1 = this.handle.scrollFactor; this1.set_x(0); this1.set_y(0); this.nameLabel = new flixel_text_FlxText(this.offset.x,0,this._width,this.varString); this.nameLabel.set_alignment("center"); this.nameLabel.set_color(this._color); var this1 = this.nameLabel.scrollFactor; this1.set_x(0); this1.set_y(0); var textOffset = this._height + this.offset.y + 3; this.valueLabel = new flixel_text_FlxText(this.offset.x,textOffset,this._width); this.valueLabel.set_alignment("center"); this.valueLabel.set_color(this._handleColor); var this1 = this.valueLabel.scrollFactor; this1.set_x(0); this1.set_y(0); this.minLabel = new flixel_text_FlxText(-50 + this.offset.x,textOffset,100,Std.string(this.minValue)); this.minLabel.set_alignment("center"); this.minLabel.set_color(this._color); var this1 = this.minLabel.scrollFactor; this1.set_x(0); this1.set_y(0); this.maxLabel = new flixel_text_FlxText(this._width - 50 + this.offset.x,textOffset,100,Std.string(this.maxValue)); this.maxLabel.set_alignment("center"); this.maxLabel.set_color(this._color); var this1 = this.maxLabel.scrollFactor; this1.set_x(0); this1.set_y(0); this.add(this.body); this.add(this.handle); this.add(this.nameLabel); this.add(this.valueLabel); this.add(this.minLabel); this.add(this.maxLabel); } ,update: function(elapsed) { var mouse = flixel_FlxG.mouse.getScreenPosition(this.get_camera()); if(flixel_math_FlxMath.pointInFlxRect(mouse.x,mouse.y,this._bounds)) { if(this.hoverAlpha != 1) { this.set_alpha(this.hoverAlpha); } if(this.hoverSound != null && !this._justHovered) { flixel_FlxG.sound.play(this.hoverSound); } this._justHovered = true; var _this = flixel_FlxG.mouse._leftButton; if(_this.current == 1 || _this.current == 2) { this.handle.set_x(flixel_FlxG.mouse.screenX); this.updateValue(); if(this.clickSound != null && !this._justClicked) { flixel_FlxG.sound.play(this.clickSound); this._justClicked = true; } } var _this = flixel_FlxG.mouse._leftButton; if(!(_this.current == 1 || _this.current == 2)) { this._justClicked = false; } } else { if(this.hoverAlpha != 1) { this.set_alpha(1); } this._justHovered = false; } var _this = flixel_FlxG.mouse._leftButton; if((_this.current == 1 || _this.current == 2) && flixel_math_FlxMath.mouseInFlxRect(false,this._bounds)) { this.updateValue(); } if(this.varString != null && Reflect.getProperty(this._object,this.varString) != null) { this.value = Reflect.getProperty(this._object,this.varString); } if(this.handle.x != this.get_expectedPos()) { this.handle.set_x(this.get_expectedPos()); } this.valueLabel.set_text(Std.string(flixel_math_FlxMath.roundDecimal(this.value,this.decimals))); flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,updateValue: function() { if(this._lastPos != this.get_relativePos()) { if(this.setVariable && this.varString != null) { Reflect.setProperty(this._object,this.varString,this.get_relativePos() * (this.maxValue - this.minValue) + this.minValue); } this._lastPos = this.get_relativePos(); if(this.callback != null) { this.callback(this.get_relativePos()); } } } ,setTexts: function(Name,Value,Min,Max,Size) { if(Size == null) { Size = 8; } if(Value == null) { Value = true; } if(Name == null) { this.nameLabel.set_visible(false); } else { this.nameLabel.set_text(Name); this.nameLabel.set_visible(true); } if(Min == null) { this.minLabel.set_visible(false); } else { this.minLabel.set_text(Min); this.minLabel.set_visible(true); } if(Max == null) { this.maxLabel.set_visible(false); } else { this.maxLabel.set_text(Max); this.maxLabel.set_visible(true); } if(!Value) { this.valueLabel.set_visible(false); } else { this.valueLabel.set_visible(true); } this.nameLabel.set_size(Size); this.valueLabel.set_size(Size); this.minLabel.set_size(Size); this.maxLabel.set_size(Size); } ,destroy: function() { this.body = flixel_util_FlxDestroyUtil.destroy(this.body); this.handle = flixel_util_FlxDestroyUtil.destroy(this.handle); this.minLabel = flixel_util_FlxDestroyUtil.destroy(this.minLabel); this.maxLabel = flixel_util_FlxDestroyUtil.destroy(this.maxLabel); this.nameLabel = flixel_util_FlxDestroyUtil.destroy(this.nameLabel); this.valueLabel = flixel_util_FlxDestroyUtil.destroy(this.valueLabel); this._bounds = flixel_util_FlxDestroyUtil.put(this._bounds); flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); } ,get_expectedPos: function() { var pos = this.x + this.offset.x + (this._width - this.handle.get_width()) * ((this.value - this.minValue) / (this.maxValue - this.minValue)); if(pos > this.x + this._width + this.offset.x) { pos = this.x + this._width + this.offset.x; } else if(pos < this.x + this.offset.x) { pos = this.x + this.offset.x; } return pos; } ,get_relativePos: function() { var pos = (this.handle.x - this.x - this.offset.x) / (this._width - this.handle.get_width()); if(pos > 1) { pos = 1; } return pos; } ,set_varString: function(Value) { try { Reflect.getProperty(this._object,Value); this.varString = Value; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; flixel_FlxG.log.advanced("Could not create FlxSlider - '" + Value + "' is not a valid field of '" + Std.string(this._object) + "'",flixel_system_debug_log_LogStyle.ERROR,true); this.varString = null; } return Value; } ,set_x: function(value) { flixel_group_FlxTypedSpriteGroup.prototype.set_x.call(this,value); if(this._bounds != null) { var _this = this._bounds; var X = this.x + this.offset.x; var Y = this.y + this.offset.y; var Width = this._width; var Height = this._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; } return this.x = value; } ,set_y: function(value) { flixel_group_FlxTypedSpriteGroup.prototype.set_y.call(this,value); if(this._bounds != null) { var _this = this._bounds; var X = this.x + this.offset.x; var Y = this.y + this.offset.y; var Width = this._width; var Height = this._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; } return this.y = value; } ,updateBounds: function() { if(this._bounds != null) { var _this = this._bounds; var X = this.x + this.offset.x; var Y = this.y + this.offset.y; var Width = this._width; var Height = this._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; } } ,__class__: flixel_addons_ui_FlxSlider ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_varString:"set_varString",get_relativePos:"get_relativePos",get_expectedPos:"get_expectedPos"}) }); var flixel_addons_ui_interfaces_IEventGetter = function() { }; $hxClasses["flixel.addons.ui.interfaces.IEventGetter"] = flixel_addons_ui_interfaces_IEventGetter; flixel_addons_ui_interfaces_IEventGetter.__name__ = "flixel.addons.ui.interfaces.IEventGetter"; flixel_addons_ui_interfaces_IEventGetter.__isInterface__ = true; flixel_addons_ui_interfaces_IEventGetter.prototype = { getEvent: null ,getRequest: null ,__class__: flixel_addons_ui_interfaces_IEventGetter }; var flixel_addons_ui_FlxUI = function(data,ptr,superIndex_,tongue_,liveFilePath_,uiVars_) { if(liveFilePath_ == null) { liveFilePath_ = ""; } this._scaledAssets = []; this._assetsToCleanUp = []; this._safe_input_delay_elapsed = 0.0; this._curr_mode = ""; this._pointY = 1; this._pointX = 1; this._postLoaded = false; this.cursorLists = null; this.getTextFallback = null; this.failed_by = 0; this.failed = false; this.safe_input_delay_time = 0.01; this.do_safe_input_delay = true; flixel_addons_ui_FlxTypedUIGroup.call(this); this._ptr_tongue = tongue_; this._ptr = ptr; if(superIndex_ != null) { this.setSuperIndex(superIndex_); } if(uiVars_ != null) { this._variable_index = new haxe_ds_StringMap(); var h = uiVars_.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; this._variable_index.h[key] = uiVars_.h[key]; } } if(data != null) { this.load(data); } }; $hxClasses["flixel.addons.ui.FlxUI"] = flixel_addons_ui_FlxUI; flixel_addons_ui_FlxUI.__name__ = "flixel.addons.ui.FlxUI"; flixel_addons_ui_FlxUI.__interfaces__ = [flixel_addons_ui_interfaces_IEventGetter]; flixel_addons_ui_FlxUI.event = function(name,sender,data,params) { var currState = flixel_addons_ui_FlxUI.getLeafUIState(); if(currState != null) { currState.getEvent(name,sender,data,params); } }; flixel_addons_ui_FlxUI.fontStr = function(str,style) { if(style == null) { style = ""; } var currState = flixel_addons_ui_FlxUI.getLeafUIState(); var tongue = currState._tongue; var t = tongue != null ? tongue : null; if(t != null) { str = t.getFont(str); } var style1 = style; if(style1 == null) { style1 = ""; } var style = style1; if(style == null) { style = ""; } style = style.toLowerCase(); var suffix = ""; switch(style) { case "":case "none":case "normal":case "regular": suffix = ""; break; case "b":case "bold": suffix = "b"; break; case "i":case "italic": suffix = "i"; break; case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z": suffix = "z"; break; } if(str.indexOf("assets/fonts/") != 0) { return "assets/fonts/" + str + suffix; } else { return str + suffix; } }; flixel_addons_ui_FlxUI.fontSize = function(str,size) { var currState = flixel_addons_ui_FlxUI.getLeafUIState(); var tongue = currState._tongue; var t = tongue != null ? tongue : null; if(t != null) { size = t.getFontSize(str,size); } return size; }; flixel_addons_ui_FlxUI.font = function(str,style,extension) { if(extension == null) { extension = ".ttf"; } if(style == null) { style = ""; } var currState = flixel_addons_ui_FlxUI.getLeafUIState(); var tongue = currState._tongue; var t = tongue != null ? tongue : null; if(t != null) { str = t.getFont(str); } return flixel_addons_ui_U.font(str,style,extension); }; flixel_addons_ui_FlxUI.__getTongue = function() { var currState = flixel_addons_ui_FlxUI.getLeafUIState(); var tongue = currState._tongue; if(tongue != null) { return tongue; } return null; }; flixel_addons_ui_FlxUI.forceFocus = function(b,thing) { var currState = flixel_addons_ui_FlxUI.getLeafUIState(); if(currState != null) { currState.forceFocus(b,thing); } }; flixel_addons_ui_FlxUI.getLeafUIState = function() { var state = flixel_FlxG.game._state; if(state != null) { while(state.subState != null) state = state.subState; } if(js_Boot.__implements(state,flixel_addons_ui_interfaces_IFlxUIState)) { return state; } return null; }; flixel_addons_ui_FlxUI.request = function(name,sender,data,params) { var currState = flixel_addons_ui_FlxUI.getLeafUIState(); if(currState != null) { return currState.getRequest(name,sender,data,params); } else { flixel_FlxG.log.advanced("Warning, FlxUI event not handled, IFlxUIWidgets need to exist within an IFlxUIState",flixel_system_debug_log_LogStyle.ERROR,true); } return null; }; flixel_addons_ui_FlxUI._delta = function(thing,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } thing.set_x(thing.x + X); thing.set_y(thing.y + Y); }; flixel_addons_ui_FlxUI._center = function(thing,X,Y) { if(Y == null) { Y = true; } if(X == null) { X = true; } if(X) { thing.set_x((flixel_FlxG.width - thing.get_width()) / 2); } if(Y) { thing.set_y((flixel_FlxG.height - thing.get_height()) / 2); } return thing; }; flixel_addons_ui_FlxUI.consolidateData = function(data,definition,combineUniqueChildren) { if(combineUniqueChildren == null) { combineUniqueChildren = false; } if(data == null && definition != null) { return definition; } if(definition == null) { return data; } else { var new_data = Xml.parse(haxe_xml_Printer.print(definition)).firstElement(); var att = data.attributes(); while(att.hasNext()) { var att1 = att.next(); var val = haxe_xml__$Access_AttribAccess.resolve(data,att1); new_data.set(att1,val); } var v; if(data.nodeType == Xml.Document) { v = "Document"; } else { if(data.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } v = data.nodeName; } if(new_data.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (new_data.nodeType == null ? "null" : XmlType.toString(new_data.nodeType))); } new_data.nodeName = v; if(haxe_xml__$Access_HasAttribAccess.resolve(data,"name") || haxe_xml__$Access_HasAttribAccess.resolve(data,"id")) { new_data.set("name",flixel_addons_ui_U.xml_name(data)); } else { new_data.set("name",""); } var element = data.elements(); while(element.hasNext()) { var element1 = element.next(); if(element1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (element1.nodeType == null ? "null" : XmlType.toString(element1.nodeType))); } var nodeName = element1.nodeName; var notCombine = !combineUniqueChildren; if(combineUniqueChildren) { var new_els = new_data.elementsNamed(nodeName); var new_el = new_els.next(); if(haxe_xml__$Access_NodeListAccess.resolve(data,nodeName).length == 1 && new_el != null && new_els.hasNext() == false) { var att = element1.attributes(); while(att.hasNext()) { var att1 = att.next(); new_el.set(att1,element1.get(att1)); } } else { notCombine = true; } } if(notCombine) { new_data.insertChild(Xml.parse(haxe_xml_Printer.print(element1)).firstElement(),0); } } if(new_data.nodeType != Xml.Document && new_data.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (new_data.nodeType == null ? "null" : XmlType.toString(new_data.nodeType))); } return new_data; } }; flixel_addons_ui_FlxUI._loadBitmapRect = function(source,rect_str) { var b1 = openfl_utils_Assets.getBitmapData(flixel_addons_ui_U.gfx(source)); var coords = rect_str.split(","); var rect = null; if(coords != null && coords.length == 4) { var x_ = Std.parseInt(coords[0]); var y_ = Std.parseInt(coords[1]); var w_ = Std.parseInt(coords[2]); var h_ = Std.parseInt(coords[3]); rect = new openfl_geom_Rectangle(x_,y_,w_,h_); } var r = rect; var b2 = new openfl_display_BitmapData(r.width | 0,r.height | 0,true,16777215); b2.copyPixels(b1,r,new openfl_geom_Point(0,0)); return b2; }; flixel_addons_ui_FlxUI.getParams = function(data) { var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } return params; }; flixel_addons_ui_FlxUI.sortParams = function(a,b) { if(a.sort < b.sort) { return -1; } if(a.sort > b.sort) { return 1; } return 0; }; flixel_addons_ui_FlxUI.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUI.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ do_safe_input_delay: null ,safe_input_delay_time: null ,failed: null ,failed_by: null ,get_isRoot: function() { if(this._ptr != null) { return this._ptr == flixel_addons_ui_FlxUI.getLeafUIState(); } else { return false; } } ,liveFilePath: null ,get_tongue: function() { return this._ptr_tongue; } ,set_tongue: function(t) { this._ptr_tongue = t; this._tongueSet(this.group.members,t); return this._ptr_tongue; } ,focus: null ,set_focus: function(widget) { if(this.focus != null) { this.onFocusLost(this.focus); } this.focus = widget; if(this.focus != null) { this.onFocus(this.focus); } return widget; } ,getTextFallback: null ,cursorLists: null ,_ptr_tongue: null ,_data: null ,_tongueSet: function(list,tongue) { var _g = 0; while(_g < list.length) { var sprite = list[_g]; ++_g; if(((sprite) instanceof flixel_addons_ui_FlxTypedUIGroup)) { var group = sprite; this._tongueSet(group.group.members,tongue); } else if(((sprite) instanceof flixel_addons_ui_FlxUI)) { var ui = sprite; ui.set_tongue(tongue); } } } ,callEvent: function(name,sender,data,params) { this.getEvent(name,sender,data,params); } ,getEvent: function(name,sender,data,params) { if(this._ptr != null) { this._ptr.getEvent(name,sender,data,params); if(name == "post_load") { var h = this._asset_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var thing = this._asset_index.h[key]; if(((thing) instanceof flixel_addons_ui_FlxUI)) { var fui = thing; fui.getEvent("post_load",sender,data); } } } } } ,getRequest: function(name,sender,data,params) { if(this._ptr != null) { return this._ptr.getRequest(name,sender,data,params); } return null; } ,onFocus: function(widget) { if(((widget) instanceof flixel_addons_ui_FlxUIDropDownMenu)) { var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var asset = _g1[_g]; ++_g; this.setWidgetSuppression(asset,widget); } } } ,setWidgetSuppression: function(asset,butNotThisOne,suppressed) { if(suppressed == null) { suppressed = true; } if(js_Boot.__implements(asset,flixel_addons_ui_interfaces_IFlxUIClickable)) { var skip = false; if(((asset) instanceof flixel_addons_ui_FlxUIDropDownMenu)) { var ddasset = asset; if(ddasset == butNotThisOne) { skip = true; } } if(!skip) { var ibtn = asset; ibtn.set_skipButtonUpdate(suppressed); } } else if(((asset) instanceof flixel_addons_ui_FlxTypedUIGroup)) { var g = asset; var _g = 0; var _g1 = g.group.members; while(_g < _g1.length) { var groupAsset = _g1[_g]; ++_g; this.setWidgetSuppression(groupAsset,butNotThisOne,suppressed); } } } ,onFocusLost: function(widget) { if(((widget) instanceof flixel_addons_ui_FlxUIDropDownMenu)) { var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var asset = _g1[_g]; ++_g; this.setWidgetSuppression(asset,null,false); } } } ,setSuperIndex: function(flxUI) { this._superIndexUI = flxUI; } ,update: function(elapsed) { if(this.do_safe_input_delay) { this._safe_input_delay_elapsed += flixel_FlxG.elapsed; if(this._safe_input_delay_elapsed > this.safe_input_delay_time) { this.do_safe_input_delay = false; } else { return; } } flixel_addons_ui_FlxTypedUIGroup.prototype.update.call(this,elapsed); } ,toggleShow: function(key) { var thing = this.getAsset(key,false); if(thing == null) { var group = this.getGroup(key,false); if(group != null) { group.set_visible(!group.visible); return group.visible; } } else { thing.set_visible(!thing.visible); return thing.visible; } return false; } ,showGroup: function(key,Show,Active) { var group = this.getGroup(key,false); if(group != null) { group.set_visible(Show); if(Active == null) { group.set_active(Show); } else { group.set_active(Active); } } } ,showAsset: function(key,Show,Active) { var asset = this.getAsset(key,false); if(asset != null) { asset.set_visible(Show); if(Active == null) { asset.set_active(Show); } else { asset.set_active(Active); } } } ,removeAsset: function(key,destroy) { if(destroy == null) { destroy = true; } var asset = this.getAsset(key,false); if(asset != null) { this.replaceInGroup(asset,null,true); var _this = this._asset_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } if(destroy && asset != null) { asset.destroy(); asset = null; } return asset; } ,addAsset: function(asset,key,group_name,recursive) { if(recursive == null) { recursive = false; } if(group_name == null) { group_name = ""; } if(Object.prototype.hasOwnProperty.call(this._asset_index.h,key)) { if(key == "screen") { flixel_FlxG.log.advanced("Failed to add a widget with the name 'screen', that is reserved by the system for the screen itself",flixel_system_debug_log_LogStyle.NOTICE); } else { flixel_FlxG.log.advanced("Duplicate screen name '" + key + "'",flixel_system_debug_log_LogStyle.NOTICE); } return false; } var g = this.getGroup(group_name,recursive); if(g != null) { g.add(asset); } else { this.add(asset); } this._asset_index.h[key] = asset; return true; } ,replaceAsset: function(key,replace,center_x,center_y,destroy_old) { if(destroy_old == null) { destroy_old = true; } if(center_y == null) { center_y = true; } if(center_x == null) { center_x = true; } var original = this.getAsset(key,false); if(original != null) { if(!center_x) { replace.set_x(original.x); } else { replace.set_x(original.x + (original.get_width() - replace.get_width()) / 2); } if(!center_y) { replace.set_y(original.y); } else { replace.set_y(original.y + (original.get_height() - replace.get_height()) / 2); } this.replaceInGroup(original,replace); var _this = this._asset_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } this._asset_index.h[key] = replace; if(destroy_old) { original.destroy(); original = null; } } return original; } ,destroy: function() { if(this._group_index != null) { var h = this._group_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = this._group_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._group_index = null; } if(this._asset_index != null) { var h = this._asset_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = this._asset_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._asset_index = null; } if(this._tag_index != null) { var h = this._tag_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; flixel_util_FlxArrayUtil.clearArray(this._tag_index.h[key]); var _this = this._tag_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._tag_index = null; } if(this._definition_index != null) { var h = this._definition_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = this._definition_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._definition_index = null; } if(this._variable_index != null) { var h = this._variable_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = this._variable_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._variable_index = null; } if(this._mode_index != null) { var h = this._mode_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = this._mode_index; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._mode_index = null; } this._ptr = null; this._superIndexUI = null; this._ptr_tongue = null; if(this.cursorLists != null) { var _g = 0; var _g1 = this.cursorLists; while(_g < _g1.length) { var arr = _g1[_g]; ++_g; flixel_util_FlxArrayUtil.clearArray(arr); } flixel_util_FlxArrayUtil.clearArray(this.cursorLists); } this.cursorLists = null; flixel_util_FlxArrayUtil.clearArray(this._failure_checks); this._failure_checks = null; flixel_util_FlxArrayUtil.clearArray(this._assetsToCleanUp); this._assetsToCleanUp = null; flixel_util_FlxArrayUtil.clearArray(this._scaledAssets); this._scaledAssets = null; flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); } ,load: function(data) { this._group_index = new haxe_ds_StringMap(); this._asset_index = new haxe_ds_StringMap(); this._tag_index = new haxe_ds_StringMap(); this._definition_index = new haxe_ds_StringMap(); if(this._variable_index == null) { this._variable_index = new haxe_ds_StringMap(); } this._mode_index = new haxe_ds_StringMap(); if(data != null) { if(this._superIndexUI == null) { var screenRegion = new flixel_addons_ui_FlxUIRegion(0,0,flixel_FlxG.width,flixel_FlxG.height); screenRegion.name = "screen"; this.addAsset(screenRegion,"screen"); if(haxe_xml__$Access_HasNodeAccess.resolve(data,"screen_override")) { if(this._loadTest(haxe_xml__$Access_NodeAccess.resolve(data,"screen_override"))) { var screenNode = haxe_xml__$Access_NodeAccess.resolve(data,"screen_override"); this._loadPosition(screenNode,screenRegion); screenRegion.set_width(this._loadWidth(screenNode,flixel_FlxG.width)); screenRegion.set_height(this._loadHeight(screenNode,flixel_FlxG.height)); } } } this._data = data; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"inject")) { while(haxe_xml__$Access_HasNodeAccess.resolve(data,"inject")) { var inj_data = haxe_xml__$Access_NodeAccess.resolve(data,"inject"); var inj_name = flixel_addons_ui_U.xml_name(inj_data); var payload = flixel_addons_ui_U.xml(inj_name,"xml",false); if(payload != null) { var parent = inj_data.parent; var i = 0; var _g = 0; var _g1 = parent.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child == inj_data) { break; } ++i; } if(parent.removeChild(inj_data)) { var j = 0; var e = payload.elements(); while(e.hasNext()) { var e1 = e.next(); parent.insertChild(e1,i + j); ++j; } } } } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"include")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"include"); while(_g < _g1.length) { var inc_data = _g1[_g]; ++_g; var inc_name = flixel_addons_ui_U.xml_name(inc_data); var liveFile = null; var inc_xml = null; if(liveFile == null) { inc_xml = flixel_addons_ui_U.xml(inc_name); } else { inc_xml = liveFile; } if(inc_xml != null) { var _g2 = 0; var _g3 = haxe_xml__$Access_NodeListAccess.resolve(inc_xml,"definition"); while(_g2 < _g3.length) { var def_data = _g3[_g2]; ++_g2; var def_name = "include:" + flixel_addons_ui_U.xml_name(def_data); this.unparentXML(def_data); this._definition_index.h[def_name] = def_data; } if(haxe_xml__$Access_HasNodeAccess.resolve(inc_xml,"point_size")) { this._loadPointSize(inc_xml); } if(haxe_xml__$Access_HasNodeAccess.resolve(inc_xml,"default")) { var _g4 = 0; var _g5 = haxe_xml__$Access_NodeListAccess.resolve(inc_xml,"default"); while(_g4 < _g5.length) { var defaultNode = _g5[_g4]; ++_g4; if(this._loadTest(defaultNode)) { var defaultName = flixel_addons_ui_U.xml_name(defaultNode); this.unparentXML(defaultNode); this._definition_index.h["default:" + defaultName] = defaultNode; } } } } } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"point_size")) { this._loadPointSize(data); } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"definition")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"definition"); while(_g < _g1.length) { var def_data = _g1[_g]; ++_g; if(this._loadTest(def_data)) { var def_name = flixel_addons_ui_U.xml_name(def_data); var error = ""; if(def_name.indexOf("default:") != -1) { error = "'default:'"; } if(def_name.indexOf("include:") != -1) { error = "'include:'"; } if(error != "") { flixel_FlxG.log.advanced("Can't create FlxUI definition '" + def_name + "', because '" + error + "' is a reserved name prefix!",flixel_system_debug_log_LogStyle.WARNING,true); } else { this.unparentXML(def_data); this._definition_index.h[def_name] = def_data; } } } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"default")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"default"); while(_g < _g1.length) { var defaultNode = _g1[_g]; ++_g; if(this._loadTest(defaultNode)) { var defaultName = flixel_addons_ui_U.xml_name(defaultNode); this.unparentXML(defaultNode); this._definition_index.h["default:" + defaultName] = defaultNode; } } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"variable")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"variable"); while(_g < _g1.length) { var var_data = _g1[_g]; ++_g; if(this._loadTest(var_data)) { var var_name = flixel_addons_ui_U.xml_name(var_data); var var_value = flixel_addons_ui_U.xml_str(var_data,"value"); if(var_name != "") { this._variable_index.h[var_name] = var_value; } } } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"mode")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"mode"); while(_g < _g1.length) { var mode_data = _g1[_g]; ++_g; if(this._loadTest(mode_data)) { var mode_data2 = this.applyNodeConditionals(mode_data); var mode_name = flixel_addons_ui_U.xml_name(mode_data); this.unparentXML(mode_data2); this._mode_index.h[mode_name] = mode_data2; } } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"group")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"group"); while(_g < _g1.length) { var group_data = _g1[_g]; ++_g; if(this._loadTest(group_data)) { var name = flixel_addons_ui_U.xml_name(group_data); var custom = flixel_addons_ui_U.xml_str(group_data,"custom"); var tempGroup = null; if(custom != "") { var result = this._ptr.getRequest("ui_get_group:",this,custom); if(result != null && ((result) instanceof flixel_addons_ui_FlxTypedUIGroup)) { tempGroup = result; } } if(tempGroup == null) { tempGroup = new flixel_addons_ui_FlxTypedUIGroup(); } tempGroup.name = name; this._group_index.h[name] = tempGroup; this.add(tempGroup); } } } if(data.firstElement() != null) { var node = data.elements(); while(node.hasNext()) { var node1 = node.next(); this._loadSub(node1); } } this._postLoad(data); } else { this._onFinishLoad(); } } ,unparentXML: function(f) { return flixel_addons_ui_U.unparentXML(f); } ,_loadPointSize: function(data) { var data1 = haxe_xml__$Access_NodeAccess.resolve(data,"point_size"); var default_ = -1.0; if(default_ == null) { default_ = 0; } var ptx = this._loadWidth(data1,default_,"x"); var data1 = haxe_xml__$Access_NodeAccess.resolve(data,"point_size"); var default_ = -1.0; if(default_ == null) { default_ = 0; } var pty = this._loadHeight(data1,default_,"y"); if(pty < 1 && ptx < 1) { pty = this._loadHeight(haxe_xml__$Access_NodeAccess.resolve(data,"point_size"),-1,"value"); ptx = pty; } if(pty > 0) { this._pointX = ptx; } if(ptx > 0) { this._pointY = pty; } } ,_loadSub: function(node,iteration) { if(iteration == null) { iteration = 0; } if(node.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType))); } var type = node.nodeName; if(node.nodeType != Xml.Document && node.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType))); } var obj = node; if(type == "load_if") { if(this._loadTest(obj)) { if(node.firstElement() != null) { var subNode = node.elements(); while(subNode.hasNext()) { var subNode1 = subNode.next(); this._loadSub(subNode1,iteration + 1); } } } return; } var group_name = ""; var tempGroup = null; var thing_name = flixel_addons_ui_U.xml_name(obj); if(haxe_xml__$Access_HasAttribAccess.resolve(obj,"group")) { group_name = haxe_xml__$Access_AttribAccess.resolve(obj,"group"); tempGroup = this.getGroup(group_name); } var thing = this._loadThing(type,obj); if(thing != null) { this._loadGlobals(obj,thing); if(thing_name != null && thing_name != "") { this._asset_index.h[thing_name] = thing; thing.name = thing_name; var thing_tags = flixel_addons_ui_U.xml_str(obj,"tags"); if(thing_tags != "") { var tagArr = thing_tags.split(","); this._addTags(tagArr,thing_name); } } this._loadTooltip(thing,obj); if(tempGroup != null) { tempGroup.add(thing); } else { this.add(thing); } this._loadPosition(obj,thing); } } ,_addTags: function(arr,thingName) { var _g = 0; while(_g < arr.length) { var tag = arr[_g]; ++_g; var list = null; if(!Object.prototype.hasOwnProperty.call(this._tag_index.h,tag)) { this._tag_index.h[tag] = []; } list = this._tag_index.h[tag]; if(list.indexOf(thingName) == -1) { list.push(thingName); } } } ,_loadGlobals: function(data,thing) { if(((thing) instanceof flixel_FlxBasic)) { var isVis = flixel_addons_ui_U.xml_bool(data,"visible",true); var isActive = flixel_addons_ui_U.xml_bool(data,"active",true); var numID = flixel_addons_ui_U.xml_i(data,"num_id"); thing.visible = isVis; thing.active = isActive; thing.ID = numID; if(((thing) instanceof flixel_FlxSprite)) { var alpha = flixel_addons_ui_U.xml_f(data,"alpha",1.0); var s = thing; s.set_alpha(alpha); } } } ,_postLoad: function(data) { this._postLoaded = true; if(data.firstElement() != null) { var node = data.elements(); while(node.hasNext()) { var node1 = node.next(); if(node1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node1.nodeType == null ? "null" : XmlType.toString(node1.nodeType))); } var tmp = node1.nodeName.toLowerCase(); if(node1.nodeType != Xml.Document && node1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (node1.nodeType == null ? "null" : XmlType.toString(node1.nodeType))); } this._postLoadThing(tmp,node1); } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"mode")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"mode"); while(_g < _g1.length) { var mode_node = _g1[_g]; ++_g; var is_default = flixel_addons_ui_U.xml_bool(mode_node,"is_default"); if(is_default) { var mode_name = flixel_addons_ui_U.xml_name(mode_node); this.setMode(mode_name); break; } } } if(this._failure_checks != null) { var _g = 0; var _g1 = this._failure_checks; while(_g < _g1.length) { var data = _g1[_g]; ++_g; if(this._checkFailure(data)) { this.failed = true; break; } } flixel_addons_ui_U.clearArraySoft(this._failure_checks); this._failure_checks = null; } this._onFinishLoad(); } ,_sendTo: function(thing,dir) { var group = this.getAssetGroup(null,thing); if(group == null) { if(this.group.members.indexOf(thing) != -1) { group = this; } else { return; } } if(dir != -1 && dir != 1) { return; } HxOverrides.remove(group.group.members,thing); switch(dir) { case -1: group.group.members.splice(0,0,thing); break; case 1: group.group.members.push(thing); break; } } ,sendToFront: function(name,recursive) { if(recursive == null) { recursive = true; } var thing = this.getAsset(name,recursive); if(thing != null) { this._sendTo(thing,1); } } ,sendToBack: function(name,recursive) { if(recursive == null) { recursive = true; } var thing = this.getAsset(name,recursive); if(thing != null) { this._sendTo(thing,-1); } } ,get_currMode: function() { return this._curr_mode; } ,set_currMode: function(m) { this.setMode(m); return this._curr_mode; } ,setMode: function(mode_name,target_name) { if(target_name == null) { target_name = ""; } if(this._curr_mode == mode_name) { return; } var mode = this.getMode(mode_name); this._curr_mode = mode_name; var name = ""; var thing; if(target_name == "") { if(mode != null) { var xml; var node = mode.elements(); while(node.hasNext()) { var node1 = node.next(); var node2 = this.applyNodeConditionals(node1); xml = node2; if(xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var nodeName = xml.nodeName; var activeStatus = flixel_addons_ui_U.xml_str(xml,"active") == "" ? null : true; if(activeStatus != null) { activeStatus = flixel_addons_ui_U.xml_bool(xml,"active"); } if(this._loadTest(node2)) { switch(nodeName) { case "align": this._alignThing(node2); break; case "change": this._changeThing(node2); break; case "hide": this.showThing(flixel_addons_ui_U.xml_name(xml),false,activeStatus); break; case "position": name = flixel_addons_ui_U.xml_name(xml); thing = this.getAsset(name); if(thing != null) { this._loadPosition(node2,thing); } break; case "show": this.showThing(flixel_addons_ui_U.xml_name(xml),true,activeStatus); break; } } } } } else { var target = this.getAsset(target_name); if(target != null && ((target) instanceof flixel_addons_ui_FlxUI)) { var targetUI = js_Boot.__cast(target , flixel_addons_ui_FlxUI); targetUI.setMode(mode_name,""); } } } ,showThing: function(name,visibleStatus,activeStatus) { if(visibleStatus == null) { visibleStatus = true; } if(name.indexOf(",") != -1) { var names = name.split(","); var _g = 0; while(_g < names.length) { var each_name = names[_g]; ++_g; var thing = this.getAsset(each_name); if(thing != null) { thing.set_visible(visibleStatus); if(activeStatus != null) { thing.set_active(activeStatus); } } else { var group = this.getGroup(each_name); if(group != null) { group.set_visible(visibleStatus); if(activeStatus != null) { group.set_active(activeStatus); } } } } } else if(name != "*") { var thing = this.getAsset(name); if(thing != null) { thing.set_visible(visibleStatus); if(activeStatus != null) { thing.set_active(activeStatus); } } else { var group = this.getGroup(name); if(group != null) { group.set_visible(visibleStatus); if(activeStatus != null) { group.set_active(activeStatus); } } } } else { var h = this._asset_index.h; var asset_name_h = h; var asset_name_keys = Object.keys(h); var asset_name_length = asset_name_keys.length; var asset_name_current = 0; while(asset_name_current < asset_name_length) { var asset_name = asset_name_keys[asset_name_current++]; if(asset_name != "*") { this.showThing(asset_name,visibleStatus,activeStatus); } } } } ,getGroup: function(key,recursive) { if(recursive == null) { recursive = true; } var tempGroup = this._group_index.h[key]; if(tempGroup == null && recursive && this._superIndexUI != null) { return this._superIndexUI.getGroup(key,recursive); } return tempGroup; } ,getFlxText: function(key,recursive) { if(recursive == null) { recursive = true; } var asset = this.getAsset(key,recursive); if(asset != null) { if(((asset) instanceof flixel_text_FlxText)) { return js_Boot.__cast(asset , flixel_text_FlxText); } } return null; } ,getAllAssets: function() { var arr = []; var h = this._asset_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; arr.push(this.getAsset(key)); } return arr; } ,getAssetKeys: function() { var arr = []; var h = this._asset_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; arr.push(key); } return arr; } ,hasAsset: function(key,recursive) { if(recursive == null) { recursive = true; } if(Object.prototype.hasOwnProperty.call(this._asset_index.h,key)) { return true; } if(recursive && this._superIndexUI != null) { return this._superIndexUI.hasAsset(key,recursive); } return false; } ,getAsset: function(key,recursive) { if(recursive == null) { recursive = true; } var asset = this._asset_index.h[key]; if(asset == null && recursive && this._superIndexUI != null) { return this._superIndexUI.getAsset(key,recursive); } return asset; } ,getAssetsWithTag: function(tag) { if(Object.prototype.hasOwnProperty.call(this._tag_index.h,tag)) { var list = this._tag_index.h[tag]; if(list == null || list.length == 0) { return null; } var arr = []; var _g = 0; while(_g < list.length) { var key = list[_g]; ++_g; var widget = this.getAsset(key); if(widget != null) { arr.push(widget); } } return arr; } return null; } ,getAssetGroup: function(key,thing) { if(thing == null && (key == null || key == "")) { return null; } if(thing == null) { thing = this.getAsset(key); } if(thing == null) { return null; } var h = this._group_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var g = this._group_index.h[key]; if(g.group.members.indexOf(thing) != -1) { return g; } } return null; } ,getMode: function(key,recursive) { if(recursive == null) { recursive = true; } var mode = this._mode_index.h[key]; if(mode == null && recursive && this._superIndexUI != null) { return this._superIndexUI.getMode(key,recursive); } return mode; } ,getLabelStyleFromDefinition: function(key,recursive) { if(recursive == null) { recursive = true; } var definition = this.getDefinition(key,recursive); if(definition != null) { var fontDef = this._loadFontDef(definition); var align = flixel_addons_ui_U.xml_str(definition,"align"); if(align == "") { align = null; } var color = this._loadColor(definition); var border = this._loadBorder(definition); return new flixel_addons_ui_ButtonLabelStyle(fontDef,align,color,border); } return null; } ,getLabelStyleFromData: function(data) { var fontDef = this._loadFontDef(data); var align = flixel_addons_ui_U.xml_str(data,"align"); if(align == "") { align = null; } var color = this._loadColor(data); var border = this._loadBorder(data); return new flixel_addons_ui_ButtonLabelStyle(fontDef,align,color,border); } ,checkVariable: function(key,otherValue,type,op,recursive) { if(recursive == null) { recursive = true; } if(op == null) { op = "=="; } var variable = this.getVariable(key,recursive); if(variable != null) { return flixel_addons_ui_U.compareStringVars(variable,otherValue,type,op); } else { return flixel_addons_ui_U.compareStringVars("",otherValue,type,op); } } ,setVariable: function(key,value) { this._variable_index.h[key] = value; } ,getVariable: function(key,recursive) { if(recursive == null) { recursive = true; } var variable = this._variable_index.h[key]; if(variable == null && recursive && this._superIndexUI != null) { variable = this._superIndexUI.getVariable(key,recursive); } return variable; } ,getDefinition: function(key,recursive) { if(recursive == null) { recursive = true; } var definition = this._definition_index.h[key]; if(definition == null && recursive && this._superIndexUI != null) { definition = this._superIndexUI.getDefinition(key,recursive); } if(definition == null) { if(key.indexOf("include:") == -1) { definition = this.getDefinition("include:" + key,recursive); } } return definition; } ,screenWidth: function() { if(this.hasAsset("screen")) { return this.getAsset("screen").get_width() | 0; } return flixel_FlxG.width; } ,screenHeight: function() { if(this.hasAsset("height")) { return this.getAsset("screen").get_height() | 0; } return flixel_FlxG.height; } ,_postLoaded: null ,_pointX: null ,_pointY: null ,_group_index: null ,_asset_index: null ,_tag_index: null ,_definition_index: null ,_variable_index: null ,_mode_index: null ,_curr_mode: null ,_ptr: null ,_superIndexUI: null ,_safe_input_delay_elapsed: null ,_failure_checks: null ,_assetsToCleanUp: null ,_scaledAssets: null ,replaceInGroup: function(original,replace,splice) { if(splice == null) { splice = false; } if(this._group_index != null) { var h = this._group_index.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var tempGroup = this._group_index.h[key]; if(tempGroup.group.members != null) { var i = 0; var _g = 0; var _g1 = tempGroup.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member != null) { if(member == original) { tempGroup.group.members[i] = replace; if(replace == null) { if(splice) { tempGroup.group.members.splice(i,1); --i; } } return; } ++i; } } } } } if(this.group.members != null) { var i = 0; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member != null) { if(member == original) { this.group.members[i] = replace; if(replace == null) { if(splice) { this.group.members.splice(i,1); --i; } } return; } } ++i; } } } ,applyNodeConditionals: function(info) { if(haxe_xml__$Access_HasNodeAccess.resolve(info,"locale") || haxe_xml__$Access_HasNodeAccess.resolve(info,"haxedef")) { var x = Xml.parse(haxe_xml_Printer.print(info)).firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } info = x; if(haxe_xml__$Access_HasNodeAccess.resolve(info,"locale")) { info = this.applyNodeChanges(info,"locale"); } if(haxe_xml__$Access_HasNodeAccess.resolve(info,"haxedef")) { info = this.applyNodeChanges(info,"haxedef"); } if(haxe_xml__$Access_HasNodeAccess.resolve(info,"window")) { info = this.applyNodeChanges(info,"window"); } } return info; } ,applyNodeChanges: function(data,nodeName) { var nodeValue = ""; if(nodeName == "locale") { if(this._ptr_tongue == null) { return data; } nodeValue = this._ptr_tongue.locale.toLowerCase(); } var haxedef = false; if(nodeName == "haxedef") { haxedef = true; } if(nodeName == "window") { nodeValue = flixel_FlxG.width + "," + flixel_FlxG.height; } var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,nodeName); while(_g < _g1.length) { var cNode = _g1[_g]; ++_g; var cname = flixel_addons_ui_U.xml_name(cNode); if(haxedef) { nodeValue = ""; if(flixel_addons_ui_U.checkHaxedef(cname)) { nodeValue = cname; } } if(cname == nodeValue) { if(haxe_xml__$Access_HasNodeAccess.resolve(cNode,"change")) { var _g2 = 0; var _g3 = haxe_xml__$Access_NodeListAccess.resolve(cNode,"change"); while(_g2 < _g3.length) { var change = _g3[_g2]; ++_g2; var att = change.attributes(); while(att.hasNext()) { var att1 = att.next(); var value = change.get(att1); data.set(att1,value); } } } } } return data; } ,loadThing: function(type,data) { return this._loadThing(type,data); } ,_loadThingGetInfo: function(data) { var _this = data; if(_this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } var nodeName = _this.nodeName; var defaultDef = this.getDefinition("default:" + nodeName); var info = null; if(defaultDef != null) { info = flixel_addons_ui_FlxUI.consolidateData(data,defaultDef,true); } if(info == null) { info = data; } var use_def = flixel_addons_ui_U.xml_str(info,"use_def",true); var definition = null; if(use_def != "") { definition = this.getDefinition(use_def); } info = flixel_addons_ui_FlxUI.consolidateData(info,definition); info = this.applyNodeConditionals(info); if(this._loadTest(info) == false) { return null; } return info; } ,_loadTooltip: function(thing,data) { if(haxe_xml__$Access_HasNodeAccess.resolve(data,"tooltip")) { var tt = this._loadTooltipData(haxe_xml__$Access_NodeAccess.resolve(data,"tooltip")); var state = flixel_addons_ui_FlxUI.getLeafUIState(); if(((thing) instanceof flixel_addons_ui_FlxUICheckBox)) { var check = thing; state.tooltips.add(check.button,tt); } else { state.tooltips.add(thing,tt); } } } ,_loadTooltipData: function(tNode) { var tt = { title : "", body : "", anchor : null, style : { titleFormat : null, bodyFormat : null, titleBorder : null, bodyBorder : null, titleOffset : null, bodyOffset : null, titleWidth : -1, bodyWidth : -1, background : null, borderSize : -1, borderColor : null, arrow : null, autoSizeVertical : null, autoSizeHorizontal : null, leftPadding : -1, rightPadding : -1, topPadding : -1, bottomPadding : -1}}; var defaultDef = this.getDefinition("default:tooltip"); if(defaultDef != null) { tNode = flixel_addons_ui_FlxUI.consolidateData(tNode,defaultDef,true); } if(haxe_xml__$Access_HasAttribAccess.resolve(tNode,"use_def")) { var defStr = flixel_addons_ui_U.xml_str(tNode,"use_def",true); var def = this.getDefinition(defStr); if(def != null) { tNode = flixel_addons_ui_FlxUI.consolidateData(tNode,def,true); } } if(haxe_xml__$Access_HasAttribAccess.resolve(tNode,"text")) { this._loadTooltipText(tNode,"text",tt); } if(haxe_xml__$Access_HasNodeAccess.resolve(tNode,"title")) { this._loadTooltipText(haxe_xml__$Access_NodeAccess.resolve(tNode,"title"),"text",tt); } if(haxe_xml__$Access_HasNodeAccess.resolve(tNode,"body")) { this._loadTooltipText(haxe_xml__$Access_NodeAccess.resolve(tNode,"body"),"text",tt); } tt.anchor = this._loadAnchor(tNode); this._loadTooltipStyle(tNode,tt); return tt; } ,_loadTooltipStyle: function(node,tt) { tt.style.background = flixel_addons_ui_U.xml_color(node,"background"); tt.style.borderSize = flixel_addons_ui_U.xml_i(node,"border",-1); tt.style.borderColor = flixel_addons_ui_U.xml_color(node,"border_color"); var tmp; if(haxe_xml__$Access_HasAttribAccess.resolve(node,"arrow")) { var data = node; var str = ""; if(data.get("arrow") != null) { str = data.get("arrow"); if(str == "" || str == null) { str = ""; } else { str = flixel_addons_ui_U.gfx(str); try { if(!openfl_utils_Assets.exists(str,"IMAGE")) { throw haxe_Exception.thrown("couldn't load bmp \"" + "arrow" + "\""); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg = _g1; flixel_FlxG.log.advanced("FlxUI: U.xml_gfx() : " + msg,flixel_system_debug_log_LogStyle.ERROR,true); } else { throw _g; } } } } tmp = str; } else { tmp = null; } tt.style.arrow = tmp; tt.style.autoSizeHorizontal = flixel_addons_ui_U.xml_bool(node,"auto_size_horizontal",true); tt.style.autoSizeVertical = flixel_addons_ui_U.xml_bool(node,"auto_size_vertical",true); var padAll = this._loadHeight(node,-1,"pad_all") | 0; if(padAll != -1) { tt.style.leftPadding = tt.style.rightPadding = tt.style.topPadding = tt.style.bottomPadding = padAll; } else { var tmp = this._loadWidth(node,0,"pad_left") | 0; tt.style.leftPadding = tmp; var tmp = this._loadWidth(node,0,"pad_right") | 0; tt.style.rightPadding = tmp; var tmp = this._loadHeight(node,0,"pad_top") | 0; tt.style.topPadding = tmp; var tmp = this._loadHeight(node,0,"pad_bottom") | 0; tt.style.bottomPadding = tmp; } } ,_loadTooltipText: function(node,fieldName,tt) { var nodeName; if(node.nodeType == Xml.Document) { nodeName = "Document"; } else { if(node.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType))); } nodeName = node.nodeName; } var text = this._loadString(node,fieldName); var x = this._loadWidth(node,0,"x"); var y = this._loadHeight(node,0,"y"); if(y == null) { y = 0; } if(x == null) { x = 0; } var offset = new flixel_math_FlxBasePoint(x,y); if(haxe_xml__$Access_HasAttribAccess.resolve(node,"use_def")) { var use_def = flixel_addons_ui_U.xml_str(node,"use_def",true); var the_def = this.getDefinition(use_def); if(the_def != null) { node = flixel_addons_ui_FlxUI.consolidateData(node,the_def); } } var border = this._loadBorder(node); var format = this._loadFontDef(node); var color = flixel_addons_ui_U.xml_color(node,"color",true,-16777216); format.format.color = color; var W = this._loadWidth(node,-1,"width") | 0; switch(nodeName) { case "body": if(text != "") { tt.body = text; } tt.style.bodyOffset = offset; tt.style.bodyFormat = format; tt.style.bodyWidth = W; tt.style.bodyBorder = border; break; case "title":case "tooltip": if(text != "") { tt.title = text; } tt.style.titleOffset = offset; tt.style.titleFormat = format; tt.style.titleWidth = W; tt.style.titleBorder = border; break; default: } } ,_loadAnchor: function(data) { var xOff = this._loadWidth(data,0,"x"); var yOff = this._loadHeight(data,0,"y"); if(haxe_xml__$Access_HasNodeAccess.resolve(data,"anchor")) { var xSide = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x",true,"right"); var ySide = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y",true,"top"); var xFlush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x-flush",true,"left"); var yFlush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y-flush",true,"top"); return new flixel_addons_ui_Anchor(xOff,yOff,xSide,ySide,xFlush,yFlush); } return null; } ,_loadThing: function(type,data) { var info = this._loadThingGetInfo(data); if(info == null) { return null; } switch(type) { case "align": this._alignThing(info,true); return null; case "bar": return this._loadBar(info); case "box": return this._loadBox(info); case "button": return this._loadButton(info); case "button_toggle": return this._loadButton(info,true,true); case "change": this._changeThing(info); return null; case "checkbox": return this._loadCheckBox(info); case "failure": if(this._failure_checks == null) { this._failure_checks = []; } this.unparentXML(info); this._failure_checks.push(info); return null; case "input_text": return this._loadInputText(info); case "line": return this._loadLine(info); case "default":case "group":case "include":case "inject":case "load_if":case "mode": return null; case "chrome":case "nine_slice":case "nine_slice_sprite":case "nineslice":case "nineslicesprite": return this._load9SliceSprite(info); case "num_stepper":case "numeric_stepper":case "numstepper": return this._loadNumericStepper(info); case "position": this.name = flixel_addons_ui_U.xml_name(info); var thing = this.getAsset(this.name); if(thing != null) { this._loadPosition(info,thing); } return null; case "dropdown":case "dropdown_menu":case "pulldown":case "pulldown_menu": return this._loadDropDownMenu(info); case "radio_group": return this._loadRadioGroup(info); case "region": return this._loadRegion(info); case "sprite": return this._loadSprite(info); case "tab_menu": return this._loadTabMenu(info); case "text": return this._loadText(info); case "tile_test": return this._loadTileTest(info); case "layout":case "ui": return this._loadLayout(info); default: var result = this._ptr.getRequest("ui_get:" + type,this,info,[data]); return result; } } ,_loadX: function(data,default_) { if(default_ == null) { default_ = 0; } return this._loadWidth(data,default_,"x"); } ,_loadY: function(data,default_) { if(default_ == null) { default_ = 0; } return this._loadHeight(data,default_,"y"); } ,_loadScale: function(data,default_,str) { if(str == null) { str = "scale"; } if(default_ == null) { default_ = 1.0; } return this._loadHeight(data,default_,str,"none"); } ,_loadScaleX: function(data,default_) { if(default_ == null) { default_ = 1.0; } return this._loadWidth(data,default_,"scale_x","none"); } ,_loadScaleY: function(data,default_) { if(default_ == null) { default_ = 1.0; } return this._loadHeight(data,default_,"scale_y","none"); } ,_loadWidth: function(data,default_,str,defaultRound) { if(defaultRound == null) { defaultRound = ""; } if(str == null) { str = "width"; } if(default_ == null) { default_ = 10; } var ws = flixel_addons_ui_U.xml_str(data,str,true,default_ == null ? "null" : "" + default_); var round = this.getRound(data,defaultRound); return this.doRound(this._getDataSize("w",ws,default_),round); } ,_loadHeight: function(data,default_,str,defaultRound) { if(defaultRound == null) { defaultRound = ""; } if(str == null) { str = "height"; } if(default_ == null) { default_ = 10; } var hs = flixel_addons_ui_U.xml_str(data,str,true,default_ == null ? "null" : "" + default_); var round = this.getRound(data,defaultRound); return this.doRound(this._getDataSize("h",hs,default_),round); } ,_loadCompass: function(data,str) { if(str == null) { str = "resize_point"; } var cs = flixel_addons_ui_U.xml_str(data,str,true,"nw"); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var fp = point; switch(cs) { case "c":case "center":case "m":case "mid": fp.set_x(0.5); fp.set_y(0.5); break; case "ll":case "sw": fp.set_x(0); fp.set_y(1); break; case "lr":case "se": fp.set_x(1); fp.set_y(1); break; case "e":case "r": fp.set_x(1); fp.set_y(0.5); break; case "s": fp.set_x(0.5); fp.set_y(1); break; case "n":case "u": fp.set_x(0.5); fp.set_y(0); break; case "nw":case "ul": fp.set_x(0); fp.set_y(0); break; case "ne":case "ur": fp.set_x(1); fp.set_y(0); break; case "w": fp.set_x(0.5); fp.set_y(0); break; } return fp; } ,_changeParamsThing: function(data) { var name = flixel_addons_ui_U.xml_name(data); var thing = this.getAsset(name); if(thing == null) { return; } if(!js_Boot.__implements(thing,flixel_addons_ui_interfaces_IHasParams)) { return; } var ihp = thing; var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } ihp.set_params(params); } ,_changeThing: function(data) { var name = flixel_addons_ui_U.xml_name(data); var thing = this.getAsset(name); if(thing == null) { return; } var new_width = -1; var new_height = -1; var context = ""; var code = ""; var attribute = data.attributes(); while(attribute.hasNext()) { var attribute1 = attribute.next(); switch(attribute1) { case "height": new_height = this._loadHeight(data); break; case "label": var label = flixel_addons_ui_U.xml_str(data,"label"); context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); code = flixel_addons_ui_U.xml_str(data,"code",true,""); label = this.getText(label,context,true,code); if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_ILabeled)) { var b = thing; b.getLabel().set_text(label); } break; case "text": if(((thing) instanceof flixel_addons_ui_FlxUIText)) { var text = flixel_addons_ui_U.xml_str(data,"text"); context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var t = thing; code = flixel_addons_ui_U.xml_str(data,"code",true,""); t.set_text(this.getText(text,context,true,code)); } break; case "width": new_width = this._loadWidth(data); break; } } if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IResizable)) { var ir = thing; if(new_width != -1 || new_height != -1) { if(new_width == -1) { new_width = ir.get_width(); } if(new_height == -1) { new_height = ir.get_height(); } ir.resize(new_width,new_height); } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IHasParams)) { var ihp = thing; var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } ihp.set_params(params); } } } ,_alignThing: function(data,suppressError) { if(suppressError == null) { suppressError = false; } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"objects")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"objects"); while(_g < _g1.length) { var objectNode = _g1[_g]; ++_g; var objects = flixel_addons_ui_U.xml_str(objectNode,"value",true,"").split(","); var axis = flixel_addons_ui_U.xml_str(data,"axis",true); if(axis != "horizontal" && axis != "vertical") { throw new openfl_errors_Error("FlxUI._alignThing(): axis must be \"horizontal\" or \"vertical\"!"); } var spacing = -1; if(axis == "horizontal") { spacing = this._getDataSize("w",flixel_addons_ui_U.xml_str(data,"spacing",true),-1); } else { spacing = this._getDataSize("h",flixel_addons_ui_U.xml_str(data,"spacing",true),-1); } var resize = flixel_addons_ui_U.xml_bool(data,"resize"); var grow = flixel_addons_ui_U.xml_bool(data,"grow",true); var shrink = flixel_addons_ui_U.xml_bool(data,"shrink",true); var x = -1; var y = -1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var bounds = point; var boundsError = ""; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"bounds")) { if(axis == "horizontal") { bounds.set_x(this._getDataSize("w",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"left"),-1)); bounds.set_y(this._getDataSize("w",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"right"),-1)); } else if(axis == "vertical") { bounds.set_x(this._getDataSize("h",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"top"),-1)); bounds.set_y(this._getDataSize("h",flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"bounds"),"bottom"),-1)); } } if(bounds.x != -1 && bounds.y != -1) { if(bounds.y <= bounds.x) { boundsError = "bounds max must be > bounds min! (max=" + bounds.y + " min=" + bounds.x + ")"; } } else { boundsError = "missing bound!"; } if(boundsError == "") { this._doAlign(objects,axis,spacing,resize,bounds,grow,shrink); } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"anchor") || haxe_xml__$Access_HasAttribAccess.resolve(data,"x") || haxe_xml__$Access_HasAttribAccess.resolve(data,"y")) { var _g2 = 0; while(_g2 < objects.length) { var object = objects[_g2]; ++_g2; var thing = this.getAsset(object); this._loadPosition(data,thing); } } else if(boundsError != "") { if(!suppressError) { flixel_FlxG.log.advanced(boundsError,flixel_system_debug_log_LogStyle.ERROR,true); } } } } else { throw new openfl_errors_Error("FlxUI._alignThing(): node not found!"); } } ,_doAlign: function(objects,axis,spacing,resize,bounds,allowGrow,allowShrink) { if(allowShrink == null) { allowShrink = true; } if(allowGrow == null) { allowGrow = true; } var total_spacing = 0; var total_size = 0; var bound_range = bounds.y - bounds.x; var spaces = objects.length - 1; var space_size = 0; var object_size = 0; var size_prop = "width"; var pos_prop = "x"; if(axis == "vertical") { size_prop = "height"; pos_prop = "y"; } var _g = 0; while(_g < objects.length) { var nameStr = objects[_g]; ++_g; var widget = this.getAsset(nameStr); if(widget != null) { var theval = 0; switch(size_prop) { case "height": theval = widget.get_height(); break; case "width": theval = widget.get_width(); break; } total_size += theval; } } if(resize == false) { total_spacing = bound_range - total_size; space_size = total_spacing / spaces; } else { space_size = spacing; total_spacing = spacing * spaces; object_size = (bound_range - total_spacing) / objects.length; } object_size = object_size | 0; space_size = space_size | 0; var last_pos = bounds.x; var _g = 0; while(_g < objects.length) { var nameStr = objects[_g]; ++_g; var widget = this.getAsset(nameStr); if(widget != null) { var pos = last_pos; if(!resize) { switch(size_prop) { case "height": object_size = widget.get_height(); break; case "width": object_size = widget.get_width(); break; } } else if(js_Boot.__implements(widget,flixel_addons_ui_interfaces_IResizable)) { var allow = true; var widgetr = widget; if(axis == "vertical") { if(object_size > widgetr.get_width()) { allow = allowGrow; } else if(object_size < widgetr.get_width()) { allow = allowShrink; } if(allow) { widgetr.resize(widgetr.get_width(),object_size); } } else if(axis == "horizontal") { if(object_size > widgetr.get_height()) { allow = allowGrow; } else if(object_size < widgetr.get_height()) { allow = allowShrink; } if(allow) { widgetr.resize(object_size,widgetr.get_height()); } } } last_pos = pos + object_size + space_size; switch(pos_prop) { case "x": widget.set_x(pos); break; case "y": widget.set_y(pos); break; } } } } ,_checkFailure: function(data) { var target = flixel_addons_ui_U.xml_str(data,"target",true); var property = flixel_addons_ui_U.xml_str(data,"property",true); var compare = flixel_addons_ui_U.xml_str(data,"compare",true); var value = flixel_addons_ui_U.xml_str(data,"value",true); var thing = this.getAsset(target); if(thing == null) { return false; } var prop_f = 0; var val_f = 0; var p = flixel_addons_ui_U.perc_to_float(value); switch(property) { case "h":case "height": prop_f = thing.get_height(); break; case "w":case "width": prop_f = thing.get_width(); break; } if(isNaN(p)) { if(flixel_addons_ui_U.isStrNum(value)) { val_f = parseFloat(value); } else { return false; } } else { switch(property) { case "h":case "height": val_f = p * this.screenHeight(); break; case "w":case "width": val_f = p * this.screenWidth(); break; } } var return_val = false; switch(compare) { case "<": if(prop_f < val_f) { this.failed_by = val_f - prop_f; return_val = true; } break; case "<=": if(prop_f <= val_f) { this.failed_by = val_f - prop_f; return_val = true; } break; case "=":case "==": if(prop_f == val_f) { this.failed_by = Math.abs(prop_f - val_f); return_val = true; } break; case ">": if(prop_f > val_f) { this.failed_by = prop_f - val_f; return_val = true; } break; case ">=": if(prop_f >= val_f) { this.failed_by = prop_f - val_f; return_val = true; } break; } return return_val; } ,_resizeThing: function(fo_r,bounds) { var do_resize = false; var ww = fo_r.get_width(); var hh = fo_r.get_height(); if(ww < bounds.min_width) { do_resize = true; ww = bounds.min_width; } else if(ww > bounds.max_width) { do_resize = true; ww = bounds.max_width; } if(hh < bounds.min_height) { do_resize = true; hh = bounds.min_height; } else if(hh > bounds.max_height) { do_resize = true; hh = bounds.max_height; } if(do_resize) { fo_r.resize(ww,hh); } } ,_postLoadThing: function(type,data) { if(type == "load_if") { if(this._loadTest(data)) { if(data.firstElement() != null) { var subNode = data.elements(); while(subNode.hasNext()) { var subNode1 = subNode.next(); if(subNode1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (subNode1.nodeType == null ? "null" : XmlType.toString(subNode1.nodeType))); } var nodeType = subNode1.nodeName.toLowerCase(); if(subNode1.nodeType != Xml.Document && subNode1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (subNode1.nodeType == null ? "null" : XmlType.toString(subNode1.nodeType))); } this._postLoadThing(nodeType,subNode1); } } } return; } if(this._loadTest(data) == false) { return; } var name = flixel_addons_ui_U.xml_name(data); var thing = this.getAsset(name); var isGroup = type == "group"; if(isGroup) { thing = this.getGroup(name); } if(type == "align") { this._alignThing(data); } if(type == "change") { this._changeThing(data); } if(type == "position") { this._loadPosition(data,thing); return; } if(type == "cursor") { this._loadCursor(data); } if(thing == null && !isGroup) { return; } if(!isGroup) { var use_def = flixel_addons_ui_U.xml_str(data,"use_def",true); var definition = null; if(use_def != "") { definition = this.getDefinition(use_def); } if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IResizable)) { var ww = this._getDataSize("w",flixel_addons_ui_U.xml_str(data,"width")); var hh = this._getDataSize("h",flixel_addons_ui_U.xml_str(data,"height")); if(ww == 0 || ww == thing.get_width()) { ww = null; } if(hh == 0 || hh == thing.get_height()) { hh = null; } var bounds = this.calcMaxMinSize(data); if(bounds != null) { if(ww != null) { if(ww < bounds.min_width) { ww = bounds.min_width; } if(ww > bounds.max_width) { ww = bounds.max_width; } bounds.min_width = bounds.max_width = ww; } if(hh != null) { if(hh < bounds.min_height) { hh = bounds.min_height; } if(hh > bounds.max_height) { hh = bounds.max_height; } bounds.min_height = bounds.max_height = hh; } this._resizeThing(js_Boot.__cast(thing , flixel_addons_ui_interfaces_IResizable),bounds); } } var X = -thing.x; var Y = -thing.y; if(Y == null) { Y = 0; } if(X == null) { X = 0; } thing.set_x(thing.x + X); thing.set_y(thing.y + Y); this._loadPosition(data,thing); } var send_to = flixel_addons_ui_U.xml_str(data,"send_to",true,""); if(send_to != "") { switch(send_to) { case "back":case "bottom": this._sendTo(thing,-1); break; case "front":case "top": this._sendTo(thing,1); break; } } if(!isGroup && ((thing) instanceof flixel_addons_ui_FlxUI)) { var fui_thing = thing; if(fui_thing._postLoaded == false) { fui_thing.getEvent("post_load",this,null); } } } ,_loadTileTest: function(data) { var tiles_w = flixel_addons_ui_U.xml_i(data,"tiles_w",2); var tiles_h = flixel_addons_ui_U.xml_i(data,"tiles_h",2); var w = this._loadWidth(data); var h = this._loadHeight(data); var bounds = this.calcMaxMinSize(data); if(w < bounds.min_width) { w = bounds.min_width; } if(h < bounds.min_height) { h = bounds.min_height; } var tileWidth = w / tiles_w | 0; var tileHeight = h / tiles_h | 0; if(tileWidth < tileHeight) { tileHeight = tileWidth; } else if(tileHeight < tileWidth) { tileWidth = tileHeight; } var totalw = tileWidth * tiles_w; var totalh = tileHeight * tiles_h; if(totalw > bounds.max_width) { tileWidth = bounds.max_width / tiles_w | 0; } if(totalh > bounds.max_height) { tileHeight = bounds.max_height / tiles_h | 0; } if(tileWidth < tileHeight) { tileHeight = tileWidth; } else if(tileHeight < tileWidth) { tileWidth = tileHeight; } if(tileWidth < 2) { tileWidth = 2; } if(tileHeight < 2) { tileHeight = 2; } var color1 = flixel_util_FlxColor.fromString(flixel_addons_ui_U.xml_str(data,"color1",true,"0x808080")); var color2 = flixel_util_FlxColor.fromString(flixel_addons_ui_U.xml_str(data,"color2",true,"0xc4c4c4")); var baseTileSize = flixel_addons_ui_U.xml_i(data,"base_tile_size",-1); var floorToEven = flixel_addons_ui_U.xml_bool(data,"floor_to_even",false); var ftt = new flixel_addons_ui_FlxUITileTest(0,0,tileWidth,tileHeight,tiles_w,tiles_h,color1,color2,floorToEven); ftt.baseTileSize = baseTileSize; return ftt; } ,_loadString: function(data,attributeName) { var string = flixel_addons_ui_U.xml_str(data,attributeName); var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(data,"code",true,""); string = this.getText(string,context,true,code); return string; } ,_loadText: function(data) { var text = flixel_addons_ui_U.xml_str(data,"text"); var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(data,"code",true,""); text = this.getText(text,context,true,code); var W = this._loadWidth(data,100) | 0; var H = this._loadHeight(data,-1) | 0; var the_font = this._loadFontFace(data); var input = flixel_addons_ui_U.xml_bool(data,"input"); if(input) { throw new openfl_errors_Error("FlxUI._loadText(): with input has been deprecated. Use instead."); } var align = flixel_addons_ui_U.xml_str(data,"align"); if(align == "") { align = null; } var size = this._loadHeight(data,8,"size","floor") | 0; var color = this._loadColor(data); var border = this._loadBorder(data); var ftu = new flixel_addons_ui_FlxUIText(0,0,W,text,size); ftu.setFormat(the_font,size,color,align); border.apply(ftu); ftu.drawFrame(); var ft = ftu; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } var params1 = params; var ihp = ft; ihp.set_params(params1); } if(H > 0 && ft.get_height() != H) { if(js_Boot.__implements(ft,flixel_addons_ui_interfaces_IResizable)) { var r = ft; r.resize(r.get_width(),H); } } ftu.set_text(" "); ftu.set_text(text); return ft; } ,_loadInputText: function(data) { var text = flixel_addons_ui_U.xml_str(data,"text"); var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(data,"code",true,""); text = this.getText(text,context,true,code); var W = this._loadWidth(data,100) | 0; var H = this._loadHeight(data,-1) | 0; var the_font = this._loadFontFace(data); var align = flixel_addons_ui_U.xml_str(data,"align"); if(align == "") { align = null; } var size = this._loadHeight(data,8,"size") | 0; var color = this._loadColor(data); var border = this._loadBorder(data); var str = flixel_addons_ui_U.xml_str(data,"background",true,"0x00000000"); var safe = true; var default_color = 0; if(default_color == null) { default_color = 0; } if(safe == null) { safe = false; } var return_val = flixel_util_FlxColor.fromString(str); if(return_val == null) { if(!safe) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str); } else { return_val = default_color; } } var backgroundColor = return_val; var passwordMode = flixel_addons_ui_U.xml_bool(data,"password_mode"); var fti = new flixel_addons_ui_FlxUIInputText(0,0,W,text,size,color,backgroundColor); fti.set_passwordMode(passwordMode); var force_case = flixel_addons_ui_U.xml_str(data,"force_case",true,""); var forceCase; switch(force_case) { case "l":case "u": throw new openfl_errors_Error("FlxUI._loadInputText(): 1 letter values have been deprecated (force_case attribute)."); case "lower":case "lower_case":case "lowercase": forceCase = 2; break; case "upper":case "upper_case":case "uppercase": forceCase = 1; break; default: forceCase = 0; } var filter = flixel_addons_ui_U.xml_str(data,"filter",true,""); var filterMode; while(filter.indexOf("_") != -1) filter = StringTools.replace(filter,"_",""); switch(filter) { case "a":case "an":case "n": throw new openfl_errors_Error("FlxUI._loadInputText(): 1 letter values have been deprecated (filter attribute)."); case "alpha":case "onlyalpha": filterMode = 1; break; case "alphanum":case "alphanumeric":case "onlyalphanumeric": filterMode = 3; break; case "num":case "numeric":case "onlynumeric": filterMode = 2; break; default: filterMode = 0; } fti.setFormat(the_font,size,color,align); fti.set_forceCase(forceCase); fti.set_filterMode(filterMode); border.apply(fti); fti.drawFrame(); var ft = fti; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } var params1 = params; var ihp = ft; ihp.set_params(params1); } if(H > 0 && ft.get_height() != H) { if(js_Boot.__implements(ft,flixel_addons_ui_interfaces_IResizable)) { var r = ft; r.resize(r.get_width(),H); } } return ft; } ,_loadRadioGroup: function(data) { var frg = null; var dot_src = flixel_addons_ui_U.xml_str(data,"dot_src",true); var radio_src = flixel_addons_ui_U.xml_str(data,"radio_src",true); var labels = []; var names = []; var W = this._loadWidth(data,11,"radio_width"); var H = this._loadHeight(data,11,"radio_height"); var scrollH = this._loadHeight(data,0,"height"); var scrollW = this._loadHeight(data,0,"width"); var labelW = this._loadWidth(data,100,"label_width"); var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"radio"); while(_g < _g1.length) { var radioNode = _g1[_g]; ++_g; var name = flixel_addons_ui_U.xml_name(radioNode); var label = flixel_addons_ui_U.xml_str(radioNode,"label"); var context = flixel_addons_ui_U.xml_str(radioNode,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(radioNode,"code",true,""); label = this.getText(label,context,true,code); names.push(name); labels.push(label); } names.reverse(); labels.reverse(); var y_space = this._loadHeight(data,25,"y_space"); var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } var params1 = params; var radio_asset = null; if(radio_src != "") { radio_asset = flixel_addons_ui_U.gfx(radio_src); } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"box")) { if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"box"),"slice9") != "") { radio_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box")); } else { radio_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box")); } } var dot_asset = null; if(dot_src != "") { dot_asset = flixel_addons_ui_U.gfx(dot_src); } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"dot")) { if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"dot"),"slice9") != "") { dot_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"dot")); } else { dot_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"dot")); } } var prevOffset = null; var nextOffset = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"button")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"button"); while(_g < _g1.length) { var btnNode = _g1[_g]; ++_g; var name = flixel_addons_ui_U.xml_name(btnNode); if(name == "previous" || name == "prev") { var x = flixel_addons_ui_U.xml_f(btnNode,"x"); var y = flixel_addons_ui_U.xml_f(btnNode,"y"); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; prevOffset = point; } else if(name == "next") { var x2 = flixel_addons_ui_U.xml_f(btnNode,"x"); var y2 = flixel_addons_ui_U.xml_f(btnNode,"y"); if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var x3 = x2; var y3 = y2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x3,y3); point1._inPool = false; nextOffset = point1; } } } frg = new flixel_addons_ui_FlxUIRadioGroup(0,0,names,labels,null,y_space,W,H,labelW,null,prevOffset,nextOffset); frg.set_params(params1); if(radio_asset != "" && radio_asset != null) { frg.loadGraphics(radio_asset,dot_asset); } var text_x = this._loadWidth(data,0,"text_x") | 0; var text_y = this._loadHeight(data,0,"text_y") | 0; var radios = frg.getRadios(); var i = 0; var styleSet = false; var radioList = data.elementsNamed("radio"); var radioNode = null; var _g = 0; var _g1 = radios.length; while(_g < _g1) { var k = _g++; var fo = radios[radios.length - 1 - k]; radioNode = radioList.hasNext() ? radioList.next() : null; if(fo != null) { if(((fo) instanceof flixel_addons_ui_FlxUICheckBox)) { var fc = js_Boot.__cast(fo , flixel_addons_ui_FlxUICheckBox); var t = this.formatButtonText(data,fc); if(t != null && styleSet == false) { var fd = flixel_addons_ui_FontDef.copyFromFlxText(t); var bd = new flixel_addons_ui_BorderDef(t.borderStyle,t.borderColor,t.borderSize,t.borderQuality); frg.set_activeStyle(new flixel_addons_ui_CheckStyle(16777215,fd,flixel_text_FlxTextAlign.fromOpenFL(t._defaultFormat.align),t.color,bd)); styleSet = true; } fc.set_textX(text_x); fc.set_textY(text_y); ++i; if(radioNode != null) { if(radioNode.nodeType != Xml.Document && radioNode.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (radioNode.nodeType == null ? "null" : XmlType.toString(radioNode.nodeType))); } this._loadTooltip(fc,radioNode); } } } } if(scrollW != 0) { frg.fixedSize = true; frg.set_width(scrollW); } if(scrollH != 0) { frg.fixedSize = true; frg.set_height(scrollH); } return frg; } ,_loadCheckBox: function(data) { var fc = null; var label = flixel_addons_ui_U.xml_str(data,"label"); var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(data,"code",true,""); var checked = flixel_addons_ui_U.xml_bool(data,"checked",false); label = this.getText(label,context,true,code); var labelW = this._loadWidth(data,100,"label_width"); var check_src = flixel_addons_ui_U.xml_str(data,"check_src",true); var box_src = flixel_addons_ui_U.xml_str(data,"box_src",true); var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } var params1 = params; var box_asset = null; var check_asset = null; if(box_src != "") { box_asset = flixel_addons_ui_U.gfx(box_src); } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"box")) { if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"box"),"slice9") != "") { box_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box")); } else { box_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"box")); } } if(check_src != "") { check_asset = flixel_addons_ui_U.gfx(check_src); } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"check")) { if(flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"check"),"slice9") != "") { check_asset = this._load9SliceSprite(haxe_xml__$Access_NodeAccess.resolve(data,"check")); } else { check_asset = this._loadSprite(haxe_xml__$Access_NodeAccess.resolve(data,"check")); } } fc = new flixel_addons_ui_FlxUICheckBox(0,0,box_asset,check_asset,label,labelW,params1); this.formatButtonText(data,fc); var text_x = this._loadWidth(data,0,"text_x") | 0; var text_y = this._loadHeight(data,0,"text_y") | 0; fc.set_textX(text_x); fc.set_textY(text_y); fc.set_text(label); fc.set_checked(checked); return fc; } ,_loadDropDownMenu: function(data) { var fud = null; var label = flixel_addons_ui_U.xml_str(data,"label"); var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(data,"code",true,""); label = this.getText(label,context,true,code); var back_def = flixel_addons_ui_U.xml_str(data,"back_def",true); var panel_def = flixel_addons_ui_U.xml_str(data,"panel_def",true); var button_def = flixel_addons_ui_U.xml_str(data,"button_def",true); var label_def = flixel_addons_ui_U.xml_str(data,"label_def",true); var back_asset = null; var panel_asset = null; var button_asset = null; var label_asset = null; if(back_def != "") { back_asset = this._loadSprite(this.getDefinition(back_def)); } if(panel_def != "") { panel_asset = this._load9SliceSprite(this.getDefinition(panel_def)); } if(button_def != "") { try { button_asset = this._loadButton(this.getDefinition(button_def),false,false); } catch( _g ) { if(((haxe_Exception.caught(_g)) instanceof openfl_errors_Error)) { flixel_FlxG.log.advanced("couldn't loadButton with definition \"" + button_def + "\"",flixel_system_debug_log_LogStyle.NORMAL); button_asset = null; } else { throw _g; } } } if(label_def != "") { try { label_asset = this._loadText(this.getDefinition(label_def)); } catch( _g ) { if(((haxe_Exception.caught(_g)) instanceof openfl_errors_Error)) { flixel_FlxG.log.advanced("couldn't loadText with definition \"" + label_def + "\"",flixel_system_debug_log_LogStyle.NORMAL); label_asset = null; } else { throw _g; } } if(label_asset != null && label != "") { label_asset.set_text(label); } } var asset_list = null; var data_list = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"data")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"data"); while(_g < _g1.length) { var dataNode = _g1[_g]; ++_g; if(data_list == null) { data_list = []; } var namel = new flixel_addons_ui_StrNameLabel(flixel_addons_ui_U.xml_str(dataNode,"name",true),flixel_addons_ui_U.xml_str(dataNode,"label")); data_list.push(namel); } } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"asset")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"asset"); while(_g < _g1.length) { var assetNode = _g1[_g]; ++_g; if(asset_list == null) { asset_list = []; } var def_name = flixel_addons_ui_U.xml_str(assetNode,"def",true); var name = flixel_addons_ui_U.xml_name(assetNode); var asset = null; try { asset = this._loadButton(this.getDefinition(def_name),false); } catch( _g2 ) { if(((haxe_Exception.caught(_g2)) instanceof openfl_errors_Error)) { flixel_FlxG.log.advanced("couldn't loadButton with definition \"" + def_name + "\"",flixel_system_debug_log_LogStyle.NORMAL); } else { throw _g2; } } if(asset != null) { asset.name = name; if(asset_list == null) { asset_list = []; } asset_list.push(asset); } } } var header = new flixel_addons_ui_FlxUIDropDownHeader(120,back_asset,label_asset,button_asset); fud = new flixel_addons_ui_FlxUIDropDownMenu(0,0,data_list,null,header,panel_asset,asset_list); return fud; } ,_loadTest: function(data) { var result = true; var tmp; if(data.nodeType == Xml.Document) { tmp = "Document"; } else { if(data.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } tmp = data.nodeName; } if(tmp == "load_if") { result = this._loadTestSub(data); if(result == false) { return false; } } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"load_if")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"load_if"); while(_g < _g1.length) { var node = _g1[_g]; ++_g; var _this = node; if(_this.nodeType != Xml.Document && _this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } if(_this.children[0] == null) { result = this._loadTestSub(node); if(result == false) { return false; } } } } return result; } ,_loadTestSub: function(node) { var matchValue = flixel_addons_ui_U.xml_bool(node,"is",true); var match = matchValue; var aspect_ratio = flixel_addons_ui_U.xml_f(node,"aspect_ratio",-1); if(aspect_ratio != -1) { match = true; var screen_ratio = js_Boot.__cast(flixel_FlxG.width , Float) / js_Boot.__cast(flixel_FlxG.height , Float); var diff = Math.abs(screen_ratio - aspect_ratio); if(haxe_xml__$Access_HasAttribAccess.resolve(node,"tolerance")) { var tolerance = flixel_addons_ui_U.xml_f(node,"tolerance",0.1); if(diff > tolerance) { match = false; } } else if(haxe_xml__$Access_HasAttribAccess.resolve(node,"tolerance_plus") || haxe_xml__$Access_HasAttribAccess.resolve(node,"tolerance_minus")) { var tolerance_minus = flixel_addons_ui_U.xml_f(node,"tolerance_minus",-1); var tolerance_plus = flixel_addons_ui_U.xml_f(node,"tolerance_plus",-1); if(screen_ratio > aspect_ratio && tolerance_plus != -1) { if(diff > tolerance_plus) { match = false; } } if(screen_ratio < aspect_ratio && tolerance_minus != -1) { if(diff > tolerance_minus) { match = false; } } } if(match != matchValue) { return false; } } var resolution = flixel_addons_ui_U.xml_pt(node,"resolution",null); if(resolution != null) { match = true; var toleranceRes = flixel_addons_ui_U.xml_pt(node,"tolerance",null); if(toleranceRes == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } toleranceRes = new flixel_math_FlxBasePoint(x,y); } var diffX = Math.abs(resolution.x - flixel_FlxG.width); var diffY = Math.abs(resolution.y - flixel_FlxG.height); if(diffX > toleranceRes.x || diffY > toleranceRes.y) { match = false; } if(match != matchValue) { return false; } } var haxeDef = flixel_addons_ui_U.xml_str(node,"haxedef",true,""); var haxeVal = flixel_addons_ui_U.xml_bool(node,"value",true); if(haxeDef != "") { match = true; var defValue = flixel_addons_ui_U.checkHaxedef(haxeDef); match = defValue == haxeVal; if(match != matchValue) { return false; } } var variable = flixel_addons_ui_U.xml_str(node,"variable",false,""); var variableType = flixel_addons_ui_U.xml_str(node,"type",true,"string"); if(variable != "") { match = true; var varData = this.parseVarValue(variable); if(varData != null) { match = this.checkVariable(varData.variable,varData.value,variableType,varData.op); } if(match != matchValue) { return false; } } return true; } ,parseVarValue: function(varString) { var arr = ["==","=","!=","!==","<",">","<=",">="]; var temp; var _g = 0; while(_g < arr.length) { var op = arr[_g]; ++_g; if(varString.indexOf(op) != -1) { temp = varString.split(op); if(temp != null && temp.length == 2) { return { variable : temp[0], value : temp[1], op : op}; } } } return null; } ,_loadLayout: function(data) { var name = flixel_addons_ui_U.xml_str(data,"name",true); var X = this._loadWidth(data,0,"x"); var Y = this._loadHeight(data,0,"y"); var _ui = this.createUI(data); _ui.set_x(X); _ui.set_y(Y); _ui.name = name; return _ui; } ,addToCleanup: function(str) { if(this._assetsToCleanUp == null) { return; } if(this._assetsToCleanUp.indexOf(str) == -1) { this._assetsToCleanUp.push(str); } } ,addToScaledAssets: function(str) { if(this._scaledAssets != null && this._scaledAssets.indexOf(str) == -1) { this._scaledAssets.push(str); } } ,cleanup: function() { var _g = 0; var _g1 = this._assetsToCleanUp; while(_g < _g1.length) { var key = _g1[_g]; ++_g; flixel_FlxG.bitmap.removeByKey(key); } this._assetsToCleanUp = null; this._scaledAssets = null; } ,createUI: function(data) { return new flixel_addons_ui_FlxUI(data,this,this,this._ptr_tongue,this.liveFilePath); } ,_loadTabMenu: function(data) { var back_def_str = flixel_addons_ui_U.xml_str(data,"back_def"); var back_def = this.getDefinition(back_def_str); if(back_def == null) { back_def = data; } back_def = flixel_addons_ui_FlxUI.consolidateData(back_def,data); var back_type = flixel_addons_ui_U.xml_str(data,"back_type",true,"chrome"); var backSprite; switch(back_type) { case "region": backSprite = new flixel_addons_ui_FlxUIRegion(); break; case "sprite": backSprite = this._loadSprite(back_def); break; default: backSprite = this._load9SliceSprite(back_def,"tab_menu"); } var tab_def = null; var stretch_tabs = flixel_addons_ui_U.xml_bool(data,"stretch_tabs",false); var stackToggled = "front"; var stackUntoggled = "back"; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"stacking")) { stackToggled = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"stacking"),"toggled",true,"front"); stackUntoggled = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"stacking"),"untoggled",true,"back"); } var tab_spacing_str = flixel_addons_ui_U.xml_str(data,"spacing",true,""); var tab_spacing = null; if(tab_spacing_str != "") { tab_spacing = this._loadWidth(data,0,"spacing"); } var tab_x = this._loadWidth(data,0,"tab_x"); var tab_y = this._loadHeight(data,0,"tab_y"); var x = tab_x; var y = tab_y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tab_offset = point; var tab_def_str = ""; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"tab")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"tab"); while(_g < _g1.length) { var tabNode = _g1[_g]; ++_g; var temp = flixel_addons_ui_U.xml_str(tabNode,"use_def"); if(temp != "") { tab_def_str = temp; } } if(tab_def_str != "") { tab_def = this.getDefinition(tab_def_str); } else { tab_def = haxe_xml__$Access_NodeAccess.resolve(data,"tab"); } } var list_tabs = []; var name = ""; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"tab")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"tab"); while(_g < _g1.length) { var tab_node = _g1[_g]; ++_g; name = flixel_addons_ui_U.xml_name(tab_node); if(name != "") { var label = flixel_addons_ui_U.xml_str(tab_node,"label"); var context = flixel_addons_ui_U.xml_str(tab_node,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(tab_node,"code",true,""); label = this.getText(label,context,true,code); label = this.getText(label,context,true,code); var tab_info = flixel_addons_ui_FlxUI.consolidateData(tab_node,tab_def); var tab = this._loadButton(tab_info,true,true,"tab_menu"); tab.name = name; list_tabs.push(tab); this._loadTooltip(tab,tab_info); } } } if(list_tabs.length > 0) { if(tab_def == null || !haxe_xml__$Access_HasNodeAccess.resolve(tab_def,"text")) { var _g = 0; while(_g < list_tabs.length) { var t = list_tabs[_g]; ++_g; if(((t) instanceof flixel_addons_ui_FlxUITypedButton)) { var tb = t; tb.label.set_color(16777215); if(((tb.label) instanceof flixel_addons_ui_FlxUIText)) { var labelText = tb.label; labelText.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE); labelText.set_borderColor(0); labelText.set_borderSize(1); labelText.set_borderQuality(1); } } } } if(tab_def == null || !haxe_xml__$Access_HasAttribAccess.resolve(tab_def,"width")) { stretch_tabs = true; } } var tab_stacking = [stackToggled,stackUntoggled]; var fg = new flixel_addons_ui_FlxUITabMenu(backSprite,list_tabs,null,tab_offset,stretch_tabs,tab_spacing,tab_stacking); if(haxe_xml__$Access_HasNodeAccess.resolve(data,"group")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"group"); while(_g < _g1.length) { var group_node = _g1[_g]; ++_g; name = flixel_addons_ui_U.xml_name(group_node); var _ui = new flixel_addons_ui_FlxUI(group_node,fg,this,this._ptr_tongue); if(list_tabs != null && list_tabs.length > 0) { _ui.set_y(_ui.y + list_tabs[0].get_height()); } _ui.name = name; fg.addGroup(_ui); } } return fg; } ,_loadNumericStepper: function(data,setCallback) { if(setCallback == null) { setCallback = true; } var stepSize = flixel_addons_ui_U.xml_f(data,"step",1); var defaultValue = flixel_addons_ui_U.xml_f(data,"value",0); var min = flixel_addons_ui_U.xml_f(data,"min",0); var max = flixel_addons_ui_U.xml_f(data,"max",10); var decimals = flixel_addons_ui_U.xml_i(data,"decimals",0); var percent = flixel_addons_ui_U.xml_bool(data,"percent"); var stack = flixel_addons_ui_U.xml_str(data,"stack",true,""); if(stack == "") { stack = flixel_addons_ui_U.xml_str(data,"stacking",true,""); } stack = stack.toLowerCase(); var stacking; switch(stack) { case "h":case "horizontal":case "horz": stacking = 1; break; case "v":case "vert":case "vertical": stacking = 0; break; default: stacking = 1; } var theText = null; var buttPlus = null; var buttMinus = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) { theText = this._loadThing("text",haxe_xml__$Access_NodeAccess.resolve(data,"text")); } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"plus")) { buttPlus = this._loadThing("button",haxe_xml__$Access_NodeAccess.resolve(data,"plus")); } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"minus")) { buttMinus = this._loadThing("button",haxe_xml__$Access_NodeAccess.resolve(data,"minus")); } var ns = new flixel_addons_ui_FlxUINumericStepper(0,0,stepSize,defaultValue,min,max,decimals,stacking,theText,buttPlus,buttMinus,percent); if(setCallback) { var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } var params1 = params; ns.set_params(params1); } return ns; } ,getResizeRatio: function(data,defaultAxis) { if(defaultAxis == null) { defaultAxis = 1; } var str = flixel_addons_ui_U.xml_str(data,"resize_ratio_x",true); if(str == "") { str = flixel_addons_ui_U.xml_str(data,"resize_ratio_y",true); if(str == "") { var resize_ratio = flixel_addons_ui_U.xml_f(data,"resize_ratio",-1); var x = resize_ratio; var y = defaultAxis; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } else { var x = parseFloat(str); var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } } else { var x = parseFloat(str); var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } } ,_loadButton: function(data,setCallback,isToggle,load_code) { if(load_code == null) { load_code = ""; } if(isToggle == null) { isToggle = false; } if(setCallback == null) { setCallback = true; } var fb = null; var color = this._loadColor(data); var resize_ratio = flixel_addons_ui_U.xml_f(data,"resize_ratio",-1); var resize_point = this._loadCompass(data,"resize_point"); var resize_label = flixel_addons_ui_U.xml_bool(data,"resize_label",false); var label = flixel_addons_ui_U.xml_str(data,"label"); var sprite = null; var toggleSprite = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"sprite")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"sprite"); while(_g < _g1.length) { var spriteNode = _g1[_g]; ++_g; var forToggle = isToggle && flixel_addons_ui_U.xml_bool(spriteNode,"toggle"); if(forToggle) { toggleSprite = this._loadThing("sprite",spriteNode); } else { sprite = this._loadThing("sprite",spriteNode); } } } var context = flixel_addons_ui_U.xml_str(data,"context",true,"ui"); var code = flixel_addons_ui_U.xml_str(data,"code",true,""); label = this.getText(label,context,true,code); var W = this._loadWidth(data,0,"width") | 0; var H = this._loadHeight(data,0,"height") | 0; var params = null; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"param")) { params = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"param"); while(_g < _g1.length) { var param = _g1[_g]; ++_g; if(haxe_xml__$Access_HasAttribAccess.resolve(param,"type") && haxe_xml__$Access_HasAttribAccess.resolve(param,"value")) { var type = haxe_xml__$Access_AttribAccess.resolve(param,"type"); type = type.toLowerCase(); var valueStr = haxe_xml__$Access_AttribAccess.resolve(param,"value"); var value = valueStr; var sort = flixel_addons_ui_U.xml_i(param,"sort",-1); switch(type) { case "bool":case "boolean": var str = new String(valueStr); str = str.toLowerCase(); if(str == "true" || str == "1") { value = true; } else { value = false; } break; case "float": value = parseFloat(valueStr); break; case "color":case "hex": var return_val = flixel_util_FlxColor.fromString(valueStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + valueStr); } value = return_val; break; case "int": value = Std.parseInt(valueStr); break; case "string": value = new String(valueStr); break; } params.push({ sort : sort, value : value}); } } params.sort(flixel_addons_ui_FlxUI.sortParams); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; params[i] = params[i].value; } } var params1 = params; if(sprite == null) { var useDefaultGraphic = haxe_xml__$Access_HasNodeAccess.resolve(data,"graphic") == false; fb = new flixel_addons_ui_FlxUIButton(0,0,label,null,useDefaultGraphic,false,color); var fuib = fb; fuib._autoCleanup = false; } else { var tempGroup = null; if(label != "") { var labelTxt = new flixel_addons_ui_FlxUIText(0,0,80,label,8); labelTxt.setFormat(null,8,3355443,"center"); tempGroup = new flixel_group_FlxTypedSpriteGroup(); tempGroup.add(sprite); tempGroup.add(labelTxt); fb = new flixel_addons_ui_FlxUISpriteButton(0,0,tempGroup); } else { fb = new flixel_addons_ui_FlxUISpriteButton(0,0,sprite); } } fb.resize_ratio = resize_ratio; fb.resize_point = resize_point; fb.autoResizeLabel = resize_label; if(setCallback) { fb.set_params(params1); } if(haxe_xml__$Access_HasNodeAccess.resolve(data,"graphic")) { var blank = flixel_addons_ui_U.xml_bool(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"blank"); if(blank) { fb.loadGraphicSlice9(["","",""],W,H,null,0,resize_ratio); } else { var graphic_names = null; var slice9_names = null; var frames = null; if(isToggle) { graphic_names = ["","","","","",""]; slice9_names = [null,null,null,null,null,null]; } else { graphic_names = ["","",""]; slice9_names = [null,null,null]; } var src_w = flixel_addons_ui_U.xml_i(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"src_w",0); var src_h = flixel_addons_ui_U.xml_i(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"src_h",0); var tileStr = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"tile",true,""); var tile = 0; switch(tileStr) { case "h":case "horizontal": tile = 16; break; case "v":case "vertical": tile = 1; break; case "all":case "both":case "hv":case "true":case "vh": tile = 17; break; } var tile1 = tile; var frame_str = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"graphic"),"frames",true); if(frame_str != "") { frames = []; var arr = frame_str.split(","); var _g = 0; while(_g < arr.length) { var numstr = arr[_g]; ++_g; frames.push(Std.parseInt(numstr)); } } var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"graphic"); while(_g < _g1.length) { var graphicNode = _g1[_g]; ++_g; var graphic_name = flixel_addons_ui_U.xml_name(graphicNode); var image = flixel_addons_ui_U.xml_str(graphicNode,"image"); var slice9 = flixel_util_FlxStringUtil.toIntArray(flixel_addons_ui_U.xml_str(graphicNode,"slice9")); var tileStr = flixel_addons_ui_U.xml_str(graphicNode,"tile",true,""); var tile = 0; switch(tileStr) { case "h":case "horizontal": tile = 16; break; case "v":case "vertical": tile = 1; break; case "all":case "both":case "hv":case "true":case "vh": tile = 17; break; } tile1 = tile; var toggleState = flixel_addons_ui_U.xml_bool(graphicNode,"toggle"); toggleState = toggleState && isToggle; var igfx = flixel_addons_ui_U.gfx(image); switch(graphic_name) { case "all": var tilesTall = isToggle ? 6 : 3; var temp = null; if(src_h != 0) { var temp1 = flixel_addons_ui_U.getBmp(igfx); tilesTall = temp1.height / src_h | 0; } if(image != "") { graphic_names = [this.loadScaledSrc(graphicNode,"image","scale_src",1,tilesTall)]; } slice9_names = [this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[0],"image")]; temp = flixel_addons_ui_U.getBmp(graphic_names[0]); src_w = temp.width; src_h = temp.height / tilesTall | 0; break; case "active":case "highlight":case "hilight":case "hover":case "over": if(image != "") { if(!toggleState) { graphic_names[1] = this.loadScaledSrc(graphicNode,"image","scale_src"); } else { graphic_names[4] = this.loadScaledSrc(graphicNode,"image","scale_src"); } } if(!toggleState) { slice9_names[1] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[1],"image"); } else { slice9_names[4] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[4],"image"); } break; case "down":case "pressed":case "pushed": if(image != "") { if(!toggleState) { graphic_names[2] = this.loadScaledSrc(graphicNode,"image","scale_src"); } else { graphic_names[5] = this.loadScaledSrc(graphicNode,"image","scale_src"); } } if(!toggleState) { slice9_names[2] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[2],"image"); } else { slice9_names[5] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[5],"image"); } break; case "":case "inactive":case "normal":case "up": if(image != "") { if(!toggleState) { graphic_names[0] = this.loadScaledSrc(graphicNode,"image","scale_src"); } else { graphic_names[3] = this.loadScaledSrc(graphicNode,"image","scale_src"); } } if(!toggleState) { slice9_names[0] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[0],"image"); } else { slice9_names[3] = this.load9SliceSprite_scaleSub(slice9,graphicNode,graphic_names[3],"image"); } break; } if(graphic_names[0] != "") { if(graphic_names.length >= 3) { if(graphic_names[1] == "") { graphic_names[1] = graphic_names[0]; } if(graphic_names[2] == "") { graphic_names[2] = graphic_names[1]; } if(graphic_names.length >= 6) { if(graphic_names[3] == "") { graphic_names[3] = graphic_names[0]; } if(graphic_names[4] == "") { graphic_names[4] = graphic_names[1]; } if(graphic_names[5] == "") { graphic_names[5] = graphic_names[2]; } } } } } fb.loadGraphicSlice9(graphic_names,W,H,slice9_names,tile1,resize_ratio,isToggle,src_w,src_h,frames); } } else if(load_code == "tab_menu") { var graphic_names = ["flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png"]; var slice9_tab = flixel_util_FlxStringUtil.toIntArray("6,6,11,11"); var slice9_names = [slice9_tab,slice9_tab,slice9_tab,slice9_tab,slice9_tab,slice9_tab]; if(((fb) instanceof flixel_addons_ui_FlxUIButton)) { var fbui = fb; fbui.loadGraphicSlice9(graphic_names,W,H,slice9_names,0,resize_ratio,isToggle); } else if(((fb) instanceof flixel_addons_ui_FlxUISpriteButton)) { var fbuis = fb; fbuis.loadGraphicSlice9(graphic_names,W,H,slice9_names,0,resize_ratio,isToggle); } else { fb.loadGraphicSlice9(graphic_names,W,H,slice9_names,0,resize_ratio,isToggle); } } else { if(W <= 0) { W = 80; } if(H <= 0) { H = 20; } fb.loadGraphicSlice9(null,W,H,null,0,resize_ratio,isToggle); } if(sprite == null) { if(data != null && haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) { this.formatButtonText(data,fb); } else if(load_code == "tab_menu") { fb.up_color = 16777215; fb.down_color = 16777215; fb.over_color = 16777215; fb.up_toggle_color = 16777215; fb.down_toggle_color = 16777215; fb.over_toggle_color = 16777215; } else { fb.autoCenterLabel(); } } else { fb.autoCenterLabel(); } if(sprite != null && label != "") { if(data != null && haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) { this.formatButtonText(data,fb); } } var text_x = 0; var text_y = 0; if(data.get("text_x") != null) { text_x = this._loadWidth(data,0,"text_x") | 0; } else if(data.get("label_x") != null) { text_x = this._loadWidth(data,0,"label_x") | 0; } if(data.get("text_y") != null) { text_y = this._loadHeight(data,0,"text_y") | 0; } else if(data.get("label_y") != null) { text_y = this._loadHeight(data,0,"label_y") | 0; } if(((fb) instanceof flixel_addons_ui_FlxUISpriteButton)) { var fbs = fb; if(((fbs.label) instanceof flixel_group_FlxTypedSpriteGroup)) { var g = fbs.label; var _g = 0; var _g1 = g.group.members; while(_g < _g1.length) { var sprite1 = _g1[_g]; ++_g; if(((sprite1) instanceof flixel_addons_ui_FlxUIText)) { sprite1.offset.set_x(sprite1.offset.x - text_x); sprite1.offset.set_y(sprite1.offset.y - text_y); break; } } } else { var fh = fbs.label; fh.offset.set_x(fh.offset.x - text_x); var fh = fbs.label; fh.offset.set_y(fh.offset.y - text_y); if(toggleSprite != null) { toggleSprite.offset.set_x(toggleSprite.offset.x - text_x); toggleSprite.offset.set_y(toggleSprite.offset.y - text_y); } } } else { var fbu = fb; var fh = fbu.label; fh.offset.set_x(fh.offset.x - text_x); var fh = fbu.label; fh.offset.set_y(fh.offset.y - text_y); } if(sprite != null && toggleSprite != null) { fb.set_toggle_label(toggleSprite); } if(((fb) instanceof flixel_addons_ui_FlxUITypedButton)) { var fuitb = fb; if(fuitb._assetsToCleanup != null) { var _g = 0; var _g1 = fuitb._assetsToCleanup; while(_g < _g1.length) { var key = _g1[_g]; ++_g; this.addToCleanup(key); } } } return fb; } ,_loadRegion: function(data) { var bounds = this.calcMaxMinSize(data); var w = this._loadWidth(data) | 0; var h = this._loadHeight(data) | 0; if(bounds != null) { var pt = flixel_addons_ui_U.conformToBounds(new openfl_geom_Point(w,h),bounds); w = pt.x | 0; h = pt.y | 0; } var vis = flixel_addons_ui_U.xml_bool(data,"visible",true); var reg = new flixel_addons_ui_FlxUIRegion(0,0,w,h); reg.set_visible(vis); return reg; } ,_load9SliceSprite: function(data,load_code) { if(load_code == null) { load_code = ""; } var src = ""; var f9s = null; var resize = this.getResizeRatio(data); var color = this._loadColor(data); var resize_ratio = resize.x; var resize_point = this._loadCompass(data,"resize_point"); var resize_ratio_axis = resize.y | 0; var bounds = this.calcMaxMinSize(data); var data1 = data; var str = ""; if(data1.get("src") != null) { str = data1.get("src"); if(str == "" || str == null) { str = ""; } else { str = flixel_addons_ui_U.gfx(str); try { if(!openfl_utils_Assets.exists(str,"IMAGE")) { throw haxe_Exception.thrown("couldn't load bmp \"" + "src" + "\""); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg = _g1; flixel_FlxG.log.advanced("FlxUI: U.xml_gfx() : " + msg,flixel_system_debug_log_LogStyle.ERROR,true); } else { throw _g; } } } } src = str; var hasScaledSrc = haxe_xml__$Access_HasNodeAccess.resolve(data,"scale_src"); if(hasScaledSrc) { var origSrc = src; src = this.loadScaledSrc(data,"src","scale_src"); if(src != origSrc) { this.addToCleanup(origSrc); } } if(src == "") { src = null; } if(src == null) { if(load_code == "tab_menu") { src = "flixel/flixel-ui/img/chrome_flat.png"; } } var rect_w = this._loadWidth(data) | 0; var rect_h = this._loadHeight(data) | 0; if(bounds != null) { if(rect_w < bounds.min_width) { rect_w = bounds.min_width | 0; } else if(rect_w > bounds.max_width) { rect_w = bounds.max_width; } if(rect_h < bounds.min_height) { rect_h = bounds.min_height | 0; } else if(rect_h > bounds.max_height) { rect_h = bounds.max_height | 0; } } if(rect_w == 0 || rect_h == 0) { return null; } var rc = new openfl_geom_Rectangle(0,0,rect_w,rect_h); var slice9 = flixel_util_FlxStringUtil.toIntArray(flixel_addons_ui_U.xml_str(data,"slice9")); var srcId = ""; var srcGraphic = src; if(hasScaledSrc) { slice9 = this.load9SliceSprite_scaleSub(slice9,data,src); srcId = src; srcGraphic = flixel_FlxG.bitmap._cache.h[src]; } var smooth = flixel_addons_ui_U.xml_bool(data,"smooth",false); var tileStr = flixel_addons_ui_U.xml_str(data,"tile",true,""); var tile = 0; switch(tileStr) { case "h":case "horizontal": tile = 16; break; case "v":case "vertical": tile = 1; break; case "all":case "both":case "hv":case "true":case "vh": tile = 17; break; } var tile1 = tile; f9s = new flixel_addons_ui_FlxUI9SliceSprite(0,0,srcGraphic,rc,slice9,tile1,smooth,srcId,resize_ratio,resize_point,resize_ratio_axis,false,color); return f9s; } ,load9SliceSprite_scaleSub: function(slice9,data,src,srcString) { if(srcString == null) { srcString = "src"; } var data1 = data; var str = ""; if(data1.get(srcString) != null) { str = data1.get(srcString); if(str == "" || str == null) { str = ""; } else { str = flixel_addons_ui_U.gfx(str); try { if(!openfl_utils_Assets.exists(str,"IMAGE")) { throw haxe_Exception.thrown("couldn't load bmp \"" + srcString + "\""); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg = _g1; flixel_FlxG.log.advanced("FlxUI: U.xml_gfx() : " + msg,flixel_system_debug_log_LogStyle.ERROR,true); } else { throw _g; } } } } var origSrc = str; if(src == origSrc) { return slice9; } var srcAsset = flixel_FlxG.bitmap._cache.h[src] != null ? flixel_FlxG.bitmap._cache.h[src].bitmap : null; if(srcAsset == null) { srcAsset = openfl_utils_Assets.getBitmapData(origSrc); } var origAsset = openfl_utils_Assets.getBitmapData(origSrc,false); var srcScaleFactorX = srcAsset.width / origAsset.width; var srcScaleFactorY = srcAsset.height / origAsset.height; if(Math.abs(1.0 - srcScaleFactorX) <= 0.001 && Math.abs(1.0 - srcScaleFactorY) <= 0.001) { return slice9; } if(slice9 != null) { slice9[0] = slice9[0] * srcScaleFactorX | 0; slice9[1] = slice9[1] * srcScaleFactorY | 0; var widthDiff = origAsset.width - slice9[2]; var heightDiff = origAsset.height - slice9[3]; widthDiff = widthDiff * srcScaleFactorX | 0; heightDiff = heightDiff * srcScaleFactorY | 0; slice9[2] = srcAsset.width - widthDiff | 0; slice9[3] = srcAsset.height - heightDiff | 0; } return slice9; } ,_loadTileRule: function(data) { var tileStr = flixel_addons_ui_U.xml_str(data,"tile",true,""); var tile = 0; switch(tileStr) { case "h":case "horizontal": tile = 16; break; case "v":case "vertical": tile = 1; break; case "all":case "both":case "hv":case "true":case "vh": tile = 17; break; } return tile; } ,_loadBox: function(data) { var fs = null; var thickness = this._loadWidth(data,1,"thickness") | 0; var bounds = this.calcMaxMinSize(data); if(bounds == null) { bounds = { min_width : -Infinity, min_height : -Infinity, max_width : Infinity, max_height : Infinity}; } var W = this._loadWidth(data) | 0; var H = this._loadHeight(data) | 0; if(bounds != null) { if(W < bounds.min_width) { W = bounds.min_width | 0; } else if(W > bounds.max_width) { W = bounds.max_width | 0; } if(H < bounds.min_height) { H = bounds.max_height | 0; } else if(H > bounds.max_height) { H = bounds.max_height | 0; } } var cstr = flixel_addons_ui_U.xml_str(data,"color",true,"0xff000000"); var C = 0; if(cstr != "") { var return_val = flixel_util_FlxColor.fromString(cstr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + cstr); } C = return_val; } fs = new flixel_addons_ui_FlxUISprite(0,0); var key = W + "x" + H + ":" + C + ":" + thickness; if(flixel_FlxG.bitmap._cache.h[key] != null) { fs.loadGraphic(key); } else { fs.makeGraphic(W,H,C,false,key); var r = new openfl_geom_Rectangle(thickness,thickness,W - thickness * 2,H - thickness * 2); fs.graphic.bitmap.fillRect(r,0); } return fs; } ,_loadLine: function(data) { var axis = flixel_addons_ui_U.xml_str(data,"axis",true,"horizontal"); var thickness = this._loadWidth(data,-1,"thickness") | 0; var bounds = this.calcMaxMinSize(data); if(bounds == null) { bounds = { min_width : 1, min_height : 1, max_width : Infinity, max_height : Infinity}; } switch(axis) { case "h":case "horizontal":case "horz": bounds.max_height = thickness; bounds.min_height = thickness; break; case "v":case "vert":case "vertical": bounds.max_width = thickness; bounds.min_width = thickness; break; } var W = this._loadWidth(data) | 0; var H = this._loadHeight(data) | 0; if(bounds != null) { if(W < bounds.min_width) { W = bounds.min_width | 0; } else if(W > bounds.max_width) { W = bounds.max_width | 0; } if(H < bounds.min_height) { H = bounds.max_height | 0; } else if(H > bounds.max_height) { H = bounds.max_height | 0; } } var cstr = flixel_addons_ui_U.xml_str(data,"color",true,"0xff000000"); var C = 0; if(cstr != "") { var return_val = flixel_util_FlxColor.fromString(cstr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + cstr); } C = return_val; } var lineAxis = axis == "horizontal" ? flixel_addons_ui_LineAxis.HORIZONTAL : flixel_addons_ui_LineAxis.VERTICAL; var lineLength = lineAxis == flixel_addons_ui_LineAxis.HORIZONTAL ? W : H; var lineThickness = thickness != -1 ? thickness : lineAxis == flixel_addons_ui_LineAxis.HORIZONTAL ? H : W; var fl = new flixel_addons_ui_FlxUILine(0,0,lineAxis,lineLength,lineThickness,C); return fl; } ,_loadBar: function(data) { var fb = null; var style = { filledColors : null, emptyColors : null, chunkSize : null, gradRotation : null, filledColor : null, emptyColor : null, borderColor : null, filledImgSrc : "", emptyImgSrc : ""}; var W = this._loadWidth(data,-1) | 0; var H = this._loadHeight(data,-1) | 0; var direction = flixel_addons_ui_U.xml_str(data,"fill_direction",true); var fillDir = flixel_ui_FlxBarFillDirection.TOP_TO_BOTTOM; switch(direction) { case "bottom_to_top": fillDir = flixel_ui_FlxBarFillDirection.BOTTOM_TO_TOP; break; case "horizontal_inside_out": fillDir = flixel_ui_FlxBarFillDirection.HORIZONTAL_INSIDE_OUT; break; case "horizontal_outside_in": fillDir = flixel_ui_FlxBarFillDirection.HORIZONTAL_OUTSIDE_IN; break; case "left_to_right": fillDir = flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT; break; case "right_to_left": fillDir = flixel_ui_FlxBarFillDirection.RIGHT_TO_LEFT; break; case "top_to_bottom": fillDir = flixel_ui_FlxBarFillDirection.TOP_TO_BOTTOM; break; case "vertical_inside_out": fillDir = flixel_ui_FlxBarFillDirection.VERTICAL_INSIDE_OUT; break; case "vertical_outside_in": fillDir = flixel_ui_FlxBarFillDirection.VERTICAL_OUTSIDE_IN; break; default: fillDir = flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT; } var parentRefStr = flixel_addons_ui_U.xml_str(data,"parent_ref",true); var parentRef = parentRefStr != "" ? this.getAsset(parentRefStr) : null; var variableName = flixel_addons_ui_U.xml_str(data,"variable"); var value = flixel_addons_ui_U.xml_f(data,"value",-1); var min = flixel_addons_ui_U.xml_f(data,"min",0); var max = flixel_addons_ui_U.xml_f(data,"max",100); if(value == -1) { value = max; } style.borderColor = flixel_addons_ui_U.xml_color(data,"border_color"); var showBorder = style.borderColor != null; style.filledColor = flixel_addons_ui_U.xml_color(data,"filled_color"); if(style.filledColor == null) { style.filledColor = flixel_addons_ui_U.xml_color(data,"color"); } style.emptyColor = flixel_addons_ui_U.xml_color(data,"empty_color"); style.filledColors = flixel_addons_ui_U.xml_colorArray(data,"filled_colors"); style.emptyColors = flixel_addons_ui_U.xml_colorArray(data,"empty_colors"); if(style.filledColors == null) { style.filledColors = flixel_addons_ui_U.xml_colorArray(data,"colors"); } style.filledImgSrc = this.loadScaledSrc(data,"src_filled"); style.emptyImgSrc = this.loadScaledSrc(data,"src_empty"); if(style.filledImgSrc == "") { style.filledImgSrc = this.loadScaledSrc(data,"src"); } style.chunkSize = flixel_addons_ui_U.xml_i(data,"chunk_size",1); style.gradRotation = flixel_addons_ui_U.xml_i(data,"rotation",90); if(style.filledImgSrc == "" && style.filledColor == null && style.filledColors == null) { style.filledColor = -65536; } if(W == -1 && H == -1) { fb = new flixel_addons_ui_FlxUIBar(0,0,fillDir,100,10,parentRef,variableName,min,max,showBorder); } else { fb = new flixel_addons_ui_FlxUIBar(0,0,fillDir,W,H,parentRef,variableName,min,max,showBorder); } fb.set_style(style); fb.resize(fb.barWidth,fb.barHeight); fb.set_value(value); return fb; } ,_loadSprite: function(data) { var src = ""; var fs = null; src = this.loadScaledSrc(data); var bounds = this.calcMaxMinSize(data); var resize = this.getResizeRatio(data,-1); var resize_ratio = resize.x; var resize_ratio_axis = resize.y | 0; var resize_point = this._loadCompass(data,"resize_point"); var W = this._loadWidth(data,-1) | 0; var H = this._loadHeight(data,-1) | 0; if(bounds != null) { if(W < bounds.min_width) { W = bounds.min_width | 0; } else if(W > bounds.max_width) { W = bounds.max_width | 0; } if(H < bounds.min_height) { H = bounds.max_height | 0; } else if(H > bounds.max_height) { H = bounds.max_height | 0; } } if(src != "") { if(W == -1 && H == -1) { fs = new flixel_addons_ui_FlxUISprite(0,0,src); } else { if(resize_ratio != -1 && (W == -1 || H == -1)) { if(resize_ratio_axis == -1) { if(W == -1) { resize_ratio_axis = 0; } if(H == -1) { resize_ratio_axis = 1; } } if(resize_ratio_axis == 1) { H = W * (1 / resize_ratio); } else if(resize_ratio_axis == 0) { W = H * (1 / resize_ratio); } } var smooth = this.loadSmooth(data,true); fs = new flixel_addons_ui_FlxUISprite(0,0,flixel_addons_ui_U.loadScaledImage(flixel_addons_ui_U.xml_str(data,"src"),W,H,smooth)); } } else { var cstr = flixel_addons_ui_U.xml_str(data,"color"); var C = 0; if(cstr != "") { var return_val = flixel_util_FlxColor.fromString(cstr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + cstr); } C = return_val; } fs = new flixel_addons_ui_FlxUISprite(0,0); fs.makeGraphic(W,H,C); } fs.set_resize_point(resize_point); fs.set_resize_ratio(resize_ratio); fs.resize_ratio_axis = resize_ratio_axis; return fs; } ,loadSmooth: function(scaleNode,defaultValue) { var defaultStr = defaultValue ? "true" : "false"; var smoothStr = flixel_addons_ui_U.xml_str(scaleNode,"smooth",true,defaultStr); if(smoothStr == "") { smoothStr = flixel_addons_ui_U.xml_str(scaleNode,"antialias",true,defaultStr); } return flixel_addons_ui_U.boolify(smoothStr); } ,loadScaledSrc: function(data,attName,scaleName,tilesWide,tilesTall) { if(tilesTall == null) { tilesTall = 1; } if(tilesWide == null) { tilesWide = 1; } if(scaleName == null) { scaleName = "scale"; } if(attName == null) { attName = "src"; } var src = flixel_addons_ui_U.xml_str(data,attName); if(haxe_xml__$Access_HasNodeAccess.resolve(data,scaleName)) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,scaleName); while(_g < _g1.length) { var scaleNode = _g1[_g]; ++_g; var ratio = flixel_addons_ui_U.xml_f(scaleNode,"screen_ratio",-1); var tolerance = flixel_addons_ui_U.xml_f(scaleNode,"tolerance",0.1); var actualRatio = flixel_FlxG.width / flixel_FlxG.height; if(ratio < 0 || ratio > 0 && Math.abs(ratio - actualRatio) <= tolerance) { var suffix = flixel_addons_ui_U.xml_str(scaleNode,"suffix"); var srcSuffix = src + suffix; var testAsset = null; var scale_ = -1; var smooth = this.loadSmooth(scaleNode,true); var to_height = this._loadHeight(scaleNode,-1,"to_height"); if(to_height != -1) { var testAsset1 = flixel_addons_ui_U.getBmp(flixel_addons_ui_U.gfx(src)); if(testAsset1 != null) { scale_ = to_height / testAsset1.height; } } else { scale_ = this._loadScale(scaleNode,-1); if(scale_ == -1) { scale_ = this._loadScale(scaleNode,-1,"value"); } } var scale_x = scale_ != -1 ? scale_ : this._loadScaleX(scaleNode,-1); var scale_y = scale_ != -1 ? scale_ : this._loadScaleY(scaleNode,-1); var sw = 0; var sh = 0; if(scale_x > 0 && scale_y > 0) { if(scale_x <= 0) { scale_x = 1.0; } if(scale_y <= 0) { scale_y = 1.0; } sw = this._loadWidth(scaleNode,-1); sh = this._loadHeight(scaleNode,-1); if(sw == -1 || sh == -1) { testAsset = openfl_utils_Assets.getBitmapData(flixel_addons_ui_U.gfx(src)); sw = testAsset.width; sh = testAsset.height; } sw *= scale_x; sh *= scale_y; } else { sw = this._loadWidth(scaleNode,-1); sh = this._loadHeight(scaleNode,-1); } if(sw != 0 && sh != 0) { if(tilesTall > 1 || tilesWide > 1) { testAsset = openfl_utils_Assets.getBitmapData(flixel_addons_ui_U.gfx(src)); var str = flixel_addons_ui_U.scaleAndStoreTileset(flixel_addons_ui_U.gfx(srcSuffix),scale_y,testAsset.width / tilesWide | 0,testAsset.height / tilesTall | 0,sw | 0,sh / tilesTall | 0,smooth); this.addToScaledAssets(str); return str; } else { var str1 = flixel_addons_ui_U.loadScaledImage(srcSuffix,sw,sh,smooth); this.addToScaledAssets(str1); return str1; } } break; } } } var data1 = data; var str = ""; if(data1.get(attName) != null) { str = data1.get(attName); if(str == "" || str == null) { str = ""; } else { str = flixel_addons_ui_U.gfx(str); try { if(!openfl_utils_Assets.exists(str,"IMAGE")) { throw haxe_Exception.thrown("couldn't load bmp \"" + attName + "\""); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg = _g1; flixel_FlxG.log.advanced("FlxUI: U.xml_gfx() : " + msg,flixel_system_debug_log_LogStyle.ERROR,true); } else { throw _g; } } } } return str; } ,thisWidth: function() { return flixel_FlxG.width; } ,thisHeight: function() { return flixel_FlxG.height; } ,_getAnchorPos: function(thing,axis,str) { switch(str) { case "": return 0; case "center": if(axis == "x") { return this.screenWidth() / 2; } else if(axis == "y") { return this.screenHeight() / 2; } break; case "bottom":case "down": return this.screenHeight(); case "left": return 0; case "right": return this.screenWidth(); case "top":case "up": return 0; default: var perc = flixel_addons_ui_U.perc_to_float(str); if(!isNaN(perc)) { if(axis == "x") { return perc * this.screenWidth(); } else if(axis == "y") { return perc * this.screenHeight(); } } else { var r = new EReg("[\\w]+\\.[\\w]+",""); if(r.match(str)) { var wh = ""; if(axis == "x") { wh = "w"; } if(axis == "y") { wh = "h"; } var assetValue = this._getStretch(1,wh,str); return assetValue; } } } return 0; } ,getRound: function(node,defaultStr) { if(defaultStr == null) { defaultStr = ""; } var roundStr = flixel_addons_ui_U.xml_str(node,"round",true,defaultStr); switch(roundStr) { case "1":case "ceil":case "ceiling":case "up": return flixel_addons_ui_Rounding.Ceil; case "-1":case "down":case "floor": return flixel_addons_ui_Rounding.Floor; case "0":case "round":case "true": return flixel_addons_ui_Rounding.Round; } return flixel_addons_ui_Rounding.None; } ,doRound: function(f,round) { switch(round._hx_index) { case 0: return Math.floor(f); case 1: return Math.ceil(f); case 2: return Math.round(f); case 3: return f; } } ,calcMaxMinSize: function(data,width,height) { var min_w = 0; var min_h = 0; var max_w = Infinity; var max_h = Infinity; var temp_min_w = 0; var temp_min_h = 0; var temp_max_w = Infinity; var temp_max_h = Infinity; var round = flixel_addons_ui_Rounding.None; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"exact_size")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"exact_size"); while(_g < _g1.length) { var exactNode = _g1[_g]; ++_g; var exact_w_str = flixel_addons_ui_U.xml_str(exactNode,"width"); var exact_h_str = flixel_addons_ui_U.xml_str(exactNode,"height"); round = this.getRound(exactNode); min_w = this.doRound(this._getDataSize("w",exact_w_str,0),round); min_h = this.doRound(this._getDataSize("h",exact_h_str,0),round); max_w = this.doRound(min_w,round); max_h = this.doRound(min_h,round); } } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"min_size")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"min_size"); while(_g < _g1.length) { var minNode = _g1[_g]; ++_g; var min_w_str = flixel_addons_ui_U.xml_str(minNode,"width"); var min_h_str = flixel_addons_ui_U.xml_str(minNode,"height"); round = this.getRound(minNode); temp_min_w = this.doRound(this._getDataSize("w",min_w_str,0),round); temp_min_h = this.doRound(this._getDataSize("h",min_h_str,0),round); if(temp_min_w > min_w) { min_w = temp_min_w; } if(temp_min_h > min_h) { min_h = temp_min_h; } } } else if(haxe_xml__$Access_HasNodeAccess.resolve(data,"max_size")) { var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"max_size"); while(_g < _g1.length) { var maxNode = _g1[_g]; ++_g; var max_w_str = flixel_addons_ui_U.xml_str(maxNode,"width"); var max_h_str = flixel_addons_ui_U.xml_str(maxNode,"height"); round = this.getRound(maxNode); temp_max_w = this.doRound(this._getDataSize("w",max_w_str,Infinity),round); temp_max_h = this.doRound(this._getDataSize("h",max_h_str,Infinity),round); if(temp_max_w < max_w) { max_w = temp_max_w; } if(temp_max_h < max_h) { max_h = temp_max_h; } } } else { return null; } if(width != null) { if(width > min_w) { min_w = width; } if(width < max_w) { max_w = width; } } if(height != null) { if(height > min_h) { min_h = height; } if(height < max_h) { max_h = height; } } if(max_w <= 0) { max_w = Infinity; } if(max_h <= 0) { max_h = Infinity; } return { min_width : min_w, min_height : min_h, max_width : max_w, max_height : max_h}; } ,_getDataSize: function(target,str,default_) { if(default_ == null) { default_ = 0; } if(flixel_addons_ui_U.isStrNum(str)) { return parseFloat(str); } var percf = flixel_addons_ui_U.perc_to_float(str); if(!isNaN(percf)) { switch(target) { case "h":case "height": return this.screenHeight() * percf; case "scale":case "scale_x":case "scale_y": return percf; case "w":case "width": return this.screenWidth() * percf; } } else { if(str.indexOf("stretch:") == 0) { str = StringTools.replace(str,"stretch:",""); var arr = str.split(","); var stretch_0 = this._getStretch(0,target,arr[0]); var stretch_1 = this._getStretch(1,target,arr[1]); if(stretch_0 != -1 && stretch_1 != -1) { return stretch_1 - stretch_0; } else { return default_; } } else if(str.indexOf("asset:") == 0) { str = StringTools.replace(str,"asset:",""); var assetValue = this._getStretch(1,target,str); return assetValue; } else { var r = new EReg("[\\w]+\\.[\\w]+",""); if(r.match(str)) { var assetValue = this._getStretch(1,target,str); return assetValue; } } var ptStr = ""; if(str.indexOf("pt") == str.length - 2) { ptStr = HxOverrides.substr(str,0,str.length - 2); } if(ptStr != "" && flixel_addons_ui_U.isStrNum(ptStr)) { var tempNum = parseFloat(ptStr); switch(target) { case "h":case "height": return this._pointY * tempNum; case "w":case "width": return this._pointX * tempNum; } } } return default_; } ,_getOperation: function(str) { var list = ["+","-","*","/","^"]; var op = ""; var besti = Infinity; var _g = 0; while(_g < list.length) { var item = list[_g]; ++_g; var i = str.indexOf(item); if(i != -1) { if(i < besti) { besti = i; op = item; } } } var hasPoint = false; if(op != "") { if(str.indexOf(op) != -1) { var opindex = str.indexOf(op); if(opindex != str.length - 1) { var firstBit = HxOverrides.substr(str,0,opindex); var secondBit = HxOverrides.substr(str,opindex + 1,str.length - (opindex + 1)); var f = 0; var ptIndex = secondBit.indexOf("pt"); if(ptIndex != -1 && ptIndex == secondBit.length - 2) { var sansPt = StringTools.replace(secondBit,"pt",""); f = parseFloat(sansPt); hasPoint = true; } else { f = parseFloat(secondBit); } if(isNaN(f)) { f = this.getAssetProperty(1,"",secondBit); } if(f == 0 && secondBit != "0") { return null; } else { return [firstBit,op,f,hasPoint]; } } } } return null; } ,_doOperation: function(value,op,operand) { switch(op) { case "*": return value * operand; case "+": return value + operand; case "-": return value - operand; case "/": return value / operand; case "^": return Math.pow(value,operand); } return value; } ,_getStretch: function(index,target,str) { var arr = null; var op = ""; var operand = 0; var hasPoint = false; arr = this._getOperation(str); if(arr != null) { str = arr[0]; op = arr[1]; operand = arr[2]; hasPoint = arr[3]; if(hasPoint) { switch(target) { case "h":case "height": operand *= this._pointY; break; case "w":case "width": operand *= this._pointX; break; default: operand *= this._pointY; } } } var return_val = this.getAssetProperty(index,target,str); if(return_val != -1 && op != "") { return_val = this._doOperation(return_val,op,operand); } return return_val; } ,getAssetProperty: function(index,target,str) { var prop = ""; if(str.indexOf(".") != -1) { var arr = null; arr = str.split("."); str = arr[0]; prop = arr[1]; } var other = this.getAsset(str); var return_val = 0; if(other == null) { switch(str) { case "bottom":case "down": return_val = this.screenHeight(); break; case "left": return_val = 0; break; case "right": return_val = this.screenWidth(); break; case "top":case "up": return_val = 0; break; default: if(flixel_addons_ui_U.isStrNum(str)) { return_val = parseFloat(str); } else { return_val = -1; } } } else { switch(target) { case "h":case "height": if(prop == "") { if(index == 0) { return_val = other.y + other.get_height(); } if(index == 1) { return_val = other.y; } } else { switch(prop) { case "center": return_val = other.y + other.get_height() / 2; break; case "bottom":case "down": return_val = other.y + other.get_height(); break; case "halfheight": return_val = other.get_height() / 2; break; case "halfwidth": return_val = other.get_width() / 2; break; case "height": return_val = other.get_height(); break; case "right": return_val = other.x + other.get_width(); break; case "width": return_val = other.get_width(); break; case "left":case "x": return_val = other.x; break; case "top":case "up":case "y": return_val = other.y; break; } } break; case "w":case "width": if(prop == "") { if(index == 0) { return_val = other.x + other.get_width(); } if(index == 1) { return_val = other.x; } } else { switch(prop) { case "center": return_val = other.x + other.get_width() / 2; break; case "bottom":case "down": return_val = other.y + other.get_height(); break; case "halfheight": return_val = other.get_height() / 2; break; case "halfwidth": return_val = other.get_width() / 2; break; case "height": return_val = other.get_height(); break; case "right": return_val = other.x + other.get_width(); break; case "width": return_val = other.get_width(); break; case "left":case "x": return_val = other.x; break; case "top":case "up":case "y": return_val = other.y; break; } } break; default: switch(prop) { case "centerx": return_val = other.x + other.get_width() / 2; break; case "centery": return_val = other.y + other.get_height() / 2; break; case "bottom":case "down": return_val = other.y + other.get_height(); break; case "halfheight": return_val = other.get_height() / 2; break; case "halfwidth": return_val = other.get_width() / 2; break; case "height": return_val = other.get_height(); break; case "right": return_val = other.x + other.get_width(); break; case "width": return_val = other.get_width(); break; case "left":case "x": return_val = other.x; break; case "top":case "up":case "y": return_val = other.y; break; } } } return return_val; } ,_loadCursor: function(data) { if(haxe_xml__$Access_HasNodeAccess.resolve(data,"list")) { if(this.cursorLists == null) { this.cursorLists = []; } var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"list"); while(_g < _g1.length) { var lNode = _g1[_g]; ++_g; var ids = flixel_addons_ui_U.xml_str(lNode,"ids"); var arr = ids.split(","); if(arr != null && arr.length > 0) { var list = []; var _g2 = 0; while(_g2 < arr.length) { var str = arr[_g2]; ++_g2; var widget = this.getAsset(str); if(widget != null) { list.push(widget); } } this.cursorLists.push(list); } } } } ,_loadPosition: function(data,thing) { var X = this._loadWidth(data,0,"x"); var Y = this._loadHeight(data,0,"y"); var ctrX = flixel_addons_ui_U.xml_bool(data,"center_x"); var ctrY = flixel_addons_ui_U.xml_bool(data,"center_y"); var center_on = flixel_addons_ui_U.xml_str(data,"center_on"); var center_on_x = flixel_addons_ui_U.xml_str(data,"center_on_x"); var center_on_y = flixel_addons_ui_U.xml_str(data,"center_on_y"); var anchor_x_str = ""; var anchor_y_str = ""; var anchor_x = 0; var anchor_y = 0; var anchor_x_flush = ""; var anchor_y_flush = ""; if(haxe_xml__$Access_HasNodeAccess.resolve(data,"anchor")) { anchor_x_str = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x"); anchor_y_str = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y"); var rounding = this.getRound(haxe_xml__$Access_NodeAccess.resolve(data,"anchor")); anchor_x = this._getAnchorPos(thing,"x",anchor_x_str); anchor_y = this._getAnchorPos(thing,"y",anchor_y_str); anchor_x = this.doRound(anchor_x,rounding); anchor_y = this.doRound(anchor_y,rounding); anchor_x_flush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"x-flush",true); anchor_y_flush = flixel_addons_ui_U.xml_str(haxe_xml__$Access_NodeAccess.resolve(data,"anchor"),"y-flush",true); } if(anchor_x_str != "" || anchor_y_str != "") { switch(anchor_x_flush) { case "center": anchor_x -= thing.get_width() / 2; break; case "left": break; case "right": anchor_x -= thing.get_width(); break; } switch(anchor_y_flush) { case "bottom":case "down": anchor_y -= thing.get_height(); break; case "center": anchor_y -= thing.get_height() / 2; break; case "top":case "up": break; } if(anchor_x_str != "") { thing.set_x(anchor_x); } if(anchor_y_str != "") { thing.set_y(anchor_y); } } if(ctrX || ctrY) { var X1 = ctrX; var Y1 = ctrY; if(Y1 == null) { Y1 = true; } if(X1 == null) { X1 = true; } if(X1) { thing.set_x((flixel_FlxG.width - thing.get_width()) / 2); } if(Y1) { thing.set_y((flixel_FlxG.height - thing.get_height()) / 2); } } if(center_on != "") { var other = this.getAsset(center_on); if(other != null) { var fb1 = js_Boot.__cast(other , flixel_FlxObject); var fb2 = js_Boot.__cast(thing , flixel_FlxObject); fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2); fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2); } } else { if(center_on_x != "") { var other = this.getAsset(center_on_x); if(other != null) { var fb1 = js_Boot.__cast(other , flixel_FlxObject); var fb2 = js_Boot.__cast(thing , flixel_FlxObject); var centerX = true; var centerY = false; if(centerY == null) { centerY = true; } if(centerX == null) { centerX = true; } if(centerX) { fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2); } if(centerY) { fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2); } } } if(center_on_y != "") { var other = this.getAsset(center_on_y); if(other != null) { var fb1 = js_Boot.__cast(other , flixel_FlxObject); var fb2 = js_Boot.__cast(thing , flixel_FlxObject); var centerX = false; var centerY = true; if(centerY == null) { centerY = true; } if(centerX == null) { centerX = true; } if(centerX) { fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2); } if(centerY) { fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2); } } } } var X1 = X; var Y1 = Y; if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } thing.set_x(thing.x + X1); thing.set_y(thing.y + Y1); } ,_loadBorder: function(data) { var borderDef = flixel_addons_ui_BorderDef.fromXML(data); var round = this.getRound(data,"floor"); var dataSize = this._getDataSize("h",flixel_addons_ui_U.xml_str(data,"border_size"),1); var border_size = this.doRound(dataSize,round) | 0; borderDef.size = border_size; return borderDef; } ,_loadColor: function(data,colorName,_default) { if(_default == null) { _default = -1; } if(colorName == null) { colorName = "color"; } var colorStr = flixel_addons_ui_U.xml_str(data,colorName); var tmp; if(colorStr == "") { var _this = data; if(_this.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } tmp = _this.nodeName == colorName; } else { tmp = false; } if(tmp) { colorStr = flixel_addons_ui_U.xml_str(data,"value"); } var color = _default; if(colorStr != "") { var return_val = flixel_util_FlxColor.fromString(colorStr); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + colorStr); } color = return_val; } return color; } ,_loadFontDef: function(data) { var fd = flixel_addons_ui_FontDef.fromXML(data); var fontSize = this._loadHeight(data,8,"size") | 0; fd.format.size = flixel_addons_ui_FlxUI.fontSize(fd.file,fontSize); fd.set_size(fontSize); return fd; } ,_loadFontFace: function(data) { var fontFace = flixel_addons_ui_U.xml_str(data,"font"); var fontStyle = flixel_addons_ui_U.xml_str(data,"style"); var the_font = null; if(fontFace != "") { the_font = flixel_addons_ui_FlxUI.font(fontFace,fontStyle); } return the_font; } ,_onFinishLoad: function() { if(this._ptr != null) { this._ptr.getEvent("finish_load",this,null); } } ,getText: function(flag,context,safe,code) { if(code == null) { code = ""; } if(safe == null) { safe = true; } if(context == null) { context = "data"; } var str = ""; if(this._ptr_tongue != null) { str = this._ptr_tongue.get(flag,context,safe); return this.formatFromCode(str,code); } else if(this.getTextFallback != null) { str = this.getTextFallback(flag,context,safe); return this.formatFromCode(str,code); } return flag; } ,formatFromCode: function(str,code) { switch(code) { case "fu": return flixel_addons_ui_U.FU(str); case "fu_": return flixel_addons_ui_U.FU_(str); case "l": return str.toLowerCase(); case "u": return str.toUpperCase(); } return str; } ,formatButtonText: function(data,button) { if(data != null && haxe_xml__$Access_HasNodeAccess.resolve(data,"text")) { var textNode = haxe_xml__$Access_NodeAccess.resolve(data,"text"); var use_def = flixel_addons_ui_U.xml_str(textNode,"use_def",true); var text_def = null; if(use_def != "") { text_def = this.getDefinition(use_def); } var info = flixel_addons_ui_FlxUI.consolidateData(textNode,text_def); var the_font = this._loadFontFace(info); var size = this._loadHeight(info,8,"size","floor") | 0; var color = this._loadColor(info); var labelWidth = flixel_addons_ui_U.xml_f(info,"width"); var border = this._loadBorder(info); var align = flixel_addons_ui_U.xml_str(info,"align",true); if(align == "") { align = null; } var the_label = null; var fb = null; var fsb = null; var ifb = null; if(((button) instanceof flixel_addons_ui_FlxUICheckBox) == false) { ifb = button; if(align == "" || align == null) { align = "center"; } } else { var cb = button; ifb = cb.button; align = "left"; } if(ifb != null) { if(((ifb) instanceof flixel_addons_ui_FlxUIButton)) { fb = ifb; the_label = fb.label; } else if(((ifb) instanceof flixel_addons_ui_FlxUISpriteButton)) { fsb = ifb; if(((fsb.label) instanceof flixel_text_FlxText)) { the_label = fsb.label; } else if(((fsb.label) instanceof flixel_group_FlxTypedSpriteGroup)) { var fsg = fsb.label; var _g = 0; var _g1 = fsg.group.members; while(_g < _g1.length) { var fs = _g1[_g]; ++_g; if(((fs) instanceof flixel_text_FlxText)) { the_label = fs; break; } } } } ifb.up_color = color; ifb.down_color = 0; ifb.over_color = 0; } if(the_label != null) { if(labelWidth != 0) { the_label.set_width(labelWidth); the_label.resetHelpers(); } if(fb != null) { fb.setLabelFormat(the_font,size,color,align); } else { the_label.setFormat(the_font,size,color,align); } the_label.set_borderStyle(border.style); the_label.set_borderColor(border.color); the_label.set_borderSize(border.size); the_label.set_borderQuality(border.quality); if(((the_label) instanceof flixel_addons_ui_FlxUIText)) { var ftu = the_label; ftu.drawFrame(); } if(fb != null) { fb.autoCenterLabel(); } if(fsb != null) { fsb.autoCenterLabel(); } } var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(info,"color"); while(_g < _g1.length) { var textColorNode = _g1[_g]; ++_g; var color = this._loadColor(textColorNode); var vis = flixel_addons_ui_U.xml_bool(textColorNode,"visible",true); var state_name = flixel_addons_ui_U.xml_name(textColorNode); var toggle = flixel_addons_ui_U.xml_bool(textColorNode,"toggle"); switch(state_name) { case "active":case "hilight":case "hover":case "over": if(!toggle) { ifb.over_color = color; ifb.over_visible = vis; } else { ifb.over_toggle_color = color; ifb.over_toggle_visible = vis; } break; case "":case "inactive":case "normal":case "up": if(!toggle) { ifb.up_color = color; ifb.up_visible = vis; } else { ifb.up_toggle_color = color; ifb.up_toggle_visible = vis; } break; case "down":case "pressed":case "pushed": if(!toggle) { ifb.down_color = color; ifb.down_visible = vis; } else { ifb.down_toggle_color = color; ifb.down_toggle_visible = vis; } break; } } if(ifb.over_color == 0) { ifb.over_color = ifb.up_color; } if(ifb.down_color == 0) { ifb.down_color = ifb.over_color; } if(ifb.up_toggle_color == 0) { ifb.up_toggle_color = ifb.up_color; } if(ifb.over_toggle_color == 0) { ifb.over_toggle_color = ifb.over_color; } if(ifb.down_toggle_color == 0) { ifb.down_toggle_color = ifb.down_color; } if(the_label != null) { the_label.set_visible(ifb.up_visible); the_label.set_color(ifb.up_color); } return the_label; } return null; } ,__class__: flixel_addons_ui_FlxUI ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_currMode:"set_currMode",get_currMode:"get_currMode",set_focus:"set_focus",set_tongue:"set_tongue",get_tongue:"get_tongue",get_isRoot:"get_isRoot"}) }); var flixel_addons_ui_Rounding = $hxEnums["flixel.addons.ui.Rounding"] = { __ename__:"flixel.addons.ui.Rounding",__constructs__:null ,Floor: {_hx_name:"Floor",_hx_index:0,__enum__:"flixel.addons.ui.Rounding",toString:$estr} ,Ceil: {_hx_name:"Ceil",_hx_index:1,__enum__:"flixel.addons.ui.Rounding",toString:$estr} ,Round: {_hx_name:"Round",_hx_index:2,__enum__:"flixel.addons.ui.Rounding",toString:$estr} ,None: {_hx_name:"None",_hx_index:3,__enum__:"flixel.addons.ui.Rounding",toString:$estr} }; flixel_addons_ui_Rounding.__constructs__ = [flixel_addons_ui_Rounding.Floor,flixel_addons_ui_Rounding.Ceil,flixel_addons_ui_Rounding.Round,flixel_addons_ui_Rounding.None]; flixel_addons_ui_Rounding.__empty_constructs__ = [flixel_addons_ui_Rounding.Floor,flixel_addons_ui_Rounding.Ceil,flixel_addons_ui_Rounding.Round,flixel_addons_ui_Rounding.None]; var flixel_addons_ui_FlxUISprite = function(X,Y,SimpleGraphic) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._originalKey = ""; this.resize_ratio_axis = 1; this.recycled = false; this.ptr_owner = null; this.broadcastToFlxUI = true; flixel_FlxSprite.call(this,X,Y,SimpleGraphic); }; $hxClasses["flixel.addons.ui.FlxUISprite"] = flixel_addons_ui_FlxUISprite; flixel_addons_ui_FlxUISprite.__name__ = "flixel.addons.ui.FlxUISprite"; flixel_addons_ui_FlxUISprite.__interfaces__ = [flixel_addons_ui_interfaces_IResizable,flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxUISprite.__super__ = flixel_FlxSprite; flixel_addons_ui_FlxUISprite.prototype = $extend(flixel_FlxSprite.prototype,{ broadcastToFlxUI: null ,name: null ,ptr_owner: null ,recycled: null ,resize_ratio: null ,resize_ratio_axis: null ,set_resize_ratio: function(r) { this.resize_ratio = r; return r; } ,resize_point: null ,set_resize_point: function(r) { if(r != null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.resize_point = point; this.resize_point.set_x(r.x); this.resize_point.set_y(r.y); } return this.resize_point; } ,recycle: function(data) { this.recycled = true; } ,resize: function(w,h) { var old_width = this.get_width(); var old_height = this.get_height(); if(this.resize_ratio > 0) { var effective_ratio = w / h; if(Math.abs(effective_ratio - this.resize_ratio) > 0.0001) { if(this.resize_ratio_axis == 1) { h = w * (1 / this.resize_ratio); } else { w = h * (1 / this.resize_ratio); } } } if(this._originalKey != "" && this._originalKey != null) { var newKey = flixel_addons_ui_U.loadScaledImage(this._originalKey,w,h); if(newKey != "" && newKey != null) { this.loadFromScaledGraphic(newKey); } } var diff_w = this.get_width() - old_width; var diff_h = this.get_height() - old_height; if(this.resize_point != null) { var delta_x = diff_w * this.resize_point.x; var delta_y = diff_h * this.resize_point.y; this.set_x(this.x - delta_x); this.set_y(this.y - delta_y); } } ,loadGraphicAtScale: function(GraphicKey,W,H) { this.loadGraphic(GraphicKey,false); this.resize(W,H); } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var sprite = flixel_FlxSprite.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); this._originalKey = this.graphic.assetsKey; if(this._originalKey == null) { this._originalKey = this.graphic.key; } return sprite; } ,destroy: function() { this.ptr_owner = null; flixel_FlxSprite.prototype.destroy.call(this); } ,loadFromScaledGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } flixel_FlxSprite.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } ,_originalKey: null ,__class__: flixel_addons_ui_FlxUISprite ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_resize_point:"set_resize_point",set_resize_ratio:"set_resize_ratio"}) }); 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.__limeRectangle = null; 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) { if(x >= this.x && y >= this.y && x < this.get_right()) { return y < this.get_bottom(); } else { return false; } } ,containsPoint: function(point) { return this.contains(point.x,point.y); } ,containsRect: function(rect) { if(rect.width <= 0 || rect.height <= 0) { if(rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right()) { return rect.get_bottom() < this.get_bottom(); } else { return false; } } else if(rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right()) { return rect.get_bottom() <= this.get_bottom(); } else { return false; } } ,copyFrom: function(sourceRect) { this.x = sourceRect.x; this.y = sourceRect.y; this.width = sourceRect.width; this.height = sourceRect.height; } ,equals: function(toCompare) { if(toCompare == this) { return true; } else if(toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width) { return this.height == toCompare.height; } else { return false; } } ,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 = this.x < toIntersect.x ? toIntersect.x : this.x; var x1 = this.get_right() > toIntersect.get_right() ? toIntersect.get_right() : this.get_right(); if(x1 <= x0) { return new openfl_geom_Rectangle(); } var y0 = this.y < toIntersect.y ? toIntersect.y : this.y; var y1 = this.get_bottom() > toIntersect.get_bottom() ? toIntersect.get_bottom() : 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 = this.x < toIntersect.x ? toIntersect.x : this.x; var x1 = this.get_right() > toIntersect.get_right() ? toIntersect.get_right() : this.get_right(); if(x1 <= x0) { return false; } var y0 = this.y < toIntersect.y ? toIntersect.y : this.y; var y1 = this.get_bottom() > toIntersect.get_bottom() ? toIntersect.get_bottom() : this.get_bottom(); return y1 > y0; } ,isEmpty: function() { if(!(this.width <= 0)) { return this.height <= 0; } else { return true; } } ,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 = this.x > toUnion.x ? toUnion.x : this.x; var x1 = this.get_right() < toUnion.get_right() ? toUnion.get_right() : this.get_right(); var y0 = this.y > toUnion.y ? toUnion.y : this.y; var y1 = this.get_bottom() < toUnion.get_bottom() ? toUnion.get_bottom() : 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 offsetX = 0.0; var offsetY = 0.0; var offsetRight = 0.0; var offsetBottom = 0.0; if(this.x < x) { offsetX = x - this.x; } if(this.y < y) { offsetY = y - this.y; } if(this.get_right() > x + width) { offsetRight = x + width - this.get_right(); } if(this.get_bottom() > y + height) { offsetBottom = y + height - this.get_bottom(); } this.x += offsetX; this.y += offsetY; this.width += offsetRight - offsetX; this.height += offsetBottom - offsetY; } ,__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() { if(openfl_geom_Rectangle.__limeRectangle == null) { openfl_geom_Rectangle.__limeRectangle = new lime_math_Rectangle(); } openfl_geom_Rectangle.__limeRectangle.setTo(this.x,this.y,this.width,this.height); return openfl_geom_Rectangle.__limeRectangle; } ,__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 flixel_addons_ui_FlxUI9SliceSprite = function(X,Y,Graphic,Rect,Slice9,Tile,Smooth,Id,Ratio,Resize_point,Resize_axis,DeferResize,Color) { if(Color == null) { Color = -1; } if(DeferResize == null) { DeferResize = false; } if(Resize_axis == null) { Resize_axis = 1; } if(Ratio == null) { Ratio = -1; } if(Id == null) { Id = ""; } if(Smooth == null) { Smooth = false; } if(Tile == null) { Tile = 0; } this._asset_id = ""; this._smooth = false; this._tile = 0; this._slice9 = null; this.paintScale9_id = ""; flixel_addons_ui_FlxUISprite.call(this,X,Y,null); this.set_color(Color); this._slice9 = Slice9; this._tile = Tile; this._smooth = Smooth; this._asset_id = ""; if(Graphic == null) { Graphic = "flixel/flixel-ui/img/chrome.png"; } if(typeof(Graphic) == "string") { this._asset_id = Graphic; this._raw_pixels = null; } else if(((Graphic) instanceof openfl_display_BitmapData)) { this._asset_id = Id; this._raw_pixels = Graphic; } else if(((Graphic) instanceof flixel_graphics_FlxGraphic)) { var fg = Graphic; this._asset_id = fg.key; this._raw_pixels = fg.bitmap; } this.set_resize_ratio(Ratio); this.resize_ratio_axis = Resize_axis; if(Resize_point != null) { this.set_resize_point(Resize_point); } if(DeferResize) { var pt = flixel_addons_ui_U.applyResize(this.resize_ratio,this.resize_ratio_axis,Rect.width,Rect.height); this.set_width(pt.x); this.set_height(pt.y); } else { this.resize(Rect.width,Rect.height); } }; $hxClasses["flixel.addons.ui.FlxUI9SliceSprite"] = flixel_addons_ui_FlxUI9SliceSprite; flixel_addons_ui_FlxUI9SliceSprite.__name__ = "flixel.addons.ui.FlxUI9SliceSprite"; flixel_addons_ui_FlxUI9SliceSprite.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUI9SliceSprite.sectionCache = null; flixel_addons_ui_FlxUI9SliceSprite.cacheCounter = null; flixel_addons_ui_FlxUI9SliceSprite._staticRects = null; flixel_addons_ui_FlxUI9SliceSprite.getRectFromString = function(str) { var coords = str.split(","); var rect = null; if(coords != null && coords.length == 4) { var x_ = Std.parseInt(coords[0]); var y_ = Std.parseInt(coords[1]); var w_ = Std.parseInt(coords[2]); var h_ = Std.parseInt(coords[3]); rect = new openfl_geom_Rectangle(x_,y_,w_,h_); } return rect; }; flixel_addons_ui_FlxUI9SliceSprite.getRectIntsFromString = function(str) { var coords = str.split(","); if(coords != null && coords.length == 4) { var x1 = Std.parseInt(coords[0]); var y1 = Std.parseInt(coords[1]); var x2 = Std.parseInt(coords[2]); var y2 = Std.parseInt(coords[3]); return [x1,y1,x2,y2]; } return null; }; flixel_addons_ui_FlxUI9SliceSprite.paintScale9 = function(g,assetID,scale9,rc,tile,smooth,raw) { if(smooth == null) { smooth = false; } if(tile == null) { tile = 0; } if(scale9 != null) { var w; var h; if(raw == null) { var assetBmp = flixel_addons_ui_U.getBmp(assetID); if(assetBmp != null) { w = assetBmp.width; h = assetBmp.height; } else { var assetFlx = flixel_FlxG.bitmap._cache.h[assetID]; w = assetFlx.width; h = assetFlx.height; } } else { w = raw.width; h = raw.height; } var x1 = scale9[0]; var y1 = scale9[1]; var x2 = scale9[2]; var y2 = scale9[3]; if(flixel_addons_ui_FlxUI9SliceSprite._staticRects == null) { flixel_addons_ui_FlxUI9SliceSprite._staticRects = new haxe_ds_StringMap(); var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["top.left"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["top"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["top.right"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["left"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["middle"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["right"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["bottom.left"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["bottom"] = rect; var this1 = flixel_addons_ui_FlxUI9SliceSprite._staticRects; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this1.h["bottom.right"] = rect; } var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.left"]; var X = 0; var Y = 0; var Width = x1; var Height = y1; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top"]; var X = x1; var Y = 0; var Width = x2 - x1; var Height = y1; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.right"]; var X = x2; var Y = 0; var Width = w - x2; var Height = y1; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["left"]; var X = 0; var Y = y1; var Width = x1; var Height = y2 - y1; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["middle"]; var X = x1; var Y = y1; var Width = x2 - x1; var Height = y2 - y1; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["right"]; var X = x2; var Y = y1; var Width = w - x2; var Height = y2 - y1; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.left"]; var X = 0; var Y = y2; var Width = x1; var Height = h - y2; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom"]; var X = x1; var Y = y2; var Width = x2 - x1; var Height = h - y2; 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; var _this = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.right"]; var X = x2; var Y = y2; var Width = w - x2; var Height = h - y2; 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; if(flixel_addons_ui_FlxUI9SliceSprite.cacheCounter == null) { flixel_addons_ui_FlxUI9SliceSprite.cacheCounter = new haxe_ds_StringMap(); } var uniqueID = flixel_addons_ui_FlxUI9SliceSprite.makePaintScale9Id(assetID,scale9,rc); var sectionCounter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[uniqueID]; if(sectionCounter == null) { sectionCounter = { useCount : 0, subKeys : []}; var _g = 0; while(_g < 9) { var i = _g++; var rect; switch(i) { case 0: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.left"]; break; case 1: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top"]; break; case 2: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.right"]; break; case 3: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["left"]; break; case 4: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["middle"]; break; case 5: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["right"]; break; case 6: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.left"]; break; case 7: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom"]; break; case 8: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["bottom.right"]; break; default: rect = flixel_addons_ui_FlxUI9SliceSprite._staticRects.h["top.left"]; } var cacheId = assetID + "_" + rect.x + "_" + rect.y + "_" + rect.width + "_" + rect.height + "_"; sectionCounter.subKeys.push(cacheId); } flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[uniqueID] = sectionCounter; } flixel_addons_ui_FlxUI9SliceSprite.paintCompoundBitmap(g,assetID,flixel_addons_ui_FlxUI9SliceSprite._staticRects,rc,tile,smooth,raw); return uniqueID; } return ""; }; flixel_addons_ui_FlxUI9SliceSprite.makePaintScale9Id = function(assetId,slice9,rect) { var tmp = assetId + "_" + slice9.join(",") + "_"; var value = rect.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = rect.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; var value = rect.width; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "w"; _this2.value = value; var value = rect.height; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "h"; _this3.value = value; return tmp + flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]); }; flixel_addons_ui_FlxUI9SliceSprite.paintCompoundBitmap = function(g,assetID,sourceRects,targetRect,tile,smooth,raw) { if(smooth == null) { smooth = false; } if(tile == null) { tile = 0; } targetRect.x = targetRect.x | 0; targetRect.y = targetRect.y | 0; targetRect.width = targetRect.width | 0; targetRect.height = targetRect.height | 0; var tl = sourceRects.h["top.left"]; if(tl != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = 0; var Y = 0; var Width = tl.width; var Height = tl.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,tl,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw); } var tr = sourceRects.h["top.right"]; if(tr != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = targetRect.width - tr.width; var Y = 0; var Width = tr.width; var Height = tr.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,tr,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw); } var t = sourceRects.h["top"]; if(t != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = tl.width; var Y = 0; var Width = targetRect.width - tl.width - tr.width; var Height = t.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,t,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 16,smooth,raw); } var bl = sourceRects.h["bottom.left"]; if(bl != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = 0; var Y = targetRect.height - bl.height; var Width = bl.width; var Height = bl.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,bl,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw); } var br = sourceRects.h["bottom.right"]; if(br != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = targetRect.width - br.width; var Y = targetRect.height - br.height; var Width = br.width; var Height = br.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,br,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,0,smooth,raw); } var b = sourceRects.h["bottom"]; if(b != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = bl.width; var Y = targetRect.height - b.height; var Width = targetRect.width - bl.width - br.width; var Height = b.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,b,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 16,smooth,raw); } var l = sourceRects.h["left"]; if(l != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = 0; var Y = tl.height; var Width = l.width; var Height = targetRect.height - tl.height - bl.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,l,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 1,smooth,raw); } var r = sourceRects.h["right"]; if(r != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = targetRect.width - r.width; var Y = tr.height; var Width = r.width; var Height = targetRect.height - tl.height - bl.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,r,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile & 1,smooth,raw); } var m = sourceRects.h["middle"]; if(m != null) { var _this = flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2; var X = l.width; var Y = t.height; var Width = targetRect.width - l.width - r.width; var Height = targetRect.height - t.height - b.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; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection(g,assetID,m,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2,null,tile,smooth,raw); } }; flixel_addons_ui_FlxUI9SliceSprite.paintBitmapSection = function(g,assetId,src,dst,srcData,tile,smooth,raw) { if(smooth == null) { smooth = false; } if(tile == null) { tile = 0; } if(srcData == null) { if(raw != null) { srcData = raw; } else { srcData = flixel_addons_ui_U.getBmp(assetId); } } src.x = src.x | 0; src.y = src.y | 0; src.width = src.width | 0; src.height = src.height | 0; dst.x = dst.x | 0; dst.y = dst.y | 0; dst.width = dst.width | 0; dst.height = dst.height | 0; var section = null; var cacheId = null; if(flixel_addons_ui_FlxUI9SliceSprite.useSectionCache == true && assetId != null) { if(flixel_addons_ui_FlxUI9SliceSprite.sectionCache == null) { flixel_addons_ui_FlxUI9SliceSprite.sectionCache = new haxe_ds_StringMap(); } cacheId = assetId + "_" + src.x + "_" + src.y + "_" + src.width + "_" + src.height + "_"; section = flixel_addons_ui_FlxUI9SliceSprite.sectionCache.h[cacheId]; } if(section == null) { var fillcolor = 16777215; section = new openfl_display_BitmapData(src.width | 0,src.height | 0,true,fillcolor); flixel_addons_ui_FlxUI9SliceSprite._staticRect2.x = src.x; flixel_addons_ui_FlxUI9SliceSprite._staticRect2.y = src.y; flixel_addons_ui_FlxUI9SliceSprite._staticRect2.width = src.width; flixel_addons_ui_FlxUI9SliceSprite._staticRect2.height = src.height; section.copyPixels(srcData,flixel_addons_ui_FlxUI9SliceSprite._staticRect2,flixel_addons_ui_FlxUI9SliceSprite._staticPointZero); if(flixel_addons_ui_FlxUI9SliceSprite.useSectionCache == true && cacheId != null) { flixel_addons_ui_FlxUI9SliceSprite.sectionCache.h[cacheId] = section; } flixel_addons_ui_FlxUI9SliceSprite.bitmapsCreated++; } if(dst.width > 0 && dst.height > 0) { flixel_addons_ui_FlxUI9SliceSprite._staticRect2.x = dst.x; flixel_addons_ui_FlxUI9SliceSprite._staticRect2.y = dst.y; flixel_addons_ui_FlxUI9SliceSprite._staticRect2.width = dst.width; flixel_addons_ui_FlxUI9SliceSprite._staticRect2.height = dst.height; flixel_addons_ui_FlxUI9SliceSprite.bitmapFillRect(g,flixel_addons_ui_FlxUI9SliceSprite._staticRect2,section,tile,smooth); } }; flixel_addons_ui_FlxUI9SliceSprite.bitmapFillRect = function(g,dst,section,tile,smooth_) { if(smooth_ == null) { smooth_ = false; } if(tile == null) { tile = 0; } var final_pixels = new openfl_display_BitmapData(dst.width | 0,dst.height | 0,true,0); flixel_addons_ui_FlxUI9SliceSprite._staticMatrix.identity(); flixel_addons_ui_FlxUI9SliceSprite._staticRect.x = 0; flixel_addons_ui_FlxUI9SliceSprite._staticRect.y = 0; flixel_addons_ui_FlxUI9SliceSprite._staticRect.width = section.width; flixel_addons_ui_FlxUI9SliceSprite._staticRect.height = section.height; if((tile & 16) == 0) { flixel_addons_ui_FlxUI9SliceSprite._staticMatrix.scale(dst.width / section.width,1.0); flixel_addons_ui_FlxUI9SliceSprite._staticRect.width = dst.width; } if((tile & 1) == 0) { flixel_addons_ui_FlxUI9SliceSprite._staticMatrix.scale(1.0,dst.height / section.height); flixel_addons_ui_FlxUI9SliceSprite._staticRect.height = dst.height; } if(section.width == dst.width && section.height == dst.height) { flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = 0; flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = 0; final_pixels.copyPixels(section,section.rect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint); } else if(smooth_) { final_pixels.draw(section,flixel_addons_ui_FlxUI9SliceSprite._staticMatrix,null,null,null,true); } else { final_pixels.draw(section,flixel_addons_ui_FlxUI9SliceSprite._staticMatrix,null,null,null,false); } if(tile != 0) { if((tile & 16) == 16) { flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = 0; flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = 0; while(flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x < dst.width) { flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x += flixel_addons_ui_FlxUI9SliceSprite._staticRect.width; final_pixels.copyPixels(final_pixels,flixel_addons_ui_FlxUI9SliceSprite._staticRect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint); } } if((tile & 1) == 1) { flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = 0; flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = 0; flixel_addons_ui_FlxUI9SliceSprite._staticRect.width = final_pixels.width; while(flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y < dst.height) { flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y += flixel_addons_ui_FlxUI9SliceSprite._staticRect.height; final_pixels.copyPixels(final_pixels,flixel_addons_ui_FlxUI9SliceSprite._staticRect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint); } } } flixel_addons_ui_FlxUI9SliceSprite._staticPoint.x = dst.x; flixel_addons_ui_FlxUI9SliceSprite._staticPoint.y = dst.y; g.copyPixels(final_pixels,final_pixels.rect,flixel_addons_ui_FlxUI9SliceSprite._staticPoint); final_pixels = flixel_util_FlxDestroyUtil.dispose(final_pixels); }; flixel_addons_ui_FlxUI9SliceSprite.__super__ = flixel_addons_ui_FlxUISprite; flixel_addons_ui_FlxUI9SliceSprite.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{ _bmpCanvas: null ,paintScale9_id: null ,_slice9: null ,_tile: null ,_smooth: null ,_asset_id: null ,_raw_pixels: null ,destroy: function() { this.noLongerUsingCachedID(this.paintScale9_id); flixel_addons_ui_FlxUISprite.prototype.destroy.call(this); } ,resize: function(w,h) { if((w | 0) < 1) { w = 1; } if((h | 0) < 1) { h = 1; } var old_width = this.get_width(); var old_height = this.get_height(); var pt = flixel_addons_ui_U.applyResize(this.resize_ratio,this.resize_ratio_axis,w,h); w = pt.x; h = pt.y; var iw = pt.x | 0; var ih = pt.y | 0; if(this._slice9 == null || this._slice9.length != 4) { if(this._slice9 != null) { flixel_FlxG.log.advanced("Invalid 9slice array, expected a length of 4",flixel_system_debug_log_LogStyle.WARNING,true); } this._slice9 = [4,4,7,7]; } var key = this._asset_id + "_" + this._slice9.join(",") + "_" + iw + "x" + ih + "_" + this._tile + "_" + Std.string(this._smooth); if(flixel_FlxG.bitmap._cache.h[key] != null) { this.loadGraphic(key,false,iw,ih); } else { var bmpCanvas = new openfl_display_BitmapData(w | 0,h | 0); flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.x = 0; flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.y = 0; flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.width = w; flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect.height = h; var oldID = this.paintScale9_id; var newID = flixel_addons_ui_FlxUI9SliceSprite.makePaintScale9Id(this._asset_id,this._slice9,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect); if(newID != oldID) { this.paintScale9_id = flixel_addons_ui_FlxUI9SliceSprite.paintScale9(bmpCanvas,this._asset_id,this._slice9,flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect,this._tile,this._smooth,this._raw_pixels); var sectionCounter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[this.paintScale9_id]; sectionCounter.useCount++; this.noLongerUsingCachedID(oldID); } this.loadGraphic(bmpCanvas,false,bmpCanvas.width,bmpCanvas.height,false,key); } var diff_w = this.get_width() - old_width; var diff_h = this.get_height() - old_height; if(this.resize_point != null) { var delta_x = diff_w * this.resize_point.x; var delta_y = diff_h * this.resize_point.y; this.set_x(this.x - delta_x); this.set_y(this.y - delta_y); } } ,noLongerUsingCachedID: function(id) { if(Object.prototype.hasOwnProperty.call(flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h,id)) { var oldCounter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[id]; oldCounter.useCount--; if(oldCounter.useCount <= 0) { this.purgeSections(id); } } } ,purgeSections: function(id) { var counter = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter.h[id]; if(counter != null) { var _g = 0; var _g1 = counter.subKeys; while(_g < _g1.length) { var key = _g1[_g]; ++_g; var _this = flixel_addons_ui_FlxUI9SliceSprite.sectionCache; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } counter.subKeys = null; var _this = flixel_addons_ui_FlxUI9SliceSprite.cacheCounter; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); } } } ,__class__: flixel_addons_ui_FlxUI9SliceSprite }); var flixel_addons_ui_FlxUIAssets = function() { }; $hxClasses["flixel.addons.ui.FlxUIAssets"] = flixel_addons_ui_FlxUIAssets; flixel_addons_ui_FlxUIAssets.__name__ = "flixel.addons.ui.FlxUIAssets"; var flixel_ui_FlxBar = function(x,y,direction,width,height,parentRef,variable,min,max,showBorder) { if(showBorder == null) { showBorder = false; } if(max == null) { max = 100; } if(min == null) { min = 0; } if(variable == null) { variable = ""; } if(height == null) { height = 10; } if(width == null) { width = 100; } if(y == null) { y = 0; } if(x == null) { x = 0; } this._maxPercent = 100; this.numDivisions = 100; this.killOnEmpty = false; this.fixedPosition = true; flixel_FlxSprite.call(this,x,y); if(direction == null) { direction = flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT; } this.barWidth = width; this.barHeight = height; this._filledBarPoint = new openfl_geom_Point(); this._filledBarRect = new openfl_geom_Rectangle(); if(flixel_FlxG.renderBlit) { this._zeroOffset = new openfl_geom_Point(); this._emptyBarRect = new openfl_geom_Rectangle(); this.makeGraphic(width,height,0,true); } else { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this._filledFlxRect = rect; } if(parentRef != null) { this.parent = parentRef; this.parentVariable = variable; } this.set_fillDirection(direction); this.createFilledBar(-16756480,-16714752,showBorder); this.setRange(min,max); }; $hxClasses["flixel.ui.FlxBar"] = flixel_ui_FlxBar; flixel_ui_FlxBar.__name__ = "flixel.ui.FlxBar"; flixel_ui_FlxBar.__super__ = flixel_FlxSprite; flixel_ui_FlxBar.prototype = $extend(flixel_FlxSprite.prototype,{ fixedPosition: null ,pxPerPercent: null ,positionOffset: null ,killOnEmpty: null ,value: null ,min: null ,max: null ,range: null ,pct: null ,numDivisions: null ,emptyCallback: null ,filledCallback: null ,parent: null ,parentVariable: null ,barWidth: null ,barHeight: null ,frontFrames: null ,fillDirection: null ,_fillHorizontal: null ,_frontFrame: null ,_filledFlxRect: null ,_emptyBar: null ,_emptyBarRect: null ,_filledBar: null ,_zeroOffset: null ,_filledBarRect: null ,_filledBarPoint: null ,_maxPercent: null ,destroy: function() { this.positionOffset = flixel_util_FlxDestroyUtil.put(this.positionOffset); if(flixel_FlxG.renderTile) { this.set_frontFrames(null); this._filledFlxRect = flixel_util_FlxDestroyUtil.put(this._filledFlxRect); } else { this._emptyBarRect = null; this._zeroOffset = null; this._emptyBar = flixel_util_FlxDestroyUtil.dispose(this._emptyBar); this._filledBar = flixel_util_FlxDestroyUtil.dispose(this._filledBar); } this._filledBarRect = null; this._filledBarPoint = null; this.parent = null; this.emptyCallback = null; this.filledCallback = null; flixel_FlxSprite.prototype.destroy.call(this); } ,trackParent: function(offsetX,offsetY) { this.fixedPosition = false; var x = offsetX; var y = offsetY; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.positionOffset = point; if(Object.prototype.hasOwnProperty.call(this.parent,"scrollFactor")) { this.scrollFactor.set_x(this.parent.scrollFactor.x); this.scrollFactor.set_y(this.parent.scrollFactor.y); } } ,setParent: function(parentRef,variable,track,offsetX,offsetY) { if(offsetY == null) { offsetY = 0; } if(offsetX == null) { offsetX = 0; } if(track == null) { track = false; } this.parent = parentRef; this.parentVariable = variable; if(track) { this.trackParent(offsetX,offsetY); } this.updateValueFromParent(); } ,stopTrackingParent: function(posX,posY) { this.fixedPosition = true; this.set_x(posX); this.set_y(posY); } ,setCallbacks: function(onEmpty,onFilled,killOnEmpty) { if(killOnEmpty == null) { killOnEmpty = false; } this.emptyCallback = onEmpty != null ? onEmpty : this.emptyCallback; this.filledCallback = onFilled != null ? onFilled : this.filledCallback; this.killOnEmpty = killOnEmpty; } ,setRange: function(min,max) { if(max <= min) { throw haxe_Exception.thrown("FlxBar: max cannot be less than or equal to min"); } this.min = min; this.max = max; this.range = max - min; this.pct = this.range / this._maxPercent; this.pxPerPercent = this._fillHorizontal ? this.barWidth / this._maxPercent : this.barHeight / this._maxPercent; var f = this.get_value(); if(!isNaN(f)) { this.set_value(Math.max(min,Math.min(this.get_value(),max))); } else { this.set_value(min); } } ,createFilledBar: function(empty,fill,showBorder,border) { if(border == null) { border = -1; } if(showBorder == null) { showBorder = false; } this.createColoredEmptyBar(empty,showBorder,border); this.createColoredFilledBar(fill,showBorder,border); return this; } ,createColoredEmptyBar: function(empty,showBorder,border) { if(border == null) { border = -1; } if(showBorder == null) { showBorder = false; } if(flixel_FlxG.renderTile) { var emptyKey = "empty: " + this.barWidth + "x" + this.barHeight + ":" + ("0x" + StringTools.hex(empty >> 24 & 255,2) + StringTools.hex(empty >> 16 & 255,2) + StringTools.hex(empty >> 8 & 255,2) + StringTools.hex(empty & 255,2)); if(showBorder) { emptyKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2)); } if(flixel_FlxG.bitmap._cache.h[emptyKey] == null) { var emptyBar = null; if(showBorder) { emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); emptyBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),empty); } else { emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,empty); } flixel_FlxG.bitmap.add(emptyBar,false,emptyKey); } this.set_frames(flixel_FlxG.bitmap._cache.h[emptyKey].get_imageFrame()); } else { if(showBorder) { this._emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); this._emptyBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),empty); } else { this._emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,empty); } this._emptyBarRect.setTo(0,0,this.barWidth,this.barHeight); this.updateEmptyBar(); } return this; } ,createColoredFilledBar: function(fill,showBorder,border) { if(border == null) { border = -1; } if(showBorder == null) { showBorder = false; } if(flixel_FlxG.renderTile) { var filledKey = "filled: " + this.barWidth + "x" + this.barHeight + ":" + ("0x" + StringTools.hex(fill >> 24 & 255,2) + StringTools.hex(fill >> 16 & 255,2) + StringTools.hex(fill >> 8 & 255,2) + StringTools.hex(fill & 255,2)); if(showBorder) { filledKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2)); } if(flixel_FlxG.bitmap._cache.h[filledKey] == null) { var filledBar = null; if(showBorder) { filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); filledBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),fill); } else { filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,fill); } flixel_FlxG.bitmap.add(filledBar,false,filledKey); } this.set_frontFrames(flixel_FlxG.bitmap._cache.h[filledKey].get_imageFrame()); } else { if(showBorder) { this._filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); this._filledBar.fillRect(new openfl_geom_Rectangle(1,1,this.barWidth - 2,this.barHeight - 2),fill); } else { this._filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,fill); } this._filledBarRect.setTo(0,0,this.barWidth,this.barHeight); this.updateFilledBar(); } return this; } ,createGradientBar: function(empty,fill,chunkSize,rotation,showBorder,border) { if(border == null) { border = -1; } if(showBorder == null) { showBorder = false; } if(rotation == null) { rotation = 180; } if(chunkSize == null) { chunkSize = 1; } this.createGradientEmptyBar(empty,chunkSize,rotation,showBorder,border); this.createGradientFilledBar(fill,chunkSize,rotation,showBorder,border); return this; } ,createGradientEmptyBar: function(empty,chunkSize,rotation,showBorder,border) { if(border == null) { border = -1; } if(showBorder == null) { showBorder = false; } if(rotation == null) { rotation = 180; } if(chunkSize == null) { chunkSize = 1; } if(flixel_FlxG.renderTile) { var emptyKey = "Gradient:" + this.barWidth + "x" + this.barHeight + ",colors:["; var _g = 0; while(_g < empty.length) { var col = empty[_g]; ++_g; emptyKey += "0x" + StringTools.hex(col >> 24 & 255,2) + StringTools.hex(col >> 16 & 255,2) + StringTools.hex(col >> 8 & 255,2) + StringTools.hex(col & 255,2) + ","; } emptyKey += "],chunkSize: " + chunkSize + ",rotation: " + rotation; if(showBorder) { emptyKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2)); } if(flixel_FlxG.bitmap._cache.h[emptyKey] == null) { var emptyBar = null; if(showBorder) { emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); flixel_util_FlxGradient.overlayGradientOnBitmapData(emptyBar,this.barWidth - 2,this.barHeight - 2,empty,1,1,chunkSize,rotation); } else { emptyBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,empty,chunkSize,rotation); } flixel_FlxG.bitmap.add(emptyBar,false,emptyKey); } this.set_frames(flixel_FlxG.bitmap._cache.h[emptyKey].get_imageFrame()); } else { if(showBorder) { this._emptyBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); flixel_util_FlxGradient.overlayGradientOnBitmapData(this._emptyBar,this.barWidth - 2,this.barHeight - 2,empty,1,1,chunkSize,rotation); } else { this._emptyBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,empty,chunkSize,rotation); } this._emptyBarRect.setTo(0,0,this.barWidth,this.barHeight); this.updateEmptyBar(); } return this; } ,createGradientFilledBar: function(fill,chunkSize,rotation,showBorder,border) { if(border == null) { border = -1; } if(showBorder == null) { showBorder = false; } if(rotation == null) { rotation = 180; } if(chunkSize == null) { chunkSize = 1; } if(flixel_FlxG.renderTile) { var filledKey = "Gradient:" + this.barWidth + "x" + this.barHeight + ",colors:["; var _g = 0; while(_g < fill.length) { var col = fill[_g]; ++_g; filledKey += "0x" + StringTools.hex(col >> 24 & 255,2) + StringTools.hex(col >> 16 & 255,2) + StringTools.hex(col >> 8 & 255,2) + StringTools.hex(col & 255,2) + ","; } filledKey += "],chunkSize: " + chunkSize + ",rotation: " + rotation; if(showBorder) { filledKey += ",border: " + ("0x" + StringTools.hex(border >> 24 & 255,2) + StringTools.hex(border >> 16 & 255,2) + StringTools.hex(border >> 8 & 255,2) + StringTools.hex(border & 255,2)); } if(flixel_FlxG.bitmap._cache.h[filledKey] == null) { var filledBar = null; if(showBorder) { filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); flixel_util_FlxGradient.overlayGradientOnBitmapData(filledBar,this.barWidth - 2,this.barHeight - 2,fill,1,1,chunkSize,rotation); } else { filledBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,fill,chunkSize,rotation); } flixel_FlxG.bitmap.add(filledBar,false,filledKey); } this.set_frontFrames(flixel_FlxG.bitmap._cache.h[filledKey].get_imageFrame()); } else { if(showBorder) { this._filledBar = new openfl_display_BitmapData(this.barWidth,this.barHeight,true,border); flixel_util_FlxGradient.overlayGradientOnBitmapData(this._filledBar,this.barWidth - 2,this.barHeight - 2,fill,1,1,chunkSize,rotation); } else { this._filledBar = flixel_util_FlxGradient.createGradientBitmapData(this.barWidth,this.barHeight,fill,chunkSize,rotation); } this._filledBarRect.setTo(0,0,this.barWidth,this.barHeight); this.updateFilledBar(); } return this; } ,createImageBar: function(empty,fill,emptyBackground,fillBackground) { if(fillBackground == null) { fillBackground = -16711936; } if(emptyBackground == null) { emptyBackground = -16777216; } this.createImageEmptyBar(empty,emptyBackground); this.createImageFilledBar(fill,fillBackground); return this; } ,createImageEmptyBar: function(empty,emptyBackground) { if(emptyBackground == null) { emptyBackground = -16777216; } if(empty != null) { var emptyGraphic = flixel_FlxG.bitmap.add(empty); if(flixel_FlxG.renderTile) { this.set_frames(emptyGraphic.get_imageFrame()); } else { this._emptyBar = emptyGraphic.bitmap.clone(); this.barWidth = this._emptyBar.width; this.barHeight = this._emptyBar.height; this._emptyBarRect.setTo(0,0,this.barWidth,this.barHeight); if(this.graphic == null || (this.frame.sourceSize.x != this.barWidth || this.frame.sourceSize.y != this.barHeight)) { this.makeGraphic(this.barWidth,this.barHeight,0,true); } this.updateEmptyBar(); } } else { this.createColoredEmptyBar(emptyBackground); } return this; } ,createImageFilledBar: function(fill,fillBackground) { if(fillBackground == null) { fillBackground = -16711936; } if(fill != null) { var filledGraphic = flixel_FlxG.bitmap.add(fill); if(flixel_FlxG.renderTile) { this.set_frontFrames(filledGraphic.get_imageFrame()); } else { this._filledBar = filledGraphic.bitmap.clone(); this._filledBarRect.setTo(0,0,this.barWidth,this.barHeight); if(this.graphic == null || (this.frame.sourceSize.x != this.barWidth || this.frame.sourceSize.y != this.barHeight)) { this.makeGraphic(this.barWidth,this.barHeight,0,true); } this.pxPerPercent = this._fillHorizontal ? this.barWidth / this._maxPercent : this.barHeight / this._maxPercent; this.updateFilledBar(); } } else { this.createColoredFilledBar(fillBackground); } return this; } ,set_fillDirection: function(direction) { this.fillDirection = direction; switch(direction._hx_index) { case 0:case 1:case 4:case 5: this._fillHorizontal = true; break; case 2:case 3:case 6:case 7: this._fillHorizontal = false; break; } return this.fillDirection; } ,updateValueFromParent: function() { this.set_value(Reflect.getProperty(this.parent,this.parentVariable)); } ,updateBar: function() { this.updateEmptyBar(); this.updateFilledBar(); } ,updateEmptyBar: function() { if(flixel_FlxG.renderBlit) { this.get_pixels().copyPixels(this._emptyBar,this._emptyBarRect,this._zeroOffset); this.dirty = true; } } ,updateFilledBar: function() { this._filledBarRect.width = this.barWidth; this._filledBarRect.height = this.barHeight; var fraction = (this.get_value() - this.min) / this.range; var percent = fraction * this._maxPercent; var maxScale = this._fillHorizontal ? this.barWidth : this.barHeight; var scaleInterval = maxScale / this.numDivisions; var interval = Math.round((fraction * maxScale / scaleInterval | 0) * scaleInterval); if(this._fillHorizontal) { this._filledBarRect.width = interval | 0; } else { this._filledBarRect.height = interval | 0; } if(percent > 0) { switch(this.fillDirection._hx_index) { case 1: this._filledBarRect.x = this.barWidth - this._filledBarRect.width; this._filledBarPoint.x = this.barWidth - this._filledBarRect.width; break; case 0:case 2: break; case 3: this._filledBarRect.y = this.barHeight - this._filledBarRect.height; this._filledBarPoint.y = this.barHeight - this._filledBarRect.height; break; case 4: this._filledBarRect.x = this.barWidth / 2 - this._filledBarRect.width / 2 | 0; this._filledBarPoint.x = this.barWidth / 2 - this._filledBarRect.width / 2 | 0; break; case 5: this._filledBarRect.width = maxScale - interval | 0; this._filledBarPoint.x = (this.barWidth - this._filledBarRect.width) / 2 | 0; break; case 6: this._filledBarRect.y = this.barHeight / 2 - this._filledBarRect.height / 2 | 0; this._filledBarPoint.y = this.barHeight / 2 - this._filledBarRect.height / 2 | 0; break; case 7: this._filledBarRect.height = maxScale - interval | 0; this._filledBarPoint.y = (this.barHeight - this._filledBarRect.height) / 2 | 0; break; } if(flixel_FlxG.renderBlit) { this.get_pixels().copyPixels(this._filledBar,this._filledBarRect,this._filledBarPoint,null,null,true); } else if(this.get_frontFrames() != null) { var _this = this._filledFlxRect; var FlashRect = this._filledBarRect; _this.x = FlashRect.x; _this.y = FlashRect.y; _this.width = FlashRect.width; _this.height = FlashRect.height; var _this1 = _this; _this1.x = Math.round(_this1.x); _this1.y = Math.round(_this1.y); _this1.width = Math.round(_this1.width); _this1.height = Math.round(_this1.height); if((percent | 0) > 0) { this._frontFrame = this.get_frontFrames().get_frame().clipTo(this._filledFlxRect,this._frontFrame); } } } if(flixel_FlxG.renderBlit) { this.dirty = true; } } ,update: function(elapsed) { if(this.parent != null) { if(Reflect.getProperty(this.parent,this.parentVariable) != this.get_value()) { this.updateValueFromParent(); } if(!this.fixedPosition) { this.set_x(this.parent.x + this.positionOffset.x); this.set_y(this.parent.y + this.positionOffset.y); } } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,draw: function() { flixel_FlxSprite.prototype.draw.call(this); if(!flixel_FlxG.renderTile) { return; } if(this.alpha == 0) { return; } if(this.get_percent() > 0 && this._frontFrame.type != 2) { var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) { continue; } var doFlipX = this.flipX != this._frame.flipX; var doFlipY = this.flipY != this._frame.flipY; this._frontFrame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY); this._matrix.translate(-this.origin.x,-this.origin.y); this._matrix.scale(this.scale.x,this.scale.y); if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this2 = this._point; var x1 = this.origin.x; var y1 = this.origin.y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this2.set_x(this2.x + x1); this2.set_y(this2.y + y1); this._matrix.translate(this._point.x,this._point.y); if(this.isPixelPerfectRender(camera)) { this._matrix.tx = Math.floor(this._matrix.tx); this._matrix.ty = Math.floor(this._matrix.ty); } camera.drawPixels(this._frontFrame,null,this._matrix,this.colorTransform,this.blend,this.antialiasing,this.shader); } } } ,set_pixels: function(pixels) { if(flixel_FlxG.renderTile) { return pixels; } else { return flixel_FlxSprite.prototype.set_pixels.call(this,pixels); } } ,toString: function() { var value = this.min; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "min"; _this.value = value; var value = this.max; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "max"; _this1.value = value; var value = this.range; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "range"; _this2.value = value; var value = this.pct; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "%"; _this3.value = value; var value = this.pxPerPercent; var _this4 = flixel_util_LabelValuePair._pool.get(); _this4.label = "px/%"; _this4.value = value; var value = this.get_value(); var _this5 = flixel_util_LabelValuePair._pool.get(); _this5.label = "value"; _this5.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5]); } ,get_percent: function() { if(this.get_value() > this.max) { return this._maxPercent; } return Math.floor((this.get_value() - this.min) / this.range * this._maxPercent); } ,set_percent: function(newPct) { if(newPct >= 0 && newPct <= this._maxPercent) { this.set_value(this.pct * newPct); } return newPct; } ,set_value: function(newValue) { this.value = Math.max(this.min,Math.min(newValue,this.max)); if(this.get_value() == this.min && this.emptyCallback != null) { this.emptyCallback(); } if(this.get_value() == this.max && this.filledCallback != null) { this.filledCallback(); } if(this.get_value() == this.min && this.killOnEmpty) { this.kill(); } this.updateBar(); return newValue; } ,get_value: function() { return this.value; } ,set_numDivisions: function(newValue) { this.numDivisions = newValue > 0 ? newValue : 100; this.updateFilledBar(); return newValue; } ,get_frontFrames: function() { if(flixel_FlxG.renderTile) { return this.frontFrames; } return null; } ,set_frontFrames: function(value) { if(flixel_FlxG.renderTile) { if(value != null) { value.parent.incrementUseCount(); } if(this.get_frontFrames() != null) { this.get_frontFrames().parent.decrementUseCount(); } this.frontFrames = value; this._frontFrame = value != null ? value.get_frame().copyTo(this._frontFrame) : flixel_util_FlxDestroyUtil.destroy(this._frontFrame); } else { this.createImageFilledBar(value.get_frame().paint()); } return value; } ,get_backFrames: function() { if(flixel_FlxG.renderTile) { return this.frames; } return null; } ,set_backFrames: function(value) { if(flixel_FlxG.renderTile) { this.set_frames(value); } else { this.createImageEmptyBar(value.get_frame().paint()); } return value; } ,__class__: flixel_ui_FlxBar ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_fillDirection:"set_fillDirection",set_backFrames:"set_backFrames",get_backFrames:"get_backFrames",set_frontFrames:"set_frontFrames",get_frontFrames:"get_frontFrames",set_numDivisions:"set_numDivisions",set_value:"set_value",get_value:"get_value",set_percent:"set_percent",get_percent:"get_percent"}) }); var flixel_addons_ui_FlxUIBar = function(x,y,direction,width,height,parentRef,variable,min,max,showBorder) { if(showBorder == null) { showBorder = false; } if(max == null) { max = 100; } if(min == null) { min = 0; } if(variable == null) { variable = ""; } if(height == null) { height = 10; } if(width == null) { width = 100; } if(y == null) { y = 0; } if(x == null) { x = 0; } flixel_ui_FlxBar.call(this,x,y,direction,width,height,parentRef,variable,min,max,showBorder); }; $hxClasses["flixel.addons.ui.FlxUIBar"] = flixel_addons_ui_FlxUIBar; flixel_addons_ui_FlxUIBar.__name__ = "flixel.addons.ui.FlxUIBar"; flixel_addons_ui_FlxUIBar.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUIBar.__super__ = flixel_ui_FlxBar; flixel_addons_ui_FlxUIBar.prototype = $extend(flixel_ui_FlxBar.prototype,{ name: null ,style: null ,params: null ,broadcastToFlxUI: null ,clone: function() { var w = this.get_width() | 0; var h = this.get_height() | 0; var showBorder = this.style != null && this.style.borderColor != null; if(showBorder) { w -= 2; h -= 2; } var b = new flixel_addons_ui_FlxUIBar(this.x,this.y,this.fillDirection,w,h,this.parent,this.parentVariable,this.min,this.max,showBorder); b.set_style(this.style); b.set_value(this.get_value()); return b; } ,set_style: function(Style) { this.style = Style; this.resize(this.barWidth,this.barHeight); return this.style; } ,resize: function(w,h) { this.set_width(w); this.set_height(h); this.barWidth = this.get_width() | 0; this.barHeight = this.get_height() | 0; if(flixel_FlxG.renderBlit) { this.makeGraphic(this.barWidth,this.barHeight,0,true); } var showBorder = this.style.borderColor != null; var ec = this.style.emptyColor == null ? -16777216 : this.style.emptyColor; var fc = this.style.filledColor == null ? -65536 : this.style.filledColor; var bc = this.style.borderColor == null ? -16777216 : this.style.borderColor; if(this.style.filledColor != null) { this.createFilledBar(ec,fc,showBorder,bc); } if(this.style.filledColors != null) { var ecs = this.style.emptyColors == null ? [-16777216] : this.style.emptyColors; var fcs = this.style.filledColors == null ? [-65536] : this.style.filledColors; var chunk = this.style.chunkSize == null ? 1 : this.style.chunkSize; var gradRot = this.style.emptyImgSrc == null ? 180 : this.style.gradRotation; this.createGradientBar(ecs,fcs,chunk,gradRot,showBorder,bc); } if(this.style.filledImgSrc != "") { this.createImageBar(this.style.emptyImgSrc,this.style.filledImgSrc,ec,fc); } this.setRange(this.min,this.max); this.set_value(this.get_value()); } ,set_params: function(p) { this.params = p; return this.params; } ,__class__: flixel_addons_ui_FlxUIBar ,__properties__: $extend(flixel_ui_FlxBar.prototype.__properties__,{set_params:"set_params",set_style:"set_style"}) }); var flixel_input_IFlxInput = function() { }; $hxClasses["flixel.input.IFlxInput"] = flixel_input_IFlxInput; flixel_input_IFlxInput.__name__ = "flixel.input.IFlxInput"; flixel_input_IFlxInput.__isInterface__ = true; flixel_input_IFlxInput.prototype = { get_justReleased: null ,get_released: null ,get_pressed: null ,get_justPressed: null ,__class__: flixel_input_IFlxInput ,__properties__: {get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased"} }; var flixel_ui_FlxTypedButton = function(X,Y,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.lastStatus = -1; this.maxInputMovement = Infinity; this.mouseButtons = [-1]; this.allowSwiping = true; this.statusAnimations = ["normal","highlight","pressed"]; this.labelAlphas = [0.8,1.0,0.5]; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; var x = 0; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point2 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point2._inPool = false; this.labelOffsets = [point,point1,point2]; flixel_FlxSprite.call(this,X,Y); this.loadDefaultGraphic(); this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick); this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent(); this.set_status(0); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener)); this.input = new flixel_input_FlxInput(0); }; $hxClasses["flixel.ui.FlxTypedButton"] = flixel_ui_FlxTypedButton; flixel_ui_FlxTypedButton.__name__ = "flixel.ui.FlxTypedButton"; flixel_ui_FlxTypedButton.__interfaces__ = [flixel_input_IFlxInput]; flixel_ui_FlxTypedButton.__super__ = flixel_FlxSprite; flixel_ui_FlxTypedButton.prototype = $extend(flixel_FlxSprite.prototype,{ label: null ,labelOffsets: null ,labelAlphas: null ,statusAnimations: null ,allowSwiping: null ,mouseButtons: null ,maxInputMovement: null ,status: null ,onUp: null ,onDown: null ,onOver: null ,onOut: null ,_spriteLabel: null ,input: null ,currentInput: null ,lastStatus: null ,graphicLoaded: function() { flixel_FlxSprite.prototype.graphicLoaded.call(this); this.setupAnimation("normal",0); this.setupAnimation("highlight",1); this.setupAnimation("pressed",2); } ,loadDefaultGraphic: function() { this.loadGraphic("flixel/images/ui/button.png",true,80,20); } ,setupAnimation: function(animationName,frameIndex) { frameIndex = Math.min(frameIndex,this.animation._sprite.get_numFrames() - 1) | 0; this.animation.add(animationName,[frameIndex]); } ,destroy: function() { this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label)); this._spriteLabel = null; this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp); this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown); this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver); this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut); this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets); this.labelAlphas = null; this.currentInput = null; this.input = null; openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener)); flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); if(this.visible) { this.updateButton(); if(this.lastStatus != this.status) { this.updateStatusAnimation(); this.lastStatus = this.status; } } this.input.update(); } ,updateStatusAnimation: function() { this.animation.play(this.statusAnimations[this.status]); } ,draw: function() { flixel_FlxSprite.prototype.draw.call(this); if(this._spriteLabel != null && this._spriteLabel.visible) { this._spriteLabel.set_cameras(this.get_cameras()); this._spriteLabel.draw(); } } ,stampOnAtlas: function(atlas) { var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key); var result = buttonNode != null; if(buttonNode != null) { var buttonFrames = this.frames; var x = buttonFrames.tileSize.x; var y = buttonFrames.tileSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; var tileFrames = buttonNode.getTileFrames(tileSize); this.set_frames(tileFrames); } if(result && this.label != null) { var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key); result = result && labelNode != null; if(labelNode != null) { this.label.set_frames(labelNode.getImageFrame()); } } return result; } ,updateButton: function() { var overlapFound = this.checkMouseOverlap(); if(!overlapFound) { overlapFound = this.checkTouchOverlap(); } if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) { this.onUpHandler(); } if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) { this.onOutHandler(); } } ,checkMouseOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = this.mouseButtons; while(_g2 < _g3.length) { var buttonID = _g3[_g2]; ++_g2; var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID); if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkTouchOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var touch = _g3[_g2]; ++_g2; if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkInput: function(pointer,input,justPressedPosition,camera) { var tmp; if(this.maxInputMovement != Infinity) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; tmp = flixel_math_FlxPoint.distanceTo(justPressedPosition,pointer.getScreenPosition(null,point1)) > this.maxInputMovement; } else { tmp = false; } if(tmp && input == this.currentInput) { this.currentInput = null; } else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) { this.updateStatus(input); return true; } return false; } ,updateStatus: function(input) { if(input.get_justPressed()) { this.currentInput = input; this.onDownHandler(); } else if(this.status == 0) { if(this.allowSwiping && input.get_pressed()) { this.onDownHandler(); } else { this.onOverHandler(); } } } ,updateLabelPosition: function() { if(this._spriteLabel != null) { this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x); this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y); } } ,updateLabelAlpha: function() { if(this._spriteLabel != null && this.labelAlphas.length > this.status) { this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]); } } ,onUpEventListener: function(_) { if(this.visible && this.exists && this.active && this.status == 2) { this.onUpHandler(); } } ,onUpHandler: function() { this.set_status(1); this.input.release(); this.currentInput = null; var _this = this.onUp; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onDownHandler: function() { this.set_status(2); this.input.press(); var _this = this.onDown; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOverHandler: function() { if(!flixel_FlxG.mouse.enabled) { this.set_status(0); return; } this.set_status(1); var _this = this.onOver; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOutHandler: function() { this.set_status(0); this.input.release(); var _this = this.onOut; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,set_label: function(Value) { if(Value != null) { Value.scrollFactor.put(); Value.scrollFactor = this.scrollFactor; } this.label = Value; this._spriteLabel = this.label; this.updateLabelPosition(); return Value; } ,set_status: function(Value) { this.status = Value; this.updateLabelAlpha(); return this.status; } ,set_alpha: function(Value) { flixel_FlxSprite.prototype.set_alpha.call(this,Value); this.updateLabelAlpha(); return this.alpha; } ,set_x: function(Value) { flixel_FlxSprite.prototype.set_x.call(this,Value); this.updateLabelPosition(); return this.x; } ,set_y: function(Value) { flixel_FlxSprite.prototype.set_y.call(this,Value); this.updateLabelPosition(); return this.y; } ,get_justReleased: function() { return this.input.current == -1; } ,get_released: function() { var _this = this.input; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_pressed: function() { var _this = this.input; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressed: function() { return this.input.current == 2; } ,__class__: flixel_ui_FlxTypedButton ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"}) }); var flixel_addons_ui_interfaces_ICursorPointable = function() { }; $hxClasses["flixel.addons.ui.interfaces.ICursorPointable"] = flixel_addons_ui_interfaces_ICursorPointable; flixel_addons_ui_interfaces_ICursorPointable.__name__ = "flixel.addons.ui.interfaces.ICursorPointable"; flixel_addons_ui_interfaces_ICursorPointable.__isInterface__ = true; var flixel_addons_ui_interfaces_IFlxUIButton = function() { }; $hxClasses["flixel.addons.ui.interfaces.IFlxUIButton"] = flixel_addons_ui_interfaces_IFlxUIButton; flixel_addons_ui_interfaces_IFlxUIButton.__name__ = "flixel.addons.ui.interfaces.IFlxUIButton"; flixel_addons_ui_interfaces_IFlxUIButton.__isInterface__ = true; flixel_addons_ui_interfaces_IFlxUIButton.__interfaces__ = [flixel_util_IFlxDestroyable,flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_interfaces_IFlxUIButton.prototype = { set_toggled: null ,set_toggle_label: null ,get_justMousedOver: null ,get_mouseIsOver: null ,get_mouseIsOut: null ,get_justMousedOut: null ,set_status: null ,up_color: null ,over_color: null ,down_color: null ,up_toggle_color: null ,over_toggle_color: null ,down_toggle_color: null ,up_visible: null ,over_visible: null ,down_visible: null ,up_toggle_visible: null ,over_toggle_visible: null ,down_toggle_visible: null ,resize_ratio: null ,resize_point: null ,has_toggle: null ,toggled: null ,toggle_label: null ,autoResizeLabel: null ,autoCenterLabel: null ,loadGraphicSlice9: null ,loadGraphicsMultiple: null ,loadGraphicsUpOverDown: null ,forceStateHandler: null ,status: null ,__class__: flixel_addons_ui_interfaces_IFlxUIButton ,__properties__: {set_status:"set_status",get_justMousedOut:"get_justMousedOut",get_mouseIsOut:"get_mouseIsOut",get_mouseIsOver:"get_mouseIsOver",get_justMousedOver:"get_justMousedOver",set_toggle_label:"set_toggle_label",set_toggled:"set_toggled"} }; var flixel_addons_ui_FlxUITypedButton = function(X,Y,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._centerLabelOffset = null; this._src_h = 0; this._src_w = 0; this._no_graphic = false; this._assetsToCleanup = []; this._autoCleanup = true; this.autoResizeLabel = false; this.skipButtonUpdate = false; this.round_labels = true; this.down_toggle_visible = true; this.over_toggle_visible = true; this.up_toggle_visible = true; this.down_visible = true; this.over_visible = true; this.up_visible = true; this.down_toggle_color = null; this.over_toggle_color = null; this.up_toggle_color = null; this.down_color = null; this.over_color = null; this.up_color = null; this.broadcastToFlxUI = true; this.toggled = false; this.has_toggle = false; this.tile = 0; this.resize_point = null; this.resize_ratio_axis = 1; this.resize_ratio = -1; flixel_ui_FlxTypedButton.call(this,X,Y,OnClick); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this._centerLabelOffset = point; this.statusAnimations[3] = "normal_toggled"; this.statusAnimations[4] = "highlight_toggled"; this.statusAnimations[5] = "pressed_toggled"; var _g = []; _g.push(1); _g.push(1); _g.push(1); this.labelAlphas = _g; this.inputOver = new flixel_input_FlxInput(0); }; $hxClasses["flixel.addons.ui.FlxUITypedButton"] = flixel_addons_ui_FlxUITypedButton; flixel_addons_ui_FlxUITypedButton.__name__ = "flixel.addons.ui.FlxUITypedButton"; flixel_addons_ui_FlxUITypedButton.__interfaces__ = [flixel_addons_ui_interfaces_ICursorPointable,flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable,flixel_addons_ui_interfaces_IFlxUIButton]; flixel_addons_ui_FlxUITypedButton.__super__ = flixel_ui_FlxTypedButton; flixel_addons_ui_FlxUITypedButton.prototype = $extend(flixel_ui_FlxTypedButton.prototype,{ name: null ,resize_ratio: null ,resize_ratio_axis: null ,resize_point: null ,tile: null ,has_toggle: null ,toggled: null ,set_toggled: function(b) { this.toggled = b; this.updateStatusAnimation(); return this.toggled; } ,broadcastToFlxUI: null ,inputOver: null ,get_justMousedOver: function() { return this.inputOver.current == 2; } ,get_justMousedOut: function() { return this.inputOver.current == -1; } ,get_mouseIsOver: function() { var _this = this.inputOver; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_mouseIsOut: function() { var _this = this.inputOver; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,up_color: null ,over_color: null ,down_color: null ,up_toggle_color: null ,over_toggle_color: null ,down_toggle_color: null ,up_visible: null ,over_visible: null ,down_visible: null ,up_toggle_visible: null ,over_toggle_visible: null ,down_toggle_visible: null ,toggle_label: null ,set_toggle_label: function(f) { if(this.label != null) { this.toggle_label = f; return this.toggle_label; } return null; } ,set_visible: function(Value) { if(this.visible && Value == false) { this.inputOver.release(); } return flixel_ui_FlxTypedButton.prototype.set_visible.call(this,Value); } ,round_labels: null ,skipButtonUpdate: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; return this.skipButtonUpdate; } ,params: null ,set_params: function(p) { this.params = p; return this.params; } ,destroy: function() { this.resize_point = flixel_util_FlxDestroyUtil.put(this.resize_point); flixel_ui_FlxTypedButton.prototype.destroy.call(this); } ,autoResizeLabel: null ,graphicLoaded: function() { flixel_ui_FlxTypedButton.prototype.graphicLoaded.call(this); this.setupAnimation("normal_toggled",3); this.setupAnimation("highlight_toggled",4); this.setupAnimation("pressed_toggled",5); if(this._autoCleanup) { this.cleanup(); } } ,copyGraphic: function(other) { this._src_w = other._src_w; this._src_h = other._src_h; this._frame_indeces = flixel_addons_ui_U.copy_shallow_arr_i(other._frame_indeces); this.tile = other.tile; this.resize_ratio = other.resize_ratio; if(other._centerLabelOffset == null) { this._centerLabelOffset = null; } else { var x = other._centerLabelOffset.x; var y = other._centerLabelOffset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this._centerLabelOffset = new flixel_math_FlxBasePoint(x,y); } this._no_graphic = other._no_graphic; if(other._slice9_arrays != null) { this._slice9_arrays = other._slice9_arrays.slice(); } if(other._slice9_assets != null) { this._slice9_assets = other._slice9_assets.slice(); } if(this._slice9_arrays == null || this._slice9_assets == null) { this.loadGraphic(other.graphic,true,other.get_width(),other.get_height()); } else { this.resize(other.get_width(),other.get_height()); } } ,copyStyle: function(other) { this.up_color = other.up_color; this.over_color = other.over_color; this.down_color = other.down_color; this.up_toggle_color = other.up_toggle_color; this.over_toggle_color = other.over_toggle_color; this.down_toggle_color = other.over_toggle_color; this.up_visible = other.up_visible; this.over_visible = other.over_visible; this.down_visible = other.down_visible; this.up_toggle_visible = other.up_toggle_visible; this.over_toggle_visible = other.over_toggle_visible; this.down_toggle_visible = other.down_toggle_visible; var ctPt = other.getCenterLabelOffset(); this.setCenterLabelOffset(ctPt.x,ctPt.y); var i = 0; var _g = 0; var _g1 = other.labelOffsets; while(_g < _g1.length) { var flxPt = _g1[_g]; ++_g; this.labelOffsets[i].set_x(flxPt.x); this.labelOffsets[i].set_y(flxPt.y); ++i; } i = 0; var _g = 0; var _g1 = other.labelAlphas; while(_g < _g1.length) { var alpha = _g1[_g]; ++_g; this.labelAlphas[i] = alpha; ++i; } } ,setAllLabelOffsets: function(X,Y) { var _g = 0; var _g1 = this.labelOffsets; while(_g < _g1.length) { var labelOffset = _g1[_g]; ++_g; var x = X; var y = Y; if(y == null) { y = 0; } if(x == null) { x = 0; } labelOffset.set_x(x); labelOffset.set_y(y); } } ,update: function(elapsed) { flixel_ui_FlxTypedButton.prototype.update.call(this,elapsed); var tmp; if(this.status == 0) { var _this = this.inputOver; tmp = _this.current == 1 || _this.current == 2; } else { tmp = false; } if(tmp && this.input.current == -1 == false) { this.inputOver.release(); } this.inputOver.update(); if(this.label != null) { var theLabel = this.fetchAndShowCorrectLabel(); theLabel.set_x(this.x + this._centerLabelOffset.x + this.labelOffsets[this.status].x); theLabel.set_y(this.y + this._centerLabelOffset.y + this.labelOffsets[this.status].y); if(this.round_labels) { theLabel.set_x(theLabel.x + 0.5 | 0); theLabel.set_y(theLabel.y + 0.5 | 0); } theLabel.scrollFactor = this.scrollFactor; } } ,updateStatusAnimation: function() { if(this.has_toggle && this.toggled) { this.animation.play(this.statusAnimations[this.status + 3]); } else { flixel_ui_FlxTypedButton.prototype.updateStatusAnimation.call(this); } } ,draw: function() { flixel_ui_FlxTypedButton.prototype.draw.call(this); if(this.has_toggle && this.toggled && this.toggle_label != null && this.toggle_label.visible == true) { this.toggle_label._cameras = this._cameras; this.toggle_label.draw(); } } ,resize: function(W,H) { this.doResize(W,H); } ,doResize: function(W,H,Redraw) { if(Redraw == null) { Redraw = true; } var old_width = this.get_width(); var old_height = this.get_height(); var label_diffx = 0; var label_diffy = 0; if(this.label != null) { label_diffx = this.get_width() - this._spriteLabel.get_width(); label_diffy = this.get_height() - this._spriteLabel.get_height(); } if(W <= 0) { W = 80; } if(H <= 0) { H = 20; } if(Redraw) { if(this._slice9_assets != null) { this.loadGraphicSlice9(this._slice9_assets,W | 0,H | 0,this._slice9_arrays,this.tile,this.resize_ratio,this.has_toggle,this._src_w,this._src_h,this._frame_indeces); } else if(this._no_graphic) { var upB; if(!this.has_toggle) { upB = new openfl_display_BitmapData(W | 0,H * 3 | 0,true,0); } else { upB = new openfl_display_BitmapData(W | 0,H * 6 | 0,true,0); } this.loadGraphicsUpOverDown(upB); } else { this.loadGraphicSlice9(null,W | 0,H | 0,null,this.tile); } } if(this.label != null && this.autoResizeLabel) { if(js_Boot.__implements(this.label,flixel_addons_ui_interfaces_IResizable)) { var targetW = W - label_diffx; var targetH = H - label_diffy; var ir = this.label; ir.resize(targetW,targetH); } } this.autoCenterLabel(); var diff_w = this.get_width() - old_width; var diff_h = this.get_height() - old_height; if(this.resize_point != null) { var delta_x = diff_w * this.resize_point.x; var delta_y = diff_h * this.resize_point.y; this.set_x(this.x - delta_x); this.set_y(this.y - delta_y); } } ,getBmp: function(asset) { return flixel_addons_ui_U.getBmp(asset); } ,loadGraphicsMultiple: function(assets,Key) { if(Key == null) { Key = ""; } this._slice9_assets = null; this._slice9_arrays = null; this.resize_ratio = -1; var key = ""; if(assets.length <= 3) { while(assets.length < 3) assets.push(null); if(assets[1] == null) { assets[1] = assets[0]; } if(assets[2] == null) { assets[2] = assets[1]; } key = assets.join(","); if(Key != "") { key = Key; } if(flixel_FlxG.bitmap._cache.h[key] != null) { this.loadGraphicsUpOverDown(key,false,key); } else { var pixels = this.assembleButtonFrames(this.getBmp(assets[0]),this.getBmp(assets[1]),this.getBmp(assets[2])); this.loadGraphicsUpOverDown(pixels,false,key); } } else if(assets.length <= 6) { while(assets.length < 6) assets.push(null); if(assets[4] == null) { assets[4] = assets[3]; } if(assets[5] == null) { assets[5] = assets[4]; } key = assets.join(","); if(Key != "") { key = Key; } if(flixel_FlxG.bitmap._cache.h[key] != null) { this.loadGraphicsUpOverDown(key,true,key); } else { var pixels_normal = this.assembleButtonFrames(this.getBmp(assets[0]),this.getBmp(assets[1]),this.getBmp(assets[2])); var pixels_toggle = this.assembleButtonFrames(this.getBmp(assets[3]),this.getBmp(assets[4]),this.getBmp(assets[5])); var pixels = this.combineToggleBitmaps(pixels_normal,pixels_toggle); this.loadGraphicsUpOverDown(pixels,true,key); pixels_normal.dispose(); pixels_toggle.dispose(); } } } ,loadGraphicsUpOverDown: function(asset,for_toggle,key) { if(for_toggle == null) { for_toggle = false; } this._slice9_assets = null; this._slice9_arrays = null; this.resize_ratio = -1; if(for_toggle) { this.has_toggle = true; } var upB = null; var overB = null; var downB = null; var bd = null; if(((asset) instanceof openfl_display_BitmapData)) { bd = asset; } else if(typeof(asset) == "string") { bd = this.getBmp(asset); } upB = this.grabButtonFrame(bd,0,this.has_toggle,0,0,key); overB = this.grabButtonFrame(bd,1,this.has_toggle,0,0,key); downB = this.grabButtonFrame(bd,2,this.has_toggle,0,0,key); var normalGraphic = key; if(key == null || key == "" || flixel_FlxG.bitmap._cache.h[key] != null == false) { normalGraphic = this.assembleButtonFrames(upB,overB,downB); } if(this.has_toggle) { var normalPixels = this.assembleButtonFrames(upB,overB,downB); upB = this.grabButtonFrame(bd,0 + 3,true,0,0,key); overB = this.grabButtonFrame(bd,1 + 3,true,0,0,key); downB = this.grabButtonFrame(bd,2 + 3,true,0,0,key); var togglePixels = this.assembleButtonFrames(upB,overB,downB); var combinedPixels = this.combineToggleBitmaps(normalPixels,togglePixels); normalPixels = flixel_util_FlxDestroyUtil.dispose(normalPixels); togglePixels = flixel_util_FlxDestroyUtil.dispose(togglePixels); this.loadGraphic(combinedPixels,true,upB.width,upB.height,false,key); } else { this.loadGraphic(normalGraphic,true,upB.width,upB.height,false,key); } } ,loadGraphicSlice9: function(assets,W,H,slice9,Tile,Resize_Ratio,isToggle,src_w,src_h,frame_indeces) { if(src_h == null) { src_h = 0; } if(src_w == null) { src_w = 0; } if(isToggle == null) { isToggle = false; } if(Resize_Ratio == null) { Resize_Ratio = -1; } if(Tile == null) { Tile = 0; } if(H == null) { H = 20; } if(W == null) { W = 80; } if(src_w != 0) { this._src_w = src_w; } if(src_h != 0) { this._src_h = src_h; } this.tile = Tile; this.has_toggle = isToggle; this.resize_ratio = Resize_Ratio; this._slice9_assets = assets; this._slice9_arrays = slice9; var key = ""; var arr_bmpData = []; var arr_flx9 = []; if(frame_indeces == null) { if(this.has_toggle) { frame_indeces = [0,1,2,3,4,5]; } else { frame_indeces = [0,1,2]; } } else { var max_index = 2; if(this.has_toggle) { max_index = 5; } while(frame_indeces.length < max_index + 1) frame_indeces.push(frame_indeces.length - 1); var _g = 0; var _g1 = frame_indeces.length; while(_g < _g1) { var i = _g++; if(frame_indeces[i] > 5) { frame_indeces[i] = 5; } else if(frame_indeces[i] < 0) { frame_indeces[i] = 0; } } } this._frame_indeces = frame_indeces; if(W == 0) { W = 80; } if(H == 0) { H = 20; } var pt = flixel_addons_ui_U.applyResize(this.resize_ratio,this.resize_ratio_axis,W,H); W = pt.x | 0; H = pt.y | 0; if(assets == null) { var temp; if(!isToggle) { assets = ["flixel/flixel-ui/img/button.png"]; slice9 = [flixel_util_FlxStringUtil.toIntArray("6,6,11,11")]; temp = this.getBmp(assets[0]); this._src_w = temp.width | 0; this._src_h = temp.height / 3 | 0; } else { assets = ["flixel/flixel-ui/img/button_toggle.png"]; slice9 = [flixel_util_FlxStringUtil.toIntArray("6,6,11,11")]; temp = this.getBmp(assets[0]); this._src_w = temp.width | 0; this._src_h = temp.height / 6 | 0; } temp = null; } if(!this.has_toggle && assets.length <= 3) { arr_bmpData = [null,null,null]; arr_flx9 = [null,null,null]; } else { this.has_toggle = true; arr_bmpData = [null,null,null,null,null,null]; arr_flx9 = [null,null,null,null,null,null]; } this._flashRect2.width = W; this._flashRect2.height = H; var midKey = key += Std.string(assets) + "_slice9=" + Std.string(slice9) + "_src=" + this._src_w + "x" + this._src_h; key += "_final=" + W + "x" + H + "_fi=" + Std.string(this._frame_indeces); if(assets.length == 1) { var all = this.getBmp(assets[0]); var keySuffix = "_all"; if(this._src_w == 0 || this._src_h == 0) { throw new openfl_errors_Error("Ambiguous situation! If you only provide one asset, you MUST provide src_w and src_h. Otherwise I can't tell if it's a stacked set of frames or a single frame."); } var multiFrame = all.height > this._src_h; keySuffix += multiFrame ? "_multiframe" : ""; key += keySuffix; midKey += keySuffix; if(flixel_FlxG.bitmap._cache.h[key] != null) { this.loadGraphic(key,true,W,H); return; } if(multiFrame) { var _g = 0; var _g1 = arr_bmpData.length; while(_g < _g1) { var i = _g++; arr_bmpData[i] = this.grabButtonFrame(all,i,this.has_toggle,this._src_w,this._src_h,midKey); } if(slice9 != null && slice9[0] != []) { var _g = 0; var _g1 = arr_bmpData.length; while(_g < _g1) { var i = _g++; arr_flx9[i] = new flixel_addons_ui_FlxUI9SliceSprite(0,0,arr_bmpData[i],this._flashRect2,slice9[0],this.tile,false,assets[0] + ":" + i,this.resize_ratio); arr_flx9[i].set_resize_point(this.resize_point); } var _g = 0; var _g1 = arr_bmpData.length; while(_g < _g1) { var i = _g++; arr_bmpData[i] = arr_flx9[i].get_pixels(); } W = arr_bmpData[0].width; H = arr_bmpData[0].height; } } else { arr_bmpData[0] = all; } } else { if(flixel_FlxG.bitmap._cache.h[key] != null) { this.loadGraphic(key,true,W,H); return; } if(!this.has_toggle) { while(assets.length < 3) assets.push(""); } else { while(assets.length < 6) assets.push(""); } if(assets[0] != "") { if(slice9 != null && slice9.length > 0 && slice9[0] != null && slice9[0].length > 0) { while(slice9.length < assets.length) slice9.push(null); if(slice9[0] != null) { arr_flx9[0] = new flixel_addons_ui_FlxUI9SliceSprite(0,0,assets[0],this._flashRect2,slice9[0],this.tile,false,"",this.resize_ratio); } else { arr_flx9[0] = new flixel_addons_ui_FlxUISprite(0,0,assets[0]); } arr_bmpData[0] = arr_flx9[0].get_pixels(); var _g = 1; var _g1 = assets.length; while(_g < _g1) { var i = _g++; if(assets[i] != "") { if(slice9[i] != null) { arr_flx9[i] = new flixel_addons_ui_FlxUI9SliceSprite(0,0,assets[i],this._flashRect2,slice9[i],this.tile,false,"",this.resize_ratio); } else { arr_flx9[i] = new flixel_addons_ui_FlxUISprite(0,0,assets[i]); } arr_bmpData[i] = arr_flx9[i].get_pixels(); } } W = arr_bmpData[0].width; H = arr_bmpData[0].height; } else { var _g = 0; var _g1 = assets.length; while(_g < _g1) { var i = _g++; arr_bmpData[i] = this.getBmp(assets[i]); } W = arr_bmpData[0].width; H = arr_bmpData[0].height; } } else { if(W == 0) { W = 80; } if(H == 0) { H = 20; } arr_bmpData[0] = new openfl_display_BitmapData(W,H * 3,true,0); this._no_graphic = true; } } var normalPixels = null; if(!this.has_toggle) { normalPixels = this.assembleButtonFrames(arr_bmpData[frame_indeces[0]],arr_bmpData[frame_indeces[1]],arr_bmpData[frame_indeces[2]]); flixel_FlxG.bitmap.add(normalPixels,true,key); this.loadGraphic(key,true,W,H); } else { var normalPixels = this.assembleButtonFrames(arr_bmpData[frame_indeces[0]],arr_bmpData[frame_indeces[1]],arr_bmpData[frame_indeces[2]]); var togglePixels = this.assembleButtonFrames(arr_bmpData[frame_indeces[3]],arr_bmpData[frame_indeces[4]],arr_bmpData[frame_indeces[5]]); var combinedPixels = this.combineToggleBitmaps(normalPixels,togglePixels); normalPixels = flixel_util_FlxDestroyUtil.dispose(normalPixels); togglePixels = flixel_util_FlxDestroyUtil.dispose(togglePixels); flixel_FlxG.bitmap.add(combinedPixels,true,key); this.loadGraphic(key,true,W,H); } var _g = 0; var _g1 = arr_flx9.length; while(_g < _g1) { var i = _g++; if(arr_flx9[i] != null) { arr_flx9[i].destroy(); arr_flx9[i] = null; } } while(arr_flx9.length > 0) arr_flx9.pop(); arr_flx9 = null; while(arr_bmpData.length > 0) arr_bmpData.pop(); arr_bmpData = null; } ,autoCenterLabel: function() { if(this.label != null) { var offX = 0; var offY = 0; offX = this.get_width() - this._spriteLabel.get_width(); if(((this.label) instanceof flixel_addons_ui_FlxUIText)) { var tlabel = this.label; offX = (this.get_width() - tlabel.get_fieldWidth()) / 2; offY = (this.get_height() - tlabel.get_height()) / 2; } else { offX = (this.get_width() - this._spriteLabel.get_width()) / 2; offY = (this.get_height() - this._spriteLabel.get_height()) / 2; } this._centerLabelOffset.set_x(offX); this._centerLabelOffset.set_y(offY); } } ,setCenterLabelOffset: function(X,Y) { this._centerLabelOffset.set_x(X); this._centerLabelOffset.set_y(Y); } ,getCenterLabelOffset: function() { var x = this._centerLabelOffset.x; var y = this._centerLabelOffset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; return point; } ,forceStateHandler: function(event) { switch(event) { case "click_button": this.onUpHandler(); break; case "down_button": this.onDownHandler(); break; case "out_button": this.onOutHandler(); break; case "over_button": this.onOverHandler(); break; } } ,grabButtonFrame: function(all_frames,button_state,for_toggle,src_w,src_h,key) { if(src_h == null) { src_h = 0; } if(src_w == null) { src_w = 0; } if(for_toggle == null) { for_toggle = false; } var h = src_h; if(h == 0) { if(!for_toggle) { h = all_frames.height / 3 | 0; } else { h = all_frames.height / 6 | 0; } } var w = src_w; if(w == 0) { w = all_frames.width; } this._flashRect.x = 0; this._flashRect.y = button_state * h; this._flashRect.width = w; this._flashRect.height = h; if(this._flashRect.y >= all_frames.height) { var framesHigh = all_frames.height / h | 0; if(framesHigh == 4) { if(button_state == 1 + 3) { this._flashRect.y = 3 * h; } else if(button_state == 2 + 3) { this._flashRect.y = 2 * h; } } } var frameKey = key + "{x:" + this._flashRect.x + "y:" + this._flashRect.y + "w:" + this._flashRect.width + "h:" + this._flashRect.height + "}"; if(frameKey != null) { if(flixel_FlxG.bitmap._cache.h[frameKey] != null) { return flixel_FlxG.bitmap._cache.h[frameKey].bitmap; } } var pixels = new openfl_display_BitmapData(w,h); pixels.copyPixels(all_frames,this._flashRect,this._flashPointZero); if(key != null) { flixel_FlxG.bitmap.add(pixels,true,frameKey); this.addToCleanup(frameKey); } return pixels; } ,combineToggleBitmaps: function(normal,toggle) { var combined = new openfl_display_BitmapData(normal.width,normal.height + toggle.height); combined.copyPixels(normal,normal.rect,this._flashPointZero); this._flashPoint.x = 0; this._flashPoint.y = normal.height; combined.copyPixels(toggle,toggle.rect,this._flashPoint); return combined; } ,assembleButtonFrames: function(upB,overB,downB) { var pixels; if(overB != null) { if(downB != null) { pixels = new openfl_display_BitmapData(upB.width,upB.height * 3); } else { pixels = new openfl_display_BitmapData(upB.width,upB.height * 2); } } else { pixels = new openfl_display_BitmapData(upB.width,upB.height); } pixels.copyPixels(upB,upB.rect,this._flashPointZero); if(overB != null) { this._flashPoint.x = 0; this._flashPoint.y = upB.height; pixels.copyPixels(overB,overB.rect,this._flashPoint); if(downB != null) { this._flashPoint.y = upB.height * 2; pixels.copyPixels(downB,downB.rect,this._flashPoint); } } return pixels; } ,updateButton: function() { if(!this.skipButtonUpdate) { flixel_ui_FlxTypedButton.prototype.updateButton.call(this); } } ,addToCleanup: function(str) { if(this._assetsToCleanup == null) { this._assetsToCleanup = []; } if(this._assetsToCleanup.indexOf(str) == -1) { this._assetsToCleanup.push(str); } } ,cleanup: function() { if(this._assetsToCleanup == null) { return; } var _g = 0; var _g1 = this._assetsToCleanup; while(_g < _g1.length) { var key = _g1[_g]; ++_g; flixel_FlxG.bitmap.removeByKey(key); } this._assetsToCleanup = null; } ,fetchAndShowCorrectLabel: function() { if(this.has_toggle) { if(this.toggled && this.toggle_label != null) { this._spriteLabel.set_visible(false); this.toggle_label.set_visible(true); return this.toggle_label; } else { if(this.toggle_label != null) { this.toggle_label.set_visible(false); } this._spriteLabel.set_visible(true); return this.label; } } return this.label; } ,onUpHandler: function() { if(this.has_toggle) { this.set_toggled(!this.toggled); } flixel_ui_FlxTypedButton.prototype.onUpHandler.call(this); if(this.label != null) { var theLabel = this.fetchAndShowCorrectLabel(); theLabel.set_visible(this.toggled ? this.up_toggle_visible : this.up_visible); var thecol = this.toggled ? this.up_toggle_color : this.up_color; if(thecol != null) { theLabel.set_color(thecol); } } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("click_button",this,null,this.params); } } ,onDownHandler: function() { flixel_ui_FlxTypedButton.prototype.onDownHandler.call(this); if(this.label != null) { var theLabel = this.fetchAndShowCorrectLabel(); theLabel.set_visible(this.toggled ? this.down_toggle_visible : this.down_visible); var thecol = this.toggled ? this.down_toggle_color : this.down_color; if(thecol != null) { theLabel.set_color(thecol); } } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("down_button",this,null,this.params); } } ,onOverHandler: function() { flixel_ui_FlxTypedButton.prototype.onOverHandler.call(this); this.inputOver.press(); if(this.label != null) { var theLabel = this.fetchAndShowCorrectLabel(); theLabel.set_visible(this.toggled ? this.over_toggle_visible : this.over_visible); var thecol = this.toggled ? this.over_toggle_color : this.over_color; if(thecol != null) { theLabel.set_color(thecol); } } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("over_button",this,null,this.params); } } ,onOutHandler: function() { flixel_ui_FlxTypedButton.prototype.onOutHandler.call(this); this.inputOver.release(); if(this.label != null) { var theLabel = this.fetchAndShowCorrectLabel(); theLabel.set_visible(this.toggled ? this.up_toggle_visible : this.up_visible); var thecol = this.toggled ? this.up_toggle_color : this.up_color; if(thecol != null) { theLabel.set_color(thecol); } } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("out_button",this,null,this.params); } } ,set_x: function(NewX) { flixel_ui_FlxTypedButton.prototype.set_x.call(this,NewX); if(this._spriteLabel != null) { this._spriteLabel.set_x(this.x + this._centerLabelOffset.x + this.labelOffsets[this.status].x); if(this.round_labels) { this._spriteLabel.set_x(this._spriteLabel.x + 0.5 | 0); } if(this.has_toggle && this.toggle_label != null) { this.toggle_label.set_x(this._spriteLabel.x); } } return NewX; } ,set_y: function(NewY) { flixel_ui_FlxTypedButton.prototype.set_y.call(this,NewY); if(this.label != null) { this._spriteLabel.set_y(this.y + this._centerLabelOffset.y + this.labelOffsets[this.status].y); if(this.round_labels) { this._spriteLabel.set_y(this._spriteLabel.y + 0.5 | 0); } if(this.has_toggle && this.toggle_label != null) { this.toggle_label.set_y(this._spriteLabel.y); } } return NewY; } ,_autoCleanup: null ,_assetsToCleanup: null ,_no_graphic: null ,_src_w: null ,_src_h: null ,_frame_indeces: null ,_slice9_arrays: null ,_slice9_assets: null ,_centerLabelOffset: null ,__class__: flixel_addons_ui_FlxUITypedButton ,__properties__: $extend(flixel_ui_FlxTypedButton.prototype.__properties__,{set_params:"set_params",set_skipButtonUpdate:"set_skipButtonUpdate",set_toggle_label:"set_toggle_label",get_justMousedOut:"get_justMousedOut",get_mouseIsOut:"get_mouseIsOut",get_mouseIsOver:"get_mouseIsOver",get_justMousedOver:"get_justMousedOver",set_toggled:"set_toggled"}) }); var flixel_addons_ui_interfaces_ILabeled = function() { }; $hxClasses["flixel.addons.ui.interfaces.ILabeled"] = flixel_addons_ui_interfaces_ILabeled; flixel_addons_ui_interfaces_ILabeled.__name__ = "flixel.addons.ui.interfaces.ILabeled"; flixel_addons_ui_interfaces_ILabeled.__isInterface__ = true; flixel_addons_ui_interfaces_ILabeled.prototype = { getLabel: null ,setLabel: null ,__class__: flixel_addons_ui_interfaces_ILabeled }; var flixel_addons_ui_FlxUIButton = function(X,Y,Label,OnClick,LoadDefaultGraphics,LoadBlank,Color) { if(Color == null) { Color = -1; } if(LoadBlank == null) { LoadBlank = false; } if(LoadDefaultGraphics == null) { LoadDefaultGraphics = true; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.down_toggle_style = null; this.over_toggle_style = null; this.up_toggle_style = null; this.down_style = null; this.over_style = null; this.up_style = null; flixel_addons_ui_FlxUITypedButton.call(this,X,Y,OnClick); this.set_color(Color); if(Label != null) { this.set_label(new flixel_addons_ui_FlxUIText(0,0,80,Label,8)); this.label.setFormat(null,8,3355443,"center"); } if(LoadBlank) { this._no_graphic = true; } if(LoadDefaultGraphics) { this.resize(this.get_width(),this.get_height()); } else if(this._no_graphic == false) { this.doResize(this.get_width(),this.get_height(),false); } else { this.doResize(this.get_width(),this.get_height(),true); } }; $hxClasses["flixel.addons.ui.FlxUIButton"] = flixel_addons_ui_FlxUIButton; flixel_addons_ui_FlxUIButton.__name__ = "flixel.addons.ui.FlxUIButton"; flixel_addons_ui_FlxUIButton.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIButton,flixel_addons_ui_interfaces_ILabeled]; flixel_addons_ui_FlxUIButton.__super__ = flixel_addons_ui_FlxUITypedButton; flixel_addons_ui_FlxUIButton.prototype = $extend(flixel_addons_ui_FlxUITypedButton.prototype,{ _noIconGraphicsBkup: null ,up_style: null ,over_style: null ,down_style: null ,up_toggle_style: null ,over_toggle_style: null ,down_toggle_style: null ,setLabelFormat: function(Font,Size,Color,Alignment,BorderStyle,BorderColor,Embedded) { if(Embedded == null) { Embedded = true; } if(BorderColor == null) { BorderColor = 0; } if(Color == null) { Color = -1; } if(Size == null) { Size = 8; } if(this.label != null) { this.label.setFormat(Font,Size,Color,Alignment,BorderStyle,BorderColor,Embedded); return this.label; } return null; } ,autoCenterLabel: function() { flixel_addons_ui_FlxUITypedButton.prototype.autoCenterLabel.call(this); } ,clone: function() { var newButton = new flixel_addons_ui_FlxUIButton(0,0,this.label == null ? null : this.label.text,this.onUp.callback,false); newButton.copyGraphic(this); newButton.copyStyle(this); return newButton; } ,copyStyle: function(other) { flixel_addons_ui_FlxUITypedButton.prototype.copyStyle.call(this,other); if(((other) instanceof flixel_addons_ui_FlxUIButton)) { var fuib = other; this.up_style = fuib.up_style; this.over_style = fuib.over_style; this.down_style = fuib.down_style; this.up_toggle_style = fuib.up_toggle_style; this.over_toggle_style = fuib.over_toggle_style; this.down_toggle_style = fuib.down_toggle_style; var t = fuib.label; var tf = t.textField.get_defaultTextFormat(); if(t._font.indexOf(flixel_system_FlxAssets.FONT_DEFAULT) == -1) { var fd = flixel_addons_ui_FontDef.copyFromFlxText(t); fd.apply(null,this.label); } else { var flxAlign = flixel_text_FlxTextAlign.fromOpenFL(tf.align); this.label.setFormat(null,tf.size | 0,tf.color,flxAlign,t.borderStyle,t.borderColor,t.textField.get_embedFonts()); } } } ,setLabel: function(t) { this.set_label(t); return this.label; } ,getLabel: function() { return this.label; } ,resize: function(W,H) { flixel_addons_ui_FlxUITypedButton.prototype.resize.call(this,W,H); } ,addIcon: function(icon,X,Y,center) { if(center == null) { center = true; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._noIconGraphicsBkup = this.graphic.bitmap.clone(); var newBmp = this._noIconGraphicsBkup.clone(); var key = this.graphic.key + ",icon:" + icon.graphic.key; var newGraphic = flixel_FlxG.bitmap.add(newBmp,false,key); this.loadGraphic(newGraphic,true,this.get_width() | 0,this.get_height() | 0); var sx = X; var sy = Y; if(center) { sx = (this.get_width() - icon.get_width()) / 2 | 0; sy = (this.get_height() - icon.get_height()) / 2 | 0; } var _g = 0; var _g1 = this.get_numFrames(); while(_g < _g1) { var i = _g++; this.stamp(icon,sx + (this.labelOffsets[i > 2 ? 2 : i].x | 0),sy + (i * this.get_height() | 0) + (this.labelOffsets[i > 2 ? 2 : i].y | 0)); } } ,removeIcon: function() { if(this._noIconGraphicsBkup != null) { this.graphic.bitmap.fillRect(this.graphic.bitmap.rect,0); this.graphic.bitmap.copyPixels(this._noIconGraphicsBkup,new openfl_geom_Rectangle(0,0,this._noIconGraphicsBkup.width,this._noIconGraphicsBkup.height),new openfl_geom_Point()); this.dirty = true; } } ,changeIcon: function(newIcon) { this.removeIcon(); this.addIcon(newIcon); } ,destroy: function() { this._noIconGraphicsBkup = flixel_util_FlxDestroyUtil.dispose(this._noIconGraphicsBkup); flixel_addons_ui_FlxUITypedButton.prototype.destroy.call(this); } ,loadDefaultGraphic: function() { } ,resetHelpers: function() { flixel_addons_ui_FlxUITypedButton.prototype.resetHelpers.call(this); if(this.label != null) { var tmp = this.label; var tmp1 = this.get_width() | 0; tmp.set_width(this.label.frameWidth = tmp1); this.label.set_fieldWidth(this.label.get_width()); this.label.set_size(this.label._defaultFormat.size | 0); } } ,onDownHandler: function() { flixel_addons_ui_FlxUITypedButton.prototype.onDownHandler.call(this); if(this.label != null) { if(this.toggled && this.down_toggle_style != null) { this.label.set_color(this.down_toggle_style.color); if(this.down_toggle_style.border != null) { this.label.set_borderStyle(this.down_toggle_style.border.style); this.label.set_borderColor(this.down_toggle_style.border.color); this.label.set_borderSize(this.down_toggle_style.border.size); this.label.set_borderQuality(this.down_toggle_style.border.quality); } } else if(!this.toggled && this.down_style != null) { this.label.set_color(this.down_style.color); if(this.down_style.border != null) { this.label.set_borderStyle(this.down_style.border.style); this.label.set_borderColor(this.down_style.border.color); this.label.set_borderSize(this.down_style.border.size); this.label.set_borderQuality(this.down_style.border.quality); } } } } ,onOverHandler: function() { flixel_addons_ui_FlxUITypedButton.prototype.onOverHandler.call(this); if(this.label != null) { if(this.toggled && this.over_toggle_style != null) { this.label.set_color(this.over_toggle_style.color); if(this.over_toggle_style.border != null) { this.label.set_borderStyle(this.over_toggle_style.border.style); this.label.set_borderColor(this.over_toggle_style.border.color); this.label.set_borderSize(this.over_toggle_style.border.size); this.label.set_borderQuality(this.over_toggle_style.border.quality); } } else if(!this.toggled && this.over_style != null) { this.label.set_color(this.over_style.color); if(this.over_style.border != null) { this.label.set_borderStyle(this.over_style.border.style); this.label.set_borderColor(this.over_style.border.color); this.label.set_borderSize(this.over_style.border.size); this.label.set_borderQuality(this.over_style.border.quality); } } } } ,onOutHandler: function() { flixel_addons_ui_FlxUITypedButton.prototype.onOutHandler.call(this); if(this.label != null) { if(this.toggled && this.up_toggle_style != null) { this.label.set_color(this.up_toggle_style.color); if(this.up_toggle_style.border != null) { this.label.set_borderStyle(this.up_toggle_style.border.style); this.label.set_borderColor(this.up_toggle_style.border.color); this.label.set_borderSize(this.up_toggle_style.border.size); this.label.set_borderQuality(this.up_toggle_style.border.quality); } } else if(!this.toggled && this.up_style != null) { this.label.set_color(this.up_style.color); if(this.up_style.border != null) { this.label.set_borderStyle(this.up_style.border.style); this.label.set_borderColor(this.up_style.border.color); this.label.set_borderSize(this.up_style.border.size); this.label.set_borderQuality(this.up_style.border.quality); } } } } ,onUpHandler: function() { flixel_addons_ui_FlxUITypedButton.prototype.onUpHandler.call(this); if(this.label != null) { if(this.toggled && this.up_toggle_style != null) { this.label.set_color(this.up_toggle_style.color); if(this.up_toggle_style.border != null) { this.label.set_borderStyle(this.up_toggle_style.border.style); this.label.set_borderColor(this.up_toggle_style.border.color); this.label.set_borderSize(this.up_toggle_style.border.size); this.label.set_borderQuality(this.up_toggle_style.border.quality); } } else if(!this.toggled && this.up_style != null) { this.label.set_color(this.up_style.color); if(this.up_style.border != null) { this.label.set_borderStyle(this.up_style.border.style); this.label.set_borderColor(this.up_style.border.color); this.label.set_borderSize(this.up_style.border.size); this.label.set_borderQuality(this.up_style.border.quality); } } } } ,__class__: flixel_addons_ui_FlxUIButton }); var flixel_addons_ui_FlxUICheckBox = function(X,Y,Box,Check,Label,LabelW,Params,Callback) { if(LabelW == null) { LabelW = 100; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.skipButtonUpdate = false; this.box_space = 2; this.textY = 0; this.textX = 0; this.checkbox_dirty = false; this.textIsClickable = true; this.checked = false; this.max_width = -1; flixel_addons_ui_FlxTypedUIGroup.call(this); this.callback = Callback; this.set_params(Params); if(Box == null) { Box = "flixel/flixel-ui/img/check_box.png"; } if(((Box) instanceof flixel_FlxSprite)) { this.box = Box; } else { this.box = new flixel_FlxSprite(); this.box.loadGraphic(Box,true); } this.button = new flixel_addons_ui_FlxUIButton(0,0,Label,$bind(this,this._clickCheck)); this.button.label.setFormat(null,8,16777215,"left",flixel_text_FlxTextBorderStyle.OUTLINE); this.button.label.set_fieldWidth(LabelW); this.button.up_color = 16777215; this.button.down_color = 16777215; this.button.over_color = 16777215; this.button.up_toggle_color = 16777215; this.button.down_toggle_color = 16777215; this.button.over_toggle_color = 16777215; this.button.loadGraphicSlice9(["","",""],this.box.get_width() + this.box_space + LabelW | 0,this.box.get_height() | 0); this.max_width = this.box.get_width() + this.box_space + LabelW | 0; this.button.onUp.callback = $bind(this,this._clickCheck); if(Check == null) { Check = "flixel/flixel-ui/img/check_mark.png"; } if(((Check) instanceof flixel_FlxSprite)) { this.mark = Check; } else { this.mark = new flixel_FlxSprite(); this.mark.loadGraphic(Check); } this.add(this.box); this.add(this.mark); this.add(this.button); this.anchorLabelX(); this.anchorLabelY(); this.set_checked(false); this.button.setAllLabelOffsets(0,0); this.set_x(X); this.set_y(Y); this.set_textX(0); this.set_textY(0); }; $hxClasses["flixel.addons.ui.FlxUICheckBox"] = flixel_addons_ui_FlxUICheckBox; flixel_addons_ui_FlxUICheckBox.__name__ = "flixel.addons.ui.FlxUICheckBox"; flixel_addons_ui_FlxUICheckBox.__interfaces__ = [flixel_addons_ui_interfaces_ICursorPointable,flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_ILabeled]; flixel_addons_ui_FlxUICheckBox.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUICheckBox.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ box: null ,mark: null ,button: null ,max_width: null ,checked: null ,params: null ,textIsClickable: null ,checkbox_dirty: null ,textX: null ,textY: null ,box_space: null ,skipButtonUpdate: null ,callback: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; this.button.set_skipButtonUpdate(this.skipButtonUpdate); return this.skipButtonUpdate; } ,set_params: function(p) { this.params = p; if(this.params == null) { this.params = []; } var nb = { name : "checked", value : false}; this.params.push(nb); return this.params; } ,set_color: function(Value) { if(this.button != null) { this.button.label.set_color(Value); } return flixel_addons_ui_FlxTypedUIGroup.prototype.set_color.call(this,Value); } ,setLabel: function(t) { if(this.button == null) { return null; } this.button.set_label(t); return this.button.label; } ,getLabel: function() { if(this.button == null) { return null; } return this.button.label; } ,set_visible: function(Value) { this.visible = Value; return this.visible; } ,anchorTime: function(f) { this.anchorLabelY(); } ,set_textX: function(n) { this.textX = n; this.anchorLabelX(); return this.textX; } ,set_textY: function(n) { this.textY = n; this.anchorLabelY(); return this.textY; } ,anchorLabelX: function() { if(this.button != null) { this.button.label.offset.set_x(-(this.box.get_width() + this.box_space + this.textX)); } } ,anchorLabelY: function() { if(this.button != null) { this.button.set_y(this.box.y + (this.box.get_height() - this.button.get_height()) / 2 + this.textY); } } ,destroy: function() { flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); if(this.mark != null) { this.mark.destroy(); this.mark = null; } if(this.box != null) { this.box.destroy(); this.box = null; } if(this.button != null) { this.button.destroy(); this.button = null; } } ,get_text: function() { return this.button.label.text; } ,set_text: function(value) { this.button.label.set_text(value); this.checkbox_dirty = true; return value; } ,update: function(elapsed) { flixel_addons_ui_FlxTypedUIGroup.prototype.update.call(this,elapsed); if(this.checkbox_dirty) { if(this.button.label != null) { if(((this.button.label) instanceof flixel_addons_ui_FlxUIText)) { var ftu = this.button.label; ftu.drawFrame(); } this.anchorLabelX(); this.anchorLabelY(); this.button.set_width(this.box.frameWidth + this.box_space + this.button.label.textField.get_textWidth()); this.checkbox_dirty = false; } } } ,set_checked: function(b) { this.mark.set_visible(b); return this.checked = b; } ,_clickCheck: function() { if(!this.visible) { return; } this.set_checked(!this.checked); if(this.callback != null) { this.callback(); } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("click_check_box",this,this.checked,this.params); } } ,__class__: flixel_addons_ui_FlxUICheckBox ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_text:"set_text",get_text:"get_text",set_skipButtonUpdate:"set_skipButtonUpdate",set_textY:"set_textY",set_textX:"set_textX",set_params:"set_params",set_checked:"set_checked"}) }); var flixel_addons_ui_FlxUIColorSwatch = function(X,Y,Color,Colors,Asset,Callback,Width,Height) { if(Height == null) { Height = -1; } if(Width == null) { Width = -1; } if(Color == null) { Color = 16777215; } this._skipRefresh = false; this._origKey = ""; flixel_addons_ui_FlxUIButton.call(this,X,Y,null,$bind(this,this.onClick)); this.callback = Callback; this._skipRefresh = true; if(Width != -1 && Height != -1) { this.makeGraphic(Width,Height,-1,true,"Swatch" + Width + "x" + Height); } else if(Asset != null) { this.loadGraphic(Asset); } else { this.loadGraphic("flixel/flixel-ui/img/swatch.png"); } this._origKey = this.graphic.key; if(Color != 16777215) { this.set_multiColored(false); this.set_color(Color); } if(Colors != null) { this.set_multiColored(true); this.set_colors(Colors); } this._skipRefresh = false; this.refreshColor(); }; $hxClasses["flixel.addons.ui.FlxUIColorSwatch"] = flixel_addons_ui_FlxUIColorSwatch; flixel_addons_ui_FlxUIColorSwatch.__name__ = "flixel.addons.ui.FlxUIColorSwatch"; flixel_addons_ui_FlxUIColorSwatch.__super__ = flixel_addons_ui_FlxUIButton; flixel_addons_ui_FlxUIColorSwatch.prototype = $extend(flixel_addons_ui_FlxUIButton.prototype,{ multiColored: null ,hilight: null ,midtone: null ,shadowMid: null ,shadowDark: null ,colors: null ,callback: null ,set_color: function(Color) { this.set_midtone(Color); return flixel_addons_ui_FlxUIButton.prototype.set_color.call(this,this.color); } ,destroy: function() { this.callback = null; flixel_addons_ui_FlxUIButton.prototype.destroy.call(this); } ,setColorAtIndex: function(Color,index) { this._skipRefresh = true; switch(index) { case 0: this.set_hilight(Color); break; case 1: this.set_midtone(Color); break; case 2: this.set_shadowMid(Color); break; case 3: this.set_shadowDark(Color); break; default: this.colors.colors[index] = Color; } this._skipRefresh = false; this.refreshColor(); } ,set_colors: function(Colors) { if(this.colors != null) { this.colors.destroy(); this.colors = null; } this._skipRefresh = true; this.colors = Colors.copy(); this.set_hilight(this.colors.get_hilight()); this.set_midtone(this.colors.get_midtone()); this.set_shadowMid(this.colors.get_shadowMid()); this.set_shadowDark(this.colors.get_shadowDark()); this._skipRefresh = false; this.refreshColor(); return Colors; } ,set_multiColored: function(b) { this.multiColored = b; this.refreshColor(); return this.multiColored; } ,set_hilight: function(i) { this.hilight = i; this.colors.set_hilight(this.hilight); this.refreshColor(); return this.hilight; } ,set_midtone: function(i) { this.midtone = i; this.colors.set_midtone(this.midtone); this.refreshColor(); return this.midtone; } ,set_shadowMid: function(i) { this.shadowMid = i; this.colors.set_shadowMid(this.shadowMid); this.refreshColor(); return this.shadowMid; } ,set_shadowDark: function(i) { this.shadowDark = i; this.colors.set_shadowDark(this.shadowDark); this.refreshColor(); return this.shadowDark; } ,equalsSwatch: function(swatch) { return swatch.doColorsEqual(this.colors); } ,getRawDifferenceSwatch: function(swatch) { return swatch.getRawDifference(this.colors); } ,refreshColor: function() { if(this._skipRefresh) { return; } var key = this.colorKey(); if(this.multiColored) { if(this.graphic.key != key) { if(flixel_FlxG.bitmap._cache.h[key] != null == false) { this.makeGraphic(this.get_width() | 0,this.get_height() | 0,-1,true,key); this._flashRect.x = 0; this._flashRect.y = 0; this._flashRect.width = this.get_pixels().width; this._flashRect.height = this.get_pixels().height; this.get_pixels().fillRect(this._flashRect,-16777216); var tempCols = []; var _g = 0; var _g1 = this.colors.colors.length; while(_g < _g1) { var i = _g++; var col = this.colors.colors[i]; if(col != 0) { tempCols.push(col); } } var thickW = ((this.get_width() - 2) / 2 | 0) / tempCols.length | 0; var thickH = ((this.get_height() - 2) / 2 | 0) / tempCols.length | 0; this._flashRect.x += 1; this._flashRect.y += 1; this._flashRect.width -= 2; this._flashRect.height -= 2; var _g = 0; var _g1 = tempCols.length; while(_g < _g1) { var i = _g++; var col = tempCols[tempCols.length - 1 - i]; this.get_pixels().fillRect(this._flashRect,col); this._flashRect.width -= thickW * 2; this._flashRect.height -= thickH * 2; this._flashRect.x += thickW; this._flashRect.y += thickH; } flixel_addons_ui_U.clearArray(tempCols); tempCols = null; this.calcFrame(); } else { this.loadGraphic(key); } } } else { if(this.graphic.key != key) { this.loadGraphic(key); } this.set_color(this.midtone); } } ,_origKey: null ,_skipRefresh: null ,onClick: function() { if(this.callback != null) { this.callback(); } if(this.broadcastToFlxUI) { if(this.multiColored) { flixel_addons_ui_FlxUI.event("click_color_swatch",this,this.colors); } else { flixel_addons_ui_FlxUI.event("click_color_swatch",this,this.color); } } } ,colorKey: function() { if(this.multiColored) { var str = this._origKey; var _g = 0; var _g1 = this.colors.colors; while(_g < _g1.length) { var c = _g1[_g]; ++_g; var Alpha = false; var Prefix = false; if(Prefix == null) { Prefix = true; } if(Alpha == null) { Alpha = true; } var str1 = Alpha ? StringTools.hex(c >> 24 & 255,2) : ""; str += "+" + ("#" + ((Prefix ? "0x" : "") + str1 + StringTools.hex(c >> 16 & 255,2) + StringTools.hex(c >> 8 & 255,2) + StringTools.hex(c & 255,2))); } return str; } return this._origKey; } ,__class__: flixel_addons_ui_FlxUIColorSwatch ,__properties__: $extend(flixel_addons_ui_FlxUIButton.prototype.__properties__,{set_colors:"set_colors",set_shadowDark:"set_shadowDark",set_shadowMid:"set_shadowMid",set_midtone:"set_midtone",set_hilight:"set_hilight",set_multiColored:"set_multiColored"}) }); var flixel_addons_ui_FlxUIColorSwatchSelecter = function(X,Y,SelectionSprite,list_colors,list_data,list_swatches,SpacingH,SpacingV,MaxColumns,Preview,Swatch) { if(MaxColumns == null) { MaxColumns = -1; } if(SpacingV == null) { SpacingV = 2; } if(SpacingH == null) { SpacingH = 2; } this._dirtyLayout = false; this.destroyed = false; flixel_addons_ui_FlxTypedUIGroup.call(this,X,Y); this._previewGraphic = Preview; this._swatchGraphic = Swatch; if(this._previewGraphic == null) { this._previewGraphic = { asset : null, width : -1, height : -1}; } if(this._swatchGraphic == null) { this._swatchGraphic = { asset : null, width : -1, height : -1}; } if(SelectionSprite != null) { this._selectionSprite = SelectionSprite; } var i = 0; var swatch; if(list_data != null) { var _g = 0; while(_g < list_data.length) { var data = list_data[_g]; ++_g; swatch = new flixel_addons_ui_FlxUIColorSwatch(0,0,null,data,this._swatchGraphic.asset,null,this._swatchGraphic.width,this._swatchGraphic.height); swatch.callback = (function(_g,i) { return function() { _g[0].selectCallback(i[0]); }; })([this],[i]); swatch.broadcastToFlxUI = false; swatch.name = data.name; this.add(swatch); ++i; } } else if(list_colors != null) { var _g = 0; while(_g < list_colors.length) { var color = list_colors[_g]; ++_g; swatch = new flixel_addons_ui_FlxUIColorSwatch(0,0,color,null,this._swatchGraphic.asset,null,this._swatchGraphic.width,this._swatchGraphic.height); swatch.callback = (function(_g,i) { return function() { _g[0].selectCallback(i[0]); }; })([this],[i]); swatch.broadcastToFlxUI = false; swatch.name = "0x" + StringTools.hex(color,6); this.add(swatch); ++i; } } else if(list_swatches != null) { var _g = 0; while(_g < list_swatches.length) { var swatch = list_swatches[_g]; ++_g; swatch.name = "swatch_" + i; swatch.callback = (function(_g,i) { return function() { _g[0].selectCallback(i[0]); }; })([this],[i]); swatch.broadcastToFlxUI = false; this.add(swatch); ++i; } } this.set_spacingH(SpacingH); this.set_spacingV(SpacingV); this.set_maxColumns(MaxColumns); if(this._selectionSprite == null) { if(this.group.members.length >= 1) { var ww = this.group.members[0].get_width() | 0; var hh = this.group.members[0].get_height() | 0; this._selectionSprite = new flixel_FlxSprite(); this._selectionSprite.makeGraphic(ww + 4,hh + 4,-1,false,"selection_sprite_" + ww + "x" + hh + "0xFFFFFFFF"); if(this._flashRect == null) { this._flashRect = new openfl_geom_Rectangle(); } this._flashRect.x = 2; this._flashRect.y = 2; this._flashRect.width = ww; this._flashRect.height = hh; this._selectionSprite.get_pixels().fillRect(this._flashRect,0); this.add(this._selectionSprite); } } this._previewSwatch = new flixel_addons_ui_FlxUIColorSwatch(0,0,null,new flixel_addons_ui_SwatchData("dummy",[-1,-7829368,-12303292,-16777216]),this._previewGraphic.asset,null,this._previewGraphic.width,this._previewGraphic.height); this._previewSwatch.broadcastToFlxUI = false; this.add(this._previewSwatch); this.updateLayout(); this.selectByIndex(0); }; $hxClasses["flixel.addons.ui.FlxUIColorSwatchSelecter"] = flixel_addons_ui_FlxUIColorSwatchSelecter; flixel_addons_ui_FlxUIColorSwatchSelecter.__name__ = "flixel.addons.ui.FlxUIColorSwatchSelecter"; flixel_addons_ui_FlxUIColorSwatchSelecter.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIClickable]; flixel_addons_ui_FlxUIColorSwatchSelecter.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUIColorSwatchSelecter.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ spacingH: null ,spacingV: null ,maxColumns: null ,_previewSwatch: null ,set_spacingH: function(f) { this.spacingH = f; this._dirtyLayout = true; return f; } ,set_spacingV: function(f) { this.spacingV = f; this._dirtyLayout = true; return f; } ,set_maxColumns: function(f) { this.maxColumns = f; this._dirtyLayout = true; return f; } ,skipButtonUpdate: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var thing = _g1[_g]; ++_g; if(thing != this._selectionSprite) { var swatch = thing; swatch.set_skipButtonUpdate(b); } } return b; } ,get_numSwatches: function() { return this.group.members.length - 2; } ,update: function(elapsed) { if(this._dirtyLayout) { this.updateLayout(); this.updateSelected(); } flixel_addons_ui_FlxTypedUIGroup.prototype.update.call(this,elapsed); } ,updateLayout: function() { if(this.group.members == null || this.group.members.length == 0) { return; } var firstSprite = this.group.members[0]; var firstX = this.x; var firstY = this.y; if(firstSprite != null) { firstX = firstSprite.x; firstY = firstSprite.y; } var xx = firstX; var yy = firstY; var columns = 0; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != null && sprite != this._selectionSprite) { sprite.set_x(xx); sprite.set_y(yy); xx += sprite.get_width() + this.spacingH; ++columns; if(this.maxColumns != -1 && columns >= this.maxColumns) { columns = 0; xx = firstX; yy += sprite.get_height() + this.spacingV; } } } this._previewSwatch.set_x(firstX - this._previewSwatch.get_width() - this.spacingH - 5); this._dirtyLayout = false; } ,changeColors: function(list) { this.remove(this._previewSwatch); var swatchForSelect = null; if(this._selectedSwatch != null) { swatchForSelect = this.get_selectedSwatch().colors; } var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var thing = _g1[_g]; ++_g; if(thing != this._selectionSprite) { thing.set_visible(false); thing.set_active(false); } else { this.remove(this._selectionSprite,true); } } var _g = 0; var _g1 = list.length; while(_g < _g1) { var i = _g++; var fuics = null; if(i < this.group.members.length) { var sprite = this.group.members[i]; if(sprite != null) { if(((sprite) instanceof flixel_addons_ui_FlxUIColorSwatch)) { fuics = sprite; if(fuics.equalsSwatch(list[i]) == false) { fuics.set_colors(list[i]); } } } } if(fuics == null) { fuics = new flixel_addons_ui_FlxUIColorSwatch(0,0,null,list[i],this._swatchGraphic.asset,null,this._swatchGraphic.width,this._swatchGraphic.height); fuics.name = list[i].name; fuics.broadcastToFlxUI = false; fuics.callback = (function(_g,i) { return function() { _g[0].selectCallback(i[0]); }; })([this],[i]); this.add(fuics); } fuics.set_visible(true); fuics.set_active(true); } var length = this.group.members.length; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; var j = length - 1 - i; var thing = this.group.members[j]; if(thing != this._selectionSprite) { if(thing == null) { this.group.members.splice(j,1); } else if(thing.visible == false && thing.active == false) { thing.destroy(); this.remove(thing,true); thing = null; } } } this._dirtyLayout = true; this.add(this._selectionSprite); this.add(this._previewSwatch); if(swatchForSelect != null) { this.selectByColors(swatchForSelect,true); } else { this.unselect(); } } ,get_selectedSwatch: function() { return this._selectedSwatch; } ,destroyed: null ,destroy: function() { this.destroyed = true; this._selectedSwatch = null; this._selectionSprite = null; flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); } ,selectCallback: function(i) { this.selectByIndex(i); if(this.broadcastToFlxUI) { if(this._selectedSwatch != null) { if(this._selectedSwatch.multiColored) { flixel_addons_ui_FlxUI.event("click_color_swatch_selecter",this,this._selectedSwatch.colors); } else { flixel_addons_ui_FlxUI.event("click_color_swatch_selecter",this,this._selectedSwatch.color); } } } } ,selectByIndex: function(i) { this._selectedSwatch = this.group.members[i]; this.updateSelected(); } ,selectByColor: function(Color) { this._selectedSwatch = null; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != this._selectedSwatch && ((sprite) instanceof flixel_addons_ui_FlxUIColorSwatch)) { var swatch = sprite; if(swatch.color == Color) { this._selectedSwatch = swatch; break; } } } this.updateSelected(); } ,selectByColors: function(Data,PickClosest,IgnoreInvisible) { if(IgnoreInvisible == null) { IgnoreInvisible = true; } if(PickClosest == null) { PickClosest = true; } var best_delta = 99999999; var curr_delta = 0; var best_swatch = null; this._selectedSwatch = null; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != this._selectionSprite && sprite != this._selectedSwatch && sprite.visible == true && sprite.active == true) { var swatch = sprite; var swatchData = swatch.colors; if(PickClosest) { if(swatch.colors.name == "dummy" && Data.name == "dummy") { continue; } curr_delta = Data.getRawDifference(swatchData,null,IgnoreInvisible); if(curr_delta < best_delta) { best_swatch = swatch; best_delta = curr_delta; } } else if(Data.doColorsEqual(swatchData)) { best_swatch = swatch; break; } } } this._selectedSwatch = best_swatch; this.updateSelected(); } ,selectByName: function(Name) { this._selectedSwatch = null; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite != this._selectedSwatch) { var swatch = sprite; if(swatch.name == Name) { this._selectedSwatch = swatch; break; } } } this.updateSelected(); } ,unselect: function() { this._selectedSwatch = null; this.updateSelected(); } ,updateSelected: function() { if(this._selectedSwatch != null) { this._selectionSprite.set_visible(true); this._selectionSprite.set_x(this._selectedSwatch.x + (this._selectedSwatch.get_width() - this._selectionSprite.get_width()) / 2); this._selectionSprite.set_y(this._selectedSwatch.y + (this._selectedSwatch.get_height() - this._selectionSprite.get_height()) / 2); this._previewSwatch.set_colors(this._selectedSwatch.colors); } else { this._selectionSprite.set_visible(false); } } ,_previewGraphic: null ,_swatchGraphic: null ,_selectedSwatch: null ,_selectionSprite: null ,_dirtyLayout: null ,__class__: flixel_addons_ui_FlxUIColorSwatchSelecter ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{get_selectedSwatch:"get_selectedSwatch",get_numSwatches:"get_numSwatches",set_skipButtonUpdate:"set_skipButtonUpdate",set_maxColumns:"set_maxColumns",set_spacingV:"set_spacingV",set_spacingH:"set_spacingH"}) }); var flixel_addons_ui_FlxUICursor = function(Callback,InputMethod,DefaultKeys,Asset) { if(DefaultKeys == null) { DefaultKeys = 1; } if(InputMethod == null) { InputMethod = 1; } this._clickTime = 0; this._clickPressed = false; this.lastMouseY = 0; this.lastMouseX = 0; this.inputMethod = 0; this.dispatchEvents = true; this.gamepadAutoConnect = flixel_addons_ui_GamepadAutoConnectPreference.FirstActive; this.listIndex = 0; this.location = -1; this.wrap = true; if(Asset == null) { if(flixel_FlxG.height < 400) { Asset = "flixel/flixel-ui/img/finger_small.png"; } else { Asset = "flixel/flixel-ui/img/finger_big.png"; } } flixel_addons_ui_FlxUISprite.call(this,0,0,Asset); this.inputMethod = InputMethod; this._lists = [{ x : 0, y : 0, width : 0, height : 0, widgets : []}]; this._widgets = this._lists[0].widgets; this.anchor = new flixel_addons_ui_Anchor(-2,0,"left","center","right","center"); this.setDefaultKeys(DefaultKeys); this.callback = Callback; var this1 = this.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(flixel_FlxG.mouse != null && ((flixel_FlxG.mouse) instanceof flixel_addons_ui_FlxUIMouse) == false) { this._newMouse = new flixel_addons_ui_FlxUIMouse(flixel_FlxG.mouse.cursorContainer); flixel_FlxG.set_mouse(this._newMouse); } else { this._newMouse = flixel_FlxG.mouse; } }; $hxClasses["flixel.addons.ui.FlxUICursor"] = flixel_addons_ui_FlxUICursor; flixel_addons_ui_FlxUICursor.__name__ = "flixel.addons.ui.FlxUICursor"; flixel_addons_ui_FlxUICursor.__super__ = flixel_addons_ui_FlxUISprite; flixel_addons_ui_FlxUICursor.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{ callback: null ,wrap: null ,location: null ,listIndex: null ,ignoreNextInput: null ,findVisibleLocation: function(loc,forwardIfInvisible,wrap) { if(wrap == null) { wrap = true; } if(forwardIfInvisible == null) { forwardIfInvisible = true; } this.set_location(loc); if(this.location == -1) { return; } var wrapped = false; while(this._widgets[this.location] == null || this._widgets[this.location].visible == false) if(forwardIfInvisible) { if(this.location == this._widgets.length - 1) { if(wrap) { if(!wrapped) { wrapped = true; this.set_location(0); } else { this.set_location(-1); return; } } else { this.set_location(-1); return; } } else { this.set_location(this.location + 1); } } else if(this.location == 0) { if(wrap) { if(!wrapped) { wrapped = true; this.set_location(this._widgets.length - 1); } else { this.set_location(-1); return; } } else { this.set_location(-1); return; } } else { this.set_location(this.location - 1); } } ,getCurrentWidget: function() { if(this._widgets != null && this.location >= 0 && this.location < this._widgets.length) { return this._widgets[this.location]; } return null; } ,set_listIndex: function(i) { if(i >= this._lists.length) { i = this._lists.length - 1; } else if(i < 0) { i = 0; } this.listIndex = i; this.set_location(0); this._updateCursor(); return this.listIndex; } ,set_visible: function(b) { b = flixel_addons_ui_FlxUISprite.prototype.set_visible.call(this,b); return b; } ,set_location: function(i) { if(i >= this._widgets.length) { i = this._widgets.length - 1; } this.location = i; this._updateCursor(); return this.location; } ,gamepadAutoConnect: null ,set_gamepad: function(g) { this._gamepad = g; this.setDefaultKeys(this._defaultCode); var arr = [this.keysUp,this.keysDown,this.keysLeft,this.keysRight,this.keysClick]; var _g = 0; while(_g < arr.length) { var list = arr[_g]; ++_g; if(list != null) { var _g1 = 0; while(_g1 < list.length) { var keys = list[_g1]; ++_g1; if(((keys) instanceof flixel_addons_ui_FlxMultiGamepad)) { var fmg = keys; fmg.gamepad = this._gamepad; } } } } return g; } ,get_gamepad: function() { return this._gamepad; } ,_gamepad: null ,keysUp: null ,keysDown: null ,keysLeft: null ,keysRight: null ,keysClick: null ,anchor: null ,dispatchEvents: null ,inputMethod: null ,destroy: function() { flixel_addons_ui_FlxUISprite.prototype.destroy.call(this); if(flixel_FlxG.mouse == this._newMouse) { this._newMouse = null; } this.keysUp = flixel_util_FlxDestroyUtil.destroyArray(this.keysUp); this.keysDown = flixel_util_FlxDestroyUtil.destroyArray(this.keysDown); this.keysLeft = flixel_util_FlxDestroyUtil.destroyArray(this.keysLeft); this.keysRight = flixel_util_FlxDestroyUtil.destroyArray(this.keysRight); this.keysClick = flixel_util_FlxDestroyUtil.destroyArray(this.keysClick); this.anchor = flixel_util_FlxDestroyUtil.destroy(this.anchor); var _g = 0; var _g1 = this._lists; while(_g < _g1.length) { var l = _g1[_g]; ++_g; flixel_addons_ui_U.clearArraySoft(l.widgets); } flixel_addons_ui_U.clearArraySoft(this._lists); this._widgets = null; } ,update: function(elapsed) { if(this.get_gamepad() == null || !this.get_gamepad().connected) { var g = this.getGamepad(false); if(this.get_gamepad() != g) { this.set_gamepad(g); } } if(this.lastMouseX != flixel_FlxG.mouse.x || this.lastMouseY != flixel_FlxG.mouse.y) { var oldVis = this.visible; if(this.scrollFactor.x == 0 && this.scrollFactor.y == 0) { this.jumpToXY(flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY); } else { this.jumpToXY(flixel_FlxG.mouse.x,flixel_FlxG.mouse.y); } this.set_visible(oldVis); this.lastMouseX = flixel_FlxG.mouse.x; this.lastMouseY = flixel_FlxG.mouse.y; } this._checkKeys(); this._clickTime += elapsed; flixel_addons_ui_FlxUISprite.prototype.update.call(this,elapsed); } ,addWidgetsFromUI: function(ui) { if(ui.cursorLists != null) { var _g = 0; var _g1 = ui.cursorLists; while(_g < _g1.length) { var list = _g1[_g]; ++_g; this.addWidgetList(list); } this._widgets = this._lists[0].widgets; this.set_location(0); this.set_listIndex(0); } else { var _g = 0; var _g1 = ui.group.members; while(_g < _g1.length) { var widget = _g1[_g]; ++_g; if(js_Boot.__implements(widget,flixel_addons_ui_interfaces_ICursorPointable) || ((widget) instanceof flixel_addons_ui_FlxTypedUIGroup)) { this.addWidget(widget); } } } } ,jumpTo: function(widget) { var listi = 0; var i = 0; if(this._lists != null) { var _g = 0; var _g1 = this._lists; while(_g < _g1.length) { var list = _g1[_g]; ++_g; i = list.widgets.indexOf(widget); if(i != -1) { this.set_listIndex(listi); this.set_location(i); return true; } ++listi; } } else { i = this._widgets.indexOf(widget); this.set_location(i); return true; } return false; } ,jumpToXY: function(X,Y) { var listi = 0; var bestd2 = Infinity; var bestli = -1; var besti = -1; if(this._lists != null) { var _g = 0; var _g1 = this._lists; while(_g < _g1.length) { var list = _g1[_g]; ++_g; var _g2 = 0; var _g3 = list.widgets.length; while(_g2 < _g3) { var i = _g2++; var w = list.widgets[i]; if(w.visible == true && X >= w.x && Y >= w.y && X <= w.x + w.get_width() && Y <= w.y + w.get_height()) { var dx = w.x + w.get_width() / 2 - X; var dy = w.y + w.get_height() / 2 - Y; var d2 = dx * dx + dy * dy; if(d2 < bestd2) { bestd2 = d2; bestli = listi; besti = i; } } } ++listi; } if(bestli != -1 && besti != -1) { this.set_listIndex(bestli); this.set_location(besti); return true; } } else { var _g = 0; var _g1 = this._widgets.length; while(_g < _g1) { var i = _g++; var w = this._widgets[i]; if(w.visible == true && X >= w.x && Y >= w.y && X <= w.x + w.get_width() && Y <= w.y + w.get_height()) { var dx = w.x + w.get_width() / 2 - X; var dy = w.y + w.get_height() / 2 - Y; var d2 = dx * dx + dy * dy; if(d2 < bestd2) { bestd2 = d2; besti = i; } } } if(besti != -1) { this.set_location(besti); return true; } } return false; } ,addWidgetList: function(list) { var _g = 0; var _g1 = this._lists; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(flixel_util_FlxArrayUtil.equals(l.widgets,list)) { return; } } var x1 = Infinity; var y1 = Infinity; var x2 = -Infinity; var y2 = -Infinity; var _g = 0; while(_g < list.length) { var w = list[_g]; ++_g; if(w.x < x1) { x1 = w.x; } if(w.y < y1) { y1 = w.y; } if(w.x + w.get_width() > x2) { x2 = w.x; } if(w.y + w.get_height() > y2) { y2 = w.y; } } var theList = null; if(this._lists.length == 1 && this._lists[0].widgets != null && this._lists[0].widgets.length == 0) { this._lists[0].widgets = []; this._lists[0].x = x1 | 0; this._lists[0].y = y1 | 0; this._lists[0].width = x2 - x1 | 0; this._lists[0].height = y2 - y1 | 0; theList = this._lists[0]; } else { this._lists.push({ x : x1 | 0, y : y1 | 0, width : x2 - x1 | 0, height : y2 - y1 | 0, widgets : []}); theList = this._lists[this._lists.length - 1]; } var oldWidgets = this._widgets; this._widgets = theList.widgets; var _g = 0; while(_g < list.length) { var ifw = list[_g]; ++_g; this.addWidget(ifw); } this._widgets = oldWidgets; this._lists.sort($bind(this,this._sortXYWidgetList)); var _g = 0; var _g1 = this._lists; while(_g < _g1.length) { var widgetList = _g1[_g]; ++_g; widgetList.widgets.sort($bind(this,this._sortXYVisible)); } } ,addWidget: function(widget) { if(js_Boot.__implements(widget,flixel_addons_ui_interfaces_ICursorPointable)) { this._widgets.push(widget); } else if(((widget) instanceof flixel_addons_ui_FlxTypedUIGroup)) { var g = widget; var _g = 0; var _g1 = g.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(js_Boot.__implements(member,flixel_addons_ui_interfaces_IFlxUIWidget)) { this.addWidget(member); } } } this._widgets.sort($bind(this,this._sortXYVisible)); } ,sortWidgets: function(method,list) { if(list == null) { list = this._widgets; } switch(method._hx_index) { case 0: list.sort($bind(this,this._sortXYVisible)); break; case 1: list.sort($bind(this,this._sortIDVisible)); break; } } ,clearWidgets: function() { flixel_util_FlxArrayUtil.clearArray(this._widgets); } ,removeWidget: function(widget,list) { if(list == null) { list = this._widgets; } var value = false; if(list != null) { if(list.indexOf(widget) != -1) { value = HxOverrides.remove(list,widget); list.sort($bind(this,this._sortXYVisible)); } } return value; } ,setDefaultKeys: function(code) { this._defaultCode = code; this._clearKeys(); this._newKeys(); var flag = 1; if((code & flag) == flag) { this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(9,null,[16])); this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(9,[16])); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13)); } var flag = 256; if((code & flag) == flag) { this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(39)); this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(37)); this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiKey(40)); this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiKey(38)); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13)); } var flag = 16; if((code & flag) == flag) { this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(68)); this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(65)); this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiKey(83)); this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiKey(87)); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13)); } var flag = 4096; if((code & flag) == flag) { this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiKey(102)); this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiKey(100)); this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiKey(98)); this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiKey(104)); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiKey(13)); } if(this._gamepad == null || !this._gamepad.connected) { this._gamepad = this.getGamepad(); } if(this._gamepad != null && this._gamepad.connected) { var flag = 65536; if((code & flag) == flag) { this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),13)); this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),14)); this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),12)); this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),11)); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0)); } var flag = 268435456; if((code & flag) == flag) { this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),4)); this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),5)); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0)); } var flag = 1048576; if((code & flag) == flag) { this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.X, positive : false})); this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.X, positive : true})); this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.Y, positive : false})); this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 19, axis : flixel_addons_ui_XY.Y, positive : true})); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0)); } var flag = 16777216; if((code & flag) == flag) { this._addToKeys(this.keysLeft,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.X, positive : false})); this._addToKeys(this.keysRight,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.X, positive : true})); this._addToKeys(this.keysUp,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.Y, positive : false})); this._addToKeys(this.keysDown,new flixel_addons_ui_FlxMultiGamepadAnalogStick(this.get_gamepad(),{ id : 20, axis : flixel_addons_ui_XY.Y, positive : true})); this._addToKeys(this.keysClick,new flixel_addons_ui_FlxMultiGamepad(this.get_gamepad(),0)); } } } ,_lists: null ,_widgets: null ,_newMouse: null ,lastMouseX: null ,lastMouseY: null ,_clickPressed: null ,_defaultCode: null ,_rightAnchor: null ,_topAnchor: null ,_leftAnchor: null ,_bottomAnchor: null ,_clickTime: null ,getGamepad: function(exhaustive) { if(exhaustive == null) { exhaustive = true; } var gamepad; var _g = this.gamepadAutoConnect; switch(_g._hx_index) { case 0: gamepad = null; break; case 1: gamepad = flixel_FlxG.gamepads.getFirstActiveGamepad(); break; case 2: gamepad = flixel_FlxG.gamepads.lastActive; break; case 3: var i = _g.i; gamepad = flixel_FlxG.gamepads._activeGamepads[i]; break; } if(gamepad != null && gamepad.connected || !exhaustive) { return gamepad; } var _g = 0; var _g1 = flixel_FlxG.gamepads.get_numActiveGamepads(); while(_g < _g1) { var i = _g++; var gamepad = flixel_FlxG.gamepads._activeGamepads[i]; if(gamepad != null && gamepad.connected) { return gamepad; } } return null; } ,_sortIDVisible: function(a,b) { if(a.visible && !b.visible) { return -1; } if(b.visible && !a.visible) { return 1; } if(a.ID < b.ID) { return -1; } if(a.ID > b.ID) { return 1; } return 0; } ,_sortXYWidgetList: function(a,b) { if(a.y < b.y) { return -1; } if(a.y > b.y) { return 1; } if(a.x < b.x) { return -1; } if(a.x > b.x) { return 1; } return 0; } ,_sortXYVisible: function(a,b) { if(a.visible && !b.visible) { return -1; } if(b.visible && !a.visible) { return 1; } if(a.y < b.y) { return -1; } if(a.y > b.y) { return 1; } if(a.x < b.x) { return -1; } if(a.x > b.x) { return 1; } return 0; } ,_addToKeys: function(keys,m) { var exists = false; var _g = 0; while(_g < keys.length) { var mk = keys[_g]; ++_g; if(m.equals(mk)) { exists = true; break; } } if(!exists) { keys.push(m); } } ,_clearKeys: function() { flixel_addons_ui_U.clearArray(this.keysUp); this.keysUp = null; flixel_addons_ui_U.clearArray(this.keysDown); this.keysDown = null; flixel_addons_ui_U.clearArray(this.keysLeft); this.keysLeft = null; flixel_addons_ui_U.clearArray(this.keysRight); this.keysRight = null; flixel_addons_ui_U.clearArray(this.keysClick); this.keysClick = null; } ,_newKeys: function() { this.keysUp = []; this.keysDown = []; this.keysLeft = []; this.keysRight = []; this.keysClick = []; } ,_checkKeys: function() { var wasInvisible = this.visible == false; var lastLocation = this.location; var _g = 0; var _g1 = this.keysUp; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key.justPressed()) { this._doInput(0,-1); break; } } var _g = 0; var _g1 = this.keysDown; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key.justPressed()) { this._doInput(0,1); break; } } var _g = 0; var _g1 = this.keysLeft; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key.justPressed()) { this._doInput(-1,0); break; } } var _g = 0; var _g1 = this.keysRight; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key.justPressed()) { this._doInput(1,0); break; } } if(wasInvisible && this.visible && lastLocation != -1) { this.set_location(lastLocation); } if(this._clickKeysJustPressed()) { if(!this.ignoreNextInput) { this._clickPressed = true; this._clickTime = 0; this._doPress(); } else { this.ignoreNextInput = false; } } if(this._clickKeysPressed()) { this._clickPressed = true; this._doMouseMove(); } else if(this._clickTime > 0) { if(this._clickPressed) { this._doRelease(); this._clickPressed = false; } } } ,_clickKeysJustPressed: function() { var _g = 0; var _g1 = this.keysClick; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key.justPressed()) { return true; } } return false; } ,_clickKeysPressed: function() { var _g = 0; var _g1 = this.keysClick; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key.pressed()) { return true; } } return false; } ,_getWidgetPoint: function(Camera) { if(Camera == null) { Camera = flixel_FlxG.camera; } var currWidget = this._widgets[this.location]; if(currWidget == null) { return null; } var fo; var widgetPoint = null; if(((currWidget) instanceof flixel_FlxObject)) { fo = currWidget; widgetPoint = fo.getScreenPosition(); } widgetPoint.set_x(widgetPoint.x * Camera.totalScaleX); widgetPoint.set_y(widgetPoint.y * Camera.totalScaleY); if(widgetPoint == null) { var x = currWidget.x; var y = currWidget.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; widgetPoint = point; } widgetPoint.set_x(widgetPoint.x + currWidget.get_width() * Camera.totalScaleX * 0.5); widgetPoint.set_y(widgetPoint.y + currWidget.get_height() * Camera.totalScaleY * 0.5); return widgetPoint; } ,_doMouseMove: function(pt) { var dispose = false; if(pt == null) { pt = this._getWidgetPoint(); if(pt == null) { return; } dispose = true; } if(this.dispatchEvents) { var _this = flixel_FlxG.mouse; _this._globalScreenX = pt.x / flixel_FlxG.scaleMode.scale.x | 0; _this._globalScreenY = pt.y / flixel_FlxG.scaleMode.scale.y | 0; _this.updatePositions(); if(this._newMouse != null) { this._newMouse.updateGlobalScreenPosition = false; } var tmp = openfl_Lib.get_current().stage; var pt1 = pt.x; var pt2 = pt.y; var tmp1 = openfl_Lib.get_current().stage; var _this = flixel_FlxG.keys.pressed; var tmp2 = _this.keyManager.checkStatusUnsafe(17,_this.status); var _this = flixel_FlxG.keys.pressed; var tmp3 = _this.keyManager.checkStatusUnsafe(18,_this.status); var _this = flixel_FlxG.keys.pressed; tmp.dispatchEvent(new openfl_events_MouseEvent("mouseMove",true,false,pt1,pt2,tmp1,tmp2,tmp3,_this.keyManager.checkStatusUnsafe(16,_this.status))); } if(dispose) { pt.put(); } } ,_doPress: function(pt) { var currWidget = this._widgets[this.location]; if(currWidget == null) { return; } var dispose = false; if(pt == null) { pt = this._getWidgetPoint(); if(pt == null) { return; } dispose = true; } if(this.dispatchEvents) { var rawMouseX = pt.x * flixel_FlxG.camera.zoom; var rawMouseY = pt.y * flixel_FlxG.camera.zoom; var _this = flixel_FlxG.keys.pressed; var ctrl = _this.keyManager.checkStatusUnsafe(17,_this.status); var _this = flixel_FlxG.keys.pressed; var alt = _this.keyManager.checkStatusUnsafe(18,_this.status); var _this = flixel_FlxG.keys.pressed; var shift = _this.keyManager.checkStatusUnsafe(16,_this.status); openfl_Lib.get_current().stage.dispatchEvent(new openfl_events_MouseEvent("mouseDown",true,false,rawMouseX,rawMouseY,openfl_Lib.get_current().stage,ctrl,alt,shift)); } if(this.callback != null) { this.callback("cursor_down",currWidget); } if(dispose) { pt.put(); } } ,_doRelease: function(pt) { var currWidget = this._widgets[this.location]; if(currWidget == null) { return; } var dispose = false; if(pt == null) { pt = this._getWidgetPoint(); if(pt == null) { return; } dispose = true; } if(this.dispatchEvents) { var rawMouseX = pt.x * flixel_FlxG.camera.zoom; var rawMouseY = pt.y * flixel_FlxG.camera.zoom; var _this = flixel_FlxG.keys.pressed; var ctrl = _this.keyManager.checkStatusUnsafe(17,_this.status); var _this = flixel_FlxG.keys.pressed; var alt = _this.keyManager.checkStatusUnsafe(18,_this.status); var _this = flixel_FlxG.keys.pressed; var shift = _this.keyManager.checkStatusUnsafe(16,_this.status); openfl_Lib.get_current().stage.dispatchEvent(new openfl_events_MouseEvent("mouseUp",true,false,rawMouseX,rawMouseY,openfl_Lib.get_current().stage,ctrl,alt,shift)); if(this._clickPressed) { openfl_Lib.get_current().stage.dispatchEvent(new openfl_events_MouseEvent("click",true,false,rawMouseX,rawMouseY,openfl_Lib.get_current().stage,ctrl,alt,shift)); } } if(this.callback != null) { this.callback("cursor_click",currWidget); } if(dispose) { pt.put(); } if(this._newMouse != null) { this._newMouse.updateGlobalScreenPosition = true; var _this = this._newMouse; var newX = flixel_FlxG.game.get_mouseX() | 0; var newY = flixel_FlxG.game.get_mouseY() | 0; _this._globalScreenX = newX / flixel_FlxG.scaleMode.scale.x | 0; _this._globalScreenY = newY / flixel_FlxG.scaleMode.scale.y | 0; _this.updatePositions(); } } ,_findNextY: function(Y,indexValue,listWidget,listLists) { var currX = 0; var currY = 0; var length = 0; if(listWidget != null) { currX = listWidget[indexValue].x | 0; currY = listWidget[indexValue].y | 0; length = listWidget.length; } else if(listLists != null) { currX = listLists[indexValue].x; currY = listLists[indexValue].y; length = listLists.length; } var nextX = 0; var nextY = 0; var dx = Infinity; var dy = Infinity; var bestdx = dx; var bestdy = dy; var besti = -1; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; if(i != indexValue) { if(listWidget != null) { nextX = listWidget[i].x | 0; nextY = listWidget[i].y | 0; } else if(listLists != null) { nextX = listLists[i].x; nextY = listLists[i].y; } dy = nextY - currY; if((dy < 0 ? -1 : 1) == (Y < 0 ? -1 : 1) && dy != 0) { dy = Math.abs(dy); if(dy < bestdy) { bestdy = dy; bestdx = Math.abs(currX - nextX); besti = i; } else if(dy == bestdy) { dx = Math.abs(currX - nextX); if(dx < bestdx) { bestdx = dx; besti = i; } } } } } return besti; } ,_wrapX: function(X,indexValue,listLength) { if(indexValue + X < 0) { indexValue = indexValue + X + listLength; } else if(indexValue + X >= listLength) { indexValue = indexValue + X - listLength; } return indexValue; } ,_wrapY: function(Y,indexValue,listWidget,listLists) { var dx = Infinity; var dy = Infinity; var bestdx = dx; var bestdy = dy; var besti = -1; bestdx = Infinity; bestdy = 0; var length = 0; var currX = 0; var currY = 0; if(listWidget != null) { length = listWidget.length; currX = listWidget[indexValue].x | 0; currY = listWidget[indexValue].y | 0; } if(listLists != null) { length = listLists.length; currX = listLists[indexValue].x; currY = listLists[indexValue].y; } var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; if(i != this.location) { var xx = 0; var yy = 0; if(listWidget != null) { xx = listWidget[i].x | 0; yy = listWidget[i].y | 0; } else if(listLists != null) { xx = listLists[i].x | 0; yy = listLists[i].y | 0; } dy = yy - currY; if((dy < 0 ? -1 : 1) == (Y < 0 ? -1 : 1) == false && dy != 0) { dy = Math.abs(dy); if(dy > bestdy) { bestdy = dy; bestdx = Math.abs(currX - xx); besti = i; } else if(dy == bestdy) { dx = Math.abs(currX - xx); if(dx < bestdx) { bestdx = dx; besti = i; } } } } } if(besti != -1) { indexValue = besti; } return indexValue; } ,_doInput: function(X,Y,recursion) { if(recursion == null) { recursion = 0; } if(this.ignoreNextInput) { this.ignoreNextInput = false; return; } var currWidget = null; if(Y == 0) { if(this.location + X >= 0 && this.location + X < this._widgets.length) { this.set_location(this.location + X); } else if(this.wrap) { if(this._lists.length == 1) { this.set_location(this._wrapX(X,this.location,this._widgets.length)); } else { if(this.listIndex + X >= 0 && this.listIndex + X < this._lists.length) { this.set_listIndex(this.listIndex + X); } else { this.set_listIndex(this._wrapX(X,this.listIndex,this._lists.length)); } if(X == -1) { this.set_location(this._widgets.length - 1); } } } currWidget = this._widgets[this.location]; } else { var nextY = this._findNextY(Y,this.location,this._widgets,null); if(nextY != -1) { this.set_location(nextY); currWidget = this._widgets[this.location]; } else if(this.wrap) { if(this._lists.length == 1) { this.set_location(this._wrapY(Y,this.location,this._widgets,null)); currWidget = this._widgets[this.location]; } else { var nextListY = this._findNextY(Y,this.listIndex,null,this._lists); if(nextListY != -1) { this.set_listIndex(nextListY); currWidget = this._widgets[this.location]; } else { this.set_listIndex(this._wrapY(Y,this.listIndex,null,this._lists)); } if(Y == -1) { this.set_location(this._widgets.length - 1); } } currWidget = this._widgets[this.location]; } } if(currWidget != null && this._widgets != null) { if(currWidget.visible == false && recursion < this._widgets.length) { this._doInput(X,Y,recursion + 1); return; } } if(this.callback != null) { this.callback("cursor_jump",currWidget); } } ,_updateCursor: function() { this._widgets = this._lists[this.listIndex].widgets; if(this.location < 0 || this._lists == null || this._widgets == null) { this.set_visible(false); return; } this.set_visible(this.set_active(true)); var currWidget = this._widgets[this.location]; var flippedX = false; var flippedY = false; if(currWidget != null) { var target = currWidget; if(((target) instanceof flixel_FlxSprite)) { var fs = target; if(fs != null && fs.scrollFactor != null) { var this1 = this.scrollFactor; var x = fs.scrollFactor.x; var y = fs.scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } if(((currWidget) instanceof flixel_addons_ui_FlxUICheckBox)) { var check = target; target = check.box; } this.anchor.anchorThing(this,target); if(this.x < 0) { this._flipAnchor("left",target); flippedX = true; } else if(this.x > flixel_FlxG.width + this.get_width()) { this._flipAnchor("right",target); flippedX = true; } if(this.y < 0) { this._flipAnchor("top",target); flippedY = true; } else if(this.y > flixel_FlxG.height + this.get_height()) { this._flipAnchor("bottom",target); flippedY = true; } this.set_flipX(flippedX); this.set_flipY(flippedY); } } ,_flipAnchor: function(AnchorDir,destination) { var theAnchor = null; switch(AnchorDir) { case "bottom": if(this.anchor.y.side == "bottom") { this._bottomAnchor = this.anchor.getFlipped(true,false,this._bottomAnchor); theAnchor = this._bottomAnchor; } break; case "left": if(this.anchor.x.side == "left") { this._leftAnchor = this.anchor.getFlipped(true,false,this._leftAnchor); theAnchor = this._leftAnchor; } break; case "right": if(this.anchor.x.side == "right") { this._topAnchor = this.anchor.getFlipped(true,false,this._rightAnchor); theAnchor = this._rightAnchor; } break; case "top": if(this.anchor.y.side == "top") { this._topAnchor = this.anchor.getFlipped(true,false,this._topAnchor); theAnchor = this._topAnchor; } break; } if(theAnchor != null) { theAnchor.anchorThing(this,destination); } } ,__class__: flixel_addons_ui_FlxUICursor ,__properties__: $extend(flixel_addons_ui_FlxUISprite.prototype.__properties__,{set_gamepad:"set_gamepad",get_gamepad:"get_gamepad",set_listIndex:"set_listIndex",set_location:"set_location"}) }); var flixel_addons_ui_FlxUICursorInputFlag = {}; flixel_addons_ui_FlxUICursorInputFlag.has = function(this1,flag) { return (this1 & flag) == flag; }; var flixel_addons_ui_GamepadAutoConnectPreference = $hxEnums["flixel.addons.ui.GamepadAutoConnectPreference"] = { __ename__:"flixel.addons.ui.GamepadAutoConnectPreference",__constructs__:null ,Never: {_hx_name:"Never",_hx_index:0,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr} ,FirstActive: {_hx_name:"FirstActive",_hx_index:1,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr} ,LastActive: {_hx_name:"LastActive",_hx_index:2,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr} ,GamepadID: ($_=function(i) { return {_hx_index:3,i:i,__enum__:"flixel.addons.ui.GamepadAutoConnectPreference",toString:$estr}; },$_._hx_name="GamepadID",$_.__params__ = ["i"],$_) }; flixel_addons_ui_GamepadAutoConnectPreference.__constructs__ = [flixel_addons_ui_GamepadAutoConnectPreference.Never,flixel_addons_ui_GamepadAutoConnectPreference.FirstActive,flixel_addons_ui_GamepadAutoConnectPreference.LastActive,flixel_addons_ui_GamepadAutoConnectPreference.GamepadID]; flixel_addons_ui_GamepadAutoConnectPreference.__empty_constructs__ = [flixel_addons_ui_GamepadAutoConnectPreference.Never,flixel_addons_ui_GamepadAutoConnectPreference.FirstActive,flixel_addons_ui_GamepadAutoConnectPreference.LastActive]; var flixel_addons_ui_SortMethod = $hxEnums["flixel.addons.ui.SortMethod"] = { __ename__:"flixel.addons.ui.SortMethod",__constructs__:null ,XY: {_hx_name:"XY",_hx_index:0,__enum__:"flixel.addons.ui.SortMethod",toString:$estr} ,ID: {_hx_name:"ID",_hx_index:1,__enum__:"flixel.addons.ui.SortMethod",toString:$estr} }; flixel_addons_ui_SortMethod.__constructs__ = [flixel_addons_ui_SortMethod.XY,flixel_addons_ui_SortMethod.ID]; flixel_addons_ui_SortMethod.__empty_constructs__ = [flixel_addons_ui_SortMethod.XY,flixel_addons_ui_SortMethod.ID]; var flixel_addons_ui_FlxUIDropDownMenu = function(X,Y,DataList,Callback,Header,DropPanel,ButtonList,UIControlCallback) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.dropDirection = flixel_addons_ui_FlxUIDropDownMenuDropDirection.Automatic; this.list = []; flixel_addons_ui_FlxTypedUIGroup.call(this,X,Y); this.callback = Callback; this.header = Header; this.dropPanel = DropPanel; if(this.header == null) { this.header = new flixel_addons_ui_FlxUIDropDownHeader(); } if(this.dropPanel == null) { var rect = new openfl_geom_Rectangle(0,0,this.header.background.get_width(),this.header.background.get_height()); this.dropPanel = new flixel_addons_ui_FlxUI9SliceSprite(0,0,"flixel/flixel-ui/img/box.png",rect,[1,1,14,14]); } if(DataList != null) { var _g = 0; var _g1 = DataList.length; while(_g < _g1) { var i = _g++; var data = DataList[i]; this.list.push(this.makeListButton(i,data.label,data.name)); } this.selectSomething(DataList[0].name,DataList[0].label); } else if(ButtonList != null) { var _g = 0; while(_g < ButtonList.length) { var btn = ButtonList[_g]; ++_g; this.list.push(btn); btn.resize(this.header.background.get_width(),this.header.background.get_height()); btn.set_x(1); } } this.updateButtonPositions(); this.dropPanel.resize(this.header.background.get_width(),this.getPanelHeight()); this.dropPanel.set_visible(false); this.add(this.dropPanel); var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var btn = _g1[_g]; ++_g; this.add(btn); btn.set_visible(false); } this.header.button.onUp.callback = $bind(this,this.onDropdown); this.add(this.header); }; $hxClasses["flixel.addons.ui.FlxUIDropDownMenu"] = flixel_addons_ui_FlxUIDropDownMenu; flixel_addons_ui_FlxUIDropDownMenu.__name__ = "flixel.addons.ui.FlxUIDropDownMenu"; flixel_addons_ui_FlxUIDropDownMenu.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxUIDropDownMenu.makeStrIdLabelArray = function(StringArray,UseIndexID) { if(UseIndexID == null) { UseIndexID = false; } var strIdArray = []; var _g = 0; var _g1 = StringArray.length; while(_g < _g1) { var i = _g++; var ID = StringArray[i]; if(UseIndexID) { ID = i == null ? "null" : "" + i; } strIdArray[i] = new flixel_addons_ui_StrNameLabel(ID,StringArray[i]); } return strIdArray; }; flixel_addons_ui_FlxUIDropDownMenu.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUIDropDownMenu.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ skipButtonUpdate: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; this.header.button.set_skipButtonUpdate(b); return b; } ,_selectedId: null ,_selectedLabel: null ,get_selectedId: function() { return this._selectedId; } ,set_selectedId: function(str) { if(this._selectedId == str) { return str; } var i = 0; var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var btn = _g1[_g]; ++_g; if(btn != null && btn.name == str) { var item = this.list[i]; this._selectedId = str; if(item.label != null) { this._selectedLabel = item.label.text; this.header.text.set_text(item.label.text); } else { this._selectedLabel = ""; this.header.text.set_text(""); } return str; } ++i; } return str; } ,get_selectedLabel: function() { return this._selectedLabel; } ,set_selectedLabel: function(str) { if(this._selectedLabel == str) { return str; } var i = 0; var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var btn = _g1[_g]; ++_g; if(btn.label.text == str) { var item = this.list[i]; this._selectedId = item.name; this._selectedLabel = str; this.header.text.set_text(str); return str; } ++i; } return str; } ,header: null ,list: null ,dropPanel: null ,params: null ,set_params: function(p) { return this.params = p; } ,dropDirection: null ,set_dropDirection: function(dropDirection) { this.dropDirection = dropDirection; this.updateButtonPositions(); return dropDirection; } ,callback: null ,updateButtonPositions: function() { var buttonHeight = this.header.background.get_height(); this.dropPanel.set_y(this.header.background.y); if(this.dropsUp()) { var fh = this.dropPanel; fh.set_y(fh.y - this.getPanelHeight()); } else { var fh = this.dropPanel; fh.set_y(fh.y + buttonHeight); } var offset = this.dropPanel.y; var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var button = _g1[_g]; ++_g; button.set_y(offset); offset += buttonHeight; } } ,set_visible: function(Value) { var vDropPanel = this.dropPanel.visible; var vButtons = []; var _g = 0; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; if(this.list[i] != null) { vButtons.push(this.list[i].visible); } else { vButtons.push(false); } } flixel_addons_ui_FlxTypedUIGroup.prototype.set_visible.call(this,Value); this.dropPanel.set_visible(vDropPanel); var _g = 0; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; if(this.list[i] != null) { this.list[i].set_visible(vButtons[i]); } } return Value; } ,dropsUp: function() { if(this.dropDirection != flixel_addons_ui_FlxUIDropDownMenuDropDirection.Up) { if(this.dropDirection == flixel_addons_ui_FlxUIDropDownMenuDropDirection.Automatic) { return this.exceedsHeight(); } else { return false; } } else { return true; } } ,exceedsHeight: function() { return this.y + this.getPanelHeight() + this.header.background.get_height() > flixel_FlxG.height; } ,getPanelHeight: function() { return this.list.length * this.header.background.get_height(); } ,setData: function(DataList) { var i = 0; if(DataList != null) { var _g = 0; while(_g < DataList.length) { var data = DataList[_g]; ++_g; var recycled = false; if(this.list != null) { if(i <= this.list.length - 1) { var btn = this.list[i]; if(btn != null) { btn.label.set_text(data.label); this.list[i].name = data.name; recycled = true; } } } else { this.list = []; } if(!recycled) { var t = this.makeListButton(i,data.label,data.name); this.list.push(t); this.add(t); t.set_visible(false); } ++i; } if(this.list.length > DataList.length) { var _g = DataList.length; var _g1 = this.list.length; while(_g < _g1) { var j = _g++; var b = this.list.pop(); b.set_visible(false); b.set_active(false); this.remove(b,true); b.destroy(); b = null; } } this.selectSomething(DataList[0].name,DataList[0].label); } this.dropPanel.resize(this.header.background.get_width(),this.getPanelHeight()); this.updateButtonPositions(); } ,selectSomething: function(name,label) { this.header.text.set_text(label); this.set_selectedId(name); this.set_selectedLabel(label); } ,makeListButton: function(i,Label,Name) { var t = new flixel_addons_ui_FlxUIButton(0,0,Label); t.broadcastToFlxUI = false; var _g = this; var i1 = i; var tmp = function() { _g.onClickItem(i1); }; t.onUp.callback = tmp; t.name = Name; t.loadGraphicSlice9(["flixel/flixel-ui/img/invis.png","flixel/flixel-ui/img/hilight.png","flixel/flixel-ui/img/hilight.png"],this.header.background.get_width() | 0,this.header.background.get_height() | 0,[[1,1,3,3],[1,1,3,3],[1,1,3,3]],0); var base = t.labelOffsets; base[2].set_y(base[2].y - 1); t.up_color = -16777216; t.over_color = -1; t.down_color = -1; t.resize(this.header.background.get_width() - 2,this.header.background.get_height() - 1); t.label.set_alignment("left"); t.autoCenterLabel(); t.set_x(1); var _g1 = 0; var _g2 = t.labelOffsets; while(_g1 < _g2.length) { var offset = _g2[_g1]; ++_g1; offset.set_x(offset.x + 2); } return t; } ,changeLabelByIndex: function(i,NewLabel) { var btn = this.getBtnByIndex(i); if(btn != null && btn.label != null) { btn.label.set_text(NewLabel); } } ,changeLabelById: function(name,NewLabel) { var btn = this.getBtnById(name); if(btn != null && btn.label != null) { btn.label.set_text(NewLabel); } } ,getBtnByIndex: function(i) { if(i >= 0 && i < this.list.length) { return this.list[i]; } return null; } ,getBtnById: function(name) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var btn = _g1[_g]; ++_g; if(btn.name == name) { return btn; } } return null; } ,update: function(elapsed) { flixel_addons_ui_FlxTypedUIGroup.prototype.update.call(this,elapsed); this.checkClickOff(); } ,checkClickOff: function() { if(this.dropPanel.visible && flixel_FlxG.mouse._leftButton.current == 2) { if(this.header.button.input.current == 2) { return; } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button.input.current == 2) { return; } } this.showList(false); } } ,destroy: function() { flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); this.dropPanel = flixel_util_FlxDestroyUtil.destroy(this.dropPanel); this.list = flixel_util_FlxDestroyUtil.destroyArray(this.list); this.callback = null; } ,showList: function(b) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var button = _g1[_g]; ++_g; button.set_visible(b); button.set_active(b); } this.dropPanel.set_visible(b); flixel_addons_ui_FlxUI.forceFocus(b,this); } ,onDropdown: function() { if(this.dropPanel.visible) { this.showList(false); } else { this.showList(true); } } ,onClickItem: function(i) { var item = this.list[i]; this.selectSomething(item.name,item.label.text); this.showList(false); if(this.callback != null) { this.callback(item.name); } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("click_dropdown",this,item.name,this.params); } } ,__class__: flixel_addons_ui_FlxUIDropDownMenu ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_dropDirection:"set_dropDirection",set_params:"set_params",set_selectedLabel:"set_selectedLabel",get_selectedLabel:"get_selectedLabel",set_selectedId:"set_selectedId",get_selectedId:"get_selectedId",set_skipButtonUpdate:"set_skipButtonUpdate"}) }); var flixel_addons_ui_FlxUIDropDownHeader = function(Width,Background,Text1,Button) { if(Width == null) { Width = 120; } flixel_addons_ui_FlxTypedUIGroup.call(this); this.background = Background; this.text = Text1; this.button = Button; if(this.background == null) { this.background = new flixel_addons_ui_FlxUI9SliceSprite(0,0,"flixel/flixel-ui/img/box.png",new openfl_geom_Rectangle(0,0,Width,20),[1,1,14,14]); } if(this.button == null) { this.button = new flixel_addons_ui_FlxUISpriteButton(0,0,new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/dropdown_mark.png")); this.button.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],80,20,[flixel_util_FlxStringUtil.toIntArray("6,6,11,11")],0,-1,false,18,18); } this.button.resize(this.background.get_height(),this.background.get_height()); this.button.set_x(this.background.x + this.background.get_width() - this.button.get_width()); this.button.set_width(Width); var fh = this.button; fh.offset.set_x(fh.offset.x - (Width - this.button.frameWidth)); this.button.set_x(this.offset.x); var fh = this.button.label; fh.offset.set_x(fh.offset.x + this.button.offset.x); if(this.text == null) { this.text = new flixel_addons_ui_FlxUIText(0,0,this.background.get_width() | 0); } this.text.setPosition(2,4); this.text.set_color(-16777216); this.add(this.background); this.add(this.button); this.add(this.text); }; $hxClasses["flixel.addons.ui.FlxUIDropDownHeader"] = flixel_addons_ui_FlxUIDropDownHeader; flixel_addons_ui_FlxUIDropDownHeader.__name__ = "flixel.addons.ui.FlxUIDropDownHeader"; flixel_addons_ui_FlxUIDropDownHeader.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUIDropDownHeader.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ background: null ,text: null ,button: null ,destroy: function() { flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); this.background = flixel_util_FlxDestroyUtil.destroy(this.background); this.text = flixel_util_FlxDestroyUtil.destroy(this.text); this.button = flixel_util_FlxDestroyUtil.destroy(this.button); } ,__class__: flixel_addons_ui_FlxUIDropDownHeader }); var flixel_addons_ui_FlxUIDropDownMenuDropDirection = $hxEnums["flixel.addons.ui.FlxUIDropDownMenuDropDirection"] = { __ename__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",__constructs__:null ,Automatic: {_hx_name:"Automatic",_hx_index:0,__enum__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",toString:$estr} ,Down: {_hx_name:"Down",_hx_index:1,__enum__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",toString:$estr} ,Up: {_hx_name:"Up",_hx_index:2,__enum__:"flixel.addons.ui.FlxUIDropDownMenuDropDirection",toString:$estr} }; flixel_addons_ui_FlxUIDropDownMenuDropDirection.__constructs__ = [flixel_addons_ui_FlxUIDropDownMenuDropDirection.Automatic,flixel_addons_ui_FlxUIDropDownMenuDropDirection.Down,flixel_addons_ui_FlxUIDropDownMenuDropDirection.Up]; flixel_addons_ui_FlxUIDropDownMenuDropDirection.__empty_constructs__ = [flixel_addons_ui_FlxUIDropDownMenuDropDirection.Automatic,flixel_addons_ui_FlxUIDropDownMenuDropDirection.Down,flixel_addons_ui_FlxUIDropDownMenuDropDirection.Up]; var flixel_addons_ui_FlxUIInputText = function(X,Y,Width,Text1,size,TextColor,BackgroundColor,EmbeddedFont) { this.broadcastToFlxUI = true; flixel_addons_ui_FlxInputText.call(this,X,Y,Width,Text1,size,TextColor,BackgroundColor,EmbeddedFont); }; $hxClasses["flixel.addons.ui.FlxUIInputText"] = flixel_addons_ui_FlxUIInputText; flixel_addons_ui_FlxUIInputText.__name__ = "flixel.addons.ui.FlxUIInputText"; flixel_addons_ui_FlxUIInputText.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUIInputText.__super__ = flixel_addons_ui_FlxInputText; flixel_addons_ui_FlxUIInputText.prototype = $extend(flixel_addons_ui_FlxInputText.prototype,{ name: null ,broadcastToFlxUI: null ,resize: function(w,h) { this.set_width(w); this.set_height(h); this.calcFrame(); } ,onChange: function(action) { flixel_addons_ui_FlxInputText.prototype.onChange.call(this,action); if(this.broadcastToFlxUI) { switch(action) { case "backspace":case "delete": flixel_addons_ui_FlxUI.event("delete_input_text",this,this.text,this.params); flixel_addons_ui_FlxUI.event("change_input_text",this,this.text,this.params); break; case "enter": flixel_addons_ui_FlxUI.event("enter_input_text",this,this.text,this.params); break; case "input": flixel_addons_ui_FlxUI.event("input_input_text",this,this.text,this.params); flixel_addons_ui_FlxUI.event("change_input_text",this,this.text,this.params); break; } } } ,__class__: flixel_addons_ui_FlxUIInputText }); var flixel_addons_ui_FlxUILine = function(X,Y,Axis,Length,Thickness,Color) { this.thickness = 1; this.length = 10; this.axis = flixel_addons_ui_LineAxis.HORIZONTAL; flixel_addons_ui_FlxUISprite.call(this,X,Y); this.makeGraphic(2,2,-1); this.set_color(Color); this.set_axis(Axis); this.set_length(Length); this.set_thickness(Thickness); }; $hxClasses["flixel.addons.ui.FlxUILine"] = flixel_addons_ui_FlxUILine; flixel_addons_ui_FlxUILine.__name__ = "flixel.addons.ui.FlxUILine"; flixel_addons_ui_FlxUILine.__interfaces__ = [flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUILine.__super__ = flixel_addons_ui_FlxUISprite; flixel_addons_ui_FlxUILine.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{ axis: null ,length: null ,thickness: null ,set_axis: function(a) { this.axis = a; this.refresh(); return a; } ,set_length: function(l) { this.length = l; this.refresh(); return l; } ,set_thickness: function(t) { this.thickness = t; this.refresh(); return t; } ,refresh: function() { if(this.axis == flixel_addons_ui_LineAxis.HORIZONTAL) { var this1 = this.scale; var x = 0.5 * this.length; var y = 0.5 * this.thickness; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { var this1 = this.scale; var x = 0.5 * this.thickness; var y = 0.5 * this.length; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } this.updateHitbox(); } ,resize: function(width,height) { if(this.axis == flixel_addons_ui_LineAxis.HORIZONTAL) { this.set_length(width); this.set_thickness(height); } else { this.set_length(height); this.set_thickness(width); } } ,__class__: flixel_addons_ui_FlxUILine ,__properties__: $extend(flixel_addons_ui_FlxUISprite.prototype.__properties__,{set_thickness:"set_thickness",set_length:"set_length",set_axis:"set_axis"}) }); var flixel_addons_ui_LineAxis = $hxEnums["flixel.addons.ui.LineAxis"] = { __ename__:"flixel.addons.ui.LineAxis",__constructs__:null ,HORIZONTAL: {_hx_name:"HORIZONTAL",_hx_index:0,__enum__:"flixel.addons.ui.LineAxis",toString:$estr} ,VERTICAL: {_hx_name:"VERTICAL",_hx_index:1,__enum__:"flixel.addons.ui.LineAxis",toString:$estr} }; flixel_addons_ui_LineAxis.__constructs__ = [flixel_addons_ui_LineAxis.HORIZONTAL,flixel_addons_ui_LineAxis.VERTICAL]; flixel_addons_ui_LineAxis.__empty_constructs__ = [flixel_addons_ui_LineAxis.HORIZONTAL,flixel_addons_ui_LineAxis.VERTICAL]; var flixel_addons_ui_FlxUIList = function(X,Y,Widgets,W,H,MoreString,Stacking,Spacing,PrevButtonOffset,NextButtonOffset,PrevButton,NextButton) { if(Spacing == null) { Spacing = 0; } if(Stacking == null) { Stacking = 1; } if(MoreString == null) { MoreString = " more..."; } if(H == null) { H = 0; } if(W == null) { W = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._skipRefresh = false; this.scrollIndex = 0; this._skipRefresh = true; flixel_addons_ui_FlxTypedUIGroup.call(this,X,Y); this.set_stacking(Stacking); this.set_spacing(Spacing); if(Widgets != null) { var _g = 0; while(_g < Widgets.length) { var widget = Widgets[_g]; ++_g; this.add(widget); } } this.prevButton = PrevButton; this.nextButton = NextButton; this.prevButtonOffset = PrevButtonOffset; this.nextButtonOffset = NextButtonOffset; this.set_moreString(MoreString); if(this.prevButton == null) { var _g = this; var i = -1; var pButton = new flixel_addons_ui_FlxUIButton(0,0," ",function() { _g.onClick(i); }); if(this.stacking == 0) { pButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_left.png"); pButton.label.set_width(pButton.label.set_fieldWidth(100)); pButton.label.set_text(this.getMoreString(0)); pButton.setAllLabelOffsets(pButton.get_width() - pButton.label.get_width(),pButton.get_height() + 2); pButton.label.set_alignment("right"); } else { pButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_up.png"); pButton.label.set_width(pButton.label.set_fieldWidth(100)); pButton.label.set_text(this.getMoreString(0)); pButton.setAllLabelOffsets(0,0); pButton.setCenterLabelOffset(pButton.get_width() + 2,pButton.get_height() - pButton.label.get_height()); pButton.label.set_alignment("left"); } this.prevButton = pButton; } else { if(((this.prevButton) instanceof flixel_addons_ui_FlxUIButton)) { var fuib = this.prevButton; var _g1 = this; var i1 = -1; var tmp = function() { _g1.onClick(i1); }; fuib.onUp.callback = tmp; } if(((this.prevButton) instanceof flixel_addons_ui_FlxUISpriteButton)) { var fusb = this.prevButton; var _g2 = this; var i2 = -1; var tmp = function() { _g2.onClick(i2); }; fusb.onUp.callback = tmp; } } if(this.nextButton == null) { var _g3 = this; var i3 = 1; var nButton = new flixel_addons_ui_FlxUIButton(0,0," ",function() { _g3.onClick(i3); }); if(this.stacking == 0) { nButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_right.png"); nButton.label.set_width(nButton.label.set_fieldWidth(100)); nButton.label.set_text(this.getMoreString(0)); nButton.setAllLabelOffsets(0,nButton.get_height() + 2); nButton.label.set_alignment("left"); } else { nButton.loadGraphicsUpOverDown("flixel/flixel-ui/img/button_arrow_down.png"); nButton.label.set_width(nButton.label.set_fieldWidth(100)); nButton.label.set_text(this.getMoreString(0)); nButton.setAllLabelOffsets(0,0); nButton.setCenterLabelOffset(nButton.get_width() + 2,0); nButton.label.set_alignment("left"); } this.nextButton = nButton; } else { if(((this.nextButton) instanceof flixel_addons_ui_FlxUIButton)) { var fuib = this.nextButton; var _g4 = this; var i4 = 1; var tmp = function() { _g4.onClick(i4); }; fuib.onUp.callback = tmp; } if(((this.nextButton) instanceof flixel_addons_ui_FlxUISpriteButton)) { var fusb = this.nextButton; var _g5 = this; var i5 = 1; var tmp = function() { _g5.onClick(i5); }; fusb.onUp.callback = tmp; } } if(this.prevButtonOffset == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.prevButtonOffset = point; } if(this.nextButtonOffset == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.nextButtonOffset = point; } this._skipRefresh = false; this.setSize(W,H); }; $hxClasses["flixel.addons.ui.FlxUIList"] = flixel_addons_ui_FlxUIList; flixel_addons_ui_FlxUIList.__name__ = "flixel.addons.ui.FlxUIList"; flixel_addons_ui_FlxUIList.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUIList.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ scrollIndex: null ,set_scrollIndex: function(i) { this.scrollIndex = i; this.refreshList(); return i; } ,stacking: null ,set_stacking: function(Stacking) { this.stacking = Stacking; this.refreshList(); return Stacking; } ,spacing: null ,set_spacing: function(Spacing) { this.spacing = Spacing; this.refreshList(); return Spacing; } ,prevButtonOffset: null ,nextButtonOffset: null ,prevButton: null ,nextButton: null ,moreString: null ,set_moreString: function(str) { this.moreString = str; this.refreshList(); return this.moreString; } ,amountPrevious: null ,amountNext: null ,destroy: function() { this.prevButton = flixel_util_FlxDestroyUtil.destroy(this.prevButton); this.nextButton = flixel_util_FlxDestroyUtil.destroy(this.nextButton); this.prevButtonOffset = flixel_util_FlxDestroyUtil.put(this.prevButtonOffset); this.nextButtonOffset = flixel_util_FlxDestroyUtil.put(this.nextButtonOffset); flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); } ,setSize: function(W,H) { var flip = false; if(this._skipRefresh == false) { this._skipRefresh = true; flip = true; } this.set_width(W); this.set_height(H); if(flip) { this._skipRefresh = false; } this.refreshList(); } ,add: function(Object1) { flixel_addons_ui_FlxTypedUIGroup.prototype.add.call(this,Object1); this.refreshList(); return Object1; } ,safeAdd: function(Object1) { return flixel_addons_ui_FlxTypedUIGroup.prototype.add.call(this,Object1); } ,_skipRefresh: null ,getMoreString: function(i) { var newString = this.moreString; while(newString.indexOf("") != -1) newString = StringTools.replace(newString,"",i == null ? "null" : "" + i); return newString; } ,set_visible: function(Value) { flixel_addons_ui_FlxTypedUIGroup.prototype.set_visible.call(this,Value); this.refreshList(); return Value; } ,onClick: function(i) { this.set_scrollIndex(this.scrollIndex + i); this.refreshList(); } ,refreshList: function() { if(this._skipRefresh) { return; } this.autoBounds = false; if(this.group.members.indexOf(this.prevButton) != -1) { this.remove(this.prevButton,true); } if(this.group.members.indexOf(this.nextButton) != -1) { this.remove(this.nextButton,true); } var XX = 0; var YY = 0; var i = 0; var inBounds = true; if(this.stacking == 0) { this.prevButton.set_x(this.prevButtonOffset.x - this.prevButton.get_width() - 2); this.prevButton.set_y(this.prevButtonOffset.y); this.nextButton.set_x(this.nextButtonOffset.x + this.get_width() + 2); this.nextButton.set_y(this.nextButtonOffset.y); } else { this.prevButton.set_x(this.prevButtonOffset.x); this.prevButton.set_y(this.prevButtonOffset.y - this.prevButton.get_height() - 2); this.nextButton.set_x(this.nextButtonOffset.x); this.nextButton.set_y(this.nextButtonOffset.y + this.get_height() + 2); } this.prevButton.set_x(this.prevButton.x | 0); this.prevButton.set_y(this.prevButton.y | 0); this.nextButton.set_x(this.nextButton.x | 0); this.nextButton.set_y(this.nextButton.y | 0); var highestIndex = 0; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var widget = _g1[_g]; ++_g; inBounds = false; if(i >= this.scrollIndex) { if(this.stacking == 1) { inBounds = YY + widget.get_height() <= this.get_height() || this.get_height() <= 0; } else { inBounds = XX + widget.get_width() <= this.get_width() || this.get_width() <= 0; } } if(inBounds) { highestIndex = i; widget.set_visible(widget.set_active(true)); widget.set_x(this.x + XX); widget.set_y(this.y + YY); if(this.stacking == 1) { YY += widget.get_height() + this.spacing; } else { XX += widget.get_width() + this.spacing; } } else { widget.set_x(widget.set_y(0)); widget.set_visible(widget.set_active(false)); } ++i; } this.amountPrevious = this.scrollIndex; this.amountNext = this.group.members.length - (highestIndex + 1); var fuibutton; if(this.amountPrevious > 0) { this.safeAdd(this.prevButton); if(((this.prevButton) instanceof flixel_addons_ui_FlxUIButton)) { fuibutton = this.prevButton; fuibutton.label.set_text(this.getMoreString(this.amountPrevious)); } } if(this.amountNext > 0) { this.safeAdd(this.nextButton); if(((this.nextButton) instanceof flixel_addons_ui_FlxUIButton)) { fuibutton = this.nextButton; fuibutton.label.set_text(this.getMoreString(this.amountNext)); } } } ,get_width: function() { return this.width; } ,get_height: function() { return this.height; } ,set_width: function(W) { this.width = W; this.refreshList(); return W; } ,set_height: function(H) { this.height = H; this.refreshList(); return H; } ,__class__: flixel_addons_ui_FlxUIList ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_moreString:"set_moreString",set_spacing:"set_spacing",set_stacking:"set_stacking",set_scrollIndex:"set_scrollIndex"}) }); var flixel_addons_ui_interfaces_IFlxUIState = function() { }; $hxClasses["flixel.addons.ui.interfaces.IFlxUIState"] = flixel_addons_ui_interfaces_IFlxUIState; flixel_addons_ui_interfaces_IFlxUIState.__name__ = "flixel.addons.ui.interfaces.IFlxUIState"; flixel_addons_ui_interfaces_IFlxUIState.__isInterface__ = true; flixel_addons_ui_interfaces_IFlxUIState.__interfaces__ = [flixel_addons_ui_interfaces_IEventGetter]; flixel_addons_ui_interfaces_IFlxUIState.prototype = { forceFocus: null ,tooltips: null ,cursor: null ,_tongue: null ,__class__: flixel_addons_ui_interfaces_IFlxUIState }; var flixel_addons_ui_FlxUISubState = function(BGColor) { if(BGColor == null) { BGColor = 0; } this.getTextFallback = null; this._reload_countdown = 0; this._reload = false; this.reload_ui_on_resize = false; this._xml_id = ""; this.cursor = null; flixel_FlxSubState.call(this,BGColor); }; $hxClasses["flixel.addons.ui.FlxUISubState"] = flixel_addons_ui_FlxUISubState; flixel_addons_ui_FlxUISubState.__name__ = "flixel.addons.ui.FlxUISubState"; flixel_addons_ui_FlxUISubState.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIState]; flixel_addons_ui_FlxUISubState.__super__ = flixel_FlxSubState; flixel_addons_ui_FlxUISubState.prototype = $extend(flixel_FlxSubState.prototype,{ destroyed: null ,cursor: null ,_makeCursor: null ,tooltips: null ,_xml_id: null ,_ui: null ,_tongue: null ,reload_ui_on_resize: null ,_reload: null ,_reload_countdown: null ,getTextFallback: null ,forceScrollFactor: function(X,Y) { if(this._ui != null) { var _g = 0; var _g1 = this._ui.group.members; while(_g < _g1.length) { var w = _g1[_g]; ++_g; var this1 = w.scrollFactor; var x = X; var y = Y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } if(this._ui.scrollFactor != null) { var this1 = this._ui.scrollFactor; var x = X; var y = Y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } } ,forceFocus: function(b,thing) { if(this._ui != null) { if(b) { this._ui.set_focus(thing); } else { this._ui.set_focus(null); } } } ,create: function() { if(flixel_addons_ui_FlxUIState.static_tongue != null) { this._tongue = flixel_addons_ui_FlxUIState.static_tongue; } if(this._makeCursor == true) { this.cursor = this.createCursor(); } this.tooltips = new flixel_addons_ui_FlxUITooltipManager(null,this); this._ui = this.createUI(null,this,null,this._tongue); this.add(this._ui); this._ui.getTextFallback = this.getTextFallback; if(this._xml_id != "" && this._xml_id != null) { var data = flixel_addons_ui_U.xml(this._xml_id); if(data == null) { data = flixel_addons_ui_U.xml(this._xml_id,"xml",true,""); } if(data != null) { this._ui.load(data); } } else { this._ui.load(null); } if(this.cursor != null && this._ui != null) { this.add(this.cursor); this.cursor.addWidgetsFromUI(this._ui); this.cursor.findVisibleLocation(0); } flixel_FlxG.mouse.set_visible(true); this.tooltips.init(); flixel_FlxSubState.prototype.create.call(this); this.cleanup(); if(((this._parentState) instanceof flixel_addons_ui_FlxUIState)) { this.reload_ui_on_resize = (js_Boot.__cast(this._parentState , flixel_addons_ui_FlxUIState)).reload_ui_on_resize; } } ,onCursorEvent: function(code,target) { this.getEvent(code,target,null); } ,onShowTooltip: function(t) { } ,onResize: function(Width,Height) { if(this.reload_ui_on_resize) { flixel_FlxG.scaleMode.onMeasure(Width,Height); this._reload_countdown = 5; this._reload = true; } } ,update: function(elapsed) { flixel_FlxSubState.prototype.update.call(this,elapsed); this.tooltips.update(elapsed); if(this._reload) { if(this._reload_countdown > 0) { this._reload_countdown--; if(this._reload_countdown == 0) { this.reloadUI(); } } } } ,destroy: function() { this.destroyed = true; if(this.tooltips != null) { this.tooltips.destroy(); this.tooltips = null; } if(this._ui != null) { this._ui.destroy(); this.remove(this._ui,true); this._ui = null; } flixel_FlxSubState.prototype.destroy.call(this); } ,getEvent: function(id,sender,data,params) { } ,getRequest: function(id,sender,data,params) { return null; } ,getText: function(Flag,Context,Safe) { if(Safe == null) { Safe = true; } if(Context == null) { Context = "ui"; } if(this._tongue != null) { return this._tongue.get(Flag,Context,Safe); } if(this.getTextFallback != null) { return this.getTextFallback(Flag,Context,Safe); } return Flag; } ,cleanup: function() { this._ui.cleanup(); } ,createCursor: function() { return new flixel_addons_ui_FlxUICursor($bind(this,this.onCursorEvent)); } ,createUI: function(data,ptr,superIndex_,tongue_,liveFilePath_) { if(liveFilePath_ == null) { liveFilePath_ = ""; } return new flixel_addons_ui_FlxUI(data,ptr,superIndex_,tongue_,liveFilePath_); } ,reloadUI: function() { if(this._ui != null) { this.remove(this._ui,true); this._ui.destroy(); this._ui = null; } this._ui = this.createUI(null,this,null,this._tongue); this.add(this._ui); var data = flixel_addons_ui_U.xml(this._xml_id); this._ui.load(data); this._reload = false; this._reload_countdown = 0; } ,__class__: flixel_addons_ui_FlxUISubState }); var flixel_addons_ui_FlxUIPopup = function(BGColor) { this._quickSetupParams = null; this._height = 0; this._width = 0; this.alpha = 1; this.params = null; this.y = 0; this.x = 0; this.broadcastToFlxUI = true; flixel_addons_ui_FlxUISubState.call(this,BGColor); }; $hxClasses["flixel.addons.ui.FlxUIPopup"] = flixel_addons_ui_FlxUIPopup; flixel_addons_ui_FlxUIPopup.__name__ = "flixel.addons.ui.FlxUIPopup"; flixel_addons_ui_FlxUIPopup.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxUIPopup.__super__ = flixel_addons_ui_FlxUISubState; flixel_addons_ui_FlxUIPopup.prototype = $extend(flixel_addons_ui_FlxUISubState.prototype,{ name: null ,broadcastToFlxUI: null ,immovable: null ,set_immovable: function(Immovable) { return this.immovable; } ,angle: null ,facing: null ,moves: null ,offset: null ,origin: null ,scale: null ,velocity: null ,maxVelocity: null ,acceleration: null ,drag: null ,scrollFactor: null ,set_x: function(Value) { return this.x = Value; } ,set_y: function(Value) { return this.y = Value; } ,get_width: function() { return this._width; } ,get_height: function() { return this._height; } ,set_width: function(Value) { return this._width = Value; } ,set_height: function(Value) { return this._height = Value; } ,set_angle: function(Value) { return this.angle = Value; } ,set_alpha: function(Value) { return this.alpha = Value; } ,set_facing: function(Value) { return this.facing = Value; } ,set_moves: function(Value) { return this.moves = Value; } ,set_offset: function(Value) { return this.offset = Value; } ,set_origin: function(Value) { return this.origin = Value; } ,set_scale: function(Value) { return this.scale = Value; } ,set_scrollFactor: function(Value) { return this.scrollFactor = Value; } ,reset: function(X,Y) { this.setPosition(X,Y); } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.set_x(X); this.set_y(Y); } ,x: null ,y: null ,params: null ,alpha: null ,_width: null ,_height: null ,create: function() { if(this._xml_id == "") { this._xml_id = "flixel/flixel-ui/xml/default_popup"; } var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.set_scrollFactor(point); this.getTextFallback = $bind(this,this.myGetTextFallback); flixel_addons_ui_FlxUISubState.prototype.create.call(this); if(this._quickSetupParams != null) { this._doQuickSetup(); } var this1 = this.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._ui.setScrollFactor(0,0); } ,quickSetup: function(title,body,button_labels) { this._quickSetupParams = { title : title, body : body, button_labels : button_labels}; } ,getEvent: function(id,sender,data,eventParams) { if(eventParams == null) { if(this.params != null) { eventParams = []; } } if(this.params != null) { eventParams = eventParams.concat(this.params); } if(id == "click_button") { var str = ""; if(eventParams != null) { if(typeof(eventParams[0]) == "string") { str = Std.string(eventParams[0]); } var buttonAmount = eventParams[0] | 0; if(str == "affirm" || str == "cancel" || str == "alt") { if(js_Boot.__implements(this._parentState,flixel_addons_ui_interfaces_IFlxUIState)) { this.castParent().getEvent("click_popup",this,buttonAmount,eventParams); } else { flixel_addons_ui_FlxUI.event("click_popup",this,buttonAmount,eventParams); } this.close(); } } } flixel_addons_ui_FlxUISubState.prototype.getEvent.call(this,id,sender,data,eventParams); } ,castParent: function() { return this._parentState; } ,_quickSetupParams: null ,myGetTextFallback: function(flag,context,safe) { if(safe == null) { safe = true; } if(context == null) { context = "ui"; } switch(flag) { case "$POPUP_BODY_DEFAULT": return "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam consectetur vehicula pellentesque. Phasellus at blandit augue. Suspendisse vel leo ut elit imperdiet eleifend ut quis purus. Quisque imperdiet turpis vitae justo hendrerit molestie. Quisque tempor ante eget posuere viverra."; case "$POPUP_CANCEL": return "Cancel"; case "$POPUP_NO": return "No"; case "$POPUP_OK": return "Ok"; case "$POPUP_TITLE_DEFAULT": return "Alert!"; case "$POPUP_YES": return "Yes"; } return flag; } ,_doQuickSetup: function() { if(this._ui.hasAsset("title")) { var text_title = this._ui.getAsset("title"); text_title.set_text(this._quickSetupParams.title); } if(this._ui.hasAsset("body")) { var text_body = this._ui.getAsset("body"); text_body.set_text(this._quickSetupParams.body); } this._doQuickSetupButtons(); this._quickSetupParams.button_labels = null; this._quickSetupParams = null; } ,_doQuickSetupButtons: function() { var arr = ["btn0","btn1","btn2"]; var i = 0; switch(this._quickSetupParams.button_labels.length) { case 1: this._ui.setMode("1btn"); break; case 2: this._ui.setMode("2btn"); break; case 3: this._ui.setMode("3btn"); break; } var _g = 0; while(_g < arr.length) { var btn = arr[_g]; ++_g; var the_btn; if(this._ui.hasAsset(btn)) { the_btn = this._ui.getAsset(btn); if(this._quickSetupParams.button_labels.length > i) { var btnlabel = this._quickSetupParams.button_labels[i]; var newlabel = btnlabel; switch(btnlabel) { case "":case "":case "": btnlabel = HxOverrides.substr(btnlabel,1,btnlabel.length - 2).toUpperCase(); newlabel = "$POPUP_" + btnlabel; newlabel = this._ui.getText(newlabel,"ui",false); if(newlabel == null || newlabel == "") { newlabel = btnlabel; } btnlabel = newlabel; break; } flixel_addons_ui_U.setButtonLabel(the_btn,newlabel); } } ++i; } } ,__class__: flixel_addons_ui_FlxUIPopup ,__properties__: $extend(flixel_addons_ui_FlxUISubState.prototype.__properties__,{set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_alpha:"set_alpha",set_y:"set_y",set_x:"set_x",set_scrollFactor:"set_scrollFactor",set_scale:"set_scale",set_origin:"set_origin",set_offset:"set_offset",set_moves:"set_moves",set_facing:"set_facing",set_angle:"set_angle",set_immovable:"set_immovable"}) }); var flixel_addons_ui_FlxUILoadingScreen = function(BGColor) { this._title_temp_txt = "$LOADING_TITLE"; this._body_temp_txt = "$LOADING_BODY"; this._progress = 0; this._closeOnFinished = true; this._sleepTime = 0; this._task = null; this._timeSpentAlive = 0; this.invisibleTime = 0; flixel_addons_ui_FlxUIPopup.call(this,BGColor); }; $hxClasses["flixel.addons.ui.FlxUILoadingScreen"] = flixel_addons_ui_FlxUILoadingScreen; flixel_addons_ui_FlxUILoadingScreen.__name__ = "flixel.addons.ui.FlxUILoadingScreen"; flixel_addons_ui_FlxUILoadingScreen.__super__ = flixel_addons_ui_FlxUIPopup; flixel_addons_ui_FlxUILoadingScreen.prototype = $extend(flixel_addons_ui_FlxUIPopup.prototype,{ invisibleTime: null ,get_body: function() { if(this._body != null) { return this._body.text; } return this._body_temp_txt; } ,set_body: function(str) { if(this._body != null) { this._body.set_text(str); } this._body_temp_txt = str; return this._body_temp_txt; } ,get_title: function() { if(this._title != null) { return this._title.text; } return this._title_temp_txt; } ,set_title: function(str) { if(this._title != null) { this._title.set_text(str); } this._title_temp_txt = str; return this._title_temp_txt; } ,canCancel: null ,set_canCancel: function(b) { this.canCancel = b; if(this._ui != null) { if(this.canCancel) { this._ui.setMode("can_cancel"); } else { this._ui.setMode("no_cancel"); } } return this.canCancel; } ,get_progress: function() { return this._progress; } ,set_progress: function(f) { if(f < 0) { f = 0; } if(f > 1) { f = 1; } this._progress = f; if(this._bar != null && this._bar_back != null) { var w = f * this._bar_back.get_width() | 0; if(w < 3) { w = 3; this._bar.set_visible(false); } else { this._bar.set_visible(true); } this._bar.resize(w,this._bar.get_height()); this._bar.set_x(this._bar_back.x | 0); } return this._progress; } ,set: function(progress_,body_,title_,canCancel_) { if(canCancel_ == null) { canCancel_ = false; } this.set_canCancel(canCancel_); this.set_progress(progress_); if(body_ != null) { this.set_body(body_); } if(title_ != null) { this.set_title(title_); } } ,create: function() { if(this._xml_id == "") { this._xml_id = "flixel/flixel-ui/xml/default_loading_screen"; } this.getTextFallback = $bind(this,this.myGetTextFallback); flixel_addons_ui_FlxUIPopup.prototype.create.call(this); this._bar = this._ui.getAsset("bar"); this._bar_back = this._ui.getAsset("bar_back"); this._title = this._ui.getAsset("title"); this._body = this._ui.getAsset("body"); if(this._quickSetupParams != null) { this._doQuickSetup(); } this.set_canCancel(this.canCancel); this.set_progress(this._progress); this.set_title(this._title_temp_txt); this.set_body(this._body_temp_txt); } ,getEvent: function(name,sender,data,params) { if(name == "click_button") { var btnName = data; if(btnName == "ok") { this.castParent().getEvent("loading_screen_accepted",this,null); this.close(); } else if(btnName == "cancel") { if(this._currTimer != null) { this._currTimer.cancel(); this._currTimer = null; } this.castParent().getEvent("loading_screen_cancelled",this,null); this.close(); } } } ,update: function(elapsed) { flixel_addons_ui_FlxUIPopup.prototype.update.call(this,elapsed); if(this.invisibleTime != 0) { this._timeSpentAlive += flixel_FlxG.elapsed; if(this._timeSpentAlive < this.invisibleTime) { this.set_visible(false); } else { this.set_visible(true); } } } ,myGetTextFallback: function(flag,context,safe) { if(safe == null) { safe = true; } if(context == null) { context = "ui"; } switch(flag) { case "$LOADING_BODY": return "Please Wait..."; case "$LOADING_TITLE": return "Loading"; } return flixel_addons_ui_FlxUIPopup.prototype.myGetTextFallback.call(this,flag,context,safe); } ,_doQuickSetupButtons: function() { } ,_timeSpentAlive: null ,_currTimer: null ,_task: null ,_sleepTime: null ,_closeOnFinished: null ,_progress: null ,_bar: null ,_bar_back: null ,_title: null ,_body: null ,_body_temp_txt: null ,_title_temp_txt: null ,__class__: flixel_addons_ui_FlxUILoadingScreen ,__properties__: $extend(flixel_addons_ui_FlxUIPopup.prototype.__properties__,{set_progress:"set_progress",get_progress:"get_progress",set_canCancel:"set_canCancel",set_title:"set_title",get_title:"get_title",set_body:"set_body",get_body:"get_body"}) }); var flixel_input_FlxPointer = function() { this._globalScreenY = 0; this._globalScreenX = 0; this.screenY = 0; this.screenX = 0; this.y = 0; this.x = 0; }; $hxClasses["flixel.input.FlxPointer"] = flixel_input_FlxPointer; flixel_input_FlxPointer.__name__ = "flixel.input.FlxPointer"; flixel_input_FlxPointer.prototype = { x: null ,y: null ,screenX: null ,screenY: null ,_globalScreenX: null ,_globalScreenY: null ,getWorldPosition: function(Camera,point) { if(Camera == null) { Camera = flixel_FlxG.camera; } if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } this.getScreenPosition(Camera,flixel_input_FlxPointer._cachedPoint); point.set_x(flixel_input_FlxPointer._cachedPoint.x + Camera.scroll.x); point.set_y(flixel_input_FlxPointer._cachedPoint.y + Camera.scroll.y); return point; } ,getScreenPosition: function(Camera,point) { if(Camera == null) { Camera = flixel_FlxG.camera; } if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } point.set_x((this._globalScreenX - Camera.x + 0.5 * Camera.width * (Camera.zoom - Camera.initialZoom)) / Camera.zoom); point.set_y((this._globalScreenY - Camera.y + 0.5 * Camera.height * (Camera.zoom - Camera.initialZoom)) / Camera.zoom); return point; } ,getPositionInCameraView: function(Camera,point) { if(Camera == null) { Camera = flixel_FlxG.camera; } if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } point.set_x((this._globalScreenX - Camera.x) / Camera.zoom + Camera.viewMarginX); point.set_y((this._globalScreenY - Camera.y) / Camera.zoom + Camera.viewMarginY); return point; } ,getPosition: function(point) { if(point == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; point = point1; } var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(x); point.set_y(y); return point; } ,overlaps: function(ObjectOrGroup,Camera) { var _gthis = this; var result = false; var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup); if(group != null) { group.forEachExists(function(basic) { if(_gthis.overlaps(basic,Camera)) { result = true; return; } }); } else { this.getWorldPosition(Camera,flixel_input_FlxPointer._cachedPoint); var object = ObjectOrGroup; result = object.overlapsPoint(flixel_input_FlxPointer._cachedPoint,true,Camera); } return result; } ,setGlobalScreenPositionUnsafe: function(newX,newY) { this._globalScreenX = newX / flixel_FlxG.scaleMode.scale.x | 0; this._globalScreenY = newY / flixel_FlxG.scaleMode.scale.y | 0; this.updatePositions(); } ,toString: function() { var value = this.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = this.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,updatePositions: function() { this.getScreenPosition(flixel_FlxG.camera,flixel_input_FlxPointer._cachedPoint); this.screenX = flixel_input_FlxPointer._cachedPoint.x | 0; this.screenY = flixel_input_FlxPointer._cachedPoint.y | 0; this.getWorldPosition(flixel_FlxG.camera,flixel_input_FlxPointer._cachedPoint); this.x = flixel_input_FlxPointer._cachedPoint.x | 0; this.y = flixel_input_FlxPointer._cachedPoint.y | 0; } ,__class__: flixel_input_FlxPointer }; var flixel_input_IFlxInputManager = function() { }; $hxClasses["flixel.input.IFlxInputManager"] = flixel_input_IFlxInputManager; flixel_input_IFlxInputManager.__name__ = "flixel.input.IFlxInputManager"; flixel_input_IFlxInputManager.__isInterface__ = true; flixel_input_IFlxInputManager.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_IFlxInputManager.prototype = { reset: null ,update: null ,onFocus: null ,onFocusLost: null ,__class__: flixel_input_IFlxInputManager }; var flixel_input_mouse_FlxMouse = function(cursorContainer) { this._prevScreenY = 0; this._prevScreenX = 0; this._prevY = 0; this._prevX = 0; this._lastWheel = 0; this._lastY = 0; this._lastX = 0; this._visibleWhenFocusLost = true; this._wheelUsed = false; this.useSystemCursor = false; this.visible = true; this.wheel = 0; this.enabled = true; flixel_input_FlxPointer.call(this); this.cursorContainer = cursorContainer; this.cursorContainer.mouseChildren = false; this.cursorContainer.mouseEnabled = false; this._leftButton = new flixel_input_mouse_FlxMouseButton(-1); this._stage = openfl_Lib.get_current().stage; this._stage.addEventListener("mouseDown",($_=this._leftButton,$bind($_,$_.onDown))); this._stage.addEventListener("mouseUp",($_=this._leftButton,$bind($_,$_.onUp))); this._middleButton = new flixel_input_mouse_FlxMouseButton(-2); this._rightButton = new flixel_input_mouse_FlxMouseButton(-3); this._stage.addEventListener("middleMouseDown",($_=this._middleButton,$bind($_,$_.onDown))); this._stage.addEventListener("middleMouseUp",($_=this._middleButton,$bind($_,$_.onUp))); this._stage.addEventListener("rightMouseDown",($_=this._rightButton,$bind($_,$_.onDown))); this._stage.addEventListener("rightMouseUp",($_=this._rightButton,$bind($_,$_.onUp))); this._stage.addEventListener("mouseLeave",$bind(this,this.onMouseLeave)); this._stage.addEventListener("mouseWheel",$bind(this,this.onMouseWheel)); flixel_FlxG.signals.postGameStart.add($bind(this,this.onGameStart)); openfl_ui_Mouse.hide(); }; $hxClasses["flixel.input.mouse.FlxMouse"] = flixel_input_mouse_FlxMouse; flixel_input_mouse_FlxMouse.__name__ = "flixel.input.mouse.FlxMouse"; flixel_input_mouse_FlxMouse.__interfaces__ = [flixel_input_IFlxInputManager]; flixel_input_mouse_FlxMouse.__super__ = flixel_input_FlxPointer; flixel_input_mouse_FlxMouse.prototype = $extend(flixel_input_FlxPointer.prototype,{ enabled: null ,wheel: null ,cursorContainer: null ,cursor: null ,visible: null ,useSystemCursor: null ,_leftButton: null ,_middleButton: null ,_rightButton: null ,_cursorBitmapData: null ,_wheelUsed: null ,_visibleWhenFocusLost: null ,_lastX: null ,_lastY: null ,_lastWheel: null ,_lastLeftButtonState: null ,_prevX: null ,_prevY: null ,_prevScreenX: null ,_prevScreenY: null ,_stage: null ,load: function(Graphic,Scale,XOffset,YOffset) { if(YOffset == null) { YOffset = 0; } if(XOffset == null) { XOffset = 0; } if(Scale == null) { Scale = 1; } if(this.cursor != null) { flixel_util_FlxDestroyUtil.removeChild(this.cursorContainer,this.cursor); } if(Graphic == null) { Graphic = new flixel_input_mouse__$FlxMouse_GraphicCursor(0,0); } if(js_Boot.__instanceof(Graphic,Class)) { this.cursor = Type.createInstance(Graphic,[]); } else if(((Graphic) instanceof openfl_display_BitmapData)) { this.cursor = new openfl_display_Bitmap(Graphic); } else if(typeof(Graphic) == "string") { var id = Graphic; var tmp; if(openfl_utils_Assets.exists(id)) { tmp = openfl_utils_Assets.getBitmapData(id,false); } else { flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + id + "'.",flixel_system_debug_log_LogStyle.ERROR,true); tmp = null; } this.cursor = new openfl_display_Bitmap(tmp); } else { this.cursor = new openfl_display_Bitmap(new flixel_input_mouse__$FlxMouse_GraphicCursor(0,0)); } this.cursor.set_x(XOffset); this.cursor.set_y(YOffset); this.cursor.set_scaleX(Scale); this.cursor.set_scaleY(Scale); this.cursorContainer.addChild(this.cursor); } ,unload: function() { if(this.cursor != null) { if(this.cursorContainer.get_visible()) { this.load(); } else { this.cursor = flixel_util_FlxDestroyUtil.removeChild(this.cursorContainer,this.cursor); } } } ,destroy: function() { if(this._stage != null) { this._stage.removeEventListener("mouseDown",($_=this._leftButton,$bind($_,$_.onDown))); this._stage.removeEventListener("mouseUp",($_=this._leftButton,$bind($_,$_.onUp))); this._stage.removeEventListener("middleMouseDown",($_=this._middleButton,$bind($_,$_.onDown))); this._stage.removeEventListener("middleMouseUp",($_=this._middleButton,$bind($_,$_.onUp))); this._stage.removeEventListener("rightMouseDown",($_=this._rightButton,$bind($_,$_.onDown))); this._stage.removeEventListener("rightMouseUp",($_=this._rightButton,$bind($_,$_.onUp))); this._stage.removeEventListener("mouseLeave",$bind(this,this.onMouseLeave)); this._stage.removeEventListener("mouseWheel",$bind(this,this.onMouseWheel)); } this.cursorContainer = null; this.cursor = null; this._leftButton = flixel_util_FlxDestroyUtil.destroy(this._leftButton); this._middleButton = flixel_util_FlxDestroyUtil.destroy(this._middleButton); this._rightButton = flixel_util_FlxDestroyUtil.destroy(this._rightButton); this._cursorBitmapData = flixel_util_FlxDestroyUtil.dispose(this._cursorBitmapData); flixel_FlxG.signals.postGameStart.remove($bind(this,this.onGameStart)); } ,reset: function() { this._leftButton.reset(); this._middleButton.reset(); this._rightButton.reset(); } ,update: function() { this._prevX = this.x; this._prevY = this.y; this._prevScreenX = this.screenX; this._prevScreenY = this.screenY; var newX = flixel_FlxG.game.get_mouseX(); var newY = flixel_FlxG.game.get_mouseY(); this._globalScreenX = newX / flixel_FlxG.scaleMode.scale.x | 0; this._globalScreenY = newY / flixel_FlxG.scaleMode.scale.y | 0; this.updatePositions(); if(this.visible) { this.cursorContainer.set_x(flixel_FlxG.game.get_mouseX()); this.cursorContainer.set_y(flixel_FlxG.game.get_mouseY()); } this._leftButton.update(); this._middleButton.update(); this._rightButton.update(); if(!this._wheelUsed) { this.wheel = 0; } this._wheelUsed = false; } ,onFocus: function() { this.reset(); this.set_useSystemCursor(this.useSystemCursor); this.set_visible(this._visibleWhenFocusLost); } ,onFocusLost: function() { this._visibleWhenFocusLost = this.visible; if(this.visible) { this.set_visible(false); } openfl_ui_Mouse.show(); } ,onGameStart: function() { this.set_visible(this.visible); } ,onMouseWheel: function(flashEvent) { if(this.enabled) { this._wheelUsed = true; this.wheel = flashEvent.delta; } } ,onMouseLeave: function(_) { this._rightButton.onUp(); this._middleButton.onUp(); } ,get_justMoved: function() { if(this._prevX == this.x) { return this._prevY != this.y; } else { return true; } } ,get_deltaX: function() { return this.x - this._prevX; } ,get_deltaY: function() { return this.y - this._prevY; } ,get_deltaScreenX: function() { return this.screenX - this._prevScreenX; } ,get_deltaScreenY: function() { return this.screenY - this._prevScreenY; } ,get_pressed: function() { var _this = this._leftButton; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressed: function() { return this._leftButton.current == 2; } ,get_released: function() { var _this = this._leftButton; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_justReleased: function() { return this._leftButton.current == -1; } ,get_justPressedTimeInTicks: function() { return this._leftButton.justPressedTimeInTicks; } ,get_pressedRight: function() { var _this = this._rightButton; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressedRight: function() { return this._rightButton.current == 2; } ,get_releasedRight: function() { var _this = this._rightButton; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_justReleasedRight: function() { return this._rightButton.current == -1; } ,get_justPressedTimeInTicksRight: function() { return this._rightButton.justPressedTimeInTicks; } ,get_pressedMiddle: function() { var _this = this._middleButton; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressedMiddle: function() { return this._middleButton.current == 2; } ,get_releasedMiddle: function() { var _this = this._middleButton; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_justReleasedMiddle: function() { return this._middleButton.current == -1; } ,get_justPressedTimeInTicksMiddle: function() { return this._middleButton.justPressedTimeInTicks; } ,showSystemCursor: function() { this.cursorContainer.set_visible(false); openfl_ui_Mouse.show(); } ,hideSystemCursor: function() { openfl_ui_Mouse.hide(); if(this.visible) { this.cursorContainer.set_visible(true); } } ,set_useSystemCursor: function(value) { if(value) { this.showSystemCursor(); } else { this.hideSystemCursor(); } return this.useSystemCursor = value; } ,showCursor: function() { if(this.useSystemCursor) { openfl_ui_Mouse.show(); } else { if(this.cursor == null) { this.load(); } this.cursorContainer.set_visible(true); openfl_ui_Mouse.hide(); } } ,hideCursor: function() { this.cursorContainer.set_visible(false); openfl_ui_Mouse.hide(); } ,set_visible: function(value) { if(value) { this.showCursor(); } else { this.hideCursor(); } return this.visible = value; } ,record: function() { if(this._lastX == this._globalScreenX && this._lastY == this._globalScreenY && this._lastLeftButtonState == this._leftButton.current && this._lastWheel == this.wheel) { return null; } this._lastX = this._globalScreenX; this._lastY = this._globalScreenY; this._lastLeftButtonState = this._leftButton.current; this._lastWheel = this.wheel; return new flixel_system_replay_MouseRecord(this._lastX,this._lastY,this._leftButton.current,this._lastWheel); } ,playback: function(record) { if((this._lastLeftButtonState == 1 || this._lastLeftButtonState == 2) && (record.button == 0 || record.button == -1)) { this._stage.dispatchEvent(new openfl_events_MouseEvent("mouseUp",true,false,record.x,record.y)); } this._lastLeftButtonState = this._leftButton.current = record.button; this.wheel = record.wheel; this._globalScreenX = record.x; this._globalScreenY = record.y; this.updatePositions(); } ,get__cursor: function() { return this.cursor; } ,set__cursor: function(value) { return this.cursor = value; } ,__class__: flixel_input_mouse_FlxMouse ,__properties__: {set__cursor:"set__cursor",get__cursor:"get__cursor",get_justPressedTimeInTicksMiddle:"get_justPressedTimeInTicksMiddle",get_justReleasedMiddle:"get_justReleasedMiddle",get_releasedMiddle:"get_releasedMiddle",get_justPressedMiddle:"get_justPressedMiddle",get_pressedMiddle:"get_pressedMiddle",get_justPressedTimeInTicksRight:"get_justPressedTimeInTicksRight",get_justReleasedRight:"get_justReleasedRight",get_releasedRight:"get_releasedRight",get_justPressedRight:"get_justPressedRight",get_pressedRight:"get_pressedRight",get_justPressedTimeInTicks:"get_justPressedTimeInTicks",get_justReleased:"get_justReleased",get_released:"get_released",get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_deltaScreenY:"get_deltaScreenY",get_deltaScreenX:"get_deltaScreenX",get_deltaY:"get_deltaY",get_deltaX:"get_deltaX",get_justMoved:"get_justMoved",set_useSystemCursor:"set_useSystemCursor",set_visible:"set_visible"} }); var flixel_addons_ui_FlxUIMouse = function(CursorContainer) { this.updateGlobalScreenPosition = true; flixel_input_mouse_FlxMouse.call(this,CursorContainer); }; $hxClasses["flixel.addons.ui.FlxUIMouse"] = flixel_addons_ui_FlxUIMouse; flixel_addons_ui_FlxUIMouse.__name__ = "flixel.addons.ui.FlxUIMouse"; flixel_addons_ui_FlxUIMouse.__super__ = flixel_input_mouse_FlxMouse; flixel_addons_ui_FlxUIMouse.prototype = $extend(flixel_input_mouse_FlxMouse.prototype,{ updateGlobalScreenPosition: null ,update: function() { var oldScreenX = this._globalScreenX; var oldScreenY = this._globalScreenY; flixel_input_mouse_FlxMouse.prototype.update.call(this); if(!this.updateGlobalScreenPosition) { this._globalScreenX = oldScreenX; this._globalScreenY = oldScreenY; } } ,__class__: flixel_addons_ui_FlxUIMouse }); var flixel_addons_ui_FlxUINumericStepper = function(X,Y,StepSize,DefaultValue,Min,Max,Decimals,Stack,TextField,ButtonPlus,ButtonMinus,IsPercent) { if(IsPercent == null) { IsPercent = false; } if(Stack == null) { Stack = 1; } if(Decimals == null) { Decimals = 0; } if(Max == null) { Max = 999; } if(Min == null) { Min = -999; } if(DefaultValue == null) { DefaultValue = 0; } if(StepSize == null) { StepSize = 1; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.isPercent = false; this.stack = 1; this.value = 0; this.max = 10; this.min = 0; this.decimals = 0; this.stepSize = 0; flixel_addons_ui_FlxTypedUIGroup.call(this,X,Y); if(TextField == null) { TextField = new flixel_addons_ui_FlxUIInputText(0,0,25); } TextField.set_x(0); TextField.set_y(0); this.text_field = TextField; this.text_field.set_text(DefaultValue == null ? "null" : "" + DefaultValue); if(((this.text_field) instanceof flixel_addons_ui_FlxUIInputText)) { var fuit = this.text_field; fuit.set_lines(1); fuit.callback = $bind(this,this._onInputTextEvent); fuit.broadcastToFlxUI = false; } this.stepSize = StepSize; this.set_decimals(Decimals); this.set_min(Min); this.set_max(Max); this.set_value(DefaultValue); this.set_isPercent(IsPercent); var btnSize = 1 + TextField.get_height(); if(ButtonPlus == null) { ButtonPlus = new flixel_addons_ui_FlxUITypedButton(0,0); ButtonPlus.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],btnSize,btnSize,[flixel_util_FlxStringUtil.toIntArray("2,2,15,15")],0,-1,false,18,18); ButtonPlus.set_label(new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/plus_mark.png")); } if(ButtonMinus == null) { ButtonMinus = new flixel_addons_ui_FlxUITypedButton(0,0); ButtonMinus.loadGraphicSlice9(["flixel/flixel-ui/img/button_thin.png"],btnSize,btnSize,[flixel_util_FlxStringUtil.toIntArray("2,2,15,15")],0,-1,false,18,18); ButtonMinus.set_label(new flixel_FlxSprite(0,0,"flixel/flixel-ui/img/minus_mark.png")); } this.button_plus = ButtonPlus; this.button_minus = ButtonMinus; this.add(this.text_field); this.add(this.button_plus); this.add(this.button_minus); this.button_plus.onUp.callback = $bind(this,this._onPlus); this.button_plus.broadcastToFlxUI = false; this.button_minus.onUp.callback = $bind(this,this._onMinus); this.button_minus.broadcastToFlxUI = false; this.set_stack(Stack); }; $hxClasses["flixel.addons.ui.FlxUINumericStepper"] = flixel_addons_ui_FlxUINumericStepper; flixel_addons_ui_FlxUINumericStepper.__name__ = "flixel.addons.ui.FlxUINumericStepper"; flixel_addons_ui_FlxUINumericStepper.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxUINumericStepper.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUINumericStepper.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ button_plus: null ,button_minus: null ,text_field: null ,stepSize: null ,decimals: null ,min: null ,max: null ,value: null ,stack: null ,isPercent: null ,params: null ,set_params: function(p) { this.params = p; return this.params; } ,skipButtonUpdate: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; this.button_plus.set_skipButtonUpdate(b); this.button_minus.set_skipButtonUpdate(b); return b; } ,set_color: function(Value) { this.color = Value; this.button_plus.set_color(Value); this.button_minus.set_color(Value); if(((this.text_field) instanceof flixel_addons_ui_FlxInputText)) { var fit = this.text_field; fit.set_backgroundColor(Value); } else { this.text_field.set_color(Value); } return Value; } ,set_min: function(f) { this.min = f; if(this.value < this.min) { this.set_value(this.min); } return this.min; } ,set_max: function(f) { this.max = f; if(this.value > this.max) { this.set_value(this.max); } return this.max; } ,set_value: function(f) { this.value = f; if(this.value < this.min) { this.value = this.min; } if(this.value > this.max) { this.value = this.max; } if(this.text_field != null) { var displayValue = this.value; if(this.isPercent) { displayValue *= 100; var tens = Math.pow(10,this.decimals); this.text_field.set_text(Std.string(Std.string(Math.round(displayValue * tens) / tens)) + "%"); } else { var tens = Math.pow(10,this.decimals); this.text_field.set_text(Std.string(Math.round(displayValue * tens) / tens)); } } return this.value; } ,set_decimals: function(i) { this.decimals = i; if(i < 0) { this.decimals = 0; } this.set_value(this.value); return this.decimals; } ,set_isPercent: function(b) { this.isPercent = b; this.set_value(this.value); return this.isPercent; } ,set_stack: function(s) { this.stack = s; var btnSize = 10; var offsetX = 0; var offsetY = 0; if(((this.text_field) instanceof flixel_addons_ui_FlxUIInputText)) { offsetX = 1; offsetY = 1; } switch(this.stack) { case 0: btnSize = 1 + this.text_field.get_height() / 2; if(this.button_plus.get_height() != btnSize) { this.button_plus.resize(btnSize,btnSize); } if(this.button_minus.get_height() != btnSize) { this.button_minus.resize(btnSize,btnSize); } this.button_plus.set_x(offsetX + this.text_field.x + this.text_field.get_width()); this.button_plus.set_y(-offsetY + this.text_field.y); this.button_minus.set_x(offsetX + this.text_field.x + this.text_field.get_width()); this.button_minus.set_y(offsetY + this.text_field.y + (this.text_field.get_height() - this.button_minus.get_height())); break; case 1: btnSize = 2 + this.text_field.get_height(); if(this.button_plus.get_height() != btnSize) { this.button_plus.resize(btnSize,btnSize); } if(this.button_minus.get_height() != btnSize) { this.button_minus.resize(btnSize,btnSize); } this.button_plus.set_x(offsetX + this.text_field.x + this.text_field.get_width()); this.button_plus.set_y(-offsetY + this.text_field.y); this.button_minus.set_x(this.button_plus.x + this.button_plus.get_width()); this.button_minus.set_y(this.button_plus.y); break; } return this.stack; } ,decimalize: function(f,digits) { var tens = Math.pow(10,digits); return Std.string(Math.round(f * tens) / tens); } ,_onInputTextEvent: function(text,action) { if(text == "") { text = Std.string(this.min); } var numDecimals = 0; var _g = 0; var _g1 = text.length; while(_g < _g1) { var i = _g++; var char = text.charAt(i); if(char == ".") { ++numDecimals; } } var justAddedDecimal = numDecimals == 1 && text.indexOf(".") == text.length - 1; if(!justAddedDecimal) { this.set_value(parseFloat(text)); this._doCallback("edit_numeric_stepper"); this._doCallback("change_numeric_stepper"); } } ,_onPlus: function() { this.set_value(this.value + this.stepSize); this._doCallback("click_numeric_stepper"); this._doCallback("change_numeric_stepper"); } ,_onMinus: function() { this.set_value(this.value - this.stepSize); this._doCallback("click_numeric_stepper"); this._doCallback("change_numeric_stepper"); } ,_doCallback: function(event_name) { if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event(event_name,this,this.value,this.params); } } ,__class__: flixel_addons_ui_FlxUINumericStepper ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_skipButtonUpdate:"set_skipButtonUpdate",set_params:"set_params",set_isPercent:"set_isPercent",set_stack:"set_stack",set_value:"set_value",set_max:"set_max",set_min:"set_min",set_decimals:"set_decimals"}) }); var flixel_addons_ui_FlxUIRadioGroup = function(X,Y,ids_,labels_,callback_,y_space_,width_,height_,label_width_,MoreString,PrevButtonOffset,NextButtonOffset,PrevButton,NextButton) { if(MoreString == null) { MoreString = " more..."; } if(label_width_ == null) { label_width_ = 100; } if(height_ == null) { height_ = 20; } if(width_ == null) { width_ = 100; } if(y_space_ == null) { y_space_ = 25; } this._clickable = true; this._selected = 0; this._y_space = 25; this._height = 20; this._width = 100; this._label_width = 100; this.fixedSize = false; flixel_addons_ui_FlxTypedUIGroup.call(this); this._y_space = y_space_; this._width = width_; this._height = height_; this._label_width = label_width_; if(ids_ == null) { ids_ = []; } if(labels_ == null) { labels_ = []; } this.callback = callback_; this._list_radios = []; this._list_active = []; this._list = new flixel_addons_ui_FlxUIList(0,0,null,0,0,MoreString,1,0,PrevButtonOffset,NextButtonOffset,PrevButton,NextButton); this.add(this._list); this.updateRadios(ids_,labels_); this.loadGraphics(null,null); this.set_x(X); this.set_y(Y); }; $hxClasses["flixel.addons.ui.FlxUIRadioGroup"] = flixel_addons_ui_FlxUIRadioGroup; flixel_addons_ui_FlxUIRadioGroup.__name__ = "flixel.addons.ui.FlxUIRadioGroup"; flixel_addons_ui_FlxUIRadioGroup.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIClickable]; flixel_addons_ui_FlxUIRadioGroup.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUIRadioGroup.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ activeStyle: null ,set_activeStyle: function(b) { this.activeStyle = b; this.updateActives(); return this.activeStyle; } ,inactiveStyle: null ,set_inactiveStyle: function(b) { this.inactiveStyle = b; this.updateActives(); return this.inactiveStyle; } ,get_numRadios: function() { return this._list_radios.length; } ,skipButtonUpdate: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var fcb = _g1[_g]; ++_g; fcb.set_skipButtonUpdate(b); } return this.skipButtonUpdate; } ,callback: null ,params: null ,set_params: function(p) { this.params = p; return this.params; } ,fixedSize: null ,set_width: function(Value) { flixel_addons_ui_FlxTypedUIGroup.prototype.set_width.call(this,Value); if(this.fixedSize) { if(this._list != null) { this._list.set_width(Value); } } return Value; } ,set_height: function(Value) { flixel_addons_ui_FlxTypedUIGroup.prototype.set_height.call(this,Value); if(this.fixedSize) { if(this._list != null) { this._list.set_height(Value); } } return Value; } ,loadGraphics: function(Box,Dot) { if(Box != null) { this._box_asset = Box; } else { this._box_asset = "flixel/flixel-ui/img/radio.png"; } if(Dot != null) { this._dot_asset = Dot; } else { this._dot_asset = "flixel/flixel-ui/img/radio_dot.png"; } if(((this._box_asset) instanceof flixel_FlxSprite)) { var fs = this._box_asset; this._box_asset = fs.graphic.key; } if(((this._dot_asset) instanceof flixel_FlxSprite)) { var fs = this._dot_asset; this._dot_asset = fs.graphic.key; } var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.box.loadGraphic(this._box_asset,true); c.mark.loadGraphic(this._dot_asset); } this._refreshRadios(); } ,destroy: function() { if(this._list_radios != null) { flixel_addons_ui_U.clearArray(this._list_radios); } if(this._list_active != null) { flixel_addons_ui_U.clearArray(this._list_active); } this._list_active = null; this._list_radios = null; this._list = null; this._ids = null; this._labels = null; flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); } ,updateLabel: function(i,label_) { if(i >= this._list_radios.length) { return false; } this._labels[i] = label_; var c = this._list_radios[i]; if(c != null) { c.button.set_width(this._label_width); c.set_text(label_); } return true; } ,updateId: function(i,id_) { if(i >= this._list_radios.length) { return false; } this._ids[i] = id_; return true; } ,show: function(b) { var _g = 0; var _g1 = this._list.group.members; while(_g < _g1.length) { var fo = _g1[_g]; ++_g; fo.set_visible(b); } } ,updateRadios: function(ids_,labels_) { this._ids = ids_; this._labels = labels_; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_visible(false); } this._refreshRadios(); } ,getRadios: function() { return this._list_radios; } ,getLabel: function(i) { if(i >= 0 && i < this._labels.length) { return this._labels[i]; } return null; } ,getId: function(i) { if(i >= 0 && i < this._ids.length) { return this._ids[i]; } return null; } ,getIsVisible: function(i) { if(i >= 0 && i < this._list_radios.length) { return this._list_radios[i].visible; } return false; } ,get_clickable: function() { return this._clickable; } ,set_clickable: function(b) { this._clickable = b; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_active(b); } return this._clickable; } ,get_selectedIndex: function() { return this._selected; } ,set_selectedIndex: function(i) { this._selected = i; var j = 0; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_checked(false); if(j == i) { c.set_checked(true); } ++j; } if(this._selected < 0 || this._selected >= this._list_radios.length) { this._selected = -1; } return this._selected; } ,get_selectedLabel: function() { return this._labels[this._selected]; } ,set_selectedLabel: function(str) { var i = 0; this._selected = -1; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_checked(false); if(this._labels[i] == str) { this._selected = i; c.set_checked(true); } ++i; } if(this._selected >= 0 && this._selected < this._labels.length) { return this._labels[this._selected]; } return null; } ,get_selectedId: function() { return this._ids[this._selected]; } ,set_selectedId: function(str) { var i = 0; this._selected = -1; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_checked(false); if(this._ids[i] == str) { this._selected = i; c.set_checked(true); } ++i; } if(this._selected >= 0 && this._selected < this._ids.length) { return this._ids[this._selected]; } return null; } ,setLineScroll: function(scroll,max_items) { this._list.set_scrollIndex(scroll); if(max_items != null) { if(this._list.stacking == 1) { this.set_height(this._y_space * max_items + 1); } } var x = this._list.amountPrevious; var y = this._list.amountNext; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; return point; } ,setRadioActive: function(i,b) { if(i >= 0 && i < this._list_active.length) { this._list_active[i] = b; } this.updateActives(); } ,_list_active: null ,_list: null ,_box_asset: null ,_dot_asset: null ,_labels: null ,_ids: null ,_label_width: null ,_width: null ,_height: null ,_y_space: null ,_selected: null ,_clickable: null ,_list_radios: null ,_refreshRadios: function() { var xx = this.x; var yy = this.y; var i = 0; var maxX = 0; var maxY = 0; this._list._skipRefresh = true; var _g = 0; var _g1 = this._ids; while(_g < _g1.length) { var id = _g1[_g]; ++_g; var label = ""; if(this._labels != null && this._labels.length > i) { label = this._labels[i]; } else { label = "<" + id + ">"; } var c; if(this._list_radios.length > i) { c = this._list_radios[i]; c.set_visible(true); c.set_text(label); if(i == 0) { xx = c.x; yy = c.y; } else { c.set_x(xx | 0); c.set_y(yy | 0); } } else { c = new flixel_addons_ui_FlxUICheckBox(0,0,this._box_asset,this._dot_asset,label,this._label_width,[id,false]); c.broadcastToFlxUI = false; c.callback = (function(_g,checkBox) { return function() { _g[0]._onCheckBoxEvent(checkBox[0]); }; })([this],[c]); this._list.add(c); c.set_x(xx | 0); c.set_y(yy | 0); c.set_text(label); if(this._list_radios.length > 0) { c.button.copyStyle(this._list_radios[0].button); if(this.activeStyle == null) { this.set_activeStyle(this.makeActiveStyle()); } c.button.set_width(this._list_radios[0].button.get_width()); c.button.set_height(this._list_radios[0].button.get_height()); c.set_textX(this._list_radios[0].textX); c.set_textY(this._list_radios[0].textY); } this._list_radios.push(c); this._list_active.push(true); } if(xx + c.get_width() > maxX) { maxX = xx + c.get_width(); } if(yy + c.get_height() > maxY) { maxY = yy + c.get_height(); } yy += this._y_space; ++i; } if(this.fixedSize == false) { maxX += 5; maxY += 5; if(maxX > this._list.get_width()) { this._list.set_width(maxX); } if(maxY > this._list.get_height()) { this._list.set_height(maxY); } this.set_width(maxX); this.set_height(maxY); } this._list._skipRefresh = false; if(this.fixedSize == true) { this._list.refreshList(); } this.updateActives(); } ,updateActives: function() { var i = 0; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var r = _g1[_g]; ++_g; r.set_active(this._list_active[i]); if(this._list_active[i] == false && this.inactiveStyle != null) { this.inactiveStyle.applyToCheck(r); } else if(this._list_active[i] == true && this.activeStyle != null) { this.activeStyle.applyToCheck(r); } ++i; } } ,makeActiveStyle: function() { if(this._list_radios.length > 0) { var btn = this._list_radios[0].button; var t = btn.label; var fd = flixel_addons_ui_FontDef.copyFromFlxText(t); var bd = new flixel_addons_ui_BorderDef(t.borderStyle,t.borderColor,t.borderSize,t.borderQuality); var cs = new flixel_addons_ui_CheckStyle(16777215,fd,flixel_text_FlxTextAlign.fromOpenFL(t._defaultFormat.align),t.color,bd); return cs; } return null; } ,_onCheckBoxEvent: function(checkBox) { this._onClick(checkBox,true); } ,_onClick: function(checkBox,doCallback) { if(!this._clickable) { return false; } var i = 0; var _g = 0; var _g1 = this._list_radios; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_checked(false); if(checkBox == c) { this._selected = i; c.set_checked(true); } ++i; } if(doCallback) { if(this.callback != null) { this.callback(this.get_selectedId()); } if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("click_radio_group",this,this._ids[this._selected],this.params); } } return true; } ,__class__: flixel_addons_ui_FlxUIRadioGroup ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_params:"set_params",set_skipButtonUpdate:"set_skipButtonUpdate",get_numRadios:"get_numRadios",set_inactiveStyle:"set_inactiveStyle",set_activeStyle:"set_activeStyle",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",set_selectedLabel:"set_selectedLabel",get_selectedLabel:"get_selectedLabel",set_selectedId:"set_selectedId",get_selectedId:"get_selectedId",set_clickable:"set_clickable",get_clickable:"get_clickable"}) }); var flixel_addons_ui_CheckStyle = function(CheckColor,Font,Align,Color,Border) { this.checkColor = null; this.checkColor = CheckColor; flixel_addons_ui_ButtonLabelStyle.call(this,Font,Align,Color,Border); }; $hxClasses["flixel.addons.ui.CheckStyle"] = flixel_addons_ui_CheckStyle; flixel_addons_ui_CheckStyle.__name__ = "flixel.addons.ui.CheckStyle"; flixel_addons_ui_CheckStyle.__super__ = flixel_addons_ui_ButtonLabelStyle; flixel_addons_ui_CheckStyle.prototype = $extend(flixel_addons_ui_ButtonLabelStyle.prototype,{ checkColor: null ,applyToCheck: function(c) { if(this.checkColor != null) { c.set_color(this.checkColor); } this.apply(c.button.label); } ,__class__: flixel_addons_ui_CheckStyle }); var flixel_addons_ui_FlxUIRegion = function(X,Y,W,H) { if(H == null) { H = 16; } if(W == null) { W = 16; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.broadcastToFlxUI = true; flixel_FlxSprite.call(this,X,Y); this.makeGraphic(1,1,0); if(H < 1) { H = 1; } if(W < 1) { W = 1; } this.resize(W,H); }; $hxClasses["flixel.addons.ui.FlxUIRegion"] = flixel_addons_ui_FlxUIRegion; flixel_addons_ui_FlxUIRegion.__name__ = "flixel.addons.ui.FlxUIRegion"; flixel_addons_ui_FlxUIRegion.__interfaces__ = [flixel_addons_ui_interfaces_IResizable,flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxUIRegion.__super__ = flixel_FlxSprite; flixel_addons_ui_FlxUIRegion.prototype = $extend(flixel_FlxSprite.prototype,{ broadcastToFlxUI: null ,name: null ,resize: function(w,h) { this.set_width(w); this.set_height(h); } ,__class__: flixel_addons_ui_FlxUIRegion }); var flixel_addons_ui_FlxUISlider = function(Object1,VarString,X,Y,MinValue,MaxValue,Width,Height,Thickness,Color,HandleColor) { this.broadcastToFlxUI = true; flixel_addons_ui_FlxSlider.call(this,Object1,VarString,X,Y,MinValue,MaxValue,Width,Height,Thickness,Color,HandleColor); }; $hxClasses["flixel.addons.ui.FlxUISlider"] = flixel_addons_ui_FlxUISlider; flixel_addons_ui_FlxUISlider.__name__ = "flixel.addons.ui.FlxUISlider"; flixel_addons_ui_FlxUISlider.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget]; flixel_addons_ui_FlxUISlider.__super__ = flixel_addons_ui_FlxSlider; flixel_addons_ui_FlxUISlider.prototype = $extend(flixel_addons_ui_FlxSlider.prototype,{ name: null ,broadcastToFlxUI: null ,__class__: flixel_addons_ui_FlxUISlider }); var flixel_addons_ui_FlxUISpriteButton = function(X,Y,Asset,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_addons_ui_FlxUITypedButton.call(this,X,Y,OnClick); this.up_color = this.over_color = this.down_color = this.up_toggle_color = this.over_toggle_color = this.down_toggle_color = -1; if(Asset != null) { this.set_label(Asset); } }; $hxClasses["flixel.addons.ui.FlxUISpriteButton"] = flixel_addons_ui_FlxUISpriteButton; flixel_addons_ui_FlxUISpriteButton.__name__ = "flixel.addons.ui.FlxUISpriteButton"; flixel_addons_ui_FlxUISpriteButton.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIButton]; flixel_addons_ui_FlxUISpriteButton.__super__ = flixel_addons_ui_FlxUITypedButton; flixel_addons_ui_FlxUISpriteButton.prototype = $extend(flixel_addons_ui_FlxUITypedButton.prototype,{ resize: function(W,H) { flixel_addons_ui_FlxUITypedButton.prototype.resize.call(this,W,H); this.autoCenterLabel(); } ,autoCenterLabel: function() { if(this.label != null) { if(((this.label) instanceof flixel_group_FlxTypedSpriteGroup)) { var g = this.label; var _g = 0; var _g1 = g.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; sprite.set_x(-sprite.get_width() / 2); sprite.set_y(-sprite.get_height() / 2); } var W = g.get_width(); var H = g.get_height(); var _g = 0; var _g1 = g.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; sprite.set_x((W - sprite.get_width()) / 2); sprite.set_y((H - sprite.get_height()) / 2); } } flixel_addons_ui_FlxUITypedButton.prototype.autoCenterLabel.call(this); } } ,__class__: flixel_addons_ui_FlxUISpriteButton }); var flixel_addons_ui_FlxUIState = function(TransIn,TransOut) { this.getTextFallback = null; this._reload_countdown = 0; this._reload = false; this.reload_ui_on_resize = false; this._xml_id = ""; this._cursorHidden = false; this.hideCursorOnSubstate = false; this.cursor = null; flixel_addons_transition_FlxTransitionableState.call(this,TransIn,TransOut); }; $hxClasses["flixel.addons.ui.FlxUIState"] = flixel_addons_ui_FlxUIState; flixel_addons_ui_FlxUIState.__name__ = "flixel.addons.ui.FlxUIState"; flixel_addons_ui_FlxUIState.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIState,flixel_addons_ui_interfaces_IEventGetter]; flixel_addons_ui_FlxUIState.__super__ = flixel_addons_transition_FlxTransitionableState; flixel_addons_ui_FlxUIState.prototype = $extend(flixel_addons_transition_FlxTransitionableState.prototype,{ destroyed: null ,cursor: null ,hideCursorOnSubstate: null ,_cursorHidden: null ,tooltips: null ,_xml_id: null ,_makeCursor: null ,_ui_vars: null ,_ui: null ,_tongue: null ,reload_ui_on_resize: null ,_reload: null ,_reload_countdown: null ,getTextFallback: null ,create: function() { if(flixel_addons_ui_FlxUIState.static_tongue != null) { this._tongue = flixel_addons_ui_FlxUIState.static_tongue; } if(this._makeCursor == true) { this.cursor = this.createCursor(); } this.tooltips = new flixel_addons_ui_FlxUITooltipManager(this); var liveFile = null; this._ui = this.createUI(null,this,null,this._tongue); this.add(this._ui); if(this.getTextFallback != null) { this._ui.getTextFallback = this.getTextFallback; } if(this._xml_id != null && this._xml_id != "") { var data = null; var errorMsg = ""; if(liveFile == null) { try { data = flixel_addons_ui_U.xml(this._xml_id); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg = _g1; errorMsg = msg; } else { throw _g; } } if(data == null) { try { data = flixel_addons_ui_U.xml(this._xml_id,"xml",true,""); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg2 = _g1; errorMsg += ", " + msg2; } else { throw _g; } } } } if(data == null) { if(liveFile != null) { this.loadUIFromData(liveFile); } else { flixel_FlxG.log.advanced("FlxUISubState: Could not load _xml_id \"" + this._xml_id + "\"",flixel_system_debug_log_LogStyle.ERROR,true); } } else { this.loadUIFromData(data); } } else { this.loadUIFromData(null); } if(this.cursor != null && this._ui != null) { this.add(this.cursor); this.cursor.addWidgetsFromUI(this._ui); this.cursor.findVisibleLocation(0); } this.tooltips.init(); flixel_addons_transition_FlxTransitionableState.prototype.create.call(this); this.cleanup(); } ,update: function(elapsed) { flixel_addons_transition_FlxTransitionableState.prototype.update.call(this,elapsed); if(this.tooltips != null) { this.tooltips.update(elapsed); } if(this._reload) { if(this._reload_countdown > 0) { this._reload_countdown--; if(this._reload_countdown == 0) { this.reloadUI(); } } } } ,cleanup: function() { this._ui.cleanup(); } ,_cleanupUIVars: function() { if(this._ui_vars != null) { var h = this._ui_vars.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = this._ui_vars; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this._ui_vars = null; } } ,setUIVariable: function(key,value) { if(this._ui != null) { this._ui.setVariable(key,value); } else { if(this._ui_vars == null) { this._ui_vars = new haxe_ds_StringMap(); } this._ui_vars.h[key] = value; } } ,resizeScreen: function(width,height) { if(height == null) { height = 600; } if(width == null) { width = 800; } } ,openSubState: function(SubState) { if(this.cursor != null && this.hideCursorOnSubstate && this.cursor.visible == true) { this._cursorHidden = true; this.cursor.set_visible(false); } flixel_addons_transition_FlxTransitionableState.prototype.openSubState.call(this,SubState); } ,closeSubState: function() { if(this.cursor != null && this.hideCursorOnSubstate && this._cursorHidden) { this._cursorHidden = false; this.cursor.set_visible(true); } flixel_addons_transition_FlxTransitionableState.prototype.closeSubState.call(this); } ,onResize: function(Width,Height) { if(this.reload_ui_on_resize) { flixel_FlxG.scaleMode.onMeasure(Width,Height); this._reload_countdown = 1; this._reload = true; } } ,onShowTooltip: function(t) { } ,destroy: function() { this.destroyed = true; if(this._ui != null) { this._ui.destroy(); this.remove(this._ui,true); this._ui = null; } if(this.tooltips != null) { this.tooltips.destroy(); this.tooltips = null; } flixel_addons_transition_FlxTransitionableState.prototype.destroy.call(this); } ,forceFocus: function(b,thing) { if(this._ui != null) { if(b) { this._ui.set_focus(thing); } else { this._ui.set_focus(null); } } } ,onCursorEvent: function(code,target) { this.getEvent(code,target,null); } ,getEvent: function(id,sender,data,params) { } ,getRequest: function(id,sender,data,params) { return null; } ,getText: function(Flag,Context,Safe) { if(Safe == null) { Safe = true; } if(Context == null) { Context = "ui"; } if(this._tongue != null) { return this._tongue.get(Flag,Context,Safe); } if(this.getTextFallback != null) { return this.getTextFallback(Flag,Context,Safe); } return Flag; } ,createCursor: function() { return new flixel_addons_ui_FlxUICursor($bind(this,this.onCursorEvent)); } ,createUI: function(data,ptr,superIndex_,tongue_,liveFilePath_) { if(liveFilePath_ == null) { liveFilePath_ = ""; } var flxui = new flixel_addons_ui_FlxUI(data,ptr,superIndex_,tongue_,liveFilePath_,this._ui_vars); this._cleanupUIVars(); return flxui; } ,loadUIFromData: function(data) { this._ui.load(data); } ,reloadUI: function(e) { if(this._ui != null) { this.remove(this._ui,true); this._ui.destroy(); this._ui = null; } this._ui = this.createUI(null,this,null,this._tongue); this.add(this._ui); var data = flixel_addons_ui_U.xml(this._xml_id); if(data != null) { this.loadUIFromData(data); } this._reload = false; this._reload_countdown = 0; } ,__class__: flixel_addons_ui_FlxUIState }); var flixel_addons_ui_FlxUITabMenu = function(back_,tabs_,tab_names_and_labels_,tab_offset,stretch_tabs,tab_spacing,tab_stacking) { if(stretch_tabs == null) { stretch_tabs = false; } this._selected_tab = -1; this._selected_tab_id = ""; this._tab_offset = null; this._tab_stacking = null; this._tab_spacing = null; this._stretch_tabs = false; flixel_addons_ui_FlxTypedUIGroup.call(this); if(back_ == null) { back_ = new flixel_addons_ui_FlxUI9SliceSprite(0,0,"flixel/flixel-ui/img/chrome_flat.png",new openfl_geom_Rectangle(0,0,200,200)); } this._back = back_; this.add(this._back); if(tabs_ == null) { if(tab_names_and_labels_ != null) { tabs_ = []; var _g = 0; while(_g < tab_names_and_labels_.length) { var tdata = tab_names_and_labels_[_g]; ++_g; var fb = new flixel_addons_ui_FlxUIButton(0,0,tdata.label); fb.up_color = 16777215; fb.down_color = 16777215; fb.over_color = 16777215; fb.up_toggle_color = 16777215; fb.down_toggle_color = 16777215; fb.over_toggle_color = 16777215; fb.label.set_color(16777215); var _this = fb.label; _this.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE); _this.set_borderColor(0); _this.set_borderSize(1); _this.set_borderQuality(1); fb.name = tdata.name; var graphic_names = ["flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab_back.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png","flixel/flixel-ui/img/tab.png"]; var slice9tab = flixel_util_FlxStringUtil.toIntArray("6,6,11,11"); var slice9_names = [slice9tab,slice9tab,slice9tab,slice9tab,slice9tab,slice9tab]; fb.loadGraphicSlice9(graphic_names,0,0,slice9_names,0,-1,true); tabs_.push(fb); } } } this._tabs = tabs_; this._stretch_tabs = stretch_tabs; this._tab_spacing = tab_spacing; this._tab_stacking = tab_stacking; if(this._tab_stacking == null) { this._tab_stacking = ["front","back"]; } this._tab_offset = tab_offset; var i = 0; var tab = null; var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var t = _g1[_g]; ++_g; tab = t; this.add(tab); var tmp = (function(_g,name) { return function() { _g[0]._onTabEvent(name[0]); }; })([this],[tab.name]); tab.onUp.callback = tmp; ++i; } this.distributeTabs(); this._tab_groups = []; }; $hxClasses["flixel.addons.ui.FlxUITabMenu"] = flixel_addons_ui_FlxUITabMenu; flixel_addons_ui_FlxUITabMenu.__name__ = "flixel.addons.ui.FlxUITabMenu"; flixel_addons_ui_FlxUITabMenu.__interfaces__ = [flixel_addons_ui_interfaces_IEventGetter,flixel_addons_ui_interfaces_IFlxUIClickable,flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUITabMenu.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUITabMenu.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ get_numTabs: function() { if(this._tabs != null) { return this._tabs.length; } return 0; } ,getEvent: function(name,sender,data,params) { } ,getRequest: function(name,sender,data,params) { return null; } ,skipButtonUpdate: null ,set_skipButtonUpdate: function(b) { this.skipButtonUpdate = b; var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var tab = _g1[_g]; ++_g; var tabtyped = tab; tabtyped.set_skipButtonUpdate(b); } var _g = 0; var _g1 = this._tab_groups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; var _g2 = 0; var _g3 = group.group.members; while(_g2 < _g3.length) { var sprite = _g3[_g2]; ++_g2; if(js_Boot.__implements(sprite,flixel_addons_ui_interfaces_IFlxUIClickable)) { var widget = sprite; widget.set_skipButtonUpdate(b); } } } return b; } ,get_width: function() { return this._back.get_width(); } ,get_height: function() { var fbt = this.getFirstTab(); if(fbt != null) { return this._back.y + this._back.get_height() - fbt.y; } return this._back.get_height(); } ,resize: function(W,H) { var ir; if(js_Boot.__implements(this._back,flixel_addons_ui_interfaces_IResizable)) { this.distributeTabs(W); ir = this._back; var fbt = this.getFirstTab(); if(fbt != null) { ir.resize(W,H - fbt.get_height()); } else { ir.resize(W,H); } } else { this.distributeTabs(); } } ,get_selected_tab: function() { return this._selected_tab; } ,set_selected_tab: function(i) { this.showTabInt(i); return this._selected_tab; } ,get_selected_tab_id: function() { return this._selected_tab_id; } ,set_selected_tab_id: function(str) { this.showTabId(str); return this._selected_tab_id; } ,destroy: function() { flixel_addons_ui_FlxTypedUIGroup.prototype.destroy.call(this); flixel_addons_ui_U.clearArray(this._tab_groups); flixel_addons_ui_U.clearArray(this._tabs); this._back = null; this._tabs = null; this._tab_groups = null; } ,getTab: function(name,index) { if(name != null) { var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var tab = _g1[_g]; ++_g; if(tab.name == name) { return tab; } } } if(index != null) { if(index < this._tabs.length) { return this._tabs[index]; } } return null; } ,getTabGroup: function(name,index) { if(name != null) { var _g = 0; var _g1 = this._tab_groups; while(_g < _g1.length) { var tabGroup = _g1[_g]; ++_g; if(tabGroup.name == name) { return tabGroup; } } } if(index != null) { if(index < this._tab_groups.length) { return this._tab_groups[index]; } } return null; } ,getBack: function() { return this._back; } ,replaceBack: function(newBack) { var i = this.group.members.indexOf(this._back); if(i != -1) { var oldBack = this._back; if(js_Boot.__implements(newBack,flixel_addons_ui_interfaces_IResizable)) { var ir = newBack; ir.resize(oldBack.get_width(),oldBack.get_height()); } this.group.members[i] = newBack; newBack.set_x(oldBack.x); newBack.set_y(oldBack.y); oldBack.destroy(); } } ,addGroup: function(g) { if(g == this) { return; } if(!this.contains(g)) { g.set_y(this._back.y - this.y); this.add(g); this._tab_groups.push(g); } this._showOnlyGroup(""); if(this._tab_groups.length == 1) { this.set_selected_tab(0); } if(this._selected_tab != -1) { this.set_selected_tab(this._selected_tab); } } ,_onTabEvent: function(name) { this.showTabId(name); var tab = this.getTab(name); var params = tab != null ? tab.params : null; if(this.broadcastToFlxUI) { flixel_addons_ui_FlxUI.event("tab_menu_click",this,name,params); } } ,stackTabs: function() { var _backx = this._back.x; var _backy = this._back.y; this.group.remove(this._back,true); var tab = null; var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var t = _g1[_g]; ++_g; tab = t; if(tab.toggled) { this.group.remove(tab,true); } } this.group.add(this._back); var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var t = _g1[_g]; ++_g; tab = t; if(tab.toggled) { this.group.add(tab); } } var _g = 0; var _g1 = this._tab_groups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; var tempX = group.x; var tempY = group.y; this.remove(group,true); this.add(group); group.set_x(tempX); group.set_y(tempY); } this._back.set_x(_backx); this._back.set_y(_backy); } ,showTabId: function(name) { this._selected_tab = -1; this._selected_tab_id = ""; var i = 0; var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var tab = _g1[_g]; ++_g; tab.set_toggled(false); tab.forceStateHandler("out_button"); if(tab.name == name) { tab.set_toggled(true); this._selected_tab_id = name; this._selected_tab = i; } ++i; } this._showOnlyGroup(name); this.stackTabs(); } ,_back: null ,_tabs: null ,_tab_groups: null ,_stretch_tabs: null ,_tab_spacing: null ,_tab_stacking: null ,_tab_offset: null ,_selected_tab_id: null ,_selected_tab: null ,sortTabs: function(a,b) { if(a.name < b.name) { return -1; } else if(a.name > b.name) { return 1; } return -1; } ,showTabInt: function(i) { if(i >= 0 && this._tabs != null && this._tabs.length > i) { var _tab = this._tabs[i]; var name = _tab.name; this.showTabId(name); } else { this.showTabId(""); } } ,_showOnlyGroup: function(name) { var _g = 0; var _g1 = this._tab_groups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(group.name == name) { group.set_visible(group.set_active(true)); } else { group.set_visible(group.set_active(false)); } } } ,getFirstTab: function() { var _the_tab = null; if(this._tabs != null && this._tabs.length > 0) { _the_tab = this._tabs[0]; } return _the_tab; } ,distributeTabs: function(W) { if(W == null) { W = -1; } var xx = 0; var tab_width = 0; if(W == -1) { W = this._back.get_width(); } var diff_size = 0; if(this._stretch_tabs) { tab_width = W / this._tabs.length; var tot_size = (tab_width | 0) * this._tabs.length; if(tot_size < W) { diff_size = W - tot_size; } } this._tabs.sort($bind(this,this.sortTabs)); var i = 0; var firstHeight = 0; var tab; var _g = 0; var _g1 = this._tabs; while(_g < _g1.length) { var t = _g1[_g]; ++_g; tab = t; tab.set_x(this.x + xx); tab.set_y(this.y); if(this._tab_offset != null) { tab.set_x(tab.x + this._tab_offset.x); tab.set_y(tab.y + this._tab_offset.y); } if(this._stretch_tabs) { var theHeight = tab.get_height(); if(i != 0) { theHeight = firstHeight; tab.resize_ratio = -1; } if(diff_size > 0) { tab.resize(tab_width + 1,theHeight); xx += (tab_width | 0) + 1; --diff_size; } else { tab.resize(tab_width,theHeight); xx += tab_width | 0; } } else if(this._tab_spacing != null) { xx += tab.get_width() + this._tab_spacing; } else { xx += tab.get_width(); } if(i == 0) { firstHeight = tab.get_height(); } ++i; } if(this._tabs != null && this._tabs.length > 0 && this._tabs[0] != null) { this._back.set_y(this._tabs[0].y + this._tabs[0].get_height() - 2); if(this._tab_offset != null) { var fh = this._back; fh.set_y(fh.y - this._tab_offset.y); } } this.calcBounds(); } ,__class__: flixel_addons_ui_FlxUITabMenu ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_selected_tab_id:"set_selected_tab_id",get_selected_tab_id:"get_selected_tab_id",set_selected_tab:"set_selected_tab",get_selected_tab:"get_selected_tab",set_skipButtonUpdate:"set_skipButtonUpdate",get_numTabs:"get_numTabs"}) }); var flixel_addons_ui_FlxUIText = function(X,Y,FieldWidth,Text1,Size,EmbeddedFont) { if(EmbeddedFont == null) { EmbeddedFont = true; } if(Size == null) { Size = 8; } if(FieldWidth == null) { FieldWidth = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.minimumHeight = 1; this.broadcastToFlxUI = true; flixel_text_FlxText.call(this,X,Y,FieldWidth,Text1,Size,EmbeddedFont); }; $hxClasses["flixel.addons.ui.FlxUIText"] = flixel_addons_ui_FlxUIText; flixel_addons_ui_FlxUIText.__name__ = "flixel.addons.ui.FlxUIText"; flixel_addons_ui_FlxUIText.__interfaces__ = [flixel_addons_ui_interfaces_IHasParams,flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUIText.__super__ = flixel_text_FlxText; flixel_addons_ui_FlxUIText.prototype = $extend(flixel_text_FlxText.prototype,{ broadcastToFlxUI: null ,name: null ,params: null ,minimumHeight: null ,resize: function(w,h) { var sign = 1; if(h < this.minimumHeight) { h = this.minimumHeight; } if(h < this.get_height()) { sign = -1; } this.set_width(w); this.set_height(h); this.textField.set_width(this.get_width()); var old_size = this._defaultFormat.size | 0; var diff = this.get_height() - this.graphic.bitmap.height; var failsafe = 0; var numLines = this.textField.get_numLines(); while(diff * sign > 0 && failsafe < 999) { ++failsafe; this.set_size((this._defaultFormat.size | 0) + sign); if(sign > 0 && this.textField.get_numLines() > numLines) { this.set_size((this._defaultFormat.size | 0) - sign); break; } this._regen = true; this.calcFrame(true); diff = h - this.graphic.bitmap.height; diff = h - this.graphic.bitmap.height; } if(failsafe >= 999) { flixel_FlxG.log.advanced("Loop failsafe tripped while resizing FlxUIText to height(" + h + ")",flixel_system_debug_log_LogStyle.WARNING,true); this.set_size(old_size); } this.set_width(w); this.set_height(h); this._regen = true; this.calcFrame(true); } ,set_minimumHeight: function(H) { if(H < 1) { H = 1; } this.minimumHeight = H; return this.minimumHeight; } ,set_params: function(p) { this.params = p; return this.params; } ,clone: function() { var newText = new flixel_addons_ui_FlxUIText(); newText.set_width(this.get_width()); newText.set_height(this.get_height()); var theFont = this._font; theFont = flixel_addons_ui_FontFixer.fix(this._font); newText.setFormat(theFont,this._defaultFormat.size | 0,this.color); if(this._defaultFormat != null && this._defaultFormat.align != null) { newText.set_alignment(flixel_text_FlxTextAlign.fromOpenFL(this._defaultFormat.align)); } var Color = this.borderColor; var Size = this.borderSize; var Quality = this.borderQuality; if(Quality == null) { Quality = 1; } if(Size == null) { Size = 1; } if(Color == null) { Color = 0; } newText.set_borderStyle(this.borderStyle); newText.set_borderColor(Color); newText.set_borderSize(Size); newText.set_borderQuality(Quality); newText.set_text(this.text); return newText; } ,__class__: flixel_addons_ui_FlxUIText ,__properties__: $extend(flixel_text_FlxText.prototype.__properties__,{set_minimumHeight:"set_minimumHeight",set_params:"set_params"}) }); var flixel_addons_ui_FlxUITileTest = function(X,Y,TileWidth,TileHeight,tilesWide,tilesTall,color1,color2,FloorToEven) { if(FloorToEven == null) { FloorToEven = false; } if(color2 == null) { color2 = 12895428; } if(color1 == null) { color1 = 8421504; } this.baseTileSize = -1; this.floorToEven = false; this._color2 = 0; this._color1 = 0; this._tilesTall = 2; this._tilesWide = 2; flixel_addons_ui_FlxUISprite.call(this,X,Y); this.tileWidth = TileWidth; this.tileHeight = TileHeight; this._tilesWide = tilesWide; this._tilesTall = tilesTall; this._color1 = color1; this._color2 = color2; this.floorToEven = FloorToEven; this.makeTiles(this.tileWidth,this.tileHeight,this._tilesWide,this._tilesTall,this._color1,this._color2); }; $hxClasses["flixel.addons.ui.FlxUITileTest"] = flixel_addons_ui_FlxUITileTest; flixel_addons_ui_FlxUITileTest.__name__ = "flixel.addons.ui.FlxUITileTest"; flixel_addons_ui_FlxUITileTest.__interfaces__ = [flixel_addons_ui_interfaces_IFlxUIWidget,flixel_addons_ui_interfaces_IResizable]; flixel_addons_ui_FlxUITileTest.__super__ = flixel_addons_ui_FlxUISprite; flixel_addons_ui_FlxUITileTest.prototype = $extend(flixel_addons_ui_FlxUISprite.prototype,{ tileWidth: null ,tileHeight: null ,get_widthInTiles: function() { return this._tilesWide; } ,get_heightInTiles: function() { return this._tilesTall; } ,_tilesWide: null ,_tilesTall: null ,_color1: null ,_color2: null ,floorToEven: null ,baseTileSize: null ,makeTiles: function(tileWidth,tileHeight,tilesWide,tilesTall,color1,color2) { if(color2 == null) { color2 = -3881788; } if(color1 == null) { color1 = -8355712; } var size = this.constrain(tileWidth * this._tilesWide,tileHeight * this._tilesTall); tileWidth = size.x | 0; tileHeight = size.y | 0; this.makeGraphic(tilesWide,tilesTall,color1); var canvas = this.get_pixels(); var j = 0; var _g = 0; var _g1 = tilesWide; while(_g < _g1) { var ix = _g++; var _g2 = 0; var _g3 = tilesTall; while(_g2 < _g3) { var iy = _g2++; if(j % 2 == 0) { canvas.setPixel(ix,iy,color2); } ++j; } if(tilesWide % 2 != 0) { ++j; } } this.set_pixels(canvas); var this1 = this.scale; var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.updateHitbox(); } ,constrain: function(w,h) { var tileWidth = w / this._tilesWide | 0; var tileHeight = h / this._tilesTall | 0; if(tileWidth < tileHeight) { tileHeight = tileWidth; } else if(tileHeight < tileWidth) { tileWidth = tileHeight; } if(this.floorToEven) { if(tileWidth % 2 == 1) { --tileWidth; tileHeight = tileWidth; } } if(this.baseTileSize > 0) { tileWidth = (tileWidth / this.baseTileSize | 0) * this.baseTileSize; tileHeight = tileWidth; } var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,resize: function(w,h) { this.makeTiles(this.tileWidth,this.tileHeight,this._tilesWide,this._tilesTall,this._color1,this._color2); } ,__class__: flixel_addons_ui_FlxUITileTest ,__properties__: $extend(flixel_addons_ui_FlxUISprite.prototype.__properties__,{get_heightInTiles:"get_heightInTiles",get_widthInTiles:"get_widthInTiles"}) }); var flixel_addons_ui_FlxUITooltip = function(Width,Height,Anchor_,Style) { flixel_addons_ui_FlxTypedUIGroup.call(this,0,0); if(Anchor_ == null) { Anchor_ = new flixel_addons_ui_Anchor(0,0,"left","top","right","top"); } Style = flixel_addons_ui_FlxUITooltip.styleFix(Style); this.refresh(Width,Height,"","",Anchor_,Style); this.setScrollFactor(0,0); }; $hxClasses["flixel.addons.ui.FlxUITooltip"] = flixel_addons_ui_FlxUITooltip; flixel_addons_ui_FlxUITooltip.__name__ = "flixel.addons.ui.FlxUITooltip"; flixel_addons_ui_FlxUITooltip.styleFix = function(Style,DefaultStyle) { if(Style == null) { Style = { titleFormat : null, bodyFormat : null, titleBorder : null, bodyBorder : null, titleOffset : null, bodyOffset : null, background : null, borderSize : -1, borderColor : null, arrow : null, titleWidth : -1, bodyWidth : -1, autoSizeHorizontal : null, autoSizeVertical : null, leftPadding : -1, rightPadding : -1, topPadding : -1, bottomPadding : -1}; } if(DefaultStyle != null) { if(Style.titleFormat == null) { Style.titleFormat = DefaultStyle.titleFormat; } if(Style.bodyFormat == null) { Style.bodyFormat = DefaultStyle.bodyFormat; } if(Style.titleBorder == null) { Style.titleBorder = DefaultStyle.titleBorder; } if(Style.bodyBorder == null) { Style.bodyBorder = DefaultStyle.bodyBorder; } if(Style.titleOffset == null) { Style.titleOffset = DefaultStyle.titleOffset; } if(Style.bodyOffset == null) { Style.bodyOffset = DefaultStyle.bodyOffset; } if(Style.background == null) { Style.background = DefaultStyle.background; } if(Style.borderColor == null) { Style.borderColor = DefaultStyle.borderColor; } if(Style.arrow == null) { Style.arrow = DefaultStyle.arrow; } if(Style.borderSize == null || Style.borderSize < 0) { Style.borderSize = DefaultStyle.borderSize; } if(Style.titleWidth == null || Style.titleWidth < 0) { Style.titleWidth = DefaultStyle.titleWidth; } if(Style.bodyWidth == null || Style.bodyWidth < 0) { Style.bodyWidth = DefaultStyle.bodyWidth; } if(Style.autoSizeHorizontal == null) { Style.autoSizeHorizontal = DefaultStyle.autoSizeHorizontal; } if(Style.autoSizeVertical == null) { Style.autoSizeVertical = DefaultStyle.autoSizeVertical; } if(Style.leftPadding == null || Style.leftPadding < 0) { Style.leftPadding = DefaultStyle.leftPadding; } if(Style.rightPadding == null || Style.rightPadding < 0) { Style.rightPadding = DefaultStyle.rightPadding; } if(Style.topPadding == null || Style.topPadding < 0) { Style.topPadding = DefaultStyle.topPadding; } if(Style.leftPadding == null || Style.bottomPadding < 0) { Style.bottomPadding = DefaultStyle.bottomPadding; } } if(DefaultStyle != null) { if(Style.titleFormat != null) { flixel_addons_ui_FlxUITooltip.fillFontDefNulls(Style.titleFormat,DefaultStyle.titleFormat); if(Style.titleFormat.format != null && DefaultStyle.titleFormat.format != null) { flixel_addons_ui_FlxUITooltip.fillFormatNulls(Style.titleFormat.format,DefaultStyle.titleFormat.format); } } if(Style.bodyFormat != null) { flixel_addons_ui_FlxUITooltip.fillFontDefNulls(Style.bodyFormat,DefaultStyle.bodyFormat); if(Style.bodyFormat.format != null && DefaultStyle.bodyFormat.format != null) { flixel_addons_ui_FlxUITooltip.fillFormatNulls(Style.bodyFormat.format,DefaultStyle.bodyFormat.format); } } } if(Style.titleFormat == null) { Style.titleFormat = new flixel_addons_ui_FontDef(null,null,null,new openfl_text_TextFormat(null,8,-16777216),null); } if(Style.bodyFormat == null) { Style.bodyFormat = new flixel_addons_ui_FontDef(null,null,null,new openfl_text_TextFormat(null,8,-16777216),null); } if(Style.titleBorder == null) { Style.titleBorder = new flixel_addons_ui_BorderDef(flixel_text_FlxTextBorderStyle.NONE,0,0,1); } if(Style.bodyBorder == null) { Style.bodyBorder = new flixel_addons_ui_BorderDef(flixel_text_FlxTextBorderStyle.NONE,0,0,1); } if(Style.titleOffset == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } Style.titleOffset = new flixel_math_FlxBasePoint(x,y); } if(Style.bodyOffset == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } Style.bodyOffset = new flixel_math_FlxBasePoint(x,y); } if(Style.background == null) { Style.background = 16777162; } if(Style.borderColor == null) { Style.borderColor = -16777216; } if(Style.arrow == null) { Style.arrow = "flixel/flixel-ui/img/tooltip_arrow.png"; } if(Style.borderSize == null || Style.borderSize < 0) { Style.borderSize = 1; } if(Style.titleWidth == null || Style.titleWidth < 0) { Style.titleWidth = 100; } if(Style.bodyWidth == null || Style.bodyWidth < 0) { Style.bodyWidth = 100; } if(Style.autoSizeHorizontal == null) { Style.autoSizeHorizontal = true; } if(Style.autoSizeVertical == null) { Style.autoSizeVertical = true; } if(Style.leftPadding == null || Style.leftPadding < 0) { Style.leftPadding = 0; } if(Style.rightPadding == null || Style.rightPadding < 0) { Style.rightPadding = 0; } if(Style.topPadding == null || Style.topPadding < 0) { Style.topPadding = 0; } if(Style.leftPadding == null || Style.bottomPadding < 0) { Style.bottomPadding = 0; } return Style; }; flixel_addons_ui_FlxUITooltip.cloneStyle = function(s) { var tf = s.titleFormat != null ? s.titleFormat.clone() : null; var bf = s.bodyFormat != null ? s.bodyFormat.clone() : null; var s1 = s.borderSize; var s2 = s.titleWidth; var s3 = s.bodyWidth; var s4 = s.background; var s5 = s.borderColor; var s6 = s.arrow; var this1 = s.titleOffset; var p = null; if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); var this1 = s.bodyOffset; var p1 = null; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var obj = { titleFormat : tf, bodyFormat : bf, borderSize : s1, titleWidth : s2, bodyWidth : s3, background : s4, borderColor : s5, arrow : s6, titleOffset : p, bodyOffset : p1, titleBorder : s.titleBorder.clone(), bodyBorder : s.bodyBorder.clone(), autoSizeVertical : s.autoSizeVertical, autoSizeHorizontal : s.autoSizeHorizontal, leftPadding : s.leftPadding, rightPadding : s.rightPadding, topPadding : s.topPadding, bottomPadding : s.bottomPadding}; return obj; }; flixel_addons_ui_FlxUITooltip.fillFontDefNulls = function(a,b) { if(a.get_size() == 0) { a.set_size(b.get_size()); } if(a.name == null || a.name == "") { a.name = b.name; } if(a.file == null || a.file == "") { a.file = b.file; } if(a.extension == null || a.extension == "") { a.extension = b.extension; } if(a.border == null) { a.border = b.border != null ? b.border.clone() : null; } }; flixel_addons_ui_FlxUITooltip.fillFormatNulls = function(a,b) { if(a.align == null) { a.align = b.align; } if(a.blockIndent == null) { a.blockIndent = b.blockIndent; } if(a.bold == null) { a.bold = b.bold; } if(a.bullet == null) { a.bullet = b.bullet; } if(a.color == null) { a.color = b.color; } if(a.font == null) { a.font = b.font; } if(a.indent == null) { a.indent = b.indent; } if(a.italic == null) { a.italic = b.italic; } if(a.kerning == null) { a.kerning = b.kerning; } if(a.leading == null) { a.leading = b.leading; } if(a.leftMargin == null) { a.leftMargin = b.leftMargin; } if(a.letterSpacing == null) { a.letterSpacing = b.letterSpacing; } if(a.rightMargin == null) { a.rightMargin = b.rightMargin; } if(a.size == null) { a.size = b.size; } if(a.tabStops == null) { a.tabStops = b.tabStops; } if(a.target == null) { a.target = b.target; } if(a.underline == null) { a.underline = b.underline; } if(a.url == null) { a.url = b.url; } }; flixel_addons_ui_FlxUITooltip.__super__ = flixel_addons_ui_FlxTypedUIGroup; flixel_addons_ui_FlxUITooltip.prototype = $extend(flixel_addons_ui_FlxTypedUIGroup.prototype,{ style: null ,anchor: null ,title: null ,body: null ,show: function(obj,Title,Body,AutoSizeVertical,AutoSizeHorizontal,ShowArrow) { if(ShowArrow == null) { ShowArrow = true; } if(AutoSizeHorizontal == null) { AutoSizeHorizontal = true; } if(AutoSizeVertical == null) { AutoSizeVertical = true; } if(Body == null) { Body = ""; } if(Title == null) { Title = ""; } this.set_visible(true); this.set_active(true); this.set_x(0); this.set_y(0); this._bkg.set_x(0); this._bkg.set_y(0); this._arrow.set_x(0); this._arrow.set_y(0); this._arrowBkg.set_x(0); this._arrowBkg.set_y(0); this._arrowBkg = this.makeArrowBkg(this._arrowBkg); this._arrow.set_color(this.style.background); this._arrow.set_visible(this._arrowBkg.set_visible(ShowArrow)); if(this.style.titleWidth > 0) { this._titleText.set_width(this._titleText.textField.set_width(this.style.titleWidth) | 0); } if(this.style.bodyWidth > 0) { this._bodyText.set_width(this._bodyText.textField.set_width(this.style.bodyWidth) | 0); } if(this.style.titleFormat != null) { this.style.titleFormat.apply(null,this._titleText); } if(this.style.bodyFormat != null) { this.style.bodyFormat.apply(null,this._bodyText); } if(this.style.titleBorder != null) { this.style.titleBorder.apply(this._titleText); } if(this.style.bodyBorder != null) { this.style.bodyBorder.apply(this._bodyText); } this._titleText.set_text(Title); this._bodyText.set_text(Body); this._titleText.update(0); this._bodyText.update(0); var titleHeight = this._titleText.textField.get_textHeight() + 4 | 0; if(this.style.titleOffset != null) { this._titleText.set_x(this.style.titleOffset.x | 0); this._titleText.set_y(this.style.titleOffset.y | 0); } if(this.style.bodyOffset != null) { this._bodyText.set_x(this.style.bodyOffset.x | 0); this._bodyText.set_y(this._titleText.y + titleHeight + this.style.bodyOffset.y | 0); } var W = this._bkg.get_width() | 0; var H = this._bkg.get_height() | 0; if(AutoSizeHorizontal) { var tw = this._titleText.text != "" ? this._titleText.x + this._titleText.get_width() : 0; var bw = this._bodyText.text != "" ? this._bodyText.x + this._bodyText.get_width() : 0; W = Math.max(tw,bw) | 0; } if(AutoSizeVertical) { var th = this._titleText.text != "" ? this._titleText.y + this._titleText.get_height() : 0; var bh = this._bodyText.text != "" ? this._bodyText.y + this._bodyText.get_height() : 0; H = Math.max(th,bh) | 0; H = Math.max(H,this._arrowBkg.get_height()) | 0; } if(this.style.leftPadding == null) { this.style.leftPadding = 0; } if(this.style.rightPadding == null) { this.style.rightPadding = 0; } if(this.style.topPadding == null) { this.style.topPadding = 0; } if(this.style.bottomPadding == null) { this.style.bottomPadding = 0; } W += this.style.leftPadding + this.style.rightPadding; H += this.style.topPadding + this.style.bottomPadding; W |= 0; H |= 0; this.refreshBkg(W,H,this.style); var oldOffX = this._anchorArrow.x.offset | 0; var oldOffY = this._anchorArrow.y.offset | 0; this._anchorArrow.x.offset -= this.anchor.x.offset; this._anchorArrow.y.offset += this.anchor.y.offset; this._anchorArrow.x.offset = this._anchorArrow.x.offset | 0; this._anchorArrow.y.offset = this._anchorArrow.y.offset | 0; this._anchorArrow.anchorThing(this._arrow,this._bkg); this._anchorArrow.x.offset = oldOffX; this._anchorArrow.y.offset = oldOffY; if(this._arrow.x < 0) { var xx = Math.abs(this._arrow.x) | 0; var fh = this._bkg; fh.set_x(fh.x + xx); var fh = this._titleText; fh.set_x(fh.x + xx); var fh = this._bodyText; fh.set_x(fh.x + xx); this._arrow.set_x(0); } if(this._arrow.y < 0) { var yy = Math.abs(this._arrow.y) | 0; var fh = this._bkg; fh.set_y(fh.y + yy); var fh = this._titleText; fh.set_y(fh.y + yy); var fh = this._bodyText; fh.set_y(fh.y + yy); this._arrow.set_y(0); } if(this._titleText.text != "" && this._bodyText.text == "") { var tempH = H - (this.style.topPadding + this.style.bottomPadding); var titleOnlyOffset = (tempH - titleHeight) / 2 | 0; var fh = this._titleText; fh.set_y(fh.y + titleOnlyOffset); } var fh = this._titleText; fh.set_x(fh.x + this.style.leftPadding); var fh = this._bodyText; fh.set_x(fh.x + this.style.leftPadding); var fh = this._titleText; fh.set_y(fh.y + this.style.topPadding); var fh = this._bodyText; fh.set_y(fh.y + this.style.topPadding); if(this._titleText.text == "") { this._titleText.set_x(this._bkg.x); this._titleText.set_y(this._bkg.y); this._titleText.set_width(this._bkg.get_width()); } if(this._bodyText.text == "") { this._bodyText.set_x(this._bkg.x); this._bodyText.set_y(this._bkg.y); this._bodyText.set_width(this._bkg.get_width()); } this.anchor.anchorThing(this,obj); this.set_x(this.x | 0); this.set_y(this.y | 0); this._arrowBkg.set_x(this._arrow.x - this.style.borderSize | 0); this._arrowBkg.set_y(this._arrow.y - this.style.borderSize | 0); this._titleText.set_x(this._titleText.x | 0); this._bodyText.set_x(this._bodyText.x | 0); this._bkg.set_x(this._bkg.x | 0); this._bkg.set_y(this._bkg.y | 0); this._arrowBkg.set_x(this._arrowBkg.x | 0); this._arrowBkg.set_y(this._arrowBkg.y | 0); this._arrow.set_x(this._arrow.x | 0); this._arrow.set_y(this._arrow.y | 0); } ,get_height: function() { if(this.group.length == 0) { return 0; } var minY = Infinity; var maxY = -Infinity; var _g = 0; var _g1 = this.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member == null) { continue; } if(((member) instanceof flixel_text_FlxText)) { continue; } var minMemberY = member.y; var maxMemberY = minMemberY + member.get_height(); if(maxMemberY > maxY) { maxY = maxMemberY; } if(minMemberY < minY) { minY = minMemberY; } } return maxY - minY; } ,hide: function() { this.set_visible(false); this.set_active(false); } ,set_anchor: function(a) { this.anchor = a; this._anchorArrow = this.getArrowAnchor(a,this._anchorArrow); if(this._arrowBkg != null) { this.makeArrowBkg(this._arrowBkg); } return a; } ,set_style: function(s) { this.style = s; return s; } ,set_title: function(t) { this.title = t; return t; } ,set_body: function(b) { this.body = b; return b; } ,_bkg: null ,_titleText: null ,_bodyText: null ,_arrow: null ,_arrowBkg: null ,_anchorArrow: null ,refresh: function(Width,Height,Title,Body,Anchor_,Style) { var newBkg = this._bkg == null; var newArrow = this._arrow == null; var newTitle = this._titleText == null; var newBody = this._bodyText == null; if(newBkg) { this._bkg = new flixel_FlxSprite(); } if(newArrow) { this._arrow = new flixel_FlxSprite(); } if(newTitle) { this._titleText = new flixel_addons_ui_FlxUIText(0,0,Width); if(Style.titleFormat != null) { Style.titleFormat.apply(null,this._titleText); } if(Style.titleBorder != null) { Style.titleBorder.apply(this._titleText); } } if(newBody) { this._bodyText = new flixel_addons_ui_FlxUIText(0,0,Width); if(Style.bodyFormat != null) { Style.bodyFormat.apply(null,this._bodyText); } if(Style.bodyBorder != null) { Style.bodyBorder.apply(this._bodyText); } } this._titleText.set_text(Title); this._bodyText.set_text(Body); this._arrow.set_color(Style.background); var test = flixel_FlxG.bitmap.add(Style.arrow); if(Style.arrow == null) { Style.arrow = "flixel/flixel-ui/img/tooltip_arrow.png"; flixel_FlxG.bitmap.add(Style.arrow); } this._arrow.loadGraphic(Style.arrow,true,test.height,test.height); if(newArrow) { this._arrow.animation.add("right",[0],0,false); this._arrow.animation.add("down",[1],0,false); this._arrow.animation.add("left",[2],0,false); this._arrow.animation.add("up",[3],0,false); } this.refreshBkg(Width,Height,Style); this.set_style(Style); if(newArrow && Style.borderSize > 0) { this._arrowBkg = new flixel_FlxSprite(); this.add(this._arrowBkg); } this.set_anchor(Anchor_); if(newBkg) { this.add(this._bkg); } if(newArrow) { this.add(this._arrow); } if(newTitle) { this.add(this._titleText); } if(newBody) { this.add(this._bodyText); } } ,refreshBkg: function(Width,Height,Style) { var key = this.getStyleKey(Width,Height,Style); if(flixel_FlxG.bitmap._cache.h[key] == null) { var pix = null; if(Style.borderSize > 0) { pix = new openfl_display_BitmapData(Width,Height,false,Style.borderColor); pix.fillRect(new openfl_geom_Rectangle(Style.borderSize,Style.borderSize,Width - Style.borderSize * 2,Height - Style.borderSize * 2),Style.background); } else { pix = new openfl_display_BitmapData(Width,Height,false,Style.background); } flixel_FlxG.bitmap.add(pix,true,key); } this._bkg.loadGraphic(key); } ,getStyleKey: function(W,H,Style) { var this1 = Style.background; var tmp = W + "," + H + "," + ("0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2)) + "," + Style.borderSize + ","; var this1 = Style.borderColor; return tmp + ("0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2)); } ,makeArrowBkg: function(b) { if(b == null) { b = new flixel_FlxSprite(); } var animName = this._arrow == null ? "null" : this._arrow.animation._curAnim == null ? "null" : this._arrow.animation._curAnim.name; var key = "arrowBkg:" + this.style.background + "," + this.style.borderSize + "," + this.style.borderColor + "," + animName; if(flixel_FlxG.bitmap._cache.h[key] == null) { var bs = this.style.borderSize; if(bs < 0 || bs == null) { bs = 0; } var W = this._arrow.get_width() + bs | 0; var H = this._arrow.get_height() + bs | 0; var bd = new openfl_display_BitmapData(W,H,true,0); flixel_FlxG.bitmap.add(bd,false,key); b.loadGraphic(key); var oldColor = this._arrow.color; this._arrow.set_color(this.style.borderColor); var m = new openfl_geom_Matrix(); m.identity(); b.stamp(this._arrow,0 * this.style.borderSize,0 * this.style.borderSize); b.stamp(this._arrow,this.style.borderSize,0 * this.style.borderSize); b.stamp(this._arrow,2 * this.style.borderSize,0 * this.style.borderSize); b.stamp(this._arrow,0 * this.style.borderSize,this.style.borderSize); b.stamp(this._arrow,2 * this.style.borderSize,this.style.borderSize); b.stamp(this._arrow,0 * this.style.borderSize,2 * this.style.borderSize); b.stamp(this._arrow,this.style.borderSize,2 * this.style.borderSize); b.stamp(this._arrow,2 * this.style.borderSize,2 * this.style.borderSize); this._arrow.set_color(oldColor); } b.loadGraphic(key); return b; } ,getArrowAnchor: function(a,result) { var touchHorz = a.x.side == "left" && a.x.flush == "right" || a.x.side == "right" && a.x.flush == "left"; var touchVert = a.y.side == "top" && a.y.flush == "bottom" || a.y.side == "bottom" && a.y.flush == "top"; var matchHorz = a.x.side == "left" && a.x.flush == "left" || a.x.side == "right" && a.x.flush == "right"; var matchVert = a.y.side == "top" && a.y.flush == "top" || a.y.side == "bottom" && a.y.flush == "bottom"; var touchBoth = touchHorz && touchVert; var matchBoth = matchHorz && matchVert; var off = this.style.borderSize; if(!touchBoth) { if(touchHorz) { result = a.getFlipped(true,false,result); if(result.x.flush == "left") { result.x.offset -= off; this._arrow.animation.play("right"); } if(result.x.flush == "right") { result.x.offset += off; this._arrow.animation.play("left"); } } if(touchVert) { result = a.getFlipped(false,true,result); if(result.y.flush == "top") { result.y.offset -= off; this._arrow.animation.play("down"); } if(result.y.flush == "bottom") { result.y.offset += off; this._arrow.animation.play("up"); } } } if(!matchBoth) { if(matchHorz) { if(result.x.flush == "left") { result.x.offset += off; } if(result.x.flush == "right") { result.x.offset -= off; } } if(matchVert) { if(result.y.flush == "top") { result.y.offset += off; } if(result.y.flush == "bottom") { result.y.offset -= off; } } } if(result != null) { return result; } return a; } ,__class__: flixel_addons_ui_FlxUITooltip ,__properties__: $extend(flixel_addons_ui_FlxTypedUIGroup.prototype.__properties__,{set_body:"set_body",set_title:"set_title",set_anchor:"set_anchor",set_style:"set_style"}) }); var flixel_addons_ui_FlxUITooltipManager = function(State,SubState) { this.current = -1; this._init = false; this.delay = 0.1; this.showOnClick = false; this.defaultStyle = null; this.fixedPosition = null; this.defaultAnchor = null; this.autoFlipAnchor = true; if(State != null) { this.state = State; } else if(SubState != null) { this.subState = SubState; } this.list = []; this.tooltip = new flixel_addons_ui_FlxUITooltip(100,50); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this.lastPosition = new flixel_math_FlxBasePoint(x,y); this.defaultAnchor = this.tooltip.anchor.clone(); this.defaultStyle = flixel_addons_ui_FlxUITooltip.cloneStyle(this.tooltip.style); }; $hxClasses["flixel.addons.ui.FlxUITooltipManager"] = flixel_addons_ui_FlxUITooltipManager; flixel_addons_ui_FlxUITooltipManager.__name__ = "flixel.addons.ui.FlxUITooltipManager"; flixel_addons_ui_FlxUITooltipManager.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_ui_FlxUITooltipManager.prototype = { autoFlipAnchor: null ,defaultAnchor: null ,fixedPosition: null ,defaultStyle: null ,showOnClick: null ,delay: null ,showTooltipArrow: null ,cameras: null ,init: function() { var ui = this.state != null ? this.state._ui : this.subState != null ? this.subState._ui : null; if(ui == null) { return; } if(ui != null && ui.getDefinition("default:tooltip") != null) { var tt = ui._loadTooltipData(null); this.defaultStyle = flixel_addons_ui_FlxUITooltip.cloneStyle(tt.style); this.tooltip.set_style(this.defaultStyle); } } ,destroy: function() { flixel_util_FlxDestroyUtil.destroyArray(this.list); this.list = null; this.tooltip = null; this.lastPosition = null; this.state = null; this.subState = null; this.defaultAnchor = null; this.defaultStyle = null; } ,clear: function() { while(this.list.length > 0) { var entry = this.list.pop(); if(entry != null) { entry.destroy(); } } } ,hideCurrent: function() { if(this.current > 0) { this.hide(this.current); } } ,isVisible: function() { return this.current > 0; } ,doesCurrentTooltipBelongTo: function(thing,checkChildren) { if(checkChildren == null) { checkChildren = true; } if(((thing) instanceof flixel_addons_ui_FlxTypedUIGroup)) { var i = this.findObj(thing); if(i != -1) { return i == this.current; } if(checkChildren) { var fuig = thing; var _g = 0; var _g1 = fuig.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(this.doesCurrentTooltipBelongTo(member)) { return true; } } } } else if(((thing) instanceof flixel_addons_ui_FlxUIButton)) { var i = this.findBtn(thing); if(i == -1) { return false; } return i == this.current; } else if(((thing) instanceof flixel_FlxObject)) { var i = this.findObj(thing); if(i == -1) { return false; } return i == this.current; } return false; } ,stickyTooltipFor: function(thing,sticky) { if(sticky == null) { sticky = true; } var i = this.findThing(thing); if(i != -1) { this.list[i].sticky = sticky; } } ,showTooltipFor: function(thing,value) { if(value == null) { value = true; } var i = this.findThing(thing); if(i != -1) { this.current = -1; if(value) { this.show(i); } else { this.hide(i); } } } ,enableTooltipFor: function(thing,enabled) { var i = this.findThing(thing); if(i >= 0 && i < this.list.length) { var entry = this.list[i]; entry.enabled = enabled; return true; } return false; } ,add: function(thing,data) { if(this._init) { data.style = flixel_addons_ui_FlxUITooltip.styleFix(data.style,this.defaultStyle); } var btn = null; var i = -1; if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IFlxUIButton)) { btn = thing; i = this.findBtn(btn); if(i == -1) { this.list.push(new flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry(btn,data)); } else { this.list[i].data = data; this.list[i].count = 0; } } else { i = this.findObj(thing); if(i == -1) { var b = new flixel_addons_ui_FlxUIButton(0,0,"",null,false,true); b.resize(thing.get_width(),thing.get_height()); btn = b; btn.set_x(thing.x); btn.set_y(thing.y); btn.set_width(thing.get_width()); btn.set_height(thing.get_height()); var this1 = btn.scrollFactor; var x = thing.scrollFactor.x; var y = thing.scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.state != null) { this.state.add(btn); } else if(this.subState != null) { this.subState.add(btn); } this.list.push(new flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry(btn,data,thing)); } else { this.list[i].data = data; this.list[i].count = 0; this.list[i].btn.set_x(thing.x); this.list[i].btn.set_y(thing.y); this.list[i].btn.set_width(thing.get_width()); this.list[i].btn.set_height(thing.get_height()); var this1 = this.list[i].btn.scrollFactor; var x = thing.scrollFactor.x; var y = thing.scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } } ,remove: function(thing) { var btn = null; var i = -1; if(js_Boot.__implements(thing,flixel_addons_ui_interfaces_IFlxUIButton)) { btn = thing; i = this.findBtn(btn); } else { i = this.findObj(thing); } if(i != -1) { if(this.current == i) { this.hide(this.current); } var entry = this.list[i]; this.list.splice(i,1); entry.destroy(); } } ,update: function(elapsed) { var _g = 0; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; var btn = this.list[i].btn; var obj = this.list[i].obj; if(this.list[i].enabled == false) { if(this.current == i) { this.hide(i); } this.list[i].count = 0; continue; } if(obj != null) { btn.set_x(obj.x); btn.set_y(obj.y); btn.set_width(obj.get_width()); btn.set_height(obj.get_height()); btn.set_visible(obj.visible); } if(this.list[i].sticky == false && (false == btn.visible || btn.get_justMousedOut() || btn.get_mouseIsOut())) { this.list[i].count = 0; this.hide(i); } else if(btn.get_justMousedOver() || btn.get_mouseIsOver()) { if(btn.get_mouseIsOver()) { this.list[i].count += elapsed; } } if(this.list[i].count > this.delay || this.list[i].data.delay >= 0 && this.list[i].count > this.list[i].data.delay) { if(this.current != i) { this.show(i); } else if(this.list[i].data.moving) { this.show(i); } } } } ,_init: null ,list: null ,tooltip: null ,current: null ,lastPosition: null ,state: null ,subState: null ,hide: function(i) { if(this.current == i) { this.tooltip.hide(); if(this.state != null) { this.state.remove(this.tooltip,true); } if(this.subState != null) { this.subState.remove(this.tooltip,true); } this.current = -1; } } ,findThing: function(thing) { if(thing == null) { return -1; } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; if(entry.obj == thing || js_Boot.__implements(thing,flixel_addons_ui_interfaces_IFlxUIButton) && js_Boot.__cast(thing , flixel_addons_ui_interfaces_IFlxUIButton) == entry.btn) { return this.list.indexOf(entry); } } return -1; } ,findBtn: function(btn) { if(btn == null) { return -1; } var _g = 0; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; if(this.list[i] != null && this.list[i].btn == btn) { return i; } } return -1; } ,findObj: function(obj) { if(obj == null) { return -1; } var _g = 0; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; if(this.list[i] != null && this.list[i].obj == obj) { return i; } } return -1; } ,set_fixedPosition: function(value) { this.fixedPosition = value; if(this.tooltip != null && this.tooltip.visible) { this.show(this.current); } return this.fixedPosition; } ,set_showTooltipArrow: function(b) { this.showTooltipArrow = b; if(this.tooltip != null && this.tooltip.visible) { this.tooltip._arrow.set_visible(this.tooltip._arrowBkg.set_visible(b)); } return this.showTooltipArrow; } ,show: function(i) { if(i < 0 || i >= this.list.length) { return; } var btn = this.list[i].btn; if(btn.visible == false || this.list[i].obj != null && this.list[i].obj.visible == false) { return; } if(this.current == i) { var deltaX = btn.x - this.lastPosition.x; var deltaY = btn.y - this.lastPosition.y; this.lastPosition.set_x(btn.x); this.lastPosition.set_y(btn.y); var fh = this.tooltip; fh.set_x(fh.x + deltaX); var fh = this.tooltip; fh.set_y(fh.y + deltaY); return; } this.current = i; var data = this.list[i].data; if(data.init != true) { data.style = flixel_addons_ui_FlxUITooltip.styleFix(data.style,this.defaultStyle); data.init = true; } var autoSizeVertical = true; var autoSizeHorizontal = true; if(data.style != null) { this.tooltip.set_style(data.style); autoSizeVertical = data.style.autoSizeVertical; autoSizeHorizontal = data.style.autoSizeHorizontal; } if(data.anchor != null) { this.tooltip.set_anchor(data.anchor); } else if(this.defaultAnchor != null) { this.tooltip.set_anchor(this.defaultAnchor); } if(this.state != null) { this.state.add(this.tooltip); } if(this.subState != null) { this.subState.add(this.tooltip); } this.tooltip.show(btn,data.title,data.body,autoSizeVertical,autoSizeHorizontal); if(this.fixedPosition != null) { this.fixedPosition.anchor.anchorThing(this.tooltip,this.fixedPosition.object); } if(this.autoFlipAnchor) { if(this.checkAutoFlip(this.tooltip,this.fixedPosition != null ? this.fixedPosition.anchor : null)) { if(this.fixedPosition != null) { this.fixedPosition.anchor.anchorThing(this.tooltip,this.fixedPosition.object); } else { this.tooltip.show(btn,data.title,data.body,autoSizeVertical,autoSizeHorizontal,this.showTooltipArrow); } } } var this1 = this.lastPosition; var x = btn.x; var y = btn.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.state != null) { this.state.onShowTooltip(this.tooltip); } else if(this.subState != null) { this.subState.onShowTooltip(this.tooltip); } } ,checkAutoFlip: function(tooltip,anchor) { var flipX = tooltip.x < 0 || tooltip.x + tooltip.get_width() > flixel_FlxG.width; var flipY = tooltip.y < 0 || tooltip.y + tooltip.get_height() > flixel_FlxG.height; if(flipX || flipY) { if(anchor == null) { anchor = tooltip.anchor; } anchor.getFlipped(flipX,flipY,anchor); return true; } return false; } ,set_cameras: function(value) { this.tooltip.set_cameras(value); return this.cameras = value; } ,__class__: flixel_addons_ui_FlxUITooltipManager ,__properties__: {set_cameras:"set_cameras",set_showTooltipArrow:"set_showTooltipArrow",set_fixedPosition:"set_fixedPosition"} }; var flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry = function(Btn,Data,Obj) { this.sticky = false; this.btn = Btn; this.data = Data; this.obj = Obj; this.count = 0; this.enabled = true; if(this.data != null) { if(this.data.delay == null) { this.data.delay = -1; } if(this.data.moving == null) { this.data.moving = false; } } }; $hxClasses["flixel.addons.ui._FlxUITooltipManager.FlxUITooltipEntry"] = flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry; flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry.__name__ = "flixel.addons.ui._FlxUITooltipManager.FlxUITooltipEntry"; flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry.prototype = { obj: null ,btn: null ,count: null ,data: null ,enabled: null ,sticky: null ,destroy: function() { this.count = 0; this.obj = null; this.btn = null; this.data.anchor = null; this.data.style = null; this.data = null; } ,__class__: flixel_addons_ui__$FlxUITooltipManager_FlxUITooltipEntry }; var flixel_addons_ui_FontDef = function(Name,Extension,File1,Format,Border) { if(File1 == null) { File1 = ""; } if(Extension == null) { Extension = ".ttf"; } this._size = 0; this.name = Name; this.extension = Extension; this.file = File1; this.format = Format; if(this.format == null) { this.format = new openfl_text_TextFormat(); } this.border = Border; if(this.border == null) { this.border = new flixel_addons_ui_BorderDef(flixel_text_FlxTextBorderStyle.NONE,0); } }; $hxClasses["flixel.addons.ui.FontDef"] = flixel_addons_ui_FontDef; flixel_addons_ui_FontDef.__name__ = "flixel.addons.ui.FontDef"; flixel_addons_ui_FontDef.copyFromTextField = function(t) { var dtf = t.get_defaultTextFormat(); var fd = new flixel_addons_ui_FontDef(""); fd.fromStr(dtf.font); fd.format.font = dtf.font; fd.format.size = dtf.size; fd.format.color = dtf.color; fd.format.bold = dtf.bold; fd.format.italic = dtf.italic; fd.format.underline = dtf.underline; fd.format.url = dtf.url; fd.format.letterSpacing = dtf.letterSpacing; fd.format.leading = dtf.leading; fd.format.target = dtf.target; fd.format.align = dtf.align; return fd; }; flixel_addons_ui_FontDef.copyFromFlxText = function(t) { var fd = flixel_addons_ui_FontDef.copyFromTextField(t.textField); fd.fromStr(t._font); fd.border.style = t.borderStyle; fd.border.color = t.borderColor; fd.border.quality = t.borderQuality; fd.border.size = t.borderSize; return fd; }; flixel_addons_ui_FontDef.fromXML = function(data) { var fontFace = flixel_addons_ui_U.xml_str(data,"font"); var fontStyle = flixel_addons_ui_U.xml_str(data,"style"); var fontFile = null; if(fontFace != "") { fontFile = flixel_addons_ui_FlxUI.font(fontFace,fontStyle); } var fontStyle = flixel_addons_ui_U.xml_str(data,"style"); var fontSize = flixel_addons_ui_FlxUI.fontSize(fontFile,flixel_addons_ui_U.xml_i(data,"size",8)); var fontColor = flixel_addons_ui_U.xml_color(data,"color",true,-1); var fontAlign = flixel_addons_ui_U.xml_str(data,"align"); var align; switch(fontAlign.toLowerCase()) { case "center": align = 0; break; case "justify": align = 2; break; case "left": align = 3; break; case "right": align = 4; break; default: align = 3; } var fd = new flixel_addons_ui_FontDef(flixel_addons_ui_U.xml_str(data,"font"),".ttf",fontFile); fd.format.color = fontColor; fd.format.size = fontSize; fd.format.align = align; fd.set_size(fontSize); fd.setFontStyle(fontStyle); fd.border = flixel_addons_ui_BorderDef.fromXML(data); return fd; }; flixel_addons_ui_FontDef.prototype = { name: null ,extension: null ,file: null ,format: null ,border: null ,get_size: function() { if(this.format != null) { this._size = this.format.size | 0; } return this._size; } ,set_size: function(i) { if(this.format != null) { this.format.size = i; } this._size = i; return this._size; } ,clone: function() { var newBorder = this.border == null ? null : this.border.clone(); var newFormat = this.format == null ? null : new openfl_text_TextFormat(this.format.font,this.format.size,this.format.color,this.format.bold,this.format.italic,this.format.underline,this.format.url,this.format.target,this.format.align,this.format.leftMargin,this.format.rightMargin,this.format.indent,this.format.leading); if(this.format != null) { newFormat.letterSpacing = this.format.letterSpacing; } var newThis = new flixel_addons_ui_FontDef(this.name,this.extension,this.file,newFormat,newBorder); newThis.set_size(this.get_size()); return newThis; } ,applyTxt: function(textField) { textField.setTextFormat(this.format); return textField; } ,applyFlx: function(flxText) { var flxTxtAlign = null; if(this.format.align != null) { switch(this.format.align) { case 0: flxTxtAlign = "center"; break; case 2: flxTxtAlign = "justify"; break; case 3: flxTxtAlign = "left"; break; case 4: flxTxtAlign = "right"; break; default: flxTxtAlign = "left"; } } var font = this.file == "" || this.file == null ? null : this.file; flxText.setFormat(font,this.format.size | 0,this.format.color,flxTxtAlign,this.border.style,this.border.color); flxText.textField.get_defaultTextFormat().leading = this.format.leading; flxText.textField.get_defaultTextFormat().letterSpacing = this.format.letterSpacing; return flxText; } ,apply: function(textField,flxText) { if(textField != null) { textField.setTextFormat(this.format); } if(flxText != null) { this.applyFlx(flxText); } } ,fromStr: function(str,recursion) { if(recursion == null) { recursion = 0; } if(recursion > 3) { return; } str = flixel_addons_ui_FontFixer.fix(str); var style = this.getFontStyle(str); this.setFontStyle(style); var extension = ""; var _g = 0; var _g1 = flixel_addons_ui_FontDef.EXTENSIONS; while(_g < _g1.length) { var ext = _g1[_g]; ++_g; if(str.indexOf(ext) != -1) { if(openfl_utils_Assets.exists(str + extension,"FONT")) { this.name = StringTools.replace(str,extension,""); this.file = str; extension = ext; break; } } } if(extension == "") { var _g = 0; var _g1 = flixel_addons_ui_FontDef.EXTENSIONS; while(_g < _g1.length) { var ext = _g1[_g]; ++_g; if(openfl_utils_Assets.exists(str + ext,"FONT")) { extension = ext; this.name = str; this.file = str + extension; extension = ext; break; } } } else { str = this.stripFontExtensions(str); var fontStyle = this.getFontStyle(str); if(fontStyle != "") { str = HxOverrides.substr(str,str.length - 1,1); this.fromStr(str,recursion + 1); return; } else { this.fromStr(str,recursion + 1); return; } } this.setFontStyle(style); } ,_size: null ,stripFontExtensions: function(str) { if(str == null) { return str; } var _g = 0; var _g1 = flixel_addons_ui_FontDef.EXTENSIONS; while(_g < _g1.length) { var ext = _g1[_g]; ++_g; if(str != null && str.indexOf(ext) != -1) { str = StringTools.replace(str,ext,""); } } return str; } ,getFontExtension: function(str) { if(str == null) { return ""; } var _g = 0; var _g1 = flixel_addons_ui_FontDef.EXTENSIONS; while(_g < _g1.length) { var ext = _g1[_g]; ++_g; if(str.indexOf(ext) != -1) { return ext; } } return str; } ,fixFontName: function() { var fontStyle = this.getFontStyle(this.file); var extension = this.getFontExtension(this.file); var fontbase = this.stripFontExtensions(this.file); if(fontStyle != "") { fontbase = HxOverrides.substr(fontbase,0,fontbase.length - 1); } var styleStr = ""; if(this.format.bold && this.format.italic) { styleStr = "z"; } else if(this.format.bold) { styleStr = "b"; } else if(this.format.italic) { styleStr = "i"; } this.file = fontbase + styleStr + extension; } ,getFontStyle: function(str) { if(str == null) { return ""; } str = this.stripFontExtensions(str); var lastChar = HxOverrides.substr(str,str.length - 1,1); if(lastChar != "" && lastChar != null) { lastChar = lastChar.toLowerCase(); switch(lastChar) { case "b": return "b"; case "i": return "i"; case "z": return "z"; default: return ""; } } return ""; } ,setFontStyle: function(str) { str = str.toLowerCase(); switch(str) { case "b":case "bold": this.format.bold = true; this.format.italic = false; break; case "all":case "bi":case "bold-italic":case "bolditalic":case "both":case "ib":case "italicbold":case "z": this.format.bold = true; this.format.italic = true; break; case "i":case "italic": this.format.bold = false; this.format.italic = true; break; default: this.format.bold = false; this.format.italic = false; } this.fixFontName(); } ,toString: function() { return "{name:" + this.name + ",size:" + this.get_size() + ",file:" + this.file + ",extension:" + this.extension + ",format:" + Std.string(this.format) + ",border:" + Std.string(this.border) + "}"; } ,__class__: flixel_addons_ui_FontDef ,__properties__: {set_size:"set_size",get_size:"get_size"} }; var flixel_addons_ui_FontFixer = function() { }; $hxClasses["flixel.addons.ui.FontFixer"] = flixel_addons_ui_FontFixer; flixel_addons_ui_FontFixer.__name__ = "flixel.addons.ui.FontFixer"; flixel_addons_ui_FontFixer.name2File = null; flixel_addons_ui_FontFixer.init = function() { if(flixel_addons_ui_FontFixer.name2File == null) { flixel_addons_ui_FontFixer.name2File = new haxe_ds_StringMap(); } }; flixel_addons_ui_FontFixer.fix = function(font) { flixel_addons_ui_FontFixer.init(); if(font.indexOf(".ttf") == -1) { if(Object.prototype.hasOwnProperty.call(flixel_addons_ui_FontFixer.name2File.h,font)) { font = flixel_addons_ui_FontFixer.name2File.h[font]; } } return font; }; flixel_addons_ui_FontFixer.add = function(file,name) { if(name == null) { name = ""; } flixel_addons_ui_FontFixer.init(); if(name != "" && Object.prototype.hasOwnProperty.call(flixel_addons_ui_FontFixer.name2File.h,name)) { return flixel_addons_ui_FontFixer.name2File.h[name]; } if(!openfl_utils_Assets.exists(file,"FONT")) { return file; } var font = openfl_utils_Assets.getFont(file); if(font == null) { return file; } if(name == "") { name = font.name; } flixel_addons_ui_FontFixer.name2File.h[name] = file; return flixel_addons_ui_FontFixer.fix(file); }; var flixel_addons_ui_StrNameLabel = function(Name,Label) { if(Label == null) { Label = ""; } if(Name == null) { Name = ""; } this.name = Name; this.label = Label; }; $hxClasses["flixel.addons.ui.StrNameLabel"] = flixel_addons_ui_StrNameLabel; flixel_addons_ui_StrNameLabel.__name__ = "flixel.addons.ui.StrNameLabel"; flixel_addons_ui_StrNameLabel.sortByLabel = function(a,b) { if(a.label < b.label) { return -1; } if(a.label > b.label) { return 1; } return 0; }; flixel_addons_ui_StrNameLabel.sortByName = function(a,b) { if(a.name < b.name) { return -1; } if(a.name > b.name) { return 1; } return 0; }; flixel_addons_ui_StrNameLabel.prototype = { name: null ,label: null ,copy: function() { return new flixel_addons_ui_StrNameLabel(this.name,this.label); } ,toString: function() { var value = this.name; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "name"; _this.value = value; var value = this.label; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "label"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,__class__: flixel_addons_ui_StrNameLabel }; var flixel_addons_ui_SwatchData = function(Name,Colors) { if(Colors == null) { Colors = [-1,-7829368,-12303292,-16777216]; } this.name = Name; this.colors = Colors; }; $hxClasses["flixel.addons.ui.SwatchData"] = flixel_addons_ui_SwatchData; flixel_addons_ui_SwatchData.__name__ = "flixel.addons.ui.SwatchData"; flixel_addons_ui_SwatchData.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_ui_SwatchData.prototype = { name: null ,colors: null ,setColor: function(i,Value) { if(this.colors == null) { this.colors = []; } this.colors[i] = Value; return Value; } ,getColor: function(i) { if(this.colors.length >= i) { return this.colors[i]; } return -16777216; } ,get_hilight: function() { return this.getColor(0); } ,set_hilight: function(Value) { if(this.colors == null) { this.colors = []; } this.colors[0] = Value; return Value; } ,get_midtone: function() { return this.getColor(1); } ,set_midtone: function(Value) { if(this.colors == null) { this.colors = []; } this.colors[1] = Value; return Value; } ,get_shadowMid: function() { return this.getColor(2); } ,set_shadowMid: function(Value) { if(this.colors == null) { this.colors = []; } this.colors[2] = Value; return Value; } ,get_shadowDark: function() { return this.getColor(3); } ,set_shadowDark: function(Value) { if(this.colors == null) { this.colors = []; } this.colors[3] = Value; return Value; } ,destroy: function() { flixel_util_FlxArrayUtil.clearArray(this.colors); this.colors = null; } ,copy: function() { var colorsCopy = this.colors != null ? this.colors.slice() : null; return new flixel_addons_ui_SwatchData(this.name,colorsCopy); } ,toString: function() { var str = "("; var i = 0; if(this.colors != null) { var _g = 0; var _g1 = this.colors; while(_g < _g1.length) { var colorInt = _g1[_g]; ++_g; var Alpha = false; var Prefix = false; if(Prefix == null) { Prefix = true; } if(Alpha == null) { Alpha = true; } var str1 = Alpha ? StringTools.hex(colorInt >> 24 & 255,2) : ""; str += "#" + ((Prefix ? "0x" : "") + str1 + StringTools.hex(colorInt >> 16 & 255,2) + StringTools.hex(colorInt >> 8 & 255,2) + StringTools.hex(colorInt & 255,2)); if(i != this.colors.length - 1) { str += ","; } ++i; } } else { str += "null"; } str += ",name=" + this.name + ")"; return str; } ,getRawDifference: function(other,otherColors,IgnoreInvisible) { if(IgnoreInvisible == null) { IgnoreInvisible = false; } var listA = this.colors; if(this.colors != null) { listA = this.colors; } else { listA = []; } var listB = null; if(other != null) { listB = other.colors; } else if(otherColors != null) { listB = otherColors; } else { listB = []; } var bigList; var smallList; if(listA.length < listB.length) { bigList = listB; smallList = listA; } else { bigList = listA; smallList = listB; } var totalDiff = 0; var _g = 0; var _g1 = smallList.length; while(_g < _g1) { var i = _g++; var ignore = false; if(IgnoreInvisible && (bigList[i] == 0 || smallList[i] == 0)) { if(listA[i] == 0) { ignore = true; } } if(!ignore) { totalDiff += this.getRGBdelta(bigList[i],smallList[i]); } } var lengthDiff = bigList.length - smallList.length; if(lengthDiff != 0) { totalDiff += 765 * lengthDiff; } return totalDiff; } ,doColorsEqual: function(other,otherColors) { var otherArray = null; if(other != null) { otherArray = other.colors; } else if(otherColors != null) { otherArray = otherColors; } if(otherArray == null) { return this.colors == null; } else if(this.colors == null) { return otherArray == null; } if(otherArray.length != this.colors.length) { return false; } var _g = 0; var _g1 = this.colors.length; while(_g < _g1) { var i = _g++; if(this.colors[i] != otherArray[i]) { return false; } } return true; } ,getRGBdelta: function(a,b) { var ra = a >> 16 & 255; var ga = a >> 8 & 255; var ba = a & 255; var rb = b >> 16 & 255; var gb = b >> 8 & 255; var bb = b & 255; return Math.abs(ra - rb) + Math.abs(ga - gb) + Math.abs(ba - bb) | 0; } ,__class__: flixel_addons_ui_SwatchData ,__properties__: {set_shadowDark:"set_shadowDark",get_shadowDark:"get_shadowDark",set_shadowMid:"set_shadowMid",get_shadowMid:"get_shadowMid",set_midtone:"set_midtone",get_midtone:"get_midtone",set_hilight:"set_hilight",get_hilight:"get_hilight"} }; var flixel_addons_ui_U = function() { }; $hxClasses["flixel.addons.ui.U"] = flixel_addons_ui_U; flixel_addons_ui_U.__name__ = "flixel.addons.ui.U"; flixel_addons_ui_U.xml_str = function(data,att,lower_case,default_str) { if(default_str == null) { default_str = ""; } if(lower_case == null) { lower_case = false; } if(data.get(att) != null) { if(lower_case) { return data.get(att).toLowerCase(); } else { return data.get(att); } } return default_str; }; flixel_addons_ui_U.xml_name = function(data) { var name = flixel_addons_ui_U.xml_str(data,"name",true,""); if(name == "") { name = flixel_addons_ui_U.xml_str(data,"id",true,""); } return name; }; flixel_addons_ui_U.xml_color = function(data,att,cast32Bit,defaultColor) { if(cast32Bit == null) { cast32Bit = true; } var col = null; var str = flixel_addons_ui_U.xml_str(data,att,true); if(str != "") { var cast32Bit1 = cast32Bit; var return_val = flixel_util_FlxColor.fromString(str); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str); } col = return_val; } if(col == null && defaultColor != null) { col = defaultColor; } return col; }; flixel_addons_ui_U.xml_iArray = function(data,att) { var arr = flixel_addons_ui_U.xml_strArray(data,att); var ints = null; if(arr != null && arr.length > 0) { ints = []; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; ints[i] = Std.parseInt(arr[i]); } } return ints; }; flixel_addons_ui_U.xml_fArray = function(data,att) { var arr = flixel_addons_ui_U.xml_strArray(data,att); var fs = null; if(arr != null && arr.length > 0) { fs = []; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; fs[i] = parseFloat(arr[i]); } } return fs; }; flixel_addons_ui_U.xml_strArray = function(data,att,lowerCase,default_) { if(lowerCase == null) { lowerCase = true; } var str = flixel_addons_ui_U.xml_str(data,att,lowerCase); if(str != "") { var arr = str.split(","); return arr; } else { return default_; } }; flixel_addons_ui_U.xml_colorArray = function(data,att,cast32Bit) { if(cast32Bit == null) { cast32Bit = true; } var arr = flixel_addons_ui_U.xml_strArray(data,att); var cols = null; if(arr != null && arr.length > 0) { cols = []; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var str = arr[i]; var cast32Bit1 = cast32Bit; var return_val = flixel_util_FlxColor.fromString(str); if(return_val == null) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str); } cols[i] = return_val; } } return cols; }; flixel_addons_ui_U.perc_to_float = function(str) { if(str.lastIndexOf("%") == str.length - 1) { str = HxOverrides.substr(str,0,str.length - 1); var r = new EReg("([0-9]+)?(\\.)?([0-9]*)?",""); if(r.match(str)) { var match = r.matchedPos(); if(match.pos == 0 && match.len == str.length) { var perc_float = parseFloat(str); perc_float /= 100; return perc_float; } } } return NaN; }; flixel_addons_ui_U.isStrNum = function(str) { if(str == null || str == "") { return false; } var r = new EReg("-?([0-9]+)?(\\.)?([0-9]*)?",""); if(r.match(str)) { var p = r.matchedPos(); if(p.pos == 0 && p.len == str.length) { return true; } } return false; }; flixel_addons_ui_U.isStrInt = function(str) { var r = new EReg("[0-9]+",""); if(r.match(str)) { var p = r.matchedPos(); if(p.pos == 0 && p.len == str.length) { return true; } } return false; }; flixel_addons_ui_U.isStrFloat = function(str) { var r = new EReg("[0-9]+\\.[0-9]+",""); if(r.match(str)) { var p = r.matchedPos(); if(p.pos == 0 && p.len == str.length) { return true; } } return false; }; flixel_addons_ui_U.xml_f = function(data,att,default_) { if(default_ == null) { default_ = 0; } if(data.get(att) != null) { return parseFloat(data.get(att)); } return default_; }; flixel_addons_ui_U.xml_i = function(data,att,default_) { if(default_ == null) { default_ = 0; } if(data.get(att) != null) { return Std.parseInt(data.get(att)); } return default_; }; flixel_addons_ui_U.xml_pt = function(data,att,default_) { if(data.get(att) != null) { return flixel_addons_ui_U.pointify(data.get(att)); } return default_; }; flixel_addons_ui_U.boolify = function(str) { str = str.toLowerCase(); if(str == "true" || str == "1") { return true; } return false; }; flixel_addons_ui_U.pointify = function(str) { var pt = null; if(str != null) { var arr = ["(",")"," ","=",":"]; var _g = 0; while(_g < arr.length) { var thing = arr[_g]; ++_g; while(str.indexOf(thing) != -1) str = StringTools.replace(str,thing,""); } if(str.indexOf(",") == -1) { if(str.indexOf("x") != -1) { str = StringTools.replace(str,"x",","); } } arr = str.split(","); if(arr.length == 2) { var x = parseFloat(arr[0]); var y = parseFloat(arr[1]); if(y == null) { y = 0; } if(x == null) { x = 0; } pt = new flixel_math_FlxBasePoint(x,y); } } return pt; }; flixel_addons_ui_U.compareStringVars = function(variable,otherValue,type,op) { if(op == null) { op = "=="; } switch(type) { case "bool": var ba = flixel_addons_ui_U.boolify(variable); var bb = flixel_addons_ui_U.boolify(otherValue); if(op == "==" || op == "=") { return ba == bb; } else if(op == "!==" || op == "!=") { return ba != bb; } break; case "float": var fa = parseFloat(variable); var fb = parseFloat(otherValue); if(op == "==" || op == "=") { return fa == fb; } else if(op == "!==" || op == "!=") { return fa != fb; } else if(op == "<") { return fa < fb; } else if(op == ">") { return fa > fb; } else if(op == "<=") { return fa <= fb; } else if(op == ">=") { return fa >= fb; } break; case "int": var ia = Std.parseInt(variable); var ib = Std.parseInt(otherValue); if(op == "==" || op == "=") { return ia == ib; } else if(op == "!==" || op == "!=") { return ia != ib; } else if(op == "<") { return ia < ib; } else if(op == ">") { return ia > ib; } else if(op == "<=") { return ia <= ib; } else if(op == ">=") { return ia >= ib; } break; case "string": if(op == "==" || op == "=") { return variable == otherValue; } if(op == "!==" || op == "!=") { return variable != otherValue; } break; } return false; }; flixel_addons_ui_U.xml_bool = function(data,att,default_) { if(default_ == null) { default_ = false; } if(data.get(att) != null) { var str = data.get(att); str = str.toLowerCase(); if(str == "true" || str == "1") { return true; } return false; } return default_; }; flixel_addons_ui_U.xml_gfx = function(data,att,test) { if(test == null) { test = true; } var str = ""; if(data.get(att) != null) { str = data.get(att); if(str == "" || str == null) { str = ""; } else { str = flixel_addons_ui_U.gfx(str); if(test) { try { if(!openfl_utils_Assets.exists(str,"IMAGE")) { throw haxe_Exception.thrown("couldn't load bmp \"" + att + "\""); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(typeof(_g1) == "string") { var msg = _g1; flixel_FlxG.log.advanced("FlxUI: U.xml_gfx() : " + msg,flixel_system_debug_log_LogStyle.ERROR,true); } else { throw _g; } } } } } return str; }; flixel_addons_ui_U.center = function(fb1,fb2,centerX,centerY) { if(centerY == null) { centerY = true; } if(centerX == null) { centerX = true; } if(centerX) { fb2.set_x(fb1.x + (fb1.get_width() - fb2.get_width()) / 2); } if(centerY) { fb2.set_y(fb1.y + (fb1.get_height() - fb2.get_height()) / 2); } }; flixel_addons_ui_U.test_int = function(i1,test,i2) { switch(test) { case "!=": return i1 != i2; case "<": return i1 < i2; case "<=": return i1 <= i2; case "==": return i1 == i2; case ">": return i1 > i2; case ">=": return i1 >= i2; default: return false; } }; flixel_addons_ui_U.test_float = function(f1,test,f2) { switch(test) { case "!=": return f1 != f2; case "<": return f1 < f2; case "<=": return f1 <= f2; case "==": return f1 == f2; case ">": return f1 > f2; case ">=": return f1 >= f2; default: return false; } }; flixel_addons_ui_U.padDigits = function(i,d,padChar) { if(padChar == null) { padChar = "0"; } var f = i; var str = ""; var num_digits = 0; while(f >= 1) { f /= 10; ++num_digits; } if(i == 0) { num_digits = 1; } if(num_digits < d) { var _g = 0; var _g1 = d - num_digits; while(_g < _g1) { var temp = _g++; str += padChar; } } return str + (i == null ? "null" : "" + i); }; flixel_addons_ui_U.conformToBounds = function(pt,maxMin) { if(maxMin != null) { if(pt.x < maxMin.min_width) { pt.x = maxMin.min_width; } if(pt.y < maxMin.min_height) { pt.y = maxMin.min_height; } if(pt.x > maxMin.max_width) { pt.x = maxMin.max_width; } if(pt.x > maxMin.max_height) { pt.y = maxMin.max_height; } } return pt; }; flixel_addons_ui_U.parseHex = function(str,cast32Bit,safe,default_color) { if(default_color == null) { default_color = 0; } if(safe == null) { safe = false; } if(cast32Bit == null) { cast32Bit = false; } var return_val = flixel_util_FlxColor.fromString(str); if(return_val == null) { if(!safe) { throw haxe_Exception.thrown("U.parseHex() unable to parse hex String " + str); } else { return_val = default_color; } } return return_val; }; flixel_addons_ui_U.hexChar2dec = function(hex_char) { switch(hex_char) { case "0":case "1":case "10":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9": return Std.parseInt(hex_char); case "A":case "a": return 10; case "B":case "b": return 11; case "C":case "c": return 12; case "D":case "d": return 13; case "E":case "e": return 14; case "F":case "f": return 15; default: throw haxe_Exception.thrown("U.hexChar2dec() illegal char(" + hex_char + ")"); } }; flixel_addons_ui_U.hex2dec = function(hex_str) { var length = hex_str.length; var place_mult = 1; var sum = 0; var i = length - 1; while(i >= 0) { var char_hex = HxOverrides.substr(hex_str,i,1); var char_int; switch(char_hex) { case "0":case "1":case "10":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9": char_int = Std.parseInt(char_hex); break; case "A":case "a": char_int = 10; break; case "B":case "b": char_int = 11; break; case "C":case "c": char_int = 12; break; case "D":case "d": char_int = 13; break; case "E":case "e": char_int = 14; break; case "F":case "f": char_int = 15; break; default: throw haxe_Exception.thrown("U.hexChar2dec() illegal char(" + char_hex + ")"); } sum += char_int * place_mult; place_mult *= 16; --i; } return sum; }; flixel_addons_ui_U.hex2rgb = function(hex) { return [hex >> 16 & 255,hex >> 8 & 255,hex & 255]; }; flixel_addons_ui_U.applyResize = function(resize_ratio,resize_ratio_axis,w,h,pt) { if(pt == null) { pt = new flixel_math_FlxBasePoint(0,0); } if(resize_ratio > 0) { var effective_ratio = w / h; if(Math.abs(effective_ratio - resize_ratio) > 0.0001) { if(resize_ratio_axis == 1) { h = w * (1 / resize_ratio); } else { w = h * (1 / resize_ratio); } } } var iw = w | 0; if(iw < 1) { w = 1; } var ih = h | 0; if(ih < 1) { h = 1; } var x = w; var y = h; if(y == null) { y = 0; } if(x == null) { x = 0; } pt.set_x(x); pt.set_y(y); return pt; }; flixel_addons_ui_U.rgb2hex = function(r,g,b) { return r << 16 | g << 8 | b; }; flixel_addons_ui_U.interpolate = function(hex1,hex2,amt) { if(amt < 0) { amt = 0; } else if(amt > 1) { amt = 1; } var a1 = 1 - amt; var c1r = hex1 >> 16 & 255; var c1g = hex1 >> 8 & 255; var c1b = hex1 & 255; var c2r = hex2 >> 16 & 255; var c2g = hex2 >> 8 & 255; var c2b = hex2 & 255; var c3r = c1r * a1 + c2r * amt | 0; var c3g = c1g * a1 + c2g * amt | 0; var c3b = c1b * a1 + c2b * amt | 0; return c3r << 16 | c3g << 8 | c3b; }; flixel_addons_ui_U.getLocList = function(xmin,ymin,xmax,ymax) { var list = []; var _g = ymin; var _g1 = ymax + 1; while(_g < _g1) { var yy = _g++; var _g2 = xmin; var _g3 = xmax + 1; while(_g2 < _g3) { var xx = _g2++; var x = xx; var y = yy; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; list.push(point); } } return list; }; flixel_addons_ui_U.disposeXML = function(thing) { }; flixel_addons_ui_U.copyAccess = function(fast) { var x = Xml.parse(haxe_xml_Printer.print(fast)).firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } return x; }; flixel_addons_ui_U.copyXml = function(data) { return Xml.parse(haxe_xml_Printer.print(data)).firstElement(); }; flixel_addons_ui_U.getXML = function(str,folder) { if(folder == null) { folder = ""; } var id = str; if(folder != "") { id = folder + "/" + id; } return flixel_addons_ui_U.xml(id); }; flixel_addons_ui_U.json = function(str,extension,dir) { if(dir == null) { dir = "assets/json/"; } if(extension == null) { extension = "json"; } var json_str = openfl_utils_Assets.getText(dir + str + "." + extension); if(json_str != "" && json_str != null) { var the_json = JSON.parse(json_str); return the_json; } return null; }; flixel_addons_ui_U.field = function(object,field,_default) { if(object == null) { return null; } if(Object.prototype.hasOwnProperty.call(object,field)) { var thing = Reflect.field(object,field); if(thing == null) { return _default; } return thing; } return _default; }; flixel_addons_ui_U.xml = function(id,extension,getAccess,dir) { if(dir == null) { dir = "assets/xml/"; } if(getAccess == null) { getAccess = true; } if(extension == null) { extension = "xml"; } if(id.indexOf("raw:") == 0 || id.indexOf("RAW:") == 0) { id = HxOverrides.substr(id,4,id.length - 4); dir = ""; } var thePath = dir + id + "." + extension; var exists = openfl_utils_Assets.exists(thePath,"TEXT"); if(!exists) { return null; } var str = openfl_utils_Assets.getText(dir + id + "." + extension); if(str == null) { return null; } var the_xml = Xml.parse(str); if(getAccess) { var x = the_xml.firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } var fast = x; return fast; } else { return the_xml.firstElement(); } }; flixel_addons_ui_U.clearArraySoft = function(array) { if(array == null) { return; } var i = array.length - 1; while(i >= 0) { array[i] = null; array.splice(i,1); --i; } array = null; }; flixel_addons_ui_U.clearArray = function(array) { if(array == null) { return; } var i = array.length - 1; while(i >= 0) { flixel_addons_ui_U.destroyThing(array[i]); array[i] = null; array.splice(i,1); --i; } array = null; }; flixel_addons_ui_U.destroyThing = function(thing) { if(thing == null) { return; } if(((thing) instanceof Array)) { flixel_addons_ui_U.clearArray(thing); } else if(js_Boot.__implements(thing,flixel_util_IFlxDestroyable)) { var idstr = js_Boot.__cast(thing , flixel_util_IFlxDestroyable); idstr.destroy(); idstr = null; } else if(((thing) instanceof flixel_FlxBasic)) { var fb = js_Boot.__cast(thing , flixel_FlxBasic); fb.destroy(); fb = null; } thing = null; }; flixel_addons_ui_U.fontStr = function(str,style) { if(style == null) { style = ""; } var style1 = style; if(style1 == null) { style1 = ""; } style1 = style1.toLowerCase(); var suffix = ""; switch(style1) { case "":case "none":case "normal":case "regular": suffix = ""; break; case "b":case "bold": suffix = "b"; break; case "i":case "italic": suffix = "i"; break; case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z": suffix = "z"; break; } if(str.indexOf("assets/fonts/") != 0) { return "assets/fonts/" + str + suffix; } else { return str + suffix; } }; flixel_addons_ui_U.font = function(str,style,extension) { if(extension == null) { extension = ".ttf"; } if(style == null) { style = ""; } var ostr = str; var style1 = style; if(style1 == null) { style1 = ""; } style1 = style1.toLowerCase(); var suffix = ""; switch(style1) { case "":case "none":case "normal":case "regular": suffix = ""; break; case "b":case "bold": suffix = "b"; break; case "i":case "italic": suffix = "i"; break; case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z": suffix = "z"; break; } if(str.indexOf("assets/fonts/") != 0) { str = "assets/fonts/" + str + suffix; } else { str += suffix; } if(str.indexOf(extension) == -1) { str += extension; } str = flixel_addons_ui_FontFixer.add(str); var exists = openfl_utils_Assets.exists(str,"FONT"); if(!exists && extension == ".ttf") { var alt = flixel_addons_ui_U.font(ostr,style,".otf"); if(openfl_utils_Assets.exists(alt,"FONT")) { return alt; } } return str; }; flixel_addons_ui_U._font = function(str,style) { if(style == null) { style = ""; } style = style.toLowerCase(); var suffix = ""; switch(style) { case "":case "none":case "normal":case "regular": suffix = ""; break; case "b":case "bold": suffix = "b"; break; case "i":case "italic": suffix = "i"; break; case "bi":case "bold-italic":case "boldi":case "bolditalic":case "ib":case "ibold":case "italic-bold":case "italicbold":case "z": suffix = "z"; break; } if(str.indexOf("assets/fonts/") != 0) { return "assets/fonts/" + str + suffix; } return str + suffix; }; flixel_addons_ui_U.fsx = function(data) { return new flixel_addons_ui_FlxUISprite(0,0,data); }; flixel_addons_ui_U.fs = function(data) { return new flixel_FlxSprite(0,0,data); }; flixel_addons_ui_U.FU = function(str) { return HxOverrides.substr(str,0,1).toUpperCase() + HxOverrides.substr(str,1,str.length - 1); }; flixel_addons_ui_U.FUL = function(str) { return HxOverrides.substr(str,0,1).toUpperCase() + HxOverrides.substr(str,1,str.length - 1).toLowerCase(); }; flixel_addons_ui_U.getBmp = function(asset) { var str = null; if(typeof(asset) == "string") { str = asset; } else if(((asset) instanceof flixel_graphics_FlxGraphic)) { var fg = asset; str = fg.key; } else if(((asset) instanceof openfl_display_BitmapData)) { var bmp = asset; return bmp; } if(flixel_FlxG.bitmap._cache.h[str] != null) { var cg = flixel_FlxG.bitmap._cache.h[str]; if(cg.bitmap != null) { return cg.bitmap; } } return openfl_utils_Assets.getBitmapData(str,false); }; flixel_addons_ui_U.checkHaxedef = function(str) { str = str.toLowerCase(); switch(str) { case "android": break; case "console-pc":case "console_pc": break; case "cpp": break; case "demo": break; case "desktop": break; case "flash": break; case "html5": return true; case "ios": break; case "js": return true; case "legacy":case "lime_legacy": break; case "lime_next":case "next": var val = true; return val; case "linux": break; case "mac": break; case "mobile": break; case "neko": break; case "ps3": break; case "ps4": break; case "sys": break; case "tvos": break; case "vita": break; case "web": return true; case "wiiu": break; case "windows": break; case "xbox1": break; } return false; }; flixel_addons_ui_U.copy_shallow_arr = function(src) { if(src == null) { return null; } var arr = []; if(src == null) { return arr; } var _g = 0; while(_g < src.length) { var thing = src[_g]; ++_g; arr.push(thing); } return arr; }; flixel_addons_ui_U.copy_arr_arr_i = function(src) { if(src == null) { return null; } var arrarr = []; var _g = 0; while(_g < src.length) { var arri = src[_g]; ++_g; var temp = []; var _g1 = 0; while(_g1 < arri.length) { var i = arri[_g1]; ++_g1; temp.push(i); } arrarr.push(temp); } return arrarr; }; flixel_addons_ui_U.copy_shallow_arr_i = function(src) { if(src == null) { return null; } var arr = []; var _g = 0; while(_g < src.length) { var thing = src[_g]; ++_g; arr.push(thing); } return arr; }; flixel_addons_ui_U.copy_shallow_arr_str = function(src) { if(src == null) { return null; } var arr = []; var _g = 0; while(_g < src.length) { var thing = src[_g]; ++_g; arr.push(thing); } return arr; }; flixel_addons_ui_U.FU_ = function(str) { var arr = str.split(" "); var str = ""; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; str += flixel_addons_ui_U.FU(arr[i]); if(i != arr.length - 1) { str += " "; } } return str; }; flixel_addons_ui_U.xml_blend = function(x,att) { return flixel_addons_ui_U.blendModeFromString(flixel_addons_ui_U.xml_str(x,att,true,"normal")); }; flixel_addons_ui_U.blendModeFromString = function(str) { str = str.toLowerCase(); switch(str) { 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 "subtract": return 14; default: return 10; } }; flixel_addons_ui_U.scaleTileBmp = function(orig_id,scale,origW,origH,W,H,smooth) { if(smooth == null) { smooth = true; } if(H == null) { H = -1; } if(W == null) { W = -1; } var orig = openfl_utils_Assets.getBitmapData(orig_id,false); if(orig == null) { if(flixel_FlxG.bitmap._cache.h[orig_id] != null) { orig = flixel_FlxG.bitmap._cache.h[orig_id].bitmap; } else { return null; } } var widthInTiles = orig.width / origW | 0; var heightInTiles = orig.height / origH | 0; if(W == -1) { W = origW * scale | 0; } if(H == -1) { H = origH * scale | 0; scale = H / origH; } if(Math.abs(scale - 1.0) > 0.001) { var scaled = new openfl_display_BitmapData(W * widthInTiles | 0,H * heightInTiles | 0,true,0); var rect = new openfl_geom_Rectangle(); var pt = new openfl_geom_Point(); var matrix = new openfl_geom_Matrix(); matrix.scale(scale,scale); var _g = 0; var _g1 = heightInTiles; while(_g < _g1) { var tiley = _g++; var _g2 = 0; var _g3 = widthInTiles; while(_g2 < _g3) { var tilex = _g2++; var tile = new openfl_display_BitmapData(origW,origH,true,0); rect.setTo(tilex * origW,tiley * origH,origW,origH); pt.setTo(0,0); tile.copyPixels(orig,rect,pt); var scaleTile = new openfl_display_BitmapData(W,H,true,0); scaleTile.draw(tile,matrix,null,null,null,smooth); pt.setTo(tilex * W,tiley * H); scaled.copyPixels(scaleTile,scaleTile.rect,pt); } } return scaled; } else { return orig.clone(); } }; flixel_addons_ui_U.scaleAndStoreTileset = function(orig_id,scale,OrigW,OrigH,TileW,TileH,Smooth) { if(Smooth == null) { Smooth = true; } if(TileH == null) { TileH = -1; } if(TileW == null) { TileW = -1; } var assetKey = orig_id + "_x" + scale; if(flixel_FlxG.bitmap._cache.h[assetKey] != null == false) { var bmp = flixel_addons_ui_U.scaleTileBmp(orig_id,scale,OrigW,OrigH,TileW,TileH,Smooth); flixel_FlxG.bitmap.add(bmp,false,assetKey); } return assetKey; }; flixel_addons_ui_U.loadScaledImage = function(src,W,H,smooth) { if(smooth == null) { smooth = true; } var bmpSrc = flixel_addons_ui_U.gfx(src); var testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,false); if(testBmp != null) { if(W < 0) { W = testBmp.width; } if(H < 0) { H = testBmp.height; } var diff = Math.abs(W - testBmp.width) + Math.abs(H - testBmp.height); if(diff > 0.01) { var scaleKey = bmpSrc + "_" + (W | 0) + "x" + (H | 0); if(flixel_FlxG.bitmap._cache.h[scaleKey] == null) { var scaledBmp = new openfl_display_BitmapData(W | 0,H | 0,true,0); var m = flixel_addons_ui_U.getMatrix(); m.identity(); m.scale(W / testBmp.width,H / testBmp.height); scaledBmp.draw(testBmp,m,null,null,null,smooth); flixel_FlxG.bitmap.add(scaledBmp,true,scaleKey); } return scaleKey; } else { return bmpSrc; } } return null; }; flixel_addons_ui_U.loadImageScaleToHeight = function(src,Height,Smooth,checkFlxBitmap) { if(checkFlxBitmap == null) { checkFlxBitmap = false; } if(Smooth == null) { Smooth = true; } var bmpSrc = flixel_addons_ui_U.gfx(src); var testBmp = null; if(!checkFlxBitmap) { testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,false); } else { var flximg = flixel_FlxG.bitmap._cache.h[bmpSrc]; testBmp = flximg != null ? flximg.bitmap : null; } var ratio = testBmp != null ? Height / testBmp.height : 1.0; return flixel_addons_ui_U.loadMonoScaledImage(bmpSrc,ratio,Smooth,checkFlxBitmap); }; flixel_addons_ui_U.loadMonoScaledImage = function(src,Scale,smooth,checkFlxBitmap,fixAlphaChannel) { if(fixAlphaChannel == null) { fixAlphaChannel = false; } if(checkFlxBitmap == null) { checkFlxBitmap = false; } if(smooth == null) { smooth = true; } var bmpSrc = flixel_addons_ui_U.gfx(src); var testBmp = null; if(!checkFlxBitmap) { testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,false); if(testBmp == null) { testBmp = openfl_utils_Assets.getBitmapData(bmpSrc,true); } } else { var flximg = flixel_FlxG.bitmap._cache.h[bmpSrc]; testBmp = flximg != null ? flximg.bitmap : null; } if(testBmp != null) { if(Scale <= 0) { throw haxe_Exception.thrown("Error! Scale must be positive & > 0! (Scale was = " + Scale + ")"); } if(Math.abs(Scale - 1.00) > 0.001) { var scaleKey = bmpSrc + "_ScaleX" + Scale; if(flixel_FlxG.bitmap._cache.h[scaleKey] == null) { var scaledBmp = new openfl_display_BitmapData(testBmp.width * Scale | 0,testBmp.height * Scale | 0,true,0); var m = flixel_addons_ui_U.getMatrix(); m.identity(); m.scale(Scale,Scale); scaledBmp.draw(testBmp,m,null,null,null,smooth); if(fixAlphaChannel) { var black = new openfl_display_BitmapData(scaledBmp.width,scaledBmp.height,true,-16777216); black.copyPixels(scaledBmp,scaledBmp.rect,new openfl_geom_Point(),null,null,true); black.copyChannel(scaledBmp,scaledBmp.rect,new openfl_geom_Point(0,0),8,8); var temp = scaledBmp; scaledBmp = black; temp.dispose(); } flixel_FlxG.bitmap.add(scaledBmp,true,scaleKey); } return scaleKey; } else { flixel_FlxG.bitmap.add(testBmp,false,bmpSrc); return bmpSrc; } } return null; }; flixel_addons_ui_U.gfx = function(id,dir1,dir2,dir3,dir4,suppressError) { if(suppressError == null) { suppressError = false; } if(dir4 == null) { dir4 = ""; } if(dir3 == null) { dir3 = ""; } if(dir2 == null) { dir2 = ""; } if(dir1 == null) { dir1 = ""; } if(id != null) { id = id.toLowerCase(); } var prefix = ""; if(dir1 != "") { prefix = dir1 + "/"; if(dir2 != "") { prefix += dir2 + "/"; if(dir3 != "") { prefix += dir3 + "/"; if(dir4 != "") { prefix += dir4 + "/"; } } } } if(prefix != "") { id = prefix + id; } if(id.indexOf("raw:") != 0) { id = StringTools.replace(id,"-","_"); } return flixel_addons_ui_U.get_gfx(id); }; flixel_addons_ui_U.bmpToArrayIntLayer = function(color_index,bd) { var p; var arr = []; var w = bd.width; var h = bd.height; var _g = 0; var _g1 = h; while(_g < _g1) { var r = _g++; var _g2 = 0; var _g3 = w; while(_g2 < _g3) { var c = _g2++; p = bd.getPixel(c,r); if(p == color_index) { p = 1; } else { p = 0; } arr.push(p); } } return arr; }; flixel_addons_ui_U.bmpToCSVLayer = function(color_index,bd) { var p; var csv = ""; var w = bd.width; var h = bd.height; var _g = 0; var _g1 = h; while(_g < _g1) { var r = _g++; var _g2 = 0; var _g3 = w; while(_g2 < _g3) { var c = _g2++; p = bd.getPixel(c,r); if(p == color_index) { p = 1; } else { p = 0; } if(c == 0) { if(r == 0) { csv += p; } else { csv += "\n" + p; } } else { csv += ", " + p; } } } return csv; }; flixel_addons_ui_U.get_gfx = function(str) { var return_str = ""; var suffix = ""; if(str.indexOf(".jpg") != -1) { suffix = ".jpg"; } else { suffix = ".png"; } if(str != null && str.length > 4 && str.indexOf(suffix) != -1) { str = HxOverrides.substr(str,0,str.length - 4); } if(str.indexOf("raw:") == 0 || str.indexOf("RAW:") == 0) { str = HxOverrides.substr(str,4,str.length - 4); return_str = str + suffix; } if(str != null && str.indexOf("assets/gfx/") == 0) { return_str = str + suffix; } if(return_str == "") { return_str = "assets/gfx/" + str + suffix; } if(return_str.indexOf(".stitch.txt" + suffix) != -1) { return_str = StringTools.replace(return_str,".stitch.txt" + suffix,".stitch.txt"); } return return_str; }; flixel_addons_ui_U.sfx = function(str) { var extension = ""; extension = ".ogg"; if(str.indexOf("RAW:") == 0) { str = HxOverrides.substr(str,4,str.length - 4); return str + extension; } return "assets/sfx/" + str + extension; }; flixel_addons_ui_U.intStr_to_arr = function(str) { var arr = str.split(","); var str_arr = []; var _g = 0; while(_g < arr.length) { var s = arr[_g]; ++_g; if(s.indexOf("-") == -1) { str_arr.push(Std.parseInt(s)); } else { var range = str.split("-"); var lo = -1; var hi = -1; if(range != null && range.length == 2) { lo = Std.parseInt(range[0]); hi = Std.parseInt(range[1]) + 1; if(lo >= 0 && hi > lo) { var _g1 = lo; var _g2 = hi; while(_g1 < _g2) { var i = _g1++; str_arr.push(i); } } } } } return str_arr; }; flixel_addons_ui_U.intStr_to_arrStr = function(str) { var arr = str.split(","); var str_arr = []; var _g = 0; while(_g < arr.length) { var s = arr[_g]; ++_g; if(s.indexOf("-") == -1) { str_arr.push(Std.string(Std.parseInt(s))); } else { var range = str.split("-"); var lo = -1; var hi = -1; if(range != null && range.length == 2) { lo = Std.parseInt(range[0]); hi = Std.parseInt(range[1]) + 1; if(lo >= 0 && hi > lo) { var _g1 = lo; var _g2 = hi; while(_g1 < _g2) { var i = _g1++; str_arr.push(i == null ? "null" : "" + i); } } } } } return str_arr; }; flixel_addons_ui_U.dirStr = function(XX,YY) { var str = ""; if(XX == 0) { if(YY == -1) { str = "N"; } else if(YY == 1) { str = "S"; } else if(YY == 0) { str = "NONE"; } } else if(XX == 1) { if(YY == -1) { str = "NE"; } else if(YY == 1) { str = "SE"; } else if(YY == 0) { str = "E"; } } else if(XX == -1) { if(YY == -1) { str = "NW"; } else if(YY == 1) { str = "SW"; } else if(YY == 0) { str = "W"; } } else { str = "NONE"; } return str; }; flixel_addons_ui_U.obj_direction = function(a,b) { var dx = a.x - b.x; var dy = a.y - b.y; var x = dx / Math.abs(dx) | 0; var y = dy / Math.abs(dy) | 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var ipt = point; return ipt; }; flixel_addons_ui_U.circle_test = function(x1,y1,r1,x2,y2,r2) { var dx = x1 - x2; var dy = y1 - y2; var d2 = dx * dx + dy * dy; var dr2 = r1 * r1 + r2 * r2; return d2 <= dr2; }; flixel_addons_ui_U.point_circle_test = function(x,y,cx,cy,r) { var dx = x - cx; var dy = y - cy; var d2 = dx * dx + dy * dy; return d2 <= r * r; }; flixel_addons_ui_U.aabb_test_mult = function(a,b,multA,multB) { if(multB == null) { multB = 1; } if(multA == null) { multA = 1; } var extra = a.get_width() * multA; var diff = (extra - a.get_width()) / 2; var ax1 = a.x - diff; var ax2 = a.x + a.get_width() + diff; extra = a.get_height() * multA; diff = (extra - a.get_height()) / 2; var ay1 = a.y - diff; var ay2 = a.y + a.get_height() + diff; extra = b.get_width() * multB; diff = (extra - b.get_width()) / 2; var bx1 = b.x - diff; var bx2 = b.x + b.get_width() + diff; extra = b.get_height() * multB; diff = (extra - b.get_height()) / 2; var by1 = b.y - diff; var by2 = b.y + b.get_height() + diff; if(Math.abs(bx2 + bx1 - (ax2 + ax1)) <= bx2 - bx1 + ax2 - ax1) { return Math.abs(by2 + by1 - (ay2 + ay1)) <= by2 - by1 + ay2 - ay1; } else { return false; } }; flixel_addons_ui_U.aabb_test = function(a,b) { var ax1 = a.x; var ax2 = a.x + a.get_width(); var ay1 = a.y; var ay2 = a.y + a.get_height(); var bx1 = b.x; var bx2 = b.x + b.get_width(); var by1 = b.y; var by2 = b.y + b.get_height(); if(Math.abs(bx2 + bx1 - (ax2 + ax1)) <= bx2 - bx1 + ax2 - ax1) { return Math.abs(by2 + by1 - (ay2 + ay1)) <= by2 - by1 + ay2 - ay1; } else { return false; } }; flixel_addons_ui_U.bitStringDimensions = function(str) { var pt = new openfl_geom_Point(0,0); var arr = str.split("\n"); if(arr != null && arr.length > 1) { pt.y = arr.length; if(arr[0] != null && arr[0].length > 1) { pt.x = arr[0].length; } } return pt; }; flixel_addons_ui_U.splitBitString = function(str) { var result = []; var arr = str.split("\n"); var i = 0; while(i < arr.length) { var len = arr[i].length; var j = 0; while(j < len) { var char = arr[i].charAt(j); var num = Std.parseInt(char); result.push(num); ++j; } ++i; } return result; }; flixel_addons_ui_U.getShortTextFromFlxKeyText = function(str) { str = str.toUpperCase(); switch(str) { case "ACCENT": return "`"; case "ALT": return "AT"; case "BACKSLASH": return "\\"; case "BACKSPACE": return "BK"; case "CAPSLOCK": return "CP"; case "COMMA": return ","; case "CONTROL": return "CT"; case "DELETE": return "DE"; case "DOWN": return "DN"; case "EIGHT": return "8"; case "END": return "ED"; case "ENTER": return "EN"; case "EQUALS": return "="; case "ESC":case "ESCAPE": return "EC"; case "FIVE": return "5"; case "FOUR": return "4"; case "HOME": return "HM"; case "INSERT": return "IN"; case "LBRACKET": return "["; case "LEFT": return "LT"; case "MINUS": return "-"; case "NINE": return "9"; case "NULL": return " "; case "NUM0": return "N0"; case "NUM1": return "N1"; case "NUM2": return "N2"; case "NUM3": return "N3"; case "NUM4": return "N4"; case "NUM5": return "N5"; case "NUM6": return "N6"; case "NUM7": return "N7"; case "NUM8": return "N8"; case "NUM9": return "N9"; case "NUMDEC": return "N."; case "NUMDIV": return "N/"; case "NUMLOCK": return "NM"; case "NUMMINUS": return "N-"; case "NUMMULT": return "N*"; case "NUMPLUS": return "N+"; case "ONE": return "1"; case "PAGEDOWN": return "PD"; case "PAGEUP": return "PU"; case "PAUSEBREAK": return "PB"; case "PERIOD": return "."; case "PLUS": return "+"; case "QUOTE": return "\""; case "RBRACKET": return "]"; case "RIGHT": return "RT"; case "SCROLLLOCK": return "SC"; case "SEMICOLON": return ";"; case "SEVEN": return "7"; case "SHIFT": return "SH"; case "SIX": return "6"; case "SLASH": return "/"; case "SPACE": return "SP"; case "TAB": return "TB"; case "TEN": return "10"; case "THREE": return "3"; case "TWO": return "2"; case "UP": return "UP"; case "ZERO": return "0"; default: return str; } }; flixel_addons_ui_U.getFlxKeyTextFromShortText = function(str) { str = str.toUpperCase(); switch(str) { case "": return " "; case "\"": return "QUOTE"; case "*": return "NUMMULT"; case "+": return "PLUS"; case ",": return "COMMA"; case "-": return "MINUS"; case ".": return "PERIOD"; case "/": return "SLASH"; case "0": return "ZERO"; case "1": return "ONE"; case "10": return "TEN"; case "2": return "TWO"; case "3": return "THREE"; case "4": return "FOUR"; case "5": return "FIVE"; case "6": return "SIX"; case "7": return "SEVEN"; case "8": return "EIGHT"; case "9": return "NINE"; case ";": return "SEMICOLON"; case "=": return "EQUALS"; case "AT": return "ALT"; case "BK": return "BACKSPACE"; case "CP": return "CAPSLOCK"; case "CT": return "CONTROL"; case "DE": return "DELETE"; case "DN": return "DOWN"; case "EC": return "ESCAPE"; case "ED": return "END"; case "EN": return "ENTER"; case "HM": return "HOME"; case "IN": return "INSERT"; case "LT": return "LEFT"; case "N+": return "NUMPLUS"; case "N-": return "NUMMINUS"; case "N.": return "NUMDEC"; case "N/": return "NUMDIV"; case "N0": return "NUM0"; case "N1": return "NUM1"; case "N2": return "NUM2"; case "N3": return "NUM3"; case "N4": return "NUM4"; case "N5": return "NUM5"; case "N6": return "NUM6"; case "N7": return "NUM7"; case "N8": return "NUM8"; case "N9": return "NUM9"; case "NM": return "NUMLOCK"; case "PB": return "PAUSEBREAK"; case "PD": return "PAGEDOWN"; case "PU": return "PAGEUP"; case "RT": return "RIGHT"; case "SC": return "SCROLLLOCK"; case "SH": return "SHIFT"; case "SP": return "SPACE"; case "TB": return "TAB"; case "UP": return "UP"; case "[": return "LBRACKET"; case "\\": return "BACKSLASH"; case "]": return "RBRACKET"; case "`": return "ACCENT"; default: return str; } }; flixel_addons_ui_U.formatXml = function(_xml) { var s = haxe_xml_Printer.print(_xml); var r = new EReg(">[^`<]*<","g"); s = s.replace(r.r,">___SPLITHERE___<"); r = new EReg("___SPLITHERE___","g"); var split = r.split(s); s = ""; var childDepht = 0; var whiteSpace = "\t"; var _g = 0; while(_g < split.length) { var str = split[_g]; ++_g; var _g1 = 0; var _g2 = childDepht; while(_g1 < _g2) { var i = _g1++; s += whiteSpace; } if(str.charAt(0) == "<" && str.charAt(1) == "/") { --childDepht; s = HxOverrides.substr(s,0,s.length - whiteSpace.length); } else if(str.charAt(str.length - 1) == ">" && str.charAt(str.length - 2) != "/" && str.charAt(str.length - 2) != "-") { ++childDepht; } s += str + "\n"; } return s; }; flixel_addons_ui_U.strCase = function(str,code) { switch(code) { case "fu": return flixel_addons_ui_U.FU(str); case "fu_": return flixel_addons_ui_U.FU_(str); case "l": return str.toLowerCase(); case "u": return str.toUpperCase(); default: return str; } }; flixel_addons_ui_U.unparentXML = function(f) { if(f.parent != null) { f.parent.removeChild(f); } return f; }; flixel_addons_ui_U.setButtonLabel = function(btn,str) { if(btn == null) { return; } if(((btn) instanceof flixel_addons_ui_FlxUIButton)) { (js_Boot.__cast(btn , flixel_addons_ui_FlxUIButton)).label.set_text(str); } else if(((btn) instanceof flixel_addons_ui_FlxUISpriteButton)) { var fuisb = btn; if(fuisb.label == null) { return; } if(((fuisb.label) instanceof flixel_group_FlxTypedSpriteGroup)) { var g = fuisb.label; if(g.group.members == null) { return; } var _g = 0; var _g1 = g.group.members; while(_g < _g1.length) { var sprite = _g1[_g]; ++_g; if(sprite == null) { continue; } if(((sprite) instanceof flixel_text_FlxText)) { (js_Boot.__cast(sprite , flixel_text_FlxText)).set_text(str); return; } } } } }; flixel_addons_ui_U.getMatrix = function() { if(flixel_addons_ui_U._matrix == null) { flixel_addons_ui_U._matrix = new openfl_geom_Matrix(); } return flixel_addons_ui_U._matrix; }; var flixel_addons_ui_interfaces_IFireTongue = function() { }; $hxClasses["flixel.addons.ui.interfaces.IFireTongue"] = flixel_addons_ui_interfaces_IFireTongue; flixel_addons_ui_interfaces_IFireTongue.__name__ = "flixel.addons.ui.interfaces.IFireTongue"; flixel_addons_ui_interfaces_IFireTongue.__isInterface__ = true; flixel_addons_ui_interfaces_IFireTongue.prototype = { get: null ,getFont: null ,getFontSize: null ,locale: null ,__class__: flixel_addons_ui_interfaces_IFireTongue }; var flixel_addons_util_FlxAsyncLoop = function(Iterations,Callback,IterationsPerUpdate) { if(IterationsPerUpdate == null) { IterationsPerUpdate = 100; } this._curIndex = 0; this.finished = false; this.started = false; flixel_FlxBasic.call(this); this.set_visible(false); this._iterations = Iterations; this._callback = Callback; this._iterationsPerUpdate = IterationsPerUpdate; }; $hxClasses["flixel.addons.util.FlxAsyncLoop"] = flixel_addons_util_FlxAsyncLoop; flixel_addons_util_FlxAsyncLoop.__name__ = "flixel.addons.util.FlxAsyncLoop"; flixel_addons_util_FlxAsyncLoop.__super__ = flixel_FlxBasic; flixel_addons_util_FlxAsyncLoop.prototype = $extend(flixel_FlxBasic.prototype,{ started: null ,finished: null ,_curIndex: null ,_iterationsPerUpdate: null ,_iterations: null ,_callback: null ,start: function() { if(this.finished || this.started) { return; } this._curIndex = 0; this.started = true; } ,update: function(elapsed) { if(!this.started || this.finished) { return; } var _g = this._curIndex; var _g1 = Math.min(this._curIndex + this._iterationsPerUpdate,this._iterations) | 0; while(_g < _g1) { var i = _g++; this._callback(); this._curIndex++; } if(this._curIndex >= this._iterations) { this.finished = true; } flixel_FlxBasic.prototype.update.call(this,elapsed); } ,destroy: function() { this._callback = null; flixel_FlxBasic.prototype.destroy.call(this); } ,__class__: flixel_addons_util_FlxAsyncLoop }); var flixel_addons_util_FlxFSMState = function() { }; $hxClasses["flixel.addons.util.FlxFSMState"] = flixel_addons_util_FlxFSMState; flixel_addons_util_FlxFSMState.__name__ = "flixel.addons.util.FlxFSMState"; flixel_addons_util_FlxFSMState.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_util_FlxFSMState.prototype = { enter: function(owner,fsm) { } ,update: function(elapsed,owner,fsm) { } ,exit: function(owner) { } ,destroy: function() { } ,__class__: flixel_addons_util_FlxFSMState }; var flixel_addons_util_FlxFSM = function(owner,state) { this.age = 0; this.set_owner(owner); this.set_state(state); this.type = 0; this.transitions = new flixel_addons_util_FlxFSMTransitionTable(); this.pools = new haxe_ds_StringMap(); }; $hxClasses["flixel.addons.util.FlxFSM"] = flixel_addons_util_FlxFSM; flixel_addons_util_FlxFSM.__name__ = "flixel.addons.util.FlxFSM"; flixel_addons_util_FlxFSM.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_util_FlxFSM.prototype = { owner: null ,state: null ,stateClass: null ,age: null ,name: null ,type: null ,stack: null ,transitions: null ,pools: null ,update: function(elapsed) { if(this.state != null && this.owner != null) { this.age += elapsed; this.state.update(elapsed,this.owner,this); } if(this.transitions != null && this.pools != null) { var newStateClass = this.transitions.poll(this.stateClass,this.owner); if(newStateClass != this.stateClass) { var curName = null; if(this.stateClass != null) { var c = this.stateClass; curName = c.__name__; } var newName = newStateClass.__name__; if(newName != null && !Object.prototype.hasOwnProperty.call(this.pools.h,newName)) { var newStateConstructor = function() { return Type.createInstance(newStateClass,[]); }; var this1 = this.pools; var value = new flixel_util_FlxPool(newStateConstructor); this1.h[newName] = value; } var returnToPool = this.state; this.set_state(this.pools.h[newName].get()); if(this.state != null && curName != null && Object.prototype.hasOwnProperty.call(this.pools.h,curName)) { this.pools.h[curName].put(returnToPool); } } } } ,destroy: function() { this.set_owner(null); this.set_state(null); this.stack = null; this.name = null; this.transitions = null; this.pools = null; } ,set_owner: function(owner) { if(this.owner != owner) { if(this.owner != null && this.state != null) { this.state.exit(this.owner); } this.owner = owner; if(this.owner != null && this.state != null) { this.age = 0; this.state.enter(this.owner,this); } } return this.owner; } ,set_state: function(state) { var newClass = js_Boot.getClass(state); if(this.stateClass != newClass) { if(this.owner != null && this.state != null) { this.state.exit(this.owner); } this.state = state; if(this.state != null && this.owner != null) { this.age = 0; this.state.enter(this.owner,this); } this.stateClass = newClass; } return state; } ,__class__: flixel_addons_util_FlxFSM ,__properties__: {set_state:"set_state",set_owner:"set_owner"} }; var flixel_addons_util__$FlxFSM_FlxFSMStackSignal = function() { if(flixel_addons_util__$FlxFSM_FlxFSMStackSignal._lockSignal == null) { flixel_addons_util__$FlxFSM_FlxFSMStackSignal._lockSignal = new flixel_util__$FlxSignal_FlxSignal1(); } }; $hxClasses["flixel.addons.util._FlxFSM.FlxFSMStackSignal"] = flixel_addons_util__$FlxFSM_FlxFSMStackSignal; flixel_addons_util__$FlxFSM_FlxFSMStackSignal.__name__ = "flixel.addons.util._FlxFSM.FlxFSMStackSignal"; flixel_addons_util__$FlxFSM_FlxFSMStackSignal._lockSignal = null; flixel_addons_util__$FlxFSM_FlxFSMStackSignal.prototype = { globalLock: function(type) { flixel_addons_util__$FlxFSM_FlxFSMStackSignal._lockSignal.dispatch(type); } ,__class__: flixel_addons_util__$FlxFSM_FlxFSMStackSignal }; var flixel_addons_util_FlxFSMStack = function() { flixel_addons_util__$FlxFSM_FlxFSMStackSignal.call(this); this._stack = []; this._lockedNames = []; this._lockedTypes = 0; this._hasLocks = false; flixel_addons_util__$FlxFSM_FlxFSMStackSignal._lockSignal.add($bind(this,this.lockType)); }; $hxClasses["flixel.addons.util.FlxFSMStack"] = flixel_addons_util_FlxFSMStack; flixel_addons_util_FlxFSMStack.__name__ = "flixel.addons.util.FlxFSMStack"; flixel_addons_util_FlxFSMStack.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_addons_util_FlxFSMStack.__super__ = flixel_addons_util__$FlxFSM_FlxFSMStackSignal; flixel_addons_util_FlxFSMStack.prototype = $extend(flixel_addons_util__$FlxFSM_FlxFSMStackSignal.prototype,{ _stack: null ,_alteredStack: null ,_hasLocks: null ,_lockedNames: null ,_lockedTypes: null ,_lockRemaining: null ,update: function(elapsed) { if(this._alteredStack != null) { this._stack = this._alteredStack.slice(); this._alteredStack = null; } var _g = 0; var _g1 = this._stack; while(_g < _g1.length) { var fsm = _g1[_g]; ++_g; if(this._hasLocks) { if(this._lockRemaining == false && (fsm.type & this._lockedTypes) == 0 && this._lockedNames.indexOf(fsm.name) == -1) { fsm.update(elapsed); } } else { fsm.update(elapsed); } } if(this._lockedNames.length != 0) { this._lockedNames = []; } this._lockRemaining = false; this._lockedTypes = 0; this._hasLocks = false; } ,lock: function(name) { if(this._lockedNames.indexOf(name) == -1) { this._lockedNames.push(name); this._hasLocks = true; } } ,lockRemaining: function() { this._lockRemaining = true; this._hasLocks = true; } ,lockType: function(bitflag) { this._lockedTypes |= bitflag; this._hasLocks = true; } ,unshift: function(FSM) { if(this._alteredStack == null) { this._alteredStack = this._stack.slice(); } FSM.stack = this; this._alteredStack.unshift(FSM); } ,shift: function() { if(this._alteredStack == null) { this._alteredStack = this._stack.slice(); } var FSM = this._alteredStack.shift(); flixel_util_FlxDestroyUtil.destroy(FSM); return FSM; } ,push: function(FSM) { if(this._alteredStack == null) { this._alteredStack = this._stack.slice(); } FSM.stack = this; this._alteredStack.push(FSM); } ,pop: function() { if(this._alteredStack == null) { this._alteredStack = this._stack.slice(); } var FSM = this._alteredStack.pop(); this.lock(FSM.name); flixel_util_FlxDestroyUtil.destroy(FSM); return FSM; } ,remove: function(FSM) { if(this._alteredStack == null) { this._alteredStack = this._stack.slice(); } if(HxOverrides.remove(this._alteredStack,FSM)) { this.lock(FSM.name); flixel_util_FlxDestroyUtil.destroy(FSM); } } ,removeByName: function(name) { var _g = 0; var _g1 = this._stack; while(_g < _g1.length) { var fsm = _g1[_g]; ++_g; if(fsm.name == name) { this.remove(fsm); } } } ,destroy: function() { var _g = 0; var _g1 = this._stack; while(_g < _g1.length) { var fsm = _g1[_g]; ++_g; flixel_util_FlxDestroyUtil.destroy(fsm); } this.lockRemaining(); flixel_addons_util__$FlxFSM_FlxFSMStackSignal._lockSignal.remove($bind(this,this.lockType)); } ,get_isEmpty: function() { return this._stack.length == 0; } ,__class__: flixel_addons_util_FlxFSMStack ,__properties__: {get_isEmpty:"get_isEmpty"} }); var flixel_addons_util_FlxFSMTransitionTable = function() { this._garbagecollect = false; this._table = []; }; $hxClasses["flixel.addons.util.FlxFSMTransitionTable"] = flixel_addons_util_FlxFSMTransitionTable; flixel_addons_util_FlxFSMTransitionTable.__name__ = "flixel.addons.util.FlxFSMTransitionTable"; flixel_addons_util_FlxFSMTransitionTable.prototype = { _table: null ,_startState: null ,_garbagecollect: null ,poll: function(currentState,owner) { if(currentState == null && this._startState != null) { return this._startState; } if(this._garbagecollect) { this._garbagecollect = false; var i = this._table.length; while(i-- > 0) { var transition = this._table[i]; if(transition.remove) { if(transition.from == currentState) { this._garbagecollect = true; } else { HxOverrides.remove(this._table,transition); } } } } var _g = 0; var _g1 = this._table; while(_g < _g1.length) { var transition = _g1[_g]; ++_g; if(transition.from == currentState || transition.from == null) { if(transition.evaluate(owner)) { return transition.to; } } } return currentState; } ,add: function(from,to,condition) { if(this.hasTransition(from,to,condition) == false) { var row = new flixel_addons_util_Transition(); row.from = from; row.to = to; row.condition = condition; this._table.push(row); } return this; } ,addGlobal: function(to,condition) { if(this.hasTransition(null,to,condition) == false) { var row = new flixel_addons_util_Transition(); row.to = to; row.condition = condition; this._table.push(row); } return this; } ,addTransition: function(transition) { if(this._table.indexOf(transition) == -1) { this._table.push(transition); } } ,start: function($with) { this._startState = $with; return this; } ,replace: function(target,replacement,removeNow) { if(removeNow == null) { removeNow = false; } var i = this._table.length; while(i-- > 0) { var transition = this._table[i]; if(transition.to == target) { if(transition.from == null) { this.addGlobal(replacement,transition.condition); } else { this.add(transition.from,replacement,transition.condition); } this.removeTransition(transition,removeNow); } else if(transition.from == target) { this.add(replacement,transition.to,transition.condition); this.removeTransition(transition,removeNow); } } } ,remove: function(from,to,condition,removeNow) { if(removeNow == null) { removeNow = false; } if(from == null && to == null && condition == null) { flixel_FlxG.log.advanced("Cannot call remove with all null parameters",flixel_system_debug_log_LogStyle.ERROR,true); return; } var i = this._table.length; while(i-- > 0) { var transition = this._table[i]; if((from == null || from == transition.from) && (to == null || to == transition.to) && (condition == null || condition == transition.condition)) { this.removeTransition(transition,removeNow); } } } ,removeTransition: function(transition,removeNow) { if(removeNow) { HxOverrides.remove(this._table,transition); } else { transition.remove = true; this._garbagecollect = true; } } ,hasTransition: function(from,to,condition) { if(from == null && to == null && condition == null) { flixel_FlxG.log.advanced("Cannot call hasTransition with all null parameters",flixel_system_debug_log_LogStyle.ERROR,true); return false; } var i = this._table.length; while(i-- > 0) { var transition = this._table[i]; if((from == null || from == transition.from) && (to == null || to == transition.to) && (condition == null || condition == transition.condition)) { return true; } } return false; } ,__class__: flixel_addons_util_FlxFSMTransitionTable }; var flixel_addons_util_Transition = function() { this.remove = false; }; $hxClasses["flixel.addons.util.Transition"] = flixel_addons_util_Transition; flixel_addons_util_Transition.__name__ = "flixel.addons.util.Transition"; flixel_addons_util_Transition.prototype = { evaluate: function(target) { return this.condition(target); } ,from: null ,to: null ,condition: null ,remove: null ,__class__: flixel_addons_util_Transition }; var flixel_addons_util_FlxScene = function(file) { this.assetsDirectory = "assets/"; if(file != null) { this.set(file); } }; $hxClasses["flixel.addons.util.FlxScene"] = flixel_addons_util_FlxScene; flixel_addons_util_FlxScene.__name__ = "flixel.addons.util.FlxScene"; flixel_addons_util_FlxScene.prototype = { width: null ,height: null ,name: null ,description: null ,version: null ,assetsDirectory: null ,tilemap: null ,_constants: null ,_objects: null ,_xml: null ,_fastXml: null ,set: function(file) { this._constants = new haxe_ds_StringMap(); this._objects = new haxe_ds_StringMap(); var data = openfl_utils_Assets.getText(file); this._xml = haxe_xml_Parser.parse(data); var x = this._xml.firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } this._fastXml = x; if(haxe_xml__$Access_HasAttribAccess.resolve(this._fastXml,"width")) { this.width = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"width")); } if(haxe_xml__$Access_HasAttribAccess.resolve(this._fastXml,"height")) { this.height = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"height")); } if(haxe_xml__$Access_HasAttribAccess.resolve(this._fastXml,"name")) { this.name = haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"name"); } if(haxe_xml__$Access_HasAttribAccess.resolve(this._fastXml,"description")) { this.description = haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"description"); } if(haxe_xml__$Access_HasAttribAccess.resolve(this._fastXml,"version")) { this.version = haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"version"); } if(haxe_xml__$Access_HasAttribAccess.resolve(this._fastXml,"bgColor")) { flixel_FlxG.cameras.set_bgColor(flixel_util_FlxColor.fromString(haxe_xml__$Access_AttribAccess.resolve(this._fastXml,"bgColor"))); } if(haxe_xml__$Access_HasNodeAccess.resolve(this._fastXml,"constants")) { this.loadConstants(); } } ,spawn: function(container,layerId) { var layerNodes = haxe_xml__$Access_NodeListAccess.resolve(this._fastXml,"layer"); var _g = 0; while(_g < layerNodes.length) { var layer = layerNodes[_g]; ++_g; if(layerId == null || haxe_xml__$Access_AttribAccess.resolve(layer,"id") == layerId) { var element = layer.elements(); while(element.hasNext()) { var element1 = element.next(); var _g1; if(element1.nodeType == Xml.Document) { _g1 = "Document"; } else { if(element1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (element1.nodeType == null ? "null" : XmlType.toString(element1.nodeType))); } _g1 = element1.nodeName; } switch(_g1) { case "button": var instance = new flixel_ui_FlxButton(); this.applySpriteProperties(instance,element1); this.applyTextProperties(instance.label,element1); this.addInstance(instance,container,element1); break; case "entity": var name = haxe_xml__$Access_AttribAccess.resolve(element1,"type"); var instance1 = Type.createInstance($hxClasses[name],[]); this.applySpriteProperties(instance1,element1); this.addInstance(instance1,container,element1); break; case "sprite": var instance2 = new flixel_FlxSprite(); this.applySpriteProperties(instance2,element1); this.addInstance(instance2,container,element1); break; case "text": var instance3 = new flixel_text_FlxText(); this.applySpriteProperties(instance3,element1); this.applyTextProperties(instance3,element1); this.addInstance(instance3,container,element1); break; } } if(layerId != null) { break; } } } } ,loadBackgrounds: function(container) { var backgroundsNode = haxe_xml__$Access_NodeAccess.resolve(this._fastXml,"backgrounds"); var element = backgroundsNode.elements(); while(element.hasNext()) { var element1 = element.next(); var _g; if(element1.nodeType == Xml.Document) { _g = "Document"; } else { if(element1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (element1.nodeType == null ? "null" : XmlType.toString(element1.nodeType))); } _g = element1.nodeName; } switch(_g) { case "backdrop": var att = element1; var graphics = this.assetsDirectory + haxe_xml__$Access_AttribAccess.resolve(att,"graphics"); var repeatAxes = flixel_util_FlxAxes.fromBools(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(att,"repeatX")),this.parseBool(haxe_xml__$Access_AttribAccess.resolve(att,"repeatY"))); var backdrop = new flixel_addons_display_FlxBackdrop(graphics,repeatAxes); backdrop.set_x(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(att,"x"))); backdrop.set_y(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(att,"y"))); backdrop.scrollFactor.set_x(parseFloat(haxe_xml__$Access_AttribAccess.resolve(att,"scrollFactorX"))); backdrop.scrollFactor.set_y(parseFloat(haxe_xml__$Access_AttribAccess.resolve(att,"scrollFactorY"))); this.addInstance(backdrop,container,element1); break; case "sprite": var sprite = new flixel_FlxSprite(); this.applySpriteProperties(sprite,element1); this.addInstance(sprite,container,element1); break; } } } ,loadTilemap: function(container) { var terrainNode = haxe_xml__$Access_NodeAccess.resolve(this._fastXml,"terrain"); var element = terrainNode.elements(); while(element.hasNext()) { var element1 = element.next(); var _g; if(element1.nodeType == Xml.Document) { _g = "Document"; } else { if(element1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (element1.nodeType == null ? "null" : XmlType.toString(element1.nodeType))); } _g = element1.nodeName; } switch(_g) { case "tile": var id = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element1,"id")); var collision = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element1,"collision")); this.tilemap.setTileProperties(id,collision); break; case "tilemap": var data = haxe_xml_Access.get_innerData(element1); var graphics = haxe_xml__$Access_AttribAccess.resolve(element1,"graphics"); var width = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element1,"tileWidth")); var height = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element1,"tileHeight")); this.tilemap = new flixel_tile_FlxTilemap(); this.tilemap.loadMapFromCSV(data,graphics,width,height); this.addInstance(this.tilemap,container,element1); break; } } } ,loadEverything: function() { this.loadBackgrounds(); this.loadTilemap(); this.spawn(); } ,loadConstants: function() { var constantsNode = haxe_xml__$Access_NodeAccess.resolve(this._fastXml,"constants"); var element = constantsNode.elements(); while(element.hasNext()) { var element1 = element.next(); var tmp; if(element1.nodeType == Xml.Document) { tmp = "Document"; } else { if(element1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (element1.nodeType == null ? "null" : XmlType.toString(element1.nodeType))); } tmp = element1.nodeName; } if(tmp == "const" && haxe_xml__$Access_HasAttribAccess.resolve(element1,"id") && haxe_xml__$Access_HasAttribAccess.resolve(element1,"type") && haxe_xml__$Access_HasAttribAccess.resolve(element1,"value")) { switch(haxe_xml__$Access_AttribAccess.resolve(element1,"type")) { case "Bool": var $const = this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element1,"value")); var this1 = this._constants; var k = haxe_xml__$Access_AttribAccess.resolve(element1,"id"); this1.h[k] = $const; break; case "Float": var const1 = parseFloat(haxe_xml__$Access_AttribAccess.resolve(element1,"value")); var this2 = this._constants; var k1 = haxe_xml__$Access_AttribAccess.resolve(element1,"id"); this2.h[k1] = const1; break; case "Int": var const2 = Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element1,"value")); var this3 = this._constants; var k2 = haxe_xml__$Access_AttribAccess.resolve(element1,"id"); this3.h[k2] = const2; break; case "String": var const3 = haxe_xml__$Access_AttribAccess.resolve(element1,"value"); var this4 = this._constants; var k3 = haxe_xml__$Access_AttribAccess.resolve(element1,"id"); this4.h[k3] = const3; break; } } } } ,addInstance: function(instance,container,element) { if(container == null) { flixel_FlxG.game._state.add(instance); } else { container.add(instance); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"id")) { var this1 = this._objects; var k = haxe_xml__$Access_AttribAccess.resolve(element,"id"); var v = instance; this1.h[k] = v; } } ,applySpriteProperties: function(instance,element) { if(haxe_xml__$Access_HasAttribAccess.resolve(element,"graphic")) { instance.loadGraphic(this.assetsDirectory + haxe_xml__$Access_AttribAccess.resolve(element,"graphic")); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"alpha")) { instance.set_alpha(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"alpha"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"color")) { instance.set_color(flixel_util_FlxColor.fromString(haxe_xml__$Access_AttribAccess.resolve(element,"color"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"flipX")) { instance.set_flipX(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element,"flipX"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"flipY")) { instance.set_flipY(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element,"flipY"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"originX")) { instance.origin.set_x(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"originX"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"originY")) { instance.origin.set_y(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"originY"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"offsetX")) { instance.offset.set_x(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"offsetX"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"offsetY")) { instance.offset.set_y(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"offsetY"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"scaleX")) { instance.scale.set_x(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"scaleX"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"scaleY")) { instance.scale.set_y(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"scaleY"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"x")) { instance.set_x(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"x"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"y")) { instance.set_y(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"y"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"width")) { instance.set_width(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"width"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"height")) { instance.set_height(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"height"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"angle")) { instance.set_angle(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"angle"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"immovable")) { instance.set_immovable(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element,"immovable"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"solid")) { instance.set_solid(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element,"solid"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"scrollFactorX")) { instance.scrollFactor.set_x(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"scrollFactorX"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"scrollFactorY")) { instance.scrollFactor.set_y(parseFloat(haxe_xml__$Access_AttribAccess.resolve(element,"scrollFactorY"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"alignBottom")) { instance.set_y(flixel_FlxG.height - instance.get_height() - Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"alignBottom"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"alignRight")) { instance.set_x(flixel_FlxG.width - instance.get_width() - Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"alignRight"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"alignVertical")) { instance.set_y(flixel_FlxG.height / 2 - instance.get_height() / 2 + Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"alignVertical"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"alignHorizontal")) { instance.set_x(flixel_FlxG.width / 2 - instance.get_width() / 2 + Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"alignHorizontal"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"visible")) { instance.set_visible(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element,"visible"))); } } ,applyTextProperties: function(instance,element) { if(instance == null || element == null) { return; } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"text")) { instance.set_text(haxe_xml__$Access_AttribAccess.resolve(element,"text")); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"size")) { instance.set_size(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"size"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"fieldWidth")) { instance.set_fieldWidth(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"fieldWidth"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"font")) { instance.set_font(this.assetsDirectory + haxe_xml__$Access_AttribAccess.resolve(element,"font")); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"alignment")) { instance.set_alignment(haxe_xml__$Access_AttribAccess.resolve(element,"alignment")); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"borderStyle")) { instance.set_borderStyle(Type.createEnum(flixel_text_FlxTextBorderStyle,haxe_xml__$Access_AttribAccess.resolve(element,"borderStyle").toUpperCase(),null)); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"borderColor")) { instance.set_borderColor(flixel_util_FlxColor.fromString(haxe_xml__$Access_AttribAccess.resolve(element,"borderColor"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"borderSize")) { instance.set_borderSize(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(element,"borderSize"))); } if(haxe_xml__$Access_HasAttribAccess.resolve(element,"wordWrap")) { instance.set_wordWrap(this.parseBool(haxe_xml__$Access_AttribAccess.resolve(element,"wordWrap"))); } } ,'const': function(id) { if(Object.prototype.hasOwnProperty.call(this._constants.h,id)) { return this._constants.h[id]; } return null; } ,object: function(id) { if(Object.prototype.hasOwnProperty.call(this._objects.h,id)) { return this._objects.h[id]; } return null; } ,parseBool: function(value) { if(value == "false" || Std.parseInt(value) == 0) { return false; } else { return true; } } ,__class__: flixel_addons_util_FlxScene }; var flixel_addons_util_FlxSimplex = function() { }; $hxClasses["flixel.addons.util.FlxSimplex"] = flixel_addons_util_FlxSimplex; flixel_addons_util_FlxSimplex.__name__ = "flixel.addons.util.FlxSimplex"; flixel_addons_util_FlxSimplex.i = null; flixel_addons_util_FlxSimplex.j = null; flixel_addons_util_FlxSimplex.k = null; flixel_addons_util_FlxSimplex.l = null; flixel_addons_util_FlxSimplex.x0 = null; flixel_addons_util_FlxSimplex.y0 = null; flixel_addons_util_FlxSimplex.z0 = null; flixel_addons_util_FlxSimplex.w0 = null; flixel_addons_util_FlxSimplex.simplexTiles = function(x,y,baseX,baseY,seed,scale,persistence,octaves) { if(octaves == null) { octaves = 1; } if(persistence == null) { persistence = 1; } if(scale == null) { scale = 1; } if(baseX <= 0 || baseY <= 0) { throw haxe_Exception.thrown("baseX and baseY must be greater than 0."); } if(octaves < 1) { throw haxe_Exception.thrown("The number of octaves must be greater than 0."); } var xx = x / baseX * 2 * Math.PI; var yy = y / baseY * 2 * Math.PI; var xtile = (x / baseX | 0) * baseX; var ytile = (y / baseY | 0) * baseY; var nx = Math.cos(xx) * baseX / Math.PI; var ny = Math.cos(yy) * baseY / Math.PI; var nz = Math.sin(xx) * baseX / Math.PI; var nw = Math.sin(yy) * baseY / Math.PI; var max = 0; var amp = 1; var n = 0; var _g = 0; var _g1 = octaves; while(_g < _g1) { var i = _g++; var x = seed + nx * scale; var y = seed + ny * scale; var z = seed + nz * scale; var w = seed + nw * scale; var t = (x + y + z + w) * 0.309016994; flixel_addons_util_FlxSimplex.i = Math.floor(x + t); flixel_addons_util_FlxSimplex.j = Math.floor(y + t); flixel_addons_util_FlxSimplex.k = Math.floor(z + t); flixel_addons_util_FlxSimplex.l = Math.floor(w + t); t = (flixel_addons_util_FlxSimplex.i + flixel_addons_util_FlxSimplex.j + flixel_addons_util_FlxSimplex.k + flixel_addons_util_FlxSimplex.l) * 0.138196601; flixel_addons_util_FlxSimplex.x0 = x - flixel_addons_util_FlxSimplex.i + t; flixel_addons_util_FlxSimplex.y0 = y - flixel_addons_util_FlxSimplex.j + t; flixel_addons_util_FlxSimplex.z0 = z - flixel_addons_util_FlxSimplex.k + t; flixel_addons_util_FlxSimplex.w0 = w - flixel_addons_util_FlxSimplex.l + t; var c0 = flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.y0 ? 32 : 0; var c1 = flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.z0 ? 16 : 0; var c2 = flixel_addons_util_FlxSimplex.y0 > flixel_addons_util_FlxSimplex.z0 ? 8 : 0; var c3 = flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.w0 ? 4 : 0; var c4 = flixel_addons_util_FlxSimplex.y0 > flixel_addons_util_FlxSimplex.w0 ? 2 : 0; var c5 = flixel_addons_util_FlxSimplex.z0 > flixel_addons_util_FlxSimplex.w0 ? 1 : 0; var cell = flixel_addons_util_FlxSimplex.cells4D[c0 + c1 + c2 + c3 + c4 + c5]; var i1 = flixel_addons_util_FlxSimplex.A2[3] = 0; var i2 = flixel_addons_util_FlxSimplex.A2[2] = i1; var i3 = flixel_addons_util_FlxSimplex.A2[1] = i2; flixel_addons_util_FlxSimplex.A2[0] = i3; flixel_addons_util_FlxSimplex.i &= 255; flixel_addons_util_FlxSimplex.j &= 255; flixel_addons_util_FlxSimplex.k &= 255; flixel_addons_util_FlxSimplex.l &= 255; var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x1 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y1 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z1 = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w1 = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t1 = .6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; var cell1 = cell[0]; flixel_addons_util_FlxSimplex.A2[cell1]++; var out; if(t1 < 0) { out = 0; } else { t1 *= t1; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x1 = 0; } else if(b2) { x1 = -x1; } if(!b4) { if(b3) { y1 = 0; } else if(b2) { y1 = -y1; } } else if(b1) { y1 = -y1; } if(b4) { if(!b3) { z1 = 0; } else if(b0) { z1 = -z1; } } else if(b1) { z1 = -z1; } if(b4 && b3) { w1 = 0; } else if(b0) { w1 = -w1; } out = t1 * t1 * (x1 + y1 + z1 + w1); } var s1 = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x2 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s1; var y2 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s1; var z2 = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s1; var w2 = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s1; var t2 = .6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2; var a2x1 = flixel_addons_util_FlxSimplex.A2[0]; var a2y1 = flixel_addons_util_FlxSimplex.A2[1]; var a2z1 = flixel_addons_util_FlxSimplex.A2[2]; var a2w1 = flixel_addons_util_FlxSimplex.A2[3]; var cell2 = cell[1]; flixel_addons_util_FlxSimplex.A2[cell2]++; var out1; if(t2 < 0) { out1 = 0; } else { t2 *= t2; var h1 = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x1 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y1 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z1 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w1]]]] % 32; var b41 = (h1 >> 4 & 1) == 1; var b31 = (h1 >> 3 & 1) == 1; var b21 = (h1 >> 2 & 1) == 1; var b11 = (h1 >> 1 & 1) == 1; var b01 = (h1 & 1) == 1; if(!b31) { x2 = 0; } else if(b21) { x2 = -x2; } if(!b41) { if(b31) { y2 = 0; } else if(b21) { y2 = -y2; } } else if(b11) { y2 = -y2; } if(b41) { if(!b31) { z2 = 0; } else if(b01) { z2 = -z2; } } else if(b11) { z2 = -z2; } if(b41 && b31) { w2 = 0; } else if(b01) { w2 = -w2; } out1 = t2 * t2 * (x2 + y2 + z2 + w2); } var s2 = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x3 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s2; var y3 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s2; var z3 = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s2; var w3 = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s2; var t3 = .6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3; var a2x2 = flixel_addons_util_FlxSimplex.A2[0]; var a2y2 = flixel_addons_util_FlxSimplex.A2[1]; var a2z2 = flixel_addons_util_FlxSimplex.A2[2]; var a2w2 = flixel_addons_util_FlxSimplex.A2[3]; var cell3 = cell[2]; flixel_addons_util_FlxSimplex.A2[cell3]++; var out2; if(t3 < 0) { out2 = 0; } else { t3 *= t3; var h2 = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x2 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y2 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z2 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w2]]]] % 32; var b42 = (h2 >> 4 & 1) == 1; var b32 = (h2 >> 3 & 1) == 1; var b22 = (h2 >> 2 & 1) == 1; var b12 = (h2 >> 1 & 1) == 1; var b02 = (h2 & 1) == 1; if(!b32) { x3 = 0; } else if(b22) { x3 = -x3; } if(!b42) { if(b32) { y3 = 0; } else if(b22) { y3 = -y3; } } else if(b12) { y3 = -y3; } if(b42) { if(!b32) { z3 = 0; } else if(b02) { z3 = -z3; } } else if(b12) { z3 = -z3; } if(b42 && b32) { w3 = 0; } else if(b02) { w3 = -w3; } out2 = t3 * t3 * (x3 + y3 + z3 + w3); } var s3 = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x4 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s3; var y4 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s3; var z4 = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s3; var w4 = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s3; var t4 = .6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4; var a2x3 = flixel_addons_util_FlxSimplex.A2[0]; var a2y3 = flixel_addons_util_FlxSimplex.A2[1]; var a2z3 = flixel_addons_util_FlxSimplex.A2[2]; var a2w3 = flixel_addons_util_FlxSimplex.A2[3]; var cell4 = cell[3]; flixel_addons_util_FlxSimplex.A2[cell4]++; var out3; if(t4 < 0) { out3 = 0; } else { t4 *= t4; var h3 = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x3 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y3 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z3 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w3]]]] % 32; var b43 = (h3 >> 4 & 1) == 1; var b33 = (h3 >> 3 & 1) == 1; var b23 = (h3 >> 2 & 1) == 1; var b13 = (h3 >> 1 & 1) == 1; var b03 = (h3 & 1) == 1; if(!b33) { x4 = 0; } else if(b23) { x4 = -x4; } if(!b43) { if(b33) { y4 = 0; } else if(b23) { y4 = -y4; } } else if(b13) { y4 = -y4; } if(b43) { if(!b33) { z4 = 0; } else if(b03) { z4 = -z4; } } else if(b13) { z4 = -z4; } if(b43 && b33) { w4 = 0; } else if(b03) { w4 = -w4; } out3 = t4 * t4 * (x4 + y4 + z4 + w4); } var s4 = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x5 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s4; var y5 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s4; var z5 = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s4; var w5 = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s4; var t5 = .6 - x5 * x5 - y5 * y5 - z5 * z5 - w5 * w5; var a2x4 = flixel_addons_util_FlxSimplex.A2[0]; var a2y4 = flixel_addons_util_FlxSimplex.A2[1]; var a2z4 = flixel_addons_util_FlxSimplex.A2[2]; var a2w4 = flixel_addons_util_FlxSimplex.A2[3]; flixel_addons_util_FlxSimplex.A2[0]++; var out4; if(t5 < 0) { out4 = 0; } else { t5 *= t5; var h4 = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x4 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y4 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z4 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w4]]]] % 32; var b44 = (h4 >> 4 & 1) == 1; var b34 = (h4 >> 3 & 1) == 1; var b24 = (h4 >> 2 & 1) == 1; var b14 = (h4 >> 1 & 1) == 1; var b04 = (h4 & 1) == 1; if(!b34) { x5 = 0; } else if(b24) { x5 = -x5; } if(!b44) { if(b34) { y5 = 0; } else if(b24) { y5 = -y5; } } else if(b14) { y5 = -y5; } if(b44) { if(!b34) { z5 = 0; } else if(b04) { z5 = -z5; } } else if(b14) { z5 = -z5; } if(b44 && b34) { w5 = 0; } else if(b04) { w5 = -w5; } out4 = t5 * t5 * (x5 + y5 + z5 + w5); } var out5 = 27 * (out + out1 + out2 + out3 + out4); n += (out5 < -1 ? -1 : out5 > 1 ? 1 : out5) * amp; max += amp; amp *= persistence; scale *= 2; } return n / max; }; flixel_addons_util_FlxSimplex.simplexOctaves = function(x,y,scale,persistence,octaves) { if(octaves == null) { octaves = 1; } if(persistence == null) { persistence = 1; } if(scale == null) { scale = 1; } if(octaves < 1) { throw haxe_Exception.thrown("The number of octaves must be greater than 0."); } var max = 0; var amp = 1; var n = 0; var _g = 0; var _g1 = octaves; while(_g < _g1) { var i = _g++; var x1 = x * scale; var y1 = y * scale; var t = (x1 + y1) * 0.3660254037; flixel_addons_util_FlxSimplex.i = Math.floor(x1 + t); flixel_addons_util_FlxSimplex.j = Math.floor(y1 + t); t = (flixel_addons_util_FlxSimplex.i + flixel_addons_util_FlxSimplex.j) * 0.2113248654; flixel_addons_util_FlxSimplex.x0 = x1 - flixel_addons_util_FlxSimplex.i + t; flixel_addons_util_FlxSimplex.y0 = y1 - flixel_addons_util_FlxSimplex.j + t; var hi; var lo; if(flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.y0) { hi = 1; lo = 0; } else { hi = 0; lo = 1; } var i1 = flixel_addons_util_FlxSimplex.A2[1] = 0; flixel_addons_util_FlxSimplex.A2[0] = i1; flixel_addons_util_FlxSimplex.i &= 255; flixel_addons_util_FlxSimplex.j &= 255; var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x2 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y2 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var t1 = .5 - x2 * x2 - y2 * y2; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[lo]++; var out; if(t1 < 0) { out = 0; } else { t1 *= t1; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y]] % 12; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { if(b0) { x2 = -x2; } } else { x2 = 0; } if(!b3) { if(!b2) { if(b1) { y2 = -y2; } } else { y2 = 0; } } else if(b0) { y2 = -y2; } out = t1 * t1 * (x2 + y2); } var s1 = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x3 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s1; var y3 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s1; var t2 = .5 - x3 * x3 - y3 * y3; var a2x1 = flixel_addons_util_FlxSimplex.A2[0]; var a2y1 = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[hi]++; var out1; if(t2 < 0) { out1 = 0; } else { t2 *= t2; var h1 = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x1 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y1]] % 12; var b31 = (h1 >> 3 & 1) == 1; var b21 = (h1 >> 2 & 1) == 1; var b11 = (h1 >> 1 & 1) == 1; var b01 = (h1 & 1) == 1; if(!b31) { if(b01) { x3 = -x3; } } else { x3 = 0; } if(!b31) { if(!b21) { if(b11) { y3 = -y3; } } else { y3 = 0; } } else if(b01) { y3 = -y3; } out1 = t2 * t2 * (x3 + y3); } var s2 = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x4 = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s2; var y4 = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s2; var t3 = .5 - x4 * x4 - y4 * y4; var a2x2 = flixel_addons_util_FlxSimplex.A2[0]; var a2y2 = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[0]++; var out2; if(t3 < 0) { out2 = 0; } else { t3 *= t3; var h2 = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x2 + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y2]] % 12; var b32 = (h2 >> 3 & 1) == 1; var b22 = (h2 >> 2 & 1) == 1; var b12 = (h2 >> 1 & 1) == 1; var b02 = (h2 & 1) == 1; if(!b32) { if(b02) { x4 = -x4; } } else { x4 = 0; } if(!b32) { if(!b22) { if(b12) { y4 = -y4; } } else { y4 = 0; } } else if(b02) { y4 = -y4; } out2 = t3 * t3 * (x4 + y4); } var out3 = 70 * (out + out1 + out2); n += (out3 < -1 ? -1 : out3 > 1 ? 1 : out3) * amp; max += amp; amp *= persistence; scale *= 2; } return n / max; }; flixel_addons_util_FlxSimplex.simplex = function(x,y) { var t = (x + y) * 0.3660254037; flixel_addons_util_FlxSimplex.i = Math.floor(x + t); flixel_addons_util_FlxSimplex.j = Math.floor(y + t); t = (flixel_addons_util_FlxSimplex.i + flixel_addons_util_FlxSimplex.j) * 0.2113248654; flixel_addons_util_FlxSimplex.x0 = x - flixel_addons_util_FlxSimplex.i + t; flixel_addons_util_FlxSimplex.y0 = y - flixel_addons_util_FlxSimplex.j + t; var hi; var lo; if(flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.y0) { hi = 1; lo = 0; } else { hi = 0; lo = 1; } var i = flixel_addons_util_FlxSimplex.A2[1] = 0; flixel_addons_util_FlxSimplex.A2[0] = i; flixel_addons_util_FlxSimplex.i &= 255; flixel_addons_util_FlxSimplex.j &= 255; var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var t = .5 - x * x - y * y; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[lo]++; var out; if(t < 0) { out = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y]] % 12; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { if(b0) { x = -x; } } else { x = 0; } if(!b3) { if(!b2) { if(b1) { y = -y; } } else { y = 0; } } else if(b0) { y = -y; } out = t * t * (x + y); } var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var t = .5 - x * x - y * y; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[hi]++; var out1; if(t < 0) { out1 = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y]] % 12; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { if(b0) { x = -x; } } else { x = 0; } if(!b3) { if(!b2) { if(b1) { y = -y; } } else { y = 0; } } else if(b0) { y = -y; } out1 = t * t * (x + y); } var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var t = .5 - x * x - y * y; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[0]++; var out2; if(t < 0) { out2 = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y]] % 12; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { if(b0) { x = -x; } } else { x = 0; } if(!b3) { if(!b2) { if(b1) { y = -y; } } else { y = 0; } } else if(b0) { y = -y; } out2 = t * t * (x + y); } var out3 = 70 * (out + out1 + out2); if(out3 < -1) { return -1; } if(out3 > 1) { return 1; } return out3; }; flixel_addons_util_FlxSimplex.getCornerNoise = function(a) { var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1]) * 0.2113248654; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var t = .5 - x * x - y * y; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; flixel_addons_util_FlxSimplex.A2[a]++; if(t < 0) { return 0; } t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y]] % 12; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { if(b0) { x = -x; } } else { x = 0; } if(!b3) { if(!b2) { if(b1) { y = -y; } } else { y = 0; } } else if(b0) { y = -y; } return t * t * (x + y); }; flixel_addons_util_FlxSimplex.simplex4D = function(x,y,z,w) { var t = (x + y + z + w) * 0.309016994; flixel_addons_util_FlxSimplex.i = Math.floor(x + t); flixel_addons_util_FlxSimplex.j = Math.floor(y + t); flixel_addons_util_FlxSimplex.k = Math.floor(z + t); flixel_addons_util_FlxSimplex.l = Math.floor(w + t); t = (flixel_addons_util_FlxSimplex.i + flixel_addons_util_FlxSimplex.j + flixel_addons_util_FlxSimplex.k + flixel_addons_util_FlxSimplex.l) * 0.138196601; flixel_addons_util_FlxSimplex.x0 = x - flixel_addons_util_FlxSimplex.i + t; flixel_addons_util_FlxSimplex.y0 = y - flixel_addons_util_FlxSimplex.j + t; flixel_addons_util_FlxSimplex.z0 = z - flixel_addons_util_FlxSimplex.k + t; flixel_addons_util_FlxSimplex.w0 = w - flixel_addons_util_FlxSimplex.l + t; var c0 = flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.y0 ? 32 : 0; var c1 = flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.z0 ? 16 : 0; var c2 = flixel_addons_util_FlxSimplex.y0 > flixel_addons_util_FlxSimplex.z0 ? 8 : 0; var c3 = flixel_addons_util_FlxSimplex.x0 > flixel_addons_util_FlxSimplex.w0 ? 4 : 0; var c4 = flixel_addons_util_FlxSimplex.y0 > flixel_addons_util_FlxSimplex.w0 ? 2 : 0; var c5 = flixel_addons_util_FlxSimplex.z0 > flixel_addons_util_FlxSimplex.w0 ? 1 : 0; var cell = flixel_addons_util_FlxSimplex.cells4D[c0 + c1 + c2 + c3 + c4 + c5]; var i = flixel_addons_util_FlxSimplex.A2[3] = 0; var i1 = flixel_addons_util_FlxSimplex.A2[2] = i; var i = flixel_addons_util_FlxSimplex.A2[1] = i1; flixel_addons_util_FlxSimplex.A2[0] = i; flixel_addons_util_FlxSimplex.i &= 255; flixel_addons_util_FlxSimplex.j &= 255; flixel_addons_util_FlxSimplex.k &= 255; flixel_addons_util_FlxSimplex.l &= 255; var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t = .6 - x * x - y * y - z * z - w * w; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; var cell1 = cell[0]; flixel_addons_util_FlxSimplex.A2[cell1]++; var out; if(t < 0) { out = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x = 0; } else if(b2) { x = -x; } if(!b4) { if(b3) { y = 0; } else if(b2) { y = -y; } } else if(b1) { y = -y; } if(b4) { if(!b3) { z = 0; } else if(b0) { z = -z; } } else if(b1) { z = -z; } if(b4 && b3) { w = 0; } else if(b0) { w = -w; } out = t * t * (x + y + z + w); } var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t = .6 - x * x - y * y - z * z - w * w; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; var cell1 = cell[1]; flixel_addons_util_FlxSimplex.A2[cell1]++; var out1; if(t < 0) { out1 = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x = 0; } else if(b2) { x = -x; } if(!b4) { if(b3) { y = 0; } else if(b2) { y = -y; } } else if(b1) { y = -y; } if(b4) { if(!b3) { z = 0; } else if(b0) { z = -z; } } else if(b1) { z = -z; } if(b4 && b3) { w = 0; } else if(b0) { w = -w; } out1 = t * t * (x + y + z + w); } var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t = .6 - x * x - y * y - z * z - w * w; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; var cell1 = cell[2]; flixel_addons_util_FlxSimplex.A2[cell1]++; var out2; if(t < 0) { out2 = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x = 0; } else if(b2) { x = -x; } if(!b4) { if(b3) { y = 0; } else if(b2) { y = -y; } } else if(b1) { y = -y; } if(b4) { if(!b3) { z = 0; } else if(b0) { z = -z; } } else if(b1) { z = -z; } if(b4 && b3) { w = 0; } else if(b0) { w = -w; } out2 = t * t * (x + y + z + w); } var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t = .6 - x * x - y * y - z * z - w * w; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; var cell1 = cell[3]; flixel_addons_util_FlxSimplex.A2[cell1]++; var out3; if(t < 0) { out3 = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x = 0; } else if(b2) { x = -x; } if(!b4) { if(b3) { y = 0; } else if(b2) { y = -y; } } else if(b1) { y = -y; } if(b4) { if(!b3) { z = 0; } else if(b0) { z = -z; } } else if(b1) { z = -z; } if(b4 && b3) { w = 0; } else if(b0) { w = -w; } out3 = t * t * (x + y + z + w); } var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t = .6 - x * x - y * y - z * z - w * w; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; flixel_addons_util_FlxSimplex.A2[0]++; var out4; if(t < 0) { out4 = 0; } else { t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x = 0; } else if(b2) { x = -x; } if(!b4) { if(b3) { y = 0; } else if(b2) { y = -y; } } else if(b1) { y = -y; } if(b4) { if(!b3) { z = 0; } else if(b0) { z = -z; } } else if(b1) { z = -z; } if(b4 && b3) { w = 0; } else if(b0) { w = -w; } out4 = t * t * (x + y + z + w); } var out5 = 27 * (out + out1 + out2 + out3 + out4); if(out5 < -1) { return -1; } if(out5 > 1) { return 1; } return out5; }; flixel_addons_util_FlxSimplex.getCornerNoise4D = function(a) { var s = (flixel_addons_util_FlxSimplex.A2[0] + flixel_addons_util_FlxSimplex.A2[1] + flixel_addons_util_FlxSimplex.A2[2] + flixel_addons_util_FlxSimplex.A2[3]) * 0.138196601; var x = flixel_addons_util_FlxSimplex.x0 - flixel_addons_util_FlxSimplex.A2[0] + s; var y = flixel_addons_util_FlxSimplex.y0 - flixel_addons_util_FlxSimplex.A2[1] + s; var z = flixel_addons_util_FlxSimplex.z0 - flixel_addons_util_FlxSimplex.A2[2] + s; var w = flixel_addons_util_FlxSimplex.w0 - flixel_addons_util_FlxSimplex.A2[3] + s; var t = .6 - x * x - y * y - z * z - w * w; var a2x = flixel_addons_util_FlxSimplex.A2[0]; var a2y = flixel_addons_util_FlxSimplex.A2[1]; var a2z = flixel_addons_util_FlxSimplex.A2[2]; var a2w = flixel_addons_util_FlxSimplex.A2[3]; flixel_addons_util_FlxSimplex.A2[a]++; if(t < 0) { return 0; } t *= t; var h = flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.i + a2x + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.j + a2y + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.k + a2z + flixel_addons_util_FlxSimplex.p[flixel_addons_util_FlxSimplex.l + a2w]]]] % 32; var b4 = (h >> 4 & 1) == 1; var b3 = (h >> 3 & 1) == 1; var b2 = (h >> 2 & 1) == 1; var b1 = (h >> 1 & 1) == 1; var b0 = (h & 1) == 1; if(!b3) { x = 0; } else if(b2) { x = -x; } if(!b4) { if(b3) { y = 0; } else if(b2) { y = -y; } } else if(b1) { y = -y; } if(b4) { if(!b3) { z = 0; } else if(b0) { z = -z; } } else if(b1) { z = -z; } if(b4 && b3) { w = 0; } else if(b0) { w = -w; } return t * t * (x + y + z + w); }; var flixel_addons_util__$FlxSimplex_SimplexCell = {}; flixel_addons_util__$FlxSimplex_SimplexCell.__properties__ = {set_w:"set_w",get_w:"get_w",set_z:"set_z",get_z:"get_z",set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x"}; flixel_addons_util__$FlxSimplex_SimplexCell.get_x = function(this1) { return this1[0]; }; flixel_addons_util__$FlxSimplex_SimplexCell.set_x = function(this1,i) { return this1[0] = i; }; flixel_addons_util__$FlxSimplex_SimplexCell.get_y = function(this1) { return this1[1]; }; flixel_addons_util__$FlxSimplex_SimplexCell.set_y = function(this1,i) { return this1[1] = i; }; flixel_addons_util__$FlxSimplex_SimplexCell.get_z = function(this1) { return this1[2]; }; flixel_addons_util__$FlxSimplex_SimplexCell.set_z = function(this1,i) { return this1[2] = i; }; flixel_addons_util__$FlxSimplex_SimplexCell.get_w = function(this1) { return this1[3]; }; flixel_addons_util__$FlxSimplex_SimplexCell.set_w = function(this1,i) { return this1[3] = i; }; flixel_addons_util__$FlxSimplex_SimplexCell._new = function(ab) { return ab; }; var flixel_addons_weapon_FlxBullet = function() { this.accelerates = false; flixel_FlxSprite.call(this,0,0); this.set_exists(false); }; $hxClasses["flixel.addons.weapon.FlxBullet"] = flixel_addons_weapon_FlxBullet; flixel_addons_weapon_FlxBullet.__name__ = "flixel.addons.weapon.FlxBullet"; flixel_addons_weapon_FlxBullet.__super__ = flixel_FlxSprite; flixel_addons_weapon_FlxBullet.prototype = $extend(flixel_FlxSprite.prototype,{ accelerates: null ,xAcceleration: null ,yAcceleration: null ,lifespan: null ,bounds: null ,update: function(elapsed) { if(this.lifespan > 0) { this.lifespan -= elapsed; if(this.lifespan <= 0) { this.kill(); } } if(!flixel_math_FlxMath.pointInFlxRect(Math.floor(this.x),Math.floor(this.y),this.bounds)) { this.kill(); } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,__class__: flixel_addons_weapon_FlxBullet }); var flixel_addons_weapon_FlxTypedWeapon = function(name,bulletFactory,fireFrom,speedMode) { this.angleOffset = 0; this.lastFired = 0; this.rotateBulletTowardsTarget = false; this.bulletElasticity = 0; this.fireRate = 0; this.nextFire = 0; this.group = new flixel_group_FlxTypedGroup(); var X = 0; var Y = 0; var Width = flixel_FlxG.width; var Height = flixel_FlxG.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.bounds = rect; this.bulletLifeSpan = new flixel_util_helpers_FlxBounds(0.0,0); this.name = name; this.bulletFactory = bulletFactory; if(fireFrom._hx_index == 0) { var _g = fireFrom.offset; var _g = fireFrom.useParentAngle; var parent = fireFrom.parent; var angleOffset = fireFrom.angleOffset; this.parent = parent; if(angleOffset != null) { this.angleOffset = angleOffset; } } else { this.parent = null; } this.fireFrom = fireFrom; this.speedMode = speedMode; }; $hxClasses["flixel.addons.weapon.FlxTypedWeapon"] = flixel_addons_weapon_FlxTypedWeapon; flixel_addons_weapon_FlxTypedWeapon.__name__ = "flixel.addons.weapon.FlxTypedWeapon"; flixel_addons_weapon_FlxTypedWeapon.prototype = { name: null ,group: null ,nextFire: null ,fireRate: null ,bounds: null ,parent: null ,useParentDirection: null ,firePosition: null ,positionOffset: null ,fireFrom: null ,speedMode: null ,bulletLifeSpan: null ,bulletElasticity: null ,rotateBulletTowardsTarget: null ,currentBullet: null ,onPreFireCallback: null ,onPostFireCallback: null ,onPreFireSound: null ,onPostFireSound: null ,bulletFactory: null ,lastFired: null ,skipParentCollision: null ,angleOffset: null ,runFire: function(Mode) { if(this.fireRate > 0 && flixel_FlxG.game.ticks < this.nextFire) { return false; } if(this.onPreFireCallback != null) { this.onPreFireCallback(); } if(this.onPreFireSound != null) { this.onPreFireSound.play(); } this.lastFired = flixel_FlxG.game.ticks; this.nextFire = flixel_FlxG.game.ticks + (this.fireRate / flixel_FlxG.timeScale | 0); var _g = this.bulletFactory; var a1 = this; var tmp = function() { return _g(a1); }; this.currentBullet = this.group.recycle(null,tmp); if(this.currentBullet == null) { return false; } this.currentBullet.velocity.set_x(0); this.currentBullet.velocity.set_y(0); var _g1 = this.fireFrom; switch(_g1._hx_index) { case 0: var parent = _g1.parent; var offset = _g1.offset; var useParentDirection = _g1.useParentAngle; var angleOffset = _g1.angleOffset; var x = flixel_FlxG.random.float(offset.min.x,offset.max.x); var y = flixel_FlxG.random.float(offset.min.y,offset.max.y); if(y == null) { y = 0; } if(x == null) { x = 0; } var actualOffset = new flixel_math_FlxBasePoint(x,y); if(useParentDirection) { actualOffset = this.rotatePoints(actualOffset,parent.origin,parent.angle); var x = this.currentBullet.get_width() / 2; var y = this.currentBullet.get_height() / 2; if(y == null) { y = 0; } if(x == null) { x = 0; } actualOffset.set_x(actualOffset.x - x); actualOffset.set_y(actualOffset.y - y); var x = parent.offset.x; var y = parent.offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } actualOffset.set_x(actualOffset.x - x); actualOffset.set_y(actualOffset.y - y); } this.currentBullet.last.set_x(this.currentBullet.set_x(parent.x + actualOffset.x)); this.currentBullet.last.set_y(this.currentBullet.set_y(parent.y + actualOffset.y)); break; case 1: var position = _g1.position; this.currentBullet.last.set_x(this.currentBullet.set_x(flixel_FlxG.random.float(position.min.x,position.max.x))); this.currentBullet.last.set_y(this.currentBullet.set_y(flixel_FlxG.random.float(position.min.y,position.max.y))); break; } this.currentBullet.set_exists(true); this.currentBullet.bounds = this.bounds; this.currentBullet.elasticity = this.bulletElasticity; this.currentBullet.lifespan = flixel_FlxG.random.float(this.bulletLifeSpan.min,this.bulletLifeSpan.max); switch(Mode._hx_index) { case 0: var x = Mode.x; var y = Mode.y; var tmp = this.currentBullet; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; this.internalFireAtPoint(tmp,point1); break; case 1: var target = Mode.target; var tmp = this.currentBullet; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; this.internalFireAtPoint(tmp,target.getPosition(point1)); break; case 2: var angle = Mode.angle; this.internalFireFromAngle(this.currentBullet,flixel_FlxG.random.float(angle.min,angle.max)); break; case 3: var angle = Mode.angleNoise; this.internalFireFromAngle(this.currentBullet,this.parent.angle + flixel_FlxG.random.float(angle.min,angle.max)); break; case 4: var angle = Mode.angleNoise; this.internalFireFromAngle(this.currentBullet,flixel_util_FlxDirectionFlags.get_degrees(this.parent.facing) + flixel_FlxG.random.float(angle.min,angle.max)); break; case 5: var touch = Mode.touch; var tmp = this.currentBullet; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; this.internalFireAtPoint(tmp,touch.getPosition(point1)); break; case 6: var tmp = this.currentBullet; var tmp1 = flixel_FlxG.mouse; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; this.internalFireAtPoint(tmp,tmp1.getPosition(point1)); break; } if(this.currentBullet.animation._animations.h["fire"] != null) { this.currentBullet.animation.play("fire"); } if(this.onPostFireCallback != null) { this.onPostFireCallback(); } if(this.onPostFireSound != null) { this.onPostFireSound.play(); } return true; } ,rotatePoints: function(point,origin,angle) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point1._inPool = false; var point2 = point1; point2._weak = true; var returnedPoint = point2; var x = point.x - origin.x; var y = point.y - origin.y; var asDegrees = true; if(asDegrees == null) { asDegrees = false; } var inBetweenAngle = asDegrees ? Math.atan2(y,x) * (180 / Math.PI) : Math.atan2(y,x); inBetweenAngle = angle + inBetweenAngle; var inBetweenDistance = flixel_math_FlxPoint.distanceTo(origin,point); returnedPoint.set_x(Math.cos(inBetweenAngle * Math.PI / 180) * inBetweenDistance); returnedPoint.set_y(Math.sin(inBetweenAngle * Math.PI / 180) * inBetweenDistance); var x = origin.x; var y = origin.y; if(y == null) { y = 0; } if(x == null) { x = 0; } returnedPoint.set_x(returnedPoint.x + x); returnedPoint.set_y(returnedPoint.y + y); return returnedPoint; } ,fireFromParentFacing: function(angleNoise) { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_FROM_PARENT_FACING(angleNoise)); } ,fireAtMouse: function() { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_MOUSE); } ,fireAtTouch: function(Touch1) { var touch = Touch1 == null ? flixel_FlxG.touches.getFirst() : Touch1; if(touch != null) { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_TOUCH(touch)); } else { return false; } } ,fireAtPosition: function(X,Y) { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_POSITION(X,Y)); } ,fireAtTarget: function(Target) { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_TARGET(Target)); } ,fireFromAngle: function(angle) { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_FROM_ANGLE(angle)); } ,fireFromParentAngle: function(angle) { return this.runFire(flixel_addons_weapon_FlxWeaponFireMode.FIRE_FROM_PARENT_ANGLE(angle)); } ,setPreFireCallback: function(Callback,Sound) { this.onPreFireCallback = Callback; this.onPreFireSound = Sound; } ,setPostFireCallback: function(Callback,Sound) { this.onPostFireCallback = Callback; this.onPostFireSound = Sound; } ,bulletsOverlap: function(ObjectOrGroup,NotifyCallBack,SkipParent) { if(SkipParent == null) { SkipParent = true; } if(this.group != null && this.group.length > 0) { this.skipParentCollision = SkipParent; flixel_FlxG.overlap(ObjectOrGroup,this.group,NotifyCallBack != null ? NotifyCallBack : $bind(this,this.onBulletHit),$bind(this,this.shouldBulletHit)); } } ,shouldBulletHit: function(Object1,Bullet) { if(this.parent == Object1 && this.skipParentCollision) { return false; } if(((Object1) instanceof flixel_tile_FlxTilemap)) { return (js_Boot.__cast(Object1 , flixel_tile_FlxTilemap)).overlapsWithCallback(Bullet); } else { return true; } } ,onBulletHit: function(Object1,Bullet) { Bullet.kill(); } ,internalFireAtPoint: function(bullet,point) { var _g = this.speedMode; switch(_g._hx_index) { case 0: var speed = _g.speed; flixel_math_FlxVelocity.moveTowardsPoint(bullet,point,flixel_FlxG.random.float(speed.min,speed.max)); break; case 1: var acceleration = _g.acceleration; var maxSpeed = _g.maxSpeed; flixel_math_FlxVelocity.accelerateTowardsPoint(bullet,point,flixel_FlxG.random.float(acceleration.min,acceleration.max),flixel_FlxG.random.float(maxSpeed.min,maxSpeed.max)); break; } if(this.rotateBulletTowardsTarget) { bullet.set_angle(this.angleOffset + flixel_math_FlxAngle.angleBetweenPoint(bullet,point,true)); } if(point._weak) { point.put(); } } ,internalFireFromAngle: function(bullet,degrees) { var radians = degrees * (Math.PI / 180); var _g = this.speedMode; switch(_g._hx_index) { case 0: var speed = _g.speed; var Angle = radians * (180 / Math.PI); var Speed = flixel_FlxG.random.float(speed.min,speed.max); var a = Angle * (Math.PI / 180); var x = Math.cos(a) * Speed; var y = Math.sin(a) * Speed; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var velocity = point; bullet.velocity.set_x(velocity.x); bullet.velocity.set_y(velocity.y); break; case 1: var acceleration = _g.acceleration; var maxSpeed = _g.maxSpeed; var acceleration1 = flixel_FlxG.random.float(acceleration.min,acceleration.max); var maxSpeed1 = flixel_FlxG.random.float(maxSpeed.min,maxSpeed.max); var sinA = Math.sin(radians); var cosA = Math.cos(radians); var this1 = bullet.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = bullet.acceleration; var x = cosA * acceleration1; var y = sinA * acceleration1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = bullet.maxVelocity; var x = Math.abs(cosA * maxSpeed1); var y = Math.abs(sinA * maxSpeed1); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); break; } if(this.rotateBulletTowardsTarget) { bullet.set_angle(this.angleOffset + radians * (180 / Math.PI)); } } ,set_fireFrom: function(v) { if(v._hx_index == 0) { var _g = v.offset; var _g = v.useParentAngle; var parent = v.parent; var angleOffset = v.angleOffset; this.parent = parent; if(angleOffset != null) { this.angleOffset = angleOffset; } } else { this.parent = null; } return this.fireFrom = v; } ,__class__: flixel_addons_weapon_FlxTypedWeapon ,__properties__: {set_fireFrom:"set_fireFrom"} }; var flixel_addons_weapon_FlxWeaponFireFrom = $hxEnums["flixel.addons.weapon.FlxWeaponFireFrom"] = { __ename__:"flixel.addons.weapon.FlxWeaponFireFrom",__constructs__:null ,PARENT: ($_=function(parent,offset,useParentAngle,angleOffset) { return {_hx_index:0,parent:parent,offset:offset,useParentAngle:useParentAngle,angleOffset:angleOffset,__enum__:"flixel.addons.weapon.FlxWeaponFireFrom",toString:$estr}; },$_._hx_name="PARENT",$_.__params__ = ["parent","offset","useParentAngle","angleOffset"],$_) ,POSITION: ($_=function(position) { return {_hx_index:1,position:position,__enum__:"flixel.addons.weapon.FlxWeaponFireFrom",toString:$estr}; },$_._hx_name="POSITION",$_.__params__ = ["position"],$_) }; flixel_addons_weapon_FlxWeaponFireFrom.__constructs__ = [flixel_addons_weapon_FlxWeaponFireFrom.PARENT,flixel_addons_weapon_FlxWeaponFireFrom.POSITION]; flixel_addons_weapon_FlxWeaponFireFrom.__empty_constructs__ = []; var flixel_addons_weapon_FlxWeaponFireMode = $hxEnums["flixel.addons.weapon.FlxWeaponFireMode"] = { __ename__:"flixel.addons.weapon.FlxWeaponFireMode",__constructs__:null ,FIRE_AT_POSITION: ($_=function(x,y) { return {_hx_index:0,x:x,y:y,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr}; },$_._hx_name="FIRE_AT_POSITION",$_.__params__ = ["x","y"],$_) ,FIRE_AT_TARGET: ($_=function(target) { return {_hx_index:1,target:target,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr}; },$_._hx_name="FIRE_AT_TARGET",$_.__params__ = ["target"],$_) ,FIRE_FROM_ANGLE: ($_=function(angle) { return {_hx_index:2,angle:angle,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr}; },$_._hx_name="FIRE_FROM_ANGLE",$_.__params__ = ["angle"],$_) ,FIRE_FROM_PARENT_ANGLE: ($_=function(angleNoise) { return {_hx_index:3,angleNoise:angleNoise,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr}; },$_._hx_name="FIRE_FROM_PARENT_ANGLE",$_.__params__ = ["angleNoise"],$_) ,FIRE_FROM_PARENT_FACING: ($_=function(angleNoise) { return {_hx_index:4,angleNoise:angleNoise,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr}; },$_._hx_name="FIRE_FROM_PARENT_FACING",$_.__params__ = ["angleNoise"],$_) ,FIRE_AT_TOUCH: ($_=function(touch) { return {_hx_index:5,touch:touch,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr}; },$_._hx_name="FIRE_AT_TOUCH",$_.__params__ = ["touch"],$_) ,FIRE_AT_MOUSE: {_hx_name:"FIRE_AT_MOUSE",_hx_index:6,__enum__:"flixel.addons.weapon.FlxWeaponFireMode",toString:$estr} }; flixel_addons_weapon_FlxWeaponFireMode.__constructs__ = [flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_POSITION,flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_TARGET,flixel_addons_weapon_FlxWeaponFireMode.FIRE_FROM_ANGLE,flixel_addons_weapon_FlxWeaponFireMode.FIRE_FROM_PARENT_ANGLE,flixel_addons_weapon_FlxWeaponFireMode.FIRE_FROM_PARENT_FACING,flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_TOUCH,flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_MOUSE]; flixel_addons_weapon_FlxWeaponFireMode.__empty_constructs__ = [flixel_addons_weapon_FlxWeaponFireMode.FIRE_AT_MOUSE]; var flixel_addons_weapon_FlxWeaponSpeedMode = $hxEnums["flixel.addons.weapon.FlxWeaponSpeedMode"] = { __ename__:"flixel.addons.weapon.FlxWeaponSpeedMode",__constructs__:null ,SPEED: ($_=function(speed) { return {_hx_index:0,speed:speed,__enum__:"flixel.addons.weapon.FlxWeaponSpeedMode",toString:$estr}; },$_._hx_name="SPEED",$_.__params__ = ["speed"],$_) ,ACCELERATION: ($_=function(acceleration,maxSpeed) { return {_hx_index:1,acceleration:acceleration,maxSpeed:maxSpeed,__enum__:"flixel.addons.weapon.FlxWeaponSpeedMode",toString:$estr}; },$_._hx_name="ACCELERATION",$_.__params__ = ["acceleration","maxSpeed"],$_) }; flixel_addons_weapon_FlxWeaponSpeedMode.__constructs__ = [flixel_addons_weapon_FlxWeaponSpeedMode.SPEED,flixel_addons_weapon_FlxWeaponSpeedMode.ACCELERATION]; flixel_addons_weapon_FlxWeaponSpeedMode.__empty_constructs__ = []; var flixel_animation_FlxBaseAnimation = function(Parent,Name) { this.curIndex = 0; this.parent = Parent; this.name = Name; }; $hxClasses["flixel.animation.FlxBaseAnimation"] = flixel_animation_FlxBaseAnimation; flixel_animation_FlxBaseAnimation.__name__ = "flixel.animation.FlxBaseAnimation"; flixel_animation_FlxBaseAnimation.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_animation_FlxBaseAnimation.prototype = { parent: null ,name: null ,curIndex: null ,set_curIndex: function(Value) { this.curIndex = Value; if(this.parent != null && this.parent._curAnim == this) { this.parent.set_frameIndex(Value); } return Value; } ,destroy: function() { this.parent = null; this.name = null; } ,update: function(elapsed) { } ,clone: function(Parent) { return null; } ,__class__: flixel_animation_FlxBaseAnimation ,__properties__: {set_curIndex:"set_curIndex"} }; var flixel_animation_FlxAnimation = function(parent,name,frames,frameRate,looped,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(looped == null) { looped = true; } if(frameRate == null) { frameRate = 0.0; } this._frameTimer = 0; this.timeScale = 1.0; this.flipY = false; this.flipX = false; this.reversed = false; this.loopPoint = 0; this.looped = true; this.paused = true; this.finished = true; this.frameDuration = 0; this.curFrame = 0; flixel_animation_FlxBaseAnimation.call(this,parent,name); this.set_frameRate(frameRate); this.frames = frames; this.looped = looped; this.flipX = flipX; this.flipY = flipY; }; $hxClasses["flixel.animation.FlxAnimation"] = flixel_animation_FlxAnimation; flixel_animation_FlxAnimation.__name__ = "flixel.animation.FlxAnimation"; flixel_animation_FlxAnimation.__super__ = flixel_animation_FlxBaseAnimation; flixel_animation_FlxAnimation.prototype = $extend(flixel_animation_FlxBaseAnimation.prototype,{ frameRate: null ,curFrame: null ,frameDuration: null ,finished: null ,paused: null ,looped: null ,loopPoint: null ,reversed: null ,flipX: null ,flipY: null ,frames: null ,timeScale: null ,_frameTimer: null ,destroy: function() { this.frames = null; this.name = null; flixel_animation_FlxBaseAnimation.prototype.destroy.call(this); } ,play: function(Force,Reversed,Frame) { if(Frame == null) { Frame = 0; } if(Reversed == null) { Reversed = false; } if(Force == null) { Force = false; } if(!Force && !this.finished && this.reversed == Reversed) { this.paused = false; return; } this.reversed = Reversed; this.paused = false; this._frameTimer = 0; this.finished = this.frameDuration == 0; var maxFrameIndex = this.frames.length - 1; if(Frame < 0) { this.set_curFrame(flixel_FlxG.random.int(0,maxFrameIndex)); } else { if(Frame > maxFrameIndex) { Frame = maxFrameIndex; } if(this.reversed) { Frame = maxFrameIndex - Frame; } this.set_curFrame(Frame); } if(this.finished) { var _this = this.parent; if(_this.finishCallback != null) { _this.finishCallback(this.name); } } } ,restart: function() { this.play(true,this.reversed); } ,stop: function() { this.finished = true; this.paused = true; } ,reset: function() { this.stop(); this.set_curFrame(this.reversed ? this.frames.length - 1 : 0); } ,finish: function() { this.stop(); this.set_curFrame(this.reversed ? 0 : this.frames.length - 1); } ,pause: function() { this.paused = true; } ,resume: function() { this.paused = false; } ,reverse: function() { this.reversed = !this.reversed; if(this.finished) { this.play(false,this.reversed); } } ,update: function(elapsed) { var curFrameDuration = this.getCurrentFrameDuration(); if(curFrameDuration == 0 || this.finished || this.paused) { return; } this._frameTimer += elapsed * this.timeScale; while(this._frameTimer > curFrameDuration && !this.finished) { this._frameTimer -= curFrameDuration; if(this.reversed) { if(this.looped && this.curFrame == this.loopPoint) { this.set_curFrame(this.frames.length - 1); } else { this.set_curFrame(this.curFrame - 1); } } else if(this.looped && this.curFrame == this.frames.length - 1) { this.set_curFrame(this.loopPoint); } else { this.set_curFrame(this.curFrame + 1); } if(this.finished) { break; } curFrameDuration = this.getCurrentFrameDuration(); } } ,getCurrentFrameDuration: function() { var curframeDuration = this.parent.getFrameDuration(this.frames[this.curFrame]); if(curframeDuration > 0) { return curframeDuration; } else { return this.frameDuration; } } ,clone: function(newParent) { return new flixel_animation_FlxAnimation(newParent,this.name,this.frames,this.frameRate,this.looped,this.flipX,this.flipY); } ,set_frameRate: function(value) { this.frameRate = value; this.frameDuration = value > 0 ? 1.0 / value : 0; return value; } ,set_curFrame: function(frame) { var maxFrameIndex = this.frames.length - 1; var tempFrame = this.reversed ? maxFrameIndex - frame : frame; if(tempFrame >= 0) { if(!this.looped && tempFrame > maxFrameIndex) { this.finished = true; this.curFrame = this.reversed ? 0 : maxFrameIndex; } else { this.curFrame = frame; } } else { this.curFrame = flixel_FlxG.random.int(0,maxFrameIndex); } this.set_curIndex(this.frames[this.curFrame]); if(this.finished && this.parent != null) { var _this = this.parent; if(_this.finishCallback != null) { _this.finishCallback(this.name); } } return frame; } ,get_numFrames: function() { return this.frames.length; } ,get_delay: function() { return this.frameDuration; } ,set_delay: function(value) { return this.frameDuration = value; } ,__class__: flixel_animation_FlxAnimation ,__properties__: $extend(flixel_animation_FlxBaseAnimation.prototype.__properties__,{set_delay:"set_delay",get_delay:"get_delay",get_numFrames:"get_numFrames",set_curFrame:"set_curFrame",set_frameRate:"set_frameRate"}) }); var flixel_animation_FlxAnimationController = function(sprite) { this._animations = new haxe_ds_StringMap(); this.timeScale = 1.0; this.frameIndex = -1; this._sprite = sprite; }; $hxClasses["flixel.animation.FlxAnimationController"] = flixel_animation_FlxAnimationController; flixel_animation_FlxAnimationController.__name__ = "flixel.animation.FlxAnimationController"; flixel_animation_FlxAnimationController.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_animation_FlxAnimationController.prototype = { frameIndex: null ,callback: null ,finishCallback: null ,timeScale: null ,_sprite: null ,_curAnim: null ,_animations: null ,_prerotated: null ,update: function(elapsed) { if(this._curAnim != null) { this._curAnim.update(elapsed * (this.timeScale * flixel_FlxG.animationTimeScale)); } else if(this._prerotated != null) { this._prerotated.set_angle(this._sprite.angle); } } ,copyFrom: function(controller) { this.destroyAnimations(); var h = controller._animations.h; var anim_h = h; var anim_keys = Object.keys(h); var anim_length = anim_keys.length; var anim_current = 0; while(anim_current < anim_length) { var anim = anim_h[anim_keys[anim_current++]]; this.add(anim.name,anim.frames,anim.frameRate,anim.looped,anim.flipX,anim.flipY); } if(controller._prerotated != null) { this.createPrerotated(); } if(controller.get_name() != null) { this.set_name(controller.get_name()); } this.set_frameIndex(controller.frameIndex); return this; } ,createPrerotated: function(Controller) { this.destroyAnimations(); if(Controller == null) { Controller = this; } this._prerotated = new flixel_animation_FlxPrerotatedAnimation(Controller,Controller._sprite.bakedRotationAngle); this._prerotated.set_angle(this._sprite.angle); } ,destroyAnimations: function() { this.clearAnimations(); this.clearPrerotated(); } ,destroy: function() { this.destroyAnimations(); this._animations = null; this.callback = null; this._sprite = null; } ,getFrameDuration: function(index) { return this._sprite.frames.frames[index].duration; } ,clearPrerotated: function() { if(this._prerotated != null) { this._prerotated.destroy(); } this._prerotated = null; } ,clearAnimations: function() { if(this._animations != null) { var anim; var h = this._animations.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; anim = this._animations.h[key]; if(anim != null) { anim.destroy(); } } } this._animations = new haxe_ds_StringMap(); this._curAnim = null; } ,add: function(name,frames,frameRate,looped,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(looped == null) { looped = true; } if(frameRate == null) { frameRate = 30.0; } if(this._sprite.get_numFrames() == 0) { flixel_FlxG.log.advanced("Could not create animation: \"" + name + "\", this sprite has no frames",flixel_system_debug_log_LogStyle.WARNING,true); return; } var framesToAdd = frames; var hasInvalidFrames = false; var i = framesToAdd.length; while(i-- >= 0) { var frame = framesToAdd[i]; if(frame >= this._sprite.get_numFrames()) { hasInvalidFrames = true; if(framesToAdd == frames) { framesToAdd = frames.slice(); } framesToAdd.splice(i,1); } } if(framesToAdd.length > 0) { var anim = new flixel_animation_FlxAnimation(this,name,framesToAdd,frameRate,looped,flipX,flipY); this._animations.h[name] = anim; if(hasInvalidFrames) { flixel_FlxG.log.advanced("Could not add frames above " + (this._sprite.get_numFrames() - 1) + " to animation: \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } else { flixel_FlxG.log.advanced("Could not create animation: \"" + name + "\", no valid frames were given",flixel_system_debug_log_LogStyle.WARNING,true); } } ,remove: function(Name) { var anim = this._animations.h[Name]; if(anim != null) { var _this = this._animations; if(Object.prototype.hasOwnProperty.call(_this.h,Name)) { delete(_this.h[Name]); } anim.destroy(); } } ,append: function(name,frames) { var anim = this._animations.h[name]; if(anim == null) { flixel_FlxG.log.advanced("No animation called \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } var hasInvalidFrames = false; var _g = 0; while(_g < frames.length) { var frame = frames[_g]; ++_g; if(frame < this._sprite.get_numFrames()) { anim.frames.push(frame); } else { hasInvalidFrames = true; } } if(hasInvalidFrames) { flixel_FlxG.log.advanced("Could not append frames above " + (this._sprite.get_numFrames() - 1) + " to animation: \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } ,addByNames: function(Name,FrameNames,FrameRate,Looped,FlipX,FlipY) { if(FlipY == null) { FlipY = false; } if(FlipX == null) { FlipX = false; } if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 30; } if(this._sprite.frames != null) { var indices = []; this.byNamesHelper(indices,FrameNames); if(indices.length > 0) { var anim = new flixel_animation_FlxAnimation(this,Name,indices,FrameRate,Looped,FlipX,FlipY); this._animations.h[Name] = anim; } } } ,appendByNames: function(name,frameNames) { var anim = this._animations.h[name]; if(anim == null) { flixel_FlxG.log.advanced("No animation called \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } if(this._sprite.frames != null) { this.byNamesHelper(anim.frames,frameNames); } } ,addByStringIndices: function(Name,Prefix,Indices,Postfix,FrameRate,Looped,FlipX,FlipY) { if(FlipY == null) { FlipY = false; } if(FlipX == null) { FlipX = false; } if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 30; } if(this._sprite.frames != null) { var frameIndices = []; this.byStringIndicesHelper(frameIndices,Prefix,Indices,Postfix); if(frameIndices.length > 0) { var anim = new flixel_animation_FlxAnimation(this,Name,frameIndices,FrameRate,Looped,FlipX,FlipY); this._animations.h[Name] = anim; } } } ,appendByStringIndices: function(name,prefix,indices,suffix) { var anim = this._animations.h[name]; if(anim == null) { flixel_FlxG.log.advanced("No animation called \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } if(this._sprite.frames != null) { this.byStringIndicesHelper(anim.frames,prefix,indices,suffix); } } ,addByIndices: function(Name,Prefix,Indices,Postfix,FrameRate,Looped,FlipX,FlipY) { if(FlipY == null) { FlipY = false; } if(FlipX == null) { FlipX = false; } if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 30; } if(this._sprite.frames != null) { var frameIndices = []; this.byIndicesHelper(frameIndices,Prefix,Indices,Postfix); if(frameIndices.length > 0) { var anim = new flixel_animation_FlxAnimation(this,Name,frameIndices,FrameRate,Looped,FlipX,FlipY); this._animations.h[Name] = anim; } } } ,appendByIndices: function(name,prefix,indices,suffix) { var anim = this._animations.h[name]; if(anim == null) { flixel_FlxG.log.advanced("No animation called \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } if(this._sprite.frames != null) { this.byIndicesHelper(anim.frames,prefix,indices,suffix); } } ,findSpriteFrame: function(prefix,index,postfix) { var frames = this._sprite.frames.frames; var _g = 0; var _g1 = frames.length; while(_g < _g1) { var i = _g++; var frame = frames[i]; var name = frame.name; if(StringTools.startsWith(name,prefix) && StringTools.endsWith(name,postfix)) { var frameIndex = Std.parseInt(name.substring(prefix.length,name.length - postfix.length)); if(frameIndex == index) { return i; } } } return -1; } ,addByPrefix: function(name,prefix,frameRate,looped,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(looped == null) { looped = true; } if(frameRate == null) { frameRate = 30.0; } if(this._sprite.frames != null) { var animFrames = []; this.findByPrefix(animFrames,prefix); if(animFrames.length > 0) { var frameIndices = []; this.byPrefixHelper(frameIndices,animFrames,prefix); var anim = new flixel_animation_FlxAnimation(this,name,frameIndices,frameRate,looped,flipX,flipY); this._animations.h[name] = anim; } else { flixel_FlxG.log.advanced("Could not create animation: \"" + name + "\", no frames were found with the prefix \"" + prefix + "\" ",flixel_system_debug_log_LogStyle.WARNING,true); } } } ,appendByPrefix: function(name,prefix) { var anim = this._animations.h[name]; if(anim == null) { flixel_FlxG.log.advanced("No animation called \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } if(this._sprite.frames != null) { var animFrames = []; this.findByPrefix(animFrames,prefix); if(animFrames.length > 0) { this.byPrefixHelper(anim.frames,animFrames,prefix); } else { flixel_FlxG.log.advanced("Could not append to animation: \"" + name + "\", no frames were found with the prefix: \"" + prefix + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } } ,play: function(animName,force,reversed,frame) { if(frame == null) { frame = 0; } if(reversed == null) { reversed = false; } if(force == null) { force = false; } if(animName == null) { if(this._curAnim != null) { this._curAnim.stop(); } this._curAnim = null; } if(animName == null || this._animations.h[animName] == null) { flixel_FlxG.log.advanced("No animation called \"" + animName + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } var oldFlipX = false; var oldFlipY = false; if(this._curAnim != null && animName != this._curAnim.name) { oldFlipX = this._curAnim.flipX; oldFlipY = this._curAnim.flipY; this._curAnim.stop(); } this._curAnim = this._animations.h[animName]; this._curAnim.play(force,reversed,frame); if(oldFlipX != this._curAnim.flipX || oldFlipY != this._curAnim.flipY) { this._sprite.dirty = true; } } ,reset: function() { if(this._curAnim != null) { this._curAnim.reset(); } } ,finish: function() { if(this._curAnim != null) { this._curAnim.finish(); } } ,stop: function() { if(this._curAnim != null) { this._curAnim.stop(); } } ,pause: function() { if(this._curAnim != null) { this._curAnim.pause(); } } ,resume: function() { if(this._curAnim != null) { this._curAnim.paused = false; } } ,reverse: function() { if(this._curAnim != null) { this._curAnim.reverse(); } } ,getByName: function(name) { return this._animations.h[name]; } ,randomFrame: function() { if(this._curAnim != null) { this._curAnim.stop(); this._curAnim = null; } this.set_frameIndex(flixel_FlxG.random.int(0,this._sprite.get_numFrames() - 1)); } ,fireCallback: function() { if(this.callback != null) { var name = this._curAnim != null ? this._curAnim.name : null; var number = this._curAnim != null ? this._curAnim.curFrame : this.frameIndex; this.callback(name,number,this.frameIndex); } } ,fireFinishCallback: function(name) { if(this.finishCallback != null) { this.finishCallback(name); } } ,byNamesHelper: function(addTo,frameNames) { var _g = 0; while(_g < frameNames.length) { var frameName = frameNames[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(this._sprite.frames.framesByName.h,frameName)) { var frameToAdd = this._sprite.frames.framesByName.h[frameName]; addTo.push(this._sprite.frames.frames.indexOf(frameToAdd)); } } } ,byStringIndicesHelper: function(addTo,prefix,indices,suffix) { var _g = 0; while(_g < indices.length) { var index = indices[_g]; ++_g; var name = prefix + index + suffix; if(Object.prototype.hasOwnProperty.call(this._sprite.frames.framesByName.h,name)) { var frameToAdd = this._sprite.frames.framesByName.h[name]; addTo.push(this._sprite.frames.frames.indexOf(frameToAdd)); } } } ,byIndicesHelper: function(addTo,prefix,indices,suffix) { var _g = 0; while(_g < indices.length) { var index = indices[_g]; ++_g; var indexToAdd = this.findSpriteFrame(prefix,index,suffix); if(indexToAdd != -1) { addTo.push(indexToAdd); } } } ,byPrefixHelper: function(addTo,frames,prefix) { var name = frames[0].name; var postIndex = name.indexOf(".",prefix.length); var suffix = name.substring(postIndex == -1 ? name.length : postIndex,name.length); flixel_graphics_frames_FlxFrame.sortHelper(frames,prefix.length,suffix == null ? 0 : suffix.length,true); var _g = 0; while(_g < frames.length) { var frame = frames[_g]; ++_g; addTo.push(this._sprite.frames.frames.indexOf(frame)); } } ,findByPrefix: function(animFrames,prefix,logError) { if(logError == null) { logError = true; } var _g = 0; var _g1 = this._sprite.frames.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; if(frame.name != null && StringTools.startsWith(frame.name,prefix)) { animFrames.push(frame); } } var invalidFrames = this.removeInvalidFrames(animFrames); } ,removeInvalidFrames: function(frames) { var invalid = []; var i = frames.length; while(i-- > 0) { var frame = frames[i]; if(frame.parent.shader == null) { invalid.unshift(frames.splice(i,1)[0]); } } return invalid; } ,set_frameIndex: function(Frame) { if(this._sprite.frames != null && this._sprite.get_numFrames() > 0) { Frame %= this._sprite.get_numFrames(); this._sprite.set_frame(this._sprite.frames.frames[Frame]); this.frameIndex = Frame; if(this.callback != null) { var name = this._curAnim != null ? this._curAnim.name : null; var number = this._curAnim != null ? this._curAnim.curFrame : this.frameIndex; this.callback(name,number,this.frameIndex); } } return this.frameIndex; } ,get_frameName: function() { return this._sprite.frame.name; } ,set_frameName: function(Value) { if(this._sprite.frames != null && Object.prototype.hasOwnProperty.call(this._sprite.frames.framesByName.h,Value)) { if(this._curAnim != null) { this._curAnim.stop(); this._curAnim = null; } var frame = this._sprite.frames.framesByName.h[Value]; if(frame != null) { this.set_frameIndex(this._sprite.frames.frames.indexOf(frame)); } } return Value; } ,get_name: function() { var animName = null; if(this._curAnim != null) { animName = this._curAnim.name; } return animName; } ,set_name: function(AnimName) { this.play(AnimName); return AnimName; } ,getAnimationList: function() { var animList = []; var h = this._animations.h; var anims_h = h; var anims_keys = Object.keys(h); var anims_length = anims_keys.length; var anims_current = 0; while(anims_current < anims_length) { var anims = anims_h[anims_keys[anims_current++]]; animList.push(anims); } return animList; } ,getNameList: function() { var namesList = []; var h = this._animations.h; var names_h = h; var names_keys = Object.keys(h); var names_length = names_keys.length; var names_current = 0; while(names_current < names_length) { var names = names_keys[names_current++]; namesList.push(names); } return namesList; } ,exists: function(name) { return Object.prototype.hasOwnProperty.call(this._animations.h,name); } ,rename: function(oldName,newName) { var anim = this._animations.h[oldName]; if(anim == null) { flixel_FlxG.log.advanced("No animation called \"" + oldName + "\"",flixel_system_debug_log_LogStyle.WARNING,true); return; } this._animations.h[newName] = anim; anim.name = newName; var _this = this._animations; if(Object.prototype.hasOwnProperty.call(_this.h,oldName)) { delete(_this.h[oldName]); } } ,get_curAnim: function() { return this._curAnim; } ,set_curAnim: function(anim) { if(anim != this._curAnim) { if(this._curAnim != null) { this._curAnim.stop(); } if(anim != null) { anim.play(); } } return this._curAnim = anim; } ,get_paused: function() { var paused = false; if(this._curAnim != null) { paused = this._curAnim.paused; } return paused; } ,set_paused: function(value) { if(this._curAnim != null) { if(value) { this._curAnim.pause(); } else { this._curAnim.paused = false; } } return value; } ,get_finished: function() { var finished = true; if(this._curAnim != null) { finished = this._curAnim.finished; } return finished; } ,set_finished: function(value) { if(value && this._curAnim != null) { this._curAnim.finish(); } return value; } ,get_frames: function() { return this._sprite.get_numFrames(); } ,get_numFrames: function() { return this._sprite.get_numFrames(); } ,getFrameIndex: function(frame) { return this._sprite.frames.frames.indexOf(frame); } ,__class__: flixel_animation_FlxAnimationController ,__properties__: {get_frames:"get_frames",get_numFrames:"get_numFrames",set_finished:"set_finished",get_finished:"get_finished",set_paused:"set_paused",get_paused:"get_paused",set_name:"set_name",get_name:"get_name",set_frameName:"set_frameName",get_frameName:"get_frameName",set_frameIndex:"set_frameIndex",set_curAnim:"set_curAnim",get_curAnim:"get_curAnim"} }; var flixel_animation_FlxPrerotatedAnimation = function(Parent,Baked) { this.angle = 0; flixel_animation_FlxBaseAnimation.call(this,Parent,"prerotated_animation"); this.baked = Baked; this.rotations = Math.round(360 / Baked); }; $hxClasses["flixel.animation.FlxPrerotatedAnimation"] = flixel_animation_FlxPrerotatedAnimation; flixel_animation_FlxPrerotatedAnimation.__name__ = "flixel.animation.FlxPrerotatedAnimation"; flixel_animation_FlxPrerotatedAnimation.__super__ = flixel_animation_FlxBaseAnimation; flixel_animation_FlxPrerotatedAnimation.prototype = $extend(flixel_animation_FlxBaseAnimation.prototype,{ rotations: null ,baked: null ,angle: null ,set_angle: function(Value) { if(isNaN(Value)) { throw haxe_Exception.thrown("angle must not be NaN"); } var oldIndex = this.curIndex; var angleHelper = Math.floor(Value % 360); while(angleHelper < 0) angleHelper += 360; var newIndex = Math.floor(angleHelper / this.baked + 0.5); newIndex = newIndex % this.rotations | 0; if(oldIndex != newIndex) { this.set_curIndex(newIndex); } return this.angle = Value; } ,set_curIndex: function(Value) { this.curIndex = Value; if(this.parent != null) { this.parent.set_frameIndex(Value); } return Value; } ,clone: function(Parent) { return new flixel_animation_FlxPrerotatedAnimation(Parent,this.baked); } ,__class__: flixel_animation_FlxPrerotatedAnimation ,__properties__: $extend(flixel_animation_FlxBaseAnimation.prototype.__properties__,{set_angle:"set_angle"}) }); var flixel_effects_FlxFlicker = function() { }; $hxClasses["flixel.effects.FlxFlicker"] = flixel_effects_FlxFlicker; flixel_effects_FlxFlicker.__name__ = "flixel.effects.FlxFlicker"; flixel_effects_FlxFlicker.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_effects_FlxFlicker.flicker = function(Object1,Duration,Interval,EndVisibility,ForceRestart,CompletionCallback,ProgressCallback) { if(ForceRestart == null) { ForceRestart = true; } if(EndVisibility == null) { EndVisibility = true; } if(Interval == null) { Interval = 0.04; } if(Duration == null) { Duration = 1; } if(flixel_effects_FlxFlicker.isFlickering(Object1)) { if(ForceRestart) { flixel_effects_FlxFlicker.stopFlickering(Object1); } else { return flixel_effects_FlxFlicker._boundObjects.h[Object1.__id__]; } } if(Interval <= 0) { Interval = flixel_FlxG.elapsed; } var flicker = flixel_effects_FlxFlicker._pool.get(); flicker.start(Object1,Duration,Interval,EndVisibility,CompletionCallback,ProgressCallback); flixel_effects_FlxFlicker._boundObjects.set(Object1,flicker); return flicker; }; flixel_effects_FlxFlicker.isFlickering = function(Object1) { return flixel_effects_FlxFlicker._boundObjects.h.__keys__[Object1.__id__] != null; }; flixel_effects_FlxFlicker.stopFlickering = function(Object1) { var boundFlicker = flixel_effects_FlxFlicker._boundObjects.h[Object1.__id__]; if(boundFlicker != null) { boundFlicker.stop(); } }; flixel_effects_FlxFlicker.prototype = { object: null ,endVisibility: null ,timer: null ,completionCallback: null ,progressCallback: null ,duration: null ,interval: null ,destroy: function() { this.object = null; this.timer = null; this.completionCallback = null; this.progressCallback = null; } ,pause: function() { if(this.timer == null) { return; } this.timer.active = false; } ,resume: function() { if(this.timer == null) { return; } this.timer.active = true; } ,start: function(Object1,Duration,Interval,EndVisibility,CompletionCallback,ProgressCallback) { this.object = Object1; this.duration = Duration; this.interval = Interval; this.completionCallback = CompletionCallback; this.progressCallback = ProgressCallback; this.endVisibility = EndVisibility; this.timer = new flixel_util_FlxTimer().start(this.interval,$bind(this,this.flickerProgress),this.duration / this.interval | 0); } ,stop: function() { this.timer.cancel(); this.object.set_visible(true); this.release(); } ,release: function() { flixel_effects_FlxFlicker._boundObjects.remove(this.object); flixel_effects_FlxFlicker._pool.put(this); } ,flickerProgress: function(Timer) { this.object.set_visible(!this.object.visible); if(this.progressCallback != null) { this.progressCallback(this); } if(Timer.loops > 0 && Timer.loops - Timer._loopsCounter == 0) { this.object.set_visible(this.endVisibility); if(this.completionCallback != null) { this.completionCallback(this); } if(this.timer == Timer) { this.release(); } } } ,__class__: flixel_effects_FlxFlicker }; var flixel_effects_particles_FlxTypedEmitter = function(X,Y,Size) { if(Size == null) { Size = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._waitForKill = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._point = point; this._counter = 0; this._timer = 0; this._explode = true; this._quantity = 0; this.allowCollisions = 0; this.autoUpdateHitbox = false; this.immovable = false; this.elasticity = new flixel_util_helpers_FlxRangeBounds(0); this.acceleration = new flixel_util_helpers_FlxPointRangeBounds(0,0); this.drag = new flixel_util_helpers_FlxPointRangeBounds(0,0); this.color = new flixel_util_helpers_FlxRangeBounds(-1,-1); this.alpha = new flixel_util_helpers_FlxRangeBounds(1); this.scale = new flixel_util_helpers_FlxPointRangeBounds(1,1); this.lifespan = new flixel_util_helpers_FlxBounds(3); this.launchAngle = new flixel_util_helpers_FlxBounds(-180,180); this.ignoreAngularVelocity = false; this.angle = new flixel_util_helpers_FlxRangeBounds(0); this.angularVelocity = new flixel_util_helpers_FlxRangeBounds(0,0); this.angularDrag = new flixel_util_helpers_FlxRangeBounds(0,0); this.angularAcceleration = new flixel_util_helpers_FlxRangeBounds(0,0); this.speed = new flixel_util_helpers_FlxRangeBounds(0,100); this.velocity = new flixel_util_helpers_FlxPointRangeBounds(-100,-100,100,100); this.keepScaleRatio = false; this.launchMode = flixel_effects_particles_FlxEmitterMode.CIRCLE; this.height = 0; this.width = 0; this.y = 0; this.x = 0; this.frequency = 0.1; this.emitting = false; this.particleClass = flixel_effects_particles_FlxParticle; flixel_group_FlxTypedGroup.call(this,Size); var X1 = X; var Y1 = Y; if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } this.x = X1; this.y = Y1; this.set_exists(false); }; $hxClasses["flixel.effects.particles.FlxTypedEmitter"] = flixel_effects_particles_FlxTypedEmitter; flixel_effects_particles_FlxTypedEmitter.__name__ = "flixel.effects.particles.FlxTypedEmitter"; flixel_effects_particles_FlxTypedEmitter.__super__ = flixel_group_FlxTypedGroup; flixel_effects_particles_FlxTypedEmitter.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ particleClass: null ,emitting: null ,frequency: null ,blend: null ,x: null ,y: null ,width: null ,height: null ,launchMode: null ,keepScaleRatio: null ,velocity: null ,speed: null ,angularAcceleration: null ,angularDrag: null ,angularVelocity: null ,angle: null ,ignoreAngularVelocity: null ,launchAngle: null ,lifespan: null ,scale: null ,alpha: null ,color: null ,drag: null ,acceleration: null ,elasticity: null ,immovable: null ,autoUpdateHitbox: null ,allowCollisions: null ,_quantity: null ,_explode: null ,_timer: null ,_counter: null ,_point: null ,_waitForKill: null ,destroy: function() { this.velocity = flixel_util_FlxDestroyUtil.destroy(this.velocity); this.scale = flixel_util_FlxDestroyUtil.destroy(this.scale); this.drag = flixel_util_FlxDestroyUtil.destroy(this.drag); this.acceleration = flixel_util_FlxDestroyUtil.destroy(this.acceleration); this._point = flixel_util_FlxDestroyUtil.put(this._point); this.blend = null; this.angularAcceleration = null; this.angularDrag = null; this.angularVelocity = null; this.angle = null; this.speed = null; this.launchAngle = null; this.lifespan = null; this.alpha = null; this.color = null; this.elasticity = null; flixel_group_FlxTypedGroup.prototype.destroy.call(this); } ,loadParticles: function(Graphics,Quantity,bakedRotationAngles,Multiple,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(Multiple == null) { Multiple = false; } if(bakedRotationAngles == null) { bakedRotationAngles = 16; } if(Quantity == null) { Quantity = 50; } this.set_maxSize(Quantity); var totalFrames = 1; if(Multiple) { var sprite = new flixel_FlxSprite(); sprite.loadGraphic(Graphics,true); totalFrames = sprite.get_numFrames(); sprite.destroy(); } var _g = 0; var _g1 = Quantity; while(_g < _g1) { var i = _g++; this.add(this.loadParticle(Graphics,Quantity,bakedRotationAngles,Multiple,AutoBuffer,totalFrames)); } return this; } ,loadParticle: function(Graphics,Quantity,bakedRotationAngles,Multiple,AutoBuffer,totalFrames) { if(AutoBuffer == null) { AutoBuffer = false; } if(Multiple == null) { Multiple = false; } var particle = Type.createInstance(this.particleClass,[]); var frame = Multiple ? flixel_FlxG.random.int(0,totalFrames - 1) : -1; if(flixel_FlxG.renderBlit && bakedRotationAngles > 0) { particle.loadRotatedGraphic(Graphics,bakedRotationAngles,frame,false,AutoBuffer); } else { particle.loadGraphic(Graphics,Multiple); } if(Multiple) { particle.animation.set_frameIndex(frame); } return particle; } ,makeParticles: function(Width,Height,Color,Quantity) { if(Quantity == null) { Quantity = 50; } if(Color == null) { Color = -1; } if(Height == null) { Height = 2; } if(Width == null) { Width = 2; } this.set_maxSize(Quantity); var _g = 0; var _g1 = Quantity; while(_g < _g1) { var i = _g++; var particle = Type.createInstance(this.particleClass,[]); particle.makeGraphic(Width,Height,Color); this.add(particle); } return this; } ,update: function(elapsed) { if(this.emitting) { if(this._explode) { this.explode(); } else { this.emitContinuously(elapsed); } } else if(this._waitForKill) { this._timer += elapsed; if(this.lifespan.max > 0 && this._timer > this.lifespan.max) { this.kill(); return; } } flixel_group_FlxTypedGroup.prototype.update.call(this,elapsed); } ,explode: function() { var amount = this._quantity; if(amount <= 0 || amount > this.length) { amount = this.length; } var _g = 0; var _g1 = amount; while(_g < _g1) { var i = _g++; this.emitParticle(); } this.onFinished(); } ,emitContinuously: function(elapsed) { if(this.frequency <= 0) { this.emitParticleContinuously(); } else { this._timer += elapsed; while(this._timer > this.frequency) { this._timer -= this.frequency; this.emitParticleContinuously(); } } } ,emitParticleContinuously: function() { this.emitParticle(); this._counter++; if(this._quantity > 0 && this._counter >= this._quantity) { this.onFinished(); } } ,onFinished: function() { this.emitting = false; this._waitForKill = true; this._quantity = 0; } ,kill: function() { this.emitting = false; this._waitForKill = false; flixel_group_FlxTypedGroup.prototype.kill.call(this); } ,start: function(Explode,Frequency,Quantity) { if(Quantity == null) { Quantity = 0; } if(Frequency == null) { Frequency = 0.1; } if(Explode == null) { Explode = true; } this.set_exists(true); this.set_visible(true); this.emitting = true; this._explode = Explode; this.frequency = Frequency; this._quantity += Quantity; this._counter = 0; this._timer = 0; this._waitForKill = false; return this; } ,emitParticle: function() { var particle = this.recycle(this.particleClass); particle.reset(0,0); particle.set_blend(this.blend); particle.set_immovable(this.immovable); var dir = 4369; particle.set_solid((this.allowCollisions & dir) == dir); particle.set_allowCollisions(this.allowCollisions); particle.autoUpdateHitbox = this.autoUpdateHitbox; if(this.lifespan.active) { particle.lifespan = flixel_FlxG.random.float(this.lifespan.min,this.lifespan.max); } if(this.velocity.active) { var tmp; if(particle.lifespan > 0) { var _this = particle.velocityRange.start; var point = particle.velocityRange.end; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = !result; } else { tmp = false; } particle.velocityRange.active = tmp; if(this.launchMode == flixel_effects_particles_FlxEmitterMode.CIRCLE) { var particleAngle = 0; if(this.launchAngle.active) { particleAngle = flixel_FlxG.random.float(this.launchAngle.min,this.launchAngle.max); } var Speed = flixel_FlxG.random.float(this.speed.start.min,this.speed.start.max); var a = particleAngle * (Math.PI / 180); var x = Math.cos(a) * Speed; var y = Math.sin(a) * Speed; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this._point = point; particle.velocity.set_x(this._point.x); particle.velocity.set_y(this._point.y); var this1 = particle.velocityRange.start; var x = this._point.x; var y = this._point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var Speed = flixel_FlxG.random.float(this.speed.end.min,this.speed.end.max); var a = particleAngle * (Math.PI / 180); var x = Math.cos(a) * Speed; var y = Math.sin(a) * Speed; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this._point = point; var this1 = particle.velocityRange.end; var x = this._point.x; var y = this._point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { particle.velocityRange.start.set_x(flixel_FlxG.random.float(this.velocity.start.min.x,this.velocity.start.max.x)); particle.velocityRange.start.set_y(flixel_FlxG.random.float(this.velocity.start.min.y,this.velocity.start.max.y)); particle.velocityRange.end.set_x(flixel_FlxG.random.float(this.velocity.end.min.x,this.velocity.end.max.x)); particle.velocityRange.end.set_y(flixel_FlxG.random.float(this.velocity.end.min.y,this.velocity.end.max.y)); particle.velocity.set_x(particle.velocityRange.start.x); particle.velocity.set_y(particle.velocityRange.start.y); } } else { particle.velocityRange.active = false; } particle.angularVelocityRange.active = particle.lifespan > 0 && this.angularVelocity.start != this.angularVelocity.end; if(!this.ignoreAngularVelocity) { if(this.angularAcceleration.active) { particle.angularAcceleration = flixel_FlxG.random.float(this.angularAcceleration.start.min,this.angularAcceleration.start.max); } if(this.angularVelocity.active) { particle.angularVelocityRange.start = flixel_FlxG.random.float(this.angularVelocity.start.min,this.angularVelocity.start.max); particle.angularVelocityRange.end = flixel_FlxG.random.float(this.angularVelocity.end.min,this.angularVelocity.end.max); particle.angularVelocity = particle.angularVelocityRange.start; } if(this.angularDrag.active) { particle.angularDrag = flixel_FlxG.random.float(this.angularDrag.start.min,this.angularDrag.start.max); } } else if(this.angularVelocity.active) { particle.angularVelocity = (flixel_FlxG.random.float(this.angle.end.min,this.angle.end.max) - flixel_FlxG.random.float(this.angle.start.min,this.angle.start.max)) / flixel_FlxG.random.float(this.lifespan.min,this.lifespan.max); particle.angularVelocityRange.active = false; } if(this.angle.active) { particle.set_angle(flixel_FlxG.random.float(this.angle.start.min,this.angle.start.max)); } if(this.scale.active) { particle.scaleRange.start.set_x(flixel_FlxG.random.float(this.scale.start.min.x,this.scale.start.max.x)); particle.scaleRange.start.set_y(this.keepScaleRatio ? particle.scaleRange.start.x : flixel_FlxG.random.float(this.scale.start.min.y,this.scale.start.max.y)); particle.scaleRange.end.set_x(flixel_FlxG.random.float(this.scale.end.min.x,this.scale.end.max.x)); particle.scaleRange.end.set_y(this.keepScaleRatio ? particle.scaleRange.end.x : flixel_FlxG.random.float(this.scale.end.min.y,this.scale.end.max.y)); var tmp; if(particle.lifespan > 0) { var _this = particle.scaleRange.start; var point = particle.scaleRange.end; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = !result; } else { tmp = false; } particle.scaleRange.active = tmp; particle.scale.set_x(particle.scaleRange.start.x); particle.scale.set_y(particle.scaleRange.start.y); if(particle.autoUpdateHitbox) { particle.updateHitbox(); } } else { particle.scaleRange.active = false; } if(this.alpha.active) { particle.alphaRange.start = flixel_FlxG.random.float(this.alpha.start.min,this.alpha.start.max); particle.alphaRange.end = flixel_FlxG.random.float(this.alpha.end.min,this.alpha.end.max); particle.alphaRange.active = particle.lifespan > 0 && particle.alphaRange.start != particle.alphaRange.end; particle.set_alpha(particle.alphaRange.start); } else { particle.alphaRange.active = false; } if(this.color.active) { particle.colorRange.start = flixel_FlxG.random.color(this.color.start.min,this.color.start.max); particle.colorRange.end = flixel_FlxG.random.color(this.color.end.min,this.color.end.max); particle.colorRange.active = particle.lifespan > 0 && particle.colorRange.start != particle.colorRange.end; particle.set_color(particle.colorRange.start); } else { particle.colorRange.active = false; } if(this.drag.active) { particle.dragRange.start.set_x(flixel_FlxG.random.float(this.drag.start.min.x,this.drag.start.max.x)); particle.dragRange.start.set_y(flixel_FlxG.random.float(this.drag.start.min.y,this.drag.start.max.y)); particle.dragRange.end.set_x(flixel_FlxG.random.float(this.drag.end.min.x,this.drag.end.max.x)); particle.dragRange.end.set_y(flixel_FlxG.random.float(this.drag.end.min.y,this.drag.end.max.y)); var tmp; if(particle.lifespan > 0) { var _this = particle.dragRange.start; var point = particle.dragRange.end; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = !result; } else { tmp = false; } particle.dragRange.active = tmp; particle.drag.set_x(particle.dragRange.start.x); particle.drag.set_y(particle.dragRange.start.y); } else { particle.dragRange.active = false; } if(this.acceleration.active) { particle.accelerationRange.start.set_x(flixel_FlxG.random.float(this.acceleration.start.min.x,this.acceleration.start.max.x)); particle.accelerationRange.start.set_y(flixel_FlxG.random.float(this.acceleration.start.min.y,this.acceleration.start.max.y)); particle.accelerationRange.end.set_x(flixel_FlxG.random.float(this.acceleration.end.min.x,this.acceleration.end.max.x)); particle.accelerationRange.end.set_y(flixel_FlxG.random.float(this.acceleration.end.min.y,this.acceleration.end.max.y)); var tmp; if(particle.lifespan > 0) { var _this = particle.accelerationRange.start; var point = particle.accelerationRange.end; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = !result; } else { tmp = false; } particle.accelerationRange.active = tmp; particle.acceleration.set_x(particle.accelerationRange.start.x); particle.acceleration.set_y(particle.accelerationRange.start.y); } else { particle.accelerationRange.active = false; } if(this.elasticity.active) { particle.elasticityRange.start = flixel_FlxG.random.float(this.elasticity.start.min,this.elasticity.start.max); particle.elasticityRange.end = flixel_FlxG.random.float(this.elasticity.end.min,this.elasticity.end.max); particle.elasticityRange.active = particle.lifespan > 0 && particle.elasticityRange.start != particle.elasticityRange.end; particle.elasticity = particle.elasticityRange.start; } else { particle.elasticityRange.active = false; } particle.set_x(flixel_FlxG.random.float(this.x,this.x + this.width) - particle.get_width() / 2); particle.set_y(flixel_FlxG.random.float(this.y,this.y + this.height) - particle.get_height() / 2); if(particle.animation._curAnim != null) { particle.animation._curAnim.restart(); } particle.onEmit(); return particle; } ,focusOn: function(Object1) { Object1.getMidpoint(this._point); this.x = this._point.x - ((this.width | 0) >> 1); this.y = this._point.y - ((this.height | 0) >> 1); } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.x = X; this.y = Y; } ,setSize: function(Width,Height) { this.width = Width; this.height = Height; } ,get_solid: function() { var dir = 4369; return (this.allowCollisions & dir) == dir; } ,set_solid: function(Solid) { if(Solid) { this.allowCollisions = 4369; } else { this.allowCollisions = 0; } return Solid; } ,__class__: flixel_effects_particles_FlxTypedEmitter ,__properties__: $extend(flixel_group_FlxTypedGroup.prototype.__properties__,{set_solid:"set_solid",get_solid:"get_solid"}) }); var flixel_effects_particles_FlxEmitterMode = $hxEnums["flixel.effects.particles.FlxEmitterMode"] = { __ename__:"flixel.effects.particles.FlxEmitterMode",__constructs__:null ,SQUARE: {_hx_name:"SQUARE",_hx_index:0,__enum__:"flixel.effects.particles.FlxEmitterMode",toString:$estr} ,CIRCLE: {_hx_name:"CIRCLE",_hx_index:1,__enum__:"flixel.effects.particles.FlxEmitterMode",toString:$estr} }; flixel_effects_particles_FlxEmitterMode.__constructs__ = [flixel_effects_particles_FlxEmitterMode.SQUARE,flixel_effects_particles_FlxEmitterMode.CIRCLE]; flixel_effects_particles_FlxEmitterMode.__empty_constructs__ = [flixel_effects_particles_FlxEmitterMode.SQUARE,flixel_effects_particles_FlxEmitterMode.CIRCLE]; var flixel_effects_particles_IFlxParticle = function() { }; $hxClasses["flixel.effects.particles.IFlxParticle"] = flixel_effects_particles_IFlxParticle; flixel_effects_particles_IFlxParticle.__name__ = "flixel.effects.particles.IFlxParticle"; flixel_effects_particles_IFlxParticle.__isInterface__ = true; flixel_effects_particles_IFlxParticle.__interfaces__ = [flixel_IFlxSprite]; flixel_effects_particles_IFlxParticle.prototype = { lifespan: null ,age: null ,percent: null ,autoUpdateHitbox: null ,velocityRange: null ,angularVelocityRange: null ,scaleRange: null ,alphaRange: null ,colorRange: null ,dragRange: null ,accelerationRange: null ,elasticityRange: null ,onEmit: null ,__class__: flixel_effects_particles_IFlxParticle }; var flixel_effects_particles_FlxParticle = function() { this._delta = 0; this.autoUpdateHitbox = false; this.percent = 0; this.age = 0; this.lifespan = 0; flixel_FlxSprite.call(this); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; this.velocityRange = new flixel_util_helpers_FlxRange(point,point1); this.angularVelocityRange = new flixel_util_helpers_FlxRange(0); var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point1._inPool = false; this.scaleRange = new flixel_util_helpers_FlxRange(point,point1); this.alphaRange = new flixel_util_helpers_FlxRange(1,1); this.colorRange = new flixel_util_helpers_FlxRange(-1); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; this.dragRange = new flixel_util_helpers_FlxRange(point,point1); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; this.accelerationRange = new flixel_util_helpers_FlxRange(point,point1); this.elasticityRange = new flixel_util_helpers_FlxRange(0); this.set_exists(false); }; $hxClasses["flixel.effects.particles.FlxParticle"] = flixel_effects_particles_FlxParticle; flixel_effects_particles_FlxParticle.__name__ = "flixel.effects.particles.FlxParticle"; flixel_effects_particles_FlxParticle.__interfaces__ = [flixel_effects_particles_IFlxParticle]; flixel_effects_particles_FlxParticle.__super__ = flixel_FlxSprite; flixel_effects_particles_FlxParticle.prototype = $extend(flixel_FlxSprite.prototype,{ lifespan: null ,age: null ,percent: null ,autoUpdateHitbox: null ,velocityRange: null ,angularVelocityRange: null ,scaleRange: null ,alphaRange: null ,colorRange: null ,dragRange: null ,accelerationRange: null ,elasticityRange: null ,_delta: null ,destroy: function() { if(this.velocityRange != null) { this.velocityRange.start = flixel_util_FlxDestroyUtil.put(this.velocityRange.start); this.velocityRange.end = flixel_util_FlxDestroyUtil.put(this.velocityRange.end); this.velocityRange = null; } if(this.scaleRange != null) { this.scaleRange.start = flixel_util_FlxDestroyUtil.put(this.scaleRange.start); this.scaleRange.end = flixel_util_FlxDestroyUtil.put(this.scaleRange.end); this.scaleRange = null; } if(this.dragRange != null) { this.dragRange.start = flixel_util_FlxDestroyUtil.put(this.dragRange.start); this.dragRange.end = flixel_util_FlxDestroyUtil.put(this.dragRange.end); this.dragRange = null; } if(this.accelerationRange != null) { this.accelerationRange.start = flixel_util_FlxDestroyUtil.put(this.accelerationRange.start); this.accelerationRange.end = flixel_util_FlxDestroyUtil.put(this.accelerationRange.end); this.angularVelocityRange = null; } this.alphaRange = null; this.colorRange = null; this.accelerationRange = null; this.elasticityRange = null; flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { if(this.age < this.lifespan) { this.age += elapsed; } if(this.age >= this.lifespan && this.lifespan != 0) { this.kill(); } else { this._delta = elapsed / this.lifespan; this.percent = this.age / this.lifespan; if(this.velocityRange.active) { this.velocity.set_x(this.velocity.x + (this.velocityRange.end.x - this.velocityRange.start.x) * this._delta); this.velocity.set_y(this.velocity.y + (this.velocityRange.end.y - this.velocityRange.start.y) * this._delta); } if(this.angularVelocityRange.active) { this.angularVelocity += (this.angularVelocityRange.end - this.angularVelocityRange.start) * this._delta; } if(this.scaleRange.active) { this.scale.set_x(this.scale.x + (this.scaleRange.end.x - this.scaleRange.start.x) * this._delta); this.scale.set_y(this.scale.y + (this.scaleRange.end.y - this.scaleRange.start.y) * this._delta); if(this.autoUpdateHitbox) { this.updateHitbox(); } } if(this.alphaRange.active) { this.set_alpha(this.alpha + (this.alphaRange.end - this.alphaRange.start) * this._delta); } if(this.colorRange.active) { var Color1 = this.colorRange.start; var Color2 = this.colorRange.end; var Factor = this.percent; if(Factor == null) { Factor = 0.5; } var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0; var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0; var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0; var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0; var Alpha = a; if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16; color &= -65281; color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8; color &= -256; color |= b > 255 ? 255 : b < 0 ? 0 : b; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; this.set_color(color); } if(this.dragRange.active) { this.drag.set_x(this.drag.x + (this.dragRange.end.x - this.dragRange.start.x) * this._delta); this.drag.set_y(this.drag.y + (this.dragRange.end.y - this.dragRange.start.y) * this._delta); } if(this.accelerationRange.active) { this.acceleration.set_x(this.acceleration.x + (this.accelerationRange.end.x - this.accelerationRange.start.x) * this._delta); this.acceleration.set_y(this.acceleration.y + (this.accelerationRange.end.y - this.accelerationRange.start.y) * this._delta); } if(this.elasticityRange.active) { this.elasticity += (this.elasticityRange.end - this.elasticityRange.start) * this._delta; } } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,reset: function(X,Y) { flixel_FlxSprite.prototype.reset.call(this,X,Y); this.age = 0; this.set_visible(true); } ,onEmit: function() { } ,__class__: flixel_effects_particles_FlxParticle }); var flixel_effects_postprocess_PostProcess = function(shader) { flixel_FlxG.log.advanced("Post processing is only supported on the CPP and Neko targets of OpenFL legacy - for newer OpenFL versions, please use shader filters.",flixel_system_debug_log_LogStyle.ERROR,true); }; $hxClasses["flixel.effects.postprocess.PostProcess"] = flixel_effects_postprocess_PostProcess; flixel_effects_postprocess_PostProcess.__name__ = "flixel.effects.postprocess.PostProcess"; flixel_effects_postprocess_PostProcess.prototype = { enable: function(to) { } ,capture: function() { } ,rebuild: function() { } ,update: function(elapsed) { } ,render: function(rect) { } ,setUniform: function(uniform,value) { } ,set_to: function(value) { return null; } ,__class__: flixel_effects_postprocess_PostProcess ,__properties__: {set_to:"set_to"} }; var flixel_graphics_FlxAsepriteUtil = function() { }; $hxClasses["flixel.graphics.FlxAsepriteUtil"] = flixel_graphics_FlxAsepriteUtil; flixel_graphics_FlxAsepriteUtil.__name__ = "flixel.graphics.FlxAsepriteUtil"; flixel_graphics_FlxAsepriteUtil.loadAseAtlas = function(sprite,graphic,data) { sprite.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerJson(graphic,data,true)); return sprite; }; flixel_graphics_FlxAsepriteUtil.loadAseAtlasAndTagsByPrefix = function(sprite,graphic,data,tagSuffix,excludeTags) { if(tagSuffix == null) { tagSuffix = ":"; } data = flixel_system_FlxJsonAsset.getData(data); sprite.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerJson(graphic,data,true)); var tagSuffix1 = tagSuffix; if(tagSuffix1 == null) { tagSuffix1 = ":"; } flixel_graphics_FlxAsepriteUtil.addByPrefixHelper(sprite.animation,data,tagSuffix1,excludeTags); return sprite; }; flixel_graphics_FlxAsepriteUtil.addAseAtlasTagsByPrefix = function(sprite,data,tagSuffix,excludeTags) { if(tagSuffix == null) { tagSuffix = ":"; } flixel_graphics_FlxAsepriteUtil.addByPrefixHelper(sprite.animation,data,tagSuffix,excludeTags); return sprite; }; flixel_graphics_FlxAsepriteUtil.addByPrefixHelper = function(animations,data,tagSuffix,excludeTags) { if(tagSuffix == null) { tagSuffix = ":"; } var aseData = flixel_system_FlxJsonAsset.getData(data); var _g = 0; var _g1 = aseData.meta.frameTags; while(_g < _g1.length) { var tag = _g1[_g]; ++_g; var name = tag.name; if(excludeTags == null || excludeTags.indexOf(name) == -1) { var expectedFrames = tag.to - tag.from + 1; var this1 = tag.repeat; animations.addByPrefix(name,name + tagSuffix,30,this1 == null || Std.parseInt(this1) > 1); var anim = animations._animations.h[name]; flixel_graphics_FlxAsepriteUtil.setFramesDirection(anim.frames,tag.direction); var actualFrames = anim == null ? 0 : anim.frames.length; if(actualFrames != expectedFrames) { flixel_FlxG.log.advanced("Tag \"" + name + "\" expected " + expectedFrames + " frames but found " + ("" + actualFrames + ". Was the atlas exported with \"Ignore Empty\"/--ignore-empty") + ", or are there multiple tags on a single frame?",flixel_system_debug_log_LogStyle.WARNING,true); } } } }; flixel_graphics_FlxAsepriteUtil.loadAseAtlasAndTagsByIndex = function(sprite,graphic,data,excludeTags) { data = flixel_system_FlxJsonAsset.getData(data); sprite.set_frames(flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerJson(graphic,data,true)); flixel_graphics_FlxAsepriteUtil.addByIndexHelper(sprite.animation,data,excludeTags); return sprite; }; flixel_graphics_FlxAsepriteUtil.addAseAtlasTagsByIndex = function(sprite,data,excludeTags) { flixel_graphics_FlxAsepriteUtil.addByIndexHelper(sprite.animation,data,excludeTags); return sprite; }; flixel_graphics_FlxAsepriteUtil.addByIndexHelper = function(animations,data,excludeTags) { var aseData = flixel_system_FlxJsonAsset.getData(data); var maxFrameNumber = animations._sprite.get_numFrames() - 1; var _g = 0; var _g1 = aseData.meta.frameTags; while(_g < _g1.length) { var frameTag = _g1[_g]; ++_g; if(frameTag.to > maxFrameNumber) { flixel_FlxG.log.advanced("Tag \"" + frameTag.name + "\" `to` field (" + frameTag.to + ") exceeds the max " + ("frame number (" + maxFrameNumber + "). Some animations may not be loaded correctly. ") + "Was the atlas exported with \"Ignore Empty\"/--ignore-empty?",flixel_system_debug_log_LogStyle.WARNING,true); } var a = frameTag.to; var toFrame = a > maxFrameNumber ? maxFrameNumber : a; var _g2 = []; var _g3 = frameTag.from; var _g4 = toFrame + 1; while(_g3 < _g4) { var i = _g3++; _g2.push(i); } var frames = _g2; flixel_graphics_FlxAsepriteUtil.setFramesDirection(frames,frameTag.direction); var this1 = frameTag.repeat; animations.add(frameTag.name,frames,30,this1 == null || Std.parseInt(this1) > 1); } }; flixel_graphics_FlxAsepriteUtil.setFramesDirection = function(frames,direction) { switch(direction) { case "forward": break; case "pingpong":case "pingpong_reverse": if(direction == "pingpong_reverse") { frames.reverse(); } var i = frames.length - 1; while(i-- > 1) frames.push(frames[i]); break; case "reverse": frames.reverse(); break; } }; var flixel_graphics_FlxGraphic = function(key,bitmap,persist) { this.unique = false; this.useCount = 0; this.isDumped = false; this.destroyOnNoUse = true; this.persist = false; this.height = 0; this.width = 0; this.key = key; this.persist = persist != null ? persist : flixel_graphics_FlxGraphic.defaultPersist; this.frameCollections = new haxe_ds_EnumValueMap(); this.frameCollectionTypes = []; this.set_bitmap(bitmap); this.shader = new flixel_graphics_tile_FlxGraphicsShader(); }; $hxClasses["flixel.graphics.FlxGraphic"] = flixel_graphics_FlxGraphic; flixel_graphics_FlxGraphic.__name__ = "flixel.graphics.FlxGraphic"; flixel_graphics_FlxGraphic.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_graphics_FlxGraphic.fromAssetKey = function(Source,Unique,Key,Cache1) { if(Cache1 == null) { Cache1 = true; } if(Unique == null) { Unique = false; } var bitmap = null; if(!Cache1) { if(openfl_utils_Assets.exists(Source)) { bitmap = openfl_utils_Assets.getBitmapData(Source,false); } else { flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + Source + "'.",flixel_system_debug_log_LogStyle.ERROR,true); bitmap = null; } if(bitmap == null) { return null; } return flixel_graphics_FlxGraphic.createGraphic(bitmap,Key,Unique,Cache1); } var key = flixel_FlxG.bitmap.generateKey(Source,Key,Unique); var graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic != null) { return graphic; } if(openfl_utils_Assets.exists(Source)) { bitmap = openfl_utils_Assets.getBitmapData(Source,false); } else { flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + Source + "'.",flixel_system_debug_log_LogStyle.ERROR,true); bitmap = null; } if(bitmap == null) { return null; } graphic = flixel_graphics_FlxGraphic.createGraphic(bitmap,key,Unique); graphic.assetsKey = Source; return graphic; }; flixel_graphics_FlxGraphic.fromClass = function(Source,Unique,Key,Cache1) { if(Cache1 == null) { Cache1 = true; } if(Unique == null) { Unique = false; } var bitmap = null; if(!Cache1) { bitmap = Type.createInstance(Source,[]); return flixel_graphics_FlxGraphic.createGraphic(bitmap,Key,Unique,Cache1); } var _this = flixel_FlxG.bitmap; var key = Source.__name__; key = flixel_FlxG.bitmap.generateKey(key,Key,Unique); var graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic != null) { return graphic; } bitmap = Type.createInstance(Source,[]); graphic = flixel_graphics_FlxGraphic.createGraphic(bitmap,key,Unique); graphic.assetsClass = Source; return graphic; }; flixel_graphics_FlxGraphic.fromBitmapData = function(Source,Unique,Key,Cache1) { if(Cache1 == null) { Cache1 = true; } if(Unique == null) { Unique = false; } if(!Cache1) { return flixel_graphics_FlxGraphic.createGraphic(Source,Key,Unique,Cache1); } var key = flixel_FlxG.bitmap.findKeyForBitmap(Source); var assetKey = null; var assetClass = null; var graphic = null; if(key != null) { graphic = flixel_FlxG.bitmap._cache.h[key]; assetKey = graphic.assetsKey; assetClass = graphic.assetsClass; } key = flixel_FlxG.bitmap.generateKey(key,Key,Unique); graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic != null) { return graphic; } graphic = flixel_graphics_FlxGraphic.createGraphic(Source,key,Unique); graphic.assetsKey = assetKey; graphic.assetsClass = assetClass; return graphic; }; flixel_graphics_FlxGraphic.fromFrame = function(Source,Unique,Key,Cache1) { if(Cache1 == null) { Cache1 = true; } if(Unique == null) { Unique = false; } var key = Source.name; if(key == null) { var _this = Source.frame; var value = _this.x; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "x"; _this1.value = value; var value = _this.y; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "y"; _this2.value = value; var value = _this.width; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "w"; _this3.value = value; var value = _this.height; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "h"; _this.value = value; key = flixel_util_FlxStringUtil.getDebugString([_this1,_this2,_this3,_this]); } key = Source.parent.key + ":" + key; key = flixel_FlxG.bitmap.generateKey(key,Key,Unique); var graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic != null) { return graphic; } var bitmap = Source.paint(); graphic = flixel_graphics_FlxGraphic.createGraphic(bitmap,key,Unique,Cache1); var image = flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic); image.frames[0].name = Source.name; return graphic; }; flixel_graphics_FlxGraphic.fromFrames = function(Source,Unique,Key) { if(Unique == null) { Unique = false; } return flixel_graphics_FlxGraphic.fromGraphic(Source.parent,Unique,Key); }; flixel_graphics_FlxGraphic.fromGraphic = function(Source,Unique,Key) { if(Unique == null) { Unique = false; } if(!Unique) { return Source; } var key = flixel_FlxG.bitmap.generateKey(Source.key,Key,Unique); var graphic = flixel_graphics_FlxGraphic.createGraphic(Source.bitmap,key,Unique); graphic.unique = Unique; graphic.assetsClass = Source.assetsClass; graphic.assetsKey = Source.assetsKey; flixel_FlxG.bitmap._cache.h[graphic.key] = graphic; return graphic; }; flixel_graphics_FlxGraphic.fromRectangle = function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } var systemKey = Width + "x" + Height + ":" + Color; var key = flixel_FlxG.bitmap.generateKey(systemKey,Key,Unique); var graphic = flixel_FlxG.bitmap._cache.h[key]; if(graphic != null) { return graphic; } var bitmap = new openfl_display_BitmapData(Width,Height,true,Color); return flixel_graphics_FlxGraphic.createGraphic(bitmap,key); }; flixel_graphics_FlxGraphic.getBitmap = function(Bitmap,Unique) { if(Unique == null) { Unique = false; } if(Unique) { return Bitmap.clone(); } else { return Bitmap; } }; flixel_graphics_FlxGraphic.createGraphic = function(Bitmap,Key,Unique,Cache1) { if(Cache1 == null) { Cache1 = true; } if(Unique == null) { Unique = false; } var Unique1 = Unique; if(Unique1 == null) { Unique1 = false; } if(Unique1) { Bitmap = Bitmap.clone(); } var graphic = null; if(Cache1) { graphic = new flixel_graphics_FlxGraphic(Key,Bitmap); graphic.unique = Unique; flixel_FlxG.bitmap._cache.h[graphic.key] = graphic; } else { graphic = new flixel_graphics_FlxGraphic(null,Bitmap); } return graphic; }; flixel_graphics_FlxGraphic.prototype = { key: null ,bitmap: null ,width: null ,height: null ,assetsKey: null ,assetsClass: null ,persist: null ,destroyOnNoUse: null ,isDumped: null ,shader: null ,useCount: null ,imageFrame: null ,frameCollections: null ,frameCollectionTypes: null ,unique: null ,get__imageFrame: function() { return this.get_imageFrame(); } ,set__imageFrame: function(value) { return this.imageFrame = value; } ,get__useCount: function() { return this.useCount; } ,set__useCount: function(value) { return this.useCount = value; } ,get__destroyOnNoUse: function() { return this.destroyOnNoUse; } ,set__destroyOnNoUse: function(value) { return this.set_destroyOnNoUse(value); } ,dump: function() { } ,undump: function() { var newBitmap = this.getBitmapFromSystem(); if(newBitmap != null) { this.set_bitmap(newBitmap); } this.isDumped = false; } ,onContext: function() { if(this.isDumped) { this.undump(); this.dump(); } } ,onAssetsReload: function() { if(!(this.assetsClass != null || this.assetsKey != null)) { return; } var dumped = this.isDumped; this.undump(); if(dumped) { this.dump(); } } ,destroy: function() { this.set_bitmap(flixel_util_FlxDestroyUtil.dispose(this.bitmap)); this.shader = null; this.key = null; this.assetsKey = null; this.assetsClass = null; this.imageFrame = null; if(this.frameCollections == null) { return; } var collections; var _g = 0; var _g1 = this.frameCollectionTypes; while(_g < _g1.length) { var collectionType = _g1[_g]; ++_g; collections = this.frameCollections.get(collectionType); flixel_util_FlxDestroyUtil.destroyArray(collections); } this.frameCollections = null; this.frameCollectionTypes = null; } ,addFrameCollection: function(collection) { if(collection.type != null) { var type = collection.type; var collections; if(this.shader == null) { collections = []; } else { var collections1 = this.frameCollections.get(type); if(collections1 == null) { collections1 = []; this.frameCollections.set(type,collections1); } collections = collections1; } if(collections.indexOf(collection) == -1) { collections.push(collection); } } } ,getFramesCollections: function(type) { if(this.shader == null) { return []; } var collections = this.frameCollections.get(type); if(collections == null) { collections = []; this.frameCollections.set(type,collections); } return collections; } ,getEmptyFrame: function(size) { var frame = new flixel_graphics_frames_FlxFrame(this); frame.type = 2; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; frame.set_frame(rect); var this1 = frame.sourceSize; var x = size.x; var y = size.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(size._weak) { size.put(); } return frame; } ,getBitmapFromSystem: function() { var newBitmap = null; if(this.assetsClass != null) { newBitmap = Type.createInstance(this.assetsClass,[]); } else if(this.assetsKey != null) { var id = this.assetsKey; if(openfl_utils_Assets.exists(id)) { newBitmap = openfl_utils_Assets.getBitmapData(id,false); } else { flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + id + "'.",flixel_system_debug_log_LogStyle.ERROR,true); newBitmap = null; } } if(newBitmap != null) { var Unique = this.unique; if(Unique == null) { Unique = false; } if(Unique) { return newBitmap.clone(); } else { return newBitmap; } } return null; } ,get_isLoaded: function() { if(this.bitmap != null) { return !this.bitmap.rect.isEmpty(); } else { return false; } } ,get_isDestroyed: function() { return this.shader == null; } ,get_canBeDumped: function() { if(this.assetsClass == null) { return this.assetsKey != null; } else { return true; } } ,incrementUseCount: function() { this.useCount++; } ,decrementUseCount: function() { this.useCount--; this.checkUseCount(); } ,checkUseCount: function() { if(this.useCount <= 0 && this.destroyOnNoUse && !this.persist) { flixel_FlxG.bitmap.remove(this); } } ,set_destroyOnNoUse: function(value) { this.destroyOnNoUse = value; this.checkUseCount(); return value; } ,get_imageFrame: function() { if(this.imageFrame == null) { var X = 0; var Y = 0; var Width = this.bitmap.width; var Height = this.bitmap.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.imageFrame = flixel_graphics_frames_FlxImageFrame.fromRectangle(this,rect); } return this.imageFrame; } ,get_atlasFrames: function() { return flixel_graphics_frames_FlxAtlasFrames.findFrame(this,null); } ,set_bitmap: function(value) { if(value != null) { this.bitmap = value; this.width = this.bitmap.width; this.height = this.bitmap.height; } return value; } ,__class__: flixel_graphics_FlxGraphic ,__properties__: {set__destroyOnNoUse:"set__destroyOnNoUse",get__destroyOnNoUse:"get__destroyOnNoUse",set__useCount:"set__useCount",get__useCount:"get__useCount",set__imageFrame:"set__imageFrame",get__imageFrame:"get__imageFrame",get_atlasFrames:"get_atlasFrames",get_imageFrame:"get_imageFrame",get_canBeDumped:"get_canBeDumped",get_isDestroyed:"get_isDestroyed",get_isLoaded:"get_isLoaded",set_destroyOnNoUse:"set_destroyOnNoUse",set_bitmap:"set_bitmap"} }; var flixel_graphics_atlas_AseAtlasColor = {}; flixel_graphics_atlas_AseAtlasColor.toFlxColor = function(this1) { if(this1 == null) { return null; } else { return Std.parseInt("0x" + HxOverrides.substr(this1,1,null)); } }; flixel_graphics_atlas_AseAtlasColor.toString = function(this1) { return this1; }; var flixel_graphics_atlas_AseAtlasTagRepeat = {}; flixel_graphics_atlas_AseAtlasTagRepeat.__properties__ = {get_loops:"get_loops"}; flixel_graphics_atlas_AseAtlasTagRepeat.get_loops = function(this1) { if(this1 != null) { return Std.parseInt(this1) > 1; } else { return true; } }; flixel_graphics_atlas_AseAtlasTagRepeat.toInt = function(this1) { return Std.parseInt(this1); }; var flixel_graphics_atlas_AseAtlasTagDirection = {}; flixel_graphics_atlas_AseAtlasTagDirection.isForward = function(this1) { if(this1 != "forward") { return this1 == "pingpong"; } else { return true; } }; flixel_graphics_atlas_AseAtlasTagDirection.isReverse = function(this1) { return !(this1 == "forward" || this1 == "pingpong"); }; flixel_graphics_atlas_AseAtlasTagDirection.isPingPong = function(this1) { if(this1 != "pingpong") { return this1 == "pingpong_reverse"; } else { return true; } }; var flixel_graphics_atlas_HashOrArray = {}; flixel_graphics_atlas_HashOrArray.isArray = function(this1) { return ((this1) instanceof Array); }; flixel_graphics_atlas_HashOrArray.isHash = function(this1) { return !((this1) instanceof Array); }; flixel_graphics_atlas_HashOrArray.toArray = function(this1) { return this1; }; flixel_graphics_atlas_HashOrArray.toHash = function(this1) { return this1; }; flixel_graphics_atlas_HashOrArray.iterator = function(this1) { if(((this1) instanceof Array)) { return new haxe_iterators_ArrayIterator(this1); } else { return new haxe_iterators_DynamicAccessIterator(this1); } }; var flixel_graphics_atlas_FlxAtlas = function(name,powerOfTwo,border,rotate,minSize,maxSize) { if(rotate == null) { rotate = false; } if(border == null) { border = 1; } if(powerOfTwo == null) { powerOfTwo = false; } this.powerOfTwo = false; this.allowRotation = false; this.maxHeight = 1024; this.maxWidth = 1024; this.minHeight = 128; this.minWidth = 128; this.border = 1; this.persist = false; this.nodes = new haxe_ds_StringMap(); this.name = name; this.set_powerOfTwo(powerOfTwo); this.border = border; if(minSize == null) { minSize = flixel_graphics_atlas_FlxAtlas.defaultMinSize; } if(maxSize == null) { maxSize = flixel_graphics_atlas_FlxAtlas.defaultMaxSize; } this.set_minWidth(minSize.x | 0); this.set_minHeight(minSize.y | 0); this.set_maxWidth(maxSize.x > minSize.x ? maxSize.x | 0 : this.minWidth); this.set_maxHeight(maxSize.y > minSize.x ? maxSize.y | 0 : this.minHeight); this.allowRotation = rotate; this.initRoot(); flixel_FlxG.signals.preStateCreate.add($bind(this,this.onClear)); }; $hxClasses["flixel.graphics.atlas.FlxAtlas"] = flixel_graphics_atlas_FlxAtlas; flixel_graphics_atlas_FlxAtlas.__name__ = "flixel.graphics.atlas.FlxAtlas"; flixel_graphics_atlas_FlxAtlas.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_graphics_atlas_FlxAtlas.prototype = { root: null ,name: null ,nodes: null ,bitmapData: null ,persist: null ,border: null ,width: null ,height: null ,minWidth: null ,minHeight: null ,maxWidth: null ,maxHeight: null ,allowRotation: null ,powerOfTwo: null ,_graphic: null ,_tempStorage: null ,initRoot: function() { var rootWidth = this.minWidth; var rootHeight = this.minHeight; if(this.powerOfTwo) { rootWidth = this.getNextPowerOfTwo(rootWidth); rootHeight = this.getNextPowerOfTwo(rootHeight); } var X = 0; var Y = 0; var Width = rootWidth; var Height = rootHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.root = new flixel_graphics_atlas_FlxNode(rect,this); } ,addNode: function(Graphic,Key) { var key = flixel_system_FlxAssets.resolveKey(Graphic,Key); if(key == null) { return null; } if(this.hasNodeWithName(key)) { return this.nodes.h[key]; } var data = flixel_system_FlxAssets.resolveBitmapData(Graphic); if(data == null) { return null; } if(this.root.left == null) { return this.insertFirstNodeInRoot(data,key); } if(this.root.right == null) { return this.expand(data,key); } var inserted = this.tryInsert(data,key); if(inserted != null) { return inserted; } this.wrapRoot(); return this.expand(data,key); } ,wrapRoot: function() { var temp = this.root; var X = 0; var Y = 0; var Width = temp.rect.width | 0; var Height = temp.rect.height | 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.root = new flixel_graphics_atlas_FlxNode(rect,this); this.root.left = temp; } ,tryInsert: function(data,key) { var insertWidth = data.width + this.border; var insertHeight = data.height + this.border; var rotateNode = false; var nodeToInsert = this.findNodeToInsert(insertWidth,insertHeight); if(this.allowRotation) { var nodeToInsertWithRotation = this.findNodeToInsert(insertHeight,insertWidth); if(nodeToInsertWithRotation != null) { var nodeWithRotationArea = (nodeToInsertWithRotation.rect.width | 0) * (nodeToInsertWithRotation.rect.height | 0); if(nodeToInsert == null || nodeToInsert != null && (nodeToInsert.rect.width | 0) * (nodeToInsert.rect.height | 0) > nodeWithRotationArea) { nodeToInsert = nodeToInsertWithRotation; rotateNode = true; var temp = insertWidth; insertWidth = insertHeight; insertHeight = temp; } } } if(nodeToInsert != null) { var horizontally = this.needToDivideHorizontally(nodeToInsert,insertWidth,insertHeight); return this.divideNode(nodeToInsert,insertWidth,insertHeight,horizontally,data,key,rotateNode); } return null; } ,needToDivideHorizontally: function(nodeToDivide,insertWidth,insertHeight) { var dw = (nodeToDivide.rect.width | 0) - insertWidth; var dh = (nodeToDivide.rect.height | 0) - insertHeight; return dw > dh; } ,divideNode: function(nodeToDivide,insertWidth,insertHeight,divideHorizontally,firstGrandChildData,firstGrandChildKey,firstGrandChildRotated) { if(firstGrandChildRotated == null) { firstGrandChildRotated = false; } if(nodeToDivide != null) { var firstChild = null; var secondChild = null; var firstGrandChild = null; var secondGrandChild = null; var firstGrandChildFilled = firstGrandChildKey != null; if(divideHorizontally) { var X = nodeToDivide.rect.x | 0; var Y = nodeToDivide.rect.y | 0; var Width = insertWidth; var Height = nodeToDivide.rect.height | 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; firstChild = new flixel_graphics_atlas_FlxNode(rect,this); if((nodeToDivide.rect.width | 0) - insertWidth > 0) { var X = (nodeToDivide.rect.x | 0) + insertWidth; var Y = nodeToDivide.rect.y | 0; var Width = (nodeToDivide.rect.width | 0) - insertWidth; var Height = nodeToDivide.rect.height | 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; secondChild = new flixel_graphics_atlas_FlxNode(rect,this); } var X = firstChild.rect.x | 0; var Y = firstChild.rect.y | 0; var Width = insertWidth; var Height = insertHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; firstGrandChild = new flixel_graphics_atlas_FlxNode(rect,this,firstGrandChildFilled,firstGrandChildKey,firstGrandChildRotated); if((firstChild.rect.height | 0) - insertHeight > 0) { var X = firstChild.rect.x | 0; var Y = (firstChild.rect.y | 0) + insertHeight; var Width = insertWidth; var Height = (firstChild.rect.height | 0) - insertHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; secondGrandChild = new flixel_graphics_atlas_FlxNode(rect,this); } } else { var X = nodeToDivide.rect.x | 0; var Y = nodeToDivide.rect.y | 0; var Width = nodeToDivide.rect.width | 0; var Height = insertHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; firstChild = new flixel_graphics_atlas_FlxNode(rect,this); if((nodeToDivide.rect.height | 0) - insertHeight > 0) { var X = nodeToDivide.rect.x | 0; var Y = (nodeToDivide.rect.y | 0) + insertHeight; var Width = nodeToDivide.rect.width | 0; var Height = (nodeToDivide.rect.height | 0) - insertHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; secondChild = new flixel_graphics_atlas_FlxNode(rect,this); } var X = firstChild.rect.x | 0; var Y = firstChild.rect.y | 0; var Width = insertWidth; var Height = insertHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; firstGrandChild = new flixel_graphics_atlas_FlxNode(rect,this,firstGrandChildFilled,firstGrandChildKey,firstGrandChildRotated); if((firstChild.rect.width | 0) - insertWidth > 0) { var X = (firstChild.rect.x | 0) + insertWidth; var Y = firstChild.rect.y | 0; var Width = (firstChild.rect.width | 0) - insertWidth; var Height = insertHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; secondGrandChild = new flixel_graphics_atlas_FlxNode(rect,this); } } firstChild.left = firstGrandChild; firstChild.right = secondGrandChild; nodeToDivide.left = firstChild; nodeToDivide.right = secondChild; if(firstGrandChildKey != null && firstGrandChildData != null) { this.expandBitmapData(); if(firstGrandChildRotated) { flixel_graphics_atlas_FlxAtlas.matrix.identity(); flixel_graphics_atlas_FlxAtlas.matrix.rotate(Math.PI / 2); flixel_graphics_atlas_FlxAtlas.matrix.translate(firstGrandChildData.height + (firstGrandChild.rect.x | 0),firstGrandChild.rect.y | 0); this.bitmapData.draw(firstGrandChildData,flixel_graphics_atlas_FlxAtlas.matrix); } else { flixel_graphics_atlas_FlxAtlas.point.setTo(firstGrandChild.rect.x | 0,firstGrandChild.rect.y | 0); this.bitmapData.copyPixels(firstGrandChildData,firstGrandChildData.rect,flixel_graphics_atlas_FlxAtlas.point); } this.addNodeToAtlasFrames(firstGrandChild); this.nodes.h[firstGrandChildKey] = firstGrandChild; } return firstGrandChild; } return null; } ,insertFirstNodeInRoot: function(data,key) { if(this.root.left == null) { var insertWidth = data.width + this.border; var insertHeight = data.height + this.border; var rootWidth = insertWidth; var rootHeight = insertHeight; if(this.powerOfTwo) { rootWidth = this.getNextPowerOfTwo(rootWidth); rootHeight = this.getNextPowerOfTwo(rootHeight); } if(this.minWidth > rootWidth) { rootWidth = this.minWidth; } if(this.minHeight > rootHeight) { rootHeight = this.minHeight; } if(this.powerOfTwo) { rootWidth = this.getNextPowerOfTwo(rootWidth); rootHeight = this.getNextPowerOfTwo(rootHeight); } if(this.maxWidth > 0 && rootWidth > this.maxWidth || this.maxHeight > 0 && rootHeight > this.maxHeight) { return null; } this.root.set_width(rootWidth); this.root.set_height(rootHeight); var horizontally = this.needToDivideHorizontally(this.root,insertWidth,insertHeight); return this.divideNode(this.root,insertWidth,insertHeight,horizontally,data,key); } return null; } ,expand: function(data,key) { if(this.root.right == null) { var insertWidth = data.width + this.border; var insertHeight = data.height + this.border; var addRightWidth = (this.root.rect.width | 0) + insertWidth; var addRightHeight = Math.max(this.root.rect.height | 0,insertHeight) | 0; var addBottomWidth = Math.max(this.root.rect.width | 0,insertWidth) | 0; var addBottomHeight = (this.root.rect.height | 0) + insertHeight; var addRightWidthRotate = addRightWidth; var addRightHeightRotate = addRightHeight; var addBottomWidthRotate = addBottomWidth; var addBottomHeightRotate = addBottomHeight; if(this.allowRotation) { addRightWidthRotate = (this.root.rect.width | 0) + insertHeight; addRightHeightRotate = Math.max(this.root.rect.height | 0,insertWidth) | 0; addBottomWidthRotate = Math.max(this.root.rect.width | 0,insertHeight) | 0; addBottomHeightRotate = (this.root.rect.height | 0) + insertWidth; } if(this.powerOfTwo) { addRightWidth = this.getNextPowerOfTwo(addRightWidth); addRightWidthRotate = addRightWidth; addRightHeight = this.getNextPowerOfTwo(addRightHeight); addRightHeightRotate = addRightHeight; addBottomWidth = this.getNextPowerOfTwo(addBottomWidth); addBottomWidthRotate = addBottomWidth; addBottomHeight = this.getNextPowerOfTwo(addBottomHeight); addBottomHeightRotate = addBottomHeight; if(this.allowRotation) { addRightWidthRotate = this.getNextPowerOfTwo(addRightWidthRotate); addRightHeightRotate = this.getNextPowerOfTwo(addRightHeightRotate); addBottomWidthRotate = this.getNextPowerOfTwo(addBottomWidthRotate); addBottomHeightRotate = this.getNextPowerOfTwo(addBottomHeightRotate); } } var canExpandRight = true; var canExpandBottom = true; var canExpandRightRotate = this.allowRotation; var canExpandBottomRotate = this.allowRotation; if(this.maxWidth > 0 && addRightWidth > this.maxWidth || this.maxHeight > 0 && addRightHeight > this.maxHeight) { canExpandRight = false; } if(this.maxWidth > 0 && addBottomWidth > this.maxWidth || this.maxHeight > 0 && addBottomHeight > this.maxHeight) { canExpandBottom = false; } if(this.maxWidth > 0 && addRightWidthRotate > this.maxWidth || this.maxHeight > 0 && addRightHeightRotate > this.maxHeight) { canExpandRightRotate = false; } if(this.maxWidth > 0 && addBottomWidthRotate > this.maxWidth || this.maxHeight > 0 && addBottomHeightRotate > this.maxHeight) { canExpandBottomRotate = false; } if(!canExpandRight && !canExpandBottom && !canExpandRightRotate && !canExpandBottomRotate) { return null; } var addRightArea = addRightWidth * addRightHeight; var addBottomArea = addBottomWidth * addBottomHeight; var addRightAreaRotate = addRightWidthRotate * addRightHeightRotate; var addBottomAreaRotate = addBottomWidthRotate * addBottomHeightRotate; var rotateRight = false; var rotateBottom = false; var rotateNode = false; if(canExpandRight && canExpandRightRotate && addRightArea > addRightAreaRotate || !canExpandRight && canExpandRightRotate) { addRightArea = addBottomAreaRotate; addRightWidth = addRightWidthRotate; addRightHeight = addRightHeightRotate; canExpandRight = true; rotateRight = true; } if(canExpandBottom && canExpandBottomRotate && addBottomArea > addBottomAreaRotate || !canExpandBottom && canExpandBottomRotate) { addBottomArea = addBottomAreaRotate; addBottomWidth = addBottomWidthRotate; addBottomHeight = addBottomHeightRotate; canExpandBottom = true; rotateBottom = true; } if(!canExpandRight && canExpandBottom) { addRightArea = addBottomArea + 1; rotateNode = rotateRight; } else if(canExpandRight && !canExpandBottom) { addBottomArea = addRightArea + 1; rotateNode = rotateBottom; } var dataNode = null; var temp = this.root; var insertNodeWidth = insertWidth; var insertNodeHeight = insertHeight; if(addBottomArea >= addRightArea) { if(rotateRight) { insertNodeWidth = insertHeight; insertNodeHeight = insertWidth; } this.expandRoot((temp.rect.width | 0) + insertNodeWidth,Math.max(temp.rect.height | 0,insertNodeHeight),true); dataNode = this.divideNode(this.root.right,insertNodeWidth,insertNodeHeight,true,data,key,rotateRight); this.expandRoot(addRightWidth,addRightHeight,false,true); } else { if(rotateBottom) { insertNodeWidth = insertHeight; insertNodeHeight = insertWidth; } this.expandRoot(Math.max(temp.rect.width | 0,insertNodeWidth),(temp.rect.height | 0) + insertNodeHeight,false); dataNode = this.divideNode(this.root.right,insertNodeWidth,insertNodeHeight,true,data,key,rotateBottom); this.expandRoot(addBottomWidth,addBottomHeight,false,true); } return dataNode; } return null; } ,expandRoot: function(newWidth,newHeight,divideHorizontally,decideHowToDivide) { if(decideHowToDivide == null) { decideHowToDivide = false; } if(newWidth > (this.root.rect.width | 0) || newHeight > (this.root.rect.height | 0)) { var temp = this.root; var X = 0; var Y = 0; var Width = newWidth; var Height = newHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.root = new flixel_graphics_atlas_FlxNode(rect,this); if(decideHowToDivide) { divideHorizontally = this.needToDivideHorizontally(this.root,temp.rect.width | 0,temp.rect.height | 0); } this.divideNode(this.root,temp.rect.width | 0,temp.rect.height | 0,divideHorizontally); this.root.left.left = temp; } } ,expandBitmapData: function() { if(this.bitmapData != null && this.bitmapData.width == (this.root.rect.width | 0) && this.bitmapData.height == (this.root.rect.height | 0)) { return; } var newBitmapData = new openfl_display_BitmapData(this.root.rect.width | 0,this.root.rect.height | 0,true,0); if(this.bitmapData != null) { flixel_graphics_atlas_FlxAtlas.point.setTo(0,0); newBitmapData.copyPixels(this.bitmapData,this.bitmapData.rect,flixel_graphics_atlas_FlxAtlas.point); } this.set_bitmapData(flixel_util_FlxDestroyUtil.dispose(this.bitmapData)); this.set_bitmapData(newBitmapData); } ,getNextPowerOfTwo: function(number) { var n = number | 0; if(n > 0 && (n & n - 1) == 0) { return n; } var result = 1; while(result < n) result <<= 1; return result; } ,addNodeWithSpacesAndBorders: function(Graphic,Key,tileSize,tileSpacing,tileBorder,region) { var key = flixel_system_FlxAssets.resolveKey(Graphic,Key); if(key == null) { return null; } key = flixel_FlxG.bitmap.getKeyWithSpacesAndBorders(key,tileSize,tileSpacing,tileBorder,region); if(this.hasNodeWithName(key)) { return this.nodes.h[key].getTileFrames(tileSize,tileSpacing,tileBorder); } var data = flixel_system_FlxAssets.resolveBitmapData(Graphic); if(data == null) { return null; } var nodeData = flixel_util_FlxBitmapDataUtil.addSpacesAndBorders(data,tileSize,tileSpacing,tileBorder,region); var node = this.addNode(nodeData,key); if(node == null) { return null; } if(tileBorder != null) { var x = 2 * tileBorder.x; var y = 2 * tileBorder.y; if(y == null) { y = 0; } if(x == null) { x = 0; } tileSize.set_x(tileSize.x + x); tileSize.set_y(tileSize.y + y); } return node.getTileFrames(tileSize,tileSpacing,tileBorder); } ,getAtlasFrames: function() { var graph = this.get_graphic(); var atlasFrames = graph.get_atlasFrames(); if(graph.get_atlasFrames() == null) { atlasFrames = new flixel_graphics_frames_FlxAtlasFrames(graph); } var h = this.nodes.h; var node_h = h; var node_keys = Object.keys(h); var node_length = node_keys.length; var node_current = 0; while(node_current < node_length) { var node = node_h[node_keys[node_current++]]; this.addNodeToAtlasFrames(node); } return atlasFrames; } ,addNodeToAtlasFrames: function(node) { if(this._graphic == null || this._graphic.get_atlasFrames() == null || node == null) { return; } var atlasFrames = this._graphic.get_atlasFrames(); if(node.filled && !Object.prototype.hasOwnProperty.call(atlasFrames.framesByName.h,node.key)) { var X = node.rect.x | 0; var Y = node.rect.y | 0; var Width = (node.rect.width | 0) - this.border; var Height = (node.rect.height | 0) - this.border; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var frame = rect; var sourceSize; if(node.rotated) { var x = (node.rect.height | 0) - this.border; var y = (node.rect.width | 0) - this.border; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; sourceSize = point; } else { var x = (node.rect.width | 0) - this.border; var y = (node.rect.height | 0) - this.border; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; sourceSize = point; } var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var angle = node.rotated ? -90 : 0; atlasFrames.addAtlasFrame(frame,sourceSize,offset,node.key,angle); } } ,hasNodeWithName: function(nodeName) { return Object.prototype.hasOwnProperty.call(this.nodes.h,nodeName); } ,getNode: function(key) { return this.nodes.h[key]; } ,addNodes: function(bitmaps,keys) { var numKeys = keys.length; var numBitmaps = bitmaps.length; if(numBitmaps != numKeys) { return null; } this._tempStorage = []; var _g = 0; var _g1 = numBitmaps; while(_g < _g1) { var i = _g++; this._tempStorage.push({ bmd : bitmaps[i], keyStr : keys[i]}); } this.addFromAtlasObjects(this._tempStorage); return this; } ,addFromAtlasObjects: function(objects) { objects.sort($bind(this,this.bitmapSorter)); var numBitmaps = objects.length; var _g = 0; var _g1 = numBitmaps; while(_g < _g1) { var i = _g++; this.addNode(objects[i].bmd,objects[i].keyStr); } this._tempStorage = null; } ,bitmapSorter: function(obj1,obj2) { if(this.allowRotation) { var area1 = obj1.bmd.width * obj1.bmd.height; var area2 = obj2.bmd.width * obj2.bmd.height; return area2 - area1; } if(obj2.bmd.width == obj1.bmd.width) { return obj2.bmd.height - obj1.bmd.height; } return obj2.bmd.width - obj1.bmd.width; } ,createQueue: function() { this._tempStorage = []; return this; } ,addToQueue: function(data,key) { if(this._tempStorage == null) { this._tempStorage = []; } this._tempStorage.push({ bmd : data, keyStr : key}); return this; } ,generateFromQueue: function() { if(this._tempStorage != null) { this.addFromAtlasObjects(this._tempStorage); } return this; } ,onClear: function(_) { if(!this.persist || this._graphic != null && this._graphic.useCount <= 0) { this.destroy(); } } ,destroy: function() { this._tempStorage = null; this.deleteSubtree(this.root); this.root = null; flixel_FlxG.bitmap.removeByKey(this.name); this.set_bitmapData(null); this.nodes = null; this._graphic = null; flixel_FlxG.signals.preStateCreate.remove($bind(this,this.onClear)); } ,clear: function() { this.deleteSubtree(this.root); this.initRoot(); flixel_FlxG.bitmap.removeByKey(this.name); this.set_bitmapData(null); this.nodes = new haxe_ds_StringMap(); this._graphic = null; } ,getLibGdxData: function() { var data = "\n"; data += this.name + "\n"; data += "format: RGBA8888\n"; data += "filter: Linear,Linear\n"; data += "repeat: none\n"; var h = this.nodes.h; var node_h = h; var node_keys = Object.keys(h); var node_length = node_keys.length; var node_current = 0; while(node_current < node_length) { var node = node_h[node_keys[node_current++]]; data += node.key + "\n"; data += " rotate: " + (node.rotated == null ? "null" : "" + node.rotated) + "\n"; data += " xy: " + (node.rect.x | 0) + ", " + (node.rect.y | 0) + "\n"; if(this.allowRotation) { data += "size: " + (node.rect.height | 0) + ", " + (node.rect.width | 0) + "\n"; data += "orig: " + (node.rect.height | 0) + ", " + (node.rect.width | 0) + "\n"; } else { data += "size: " + (node.rect.width | 0) + ", " + (node.rect.height | 0) + "\n"; data += "orig: " + (node.rect.width | 0) + ", " + (node.rect.height | 0) + "\n"; } data += " offset: 0, 0\n"; data += " index: -1\n"; } return data; } ,deleteSubtree: function(node) { if(node != null) { if(node.left != null) { this.deleteSubtree(node.left); } if(node.right != null) { this.deleteSubtree(node.right); } node.key = null; node.left = null; node.right = null; node.rect = null; node.atlas = null; } } ,findNodeToInsert: function(insertWidth,insertHeight) { var stack = []; var current = this.root; var emptyNodes = []; var canPlaceRight = false; var canPlaceLeft = false; var looping = true; var result = null; var minArea = this.maxWidth * this.maxHeight + 1; var nodeArea; while(looping) { if(!current.filled && current.left == null && current.right == null && (current.rect.width >= insertWidth && current.rect.height >= insertHeight)) { nodeArea = (current.rect.width | 0) * (current.rect.height | 0); if(nodeArea < minArea) { minArea = nodeArea; result = current; } } if(current.right != null) { var _this = current.right; canPlaceRight = _this.rect.width >= insertWidth && _this.rect.height >= insertHeight; } else { canPlaceRight = false; } if(current.left != null) { var _this1 = current.left; canPlaceLeft = _this1.rect.width >= insertWidth && _this1.rect.height >= insertHeight; } else { canPlaceLeft = false; } if(canPlaceRight && canPlaceLeft) { stack.push(current.right); current = current.left; } else if(canPlaceLeft) { current = current.left; } else if(canPlaceRight) { current = current.right; } else if(stack.length > 0) { current = stack.pop(); } else { looping = false; } } return result; } ,set_bitmapData: function(value) { if(value != null && this._graphic != null) { this._graphic.set_bitmap(value); } return this.bitmapData = value; } ,get_graphic: function() { if(this._graphic != null) { return this._graphic; } this._graphic = flixel_FlxG.bitmap.add(this.bitmapData,false,this.name); this._graphic.persist = this.persist; return this._graphic; } ,set_persist: function(value) { if(this._graphic != null) { this._graphic.persist = value; } return this.persist = value; } ,set_minWidth: function(value) { if(value <= this.maxWidth) { this.minWidth = value; if(value > this.get_width()) { this.set_width(value); } } return this.minWidth; } ,set_minHeight: function(value) { if(value <= this.maxHeight) { this.minHeight = value; if(value > this.get_height()) { this.set_height(value); } } return this.minHeight; } ,get_width: function() { if(this.root != null) { return this.root.rect.width | 0; } return 0; } ,set_width: function(value) { if(value > this.get_width()) { if(this.powerOfTwo) { value = this.getNextPowerOfTwo(value); } if(value <= this.maxWidth) { if(this.root != null && (this.root.rect.width | 0) < value) { this.expandRoot(value,this.root.rect.height | 0,this.needToDivideHorizontally(this.root,this.root.rect.width | 0,this.root.rect.height | 0)); } } } return value; } ,get_height: function() { if(this.root != null) { return this.root.rect.height | 0; } return 0; } ,set_height: function(value) { if(value > this.get_height()) { if(this.powerOfTwo) { value = this.getNextPowerOfTwo(value); } if(value <= this.maxHeight) { if(this.root != null && (this.root.rect.height | 0) < value) { this.expandRoot(this.root.rect.width | 0,value,this.needToDivideHorizontally(this.root,this.root.rect.width | 0,this.root.rect.height | 0)); } } } return value; } ,set_maxWidth: function(value) { if(value >= this.minWidth && (this.root == null || value >= this.get_width())) { this.maxWidth = value; } return this.maxWidth; } ,set_maxHeight: function(value) { if(value >= this.minHeight && (this.root == null || value >= this.get_height())) { this.maxHeight = value; } return this.maxHeight; } ,set_powerOfTwo: function(value) { if(value != this.powerOfTwo && value && this.root != null) { var nextWidth = this.getNextPowerOfTwo(this.root.rect.width | 0); var nextHeight = this.getNextPowerOfTwo(this.root.rect.height | 0); if(nextWidth != (this.root.rect.width | 0) || nextHeight != (this.root.rect.height | 0)) { if(this.maxWidth > 0 && nextWidth > this.maxWidth || this.maxHeight > 0 && nextHeight > this.maxHeight) { return false; } var temp = this.root; var X = 0; var Y = 0; var Width = nextWidth; var Height = nextHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; this.root = new flixel_graphics_atlas_FlxNode(rect,this); if(temp.left != null) { this.divideNode(this.root,temp.rect.width | 0,temp.rect.height | 0,this.needToDivideHorizontally(this.root,temp.rect.width | 0,temp.rect.height | 0)); this.root.left.left = temp; } } } return this.powerOfTwo = value; } ,__class__: flixel_graphics_atlas_FlxAtlas ,__properties__: {set_powerOfTwo:"set_powerOfTwo",set_maxHeight:"set_maxHeight",set_maxWidth:"set_maxWidth",set_minHeight:"set_minHeight",set_minWidth:"set_minWidth",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_persist:"set_persist",get_graphic:"get_graphic",set_bitmapData:"set_bitmapData"} }; var flixel_graphics_atlas_FlxNode = function(rect,atlas,filled,key,rotated) { if(rotated == null) { rotated = false; } if(key == null) { key = ""; } if(filled == null) { filled = false; } this.filled = filled; this.left = null; this.right = null; this.rect = rect; this.key = key; this.atlas = atlas; this.rotated = rotated; }; $hxClasses["flixel.graphics.atlas.FlxNode"] = flixel_graphics_atlas_FlxNode; flixel_graphics_atlas_FlxNode.__name__ = "flixel.graphics.atlas.FlxNode"; flixel_graphics_atlas_FlxNode.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_graphics_atlas_FlxNode.prototype = { left: null ,right: null ,rect: null ,key: null ,filled: null ,atlas: null ,rotated: null ,destroy: function() { this.key = null; this.left = null; this.right = null; this.rect = null; this.atlas = null; } ,canPlace: function(width,height) { if(this.rect.width >= width) { return this.rect.height >= height; } else { return false; } } ,getTileFrames: function(tileSize,tileSpacing,tileBorder) { flixel_FlxG.bitmap.add(this.atlas.bitmapData,false,this.atlas.name); var frame = this.atlas.getAtlasFrames().framesByName.h[this.key]; if(frame != null) { var tileFrames = flixel_graphics_frames_FlxTileFrames.fromFrame(frame,tileSize,tileSpacing); if(tileBorder != null) { tileFrames = tileFrames.addBorder(tileBorder); } return tileFrames; } return null; } ,getImageFrame: function() { flixel_FlxG.bitmap.add(this.atlas.bitmapData,false,this.atlas.name); var frame = this.atlas.getAtlasFrames().framesByName.h[this.key]; if(frame != null) { return flixel_graphics_frames_FlxImageFrame.fromFrame(frame); } return null; } ,get_isEmpty: function() { if(!this.filled && this.left == null) { return this.right == null; } else { return false; } } ,get_x: function() { return this.rect.x | 0; } ,get_y: function() { return this.rect.y | 0; } ,get_width: function() { return this.rect.width | 0; } ,set_width: function(value) { this.rect.width = value; return value; } ,get_height: function() { return this.rect.height | 0; } ,set_height: function(value) { this.rect.height = value; return value; } ,__class__: flixel_graphics_atlas_FlxNode ,__properties__: {get_isEmpty:"get_isEmpty",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",get_y:"get_y",get_x:"get_x"} }; var flixel_graphics_frames_FlxFramesCollection = function(parent,type,border) { this.parent = parent; this.type = type; var tmp; if(border == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; tmp = point; } else { tmp = border; } this.border = tmp; this.frames = []; this.framesByName = new haxe_ds_StringMap(); if(parent != null) { parent.addFrameCollection(this); } }; $hxClasses["flixel.graphics.frames.FlxFramesCollection"] = flixel_graphics_frames_FlxFramesCollection; flixel_graphics_frames_FlxFramesCollection.__name__ = "flixel.graphics.frames.FlxFramesCollection"; flixel_graphics_frames_FlxFramesCollection.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_graphics_frames_FlxFramesCollection.prototype = { frames: null ,framesByName: null ,parent: null ,type: null ,border: null ,getByName: function(name) { return this.framesByName.h[name]; } ,exists: function(name) { return Object.prototype.hasOwnProperty.call(this.framesByName.h,name); } ,getByIndex: function(index) { return this.frames[index]; } ,getIndexByName: function(name) { var _g = 0; var _g1 = this.frames.length; while(_g < _g1) { var i = _g++; if(this.frames[i].name == name) { return i; } } return -1; } ,getFrameIndex: function(frame) { return this.frames.indexOf(frame); } ,destroy: function() { this.frames = flixel_util_FlxDestroyUtil.destroyArray(this.frames); this.border = flixel_util_FlxDestroyUtil.put(this.border); this.framesByName = null; this.parent = null; this.type = null; } ,addEmptyFrame: function(size) { var frame = new flixel_graphics_frames_FlxFrame(this.parent); frame.type = 2; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; frame.set_frame(rect); var this1 = frame.sourceSize; var x = size.width; var y = size.height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.frames.push(frame); return frame; } ,addSpriteSheetFrame: function(region) { var frame = new flixel_graphics_frames_FlxFrame(this.parent); frame.set_frame(this.checkFrame(region)); var this1 = frame.sourceSize; var x = region.width; var y = region.height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = frame.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return this.pushFrame(frame); } ,addAtlasFrame: function(frame,sourceSize,offset,name,angle,flipX,flipY,duration) { if(duration == null) { duration = 0.0; } if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(angle == null) { angle = 0; } if(name != null && Object.prototype.hasOwnProperty.call(this.framesByName.h,name)) { return this.framesByName.h[name]; } var texFrame = new flixel_graphics_frames_FlxFrame(this.parent,angle,flipX,flipY,duration); texFrame.name = name; var this1 = texFrame.sourceSize; var x = sourceSize.x; var y = sourceSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = texFrame.offset; var x = offset.x; var y = offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); texFrame.set_frame(this.checkFrame(frame,name)); sourceSize = flixel_util_FlxDestroyUtil.put(sourceSize); offset = flixel_util_FlxDestroyUtil.put(offset); return this.pushFrame(texFrame); } ,getAllByPrefix: function(prefix) { var list = []; var warnIfEmpty = false; var warningMsg = null; if(warnIfEmpty == null) { warnIfEmpty = true; } var warn = warnIfEmpty; var h = this.framesByName.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var name = _g_key; var frame = _g_value; if(name.indexOf(prefix) == 0) { warn = false; list.push(frame); } } if(warn) { flixel_FlxG.log.advanced(warningMsg != null ? warningMsg : "no frames found with the prefix \"" + prefix + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } return list; } ,forEachByPrefix: function(prefix,func,warnIfEmpty,warningMsg) { if(warnIfEmpty == null) { warnIfEmpty = true; } var warn = warnIfEmpty; var h = this.framesByName.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var name = _g_key; var frame = _g_value; if(name.indexOf(prefix) == 0) { warn = false; func(frame); } } if(warn) { flixel_FlxG.log.advanced(warningMsg != null ? warningMsg : "no frames found with the prefix \"" + prefix + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } ,setFrameOffset: function(name,offsetX,offsetY) { if(Object.prototype.hasOwnProperty.call(this.framesByName.h,name)) { var this1 = this.framesByName.h[name].offset; var x = offsetX; var y = offsetY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { flixel_FlxG.log.advanced("No frame called " + name,flixel_system_debug_log_LogStyle.WARNING,true); } } ,addFrameOffset: function(name,offsetX,offsetY) { if(Object.prototype.hasOwnProperty.call(this.framesByName.h,name)) { var this1 = this.framesByName.h[name].offset; var x = offsetX; var y = offsetY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); } else { flixel_FlxG.log.advanced("No frame called " + name,flixel_system_debug_log_LogStyle.WARNING,true); } } ,setFramesOffsetByPrefix: function(prefix,offsetX,offsetY,warnIfEmpty) { if(warnIfEmpty == null) { warnIfEmpty = true; } var warnIfEmpty1 = warnIfEmpty; var warningMsg = null; if(warnIfEmpty1 == null) { warnIfEmpty1 = true; } var warn = warnIfEmpty1; var h = this.framesByName.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var name = _g_key; var frame = _g_value; if(name.indexOf(prefix) == 0) { warn = false; var this1 = frame.offset; var x = offsetX; var y = offsetY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } if(warn) { flixel_FlxG.log.advanced(warningMsg != null ? warningMsg : "no frames found with the prefix \"" + prefix + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } ,addFramesOffsetByPrefix: function(prefix,offsetX,offsetY,warnIfEmpty) { if(warnIfEmpty == null) { warnIfEmpty = true; } var warnIfEmpty1 = warnIfEmpty; var warningMsg = null; if(warnIfEmpty1 == null) { warnIfEmpty1 = true; } var warn = warnIfEmpty1; var h = this.framesByName.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var name = _g_key; var frame = _g_value; if(name.indexOf(prefix) == 0) { warn = false; var this1 = frame.offset; var x = offsetX; var y = offsetY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); } } if(warn) { flixel_FlxG.log.advanced(warningMsg != null ? warningMsg : "no frames found with the prefix \"" + prefix + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } ,setFrameDuration: function(name,duration) { if(Object.prototype.hasOwnProperty.call(this.framesByName.h,name)) { this.framesByName.h[name].duration = duration; } else { flixel_FlxG.log.advanced("No frame called " + name,flixel_system_debug_log_LogStyle.WARNING,true); } } ,checkFrame: function(frame,name) { var Value = frame.x; var Max = this.parent.width; var lowerBound = Value < 0 ? 0 : Value; var x = Max != null && lowerBound > Max ? Max : lowerBound; var Value = frame.y; var Max = this.parent.height; var lowerBound = Value < 0 ? 0 : Value; var y = Max != null && lowerBound > Max ? Max : lowerBound; var Value = frame.x + frame.width; var Max = this.parent.width; var lowerBound = Value < 0 ? 0 : Value; var r = Max != null && lowerBound > Max ? Max : lowerBound; var Value = frame.y + frame.height; var Max = this.parent.height; var lowerBound = Value < 0 ? 0 : Value; var b = Max != null && lowerBound > Max ? Max : lowerBound; var X = x; var Y = y; var Width = r - x; var Height = b - y; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } frame.x = X; frame.y = Y; frame.width = Width; frame.height = Height; if(frame.width <= 0 || frame.height <= 0) { flixel_FlxG.log.advanced("The frame " + name + " has incorrect data and results in an image with the size of (0, 0)",flixel_system_debug_log_LogStyle.WARNING,true); } return frame; } ,pushFrame: function(frameObj,overwriteHash) { if(overwriteHash == null) { overwriteHash = false; } var name = frameObj.name; if(name != null && Object.prototype.hasOwnProperty.call(this.framesByName.h,name) && !overwriteHash) { return this.framesByName.h[name]; } this.frames.push(frameObj); frameObj.cacheFrameMatrix(); if(name != null) { this.framesByName.h[name] = frameObj; } return frameObj; } ,addBorder: function(border) { throw haxe_Exception.thrown("To be overriden in subclasses"); } ,toString: function() { var value = this.frames; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "frames"; _this.value = value; var value = this.type; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "type"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,get_numFrames: function() { return this.frames.length; } ,get_framesHash: function() { return this.framesByName; } ,set_framesHash: function(value) { return this.framesByName = value; } ,__class__: flixel_graphics_frames_FlxFramesCollection ,__properties__: {set_framesHash:"set_framesHash",get_framesHash:"get_framesHash",get_numFrames:"get_numFrames"} }; var flixel_graphics_frames_FlxAtlasFrames = function(parent,border) { this.usedGraphics = []; flixel_graphics_frames_FlxFramesCollection.call(this,parent,flixel_graphics_frames_FlxFrameCollectionType.ATLAS,border); }; $hxClasses["flixel.graphics.frames.FlxAtlasFrames"] = flixel_graphics_frames_FlxAtlasFrames; flixel_graphics_frames_FlxAtlasFrames.__name__ = "flixel.graphics.frames.FlxAtlasFrames"; flixel_graphics_frames_FlxAtlasFrames.fromAseprite = function(source,description) { return flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerJson(source,description,true); }; flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerJson = function(source,description,useFrameDuration) { if(useFrameDuration == null) { useFrameDuration = false; } var graphic = flixel_FlxG.bitmap.add(source,false); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } if(graphic == null || description == null) { return null; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); var data = flixel_system_FlxJsonAsset.getData(description); if(((data.frames) instanceof Array)) { var _g = 0; var _g1 = data.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; flixel_graphics_frames_FlxAtlasFrames.texturePackerHelper(frame.filename,frame,frames,useFrameDuration); } } else { var access = data.frames; var _g_access = access; var _g_keys = Reflect.fields(access); var _g_index = 0; while(_g_index < _g_keys.length) { var key = _g_keys[_g_index++]; var _g_value = _g_access[key]; var _g_key = key; var name = _g_key; var frame = _g_value; flixel_graphics_frames_FlxAtlasFrames.texturePackerHelper(name,frame,frames,useFrameDuration); } } return frames; }; flixel_graphics_frames_FlxAtlasFrames.texturePackerHelper = function(frameName,frameData,frames,useFrameDuration) { if(useFrameDuration == null) { useFrameDuration = false; } var rotated = frameData.rotated; var angle = 0; var frameRect = null; var frame = frameData.frame; if(rotated) { var X = frame.x; var Y = frame.y; var Width = frame.h; var Height = frame.w; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; angle = -90; } else { var X = frame.x; var Y = frame.y; var Width = frame.w; var Height = frame.h; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; } var x = frameData.sourceSize.w; var y = frameData.sourceSize.h; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var sourceSize = point; var x = frameData.spriteSourceSize.x; var y = frameData.spriteSourceSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var duration = useFrameDuration && frameData.duration != null ? frameData.duration / 1000 : 0; frames.addAtlasFrame(frameRect,sourceSize,offset,frameName,angle,false,false,duration); }; flixel_graphics_frames_FlxAtlasFrames.fromLibGdx = function(source,description) { var graphic = flixel_FlxG.bitmap.add(source); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } if(graphic == null || description == null) { return null; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); if(openfl_utils_Assets.exists(description)) { description = openfl_utils_Assets.getText(description); } var pack = StringTools.trim(description); var lines = pack.split("\n"); var repeatLine = lines[3].indexOf("repeat:") > -1 ? 3 : 4; lines.splice(0,repeatLine + 1); var numElementsPerImage = 7; var numImages = lines.length / numElementsPerImage | 0; var _g = 0; var _g1 = numImages; while(_g < _g1) { var i = _g++; var curIndex = i * numElementsPerImage; var name = lines[curIndex++]; var rotated = lines[curIndex++].indexOf("true") >= 0; var angle = rotated ? 90 : 0; var tempString = lines[curIndex++]; var size = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString); var imageX = size.x; var imageY = size.y; tempString = lines[curIndex++]; size = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString); var imageWidth = size.x; var imageHeight = size.y; var X = imageX; var Y = imageY; var Width = imageWidth; var Height = imageHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var rect1 = rect; tempString = lines[curIndex++]; size = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString); var x = size.x; var y = size.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var sourceSize = point; tempString = lines[curIndex++]; size = flixel_graphics_frames_FlxAtlasFrames.getDimensions(tempString); tempString = lines[curIndex++]; var index = Std.parseInt(tempString.split(":")[1]); if(index != -1) { name += "_" + index; } var x2 = size.x; var y2 = sourceSize.y - size.y - imageHeight; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var x3 = x2; var y3 = y2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x3,y3); point1._inPool = false; var offset = point1; frames.addAtlasFrame(rect1,sourceSize,offset,name,angle); } return frames; }; flixel_graphics_frames_FlxAtlasFrames.getDimensions = function(line) { var colonPosition = line.indexOf(":"); var comaPosition = line.indexOf(","); return { x : Std.parseInt(line.substring(colonPosition + 1,comaPosition)), y : Std.parseInt(line.substring(comaPosition + 1,line.length))}; }; flixel_graphics_frames_FlxAtlasFrames.fromSparrow = function(source,xml) { var graphic = flixel_FlxG.bitmap.add(source); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } if(graphic == null || xml == null) { return null; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); var x = flixel_system_FlxXmlAsset.getXml(xml).firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } var data = x; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"SubTexture"); while(_g < _g1.length) { var texture = _g1[_g]; ++_g; var name = haxe_xml__$Access_AttribAccess.resolve(texture,"name"); var trimmed = haxe_xml__$Access_HasAttribAccess.resolve(texture,"frameX"); var rotated = haxe_xml__$Access_HasAttribAccess.resolve(texture,"rotated") && haxe_xml__$Access_AttribAccess.resolve(texture,"rotated") == "true"; var flipX = haxe_xml__$Access_HasAttribAccess.resolve(texture,"flipX") && haxe_xml__$Access_AttribAccess.resolve(texture,"flipX") == "true"; var flipY = haxe_xml__$Access_HasAttribAccess.resolve(texture,"flipY") && haxe_xml__$Access_AttribAccess.resolve(texture,"flipY") == "true"; var X = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"x")); var Y = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"y")); var Width = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"width")); var Height = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"height")); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var rect1 = rect; var size = trimmed ? new openfl_geom_Rectangle(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameX")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameY")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameWidth")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameHeight"))) : new openfl_geom_Rectangle(0,0,rect1.width,rect1.height); var angle = rotated ? -90 : 0; var x = -size.get_left(); var y = -size.get_top(); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var x2 = size.width; var y2 = size.height; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var x3 = x2; var y3 = y2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x3,y3); point1._inPool = false; var sourceSize = point1; if(rotated && !trimmed) { var x4 = size.height; var y4 = size.width; if(y4 == null) { y4 = 0; } if(x4 == null) { x4 = 0; } sourceSize.set_x(x4); sourceSize.set_y(y4); } frames.addAtlasFrame(rect1,sourceSize,offset,name,angle,flipX,flipY); } return frames; }; flixel_graphics_frames_FlxAtlasFrames.fromTexturePackerXml = function(source,xml) { var graphic = flixel_FlxG.bitmap.add(source,false); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } if(graphic == null || xml == null) { return null; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); var data = flixel_system_FlxXmlAsset.getXml(xml); var sprite = data.firstElement().elements(); while(sprite.hasNext()) { var sprite1 = sprite.next(); var trimmed = sprite1.exists("oX") || sprite1.exists("oY"); var rotated = sprite1.exists("r") && sprite1.get("r") == "y"; var angle = rotated ? -90 : 0; var name = sprite1.get("n"); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var X = Std.parseInt(sprite1.get("x")); var Y = Std.parseInt(sprite1.get("y")); var Width = Std.parseInt(sprite1.get("w")); var Height = Std.parseInt(sprite1.get("h")); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var rect1 = rect; var x2 = rect1.width; var y2 = rect1.height; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var x3 = x2; var y3 = y2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x3,y3); point1._inPool = false; var sourceSize = point1; if(trimmed) { var x4 = Std.parseInt(sprite1.get("oX")); var y4 = Std.parseInt(sprite1.get("oY")); if(y4 == null) { y4 = 0; } if(x4 == null) { x4 = 0; } offset.set_x(x4); offset.set_y(y4); var x5 = Std.parseInt(sprite1.get("oW")); var y5 = Std.parseInt(sprite1.get("oH")); if(y5 == null) { y5 = 0; } if(x5 == null) { x5 = 0; } sourceSize.set_x(x5); sourceSize.set_y(y5); } frames.addAtlasFrame(rect1,sourceSize,offset,name,angle); } return frames; }; flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker = function(Source,Description) { var graphic = flixel_FlxG.bitmap.add(Source); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } if(graphic == null || Description == null) { return null; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); if(openfl_utils_Assets.exists(Description)) { Description = openfl_utils_Assets.getText(Description); } var pack = StringTools.trim(Description); var lines = pack.split("\n"); var _g = 0; var _g1 = lines.length; while(_g < _g1) { var i = _g++; var currImageData = lines[i].split("="); var name = StringTools.trim(currImageData[0]); var currImageRegion = StringTools.trim(currImageData[1]).split(" "); var X = Std.parseInt(currImageRegion[0]); var Y = Std.parseInt(currImageRegion[1]); var Width = Std.parseInt(currImageRegion[2]); var Height = Std.parseInt(currImageRegion[3]); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var rect1 = rect; var x = rect1.width; var y = rect1.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var sourceSize = point; var x2 = 0; var y2 = 0; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x2,y2); point1._inPool = false; var offset = point1; frames.addAtlasFrame(rect1,sourceSize,offset,name,0); } return frames; }; flixel_graphics_frames_FlxAtlasFrames.findFrame = function(graphic,border) { if(border == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; border = point1; } var type = flixel_graphics_frames_FlxFrameCollectionType.ATLAS; var atlasFrames; if(graphic.shader == null) { atlasFrames = []; } else { var collections = graphic.frameCollections.get(type); if(collections == null) { collections = []; graphic.frameCollections.set(type,collections); } atlasFrames = collections; } var atlasFrames1 = atlasFrames; var _g = 0; while(_g < atlasFrames1.length) { var atlas = atlasFrames1[_g]; ++_g; var _this = atlas.border; var result = Math.abs(_this.x - border.x) <= 0.0000001 && Math.abs(_this.y - border.y) <= 0.0000001; if(border._weak) { border.put(); } if(result) { return atlas; } } return null; }; flixel_graphics_frames_FlxAtlasFrames.__super__ = flixel_graphics_frames_FlxFramesCollection; flixel_graphics_frames_FlxAtlasFrames.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{ usedGraphics: null ,destroy: function() { while(this.usedGraphics.length > 0) this.usedGraphics.shift().decrementUseCount(); flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this); } ,addBorder: function(border) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; var this1 = point1; var point = this.border; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var this2 = this1; var x = border.x; var y = border.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x + x); this2.set_y(this2.y + y); if(border._weak) { border.put(); } var resultBorder = this2; var atlasFrames = flixel_graphics_frames_FlxAtlasFrames.findFrame(this.parent,resultBorder); if(atlasFrames != null) { return atlasFrames; } atlasFrames = new flixel_graphics_frames_FlxAtlasFrames(this.parent,resultBorder); var _g = 0; var _g1 = this.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; atlasFrames.pushFrame(frame.setBorderTo(border)); } return atlasFrames; } ,addAtlas: function(collection,overwriteHash) { if(overwriteHash == null) { overwriteHash = false; } var _g = 0; var _g1 = collection.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; this.pushFrame(frame,overwriteHash); } if(this.usedGraphics.indexOf(collection.parent) == -1) { this.usedGraphics.push(collection.parent); collection.parent.incrementUseCount(); } return this; } ,concat: function(collection,overwriteHash) { if(overwriteHash == null) { overwriteHash = false; } var newCollection = new flixel_graphics_frames_FlxAtlasFrames(this.parent); newCollection.addAtlas(this); newCollection.addAtlas(this,overwriteHash); return this; } ,__class__: flixel_graphics_frames_FlxAtlasFrames }); var flixel_graphics_frames_FlxBitmapFont = function(frame,border) { this.spaceWidth = 0; this.minOffsetX = 0; this.numLetters = 0; this.italic = false; this.bold = false; this.lineHeight = 0; this.size = 0; flixel_graphics_frames_FlxFramesCollection.call(this,frame.parent,flixel_graphics_frames_FlxFrameCollectionType.FONT,border); this.frame = frame; this.parent.persist = true; this.parent.set_destroyOnNoUse(false); this.charMap = new haxe_ds_IntMap(); this.charAdvance = new haxe_ds_IntMap(); }; $hxClasses["flixel.graphics.frames.FlxBitmapFont"] = flixel_graphics_frames_FlxBitmapFont; flixel_graphics_frames_FlxBitmapFont.__name__ = "flixel.graphics.frames.FlxBitmapFont"; flixel_graphics_frames_FlxBitmapFont.getDefaultFont = function() { var graphic = flixel_FlxG.bitmap._cache.h["DEFAULT_FONT_KEY"]; if(graphic != null) { var font = flixel_graphics_frames_FlxBitmapFont.findFont(graphic.get_imageFrame().get_frame()); if(font != null) { return font; } } var letters = ""; var bd = new openfl_display_BitmapData(700,9,true,-7829368); graphic = flixel_FlxG.bitmap.add(bd,false,"DEFAULT_FONT_KEY"); var letterPos = 0; var i = 0; while(i < " 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000".length) { letters += HxOverrides.substr(" 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000",i,1); var gw = Std.parseInt(HxOverrides.substr(" 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000",++i,1)); var gh = Std.parseInt(HxOverrides.substr(" 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000",++i,1)); var _g = 0; var _g1 = gh; while(_g < _g1) { var py = _g++; var _g2 = 0; var _g3 = gw; while(_g2 < _g3) { var px = _g2++; ++i; if(HxOverrides.substr(" 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000",i,1) == "1") { bd.setPixel32(1 + letterPos * 7 + px,1 + py,-1); } else { bd.setPixel32(1 + letterPos * 7 + px,1 + py,0); } } } ++i; ++letterPos; } return flixel_graphics_frames_FlxBitmapFont.fromXNA(graphic,letters); }; flixel_graphics_frames_FlxBitmapFont.fromAngelCode = function(source,data) { var frame = null; if(((source) instanceof flixel_graphics_frames_FlxFrame)) { frame = source; } else { var graphic = flixel_FlxG.bitmap.add(source); frame = graphic.get_imageFrame().get_frame(); } var font = flixel_graphics_frames_FlxBitmapFont.findFont(frame); if(font != null) { return font; } font = new flixel_graphics_frames_FlxBitmapFont(frame); var fontInfo = flixel_graphics_frames_bmfont_BMFont.parse(data); font.lineHeight = fontInfo.common.lineHeight; font.size = fontInfo.info.size; font.fontName = fontInfo.info.face; font.bold = fontInfo.info.bold; font.italic = fontInfo.info.italic; var _g = 0; var _g1 = fontInfo.chars; while(_g < _g1.length) { var char = _g1[_g]; ++_g; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; var frame = rect; frame.x = char.x; frame.y = char.y; frame.width = char.width; frame.height = char.height; font.minOffsetX = font.minOffsetX < -char.xoffset ? -char.xoffset : font.minOffsetX; if(char.id == -1) { throw haxe_Exception.thrown("Invalid font data!"); } var char1 = char.id; var x = char.xoffset; var y = char.yoffset; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; font.addCharFrame(char1,frame,point,char.xadvance); if(char.id == 32) { font.spaceWidth = char.xadvance; } else { font.lineHeight = font.lineHeight > char.height + char.yoffset ? font.lineHeight : char.height + char.yoffset; } } font.updateSourceHeight(); return font; }; flixel_graphics_frames_FlxBitmapFont.fromXNA = function(source,letters,charBGColor) { if(charBGColor == null) { charBGColor = 0; } var graphic = null; var frame = null; if(((source) instanceof flixel_graphics_frames_FlxFrame)) { frame = source; graphic = frame.parent; } else { graphic = flixel_FlxG.bitmap.add(source); frame = graphic.get_imageFrame().get_frame(); } var font = flixel_graphics_frames_FlxBitmapFont.findFont(frame); if(font != null) { return font; } if(letters == null) { letters = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; } font = new flixel_graphics_frames_FlxBitmapFont(frame); font.fontName = graphic.key; var bmd = graphic.bitmap; var p = new openfl_geom_Point(); p.setTo(0,0); var x = p.x; var y = p.y; if(frame.angle == -90) { p.x = frame.frame.width - y; p.y = x; } else if(frame.angle == 90) { p.x = y; p.y = frame.frame.height - x; } p.x += frame.frame.x; p.y += frame.frame.y; var globalBGColor = bmd.getPixel(p.x | 0,p.y | 0); var frameWidth = frame.frame.width | 0; var frameHeight = frame.frame.height | 0; var letterIdx = 0; var charCode; var numLetters = UnicodeString.get_length(letters); var rect; var offset; var xAdvance; var cy = 0; var cx; var gx; var gy; var gw; var gh; while(cy < frameHeight && letterIdx < numLetters) { var rowHeight = 0; cx = 0; while(cx < frameWidth && letterIdx < numLetters) { p.setTo(cx,cy); var x = p.x; var y = p.y; if(frame.angle == -90) { p.x = frame.frame.width - y; p.y = x; } else if(frame.angle == 90) { p.x = y; p.y = frame.frame.height - x; } p.x += frame.frame.x; p.y += frame.frame.y; if(bmd.getPixel(p.x | 0,p.y | 0) != globalBGColor) { gx = cx; gy = cy; p.setTo(gx,gy); var x1 = p.x; var y1 = p.y; if(frame.angle == -90) { p.x = frame.frame.width - y1; p.y = x1; } else if(frame.angle == 90) { p.x = y1; p.y = frame.frame.height - x1; } p.x += frame.frame.x; p.y += frame.frame.y; while(gx < frameWidth && bmd.getPixel(p.x | 0,p.y | 0) != globalBGColor) { ++gx; p.setTo(gx,cy); var x2 = p.x; var y2 = p.y; if(frame.angle == -90) { p.x = frame.frame.width - y2; p.y = x2; } else if(frame.angle == 90) { p.x = y2; p.y = frame.frame.height - x2; } p.x += frame.frame.x; p.y += frame.frame.y; } p.setTo(gx - 1,gy); var x3 = p.x; var y3 = p.y; if(frame.angle == -90) { p.x = frame.frame.width - y3; p.y = x3; } else if(frame.angle == 90) { p.x = y3; p.y = frame.frame.height - x3; } p.x += frame.frame.x; p.y += frame.frame.y; while(gy < frameHeight && bmd.getPixel(p.x | 0,p.y | 0) != globalBGColor) { ++gy; p.setTo(cx,gy); var x4 = p.x; var y4 = p.y; if(frame.angle == -90) { p.x = frame.frame.width - y4; p.y = x4; } else if(frame.angle == 90) { p.x = y4; p.y = frame.frame.height - x4; } p.x += frame.frame.x; p.y += frame.frame.y; } gw = gx - cx; gh = gy - cy; charCode = UnicodeString.charCodeAt(letters,letterIdx); var X = cx; var Y = cy; var Width = gw; var Height = gh; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect1 = _this; rect1._inPool = false; rect = rect1; var x5 = 0; var y5 = 0; if(y5 == null) { y5 = 0; } if(x5 == null) { x5 = 0; } var x6 = x5; var y6 = y5; if(y6 == null) { y6 = 0; } if(x6 == null) { x6 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x6,y6); point._inPool = false; offset = point; xAdvance = gw; font.addCharFrame(charCode,rect,offset,xAdvance); if(charCode == 32) { font.spaceWidth = xAdvance; } if(gh > rowHeight) { rowHeight = gh; } if(gh > font.size) { font.size = gh; } cx += gw; ++letterIdx; } ++cx; } cy += rowHeight + 1; } font.lineHeight = font.size; font.updateSourceHeight(); flixel_graphics_frames_FlxBitmapFont.point.setTo(frame.frame.x | 0,frame.frame.y | 0); var frameRect = flixel_graphics_frames_FlxBitmapFont.flashRect; var _this = frame.frame; var FlashRect = frameRect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; var bgColor32 = bmd.getPixel32(frame.frame.x | 0,frame.frame.y | 0); bmd.threshold(bmd,frameRect,flixel_graphics_frames_FlxBitmapFont.point,"==",bgColor32,0,-1,true); if(charBGColor != 0) { bmd.threshold(bmd,frameRect,flixel_graphics_frames_FlxBitmapFont.point,"==",charBGColor,0,-1,true); } return font; }; flixel_graphics_frames_FlxBitmapFont.transformPoint = function(point,frame) { var x = point.x; var y = point.y; if(frame.angle == -90) { point.x = frame.frame.width - y; point.y = x; } else if(frame.angle == 90) { point.x = y; point.y = frame.frame.height - x; } point.x += frame.frame.x; point.y += frame.frame.y; return point; }; flixel_graphics_frames_FlxBitmapFont.fromMonospace = function(source,letters,charSize,region,spacing) { var graphic = null; var frame = null; if(((source) instanceof flixel_graphics_frames_FlxFrame)) { frame = source; graphic = frame.parent; } else { graphic = flixel_FlxG.bitmap.add(source); frame = graphic.get_imageFrame().get_frame(); } var font = flixel_graphics_frames_FlxBitmapFont.findFont(frame); if(font != null) { return font; } if(letters == null) { letters = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; } if(region == null) { var X = 0; var Y = 0; var Width = frame.sourceSize.x; var Height = frame.sourceSize.y; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } var _this = flixel_math_FlxRect._pool.get(); var X = X1; var Y = Y1; var Width = Width1; var Height = Height1; 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; var rect = _this; rect._inPool = false; var rect1 = rect; rect1._weak = true; region = rect1; } if(spacing == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; spacing = point; } var bitmapWidth = region.width | 0; var bitmapHeight = region.height | 0; var startX = region.x | 0; var startY = region.y | 0; if(region._weak) { if(!region._inPool) { region._inPool = true; region._weak = false; flixel_math_FlxRect._pool.putUnsafe(region); } } var xSpacing = spacing.x | 0; var ySpacing = spacing.y | 0; var charWidth = charSize.x | 0; var charHeight = charSize.y | 0; var spacedWidth = charWidth + xSpacing; var spacedHeight = charHeight + ySpacing; var numRows = charHeight == 0 ? 1 : (bitmapHeight + ySpacing) / spacedHeight | 0; var numCols = charWidth == 0 ? 1 : (bitmapWidth + xSpacing) / spacedWidth | 0; font = new flixel_graphics_frames_FlxBitmapFont(frame); font.fontName = graphic.key; font.lineHeight = font.size = charHeight; var charRect; var offset; var xAdvance = charWidth; font.spaceWidth = xAdvance; var letterIndex = 0; var numLetters = UnicodeString.get_length(letters); var _g = 0; var _g1 = numRows; while(_g < _g1) { var j = _g++; var _g2 = 0; var _g3 = numCols; while(_g2 < _g3) { var i = _g2++; var X = startX + i * spacedWidth; var Y = startY + j * spacedHeight; var Width = charWidth; var Height = charHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; charRect = rect; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; offset = point; font.addCharFrame(UnicodeString.charCodeAt(letters,letterIndex),charRect,offset,xAdvance); ++letterIndex; if(letterIndex >= numLetters) { return font; } } } font.updateSourceHeight(); return font; }; flixel_graphics_frames_FlxBitmapFont.findFont = function(frame,border) { if(border == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; border = point1; } var _this = frame.parent; var type = flixel_graphics_frames_FlxFrameCollectionType.FONT; var bitmapFonts; if(_this.shader == null) { bitmapFonts = []; } else { var collections = _this.frameCollections.get(type); if(collections == null) { collections = []; _this.frameCollections.set(type,collections); } bitmapFonts = collections; } var bitmapFonts1 = bitmapFonts; var _g = 0; while(_g < bitmapFonts1.length) { var font = bitmapFonts1[_g]; ++_g; var tmp; if(font.frame == frame) { var _this = font.border; var result = Math.abs(_this.x - border.x) <= 0.0000001 && Math.abs(_this.y - border.y) <= 0.0000001; if(border._weak) { border.put(); } tmp = result; } else { tmp = false; } if(tmp) { return font; } } return null; }; flixel_graphics_frames_FlxBitmapFont.__super__ = flixel_graphics_frames_FlxFramesCollection; flixel_graphics_frames_FlxBitmapFont.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{ size: null ,lineHeight: null ,bold: null ,italic: null ,fontName: null ,numLetters: null ,minOffsetX: null ,spaceWidth: null ,charMap: null ,charAdvance: null ,frame: null ,destroy: function() { flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this); this.frame = null; this.fontName = null; this.charMap = null; this.charAdvance = null; } ,addCharFrame: function(charCode,frame,offset,xAdvance) { var s = "" + String.fromCodePoint(charCode); if(s == null) { s = ""; } var charName = s; if(frame.width == 0 || frame.height == 0 || this.framesByName.h[charName] != null) { return; } var charFrame = this.frame.subFrameTo(frame); var w = charFrame.sourceSize.x; var h = charFrame.sourceSize.y; w += offset.x > 0 ? offset.x : 0; h += offset.y > 0 ? offset.y : 0; var this1 = charFrame.sourceSize; var x = w; var y = h; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = charFrame.offset; var x = offset.x; var y = offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(offset._weak) { offset.put(); } charFrame.name = charName; this.pushFrame(charFrame); this.charMap.h[charCode] = charFrame; this.charAdvance.h[charCode] = xAdvance; offset.put(); } ,updateSourceHeight: function() { var _g = 0; var _g1 = this.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; frame.sourceSize.set_y(this.lineHeight); frame.cacheFrameMatrix(); } } ,charExists: function(charCode) { return this.charMap.h.hasOwnProperty(charCode); } ,getCharFrame: function(charCode) { return this.charMap.h[charCode]; } ,getCharAdvance: function(charCode) { if(this.charAdvance.h.hasOwnProperty(charCode)) { return this.charAdvance.h[charCode]; } else { return 0; } } ,getCharWidth: function(charCode) { if(this.charMap.h.hasOwnProperty(charCode)) { return this.charMap.h[charCode].sourceSize.x; } else { return 0; } } ,addBorder: function(border) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; var this1 = point1; var point = this.border; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var this2 = this1; var x = border.x; var y = border.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x + x); this2.set_y(this2.y + y); if(border._weak) { border.put(); } var resultBorder = this2; var font = flixel_graphics_frames_FlxBitmapFont.findFont(this.frame,resultBorder); if(font != null) { return font; } font = new flixel_graphics_frames_FlxBitmapFont(this.frame,border); font.spaceWidth = this.spaceWidth; font.fontName = this.fontName; font.numLetters = this.numLetters; font.minOffsetX = this.minOffsetX; font.size = this.size; font.lineHeight = this.lineHeight; font.italic = this.italic; font.bold = this.bold; var charWithBorder; var code; var _g = 0; var _g1 = this.frames; while(_g < _g1.length) { var char = _g1[_g]; ++_g; charWithBorder = char.setBorderTo(border); font.pushFrame(charWithBorder); code = UnicodeString.charCodeAt(char.name,0); font.charMap.h[code] = charWithBorder; font.charAdvance.h[code] = this.charAdvance.h[code]; } font.updateSourceHeight(); return font; } ,__class__: flixel_graphics_frames_FlxBitmapFont }); var flixel_graphics_frames_FlxFilterFrames = function(sourceFrames,widthInc,heightInc,filters) { if(heightInc == null) { heightInc = 0; } if(widthInc == null) { widthInc = 0; } this.heightInc = 0; this.widthInc = 0; flixel_graphics_frames_FlxFramesCollection.call(this,null,flixel_graphics_frames_FlxFrameCollectionType.FILTER); this.sourceFrames = sourceFrames; if(widthInc < 0) { widthInc = 0; } if(heightInc < 0) { heightInc = 0; } widthInc = 2 * Math.ceil(0.5 * widthInc); heightInc = 2 * Math.ceil(0.5 * heightInc); this.widthInc = widthInc; this.heightInc = heightInc; this.set_filters(filters == null ? [] : filters); this.genFrames(); this.applyFilters(); }; $hxClasses["flixel.graphics.frames.FlxFilterFrames"] = flixel_graphics_frames_FlxFilterFrames; flixel_graphics_frames_FlxFilterFrames.__name__ = "flixel.graphics.frames.FlxFilterFrames"; flixel_graphics_frames_FlxFilterFrames.fromFrames = function(frames,widthInc,heightInc,filters) { if(heightInc == null) { heightInc = 0; } if(widthInc == null) { widthInc = 0; } return new flixel_graphics_frames_FlxFilterFrames(frames,widthInc,heightInc,filters); }; flixel_graphics_frames_FlxFilterFrames.__super__ = flixel_graphics_frames_FlxFramesCollection; flixel_graphics_frames_FlxFilterFrames.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{ sourceFrames: null ,widthInc: null ,heightInc: null ,filters: null ,applyToSprite: function(spr,saveAnimations,updateFrames) { if(updateFrames == null) { updateFrames = false; } if(saveAnimations == null) { saveAnimations = false; } if(updateFrames) { this.set_filters(this.filters); } var w = spr.get_width(); var h = spr.get_height(); spr.setFrames(this,saveAnimations); var this1 = spr.offset; var x = 0.5 * this.widthInc; var y = 0.5 * this.heightInc; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); spr.setSize(w,h); } ,genFrames: function() { var canvas; var graph; var filterFrame; var _g = 0; var _g1 = this.sourceFrames.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; canvas = new openfl_display_BitmapData(frame.sourceSize.x + this.widthInc | 0,frame.sourceSize.y + this.heightInc | 0,true,0); graph = flixel_graphics_FlxGraphic.fromBitmapData(canvas,false,null,false); filterFrame = graph.get_imageFrame().get_frame(); this.frames.push(filterFrame); if(frame.name != null) { filterFrame.name = frame.name; this.framesByName.h[frame.name] = filterFrame; } } this.regenBitmaps(false); } ,addFilter: function(filter) { if(filter != null) { this.filters.push(filter); this.applyFilter(filter); } } ,removeFilter: function(filter) { if(this.filters.length == 0 || filter == null) { return; } if(HxOverrides.remove(this.filters,filter)) { this.regenAndApplyFilters(); } } ,clearFilters: function() { if(this.filters.length == 0) { return; } this.filters.splice(0,this.filters.length); this.regenBitmaps(); } ,regenAndApplyFilters: function() { this.regenBitmaps(); this.applyFilters(); } ,regenBitmaps: function(fill) { if(fill == null) { fill = true; } var numFrames = this.frames.length; var frame; var sourceFrame; var frameOffset = flixel_graphics_frames_FlxFilterFrames.point; var _g = 0; var _g1 = numFrames; while(_g < _g1) { var i = _g++; sourceFrame = this.sourceFrames.frames[i]; frame = this.frames[i]; if(fill) { frame.parent.bitmap.fillRect(frame.parent.bitmap.rect,0); } frameOffset.setTo(this.widthInc * 0.5,this.heightInc * 0.5); sourceFrame.paint(frame.parent.bitmap,frameOffset,true); } } ,applyFilter: function(filter) { var bitmap; var _g = 0; var _g1 = this.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; flixel_graphics_frames_FlxFilterFrames.point.setTo(0,0); flixel_graphics_frames_FlxFilterFrames.rect.setTo(0,0,frame.sourceSize.x,frame.sourceSize.y); bitmap = frame.parent.bitmap; bitmap.applyFilter(bitmap,flixel_graphics_frames_FlxFilterFrames.rect,flixel_graphics_frames_FlxFilterFrames.point,filter); } } ,applyFilters: function() { var _g = 0; var _g1 = this.filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; this.applyFilter(filter); } } ,destroy: function() { this.sourceFrames = null; this.set_filters(null); var _g = 0; var _g1 = this.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; frame.parent.destroy(); } flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this); } ,set_filters: function(value) { this.filters = value; if(value != null) { this.regenAndApplyFilters(); } return this.filters; } ,__class__: flixel_graphics_frames_FlxFilterFrames ,__properties__: $extend(flixel_graphics_frames_FlxFramesCollection.prototype.__properties__,{set_filters:"set_filters"}) }); var flixel_math_FlxMatrix = function(a,b,c,d,tx,ty) { openfl_geom_Matrix.call(this,a,b,c,d,tx,ty); }; $hxClasses["flixel.math.FlxMatrix"] = flixel_math_FlxMatrix; flixel_math_FlxMatrix.__name__ = "flixel.math.FlxMatrix"; flixel_math_FlxMatrix.__super__ = openfl_geom_Matrix; flixel_math_FlxMatrix.prototype = $extend(openfl_geom_Matrix.prototype,{ rotateWithTrig: function(cos,sin) { 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; return this; } ,rotateBy180: function() { this.setTo(-this.a,-this.b,-this.c,-this.d,-this.tx,-this.ty); return this; } ,rotateByPositive90: function() { this.setTo(-this.b,this.a,-this.d,this.c,-this.ty,this.tx); return this; } ,rotateByNegative90: function() { this.setTo(this.b,-this.a,this.d,-this.c,this.ty,-this.tx); return this; } ,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; } ,__class__: flixel_math_FlxMatrix }); var flixel_graphics_frames_FlxFrame = function(parent,angle,flipX,flipY,duration) { if(duration == null) { duration = 0.0; } if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(angle == null) { angle = 0; } this.parent = parent; this.angle = angle; this.flipX = flipX; this.flipY = flipY; this.duration = duration; this.type = 0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.sourceSize = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.offset = point; this.blitMatrix = new Array(6); if(flixel_FlxG.renderTile) { this.tileMatrix = new Array(6); } }; $hxClasses["flixel.graphics.frames.FlxFrame"] = flixel_graphics_frames_FlxFrame; flixel_graphics_frames_FlxFrame.__name__ = "flixel.graphics.frames.FlxFrame"; flixel_graphics_frames_FlxFrame.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_graphics_frames_FlxFrame.sortFrames = function(frames,prefix,suffix,warn) { if(warn == null) { warn = true; } flixel_graphics_frames_FlxFrame.sortHelper(frames,prefix.length,suffix == null ? 0 : suffix.length,warn); }; flixel_graphics_frames_FlxFrame.sort = function(frames,prefixLength,suffixLength,warn) { if(warn == null) { warn = true; } flixel_graphics_frames_FlxFrame.sortHelper(frames,prefixLength,suffixLength,warn); }; flixel_graphics_frames_FlxFrame.sortHelper = function(frames,prefixLength,suffixLength,warn) { if(warn == null) { warn = true; } if(warn) { var _g = 0; while(_g < frames.length) { var frame = frames[_g]; ++_g; var name = frame.name; var nameSub = name.substring(prefixLength,name.length - suffixLength); var num = Std.parseInt(nameSub); if(num == null) { flixel_FlxG.log.advanced("Could not parse frame number of \"" + nameSub + "\" in frame named \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } else if(num < 0) { flixel_FlxG.log.advanced("Found negative frame number \"" + nameSub + "\" in frame named \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } } } var prefixLength1 = prefixLength; var suffixLength1 = suffixLength; haxe_ds_ArraySort.sort(frames,function(frame1,frame2) { return flixel_graphics_frames_FlxFrame.sortByName(frame1,frame2,prefixLength1,suffixLength1); }); }; flixel_graphics_frames_FlxFrame.checkValidName = function(name,prefixLength,suffixLength) { var nameSub = name.substring(prefixLength,name.length - suffixLength); var num = Std.parseInt(nameSub); if(num == null) { flixel_FlxG.log.advanced("Could not parse frame number of \"" + nameSub + "\" in frame named \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } else if(num < 0) { flixel_FlxG.log.advanced("Found negative frame number \"" + nameSub + "\" in frame named \"" + name + "\"",flixel_system_debug_log_LogStyle.WARNING,true); } }; flixel_graphics_frames_FlxFrame.sortByName = function(frame1,frame2,prefixLength,suffixLength) { var name = frame1.name; var num = Std.parseInt(name.substring(prefixLength,name.length - suffixLength)); var name = frame2.name; var num1 = Std.parseInt(name.substring(prefixLength,name.length - suffixLength)); return (num == null ? 0 : num > 0 ? num : -num) - (num1 == null ? 0 : num1 > 0 ? num1 : -num1); }; flixel_graphics_frames_FlxFrame.prototype = { name: null ,frame: null ,uv: null ,parent: null ,angle: null ,flipX: null ,flipY: null ,sourceSize: null ,offset: null ,duration: null ,type: null ,tileMatrix: null ,blitMatrix: null ,cacheFrameMatrix: function() { var mat = flixel_graphics_frames_FlxFrame._matrix; var blit = true; if(blit == null) { blit = true; } mat.identity(); if(blit) { mat.translate(-this.frame.x,-this.frame.y); } if(this.angle == 90) { mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx); mat.translate(this.frame.height,0); } else if(this.angle == -90) { mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx); mat.translate(0,this.frame.width); } mat.translate(this.offset.x,this.offset.y); this.blitMatrix[0] = flixel_graphics_frames_FlxFrame._matrix.a; this.blitMatrix[1] = flixel_graphics_frames_FlxFrame._matrix.b; this.blitMatrix[2] = flixel_graphics_frames_FlxFrame._matrix.c; this.blitMatrix[3] = flixel_graphics_frames_FlxFrame._matrix.d; this.blitMatrix[4] = flixel_graphics_frames_FlxFrame._matrix.tx; this.blitMatrix[5] = flixel_graphics_frames_FlxFrame._matrix.ty; if(flixel_FlxG.renderTile) { var mat = flixel_graphics_frames_FlxFrame._matrix; var blit = false; if(blit == null) { blit = true; } mat.identity(); if(blit) { mat.translate(-this.frame.x,-this.frame.y); } if(this.angle == 90) { mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx); mat.translate(this.frame.height,0); } else if(this.angle == -90) { mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx); mat.translate(0,this.frame.width); } mat.translate(this.offset.x,this.offset.y); this.tileMatrix[0] = flixel_graphics_frames_FlxFrame._matrix.a; this.tileMatrix[1] = flixel_graphics_frames_FlxFrame._matrix.b; this.tileMatrix[2] = flixel_graphics_frames_FlxFrame._matrix.c; this.tileMatrix[3] = flixel_graphics_frames_FlxFrame._matrix.d; this.tileMatrix[4] = flixel_graphics_frames_FlxFrame._matrix.tx; this.tileMatrix[5] = flixel_graphics_frames_FlxFrame._matrix.ty; } } ,prepareBlitMatrix: function(mat,blit) { if(blit == null) { blit = true; } mat.identity(); if(blit) { mat.translate(-this.frame.x,-this.frame.y); } if(this.angle == 90) { mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx); mat.translate(this.frame.height,0); } else if(this.angle == -90) { mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx); mat.translate(0,this.frame.width); } mat.translate(this.offset.x,this.offset.y); return mat; } ,rotateAndFlip: function(mat,rotation,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(rotation == null) { rotation = 0; } var w = this.sourceSize.x | 0; var h = this.sourceSize.y | 0; if(rotation != 0) { var t = w; w = h; h = t; if(rotation == 90) { mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx); mat.translate(this.sourceSize.y,0); } else if(rotation == -90 || rotation == -90) { mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx); mat.translate(0,this.sourceSize.x); } } if(flipX) { mat.scale(-1,1); mat.translate(w,0); } if(flipY) { mat.scale(1,-1); mat.translate(0,h); } return mat; } ,prepareTransformedBlitMatrix: function(mat,rotation,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(rotation == null) { rotation = 0; } mat.a = this.blitMatrix[0]; mat.b = this.blitMatrix[1]; mat.c = this.blitMatrix[2]; mat.d = this.blitMatrix[3]; mat.tx = this.blitMatrix[4]; mat.ty = this.blitMatrix[5]; var rotation1 = rotation; var flipX1 = flipX; var flipY1 = flipY; if(flipY1 == null) { flipY1 = false; } if(flipX1 == null) { flipX1 = false; } if(rotation1 == null) { rotation1 = 0; } var w = this.sourceSize.x | 0; var h = this.sourceSize.y | 0; if(rotation1 != 0) { var t = w; w = h; h = t; if(rotation1 == 90) { mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx); mat.translate(this.sourceSize.y,0); } else if(rotation1 == -90 || rotation1 == -90) { mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx); mat.translate(0,this.sourceSize.x); } } if(flipX1) { mat.scale(-1,1); mat.translate(w,0); } if(flipY1) { mat.scale(1,-1); mat.translate(0,h); } return mat; } ,prepareMatrix: function(mat,rotation,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(rotation == null) { rotation = 0; } if(flixel_FlxG.renderBlit) { mat.identity(); return mat; } mat.a = this.tileMatrix[0]; mat.b = this.tileMatrix[1]; mat.c = this.tileMatrix[2]; mat.d = this.tileMatrix[3]; mat.tx = this.tileMatrix[4]; mat.ty = this.tileMatrix[5]; var doFlipX = flipX != this.flipX; var doFlipY = flipY != this.flipY; if(rotation == 0 && !doFlipX && !doFlipY) { return mat; } var rotation1 = rotation; var flipX = doFlipX; var flipY = doFlipY; if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(rotation1 == null) { rotation1 = 0; } var w = this.sourceSize.x | 0; var h = this.sourceSize.y | 0; if(rotation1 != 0) { var t = w; w = h; h = t; if(rotation1 == 90) { mat.setTo(-mat.b,mat.a,-mat.d,mat.c,-mat.ty,mat.tx); mat.translate(this.sourceSize.y,0); } else if(rotation1 == -90 || rotation1 == -90) { mat.setTo(mat.b,-mat.a,mat.d,-mat.c,mat.ty,-mat.tx); mat.translate(0,this.sourceSize.x); } } if(flipX) { mat.scale(-1,1); mat.translate(w,0); } if(flipY) { mat.scale(1,-1); mat.translate(0,h); } return mat; } ,fillBlitMatrix: function(mat) { mat.a = this.blitMatrix[0]; mat.b = this.blitMatrix[1]; mat.c = this.blitMatrix[2]; mat.d = this.blitMatrix[3]; mat.tx = this.blitMatrix[4]; mat.ty = this.blitMatrix[5]; return mat; } ,paint: function(bmd,point,mergeAlpha,disposeIfNotEqual) { if(disposeIfNotEqual == null) { disposeIfNotEqual = false; } if(mergeAlpha == null) { mergeAlpha = false; } var bmd1 = bmd; var rotation = 0; var mergeAlpha1 = mergeAlpha; var disposeIfNotEqual1 = disposeIfNotEqual; if(disposeIfNotEqual1 == null) { disposeIfNotEqual1 = false; } if(mergeAlpha1 == null) { mergeAlpha1 = false; } if(rotation == null) { rotation = 0; } var flipXY = rotation != 0; var w = (flipXY ? this.sourceSize.y : this.sourceSize.x) | 0; var h = (flipXY ? this.sourceSize.x : this.sourceSize.y) | 0; if(bmd1 != null && disposeIfNotEqual1) { bmd1 = flixel_util_FlxDestroyUtil.disposeIfNotEqual(bmd1,w,h); } if(bmd1 != null && !mergeAlpha1) { if(point != null) { flixel_graphics_frames_FlxFrame._rect.setTo(point.x,point.y,w,h); } else { flixel_graphics_frames_FlxFrame._rect.setTo(0,0,w,h); } bmd1.fillRect(flixel_graphics_frames_FlxFrame._rect,0); } else if(bmd1 == null) { bmd1 = new openfl_display_BitmapData(w,h,true,0); } bmd = bmd1; if(this.type == 2) { return bmd; } if(this.angle == 0) { var this1 = this.offset; var p = flixel_graphics_frames_FlxFrame._point; if(p == null) { p = new openfl_geom_Point(); } p.x = this1.x; p.y = this1.y; if(point != null) { flixel_graphics_frames_FlxFrame._point.offset(point.x,point.y); } var tmp = this.parent.bitmap; var _this = this.frame; var FlashRect = flixel_graphics_frames_FlxFrame._rect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; bmd.copyPixels(tmp,FlashRect,flixel_graphics_frames_FlxFrame._point,null,null,mergeAlpha); } else { var mat = flixel_graphics_frames_FlxFrame._matrix; mat.a = this.blitMatrix[0]; mat.b = this.blitMatrix[1]; mat.c = this.blitMatrix[2]; mat.d = this.blitMatrix[3]; mat.tx = this.blitMatrix[4]; mat.ty = this.blitMatrix[5]; if(point != null) { flixel_graphics_frames_FlxFrame._matrix.translate(point.x,point.y); } var tmp = this.parent.bitmap; var tmp1 = flixel_graphics_frames_FlxFrame._matrix; var mat = flixel_graphics_frames_FlxFrame._matrix; var rect = flixel_graphics_frames_FlxFrame._rect; var x = this.frame.x; var y = this.frame.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p1 = point1; var _this = this.frame; var x = _this.x + _this.width; var _this = this.frame; var y = _this.y + _this.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p2 = point1; var x1 = p1.x * mat.a + p1.y * mat.c + mat.tx; var y1 = p1.x * mat.b + p1.y * mat.d + mat.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var x1 = p2.x * mat.a + p2.y * mat.c + mat.tx; var y1 = p2.x * mat.b + p2.y * mat.d + mat.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p2.set_x(x); p2.set_y(y); var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; var _this = rect1; var minX = Math.min(p1.x,p2.x); var minY = Math.min(p1.y,p2.y); var maxX = Math.max(p1.x,p2.x); var maxY = Math.max(p1.y,p2.y); if(p1._weak) { p1.put(); } if(p2._weak) { p2.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; 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; var flxRect = _this; var FlashRect = rect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = flxRect.x; FlashRect.y = flxRect.y; FlashRect.width = flxRect.width; FlashRect.height = flxRect.height; if(!flxRect._inPool) { flxRect._inPool = true; flxRect._weak = false; flixel_math_FlxRect._pool.putUnsafe(flxRect); } bmd.draw(tmp,tmp1,null,null,rect); } return bmd; } ,paintRotatedAndFlipped: function(bmd,point,rotation,flipX,flipY,mergeAlpha,disposeIfNotEqual) { if(disposeIfNotEqual == null) { disposeIfNotEqual = false; } if(mergeAlpha == null) { mergeAlpha = false; } if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(rotation == null) { rotation = 0; } if(this.type == 2 && rotation == 0) { return this.paint(bmd,point,mergeAlpha,disposeIfNotEqual); } var bmd1 = bmd; var rotation1 = rotation; var mergeAlpha1 = mergeAlpha; var disposeIfNotEqual1 = disposeIfNotEqual; if(disposeIfNotEqual1 == null) { disposeIfNotEqual1 = false; } if(mergeAlpha1 == null) { mergeAlpha1 = false; } if(rotation1 == null) { rotation1 = 0; } var flipXY = rotation1 != 0; var w = (flipXY ? this.sourceSize.y : this.sourceSize.x) | 0; var h = (flipXY ? this.sourceSize.x : this.sourceSize.y) | 0; if(bmd1 != null && disposeIfNotEqual1) { bmd1 = flixel_util_FlxDestroyUtil.disposeIfNotEqual(bmd1,w,h); } if(bmd1 != null && !mergeAlpha1) { if(point != null) { flixel_graphics_frames_FlxFrame._rect.setTo(point.x,point.y,w,h); } else { flixel_graphics_frames_FlxFrame._rect.setTo(0,0,w,h); } bmd1.fillRect(flixel_graphics_frames_FlxFrame._rect,0); } else if(bmd1 == null) { bmd1 = new openfl_display_BitmapData(w,h,true,0); } bmd = bmd1; if(this.type == 2) { return bmd; } var doFlipX = flipX != this.flipX; var doFlipY = flipY != this.flipY; this.prepareTransformedBlitMatrix(flixel_graphics_frames_FlxFrame._matrix,rotation,doFlipX,doFlipY); if(point != null) { flixel_graphics_frames_FlxFrame._matrix.translate(point.x,point.y); } var tmp = this.parent.bitmap; var tmp1 = flixel_graphics_frames_FlxFrame._matrix; var mat = flixel_graphics_frames_FlxFrame._matrix; var rect = flixel_graphics_frames_FlxFrame._rect; var x = this.frame.x; var y = this.frame.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p1 = point1; var _this = this.frame; var x = _this.x + _this.width; var _this = this.frame; var y = _this.y + _this.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p2 = point1; var x1 = p1.x * mat.a + p1.y * mat.c + mat.tx; var y1 = p1.x * mat.b + p1.y * mat.d + mat.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var x1 = p2.x * mat.a + p2.y * mat.c + mat.tx; var y1 = p2.x * mat.b + p2.y * mat.d + mat.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p2.set_x(x); p2.set_y(y); var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; var _this = rect1; var minX = Math.min(p1.x,p2.x); var minY = Math.min(p1.y,p2.y); var maxX = Math.max(p1.x,p2.x); var maxY = Math.max(p1.y,p2.y); if(p1._weak) { p1.put(); } if(p2._weak) { p2.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; 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; var flxRect = _this; var FlashRect = rect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = flxRect.x; FlashRect.y = flxRect.y; FlashRect.width = flxRect.width; FlashRect.height = flxRect.height; if(!flxRect._inPool) { flxRect._inPool = true; flxRect._weak = false; flixel_math_FlxRect._pool.putUnsafe(flxRect); } bmd.draw(tmp,tmp1,null,null,rect); return bmd; } ,checkInputBitmap: function(bmd,point,rotation,mergeAlpha,disposeIfNotEqual) { if(disposeIfNotEqual == null) { disposeIfNotEqual = false; } if(mergeAlpha == null) { mergeAlpha = false; } if(rotation == null) { rotation = 0; } var flipXY = rotation != 0; var w = (flipXY ? this.sourceSize.y : this.sourceSize.x) | 0; var h = (flipXY ? this.sourceSize.x : this.sourceSize.y) | 0; if(bmd != null && disposeIfNotEqual) { bmd = flixel_util_FlxDestroyUtil.disposeIfNotEqual(bmd,w,h); } if(bmd != null && !mergeAlpha) { if(point != null) { flixel_graphics_frames_FlxFrame._rect.setTo(point.x,point.y,w,h); } else { flixel_graphics_frames_FlxFrame._rect.setTo(0,0,w,h); } bmd.fillRect(flixel_graphics_frames_FlxFrame._rect,0); } else if(bmd == null) { bmd = new openfl_display_BitmapData(w,h,true,0); } return bmd; } ,getDrawFrameRect: function(mat,rect) { var x = this.frame.x; var y = this.frame.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p1 = point1; var _this = this.frame; var x = _this.x + _this.width; var _this = this.frame; var y = _this.y + _this.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p2 = point1; var x1 = p1.x * mat.a + p1.y * mat.c + mat.tx; var y1 = p1.x * mat.b + p1.y * mat.d + mat.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var x1 = p2.x * mat.a + p2.y * mat.c + mat.tx; var y1 = p2.x * mat.b + p2.y * mat.d + mat.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p2.set_x(x); p2.set_y(y); var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; var _this = rect1; var minX = Math.min(p1.x,p2.x); var minY = Math.min(p1.y,p2.y); var maxX = Math.max(p1.x,p2.x); var maxY = Math.max(p1.y,p2.y); if(p1._weak) { p1.put(); } if(p2._weak) { p2.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; 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; var flxRect = _this; var FlashRect = rect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = flxRect.x; FlashRect.y = flxRect.y; FlashRect.width = flxRect.width; FlashRect.height = flxRect.height; if(!flxRect._inPool) { flxRect._inPool = true; flxRect._weak = false; flixel_math_FlxRect._pool.putUnsafe(flxRect); } return rect; } ,subFrameTo: function(rect,frameToFill) { if(frameToFill == null) { frameToFill = new flixel_graphics_frames_FlxFrame(this.parent,this.angle); } else { frameToFill.parent = this.parent; frameToFill.angle = this.angle; frameToFill.set_frame(flixel_util_FlxDestroyUtil.put(frameToFill.frame)); } var this1 = frameToFill.sourceSize; var x = rect.width; var y = rect.height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.type == 2) { frameToFill.type = 2; var this1 = frameToFill.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return frameToFill; } var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; var _this = rect1; _this.width = this.frame.width; _this.height = this.frame.height; var clippedRect = _this; if(this.angle != 0) { clippedRect.width = this.frame.height; clippedRect.height = this.frame.width; } var ox = Math.max(this.offset.x,0); var oy = Math.max(this.offset.y,0); rect.x += -ox; rect.y += -oy; var frameRect = clippedRect.intersection(rect); clippedRect = flixel_util_FlxDestroyUtil.put(clippedRect); rect.x += ox; rect.y += oy; if(frameRect.width == 0 || frameRect.height == 0) { frameToFill.type = 2; var X = 0; var Y = 0; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } frameRect.x = X; frameRect.y = Y; frameRect.width = Width; frameRect.height = Height; frameToFill.set_frame(frameRect); var this1 = frameToFill.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { frameToFill.type = 0; var this1 = frameToFill.offset; var x = frameRect.x; var y = frameRect.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this2 = this1; var x = rect.x; var y = rect.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var this1 = this2; var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var x = frameRect.x; var y = frameRect.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p1 = point1; var x = frameRect.x + frameRect.width; var y = frameRect.y + frameRect.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p2 = point1; flixel_graphics_frames_FlxFrame._matrix.identity(); if(this.angle == -90) { var _this = flixel_graphics_frames_FlxFrame._matrix; _this.setTo(-_this.b,_this.a,-_this.d,_this.c,-_this.ty,_this.tx); flixel_graphics_frames_FlxFrame._matrix.translate(this.frame.width,0); } else if(this.angle == 90) { var _this = flixel_graphics_frames_FlxFrame._matrix; _this.setTo(_this.b,-_this.a,_this.d,-_this.c,_this.ty,-_this.tx); flixel_graphics_frames_FlxFrame._matrix.translate(0,this.frame.height); } if(this.angle != 0) { var matrix = flixel_graphics_frames_FlxFrame._matrix; var x1 = p1.x * matrix.a + p1.y * matrix.c + matrix.tx; var y1 = p1.x * matrix.b + p1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var matrix = flixel_graphics_frames_FlxFrame._matrix; var x1 = p2.x * matrix.a + p2.y * matrix.c + matrix.tx; var y1 = p2.x * matrix.b + p2.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p2.set_x(x); p2.set_y(y); } var minX = Math.min(p1.x,p2.x); var minY = Math.min(p1.y,p2.y); var maxX = Math.max(p1.x,p2.x); var maxY = Math.max(p1.y,p2.y); if(p1._weak) { p1.put(); } if(p2._weak) { p2.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } frameRect.x = X; frameRect.y = Y; frameRect.width = Width; frameRect.height = Height; frameRect.x += this.frame.x; frameRect.y += this.frame.y; frameToFill.set_frame(frameRect); frameToFill.cacheFrameMatrix(); } return frameToFill; } ,setBorderTo: function(border,frameToFill) { var X = border.x; var Y = border.y; var Width = this.sourceSize.x - 2 * border.x; var Height = this.sourceSize.y - 2 * border.y; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var rect1 = rect; frameToFill = this.subFrameTo(rect1,frameToFill); frameToFill.name = this.name; flixel_util_FlxDestroyUtil.put(rect1); return frameToFill; } ,clipTo: function(clip,clippedFrame) { if(clippedFrame == null) { clippedFrame = new flixel_graphics_frames_FlxFrame(this.parent,this.angle); } else { clippedFrame.parent = this.parent; clippedFrame.angle = this.angle; clippedFrame.set_frame(flixel_util_FlxDestroyUtil.put(clippedFrame.frame)); } var this1 = clippedFrame.sourceSize; var p = this.sourceSize; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } clippedFrame.name = this.name; if(this.type == 2) { clippedFrame.type = 2; var this1 = clippedFrame.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return clippedFrame; } var X = 0; var Y = 0; if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width; _this.height = Height; var rect = _this; rect._inPool = false; var _this = rect; _this.width = this.frame.width; _this.height = this.frame.height; var clippedRect = _this; if(this.angle != 0) { clippedRect.width = this.frame.height; clippedRect.height = this.frame.width; } clip.x += -this.offset.x; clip.y += -this.offset.y; var frameRect = clippedRect.intersection(clip); clippedRect = flixel_util_FlxDestroyUtil.put(clippedRect); if(frameRect.width == 0 || frameRect.height == 0) { clippedFrame.type = 2; var X = 0; var Y = 0; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } frameRect.x = X; frameRect.y = Y; frameRect.width = Width; frameRect.height = Height; clippedFrame.set_frame(frameRect); var this1 = clippedFrame.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { clippedFrame.type = 0; var this1 = clippedFrame.offset; var x = frameRect.x; var y = frameRect.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this2 = this1; var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x + x); this2.set_y(this2.y + y); if(point._weak) { point.put(); } var x = frameRect.x; var y = frameRect.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p1 = point1; var x = frameRect.x + frameRect.width; var y = frameRect.y + frameRect.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var p2 = point1; flixel_graphics_frames_FlxFrame._matrix.identity(); if(this.angle == -90) { var _this = flixel_graphics_frames_FlxFrame._matrix; _this.setTo(-_this.b,_this.a,-_this.d,_this.c,-_this.ty,_this.tx); flixel_graphics_frames_FlxFrame._matrix.translate(this.frame.width,0); } else if(this.angle == 90) { var _this = flixel_graphics_frames_FlxFrame._matrix; _this.setTo(_this.b,-_this.a,_this.d,-_this.c,_this.ty,-_this.tx); flixel_graphics_frames_FlxFrame._matrix.translate(0,this.frame.height); } if(this.angle != 0) { var matrix = flixel_graphics_frames_FlxFrame._matrix; var x1 = p1.x * matrix.a + p1.y * matrix.c + matrix.tx; var y1 = p1.x * matrix.b + p1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var matrix = flixel_graphics_frames_FlxFrame._matrix; var x1 = p2.x * matrix.a + p2.y * matrix.c + matrix.tx; var y1 = p2.x * matrix.b + p2.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } p2.set_x(x); p2.set_y(y); } var minX = Math.min(p1.x,p2.x); var minY = Math.min(p1.y,p2.y); var maxX = Math.max(p1.x,p2.x); var maxY = Math.max(p1.y,p2.y); if(p1._weak) { p1.put(); } if(p2._weak) { p2.put(); } var X = minX; var Y = minY; var Width = maxX - minX; var Height = maxY - minY; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } frameRect.x = X; frameRect.y = Y; frameRect.width = Width; frameRect.height = Height; frameRect.x += this.frame.x; frameRect.y += this.frame.y; clippedFrame.set_frame(frameRect); clippedFrame.cacheFrameMatrix(); } clip.x += this.offset.x; clip.y += this.offset.y; return clippedFrame; } ,copyTo: function(clone) { if(clone == null) { clone = new flixel_graphics_frames_FlxFrame(this.parent,this.angle); } else { clone.parent = this.parent; clone.angle = this.angle; clone.set_frame(flixel_util_FlxDestroyUtil.put(clone.frame)); } var this1 = clone.offset; var p = this.offset; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } clone.flipX = this.flipX; clone.flipY = this.flipY; var this1 = clone.sourceSize; var p = this.sourceSize; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; var _this = rect; var Rect = this.frame; _this.x = Rect.x; _this.y = Rect.y; _this.width = Rect.width; _this.height = Rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } clone.set_frame(_this); clone.type = this.type; clone.name = this.name; clone.cacheFrameMatrix(); return clone; } ,destroy: function() { this.name = null; this.parent = null; this.sourceSize = flixel_util_FlxDestroyUtil.put(this.sourceSize); this.offset = flixel_util_FlxDestroyUtil.put(this.offset); this.set_frame(flixel_util_FlxDestroyUtil.put(this.frame)); this.uv = flixel_util_FlxDestroyUtil.put(this.uv); this.blitMatrix = null; this.tileMatrix = null; } ,toString: function() { var value = this.name; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "name"; _this.value = value; return flixel_util_FlxStringUtil.getDebugString([_this]); } ,set_frame: function(value) { if(value != null) { if(this.uv == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this.uv = rect; } var _this = this.uv; var X = value.x / this.parent.width; var Y = value.y / this.parent.height; var Width = (value.x + value.width) / this.parent.width; var Height = (value.y + value.height) / this.parent.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; } return this.frame = value; } ,__class__: flixel_graphics_frames_FlxFrame ,__properties__: {set_frame:"set_frame"} }; var flixel_graphics_frames_FlxFrameCollectionType = $hxEnums["flixel.graphics.frames.FlxFrameCollectionType"] = { __ename__:"flixel.graphics.frames.FlxFrameCollectionType",__constructs__:null ,IMAGE: {_hx_name:"IMAGE",_hx_index:0,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr} ,TILES: {_hx_name:"TILES",_hx_index:1,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr} ,ATLAS: {_hx_name:"ATLAS",_hx_index:2,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr} ,FONT: {_hx_name:"FONT",_hx_index:3,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr} ,USER: ($_=function(type) { return {_hx_index:4,type:type,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr}; },$_._hx_name="USER",$_.__params__ = ["type"],$_) ,FILTER: {_hx_name:"FILTER",_hx_index:5,__enum__:"flixel.graphics.frames.FlxFrameCollectionType",toString:$estr} }; flixel_graphics_frames_FlxFrameCollectionType.__constructs__ = [flixel_graphics_frames_FlxFrameCollectionType.IMAGE,flixel_graphics_frames_FlxFrameCollectionType.TILES,flixel_graphics_frames_FlxFrameCollectionType.ATLAS,flixel_graphics_frames_FlxFrameCollectionType.FONT,flixel_graphics_frames_FlxFrameCollectionType.USER,flixel_graphics_frames_FlxFrameCollectionType.FILTER]; flixel_graphics_frames_FlxFrameCollectionType.__empty_constructs__ = [flixel_graphics_frames_FlxFrameCollectionType.IMAGE,flixel_graphics_frames_FlxFrameCollectionType.TILES,flixel_graphics_frames_FlxFrameCollectionType.ATLAS,flixel_graphics_frames_FlxFrameCollectionType.FONT,flixel_graphics_frames_FlxFrameCollectionType.FILTER]; var flixel_graphics_frames_FlxImageFrame = function(parent,border) { flixel_graphics_frames_FlxFramesCollection.call(this,parent,flixel_graphics_frames_FlxFrameCollectionType.IMAGE,border); }; $hxClasses["flixel.graphics.frames.FlxImageFrame"] = flixel_graphics_frames_FlxImageFrame; flixel_graphics_frames_FlxImageFrame.__name__ = "flixel.graphics.frames.FlxImageFrame"; flixel_graphics_frames_FlxImageFrame.fromEmptyFrame = function(graphic,frameRect) { if(graphic == null || frameRect == null) { return null; } var imageFrame = flixel_graphics_frames_FlxImageFrame.findEmptyFrame(graphic,frameRect); if(imageFrame != null) { return imageFrame; } imageFrame = new flixel_graphics_frames_FlxImageFrame(graphic); imageFrame.addEmptyFrame(frameRect); return imageFrame; }; flixel_graphics_frames_FlxImageFrame.fromFrame = function(source) { var graphic = source.parent; var rect = source.frame; var imageFrame = flixel_graphics_frames_FlxImageFrame.findFrame(graphic,rect); if(imageFrame != null) { return imageFrame; } imageFrame = new flixel_graphics_frames_FlxImageFrame(graphic); var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; var Rect = rect1; Rect.x = rect.x; Rect.y = rect.y; Rect.width = rect.width; Rect.height = rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } imageFrame.addSpriteSheetFrame(Rect); return imageFrame; }; flixel_graphics_frames_FlxImageFrame.fromImage = function(source) { return flixel_graphics_frames_FlxImageFrame.fromRectangle(source,null); }; flixel_graphics_frames_FlxImageFrame.fromGraphic = function(graphic,region) { if(graphic == null) { return null; } var checkRegion = region; if(checkRegion == null) { var X = 0; var Y = 0; var Width = graphic.width; var Height = graphic.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } var _this = flixel_math_FlxRect._pool.get(); var X = X1; var Y = Y1; var Width = Width1; var Height = Height1; 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; var rect = _this; rect._inPool = false; var rect1 = rect; rect1._weak = true; checkRegion = rect1; } var imageFrame = flixel_graphics_frames_FlxImageFrame.findFrame(graphic,checkRegion); if(imageFrame != null) { return imageFrame; } imageFrame = new flixel_graphics_frames_FlxImageFrame(graphic); if(region == null) { var X = 0; var Y = 0; var Width = graphic.width; var Height = graphic.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; region = rect; } else { if(region.width == 0) { region.width = graphic.width - region.x; } if(region.height == 0) { region.height = graphic.height - region.y; } } imageFrame.addSpriteSheetFrame(region); return imageFrame; }; flixel_graphics_frames_FlxImageFrame.fromRectangle = function(source,region) { var graphic = flixel_FlxG.bitmap.add(source,false); return flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic,region); }; flixel_graphics_frames_FlxImageFrame.fromBitmapAddSpacesAndBorders = function(source,border,region) { var graphic = flixel_FlxG.bitmap.add(source,false); if(graphic == null) { return null; } var key = flixel_FlxG.bitmap.getKeyWithSpacesAndBorders(graphic.key,null,null,border,region); var result = flixel_FlxG.bitmap._cache.h[key]; if(result == null) { var bitmap = flixel_util_FlxBitmapDataUtil.addSpacesAndBorders(graphic.bitmap,null,null,border,region); result = flixel_FlxG.bitmap.add(bitmap,false,key); } var imageFrame = flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic); return imageFrame.addBorder(border); }; flixel_graphics_frames_FlxImageFrame.fromFrameAddSpacesAndBorders = function(frame,border) { var bitmap = frame.paint(); return flixel_graphics_frames_FlxImageFrame.fromBitmapAddSpacesAndBorders(bitmap,border); }; flixel_graphics_frames_FlxImageFrame.findFrame = function(graphic,frameRect,frameBorder) { if(frameBorder == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; frameBorder = point1; } var type = flixel_graphics_frames_FlxFrameCollectionType.IMAGE; var imageFrames; if(graphic.shader == null) { imageFrames = []; } else { var collections = graphic.frameCollections.get(type); if(collections == null) { collections = []; graphic.frameCollections.set(type,collections); } imageFrames = collections; } var imageFrames1 = imageFrames; var _g = 0; while(_g < imageFrames1.length) { var imageFrame = imageFrames1[_g]; ++_g; var tmp; var rect = imageFrame.get_frame().frame; var result = Math.abs(frameRect.x - rect.x) <= 0.0000001 && Math.abs(frameRect.y - rect.y) <= 0.0000001 && Math.abs(frameRect.width - rect.width) <= 0.0000001 && Math.abs(frameRect.height - rect.height) <= 0.0000001; if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } if(result) { var point = imageFrame.border; var result1 = Math.abs(frameBorder.x - point.x) <= 0.0000001 && Math.abs(frameBorder.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = result1; } else { tmp = false; } if(tmp && imageFrame.get_frame().type != 2) { return imageFrame; } } return null; }; flixel_graphics_frames_FlxImageFrame.findEmptyFrame = function(graphic,frameRect) { var type = flixel_graphics_frames_FlxFrameCollectionType.IMAGE; var imageFrames; if(graphic.shader == null) { imageFrames = []; } else { var collections = graphic.frameCollections.get(type); if(collections == null) { collections = []; graphic.frameCollections.set(type,collections); } imageFrames = collections; } var imageFrames1 = imageFrames; var _g = 0; while(_g < imageFrames1.length) { var imageFrame = imageFrames1[_g]; ++_g; var frame = imageFrame.get_frame(); if(frame.sourceSize.x == frameRect.width && frame.sourceSize.y == frameRect.height && frame.type == 2) { return imageFrame; } } return null; }; flixel_graphics_frames_FlxImageFrame.__super__ = flixel_graphics_frames_FlxFramesCollection; flixel_graphics_frames_FlxImageFrame.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{ equals: function(rect,border) { var rect1 = this.get_frame().frame; var result = Math.abs(rect.x - rect1.x) <= 0.0000001 && Math.abs(rect.y - rect1.y) <= 0.0000001 && Math.abs(rect.width - rect1.width) <= 0.0000001 && Math.abs(rect.height - rect1.height) <= 0.0000001; if(rect1._weak) { if(!rect1._inPool) { rect1._inPool = true; rect1._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect1); } } if(result) { var point = this.border; var result = Math.abs(border.x - point.x) <= 0.0000001 && Math.abs(border.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } return result; } else { return false; } } ,addBorder: function(border) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; var this1 = point1; var point = this.border; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var this2 = this1; var x = border.x; var y = border.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x + x); this2.set_y(this2.y + y); if(border._weak) { border.put(); } var resultBorder = this2; var imageFrame = flixel_graphics_frames_FlxImageFrame.findFrame(this.parent,this.get_frame().frame,resultBorder); if(imageFrame != null) { return imageFrame; } imageFrame = new flixel_graphics_frames_FlxImageFrame(this.parent,resultBorder); imageFrame.pushFrame(this.get_frame().setBorderTo(border)); return imageFrame; } ,destroy: function() { flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this); flixel_util_FlxDestroyUtil.destroy(this.get_frame()); } ,get_frame: function() { return this.frames[0]; } ,__class__: flixel_graphics_frames_FlxImageFrame ,__properties__: $extend(flixel_graphics_frames_FlxFramesCollection.prototype.__properties__,{get_frame:"get_frame"}) }); var flixel_graphics_frames_FlxTileFrames = function(parent,border) { this.numCols = 0; this.numRows = 0; flixel_graphics_frames_FlxFramesCollection.call(this,parent,flixel_graphics_frames_FlxFrameCollectionType.TILES,border); }; $hxClasses["flixel.graphics.frames.FlxTileFrames"] = flixel_graphics_frames_FlxTileFrames; flixel_graphics_frames_FlxTileFrames.__name__ = "flixel.graphics.frames.FlxTileFrames"; flixel_graphics_frames_FlxTileFrames.fromBitmapAddSpacesAndBorders = function(source,tileSize,tileSpacing,tileBorder,region) { var graphic = flixel_FlxG.bitmap.add(source,false); if(graphic == null) { return null; } var key = flixel_FlxG.bitmap.getKeyWithSpacesAndBorders(graphic.key,tileSize,tileSpacing,tileBorder,region); var result = flixel_FlxG.bitmap._cache.h[key]; if(result == null) { var bitmap = flixel_util_FlxBitmapDataUtil.addSpacesAndBorders(graphic.bitmap,tileSize,tileSpacing,tileBorder,region); result = flixel_FlxG.bitmap.add(bitmap,false,key); } var borderX = 0; var borderY = 0; if(tileBorder != null) { borderX = tileBorder.x | 0; borderY = tileBorder.y | 0; } var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var x = tileSize.x; var y = tileSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(tileSize._weak) { tileSize.put(); } var this2 = this1; var x = 2 * borderX; var y = 2 * borderY; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x + x); this2.set_y(this2.y + y); var tileFrames = flixel_graphics_frames_FlxTileFrames.fromGraphic(result,this2,null,tileSpacing); if(tileBorder == null) { return tileFrames; } return tileFrames.addBorder(tileBorder); }; flixel_graphics_frames_FlxTileFrames.fromFrameAddSpacesAndBorders = function(frame,tileSize,tileSpacing,tileBorder) { var bitmap = frame.paint(); return flixel_graphics_frames_FlxTileFrames.fromBitmapAddSpacesAndBorders(bitmap,tileSize,tileSpacing,tileBorder); }; flixel_graphics_frames_FlxTileFrames.fromFrame = function(frame,tileSize,tileSpacing) { var graphic = frame.parent; var tileFrames = flixel_graphics_frames_FlxTileFrames.findFrame(graphic,tileSize,null,frame,tileSpacing); if(tileFrames != null) { return tileFrames; } if(tileSpacing == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tileSpacing = point; } tileFrames = new flixel_graphics_frames_FlxTileFrames(graphic); tileFrames.atlasFrame = frame; tileFrames.region = frame.frame; tileFrames.tileSize = tileSize; tileFrames.tileSpacing = tileSpacing; tileSpacing.set_x(Math.floor(tileSpacing.x)); tileSpacing.set_y(Math.floor(tileSpacing.y)); tileSize.set_x(Math.floor(tileSize.x)); tileSize.set_y(Math.floor(tileSize.y)); var spacedWidth = tileSize.x + tileSpacing.x; var spacedHeight = tileSize.y + tileSpacing.y; var numRows = tileSize.y == 0 ? 1 : (frame.sourceSize.y + tileSpacing.y) / spacedHeight | 0; var numCols = tileSize.x == 0 ? 1 : (frame.sourceSize.x + tileSpacing.x) / spacedWidth | 0; var X = 0; var Y = 0; var Width = tileSize.x; var Height = tileSize.y; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var helperRect = rect; var _g = 0; var _g1 = numRows; while(_g < _g1) { var j = _g++; var _g2 = 0; var _g3 = numCols; while(_g2 < _g3) { var i = _g2++; helperRect.x = spacedWidth * i; helperRect.y = spacedHeight * j; tileFrames.pushFrame(frame.subFrameTo(helperRect)); } } helperRect = flixel_util_FlxDestroyUtil.put(helperRect); tileFrames.numCols = numCols; tileFrames.numRows = numRows; return tileFrames; }; flixel_graphics_frames_FlxTileFrames.fromFrames = function(Frames) { var firstFrame = Frames[0]; var graphic = firstFrame.parent; var _g = 0; while(_g < Frames.length) { var frame = Frames[_g]; ++_g; var tmp; if(frame.parent == firstFrame.parent) { var _this = frame.sourceSize; var point = firstFrame.sourceSize; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = !result; } else { tmp = true; } if(tmp) { return null; } } var tileFrames = new flixel_graphics_frames_FlxTileFrames(graphic); tileFrames.region = null; tileFrames.atlasFrame = null; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var p = firstFrame.sourceSize; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } tileFrames.tileSize = this1; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tileFrames.tileSpacing = point; tileFrames.numCols = Frames.length; tileFrames.numRows = 1; var _g = 0; while(_g < Frames.length) { var frame = Frames[_g]; ++_g; tileFrames.frames.push(frame); if(frame.name != null) { tileFrames.framesByName.h[frame.name] = frame; } } return tileFrames; }; flixel_graphics_frames_FlxTileFrames.fromAtlasByPrefix = function(Frames,Prefix) { var framesToAdd = []; var _g = 0; var _g1 = Frames.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; if(StringTools.startsWith(frame.name,Prefix)) { framesToAdd.push(frame); } } if(framesToAdd.length > 0) { var name = framesToAdd[0].name; var postIndex = name.indexOf(".",Prefix.length); var suffix = name.substring(postIndex == -1 ? name.length : postIndex,name.length); flixel_graphics_frames_FlxFrame.sortHelper(framesToAdd,Prefix.length,suffix == null ? 0 : suffix.length,true); return flixel_graphics_frames_FlxTileFrames.fromFrames(framesToAdd); } return null; }; flixel_graphics_frames_FlxTileFrames.fromGraphic = function(graphic,tileSize,region,tileSpacing) { var tileFrames = flixel_graphics_frames_FlxTileFrames.findFrame(graphic,tileSize,region,null,tileSpacing); if(tileFrames != null) { return tileFrames; } if(region == null) { var X = 0; var Y = 0; var Width = graphic.width; var Height = graphic.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; region = rect; } else { if(region.width == 0) { region.width = graphic.width - region.x; } if(region.height == 0) { region.height = graphic.height - region.y; } } if(tileSpacing == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tileSpacing = point; } tileFrames = new flixel_graphics_frames_FlxTileFrames(graphic); tileFrames.region = region; tileFrames.atlasFrame = null; tileFrames.tileSize = tileSize; tileFrames.tileSpacing = tileSpacing; region.x = Math.floor(region.x); region.y = Math.floor(region.y); region.width = Math.floor(region.width); region.height = Math.floor(region.height); tileSpacing.set_x(Math.floor(tileSpacing.x)); tileSpacing.set_y(Math.floor(tileSpacing.y)); tileSize.set_x(Math.floor(tileSize.x)); tileSize.set_y(Math.floor(tileSize.y)); var spacedWidth = tileSize.x + tileSpacing.x; var spacedHeight = tileSize.y + tileSpacing.y; var numRows = tileSize.y == 0 ? 1 : (region.height + tileSpacing.y) / spacedHeight | 0; var numCols = tileSize.x == 0 ? 1 : (region.width + tileSpacing.x) / spacedWidth | 0; var tileRect; var _g = 0; var _g1 = numRows; while(_g < _g1) { var j = _g++; var _g2 = 0; var _g3 = numCols; while(_g2 < _g3) { var i = _g2++; var X = region.x + i * spacedWidth; var Y = region.y + j * spacedHeight; var Width = tileSize.x; var Height = tileSize.y; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; tileRect = rect; tileFrames.addSpriteSheetFrame(tileRect); } } tileFrames.numCols = numCols; tileFrames.numRows = numRows; return tileFrames; }; flixel_graphics_frames_FlxTileFrames.fromRectangle = function(source,tileSize,region,tileSpacing) { var graphic = flixel_FlxG.bitmap.add(source,false); if(graphic == null) { return null; } return flixel_graphics_frames_FlxTileFrames.fromGraphic(graphic,tileSize,region,tileSpacing); }; flixel_graphics_frames_FlxTileFrames.combineTileSets = function(bitmaps,tileSize,spacing,border) { var framesCollections = []; var _g = 0; while(_g < bitmaps.length) { var bitmap = bitmaps[_g]; ++_g; framesCollections.push(flixel_graphics_frames_FlxTileFrames.fromRectangle(bitmap,tileSize)); } return flixel_graphics_frames_FlxTileFrames.combineTileFrames(framesCollections,spacing,border); }; flixel_graphics_frames_FlxTileFrames.combineTileFrames = function(tileframes,spacing,border) { var totalArea = 0; var rows = 0; var cols = 0; var tileWidth = tileframes[0].frames[0].sourceSize.x | 0; var tileHeight = tileframes[0].frames[0].sourceSize.y | 0; var spaceX = 0; var spaceY = 0; if(spacing != null) { spaceX = spacing.x | 0; spaceY = spacing.y | 0; } var borderX = 0; var borderY = 0; if(border != null) { borderX = border.x | 0; borderY = border.y | 0; } var _g = 0; while(_g < tileframes.length) { var collection = tileframes[_g]; ++_g; cols = collection.numCols; rows = collection.numRows; totalArea += cols * (tileWidth + 2 * borderX) * rows * (tileHeight + 2 * borderY) | 0; } var side = Math.sqrt(totalArea); cols = side / (tileWidth + 2 * borderX) | 0; rows = Math.ceil(totalArea / (cols * (tileWidth + 2 * borderX) * (tileHeight + 2 * borderY))); var width = (cols * (tileWidth + 2 * borderX) | 0) + (cols - 1) * spaceX; var height = (rows * (tileHeight + 2 * borderY) | 0) + (rows - 1) * spaceY; var combined = new openfl_display_BitmapData(width,height,true,0); var graphic = flixel_FlxG.bitmap.add(combined); var result = new flixel_graphics_frames_FlxTileFrames(graphic); var destPoint = new openfl_geom_Point(borderX,borderY); var X = 0; var Y = 0; var Width = width; var Height = height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; result.region = rect; result.atlasFrame = null; var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; result.tileSize = point; var x = spaceX; var y = spaceY; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; result.tileSpacing = point; result.numCols = cols; result.numRows = rows; var _g = 0; while(_g < tileframes.length) { var collection = tileframes[_g]; ++_g; var _g1 = 0; var _g2 = collection.frames; while(_g1 < _g2.length) { var frame = _g2[_g1]; ++_g1; frame.paint(combined,destPoint,true); var X = destPoint.x; var Y = destPoint.y; var Width = tileWidth; var Height = tileHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var x2 = 0; var y2 = 0; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var x3 = x2; var y3 = y2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x3,y3); point1._inPool = false; result.addAtlasFrame(rect,point,point1); destPoint.x += tileWidth + 2 * borderX + spaceX; if(destPoint.x >= combined.width) { destPoint.x = borderX; destPoint.y += tileHeight + 2 * borderY + spaceY; } } } flixel_util_FlxBitmapDataUtil.copyBorderPixels(combined,tileWidth,tileHeight,spaceX,spaceY,borderX,borderY,cols,rows); return result; }; flixel_graphics_frames_FlxTileFrames.findFrame = function(graphic,tileSize,region,atlasFrame,tileSpacing,border) { var type = flixel_graphics_frames_FlxFrameCollectionType.TILES; var tileFrames; if(graphic.shader == null) { tileFrames = []; } else { var collections = graphic.frameCollections.get(type); if(collections == null) { collections = []; graphic.frameCollections.set(type,collections); } tileFrames = collections; } var tileFrames1 = tileFrames; var _g = 0; while(_g < tileFrames1.length) { var sheet = tileFrames1[_g]; ++_g; if(sheet.equals(tileSize,region,null,tileSpacing,border)) { return sheet; } } return null; }; flixel_graphics_frames_FlxTileFrames.__super__ = flixel_graphics_frames_FlxFramesCollection; flixel_graphics_frames_FlxTileFrames.prototype = $extend(flixel_graphics_frames_FlxFramesCollection.prototype,{ atlasFrame: null ,region: null ,tileSize: null ,tileSpacing: null ,numRows: null ,numCols: null ,getByTilePosition: function(column,row) { return this.frames[row * this.numCols + column]; } ,equals: function(tileSize,region,atlasFrame,tileSpacing,border) { if(this.region == null && this.atlasFrame == null) { return false; } if(atlasFrame != null) { region = atlasFrame.frame; } if(region == null) { var X = 0; var Y = 0; var Width = this.parent.width; var Height = this.parent.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } var _this = flixel_math_FlxRect._pool.get(); var X = X1; var Y = Y1; var Width = Width1; var Height = Height1; 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; var rect = _this; rect._inPool = false; var rect1 = rect; rect1._weak = true; region = rect1; } if(tileSpacing == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; tileSpacing = point1; } if(border == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; border = point1; } var tmp; var tmp1; var tmp2; if(this.atlasFrame == atlasFrame) { var _this = this.region; var result = Math.abs(_this.x - region.x) <= 0.0000001 && Math.abs(_this.y - region.y) <= 0.0000001 && Math.abs(_this.width - region.width) <= 0.0000001 && Math.abs(_this.height - region.height) <= 0.0000001; if(region._weak) { if(!region._inPool) { region._inPool = true; region._weak = false; flixel_math_FlxRect._pool.putUnsafe(region); } } tmp2 = result; } else { tmp2 = false; } if(tmp2) { var _this = this.tileSize; var result = Math.abs(_this.x - tileSize.x) <= 0.0000001 && Math.abs(_this.y - tileSize.y) <= 0.0000001; if(tileSize._weak) { tileSize.put(); } tmp1 = result; } else { tmp1 = false; } if(tmp1) { var _this = this.tileSpacing; var result = Math.abs(_this.x - tileSpacing.x) <= 0.0000001 && Math.abs(_this.y - tileSpacing.y) <= 0.0000001; if(tileSpacing._weak) { tileSpacing.put(); } tmp = result; } else { tmp = false; } if(tmp) { var _this = this.border; var result = Math.abs(_this.x - border.x) <= 0.0000001 && Math.abs(_this.y - border.y) <= 0.0000001; if(border._weak) { border.put(); } return result; } else { return false; } } ,addBorder: function(border) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var point = this.border; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } var this2 = this1; var x = border.x; var y = border.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x + x); this2.set_y(this2.y + y); if(border._weak) { border.put(); } var resultBorder = this2; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var p = this.tileSize; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } var this2 = this1; var x = 2 * border.x; var y = 2 * border.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var resultSize = this2; var tileFrames = flixel_graphics_frames_FlxTileFrames.findFrame(this.parent,resultSize,this.region,this.atlasFrame,this.tileSpacing,resultBorder); if(tileFrames != null) { resultSize = flixel_util_FlxDestroyUtil.put(resultSize); return tileFrames; } tileFrames = new flixel_graphics_frames_FlxTileFrames(this.parent,resultBorder); var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; var _this = rect; var Rect = this.region; _this.x = Rect.x; _this.y = Rect.y; _this.width = Rect.width; _this.height = Rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } tileFrames.region = _this; tileFrames.atlasFrame = this.atlasFrame; tileFrames.tileSize = resultSize; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var this1 = point; var p = this.tileSpacing; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } tileFrames.tileSpacing = this1; var _g = 0; var _g1 = this.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; tileFrames.pushFrame(frame.setBorderTo(border)); } return tileFrames; } ,destroy: function() { flixel_graphics_frames_FlxFramesCollection.prototype.destroy.call(this); this.atlasFrame = null; this.region = flixel_util_FlxDestroyUtil.put(this.region); this.tileSize = flixel_util_FlxDestroyUtil.put(this.tileSize); this.tileSpacing = flixel_util_FlxDestroyUtil.put(this.tileSpacing); } ,__class__: flixel_graphics_frames_FlxTileFrames }); var flixel_graphics_frames_bmfont_BMFont = function(info,common,pages,chars,kerning) { this.kerning = null; this.info = info; this.common = common; this.pages = pages; this.chars = chars; this.kerning = kerning; }; $hxClasses["flixel.graphics.frames.bmfont.BMFont"] = flixel_graphics_frames_bmfont_BMFont; flixel_graphics_frames_bmfont_BMFont.__name__ = "flixel.graphics.frames.bmfont.BMFont"; flixel_graphics_frames_bmfont_BMFont.fromXml = function(xml) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var main = xml; var info = flixel_graphics_frames_bmfont_BMFontInfo.fromXml(flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.get(main,"info")); var common = flixel_graphics_frames_bmfont_BMFontCommon.fromXml(flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.get(main,"common")); var pages = flixel_graphics_frames_bmfont_BMFontPage.listFromXml(flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.get(main,"pages")); var chars = flixel_graphics_frames_bmfont_BMFontChar.listFromXml(flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.get(main,"chars")); var kerning = null; if(flixel_graphics_frames_bmfont_BMFontXml.hasNode(main,"kernings")) { kerning = flixel_graphics_frames_bmfont_BMFontKerning.listFromXml(flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.get(main,"kernings")); } return new flixel_graphics_frames_bmfont_BMFont(info,common,pages,chars,kerning); }; flixel_graphics_frames_bmfont_BMFont.fromText = function(text) { var info = null; var common = null; var pages = []; var chars = []; var kernings = []; var _g = []; var _g1 = 0; var _g2 = StringTools.replace(text,"\r\n","\n").split("\n"); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.length > 0) { _g.push(v); } } var lines = _g; var _g = 0; while(_g < lines.length) { var line = lines[_g]; ++_g; var blockType = line.substring(0,line.indexOf(" ")); var blockAttrs = line.substring(line.indexOf(" ") + 1); switch(blockType) { case "char": chars.push(flixel_graphics_frames_bmfont_BMFontChar.fromText(blockAttrs)); break; case "common": common = flixel_graphics_frames_bmfont_BMFontCommon.fromText(blockAttrs); break; case "info": info = flixel_graphics_frames_bmfont_BMFontInfo.fromText(blockAttrs); break; case "kerning": kernings.push(flixel_graphics_frames_bmfont_BMFontKerning.fromText(blockAttrs)); break; case "page": pages.push(flixel_graphics_frames_bmfont_BMFontPage.fromText(blockAttrs)); break; } } return new flixel_graphics_frames_bmfont_BMFont(info,common,pages,chars,kernings.length > 0 ? kernings : null); }; flixel_graphics_frames_bmfont_BMFont.fromBytes = function(bytes) { var bytes1 = new haxe_io_BytesInput(bytes); var expectedBytes = [66,77,70]; var _g = 0; while(_g < expectedBytes.length) { var b = expectedBytes[_g]; ++_g; var testByte = bytes1.readByte(); if(testByte != b) { throw haxe_Exception.thrown("Invalid binary .fnt file. Found " + testByte + ", expected " + b); } } var version = bytes1.readByte(); if(version < 3) { flixel_FlxG.log.advanced("The BMFont parser is made to work on files with version 3. Using earlier versions can cause issues!",flixel_system_debug_log_LogStyle.WARNING,true); } var info = null; var common = null; var pages = null; var chars = null; var kerning = null; while(bytes1.pos < bytes1.totlen) { var blockId = bytes1.readByte(); switch(blockId) { case 1: info = flixel_graphics_frames_bmfont_BMFontInfo.fromBytes(bytes1); break; case 2: common = flixel_graphics_frames_bmfont_BMFontCommon.fromBytes(bytes1); break; case 3: pages = flixel_graphics_frames_bmfont_BMFontPage.listFromBytes(bytes1); break; case 4: chars = flixel_graphics_frames_bmfont_BMFontChar.listFromBytes(bytes1); break; case 5: kerning = flixel_graphics_frames_bmfont_BMFontKerning.listFromBytes(bytes1); break; } } return new flixel_graphics_frames_bmfont_BMFont(info,common,pages,chars,kerning); }; flixel_graphics_frames_bmfont_BMFont.parse = function(data) { var _g = flixel_graphics_frames_bmfont_BMFont.guessType(data); switch(_g._hx_index) { case 0: var text = _g.text; return flixel_graphics_frames_bmfont_BMFont.fromText(text); case 1: var xml = _g.xml; return flixel_graphics_frames_bmfont_BMFont.fromXml(xml); case 2: var bytes = _g.bytes; return flixel_graphics_frames_bmfont_BMFont.fromBytes(bytes); } }; flixel_graphics_frames_bmfont_BMFont.guessType = function(data) { if(((data) instanceof Xml)) { return flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.XML((js_Boot.__cast(data , Xml)).firstElement()); } if(((data) instanceof haxe_io_Bytes)) { var bytes = data; if(flixel_graphics_frames_bmfont_BMFont.isValidBytes(bytes)) { return flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.BINARY(bytes); } return flixel_graphics_frames_bmfont_BMFont.detectFromText(bytes.toString()); } if(typeof(data) == "string") { var dataStr = data; if(openfl_utils_Assets.exists(dataStr)) { var bytes = openfl_utils_Assets.getBytes(dataStr); if(bytes == null) { return flixel_graphics_frames_bmfont_BMFont.detectFromText(openfl_utils_Assets.getText(dataStr)); } if(flixel_graphics_frames_bmfont_BMFont.isValidBytes(openfl_utils_ByteArray.toBytes(bytes))) { return flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.BINARY(openfl_utils_ByteArray.toBytes(bytes)); } return flixel_graphics_frames_bmfont_BMFont.detectFromText(bytes.toString()); } else { return flixel_graphics_frames_bmfont_BMFont.detectFromText(dataStr); } } throw haxe_Exception.thrown("Invalid FlxAngelCodeAsset: " + Std.string(data)); }; flixel_graphics_frames_bmfont_BMFont.safeParseXML = function(str) { try { var xml = Xml.parse(str); return xml; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return null; } }; flixel_graphics_frames_bmfont_BMFont.detectFromText = function(text) { var xml = flixel_graphics_frames_bmfont_BMFont.safeParseXML(text); if(xml != null && xml.firstElement() != null) { return flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.XML(xml.firstElement()); } return flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.TEXT(text); }; flixel_graphics_frames_bmfont_BMFont.isValidBytes = function(bytes) { var expected = [66,77,70]; var _g = 0; var _g1 = expected.length; while(_g < _g1) { var i = _g++; if(bytes.b[i] != expected[i]) { return false; } } return true; }; flixel_graphics_frames_bmfont_BMFont.prototype = { info: null ,common: null ,pages: null ,chars: null ,kerning: null ,__class__: flixel_graphics_frames_bmfont_BMFont }; var flixel_graphics_frames_bmfont__$BMFont_BMFontFileType = $hxEnums["flixel.graphics.frames.bmfont._BMFont.BMFontFileType"] = { __ename__:"flixel.graphics.frames.bmfont._BMFont.BMFontFileType",__constructs__:null ,TEXT: ($_=function(text) { return {_hx_index:0,text:text,__enum__:"flixel.graphics.frames.bmfont._BMFont.BMFontFileType",toString:$estr}; },$_._hx_name="TEXT",$_.__params__ = ["text"],$_) ,XML: ($_=function(xml) { return {_hx_index:1,xml:xml,__enum__:"flixel.graphics.frames.bmfont._BMFont.BMFontFileType",toString:$estr}; },$_._hx_name="XML",$_.__params__ = ["xml"],$_) ,BINARY: ($_=function(bytes) { return {_hx_index:2,bytes:bytes,__enum__:"flixel.graphics.frames.bmfont._BMFont.BMFontFileType",toString:$estr}; },$_._hx_name="BINARY",$_.__params__ = ["bytes"],$_) }; flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.__constructs__ = [flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.TEXT,flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.XML,flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.BINARY]; flixel_graphics_frames_bmfont__$BMFont_BMFontFileType.__empty_constructs__ = []; var flixel_graphics_frames_bmfont_BMFontChar = function(id,x,y,width,height,xoffset,yoffset,xadvance,page,chnl,letter) { this.letter = null; this.id = id; this.x = x; this.y = y; this.width = width; this.height = height; this.xoffset = xoffset; this.yoffset = yoffset; this.xadvance = xadvance; this.page = page; this.chnl = chnl; if(letter != null) { this.letter = letter; } }; $hxClasses["flixel.graphics.frames.bmfont.BMFontChar"] = flixel_graphics_frames_bmfont_BMFontChar; flixel_graphics_frames_bmfont_BMFontChar.__name__ = "flixel.graphics.frames.bmfont.BMFontChar"; flixel_graphics_frames_bmfont_BMFontChar.fromXml = function(charNode) { return new flixel_graphics_frames_bmfont_BMFontChar(flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(charNode,"id"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(charNode,"x"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(charNode,"y"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(charNode,"width"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(charNode,"height"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(charNode,"xoffset",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(charNode,"yoffset",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(charNode,"xadvance",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(charNode,"page",-1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(charNode,"chnl",-1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringSafe(charNode,"letter")); }; flixel_graphics_frames_bmfont_BMFontChar.listFromXml = function(charsNode) { var chars = flixel_graphics_frames_bmfont_BMFontXml.nodes(charsNode,"char"); var _g = []; var _g1 = 0; while(_g1 < chars.length) { var char = chars[_g1]; ++_g1; _g.push(new flixel_graphics_frames_bmfont_BMFontChar(flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(char,"id"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(char,"x"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(char,"y"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(char,"width"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(char,"height"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(char,"xoffset",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(char,"yoffset",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(char,"xadvance",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(char,"page",-1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(char,"chnl",-1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringSafe(char,"letter"))); } return _g; }; flixel_graphics_frames_bmfont_BMFontChar.fromText = function(kerningText) { var id = -1; var x = -1; var y = -1; var width = 0; var height = 0; var xoffset = 0; var yoffset = 0; var xadvance = 0; var page = -1; var chnl = -1; var letter = null; flixel_graphics_frames_bmfont_BMFontUtil.forEachAttribute(kerningText,function(key,value) { switch(key) { case "chnl": chnl = Std.parseInt(value); break; case "height": height = Std.parseInt(value); break; case "id": id = Std.parseInt(value); break; case "letter": letter = value; break; case "page": page = Std.parseInt(value); break; case "width": width = Std.parseInt(value); break; case "x": x = Std.parseInt(value); break; case "xadvance": xadvance = Std.parseInt(value); break; case "xoffset": xoffset = Std.parseInt(value); break; case "y": y = Std.parseInt(value); break; case "yoffset": yoffset = Std.parseInt(value); break; default: flixel_FlxG.log.advanced("Unexpected font char attribute: " + key + "=" + value,flixel_system_debug_log_LogStyle.WARNING,true); } }); return new flixel_graphics_frames_bmfont_BMFontChar(id,x,y,width,height,xoffset,yoffset,xadvance,page,chnl,letter); }; flixel_graphics_frames_bmfont_BMFontChar.listFromBytes = function(bytes) { var blockSize = bytes.readInt32(); var chars = []; while(blockSize > 0) { var char = new flixel_graphics_frames_bmfont_BMFontChar(bytes.readInt32(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readByte(),bytes.readByte(),null); chars.push(char); blockSize -= 20; } return chars; }; flixel_graphics_frames_bmfont_BMFontChar.prototype = { id: null ,x: null ,y: null ,width: null ,height: null ,xoffset: null ,yoffset: null ,xadvance: null ,page: null ,chnl: null ,letter: null ,__class__: flixel_graphics_frames_bmfont_BMFontChar }; var flixel_graphics_frames_bmfont_BMFontCommon = function(lineHeight,base,scaleW,scaleH,pages,packed,alphaChnl,redChnl,greenChnl,blueChnl) { this.lineHeight = lineHeight; this.base = base; this.scaleW = scaleW; this.scaleH = scaleH; this.pages = pages; this.packed = packed; this.alphaChnl = alphaChnl; this.redChnl = redChnl; this.greenChnl = greenChnl; this.blueChnl = blueChnl; }; $hxClasses["flixel.graphics.frames.bmfont.BMFontCommon"] = flixel_graphics_frames_bmfont_BMFontCommon; flixel_graphics_frames_bmfont_BMFontCommon.__name__ = "flixel.graphics.frames.bmfont.BMFontCommon"; flixel_graphics_frames_bmfont_BMFontCommon.fromXml = function(commonNode) { return new flixel_graphics_frames_bmfont_BMFontCommon(flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(commonNode,"lineHeight"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(commonNode,"base",-1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intWarn(commonNode,"scaleW",1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intWarn(commonNode,"scaleH",1),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(commonNode,"pages",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe(commonNode,"packed",false),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(commonNode,"alphaChnl",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(commonNode,"redChnl",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(commonNode,"greenChnl",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(commonNode,"blueChnl",0)); }; flixel_graphics_frames_bmfont_BMFontCommon.fromText = function(commonText) { var lineHeight = -1; var base = -1; var scaleW = 1; var scaleH = 1; var pages = 0; var packed = false; var alphaChnl = 0; var redChnl = 0; var greenChnl = 0; var blueChnl = 0; flixel_graphics_frames_bmfont_BMFontUtil.forEachAttribute(commonText,function(key,value) { switch(key) { case "alphaChnl": alphaChnl = Std.parseInt(value); break; case "base": base = Std.parseInt(value); break; case "blueChnl": blueChnl = Std.parseInt(value); break; case "greenChnl": greenChnl = Std.parseInt(value); break; case "lineHeight": lineHeight = Std.parseInt(value); break; case "packed": packed = value != "0"; break; case "pages": pages = Std.parseInt(value); break; case "redChnl": redChnl = Std.parseInt(value); break; case "scaleH": scaleH = Std.parseInt(value); break; case "scaleW": scaleW = Std.parseInt(value); break; } }); return new flixel_graphics_frames_bmfont_BMFontCommon(lineHeight,base,scaleW,scaleH,pages,packed,alphaChnl,redChnl,greenChnl,blueChnl); }; flixel_graphics_frames_bmfont_BMFontCommon.fromBytes = function(bytes) { var blockSize = bytes.readInt32(); if(blockSize != 15) { throw haxe_Exception.thrown("Invalid block size for common block. Expected 15 got " + blockSize); } return new flixel_graphics_frames_bmfont_BMFontCommon(bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),bytes.readInt16(),(bytes.readByte() & 2) != 0,bytes.readByte(),bytes.readByte(),bytes.readByte(),bytes.readByte()); }; flixel_graphics_frames_bmfont_BMFontCommon.prototype = { lineHeight: null ,base: null ,scaleW: null ,scaleH: null ,pages: null ,packed: null ,alphaChnl: null ,redChnl: null ,greenChnl: null ,blueChnl: null ,__class__: flixel_graphics_frames_bmfont_BMFontCommon }; var flixel_graphics_frames_bmfont_BMFontInfo = function(face,size,bold,italic,charset,unicode,stretchH,smooth,aa,padding,spacing,outline,fixedHeight) { this.fixedHeight = false; this.outline = 0; this.spacing = new flixel_graphics_frames_bmfont_BMFontSpacing(0,0); this.padding = new flixel_graphics_frames_bmfont_BMFontPadding(0,0,0,0); this.face = face; this.size = size; this.bold = bold; this.italic = italic; this.charset = charset; this.unicode = unicode; this.stretchH = stretchH; this.smooth = smooth; this.aa = aa; if(padding != null) { this.padding = padding; } if(spacing != null) { this.spacing = spacing; } if(outline != null) { this.outline = outline; } if(fixedHeight != null) { this.fixedHeight = fixedHeight; } }; $hxClasses["flixel.graphics.frames.bmfont.BMFontInfo"] = flixel_graphics_frames_bmfont_BMFontInfo; flixel_graphics_frames_bmfont_BMFontInfo.__name__ = "flixel.graphics.frames.bmfont.BMFontInfo"; flixel_graphics_frames_bmfont_BMFontInfo.fromXml = function(infoNode) { var _g = flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.string(infoNode,"face"); var _g1 = flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(infoNode,"size"); var _g2 = flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe(infoNode,"bold",false); var _g3 = flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe(infoNode,"italic",false); var _g4 = flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe(infoNode,"smooth",false); var info = new flixel_graphics_frames_bmfont_BMFontInfo(_g,_g1,_g2,_g3,flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringSafe(infoNode,"charset"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe(infoNode,"unicode",false),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(infoNode,"stretchH",100),_g4,flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(infoNode,"aa",1),null,null,flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe(infoNode,"outline",0),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe(infoNode,"fixedHeight",false)); if(flixel_graphics_frames_bmfont_BMFontXml.has(infoNode,"padding")) { var values = flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.string(infoNode,"padding").split(","); info.padding = new flixel_graphics_frames_bmfont_BMFontPadding(Std.parseInt(values[0]),Std.parseInt(values[1]),Std.parseInt(values[2]),Std.parseInt(values[3])); } if(flixel_graphics_frames_bmfont_BMFontXml.has(infoNode,"spacing")) { info.spacing = flixel_graphics_frames_bmfont_BMFontSpacing.fromString(flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.string(infoNode,"spacing")); } return info; }; flixel_graphics_frames_bmfont_BMFontInfo.fromText = function(infoText) { var face = null; var size = -1; var bold = false; var italic = false; var smooth = false; var charset = null; var unicode = false; var stretchH = 100; var aa = 1; var padding = new flixel_graphics_frames_bmfont_BMFontPadding(); var spacing = new flixel_graphics_frames_bmfont_BMFontSpacing(); var outline = 0; var fixedHeight = false; flixel_graphics_frames_bmfont_BMFontUtil.forEachAttribute(infoText,function(key,value) { switch(key) { case "aa": aa = Std.parseInt(value); break; case "bold": bold = value != "0"; break; case "charset": charset = value; break; case "face": face = value; break; case "fixedHeight": fixedHeight = value != "0"; break; case "italic": italic = value != "0"; break; case "outline": outline = Std.parseInt(value); break; case "padding": var values = value.split(","); padding = new flixel_graphics_frames_bmfont_BMFontPadding(Std.parseInt(values[0]),Std.parseInt(values[1]),Std.parseInt(values[2]),Std.parseInt(values[3])); break; case "size": size = Std.parseInt(value); break; case "smooth": smooth = value != "0"; break; case "spacing": spacing = flixel_graphics_frames_bmfont_BMFontSpacing.fromString(value); break; case "stretchH": stretchH = Std.parseInt(value); break; case "unicode": unicode = value != "0"; break; } }); return new flixel_graphics_frames_bmfont_BMFontInfo(face,size,bold,italic,charset,unicode,stretchH,smooth,aa,padding,spacing,outline,fixedHeight); }; flixel_graphics_frames_bmfont_BMFontInfo.fromBytes = function(bytes) { var blockSize = bytes.readInt32(); var size = bytes.readInt16(); var bitField = bytes.readByte(); var charsetByte = bytes.readByte(); var _g = charsetByte > 0 ? String.fromCodePoint(charsetByte) : ""; var _g1 = bytes.readUInt16(); var _g2 = bytes.readByte(); var bytes1 = new haxe_io_BytesInput(bytes.read(4)); var _g3 = new flixel_graphics_frames_bmfont_BMFontPadding(bytes1.readByte(),bytes1.readByte(),bytes1.readByte(),bytes1.readByte()); var bytes1 = new haxe_io_BytesInput(bytes.read(2)); var _g4 = new flixel_graphics_frames_bmfont_BMFontSpacing(bytes1.readByte(),bytes1.readByte()); var _g5 = bytes.readByte(); var fontInfo = new flixel_graphics_frames_bmfont_BMFontInfo(bytes.readString(blockSize - 14 - 1),size,(bitField & 16) != 0,(bitField & 32) != 0,_g,(bitField & 64) != 0,_g1,(bitField & 128) != 0,_g2,_g3,_g4,_g5,(bitField & 8) != 0); bytes.readByte(); return fontInfo; }; flixel_graphics_frames_bmfont_BMFontInfo.prototype = { face: null ,size: null ,bold: null ,italic: null ,charset: null ,unicode: null ,stretchH: null ,smooth: null ,aa: null ,padding: null ,spacing: null ,outline: null ,fixedHeight: null ,__class__: flixel_graphics_frames_bmfont_BMFontInfo }; var flixel_graphics_frames_bmfont_BMFontPadding = function(up,right,down,left) { if(left == null) { left = 0; } if(down == null) { down = 0; } if(right == null) { right = 0; } if(up == null) { up = 0; } this.left = 0; this.down = 0; this.right = 0; this.up = 0; this.up = up; this.right = right; this.down = down; this.left = left; }; $hxClasses["flixel.graphics.frames.bmfont.BMFontPadding"] = flixel_graphics_frames_bmfont_BMFontPadding; flixel_graphics_frames_bmfont_BMFontPadding.__name__ = "flixel.graphics.frames.bmfont.BMFontPadding"; flixel_graphics_frames_bmfont_BMFontPadding.fromString = function(data) { var values = data.split(","); return new flixel_graphics_frames_bmfont_BMFontPadding(Std.parseInt(values[0]),Std.parseInt(values[1]),Std.parseInt(values[2]),Std.parseInt(values[3])); }; flixel_graphics_frames_bmfont_BMFontPadding.fromBytes = function(bytes) { return new flixel_graphics_frames_bmfont_BMFontPadding(bytes.readByte(),bytes.readByte(),bytes.readByte(),bytes.readByte()); }; flixel_graphics_frames_bmfont_BMFontPadding.prototype = { up: null ,right: null ,down: null ,left: null ,__class__: flixel_graphics_frames_bmfont_BMFontPadding }; var flixel_graphics_frames_bmfont_BMFontSpacing = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this.y = 0; this.x = 0; this.x = x; this.y = y; }; $hxClasses["flixel.graphics.frames.bmfont.BMFontSpacing"] = flixel_graphics_frames_bmfont_BMFontSpacing; flixel_graphics_frames_bmfont_BMFontSpacing.__name__ = "flixel.graphics.frames.bmfont.BMFontSpacing"; flixel_graphics_frames_bmfont_BMFontSpacing.fromString = function(data) { var values = data.split(","); return new flixel_graphics_frames_bmfont_BMFontSpacing(Std.parseInt(values[0]),Std.parseInt(values[1])); }; flixel_graphics_frames_bmfont_BMFontSpacing.fromBytes = function(bytes) { return new flixel_graphics_frames_bmfont_BMFontSpacing(bytes.readByte(),bytes.readByte()); }; flixel_graphics_frames_bmfont_BMFontSpacing.prototype = { x: null ,y: null ,__class__: flixel_graphics_frames_bmfont_BMFontSpacing }; var flixel_graphics_frames_bmfont_BMFontKerning = function(first,second,amount) { if(amount == null) { amount = 0; } if(second == null) { second = -1; } if(first == null) { first = -1; } this.first = first; this.second = second; this.amount = amount; }; $hxClasses["flixel.graphics.frames.bmfont.BMFontKerning"] = flixel_graphics_frames_bmfont_BMFontKerning; flixel_graphics_frames_bmfont_BMFontKerning.__name__ = "flixel.graphics.frames.bmfont.BMFontKerning"; flixel_graphics_frames_bmfont_BMFontKerning.fromXml = function(kerningNode) { return new flixel_graphics_frames_bmfont_BMFontKerning(flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(kerningNode,"first"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(kerningNode,"second"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(kerningNode,"amount")); }; flixel_graphics_frames_bmfont_BMFontKerning.listFromXml = function(kerningsNode) { var kernings = flixel_graphics_frames_bmfont_BMFontXml.nodes(kerningsNode,"kerning"); var _g = []; var _g1 = 0; while(_g1 < kernings.length) { var pair = kernings[_g1]; ++_g1; _g.push(flixel_graphics_frames_bmfont_BMFontKerning.fromXml(pair)); } return _g; }; flixel_graphics_frames_bmfont_BMFontKerning.fromText = function(kerningText) { var first = -1; var second = -1; var amount = -1; flixel_graphics_frames_bmfont_BMFontUtil.forEachAttribute(kerningText,function(key,value) { switch(key) { case "amount": amount = Std.parseInt(value); break; case "first": first = Std.parseInt(value); break; case "second": second = Std.parseInt(value); break; } }); return new flixel_graphics_frames_bmfont_BMFontKerning(first,second,amount); }; flixel_graphics_frames_bmfont_BMFontKerning.listFromBytes = function(bytes) { var blockSize = bytes.readInt32(); var kernings = []; while(blockSize > 0) { var kerning = new flixel_graphics_frames_bmfont_BMFontKerning(bytes.readInt32(),bytes.readInt32(),bytes.readInt16()); kernings.push(kerning); blockSize -= 10; } return kernings; }; flixel_graphics_frames_bmfont_BMFontKerning.prototype = { first: null ,second: null ,amount: null ,__class__: flixel_graphics_frames_bmfont_BMFontKerning }; var flixel_graphics_frames_bmfont_BMFontPage = function(id,file) { this.id = id; this.file = file; }; $hxClasses["flixel.graphics.frames.bmfont.BMFontPage"] = flixel_graphics_frames_bmfont_BMFontPage; flixel_graphics_frames_bmfont_BMFontPage.__name__ = "flixel.graphics.frames.bmfont.BMFontPage"; flixel_graphics_frames_bmfont_BMFontPage.fromXml = function(pageNode) { return new flixel_graphics_frames_bmfont_BMFontPage(flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int(pageNode,"id"),flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.string(pageNode,"file")); }; flixel_graphics_frames_bmfont_BMFontPage.listFromXml = function(pagesNode) { var pages = flixel_graphics_frames_bmfont_BMFontXml.nodes(pagesNode,"page"); var _g = []; var _g1 = 0; while(_g1 < pages.length) { var page = pages[_g1]; ++_g1; _g.push(flixel_graphics_frames_bmfont_BMFontPage.fromXml(page)); } return _g; }; flixel_graphics_frames_bmfont_BMFontPage.fromText = function(pageText) { var id = -1; var file = null; flixel_graphics_frames_bmfont_BMFontUtil.forEachAttribute(pageText,function(key,value) { switch(key) { case "file": file = value; break; case "id": id = Std.parseInt(value); break; default: flixel_FlxG.log.advanced("Unexpected font char attribute: " + key + "=" + value,flixel_system_debug_log_LogStyle.WARNING,true); } }); return new flixel_graphics_frames_bmfont_BMFontPage(id,file); }; flixel_graphics_frames_bmfont_BMFontPage.listFromBytes = function(bytes) { var blockSize = bytes.readInt32(); var pages = []; var i = 0; while(blockSize > 0) { var bytesBuf = new haxe_io_BytesBuffer(); var curByte = bytes.readByte(); while(curByte != 0) { bytesBuf.addByte(curByte); curByte = bytes.readByte(); } var pageName = bytesBuf.getBytes().toString(); pages.push(new flixel_graphics_frames_bmfont_BMFontPage(i,pageName)); blockSize -= pageName.length + 1; ++i; } return pages; }; flixel_graphics_frames_bmfont_BMFontPage.prototype = { id: null ,file: null ,__class__: flixel_graphics_frames_bmfont_BMFontPage }; var flixel_graphics_frames_bmfont_BMFontUtil = function() { }; $hxClasses["flixel.graphics.frames.bmfont.BMFontUtil"] = flixel_graphics_frames_bmfont_BMFontUtil; flixel_graphics_frames_bmfont_BMFontUtil.__name__ = "flixel.graphics.frames.bmfont.BMFontUtil"; flixel_graphics_frames_bmfont_BMFontUtil.forEachAttribute = function(text,callback) { var index = 0; while(flixel_graphics_frames_bmfont_BMFontUtil.attFinder.match(UnicodeString.substr(text,index))) { var key = flixel_graphics_frames_bmfont_BMFontUtil.attFinder.matched(1); var value = flixel_graphics_frames_bmfont_BMFontUtil.attFinder.matched(3); callback(key,value); var nextIndex = UnicodeString.get_length(text) - flixel_graphics_frames_bmfont_BMFontUtil.attFinder.matchedRight().length; if(nextIndex == index) { throw haxe_Exception.thrown("Error parsing text: " + text); } index = nextIndex; } }; var flixel_graphics_frames_bmfont_BMFontXml = {}; flixel_graphics_frames_bmfont_BMFontXml.__properties__ = {get_elements:"get_elements",get_att:"get_att",get_node:"get_node",get_name:"get_name",get_xml:"get_xml"}; flixel_graphics_frames_bmfont_BMFontXml.get_xml = function(this1) { return this1; }; flixel_graphics_frames_bmfont_BMFontXml.get_name = function(this1) { if(this1.nodeType == Xml.Document) { return "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } return this1.nodeName; } }; flixel_graphics_frames_bmfont_BMFontXml.get_node = function(this1) { return this1; }; flixel_graphics_frames_bmfont_BMFontXml.get_att = function(this1) { return this1; }; flixel_graphics_frames_bmfont_BMFontXml.get_elements = function(this1) { return this1.elements(); }; flixel_graphics_frames_bmfont_BMFontXml._new = function(xml) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } return xml; }; flixel_graphics_frames_bmfont_BMFontXml.has = function(this1,name) { if(this1.nodeType == Xml.Document) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } if(this1.nodeType != Xml.Document) { return this1.exists(name); } else { return false; } }; flixel_graphics_frames_bmfont_BMFontXml.hasNode = function(this1,name) { return this1.elementsNamed(name).hasNext(); }; flixel_graphics_frames_bmfont_BMFontXml.nodes = function(this1,name) { var _g = []; var xml = this1.elementsNamed(name); while(xml.hasNext()) { var xml1 = xml.next(); if(xml1.nodeType != Xml.Document && xml1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (xml1.nodeType == null ? "null" : XmlType.toString(xml1.nodeType))); } _g.push(xml1); } return _g; }; var flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess = {}; flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.getHelper = function(this1,name,invalid) { var xml = this1.elementsNamed(name).next(); if(xml == null) { var xname; if(this1.nodeType == Xml.Document) { xname = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } xname = this1.nodeName; } invalid("" + xname + " is missing element " + name); } return xml; }; flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.getSafe = function(this1,name) { var xml = this1.elementsNamed(name).next(); if(xml == null) { var xname; if(this1.nodeType == Xml.Document) { xname = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } xname = this1.nodeName; } null("" + xname + " is missing element " + name); } return xml; }; flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.get = function(this1,name) { var xml = this1.elementsNamed(name).next(); if(xml == null) { var xname; if(this1.nodeType == Xml.Document) { xname = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } xname = this1.nodeName; } throw haxe_Exception.thrown("" + xname + " is missing element " + name); } return xml; }; flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.getWarn = function(this1,name) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.warn)); var xml = this1.elementsNamed(name).next(); if(xml == null) { var xname; if(this1.nodeType == Xml.Document) { xname = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } xname = this1.nodeName; } invalid("" + xname + " is missing element " + name); } return xml; }; flixel_graphics_frames_bmfont__$BMFontXml_NodeAccess.getError = function(this1,name) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.error)); var xml = this1.elementsNamed(name).next(); if(xml == null) { var xname; if(this1.nodeType == Xml.Document) { xname = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } xname = this1.nodeName; } invalid("" + xname + " is missing element " + name); } return xml; }; var flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess = {}; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringHelper = function(this1,name,invalid,backup) { var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringSafe = function(this1,name,backup) { var invalid = null; var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.string = function(this1,name) { var invalid = function(msg) { throw haxe_Exception.thrown(msg); }; var value = null; if(this1.nodeType == Xml.Document) { if(invalid != null) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } throw haxe_Exception.thrown("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringWarn = function(this1,name,backup) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.warn)); var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.stringError = function(this1,name,backup) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.error)); var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intHelper = function(this1,name,invalid,backup) { var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = Std.parseInt(v); } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intSafe = function(this1,name,backup) { var invalid = null; var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = Std.parseInt(v); } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.int = function(this1,name) { var invalid = function(msg) { throw haxe_Exception.thrown(msg); }; var value = 0; if(this1.nodeType == Xml.Document) { if(invalid != null) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = Std.parseInt(v); } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } throw haxe_Exception.thrown("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intWarn = function(this1,name,backup) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.warn)); var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = Std.parseInt(v); } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.intError = function(this1,name,backup) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.error)); var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = Std.parseInt(v); } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolHelper = function(this1,name,invalid,backup) { var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v != "0"; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolSafe = function(this1,name,backup) { var invalid = null; var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v != "0"; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.bool = function(this1,name) { var invalid = function(msg) { throw haxe_Exception.thrown(msg); }; var value = false; if(this1.nodeType == Xml.Document) { if(invalid != null) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v != "0"; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } throw haxe_Exception.thrown("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolWarn = function(this1,name,backup) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.warn)); var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v != "0"; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; flixel_graphics_frames_bmfont__$BMFontXml_AttribAccess.boolError = function(this1,name,backup) { var invalid = ($_=flixel_FlxG.log,$bind($_,$_.error)); var value = backup; if(this1.nodeType == Xml.Document) { if(invalid != null) { invalid("Cannot access document attribute " + name); } } else { var v = this1.get(name); if(v != null) { value = v != "0"; } else if(invalid != null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } invalid("" + this1.nodeName + " is missing attribute " + name); } } return value; }; var flixel_graphics_tile_FlxDrawBaseItem = function() { this.blending = 0; this.hasColorOffsets = false; this.colored = false; this.antialiasing = false; }; $hxClasses["flixel.graphics.tile.FlxDrawBaseItem"] = flixel_graphics_tile_FlxDrawBaseItem; flixel_graphics_tile_FlxDrawBaseItem.__name__ = "flixel.graphics.tile.FlxDrawBaseItem"; flixel_graphics_tile_FlxDrawBaseItem.blendToInt = function(blend) { return 0; }; flixel_graphics_tile_FlxDrawBaseItem.prototype = { nextTyped: null ,next: null ,graphics: null ,antialiasing: null ,colored: null ,hasColorOffsets: null ,blending: null ,blend: null ,type: null ,reset: function() { this.graphics = null; this.antialiasing = false; this.nextTyped = null; this.next = null; } ,dispose: function() { this.graphics = null; this.next = null; this.type = null; this.nextTyped = null; } ,render: function(camera) { flixel_graphics_tile_FlxDrawBaseItem.drawCalls++; } ,addQuad: function(frame,matrix,transform) { } ,get_numVertices: function() { return 0; } ,get_numTriangles: function() { return 0; } ,__class__: flixel_graphics_tile_FlxDrawBaseItem ,__properties__: {get_numTriangles:"get_numTriangles",get_numVertices:"get_numVertices"} }; var flixel_graphics_tile_FlxDrawItemType = $hxEnums["flixel.graphics.tile.FlxDrawItemType"] = { __ename__:"flixel.graphics.tile.FlxDrawItemType",__constructs__:null ,TILES: {_hx_name:"TILES",_hx_index:0,__enum__:"flixel.graphics.tile.FlxDrawItemType",toString:$estr} ,TRIANGLES: {_hx_name:"TRIANGLES",_hx_index:1,__enum__:"flixel.graphics.tile.FlxDrawItemType",toString:$estr} }; flixel_graphics_tile_FlxDrawItemType.__constructs__ = [flixel_graphics_tile_FlxDrawItemType.TILES,flixel_graphics_tile_FlxDrawItemType.TRIANGLES]; flixel_graphics_tile_FlxDrawItemType.__empty_constructs__ = [flixel_graphics_tile_FlxDrawItemType.TILES,flixel_graphics_tile_FlxDrawItemType.TRIANGLES]; var flixel_graphics_tile_FlxDrawQuadsItem = function() { flixel_graphics_tile_FlxDrawBaseItem.call(this); this.type = flixel_graphics_tile_FlxDrawItemType.TILES; this.rects = openfl_Vector.toFloatVector(null); this.transforms = openfl_Vector.toFloatVector(null); this.alphas = []; }; $hxClasses["flixel.graphics.tile.FlxDrawQuadsItem"] = flixel_graphics_tile_FlxDrawQuadsItem; flixel_graphics_tile_FlxDrawQuadsItem.__name__ = "flixel.graphics.tile.FlxDrawQuadsItem"; flixel_graphics_tile_FlxDrawQuadsItem.__super__ = flixel_graphics_tile_FlxDrawBaseItem; flixel_graphics_tile_FlxDrawQuadsItem.prototype = $extend(flixel_graphics_tile_FlxDrawBaseItem.prototype,{ shader: null ,rects: null ,transforms: null ,alphas: null ,colorMultipliers: null ,colorOffsets: null ,reset: function() { flixel_graphics_tile_FlxDrawBaseItem.prototype.reset.call(this); this.rects.set_length(0); this.transforms.set_length(0); this.alphas.splice(0,this.alphas.length); if(this.colorMultipliers != null) { this.colorMultipliers.splice(0,this.colorMultipliers.length); } if(this.colorOffsets != null) { this.colorOffsets.splice(0,this.colorOffsets.length); } } ,dispose: function() { flixel_graphics_tile_FlxDrawBaseItem.prototype.dispose.call(this); this.rects = null; this.transforms = null; this.alphas = null; this.colorMultipliers = null; this.colorOffsets = null; } ,addQuad: function(frame,matrix,transform) { var rect = frame.frame; this.rects.push(rect.x); this.rects.push(rect.y); this.rects.push(rect.width); this.rects.push(rect.height); this.transforms.push(matrix.a); this.transforms.push(matrix.b); this.transforms.push(matrix.c); this.transforms.push(matrix.d); this.transforms.push(matrix.tx); this.transforms.push(matrix.ty); var alphaMultiplier = transform != null ? transform.alphaMultiplier : 1.0; this.alphas.push(alphaMultiplier); this.alphas.push(alphaMultiplier); this.alphas.push(alphaMultiplier); this.alphas.push(alphaMultiplier); if(this.colored || this.hasColorOffsets) { if(this.colorMultipliers == null) { this.colorMultipliers = []; } if(this.colorOffsets == null) { this.colorOffsets = []; } var _g = 0; while(_g < 4) { var i = _g++; if(transform != null) { this.colorMultipliers.push(transform.redMultiplier); this.colorMultipliers.push(transform.greenMultiplier); this.colorMultipliers.push(transform.blueMultiplier); this.colorOffsets.push(transform.redOffset); this.colorOffsets.push(transform.greenOffset); this.colorOffsets.push(transform.blueOffset); this.colorOffsets.push(transform.alphaOffset); } else { this.colorMultipliers.push(1); this.colorMultipliers.push(1); this.colorMultipliers.push(1); this.colorOffsets.push(0); this.colorOffsets.push(0); this.colorOffsets.push(0); this.colorOffsets.push(0); } this.colorMultipliers.push(1); } } } ,render: function(camera) { if(this.rects.get_length() == 0) { return; } var shader = this.shader != null ? this.shader : this.graphics.shader; if(shader == null) { throw haxe_Exception.thrown("Attempted to render an invalid FlxDrawItem, did you destroy a cached sprite?"); } shader.bitmap.input = this.graphics.bitmap; shader.bitmap.filter = camera.antialiasing || this.antialiasing ? 4 : 5; shader.alpha.value = this.alphas; if(this.colored || this.hasColorOffsets) { shader.colorMultiplier.value = this.colorMultipliers; shader.colorOffset.value = this.colorOffsets; } var parameter = shader.hasTransform; if(parameter.value == null) { parameter.value = []; } parameter.value[0] = true; var parameter = shader.hasColorTransform; if(parameter.value == null) { parameter.value = []; } parameter.value[0] = this.colored || this.hasColorOffsets; camera.canvas.get_graphics().overrideBlendMode(this.blend); camera.canvas.get_graphics().beginShaderFill(shader); camera.canvas.get_graphics().drawQuads(this.rects,null,this.transforms); flixel_graphics_tile_FlxDrawBaseItem.prototype.render.call(this,camera); } ,setParameterValue: function(parameter,value) { if(parameter.value == null) { parameter.value = []; } parameter.value[0] = value; } ,__class__: flixel_graphics_tile_FlxDrawQuadsItem }); var flixel_graphics_tile_FlxDrawTrianglesItem = function() { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; this.bounds = rect; this.colorsPosition = 0; this.indicesPosition = 0; this.verticesPosition = 0; this.colors = openfl_Vector.toIntVector(null); this.uvtData = openfl_Vector.toFloatVector(null); this.indices = openfl_Vector.toIntVector(null); this.vertices = openfl_Vector.toFloatVector(null); flixel_graphics_tile_FlxDrawBaseItem.call(this); this.type = flixel_graphics_tile_FlxDrawItemType.TRIANGLES; this.alphas = []; }; $hxClasses["flixel.graphics.tile.FlxDrawTrianglesItem"] = flixel_graphics_tile_FlxDrawTrianglesItem; flixel_graphics_tile_FlxDrawTrianglesItem.__name__ = "flixel.graphics.tile.FlxDrawTrianglesItem"; flixel_graphics_tile_FlxDrawTrianglesItem.inflateBounds = function(bounds,x,y) { if(x < bounds.x) { bounds.width += bounds.x - x; bounds.x = x; } if(y < bounds.y) { bounds.height += bounds.y - y; bounds.y = y; } if(x > bounds.x + bounds.width) { bounds.width = x - bounds.x; } if(y > bounds.y + bounds.height) { bounds.height = y - bounds.y; } return bounds; }; flixel_graphics_tile_FlxDrawTrianglesItem.__super__ = flixel_graphics_tile_FlxDrawBaseItem; flixel_graphics_tile_FlxDrawTrianglesItem.prototype = $extend(flixel_graphics_tile_FlxDrawBaseItem.prototype,{ shader: null ,alphas: null ,colorMultipliers: null ,colorOffsets: null ,vertices: null ,indices: null ,uvtData: null ,colors: null ,verticesPosition: null ,indicesPosition: null ,colorsPosition: null ,bounds: null ,render: function(camera) { if(!flixel_FlxG.renderTile) { return; } if(this.get_numTriangles() <= 0) { return; } var shader = this.shader != null ? this.shader : this.graphics.shader; shader.bitmap.input = this.graphics.bitmap; shader.bitmap.filter = camera.antialiasing || this.antialiasing ? 4 : 5; shader.bitmap.wrap = 2; shader.alpha.value = this.alphas; if(this.colored || this.hasColorOffsets) { shader.colorMultiplier.value = this.colorMultipliers; shader.colorOffset.value = this.colorOffsets; } var parameter = shader.hasTransform; if(parameter.value == null) { parameter.value = []; } parameter.value[0] = true; var parameter = shader.hasColorTransform; if(parameter.value == null) { parameter.value = []; } parameter.value[0] = this.colored || this.hasColorOffsets; camera.canvas.get_graphics().overrideBlendMode(this.blend); camera.canvas.get_graphics().beginShaderFill(shader); camera.canvas.get_graphics().drawTriangles(this.vertices,this.indices,this.uvtData,1); camera.canvas.get_graphics().endFill(); flixel_graphics_tile_FlxDrawBaseItem.prototype.render.call(this,camera); } ,reset: function() { flixel_graphics_tile_FlxDrawBaseItem.prototype.reset.call(this); var this1 = this.vertices; var deleteCount = this.vertices.get_length(); this1.__tempIndex = 0; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,deleteCount); var this1 = this.indices; var deleteCount = this.indices.get_length(); this1.__tempIndex = 0; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,deleteCount); var this1 = this.uvtData; var deleteCount = this.uvtData.get_length(); this1.__tempIndex = 0; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,deleteCount); var this1 = this.colors; var deleteCount = this.colors.get_length(); this1.__tempIndex = 0; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,deleteCount); this.verticesPosition = 0; this.indicesPosition = 0; this.colorsPosition = 0; this.alphas.splice(0,this.alphas.length); if(this.colorMultipliers != null) { this.colorMultipliers.splice(0,this.colorMultipliers.length); } if(this.colorOffsets != null) { this.colorOffsets.splice(0,this.colorOffsets.length); } } ,dispose: function() { flixel_graphics_tile_FlxDrawBaseItem.prototype.dispose.call(this); this.vertices = null; this.indices = null; this.uvtData = null; this.colors = null; this.bounds = null; this.alphas = null; this.colorMultipliers = null; this.colorOffsets = null; } ,addTriangles: function(vertices,indices,uvtData,colors,position,cameraBounds,transform) { if(position == null) { var this1 = flixel_graphics_tile_FlxDrawTrianglesItem.point; this1.set_x(0); this1.set_y(0); position = this1; } if(cameraBounds == null) { var _this = flixel_graphics_tile_FlxDrawTrianglesItem.rect; var X = 0; var Y = 0; var Width = flixel_FlxG.width; var Height = flixel_FlxG.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; cameraBounds = _this; } var verticesLength = vertices.get_length(); var prevVerticesLength = this.vertices.get_length(); var numberOfVertices = verticesLength / 2 | 0; var prevIndicesLength = this.indices.get_length(); var prevUVTDataLength = this.uvtData.get_length(); var prevColorsLength = this.colors.get_length(); var prevNumberOfVertices = this.get_numVertices(); var tempX; var tempY; var i = 0; var currentVertexPosition = prevVerticesLength; while(i < verticesLength) { tempX = position.x + vertices.get(i); tempY = position.y + vertices.get(i + 1); this.vertices.set(currentVertexPosition++,tempX); this.vertices.set(currentVertexPosition++,tempY); if(i == 0) { var _this = this.bounds; var X = tempX; var Y = tempY; var Width = 0; var Height = 0; 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; } else { var bounds = this.bounds; if(tempX < bounds.x) { bounds.width += bounds.x - tempX; bounds.x = tempX; } if(tempY < bounds.y) { bounds.height += bounds.y - tempY; bounds.y = tempY; } if(tempX > bounds.x + bounds.width) { bounds.width = tempX - bounds.x; } if(tempY > bounds.y + bounds.height) { bounds.height = tempY - bounds.y; } } i += 2; } var Rect = this.bounds; var result = Rect.x + Rect.width > cameraBounds.x && Rect.x < cameraBounds.x + cameraBounds.width && Rect.y + Rect.height > cameraBounds.y && Rect.y < cameraBounds.y + cameraBounds.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } if(!result) { var this1 = this.vertices; this1.__tempIndex = this.vertices.get_length() - verticesLength; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,verticesLength); } else { var uvtDataLength = uvtData.get_length(); var _g = 0; var _g1 = uvtDataLength; while(_g < _g1) { var i = _g++; this.uvtData.set(prevUVTDataLength + i,uvtData.get(i)); } var indicesLength = indices.get_length(); var _g = 0; var _g1 = indicesLength; while(_g < _g1) { var i = _g++; this.indices.set(prevIndicesLength + i,indices.get(i) + prevNumberOfVertices); } if(this.colored) { var _g = 0; var _g1 = numberOfVertices; while(_g < _g1) { var i = _g++; this.colors.set(prevColorsLength + i,colors.get(i)); } this.colorsPosition += numberOfVertices; } this.verticesPosition += verticesLength; this.indicesPosition += indicesLength; } if(position._weak) { position.put(); } if(cameraBounds._weak) { if(!cameraBounds._inPool) { cameraBounds._inPool = true; cameraBounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(cameraBounds); } } var _g = 0; var _g1 = this.get_numTriangles(); while(_g < _g1) { var _ = _g++; this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0); this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0); this.alphas.push(transform != null ? transform.alphaMultiplier : 1.0); } if(this.colored || this.hasColorOffsets) { if(this.colorMultipliers == null) { this.colorMultipliers = []; } if(this.colorOffsets == null) { this.colorOffsets = []; } var _g = 0; var _g1 = this.get_numTriangles() * 3; while(_g < _g1) { var _ = _g++; if(transform != null) { this.colorMultipliers.push(transform.redMultiplier); this.colorMultipliers.push(transform.greenMultiplier); this.colorMultipliers.push(transform.blueMultiplier); this.colorOffsets.push(transform.redOffset); this.colorOffsets.push(transform.greenOffset); this.colorOffsets.push(transform.blueOffset); this.colorOffsets.push(transform.alphaOffset); } else { this.colorMultipliers.push(1); this.colorMultipliers.push(1); this.colorMultipliers.push(1); this.colorOffsets.push(0); this.colorOffsets.push(0); this.colorOffsets.push(0); this.colorOffsets.push(0); } this.colorMultipliers.push(1); } } } ,setParameterValue: function(parameter,value) { if(parameter.value == null) { parameter.value = []; } parameter.value[0] = value; } ,addQuad: function(frame,matrix,transform) { var prevVerticesPos = this.verticesPosition; var prevIndicesPos = this.indicesPosition; var prevColorsPos = this.colorsPosition; var prevNumberOfVertices = this.get_numVertices(); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx; var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); this.vertices.set(prevVerticesPos,point1.x); this.vertices.set(prevVerticesPos + 1,point1.y); this.uvtData.set(prevVerticesPos,frame.uv.x); this.uvtData.set(prevVerticesPos + 1,frame.uv.y); var x = frame.frame.width; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx; var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); this.vertices.set(prevVerticesPos + 2,point1.x); this.vertices.set(prevVerticesPos + 3,point1.y); this.uvtData.set(prevVerticesPos + 2,frame.uv.width); this.uvtData.set(prevVerticesPos + 3,frame.uv.y); var x = frame.frame.width; var y = frame.frame.height; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx; var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); this.vertices.set(prevVerticesPos + 4,point1.x); this.vertices.set(prevVerticesPos + 5,point1.y); this.uvtData.set(prevVerticesPos + 4,frame.uv.width); this.uvtData.set(prevVerticesPos + 5,frame.uv.height); var x = 0; var y = frame.frame.height; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); var x1 = point1.x * matrix.a + point1.y * matrix.c + matrix.tx; var y1 = point1.x * matrix.b + point1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } point1.set_x(x); point1.set_y(y); this.vertices.set(prevVerticesPos + 6,point1.x); this.vertices.set(prevVerticesPos + 7,point1.y); point1.put(); this.uvtData.set(prevVerticesPos + 6,frame.uv.x); this.uvtData.set(prevVerticesPos + 7,frame.uv.height); this.indices.set(prevIndicesPos,prevNumberOfVertices); this.indices.set(prevIndicesPos + 1,prevNumberOfVertices + 1); this.indices.set(prevIndicesPos + 2,prevNumberOfVertices + 2); this.indices.set(prevIndicesPos + 3,prevNumberOfVertices + 2); this.indices.set(prevIndicesPos + 4,prevNumberOfVertices + 3); this.indices.set(prevIndicesPos + 5,prevNumberOfVertices); if(this.colored) { var red = 1.0; var green = 1.0; var blue = 1.0; var alpha = 1.0; if(transform != null) { red = transform.redMultiplier; green = transform.greenMultiplier; blue = transform.blueMultiplier; alpha = transform.alphaMultiplier; } var Alpha = alpha; if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(red * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(green * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(blue * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; var color1 = color; this.colors.set(prevColorsPos,color1); this.colors.set(prevColorsPos + 1,color1); this.colors.set(prevColorsPos + 2,color1); this.colors.set(prevColorsPos + 3,color1); this.colorsPosition += 4; } this.verticesPosition += 8; this.indicesPosition += 6; } ,get_numVertices: function() { return this.vertices.get_length() / 2 | 0; } ,get_numTriangles: function() { return this.indices.get_length() / 3 | 0; } ,__class__: flixel_graphics_tile_FlxDrawTrianglesItem }); var flixel_group_FlxTypedGroupIterator = function(groupMembers,filter) { this._groupMembers = groupMembers; this._filter = filter; this._cursor = 0; this._length = this._groupMembers.length; }; $hxClasses["flixel.group.FlxTypedGroupIterator"] = flixel_group_FlxTypedGroupIterator; flixel_group_FlxTypedGroupIterator.__name__ = "flixel.group.FlxTypedGroupIterator"; flixel_group_FlxTypedGroupIterator.prototype = { _groupMembers: null ,_filter: null ,_cursor: null ,_length: null ,next: function() { if(this.hasNext()) { return this._groupMembers[this._cursor++]; } else { return null; } } ,hasNext: function() { while(this._cursor < this._length && (this._groupMembers[this._cursor] == null || this._filter != null && !this._filter(this._groupMembers[this._cursor]))) this._cursor++; return this._cursor < this._length; } ,__class__: flixel_group_FlxTypedGroupIterator }; var flixel_input_FlxAccelerometer = function() { this.z = 0; this.y = 0; this.x = 0; if(openfl_sensors_Accelerometer.get_isSupported()) { this._sensor = new openfl_sensors_Accelerometer(); this._sensor.addEventListener("update",$bind(this,this.update)); } }; $hxClasses["flixel.input.FlxAccelerometer"] = flixel_input_FlxAccelerometer; flixel_input_FlxAccelerometer.__name__ = "flixel.input.FlxAccelerometer"; flixel_input_FlxAccelerometer.prototype = { x: null ,y: null ,z: null ,_sensor: null ,get_isSupported: function() { return openfl_sensors_Accelerometer.get_isSupported(); } ,update: function(Event1) { this.x = Event1.accelerationX; this.y = Event1.accelerationY; this.z = Event1.accelerationZ; this.x /= 10; this.y /= 10; this.z /= 10; } ,__class__: flixel_input_FlxAccelerometer ,__properties__: {get_isSupported:"get_isSupported"} }; var flixel_input_FlxBaseKeyList = function(status,keyManager) { this.status = status; this.keyManager = keyManager; }; $hxClasses["flixel.input.FlxBaseKeyList"] = flixel_input_FlxBaseKeyList; flixel_input_FlxBaseKeyList.__name__ = "flixel.input.FlxBaseKeyList"; flixel_input_FlxBaseKeyList.prototype = { status: null ,keyManager: null ,check: function(keyCode) { return this.keyManager.checkStatusUnsafe(keyCode,this.status); } ,get_ANY: function() { var _g = 0; var _g1 = this.keyManager._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null && this.keyManager.checkStatusUnsafe(key.ID,this.status)) { return true; } } return false; } ,get_NONE: function() { var _g = 0; var _g1 = this.keyManager._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null && this.keyManager.checkStatusUnsafe(key.ID,this.status)) { return false; } } return true; } ,__class__: flixel_input_FlxBaseKeyList ,__properties__: {get_NONE:"get_NONE",get_ANY:"get_ANY"} }; var flixel_input_FlxInput = function(ID) { this.last = 0; this.current = 0; this.ID = ID; }; $hxClasses["flixel.input.FlxInput"] = flixel_input_FlxInput; flixel_input_FlxInput.__name__ = "flixel.input.FlxInput"; flixel_input_FlxInput.__interfaces__ = [flixel_input_IFlxInput]; flixel_input_FlxInput.prototype = { ID: null ,current: null ,last: null ,press: function() { this.last = this.current; this.current = this.current == 1 || this.current == 2 ? 1 : 2; } ,release: function() { this.last = this.current; this.current = this.current == 1 || this.current == 2 ? -1 : 0; } ,update: function() { if(this.last == -1 && this.current == -1) { this.current = 0; } else if(this.last == 2 && this.current == 2) { this.current = 1; } this.last = this.current; } ,reset: function() { this.current = 0; this.last = 0; } ,hasState: function(state) { switch(state) { case -1: return this.current == -1; case 0: if(this.current != 0) { return this.current == -1; } else { return true; } break; case 1: if(this.current != 1) { return this.current == 2; } else { return true; } break; case 2: return this.current == 2; } } ,get_justReleased: function() { return this.current == -1; } ,get_released: function() { if(this.current != 0) { return this.current == -1; } else { return true; } } ,get_pressed: function() { if(this.current != 1) { return this.current == 2; } else { return true; } } ,get_justPressed: function() { return this.current == 2; } ,__class__: flixel_input_FlxInput ,__properties__: {get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased"} }; var flixel_input_FlxKeyManager = function(createKeyList) { this._keyListMap = new haxe_ds_IntMap(); this._keyListArray = []; this.preventDefaultKeys = []; this.enabled = true; openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.onKeyDown)); openfl_Lib.get_current().stage.addEventListener("keyUp",$bind(this,this.onKeyUp)); this.pressed = createKeyList(1,this); this.released = createKeyList(0,this); this.justPressed = createKeyList(2,this); this.justReleased = createKeyList(-1,this); }; $hxClasses["flixel.input.FlxKeyManager"] = flixel_input_FlxKeyManager; flixel_input_FlxKeyManager.__name__ = "flixel.input.FlxKeyManager"; flixel_input_FlxKeyManager.__interfaces__ = [flixel_input_IFlxInputManager]; flixel_input_FlxKeyManager.prototype = { enabled: null ,preventDefaultKeys: null ,pressed: null ,justPressed: null ,released: null ,justReleased: null ,_keyListArray: null ,_keyListMap: null ,anyPressed: function(KeyArray) { return this.checkKeyArrayState(KeyArray,1); } ,anyJustPressed: function(KeyArray) { return this.checkKeyArrayState(KeyArray,2); } ,anyJustReleased: function(KeyArray) { return this.checkKeyArrayState(KeyArray,-1); } ,firstPressed: function() { var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null && (key.current == 1 || key.current == 2)) { return key.ID; } } return -1; } ,firstJustPressed: function() { var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null && key.current == 2) { return key.ID; } } return -1; } ,firstJustReleased: function() { var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null && key.current == -1) { return key.ID; } } return -1; } ,checkStatus: function(KeyCode,Status) { if(KeyCode == -2) { switch(Status) { case -1: return this.justReleased.get_ANY(); case 0: return this.released.get_ANY(); case 1: return this.pressed.get_ANY(); case 2: return this.justPressed.get_ANY(); } } if(KeyCode == -1) { switch(Status) { case -1: return this.justReleased.get_NONE(); case 0: return this.released.get_NONE(); case 1: return this.pressed.get_NONE(); case 2: return this.justPressed.get_NONE(); } } if(this._keyListMap.h.hasOwnProperty(KeyCode)) { return this.checkStatusUnsafe(KeyCode,Status); } return false; } ,checkStatusUnsafe: function(KeyCode,Status) { return this._keyListMap.h[KeyCode].hasState(Status); } ,getIsDown: function() { var keysDown = []; var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null && (key.current == 1 || key.current == 2)) { keysDown.push(key); } } return keysDown; } ,destroy: function() { this._keyListArray = null; this._keyListMap = null; } ,reset: function() { var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null) { key.release(); } } } ,update: function() { var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key != null) { key.update(); } } } ,checkKeyArrayState: function(KeyArray,State) { if(KeyArray == null) { return false; } var _g = 0; while(_g < KeyArray.length) { var code = KeyArray[_g]; ++_g; if(this.checkStatus(code,State)) { return true; } } return false; } ,onKeyUp: function(event) { var c = this.resolveKeyCode(event); this.handlePreventDefaultKeys(c,event); if(this.enabled) { var key = this._keyListMap.h[c]; if(key != null) { key.release(); } } } ,onKeyDown: function(event) { var c = this.resolveKeyCode(event); this.handlePreventDefaultKeys(c,event); if(this.enabled) { var key = this._keyListMap.h[c]; if(key != null) { key.press(); } } } ,handlePreventDefaultKeys: function(keyCode,event) { var key = this._keyListMap.h[keyCode]; if(key != null && this.preventDefaultKeys != null && this.preventDefaultKeys.indexOf(key.ID) != -1) { event.stopImmediatePropagation(); event.stopPropagation(); event.preventDefault(); } } ,inKeyArray: function(KeyArray,Event1) { if(KeyArray == null) { return false; } else { var code = this.resolveKeyCode(Event1); var _g = 0; while(_g < KeyArray.length) { var key = KeyArray[_g]; ++_g; if(key == code || key == -2) { return true; } } } return false; } ,resolveKeyCode: function(e) { return e.keyCode; } ,updateKeyStates: function(KeyCode,Down) { var key = this._keyListMap.h[KeyCode]; if(key != null) { if(Down) { key.press(); } else { key.release(); } } } ,onFocus: function() { } ,onFocusLost: function() { this.reset(); } ,getKey: function(KeyCode) { return this._keyListMap.h[KeyCode]; } ,__class__: flixel_input_FlxKeyManager }; var flixel_input_FlxSwipe = function(ID,StartPosition,EndPosition,StartTimeInTicks) { this.ID = ID; this.startPosition = StartPosition; this.endPosition = EndPosition; this._startTimeInTicks = StartTimeInTicks; this._endTimeInTicks = flixel_FlxG.game.ticks; }; $hxClasses["flixel.input.FlxSwipe"] = flixel_input_FlxSwipe; flixel_input_FlxSwipe.__name__ = "flixel.input.FlxSwipe"; flixel_input_FlxSwipe.prototype = { ID: null ,startPosition: null ,endPosition: null ,_startTimeInTicks: null ,_endTimeInTicks: null ,toString: function() { var value = this.ID; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "ID"; _this.value = value; var value = this.startPosition; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "start"; _this1.value = value; var value = this.endPosition; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "end"; _this2.value = value; var dx = this.startPosition.x - this.endPosition.x; var dy = this.startPosition.y - this.endPosition.y; var value = Math.sqrt(dx * dx + dy * dy); var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "distance"; _this3.value = value; var this1 = this.startPosition; var point = this.endPosition; var x = point.x - this1.x; var y = point.y - this1.y; var asDegrees = true; if(asDegrees == null) { asDegrees = false; } var value = asDegrees ? Math.atan2(y,x) * (180 / Math.PI) : Math.atan2(y,x); var _this4 = flixel_util_LabelValuePair._pool.get(); _this4.label = "degrees"; _this4.value = value; var value = (this._endTimeInTicks - this._startTimeInTicks) / 1000; var _this5 = flixel_util_LabelValuePair._pool.get(); _this5.label = "duration"; _this5.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5]); } ,get_distance: function() { var dx = this.startPosition.x - this.endPosition.x; var dy = this.startPosition.y - this.endPosition.y; return Math.sqrt(dx * dx + dy * dy); } ,get_angle: function() { var this1 = this.startPosition; var point = this.endPosition; var x = point.x - this1.x; var y = point.y - this1.y; var asDegrees = true; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } } ,get_degrees: function() { var this1 = this.startPosition; var point = this.endPosition; var x = point.x - this1.x; var y = point.y - this1.y; var asDegrees = true; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } } ,get_radians: function() { var this1 = this.startPosition; var point = this.endPosition; var x = point.x - this1.x; var y = point.y - this1.y; var asDegrees = false; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } } ,get_duration: function() { return (this._endTimeInTicks - this._startTimeInTicks) / 1000; } ,__class__: flixel_input_FlxSwipe ,__properties__: {get_duration:"get_duration",get_radians:"get_radians",get_degrees:"get_degrees",get_angle:"get_angle",get_distance:"get_distance"} }; var flixel_input_actions_FlxAction = function(InputType,Name) { this.steamOriginsChanged = false; this._checked = false; this._timestamp = 0; this._y = null; this._x = null; this.triggered = false; this.steamHandle = -1; this.type = InputType; this.name = Name; this.inputs = []; }; $hxClasses["flixel.input.actions.FlxAction"] = flixel_input_actions_FlxAction; flixel_input_actions_FlxAction.__name__ = "flixel.input.actions.FlxAction"; flixel_input_actions_FlxAction.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_actions_FlxAction.prototype = { type: null ,name: null ,steamHandle: null ,triggered: null ,inputs: null ,_x: null ,_y: null ,_timestamp: null ,_checked: null ,steamOriginsChanged: null ,getFirstSteamOrigin: function() { return 0; } ,getSteamOrigins: function(origins) { return origins; } ,removeAll: function(Destroy) { if(Destroy == null) { Destroy = true; } var len = this.inputs.length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; var j = len - i - 1; var input = this.inputs[j]; this.remove(input,Destroy); this.inputs.splice(j,1); } } ,remove: function(Input,Destroy) { if(Destroy == null) { Destroy = false; } if(Input == null) { return; } HxOverrides.remove(this.inputs,Input); if(Destroy) { Input.destroy(); } } ,toString: function() { return "FlxAction(" + Std.string(this.type) + ") name:" + this.name; } ,check: function() { this._x = null; this._y = null; if(this._timestamp == flixel_FlxG.game.ticks) { this.triggered = this._checked; return this._checked; } this._timestamp = flixel_FlxG.game.ticks; this._checked = false; var len = this.inputs != null ? this.inputs.length : 0; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; var j = len - i - 1; var input = this.inputs[j]; if(input.destroyed) { this.inputs.splice(j,1); continue; } input.update(); if(input.check(this)) { this._checked = true; } } this.triggered = this._checked; return this._checked; } ,update: function() { this.check(); } ,destroy: function() { flixel_util_FlxDestroyUtil.destroyArray(this.inputs); this.inputs = null; } ,match: function(other) { if(this.name == other.name) { return this.steamHandle == other.steamHandle; } else { return false; } } ,addGenericInput: function(input) { if(this.inputs == null) { this.inputs = []; } if(!this.checkExists(input)) { this.inputs.push(input); } return this; } ,checkExists: function(input) { if(this.inputs == null) { return false; } return this.inputs.indexOf(input) != -1; } ,__class__: flixel_input_actions_FlxAction }; var flixel_input_actions_FlxActionDigital = function(Name,Callback) { if(Name == null) { Name = ""; } flixel_input_actions_FlxAction.call(this,flixel_input_actions_FlxInputType.DIGITAL,Name); this.callback = Callback; }; $hxClasses["flixel.input.actions.FlxActionDigital"] = flixel_input_actions_FlxActionDigital; flixel_input_actions_FlxActionDigital.__name__ = "flixel.input.actions.FlxActionDigital"; flixel_input_actions_FlxActionDigital.__super__ = flixel_input_actions_FlxAction; flixel_input_actions_FlxActionDigital.prototype = $extend(flixel_input_actions_FlxAction.prototype,{ callback: null ,add: function(input) { this.addGenericInput(input); return this; } ,addInput: function(Input,Trigger) { return this.add(new flixel_input_actions_FlxActionInputDigitalIFlxInput(Input,Trigger)); } ,addGamepad: function(InputID,Trigger,GamepadID) { if(GamepadID == null) { GamepadID = -2; } return this.add(new flixel_input_actions_FlxActionInputDigitalGamepad(InputID,Trigger,GamepadID)); } ,addKey: function(Key,Trigger) { return this.add(new flixel_input_actions_FlxActionInputDigitalKeyboard(Key,Trigger)); } ,addMouse: function(ButtonID,Trigger) { return this.add(new flixel_input_actions_FlxActionInputDigitalMouse(ButtonID,Trigger)); } ,addMouseWheel: function(Positive,Trigger) { return this.add(new flixel_input_actions_FlxActionInputDigitalMouseWheel(Positive,Trigger)); } ,destroy: function() { this.callback = null; flixel_input_actions_FlxAction.prototype.destroy.call(this); } ,check: function() { var val = flixel_input_actions_FlxAction.prototype.check.call(this); if(val && this.callback != null) { this.callback(this); } return val; } ,__class__: flixel_input_actions_FlxActionDigital }); var flixel_input_actions_FlxActionAnalog = function(Name,Callback) { if(Name == null) { Name = ""; } flixel_input_actions_FlxAction.call(this,flixel_input_actions_FlxInputType.ANALOG,Name); this.callback = Callback; }; $hxClasses["flixel.input.actions.FlxActionAnalog"] = flixel_input_actions_FlxActionAnalog; flixel_input_actions_FlxActionAnalog.__name__ = "flixel.input.actions.FlxActionAnalog"; flixel_input_actions_FlxActionAnalog.__super__ = flixel_input_actions_FlxAction; flixel_input_actions_FlxActionAnalog.prototype = $extend(flixel_input_actions_FlxAction.prototype,{ callback: null ,add: function(input) { this.addGenericInput(input); return this; } ,addMouseClickAndDragMotion: function(ButtonID,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) { if(InvertX == null) { InvertX = false; } if(InvertY == null) { InvertY = false; } if(DeadZone == null) { DeadZone = 0.1; } if(PixelsPerUnit == null) { PixelsPerUnit = 10; } if(Axis == null) { Axis = 3; } return this.add(new flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion(ButtonID,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX)); } ,addMouseMotion: function(Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) { if(InvertX == null) { InvertX = false; } if(InvertY == null) { InvertY = false; } if(DeadZone == null) { DeadZone = 0.1; } if(PixelsPerUnit == null) { PixelsPerUnit = 10; } if(Axis == null) { Axis = 3; } return this.add(new flixel_input_actions_FlxActionInputAnalogMouseMotion(Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX)); } ,addMousePosition: function(Trigger,Axis) { if(Axis == null) { Axis = 3; } return this.add(new flixel_input_actions_FlxActionInputAnalogMousePosition(Trigger,Axis)); } ,addGamepad: function(InputID,Trigger,Axis,GamepadID) { if(GamepadID == null) { GamepadID = -2; } if(Axis == null) { Axis = 3; } return this.add(new flixel_input_actions_FlxActionInputAnalogGamepad(InputID,Trigger,Axis,GamepadID)); } ,update: function() { this._x = null; this._y = null; flixel_input_actions_FlxAction.prototype.update.call(this); } ,destroy: function() { this.callback = null; flixel_input_actions_FlxAction.prototype.destroy.call(this); } ,toString: function() { return "FlxAction(" + Std.string(this.type) + ") name:" + this.name + " x/y:" + this._x + "," + this._y; } ,check: function() { var val = flixel_input_actions_FlxAction.prototype.check.call(this); if(val && this.callback != null) { this.callback(this); } return val; } ,get_x: function() { if(this._x != null) { return this._x; } else { return 0; } } ,get_y: function() { if(this._y != null) { return this._y; } else { return 0; } } ,__class__: flixel_input_actions_FlxActionAnalog ,__properties__: {get_y:"get_y",get_x:"get_x"} }); var flixel_input_actions_FlxActionInput = function(InputType,Device,InputID,Trigger,DeviceID) { if(DeviceID == null) { DeviceID = -2; } this.destroyed = false; this.type = InputType; this.device = Device; this.inputID = InputID; this.trigger = Trigger; this.deviceID = DeviceID; }; $hxClasses["flixel.input.actions.FlxActionInput"] = flixel_input_actions_FlxActionInput; flixel_input_actions_FlxActionInput.__name__ = "flixel.input.actions.FlxActionInput"; flixel_input_actions_FlxActionInput.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_actions_FlxActionInput.prototype = { type: null ,device: null ,deviceID: null ,destroyed: null ,inputID: null ,trigger: null ,update: function() { } ,destroy: function() { this.destroyed = true; } ,check: function(action) { return false; } ,compareState: function(condition,state) { switch(condition) { case -1: return state == -1; case 0: if(state != 0) { return state == -1; } else { return true; } break; case 1: if(state != 1) { return state == 2; } else { return true; } break; case 2: return state == 2; default: return false; } } ,__class__: flixel_input_actions_FlxActionInput }; var flixel_input_actions_FlxInputType = $hxEnums["flixel.input.actions.FlxInputType"] = { __ename__:"flixel.input.actions.FlxInputType",__constructs__:null ,DIGITAL: {_hx_name:"DIGITAL",_hx_index:0,__enum__:"flixel.input.actions.FlxInputType",toString:$estr} ,ANALOG: {_hx_name:"ANALOG",_hx_index:1,__enum__:"flixel.input.actions.FlxInputType",toString:$estr} }; flixel_input_actions_FlxInputType.__constructs__ = [flixel_input_actions_FlxInputType.DIGITAL,flixel_input_actions_FlxInputType.ANALOG]; flixel_input_actions_FlxInputType.__empty_constructs__ = [flixel_input_actions_FlxInputType.DIGITAL,flixel_input_actions_FlxInputType.ANALOG]; var flixel_input_actions_FlxInputDevice = $hxEnums["flixel.input.actions.FlxInputDevice"] = { __ename__:"flixel.input.actions.FlxInputDevice",__constructs__:null ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:0,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,MOUSE: {_hx_name:"MOUSE",_hx_index:1,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,MOUSE_WHEEL: {_hx_name:"MOUSE_WHEEL",_hx_index:2,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,KEYBOARD: {_hx_name:"KEYBOARD",_hx_index:3,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,GAMEPAD: {_hx_name:"GAMEPAD",_hx_index:4,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,STEAM_CONTROLLER: {_hx_name:"STEAM_CONTROLLER",_hx_index:5,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,IFLXINPUT_OBJECT: {_hx_name:"IFLXINPUT_OBJECT",_hx_index:6,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,OTHER: {_hx_name:"OTHER",_hx_index:7,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,ANDROID: {_hx_name:"ANDROID",_hx_index:8,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,ALL: {_hx_name:"ALL",_hx_index:9,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} ,NONE: {_hx_name:"NONE",_hx_index:10,__enum__:"flixel.input.actions.FlxInputDevice",toString:$estr} }; flixel_input_actions_FlxInputDevice.__constructs__ = [flixel_input_actions_FlxInputDevice.UNKNOWN,flixel_input_actions_FlxInputDevice.MOUSE,flixel_input_actions_FlxInputDevice.MOUSE_WHEEL,flixel_input_actions_FlxInputDevice.KEYBOARD,flixel_input_actions_FlxInputDevice.GAMEPAD,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,flixel_input_actions_FlxInputDevice.IFLXINPUT_OBJECT,flixel_input_actions_FlxInputDevice.OTHER,flixel_input_actions_FlxInputDevice.ANDROID,flixel_input_actions_FlxInputDevice.ALL,flixel_input_actions_FlxInputDevice.NONE]; flixel_input_actions_FlxInputDevice.__empty_constructs__ = [flixel_input_actions_FlxInputDevice.UNKNOWN,flixel_input_actions_FlxInputDevice.MOUSE,flixel_input_actions_FlxInputDevice.MOUSE_WHEEL,flixel_input_actions_FlxInputDevice.KEYBOARD,flixel_input_actions_FlxInputDevice.GAMEPAD,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,flixel_input_actions_FlxInputDevice.IFLXINPUT_OBJECT,flixel_input_actions_FlxInputDevice.OTHER,flixel_input_actions_FlxInputDevice.ANDROID,flixel_input_actions_FlxInputDevice.ALL,flixel_input_actions_FlxInputDevice.NONE]; var flixel_input_actions_FlxInputDeviceID = function() { }; $hxClasses["flixel.input.actions.FlxInputDeviceID"] = flixel_input_actions_FlxInputDeviceID; flixel_input_actions_FlxInputDeviceID.__name__ = "flixel.input.actions.FlxInputDeviceID"; var flixel_input_actions_FlxInputDeviceObject = function(Device,ID,Model) { if(Model == null) { Model = ""; } this.device = Device; this.id = ID; this.model = Model; }; $hxClasses["flixel.input.actions.FlxInputDeviceObject"] = flixel_input_actions_FlxInputDeviceObject; flixel_input_actions_FlxInputDeviceObject.__name__ = "flixel.input.actions.FlxInputDeviceObject"; flixel_input_actions_FlxInputDeviceObject.prototype = { device: null ,id: null ,model: null ,toString: function() { return "{device:" + Std.string(this.device) + ",id:" + this.id + ",model:" + this.model + "}"; } ,__class__: flixel_input_actions_FlxInputDeviceObject }; var flixel_input_actions_FlxActionInputAnalog = function(Device,InputID,Trigger,Axis,DeviceID) { if(DeviceID == null) { DeviceID = -2; } if(Axis == null) { Axis = 3; } this.y = 0; this.x = 0; flixel_input_actions_FlxActionInput.call(this,flixel_input_actions_FlxInputType.ANALOG,Device,InputID,Trigger,DeviceID); this.axis = Axis; this.xMoved = new flixel_input_FlxInput(0); this.yMoved = new flixel_input_FlxInput(1); }; $hxClasses["flixel.input.actions.FlxActionInputAnalog"] = flixel_input_actions_FlxActionInputAnalog; flixel_input_actions_FlxActionInputAnalog.__name__ = "flixel.input.actions.FlxActionInputAnalog"; flixel_input_actions_FlxActionInputAnalog.__super__ = flixel_input_actions_FlxActionInput; flixel_input_actions_FlxActionInputAnalog.prototype = $extend(flixel_input_actions_FlxActionInput.prototype,{ axis: null ,x: null ,y: null ,xMoved: null ,yMoved: null ,check: function(Action) { var returnVal; switch(this.axis) { case 0: var state = this.xMoved.current; switch(this.trigger) { case -1: returnVal = state == -1; break; case 0: returnVal = state == 0 || state == -1; break; case 1: returnVal = state == 1 || state == 2; break; case 2: returnVal = state == 2; break; default: returnVal = false; } break; case 1: var state = this.yMoved.current; switch(this.trigger) { case -1: returnVal = state == -1; break; case 0: returnVal = state == 0 || state == -1; break; case 1: returnVal = state == 1 || state == 2; break; case 2: returnVal = state == 2; break; default: returnVal = false; } break; case 2: var state = this.xMoved.current; var returnVal1; switch(this.trigger) { case -1: returnVal1 = state == -1; break; case 0: returnVal1 = state == 0 || state == -1; break; case 1: returnVal1 = state == 1 || state == 2; break; case 2: returnVal1 = state == 2; break; default: returnVal1 = false; } if(returnVal1) { var state = this.yMoved.current; switch(this.trigger) { case -1: returnVal = state == -1; break; case 0: returnVal = state == 0 || state == -1; break; case 1: returnVal = state == 1 || state == 2; break; case 2: returnVal = state == 2; break; default: returnVal = false; } } else { returnVal = false; } break; case 3: switch(this.trigger) { case -1: returnVal = this.checkAxis(true,-1) && this.checkAxis(false,0) || this.checkAxis(true,0) && this.checkAxis(false,-1); break; case 0: returnVal = this.checkAxis(true,0) || this.checkAxis(false,0); break; case 1: returnVal = this.checkAxis(true,1) || this.checkAxis(false,1); break; case 2: returnVal = this.checkAxis(true,2) && this.checkAxis(false,2) || this.checkAxis(true,2) && this.checkAxis(false,0) || this.checkAxis(true,0) && this.checkAxis(false,2); break; } break; } if(returnVal) { if(Action._x == null) { Action._x = this.x; } if(Action._y == null) { Action._y = this.y; } } return returnVal; } ,checkAxis: function(isX,state) { var input = isX ? this.xMoved : this.yMoved; var state1 = input.current; switch(state) { case -1: return state1 == -1; case 0: if(state1 != 0) { return state1 == -1; } else { return true; } break; case 1: if(state1 != 1) { return state1 == 2; } else { return true; } break; case 2: return state1 == 2; default: return false; } } ,updateValues: function(X,Y) { if(X != 0) { this.xMoved.press(); } else { this.xMoved.release(); } if(Y != 0) { this.yMoved.press(); } else { this.yMoved.release(); } this.x = X; this.y = Y; } ,__class__: flixel_input_actions_FlxActionInputAnalog }); var flixel_input_actions_FlxActionInputAnalogMouseMotion = function(Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) { if(InvertX == null) { InvertX = false; } if(InvertY == null) { InvertY = false; } if(DeadZone == null) { DeadZone = 0.1; } if(PixelsPerUnit == null) { PixelsPerUnit = 10; } if(Axis == null) { Axis = 3; } this.lastY = 0; this.lastX = 0; this.pixelsPerUnit = PixelsPerUnit; if(this.pixelsPerUnit < 1) { this.pixelsPerUnit = 1; } this.deadZone = DeadZone; this.invertX = InvertX; this.invertY = InvertY; flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.MOUSE,-1,Trigger,Axis); }; $hxClasses["flixel.input.actions.FlxActionInputAnalogMouseMotion"] = flixel_input_actions_FlxActionInputAnalogMouseMotion; flixel_input_actions_FlxActionInputAnalogMouseMotion.__name__ = "flixel.input.actions.FlxActionInputAnalogMouseMotion"; flixel_input_actions_FlxActionInputAnalogMouseMotion.__super__ = flixel_input_actions_FlxActionInputAnalog; flixel_input_actions_FlxActionInputAnalogMouseMotion.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{ lastX: null ,lastY: null ,pixelsPerUnit: null ,deadZone: null ,invertX: null ,invertY: null ,update: function() { this.updateXYPosition(flixel_FlxG.mouse.x,flixel_FlxG.mouse.y); } ,updateXYPosition: function(X,Y) { var xDiff = X - this.lastX; var yDiff = Y - this.lastY; this.lastX = X; this.lastY = Y; if(this.invertX) { xDiff *= -1; } if(this.invertY) { yDiff *= -1; } xDiff /= this.pixelsPerUnit; yDiff /= this.pixelsPerUnit; if(Math.abs(xDiff) < this.deadZone) { xDiff = 0; } if(Math.abs(yDiff) < this.deadZone) { yDiff = 0; } this.updateValues(xDiff,yDiff); } ,__class__: flixel_input_actions_FlxActionInputAnalogMouseMotion }); var flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion = function(ButtonID,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX) { if(InvertX == null) { InvertX = false; } if(InvertY == null) { InvertY = false; } if(DeadZone == null) { DeadZone = 0.1; } if(PixelsPerUnit == null) { PixelsPerUnit = 10; } if(Axis == null) { Axis = 3; } flixel_input_actions_FlxActionInputAnalogMouseMotion.call(this,Trigger,Axis,PixelsPerUnit,DeadZone,InvertY,InvertX); this.button = ButtonID; }; $hxClasses["flixel.input.actions.FlxActionInputAnalogClickAndDragMouseMotion"] = flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion; flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion.__name__ = "flixel.input.actions.FlxActionInputAnalogClickAndDragMouseMotion"; flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion.__super__ = flixel_input_actions_FlxActionInputAnalogMouseMotion; flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion.prototype = $extend(flixel_input_actions_FlxActionInputAnalogMouseMotion.prototype,{ button: null ,updateValues: function(X,Y) { var pass = false; switch(this.button) { case -3: var _this = flixel_FlxG.mouse._rightButton; pass = _this.current == 1 || _this.current == 2; break; case -2: var _this = flixel_FlxG.mouse._middleButton; pass = _this.current == 1 || _this.current == 2; break; case -1: var _this = flixel_FlxG.mouse._leftButton; pass = _this.current == 1 || _this.current == 2; break; } if(!pass) { X = 0; Y = 0; } flixel_input_actions_FlxActionInputAnalogMouseMotion.prototype.updateValues.call(this,X,Y); } ,__class__: flixel_input_actions_FlxActionInputAnalogClickAndDragMouseMotion }); var flixel_input_actions_FlxActionInputAnalogMousePosition = function(Trigger,Axis) { if(Axis == null) { Axis = 3; } flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.MOUSE,-1,Trigger,Axis); }; $hxClasses["flixel.input.actions.FlxActionInputAnalogMousePosition"] = flixel_input_actions_FlxActionInputAnalogMousePosition; flixel_input_actions_FlxActionInputAnalogMousePosition.__name__ = "flixel.input.actions.FlxActionInputAnalogMousePosition"; flixel_input_actions_FlxActionInputAnalogMousePosition.__super__ = flixel_input_actions_FlxActionInputAnalog; flixel_input_actions_FlxActionInputAnalogMousePosition.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{ update: function() { this.updateValues(flixel_FlxG.mouse.x,flixel_FlxG.mouse.y); } ,updateValues: function(X,Y) { if(X != this.x) { this.xMoved.press(); } else { this.xMoved.release(); } if(Y != this.y) { this.yMoved.press(); } else { this.yMoved.release(); } this.x = X; this.y = Y; } ,__class__: flixel_input_actions_FlxActionInputAnalogMousePosition }); var flixel_input_actions_FlxActionInputAnalogGamepad = function(InputID,Trigger,Axis,GamepadID) { if(GamepadID == null) { GamepadID = -2; } if(Axis == null) { Axis = 3; } flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.GAMEPAD,InputID,Trigger,Axis,GamepadID); }; $hxClasses["flixel.input.actions.FlxActionInputAnalogGamepad"] = flixel_input_actions_FlxActionInputAnalogGamepad; flixel_input_actions_FlxActionInputAnalogGamepad.__name__ = "flixel.input.actions.FlxActionInputAnalogGamepad"; flixel_input_actions_FlxActionInputAnalogGamepad.__super__ = flixel_input_actions_FlxActionInputAnalog; flixel_input_actions_FlxActionInputAnalogGamepad.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{ update: function() { if(this.deviceID == -1) { return; } var gamepad = null; if(this.deviceID == -2) { gamepad = flixel_FlxG.gamepads.getFirstActiveGamepad(); } else if(this.deviceID >= 0) { gamepad = flixel_FlxG.gamepads._activeGamepads[this.deviceID]; } if(gamepad != null) { switch(this.inputID) { case 17: this.updateValues(gamepad.analog.value.gamepad.getAxis(17),0); break; case 18: this.updateValues(gamepad.analog.value.gamepad.getAxis(18),0); break; case 19: var _this = gamepad.analog.value.gamepad; var tmp = _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)); var _this = gamepad.analog.value.gamepad; this.updateValues(tmp,_this.getYAxisRaw(_this.mapping.getAnalogStick(19))); break; case 20: var _this = gamepad.analog.value.gamepad; var tmp = _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)); var _this = gamepad.analog.value.gamepad; this.updateValues(tmp,_this.getYAxisRaw(_this.mapping.getAnalogStick(20))); break; case 21: var tmp; var _this = gamepad.pressed; var id = 13; var _this1 = _this.gamepad; var Status = _this.status; var tmp1; switch(id) { case -2: tmp1 = _this1.anyButton(Status); break; case -1: tmp1 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } if(tmp1) { tmp = -1.0; } else { var _this = gamepad.pressed; var id = 14; var _this1 = _this.gamepad; var Status = _this.status; var tmp1; switch(id) { case -2: tmp1 = _this1.anyButton(Status); break; case -1: tmp1 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } tmp = tmp1 ? 1.0 : 0.0; } var tmp1; var _this = gamepad.pressed; var id = 11; var _this1 = _this.gamepad; var Status = _this.status; var tmp2; switch(id) { case -2: tmp2 = _this1.anyButton(Status); break; case -1: tmp2 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp2 = button != null && button.hasState(Status); } if(tmp2) { tmp1 = -1.0; } else { var _this = gamepad.pressed; var id = 12; var _this1 = _this.gamepad; var Status = _this.status; var tmp2; switch(id) { case -2: tmp2 = _this1.anyButton(Status); break; case -1: tmp2 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp2 = button != null && button.hasState(Status); } tmp1 = tmp2 ? 1.0 : 0.0; } this.updateValues(tmp,tmp1); break; case 28: this.updateValues(gamepad.analog.value.gamepad.getAxis(28),0); break; case 29: this.updateValues(gamepad.analog.value.gamepad.getAxis(29),0); break; } } else { this.updateValues(0,0); } } ,__class__: flixel_input_actions_FlxActionInputAnalogGamepad }); var flixel_input_actions_FlxActionInputAnalogSteam = function(ActionHandle,Trigger,Axis,DeviceID) { if(DeviceID == null) { DeviceID = -1; } if(Axis == null) { Axis = 3; } flixel_input_actions_FlxActionInputAnalog.call(this,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,ActionHandle,Trigger,Axis,DeviceID); }; $hxClasses["flixel.input.actions.FlxActionInputAnalogSteam"] = flixel_input_actions_FlxActionInputAnalogSteam; flixel_input_actions_FlxActionInputAnalogSteam.__name__ = "flixel.input.actions.FlxActionInputAnalogSteam"; flixel_input_actions_FlxActionInputAnalogSteam.__super__ = flixel_input_actions_FlxActionInputAnalog; flixel_input_actions_FlxActionInputAnalogSteam.prototype = $extend(flixel_input_actions_FlxActionInputAnalog.prototype,{ update: function() { } ,__class__: flixel_input_actions_FlxActionInputAnalogSteam }); var flixel_input_actions_FlxActionInputDigital = function(Device,InputID,Trigger,DeviceID) { if(DeviceID == null) { DeviceID = -2; } flixel_input_actions_FlxActionInput.call(this,flixel_input_actions_FlxInputType.DIGITAL,Device,InputID,Trigger,DeviceID); this.inputID = InputID; }; $hxClasses["flixel.input.actions.FlxActionInputDigital"] = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigital.__name__ = "flixel.input.actions.FlxActionInputDigital"; flixel_input_actions_FlxActionInputDigital.__super__ = flixel_input_actions_FlxActionInput; flixel_input_actions_FlxActionInputDigital.prototype = $extend(flixel_input_actions_FlxActionInput.prototype,{ __class__: flixel_input_actions_FlxActionInputDigital }); var flixel_input_actions_FlxActionInputDigitalMouseWheel = function(Positive,Trigger) { this.sign = 0; flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.MOUSE_WHEEL,0,Trigger); this.input = new flixel_input_FlxInput(0); this.sign = Positive ? 1 : -1; }; $hxClasses["flixel.input.actions.FlxActionInputDigitalMouseWheel"] = flixel_input_actions_FlxActionInputDigitalMouseWheel; flixel_input_actions_FlxActionInputDigitalMouseWheel.__name__ = "flixel.input.actions.FlxActionInputDigitalMouseWheel"; flixel_input_actions_FlxActionInputDigitalMouseWheel.__super__ = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigitalMouseWheel.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ input: null ,sign: null ,check: function(Action) { switch(this.trigger) { case -1: return this.input.current == -1; case 0: var _this = this.input; if(!(_this.current == 0 || _this.current == -1)) { return this.input.current == -1; } else { return true; } break; case 1: var _this = this.input; if(!(_this.current == 1 || _this.current == 2)) { return this.input.current == 2; } else { return true; } break; case 2: return this.input.current == 2; default: return false; } } ,update: function() { flixel_input_actions_FlxActionInputDigital.prototype.update.call(this); if(flixel_FlxG.mouse.wheel * this.sign > 0) { this.input.press(); } else { this.input.release(); } } ,__class__: flixel_input_actions_FlxActionInputDigitalMouseWheel }); var flixel_input_actions_FlxActionInputDigitalGamepad = function(InputID,Trigger,GamepadID) { if(GamepadID == null) { GamepadID = -2; } flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.GAMEPAD,InputID,Trigger,GamepadID); this.input = new flixel_input_FlxInput(InputID); }; $hxClasses["flixel.input.actions.FlxActionInputDigitalGamepad"] = flixel_input_actions_FlxActionInputDigitalGamepad; flixel_input_actions_FlxActionInputDigitalGamepad.__name__ = "flixel.input.actions.FlxActionInputDigitalGamepad"; flixel_input_actions_FlxActionInputDigitalGamepad.__super__ = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigitalGamepad.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ input: null ,toString: function() { return "FlxActionInputDigitalGamepad{inputID:" + this.inputID + ",trigger:" + this.trigger + ",deviceID:" + this.deviceID + ",device:" + Std.string(this.device) + ",type:" + Std.string(this.type) + "}"; } ,update: function() { flixel_input_actions_FlxActionInputDigital.prototype.update.call(this); if(this.deviceID == -1) { if(flixel_FlxG.gamepads.anyHasState(this.inputID,1) || flixel_FlxG.gamepads.anyHasState(this.inputID,2)) { this.input.press(); } else { this.input.release(); } } else { var gamepad = null; if(this.deviceID == -2) { gamepad = flixel_FlxG.gamepads.getFirstActiveGamepad(); } else if(this.deviceID >= 0) { gamepad = flixel_FlxG.gamepads._activeGamepads[this.deviceID]; } if(gamepad != null) { if(this.inputID == -2 && this.trigger == 0) { if(gamepad.released.get_ANY()) { this.input.release(); } else { this.input.press(); } } else { var tmp; var ID = this.inputID; var Status = 1; var tmp1; switch(ID) { case -2: tmp1 = gamepad.anyButton(Status); break; case -1: tmp1 = !gamepad.anyButton(Status); break; default: var RawID = gamepad.mapping.getRawID(ID); var button = gamepad.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } if(!tmp1) { var ID = this.inputID; var Status = 2; switch(ID) { case -2: tmp = gamepad.anyButton(Status); break; case -1: tmp = !gamepad.anyButton(Status); break; default: var RawID = gamepad.mapping.getRawID(ID); var button = gamepad.buttons[RawID]; tmp = button != null && button.hasState(Status); } } else { tmp = true; } if(tmp) { this.input.press(); } else { this.input.release(); } } } else if(this.deviceID == -2) { this.input.release(); } } } ,check: function(Action) { switch(this.trigger) { case -1: return this.input.current == -1; case 0: var _this = this.input; if(!(_this.current == 0 || _this.current == -1)) { return this.input.current == -1; } else { return true; } break; case 1: var _this = this.input; if(!(_this.current == 1 || _this.current == 2)) { return this.input.current == 2; } else { return true; } break; case 2: return this.input.current == 2; default: return false; } } ,__class__: flixel_input_actions_FlxActionInputDigitalGamepad }); var flixel_input_actions_FlxActionInputDigitalKeyboard = function(Key,Trigger) { flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.KEYBOARD,Key,Trigger); }; $hxClasses["flixel.input.actions.FlxActionInputDigitalKeyboard"] = flixel_input_actions_FlxActionInputDigitalKeyboard; flixel_input_actions_FlxActionInputDigitalKeyboard.__name__ = "flixel.input.actions.FlxActionInputDigitalKeyboard"; flixel_input_actions_FlxActionInputDigitalKeyboard.__super__ = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigitalKeyboard.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ check: function(Action) { switch(this.trigger) { case -1: return flixel_FlxG.keys.checkStatus(this.inputID,-1); case 0: if(!flixel_FlxG.keys.checkStatus(this.inputID,0)) { return flixel_FlxG.keys.checkStatus(this.inputID,-1); } else { return true; } break; case 1: if(!flixel_FlxG.keys.checkStatus(this.inputID,1)) { return flixel_FlxG.keys.checkStatus(this.inputID,2); } else { return true; } break; case 2: return flixel_FlxG.keys.checkStatus(this.inputID,2); default: return false; } } ,__class__: flixel_input_actions_FlxActionInputDigitalKeyboard }); var flixel_input_actions_FlxActionInputDigitalMouse = function(ButtonID,Trigger) { flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.MOUSE,ButtonID,Trigger); }; $hxClasses["flixel.input.actions.FlxActionInputDigitalMouse"] = flixel_input_actions_FlxActionInputDigitalMouse; flixel_input_actions_FlxActionInputDigitalMouse.__name__ = "flixel.input.actions.FlxActionInputDigitalMouse"; flixel_input_actions_FlxActionInputDigitalMouse.__super__ = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigitalMouse.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ check: function(Action) { switch(this.inputID) { case -3: switch(this.trigger) { case -1: return flixel_FlxG.mouse._rightButton.current == -1; case 0: var _this = flixel_FlxG.mouse._rightButton; if(_this.current == 1 || _this.current == 2) { return flixel_FlxG.mouse._rightButton.current == -1; } else { return true; } break; case 1: var _this = flixel_FlxG.mouse._rightButton; if(!(_this.current == 1 || _this.current == 2)) { return flixel_FlxG.mouse._rightButton.current == 2; } else { return true; } break; case 2: return flixel_FlxG.mouse._rightButton.current == 2; } break; case -2: switch(this.trigger) { case -1: return flixel_FlxG.mouse._middleButton.current == -1; case 0: var _this = flixel_FlxG.mouse._middleButton; if(_this.current == 1 || _this.current == 2) { return flixel_FlxG.mouse._middleButton.current == -1; } else { return true; } break; case 1: var _this = flixel_FlxG.mouse._middleButton; if(!(_this.current == 1 || _this.current == 2)) { return flixel_FlxG.mouse._middleButton.current == 2; } else { return true; } break; case 2: return flixel_FlxG.mouse._middleButton.current == 2; } break; case -1: switch(this.trigger) { case -1: return flixel_FlxG.mouse._leftButton.current == -1; case 0: var _this = flixel_FlxG.mouse._leftButton; if(_this.current == 1 || _this.current == 2) { return flixel_FlxG.mouse._leftButton.current == -1; } else { return true; } break; case 1: var _this = flixel_FlxG.mouse._leftButton; if(!(_this.current == 1 || _this.current == 2)) { return flixel_FlxG.mouse._leftButton.current == 2; } else { return true; } break; case 2: return flixel_FlxG.mouse._leftButton.current == 2; } break; default: return false; } } ,__class__: flixel_input_actions_FlxActionInputDigitalMouse }); var flixel_input_actions_FlxActionInputDigitalSteam = function(ActionHandle,Trigger,DeviceHandle) { if(DeviceHandle == null) { DeviceHandle = -2; } flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,ActionHandle,Trigger,DeviceHandle); flixel_FlxG.log.advanced("steamwrap library not installed; steam inputs will be ignored.",flixel_system_debug_log_LogStyle.WARNING,true); }; $hxClasses["flixel.input.actions.FlxActionInputDigitalSteam"] = flixel_input_actions_FlxActionInputDigitalSteam; flixel_input_actions_FlxActionInputDigitalSteam.__name__ = "flixel.input.actions.FlxActionInputDigitalSteam"; flixel_input_actions_FlxActionInputDigitalSteam.__super__ = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigitalSteam.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ steamInput: null ,check: function(Action) { switch(this.trigger) { case -1: return this.steamInput.current == -1; case 0: var _this = this.steamInput; if(_this.current == 0 || _this.current == -1) { return this.steamInput.current == -1; } else { return true; } break; case 1: var _this = this.steamInput; if(!(_this.current == 1 || _this.current == 2)) { return this.steamInput.current == 2; } else { return true; } break; case 2: return this.steamInput.current == 2; } } ,update: function() { var controllerHandle = this.deviceID; if(controllerHandle == -2) { controllerHandle = flixel_input_actions_FlxSteamController.getFirstActiveHandle(); } var data = flixel_input_actions_FlxSteamController.getDigitalActionData(controllerHandle,this.inputID); if(data.bActive && data.bState) { this.steamInput.press(); } else { this.steamInput.release(); } } ,getSteamControllerData: function(controllerHandle) { if(controllerHandle == -2) { controllerHandle = flixel_input_actions_FlxSteamController.getFirstActiveHandle(); } var data = flixel_input_actions_FlxSteamController.getDigitalActionData(controllerHandle,this.inputID); if(data.bActive) { return data.bState; } else { return false; } } ,__class__: flixel_input_actions_FlxActionInputDigitalSteam }); var flixel_input_actions_FlxActionInputDigitalIFlxInput = function(Input,Trigger) { flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.IFLXINPUT_OBJECT,0,Trigger); this.input = Input; }; $hxClasses["flixel.input.actions.FlxActionInputDigitalIFlxInput"] = flixel_input_actions_FlxActionInputDigitalIFlxInput; flixel_input_actions_FlxActionInputDigitalIFlxInput.__name__ = "flixel.input.actions.FlxActionInputDigitalIFlxInput"; flixel_input_actions_FlxActionInputDigitalIFlxInput.__super__ = flixel_input_actions_FlxActionInputDigital; flixel_input_actions_FlxActionInputDigitalIFlxInput.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ input: null ,check: function(action) { switch(this.trigger) { case -1: return this.input.get_justReleased(); case 0: if(this.input.get_pressed()) { return this.input.get_justReleased(); } else { return true; } break; case 1: if(!this.input.get_pressed()) { return this.input.get_justPressed(); } else { return true; } break; case 2: return this.input.get_justPressed(); default: return false; } } ,destroy: function() { flixel_input_actions_FlxActionInputDigital.prototype.destroy.call(this); this.input = null; } ,__class__: flixel_input_actions_FlxActionInputDigitalIFlxInput }); var flixel_input_actions_FlxActionManager = function() { this.resetOnStateSwitch = flixel_input_actions_ResetPolicy.DEFAULT_SET_ONLY; this.defaultSet = null; this.sets = []; this.register = new flixel_input_actions__$FlxActionManager_ActionSetRegister(); this.deviceConnected = new flixel_util__$FlxSignal_FlxSignal3(); this.deviceDisconnected = new flixel_util__$FlxSignal_FlxSignal3(); this.inputsChanged = new flixel_util__$FlxSignal_FlxSignal1(); flixel_FlxG.gamepads.deviceConnected.add($bind(this,this.onDeviceConnected)); flixel_FlxG.gamepads.deviceDisconnected.add($bind(this,this.onDeviceDisconnected)); flixel_input_actions_FlxSteamController.onControllerConnect = $bind(this,this.updateSteamControllers); flixel_input_actions_FlxSteamController.onOriginUpdate = $bind(this,this.updateSteamOrigins); flixel_FlxG.signals.preStateSwitch.add($bind(this,this.onStateSwitched)); }; $hxClasses["flixel.input.actions.FlxActionManager"] = flixel_input_actions_FlxActionManager; flixel_input_actions_FlxActionManager.__name__ = "flixel.input.actions.FlxActionManager"; flixel_input_actions_FlxActionManager.__interfaces__ = [flixel_util_IFlxDestroyable,flixel_input_IFlxInputManager]; flixel_input_actions_FlxActionManager.prototype = { sets: null ,register: null ,defaultSet: null ,deviceDisconnected: null ,deviceConnected: null ,inputsChanged: null ,resetOnStateSwitch: null ,activateSet: function(ActionSet,Device,DeviceID) { this.register.activate(ActionSet,Device,DeviceID); this.onChange(); } ,addActions: function(Actions,ActionSet) { if(ActionSet == null) { ActionSet = 0; } var success = true; var _g = 0; while(_g < Actions.length) { var Action = Actions[_g]; ++_g; var result = this.addAction(Action); if(!result) { success = false; } } return success; } ,addAction: function(Action,ActionSet) { if(ActionSet == null) { ActionSet = 0; } var success = false; if(this.sets == null) { this.sets = []; } if(this.sets.length == 0) { this.defaultSet = new flixel_input_actions_FlxActionSet("default"); var defaultSetIndex = this.addSet(this.defaultSet); this.activateSet(defaultSetIndex,flixel_input_actions_FlxInputDevice.ALL,-1); } if(ActionSet >= 0 && ActionSet < this.sets.length) { success = this.sets[ActionSet].add(Action); } this.onChange(); return success; } ,addSet: function(set) { if(this.sets.indexOf(set) != -1) { return -1; } this.sets.push(set); this.onChange(); return this.sets.length - 1; } ,deactivateSet: function(ActionSet,DeviceID) { if(DeviceID == null) { DeviceID = -1; } this.register.activate(ActionSet,flixel_input_actions_FlxInputDevice.NONE,DeviceID); this.onChange(); } ,destroy: function() { this.sets = flixel_util_FlxDestroyUtil.destroyArray(this.sets); this.register = flixel_util_FlxDestroyUtil.destroy(this.register); } ,getSetIndex: function(Name) { var _g = 0; var _g1 = this.sets.length; while(_g < _g1) { var i = _g++; if(this.sets[i].name == Name) { return i; } } return -1; } ,getSetName: function(Index) { if(Index >= 0 && Index < this.sets.length) { return this.sets[Index].name; } return ""; } ,getSet: function(Index) { if(Index >= 0 && Index < this.sets.length) { return this.sets[Index]; } return null; } ,getSetActivatedForDevice: function(device,deviceID) { if(deviceID == null) { deviceID = -1; } var id = -1; var index = -1; switch(device._hx_index) { case 1: index = this.register.mouseSet; break; case 3: index = this.register.keyboardSet; break; case 4: switch(deviceID) { case -3: index = -1; break; case -2: id = flixel_FlxG.gamepads.getFirstActiveGamepadID(); break; case -1: index = this.register.gamepadAllSet; break; default: if(this.register.gamepadAllSet != -1) { index = this.register.gamepadAllSet; } else { id = deviceID; } } if(id >= 0 && id < this.register.gamepadSets.length) { index = this.register.gamepadSets[id]; } break; case 5: switch(deviceID) { case -3: index = -1; break; case -1: index = this.register.steamControllerAllSet; break; default: if(this.register.steamControllerAllSet != -1) { index = this.register.steamControllerAllSet; } else { id = deviceID; } } if(id >= 0 && id < this.register.steamControllerSets.length) { index = this.register.steamControllerSets[id]; } break; case 9: if(deviceID == -1) { index = this.register.gamepadAllSet; } break; default: index = -1; } if(index >= 0 && index < this.sets.length) { return this.sets[index]; } return null; } ,initFromJson: function(data,CallbackDigital,CallbackAnalog) { if(data == null) { return 0; } var i = 0; var actionSets = data.actionSets; if(actionSets == null) { return 0; } var _g = 0; while(_g < actionSets.length) { var set = actionSets[_g]; ++_g; if(this.addSet(flixel_input_actions_FlxActionSet.fromJson(set,CallbackDigital,CallbackAnalog)) != -1) { ++i; } } this.onChange(); return i; } ,exportToJson: function() { var space = "\t"; return JSON.stringify({ "actionSets" : this.sets},function(key,value) { if(((value) instanceof flixel_input_actions_FlxAction)) { var fa = value; return fa.name; } if(((value) instanceof flixel_input_actions_FlxActionSet)) { var fas = value; return { "name" : fas.name, "digitalActions" : fas.digitalActions, "analogActions" : fas.analogActions}; } return value; },space); } ,removeSet: function(Set,Destroy) { if(Destroy == null) { Destroy = true; } var success = HxOverrides.remove(this.sets,Set); if(success) { if(Destroy) { flixel_util_FlxDestroyUtil.destroy(Set); } this.onChange(); } return success; } ,removeAction: function(Action,ActionSet) { var success = false; if(ActionSet >= 0 && ActionSet < this.sets.length) { success = this.sets[ActionSet].remove(Action); } this.onChange(); return success; } ,reset: function() { } ,get_numSets: function() { return this.sets.length; } ,onChange: function() { this.register.markActiveSets(this.sets); } ,onDeviceConnected: function(gamepad) { this.deviceConnected.dispatch(flixel_input_actions_FlxInputDevice.GAMEPAD,gamepad.id,Std.string(gamepad.model).toLowerCase()); } ,onDeviceDisconnected: function(gamepad) { if(gamepad != null) { var actionSet = this.getSetActivatedForDevice(flixel_input_actions_FlxInputDevice.GAMEPAD,gamepad.id); if(actionSet != null && actionSet.active) { var id = gamepad.id; var model = gamepad.model != null ? Std.string(gamepad.model).toLowerCase() : ""; this.deviceDisconnected.dispatch(flixel_input_actions_FlxInputDevice.GAMEPAD,id,model); } } } ,onFocus: function() { } ,onFocusLost: function() { } ,onStateSwitched: function() { switch(this.resetOnStateSwitch._hx_index) { case 1: while(this.sets.length > 0) this.removeSet(this.getSet(0),true); this.defaultSet = null; break; case 2: if(this.defaultSet != null) { this.removeSet(this.defaultSet,true); } this.defaultSet = null; break; default: } } ,onSteamConnected: function(handle) { var allSetIndex = this.register.steamControllerAllSet; if(allSetIndex != -1) { this.activateSet(allSetIndex,flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,-1); } else { var actionSet = this.getSetActivatedForDevice(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle); if(actionSet != null && actionSet.active) { this.activateSet(this.getSetIndex(actionSet.name),flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle); } } this.deviceConnected.dispatch(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle,""); } ,onSteamDisconnected: function(handle) { if(handle >= 0) { var actionSet = this.getSetActivatedForDevice(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle); if(actionSet != null && actionSet.active) { this.deviceDisconnected.dispatch(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,handle,""); } } } ,updateSteamControllers: function() { } ,updateSteamOrigins: function() { } ,update: function() { this.register.update(this.sets); } ,__class__: flixel_input_actions_FlxActionManager ,__properties__: {get_numSets:"get_numSets"} }; var flixel_input_actions__$FlxActionManager_ActionSetRegister = function() { this.steamControllerAllSet = -1; this.gamepadAllSet = -1; this.keyboardSet = -1; this.mouseSet = -1; flixel_input_actions_FlxSteamController.init(); this.gamepadSets = []; this.steamControllerSets = []; }; $hxClasses["flixel.input.actions._FlxActionManager.ActionSetRegister"] = flixel_input_actions__$FlxActionManager_ActionSetRegister; flixel_input_actions__$FlxActionManager_ActionSetRegister.__name__ = "flixel.input.actions._FlxActionManager.ActionSetRegister"; flixel_input_actions__$FlxActionManager_ActionSetRegister.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_actions__$FlxActionManager_ActionSetRegister.prototype = { mouseSet: null ,keyboardSet: null ,gamepadAllSet: null ,steamControllerAllSet: null ,gamepadSets: null ,steamControllerSets: null ,destroy: function() { this.gamepadSets = null; this.steamControllerSets = null; } ,activate: function(ActionSet,Device,DeviceID) { if(DeviceID == null) { DeviceID = -2; } this.setActivate(ActionSet,Device,DeviceID); } ,markActiveSets: function(sets) { var _g = 0; var _g1 = sets.length; while(_g < _g1) { var i = _g++; sets[i].active = false; } this.syncDevice(flixel_input_actions_FlxInputDevice.MOUSE,sets); this.syncDevice(flixel_input_actions_FlxInputDevice.KEYBOARD,sets); this.syncDevice(flixel_input_actions_FlxInputDevice.GAMEPAD,sets); this.syncDevice(flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER,sets); } ,update: function(sets) { var _g = 0; var _g1 = sets.length; while(_g < _g1) { var i = _g++; sets[i].update(); } } ,updateSteam: function(sets) { } ,setActivate: function(ActionSet,Device,DeviceID,DoActivate) { if(DoActivate == null) { DoActivate = true; } if(DeviceID == null) { DeviceID = -2; } switch(Device._hx_index) { case 1: this.mouseSet = DoActivate ? ActionSet : -1; break; case 3: this.keyboardSet = DoActivate ? ActionSet : -1; break; case 4: switch(DeviceID) { case -3: this.clearSetFromArray(ActionSet,this.gamepadSets); break; case -2: this.gamepadSets[flixel_FlxG.gamepads.getFirstActiveGamepadID()] = DoActivate ? ActionSet : -1; break; case -1: this.clearSetFromArray(-1,this.gamepadSets); this.gamepadAllSet = DoActivate ? ActionSet : -1; break; default: this.gamepadSets[DeviceID] = DoActivate ? ActionSet : -1; } break; case 5: switch(DeviceID) { case -3: this.clearSetFromArray(ActionSet,this.steamControllerSets); break; case -2: this.steamControllerSets[flixel_input_actions_FlxSteamController.getFirstActiveHandle()] = DoActivate ? ActionSet : -1; break; case -1: this.steamControllerAllSet = DoActivate ? ActionSet : -1; this.clearSetFromArray(-1,this.steamControllerSets); break; default: this.steamControllerSets[DeviceID] = DoActivate ? ActionSet : -1; } break; case 9: this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.MOUSE,DeviceID,DoActivate); this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.KEYBOARD,DeviceID,DoActivate); this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.GAMEPAD,DeviceID,DoActivate); break; case 10: this.setActivate(ActionSet,flixel_input_actions_FlxInputDevice.ALL,DeviceID,false); break; default: } } ,updateSteamOrigins: function(sets) { return []; } ,updateDigitalActionOrigins: function(action,deviceID,setHandle) { } ,updateAnalogActionOrigins: function(action,deviceID,setHandle) { } ,cheapChecksum: function(arr) { var sum1 = 0; var sum2 = 0; if(arr != null) { var _g = 0; while(_g < arr.length) { var n = arr[_g]; ++_g; sum1 = (sum1 + n) % 255; sum2 = (sum2 + sum1) % 255; } } return sum2 << 8 | sum1; } ,updateSteamInputs: function(sets) { } ,changeSteamControllerActionSet: function(controllerHandle,newSet,sets) { var lastSet = flixel_input_actions_FlxSteamController.getCurrentActionSet(controllerHandle); if(lastSet == newSet) { return; } if(sets == null) { return; } if(lastSet != -1) { if(lastSet < sets.length) { sets[lastSet].attachSteamController(controllerHandle,false); } } sets[newSet].attachSteamController(controllerHandle); } ,syncDevice: function(device,sets) { switch(device._hx_index) { case 1: if(this.mouseSet >= 0 && this.mouseSet < sets.length) { sets[this.mouseSet].active = true; } break; case 3: if(this.keyboardSet >= 0 && this.keyboardSet < sets.length) { sets[this.keyboardSet].active = true; } break; case 4: if(this.gamepadAllSet >= 0 && this.gamepadAllSet < sets.length) { sets[this.gamepadAllSet].active = true; } else { var _g = 0; var _g1 = this.gamepadSets.length; while(_g < _g1) { var i = _g++; var gset = this.gamepadSets[i]; if(gset >= 0 && gset < sets.length) { sets[gset].active = true; } } } break; case 5: this.updateSteamInputs(sets); if(this.steamControllerAllSet >= 0 && this.steamControllerAllSet < sets.length) { sets[this.steamControllerAllSet].active = true; } else { var _g = 0; var _g1 = this.steamControllerSets.length; while(_g < _g1) { var i = _g++; var sset = this.steamControllerSets[i]; if(sset >= 0 && sset < sets.length) { sets[sset].active = true; } } } break; default: } } ,clearSetFromArray: function(ActionSet,array) { if(ActionSet == null) { ActionSet = -1; } var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; if(ActionSet == -1 || array[i] == ActionSet) { array[i] = -1; } } } ,__class__: flixel_input_actions__$FlxActionManager_ActionSetRegister }; var flixel_input_actions_ResetPolicy = $hxEnums["flixel.input.actions.ResetPolicy"] = { __ename__:"flixel.input.actions.ResetPolicy",__constructs__:null ,NONE: {_hx_name:"NONE",_hx_index:0,__enum__:"flixel.input.actions.ResetPolicy",toString:$estr} ,ALL_SETS: {_hx_name:"ALL_SETS",_hx_index:1,__enum__:"flixel.input.actions.ResetPolicy",toString:$estr} ,DEFAULT_SET_ONLY: {_hx_name:"DEFAULT_SET_ONLY",_hx_index:2,__enum__:"flixel.input.actions.ResetPolicy",toString:$estr} }; flixel_input_actions_ResetPolicy.__constructs__ = [flixel_input_actions_ResetPolicy.NONE,flixel_input_actions_ResetPolicy.ALL_SETS,flixel_input_actions_ResetPolicy.DEFAULT_SET_ONLY]; flixel_input_actions_ResetPolicy.__empty_constructs__ = [flixel_input_actions_ResetPolicy.NONE,flixel_input_actions_ResetPolicy.ALL_SETS,flixel_input_actions_ResetPolicy.DEFAULT_SET_ONLY]; var flixel_input_actions_FlxActionSet = function(Name,DigitalActions,AnalogActions) { this.active = true; this.name = ""; this.name = Name; if(DigitalActions == null) { DigitalActions = []; } if(AnalogActions == null) { AnalogActions = []; } this.digitalActions = DigitalActions; this.analogActions = AnalogActions; }; $hxClasses["flixel.input.actions.FlxActionSet"] = flixel_input_actions_FlxActionSet; flixel_input_actions_FlxActionSet.__name__ = "flixel.input.actions.FlxActionSet"; flixel_input_actions_FlxActionSet.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_actions_FlxActionSet.fromJson = function(Data,CallbackDigital,CallbackAnalog) { var digitalActions = []; var analogActions = []; if(Data == null) { return null; } if(Data.digitalActions != null) { var arrD = Data.digitalActions; var _g = 0; while(_g < arrD.length) { var d = arrD[_g]; ++_g; var dName = d; var action = new flixel_input_actions_FlxActionDigital(dName,CallbackDigital); digitalActions.push(action); } } if(Data.analogActions != null) { var arrA = Data.analogActions; var _g = 0; while(_g < arrA.length) { var a = arrA[_g]; ++_g; var aName = a; var action = new flixel_input_actions_FlxActionAnalog(aName,CallbackAnalog); analogActions.push(action); } } if(Data.name != null) { var name = Data.name; var set = new flixel_input_actions_FlxActionSet(name,digitalActions,analogActions); return set; } return null; }; flixel_input_actions_FlxActionSet.prototype = { name: null ,digitalActions: null ,analogActions: null ,active: null ,toJson: function() { var space = "\t"; return JSON.stringify(this,function(key,value) { if(((value) instanceof flixel_input_actions_FlxAction)) { var fa = value; return { "type" : fa.type, "name" : fa.name, "steamHandle" : fa.steamHandle}; } return value; },space); } ,attachSteamController: function(Handle,Attach) { if(Attach == null) { Attach = true; } this.attachSteamControllerSub(Handle,Attach,flixel_input_actions_FlxInputType.DIGITAL,this.digitalActions,null); this.attachSteamControllerSub(Handle,Attach,flixel_input_actions_FlxInputType.ANALOG,null,this.analogActions); } ,add: function(Action) { if(Action.type == flixel_input_actions_FlxInputType.DIGITAL) { var dAction = Action; if(this.digitalActions.indexOf(dAction) != -1) { return false; } this.digitalActions.push(dAction); return true; } else if(Action.type == flixel_input_actions_FlxInputType.ANALOG) { var aAction = Action; if(this.analogActions.indexOf(aAction) != -1) { return false; } this.analogActions.push(aAction); return true; } return false; } ,destroy: function() { this.digitalActions = flixel_util_FlxDestroyUtil.destroyArray(this.digitalActions); this.analogActions = flixel_util_FlxDestroyUtil.destroyArray(this.analogActions); } ,remove: function(Action,Destroy) { if(Destroy == null) { Destroy = true; } var result = false; if(Action.type == flixel_input_actions_FlxInputType.DIGITAL) { result = HxOverrides.remove(this.digitalActions,Action); if(result && Destroy) { Action.destroy(); } } else if(Action.type == flixel_input_actions_FlxInputType.ANALOG) { result = HxOverrides.remove(this.analogActions,Action); if(result && Destroy) { Action.destroy(); } } return result; } ,update: function() { if(!this.active) { return; } var _g = 0; var _g1 = this.digitalActions; while(_g < _g1.length) { var digitalAction = _g1[_g]; ++_g; digitalAction.update(); } var _g = 0; var _g1 = this.analogActions; while(_g < _g1.length) { var analogAction = _g1[_g]; ++_g; analogAction.update(); } } ,attachSteamControllerSub: function(Handle,Attach,InputType,DigitalActions,AnalogActions) { var length = InputType == flixel_input_actions_FlxInputType.DIGITAL ? DigitalActions.length : AnalogActions.length; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; var action = InputType == flixel_input_actions_FlxInputType.DIGITAL ? DigitalActions[i] : AnalogActions[i]; if(action.steamHandle != -1) { var inputExists = false; var theInput = null; if(action.inputs != null) { var _g2 = 0; var _g3 = action.inputs; while(_g2 < _g3.length) { var input = _g3[_g2]; ++_g2; if(input.device == flixel_input_actions_FlxInputDevice.STEAM_CONTROLLER && input.deviceID == Handle) { inputExists = true; theInput = input; } } } if(Attach) { if(!inputExists) { if(InputType == flixel_input_actions_FlxInputType.DIGITAL) { DigitalActions[i].add(new flixel_input_actions_FlxActionInputDigitalSteam(action.steamHandle,2,Handle)); } else if(InputType == flixel_input_actions_FlxInputType.ANALOG) { AnalogActions[i].add(new flixel_input_actions_FlxActionInputAnalogSteam(action.steamHandle,1,3,Handle)); } } } else if(inputExists) { action.remove(theInput); } } } } ,__class__: flixel_input_actions_FlxActionSet }; var flixel_input_actions_FlxSteamController = function() { }; $hxClasses["flixel.input.actions.FlxSteamController"] = flixel_input_actions_FlxSteamController; flixel_input_actions_FlxSteamController.__name__ = "flixel.input.actions.FlxSteamController"; flixel_input_actions_FlxSteamController.__properties__ = {get_MAX_ORIGINS:"get_MAX_ORIGINS",get_MAX_CONTROLLERS:"get_MAX_CONTROLLERS"}; flixel_input_actions_FlxSteamController.controllers = null; flixel_input_actions_FlxSteamController.get_MAX_CONTROLLERS = function() { return 0; }; flixel_input_actions_FlxSteamController.get_MAX_ORIGINS = function() { return 0; }; flixel_input_actions_FlxSteamController.clear = function() { }; flixel_input_actions_FlxSteamController.init = function() { flixel_input_actions_FlxSteamController.controllers = []; }; flixel_input_actions_FlxSteamController.getActionSetHandle = function(name) { return -1; }; flixel_input_actions_FlxSteamController.getCurrentActionSet = function(SteamControllerHandle) { return -1; }; flixel_input_actions_FlxSteamController.activateActionSet = function(SteamControllerHandle,ActionSetHandle) { }; flixel_input_actions_FlxSteamController.getFirstActiveHandle = function() { return -1; }; flixel_input_actions_FlxSteamController.getConnectedControllers = function() { return []; }; flixel_input_actions_FlxSteamController.getAnalogActionData = function(controller,action,data) { return null; }; flixel_input_actions_FlxSteamController.getDigitalActionData = function(controller,action) { return new flixel_input_actions__$FlxSteamController_DigitalActionData(false,false); }; flixel_input_actions_FlxSteamController.getAnalogActionHandle = function(name) { return -1; }; flixel_input_actions_FlxSteamController.getDigitalActionHandle = function(name) { return -1; }; var flixel_input_actions__$FlxSteamController_DigitalActionData = function(bActive,bState) { this.bActive = bActive; this.bState = bState; }; $hxClasses["flixel.input.actions._FlxSteamController.DigitalActionData"] = flixel_input_actions__$FlxSteamController_DigitalActionData; flixel_input_actions__$FlxSteamController_DigitalActionData.__name__ = "flixel.input.actions._FlxSteamController.DigitalActionData"; flixel_input_actions__$FlxSteamController_DigitalActionData.prototype = { bActive: null ,bState: null ,__class__: flixel_input_actions__$FlxSteamController_DigitalActionData }; var flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata = function() { this.connected = new flixel_input_FlxInput(0); this.active = false; this.actionSet = -1; this.handle = -1; }; $hxClasses["flixel.input.actions._FlxSteamController.FlxSteamControllerMetadata"] = flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata; flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata.__name__ = "flixel.input.actions._FlxSteamController.FlxSteamControllerMetadata"; flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata.prototype = { handle: null ,actionSet: null ,active: null ,connected: null ,__class__: flixel_input_actions__$FlxSteamController_FlxSteamControllerMetadata }; var flixel_input_actions__$FlxSteamController_FlxSteamUpdater = function() { this.originTime = 0.0; this.controllerTime = 0.0; }; $hxClasses["flixel.input.actions._FlxSteamController.FlxSteamUpdater"] = flixel_input_actions__$FlxSteamController_FlxSteamUpdater; flixel_input_actions__$FlxSteamController_FlxSteamUpdater.__name__ = "flixel.input.actions._FlxSteamController.FlxSteamUpdater"; flixel_input_actions__$FlxSteamController_FlxSteamUpdater.__interfaces__ = [flixel_input_IFlxInputManager]; flixel_input_actions__$FlxSteamController_FlxSteamUpdater.prototype = { controllerTime: null ,originTime: null ,destroy: function() { } ,reset: function() { } ,update: function() { } ,onFocus: function() { } ,onFocusLost: function() { } ,__class__: flixel_input_actions__$FlxSteamController_FlxSteamUpdater }; var flixel_input_gamepad_FlxGamepad = function(ID,Manager,Model,Attachment) { this.buttons = []; this._deadZone = 0.15; this.axisActive = false; var _g = []; _g.push(0); _g.push(0); _g.push(0); _g.push(0); _g.push(0); _g.push(0); this.axis = _g; this.deadZoneMode = flixel_input_gamepad_FlxGamepadDeadZoneMode.INDEPENDENT_AXES; this.connected = true; this.id = ID; this.manager = Manager; this.pressed = new flixel_input_gamepad_lists_FlxGamepadButtonList(1,this); this.released = new flixel_input_gamepad_lists_FlxGamepadButtonList(0,this); this.justPressed = new flixel_input_gamepad_lists_FlxGamepadButtonList(2,this); this.justReleased = new flixel_input_gamepad_lists_FlxGamepadButtonList(-1,this); this.analog = new flixel_input_gamepad_lists_FlxGamepadAnalogList(this); this.motion = new flixel_input_gamepad_lists_FlxGamepadMotionValueList(this); this.pointer = new flixel_input_gamepad_lists_FlxGamepadPointerValueList(this); if(Model == null) { Model = flixel_input_gamepad_FlxGamepadModel.XINPUT; } if(Attachment == null) { Attachment = flixel_input_gamepad_FlxGamepadAttachment.NONE; } this.set_model(Model); this.detectedModel = Model; }; $hxClasses["flixel.input.gamepad.FlxGamepad"] = flixel_input_gamepad_FlxGamepad; flixel_input_gamepad_FlxGamepad.__name__ = "flixel.input.gamepad.FlxGamepad"; flixel_input_gamepad_FlxGamepad.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_gamepad_FlxGamepad.prototype = { id: null ,model: null ,detectedModel: null ,mapping: null ,connected: null ,attachment: null ,deadZoneMode: null ,pressed: null ,released: null ,justPressed: null ,justReleased: null ,analog: null ,motion: null ,pointer: null ,axis: null ,axisActive: null ,manager: null ,_deadZone: null ,_device: null ,buttons: null ,getButton: function(RawID) { if(RawID == -1) { return null; } var gamepadButton = this.buttons[RawID]; if(gamepadButton == null) { gamepadButton = new flixel_input_gamepad_FlxGamepadButton(RawID); this.buttons[RawID] = gamepadButton; } return gamepadButton; } ,applyAxisFlip: function(axisValue,axisID) { if(this.mapping.isAxisFlipped(axisID)) { axisValue *= -1; } return axisValue; } ,update: function() { var control; var button; if(this._device == null) { return; } var _g = 0; var _g1 = this._device.get_numControls(); while(_g < _g1) { var i = _g++; control = this._device.getControlAt(i); button = this.getButton(i); if(this.isAxisForAnalogStick(i)) { this.handleAxisMove(i,control.value,button.value); } button.value = control.value; var value = Math.abs(control.value); if(value < this.get_deadZone()) { button.release(); } else if(value > this.get_deadZone()) { button.press(); } } var _g = 0; var _g1 = this.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != null) { button.update(); } } } ,reset: function() { var _g = 0; var _g1 = this.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != null) { button.reset(); } } var numAxis = this.axis.length; var _g = 0; var _g1 = numAxis; while(_g < _g1) { var i = _g++; this.axis[i] = 0; } } ,destroy: function() { this.connected = false; this.buttons = null; this.axis = null; this.manager = null; } ,checkStatus: function(ID,Status) { switch(ID) { case -2: return this.anyButton(Status); case -1: return !this.anyButton(Status); default: var RawID = this.mapping.getRawID(ID); var button = this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,checkStatusRaw: function(RawID,Status) { var button = this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } ,checkButtonArrayState: function(IDArray,Status) { if(IDArray == null) { return false; } var _g = 0; while(_g < IDArray.length) { var code = IDArray[_g]; ++_g; var tmp; switch(code) { case -2: tmp = this.anyButton(Status); break; case -1: tmp = !this.anyButton(Status); break; default: var RawID = this.mapping.getRawID(code); var button = this.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { return true; } } return false; } ,checkButtonArrayStateRaw: function(IDArray,Status) { if(IDArray == null) { return false; } var _g = 0; while(_g < IDArray.length) { var code = IDArray[_g]; ++_g; var button = this.buttons[code]; if(button != null && button.hasState(Status)) { return true; } } return false; } ,anyPressed: function(IDArray) { return this.checkButtonArrayState(IDArray,1); } ,anyPressedRaw: function(RawIDArray) { return this.checkButtonArrayStateRaw(RawIDArray,1); } ,anyJustPressed: function(IDArray) { return this.checkButtonArrayState(IDArray,2); } ,anyJustPressedRaw: function(RawIDArray) { return this.checkButtonArrayStateRaw(RawIDArray,2); } ,anyJustReleased: function(IDArray) { return this.checkButtonArrayState(IDArray,-1); } ,anyJustReleasedRaw: function(RawIDArray) { return this.checkButtonArrayStateRaw(RawIDArray,-1); } ,firstPressedID: function() { var id = this.firstPressedRawID(); if(id < 0) { return id; } return this.mapping.getID(id); } ,firstPressedRawID: function() { var _g = 0; var _g1 = this.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != null && (button.current == 1 || button.current == 2)) { return button.ID; } } return -1; } ,firstJustPressedID: function() { var id = this.firstJustPressedRawID(); if(id < 0) { return id; } return this.mapping.getID(id); } ,firstJustPressedRawID: function() { var _g = 0; var _g1 = this.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != null && button.current == 2) { return button.ID; } } return -1; } ,firstJustReleasedID: function() { var id = this.firstJustReleasedRawID(); if(id < 0) { return id; } return this.mapping.getID(id); } ,firstJustReleasedRawID: function() { var _g = 0; var _g1 = this.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != null && button.current == -1) { return button.ID; } } return -1; } ,getAxis: function(AxisButtonID) { var axisValue = this.getAxisValue(this.mapping.getRawID(AxisButtonID)); if(Math.abs(axisValue) > this.get_deadZone()) { return axisValue; } else { return 0; } } ,getAxisRaw: function(RawAxisID) { var axisValue = this.getAxisValue(RawAxisID); if(Math.abs(axisValue) > this.get_deadZone()) { return axisValue; } return 0; } ,isAxisForAnalogStick: function(AxisIndex) { var leftStick = this.mapping.leftStick; var rightStick = this.mapping.rightStick; if(leftStick != null) { if(AxisIndex == leftStick.x || AxisIndex == leftStick.y) { return true; } } if(rightStick != null) { if(AxisIndex == rightStick.x || AxisIndex == rightStick.y) { return true; } } return false; } ,getAnalogStickByAxis: function(AxisIndex) { var leftStick = this.mapping.leftStick; var rightStick = this.mapping.rightStick; if(leftStick != null && AxisIndex == leftStick.x || AxisIndex == leftStick.y) { return leftStick; } if(rightStick != null && AxisIndex == rightStick.x || AxisIndex == rightStick.y) { return rightStick; } return null; } ,getXAxis: function(AxesButtonID) { return this.getAnalogXAxisValue(this.mapping.getAnalogStick(AxesButtonID)); } ,getXAxisRaw: function(Stick) { return this.getAnalogXAxisValue(Stick); } ,getYAxis: function(AxesButtonID) { return this.getYAxisRaw(this.mapping.getAnalogStick(AxesButtonID)); } ,getYAxisRaw: function(Stick) { return this.getAnalogYAxisValue(Stick); } ,getAnalogAxes: function(AxesButtonID) { var x = this.getAnalogXAxisValue(this.mapping.getAnalogStick(AxesButtonID)); var y = this.getYAxisRaw(this.mapping.getAnalogStick(AxesButtonID)); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; return point; } ,anyButton: function(state) { if(state == null) { state = 1; } var _g = 0; var _g1 = this.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != null && button.hasState(state)) { return true; } } return false; } ,anyInput: function() { if(this.anyButton()) { return true; } var numAxis = this.axis.length; var _g = 0; var _g1 = numAxis; while(_g < _g1) { var i = _g++; if(this.axis[0] != 0) { return true; } } return false; } ,getAxisValue: function(AxisID) { var axisValue = 0; if(AxisID == -1) { return 0; } var tmp; if(this._device != null && this._device.enabled) { var Max = this._device.get_numControls() - 1; tmp = AxisID >= 0 && (Max == null || AxisID <= Max); } else { tmp = false; } if(tmp) { axisValue = this._device.getControlAt(AxisID).value; } if(this.isAxisForAnalogStick(AxisID)) { var axisValue1 = axisValue; if(this.mapping.isAxisFlipped(AxisID)) { axisValue1 *= -1; } axisValue = axisValue1; } return axisValue; } ,getAnalogXAxisValue: function(stick) { if(stick == null) { return 0; } if(this.deadZoneMode == flixel_input_gamepad_FlxGamepadDeadZoneMode.CIRCULAR) { return this.getAnalogAxisValueCircular(stick,stick.x); } else { return this.getAnalogAxisValueIndependent(stick.x); } } ,getAnalogYAxisValue: function(stick) { if(stick == null) { return 0; } if(this.deadZoneMode == flixel_input_gamepad_FlxGamepadDeadZoneMode.CIRCULAR) { return this.getAnalogAxisValueCircular(stick,stick.y); } else { return this.getAnalogAxisValueIndependent(stick.y); } } ,getAnalogAxisValueCircular: function(stick,axisID) { if(stick == null) { return 0; } var xAxis = this.getAxisValue(stick.x); var yAxis = this.getAxisValue(stick.y); var x = xAxis; var y = yAxis; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var vector = point; var length = Math.sqrt(vector.x * vector.x + vector.y * vector.y); vector.put(); if(length > this.get_deadZone()) { return this.getAxisValue(axisID); } return 0; } ,getAnalogAxisValueIndependent: function(axisID) { var axisValue = this.getAxisValue(axisID); if(Math.abs(axisValue) > this.get_deadZone()) { return axisValue; } return 0; } ,handleAxisMove: function(axis,newValue,oldValue) { var axisValue = newValue; if(this.mapping.isAxisFlipped(axis)) { axisValue *= -1; } newValue = axisValue; var axisValue = oldValue; if(this.mapping.isAxisFlipped(axis)) { axisValue *= -1; } oldValue = axisValue; var leftStick = this.mapping.leftStick; var rightStick = this.mapping.rightStick; var stick = leftStick != null && axis == leftStick.x || axis == leftStick.y ? leftStick : rightStick != null && axis == rightStick.x || axis == rightStick.y ? rightStick : null; if(stick.mode == flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL || stick.mode == flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH) { this.handleAxisMoveSub(stick,axis,newValue,oldValue,1.0); this.handleAxisMoveSub(stick,axis,newValue,oldValue,-1.0); var tmp = stick.mode == flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL; } } ,handleAxisMoveSub: function(stick,axis,value,oldValue,sign) { if(sign == null) { sign = 1.0; } var digitalButton = -1; if(axis == stick.x) { digitalButton = sign < 0 ? stick.rawLeft : stick.rawRight; } else if(axis == stick.y) { digitalButton = sign < 0 ? stick.rawUp : stick.rawDown; } var threshold = stick.digitalThreshold; var valueSign = value * sign; var oldValueSign = oldValue * sign; if(valueSign > threshold && oldValueSign <= threshold) { var btn = this.getButton(digitalButton); if(btn != null) { btn.press(); } } else if(valueSign <= threshold && oldValueSign > threshold) { var btn = this.getButton(digitalButton); if(btn != null) { btn.release(); } } } ,createMappingForModel: function(model) { switch(model._hx_index) { case 0: return new flixel_input_gamepad_mappings_LogitechMapping(this.attachment); case 1: return new flixel_input_gamepad_mappings_OUYAMapping(this.attachment); case 2: return new flixel_input_gamepad_mappings_PS4Mapping(this.attachment); case 3: return new flixel_input_gamepad_mappings_PSVitaMapping(this.attachment); case 4: return new flixel_input_gamepad_mappings_XInputMapping(this.attachment); case 5: return new flixel_input_gamepad_mappings_MayflashWiiRemoteMapping(this.attachment); case 6: return new flixel_input_gamepad_mappings_WiiRemoteMapping(this.attachment); case 7: return new flixel_input_gamepad_mappings_MFiMapping(this.attachment); case 8: return new flixel_input_gamepad_mappings_SwitchProMapping(this.attachment); case 9: return new flixel_input_gamepad_mappings_SwitchJoyconLeftMapping(this.attachment); case 10: return new flixel_input_gamepad_mappings_SwitchJoyconRightMapping(this.attachment); default: return new flixel_input_gamepad_mappings_XInputMapping(this.attachment); } } ,get_name: function() { if(this._device == null) { return null; } return this._device.name; } ,set_model: function(Model) { this.model = Model; this.mapping = this.createMappingForModel(this.model); return this.model; } ,set_attachment: function(Attachment) { this.attachment = Attachment; this.mapping.set_attachment(Attachment); return this.attachment; } ,get_deadZone: function() { if(this.manager == null || this.manager.globalDeadZone == null) { return this._deadZone; } else { return this.manager.globalDeadZone; } } ,set_deadZone: function(deadZone) { return this._deadZone = deadZone; } ,getInputLabel: function(id) { return this.mapping.getInputLabel(id); } ,toString: function() { var value = this.id; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "id"; _this.value = value; var value = this.model; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "model"; _this1.value = value; var value = this.get_deadZone(); var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "deadZone"; _this2.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2]); } ,__class__: flixel_input_gamepad_FlxGamepad ,__properties__: {set_deadZone:"set_deadZone",get_deadZone:"get_deadZone",set_attachment:"set_attachment",set_model:"set_model",get_name:"get_name"} }; var flixel_input_gamepad_FlxGamepadDeadZoneMode = $hxEnums["flixel.input.gamepad.FlxGamepadDeadZoneMode"] = { __ename__:"flixel.input.gamepad.FlxGamepadDeadZoneMode",__constructs__:null ,INDEPENDENT_AXES: {_hx_name:"INDEPENDENT_AXES",_hx_index:0,__enum__:"flixel.input.gamepad.FlxGamepadDeadZoneMode",toString:$estr} ,CIRCULAR: {_hx_name:"CIRCULAR",_hx_index:1,__enum__:"flixel.input.gamepad.FlxGamepadDeadZoneMode",toString:$estr} }; flixel_input_gamepad_FlxGamepadDeadZoneMode.__constructs__ = [flixel_input_gamepad_FlxGamepadDeadZoneMode.INDEPENDENT_AXES,flixel_input_gamepad_FlxGamepadDeadZoneMode.CIRCULAR]; flixel_input_gamepad_FlxGamepadDeadZoneMode.__empty_constructs__ = [flixel_input_gamepad_FlxGamepadDeadZoneMode.INDEPENDENT_AXES,flixel_input_gamepad_FlxGamepadDeadZoneMode.CIRCULAR]; var flixel_input_gamepad_FlxGamepadModel = $hxEnums["flixel.input.gamepad.FlxGamepadModel"] = { __ename__:"flixel.input.gamepad.FlxGamepadModel",__constructs__:null ,LOGITECH: {_hx_name:"LOGITECH",_hx_index:0,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,OUYA: {_hx_name:"OUYA",_hx_index:1,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,PS4: {_hx_name:"PS4",_hx_index:2,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,PSVITA: {_hx_name:"PSVITA",_hx_index:3,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,XINPUT: {_hx_name:"XINPUT",_hx_index:4,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,MAYFLASH_WII_REMOTE: {_hx_name:"MAYFLASH_WII_REMOTE",_hx_index:5,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,WII_REMOTE: {_hx_name:"WII_REMOTE",_hx_index:6,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,MFI: {_hx_name:"MFI",_hx_index:7,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,SWITCH_PRO: {_hx_name:"SWITCH_PRO",_hx_index:8,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,SWITCH_JOYCON_LEFT: {_hx_name:"SWITCH_JOYCON_LEFT",_hx_index:9,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,SWITCH_JOYCON_RIGHT: {_hx_name:"SWITCH_JOYCON_RIGHT",_hx_index:10,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:11,__enum__:"flixel.input.gamepad.FlxGamepadModel",toString:$estr} }; flixel_input_gamepad_FlxGamepadModel.__constructs__ = [flixel_input_gamepad_FlxGamepadModel.LOGITECH,flixel_input_gamepad_FlxGamepadModel.OUYA,flixel_input_gamepad_FlxGamepadModel.PS4,flixel_input_gamepad_FlxGamepadModel.PSVITA,flixel_input_gamepad_FlxGamepadModel.XINPUT,flixel_input_gamepad_FlxGamepadModel.MAYFLASH_WII_REMOTE,flixel_input_gamepad_FlxGamepadModel.WII_REMOTE,flixel_input_gamepad_FlxGamepadModel.MFI,flixel_input_gamepad_FlxGamepadModel.SWITCH_PRO,flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_LEFT,flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_RIGHT,flixel_input_gamepad_FlxGamepadModel.UNKNOWN]; flixel_input_gamepad_FlxGamepadModel.__empty_constructs__ = [flixel_input_gamepad_FlxGamepadModel.LOGITECH,flixel_input_gamepad_FlxGamepadModel.OUYA,flixel_input_gamepad_FlxGamepadModel.PS4,flixel_input_gamepad_FlxGamepadModel.PSVITA,flixel_input_gamepad_FlxGamepadModel.XINPUT,flixel_input_gamepad_FlxGamepadModel.MAYFLASH_WII_REMOTE,flixel_input_gamepad_FlxGamepadModel.WII_REMOTE,flixel_input_gamepad_FlxGamepadModel.MFI,flixel_input_gamepad_FlxGamepadModel.SWITCH_PRO,flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_LEFT,flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_RIGHT,flixel_input_gamepad_FlxGamepadModel.UNKNOWN]; var flixel_input_gamepad_FlxGamepadAttachment = $hxEnums["flixel.input.gamepad.FlxGamepadAttachment"] = { __ename__:"flixel.input.gamepad.FlxGamepadAttachment",__constructs__:null ,WII_NUNCHUCK: {_hx_name:"WII_NUNCHUCK",_hx_index:0,__enum__:"flixel.input.gamepad.FlxGamepadAttachment",toString:$estr} ,WII_CLASSIC_CONTROLLER: {_hx_name:"WII_CLASSIC_CONTROLLER",_hx_index:1,__enum__:"flixel.input.gamepad.FlxGamepadAttachment",toString:$estr} ,NONE: {_hx_name:"NONE",_hx_index:2,__enum__:"flixel.input.gamepad.FlxGamepadAttachment",toString:$estr} }; flixel_input_gamepad_FlxGamepadAttachment.__constructs__ = [flixel_input_gamepad_FlxGamepadAttachment.WII_NUNCHUCK,flixel_input_gamepad_FlxGamepadAttachment.WII_CLASSIC_CONTROLLER,flixel_input_gamepad_FlxGamepadAttachment.NONE]; flixel_input_gamepad_FlxGamepadAttachment.__empty_constructs__ = [flixel_input_gamepad_FlxGamepadAttachment.WII_NUNCHUCK,flixel_input_gamepad_FlxGamepadAttachment.WII_CLASSIC_CONTROLLER,flixel_input_gamepad_FlxGamepadAttachment.NONE]; var flixel_input_gamepad_FlxGamepadAnalogStick = function(x,y,settings) { this.mode = flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH; this.digitalThreshold = 0.5; this.rawRight = -1; this.rawLeft = -1; this.rawDown = -1; this.rawUp = -1; this.x = x; this.y = y; if(settings == null) { return; } this.mode = settings.mode != null ? settings.mode : flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH; this.rawUp = settings.up != null ? settings.up : -1; this.rawDown = settings.down != null ? settings.down : -1; this.rawLeft = settings.left != null ? settings.left : -1; this.rawRight = settings.right != null ? settings.right : -1; this.digitalThreshold = settings.threshold != null ? settings.threshold : 0.5; }; $hxClasses["flixel.input.gamepad.FlxGamepadAnalogStick"] = flixel_input_gamepad_FlxGamepadAnalogStick; flixel_input_gamepad_FlxGamepadAnalogStick.__name__ = "flixel.input.gamepad.FlxGamepadAnalogStick"; flixel_input_gamepad_FlxGamepadAnalogStick.prototype = { x: null ,y: null ,rawUp: null ,rawDown: null ,rawLeft: null ,rawRight: null ,digitalThreshold: null ,mode: null ,toString: function() { var value = this.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = this.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; var value = this.rawUp; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "rawUp"; _this2.value = value; var value = this.rawDown; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "rawDown"; _this3.value = value; var value = this.rawLeft; var _this4 = flixel_util_LabelValuePair._pool.get(); _this4.label = "rawLeft"; _this4.value = value; var value = this.rawRight; var _this5 = flixel_util_LabelValuePair._pool.get(); _this5.label = "rawRight"; _this5.value = value; var value = this.digitalThreshold; var _this6 = flixel_util_LabelValuePair._pool.get(); _this6.label = "digitalThreshold"; _this6.value = value; var value = this.mode; var _this7 = flixel_util_LabelValuePair._pool.get(); _this7.label = "mode"; _this7.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5,_this6,_this7]); } ,__class__: flixel_input_gamepad_FlxGamepadAnalogStick }; var flixel_input_gamepad_FlxAnalogToDigitalMode = $hxEnums["flixel.input.gamepad.FlxAnalogToDigitalMode"] = { __ename__:"flixel.input.gamepad.FlxAnalogToDigitalMode",__constructs__:null ,BOTH: {_hx_name:"BOTH",_hx_index:0,__enum__:"flixel.input.gamepad.FlxAnalogToDigitalMode",toString:$estr} ,ONLY_DIGITAL: {_hx_name:"ONLY_DIGITAL",_hx_index:1,__enum__:"flixel.input.gamepad.FlxAnalogToDigitalMode",toString:$estr} ,ONLY_ANALOG: {_hx_name:"ONLY_ANALOG",_hx_index:2,__enum__:"flixel.input.gamepad.FlxAnalogToDigitalMode",toString:$estr} }; flixel_input_gamepad_FlxAnalogToDigitalMode.__constructs__ = [flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH,flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL,flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_ANALOG]; flixel_input_gamepad_FlxAnalogToDigitalMode.__empty_constructs__ = [flixel_input_gamepad_FlxAnalogToDigitalMode.BOTH,flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL,flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_ANALOG]; var flixel_input_gamepad_FlxGamepadButton = function(ID) { this.value = 0; flixel_input_FlxInput.call(this,ID); }; $hxClasses["flixel.input.gamepad.FlxGamepadButton"] = flixel_input_gamepad_FlxGamepadButton; flixel_input_gamepad_FlxGamepadButton.__name__ = "flixel.input.gamepad.FlxGamepadButton"; flixel_input_gamepad_FlxGamepadButton.__super__ = flixel_input_FlxInput; flixel_input_gamepad_FlxGamepadButton.prototype = $extend(flixel_input_FlxInput.prototype,{ value: null ,__class__: flixel_input_gamepad_FlxGamepadButton }); var flixel_input_gamepad_FlxGamepadInputID = {}; flixel_input_gamepad_FlxGamepadInputID.fromString = function(s) { s = s.toUpperCase(); if(Object.prototype.hasOwnProperty.call(flixel_input_gamepad_FlxGamepadInputID.fromStringMap.h,s)) { return flixel_input_gamepad_FlxGamepadInputID.fromStringMap.h[s]; } else { return -1; } }; flixel_input_gamepad_FlxGamepadInputID.toString = function(this1) { return flixel_input_gamepad_FlxGamepadInputID.toStringMap.h[this1]; }; 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); 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 control; if(axis == null) { control = "null"; } else { switch(axis) { case 0: control = "LEFT_X"; break; case 1: control = "LEFT_Y"; break; case 2: control = "RIGHT_X"; break; case 3: control = "RIGHT_Y"; break; case 4: control = "TRIGGER_LEFT"; break; case 5: control = "TRIGGER_RIGHT"; break; default: control = "UNKNOWN (" + axis + ")"; } } var control1 = new openfl_ui_GameInputControl(device,"AXIS_" + control,-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 control; if(button == null) { control = "null"; } else { switch(button) { case 0: control = "A"; break; case 1: control = "B"; break; case 2: control = "X"; break; case 3: control = "Y"; break; case 4: control = "BACK"; break; case 5: control = "GUIDE"; break; case 6: control = "START"; break; case 7: control = "LEFT_STICK"; break; case 8: control = "RIGHT_STICK"; break; case 9: control = "LEFT_SHOULDER"; break; case 10: control = "RIGHT_SHOULDER"; break; case 11: control = "DPAD_UP"; break; case 12: control = "DPAD_DOWN"; break; case 13: control = "DPAD_LEFT"; break; case 14: control = "DPAD_RIGHT"; break; default: control = "UNKNOWN (" + button + ")"; } } var control1 = new openfl_ui_GameInputControl(device,"BUTTON_" + control,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 control; if(button == null) { control = "null"; } else { switch(button) { case 0: control = "A"; break; case 1: control = "B"; break; case 2: control = "X"; break; case 3: control = "Y"; break; case 4: control = "BACK"; break; case 5: control = "GUIDE"; break; case 6: control = "START"; break; case 7: control = "LEFT_STICK"; break; case 8: control = "RIGHT_STICK"; break; case 9: control = "LEFT_SHOULDER"; break; case 10: control = "RIGHT_SHOULDER"; break; case 11: control = "DPAD_UP"; break; case 12: control = "DPAD_DOWN"; break; case 13: control = "DPAD_LEFT"; break; case 14: control = "DPAD_RIGHT"; break; default: control = "UNKNOWN (" + button + ")"; } } var control1 = new openfl_ui_GameInputControl(device,"BUTTON_" + control,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",true,false,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) { HxOverrides.remove(openfl_ui_GameInput.__deviceList,openfl_ui_GameInput.__devices.h[gamepad.__id__]); 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",true,false,device)); } } }; openfl_ui_GameInput.__super__ = openfl_events_EventDispatcher; openfl_ui_GameInput.prototype = $extend(openfl_events_EventDispatcher.prototype,{ addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) { useWeakReference = false; } if(priority == null) { priority = 0; } if(useCapture == null) { useCapture = false; } openfl_events_EventDispatcher.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference); if(type == "deviceAdded") { var _g = 0; var _g1 = openfl_ui_GameInput.__deviceList; while(_g < _g1.length) { var device = _g1[_g]; ++_g; this.dispatchEvent(new openfl_events_GameInputEvent("deviceAdded",true,false,device)); } } } ,__class__: openfl_ui_GameInput }); var flixel_input_gamepad_FlxGamepadManager = function() { this._activeGamepads = []; this._gamepads = []; this.deviceConnected = new flixel_util__$FlxSignal_FlxSignal1(); this.deviceDisconnected = new flixel_util__$FlxSignal_FlxSignal1(); flixel_input_gamepad_FlxGamepadManager._gameInput.addEventListener("deviceAdded",$bind(this,this.onDeviceAdded)); flixel_input_gamepad_FlxGamepadManager._gameInput.addEventListener("deviceRemoved",$bind(this,this.onDeviceRemoved)); var _g = 0; var _g1 = openfl_ui_GameInput.numDevices; while(_g < _g1) { var i = _g++; this.addGamepad(openfl_ui_GameInput.getDeviceAt(i)); } }; $hxClasses["flixel.input.gamepad.FlxGamepadManager"] = flixel_input_gamepad_FlxGamepadManager; flixel_input_gamepad_FlxGamepadManager.__name__ = "flixel.input.gamepad.FlxGamepadManager"; flixel_input_gamepad_FlxGamepadManager.__interfaces__ = [flixel_input_IFlxInputManager]; flixel_input_gamepad_FlxGamepadManager.prototype = { firstActive: null ,lastActive: null ,globalDeadZone: null ,deviceConnected: null ,deviceDisconnected: null ,_gamepads: null ,_activeGamepads: null ,getByID: function(GamepadID) { return this._activeGamepads[GamepadID]; } ,removeByID: function(GamepadID) { var gamepad = this._gamepads[GamepadID]; if(gamepad != null) { this._gamepads[GamepadID] = null; var i = this._activeGamepads.indexOf(gamepad); if(i != -1) { this._activeGamepads[i] = null; this.deviceDisconnected.dispatch(gamepad); } flixel_util_FlxDestroyUtil.destroy(gamepad); } if(this.lastActive == gamepad) { this.lastActive = null; } if(this.firstActive == gamepad) { this.firstActive = null; } } ,createByID: function(GamepadID,Model) { var gamepad = this._gamepads[GamepadID]; if(gamepad == null) { gamepad = new flixel_input_gamepad_FlxGamepad(GamepadID,this,Model); this._gamepads[GamepadID] = gamepad; var nullFound = false; var _g = 0; var _g1 = this._activeGamepads.length; while(_g < _g1) { var i = _g++; if(this._activeGamepads[i] == null) { this._activeGamepads[i] = gamepad; nullFound = true; break; } } if(!nullFound) { this._activeGamepads.push(gamepad); } } this.lastActive = gamepad; if(this.firstActive == null) { this.firstActive = gamepad; } return gamepad; } ,getActiveGamepadIDs: function(IDsArray) { if(IDsArray == null) { IDsArray = []; } var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null && gamepad.anyInput()) { IDsArray.push(gamepad.id); } } return IDsArray; } ,getActiveGamepads: function(GamepadArray) { if(GamepadArray == null) { GamepadArray = []; } var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null && gamepad.anyInput()) { GamepadArray.push(gamepad); } } return GamepadArray; } ,getFirstActiveGamepadID: function() { var firstActive = this.getFirstActiveGamepad(); if(firstActive == null) { return -1; } else { return firstActive.id; } } ,getFirstActiveGamepad: function() { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null && gamepad.anyInput()) { return gamepad; } } return null; } ,anyButton: function(state) { if(state == null) { state = 1; } var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null && gamepad.anyButton(state)) { return true; } } return false; } ,anyInput: function() { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null && gamepad.anyInput()) { return true; } } return false; } ,anyPressed: function(buttonID) { return this.anyHasState(buttonID,1); } ,anyJustPressed: function(buttonID) { return this.anyHasState(buttonID,2); } ,anyJustReleased: function(buttonID) { return this.anyHasState(buttonID,-1); } ,anyHasState: function(buttonID,state) { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; var tmp; if(gamepad != null) { switch(buttonID) { case -2: tmp = gamepad.anyButton(state); break; case -1: tmp = !gamepad.anyButton(state); break; default: var RawID = gamepad.mapping.getRawID(buttonID); var button = gamepad.buttons[RawID]; tmp = button != null && button.hasState(state); } } else { tmp = false; } if(tmp) { return true; } } return false; } ,anyMovedXAxis: function(RawAxisID) { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad == null) { continue; } var value = gamepad.getAnalogXAxisValue(RawAxisID); if(value != 0) { return value; } } return 0; } ,anyMovedYAxis: function(RawAxisID) { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad == null) { continue; } var value = gamepad.getYAxisRaw(RawAxisID); if(value != 0) { return value; } } return 0; } ,destroy: function() { this._gamepads = flixel_util_FlxDestroyUtil.destroyArray(this._gamepads); this.firstActive = null; this.lastActive = null; this._gamepads = null; flixel_input_gamepad_FlxGamepadManager._gameInput.removeEventListener("deviceAdded",$bind(this,this.onDeviceAdded)); flixel_input_gamepad_FlxGamepadManager._gameInput.removeEventListener("deviceRemoved",$bind(this,this.onDeviceRemoved)); } ,reset: function() { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null) { gamepad.reset(); } } } ,onDeviceAdded: function(Event1) { this.addGamepad(Event1.device); } ,onDeviceRemoved: function(Event1) { this.removeGamepad(Event1.device); } ,findGamepadIndex: function(Device) { if(Device == null) { return -1; } var _g = 0; var _g1 = openfl_ui_GameInput.numDevices; while(_g < _g1) { var i = _g++; if(openfl_ui_GameInput.getDeviceAt(i) == Device) { return i; } } return -1; } ,addGamepad: function(Device) { if(Device == null) { return; } Device.enabled = true; var id = this.findGamepadIndex(Device); if(id < 0) { return; } var gamepad = this.createByID(id,this.getModelFromDeviceName(Device.name)); gamepad._device = Device; this.deviceConnected.dispatch(gamepad); } ,getModelFromDeviceName: function(name) { if(name == null) { return flixel_input_gamepad_FlxGamepadModel.UNKNOWN; } name = StringTools.replace(StringTools.replace(name.toLowerCase(),"-",""),"_",""); if(name.indexOf("ouya") != -1) { return flixel_input_gamepad_FlxGamepadModel.OUYA; } else if(name.indexOf("wireless controller") != -1 || name.indexOf("ps4") != -1) { return flixel_input_gamepad_FlxGamepadModel.PS4; } else if(name.indexOf("logitech") != -1) { return flixel_input_gamepad_FlxGamepadModel.LOGITECH; } else if(name.indexOf("xbox") != -1 && name.indexOf("360") != -1 || name.indexOf("xinput") != -1) { return flixel_input_gamepad_FlxGamepadModel.XINPUT; } else if(name.indexOf("nintendo rvlcnt01tr") != -1) { return flixel_input_gamepad_FlxGamepadModel.WII_REMOTE; } else if(name.indexOf("nintendo rvlcnt01") != -1) { return flixel_input_gamepad_FlxGamepadModel.WII_REMOTE; } else if(name.indexOf("mayflash wiimote pc adapter") != -1) { return flixel_input_gamepad_FlxGamepadModel.MAYFLASH_WII_REMOTE; } else if(name.indexOf("pro controller") != -1 || name.indexOf("joycon l+r") != -1) { return flixel_input_gamepad_FlxGamepadModel.SWITCH_PRO; } else if(name.indexOf("joycon (l)") != -1) { return flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_LEFT; } else if(name.indexOf("joycon (r)") != -1) { return flixel_input_gamepad_FlxGamepadModel.SWITCH_JOYCON_RIGHT; } else if(name.indexOf("mfi") != -1) { return flixel_input_gamepad_FlxGamepadModel.MFI; } else { return flixel_input_gamepad_FlxGamepadModel.UNKNOWN; } } ,removeGamepad: function(Device) { if(Device == null) { return; } var _g = 0; var _g1 = this._gamepads.length; while(_g < _g1) { var i = _g++; var gamepad = this._gamepads[i]; if(gamepad != null && gamepad._device == Device) { this.removeByID(i); } } } ,update: function() { var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null) { gamepad.update(); } } } ,onFocus: function() { } ,onFocusLost: function() { this.reset(); } ,get_numActiveGamepads: function() { var count = 0; var _g = 0; var _g1 = this._gamepads; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(gamepad != null) { ++count; } } return count; } ,__class__: flixel_input_gamepad_FlxGamepadManager ,__properties__: {get_numActiveGamepads:"get_numActiveGamepads"} }; var flixel_input_gamepad_id_LogitechID = function() { }; $hxClasses["flixel.input.gamepad.id.LogitechID"] = flixel_input_gamepad_id_LogitechID; flixel_input_gamepad_id_LogitechID.__name__ = "flixel.input.gamepad.id.LogitechID"; var flixel_input_gamepad_id_MFiID = function() { }; $hxClasses["flixel.input.gamepad.id.MFiID"] = flixel_input_gamepad_id_MFiID; flixel_input_gamepad_id_MFiID.__name__ = "flixel.input.gamepad.id.MFiID"; var flixel_input_gamepad_id_MayflashWiiRemoteID = function() { }; $hxClasses["flixel.input.gamepad.id.MayflashWiiRemoteID"] = flixel_input_gamepad_id_MayflashWiiRemoteID; flixel_input_gamepad_id_MayflashWiiRemoteID.__name__ = "flixel.input.gamepad.id.MayflashWiiRemoteID"; var flixel_input_gamepad_id_OUYAID = function() { }; $hxClasses["flixel.input.gamepad.id.OUYAID"] = flixel_input_gamepad_id_OUYAID; flixel_input_gamepad_id_OUYAID.__name__ = "flixel.input.gamepad.id.OUYAID"; var flixel_input_gamepad_id_PS4ID = function() { }; $hxClasses["flixel.input.gamepad.id.PS4ID"] = flixel_input_gamepad_id_PS4ID; flixel_input_gamepad_id_PS4ID.__name__ = "flixel.input.gamepad.id.PS4ID"; var flixel_input_gamepad_id_PSVitaID = function() { }; $hxClasses["flixel.input.gamepad.id.PSVitaID"] = flixel_input_gamepad_id_PSVitaID; flixel_input_gamepad_id_PSVitaID.__name__ = "flixel.input.gamepad.id.PSVitaID"; var flixel_input_gamepad_id_SwitchJoyconLeftID = function() { }; $hxClasses["flixel.input.gamepad.id.SwitchJoyconLeftID"] = flixel_input_gamepad_id_SwitchJoyconLeftID; flixel_input_gamepad_id_SwitchJoyconLeftID.__name__ = "flixel.input.gamepad.id.SwitchJoyconLeftID"; var flixel_input_gamepad_id_SwitchJoyconRightID = function() { }; $hxClasses["flixel.input.gamepad.id.SwitchJoyconRightID"] = flixel_input_gamepad_id_SwitchJoyconRightID; flixel_input_gamepad_id_SwitchJoyconRightID.__name__ = "flixel.input.gamepad.id.SwitchJoyconRightID"; var flixel_input_gamepad_id_SwitchProID = function() { }; $hxClasses["flixel.input.gamepad.id.SwitchProID"] = flixel_input_gamepad_id_SwitchProID; flixel_input_gamepad_id_SwitchProID.__name__ = "flixel.input.gamepad.id.SwitchProID"; var flixel_input_gamepad_id_WiiRemoteID = function() { }; $hxClasses["flixel.input.gamepad.id.WiiRemoteID"] = flixel_input_gamepad_id_WiiRemoteID; flixel_input_gamepad_id_WiiRemoteID.__name__ = "flixel.input.gamepad.id.WiiRemoteID"; var flixel_input_gamepad_id_XInputID = function() { }; $hxClasses["flixel.input.gamepad.id.XInputID"] = flixel_input_gamepad_id_XInputID; flixel_input_gamepad_id_XInputID.__name__ = "flixel.input.gamepad.id.XInputID"; var flixel_input_gamepad_lists_FlxBaseGamepadList = function(status,gamepad) { this.status = status; this.gamepad = gamepad; }; $hxClasses["flixel.input.gamepad.lists.FlxBaseGamepadList"] = flixel_input_gamepad_lists_FlxBaseGamepadList; flixel_input_gamepad_lists_FlxBaseGamepadList.__name__ = "flixel.input.gamepad.lists.FlxBaseGamepadList"; flixel_input_gamepad_lists_FlxBaseGamepadList.prototype = { status: null ,gamepad: null ,check: function(id) { var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,checkRaw: function(id) { var button = this.gamepad.buttons[id]; if(button != null) { return button.hasState(this.status); } else { return false; } } ,get_ANY: function() { var _g = 0; var _g1 = this.gamepad.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; var tmp; if(button != null) { var button1 = this.gamepad.buttons[button.ID]; tmp = button1 != null && button1.hasState(this.status); } else { tmp = false; } if(tmp) { return true; } } return false; } ,get_ALL: function() { var _g = 0; var _g1 = this.gamepad.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; var tmp; if(button != null) { var button1 = this.gamepad.buttons[button.ID]; tmp = !(button1 != null && button1.hasState(this.status)); } else { tmp = false; } if(tmp) { return false; } } return true; } ,get_NONE: function() { var _g = 0; var _g1 = this.gamepad.buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; var tmp; if(button != null) { var button1 = this.gamepad.buttons[button.ID]; tmp = button1 != null && button1.hasState(this.status); } else { tmp = false; } if(tmp) { return false; } } return true; } ,__class__: flixel_input_gamepad_lists_FlxBaseGamepadList ,__properties__: {get_NONE:"get_NONE",get_ALL:"get_ALL",get_ANY:"get_ANY"} }; var flixel_input_gamepad_lists_FlxGamepadAnalogList = function(gamepad) { this.value = new flixel_input_gamepad_lists_FlxGamepadAnalogValueList(gamepad); this.justMoved = new flixel_input_gamepad_lists_FlxGamepadAnalogStateList(2,gamepad); this.justReleased = new flixel_input_gamepad_lists_FlxGamepadAnalogStateList(-1,gamepad); }; $hxClasses["flixel.input.gamepad.lists.FlxGamepadAnalogList"] = flixel_input_gamepad_lists_FlxGamepadAnalogList; flixel_input_gamepad_lists_FlxGamepadAnalogList.__name__ = "flixel.input.gamepad.lists.FlxGamepadAnalogList"; flixel_input_gamepad_lists_FlxGamepadAnalogList.prototype = { value: null ,justMoved: null ,justReleased: null ,__class__: flixel_input_gamepad_lists_FlxGamepadAnalogList }; var flixel_input_gamepad_lists_FlxGamepadAnalogStateList = function(status,gamepad) { this.status = status; this.gamepad = gamepad; }; $hxClasses["flixel.input.gamepad.lists.FlxGamepadAnalogStateList"] = flixel_input_gamepad_lists_FlxGamepadAnalogStateList; flixel_input_gamepad_lists_FlxGamepadAnalogStateList.__name__ = "flixel.input.gamepad.lists.FlxGamepadAnalogStateList"; flixel_input_gamepad_lists_FlxGamepadAnalogStateList.prototype = { gamepad: null ,status: null ,get_LEFT_STICK: function() { return this.checkXY(19); } ,get_LEFT_STICK_X: function() { var stick = this.gamepad.mapping.getAnalogStick(19); if(stick == null) { return false; } else { var button = this.gamepad.buttons[stick.x]; if(button != null) { return button.hasState(this.status); } else { return false; } } } ,get_LEFT_STICK_Y: function() { var stick = this.gamepad.mapping.getAnalogStick(19); if(stick == null) { return false; } else { var button = this.gamepad.buttons[stick.y]; if(button != null) { return button.hasState(this.status); } else { return false; } } } ,get_RIGHT_STICK: function() { return this.checkXY(20); } ,get_RIGHT_STICK_X: function() { var stick = this.gamepad.mapping.getAnalogStick(20); if(stick == null) { return false; } else { var button = this.gamepad.buttons[stick.x]; if(button != null) { return button.hasState(this.status); } else { return false; } } } ,get_RIGHT_STICK_Y: function() { var stick = this.gamepad.mapping.getAnalogStick(20); if(stick == null) { return false; } else { var button = this.gamepad.buttons[stick.y]; if(button != null) { return button.hasState(this.status); } else { return false; } } } ,checkXY: function(id) { var stick = this.gamepad.mapping.getAnalogStick(id); if(stick == null) { return false; } var button = this.gamepad.buttons[stick.x]; var xVal = button != null && button.hasState(this.status); var button = this.gamepad.buttons[stick.y]; var yVal = button != null && button.hasState(this.status); if(xVal && yVal) { return true; } if(xVal) { var button = this.gamepad.buttons[stick.y]; var yReleased = button != null && button.hasState(0); var button = this.gamepad.buttons[stick.y]; var yJustReleased = button != null && button.hasState(-1); if(yReleased || yJustReleased) { return true; } } if(yVal) { var button = this.gamepad.buttons[stick.x]; var xReleased = button != null && button.hasState(0); var button = this.gamepad.buttons[stick.x]; var xJustReleased = button != null && button.hasState(-1); if(xReleased || xJustReleased) { return true; } } return false; } ,checkX: function(id) { var stick = this.gamepad.mapping.getAnalogStick(id); if(stick == null) { return false; } var button = this.gamepad.buttons[stick.x]; if(button != null) { return button.hasState(this.status); } else { return false; } } ,checkY: function(id) { var stick = this.gamepad.mapping.getAnalogStick(id); if(stick == null) { return false; } var button = this.gamepad.buttons[stick.y]; if(button != null) { return button.hasState(this.status); } else { return false; } } ,checkRaw: function(RawID,Status) { var button = this.gamepad.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } ,__class__: flixel_input_gamepad_lists_FlxGamepadAnalogStateList ,__properties__: {get_RIGHT_STICK_Y:"get_RIGHT_STICK_Y",get_RIGHT_STICK_X:"get_RIGHT_STICK_X",get_RIGHT_STICK:"get_RIGHT_STICK",get_LEFT_STICK_Y:"get_LEFT_STICK_Y",get_LEFT_STICK_X:"get_LEFT_STICK_X",get_LEFT_STICK:"get_LEFT_STICK"} }; var flixel_input_gamepad_lists_FlxGamepadAnalogValueList = function(gamepad) { this.gamepad = gamepad; }; $hxClasses["flixel.input.gamepad.lists.FlxGamepadAnalogValueList"] = flixel_input_gamepad_lists_FlxGamepadAnalogValueList; flixel_input_gamepad_lists_FlxGamepadAnalogValueList.__name__ = "flixel.input.gamepad.lists.FlxGamepadAnalogValueList"; flixel_input_gamepad_lists_FlxGamepadAnalogValueList.prototype = { gamepad: null ,get_LEFT_STICK_X: function() { var _this = this.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(19)); } ,get_LEFT_STICK_Y: function() { var _this = this.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(19)); } ,get_RIGHT_STICK_X: function() { var _this = this.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(20)); } ,get_RIGHT_STICK_Y: function() { var _this = this.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(20)); } ,get_LEFT_TRIGGER: function() { return this.gamepad.getAxis(17); } ,get_RIGHT_TRIGGER: function() { return this.gamepad.getAxis(18); } ,get_POINTER_X: function() { return this.gamepad.getAxis(28); } ,get_POINTER_Y: function() { return this.gamepad.getAxis(29); } ,getAxis: function(id) { return this.gamepad.getAxis(id); } ,getXAxis: function(id) { var _this = this.gamepad; return _this.getAnalogXAxisValue(_this.mapping.getAnalogStick(id)); } ,getYAxis: function(id) { var _this = this.gamepad; return _this.getYAxisRaw(_this.mapping.getAnalogStick(id)); } ,__class__: flixel_input_gamepad_lists_FlxGamepadAnalogValueList ,__properties__: {get_POINTER_Y:"get_POINTER_Y",get_POINTER_X:"get_POINTER_X",get_RIGHT_TRIGGER:"get_RIGHT_TRIGGER",get_LEFT_TRIGGER:"get_LEFT_TRIGGER",get_RIGHT_STICK_Y:"get_RIGHT_STICK_Y",get_RIGHT_STICK_X:"get_RIGHT_STICK_X",get_LEFT_STICK_Y:"get_LEFT_STICK_Y",get_LEFT_STICK_X:"get_LEFT_STICK_X"} }; var flixel_input_gamepad_lists_FlxGamepadButtonList = function(status,gamepad) { flixel_input_gamepad_lists_FlxBaseGamepadList.call(this,status,gamepad); }; $hxClasses["flixel.input.gamepad.lists.FlxGamepadButtonList"] = flixel_input_gamepad_lists_FlxGamepadButtonList; flixel_input_gamepad_lists_FlxGamepadButtonList.__name__ = "flixel.input.gamepad.lists.FlxGamepadButtonList"; flixel_input_gamepad_lists_FlxGamepadButtonList.__super__ = flixel_input_gamepad_lists_FlxBaseGamepadList; flixel_input_gamepad_lists_FlxGamepadButtonList.prototype = $extend(flixel_input_gamepad_lists_FlxBaseGamepadList.prototype,{ get_A: function() { var id = 0; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_B: function() { var id = 1; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_X: function() { var id = 2; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_Y: function() { var id = 3; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_SHOULDER: function() { var id = 4; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_SHOULDER: function() { var id = 5; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_BACK: function() { var id = 6; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_START: function() { var id = 7; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_STICK_CLICK: function() { var id = 8; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_STICK_CLICK: function() { var id = 9; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_GUIDE: function() { var id = 10; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_DPAD_UP: function() { var id = 11; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_DPAD_DOWN: function() { var id = 12; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_DPAD_LEFT: function() { var id = 13; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_DPAD_RIGHT: function() { var id = 14; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_TRIGGER_BUTTON: function() { var id = 15; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_TRIGGER_BUTTON: function() { var id = 16; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_TRIGGER: function() { var id = 17; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_TRIGGER: function() { var id = 18; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_ANALOG_STICK: function() { var id = 19; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_ANALOG_STICK: function() { var id = 20; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_DPAD: function() { var id = 21; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_TILT_PITCH: function() { var id = 26; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_TILT_ROLL: function() { var id = 27; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_POINTER_X: function() { var id = 28; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_POINTER_Y: function() { var id = 29; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_EXTRA_0: function() { var id = 30; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_EXTRA_1: function() { var id = 31; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_EXTRA_2: function() { var id = 32; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_EXTRA_3: function() { var id = 33; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_STICK_DIGITAL_UP: function() { var id = 34; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_STICK_DIGITAL_RIGHT: function() { var id = 35; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_STICK_DIGITAL_DOWN: function() { var id = 36; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_LEFT_STICK_DIGITAL_LEFT: function() { var id = 37; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_STICK_DIGITAL_UP: function() { var id = 38; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_STICK_DIGITAL_RIGHT: function() { var id = 39; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_STICK_DIGITAL_DOWN: function() { var id = 40; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,get_RIGHT_STICK_DIGITAL_LEFT: function() { var id = 41; var _this = this.gamepad; var Status = this.status; switch(id) { case -2: return _this.anyButton(Status); case -1: return !_this.anyButton(Status); default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; if(button != null) { return button.hasState(Status); } else { return false; } } } ,__class__: flixel_input_gamepad_lists_FlxGamepadButtonList ,__properties__: $extend(flixel_input_gamepad_lists_FlxBaseGamepadList.prototype.__properties__,{get_RIGHT_STICK_DIGITAL_LEFT:"get_RIGHT_STICK_DIGITAL_LEFT",get_RIGHT_STICK_DIGITAL_DOWN:"get_RIGHT_STICK_DIGITAL_DOWN",get_RIGHT_STICK_DIGITAL_RIGHT:"get_RIGHT_STICK_DIGITAL_RIGHT",get_RIGHT_STICK_DIGITAL_UP:"get_RIGHT_STICK_DIGITAL_UP",get_LEFT_STICK_DIGITAL_LEFT:"get_LEFT_STICK_DIGITAL_LEFT",get_LEFT_STICK_DIGITAL_DOWN:"get_LEFT_STICK_DIGITAL_DOWN",get_LEFT_STICK_DIGITAL_RIGHT:"get_LEFT_STICK_DIGITAL_RIGHT",get_LEFT_STICK_DIGITAL_UP:"get_LEFT_STICK_DIGITAL_UP",get_EXTRA_3:"get_EXTRA_3",get_EXTRA_2:"get_EXTRA_2",get_EXTRA_1:"get_EXTRA_1",get_EXTRA_0:"get_EXTRA_0",get_POINTER_Y:"get_POINTER_Y",get_POINTER_X:"get_POINTER_X",get_TILT_ROLL:"get_TILT_ROLL",get_TILT_PITCH:"get_TILT_PITCH",get_DPAD:"get_DPAD",get_RIGHT_ANALOG_STICK:"get_RIGHT_ANALOG_STICK",get_LEFT_ANALOG_STICK:"get_LEFT_ANALOG_STICK",get_RIGHT_TRIGGER:"get_RIGHT_TRIGGER",get_LEFT_TRIGGER:"get_LEFT_TRIGGER",get_RIGHT_TRIGGER_BUTTON:"get_RIGHT_TRIGGER_BUTTON",get_LEFT_TRIGGER_BUTTON:"get_LEFT_TRIGGER_BUTTON",get_DPAD_RIGHT:"get_DPAD_RIGHT",get_DPAD_LEFT:"get_DPAD_LEFT",get_DPAD_DOWN:"get_DPAD_DOWN",get_DPAD_UP:"get_DPAD_UP",get_GUIDE:"get_GUIDE",get_RIGHT_STICK_CLICK:"get_RIGHT_STICK_CLICK",get_LEFT_STICK_CLICK:"get_LEFT_STICK_CLICK",get_START:"get_START",get_BACK:"get_BACK",get_RIGHT_SHOULDER:"get_RIGHT_SHOULDER",get_LEFT_SHOULDER:"get_LEFT_SHOULDER",get_Y:"get_Y",get_X:"get_X",get_B:"get_B",get_A:"get_A"}) }); var flixel_input_gamepad_lists_FlxGamepadMotionValueList = function(gamepad) { this.gamepad = gamepad; }; $hxClasses["flixel.input.gamepad.lists.FlxGamepadMotionValueList"] = flixel_input_gamepad_lists_FlxGamepadMotionValueList; flixel_input_gamepad_lists_FlxGamepadMotionValueList.__name__ = "flixel.input.gamepad.lists.FlxGamepadMotionValueList"; flixel_input_gamepad_lists_FlxGamepadMotionValueList.prototype = { gamepad: null ,get_TILT_PITCH: function() { if(!this.gamepad.mapping.supportsMotion) { return 0; } else { return this.gamepad.getAxis(26); } } ,get_TILT_ROLL: function() { if(!this.gamepad.mapping.supportsMotion) { return 0; } else { return this.gamepad.getAxis(27); } } ,getAxis: function(id) { if(!this.gamepad.mapping.supportsMotion) { return 0; } return this.gamepad.getAxis(id); } ,get_isSupported: function() { return this.gamepad.mapping.supportsMotion; } ,__class__: flixel_input_gamepad_lists_FlxGamepadMotionValueList ,__properties__: {get_TILT_ROLL:"get_TILT_ROLL",get_TILT_PITCH:"get_TILT_PITCH",get_isSupported:"get_isSupported"} }; var flixel_input_gamepad_lists_FlxGamepadPointerValueList = function(gamepad) { this.gamepad = gamepad; }; $hxClasses["flixel.input.gamepad.lists.FlxGamepadPointerValueList"] = flixel_input_gamepad_lists_FlxGamepadPointerValueList; flixel_input_gamepad_lists_FlxGamepadPointerValueList.__name__ = "flixel.input.gamepad.lists.FlxGamepadPointerValueList"; flixel_input_gamepad_lists_FlxGamepadPointerValueList.prototype = { gamepad: null ,get_X: function() { if(!this.gamepad.mapping.supportsPointer) { return 0; } else { return this.gamepad.getAxis(28); } } ,get_Y: function() { if(!this.gamepad.mapping.supportsPointer) { return 0; } else { return this.gamepad.getAxis(29); } } ,getAxis: function(id) { if(!this.gamepad.mapping.supportsPointer) { return 0; } return this.gamepad.getAxis(id); } ,get_isSupported: function() { return this.gamepad.mapping.supportsPointer; } ,__class__: flixel_input_gamepad_lists_FlxGamepadPointerValueList ,__properties__: {get_Y:"get_Y",get_X:"get_X",get_isSupported:"get_isSupported"} }; var flixel_input_gamepad_mappings_FlxGamepadMapping = function(attachment) { this.attachment = flixel_input_gamepad_FlxGamepadAttachment.NONE; this.supportsPointer = false; this.supportsMotion = false; if(attachment != null) { this.set_attachment(attachment); } this.initValues(); }; $hxClasses["flixel.input.gamepad.mappings.FlxGamepadMapping"] = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_FlxGamepadMapping.__name__ = "flixel.input.gamepad.mappings.FlxGamepadMapping"; flixel_input_gamepad_mappings_FlxGamepadMapping.prototype = { supportsMotion: null ,supportsPointer: null ,leftStick: null ,rightStick: null ,attachment: null ,manufacturer: null ,initValues: function() { } ,getAnalogStick: function(ID) { switch(ID) { case 19: return this.leftStick; case 20: return this.rightStick; default: return null; } } ,getID: function(rawID) { return -1; } ,getRawID: function(ID) { return -1; } ,isAxisFlipped: function(axisID) { return false; } ,isAxisForMotion: function(ID) { return false; } ,set_attachment: function(attachment) { return this.attachment = attachment; } ,getInputLabel: function(id) { if(this.getRawID(id) == -1) { return null; } switch(id) { case 0: return "a"; case 1: return "b"; case 2: return "x"; case 3: return "y"; case 4: return "lb"; case 5: return "rb"; case 6: return "back"; case 7: return "start"; case 8: return "ls-click"; case 9: return "rs-click"; case 10: return "guide"; case 11: return "up"; case 12: return "down"; case 13: return "left"; case 14: return "right"; case 15: return "l2-click"; case 16: return "r2-click"; case 17: return "lt"; case 18: return "rt"; case 19: return "ls"; case 20: return "rs"; case 21: return "dpad"; case 34: return "ls-up"; case 35: return "ls-right"; case 36: return "ls-down"; case 37: return "ls-left"; case 38: return "rs-up"; case 39: return "rs-right"; case 40: return "rs-down"; case 41: return "rs-left"; default: return null; } } ,__class__: flixel_input_gamepad_mappings_FlxGamepadMapping ,__properties__: {set_attachment:"set_attachment"} }; var flixel_input_gamepad_mappings_Manufacturer = $hxEnums["flixel.input.gamepad.mappings.Manufacturer"] = { __ename__:"flixel.input.gamepad.mappings.Manufacturer",__constructs__:null ,GooglePepper: {_hx_name:"GooglePepper",_hx_index:0,__enum__:"flixel.input.gamepad.mappings.Manufacturer",toString:$estr} ,AdobeWindows: {_hx_name:"AdobeWindows",_hx_index:1,__enum__:"flixel.input.gamepad.mappings.Manufacturer",toString:$estr} ,Unknown: {_hx_name:"Unknown",_hx_index:2,__enum__:"flixel.input.gamepad.mappings.Manufacturer",toString:$estr} }; flixel_input_gamepad_mappings_Manufacturer.__constructs__ = [flixel_input_gamepad_mappings_Manufacturer.GooglePepper,flixel_input_gamepad_mappings_Manufacturer.AdobeWindows,flixel_input_gamepad_mappings_Manufacturer.Unknown]; flixel_input_gamepad_mappings_Manufacturer.__empty_constructs__ = [flixel_input_gamepad_mappings_Manufacturer.GooglePepper,flixel_input_gamepad_mappings_Manufacturer.AdobeWindows,flixel_input_gamepad_mappings_Manufacturer.Unknown]; flixel_input_gamepad_mappings_Manufacturer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:MemberName"]}}; var flixel_input_gamepad_mappings_LogitechMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.LogitechMapping"] = flixel_input_gamepad_mappings_LogitechMapping; flixel_input_gamepad_mappings_LogitechMapping.__name__ = "flixel.input.gamepad.mappings.LogitechMapping"; flixel_input_gamepad_mappings_LogitechMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_LogitechMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK; } ,getID: function(rawID) { switch(rawID) { case -5: return 10; case 0: return 2; case 1: return 0; case 2: return 1; case 3: return 3; case 4: return 4; case 5: return 5; case 6: return 17; case 7: return 18; case 8: return 6; case 9: return 7; case 10: return 8; case 11: return 9; case 16: return 11; case 17: return 12; case 18: return 13; case 19: return 14; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 1; case 1: return 2; case 2: return 0; case 3: return 3; case 4: return 4; case 5: return 5; case 6: return 8; case 7: return 9; case 8: return 10; case 9: return 11; case 10: return -5; case 11: return 16; case 12: return 17; case 13: return 18; case 14: return 19; case 17: return 6; case 18: return 7; case 34: return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "2"; case 1: return "3"; case 2: return "1"; case 3: return "4"; case 4: return "5"; case 5: return "6"; case 6: return "9"; case 7: return "10"; case 10: return "logitech"; case 17: return "7"; case 18: return "8"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,__class__: flixel_input_gamepad_mappings_LogitechMapping }); var flixel_input_gamepad_mappings_MFiMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.MFiMapping"] = flixel_input_gamepad_mappings_MFiMapping; flixel_input_gamepad_mappings_MFiMapping.__name__ = "flixel.input.gamepad.mappings.MFiMapping"; flixel_input_gamepad_mappings_MFiMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_MFiMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK; } ,getID: function(rawID) { switch(rawID) { case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 6; case 11: return 10; case 12: return 7; case 13: return 8; case 14: return 9; case 15: return 4; case 16: return 5; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 6: return 10; case 7: return 12; case 8: return 13; case 9: return 14; case 10: return 11; case 11: return 17; case 12: return 18; case 13: return 19; case 14: return 20; case 17: return 4; case 18: return 5; case 34: return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,__class__: flixel_input_gamepad_mappings_MFiMapping }); var flixel_input_gamepad_mappings_MayflashWiiRemoteMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.MayflashWiiRemoteMapping"] = flixel_input_gamepad_mappings_MayflashWiiRemoteMapping; flixel_input_gamepad_mappings_MayflashWiiRemoteMapping.__name__ = "flixel.input.gamepad.mappings.MayflashWiiRemoteMapping"; flixel_input_gamepad_mappings_MayflashWiiRemoteMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_MayflashWiiRemoteMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.supportsPointer = true; } ,getID: function(rawID) { switch(this.attachment._hx_index) { case 0: return this.getIDNunchuk(rawID); case 1: return this.getIDClassicController(rawID); case 2: return this.getIDDefault(rawID); } } ,getIDClassicController: function(rawID) { switch(rawID) { case 4: return 11; case 5: return 12; case 6: return 13; case 7: return 14; case 8: return 2; case 9: return 3; case 10: return 0; case 11: return 1; case 12: return 17; case 13: return 18; case 14: return 4; case 15: return 5; case 16: return 6; case 17: return 7; case 19: return 10; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getIDNunchuk: function(rawID) { switch(rawID) { case 4: return 11; case 5: return 12; case 6: return 13; case 7: return 14; case 8: return 2; case 9: return 3; case 10: return 0; case 11: return 1; case 12: return 6; case 13: return 7; case 14: return 17; case 15: return 4; case 19: return 10; default: var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawUp; var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawDown; var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawLeft; var tmp = rawID == flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawRight; return -1; } } ,getIDDefault: function(rawID) { switch(rawID) { case 8: return 2; case 9: return 3; case 10: return 0; case 11: return 1; case 12: return 6; case 13: return 7; case 19: return 10; case 22: return 11; case 23: return 12; case 24: return 13; case 25: return 14; default: return -1; } } ,getRawID: function(ID) { switch(this.attachment._hx_index) { case 0: return this.getRawNunchuk(ID); case 1: return this.getRawClassicController(ID); case 2: return this.getRawDefault(ID); } } ,getRawClassicController: function(ID) { switch(ID) { case 0: return 10; case 1: return 11; case 2: return 8; case 3: return 9; case 4: return 14; case 5: return 15; case 6: return 16; case 7: return 17; case 10: return 19; case 11: return 4; case 12: return 5; case 13: return 6; case 14: return 7; case 17: return 12; case 18: return 13; case 30: return -1; case 31: return -1; case 34: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK.rawLeft; default: return this.getRawDefault(ID); } } ,getRawNunchuk: function(ID) { switch(ID) { case 0: return 10; case 1: return 11; case 2: return 8; case 3: return 9; case 4: return 15; case 6: return 12; case 7: return 13; case 10: return 19; case 11: return 4; case 12: return 5; case 13: return 6; case 14: return 7; case 17: return 14; case 28: return 2; case 29: return 3; case 34: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK.rawLeft; default: return -1; } } ,getRawDefault: function(ID) { switch(ID) { case 0: return 10; case 1: return 11; case 2: return 8; case 3: return 9; case 6: return 12; case 7: return 13; case 10: return 19; case 11: return 22; case 12: return 23; case 13: return 24; case 14: return 25; default: return -1; } } ,set_attachment: function(attachment) { var tmp; switch(attachment._hx_index) { case 0:case 1: tmp = flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK; break; case 2: tmp = flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD; break; } this.leftStick = tmp; this.rightStick = attachment._hx_index == 1 ? flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK : null; return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.set_attachment.call(this,attachment); } ,getInputLabel: function(id) { var label = flixel_input_gamepad_mappings_WiiRemoteMapping.getWiiInputLabel(id,this.attachment); if(label == null) { return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } return label; } ,__class__: flixel_input_gamepad_mappings_MayflashWiiRemoteMapping }); var flixel_input_gamepad_mappings_OUYAMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.OUYAMapping"] = flixel_input_gamepad_mappings_OUYAMapping; flixel_input_gamepad_mappings_OUYAMapping.__name__ = "flixel.input.gamepad.mappings.OUYAMapping"; flixel_input_gamepad_mappings_OUYAMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_OUYAMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK; } ,getID: function(rawID) { switch(rawID) { case 4: return 17; case 5: return 18; case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 13: return 8; case 14: return 9; case 15: return 4; case 16: return 5; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; case 16777234: return 10; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 8: return 13; case 9: return 14; case 10: return 16777234; case 11: return 17; case 12: return 18; case 13: return 19; case 14: return 20; case 17: return 4; case 18: return 5; case 34: return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "o"; case 1: return "a"; case 2: return "u"; case 3: return "y"; case 10: return "home"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,__class__: flixel_input_gamepad_mappings_OUYAMapping }); var flixel_input_gamepad_mappings_PS4Mapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.PS4Mapping"] = flixel_input_gamepad_mappings_PS4Mapping; flixel_input_gamepad_mappings_PS4Mapping.__name__ = "flixel.input.gamepad.mappings.PS4Mapping"; flixel_input_gamepad_mappings_PS4Mapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_PS4Mapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK; this.supportsMotion = true; this.supportsPointer = true; } ,getID: function(rawID) { switch(rawID) { case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 6; case 11: return 10; case 12: return 7; case 13: return 8; case 14: return 9; case 15: return 4; case 16: return 5; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 6: return 10; case 7: return 12; case 8: return 13; case 9: return 14; case 10: return 11; case 11: return 17; case 12: return 18; case 13: return 19; case 14: return 20; case 17: return 4; case 18: return 5; case 34: return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "x"; case 1: return "circle"; case 2: return "square"; case 3: return "triangle"; case 4: return "l1"; case 5: return "r1"; case 6: return "share"; case 7: return "options"; case 10: return "ps"; case 17: return "l2"; case 18: return "r2"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,__class__: flixel_input_gamepad_mappings_PS4Mapping }); var flixel_input_gamepad_mappings_PSVitaMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.PSVitaMapping"] = flixel_input_gamepad_mappings_PSVitaMapping; flixel_input_gamepad_mappings_PSVitaMapping.__name__ = "flixel.input.gamepad.mappings.PSVitaMapping"; flixel_input_gamepad_mappings_PSVitaMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_PSVitaMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK; } ,getID: function(rawID) { switch(rawID) { case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 6; case 12: return 7; case 15: return 4; case 16: return 5; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 34; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 6: return 10; case 7: return 12; case 11: return 17; case 12: return 18; case 13: return 19; case 14: return 20; case 34: return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "x"; case 1: return "circle"; case 2: return "square"; case 3: return "triangle"; case 4: return "l1"; case 5: return "r1"; case 6: return "select"; case 17: return "l2"; case 18: return "r2"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,isAxisFlipped: function(axisID) { if(axisID != flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK.y) { return axisID == flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK.y; } else { return true; } } ,__class__: flixel_input_gamepad_mappings_PSVitaMapping }); var flixel_input_gamepad_mappings_SwitchJoyconLeftMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.SwitchJoyconLeftMapping"] = flixel_input_gamepad_mappings_SwitchJoyconLeftMapping; flixel_input_gamepad_mappings_SwitchJoyconLeftMapping.__name__ = "flixel.input.gamepad.mappings.SwitchJoyconLeftMapping"; flixel_input_gamepad_mappings_SwitchJoyconLeftMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_SwitchJoyconLeftMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK; this.supportsMotion = true; this.supportsPointer = false; } ,getID: function(rawID) { switch(rawID) { case 4: return 17; case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 30; case 12: return 7; case 13: return 8; case 15: return 4; case 16: return 5; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { return -1; } } } } } } ,getRawID: function(id) { switch(id) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 7: return 12; case 8: return 13; case 17: return 4; case 30: return 10; case 34: return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "down"; case 1: return "right"; case 2: return "left"; case 3: return "up"; case 4: return "sl"; case 5: return "sr"; case 7: return "minus"; case 17: return "zl"; case 30: return "l"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,__class__: flixel_input_gamepad_mappings_SwitchJoyconLeftMapping }); var flixel_input_gamepad_mappings_SwitchJoyconRightMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.SwitchJoyconRightMapping"] = flixel_input_gamepad_mappings_SwitchJoyconRightMapping; flixel_input_gamepad_mappings_SwitchJoyconRightMapping.__name__ = "flixel.input.gamepad.mappings.SwitchJoyconRightMapping"; flixel_input_gamepad_mappings_SwitchJoyconRightMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_SwitchJoyconRightMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK; this.supportsMotion = true; this.supportsPointer = false; } ,getID: function(rawID) { switch(rawID) { case 5: return 18; case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 30; case 11: return 10; case 12: return 7; case 13: return 8; case 15: return 4; case 16: return 5; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { return -1; } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 7: return 12; case 8: return 13; case 10: return 11; case 18: return 5; case 30: return 10; case 34: return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "a"; case 1: return "x"; case 2: return "b"; case 3: return "y"; case 4: return "sl"; case 5: return "sr"; case 7: return "plus"; case 10: return "home"; case 18: return "zr"; case 30: return "r"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,__class__: flixel_input_gamepad_mappings_SwitchJoyconRightMapping }); var flixel_input_gamepad_mappings_SwitchProMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.SwitchProMapping"] = flixel_input_gamepad_mappings_SwitchProMapping; flixel_input_gamepad_mappings_SwitchProMapping.__name__ = "flixel.input.gamepad.mappings.SwitchProMapping"; flixel_input_gamepad_mappings_SwitchProMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_SwitchProMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK; this.supportsMotion = true; this.supportsPointer = false; } ,getID: function(rawID) { switch(rawID) { case 4: return 17; case 5: return 18; case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 6; case 11: return 10; case 12: return 7; case 13: return 8; case 14: return 9; case 15: return 4; case 16: return 5; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; case 21: return 30; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 6: return 10; case 7: return 12; case 8: return 13; case 9: return 14; case 10: return 11; case 11: return 17; case 12: return 18; case 13: return 19; case 14: return 20; case 17: return 4; case 18: return 5; case 30: return 21; case 34: return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,getInputLabel: function(id) { switch(id) { case 0: return "b"; case 1: return "a"; case 2: return "y"; case 3: return "x"; case 4: return "l"; case 5: return "r"; case 6: return "minus"; case 7: return "plus"; case 10: return "home"; case 17: return "zl"; case 18: return "zr"; case 30: return "capture"; default: return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } } ,__class__: flixel_input_gamepad_mappings_SwitchProMapping }); var flixel_input_gamepad_mappings_WiiRemoteMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.WiiRemoteMapping"] = flixel_input_gamepad_mappings_WiiRemoteMapping; flixel_input_gamepad_mappings_WiiRemoteMapping.__name__ = "flixel.input.gamepad.mappings.WiiRemoteMapping"; flixel_input_gamepad_mappings_WiiRemoteMapping.getWiiInputLabel = function(id,attachment) { switch(id) { case 6: return "minus"; case 7: return "plus"; case 10: return "home"; default: } switch(attachment._hx_index) { case 0: switch(id) { case 2: return "1"; case 3: return "2"; case 4: return "c"; case 17: return "z"; default: return null; } break; case 1: switch(id) { case 0: return "b"; case 1: return "a"; case 2: return "y"; case 3: return "x"; case 4: return "zl"; case 5: return "zr"; case 17: return "l"; case 18: return "r"; case 30: return "1"; case 31: return "2"; default: return null; } break; case 2: switch(id) { case 2: return "1"; case 3: return "2"; case 6: return "minus"; case 7: return "plus"; case 10: return "home"; default: return null; } break; } }; flixel_input_gamepad_mappings_WiiRemoteMapping.getLabelClassicController = function(ID) { switch(ID) { case 0: return "b"; case 1: return "a"; case 2: return "y"; case 3: return "x"; case 4: return "zl"; case 5: return "zr"; case 17: return "l"; case 18: return "r"; case 30: return "1"; case 31: return "2"; default: return null; } }; flixel_input_gamepad_mappings_WiiRemoteMapping.getLabelNunchuk = function(ID) { switch(ID) { case 2: return "1"; case 3: return "2"; case 4: return "c"; case 17: return "z"; default: return null; } }; flixel_input_gamepad_mappings_WiiRemoteMapping.getLabelDefault = function(ID) { switch(ID) { case 2: return "1"; case 3: return "2"; case 6: return "minus"; case 7: return "plus"; case 10: return "home"; default: return null; } }; flixel_input_gamepad_mappings_WiiRemoteMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_WiiRemoteMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.supportsMotion = true; this.supportsPointer = false; } ,getID: function(rawID) { switch(this.attachment._hx_index) { case 0: return this.getIDNunchuk(rawID); case 1: return this.getIDClassicController(rawID); case 2: return this.getIDDefault(rawID); } } ,getIDClassicController: function(rawID) { switch(rawID) { case 5: return 11; case 6: return 12; case 7: return 13; case 8: return 14; case 9: return 1; case 10: return 0; case 11: return 2; case 12: return 3; case 13: return 17; case 14: return 18; case 15: return 4; case 16: return 5; case 17: return 7; case 18: return 6; case 19: return 10; case 20: return 30; case 21: return 31; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getIDNunchuk: function(rawID) { switch(rawID) { case 5: return 11; case 6: return 12; case 7: return 13; case 8: return 14; case 9: return 0; case 10: return 1; case 11: return 4; case 12: return 17; case 13: return 2; case 14: return 3; case 15: return 7; case 16: return 6; case 17: return 10; default: var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawUp; var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawDown; var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawLeft; var tmp = rawID == flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawRight; return -1; } } ,getIDDefault: function(rawID) { switch(rawID) { case 9: return 2; case 10: return 3; case 11: return 0; case 12: return 1; case 13: return 7; case 14: return 6; case 15: return 10; case 22: return 11; case 23: return 12; case 24: return 13; case 25: return 14; default: return -1; } } ,getRawID: function(ID) { switch(this.attachment._hx_index) { case 0: return this.getRawNunchuk(ID); case 1: return this.getRawClassicController(ID); case 2: return this.getRawDefault(ID); } } ,getRawClassicController: function(ID) { switch(ID) { case 0: return 10; case 1: return 9; case 2: return 11; case 3: return 12; case 4: return 15; case 5: return 16; case 6: return 18; case 7: return 17; case 10: return 19; case 11: return 5; case 12: return 6; case 13: return 7; case 14: return 8; case 17: return 13; case 18: return 14; case 30: return 20; case 31: return 21; case 34: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,getRawNunchuk: function(ID) { switch(ID) { case 0: return 9; case 1: return 10; case 2: return 13; case 3: return 14; case 4: return 11; case 6: return 16; case 7: return 15; case 10: return 17; case 11: return 5; case 12: return 6; case 13: return 7; case 14: return 8; case 17: return 12; case 26: return 3; case 27: return 2; case 34: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK.rawLeft; default: return -1; } } ,getRawDefault: function(ID) { switch(ID) { case 0: return 11; case 1: return 12; case 2: return 9; case 3: return 10; case 6: return 14; case 7: return 13; case 10: return 15; case 11: return 22; case 12: return 23; case 13: return 24; case 14: return 25; case 26: return 2; case 27: return 3; default: return -1; } } ,isAxisForMotion: function(ID) { if(this.attachment == flixel_input_gamepad_FlxGamepadAttachment.NONE) { if(ID == 2 || ID == 3) { return true; } } else if(this.attachment == flixel_input_gamepad_FlxGamepadAttachment.WII_NUNCHUCK) { if(ID == 3 || ID == 2) { return true; } } return false; } ,isAxisFlipped: function(axisID) { return axisID == 4; } ,set_attachment: function(attachment) { var tmp; switch(attachment._hx_index) { case 0:case 1: tmp = flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK; break; case 2: tmp = flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD; break; } this.leftStick = tmp; this.rightStick = attachment._hx_index == 1 ? flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK : null; return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.set_attachment.call(this,attachment); } ,getInputLabel: function(id) { var label = flixel_input_gamepad_mappings_WiiRemoteMapping.getWiiInputLabel(id,this.attachment); if(label == null) { return flixel_input_gamepad_mappings_FlxGamepadMapping.prototype.getInputLabel.call(this,id); } return label; } ,__class__: flixel_input_gamepad_mappings_WiiRemoteMapping }); var flixel_input_gamepad_mappings_XInputMapping = function(attachment) { flixel_input_gamepad_mappings_FlxGamepadMapping.call(this,attachment); }; $hxClasses["flixel.input.gamepad.mappings.XInputMapping"] = flixel_input_gamepad_mappings_XInputMapping; flixel_input_gamepad_mappings_XInputMapping.__name__ = "flixel.input.gamepad.mappings.XInputMapping"; flixel_input_gamepad_mappings_XInputMapping.__super__ = flixel_input_gamepad_mappings_FlxGamepadMapping; flixel_input_gamepad_mappings_XInputMapping.prototype = $extend(flixel_input_gamepad_mappings_FlxGamepadMapping.prototype,{ initValues: function() { this.leftStick = flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK; this.rightStick = flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK; } ,getID: function(rawID) { switch(rawID) { case -1: return 10; case 4: return 17; case 5: return 18; case 6: return 0; case 7: return 1; case 8: return 2; case 9: return 3; case 10: return 6; case 12: return 7; case 13: return 8; case 14: return 9; case 15: return 4; case 16: return 5; case 17: return 11; case 18: return 12; case 19: return 13; case 20: return 14; default: var id = rawID; if(id == this.leftStick.rawUp) { return 34; } else { var id = rawID; if(id == this.leftStick.rawDown) { return 36; } else { var id = rawID; if(id == this.leftStick.rawLeft) { return 37; } else { var id = rawID; if(id == this.leftStick.rawRight) { return 35; } else { var id = rawID; if(id == this.rightStick.rawUp) { return 38; } else { var id = rawID; if(id == this.rightStick.rawDown) { return 40; } else { var id = rawID; if(id == this.rightStick.rawLeft) { return 41; } else { var id = rawID; if(id == this.rightStick.rawRight) { return 39; } else { return -1; } } } } } } } } } } ,getRawID: function(ID) { switch(ID) { case 0: return 6; case 1: return 7; case 2: return 8; case 3: return 9; case 4: return 15; case 5: return 16; case 6: return 10; case 7: return 12; case 8: return 13; case 9: return 14; case 10: return -1; case 11: return 17; case 12: return 18; case 13: return 19; case 14: return 20; case 17: return 4; case 18: return 5; case 34: return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawUp; case 35: return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawRight; case 36: return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawDown; case 37: return flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK.rawLeft; case 38: return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawUp; case 39: return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawRight; case 40: return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawDown; case 41: return flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK.rawLeft; default: return -1; } } ,__class__: flixel_input_gamepad_mappings_XInputMapping }); var flixel_input_keyboard_FlxKey = {}; flixel_input_keyboard_FlxKey.fromString = function(s) { s = s.toUpperCase(); if(Object.prototype.hasOwnProperty.call(flixel_input_keyboard_FlxKey.fromStringMap.h,s)) { return flixel_input_keyboard_FlxKey.fromStringMap.h[s]; } else { return -1; } }; flixel_input_keyboard_FlxKey.toString = function(this1) { return flixel_input_keyboard_FlxKey.toStringMap.h[this1]; }; var flixel_input_keyboard_FlxKeyList = function(status,keyManager) { flixel_input_FlxBaseKeyList.call(this,status,keyManager); }; $hxClasses["flixel.input.keyboard.FlxKeyList"] = flixel_input_keyboard_FlxKeyList; flixel_input_keyboard_FlxKeyList.__name__ = "flixel.input.keyboard.FlxKeyList"; flixel_input_keyboard_FlxKeyList.__super__ = flixel_input_FlxBaseKeyList; flixel_input_keyboard_FlxKeyList.prototype = $extend(flixel_input_FlxBaseKeyList.prototype,{ get_A: function() { return this.keyManager.checkStatusUnsafe(65,this.status); } ,get_B: function() { return this.keyManager.checkStatusUnsafe(66,this.status); } ,get_C: function() { return this.keyManager.checkStatusUnsafe(67,this.status); } ,get_D: function() { return this.keyManager.checkStatusUnsafe(68,this.status); } ,get_E: function() { return this.keyManager.checkStatusUnsafe(69,this.status); } ,get_F: function() { return this.keyManager.checkStatusUnsafe(70,this.status); } ,get_G: function() { return this.keyManager.checkStatusUnsafe(71,this.status); } ,get_H: function() { return this.keyManager.checkStatusUnsafe(72,this.status); } ,get_I: function() { return this.keyManager.checkStatusUnsafe(73,this.status); } ,get_J: function() { return this.keyManager.checkStatusUnsafe(74,this.status); } ,get_K: function() { return this.keyManager.checkStatusUnsafe(75,this.status); } ,get_L: function() { return this.keyManager.checkStatusUnsafe(76,this.status); } ,get_M: function() { return this.keyManager.checkStatusUnsafe(77,this.status); } ,get_N: function() { return this.keyManager.checkStatusUnsafe(78,this.status); } ,get_O: function() { return this.keyManager.checkStatusUnsafe(79,this.status); } ,get_P: function() { return this.keyManager.checkStatusUnsafe(80,this.status); } ,get_Q: function() { return this.keyManager.checkStatusUnsafe(81,this.status); } ,get_R: function() { return this.keyManager.checkStatusUnsafe(82,this.status); } ,get_S: function() { return this.keyManager.checkStatusUnsafe(83,this.status); } ,get_T: function() { return this.keyManager.checkStatusUnsafe(84,this.status); } ,get_U: function() { return this.keyManager.checkStatusUnsafe(85,this.status); } ,get_V: function() { return this.keyManager.checkStatusUnsafe(86,this.status); } ,get_W: function() { return this.keyManager.checkStatusUnsafe(87,this.status); } ,get_X: function() { return this.keyManager.checkStatusUnsafe(88,this.status); } ,get_Y: function() { return this.keyManager.checkStatusUnsafe(89,this.status); } ,get_Z: function() { return this.keyManager.checkStatusUnsafe(90,this.status); } ,get_ZERO: function() { return this.keyManager.checkStatusUnsafe(48,this.status); } ,get_ONE: function() { return this.keyManager.checkStatusUnsafe(49,this.status); } ,get_TWO: function() { return this.keyManager.checkStatusUnsafe(50,this.status); } ,get_THREE: function() { return this.keyManager.checkStatusUnsafe(51,this.status); } ,get_FOUR: function() { return this.keyManager.checkStatusUnsafe(52,this.status); } ,get_FIVE: function() { return this.keyManager.checkStatusUnsafe(53,this.status); } ,get_SIX: function() { return this.keyManager.checkStatusUnsafe(54,this.status); } ,get_SEVEN: function() { return this.keyManager.checkStatusUnsafe(55,this.status); } ,get_EIGHT: function() { return this.keyManager.checkStatusUnsafe(56,this.status); } ,get_NINE: function() { return this.keyManager.checkStatusUnsafe(57,this.status); } ,get_PAGEUP: function() { return this.keyManager.checkStatusUnsafe(33,this.status); } ,get_PAGEDOWN: function() { return this.keyManager.checkStatusUnsafe(34,this.status); } ,get_HOME: function() { return this.keyManager.checkStatusUnsafe(36,this.status); } ,get_END: function() { return this.keyManager.checkStatusUnsafe(35,this.status); } ,get_INSERT: function() { return this.keyManager.checkStatusUnsafe(45,this.status); } ,get_ESCAPE: function() { return this.keyManager.checkStatusUnsafe(27,this.status); } ,get_MINUS: function() { return this.keyManager.checkStatusUnsafe(189,this.status); } ,get_PLUS: function() { return this.keyManager.checkStatusUnsafe(187,this.status); } ,get_DELETE: function() { return this.keyManager.checkStatusUnsafe(46,this.status); } ,get_BACKSPACE: function() { return this.keyManager.checkStatusUnsafe(8,this.status); } ,get_LBRACKET: function() { return this.keyManager.checkStatusUnsafe(219,this.status); } ,get_RBRACKET: function() { return this.keyManager.checkStatusUnsafe(221,this.status); } ,get_BACKSLASH: function() { return this.keyManager.checkStatusUnsafe(220,this.status); } ,get_CAPSLOCK: function() { return this.keyManager.checkStatusUnsafe(20,this.status); } ,get_SCROLL_LOCK: function() { return this.keyManager.checkStatusUnsafe(145,this.status); } ,get_NUMLOCK: function() { return this.keyManager.checkStatusUnsafe(144,this.status); } ,get_SEMICOLON: function() { return this.keyManager.checkStatusUnsafe(186,this.status); } ,get_QUOTE: function() { return this.keyManager.checkStatusUnsafe(222,this.status); } ,get_ENTER: function() { return this.keyManager.checkStatusUnsafe(13,this.status); } ,get_SHIFT: function() { return this.keyManager.checkStatusUnsafe(16,this.status); } ,get_COMMA: function() { return this.keyManager.checkStatusUnsafe(188,this.status); } ,get_PERIOD: function() { return this.keyManager.checkStatusUnsafe(190,this.status); } ,get_SLASH: function() { return this.keyManager.checkStatusUnsafe(191,this.status); } ,get_GRAVEACCENT: function() { return this.keyManager.checkStatusUnsafe(192,this.status); } ,get_CONTROL: function() { return this.keyManager.checkStatusUnsafe(17,this.status); } ,get_ALT: function() { return this.keyManager.checkStatusUnsafe(18,this.status); } ,get_SPACE: function() { return this.keyManager.checkStatusUnsafe(32,this.status); } ,get_UP: function() { return this.keyManager.checkStatusUnsafe(38,this.status); } ,get_DOWN: function() { return this.keyManager.checkStatusUnsafe(40,this.status); } ,get_LEFT: function() { return this.keyManager.checkStatusUnsafe(37,this.status); } ,get_RIGHT: function() { return this.keyManager.checkStatusUnsafe(39,this.status); } ,get_TAB: function() { return this.keyManager.checkStatusUnsafe(9,this.status); } ,get_WINDOWS: function() { return this.keyManager.checkStatusUnsafe(15,this.status); } ,get_MENU: function() { return this.keyManager.checkStatusUnsafe(302,this.status); } ,get_PRINTSCREEN: function() { return this.keyManager.checkStatusUnsafe(301,this.status); } ,get_BREAK: function() { return this.keyManager.checkStatusUnsafe(19,this.status); } ,get_F1: function() { return this.keyManager.checkStatusUnsafe(112,this.status); } ,get_F2: function() { return this.keyManager.checkStatusUnsafe(113,this.status); } ,get_F3: function() { return this.keyManager.checkStatusUnsafe(114,this.status); } ,get_F4: function() { return this.keyManager.checkStatusUnsafe(115,this.status); } ,get_F5: function() { return this.keyManager.checkStatusUnsafe(116,this.status); } ,get_F6: function() { return this.keyManager.checkStatusUnsafe(117,this.status); } ,get_F7: function() { return this.keyManager.checkStatusUnsafe(118,this.status); } ,get_F8: function() { return this.keyManager.checkStatusUnsafe(119,this.status); } ,get_F9: function() { return this.keyManager.checkStatusUnsafe(120,this.status); } ,get_F10: function() { return this.keyManager.checkStatusUnsafe(121,this.status); } ,get_F11: function() { return this.keyManager.checkStatusUnsafe(122,this.status); } ,get_F12: function() { return this.keyManager.checkStatusUnsafe(123,this.status); } ,get_NUMPADONE: function() { return this.keyManager.checkStatusUnsafe(97,this.status); } ,get_NUMPADTWO: function() { return this.keyManager.checkStatusUnsafe(98,this.status); } ,get_NUMPADTHREE: function() { return this.keyManager.checkStatusUnsafe(99,this.status); } ,get_NUMPADFOUR: function() { return this.keyManager.checkStatusUnsafe(100,this.status); } ,get_NUMPADFIVE: function() { return this.keyManager.checkStatusUnsafe(101,this.status); } ,get_NUMPADSIX: function() { return this.keyManager.checkStatusUnsafe(102,this.status); } ,get_NUMPADSEVEN: function() { return this.keyManager.checkStatusUnsafe(103,this.status); } ,get_NUMPADEIGHT: function() { return this.keyManager.checkStatusUnsafe(104,this.status); } ,get_NUMPADNINE: function() { return this.keyManager.checkStatusUnsafe(105,this.status); } ,get_NUMPADZERO: function() { return this.keyManager.checkStatusUnsafe(96,this.status); } ,get_NUMPADMINUS: function() { return this.keyManager.checkStatusUnsafe(109,this.status); } ,get_NUMPADPLUS: function() { return this.keyManager.checkStatusUnsafe(107,this.status); } ,get_NUMPADPERIOD: function() { return this.keyManager.checkStatusUnsafe(110,this.status); } ,get_NUMPADMULTIPLY: function() { return this.keyManager.checkStatusUnsafe(106,this.status); } ,get_NUMPADSLASH: function() { return this.keyManager.checkStatusUnsafe(111,this.status); } ,__class__: flixel_input_keyboard_FlxKeyList ,__properties__: $extend(flixel_input_FlxBaseKeyList.prototype.__properties__,{get_NUMPADSLASH:"get_NUMPADSLASH",get_NUMPADMULTIPLY:"get_NUMPADMULTIPLY",get_NUMPADPERIOD:"get_NUMPADPERIOD",get_NUMPADPLUS:"get_NUMPADPLUS",get_NUMPADMINUS:"get_NUMPADMINUS",get_NUMPADZERO:"get_NUMPADZERO",get_NUMPADNINE:"get_NUMPADNINE",get_NUMPADEIGHT:"get_NUMPADEIGHT",get_NUMPADSEVEN:"get_NUMPADSEVEN",get_NUMPADSIX:"get_NUMPADSIX",get_NUMPADFIVE:"get_NUMPADFIVE",get_NUMPADFOUR:"get_NUMPADFOUR",get_NUMPADTHREE:"get_NUMPADTHREE",get_NUMPADTWO:"get_NUMPADTWO",get_NUMPADONE:"get_NUMPADONE",get_F12:"get_F12",get_F11:"get_F11",get_F10:"get_F10",get_F9:"get_F9",get_F8:"get_F8",get_F7:"get_F7",get_F6:"get_F6",get_F5:"get_F5",get_F4:"get_F4",get_F3:"get_F3",get_F2:"get_F2",get_F1:"get_F1",get_BREAK:"get_BREAK",get_PRINTSCREEN:"get_PRINTSCREEN",get_MENU:"get_MENU",get_WINDOWS:"get_WINDOWS",get_TAB:"get_TAB",get_RIGHT:"get_RIGHT",get_LEFT:"get_LEFT",get_DOWN:"get_DOWN",get_UP:"get_UP",get_SPACE:"get_SPACE",get_ALT:"get_ALT",get_CONTROL:"get_CONTROL",get_GRAVEACCENT:"get_GRAVEACCENT",get_SLASH:"get_SLASH",get_PERIOD:"get_PERIOD",get_COMMA:"get_COMMA",get_SHIFT:"get_SHIFT",get_ENTER:"get_ENTER",get_QUOTE:"get_QUOTE",get_SEMICOLON:"get_SEMICOLON",get_NUMLOCK:"get_NUMLOCK",get_SCROLL_LOCK:"get_SCROLL_LOCK",get_CAPSLOCK:"get_CAPSLOCK",get_BACKSLASH:"get_BACKSLASH",get_RBRACKET:"get_RBRACKET",get_LBRACKET:"get_LBRACKET",get_BACKSPACE:"get_BACKSPACE",get_DELETE:"get_DELETE",get_PLUS:"get_PLUS",get_MINUS:"get_MINUS",get_ESCAPE:"get_ESCAPE",get_INSERT:"get_INSERT",get_END:"get_END",get_HOME:"get_HOME",get_PAGEDOWN:"get_PAGEDOWN",get_PAGEUP:"get_PAGEUP",get_NINE:"get_NINE",get_EIGHT:"get_EIGHT",get_SEVEN:"get_SEVEN",get_SIX:"get_SIX",get_FIVE:"get_FIVE",get_FOUR:"get_FOUR",get_THREE:"get_THREE",get_TWO:"get_TWO",get_ONE:"get_ONE",get_ZERO:"get_ZERO",get_Z:"get_Z",get_Y:"get_Y",get_X:"get_X",get_W:"get_W",get_V:"get_V",get_U:"get_U",get_T:"get_T",get_S:"get_S",get_R:"get_R",get_Q:"get_Q",get_P:"get_P",get_O:"get_O",get_N:"get_N",get_M:"get_M",get_L:"get_L",get_K:"get_K",get_J:"get_J",get_I:"get_I",get_H:"get_H",get_G:"get_G",get_F:"get_F",get_E:"get_E",get_D:"get_D",get_C:"get_C",get_B:"get_B",get_A:"get_A"}) }); var flixel_input_keyboard_FlxKeyboard = function() { flixel_input_FlxKeyManager.call(this,function(status,keyManager) { return new flixel_input_keyboard_FlxKeyList(status,keyManager); }); this.preventDefaultKeys = [38,40,37,39,32,9]; var h = flixel_input_keyboard_FlxKey.fromStringMap.h; var code_h = h; var code_keys = Object.keys(h); var code_length = code_keys.length; var code_current = 0; while(code_current < code_length) { var code = code_h[code_keys[code_current++]]; if(code != -2 && code != -1) { var input = new flixel_input_FlxInput(code); this._keyListArray.push(input); this._keyListMap.h[code] = input; } } }; $hxClasses["flixel.input.keyboard.FlxKeyboard"] = flixel_input_keyboard_FlxKeyboard; flixel_input_keyboard_FlxKeyboard.__name__ = "flixel.input.keyboard.FlxKeyboard"; flixel_input_keyboard_FlxKeyboard.__super__ = flixel_input_FlxKeyManager; flixel_input_keyboard_FlxKeyboard.prototype = $extend(flixel_input_FlxKeyManager.prototype,{ onKeyUp: function(event) { flixel_input_FlxKeyManager.prototype.onKeyUp.call(this,event); } ,onKeyDown: function(event) { flixel_input_FlxKeyManager.prototype.onKeyDown.call(this,event); } ,resolveKeyCode: function(e) { return e.keyCode; } ,record: function() { var data = null; var _g = 0; var _g1 = this._keyListArray; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key == null || (key.current == 0 || key.current == -1)) { continue; } if(data == null) { data = []; } data.push(new flixel_system_replay_CodeValuePair(key.ID,key.current)); } return data; } ,playback: function(Record) { var i = 0; var l = Record.length; while(i < l) { var o = Record[i++]; var o2 = this._keyListMap.h[o.code]; o2.current = o.value; } } ,__class__: flixel_input_keyboard_FlxKeyboard }); var flixel_input_mouse__$FlxMouse_GraphicCursor = 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(flixel_input_mouse__$FlxMouse_GraphicCursor.preload != null) { this.__fromImage(flixel_input_mouse__$FlxMouse_GraphicCursor.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_input_mouse__$FlxMouse_GraphicCursor.resourceName),flixel_input_mouse__$FlxMouse_GraphicCursor.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_input_mouse__$FlxMouse_GraphicCursor.preload == null) { flixel_input_mouse__$FlxMouse_GraphicCursor.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.input.mouse._FlxMouse.GraphicCursor"] = flixel_input_mouse__$FlxMouse_GraphicCursor; flixel_input_mouse__$FlxMouse_GraphicCursor.__name__ = "flixel.input.mouse._FlxMouse.GraphicCursor"; flixel_input_mouse__$FlxMouse_GraphicCursor.preload = null; flixel_input_mouse__$FlxMouse_GraphicCursor.__super__ = openfl_display_BitmapData; flixel_input_mouse__$FlxMouse_GraphicCursor.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_input_mouse__$FlxMouse_GraphicCursor }); var flixel_input_mouse_FlxMouseButton = function(ID) { this.justPressedTimeInTicks = -1; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.justPressedPosition = point; flixel_input_FlxInput.call(this,ID); }; $hxClasses["flixel.input.mouse.FlxMouseButton"] = flixel_input_mouse_FlxMouseButton; flixel_input_mouse_FlxMouseButton.__name__ = "flixel.input.mouse.FlxMouseButton"; flixel_input_mouse_FlxMouseButton.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_mouse_FlxMouseButton.getByID = function(id) { switch(id) { case -3: return flixel_FlxG.mouse._rightButton; case -2: return flixel_FlxG.mouse._middleButton; case -1: return flixel_FlxG.mouse._leftButton; } }; flixel_input_mouse_FlxMouseButton.__super__ = flixel_input_FlxInput; flixel_input_mouse_FlxMouseButton.prototype = $extend(flixel_input_FlxInput.prototype,{ justPressedPosition: null ,justPressedTimeInTicks: null ,update: function() { flixel_input_FlxInput.prototype.update.call(this); if(this.current == 2) { var this1 = this.justPressedPosition; var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.justPressedTimeInTicks = flixel_FlxG.game.ticks; } else if(this.current == -1) { flixel_FlxG.swipes.push(new flixel_input_FlxSwipe(this.ID,this.justPressedPosition,flixel_FlxG.mouse.getScreenPosition(),this.justPressedTimeInTicks)); } } ,destroy: function() { this.justPressedPosition = flixel_util_FlxDestroyUtil.put(this.justPressedPosition); } ,onDown: function(_) { if(flixel_FlxG.mouse.enabled) { this.press(); } } ,onUp: function(_) { if(flixel_FlxG.mouse.enabled) { this.release(); } } ,__class__: flixel_input_mouse_FlxMouseButton }); var flixel_input_mouse_FlxMouseEvent = function(object,onMouseDown,onMouseUp,onMouseOver,onMouseOut,mouseChildren,mouseEnabled,pixelPerfect,mouseButtons) { this.object = object; this.onMouseDown = onMouseDown; this.onMouseUp = onMouseUp; this.onMouseOver = onMouseOver; this.onMouseOut = onMouseOut; this.mouseChildren = mouseChildren; this.mouseEnabled = mouseEnabled; this.pixelPerfect = pixelPerfect; this.mouseButtons = mouseButtons == null ? [-1] : mouseButtons; if(((object) instanceof flixel_FlxSprite)) { this.sprite = object; } }; $hxClasses["flixel.input.mouse.FlxMouseEvent"] = flixel_input_mouse_FlxMouseEvent; flixel_input_mouse_FlxMouseEvent.__name__ = "flixel.input.mouse.FlxMouseEvent"; flixel_input_mouse_FlxMouseEvent.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_input_mouse_FlxMouseEvent.globalManager = null; flixel_input_mouse_FlxMouseEvent.add = function(object,onMouseDown,onMouseUp,onMouseOver,onMouseOut,mouseChildren,mouseEnabled,pixelPerfect,mouseButtons) { if(pixelPerfect == null) { pixelPerfect = true; } if(mouseEnabled == null) { mouseEnabled = true; } if(mouseChildren == null) { mouseChildren = false; } return flixel_input_mouse_FlxMouseEvent.globalManager.add(object,onMouseDown,onMouseUp,onMouseOver,onMouseOut,mouseChildren,mouseEnabled,pixelPerfect,mouseButtons); }; flixel_input_mouse_FlxMouseEvent.remove = function(object) { return flixel_input_mouse_FlxMouseEvent.globalManager.remove(object); }; flixel_input_mouse_FlxMouseEvent.removeAll = function() { flixel_input_mouse_FlxMouseEvent.globalManager.removeAll(); }; flixel_input_mouse_FlxMouseEvent.reorder = function() { flixel_input_mouse_FlxMouseEvent.globalManager.reorder(); }; flixel_input_mouse_FlxMouseEvent.setMouseDownCallback = function(object,onMouseDown) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseDownCallback(object,onMouseDown); }; flixel_input_mouse_FlxMouseEvent.setMouseUpCallback = function(object,onMouseUp) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseUpCallback(object,onMouseUp); }; flixel_input_mouse_FlxMouseEvent.setMouseClickCallback = function(object,onMouseClick) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseClickCallback(object,onMouseClick); }; flixel_input_mouse_FlxMouseEvent.setMouseDoubleClickCallback = function(object,onMouseDoubleClick) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseDoubleClickCallback(object,onMouseDoubleClick); }; flixel_input_mouse_FlxMouseEvent.setMouseOverCallback = function(object,onMouseOver) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseOverCallback(object,onMouseOver); }; flixel_input_mouse_FlxMouseEvent.setMouseOutCallback = function(object,onMouseOut) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseOutCallback(object,onMouseOut); }; flixel_input_mouse_FlxMouseEvent.setMouseMoveCallback = function(object,onMouseMove) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseMoveCallback(object,onMouseMove); }; flixel_input_mouse_FlxMouseEvent.setMouseWheelCallback = function(object,onMouseWheel) { flixel_input_mouse_FlxMouseEvent.globalManager.setMouseWheelCallback(object,onMouseWheel); }; flixel_input_mouse_FlxMouseEvent.setObjectMouseEnabled = function(object,mouseEnabled) { flixel_input_mouse_FlxMouseEvent.globalManager.setObjectMouseEnabled(object,mouseEnabled); }; flixel_input_mouse_FlxMouseEvent.isObjectMouseEnabled = function(object) { return flixel_input_mouse_FlxMouseEvent.globalManager.isObjectMouseEnabled(object); }; flixel_input_mouse_FlxMouseEvent.setObjectMouseChildren = function(object,mouseChildren) { flixel_input_mouse_FlxMouseEvent.globalManager.setObjectMouseChildren(object,mouseChildren); }; flixel_input_mouse_FlxMouseEvent.isObjectMouseChildren = function(object) { return flixel_input_mouse_FlxMouseEvent.globalManager.isObjectMouseChildren(object); }; flixel_input_mouse_FlxMouseEvent.setObjectMouseButtons = function(object,mouseButtons) { flixel_input_mouse_FlxMouseEvent.globalManager.setObjectMouseButtons(object,mouseButtons); }; flixel_input_mouse_FlxMouseEvent.prototype = { object: null ,onMouseDown: null ,onMouseUp: null ,onMouseClick: null ,onMouseDoubleClick: null ,onMouseOver: null ,onMouseOut: null ,onMouseMove: null ,onMouseWheel: null ,mouseChildren: null ,mouseEnabled: null ,pixelPerfect: null ,sprite: null ,mouseButtons: null ,currentMouseButton: null ,destroy: function() { this.object = null; this.sprite = null; this.onMouseDown = null; this.onMouseUp = null; this.onMouseClick = null; this.onMouseDoubleClick = null; this.onMouseOver = null; this.onMouseOut = null; this.onMouseMove = null; this.onMouseWheel = null; this.mouseButtons = null; } ,__class__: flixel_input_mouse_FlxMouseEvent }; var flixel_input_mouse_FlxMouseEventManager = function() { this.maxDoubleClickDelay = 500; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._point = point; this.mouseClickedTime = -1; this._clickList = []; this._downList = []; this._overList = []; this._list = []; flixel_FlxBasic.call(this); if(this._list != null) { this.clearRegistry(); } this._list = []; this._overList = []; this._downList = []; this._clickList = []; flixel_FlxG.signals.preStateSwitch.add($bind(this,this.removeAll)); }; $hxClasses["flixel.input.mouse.FlxMouseEventManager"] = flixel_input_mouse_FlxMouseEventManager; flixel_input_mouse_FlxMouseEventManager.__name__ = "flixel.input.mouse.FlxMouseEventManager"; flixel_input_mouse_FlxMouseEventManager.__super__ = flixel_FlxBasic; flixel_input_mouse_FlxMouseEventManager.prototype = $extend(flixel_FlxBasic.prototype,{ _list: null ,_overList: null ,_downList: null ,_clickList: null ,mouseClickedTime: null ,_point: null ,maxDoubleClickDelay: null ,destroy: function() { this.clearRegistry(); this._point = flixel_util_FlxDestroyUtil.put(this._point); flixel_FlxG.signals.preStateSwitch.remove($bind(this,this.removeAll)); flixel_FlxBasic.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var currentOverObjects = []; var _g = 0; var _g1 = this._list; while(_g < _g1.length) { var event = _g1[_g]; ++_g; if(!event.object.alive || !event.object.exists || !event.object.visible || !event.mouseEnabled) { continue; } if(this.checkOverlap(event)) { currentOverObjects.push(event); if(!event.mouseChildren) { break; } } } var _g = 0; var _g1 = this._overList; while(_g < _g1.length) { var over = _g1[_g]; ++_g; if(over.onMouseOut != null) { if(!over.object.exists || !over.object.visible || this.get(over.object,currentOverObjects) == null) { over.onMouseOut(over.object); } } } var _g = 0; while(_g < currentOverObjects.length) { var current = currentOverObjects[_g]; ++_g; if(current.onMouseOver != null) { if(current.object.exists && current.object.visible && this.get(current.object,this._overList) == null) { current.onMouseOver(current.object); } } } if(!flixel_FlxG.mouse.enabled) { return; } var _this = flixel_FlxG.mouse; if(_this._prevX != _this.x || _this._prevY != _this.y) { var _g = 0; while(_g < currentOverObjects.length) { var current = currentOverObjects[_g]; ++_g; if(current.onMouseMove != null && current.object.exists && current.object.visible) { current.onMouseMove(current.object); } } } var _g = 0; while(_g < currentOverObjects.length) { var current = currentOverObjects[_g]; ++_g; if(current.onMouseDown != null && current.object.exists && current.object.visible) { var _g1 = 0; var _g2 = current.mouseButtons; while(_g1 < _g2.length) { var buttonID = _g2[_g1]; ++_g1; if(flixel_input_mouse_FlxMouseButton.getByID(buttonID).current == 2) { current.onMouseDown(current.object); } } } } if(flixel_FlxG.mouse._leftButton.current == 2) { var _g = 0; while(_g < currentOverObjects.length) { var current = currentOverObjects[_g]; ++_g; if((current.onMouseClick != null || current.onMouseDoubleClick != null) && current.object.exists && current.object.visible) { this._downList.push(current); } } } var _g = 0; while(_g < currentOverObjects.length) { var current = currentOverObjects[_g]; ++_g; if(current.onMouseUp != null && current.object.exists && current.object.visible) { var _g1 = 0; var _g2 = current.mouseButtons; while(_g1 < _g2.length) { var buttonID = _g2[_g1]; ++_g1; if(flixel_input_mouse_FlxMouseButton.getByID(buttonID).current == -1) { current.onMouseUp(current.object); } } } } if(this._clickList.length > 0 && flixel_FlxG.game.ticks - this.mouseClickedTime > this.maxDoubleClickDelay) { this._clickList = []; } if(flixel_FlxG.mouse._leftButton.current == -1) { this.mouseClickedTime = flixel_FlxG.game.ticks; var previousClickedObjects = this._clickList; if(this._clickList.length > 0) { this._clickList = []; } var _g = 0; var _g1 = this._downList; while(_g < _g1.length) { var down = _g1[_g]; ++_g; if(down.object != null && down.object.exists && down.object.visible && this.get(down.object,currentOverObjects) != null) { if(down.onMouseClick != null) { down.onMouseClick(down.object); } if(down.onMouseDoubleClick != null) { if(this.get(down.object,previousClickedObjects) != null) { down.onMouseDoubleClick(down.object); } else { this._clickList.push(down); } } } } } var tmp; if(this._downList.length > 0) { var _this = flixel_FlxG.mouse._leftButton; tmp = !(_this.current == 1 || _this.current == 2); } else { tmp = false; } if(tmp) { this._downList = []; } if(flixel_FlxG.mouse.wheel != 0) { var _g = 0; while(_g < currentOverObjects.length) { var current = currentOverObjects[_g]; ++_g; if(current.onMouseWheel != null && current.object.exists && current.object.visible) { current.onMouseWheel(current.object); } } } this._overList = currentOverObjects; } ,addEvent: function(event) { if(!event.mouseChildren) { this._list.unshift(event); } else { var index = 0; while(index < this._list.length && !this._list[index].mouseChildren) ++index; this._list.splice(index,0,event); } return event; } ,add: function(object,onMouseDown,onMouseUp,onMouseOver,onMouseOut,mouseChildren,mouseEnabled,pixelPerfect,mouseButtons) { if(pixelPerfect == null) { pixelPerfect = true; } if(mouseEnabled == null) { mouseEnabled = true; } if(mouseChildren == null) { mouseChildren = false; } var event = new flixel_input_mouse_FlxMouseEvent(object,onMouseDown,onMouseUp,onMouseOver,onMouseOut,mouseChildren,mouseEnabled,pixelPerfect,mouseButtons); this.addEvent(event); return object; } ,remove: function(object) { var _g = 0; var _g1 = this._list; while(_g < _g1.length) { var event = _g1[_g]; ++_g; if(event.object == object) { event.destroy(); HxOverrides.remove(this._list,event); } } return object; } ,removeAll: function() { if(this._list != null) { var _g = 0; var _g1 = this._list; while(_g < _g1.length) { var event = _g1[_g]; ++_g; event.destroy(); } } this._list.splice(0,this._list.length); this._overList = []; this._downList = []; this._clickList = []; } ,reorder: function() { var orderedObjects = []; this.traverseFlxGroup(flixel_FlxG.game._state,orderedObjects); orderedObjects.reverse(); this._list = orderedObjects; haxe_ds_ArraySort.sort(this._list,$bind(this,this.sortByMouseChildren)); } ,setMouseDownCallback: function(object,onMouseDown) { var event = this.get(object); if(event != null) { event.onMouseDown = onMouseDown; } } ,setMouseUpCallback: function(object,onMouseUp) { var event = this.get(object); if(event != null) { event.onMouseUp = onMouseUp; } } ,setMouseClickCallback: function(object,onMouseClick) { var event = this.get(object); if(event != null) { event.onMouseClick = onMouseClick; } } ,setMouseDoubleClickCallback: function(object,onMouseDoubleClick) { var event = this.get(object); if(event != null) { event.onMouseDoubleClick = onMouseDoubleClick; } } ,setMouseOverCallback: function(object,onMouseOver) { var event = this.get(object); if(event != null) { event.onMouseOver = onMouseOver; } } ,setMouseOutCallback: function(object,onMouseOut) { var event = this.get(object); if(event != null) { event.onMouseOut = onMouseOut; } } ,setMouseMoveCallback: function(object,onMouseMove) { var event = this.get(object); if(event != null) { event.onMouseMove = onMouseMove; } } ,setMouseWheelCallback: function(object,onMouseWheel) { var event = this.get(object); if(event != null) { event.onMouseWheel = onMouseWheel; } } ,setObjectMouseEnabled: function(object,MouseEnabled) { var event = this.get(object); if(event != null) { event.mouseEnabled = MouseEnabled; } } ,isObjectMouseEnabled: function(object) { var event = this.get(object); if(event != null) { return event.mouseEnabled; } else { return false; } } ,setObjectMouseChildren: function(object,mouseChildren) { var event = this.get(object); if(event != null) { event.mouseChildren = mouseChildren; HxOverrides.remove(this._list,event); if(!mouseChildren) { this._list.unshift(event); } else { var index = 0; while(index < this._list.length && !this._list[index].mouseChildren) ++index; this._list.splice(index,0,event); } } } ,isObjectMouseChildren: function(object) { var event = this.get(object); if(event != null) { return event.mouseChildren; } else { throw new openfl_errors_Error("FlxMouseEventManager , isObjectMouseChildren() : object not found"); } } ,setObjectMouseButtons: function(object,mouseButtons) { var event = this.get(object); if(event != null) { event.mouseButtons = mouseButtons; } } ,traverseFlxGroup: function(group,orderedObjects) { var _g = 0; var _g1 = group.members; while(_g < _g1.length) { var basic = _g1[_g]; ++_g; var group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { this.traverseFlxGroup(group,orderedObjects); } if(((basic) instanceof flixel_FlxObject)) { var event = this.get(basic); if(event != null) { orderedObjects.push(event); } } } } ,get: function(object,list) { if(list == null) { list = this._list; } var _g = 0; while(_g < list.length) { var event = list[_g]; ++_g; if(event.object == object) { return event; } } return null; } ,sortByMouseChildren: function(event1,event2) { if(event1.mouseChildren == event2.mouseChildren) { return 0; } if(!event1.mouseChildren) { return -1; } return 1; } ,clearRegistry: function() { this._overList = null; this._downList = null; this._clickList = null; this._list = flixel_util_FlxDestroyUtil.destroyArray(this._list); } ,checkOverlap: function(event) { var _g = 0; var _g1 = event.object.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; this._point = flixel_FlxG.mouse.getPositionInCameraView(camera,this._point); var point = this._point; var contained = point.x > camera.viewMarginX && point.x < camera.width - camera.viewMarginX && point.y > camera.viewMarginY && point.y < camera.height - camera.viewMarginY; if(point._weak) { point.put(); } if(contained) { this._point = flixel_FlxG.mouse.getWorldPosition(camera,this._point); var point1 = this._point; if(event.pixelPerfect && event.sprite != null ? event.sprite.pixelsOverlapPoint(point1,1,camera) : event.object.overlapsPoint(point1,true,camera)) { return true; } } var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var touch = _g3[_g2]; ++_g2; this._point = touch.getPositionInCameraView(camera,this._point); var point2 = this._point; var contained1 = point2.x > camera.viewMarginX && point2.x < camera.width - camera.viewMarginX && point2.y > camera.viewMarginY && point2.y < camera.height - camera.viewMarginY; if(point2._weak) { point2.put(); } if(contained1) { this._point = touch.getWorldPosition(camera,this._point); var point3 = this._point; if(event.pixelPerfect && event.sprite != null ? event.sprite.pixelsOverlapPoint(point3,1,camera) : event.object.overlapsPoint(point3,true,camera)) { return true; } } } } return false; } ,checkOverlapWithPoint: function(event,point,camera) { if(event.pixelPerfect && event.sprite != null) { return event.sprite.pixelsOverlapPoint(point,1,camera); } else { return event.object.overlapsPoint(point,true,camera); } } ,__class__: flixel_input_mouse_FlxMouseEventManager }); var flixel_input_touch_FlxTouch = function(x,y,pointID,pressure) { if(pressure == null) { pressure = 0; } if(pointID == null) { pointID = 0; } if(y == null) { y = 0; } if(x == null) { x = 0; } this.justPressedTimeInTicks = -1; var x1 = 0; var y1 = 0; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.justPressedPosition = point; this.flashPoint = new openfl_geom_Point(); flixel_input_FlxPointer.call(this); this.input = new flixel_input_FlxInput(pointID); this.setXY(x,y); this.pressure = pressure; }; $hxClasses["flixel.input.touch.FlxTouch"] = flixel_input_touch_FlxTouch; flixel_input_touch_FlxTouch.__name__ = "flixel.input.touch.FlxTouch"; flixel_input_touch_FlxTouch.__interfaces__ = [flixel_input_IFlxInput,flixel_util_IFlxDestroyable]; flixel_input_touch_FlxTouch.__super__ = flixel_input_FlxPointer; flixel_input_touch_FlxTouch.prototype = $extend(flixel_input_FlxPointer.prototype,{ pressure: null ,input: null ,flashPoint: null ,justPressedPosition: null ,justPressedTimeInTicks: null ,destroy: function() { this.input = null; this.justPressedPosition = flixel_util_FlxDestroyUtil.put(this.justPressedPosition); this.flashPoint = null; } ,recycle: function(x,y,pointID,pressure) { this.setXY(x,y); this.input.ID = pointID; this.input.reset(); this.pressure = pressure; } ,update: function() { this.input.update(); if(this.input.current == 2) { var this1 = this.justPressedPosition; var x = this.screenX; var y = this.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.justPressedTimeInTicks = flixel_FlxG.game.ticks; } else if(this.input.current == -1) { flixel_FlxG.swipes.push(new flixel_input_FlxSwipe(this.input.ID,this.justPressedPosition,this.getScreenPosition(),this.justPressedTimeInTicks)); } } ,setXY: function(X,Y) { this.flashPoint.setTo(X,Y); this.flashPoint = flixel_FlxG.game.globalToLocal(this.flashPoint); this._globalScreenX = this.flashPoint.x / flixel_FlxG.scaleMode.scale.x | 0; this._globalScreenY = this.flashPoint.y / flixel_FlxG.scaleMode.scale.y | 0; this.updatePositions(); } ,get_touchPointID: function() { return this.input.ID; } ,get_justReleased: function() { return this.input.current == -1; } ,get_released: function() { var _this = this.input; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_pressed: function() { var _this = this.input; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressed: function() { return this.input.current == 2; } ,__class__: flixel_input_touch_FlxTouch ,__properties__: {get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",get_touchPointID:"get_touchPointID"} }); var flixel_input_touch_FlxTouchManager = function() { this.list = []; this._inactiveTouches = []; this._touchesCache = new haxe_ds_IntMap(); flixel_input_touch_FlxTouchManager.maxTouchPoints = openfl_ui_Multitouch.maxTouchPoints; openfl_ui_Multitouch.inputMode = 2; openfl_Lib.get_current().stage.addEventListener("touchBegin",$bind(this,this.handleTouchBegin)); openfl_Lib.get_current().stage.addEventListener("touchEnd",$bind(this,this.handleTouchEnd)); openfl_Lib.get_current().stage.addEventListener("touchMove",$bind(this,this.handleTouchMove)); }; $hxClasses["flixel.input.touch.FlxTouchManager"] = flixel_input_touch_FlxTouchManager; flixel_input_touch_FlxTouchManager.__name__ = "flixel.input.touch.FlxTouchManager"; flixel_input_touch_FlxTouchManager.__interfaces__ = [flixel_input_IFlxInputManager]; flixel_input_touch_FlxTouchManager.prototype = { list: null ,_inactiveTouches: null ,_touchesCache: null ,getByID: function(TouchPointID) { return this._touchesCache.h[TouchPointID]; } ,getFirst: function() { if(this.list[0] != null) { return this.list[0]; } else { return null; } } ,destroy: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; touch.destroy(); } this.list = null; var _g = 0; var _g1 = this._inactiveTouches; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; touch.destroy(); } this._inactiveTouches = null; this._touchesCache = null; } ,justStarted: function(TouchArray) { if(TouchArray == null) { TouchArray = []; } var touchLen = TouchArray.length; if(touchLen > 0) { TouchArray.splice(0,touchLen); } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; if(touch.input.current == 2) { TouchArray.push(touch); } } return TouchArray; } ,justReleased: function(TouchArray) { if(TouchArray == null) { TouchArray = []; } var touchLen = TouchArray.length; if(touchLen > 0) { TouchArray.splice(0,touchLen); } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; if(touch.input.current == -1) { TouchArray.push(touch); } } return TouchArray; } ,reset: function() { var key = this._touchesCache.keys(); while(key.hasNext()) { var key1 = key.next(); this._touchesCache.remove(key1); } var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; touch.input.reset(); this._inactiveTouches.push(touch); } this.list.splice(0,this.list.length); } ,handleTouchBegin: function(FlashEvent) { var touch = this._touchesCache.h[FlashEvent.touchPointID]; if(touch != null) { touch.setXY(FlashEvent.stageX | 0,FlashEvent.stageY | 0); touch.pressure = FlashEvent.pressure; } else { touch = this.recycle(FlashEvent.stageX | 0,FlashEvent.stageY | 0,FlashEvent.touchPointID,FlashEvent.pressure); } touch.input.press(); } ,handleTouchEnd: function(FlashEvent) { var touch = this._touchesCache.h[FlashEvent.touchPointID]; if(touch != null) { touch.input.release(); } } ,handleTouchMove: function(FlashEvent) { var touch = this._touchesCache.h[FlashEvent.touchPointID]; if(touch != null) { touch.setXY(FlashEvent.stageX | 0,FlashEvent.stageY | 0); touch.pressure = FlashEvent.pressure; } } ,add: function(Touch1) { this.list.push(Touch1); this._touchesCache.h[Touch1.input.ID] = Touch1; return Touch1; } ,recycle: function(X,Y,PointID,pressure) { if(this._inactiveTouches.length > 0) { var touch = this._inactiveTouches.pop(); touch.recycle(X,Y,PointID,pressure); return this.add(touch); } return this.add(new flixel_input_touch_FlxTouch(X,Y,PointID,pressure)); } ,update: function() { var i = this.list.length - 1; var touch; while(i >= 0) { touch = this.list[i]; var _this = touch.input; if((_this.current == 0 || _this.current == -1) && touch.input.current != -1) { touch.input.reset(); this._touchesCache.remove(touch.input.ID); this.list.splice(i,1); this._inactiveTouches.push(touch); } else { touch.update(); } --i; } } ,onFocus: function() { } ,onFocusLost: function() { this.reset(); } ,__class__: flixel_input_touch_FlxTouchManager }; var flixel_math_FlxAngle = function() { }; $hxClasses["flixel.math.FlxAngle"] = flixel_math_FlxAngle; flixel_math_FlxAngle.__name__ = "flixel.math.FlxAngle"; flixel_math_FlxAngle.__properties__ = {get_TO_RAD:"get_TO_RAD",get_TO_DEG:"get_TO_DEG"}; flixel_math_FlxAngle.radiansFromOrigin = function(x,y) { var asDegrees = false; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxAngle.degreesFromOrigin = function(x,y) { var asDegrees = true; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxAngle.angleFromOrigin = function(x,y,asDegrees) { if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxAngle.wrapAngle = function(angle) { if(angle > 180) { angle = flixel_math_FlxAngle.wrapAngle(angle - 360); } else if(angle < -180) { angle = flixel_math_FlxAngle.wrapAngle(angle + 360); } return angle; }; flixel_math_FlxAngle.asDegrees = function(radians) { return radians * (180 / Math.PI); }; flixel_math_FlxAngle.asRadians = function(degrees) { return degrees * (Math.PI / 180); }; flixel_math_FlxAngle.angleBetween = function(SpriteA,SpriteB,AsDegrees) { if(AsDegrees == null) { AsDegrees = false; } var dx = SpriteB.x + SpriteB.origin.x - (SpriteA.x + SpriteA.origin.x); var dy = SpriteB.y + SpriteB.origin.y - (SpriteA.y + SpriteA.origin.y); var asDegrees = AsDegrees; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(dy,dx) * (180 / Math.PI); } else { return Math.atan2(dy,dx); } }; flixel_math_FlxAngle.degreesBetween = function(SpriteA,SpriteB) { return flixel_math_FlxAngle.angleBetween(SpriteA,SpriteB,true); }; flixel_math_FlxAngle.radiansBetween = function(SpriteA,SpriteB) { return flixel_math_FlxAngle.angleBetween(SpriteA,SpriteB,false); }; flixel_math_FlxAngle.angleBetweenPoint = function(Sprite,Target,AsDegrees) { if(AsDegrees == null) { AsDegrees = false; } var dx = Target.x - (Sprite.x + Sprite.origin.x); var dy = Target.y - (Sprite.y + Sprite.origin.y); if(Target._weak) { Target.put(); } var asDegrees = AsDegrees; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(dy,dx) * (180 / Math.PI); } else { return Math.atan2(dy,dx); } }; flixel_math_FlxAngle.degreesBetweenPoint = function(Sprite,Target) { return flixel_math_FlxAngle.angleBetweenPoint(Sprite,Target,true); }; flixel_math_FlxAngle.radiansBetweenPoint = function(Sprite,Target) { return flixel_math_FlxAngle.angleBetweenPoint(Sprite,Target,false); }; flixel_math_FlxAngle.angleBetweenMouse = function(Object1,AsDegrees) { if(AsDegrees == null) { AsDegrees = false; } if(Object1 == null) { return 0; } var p = Object1.getScreenPosition(); var dx = flixel_FlxG.mouse.screenX - p.x; var dy = flixel_FlxG.mouse.screenY - p.y; p.put(); var asDegrees = AsDegrees; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(dy,dx) * (180 / Math.PI); } else { return Math.atan2(dy,dx); } }; flixel_math_FlxAngle.degreesBetweenMouse = function(Object1) { return flixel_math_FlxAngle.angleBetweenMouse(Object1,true); }; flixel_math_FlxAngle.radiansBetweenMouse = function(Object1) { return flixel_math_FlxAngle.angleBetweenMouse(Object1,false); }; flixel_math_FlxAngle.angleBetweenTouch = function(Object1,Touch1,AsDegrees) { if(AsDegrees == null) { AsDegrees = false; } var p = Object1.getScreenPosition(); var dx = Touch1.screenX - p.x; var dy = Touch1.screenY - p.y; p.put(); var asDegrees = AsDegrees; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(dy,dx) * (180 / Math.PI); } else { return Math.atan2(dy,dx); } }; flixel_math_FlxAngle.degreesBetweenTouch = function(Object1,Touch1) { return flixel_math_FlxAngle.angleBetweenTouch(Object1,Touch1,true); }; flixel_math_FlxAngle.radiansBetweenTouch = function(Object1,Touch1) { return flixel_math_FlxAngle.angleBetweenTouch(Object1,Touch1,false); }; flixel_math_FlxAngle.angleFromFacing = function(Facing,AsDegrees) { if(AsDegrees == null) { AsDegrees = false; } var degrees = flixel_util_FlxDirectionFlags.get_degrees(Facing); if(AsDegrees) { return degrees; } else { return degrees * (Math.PI / 180); } }; flixel_math_FlxAngle.getCartesianCoords = function(Radius,Angle,point) { var p = point; if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } p.set_x(Radius * Math.cos(Angle * (Math.PI / 180))); p.set_y(Radius * Math.sin(Angle * (Math.PI / 180))); return p; }; flixel_math_FlxAngle.getPolarCoords = function(X,Y,point) { var p = point; if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } p.set_x(Math.sqrt(X * X + Y * Y)); var asDegrees = true; if(asDegrees == null) { asDegrees = false; } p.set_y(asDegrees ? Math.atan2(Y,X) * (180 / Math.PI) : Math.atan2(Y,X)); return p; }; flixel_math_FlxAngle.get_TO_DEG = function() { return 180 / Math.PI; }; flixel_math_FlxAngle.get_TO_RAD = function() { return Math.PI / 180; }; var flixel_math_FlxMath = function() { }; $hxClasses["flixel.math.FlxMath"] = flixel_math_FlxMath; flixel_math_FlxMath.__name__ = "flixel.math.FlxMath"; flixel_math_FlxMath.roundDecimal = function(Value,Precision) { var mult = 1; var _g = 0; var _g1 = Precision; while(_g < _g1) { var i = _g++; mult *= 10; } return Math.round(Value * mult) / mult; }; flixel_math_FlxMath.bound = function(Value,Min,Max) { var lowerBound = Min != null && Value < Min ? Min : Value; if(Max != null && lowerBound > Max) { return Max; } else { return lowerBound; } }; flixel_math_FlxMath.lerp = function(a,b,ratio) { return a + ratio * (b - a); }; flixel_math_FlxMath.inBounds = function(Value,Min,Max) { if(Min == null || Value >= Min) { if(Max != null) { return Value <= Max; } else { return true; } } else { return false; } }; flixel_math_FlxMath.isOdd = function(n) { return ((n | 0) & 1) != 0; }; flixel_math_FlxMath.isEven = function(n) { return ((n | 0) & 1) == 0; }; flixel_math_FlxMath.numericComparison = function(a,b) { if(b > a) { return -1; } else if(a > b) { return 1; } return 0; }; flixel_math_FlxMath.pointInCoordinates = function(pointX,pointY,rectX,rectY,rectWidth,rectHeight) { if(pointX >= rectX && pointX <= rectX + rectWidth) { if(pointY >= rectY && pointY <= rectY + rectHeight) { return true; } } return false; }; flixel_math_FlxMath.pointInFlxRect = function(pointX,pointY,rect) { if(pointX >= rect.x && pointX <= rect.x + rect.width && pointY >= rect.y) { return pointY <= rect.y + rect.height; } else { return false; } }; flixel_math_FlxMath.mouseInFlxRect = function(useWorldCoords,rect) { if(rect == null) { return true; } if(useWorldCoords) { return flixel_math_FlxMath.pointInFlxRect(Math.floor(flixel_FlxG.mouse.x),Math.floor(flixel_FlxG.mouse.y),rect); } else { return flixel_math_FlxMath.pointInFlxRect(flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY,rect); } }; flixel_math_FlxMath.pointInRectangle = function(pointX,pointY,rect) { if(pointX >= rect.x && pointX <= rect.get_right() && pointY >= rect.y) { return pointY <= rect.get_bottom(); } else { return false; } }; flixel_math_FlxMath.maxAdd = function(value,amount,max,min) { if(min == null) { min = 0; } value += amount; if(value > max) { value = max; } else if(value <= min) { value = min; } return value; }; flixel_math_FlxMath.wrap = function(value,min,max) { var range = max - min + 1; if(value < min) { value += range * ((min - value) / range + 1 | 0); } return min + (value - min) % range; }; flixel_math_FlxMath.remapToRange = function(value,start1,stop1,start2,stop2) { return start2 + (value - start1) * ((stop2 - start2) / (stop1 - start1)); }; flixel_math_FlxMath.dotProduct = function(ax,ay,bx,by) { return ax * bx + ay * by; }; flixel_math_FlxMath.vectorLength = function(dx,dy) { return Math.sqrt(dx * dx + dy * dy); }; flixel_math_FlxMath.distanceBetween = function(SpriteA,SpriteB) { var dx = SpriteA.x + SpriteA.origin.x - (SpriteB.x + SpriteB.origin.x); var dy = SpriteA.y + SpriteA.origin.y - (SpriteB.y + SpriteB.origin.y); return Math.sqrt(dx * dx + dy * dy) | 0; }; flixel_math_FlxMath.isDistanceWithin = function(SpriteA,SpriteB,Distance,IncludeEqual) { if(IncludeEqual == null) { IncludeEqual = false; } var dx = SpriteA.x + SpriteA.origin.x - (SpriteB.x + SpriteB.origin.x); var dy = SpriteA.y + SpriteA.origin.y - (SpriteB.y + SpriteB.origin.y); if(IncludeEqual) { return dx * dx + dy * dy <= Distance * Distance; } else { return dx * dx + dy * dy < Distance * Distance; } }; flixel_math_FlxMath.distanceToPoint = function(Sprite,Target) { var dx = Sprite.x + Sprite.origin.x - Target.x; var dy = Sprite.y + Sprite.origin.y - Target.y; if(Target._weak) { Target.put(); } return Math.sqrt(dx * dx + dy * dy) | 0; }; flixel_math_FlxMath.isDistanceToPointWithin = function(Sprite,Target,Distance,IncludeEqual) { if(IncludeEqual == null) { IncludeEqual = false; } var dx = Sprite.x + Sprite.origin.x - Target.x; var dy = Sprite.y + Sprite.origin.y - Target.y; if(Target._weak) { Target.put(); } if(IncludeEqual) { return dx * dx + dy * dy <= Distance * Distance; } else { return dx * dx + dy * dy < Distance * Distance; } }; flixel_math_FlxMath.distanceToMouse = function(Sprite) { var dx = Sprite.x + Sprite.origin.x - flixel_FlxG.mouse.screenX; var dy = Sprite.y + Sprite.origin.y - flixel_FlxG.mouse.screenY; return Math.sqrt(dx * dx + dy * dy) | 0; }; flixel_math_FlxMath.isDistanceToMouseWithin = function(Sprite,Distance,IncludeEqual) { if(IncludeEqual == null) { IncludeEqual = false; } var dx = Sprite.x + Sprite.origin.x - flixel_FlxG.mouse.screenX; var dy = Sprite.y + Sprite.origin.y - flixel_FlxG.mouse.screenY; if(IncludeEqual) { return dx * dx + dy * dy <= Distance * Distance; } else { return dx * dx + dy * dy < Distance * Distance; } }; flixel_math_FlxMath.distanceToTouch = function(Sprite,Touch1) { var dx = Sprite.x + Sprite.origin.x - Touch1.screenX; var dy = Sprite.y + Sprite.origin.y - Touch1.screenY; return Math.sqrt(dx * dx + dy * dy) | 0; }; flixel_math_FlxMath.isDistanceToTouchWithin = function(Sprite,Touch1,Distance,IncludeEqual) { if(IncludeEqual == null) { IncludeEqual = false; } var dx = Sprite.x + Sprite.origin.x - Touch1.screenX; var dy = Sprite.y + Sprite.origin.y - Touch1.screenY; if(IncludeEqual) { return dx * dx + dy * dy <= Distance * Distance; } else { return dx * dx + dy * dy < Distance * Distance; } }; flixel_math_FlxMath.getDecimals = function(n) { var helperArray = (n == null ? "null" : "" + n).split("."); var decimals = 0; if(helperArray.length > 1) { decimals = helperArray[1].length; } return decimals; }; flixel_math_FlxMath.equal = function(aValueA,aValueB,aDiff) { if(aDiff == null) { aDiff = 0.0000001; } return Math.abs(aValueA - aValueB) <= aDiff; }; flixel_math_FlxMath.signOf = function(n) { if(n < 0) { return -1; } else { return 1; } }; flixel_math_FlxMath.sameSign = function(a,b) { return (a < 0 ? -1 : 1) == (b < 0 ? -1 : 1); }; flixel_math_FlxMath.fastSin = function(n) { n *= 0.3183098862; if(n > 1) { n -= Math.ceil(n) >> 1 << 1; } else if(n < -1) { n += Math.ceil(-n) >> 1 << 1; } if(n > 0) { return n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))); } else { return n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6))); } }; flixel_math_FlxMath.fastCos = function(n) { var n1 = n + 1.570796327; n1 *= 0.3183098862; if(n1 > 1) { n1 -= Math.ceil(n1) >> 1 << 1; } else if(n1 < -1) { n1 += Math.ceil(-n1) >> 1 << 1; } if(n1 > 0) { return n1 * (3.1 + n1 * (0.5 + n1 * (-7.2 + n1 * 3.6))); } else { return n1 * (3.1 - n1 * (0.5 + n1 * (7.2 + n1 * 3.6))); } }; flixel_math_FlxMath.sinh = function(n) { return (Math.exp(n) - Math.exp(-n)) / 2; }; flixel_math_FlxMath.maxInt = function(a,b) { if(a > b) { return a; } else { return b; } }; flixel_math_FlxMath.minInt = function(a,b) { if(a > b) { return b; } else { return a; } }; flixel_math_FlxMath.absInt = function(n) { if(n > 0) { return n; } else { return -n; } }; var flixel_math_FlxPoint = {}; flixel_math_FlxPoint.__properties__ = {get_ly:"get_ly",get_lx:"get_lx",get_ry:"get_ry",get_rx:"get_rx",set_radians:"set_radians",get_radians:"get_radians",set_degrees:"set_degrees",get_degrees:"get_degrees",get_lengthSquared:"get_lengthSquared",set_length:"set_length",get_length:"get_length",get_dy:"get_dy",get_dx:"get_dx",set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x"}; flixel_math_FlxPoint.get = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; return point; }; flixel_math_FlxPoint.weak = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; return point1; }; flixel_math_FlxPoint.plusOp = function(a,b) { var x = a.x + b.x; var y = a.y + b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } if(b._weak) { b.put(); } return result; }; flixel_math_FlxPoint.minusOp = function(a,b) { var x = a.x - b.x; var y = a.y - b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } if(b._weak) { b.put(); } return result; }; flixel_math_FlxPoint.scaleOp = function(a,b) { var x = a.x * b; var y = a.y * b; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } return result; }; flixel_math_FlxPoint.divideOp = function(a,b) { var x = a.x / b; var y = a.y / b; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } return result; }; flixel_math_FlxPoint.plusEqualOp = function(a,b) { var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } a.set_x(a.x + x); a.set_y(a.y + y); if(b._weak) { b.put(); } return a; }; flixel_math_FlxPoint.minusEqualOp = function(a,b) { var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } a.set_x(a.x - x); a.set_y(a.y - y); if(b._weak) { b.put(); } return a; }; flixel_math_FlxPoint.scaleEqualOp = function(a,b) { var y = null; if(y == null) { y = b; } a.set_x(a.x * b); a.set_y(a.y * y); return a; }; flixel_math_FlxPoint.plusFlashOp = function(a,b) { var x = a.x + b.x; var y = a.y + b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } return result; }; flixel_math_FlxPoint.minusFlashOp = function(a,b) { var x = a.x - b.x; var y = a.y - b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } return result; }; flixel_math_FlxPoint.minusFlashOp2 = function(a,b) { var x = a.x - b.x; var y = a.y - b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(b._weak) { b.put(); } return result; }; flixel_math_FlxPoint.plusEqualFlashOp = function(a,b) { var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } a.set_x(a.x + x); a.set_y(a.y + y); return a; }; flixel_math_FlxPoint.minusEqualFlashOp = function(a,b) { var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } a.set_x(a.x - x); a.set_y(a.y - y); return a; }; flixel_math_FlxPoint._new = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); }; flixel_math_FlxPoint.set = function(this1,x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return this1; }; flixel_math_FlxPoint.add = function(this1,x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); return this1; }; flixel_math_FlxPoint.addPoint = function(this1,point) { var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(point._weak) { point.put(); } return this1; }; flixel_math_FlxPoint.subtract = function(this1,x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); return this1; }; flixel_math_FlxPoint.subtractPoint = function(this1,point) { var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } return this1; }; flixel_math_FlxPoint.scale = function(this1,x,y) { if(y == null) { y = x; } this1.set_x(this1.x * x); this1.set_y(this1.y * y); return this1; }; flixel_math_FlxPoint.scalePoint = function(this1,point) { var x = point.x; var y = point.y; if(y == null) { y = x; } this1.set_x(this1.x * x); this1.set_y(this1.y * y); if(point._weak) { point.put(); } return this1; }; flixel_math_FlxPoint.scaleNew = function(this1,k) { var p = null; if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); var this1 = p; var y = null; if(y == null) { y = k; } this1.set_x(this1.x * k); this1.set_y(this1.y * y); return this1; }; flixel_math_FlxPoint.addNew = function(this1,p) { var p1 = null; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var this1 = p1; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); if(p._weak) { p.put(); } return this1; }; flixel_math_FlxPoint.subtractNew = function(this1,p) { var p1 = null; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var this1 = p1; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(p._weak) { p.put(); } return this1; }; flixel_math_FlxPoint.copyFrom = function(this1,p) { var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } return this1; }; flixel_math_FlxPoint.copyFromFlash = function(this1,p) { return this1.set(p.x,p.y); }; flixel_math_FlxPoint.copyTo = function(this1,p) { if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); return p; }; flixel_math_FlxPoint.copyToFlash = function(this1,p) { if(p == null) { p = new openfl_geom_Point(); } p.x = this1.x; p.y = this1.y; return p; }; flixel_math_FlxPoint.addToFlash = function(this1,p) { p.x += this1.x; p.y += this1.y; return p; }; flixel_math_FlxPoint.subtractFromFlash = function(this1,p) { p.x -= this1.x; p.y -= this1.y; return p; }; flixel_math_FlxPoint.floor = function(this1) { this1.set_x(Math.floor(this1.x)); this1.set_y(Math.floor(this1.y)); return this1; }; flixel_math_FlxPoint.ceil = function(this1) { this1.set_x(Math.ceil(this1.x)); this1.set_y(Math.ceil(this1.y)); return this1; }; flixel_math_FlxPoint.round = function(this1) { this1.set_x(Math.round(this1.x)); this1.set_y(Math.round(this1.y)); return this1; }; flixel_math_FlxPoint.inCoords = function(this1,x,y,width,height) { return flixel_math_FlxMath.pointInCoordinates(this1.x,this1.y,x,y,width,height); }; flixel_math_FlxPoint.inRect = function(this1,rect) { return flixel_math_FlxMath.pointInFlxRect(this1.x,this1.y,rect); }; flixel_math_FlxPoint.rotate = function(this1,pivot,degrees) { return flixel_math_FlxPoint.pivotRadians(this1,pivot,degrees * (Math.PI / 180)); }; flixel_math_FlxPoint.pivotRadians = function(this1,pivot,radians) { var this2 = flixel_math_FlxPoint._point1; var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(x); this2.set_y(y); if(this1._weak) { this1.put(); } var this3 = this2; var x = pivot.x; var y = pivot.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this3.set_x(this3.x - x); this3.set_y(this3.y - y); if(pivot._weak) { pivot.put(); } var this2 = flixel_math_FlxPoint._point1; var rads = flixel_math_FlxPoint.get_radians(flixel_math_FlxPoint._point1) + radians; var len = Math.sqrt(this2.x * this2.x + this2.y * this2.y); this2.set_x(len * Math.cos(rads)); this2.set_y(len * Math.sin(rads)); var x = flixel_math_FlxPoint._point1.x + pivot.x; var y = flixel_math_FlxPoint._point1.y + pivot.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(pivot._weak) { pivot.put(); } return this1; }; flixel_math_FlxPoint.pivotDegrees = function(this1,pivot,degrees) { return flixel_math_FlxPoint.pivotRadians(this1,pivot,degrees * (Math.PI / 180)); }; flixel_math_FlxPoint.distanceTo = function(this1,point) { var dx = this1.x - point.x; var dy = this1.y - point.y; if(point._weak) { point.put(); } return Math.sqrt(dx * dx + dy * dy); }; flixel_math_FlxPoint.radiansTo = function(this1,point) { var x = point.x - this1.x; var y = point.y - this1.y; var asDegrees = false; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxPoint.radiansFrom = function(this1,point) { var x = this1.x - point.x; var y = this1.y - point.y; var asDegrees = false; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxPoint.degreesTo = function(this1,point) { var x = point.x - this1.x; var y = point.y - this1.y; var asDegrees = true; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxPoint.degreesFrom = function(this1,point) { var x = this1.x - point.x; var y = this1.y - point.y; var asDegrees = true; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxPoint.angleBetween = function(this1,point) { var x = point.x - this1.x; var y = point.y - this1.y; var angle = 0; if(x != 0 || y != 0) { var c1 = Math.PI * 0.25; var c2 = 3 * c1; var ay = y < 0 ? -y : y; if(x >= 0) { angle = c1 - c1 * ((x - ay) / (x + ay)); } else { angle = c2 - c1 * ((x + ay) / (ay - x)); } angle = (y < 0 ? -angle : angle) * (180 / Math.PI); if(angle > 90) { angle -= 270; } else { angle += 90; } } if(point._weak) { point.put(); } return angle; }; flixel_math_FlxPoint.transform = function(this1,matrix) { var x1 = this1.x * matrix.a + this1.y * matrix.c + matrix.tx; var y1 = this1.x * matrix.b + this1.y * matrix.d + matrix.ty; var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return this1; }; flixel_math_FlxPoint.dot = function(this1,p) { var dp = this1.x * p.x + this1.y * p.y; if(p._weak) { p.put(); } return dp; }; flixel_math_FlxPoint.dotProduct = function(this1,p) { var dp = this1.x * p.x + this1.y * p.y; if(p._weak) { p.put(); } return dp; }; flixel_math_FlxPoint.dotProductWeak = function(this1,p) { return this1.x * p.x + this1.y * p.y; }; flixel_math_FlxPoint.dotProdWithNormalizing = function(this1,p) { var p1 = flixel_math_FlxPoint._point1; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); var normalized = flixel_math_FlxPoint.normalize(p1); if(p._weak) { p.put(); } return this1.x * normalized.x + this1.y * normalized.y; }; flixel_math_FlxPoint.isPerpendicular = function(this1,p) { var dp = this1.x * p.x + this1.y * p.y; if(p._weak) { p.put(); } return Math.abs(dp) < 9.99999999999999841e-15; }; flixel_math_FlxPoint.crossProductLength = function(this1,p) { var cp = this1.x * p.y - this1.y * p.x; if(p._weak) { p.put(); } return cp; }; flixel_math_FlxPoint.crossProductLengthWeak = function(this1,p) { return this1.x * p.y - this1.y * p.x; }; flixel_math_FlxPoint.isParallel = function(this1,p) { var pp = Math.abs(this1.x * p.y - this1.y * p.x) < 9.99999999999999841e-15; if(p._weak) { p.put(); } return pp; }; flixel_math_FlxPoint.isParallelWeak = function(this1,p) { return Math.abs(this1.x * p.y - this1.y * p.x) < 9.99999999999999841e-15; }; flixel_math_FlxPoint.isZero = function(this1) { if(Math.abs(this1.x) < 0.0000001) { return Math.abs(this1.y) < 0.0000001; } else { return false; } }; flixel_math_FlxPoint.zero = function(this1) { this1.set_x(this1.set_y(0)); return this1; }; flixel_math_FlxPoint.normalize = function(this1) { if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) { return this1; } var x = 1 / Math.sqrt(this1.x * this1.x + this1.y * this1.y); var y = null; if(y == null) { y = x; } this1.set_x(this1.x * x); this1.set_y(this1.y * y); return this1; }; flixel_math_FlxPoint.isNormalized = function(this1) { return Math.abs(this1.x * this1.x + this1.y * this1.y - 1) < 9.99999999999999841e-15; }; flixel_math_FlxPoint.rotateByRadians = function(this1,rads) { var s = Math.sin(rads); var c = Math.cos(rads); var tempX = this1.x; this1.set_x(tempX * c - this1.y * s); this1.set_y(tempX * s + this1.y * c); return this1; }; flixel_math_FlxPoint.rotateByDegrees = function(this1,degs) { var rads = degs * (Math.PI / 180); var s = Math.sin(rads); var c = Math.cos(rads); var tempX = this1.x; this1.set_x(tempX * c - this1.y * s); this1.set_y(tempX * s + this1.y * c); return this1; }; flixel_math_FlxPoint.rotateWithTrig = function(this1,sin,cos) { var tempX = this1.x; this1.set_x(tempX * cos - this1.y * sin); this1.set_y(tempX * sin + this1.y * cos); return this1; }; flixel_math_FlxPoint.setPolarRadians = function(this1,length,radians) { this1.set_x(length * Math.cos(radians)); this1.set_y(length * Math.sin(radians)); return this1; }; flixel_math_FlxPoint.setPolarDegrees = function(this1,length,degrees) { return flixel_math_FlxPoint.setPolarRadians(this1,length,degrees * (Math.PI / 180)); }; flixel_math_FlxPoint.rightNormal = function(this1,p) { if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = -this1.y; var y = this1.x; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); return p; }; flixel_math_FlxPoint.leftNormal = function(this1,p) { if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = this1.y; var y = -this1.x; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); return p; }; flixel_math_FlxPoint.negate = function(this1) { this1.set_x(this1.x * -1); this1.set_y(this1.y * -1); return this1; }; flixel_math_FlxPoint.negateNew = function(this1) { var p = null; if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); var this1 = p; this1.set_x(this1.x * -1); this1.set_y(this1.y * -1); return this1; }; flixel_math_FlxPoint.projectTo = function(this1,p,proj) { var dp = this1.x * p.x + this1.y * p.y; var lenSq = p.x * p.x + p.y * p.y; if(proj == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; proj = point; } var x = dp * p.x / lenSq; var y = dp * p.y / lenSq; if(y == null) { y = 0; } if(x == null) { x = 0; } proj.set_x(x); proj.set_y(y); if(p._weak) { p.put(); } return proj; }; flixel_math_FlxPoint.projectToNormalized = function(this1,p,proj) { var proj1 = proj; var dp = this1.x * p.x + this1.y * p.y; if(proj1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; proj1 = point; } var x = dp * p.x; var y = dp * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } proj1.set_x(x); proj1.set_y(y); proj = proj1; if(p._weak) { p.put(); } return proj; }; flixel_math_FlxPoint.projectToNormalizedWeak = function(this1,p,proj) { var dp = this1.x * p.x + this1.y * p.y; if(proj == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; proj = point; } var x = dp * p.x; var y = dp * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } proj.set_x(x); proj.set_y(y); return proj; }; flixel_math_FlxPoint.perpProduct = function(this1,p) { var pp = this1.y * p.x + -this1.x * p.y; if(p._weak) { p.put(); } return pp; }; flixel_math_FlxPoint.perpProductWeak = function(this1,p) { return this1.y * p.x + -this1.x * p.y; }; flixel_math_FlxPoint.ratio = function(this1,a,b,p) { var r; if(Math.abs(this1.x * p.y - this1.y * p.x) < 9.99999999999999841e-15) { r = NaN; } else if(this1.x * this1.x + this1.y * this1.y < 9.99999999999999841e-15 || p.x * p.x + p.y * p.y < 9.99999999999999841e-15) { r = NaN; } else { var p1 = flixel_math_FlxPoint._point1; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); flixel_math_FlxPoint._point1 = p1; var this2 = flixel_math_FlxPoint._point1; var x = a.x; var y = a.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var this2 = flixel_math_FlxPoint._point1; r = (this2.y * p.x + -this2.x * p.y) / (this1.y * p.x + -this1.x * p.y); } if(a._weak) { a.put(); } if(b._weak) { b.put(); } if(p._weak) { p.put(); } return r; }; flixel_math_FlxPoint.ratioWeak = function(this1,a,b,p) { if(Math.abs(this1.x * p.y - this1.y * p.x) < 9.99999999999999841e-15) { return NaN; } if(this1.x * this1.x + this1.y * this1.y < 9.99999999999999841e-15 || p.x * p.x + p.y * p.y < 9.99999999999999841e-15) { return NaN; } var p1 = flixel_math_FlxPoint._point1; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); flixel_math_FlxPoint._point1 = p1; var this2 = flixel_math_FlxPoint._point1; var x = a.x; var y = a.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var this2 = flixel_math_FlxPoint._point1; return (this2.y * p.x + -this2.x * p.y) / (this1.y * p.x + -this1.x * p.y); }; flixel_math_FlxPoint.findIntersection = function(this1,a,b,p,intersection) { var t; if(Math.abs(this1.x * p.y - this1.y * p.x) < 9.99999999999999841e-15) { t = NaN; } else if(this1.x * this1.x + this1.y * this1.y < 9.99999999999999841e-15 || p.x * p.x + p.y * p.y < 9.99999999999999841e-15) { t = NaN; } else { var p1 = flixel_math_FlxPoint._point1; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); flixel_math_FlxPoint._point1 = p1; var this2 = flixel_math_FlxPoint._point1; var x = a.x; var y = a.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var this2 = flixel_math_FlxPoint._point1; t = (this2.y * p.x + -this2.x * p.y) / (this1.y * p.x + -this1.x * p.y); } if(intersection == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; intersection = point; } if(isNaN(t)) { var x = NaN; var y = NaN; if(y == null) { y = 0; } if(x == null) { x = 0; } intersection.set_x(x); intersection.set_y(y); } else { var x = a.x + t * this1.x; var y = a.y + t * this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } intersection.set_x(x); intersection.set_y(y); } if(a._weak) { a.put(); } if(b._weak) { b.put(); } if(p._weak) { p.put(); } return intersection; }; flixel_math_FlxPoint.findIntersectionInBounds = function(this1,a,b,p,intersection) { if(intersection == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; intersection = point; } var t1; if(Math.abs(this1.x * p.y - this1.y * p.x) < 9.99999999999999841e-15) { t1 = NaN; } else if(this1.x * this1.x + this1.y * this1.y < 9.99999999999999841e-15 || p.x * p.x + p.y * p.y < 9.99999999999999841e-15) { t1 = NaN; } else { var p1 = flixel_math_FlxPoint._point1; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); flixel_math_FlxPoint._point1 = p1; var this2 = flixel_math_FlxPoint._point1; var x = a.x; var y = a.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var this2 = flixel_math_FlxPoint._point1; t1 = (this2.y * p.x + -this2.x * p.y) / (this1.y * p.x + -this1.x * p.y); } var t2; if(Math.abs(p.x * this1.y - p.y * this1.x) < 9.99999999999999841e-15) { t2 = NaN; } else if(p.x * p.x + p.y * p.y < 9.99999999999999841e-15 || this1.x * this1.x + this1.y * this1.y < 9.99999999999999841e-15) { t2 = NaN; } else { var p1 = flixel_math_FlxPoint._point1; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = a.x; var y = a.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); flixel_math_FlxPoint._point1 = p1; var this2 = flixel_math_FlxPoint._point1; var x = b.x; var y = b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); var this2 = flixel_math_FlxPoint._point1; t2 = (this2.y * this1.x + -this2.x * this1.y) / (p.y * this1.x + -p.x * this1.y); } if(!isNaN(t1) && !isNaN(t2) && t1 > 0 && t1 <= 1 && t2 > 0 && t2 <= 1) { var x = a.x + t1 * this1.x; var y = a.y + t1 * this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } intersection.set_x(x); intersection.set_y(y); } else { var x = NaN; var y = NaN; if(y == null) { y = 0; } if(x == null) { x = 0; } intersection.set_x(x); intersection.set_y(y); } if(a._weak) { a.put(); } if(b._weak) { b.put(); } if(p._weak) { p.put(); } return intersection; }; flixel_math_FlxPoint.truncate = function(this1,max) { var l = Math.min(max,Math.sqrt(this1.x * this1.x + this1.y * this1.y)); if(!(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001)) { var a = flixel_math_FlxPoint.get_radians(this1); this1.set_x(l * Math.cos(a)); this1.set_y(l * Math.sin(a)); } return this1; }; flixel_math_FlxPoint.radiansBetween = function(this1,p) { var rads = Math.acos((this1.x * p.x + this1.y * p.y) / (Math.sqrt(this1.x * this1.x + this1.y * this1.y) * Math.sqrt(p.x * p.x + p.y * p.y))); if(p._weak) { p.put(); } return rads; }; flixel_math_FlxPoint.degreesBetween = function(this1,p) { var rads = Math.acos((this1.x * p.x + this1.y * p.y) / (Math.sqrt(this1.x * this1.x + this1.y * this1.y) * Math.sqrt(p.x * p.x + p.y * p.y))); if(p._weak) { p.put(); } return rads * (180 / Math.PI); }; flixel_math_FlxPoint.sign = function(this1,a,b) { var signFl = (a.x - this1.x) * (b.y - this1.y) - (a.y - this1.y) * (b.x - this1.x); if(a._weak) { a.put(); } if(b._weak) { b.put(); } if(signFl == 0) { return 0; } return Math.round(signFl / Math.abs(signFl)); }; flixel_math_FlxPoint.dist = function(this1,p) { var dx = p.x - this1.x; var dy = p.y - this1.y; if(p._weak) { p.put(); } return Math.sqrt(dx * dx + dy * dy); }; flixel_math_FlxPoint.distSquared = function(this1,p) { var dx = p.x - this1.x; var dy = p.y - this1.y; if(p._weak) { p.put(); } return dx * dx + dy * dy; }; flixel_math_FlxPoint.bounce = function(this1,normal,bounceCoeff) { if(bounceCoeff == null) { bounceCoeff = 1; } var d = (1 + bounceCoeff) * (this1.x * normal.x + this1.y * normal.y); this1.set_x(this1.x - d * normal.x); this1.set_y(this1.y - d * normal.y); if(normal._weak) { normal.put(); } return this1; }; flixel_math_FlxPoint.bounceWithFriction = function(this1,normal,bounceCoeff,friction) { if(friction == null) { friction = 0; } if(bounceCoeff == null) { bounceCoeff = 1; } var p = flixel_math_FlxPoint.rightNormal(normal,flixel_math_FlxPoint._point3); var proj = flixel_math_FlxPoint._point1; var dp = this1.x * p.x + this1.y * p.y; if(proj == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; proj = point; } var x = dp * p.x; var y = dp * p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } proj.set_x(x); proj.set_y(y); var p1 = proj; var proj = flixel_math_FlxPoint._point2; var dp = this1.x * normal.x + this1.y * normal.y; if(proj == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; proj = point; } var x = dp * normal.x; var y = dp * normal.y; if(y == null) { y = 0; } if(x == null) { x = 0; } proj.set_x(x); proj.set_y(y); var p2 = proj; var bounceX = -p2.x; var bounceY = -p2.y; var frictionX = p1.x; var frictionY = p1.y; this1.set_x(bounceX * bounceCoeff + frictionX * friction); this1.set_y(bounceY * bounceCoeff + frictionY * friction); if(normal._weak) { normal.put(); } return this1; }; flixel_math_FlxPoint.isValid = function(this1) { var tmp; var tmp1; var f = this1.x; if(!isNaN(f)) { var f = this1.y; tmp1 = !isNaN(f); } else { tmp1 = false; } if(tmp1) { var f = this1.x; tmp = isFinite(f); } else { tmp = false; } if(tmp) { var f = this1.y; return isFinite(f); } else { return false; } }; flixel_math_FlxPoint.clone = function(this1,p) { var p1 = p; if(p1 == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p1 = point; } var x = this1.x; var y = this1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p1.set_x(x); p1.set_y(y); return p1; }; flixel_math_FlxPoint.get_x = function(this1) { return this1.x; }; flixel_math_FlxPoint.set_x = function(this1,x) { return this1.set_x(x); }; flixel_math_FlxPoint.get_y = function(this1) { return this1.y; }; flixel_math_FlxPoint.set_y = function(this1,y) { return this1.set_y(y); }; flixel_math_FlxPoint.get_dx = function(this1) { if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) { return 0; } return this1.x / Math.sqrt(this1.x * this1.x + this1.y * this1.y); }; flixel_math_FlxPoint.get_dy = function(this1) { if(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001) { return 0; } return this1.y / Math.sqrt(this1.x * this1.x + this1.y * this1.y); }; flixel_math_FlxPoint.get_length = function(this1) { return Math.sqrt(this1.x * this1.x + this1.y * this1.y); }; flixel_math_FlxPoint.set_length = function(this1,l) { if(!(Math.abs(this1.x) < 0.0000001 && Math.abs(this1.y) < 0.0000001)) { var a = flixel_math_FlxPoint.get_radians(this1); this1.set_x(l * Math.cos(a)); this1.set_y(l * Math.sin(a)); } return l; }; flixel_math_FlxPoint.get_lengthSquared = function(this1) { return this1.x * this1.x + this1.y * this1.y; }; flixel_math_FlxPoint.get_degrees = function(this1) { return flixel_math_FlxPoint.get_radians(this1) * (180 / Math.PI); }; flixel_math_FlxPoint.set_degrees = function(this1,degs) { var rads = degs * (Math.PI / 180); var len = Math.sqrt(this1.x * this1.x + this1.y * this1.y); this1.set_x(len * Math.cos(rads)); this1.set_y(len * Math.sin(rads)); return degs; }; flixel_math_FlxPoint.get_radians = function(this1) { var x = this1.x; var y = this1.y; var asDegrees = false; if(asDegrees == null) { asDegrees = false; } if(asDegrees) { return Math.atan2(y,x) * (180 / Math.PI); } else { return Math.atan2(y,x); } }; flixel_math_FlxPoint.set_radians = function(this1,rads) { var len = Math.sqrt(this1.x * this1.x + this1.y * this1.y); this1.set_x(len * Math.cos(rads)); this1.set_y(len * Math.sin(rads)); return rads; }; flixel_math_FlxPoint.get_rx = function(this1) { return -this1.y; }; flixel_math_FlxPoint.get_ry = function(this1) { return this1.x; }; flixel_math_FlxPoint.get_lx = function(this1) { return this1.y; }; flixel_math_FlxPoint.get_ly = function(this1) { return -this1.x; }; var flixel_math_FlxCallbackPoint = function(setXCallback,setYCallback,setXYCallback) { flixel_math_FlxBasePoint.call(this); this._setXCallback = setXCallback; this._setYCallback = setXYCallback; this._setXYCallback = setXYCallback; if(this._setXCallback != null) { if(this._setYCallback == null) { this._setYCallback = setXCallback; } if(this._setXYCallback == null) { this._setXYCallback = setXCallback; } } }; $hxClasses["flixel.math.FlxCallbackPoint"] = flixel_math_FlxCallbackPoint; flixel_math_FlxCallbackPoint.__name__ = "flixel.math.FlxCallbackPoint"; flixel_math_FlxCallbackPoint.__super__ = flixel_math_FlxBasePoint; flixel_math_FlxCallbackPoint.prototype = $extend(flixel_math_FlxBasePoint.prototype,{ _setXCallback: null ,_setYCallback: null ,_setXYCallback: null ,set: function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } flixel_math_FlxBasePoint.prototype.set.call(this,x,y); if(this._setXYCallback != null) { this._setXYCallback(this); } return this; } ,set_x: function(value) { flixel_math_FlxBasePoint.prototype.set_x.call(this,value); if(this._setXCallback != null) { this._setXCallback(this); } return value; } ,set_y: function(value) { flixel_math_FlxBasePoint.prototype.set_y.call(this,value); if(this._setYCallback != null) { this._setYCallback(this); } return value; } ,destroy: function() { flixel_math_FlxBasePoint.prototype.destroy.call(this); this._setXCallback = null; this._setYCallback = null; this._setXYCallback = null; } ,put: function() { } ,__class__: flixel_math_FlxCallbackPoint }); var flixel_math_FlxVelocity = function() { }; $hxClasses["flixel.math.FlxVelocity"] = flixel_math_FlxVelocity; flixel_math_FlxVelocity.__name__ = "flixel.math.FlxVelocity"; flixel_math_FlxVelocity.moveTowardsObject = function(Source,Dest,Speed,MaxTime) { if(MaxTime == null) { MaxTime = 0; } if(Speed == null) { Speed = 60; } var a = flixel_math_FlxAngle.angleBetween(Source,Dest); if(MaxTime > 0) { var dx = Source.x + Source.origin.x - (Dest.x + Dest.origin.x); var dy = Source.y + Source.origin.y - (Dest.y + Dest.origin.y); var d = Math.sqrt(dx * dx + dy * dy) | 0; Speed = d / (MaxTime / 1000) | 0; } Source.velocity.set_x(Math.cos(a) * Speed); Source.velocity.set_y(Math.sin(a) * Speed); }; flixel_math_FlxVelocity.accelerateTowardsObject = function(Source,Dest,Acceleration,MaxSpeed) { var a = flixel_math_FlxAngle.angleBetween(Source,Dest); var sinA = Math.sin(a); var cosA = Math.cos(a); var this1 = Source.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.acceleration; var x = cosA * Acceleration; var y = sinA * Acceleration; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.maxVelocity; var x = Math.abs(cosA * MaxSpeed); var y = Math.abs(sinA * MaxSpeed); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; flixel_math_FlxVelocity.moveTowardsMouse = function(Source,Speed,MaxTime) { if(MaxTime == null) { MaxTime = 0; } if(Speed == null) { Speed = 60; } var a = flixel_math_FlxAngle.angleBetweenMouse(Source); if(MaxTime > 0) { var dx = Source.x + Source.origin.x - flixel_FlxG.mouse.screenX; var dy = Source.y + Source.origin.y - flixel_FlxG.mouse.screenY; var d = Math.sqrt(dx * dx + dy * dy) | 0; Speed = d / (MaxTime / 1000) | 0; } Source.velocity.set_x(Math.cos(a) * Speed); Source.velocity.set_y(Math.sin(a) * Speed); }; flixel_math_FlxVelocity.moveTowardsTouch = function(Source,Touch1,Speed,MaxTime) { if(MaxTime == null) { MaxTime = 0; } if(Speed == null) { Speed = 60; } var a = flixel_math_FlxAngle.angleBetweenTouch(Source,Touch1); if(MaxTime > 0) { var dx = Source.x + Source.origin.x - Touch1.screenX; var dy = Source.y + Source.origin.y - Touch1.screenY; var d = Math.sqrt(dx * dx + dy * dy) | 0; Speed = d / (MaxTime / 1000) | 0; } Source.velocity.set_x(Math.cos(a) * Speed); Source.velocity.set_y(Math.sin(a) * Speed); }; flixel_math_FlxVelocity.accelerateTowardsMouse = function(Source,Acceleration,MaxSpeed) { var a = flixel_math_FlxAngle.angleBetweenMouse(Source); var sinA = Math.sin(a); var cosA = Math.cos(a); var this1 = Source.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.acceleration; var x = cosA * Acceleration; var y = sinA * Acceleration; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.maxVelocity; var x = Math.abs(cosA * MaxSpeed); var y = Math.abs(sinA * MaxSpeed); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; flixel_math_FlxVelocity.accelerateTowardsTouch = function(Source,Touch1,Acceleration,MaxSpeed) { var a = flixel_math_FlxAngle.angleBetweenTouch(Source,Touch1); var sinA = Math.sin(a); var cosA = Math.cos(a); var this1 = Source.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.acceleration; var x = cosA * Acceleration; var y = sinA * Acceleration; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.maxVelocity; var x = Math.abs(cosA * MaxSpeed); var y = Math.abs(sinA * MaxSpeed); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; flixel_math_FlxVelocity.moveTowardsPoint = function(Source,Target,Speed,MaxTime) { if(MaxTime == null) { MaxTime = 0; } if(Speed == null) { Speed = 60; } var a = flixel_math_FlxAngle.angleBetweenPoint(Source,Target); if(MaxTime > 0) { var dx = Source.x + Source.origin.x - Target.x; var dy = Source.y + Source.origin.y - Target.y; if(Target._weak) { Target.put(); } var d = Math.sqrt(dx * dx + dy * dy) | 0; Speed = d / (MaxTime / 1000) | 0; } Source.velocity.set_x(Math.cos(a) * Speed); Source.velocity.set_y(Math.sin(a) * Speed); if(Target._weak) { Target.put(); } }; flixel_math_FlxVelocity.accelerateTowardsPoint = function(Source,Target,Acceleration,MaxSpeed) { var a = flixel_math_FlxAngle.angleBetweenPoint(Source,Target); var sinA = Math.sin(a); var cosA = Math.cos(a); var this1 = Source.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.acceleration; var x = cosA * Acceleration; var y = sinA * Acceleration; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = Source.maxVelocity; var x = Math.abs(cosA * MaxSpeed); var y = Math.abs(sinA * MaxSpeed); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(Target._weak) { Target.put(); } }; flixel_math_FlxVelocity.velocityFromAngle = function(Angle,Speed) { var a = Angle * (Math.PI / 180); var x = Math.cos(a) * Speed; var y = Math.sin(a) * Speed; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; return point; }; flixel_math_FlxVelocity.velocityFromFacing = function(Parent,Speed) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; return flixel_math_FlxPoint.setPolarRadians(point,Speed,flixel_util_FlxDirectionFlags.get_degrees(Parent.facing) * (Math.PI / 180)); }; flixel_math_FlxVelocity.computeVelocity = function(Velocity,Acceleration,Drag,Max,Elapsed) { if(Acceleration != 0) { Velocity += Acceleration * Elapsed; } else if(Drag != 0) { var drag = Drag * Elapsed; if(Velocity - drag > 0) { Velocity -= drag; } else if(Velocity + drag < 0) { Velocity += drag; } else { Velocity = 0; } } if(Velocity != 0 && Max != 0) { if(Velocity > Max) { Velocity = Max; } else if(Velocity < -Max) { Velocity = -Max; } } return Velocity; }; flixel_math_FlxVelocity.accelerateFromAngle = function(source,radians,acceleration,maxSpeed,resetVelocity) { if(resetVelocity == null) { resetVelocity = true; } var sinA = Math.sin(radians); var cosA = Math.cos(radians); if(resetVelocity) { var this1 = source.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } var this1 = source.acceleration; var x = cosA * acceleration; var y = sinA * acceleration; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = source.maxVelocity; var x = Math.abs(cosA * maxSpeed); var y = Math.abs(sinA * maxSpeed); if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; var flixel_path_FlxPath = function(nodes) { this._firstUpdate = false; this._wasObjectImmovable = null; this._inc = 1; this.axes = 17; this.finished = false; this.nodeIndex = 0; this.active = false; this.angleOffset = 0; this.autoRotate = false; this.autoCenter = true; this.angle = 0; this.immovable = false; this.speed = 0; if(nodes != null) { this._nodes = nodes.slice(); } else { this._nodes = []; } }; $hxClasses["flixel.path.FlxPath"] = flixel_path_FlxPath; flixel_path_FlxPath.__name__ = "flixel.path.FlxPath"; flixel_path_FlxPath.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_path_FlxPath.prototype = { _nodes: null ,speed: null ,immovable: null ,angle: null ,autoCenter: null ,autoRotate: null ,angleOffset: null ,active: null ,onComplete: null ,nodeIndex: null ,finished: null ,axes: null ,_mode: null ,_inc: null ,_wasObjectImmovable: null ,_firstUpdate: null ,object: null ,reset: function() { this.autoCenter = true; return this; } ,setProperties: function(speed,mode,autoRotate) { if(autoRotate == null) { autoRotate = false; } if(mode == null) { mode = 0; } if(speed == null) { speed = 100.0; } this.speed = Math.abs(speed); this._mode = mode; this.autoRotate = autoRotate; return this; } ,start: function(nodes,speed,mode,autoRotate,nodesAsReference) { if(nodesAsReference == null) { nodesAsReference = false; } if(autoRotate == null) { autoRotate = false; } if(mode == null) { mode = 0; } if(speed == null) { speed = 100.0; } if(nodes != null) { if(nodesAsReference) { this._nodes = nodes; } else { this._nodes = nodes.slice(); } } this.setProperties(speed,mode,autoRotate); if(this._nodes.length > 0) { this.restart(); } return this; } ,restart: function() { this.finished = false; this._firstUpdate = true; this.active = this._nodes.length > 0; if(!this.active) { return this; } if(this._mode == 1 || this._mode == 256) { this.nodeIndex = this._nodes.length - 1; this._inc = -1; } else { this.nodeIndex = 0; this._inc = 1; } return this; } ,setNode: function(nodeIndex) { if(nodeIndex < 0) { nodeIndex = 0; } else if(nodeIndex > this._nodes.length - 1) { nodeIndex = this._nodes.length - 1; } this.nodeIndex = nodeIndex; this.advancePath(); return this; } ,update: function(elapsed) { if(this.object == null) { return; } if(this._firstUpdate) { if(this.immovable) { this._wasObjectImmovable = this.object.immovable; this.object.set_immovable(true); } this._firstUpdate = false; } flixel_path_FlxPath._point.set_x(this.object.x); flixel_path_FlxPath._point.set_y(this.object.y); if(this.autoCenter) { var this1 = flixel_path_FlxPath._point; var x = this.object.get_width() * 0.5; var y = this.object.get_height() * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); } var node = this._nodes[this.nodeIndex]; var deltaX = node.x - flixel_path_FlxPath._point.x; var deltaY = node.y - flixel_path_FlxPath._point.y; var horizontalOnly = this.axes == 1; var verticalOnly = this.axes == 16; if(horizontalOnly) { if((deltaX > 0 ? deltaX : -deltaX) < this.speed * elapsed) { node = this.advancePath(); } } else if(verticalOnly) { if((deltaY > 0 ? deltaY : -deltaY) < this.speed * elapsed) { node = this.advancePath(); } } else if(Math.sqrt(deltaX * deltaX + deltaY * deltaY) < this.speed * elapsed) { node = this.advancePath(); } if(this.object != null && this.speed != 0) { flixel_path_FlxPath._point.set_x(this.object.x); flixel_path_FlxPath._point.set_y(this.object.y); if(this.autoCenter) { var this1 = flixel_path_FlxPath._point; var x = this.object.get_width() * 0.5; var y = this.object.get_height() * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); } var _this = flixel_path_FlxPath._point; var result = Math.abs(_this.x - node.x) <= 0.0000001 && Math.abs(_this.y - node.y) <= 0.0000001; if(node._weak) { node.put(); } if(!result) { this.calculateVelocity(node,horizontalOnly,verticalOnly); } else { var this1 = this.object.velocity; this1.set_x(0); this1.set_y(0); } if(this.autoRotate) { this.object.angularVelocity = 0; this.object.angularAcceleration = 0; this.object.set_angle(this.angle + this.angleOffset); } if(this.finished) { this.cancel(); } } } ,calculateVelocity: function(node,horizontalOnly,verticalOnly) { if(horizontalOnly || flixel_path_FlxPath._point.y == node.y) { this.object.velocity.set_x(flixel_path_FlxPath._point.x < node.x ? this.speed : -this.speed); this.angle = this.object.velocity.x < 0 ? 180 : 0; if(!horizontalOnly) { this.object.velocity.set_y(0); } } else if(verticalOnly || flixel_path_FlxPath._point.x == node.x) { this.object.velocity.set_y(flixel_path_FlxPath._point.y < node.y ? this.speed : -this.speed); this.angle = this.object.velocity.y < 0 ? -90 : 90; if(!verticalOnly) { this.object.velocity.set_x(0); } } else { var this1 = this.object.velocity; var x = node.x; var y = node.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(node._weak) { node.put(); } var this2 = this1; var point = flixel_path_FlxPath._point; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this2.set_x(this2.x - x); this2.set_y(this2.y - y); if(point._weak) { point.put(); } var velocity = this2; var l = this.speed; if(!(Math.abs(velocity.x) < 0.0000001 && Math.abs(velocity.y) < 0.0000001)) { var a = flixel_math_FlxPoint.get_radians(velocity); velocity.set_x(l * Math.cos(a)); velocity.set_y(l * Math.sin(a)); } this.angle = flixel_math_FlxPoint.get_radians(velocity) * (180 / Math.PI); } } ,advancePath: function(snap) { if(snap == null) { snap = true; } if(snap) { var oldNode = this._nodes[this.nodeIndex]; if(oldNode != null) { var this1 = this.axes; if(this1 == 1 || this1 == 17) { this.object.set_x(oldNode.x); if(this.autoCenter) { var fh = this.object; fh.set_x(fh.x - this.object.get_width() * 0.5); } } var this1 = this.axes; if(this1 == 16 || this1 == 17) { this.object.set_y(oldNode.y); if(this.autoCenter) { var fh = this.object; fh.set_y(fh.y - this.object.get_height() * 0.5); } } } } var callComplete = false; this.nodeIndex += this._inc; if(this._mode == 1) { if(this.nodeIndex < 0) { this.nodeIndex = 0; callComplete = true; this.onEnd(); } } else if(this._mode == 16) { if(this.nodeIndex >= this._nodes.length) { callComplete = true; this.nodeIndex = 0; } } else if(this._mode == 256) { if(this.nodeIndex < 0) { this.nodeIndex = this._nodes.length - 1; callComplete = true; if(this.nodeIndex < 0) { this.nodeIndex = 0; } } } else if(this._mode == 4096) { if(this._inc > 0) { if(this.nodeIndex >= this._nodes.length) { this.nodeIndex = this._nodes.length - 2; callComplete = true; if(this.nodeIndex < 0) { this.nodeIndex = 0; } this._inc = -this._inc; } } else if(this.nodeIndex < 0) { this.nodeIndex = 1; callComplete = true; if(this.nodeIndex >= this._nodes.length) { this.nodeIndex = this._nodes.length - 1; } if(this.nodeIndex < 0) { this.nodeIndex = 0; } this._inc = -this._inc; } } else if(this.nodeIndex >= this._nodes.length) { this.nodeIndex = this._nodes.length - 1; callComplete = true; this.onEnd(); } if(callComplete && this.onComplete != null) { this.onComplete(this); } return this._nodes[this.nodeIndex]; } ,cancel: function() { this.onEnd(); if(this.object != null) { var this1 = this.object.velocity; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } return this; } ,onEnd: function() { this.finished = true; this.active = false; if(this._wasObjectImmovable != null) { this.object.set_immovable(this._wasObjectImmovable); } this._wasObjectImmovable = null; } ,destroy: function() { flixel_util_FlxDestroyUtil.putArray(this._nodes); this._nodes = null; this.object = null; this.onComplete = null; } ,add: function(x,y) { var tmp = this._nodes; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; tmp.push(point); return this; } ,addAt: function(x,y,index) { if(index < 0) { return this; } var _this = this._nodes; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; _this.splice(index,0,point); return this; } ,addPoint: function(node,asReference) { if(asReference == null) { asReference = false; } if(asReference) { this._nodes.push(node); } else { var tmp = this._nodes; var x = node.x; var y = node.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; tmp.push(point); } return this; } ,addPointAt: function(node,index,asReference) { if(asReference == null) { asReference = false; } if(index < 0) { return this; } if(asReference) { this._nodes.splice(index,0,node); } else { var _this = this._nodes; var x = node.x; var y = node.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; _this.splice(index,0,point); } return this; } ,remove: function(node) { var index = this._nodes.indexOf(node); if(index >= 0) { return this._nodes.splice(index,1)[0]; } return null; } ,removeAt: function(index) { if(this._nodes.length <= 0) { return null; } if(index >= this._nodes.length - 1) { this._nodes.pop(); } return this._nodes.splice(index,1)[0]; } ,head: function() { if(this._nodes.length > 0) { return this._nodes[0]; } return null; } ,tail: function() { if(this._nodes.length > 0) { return this._nodes[this._nodes.length - 1]; } return null; } ,get_nodes: function() { return this._nodes; } ,set_nodes: function(nodes) { if(nodes != null) { this._nodes = nodes; } return this._nodes; } ,set_immovable: function(value) { if(this._firstUpdate || this.finished || value == this.immovable) { return this.immovable = value; } if(value) { this._wasObjectImmovable = this.object.immovable; this.object.set_immovable(true); } else if(this._wasObjectImmovable != null) { this.object.set_immovable(this._wasObjectImmovable); this._wasObjectImmovable = null; } return this.immovable = value; } ,__class__: flixel_path_FlxPath ,__properties__: {set_immovable:"set_immovable",set_nodes:"set_nodes",get_nodes:"get_nodes"} }; var flixel_path_FlxPathDrawData = function(lineColor,nodeColor,startColor,endColor,lineSize,nodeSize,startSize,endSize) { this.endSize = 5; this.startSize = 5; this.nodeSize = 3; this.lineSize = 1; this.endColor = -65536; this.startColor = -16744448; this.nodeColor = -1; this.lineColor = -1; if(lineColor != null) { this.lineColor = lineColor; } if(nodeColor != null) { this.nodeColor = nodeColor; } if(startColor != null) { this.startColor = startColor; } if(endColor != null) { this.endColor = endColor; } if(lineSize != null) { this.lineSize = lineSize; } if(nodeSize != null) { this.nodeSize = nodeSize; } if(startSize != null) { this.startSize = startSize; } if(endSize != null) { this.endSize = endSize; } }; $hxClasses["flixel.path.FlxPathDrawData"] = flixel_path_FlxPathDrawData; flixel_path_FlxPathDrawData.__name__ = "flixel.path.FlxPathDrawData"; flixel_path_FlxPathDrawData.prototype = { lineColor: null ,nodeColor: null ,startColor: null ,endColor: null ,lineSize: null ,nodeSize: null ,startSize: null ,endSize: null ,__class__: flixel_path_FlxPathDrawData }; var flixel_path_FlxPathSimplifier = $hxEnums["flixel.path.FlxPathSimplifier"] = { __ename__:"flixel.path.FlxPathSimplifier",__constructs__:null ,NONE: {_hx_name:"NONE",_hx_index:0,__enum__:"flixel.path.FlxPathSimplifier",toString:$estr} ,LINE: {_hx_name:"LINE",_hx_index:1,__enum__:"flixel.path.FlxPathSimplifier",toString:$estr} ,RAY: {_hx_name:"RAY",_hx_index:2,__enum__:"flixel.path.FlxPathSimplifier",toString:$estr} ,RAY_STEP: ($_=function(resolution) { return {_hx_index:3,resolution:resolution,__enum__:"flixel.path.FlxPathSimplifier",toString:$estr}; },$_._hx_name="RAY_STEP",$_.__params__ = ["resolution"],$_) ,RAY_BOX: ($_=function(width,height) { return {_hx_index:4,width:width,height:height,__enum__:"flixel.path.FlxPathSimplifier",toString:$estr}; },$_._hx_name="RAY_BOX",$_.__params__ = ["width","height"],$_) ,CUSTOM: ($_=function(method) { return {_hx_index:5,method:method,__enum__:"flixel.path.FlxPathSimplifier",toString:$estr}; },$_._hx_name="CUSTOM",$_.__params__ = ["method"],$_) }; flixel_path_FlxPathSimplifier.__constructs__ = [flixel_path_FlxPathSimplifier.NONE,flixel_path_FlxPathSimplifier.LINE,flixel_path_FlxPathSimplifier.RAY,flixel_path_FlxPathSimplifier.RAY_STEP,flixel_path_FlxPathSimplifier.RAY_BOX,flixel_path_FlxPathSimplifier.CUSTOM]; flixel_path_FlxPathSimplifier.__empty_constructs__ = [flixel_path_FlxPathSimplifier.NONE,flixel_path_FlxPathSimplifier.LINE,flixel_path_FlxPathSimplifier.RAY]; var flixel_sound_FlxSound = function() { this._alreadyPaused = false; this._volumeAdjust = 1.0; this._pitch = 1.0; this._length = 0; this._time = 0; this.loopTime = 0; flixel_FlxBasic.call(this); this.reset(); }; $hxClasses["flixel.sound.FlxSound"] = flixel_sound_FlxSound; flixel_sound_FlxSound.__name__ = "flixel.sound.FlxSound"; flixel_sound_FlxSound.__super__ = flixel_FlxBasic; flixel_sound_FlxSound.prototype = $extend(flixel_FlxBasic.prototype,{ x: null ,y: null ,persist: null ,name: null ,artist: null ,amplitude: null ,amplitudeLeft: null ,amplitudeRight: null ,autoDestroy: null ,onComplete: null ,group: null ,looped: null ,loopTime: null ,endTime: null ,fadeTween: null ,_sound: null ,_channel: null ,_transform: null ,_paused: null ,_volume: null ,_time: null ,_length: null ,_pitch: null ,_volumeAdjust: null ,_target: null ,_radius: null ,_proximityPan: null ,_alreadyPaused: null ,reset: function() { this.destroy(); this.x = 0; this.y = 0; this._time = 0; this._paused = false; this._volume = 1.0; this._volumeAdjust = 1.0; this.looped = false; this.loopTime = 0.0; this.endTime = 0.0; this._target = null; this._radius = 0; this._proximityPan = false; this.set_visible(false); this.amplitude = 0; this.amplitudeLeft = 0; this.amplitudeRight = 0; this.autoDestroy = false; if(this._transform == null) { this._transform = new openfl_media_SoundTransform(); } this._transform.pan = 0; } ,destroy: function() { this._transform = null; this.set_exists(false); this.set_active(false); this._target = null; this.name = null; this.artist = null; if(this._channel != null) { this._channel.removeEventListener("soundComplete",$bind(this,this.stopped)); this._channel.stop(); this._channel = null; } if(this._sound != null) { this._sound.removeEventListener("id3",$bind(this,this.gotID3)); this._sound = null; } this.onComplete = null; flixel_FlxBasic.prototype.destroy.call(this); } ,update: function(elapsed) { if(this._channel == null) { return; } this._time = this._channel.get_position(); var radialMultiplier = 1.0; if(this._target != null) { var targetPosition = this._target.getPosition(); var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; radialMultiplier = flixel_math_FlxPoint.distanceTo(targetPosition,point1) / this._radius; targetPosition.put(); var lowerBound = radialMultiplier < 0 ? 0 : radialMultiplier; radialMultiplier = 1 - (lowerBound > 1 ? 1 : lowerBound); if(this._proximityPan) { var d = (this.x - this._target.x) / this._radius; var lowerBound = d < -1 ? -1 : d; this._transform.pan = lowerBound > 1 ? 1 : lowerBound; } } this._volumeAdjust = radialMultiplier; this.updateTransform(); if(this._transform.volume > 0) { this.amplitudeLeft = this._channel.leftPeak / this._transform.volume; this.amplitudeRight = this._channel.rightPeak / this._transform.volume; this.amplitude = (this.amplitudeLeft + this.amplitudeRight) * 0.5; } else { this.amplitudeLeft = 0; this.amplitudeRight = 0; this.amplitude = 0; } if(this.endTime != null && this._time >= this.endTime) { this.stopped(); } } ,kill: function() { flixel_FlxBasic.prototype.kill.call(this); this.cleanup(false); } ,loadEmbedded: function(EmbeddedSound,Looped,AutoDestroy,OnComplete) { if(AutoDestroy == null) { AutoDestroy = false; } if(Looped == null) { Looped = false; } if(EmbeddedSound == null) { return this; } this.cleanup(true); if(((EmbeddedSound) instanceof openfl_media_Sound)) { this._sound = EmbeddedSound; } else if(js_Boot.__instanceof(EmbeddedSound,Class)) { this._sound = Type.createInstance(EmbeddedSound,[]); } else if(typeof(EmbeddedSound) == "string") { if(openfl_utils_Assets.exists(EmbeddedSound,"SOUND") || openfl_utils_Assets.exists(EmbeddedSound,"MUSIC")) { this._sound = openfl_utils_Assets.getSound(EmbeddedSound); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + EmbeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } } return this.init(Looped,AutoDestroy,OnComplete); } ,loadStream: function(SoundURL,Looped,AutoDestroy,OnComplete,OnLoad) { if(AutoDestroy == null) { AutoDestroy = false; } if(Looped == null) { Looped = false; } var _gthis = this; this.cleanup(true); this._sound = new openfl_media_Sound(); this._sound.addEventListener("id3",$bind(this,this.gotID3)); var loadCallback = null; loadCallback = function(e) { e.target.removeEventListener(e.type,loadCallback); if(openfl_utils_Object.__eq(_gthis._sound,e.target)) { _gthis._length = _gthis._sound.get_length(); if(OnLoad != null) { OnLoad(); } } }; this._sound.addEventListener("complete",loadCallback,false,0,true); this._sound.load(new openfl_net_URLRequest(SoundURL)); return this.init(Looped,AutoDestroy,OnComplete); } ,init: function(Looped,AutoDestroy,OnComplete) { if(AutoDestroy == null) { AutoDestroy = false; } if(Looped == null) { Looped = false; } this.looped = Looped; this.autoDestroy = AutoDestroy; this.updateTransform(); this.set_exists(true); this.onComplete = OnComplete; this.set_pitch(1); this._length = this._sound == null ? 0 : this._sound.get_length(); this.endTime = this._length; return this; } ,proximity: function(X,Y,TargetObject,Radius,Pan) { if(Pan == null) { Pan = true; } this.x = X; this.y = Y; this._target = TargetObject; this._radius = Radius; this._proximityPan = Pan; return this; } ,play: function(ForceRestart,StartTime,EndTime) { if(StartTime == null) { StartTime = 0.0; } if(ForceRestart == null) { ForceRestart = false; } if(!this.exists) { return this; } if(ForceRestart) { this.cleanup(false,true); } else if(this._channel != null) { return this; } if(this._paused) { this.resume(); } else { this.startSound(StartTime); } this.endTime = EndTime; return this; } ,resume: function() { if(this._paused) { this.startSound(this._time); } return this; } ,pause: function() { if(this._channel == null) { return this; } this._time = this._channel.get_position(); this._paused = true; this.cleanup(false,false); return this; } ,stop: function() { this.cleanup(this.autoDestroy,true); return this; } ,fadeOut: function(Duration,To,onComplete) { if(To == null) { To = 0; } if(Duration == null) { Duration = 1; } if(this.fadeTween != null) { this.fadeTween.cancel(); } this.fadeTween = flixel_tweens_FlxTween.num(this._volume,To,Duration,{ onComplete : onComplete},$bind(this,this.volumeTween)); return this; } ,fadeIn: function(Duration,From,To,onComplete) { if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(this._channel == null) { this.play(); } if(this.fadeTween != null) { this.fadeTween.cancel(); } this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : onComplete},$bind(this,this.volumeTween)); return this; } ,volumeTween: function(f) { this.set_volume(f); } ,getActualVolume: function() { return this._volume * this._volumeAdjust; } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.x = X; this.y = Y; } ,updateTransform: function() { this._transform.volume = (flixel_FlxG.sound.muted ? 0 : 1) * flixel_FlxG.sound.volume * (this.group != null ? this.group.volume : 1) * this._volume * this._volumeAdjust; if(this._channel != null) { this._channel.set_soundTransform(this._transform); } } ,startSound: function(StartTime) { if(this._sound == null) { return; } this._time = StartTime; this._paused = false; this._channel = this._sound.play(this._time,0,this._transform); if(this._channel != null) { this.set_pitch(this._pitch); this._channel.addEventListener("soundComplete",$bind(this,this.stopped)); this.set_active(true); } else { this.set_exists(false); this.set_active(false); } } ,stopped: function(_) { if(this.onComplete != null) { this.onComplete(); } if(this.looped) { this.cleanup(false); this.play(false,this.loopTime,this.endTime); } else { this.cleanup(this.autoDestroy); } } ,cleanup: function(destroySound,resetPosition) { if(resetPosition == null) { resetPosition = true; } if(destroySound) { this.reset(); return; } if(this._channel != null) { this._channel.removeEventListener("soundComplete",$bind(this,this.stopped)); this._channel.stop(); this._channel = null; } this.set_active(false); if(resetPosition) { this._time = 0; this._paused = false; } } ,gotID3: function(_) { this.name = this._sound.get_id3().songName; this.artist = this._sound.get_id3().artist; this._sound.removeEventListener("id3",$bind(this,this.gotID3)); } ,onFocus: function() { if(!this._alreadyPaused) { this.resume(); } } ,onFocusLost: function() { this._alreadyPaused = this._paused; this.pause(); } ,set_group: function(group) { if(this.group != group) { var oldGroup = this.group; this.group = group; if(oldGroup != null) { oldGroup.remove(this); } if(group != null) { group.add(this); } this.updateTransform(); } return group; } ,get_playing: function() { return this._channel != null; } ,get_volume: function() { return this._volume; } ,set_volume: function(Volume) { var lowerBound = Volume < 0 ? 0 : Volume; this._volume = lowerBound > 1 ? 1 : lowerBound; this.updateTransform(); return Volume; } ,get_pitch: function() { return this._pitch; } ,set_pitch: function(v) { if(this._channel != null) { if(this._channel.__source != null) { this._channel.__source.set_pitch(v); } } return this._pitch = v; } ,get_pan: function() { return this._transform.pan; } ,set_pan: function(pan) { return this._transform.pan = pan; } ,get_time: function() { return this._time; } ,set_time: function(time) { if(this._channel != null) { this.cleanup(false,true); this.startSound(time); } return this._time = time; } ,get_length: function() { return this._length; } ,toString: function() { var value = this._channel != null; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "playing"; _this.value = value; var value = this._time; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "time"; _this1.value = value; var value = this._length; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "length"; _this2.value = value; var value = this._volume; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "volume"; _this3.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]); } ,__class__: flixel_sound_FlxSound ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{set_group:"set_group",get_length:"get_length",set_time:"set_time",get_time:"get_time",set_pitch:"set_pitch",get_pitch:"get_pitch",set_volume:"set_volume",get_volume:"get_volume",get_playing:"get_playing",set_pan:"set_pan",get_pan:"get_pan"}) }); var flixel_sound_FlxSoundGroup = function(volume) { if(volume == null) { volume = 1; } this.sounds = []; this.set_volume(volume); }; $hxClasses["flixel.sound.FlxSoundGroup"] = flixel_sound_FlxSoundGroup; flixel_sound_FlxSoundGroup.__name__ = "flixel.sound.FlxSoundGroup"; flixel_sound_FlxSoundGroup.prototype = { sounds: null ,volume: null ,add: function(sound) { if(this.sounds.indexOf(sound) < 0) { this.sounds.push(sound); sound.set_group(this); return true; } return false; } ,remove: function(sound) { if(this.sounds.indexOf(sound) >= 0) { sound.set_group(null); return HxOverrides.remove(this.sounds,sound); } return false; } ,pause: function() { var _g = 0; var _g1 = this.sounds; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; sound.pause(); } } ,resume: function() { var _g = 0; var _g1 = this.sounds; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; sound.resume(); } } ,set_volume: function(volume) { this.volume = volume; var _g = 0; var _g1 = this.sounds; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; sound.updateTransform(); } return volume; } ,__class__: flixel_sound_FlxSoundGroup ,__properties__: {set_volume:"set_volume"} }; var flixel_system_GraphicLogo = 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(flixel_system_GraphicLogo.preload != null) { this.__fromImage(flixel_system_GraphicLogo.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_GraphicLogo.resourceName),flixel_system_GraphicLogo.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_GraphicLogo.preload == null) { flixel_system_GraphicLogo.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.GraphicLogo"] = flixel_system_GraphicLogo; flixel_system_GraphicLogo.__name__ = "flixel.system.GraphicLogo"; flixel_system_GraphicLogo.preload = null; flixel_system_GraphicLogo.__super__ = openfl_display_BitmapData; flixel_system_GraphicLogo.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_GraphicLogo }); var flixel_system_GraphicVirtualInput = 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(flixel_system_GraphicVirtualInput.preload != null) { this.__fromImage(flixel_system_GraphicVirtualInput.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_GraphicVirtualInput.resourceName),flixel_system_GraphicVirtualInput.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_GraphicVirtualInput.preload == null) { flixel_system_GraphicVirtualInput.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.GraphicVirtualInput"] = flixel_system_GraphicVirtualInput; flixel_system_GraphicVirtualInput.__name__ = "flixel.system.GraphicVirtualInput"; flixel_system_GraphicVirtualInput.preload = null; flixel_system_GraphicVirtualInput.__super__ = openfl_display_BitmapData; flixel_system_GraphicVirtualInput.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_GraphicVirtualInput }); 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,encoding) { var a = []; var i = 0; while(i < s.length) { var c = s.charCodeAt(i++); if(55296 <= c && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(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.ofHex = function(s) { if((s.length & 1) != 0) { throw haxe_Exception.thrown("Not a hex string (odd number of digits)"); } var a = []; var i = 0; var len = s.length >> 1; while(i < len) { var high = s.charCodeAt(i * 2); var low = s.charCodeAt(i * 2 + 1); high = (high & 15) + ((high & 64) >> 6) * 9; low = (low & 15) + ((low & 64) >> 6) * 9; a.push((high << 4 | low) & 255); ++i; } return new haxe_io_Bytes(new Uint8Array(a).buffer); }; haxe_io_Bytes.fastGet = function(b,pos) { return b.bytes[pos]; }; 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 haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } if(srcpos == 0 && len == src.b.byteLength) { this.b.set(src.b,pos); } else { this.b.set(src.b.subarray(srcpos,srcpos + len),pos); } } ,fill: function(pos,len,value) { var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; this.b[pos++] = value & 255; } } ,sub: function(pos,len) { if(pos < 0 || len < 0 || pos + len > this.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } return new haxe_io_Bytes(this.b.buffer.slice(pos + this.b.byteOffset,pos + this.b.byteOffset + len)); } ,compare: function(other) { var b1 = this.b; var b2 = other.b; var len = this.length < other.length ? this.length : other.length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; if(b1[i] != b2[i]) { return b1[i] - b2[i]; } } return this.length - other.length; } ,initData: function() { if(this.data == null) { this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); } } ,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); } ,getUInt16: function(pos) { if(this.data == null) { this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); } return this.data.getUint16(pos,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); } ,getInt32: function(pos) { if(this.data == null) { this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); } return this.data.getInt32(pos,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); } ,getInt64: function(pos) { return new haxe__$Int64__$_$_$Int64(this.getInt32(pos + 4),this.getInt32(pos)); } ,setInt64: function(pos,v) { this.setInt32(pos,v.low); this.setInt32(pos + 4,v.high); } ,getString: function(pos,len,encoding) { if(pos < 0 || len < 0 || pos + len > this.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } var s = ""; var b = this.b; var fcc = _$String_String_$Impl_$.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; } ,readString: function(pos,len) { return this.getString(pos,len); } ,toString: function() { return this.getString(0,this.length); } ,toHex: function() { var s_b = ""; var chars = []; var str = "0123456789abcdef"; var _g = 0; var _g1 = str.length; while(_g < _g1) { var i = _g++; chars.push(HxOverrides.cca(str,i)); } var _g = 0; var _g1 = this.length; while(_g < _g1) { var i = _g++; var c = this.b[i]; s_b += String.fromCodePoint(chars[c >> 4]); s_b += String.fromCodePoint(chars[c & 15]); } return s_b; } ,getData: function() { return this.b.bufferValue; } ,__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.__isInterface__ = true; 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 ,writeObject: null ,writeShort: null ,writeUnsignedInt: null ,writeUTF: null ,writeUTFBytes: 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.__isInterface__ = true; 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 ,readObject: 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 = new haxe_io_Bytes(new ArrayBuffer(length)); haxe_io_Bytes.call(this,bytes.b.buffer); this.__length = length; if(openfl_utils_ByteArrayData.__defaultEndian == null) { if(lime_system_System.get_endianness() == lime_system_Endian.LITTLE_ENDIAN) { openfl_utils_ByteArrayData.__defaultEndian = 1; } else { openfl_utils_ByteArrayData.__defaultEndian = 0; } } this.__endian = openfl_utils_ByteArrayData.__defaultEndian; this.objectEncoding = openfl_utils_ByteArrayData.defaultObjectEncoding; 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.__properties__ = {set_defaultEndian:"set_defaultEndian",get_defaultEndian:"get_defaultEndian"}; openfl_utils_ByteArrayData.fromBytes = function(bytes) { var result = new openfl_utils_ByteArrayData(); result.__fromBytes(bytes); return result; }; openfl_utils_ByteArrayData.get_defaultEndian = function() { if(openfl_utils_ByteArrayData.__defaultEndian == null) { if(lime_system_System.get_endianness() == lime_system_Endian.LITTLE_ENDIAN) { openfl_utils_ByteArrayData.__defaultEndian = 1; } else { openfl_utils_ByteArrayData.__defaultEndian = 0; } } return openfl_utils_ByteArrayData.__defaultEndian; }; openfl_utils_ByteArrayData.set_defaultEndian = function(value) { return openfl_utils_ByteArrayData.__defaultEndian = value; }; 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) { if(algorithm == null) { algorithm = 2; } if(this.__length > this.length) { var cacheLength = this.length; this.length = this.__length; var data = new haxe_io_Bytes(new ArrayBuffer(cacheLength)); data.blit(0,this,0,cacheLength); this.b = data.b; this.__length = data.length; this.data = data.data; this.length = cacheLength; } var limeBytes = this; var bytes; switch(algorithm) { case 0: bytes = lime_utils_Bytes.compress(limeBytes,lime_utils_CompressionAlgorithm.DEFLATE); break; case 1: bytes = lime_utils_Bytes.compress(limeBytes,lime_utils_CompressionAlgorithm.LZMA); break; default: bytes = lime_utils_Bytes.compress(limeBytes,lime_utils_CompressionAlgorithm.ZLIB); } if(bytes != null) { this.b = bytes.b; this.__length = bytes.length; this.data = bytes.data; 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.b[this.position++] != 0; } else { throw new openfl_errors_EOFError(); } } ,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 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.__endian == 1) { if(this.position + 8 > this.length) { throw new openfl_errors_EOFError(); } this.position += 8; return this.getDouble(this.position - 8); } else { var ch1 = this.readInt(); var ch2 = this.readInt(); return haxe_io_FPHelper.i64ToDouble(ch2,ch1); } } ,readFloat: function() { if(this.__endian == 1) { if(this.position + 4 > this.length) { throw new openfl_errors_EOFError(); } this.position += 4; return this.getFloat(this.position - 4); } else { return haxe_io_FPHelper.i32ToFloat(this.readInt()); } } ,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); } ,readObject: function() { switch(this.objectEncoding) { case 10: var data = this.readUTF(); return haxe_Unserializer.run(data); case 12: var data = this.readUTF(); return JSON.parse(data); default: return null; } } ,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.b[this.position++]; } else { throw new openfl_errors_EOFError(); } } ,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 openfl_errors_EOFError(); } this.position += length; return this.getString(this.position - length,length); } ,uncompress: function(algorithm) { if(algorithm == null) { algorithm = 2; } if(this.__length > this.length) { var cacheLength = this.length; this.length = this.__length; var data = new haxe_io_Bytes(new ArrayBuffer(cacheLength)); data.blit(0,this,0,cacheLength); this.b = data.b; this.__length = data.length; this.data = data.data; this.length = cacheLength; } var limeBytes = this; var bytes; switch(algorithm) { case 0: bytes = lime_utils_Bytes.decompress(limeBytes,lime_utils_CompressionAlgorithm.DEFLATE); break; case 1: bytes = lime_utils_Bytes.decompress(limeBytes,lime_utils_CompressionAlgorithm.LZMA); break; default: bytes = lime_utils_Bytes.decompress(limeBytes,lime_utils_CompressionAlgorithm.ZLIB); } if(bytes != null) { this.b = bytes.b; this.__length = bytes.length; this.data = bytes.data; this.length = this.__length; } this.position = 0; } ,writeBoolean: function(value) { this.writeByte(value ? 1 : 0); } ,writeByte: function(value) { this.__resize(this.position + 1); this.b[this.position++] = value & 255 & 255; } ,writeBytes: function(bytes,offset,length) { if(length == null) { length = 0; } if(offset == null) { offset = 0; } if(openfl_utils_ByteArray.get_length(bytes) == 0) { return; } if(length == 0) { length = openfl_utils_ByteArray.get_length(bytes) - offset; } this.__resize(this.position + length); this.blit(this.position,bytes,offset,length); this.position = this.position + length; } ,writeDouble: function(value) { var int64 = haxe_io_FPHelper.doubleToI64(value); if(this.__endian == 1) { this.writeInt(int64.low); this.writeInt(int64.high); } else { this.writeInt(int64.high); this.writeInt(int64.low); } } ,writeFloat: function(value) { if(this.__endian == 1) { this.__resize(this.position + 4); this.setFloat(this.position,value); this.position += 4; } else { var int = haxe_io_FPHelper.floatToI32(value); this.writeInt(int); } } ,writeInt: function(value) { this.__resize(this.position + 4); if(this.__endian == 1) { this.b[this.position++] = value & 255 & 255; this.b[this.position++] = value >> 8 & 255 & 255; this.b[this.position++] = value >> 16 & 255 & 255; this.b[this.position++] = value >> 24 & 255 & 255; } else { this.b[this.position++] = value >> 24 & 255 & 255; this.b[this.position++] = value >> 16 & 255 & 255; this.b[this.position++] = value >> 8 & 255 & 255; this.b[this.position++] = value & 255 & 255; } } ,writeMultiByte: function(value,charSet) { this.writeUTFBytes(value); } ,writeObject: function(object) { switch(this.objectEncoding) { case 10: var value = haxe_Serializer.run(object); this.writeUTF(value); break; case 12: var value = JSON.stringify(object); this.writeUTF(value); break; default: return; } } ,writeShort: function(value) { this.__resize(this.position + 2); if(this.__endian == 1) { this.b[this.position++] = value & 255; this.b[this.position++] = value >> 8 & 255; } else { this.b[this.position++] = value >> 8 & 255; this.b[this.position++] = value & 255; } } ,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.fromBytes(bytes)); } ,writeUTFBytes: function(value) { var bytes = haxe_io_Bytes.ofString(value); this.writeBytes(openfl_utils_ByteArray.fromBytes(bytes)); } ,__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 = new haxe_io_Bytes(new ArrayBuffer((size + 1) * 3 >> 1)); if(this.__length > 0) { var cacheLength = this.length; this.length = this.__length; bytes.blit(0,this,0,this.__length); this.length = cacheLength; } 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 flixel_system_VirtualInputData = function(length) { if(length == null) { length = 0; } openfl_utils_ByteArrayData.call(this); var bytes = haxe_Resource.getBytes(flixel_system_VirtualInputData.resourceName); this.__fromBytes(bytes); }; $hxClasses["flixel.system.VirtualInputData"] = flixel_system_VirtualInputData; flixel_system_VirtualInputData.__name__ = "flixel.system.VirtualInputData"; flixel_system_VirtualInputData.__super__ = openfl_utils_ByteArrayData; flixel_system_VirtualInputData.prototype = $extend(openfl_utils_ByteArrayData.prototype,{ __class__: flixel_system_VirtualInputData }); var flixel_system_FlxAngelCodeAsset = {}; flixel_system_FlxAngelCodeAsset.parse = function(this1) { return flixel_graphics_frames_bmfont_BMFont.parse(this1); }; var flixel_system_FlxXmlAsset = {}; flixel_system_FlxXmlAsset.getXml = function(this1) { if(typeof(this1) == "string") { var str = this1; if(openfl_utils_Assets.exists(str)) { return Xml.parse(openfl_utils_Assets.getText(str)); } return Xml.parse(str); } return js_Boot.__cast(this1 , Xml); }; flixel_system_FlxXmlAsset.fromPath = function(path) { return Xml.parse(openfl_utils_Assets.getText(path)); }; flixel_system_FlxXmlAsset.fromXmlString = function(data) { return Xml.parse(data); }; var flixel_system_FlxJsonAsset = {}; flixel_system_FlxJsonAsset.getData = function(this1) { if(typeof(this1) == "string") { var str = this1; if(openfl_utils_Assets.exists(str)) { return JSON.parse(openfl_utils_Assets.getText(str)); } return JSON.parse(str); } return this1; }; flixel_system_FlxJsonAsset.fromPath = function(path) { return JSON.parse(openfl_utils_Assets.getText(path)); }; flixel_system_FlxJsonAsset.fromDataString = function(data) { return JSON.parse(data); }; var flixel_system_FlxAssets = function() { }; $hxClasses["flixel.system.FlxAssets"] = flixel_system_FlxAssets; flixel_system_FlxAssets.__name__ = "flixel.system.FlxAssets"; flixel_system_FlxAssets.drawLogo = function(graph) { graph.beginFill(47394); graph.moveTo(50,13); graph.lineTo(51,13); graph.lineTo(87,50); graph.lineTo(87,51); graph.lineTo(51,87); graph.lineTo(50,87); graph.lineTo(13,51); graph.lineTo(13,50); graph.lineTo(50,13); graph.endFill(); graph.beginFill(16761138); graph.moveTo(0,0); graph.lineTo(25,0); graph.lineTo(50,13); graph.lineTo(13,50); graph.lineTo(0,25); graph.lineTo(0,0); graph.endFill(); graph.beginFill(16066382); graph.moveTo(100,0); graph.lineTo(75,0); graph.lineTo(51,13); graph.lineTo(87,50); graph.lineTo(100,25); graph.lineTo(100,0); graph.endFill(); graph.beginFill(3555839); graph.moveTo(0,100); graph.lineTo(25,100); graph.lineTo(50,87); graph.lineTo(13,51); graph.lineTo(0,75); graph.lineTo(0,100); graph.endFill(); graph.beginFill(314875); graph.moveTo(100,100); graph.lineTo(75,100); graph.lineTo(51,87); graph.lineTo(87,51); graph.lineTo(100,75); graph.lineTo(100,100); graph.endFill(); }; flixel_system_FlxAssets.getBitmapData = function(id) { if(openfl_utils_Assets.exists(id)) { return openfl_utils_Assets.getBitmapData(id,false); } flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + id + "'.",flixel_system_debug_log_LogStyle.ERROR,true); return null; }; flixel_system_FlxAssets.getBitmapFromClass = function(source) { return Type.createInstance(source,[]); }; flixel_system_FlxAssets.resolveBitmapData = function(Graphic) { if(((Graphic) instanceof openfl_display_BitmapData)) { return Graphic; } else if(js_Boot.__instanceof(Graphic,Class)) { return Type.createInstance(Graphic,[]); } else if(typeof(Graphic) == "string") { if(openfl_utils_Assets.exists(Graphic)) { return openfl_utils_Assets.getBitmapData(Graphic,false); } else { flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + Graphic + "'.",flixel_system_debug_log_LogStyle.ERROR,true); return null; } } return null; }; flixel_system_FlxAssets.resolveKey = function(Graphic,Key) { if(Key != null) { return Key; } if(((Graphic) instanceof openfl_display_BitmapData)) { return Key; } else if(js_Boot.__instanceof(Graphic,Class)) { var _this = flixel_FlxG.bitmap; return Graphic.__name__; } else if(typeof(Graphic) == "string") { return Graphic; } return null; }; flixel_system_FlxAssets.getSound = function(id) { if(!StringTools.endsWith(id,".mp3") && !StringTools.endsWith(id,".ogg") && !StringTools.endsWith(id,".wav")) { id += "." + flixel_system_FlxAssets.defaultSoundExtension; } return openfl_utils_Assets.getSound(id); }; flixel_system_FlxAssets.getVirtualInputFrames = function() { var bitmapData = new flixel_system_GraphicVirtualInput(0,0); Reflect.setProperty(bitmapData,"width",399); Reflect.setProperty(bitmapData,"height",183); var graphic = flixel_graphics_FlxGraphic.fromBitmapData(bitmapData); return flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker(graphic,Std.string(new flixel_system_VirtualInputData())); }; var flixel_system_FlxBGSprite = function() { flixel_FlxSprite.call(this); this.makeGraphic(1,1,-1,true,flixel_FlxG.bitmap.getUniqueKey("bg_graphic_")); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); }; $hxClasses["flixel.system.FlxBGSprite"] = flixel_system_FlxBGSprite; flixel_system_FlxBGSprite.__name__ = "flixel.system.FlxBGSprite"; flixel_system_FlxBGSprite.__super__ = flixel_FlxSprite; flixel_system_FlxBGSprite.prototype = $extend(flixel_FlxSprite.prototype,{ draw: function() { var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists) { continue; } this._matrix.identity(); this._matrix.scale(camera.width - camera.viewMarginX * 2,camera.height - camera.viewMarginY * 2); camera.drawPixels(this.frame,null,this._matrix,this.colorTransform); } } ,__class__: flixel_system_FlxBGSprite }); var flixel_system__$FlxBasePreloader_DefaultPreloader = function() { openfl_display_Sprite.call(this); this.addEventListener("addedToStage",$bind(this,this.onAddedToStage)); }; $hxClasses["flixel.system._FlxBasePreloader.DefaultPreloader"] = flixel_system__$FlxBasePreloader_DefaultPreloader; flixel_system__$FlxBasePreloader_DefaultPreloader.__name__ = "flixel.system._FlxBasePreloader.DefaultPreloader"; flixel_system__$FlxBasePreloader_DefaultPreloader.__super__ = openfl_display_Sprite; flixel_system__$FlxBasePreloader_DefaultPreloader.prototype = $extend(openfl_display_Sprite.prototype,{ onAddedToStage: function(_) { this.removeEventListener("addedToStage",$bind(this,this.onAddedToStage)); this.onInit(); this.onUpdate(this.get_loaderInfo().bytesLoaded,this.get_loaderInfo().bytesTotal); this.addEventListener("progress",$bind(this,this.onProgress)); this.addEventListener("complete",$bind(this,this.onComplete)); } ,onComplete: function(event) { event.preventDefault(); this.removeEventListener("progress",$bind(this,this.onProgress)); this.removeEventListener("complete",$bind(this,this.onComplete)); this.onLoaded(); } ,onProgress: function(event) { this.onUpdate(event.bytesLoaded | 0,event.bytesTotal | 0); } ,onInit: function() { } ,onLoaded: function() { this.dispatchEvent(new openfl_events_Event("unload")); } ,onUpdate: function(bytesLoaded,bytesTotal) { var percentLoaded = 0.0; if(bytesTotal > 0) { percentLoaded = bytesLoaded / bytesTotal; if(percentLoaded > 1) { percentLoaded = 1; } } } ,__class__: flixel_system__$FlxBasePreloader_DefaultPreloader }); var flixel_system_FlxBasePreloader = function(MinDisplayTime,AllowedURLs) { if(MinDisplayTime == null) { MinDisplayTime = 0; } this._destroyed = false; this._urlChecked = false; this._loaded = false; this._percent = 0; this.siteLockBodyText = "It appears the website you are using is hosting an unauthorized copy of this game. " + "Storage or redistribution of this content, without the express permission of the " + "developer or other copyright holder, is prohibited under copyright law.\n\n" + "Thank you for your interest in this game! Please support the developer by " + "visiting the following website to play the game:"; this.siteLockTitleText = "Sorry."; this.siteLockURLIndex = 0; this.minDisplayTime = 0; flixel_system__$FlxBasePreloader_DefaultPreloader.call(this); this.minDisplayTime = MinDisplayTime; if(AllowedURLs != null) { this.allowedURLs = AllowedURLs; } else { this.allowedURLs = []; } this._startTime = new Date().getTime(); }; $hxClasses["flixel.system.FlxBasePreloader"] = flixel_system_FlxBasePreloader; flixel_system_FlxBasePreloader.__name__ = "flixel.system.FlxBasePreloader"; flixel_system_FlxBasePreloader.__super__ = flixel_system__$FlxBasePreloader_DefaultPreloader; flixel_system_FlxBasePreloader.prototype = $extend(flixel_system__$FlxBasePreloader_DefaultPreloader.prototype,{ minDisplayTime: null ,allowedURLs: null ,siteLockURLIndex: null ,siteLockTitleText: null ,siteLockBodyText: null ,_percent: null ,_width: null ,_height: null ,_loaded: null ,_urlChecked: null ,_destroyed: null ,_startTime: null ,create: function() { } ,onInit: function() { flixel_system__$FlxBasePreloader_DefaultPreloader.prototype.onInit.call(this); openfl_Lib.get_current().stage.set_scaleMode(2); openfl_Lib.get_current().stage.align = 6; this.create(); this.addEventListener("enterFrame",$bind(this,this.onEnterFrame)); this.checkSiteLock(); } ,onUpdate: function(bytesLoaded,bytesTotal) { this._percent = bytesTotal != 0 ? bytesLoaded / bytesTotal : 0; } ,onEnterFrame: function(E) { var time = new Date().getTime() - this._startTime; var min = this.minDisplayTime * 1000; var percent = this._percent; if(min > 0 && this._percent > time / min) { percent = time / min; } if(!this._destroyed) { this.update(percent); } if(this._loaded && (min <= 0 || time / min >= 1)) { this.removeEventListener("enterFrame",$bind(this,this.onEnterFrame)); flixel_system__$FlxBasePreloader_DefaultPreloader.prototype.onLoaded.call(this); this.destroy(); this._destroyed = true; } } ,destroy: function() { } ,update: function(Percent) { } ,onLoaded: function() { this._loaded = true; this._percent = 1; } ,createBitmap: function(bitmapDataClass,onLoad) { var bmp = new openfl_display_Bitmap(); bmp.set_bitmapData(Type.createInstance(bitmapDataClass,[0,0,true,-1,function(_) { onLoad(bmp); }])); return bmp; } ,loadBitmapData: function(bitmapDataClass,onLoad) { return Type.createInstance(bitmapDataClass,[0,0,true,-1,onLoad]); } ,checkSiteLock: function() { if(this._urlChecked) { return; } if(!this.isHostUrlAllowed()) { this.removeChildren(); this.removeEventListener("enterFrame",$bind(this,this.onEnterFrame)); this.createSiteLockFailureScreen(); } else { this._urlChecked = true; } } ,createSiteLockFailureScreen: function() { this.addChild(this.createSiteLockFailureBackground(16777215,15066597)); this.addChild(this.createSiteLockFailureIcon(15066597,0.9)); this.addChild(this.createSiteLockFailureText(30)); } ,createSiteLockFailureBackground: function(innerColor,outerColor) { var shape = new openfl_display_Shape(); var graphics = shape.get_graphics(); graphics.clear(); var fillMatrix = new openfl_geom_Matrix(); fillMatrix.createGradientBox(1,1,0,-0.5,-0.5); var scaling = Math.max(this.stage.stageWidth,this.stage.stageHeight); fillMatrix.scale(scaling,scaling); fillMatrix.translate(0.5 * this.stage.stageWidth,0.5 * this.stage.stageHeight); graphics.beginGradientFill(1,[innerColor,outerColor],[1,1],[0,255],fillMatrix); graphics.drawRect(0,0,this.stage.stageWidth,this.stage.stageHeight); graphics.endFill(); return shape; } ,createSiteLockFailureIcon: function(color,scale) { var shape = new openfl_display_Shape(); var graphics = shape.get_graphics(); graphics.clear(); graphics.beginFill(color); var array = [1,6,2,2,2,6,6,2,2,2,6,1,6,2,6,2,6,2,6,1,6,6,2,2,2,6,6]; var vector = openfl_Vector.toIntVector(null); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; vector.set(i,array[i]); } var tmp = vector; var array = [120.0,0,164,0,200,35,200,79,200,130,160,130,160,79,160,57,142,40,120,40,97,40,79,57,79,79,80,130,40,130,40,79,40,35,75,0,120,0,220,140,231,140,240,148,240,160,240,300,240,311,231,320,220,320,20,320,8,320,0,311,0,300,0,160,0,148,8,140,20,140,120,190,108,190,100,198,100,210,100,217,104,223,110,227,110,270,130,270,130,227,135,223,140,217,140,210,140,198,131,190,120,190]; var vector = openfl_Vector.toFloatVector(null); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; vector.set(i,array[i]); } graphics.drawPath(tmp,vector,1); graphics.endFill(); var transformMatrix = new openfl_geom_Matrix(); transformMatrix.translate(-0.5 * shape.get_width(),-0.5 * shape.get_height()); var scaling = scale * Math.min(this.stage.stageWidth / shape.get_width(),this.stage.stageHeight / shape.get_height()); transformMatrix.scale(scaling,scaling); transformMatrix.translate(0.5 * this.stage.stageWidth,0.5 * this.stage.stageHeight); shape.get_transform().set_matrix(transformMatrix); return shape; } ,createSiteLockFailureText: function(margin) { var sprite = new openfl_display_Sprite(); var bounds = new openfl_geom_Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight); bounds.inflate(-margin,-margin); var titleText = new openfl_text_TextField(); var titleTextFormat = new openfl_text_TextFormat("_sans",33,3355443,true); titleTextFormat.align = 3; titleText.set_defaultTextFormat(titleTextFormat); titleText.set_selectable(false); titleText.set_width(bounds.width); titleText.set_text(this.siteLockTitleText); var bodyText = new openfl_text_TextField(); var bodyTextFormat = new openfl_text_TextFormat("_sans",22,3355443); bodyTextFormat.align = 2; bodyText.set_defaultTextFormat(bodyTextFormat); bodyText.set_multiline(true); bodyText.set_wordWrap(true); bodyText.set_selectable(false); bodyText.set_width(bounds.width); bodyText.set_text(this.siteLockBodyText); var hyperlinkText = new openfl_text_TextField(); var hyperlinkTextFormat = new openfl_text_TextFormat("_sans",22,7247820,true,false,true); hyperlinkTextFormat.align = 0; hyperlinkTextFormat.url = this.allowedURLs[this.siteLockURLIndex]; hyperlinkText.set_defaultTextFormat(hyperlinkTextFormat); hyperlinkText.set_selectable(true); hyperlinkText.set_width(bounds.width); hyperlinkText.set_text(this.allowedURLs[this.siteLockURLIndex]); this.adjustSiteLockTextFields(titleText,bodyText,hyperlinkText); var gutterSize = 4; titleText.set_height(titleText.get_textHeight() + gutterSize); bodyText.set_height(bodyText.get_textHeight() + gutterSize); hyperlinkText.set_height(hyperlinkText.get_textHeight() + gutterSize); titleText.set_x(bodyText.set_x(hyperlinkText.set_x(bounds.get_left()))); titleText.set_y(bounds.get_top()); bodyText.set_y(titleText.get_y() + 2.0 * titleText.get_height()); hyperlinkText.set_y(bodyText.get_y() + bodyText.get_height() + hyperlinkText.get_height()); sprite.addChild(titleText); sprite.addChild(bodyText); sprite.addChild(hyperlinkText); return sprite; } ,adjustSiteLockTextFields: function(titleText,bodyText,hyperlinkText) { } ,goToMyURL: function(e) { if(this.allowedURLs[this.siteLockURLIndex] != "localhost") { var url = this.allowedURLs[this.siteLockURLIndex]; if(!new EReg("^.\\w+?:/*","").match(url)) { url = "https://" + url; } openfl_Lib.getURL(new openfl_net_URLRequest(url),"_blank"); } else { openfl_Lib.getURL(new openfl_net_URLRequest(this.allowedURLs[this.siteLockURLIndex])); } } ,isHostUrlAllowed: function() { if(this.allowedURLs.length == 0) { return true; } var homeURL = $global.location.href; var homeDomain = flixel_util_FlxStringUtil.getDomain(homeURL); var _g = 0; var _g1 = this.allowedURLs; while(_g < _g1.length) { var allowedURL = _g1[_g]; ++_g; var allowedDomain = flixel_util_FlxStringUtil.getDomain(allowedURL); if(allowedDomain == homeDomain) { return true; } } return false; } ,__class__: flixel_system_FlxBasePreloader }); var flixel_system_FlxLinkedList = function() { this.exists = true; }; $hxClasses["flixel.system.FlxLinkedList"] = flixel_system_FlxLinkedList; flixel_system_FlxLinkedList.__name__ = "flixel.system.FlxLinkedList"; flixel_system_FlxLinkedList.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_system_FlxLinkedList._cachedListsHead = null; flixel_system_FlxLinkedList.recycle = function() { if(flixel_system_FlxLinkedList._cachedListsHead != null) { var cachedList = flixel_system_FlxLinkedList._cachedListsHead; flixel_system_FlxLinkedList._cachedListsHead = flixel_system_FlxLinkedList._cachedListsHead.next; flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST--; cachedList.exists = true; cachedList.next = null; return cachedList; } else { return new flixel_system_FlxLinkedList(); } }; flixel_system_FlxLinkedList.clearCache = function() { while(flixel_system_FlxLinkedList._cachedListsHead != null) { var node = flixel_system_FlxLinkedList._cachedListsHead; flixel_system_FlxLinkedList._cachedListsHead = flixel_system_FlxLinkedList._cachedListsHead.next; node.object = null; node.next = null; } flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST = 0; }; flixel_system_FlxLinkedList.prototype = { object: null ,next: null ,exists: null ,destroy: function() { if(!this.exists) { return; } this.object = null; if(this.next != null) { this.next.destroy(); } this.exists = false; this.next = flixel_system_FlxLinkedList._cachedListsHead; flixel_system_FlxLinkedList._cachedListsHead = this; flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST++; } ,__class__: flixel_system_FlxLinkedList }; var flixel_system__$FlxPreloader_GraphicLogoLight = 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(flixel_system__$FlxPreloader_GraphicLogoLight.preload != null) { this.__fromImage(flixel_system__$FlxPreloader_GraphicLogoLight.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system__$FlxPreloader_GraphicLogoLight.resourceName),flixel_system__$FlxPreloader_GraphicLogoLight.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system__$FlxPreloader_GraphicLogoLight.preload == null) { flixel_system__$FlxPreloader_GraphicLogoLight.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system._FlxPreloader.GraphicLogoLight"] = flixel_system__$FlxPreloader_GraphicLogoLight; flixel_system__$FlxPreloader_GraphicLogoLight.__name__ = "flixel.system._FlxPreloader.GraphicLogoLight"; flixel_system__$FlxPreloader_GraphicLogoLight.preload = null; flixel_system__$FlxPreloader_GraphicLogoLight.__super__ = openfl_display_BitmapData; flixel_system__$FlxPreloader_GraphicLogoLight.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system__$FlxPreloader_GraphicLogoLight }); var flixel_system__$FlxPreloader_GraphicLogoCorners = 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(flixel_system__$FlxPreloader_GraphicLogoCorners.preload != null) { this.__fromImage(flixel_system__$FlxPreloader_GraphicLogoCorners.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system__$FlxPreloader_GraphicLogoCorners.resourceName),flixel_system__$FlxPreloader_GraphicLogoCorners.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system__$FlxPreloader_GraphicLogoCorners.preload == null) { flixel_system__$FlxPreloader_GraphicLogoCorners.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system._FlxPreloader.GraphicLogoCorners"] = flixel_system__$FlxPreloader_GraphicLogoCorners; flixel_system__$FlxPreloader_GraphicLogoCorners.__name__ = "flixel.system._FlxPreloader.GraphicLogoCorners"; flixel_system__$FlxPreloader_GraphicLogoCorners.preload = null; flixel_system__$FlxPreloader_GraphicLogoCorners.__super__ = openfl_display_BitmapData; flixel_system__$FlxPreloader_GraphicLogoCorners.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system__$FlxPreloader_GraphicLogoCorners }); var flixel_system_FlxPreloader = function(MinDisplayTime,AllowedURLs) { if(MinDisplayTime == null) { MinDisplayTime = 0; } flixel_system_FlxBasePreloader.call(this,MinDisplayTime,AllowedURLs); }; $hxClasses["flixel.system.FlxPreloader"] = flixel_system_FlxPreloader; flixel_system_FlxPreloader.__name__ = "flixel.system.FlxPreloader"; flixel_system_FlxPreloader.__super__ = flixel_system_FlxBasePreloader; flixel_system_FlxPreloader.prototype = $extend(flixel_system_FlxBasePreloader.prototype,{ _buffer: null ,_bmpBar: null ,_text: null ,_logo: null ,_logoGlow: null ,create: function() { var _gthis = this; this._buffer = new openfl_display_Sprite(); this._buffer.set_scaleX(this._buffer.set_scaleY(2)); this.addChild(this._buffer); this._width = openfl_Lib.get_current().stage.stageWidth / this._buffer.get_scaleX() | 0; this._height = openfl_Lib.get_current().stage.stageHeight / this._buffer.get_scaleY() | 0; this._buffer.addChild(new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,this._height,false,13406))); var logoLight = this.createBitmap(flixel_system__$FlxPreloader_GraphicLogoLight,function(logoLight) { logoLight.set_width(logoLight.set_height(_gthis._height)); logoLight.set_x((_gthis._width - logoLight.get_width()) / 2); }); logoLight.smoothing = true; this._buffer.addChild(logoLight); this._bmpBar = new openfl_display_Bitmap(new openfl_display_BitmapData(1,7,false,6253311)); this._bmpBar.set_x(4); this._bmpBar.set_y(this._height - 11); this._buffer.addChild(this._bmpBar); this._text = new openfl_text_TextField(); this._text.set_defaultTextFormat(new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEFAULT,8,6253311)); this._text.set_embedFonts(true); this._text.set_selectable(false); this._text.set_multiline(false); this._text.set_x(2); this._text.set_y(this._bmpBar.get_y() - 11); this._text.set_width(200); this._buffer.addChild(this._text); this._logo = new openfl_display_Sprite(); flixel_system_FlxAssets.drawLogo(this._logo.get_graphics()); this._logo.set_scaleX(this._logo.set_scaleY(this._height / 8 * 0.04)); this._logo.set_x((this._width - this._logo.get_width()) / 2); this._logo.set_y((this._height - this._logo.get_height()) / 2); this._buffer.addChild(this._logo); this._logoGlow = new openfl_display_Sprite(); flixel_system_FlxAssets.drawLogo(this._logoGlow.get_graphics()); this._logoGlow.set_blendMode(12); this._logoGlow.set_scaleX(this._logoGlow.set_scaleY(this._height / 8 * 0.04)); this._logoGlow.set_x((this._width - this._logoGlow.get_width()) / 2); this._logoGlow.set_y((this._height - this._logoGlow.get_height()) / 2); this._buffer.addChild(this._logoGlow); var corners = this.createBitmap(flixel_system__$FlxPreloader_GraphicLogoCorners,function(corners) { corners.set_width(_gthis._width); corners.set_height(_gthis.get_height()); }); corners.smoothing = true; this._buffer.addChild(corners); var bitmap = new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,this._height,false,16777215)); var i = 0; var j = 0; while(i < this._height) { j = 0; while(j < this._width) bitmap.get_bitmapData().setPixel(j++,i,0); i += 2; } bitmap.set_blendMode(11); bitmap.set_alpha(0.25); this._buffer.addChild(bitmap); flixel_system_FlxBasePreloader.prototype.create.call(this); } ,destroy: function() { if(this._buffer != null) { this.removeChild(this._buffer); } this._buffer = null; this._bmpBar = null; this._text = null; this._logo = null; this._logoGlow = null; flixel_system_FlxBasePreloader.prototype.destroy.call(this); } ,update: function(Percent) { this._bmpBar.set_scaleX(Percent * (this._width - 8)); this._text.set_text(Std.string(flixel_FlxG.VERSION) + " " + (Percent * 100 | 0) + "%"); if(Percent < 0.1) { this._logoGlow.set_alpha(0); this._logo.set_alpha(0); } else if(Percent < 0.15) { this._logoGlow.set_alpha(Math.random()); this._logo.set_alpha(0); } else if(Percent < 0.2) { this._logoGlow.set_alpha(0); this._logo.set_alpha(0); } else if(Percent < 0.25) { this._logoGlow.set_alpha(0); this._logo.set_alpha(Math.random()); } else if(Percent < 0.7) { this._logoGlow.set_alpha((Percent - 0.45) / 0.45); this._logo.set_alpha(1); } else if(Percent > 0.8 && Percent < 0.9) { this._logoGlow.set_alpha(1 - (Percent - 0.8) / 0.1); this._logo.set_alpha(0); } else if(Percent > 0.9) { this._buffer.set_alpha(1 - (Percent - 0.9) / 0.1); } } ,__class__: flixel_system_FlxPreloader }); var flixel_system_FlxQuadTree = function(X,Y,Width,Height,Parent) { flixel_math_FlxRect.call(this); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } this.x = X1; this.y = Y1; this.width = Width1; this.height = Height1; this.reset(X,Y,Width,Height,Parent); }; $hxClasses["flixel.system.FlxQuadTree"] = flixel_system_FlxQuadTree; flixel_system_FlxQuadTree.__name__ = "flixel.system.FlxQuadTree"; flixel_system_FlxQuadTree.divisions = null; flixel_system_FlxQuadTree._min = null; flixel_system_FlxQuadTree._object = null; flixel_system_FlxQuadTree._objectLeftEdge = null; flixel_system_FlxQuadTree._objectTopEdge = null; flixel_system_FlxQuadTree._objectRightEdge = null; flixel_system_FlxQuadTree._objectBottomEdge = null; flixel_system_FlxQuadTree._list = null; flixel_system_FlxQuadTree._useBothLists = null; flixel_system_FlxQuadTree._processingCallback = null; flixel_system_FlxQuadTree._notifyCallback = null; flixel_system_FlxQuadTree._iterator = null; flixel_system_FlxQuadTree._objectHullX = null; flixel_system_FlxQuadTree._objectHullY = null; flixel_system_FlxQuadTree._objectHullWidth = null; flixel_system_FlxQuadTree._objectHullHeight = null; flixel_system_FlxQuadTree._checkObjectHullX = null; flixel_system_FlxQuadTree._checkObjectHullY = null; flixel_system_FlxQuadTree._checkObjectHullWidth = null; flixel_system_FlxQuadTree._checkObjectHullHeight = null; flixel_system_FlxQuadTree._cachedTreesHead = null; flixel_system_FlxQuadTree.recycle = function(X,Y,Width,Height,Parent) { if(flixel_system_FlxQuadTree._cachedTreesHead != null) { var cachedTree = flixel_system_FlxQuadTree._cachedTreesHead; flixel_system_FlxQuadTree._cachedTreesHead = flixel_system_FlxQuadTree._cachedTreesHead.next; flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES--; cachedTree.reset(X,Y,Width,Height,Parent); return cachedTree; } else { return new flixel_system_FlxQuadTree(X,Y,Width,Height,Parent); } }; flixel_system_FlxQuadTree.clearCache = function() { while(flixel_system_FlxQuadTree._cachedTreesHead != null) { var node = flixel_system_FlxQuadTree._cachedTreesHead; flixel_system_FlxQuadTree._cachedTreesHead = flixel_system_FlxQuadTree._cachedTreesHead.next; node.next = null; } flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES = 0; }; flixel_system_FlxQuadTree.__super__ = flixel_math_FlxRect; flixel_system_FlxQuadTree.prototype = $extend(flixel_math_FlxRect.prototype,{ exists: null ,_canSubdivide: null ,_headA: null ,_tailA: null ,_headB: null ,_tailB: null ,_northWestTree: null ,_northEastTree: null ,_southEastTree: null ,_southWestTree: null ,_leftEdge: null ,_rightEdge: null ,_topEdge: null ,_bottomEdge: null ,_halfWidth: null ,_halfHeight: null ,_midpointX: null ,_midpointY: null ,next: null ,reset: function(X,Y,Width,Height,Parent) { this.exists = true; var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } this.x = X1; this.y = Y1; this.width = Width1; this.height = Height1; this._headA = this._tailA = flixel_system_FlxLinkedList.recycle(); this._headB = this._tailB = flixel_system_FlxLinkedList.recycle(); if(Parent != null) { var iterator; var ot; if(Parent._headA.object != null) { iterator = Parent._headA; while(iterator != null) { if(this._tailA.object != null) { ot = this._tailA; this._tailA = flixel_system_FlxLinkedList.recycle(); ot.next = this._tailA; } this._tailA.object = iterator.object; iterator = iterator.next; } } if(Parent._headB.object != null) { iterator = Parent._headB; while(iterator != null) { if(this._tailB.object != null) { ot = this._tailB; this._tailB = flixel_system_FlxLinkedList.recycle(); ot.next = this._tailB; } this._tailB.object = iterator.object; iterator = iterator.next; } } } else { flixel_system_FlxQuadTree._min = Math.floor((this.width + this.height) / (2 * flixel_system_FlxQuadTree.divisions)); } this._canSubdivide = this.width > flixel_system_FlxQuadTree._min || this.height > flixel_system_FlxQuadTree._min; this._northWestTree = null; this._northEastTree = null; this._southEastTree = null; this._southWestTree = null; this._leftEdge = this.x; this._rightEdge = this.x + this.width; this._halfWidth = this.width / 2; this._midpointX = this._leftEdge + this._halfWidth; this._topEdge = this.y; this._bottomEdge = this.y + this.height; this._halfHeight = this.height / 2; this._midpointY = this._topEdge + this._halfHeight; } ,destroy: function() { this._headA = flixel_util_FlxDestroyUtil.destroy(this._headA); this._headB = flixel_util_FlxDestroyUtil.destroy(this._headB); this._tailA = flixel_util_FlxDestroyUtil.destroy(this._tailA); this._tailB = flixel_util_FlxDestroyUtil.destroy(this._tailB); this._northWestTree = flixel_util_FlxDestroyUtil.destroy(this._northWestTree); this._northEastTree = flixel_util_FlxDestroyUtil.destroy(this._northEastTree); this._southWestTree = flixel_util_FlxDestroyUtil.destroy(this._southWestTree); this._southEastTree = flixel_util_FlxDestroyUtil.destroy(this._southEastTree); flixel_system_FlxQuadTree._object = null; flixel_system_FlxQuadTree._processingCallback = null; flixel_system_FlxQuadTree._notifyCallback = null; this.exists = false; this.next = flixel_system_FlxQuadTree._cachedTreesHead; flixel_system_FlxQuadTree._cachedTreesHead = this; flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES++; flixel_math_FlxRect.prototype.destroy.call(this); } ,load: function(ObjectOrGroup1,ObjectOrGroup2,NotifyCallback,ProcessCallback) { this.add(ObjectOrGroup1,0); if(ObjectOrGroup2 != null) { this.add(ObjectOrGroup2,1); flixel_system_FlxQuadTree._useBothLists = true; } else { flixel_system_FlxQuadTree._useBothLists = false; } flixel_system_FlxQuadTree._notifyCallback = NotifyCallback; flixel_system_FlxQuadTree._processingCallback = ProcessCallback; } ,add: function(ObjectOrGroup,list) { flixel_system_FlxQuadTree._list = list; var group = flixel_group_FlxTypedGroup.resolveGroup(ObjectOrGroup); if(group != null) { var i = 0; var basic; var members = group.members; var l = group.length; while(i < l) { basic = members[i++]; if(basic != null && basic.exists) { group = flixel_group_FlxTypedGroup.resolveGroup(basic); if(group != null) { this.add(group,list); } else { flixel_system_FlxQuadTree._object = basic; if(flixel_system_FlxQuadTree._object.exists && flixel_system_FlxQuadTree._object.allowCollisions != 0) { flixel_system_FlxQuadTree._objectLeftEdge = flixel_system_FlxQuadTree._object.x; flixel_system_FlxQuadTree._objectTopEdge = flixel_system_FlxQuadTree._object.y; flixel_system_FlxQuadTree._objectRightEdge = flixel_system_FlxQuadTree._object.x + flixel_system_FlxQuadTree._object.get_width(); flixel_system_FlxQuadTree._objectBottomEdge = flixel_system_FlxQuadTree._object.y + flixel_system_FlxQuadTree._object.get_height(); this.addObject(); } } } } } else { flixel_system_FlxQuadTree._object = ObjectOrGroup; if(flixel_system_FlxQuadTree._object.exists && flixel_system_FlxQuadTree._object.allowCollisions != 0) { flixel_system_FlxQuadTree._objectLeftEdge = flixel_system_FlxQuadTree._object.x; flixel_system_FlxQuadTree._objectTopEdge = flixel_system_FlxQuadTree._object.y; flixel_system_FlxQuadTree._objectRightEdge = flixel_system_FlxQuadTree._object.x + flixel_system_FlxQuadTree._object.get_width(); flixel_system_FlxQuadTree._objectBottomEdge = flixel_system_FlxQuadTree._object.y + flixel_system_FlxQuadTree._object.get_height(); this.addObject(); } } } ,addObject: function() { if(!this._canSubdivide || this._leftEdge >= flixel_system_FlxQuadTree._objectLeftEdge && this._rightEdge <= flixel_system_FlxQuadTree._objectRightEdge && this._topEdge >= flixel_system_FlxQuadTree._objectTopEdge && this._bottomEdge <= flixel_system_FlxQuadTree._objectBottomEdge) { this.addToList(); return; } if(flixel_system_FlxQuadTree._objectLeftEdge > this._leftEdge && flixel_system_FlxQuadTree._objectRightEdge < this._midpointX) { if(flixel_system_FlxQuadTree._objectTopEdge > this._topEdge && flixel_system_FlxQuadTree._objectBottomEdge < this._midpointY) { if(this._northWestTree == null) { this._northWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._topEdge,this._halfWidth,this._halfHeight,this); } this._northWestTree.addObject(); return; } if(flixel_system_FlxQuadTree._objectTopEdge > this._midpointY && flixel_system_FlxQuadTree._objectBottomEdge < this._bottomEdge) { if(this._southWestTree == null) { this._southWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._midpointY,this._halfWidth,this._halfHeight,this); } this._southWestTree.addObject(); return; } } if(flixel_system_FlxQuadTree._objectLeftEdge > this._midpointX && flixel_system_FlxQuadTree._objectRightEdge < this._rightEdge) { if(flixel_system_FlxQuadTree._objectTopEdge > this._topEdge && flixel_system_FlxQuadTree._objectBottomEdge < this._midpointY) { if(this._northEastTree == null) { this._northEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._topEdge,this._halfWidth,this._halfHeight,this); } this._northEastTree.addObject(); return; } if(flixel_system_FlxQuadTree._objectTopEdge > this._midpointY && flixel_system_FlxQuadTree._objectBottomEdge < this._bottomEdge) { if(this._southEastTree == null) { this._southEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._midpointY,this._halfWidth,this._halfHeight,this); } this._southEastTree.addObject(); return; } } if(flixel_system_FlxQuadTree._objectRightEdge > this._leftEdge && flixel_system_FlxQuadTree._objectLeftEdge < this._midpointX && flixel_system_FlxQuadTree._objectBottomEdge > this._topEdge && flixel_system_FlxQuadTree._objectTopEdge < this._midpointY) { if(this._northWestTree == null) { this._northWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._topEdge,this._halfWidth,this._halfHeight,this); } this._northWestTree.addObject(); } if(flixel_system_FlxQuadTree._objectRightEdge > this._midpointX && flixel_system_FlxQuadTree._objectLeftEdge < this._rightEdge && flixel_system_FlxQuadTree._objectBottomEdge > this._topEdge && flixel_system_FlxQuadTree._objectTopEdge < this._midpointY) { if(this._northEastTree == null) { this._northEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._topEdge,this._halfWidth,this._halfHeight,this); } this._northEastTree.addObject(); } if(flixel_system_FlxQuadTree._objectRightEdge > this._midpointX && flixel_system_FlxQuadTree._objectLeftEdge < this._rightEdge && flixel_system_FlxQuadTree._objectBottomEdge > this._midpointY && flixel_system_FlxQuadTree._objectTopEdge < this._bottomEdge) { if(this._southEastTree == null) { this._southEastTree = flixel_system_FlxQuadTree.recycle(this._midpointX,this._midpointY,this._halfWidth,this._halfHeight,this); } this._southEastTree.addObject(); } if(flixel_system_FlxQuadTree._objectRightEdge > this._leftEdge && flixel_system_FlxQuadTree._objectLeftEdge < this._midpointX && flixel_system_FlxQuadTree._objectBottomEdge > this._midpointY && flixel_system_FlxQuadTree._objectTopEdge < this._bottomEdge) { if(this._southWestTree == null) { this._southWestTree = flixel_system_FlxQuadTree.recycle(this._leftEdge,this._midpointY,this._halfWidth,this._halfHeight,this); } this._southWestTree.addObject(); } } ,addToList: function() { var ot; if(flixel_system_FlxQuadTree._list == 0) { if(this._tailA.object != null) { ot = this._tailA; this._tailA = flixel_system_FlxLinkedList.recycle(); ot.next = this._tailA; } this._tailA.object = flixel_system_FlxQuadTree._object; } else { if(this._tailB.object != null) { ot = this._tailB; this._tailB = flixel_system_FlxLinkedList.recycle(); ot.next = this._tailB; } this._tailB.object = flixel_system_FlxQuadTree._object; } if(!this._canSubdivide) { return; } if(this._northWestTree != null) { this._northWestTree.addToList(); } if(this._northEastTree != null) { this._northEastTree.addToList(); } if(this._southEastTree != null) { this._southEastTree.addToList(); } if(this._southWestTree != null) { this._southWestTree.addToList(); } } ,execute: function() { var overlapProcessed = false; if(this._headA.object != null) { var iterator = this._headA; while(iterator != null) { flixel_system_FlxQuadTree._object = iterator.object; if(flixel_system_FlxQuadTree._useBothLists) { flixel_system_FlxQuadTree._iterator = this._headB; } else { flixel_system_FlxQuadTree._iterator = iterator.next; } if(flixel_system_FlxQuadTree._object != null && flixel_system_FlxQuadTree._object.exists && flixel_system_FlxQuadTree._object.allowCollisions > 0 && flixel_system_FlxQuadTree._iterator != null && flixel_system_FlxQuadTree._iterator.object != null && this.overlapNode()) { overlapProcessed = true; } iterator = iterator.next; } } if(this._northWestTree != null && this._northWestTree.execute()) { overlapProcessed = true; } if(this._northEastTree != null && this._northEastTree.execute()) { overlapProcessed = true; } if(this._southEastTree != null && this._southEastTree.execute()) { overlapProcessed = true; } if(this._southWestTree != null && this._southWestTree.execute()) { overlapProcessed = true; } return overlapProcessed; } ,overlapNode: function() { flixel_system_FlxQuadTree._objectHullX = flixel_system_FlxQuadTree._object.x < flixel_system_FlxQuadTree._object.last.x ? flixel_system_FlxQuadTree._object.x : flixel_system_FlxQuadTree._object.last.x; flixel_system_FlxQuadTree._objectHullY = flixel_system_FlxQuadTree._object.y < flixel_system_FlxQuadTree._object.last.y ? flixel_system_FlxQuadTree._object.y : flixel_system_FlxQuadTree._object.last.y; flixel_system_FlxQuadTree._objectHullWidth = flixel_system_FlxQuadTree._object.x - flixel_system_FlxQuadTree._object.last.x; flixel_system_FlxQuadTree._objectHullWidth = flixel_system_FlxQuadTree._object.get_width() + (flixel_system_FlxQuadTree._objectHullWidth > 0 ? flixel_system_FlxQuadTree._objectHullWidth : -flixel_system_FlxQuadTree._objectHullWidth); flixel_system_FlxQuadTree._objectHullHeight = flixel_system_FlxQuadTree._object.y - flixel_system_FlxQuadTree._object.last.y; flixel_system_FlxQuadTree._objectHullHeight = flixel_system_FlxQuadTree._object.get_height() + (flixel_system_FlxQuadTree._objectHullHeight > 0 ? flixel_system_FlxQuadTree._objectHullHeight : -flixel_system_FlxQuadTree._objectHullHeight); var overlapProcessed = false; var checkObject; while(flixel_system_FlxQuadTree._iterator != null) { checkObject = flixel_system_FlxQuadTree._iterator.object; if(flixel_system_FlxQuadTree._object == checkObject || !checkObject.exists || checkObject.allowCollisions <= 0) { flixel_system_FlxQuadTree._iterator = flixel_system_FlxQuadTree._iterator.next; continue; } flixel_system_FlxQuadTree._checkObjectHullX = checkObject.x < checkObject.last.x ? checkObject.x : checkObject.last.x; flixel_system_FlxQuadTree._checkObjectHullY = checkObject.y < checkObject.last.y ? checkObject.y : checkObject.last.y; flixel_system_FlxQuadTree._checkObjectHullWidth = checkObject.x - checkObject.last.x; flixel_system_FlxQuadTree._checkObjectHullWidth = checkObject.get_width() + (flixel_system_FlxQuadTree._checkObjectHullWidth > 0 ? flixel_system_FlxQuadTree._checkObjectHullWidth : -flixel_system_FlxQuadTree._checkObjectHullWidth); flixel_system_FlxQuadTree._checkObjectHullHeight = checkObject.y - checkObject.last.y; flixel_system_FlxQuadTree._checkObjectHullHeight = checkObject.get_height() + (flixel_system_FlxQuadTree._checkObjectHullHeight > 0 ? flixel_system_FlxQuadTree._checkObjectHullHeight : -flixel_system_FlxQuadTree._checkObjectHullHeight); if(flixel_system_FlxQuadTree._objectHullX + flixel_system_FlxQuadTree._objectHullWidth > flixel_system_FlxQuadTree._checkObjectHullX && flixel_system_FlxQuadTree._objectHullX < flixel_system_FlxQuadTree._checkObjectHullX + flixel_system_FlxQuadTree._checkObjectHullWidth && flixel_system_FlxQuadTree._objectHullY + flixel_system_FlxQuadTree._objectHullHeight > flixel_system_FlxQuadTree._checkObjectHullY && flixel_system_FlxQuadTree._objectHullY < flixel_system_FlxQuadTree._checkObjectHullY + flixel_system_FlxQuadTree._checkObjectHullHeight) { if(flixel_system_FlxQuadTree._processingCallback == null || flixel_system_FlxQuadTree._processingCallback(flixel_system_FlxQuadTree._object,checkObject)) { overlapProcessed = true; if(flixel_system_FlxQuadTree._notifyCallback != null) { flixel_system_FlxQuadTree._notifyCallback(flixel_system_FlxQuadTree._object,checkObject); } } } if(flixel_system_FlxQuadTree._iterator != null) { flixel_system_FlxQuadTree._iterator = flixel_system_FlxQuadTree._iterator.next; } } return overlapProcessed; } ,__class__: flixel_system_FlxQuadTree }); var flixel_system_debug_DebuggerUtil = function() { }; $hxClasses["flixel.system.debug.DebuggerUtil"] = flixel_system_debug_DebuggerUtil; flixel_system_debug_DebuggerUtil.__name__ = "flixel.system.debug.DebuggerUtil"; flixel_system_debug_DebuggerUtil.createTextField = function(X,Y,Color,Size) { if(Size == null) { Size = 12; } if(Color == null) { Color = -1; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } return flixel_system_debug_DebuggerUtil.initTextField(new openfl_text_TextField(),X,Y,Color,Size); }; flixel_system_debug_DebuggerUtil.initTextField = function(tf,X,Y,Color,Size) { if(Size == null) { Size = 12; } if(Color == null) { Color = -1; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } tf.set_x(X); tf.set_y(Y); tf.set_multiline(false); tf.set_wordWrap(false); tf.set_embedFonts(true); tf.set_selectable(false); tf.set_defaultTextFormat(new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEBUGGER,Size,Color & 16777215)); tf.set_alpha((Color >> 24 & 255) / 255); tf.set_autoSize(1); return tf; }; flixel_system_debug_DebuggerUtil.fixSize = function(bitmapData) { Reflect.setProperty(bitmapData,"width",11); Reflect.setProperty(bitmapData,"height",11); return bitmapData; }; var flixel_system_debug__$FlxDebugger_GraphicFlixel = 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(flixel_system_debug__$FlxDebugger_GraphicFlixel.preload != null) { this.__fromImage(flixel_system_debug__$FlxDebugger_GraphicFlixel.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceName),flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug__$FlxDebugger_GraphicFlixel.preload == null) { flixel_system_debug__$FlxDebugger_GraphicFlixel.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug._FlxDebugger.GraphicFlixel"] = flixel_system_debug__$FlxDebugger_GraphicFlixel; flixel_system_debug__$FlxDebugger_GraphicFlixel.__name__ = "flixel.system.debug._FlxDebugger.GraphicFlixel"; flixel_system_debug__$FlxDebugger_GraphicFlixel.preload = null; flixel_system_debug__$FlxDebugger_GraphicFlixel.__super__ = openfl_display_BitmapData; flixel_system_debug__$FlxDebugger_GraphicFlixel.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug__$FlxDebugger_GraphicFlixel }); var flixel_system_debug__$FlxDebugger_GraphicDrawDebug = 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(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload != null) { this.__fromImage(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceName),flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload == null) { flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug._FlxDebugger.GraphicDrawDebug"] = flixel_system_debug__$FlxDebugger_GraphicDrawDebug; flixel_system_debug__$FlxDebugger_GraphicDrawDebug.__name__ = "flixel.system.debug._FlxDebugger.GraphicDrawDebug"; flixel_system_debug__$FlxDebugger_GraphicDrawDebug.preload = null; flixel_system_debug__$FlxDebugger_GraphicDrawDebug.__super__ = openfl_display_BitmapData; flixel_system_debug__$FlxDebugger_GraphicDrawDebug.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug__$FlxDebugger_GraphicDrawDebug }); var flixel_system_debug_GraphicLog = 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(flixel_system_debug_GraphicLog.preload != null) { this.__fromImage(flixel_system_debug_GraphicLog.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicLog.resourceName),flixel_system_debug_GraphicLog.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicLog.preload == null) { flixel_system_debug_GraphicLog.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicLog"] = flixel_system_debug_GraphicLog; flixel_system_debug_GraphicLog.__name__ = "flixel.system.debug.GraphicLog"; flixel_system_debug_GraphicLog.preload = null; flixel_system_debug_GraphicLog.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicLog.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicLog }); var flixel_system_debug_GraphicStats = 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(flixel_system_debug_GraphicStats.preload != null) { this.__fromImage(flixel_system_debug_GraphicStats.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicStats.resourceName),flixel_system_debug_GraphicStats.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicStats.preload == null) { flixel_system_debug_GraphicStats.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicStats"] = flixel_system_debug_GraphicStats; flixel_system_debug_GraphicStats.__name__ = "flixel.system.debug.GraphicStats"; flixel_system_debug_GraphicStats.preload = null; flixel_system_debug_GraphicStats.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicStats.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicStats }); var flixel_system_debug_GraphicWatch = 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(flixel_system_debug_GraphicWatch.preload != null) { this.__fromImage(flixel_system_debug_GraphicWatch.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicWatch.resourceName),flixel_system_debug_GraphicWatch.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicWatch.preload == null) { flixel_system_debug_GraphicWatch.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicWatch"] = flixel_system_debug_GraphicWatch; flixel_system_debug_GraphicWatch.__name__ = "flixel.system.debug.GraphicWatch"; flixel_system_debug_GraphicWatch.preload = null; flixel_system_debug_GraphicWatch.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicWatch.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicWatch }); var flixel_system_debug_GraphicBitmapLog = 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(flixel_system_debug_GraphicBitmapLog.preload != null) { this.__fromImage(flixel_system_debug_GraphicBitmapLog.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicBitmapLog.resourceName),flixel_system_debug_GraphicBitmapLog.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicBitmapLog.preload == null) { flixel_system_debug_GraphicBitmapLog.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicBitmapLog"] = flixel_system_debug_GraphicBitmapLog; flixel_system_debug_GraphicBitmapLog.__name__ = "flixel.system.debug.GraphicBitmapLog"; flixel_system_debug_GraphicBitmapLog.preload = null; flixel_system_debug_GraphicBitmapLog.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicBitmapLog.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicBitmapLog }); var flixel_system_debug_GraphicConsole = 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(flixel_system_debug_GraphicConsole.preload != null) { this.__fromImage(flixel_system_debug_GraphicConsole.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicConsole.resourceName),flixel_system_debug_GraphicConsole.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicConsole.preload == null) { flixel_system_debug_GraphicConsole.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicConsole"] = flixel_system_debug_GraphicConsole; flixel_system_debug_GraphicConsole.__name__ = "flixel.system.debug.GraphicConsole"; flixel_system_debug_GraphicConsole.preload = null; flixel_system_debug_GraphicConsole.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicConsole.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicConsole }); var flixel_system_debug_GraphicArrowLeft = 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(flixel_system_debug_GraphicArrowLeft.preload != null) { this.__fromImage(flixel_system_debug_GraphicArrowLeft.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicArrowLeft.resourceName),flixel_system_debug_GraphicArrowLeft.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicArrowLeft.preload == null) { flixel_system_debug_GraphicArrowLeft.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicArrowLeft"] = flixel_system_debug_GraphicArrowLeft; flixel_system_debug_GraphicArrowLeft.__name__ = "flixel.system.debug.GraphicArrowLeft"; flixel_system_debug_GraphicArrowLeft.preload = null; flixel_system_debug_GraphicArrowLeft.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicArrowLeft.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicArrowLeft }); var flixel_system_debug_GraphicArrowRight = 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(flixel_system_debug_GraphicArrowRight.preload != null) { this.__fromImage(flixel_system_debug_GraphicArrowRight.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicArrowRight.resourceName),flixel_system_debug_GraphicArrowRight.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicArrowRight.preload == null) { flixel_system_debug_GraphicArrowRight.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicArrowRight"] = flixel_system_debug_GraphicArrowRight; flixel_system_debug_GraphicArrowRight.__name__ = "flixel.system.debug.GraphicArrowRight"; flixel_system_debug_GraphicArrowRight.preload = null; flixel_system_debug_GraphicArrowRight.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicArrowRight.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicArrowRight }); var flixel_system_debug_GraphicCloseButton = 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(flixel_system_debug_GraphicCloseButton.preload != null) { this.__fromImage(flixel_system_debug_GraphicCloseButton.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicCloseButton.resourceName),flixel_system_debug_GraphicCloseButton.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicCloseButton.preload == null) { flixel_system_debug_GraphicCloseButton.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicCloseButton"] = flixel_system_debug_GraphicCloseButton; flixel_system_debug_GraphicCloseButton.__name__ = "flixel.system.debug.GraphicCloseButton"; flixel_system_debug_GraphicCloseButton.preload = null; flixel_system_debug_GraphicCloseButton.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicCloseButton.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicCloseButton }); var flixel_system_debug_GraphicInteractive = 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(flixel_system_debug_GraphicInteractive.preload != null) { this.__fromImage(flixel_system_debug_GraphicInteractive.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_GraphicInteractive.resourceName),flixel_system_debug_GraphicInteractive.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_GraphicInteractive.preload == null) { flixel_system_debug_GraphicInteractive.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.GraphicInteractive"] = flixel_system_debug_GraphicInteractive; flixel_system_debug_GraphicInteractive.__name__ = "flixel.system.debug.GraphicInteractive"; flixel_system_debug_GraphicInteractive.preload = null; flixel_system_debug_GraphicInteractive.__super__ = openfl_display_BitmapData; flixel_system_debug_GraphicInteractive.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_GraphicInteractive }); var flixel_system_debug_FlxDebugger = function() { openfl_display_Sprite.call(this); }; $hxClasses["flixel.system.debug.FlxDebugger"] = flixel_system_debug_FlxDebugger; flixel_system_debug_FlxDebugger.__name__ = "flixel.system.debug.FlxDebugger"; flixel_system_debug_FlxDebugger.__super__ = openfl_display_Sprite; flixel_system_debug_FlxDebugger.prototype = $extend(openfl_display_Sprite.prototype,{ __class__: flixel_system_debug_FlxDebugger }); var flixel_system_debug_FlxDebuggerLayout = $hxEnums["flixel.system.debug.FlxDebuggerLayout"] = { __ename__:"flixel.system.debug.FlxDebuggerLayout",__constructs__:null ,STANDARD: {_hx_name:"STANDARD",_hx_index:0,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr} ,MICRO: {_hx_name:"MICRO",_hx_index:1,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr} ,BIG: {_hx_name:"BIG",_hx_index:2,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr} ,TOP: {_hx_name:"TOP",_hx_index:3,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr} ,LEFT: {_hx_name:"LEFT",_hx_index:4,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr} ,RIGHT: {_hx_name:"RIGHT",_hx_index:5,__enum__:"flixel.system.debug.FlxDebuggerLayout",toString:$estr} }; flixel_system_debug_FlxDebuggerLayout.__constructs__ = [flixel_system_debug_FlxDebuggerLayout.STANDARD,flixel_system_debug_FlxDebuggerLayout.MICRO,flixel_system_debug_FlxDebuggerLayout.BIG,flixel_system_debug_FlxDebuggerLayout.TOP,flixel_system_debug_FlxDebuggerLayout.LEFT,flixel_system_debug_FlxDebuggerLayout.RIGHT]; flixel_system_debug_FlxDebuggerLayout.__empty_constructs__ = [flixel_system_debug_FlxDebuggerLayout.STANDARD,flixel_system_debug_FlxDebuggerLayout.MICRO,flixel_system_debug_FlxDebuggerLayout.BIG,flixel_system_debug_FlxDebuggerLayout.TOP,flixel_system_debug_FlxDebuggerLayout.LEFT,flixel_system_debug_FlxDebuggerLayout.RIGHT]; var flixel_system_debug_Tooltip = function() { }; $hxClasses["flixel.system.debug.Tooltip"] = flixel_system_debug_Tooltip; flixel_system_debug_Tooltip.__name__ = "flixel.system.debug.Tooltip"; flixel_system_debug_Tooltip._container = null; flixel_system_debug_Tooltip.init = function(container) { flixel_system_debug_Tooltip._container = container; }; flixel_system_debug_Tooltip.add = function(element,text) { var tooltip = new flixel_system_debug_TooltipOverlay(element,text); flixel_system_debug_Tooltip._container.addChild(tooltip); flixel_system_debug_Tooltip._tooltips.push(tooltip); return tooltip; }; flixel_system_debug_Tooltip.remove = function(element) { var removed = false; var _g = 0; var _g1 = flixel_system_debug_Tooltip._tooltips.length; while(_g < _g1) { var i = _g++; if(flixel_system_debug_Tooltip._tooltips[i] != null && flixel_system_debug_Tooltip._tooltips[i].owner == element) { var tooltip = flixel_system_debug_Tooltip._tooltips.splice(i,1)[0]; tooltip.destroy(); removed = true; break; } } return removed; }; var flixel_system_debug_TooltipOverlay = function(target,text,width,height) { if(height == null) { height = 0; } if(width == null) { width = 0; } openfl_display_Sprite.call(this); this.owner = target; this.maxSize = new openfl_geom_Point(width,height); this._shadow = new openfl_display_Bitmap(new openfl_display_BitmapData(1,2,true,-16777216)); this._background = new openfl_display_Bitmap(new openfl_display_BitmapData(1,1,true,-12961222)); this.textField = flixel_system_debug_DebuggerUtil.createTextField(2,1); this.textField.set_alpha(0.8); this.textField.set_text(text); this.textField.set_wordWrap(true); this.addChild(this._shadow); this.addChild(this._background); this.addChild(this.textField); this.updateSize(); this.setVisible(false); if(this.owner != null) { this.owner.addEventListener("mouseOver",$bind(this,this.handleMouseEvents)); this.owner.addEventListener("mouseOut",$bind(this,this.handleMouseEvents)); } }; $hxClasses["flixel.system.debug.TooltipOverlay"] = flixel_system_debug_TooltipOverlay; flixel_system_debug_TooltipOverlay.__name__ = "flixel.system.debug.TooltipOverlay"; flixel_system_debug_TooltipOverlay.__super__ = openfl_display_Sprite; flixel_system_debug_TooltipOverlay.prototype = $extend(openfl_display_Sprite.prototype,{ _width: null ,_height: null ,_background: null ,_shadow: null ,textField: null ,owner: null ,maxSize: null ,destroy: function() { this._shadow = flixel_util_FlxDestroyUtil.removeChild(this,this._shadow); this._background = flixel_util_FlxDestroyUtil.removeChild(this,this._background); this.textField = flixel_util_FlxDestroyUtil.removeChild(this,this.textField); this.maxSize = null; if(this.owner != null) { this.owner.removeEventListener("mouseOver",$bind(this,this.handleMouseEvents)); this.owner.removeEventListener("mouseOut",$bind(this,this.handleMouseEvents)); } this.owner = null; } ,resize: function(Width,Height) { this.maxSize.x = Math.abs(Width) | 0; this.maxSize.y = Math.abs(Height) | 0; this.updateSize(); } ,reposition: function(X,Y) { this.set_x(X); this.set_y(Y); this.ensureOnScreen(); } ,setVisible: function(Value) { this.set_visible(Value); if(this.get_visible()) { this.parent.addChild(this); this.ensureOnScreen(); } } ,setText: function(Text1) { this.textField.set_text(Text1); this.updateSize(); this.ensureOnScreen(); } ,toggleVisible: function() { this.setVisible(!this.get_visible()); } ,putOnTop: function() { this.parent.addChild(this); } ,update: function() { } ,updateSize: function() { this._width = ((this.maxSize.x <= 0 ? this.textField.get_textWidth() : Math.abs(this.maxSize.x)) | 0) + 8; this._height = ((this.maxSize.y <= 0 ? this.textField.get_textHeight() : Math.abs(this.maxSize.y)) | 0) + 8; this._background.set_scaleX(this._width); this._background.set_scaleY(this._height); this._shadow.set_scaleX(this._width); this._shadow.set_y(this._height); this.textField.set_width(this._width); } ,ensureOnScreen: function() { this.set_x(this.get_x() < 0 ? 0 : this.get_x()); this.set_y(this.get_y() < 0 ? 0 : this.get_y()); var offsetX = this.get_x() + this.get_width() >= openfl_Lib.get_current().stage.stageWidth ? openfl_Lib.get_current().stage.stageWidth - (this.get_x() + this.get_width()) : 0; var offsetY = this.get_y() + this.get_height() >= openfl_Lib.get_current().stage.stageHeight ? openfl_Lib.get_current().stage.stageHeight - (this.get_y() + this.get_height()) : 0; this.set_x(this.get_x() + offsetX); this.set_y(this.get_y() + offsetY); } ,handleMouseEvents: function(event) { if(event.type == "mouseOver" && !this.get_visible()) { this.set_x(event.stageX + 10); this.set_y(event.stageY + 10); this.setVisible(true); } else if(event.type == "mouseOut") { this.setVisible(false); } } ,__class__: flixel_system_debug_TooltipOverlay }); var flixel_system_debug__$Window_GraphicWindowHandle = 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(flixel_system_debug__$Window_GraphicWindowHandle.preload != null) { this.__fromImage(flixel_system_debug__$Window_GraphicWindowHandle.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug__$Window_GraphicWindowHandle.resourceName),flixel_system_debug__$Window_GraphicWindowHandle.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug__$Window_GraphicWindowHandle.preload == null) { flixel_system_debug__$Window_GraphicWindowHandle.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug._Window.GraphicWindowHandle"] = flixel_system_debug__$Window_GraphicWindowHandle; flixel_system_debug__$Window_GraphicWindowHandle.__name__ = "flixel.system.debug._Window.GraphicWindowHandle"; flixel_system_debug__$Window_GraphicWindowHandle.preload = null; flixel_system_debug__$Window_GraphicWindowHandle.__super__ = openfl_display_BitmapData; flixel_system_debug__$Window_GraphicWindowHandle.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug__$Window_GraphicWindowHandle }); var flixel_system_debug_Window = function(Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop) { if(AlwaysOnTop == null) { AlwaysOnTop = true; } if(Closable == null) { Closable = false; } if(Resizable == null) { Resizable = true; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } openfl_display_Sprite.call(this); this.minSize = new openfl_geom_Point(50,30); this._width = Math.abs(Width) | 0; this._height = Math.abs(Height) | 0; this.updateBounds(Bounds); this._drag = new openfl_geom_Point(); this._resizable = Resizable; this._closable = Closable; this._alwaysOnTop = AlwaysOnTop; this._shadow = new openfl_display_Bitmap(new openfl_display_BitmapData(1,2,true,-16777216)); this._background = new openfl_display_Bitmap(new openfl_display_BitmapData(1,1,true,-580952225)); this._header = new openfl_display_Bitmap(new openfl_display_BitmapData(1,15,true,-1157627904)); this._background.set_y(this._header.get_height()); this._title = flixel_system_debug_DebuggerUtil.createTextField(2,-1); this._title.set_alpha(0.8); this._title.set_text(Title); this.addChild(this._shadow); this.addChild(this._background); this.addChild(this._header); this.addChild(this._title); if(Icon != null) { flixel_system_debug_DebuggerUtil.fixSize(Icon); this._icon = new openfl_display_Bitmap(Icon); this._icon.set_x(5); this._icon.set_y(2); this._icon.set_alpha(0.8); this._title.set_x(this._icon.get_x() + this._icon.get_width() + 2); this.addChild(this._icon); } if(this._resizable) { this._handle = new openfl_display_Bitmap(flixel_system_debug_DebuggerUtil.fixSize(new flixel_system_debug__$Window_GraphicWindowHandle(0,0))); this.addChild(this._handle); } if(this._closable) { this._closeButton = new flixel_system_ui_FlxSystemButton(new flixel_system_debug_GraphicCloseButton(0,0),$bind(this,this.close)); this._closeButton.set_alpha(0.8); this.addChild(this._closeButton); } else { this._id = flixel_system_debug_Window.windowAmount; this.loadSaveData(); flixel_system_debug_Window.windowAmount++; } if(this._width != 0 || this._height != 0) { this.updateSize(); } this.bound(); this.addEventListener("enterFrame",$bind(this,this.init)); }; $hxClasses["flixel.system.debug.Window"] = flixel_system_debug_Window; flixel_system_debug_Window.__name__ = "flixel.system.debug.Window"; flixel_system_debug_Window.__super__ = openfl_display_Sprite; flixel_system_debug_Window.prototype = $extend(openfl_display_Sprite.prototype,{ minSize: null ,maxSize: null ,toggleButton: null ,_width: null ,_height: null ,_bounds: null ,_background: null ,_header: null ,_shadow: null ,_title: null ,_handle: null ,_icon: null ,_closeButton: null ,_overHeader: null ,_overHandle: null ,_drag: null ,_dragging: null ,_resizing: null ,_resizable: null ,_closable: null ,_alwaysOnTop: null ,_id: null ,destroy: function() { this.minSize = null; this.maxSize = null; this._bounds = null; if(this._shadow != null) { this.removeChild(this._shadow); } this._shadow = null; if(this._background != null) { this.removeChild(this._background); } this._background = null; if(this._header != null) { this.removeChild(this._header); } this._header = null; if(this._title != null) { this.removeChild(this._title); } this._title = null; if(this._handle != null) { this.removeChild(this._handle); } this._handle = null; this._drag = null; this._closeButton = flixel_util_FlxDestroyUtil.destroy(this._closeButton); var stage = openfl_Lib.get_current().stage; if(stage.hasEventListener("mouseMove")) { stage.removeEventListener("mouseMove",$bind(this,this.onMouseMove)); } if(this.hasEventListener("mouseDown")) { this.removeEventListener("mouseDown",$bind(this,this.onMouseDown)); } if(stage.hasEventListener("mouseUp")) { stage.removeEventListener("mouseUp",$bind(this,this.onMouseUp)); } } ,resize: function(Width,Height) { this._width = Math.abs(Width) | 0; this._height = Math.abs(Height) | 0; this.updateSize(); } ,reposition: function(X,Y) { this.set_x(X); this.set_y(Y); this.bound(); } ,updateBounds: function(Bounds) { this._bounds = Bounds; if(this._bounds != null) { this.maxSize = new openfl_geom_Point(this._bounds.width,this._bounds.height); } else { this.maxSize = new openfl_geom_Point(1.79e+308,1.79e+308); } } ,setVisible: function(Value) { this.set_visible(Value); var tmp; if(!this._closable) { var _g = flixel_FlxG.save.status; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } } else { tmp = false; } if(tmp) { this.saveWindowVisibility(); } if(this.toggleButton != null) { this.toggleButton.set_toggled(!this.get_visible()); } if(this.get_visible() && this._alwaysOnTop) { this.parent.addChild(this); } } ,toggleVisible: function() { this.setVisible(!this.get_visible()); } ,putOnTop: function() { this.parent.addChild(this); } ,loadSaveData: function() { var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(!tmp) { return; } if(flixel_FlxG.save.data.windowSettings == null) { this.initWindowsSave(); flixel_FlxG.save.flush(); } this.set_visible(flixel_FlxG.save.data.windowSettings[this._id]); } ,initWindowsSave: function() { var maxWindows = 10; var _g = []; var _g1 = 0; var _g2 = maxWindows; while(_g1 < _g2) { var _ = _g1++; _g.push(true); } flixel_FlxG.save.data.windowSettings = _g; } ,saveWindowVisibility: function() { if(flixel_FlxG.save.data.windowSettings == null) { this.initWindowsSave(); } flixel_FlxG.save.data.windowSettings[this._id] = this.get_visible(); flixel_FlxG.save.flush(); } ,update: function() { } ,init: function(_) { if(this.stage == null) { return; } this.removeEventListener("enterFrame",$bind(this,this.init)); this.stage.addEventListener("mouseMove",$bind(this,this.onMouseMove)); this.stage.addEventListener("mouseUp",$bind(this,this.onMouseUp)); this.addEventListener("mouseDown",$bind(this,this.onMouseDown)); } ,onMouseMove: function(_) { var mouseX = this.get_mouseX() < 0 ? 0 : this.get_mouseX(); var mouseY = this.get_mouseY() < 0 ? 0 : this.get_mouseY(); if(!this.parent.get_visible()) { this._overHandle = this._overHeader = false; return; } if(this._dragging) { this._overHeader = true; this.reposition(this.parent.get_mouseX() - this._drag.x,this.parent.get_mouseY() - this._drag.y); } else if(this._resizing) { this._overHandle = true; this.resize(mouseX - this._drag.x,mouseY - this._drag.y); } else if(mouseX >= 0 && mouseX <= this._width && mouseY >= 0 && mouseY <= this._height) { this._overHeader = mouseX <= this._header.get_width() && mouseY <= this._header.get_height(); if(this._resizable) { this._overHandle = mouseX >= this._width - this._handle.get_width() && mouseY >= this._height - this._handle.get_height(); } } else { this._overHandle = this._overHeader = false; } } ,onMouseDown: function(_) { if(this._overHeader) { if(this._alwaysOnTop) { this.parent.addChild(this); } this._dragging = true; this._drag.x = this.get_mouseX(); this._drag.y = this.get_mouseY(); } else if(this._overHandle) { if(this._alwaysOnTop) { this.parent.addChild(this); } this._resizing = true; var tmp = this._width; var tmp1 = this.get_mouseX(); this._drag.x = tmp - tmp1; var tmp = this._height; var tmp1 = this.get_mouseY(); this._drag.y = tmp - tmp1; } } ,onMouseUp: function(_) { this._dragging = false; this._resizing = false; } ,bound: function() { if(this._bounds != null) { var Value = this.get_x(); var Min = this._bounds.get_left(); var Max = this._bounds.get_right() - this._width; var lowerBound = Min != null && Value < Min ? Min : Value; this.set_x(Max != null && lowerBound > Max ? Max : lowerBound); var Value = this.get_y(); var Min = this._bounds.get_top(); var Max = this._bounds.get_bottom() - this._height; var lowerBound = Min != null && Value < Min ? Min : Value; this.set_y(Max != null && lowerBound > Max ? Max : lowerBound); } } ,updateSize: function() { var Value = this._width; var Min = this.minSize.x; var Max = this.maxSize.x; var lowerBound = Min != null && Value < Min ? Min : Value; this._width = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; var Value = this._height; var Min = this.minSize.y; var Max = this.maxSize.y; var lowerBound = Min != null && Value < Min ? Min : Value; this._height = (Max != null && lowerBound > Max ? Max : lowerBound) | 0; this._header.set_scaleX(this._width); this._background.set_scaleX(this._width); this._background.set_scaleY(this._height - this._header.get_height()); this._shadow.set_scaleX(this._width); this._shadow.set_y(this._height); this._title.set_width(this._width - 4); if(this._resizable) { this._handle.set_x(this._width - this._handle.get_width()); this._handle.set_y(this._height - this._handle.get_height()); } if(this._closeButton != null) { this._closeButton.set_x(this._width - this._closeButton.get_width() - 3); this._closeButton.set_y(3); } } ,close: function() { this.destroy(); } ,__class__: flixel_system_debug_Window }); var flixel_system_debug_completion_CompletionHandler = function(completionList,input) { this.watchingSelection = false; this.completionList = completionList; this.input = input; completionList.completed = $bind(this,this.completed); completionList.selectionChanged = $bind(this,this.selectionChanged); completionList.closed = $bind(this,this.completionClosed); input.addEventListener("keyUp",$bind(this,this.onKeyUp)); }; $hxClasses["flixel.system.debug.completion.CompletionHandler"] = flixel_system_debug_completion_CompletionHandler; flixel_system_debug_completion_CompletionHandler.__name__ = "flixel.system.debug.completion.CompletionHandler"; flixel_system_debug_completion_CompletionHandler.prototype = { completionList: null ,input: null ,watchingSelection: null ,getTextUntilCaret: function() { return this.input.get_text().substring(0,this.getCaretIndex()); } ,getCaretIndex: function() { return this.input.get_caretIndex(); } ,onKeyUp: function(e) { var text = this.getTextUntilCaret(); if(StringTools.endsWith(text,")") || StringTools.endsWith(text,"\"") || StringTools.endsWith(text,"'")) { this.completionList.close(); return; } switch(e.keyCode) { case 9:case 13:case 27:case 38:case 40: break; case 37:case 39: this.completionList.close(); break; default: this.invokeCompletion(this.getPathBeforeDot(text),e.keyCode == 190); if(this.completionList.get_visible()) { this.completionList.set_filter(this.getWordAfterDot(text)); } } } ,invokeCompletion: function(path,isPeriod) { var items = null; try { if(path.length != 0) { var output = flixel_system_debug_console_ConsoleUtil.runCommand(path); items = flixel_system_debug_console_ConsoleUtil.getFields(output); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; if(isPeriod) { this.completionList.close(); return; } } if(items == null) { items = this.getGlobals(); } if(items.length > 0) { this.completionList.show(this.getCharXPosition(),items); } else { this.completionList.close(); } } ,getGlobals: function() { return flixel_util_FlxStringUtil.sortAlphabetically(flixel_system_debug_console_ConsoleUtil.interp.getGlobals()); } ,getCharXPosition: function() { var pos = 0.0; var _g = 0; var _g1 = this.getCaretIndex(); while(_g < _g1) { var i = _g++; pos += 6; } return pos; } ,getCompletedText: function(text,selectedItem) { var _this_r = new RegExp(this.getWordAfterDot(text) + "$","g".split("u").join("")); return text.replace(_this_r,selectedItem); } ,completed: function(selectedItem) { var textUntilCaret = this.getTextUntilCaret(); var insert = this.getCompletedText(textUntilCaret,selectedItem); this.input.set_text(insert + HxOverrides.substr(this.input.get_text(),this.getCaretIndex(),null)); this.input.setSelection(insert.length,insert.length); } ,selectionChanged: function(selectedItem) { try { var lastWord = this.getLastWord(this.input.get_text()); var command = this.getCompletedText(lastWord,selectedItem); var output = flixel_system_debug_console_ConsoleUtil.runCommand(command); this.watchingSelection = true; var _this = flixel_FlxG.watch; var value = this.getReadableType(output); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } ,getReadableType: function(v) { var _g = Type.typeof(v); switch(_g._hx_index) { case 0: return null; case 1: return "Int"; case 2: return "Float"; case 3: return "Bool"; case 4: return "Object"; case 5: return "Function"; case 6: var _g1 = _g.c; if(_g1 == Array) { return "Array[" + Std.string(v.length) + "]"; } else { var c = _g1; return flixel_util_FlxStringUtil.getClassName(c,true); } break; case 7: var e = _g.e; return flixel_util_FlxStringUtil.getClassName(e,true); case 8: return "Unknown"; } } ,completionClosed: function() { if(!this.watchingSelection) { return; } this.watchingSelection = false; } ,getPathBeforeDot: function(text) { var lastWord = this.getLastWord(text); var dotIndex = lastWord.lastIndexOf("."); return HxOverrides.substr(lastWord,0,dotIndex); } ,getWordAfterDot: function(text) { var lastWord = this.getLastWord(text); var index = lastWord.lastIndexOf("."); if(index < 0) { index = 0; } else { ++index; } var word = HxOverrides.substr(lastWord,index,null); if(word == null) { return ""; } else { return word; } } ,getLastWord: function(text) { return flixel_util_FlxArrayUtil.last(new EReg("([^.a-zA-Z0-9_\\[\\]\"']+)","g").split(text)); } ,__class__: flixel_system_debug_completion_CompletionHandler }; var flixel_system_debug_completion_CompletionList = function(capacity) { this.upperVisibleIndex = 0; this.lowerVisibleIndex = 0; this.selectedIndex = 0; this.entries = []; openfl_display_Sprite.call(this); this.set_visible(false); this.upperVisibleIndex = capacity - 1; this.actualHeight = capacity * 20; this.createPopupEntries(capacity); this.createScrollBar(); this.updateSelectedItem(); openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.onKeyDown)); }; $hxClasses["flixel.system.debug.completion.CompletionList"] = flixel_system_debug_completion_CompletionList; flixel_system_debug_completion_CompletionList.__name__ = "flixel.system.debug.completion.CompletionList"; flixel_system_debug_completion_CompletionList.__super__ = openfl_display_Sprite; flixel_system_debug_completion_CompletionList.prototype = $extend(openfl_display_Sprite.prototype,{ completed: null ,selectionChanged: null ,closed: null ,filter: null ,items: null ,entries: null ,originalItems: null ,selectedIndex: null ,lowerVisibleIndex: null ,upperVisibleIndex: null ,scrollBar: null ,actualHeight: null ,show: function(x,items) { this.set_visible(true); this.set_x(x); this.originalItems = items; this.set_filter(""); this.updateEntries(); } ,setY: function(y) { this.set_y(y - this.actualHeight); } ,close: function() { this.set_visible(false); this.set_filter(null); if(this.closed != null) { this.closed(); } } ,createPopupEntries: function(amount) { var _g = 0; var _g1 = amount; while(_g < _g1) { var i = _g++; var entry = new flixel_system_debug_completion_CompletionListEntry(); this.entries.push(entry); this.addChild(entry); entry.set_y(20 * i); } } ,createScrollBar: function() { this.scrollBar = new flixel_system_debug_completion_CompletionListScrollBar(150,0,5,this.actualHeight); this.addChild(this.scrollBar); } ,onKeyDown: function(e) { if(!this.get_visible()) { return; } switch(e.keyCode) { case 13: if(this.completed != null) { this.completed(this.items[this.selectedIndex]); } this.close(); return; case 27: this.close(); return; case 38: this.updateIndices(-1); break; case 40: this.updateIndices(1); break; } this.updateEntries(); } ,updateIndices: function(modifier) { this.selectedIndex = this.bound(this.selectedIndex + modifier); var Value = this.selectedIndex; var Min = this.lowerVisibleIndex; var Max = this.upperVisibleIndex; if((Min == null || Value >= Min) && (Max == null || Value <= Max)) { return; } this.lowerVisibleIndex = this.bound(this.lowerVisibleIndex + modifier); this.upperVisibleIndex = this.bound(this.upperVisibleIndex + modifier); var range = this.upperVisibleIndex - this.lowerVisibleIndex; if(range == this.items.length) { return; } if(this.lowerVisibleIndex == 0) { this.upperVisibleIndex = this.entries.length - 1; } else if(this.upperVisibleIndex == this.items.length - 1) { this.lowerVisibleIndex = this.items.length - this.entries.length; } } ,bound: function(index) { var Max = this.items.length - 1; var lowerBound = index < 0 ? 0 : index; return (Max != null && lowerBound > Max ? Max : lowerBound) | 0; } ,updateEntries: function() { this.updateLabels(); this.updateSelectedItem(); this.scrollBar.updateHandle(this.lowerVisibleIndex,this.items.length,this.entries.length); } ,updateLabels: function() { var _g = 0; var _g1 = this.entries.length; while(_g < _g1) { var i = _g++; var selectedItem = this.items[this.lowerVisibleIndex + i]; if(selectedItem == null) { selectedItem = ""; } this.entries[i].setItem(selectedItem); } } ,updateSelectedItem: function() { var _g = 0; var _g1 = this.entries; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; entry.set_selected(false); } this.entries[this.selectedIndex - this.lowerVisibleIndex].set_selected(true); if(this.selectionChanged != null) { this.selectionChanged(this.items[this.selectedIndex]); } } ,setItems: function(items) { if(items == null) { return; } if(items.length == 0) { this.close(); } this.items = items; this.selectedIndex = 0; this.lowerVisibleIndex = 0; this.upperVisibleIndex = this.entries.length - 1; this.updateEntries(); } ,filterItems: function(filter) { if(filter == null) { filter = ""; } var _g = []; var _g1 = 0; var _g2 = this.originalItems; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.toLowerCase().indexOf(filter.toLowerCase()) != -1) { _g.push(v); } } return this.sortItems(filter,_g); } ,sortItems: function(filter,items) { var _gthis = this; if(filter == "") { return items; } items.sort(function(a,b) { var valueA = _gthis.startsWithExt(a,filter); var valueB = _gthis.startsWithExt(b,filter); if(valueA > valueB) { return -valueA; } if(valueB > valueA) { return valueB; } if(valueA == valueB) { return a.length - b.length | 0; } return 0; }); return items; } ,startsWithExt: function(s,start) { if(StringTools.startsWith(s,start)) { return 2; } var _this_r = new RegExp("^[_]+","".split("u").join("")); if(StringTools.startsWith(s.replace(_this_r,""),start)) { return 1; } return 0; } ,set_filter: function(filter) { if(filter == this.filter) { return filter; } this.setItems(this.filterItems(filter)); return this.filter = filter; } ,__class__: flixel_system_debug_completion_CompletionList ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_filter:"set_filter"}) }); var flixel_system_debug_completion_CompletionListEntry = function() { this.selected = false; openfl_display_Sprite.call(this); this.initBitmapDatas(); this.addChild(this.background = new openfl_display_Bitmap()); this.background.set_bitmapData(flixel_system_debug_completion_CompletionListEntry.normalBitmapData); this.label = flixel_system_debug_DebuggerUtil.createTextField(); this.label.set_x(4); this.addChild(this.label); }; $hxClasses["flixel.system.debug.completion.CompletionListEntry"] = flixel_system_debug_completion_CompletionListEntry; flixel_system_debug_completion_CompletionListEntry.__name__ = "flixel.system.debug.completion.CompletionListEntry"; flixel_system_debug_completion_CompletionListEntry.normalBitmapData = null; flixel_system_debug_completion_CompletionListEntry.highlightBitmapData = null; flixel_system_debug_completion_CompletionListEntry.__super__ = openfl_display_Sprite; flixel_system_debug_completion_CompletionListEntry.prototype = $extend(openfl_display_Sprite.prototype,{ selected: null ,background: null ,label: null ,initBitmapDatas: function() { if(flixel_system_debug_completion_CompletionListEntry.normalBitmapData == null) { flixel_system_debug_completion_CompletionListEntry.normalBitmapData = new openfl_display_BitmapData(150,20,true,-10526881); } if(flixel_system_debug_completion_CompletionListEntry.highlightBitmapData == null) { flixel_system_debug_completion_CompletionListEntry.highlightBitmapData = new openfl_display_BitmapData(150,20,true,-9605779); } } ,setItem: function(item) { this.label.set_text(item); if(this.label.get_width() > 150) { this.label.set_width(150); this.label.set_autoSize(2); } } ,set_selected: function(selected) { if(selected == this.selected) { return selected; } this.background.set_bitmapData(selected ? flixel_system_debug_completion_CompletionListEntry.highlightBitmapData : flixel_system_debug_completion_CompletionListEntry.normalBitmapData); return this.selected = selected; } ,__class__: flixel_system_debug_completion_CompletionListEntry ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_selected:"set_selected"}) }); var flixel_system_debug_completion_CompletionListScrollBar = function(x,y,width,height) { openfl_display_Sprite.call(this); this.set_x(x); this.set_y(y); this.addChild(new openfl_display_Bitmap(new openfl_display_BitmapData(width,height,true,-12303292))); this.handle = new openfl_display_Bitmap(new openfl_display_BitmapData(width,1,true,-14540254)); this.addChild(this.handle); }; $hxClasses["flixel.system.debug.completion.CompletionListScrollBar"] = flixel_system_debug_completion_CompletionListScrollBar; flixel_system_debug_completion_CompletionListScrollBar.__name__ = "flixel.system.debug.completion.CompletionListScrollBar"; flixel_system_debug_completion_CompletionListScrollBar.__super__ = openfl_display_Sprite; flixel_system_debug_completion_CompletionListScrollBar.prototype = $extend(openfl_display_Sprite.prototype,{ handle: null ,updateHandle: function(lower,items,entries) { this.handle.set_scaleY(Math.min(this.get_height() / items * entries,this.get_height())); this.handle.set_y(this.get_height() / items * lower); var tmp = this.handle; var Value = this.handle.get_y(); var Max = this.get_height() - this.handle.get_scaleY(); var lowerBound = Value < 0 ? 0 : Value; tmp.set_y(Max != null && lowerBound > Max ? Max : lowerBound); } ,__class__: flixel_system_debug_completion_CompletionListScrollBar }); var flixel_system_debug_console_ConsoleHistory = function() { this.index = 0; var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(tmp) { if(flixel_FlxG.save.data.history != null) { this.commands = flixel_FlxG.save.data.history; this.index = this.commands.length; } else { this.commands = []; flixel_FlxG.save.data.history = this.commands; } } else { this.commands = []; } }; $hxClasses["flixel.system.debug.console.ConsoleHistory"] = flixel_system_debug_console_ConsoleHistory; flixel_system_debug_console_ConsoleHistory.__name__ = "flixel.system.debug.console.ConsoleHistory"; flixel_system_debug_console_ConsoleHistory.prototype = { commands: null ,index: null ,getPreviousCommand: function() { if(this.index > 0) { this.index--; } return this.commands[this.index]; } ,getNextCommand: function() { if(this.index < this.commands.length) { this.index++; } if(this.commands[this.index] != null) { return this.commands[this.index]; } else { return ""; } } ,addCommand: function(command) { if(this.get_isEmpty() || this.getPreviousCommand() != command) { this.commands.push(command); var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(tmp) { flixel_FlxG.save.flush(); } if(this.commands.length > 50) { this.commands.shift(); } } this.index = this.commands.length; } ,clear: function() { this.commands.splice(0,this.commands.length); flixel_FlxG.save.flush(); } ,get_isEmpty: function() { return this.commands.length == 0; } ,__class__: flixel_system_debug_console_ConsoleHistory ,__properties__: {get_isEmpty:"get_isEmpty"} }; var flixel_system_debug_console_ConsoleUtil = function() { }; $hxClasses["flixel.system.debug.console.ConsoleUtil"] = flixel_system_debug_console_ConsoleUtil; flixel_system_debug_console_ConsoleUtil.__name__ = "flixel.system.debug.console.ConsoleUtil"; flixel_system_debug_console_ConsoleUtil.parser = null; flixel_system_debug_console_ConsoleUtil.interp = null; flixel_system_debug_console_ConsoleUtil.init = function() { flixel_system_debug_console_ConsoleUtil.parser = new hscript_Parser(); flixel_system_debug_console_ConsoleUtil.parser.allowJSON = true; flixel_system_debug_console_ConsoleUtil.parser.allowTypes = true; flixel_system_debug_console_ConsoleUtil.interp = new flixel_system_debug_console__$ConsoleUtil_Interp(); }; flixel_system_debug_console_ConsoleUtil.parseCommand = function(input) { if(StringTools.endsWith(input,";")) { input = HxOverrides.substr(input,0,-1); } return flixel_system_debug_console_ConsoleUtil.parser.parseString(input); }; flixel_system_debug_console_ConsoleUtil.runCommand = function(input) { return flixel_system_debug_console_ConsoleUtil.interp.expr(flixel_system_debug_console_ConsoleUtil.parseCommand(input)); }; flixel_system_debug_console_ConsoleUtil.runExpr = function(expr) { return flixel_system_debug_console_ConsoleUtil.interp.expr(expr); }; flixel_system_debug_console_ConsoleUtil.registerObject = function(alias,object) { if(object == null || Reflect.isObject(object)) { flixel_system_debug_console_ConsoleUtil.interp.variables.h[alias] = object; } }; flixel_system_debug_console_ConsoleUtil.registerFunction = function(alias,func) { if(Reflect.isFunction(func)) { flixel_system_debug_console_ConsoleUtil.interp.variables.h[alias] = func; } }; flixel_system_debug_console_ConsoleUtil.removeByAlias = function(alias) { var _this = flixel_system_debug_console_ConsoleUtil.interp.variables; if(Object.prototype.hasOwnProperty.call(_this.h,alias)) { delete(_this.h[alias]); } }; flixel_system_debug_console_ConsoleUtil.getFields = function(Object1) { var fields = []; if(js_Boot.__instanceof(Object1,Class)) { fields = Type.getClassFields(Object1); } else if(js_Boot.__instanceof(Object1,Enum)) { var _this = Object1.__constructs__; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = _this[i]._hx_name; } fields = result; } else if(Reflect.isObject(Object1)) { fields = Type.getInstanceFields(js_Boot.getClass(Object1)); } HxOverrides.remove(fields,"__constructs__"); var filteredFields = []; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; if(StringTools.startsWith(field,"get_") || StringTools.startsWith(field,"set_")) { var name = HxOverrides.substr(field,4,null); if(fields.indexOf(name) == -1 && filteredFields.indexOf(name) == -1) { filteredFields.push(name); } } else { filteredFields.push(field); } } return flixel_system_debug_console_ConsoleUtil.sortFields(filteredFields); }; flixel_system_debug_console_ConsoleUtil.sortFields = function(fields) { var underscoreList = []; var _g = []; var _g1 = 0; var _g2 = fields; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; var fields1; if(StringTools.startsWith(v,"_")) { underscoreList.push(v); fields1 = false; } else { fields1 = true; } if(fields1) { _g.push(v); } } fields = _g; flixel_util_FlxStringUtil.sortAlphabetically(fields); flixel_util_FlxStringUtil.sortAlphabetically(underscoreList); return fields.concat(underscoreList); }; flixel_system_debug_console_ConsoleUtil.log = function(text) { flixel_FlxG.log.advanced([text],flixel_system_debug_log_LogStyle.CONSOLE); }; var hscript_Interp = function() { this.locals = new haxe_ds_StringMap(); this.declared = []; this.resetVariables(); this.initOps(); }; $hxClasses["hscript.Interp"] = hscript_Interp; hscript_Interp.__name__ = "hscript.Interp"; hscript_Interp.prototype = { variables: null ,locals: null ,binops: null ,depth: null ,inTry: null ,declared: null ,returnValue: null ,curExpr: null ,resetVariables: function() { var _gthis = this; this.variables = new haxe_ds_StringMap(); this.variables.h["null"] = null; this.variables.h["true"] = true; this.variables.h["false"] = false; var this1 = this.variables; var value = Reflect.makeVarArgs(function(el) { var inf = _gthis.posInfos(); var v = el.shift(); if(el.length > 0) { inf.customParams = el; } haxe_Log.trace(Std.string(v),inf); }); this1.h["trace"] = value; } ,posInfos: function() { if(this.curExpr != null) { return { fileName : this.curExpr.origin, lineNumber : this.curExpr.line}; } return { fileName : "hscript", lineNumber : 0}; } ,initOps: function() { var me = this; this.binops = new haxe_ds_StringMap(); this.binops.h["+"] = function(e1,e2) { return me.expr(e1) + me.expr(e2); }; this.binops.h["-"] = function(e1,e2) { return me.expr(e1) - me.expr(e2); }; this.binops.h["*"] = function(e1,e2) { return me.expr(e1) * me.expr(e2); }; this.binops.h["/"] = function(e1,e2) { return me.expr(e1) / me.expr(e2); }; this.binops.h["%"] = function(e1,e2) { return me.expr(e1) % me.expr(e2); }; this.binops.h["&"] = function(e1,e2) { return me.expr(e1) & me.expr(e2); }; this.binops.h["|"] = function(e1,e2) { return me.expr(e1) | me.expr(e2); }; this.binops.h["^"] = function(e1,e2) { return me.expr(e1) ^ me.expr(e2); }; this.binops.h["<<"] = function(e1,e2) { return me.expr(e1) << me.expr(e2); }; this.binops.h[">>"] = function(e1,e2) { return me.expr(e1) >> me.expr(e2); }; this.binops.h[">>>"] = function(e1,e2) { return me.expr(e1) >>> me.expr(e2); }; this.binops.h["=="] = function(e1,e2) { return me.expr(e1) == me.expr(e2); }; this.binops.h["!="] = function(e1,e2) { return me.expr(e1) != me.expr(e2); }; this.binops.h[">="] = function(e1,e2) { return me.expr(e1) >= me.expr(e2); }; this.binops.h["<="] = function(e1,e2) { return me.expr(e1) <= me.expr(e2); }; this.binops.h[">"] = function(e1,e2) { return me.expr(e1) > me.expr(e2); }; this.binops.h["<"] = function(e1,e2) { return me.expr(e1) < me.expr(e2); }; this.binops.h["||"] = function(e1,e2) { if(me.expr(e1) != true) { return me.expr(e2) == true; } else { return true; } }; this.binops.h["&&"] = function(e1,e2) { if(me.expr(e1) == true) { return me.expr(e2) == true; } else { return false; } }; this.binops.h["="] = $bind(this,this.assign); this.binops.h["..."] = function(e1,e2) { return new IntIterator(me.expr(e1),me.expr(e2)); }; this.assignOp("+=",function(v1,v2) { return v1 + v2; }); this.assignOp("-=",function(v1,v2) { return v1 - v2; }); this.assignOp("*=",function(v1,v2) { return v1 * v2; }); this.assignOp("/=",function(v1,v2) { return v1 / v2; }); this.assignOp("%=",function(v1,v2) { return v1 % v2; }); this.assignOp("&=",function(v1,v2) { return v1 & v2; }); this.assignOp("|=",function(v1,v2) { return v1 | v2; }); this.assignOp("^=",function(v1,v2) { return v1 ^ v2; }); this.assignOp("<<=",function(v1,v2) { return v1 << v2; }); this.assignOp(">>=",function(v1,v2) { return v1 >> v2; }); this.assignOp(">>>=",function(v1,v2) { return v1 >>> v2; }); } ,setVar: function(name,v) { this.variables.h[name] = v; } ,assign: function(e1,e2) { var v = this.expr(e2); var _g = e1.e; switch(_g._hx_index) { case 1: var id = _g.v; var l = this.locals.h[id]; if(l == null) { this.setVar(id,v); } else { l.r = v; } break; case 5: var e = _g.e; var f = _g.f; v = this.set(this.expr(e),f,v); break; case 16: var e = _g.e; var index = _g.index; var arr = this.expr(e); var index1 = this.expr(index); if(js_Boot.__implements(arr,haxe_IMap)) { (js_Boot.__cast(arr , haxe_IMap)).set(index1,v); } else { arr[index1] = v; } break; default: var e = new hscript_Error(hscript_ErrorDef.EInvalidOp("="),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return v; } ,assignOp: function(op,fop) { var me = this; this.binops.h[op] = function(e1,e2) { return me.evalAssignOp(op,fop,e1,e2); }; } ,evalAssignOp: function(op,fop,e1,e2) { var v; var _g = e1.e; switch(_g._hx_index) { case 1: var id = _g.v; var l = this.locals.h[id]; v = fop(this.expr(e1),this.expr(e2)); if(l == null) { this.setVar(id,v); } else { l.r = v; } break; case 5: var e = _g.e; var f = _g.f; var obj = this.expr(e); v = fop(this.get(obj,f),this.expr(e2)); v = this.set(obj,f,v); break; case 16: var e = _g.e; var index = _g.index; var arr = this.expr(e); var index1 = this.expr(index); if(js_Boot.__implements(arr,haxe_IMap)) { v = fop((js_Boot.__cast(arr , haxe_IMap)).get(index1),this.expr(e2)); (js_Boot.__cast(arr , haxe_IMap)).set(index1,v); } else { v = fop(arr[index1],this.expr(e2)); arr[index1] = v; } break; default: var e = new hscript_Error(hscript_ErrorDef.EInvalidOp(op),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return v; } ,increment: function(e,prefix,delta) { this.curExpr = e; var e1 = e.e; switch(e1._hx_index) { case 1: var id = e1.v; var l = this.locals.h[id]; var v = l == null ? this.resolve(id) : l.r; if(prefix) { v += delta; if(l == null) { this.setVar(id,v); } else { l.r = v; } } else if(l == null) { this.setVar(id,v + delta); } else { l.r = v + delta; } return v; case 5: var e = e1.e; var f = e1.f; var obj = this.expr(e); var v = this.get(obj,f); if(prefix) { v += delta; this.set(obj,f,v); } else { this.set(obj,f,v + delta); } return v; case 16: var e = e1.e; var index = e1.index; var arr = this.expr(e); var index1 = this.expr(index); if(js_Boot.__implements(arr,haxe_IMap)) { var v = (js_Boot.__cast(arr , haxe_IMap)).get(index1); if(prefix) { v += delta; (js_Boot.__cast(arr , haxe_IMap)).set(index1,v); } else { (js_Boot.__cast(arr , haxe_IMap)).set(index1,v + delta); } return v; } else { var v = arr[index1]; if(prefix) { v += delta; arr[index1] = v; } else { arr[index1] = v + delta; } return v; } break; default: var e = new hscript_Error(hscript_ErrorDef.EInvalidOp(delta > 0 ? "++" : "--"),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } } ,execute: function(expr) { this.depth = 0; this.locals = new haxe_ds_StringMap(); this.declared = []; return this.exprReturn(expr); } ,exprReturn: function(e) { try { return this.expr(e); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) { var e = _g1; switch(e._hx_index) { case 0: throw haxe_Exception.thrown("Invalid break"); case 1: throw haxe_Exception.thrown("Invalid continue"); case 2: var v = this.returnValue; this.returnValue = null; return v; } } else { throw _g; } } } ,duplicate: function(h) { var h2 = new haxe_ds_StringMap(); var h1 = h.h; var k_h = h1; var k_keys = Object.keys(h1); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; h2.h[k] = h.h[k]; } return h2; } ,restore: function(old) { while(this.declared.length > old) { var d = this.declared.pop(); this.locals.h[d.n] = d.old; } } ,error: function(e,rethrow) { if(rethrow == null) { rethrow = false; } var e1 = new hscript_Error(e,this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); if(rethrow) { throw haxe_Exception.thrown(e1); } else { throw haxe_Exception.thrown(e1); } } ,rethrow: function(e) { throw haxe_Exception.thrown(e); } ,resolve: function(id) { var l = this.locals.h[id]; if(l != null) { return l.r; } var v = this.variables.h[id]; if(v == null && !Object.prototype.hasOwnProperty.call(this.variables.h,id)) { var e = new hscript_Error(hscript_ErrorDef.EUnknownVariable(id),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return v; } ,expr: function(e) { var _gthis = this; this.curExpr = e; var e1 = e.e; switch(e1._hx_index) { case 0: var c = e1.c; switch(c._hx_index) { case 0: var v = c.v; return v; case 1: var f = c.f; return f; case 2: var s = c.s; return s; } break; case 1: var id = e1.v; return this.resolve(id); case 2: var _g = e1.t; var n = e1.n; var e = e1.e; this.declared.push({ n : n, old : this.locals.h[n]}); var this1 = this.locals; var value = e == null ? null : this.expr(e); this1.h[n] = { r : value}; return null; case 3: var e = e1.e; return this.expr(e); case 4: var exprs = e1.e; var old = this.declared.length; var v = null; var _g = 0; while(_g < exprs.length) { var e = exprs[_g]; ++_g; v = this.expr(e); } this.restore(old); return v; case 5: var e = e1.e; var f = e1.f; return this.get(this.expr(e),f); case 6: var op = e1.op; var e11 = e1.e1; var e2 = e1.e2; var fop = this.binops.h[op]; if(fop == null) { var e = new hscript_Error(hscript_ErrorDef.EInvalidOp(op),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return fop(e11,e2); case 7: var op = e1.op; var prefix = e1.prefix; var e = e1.e; switch(op) { case "!": return this.expr(e) != true; case "++": return this.increment(e,prefix,1); case "-": return -this.expr(e); case "--": return this.increment(e,prefix,-1); case "~": return ~this.expr(e); default: var e = new hscript_Error(hscript_ErrorDef.EInvalidOp(op),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } break; case 8: var e = e1.e; var params = e1.params; var args = []; var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; args.push(this.expr(p)); } var _g = e.e; if(_g._hx_index == 5) { var e2 = _g.e; var f = _g.f; var obj = this.expr(e2); if(obj == null) { var e2 = new hscript_Error(hscript_ErrorDef.EInvalidAccess(f),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e2); } return this.fcall(obj,f,args); } else { return this.call(null,this.expr(e),args); } break; case 9: var econd = e1.cond; var e11 = e1.e1; var e2 = e1.e2; if(this.expr(econd) == true) { return this.expr(e11); } else if(e2 == null) { return null; } else { return this.expr(e2); } break; case 10: var econd = e1.cond; var e = e1.e; this.whileLoop(econd,e); return null; case 11: var v = e1.v; var it = e1.it; var e = e1.e; this.forLoop(v,it,e); return null; case 12: throw haxe_Exception.thrown(hscript__$Interp_Stop.SBreak); case 13: throw haxe_Exception.thrown(hscript__$Interp_Stop.SContinue); case 14: var _g = e1.ret; var params = e1.args; var fexpr = e1.e; var name = e1.name; var capturedLocals = this.duplicate(this.locals); var me = this; var hasOpt = false; var minParams = 0; var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; if(p.opt) { hasOpt = true; } else { minParams += 1; } } var f = function(args) { if((args == null ? 0 : args.length) != params.length) { if(args.length < minParams) { var str = "Invalid number of parameters. Got " + args.length + ", required " + minParams; if(name != null) { str += " for function '" + name + "'"; } var e = new hscript_Error(hscript_ErrorDef.ECustom(str),_gthis.curExpr.pmin,_gthis.curExpr.pmax,_gthis.curExpr.origin,_gthis.curExpr.line); throw haxe_Exception.thrown(e); } var args2 = []; var extraParams = args.length - minParams; var pos = 0; var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; if(p.opt) { if(extraParams > 0) { args2.push(args[pos++]); --extraParams; } else { args2.push(null); } } else { args2.push(args[pos++]); } } args = args2; } var old = me.locals; var depth = me.depth; me.depth++; me.locals = me.duplicate(capturedLocals); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; me.locals.h[params[i].name] = { r : args[i]}; } var r = null; var oldDecl = _gthis.declared.length; if(_gthis.inTry) { try { r = me.exprReturn(fexpr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); me.locals = old; me.depth = depth; throw haxe_Exception.thrown(e); } } else { r = me.exprReturn(fexpr); } _gthis.restore(oldDecl); me.locals = old; me.depth = depth; return r; }; var f1 = Reflect.makeVarArgs(f); if(name != null) { if(this.depth == 0) { this.variables.h[name] = f1; } else { this.declared.push({ n : name, old : this.locals.h[name]}); var ref = { r : f1}; this.locals.h[name] = ref; capturedLocals.h[name] = ref; } } return f1; case 15: var e = e1.e; this.returnValue = e == null ? null : this.expr(e); throw haxe_Exception.thrown(hscript__$Interp_Stop.SReturn); case 16: var e = e1.e; var index = e1.index; var arr = this.expr(e); var index1 = this.expr(index); if(js_Boot.__implements(arr,haxe_IMap)) { return (js_Boot.__cast(arr , haxe_IMap)).get(index1); } else { return arr[index1]; } break; case 17: var arr = e1.e; var tmp; if(arr.length > 0) { var _g = arr[0].e; if(_g._hx_index == 6) { var _g1 = _g.e1; var _g1 = _g.e2; tmp = _g.op == "=>"; } else { tmp = false; } } else { tmp = false; } if(tmp) { var isAllString = true; var isAllInt = true; var isAllObject = true; var isAllEnum = true; var keys = []; var values = []; var _g = 0; while(_g < arr.length) { var e = arr[_g]; ++_g; var _g1 = e.e; if(_g1._hx_index == 6) { if(_g1.op == "=>") { var eKey = _g1.e1; var eValue = _g1.e2; var key = this.expr(eKey); var value = this.expr(eValue); isAllString = isAllString && typeof(key) == "string"; isAllInt = isAllInt && (typeof(key) == "number" && ((key | 0) === key)); isAllObject = isAllObject && Reflect.isObject(key); isAllEnum = isAllEnum && Reflect.isEnumValue(key); keys.push(key); values.push(value); } else { throw haxe_Exception.thrown("=> expected"); } } else { throw haxe_Exception.thrown("=> expected"); } } var map; if(isAllInt) { map = new haxe_ds_IntMap(); } else if(isAllString) { map = new haxe_ds_StringMap(); } else if(isAllEnum) { map = new haxe_ds_EnumValueMap(); } else if(isAllObject) { map = new haxe_ds_ObjectMap(); } else { throw haxe_Exception.thrown("Inconsistent key types"); } var _g = 0; var _g1 = keys.length; while(_g < _g1) { var n = _g++; (js_Boot.__cast(map , haxe_IMap)).set(keys[n],values[n]); } return map; } else { var a = []; var _g = 0; while(_g < arr.length) { var e = arr[_g]; ++_g; a.push(this.expr(e)); } return a; } break; case 18: var cl = e1.cl; var params1 = e1.params; var a = []; var _g = 0; while(_g < params1.length) { var e = params1[_g]; ++_g; a.push(this.expr(e)); } return this.cnew(cl,a); case 19: var e = e1.e; throw haxe_Exception.thrown(this.expr(e)); case 20: var _g = e1.t; var e = e1.e; var n = e1.v; var ecatch = e1.ecatch; var old = this.declared.length; var oldTry = this.inTry; try { this.inTry = true; var v = this.expr(e); this.restore(old); this.inTry = oldTry; return v; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) { var err = _g1; this.inTry = oldTry; throw haxe_Exception.thrown(err); } else { var err = _g1; this.restore(old); this.inTry = oldTry; this.declared.push({ n : n, old : this.locals.h[n]}); this.locals.h[n] = { r : err}; var v = this.expr(ecatch); this.restore(old); return v; } } break; case 21: var fl = e1.fl; var o = { }; var _g = 0; while(_g < fl.length) { var f = fl[_g]; ++_g; this.set(o,f.name,this.expr(f.e)); } return o; case 22: var econd = e1.cond; var e11 = e1.e1; var e2 = e1.e2; if(this.expr(econd) == true) { return this.expr(e11); } else { return this.expr(e2); } break; case 23: var e = e1.e; var cases = e1.cases; var def = e1.defaultExpr; var val = this.expr(e); var match = false; var _g = 0; while(_g < cases.length) { var c = cases[_g]; ++_g; var _g1 = 0; var _g2 = c.values; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(this.expr(v) == val) { match = true; break; } } if(match) { val = this.expr(c.expr); break; } } if(!match) { val = def == null ? null : this.expr(def); } return val; case 24: var econd = e1.cond; var e = e1.e; this.doWhileLoop(econd,e); return null; case 25: var _g = e1.name; var _g = e1.args; var e = e1.e; return this.expr(e); case 26: var _g = e1.t; var e = e1.e; return this.expr(e); } } ,doWhileLoop: function(econd,e) { var old = this.declared.length; _hx_loop1: do try { this.expr(e); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) { var err = _g1; switch(err._hx_index) { case 0: break _hx_loop1; case 1: break; case 2: throw haxe_Exception.thrown(err); } } else { throw _g; } } while(this.expr(econd) == true); this.restore(old); } ,whileLoop: function(econd,e) { var old = this.declared.length; _hx_loop1: while(this.expr(econd) == true) try { this.expr(e); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) { var err = _g1; switch(err._hx_index) { case 0: break _hx_loop1; case 1: break; case 2: throw haxe_Exception.thrown(err); } } else { throw _g; } } this.restore(old); } ,makeIterator: function(v) { try { v = $getIterator(v); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } if(v.hasNext == null || v.next == null) { var e = new hscript_Error(hscript_ErrorDef.EInvalidIterator(v),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return v; } ,forLoop: function(n,it,e) { var old = this.declared.length; this.declared.push({ n : n, old : this.locals.h[n]}); var it1 = this.makeIterator(this.expr(it)); _hx_loop1: while(it1.hasNext()) { var this1 = this.locals; var value = { r : it1.next()}; this1.h[n] = value; try { this.expr(e); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(js_Boot.__instanceof(_g1,hscript__$Interp_Stop)) { var err = _g1; switch(err._hx_index) { case 0: break _hx_loop1; case 1: break; case 2: throw haxe_Exception.thrown(err); } } else { throw _g; } } } this.restore(old); } ,isMap: function(o) { return js_Boot.__implements(o,haxe_IMap); } ,getMapValue: function(map,key) { return (js_Boot.__cast(map , haxe_IMap)).get(key); } ,setMapValue: function(map,key,value) { (js_Boot.__cast(map , haxe_IMap)).set(key,value); } ,get: function(o,f) { if(o == null) { var e = new hscript_Error(hscript_ErrorDef.EInvalidAccess(f),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return Reflect.getProperty(o,f); } ,set: function(o,f,v) { if(o == null) { var e = new hscript_Error(hscript_ErrorDef.EInvalidAccess(f),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } Reflect.setProperty(o,f,v); return v; } ,fcall: function(o,f,args) { return this.call(o,this.get(o,f),args); } ,call: function(o,f,args) { return f.apply(o,args); } ,cnew: function(cl,args) { var c = $hxClasses[cl]; if(c == null) { c = this.resolve(cl); } return Type.createInstance(c,args); } ,__class__: hscript_Interp }; var flixel_system_debug_console__$ConsoleUtil_Interp = function() { hscript_Interp.call(this); }; $hxClasses["flixel.system.debug.console._ConsoleUtil.Interp"] = flixel_system_debug_console__$ConsoleUtil_Interp; flixel_system_debug_console__$ConsoleUtil_Interp.__name__ = "flixel.system.debug.console._ConsoleUtil.Interp"; flixel_system_debug_console__$ConsoleUtil_Interp.__super__ = hscript_Interp; flixel_system_debug_console__$ConsoleUtil_Interp.prototype = $extend(hscript_Interp.prototype,{ getGlobals: function() { return this.toArray(new haxe_ds__$StringMap_StringMapKeyIterator(this.locals.h)).concat(this.toArray(new haxe_ds__$StringMap_StringMapKeyIterator(this.variables.h))); } ,toArray: function(iterator) { var array = []; var element = iterator; while(element.hasNext()) { var element1 = element.next(); array.push(element1); } return array; } ,get: function(o,f) { if(o == null) { var e = new hscript_Error(hscript_ErrorDef.EInvalidAccess(f),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } return Reflect.getProperty(o,f); } ,set: function(o,f,v) { if(o == null) { var e = new hscript_Error(hscript_ErrorDef.EInvalidAccess(f),this.curExpr.pmin,this.curExpr.pmax,this.curExpr.origin,this.curExpr.line); throw haxe_Exception.thrown(e); } Reflect.setProperty(o,f,v); return v; } ,__class__: flixel_system_debug_console__$ConsoleUtil_Interp }); var flixel_system_debug_interaction_Interaction = function(container) { this._flixelPointer = new flixel_input_FlxPointer(); this._debuggerInteraction = false; this._keysUp = new haxe_ds_IntMap(); this._keysDown = new haxe_ds_IntMap(); this._turn = 2; this._tools = []; this.macKeyboard = /AppleWebKit/.test (navigator.userAgent) && /Mobile\/\w+/.test (navigator.userAgent) || /Mac/.test (navigator.platform); this.shouldDrawItemsSelection = true; this.pointerPressed = false; this.pointerJustReleased = false; this.pointerJustPressed = false; this.flixelPointer = new flixel_math_FlxBasePoint(0,0); this.selectedItems = new flixel_group_FlxTypedGroup(); flixel_system_debug_Window.call(this,"Tools",new flixel_system_debug_GraphicInteractive(0,0),40,25,false); this.reposition(2,100); this._container = container; this._customCursor = new openfl_display_Sprite(); this._customCursor.mouseEnabled = false; this._container.addChild(this._customCursor); this.addTool(new flixel_system_debug_interaction_tools_Pointer()); this.addTool(new flixel_system_debug_interaction_tools_Mover()); this.addTool(new flixel_system_debug_interaction_tools_Eraser()); this.addTool(new flixel_system_debug_interaction_tools_Transform()); flixel_FlxG.signals.postDraw.add($bind(this,this.postDraw)); flixel_FlxG.debugger.visibilityChanged.add($bind(this,this.handleDebuggerVisibilityChanged)); openfl_Lib.get_current().stage.addEventListener("mouseMove",$bind(this,this.updateMouse)); openfl_Lib.get_current().stage.addEventListener("mouseDown",$bind(this,this.handleMouseClick)); openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.handleMouseClick)); openfl_Lib.get_current().stage.addEventListener("keyDown",$bind(this,this.handleKeyEvent)); openfl_Lib.get_current().stage.addEventListener("keyUp",$bind(this,this.handleKeyEvent)); this._container.addEventListener("mouseOver",$bind(this,this.handleMouseInDebugger)); this._container.addEventListener("mouseOut",$bind(this,this.handleMouseInDebugger)); }; $hxClasses["flixel.system.debug.interaction.Interaction"] = flixel_system_debug_interaction_Interaction; flixel_system_debug_interaction_Interaction.__name__ = "flixel.system.debug.interaction.Interaction"; flixel_system_debug_interaction_Interaction.__super__ = flixel_system_debug_Window; flixel_system_debug_interaction_Interaction.prototype = $extend(flixel_system_debug_Window.prototype,{ activeTool: null ,selectedItems: null ,flixelPointer: null ,pointerJustPressed: null ,pointerJustReleased: null ,pointerPressed: null ,shouldDrawItemsSelection: null ,macKeyboard: null ,_container: null ,_customCursor: null ,_tools: null ,_turn: null ,_keysDown: null ,_keysUp: null ,_wasMouseVisible: null ,_wasUsingSystemCursor: null ,_debuggerInteraction: null ,_flixelPointer: null ,handleDebuggerVisibilityChanged: function() { if(flixel_FlxG.debugger.visible) { this.saveSystemCursorInfo(); } else { this.restoreSystemCursor(); } } ,updateMouse: function(event) { if(event.stageX == null || event.stageY == null) { return; } var offsetX = 0.0; var offsetY = 0.0; if(this.activeTool != null) { var cursorIcon = this.activeTool.cursor; if(cursorIcon != null) { offsetX = cursorIcon.width / flixel_FlxG.scaleMode.scale.x / 2; offsetY = cursorIcon.height / flixel_FlxG.scaleMode.scale.y / 2; } } this._customCursor.set_x(event.stageX + offsetX); this._customCursor.set_y(event.stageY + offsetY); var _this = this._flixelPointer; _this._globalScreenX = event.stageX / flixel_FlxG.scaleMode.scale.x | 0; _this._globalScreenY = event.stageY / flixel_FlxG.scaleMode.scale.y | 0; _this.updatePositions(); this.flixelPointer.set_x(this._flixelPointer.x + offsetX); this.flixelPointer.set_y(this._flixelPointer.y + offsetY); } ,handleMouseClick: function(event) { if(event.type == "mouseDown" && this.belongsToDebugger(event.target)) { return; } this.pointerJustPressed = event.type == "mouseDown"; this.pointerJustReleased = event.type == "mouseUp"; if(this.pointerJustPressed) { this.pointerPressed = true; } else if(this.pointerJustReleased) { this.pointerPressed = false; } } ,belongsToDebugger: function(object) { if(object == null) { return false; } else if(((object) instanceof flixel_system_debug_FlxDebugger)) { return true; } return this.belongsToDebugger(object.parent); } ,handleMouseInDebugger: function(event) { if(!this.isActive()) { return; } if(event.type == "mouseOver") { this._debuggerInteraction = true; } else if(event.type == "mouseOut") { this._debuggerInteraction = false; } event.stopPropagation(); } ,handleKeyEvent: function(event) { if(event.type == "keyDown") { this._keysDown.h[event.keyCode] = true; } else if(event.type == "keyUp") { this._keysDown.h[event.keyCode] = false; this._keysUp.h[event.keyCode] = this._turn; } } ,countToolsWithUIButton: function() { var count = 0; var _g = 0; var _g1 = this._tools; while(_g < _g1.length) { var tool = _g1[_g]; ++_g; if(tool.button != null) { ++count; } } return count; } ,addTool: function(tool) { tool.init(this); this._tools.push(tool); var button = tool.button; if(button == null) { return; } var buttons = this.countToolsWithUIButton(); var row = Math.ceil(buttons / 2); var column = (buttons - 1) % 2; button.set_x(10 + column * 25); button.set_y(20 * row); this.addChild(button); var spacing = 25; var padding = 10; var rows = Math.ceil(buttons / 2); var columns = Math.min(buttons,2); this.resize(spacing * columns + padding,spacing * rows + padding); } ,removeTool: function(tool) { if(this._tools.indexOf(tool) == -1) { return; } if(tool.button == null) { HxOverrides.remove(this._tools,tool); return; } var index = this._tools.indexOf(tool); var prevX = tool.button.get_x(); var prevY = tool.button.get_y(); HxOverrides.remove(this._tools,tool); this.removeChild(tool.button); while(index < this._tools.length) { var tool = this._tools[index]; if(tool.button != null) { var tempX = tool.button.get_x(); var tempY = tool.button.get_y(); tool.button.set_x(prevX); tool.button.set_y(prevY); prevX = tempX; prevY = tempY; } ++index; } var total = this.countToolsWithUIButton(); var spacing = 25; var padding = 10; var rows = Math.ceil(total / 2); var columns = Math.min(total,2); this.resize(spacing * columns + padding,spacing * rows + padding); } ,autoResize: function() { var total = this.countToolsWithUIButton(); var spacing = 25; var padding = 10; var rows = Math.ceil(total / 2); var columns = Math.min(total,2); this.resize(spacing * columns + padding,spacing * rows + padding); } ,resizeByTotal: function(total) { var spacing = 25; var padding = 10; var rows = Math.ceil(total / 2); var columns = Math.min(total,2); this.resize(spacing * columns + padding,spacing * rows + padding); } ,destroy: function() { flixel_FlxG.signals.postDraw.remove($bind(this,this.postDraw)); flixel_FlxG.debugger.visibilityChanged.remove($bind(this,this.handleDebuggerVisibilityChanged)); openfl_Lib.get_current().stage.removeEventListener("mouseMove",$bind(this,this.updateMouse)); openfl_Lib.get_current().stage.removeEventListener("mouseDown",$bind(this,this.handleMouseClick)); openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.handleMouseClick)); openfl_Lib.get_current().stage.removeEventListener("keyDown",$bind(this,this.handleKeyEvent)); openfl_Lib.get_current().stage.removeEventListener("keyUp",$bind(this,this.handleKeyEvent)); if(this._container != null) { this._container.removeEventListener("mouseOver",$bind(this,this.handleMouseInDebugger)); this._container.removeEventListener("mouseOut",$bind(this,this.handleMouseInDebugger)); } if(this._customCursor != null) { this._customCursor.parent.removeChild(this._customCursor); this._customCursor = null; } this._tools = flixel_util_FlxDestroyUtil.destroyArray(this._tools); this.selectedItems = flixel_util_FlxDestroyUtil.destroy(this.selectedItems); this.flixelPointer = flixel_util_FlxDestroyUtil.destroy(this.flixelPointer); this._keysDown = null; this._keysUp = null; } ,isActive: function() { if(flixel_FlxG.debugger.visible) { return this.get_visible(); } else { return false; } } ,update: function() { if(!this.isActive()) { return; } this.updateCustomCursors(); var _g = 0; var _g1 = this._tools; while(_g < _g1.length) { var tool = _g1[_g]; ++_g; tool.update(); } this.pointerJustPressed = false; this.pointerJustReleased = false; this._turn++; } ,postDraw: function() { if(!this.isActive()) { return; } var _g = 0; var _g1 = this._tools; while(_g < _g1.length) { var tool = _g1[_g]; ++_g; tool.draw(); } if(this.shouldDrawItemsSelection) { this.drawItemsSelection(); } } ,getDebugGraphics: function() { if(flixel_FlxG.renderBlit) { flixel_util_FlxSpriteUtil.flashGfx.clear(); return flixel_util_FlxSpriteUtil.flashGfx; } return null; } ,drawItemsSelection: function() { var gfx = this.getDebugGraphics(); if(gfx == null) { return; } var member = new flixel_group_FlxTypedGroupIterator(this.selectedItems.members,null); while(member.hasNext()) { var member1 = member.next(); if(member1 != null && member1.scrollFactor != null && member1.isOnScreen()) { gfx.lineStyle(0.9,16711680); gfx.drawRect(member1.x - flixel_FlxG.camera.scroll.x,member1.y - flixel_FlxG.camera.scroll.y,member1.get_width(),member1.get_height()); } } if(flixel_FlxG.renderBlit) { flixel_FlxG.camera.buffer.draw(flixel_util_FlxSpriteUtil.flashGfxSprite); } } ,getTool: function(className) { var _g = 0; var _g1 = this._tools; while(_g < _g1.length) { var tool = _g1[_g]; ++_g; if(js_Boot.__instanceof(tool,className)) { return tool; } } return null; } ,toggleVisible: function() { flixel_system_debug_Window.prototype.toggleVisible.call(this); if(!this.get_visible()) { this.setActiveTool(null); this.restoreSystemCursor(); } } ,registerCustomCursor: function(name,icon) { if(icon == null) { return; } var sprite = new openfl_display_Sprite(); sprite.set_visible(false); sprite.set_name(name); sprite.addChild(new openfl_display_Bitmap(icon)); this._customCursor.addChild(sprite); } ,updateCustomCursors: function() { if(this.activeTool != null && !this._debuggerInteraction) { if(this.activeTool.cursor != null) { var cursorInUse = this.activeTool.cursorInUse == "" ? this.activeTool.getName() : this.activeTool.cursorInUse; var _g = 0; var _g1 = this._customCursor.get_numChildren(); while(_g < _g1) { var i = _g++; var sprite = this._customCursor.getChildAt(i); sprite.set_visible(sprite.get_name() == cursorInUse); } if(flixel_FlxG.mouse.visible) { flixel_FlxG.mouse.set_visible(false); } } else { flixel_FlxG.mouse.set_useSystemCursor(true); } } else { flixel_FlxG.mouse.set_useSystemCursor(true); } } ,saveSystemCursorInfo: function() { this._wasMouseVisible = flixel_FlxG.mouse.visible; this._wasUsingSystemCursor = flixel_FlxG.mouse.useSystemCursor; } ,restoreSystemCursor: function() { flixel_FlxG.mouse.set_useSystemCursor(this._wasUsingSystemCursor); flixel_FlxG.mouse.set_visible(this._wasMouseVisible); this._customCursor.set_visible(false); } ,setActiveTool: function(value) { if(this.activeTool != null) { this.activeTool.deactivate(); this.activeTool.button.set_toggled(true); } if(this.activeTool == value) { value = null; } this.activeTool = value; if(this.activeTool != null) { this.setToolsCursorVisibility(true); this.activeTool.button.set_toggled(false); this.activeTool.activate(); this.updateCustomCursors(); } else { this.setSystemCursorVisibility(true); } flixel_FlxG.mouse.enabled = !this.isInUse(); } ,setSystemCursorVisibility: function(status) { flixel_FlxG.mouse.set_useSystemCursor(status); this._customCursor.set_visible(!status); } ,setToolsCursorVisibility: function(status) { flixel_FlxG.mouse.set_useSystemCursor(false); this._customCursor.set_visible(status); if(status) { return; } var _g = 0; var _g1 = this._customCursor.get_numChildren(); while(_g < _g1) { var i = _g++; this._customCursor.getChildAt(i).set_visible(false); } } ,clearSelection: function() { this.selectedItems.clear(); } ,keyPressed: function(key) { return this._keysDown.h[key]; } ,keyJustPressed: function(key) { var value = this._keysUp.h[key] == null ? 0 : this._keysUp.h[key]; return this._turn - value == 1; } ,isInUse: function() { if(flixel_FlxG.debugger.visible && this.get_visible()) { return this.activeTool != null; } else { return false; } } ,getItemsWithinState: function(state,area) { var items = []; this.addItemsWithinArea(items,state.members,area); if(state.subState != null) { this.addItemsWithinState(items,state.subState,area); } return items; } ,findItemsWithinState: function(items,state,area) { this.addItemsWithinState(items,state,area); } ,addItemsWithinState: function(items,state,area) { this.addItemsWithinArea(items,state.members,area); if(state.subState != null) { this.addItemsWithinState(items,state.subState,area); } } ,getTopItemWithinState: function(state,area) { if(state.subState != null) { return this.getTopItemWithinState(state.subState,area); } return this.getTopItemWithinArea(state.members,area); } ,findItemsWithinArea: function(items,members,area) { this.addItemsWithinArea(items,members,area); } ,addItemsWithinArea: function(items,members,area) { var i = members.length; while(i-- > 0) { var member = members[i]; if(member == null || !member.visible || !member.exists) { continue; } var group = flixel_group_FlxTypedGroup.resolveGroup(member); if(group != null) { this.addItemsWithinArea(items,group.members,area); } else if(((member) instanceof flixel_FlxSprite)) { var object = member; if(object.pixelsOverlapPoint(this.flixelPointer,238)) { items.push(object); } } else if(((member) instanceof flixel_FlxObject)) { var object1 = member; var Rect = object1.getHitbox(); var result = Rect.x + Rect.width > area.x && Rect.x < area.x + area.width && Rect.y + Rect.height > area.y && Rect.y < area.y + area.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } if(result) { items.push(object1); } } } } ,getTopItemWithinArea: function(members,area) { var i = members.length; while(i-- > 0) { var member = members[i]; if(member == null || !member.visible || !member.exists) { continue; } var group = flixel_group_FlxTypedGroup.resolveGroup(member); if(group != null) { return this.getTopItemWithinArea(group.members,area); } if(((member) instanceof flixel_FlxSprite)) { var object = member; if(object.pixelsOverlapPoint(this.flixelPointer,238)) { return object; } } if(((member) instanceof flixel_FlxObject)) { var object1 = member; var Rect = object1.getHitbox(); var result = Rect.x + Rect.width > area.x && Rect.x < area.x + area.width && Rect.y + Rect.height > area.y && Rect.y < area.y + area.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } if(result) { return object1; } } } return null; } ,__class__: flixel_system_debug_interaction_Interaction }); var flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool = 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(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceName),flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload == null) { flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Eraser.GraphicEraserTool"] = flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool; flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.__name__ = "flixel.system.debug.interaction.tools._Eraser.GraphicEraserTool"; flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.preload = null; flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool }); var flixel_system_debug_interaction_tools_Tool = function() { this._name = "(Unknown tool)"; this.cursorInUse = ""; openfl_display_Sprite.call(this); }; $hxClasses["flixel.system.debug.interaction.tools.Tool"] = flixel_system_debug_interaction_tools_Tool; flixel_system_debug_interaction_tools_Tool.__name__ = "flixel.system.debug.interaction.tools.Tool"; flixel_system_debug_interaction_tools_Tool.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_system_debug_interaction_tools_Tool.__super__ = openfl_display_Sprite; flixel_system_debug_interaction_tools_Tool.prototype = $extend(openfl_display_Sprite.prototype,{ button: null ,cursor: null ,cursorInUse: null ,_name: null ,_shortcut: null ,_brain: null ,init: function(brain) { this._brain = brain; return this; } ,update: function() { } ,draw: function() { } ,activate: function() { } ,deactivate: function() { } ,destroy: function() { } ,isActive: function() { if(this._brain.activeTool == this) { return this._brain.get_visible(); } else { return false; } } ,setButton: function(Icon) { this.button = new flixel_system_ui_FlxSystemButton(Type.createInstance(Icon,[0,0]),$bind(this,this.onButtonClicked),true); this.button.set_toggled(true); var tooltip = this._name; if(this._shortcut != null) { tooltip += " (" + this._shortcut + ")"; } flixel_system_debug_Tooltip.add(this.button,tooltip); } ,setCursor: function(Icon) { this.cursor = Icon; this._brain.registerCustomCursor(this._name,this.cursor); } ,setCursorInUse: function(customCursorName) { this.cursorInUse = customCursorName; } ,useDefaultCursor: function() { if(this.cursorInUse != "") { this.cursorInUse = ""; } } ,onButtonClicked: function() { this._brain.setActiveTool(this); } ,getName: function() { return this._name; } ,__class__: flixel_system_debug_interaction_tools_Tool }); var flixel_system_debug_interaction_tools_Eraser = function() { flixel_system_debug_interaction_tools_Tool.call(this); }; $hxClasses["flixel.system.debug.interaction.tools.Eraser"] = flixel_system_debug_interaction_tools_Eraser; flixel_system_debug_interaction_tools_Eraser.__name__ = "flixel.system.debug.interaction.tools.Eraser"; flixel_system_debug_interaction_tools_Eraser.__super__ = flixel_system_debug_interaction_tools_Tool; flixel_system_debug_interaction_tools_Eraser.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{ init: function(Brain) { flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,Brain); this._name = "Eraser"; return this; } ,update: function() { if(this._brain.keyJustPressed(46)) { this.doDeletion(this._brain.keyPressed(16)); } } ,activate: function() { this.doDeletion(this._brain.keyPressed(16)); this._brain.setActiveTool(null); } ,doDeletion: function(remove) { var selectedItems = this._brain.selectedItems; if(selectedItems != null) { this.findAndDelete(selectedItems,remove); selectedItems.clear(); } } ,findAndDelete: function(items,remove) { if(remove == null) { remove = false; } var member = new flixel_group_FlxTypedGroupIterator(items.members,null); while(member.hasNext()) { var member1 = member.next(); if(member1 == null) { continue; } if(!((member1) instanceof flixel_group_FlxTypedGroup)) { member1.kill(); if(remove) { this.removeFromMemory(member1,flixel_FlxG.game._state); } } } } ,removeFromMemory: function(item,parentGroup) { var _g = 0; var _g1 = parentGroup.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(member == null) { continue; } if(((member) instanceof flixel_group_FlxTypedGroup)) { this.removeFromMemory(item,member); } else if(member == item) { parentGroup.remove(member); } } } ,__class__: flixel_system_debug_interaction_tools_Eraser }); var flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool = 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(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceName),flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload == null) { flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Mover.GraphicMoverTool"] = flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool; flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.__name__ = "flixel.system.debug.interaction.tools._Mover.GraphicMoverTool"; flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.preload = null; flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool }); var flixel_system_debug_interaction_tools_Mover = function() { this._dragging = false; flixel_system_debug_interaction_tools_Tool.call(this); }; $hxClasses["flixel.system.debug.interaction.tools.Mover"] = flixel_system_debug_interaction_tools_Mover; flixel_system_debug_interaction_tools_Mover.__name__ = "flixel.system.debug.interaction.tools.Mover"; flixel_system_debug_interaction_tools_Mover.__super__ = flixel_system_debug_interaction_tools_Tool; flixel_system_debug_interaction_tools_Mover.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{ _dragging: null ,_lastCursorPosition: null ,init: function(brain) { flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain); var x = brain.flixelPointer.x; var y = brain.flixelPointer.x; if(y == null) { y = 0; } if(x == null) { x = 0; } this._lastCursorPosition = new flixel_math_FlxBasePoint(x,y); this._name = "Mover"; this._shortcut = brain.macKeyboard ? "⌘" : "Ctrl"; this.setButton(flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool); this.setCursor(new flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool(0,0)); return this; } ,update: function() { var key = this._brain.macKeyboard ? 15 : 17; if(!this.isActive() && !this._brain.keyPressed(key) && !this._dragging) { return; } if(this._brain.pointerPressed && !this._dragging) { this.startDragging(); } else if(this._brain.pointerPressed && this._dragging) { this.doDragging(); } else if(this._brain.pointerJustReleased) { this.stopDragging(); } this._lastCursorPosition.set_x(this._brain.flixelPointer.x); this._lastCursorPosition.set_y(this._brain.flixelPointer.y); } ,stopDragging: function() { this._dragging = false; } ,startDragging: function() { if(this._dragging) { return; } this._dragging = true; if(!this.isActive() && ((this._brain.activeTool) instanceof flixel_system_debug_interaction_tools_Pointer)) { this._brain.activeTool.cancelSelection(); } } ,doDragging: function() { var dx = this._brain.flixelPointer.x - this._lastCursorPosition.x; var dy = this._brain.flixelPointer.y - this._lastCursorPosition.y; var _g = 0; var _g1 = this._brain.selectedItems.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; if(!((member) instanceof flixel_FlxObject)) { continue; } var object = member; if(object != null) { object.set_x(object.x + dx); object.set_y(object.y + dy); } } } ,__class__: flixel_system_debug_interaction_tools_Mover }); var flixel_system_debug_interaction_tools_GraphicCursorCross = 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(flixel_system_debug_interaction_tools_GraphicCursorCross.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools_GraphicCursorCross.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools_GraphicCursorCross.resourceName),flixel_system_debug_interaction_tools_GraphicCursorCross.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools_GraphicCursorCross.preload == null) { flixel_system_debug_interaction_tools_GraphicCursorCross.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools.GraphicCursorCross"] = flixel_system_debug_interaction_tools_GraphicCursorCross; flixel_system_debug_interaction_tools_GraphicCursorCross.__name__ = "flixel.system.debug.interaction.tools.GraphicCursorCross"; flixel_system_debug_interaction_tools_GraphicCursorCross.preload = null; flixel_system_debug_interaction_tools_GraphicCursorCross.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools_GraphicCursorCross.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools_GraphicCursorCross }); var flixel_system_debug_interaction_tools_Pointer = function() { this._selectionArea = new flixel_math_FlxRect(); this._selectionHappening = false; this._selectionEndPoint = new flixel_math_FlxBasePoint(0,0); this._selectionStartPoint = new flixel_math_FlxBasePoint(0,0); flixel_system_debug_interaction_tools_Tool.call(this); }; $hxClasses["flixel.system.debug.interaction.tools.Pointer"] = flixel_system_debug_interaction_tools_Pointer; flixel_system_debug_interaction_tools_Pointer.__name__ = "flixel.system.debug.interaction.tools.Pointer"; flixel_system_debug_interaction_tools_Pointer.__super__ = flixel_system_debug_interaction_tools_Tool; flixel_system_debug_interaction_tools_Pointer.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{ _selectionStartPoint: null ,_selectionEndPoint: null ,_selectionHappening: null ,_selectionArea: null ,init: function(brain) { flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain); this._name = "Pointer"; this.setButton(flixel_system_debug_interaction_tools_GraphicCursorCross); this.setCursor(new flixel_system_debug_interaction_tools_GraphicCursorCross(0,0)); return this; } ,update: function() { if(!this.isActive()) { return; } if(this._brain.pointerJustPressed && !this._selectionHappening) { this.startSelection(); } if(this._selectionHappening) { var this1 = this._selectionEndPoint; var x = this._brain.flixelPointer.x; var y = this._brain.flixelPointer.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.calculateSelectionArea(); } if(!this._brain.pointerJustReleased) { return; } if(!this._selectionHappening) { return; } var selectedItems = this.stopSelectionAndFindItems(); var drewRect = this._selectionArea.width != 0 || this._selectionArea.height != 0; this.updateSelectedItems(selectedItems,drewRect); } ,calculateSelectionArea: function() { var start = this._selectionStartPoint; var end = this._selectionEndPoint; this._selectionArea.x = start.x < end.x ? start.x : end.x; this._selectionArea.y = start.y < end.y ? start.y : end.y; var _this = this._selectionArea; var Value = start.x > end.x ? start.x : end.x; _this.width = Value - _this.x; var _this = this._selectionArea; var Value = start.y > end.y ? start.y : end.y; _this.height = Value - _this.y; } ,startSelection: function() { this._selectionHappening = true; var this1 = this._selectionStartPoint; var x = this._brain.flixelPointer.x; var y = this._brain.flixelPointer.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,cancelSelection: function() { if(!this._selectionHappening) { return; } this.stopSelection(); } ,stopSelection: function() { this._selectionHappening = false; var _this = this._selectionArea; var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; } ,stopSelectionAndFindItems: function() { if(!this._selectionHappening) { throw haxe_Exception.thrown("stopSelectionAndFindItems called when not selecting"); } var this1 = this._selectionEndPoint; var x = this._brain.flixelPointer.x; var y = this._brain.flixelPointer.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.calculateSelectionArea(); var items = null; if(this._selectionArea.width != 0 || this._selectionArea.height != 0) { items = this._brain.getItemsWithinState(flixel_FlxG.game._state,this._selectionArea); } else { var topItem = this._brain.getTopItemWithinState(flixel_FlxG.game._state,this._selectionArea); if(topItem != null) { items = [topItem]; } } this.updateConsoleSelection(items); this.stopSelection(); return items; } ,updateConsoleSelection: function(items) { } ,updateSelectedItems: function(items,drewRect) { var adding = this._brain.keyPressed(16); var removing = this._brain.keyPressed(18) && !adding; if(!adding && !removing) { this._brain.clearSelection(); } if(items == null || items.length == 0) { return; } var prevSelectedItems = this._brain.selectedItems; if(adding && !drewRect && items.length == 1) { var item = items[0]; if(prevSelectedItems.members.indexOf(item) != -1) { prevSelectedItems.remove(item); } else { prevSelectedItems.add(item); } } else if(removing) { var _g = 0; while(_g < items.length) { var item = items[_g]; ++_g; prevSelectedItems.remove(item); } } else { var _g = 0; while(_g < items.length) { var item = items[_g]; ++_g; prevSelectedItems.add(item); } } } ,draw: function() { var gfx = this._brain.getDebugGraphics(); if(gfx == null) { return; } if(this._selectionHappening) { gfx.lineStyle(0.9,12255232); gfx.drawRect(this._selectionArea.x - flixel_FlxG.camera.scroll.x,this._selectionArea.y - flixel_FlxG.camera.scroll.y,this._selectionArea.width,this._selectionArea.height); } if(flixel_FlxG.renderBlit) { flixel_FlxG.camera.buffer.draw(flixel_util_FlxSpriteUtil.flashGfxSprite); } } ,__class__: flixel_system_debug_interaction_tools_Pointer }); var flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool = 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(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload == null) { flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformTool"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool; flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformTool"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.preload = null; flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool }); var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault = 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(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload == null) { flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorDefault"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorDefault"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.preload = null; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault }); var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY = 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(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload == null) { flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleY"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleY"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.preload = null; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY }); var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX = 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(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload == null) { flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleX"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleX"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.preload = null; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX }); var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY = 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(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload == null) { flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleXY"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorScaleXY"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.preload = null; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY }); var flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate = 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(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload != null) { this.__fromImage(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceName),flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload == null) { flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorRotate"] = flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.__name__ = "flixel.system.debug.interaction.tools._Transform.GraphicTransformCursorRotate"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.preload = null; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.__super__ = openfl_display_BitmapData; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate }); var flixel_system_debug_interaction_tools_Transform = function() { this._mouseCursor = new flixel_math_FlxBasePoint(0,0); this._targetArea = new flixel_math_FlxRect(); this._markers = []; this._actionScaleDirection = new flixel_math_FlxBasePoint(0,0); this._actionStartPoint = new flixel_math_FlxBasePoint(0,0); this._actionTargetStartScale = new flixel_math_FlxBasePoint(0,0); flixel_system_debug_interaction_tools_Tool.call(this); }; $hxClasses["flixel.system.debug.interaction.tools.Transform"] = flixel_system_debug_interaction_tools_Transform; flixel_system_debug_interaction_tools_Transform.__name__ = "flixel.system.debug.interaction.tools.Transform"; flixel_system_debug_interaction_tools_Transform.__super__ = flixel_system_debug_interaction_tools_Tool; flixel_system_debug_interaction_tools_Transform.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{ _actionTargetStartScale: null ,_actionTargetStartAngle: null ,_actionStartPoint: null ,_actionHappening: null ,_actionMarker: null ,_actionScaleDirection: null ,_tooltip: null ,_markers: null ,_target: null ,_targetArea: null ,_mouseCursor: null ,init: function(brain) { var _gthis = this; flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain); this._name = "Transform"; this.setButton(flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool); this.setCursor(new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault(0,0)); brain.registerCustomCursor("transformRotate",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate(0,0)); brain.registerCustomCursor("transformScaleX",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX(0,0)); brain.registerCustomCursor("transformScaleY",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY(0,0)); brain.registerCustomCursor("transformScaleXY",new flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY(0,0)); this._tooltip = flixel_system_debug_Tooltip.add(null,""); this._tooltip.textField.set_wordWrap(false); this._markers.push(new flixel_math_FlxBasePoint(0,0)); this._markers.push(new flixel_math_FlxBasePoint(0,0)); this._markers.push(new flixel_math_FlxBasePoint(0,0)); this._markers.push(new flixel_math_FlxBasePoint(0,0)); this.stopAction(); flixel_FlxG.signals.preStateSwitch.add(function() { _gthis._target = null; }); return this; } ,updateTargetArea: function() { if(this._target == null) { var _this = this._targetArea; _this.x = 0; _this.y = 0; var _this = this._targetArea; _this.width = 0; _this.height = 0; } else { var _this = this._targetArea; _this.x = this._target.x - flixel_FlxG.camera.scroll.x; _this.y = this._target.y - flixel_FlxG.camera.scroll.y; var _this = this._targetArea; var Width = this._target.get_width(); var Height = this._target.get_height(); _this.width = Width; _this.height = Height; } } ,startAction: function(whichMarker) { if(this._actionHappening) { return; } this._actionHappening = true; this._actionMarker = whichMarker; var this1 = this._actionStartPoint; var x = this._brain.flixelPointer.x - flixel_FlxG.camera.scroll.x; var y = this._brain.flixelPointer.y - flixel_FlxG.camera.scroll.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._actionTargetStartAngle = flixel_math_FlxAngle.angleBetweenPoint(this._target,this._markers[0],true); var this1 = this._actionTargetStartScale; var x = this._target.scale.x; var y = this._target.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,stopAction: function() { this._actionHappening = false; this._actionMarker = -1; this._tooltip.setVisible(false); } ,getCursorNameByMarker: function(marker) { switch(marker) { case 0: return "transformRotate"; case 1: return "transformScaleX"; case 2: return "transformScaleXY"; case 3: return "transformScaleY"; default: return ""; } } ,handleInteractionsWithMarkersUI: function() { if(this._actionHappening) { return; } var cursorName = ""; var _g = 0; var _g1 = this._markers.length; while(_g < _g1) { var i = _g++; if(flixel_math_FlxPoint.distanceTo(this._mouseCursor,this._markers[i]) <= 5.0) { cursorName = this.getCursorNameByMarker(i); if(this._brain.pointerJustPressed) { this.startAction(i); break; } } } if(cursorName != "") { this.setCursorInUse(cursorName); } else { this.useDefaultCursor(); } } ,formatFloat: function(number) { var value = flixel_math_FlxMath.roundDecimal(number,flixel_FlxG.debugger.precision); if(value == null) { return "null"; } else { return "" + value; } } ,showTooltip: function(text) { if(!this._tooltip.get_visible()) { this._tooltip.setVisible(true); } this._tooltip.set_x(this._target.x - flixel_FlxG.camera.scroll.x); this._tooltip.set_y(this._target.y - flixel_FlxG.camera.scroll.y); this._tooltip.setText(text); } ,updateScaleActionDirection: function() { var deltaX = this._mouseCursor.x - this._actionStartPoint.x; var deltaY = this._mouseCursor.y - this._actionStartPoint.y; this._actionScaleDirection.set_x(deltaX >= 0 ? 1 : -1); this._actionScaleDirection.set_y(deltaY >= 0 ? 1 : -1); } ,updateScaleAction: function() { this.updateScaleActionDirection(); var deltaX = this._actionScaleDirection.x * Math.abs(this._mouseCursor.x - this._actionStartPoint.x) / 10.0; var deltaY = this._actionScaleDirection.y * Math.abs(this._mouseCursor.y - this._actionStartPoint.y) / 10.0; if(this._actionMarker == 1 || this._actionMarker == 2) { this._target.scale.set_x(this._actionTargetStartScale.x + deltaX); } if(this._actionMarker == 2 || this._actionMarker == 3) { this._target.scale.set_y(this._actionTargetStartScale.y + deltaY); } this._target.updateHitbox(); var _this = this._target; var this1 = _this.origin; var x = _this.frameWidth * 0.5; var y = _this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.showTooltip("w: " + this.formatFloat(this._target.get_width()) + "\nh: " + this.formatFloat(this._target.get_height())); } ,updateRotateAction: function() { this._target.set_angle(flixel_math_FlxAngle.angleBetweenPoint(this._target,this._brain.flixelPointer,true) - this._actionTargetStartAngle); this.showTooltip("deg: " + this.formatFloat(this._target.angle) + "\nrad: " + this.formatFloat(this._target.angle * (Math.PI / 180))); } ,updateAction: function() { if(!this._actionHappening || this._actionMarker < 0) { return; } if(this._actionMarker == 0) { this.updateRotateAction(); } else { this.updateScaleAction(); } } ,updateMarkersPosition: function() { var topLeftX = this._targetArea.x - 5.0; var topLeftY = this._targetArea.y - 5.0; var width = this._targetArea.width + 10.; var height = this._targetArea.height + 10.; var this1 = this._markers[0]; var x = topLeftX; var y = topLeftY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this._markers[1]; var x = topLeftX + width; var y = topLeftY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this._markers[2]; var x = topLeftX + width; var y = topLeftY + height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this._markers[3]; var x = topLeftX; var y = topLeftY + height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this._target.angle != 0) { this.updateMarkersRotation(width,height); } } ,updateMarkersRotation: function(outlineWidth,outlineHeight) { var rotationAngleRad = this._target.angle * (Math.PI / 180); var originX = this._markers[0].x + outlineWidth / 2; var originY = this._markers[0].y + outlineHeight / 2; var n = rotationAngleRad + 1.570796327; n *= 0.3183098862; if(n > 1) { n -= Math.ceil(n) >> 1 << 1; } else if(n < -1) { n += Math.ceil(-n) >> 1 << 1; } var cos = n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6))); var n = rotationAngleRad; n *= 0.3183098862; if(n > 1) { n -= Math.ceil(n) >> 1 << 1; } else if(n < -1) { n += Math.ceil(-n) >> 1 << 1; } var sin = n > 0 ? n * (3.1 + n * (0.5 + n * (-7.2 + n * 3.6))) : n * (3.1 - n * (0.5 + n * (7.2 + n * 3.6))); var _g = 0; var _g1 = this._markers; while(_g < _g1.length) { var marker = _g1[_g]; ++_g; var rotatedX = (marker.x - originX) * cos - (marker.y - originY) * sin; var rotatedY = (marker.x - originX) * sin + (marker.y - originY) * cos; var x = rotatedX + originX; var y = rotatedY + originY; if(y == null) { y = 0; } if(x == null) { x = 0; } marker.set_x(x); marker.set_y(y); } } ,update: function() { if(!this.isActive() || this._target == null) { return; } this._mouseCursor.set_x(this._brain.flixelPointer.x - flixel_FlxG.camera.scroll.x); this._mouseCursor.set_y(this._brain.flixelPointer.y - flixel_FlxG.camera.scroll.y); this.updateTargetArea(); this.updateMarkersPosition(); this.handleInteractionsWithMarkersUI(); if(this._actionHappening) { this.updateAction(); if(this._brain.pointerJustReleased) { this.stopAction(); } } } ,drawTargetAreaOutline: function(gfx) { gfx.lineStyle(0.9,-65281,1.0,false,2,2); gfx.moveTo(this._markers[0].x,this._markers[0].y); var _g = 0; var _g1 = this._markers.length; while(_g < _g1) { var i = _g++; gfx.lineTo(this._markers[i].x,this._markers[i].y); } gfx.lineTo(this._markers[0].x,this._markers[0].y); } ,drawMarkers: function(gfx) { gfx.lineStyle(0.9,-65281,1.0,false,2,2); gfx.beginFill(-65281); var _g = 0; var _g1 = this._markers.length; while(_g < _g1) { var i = _g++; if(i == 0) { gfx.drawCircle(this._markers[i].x,this._markers[i].y,2.7); } else { gfx.drawRect(this._markers[i].x - 1.5,this._markers[i].y - 1.5,3.0,3.0); } } gfx.endFill(); } ,draw: function() { var gfx = this._brain.getDebugGraphics(); if(gfx == null || this._target == null || !this.isActive()) { return; } this.drawTargetAreaOutline(gfx); this.drawMarkers(gfx); if(flixel_FlxG.renderBlit) { flixel_FlxG.camera.buffer.draw(flixel_util_FlxSpriteUtil.flashGfxSprite); } } ,activate: function() { this._target = null; if(this._brain.selectedItems.length == 0) { return; } var member = new flixel_group_FlxTypedGroupIterator(this._brain.selectedItems.members,null); while(member.hasNext()) { var member1 = member.next(); if(member1 != null && member1.scrollFactor != null && member1.isOnScreen()) { this._target = member1; break; } } this._brain.shouldDrawItemsSelection = false; } ,deactivate: function() { this._brain.shouldDrawItemsSelection = true; } ,__class__: flixel_system_debug_interaction_tools_Transform }); var flixel_system_debug_log_LogStyle = function(prefix,color,size,bold,italic,underlined,errorSound,openConsole,callback,throwException) { if(throwException == null) { throwException = false; } if(openConsole == null) { openConsole = false; } if(underlined == null) { underlined = false; } if(italic == null) { italic = false; } if(bold == null) { bold = false; } if(size == null) { size = 12; } if(color == null) { color = "FFFFFF"; } if(prefix == null) { prefix = ""; } this.throwException = false; this.prefix = prefix; this.color = color; this.size = size; this.bold = bold; this.italic = italic; this.underlined = underlined; this.errorSound = errorSound; this.openConsole = openConsole; this.callbackFunction = callback; this.throwException = throwException; }; $hxClasses["flixel.system.debug.log.LogStyle"] = flixel_system_debug_log_LogStyle; flixel_system_debug_log_LogStyle.__name__ = "flixel.system.debug.log.LogStyle"; flixel_system_debug_log_LogStyle.prototype = { prefix: null ,color: null ,size: null ,bold: null ,italic: null ,underlined: null ,errorSound: null ,openConsole: null ,callbackFunction: null ,throwException: null ,toLogString: function(data) { var texts = []; var _g = 0; var _g1 = data.length; while(_g < _g1) { var i = _g++; var text = data[i] == null ? "null" : Std.string(data[i]); texts.push(StringTools.htmlEscape(text)); } return this.prefix + texts.join(" "); } ,toHtmlString: function(data) { return flixel_util_FlxStringUtil.htmlFormat(this.toLogString(data),this.size,this.color,this.bold,this.italic,this.underlined); } ,__class__: flixel_system_debug_log_LogStyle }; var flixel_system_debug_stats__$Stats_GraphicMinimizeButton = 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(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload != null) { this.__fromImage(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceName),flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload == null) { flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.stats._Stats.GraphicMinimizeButton"] = flixel_system_debug_stats__$Stats_GraphicMinimizeButton; flixel_system_debug_stats__$Stats_GraphicMinimizeButton.__name__ = "flixel.system.debug.stats._Stats.GraphicMinimizeButton"; flixel_system_debug_stats__$Stats_GraphicMinimizeButton.preload = null; flixel_system_debug_stats__$Stats_GraphicMinimizeButton.__super__ = openfl_display_BitmapData; flixel_system_debug_stats__$Stats_GraphicMinimizeButton.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_stats__$Stats_GraphicMinimizeButton }); var flixel_system_debug_stats__$Stats_GraphicMaximizeButton = 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(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload != null) { this.__fromImage(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceName),flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload == null) { flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.system.debug.stats._Stats.GraphicMaximizeButton"] = flixel_system_debug_stats__$Stats_GraphicMaximizeButton; flixel_system_debug_stats__$Stats_GraphicMaximizeButton.__name__ = "flixel.system.debug.stats._Stats.GraphicMaximizeButton"; flixel_system_debug_stats__$Stats_GraphicMaximizeButton.preload = null; flixel_system_debug_stats__$Stats_GraphicMaximizeButton.__super__ = openfl_display_BitmapData; flixel_system_debug_stats__$Stats_GraphicMaximizeButton.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_system_debug_stats__$Stats_GraphicMaximizeButton }); var flixel_system_debug_watch_EditableTextField = function(allowEditing,defaultFormat,submitValue,expectedType) { openfl_text_TextField.call(this); this.allowEditing = allowEditing; this.submitValue = submitValue; this.defaultFormat = defaultFormat; this.expectedType = expectedType; if(allowEditing) { this.editFormat = new openfl_text_TextFormat(defaultFormat.font,defaultFormat.size,0); this.addEventListener("keyUp",$bind(this,this.onKeyUp)); this.addEventListener("keyDown",$bind(this,this.onKeyDown)); this.addEventListener("mouseUp",$bind(this,this.onMouseUp)); this.addEventListener("focusOut",$bind(this,this.onFocusLost)); } }; $hxClasses["flixel.system.debug.watch.EditableTextField"] = flixel_system_debug_watch_EditableTextField; flixel_system_debug_watch_EditableTextField.__name__ = "flixel.system.debug.watch.EditableTextField"; flixel_system_debug_watch_EditableTextField.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_system_debug_watch_EditableTextField.__super__ = openfl_text_TextField; flixel_system_debug_watch_EditableTextField.prototype = $extend(openfl_text_TextField.prototype,{ isEditing: null ,allowEditing: null ,submitValue: null ,expectedType: null ,defaultFormat: null ,editFormat: null ,destroy: function() { if(this.allowEditing) { this.removeEventListener("keyUp",$bind(this,this.onKeyUp)); this.removeEventListener("keyDown",$bind(this,this.onKeyDown)); this.removeEventListener("mouseUp",$bind(this,this.onMouseUp)); this.removeEventListener("focusOut",$bind(this,this.onFocusLost)); } } ,onMouseUp: function(_) { this.setIsEditing(true); } ,onKeyUp: function(e) { switch(e.keyCode) { case 13: this.submit(); break; case 27: this.setIsEditing(false); break; } } ,onKeyDown: function(e) { var modifier = 1.0; if(e.altKey) { modifier = 0.1; } if(e.shiftKey) { modifier = 10.0; } switch(e.keyCode) { case 38: this.cycleValue(modifier,0); break; case 40: this.cycleValue(-modifier,this.get_text().length); break; } } ,cycleValue: function(modifier,selection) { var _g = this.expectedType; switch(_g._hx_index) { case 1:case 2: this.cycleNumericValue(modifier); this.selectEnd(); break; case 3: this.set_text(this.get_text() == "true" ? "false" : "true"); this.selectEnd(); break; case 7: var e = _g.e; this.cycleEnumValue(e,modifier < 0 ? -1 : 1); this.selectEnd(); break; default: this.setSelection(selection,selection); } } ,selectEnd: function() { this.setSelection(this.get_text().length,this.get_text().length); } ,cycleNumericValue: function(modifier) { var value = parseFloat(this.get_text()); if(isNaN(value)) { return; } value += modifier; value = flixel_math_FlxMath.roundDecimal(value,flixel_FlxG.debugger.precision); this.set_text(value == null ? "null" : "" + value); } ,cycleEnumValue: function(e,modifier) { var _this = e.__constructs__; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = _this[i]._hx_name; } var values = result; var index = values.indexOf(this.get_text()); if(index == -1) { index = 0; } else { index += modifier; index = flixel_math_FlxMath.wrap(index,0,values.length - 1) | 0; } this.set_text(Std.string(values[index])); } ,onFocusLost: function(_) { this.setIsEditing(false); } ,submit: function() { var value; var _g = this.expectedType; switch(_g._hx_index) { case 3: value = this.get_text() == "true" ? true : this.get_text() == "false" ? false : this.get_text(); break; case 7: var e = _g.e; try { value = Type.createEnum(e,this.get_text()); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; value = null; } break; default: value = this.get_text(); } try { this.submitValue(value); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } this.setIsEditing(false); } ,setIsEditing: function(isEditing) { this.isEditing = isEditing; flixel_FlxG.keys.enabled = !isEditing; this.set_type(isEditing ? 1 : 0); this.set_background(isEditing); this.set_defaultTextFormat(isEditing ? this.editFormat : this.defaultFormat); this.setTextFormat(this.get_defaultTextFormat()); } ,__class__: flixel_system_debug_watch_EditableTextField }); var flixel_system_debug_watch_Watch = function(Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop) { flixel_system_debug_Window.call(this,Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop); }; $hxClasses["flixel.system.debug.watch.Watch"] = flixel_system_debug_watch_Watch; flixel_system_debug_watch_Watch.__name__ = "flixel.system.debug.watch.Watch"; flixel_system_debug_watch_Watch.__super__ = flixel_system_debug_Window; flixel_system_debug_watch_Watch.prototype = $extend(flixel_system_debug_Window.prototype,{ __class__: flixel_system_debug_watch_Watch }); var flixel_system_debug_watch_Tracker = function(Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop) { flixel_system_debug_watch_Watch.call(this,Title,Icon,Width,Height,Resizable,Bounds,Closable,AlwaysOnTop); }; $hxClasses["flixel.system.debug.watch.Tracker"] = flixel_system_debug_watch_Tracker; flixel_system_debug_watch_Tracker.__name__ = "flixel.system.debug.watch.Tracker"; flixel_system_debug_watch_Tracker.__super__ = flixel_system_debug_watch_Watch; flixel_system_debug_watch_Tracker.prototype = $extend(flixel_system_debug_watch_Watch.prototype,{ __class__: flixel_system_debug_watch_Tracker }); var flixel_system_debug_watch_TrackerProfile = function(ObjectClass,Variables,Extensions) { this.objectClass = ObjectClass; this.variables = Variables; this.extensions = Extensions; }; $hxClasses["flixel.system.debug.watch.TrackerProfile"] = flixel_system_debug_watch_TrackerProfile; flixel_system_debug_watch_TrackerProfile.__name__ = "flixel.system.debug.watch.TrackerProfile"; flixel_system_debug_watch_TrackerProfile.prototype = { objectClass: null ,variables: null ,extensions: null ,toString: function() { var value = this.variables; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "variables"; _this.value = value; var value = this.extensions; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "extensions"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,__class__: flixel_system_debug_watch_TrackerProfile }; var flixel_system_debug_watch_WatchEntry = function(displayName,data,removeEntry) { openfl_display_Sprite.call(this); this.displayName = displayName; this.data = data; this.defaultFormat = new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEBUGGER,12,this.getTextColor()); this.nameText = this.initTextField(flixel_system_debug_DebuggerUtil.createTextField()); var expectedType = Type.typeof(this.getValue()); var tmp; if(data._hx_index == 0) { var _g = data.object; var _g = data.field; tmp = true; } else { tmp = false; } this.valueText = this.initTextField(flixel_system_debug_DebuggerUtil.initTextField(new flixel_system_debug_watch_EditableTextField(tmp,this.defaultFormat,$bind(this,this.submitValue),expectedType))); this.updateName(); var _g = removeEntry; var a1 = this; var tmp = function() { _g(a1); }; this.addChild(this.removeButton = new flixel_system_ui_FlxSystemButton(new flixel_system_debug_GraphicCloseButton(0,0),tmp)); this.removeButton.set_y((20 - this.removeButton.get_height()) / 2); this.removeButton.set_alpha(0.3); }; $hxClasses["flixel.system.debug.watch.WatchEntry"] = flixel_system_debug_watch_WatchEntry; flixel_system_debug_watch_WatchEntry.__name__ = "flixel.system.debug.watch.WatchEntry"; flixel_system_debug_watch_WatchEntry.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_system_debug_watch_WatchEntry.__super__ = openfl_display_Sprite; flixel_system_debug_watch_WatchEntry.prototype = $extend(openfl_display_Sprite.prototype,{ data: null ,displayName: null ,nameText: null ,valueText: null ,removeButton: null ,defaultFormat: null ,getTextColor: function() { var _g = this.data; switch(_g._hx_index) { case 0: var _g1 = _g.object; var _g1 = _g.field; return 16777215; case 1: var _g1 = _g.value; return 10875373; case 2: var _g1 = _g.expression; var _g1 = _g.parsedExpr; return 12910211; case 3: var _g1 = _g.func; return 15836581; } } ,initTextField: function(textField) { textField.set_selectable(true); textField.set_defaultTextFormat(this.defaultFormat); textField.set_autoSize(2); textField.set_height(20); this.addChild(textField); return textField; } ,updateSize: function(nameWidth,windowWidth) { var textWidth = windowWidth - this.removeButton.get_width() - 4; this.nameText.set_width(nameWidth); this.valueText.set_x(nameWidth + 4); this.valueText.set_width(textWidth - nameWidth - 4); this.removeButton.set_x(textWidth); } ,updateName: function() { if(this.displayName != null) { this.setNameText(this.displayName); return; } var _g = this.data; switch(_g._hx_index) { case 0: var object = _g.object; var field = _g.field; this.setNameText(flixel_util_FlxStringUtil.getClassName(object,true) + "." + field); break; case 1: var _g1 = _g.value; break; case 2: var _g1 = _g.parsedExpr; var expression = _g.expression; this.setNameText(expression); break; case 3: var _g1 = _g.func; break; } } ,setNameText: function(name) { this.nameText.set_text(name); var currentWidth = this.nameText.get_textWidth() + 4; this.nameText.set_width(Math.min(currentWidth,125)); } ,getValue: function() { var _g = this.data; switch(_g._hx_index) { case 0: var object = _g.object; var field = _g.field; return Reflect.getProperty(object,field); case 1: var value = _g.value; return value; case 2: var _g1 = _g.expression; var parsedExpr = _g.parsedExpr; return flixel_system_debug_console_ConsoleUtil.runExpr(parsedExpr); case 3: var func = _g.func; return func(); } } ,getFormattedValue: function() { var value = this.getValue(); if(typeof(value) == "number") { value = flixel_math_FlxMath.roundDecimal(value,flixel_FlxG.debugger.precision); } return Std.string(value); } ,submitValue: function(value) { var _g = this.data; if(_g._hx_index == 0) { var object = _g.object; var field = _g.field; Reflect.setProperty(object,field,value); } } ,updateValue: function() { if(!this.valueText.isEditing) { this.valueText.set_text(this.getFormattedValue()); } } ,getNameWidth: function() { return this.nameText.get_width(); } ,getMinWidth: function() { return this.valueText.get_x() + 8 + this.removeButton.get_width(); } ,destroy: function() { this.nameText = flixel_util_FlxDestroyUtil.removeChild(this,this.nameText); flixel_util_FlxDestroyUtil.destroy(this.valueText); this.valueText = flixel_util_FlxDestroyUtil.removeChild(this,this.valueText); } ,__class__: flixel_system_debug_watch_WatchEntry }); var flixel_system_debug_watch_WatchEntryData = $hxEnums["flixel.system.debug.watch.WatchEntryData"] = { __ename__:"flixel.system.debug.watch.WatchEntryData",__constructs__:null ,FIELD: ($_=function(object,field) { return {_hx_index:0,object:object,field:field,__enum__:"flixel.system.debug.watch.WatchEntryData",toString:$estr}; },$_._hx_name="FIELD",$_.__params__ = ["object","field"],$_) ,QUICK: ($_=function(value) { return {_hx_index:1,value:value,__enum__:"flixel.system.debug.watch.WatchEntryData",toString:$estr}; },$_._hx_name="QUICK",$_.__params__ = ["value"],$_) ,EXPRESSION: ($_=function(expression,parsedExpr) { return {_hx_index:2,expression:expression,parsedExpr:parsedExpr,__enum__:"flixel.system.debug.watch.WatchEntryData",toString:$estr}; },$_._hx_name="EXPRESSION",$_.__params__ = ["expression","parsedExpr"],$_) ,FUNCTION: ($_=function(func) { return {_hx_index:3,func:func,__enum__:"flixel.system.debug.watch.WatchEntryData",toString:$estr}; },$_._hx_name="FUNCTION",$_.__params__ = ["func"],$_) }; flixel_system_debug_watch_WatchEntryData.__constructs__ = [flixel_system_debug_watch_WatchEntryData.FIELD,flixel_system_debug_watch_WatchEntryData.QUICK,flixel_system_debug_watch_WatchEntryData.EXPRESSION,flixel_system_debug_watch_WatchEntryData.FUNCTION]; flixel_system_debug_watch_WatchEntryData.__empty_constructs__ = []; var flixel_system_frontEnds_FlxBrowser = $hxEnums["flixel.system.frontEnds.FlxBrowser"] = { __ename__:"flixel.system.frontEnds.FlxBrowser",__constructs__:null ,INTERNET_EXPLORER: {_hx_name:"INTERNET_EXPLORER",_hx_index:0,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr} ,CHROME: {_hx_name:"CHROME",_hx_index:1,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr} ,FIREFOX: {_hx_name:"FIREFOX",_hx_index:2,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr} ,SAFARI: {_hx_name:"SAFARI",_hx_index:3,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr} ,OPERA: {_hx_name:"OPERA",_hx_index:4,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr} ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:5,__enum__:"flixel.system.frontEnds.FlxBrowser",toString:$estr} }; flixel_system_frontEnds_FlxBrowser.__constructs__ = [flixel_system_frontEnds_FlxBrowser.INTERNET_EXPLORER,flixel_system_frontEnds_FlxBrowser.CHROME,flixel_system_frontEnds_FlxBrowser.FIREFOX,flixel_system_frontEnds_FlxBrowser.SAFARI,flixel_system_frontEnds_FlxBrowser.OPERA,flixel_system_frontEnds_FlxBrowser.UNKNOWN]; flixel_system_frontEnds_FlxBrowser.__empty_constructs__ = [flixel_system_frontEnds_FlxBrowser.INTERNET_EXPLORER,flixel_system_frontEnds_FlxBrowser.CHROME,flixel_system_frontEnds_FlxBrowser.FIREFOX,flixel_system_frontEnds_FlxBrowser.SAFARI,flixel_system_frontEnds_FlxBrowser.OPERA,flixel_system_frontEnds_FlxBrowser.UNKNOWN]; var flixel_system_frontEnds_FlxPlatform = $hxEnums["flixel.system.frontEnds.FlxPlatform"] = { __ename__:"flixel.system.frontEnds.FlxPlatform",__constructs__:null ,WINDOWS: {_hx_name:"WINDOWS",_hx_index:0,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} ,LINUX: {_hx_name:"LINUX",_hx_index:1,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} ,MAC: {_hx_name:"MAC",_hx_index:2,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} ,ANDROID: {_hx_name:"ANDROID",_hx_index:3,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} ,BLACKBERRY: {_hx_name:"BLACKBERRY",_hx_index:4,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} ,WINDOWS_PHONE: {_hx_name:"WINDOWS_PHONE",_hx_index:5,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} ,IOS: ($_=function(device) { return {_hx_index:6,device:device,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr}; },$_._hx_name="IOS",$_.__params__ = ["device"],$_) ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:7,__enum__:"flixel.system.frontEnds.FlxPlatform",toString:$estr} }; flixel_system_frontEnds_FlxPlatform.__constructs__ = [flixel_system_frontEnds_FlxPlatform.WINDOWS,flixel_system_frontEnds_FlxPlatform.LINUX,flixel_system_frontEnds_FlxPlatform.MAC,flixel_system_frontEnds_FlxPlatform.ANDROID,flixel_system_frontEnds_FlxPlatform.BLACKBERRY,flixel_system_frontEnds_FlxPlatform.WINDOWS_PHONE,flixel_system_frontEnds_FlxPlatform.IOS,flixel_system_frontEnds_FlxPlatform.UNKNOWN]; flixel_system_frontEnds_FlxPlatform.__empty_constructs__ = [flixel_system_frontEnds_FlxPlatform.WINDOWS,flixel_system_frontEnds_FlxPlatform.LINUX,flixel_system_frontEnds_FlxPlatform.MAC,flixel_system_frontEnds_FlxPlatform.ANDROID,flixel_system_frontEnds_FlxPlatform.BLACKBERRY,flixel_system_frontEnds_FlxPlatform.WINDOWS_PHONE,flixel_system_frontEnds_FlxPlatform.UNKNOWN]; var flixel_system_frontEnds_FlxIOSDevice = $hxEnums["flixel.system.frontEnds.FlxIOSDevice"] = { __ename__:"flixel.system.frontEnds.FlxIOSDevice",__constructs__:null ,IPHONE: {_hx_name:"IPHONE",_hx_index:0,__enum__:"flixel.system.frontEnds.FlxIOSDevice",toString:$estr} ,IPAD: {_hx_name:"IPAD",_hx_index:1,__enum__:"flixel.system.frontEnds.FlxIOSDevice",toString:$estr} ,IPOD: {_hx_name:"IPOD",_hx_index:2,__enum__:"flixel.system.frontEnds.FlxIOSDevice",toString:$estr} }; flixel_system_frontEnds_FlxIOSDevice.__constructs__ = [flixel_system_frontEnds_FlxIOSDevice.IPHONE,flixel_system_frontEnds_FlxIOSDevice.IPAD,flixel_system_frontEnds_FlxIOSDevice.IPOD]; flixel_system_frontEnds_FlxIOSDevice.__empty_constructs__ = [flixel_system_frontEnds_FlxIOSDevice.IPHONE,flixel_system_frontEnds_FlxIOSDevice.IPAD,flixel_system_frontEnds_FlxIOSDevice.IPOD]; var flixel_system_frontEnds_PluginFrontEnd = function() { this.list = []; this.addPlugin(flixel_util_FlxTimer.globalManager = new flixel_util_FlxTimerManager()); this.addPlugin(flixel_tweens_FlxTween.globalManager = new flixel_tweens_FlxTweenManager()); this.addPlugin(flixel_input_mouse_FlxMouseEvent.globalManager = new flixel_input_mouse_FlxMouseEventManager()); }; $hxClasses["flixel.system.frontEnds.PluginFrontEnd"] = flixel_system_frontEnds_PluginFrontEnd; flixel_system_frontEnds_PluginFrontEnd.__name__ = "flixel.system.frontEnds.PluginFrontEnd"; flixel_system_frontEnds_PluginFrontEnd.prototype = { list: null ,addPlugin: function(plugin) { this.list.push(plugin); return plugin; } ,addIfUniqueType: function(plugin) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var p = _g1[_g]; ++_g; if(flixel_util_FlxStringUtil.getClassName(plugin,true) == flixel_util_FlxStringUtil.getClassName(p,true)) { return plugin; } } this.list.push(plugin); return plugin; } ,get: function(type) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var plugin = _g1[_g]; ++_g; if(js_Boot.__instanceof(plugin,type)) { return plugin; } } return null; } ,remove: function(plugin) { HxOverrides.remove(this.list,plugin); return plugin; } ,removeType: function(type) { return this.removeAllByType(type); } ,removeAllByType: function(type) { var results = false; var i = this.list.length; while(i-- > 0) if(js_Boot.__instanceof(this.list[i],type)) { this.list.splice(i,1); results = true; } return results; } ,update: function(elapsed) { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var plugin = _g1[_g]; ++_g; if(plugin.exists && plugin.active) { plugin.update(elapsed); } } } ,draw: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var plugin = _g1[_g]; ++_g; if(plugin.exists && plugin.visible) { plugin.draw(); } } } ,__class__: flixel_system_frontEnds_PluginFrontEnd }; var flixel_system_frontEnds_SoundFrontEnd = function() { this.volume = 1; this.list = new flixel_group_FlxTypedGroup(); this.defaultSoundGroup = new flixel_sound_FlxSoundGroup(); this.defaultMusicGroup = new flixel_sound_FlxSoundGroup(); this.soundTrayEnabled = true; this.muteKeys = [48,96]; this.volumeDownKeys = [189,109]; this.volumeUpKeys = [187,107]; this.muted = false; this.loadSavedPrefs(); }; $hxClasses["flixel.system.frontEnds.SoundFrontEnd"] = flixel_system_frontEnds_SoundFrontEnd; flixel_system_frontEnds_SoundFrontEnd.__name__ = "flixel.system.frontEnds.SoundFrontEnd"; flixel_system_frontEnds_SoundFrontEnd.prototype = { music: null ,muted: null ,volumeHandler: null ,volumeUpKeys: null ,volumeDownKeys: null ,muteKeys: null ,soundTrayEnabled: null ,get_soundTray: function() { return flixel_FlxG.game.soundTray; } ,defaultMusicGroup: null ,defaultSoundGroup: null ,list: null ,volume: null ,playMusic: function(embeddedMusic,volume,looped,group) { if(looped == null) { looped = true; } if(volume == null) { volume = 1.0; } if(this.music == null) { this.music = new flixel_sound_FlxSound(); } else if(this.music.active) { var _this = this.music; _this.cleanup(_this.autoDestroy,true); } this.music.loadEmbedded(embeddedMusic,looped); this.music.set_volume(volume); this.music.persist = true; this.music.set_group(group == null ? this.defaultMusicGroup : group); this.music.play(); } ,load: function(embeddedSound,volume,looped,group,autoDestroy,autoPlay,url,onComplete,onLoad) { if(autoPlay == null) { autoPlay = false; } if(autoDestroy == null) { autoDestroy = false; } if(looped == null) { looped = false; } if(volume == null) { volume = 1.0; } if(embeddedSound == null && url == null) { flixel_FlxG.log.advanced("FlxG.sound.load() requires either\nan embedded sound or a URL to work.",flixel_system_debug_log_LogStyle.WARNING,true); return null; } var sound = this.list.recycle(flixel_sound_FlxSound); if(embeddedSound != null) { sound.loadEmbedded(embeddedSound,looped,autoDestroy,onComplete); this.loadHelper(sound,volume,group,autoPlay); if(onLoad != null && sound._sound != null) { onLoad(); } } else { var loadCallback = onLoad; if(autoPlay) { loadCallback = function() { sound.play(); if(onLoad != null) { onLoad(); } }; } sound.loadStream(url,looped,autoDestroy,onComplete,loadCallback); this.loadHelper(sound,volume,group); } return sound; } ,loadHelper: function(sound,volume,group,autoPlay) { if(autoPlay == null) { autoPlay = false; } sound.set_volume(volume); if(autoPlay) { sound.play(); } sound.set_group(group == null ? this.defaultSoundGroup : group); return sound; } ,cache: function(embeddedSound) { if(openfl_utils_Assets.exists(embeddedSound,"SOUND") || openfl_utils_Assets.exists(embeddedSound,"MUSIC")) { return openfl_utils_Assets.getSound(embeddedSound,true); } flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + embeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); return null; } ,cacheAll: function() { var _g = 0; var _g1 = openfl_utils_Assets.list("SOUND"); while(_g < _g1.length) { var id = _g1[_g]; ++_g; if(openfl_utils_Assets.exists(id,"SOUND") || openfl_utils_Assets.exists(id,"MUSIC")) { openfl_utils_Assets.getSound(id,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + id + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } } } ,play: function(embeddedSound,volume,looped,group,autoDestroy,onComplete) { if(autoDestroy == null) { autoDestroy = true; } if(looped == null) { looped = false; } if(volume == null) { volume = 1.0; } if(typeof(embeddedSound) == "string") { if(openfl_utils_Assets.exists(embeddedSound,"SOUND") || openfl_utils_Assets.exists(embeddedSound,"MUSIC")) { embeddedSound = openfl_utils_Assets.getSound(embeddedSound,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + embeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); embeddedSound = null; } } var sound = this.list.recycle(flixel_sound_FlxSound).loadEmbedded(embeddedSound,looped,autoDestroy,onComplete); return this.loadHelper(sound,volume,group,true); } ,stream: function(url,volume,looped,group,autoDestroy,onComplete,onLoad) { if(autoDestroy == null) { autoDestroy = true; } if(looped == null) { looped = false; } if(volume == null) { volume = 1.0; } return this.load(null,volume,looped,group,autoDestroy,true,url,onComplete,onLoad); } ,pause: function() { if(this.music != null && this.music.exists && this.music.active) { this.music.pause(); } var _g = 0; var _g1 = this.list.members; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; if(sound != null && sound.exists && sound.active) { sound.pause(); } } } ,resume: function() { if(this.music != null && this.music.exists) { this.music.resume(); } var _g = 0; var _g1 = this.list.members; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; if(sound != null && sound.exists) { sound.resume(); } } } ,destroy: function(forceDestroy) { if(forceDestroy == null) { forceDestroy = false; } if(this.music != null && (forceDestroy || !this.music.persist)) { this.destroySound(this.music); this.music = null; } var _g = 0; var _g1 = this.list.members; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; if(sound != null && (forceDestroy || !sound.persist)) { this.destroySound(sound); } } } ,destroySound: function(sound) { this.defaultMusicGroup.remove(sound); this.defaultSoundGroup.remove(sound); sound.destroy(); } ,toggleMuted: function() { this.muted = !this.muted; if(this.volumeHandler != null) { this.volumeHandler(this.muted ? 0 : this.volume); } this.showSoundTray(true); } ,changeVolume: function(Amount) { this.muted = false; this.set_volume(this.volume + Amount); this.showSoundTray(Amount > 0); } ,showSoundTray: function(up) { if(up == null) { up = false; } if(flixel_FlxG.game.soundTray != null && this.soundTrayEnabled) { flixel_FlxG.game.soundTray.show(up); } } ,update: function(elapsed) { if(this.music != null && this.music.active) { this.music.update(elapsed); } if(this.list != null && this.list.active) { this.list.update(elapsed); } if(flixel_FlxG.keys.checkKeyArrayState(this.muteKeys,-1)) { this.toggleMuted(); } else if(flixel_FlxG.keys.checkKeyArrayState(this.volumeUpKeys,-1)) { this.changeVolume(0.1); } else if(flixel_FlxG.keys.checkKeyArrayState(this.volumeDownKeys,-1)) { this.changeVolume(-0.1); } } ,onFocusLost: function() { if(this.music != null) { this.music.onFocusLost(); } var _g = 0; var _g1 = this.list.members; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; if(sound != null) { sound.onFocusLost(); } } } ,onFocus: function() { if(this.music != null) { this.music.onFocus(); } var _g = 0; var _g1 = this.list.members; while(_g < _g1.length) { var sound = _g1[_g]; ++_g; if(sound != null) { sound.onFocus(); } } } ,loadSavedPrefs: function() { var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(!tmp) { return; } if(flixel_FlxG.save.data.volume != null) { this.set_volume(flixel_FlxG.save.data.volume); } if(flixel_FlxG.save.data.mute != null) { this.muted = flixel_FlxG.save.data.mute; } } ,set_volume: function(Volume) { var lowerBound = Volume < 0 ? 0 : Volume; Volume = lowerBound > 1 ? 1 : lowerBound; if(this.volumeHandler != null) { var param = this.muted ? 0 : Volume; this.volumeHandler(param); } return this.volume = Volume; } ,__class__: flixel_system_frontEnds_SoundFrontEnd ,__properties__: {set_volume:"set_volume",get_soundTray:"get_soundTray"} }; var flixel_system_frontEnds_VCRFrontEnd = function() { this.stepRequested = false; this.paused = false; }; $hxClasses["flixel.system.frontEnds.VCRFrontEnd"] = flixel_system_frontEnds_VCRFrontEnd; flixel_system_frontEnds_VCRFrontEnd.__name__ = "flixel.system.frontEnds.VCRFrontEnd"; flixel_system_frontEnds_VCRFrontEnd.prototype = { paused: null ,stepRequested: null ,pause: function() { if(!this.paused) { if(!flixel_FlxG.mouse.useSystemCursor) { openfl_ui_Mouse.show(); } this.paused = true; } } ,resume: function() { if(this.paused) { if(!flixel_FlxG.mouse.useSystemCursor) { openfl_ui_Mouse.hide(); } this.paused = false; } } ,__class__: flixel_system_frontEnds_VCRFrontEnd }; var flixel_system_macros_FlxMacroUtil = function() { }; $hxClasses["flixel.system.macros.FlxMacroUtil"] = flixel_system_macros_FlxMacroUtil; flixel_system_macros_FlxMacroUtil.__name__ = "flixel.system.macros.FlxMacroUtil"; var flixel_system_replay_CodeValuePair = function(code,value) { this.code = code; this.value = value; }; $hxClasses["flixel.system.replay.CodeValuePair"] = flixel_system_replay_CodeValuePair; flixel_system_replay_CodeValuePair.__name__ = "flixel.system.replay.CodeValuePair"; flixel_system_replay_CodeValuePair.prototype = { code: null ,value: null ,__class__: flixel_system_replay_CodeValuePair }; var flixel_system_replay_FlxReplay = function() { this.seed = 0; this.frame = 0; this.frameCount = 0; this.finished = false; this._frames = null; this._capacity = 0; this._marker = 0; }; $hxClasses["flixel.system.replay.FlxReplay"] = flixel_system_replay_FlxReplay; flixel_system_replay_FlxReplay.__name__ = "flixel.system.replay.FlxReplay"; flixel_system_replay_FlxReplay.prototype = { seed: null ,frame: null ,frameCount: null ,finished: null ,_frames: null ,_capacity: null ,_marker: null ,destroy: function() { if(this._frames == null) { return; } var i = this.frameCount - 1; while(i >= 0) this._frames[i--].destroy(); this._frames = null; } ,create: function(Seed) { this.destroy(); this.init(); this.seed = Seed; this.rewind(); } ,load: function(FileContents) { this.init(); var lines = FileContents.split("\n"); this.seed = Std.parseInt(lines[0]); var line; var i = 1; var l = lines.length; while(i < l) { line = lines[i++]; if(line.length > 3) { this._frames[this.frameCount++] = new flixel_system_replay_FrameRecord().load(line); if(this.frameCount >= this._capacity) { this._capacity *= 2; flixel_util_FlxArrayUtil.setLength_flixel_system_replay_FrameRecord(this._frames,this._capacity); } } } this.rewind(); } ,save: function() { if(this.frameCount <= 0) { return null; } var output = this.seed + "\n"; var i = 0; while(i < this.frameCount) output += this._frames[i++].save() + "\n"; return output; } ,recordFrame: function() { var continueFrame = true; var keysRecord = flixel_FlxG.keys.record(); if(keysRecord != null) { continueFrame = false; } var mouseRecord = flixel_FlxG.mouse.record(); if(mouseRecord != null) { continueFrame = false; } if(continueFrame) { this.frame++; return; } var frameRecorded = new flixel_system_replay_FrameRecord().create(this.frame++); frameRecorded.mouse = mouseRecord; frameRecorded.keys = keysRecord; this._frames[this.frameCount++] = frameRecorded; if(this.frameCount >= this._capacity) { this._capacity *= 2; flixel_util_FlxArrayUtil.setLength_flixel_system_replay_FrameRecord(this._frames,this._capacity); } } ,playNextFrame: function() { flixel_FlxG.inputs.reset(); if(this._marker >= this.frameCount) { this.finished = true; return; } if(this._frames[this._marker].frame != this.frame++) { return; } var fr = this._frames[this._marker++]; if(fr.keys != null) { flixel_FlxG.keys.playback(fr.keys); } if(fr.mouse != null) { flixel_FlxG.mouse.playback(fr.mouse); } } ,rewind: function() { this._marker = 0; this.frame = 0; this.finished = false; } ,init: function() { this._capacity = 100; this._frames = []; flixel_util_FlxArrayUtil.setLength_flixel_system_replay_FrameRecord(this._frames,this._capacity); this.frameCount = 0; } ,__class__: flixel_system_replay_FlxReplay }; var flixel_system_replay_FrameRecord = function() { this.frame = 0; this.keys = null; this.mouse = null; }; $hxClasses["flixel.system.replay.FrameRecord"] = flixel_system_replay_FrameRecord; flixel_system_replay_FrameRecord.__name__ = "flixel.system.replay.FrameRecord"; flixel_system_replay_FrameRecord.prototype = { frame: null ,keys: null ,mouse: null ,create: function(Frame,Keys,Mouse) { this.frame = Math.floor(Frame); this.keys = Keys; this.mouse = Mouse; return this; } ,destroy: function() { this.keys = null; this.mouse = null; } ,save: function() { var output = this.frame + "k"; if(this.keys != null) { var object; var i = 0; var l = this.keys.length; while(i < l) { if(i > 0) { output += ","; } object = this.keys[i++]; output += object.code + ":" + object.value; } } output += "m"; if(this.mouse != null) { output += this.mouse.x + "," + this.mouse.y + "," + this.mouse.button + "," + this.mouse.wheel; } return output; } ,load: function(Data) { var i; var l; var array = Data.split("k"); this.frame = Std.parseInt(array[0]); array = array[1].split("m"); var keyData = array[0]; var mouseData = array[1]; if(keyData.length > 0) { array = keyData.split(","); var keyPair; i = 0; l = array.length; while(i < l) { keyPair = array[i++].split(":"); if(keyPair.length == 2) { if(this.keys == null) { this.keys = []; } this.keys.push(new flixel_system_replay_CodeValuePair(Std.parseInt(keyPair[0]),Std.parseInt(keyPair[1]))); } } } if(mouseData.length > 0) { array = mouseData.split(","); if(array.length >= 4) { this.mouse = new flixel_system_replay_MouseRecord(Std.parseInt(array[0]),Std.parseInt(array[1]),Std.parseInt(array[2]),Std.parseInt(array[3])); } } return this; } ,__class__: flixel_system_replay_FrameRecord }; var flixel_system_replay_MouseRecord = function(x,y,button,wheel) { this.x = x; this.y = y; this.button = button; this.wheel = wheel; }; $hxClasses["flixel.system.replay.MouseRecord"] = flixel_system_replay_MouseRecord; flixel_system_replay_MouseRecord.__name__ = "flixel.system.replay.MouseRecord"; flixel_system_replay_MouseRecord.prototype = { x: null ,y: null ,button: null ,wheel: null ,__class__: flixel_system_replay_MouseRecord }; var flixel_system_scaleModes_FillScaleMode = function() { flixel_system_scaleModes_BaseScaleMode.call(this); }; $hxClasses["flixel.system.scaleModes.FillScaleMode"] = flixel_system_scaleModes_FillScaleMode; flixel_system_scaleModes_FillScaleMode.__name__ = "flixel.system.scaleModes.FillScaleMode"; flixel_system_scaleModes_FillScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_FillScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ updateGamePosition: function() { flixel_FlxG.game.set_x(flixel_FlxG.game.set_y(0)); } ,__class__: flixel_system_scaleModes_FillScaleMode }); var flixel_system_scaleModes_FixedScaleAdjustSizeScaleMode = function(fixedWidth,fixedHeight) { if(fixedHeight == null) { fixedHeight = false; } if(fixedWidth == null) { fixedWidth = false; } this.fixedHeight = false; this.fixedWidth = false; flixel_system_scaleModes_BaseScaleMode.call(this); this.fixedWidth = fixedWidth; this.fixedHeight = fixedHeight; var this1 = this.gameSize; var x = flixel_FlxG.width; var y = flixel_FlxG.height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; $hxClasses["flixel.system.scaleModes.FixedScaleAdjustSizeScaleMode"] = flixel_system_scaleModes_FixedScaleAdjustSizeScaleMode; flixel_system_scaleModes_FixedScaleAdjustSizeScaleMode.__name__ = "flixel.system.scaleModes.FixedScaleAdjustSizeScaleMode"; flixel_system_scaleModes_FixedScaleAdjustSizeScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_FixedScaleAdjustSizeScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ fixedWidth: null ,fixedHeight: null ,onMeasure: function(Width,Height) { flixel_FlxG.width = this.fixedWidth ? flixel_FlxG.initialWidth : Math.ceil(Width); flixel_FlxG.height = this.fixedHeight ? flixel_FlxG.initialHeight : Math.ceil(Height); this.updateGameSize(Width,Height); this.updateDeviceSize(Width,Height); this.updateScaleOffset(); this.updateGamePosition(); } ,updateGameSize: function(Width,Height) { this.gameSize.set_x(flixel_FlxG.width); this.gameSize.set_y(flixel_FlxG.height); if(flixel_FlxG.camera != null) { var oldWidth = flixel_FlxG.camera.width; var oldHeight = flixel_FlxG.camera.height; var _this = flixel_FlxG.camera; var Height = flixel_FlxG.height; _this.set_width(flixel_FlxG.width); _this.set_height(Height); var fh = flixel_FlxG.camera; fh.scroll.set_x(fh.scroll.x + 0.5 * (oldWidth - flixel_FlxG.width)); var fh = flixel_FlxG.camera; fh.scroll.set_y(fh.scroll.y + 0.5 * (oldHeight - flixel_FlxG.height)); } } ,__class__: flixel_system_scaleModes_FixedScaleAdjustSizeScaleMode }); var flixel_system_scaleModes_FixedScaleMode = function() { flixel_system_scaleModes_BaseScaleMode.call(this); }; $hxClasses["flixel.system.scaleModes.FixedScaleMode"] = flixel_system_scaleModes_FixedScaleMode; flixel_system_scaleModes_FixedScaleMode.__name__ = "flixel.system.scaleModes.FixedScaleMode"; flixel_system_scaleModes_FixedScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_FixedScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ updateGameSize: function(Width,Height) { this.gameSize.set_x(flixel_FlxG.width); this.gameSize.set_y(flixel_FlxG.height); } ,__class__: flixel_system_scaleModes_FixedScaleMode }); var flixel_system_scaleModes_PixelPerfectScaleMode = function() { flixel_system_scaleModes_BaseScaleMode.call(this); }; $hxClasses["flixel.system.scaleModes.PixelPerfectScaleMode"] = flixel_system_scaleModes_PixelPerfectScaleMode; flixel_system_scaleModes_PixelPerfectScaleMode.__name__ = "flixel.system.scaleModes.PixelPerfectScaleMode"; flixel_system_scaleModes_PixelPerfectScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_PixelPerfectScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ updateGameSize: function(Width,Height) { var scaleFactorX = Width / flixel_FlxG.width; var scaleFactorY = Height / flixel_FlxG.height; var scaleFactor = Math.floor(Math.min(scaleFactorX,scaleFactorY)); if(scaleFactor < 1) { scaleFactor = 1; } this.gameSize.set_x(flixel_FlxG.width * scaleFactor); this.gameSize.set_y(flixel_FlxG.height * scaleFactor); } ,__class__: flixel_system_scaleModes_PixelPerfectScaleMode }); var flixel_system_scaleModes_RelativeScaleMode = function(WidthScale,HeightScale) { flixel_system_scaleModes_BaseScaleMode.call(this); this._widthScale = WidthScale; this._heightScale = HeightScale; }; $hxClasses["flixel.system.scaleModes.RelativeScaleMode"] = flixel_system_scaleModes_RelativeScaleMode; flixel_system_scaleModes_RelativeScaleMode.__name__ = "flixel.system.scaleModes.RelativeScaleMode"; flixel_system_scaleModes_RelativeScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_RelativeScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ _widthScale: null ,_heightScale: null ,initScale: function(WidthScale,HeightScale) { this._widthScale = WidthScale; this._heightScale = HeightScale; } ,setScale: function(WidthScale,HeightScale) { this._widthScale = WidthScale; this._heightScale = HeightScale; this.onMeasure(openfl_Lib.get_current().stage.stageWidth,openfl_Lib.get_current().stage.stageHeight); } ,updateGameSize: function(Width,Height) { this.gameSize.set_x(Width * this._widthScale | 0); this.gameSize.set_y(Height * this._heightScale | 0); } ,__class__: flixel_system_scaleModes_RelativeScaleMode }); var flixel_system_scaleModes_StageSizeScaleMode = function() { flixel_system_scaleModes_BaseScaleMode.call(this); }; $hxClasses["flixel.system.scaleModes.StageSizeScaleMode"] = flixel_system_scaleModes_StageSizeScaleMode; flixel_system_scaleModes_StageSizeScaleMode.__name__ = "flixel.system.scaleModes.StageSizeScaleMode"; flixel_system_scaleModes_StageSizeScaleMode.__super__ = flixel_system_scaleModes_BaseScaleMode; flixel_system_scaleModes_StageSizeScaleMode.prototype = $extend(flixel_system_scaleModes_BaseScaleMode.prototype,{ onMeasure: function(Width,Height) { flixel_FlxG.width = Width; flixel_FlxG.height = Height; var this1 = this.scale; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); flixel_FlxG.game.set_x(flixel_FlxG.game.set_y(0)); if(flixel_FlxG.camera != null) { var oldW = flixel_FlxG.camera.width; var oldH = flixel_FlxG.camera.height; var newW = Math.ceil(Width / flixel_FlxG.camera.zoom); var newH = Math.ceil(Height / flixel_FlxG.camera.zoom); var _this = flixel_FlxG.camera; _this.set_width(newW); _this.set_height(newH); var fh = flixel_FlxG.camera.flashSprite; fh.set_x(fh.get_x() + (newW - oldW) / 2); var fh = flixel_FlxG.camera.flashSprite; fh.set_y(fh.get_y() + (newH - oldH) / 2); } } ,__class__: flixel_system_scaleModes_StageSizeScaleMode }); var flixel_system_ui_FlxFocusLostScreen = function() { openfl_display_Sprite.call(this); this.draw(); var logo = new openfl_display_Sprite(); flixel_system_FlxAssets.drawLogo(logo.get_graphics()); logo.set_scaleX(logo.set_scaleY(0.2)); logo.set_x(logo.set_y(5)); logo.set_alpha(0.35); this.addChild(logo); this.set_visible(false); }; $hxClasses["flixel.system.ui.FlxFocusLostScreen"] = flixel_system_ui_FlxFocusLostScreen; flixel_system_ui_FlxFocusLostScreen.__name__ = "flixel.system.ui.FlxFocusLostScreen"; flixel_system_ui_FlxFocusLostScreen.__super__ = openfl_display_Sprite; flixel_system_ui_FlxFocusLostScreen.prototype = $extend(openfl_display_Sprite.prototype,{ draw: function() { var gfx = this.get_graphics(); var screenWidth = openfl_Lib.get_current().stage.stageWidth | 0; var screenHeight = openfl_Lib.get_current().stage.stageHeight | 0; gfx.clear(); gfx.moveTo(0,0); gfx.beginFill(0,0.5); gfx.drawRect(0,0,screenWidth,screenHeight); gfx.endFill(); var halfWidth = screenWidth / 2 | 0; var halfHeight = screenHeight / 2 | 0; var helper = Math.min(halfWidth,halfHeight) / 3 | 0; gfx.moveTo(halfWidth - helper,halfHeight - helper); gfx.beginFill(16777215,0.65); gfx.lineTo(halfWidth + helper,halfHeight); gfx.lineTo(halfWidth - helper,halfHeight + helper); gfx.lineTo(halfWidth - helper,halfHeight - helper); gfx.endFill(); this.set_x(-flixel_FlxG.scaleMode.offset.x); this.set_y(-flixel_FlxG.scaleMode.offset.y); } ,__class__: flixel_system_ui_FlxFocusLostScreen }); var flixel_system_ui_FlxSoundTray = function() { this.silent = false; this.volumeDownSound = "flixel/sounds/beep"; this.volumeUpSound = "flixel/sounds/beep"; this._defaultScale = 2.0; this._width = 80; openfl_display_Sprite.call(this); this.set_visible(false); this.set_scaleX(this._defaultScale); this.set_scaleY(this._defaultScale); var tmp = new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,30,true,2130706432)); this.screenCenter(); this.addChild(tmp); var text = new openfl_text_TextField(); text.set_width(tmp.get_width()); text.set_height(tmp.get_height()); text.set_multiline(true); text.set_wordWrap(true); text.set_selectable(false); var dtf = new openfl_text_TextFormat(flixel_system_FlxAssets.FONT_DEFAULT,10,16777215); dtf.align = 0; text.set_defaultTextFormat(dtf); this.addChild(text); text.set_text("VOLUME"); text.set_y(16); var bx = 10; var by = 14; this._bars = []; var _g = 0; while(_g < 10) { var i = _g++; tmp = new openfl_display_Bitmap(new openfl_display_BitmapData(4,i + 1,false,-1)); tmp.set_x(bx); tmp.set_y(by); this.addChild(tmp); this._bars.push(tmp); bx += 6; --by; } this.set_y(-this.get_height()); this.set_visible(false); }; $hxClasses["flixel.system.ui.FlxSoundTray"] = flixel_system_ui_FlxSoundTray; flixel_system_ui_FlxSoundTray.__name__ = "flixel.system.ui.FlxSoundTray"; flixel_system_ui_FlxSoundTray.__super__ = openfl_display_Sprite; flixel_system_ui_FlxSoundTray.prototype = $extend(openfl_display_Sprite.prototype,{ active: null ,_timer: null ,_bars: null ,_width: null ,_defaultScale: null ,volumeUpSound: null ,volumeDownSound: null ,silent: null ,update: function(MS) { if(this._timer > 0) { this._timer -= MS / 1000; } else if(this.get_y() > -this.get_height()) { this.set_y(this.get_y() - MS / 1000 * this.get_height() * 0.5); if(this.get_y() <= -this.get_height()) { this.set_visible(false); this.active = false; var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(tmp) { flixel_FlxG.save.data.mute = flixel_FlxG.sound.muted; flixel_FlxG.save.data.volume = flixel_FlxG.sound.volume; flixel_FlxG.save.flush(); } } } } ,show: function(up) { if(up == null) { up = false; } if(!this.silent) { var sound = flixel_system_FlxAssets.getSound(up ? this.volumeUpSound : this.volumeDownSound); if(sound != null) { flixel_FlxG.sound.load(sound).play(); } } this._timer = 1; this.set_y(0); this.set_visible(true); this.active = true; var globalVolume = Math.round(flixel_FlxG.sound.volume * 10); if(flixel_FlxG.sound.muted) { globalVolume = 0; } var _g = 0; var _g1 = this._bars.length; while(_g < _g1) { var i = _g++; if(i < globalVolume) { this._bars[i].set_alpha(1); } else { this._bars[i].set_alpha(0.5); } } } ,screenCenter: function() { this.set_scaleX(this._defaultScale); this.set_scaleY(this._defaultScale); this.set_x(0.5 * (openfl_Lib.get_current().stage.stageWidth - this._width * this._defaultScale) - flixel_FlxG.game.get_x()); } ,__class__: flixel_system_ui_FlxSoundTray }); var flixel_system_ui_FlxSystemButton = function(Icon,UpHandler,ToggleMode) { if(ToggleMode == null) { ToggleMode = false; } this._mouseDown = false; this.toggled = false; this.toggleMode = false; this.enabled = true; openfl_display_Sprite.call(this); if(Icon != null) { this.changeIcon(Icon); } this.upHandler = UpHandler; this.toggleMode = ToggleMode; this.addEventListener("mouseUp",$bind(this,this.onMouseUp)); this.addEventListener("mouseDown",$bind(this,this.onMouseDown)); this.addEventListener("mouseOut",$bind(this,this.onMouseOut)); this.addEventListener("mouseOver",$bind(this,this.onMouseOver)); }; $hxClasses["flixel.system.ui.FlxSystemButton"] = flixel_system_ui_FlxSystemButton; flixel_system_ui_FlxSystemButton.__name__ = "flixel.system.ui.FlxSystemButton"; flixel_system_ui_FlxSystemButton.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_system_ui_FlxSystemButton.__super__ = openfl_display_Sprite; flixel_system_ui_FlxSystemButton.prototype = $extend(openfl_display_Sprite.prototype,{ upHandler: null ,enabled: null ,toggleMode: null ,toggled: null ,_icon: null ,_mouseDown: null ,changeIcon: function(Icon) { if(this._icon != null) { this.removeChild(this._icon); } flixel_system_debug_DebuggerUtil.fixSize(Icon); this._icon = new openfl_display_Bitmap(Icon); this.addChild(this._icon); } ,destroy: function() { this.removeEventListener("mouseUp",$bind(this,this.onMouseUp)); this.removeEventListener("mouseDown",$bind(this,this.onMouseDown)); this.removeEventListener("mouseOut",$bind(this,this.onMouseOut)); this.removeEventListener("mouseOver",$bind(this,this.onMouseOver)); this._icon = null; this.upHandler = null; } ,onMouseUp: function(_) { if(this.enabled && this._mouseDown) { this.set_toggled(!this.toggled); this._mouseDown = false; if(this.upHandler != null) { this.upHandler(); } } } ,onMouseDown: function(_) { this._mouseDown = true; } ,onMouseOver: function(_) { if(this.enabled) { this.set_alpha(this.get_alpha() - 0.2); } } ,onMouseOut: function(_) { if(this.enabled) { this.set_alpha(this.get_alpha() + 0.2); } } ,set_toggled: function(Value) { if(this.toggleMode) { this.set_alpha(Value ? 0.3 : 1); } return this.toggled = Value; } ,__class__: flixel_system_ui_FlxSystemButton ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_toggled:"set_toggled"}) }); var flixel_text_FlxBitmapText = function(x,y,text,font) { if(text == null) { text = ""; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.pendingPixelsChange = true; this.pendingTextBitmapChange = true; this.pendingTextChange = true; this.multiLine = true; this.backgroundColor = 0; this.background = false; this.borderQuality = 0; this.borderSize = 1; this.borderColor = -16777216; this.borderStyle = flixel_text_FlxTextBorderStyle.NONE; this.useTextColor = false; this.textColor = -1; this.numSpacesInTab = 4; this.padding = 0; this.autoSize = true; this.wrap = flixel_text_Wrap.WORD(flixel_text_WordSplitConditions.NEVER); this.autoUpperCase = false; this.letterSpacing = 0; this.lineSpacing = 0; this.alignment = "left"; this._linesWidth = []; this._lines = []; this._colorParams = new openfl_geom_ColorTransform(); this.text = ""; flixel_FlxSprite.call(this,x,y); this.set_width(this.set_fieldWidth(2)); this.set_alpha(1); this.set_font(font == null ? flixel_graphics_frames_FlxBitmapFont.getDefaultFont() : font); var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.shadowOffset = point; if(flixel_FlxG.renderBlit) { this.set_pixels(new openfl_display_BitmapData(1,1,true,0)); } else { this.textData = []; this.textDrawData = []; this.borderDrawData = []; } this.set_text(text); }; $hxClasses["flixel.text.FlxBitmapText"] = flixel_text_FlxBitmapText; flixel_text_FlxBitmapText.__name__ = "flixel.text.FlxBitmapText"; flixel_text_FlxBitmapText.__super__ = flixel_FlxSprite; flixel_text_FlxBitmapText.prototype = $extend(flixel_FlxSprite.prototype,{ font: null ,text: null ,_colorParams: null ,_lines: null ,_linesWidth: null ,alignment: null ,lineSpacing: null ,letterSpacing: null ,autoUpperCase: null ,wrap: null ,autoSize: null ,padding: null ,numSpacesInTab: null ,textColor: null ,useTextColor: null ,borderStyle: null ,borderColor: null ,borderSize: null ,borderQuality: null ,shadowOffset: null ,background: null ,backgroundColor: null ,multiLine: null ,_fieldWidth: null ,pendingTextChange: null ,pendingTextBitmapChange: null ,pendingPixelsChange: null ,textData: null ,textDrawData: null ,borderDrawData: null ,textBitmap: null ,destroy: function() { this.set_font(null); this.set_text(null); this._lines = null; this._linesWidth = null; this.shadowOffset = flixel_util_FlxDestroyUtil.put(this.shadowOffset); this.textBitmap = flixel_util_FlxDestroyUtil.dispose(this.textBitmap); this._colorParams = null; if(flixel_FlxG.renderTile) { this.textData = null; this.textDrawData = null; this.borderDrawData = null; } flixel_FlxSprite.prototype.destroy.call(this); } ,drawFrame: function(Force) { if(Force == null) { Force = false; } if(flixel_FlxG.renderTile) { Force = true; } this.pendingTextBitmapChange = this.pendingTextBitmapChange || Force; var useTiles = false; if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } if(flixel_FlxG.renderBlit) { flixel_FlxSprite.prototype.drawFrame.call(this,Force); } } ,updateHitbox: function() { var useTiles = true; if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } flixel_FlxSprite.prototype.updateHitbox.call(this); } ,checkPendingChanges: function(useTiles) { if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } } ,draw: function() { if(flixel_FlxG.renderBlit) { var useTiles = false; if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } flixel_FlxSprite.prototype.draw.call(this); } else { var useTiles = true; if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } var textLength = this.textDrawData.length / 3 | 0; var borderLength = this.borderDrawData.length / 3 | 0; var dataPos; var cr = (this.color >> 16 & 255) / 255; var cg = (this.color >> 8 & 255) / 255; var cb = (this.color & 255) / 255; var borderRed = (this.borderColor >> 16 & 255) / 255 * cr; var borderGreen = (this.borderColor >> 8 & 255) / 255 * cg; var borderBlue = (this.borderColor & 255) / 255 * cb; var bAlpha = (this.borderColor >> 24 & 255) / 255 * this.alpha; var textRed = cr; var textGreen = cg; var textBlue = cb; var tAlpha = this.alpha; if(this.useTextColor) { textRed *= (this.textColor >> 16 & 255) / 255; textGreen *= (this.textColor >> 8 & 255) / 255; textBlue *= (this.textColor & 255) / 255; tAlpha *= (this.textColor >> 24 & 255) / 255; } var bgRed = cr; var bgGreen = cg; var bgBlue = cb; var bgAlpha = this.alpha; if(this.background) { bgRed *= (this.backgroundColor >> 16 & 255) / 255; bgGreen *= (this.backgroundColor >> 8 & 255) / 255; bgBlue *= (this.backgroundColor & 255) / 255; bgAlpha *= (this.backgroundColor >> 24 & 255) / 255; } var drawItem; var currFrame = null; var currTileX = 0; var currTileY = 0; var sx = this.scale.x * this._facingHorizontalMult; var sy = this.scale.y * this._facingVerticalMult; var ox = this.origin.x; var oy = this.origin.y; if(this._facingHorizontalMult != 1) { ox = this.frameWidth - ox; } if(this._facingVerticalMult != 1) { oy = this.frameHeight - oy; } var clippedFrameRect; if(this.clipRect != null) { var clippedFrameRect1 = this.clipRect; var X = 0; var Y = 0; var Width = this.frameWidth; var Height = this.frameHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } var _this = flixel_math_FlxRect._pool.get(); var X = X1; var Y = Y1; var Width = Width1; var Height = Height1; 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; var rect = _this; rect._inPool = false; var rect1 = rect; rect1._weak = true; clippedFrameRect = clippedFrameRect1.intersection(rect1); if(clippedFrameRect.width == 0 || clippedFrameRect.height == 0) { return; } } else { var X = 0; var Y = 0; var Width = this.frameWidth; var Height = this.frameHeight; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; clippedFrameRect = rect; } var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists || !this.isOnScreen(camera)) { continue; } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } if(this.isPixelPerfectRender(camera)) { var this2 = this._point; this2.set_x(Math.floor(this2.x)); this2.set_y(Math.floor(this2.y)); } if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.background) { currFrame = flixel_FlxG.bitmap.get_whitePixel(); this._matrix.identity(); this._matrix.scale(0.1 * clippedFrameRect.width,0.1 * clippedFrameRect.height); this._matrix.translate(clippedFrameRect.x - ox,clippedFrameRect.y - oy); this._matrix.scale(sx,sy); if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } this._matrix.translate(this._point.x + ox,this._point.y + oy); flixel_util_FlxColorTransformUtil.setMultipliers(this._colorParams,bgRed,bgGreen,bgBlue,bgAlpha); camera.drawPixels(currFrame,null,this._matrix,this._colorParams,this.blend,this.antialiasing); } var hasColorOffsets = this.colorTransform != null && flixel_util_FlxColorTransformUtil.hasRGBAOffsets(this.colorTransform); drawItem = camera.startQuadBatch(this.font.parent,true,hasColorOffsets,this.blend,this.antialiasing,this.shader); var _g2 = 0; var _g3 = borderLength; while(_g2 < _g3) { var j = _g2++; dataPos = j * 3; currFrame = this.font.charMap.h[this.borderDrawData[dataPos] | 0]; currTileX = this.borderDrawData[dataPos + 1]; currTileY = this.borderDrawData[dataPos + 2]; if(this.clipRect != null) { var Rect = this.clipRect; clippedFrameRect.x = Rect.x; clippedFrameRect.y = Rect.y; clippedFrameRect.width = Rect.width; clippedFrameRect.height = Rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } var _this1 = clippedFrameRect; _this1.x += -currTileX; _this1.y += -currTileY; currFrame = currFrame.clipTo(clippedFrameRect); } currFrame.prepareMatrix(this._matrix); this._matrix.translate(currTileX - ox,currTileY - oy); this._matrix.scale(sx,sy); if(this.angle != 0) { var _this2 = this._matrix; var cos1 = this._cosAngle; var sin1 = this._sinAngle; var a11 = _this2.a * cos1 - _this2.b * sin1; _this2.b = _this2.a * sin1 + _this2.b * cos1; _this2.a = a11; var c11 = _this2.c * cos1 - _this2.d * sin1; _this2.d = _this2.c * sin1 + _this2.d * cos1; _this2.c = c11; var tx11 = _this2.tx * cos1 - _this2.ty * sin1; _this2.ty = _this2.tx * sin1 + _this2.ty * cos1; _this2.tx = tx11; } this._matrix.translate(this._point.x + ox,this._point.y + oy); flixel_util_FlxColorTransformUtil.setMultipliers(this._colorParams,borderRed,borderGreen,borderBlue,bAlpha); drawItem.addQuad(currFrame,this._matrix,this._colorParams); } var _g4 = 0; var _g5 = textLength; while(_g4 < _g5) { var j1 = _g4++; dataPos = j1 * 3; currFrame = this.font.charMap.h[this.textDrawData[dataPos] | 0]; currTileX = this.textDrawData[dataPos + 1]; currTileY = this.textDrawData[dataPos + 2]; if(this.clipRect != null) { var Rect1 = this.clipRect; clippedFrameRect.x = Rect1.x; clippedFrameRect.y = Rect1.y; clippedFrameRect.width = Rect1.width; clippedFrameRect.height = Rect1.height; if(Rect1._weak) { if(!Rect1._inPool) { Rect1._inPool = true; Rect1._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect1); } } var _this3 = clippedFrameRect; _this3.x += -currTileX; _this3.y += -currTileY; currFrame = currFrame.clipTo(clippedFrameRect); } currFrame.prepareMatrix(this._matrix); this._matrix.translate(currTileX - ox,currTileY - oy); this._matrix.scale(sx,sy); if(this.angle != 0) { var _this4 = this._matrix; var cos2 = this._cosAngle; var sin2 = this._sinAngle; var a12 = _this4.a * cos2 - _this4.b * sin2; _this4.b = _this4.a * sin2 + _this4.b * cos2; _this4.a = a12; var c12 = _this4.c * cos2 - _this4.d * sin2; _this4.d = _this4.c * sin2 + _this4.d * cos2; _this4.c = c12; var tx12 = _this4.tx * cos2 - _this4.ty * sin2; _this4.ty = _this4.tx * sin2 + _this4.ty * cos2; _this4.tx = tx12; } this._matrix.translate(this._point.x + ox,this._point.y + oy); flixel_util_FlxColorTransformUtil.setMultipliers(this._colorParams,textRed,textGreen,textBlue,tAlpha); drawItem.addQuad(currFrame,this._matrix,this._colorParams); } } if(!clippedFrameRect._inPool) { clippedFrameRect._inPool = true; clippedFrameRect._weak = false; flixel_math_FlxRect._pool.putUnsafe(clippedFrameRect); } } } ,set_clipRect: function(Rect) { flixel_FlxSprite.prototype.set_clipRect.call(this,Rect); if(!flixel_FlxG.renderBlit) { this.pendingTextBitmapChange = true; } return this.clipRect; } ,set_color: function(Color) { flixel_FlxSprite.prototype.set_color.call(this,Color); if(flixel_FlxG.renderBlit) { this.pendingTextBitmapChange = true; } return this.color; } ,set_alpha: function(value) { flixel_FlxSprite.prototype.set_alpha.call(this,value); if(flixel_FlxG.renderBlit) { this.pendingTextBitmapChange = true; } return value; } ,set_textColor: function(value) { if(this.textColor != value) { this.textColor = value; if(flixel_FlxG.renderBlit) { this.pendingPixelsChange = true; } } return value; } ,set_useTextColor: function(value) { if(this.useTextColor != value) { this.useTextColor = value; if(flixel_FlxG.renderBlit) { this.pendingPixelsChange = true; } } return value; } ,calcFrame: function(RunOnCpp) { if(RunOnCpp == null) { RunOnCpp = false; } if(flixel_FlxG.renderTile) { this.drawFrame(RunOnCpp); } else { flixel_FlxSprite.prototype.calcFrame.call(this,RunOnCpp); } } ,set_text: function(value) { if(value != this.text) { this.text = value; this.pendingTextChange = true; } return value; } ,updateText: function() { var tmp = this.autoUpperCase ? this.text.toUpperCase() : this.text; this._lines = tmp.split("\n"); if(!this.autoSize) { if(this.wrap != flixel_text_Wrap.NONE) { this.autoWrap(); } else { this.cutLines(); } } if(!this.multiLine) { this._lines = [this._lines[0]]; } var numLines = this._lines.length; var _g = 0; var _g1 = numLines; while(_g < _g1) { var i = _g++; this._lines[i] = StringTools.rtrim(this._lines[i]); } this.pendingTextChange = false; this.pendingTextBitmapChange = true; } ,computeTextSize: function() { var txtWidth = this.get_textWidth() + (this.borderSize | 0) * 2; var txtHeight = this.get_textHeight() + 2 * this.padding + (this.borderSize | 0) * 2; if(this.autoSize) { txtWidth += 2 * this.padding; } else { txtWidth = this.get_fieldWidth(); } this.frameWidth = txtWidth == 0 ? 1 : txtWidth; this.frameHeight = txtHeight == 0 ? 1 : txtHeight; } ,getLineWidth: function(lineIndex) { if(lineIndex < 0 || lineIndex >= this._lines.length) { return 0; } return this.getStringWidth(this._lines[lineIndex]); } ,getStringWidth: function(str) { var spaceWidth = this.font.spaceWidth; var tabWidth = spaceWidth * this.numSpacesInTab; var lineLength = UnicodeString.get_length(str); var lineWidth = this.font.minOffsetX; var charCode; var charWidth; var charFrame; var _g = 0; var _g1 = lineLength; while(_g < _g1) { var c = _g++; charCode = UnicodeString.charCodeAt(str,c); charWidth = 0; if(charCode == 32) { charWidth = spaceWidth; } else if(charCode == 9) { charWidth = tabWidth; } else if(this.font.charMap.h.hasOwnProperty(charCode)) { var _this = this.font; charWidth = _this.charAdvance.h.hasOwnProperty(charCode) ? _this.charAdvance.h[charCode] : 0; if(c == lineLength - 1) { charFrame = this.font.charMap.h[charCode]; charWidth = charFrame.sourceSize.x | 0; } } lineWidth += charWidth + this.letterSpacing; } if(lineLength > 0) { lineWidth -= this.letterSpacing; } return lineWidth | 0; } ,cutLines: function() { var _g = 0; var _g1 = this._lines.length; while(_g < _g1) { var i = _g++; var lineWidth = this.font.minOffsetX; var _g2 = 0; var _g3 = UnicodeString.get_length(this._lines[i]); while(_g2 < _g3) { var c = _g2++; var _g4 = UnicodeString.charCodeAt(this._lines[i],c); if(_g4 == null) { var charCode = _g4; var _this = this.font; lineWidth += _this.charAdvance.h.hasOwnProperty(charCode) ? _this.charAdvance.h[charCode] : 0; } else { switch(_g4) { case 9: lineWidth += this.font.spaceWidth * this.numSpacesInTab; break; case 32: lineWidth += this.font.spaceWidth; break; default: var charCode1 = _g4; var _this1 = this.font; lineWidth += _this1.charAdvance.h.hasOwnProperty(charCode1) ? _this1.charAdvance.h[charCode1] : 0; } } lineWidth += this.letterSpacing; if(lineWidth > this._fieldWidth - 2 * this.padding) { this._lines[i] = UnicodeString.substr(this._lines[i],0,c); break; } } } } ,autoWrap: function() { var newLines = []; var words; var _g = 0; var _g1 = this._lines; while(_g < _g1.length) { var line = _g1[_g]; ++_g; words = []; this.splitLineIntoWords(line,words); var _g2 = this.wrap; switch(_g2._hx_index) { case 0: throw haxe_Exception.thrown("autoWrap called with wrap:NONE"); case 1: this.wrapLineByCharacter(words,newLines); break; case 2: var splitWords = _g2.splitWords; this.wrapLineByWord(words,newLines,splitWords); break; } } this._lines = newLines; } ,splitLineIntoWords: function(line,words) { var word = ""; var wordUtf8 = ""; var isSpaceWord = false; var lineLength = UnicodeString.get_length(line); var c = 0; var charCode; while(c < lineLength) { charCode = UnicodeString.charCodeAt(line,c); word = wordUtf8; if(charCode == 32 || charCode == 9) { if(!isSpaceWord) { isSpaceWord = true; if(word != "") { words.push(word); wordUtf8 = ""; } } var s = wordUtf8 + String.fromCodePoint(charCode); if(s == null) { s = ""; } wordUtf8 = s; } else if(charCode == 45) { if(isSpaceWord && word != "") { isSpaceWord = false; words.push(word); words.push("-"); } else if(!isSpaceWord) { var charUtf8 = ""; var s1 = charUtf8 + String.fromCodePoint(charCode); if(s1 == null) { s1 = ""; } charUtf8 = s1; words.push(word + charUtf8); } wordUtf8 = ""; } else { if(isSpaceWord && word != "") { isSpaceWord = false; words.push(word); wordUtf8 = ""; } var s2 = wordUtf8 + String.fromCodePoint(charCode); if(s2 == null) { s2 = ""; } wordUtf8 = s2; } ++c; } word = wordUtf8; if(word != "") { words.push(word); } } ,wrapLineByWord: function(words,lines,wordSplit) { var _gthis = this; if(words.length == 0) { return; } var maxLineWidth = this._fieldWidth - 2 * this.padding; var startX = this.font.minOffsetX; var lineWidth = startX; var line = ""; var word = null; var wordWidth = 0; var i = 0; var addWord = function(word,wordWidth) { if(wordWidth == null) { wordWidth = -1; } line += word; lineWidth += (wordWidth < 0 ? _gthis.getWordWidth(word) : wordWidth) + _gthis.letterSpacing; }; var startNewLine = function() { if(line != "") { lines.push(line); } line = ""; lineWidth = startX; }; var addWordByChars = function() { var chunks = []; _gthis.wrapLineByCharacter([line,word],chunks); while(chunks.length > 1) lines.push(chunks.shift()); line = chunks.shift(); lineWidth = startX + _gthis.getWordWidth(line); i += 1; }; while(i < words.length) { word = words[i]; wordWidth = this.getWordWidth(word); if(lineWidth + wordWidth <= maxLineWidth) { addWord(word,wordWidth); i += 1; continue; } var firstCode = UnicodeString.charCodeAt(word,0); if(firstCode == 32 || firstCode == 9) { startNewLine(); i += 1; continue; } var wordFitsLine = startX + wordWidth <= maxLineWidth; switch(wordSplit._hx_index) { case 0: startNewLine(); addWord(word,wordWidth); i += 1; break; case 1: if(!wordFitsLine) { addWordByChars(); } else { startNewLine(); addWord(word,wordWidth); i += 1; } break; case 2: var min = wordSplit.minChars; if(word.length >= min) { addWordByChars(); } else { startNewLine(); addWord(word,wordWidth); i += 1; } break; case 3: var min1 = wordSplit.minPixels; if(wordWidth >= min1) { addWordByChars(); } else { startNewLine(); addWord(word,wordWidth); i += 1; } break; } if(lineWidth > maxLineWidth) { startNewLine(); } } if(line != "") { lines.push(line); } } ,wrapLineByCharacter: function(words,lines) { if(words.length == 0) { return; } var startX = this.font.minOffsetX; var line = ""; var lineWidth = startX; var _g = 0; while(_g < words.length) { var word = words[_g]; ++_g; var _g1 = 0; var _g2 = UnicodeString.get_length(word); while(_g1 < _g2) { var c = _g1++; var char = UnicodeString.charAt(word,c); var charWidth = this.getCharWidth(char); lineWidth += charWidth; if(lineWidth <= this._fieldWidth - 2 * this.padding) { line += char; lineWidth += this.letterSpacing; } else { var firstCode = UnicodeString.charCodeAt(word,0); if(firstCode == 32 || firstCode == 9) { lines.push(line); line = ""; lineWidth = startX; break; } else { if(line != "") { lines.push(line); } line = char; lineWidth = startX + charWidth + this.letterSpacing; } } } } if(line != "") { lines.push(line); } } ,getWordWidth: function(word) { var wordWidth = 0; var _g = 0; var _g1 = UnicodeString.get_length(word); while(_g < _g1) { var c = _g++; wordWidth += this.getCharWidth(UnicodeString.charAt(word,c)); } return wordWidth + (UnicodeString.get_length(word) - 1) * this.letterSpacing; } ,getCharWidth: function(char) { var _g = UnicodeString.charCodeAt(char,0); if(_g == null) { var charCode = _g; var _this = this.font; if(_this.charAdvance.h.hasOwnProperty(charCode)) { return _this.charAdvance.h[charCode]; } else { return 0; } } else { switch(_g) { case 9: return this.font.spaceWidth * this.numSpacesInTab; case 32: return this.font.spaceWidth; default: var charCode = _g; var _this = this.font; if(_this.charAdvance.h.hasOwnProperty(charCode)) { return _this.charAdvance.h[charCode]; } else { return 0; } } } } ,isSpaceWord: function(word) { var firstCode = UnicodeString.charCodeAt(word,0); if(firstCode != 32) { return firstCode == 9; } else { return true; } } ,updateTextBitmap: function(useTiles) { if(useTiles == null) { useTiles = false; } this.computeTextSize(); if(flixel_FlxG.renderBlit) { useTiles = false; } if(!useTiles) { this.textBitmap = flixel_util_FlxDestroyUtil.disposeIfNotEqual(this.textBitmap,this.frameWidth,this.frameHeight); if(this.textBitmap == null) { this.textBitmap = new openfl_display_BitmapData(this.frameWidth,this.frameHeight,true,0); } else { this.textBitmap.fillRect(this.textBitmap.rect,0); } this.textBitmap.lock(); } else if(flixel_FlxG.renderTile) { this.textData.splice(0,this.textData.length); } this._fieldWidth = this.frameWidth; var numLines = this._lines.length; var line; var lineWidth; var ox; var oy; var _g = 0; var _g1 = numLines; while(_g < _g1) { var i = _g++; line = this._lines[i]; lineWidth = this._linesWidth[i]; ox = this.font.minOffsetX; oy = i * (this.font.lineHeight + this.lineSpacing) + this.padding; if(this.alignment == "center") { ox += (this.frameWidth - lineWidth) / 2 | 0; } else if(this.alignment == "right") { ox += this.frameWidth - lineWidth - this.padding; } else { ox += this.padding; } this.drawLine(i,ox,oy,useTiles); } if(!useTiles) { this.textBitmap.unlock(); } this.pendingTextBitmapChange = false; } ,drawLine: function(lineIndex,posX,posY,useTiles) { if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(useTiles) { this.tileLine(lineIndex,posX,posY); } else { this.blitLine(lineIndex,posX,posY); } } ,blitLine: function(lineIndex,startX,startY) { var charFrame; var charCode; var curX = startX; var curY = startY; var line = this._lines[lineIndex]; var spaceWidth = this.font.spaceWidth; var lineLength = UnicodeString.get_length(line); var textWidth = this.get_textWidth(); if(this.alignment == "justify") { var numSpaces = 0; var _g = 0; var _g1 = lineLength; while(_g < _g1) { var i = _g++; charCode = UnicodeString.charCodeAt(line,i); if(charCode == 32) { ++numSpaces; } else if(charCode == 9) { numSpaces += this.numSpacesInTab; } } var lineWidth = this.getStringWidth(line); var totalSpacesWidth = numSpaces * this.font.spaceWidth; spaceWidth = (textWidth - lineWidth + totalSpacesWidth) / numSpaces | 0; } var tabWidth = spaceWidth * this.numSpacesInTab; var charUt8; var _g = 0; var _g1 = lineLength; while(_g < _g1) { var i = _g++; charCode = UnicodeString.charCodeAt(line,i); if(charCode == 32) { curX += spaceWidth + this.letterSpacing; } else if(charCode == 9) { curX += tabWidth + this.letterSpacing; } else { charFrame = this.font.charMap.h[charCode]; if(charFrame != null) { if(this.isUnicodeComboMark(charCode)) { var _this = this.font; this._flashPoint.setTo(curX - (_this.charAdvance.h.hasOwnProperty(charCode) ? _this.charAdvance.h[charCode] : 0) - this.letterSpacing,curY); } else { this._flashPoint.setTo(curX,curY); var _this1 = this.font; curX += (_this1.charAdvance.h.hasOwnProperty(charCode) ? _this1.charAdvance.h[charCode] : 0) + this.letterSpacing; } charFrame.paint(this.textBitmap,this._flashPoint,true); charUt8 = ""; var s = charUt8 + String.fromCodePoint(charCode); if(s == null) { s = ""; } charUt8 = s; } } } } ,tileLine: function(lineIndex,startX,startY) { if(!flixel_FlxG.renderTile) { return; } var charFrame; var pos = this.textData.length; var charCode; var curX = startX; var curY = startY; var line = this._lines[lineIndex]; var spaceWidth = this.font.spaceWidth; var lineLength = UnicodeString.get_length(line); var textWidth = this.get_textWidth(); if(this.alignment == "justify") { var numSpaces = 0; var _g = 0; var _g1 = lineLength; while(_g < _g1) { var i = _g++; charCode = UnicodeString.charCodeAt(line,i); if(charCode == 32) { ++numSpaces; } else if(charCode == 9) { numSpaces += this.numSpacesInTab; } } var lineWidth = this.getStringWidth(line); var totalSpacesWidth = numSpaces * this.font.spaceWidth; spaceWidth = (textWidth - lineWidth + totalSpacesWidth) / numSpaces | 0; } var tabWidth = spaceWidth * this.numSpacesInTab; var _g = 0; var _g1 = lineLength; while(_g < _g1) { var i = _g++; charCode = UnicodeString.charCodeAt(line,i); if(charCode == 32) { curX += spaceWidth + this.letterSpacing; } else if(charCode == 9) { curX += tabWidth + this.letterSpacing; } else { charFrame = this.font.charMap.h[charCode]; if(charFrame != null) { this.textData[pos++] = charCode; if(this.isUnicodeComboMark(charCode)) { var _this = this.font; this.textData[pos++] = curX - (_this.charAdvance.h.hasOwnProperty(charCode) ? _this.charAdvance.h[charCode] : 0) - this.letterSpacing; } else { this.textData[pos++] = curX; var _this1 = this.font; curX += (_this1.charAdvance.h.hasOwnProperty(charCode) ? _this1.charAdvance.h[charCode] : 0) + this.letterSpacing; } this.textData[pos++] = curY; } } } } ,updatePixels: function(useTiles) { if(useTiles == null) { useTiles = false; } var colorForFill = this.background ? this.backgroundColor : 0; var bitmap = null; if(flixel_FlxG.renderBlit) { if(this.get_pixels() == null || (this.frameWidth != this.get_pixels().width || this.frameHeight != this.get_pixels().height)) { this.set_pixels(new openfl_display_BitmapData(this.frameWidth,this.frameHeight,true,colorForFill)); } else { this.get_pixels().fillRect(this.graphic.bitmap.rect,colorForFill); } bitmap = this.get_pixels(); } else { if(!useTiles) { if(this.framePixels == null || (this.frameWidth != this.framePixels.width || this.frameHeight != this.framePixels.height)) { this.framePixels = flixel_util_FlxDestroyUtil.dispose(this.framePixels); this.framePixels = new openfl_display_BitmapData(this.frameWidth,this.frameHeight,true,colorForFill); } else { this.framePixels.fillRect(this.framePixels.rect,colorForFill); } bitmap = this.framePixels; } else { this.textDrawData.splice(0,this.textDrawData.length); this.borderDrawData.splice(0,this.borderDrawData.length); } this.set_width(this.frameWidth); this.set_height(this.frameHeight); this.origin.set_x(this.frameWidth * 0.5); this.origin.set_y(this.frameHeight * 0.5); } if(!useTiles) { bitmap.lock(); } var isFront = false; var iterations = this.borderSize * this.borderQuality | 0; if(iterations <= 0) { iterations = 1; } var delta = this.borderSize / iterations | 0; var iterationsX = 1; var iterationsY = 1; var deltaX = 1; var deltaY = 1; if(this.borderStyle == flixel_text_FlxTextBorderStyle.SHADOW) { iterationsX = Math.round(Math.abs(this.shadowOffset.x) * this.borderQuality); if(iterationsX <= 0) { iterationsX = 1; } iterationsY = Math.round(Math.abs(this.shadowOffset.y) * this.borderQuality); if(iterationsY <= 0) { iterationsY = 1; } deltaX = Math.round(this.shadowOffset.x / iterationsX); deltaY = Math.round(this.shadowOffset.y / iterationsY); } switch(this.borderStyle._hx_index) { case 0: break; case 1: var _g = 0; var _g1 = iterationsY; while(_g < _g1) { var iterY = _g++; var _g2 = 0; var _g3 = iterationsX; while(_g2 < _g3) { var iterX = _g2++; this.drawText(deltaX * (iterX + 1),deltaY * (iterY + 1),isFront,bitmap,useTiles); } } break; case 2: var itd = 0; var _g = 0; var _g1 = iterations; while(_g < _g1) { var iter = _g++; itd = delta * (iter + 1); this.drawText(-itd,-itd,isFront,bitmap,useTiles); this.drawText(0,-itd,isFront,bitmap,useTiles); this.drawText(itd,-itd,isFront,bitmap,useTiles); this.drawText(-itd,0,isFront,bitmap,useTiles); this.drawText(itd,0,isFront,bitmap,useTiles); this.drawText(-itd,itd,isFront,bitmap,useTiles); this.drawText(0,itd,isFront,bitmap,useTiles); this.drawText(itd,itd,isFront,bitmap,useTiles); } break; case 3: var itd = 0; var _g = 0; var _g1 = iterations; while(_g < _g1) { var iter = _g++; itd = delta * (iter + 1); this.drawText(-itd,-itd,isFront,bitmap,useTiles); this.drawText(itd,-itd,isFront,bitmap,useTiles); this.drawText(-itd,itd,isFront,bitmap,useTiles); this.drawText(itd,itd,isFront,bitmap,useTiles); } break; } isFront = true; this.drawText(0,0,isFront,bitmap,useTiles); if(!useTiles) { bitmap.unlock(); } if(flixel_FlxG.renderBlit) { this.dirty = true; } this.pendingPixelsChange = false; } ,drawText: function(posX,posY,isFront,bitmap,useTiles) { if(useTiles == null) { useTiles = false; } if(isFront == null) { isFront = true; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(useTiles) { this.tileText(posX,posY,isFront); } else { this.blitText(posX,posY,isFront,bitmap); } } ,blitText: function(posX,posY,isFront,bitmap) { if(isFront == null) { isFront = true; } this._matrix.identity(); this._matrix.translate(posX,posY); var colorToApply = -1; if(isFront && this.useTextColor) { colorToApply = this.textColor; } else if(!isFront) { colorToApply = this.borderColor; } flixel_util_FlxColorTransformUtil.setMultipliers(this._colorParams,(colorToApply >> 16 & 255) / 255,(colorToApply >> 8 & 255) / 255,(colorToApply & 255) / 255,(colorToApply >> 24 & 255) / 255); if(isFront && !this.useTextColor) { this._flashRect.setTo(0,0,this.textBitmap.width,this.textBitmap.height); bitmap.copyPixels(this.textBitmap,this._flashRect,this._flashPointZero,null,null,true); } else { bitmap.draw(this.textBitmap,this._matrix,this._colorParams); } } ,tileText: function(posX,posY,isFront) { if(isFront == null) { isFront = true; } if(!flixel_FlxG.renderTile) { return; } var data = isFront ? this.textDrawData : this.borderDrawData; var pos = data.length; var textPos; var textLen = this.textData.length / 3 | 0; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; var rect1 = rect; var frameVisible; var _g = 0; var _g1 = textLen; while(_g < _g1) { var i = _g++; textPos = 3 * i; frameVisible = true; if(this.clipRect != null) { var Rect = this.clipRect; rect1.x = Rect.x; rect1.y = Rect.y; rect1.width = Rect.width; rect1.height = Rect.height; if(Rect._weak) { if(!Rect._inPool) { Rect._inPool = true; Rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(Rect); } } var _this = rect1; var dy = -this.textData[textPos + 2] - posY; _this.x += -this.textData[textPos + 1] - posX; _this.y += dy; frameVisible = this.font.charMap.h[this.textData[textPos] | 0].clipTo(rect1).type != 2; } if(frameVisible) { data[pos++] = this.textData[textPos]; data[pos++] = this.textData[textPos + 1] + posX; data[pos++] = this.textData[textPos + 2] + posY; } } if(!rect1._inPool) { rect1._inPool = true; rect1._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect1); } } ,setBorderStyle: function(Style,Color,Size,Quality) { if(Quality == null) { Quality = 1; } if(Size == null) { Size = 1; } if(Color == null) { Color = 0; } this.set_borderStyle(Style); this.set_borderColor(Color); this.set_borderSize(Size); this.set_borderQuality(Quality); if(this.borderStyle == flixel_text_FlxTextBorderStyle.SHADOW) { var this1 = this.shadowOffset; var x = this.borderSize; var y = this.borderSize; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } this.pendingTextBitmapChange = true; } ,get_fieldWidth: function() { if(this.autoSize) { return this.get_textWidth(); } else { return this._fieldWidth; } } ,set_fieldWidth: function(value) { if(value <= 1) { value = 1; } if(value != this._fieldWidth) { if(value <= 0) { this.set_autoSize(true); } this.pendingTextChange = true; } return this._fieldWidth = value; } ,set_alignment: function(value) { if(this.alignment != value && this.alignment != "justify") { this.pendingTextBitmapChange = true; } return this.alignment = value; } ,set_multiLine: function(value) { if(this.multiLine != value) { this.pendingTextChange = true; } return this.multiLine = value; } ,set_font: function(value) { if(this.font != value) { this.pendingTextChange = true; } return this.font = value; } ,set_lineSpacing: function(value) { if(this.lineSpacing != value) { this.pendingTextBitmapChange = true; } return this.lineSpacing = value; } ,set_letterSpacing: function(value) { if(value != this.letterSpacing) { this.pendingTextChange = true; } return this.letterSpacing = value; } ,set_autoUpperCase: function(value) { if(this.autoUpperCase != value) { this.pendingTextChange = true; } return this.autoUpperCase = value; } ,set_wrap: function(value) { if(this.wrap != value) { this.pendingTextChange = true; } return this.wrap = value; } ,get_wordWrap: function() { return this.wrap != flixel_text_Wrap.NONE; } ,set_wordWrap: function(value) { this.set_wrap(value ? flixel_text_Wrap.WORD(flixel_text_WordSplitConditions.NEVER) : flixel_text_Wrap.NONE); return value; } ,get_wrapByWord: function() { var _g = this.wrap; if(_g._hx_index == 2) { var _g1 = _g.splitWords; return true; } else { return false; } } ,set_wrapByWord: function(value) { this.set_wrap(value ? flixel_text_Wrap.WORD(flixel_text_WordSplitConditions.NEVER) : flixel_text_Wrap.CHAR); return value; } ,set_autoSize: function(value) { if(this.autoSize != value) { this.pendingTextChange = true; } return this.autoSize = value; } ,set_padding: function(value) { if(value != this.padding) { this.pendingTextChange = true; } return this.padding = value; } ,set_numSpacesInTab: function(value) { if(this.numSpacesInTab != value && value > 0) { this.numSpacesInTab = value; this.pendingTextChange = true; } return value; } ,set_background: function(value) { if(this.background != value) { this.background = value; if(flixel_FlxG.renderBlit) { this.pendingPixelsChange = true; } } return value; } ,set_backgroundColor: function(value) { if(this.backgroundColor != value) { this.backgroundColor = value; if(flixel_FlxG.renderBlit) { this.pendingPixelsChange = true; } } return value; } ,set_borderStyle: function(style) { if(style != this.borderStyle) { this.borderStyle = style; this.pendingTextBitmapChange = true; } return this.borderStyle; } ,set_borderColor: function(value) { if(this.borderColor != value) { this.borderColor = value; if(flixel_FlxG.renderBlit) { this.pendingPixelsChange = true; } } return value; } ,set_borderSize: function(value) { if(value != this.borderSize) { this.borderSize = value; if(this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) { this.pendingTextBitmapChange = true; } } return value; } ,set_borderQuality: function(value) { value = Math.min(1,Math.max(0,value)); if(value != this.borderQuality) { this.borderQuality = value; if(this.borderStyle != flixel_text_FlxTextBorderStyle.NONE) { this.pendingTextBitmapChange = true; } } return value; } ,get_numLines: function() { return this._lines.length; } ,get_textWidth: function() { var max = 0; var numLines = this._lines.length; var lineWidth; this._linesWidth = []; var _g = 0; var _g1 = numLines; while(_g < _g1) { var i = _g++; lineWidth = this.getLineWidth(i); this._linesWidth[i] = lineWidth; if(max <= lineWidth) { max = lineWidth; } } return max; } ,get_textHeight: function() { return (this.get_lineHeight() + this.lineSpacing) * this._lines.length - this.lineSpacing; } ,get_lineHeight: function() { return this.font.lineHeight; } ,get_width: function() { var useTiles = true; if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } return flixel_FlxSprite.prototype.get_width.call(this); } ,get_height: function() { var useTiles = true; if(useTiles == null) { useTiles = false; } if(flixel_FlxG.renderBlit) { useTiles = false; } if(this.pendingTextChange) { this.updateText(); this.pendingTextBitmapChange = true; } if(this.pendingTextBitmapChange) { this.updateTextBitmap(useTiles); this.pendingPixelsChange = true; } if(this.pendingPixelsChange) { this.updatePixels(useTiles); } return flixel_FlxSprite.prototype.get_height.call(this); } ,isUnicodeComboMark: function(Code) { if(!(Code >= 768 && Code <= 879 || Code >= 6832 && Code <= 6911 || Code >= 7616 && Code <= 7679 || Code >= 8400 && Code <= 8447)) { if(Code >= 65056) { return Code <= 65071; } else { return false; } } else { return true; } } ,__class__: flixel_text_FlxBitmapText ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_fieldWidth:"set_fieldWidth",get_fieldWidth:"get_fieldWidth",get_numLines:"get_numLines",set_multiLine:"set_multiLine",set_backgroundColor:"set_backgroundColor",set_background:"set_background",set_borderQuality:"set_borderQuality",set_borderSize:"set_borderSize",set_borderColor:"set_borderColor",set_borderStyle:"set_borderStyle",set_useTextColor:"set_useTextColor",set_textColor:"set_textColor",set_numSpacesInTab:"set_numSpacesInTab",get_lineHeight:"get_lineHeight",get_textHeight:"get_textHeight",get_textWidth:"get_textWidth",set_padding:"set_padding",set_autoSize:"set_autoSize",set_wrapByWord:"set_wrapByWord",get_wrapByWord:"get_wrapByWord",set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_wrap:"set_wrap",set_autoUpperCase:"set_autoUpperCase",set_letterSpacing:"set_letterSpacing",set_lineSpacing:"set_lineSpacing",set_alignment:"set_alignment",set_text:"set_text",set_font:"set_font"}) }); var flixel_text_Wrap = $hxEnums["flixel.text.Wrap"] = { __ename__:"flixel.text.Wrap",__constructs__:null ,NONE: {_hx_name:"NONE",_hx_index:0,__enum__:"flixel.text.Wrap",toString:$estr} ,CHAR: {_hx_name:"CHAR",_hx_index:1,__enum__:"flixel.text.Wrap",toString:$estr} ,WORD: ($_=function(splitWords) { return {_hx_index:2,splitWords:splitWords,__enum__:"flixel.text.Wrap",toString:$estr}; },$_._hx_name="WORD",$_.__params__ = ["splitWords"],$_) }; flixel_text_Wrap.__constructs__ = [flixel_text_Wrap.NONE,flixel_text_Wrap.CHAR,flixel_text_Wrap.WORD]; flixel_text_Wrap.__empty_constructs__ = [flixel_text_Wrap.NONE,flixel_text_Wrap.CHAR]; var flixel_text_WordSplitConditions = $hxEnums["flixel.text.WordSplitConditions"] = { __ename__:"flixel.text.WordSplitConditions",__constructs__:null ,NEVER: {_hx_name:"NEVER",_hx_index:0,__enum__:"flixel.text.WordSplitConditions",toString:$estr} ,LINE_WIDTH: {_hx_name:"LINE_WIDTH",_hx_index:1,__enum__:"flixel.text.WordSplitConditions",toString:$estr} ,LENGTH: ($_=function(minChars) { return {_hx_index:2,minChars:minChars,__enum__:"flixel.text.WordSplitConditions",toString:$estr}; },$_._hx_name="LENGTH",$_.__params__ = ["minChars"],$_) ,WIDTH: ($_=function(minPixels) { return {_hx_index:3,minPixels:minPixels,__enum__:"flixel.text.WordSplitConditions",toString:$estr}; },$_._hx_name="WIDTH",$_.__params__ = ["minPixels"],$_) }; flixel_text_WordSplitConditions.__constructs__ = [flixel_text_WordSplitConditions.NEVER,flixel_text_WordSplitConditions.LINE_WIDTH,flixel_text_WordSplitConditions.LENGTH,flixel_text_WordSplitConditions.WIDTH]; flixel_text_WordSplitConditions.__empty_constructs__ = [flixel_text_WordSplitConditions.NEVER,flixel_text_WordSplitConditions.LINE_WIDTH]; var flixel_text_FlxTextFormat = function(fontColor,bold,italic,borderColor,underline) { this.format = new openfl_text_TextFormat(null,null,fontColor,bold,italic,underline); this.borderColor = borderColor == null ? 0 : borderColor; }; $hxClasses["flixel.text.FlxTextFormat"] = flixel_text_FlxTextFormat; flixel_text_FlxTextFormat.__name__ = "flixel.text.FlxTextFormat"; flixel_text_FlxTextFormat.prototype = { leading: null ,borderColor: null ,format: null ,set_leading: function(value) { this.format.leading = value; return value; } ,__class__: flixel_text_FlxTextFormat ,__properties__: {set_leading:"set_leading"} }; var flixel_text__$FlxText_FlxTextFormatRange = function(format,start,end) { this.range = new flixel_util_helpers_FlxRange(start,end); this.format = format; }; $hxClasses["flixel.text._FlxText.FlxTextFormatRange"] = flixel_text__$FlxText_FlxTextFormatRange; flixel_text__$FlxText_FlxTextFormatRange.__name__ = "flixel.text._FlxText.FlxTextFormatRange"; flixel_text__$FlxText_FlxTextFormatRange.prototype = { range: null ,format: null ,__class__: flixel_text__$FlxText_FlxTextFormatRange }; var flixel_text_FlxTextFormatMarkerPair = function(format,marker) { this.format = format; this.marker = marker; }; $hxClasses["flixel.text.FlxTextFormatMarkerPair"] = flixel_text_FlxTextFormatMarkerPair; flixel_text_FlxTextFormatMarkerPair.__name__ = "flixel.text.FlxTextFormatMarkerPair"; flixel_text_FlxTextFormatMarkerPair.prototype = { format: null ,marker: null ,__class__: flixel_text_FlxTextFormatMarkerPair }; var flixel_text_FlxTextBorderStyle = $hxEnums["flixel.text.FlxTextBorderStyle"] = { __ename__:"flixel.text.FlxTextBorderStyle",__constructs__:null ,NONE: {_hx_name:"NONE",_hx_index:0,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr} ,SHADOW: {_hx_name:"SHADOW",_hx_index:1,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr} ,OUTLINE: {_hx_name:"OUTLINE",_hx_index:2,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr} ,OUTLINE_FAST: {_hx_name:"OUTLINE_FAST",_hx_index:3,__enum__:"flixel.text.FlxTextBorderStyle",toString:$estr} }; flixel_text_FlxTextBorderStyle.__constructs__ = [flixel_text_FlxTextBorderStyle.NONE,flixel_text_FlxTextBorderStyle.SHADOW,flixel_text_FlxTextBorderStyle.OUTLINE,flixel_text_FlxTextBorderStyle.OUTLINE_FAST]; flixel_text_FlxTextBorderStyle.__empty_constructs__ = [flixel_text_FlxTextBorderStyle.NONE,flixel_text_FlxTextBorderStyle.SHADOW,flixel_text_FlxTextBorderStyle.OUTLINE,flixel_text_FlxTextBorderStyle.OUTLINE_FAST]; var flixel_text_FlxTextAlign = {}; flixel_text_FlxTextAlign.fromOpenFL = function(align) { switch(align) { case 0: return "center"; case 2: return "justify"; case 3: return "left"; case 4: return "right"; default: return "left"; } }; flixel_text_FlxTextAlign.toOpenFL = function(align) { switch(align) { case "center": return 0; case "justify": return 2; case "left": return 3; case "right": return 4; default: return 3; } }; var flixel_tile_FlxTilemapAutoTiling = $hxEnums["flixel.tile.FlxTilemapAutoTiling"] = { __ename__:"flixel.tile.FlxTilemapAutoTiling",__constructs__:null ,OFF: {_hx_name:"OFF",_hx_index:0,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr} ,AUTO: {_hx_name:"AUTO",_hx_index:1,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr} ,ALT: {_hx_name:"ALT",_hx_index:2,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr} ,FULL: {_hx_name:"FULL",_hx_index:3,__enum__:"flixel.tile.FlxTilemapAutoTiling",toString:$estr} }; flixel_tile_FlxTilemapAutoTiling.__constructs__ = [flixel_tile_FlxTilemapAutoTiling.OFF,flixel_tile_FlxTilemapAutoTiling.AUTO,flixel_tile_FlxTilemapAutoTiling.ALT,flixel_tile_FlxTilemapAutoTiling.FULL]; flixel_tile_FlxTilemapAutoTiling.__empty_constructs__ = [flixel_tile_FlxTilemapAutoTiling.OFF,flixel_tile_FlxTilemapAutoTiling.AUTO,flixel_tile_FlxTilemapAutoTiling.ALT,flixel_tile_FlxTilemapAutoTiling.FULL]; var flixel_tile_FlxTile = function(tilemap,index,width,height,visible,allowCollisions) { this.mapIndex = 0; this.callbackFunction = null; flixel_FlxObject.call(this,0,0,width,height); this.set_immovable(true); this.set_moves(false); this.tilemap = tilemap; this.index = index; this.set_visible(visible); this.set_allowCollisions(allowCollisions); }; $hxClasses["flixel.tile.FlxTile"] = flixel_tile_FlxTile; flixel_tile_FlxTile.__name__ = "flixel.tile.FlxTile"; flixel_tile_FlxTile.__super__ = flixel_FlxObject; flixel_tile_FlxTile.prototype = $extend(flixel_FlxObject.prototype,{ callbackFunction: null ,filter: null ,tilemap: null ,index: null ,mapIndex: null ,frame: null ,destroy: function() { this.callbackFunction = null; this.tilemap = null; this.frame = null; flixel_FlxObject.prototype.destroy.call(this); } ,__class__: flixel_tile_FlxTile }); var flixel_tile_FlxTileblock = function(x,y,width,height) { flixel_FlxSprite.call(this,x,y); this.makeGraphic(width,height,0,true); this.set_active(false); this.set_immovable(true); this.set_moves(false); }; $hxClasses["flixel.tile.FlxTileblock"] = flixel_tile_FlxTileblock; flixel_tile_FlxTileblock.__name__ = "flixel.tile.FlxTileblock"; flixel_tile_FlxTileblock.__super__ = flixel_FlxSprite; flixel_tile_FlxTileblock.prototype = $extend(flixel_FlxSprite.prototype,{ tileSprite: null ,destroy: function() { this.tileSprite = flixel_util_FlxDestroyUtil.destroy(this.tileSprite); flixel_FlxSprite.prototype.destroy.call(this); } ,loadFrames: function(tileFrames,empties) { if(empties == null) { empties = 0; } if(tileFrames == null) { return this; } this.tileSprite = this.tileSprite == null ? new flixel_FlxSprite() : this.tileSprite; this.tileSprite.set_frames(tileFrames); var spriteWidth = this.tileSprite.get_width() | 0; var spriteHeight = this.tileSprite.get_height() | 0; var total = this.tileSprite.get_numFrames() + empties; var regen = false; if(this.get_width() % this.tileSprite.get_width() != 0) { this.set_width((this.get_width() / spriteWidth + 1 | 0) * spriteWidth); regen = true; } if(this.get_height() % this.tileSprite.get_height() != 0) { this.set_height((this.get_height() / spriteHeight + 1 | 0) * spriteHeight); regen = true; } if(regen) { this.makeGraphic(this.get_width() | 0,this.get_height() | 0,0,true); } else { flixel_util_FlxSpriteUtil.fill(this,0); } var row = 0; var column; var destinationX; var destinationY = 0; var widthInTiles = this.get_width() / spriteWidth | 0; var heightInTiles = this.get_height() / spriteHeight | 0; while(row < heightInTiles) { destinationX = 0; column = 0; while(column < widthInTiles) { if(flixel_FlxG.random.float() * total > empties) { this.tileSprite.animation.randomFrame(); this.tileSprite.drawFrame(); this.stamp(this.tileSprite,destinationX,destinationY); } destinationX += spriteWidth; ++column; } destinationY += spriteHeight; ++row; } this.dirty = true; return this; } ,loadTiles: function(tileGraphic,tileWidth,tileHeight,empties) { if(empties == null) { empties = 0; } if(tileHeight == null) { tileHeight = 0; } if(tileWidth == null) { tileWidth = 0; } if(tileGraphic == null) { return this; } var graph = flixel_FlxG.bitmap.add(tileGraphic); if(graph == null) { return this; } if(tileWidth == 0) { tileWidth = graph.height; if(tileWidth > graph.width) { tileWidth = graph.width; } } if(tileHeight == 0) { tileHeight = tileWidth; if(tileHeight > graph.height) { tileHeight = graph.height; } } var x = tileWidth; var y = tileHeight; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileFrames = flixel_graphics_frames_FlxTileFrames.fromGraphic(graph,point); return this.loadFrames(tileFrames,empties); } ,setTile: function(x,y,index) { this.tileSprite.animation.set_frameIndex(index); this.stamp(this.tileSprite,x * (this.tileSprite.get_width() | 0),y * (this.tileSprite.get_height() | 0)); this.dirty = true; } ,__class__: flixel_tile_FlxTileblock }); var flixel_tile__$FlxTilemap_IEmbeddedBitmapData = function() { }; $hxClasses["flixel.tile._FlxTilemap.IEmbeddedBitmapData"] = flixel_tile__$FlxTilemap_IEmbeddedBitmapData; flixel_tile__$FlxTilemap_IEmbeddedBitmapData.__name__ = "flixel.tile._FlxTilemap.IEmbeddedBitmapData"; flixel_tile__$FlxTilemap_IEmbeddedBitmapData.__isInterface__ = true; flixel_tile__$FlxTilemap_IEmbeddedBitmapData.prototype = { onLoad: null ,__class__: flixel_tile__$FlxTilemap_IEmbeddedBitmapData }; var flixel_tile__$FlxTilemap_RawGraphicAuto = 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(flixel_tile__$FlxTilemap_RawGraphicAuto.preload != null) { this.__fromImage(flixel_tile__$FlxTilemap_RawGraphicAuto.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_tile__$FlxTilemap_RawGraphicAuto.resourceName),flixel_tile__$FlxTilemap_RawGraphicAuto.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_tile__$FlxTilemap_RawGraphicAuto.preload == null) { flixel_tile__$FlxTilemap_RawGraphicAuto.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.tile._FlxTilemap.RawGraphicAuto"] = flixel_tile__$FlxTilemap_RawGraphicAuto; flixel_tile__$FlxTilemap_RawGraphicAuto.__name__ = "flixel.tile._FlxTilemap.RawGraphicAuto"; flixel_tile__$FlxTilemap_RawGraphicAuto.preload = null; flixel_tile__$FlxTilemap_RawGraphicAuto.__super__ = openfl_display_BitmapData; flixel_tile__$FlxTilemap_RawGraphicAuto.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_tile__$FlxTilemap_RawGraphicAuto }); var flixel_tile_GraphicAuto = function() { var _gthis = this; flixel_tile__$FlxTilemap_RawGraphicAuto.call(this,128,8,true,-1,function(_) { if(_gthis.onLoad != null) { _gthis.onLoad(); } }); this.width = 128; this.height = 8; }; $hxClasses["flixel.tile.GraphicAuto"] = flixel_tile_GraphicAuto; flixel_tile_GraphicAuto.__name__ = "flixel.tile.GraphicAuto"; flixel_tile_GraphicAuto.__interfaces__ = [flixel_tile__$FlxTilemap_IEmbeddedBitmapData]; flixel_tile_GraphicAuto.__super__ = flixel_tile__$FlxTilemap_RawGraphicAuto; flixel_tile_GraphicAuto.prototype = $extend(flixel_tile__$FlxTilemap_RawGraphicAuto.prototype,{ onLoad: null ,__class__: flixel_tile_GraphicAuto }); var flixel_tile__$FlxTilemap_RawGraphicAutoAlt = 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(flixel_tile__$FlxTilemap_RawGraphicAutoAlt.preload != null) { this.__fromImage(flixel_tile__$FlxTilemap_RawGraphicAutoAlt.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_tile__$FlxTilemap_RawGraphicAutoAlt.resourceName),flixel_tile__$FlxTilemap_RawGraphicAutoAlt.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_tile__$FlxTilemap_RawGraphicAutoAlt.preload == null) { flixel_tile__$FlxTilemap_RawGraphicAutoAlt.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.tile._FlxTilemap.RawGraphicAutoAlt"] = flixel_tile__$FlxTilemap_RawGraphicAutoAlt; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.__name__ = "flixel.tile._FlxTilemap.RawGraphicAutoAlt"; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.preload = null; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.__super__ = openfl_display_BitmapData; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_tile__$FlxTilemap_RawGraphicAutoAlt }); var flixel_tile_GraphicAutoAlt = function() { var _gthis = this; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.call(this,128,8,true,-1,function(_) { if(_gthis.onLoad != null) { _gthis.onLoad(); } }); this.width = 128; this.height = 8; }; $hxClasses["flixel.tile.GraphicAutoAlt"] = flixel_tile_GraphicAutoAlt; flixel_tile_GraphicAutoAlt.__name__ = "flixel.tile.GraphicAutoAlt"; flixel_tile_GraphicAutoAlt.__interfaces__ = [flixel_tile__$FlxTilemap_IEmbeddedBitmapData]; flixel_tile_GraphicAutoAlt.__super__ = flixel_tile__$FlxTilemap_RawGraphicAutoAlt; flixel_tile_GraphicAutoAlt.prototype = $extend(flixel_tile__$FlxTilemap_RawGraphicAutoAlt.prototype,{ onLoad: null ,__class__: flixel_tile_GraphicAutoAlt }); var flixel_tile__$FlxTilemap_RawGraphicAutoFull = 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(flixel_tile__$FlxTilemap_RawGraphicAutoFull.preload != null) { this.__fromImage(flixel_tile__$FlxTilemap_RawGraphicAutoFull.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(flixel_tile__$FlxTilemap_RawGraphicAutoFull.resourceName),flixel_tile__$FlxTilemap_RawGraphicAutoFull.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(flixel_tile__$FlxTilemap_RawGraphicAutoFull.preload == null) { flixel_tile__$FlxTilemap_RawGraphicAutoFull.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["flixel.tile._FlxTilemap.RawGraphicAutoFull"] = flixel_tile__$FlxTilemap_RawGraphicAutoFull; flixel_tile__$FlxTilemap_RawGraphicAutoFull.__name__ = "flixel.tile._FlxTilemap.RawGraphicAutoFull"; flixel_tile__$FlxTilemap_RawGraphicAutoFull.preload = null; flixel_tile__$FlxTilemap_RawGraphicAutoFull.__super__ = openfl_display_BitmapData; flixel_tile__$FlxTilemap_RawGraphicAutoFull.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: flixel_tile__$FlxTilemap_RawGraphicAutoFull }); var flixel_tile_GraphicAutoFull = function() { var _gthis = this; flixel_tile__$FlxTilemap_RawGraphicAutoFull.call(this,256,48,true,-1,function(_) { if(_gthis.onLoad != null) { _gthis.onLoad(); } }); this.width = 256; this.height = 48; }; $hxClasses["flixel.tile.GraphicAutoFull"] = flixel_tile_GraphicAutoFull; flixel_tile_GraphicAutoFull.__name__ = "flixel.tile.GraphicAutoFull"; flixel_tile_GraphicAutoFull.__interfaces__ = [flixel_tile__$FlxTilemap_IEmbeddedBitmapData]; flixel_tile_GraphicAutoFull.__super__ = flixel_tile__$FlxTilemap_RawGraphicAutoFull; flixel_tile_GraphicAutoFull.prototype = $extend(flixel_tile__$FlxTilemap_RawGraphicAutoFull.prototype,{ onLoad: null ,__class__: flixel_tile_GraphicAutoFull }); var flixel_tile_FlxTilemapBuffer = function(tileWidth,tileHeight,widthInTiles,heightInTiles,camera,scaleX,scaleY) { if(scaleY == null) { scaleY = 1.0; } if(scaleX == null) { scaleX = 1.0; } this.antialiasing = false; this.columns = 0; this.rows = 0; this.dirty = false; this.height = 0; this.width = 0; this.y = 0; this.x = 0; this.resize(tileWidth,tileHeight,widthInTiles,heightInTiles,camera,scaleX,scaleY); }; $hxClasses["flixel.tile.FlxTilemapBuffer"] = flixel_tile_FlxTilemapBuffer; flixel_tile_FlxTilemapBuffer.__name__ = "flixel.tile.FlxTilemapBuffer"; flixel_tile_FlxTilemapBuffer.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_tile_FlxTilemapBuffer.prototype = { x: null ,y: null ,width: null ,height: null ,dirty: null ,rows: null ,columns: null ,pixelPerfectRender: null ,pixels: null ,blend: null ,antialiasing: null ,_flashRect: null ,_matrix: null ,_prevTilemapX: null ,_prevTilemapY: null ,_prevTilemapScaleX: null ,_prevTilemapScaleY: null ,_prevTilemapScrollX: null ,_prevTilemapScrollY: null ,_prevCameraScrollX: null ,_prevCameraScrollY: null ,_prevCameraScaleX: null ,_prevCameraScaleY: null ,_prevCameraWidth: null ,_prevCameraHeight: null ,resize: function(tileWidth,tileHeight,widthInTiles,heightInTiles,camera,scaleX,scaleY) { if(scaleY == null) { scaleY = 1.0; } if(scaleX == null) { scaleX = 1.0; } this.updateColumns(tileWidth,widthInTiles,scaleX,camera); this.updateRows(tileHeight,heightInTiles,scaleY,camera); if(flixel_FlxG.renderBlit) { var newWidth = this.columns * tileWidth | 0; var newHeight = this.rows * tileHeight | 0; if(this.pixels == null) { this.pixels = new openfl_display_BitmapData(newWidth,newHeight,true,0); this._flashRect = new openfl_geom_Rectangle(0,0,newWidth,newHeight); this._matrix = new flixel_math_FlxMatrix(); this.dirty = true; } else if(this.pixels.width != newWidth || this.pixels.height != newHeight) { flixel_util_FlxDestroyUtil.dispose(this.pixels); this.pixels = new openfl_display_BitmapData(newWidth,newHeight,true,0); this._flashRect.setTo(0,0,newWidth,newHeight); this.dirty = true; } } } ,destroy: function() { if(flixel_FlxG.renderBlit) { this.pixels = flixel_util_FlxDestroyUtil.dispose(this.pixels); this.blend = null; this._matrix = null; this._flashRect = null; } } ,fill: function(color) { if(color == null) { color = 0; } if(flixel_FlxG.renderBlit) { this.pixels.fillRect(this._flashRect,color); } } ,draw: function(camera,flashPoint,scaleX,scaleY) { if(scaleY == null) { scaleY = 1.0; } if(scaleX == null) { scaleX = 1.0; } if(this.isPixelPerfectRender(camera)) { flashPoint.x = Math.floor(flashPoint.x); flashPoint.y = Math.floor(flashPoint.y); } if(this.isPixelPerfectRender(camera) && (scaleX == 1.0 && scaleY == 1.0) && this.blend == null) { camera.copyPixels(null,this.pixels,this._flashRect,flashPoint,null,null,true); } else { this._matrix.identity(); this._matrix.scale(scaleX,scaleY); this._matrix.translate(flashPoint.x,flashPoint.y); camera.drawPixels(null,this.pixels,this._matrix,null,this.blend,this.antialiasing); } } ,colorTransform: function(transform) { this.pixels.colorTransform(this._flashRect,transform); } ,updateColumns: function(tileWidth,widthInTiles,scaleX,camera) { if(scaleX == null) { scaleX = 1.0; } if(widthInTiles < 0) { widthInTiles = 0; } if(camera == null) { camera = flixel_FlxG.camera; } this.columns = Math.ceil((camera.width - camera.viewMarginX * 2) / (tileWidth * scaleX)) + 1; if(this.columns > widthInTiles) { this.columns = widthInTiles; } this.width = this.columns * tileWidth * scaleX | 0; this.dirty = true; } ,updateRows: function(tileHeight,heightInTiles,scaleY,camera) { if(scaleY == null) { scaleY = 1.0; } if(heightInTiles < 0) { heightInTiles = 0; } if(camera == null) { camera = flixel_FlxG.camera; } this.rows = Math.ceil((camera.height - camera.viewMarginY * 2) / (tileHeight * scaleY)) + 1; if(this.rows > heightInTiles) { this.rows = heightInTiles; } this.height = this.rows * tileHeight * scaleY | 0; this.dirty = true; } ,isPixelPerfectRender: function(camera) { if(camera == null) { camera = flixel_FlxG.camera; } if(this.pixelPerfectRender == null) { return camera.pixelPerfectRender; } else { return this.pixelPerfectRender; } } ,isDirty: function(tilemap,camera) { this.dirty = this.dirty || tilemap.x != this._prevTilemapX || tilemap.y != this._prevTilemapY || tilemap.scale.x != this._prevTilemapScaleX || tilemap.scale.y != this._prevTilemapScaleY || tilemap.scrollFactor.x != this._prevTilemapScrollX || tilemap.scrollFactor.y != this._prevTilemapScrollY || camera.scroll.x != this._prevCameraScrollX || camera.scroll.y != this._prevCameraScrollY || camera.scaleX != this._prevCameraScaleX || camera.scaleY != this._prevCameraScaleY || camera.width != this._prevCameraWidth || camera.height != this._prevCameraHeight; if(this.dirty) { this._prevTilemapX = tilemap.x; this._prevTilemapY = tilemap.y; this._prevTilemapScaleX = tilemap.scale.x; this._prevTilemapScaleY = tilemap.scale.y; this._prevTilemapScrollX = tilemap.scrollFactor.x; this._prevTilemapScrollY = tilemap.scrollFactor.y; this._prevCameraScrollX = camera.scroll.x; this._prevCameraScrollY = camera.scroll.y; this._prevCameraScaleX = camera.scaleX; this._prevCameraScaleY = camera.scaleY; this._prevCameraWidth = camera.width; this._prevCameraHeight = camera.height; } return this.dirty; } ,__class__: flixel_tile_FlxTilemapBuffer }; var flixel_tweens_FlxEase = function() { }; $hxClasses["flixel.tweens.FlxEase"] = flixel_tweens_FlxEase; flixel_tweens_FlxEase.__name__ = "flixel.tweens.FlxEase"; flixel_tweens_FlxEase.linear = function(t) { return t; }; flixel_tweens_FlxEase.quadIn = function(t) { return t * t; }; flixel_tweens_FlxEase.quadOut = function(t) { return -t * (t - 2); }; flixel_tweens_FlxEase.quadInOut = function(t) { if(t <= .5) { return t * t * 2; } else { return 1 - --t * t * 2; } }; flixel_tweens_FlxEase.cubeIn = function(t) { return t * t * t; }; flixel_tweens_FlxEase.cubeOut = function(t) { return 1 + --t * t * t; }; flixel_tweens_FlxEase.cubeInOut = function(t) { if(t <= .5) { return t * t * t * 4; } else { return 1 + --t * t * t * 4; } }; flixel_tweens_FlxEase.quartIn = function(t) { return t * t * t * t; }; flixel_tweens_FlxEase.quartOut = function(t) { return 1 - --t * t * t * t; }; flixel_tweens_FlxEase.quartInOut = function(t) { if(t <= .5) { return t * t * t * t * 8; } else { t = t * 2 - 2; return (1 - t * t * t * t) / 2 + .5; } }; flixel_tweens_FlxEase.quintIn = function(t) { return t * t * t * t * t; }; flixel_tweens_FlxEase.quintOut = function(t) { return --t * t * t * t * t + 1; }; flixel_tweens_FlxEase.quintInOut = function(t) { if((t *= 2) < 1) { return t * t * t * t * t / 2; } else { return ((t -= 2) * t * t * t * t + 2) / 2; } }; flixel_tweens_FlxEase.smoothStepIn = function(t) { var t1 = t / 2; return 2 * (t1 * t1 * (t1 * -2 + 3)); }; flixel_tweens_FlxEase.smoothStepOut = function(t) { var t1 = t / 2 + 0.5; return 2 * (t1 * t1 * (t1 * -2 + 3)) - 1; }; flixel_tweens_FlxEase.smoothStepInOut = function(t) { return t * t * (t * -2 + 3); }; flixel_tweens_FlxEase.smootherStepIn = function(t) { var t1 = t / 2; return 2 * (t1 * t1 * t1 * (t1 * (t1 * 6 - 15) + 10)); }; flixel_tweens_FlxEase.smootherStepOut = function(t) { var t1 = t / 2 + 0.5; return 2 * (t1 * t1 * t1 * (t1 * (t1 * 6 - 15) + 10)) - 1; }; flixel_tweens_FlxEase.smootherStepInOut = function(t) { return t * t * t * (t * (t * 6 - 15) + 10); }; flixel_tweens_FlxEase.sineIn = function(t) { return -Math.cos(flixel_tweens_FlxEase.PI2 * t) + 1; }; flixel_tweens_FlxEase.sineOut = function(t) { return Math.sin(flixel_tweens_FlxEase.PI2 * t); }; flixel_tweens_FlxEase.sineInOut = function(t) { return -Math.cos(Math.PI * t) / 2 + .5; }; flixel_tweens_FlxEase.bounceIn = function(t) { return 1 - flixel_tweens_FlxEase.bounceOut(1 - t); }; flixel_tweens_FlxEase.bounceOut = function(t) { if(t < flixel_tweens_FlxEase.B1) { return 7.5625 * t * t; } if(t < flixel_tweens_FlxEase.B2) { return 7.5625 * (t - flixel_tweens_FlxEase.B3) * (t - flixel_tweens_FlxEase.B3) + .75; } if(t < flixel_tweens_FlxEase.B4) { return 7.5625 * (t - flixel_tweens_FlxEase.B5) * (t - flixel_tweens_FlxEase.B5) + .9375; } return 7.5625 * (t - flixel_tweens_FlxEase.B6) * (t - flixel_tweens_FlxEase.B6) + .984375; }; flixel_tweens_FlxEase.bounceInOut = function(t) { if(t < 0.5) { return (1 - flixel_tweens_FlxEase.bounceOut(1 - 2 * t)) / 2; } else { return (1 + flixel_tweens_FlxEase.bounceOut(2 * t - 1)) / 2; } }; flixel_tweens_FlxEase.circIn = function(t) { return -(Math.sqrt(1 - t * t) - 1); }; flixel_tweens_FlxEase.circOut = function(t) { return Math.sqrt(1 - (t - 1) * (t - 1)); }; flixel_tweens_FlxEase.circInOut = function(t) { if(t <= .5) { return (Math.sqrt(1 - t * t * 4) - 1) / -2; } else { return (Math.sqrt(1 - (t * 2 - 2) * (t * 2 - 2)) + 1) / 2; } }; flixel_tweens_FlxEase.expoIn = function(t) { return Math.pow(2,10 * (t - 1)); }; flixel_tweens_FlxEase.expoOut = function(t) { return -Math.pow(2,-10 * t) + 1; }; flixel_tweens_FlxEase.expoInOut = function(t) { if(t < .5) { return Math.pow(2,10 * (t * 2 - 1)) / 2; } else { return (-Math.pow(2,-10 * (t * 2 - 1)) + 2) / 2; } }; flixel_tweens_FlxEase.backIn = function(t) { return t * t * (2.70158 * t - 1.70158); }; flixel_tweens_FlxEase.backOut = function(t) { return 1 - --t * t * (-2.70158 * t - 1.70158); }; flixel_tweens_FlxEase.backInOut = function(t) { t *= 2; if(t < 1) { return t * t * (2.70158 * t - 1.70158) / 2; } --t; return (1 - --t * t * (-2.70158 * t - 1.70158)) / 2 + .5; }; flixel_tweens_FlxEase.elasticIn = function(t) { return -(flixel_tweens_FlxEase.ELASTIC_AMPLITUDE * Math.pow(2,10 * --t) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / (2 * Math.PI) * Math.asin(1 / flixel_tweens_FlxEase.ELASTIC_AMPLITUDE)) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD)); }; flixel_tweens_FlxEase.elasticOut = function(t) { return flixel_tweens_FlxEase.ELASTIC_AMPLITUDE * Math.pow(2,-10 * t) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / (2 * Math.PI) * Math.asin(1 / flixel_tweens_FlxEase.ELASTIC_AMPLITUDE)) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD) + 1; }; flixel_tweens_FlxEase.elasticInOut = function(t) { if(t < 0.5) { return -0.5 * (Math.pow(2,10 * (t -= 0.5)) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / 4) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD)); } return Math.pow(2,-10 * (t -= 0.5)) * Math.sin((t - flixel_tweens_FlxEase.ELASTIC_PERIOD / 4) * (2 * Math.PI) / flixel_tweens_FlxEase.ELASTIC_PERIOD) * 0.5 + 1; }; var flixel_tweens_FlxTween = function(Options,manager) { this._waitingForRestart = false; this._running = false; this._delayToUse = 0; this._secondsSinceStart = 0; this.loopDelay = 0; this.startDelay = 0; this.executions = 0; this.scale = 0; this.duration = 0; this.active = false; Options = this.resolveTweenOptions(Options); this.set_type(Options.type); this.onStart = Options.onStart; this.onUpdate = Options.onUpdate; this.onComplete = Options.onComplete; this.ease = Options.ease; this.setDelays(Options.startDelay,Options.loopDelay); this.manager = manager != null ? manager : flixel_tweens_FlxTween.globalManager; }; $hxClasses["flixel.tweens.FlxTween"] = flixel_tweens_FlxTween; flixel_tweens_FlxTween.__name__ = "flixel.tweens.FlxTween"; flixel_tweens_FlxTween.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_tweens_FlxTween.globalManager = null; flixel_tweens_FlxTween.tween = function(Object1,Values,Duration,Options) { if(Duration == null) { Duration = 1; } return flixel_tweens_FlxTween.globalManager.tween(Object1,Values,Duration,Options); }; flixel_tweens_FlxTween.num = function(FromValue,ToValue,Duration,Options,TweenFunction) { if(Duration == null) { Duration = 1; } return flixel_tweens_FlxTween.globalManager.num(FromValue,ToValue,Duration,Options,TweenFunction); }; flixel_tweens_FlxTween.shake = function(Sprite,Intensity,Duration,Axes,Options) { if(Duration == null) { Duration = 1; } if(Intensity == null) { Intensity = 0.05; } return flixel_tweens_FlxTween.globalManager.shake(Sprite,Intensity,Duration,Axes,Options); }; flixel_tweens_FlxTween.angle = function(Sprite,FromAngle,ToAngle,Duration,Options) { if(Duration == null) { Duration = 1; } return flixel_tweens_FlxTween.globalManager.angle(Sprite,FromAngle,ToAngle,Duration,Options); }; flixel_tweens_FlxTween.color = function(Sprite,Duration,FromColor,ToColor,Options) { if(Duration == null) { Duration = 1; } return flixel_tweens_FlxTween.globalManager.color(Sprite,Duration,FromColor,ToColor,Options); }; flixel_tweens_FlxTween.linearMotion = function(Object1,FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } return flixel_tweens_FlxTween.globalManager.linearMotion(Object1,FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration,Options); }; flixel_tweens_FlxTween.quadMotion = function(Object1,FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } return flixel_tweens_FlxTween.globalManager.quadMotion(Object1,FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration,Options); }; flixel_tweens_FlxTween.cubicMotion = function(Object1,FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration,Options) { if(Duration == null) { Duration = 1; } return flixel_tweens_FlxTween.globalManager.cubicMotion(Object1,FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration,Options); }; flixel_tweens_FlxTween.circularMotion = function(Object1,CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } return flixel_tweens_FlxTween.globalManager.circularMotion(Object1,CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration,Options); }; flixel_tweens_FlxTween.linearPath = function(Object1,Points,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } return flixel_tweens_FlxTween.globalManager.linearPath(Object1,Points,DurationOrSpeed,UseDuration,Options); }; flixel_tweens_FlxTween.quadPath = function(Object1,Points,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } return flixel_tweens_FlxTween.globalManager.quadPath(Object1,Points,DurationOrSpeed,UseDuration,Options); }; flixel_tweens_FlxTween.cancelTweensOf = function(Object1,FieldPaths) { flixel_tweens_FlxTween.globalManager.cancelTweensOf(Object1,FieldPaths); }; flixel_tweens_FlxTween.completeTweensOf = function(Object1,FieldPaths) { flixel_tweens_FlxTween.globalManager.completeTweensOf(Object1,FieldPaths); }; flixel_tweens_FlxTween.prototype = { manager: null ,active: null ,duration: null ,ease: null ,onStart: null ,onUpdate: null ,onComplete: null ,type: null ,finished: null ,scale: null ,backward: null ,executions: null ,startDelay: null ,loopDelay: null ,_secondsSinceStart: null ,_delayToUse: null ,_running: null ,_waitingForRestart: null ,_chainedTweens: null ,_nextTweenInChain: null ,resolveTweenOptions: function(Options) { if(Options == null) { Options = { type : 8}; } if(Options.type == null) { Options.type = 8; } return Options; } ,destroy: function() { this.onStart = null; this.onUpdate = null; this.onComplete = null; this.ease = null; this.manager = null; this._chainedTweens = null; this._nextTweenInChain = null; } ,then: function(tween) { return this.addChainedTween(tween); } ,wait: function(delay) { return this.addChainedTween(flixel_tweens_FlxTween.num(0,0,delay)); } ,addChainedTween: function(tween) { tween.setVarsOnEnd(); tween.manager.remove(tween,false); if(this._chainedTweens == null) { this._chainedTweens = []; } this._chainedTweens.push(tween); return this; } ,update: function(elapsed) { this._secondsSinceStart += elapsed; var delay = this.executions > 0 ? this.loopDelay : this.startDelay; if(this._secondsSinceStart < delay) { return; } this.scale = Math.max(this._secondsSinceStart - delay,0) / this.duration; if(this.ease != null) { this.scale = this.ease(this.scale); } if(this.backward) { this.scale = 1 - this.scale; } if(this._secondsSinceStart > delay && !this._running) { this._running = true; if(this.onStart != null) { this.onStart(this); } } if(this._secondsSinceStart >= this.duration + delay) { this.scale = this.backward ? 0 : 1; this.finished = true; } else if(this.onUpdate != null) { this.onUpdate(this); } } ,start: function() { this._waitingForRestart = false; this._secondsSinceStart = 0; this._delayToUse = this.executions > 0 ? this.loopDelay : this.startDelay; if(this.duration == 0) { this.set_active(false); return this; } this.set_active(true); this._running = false; this.finished = false; return this; } ,cancel: function() { this.onEnd(); if(this.manager != null) { this.manager.remove(this); } } ,cancelChain: function() { if(this._nextTweenInChain != null) { this._nextTweenInChain.cancelChain(); } if(this._chainedTweens != null) { this._chainedTweens = null; } this.cancel(); } ,finish: function() { this.executions++; if(this.onComplete != null) { this.onComplete(this); } var type = this.type & ~16; if(type == 1 || type == 8) { this.onEnd(); this._secondsSinceStart = this.duration + this.startDelay; if(type == 8 && this.manager != null) { this.manager.remove(this); } } if(type == 2 || type == 4) { this._secondsSinceStart = (this._secondsSinceStart - this._delayToUse) % this.duration + this._delayToUse; this.scale = Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration; if(this.ease != null && this.scale > 0 && this.scale < 1) { this.scale = this.ease(this.scale); } if(type == 4) { this.backward = !this.backward; if(this.backward) { this.scale = 1 - this.scale; } } this.restart(); } } ,onEnd: function() { this.setVarsOnEnd(); this.processTweenChain(); } ,setVarsOnEnd: function() { this.set_active(false); this._running = false; this.finished = true; } ,processTweenChain: function() { if(this._chainedTweens == null || this._chainedTweens.length <= 0) { return; } this._nextTweenInChain = this._chainedTweens.shift(); this.doNextTween(this._nextTweenInChain); this._chainedTweens = null; } ,doNextTween: function(tween) { if(!tween.active) { tween.start(); this.manager.add_flixel_tweens_FlxTween(tween); } tween.setChain(this._chainedTweens); } ,setChain: function(previousChain) { if(previousChain == null) { return; } if(this._chainedTweens == null) { this._chainedTweens = previousChain; } else { this._chainedTweens = this._chainedTweens.concat(previousChain); } } ,restart: function() { if(this.active) { this.start(); } else { this._waitingForRestart = true; } } ,isTweenOf: function(Object1,Field) { return false; } ,setDelays: function(StartDelay,LoopDelay) { this.set_startDelay(StartDelay != null ? StartDelay : 0); this.set_loopDelay(LoopDelay != null ? LoopDelay : 0); return this; } ,set_startDelay: function(value) { var dly = Math.abs(value); if(this.executions == 0) { this._delayToUse = dly; } return this.startDelay = dly; } ,set_loopDelay: function(value) { var dly = Math.abs(value); if(this.executions > 0) { this._secondsSinceStart = this.duration * (Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration) + Math.max(dly - this.loopDelay,0); this._delayToUse = dly; } return this.loopDelay = dly; } ,get_percent: function() { return Math.max(this._secondsSinceStart - this._delayToUse,0) / this.duration; } ,set_percent: function(value) { return this._secondsSinceStart = this.duration * value + this._delayToUse; } ,set_type: function(value) { if(value == 0) { value = 8; } else if(value == 16) { value = 1 | 16; } this.backward = (value & 16) > 0; return this.type = value; } ,set_active: function(active) { this.active = active; if(this._waitingForRestart) { this.restart(); } return active; } ,__class__: flixel_tweens_FlxTween ,__properties__: {set_loopDelay:"set_loopDelay",set_startDelay:"set_startDelay",set_percent:"set_percent",get_percent:"get_percent",set_type:"set_type",set_active:"set_active"} }; var flixel_tweens_FlxTweenManager = function() { this._tweens = []; flixel_FlxBasic.call(this); this.set_visible(false); flixel_FlxG.signals.preStateSwitch.add($bind(this,this.clear)); }; $hxClasses["flixel.tweens.FlxTweenManager"] = flixel_tweens_FlxTweenManager; flixel_tweens_FlxTweenManager.__name__ = "flixel.tweens.FlxTweenManager"; flixel_tweens_FlxTweenManager.__super__ = flixel_FlxBasic; flixel_tweens_FlxTweenManager.prototype = $extend(flixel_FlxBasic.prototype,{ add_flixel_tweens_motion_QuadPath: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_motion_LinearPath: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_motion_CircularMotion: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_motion_CubicMotion: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_motion_QuadMotion: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_motion_LinearMotion: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_misc_ColorTween: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_misc_AngleTween: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_misc_ShakeTween: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_misc_NumTween: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_FlxTween: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,add_flixel_tweens_misc_VarTween: function(Tween,Start) { if(Start == null) { Start = false; } if(Tween == null) { return null; } this._tweens.push(Tween); if(Start) { Tween.start(); } return Tween; } ,_tweens: null ,tween: function(Object1,Values,Duration,Options) { if(Duration == null) { Duration = 1; } var tween = new flixel_tweens_misc_VarTween(Options,this); tween.tween(Object1,Values,Duration); return this.add_flixel_tweens_misc_VarTween(tween); } ,num: function(FromValue,ToValue,Duration,Options,TweenFunction) { if(Duration == null) { Duration = 1; } var tween = new flixel_tweens_misc_NumTween(Options,this); tween.tween(FromValue,ToValue,Duration,TweenFunction); return this.add_flixel_tweens_misc_NumTween(tween); } ,shake: function(Sprite,Intensity,Duration,Axes,Options) { if(Axes == null) { Axes = 17; } if(Duration == null) { Duration = 1; } if(Intensity == null) { Intensity = 0.05; } var tween = new flixel_tweens_misc_ShakeTween(Options,this); tween.tween(Sprite,Intensity,Duration,Axes); return this.add_flixel_tweens_misc_ShakeTween(tween); } ,angle: function(Sprite,FromAngle,ToAngle,Duration,Options) { if(Duration == null) { Duration = 1; } var tween = new flixel_tweens_misc_AngleTween(Options,this); tween.tween(FromAngle,ToAngle,Duration,Sprite); return this.add_flixel_tweens_misc_AngleTween(tween); } ,color: function(Sprite,Duration,FromColor,ToColor,Options) { if(Duration == null) { Duration = 1; } var tween = new flixel_tweens_misc_ColorTween(Options,this); tween.tween(Duration,FromColor,ToColor,Sprite); return this.add_flixel_tweens_misc_ColorTween(tween); } ,linearMotion: function(Object1,FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } var tween = new flixel_tweens_motion_LinearMotion(Options,this); tween.setObject(Object1); tween.setMotion(FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration); return this.add_flixel_tweens_motion_LinearMotion(tween); } ,quadMotion: function(Object1,FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } var tween = new flixel_tweens_motion_QuadMotion(Options,this); tween.setObject(Object1); tween.setMotion(FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration); return this.add_flixel_tweens_motion_QuadMotion(tween); } ,cubicMotion: function(Object1,FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration,Options) { if(Duration == null) { Duration = 1; } var tween = new flixel_tweens_motion_CubicMotion(Options,this); tween.setObject(Object1); tween.setMotion(FromX,FromY,aX,aY,bX,bY,ToX,ToY,Duration); return this.add_flixel_tweens_motion_CubicMotion(tween); } ,circularMotion: function(Object1,CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } var tween = new flixel_tweens_motion_CircularMotion(Options,this); tween.setObject(Object1); tween.setMotion(CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration); return this.add_flixel_tweens_motion_CircularMotion(tween); } ,linearPath: function(Object1,Points,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } var tween = new flixel_tweens_motion_LinearPath(Options,this); if(Points != null) { var _g = 0; while(_g < Points.length) { var point = Points[_g]; ++_g; tween.addPoint(point.x,point.y); } } tween.setObject(Object1); tween.setMotion(DurationOrSpeed,UseDuration); return this.add_flixel_tweens_motion_LinearPath(tween); } ,quadPath: function(Object1,Points,DurationOrSpeed,UseDuration,Options) { if(UseDuration == null) { UseDuration = true; } if(DurationOrSpeed == null) { DurationOrSpeed = 1; } var tween = new flixel_tweens_motion_QuadPath(Options,this); if(Points != null) { var _g = 0; while(_g < Points.length) { var point = Points[_g]; ++_g; tween.addPoint(point.x,point.y); } } tween.setObject(Object1); tween.setMotion(DurationOrSpeed,UseDuration); return this.add_flixel_tweens_motion_QuadPath(tween); } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); flixel_FlxG.signals.preStateSwitch.remove($bind(this,this.clear)); } ,update: function(elapsed) { var finishedTweens = null; var _g = 0; var _g1 = this._tweens; while(_g < _g1.length) { var tween = _g1[_g]; ++_g; if(!tween.active) { continue; } tween.update(elapsed); if(tween.finished) { if(finishedTweens == null) { finishedTweens = []; } finishedTweens.push(tween); } } if(finishedTweens != null) { while(finishedTweens.length > 0) finishedTweens.shift().finish(); } } ,remove: function(Tween,Destroy) { if(Destroy == null) { Destroy = true; } if(Tween == null) { return null; } Tween.set_active(false); if(Destroy) { Tween.destroy(); } var array = this._tweens; var index = array.indexOf(Tween); if(index != -1) { array[index] = array[array.length - 1]; array.pop(); } return Tween; } ,clear: function() { var _g = 0; var _g1 = this._tweens; while(_g < _g1.length) { var tween = _g1[_g]; ++_g; if(tween != null) { tween.set_active(false); tween.destroy(); } } this._tweens.splice(0,this._tweens.length); } ,cancelTweensOf: function(Object1,FieldPaths) { this.forEachTweensOf(Object1,FieldPaths,function(tween) { tween.cancel(); }); } ,completeTweensOf: function(Object1,FieldPaths) { this.forEachTweensOf(Object1,FieldPaths,function(tween) { if((tween.type & 2) == 0 && (tween.type & 4) == 0 && tween.active) { tween.update(1.79e+308); } }); } ,forEachTweensOf: function(Object1,FieldPaths,Function1) { if(Object1 == null) { throw haxe_Exception.thrown("Cannot cancel tween variables of an object that is null."); } if(FieldPaths == null || FieldPaths.length == 0) { var i = this._tweens.length; while(i-- > 0) { var tween = this._tweens[i]; if(tween.isTweenOf(Object1)) { Function1(tween); } } } else { var propertyInfos = []; var _g = 0; while(_g < FieldPaths.length) { var fieldPath = FieldPaths[_g]; ++_g; var target = Object1; var path = fieldPath.split("."); var field = path.pop(); var _g1 = 0; while(_g1 < path.length) { var component = path[_g1]; ++_g1; target = Reflect.getProperty(target,component); if(!Reflect.isObject(target)) { break; } } if(Reflect.isObject(target)) { propertyInfos.push({ object : target, field : field}); } } var i = this._tweens.length; while(i-- > 0) { var tween = this._tweens[i]; var _g = 0; while(_g < propertyInfos.length) { var info = propertyInfos[_g]; ++_g; if(tween.isTweenOf(info.object,info.field)) { Function1(tween); break; } } } } } ,completeAll: function() { var _g = 0; var _g1 = this._tweens; while(_g < _g1.length) { var tween = _g1[_g]; ++_g; if((tween.type & 2) == 0 && (tween.type & 4) == 0 && tween.active) { tween.update(1.79e+308); } } } ,forEach: function(Function1) { var _g = 0; var _g1 = this._tweens; while(_g < _g1.length) { var tween = _g1[_g]; ++_g; Function1(tween); } } ,__class__: flixel_tweens_FlxTweenManager }); var flixel_tweens_misc_AngleTween = function(Options,manager) { flixel_tweens_FlxTween.call(this,Options,manager); }; $hxClasses["flixel.tweens.misc.AngleTween"] = flixel_tweens_misc_AngleTween; flixel_tweens_misc_AngleTween.__name__ = "flixel.tweens.misc.AngleTween"; flixel_tweens_misc_AngleTween.__super__ = flixel_tweens_FlxTween; flixel_tweens_misc_AngleTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{ angle: null ,sprite: null ,_start: null ,_range: null ,destroy: function() { flixel_tweens_FlxTween.prototype.destroy.call(this); this.sprite = null; } ,tween: function(FromAngle,ToAngle,Duration,Sprite) { this._start = this.angle = FromAngle; this._range = ToAngle - this.angle; this.duration = Duration; this.sprite = Sprite; if(this.sprite != null) { this.sprite.set_angle(this.angle % 360); } this.start(); return this; } ,update: function(elapsed) { flixel_tweens_FlxTween.prototype.update.call(this,elapsed); this.angle = this._start + this._range * this.scale; if(this.sprite != null) { var spriteAngle = this.angle % 360; this.sprite.set_angle(spriteAngle); } } ,isTweenOf: function(object,field) { if(this.sprite == object) { if(field != null) { return field == "angle"; } else { return true; } } else { return false; } } ,__class__: flixel_tweens_misc_AngleTween }); var flixel_tweens_misc_ColorTween = function(Options,manager) { flixel_tweens_FlxTween.call(this,Options,manager); }; $hxClasses["flixel.tweens.misc.ColorTween"] = flixel_tweens_misc_ColorTween; flixel_tweens_misc_ColorTween.__name__ = "flixel.tweens.misc.ColorTween"; flixel_tweens_misc_ColorTween.__super__ = flixel_tweens_FlxTween; flixel_tweens_misc_ColorTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{ color: null ,startColor: null ,endColor: null ,sprite: null ,destroy: function() { flixel_tweens_FlxTween.prototype.destroy.call(this); this.sprite = null; } ,tween: function(Duration,FromColor,ToColor,Sprite) { this.color = this.startColor = FromColor; this.endColor = ToColor; this.duration = Duration; this.sprite = Sprite; this.start(); return this; } ,update: function(elapsed) { flixel_tweens_FlxTween.prototype.update.call(this,elapsed); var Color1 = this.startColor; var Color2 = this.endColor; var Factor = this.scale; if(Factor == null) { Factor = 0.5; } var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0; var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0; var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0; var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0; var Alpha = a; if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16; color &= -65281; color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8; color &= -256; color |= b > 255 ? 255 : b < 0 ? 0 : b; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; this.color = color; if(this.sprite != null) { this.sprite.set_color(this.color); this.sprite.set_alpha((this.color >> 24 & 255) / 255); } } ,isTweenOf: function(object,field) { if(this.sprite == object) { if(field != null) { return field == "color"; } else { return true; } } else { return false; } } ,__class__: flixel_tweens_misc_ColorTween }); var flixel_tweens_misc_NumTween = function(Options,manager) { flixel_tweens_FlxTween.call(this,Options,manager); }; $hxClasses["flixel.tweens.misc.NumTween"] = flixel_tweens_misc_NumTween; flixel_tweens_misc_NumTween.__name__ = "flixel.tweens.misc.NumTween"; flixel_tweens_misc_NumTween.__super__ = flixel_tweens_FlxTween; flixel_tweens_misc_NumTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{ value: null ,_tweenFunction: null ,_start: null ,_range: null ,destroy: function() { flixel_tweens_FlxTween.prototype.destroy.call(this); this._tweenFunction = null; } ,tween: function(fromValue,toValue,duration,tweenFunction) { this._tweenFunction = tweenFunction; this._start = this.value = fromValue; this._range = toValue - this.value; this.duration = duration; this.start(); return this; } ,update: function(elapsed) { flixel_tweens_FlxTween.prototype.update.call(this,elapsed); this.value = this._start + this._range * this.scale; if(this._tweenFunction != null) { this._tweenFunction(this.value); } } ,__class__: flixel_tweens_misc_NumTween }); var flixel_tweens_misc_ShakeTween = function(Options,manager) { flixel_tweens_FlxTween.call(this,Options,manager); }; $hxClasses["flixel.tweens.misc.ShakeTween"] = flixel_tweens_misc_ShakeTween; flixel_tweens_misc_ShakeTween.__name__ = "flixel.tweens.misc.ShakeTween"; flixel_tweens_misc_ShakeTween.__super__ = flixel_tweens_FlxTween; flixel_tweens_misc_ShakeTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{ intensity: null ,axes: null ,sprite: null ,initialOffset: null ,tween: function(Sprite,Intensity,Duration,Axes) { if(Axes == null) { Axes = 17; } if(Duration == null) { Duration = 1; } if(Intensity == null) { Intensity = 0.05; } this.intensity = Intensity; this.sprite = Sprite; this.duration = Duration; this.axes = Axes; var x = Sprite.offset.x; var y = Sprite.offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this.initialOffset = new flixel_math_FlxBasePoint(x,y); this.start(); return this; } ,destroy: function() { flixel_tweens_FlxTween.prototype.destroy.call(this); var tmp; if(this.sprite != null) { var _this = this.sprite.offset; var point = this.initialOffset; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = !result; } else { tmp = false; } if(tmp) { var this1 = this.sprite.offset; var x = this.initialOffset.x; var y = this.initialOffset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } this.sprite = null; this.initialOffset = null; } ,update: function(elapsed) { flixel_tweens_FlxTween.prototype.update.call(this,elapsed); var this1 = this.axes; if(this1 == 1 || this1 == 17) { this.sprite.offset.set_x(this.initialOffset.x + flixel_FlxG.random.float(-this.intensity * this.sprite.get_width(),this.intensity * this.sprite.get_width())); } var this1 = this.axes; if(this1 == 16 || this1 == 17) { this.sprite.offset.set_y(this.initialOffset.y + flixel_FlxG.random.float(-this.intensity * this.sprite.get_height(),this.intensity * this.sprite.get_height())); } } ,isTweenOf: function(Object1,Field) { if(this.sprite == Object1) { if(Field != null) { return Field == "shake"; } else { return true; } } else { return false; } } ,__class__: flixel_tweens_misc_ShakeTween }); var flixel_tweens_misc_VarTween = function(options,manager) { flixel_tweens_FlxTween.call(this,options,manager); }; $hxClasses["flixel.tweens.misc.VarTween"] = flixel_tweens_misc_VarTween; flixel_tweens_misc_VarTween.__name__ = "flixel.tweens.misc.VarTween"; flixel_tweens_misc_VarTween.__super__ = flixel_tweens_FlxTween; flixel_tweens_misc_VarTween.prototype = $extend(flixel_tweens_FlxTween.prototype,{ _object: null ,_properties: null ,_propertyInfos: null ,tween: function(object,properties,duration) { this._object = object; this._properties = properties; this._propertyInfos = []; this.duration = duration; this.start(); this.initializeVars(); return this; } ,update: function(elapsed) { var delay = this.executions > 0 ? this.loopDelay : this.startDelay; if(this._secondsSinceStart < delay) { flixel_tweens_FlxTween.prototype.update.call(this,elapsed); } else { var f = this._propertyInfos[0].startValue; if(isNaN(f)) { this.setStartValues(); } flixel_tweens_FlxTween.prototype.update.call(this,elapsed); if(this.active) { var _g = 0; var _g1 = this._propertyInfos; while(_g < _g1.length) { var info = _g1[_g]; ++_g; Reflect.setProperty(info.object,info.field,info.startValue + info.range * this.scale); } } } } ,initializeVars: function() { var fieldPaths; if(Reflect.isObject(this._properties)) { fieldPaths = Reflect.fields(this._properties); } else { throw haxe_Exception.thrown("Unsupported properties container - use an object containing key/value pairs."); } var _g = 0; while(_g < fieldPaths.length) { var fieldPath = fieldPaths[_g]; ++_g; var target = this._object; var path = fieldPath.split("."); var field = path.pop(); var _g1 = 0; while(_g1 < path.length) { var component = path[_g1]; ++_g1; target = Reflect.getProperty(target,component); if(!Reflect.isObject(target)) { throw haxe_Exception.thrown("The object does not have the property \"" + component + "\" in \"" + fieldPath + "\""); } } this._propertyInfos.push({ object : target, field : field, startValue : NaN, range : Reflect.getProperty(this._properties,fieldPath)}); } } ,setStartValues: function() { var _g = 0; var _g1 = this._propertyInfos; while(_g < _g1.length) { var info = _g1[_g]; ++_g; if(Reflect.getProperty(info.object,info.field) == null) { throw haxe_Exception.thrown("The object does not have the property \"" + info.field + "\""); } var value = Reflect.getProperty(info.object,info.field); if(isNaN(value)) { throw haxe_Exception.thrown("The property \"" + info.field + "\" is not numeric."); } info.startValue = value; info.range -= value; } } ,destroy: function() { flixel_tweens_FlxTween.prototype.destroy.call(this); this._object = null; this._properties = null; this._propertyInfos = null; } ,isTweenOf: function(object,field) { if(object == this._object && field == null) { return true; } var _g = 0; var _g1 = this._propertyInfos; while(_g < _g1.length) { var property = _g1[_g]; ++_g; if(object == property.object && (field == property.field || field == null)) { return true; } } return false; } ,__class__: flixel_tweens_misc_VarTween }); var flixel_tweens_motion_Motion = function(Options,manager) { this.y = 0; this.x = 0; flixel_tweens_FlxTween.call(this,Options,manager); }; $hxClasses["flixel.tweens.motion.Motion"] = flixel_tweens_motion_Motion; flixel_tweens_motion_Motion.__name__ = "flixel.tweens.motion.Motion"; flixel_tweens_motion_Motion.__super__ = flixel_tweens_FlxTween; flixel_tweens_motion_Motion.prototype = $extend(flixel_tweens_FlxTween.prototype,{ x: null ,y: null ,_object: null ,_wasObjectImmovable: null ,destroy: function() { flixel_tweens_FlxTween.prototype.destroy.call(this); this._object = null; } ,setObject: function(object) { this._object = object; this._wasObjectImmovable = this._object.immovable; this._object.set_immovable(true); return this; } ,update: function(elapsed) { flixel_tweens_FlxTween.prototype.update.call(this,elapsed); this.postUpdate(); } ,onEnd: function() { this._object.set_immovable(this._wasObjectImmovable); flixel_tweens_FlxTween.prototype.onEnd.call(this); } ,postUpdate: function() { if(this._object != null) { this._object.setPosition(this.x,this.y); } } ,isTweenOf: function(object,field) { if(this._object == object) { if(!(field == null || field == "x")) { return field == "y"; } else { return true; } } else { return false; } } ,__class__: flixel_tweens_motion_Motion }); var flixel_tweens_motion_CircularMotion = function(Options,manager) { this._angleFinish = 0; this._angleStart = 0; this._radius = 0; this._centerY = 0; this._centerX = 0; this.angle = 0; flixel_tweens_motion_Motion.call(this,Options,manager); }; $hxClasses["flixel.tweens.motion.CircularMotion"] = flixel_tweens_motion_CircularMotion; flixel_tweens_motion_CircularMotion.__name__ = "flixel.tweens.motion.CircularMotion"; flixel_tweens_motion_CircularMotion.__super__ = flixel_tweens_motion_Motion; flixel_tweens_motion_CircularMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{ angle: null ,_centerX: null ,_centerY: null ,_radius: null ,_angleStart: null ,_angleFinish: null ,setMotion: function(CenterX,CenterY,Radius,Angle,Clockwise,DurationOrSpeed,UseDuration) { if(UseDuration == null) { UseDuration = true; } this._centerX = CenterX; this._centerY = CenterY; this._radius = Radius; this.angle = this._angleStart = Angle * Math.PI / -180; this._angleFinish = Math.PI * 2 * (Clockwise ? 1 : -1); if(UseDuration) { this.duration = DurationOrSpeed; } else { this.duration = this._radius * (Math.PI * 2) / DurationOrSpeed; } this.start(); return this; } ,update: function(elapsed) { flixel_tweens_motion_Motion.prototype.update.call(this,elapsed); this.angle = this._angleStart + this._angleFinish * this.scale; this.x = this._centerX + Math.cos(this.angle) * this._radius; this.y = this._centerY + Math.sin(this.angle) * this._radius; if(this.finished) { this.postUpdate(); } } ,get_circumference: function() { return this._radius * (Math.PI * 2); } ,__class__: flixel_tweens_motion_CircularMotion ,__properties__: $extend(flixel_tweens_motion_Motion.prototype.__properties__,{get_circumference:"get_circumference"}) }); var flixel_tweens_motion_CubicMotion = function(Options,manager) { this._tt = 0; this._ttt = 0; this._bY = 0; this._bX = 0; this._aY = 0; this._aX = 0; this._toY = 0; this._toX = 0; this._fromY = 0; this._fromX = 0; flixel_tweens_motion_Motion.call(this,Options,manager); }; $hxClasses["flixel.tweens.motion.CubicMotion"] = flixel_tweens_motion_CubicMotion; flixel_tweens_motion_CubicMotion.__name__ = "flixel.tweens.motion.CubicMotion"; flixel_tweens_motion_CubicMotion.__super__ = flixel_tweens_motion_Motion; flixel_tweens_motion_CubicMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{ _fromX: null ,_fromY: null ,_toX: null ,_toY: null ,_aX: null ,_aY: null ,_bX: null ,_bY: null ,_ttt: null ,_tt: null ,setMotion: function(fromX,fromY,aX,aY,bX,bY,toX,toY,duration) { this.x = this._fromX = fromX; this.y = this._fromY = fromY; this._aX = aX; this._aY = aY; this._bX = bX; this._bY = bY; this._toX = toX; this._toY = toY; this.duration = duration; this.start(); return this; } ,update: function(elapsed) { flixel_tweens_motion_Motion.prototype.update.call(this,elapsed); this.x = this.scale * this.scale * this.scale * (this._toX + 3 * (this._aX - this._bX) - this._fromX) + 3 * this.scale * this.scale * (this._fromX - 2 * this._aX + this._bX) + 3 * this.scale * (this._aX - this._fromX) + this._fromX; this.y = this.scale * this.scale * this.scale * (this._toY + 3 * (this._aY - this._bY) - this._fromY) + 3 * this.scale * this.scale * (this._fromY - 2 * this._aY + this._bY) + 3 * this.scale * (this._aY - this._fromY) + this._fromY; if(this.finished) { this.postUpdate(); } } ,__class__: flixel_tweens_motion_CubicMotion }); var flixel_tweens_motion_LinearMotion = function(Options,manager) { this._distance = -1; this._moveY = 0; this._moveX = 0; this._fromY = 0; this._fromX = 0; flixel_tweens_motion_Motion.call(this,Options,manager); }; $hxClasses["flixel.tweens.motion.LinearMotion"] = flixel_tweens_motion_LinearMotion; flixel_tweens_motion_LinearMotion.__name__ = "flixel.tweens.motion.LinearMotion"; flixel_tweens_motion_LinearMotion.__super__ = flixel_tweens_motion_Motion; flixel_tweens_motion_LinearMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{ _fromX: null ,_fromY: null ,_moveX: null ,_moveY: null ,_distance: null ,setMotion: function(FromX,FromY,ToX,ToY,DurationOrSpeed,UseDuration) { if(UseDuration == null) { UseDuration = true; } this._distance = -1; this.x = this._fromX = FromX; this.y = this._fromY = FromY; this._moveX = ToX - FromX; this._moveY = ToY - FromY; if(UseDuration) { this.duration = DurationOrSpeed; } else { this.duration = this.get_distance() / DurationOrSpeed; } this.start(); return this; } ,update: function(elapsed) { flixel_tweens_motion_Motion.prototype.update.call(this,elapsed); this.x = this._fromX + this._moveX * this.scale; this.y = this._fromY + this._moveY * this.scale; if(this.x == this._fromX + this._moveX && this.y == this._fromY + this._moveY && this.active && this._secondsSinceStart >= this.duration) { this.finished = true; } if(this.finished) { this.postUpdate(); } } ,get_distance: function() { if(this._distance >= 0) { return this._distance; } return this._distance = Math.sqrt(this._moveX * this._moveX + this._moveY * this._moveY); } ,__class__: flixel_tweens_motion_LinearMotion ,__properties__: $extend(flixel_tweens_motion_Motion.prototype.__properties__,{get_distance:"get_distance"}) }); var flixel_tweens_motion_LinearPath = function(Options,manager) { this._index = 0; this._speed = 0; this.distance = 0; flixel_tweens_motion_Motion.call(this,Options,manager); this.points = []; this._pointD = [0]; this._pointT = [0]; }; $hxClasses["flixel.tweens.motion.LinearPath"] = flixel_tweens_motion_LinearPath; flixel_tweens_motion_LinearPath.__name__ = "flixel.tweens.motion.LinearPath"; flixel_tweens_motion_LinearPath.__super__ = flixel_tweens_motion_Motion; flixel_tweens_motion_LinearPath.prototype = $extend(flixel_tweens_motion_Motion.prototype,{ distance: null ,points: null ,_pointD: null ,_pointT: null ,_speed: null ,_index: null ,_last: null ,_prevPoint: null ,_nextPoint: null ,destroy: function() { flixel_tweens_motion_Motion.prototype.destroy.call(this); var _g = 0; var _g1 = this.points; while(_g < _g1.length) { var point = _g1[_g]; ++_g; point = flixel_util_FlxDestroyUtil.put(point); } this._last = flixel_util_FlxDestroyUtil.put(this._last); this._prevPoint = flixel_util_FlxDestroyUtil.put(this._prevPoint); this._nextPoint = flixel_util_FlxDestroyUtil.put(this._nextPoint); } ,setMotion: function(DurationOrSpeed,UseDuration) { if(UseDuration == null) { UseDuration = true; } this.updatePath(); if(UseDuration) { this.duration = DurationOrSpeed; this._speed = this.distance / DurationOrSpeed; } else { this.duration = this.distance / DurationOrSpeed; this._speed = DurationOrSpeed; } this.start(); return this; } ,addPoint: function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } if(this._last != null) { this.distance += Math.sqrt((x - this._last.x) * (x - this._last.x) + (y - this._last.y) * (y - this._last.y)); this._pointD[this.points.length] = this.distance; } var tmp = this.points; var tmp1 = this.points.length; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; tmp[tmp1] = this._last = point; return this; } ,getPoint: function(index) { if(index == null) { index = 0; } if(this.points.length == 0) { throw haxe_Exception.thrown("No points have been added to the path yet."); } return this.points[index % this.points.length]; } ,start: function() { this._index = this.backward ? this.points.length - 1 : 0; flixel_tweens_motion_Motion.prototype.start.call(this); return this; } ,update: function(elapsed) { flixel_tweens_motion_Motion.prototype.update.call(this,elapsed); var td; var tt; if(this.points == null) { return; } if(!this.backward) { if(this._index < this.points.length - 1) { while(this.scale > this._pointT[this._index + 1]) { this._index++; if(this._index == this.points.length - 1) { this._index -= 1; break; } } } td = this._pointT[this._index]; tt = this._pointT[this._index + 1] - td; td = (this.scale - td) / tt; this._prevPoint = this.points[this._index]; this._nextPoint = this.points[this._index + 1]; this.x = this._prevPoint.x + (this._nextPoint.x - this._prevPoint.x) * td; this.y = this._prevPoint.y + (this._nextPoint.y - this._prevPoint.y) * td; } else { if(this._index > 0) { while(this.scale < this._pointT[this._index - 1]) { this._index -= 1; if(this._index == 0) { this._index += 1; break; } } } td = this._pointT[this._index]; tt = this._pointT[this._index - 1] - td; td = (this.scale - td) / tt; this._prevPoint = this.points[this._index]; this._nextPoint = this.points[this._index - 1]; this.x = this._prevPoint.x + (this._nextPoint.x - this._prevPoint.x) * td; this.y = this._prevPoint.y + (this._nextPoint.y - this._prevPoint.y) * td; } flixel_tweens_motion_Motion.prototype.postUpdate.call(this); } ,updatePath: function() { if(this.points.length < 2) { throw haxe_Exception.thrown("A LinearPath must have at least 2 points to operate."); } if(this._pointD.length == this._pointT.length) { return; } var i = 0; while(i < this.points.length) this._pointT[i] = this._pointD[i++] / this.distance; } ,__class__: flixel_tweens_motion_LinearPath }); var flixel_tweens_motion_QuadMotion = function(Options,manager) { this._controlY = 0; this._controlX = 0; this._toY = 0; this._toX = 0; this._fromY = 0; this._fromX = 0; this._distance = -1; flixel_tweens_motion_Motion.call(this,Options,manager); }; $hxClasses["flixel.tweens.motion.QuadMotion"] = flixel_tweens_motion_QuadMotion; flixel_tweens_motion_QuadMotion.__name__ = "flixel.tweens.motion.QuadMotion"; flixel_tweens_motion_QuadMotion.__super__ = flixel_tweens_motion_Motion; flixel_tweens_motion_QuadMotion.prototype = $extend(flixel_tweens_motion_Motion.prototype,{ _distance: null ,_fromX: null ,_fromY: null ,_toX: null ,_toY: null ,_controlX: null ,_controlY: null ,setMotion: function(FromX,FromY,ControlX,ControlY,ToX,ToY,DurationOrSpeed,UseDuration) { if(UseDuration == null) { UseDuration = true; } this._distance = -1; this.x = this._fromX = FromX; this.y = this._fromY = FromY; this._controlX = ControlX; this._controlY = ControlY; this._toX = ToX; this._toY = ToY; if(UseDuration) { this.duration = DurationOrSpeed; } else { this.duration = this.get_distance() / DurationOrSpeed; } this.start(); return this; } ,update: function(elapsed) { flixel_tweens_motion_Motion.prototype.update.call(this,elapsed); this.x = this._fromX * (1 - this.scale) * (1 - this.scale) + this._controlX * 2 * (1 - this.scale) * this.scale + this._toX * this.scale * this.scale; this.y = this._fromY * (1 - this.scale) * (1 - this.scale) + this._controlY * 2 * (1 - this.scale) * this.scale + this._toY * this.scale * this.scale; if(this.finished) { this.postUpdate(); } } ,get_distance: function() { if(this._distance >= 0) { return this._distance; } var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var p1 = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var p2 = point; p1.set_x(this.x - 2 * this._controlX + this._toX); p1.set_y(this.y - 2 * this._controlY + this._toY); p2.set_x(2 * this._controlX - 2 * this.x); p2.set_y(2 * this._controlY - 2 * this.y); var a = 4 * (p1.x * p1.x + p1.y * p1.y); var b = 4 * (p1.x * p2.x + p1.y * p2.y); var c = p2.x * p2.x + p2.y * p2.y; var abc = 2 * Math.sqrt(a + b + c); var a2 = Math.sqrt(a); var a32 = 2 * a * a2; var c2 = 2 * Math.sqrt(c); var ba = b / a2; p1.put(); p2.put(); return (a32 * abc + a2 * b * (abc - c2) + (4 * c * a - b * b) * Math.log((2 * a2 + ba + abc) / (ba + c2))) / (4 * a32); } ,__class__: flixel_tweens_motion_QuadMotion ,__properties__: $extend(flixel_tweens_motion_Motion.prototype.__properties__,{get_distance:"get_distance"}) }); var flixel_tweens_motion_QuadPath = function(Options,manager) { this._updateCurve = true; this._numSegs = 0; this._index = 0; this._speed = 0; this._distance = 0; flixel_tweens_motion_Motion.call(this,Options,manager); this._points = []; this._curveT = []; this._curveD = []; }; $hxClasses["flixel.tweens.motion.QuadPath"] = flixel_tweens_motion_QuadPath; flixel_tweens_motion_QuadPath.__name__ = "flixel.tweens.motion.QuadPath"; flixel_tweens_motion_QuadPath.__super__ = flixel_tweens_motion_Motion; flixel_tweens_motion_QuadPath.prototype = $extend(flixel_tweens_motion_Motion.prototype,{ _points: null ,_distance: null ,_speed: null ,_index: null ,_numSegs: null ,_updateCurve: null ,_curveT: null ,_curveD: null ,_a: null ,_b: null ,_c: null ,destroy: function() { flixel_tweens_motion_Motion.prototype.destroy.call(this); var _g = 0; var _g1 = this._points; while(_g < _g1.length) { var point = _g1[_g]; ++_g; point = flixel_util_FlxDestroyUtil.put(point); } this._a = flixel_util_FlxDestroyUtil.put(this._a); this._b = flixel_util_FlxDestroyUtil.put(this._b); this._c = flixel_util_FlxDestroyUtil.put(this._c); } ,setMotion: function(DurationOrSpeed,UseDuration) { if(UseDuration == null) { UseDuration = true; } this.updatePath(); if(UseDuration) { this.duration = DurationOrSpeed; this._speed = this._distance / DurationOrSpeed; } else { this.duration = this._distance / DurationOrSpeed; this._speed = DurationOrSpeed; } this.start(); return this; } ,addPoint: function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this._updateCurve = true; var tmp = this._points; var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; tmp.push(point); return this; } ,getPoint: function(index) { if(index == null) { index = 0; } if(this._points.length == 0) { throw haxe_Exception.thrown("No points have been added to the path yet."); } return this._points[index % this._points.length]; } ,start: function() { this._index = this.backward ? this._numSegs - 1 : 0; flixel_tweens_motion_Motion.prototype.start.call(this); return this; } ,update: function(elapsed) { flixel_tweens_motion_Motion.prototype.update.call(this,elapsed); var td; var tt; if(!this.backward && this._points != null) { if(this._index < this._numSegs - 1) { while(this.scale > this._curveT[this._index + 1]) { this._index++; if(this._index == this._numSegs - 1) { break; } } } td = this._curveT[this._index]; tt = this._curveT[this._index + 1] - td; td = (this.scale - td) / tt; this._a = this._points[this._index * 2]; this._b = this._points[this._index * 2 + 1]; this._c = this._points[this._index * 2 + 2]; this.x = this._a.x * (1 - td) * (1 - td) + this._b.x * 2 * (1 - td) * td + this._c.x * td * td; this.y = this._a.y * (1 - td) * (1 - td) + this._b.y * 2 * (1 - td) * td + this._c.y * td * td; } else if(this._points != null) { if(this._index > 0) { while(this.scale < this._curveT[this._index]) { this._index--; if(this._index == 0) { break; } } } td = this._curveT[this._index + 1]; tt = this._curveT[this._index] - td; td = (this.scale - td) / tt; this._a = this._points[this._index * 2 + 2]; this._b = this._points[this._index * 2 + 1]; this._c = this._points[this._index * 2]; this.x = this._a.x * (1 - td) * (1 - td) + this._b.x * 2 * (1 - td) * td + this._c.x * td * td; this.y = this._a.y * (1 - td) * (1 - td) + this._b.y * 2 * (1 - td) * td + this._c.y * td * td; } flixel_tweens_motion_Motion.prototype.postUpdate.call(this); } ,updatePath: function() { if((this._points.length - 1) % 2 != 0 || this._points.length < 3) { throw haxe_Exception.thrown("A QuadPath must have at least 3 points to operate and number of points must be a odd."); } if(!this._updateCurve) { return; } this._updateCurve = false; var i = 0; var j = 0; this._distance = 0; this._numSegs = (this._points.length - 1) / 2 | 0; while(i < this._numSegs) { j = i * 2; this._curveD[i] = this.getCurveLength(this._points[j],this._points[j + 1],this._points[j + 2]); this._distance += this._curveD[i++]; } i = 0; var d = 0; while(i < this._numSegs) { d += this._curveD[i]; this._curveT[i++] = d / this._distance; } this._curveT[this._numSegs - 1] = 1; this._curveT.unshift(0); } ,getCurveLength: function(start,control,finish) { var p = null; if(p == null) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; p = point; } var x = control.x; var y = control.y; if(y == null) { y = 0; } if(x == null) { x = 0; } p.set_x(x); p.set_y(y); var safeControl = p; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var p1 = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var p2 = point; var result = Math.abs(safeControl.x - start.x) <= 0.0000001 && Math.abs(safeControl.y - start.y) <= 0.0000001; if(start._weak) { start.put(); } if(result) { var x = 0.0000001; var y = 0.0000001; if(y == null) { y = 0; } if(x == null) { x = 0; } safeControl.set_x(safeControl.x + x); safeControl.set_y(safeControl.y + y); } var result = Math.abs(safeControl.x - finish.x) <= 0.0000001 && Math.abs(safeControl.y - finish.y) <= 0.0000001; if(finish._weak) { finish.put(); } if(result) { var x = 0.0000001; var y = 0.0000001; if(y == null) { y = 0; } if(x == null) { x = 0; } safeControl.set_x(safeControl.x + x); safeControl.set_y(safeControl.y + y); } p1.set_x(start.x - 2 * safeControl.x + finish.x); p1.set_y(start.y - 2 * safeControl.y + finish.y); p2.set_x(2 * safeControl.x - 2 * start.x); p2.set_y(2 * safeControl.y - 2 * start.y); var a = 4 * (p1.x * p1.x + p1.y * p1.y); var b = 4 * (p1.x * p2.x + p1.y * p2.y); var c = p2.x * p2.x + p2.y * p2.y; var abc = 2 * Math.sqrt(a + b + c); var a2 = Math.sqrt(a); var a32 = 2 * a * a2; var c2 = 2 * Math.sqrt(c); var ba = b / a2; p1.put(); p2.put(); safeControl.put(); return (a32 * abc + a2 * b * (abc - c2) + (4 * c * a - b * b) * Math.log((2 * a2 + ba + abc) / (ba + c2))) / (4 * a32); } ,__class__: flixel_tweens_motion_QuadPath }); var flixel_ui_FlxAnalog = function(X,Y,Radius,Ease,BaseGraphic,ThumbGraphic) { if(Ease == null) { Ease = 0.25; } if(Radius == null) { Radius = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } this._amount = 0; this._direction = 0; this._radius = 0; var _this = flixel_math_FlxRect._pool.get(); var X1 = 0; var Y1 = 0; var Width = 0; var Height = 0; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width; _this.height = Height; var rect = _this; rect._inPool = false; this._zone = rect; this._tempTouches = []; this.status = 0; flixel_group_FlxTypedSpriteGroup.call(this); this._radius = Radius; var Max = 60 / flixel_FlxG.updateFramerate; var lowerBound = Ease < 0 ? 0 : Ease; this._ease = Max != null && lowerBound > Max ? Max : lowerBound; flixel_ui_FlxAnalog._analogs.push(this); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this._point = point; this.createBase(BaseGraphic); this.createThumb(ThumbGraphic); this.set_x(X); this.set_y(Y); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); this.set_moves(false); }; $hxClasses["flixel.ui.FlxAnalog"] = flixel_ui_FlxAnalog; flixel_ui_FlxAnalog.__name__ = "flixel.ui.FlxAnalog"; flixel_ui_FlxAnalog.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_ui_FlxAnalog.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ status: null ,thumb: null ,base: null ,onUp: null ,onDown: null ,onOver: null ,onPressed: null ,_currentTouch: null ,_tempTouches: null ,_zone: null ,_radius: null ,_direction: null ,_amount: null ,_ease: null ,createBase: function(Graphic) { this.base = new flixel_FlxSprite(0,0,Graphic); if(Graphic == null) { this.base.set_frames(flixel_system_FlxAssets.getVirtualInputFrames()); this.base.animation.set_frameName("base"); var _this = this.base; _this.set_width(_this.frameWidth); _this.set_height(_this.frameHeight); } var fh = this.base; fh.set_x(fh.x + -this.base.get_width() * 0.5); var fh = this.base; fh.set_y(fh.y + -this.base.get_height() * 0.5); var this1 = this.base.scrollFactor; this1.set_x(0); this1.set_y(0); this.base.set_solid(false); this.add(this.base); } ,createThumb: function(Graphic) { this.thumb = new flixel_FlxSprite(0,0,Graphic); if(Graphic == null) { this.thumb.set_frames(flixel_system_FlxAssets.getVirtualInputFrames()); this.thumb.animation.set_frameName("thumb"); var _this = this.thumb; _this.set_width(_this.frameWidth); _this.set_height(_this.frameHeight); } var this1 = this.thumb.scrollFactor; this1.set_x(0); this1.set_y(0); this.thumb.set_solid(false); this.add(this.thumb); } ,createZone: function() { if(this.base != null && this._radius == 0) { this._radius = this.base.get_width() * 0.5; } var _this = this._zone; var X = this.x - this._radius; var Y = this.y - this._radius; var Width = 2 * this._radius; var Height = 2 * this._radius; 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; } ,destroy: function() { flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); this._zone = flixel_util_FlxDestroyUtil.put(this._zone); HxOverrides.remove(flixel_ui_FlxAnalog._analogs,this); this.onUp = null; this.onDown = null; this.onOver = null; this.onPressed = null; this.thumb = null; this.base = null; this._currentTouch = null; this._tempTouches = null; } ,update: function(elapsed) { var offAll = true; var this1 = this._point; var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var _this = flixel_FlxG.mouse._leftButton; if(!this.updateAnalog(this._point,_this.current == 1 || _this.current == 2,flixel_FlxG.mouse._leftButton.current == 2,flixel_FlxG.mouse._leftButton.current == -1)) { offAll = false; } if(this._currentTouch != null) { this._tempTouches.push(this._currentTouch); } else { var _g = 0; var _g1 = flixel_FlxG.touches.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; var touchInserted = false; var _g2 = 0; var _g3 = flixel_ui_FlxAnalog._analogs; while(_g2 < _g3.length) { var analog = _g3[_g2]; ++_g2; if(analog == this && analog._currentTouch != touch && !touchInserted) { this._tempTouches.push(touch); touchInserted = true; } } } } var _g = 0; var _g1 = this._tempTouches; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; this._point = touch.getWorldPosition(flixel_FlxG.camera,this._point); var _this = touch.input; if(!this.updateAnalog(this._point,_this.current == 1 || _this.current == 2,touch.input.current == 2,touch.input.current == -1,touch)) { offAll = false; break; } } if((this.status == 1 || this.status == 0) && this._amount != 0) { this._amount -= this._amount * this._ease * flixel_FlxG.updateFramerate / 60; if(Math.abs(this._amount) < 0.1) { this._amount = 0; this._direction = 0; } } this.thumb.set_x(this.x + Math.cos(this._direction) * this._amount * this._radius - this.thumb.get_width() * 0.5); this.thumb.set_y(this.y + Math.sin(this._direction) * this._amount * this._radius - this.thumb.get_height() * 0.5); if(offAll) { this.status = 0; } this._tempTouches.splice(0,this._tempTouches.length); flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,updateAnalog: function(TouchPoint,Pressed,JustPressed,JustReleased,Touch1) { var offAll = true; if(Touch1 != null) { var x = Touch1.screenX; var y = Touch1.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } TouchPoint.set_x(x); TouchPoint.set_y(y); } var result = flixel_math_FlxMath.pointInFlxRect(TouchPoint.x,TouchPoint.y,this._zone); if(TouchPoint._weak) { TouchPoint.put(); } if(result || this.status == 2) { offAll = false; if(Pressed) { if(Touch1 != null) { this._currentTouch = Touch1; } this.status = 2; if(JustPressed) { if(this.onDown != null) { this.onDown(); } } if(this.status == 2) { if(this.onPressed != null) { this.onPressed(); } var dx = TouchPoint.x - this.x; var dy = TouchPoint.y - this.y; var dist = Math.sqrt(dx * dx + dy * dy); if(dist < 1) { dist = 0; } this._direction = Math.atan2(dy,dx); this._amount = Math.min(this._radius,dist) / this._radius; this.acceleration.set_x(Math.cos(this._direction) * this._amount); this.acceleration.set_y(Math.sin(this._direction) * this._amount); } } else if(JustReleased && this.status == 2) { this._currentTouch = null; this.status = 1; if(this.onUp != null) { this.onUp(); } var this1 = this.acceleration; this1.set_x(0); this1.set_y(0); } if(this.status == 0) { this.status = 1; if(this.onOver != null) { this.onOver(); } } } return offAll; } ,getAngle: function() { return this._direction * (180 / Math.PI); } ,get_pressed: function() { return this.status == 2; } ,get_justPressed: function() { if(flixel_FlxG.mouse._leftButton.current == 2) { return this.status == 2; } else { return false; } } ,get_justReleased: function() { if(flixel_FlxG.mouse._leftButton.current == -1) { return this.status == 1; } else { return false; } } ,set_x: function(X) { flixel_group_FlxTypedSpriteGroup.prototype.set_x.call(this,X); this.createZone(); return X; } ,set_y: function(Y) { flixel_group_FlxTypedSpriteGroup.prototype.set_y.call(this,Y); this.createZone(); return Y; } ,__class__: flixel_ui_FlxAnalog ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{get_justReleased:"get_justReleased",get_justPressed:"get_justPressed",get_pressed:"get_pressed"}) }); var flixel_ui_FlxBarFillDirection = $hxEnums["flixel.ui.FlxBarFillDirection"] = { __ename__:"flixel.ui.FlxBarFillDirection",__constructs__:null ,LEFT_TO_RIGHT: {_hx_name:"LEFT_TO_RIGHT",_hx_index:0,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,RIGHT_TO_LEFT: {_hx_name:"RIGHT_TO_LEFT",_hx_index:1,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,TOP_TO_BOTTOM: {_hx_name:"TOP_TO_BOTTOM",_hx_index:2,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,BOTTOM_TO_TOP: {_hx_name:"BOTTOM_TO_TOP",_hx_index:3,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,HORIZONTAL_INSIDE_OUT: {_hx_name:"HORIZONTAL_INSIDE_OUT",_hx_index:4,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,HORIZONTAL_OUTSIDE_IN: {_hx_name:"HORIZONTAL_OUTSIDE_IN",_hx_index:5,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,VERTICAL_INSIDE_OUT: {_hx_name:"VERTICAL_INSIDE_OUT",_hx_index:6,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} ,VERTICAL_OUTSIDE_IN: {_hx_name:"VERTICAL_OUTSIDE_IN",_hx_index:7,__enum__:"flixel.ui.FlxBarFillDirection",toString:$estr} }; flixel_ui_FlxBarFillDirection.__constructs__ = [flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT,flixel_ui_FlxBarFillDirection.RIGHT_TO_LEFT,flixel_ui_FlxBarFillDirection.TOP_TO_BOTTOM,flixel_ui_FlxBarFillDirection.BOTTOM_TO_TOP,flixel_ui_FlxBarFillDirection.HORIZONTAL_INSIDE_OUT,flixel_ui_FlxBarFillDirection.HORIZONTAL_OUTSIDE_IN,flixel_ui_FlxBarFillDirection.VERTICAL_INSIDE_OUT,flixel_ui_FlxBarFillDirection.VERTICAL_OUTSIDE_IN]; flixel_ui_FlxBarFillDirection.__empty_constructs__ = [flixel_ui_FlxBarFillDirection.LEFT_TO_RIGHT,flixel_ui_FlxBarFillDirection.RIGHT_TO_LEFT,flixel_ui_FlxBarFillDirection.TOP_TO_BOTTOM,flixel_ui_FlxBarFillDirection.BOTTOM_TO_TOP,flixel_ui_FlxBarFillDirection.HORIZONTAL_INSIDE_OUT,flixel_ui_FlxBarFillDirection.HORIZONTAL_OUTSIDE_IN,flixel_ui_FlxBarFillDirection.VERTICAL_INSIDE_OUT,flixel_ui_FlxBarFillDirection.VERTICAL_OUTSIDE_IN]; var flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText = function(X,Y,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.lastStatus = -1; this.maxInputMovement = Infinity; this.mouseButtons = [-1]; this.allowSwiping = true; this.statusAnimations = ["normal","highlight","pressed"]; this.labelAlphas = [0.8,1.0,0.5]; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; var x = 0; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point2 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point2._inPool = false; this.labelOffsets = [point,point1,point2]; flixel_FlxSprite.call(this,X,Y); this.loadDefaultGraphic(); this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick); this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent(); this.set_status(0); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener)); this.input = new flixel_input_FlxInput(0); }; $hxClasses["flixel.ui.FlxTypedButton_flixel_text_FlxBitmapText"] = flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText; flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.__name__ = "flixel.ui.FlxTypedButton_flixel_text_FlxBitmapText"; flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.__interfaces__ = [flixel_input_IFlxInput]; flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.__super__ = flixel_FlxSprite; flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.prototype = $extend(flixel_FlxSprite.prototype,{ label: null ,labelOffsets: null ,labelAlphas: null ,statusAnimations: null ,allowSwiping: null ,mouseButtons: null ,maxInputMovement: null ,status: null ,onUp: null ,onDown: null ,onOver: null ,onOut: null ,_spriteLabel: null ,input: null ,currentInput: null ,lastStatus: null ,graphicLoaded: function() { flixel_FlxSprite.prototype.graphicLoaded.call(this); this.setupAnimation("normal",0); this.setupAnimation("highlight",1); this.setupAnimation("pressed",2); } ,loadDefaultGraphic: function() { this.loadGraphic("flixel/images/ui/button.png",true,80,20); } ,setupAnimation: function(animationName,frameIndex) { frameIndex = Math.min(frameIndex,this.animation._sprite.get_numFrames() - 1) | 0; this.animation.add(animationName,[frameIndex]); } ,destroy: function() { this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label)); this._spriteLabel = null; this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp); this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown); this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver); this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut); this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets); this.labelAlphas = null; this.currentInput = null; this.input = null; openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener)); flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); if(this.visible) { this.updateButton(); if(this.lastStatus != this.status) { this.updateStatusAnimation(); this.lastStatus = this.status; } } this.input.update(); } ,updateStatusAnimation: function() { this.animation.play(this.statusAnimations[this.status]); } ,draw: function() { flixel_FlxSprite.prototype.draw.call(this); if(this._spriteLabel != null && this._spriteLabel.visible) { this._spriteLabel.set_cameras(this.get_cameras()); this._spriteLabel.draw(); } } ,stampOnAtlas: function(atlas) { var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key); var result = buttonNode != null; if(buttonNode != null) { var buttonFrames = this.frames; var x = buttonFrames.tileSize.x; var y = buttonFrames.tileSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; var tileFrames = buttonNode.getTileFrames(tileSize); this.set_frames(tileFrames); } if(result && this.label != null) { var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key); result = result && labelNode != null; if(labelNode != null) { this.label.set_frames(labelNode.getImageFrame()); } } return result; } ,updateButton: function() { var overlapFound = this.checkMouseOverlap(); if(!overlapFound) { overlapFound = this.checkTouchOverlap(); } if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) { this.onUpHandler(); } if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) { this.onOutHandler(); } } ,checkMouseOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = this.mouseButtons; while(_g2 < _g3.length) { var buttonID = _g3[_g2]; ++_g2; var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID); if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkTouchOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var touch = _g3[_g2]; ++_g2; if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkInput: function(pointer,input,justPressedPosition,camera) { var tmp; if(this.maxInputMovement != Infinity) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; tmp = flixel_math_FlxPoint.distanceTo(justPressedPosition,pointer.getScreenPosition(null,point1)) > this.maxInputMovement; } else { tmp = false; } if(tmp && input == this.currentInput) { this.currentInput = null; } else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) { this.updateStatus(input); return true; } return false; } ,updateStatus: function(input) { if(input.get_justPressed()) { this.currentInput = input; this.onDownHandler(); } else if(this.status == 0) { if(this.allowSwiping && input.get_pressed()) { this.onDownHandler(); } else { this.onOverHandler(); } } } ,updateLabelPosition: function() { if(this._spriteLabel != null) { this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x); this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y); } } ,updateLabelAlpha: function() { if(this._spriteLabel != null && this.labelAlphas.length > this.status) { this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]); } } ,onUpEventListener: function(_) { if(this.visible && this.exists && this.active && this.status == 2) { this.onUpHandler(); } } ,onUpHandler: function() { this.set_status(1); this.input.release(); this.currentInput = null; var _this = this.onUp; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onDownHandler: function() { this.set_status(2); this.input.press(); var _this = this.onDown; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOverHandler: function() { if(!flixel_FlxG.mouse.enabled) { this.set_status(0); return; } this.set_status(1); var _this = this.onOver; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOutHandler: function() { this.set_status(0); this.input.release(); var _this = this.onOut; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,set_label: function(Value) { if(Value != null) { Value.scrollFactor.put(); Value.scrollFactor = this.scrollFactor; } this.label = Value; this._spriteLabel = this.label; this.updateLabelPosition(); return Value; } ,set_status: function(Value) { this.status = Value; this.updateLabelAlpha(); return this.status; } ,set_alpha: function(Value) { flixel_FlxSprite.prototype.set_alpha.call(this,Value); this.updateLabelAlpha(); return this.alpha; } ,set_x: function(Value) { flixel_FlxSprite.prototype.set_x.call(this,Value); this.updateLabelPosition(); return this.x; } ,set_y: function(Value) { flixel_FlxSprite.prototype.set_y.call(this,Value); this.updateLabelPosition(); return this.y; } ,get_justReleased: function() { return this.input.current == -1; } ,get_released: function() { var _this = this.input; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_pressed: function() { var _this = this.input; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressed: function() { return this.input.current == 2; } ,__class__: flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"}) }); var flixel_ui_FlxBitmapTextButton = function(X,Y,Label,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.call(this,X,Y,OnClick); if(Label != null) { this.set_label(new flixel_text_FlxBitmapText()); this.label.set_width(80); this.label.set_text(Label); this.label.set_color(-13421773); this.label.set_useTextColor(true); this.label.set_alignment("center"); var _g = 0; var _g1 = this.labelOffsets; while(_g < _g1.length) { var offset = _g1[_g]; ++_g; var x = 0; var y = 5; if(y == null) { y = 0; } if(x == null) { x = 0; } offset.set_x(x); offset.set_y(y); } this.label.set_x(X + this.labelOffsets[this.status].x); this.label.set_y(Y + this.labelOffsets[this.status].y); } }; $hxClasses["flixel.ui.FlxBitmapTextButton"] = flixel_ui_FlxBitmapTextButton; flixel_ui_FlxBitmapTextButton.__name__ = "flixel.ui.FlxBitmapTextButton"; flixel_ui_FlxBitmapTextButton.__super__ = flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText; flixel_ui_FlxBitmapTextButton.prototype = $extend(flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.prototype,{ resetHelpers: function() { flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.prototype.resetHelpers.call(this); if(this.label != null) { this.label.set_width(this.get_width()); } } ,update: function(elapsed) { flixel_ui_FlxTypedButton_$flixel_$text_$FlxBitmapText.prototype.update.call(this,elapsed); if(this.label != null) { this.label.update(elapsed); } } ,__class__: flixel_ui_FlxBitmapTextButton }); var flixel_ui_FlxTypedButton_$flixel_$text_$FlxText = function(X,Y,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.lastStatus = -1; this.maxInputMovement = Infinity; this.mouseButtons = [-1]; this.allowSwiping = true; this.statusAnimations = ["normal","highlight","pressed"]; this.labelAlphas = [0.8,1.0,0.5]; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; var x = 0; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point2 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point2._inPool = false; this.labelOffsets = [point,point1,point2]; flixel_FlxSprite.call(this,X,Y); this.loadDefaultGraphic(); this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick); this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent(); this.set_status(0); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener)); this.input = new flixel_input_FlxInput(0); }; $hxClasses["flixel.ui.FlxTypedButton_flixel_text_FlxText"] = flixel_ui_FlxTypedButton_$flixel_$text_$FlxText; flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.__name__ = "flixel.ui.FlxTypedButton_flixel_text_FlxText"; flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.__interfaces__ = [flixel_input_IFlxInput]; flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.__super__ = flixel_FlxSprite; flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype = $extend(flixel_FlxSprite.prototype,{ label: null ,labelOffsets: null ,labelAlphas: null ,statusAnimations: null ,allowSwiping: null ,mouseButtons: null ,maxInputMovement: null ,status: null ,onUp: null ,onDown: null ,onOver: null ,onOut: null ,_spriteLabel: null ,input: null ,currentInput: null ,lastStatus: null ,graphicLoaded: function() { flixel_FlxSprite.prototype.graphicLoaded.call(this); this.setupAnimation("normal",0); this.setupAnimation("highlight",1); this.setupAnimation("pressed",2); } ,loadDefaultGraphic: function() { this.loadGraphic("flixel/images/ui/button.png",true,80,20); } ,setupAnimation: function(animationName,frameIndex) { frameIndex = Math.min(frameIndex,this.animation._sprite.get_numFrames() - 1) | 0; this.animation.add(animationName,[frameIndex]); } ,destroy: function() { this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label)); this._spriteLabel = null; this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp); this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown); this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver); this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut); this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets); this.labelAlphas = null; this.currentInput = null; this.input = null; openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener)); flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); if(this.visible) { this.updateButton(); if(this.lastStatus != this.status) { this.updateStatusAnimation(); this.lastStatus = this.status; } } this.input.update(); } ,updateStatusAnimation: function() { this.animation.play(this.statusAnimations[this.status]); } ,draw: function() { flixel_FlxSprite.prototype.draw.call(this); if(this._spriteLabel != null && this._spriteLabel.visible) { this._spriteLabel.set_cameras(this.get_cameras()); this._spriteLabel.draw(); } } ,stampOnAtlas: function(atlas) { var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key); var result = buttonNode != null; if(buttonNode != null) { var buttonFrames = this.frames; var x = buttonFrames.tileSize.x; var y = buttonFrames.tileSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; var tileFrames = buttonNode.getTileFrames(tileSize); this.set_frames(tileFrames); } if(result && this.label != null) { var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key); result = result && labelNode != null; if(labelNode != null) { this.label.set_frames(labelNode.getImageFrame()); } } return result; } ,updateButton: function() { var overlapFound = this.checkMouseOverlap(); if(!overlapFound) { overlapFound = this.checkTouchOverlap(); } if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) { this.onUpHandler(); } if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) { this.onOutHandler(); } } ,checkMouseOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = this.mouseButtons; while(_g2 < _g3.length) { var buttonID = _g3[_g2]; ++_g2; var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID); if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkTouchOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var touch = _g3[_g2]; ++_g2; if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkInput: function(pointer,input,justPressedPosition,camera) { var tmp; if(this.maxInputMovement != Infinity) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; tmp = flixel_math_FlxPoint.distanceTo(justPressedPosition,pointer.getScreenPosition(null,point1)) > this.maxInputMovement; } else { tmp = false; } if(tmp && input == this.currentInput) { this.currentInput = null; } else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) { this.updateStatus(input); return true; } return false; } ,updateStatus: function(input) { if(input.get_justPressed()) { this.currentInput = input; this.onDownHandler(); } else if(this.status == 0) { if(this.allowSwiping && input.get_pressed()) { this.onDownHandler(); } else { this.onOverHandler(); } } } ,updateLabelPosition: function() { if(this._spriteLabel != null) { this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x); this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y); } } ,updateLabelAlpha: function() { if(this._spriteLabel != null && this.labelAlphas.length > this.status) { this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]); } } ,onUpEventListener: function(_) { if(this.visible && this.exists && this.active && this.status == 2) { this.onUpHandler(); } } ,onUpHandler: function() { this.set_status(1); this.input.release(); this.currentInput = null; var _this = this.onUp; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onDownHandler: function() { this.set_status(2); this.input.press(); var _this = this.onDown; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOverHandler: function() { if(!flixel_FlxG.mouse.enabled) { this.set_status(0); return; } this.set_status(1); var _this = this.onOver; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOutHandler: function() { this.set_status(0); this.input.release(); var _this = this.onOut; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,set_label: function(Value) { if(Value != null) { Value.scrollFactor.put(); Value.scrollFactor = this.scrollFactor; } this.label = Value; this._spriteLabel = this.label; this.updateLabelPosition(); return Value; } ,set_status: function(Value) { this.status = Value; this.updateLabelAlpha(); return this.status; } ,set_alpha: function(Value) { flixel_FlxSprite.prototype.set_alpha.call(this,Value); this.updateLabelAlpha(); return this.alpha; } ,set_x: function(Value) { flixel_FlxSprite.prototype.set_x.call(this,Value); this.updateLabelPosition(); return this.x; } ,set_y: function(Value) { flixel_FlxSprite.prototype.set_y.call(this,Value); this.updateLabelPosition(); return this.y; } ,get_justReleased: function() { return this.input.current == -1; } ,get_released: function() { var _this = this.input; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_pressed: function() { var _this = this.input; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressed: function() { return this.input.current == 2; } ,__class__: flixel_ui_FlxTypedButton_$flixel_$text_$FlxText ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"}) }); var flixel_ui_FlxButton = function(X,Y,Text1,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.call(this,X,Y,OnClick); var _g = 0; var _g1 = this.labelOffsets; while(_g < _g1.length) { var point = _g1[_g]; ++_g; var x = point.x; var y = point.y + 3; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(x); point.set_y(y); } if(Text1 != null) { this.set_label(new flixel_text_FlxText(this.x + this.labelOffsets[0].x,this.y + this.labelOffsets[0].y,80,Text1)); this.label.setFormat(null,8,3355443,"center"); this.label.set_alpha(this.labelAlphas[this.status]); this.label.drawFrame(true); } }; $hxClasses["flixel.ui.FlxButton"] = flixel_ui_FlxButton; flixel_ui_FlxButton.__name__ = "flixel.ui.FlxButton"; flixel_ui_FlxButton.__super__ = flixel_ui_FlxTypedButton_$flixel_$text_$FlxText; flixel_ui_FlxButton.prototype = $extend(flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype,{ resetHelpers: function() { flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype.resetHelpers.call(this); if(this.label != null) { var tmp = this.label; var tmp1 = this.get_width() | 0; tmp.set_fieldWidth(this.label.frameWidth = tmp1); this.label.set_size(this.label._defaultFormat.size | 0); } } ,initLabel: function(Text1) { if(Text1 != null) { this.set_label(new flixel_text_FlxText(this.x + this.labelOffsets[0].x,this.y + this.labelOffsets[0].y,80,Text1)); this.label.setFormat(null,8,3355443,"center"); this.label.set_alpha(this.labelAlphas[this.status]); this.label.drawFrame(true); } } ,get_text: function() { if(this.label != null) { return this.label.text; } else { return null; } } ,set_text: function(Text1) { if(this.label == null) { if(Text1 != null) { this.set_label(new flixel_text_FlxText(this.x + this.labelOffsets[0].x,this.y + this.labelOffsets[0].y,80,Text1)); this.label.setFormat(null,8,3355443,"center"); this.label.set_alpha(this.labelAlphas[this.status]); this.label.drawFrame(true); } } else { this.label.set_text(Text1); } return Text1; } ,__class__: flixel_ui_FlxButton ,__properties__: $extend(flixel_ui_FlxTypedButton_$flixel_$text_$FlxText.prototype.__properties__,{set_text:"set_text",get_text:"get_text"}) }); var flixel_ui__$FlxButton_FlxButtonEvent = function(Callback,sound) { this.callback = Callback; this.sound = sound; }; $hxClasses["flixel.ui._FlxButton.FlxButtonEvent"] = flixel_ui__$FlxButton_FlxButtonEvent; flixel_ui__$FlxButton_FlxButtonEvent.__name__ = "flixel.ui._FlxButton.FlxButtonEvent"; flixel_ui__$FlxButton_FlxButtonEvent.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_ui__$FlxButton_FlxButtonEvent.prototype = { callback: null ,sound: null ,destroy: function() { this.callback = null; this.sound = flixel_util_FlxDestroyUtil.destroy(this.sound); } ,fire: function() { if(this.callback != null) { this.callback(); } if(this.sound != null) { this.sound.play(true); } } ,__class__: flixel_ui__$FlxButton_FlxButtonEvent }; var flixel_ui_FlxTypedButton_$flixel_$FlxSprite = function(X,Y,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.lastStatus = -1; this.maxInputMovement = Infinity; this.mouseButtons = [-1]; this.allowSwiping = true; this.statusAnimations = ["normal","highlight","pressed"]; this.labelAlphas = [0.8,1.0,0.5]; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; var x = 0; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point2 = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point2._inPool = false; this.labelOffsets = [point,point1,point2]; flixel_FlxSprite.call(this,X,Y); this.loadDefaultGraphic(); this.onUp = new flixel_ui__$FlxButton_FlxButtonEvent(OnClick); this.onDown = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOver = new flixel_ui__$FlxButton_FlxButtonEvent(); this.onOut = new flixel_ui__$FlxButton_FlxButtonEvent(); this.set_status(0); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); openfl_Lib.get_current().stage.addEventListener("mouseUp",$bind(this,this.onUpEventListener)); this.input = new flixel_input_FlxInput(0); }; $hxClasses["flixel.ui.FlxTypedButton_flixel_FlxSprite"] = flixel_ui_FlxTypedButton_$flixel_$FlxSprite; flixel_ui_FlxTypedButton_$flixel_$FlxSprite.__name__ = "flixel.ui.FlxTypedButton_flixel_FlxSprite"; flixel_ui_FlxTypedButton_$flixel_$FlxSprite.__interfaces__ = [flixel_input_IFlxInput]; flixel_ui_FlxTypedButton_$flixel_$FlxSprite.__super__ = flixel_FlxSprite; flixel_ui_FlxTypedButton_$flixel_$FlxSprite.prototype = $extend(flixel_FlxSprite.prototype,{ label: null ,labelOffsets: null ,labelAlphas: null ,statusAnimations: null ,allowSwiping: null ,mouseButtons: null ,maxInputMovement: null ,status: null ,onUp: null ,onDown: null ,onOver: null ,onOut: null ,_spriteLabel: null ,input: null ,currentInput: null ,lastStatus: null ,graphicLoaded: function() { flixel_FlxSprite.prototype.graphicLoaded.call(this); this.setupAnimation("normal",0); this.setupAnimation("highlight",1); this.setupAnimation("pressed",2); } ,loadDefaultGraphic: function() { this.loadGraphic("flixel/images/ui/button.png",true,80,20); } ,setupAnimation: function(animationName,frameIndex) { frameIndex = Math.min(frameIndex,this.animation._sprite.get_numFrames() - 1) | 0; this.animation.add(animationName,[frameIndex]); } ,destroy: function() { this.set_label(flixel_util_FlxDestroyUtil.destroy(this.label)); this._spriteLabel = null; this.onUp = flixel_util_FlxDestroyUtil.destroy(this.onUp); this.onDown = flixel_util_FlxDestroyUtil.destroy(this.onDown); this.onOver = flixel_util_FlxDestroyUtil.destroy(this.onOver); this.onOut = flixel_util_FlxDestroyUtil.destroy(this.onOut); this.labelOffsets = flixel_util_FlxDestroyUtil.putArray(this.labelOffsets); this.labelAlphas = null; this.currentInput = null; this.input = null; openfl_Lib.get_current().stage.removeEventListener("mouseUp",$bind(this,this.onUpEventListener)); flixel_FlxSprite.prototype.destroy.call(this); } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); if(this.visible) { this.updateButton(); if(this.lastStatus != this.status) { this.updateStatusAnimation(); this.lastStatus = this.status; } } this.input.update(); } ,updateStatusAnimation: function() { this.animation.play(this.statusAnimations[this.status]); } ,draw: function() { flixel_FlxSprite.prototype.draw.call(this); if(this._spriteLabel != null && this._spriteLabel.visible) { this._spriteLabel.set_cameras(this.get_cameras()); this._spriteLabel.draw(); } } ,stampOnAtlas: function(atlas) { var buttonNode = atlas.addNode(this.graphic.bitmap,this.graphic.key); var result = buttonNode != null; if(buttonNode != null) { var buttonFrames = this.frames; var x = buttonFrames.tileSize.x; var y = buttonFrames.tileSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tileSize = point; var tileFrames = buttonNode.getTileFrames(tileSize); this.set_frames(tileFrames); } if(result && this.label != null) { var labelNode = atlas.addNode(this.label.graphic.bitmap,this.label.graphic.key); result = result && labelNode != null; if(labelNode != null) { this.label.set_frames(labelNode.getImageFrame()); } } return result; } ,updateButton: function() { var overlapFound = this.checkMouseOverlap(); if(!overlapFound) { overlapFound = this.checkTouchOverlap(); } if(this.currentInput != null && this.currentInput.get_justReleased() && overlapFound) { this.onUpHandler(); } if(this.status != 0 && (!overlapFound || this.currentInput != null && this.currentInput.get_justReleased())) { this.onOutHandler(); } } ,checkMouseOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = this.mouseButtons; while(_g2 < _g3.length) { var buttonID = _g3[_g2]; ++_g2; var button = flixel_input_mouse_FlxMouseButton.getByID(buttonID); if(button != null && this.checkInput(flixel_FlxG.mouse,button,button.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkTouchOverlap: function() { var overlap = false; var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; var _g2 = 0; var _g3 = flixel_FlxG.touches.list; while(_g2 < _g3.length) { var touch = _g3[_g2]; ++_g2; if(this.checkInput(touch,touch,touch.justPressedPosition,camera)) { overlap = true; } } } return overlap; } ,checkInput: function(pointer,input,justPressedPosition,camera) { var tmp; if(this.maxInputMovement != Infinity) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var point1 = point; point1._weak = true; tmp = flixel_math_FlxPoint.distanceTo(justPressedPosition,pointer.getScreenPosition(null,point1)) > this.maxInputMovement; } else { tmp = false; } if(tmp && input == this.currentInput) { this.currentInput = null; } else if(this.overlapsPoint(pointer.getWorldPosition(camera,this._point),true,camera)) { this.updateStatus(input); return true; } return false; } ,updateStatus: function(input) { if(input.get_justPressed()) { this.currentInput = input; this.onDownHandler(); } else if(this.status == 0) { if(this.allowSwiping && input.get_pressed()) { this.onDownHandler(); } else { this.onOverHandler(); } } } ,updateLabelPosition: function() { if(this._spriteLabel != null) { this._spriteLabel.set_x((this.pixelPerfectPosition ? Math.floor(this.x) : this.x) + this.labelOffsets[this.status].x); this._spriteLabel.set_y((this.pixelPerfectPosition ? Math.floor(this.y) : this.y) + this.labelOffsets[this.status].y); } } ,updateLabelAlpha: function() { if(this._spriteLabel != null && this.labelAlphas.length > this.status) { this._spriteLabel.set_alpha(this.alpha * this.labelAlphas[this.status]); } } ,onUpEventListener: function(_) { if(this.visible && this.exists && this.active && this.status == 2) { this.onUpHandler(); } } ,onUpHandler: function() { this.set_status(1); this.input.release(); this.currentInput = null; var _this = this.onUp; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onDownHandler: function() { this.set_status(2); this.input.press(); var _this = this.onDown; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOverHandler: function() { if(!flixel_FlxG.mouse.enabled) { this.set_status(0); return; } this.set_status(1); var _this = this.onOver; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,onOutHandler: function() { this.set_status(0); this.input.release(); var _this = this.onOut; if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } ,set_label: function(Value) { if(Value != null) { Value.scrollFactor.put(); Value.scrollFactor = this.scrollFactor; } this.label = Value; this._spriteLabel = this.label; this.updateLabelPosition(); return Value; } ,set_status: function(Value) { this.status = Value; this.updateLabelAlpha(); return this.status; } ,set_alpha: function(Value) { flixel_FlxSprite.prototype.set_alpha.call(this,Value); this.updateLabelAlpha(); return this.alpha; } ,set_x: function(Value) { flixel_FlxSprite.prototype.set_x.call(this,Value); this.updateLabelPosition(); return this.x; } ,set_y: function(Value) { flixel_FlxSprite.prototype.set_y.call(this,Value); this.updateLabelPosition(); return this.y; } ,get_justReleased: function() { return this.input.current == -1; } ,get_released: function() { var _this = this.input; if(_this.current != 0) { return _this.current == -1; } else { return true; } } ,get_pressed: function() { var _this = this.input; if(_this.current != 1) { return _this.current == 2; } else { return true; } } ,get_justPressed: function() { return this.input.current == 2; } ,__class__: flixel_ui_FlxTypedButton_$flixel_$FlxSprite ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_justPressed:"get_justPressed",get_pressed:"get_pressed",get_released:"get_released",get_justReleased:"get_justReleased",set_status:"set_status",set_label:"set_label"}) }); var flixel_ui_FlxSpriteButton = function(X,Y,Label,OnClick) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } flixel_ui_FlxTypedButton_$flixel_$FlxSprite.call(this,X,Y,OnClick); var _g = 0; var _g1 = this.labelOffsets; while(_g < _g1.length) { var point = _g1[_g]; ++_g; var x = point.x - 1; var y = point.y + 4; if(y == null) { y = 0; } if(x == null) { x = 0; } point.set_x(x); point.set_y(y); } this.set_label(Label); }; $hxClasses["flixel.ui.FlxSpriteButton"] = flixel_ui_FlxSpriteButton; flixel_ui_FlxSpriteButton.__name__ = "flixel.ui.FlxSpriteButton"; flixel_ui_FlxSpriteButton.__interfaces__ = [flixel_input_IFlxInput]; flixel_ui_FlxSpriteButton.__super__ = flixel_ui_FlxTypedButton_$flixel_$FlxSprite; flixel_ui_FlxSpriteButton.prototype = $extend(flixel_ui_FlxTypedButton_$flixel_$FlxSprite.prototype,{ createTextLabel: function(Text1,font,size,color,align) { if(align == null) { align = "center"; } if(color == null) { color = 3355443; } if(size == null) { size = 8; } if(Text1 != null) { var text = new flixel_text_FlxText(0,0,this.frameWidth,Text1); text.setFormat(font,size,color,align); text.set_alpha(this.labelAlphas[this.status]); text.drawFrame(true); var labelBitmap = text.graphic.bitmap.clone(); var labelKey = text.graphic.key; text.destroy(); if(this.label == null) { this.set_label(new flixel_FlxSprite()); } var labelGraphic = flixel_FlxG.bitmap.add(labelBitmap,false,labelKey); this.label.set_frames(flixel_graphics_frames_FlxImageFrame.fromGraphic(labelGraphic)); } return this; } ,__class__: flixel_ui_FlxSpriteButton }); var flixel_ui_FlxVirtualPad = function(DPad,Action) { flixel_group_FlxTypedSpriteGroup.call(this); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); if(DPad == null) { DPad = flixel_ui_FlxDPadMode.FULL; } if(Action == null) { Action = flixel_ui_FlxActionMode.A_B_C; } this.dPad = new flixel_group_FlxTypedSpriteGroup(); var this1 = this.dPad.scrollFactor; this1.set_x(0); this1.set_y(0); this.actions = new flixel_group_FlxTypedSpriteGroup(); var this1 = this.actions.scrollFactor; this1.set_x(0); this1.set_y(0); switch(DPad._hx_index) { case 0: break; case 1: this.dPad.add(this.add(this.buttonUp = this.createButton(0,flixel_FlxG.height - 85,44,45,"up"))); this.dPad.add(this.add(this.buttonDown = this.createButton(0,flixel_FlxG.height - 45,44,45,"down"))); break; case 2: this.dPad.add(this.add(this.buttonLeft = this.createButton(0,flixel_FlxG.height - 45,44,45,"left"))); this.dPad.add(this.add(this.buttonRight = this.createButton(42,flixel_FlxG.height - 45,44,45,"right"))); break; case 3: this.dPad.add(this.add(this.buttonUp = this.createButton(35,flixel_FlxG.height - 81,44,45,"up"))); this.dPad.add(this.add(this.buttonLeft = this.createButton(0,flixel_FlxG.height - 45,44,45,"left"))); this.dPad.add(this.add(this.buttonRight = this.createButton(69,flixel_FlxG.height - 45,44,45,"right"))); break; case 4: this.dPad.add(this.add(this.buttonUp = this.createButton(35,flixel_FlxG.height - 116,44,45,"up"))); this.dPad.add(this.add(this.buttonLeft = this.createButton(0,flixel_FlxG.height - 81,44,45,"left"))); this.dPad.add(this.add(this.buttonRight = this.createButton(69,flixel_FlxG.height - 81,44,45,"right"))); this.dPad.add(this.add(this.buttonDown = this.createButton(35,flixel_FlxG.height - 45,44,45,"down"))); break; } switch(Action._hx_index) { case 0: break; case 1: this.actions.add(this.add(this.buttonA = this.createButton(flixel_FlxG.width - 44,flixel_FlxG.height - 45,44,45,"a"))); break; case 2: this.actions.add(this.add(this.buttonA = this.createButton(flixel_FlxG.width - 44,flixel_FlxG.height - 45,44,45,"a"))); this.actions.add(this.add(this.buttonB = this.createButton(flixel_FlxG.width - 86,flixel_FlxG.height - 45,44,45,"b"))); break; case 3: this.actions.add(this.add(this.buttonA = this.createButton(flixel_FlxG.width - 128,flixel_FlxG.height - 45,44,45,"a"))); this.actions.add(this.add(this.buttonB = this.createButton(flixel_FlxG.width - 86,flixel_FlxG.height - 45,44,45,"b"))); this.actions.add(this.add(this.buttonC = this.createButton(flixel_FlxG.width - 44,flixel_FlxG.height - 45,44,45,"c"))); break; case 4: this.actions.add(this.add(this.buttonY = this.createButton(flixel_FlxG.width - 86,flixel_FlxG.height - 85,44,45,"y"))); this.actions.add(this.add(this.buttonX = this.createButton(flixel_FlxG.width - 44,flixel_FlxG.height - 85,44,45,"x"))); this.actions.add(this.add(this.buttonB = this.createButton(flixel_FlxG.width - 86,flixel_FlxG.height - 45,44,45,"b"))); this.actions.add(this.add(this.buttonA = this.createButton(flixel_FlxG.width - 44,flixel_FlxG.height - 45,44,45,"a"))); break; } }; $hxClasses["flixel.ui.FlxVirtualPad"] = flixel_ui_FlxVirtualPad; flixel_ui_FlxVirtualPad.__name__ = "flixel.ui.FlxVirtualPad"; flixel_ui_FlxVirtualPad.__super__ = flixel_group_FlxTypedSpriteGroup; flixel_ui_FlxVirtualPad.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ buttonA: null ,buttonB: null ,buttonC: null ,buttonY: null ,buttonX: null ,buttonLeft: null ,buttonUp: null ,buttonRight: null ,buttonDown: null ,dPad: null ,actions: null ,destroy: function() { flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); this.dPad = flixel_util_FlxDestroyUtil.destroy(this.dPad); this.actions = flixel_util_FlxDestroyUtil.destroy(this.actions); this.dPad = null; this.actions = null; this.buttonA = null; this.buttonB = null; this.buttonC = null; this.buttonY = null; this.buttonX = null; this.buttonLeft = null; this.buttonUp = null; this.buttonDown = null; this.buttonRight = null; } ,createButton: function(X,Y,Width,Height,Graphic,OnClick) { var button = new flixel_ui_FlxButton(X,Y); var frame = flixel_system_FlxAssets.getVirtualInputFrames().framesByName.h[Graphic]; var x = Width; var y = Height; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; button.set_frames(flixel_graphics_frames_FlxTileFrames.fromFrame(frame,point)); button.set_width(button.frameWidth); button.set_height(button.frameHeight); button.set_solid(false); button.set_immovable(true); var this1 = button.scrollFactor; this1.set_x(0); this1.set_y(0); if(OnClick != null) { button.onDown.callback = OnClick; } return button; } ,__class__: flixel_ui_FlxVirtualPad }); var flixel_ui_FlxDPadMode = $hxEnums["flixel.ui.FlxDPadMode"] = { __ename__:"flixel.ui.FlxDPadMode",__constructs__:null ,NONE: {_hx_name:"NONE",_hx_index:0,__enum__:"flixel.ui.FlxDPadMode",toString:$estr} ,UP_DOWN: {_hx_name:"UP_DOWN",_hx_index:1,__enum__:"flixel.ui.FlxDPadMode",toString:$estr} ,LEFT_RIGHT: {_hx_name:"LEFT_RIGHT",_hx_index:2,__enum__:"flixel.ui.FlxDPadMode",toString:$estr} ,UP_LEFT_RIGHT: {_hx_name:"UP_LEFT_RIGHT",_hx_index:3,__enum__:"flixel.ui.FlxDPadMode",toString:$estr} ,FULL: {_hx_name:"FULL",_hx_index:4,__enum__:"flixel.ui.FlxDPadMode",toString:$estr} }; flixel_ui_FlxDPadMode.__constructs__ = [flixel_ui_FlxDPadMode.NONE,flixel_ui_FlxDPadMode.UP_DOWN,flixel_ui_FlxDPadMode.LEFT_RIGHT,flixel_ui_FlxDPadMode.UP_LEFT_RIGHT,flixel_ui_FlxDPadMode.FULL]; flixel_ui_FlxDPadMode.__empty_constructs__ = [flixel_ui_FlxDPadMode.NONE,flixel_ui_FlxDPadMode.UP_DOWN,flixel_ui_FlxDPadMode.LEFT_RIGHT,flixel_ui_FlxDPadMode.UP_LEFT_RIGHT,flixel_ui_FlxDPadMode.FULL]; var flixel_ui_FlxActionMode = $hxEnums["flixel.ui.FlxActionMode"] = { __ename__:"flixel.ui.FlxActionMode",__constructs__:null ,NONE: {_hx_name:"NONE",_hx_index:0,__enum__:"flixel.ui.FlxActionMode",toString:$estr} ,A: {_hx_name:"A",_hx_index:1,__enum__:"flixel.ui.FlxActionMode",toString:$estr} ,A_B: {_hx_name:"A_B",_hx_index:2,__enum__:"flixel.ui.FlxActionMode",toString:$estr} ,A_B_C: {_hx_name:"A_B_C",_hx_index:3,__enum__:"flixel.ui.FlxActionMode",toString:$estr} ,A_B_X_Y: {_hx_name:"A_B_X_Y",_hx_index:4,__enum__:"flixel.ui.FlxActionMode",toString:$estr} }; flixel_ui_FlxActionMode.__constructs__ = [flixel_ui_FlxActionMode.NONE,flixel_ui_FlxActionMode.A,flixel_ui_FlxActionMode.A_B,flixel_ui_FlxActionMode.A_B_C,flixel_ui_FlxActionMode.A_B_X_Y]; flixel_ui_FlxActionMode.__empty_constructs__ = [flixel_ui_FlxActionMode.NONE,flixel_ui_FlxActionMode.A,flixel_ui_FlxActionMode.A_B,flixel_ui_FlxActionMode.A_B_C,flixel_ui_FlxActionMode.A_B_X_Y]; var flixel_util_FlxArrayUtil = function() { }; $hxClasses["flixel.util.FlxArrayUtil"] = flixel_util_FlxArrayUtil; flixel_util_FlxArrayUtil.__name__ = "flixel.util.FlxArrayUtil"; flixel_util_FlxArrayUtil.setLength_flixel_system_replay_FrameRecord = function(array,newLength) { if(newLength < 0) { return array; } var oldLength = array.length; var diff = newLength - oldLength; if(diff >= 0) { return array; } diff = -diff; var _g = 0; var _g1 = diff; while(_g < _g1) { var i = _g++; array.pop(); } return array; }; flixel_util_FlxArrayUtil.setLength_Int = function(array,newLength) { if(newLength < 0) { return array; } var oldLength = array.length; var diff = newLength - oldLength; if(diff >= 0) { return array; } diff = -diff; var _g = 0; var _g1 = diff; while(_g < _g1) { var i = _g++; array.pop(); } return array; }; flixel_util_FlxArrayUtil.flatten2DArray_Int = function(array) { var result = []; var _g = 0; while(_g < array.length) { var innerArray = array[_g]; ++_g; var _g1 = 0; while(_g1 < innerArray.length) { var element = innerArray[_g1]; ++_g1; result.push(element); } } return result; }; flixel_util_FlxArrayUtil.setLength_cacheValue_T = function(array,newLength) { if(newLength < 0) { return array; } var oldLength = array.length; var diff = newLength - oldLength; if(diff >= 0) { return array; } diff = -diff; var _g = 0; var _g1 = diff; while(_g < _g1) { var i = _g++; array.pop(); } return array; }; flixel_util_FlxArrayUtil.fastSplice_flixel_util_FlxTimer = function(array,element) { var index = array.indexOf(element); if(index != -1) { array[index] = array[array.length - 1]; array.pop(); return array; } return array; }; flixel_util_FlxArrayUtil.fastSplice_flixel_tweens_FlxTween = function(array,element) { var index = array.indexOf(element); if(index != -1) { array[index] = array[array.length - 1]; array.pop(); return array; } return array; }; flixel_util_FlxArrayUtil.swapAndPop_fastSplice_T = function(array,index) { array[index] = array[array.length - 1]; array.pop(); return array; }; flixel_util_FlxArrayUtil.swapByIndex = function(array,index1,index2) { var temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; return array; }; flixel_util_FlxArrayUtil.safeSwapByIndex = function(array,index1,index2) { if(index1 >= 0 && index1 < array.length && index2 >= 0 && index2 < array.length) { var temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; } return array; }; flixel_util_FlxArrayUtil.swap = function(array,item1,item2) { var index1 = array.indexOf(item1); var index2 = array.indexOf(item2); var temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; return array; }; flixel_util_FlxArrayUtil.safeSwap = function(array,item1,item2) { var index1 = array.indexOf(item1); var index2 = array.indexOf(item2); if(index1 >= 0 && index1 < array.length && index2 >= 0 && index2 < array.length) { var temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; } return array; }; flixel_util_FlxArrayUtil.clearArray = function(array,recursive) { if(recursive == null) { recursive = false; } if(array == null) { return array; } if(recursive) { while(array.length > 0) { var thing = array.pop(); if(((thing) instanceof Array)) { flixel_util_FlxArrayUtil.clearArray(array,recursive); } } } else { while(array.length > 0) array.pop(); } return array; }; flixel_util_FlxArrayUtil.equals = function(array1,array2) { if(array1 == null && array2 == null) { return true; } if(array1 == null && array2 != null) { return false; } if(array1 != null && array2 == null) { return false; } if(array1.length != array2.length) { return false; } var _g = 0; var _g1 = array1.length; while(_g < _g1) { var i = _g++; if(array1[i] != array2[i]) { return false; } } return true; }; flixel_util_FlxArrayUtil.last = function(array) { if(array == null || array.length == 0) { return null; } return array[array.length - 1]; }; flixel_util_FlxArrayUtil.safePush = function(array,element) { if(array == null) { array = []; } array.push(element); return array; }; flixel_util_FlxArrayUtil.contains = function(array,element) { return array.indexOf(element) != -1; }; flixel_util_FlxArrayUtil.safeContains = function(array,element) { if(array != null) { return array.indexOf(element) != -1; } else { return false; } }; var flixel_util_FlxAxes = {}; flixel_util_FlxAxes.__properties__ = {get_self:"get_self",get_y:"get_y",get_x:"get_x"}; flixel_util_FlxAxes.get_self = function(this1) { return this1; }; flixel_util_FlxAxes.get_x = function(this1) { if(this1 != 1) { return this1 == 17; } else { return true; } }; flixel_util_FlxAxes.get_y = function(this1) { if(this1 != 16) { return this1 == 17; } else { return true; } }; flixel_util_FlxAxes.toString = function(this1) { switch(this1) { case 0: return "none"; case 1: return "x"; case 16: return "y"; case 17: return "xy"; } }; flixel_util_FlxAxes.fromBools = function(x,y) { return (x ? 1 : 0) | (y ? 16 : 0); }; flixel_util_FlxAxes.fromString = function(axes) { var _g = axes.toLowerCase(); if(_g == null) { return 0; } else { switch(_g) { case "":case "none": return 0; case "both":case "xy":case "yx": return 17; case "x": return 1; case "y": return 16; default: throw haxe_Exception.thrown("Invalid axes value: " + axes); } } }; var flixel_util_FlxBitmapDataPool = function() { }; $hxClasses["flixel.util.FlxBitmapDataPool"] = flixel_util_FlxBitmapDataPool; flixel_util_FlxBitmapDataPool.__name__ = "flixel.util.FlxBitmapDataPool"; flixel_util_FlxBitmapDataPool.__properties__ = {set_maxLength:"set_maxLength"}; flixel_util_FlxBitmapDataPool.get = function(w,h,transparent,fillColor,exactSize) { if(exactSize == null) { exactSize = false; } if(transparent == null) { transparent = true; } var res = null; var node = flixel_util_FlxBitmapDataPool._head; while(node != null) { var bmd = node.bmd; if(bmd.transparent == transparent && bmd.width >= w && bmd.height >= h && (!exactSize || exactSize && bmd.width == w && bmd.height == h)) { res = bmd; if(node.prev != null) { node.prev.next = node.next; } if(node.next != null) { node.next.prev = node.prev; } if(node == flixel_util_FlxBitmapDataPool._head) { flixel_util_FlxBitmapDataPool._head = node.next; } if(node == flixel_util_FlxBitmapDataPool._tail) { flixel_util_FlxBitmapDataPool._tail = node.prev; } node = null; flixel_util_FlxBitmapDataPool.$length--; break; } node = node.next; } if(res != null) { if(fillColor != null) { flixel_util_FlxBitmapDataPool._rect.x = 0; flixel_util_FlxBitmapDataPool._rect.y = 0; flixel_util_FlxBitmapDataPool._rect.width = w; flixel_util_FlxBitmapDataPool._rect.height = h; res.fillRect(flixel_util_FlxBitmapDataPool._rect,fillColor); } } else { res = new openfl_display_BitmapData(w,h,transparent,fillColor != null ? fillColor : -1); } return res; }; flixel_util_FlxBitmapDataPool.put = function(bmd) { if(flixel_util_FlxBitmapDataPool.$length >= flixel_util_FlxBitmapDataPool.maxLength) { var last = flixel_util_FlxBitmapDataPool._tail; last.bmd.dispose(); if(last.prev != null) { last.prev.next = null; flixel_util_FlxBitmapDataPool._tail = last.prev; } last = null; flixel_util_FlxBitmapDataPool.$length--; } var node = new flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode(bmd); node.next = flixel_util_FlxBitmapDataPool._head; if(flixel_util_FlxBitmapDataPool._head == null) { flixel_util_FlxBitmapDataPool._head = flixel_util_FlxBitmapDataPool._tail = node; } else { flixel_util_FlxBitmapDataPool._head = node; node.next.prev = node; } flixel_util_FlxBitmapDataPool.$length++; }; flixel_util_FlxBitmapDataPool.clear = function() { var node = flixel_util_FlxBitmapDataPool._head; while(node != null) { var bmd = node.bmd; bmd.dispose(); bmd = null; node = node.next; } flixel_util_FlxBitmapDataPool.$length = 0; flixel_util_FlxBitmapDataPool._head = flixel_util_FlxBitmapDataPool._tail = null; }; flixel_util_FlxBitmapDataPool.set_maxLength = function(value) { if(flixel_util_FlxBitmapDataPool.maxLength != value) { var node = flixel_util_FlxBitmapDataPool._tail; while(node != null && flixel_util_FlxBitmapDataPool.$length > value) { var bmd = node.bmd; bmd.dispose(); bmd = null; node = node.prev; flixel_util_FlxBitmapDataPool.$length--; } } return flixel_util_FlxBitmapDataPool.maxLength = value; }; var flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode = function(bmd,prev,next) { this.bmd = bmd; this.prev = prev; this.next = next; }; $hxClasses["flixel.util._FlxBitmapDataPool.FlxBitmapDataPoolNode"] = flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode; flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode.__name__ = "flixel.util._FlxBitmapDataPool.FlxBitmapDataPoolNode"; flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode.prototype = { bmd: null ,prev: null ,next: null ,__class__: flixel_util__$FlxBitmapDataPool_FlxBitmapDataPoolNode }; var flixel_util_FlxBitmapDataUtil = function() { }; $hxClasses["flixel.util.FlxBitmapDataUtil"] = flixel_util_FlxBitmapDataUtil; flixel_util_FlxBitmapDataUtil.__name__ = "flixel.util.FlxBitmapDataUtil"; flixel_util_FlxBitmapDataUtil.merge = function(sourceBitmapData,sourceRect,destBitmapData,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { if(destPoint.x >= destBitmapData.width || destPoint.y >= destBitmapData.height || sourceRect.x >= sourceBitmapData.width || sourceRect.y >= sourceBitmapData.height || sourceRect.x + sourceRect.width <= 0 || sourceRect.y + sourceRect.height <= 0) { return; } while(sourceRect.x + sourceRect.width > sourceBitmapData.width || sourceRect.y + sourceRect.height > sourceBitmapData.height || sourceRect.x < 0 || sourceRect.y < 0 || destPoint.x < 0 || destPoint.y < 0) { if(sourceRect.x + sourceRect.width > sourceBitmapData.width) { sourceRect.width = sourceBitmapData.width - sourceRect.x; } if(sourceRect.y + sourceRect.height > sourceBitmapData.height) { sourceRect.height = sourceBitmapData.height - sourceRect.y; } if(sourceRect.x < 0) { destPoint.x -= sourceRect.x; sourceRect.width += sourceRect.x; sourceRect.x = 0; } if(sourceRect.y < 0) { destPoint.y -= sourceRect.y; sourceRect.height += sourceRect.y; sourceRect.y = 0; } if(destPoint.x >= destBitmapData.width || destPoint.y >= destBitmapData.height) { return; } if(destPoint.x < 0) { sourceRect.x -= destPoint.x; sourceRect.width += destPoint.x; destPoint.x = 0; } if(destPoint.y < 0) { sourceRect.y -= destPoint.y; sourceRect.height += destPoint.y; destPoint.y = 0; } } if(sourceRect.width <= 0 || sourceRect.height <= 0) { return; } var startSourceX = Math.round(sourceRect.x); var startSourceY = Math.round(sourceRect.y); var width = Math.round(sourceRect.width); var height = Math.round(sourceRect.height); var sourceX = startSourceX; var sourceY = startSourceY; var destX = Math.round(destPoint.x); var destY = Math.round(destPoint.y); var currX = destX; var currY = destY; var sourceColor; var destColor; var resultRed; var resultGreen; var resultBlue; var resultAlpha; var resultColor = 0; destBitmapData.lock(); var _g = 0; var _g1 = width; while(_g < _g1) { var i = _g++; var _g2 = 0; var _g3 = height; while(_g2 < _g3) { var j = _g2++; sourceX = startSourceX + i; sourceY = startSourceY + j; currX = destX + i; currY = destY + j; sourceColor = sourceBitmapData.getPixel32(sourceX,sourceY); destColor = destBitmapData.getPixel32(currX,currY); resultRed = ((sourceColor >> 16 & 255) * redMultiplier + (destColor >> 16 & 255) * (256 - redMultiplier)) / 256 | 0; resultGreen = ((sourceColor >> 8 & 255) * greenMultiplier + (destColor >> 8 & 255) * (256 - greenMultiplier)) / 256 | 0; resultBlue = ((sourceColor & 255) * blueMultiplier + (destColor & 255) * (256 - blueMultiplier)) / 256 | 0; resultAlpha = ((sourceColor >> 24 & 255) * alphaMultiplier + (destColor >> 24 & 255) * (256 - alphaMultiplier)) / 256 | 0; var Alpha = resultAlpha; if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (resultRed > 255 ? 255 : resultRed < 0 ? 0 : resultRed) << 16; color &= -65281; color |= (resultGreen > 255 ? 255 : resultGreen < 0 ? 0 : resultGreen) << 8; color &= -256; color |= resultBlue > 255 ? 255 : resultBlue < 0 ? 0 : resultBlue; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; resultColor = color; destBitmapData.setPixel32(currX,currY,resultColor); } } destBitmapData.unlock(); }; flixel_util_FlxBitmapDataUtil.mergeColorComponent = function(source,dest,multiplier) { return (source * multiplier + dest * (256 - multiplier)) / 256 | 0; }; flixel_util_FlxBitmapDataUtil.compare = function(Bitmap1,Bitmap2) { if(Bitmap1 == Bitmap2) { return 0; } if(Bitmap1.width != Bitmap2.width) { return -3; } else if(Bitmap1.height != Bitmap2.height) { return -4; } else { var width = Bitmap1.width; var height = Bitmap1.height; var result = new openfl_display_BitmapData(width,height,true,0); var identical = true; var _g = 0; var _g1 = width; while(_g < _g1) { var i = _g++; var _g2 = 0; var _g3 = height; while(_g2 < _g3) { var j = _g2++; var pixel1 = Bitmap1.getPixel32(i,j); var pixel2 = Bitmap2.getPixel32(i,j); if(pixel1 != pixel2) { identical = false; if((pixel1 & 16777215) != (pixel2 & 16777215)) { var diff = (pixel1 >> 16 & 255) - (pixel2 >> 16 & 255); var Red = diff >= 0 ? diff : 256 + diff; var diff1 = (pixel1 >> 8 & 255) - (pixel2 >> 8 & 255); var Green = diff1 >= 0 ? diff1 : 256 + diff1; var diff2 = (pixel1 & 255) - (pixel2 & 255); var Blue = diff2 >= 0 ? diff2 : 256 + diff2; var color = flixel_util_FlxColor._new(); var Alpha = 255; if(Alpha == null) { Alpha = 255; } color &= -16711681; color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16; color &= -65281; color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8; color &= -256; color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue; color &= 16777215; color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24; result.setPixel32(i,j,color); } else { var alpha1 = pixel1 >> 24 & 255; var alpha2 = pixel2 >> 24 & 255; if(alpha1 != alpha2) { var diff3 = alpha1 - alpha2; var Alpha1 = diff3 >= 0 ? diff3 : 256 + diff3; if(Alpha1 == null) { Alpha1 = 255; } var color1 = flixel_util_FlxColor._new(); var Alpha2 = Alpha1; if(Alpha2 == null) { Alpha2 = 255; } color1 &= -16711681; color1 |= 16711680; color1 &= -65281; color1 |= 65280; color1 &= -256; color1 |= 255; color1 &= 16777215; color1 |= (Alpha2 > 255 ? 255 : Alpha2 < 0 ? 0 : Alpha2) << 24; result.setPixel32(i,j,color1); } } } } } if(!identical) { return result; } } return 0; }; flixel_util_FlxBitmapDataUtil.getDiff = function(value1,value2) { var diff = value1 - value2; if(diff >= 0) { return diff; } else { return 256 + diff; } }; flixel_util_FlxBitmapDataUtil.getMemorySize = function(bitmapData) { return bitmapData.width * bitmapData.height * 4; }; flixel_util_FlxBitmapDataUtil.replaceColor = function(bitmapData,color,newColor,fetchPositions,rect) { if(fetchPositions == null) { fetchPositions = false; } var positions = null; if(fetchPositions) { positions = []; } var startX = 0; var startY = 0; var columns = bitmapData.width; var rows = bitmapData.height; if(rect != null) { startX = rect.x | 0; startY = rect.y | 0; columns = rect.width | 0; rows = rect.height | 0; } columns = Math.max(columns,bitmapData.width) | 0; rows = Math.max(rows,bitmapData.height) | 0; var row = 0; var column = 0; var x; var y; var changed = false; bitmapData.lock(); while(row < rows) { column = 0; while(column < columns) { x = startX + column; y = startY + row; if(bitmapData.getPixel32(x,y) == color) { bitmapData.setPixel32(x,y,newColor); changed = true; if(fetchPositions) { var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x2 = x1; var y2 = y1; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x2,y2); point._inPool = false; positions.push(point); } } ++column; } ++row; } bitmapData.unlock(); if(changed && positions == null) { positions = []; } return positions; }; flixel_util_FlxBitmapDataUtil.addSpacesAndBorders = function(bitmapData,frameSize,spacing,border,region) { if(region == null) { var X = 0; var Y = 0; var Width = bitmapData.width; var Height = bitmapData.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; region = rect; } var frameWidth = region.width | 0; var frameHeight = region.height | 0; if(frameSize != null) { frameWidth = frameSize.x | 0; frameHeight = frameSize.y | 0; } var numHorizontalFrames = region.width / frameWidth | 0; var numVerticalFrames = region.height / frameHeight | 0; var spaceX = 0; var spaceY = 0; if(spacing != null) { spaceX = spacing.x | 0; spaceY = spacing.y | 0; } var borderX = 0; var borderY = 0; if(border != null) { borderX = border.x | 0; borderY = border.y | 0; } var result = new openfl_display_BitmapData(region.width + (numHorizontalFrames - 1) * spaceX + 2 * numHorizontalFrames * borderX | 0,region.height + (numVerticalFrames - 1) * spaceY + 2 * numVerticalFrames * borderY | 0,true,0); result.lock(); var tempRect = new openfl_geom_Rectangle(0,0,frameWidth,frameHeight); var tempPoint = new openfl_geom_Point(); var _g = 0; var _g1 = numHorizontalFrames; while(_g < _g1) { var i = _g++; tempPoint.x = i * (frameWidth + spaceX + 2 * borderX) + borderX; tempRect.x = i * frameWidth + region.x; var _g2 = 0; var _g3 = numVerticalFrames; while(_g2 < _g3) { var j = _g2++; tempPoint.y = j * (frameHeight + spaceY + 2 * borderY) + borderY; tempRect.y = j * frameHeight + region.y; result.copyPixels(bitmapData,tempRect,tempPoint); } } result.unlock(); flixel_util_FlxBitmapDataUtil.copyBorderPixels(result,frameWidth,frameHeight,spaceX,spaceY,borderX,borderY,numHorizontalFrames,numVerticalFrames); return result; }; flixel_util_FlxBitmapDataUtil.copyBorderPixels = function(bitmapData,frameWidth,frameHeight,spaceX,spaceY,borderX,borderY,horizontalFrames,verticalFrames) { var tempRect = new openfl_geom_Rectangle(0,0,1,bitmapData.height); var tempPoint = new openfl_geom_Point(); bitmapData.lock(); var _g = 0; var _g1 = horizontalFrames; while(_g < _g1) { var i = _g++; tempRect.x = i * (frameWidth + 2 * borderX + spaceX) + borderX; var _g2 = 0; var _g3 = borderX; while(_g2 < _g3) { var j = _g2++; tempPoint.x = tempRect.x - j - 1; bitmapData.copyPixels(bitmapData,tempRect,tempPoint); } tempRect.x += frameWidth - 1; var _g4 = 0; var _g5 = borderX; while(_g4 < _g5) { var j1 = _g4++; tempPoint.x = tempRect.x + j1 + 1; bitmapData.copyPixels(bitmapData,tempRect,tempPoint); } } tempPoint.setTo(0,0); tempRect.setTo(0,0,bitmapData.width,1); var _g = 0; var _g1 = verticalFrames; while(_g < _g1) { var i = _g++; tempRect.y = i * (frameHeight + 2 * borderY + spaceY) + borderY; var _g2 = 0; var _g3 = borderY; while(_g2 < _g3) { var j = _g2++; tempPoint.y = tempRect.y - j - 1; bitmapData.copyPixels(bitmapData,tempRect,tempPoint); } tempRect.y += frameHeight - 1; var _g4 = 0; var _g5 = borderY; while(_g4 < _g5) { var j1 = _g4++; tempPoint.y = tempRect.y + j1 + 1; bitmapData.copyPixels(bitmapData,tempRect,tempPoint); } } bitmapData.unlock(); return bitmapData; }; flixel_util_FlxBitmapDataUtil.generateRotations = function(brush,rotations,antiAliasing,autoBuffer) { if(autoBuffer == null) { autoBuffer = false; } if(antiAliasing == null) { antiAliasing = false; } if(rotations == null) { rotations = 16; } var brushWidth = brush.width; var brushHeight = brush.height; var max = brushHeight > brushWidth ? brushHeight : brushWidth; if(autoBuffer) { max = max * 1.5 | 0; } var rows = Math.sqrt(rotations) | 0; var columns = Math.ceil(rotations / rows); var bakedRotationAngle = 360 / rotations; var width = max * columns; var height = max * rows; var result = new openfl_display_BitmapData(width,height,true,0); var row = 0; var column = 0; var bakedAngle = 0; var halfBrushWidth = brushWidth * 0.5 | 0; var halfBrushHeight = brushHeight * 0.5 | 0; var midpointX = max * 0.5 | 0; var midpointY = max * 0.5 | 0; while(row < rows) { column = 0; while(column < columns) { flixel_util_FlxBitmapDataUtil.matrix.identity(); flixel_util_FlxBitmapDataUtil.matrix.translate(-halfBrushWidth,-halfBrushHeight); flixel_util_FlxBitmapDataUtil.matrix.rotate(bakedAngle * (Math.PI / 180)); flixel_util_FlxBitmapDataUtil.matrix.translate(max * column + midpointX,midpointY); bakedAngle += bakedRotationAngle; result.draw(brush,flixel_util_FlxBitmapDataUtil.matrix,null,null,null,antiAliasing); ++column; } midpointY += max; ++row; } return result; }; var flixel_util_FlxCollision = function() { }; $hxClasses["flixel.util.FlxCollision"] = flixel_util_FlxCollision; flixel_util_FlxCollision.__name__ = "flixel.util.FlxCollision"; flixel_util_FlxCollision.pixelPerfectCheck = function(contact,target,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 1; } var advanced = contact.angle != 0 || target.angle != 0 || contact.scale.x != 1 || contact.scale.y != 1 || target.scale.x != 1 || target.scale.y != 1; contact.getScreenBounds(flixel_util_FlxCollision.boundsA,camera); target.getScreenBounds(flixel_util_FlxCollision.boundsB,camera); var _this = flixel_util_FlxCollision.intersect; _this.x = 0; _this.y = 0; _this.width = 0; _this.height = 0; flixel_util_FlxCollision.boundsA.intersection(flixel_util_FlxCollision.boundsB,_this); var _this = flixel_util_FlxCollision.intersect; if(_this.width == 0 || _this.height == 0 || flixel_util_FlxCollision.intersect.width < 1 || flixel_util_FlxCollision.intersect.height < 1) { return false; } flixel_util_FlxCollision.matrixA.identity(); flixel_util_FlxCollision.matrixA.translate(-(flixel_util_FlxCollision.intersect.x - flixel_util_FlxCollision.boundsA.x),-(flixel_util_FlxCollision.intersect.y - flixel_util_FlxCollision.boundsA.y)); flixel_util_FlxCollision.matrixB.identity(); flixel_util_FlxCollision.matrixB.translate(-(flixel_util_FlxCollision.intersect.x - flixel_util_FlxCollision.boundsB.x),-(flixel_util_FlxCollision.intersect.y - flixel_util_FlxCollision.boundsB.y)); contact.drawFrame(); target.drawFrame(); var testA = contact.framePixels; var testB = target.framePixels; var overlapWidth = flixel_util_FlxCollision.intersect.width | 0; var overlapHeight = flixel_util_FlxCollision.intersect.height | 0; if(advanced) { flixel_util_FlxCollision.testMatrix.identity(); flixel_util_FlxCollision.testMatrix.translate(-contact.origin.x,-contact.origin.y); flixel_util_FlxCollision.testMatrix.rotate(contact.angle * (Math.PI / 180)); flixel_util_FlxCollision.testMatrix.scale(contact.scale.x,contact.scale.y); flixel_util_FlxCollision.testMatrix.translate(flixel_util_FlxCollision.boundsA.width / 2,flixel_util_FlxCollision.boundsA.height / 2); var testA2 = flixel_util_FlxBitmapDataPool.get(Math.floor(flixel_util_FlxCollision.boundsA.width),Math.floor(flixel_util_FlxCollision.boundsA.height),true,0,false); testA2.draw(testA,flixel_util_FlxCollision.testMatrix,null,null,null,false); testA = testA2; flixel_util_FlxCollision.testMatrix.identity(); flixel_util_FlxCollision.testMatrix.translate(-target.origin.x,-target.origin.y); flixel_util_FlxCollision.testMatrix.rotate(target.angle * (Math.PI / 180)); flixel_util_FlxCollision.testMatrix.scale(target.scale.x,target.scale.y); flixel_util_FlxCollision.testMatrix.translate(flixel_util_FlxCollision.boundsB.width / 2,flixel_util_FlxCollision.boundsB.height / 2); var testB2 = flixel_util_FlxBitmapDataPool.get(Math.floor(flixel_util_FlxCollision.boundsB.width),Math.floor(flixel_util_FlxCollision.boundsB.height),true,0,false); testB2.draw(testB,flixel_util_FlxCollision.testMatrix,null,null,null,false); testB = testB2; } flixel_util_FlxCollision.boundsA.x = -flixel_util_FlxCollision.matrixA.tx | 0; flixel_util_FlxCollision.boundsA.y = -flixel_util_FlxCollision.matrixA.ty | 0; flixel_util_FlxCollision.boundsA.width = overlapWidth; flixel_util_FlxCollision.boundsA.height = overlapHeight; flixel_util_FlxCollision.boundsB.x = -flixel_util_FlxCollision.matrixB.tx | 0; flixel_util_FlxCollision.boundsB.y = -flixel_util_FlxCollision.matrixB.ty | 0; flixel_util_FlxCollision.boundsB.width = overlapWidth; flixel_util_FlxCollision.boundsB.height = overlapHeight; var _this = flixel_util_FlxCollision.boundsA; var FlashRect = flixel_util_FlxCollision.flashRect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; var pixelsA = testA.getPixels(flixel_util_FlxCollision.flashRect); var _this = flixel_util_FlxCollision.boundsB; var FlashRect = flixel_util_FlxCollision.flashRect; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; var pixelsB = testB.getPixels(flixel_util_FlxCollision.flashRect); var hit = false; var alphaA = 0; var alphaB = 0; var overlapPixels = overlapWidth * overlapHeight; var alphaIdx = 0; var _g = 0; var _g1 = Math.ceil(overlapPixels / 2); while(_g < _g1) { var i = _g++; alphaIdx = i << 3; pixelsA.position = pixelsB.position = alphaIdx; alphaA = pixelsA.readUnsignedByte(); alphaB = pixelsB.readUnsignedByte(); if(alphaA >= alphaTolerance && alphaB >= alphaTolerance) { hit = true; break; } } if(!hit) { var _g = 0; var _g1 = overlapPixels >> 1; while(_g < _g1) { var i = _g++; alphaIdx = (i << 3) + 4; pixelsA.position = pixelsB.position = alphaIdx; alphaA = pixelsA.readUnsignedByte(); alphaB = pixelsB.readUnsignedByte(); if(alphaA >= alphaTolerance && alphaB >= alphaTolerance) { hit = true; break; } } } if(advanced) { flixel_util_FlxBitmapDataPool.put(testA); flixel_util_FlxBitmapDataPool.put(testB); } return hit; }; flixel_util_FlxCollision.pixelPerfectPointCheck = function(worldX,worldY,target,alphaTolerance) { if(alphaTolerance == null) { alphaTolerance = 1; } if(flixel_FlxG.renderTile) { target.drawFrame(); } var x = worldX; var y = worldY; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; return target.pixelsOverlapPoint(point1,alphaTolerance); }; flixel_util_FlxCollision.createCameraWall = function(camera,placeOutside,thickness,adjustWorldBounds) { if(adjustWorldBounds == null) { adjustWorldBounds = false; } if(placeOutside == null) { placeOutside = true; } var left = null; var right = null; var top = null; var bottom = null; if(placeOutside) { left = new flixel_tile_FlxTileblock(Math.floor(camera.x - thickness),Math.floor(camera.y),thickness,camera.height); right = new flixel_tile_FlxTileblock(Math.floor(camera.x + camera.width),Math.floor(camera.y),thickness,camera.height); top = new flixel_tile_FlxTileblock(Math.floor(camera.x - thickness),Math.floor(camera.y - thickness),camera.width + thickness * 2,thickness); bottom = new flixel_tile_FlxTileblock(Math.floor(camera.x - thickness),camera.height,camera.width + thickness * 2,thickness); if(adjustWorldBounds) { var _this = flixel_FlxG.worldBounds; var X = camera.x - thickness; var Y = camera.y - thickness; var Width = camera.width + thickness * 2; var Height = camera.height + thickness * 2; 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; } } else { left = new flixel_tile_FlxTileblock(Math.floor(camera.x),Math.floor(camera.y + thickness),thickness,camera.height - thickness * 2); right = new flixel_tile_FlxTileblock(Math.floor(camera.x + camera.width - thickness),Math.floor(camera.y + thickness),thickness,camera.height - thickness * 2); top = new flixel_tile_FlxTileblock(Math.floor(camera.x),Math.floor(camera.y),camera.width,thickness); bottom = new flixel_tile_FlxTileblock(Math.floor(camera.x),camera.height - thickness,camera.width,thickness); if(adjustWorldBounds) { var _this = flixel_FlxG.worldBounds; var X = camera.x; var Y = camera.y; var Width = camera.width; var Height = camera.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; } } var result = new flixel_group_FlxTypedGroup(); result.add(left); result.add(right); result.add(top); result.add(bottom); return result; }; flixel_util_FlxCollision.calcRectEntry = function(rect,start,end,result) { var getResult = function(x,y) { if(result == null) { var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x2 = x1; var y2 = y1; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x2,y2); point._inPool = false; result = point; } else { var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } result.set_x(x1); result.set_y(y1); } if(start._weak) { start.put(); } if(end._weak) { end.put(); } if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return result; }; var nullResult = function() { if(start._weak) { start.put(); } if(end._weak) { end.put(); } if(rect._weak) { if(!rect._inPool) { rect._inPool = true; rect._weak = false; flixel_math_FlxRect._pool.putUnsafe(rect); } } return null; }; var result1 = flixel_math_FlxMath.pointInFlxRect(start.x,start.y,rect); if(start._weak) { start.put(); } if(result1) { return getResult(start.x,start.y); } if(start.y < rect.y && end.y < rect.y || start.y > rect.y + rect.height && end.y > rect.y + rect.height || start.x > rect.x + rect.width && end.x > rect.x + rect.width || start.x < rect.x && end.x < rect.x) { return nullResult(); } if(start.x == end.x) { if(start.y < rect.y) { return getResult(start.x,rect.y); } return getResult(start.x,rect.y + rect.height); } var m = (start.y - end.y) / (start.x - end.x); var b = start.y - m * start.x; var leftY = m * rect.x + b; var rightY = m * (rect.x + rect.width) + b; if(leftY < rect.y && rightY < rect.y || leftY > rect.y + rect.height && rightY > rect.y + rect.height) { return nullResult(); } else if(start.x < end.x) { if(leftY < rect.y) { return getResult((rect.y - b) / m,rect.y); } if(leftY > rect.y + rect.height) { return getResult((rect.y + rect.height - b) / m,rect.y + rect.height); } return getResult(rect.x,leftY); } if(rightY < rect.y) { return getResult((rect.y - b) / m,rect.y); } if(rightY > rect.y + rect.height) { return getResult((rect.y + rect.height - b) / m,rect.y + rect.height); } return getResult(rect.x + rect.width,rightY); }; flixel_util_FlxCollision.calcRectExit = function(rect,start,end,result) { return flixel_util_FlxCollision.calcRectEntry(rect,end,start,result); }; var flixel_util_FlxColor = {}; flixel_util_FlxColor.__properties__ = {set_lightness:"set_lightness",get_lightness:"get_lightness",set_brightness:"set_brightness",get_brightness:"get_brightness",set_saturation:"set_saturation",get_saturation:"get_saturation",set_hue:"set_hue",get_hue:"get_hue",set_rgb:"set_rgb",get_rgb:"get_rgb",set_black:"set_black",get_black:"get_black",set_yellow:"set_yellow",get_yellow:"get_yellow",set_magenta:"set_magenta",get_magenta:"get_magenta",set_cyan:"set_cyan",get_cyan:"get_cyan",set_alphaFloat:"set_alphaFloat",get_alphaFloat:"get_alphaFloat",set_greenFloat:"set_greenFloat",get_greenFloat:"get_greenFloat",set_blueFloat:"set_blueFloat",get_blueFloat:"get_blueFloat",set_redFloat:"set_redFloat",get_redFloat:"get_redFloat",set_alpha:"set_alpha",get_alpha:"get_alpha",set_green:"set_green",get_green:"get_green",set_blue:"set_blue",get_blue:"get_blue",set_red:"set_red",get_red:"get_red"}; flixel_util_FlxColor.fromInt = function(Value) { return flixel_util_FlxColor._new(Value); }; flixel_util_FlxColor.fromRGB = function(Red,Green,Blue,Alpha) { if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16; color &= -65281; color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8; color &= -256; color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; return color; }; flixel_util_FlxColor.fromRGBFloat = function(Red,Green,Blue,Alpha) { if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Red * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Green * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Blue * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return color; }; flixel_util_FlxColor.fromCMYK = function(Cyan,Magenta,Yellow,Black,Alpha) { if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = (1 - Cyan) * (1 - Black); var Value1 = Math.round(Value * 255); color &= -16711681; color |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value = (1 - Magenta) * (1 - Black); var Value1 = Math.round(Value * 255); color &= -65281; color |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value = (1 - Yellow) * (1 - Black); var Value1 = Math.round(Value * 255); color &= -256; color |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return color; }; flixel_util_FlxColor.fromHSB = function(Hue,Saturation,Brightness,Alpha) { if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var chroma = Brightness * Saturation; var match = Brightness - chroma; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return color; }; flixel_util_FlxColor.fromHSL = function(Hue,Saturation,Lightness,Alpha) { if(Alpha == null) { Alpha = 1; } var color = flixel_util_FlxColor._new(); var chroma = (1 - Math.abs(2 * Lightness - 1)) * Saturation; var match = Lightness - chroma / 2; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return color; }; flixel_util_FlxColor.fromString = function(str) { var result = null; str = StringTools.trim(str); if(flixel_util_FlxColor.COLOR_REGEX.match(str)) { var hexColor = "0x" + flixel_util_FlxColor.COLOR_REGEX.matched(2); result = flixel_util_FlxColor._new(Std.parseInt(hexColor)); if(hexColor.length == 8) { var Value = Math.round(255); result &= 16777215; result |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; } } else { str = str.toUpperCase(); var h = flixel_util_FlxColor.colorLookup.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(key.toUpperCase() == str) { result = flixel_util_FlxColor._new(flixel_util_FlxColor.colorLookup.h[key]); break; } } } return result; }; flixel_util_FlxColor.getHSBColorWheel = function(Alpha) { if(Alpha == null) { Alpha = 255; } var _g = []; var _g1 = 0; while(_g1 < 360) { var c = _g1++; _g.push(flixel_util_FlxColor.fromHSB(c,1.0,1.0,Alpha)); } return _g; }; flixel_util_FlxColor.interpolate = function(Color1,Color2,Factor) { if(Factor == null) { Factor = 0.5; } var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0; var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0; var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0; var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0; var Alpha = a; if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16; color &= -65281; color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8; color &= -256; color |= b > 255 ? 255 : b < 0 ? 0 : b; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; return color; }; flixel_util_FlxColor.gradient = function(Color1,Color2,Steps,Ease) { var output = []; if(Ease == null) { Ease = function(t) { return t; }; } var _g = 0; var _g1 = Steps; while(_g < _g1) { var step = _g++; var Factor = Ease(step / (Steps - 1)); if(Factor == null) { Factor = 0.5; } var r = ((Color2 >> 16 & 255) - (Color1 >> 16 & 255)) * Factor + (Color1 >> 16 & 255) | 0; var g = ((Color2 >> 8 & 255) - (Color1 >> 8 & 255)) * Factor + (Color1 >> 8 & 255) | 0; var b = ((Color2 & 255) - (Color1 & 255)) * Factor + (Color1 & 255) | 0; var a = ((Color2 >> 24 & 255) - (Color1 >> 24 & 255)) * Factor + (Color1 >> 24 & 255) | 0; var Alpha = a; if(Alpha == null) { Alpha = 255; } var color = flixel_util_FlxColor._new(); var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 255; } color &= -16711681; color |= (r > 255 ? 255 : r < 0 ? 0 : r) << 16; color &= -65281; color |= (g > 255 ? 255 : g < 0 ? 0 : g) << 8; color &= -256; color |= b > 255 ? 255 : b < 0 ? 0 : b; color &= 16777215; color |= (Alpha1 > 255 ? 255 : Alpha1 < 0 ? 0 : Alpha1) << 24; output[step] = color; } return output; }; flixel_util_FlxColor.multiply = function(lhs,rhs) { var Red = (lhs >> 16 & 255) / 255 * ((rhs >> 16 & 255) / 255); var Green = (lhs >> 8 & 255) / 255 * ((rhs >> 8 & 255) / 255); var Blue = (lhs & 255) / 255 * ((rhs & 255) / 255); var color = flixel_util_FlxColor._new(); var Alpha = 1; if(Alpha == null) { Alpha = 1; } var Value = Math.round(Red * 255); color &= -16711681; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Green * 255); color &= -65281; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Blue * 255); color &= -256; color |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha * 255); color &= 16777215; color |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return color; }; flixel_util_FlxColor.add = function(lhs,rhs) { var Red = (lhs >> 16 & 255) + (rhs >> 16 & 255); var Green = (lhs >> 8 & 255) + (rhs >> 8 & 255); var Blue = (lhs & 255) + (rhs & 255); var color = flixel_util_FlxColor._new(); var Alpha = 255; if(Alpha == null) { Alpha = 255; } color &= -16711681; color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16; color &= -65281; color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8; color &= -256; color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue; color &= 16777215; color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24; return color; }; flixel_util_FlxColor.subtract = function(lhs,rhs) { var Red = (lhs >> 16 & 255) - (rhs >> 16 & 255); var Green = (lhs >> 8 & 255) - (rhs >> 8 & 255); var Blue = (lhs & 255) - (rhs & 255); var color = flixel_util_FlxColor._new(); var Alpha = 255; if(Alpha == null) { Alpha = 255; } color &= -16711681; color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16; color &= -65281; color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8; color &= -256; color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue; color &= 16777215; color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24; return color; }; flixel_util_FlxColor.getComplementHarmony = function(this1) { return flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + 180,0,350),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); }; flixel_util_FlxColor.getAnalogousHarmony = function(this1,Threshold) { if(Threshold == null) { Threshold = 30; } var warmer = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) - Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); var colder = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); return { original : this1, warmer : warmer, colder : colder}; }; flixel_util_FlxColor.getSplitComplementHarmony = function(this1,Threshold) { if(Threshold == null) { Threshold = 30; } var oppositeHue = flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + 180,0,350); var warmer = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap(oppositeHue - Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); var colder = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap(oppositeHue + Threshold,0,350),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); return { original : this1, warmer : warmer, colder : colder}; }; flixel_util_FlxColor.getTriadicHarmony = function(this1) { var triadic1 = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(this1) | 0) + 120,0,359),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); var triadic2 = flixel_util_FlxColor.fromHSB(flixel_math_FlxMath.wrap((flixel_util_FlxColor.get_hue(triadic1) | 0) + 120,0,359),(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),(this1 >> 24 & 255) / 255); return { color1 : this1, color2 : triadic1, color3 : triadic2}; }; flixel_util_FlxColor.to24Bit = function(this1) { return this1 & 16777215; }; flixel_util_FlxColor.toHexString = function(this1,Alpha,Prefix) { if(Prefix == null) { Prefix = true; } if(Alpha == null) { Alpha = true; } var tmp = Alpha ? StringTools.hex(this1 >> 24 & 255,2) : ""; return (Prefix ? "0x" : "") + tmp + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2); }; flixel_util_FlxColor.toWebString = function(this1) { var Alpha = false; var Prefix = false; if(Prefix == null) { Prefix = true; } if(Alpha == null) { Alpha = true; } var tmp = Alpha ? StringTools.hex(this1 >> 24 & 255,2) : ""; return "#" + ((Prefix ? "0x" : "") + tmp + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2)); }; flixel_util_FlxColor.getColorInfo = function(this1) { var result = "0x" + StringTools.hex(this1 >> 24 & 255,2) + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2) + "\n"; result += "Alpha: " + (this1 >> 24 & 255) + " Red: " + (this1 >> 16 & 255) + " Green: " + (this1 >> 8 & 255) + " Blue: " + (this1 & 255) + "\n"; result += "Hue: " + flixel_math_FlxMath.roundDecimal(flixel_util_FlxColor.get_hue(this1),2) + " Saturation: " + flixel_math_FlxMath.roundDecimal((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),2) + " Brightness: " + flixel_math_FlxMath.roundDecimal(Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)),2) + " Lightness: " + flixel_math_FlxMath.roundDecimal((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) + Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / 2,2); return result; }; flixel_util_FlxColor.getDarkened = function(this1,Factor) { if(Factor == null) { Factor = 0.2; } var lowerBound = Factor < 0 ? 0 : Factor; Factor = lowerBound > 1 ? 1 : lowerBound; var output = this1; var Value = (Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) + Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / 2 * (1 - Factor); var Hue = flixel_util_FlxColor.get_hue(output); var Alpha = (output >> 24 & 255) / 255; var chroma = (1 - Math.abs(2 * Value - 1)) * ((Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) - Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255))); var match = Value - chroma / 2; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return output; }; flixel_util_FlxColor.getLightened = function(this1,Factor) { if(Factor == null) { Factor = 0.2; } var lowerBound = Factor < 0 ? 0 : Factor; Factor = lowerBound > 1 ? 1 : lowerBound; var output = this1; var Value = (Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) + Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / 2 + (1 - (Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) + Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / 2) * Factor; var Hue = flixel_util_FlxColor.get_hue(output); var Alpha = (output >> 24 & 255) / 255; var chroma = (1 - Math.abs(2 * Value - 1)) * ((Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255)) - Math.min((output >> 16 & 255) / 255,Math.min((output >> 8 & 255) / 255,(output & 255) / 255))) / Math.max((output >> 16 & 255) / 255,Math.max((output >> 8 & 255) / 255,(output & 255) / 255))); var match = Value - chroma / 2; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); output &= -16711681; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); output &= -65281; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); output &= -256; output |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); output &= 16777215; output |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return output; }; flixel_util_FlxColor.getInverted = function(this1) { var oldAlpha = this1 >> 24 & 255; var lhs = -1; var Red = (lhs >> 16 & 255) - (this1 >> 16 & 255); var Green = (lhs >> 8 & 255) - (this1 >> 8 & 255); var Blue = (lhs & 255) - (this1 & 255); var color = flixel_util_FlxColor._new(); var Alpha = 255; if(Alpha == null) { Alpha = 255; } color &= -16711681; color |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16; color &= -65281; color |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8; color &= -256; color |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue; color &= 16777215; color |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24; var output = color; output &= 16777215; output |= (oldAlpha > 255 ? 255 : oldAlpha < 0 ? 0 : oldAlpha) << 24; return output; }; flixel_util_FlxColor.setRGB = function(this1,Red,Green,Blue,Alpha) { if(Alpha == null) { Alpha = 255; } this1 &= -16711681; this1 |= (Red > 255 ? 255 : Red < 0 ? 0 : Red) << 16; this1 &= -65281; this1 |= (Green > 255 ? 255 : Green < 0 ? 0 : Green) << 8; this1 &= -256; this1 |= Blue > 255 ? 255 : Blue < 0 ? 0 : Blue; this1 &= 16777215; this1 |= (Alpha > 255 ? 255 : Alpha < 0 ? 0 : Alpha) << 24; return this1; }; flixel_util_FlxColor.setRGBFloat = function(this1,Red,Green,Blue,Alpha) { if(Alpha == null) { Alpha = 1; } var Value = Math.round(Red * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Green * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Blue * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return this1; }; flixel_util_FlxColor.setCMYK = function(this1,Cyan,Magenta,Yellow,Black,Alpha) { if(Alpha == null) { Alpha = 1; } var Value = (1 - Cyan) * (1 - Black); var Value1 = Math.round(Value * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value = (1 - Magenta) * (1 - Black); var Value1 = Math.round(Value * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value = (1 - Yellow) * (1 - Black); var Value1 = Math.round(Value * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value = Math.round(Alpha * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return this1; }; flixel_util_FlxColor.setHSB = function(this1,Hue,Saturation,Brightness,Alpha) { var chroma = Brightness * Saturation; var match = Brightness - chroma; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return this1; }; flixel_util_FlxColor.setHSL = function(this1,Hue,Saturation,Lightness,Alpha) { var chroma = (1 - Math.abs(2 * Lightness - 1)) * Saturation; var match = Lightness - chroma / 2; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(match * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(match * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(match * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return this1; }; flixel_util_FlxColor.setHueChromaMatch = function(this1,Hue,Chroma,Match,Alpha) { Hue %= 360; var hueD = Hue / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + Match; Chroma += Match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Match * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Match * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Match * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Match * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(mid * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Match * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(Chroma * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; var Value = Math.round(Match * 255); this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; var Value = Math.round(mid * 255); this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; var Value = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; break; } return this1; }; flixel_util_FlxColor._new = function(Value) { if(Value == null) { Value = 0; } return Value; }; flixel_util_FlxColor.getThis = function(this1) { return this1; }; flixel_util_FlxColor.validate = function(this1) { }; flixel_util_FlxColor.get_red = function(this1) { return this1 >> 16 & 255; }; flixel_util_FlxColor.get_green = function(this1) { return this1 >> 8 & 255; }; flixel_util_FlxColor.get_blue = function(this1) { return this1 & 255; }; flixel_util_FlxColor.get_alpha = function(this1) { return this1 >> 24 & 255; }; flixel_util_FlxColor.get_redFloat = function(this1) { return (this1 >> 16 & 255) / 255; }; flixel_util_FlxColor.get_greenFloat = function(this1) { return (this1 >> 8 & 255) / 255; }; flixel_util_FlxColor.get_blueFloat = function(this1) { return (this1 & 255) / 255; }; flixel_util_FlxColor.get_alphaFloat = function(this1) { return (this1 >> 24 & 255) / 255; }; flixel_util_FlxColor.set_red = function(this1,Value) { this1 &= -16711681; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 16; return Value; }; flixel_util_FlxColor.set_green = function(this1,Value) { this1 &= -65281; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 8; return Value; }; flixel_util_FlxColor.set_blue = function(this1,Value) { this1 &= -256; this1 |= Value > 255 ? 255 : Value < 0 ? 0 : Value; return Value; }; flixel_util_FlxColor.set_alpha = function(this1,Value) { this1 &= 16777215; this1 |= (Value > 255 ? 255 : Value < 0 ? 0 : Value) << 24; return Value; }; flixel_util_FlxColor.set_redFloat = function(this1,Value) { var Value1 = Math.round(Value * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; return Value; }; flixel_util_FlxColor.set_greenFloat = function(this1,Value) { var Value1 = Math.round(Value * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; return Value; }; flixel_util_FlxColor.set_blueFloat = function(this1,Value) { var Value1 = Math.round(Value * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; return Value; }; flixel_util_FlxColor.set_alphaFloat = function(this1,Value) { var Value1 = Math.round(Value * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; return Value; }; flixel_util_FlxColor.get_cyan = function(this1) { return (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.get_magenta = function(this1) { return (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.get_yellow = function(this1) { return (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.get_black = function(this1) { return 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.set_cyan = function(this1,Value) { var Magenta = (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Yellow = (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Black = 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Alpha = (this1 >> 24 & 255) / 255; if(Alpha == null) { Alpha = 1; } var Value1 = (1 - Value) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -16711681; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16; var Value1 = (1 - Magenta) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -65281; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8; var Value1 = (1 - Yellow) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -256; this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2; var Value1 = Math.round(Alpha * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; return Value; }; flixel_util_FlxColor.set_magenta = function(this1,Value) { var Yellow = (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Black = 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Alpha = (this1 >> 24 & 255) / 255; if(Alpha == null) { Alpha = 1; } var Value1 = (1 - (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -16711681; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16; var Value1 = (1 - Value) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -65281; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8; var Value1 = (1 - Yellow) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -256; this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2; var Value1 = Math.round(Alpha * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; return Value; }; flixel_util_FlxColor.set_yellow = function(this1,Value) { var Magenta = (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Black = 1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Alpha = (this1 >> 24 & 255) / 255; if(Alpha == null) { Alpha = 1; } var Value1 = (1 - (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -16711681; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16; var Value1 = (1 - Magenta) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -65281; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8; var Value1 = (1 - Value) * (1 - Black); var Value2 = Math.round(Value1 * 255); this1 &= -256; this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2; var Value1 = Math.round(Alpha * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; return Value; }; flixel_util_FlxColor.set_black = function(this1,Value) { var Magenta = (1 - (this1 >> 8 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Yellow = (1 - (this1 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Alpha = (this1 >> 24 & 255) / 255; if(Alpha == null) { Alpha = 1; } var Value1 = (1 - (1 - (this1 >> 16 & 255) / 255 - (1 - Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) * (1 - Value); var Value2 = Math.round(Value1 * 255); this1 &= -16711681; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 16; var Value1 = (1 - Magenta) * (1 - Value); var Value2 = Math.round(Value1 * 255); this1 &= -65281; this1 |= (Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2) << 8; var Value1 = (1 - Yellow) * (1 - Value); var Value2 = Math.round(Value1 * 255); this1 &= -256; this1 |= Value2 > 255 ? 255 : Value2 < 0 ? 0 : Value2; var Value1 = Math.round(Alpha * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; return Value; }; flixel_util_FlxColor.get_hue = function(this1) { var hueRad = Math.atan2(Math.sqrt(3) * ((this1 >> 8 & 255) / 255 - (this1 & 255) / 255),2 * ((this1 >> 16 & 255) / 255) - (this1 >> 8 & 255) / 255 - (this1 & 255) / 255); var hue = 0; if(hueRad != 0) { hue = 180 / Math.PI * hueRad; } if(hue < 0) { return hue + 360; } else { return hue; } }; flixel_util_FlxColor.get_brightness = function(this1) { return Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.get_saturation = function(this1) { return (Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.get_lightness = function(this1) { return (Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) + Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / 2; }; flixel_util_FlxColor.set_hue = function(this1,Value) { var Brightness = Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Alpha = (this1 >> 24 & 255) / 255; var chroma = Brightness * ((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))); var match = Brightness - chroma; var Hue = Value; var Chroma = chroma; Hue %= 360; var hueD = Hue / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; } return Value; }; flixel_util_FlxColor.set_saturation = function(this1,Value) { var Hue = flixel_util_FlxColor.get_hue(this1); var Brightness = Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); var Alpha = (this1 >> 24 & 255) / 255; var chroma = Brightness * Value; var match = Brightness - chroma; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; } return Value; }; flixel_util_FlxColor.set_brightness = function(this1,Value) { var Hue = flixel_util_FlxColor.get_hue(this1); var Alpha = (this1 >> 24 & 255) / 255; var chroma = Value * ((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))); var match = Value - chroma; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; } return Value; }; flixel_util_FlxColor.set_lightness = function(this1,Value) { var Hue = flixel_util_FlxColor.get_hue(this1); var Alpha = (this1 >> 24 & 255) / 255; var chroma = (1 - Math.abs(2 * Value - 1)) * ((Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)) - Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255))) / Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255))); var match = Value - chroma / 2; var Hue1 = Hue; var Chroma = chroma; Hue1 %= 360; var hueD = Hue1 / 60; var mid = Chroma * (1 - Math.abs(hueD % 2 - 1)) + match; Chroma += match; switch(hueD | 0) { case 0: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 1: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(match * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 2: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(Chroma * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 3: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(match * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(mid * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 4: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(mid * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(Chroma * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; case 5: var Alpha1 = Alpha; if(Alpha1 == null) { Alpha1 = 1; } var Value1 = Math.round(Chroma * 255); this1 &= -16711681; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 16; var Value1 = Math.round(match * 255); this1 &= -65281; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 8; var Value1 = Math.round(mid * 255); this1 &= -256; this1 |= Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1; var Value1 = Math.round(Alpha1 * 255); this1 &= 16777215; this1 |= (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; break; } return Value; }; flixel_util_FlxColor.set_rgb = function(this1,value) { this1 = this1 & -16777216 | value & 16777215; return value; }; flixel_util_FlxColor.get_rgb = function(this1) { return this1 & 16777215; }; flixel_util_FlxColor.maxColor = function(this1) { return Math.max((this1 >> 16 & 255) / 255,Math.max((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.minColor = function(this1) { return Math.min((this1 >> 16 & 255) / 255,Math.min((this1 >> 8 & 255) / 255,(this1 & 255) / 255)); }; flixel_util_FlxColor.boundChannel = function(this1,Value) { if(Value > 255) { return 255; } else if(Value < 0) { return 0; } else { return Value; } }; var flixel_util_FlxColorTransformUtil = function() { }; $hxClasses["flixel.util.FlxColorTransformUtil"] = flixel_util_FlxColorTransformUtil; flixel_util_FlxColorTransformUtil.__name__ = "flixel.util.FlxColorTransformUtil"; flixel_util_FlxColorTransformUtil.setMultipliers = function(transform,red,green,blue,alpha) { transform.redMultiplier = red; transform.greenMultiplier = green; transform.blueMultiplier = blue; transform.alphaMultiplier = alpha; return transform; }; flixel_util_FlxColorTransformUtil.setOffsets = function(transform,red,green,blue,alpha) { transform.redOffset = red; transform.greenOffset = green; transform.blueOffset = blue; transform.alphaOffset = alpha; return transform; }; flixel_util_FlxColorTransformUtil.hasRGBMultipliers = function(transform) { if(!(transform.redMultiplier != 1 || transform.greenMultiplier != 1)) { return transform.blueMultiplier != 1; } else { return true; } }; flixel_util_FlxColorTransformUtil.hasRGBAMultipliers = function(transform) { if(!flixel_util_FlxColorTransformUtil.hasRGBMultipliers(transform)) { return transform.alphaMultiplier != 1; } else { return true; } }; flixel_util_FlxColorTransformUtil.hasRGBOffsets = function(transform) { if(!(transform.redOffset != 0 || transform.greenOffset != 0)) { return transform.blueOffset != 0; } else { return true; } }; flixel_util_FlxColorTransformUtil.hasRGBAOffsets = function(transform) { if(!flixel_util_FlxColorTransformUtil.hasRGBOffsets(transform)) { return transform.alphaOffset != 0; } else { return true; } }; var flixel_util_FlxDestroyUtil = function() { }; $hxClasses["flixel.util.FlxDestroyUtil"] = flixel_util_FlxDestroyUtil; flixel_util_FlxDestroyUtil.__name__ = "flixel.util.FlxDestroyUtil"; flixel_util_FlxDestroyUtil.destroy = function(object) { if(object != null) { object.destroy(); } return null; }; flixel_util_FlxDestroyUtil.destroyArray = function(array) { if(array != null) { var _g = 0; while(_g < array.length) { var e = array[_g]; ++_g; flixel_util_FlxDestroyUtil.destroy(e); } array.splice(0,array.length); } return null; }; flixel_util_FlxDestroyUtil.put = function(object) { if(object != null) { object.put(); } return null; }; flixel_util_FlxDestroyUtil.putArray = function(array) { if(array != null) { var _g = 0; while(_g < array.length) { var e = array[_g]; ++_g; flixel_util_FlxDestroyUtil.put(e); } array.splice(0,array.length); } return null; }; flixel_util_FlxDestroyUtil.dispose = function(bitmapData) { if(bitmapData != null) { bitmapData.dispose(); } return null; }; flixel_util_FlxDestroyUtil.disposeIfNotEqual = function(bitmapData,width,height) { if(bitmapData != null && (bitmapData.width != width || bitmapData.height != height)) { bitmapData.dispose(); return null; } else if(bitmapData != null) { return bitmapData; } return null; }; flixel_util_FlxDestroyUtil.removeChild = function(parent,child) { if(parent != null && child != null && parent.contains(child)) { parent.removeChild(child); } return null; }; var flixel_util_FlxDirection = {}; flixel_util_FlxDirection.toString = function(this1) { switch(this1) { case 1: return "L"; case 16: return "R"; case 256: return "U"; case 4096: return "D"; } }; var flixel_util_FlxDirectionFlags = {}; flixel_util_FlxDirectionFlags.__properties__ = {get_radians:"get_radians",get_degrees:"get_degrees"}; flixel_util_FlxDirectionFlags.get_degrees = function(this1) { switch(this1) { case 1: return 180; case 16: return 0; case 256: return -90; case 4096: return 90; default: var f = this1; if(f == (4096 | 16)) { return 45; } else { var f = this1; if(f == (4096 | 1)) { return 135; } else { var f = this1; if(f == (256 | 16)) { return -45; } else { var f = this1; if(f == (256 | 1)) { return -135; } else { return 0; } } } } } }; flixel_util_FlxDirectionFlags.get_radians = function(this1) { return flixel_util_FlxDirectionFlags.get_degrees(this1) * (Math.PI / 180); }; flixel_util_FlxDirectionFlags.has = function(this1,dir) { return (this1 & dir) == dir; }; flixel_util_FlxDirectionFlags.hasAny = function(this1,dir) { return (this1 & dir) > 0; }; flixel_util_FlxDirectionFlags.with = function(this1,dir) { return this1 | dir; }; flixel_util_FlxDirectionFlags.without = function(this1,dir) { return this1 & ~dir; }; flixel_util_FlxDirectionFlags.toString = function(this1) { if(this1 == 0) { return "NONE"; } var str = ""; var dir = 1; if((this1 & dir) == dir) { str += " | L"; } var dir = 16; if((this1 & dir) == dir) { str += " | R"; } var dir = 256; if((this1 & dir) == dir) { str += " | U"; } var dir = 4096; if((this1 & dir) == dir) { str += " | D"; } return HxOverrides.substr(str,3,null); }; flixel_util_FlxDirectionFlags.fromBools = function(left,right,up,down) { return (left ? 1 : 0) | (right ? 16 : 0) | (up ? 256 : 0) | (down ? 4096 : 0); }; var flixel_util_FlxGradient = function() { }; $hxClasses["flixel.util.FlxGradient"] = flixel_util_FlxGradient; flixel_util_FlxGradient.__name__ = "flixel.util.FlxGradient"; flixel_util_FlxGradient.createGradientMatrix = function(width,height,colors,chunkSize,rotation) { if(rotation == null) { rotation = 90; } if(chunkSize == null) { chunkSize = 1; } var gradientMatrix = new openfl_geom_Matrix(); var rot = rotation * (Math.PI / 180); gradientMatrix.createGradientBox(width,UInt.toFloat(height) / UInt.toFloat(chunkSize),rot,0,0); var alpha = []; var _g = 0; var _g1 = colors.length; while(_g < _g1) { var ai = _g++; alpha.push((colors[ai] >> 24 & 255) / 255); } var ratio = []; if(colors.length == 2) { ratio[0] = 0; ratio[1] = 255; } else { var spread = 255 / (colors.length - 1) | 0; ratio.push(0); var _g = 1; var _g1 = colors.length - 1; while(_g < _g1) { var ri = _g++; ratio.push(ri * spread); } ratio.push(255); } return { matrix : gradientMatrix, alpha : alpha, ratio : ratio}; }; flixel_util_FlxGradient.createGradientArray = function(width,height,colors,chunkSize,rotation,interpolate) { if(interpolate == null) { interpolate = true; } if(rotation == null) { rotation = 90; } if(chunkSize == null) { chunkSize = 1; } var data = flixel_util_FlxGradient.createGradientBitmapData(width,height,colors,chunkSize,rotation,interpolate); var result = []; var _g = 0; var _g1 = data.height; while(_g < _g1) { var y = _g++; result.push(data.getPixel32(0,y)); } return result; }; flixel_util_FlxGradient.createGradientFlxSprite = function(width,height,colors,chunkSize,rotation,interpolate) { if(interpolate == null) { interpolate = true; } if(rotation == null) { rotation = 90; } if(chunkSize == null) { chunkSize = 1; } var data = flixel_util_FlxGradient.createGradientBitmapData(width,height,colors,chunkSize,rotation,interpolate); var dest = new flixel_FlxSprite(); dest.set_pixels(data); return dest; }; flixel_util_FlxGradient.createGradientBitmapData = function(width,height,colors,chunkSize,rotation,interpolate) { if(interpolate == null) { interpolate = true; } if(rotation == null) { rotation = 90; } if(chunkSize == null) { chunkSize = 1; } if(UInt.gt(1,width)) { width = 1; } if(UInt.gt(1,height)) { height = 1; } var gradient = flixel_util_FlxGradient.createGradientMatrix(width,height,colors,chunkSize,rotation); var shape = new openfl_display_Shape(); var interpolationMethod = interpolate ? 1 : 0; shape.get_graphics().beginGradientFill(0,colors,gradient.alpha,gradient.ratio,gradient.matrix,0,interpolationMethod,0); shape.get_graphics().drawRect(0,0,UInt.toFloat(width),UInt.toFloat(height) / UInt.toFloat(chunkSize)); var data = new openfl_display_BitmapData(width,height,true,0); if(chunkSize == 1) { data.draw(shape); } else { var tempBitmap = new openfl_display_Bitmap(new openfl_display_BitmapData(width,UInt.toFloat(height) / UInt.toFloat(chunkSize) | 0,true,0)); tempBitmap.get_bitmapData().draw(shape); tempBitmap.set_scaleY(UInt.toFloat(chunkSize)); var sM = new openfl_geom_Matrix(); sM.scale(tempBitmap.get_scaleX(),tempBitmap.get_scaleY()); data.draw(tempBitmap,sM); var remainingRect = tempBitmap.get_height(); var remainingRect1 = UInt.toFloat(width); var b = tempBitmap.get_height(); var remainingRect2 = new openfl_geom_Rectangle(0,remainingRect,remainingRect1,UInt.toFloat(height) - b); data.fillRect(remainingRect2,colors[colors.length - 1]); } return data; }; flixel_util_FlxGradient.overlayGradientOnFlxSprite = function(dest,width,height,colors,destX,destY,chunkSize,rotation,interpolate) { if(interpolate == null) { interpolate = true; } if(rotation == null) { rotation = 90; } if(chunkSize == null) { chunkSize = 1; } if(destY == null) { destY = 0; } if(destX == null) { destX = 0; } if(width > dest.get_width()) { width = dest.get_width() | 0; } if(height > dest.get_height()) { height = dest.get_height() | 0; } var source = flixel_util_FlxGradient.createGradientFlxSprite(width,height,colors,chunkSize,rotation,interpolate); dest.stamp(source,destX,destY); source.destroy(); return dest; }; flixel_util_FlxGradient.overlayGradientOnBitmapData = function(dest,width,height,colors,destX,destY,chunkSize,rotation,interpolate) { if(interpolate == null) { interpolate = true; } if(rotation == null) { rotation = 90; } if(chunkSize == null) { chunkSize = 1; } if(destY == null) { destY = 0; } if(destX == null) { destX = 0; } if(width > dest.width) { width = dest.width; } if(height > dest.height) { height = dest.height; } var source = flixel_util_FlxGradient.createGradientBitmapData(width,height,colors,chunkSize,rotation,interpolate); dest.copyPixels(source,new openfl_geom_Rectangle(0,0,source.width,source.height),new openfl_geom_Point(destX,destY),null,null,true); source.dispose(); return dest; }; var flixel_util_FlxHorizontalAlign = $hxEnums["flixel.util.FlxHorizontalAlign"] = { __ename__:"flixel.util.FlxHorizontalAlign",__constructs__:null ,LEFT: {_hx_name:"LEFT",_hx_index:0,__enum__:"flixel.util.FlxHorizontalAlign",toString:$estr} ,CENTER: {_hx_name:"CENTER",_hx_index:1,__enum__:"flixel.util.FlxHorizontalAlign",toString:$estr} ,RIGHT: {_hx_name:"RIGHT",_hx_index:2,__enum__:"flixel.util.FlxHorizontalAlign",toString:$estr} }; flixel_util_FlxHorizontalAlign.__constructs__ = [flixel_util_FlxHorizontalAlign.LEFT,flixel_util_FlxHorizontalAlign.CENTER,flixel_util_FlxHorizontalAlign.RIGHT]; flixel_util_FlxHorizontalAlign.__empty_constructs__ = [flixel_util_FlxHorizontalAlign.LEFT,flixel_util_FlxHorizontalAlign.CENTER,flixel_util_FlxHorizontalAlign.RIGHT]; var flixel_util_PoolFactory = {}; flixel_util_PoolFactory.fromClass = function(classRef) { return function() { return Type.createInstance(classRef,[]); }; }; flixel_util_PoolFactory.fromFunction = function(func) { return func; }; flixel_util_PoolFactory.getFunction = function(this1) { return this1; }; var openfl_net_SharedObject = function() { openfl_events_EventDispatcher.call(this); this.client = this; this.objectEncoding = openfl_net_SharedObject.defaultObjectEncoding; }; $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; } var illegalValues = [" ","~","%","&","\\",";",":","\"","'",",","<",">","?","#"]; var allowed = true; if(name == null || name == "") { allowed = false; } else { var _g = 0; while(_g < illegalValues.length) { var value = illegalValues[_g]; ++_g; if(name.indexOf(value) > -1) { allowed = false; break; } } } if(!allowed) { throw new openfl_errors_Error("Error #2134: Cannot create SharedObject."); } if(openfl_net_SharedObject.__sharedObjects == null) { openfl_net_SharedObject.__sharedObjects = new haxe_ds_StringMap(); if(lime_app_Application.current != null) { lime_app_Application.current.onExit.add(openfl_net_SharedObject.application_onExit); } } var id = localPath + "/" + name; if(!Object.prototype.hasOwnProperty.call(openfl_net_SharedObject.__sharedObjects.h,id)) { var encodedData = null; try { var storage = js_Browser.getLocalStorage(); if(localPath == null) { if(storage != null) { encodedData = storage.getItem(window.location.href + ":" + name); storage.removeItem(window.location.href + ":" + name); } localPath = window.location.pathname; } if(storage != null && encodedData == null) { encodedData = storage.getItem(localPath + ":" + name); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } var sharedObject = new openfl_net_SharedObject(); sharedObject.data = { }; sharedObject.__localPath = localPath; sharedObject.__name = name; 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( _g ) { haxe_NativeStackTrace.lastError = _g; } } openfl_net_SharedObject.__sharedObjects.h[id] = sharedObject; } return openfl_net_SharedObject.__sharedObjects.h[id]; }; openfl_net_SharedObject.getRemote = function(name,remotePath,persistence,secure) { if(secure == null) { secure = false; } if(persistence == null) { persistence = false; } openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/net/SharedObject.hx", lineNumber : 808, className : "openfl.net.SharedObject", methodName : "getRemote"}); return null; }; openfl_net_SharedObject.__getPath = function(localPath,name) { var path = lime_system_System.get_applicationStorageDirectory() + "/" + localPath + "/"; name = StringTools.replace(name,"//","/"); name = StringTools.replace(name,"//","/"); if(StringTools.startsWith(name,"/")) { name = HxOverrides.substr(name,1,null); } if(StringTools.endsWith(name,"/")) { name = name.substring(0,name.length - 1); } if(name.indexOf("/") > -1) { var split = name.split("/"); name = ""; var _g = 0; var _g1 = split.length - 1; while(_g < _g1) { var i = _g++; name += "#" + split[i] + "/"; } name += split[split.length - 1]; } return path + name + ".sol"; }; openfl_net_SharedObject.__mkdir = function(directory) { }; openfl_net_SharedObject.__resolveClass = function(name) { if(name != null) { if(name == "Dynamic") { return 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 $hxClasses[name]; } return null; }; openfl_net_SharedObject.application_onExit = function(_) { var h = openfl_net_SharedObject.__sharedObjects.h; var sharedObject_h = h; var sharedObject_keys = Object.keys(h); var sharedObject_length = sharedObject_keys.length; var sharedObject_current = 0; while(sharedObject_current < sharedObject_length) { var sharedObject = sharedObject_h[sharedObject_keys[sharedObject_current++]]; 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.__localPath + ":" + this.__name); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } ,close: function() { } ,connect: function(myConnection,params) { openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/net/SharedObject.hx", lineNumber : 392, className : "openfl.net.SharedObject", methodName : "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.__localPath + ":" + this.__name); storage.setItem(this.__localPath + ":" + this.__name,encodedData); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return 1; } return 0; } ,send: function(args) { openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/net/SharedObject.hx", lineNumber : 824, className : "openfl.net.SharedObject", methodName : "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( _g ) { haxe_NativeStackTrace.lastError = _g; return 0; } } ,__class__: openfl_net_SharedObject ,__properties__: {get_size:"get_size"} }); var flixel_util__$FlxSave_FlxSharedObject = function() { openfl_net_SharedObject.call(this); }; $hxClasses["flixel.util._FlxSave.FlxSharedObject"] = flixel_util__$FlxSave_FlxSharedObject; flixel_util__$FlxSave_FlxSharedObject.__name__ = "flixel.util._FlxSave.FlxSharedObject"; flixel_util__$FlxSave_FlxSharedObject.all = null; flixel_util__$FlxSave_FlxSharedObject.init = function() { if(flixel_util__$FlxSave_FlxSharedObject.all == null) { flixel_util__$FlxSave_FlxSharedObject.all = new haxe_ds_StringMap(); var app = lime_app_Application.current; if(app != null) { app.onExit.add(flixel_util__$FlxSave_FlxSharedObject.onExit); } } }; flixel_util__$FlxSave_FlxSharedObject.onExit = function(_) { var h = flixel_util__$FlxSave_FlxSharedObject.all.h; var sharedObject_h = h; var sharedObject_keys = Object.keys(h); var sharedObject_length = sharedObject_keys.length; var sharedObject_current = 0; while(sharedObject_current < sharedObject_length) { var sharedObject = sharedObject_h[sharedObject_keys[sharedObject_current++]]; sharedObject.flush(); } }; flixel_util__$FlxSave_FlxSharedObject.getDefaultLocalPath = function() { var meta = openfl_Lib.get_current().stage.application.meta; var path = meta.h["company"]; if(path == null || path == "") { path = "HaxeFlixel"; } else { path = flixel_util_FlxSave.validate(path); } return path; }; flixel_util__$FlxSave_FlxSharedObject.getLocal = function(name,localPath) { if(name == null || name == "") { throw new openfl_errors_Error("Error: Invalid name:\"" + name + "\"."); } if(localPath == null) { localPath = ""; } var id = localPath + "/" + name; flixel_util__$FlxSave_FlxSharedObject.init(); if(!Object.prototype.hasOwnProperty.call(flixel_util__$FlxSave_FlxSharedObject.all.h,id)) { var encodedData = null; try { if(new EReg("(?:^|/)\\.\\./","").match(localPath)) { throw new openfl_errors_Error("../ not allowed in localPath"); } encodedData = flixel_util__$FlxSave_FlxSharedObject.getData(name,localPath); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } if(localPath == "") { localPath = flixel_util__$FlxSave_FlxSharedObject.getDefaultLocalPath(); } var sharedObject = new flixel_util__$FlxSave_FlxSharedObject(); sharedObject.data = { }; sharedObject.__localPath = localPath; sharedObject.__name = name; if(encodedData != null && encodedData != "") { try { var unserializer = new haxe_Unserializer(encodedData); var resolver = { resolveEnum : Type.resolveEnum, resolveClass : openfl_net_SharedObject.__resolveClass}; unserializer.setResolver(resolver); sharedObject.data = unserializer.unserialize(); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } flixel_util__$FlxSave_FlxSharedObject.all.h[id] = sharedObject; } return flixel_util__$FlxSave_FlxSharedObject.all.h[id]; }; flixel_util__$FlxSave_FlxSharedObject.getData = function(name,localPath) { var storage = js_Browser.getLocalStorage(); if(storage == null) { return null; } var get = function(path) { return storage.getItem(path + ":" + name); }; if(localPath != "") { return get(localPath); } var encodedData = get(flixel_util__$FlxSave_FlxSharedObject.getDefaultLocalPath()); if(encodedData != null) { return encodedData; } encodedData = get(window.location.pathname); if(encodedData != null) { return encodedData; } return get(window.location.href); }; flixel_util__$FlxSave_FlxSharedObject.exists = function(name,localPath) { var storage = js_Browser.getLocalStorage(); if(storage == null) { return false; } if(!(storage.getItem(localPath + ":" + name) != null || storage.getItem(flixel_util__$FlxSave_FlxSharedObject.getDefaultLocalPath() + ":" + name) != null || storage.getItem(window.location.pathname + ":" + name) != null)) { return storage.getItem(window.location.href + ":" + name) != null; } else { return true; } }; flixel_util__$FlxSave_FlxSharedObject.__super__ = openfl_net_SharedObject; flixel_util__$FlxSave_FlxSharedObject.prototype = $extend(openfl_net_SharedObject.prototype,{ __class__: flixel_util__$FlxSave_FlxSharedObject }); var flixel_util_FlxSaveStatus = $hxEnums["flixel.util.FlxSaveStatus"] = { __ename__:"flixel.util.FlxSaveStatus",__constructs__:null ,EMPTY: {_hx_name:"EMPTY",_hx_index:0,__enum__:"flixel.util.FlxSaveStatus",toString:$estr} ,BOUND: ($_=function(name,path) { return {_hx_index:1,name:name,path:path,__enum__:"flixel.util.FlxSaveStatus",toString:$estr}; },$_._hx_name="BOUND",$_.__params__ = ["name","path"],$_) ,ERROR: ($_=function(msg) { return {_hx_index:2,msg:msg,__enum__:"flixel.util.FlxSaveStatus",toString:$estr}; },$_._hx_name="ERROR",$_.__params__ = ["msg"],$_) }; flixel_util_FlxSaveStatus.__constructs__ = [flixel_util_FlxSaveStatus.EMPTY,flixel_util_FlxSaveStatus.BOUND,flixel_util_FlxSaveStatus.ERROR]; flixel_util_FlxSaveStatus.__empty_constructs__ = [flixel_util_FlxSaveStatus.EMPTY]; var flixel_util_FlxTypedSignal = {}; flixel_util_FlxTypedSignal.__properties__ = {get_dispatch:"get_dispatch"}; flixel_util_FlxTypedSignal.add = function(this1,listener) { this1.add(listener); }; flixel_util_FlxTypedSignal.addOnce = function(this1,listener) { this1.addOnce(listener); }; flixel_util_FlxTypedSignal.remove = function(this1,listener) { this1.remove(listener); }; flixel_util_FlxTypedSignal.has = function(this1,listener) { return this1.has(listener); }; flixel_util_FlxTypedSignal.removeAll = function(this1) { this1.removeAll(); }; flixel_util_FlxTypedSignal.destroy = function(this1) { this1.destroy(); }; flixel_util_FlxTypedSignal.get_dispatch = function(this1) { return this1.dispatch; }; flixel_util_FlxTypedSignal.toSignal0 = function(signal) { return new flixel_util__$FlxSignal_FlxSignal0(); }; flixel_util_FlxTypedSignal.toSignal1 = function(signal) { return new flixel_util__$FlxSignal_FlxSignal1(); }; flixel_util_FlxTypedSignal.toSignal2 = function(signal) { return new flixel_util__$FlxSignal_FlxSignal2(); }; flixel_util_FlxTypedSignal.toSignal3 = function(signal) { return new flixel_util__$FlxSignal_FlxSignal3(); }; flixel_util_FlxTypedSignal.toSignal4 = function(signal) { return new flixel_util__$FlxSignal_FlxSignal4(); }; var flixel_util__$FlxSignal_FlxSignalHandler = function(listener,dispatchOnce) { this.dispatchOnce = false; this.listener = listener; this.dispatchOnce = dispatchOnce; }; $hxClasses["flixel.util._FlxSignal.FlxSignalHandler"] = flixel_util__$FlxSignal_FlxSignalHandler; flixel_util__$FlxSignal_FlxSignalHandler.__name__ = "flixel.util._FlxSignal.FlxSignalHandler"; flixel_util__$FlxSignal_FlxSignalHandler.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util__$FlxSignal_FlxSignalHandler.prototype = { listener: null ,dispatchOnce: null ,destroy: function() { this.listener = null; } ,__class__: flixel_util__$FlxSignal_FlxSignalHandler }; var flixel_util_IFlxSignal = function() { }; $hxClasses["flixel.util.IFlxSignal"] = flixel_util_IFlxSignal; flixel_util_IFlxSignal.__name__ = "flixel.util.IFlxSignal"; flixel_util_IFlxSignal.__isInterface__ = true; flixel_util_IFlxSignal.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util_IFlxSignal.prototype = { dispatch: null ,add: null ,addOnce: null ,remove: null ,removeAll: null ,destroy: null ,has: null ,__class__: flixel_util_IFlxSignal }; var flixel_util__$FlxSignal_FlxBaseSignal = function() { this.processingListeners = false; this.handlers = []; this.pendingRemove = []; }; $hxClasses["flixel.util._FlxSignal.FlxBaseSignal"] = flixel_util__$FlxSignal_FlxBaseSignal; flixel_util__$FlxSignal_FlxBaseSignal.__name__ = "flixel.util._FlxSignal.FlxBaseSignal"; flixel_util__$FlxSignal_FlxBaseSignal.__interfaces__ = [flixel_util_IFlxSignal]; flixel_util__$FlxSignal_FlxBaseSignal.prototype = { dispatch: null ,handlers: null ,pendingRemove: null ,processingListeners: null ,add: function(listener) { if(listener != null) { this.registerListener(listener,false); } } ,addOnce: function(listener) { if(listener != null) { this.registerListener(listener,true); } } ,remove: function(listener) { if(listener != null) { var handler = this.getHandler(listener); if(handler != null) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } } } ,removeHandler: function(handler) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } ,has: function(listener) { if(listener == null) { return false; } return this.getHandler(listener) != null; } ,removeAll: function() { flixel_util_FlxDestroyUtil.destroyArray(this.handlers); } ,destroy: function() { flixel_util_FlxDestroyUtil.destroyArray(this.handlers); this.handlers = null; this.pendingRemove = null; } ,registerListener: function(listener,dispatchOnce) { var handler = this.getHandler(listener); if(handler == null) { handler = new flixel_util__$FlxSignal_FlxSignalHandler(listener,dispatchOnce); this.handlers.push(handler); return handler; } else if(handler.dispatchOnce != dispatchOnce) { throw haxe_Exception.thrown("You cannot addOnce() then add() the same listener without removing the relationship first."); } else { return handler; } } ,getHandler: function(listener) { var _g = 0; var _g1 = this.handlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(handler.listener == listener) { return handler; } } return null; } ,__class__: flixel_util__$FlxSignal_FlxBaseSignal }; var flixel_util__$FlxSignal_FlxSignal0 = function() { flixel_util__$FlxSignal_FlxBaseSignal.call(this); this.dispatch = $bind(this,this.dispatch0); }; $hxClasses["flixel.util._FlxSignal.FlxSignal0"] = flixel_util__$FlxSignal_FlxSignal0; flixel_util__$FlxSignal_FlxSignal0.__name__ = "flixel.util._FlxSignal.FlxSignal0"; flixel_util__$FlxSignal_FlxSignal0.__super__ = flixel_util__$FlxSignal_FlxBaseSignal; flixel_util__$FlxSignal_FlxSignal0.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{ dispatch0: function() { this.processingListeners = true; var _g = 0; var _g1 = this.handlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; handler.listener(); if(handler.dispatchOnce) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } } this.processingListeners = false; var _g = 0; var _g1 = this.pendingRemove; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } if(this.pendingRemove.length > 0) { this.pendingRemove = []; } } ,__class__: flixel_util__$FlxSignal_FlxSignal0 }); var flixel_util__$FlxSignal_FlxSignal1 = function() { flixel_util__$FlxSignal_FlxBaseSignal.call(this); this.dispatch = $bind(this,this.dispatch1); }; $hxClasses["flixel.util._FlxSignal.FlxSignal1"] = flixel_util__$FlxSignal_FlxSignal1; flixel_util__$FlxSignal_FlxSignal1.__name__ = "flixel.util._FlxSignal.FlxSignal1"; flixel_util__$FlxSignal_FlxSignal1.__super__ = flixel_util__$FlxSignal_FlxBaseSignal; flixel_util__$FlxSignal_FlxSignal1.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{ dispatch1: function(value1) { this.processingListeners = true; var _g = 0; var _g1 = this.handlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; handler.listener(value1); if(handler.dispatchOnce) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } } this.processingListeners = false; var _g = 0; var _g1 = this.pendingRemove; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } if(this.pendingRemove.length > 0) { this.pendingRemove = []; } } ,__class__: flixel_util__$FlxSignal_FlxSignal1 }); var flixel_util__$FlxSignal_FlxSignal2 = function() { flixel_util__$FlxSignal_FlxBaseSignal.call(this); this.dispatch = $bind(this,this.dispatch2); }; $hxClasses["flixel.util._FlxSignal.FlxSignal2"] = flixel_util__$FlxSignal_FlxSignal2; flixel_util__$FlxSignal_FlxSignal2.__name__ = "flixel.util._FlxSignal.FlxSignal2"; flixel_util__$FlxSignal_FlxSignal2.__super__ = flixel_util__$FlxSignal_FlxBaseSignal; flixel_util__$FlxSignal_FlxSignal2.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{ dispatch2: function(value1,value2) { this.processingListeners = true; var _g = 0; var _g1 = this.handlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; handler.listener(value1,value2); if(handler.dispatchOnce) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } } this.processingListeners = false; var _g = 0; var _g1 = this.pendingRemove; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } if(this.pendingRemove.length > 0) { this.pendingRemove = []; } } ,__class__: flixel_util__$FlxSignal_FlxSignal2 }); var flixel_util__$FlxSignal_FlxSignal3 = function() { flixel_util__$FlxSignal_FlxBaseSignal.call(this); this.dispatch = $bind(this,this.dispatch3); }; $hxClasses["flixel.util._FlxSignal.FlxSignal3"] = flixel_util__$FlxSignal_FlxSignal3; flixel_util__$FlxSignal_FlxSignal3.__name__ = "flixel.util._FlxSignal.FlxSignal3"; flixel_util__$FlxSignal_FlxSignal3.__super__ = flixel_util__$FlxSignal_FlxBaseSignal; flixel_util__$FlxSignal_FlxSignal3.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{ dispatch3: function(value1,value2,value3) { this.processingListeners = true; var _g = 0; var _g1 = this.handlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; handler.listener(value1,value2,value3); if(handler.dispatchOnce) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } } this.processingListeners = false; var _g = 0; var _g1 = this.pendingRemove; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } if(this.pendingRemove.length > 0) { this.pendingRemove = []; } } ,__class__: flixel_util__$FlxSignal_FlxSignal3 }); var flixel_util__$FlxSignal_FlxSignal4 = function() { flixel_util__$FlxSignal_FlxBaseSignal.call(this); this.dispatch = $bind(this,this.dispatch4); }; $hxClasses["flixel.util._FlxSignal.FlxSignal4"] = flixel_util__$FlxSignal_FlxSignal4; flixel_util__$FlxSignal_FlxSignal4.__name__ = "flixel.util._FlxSignal.FlxSignal4"; flixel_util__$FlxSignal_FlxSignal4.__super__ = flixel_util__$FlxSignal_FlxBaseSignal; flixel_util__$FlxSignal_FlxSignal4.prototype = $extend(flixel_util__$FlxSignal_FlxBaseSignal.prototype,{ dispatch4: function(value1,value2,value3,value4) { this.processingListeners = true; var _g = 0; var _g1 = this.handlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; handler.listener(value1,value2,value3,value4); if(handler.dispatchOnce) { if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } } this.processingListeners = false; var _g = 0; var _g1 = this.pendingRemove; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(this.processingListeners) { this.pendingRemove.push(handler); } else { HxOverrides.remove(this.handlers,handler); handler.destroy(); } } if(this.pendingRemove.length > 0) { this.pendingRemove = []; } } ,__class__: flixel_util__$FlxSignal_FlxSignal4 }); var flixel_util__$FlxSignal_Macro = function() { }; $hxClasses["flixel.util._FlxSignal.Macro"] = flixel_util__$FlxSignal_Macro; flixel_util__$FlxSignal_Macro.__name__ = "flixel.util._FlxSignal.Macro"; var flixel_util_FlxSort = function() { }; $hxClasses["flixel.util.FlxSort"] = flixel_util_FlxSort; flixel_util_FlxSort.__name__ = "flixel.util.FlxSort"; flixel_util_FlxSort.byY = function(Order,Obj1,Obj2) { var Value1 = Obj1.y; var Value2 = Obj2.y; var result = 0; if(Value1 < Value2) { result = Order; } else if(Value1 > Value2) { result = -Order; } return result; }; flixel_util_FlxSort.byValues = function(Order,Value1,Value2) { var result = 0; if(Value1 < Value2) { result = Order; } else if(Value1 > Value2) { result = -Order; } return result; }; var flixel_util_FlxSpriteUtil = function() { }; $hxClasses["flixel.util.FlxSpriteUtil"] = flixel_util_FlxSpriteUtil; flixel_util_FlxSpriteUtil.__name__ = "flixel.util.FlxSpriteUtil"; flixel_util_FlxSpriteUtil.alphaMask = function(output,source,mask) { var data = flixel_system_FlxAssets.resolveBitmapData(source); var maskData = flixel_system_FlxAssets.resolveBitmapData(mask); if(data == null || maskData == null) { return null; } data = data.clone(); data.copyChannel(maskData,new openfl_geom_Rectangle(0,0,data.width,data.height),new openfl_geom_Point(),8,8); output.set_pixels(data); return output; }; flixel_util_FlxSpriteUtil.alphaMaskFlxSprite = function(sprite,mask,output) { sprite.drawFrame(); var data = sprite.get_pixels().clone(); data.copyChannel(mask.get_pixels(),new openfl_geom_Rectangle(0,0,sprite.get_width(),sprite.get_height()),new openfl_geom_Point(),8,8); output.set_pixels(data); return output; }; flixel_util_FlxSpriteUtil.screenWrap = function(sprite,Left,Right,Top,Bottom) { if(Bottom == null) { Bottom = true; } if(Top == null) { Top = true; } if(Right == null) { Right = true; } if(Left == null) { Left = true; } if(Left && sprite.x + sprite.frameWidth / 2 <= 0) { sprite.set_x(flixel_FlxG.width); } else if(Right && sprite.x >= flixel_FlxG.width) { sprite.set_x(0); } if(Top && sprite.y + sprite.frameHeight / 2 <= 0) { sprite.set_y(flixel_FlxG.height); } else if(Bottom && sprite.y >= flixel_FlxG.height) { sprite.set_y(0); } return sprite; }; flixel_util_FlxSpriteUtil.bound = function(sprite,MinX,MaxX,MinY,MaxY) { if(MaxY == null) { MaxY = 0; } if(MinY == null) { MinY = 0; } if(MaxX == null) { MaxX = 0; } if(MinX == null) { MinX = 0; } if(MaxX <= 0) { MaxX = flixel_FlxG.width; } if(MaxY <= 0) { MaxY = flixel_FlxG.height; } MaxX -= sprite.frameWidth; MaxY -= sprite.frameHeight; var Value = sprite.x; var lowerBound = MinX != null && Value < MinX ? MinX : Value; sprite.set_x(MaxX != null && lowerBound > MaxX ? MaxX : lowerBound); var Value = sprite.y; var lowerBound = MinY != null && Value < MinY ? MinY : Value; sprite.set_y(MaxY != null && lowerBound > MaxY ? MaxY : lowerBound); return sprite; }; flixel_util_FlxSpriteUtil.cameraWrap = function(sprite,camera,edges) { if(edges == null) { edges = 4369; } if(camera == null) { camera = flixel_FlxG.camera; } var spriteBounds = sprite.getScreenBounds(null,camera); var x = sprite.x - spriteBounds.x - camera.scroll.x; var y = sprite.y - spriteBounds.y - camera.scroll.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var dir = 1; if((edges & dir) == dir && spriteBounds.x + spriteBounds.width < camera.viewMarginX) { sprite.set_x(camera.scroll.x + (camera.width - camera.viewMarginX) + offset.x); } else { var dir = 16; if((edges & dir) == dir && spriteBounds.x > camera.width - camera.viewMarginX) { sprite.set_x(camera.scroll.x + camera.viewMarginX + offset.x - spriteBounds.width); } } var dir = 256; if((edges & dir) == dir && spriteBounds.y + spriteBounds.height < camera.viewMarginY) { sprite.set_y(camera.scroll.y + (camera.height - camera.viewMarginY) + offset.y); } else { var dir = 4096; if((edges & dir) == dir && spriteBounds.y > camera.height - camera.viewMarginY) { sprite.set_y(camera.scroll.y + camera.viewMarginY + offset.y - spriteBounds.height); } } if(!spriteBounds._inPool) { spriteBounds._inPool = true; spriteBounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(spriteBounds); } offset.put(); return sprite; }; flixel_util_FlxSpriteUtil.cameraBound = function(sprite,camera,edges) { if(edges == null) { edges = 4369; } if(camera == null) { camera = flixel_FlxG.camera; } var spriteBounds = sprite.getScreenBounds(null,camera); var x = sprite.x - spriteBounds.x - camera.scroll.x; var y = sprite.y - spriteBounds.y - camera.scroll.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var dir = 1; if((edges & dir) == dir && spriteBounds.x < camera.viewMarginX) { sprite.set_x(camera.scroll.x + camera.viewMarginX + offset.x); } else { var dir = 16; if((edges & dir) == dir && spriteBounds.x + spriteBounds.width > camera.width - camera.viewMarginX) { sprite.set_x(camera.scroll.x + (camera.width - camera.viewMarginX) + offset.x - spriteBounds.width); } } var dir = 256; if((edges & dir) == dir && spriteBounds.y < camera.viewMarginY) { sprite.set_y(camera.scroll.y + camera.viewMarginY + offset.y); } else { var dir = 4096; if((edges & dir) == dir && spriteBounds.y + spriteBounds.height > camera.height - camera.viewMarginY) { sprite.set_y(camera.scroll.y + (camera.height - camera.viewMarginY) + offset.y - spriteBounds.height); } } if(!spriteBounds._inPool) { spriteBounds._inPool = true; spriteBounds._weak = false; flixel_math_FlxRect._pool.putUnsafe(spriteBounds); } offset.put(); return sprite; }; flixel_util_FlxSpriteUtil.space = function(objects,startX,startY,horizontalSpacing,verticalSpacing,spaceFromBounds,position) { if(spaceFromBounds == null) { spaceFromBounds = false; } var prevWidth = 0; var runningX = 0; if(horizontalSpacing != null) { if(spaceFromBounds) { prevWidth = objects[0].get_width(); } runningX = startX; } else { runningX = objects[0].x; } var prevHeight = 0; var runningY = 0; if(verticalSpacing != null) { if(spaceFromBounds) { prevHeight = objects[0].get_height(); } runningY = startY; } else { runningY = objects[0].y; } if(position != null) { position(objects[0],runningX,runningY); } else { objects[0].set_x(runningX); objects[0].set_y(runningY); } var curX = 0; var curY = 0; var _g = 1; var _g1 = objects.length; while(_g < _g1) { var i = _g++; var object = objects[i]; if(horizontalSpacing != null) { curX = runningX + prevWidth + horizontalSpacing; runningX = curX; } else { curX = object.x; } if(verticalSpacing != null) { curY = runningY + prevHeight + verticalSpacing; runningY = curY; } else { curY = object.y; } if(position != null) { position(object,curX,curY); } else { object.set_x(curX); object.set_y(curY); } if(spaceFromBounds) { prevWidth = object.get_width(); prevHeight = object.get_height(); } } }; flixel_util_FlxSpriteUtil.drawLine = function(sprite,StartX,StartY,EndX,EndY,lineStyle,drawStyle) { var lineStyle1 = lineStyle; if(lineStyle1 == null) { lineStyle1 = { thickness : 1, color : -1}; } if(lineStyle1.thickness == null) { lineStyle1.thickness = 1; } if(lineStyle1.color == null) { lineStyle1.color = -1; } lineStyle = lineStyle1; flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(0 != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(0,0.); } flixel_util_FlxSpriteUtil.flashGfx.moveTo(StartX,StartY); flixel_util_FlxSpriteUtil.flashGfx.lineTo(EndX,EndY); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawCurve = function(sprite,StartX,StartY,EndX,EndY,ControlX,ControlY,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = 0; } var lineStyle1 = lineStyle; if(lineStyle1 == null) { lineStyle1 = { thickness : 1, color : -1}; } if(lineStyle1.thickness == null) { lineStyle1.thickness = 1; } if(lineStyle1.color == null) { lineStyle1.color = -1; } lineStyle = lineStyle1; flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.moveTo(StartX,StartY); flixel_util_FlxSpriteUtil.flashGfx.curveTo(EndX,EndY,ControlX,ControlY); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawRect = function(sprite,X,Y,Width,Height,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.drawRect(X,Y,Width,Height); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawRoundRect = function(sprite,X,Y,Width,Height,EllipseWidth,EllipseHeight,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.drawRoundRect(X,Y,Width,Height,EllipseWidth,EllipseHeight); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawRoundRectComplex = function(sprite,X,Y,Width,Height,TopLeftRadius,TopRightRadius,BottomLeftRadius,BottomRightRadius,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.drawRoundRectComplex(X,Y,Width,Height,TopLeftRadius,TopRightRadius,BottomLeftRadius,BottomRightRadius); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawCircle = function(sprite,X,Y,Radius,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } if(Radius == null) { Radius = -1; } if(Y == null) { Y = -1; } if(X == null) { X = -1; } if(X == -1 || Y == -1) { var midPoint = sprite.getGraphicMidpoint(); if(X == -1) { X = midPoint.x - sprite.x; } if(Y == -1) { Y = midPoint.y - sprite.y; } midPoint.put(); } if(Radius < 1) { var minVal = Math.min(sprite.frameWidth,sprite.frameHeight); Radius = minVal / 2; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.drawCircle(X,Y,Radius); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawEllipse = function(sprite,X,Y,Width,Height,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.drawEllipse(X,Y,Width,Height); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawTriangle = function(sprite,X,Y,Height,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } flixel_util_FlxSpriteUtil.flashGfx.moveTo(X + Height / 2,Y); flixel_util_FlxSpriteUtil.flashGfx.lineTo(X + Height,Height + Y); flixel_util_FlxSpriteUtil.flashGfx.lineTo(X,Height + Y); flixel_util_FlxSpriteUtil.flashGfx.lineTo(X + Height / 2,Y); flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.drawPolygon = function(sprite,Vertices,FillColor,lineStyle,drawStyle) { if(FillColor == null) { FillColor = -1; } flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } var p = Vertices.shift(); flixel_util_FlxSpriteUtil.flashGfx.moveTo(p.x,p.y); var _g = 0; while(_g < Vertices.length) { var p1 = Vertices[_g]; ++_g; flixel_util_FlxSpriteUtil.flashGfx.lineTo(p1.x,p1.y); } flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); Vertices.unshift(p); return sprite; }; flixel_util_FlxSpriteUtil.beginDraw = function(FillColor,lineStyle) { flixel_util_FlxSpriteUtil.flashGfx.clear(); if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } if(FillColor != 0) { flixel_util_FlxSpriteUtil.flashGfx.beginFill(FillColor & 16777215,(FillColor >> 24 & 255) / 255); } }; flixel_util_FlxSpriteUtil.endDraw = function(sprite,drawStyle) { flixel_util_FlxSpriteUtil.flashGfx.endFill(); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite,drawStyle); return sprite; }; flixel_util_FlxSpriteUtil.updateSpriteGraphic = function(sprite,drawStyle) { if(drawStyle == null) { drawStyle = { smoothing : false}; } else if(drawStyle.smoothing == null) { drawStyle.smoothing = false; } sprite.get_pixels().draw(flixel_util_FlxSpriteUtil.flashGfxSprite,drawStyle.matrix,drawStyle.colorTransform,drawStyle.blendMode,drawStyle.clipRect,drawStyle.smoothing); sprite.dirty = true; return sprite; }; flixel_util_FlxSpriteUtil.setLineStyle = function(lineStyle) { if(lineStyle != null) { var color = lineStyle.color == null ? -16777216 : lineStyle.color; if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.pixelHinting == null) { lineStyle.pixelHinting = false; } if(lineStyle.miterLimit == null) { lineStyle.miterLimit = 3; } flixel_util_FlxSpriteUtil.flashGfx.lineStyle(lineStyle.thickness,color & 16777215,(color >> 24 & 255) / 255,lineStyle.pixelHinting,lineStyle.scaleMode,lineStyle.capsStyle,lineStyle.jointStyle,lineStyle.miterLimit); } }; flixel_util_FlxSpriteUtil.getDefaultLineStyle = function(lineStyle) { if(lineStyle == null) { lineStyle = { thickness : 1, color : -1}; } if(lineStyle.thickness == null) { lineStyle.thickness = 1; } if(lineStyle.color == null) { lineStyle.color = -1; } return lineStyle; }; flixel_util_FlxSpriteUtil.fill = function(sprite,FillColor) { sprite.get_pixels().fillRect(sprite.get_pixels().rect,FillColor); if(sprite.get_pixels() != sprite.framePixels) { sprite.dirty = true; } return sprite; }; flixel_util_FlxSpriteUtil.flicker = function(Object1,Duration,Interval,EndVisibility,ForceRestart,CompletionCallback,ProgressCallback) { if(ForceRestart == null) { ForceRestart = true; } if(EndVisibility == null) { EndVisibility = true; } if(Interval == null) { Interval = 0.04; } if(Duration == null) { Duration = 1; } return flixel_effects_FlxFlicker.flicker(Object1,Duration,Interval,EndVisibility,ForceRestart,CompletionCallback,ProgressCallback); }; flixel_util_FlxSpriteUtil.isFlickering = function(Object1) { return flixel_effects_FlxFlicker.isFlickering(Object1); }; flixel_util_FlxSpriteUtil.stopFlickering = function(Object1) { flixel_effects_FlxFlicker.stopFlickering(Object1); return Object1; }; flixel_util_FlxSpriteUtil.fadeIn = function(sprite,Duration,ResetAlpha,OnComplete) { if(Duration == null) { Duration = 1; } if(ResetAlpha) { sprite.set_alpha(0); } var sprite1 = sprite; var tmp = function(f) { flixel_util_FlxSpriteUtil.alphaTween(sprite1,f); }; flixel_tweens_FlxTween.num(sprite.alpha,1,Duration,{ onComplete : OnComplete},tmp); return sprite; }; flixel_util_FlxSpriteUtil.fadeOut = function(sprite,Duration,OnComplete) { if(Duration == null) { Duration = 1; } var sprite1 = sprite; var tmp = function(f) { flixel_util_FlxSpriteUtil.alphaTween(sprite1,f); }; flixel_tweens_FlxTween.num(sprite.alpha,0,Duration,{ onComplete : OnComplete},tmp); return sprite; }; flixel_util_FlxSpriteUtil.alphaTween = function(sprite,f) { sprite.set_alpha(f); }; flixel_util_FlxSpriteUtil.setTint = function(sprite,tint) { var strength = (tint >> 24 & 255) / 255; var mult = 1 - strength; sprite.setColorTransform(mult,mult,mult,1.0,Math.round((tint >> 16 & 255) * strength),Math.round((tint >> 8 & 255) * strength),Math.round((tint & 255) * strength)); }; flixel_util_FlxSpriteUtil.flashTint = function(sprite,tint,duration,func,onComplete) { if(duration == null) { duration = 0.5; } if(tint == null) { tint = -1; } var options = onComplete != null ? { onComplete : function(_) { }} : null; if(func == null) { func = function(n) { return 1 - -(Math.sqrt(1 - n * n) - 1); }; } var color = tint & 16777215; var strength = (tint >> 24 & 255) / 255; flixel_tweens_FlxTween.num(0,1,duration,options,function(n) { var Value = strength * func(n); var Value1 = Math.round(Value * 255); color = (color &= 16777215) | (Value1 > 255 ? 255 : Value1 < 0 ? 0 : Value1) << 24; var strength1 = (color >> 24 & 255) / 255; var mult = 1 - strength1; sprite.setColorTransform(mult,mult,mult,1.0,Math.round((color >> 16 & 255) * strength1),Math.round((color >> 8 & 255) * strength1),Math.round((color & 255) * strength1)); }); return sprite; }; flixel_util_FlxSpriteUtil.setBrightness = function(sprite,brightness) { var mult = 1.0 - Math.abs(brightness); var offset = Math.round(Math.max(0,255 * brightness)); sprite.setColorTransform(mult,mult,mult,1.0,offset,offset,offset); }; var flixel_util_FlxStringUtil = function() { }; $hxClasses["flixel.util.FlxStringUtil"] = flixel_util_FlxStringUtil; flixel_util_FlxStringUtil.__name__ = "flixel.util.FlxStringUtil"; flixel_util_FlxStringUtil.formatTicks = function(StartTicks,EndTicks) { return Math.abs(EndTicks - StartTicks) / 1000 + "s"; }; flixel_util_FlxStringUtil.formatTime = function(Seconds,ShowMS) { if(ShowMS == null) { ShowMS = false; } var timeString = (Seconds / 60 | 0) + ":"; var timeStringHelper = (Seconds | 0) % 60; if(timeStringHelper < 10) { timeString += "0"; } timeString += timeStringHelper; if(ShowMS) { timeString += "."; timeStringHelper = (Seconds - (Seconds | 0)) * 100 | 0; if(timeStringHelper < 10) { timeString += "0"; } timeString += timeStringHelper; } return timeString; }; flixel_util_FlxStringUtil.formatArray = function(AnyArray) { var string = ""; if(AnyArray != null && AnyArray.length > 0) { string = Std.string(AnyArray[0]); var i = 1; var l = AnyArray.length; while(i < l) string += ", " + Std.string(AnyArray[i++]); } return string; }; flixel_util_FlxStringUtil.formatStringMap = function(AnyMap) { var string = ""; var h = AnyMap.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; string += key == null ? "null" : "" + key; string += ", "; } return string.substring(0,string.length - 2); }; flixel_util_FlxStringUtil.formatMoney = function(Amount,ShowDecimal,EnglishStyle) { if(EnglishStyle == null) { EnglishStyle = true; } if(ShowDecimal == null) { ShowDecimal = true; } var isNegative = Amount < 0; Amount = Math.abs(Amount); var string = ""; var comma = ""; var amount = Math.floor(Amount); while(amount > 0) { if(string.length > 0 && comma.length <= 0) { comma = EnglishStyle ? "," : "."; } var zeroes = ""; var helper = amount - Math.floor(amount / 1000) * 1000; amount = Math.floor(amount / 1000); if(amount > 0) { if(helper < 100) { zeroes += "0"; } if(helper < 10) { zeroes += "0"; } } string = zeroes + helper + comma + string; } if(string == "") { string = "0"; } if(ShowDecimal) { amount = Math.floor(Amount * 100) - Math.floor(Amount) * 100; string += EnglishStyle ? "." : ","; if(amount < 10) { string += "0"; } string += amount; } if(isNegative) { string = "-" + string; } return string; }; flixel_util_FlxStringUtil.formatBytes = function(Bytes,Precision) { if(Precision == null) { Precision = 2; } var units = ["Bytes","kB","MB","GB","TB","PB"]; var curUnit = 0; while(Bytes >= 1024 && curUnit < units.length - 1) { Bytes /= 1024; ++curUnit; } return flixel_math_FlxMath.roundDecimal(Bytes,Precision) + units[curUnit]; }; flixel_util_FlxStringUtil.filterDigits = function(Input) { var output_b = ""; var _g = 0; var _g1 = Input.length; while(_g < _g1) { var i = _g++; var c = HxOverrides.cca(Input,i); if(c >= 48 && c <= 57) { output_b += String.fromCodePoint(c); } } return output_b; }; flixel_util_FlxStringUtil.htmlFormat = function(Text1,Size,Color,Bold,Italic,Underlined) { if(Underlined == null) { Underlined = false; } if(Italic == null) { Italic = false; } if(Bold == null) { Bold = false; } if(Color == null) { Color = "FFFFFF"; } if(Size == null) { Size = 12; } var prefix = ""; var suffix = ""; if(Bold) { prefix = "" + prefix; suffix += ""; } if(Italic) { prefix = "" + prefix; suffix += ""; } if(Underlined) { prefix = "" + prefix; suffix += ""; } return prefix + Text1 + suffix; }; flixel_util_FlxStringUtil.getClassName = function(objectOrClass,simple) { if(simple == null) { simple = false; } var cl; if(js_Boot.__instanceof(objectOrClass,Class)) { cl = objectOrClass; } else { cl = js_Boot.getClass(objectOrClass); } return flixel_util_FlxStringUtil.formatPackage(cl.__name__,simple); }; flixel_util_FlxStringUtil.getEnumName = function(enumValueOrEnum,simple) { if(simple == null) { simple = false; } var e; if(js_Boot.__instanceof(enumValueOrEnum,Enum)) { e = enumValueOrEnum; } else { e = Type.getEnum(enumValueOrEnum); } return flixel_util_FlxStringUtil.formatPackage(e.__ename__,simple); }; flixel_util_FlxStringUtil.formatPackage = function(s,simple) { if(s == null) { return null; } s = StringTools.replace(s,"::","."); if(simple) { s = HxOverrides.substr(s,s.lastIndexOf(".") + 1,null); } return s; }; flixel_util_FlxStringUtil.getHost = function(url) { var hostFromURL = new EReg("^(?:[a-z][a-z0-9+\\-.]*://)?(?:[a-z0-9\\-._~%!$&'()*+,;=]+@)?([a-z0-9\\-._~%]{3,}|\\[[a-f0-9:.]+\\])?(?::[0-9]+)?","i"); if(hostFromURL.match(url)) { var host = hostFromURL.matched(1); if(host != null) { return decodeURIComponent(host.split("+").join(" ")).toLowerCase(); } else { return ""; } } return ""; }; flixel_util_FlxStringUtil.getDomain = function(url) { var host = flixel_util_FlxStringUtil.getHost(url); var isLocalhostOrIpAddress = new EReg("^(localhost|[0-9.]+|\\[[a-f0-9:.]+\\])$","i"); var domainFromHost = new EReg("^(?:[a-z0-9\\-]+\\.)*([a-z0-9\\-]+\\.[a-z0-9\\-]+)$","i"); if(!isLocalhostOrIpAddress.match(host) && domainFromHost.match(host)) { var domain = domainFromHost.matched(1); if(domain != null) { return domain.toLowerCase(); } else { return ""; } } return ""; }; flixel_util_FlxStringUtil.sameClassName = function(Obj1,Obj2,Simple) { if(Simple == null) { Simple = true; } return flixel_util_FlxStringUtil.getClassName(Obj1,Simple) == flixel_util_FlxStringUtil.getClassName(Obj2,Simple); }; flixel_util_FlxStringUtil.toIntArray = function(Data) { if(Data != null && Data != "") { var strArray = Data.split(","); var iArray = []; var _g = 0; while(_g < strArray.length) { var str = strArray[_g]; ++_g; iArray.push(Std.parseInt(str)); } return iArray; } return null; }; flixel_util_FlxStringUtil.toFloatArray = function(Data) { if(Data != null && Data != "") { var strArray = Data.split(","); var fArray = []; var _g = 0; while(_g < strArray.length) { var str = strArray[_g]; ++_g; fArray.push(parseFloat(str)); } return fArray; } return null; }; flixel_util_FlxStringUtil.arrayToCSV = function(Data,Width,Invert) { if(Invert == null) { Invert = false; } var row = 0; var column; var csv = ""; var height = Data.length / Width | 0; var index; var offset = 0; while(row < height) { column = 0; while(column < Width) { index = Data[offset]; if(Invert) { if(index == 0) { index = 1; } else if(index == 1) { index = 0; } } if(column == 0) { if(row == 0) { csv += index; } else { csv += "\n" + index; } } else { csv += ", " + index; } ++column; ++offset; } ++row; } return csv; }; flixel_util_FlxStringUtil.bitmapToCSV = function(Bitmap,Invert,Scale,ColorMap) { if(Scale == null) { Scale = 1; } if(Invert == null) { Invert = false; } if(Scale < 1) { Scale = 1; } if(Scale > 1) { var bd = Bitmap; Bitmap = new openfl_display_BitmapData(Bitmap.width * Scale,Bitmap.height * Scale); var bdW = bd.width; var bdH = bd.height; var pCol = 0; var _g = 0; var _g1 = bdW; while(_g < _g1) { var i = _g++; var _g2 = 0; var _g3 = bdH; while(_g2 < _g3) { var j = _g2++; pCol = bd.getPixel(i,j); var _g4 = 0; var _g5 = Scale; while(_g4 < _g5) { var k = _g4++; var _g6 = 0; var _g7 = Scale; while(_g6 < _g7) { var m = _g6++; Bitmap.setPixel(i * Scale + k,j * Scale + m,pCol); } } } } } if(ColorMap != null) { var _g = 0; var _g1 = ColorMap.length; while(_g < _g1) { var i = _g++; ColorMap[i] = ColorMap[i] & 16777215; } } var row = 0; var column; var pixel; var csv = ""; var bitmapWidth = Bitmap.width; var bitmapHeight = Bitmap.height; while(row < bitmapHeight) { column = 0; while(column < bitmapWidth) { pixel = Bitmap.getPixel(column,row); if(ColorMap != null) { pixel = ColorMap.indexOf(pixel); } else if(Invert && pixel > 0 || !Invert && pixel == 0) { pixel = 1; } else { pixel = 0; } if(column == 0) { if(row == 0) { csv += pixel; } else { csv += "\n" + pixel; } } else { csv += ", " + pixel; } ++column; } ++row; } return csv; }; flixel_util_FlxStringUtil.imageToCSV = function(ImageFile,Invert,Scale,ColorMap) { if(Scale == null) { Scale = 1; } if(Invert == null) { Invert = false; } var tempBitmapData; if(typeof(ImageFile) == "string") { var id = ImageFile; if(openfl_utils_Assets.exists(id)) { tempBitmapData = openfl_utils_Assets.getBitmapData(id,false); } else { flixel_FlxG.log.advanced("Could not find a BitmapData asset with ID '" + id + "'.",flixel_system_debug_log_LogStyle.ERROR,true); tempBitmapData = null; } } else { tempBitmapData = Type.createInstance(ImageFile,[]).bitmapData; } return flixel_util_FlxStringUtil.bitmapToCSV(tempBitmapData,Invert,Scale,ColorMap); }; flixel_util_FlxStringUtil.getDebugString = function(LabelValuePairs) { var output = "("; var _g = 0; while(_g < LabelValuePairs.length) { var pair = LabelValuePairs[_g]; ++_g; output += pair.label + ": "; var value = pair.value; if(typeof(value) == "number") { value = flixel_math_FlxMath.roundDecimal(value,flixel_FlxG.debugger.precision); } output += Std.string(value) + " | "; flixel_util_LabelValuePair._pool.put(pair); } output = StringTools.trim(HxOverrides.substr(output,0,output.length - 2)); return output + ")"; }; flixel_util_FlxStringUtil.contains = function(s,str) { return s.indexOf(str) != -1; }; flixel_util_FlxStringUtil.remove = function(s,sub) { return StringTools.replace(s,sub,""); }; flixel_util_FlxStringUtil.insert = function(s,pos,insertion) { return s.substring(0,pos) + insertion + HxOverrides.substr(s,pos,null); }; flixel_util_FlxStringUtil.sortAlphabetically = function(list) { list.sort(function(a,b) { a = a.toLowerCase(); b = b.toLowerCase(); if(a < b) { return -1; } if(a > b) { return 1; } return 0; }); return list; }; flixel_util_FlxStringUtil.isNullOrEmpty = function(s) { if(s != null) { return s.length == 0; } else { return true; } }; flixel_util_FlxStringUtil.toUnderscoreCase = function(str) { var regex_r = new RegExp("[^a-z0-9]+","g".split("u").join("")); return str.toLowerCase().replace(regex_r,"_"); }; flixel_util_FlxStringUtil.toTitleCase = function(str) { var exempt = ["a","an","the","at","by","for","in","of","on","to","up","and","as","but","or","nor"]; var roman = new EReg("^(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)$","i"); var words = str.toLowerCase().split(" "); var _g = 0; var _g1 = words.length; while(_g < _g1) { var i = _g++; if(roman.match(words[i])) { words[i] = words[i].toUpperCase(); } else if(i == 0 || exempt.indexOf(words[i]) == -1) { words[i] = words[i].charAt(0).toUpperCase() + HxOverrides.substr(words[i],1,null); } } return words.join(" "); }; var flixel_util_LabelValuePair = function() { }; $hxClasses["flixel.util.LabelValuePair"] = flixel_util_LabelValuePair; flixel_util_LabelValuePair.__name__ = "flixel.util.LabelValuePair"; flixel_util_LabelValuePair.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util_LabelValuePair.weak = function(label,value) { var _this = flixel_util_LabelValuePair._pool.get(); _this.label = label; _this.value = value; return _this; }; flixel_util_LabelValuePair.prototype = { label: null ,value: null ,create: function(label,value) { this.label = label; this.value = value; return this; } ,put: function() { flixel_util_LabelValuePair._pool.put(this); } ,destroy: function() { this.label = null; this.value = null; } ,__class__: flixel_util_LabelValuePair }; var flixel_util_FlxTimer = function(manager) { this._inManager = false; this._loopsCounter = 0; this._timeCounter = 0; this.finished = false; this.active = false; this.loops = 0; this.time = 0; this.manager = manager != null ? manager : flixel_util_FlxTimer.globalManager; }; $hxClasses["flixel.util.FlxTimer"] = flixel_util_FlxTimer; flixel_util_FlxTimer.__name__ = "flixel.util.FlxTimer"; flixel_util_FlxTimer.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util_FlxTimer.globalManager = null; flixel_util_FlxTimer.prototype = { manager: null ,time: null ,loops: null ,active: null ,finished: null ,onComplete: null ,_timeCounter: null ,_loopsCounter: null ,_inManager: null ,destroy: function() { this.onComplete = null; } ,start: function(time,onComplete,loops) { if(loops == null) { loops = 1; } if(time == null) { time = 1; } if(this.manager != null && !this._inManager) { this.manager.add(this); this._inManager = true; } this.active = true; this.finished = false; this.time = Math.abs(time); if(loops < 0) { loops *= -1; } this.loops = loops; this.onComplete = onComplete; this._timeCounter = 0; this._loopsCounter = 0; return this; } ,reset: function(newTime) { if(newTime == null) { newTime = -1; } if(newTime < 0) { newTime = this.time; } this.start(newTime,this.onComplete,this.loops); return this; } ,cancel: function() { this.finished = true; this.active = false; if(this.manager != null && this._inManager) { this.manager.remove(this); this._inManager = false; } } ,update: function(elapsed) { this._timeCounter += elapsed; while(this._timeCounter >= this.time && this.active && !this.finished) { this._timeCounter -= this.time; this._loopsCounter++; if(this.loops > 0 && this._loopsCounter >= this.loops) { this.finished = true; } } } ,onLoopFinished: function() { if(this.finished) { this.cancel(); } if(this.onComplete != null) { this.onComplete(this); } } ,get_timeLeft: function() { return this.time - this._timeCounter; } ,get_elapsedTime: function() { return this._timeCounter; } ,get_loopsLeft: function() { return this.loops - this._loopsCounter; } ,get_elapsedLoops: function() { return this._loopsCounter; } ,get_progress: function() { if(this.time > 0) { return this._timeCounter / this.time; } else { return 0; } } ,__class__: flixel_util_FlxTimer ,__properties__: {get_progress:"get_progress",get_elapsedLoops:"get_elapsedLoops",get_loopsLeft:"get_loopsLeft",get_elapsedTime:"get_elapsedTime",get_timeLeft:"get_timeLeft"} }; var flixel_util_FlxTimerManager = function() { this._timers = []; flixel_FlxBasic.call(this); this.set_visible(false); flixel_FlxG.signals.preStateSwitch.add($bind(this,this.clear)); }; $hxClasses["flixel.util.FlxTimerManager"] = flixel_util_FlxTimerManager; flixel_util_FlxTimerManager.__name__ = "flixel.util.FlxTimerManager"; flixel_util_FlxTimerManager.__super__ = flixel_FlxBasic; flixel_util_FlxTimerManager.prototype = $extend(flixel_FlxBasic.prototype,{ _timers: null ,destroy: function() { flixel_util_FlxArrayUtil.clearArray(this._timers); this._timers = null; flixel_FlxG.signals.preStateSwitch.remove($bind(this,this.clear)); flixel_FlxBasic.prototype.destroy.call(this); } ,update: function(elapsed) { var loopedTimers = null; var _g = 0; var _g1 = this._timers; while(_g < _g1.length) { var timer = _g1[_g]; ++_g; if(timer.active && !timer.finished && timer.time >= 0) { var timerLoops = timer._loopsCounter; timer.update(elapsed); if(timerLoops != timer._loopsCounter) { if(loopedTimers == null) { loopedTimers = []; } loopedTimers.push(timer); } } } if(loopedTimers != null) { while(loopedTimers.length > 0) loopedTimers.shift().onLoopFinished(); } } ,add: function(timer) { this._timers.push(timer); } ,remove: function(timer) { var array = this._timers; var index = array.indexOf(timer); if(index != -1) { array[index] = array[array.length - 1]; array.pop(); } } ,completeAll: function() { var timersToFinish = []; var _g = 0; var _g1 = this._timers; while(_g < _g1.length) { var timer = _g1[_g]; ++_g; if(timer.loops > 0 && timer.active) { timersToFinish.push(timer); } } var _g = 0; while(_g < timersToFinish.length) { var timer = timersToFinish[_g]; ++_g; while(!timer.finished) { timer.update(timer.time - timer._timeCounter); timer.onLoopFinished(); } } } ,clear: function() { flixel_util_FlxArrayUtil.clearArray(this._timers); } ,forEach: function(func) { var _g = 0; var _g1 = this._timers; while(_g < _g1.length) { var timer = _g1[_g]; ++_g; func(timer); } } ,__class__: flixel_util_FlxTimerManager }); var flixel_util_FlxUnicodeUtil = function() { }; $hxClasses["flixel.util.FlxUnicodeUtil"] = flixel_util_FlxUnicodeUtil; flixel_util_FlxUnicodeUtil.__name__ = "flixel.util.FlxUnicodeUtil"; flixel_util_FlxUnicodeUtil.uLength = function(s) { return UnicodeString.get_length(s); }; flixel_util_FlxUnicodeUtil.uEquals = function(a,b) { return a == b; }; flixel_util_FlxUnicodeUtil.uSub = function(s,pos,len) { return UnicodeString.substr(s,pos,len); }; flixel_util_FlxUnicodeUtil.uCharCodeAt = function(s,index) { return UnicodeString.charCodeAt(s,index); }; var flixel_util_UnicodeBuffer = {}; flixel_util_UnicodeBuffer._new = function(s) { if(s == null) { s = ""; } return s; }; flixel_util_UnicodeBuffer.addChar = function(this1,c) { var s = this1 + String.fromCodePoint(c); if(s == null) { s = ""; } return s; }; flixel_util_UnicodeBuffer.toString = function(this1) { return this1; }; var flixel_util_FlxVerticalAlign = $hxEnums["flixel.util.FlxVerticalAlign"] = { __ename__:"flixel.util.FlxVerticalAlign",__constructs__:null ,TOP: {_hx_name:"TOP",_hx_index:0,__enum__:"flixel.util.FlxVerticalAlign",toString:$estr} ,CENTER: {_hx_name:"CENTER",_hx_index:1,__enum__:"flixel.util.FlxVerticalAlign",toString:$estr} ,BOTTOM: {_hx_name:"BOTTOM",_hx_index:2,__enum__:"flixel.util.FlxVerticalAlign",toString:$estr} }; flixel_util_FlxVerticalAlign.__constructs__ = [flixel_util_FlxVerticalAlign.TOP,flixel_util_FlxVerticalAlign.CENTER,flixel_util_FlxVerticalAlign.BOTTOM]; flixel_util_FlxVerticalAlign.__empty_constructs__ = [flixel_util_FlxVerticalAlign.TOP,flixel_util_FlxVerticalAlign.CENTER,flixel_util_FlxVerticalAlign.BOTTOM]; var flixel_util_helpers_FlxBounds = function(min,max) { this.active = true; this.min = min; this.max = max == null ? min : max; }; $hxClasses["flixel.util.helpers.FlxBounds"] = flixel_util_helpers_FlxBounds; flixel_util_helpers_FlxBounds.__name__ = "flixel.util.helpers.FlxBounds"; flixel_util_helpers_FlxBounds.prototype = { min: null ,max: null ,active: null ,set: function(min,max) { this.min = min; this.max = max == null ? min : max; return this; } ,equals: function(otherBounds) { if(this.min == otherBounds.min) { return this.max == otherBounds.max; } else { return false; } } ,toString: function() { var value = this.min; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "min"; _this.value = value; var value = this.max; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "max"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,__class__: flixel_util_helpers_FlxBounds }; var flixel_util_helpers_FlxPointRangeBounds = function(startMinX,startMinY,startMaxX,startMaxY,endMinX,endMinY,endMaxX,endMaxY) { this.active = true; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; this.start = new flixel_util_helpers_FlxBounds(point,point1); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x,y); point1._inPool = false; this.end = new flixel_util_helpers_FlxBounds(point,point1); this.set(startMinX,startMinY,startMaxX,startMaxY,endMinX,endMinY,endMaxX,endMaxY); }; $hxClasses["flixel.util.helpers.FlxPointRangeBounds"] = flixel_util_helpers_FlxPointRangeBounds; flixel_util_helpers_FlxPointRangeBounds.__name__ = "flixel.util.helpers.FlxPointRangeBounds"; flixel_util_helpers_FlxPointRangeBounds.__interfaces__ = [flixel_util_IFlxDestroyable]; flixel_util_helpers_FlxPointRangeBounds.prototype = { start: null ,end: null ,active: null ,set: function(startMinX,startMinY,startMaxX,startMaxY,endMinX,endMinY,endMaxX,endMaxY) { this.start.min.set_x(startMinX); this.start.min.set_y(startMinY == null ? this.start.min.x : startMinY); this.start.max.set_x(startMaxX == null ? this.start.min.x : startMaxX); this.start.max.set_y(startMaxY == null ? this.start.min.y : startMaxY); this.end.min.set_x(endMinX == null ? this.start.min.x : endMinX); this.end.min.set_y(endMinY == null ? this.start.min.y : endMinY); this.end.max.set_x(endMaxX == null ? endMinX == null ? this.start.max.x : this.end.min.x : endMaxX); this.end.max.set_y(endMaxY == null ? endMinY == null ? this.start.max.y : this.end.min.y : endMaxY); return this; } ,equals: function(OtherFlxPointRangeBounds) { var tmp; var tmp1; var _this = this.start.min; var point = OtherFlxPointRangeBounds.start.min; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } if(result) { var _this = this.start.max; var point = OtherFlxPointRangeBounds.start.max; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp1 = result; } else { tmp1 = false; } if(tmp1) { var _this = this.end.min; var point = OtherFlxPointRangeBounds.end.min; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } tmp = result; } else { tmp = false; } if(tmp) { var _this = this.end.max; var point = OtherFlxPointRangeBounds.end.max; var result = Math.abs(_this.x - point.x) <= 0.0000001 && Math.abs(_this.y - point.y) <= 0.0000001; if(point._weak) { point.put(); } return result; } else { return false; } } ,toString: function() { var value = this.start.min.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "start.min.x"; _this.value = value; var value = this.start.min.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "start.min.y"; _this1.value = value; var value = this.start.max.x; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "start.max.x"; _this2.value = value; var value = this.start.max.y; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "start.max.y"; _this3.value = value; var value = this.end.min.x; var _this4 = flixel_util_LabelValuePair._pool.get(); _this4.label = "end.min.x"; _this4.value = value; var value = this.end.min.y; var _this5 = flixel_util_LabelValuePair._pool.get(); _this5.label = "end.min.y"; _this5.value = value; var value = this.end.max.x; var _this6 = flixel_util_LabelValuePair._pool.get(); _this6.label = "end.max.x"; _this6.value = value; var value = this.end.max.y; var _this7 = flixel_util_LabelValuePair._pool.get(); _this7.label = "end.max.y"; _this7.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3,_this4,_this5,_this6,_this7]); } ,destroy: function() { this.start.min = flixel_util_FlxDestroyUtil.put(this.start.min); this.start.max = flixel_util_FlxDestroyUtil.put(this.start.max); this.end.min = flixel_util_FlxDestroyUtil.put(this.end.min); this.end.max = flixel_util_FlxDestroyUtil.put(this.end.max); } ,__class__: flixel_util_helpers_FlxPointRangeBounds }; var flixel_util_helpers_FlxRange = function(start,end) { this.active = true; this.start = start; this.end = end == null ? start : end; }; $hxClasses["flixel.util.helpers.FlxRange"] = flixel_util_helpers_FlxRange; flixel_util_helpers_FlxRange.__name__ = "flixel.util.helpers.FlxRange"; flixel_util_helpers_FlxRange.prototype = { start: null ,end: null ,active: null ,set: function(start,end) { this.start = start; this.end = end == null ? start : end; return this; } ,equals: function(OtherFlxRange) { if(this.start == OtherFlxRange.start) { return this.end == OtherFlxRange.end; } else { return false; } } ,toString: function() { var value = this.start; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "start"; _this.value = value; var value = this.end; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "end"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,__class__: flixel_util_helpers_FlxRange }; var flixel_util_helpers_FlxRangeBounds = function(startMin,startMax,endMin,endMax) { this.active = true; this.start = new flixel_util_helpers_FlxBounds(startMin,startMax == null ? startMin : startMax); this.end = new flixel_util_helpers_FlxBounds(endMin == null ? startMin : endMin,endMax == null ? this.start.max : endMax); }; $hxClasses["flixel.util.helpers.FlxRangeBounds"] = flixel_util_helpers_FlxRangeBounds; flixel_util_helpers_FlxRangeBounds.__name__ = "flixel.util.helpers.FlxRangeBounds"; flixel_util_helpers_FlxRangeBounds.prototype = { start: null ,end: null ,active: null ,set: function(startMin,startMax,endMin,endMax) { this.start.min = startMin; this.start.max = startMax == null ? this.start.min : startMax; this.end.min = endMin == null ? this.start.min : endMin; this.end.max = endMax == null ? endMin == null ? this.start.max : this.end.min : endMax; return this; } ,equals: function(OtherRangeBounds) { var _this = this.start; var otherBounds = OtherRangeBounds.start; if(_this.min == otherBounds.min && _this.max == otherBounds.max) { var _this = this.end; var otherBounds = OtherRangeBounds.end; if(_this.min == otherBounds.min) { return _this.max == otherBounds.max; } else { return false; } } else { return false; } } ,toString: function() { var value = this.start.min; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "start.min"; _this.value = value; var value = this.start.min; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "start.max"; _this1.value = value; var value = this.end.min; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "end.min"; _this2.value = value; var value = this.end.max; var _this3 = flixel_util_LabelValuePair._pool.get(); _this3.label = "end.max"; _this3.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2,_this3]); } ,__class__: flixel_util_helpers_FlxRangeBounds }; var flixel_util_typeLimit_NextState = {}; flixel_util_typeLimit_NextState.fromState = function(state) { return state; }; flixel_util_typeLimit_NextState.fromMaker = function(func) { return func; }; flixel_util_typeLimit_NextState.createInstance = function(this1) { if(((this1) instanceof flixel_FlxState)) { return this1; } else if(js_Boot.__instanceof(this1,Class)) { return Type.createInstance(this1,[]); } else { return this1(); } }; flixel_util_typeLimit_NextState.getConstructor = function(this1) { if(((this1) instanceof flixel_FlxState)) { return function() { return Type.createInstance(js_Boot.getClass(this1),[]); }; } else { return this1; } }; var flixel_util_typeLimit_InitialState = {}; flixel_util_typeLimit_InitialState.fromType = function(state) { return state; }; flixel_util_typeLimit_InitialState.fromMaker = function(func) { return func; }; flixel_util_typeLimit_InitialState.toNextState = function(this1) { if(js_Boot.__instanceof(this1,Class)) { return flixel_util_typeLimit_NextState.fromMaker(function() { return Type.createInstance(this1,[]); }); } else { return this1; } }; var flxanimate_FlxAnimate = function(X,Y,Path,Settings) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } this.pressed = false; this.showPivot = false; flixel_FlxSprite.call(this,X,Y); this.anim = new flxanimate_animate_FlxAnim(this); if(Path != null) { this.loadAtlas(Path); } if(Settings != null) { this.setTheSettings(Settings); } }; $hxClasses["flxanimate.FlxAnimate"] = flxanimate_FlxAnimate; flxanimate_FlxAnimate.__name__ = "flxanimate.FlxAnimate"; flxanimate_FlxAnimate.__super__ = flixel_FlxSprite; flxanimate_FlxAnimate.prototype = $extend(flixel_FlxSprite.prototype,{ anim: null ,showPivot: null ,_pivot: null ,set_showPivot: function(v) { if(v && this._pivot == null) { this._pivot = new flixel_graphics_frames_FlxFrame(flixel_graphics_FlxGraphic.fromBitmapData(openfl_utils_Assets.getBitmapData("flxanimate/images/pivot.png"))); this._pivot.set_frame(new flixel_math_FlxRect(0,0,this._pivot.parent.width,this._pivot.parent.height)); this._pivot.name = "pivot"; } return this.showPivot = v; } ,loadAtlas: function(Path) { if(!openfl_utils_Assets.exists("" + Path + "/Animation.json") && haxe_io_Path.extension(Path) != "zip") { flixel_FlxG.log.advanced("Animation file not found in specified path: \"" + Std.string(this.path) + "\", have you written the correct path?",flixel_system_debug_log_LogStyle.ERROR,true); return; } this.anim._loadAtlas(this.atlasSetting(Path)); this.set_frames(flxanimate_frames_FlxAnimateFrames.fromTextureAtlas(Path)); } ,draw: function() { if(this.alpha <= 0) { return; } this.parseElement(this.anim.curInstance,this.anim.get_curFrame(),this._matrix,this.colorTransform,true); if(this.showPivot) { this.drawLimb(this._pivot,new flixel_math_FlxMatrix(1,0,0,1,this.origin.x,this.origin.y)); } } ,parseElement: function(instance,curFrame,m,colorFilter,mainSymbol) { if(mainSymbol == null) { mainSymbol = false; } var colorEffect = new openfl_geom_ColorTransform(); var matrix = new flixel_math_FlxMatrix(); if(instance.symbol != null) { colorEffect.concat(instance.symbol.get__colorEffect()); } matrix.concat(instance.matrix); colorEffect.concat(colorFilter); matrix.concat(m); if(instance.bitmap != null) { this.drawLimb(this.frames.framesByName.h[instance.bitmap],matrix,colorEffect); return; } var symbol = this.anim.symbolDictionary.h[instance.symbol.name]; var firstFrame = instance.symbol.firstFrame + curFrame; if(instance.symbol.type._hx_index == 2) { firstFrame = this.setButtonFrames(firstFrame); } switch(instance.symbol.loop._hx_index) { case 0: firstFrame %= symbol.get_length(); break; case 1: var Max = symbol.get_length() - 1; var lowerBound = firstFrame < 0 ? 0 : firstFrame; firstFrame = Max != null && lowerBound > Max ? Max : lowerBound; break; default: } var layers = symbol.timeline.getList(); var _g = 0; var _g1 = layers.length; while(_g < _g1) { var i = _g++; var layer = layers[layers.length - 1 - i]; if(!layer.visible && mainSymbol) { continue; } var frame = layer.get(firstFrame); if(frame == null) { continue; } if(frame.callbacks != null) { frame.fireCallbacks(); } var _g2 = 0; var _g3 = frame.getList(); while(_g2 < _g3.length) { var element = _g3[_g2]; ++_g2; var firstframe = 0; if(element.symbol != null && element.symbol.loop != flxanimate_data_Loop.SingleFrame) { firstframe = firstFrame - frame.index; } var coloreffect = new openfl_geom_ColorTransform(); coloreffect.concat(frame.get__colorEffect()); coloreffect.concat(colorEffect); this.parseElement(element,firstframe,matrix,coloreffect); } } } ,pressed: null ,setButtonFrames: function(frame) { var badPress = false; var goodPress = false; var _this = flixel_FlxG.mouse._leftButton; if((_this.current == 1 || _this.current == 2) && flixel_FlxG.mouse.overlaps(this)) { goodPress = true; } var _this = flixel_FlxG.mouse._leftButton; if((_this.current == 1 || _this.current == 2) && !flixel_FlxG.mouse.overlaps(this) && !goodPress) { badPress = true; } var _this = flixel_FlxG.mouse._leftButton; if(!(_this.current == 1 || _this.current == 2)) { badPress = false; goodPress = false; } if(flixel_FlxG.mouse.overlaps(this) && !badPress) { var this1 = this.anim.buttonMap; var key = this.anim.get_curSymbol().name; var event = this1.h[key]; if(flixel_FlxG.mouse._leftButton.current == 2 && !this.pressed) { if(event != null) { var _this = new flxanimate_animate_ButtonEvent(event.Callbacks != null ? event.Callbacks.OnClick : null,event.Sound); if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } this.pressed = true; } var _this = flixel_FlxG.mouse._leftButton; frame = _this.current == 1 || _this.current == 2 ? 2 : 1; if(flixel_FlxG.mouse._leftButton.current == -1 && this.pressed) { if(event != null) { var _this = new flxanimate_animate_ButtonEvent(event.Callbacks != null ? event.Callbacks.OnRelease : null,event.Sound); if(_this.callback != null) { _this.callback(); } if(_this.sound != null) { _this.sound.play(true); } } this.pressed = false; } } else { frame = 0; } return frame; } ,drawLimb: function(limb,_matrix,colorTransform) { if(this.alpha == 0 || colorTransform != null && (colorTransform.alphaMultiplier == 0 || colorTransform.alphaOffset == -255) || limb == null || limb.type == 2) { return; } var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; flxanimate_FlxAnimate.rMatrix.identity(); flxanimate_FlxAnimate.rMatrix.concat(_matrix); if(!camera.visible || !camera.exists || !this.limbOnScreen(limb,_matrix,camera)) { return; } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } flxanimate_FlxAnimate.rMatrix.translate(-this.origin.x,-this.origin.y); if(limb.name != "pivot") { flxanimate_FlxAnimate.rMatrix.scale(this.scale.x,this.scale.y); } else { flxanimate_FlxAnimate.rMatrix.a = flxanimate_FlxAnimate.rMatrix.d = 0.7 / camera.zoom; } var this2 = this._point; var point1 = this.origin; var x1 = point1.x; var y1 = point1.y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this2.set_x(this2.x + x1); this2.set_y(this2.y + y1); if(point1._weak) { point1.put(); } if(this.isPixelPerfectRender(camera)) { var this3 = this._point; this3.set_x(Math.floor(this3.x)); this3.set_y(Math.floor(this3.y)); } flxanimate_FlxAnimate.rMatrix.translate(this._point.x,this._point.y); camera.drawPixels(limb,null,flxanimate_FlxAnimate.rMatrix,colorTransform,this.blend,this.antialiasing,this.shader); } } ,limbOnScreen: function(limb,m,Camera) { if(Camera == null) { Camera = flixel_FlxG.camera; } var minX = this.x + m.tx - this.offset.x - this.scrollFactor.x * Camera.scroll.x; var minY = this.y + m.ty - this.offset.y - this.scrollFactor.y * Camera.scroll.y; var radiusX = limb.frame.width * Math.max(1,m.a); var radiusY = limb.frame.height * Math.max(1,m.d); var radius = Math.max(radiusX,radiusY); radius *= 1.41421356237; minY -= radius; minX -= radius; radius *= 2; var this1 = this._point; var x = minX; var y = minY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var point = this._point; var width = radius; var height = radius; if(height == null) { height = 0; } if(width == null) { width = 0; } var contained = point.x + width > Camera.viewMarginX && point.x < Camera.width - Camera.viewMarginX && point.y + height > Camera.viewMarginY && point.y < Camera.height - Camera.viewMarginY; if(point._weak) { point.put(); } return contained; } ,oldMatrix: null ,set_flipX: function(Value) { if(this.oldMatrix == null) { this.oldMatrix = new flixel_math_FlxMatrix(); this.oldMatrix.concat(this._matrix); } if(Value) { this._matrix.a = -this.oldMatrix.a; this._matrix.c = -this.oldMatrix.c; } else { this._matrix.a = this.oldMatrix.a; this._matrix.c = this.oldMatrix.c; } return Value; } ,set_flipY: function(Value) { if(this.oldMatrix == null) { this.oldMatrix = new flixel_math_FlxMatrix(); this.oldMatrix.concat(this._matrix); } if(Value) { this._matrix.b = -this.oldMatrix.b; this._matrix.d = -this.oldMatrix.d; } else { this._matrix.b = this.oldMatrix.b; this._matrix.d = this.oldMatrix.d; } return Value; } ,destroy: function() { if(this.anim != null) { this.anim.destroy(); } this.anim = null; flixel_FlxSprite.prototype.destroy.call(this); } ,updateAnimation: function(elapsed) { this.anim.update(elapsed); } ,setButtonPack: function(button,callbacks,sound) { this.anim.buttonMap.h[button] = { Callbacks : callbacks, Sound : sound}; } ,setTheSettings: function(Settings) { this.set_antialiasing(Settings.Antialiasing); if(Settings.ButtonSettings != null) { this.anim.buttonMap = Settings.ButtonSettings; if(this.anim.curInstance.symbol.type != flxanimate_data_SymbolT.Button) { this.anim.curInstance.symbol.set_type(flxanimate_data_SymbolT.Button); } } if(Settings.Reversed != null) { this.anim.curInstance.symbol.reverse = Settings.Reversed; } if(Settings.FrameRate != null) { this.anim.set_framerate(Settings.FrameRate > 0 ? this.anim.metadata.frameRate : Settings.FrameRate); } if(Settings.OnComplete != null) { this.anim.onComplete = Settings.OnComplete; } if(Settings.ShowPivot != null) { this.set_showPivot(Settings.ShowPivot); } if(Settings.Antialiasing != null) { this.set_antialiasing(Settings.Antialiasing); } if(Settings.ScrollFactor != null) { this.scrollFactor = Settings.ScrollFactor; } if(Settings.Offset != null) { this.offset = Settings.Offset; } } ,atlasSetting: function(Path) { var jsontxt = null; if(haxe_io_Path.extension(Path) == "zip") { var thing = flxanimate_zip_Zip.readZip(openfl_utils_ByteArray.toBytes(openfl_utils_Assets.getBytes(Path))); var _g_head = flxanimate_zip_Zip.unzip(thing).h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var list = val; if(list.fileName.indexOf("Animation.json") != -1) { jsontxt = JSON.parse(list.data.toString()); thing.remove(list); continue; } } flxanimate_frames_FlxAnimateFrames.zip = thing; } else { jsontxt = JSON.parse(openfl_utils_Assets.getText("" + Path + "/Animation.json")); } return jsontxt; } ,__class__: flxanimate_FlxAnimate ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_showPivot:"set_showPivot"}) }); var flxanimate_animate_ButtonEvent = function(Callback,sound) { this.callback = Callback; this.sound = sound; }; $hxClasses["flxanimate.animate.ButtonEvent"] = flxanimate_animate_ButtonEvent; flxanimate_animate_ButtonEvent.__name__ = "flxanimate.animate.ButtonEvent"; flxanimate_animate_ButtonEvent.prototype = { callback: null ,sound: null ,destroy: function() { this.callback = null; this.sound.destroy(); } ,fire: function() { if(this.callback != null) { this.callback(); } if(this.sound != null) { this.sound.play(true); } } ,__class__: flxanimate_animate_ButtonEvent }; var flxanimate_animate_FlxAnim = function(parent,coolParsed) { this.animsMap = new haxe_ds_StringMap(); this.buttonMap = new haxe_ds_StringMap(); this.swfRender = false; this._tick = 0; this._parent = parent; this.symbolDictionary = new haxe_ds_StringMap(); this.isPlaying = false; if(coolParsed != null) { this._loadAtlas(coolParsed); } }; $hxClasses["flxanimate.animate.FlxAnim"] = flxanimate_animate_FlxAnim; flxanimate_animate_FlxAnim.__name__ = "flxanimate.animate.FlxAnim"; flxanimate_animate_FlxAnim.__interfaces__ = [flixel_util_IFlxDestroyable]; flxanimate_animate_FlxAnim.prototype = { stageInstance: null ,curInstance: null ,metadata: null ,curSymbol: null ,finished: null ,swfRender: null ,buttonMap: null ,isPlaying: null ,callback: null ,onComplete: null ,framerate: null ,frameDelay: null ,animsMap: null ,loopType: null ,_parent: null ,_tick: null ,_loadAtlas: function(animationFile) { this.symbolDictionary = new haxe_ds_StringMap(); this.stageInstance = null; this.setSymbols(animationFile); this.stageInstance = flxanimate_data_Animation.get_STI(flxanimate_data_AnimAtlas.get_AN(animationFile)) != null ? flxanimate_animate_FlxElement.fromJSON(flxanimate_data_Animation.get_STI(flxanimate_data_AnimAtlas.get_AN(animationFile))) : new flxanimate_animate_FlxElement(null,new flxanimate_animate_SymbolParameters(flxanimate_data_Animation.get_SN(flxanimate_data_AnimAtlas.get_AN(animationFile)))); this.curInstance = this.stageInstance; this.set_curFrame(this.stageInstance.symbol.firstFrame); var this1 = this._parent.origin; var p = this.stageInstance.symbol.transformationPoint; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } this.metadata = new flxanimate_animate_FlxMetaData(flxanimate_data_Animation.get_N(flxanimate_data_AnimAtlas.get_AN(animationFile)),flxanimate_data_MetaData.get_FRT(flxanimate_data_AnimAtlas.get_MD(animationFile))); this.set_framerate(this.metadata.frameRate); } ,symbolDictionary: null ,play: function(Name,Force,Reverse,Frame) { if(Frame == null) { Frame = 0; } if(Reverse == null) { Reverse = false; } if(Force == null) { Force = false; } if(Name == null) { Name = ""; } this.pause(); var isNewAnim = false; if([null,""].indexOf(Name) == -1) { var curThing = this.animsMap.h[Name]; if(curThing == null) { var symbol = this.symbolDictionary.h[Name]; if(symbol != null) { curThing = { instance : symbol.name == this.get_curSymbol().name ? this.curInstance : new flxanimate_animate_FlxElement(null,new flxanimate_animate_SymbolParameters(Name)), frameRate : this.metadata.frameRate}; } if(curThing == null) { flixel_FlxG.log.advanced("there's no animation called \"" + Name + "\"!",flixel_system_debug_log_LogStyle.ERROR,true); this.isPlaying = true; return; } } this.set_framerate(curThing.frameRate == 0 ? this.metadata.frameRate : curThing.frameRate); if(this.curInstance != curThing.instance) { isNewAnim = true; } this.curInstance = curThing.instance; } if(Force || this.get_finished() || isNewAnim) { this.set_curFrame(Reverse ? Frame - this.get_length() : Frame); this._tick = 0; } this.curInstance.symbol.reverse = Reverse; this.isPlaying = true; } ,pause: function() { this.isPlaying = false; } ,stop: function() { this.pause(); this.set_curFrame(0); } ,setSymbols: function(Anim) { var this1 = this.symbolDictionary; var key = flxanimate_data_Animation.get_SN(flxanimate_data_AnimAtlas.get_AN(Anim)); var value = new flxanimate_animate_FlxSymbol(flxanimate_data_Animation.get_SN(flxanimate_data_AnimAtlas.get_AN(Anim)),flxanimate_animate_FlxTimeline.fromJSON(flxanimate_data_Animation.get_TL(flxanimate_data_AnimAtlas.get_AN(Anim)))); this1.h[key] = value; if(flxanimate_data_AnimAtlas.get_SD(Anim) != null) { var _g = 0; var _g1 = flxanimate_data_SymbolDictionary.get_S(flxanimate_data_AnimAtlas.get_SD(Anim)); while(_g < _g1.length) { var symbol = _g1[_g]; ++_g; var this1 = this.symbolDictionary; var key = flxanimate_data_SymbolData.get_SN(symbol); var value = new flxanimate_animate_FlxSymbol(flxanimate_data_SymbolData.get_SN(symbol),flxanimate_animate_FlxTimeline.fromJSON(flxanimate_data_SymbolData.get_TL(symbol))); this1.h[key] = value; } } } ,update: function(elapsed) { if(this.frameDelay == 0 || !this.isPlaying || this.get_finished()) { return; } this._tick += elapsed; while(this._tick > this.frameDelay) { if(this.curInstance.symbol.reverse) { this.set_curFrame(this.get_curFrame() - 1); } else { this.set_curFrame(this.get_curFrame() + 1); } this._tick -= this.frameDelay; this.get_curSymbol()._shootCallback = true; if(this.callback != null) { var name = this.get_curSymbol() != null ? this.get_curSymbol().name : null; this.callback(name,this.get_curFrame()); } } if(this.get_finished() || this.get_curFrame() == (this.curInstance.symbol.reverse ? 0 : this.get_curSymbol().get_length() - 1)) { if(this.curInstance.symbol.loop == flxanimate_data_Loop.PlayOnce) { this.pause(); } if(this.onComplete != null) { this.onComplete(); } } } ,get_finished: function() { if(this.curInstance.symbol.loop == flxanimate_data_Loop.PlayOnce) { if(!(this.curInstance.symbol.reverse && this.get_curFrame() == 0)) { if(!this.curInstance.symbol.reverse) { return this.get_curFrame() >= this.get_length() - 1; } else { return false; } } else { return true; } } else { return false; } } ,get_curFrame: function() { return this.get_curSymbol().get_curFrame(); } ,set_curFrame: function(Value) { var tmp = this.get_curSymbol(); var tmp1; switch(this.curInstance.symbol.loop._hx_index) { case 0: tmp1 = Value % this.get_curSymbol().get_length(); break; case 1: var Max = this.get_curSymbol().get_length() - 1; var lowerBound = Value < 0 ? 0 : Value; tmp1 = Max != null && lowerBound > Max ? Max : lowerBound; break; default: tmp1 = Value; } tmp.set_curFrame(tmp1); return this.get_curSymbol().get_curFrame(); } ,addBySymbol: function(Name,SymbolName,FrameRate,Looped,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 0; } var params = new flxanimate_animate_FlxElement(null,new flxanimate_animate_SymbolParameters(null,null,null,Looped ? flxanimate_data_Loop.Loop : flxanimate_data_Loop.PlayOnce),new flixel_math_FlxMatrix(1,0,0,1,X,Y)); var h = this.symbolDictionary.h; var name_h = h; var name_keys = Object.keys(h); var name_length = name_keys.length; var name_current = 0; while(name_current < name_length) { var name = name_keys[name_current++]; if(this.startsWith(name,SymbolName)) { params.symbol.name = name; break; } } if(params.symbol.name != null) { this.animsMap.h[Name] = { instance : params, frameRate : FrameRate}; } else { flixel_FlxG.log.advanced("No symbol was found with the name " + SymbolName + "!",flixel_system_debug_log_LogStyle.ERROR,true); } } ,startsWith: function(reference,string) { if(StringTools.endsWith(string,"\\")) { return reference == string.substring(0,string.length - 1); } else { return StringTools.startsWith(reference,string); } } ,addByAnimIndices: function(Name,Indices,FrameRate) { if(FrameRate == null) { FrameRate = 0; } this.addBySymbolIndices(Name,this.stageInstance.symbol.name,Indices,FrameRate,this.stageInstance.symbol.loop == flxanimate_data_Loop.Loop,0,0); } ,addBySymbolIndices: function(Name,SymbolName,Indices,FrameRate,Looped,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 0; } if(!Object.prototype.hasOwnProperty.call(this.symbolDictionary.h,SymbolName)) { flixel_FlxG.log.advanced("" + SymbolName + " does not exist as a symbol! maybe you misspelled it?",flixel_system_debug_log_LogStyle.ERROR,true); return; } var params = new flxanimate_animate_FlxElement(null,new flxanimate_animate_SymbolParameters(null,null,null,Looped ? flxanimate_data_Loop.Loop : flxanimate_data_Loop.PlayOnce),new flixel_math_FlxMatrix(1,0,0,1,X,Y)); var timeline = new flxanimate_animate_FlxTimeline(); timeline.add(null,"Layer 1"); var _g = 0; var _g1 = Indices.length; while(_g < _g1) { var index = _g++; var i = Indices[index]; var keyframe = new flxanimate_animate_FlxKeyFrame(index); var params1 = new flxanimate_animate_SymbolParameters(SymbolName,null,null,params.symbol.loop); params1.firstFrame = i; keyframe.add(new flxanimate_animate_FlxElement(null,params1)); timeline.get(0).add(keyframe); } var symbol = new flxanimate_animate_FlxSymbol(Name,timeline); params.symbol.name = symbol.name; this.symbolDictionary.h[Name] = symbol; this.animsMap.h[Name] = { instance : params, frameRate : FrameRate}; } ,set_framerate: function(value) { this.frameDelay = 1 / value; return this.framerate = value; } ,addByCustomTimeline: function(Name,Timeline,FrameRate,Looped) { if(Looped == null) { Looped = true; } if(FrameRate == null) { FrameRate = 0; } var this1 = this.symbolDictionary; var value = new flxanimate_animate_FlxSymbol(Name,Timeline); this1.h[Name] = value; var params = new flxanimate_animate_FlxElement(null,new flxanimate_animate_SymbolParameters(null,null,null,Looped ? flxanimate_data_Loop.Loop : flxanimate_data_Loop.PlayOnce)); this.animsMap.h[Name] = { instance : params, frameRate : FrameRate}; } ,get_length: function() { return this.get_curSymbol().get_length(); } ,getFrameLabel: function(name,layer) { return this.get_curSymbol().getFrameLabel(name,layer); } ,toString: function() { var value = this.symbolDictionary; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "symbolDictionary"; _this.value = value; var value = this.framerate; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "framerate"; _this1.value = value; return flixel_util_FlxStringUtil.getDebugString([_this,_this1]); } ,goToFrameLabel: function(name) { this.pause(); var label = this.getFrameLabel(name); if(label != null) { this.set_curFrame(label.index); } this.play(); } ,getNextToFrameLabel: function(name) { return this.get_curSymbol().getNextToFrameLabel(name).name; } ,addCallbackTo: function(label,callback) { return this.get_curSymbol().addCallbackTo(label,callback); } ,removeCallbackFrom: function(label,callback) { return this.get_curSymbol().removeCallbackFrom(label,callback); } ,removeAllCallbacksFrom: function(label) { return this.get_curSymbol().removeAllCallbacksFrom(label); } ,getFrameLabels: function(layer) { return this.get_curSymbol().getFrameLabels(layer); } ,get_loopType: function() { return this.curInstance.symbol.loop; } ,get_symbolType: function() { return this.curInstance.symbol.type; } ,set_symbolType: function(type) { return this.curInstance.symbol.set_type(type); } ,get_reversed: function() { return this.curInstance.symbol.reverse; } ,set_reversed: function(value) { return this.curInstance.symbol.reverse = value; } ,getByName: function(name) { return this.animsMap.h[name]; } ,existsByName: function(name) { return Object.prototype.hasOwnProperty.call(this.animsMap.h,name); } ,getByInstance: function(instance,frame,layer) { if(frame == null) { frame = this.get_curFrame(); } var symbol = null; var layers = layer == null ? this.get_curSymbol().timeline.getList() : [this.get_curSymbol().timeline.get(layer)]; var _g = 0; while(_g < layers.length) { var layer = layers[_g]; ++_g; if(layer == null) { continue; } var _g1 = 0; var _g2 = layer.get(frame).getList(); while(_g1 < _g2.length) { var element = _g2[_g1]; ++_g1; if(element.symbol == null) { continue; } if(element.symbol.instance != "" && element.symbol.instance == instance) { symbol = this.symbolDictionary.h[element.symbol.name]; break; } } } if(symbol == null) { flixel_FlxG.log.advanced("This instance doesn't exist! Have you checked if the layer exists or the instance isn't misspelled?",flixel_system_debug_log_LogStyle.ERROR,true); } return symbol; } ,get_curSymbol: function() { return this.symbolDictionary.h[this.curInstance.symbol.name]; } ,fireCallback: function() { if(this.callback != null) { var name = this.get_curSymbol() != null ? this.get_curSymbol().name : null; this.callback(name,this.get_curFrame()); } } ,destroy: function() { this.isPlaying = false; this.set_curFrame(0); this.set_framerate(0); this._tick = 0; this.buttonMap = null; this.animsMap = null; this.callback = null; this.curInstance = flixel_util_FlxDestroyUtil.destroy(this.curInstance); this.stageInstance = flixel_util_FlxDestroyUtil.destroy(this.stageInstance); this.metadata = flixel_util_FlxDestroyUtil.destroy(this.metadata); this.swfRender = false; this._parent = null; this.symbolDictionary = null; } ,__class__: flxanimate_animate_FlxAnim ,__properties__: {set_symbolType:"set_symbolType",get_symbolType:"get_symbolType",get_loopType:"get_loopType",set_curFrame:"set_curFrame",get_curFrame:"get_curFrame",set_framerate:"set_framerate",set_reversed:"set_reversed",get_reversed:"get_reversed",get_finished:"get_finished",get_curSymbol:"get_curSymbol",get_length:"get_length"} }; var flxanimate_animate_FlxMetaData = function(name,frameRate) { this.name = name; this.frameRate = frameRate; }; $hxClasses["flxanimate.animate.FlxMetaData"] = flxanimate_animate_FlxMetaData; flxanimate_animate_FlxMetaData.__name__ = "flxanimate.animate.FlxMetaData"; flxanimate_animate_FlxMetaData.__interfaces__ = [flixel_util_IFlxDestroyable]; flxanimate_animate_FlxMetaData.prototype = { name: null ,frameRate: null ,destroy: function() { this.name = null; this.frameRate = 0; } ,__class__: flxanimate_animate_FlxMetaData }; var flxanimate_animate_FlxElement = function(bitmap,symbol,matrix) { this.bitmap = bitmap; this.symbol = symbol; this.matrix = matrix == null ? new flixel_math_FlxMatrix() : matrix; }; $hxClasses["flxanimate.animate.FlxElement"] = flxanimate_animate_FlxElement; flxanimate_animate_FlxElement.__name__ = "flxanimate.animate.FlxElement"; flxanimate_animate_FlxElement.__interfaces__ = [flixel_util_IFlxDestroyable]; flxanimate_animate_FlxElement.m = null; flxanimate_animate_FlxElement.params = null; flxanimate_animate_FlxElement.fromJSON = function(element) { var symbol = flxanimate_data_StageInstance.get_SI(element) != null; if(symbol) { flxanimate_animate_FlxElement.params = new flxanimate_animate_SymbolParameters(); var tmp = flxanimate_data_StageInstance.get_SI(element); flxanimate_animate_FlxElement.params.instance = flxanimate_data_SymbolInstance.get_IN(tmp); var tmp = flxanimate_animate_FlxElement.params; var tmp1; switch(flxanimate_data_SymbolInstance.get_ST(flxanimate_data_StageInstance.get_SI(element))) { case "B":case "button": tmp1 = flxanimate_data_SymbolT.Button; break; case "MC":case "movieclip": tmp1 = flxanimate_data_SymbolT.MovieClip; break; default: tmp1 = flxanimate_data_SymbolT.Graphic; } tmp.set_type(tmp1); var lp = flxanimate_data_SymbolInstance.get_LP(flxanimate_data_StageInstance.get_SI(element)) == null ? "LP" : flxanimate_data_SymbolInstance.get_LP(flxanimate_data_StageInstance.get_SI(element)).split("R")[0]; var tmp; switch(lp) { case "PO":case "playonce": tmp = flxanimate_data_Loop.PlayOnce; break; case "SF":case "singleframe": tmp = flxanimate_data_Loop.SingleFrame; break; default: tmp = flxanimate_data_Loop.Loop; } flxanimate_animate_FlxElement.params.set_loop(tmp); var tmp = flxanimate_data_SymbolInstance.get_LP(flxanimate_data_StageInstance.get_SI(element)) == null ? false : flxanimate_data_SymbolInstance.get_LP(flxanimate_data_StageInstance.get_SI(element)).indexOf("R") != -1; flxanimate_animate_FlxElement.params.reverse = tmp; var tmp = flxanimate_data_SymbolInstance.get_FF(flxanimate_data_StageInstance.get_SI(element)); flxanimate_animate_FlxElement.params.firstFrame = tmp != null ? tmp : 0; var tmp = flxanimate_data_SymbolInstance.get_C(flxanimate_data_StageInstance.get_SI(element)); flxanimate_animate_FlxElement.params.colorEffect = flxanimate_data_AnimationData.fromColorJson(tmp); var tmp = flxanimate_data_StageInstance.get_SI(element); flxanimate_animate_FlxElement.params.name = flxanimate_data_SymbolInstance.get_SN(tmp); var this1 = flxanimate_animate_FlxElement.params.transformationPoint; var x = flxanimate_data_SymbolInstance.get_TRP(flxanimate_data_StageInstance.get_SI(element)).x; var y = flxanimate_data_SymbolInstance.get_TRP(flxanimate_data_StageInstance.get_SI(element)).y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { flxanimate_animate_FlxElement.params = null; } var m3d = symbol ? flxanimate_data_SymbolInstance.get_M3D(flxanimate_data_StageInstance.get_SI(element)) : flxanimate_data_AtlasSymbolInstance.get_M3D(flxanimate_data_Element.get_ASI(element)); var tmp; if(((m3d) instanceof Array)) { tmp = [m3d[0],m3d[1],m3d[4],m3d[5],m3d[12],m3d[13]]; } else { var _g = []; var _g1 = 0; var _g2 = flxanimate_animate_FlxElement.matrixNames; while(_g1 < _g2.length) { var field = _g2[_g1]; ++_g1; _g.push(Reflect.field(m3d,field)); } tmp = _g; } flxanimate_animate_FlxElement.m = tmp; if(!symbol && m3d == null) { var tmp = flxanimate_animate_FlxElement.m[3] = 1; flxanimate_animate_FlxElement.m[0] = tmp; var tmp = flxanimate_animate_FlxElement.m[2] = flxanimate_animate_FlxElement.m[4] = flxanimate_animate_FlxElement.m[5] = 0; flxanimate_animate_FlxElement.m[1] = tmp; } var pos = symbol ? flxanimate_data_Bitmap.get_POS(flxanimate_data_SymbolInstance.get_bitmap(flxanimate_data_StageInstance.get_SI(element))) : flxanimate_data_Bitmap.get_POS(flxanimate_data_Element.get_ASI(element)); if(pos == null) { pos = { x : 0, y : 0}; } return new flxanimate_animate_FlxElement(symbol ? flxanimate_data_Bitmap.get_N(flxanimate_data_SymbolInstance.get_bitmap(flxanimate_data_StageInstance.get_SI(element))) : flxanimate_data_Bitmap.get_N(flxanimate_data_Element.get_ASI(element)),flxanimate_animate_FlxElement.params,new flixel_math_FlxMatrix(flxanimate_animate_FlxElement.m[0],flxanimate_animate_FlxElement.m[1],flxanimate_animate_FlxElement.m[2],flxanimate_animate_FlxElement.m[3],flxanimate_animate_FlxElement.m[4] + pos.x,flxanimate_animate_FlxElement.m[5] + pos.y)); }; flxanimate_animate_FlxElement.prototype = { _parent: null ,symbol: null ,bitmap: null ,matrix: null ,toString: function() { return "{matrix: " + Std.string(this.matrix) + ", bitmap: " + this.bitmap + "}"; } ,destroy: function() { this._parent = null; if(this.symbol != null) { this.symbol.destroy(); this.symbol = null; } this.bitmap = null; this.matrix = null; } ,__class__: flxanimate_animate_FlxElement }; var flxanimate_animate_FlxKeyFrame = function(index,duration,elements,colorEffect,name) { if(duration == null) { duration = 1; } this.set_index(index); this.set_duration(duration); this.name = name; this._elements = elements == null ? [] : elements; this.colorEffect = colorEffect; this.callbacks = []; }; $hxClasses["flxanimate.animate.FlxKeyFrame"] = flxanimate_animate_FlxKeyFrame; flxanimate_animate_FlxKeyFrame.__name__ = "flxanimate.animate.FlxKeyFrame"; flxanimate_animate_FlxKeyFrame.fromJSON = function(frame) { if(frame == null) { return null; } var elements = []; if(flxanimate_data_Frame.get_E(frame) != null) { var _g = 0; var _g1 = flxanimate_data_Frame.get_E(frame); while(_g < _g1.length) { var element = _g1[_g]; ++_g; elements.push(flxanimate_animate_FlxElement.fromJSON(element)); } } return new flxanimate_animate_FlxKeyFrame(flxanimate_data_Frame.get_I(frame),flxanimate_data_Frame.get_DU(frame),elements,flxanimate_data_AnimationData.fromColorJson(flxanimate_data_Frame.get_C(frame)),flxanimate_data_Frame.get_N(frame)); }; flxanimate_animate_FlxKeyFrame.prototype = { name: null ,callbacks: null ,_parent: null ,index: null ,duration: null ,colorEffect: null ,_elements: null ,_colorEffect: null ,set_duration: function(duration) { var Max = null; var lowerBound = duration < 1 ? 1 : duration; var difference = this.duration - (Max != null && lowerBound > Max ? Max : lowerBound); var Max = null; var lowerBound = duration < 1 ? 1 : duration; this.duration = Max != null && lowerBound > Max ? Max : lowerBound; if(this._parent != null) { var frame = this._parent.get(this.index + duration); if(frame != null) { frame.set_index(frame.index - difference); } } return duration; } ,add: function(element) { if(((element) instanceof flxanimate_animate_FlxElement)) { var element1 = element; if(element1 == null) { flixel_FlxG.log.advanced("this element is null!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } element1._parent = this; this._elements.push(element1); } else { if(element == null) { flixel_FlxG.log.advanced("this callback is null!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } this.callbacks.push(element); } return element; } ,get: function(element) { return this._elements[element]; } ,getList: function() { return this._elements; } ,remove: function(element) { if(element == null) { return null; } if(((element) instanceof flxanimate_animate_FlxElement)) { if(element == null || !HxOverrides.remove(this._elements,element)) { flixel_FlxG.log.advanced("this element doesn't exist!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } } else if(element == null || !HxOverrides.remove(this.callbacks,element)) { flixel_FlxG.log.advanced("this callback doesn't exist!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } return element; } ,fireCallbacks: function() { var _g = 0; var _g1 = this.callbacks; while(_g < _g1.length) { var callback = _g1[_g]; ++_g; callback(); } } ,removeCallbacks: function() { this.callbacks = []; } ,clone: function() { var keyframe = new flxanimate_animate_FlxKeyFrame(this.duration,null,this._elements,this.colorEffect,this.name); keyframe.callbacks = this.callbacks; return keyframe; } ,destroy: function() { } ,toString: function() { return "{index: " + this.index + ", duration: " + this.duration + "}"; } ,get__colorEffect: function() { return flxanimate_data_AnimationData.parseColorEffect(this.colorEffect); } ,set_index: function(i) { this.index = i; if(this._parent != null) { this._parent.remove(this); this._parent.add(this); } return this.index; } ,__class__: flxanimate_animate_FlxKeyFrame ,__properties__: {get__colorEffect:"get__colorEffect",set_duration:"set_duration",set_index:"set_index"} }; var flxanimate_animate_FlxLabel = function(name,frame) { this.name = name; this.frame = frame; this.callbacks = []; }; $hxClasses["flxanimate.animate.FlxLabel"] = flxanimate_animate_FlxLabel; flxanimate_animate_FlxLabel.__name__ = "flxanimate.animate.FlxLabel"; flxanimate_animate_FlxLabel.prototype = { frame: null ,name: null ,callbacks: null ,fireCallbacks: function() { var _g = 0; var _g1 = this.callbacks; while(_g < _g1.length) { var callback = _g1[_g]; ++_g; callback(); } } ,removeCallbacks: function() { this.callbacks = []; } ,toString: function() { return "(frame: " + this.frame + " || callbacks: " + Std.string(this.callbacks) + ")"; } ,__class__: flxanimate_animate_FlxLabel }; var flxanimate_animate_FlxLayer = function(name,keyframes) { this.name = name; this.type = flxanimate_data_LayerType.Normal; this._keyframes = keyframes != null ? keyframes : []; this.visible = true; this._labels = new haxe_ds_StringMap(); }; $hxClasses["flxanimate.animate.FlxLayer"] = flxanimate_animate_FlxLayer; flxanimate_animate_FlxLayer.__name__ = "flxanimate.animate.FlxLayer"; flxanimate_animate_FlxLayer.__interfaces__ = [flixel_util_IFlxDestroyable]; flxanimate_animate_FlxLayer.fromJSON = function(layer) { if(layer == null) { return null; } var l = new flxanimate_animate_FlxLayer(flxanimate_data_Layers.get_LN(layer)); if(flxanimate_data_Layers.get_LT(layer) != null || flxanimate_data_Layers.get_Clpb(layer) != null) { l.type = flxanimate_data_Layers.get_LT(layer) != null ? flxanimate_data_LayerType.Clipper : flxanimate_data_LayerType.Clipped(flxanimate_data_Layers.get_Clpb(layer)); } if(flxanimate_data_Layers.get_FR(layer) != null) { var _g = 0; var _g1 = flxanimate_data_Layers.get_FR(layer); while(_g < _g1.length) { var frame = _g1[_g]; ++_g; l.add(flxanimate_animate_FlxKeyFrame.fromJSON(frame)); } } return l; }; flxanimate_animate_FlxLayer.prototype = { _parent: null ,name: null ,_labels: null ,type: null ,_keyframes: null ,visible: null ,length: null ,hide: function() { this.visible = false; } ,show: function() { this.visible = true; } ,destroy: function() { } ,get: function(frame) { var index = 0; if(typeof(frame) == "string") { if(!Object.prototype.hasOwnProperty.call(this._labels.h,frame)) { return null; } return this._labels.h[frame]; } else { index = frame; if(index > this.get_length()) { return null; } } var _g = 0; var _g1 = this._keyframes; while(_g < _g1.length) { var keyframe = _g1[_g]; ++_g; if(keyframe.index + keyframe.duration > index) { return keyframe; } } return null; } ,add: function(keyFrame) { if(keyFrame == null) { return null; } var index = keyFrame.index; if(keyFrame.name != null) { this._labels.h[keyFrame.name] = keyFrame; } var Max = this.get_length() - 1; var lowerBound = index < 0 ? 0 : index; var keyframe = this.get(Max != null && lowerBound > Max ? Max : lowerBound); if(this.get_length() == 0) { keyframe = new flxanimate_animate_FlxKeyFrame(0,1); this._keyframes.push(keyframe); } var difference = Math.abs(index - keyframe.index); if(index == keyframe.index) { keyFrame.set_duration(keyFrame.duration + (keyframe.duration - 1)); this._keyframes.splice(this._keyframes.indexOf(keyframe),0,keyFrame); HxOverrides.remove(this._keyframes,keyframe); keyframe.destroy(); } else { var dur = keyframe.duration; keyframe.set_duration(keyframe.duration + (difference - dur)); var Value = dur - difference - 1; var Max = null; var lowerBound = Value < 0 ? 0 : Value; keyFrame.set_duration(keyFrame.duration + (Max != null && lowerBound > Max ? Max : lowerBound)); this._keyframes.splice(this._keyframes.indexOf(keyframe) + 1,0,keyFrame); } keyFrame._parent = this; return keyFrame; } ,remove: function(frame) { if(((frame) instanceof flxanimate_animate_FlxKeyFrame)) { HxOverrides.remove(this._keyframes,frame); return frame; } var index = frame; if(this.get_length() > index) { var keyframe = this.get(index); if(keyframe.duration > 1) { keyframe.set_duration(keyframe.duration - 1); } else { HxOverrides.remove(this._keyframes,keyframe); } return keyframe; } return null; } ,rename: function(name) { if(name == null) { name = ""; } if(["",null].indexOf(name) != -1 && ["",null].indexOf(this.name) != -1) { name = "Layer " + (this._parent != null ? this._parent.getList().length : 1); } if(this._parent != null && this._parent.get(name) != null) { name += " copy"; } if(["",null].indexOf(name) == -1) { this.name = name; } } ,set__parent: function(par) { this._parent = par; this.rename(); return par; } ,get_length: function() { var keyframe = this._keyframes[this._keyframes.length - 1]; if(keyframe != null) { return keyframe.index + keyframe.duration; } else { return 0; } } ,__class__: flxanimate_animate_FlxLayer ,__properties__: {get_length:"get_length",set__parent:"set__parent"} }; var flxanimate_animate_FlxSymbol = function(name,timeline) { this.layers = []; this.set_curFrame(0); this.timeline = timeline; this.name = name; }; $hxClasses["flxanimate.animate.FlxSymbol"] = flxanimate_animate_FlxSymbol; flxanimate_animate_FlxSymbol.__name__ = "flxanimate.animate.FlxSymbol"; flxanimate_animate_FlxSymbol.prepareMatrix = function(d,e) { return new flixel_math_FlxMatrix(); }; flxanimate_animate_FlxSymbol.prototype = { timeline: null ,length: null ,name: null ,labels: null ,layers: null ,_curFrame: null ,_shootCallback: null ,_tick: null ,toSprite: function() { var sprite = new openfl_display_Sprite(); var list = this.timeline.getList(); var _g = 0; while(_g < list.length) { var layer = list[_g]; ++_g; var spr = new openfl_display_Sprite(); spr.set_name(layer.name); sprite.addChildAt(spr,0); } return sprite; } ,hideLayer: function(layer) { this.timeline.hide(layer); } ,showLayer: function(layer) { this.timeline.show(layer); } ,addCallbackTo: function(label,callback,layer) { var label1 = this.getFrameLabel(label,layer); if(label1 == null) { return false; } if(label1.callbacks.indexOf(callback) != -1) { flixel_FlxG.log.advanced("this callback already exists!",flixel_system_debug_log_LogStyle.ERROR,true); return false; } label1.callbacks.push(callback); return true; } ,getCallbackFrom: function(label,callback,layer) { var label = this.getFrameLabel(this.name,layer); if(label == null) { return null; } var c = label.callbacks[typeof(callback) == "number" && ((callback | 0) === callback) ? callback : label.callbacks.indexOf(callback)]; return c; } ,removeCallbackFrom: function(label,callback,layer) { var label = this.getFrameLabel(this.name,layer); if(label == null) { return false; } var callback1 = typeof(callback) == "number" && ((callback | 0) === callback) ? label.callbacks[callback] : callback; if(label.callbacks.indexOf(callback1) == -1) { flixel_FlxG.log.advanced("this callback doesn't exist!",flixel_system_debug_log_LogStyle.ERROR,true); } HxOverrides.remove(label.callbacks,callback1); return true; } ,removeAllCallbacksFrom: function(label,layer) { var label1 = this.getFrameLabel(label,layer); if(label1 == null) { return false; } label1.removeCallbacks(); return true; } ,getNextToFrameLabel: function(label,layer) { if(layer == null) { layer = 0; } var label1 = this.getFrameLabel(label,layer); if(label1 == null) { return null; } var layer1 = this.timeline.get(layer); var j = layer1._keyframes.indexOf(label1); while(j++ < layer1._keyframes.length) if([null,label1.name].indexOf(layer1._keyframes[j].name) == -1) { return layer1._keyframes[j]; } return null; } ,getFrameLabel: function(name,layer) { var frame = null; var layers = layer == null ? this.timeline.getList() : [this.timeline.get(layer)]; var _g = 0; while(_g < layers.length) { var layer = layers[_g]; ++_g; if(layer == null) { continue; } var fr = layer.get(name); if(fr != null) { frame = fr; break; } } if(frame == null) { flixel_FlxG.log.advanced("The frame label \"" + name + "\" does not exist! maybe you misspelled it?",flixel_system_debug_log_LogStyle.ERROR,true); } return frame; } ,frameControl: function(frame,loopType) { if(frame < 0) { if(["LP","loop"].indexOf(loopType) != -1) { frame += this.get_length() > 0 ? this.get_length() - 1 : frame; } else { frame = 0; } } else if(frame > this.get_length() - 1) { if(["LP","loop"].indexOf(loopType) != -1) { frame -= this.get_length() > 0 ? this.get_length() - 1 : frame; } else { frame = this.get_length() - 1; } } return frame; } ,update: function(framerate,reversed) { } ,getElement: function(index,frame) { if(frame == null) { frame = this.get_curFrame(); } var _g = 0; var _g1 = this.timeline.getList(); while(_g < _g1.length) { var layer = _g1[_g]; ++_g; var keyframe = layer.get(frame); if(keyframe == null) { continue; } var elements = keyframe.getList(); if(index > elements.length - 1) { index -= elements.length - 1; continue; } return elements[index]; } return null; } ,getFrameLabels: function(layer) { var array = []; var labels = []; if(layer == null) { var _g = 0; var _g1 = this.timeline.getList(); while(_g < _g1.length) { var layer1 = _g1[_g]; ++_g; var h = layer1._labels.h; var label_h = h; var label_keys = Object.keys(h); var label_length = label_keys.length; var label_current = 0; while(label_current < label_length) { var label = label_h[label_keys[label_current++]]; labels.push(label); } } } else { var h = this.timeline.get(layer)._labels.h; var label_h = h; var label_keys = Object.keys(h); var label_length = label_keys.length; var label_current = 0; while(label_current < label_length) { var label = label_h[label_keys[label_current++]]; labels.push(label); } } labels.sort(function(a,b) { return a.index - b.index; }); var _g = 0; while(_g < labels.length) { var label = labels[_g]; ++_g; array.push(label.name); } return array; } ,getElementByName: function(name,frame,layer) { if(frame == null) { frame = this.get_curFrame(); } if(layer != null) { var keyframe = this.timeline.get(layer).get(frame); if(keyframe == null) { return null; } var _g = 0; var _g1 = keyframe.getList(); while(_g < _g1.length) { var element = _g1[_g]; ++_g; if(element.symbol == null) { continue; } var instance = element.symbol.instance == "" ? element.symbol.name : element.symbol.instance; if(instance == name) { return element; } else { continue; } } } else { var _g = 0; var _g1 = this.timeline.getList(); while(_g < _g1.length) { var layer = _g1[_g]; ++_g; var keyframe = layer.get(frame); if(keyframe == null) { continue; } var _g2 = 0; var _g3 = keyframe.getList(); while(_g2 < _g3.length) { var element = _g3[_g2]; ++_g2; if(element.symbol == null) { continue; } var instance = element.symbol.instance == "" ? element.symbol.name : element.symbol.instance; if(instance == name) { return element; } else { continue; } } } } return null; } ,getElementIndex: function(element,frame) { if(frame == null) { frame = this.get_curFrame(); } var list = 0; var _g = 0; var _g1 = this.timeline.getList(); while(_g < _g1.length) { var layer = _g1[_g]; ++_g; var keyframe = layer.get(frame); if(keyframe == null) { continue; } var _g2 = 0; var _g3 = keyframe.getList(); while(_g2 < _g3.length) { var e = _g3[_g2]; ++_g2; if(element == e) { return list; } ++list; } } return -1; } ,swapElements: function(oldElement,newElement,frame) { if(frame == null) { frame = this.get_curFrame(); } var index = this.getElementIndex(oldElement); if(index == -1) { flixel_FlxG.log.advanced("oldElement doesnt exist in this symbol!",flixel_system_debug_log_LogStyle.ERROR,true); return; } var oldElement = this.getElement(index); oldElement = newElement; } ,get_length: function() { return this.timeline.get_totalFrames(); } ,get_layers: function() { return this.timeline.getListNames(); } ,get_curFrame: function() { return this._curFrame; } ,set_curFrame: function(value) { this._curFrame = value; this._shootCallback = false; return value; } ,__class__: flxanimate_animate_FlxSymbol ,__properties__: {set_curFrame:"set_curFrame",get_curFrame:"get_curFrame",get_layers:"get_layers",get_length:"get_length"} }; var flxanimate_animate_FlxTimeline = function(layers) { this._layers = layers != null ? layers : []; }; $hxClasses["flxanimate.animate.FlxTimeline"] = flxanimate_animate_FlxTimeline; flxanimate_animate_FlxTimeline.__name__ = "flxanimate.animate.FlxTimeline"; flxanimate_animate_FlxTimeline.fromJSON = function(timeline) { if(timeline == null || flxanimate_data_Timeline.get_L(timeline) == null) { return null; } var layers = []; var _g = 0; var _g1 = flxanimate_data_Timeline.get_L(timeline); while(_g < _g1.length) { var layer = _g1[_g]; ++_g; layers.push(flxanimate_animate_FlxLayer.fromJSON(layer)); } return new flxanimate_animate_FlxTimeline(layers); }; flxanimate_animate_FlxTimeline.prototype = { _layers: null ,length: null ,totalFrames: null ,getListNames: function() { var _g = []; var _g1 = 0; var _g2 = this._layers; while(_g1 < _g2.length) { var layer = _g2[_g1]; ++_g1; _g.push(layer.name); } return _g; } ,getList: function() { return this._layers; } ,get: function(name) { if(typeof(name) == "number" && ((name | 0) === name)) { return this._layers[name]; } var _g = 0; var _g1 = this._layers; while(_g < _g1.length) { var layer = _g1[_g]; ++_g; if(layer.name == name) { return layer; } } return null; } ,hide: function(name) { var layer = this.get(name); var name1 = typeof(name) == "string" ? name : layer.name; if(layer == null) { flixel_FlxG.log.advanced("There's no layer called \"" + name1 + "\"!",flixel_system_debug_log_LogStyle.ERROR,true); return; } if(!layer.visible) { flixel_FlxG.log.advanced("The layer called \"" + name1 + "\" is already hidden!",flixel_system_debug_log_LogStyle.ERROR,true); return; } layer.hide(); } ,show: function(name) { var layer = this.get(name); var name1 = typeof(name) == "string" ? name : layer.name; if(layer == null) { flixel_FlxG.log.advanced("There's no layer called \"" + name1 + "\"!",flixel_system_debug_log_LogStyle.ERROR,true); return; } if(layer.visible) { flixel_FlxG.log.advanced("The layer called \"" + name1 + "\" is not hidden!",flixel_system_debug_log_LogStyle.ERROR,true); return; } layer.show(); } ,add: function(position,name) { if(position == null) { position = 0; } var layer = null; if(typeof(name) == "string" || name == null) { layer = new flxanimate_animate_FlxLayer(name); } else { layer = name; } layer.set__parent(this); this._layers.splice(position,0,layer); return layer; } ,remove: function(name) { var layer = null; if(typeof(name) == "string" || name == null) { layer = this.get(name); if(layer == null) { flixel_FlxG.log.advanced("There's no layer called \"" + name + "\"!",flixel_system_debug_log_LogStyle.ERROR,true); } } else if(this._layers.indexOf(name) != -1) { layer = name; } if(layer == null) { flixel_FlxG.log.advanced("There's no layer called \"" + name + "\"!",flixel_system_debug_log_LogStyle.ERROR,true); } layer.set__parent(null); HxOverrides.remove(this._layers,layer); return layer; } ,get_length: function() { return this._layers.length; } ,get_totalFrames: function() { var _length = 0; var _g = 0; var _g1 = this._layers; while(_g < _g1.length) { var layer = _g1[_g]; ++_g; var length = layer.get_length(); if(_length < length) { _length = length; } } return _length; } ,__class__: flxanimate_animate_FlxTimeline ,__properties__: {get_totalFrames:"get_totalFrames",get_length:"get_length"} }; var flxanimate_animate_SymbolParameters = function(name,instance,type,loop) { if(loop == null) { loop = flxanimate_data_Loop.Loop; } if(type == null) { type = flxanimate_data_SymbolT.Graphic; } if(instance == null) { instance = ""; } this.name = name; this.instance = instance; this.set_type(type); this.set_loop(loop); this.firstFrame = 0; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.transformationPoint = point; this.colorEffect = flxanimate_data_ColorEffect.None; }; $hxClasses["flxanimate.animate.SymbolParameters"] = flxanimate_animate_SymbolParameters; flxanimate_animate_SymbolParameters.__name__ = "flxanimate.animate.SymbolParameters"; flxanimate_animate_SymbolParameters.prototype = { instance: null ,type: null ,loop: null ,reverse: null ,firstFrame: null ,name: null ,colorEffect: null ,_colorEffect: null ,transformationPoint: null ,destroy: function() { this.instance = null; this.set_type(null); this.reverse = false; this.firstFrame = 0; this.name = null; this.colorEffect = null; this.transformationPoint = flixel_util_FlxDestroyUtil.put(this.transformationPoint); } ,set_type: function(type) { this.type = type; this.set_loop(type == null ? null : flxanimate_data_Loop.Loop); return type; } ,set_loop: function(loop) { if(this.type == null) { return this.loop = null; } var tmp; switch(this.type._hx_index) { case 1: tmp = flxanimate_data_Loop.Loop; break; case 2: tmp = flxanimate_data_Loop.SingleFrame; break; default: tmp = loop; } this.loop = tmp; return loop; } ,get__colorEffect: function() { return flxanimate_data_AnimationData.parseColorEffect(this.colorEffect); } ,__class__: flxanimate_animate_SymbolParameters ,__properties__: {get__colorEffect:"get__colorEffect",set_loop:"set_loop",set_type:"set_type"} }; var flxanimate_data_AnimationData = function() { }; $hxClasses["flxanimate.data.AnimationData"] = flxanimate_data_AnimationData; flxanimate_data_AnimationData.__name__ = "flxanimate.data.AnimationData"; flxanimate_data_AnimationData.setFieldBool = function(abstracto,things,set) { if(abstracto == null) { return Reflect.field({ },""); } var _g = 0; while(_g < things.length) { var thing = things[_g]; ++_g; if(set != null) { abstracto[thing] = set; return set; } if(Object.prototype.hasOwnProperty.call(abstracto,thing)) { return Reflect.field(abstracto,thing); } } return Reflect.field(abstracto,""); }; flxanimate_data_AnimationData.fromColorJson = function(effect) { var colorEffect = flxanimate_data_ColorEffect.None; if(effect == null) { return colorEffect; } switch(flxanimate_data_ColorEffects.get_M(effect)) { case "AD":case "Advanced": var CT = new openfl_geom_ColorTransform(); CT.redMultiplier = flxanimate_data_ColorEffects.get_RM(effect); CT.redOffset = flxanimate_data_ColorEffects.get_RO(effect); CT.greenMultiplier = flxanimate_data_ColorEffects.get_GM(effect); CT.greenOffset = flxanimate_data_ColorEffects.get_GO(effect); CT.blueMultiplier = flxanimate_data_ColorEffects.get_BM(effect); CT.blueOffset = flxanimate_data_ColorEffects.get_BO(effect); CT.alphaMultiplier = flxanimate_data_ColorEffects.get_AM(effect); CT.alphaOffset = flxanimate_data_ColorEffects.get_AO(effect); colorEffect = flxanimate_data_ColorEffect.Advanced(CT); break; case "Alpha":case "CA": colorEffect = flxanimate_data_ColorEffect.Alpha(flxanimate_data_ColorEffects.get_AM(effect)); break; case "Brightness":case "CBRT": colorEffect = flxanimate_data_ColorEffect.Brightness(flxanimate_data_ColorEffects.get_BRT(effect)); break; case "T":case "Tint": var tc = "0x" + flxanimate_data_ColorEffects.get_TC(effect).substring(1); colorEffect = flxanimate_data_ColorEffect.Tint(Std.parseInt(tc),flxanimate_data_ColorEffects.get_TM(effect)); break; default: flixel_FlxG.log.advanced("color Effect mode \"" + flxanimate_data_ColorEffects.get_M(effect) + "\" is invalid or not supported!",flixel_system_debug_log_LogStyle.ERROR,true); } return colorEffect; }; flxanimate_data_AnimationData.fromFilterJson = function(filters) { if(filters == null) { return null; } var bitmapFilter = []; var _g = 0; var _g1 = Reflect.fields(filters); while(_g < _g1.length) { var filter = _g1[_g]; ++_g; switch(filter) { case "BLF": var blur = Reflect.field(filters,filter); bitmapFilter.push(new openfl_filters_BlurFilter(flxanimate_data_BlurFilter.get_BLX(blur),flxanimate_data_BlurFilter.get_BLY(blur),flxanimate_data_BlurFilter.get_Q(blur))); break; case "GF": var glow = Reflect.field(filters,filter); bitmapFilter.push(new openfl_filters_GlowFilter(flixel_util_FlxColor.fromString(flxanimate_data_GlowFilter.get_C(glow)),flxanimate_data_GlowFilter.get_A(glow),flxanimate_data_BlurFilter.get_BLX(glow),flxanimate_data_BlurFilter.get_BLY(glow),flxanimate_data_GlowFilter.get_STR(glow),flxanimate_data_BlurFilter.get_Q(glow),flxanimate_data_GlowFilter.get_IN(glow),flxanimate_data_GlowFilter.get_KK(glow))); break; } } return bitmapFilter; }; flxanimate_data_AnimationData.parseColorEffect = function(colorEffect) { if(colorEffect == null) { colorEffect = flxanimate_data_ColorEffect.None; } var CT = new openfl_geom_ColorTransform(); if([flxanimate_data_ColorEffect.None,null].indexOf(colorEffect) == -1) { var params = Type.enumParameters(colorEffect); switch($hxEnums[colorEffect.__enum__].__constructs__[colorEffect._hx_index]._hx_name) { case "Advanced": CT.concat(params[0]); break; case "Alpha": CT.alphaMultiplier = params[0]; break; case "Brightness": var CT1 = CT; CT1.blueMultiplier -= Math.abs(params[0]); CT.redMultiplier = CT.greenMultiplier = CT1.blueMultiplier; if(params[0] >= 0) { CT.redOffset = CT.greenOffset = CT.blueOffset = 255 * params[0]; } break; case "Tint": var color = params[0]; var opacity = params[1]; CT.redMultiplier -= opacity; CT.redOffset = Math.round((color >> 16 & 255) * opacity); CT.greenMultiplier -= opacity; CT.greenOffset = Math.round((color >> 8 & 255) * opacity); CT.blueMultiplier -= opacity; CT.blueOffset = Math.round((color & 255) * opacity); break; } } return CT; }; var flxanimate_data_ColorEffect = $hxEnums["flxanimate.data.ColorEffect"] = { __ename__:"flxanimate.data.ColorEffect",__constructs__:null ,None: {_hx_name:"None",_hx_index:0,__enum__:"flxanimate.data.ColorEffect",toString:$estr} ,Brightness: ($_=function(Bright) { return {_hx_index:1,Bright:Bright,__enum__:"flxanimate.data.ColorEffect",toString:$estr}; },$_._hx_name="Brightness",$_.__params__ = ["Bright"],$_) ,Tint: ($_=function(Color,Opacity) { return {_hx_index:2,Color:Color,Opacity:Opacity,__enum__:"flxanimate.data.ColorEffect",toString:$estr}; },$_._hx_name="Tint",$_.__params__ = ["Color","Opacity"],$_) ,Alpha: ($_=function(Alpha) { return {_hx_index:3,Alpha:Alpha,__enum__:"flxanimate.data.ColorEffect",toString:$estr}; },$_._hx_name="Alpha",$_.__params__ = ["Alpha"],$_) ,Advanced: ($_=function(transform) { return {_hx_index:4,transform:transform,__enum__:"flxanimate.data.ColorEffect",toString:$estr}; },$_._hx_name="Advanced",$_.__params__ = ["transform"],$_) }; flxanimate_data_ColorEffect.__constructs__ = [flxanimate_data_ColorEffect.None,flxanimate_data_ColorEffect.Brightness,flxanimate_data_ColorEffect.Tint,flxanimate_data_ColorEffect.Alpha,flxanimate_data_ColorEffect.Advanced]; flxanimate_data_ColorEffect.__empty_constructs__ = [flxanimate_data_ColorEffect.None]; var flxanimate_data_Loop = $hxEnums["flxanimate.data.Loop"] = { __ename__:"flxanimate.data.Loop",__constructs__:null ,Loop: {_hx_name:"Loop",_hx_index:0,__enum__:"flxanimate.data.Loop",toString:$estr} ,PlayOnce: {_hx_name:"PlayOnce",_hx_index:1,__enum__:"flxanimate.data.Loop",toString:$estr} ,SingleFrame: {_hx_name:"SingleFrame",_hx_index:2,__enum__:"flxanimate.data.Loop",toString:$estr} }; flxanimate_data_Loop.__constructs__ = [flxanimate_data_Loop.Loop,flxanimate_data_Loop.PlayOnce,flxanimate_data_Loop.SingleFrame]; flxanimate_data_Loop.__empty_constructs__ = [flxanimate_data_Loop.Loop,flxanimate_data_Loop.PlayOnce,flxanimate_data_Loop.SingleFrame]; var flxanimate_data_SymbolT = $hxEnums["flxanimate.data.SymbolT"] = { __ename__:"flxanimate.data.SymbolT",__constructs__:null ,Graphic: {_hx_name:"Graphic",_hx_index:0,__enum__:"flxanimate.data.SymbolT",toString:$estr} ,MovieClip: {_hx_name:"MovieClip",_hx_index:1,__enum__:"flxanimate.data.SymbolT",toString:$estr} ,Button: {_hx_name:"Button",_hx_index:2,__enum__:"flxanimate.data.SymbolT",toString:$estr} }; flxanimate_data_SymbolT.__constructs__ = [flxanimate_data_SymbolT.Graphic,flxanimate_data_SymbolT.MovieClip,flxanimate_data_SymbolT.Button]; flxanimate_data_SymbolT.__empty_constructs__ = [flxanimate_data_SymbolT.Graphic,flxanimate_data_SymbolT.MovieClip,flxanimate_data_SymbolT.Button]; var flxanimate_data_LayerType = $hxEnums["flxanimate.data.LayerType"] = { __ename__:"flxanimate.data.LayerType",__constructs__:null ,Normal: {_hx_name:"Normal",_hx_index:0,__enum__:"flxanimate.data.LayerType",toString:$estr} ,Clipper: {_hx_name:"Clipper",_hx_index:1,__enum__:"flxanimate.data.LayerType",toString:$estr} ,Clipped: ($_=function(layer) { return {_hx_index:2,layer:layer,__enum__:"flxanimate.data.LayerType",toString:$estr}; },$_._hx_name="Clipped",$_.__params__ = ["layer"],$_) ,Folder: {_hx_name:"Folder",_hx_index:3,__enum__:"flxanimate.data.LayerType",toString:$estr} }; flxanimate_data_LayerType.__constructs__ = [flxanimate_data_LayerType.Normal,flxanimate_data_LayerType.Clipper,flxanimate_data_LayerType.Clipped,flxanimate_data_LayerType.Folder]; flxanimate_data_LayerType.__empty_constructs__ = [flxanimate_data_LayerType.Normal,flxanimate_data_LayerType.Clipper,flxanimate_data_LayerType.Folder]; var flxanimate_data_AnimAtlas = {}; flxanimate_data_AnimAtlas.__properties__ = {get_MD:"get_MD",get_SD:"get_SD",get_AN:"get_AN"}; flxanimate_data_AnimAtlas.get_AN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["AN","ANIMATION"]); }; flxanimate_data_AnimAtlas.get_MD = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["MD","metadata"]); }; flxanimate_data_AnimAtlas.get_SD = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["SD","SYMBOL_DICTIONARY"]); }; var flxanimate_data_SymbolDictionary = {}; flxanimate_data_SymbolDictionary.__properties__ = {get_S:"get_S"}; flxanimate_data_SymbolDictionary.get_S = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["S","Symbols"]); }; var flxanimate_data_Animation = {}; flxanimate_data_Animation.__properties__ = {get_STI:"get_STI",get_TL:"get_TL",get_N:"get_N",get_SN:"get_SN"}; flxanimate_data_Animation.get_SN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["SN","SYMBOL_name"]); }; flxanimate_data_Animation.get_N = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["N","name"]); }; flxanimate_data_Animation.get_TL = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["TL","TIMELINE"]); }; flxanimate_data_Animation.get_STI = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["STI","StageInstance"]); }; var flxanimate_data_StageInstance = {}; flxanimate_data_StageInstance.__properties__ = {get_SI:"get_SI"}; flxanimate_data_StageInstance.get_SI = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["SI","SYMBOL_Instance"]); }; var flxanimate_data_SymbolData = {}; flxanimate_data_SymbolData.__properties__ = {get_TL:"get_TL",get_SN:"get_SN"}; flxanimate_data_SymbolData.get_SN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["SN","SYMBOL_name"]); }; flxanimate_data_SymbolData.get_TL = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["TL","TIMELINE"]); }; var flxanimate_data_Timeline = {}; flxanimate_data_Timeline.__properties__ = {set_L:"set_L",get_L:"get_L"}; flxanimate_data_Timeline.get_L = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["L","LAYERS"]); }; flxanimate_data_Timeline.set_L = function(this1,value) { return flxanimate_data_AnimationData.setFieldBool(this1,["L","LAYERS"],value); }; var flxanimate_data_Layers = {}; flxanimate_data_Layers.__properties__ = {set_FR:"set_FR",get_FR:"get_FR",get_Clpb:"get_Clpb",get_LT:"get_LT",get_LN:"get_LN"}; flxanimate_data_Layers.get_LN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["LN","Layer_name"]); }; flxanimate_data_Layers.get_LT = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["LT","Layer_type"]); }; flxanimate_data_Layers.get_Clpb = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["Clpb","Clipped_by"]); }; flxanimate_data_Layers.get_FR = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["FR","Frames"]); }; flxanimate_data_Layers.set_FR = function(this1,value) { return flxanimate_data_AnimationData.setFieldBool(this1,["FR","Frames"],value); }; var flxanimate_data_MetaData = {}; flxanimate_data_MetaData.__properties__ = {get_FRT:"get_FRT"}; flxanimate_data_MetaData.get_FRT = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["FRT","framerate"]); }; var flxanimate_data_Frame = {}; flxanimate_data_Frame.__properties__ = {get_F:"get_F",set_C:"set_C",get_C:"get_C",get_E:"get_E",get_DU:"get_DU",get_I:"get_I",get_N:"get_N"}; flxanimate_data_Frame.get_N = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["N","name"]); }; flxanimate_data_Frame.get_I = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["I","index"]); }; flxanimate_data_Frame.get_DU = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["DU","duration"]); }; flxanimate_data_Frame.get_E = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["E","elements"]); }; flxanimate_data_Frame.get_C = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["C","color"]); }; flxanimate_data_Frame.set_C = function(this1,value) { return flxanimate_data_AnimationData.setFieldBool(this1,["C","color"],value); }; flxanimate_data_Frame.get_F = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["F","filters"]); }; var flxanimate_data_Element = {}; flxanimate_data_Element.__properties__ = {get_ASI:"get_ASI"}; flxanimate_data_Element.get_ASI = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["ASI","ATLAS_SPRITE_instance"]); }; var flxanimate_data_SymbolInstance = {}; flxanimate_data_SymbolInstance.__properties__ = {get_F:"get_F",set_C:"set_C",get_C:"get_C",get_M3D:"get_M3D",get_TRP:"get_TRP",get_LP:"get_LP",get_FF:"get_FF",get_bitmap:"get_bitmap",get_ST:"get_ST",get_IN:"get_IN",get_SN:"get_SN"}; flxanimate_data_SymbolInstance.get_SN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["SN","SYMBOL_name"]); }; flxanimate_data_SymbolInstance.get_IN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["IN","Instance_Name"]); }; flxanimate_data_SymbolInstance.get_ST = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["ST","symbolType"]); }; flxanimate_data_SymbolInstance.get_bitmap = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BM","bitmap"]); }; flxanimate_data_SymbolInstance.get_FF = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["FF","firstFrame"]); }; flxanimate_data_SymbolInstance.get_LP = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["LP","loop"]); }; flxanimate_data_SymbolInstance.get_TRP = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["TRP","transformationPoint"]); }; flxanimate_data_SymbolInstance.get_M3D = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["M3D","Matrix3D"]); }; flxanimate_data_SymbolInstance.get_C = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["C","color"]); }; flxanimate_data_SymbolInstance.set_C = function(this1,value) { return flxanimate_data_AnimationData.setFieldBool(this1,["C","color"],value); }; flxanimate_data_SymbolInstance.get_F = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["F","filters"]); }; var flxanimate_data_ColorEffects = {}; flxanimate_data_ColorEffects.__properties__ = {get_BRT:"get_BRT",get_BO:"get_BO",get_BM:"get_BM",get_GO:"get_GO",get_GM:"get_GM",get_RO:"get_RO",get_RM:"get_RM",get_AO:"get_AO",get_AM:"get_AM",get_TM:"get_TM",get_TC:"get_TC",get_M:"get_M"}; flxanimate_data_ColorEffects.get_M = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["M","mode"]); }; flxanimate_data_ColorEffects.get_TC = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["TC","tintColor"]); }; flxanimate_data_ColorEffects.get_TM = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["TM","tintMultiplier"]); }; flxanimate_data_ColorEffects.get_AM = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["AM","alphaMultiplier"]); }; flxanimate_data_ColorEffects.get_AO = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["AO","AlphaOffset"]); }; flxanimate_data_ColorEffects.get_RM = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["RM","RedMultiplier"]); }; flxanimate_data_ColorEffects.get_RO = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["RO","redOffset"]); }; flxanimate_data_ColorEffects.get_GM = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["GM","greenMultiplier"]); }; flxanimate_data_ColorEffects.get_GO = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["GO","greenOffset"]); }; flxanimate_data_ColorEffects.get_BM = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BM","blueMultiplier"]); }; flxanimate_data_ColorEffects.get_BO = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BO","blueOffset"]); }; flxanimate_data_ColorEffects.get_BRT = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BRT","Brightness"]); }; var flxanimate_data_Filters = {}; flxanimate_data_Filters.__properties__ = {get_GF:"get_GF",get_ACF:"get_ACF"}; flxanimate_data_Filters.get_ACF = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["ACF","AdjustColorFilter"]); }; flxanimate_data_Filters.get_GF = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["GF"]); }; var flxanimate_data_AdjustColorFilter = {}; flxanimate_data_AdjustColorFilter.__properties__ = {get_H:"get_H",get_SAT:"get_SAT",get_CT:"get_CT",get_BRT:"get_BRT"}; flxanimate_data_AdjustColorFilter.get_BRT = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BRT","brightness"]); }; flxanimate_data_AdjustColorFilter.get_CT = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["CT","contrast"]); }; flxanimate_data_AdjustColorFilter.get_SAT = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["SAT","saturation"]); }; flxanimate_data_AdjustColorFilter.get_H = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["H","hue"]); }; var flxanimate_data_BlurFilter = {}; flxanimate_data_BlurFilter.__properties__ = {get_Q:"get_Q",get_BLY:"get_BLY",get_BLX:"get_BLX"}; flxanimate_data_BlurFilter.get_BLX = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BLX","blurX"]); }; flxanimate_data_BlurFilter.get_BLY = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["BLY","blurY"]); }; flxanimate_data_BlurFilter.get_Q = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["Q","quality"]); }; var flxanimate_data_GlowFilter = {}; flxanimate_data_GlowFilter.__properties__ = {get_IN:"get_IN",get_KK:"get_KK",get_STR:"get_STR",get_A:"get_A",get_C:"get_C"}; flxanimate_data_GlowFilter.get_C = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["C"]); }; flxanimate_data_GlowFilter.get_A = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["A"]); }; flxanimate_data_GlowFilter.get_STR = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["STR"]); }; flxanimate_data_GlowFilter.get_KK = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["KK"]); }; flxanimate_data_GlowFilter.get_IN = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["IN"]); }; var flxanimate_data_Bitmap = {}; flxanimate_data_Bitmap.__properties__ = {get_POS:"get_POS",get_N:"get_N"}; flxanimate_data_Bitmap.get_N = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["N","name"]); }; flxanimate_data_Bitmap.get_POS = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["POS","Position"]); }; var flxanimate_data_AtlasSymbolInstance = {}; flxanimate_data_AtlasSymbolInstance.__properties__ = {get_M3D:"get_M3D"}; flxanimate_data_AtlasSymbolInstance.get_M3D = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["M3D","Matrix3D"]); }; var flxanimate_data_Meta = {}; flxanimate_data_Meta.__properties__ = {get_resolution:"get_resolution"}; flxanimate_data_Meta.get_resolution = function(this1) { return flxanimate_data_AnimationData.setFieldBool(this1,["resolution","scale"]); }; var flxanimate_frames_FlxAnimateFrames = function(parent,border) { this.builtGraphics = []; flixel_graphics_frames_FlxAtlasFrames.call(this,parent,border); }; $hxClasses["flxanimate.frames.FlxAnimateFrames"] = flxanimate_frames_FlxAnimateFrames; flxanimate_frames_FlxAnimateFrames.__name__ = "flxanimate.frames.FlxAnimateFrames"; flxanimate_frames_FlxAnimateFrames.zip = null; flxanimate_frames_FlxAnimateFrames.fromTextureAtlas = function(Path) { var frames = null; if(flxanimate_frames_FlxAnimateFrames.zip != null || haxe_io_Path.extension(Path) == "zip") { flixel_FlxG.log.advanced("Zip Stuff isn't supported on Html5 since it can't transform bytes into an image",flixel_system_debug_log_LogStyle.ERROR,true); return null; } else { if(openfl_utils_Assets.exists("" + Path + "/spritemap.json")) { var curJson = JSON.parse(StringTools.replace(openfl_utils_Assets.getText("" + Path + "/spritemap.json"),String.fromCodePoint(65279),"")); var curSpritemap = openfl_utils_Assets.getBitmapData("" + Path + "/" + curJson.meta.image); if(curSpritemap != null) { var graphic = flixel_FlxG.bitmap.add(curSpritemap,null,"" + Path + "/" + curJson.meta.image); var spritemapFrames = flxanimate_frames_FlxAnimateFrames.getExistingAnimateFrames(graphic); if(spritemapFrames == null) { spritemapFrames = new flxanimate_frames_FlxAnimateFrames(graphic); var _g = 0; var _g1 = curJson.ATLAS.SPRITES; while(_g < _g1.length) { var curSprite = _g1[_g]; ++_g; spritemapFrames.buildLimb(graphic.bitmap,curSprite.SPRITE,curJson.meta,Path); } } graphic.addFrameCollection(spritemapFrames); if(frames == null) { frames = new flxanimate_frames_FlxAnimateFrames(graphic); } frames.addAtlas(spritemapFrames); } else { flixel_FlxG.log.advanced("the image called \"" + curJson.meta.image + "\" does not exist in Path " + Path + ", maybe you changed the image Path somewhere else?",flixel_system_debug_log_LogStyle.ERROR,true); } } var i = 1; while(openfl_utils_Assets.exists("" + Path + "/spritemap" + i + ".json")) { var curJson = JSON.parse(StringTools.replace(openfl_utils_Assets.getText("" + Path + "/spritemap" + i + ".json"),String.fromCodePoint(65279),"")); var curSpritemap = openfl_utils_Assets.getBitmapData("" + Path + "/" + curJson.meta.image); if(curSpritemap != null) { var graphic = flixel_FlxG.bitmap.add(curSpritemap,null,"" + Path + "/" + curJson.meta.image); var spritemapFrames = flxanimate_frames_FlxAnimateFrames.getExistingAnimateFrames(graphic); if(spritemapFrames == null) { spritemapFrames = new flxanimate_frames_FlxAnimateFrames(graphic); var _g = 0; var _g1 = curJson.ATLAS.SPRITES; while(_g < _g1.length) { var curSprite = _g1[_g]; ++_g; spritemapFrames.buildLimb(graphic.bitmap,curSprite.SPRITE,curJson.meta,Path); } } graphic.addFrameCollection(spritemapFrames); if(frames == null) { frames = new flxanimate_frames_FlxAnimateFrames(graphic); } frames.addAtlas(spritemapFrames); } else { flixel_FlxG.log.advanced("the image called \"" + curJson.meta.image + "\" does not exist in Path " + Path + ", maybe you changed the image Path somewhere else?",flixel_system_debug_log_LogStyle.ERROR,true); } ++i; } } if(frames.frames == []) { flixel_FlxG.log.advanced("the Frames parsing couldn't parse any of the frames, it's completely empty! \n Maybe you misspelled the Path?",flixel_system_debug_log_LogStyle.ERROR,true); return null; } return frames; }; flxanimate_frames_FlxAnimateFrames.getExistingAnimateFrames = function(graphic) { if(graphic == null) { return null; } var type = flixel_graphics_frames_FlxFrameCollectionType.ATLAS; var atlasFrames; if(graphic.shader == null) { atlasFrames = []; } else { var collections = graphic.frameCollections.get(type); if(collections == null) { collections = []; graphic.frameCollections.set(type,collections); } atlasFrames = collections; } var atlasFrames1 = atlasFrames; if(atlasFrames1.length > 0 && ((atlasFrames1[0]) instanceof flxanimate_frames_FlxAnimateFrames)) { return atlasFrames1[0]; } return null; }; flxanimate_frames_FlxAnimateFrames.fromSparrow = function(Path,Image1) { if(typeof(Path) == "string" && !openfl_utils_Assets.exists(Path)) { return null; } var x = typeof(Path) == "string" ? Xml.parse(openfl_utils_Assets.getText(Path)).firstElement() : Path.firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } var data = x; if(Image1 == null) { if(typeof(Path) == "string") { var splitDir = Path.split("/"); splitDir.pop(); var tmp = haxe_xml__$Access_AttribAccess.resolve(data,"imagePath"); splitDir.push(tmp); Image1 = splitDir.join("/"); } else { return null; } } var graphic = flixel_FlxG.bitmap.add(Image1); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(data,"SubTexture"); while(_g < _g1.length) { var texture = _g1[_g]; ++_g; var version2 = haxe_xml__$Access_HasAttribAccess.resolve(texture,"width"); var name = haxe_xml__$Access_AttribAccess.resolve(texture,"name"); var trimmed = haxe_xml__$Access_HasAttribAccess.resolve(texture,"frameX"); var width = version2 ? haxe_xml__$Access_AttribAccess.resolve(texture,"width") : haxe_xml__$Access_AttribAccess.resolve(texture,"w"); var height = version2 ? haxe_xml__$Access_AttribAccess.resolve(texture,"height") : haxe_xml__$Access_AttribAccess.resolve(texture,"h"); var rotated = haxe_xml__$Access_HasAttribAccess.resolve(texture,"rotated") && haxe_xml__$Access_AttribAccess.resolve(texture,"rotated") == "true"; var flipX = haxe_xml__$Access_HasAttribAccess.resolve(texture,"flipX") && haxe_xml__$Access_AttribAccess.resolve(texture,"flipX") == "true"; var flipY = haxe_xml__$Access_HasAttribAccess.resolve(texture,"flipY") && haxe_xml__$Access_AttribAccess.resolve(texture,"flipY") == "true"; var X = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"x")); var Y = parseFloat(haxe_xml__$Access_AttribAccess.resolve(texture,"y")); var Width = parseFloat(width); var Height = parseFloat(height); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; var rect1 = rect; var size = trimmed ? new flixel_math_FlxRect(Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameX")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameY")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameWidth")),Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(texture,"frameHeight"))) : new flixel_math_FlxRect(0,0,rect1.width,rect1.height); var angle = rotated ? -90 : 0; var x = -size.x; var y = -size.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var x2 = size.width; var y2 = size.height; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } var x3 = x2; var y3 = y2; if(y3 == null) { y3 = 0; } if(x3 == null) { x3 = 0; } var point1 = flixel_math_FlxBasePoint.pool.get().set(x3,y3); point1._inPool = false; var ImageSize = point1; if(rotated && !trimmed) { var x4 = size.height; var y4 = size.width; if(y4 == null) { y4 = 0; } if(x4 == null) { x4 = 0; } ImageSize.set_x(x4); ImageSize.set_y(y4); } frames.addAtlasFrame(rect1,ImageSize,offset,name,angle,flipX,flipY); } return frames; }; flxanimate_frames_FlxAnimateFrames.fromJson = function(Path,Image1) { if(typeof(Path) == "string" && !openfl_utils_Assets.exists(Path)) { return null; } var data = typeof(Path) == "string" ? JSON.parse(openfl_utils_Assets.getText(Path)) : Path; if(Image1 == null) { if(typeof(Path) == "string") { var splitDir = Path.split("/"); splitDir.pop(); splitDir.push(data.meta.image); Image1 = splitDir.join("/"); } else { flixel_FlxG.log.advanced("The Path isn't a String but a Json, you need to set an image if you use Jsons!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } } var graphic = flixel_FlxG.bitmap.add(Image1); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); if(((data.frames) instanceof Array)) { var _g = 0; var _g1 = Lambda.array(data.frames); while(_g < _g1.length) { var frame = _g1[_g]; ++_g; flxanimate_frames_FlxAnimateFrames.texturePackerHelper(frame.filename,frame,frames); } } else { var _g = 0; var _g1 = Reflect.fields(data.frames); while(_g < _g1.length) { var frameName = _g1[_g]; ++_g; flxanimate_frames_FlxAnimateFrames.texturePackerHelper(frameName,Reflect.field(data.frames,frameName),frames); } } return frames; }; flxanimate_frames_FlxAnimateFrames.fromEdgeAnimate = function(Path,Image1) { return flxanimate_frames_FlxAnimateFrames.fromJson(StringTools.startsWith(Path,"{") ? JSON.parse(Path) : Path,Image1); }; flxanimate_frames_FlxAnimateFrames.fromStarling = function(Path,Image1) { if(typeof(Path) == "string" && !openfl_utils_Assets.exists(Path)) { return null; } var data = typeof(Path) == "string" ? flxanimate_frames_PropertyList.parse(openfl_utils_Assets.getText(Path)) : Path; if(Image1 == null) { if(typeof(Path) == "string") { var splitDir = Path.split("/"); splitDir.pop(); splitDir.push(data.metadata.textureFileName); Image1 = splitDir.join("/"); } else { return null; } } var graphic = flixel_FlxG.bitmap.add(Image1,false); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); var _g = 0; var _g1 = Reflect.fields(data.frames); while(_g < _g1.length) { var frameName = _g1[_g]; ++_g; flxanimate_frames_FlxAnimateFrames.starlingHelper(frameName,Reflect.field(data.frames,frameName),frames); } return frames; }; flxanimate_frames_FlxAnimateFrames.fromCocos2D = function(Path,Image1) { if(!openfl_utils_Assets.exists(Path)) { return null; } var data = flxanimate_frames_PropertyList.parse(openfl_utils_Assets.getText(Path)); if(data.metadata.format == 2) { return flxanimate_frames_FlxAnimateFrames.fromStarling(Path,Image1); } else { if(Image1 == null) { if(typeof(Path) == "string") { var splitDir = Path.split("/"); splitDir.pop(); splitDir.push(data.metadata.target.name); Image1 = splitDir.join("/"); } else { return null; } } var graphic = flixel_FlxG.bitmap.add(Image1); if(graphic == null) { return null; } var frames = flixel_graphics_frames_FlxAtlasFrames.findFrame(graphic); if(frames != null) { return frames; } frames = new flixel_graphics_frames_FlxAtlasFrames(graphic); var _g = 0; var _g1 = Reflect.fields(data.frames); while(_g < _g1.length) { var frameName = _g1[_g]; ++_g; flxanimate_frames_FlxAnimateFrames.cocosHelper(frameName,Reflect.field(data.frames,frameName),frames); } return frames; } }; flxanimate_frames_FlxAnimateFrames.fromEaselJS = function(Path,Image1) { var hugeFrames = new flixel_graphics_frames_FlxAtlasFrames(null); var separatedJS = openfl_utils_Assets.getText(Path).split("\n"); var lines = []; var _g = 0; while(_g < separatedJS.length) { var line = separatedJS[_g]; ++_g; if(line.indexOf("new createjs.SpriteSheet({") != -1) { lines.push(line); } } var names = []; var jsons = []; var _g = 0; while(_g < lines.length) { var line = lines[_g]; ++_g; names.push(StringTools.replace(line.split(".")[0],"_"," ")); var curJson = StringTools.replace(StringTools.replace(line.split("(")[1],")",""),";",""); var _this_r = new RegExp("({|,\\s*)(\\S+)(\\s*:)","g".split("u").join("")); var parsedJson = JSON.parse(curJson.replace(_this_r,"$1\"$2\"$3")); jsons.push(parsedJson); } var prevName = ""; var imagePath = Path.split("/"); imagePath.pop(); var _g = 0; var _g1 = names.length; while(_g < _g1) { var i = _g++; var times = 0; var name = names[i]; var json = jsons[i]; var bitmap = flixel_FlxG.bitmap.add(openfl_utils_Assets.getBitmapData(Image1 == null ? "" + imagePath.join("/") + "/" + json.images[0] : Image1)); var frames = new flixel_graphics_frames_FlxAtlasFrames(bitmap); var _g2 = 0; var _g3 = json.frames; while(_g2 < _g3.length) { var frame = _g3[_g2]; ++_g2; var frameRect = new flixel_math_FlxRect(frame[0],frame[1],frame[2],frame[3]); var x = frameRect.width; var y = frameRect.height; if(y == null) { y = 0; } if(x == null) { x = 0; } var sourceSize = new flixel_math_FlxBasePoint(x,y); var x1 = -frame[5]; var y1 = -frame[6]; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var offset = new flixel_math_FlxBasePoint(x1,y1); frames.addAtlasFrame(frameRect,sourceSize,offset,name + (times == null ? "null" : "" + times)); ++times; } var _g4 = 0; var _g5 = frames.frames; while(_g4 < _g5.length) { var frame1 = _g5[_g4]; ++_g4; hugeFrames.pushFrame(frame1); } } return hugeFrames; }; flxanimate_frames_FlxAnimateFrames.cocosHelper = function(FrameName,FrameData,Frames) { var rotated = FrameData.textureRotated; var name = FrameName; var x = parseFloat(FrameData.spriteSourceSize[0]); var y = parseFloat(FrameData.spriteSourceSize[1]); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var sourceSize = point; var x = -parseFloat(FrameData.spriteOffset[0]); var y = -parseFloat(FrameData.spriteOffset[1]); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var angle = 0; var frameRect = null; var frame = FrameData.textureRect; if(rotated) { var X = parseFloat(frame[0]); var Y = parseFloat(frame[1]); var Width = parseFloat(frame[3]); var Height = parseFloat(frame[2]); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; angle = -90; } else { var X = parseFloat(frame[0]); var Y = parseFloat(frame[1]); var Width = parseFloat(frame[2]); var Height = parseFloat(frame[3]); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; } Frames.addAtlasFrame(frameRect,sourceSize,offset,name,angle); }; flxanimate_frames_FlxAnimateFrames.starlingHelper = function(FrameName,FrameData,Frames) { var rotated = FrameData.rotated; var name = FrameName; var x = parseFloat(FrameData.sourceSize[0]); var y = parseFloat(FrameData.sourceSize[1]); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var sourceSize = point; var x = -parseFloat(FrameData.offset[0]); var y = -parseFloat(FrameData.offset[1]); if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var angle = 0; var frameRect = null; var frame = FrameData.frame; if(rotated) { var X = parseFloat(frame[0]); var Y = parseFloat(frame[1]); var Width = parseFloat(frame[3]); var Height = parseFloat(frame[2]); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; angle = -90; } else { var X = parseFloat(frame[0]); var Y = parseFloat(frame[1]); var Width = parseFloat(frame[2]); var Height = parseFloat(frame[3]); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; } Frames.addAtlasFrame(frameRect,sourceSize,offset,name,angle); }; flxanimate_frames_FlxAnimateFrames.texturePackerHelper = function(FrameName,FrameData,Frames) { var rotated = FrameData.rotated; var name = FrameName; var x = FrameData.sourceSize.w; var y = FrameData.sourceSize.h; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var sourceSize = point; var x = FrameData.spriteSourceSize.x; var y = FrameData.spriteSourceSize.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var offset = point; var angle = 0; var frameRect = null; if(rotated) { var X = FrameData.frame.x; var Y = FrameData.frame.y; var Width = FrameData.frame.h; var Height = FrameData.frame.w; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; angle = -90; } else { var X = FrameData.frame.x; var Y = FrameData.frame.y; var Width = FrameData.frame.w; var Height = FrameData.frame.h; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; frameRect = rect; } Frames.addAtlasFrame(frameRect,sourceSize,offset,name,angle); }; flxanimate_frames_FlxAnimateFrames.max = function(a,b) { if(a < b) { return b; } else { return a; } }; flxanimate_frames_FlxAnimateFrames.__super__ = flixel_graphics_frames_FlxAtlasFrames; flxanimate_frames_FlxAnimateFrames.prototype = $extend(flixel_graphics_frames_FlxAtlasFrames.prototype,{ builtGraphics: null ,textureAtlasHelper: function(SpriteMap,limb,curMeta,bitmapName) { var width = limb.rotated ? limb.h : limb.w; var height = limb.rotated ? limb.w : limb.h; var sprite = new openfl_display_BitmapData(width,height,true,0); var matrix = new flixel_math_FlxMatrix(1,0,0,1,-limb.x,-limb.y); if(limb.rotated) { matrix.setTo(matrix.b,-matrix.a,matrix.d,-matrix.c,matrix.ty,-matrix.tx); matrix.translate(0,height); } sprite.draw(SpriteMap,matrix); var bitmap = flixel_FlxG.bitmap.add(sprite,false,bitmapName); bitmap.incrementUseCount(); this.builtGraphics.push(bitmap); var curFrame = new flixel_graphics_frames_FlxFrame(bitmap); curFrame.name = limb.name; var this1 = curFrame.sourceSize; var x = width; var y = height; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); curFrame.set_frame(new flixel_math_FlxRect(0,0,width,height)); return curFrame; } ,buildLimb: function(SpriteMap,limb,curMeta,path) { var bitmapName = "" + path + "/" + curMeta.image + ":" + limb.name; this.pushFrame(this.textureAtlasHelper(SpriteMap,limb,curMeta,bitmapName)); } ,destroy: function() { while(this.builtGraphics.length > 0) this.builtGraphics.shift().decrementUseCount(); flixel_graphics_frames_FlxAtlasFrames.prototype.destroy.call(this); } ,__class__: flxanimate_frames_FlxAnimateFrames }); var flxanimate_frames_PropertyList = function() { }; $hxClasses["flxanimate.frames.PropertyList"] = flxanimate_frames_PropertyList; flxanimate_frames_PropertyList.__name__ = "flxanimate.frames.PropertyList"; flxanimate_frames_PropertyList.parse = function(text) { var x = Xml.parse(text).firstElement(); if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } var fast = x; if(haxe_xml__$Access_HasNodeAccess.resolve(fast,"dict")) { return flxanimate_frames_PropertyList.parseDict(haxe_xml__$Access_NodeAccess.resolve(fast,"dict")); } else { return { }; } }; flxanimate_frames_PropertyList.parseDate = function(text) { if(!flxanimate_frames_PropertyList._dateRegex.match(text)) { throw haxe_Exception.thrown("Invalid date \"" + text + "\" (only yyyy-mm-dd and yyyy-mm-ddThh:mm:ssZ supported)"); } text = flxanimate_frames_PropertyList._dateRegex.matched(1); if(flxanimate_frames_PropertyList._dateRegex.matched(2) != null) { text += " " + flxanimate_frames_PropertyList._dateRegex.matched(2); } return HxOverrides.strDate(text); }; flxanimate_frames_PropertyList.parseDict = function(node) { var key = null; var result = { }; var childNode = node.elements(); while(childNode.hasNext()) { var childNode1 = childNode.next(); var tmp; if(childNode1.nodeType == Xml.Document) { tmp = "Document"; } else { if(childNode1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (childNode1.nodeType == null ? "null" : XmlType.toString(childNode1.nodeType))); } tmp = childNode1.nodeName; } if(tmp == "key") { key = haxe_xml_Access.get_innerData(childNode1); } else if(key != null) { result[key] = flxanimate_frames_PropertyList.parseValue(childNode1); } } return result; }; flxanimate_frames_PropertyList.parseValue = function(node) { var value = null; var _g; if(node.nodeType == Xml.Document) { _g = "Document"; } else { if(node.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (node.nodeType == null ? "null" : XmlType.toString(node.nodeType))); } _g = node.nodeName; } switch(_g) { case "array": value = []; var childNode = node.elements(); while(childNode.hasNext()) { var childNode1 = childNode.next(); value.push(flxanimate_frames_PropertyList.parseValue(childNode1)); } break; case "data": value = haxe_xml_Access.get_innerData(node); break; case "date": value = flxanimate_frames_PropertyList.parseDate(haxe_xml_Access.get_innerData(node)); break; case "dict": value = flxanimate_frames_PropertyList.parseDict(node); break; case "false": value = false; break; case "integer": value = Std.parseInt(haxe_xml_Access.get_innerData(node)); break; case "real": value = parseFloat(haxe_xml_Access.get_innerData(node)); break; case "string": var thing = haxe_xml_Access.get_innerData(node); if(thing.charAt(0) == "{") { thing = StringTools.replace(thing,"{",""); thing = StringTools.replace(thing,"}",""); thing = thing.split(","); } value = thing; break; case "true": value = true; break; } return value; }; var flxanimate_zip_Zip = function(i) { this.i = i; this.reader = new haxe_zip_Reader(i); }; $hxClasses["flxanimate.zip.Zip"] = flxanimate_zip_Zip; flxanimate_zip_Zip.__name__ = "flxanimate.zip.Zip"; flxanimate_zip_Zip.readZip = function(i) { var r = new haxe_zip_Reader(new haxe_io_BytesInput(i)); return r.read(); }; flxanimate_zip_Zip.unzip = function(f) { var _g_head = f.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var list = val; if(list.compressed) { list.data = lime__$internal_format_Deflate.decompress(list.data); list.compressed = false; list.dataSize = list.fileSize; } } return f; }; flxanimate_zip_Zip.prototype = { i: null ,reader: null ,readZipDate: function() { return this.reader.readZipDate(); } ,readExtraFields: function(length) { return this.reader.readExtraFields(length); } ,readEntryHeader: function() { return this.reader.readEntryHeader(); } ,read: function() { return this.reader.read(); } ,__class__: flxanimate_zip_Zip }; var funkin_Conductor = function() { this.formatOffset = 0; this.instrumentalOffset = 0; this.currentStepTime = 0; this.currentBeatTime = 0; this.currentMeasureTime = 0; this.currentStep = 0; this.currentBeat = 0; this.currentMeasure = 0; this.bpmOverride = null; this.prevTime = 0; this.prevTimestamp = 0; this.songPosition = 0; this.timeChanges = []; this.onStepHit = new flixel_util__$FlxSignal_FlxSignal0(); this.onBeatHit = new flixel_util__$FlxSignal_FlxSignal0(); this.onMeasureHit = new flixel_util__$FlxSignal_FlxSignal0(); }; $hxClasses["funkin.Conductor"] = funkin_Conductor; funkin_Conductor.__name__ = "funkin.Conductor"; funkin_Conductor.__properties__ = {get_instance:"get_instance"}; funkin_Conductor.reset = function() { funkin_Conductor.set_instance(new funkin_Conductor()); }; funkin_Conductor.dispatchMeasureHit = function() { funkin_Conductor.measureHit.dispatch(); }; funkin_Conductor.dispatchBeatHit = function() { funkin_Conductor.beatHit.dispatch(); }; funkin_Conductor.dispatchStepHit = function() { funkin_Conductor.stepHit.dispatch(); }; funkin_Conductor.setupSingleton = function(input) { input.onMeasureHit.add(funkin_Conductor.dispatchMeasureHit); input.onBeatHit.add(funkin_Conductor.dispatchBeatHit); input.onStepHit.add(funkin_Conductor.dispatchStepHit); }; funkin_Conductor.clearSingleton = function(input) { input.onMeasureHit.remove(funkin_Conductor.dispatchMeasureHit); input.onBeatHit.remove(funkin_Conductor.dispatchBeatHit); input.onStepHit.remove(funkin_Conductor.dispatchStepHit); }; funkin_Conductor.get_instance = function() { if(funkin_Conductor._instance == null) { funkin_Conductor.set_instance(new funkin_Conductor()); } if(funkin_Conductor._instance == null) { throw haxe_Exception.thrown("Could not initialize singleton Conductor!"); } return funkin_Conductor._instance; }; funkin_Conductor.set_instance = function(instance) { if(funkin_Conductor._instance != null) { funkin_Conductor.clearSingleton(funkin_Conductor._instance); } funkin_Conductor._instance = instance; if(funkin_Conductor._instance != null) { funkin_Conductor.setupSingleton(funkin_Conductor._instance); } return funkin_Conductor._instance; }; funkin_Conductor.watchQuick = function(target) { if(target == null) { target = funkin_Conductor.get_instance(); } var _this = flixel_FlxG.watch; var value = target.get_bpm(); }; funkin_Conductor.prototype = { onMeasureHit: null ,onBeatHit: null ,onStepHit: null ,timeChanges: null ,currentTimeChange: null ,songPosition: null ,prevTimestamp: null ,prevTime: null ,get_bpm: function() { if(this.bpmOverride != null) { return this.bpmOverride; } if(this.currentTimeChange == null) { return funkin_util_Constants.DEFAULT_BPM; } return this.currentTimeChange.bpm; } ,get_startingBPM: function() { if(this.bpmOverride != null) { return this.bpmOverride; } var timeChange = this.timeChanges[0]; if(timeChange == null) { return funkin_util_Constants.DEFAULT_BPM; } return timeChange.bpm; } ,bpmOverride: null ,get_measureLengthMs: function() { return this.get_beatLengthMs() * this.get_timeSignatureNumerator(); } ,get_beatLengthMs: function() { return funkin_util_Constants.SECS_PER_MIN / this.get_bpm() * funkin_util_Constants.MS_PER_SEC; } ,get_stepLengthMs: function() { return this.get_beatLengthMs() / this.get_timeSignatureNumerator(); } ,get_timeSignatureNumerator: function() { if(this.currentTimeChange == null) { return funkin_util_Constants.DEFAULT_TIME_SIGNATURE_NUM; } return this.currentTimeChange.timeSignatureNum; } ,get_timeSignatureDenominator: function() { if(this.currentTimeChange == null) { return funkin_util_Constants.DEFAULT_TIME_SIGNATURE_DEN; } return this.currentTimeChange.timeSignatureDen; } ,currentMeasure: null ,currentBeat: null ,currentStep: null ,currentMeasureTime: null ,currentBeatTime: null ,currentStepTime: null ,instrumentalOffset: null ,get_instrumentalOffsetSteps: function() { var startingStepLengthMs = funkin_util_Constants.SECS_PER_MIN / this.get_startingBPM() * funkin_util_Constants.MS_PER_SEC / this.get_timeSignatureNumerator(); return this.instrumentalOffset / startingStepLengthMs; } ,formatOffset: null ,get_inputOffset: function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; var tmp = tmp1 != null ? tmp1.inputOffset : null; if(tmp != null) { return tmp; } else { return 0; } } ,set_inputOffset: function(value) { funkin_save_Save.get_instance().get_options().inputOffset = value; funkin_save_Save.get_instance().flush(); return funkin_save_Save.get_instance().get_options().inputOffset; } ,get_audioVisualOffset: function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; var tmp = tmp1 != null ? tmp1.audioVisualOffset : null; if(tmp != null) { return tmp; } else { return 0; } } ,set_audioVisualOffset: function(value) { funkin_save_Save.get_instance().get_options().audioVisualOffset = value; funkin_save_Save.get_instance().flush(); return funkin_save_Save.get_instance().get_options().audioVisualOffset; } ,get_beatsPerMeasure: function() { return this.get_stepsPerMeasure() / funkin_util_Constants.STEPS_PER_BEAT; } ,get_stepsPerMeasure: function() { return this.get_timeSignatureNumerator() / this.get_timeSignatureDenominator() * funkin_util_Constants.STEPS_PER_BEAT * funkin_util_Constants.STEPS_PER_BEAT | 0; } ,forceBPM: function(bpm) { if(bpm != null) { haxe_Log.trace("[CONDUCTOR] Forcing BPM to " + bpm,{ fileName : "source/funkin/Conductor.hx", lineNumber : 380, className : "funkin.Conductor", methodName : "forceBPM"}); } else { haxe_Log.trace("[CONDUCTOR] Resetting BPM to default",{ fileName : "source/funkin/Conductor.hx", lineNumber : 384, className : "funkin.Conductor", methodName : "forceBPM"}); } this.bpmOverride = bpm; } ,update: function(songPos,applyOffsets,forceDispatch) { if(forceDispatch == null) { forceDispatch = false; } if(applyOffsets == null) { applyOffsets = true; } if(songPos == null) { songPos = flixel_FlxG.sound.music != null ? flixel_FlxG.sound.music._time : 0.0; } songPos += applyOffsets ? this.instrumentalOffset + this.formatOffset + this.get_audioVisualOffset() : 0; var oldMeasure = this.currentMeasure; var oldBeat = this.currentBeat; var oldStep = this.currentStep; this.songPosition = songPos; this.currentTimeChange = this.timeChanges[0]; if(this.songPosition > 0.0) { var _g = 0; var _g1 = this.timeChanges.length; while(_g < _g1) { var i = _g++; if(this.songPosition >= this.timeChanges[i].timeStamp) { this.currentTimeChange = this.timeChanges[i]; } if(this.songPosition < this.timeChanges[i].timeStamp) { break; } } } if(this.currentTimeChange == null && this.bpmOverride == null && flixel_FlxG.sound.music != null) { haxe_Log.trace("WARNING: Conductor is broken, timeChanges is empty.",{ fileName : "source/funkin/Conductor.hx", lineNumber : 428, className : "funkin.Conductor", methodName : "update"}); } else if(this.currentTimeChange != null && this.songPosition > 0.0) { this.currentStepTime = flixel_math_FlxMath.roundDecimal(this.currentTimeChange.beatTime * funkin_util_Constants.STEPS_PER_BEAT + (this.songPosition - this.currentTimeChange.timeStamp) / this.get_stepLengthMs(),6); this.currentBeatTime = this.currentStepTime / funkin_util_Constants.STEPS_PER_BEAT; this.currentMeasureTime = this.currentStepTime / this.get_stepsPerMeasure(); this.currentStep = Math.floor(this.currentStepTime); this.currentBeat = Math.floor(this.currentBeatTime); this.currentMeasure = Math.floor(this.currentMeasureTime); } else { this.currentStepTime = flixel_math_FlxMath.roundDecimal(this.songPosition / this.get_stepLengthMs(),4); this.currentBeatTime = this.currentStepTime / funkin_util_Constants.STEPS_PER_BEAT; this.currentMeasureTime = this.currentStepTime / this.get_stepsPerMeasure(); this.currentStep = Math.floor(this.currentStepTime); this.currentBeat = Math.floor(this.currentBeatTime); this.currentMeasure = Math.floor(this.currentMeasureTime); } if(this.currentStep != oldStep) { this.onStepHit.dispatch(); } if(this.currentBeat != oldBeat) { this.onBeatHit.dispatch(); } if(this.currentMeasure != oldMeasure) { this.onMeasureHit.dispatch(); } if(this.prevTime != this.songPosition) { this.prevTime = this.songPosition; this.prevTimestamp = new Date().getTime() / 1000 * 1000 | 0; } } ,getTimeWithDiff: function(soundToCheck) { if(soundToCheck == null) { soundToCheck = flixel_FlxG.sound.music; } this.songPosition = soundToCheck._channel.get_position(); return this.songPosition; } ,mapTimeChanges: function(songTimeChanges) { this.timeChanges = []; funkin_data_song_SongDataUtils.sortTimeChanges(songTimeChanges); var _g = 0; while(_g < songTimeChanges.length) { var songTimeChange = songTimeChanges[_g]; ++_g; if(songTimeChange.timeStamp < 0.0) { songTimeChange.timeStamp = 0.0; } if(songTimeChange.timeStamp <= 0.0) { songTimeChange.beatTime = 0.0; } else { songTimeChange.beatTime = 0.0; if(songTimeChange.timeStamp > 0.0 && this.timeChanges.length > 0) { var prevTimeChange = this.timeChanges[this.timeChanges.length - 1]; songTimeChange.beatTime = flixel_math_FlxMath.roundDecimal(prevTimeChange.beatTime + (songTimeChange.timeStamp - prevTimeChange.timeStamp) * prevTimeChange.bpm / funkin_util_Constants.SECS_PER_MIN / funkin_util_Constants.MS_PER_SEC,4); } } this.timeChanges.push(songTimeChange); } if(this.timeChanges.length > 0) { haxe_Log.trace("Done mapping time changes: " + Std.string(this.timeChanges),{ fileName : "source/funkin/Conductor.hx", lineNumber : 538, className : "funkin.Conductor", methodName : "mapTimeChanges"}); } this.update(this.songPosition,false); } ,getTimeInSteps: function(ms) { if(this.timeChanges.length == 0) { return Math.floor(ms / this.get_stepLengthMs()); } else { var resultStep = 0; var lastTimeChange = this.timeChanges[0]; var _g = 0; var _g1 = this.timeChanges; while(_g < _g1.length) { var timeChange = _g1[_g]; ++_g; if(ms >= timeChange.timeStamp) { lastTimeChange = timeChange; resultStep = lastTimeChange.beatTime * funkin_util_Constants.STEPS_PER_BEAT; } else { break; } } var lastStepLengthMs = funkin_util_Constants.SECS_PER_MIN / lastTimeChange.bpm * funkin_util_Constants.MS_PER_SEC / this.get_timeSignatureNumerator(); var resultFractionalStep = (ms - lastTimeChange.timeStamp) / lastStepLengthMs; resultStep += resultFractionalStep; return resultStep; } } ,getStepTimeInMs: function(stepTime) { if(this.timeChanges.length == 0) { return stepTime * this.get_stepLengthMs(); } else { var resultMs = 0; var lastTimeChange = this.timeChanges[0]; var _g = 0; var _g1 = this.timeChanges; while(_g < _g1.length) { var timeChange = _g1[_g]; ++_g; if(stepTime >= timeChange.beatTime * funkin_util_Constants.STEPS_PER_BEAT) { lastTimeChange = timeChange; resultMs = lastTimeChange.timeStamp; } else { break; } } var lastStepLengthMs = funkin_util_Constants.SECS_PER_MIN / lastTimeChange.bpm * funkin_util_Constants.MS_PER_SEC / this.get_timeSignatureNumerator(); resultMs += (stepTime - lastTimeChange.beatTime * funkin_util_Constants.STEPS_PER_BEAT) * lastStepLengthMs; return resultMs; } } ,getBeatTimeInMs: function(beatTime) { if(this.timeChanges.length == 0) { return beatTime * this.get_stepLengthMs() * funkin_util_Constants.STEPS_PER_BEAT; } else { var resultMs = 0; var lastTimeChange = this.timeChanges[0]; var _g = 0; var _g1 = this.timeChanges; while(_g < _g1.length) { var timeChange = _g1[_g]; ++_g; if(beatTime >= timeChange.beatTime) { lastTimeChange = timeChange; resultMs = lastTimeChange.timeStamp; } else { break; } } var lastStepLengthMs = funkin_util_Constants.SECS_PER_MIN / lastTimeChange.bpm * funkin_util_Constants.MS_PER_SEC / this.get_timeSignatureNumerator(); resultMs += (beatTime - lastTimeChange.beatTime) * lastStepLengthMs * funkin_util_Constants.STEPS_PER_BEAT; return resultMs; } } ,__class__: funkin_Conductor ,__properties__: {get_stepsPerMeasure:"get_stepsPerMeasure",get_beatsPerMeasure:"get_beatsPerMeasure",set_audioVisualOffset:"set_audioVisualOffset",get_audioVisualOffset:"get_audioVisualOffset",set_inputOffset:"set_inputOffset",get_inputOffset:"get_inputOffset",get_instrumentalOffsetSteps:"get_instrumentalOffsetSteps",get_timeSignatureDenominator:"get_timeSignatureDenominator",get_timeSignatureNumerator:"get_timeSignatureNumerator",get_stepLengthMs:"get_stepLengthMs",get_beatLengthMs:"get_beatLengthMs",get_measureLengthMs:"get_measureLengthMs",get_startingBPM:"get_startingBPM",get_bpm:"get_bpm"} }; var funkin_Tallies = {}; funkin_Tallies._new = function() { return { combo : 0, missed : 0, shit : 0, bad : 0, good : 0, sick : 0, totalNotes : 0, totalNotesHit : 0, maxCombo : 0, score : 0, isNewHighscore : false}; }; var funkin_Highscore = function() { }; $hxClasses["funkin.Highscore"] = funkin_Highscore; funkin_Highscore.__name__ = "funkin.Highscore"; funkin_Highscore.combineTallies = function(newTally,baseTally) { var combinedTally = funkin_Tallies._new(); combinedTally.missed = newTally.missed + baseTally.missed; combinedTally.shit = newTally.shit + baseTally.shit; combinedTally.bad = newTally.bad + baseTally.bad; combinedTally.good = newTally.good + baseTally.good; combinedTally.sick = newTally.sick + baseTally.sick; combinedTally.totalNotes = newTally.totalNotes + baseTally.totalNotes; combinedTally.totalNotesHit = newTally.totalNotesHit + baseTally.totalNotesHit; combinedTally.combo = newTally.combo; combinedTally.maxCombo = Math.max(newTally.maxCombo,baseTally.maxCombo) | 0; return combinedTally; }; var funkin_InitState = function() { flixel_FlxState.call(this); }; $hxClasses["funkin.InitState"] = funkin_InitState; funkin_InitState.__name__ = "funkin.InitState"; funkin_InitState.__super__ = flixel_FlxState; funkin_InitState.prototype = $extend(flixel_FlxState.prototype,{ create: function() { this.setupShit(); funkin_Preferences.init(); funkin_PlayerSettings.init(); this.startGame(); } ,setupShit: function() { funkin_util_WindowUtil.initWindowEvents(); funkin_util_WindowUtil.disableCrashHandler(); flixel_FlxSprite.defaultAntialiasing = true; flixel_FlxG.sound.volumeUpKeys = []; flixel_FlxG.sound.volumeDownKeys = []; flixel_FlxG.sound.muteKeys = []; flixel_FlxG.game.focusLostFramerate = 30; this.setupFlixelDebug(); var diamond = flixel_graphics_FlxGraphic.fromClass(flixel_addons_transition_GraphicTransTileDiamond); diamond.persist = true; diamond.set_destroyOnNoUse(false); var tileData = { asset : diamond, width : 32, height : 32}; var x = 0; var y = -1; if(y == null) { y = 0; } if(x == null) { x = 0; } flixel_addons_transition_FlxTransitionableState.defaultTransIn = new flixel_addons_transition_TransitionData("fade",-16777216,1,new flixel_math_FlxBasePoint(x,y),tileData,new flixel_math_FlxRect(-200,-200,flixel_FlxG.width * 1.4,flixel_FlxG.height * 1.4)); var x = 0; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } flixel_addons_transition_FlxTransitionableState.defaultTransOut = new flixel_addons_transition_TransitionData("fade",-16777216,0.7,new flixel_math_FlxBasePoint(x,y),tileData,new flixel_math_FlxRect(-200,-200,flixel_FlxG.width * 1.4,flixel_FlxG.height * 1.4)); flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; funkin_util_plugins_EvacuateDebugPlugin.initialize(); funkin_util_plugins_ForceCrashPlugin.initialize(); funkin_util_plugins_ReloadAssetsDebugPlugin.initialize(); funkin_util_plugins_ScreenshotPlugin.initialize(); funkin_util_plugins_VolumePlugin.initialize(); funkin_util_plugins_WatchPlugin.initialize(); haxe_Log.trace("Parsing game data...",{ fileName : "source/funkin/InitState.hx", lineNumber : 161, className : "funkin.InitState", methodName : "setupShit"}); var perfStart = funkin_util_TimerUtil.start(); funkin_data_event_SongEventRegistry.loadEventCache(); funkin_data_song_SongRegistry.get_instance().loadEntries(); funkin_data_story_level_LevelRegistry.get_instance().loadEntries(); funkin_data_notestyle_NoteStyleRegistry.get_instance().loadEntries(); funkin_data_dialogue_conversation_ConversationRegistry.get_instance().loadEntries(); funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.get_instance().loadEntries(); funkin_data_dialogue_speaker_SpeakerRegistry.get_instance().loadEntries(); funkin_data_freeplay_album_AlbumRegistry.instance.loadEntries(); funkin_data_stage_StageRegistry.get_instance().loadEntries(); funkin_play_character_CharacterDataParser.loadCharacterCache(); funkin_modding_module_ModuleHandler.buildModuleCallbacks(); funkin_modding_module_ModuleHandler.loadModuleCache(); funkin_modding_module_ModuleHandler.callEvent(new funkin_modding_events_ScriptEvent("CREATE",false)); haxe_Log.trace("Parsing game data took: " + funkin_util_TimerUtil.ms(perfStart),{ fileName : "source/funkin/InitState.hx", lineNumber : 181, className : "funkin.InitState", methodName : "setupShit"}); } ,startGame: function() { this.startGameNormally(); } ,startGameNormally: function() { var params = funkin_util_CLIUtil.processArgs(); haxe_Log.trace("Command line args: " + Std.string(params),{ fileName : "source/funkin/InitState.hx", lineNumber : 260, className : "funkin.InitState", methodName : "startGameNormally"}); if(params.chart.shouldLoadChart) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_debug_charting_ChartEditorState({ fnfcTargetPath : params.chart.chartPath}); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } else { var _this = flixel_FlxG.sound; var embeddedSound = funkin_Paths.music("freakyMenu/freakyMenu"); if(openfl_utils_Assets.exists(embeddedSound,"SOUND") || openfl_utils_Assets.exists(embeddedSound,"MUSIC")) { openfl_utils_Assets.getSound(embeddedSound,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + embeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } var nextState1 = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_title_TitleState(); }); var stateOnCall1 = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall1) { flixel_FlxG.game._nextState = nextState1; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } ,startSong: function(songId,difficultyId) { if(difficultyId == null) { difficultyId = "normal"; } var songData = funkin_data_song_SongRegistry.get_instance().fetchEntry(songId); if(songData == null) { this.startGameNormally(); return; } switch(songId) { case "blammed":case "philly-nice":case "pico": funkin_Paths.setCurrentLevel("week3"); funkin_play_PlayStatePlaylist.campaignId = "week3"; break; case "2hot":case "blazin":case "darnell":case "lit-up": funkin_Paths.setCurrentLevel("weekend1"); funkin_play_PlayStatePlaylist.campaignId = "weekend1"; break; case "bopeebo":case "dadbattle":case "fresh":case "tutorial": funkin_Paths.setCurrentLevel("week1"); funkin_play_PlayStatePlaylist.campaignId = "week1"; break; case "high":case "milf":case "satin-panties": funkin_Paths.setCurrentLevel("week4"); funkin_play_PlayStatePlaylist.campaignId = "week4"; break; case "monster":case "south":case "spookeez": funkin_Paths.setCurrentLevel("week2"); funkin_play_PlayStatePlaylist.campaignId = "week2"; break; case "guns":case "stress":case "ugh": funkin_Paths.setCurrentLevel("week7"); funkin_play_PlayStatePlaylist.campaignId = "week7"; break; case "roses":case "senpai":case "thorns": funkin_Paths.setCurrentLevel("week6"); funkin_play_PlayStatePlaylist.campaignId = "week6"; break; case "cocoa":case "eggnog":case "winter-horrorland": funkin_Paths.setCurrentLevel("week5"); funkin_play_PlayStatePlaylist.campaignId = "week5"; break; } funkin_ui_transition_LoadingState.loadPlayState({ targetSong : songData, targetDifficulty : difficultyId}); } ,startLevel: function(levelId,difficultyId) { if(difficultyId == null) { difficultyId = "normal"; } var currentLevel = funkin_data_story_level_LevelRegistry.get_instance().fetchEntry(levelId); if(currentLevel == null) { this.startGameNormally(); return; } funkin_Paths.setCurrentLevel(levelId); funkin_play_PlayStatePlaylist.campaignId = levelId; funkin_play_PlayStatePlaylist.playlistSongIds = currentLevel.getSongs(); funkin_play_PlayStatePlaylist.isStoryMode = true; funkin_play_PlayStatePlaylist.campaignScore = 0; var targetSongId = funkin_play_PlayStatePlaylist.playlistSongIds.shift(); var targetSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(targetSongId); funkin_ui_transition_LoadingState.loadPlayState({ targetSong : targetSong, targetDifficulty : difficultyId}); } ,setupFlixelDebug: function() { } ,defineSong: function() { return null; } ,defineLevel: function() { return null; } ,defineDifficulty: function() { return null; } ,__class__: funkin_InitState }); var funkin_Paths = function() { }; $hxClasses["funkin.Paths"] = funkin_Paths; funkin_Paths.__name__ = "funkin.Paths"; funkin_Paths.setCurrentLevel = function(name) { funkin_Paths.currentLevel = name.toLowerCase(); }; funkin_Paths.stripLibrary = function(path) { var parts = path.split(":"); if(parts.length < 2) { return path; } return parts[1]; }; funkin_Paths.getLibrary = function(path) { var parts = path.split(":"); if(parts.length < 2) { return "preload"; } return parts[0]; }; funkin_Paths.getPath = function(file,type,library) { if(library != null) { return funkin_Paths.getLibraryPath(file,library); } if(funkin_Paths.currentLevel != null) { var library = funkin_Paths.currentLevel; var levelPath = "" + library + ":assets/" + library + "/" + file; if(openfl_utils_Assets.exists(levelPath,type)) { return levelPath; } } var levelPath = "shared" + ":assets/" + "shared" + "/" + file; if(openfl_utils_Assets.exists(levelPath,type)) { return levelPath; } return "assets/" + file; }; funkin_Paths.getLibraryPath = function(file,library) { if(library == null) { library = "preload"; } if(library == "preload" || library == "default") { return "assets/" + file; } else { return "" + library + ":assets/" + library + "/" + file; } }; funkin_Paths.getLibraryPathForce = function(file,library) { return "" + library + ":assets/" + library + "/" + file; }; funkin_Paths.getPreloadPath = function(file) { return "assets/" + file; }; funkin_Paths.file = function(file,type,library) { if(type == null) { type = "TEXT"; } return funkin_Paths.getPath(file,type,library); }; funkin_Paths.animateAtlas = function(path,library) { return funkin_Paths.getLibraryPath("images/" + path,library); }; funkin_Paths.txt = function(key,library) { return funkin_Paths.getPath("data/" + key + ".txt","TEXT",library); }; funkin_Paths.frag = function(key,library) { return funkin_Paths.getPath("shaders/" + key + ".frag","TEXT",library); }; funkin_Paths.vert = function(key,library) { return funkin_Paths.getPath("shaders/" + key + ".vert","TEXT",library); }; funkin_Paths.xml = function(key,library) { return funkin_Paths.getPath("data/" + key + ".xml","TEXT",library); }; funkin_Paths.json = function(key,library) { return funkin_Paths.getPath("data/" + key + ".json","TEXT",library); }; funkin_Paths.sound = function(key,library) { return funkin_Paths.getPath("sounds/" + key + "." + funkin_util_Constants.EXT_SOUND,"SOUND",library); }; funkin_Paths.soundRandom = function(key,min,max,library) { return funkin_Paths.sound(key + flixel_FlxG.random.int(min,max),library); }; funkin_Paths.music = function(key,library) { return funkin_Paths.getPath("music/" + key + "." + funkin_util_Constants.EXT_SOUND,"MUSIC",library); }; funkin_Paths.videos = function(key,library) { var tmp = library; return funkin_Paths.getPath("videos/" + key + "." + funkin_util_Constants.EXT_VIDEO,"BINARY",tmp != null ? tmp : "videos"); }; funkin_Paths.voices = function(song,suffix) { if(suffix == null) { suffix = ""; } if(suffix == null) { suffix = ""; } return "songs:assets/songs/" + song.toLowerCase() + "/Voices" + suffix + "." + funkin_util_Constants.EXT_SOUND; }; funkin_Paths.inst = function(song,suffix,withExtension) { if(withExtension == null) { withExtension = true; } if(suffix == null) { suffix = ""; } var ext = withExtension ? "." + funkin_util_Constants.EXT_SOUND : ""; return "songs:assets/songs/" + song.toLowerCase() + "/Inst" + suffix + ext; }; funkin_Paths.image = function(key,library) { return funkin_Paths.getPath("images/" + key + ".png","IMAGE",library); }; funkin_Paths.font = function(key) { return "assets/fonts/" + key; }; funkin_Paths.ui = function(key,library) { return funkin_Paths.xml("ui/" + key,library); }; funkin_Paths.getSparrowAtlas = function(key,library) { return flixel_graphics_frames_FlxAtlasFrames.fromSparrow(funkin_Paths.image(key,library),funkin_Paths.file("images/" + key + ".xml",null,library)); }; funkin_Paths.getPackerAtlas = function(key,library) { return flixel_graphics_frames_FlxAtlasFrames.fromSpriteSheetPacker(funkin_Paths.image(key,library),funkin_Paths.file("images/" + key + ".txt",null,library)); }; var funkin_PlayerSettings = function(id) { haxe_Log.trace("loading player settings for id: " + id,{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 97, className : "funkin.PlayerSettings", methodName : "new"}); this.id = id; this.controls = new funkin_input_Controls("player" + id,funkin_input_KeyboardScheme.None); this.addKeyboard(); }; $hxClasses["funkin.PlayerSettings"] = funkin_PlayerSettings; funkin_PlayerSettings.__name__ = "funkin.PlayerSettings"; funkin_PlayerSettings.player1 = null; funkin_PlayerSettings.player2 = null; funkin_PlayerSettings.get = function(id) { switch(id) { case 1: return funkin_PlayerSettings.player1; case 2: return funkin_PlayerSettings.player2; default: return null; } }; funkin_PlayerSettings.init = function() { if(funkin_PlayerSettings.player1 == null) { funkin_PlayerSettings.player1 = new funkin_PlayerSettings(1); ++funkin_PlayerSettings.numPlayers; } flixel_FlxG.gamepads.deviceConnected.add(funkin_PlayerSettings.onGamepadAdded); var numGamepads = flixel_FlxG.gamepads.get_numActiveGamepads(); var _g = 0; var _g1 = numGamepads; while(_g < _g1) { var i = _g++; var gamepad = flixel_FlxG.gamepads._activeGamepads[i]; if(gamepad != null) { funkin_PlayerSettings.onGamepadAdded(gamepad); } } }; funkin_PlayerSettings.reset = function() { funkin_PlayerSettings.player1 = null; funkin_PlayerSettings.player2 = null; funkin_PlayerSettings.numPlayers = 0; }; funkin_PlayerSettings.onGamepadAdded = function(gamepad) { funkin_PlayerSettings.player1.addGamepad(gamepad); }; funkin_PlayerSettings.prototype = { id: null ,controls: null ,addKeyboard: function() { var useDefault = true; if(funkin_save_Save.get_instance().hasControls(this.id,funkin_input_Device.Keys)) { var keyControlData = funkin_save_Save.get_instance().getControls(this.id,funkin_input_Device.Keys); haxe_Log.trace("Loading keyboard control scheme from user save",{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 111, className : "funkin.PlayerSettings", methodName : "addKeyboard"}); useDefault = false; this.controls.fromSaveData(keyControlData,funkin_input_Device.Keys); } else { useDefault = true; } if(useDefault) { haxe_Log.trace("Loading default keyboard control scheme",{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 122, className : "funkin.PlayerSettings", methodName : "addKeyboard"}); this.controls.setKeyboardScheme(funkin_input_KeyboardScheme.Solo); } funkin_input_PreciseInputManager.get_instance().initializeKeys(this.controls); } ,addGamepad: function(gamepad) { var useDefault = true; if(funkin_save_Save.get_instance().hasControls(this.id,funkin_input_Device.Gamepad(gamepad.id))) { var padControlData = funkin_save_Save.get_instance().getControls(this.id,funkin_input_Device.Gamepad(gamepad.id)); haxe_Log.trace("Loading gamepad control scheme from user save",{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 139, className : "funkin.PlayerSettings", methodName : "addGamepad"}); useDefault = false; this.controls.addGamepadWithSaveData(gamepad.id,padControlData); } else { useDefault = true; } if(useDefault) { haxe_Log.trace("Loading default gamepad control scheme",{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 150, className : "funkin.PlayerSettings", methodName : "addGamepad"}); this.controls.addDefaultGamepad(gamepad.id); } funkin_input_PreciseInputManager.get_instance().initializeButtons(this.controls,gamepad); } ,saveControls: function() { var keyData = this.controls.createSaveData(funkin_input_Device.Keys); if(keyData != null) { haxe_Log.trace("Saving keyboard control scheme to user save",{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 164, className : "funkin.PlayerSettings", methodName : "saveControls"}); funkin_save_Save.get_instance().setControls(this.id,funkin_input_Device.Keys,keyData); } if(this.controls.gamepadsAdded.length > 0) { var padData = this.controls.createSaveData(funkin_input_Device.Gamepad(this.controls.gamepadsAdded[0])); if(padData != null) { haxe_Log.trace("Saving gamepad control scheme to user save",{ fileName : "source/funkin/PlayerSettings.hx", lineNumber : 173, className : "funkin.PlayerSettings", methodName : "saveControls"}); funkin_save_Save.get_instance().setControls(this.id,funkin_input_Device.Gamepad(this.controls.gamepadsAdded[0]),padData); } } } ,__class__: funkin_PlayerSettings }; var funkin_Preferences = function() { }; $hxClasses["funkin.Preferences"] = funkin_Preferences; funkin_Preferences.__name__ = "funkin.Preferences"; funkin_Preferences.__properties__ = {set_autoPause:"set_autoPause",get_autoPause:"get_autoPause",set_debugDisplay:"set_debugDisplay",get_debugDisplay:"get_debugDisplay",set_zoomCamera:"set_zoomCamera",get_zoomCamera:"get_zoomCamera",set_flashingLights:"set_flashingLights",get_flashingLights:"get_flashingLights",set_downscroll:"set_downscroll",get_downscroll:"get_downscroll",set_naughtyness:"set_naughtyness",get_naughtyness:"get_naughtyness"}; funkin_Preferences.get_naughtyness = function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; if(tmp1 != null) { return tmp1.naughtyness; } else { return null; } }; funkin_Preferences.set_naughtyness = function(value) { var save = funkin_save_Save.get_instance(); save.get_options().naughtyness = value; save.flush(); return value; }; funkin_Preferences.get_downscroll = function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; if(tmp1 != null) { return tmp1.downscroll; } else { return null; } }; funkin_Preferences.set_downscroll = function(value) { var save = funkin_save_Save.get_instance(); save.get_options().downscroll = value; save.flush(); return value; }; funkin_Preferences.get_flashingLights = function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; var tmp = tmp1 != null ? tmp1.flashingLights : null; if(tmp != null) { return tmp; } else { return true; } }; funkin_Preferences.set_flashingLights = function(value) { var save = funkin_save_Save.get_instance(); save.get_options().flashingLights = value; save.flush(); return value; }; funkin_Preferences.get_zoomCamera = function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; if(tmp1 != null) { return tmp1.zoomCamera; } else { return null; } }; funkin_Preferences.set_zoomCamera = function(value) { var save = funkin_save_Save.get_instance(); save.get_options().zoomCamera = value; save.flush(); return value; }; funkin_Preferences.get_debugDisplay = function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; if(tmp1 != null) { return tmp1.debugDisplay; } else { return null; } }; funkin_Preferences.set_debugDisplay = function(value) { if(value != funkin_save_Save.get_instance().get_options().debugDisplay) { funkin_Preferences.toggleDebugDisplay(value); } var save = funkin_save_Save.get_instance(); save.get_options().debugDisplay = value; save.flush(); return value; }; funkin_Preferences.get_autoPause = function() { var tmp = funkin_save_Save != null ? funkin_save_Save.get_instance() : null; var tmp1 = tmp != null ? tmp.get_options() : null; var tmp = tmp1 != null ? tmp1.autoPause : null; if(tmp != null) { return tmp; } else { return true; } }; funkin_Preferences.set_autoPause = function(value) { if(value != funkin_save_Save.get_instance().get_options().autoPause) { flixel_FlxG.autoPause = value; } var save = funkin_save_Save.get_instance(); save.get_options().autoPause = value; save.flush(); return value; }; funkin_Preferences.init = function() { flixel_FlxG.autoPause = funkin_Preferences.get_autoPause(); funkin_Preferences.toggleDebugDisplay(funkin_Preferences.get_debugDisplay()); }; funkin_Preferences.toggleDebugDisplay = function(show) { if(show) { openfl_Lib.get_current().stage.addChild(Main.fpsCounter); } else { openfl_Lib.get_current().stage.removeChild(Main.fpsCounter); } }; var funkin_api_discord_DiscordClient = function() { }; $hxClasses["funkin.api.discord.DiscordClient"] = funkin_api_discord_DiscordClient; funkin_api_discord_DiscordClient.__name__ = "funkin.api.discord.DiscordClient"; var funkin_api_newgrounds_NGUnsafe = function() { }; $hxClasses["funkin.api.newgrounds.NGUnsafe"] = funkin_api_newgrounds_NGUnsafe; funkin_api_newgrounds_NGUnsafe.__name__ = "funkin.api.newgrounds.NGUnsafe"; funkin_api_newgrounds_NGUnsafe.logEvent = function(event) { }; funkin_api_newgrounds_NGUnsafe.unlockMedal = function(id) { }; funkin_api_newgrounds_NGUnsafe.postScore = function(score,song) { if(score == null) { score = 0; } }; var funkin_api_newgrounds_NGUtil = function() { }; $hxClasses["funkin.api.newgrounds.NGUtil"] = funkin_api_newgrounds_NGUtil; funkin_api_newgrounds_NGUtil.__name__ = "funkin.api.newgrounds.NGUtil"; var funkin_api_newgrounds_NGio = function() { }; $hxClasses["funkin.api.newgrounds.NGio"] = funkin_api_newgrounds_NGio; funkin_api_newgrounds_NGio.__name__ = "funkin.api.newgrounds.NGio"; funkin_api_newgrounds_NGio.logEvent = function(event) { }; funkin_api_newgrounds_NGio.unlockMedal = function(id) { }; funkin_api_newgrounds_NGio.postScore = function(score,song) { if(score == null) { score = 0; } }; var funkin_api_newgrounds_ConnectionResult = $hxEnums["funkin.api.newgrounds.ConnectionResult"] = { __ename__:"funkin.api.newgrounds.ConnectionResult",__constructs__:null ,Success: {_hx_name:"Success",_hx_index:0,__enum__:"funkin.api.newgrounds.ConnectionResult",toString:$estr} ,Fail: ($_=function(msg) { return {_hx_index:1,msg:msg,__enum__:"funkin.api.newgrounds.ConnectionResult",toString:$estr}; },$_._hx_name="Fail",$_.__params__ = ["msg"],$_) ,Cancelled: {_hx_name:"Cancelled",_hx_index:2,__enum__:"funkin.api.newgrounds.ConnectionResult",toString:$estr} }; funkin_api_newgrounds_ConnectionResult.__constructs__ = [funkin_api_newgrounds_ConnectionResult.Success,funkin_api_newgrounds_ConnectionResult.Fail,funkin_api_newgrounds_ConnectionResult.Cancelled]; funkin_api_newgrounds_ConnectionResult.__empty_constructs__ = [funkin_api_newgrounds_ConnectionResult.Success,funkin_api_newgrounds_ConnectionResult.Cancelled]; var funkin_audio_FlxStreamSound = function() { flixel_sound_FlxSound.call(this); }; $hxClasses["funkin.audio.FlxStreamSound"] = funkin_audio_FlxStreamSound; funkin_audio_FlxStreamSound.__name__ = "funkin.audio.FlxStreamSound"; funkin_audio_FlxStreamSound.__super__ = flixel_sound_FlxSound; funkin_audio_FlxStreamSound.prototype = $extend(flixel_sound_FlxSound.prototype,{ loadEmbedded: function(EmbeddedSound,Looped,AutoDestroy,OnComplete) { if(AutoDestroy == null) { AutoDestroy = false; } if(Looped == null) { Looped = false; } if(EmbeddedSound == null) { return this; } this.cleanup(true); if(((EmbeddedSound) instanceof openfl_media_Sound)) { this._sound = EmbeddedSound; } else if(js_Boot.__instanceof(EmbeddedSound,Class)) { this._sound = Type.createInstance(EmbeddedSound,[]); } else if(typeof(EmbeddedSound) == "string") { if(openfl_utils_Assets.exists(EmbeddedSound,"SOUND") || openfl_utils_Assets.exists(EmbeddedSound,"MUSIC")) { this._sound = openfl_utils_Assets.getMusic(EmbeddedSound); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + EmbeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } } return this.init(Looped,AutoDestroy,OnComplete); } ,__class__: funkin_audio_FlxStreamSound }); var funkin_util_tools_ICloneable = function() { }; $hxClasses["funkin.util.tools.ICloneable"] = funkin_util_tools_ICloneable; funkin_util_tools_ICloneable.__name__ = "funkin.util.tools.ICloneable"; funkin_util_tools_ICloneable.__isInterface__ = true; funkin_util_tools_ICloneable.prototype = { clone: null ,__class__: funkin_util_tools_ICloneable }; var funkin_audio_FunkinSound = function() { this._lostFocus = false; this._label = "unknown"; this._shouldPlay = false; this._waveformData = null; this.muted = false; flixel_sound_FlxSound.call(this); }; $hxClasses["funkin.audio.FunkinSound"] = funkin_audio_FunkinSound; funkin_audio_FunkinSound.__name__ = "funkin.audio.FunkinSound"; funkin_audio_FunkinSound.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_audio_FunkinSound.__properties__ = {get_onVolumeChanged:"get_onVolumeChanged"}; funkin_audio_FunkinSound.get_onVolumeChanged = function() { if(funkin_audio_FunkinSound._onVolumeChanged == null) { funkin_audio_FunkinSound._onVolumeChanged = new flixel_util__$FlxSignal_FlxSignal1(); flixel_FlxG.sound.volumeHandler = function(volume) { funkin_audio_FunkinSound._onVolumeChanged.dispatch(volume); }; } return funkin_audio_FunkinSound._onVolumeChanged; }; funkin_audio_FunkinSound.playMusic = function(key,params) { var tmp; var tmp1 = params.overrideExisting; if(!(tmp1 != null && tmp1)) { var tmp1 = flixel_FlxG.sound.music; var tmp2 = tmp1 != null ? tmp1.exists : null; tmp = tmp2 != null && tmp2; } else { tmp = false; } if(tmp && flixel_FlxG.sound.music._channel != null) { return false; } var tmp; var tmp1 = params.restartTrack; if(!(tmp1 != null && tmp1)) { var tmp1 = flixel_FlxG.sound.music; tmp = tmp1 != null ? tmp1._channel != null : null; } else { tmp = false; } if(tmp) { if(flixel_FlxG.sound.music != null && ((flixel_FlxG.sound.music) instanceof funkin_audio_FunkinSound)) { var existingSound = flixel_FlxG.sound.music; if(existingSound._label == funkin_Paths.music("" + key + "/" + key)) { return false; } } } if(flixel_FlxG.sound.music != null) { var tmp = flixel_FlxG.sound.music.fadeTween; if(tmp != null) { tmp.cancel(); } var _this = flixel_FlxG.sound.music; _this.cleanup(_this.autoDestroy,true); flixel_FlxG.sound.music.kill(); } var tmp = params != null ? params.mapTimeChanges : null; if(tmp != null ? tmp : true) { var songMusicData = funkin_data_song_SongRegistry.get_instance().parseMusicData(key); if(songMusicData != null) { funkin_Conductor.get_instance().mapTimeChanges(songMusicData.timeChanges); } else { flixel_FlxG.log.advanced("Tried and failed to find music metadata for " + key,flixel_system_debug_log_LogStyle.WARNING,true); } } var tmp = params.pathsFunction; var pathsFunction = tmp != null ? tmp : "MUSIC"; var tmp = params.suffix; var suffix = tmp != null ? tmp : ""; var pathToUse; switch(pathsFunction) { case "INST": pathToUse = funkin_Paths.inst("" + key,suffix); break; case "MUSIC": pathToUse = funkin_Paths.music("" + key + "/" + key); break; default: pathToUse = funkin_Paths.music("" + key + "/" + key); } var tmp = params.partialParams; var tmp1 = tmp != null ? tmp.loadPartial : null; var shouldLoadPartial = tmp1 != null && tmp1; funkin_audio_FunkinSound.emptyPartialQueue(); if(shouldLoadPartial) { var tmp = params.partialParams; var tmp1 = tmp != null ? tmp.start : null; var tmp = params.partialParams; var tmp2 = tmp != null ? tmp.end : null; var tmp = params != null ? params.startingVolume : null; var tmp3 = params.loop; var music = funkin_audio_FunkinSound.loadPartial(pathToUse,tmp1 != null ? tmp1 : 0.0,tmp2 != null ? tmp2 : 1.0,tmp != null ? tmp : 1.0,tmp3 != null ? tmp3 : true,false,false,params.onComplete); if(music != null) { funkin_audio_FunkinSound.partialQueue.push(music); music.future.onComplete(function(partialMusic) { flixel_FlxG.sound.music = partialMusic; flixel_FlxG.sound.list.remove(flixel_FlxG.sound.music); if(flixel_FlxG.sound.music != null && params.onLoad != null) { params.onLoad(); } }); return true; } else { return false; } } else { var tmp = params != null ? params.startingVolume : null; var tmp1 = params.loop; var music = funkin_audio_FunkinSound.load(pathToUse,tmp != null ? tmp : 1.0,tmp1 != null ? tmp1 : true,false,true); if(music != null) { flixel_FlxG.sound.music = music; flixel_FlxG.sound.list.remove(flixel_FlxG.sound.music); return true; } else { return false; } } }; funkin_audio_FunkinSound.emptyPartialQueue = function() { while(funkin_audio_FunkinSound.partialQueue.length > 0) funkin_audio_FunkinSound.partialQueue.pop().error("Cancel loading partial sound"); }; funkin_audio_FunkinSound.load = function(embeddedSound,volume,looped,autoDestroy,autoPlay,onComplete,onLoad) { if(autoPlay == null) { autoPlay = false; } if(autoDestroy == null) { autoDestroy = false; } if(looped == null) { looped = false; } if(volume == null) { volume = 1.0; } if(openfl_media_SoundMixer.__soundChannels.length >= 32) { flixel_FlxG.log.advanced("FunkinSound could not play sound, channels exhausted! Found " + openfl_media_SoundMixer.__soundChannels.length + " active sound channels.",flixel_system_debug_log_LogStyle.ERROR,true); return null; } var sound = funkin_audio_FunkinSound.pool.recycle(null,funkin_audio_FunkinSound.construct); sound.loadEmbedded(embeddedSound,looped,autoDestroy,onComplete); if(typeof(embeddedSound) == "string") { sound._label = embeddedSound; } else { sound._label = "unknown"; } if(autoPlay) { sound.play(); } sound.set_volume(volume); sound.set_group(flixel_FlxG.sound.defaultSoundGroup); sound.persist = true; flixel_FlxG.sound.list.add(sound); if(onLoad != null && sound._sound != null) { onLoad(); } return sound; }; funkin_audio_FunkinSound.loadPartial = function(path,start,end,volume,looped,autoDestroy,autoPlay,onComplete,onLoad) { if(autoPlay == null) { autoPlay = true; } if(autoDestroy == null) { autoDestroy = false; } if(looped == null) { looped = false; } if(volume == null) { volume = 1.0; } if(end == null) { end = 1; } if(start == null) { start = 0; } var promise = new lime_app_Promise(); path = funkin_Paths.stripLibrary(path); var soundRequest = funkin_util_flixel_sound_FlxPartialSound.partialLoadFromFile(path,start,end); if(soundRequest == null) { promise.complete(null); } else { promise.future.onError(function(e) { soundRequest.error("Sound loading was errored or cancelled"); }); soundRequest.future.onComplete(function(partialSound) { var snd = funkin_audio_FunkinSound.load(partialSound,volume,looped,autoDestroy,autoPlay,onComplete,onLoad); promise.complete(snd); }); } return promise; }; funkin_audio_FunkinSound.playOnce = function(key,volume,onComplete,onLoad) { if(volume == null) { volume = 1.0; } var result = funkin_audio_FunkinSound.load(key,volume,false,true,true,onComplete,onLoad); }; funkin_audio_FunkinSound.stopAllAudio = function(musicToo) { if(musicToo == null) { musicToo = false; } var sound = new flixel_group_FlxTypedGroupIterator(funkin_audio_FunkinSound.pool.members,null); while(sound.hasNext()) { var sound1 = sound.next(); if(sound1 == null) { continue; } if(!musicToo && sound1 == flixel_FlxG.sound.music) { continue; } sound1.destroy(); } }; funkin_audio_FunkinSound.construct = function() { var sound = new funkin_audio_FunkinSound(); funkin_audio_FunkinSound.pool.add(sound); flixel_FlxG.sound.list.add(sound); return sound; }; funkin_audio_FunkinSound.__super__ = flixel_sound_FlxSound; funkin_audio_FunkinSound.prototype = $extend(flixel_sound_FlxSound.prototype,{ muted: null ,set_muted: function(value) { if(value == this.muted) { return value; } this.muted = value; this.updateTransform(); return value; } ,set_volume: function(value) { var Max = funkin_audio_FunkinSound.MAX_VOLUME; var lowerBound = value < 0.0 ? 0.0 : value; this._volume = Max != null && lowerBound > Max ? Max : lowerBound; this.updateTransform(); return this._volume; } ,get_paused: function() { return this._paused; } ,get_isPlaying: function() { if(this._channel == null) { return this._shouldPlay; } else { return true; } } ,_waveformData: null ,get_waveformData: function() { if(this._waveformData == null) { this._waveformData = funkin_audio_waveform_WaveformDataParser.interpretFlxSound(this); if(this._waveformData == null) { throw haxe_Exception.thrown("Could not interpret waveform data!"); } } return this._waveformData; } ,_shouldPlay: null ,_label: null ,_lostFocus: null ,update: function(elapsedSec) { if(this._channel == null && !this._shouldPlay) { return; } if(this._time < 0) { var elapsedMs = elapsedSec * funkin_util_Constants.MS_PER_SEC; this._time += elapsedMs; if(this._time >= 0) { flixel_sound_FlxSound.prototype.play.call(this); this._shouldPlay = false; } } else { flixel_sound_FlxSound.prototype.update.call(this,elapsedSec); } } ,togglePlayback: function() { if(this._channel != null) { this.pause(); } else { this.resume(); } return this; } ,play: function(forceRestart,startTime,endTime) { if(startTime == null) { startTime = 0; } if(forceRestart == null) { forceRestart = false; } if(!this.exists) { return this; } if(forceRestart) { this.cleanup(false,true); } else if(this._channel != null) { return this; } if(startTime < 0) { this.set_active(true); this._shouldPlay = true; this._time = startTime; this.endTime = endTime; return this; } else { if(this._paused) { this.resume(); } else { this.startSound(startTime); } this.endTime = endTime; return this; } } ,pause: function() { if(this._shouldPlay) { this._shouldPlay = false; this._paused = true; this.set_active(false); } else { flixel_sound_FlxSound.prototype.pause.call(this); } return this; } ,onFocus: function() { if(this._lostFocus && !this._alreadyPaused) { this.resume(); } this._lostFocus = false; } ,onFocusLost: function() { this._lostFocus = true; this._alreadyPaused = this._paused; this.pause(); } ,resume: function() { if(this._time < 0) { this._shouldPlay = true; this._paused = false; this.set_active(true); } else { flixel_sound_FlxSound.prototype.resume.call(this); } return this; } ,updateTransform: function() { if(this._transform != null) { this._transform.volume = (flixel_FlxG.sound.muted || this.muted ? 0 : 1) * flixel_FlxG.sound.volume * (this.group != null ? this.group.volume : 1) * this._volume * this._volumeAdjust; } if(this._channel != null) { this._channel.set_soundTransform(this._transform); } } ,clone: function() { var sound = new funkin_audio_FunkinSound(); sound._sound = openfl_media_Sound.fromAudioBuffer(this._sound.__buffer); sound.init(this.looped,this.autoDestroy,this.onComplete); sound._waveformData = this._waveformData; return sound; } ,destroy: function() { flixel_sound_FlxSound.prototype.destroy.call(this); if(this.fadeTween != null) { this.fadeTween.cancel(); this.fadeTween = null; } flixel_tweens_FlxTween.cancelTweensOf(this); this._label = "unknown"; } ,__class__: funkin_audio_FunkinSound ,__properties__: $extend(flixel_sound_FlxSound.prototype.__properties__,{get_waveformData:"get_waveformData",get_isPlaying:"get_isPlaying",get_paused:"get_paused",set_muted:"set_muted"}) }); var funkin_audio_SoundGroup = function() { flixel_group_FlxTypedGroup.call(this); }; $hxClasses["funkin.audio.SoundGroup"] = funkin_audio_SoundGroup; funkin_audio_SoundGroup.__name__ = "funkin.audio.SoundGroup"; funkin_audio_SoundGroup.build = function(song,files) { var result = new funkin_audio_SoundGroup(); if(files == null) { result.add(new funkin_audio_FunkinSound()); return result; } var _g = 0; while(_g < files.length) { var sndFile = files[_g]; ++_g; var snd = funkin_audio_FunkinSound.load(funkin_Paths.voices(song,"" + sndFile)); result.add(snd); } return result; }; funkin_audio_SoundGroup.__super__ = flixel_group_FlxTypedGroup; funkin_audio_SoundGroup.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ checkSyncError: function(targetTime) { var error = 0; this.forEachAlive(function(snd) { if(targetTime == null) { targetTime = snd._time; } else { var diff = snd._time - targetTime; if(Math.abs(diff) > Math.abs(error)) { error = diff; } } }); return error; } ,add: function(sound) { var _gthis = this; var result = flixel_group_FlxTypedGroup.prototype.add.call(this,sound); if(result == null) { return null; } result.set_time(this.get_time()); result.onComplete = function() { _gthis.onComplete(); }; result.set_pitch(this.get_pitch()); result.set_volume(this.get_volume()); return result; } ,onComplete: function() { } ,pause: function() { this.forEachAlive(function(sound) { sound.pause(); }); } ,play: function(forceRestart,startTime,endTime) { if(startTime == null) { startTime = 0.0; } if(forceRestart == null) { forceRestart = false; } this.forEachAlive(function(sound) { sound.play(forceRestart,startTime,endTime); }); } ,resume: function() { this.forEachAlive(function(sound) { sound.resume(); }); } ,fadeIn: function(duration,from,to,onComplete) { if(to == null) { to = 1.0; } if(from == null) { from = 0.0; } this.forEachAlive(function(sound) { var Duration = duration; var From = from; var To = to; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(sound._channel == null) { sound.play(); } if(sound.fadeTween != null) { sound.fadeTween.cancel(); } sound.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : onComplete},$bind(sound,sound.volumeTween)); }); } ,fadeOut: function(duration,to,onComplete) { if(to == null) { to = 0.0; } this.forEachAlive(function(sound) { var Duration = duration; var To = to; if(To == null) { To = 0; } if(Duration == null) { Duration = 1; } if(sound.fadeTween != null) { sound.fadeTween.cancel(); } sound.fadeTween = flixel_tweens_FlxTween.num(sound._volume,To,Duration,{ onComplete : onComplete},$bind(sound,sound.volumeTween)); }); } ,stop: function() { if(this.members != null) { this.forEachAlive(function(sound) { sound.cleanup(sound.autoDestroy,true); }); } } ,destroy: function() { this.stop(); flixel_group_FlxTypedGroup.prototype.destroy.call(this); } ,clear: function() { this.stop(); flixel_group_FlxTypedGroup.prototype.clear.call(this); } ,get_time: function() { if(this.getFirstAlive() != null) { return this.getFirstAlive()._time; } else { return 0; } } ,set_time: function(time) { this.forEachAlive(function(snd) { snd.set_time(time); }); return time; } ,get_playing: function() { if(this.getFirstAlive() != null) { return this.getFirstAlive()._channel != null; } else { return false; } } ,get_volume: function() { if(this.getFirstAlive() != null) { return this.getFirstAlive()._volume; } else { return 1; } } ,set_volume: function(volume) { this.forEachAlive(function(snd) { snd.set_volume(volume); }); return volume; } ,get_muted: function() { if(this.getFirstAlive() != null) { return this.getFirstAlive().muted; } else { return false; } } ,set_muted: function(muted) { this.forEachAlive(function(snd) { snd.set_muted(muted); }); return muted; } ,get_pitch: function() { if(this.getFirstAlive() != null) { return this.getFirstAlive()._pitch; } else { return 1; } } ,set_pitch: function(val) { haxe_Log.trace("Setting audio pitch to " + val,{ fileName : "source/funkin/audio/SoundGroup.hx", lineNumber : 263, className : "funkin.audio.SoundGroup", methodName : "set_pitch"}); this.forEachAlive(function(snd) { snd.set_pitch(val); }); return val; } ,__class__: funkin_audio_SoundGroup ,__properties__: $extend(flixel_group_FlxTypedGroup.prototype.__properties__,{get_playing:"get_playing",set_pitch:"set_pitch",get_pitch:"get_pitch",set_muted:"set_muted",get_muted:"get_muted",set_volume:"set_volume",get_volume:"get_volume",set_time:"set_time",get_time:"get_time"}) }); var funkin_audio_VoicesGroup = function() { this.opponentVoicesOffset = 0.0; this.playerVoicesOffset = 0.0; this.opponentVolume = 1.0; this.playerVolume = 1.0; funkin_audio_SoundGroup.call(this); this.playerVoices = new flixel_group_FlxTypedGroup(); this.opponentVoices = new flixel_group_FlxTypedGroup(); }; $hxClasses["funkin.audio.VoicesGroup"] = funkin_audio_VoicesGroup; funkin_audio_VoicesGroup.__name__ = "funkin.audio.VoicesGroup"; funkin_audio_VoicesGroup.__super__ = funkin_audio_SoundGroup; funkin_audio_VoicesGroup.prototype = $extend(funkin_audio_SoundGroup.prototype,{ playerVoices: null ,opponentVoices: null ,playerVolume: null ,opponentVolume: null ,playerVoicesOffset: null ,opponentVoicesOffset: null ,addPlayerVoice: function(sound) { funkin_audio_SoundGroup.prototype.add.call(this,sound); this.playerVoices.add(sound); } ,set_playerVolume: function(volume) { this.playerVoices.forEachAlive(function(voice) { voice.set_volume(volume); }); return this.playerVolume = volume; } ,set_time: function(time) { var _gthis = this; this.forEachAlive(function(snd) { snd.set_time(time); }); this.playerVoices.forEachAlive(function(voice) { voice.set_time(voice._time - _gthis.playerVoicesOffset); }); this.opponentVoices.forEachAlive(function(voice) { voice.set_time(voice._time - _gthis.opponentVoicesOffset); }); return time; } ,set_playerVoicesOffset: function(offset) { var _gthis = this; this.playerVoices.forEachAlive(function(voice) { voice.set_time(voice._time + _gthis.playerVoicesOffset); voice.set_time(voice._time - offset); }); return this.playerVoicesOffset = offset; } ,set_opponentVoicesOffset: function(offset) { var _gthis = this; this.opponentVoices.forEachAlive(function(voice) { voice.set_time(voice._time + _gthis.opponentVoicesOffset); voice.set_time(voice._time - offset); }); return this.opponentVoicesOffset = offset; } ,addOpponentVoice: function(sound) { funkin_audio_SoundGroup.prototype.add.call(this,sound); this.opponentVoices.add(sound); } ,set_opponentVolume: function(volume) { this.opponentVoices.forEachAlive(function(voice) { voice.set_volume(volume); }); return this.opponentVolume = volume; } ,getPlayerVoice: function(index) { if(index == null) { index = 0; } return this.playerVoices.members[index]; } ,getOpponentVoice: function(index) { if(index == null) { index = 0; } return this.opponentVoices.members[index]; } ,getPlayerVoiceWaveform: function() { if(this.playerVoices.members.length == 0) { return null; } return this.playerVoices.members[0].get_waveformData(); } ,getOpponentVoiceWaveform: function() { if(this.opponentVoices.members.length == 0) { return null; } return this.opponentVoices.members[0].get_waveformData(); } ,getPlayerVoiceLength: function() { if(this.playerVoices.members.length == 0) { return 0.0; } return this.playerVoices.members[0]._length; } ,getOpponentVoiceLength: function() { if(this.opponentVoices.members.length == 0) { return 0.0; } return this.opponentVoices.members[0]._length; } ,clear: function() { this.playerVoices.clear(); this.opponentVoices.clear(); funkin_audio_SoundGroup.prototype.clear.call(this); } ,destroy: function() { if(this.playerVoices != null) { this.playerVoices.destroy(); this.playerVoices = null; } if(this.opponentVoices != null) { this.opponentVoices.destroy(); this.opponentVoices = null; } funkin_audio_SoundGroup.prototype.destroy.call(this); } ,__class__: funkin_audio_VoicesGroup ,__properties__: $extend(funkin_audio_SoundGroup.prototype.__properties__,{set_opponentVoicesOffset:"set_opponentVoicesOffset",set_playerVoicesOffset:"set_playerVoicesOffset",set_opponentVolume:"set_opponentVolume",set_playerVolume:"set_playerVolume"}) }); var funkin_audio_visualize_ABot = function() { flixel_group_FlxTypedSpriteGroup.call(this); }; $hxClasses["funkin.audio.visualize.ABot"] = funkin_audio_visualize_ABot; funkin_audio_visualize_ABot.__name__ = "funkin.audio.visualize.ABot"; funkin_audio_visualize_ABot.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_audio_visualize_ABot.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ __class__: funkin_audio_visualize_ABot }); var funkin_audio_visualize_ABotVis = function(snd) { this.visTimeMax = 0.0333333333333333329; this.visTimer = -1; this.volumes = []; flixel_group_FlxTypedSpriteGroup.call(this); this.snd = snd; var visFrms = funkin_Paths.getSparrowAtlas("aBotViz"); var positionX = [0,59,56,66,54,52,51]; var positionY = [0,-8,-3.5,-0.4,0.5,4.7,7]; var _g = 1; while(_g < 8) { var lol = _g++; this.volumes.push(0.0); var sum = function(num,total) { total += num; return total; }; var posX = Lambda.fold(positionX.slice(0,lol),sum,0); var posY = Lambda.fold(positionY.slice(0,lol),sum,0); var viz = new flixel_FlxSprite(posX,posY); viz.set_frames(visFrms); this.add(viz); var visStr = "viz"; viz.animation.addByPrefix("VIZ",visStr + lol,0); viz.animation.play("VIZ",false,false,6); } }; $hxClasses["funkin.audio.visualize.ABotVis"] = funkin_audio_visualize_ABotVis; funkin_audio_visualize_ABotVis.__name__ = "funkin.audio.visualize.ABotVis"; funkin_audio_visualize_ABotVis.min = function(x,y) { if(x > y) { return y; } else { return x; } }; funkin_audio_visualize_ABotVis.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_audio_visualize_ABotVis.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ analyzer: null ,volumes: null ,snd: null ,initAnalyzer: function() { this.analyzer = new funkin_vis_dsp_SpectralAnalyzer(this.snd._channel.__source,7,0.1,40); } ,visTimer: null ,visTimeMax: null ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,draw: function() { if(this.analyzer != null) { this.drawFFT(); } flixel_group_FlxTypedSpriteGroup.prototype.draw.call(this); } ,drawFFT: function() { var levels = this.analyzer.getLevels(); var _g = 0; var x = this.group.members.length; var y = levels.length; var _g1 = x > y ? y : x; while(_g < _g1) { var i = _g++; var animFrame = Math.round(levels[i].value * 5); animFrame = Math.floor(Math.min(5,animFrame)); animFrame = Math.floor(Math.max(0,animFrame)); animFrame = Math.abs(animFrame - 5) | 0; this.group.members[i].animation._curAnim.set_curFrame(animFrame); } } ,__class__: funkin_audio_visualize_ABotVis }); var funkin_graphics_rendering_MeshRender = function(x,y,col) { if(col == null) { col = -1; } this.index_count = 0; this.vertex_count = 0; flixel_FlxStrip.call(this,x,y); this.makeGraphic(1,1,col); }; $hxClasses["funkin.graphics.rendering.MeshRender"] = funkin_graphics_rendering_MeshRender; funkin_graphics_rendering_MeshRender.__name__ = "funkin.graphics.rendering.MeshRender"; funkin_graphics_rendering_MeshRender.__super__ = flixel_FlxStrip; funkin_graphics_rendering_MeshRender.prototype = $extend(flixel_FlxStrip.prototype,{ vertex_count: null ,index_count: null ,build_vertex: function(x,y,u,v) { if(v == null) { v = 0; } if(u == null) { u = 0; } var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,x); this.vertices.set(pos + 1,y); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; return index; } ,add_tri: function(a,b,c) { this.indices.set(this.index_count,a); this.indices.set(this.index_count + 1,b); this.indices.set(this.index_count + 2,c); this.index_count += 3; } ,build_tri: function(ax,ay,bx,by,cx,cy,au,av,bu,bv,cu,cv) { if(cv == null) { cv = 0; } if(cu == null) { cu = 0; } if(bv == null) { bv = 0; } if(bu == null) { bu = 0; } if(av == null) { av = 0; } if(au == null) { au = 0; } var u = au; var v = av; if(v == null) { v = 0; } if(u == null) { u = 0; } var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,ax); this.vertices.set(pos + 1,ay); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; var u = bu; var v = bv; if(v == null) { v = 0; } if(u == null) { u = 0; } var index1 = this.vertex_count; var pos = index1 << 1; this.vertices.set(pos,bx); this.vertices.set(pos + 1,by); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; var u = cu; var v = cv; if(v == null) { v = 0; } if(u == null) { u = 0; } var index2 = this.vertex_count; var pos = index2 << 1; this.vertices.set(pos,cx); this.vertices.set(pos + 1,cy); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; this.add_tri(index,index1,index2); } ,add_quad: function(a,b,c,d) { this.add_tri(a,b,c); this.add_tri(a,c,d); } ,build_quad: function(ax,ay,bx,by,cx,cy,dx,dy,au,av,bu,bv,cu,cv,du,dv) { if(dv == null) { dv = 0; } if(du == null) { du = 0; } if(cv == null) { cv = 0; } if(cu == null) { cu = 0; } if(bv == null) { bv = 0; } if(bu == null) { bu = 0; } if(av == null) { av = 0; } if(au == null) { au = 0; } var u = bu; var v = bv; if(v == null) { v = 0; } if(u == null) { u = 0; } var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,bx); this.vertices.set(pos + 1,by); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; var b = index; var u = au; var v = av; if(v == null) { v = 0; } if(u == null) { u = 0; } var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,ax); this.vertices.set(pos + 1,ay); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; var a = index; var u = cu; var v = cv; if(v == null) { v = 0; } if(u == null) { u = 0; } var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,cx); this.vertices.set(pos + 1,cy); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; var c = index; var u = du; var v = dv; if(v == null) { v = 0; } if(u == null) { u = 0; } var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,dx); this.vertices.set(pos + 1,dy); this.uvtData.set(pos,u); this.uvtData.set(pos + 1,v); this.vertex_count++; var d = index; this.add_tri(a,b,c); this.add_tri(a,c,d); } ,clear: function() { this.vertices.set_length(0); this.indices.set_length(0); this.uvtData.set_length(0); this.colors.set_length(0); this.vertex_count = 0; this.index_count = 0; } ,__class__: funkin_graphics_rendering_MeshRender }); var funkin_audio_visualize_PolygonSpectogram = function(daSound,col,height,detail) { if(detail == null) { detail = 1; } if(height == null) { height = 720; } if(col == null) { col = -1; } this.curTime = 0; this.waveAmplitude = 100; this.thickness = 2; this.detail = 1; this.setBuffer = false; this.numSamples = 0; this.realtimeStartOffset = 0; this.realtimeVisLenght = 0.2; this.daHeight = flixel_FlxG.height; this.visType = funkin_audio_visualize_VISTYPE.UPDATED; funkin_graphics_rendering_MeshRender.call(this,0,0,col); if(daSound != null) { this.setSound(daSound); } if(height != null) { this.daHeight = height; } this.detail = detail; }; $hxClasses["funkin.audio.visualize.PolygonSpectogram"] = funkin_audio_visualize_PolygonSpectogram; funkin_audio_visualize_PolygonSpectogram.__name__ = "funkin.audio.visualize.PolygonSpectogram"; funkin_audio_visualize_PolygonSpectogram.__super__ = funkin_graphics_rendering_MeshRender; funkin_audio_visualize_PolygonSpectogram.prototype = $extend(funkin_graphics_rendering_MeshRender.prototype,{ sampleRate: null ,vis: null ,visType: null ,daHeight: null ,realtimeVisLenght: null ,realtimeStartOffset: null ,numSamples: null ,setBuffer: null ,audioData: null ,detail: null ,thickness: null ,waveAmplitude: null ,setSound: function(daSound) { this.vis = new funkin_audio_visualize_VisShit(daSound); } ,update: function(elapsed) { funkin_graphics_rendering_MeshRender.prototype.update.call(this,elapsed); if(this.visType._hx_index == 1) { this.realtimeVis(); } } ,prevAudioData: null ,generateSection: function(start,seconds) { if(seconds == null) { seconds = 1; } if(start == null) { start = 0; } this.checkAndSetBuffer(); if(this.setBuffer) { this.clear(); start = Math.max(start,0); var samplesToGen = this.sampleRate * seconds | 0; if(samplesToGen == 0) { return; } var startSample = flixel_math_FlxMath.remapToRange(start,0,this.vis.snd._length,0,this.numSamples) | 0; if(startSample < 0 || startSample >= this.numSamples) { return; } if(samplesToGen <= 0 || startSample + samplesToGen > this.numSamples) { samplesToGen = this.numSamples - startSample; } var prevPoint = new flixel_math_FlxBasePoint(0,0); var funnyPixels = this.daHeight * this.detail | 0; if(this.prevAudioData == this.audioData.subarray(startSample,startSample + samplesToGen)) { return; } this.prevAudioData = this.audioData.subarray(startSample,samplesToGen); var _g = 0; var _g1 = funnyPixels; while(_g < _g1) { var i = _g++; var sampleApprox = flixel_math_FlxMath.remapToRange(i,0,funnyPixels,startSample,startSample + samplesToGen) | 0; var curAud = funkin_audio_visualize_VisShit.getCurAud(this.audioData,sampleApprox); var coolPoint = new flixel_math_FlxBasePoint(0,0); coolPoint.set_x(curAud.balanced * this.waveAmplitude); coolPoint.set_y(i / funnyPixels * this.daHeight); this.build_quad(prevPoint.x,prevPoint.y,prevPoint.x + this.thickness,prevPoint.y,coolPoint.x,coolPoint.y,coolPoint.x + this.thickness,coolPoint.y + this.thickness); prevPoint.set_x(coolPoint.x); prevPoint.set_y(coolPoint.y); } } } ,curTime: null ,realtimeVis: function() { if(this.vis.snd != null) { if(this.curTime != this.vis.snd._time) { if(this.vis.snd._channel != null) { this.curTime = this.vis.snd._time; } else if(Math.abs(this.curTime - this.vis.snd._time) > 10) { var a = this.curTime; this.curTime = a + 0.5 * (this.vis.snd._time - a); } this.curTime = this.vis.snd._time; if(this.vis.snd._time < this.vis.snd._length - this.realtimeVisLenght) { this.generateSection(this.vis.snd._time + this.realtimeStartOffset,this.realtimeVisLenght); } } } } ,checkAndSetBuffer: function() { this.vis.checkAndSetBuffer(); if(this.vis.setBuffer) { this.audioData = this.vis.audioData; this.sampleRate = this.vis.sampleRate; this.setBuffer = this.vis.setBuffer; this.numSamples = this.audioData.length / 2 | 0; } } ,__class__: funkin_audio_visualize_PolygonSpectogram }); var funkin_audio_visualize_VISTYPE = $hxEnums["funkin.audio.visualize.VISTYPE"] = { __ename__:"funkin.audio.visualize.VISTYPE",__constructs__:null ,STATIC: {_hx_name:"STATIC",_hx_index:0,__enum__:"funkin.audio.visualize.VISTYPE",toString:$estr} ,UPDATED: {_hx_name:"UPDATED",_hx_index:1,__enum__:"funkin.audio.visualize.VISTYPE",toString:$estr} ,FREQUENCIES: {_hx_name:"FREQUENCIES",_hx_index:2,__enum__:"funkin.audio.visualize.VISTYPE",toString:$estr} }; funkin_audio_visualize_VISTYPE.__constructs__ = [funkin_audio_visualize_VISTYPE.STATIC,funkin_audio_visualize_VISTYPE.UPDATED,funkin_audio_visualize_VISTYPE.FREQUENCIES]; funkin_audio_visualize_VISTYPE.__empty_constructs__ = [funkin_audio_visualize_VISTYPE.STATIC,funkin_audio_visualize_VISTYPE.UPDATED,funkin_audio_visualize_VISTYPE.FREQUENCIES]; var funkin_audio_visualize_PolygonVisGroup = function() { flixel_group_FlxTypedGroup.call(this); this.playerVis = new funkin_audio_visualize_PolygonSpectogram(); this.opponentVis = new funkin_audio_visualize_PolygonSpectogram(); }; $hxClasses["funkin.audio.visualize.PolygonVisGroup"] = funkin_audio_visualize_PolygonVisGroup; funkin_audio_visualize_PolygonVisGroup.__name__ = "funkin.audio.visualize.PolygonVisGroup"; funkin_audio_visualize_PolygonVisGroup.__super__ = flixel_group_FlxTypedGroup; funkin_audio_visualize_PolygonVisGroup.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ playerVis: null ,opponentVis: null ,instVis: null ,addPlayerVis: function(visSnd) { var vis = new funkin_audio_visualize_PolygonSpectogram(visSnd); flixel_group_FlxTypedGroup.prototype.add.call(this,vis); this.playerVis = vis; } ,addOpponentVis: function(visSnd) { var vis = new funkin_audio_visualize_PolygonSpectogram(visSnd); flixel_group_FlxTypedGroup.prototype.add.call(this,vis); this.opponentVis = vis; } ,addInstVis: function(visSnd) { var vis = new funkin_audio_visualize_PolygonSpectogram(visSnd); flixel_group_FlxTypedGroup.prototype.add.call(this,vis); this.instVis = vis; } ,clearPlayerVis: function() { if(this.playerVis != null) { this.remove(this.playerVis); this.playerVis.destroy(); this.playerVis = null; } } ,clearOpponentVis: function() { if(this.opponentVis != null) { this.remove(this.opponentVis); this.opponentVis.destroy(); this.opponentVis = null; } } ,clearInstVis: function() { if(this.instVis != null) { this.remove(this.instVis); this.instVis.destroy(); this.instVis = null; } } ,clearAllVis: function() { this.clearPlayerVis(); this.clearOpponentVis(); this.clearInstVis(); } ,add: function(vis) { var result = flixel_group_FlxTypedGroup.prototype.add.call(this,vis); return result; } ,destroy: function() { this.playerVis.destroy(); this.opponentVis.destroy(); flixel_group_FlxTypedGroup.prototype.destroy.call(this); } ,__class__: funkin_audio_visualize_PolygonVisGroup }); var funkin_audio_visualize_SpectogramSprite = function(daSound,col,height,amnt) { if(amnt == null) { amnt = 500; } if(height == null) { height = 720; } if(col == null) { col = -1; } this.curTime = 0; this.frameCounter = 0; this.doAnim = false; this.wavOptimiz = 10; this.numSamples = 0; this.setBuffer = false; this.daHeight = flixel_FlxG.height; this.col = -1; this.visType = funkin_audio_visualize_VISTYPE.UPDATED; this.lengthOfShit = 500; flixel_group_FlxTypedSpriteGroup.call(this); this.vis = new funkin_audio_visualize_VisShit(daSound); this.col = col; this.daHeight = height; this.lengthOfShit = amnt; this.regenLineShit(); }; $hxClasses["funkin.audio.visualize.SpectogramSprite"] = funkin_audio_visualize_SpectogramSprite; funkin_audio_visualize_SpectogramSprite.__name__ = "funkin.audio.visualize.SpectogramSprite"; funkin_audio_visualize_SpectogramSprite.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_audio_visualize_SpectogramSprite.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ sampleRate: null ,lengthOfShit: null ,visType: null ,col: null ,daHeight: null ,vis: null ,regenLineShit: function() { var _g = 0; var _g1 = this.lengthOfShit; while(_g < _g1) { var i = _g++; var lineShit = new flixel_FlxSprite(100,i / this.lengthOfShit * this.daHeight).makeGraphic(1,1,this.col); lineShit.set_active(false); lineShit.ID = i; this.add(lineShit); } } ,setBuffer: null ,audioData: null ,numSamples: null ,wavOptimiz: null ,update: function(elapsed) { var _gthis = this; switch(this.visType._hx_index) { case 1: this.updateVisulizer(); break; case 2: this.updateFFT(); break; default: } this.group.forEach(function(spr) { spr.set_visible(spr.ID % _gthis.wavOptimiz == 0); },false); flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,generateSection: function(start,seconds) { if(seconds == null) { seconds = 1; } if(start == null) { start = 0; } this.checkAndSetBuffer(); if(this.setBuffer) { var samplesToGen = this.sampleRate * seconds | 0; var startingSample = flixel_math_FlxMath.remapToRange(start,0,this.vis.snd._length,0,this.numSamples) | 0; var prevLine = new flixel_math_FlxBasePoint(0,0); var _g = 0; var _g1 = this.group.members.length; while(_g < _g1) { var i = _g++; var sampleApprox = flixel_math_FlxMath.remapToRange(i,0,this.group.members.length,startingSample,startingSample + samplesToGen) | 0; var curAud = funkin_audio_visualize_VisShit.getCurAud(this.audioData,sampleApprox); var swagheight = 200; this.group.members[i].set_x(prevLine.x); this.group.members[i].set_y(prevLine.y); prevLine.set_x(curAud.balanced * swagheight / 2 + swagheight / 2 + this.x); prevLine.set_y(i / this.group.members.length * this.daHeight + this.y); var x = prevLine.x - this.group.members[i].x; var y = prevLine.y - this.group.members[i].y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var line = point; this.group.members[i].setGraphicSize(Math.max(Math.sqrt(line.x * line.x + line.y * line.y),1) | 0,1); this.group.members[i].set_angle(flixel_math_FlxPoint.get_radians(line) * (180 / Math.PI)); } this.wavOptimiz = 1; } } ,checkAndSetBuffer: function() { this.vis.checkAndSetBuffer(); if(this.vis.setBuffer) { this.audioData = this.vis.audioData; this.sampleRate = this.vis.sampleRate; this.setBuffer = this.vis.setBuffer; this.numSamples = this.audioData.length / 2 | 0; } } ,doAnim: null ,frameCounter: null ,updateFFT: function() { if(this.vis.snd != null) { var remappedShit = 0; this.checkAndSetBuffer(); if(!this.doAnim) { this.frameCounter++; if(this.frameCounter >= 0) { this.frameCounter = 0; this.doAnim = true; } } if(this.setBuffer && this.doAnim) { this.doAnim = false; if(this.vis.snd._channel != null) { remappedShit = flixel_math_FlxMath.remapToRange(this.vis.snd._time,0,this.vis.snd._length,0,this.numSamples) | 0; } else { remappedShit = flixel_math_FlxMath.remapToRange(funkin_Conductor.get_instance().songPosition,0,this.vis.snd._length,0,this.numSamples) | 0; } var fftSamples = []; var i = remappedShit; var _g = remappedShit; var _g1 = remappedShit + 306; while(_g < _g1) { var sample = _g++; var curAud = funkin_audio_visualize_VisShit.getCurAud(this.audioData,i); i += 2; fftSamples.push(curAud.balanced); } var freqShit = this.vis.funnyFFT(fftSamples); var prevLine = new flixel_math_FlxBasePoint(0,0); var swagheight = 200; var _g = 0; var _g1 = this.group.members.length; while(_g < _g1) { var i = _g++; var powedShit = flixel_math_FlxMath.remapToRange(i,0,this.group.members.length,0,4); var hzPicker = Math.pow(10,powedShit); var remappedFreq = flixel_math_FlxMath.remapToRange(hzPicker,0,10000,0,freqShit[0].length - 1) | 0; this.group.members[i].set_x(prevLine.x); this.group.members[i].set_y(prevLine.y); var freqPower = 0; var _g2 = 0; var _g3 = freqShit.length; while(_g2 < _g3) { var pow = _g2++; freqPower += freqShit[pow][remappedFreq]; } freqPower /= freqShit.length; var freqIDK = flixel_math_FlxMath.remapToRange(freqPower,0,0.000005,0,50); prevLine.set_x(freqIDK * swagheight / 2 + swagheight / 2 + this.x); prevLine.set_y(i / this.group.members.length * this.daHeight + this.y); var x = prevLine.x - this.group.members[i].x; var y = prevLine.y - this.group.members[i].y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var line = point; } } } } ,curTime: null ,updateVisulizer: function() { if(this.vis.snd != null) { var remappedShit = 0; this.checkAndSetBuffer(); if(this.setBuffer) { if(this.vis.snd._channel != null) { remappedShit = flixel_math_FlxMath.remapToRange(this.vis.snd._time,0,this.vis.snd._length,0,this.numSamples) | 0; } else { if(this.curTime == funkin_Conductor.get_instance().songPosition) { this.wavOptimiz = 3; return; } this.curTime = funkin_Conductor.get_instance().songPosition; remappedShit = flixel_math_FlxMath.remapToRange(funkin_Conductor.get_instance().songPosition,0,this.vis.snd._length,0,this.numSamples) | 0; } this.wavOptimiz = 8; var i = remappedShit; var prevLine = new flixel_math_FlxBasePoint(0,0); var swagheight = 200; var _g = remappedShit; var _g1 = remappedShit + this.lengthOfShit; while(_g < _g1) { var sample = _g++; var curAud = funkin_audio_visualize_VisShit.getCurAud(this.audioData,i); i += 2; var remappedSample = flixel_math_FlxMath.remapToRange(sample,remappedShit,remappedShit + this.lengthOfShit,0,this.lengthOfShit - 1); this.group.members[remappedSample | 0].set_x(prevLine.x); this.group.members[remappedSample | 0].set_y(prevLine.y); prevLine.set_x(curAud.balanced * swagheight / 2 + swagheight / 2 + this.x); prevLine.set_y((remappedSample | 0) / this.lengthOfShit * this.daHeight + this.y); var x = prevLine.x - this.group.members[remappedSample | 0].x; var y = prevLine.y - this.group.members[remappedSample | 0].y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var line = point; this.group.members[remappedSample | 0].setGraphicSize(Math.max(Math.sqrt(line.x * line.x + line.y * line.y),1) | 0,1); this.group.members[remappedSample | 0].set_angle(flixel_math_FlxPoint.get_radians(line) * (180 / Math.PI)); } } } } ,__class__: funkin_audio_visualize_SpectogramSprite }); var funkin_audio_visualize_VisShit = function(snd) { this.numSamples = 0; this.sampleRate = 44100; this.setBuffer = false; this.snd = snd; }; $hxClasses["funkin.audio.visualize.VisShit"] = funkin_audio_visualize_VisShit; funkin_audio_visualize_VisShit.__name__ = "funkin.audio.visualize.VisShit"; funkin_audio_visualize_VisShit.getCurAud = function(aud,index) { var left = aud[index] / 32767; var right = aud[index + 2] / 32767; var balanced = (left + right) / 2; var funny = { left : left, right : right, balanced : balanced}; return funny; }; funkin_audio_visualize_VisShit.prototype = { snd: null ,setBuffer: null ,audioData: null ,sampleRate: null ,numSamples: null ,funnyFFT: function(samples,skipped) { if(skipped == null) { skipped = 1; } var fs = 44100 / skipped; var fftN = 1024; var halfN = fftN / 2 | 0; var overlap = 0.5; var hop = fftN * (1 - overlap) | 0; var a0 = 0.5; var $window = function(n) { return a0 - (1 - a0) * Math.cos(2 * Math.PI * n / fftN); }; var binSize = fs / fftN; var indexToFreq = function(k) { var powShit = flixel_math_FlxMath.remapToRange(k,0,halfN,0,funkin_util_MathUtil.logBase(10,halfN)); return Math.pow(10,powShit); }; var minFreq = 20.70; var maxFreq = 4000.01; var melodicBandPass = function(k,s) { var freq = indexToFreq(k); var filter = freq > minFreq - binSize && freq < maxFreq + binSize ? 1 : 0; return s; }; var freqOutput = []; var c = 0; var indexOfArray = 0; while(c < samples.length) { var _g = []; var _g1 = 0; var _g2 = fftN; while(_g1 < _g2) { var n = _g1++; _g.push((c + n < samples.length ? samples[c + n] : 0.0) * $window(n)); } var chunk = _g; var _this = funkin_audio_visualize_dsp_FFT.rfft(chunk); var result = new Array(_this.length); var _g3 = 0; var _g4 = _this.length; while(_g3 < _g4) { var i = _g3++; var z = _this[i]; var k = 1 / fftN; var this_real = z.real * k; var this_imag = z.imag * k; result[i] = Math.sqrt(this_real * this_real + this_imag * this_imag); } var i1 = 0; var _g5 = []; var x = $getIterator(result); while(x.hasNext()) { var x1 = x.next(); _g5.push(melodicBandPass(i1++,x1)); } var freqs = _g5; freqOutput.push([]); var _g_current = 0; var _g_array = freqs; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var k1 = _g_key; var s = _g_value; var time = c / fs; var freq = indexToFreq(k1); var power = s * s; var _this1 = flixel_FlxG.keys.justPressed; if(_this1.keyManager.checkStatusUnsafe(73,_this1.status)) { haxe_Log.trace(k1,{ fileName : "source/funkin/audio/visualize/VisShit.hx", lineNumber : 83, className : "funkin.audio.visualize.VisShit", methodName : "funnyFFT"}); haxe_Log.trace("" + time + ";" + freq + ";" + power,null); } if(freq < maxFreq) { freqOutput[indexOfArray].push(power); } } ++indexOfArray; c += hop; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(67,_this.status)) { haxe_Log.trace(freqOutput.length,{ fileName : "source/funkin/audio/visualize/VisShit.hx", lineNumber : 96, className : "funkin.audio.visualize.VisShit", methodName : "funnyFFT"}); } return freqOutput; } ,checkAndSetBuffer: function() { if(this.snd != null && this.snd._channel != null) { if(!this.setBuffer) { var buf = this.snd._channel.__source.buffer; this.audioData = buf.data; this.sampleRate = buf.sampleRate; haxe_Log.trace("got audio buffer shit",{ fileName : "source/funkin/audio/visualize/VisShit.hx", lineNumber : 126, className : "funkin.audio.visualize.VisShit", methodName : "checkAndSetBuffer"}); haxe_Log.trace(this.sampleRate,{ fileName : "source/funkin/audio/visualize/VisShit.hx", lineNumber : 127, className : "funkin.audio.visualize.VisShit", methodName : "checkAndSetBuffer"}); haxe_Log.trace(buf.bitsPerSample,{ fileName : "source/funkin/audio/visualize/VisShit.hx", lineNumber : 128, className : "funkin.audio.visualize.VisShit", methodName : "checkAndSetBuffer"}); this.setBuffer = true; this.numSamples = this.audioData.length / 2 | 0; } } } ,__class__: funkin_audio_visualize_VisShit }; var funkin_audio_visualize_dsp_Complex = {}; funkin_audio_visualize_dsp_Complex.__properties__ = {get_magnitude:"get_magnitude",get_angle:"get_angle"}; funkin_audio_visualize_dsp_Complex._new = function(real,imag) { return { real : real, imag : imag}; }; funkin_audio_visualize_dsp_Complex.fromReal = function(r) { return { real : r, imag : 0}; }; funkin_audio_visualize_dsp_Complex.get_angle = function(this1) { return Math.atan2(this1.imag,this1.real); }; funkin_audio_visualize_dsp_Complex.get_magnitude = function(this1) { return Math.sqrt(this1.real * this1.real + this1.imag * this1.imag); }; funkin_audio_visualize_dsp_Complex.add = function(this1,rhs) { return { real : this1.real + rhs.real, imag : this1.imag + rhs.imag}; }; funkin_audio_visualize_dsp_Complex.sub = function(this1,rhs) { return { real : this1.real - rhs.real, imag : this1.imag - rhs.imag}; }; funkin_audio_visualize_dsp_Complex.mult = function(this1,rhs) { return { real : this1.real * rhs.real - this1.imag * rhs.imag, imag : this1.real * rhs.imag + this1.imag * rhs.real}; }; funkin_audio_visualize_dsp_Complex.conj = function(this1) { return { real : this1.real, imag : -this1.imag}; }; funkin_audio_visualize_dsp_Complex.scale = function(this1,k) { return { real : this1.real * k, imag : this1.imag * k}; }; funkin_audio_visualize_dsp_Complex.copy = function(this1) { return { real : this1.real, imag : this1.imag}; }; funkin_audio_visualize_dsp_Complex.exp = function(w) { return { real : Math.cos(w), imag : Math.sin(w)}; }; var funkin_audio_visualize_dsp_FFT = function() { }; $hxClasses["funkin.audio.visualize.dsp.FFT"] = funkin_audio_visualize_dsp_FFT; funkin_audio_visualize_dsp_FFT.__name__ = "funkin.audio.visualize.dsp.FFT"; funkin_audio_visualize_dsp_FFT.fft = function(input) { return funkin_audio_visualize_dsp_FFT.do_fft(input,false); }; funkin_audio_visualize_dsp_FFT.rfft = function(input) { var f = funkin_audio_visualize_dsp_Complex.fromReal; var result = new Array(input.length); var _g = 0; var _g1 = input.length; while(_g < _g1) { var i = _g++; result[i] = f(input[i]); } var s = funkin_audio_visualize_dsp_FFT.fft(result); return s.slice(0,(s.length / 2 | 0) + 1); }; funkin_audio_visualize_dsp_FFT.ifft = function(input) { return funkin_audio_visualize_dsp_FFT.do_fft(input,true); }; funkin_audio_visualize_dsp_FFT.do_fft = function(input,inverse) { var n = funkin_audio_visualize_dsp_FFT.nextPow2(input.length); var _g = []; var _g1 = 0; var _g2 = n; while(_g1 < _g2) { var i = _g1++; if(i < input.length) { _g.push(input[i]); } else { _g.push(funkin_audio_visualize_dsp_Complex.zero); } } var ts = _g; var _g = []; var _g1 = 0; var _g2 = n; while(_g1 < _g2) { var _ = _g1++; _g.push(funkin_audio_visualize_dsp_Complex.zero); } var fs = _g; funkin_audio_visualize_dsp_FFT.ditfft2(ts,0,fs,0,n,1,inverse); if(inverse) { var result = new Array(fs.length); var _g = 0; var _g1 = fs.length; while(_g < _g1) { var i = _g++; var z = fs[i]; var k = 1 / n; result[i] = { real : z.real * k, imag : z.imag * k}; } return result; } else { return fs; } }; funkin_audio_visualize_dsp_FFT.ditfft2 = function(time,t,freq,f,n,step,inverse) { if(n == 1) { var this1 = time[t]; freq[f] = { real : this1.real, imag : this1.imag}; } else { var halfLen = n / 2 | 0; funkin_audio_visualize_dsp_FFT.ditfft2(time,t,freq,f,halfLen,step * 2,inverse); funkin_audio_visualize_dsp_FFT.ditfft2(time,t + step,freq,f + halfLen,halfLen,step * 2,inverse); var _g = 0; var _g1 = halfLen; while(_g < _g1) { var k = _g++; var w = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle_real = Math.cos(w); var twiddle_imag = Math.sin(w); var this1 = freq[f + k]; var even_real = this1.real; var even_imag = this1.imag; var this2 = freq[f + k + halfLen]; var odd_real = this2.real; var odd_imag = this2.imag; var rhs_real = twiddle_real * odd_real - twiddle_imag * odd_imag; var rhs_imag = twiddle_real * odd_imag + twiddle_imag * odd_real; freq[f + k] = { real : even_real + rhs_real, imag : even_imag + rhs_imag}; var rhs_real1 = twiddle_real * odd_real - twiddle_imag * odd_imag; var rhs_imag1 = twiddle_real * odd_imag + twiddle_imag * odd_real; freq[f + k + halfLen] = { real : even_real - rhs_real1, imag : even_imag - rhs_imag1}; } } }; funkin_audio_visualize_dsp_FFT.dft = function(ts,inverse) { if(inverse == null) { inverse = false; } var n = ts.length; var fs = []; fs.length = n; var _g = 0; var _g1 = n; while(_g < _g1) { var f = _g++; var sum = funkin_audio_visualize_dsp_Complex.zero; var _g2 = 0; var _g3 = n; while(_g2 < _g3) { var t = _g2++; var this1 = ts[t]; var w = (inverse ? 1 : -1) * 2 * Math.PI * f * t / n; var rhs_real = Math.cos(w); var rhs_imag = Math.sin(w); var rhs_real1 = this1.real * rhs_real - this1.imag * rhs_imag; var rhs_imag1 = this1.real * rhs_imag + this1.imag * rhs_real; sum = { real : sum.real + rhs_real1, imag : sum.imag + rhs_imag1}; } var tmp; if(inverse) { var k = 1 / n; tmp = { real : sum.real * k, imag : sum.imag * k}; } else { tmp = sum; } fs[f] = tmp; } return fs; }; funkin_audio_visualize_dsp_FFT.nextPow2 = function(x) { if(x < 2) { return 1; } else if((x & x - 1) == 0) { return x; } var pow = 2; --x; while((x >>= 1) != 0) pow <<= 1; return pow; }; funkin_audio_visualize_dsp_FFT.main = function() { var Fs = 44100.0; var N = 512; var halfN = N / 2 | 0; var freqs = [5919.911]; var _g = []; var _g1 = 0; var _g2 = N; while(_g1 < _g2) { var n = _g1++; var result = new Array(freqs.length); var _g3 = 0; var _g4 = freqs.length; while(_g3 < _g4) { var i = _g3++; result[i] = Math.sin(2 * Math.PI * freqs[i] * n / Fs); } _g.push(funkin_audio_visualize_dsp_Signal.sum(result)); } var ts = _g; var fs_pos = funkin_audio_visualize_dsp_FFT.rfft(ts); var _g = []; var _g1 = -(halfN - 1); var _g2 = 0; while(_g1 < _g2) { var k = _g1++; var this1 = fs_pos[-k]; _g.push({ real : this1.real, imag : -this1.imag}); } var fs_fft_array = _g.concat(fs_pos); var fs_fft_offset = -(halfN - 1); var f = funkin_audio_visualize_dsp_Complex.fromReal; var result = new Array(ts.length); var _g = 0; var _g1 = ts.length; while(_g < _g1) { var i = _g++; result[i] = f(ts[i]); } var fs_dft_array = funkin_audio_visualize_dsp_OffsetArray.circShift(funkin_audio_visualize_dsp_FFT.dft(result),halfN - 1); var fs_dft_offset = -(halfN - 1); var _g = []; var _g1 = -(halfN - 1); var _g2 = halfN; while(_g1 < _g2) { var k = _g1++; var this1 = fs_fft_array[k - fs_fft_offset]; var rhs = fs_dft_array[k - fs_dft_offset]; _g.push({ real : this1.real - rhs.real, imag : this1.imag - rhs.imag}); } var fs_err = _g; var result = new Array(fs_err.length); var _g = 0; var _g1 = fs_err.length; while(_g < _g1) { var i = _g++; var z = fs_err[i]; result[i] = Math.sqrt(z.real * z.real + z.imag * z.imag); } var max_fs_err = funkin_audio_visualize_dsp_Signal.max(result); if(max_fs_err > 1e-6) { haxe_Log.trace("FT Error: " + max_fs_err,null); } var _this = fs_fft_array; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var z = _this[i]; result[i] = Math.sqrt(z.real * z.real + z.imag * z.imag); } var _this = funkin_audio_visualize_dsp_Signal.findPeaks(result); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = (_this[i] - (halfN - 1)) * Fs / N; } var _g = []; var _g1 = 0; var _g2 = result; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v >= 0) { _g.push(v); } } var freqis = _g; if(freqis.length != freqs.length) { haxe_Log.trace("Found frequencies: " + Std.string(freqis),{ fileName : "source/funkin/audio/visualize/dsp/FFT.hx", lineNumber : 143, className : "funkin.audio.visualize.dsp.FFT", methodName : "main"}); } else { var _g = []; var _g1 = 0; var _g2 = freqs.length; while(_g1 < _g2) { var i = _g1++; _g.push(freqis[i] - freqs[i]); } var freqs_err = _g; var f = Math.abs; var result = new Array(freqs_err.length); var _g = 0; var _g1 = freqs_err.length; while(_g < _g1) { var i = _g++; result[i] = f(freqs_err[i]); } var max_freqs_err = funkin_audio_visualize_dsp_Signal.max(result); if(max_freqs_err > Fs / N) { haxe_Log.trace("Frequency Errors: " + Std.string(freqs_err),{ fileName : "source/funkin/audio/visualize/dsp/FFT.hx", lineNumber : 149, className : "funkin.audio.visualize.dsp.FFT", methodName : "main"}); } } var _this = funkin_audio_visualize_dsp_OffsetArray.circShift(fs_fft_array,-(halfN - 1)); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var z = _this[i]; var k = 1 / Fs; result[i] = { real : z.real * k, imag : z.imag * k}; } var ts_ifft = funkin_audio_visualize_dsp_FFT.ifft(result); var _g = []; var _g1 = 0; var _g2 = N; while(_g1 < _g2) { var n = _g1++; var this1 = ts_ifft[n]; var this_real = this1.real * Fs; var this_imag = this1.imag * Fs; _g.push(this_real - ts[n]); } var ts_err = _g; var f = Math.abs; var result = new Array(ts_err.length); var _g = 0; var _g1 = ts_err.length; while(_g < _g1) { var i = _g++; result[i] = f(ts_err[i]); } var max_ts_err = funkin_audio_visualize_dsp_Signal.max(result); if(max_ts_err > 1e-6) { haxe_Log.trace("IFT Error: " + max_ts_err,null); } }; var funkin_audio_visualize_dsp_OffsetArray = {}; funkin_audio_visualize_dsp_OffsetArray.__properties__ = {get_length:"get_length"}; funkin_audio_visualize_dsp_OffsetArray._new = function(array,offset) { return { array : array, offset : offset}; }; funkin_audio_visualize_dsp_OffsetArray.get_length = function(this1) { return this1.array.length; }; funkin_audio_visualize_dsp_OffsetArray.get = function(this1,index) { return this1.array[index - this1.offset]; }; funkin_audio_visualize_dsp_OffsetArray.set = function(this1,index,value) { this1.array[index - this1.offset] = value; }; funkin_audio_visualize_dsp_OffsetArray.keyValueIterator = function(this1) { return new funkin_audio_visualize_dsp__$OffsetArray_OffsetArrayIterator(this1.array,this1.offset); }; funkin_audio_visualize_dsp_OffsetArray.fromArray = function(array) { return { array : array, offset : 0}; }; funkin_audio_visualize_dsp_OffsetArray.toArray = function(this1) { return this1.array; }; funkin_audio_visualize_dsp_OffsetArray.circShift = function(array,n) { if(n < 0) { return funkin_audio_visualize_dsp_OffsetArray.circShift(array,array.length + n); } var shifted = []; n %= array.length; var _g = array.length - n; var _g1 = array.length; while(_g < _g1) { var i = _g++; shifted.push(array[i]); } var _g = 0; var _g1 = array.length - n; while(_g < _g1) { var i = _g++; shifted.push(array[i]); } return shifted; }; var funkin_audio_visualize_dsp__$OffsetArray_OffsetArrayIterator = function(array,offset) { this.array = array; this.offset = offset; this.enumeration = 0; }; $hxClasses["funkin.audio.visualize.dsp._OffsetArray.OffsetArrayIterator"] = funkin_audio_visualize_dsp__$OffsetArray_OffsetArrayIterator; funkin_audio_visualize_dsp__$OffsetArray_OffsetArrayIterator.__name__ = "funkin.audio.visualize.dsp._OffsetArray.OffsetArrayIterator"; funkin_audio_visualize_dsp__$OffsetArray_OffsetArrayIterator.prototype = { array: null ,offset: null ,enumeration: null ,next: function() { var i = this.enumeration++; return { key : i + this.offset, value : this.array[i]}; } ,hasNext: function() { return this.enumeration < this.array.length; } ,__class__: funkin_audio_visualize_dsp__$OffsetArray_OffsetArrayIterator }; var funkin_audio_visualize_dsp_Signal = function() { }; $hxClasses["funkin.audio.visualize.dsp.Signal"] = funkin_audio_visualize_dsp_Signal; funkin_audio_visualize_dsp_Signal.__name__ = "funkin.audio.visualize.dsp.Signal"; funkin_audio_visualize_dsp_Signal.smooth = function(y,n) { if(n <= 0) { return null; } else if(n == 1) { return y.slice(); } else { var smoothed = []; smoothed.length = y.length; var _g = 0; var _g1 = y.length; while(_g < _g1) { var i = _g++; var m = i + 1 < n ? i : n - 1; smoothed[i] = funkin_audio_visualize_dsp_Signal.sum(y.slice(i - m,i + 1)); } return smoothed; } }; funkin_audio_visualize_dsp_Signal.findPeaks = function(y,threshold,minHeight) { threshold = threshold == null ? 0.0 : Math.abs(threshold); if(minHeight == null) { minHeight = funkin_audio_visualize_dsp_Signal.min(y); } var peaks = []; var _g = []; var _g1 = 1; var _g2 = y.length; while(_g1 < _g2) { var i = _g1++; _g.push(y[i] - y[i - 1]); } var dy = _g; var _g = 1; var _g1 = dy.length; while(_g < _g1) { var i = _g++; if(dy[i - 1] > threshold && dy[i] < -threshold && y[i] > minHeight) { peaks.push(i); } } return peaks; }; funkin_audio_visualize_dsp_Signal.sum = function(array) { var sum = 0.0; var c = 0.0; var _g = 0; while(_g < array.length) { var v = array[_g]; ++_g; var t = sum + v; c += Math.abs(sum) >= Math.abs(v) ? sum - t + v : v - t + sum; sum = t; } return sum + c; }; funkin_audio_visualize_dsp_Signal.mean = function(y) { return funkin_audio_visualize_dsp_Signal.sum(y) / y.length; }; funkin_audio_visualize_dsp_Signal.max = function(y) { return Lambda.fold(y,Math.max,y[0]); }; funkin_audio_visualize_dsp_Signal.maxi = function(y) { return Lambda.foldi(y,function(yi,m,i) { if(yi > y[m]) { return i; } else { return m; } },0); }; funkin_audio_visualize_dsp_Signal.min = function(y) { return Lambda.fold(y,Math.min,y[0]); }; funkin_audio_visualize_dsp_Signal.mini = function(y) { return Lambda.foldi(y,function(yi,m,i) { if(yi < y[m]) { return i; } else { return m; } },0); }; var funkin_audio_waveform_WaveformData = function(version,channels,sampleRate,samplesPerPoint,bits,length,data) { this._maxSampleValue = 0; this.channelData = null; this.data = []; this.length = 0; this.bits = 16; this.samplesPerPoint = 256; this.sampleRate = 44100; this.channels = 1; this.version = -1; var tmp = version; this.version = tmp != null ? tmp : funkin_audio_waveform_WaveformData.DEFAULT_VERSION; this.channels = channels; this.sampleRate = sampleRate; this.samplesPerPoint = samplesPerPoint; this.bits = bits; this.length = length; this.data = data; }; $hxClasses["funkin.audio.waveform.WaveformData"] = funkin_audio_waveform_WaveformData; funkin_audio_waveform_WaveformData.__name__ = "funkin.audio.waveform.WaveformData"; funkin_audio_waveform_WaveformData.prototype = { version: null ,channels: null ,sampleRate: null ,samplesPerPoint: null ,bits: null ,length: null ,data: null ,channelData: null ,buildChannelData: function() { this.channelData = []; var _g = 0; var _g1 = this.channels; while(_g < _g1) { var i = _g++; this.channelData.push(new funkin_audio_waveform_WaveformDataChannel(this,i)); } return this.channelData; } ,channel: function(index) { if(this.channelData == null) { return this.buildChannelData()[index]; } else { return this.channelData[index]; } } ,get: function(index) { var tmp = this.data[index]; if(tmp != null) { return tmp; } else { return 0; } } ,set: function(index,value) { this.data[index] = value; } ,maxSampleValue: function() { if(this._maxSampleValue != 0) { return this._maxSampleValue; } return this._maxSampleValue = Math.pow(2,this.bits) | 0; } ,_maxSampleValue: null ,lenSamples: function() { return this.length * this.samplesPerPoint; } ,lenSeconds: function() { return this.length * this.samplesPerPoint / this.sampleRate; } ,secondsToIndex: function(seconds) { return seconds * (this.sampleRate / this.samplesPerPoint) | 0; } ,indexToSeconds: function(index) { return index / (this.sampleRate / this.samplesPerPoint); } ,pointsPerSecond: function() { return this.sampleRate / this.samplesPerPoint; } ,percentToIndex: function(percent) { return percent * this.length | 0; } ,indexToPercent: function(index) { return index / this.length; } ,resample: function(newSamplesPerPoint) { var result = this.clone(); var ratio = newSamplesPerPoint / this.samplesPerPoint; if(ratio == 1) { return result; } if(ratio < 1) { haxe_Log.trace("[WARNING] Downsampling will result in a low precision.",{ fileName : "source/funkin/audio/waveform/WaveformData.hx", lineNumber : 169, className : "funkin.audio.waveform.WaveformData", methodName : "resample"}); } var inputSampleCount = this.lenSamples(); var outputSampleCount = inputSampleCount * ratio | 0; var inputPointCount = this.length; var outputPointCount = inputPointCount / ratio | 0; var outputChannelCount = this.channels; return result; } ,merge: function(that) { if(that == null) { return this.clone(); } var result = this.clone([]); var _g = 0; var _g1 = this.channels; while(_g < _g1) { var channelIndex = _g++; var thisChannel = this.channel(channelIndex); var thatChannel = that.channel(channelIndex); var resultChannel = result.channel(channelIndex); var _g2 = 0; var _g3 = this.length; while(_g2 < _g3) { var index = _g2++; var thisMinSample = thisChannel.minSample(index); var thatMinSample = thatChannel.minSample(index); var thisMaxSample = thisChannel.maxSample(index); var thatMaxSample = thatChannel.maxSample(index); resultChannel.setMinSample(index,Math.min(thisMinSample,thatMinSample) | 0); resultChannel.setMaxSample(index,Math.max(thisMaxSample,thatMaxSample) | 0); } } result.length = this.length; return result; } ,clone: function(newData) { if(newData == null) { newData = funkin_util_tools_ArrayTools.clone(this.data); } var clone = new funkin_audio_waveform_WaveformData(this.version,this.channels,this.sampleRate,this.samplesPerPoint,this.bits,newData.length,newData); return clone; } ,__class__: funkin_audio_waveform_WaveformData }; var funkin_audio_waveform_WaveformDataChannel = function(parent,channelId) { this.parent = parent; this.channelId = channelId; }; $hxClasses["funkin.audio.waveform.WaveformDataChannel"] = funkin_audio_waveform_WaveformDataChannel; funkin_audio_waveform_WaveformDataChannel.__name__ = "funkin.audio.waveform.WaveformDataChannel"; funkin_audio_waveform_WaveformDataChannel.prototype = { parent: null ,channelId: null ,minSample: function(i) { var offset = (i * this.parent.channels + this.channelId) * 2; var tmp = this.parent.data[offset]; if(tmp != null) { return tmp; } else { return 0; } } ,minSampleMapped: function(i) { var offset = (i * this.parent.channels + this.channelId) * 2; var tmp = this.parent.data[offset]; var _this = this.parent; var tmp1 = _this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0; return (tmp != null ? tmp : 0) / tmp1; } ,minSampleRange: function(start,end) { var _this = this.parent; var min = _this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0; var _g = start; var _g1 = end; while(_g < _g1) { var i = _g++; var offset = (i * this.parent.channels + this.channelId) * 2; var tmp = this.parent.data[offset]; var sample = tmp != null ? tmp : 0; if(sample < min) { min = sample; } } return min; } ,minSampleRangeMapped: function(start,end) { var _this = this.parent; var min = _this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0; var _g = start; var _g1 = end; while(_g < _g1) { var i = _g++; var offset = (i * this.parent.channels + this.channelId) * 2; var tmp = this.parent.data[offset]; var sample = tmp != null ? tmp : 0; if(sample < min) { min = sample; } } var _this = this.parent; return min / (_this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0); } ,maxSample: function(i) { var offset = (i * this.parent.channels + this.channelId) * 2 + 1; var tmp = this.parent.data[offset]; if(tmp != null) { return tmp; } else { return 0; } } ,maxSampleMapped: function(i) { var offset = (i * this.parent.channels + this.channelId) * 2 + 1; var tmp = this.parent.data[offset]; var _this = this.parent; var tmp1 = _this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0; return (tmp != null ? tmp : 0) / tmp1; } ,maxSampleRange: function(start,end) { var _this = this.parent; var max = -(_this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0); var _g = start; var _g1 = end; while(_g < _g1) { var i = _g++; var offset = (i * this.parent.channels + this.channelId) * 2 + 1; var tmp = this.parent.data[offset]; var sample = tmp != null ? tmp : 0; if(sample > max) { max = sample; } } return max; } ,maxSampleRangeMapped: function(start,end) { var _this = this.parent; var max = -(_this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0); var _g = start; var _g1 = end; while(_g < _g1) { var i = _g++; var offset = (i * this.parent.channels + this.channelId) * 2 + 1; var tmp = this.parent.data[offset]; var sample = tmp != null ? tmp : 0; if(sample > max) { max = sample; } } var _this = this.parent; return max / (_this._maxSampleValue != 0 ? _this._maxSampleValue : _this._maxSampleValue = Math.pow(2,_this.bits) | 0); } ,setMinSample: function(i,value) { var offset = (i * this.parent.channels + this.channelId) * 2; this.parent.data[offset] = value; } ,setMaxSample: function(i,value) { var offset = (i * this.parent.channels + this.channelId) * 2 + 1; this.parent.data[offset] = value; } ,__class__: funkin_audio_waveform_WaveformDataChannel }; var funkin_audio_waveform_WaveformDataParser = function() { }; $hxClasses["funkin.audio.waveform.WaveformDataParser"] = funkin_audio_waveform_WaveformDataParser; funkin_audio_waveform_WaveformDataParser.__name__ = "funkin.audio.waveform.WaveformDataParser"; funkin_audio_waveform_WaveformDataParser.interpretFlxSound = function(sound) { if(sound == null) { return null; } var tmp = sound != null ? sound._channel : null; var tmp1 = tmp != null ? tmp.__source : null; var soundBuffer = tmp1 != null ? tmp1.buffer : null; if(soundBuffer == null) { var tmp = sound != null ? sound._sound : null; soundBuffer = tmp != null ? tmp.__buffer : null; if(soundBuffer == null) { haxe_Log.trace("[WAVEFORM] Failed to interpret FlxSound: " + Std.string(sound),{ fileName : "source/funkin/audio/waveform/WaveformDataParser.hx", lineNumber : 29, className : "funkin.audio.waveform.WaveformDataParser", methodName : "interpretFlxSound"}); return null; } } return funkin_audio_waveform_WaveformDataParser.interpretAudioBuffer(soundBuffer); }; funkin_audio_waveform_WaveformDataParser.interpretAudioBuffer = function(soundBuffer) { var sampleRate = soundBuffer.sampleRate; var channels = soundBuffer.channels; var bitsPerSample = soundBuffer.bitsPerSample; var samplesPerPoint = 256; var pointsPerSecond = sampleRate / samplesPerPoint; var soundData = soundBuffer.data; var soundDataRawLength = soundData.length; var soundDataSampleCount = Math.ceil(soundDataRawLength / channels / (bitsPerSample == 16 ? 2 : 1)) | 0; var outputPointCount = Math.ceil(soundDataSampleCount / samplesPerPoint) | 0; var minSampleValue = bitsPerSample == 16 ? funkin_audio_waveform_WaveformDataParser.INT16_MIN : funkin_audio_waveform_WaveformDataParser.INT8_MIN; var maxSampleValue = bitsPerSample == 16 ? funkin_audio_waveform_WaveformDataParser.INT16_MAX : funkin_audio_waveform_WaveformDataParser.INT8_MAX; var outputData = []; var perfStart = funkin_util_TimerUtil.start(); var _g = 0; var _g1 = outputPointCount; while(_g < _g1) { var pointIndex = _g++; var values = []; var _g2 = 0; var _g3 = channels; while(_g2 < _g3) { var i = _g2++; values.push(bitsPerSample == 16 ? funkin_audio_waveform_WaveformDataParser.INT16_MAX : funkin_audio_waveform_WaveformDataParser.INT8_MAX); values.push(bitsPerSample == 16 ? funkin_audio_waveform_WaveformDataParser.INT16_MIN : funkin_audio_waveform_WaveformDataParser.INT8_MIN); } var rangeStart = pointIndex * samplesPerPoint; var rangeEnd = rangeStart + samplesPerPoint; if(rangeEnd > soundDataSampleCount) { rangeEnd = soundDataSampleCount; } var _g4 = rangeStart; var _g5 = rangeEnd; while(_g4 < _g5) { var sampleIndex = _g4++; var _g6 = 0; var _g7 = channels; while(_g6 < _g7) { var channelIndex = _g6++; var sampleIndex1 = sampleIndex * channels + channelIndex; var sampleValue = soundData[sampleIndex1]; if(sampleValue < values[channelIndex * 2]) { values[channelIndex * 2] = sampleValue; } if(sampleValue > values[channelIndex * 2 + 1]) { values[channelIndex * 2 + 1] = sampleValue; } } } var _g8 = 0; while(_g8 < values.length) { var value = values[_g8]; ++_g8; outputData.push(value); } } var outputDataLength = outputData.length / channels / 2 | 0; var result = new funkin_audio_waveform_WaveformData(null,channels,sampleRate,samplesPerPoint,bitsPerSample,outputPointCount,outputData); haxe_Log.trace("[WAVEFORM] Interpreted audio buffer in " + funkin_util_TimerUtil.seconds(perfStart) + ".",{ fileName : "source/funkin/audio/waveform/WaveformDataParser.hx", lineNumber : 113, className : "funkin.audio.waveform.WaveformDataParser", methodName : "interpretAudioBuffer"}); return result; }; funkin_audio_waveform_WaveformDataParser.parseWaveformData = function(path) { var rawJson = StringTools.trim(openfl_utils_Assets.getText(path)); return funkin_audio_waveform_WaveformDataParser.parseWaveformDataString(rawJson,path); }; funkin_audio_waveform_WaveformDataParser.parseWaveformDataString = function(contents,fileName) { var parser = new JsonParser_$43(); parser.ignoreUnknownVariables = false; haxe_Log.trace("[WAVEFORM] Parsing waveform data: " + contents,{ fileName : "source/funkin/audio/waveform/WaveformDataParser.hx", lineNumber : 128, className : "funkin.audio.waveform.WaveformDataParser", methodName : "parseWaveformDataString"}); parser.fromJson(contents,fileName); if(parser.errors.length > 0) { funkin_audio_waveform_WaveformDataParser.printErrors(parser.errors,fileName); return null; } return parser.value; }; funkin_audio_waveform_WaveformDataParser.printErrors = function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[WAVEFORM] Failed to parse waveform data: " + id,{ fileName : "source/funkin/audio/waveform/WaveformDataParser.hx", lineNumber : 141, className : "funkin.audio.waveform.WaveformDataParser", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } }; var funkin_audio_waveform_WaveformOrientation = $hxEnums["funkin.audio.waveform.WaveformOrientation"] = { __ename__:"funkin.audio.waveform.WaveformOrientation",__constructs__:null ,HORIZONTAL: {_hx_name:"HORIZONTAL",_hx_index:0,__enum__:"funkin.audio.waveform.WaveformOrientation",toString:$estr} ,VERTICAL: {_hx_name:"VERTICAL",_hx_index:1,__enum__:"funkin.audio.waveform.WaveformOrientation",toString:$estr} }; funkin_audio_waveform_WaveformOrientation.__constructs__ = [funkin_audio_waveform_WaveformOrientation.HORIZONTAL,funkin_audio_waveform_WaveformOrientation.VERTICAL]; funkin_audio_waveform_WaveformOrientation.__empty_constructs__ = [funkin_audio_waveform_WaveformOrientation.HORIZONTAL,funkin_audio_waveform_WaveformOrientation.VERTICAL]; var funkin_audio_waveform_WaveformSprite = function(waveformData,orientation,color,duration) { this.amplitude = 1.0; this.minWaveformSize = 1; this.forceUpdate = false; this.isWaveformDirty = true; funkin_graphics_rendering_MeshRender.call(this,funkin_audio_waveform_WaveformSprite.DEFAULT_X,funkin_audio_waveform_WaveformSprite.DEFAULT_Y,funkin_audio_waveform_WaveformSprite.DEFAULT_COLOR); var tmp = color; this.set_waveformColor(tmp != null ? tmp : funkin_audio_waveform_WaveformSprite.DEFAULT_COLOR); this.set_width(funkin_audio_waveform_WaveformSprite.DEFAULT_WIDTH); this.set_height(funkin_audio_waveform_WaveformSprite.DEFAULT_HEIGHT); this.set_waveformData(waveformData); var tmp = orientation; this.set_orientation(tmp != null ? tmp : funkin_audio_waveform_WaveformSprite.DEFAULT_ORIENTATION); this.set_time(0.0); var tmp = duration; this.set_duration(tmp != null ? tmp : funkin_audio_waveform_WaveformSprite.DEFAULT_DURATION); this.forceUpdate = false; }; $hxClasses["funkin.audio.waveform.WaveformSprite"] = funkin_audio_waveform_WaveformSprite; funkin_audio_waveform_WaveformSprite.__name__ = "funkin.audio.waveform.WaveformSprite"; funkin_audio_waveform_WaveformSprite.buildFromWaveformData = function(data,orientation,color,duration) { return new funkin_audio_waveform_WaveformSprite(data,orientation,color,duration); }; funkin_audio_waveform_WaveformSprite.buildFromFunkinSound = function(sound,orientation,color,duration) { var data = null; return funkin_audio_waveform_WaveformSprite.buildFromWaveformData(data,orientation,color,duration); }; funkin_audio_waveform_WaveformSprite.__super__ = funkin_graphics_rendering_MeshRender; funkin_audio_waveform_WaveformSprite.prototype = $extend(funkin_graphics_rendering_MeshRender.prototype,{ isWaveformDirty: null ,forceUpdate: null ,waveformData: null ,set_waveformData: function(value) { if(this.waveformData == value) { return value; } this.waveformData = value; this.isWaveformDirty = true; return this.waveformData; } ,waveformColor: null ,set_waveformColor: function(value) { if(this.waveformColor == value) { return value; } this.waveformColor = value; this.rebuildGraphic(); return this.waveformColor; } ,orientation: null ,set_orientation: function(value) { if(this.orientation == value) { return value; } this.orientation = value; this.isWaveformDirty = true; return this.orientation; } ,time: null ,set_time: function(value) { if(this.time == value) { return value; } this.time = value; this.isWaveformDirty = true; return this.time; } ,duration: null ,set_duration: function(value) { if(this.duration == value) { return value; } this.duration = value; this.isWaveformDirty = true; return this.duration; } ,set_height: function(value) { if(this.get_height() == value) { return funkin_graphics_rendering_MeshRender.prototype.set_height.call(this,value); } this.isWaveformDirty = true; return funkin_graphics_rendering_MeshRender.prototype.set_height.call(this,value); } ,set_width: function(value) { if(this.get_width() == value) { return funkin_graphics_rendering_MeshRender.prototype.set_width.call(this,value); } this.isWaveformDirty = true; return funkin_graphics_rendering_MeshRender.prototype.set_width.call(this,value); } ,minWaveformSize: null ,amplitude: null ,markDirty: function() { this.isWaveformDirty = true; } ,update: function(elapsed) { funkin_graphics_rendering_MeshRender.prototype.update.call(this,elapsed); if(this.forceUpdate || this.isWaveformDirty) { this.drawWaveform(); this.isWaveformDirty = false; } } ,rebuildGraphic: function() { this.makeGraphic(1,1,this.waveformColor); } ,drawWaveform: function() { this.clear(); if(this.waveformData == null) { return; } var waveformCenterPos = this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_height() / 2 | 0 : this.get_width() / 2 | 0; var oneSecondInIndices = this.waveformData.secondsToIndex(1); var startTime = this.time; var endTime = this.time + this.duration; var startIndex = this.waveformData.secondsToIndex(startTime); var endIndex = this.waveformData.secondsToIndex(endTime); var pixelsPerIndex = (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_width() : this.get_height()) / (endIndex - startIndex); var indexesPerPixel = 1 / pixelsPerIndex; var topLeftVertexIndex = -1; var topRightVertexIndex = -1; var bottomLeftVertexIndex = -1; var bottomRightVertexIndex = -1; if(this.clipRect != null) { var y = this.clipRect.y; var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,this.clipRect.x); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; topLeftVertexIndex = index; var y = this.clipRect.y; var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,this.clipRect.x + this.clipRect.width); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; topRightVertexIndex = index; var y = this.clipRect.y + this.clipRect.height; var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,this.clipRect.x); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; bottomLeftVertexIndex = index; var y = this.clipRect.y + this.clipRect.height; var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,this.clipRect.x + this.clipRect.width); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; bottomRightVertexIndex = index; } if(pixelsPerIndex >= 1.0) { var prevVertexTopIndex = -1; var prevVertexBottomIndex = -1; var _g = startIndex; var _g1 = endIndex; while(_g < _g1) { var i = _g++; var pixelPos = (i - startIndex) * pixelsPerIndex | 0; var isBeforeClipRect = this.clipRect != null && (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? pixelPos < this.clipRect.x : pixelPos < this.clipRect.y); if(isBeforeClipRect) { continue; } var isAfterClipRect = this.clipRect != null && (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? pixelPos > this.clipRect.x + this.clipRect.width : pixelPos > this.clipRect.y + this.clipRect.height); if(isAfterClipRect) { break; } var sampleMax = Math.min(this.waveformData.channel(0).maxSampleMapped(i) * this.amplitude,1.0); var sampleMin = Math.max(this.waveformData.channel(0).minSampleMapped(i) * this.amplitude,-1.0); var sampleMaxSize = sampleMax * (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_height() : this.get_width()) / 2; if(sampleMaxSize < this.minWaveformSize) { sampleMaxSize = this.minWaveformSize; } var sampleMinSize = sampleMin * (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_height() : this.get_width()) / 2; if(sampleMinSize > -this.minWaveformSize) { sampleMinSize = -this.minWaveformSize; } var vertexTopY = waveformCenterPos - sampleMaxSize | 0; var vertexBottomY = waveformCenterPos - sampleMinSize | 0; if(vertexBottomY - vertexTopY < this.minWaveformSize) { vertexTopY = vertexBottomY - this.minWaveformSize; } var vertexTopIndex = -1; var vertexBottomIndex = -1; if(this.clipRect != null) { if(this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL) { vertexTopIndex = this.buildClippedVertex(pixelPos,vertexTopY,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); vertexBottomIndex = this.buildClippedVertex(pixelPos,vertexBottomY,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); } else { vertexTopIndex = this.buildClippedVertex(vertexTopY,pixelPos,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); vertexBottomIndex = this.buildClippedVertex(vertexBottomY,pixelPos,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); } } else if(this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL) { var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,pixelPos); this.vertices.set(pos + 1,vertexTopY); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; vertexTopIndex = index; var index1 = this.vertex_count; var pos1 = index1 << 1; this.vertices.set(pos1,pixelPos); this.vertices.set(pos1 + 1,vertexBottomY); this.uvtData.set(pos1,0); this.uvtData.set(pos1 + 1,0); this.vertex_count++; vertexBottomIndex = index1; } else { var index2 = this.vertex_count; var pos2 = index2 << 1; this.vertices.set(pos2,vertexTopY); this.vertices.set(pos2 + 1,pixelPos); this.uvtData.set(pos2,0); this.uvtData.set(pos2 + 1,0); this.vertex_count++; vertexTopIndex = index2; var index3 = this.vertex_count; var pos3 = index3 << 1; this.vertices.set(pos3,vertexBottomY); this.vertices.set(pos3 + 1,pixelPos); this.uvtData.set(pos3,0); this.uvtData.set(pos3 + 1,0); this.vertex_count++; vertexBottomIndex = index3; } if(prevVertexTopIndex != -1 && prevVertexBottomIndex != -1 && prevVertexTopIndex != vertexTopIndex && prevVertexBottomIndex != vertexBottomIndex) { switch(this.orientation._hx_index) { case 0: this.add_quad(prevVertexTopIndex,vertexTopIndex,vertexBottomIndex,prevVertexBottomIndex); break; case 1: this.add_quad(prevVertexBottomIndex,prevVertexTopIndex,vertexTopIndex,vertexBottomIndex); break; } } prevVertexTopIndex = vertexTopIndex; prevVertexBottomIndex = vertexBottomIndex; } } else { var prevVertexTopIndex = -1; var prevVertexBottomIndex = -1; var waveformLengthPixels = this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_width() | 0 : this.get_height() | 0; var _g = 0; var _g1 = waveformLengthPixels; while(_g < _g1) { var i = _g++; var pixelPos = i; var isBeforeClipRect = this.clipRect != null && (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? pixelPos < this.clipRect.x : pixelPos < this.clipRect.y); if(isBeforeClipRect) { continue; } var isAfterClipRect = this.clipRect != null && (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? pixelPos > this.clipRect.x + this.clipRect.width : pixelPos > this.clipRect.y + this.clipRect.height); if(isAfterClipRect) { break; } var rangeStart = i * indexesPerPixel + startIndex | 0; var rangeEnd = (i + 1) * indexesPerPixel + startIndex | 0; var sampleMax = Math.min(this.waveformData.channel(0).maxSampleRangeMapped(rangeStart,rangeEnd) * this.amplitude,1.0); var sampleMin = Math.max(this.waveformData.channel(0).minSampleRangeMapped(rangeStart,rangeEnd) * this.amplitude,-1.0); var sampleMaxSize = sampleMax * (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_height() : this.get_width()) / 2; if(sampleMaxSize < this.minWaveformSize) { sampleMaxSize = this.minWaveformSize; } var sampleMinSize = sampleMin * (this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL ? this.get_height() : this.get_width()) / 2; if(sampleMinSize > -this.minWaveformSize) { sampleMinSize = -this.minWaveformSize; } var vertexTopY = waveformCenterPos - sampleMaxSize | 0; var vertexBottomY = waveformCenterPos - sampleMinSize | 0; var vertexTopIndex = -1; var vertexBottomIndex = -1; if(this.clipRect != null) { if(this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL) { vertexTopIndex = this.buildClippedVertex(pixelPos,vertexTopY,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); vertexBottomIndex = this.buildClippedVertex(pixelPos,vertexBottomY,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); } else { vertexTopIndex = this.buildClippedVertex(vertexTopY,pixelPos,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); vertexBottomIndex = this.buildClippedVertex(vertexBottomY,pixelPos,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex); } } else if(this.orientation == funkin_audio_waveform_WaveformOrientation.HORIZONTAL) { var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,pixelPos); this.vertices.set(pos + 1,vertexTopY); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; vertexTopIndex = index; var index1 = this.vertex_count; var pos1 = index1 << 1; this.vertices.set(pos1,pixelPos); this.vertices.set(pos1 + 1,vertexBottomY); this.uvtData.set(pos1,0); this.uvtData.set(pos1 + 1,0); this.vertex_count++; vertexBottomIndex = index1; } else { var index2 = this.vertex_count; var pos2 = index2 << 1; this.vertices.set(pos2,vertexTopY); this.vertices.set(pos2 + 1,pixelPos); this.uvtData.set(pos2,0); this.uvtData.set(pos2 + 1,0); this.vertex_count++; vertexTopIndex = index2; var index3 = this.vertex_count; var pos3 = index3 << 1; this.vertices.set(pos3,vertexBottomY); this.vertices.set(pos3 + 1,pixelPos); this.uvtData.set(pos3,0); this.uvtData.set(pos3 + 1,0); this.vertex_count++; vertexBottomIndex = index3; } if(prevVertexTopIndex != -1 && prevVertexBottomIndex != -1) { switch(this.orientation._hx_index) { case 0: this.add_quad(prevVertexTopIndex,vertexTopIndex,vertexBottomIndex,prevVertexBottomIndex); break; case 1: this.add_quad(prevVertexBottomIndex,prevVertexTopIndex,vertexTopIndex,vertexBottomIndex); break; } } prevVertexTopIndex = vertexTopIndex; prevVertexBottomIndex = vertexBottomIndex; } } } ,buildClippedVertex: function(x,y,topLeftVertexIndex,topRightVertexIndex,bottomLeftVertexIndex,bottomRightVertexIndex) { var shouldClipXLeft = x < this.clipRect.x; var shouldClipXRight = x > this.clipRect.x + this.clipRect.width; var shouldClipYTop = y < this.clipRect.y; var shouldClipYBottom = y > this.clipRect.y + this.clipRect.height; if(shouldClipXLeft && shouldClipYTop) { return topLeftVertexIndex; } else if(shouldClipXRight && shouldClipYTop) { return topRightVertexIndex; } else if(shouldClipXLeft && shouldClipYBottom) { return bottomLeftVertexIndex; } else if(shouldClipXRight && shouldClipYBottom) { return bottomRightVertexIndex; } else if(shouldClipXLeft) { var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,this.clipRect.x); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; return index; } else if(shouldClipXRight) { var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,this.clipRect.x + this.clipRect.width); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; return index; } else if(shouldClipYTop) { var y1 = this.clipRect.y; var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,x); this.vertices.set(pos + 1,y1); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; return index; } else if(shouldClipYBottom) { var y1 = this.clipRect.y + this.clipRect.height; var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,x); this.vertices.set(pos + 1,y1); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; return index; } else { var index = this.vertex_count; var pos = index << 1; this.vertices.set(pos,x); this.vertices.set(pos + 1,y); this.uvtData.set(pos,0); this.uvtData.set(pos + 1,0); this.vertex_count++; return index; } } ,__class__: funkin_audio_waveform_WaveformSprite ,__properties__: $extend(funkin_graphics_rendering_MeshRender.prototype.__properties__,{set_duration:"set_duration",set_time:"set_time",set_orientation:"set_orientation",set_waveformColor:"set_waveformColor",set_waveformData:"set_waveformData"}) }); var funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_play_cutscene_dialogue_Conversation_funkin_data_dialogue_conversation_ConversationData"] = funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData; funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData.__name__ = "funkin.data.BaseRegistry_funkin_play_cutscene_dialogue_Conversation_funkin_data_dialogue_conversation_ConversationData"; funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_play_cutscene_dialogue_Conversation(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData }; var funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_play_cutscene_dialogue_DialogueBox_funkin_data_dialogue_dialoguebox_DialogueBoxData"] = funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData; funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData.__name__ = "funkin.data.BaseRegistry_funkin_play_cutscene_dialogue_DialogueBox_funkin_data_dialogue_dialoguebox_DialogueBoxData"; funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_play_cutscene_dialogue_DialogueBox(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData }; var funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_play_cutscene_dialogue_Speaker_funkin_data_dialogue_speaker_SpeakerData"] = funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData; funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData.__name__ = "funkin.data.BaseRegistry_funkin_play_cutscene_dialogue_Speaker_funkin_data_dialogue_speaker_SpeakerData"; funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_play_cutscene_dialogue_Speaker(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData }; var funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_play_notes_notestyle_NoteStyle_funkin_data_notestyle_NoteStyleData"] = funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData; funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData.__name__ = "funkin.data.BaseRegistry_funkin_play_notes_notestyle_NoteStyle_funkin_data_notestyle_NoteStyleData"; funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_play_notes_notestyle_NoteStyle(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData }; var funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_play_song_Song_funkin_data_song_SongMetadata"] = funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata; funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata.__name__ = "funkin.data.BaseRegistry_funkin_play_song_Song_funkin_data_song_SongMetadata"; funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_play_song_Song(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata }; var funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_play_stage_Stage_funkin_data_stage_StageData"] = funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData; funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData.__name__ = "funkin.data.BaseRegistry_funkin_play_stage_Stage_funkin_data_stage_StageData"; funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_play_stage_Stage(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData }; var funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_ui_freeplay_Album_funkin_data_freeplay_album_AlbumData"] = funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData; funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData.__name__ = "funkin.data.BaseRegistry_funkin_ui_freeplay_Album_funkin_data_freeplay_album_AlbumData"; funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_ui_freeplay_Album(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData }; var funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData = function(registryId,dataFilePath,versionRule) { this.registryId = registryId; this.dataFilePath = dataFilePath; this.versionRule = versionRule == null ? thx_semver_VersionRule.stringToVersionRule("1.0.x") : versionRule; this.entries = new haxe_ds_StringMap(); this.scriptedEntryIds = new haxe_ds_StringMap(); var tmp = flixel_FlxG.game != null; }; $hxClasses["funkin.data.BaseRegistry_funkin_ui_story_Level_funkin_data_story_level_LevelData"] = funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData; funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData.__name__ = "funkin.data.BaseRegistry_funkin_ui_story_Level_funkin_data_story_level_LevelData"; funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData.prototype = { registryId: null ,dataFilePath: null ,entries: null ,scriptedEntryIds: null ,versionRule: null ,loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = null; try { entry = this.createScriptedEntry(entryCls); } catch( _g1 ) { this.log("Failed to create scripted entry (" + entryCls + ")"); continue; } if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.set(entry.id,entry); this.scriptedEntryIds.set(entry.id,entryCls); } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var entryIdList = funkin_util_assets_DataAssets.listDataFilesInPath("" + this.dataFilePath + "/"); var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!_gthis.entries.exists(v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 120, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); this.entries.set(entry.id,entry); } } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 127, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 128, className : "funkin.data.BaseRegistry", methodName : "loadEntries"}); continue; } } } ,listEntryIds: function() { return funkin_util_tools_IteratorTools.array(this.entries.keys()); } ,countEntries: function() { return funkin_util_tools_MapTools.size(this.entries); } ,isScriptedEntry: function(id) { return this.scriptedEntryIds.exists(id); } ,getScriptedEntryClassName: function(id) { return this.scriptedEntryIds.get(id); } ,hasEntry: function(id) { return this.entries.exists(id); } ,fetchEntry: function(id) { return this.entries.get(id); } ,toString: function() { return "Registry(" + this.registryId + (", " + this.countEntries() + " entries)"); } ,fetchEntryVersion: function(id) { var entryStr = this.loadEntryFile(id).contents; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,log: function(message) { haxe_Log.trace("[" + this.registryId + "] " + message,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 211, className : "funkin.data.BaseRegistry", methodName : "log"}); } ,loadEntryFile: function(id) { var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id); var rawJson = StringTools.trim(openfl_utils_Assets.getText(entryFilePath)); return { fileName : entryFilePath, contents : rawJson}; } ,clearEntries: function() { var entry = this.entries.iterator(); while(entry.hasNext()) { var entry1 = entry.next(); entry1.destroy(); } this.entries.clear(); } ,parseEntryData: null ,parseEntryDataRaw: null ,parseEntryDataWithMigration: function(id,version) { if(version == null) { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " could not be JSON-parsed or does not have a parseable version."); } if(this.versionRule == null || funkin_util_VersionUtil.validateVersion(version,this.versionRule)) { return this.parseEntryData(id); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Entry " + id + " does not support migration to version " + (this.versionRule == null ? "null" : thx_semver_VersionRule.toString(this.versionRule)) + "."); } } ,getScriptedClassNames: null ,createEntry: function(id) { return new funkin_ui_story_Level(id); } ,createScriptedEntry: null ,printErrors: function(errors,id) { if(id == null) { id = ""; } haxe_Log.trace("[" + this.registryId + "] Failed to parse entry data: " + id,{ fileName : "source/funkin/data/BaseRegistry.hx", lineNumber : 320, className : "funkin.data.BaseRegistry", methodName : "printErrors"}); var _g = 0; while(_g < errors.length) { var error = errors[_g]; ++_g; funkin_data_DataError.printError(error); } } ,__class__: funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData }; var funkin_data_DataError = function() { }; $hxClasses["funkin.data.DataError"] = funkin_data_DataError; funkin_data_DataError.__name__ = "funkin.data.DataError"; funkin_data_DataError.printError = function(error) { switch(error._hx_index) { case 0: var vari = error.variable; var expected = error.expected; var pos = error.pos; haxe_Log.trace(" Expected field \"" + vari + "\" to be of type \"" + expected + "\".",{ fileName : "source/funkin/data/DataError.hx", lineNumber : 14, className : "funkin.data.DataError", methodName : "printError"}); funkin_data_DataError.printPos(pos); break; case 1: var value = error.value; var expected = error.expected; var pos = error.pos; haxe_Log.trace(" Invalid enum value (expected \"" + expected + "\", got \"" + value + "\")",{ fileName : "source/funkin/data/DataError.hx", lineNumber : 17, className : "funkin.data.DataError", methodName : "printError"}); funkin_data_DataError.printPos(pos); break; case 2: var value = error.value; var expected = error.expected; var pos = error.pos; haxe_Log.trace(" Invalid enum constructor (epxected \"" + expected + "\", got \"" + value + "\")",{ fileName : "source/funkin/data/DataError.hx", lineNumber : 20, className : "funkin.data.DataError", methodName : "printError"}); funkin_data_DataError.printPos(pos); break; case 3: var vari = error.variable; var pos = error.pos; haxe_Log.trace(" Uninitialized variable \"" + vari + "\"",{ fileName : "source/funkin/data/DataError.hx", lineNumber : 23, className : "funkin.data.DataError", methodName : "printError"}); funkin_data_DataError.printPos(pos); break; case 4: var vari = error.variable; var pos = error.pos; haxe_Log.trace(" Unknown variable \"" + vari + "\"",{ fileName : "source/funkin/data/DataError.hx", lineNumber : 26, className : "funkin.data.DataError", methodName : "printError"}); funkin_data_DataError.printPos(pos); break; case 5: var message = error.message; var pos = error.pos; haxe_Log.trace(" Parsing error: " + message,{ fileName : "source/funkin/data/DataError.hx", lineNumber : 29, className : "funkin.data.DataError", methodName : "printError"}); funkin_data_DataError.printPos(pos); break; case 6: var e = error.e; var pos = error.pos; if(typeof(e) == "string") { haxe_Log.trace(" " + (e == null ? "null" : Std.string(e)),{ fileName : "source/funkin/data/DataError.hx", lineNumber : 34, className : "funkin.data.DataError", methodName : "printError"}); } else { funkin_data_DataError.printUnknownError(e); } funkin_data_DataError.printPos(pos); break; } }; funkin_data_DataError.printUnknownError = function(e) { var _g = Type.typeof(e); switch(_g._hx_index) { case 6: var c = _g.c; haxe_Log.trace(" [" + c.__name__ + "] " + Std.string(e.toString()),{ fileName : "source/funkin/data/DataError.hx", lineNumber : 51, className : "funkin.data.DataError", methodName : "printUnknownError"}); break; case 7: var c = _g.e; haxe_Log.trace(" [" + c.__ename__ + "] " + Std.string(e.toString()),{ fileName : "source/funkin/data/DataError.hx", lineNumber : 53, className : "funkin.data.DataError", methodName : "printUnknownError"}); break; default: haxe_Log.trace(" [" + Std.string(Type.typeof(e)) + "] " + Std.string(e.toString()),{ fileName : "source/funkin/data/DataError.hx", lineNumber : 55, className : "funkin.data.DataError", methodName : "printUnknownError"}); } }; funkin_data_DataError.printPos = function(pos) { if(pos.lines[0].number == pos.lines[pos.lines.length - 1].number) { haxe_Log.trace(" at " + (pos.file == "" ? "line " : "" + pos.file + ":") + pos.lines[0].number,{ fileName : "source/funkin/data/DataError.hx", lineNumber : 68, className : "funkin.data.DataError", methodName : "printPos"}); } else { haxe_Log.trace(" at " + (pos.file == "" ? "line " : "" + pos.file + ":") + pos.lines[0].number + "-" + pos.lines[pos.lines.length - 1].number,{ fileName : "source/funkin/data/DataError.hx", lineNumber : 72, className : "funkin.data.DataError", methodName : "printPos"}); } }; var funkin_data_DataParse = function() { }; $hxClasses["funkin.data.DataParse"] = funkin_data_DataParse; funkin_data_DataParse.__name__ = "funkin.data.DataParse"; funkin_data_DataParse.stringNotEmpty = function(json,name) { var _g = json.value; if(_g._hx_index == 0) { var s = _g.s; if(s == "") { throw haxe_Exception.thrown("Expected property " + name + " to be non-empty."); } return s; } else { throw haxe_Exception.thrown("Expected property " + name + " to be a string, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.semverVersion = function(json,name) { var _g = json.value; if(_g._hx_index == 0) { var s = _g.s; if(s == "") { throw haxe_Exception.thrown("Expected version property " + name + " to be non-empty."); } return thx_semver_Version.stringToVersion(s); } else { throw haxe_Exception.thrown("Expected version property " + name + " to be a string, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.semverVersionRule = function(json,name) { var _g = json.value; if(_g._hx_index == 0) { var s = _g.s; if(s == "") { throw haxe_Exception.thrown("Expected version rule property " + name + " to be non-empty."); } return thx_semver_VersionRule.stringToVersionRule(s); } else { throw haxe_Exception.thrown("Expected version rule property " + name + " to be a string, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.dynamicValue = function(json,name) { return hxjsonast_Tools.getValue(json); }; funkin_data_DataParse.eitherLegacyNoteData = function(json,name) { var _g = json.value; switch(_g._hx_index) { case 2: var fields = _g.fields; return haxe_ds_Either.Right(hxjsonast_Tools.getValue(json)); case 3: var values = _g.values; return haxe_ds_Either.Left(funkin_data_DataParse.legacyNoteSectionArray(json,name)); default: throw haxe_Exception.thrown("Expected property " + name + " to be note data, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.eitherFloatOrFloats = function(json,name) { var _g = json.value; switch(_g._hx_index) { case 1: var f = _g.s; return haxe_ds_Either.Left(parseFloat(f)); case 3: var fields = _g.values; var result = new Array(fields.length); var _g = 0; var _g1 = fields.length; while(_g < _g1) { var i = _g++; result[i] = hxjsonast_Tools.getValue(fields[i]); } return haxe_ds_Either.Right(result); default: throw haxe_Exception.thrown("Expected property " + name + " to be one or multiple floats, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.backdropData = function(json,name) { var _g = json.value; if(_g._hx_index == 2) { var fields = _g.fields; var result = { }; var backdropType = ""; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; if(field.name == "type") { backdropType = hxjsonast_Tools.getValue(field.value); } result[field.name] = hxjsonast_Tools.getValue(field.value); } if(backdropType == "solid") { return funkin_data_dialogue_conversation_BackdropData.SOLID(result); } else { throw haxe_Exception.thrown("Expected Backdrop property " + name + " to be specify a valid \"type\", but it was \"" + backdropType + "\"."); } } else { throw haxe_Exception.thrown("Expected property " + name + " to be an object, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.outroData = function(json,name) { var _g = json.value; if(_g._hx_index == 2) { var fields = _g.fields; var result = { }; var outroType = ""; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; if(field.name == "type") { outroType = hxjsonast_Tools.getValue(field.value); } result[field.name] = hxjsonast_Tools.getValue(field.value); } switch(outroType) { case "fade": return funkin_data_dialogue_conversation_OutroData.FADE(result); case "none": return funkin_data_dialogue_conversation_OutroData.NONE(result); default: throw haxe_Exception.thrown("Expected Outro property " + name + " to be specify a valid \"type\", but it was \"" + outroType + "\"."); } } else { throw haxe_Exception.thrown("Expected property " + name + " to be an object, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.eitherLegacyScrollSpeeds = function(json,name) { var _g = json.value; switch(_g._hx_index) { case 1: var f = _g.s; return haxe_ds_Either.Left(parseFloat(f)); case 2: var fields = _g.fields; return haxe_ds_Either.Right(hxjsonast_Tools.getValue(json)); default: throw haxe_Exception.thrown("Expected property " + name + " to be scroll speeds, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.jsonFieldsToDynamicObject = function(fields) { var result = { }; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; result[field.name] = hxjsonast_Tools.getValue(field.value); } return result; }; funkin_data_DataParse.jsonArrayToDynamicArray = function(jsons) { var _g = []; var _g1 = 0; while(_g1 < jsons.length) { var json = jsons[_g1]; ++_g1; _g.push(hxjsonast_Tools.getValue(json)); } return _g; }; funkin_data_DataParse.legacyNoteSectionArray = function(json,name) { var _g = json.value; if(_g._hx_index == 3) { var values = _g.values; var _g = []; var _g1 = 0; while(_g1 < values.length) { var value = values[_g1]; ++_g1; _g.push(funkin_data_DataParse.legacyNoteSection(value,name)); } return _g; } else { throw haxe_Exception.thrown("Expected property to be an array, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.legacyNoteSection = function(json,name) { var _g = json.value; if(_g._hx_index == 2) { var fields = _g.fields; var result = { mustHitSection : false, sectionNotes : []}; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; switch(field.name) { case "bpm": result.bpm = hxjsonast_Tools.getValue(field.value); break; case "changeBPM": result.changeBPM = hxjsonast_Tools.getValue(field.value); break; case "lengthInSteps": result.lengthInSteps = hxjsonast_Tools.getValue(field.value); break; case "mustHitSection": result.mustHitSection = hxjsonast_Tools.getValue(field.value); break; case "sectionNotes": result.sectionNotes = funkin_data_DataParse.legacyNotes(field.value,field.name); break; case "typeOfSection": result.typeOfSection = hxjsonast_Tools.getValue(field.value); break; } } return result; } else { throw haxe_Exception.thrown("Expected property " + name + " to be an object, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.legacyNoteData = function(json,name) { var _g = json.value; if(_g._hx_index == 2) { var fields = _g.fields; var result = { }; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; result[field.name] = funkin_data_DataParse.legacyNoteSectionArray(field.value,field.name); } return result; } else { throw haxe_Exception.thrown("Expected property " + name + " to be an object, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.legacyNotes = function(json,name) { var _g = json.value; if(_g._hx_index == 3) { var values = _g.values; var _g = []; var _g1 = 0; while(_g1 < values.length) { var value = values[_g1]; ++_g1; _g.push(funkin_data_DataParse.legacyNote(value,name)); } return _g; } else { throw haxe_Exception.thrown("Expected property " + name + " to be an array of notes, but it was " + Std.string(json.value) + "."); } }; funkin_data_DataParse.legacyNote = function(json,name) { var _g = json.value; if(_g._hx_index == 3) { var values = _g.values; var time = values[0] == null ? null : hxjsonast_Tools.getValue(values[0]); var data = values[1] == null ? null : hxjsonast_Tools.getValue(values[1]); var length = values[2] == null ? null : hxjsonast_Tools.getValue(values[2]); var alt = values[3] == null ? null : hxjsonast_Tools.getValue(values[3]); return new funkin_data_song_importer_LegacyNote(time,data,length,alt); } else { throw haxe_Exception.thrown("Expected property " + name + " to be a note, but it was " + Std.string(json.value) + "."); } }; var funkin_data_DataWrite = function() { }; $hxClasses["funkin.data.DataWrite"] = funkin_data_DataWrite; funkin_data_DataWrite.__name__ = "funkin.data.DataWrite"; funkin_data_DataWrite.dynamicValue = function(value) { return funkin_util_SerializerUtil.toJSON(value); }; funkin_data_DataWrite.semverVersion = function(value) { return "\"" + thx_semver_Version.toString(value) + "\""; }; funkin_data_DataWrite.semverVersionRule = function(value) { return "\"" + thx_semver_VersionRule.toString(value) + "\""; }; funkin_data_DataWrite.eitherFloatOrFloats = function(value) { if(value == null) { return "" + 1.0; } else { switch(value._hx_index) { case 0: var inner = value.v; return "" + inner; case 1: var inner = value.v; return funkin_data_DataWrite.dynamicValue(inner); } } }; var funkin_data_IRegistryEntry = function() { }; $hxClasses["funkin.data.IRegistryEntry"] = funkin_data_IRegistryEntry; funkin_data_IRegistryEntry.__name__ = "funkin.data.IRegistryEntry"; funkin_data_IRegistryEntry.__isInterface__ = true; funkin_data_IRegistryEntry.prototype = { id: null ,destroy: null ,toString: null ,_data: null ,__class__: funkin_data_IRegistryEntry }; var funkin_data_animation_AnimationDataUtil = function() { }; $hxClasses["funkin.data.animation.AnimationDataUtil"] = funkin_data_animation_AnimationDataUtil; funkin_data_animation_AnimationDataUtil.__name__ = "funkin.data.animation.AnimationDataUtil"; funkin_data_animation_AnimationDataUtil.toNamed = function(data,name) { if(name == null) { name = ""; } return { name : name, prefix : data.prefix, assetPath : data.assetPath, offsets : data.offsets, looped : data.looped, flipX : data.flipX, flipY : data.flipY, frameRate : data.frameRate, frameIndices : data.frameIndices}; }; funkin_data_animation_AnimationDataUtil.toUnnamed = function(data) { return { prefix : data.prefix, assetPath : data.assetPath, offsets : data.offsets, looped : data.looped, flipX : data.flipX, flipY : data.flipY, frameRate : data.frameRate, frameIndices : data.frameIndices}; }; var funkin_data_dialogue_conversation_BackdropData = $hxEnums["funkin.data.dialogue.conversation.BackdropData"] = { __ename__:"funkin.data.dialogue.conversation.BackdropData",__constructs__:null ,SOLID: ($_=function(data) { return {_hx_index:0,data:data,__enum__:"funkin.data.dialogue.conversation.BackdropData",toString:$estr}; },$_._hx_name="SOLID",$_.__params__ = ["data"],$_) }; funkin_data_dialogue_conversation_BackdropData.__constructs__ = [funkin_data_dialogue_conversation_BackdropData.SOLID]; funkin_data_dialogue_conversation_BackdropData.__empty_constructs__ = []; var funkin_data_dialogue_conversation_OutroData = $hxEnums["funkin.data.dialogue.conversation.OutroData"] = { __ename__:"funkin.data.dialogue.conversation.OutroData",__constructs__:null ,NONE: ($_=function(data) { return {_hx_index:0,data:data,__enum__:"funkin.data.dialogue.conversation.OutroData",toString:$estr}; },$_._hx_name="NONE",$_.__params__ = ["data"],$_) ,FADE: ($_=function(data) { return {_hx_index:1,data:data,__enum__:"funkin.data.dialogue.conversation.OutroData",toString:$estr}; },$_._hx_name="FADE",$_.__params__ = ["data"],$_) }; funkin_data_dialogue_conversation_OutroData.__constructs__ = [funkin_data_dialogue_conversation_OutroData.NONE,funkin_data_dialogue_conversation_OutroData.FADE]; funkin_data_dialogue_conversation_OutroData.__empty_constructs__ = []; var thx_semver_Version = {}; thx_semver_Version.__properties__ = {get_hasBuild:"get_hasBuild",get_build:"get_build",get_hasPre:"get_hasPre",get_pre:"get_pre",get_patch:"get_patch",get_minor:"get_minor",get_major:"get_major"}; thx_semver_Version.stringToVersion = function(s) { if(!thx_semver_Version.VERSION.match(s)) { throw haxe_Exception.thrown("Invalid SemVer format for \"" + s + "\""); } var major = Std.parseInt(thx_semver_Version.VERSION.matched(1)); var minor = Std.parseInt(thx_semver_Version.VERSION.matched(2)); var patch = Std.parseInt(thx_semver_Version.VERSION.matched(3)); var pre = thx_semver_Version.parseIdentifiers(thx_semver_Version.VERSION.matched(4)); var build = thx_semver_Version.parseIdentifiers(thx_semver_Version.VERSION.matched(5)); return { version : [major,minor,patch], pre : pre, build : build}; }; thx_semver_Version.arrayToVersion = function(a) { var _this = null == a ? [] : a; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var v = _this[i]; result[i] = v < 0 ? -v : v; } a = result.concat([0,0,0]).slice(0,3); return { version : [a[0],a[1],a[2]], pre : [], build : []}; }; thx_semver_Version._new = function(major,minor,patch,pre,build) { return { version : [major,minor,patch], pre : pre, build : build}; }; thx_semver_Version.nextMajor = function(this1) { return { version : [this1.version[0] + 1,0,0], pre : [], build : []}; }; thx_semver_Version.nextMinor = function(this1) { return { version : [this1.version[0],this1.version[1] + 1,0], pre : [], build : []}; }; thx_semver_Version.nextPatch = function(this1) { return { version : [this1.version[0],this1.version[1],this1.version[2] + 1], pre : [], build : []}; }; thx_semver_Version.nextPre = function(this1) { return { version : [this1.version[0],this1.version[1],this1.version[2]], pre : thx_semver_Version.nextIdentifiers(this1.pre), build : []}; }; thx_semver_Version.nextBuild = function(this1) { return { version : [this1.version[0],this1.version[1],this1.version[2]], pre : this1.pre, build : thx_semver_Version.nextIdentifiers(this1.build)}; }; thx_semver_Version.withPre = function(this1,pre,build) { return { version : [this1.version[0],this1.version[1],this1.version[2]], pre : thx_semver_Version.parseIdentifiers(pre), build : thx_semver_Version.parseIdentifiers(build)}; }; thx_semver_Version.withBuild = function(this1,build) { return { version : [this1.version[0],this1.version[1],this1.version[2]], pre : this1.pre, build : thx_semver_Version.parseIdentifiers(build)}; }; thx_semver_Version.satisfies = function(this1,rule) { return thx_semver_VersionRule.isSatisfiedBy(rule,this1); }; thx_semver_Version.toString = function(this1) { var v = this1.version.join("."); if(this1.pre.length > 0) { v += "-" + thx_semver_Version.identifiersToString(this1.pre); } if(this1.build.length > 0) { v += "+" + thx_semver_Version.identifiersToString(this1.build); } return v; }; thx_semver_Version.equals = function(this1,other) { if(this1.version[0] != other.version[0] || this1.version[1] != other.version[1] || this1.version[2] != other.version[2]) { return false; } return thx_semver_Version.equalsIdentifiers(this1.pre,other.pre); }; thx_semver_Version.different = function(this1,other) { return !thx_semver_Version.equals(other,this1); }; thx_semver_Version.greaterThan = function(this1,other) { if(this1.pre.length > 0 && other.pre.length > 0) { if(this1.version[0] == other.version[0] && this1.version[1] == other.version[1] && this1.version[2] == other.version[2]) { return thx_semver_Version.greaterThanIdentifiers(this1.pre,other.pre); } else { return false; } } else if(other.pre.length > 0) { if(this1.version[0] != other.version[0]) { return this1.version[0] > other.version[0]; } if(this1.version[1] != other.version[1]) { return this1.version[1] > other.version[1]; } if(this1.version[2] != other.version[2]) { return this1.version[2] > other.version[2]; } if(this1.pre.length > 0) { return thx_semver_Version.greaterThanIdentifiers(this1.pre,other.pre); } else { return true; } } else if(this1.pre.length <= 0) { if(this1.version[0] != other.version[0]) { return this1.version[0] > other.version[0]; } if(this1.version[1] != other.version[1]) { return this1.version[1] > other.version[1]; } if(this1.version[2] != other.version[2]) { return this1.version[2] > other.version[2]; } return thx_semver_Version.greaterThanIdentifiers(this1.pre,other.pre); } else { return false; } }; thx_semver_Version.greaterThanOrEqual = function(this1,other) { if(!thx_semver_Version.equals(this1,other)) { return thx_semver_Version.greaterThan(this1,other); } else { return true; } }; thx_semver_Version.lessThan = function(this1,other) { return !thx_semver_Version.greaterThanOrEqual(this1,other); }; thx_semver_Version.lessThanOrEqual = function(this1,other) { return !thx_semver_Version.greaterThan(this1,other); }; thx_semver_Version.get_major = function(this1) { return this1.version[0]; }; thx_semver_Version.get_minor = function(this1) { return this1.version[1]; }; thx_semver_Version.get_patch = function(this1) { return this1.version[2]; }; thx_semver_Version.get_pre = function(this1) { return thx_semver_Version.identifiersToString(this1.pre); }; thx_semver_Version.get_hasPre = function(this1) { return this1.pre.length > 0; }; thx_semver_Version.get_build = function(this1) { return thx_semver_Version.identifiersToString(this1.build); }; thx_semver_Version.get_hasBuild = function(this1) { return this1.build.length > 0; }; thx_semver_Version.identifiersToString = function(ids) { var result = new Array(ids.length); var _g = 0; var _g1 = ids.length; while(_g < _g1) { var i = _g++; var id = ids[i]; var tmp; switch(id._hx_index) { case 0: var s = id.value; tmp = s; break; case 1: var i1 = id.value; tmp = "" + i1; break; } result[i] = tmp; } return result.join("."); }; thx_semver_Version.parseIdentifiers = function(s) { var _this = (null == s ? "" : s).split("."); var f = thx_semver_Version.sanitize; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } var _g = []; var _g1 = 0; var _g2 = result; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != "") { _g.push(v); } } var _this = _g; var f = thx_semver_Version.parseIdentifier; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } return result; }; thx_semver_Version.parseIdentifier = function(s) { var i = Std.parseInt(s); if(null == i) { return thx_semver_Identifier.StringId(s); } else { return thx_semver_Identifier.IntId(i); } }; thx_semver_Version.equalsIdentifiers = function(a,b) { if(a.length != b.length) { return false; } var _g = 0; var _g1 = a.length; while(_g < _g1) { var i = _g++; var _g2 = a[i]; var _g3 = b[i]; switch(_g2._hx_index) { case 0: if(_g3._hx_index == 0) { var b1 = _g3.value; var a1 = _g2.value; if(a1 != b1) { return false; } } break; case 1: if(_g3._hx_index == 1) { var b2 = _g3.value; var a2 = _g2.value; if(a2 != b2) { return false; } } break; default: } } return true; }; thx_semver_Version.greaterThanIdentifiers = function(a,b) { var _g = 0; var _g1 = a.length; while(_g < _g1) { var i = _g++; var _g2 = a[i]; var _g3 = b[i]; switch(_g2._hx_index) { case 0: var _g4 = _g2.value; switch(_g3._hx_index) { case 0: var _g5 = _g3.value; var b1 = _g5; var a1 = _g4; if(a1 == b1) { continue; } else { var b2 = _g5; var a2 = _g4; if(a2 > b2) { return true; } else { return false; } } break; case 1: var _g6 = _g3.value; return true; default: return false; } break; case 1: var _g7 = _g2.value; if(_g3._hx_index == 1) { var _g8 = _g3.value; var b3 = _g8; var a3 = _g7; if(a3 == b3) { continue; } else { var b4 = _g8; var a4 = _g7; if(a4 > b4) { return true; } else { return false; } } } else { return false; } break; default: return false; } } return false; }; thx_semver_Version.nextIdentifiers = function(identifiers) { var identifiers1 = identifiers.slice(); var i = identifiers1.length; while(--i >= 0) { var _g = identifiers1[i]; if(_g._hx_index == 1) { var id = _g.value; identifiers1[i] = thx_semver_Identifier.IntId(id + 1); break; } } if(i < 0) { throw haxe_Exception.thrown("no numeric identifier found in " + Std.string(identifiers1)); } return identifiers1; }; thx_semver_Version.sanitize = function(s) { return s.replace(thx_semver_Version.SANITIZER.r,""); }; var thx_semver_Identifier = $hxEnums["thx.semver.Identifier"] = { __ename__:"thx.semver.Identifier",__constructs__:null ,StringId: ($_=function(value) { return {_hx_index:0,value:value,__enum__:"thx.semver.Identifier",toString:$estr}; },$_._hx_name="StringId",$_.__params__ = ["value"],$_) ,IntId: ($_=function(value) { return {_hx_index:1,value:value,__enum__:"thx.semver.Identifier",toString:$estr}; },$_._hx_name="IntId",$_.__params__ = ["value"],$_) }; thx_semver_Identifier.__constructs__ = [thx_semver_Identifier.StringId,thx_semver_Identifier.IntId]; thx_semver_Identifier.__empty_constructs__ = []; var thx_semver_VersionRule = {}; thx_semver_VersionRule.stringToVersionRule = function(s) { var _this = s.split("||"); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var comp = _this[i]; comp = StringTools.trim(comp); var p = comp.split(" - "); var tmp; if(p.length == 1) { comp = StringTools.trim(comp); p = new EReg("\\s+","").split(comp); if(p.length == 1) { if(comp.length == 0) { tmp = thx_semver_VersionComparator.GreaterThanOrEqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion([0,0,0]),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); } else if(!thx_semver_VersionRule.VERSION.match(comp)) { throw haxe_Exception.thrown("invalid single pattern \"" + comp + "\""); } else { var v = thx_semver_VersionRule.versionArray(thx_semver_VersionRule.VERSION); var vf = v.concat([0,0,0]).slice(0,3); var _g2 = thx_semver_VersionRule.VERSION.matched(1); var _g3 = v.length; if(_g2 == null) { switch(_g3) { case 0: tmp = thx_semver_VersionComparator.GreaterThanOrEqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; case 1: var version = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMajor(version))); break; case 2: var version1 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version1),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMinor(version1))); break; case 3: tmp = thx_semver_VersionComparator.EqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; default: var p1 = _g2; throw haxe_Exception.thrown("invalid prefix \"" + p1 + "\" for rule " + comp); } } else { switch(_g2) { case "":case "=":case "v": switch(_g3) { case 0: tmp = thx_semver_VersionComparator.GreaterThanOrEqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; case 1: var version2 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version2),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMajor(version2))); break; case 2: var version3 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version3),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMinor(version3))); break; case 3: tmp = thx_semver_VersionComparator.EqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; default: var p2 = _g2; throw haxe_Exception.thrown("invalid prefix \"" + p2 + "\" for rule " + comp); } break; case "<": tmp = thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; case "<=": tmp = thx_semver_VersionComparator.LessThanOrEqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; case ">": tmp = thx_semver_VersionComparator.GreaterThanVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; case ">=": tmp = thx_semver_VersionComparator.GreaterThanOrEqualVersion(thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6))); break; case "^": switch(_g3) { case 1: var version4 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version4),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMajor(version4))); break; case 2: var version5 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version5),thx_semver_VersionComparator.LessThanVersion(version5.version[0] == 0 ? thx_semver_Version.nextMinor(version5) : thx_semver_Version.nextMajor(version5))); break; case 3: var version6 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version6),thx_semver_VersionComparator.LessThanVersion(version6.version[0] == 0 ? version6.version[1] == 0 ? thx_semver_Version.nextPatch(version6) : thx_semver_Version.nextMinor(version6) : thx_semver_Version.nextMajor(version6))); break; default: var p3 = _g2; throw haxe_Exception.thrown("invalid prefix \"" + p3 + "\" for rule " + comp); } break; case "~": switch(_g3) { case 1: var version7 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version7),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMajor(version7))); break; case 2:case 3: var version8 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(vf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(version8),thx_semver_VersionComparator.LessThanVersion(thx_semver_Version.nextMinor(version8))); break; default: var p4 = _g2; throw haxe_Exception.thrown("invalid prefix \"" + p4 + "\" for rule " + comp); } break; default: var p5 = _g2; throw haxe_Exception.thrown("invalid prefix \"" + p5 + "\" for rule " + comp); } } } } else if(p.length == 2) { if(!thx_semver_VersionRule.VERSION.match(p[0])) { throw haxe_Exception.thrown("left hand parameter is not a valid version rule \"" + p[0] + "\""); } var lp = thx_semver_VersionRule.VERSION.matched(1); var lva = thx_semver_VersionRule.versionArray(thx_semver_VersionRule.VERSION); var lvf = lva.concat([0,0,0]).slice(0,3); var lv = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(lvf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); if(lp != ">" && lp != ">=") { throw haxe_Exception.thrown("invalid left parameter version prefix \"" + p[0] + "\", should be either > or >="); } if(!thx_semver_VersionRule.VERSION.match(p[1])) { throw haxe_Exception.thrown("left hand parameter is not a valid version rule \"" + p[0] + "\""); } var rp = thx_semver_VersionRule.VERSION.matched(1); var rva = thx_semver_VersionRule.versionArray(thx_semver_VersionRule.VERSION); var rvf = rva.concat([0,0,0]).slice(0,3); var rv = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(rvf),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); if(rp != "<" && rp != "<=") { throw haxe_Exception.thrown("invalid right parameter version prefix \"" + p[1] + "\", should be either < or <="); } tmp = thx_semver_VersionComparator.AndRule(lp == ">" ? thx_semver_VersionComparator.GreaterThanVersion(lv) : thx_semver_VersionComparator.GreaterThanOrEqualVersion(lv),rp == "<" ? thx_semver_VersionComparator.LessThanVersion(rv) : thx_semver_VersionComparator.LessThanOrEqualVersion(rv)); } else { throw haxe_Exception.thrown("invalid multi pattern " + comp); } } else if(p.length == 2) { if(!thx_semver_VersionRule.VERSION.match(p[0])) { throw haxe_Exception.thrown("left range parameter is not a valid version rule \"" + p[0] + "\""); } if(thx_semver_VersionRule.VERSION.matched(1) != null && thx_semver_VersionRule.VERSION.matched(1) != "") { throw haxe_Exception.thrown("left range parameter should not be prefixed \"" + p[0] + "\""); } var lv1 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(thx_semver_VersionRule.versionArray(thx_semver_VersionRule.VERSION).concat([0,0,0]).slice(0,3)),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); if(!thx_semver_VersionRule.VERSION.match(p[1])) { throw haxe_Exception.thrown("right range parameter is not a valid version rule \"" + p[1] + "\""); } if(thx_semver_VersionRule.VERSION.matched(1) != null && thx_semver_VersionRule.VERSION.matched(1) != "") { throw haxe_Exception.thrown("right range parameter should not be prefixed \"" + p[1] + "\""); } var rva1 = thx_semver_VersionRule.versionArray(thx_semver_VersionRule.VERSION); var rv1 = thx_semver_Version.withPre(thx_semver_Version.arrayToVersion(rva1.concat([0,0,0]).slice(0,3)),thx_semver_VersionRule.VERSION.matched(5),thx_semver_VersionRule.VERSION.matched(6)); if(rva1.length == 1) { rv1 = thx_semver_Version.nextMajor(rv1); } else if(rva1.length == 2) { rv1 = thx_semver_Version.nextMinor(rv1); } tmp = thx_semver_VersionComparator.AndRule(thx_semver_VersionComparator.GreaterThanOrEqualVersion(lv1),rva1.length == 3 ? thx_semver_VersionComparator.LessThanOrEqualVersion(rv1) : thx_semver_VersionComparator.LessThanVersion(rv1)); } else { throw haxe_Exception.thrown("invalid pattern \"" + comp + "\""); } result[i] = tmp; } var ors = result; var rule = null; while(ors.length > 0) { var r = ors.pop(); if(null == rule) { rule = r; } else { rule = thx_semver_VersionComparator.OrRule(r,rule); } } return rule; }; thx_semver_VersionRule.versionArray = function(re) { var arr = []; var t; var _g = 2; while(_g < 5) { var i = _g++; t = re.matched(i); if(null != t && thx_semver_VersionRule.IS_DIGITS.match(t)) { arr.push(Std.parseInt(t)); } else { break; } } return arr; }; thx_semver_VersionRule.versionRuleIsValid = function(rule) { try { return thx_semver_VersionRule.stringToVersionRule(rule) != null; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return false; } }; thx_semver_VersionRule.isSatisfiedBy = function(this1,version) { switch(this1._hx_index) { case 0: var ver = this1.ver; return thx_semver_Version.equals(version,ver); case 1: var ver = this1.ver; return thx_semver_Version.greaterThan(version,ver); case 2: var ver = this1.ver; return thx_semver_Version.greaterThanOrEqual(version,ver); case 3: var ver = this1.ver; return thx_semver_Version.lessThan(version,ver); case 4: var ver = this1.ver; return thx_semver_Version.lessThanOrEqual(version,ver); case 5: var a = this1.a; var b = this1.b; if(thx_semver_VersionRule.isSatisfiedBy(a,version)) { return thx_semver_VersionRule.isSatisfiedBy(b,version); } else { return false; } break; case 6: var a = this1.a; var b = this1.b; if(!thx_semver_VersionRule.isSatisfiedBy(a,version)) { return thx_semver_VersionRule.isSatisfiedBy(b,version); } else { return true; } break; } }; thx_semver_VersionRule.toString = function(this1) { var _g = this1; switch(_g._hx_index) { case 0: var ver = _g.ver; return thx_semver_Version.toString(ver); case 1: var ver = _g.ver; return ">" + (ver == null ? "null" : thx_semver_Version.toString(ver)); case 2: var ver = _g.ver; return ">=" + (ver == null ? "null" : thx_semver_Version.toString(ver)); case 3: var ver = _g.ver; return "<" + (ver == null ? "null" : thx_semver_Version.toString(ver)); case 4: var ver = _g.ver; return "<=" + (ver == null ? "null" : thx_semver_Version.toString(ver)); case 5: var a = _g.a; var b = _g.b; var tmp = a; var tmp1 = b; return (tmp == null ? "null" : thx_semver_VersionRule.toString(tmp)) + " " + (tmp1 == null ? "null" : thx_semver_VersionRule.toString(tmp1)); case 6: var a = _g.a; var b = _g.b; var tmp = a; var tmp1 = b; return (tmp == null ? "null" : thx_semver_VersionRule.toString(tmp)) + " || " + (tmp1 == null ? "null" : thx_semver_VersionRule.toString(tmp1)); } }; var thx_semver_VersionComparator = $hxEnums["thx.semver.VersionComparator"] = { __ename__:"thx.semver.VersionComparator",__constructs__:null ,EqualVersion: ($_=function(ver) { return {_hx_index:0,ver:ver,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="EqualVersion",$_.__params__ = ["ver"],$_) ,GreaterThanVersion: ($_=function(ver) { return {_hx_index:1,ver:ver,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="GreaterThanVersion",$_.__params__ = ["ver"],$_) ,GreaterThanOrEqualVersion: ($_=function(ver) { return {_hx_index:2,ver:ver,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="GreaterThanOrEqualVersion",$_.__params__ = ["ver"],$_) ,LessThanVersion: ($_=function(ver) { return {_hx_index:3,ver:ver,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="LessThanVersion",$_.__params__ = ["ver"],$_) ,LessThanOrEqualVersion: ($_=function(ver) { return {_hx_index:4,ver:ver,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="LessThanOrEqualVersion",$_.__params__ = ["ver"],$_) ,AndRule: ($_=function(a,b) { return {_hx_index:5,a:a,b:b,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="AndRule",$_.__params__ = ["a","b"],$_) ,OrRule: ($_=function(a,b) { return {_hx_index:6,a:a,b:b,__enum__:"thx.semver.VersionComparator",toString:$estr}; },$_._hx_name="OrRule",$_.__params__ = ["a","b"],$_) }; thx_semver_VersionComparator.__constructs__ = [thx_semver_VersionComparator.EqualVersion,thx_semver_VersionComparator.GreaterThanVersion,thx_semver_VersionComparator.GreaterThanOrEqualVersion,thx_semver_VersionComparator.LessThanVersion,thx_semver_VersionComparator.LessThanOrEqualVersion,thx_semver_VersionComparator.AndRule,thx_semver_VersionComparator.OrRule]; thx_semver_VersionComparator.__empty_constructs__ = []; var funkin_data_dialogue_conversation_ConversationRegistry = function() { funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData.call(this,"CONVERSATION","dialogue/conversations",funkin_data_dialogue_conversation_ConversationRegistry.CONVERSATION_DATA_VERSION_RULE); }; $hxClasses["funkin.data.dialogue.conversation.ConversationRegistry"] = funkin_data_dialogue_conversation_ConversationRegistry; funkin_data_dialogue_conversation_ConversationRegistry.__name__ = "funkin.data.dialogue.conversation.ConversationRegistry"; funkin_data_dialogue_conversation_ConversationRegistry.__properties__ = {get_instance:"get_instance"}; funkin_data_dialogue_conversation_ConversationRegistry.get_instance = function() { if(funkin_data_dialogue_conversation_ConversationRegistry._instance == null) { funkin_data_dialogue_conversation_ConversationRegistry._instance = new funkin_data_dialogue_conversation_ConversationRegistry(); } return funkin_data_dialogue_conversation_ConversationRegistry._instance; }; funkin_data_dialogue_conversation_ConversationRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData; funkin_data_dialogue_conversation_ConversationRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Conversation_$funkin_$data_$dialogue_$conversation_$ConversationData.prototype,{ parseEntryData: function(id) { var parser = new JsonParser_$95(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$95(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_play_cutscene_dialogue_ScriptedConversation.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_play_cutscene_dialogue_ScriptedConversation.listScriptClasses(); } ,__class__: funkin_data_dialogue_conversation_ConversationRegistry }); var funkin_data_dialogue_dialoguebox_DialogueBoxRegistry = function() { funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData.call(this,"DIALOGUEBOX","dialogue/boxes",funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.DIALOGUEBOX_DATA_VERSION_RULE); }; $hxClasses["funkin.data.dialogue.dialoguebox.DialogueBoxRegistry"] = funkin_data_dialogue_dialoguebox_DialogueBoxRegistry; funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.__name__ = "funkin.data.dialogue.dialoguebox.DialogueBoxRegistry"; funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.__properties__ = {get_instance:"get_instance"}; funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.get_instance = function() { if(funkin_data_dialogue_dialoguebox_DialogueBoxRegistry._instance == null) { funkin_data_dialogue_dialoguebox_DialogueBoxRegistry._instance = new funkin_data_dialogue_dialoguebox_DialogueBoxRegistry(); } return funkin_data_dialogue_dialoguebox_DialogueBoxRegistry._instance; }; funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData; funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$DialogueBox_$funkin_$data_$dialogue_$dialoguebox_$DialogueBoxData.prototype,{ parseEntryData: function(id) { var parser = new JsonParser_$114(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$114(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_play_cutscene_dialogue_ScriptedDialogueBox.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_play_cutscene_dialogue_ScriptedDialogueBox.listScriptClasses(); } ,__class__: funkin_data_dialogue_dialoguebox_DialogueBoxRegistry }); var funkin_data_dialogue_speaker_SpeakerRegistry = function() { funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData.call(this,"SPEAKER","dialogue/speakers",funkin_data_dialogue_speaker_SpeakerRegistry.SPEAKER_DATA_VERSION_RULE); }; $hxClasses["funkin.data.dialogue.speaker.SpeakerRegistry"] = funkin_data_dialogue_speaker_SpeakerRegistry; funkin_data_dialogue_speaker_SpeakerRegistry.__name__ = "funkin.data.dialogue.speaker.SpeakerRegistry"; funkin_data_dialogue_speaker_SpeakerRegistry.__properties__ = {get_instance:"get_instance"}; funkin_data_dialogue_speaker_SpeakerRegistry.get_instance = function() { if(funkin_data_dialogue_speaker_SpeakerRegistry._instance == null) { funkin_data_dialogue_speaker_SpeakerRegistry._instance = new funkin_data_dialogue_speaker_SpeakerRegistry(); } return funkin_data_dialogue_speaker_SpeakerRegistry._instance; }; funkin_data_dialogue_speaker_SpeakerRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData; funkin_data_dialogue_speaker_SpeakerRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$play_$cutscene_$dialogue_$Speaker_$funkin_$data_$dialogue_$speaker_$SpeakerData.prototype,{ parseEntryData: function(id) { var parser = new JsonParser_$122(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$122(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_play_cutscene_dialogue_ScriptedSpeaker.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_play_cutscene_dialogue_ScriptedSpeaker.listScriptClasses(); } ,__class__: funkin_data_dialogue_speaker_SpeakerRegistry }); var funkin_util_macro_CompiledClassList = function() { }; $hxClasses["funkin.util.macro.CompiledClassList"] = funkin_util_macro_CompiledClassList; funkin_util_macro_CompiledClassList.__name__ = "funkin.util.macro.CompiledClassList"; funkin_util_macro_CompiledClassList.classLists = null; funkin_util_macro_CompiledClassList.init = function() { funkin_util_macro_CompiledClassList.classLists = new haxe_ds_StringMap(); var metaData = haxe_rtti_Meta.getType(funkin_util_macro_CompiledClassList); if(metaData.classLists != null) { var _g = 0; var _g1 = metaData.classLists; while(_g < _g1.length) { var list = _g1[_g]; ++_g; var data = list; var id = data[0]; var classes = new haxe_ds_List(); var _g2 = 1; var _g3 = data.length; while(_g2 < _g3) { var i = _g2++; var className = data[i]; var classType = $hxClasses[className]; classes.push(classType); } funkin_util_macro_CompiledClassList.classLists.h[id] = classes; } } else { throw haxe_Exception.thrown("Class lists not properly generated. Try cleaning out your export folder, restarting your IDE, and rebuilding your project."); } }; funkin_util_macro_CompiledClassList.get = function(request) { if(funkin_util_macro_CompiledClassList.classLists == null) { funkin_util_macro_CompiledClassList.init(); } if(!Object.prototype.hasOwnProperty.call(funkin_util_macro_CompiledClassList.classLists.h,request)) { haxe_Log.trace("[WARNING] Class list " + request + " not properly generated. Please debug the build macro.",{ fileName : "source/funkin/util/macro/CompiledClassList.hx", lineNumber : 57, className : "funkin.util.macro.CompiledClassList", methodName : "get"}); var this1 = funkin_util_macro_CompiledClassList.classLists; var value = new haxe_ds_List(); this1.h[request] = value; } return funkin_util_macro_CompiledClassList.classLists.h[request]; }; funkin_util_macro_CompiledClassList.getTyped = function(request,type) { return funkin_util_macro_CompiledClassList.get(request); }; var haxe_rtti_Meta = function() { }; $hxClasses["haxe.rtti.Meta"] = haxe_rtti_Meta; haxe_rtti_Meta.__name__ = "haxe.rtti.Meta"; haxe_rtti_Meta.getType = function(t) { var meta = haxe_rtti_Meta.getMeta(t); if(meta == null || meta.obj == null) { return { }; } else { return meta.obj; } }; haxe_rtti_Meta.isInterface = function(t) { throw haxe_Exception.thrown("Something went wrong"); }; haxe_rtti_Meta.getMeta = function(t) { return t.__meta__; }; haxe_rtti_Meta.getStatics = function(t) { var meta = haxe_rtti_Meta.getMeta(t); if(meta == null || meta.statics == null) { return { }; } else { return meta.statics; } }; haxe_rtti_Meta.getFields = function(t) { var meta = haxe_rtti_Meta.getMeta(t); if(meta == null || meta.fields == null) { return { }; } else { return meta.fields; } }; var funkin_data_event_SongEventRegistry = function() { }; $hxClasses["funkin.data.event.SongEventRegistry"] = funkin_data_event_SongEventRegistry; funkin_data_event_SongEventRegistry.__name__ = "funkin.data.event.SongEventRegistry"; funkin_data_event_SongEventRegistry.loadEventCache = function() { funkin_data_event_SongEventRegistry.clearEventCache(); funkin_data_event_SongEventRegistry.registerBaseEvents(); funkin_data_event_SongEventRegistry.registerScriptedEvents(); }; funkin_data_event_SongEventRegistry.registerBaseEvents = function() { haxe_Log.trace("Instantiating " + funkin_data_event_SongEventRegistry.BUILTIN_EVENTS.length + " built-in song events...",{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 39, className : "funkin.data.event.SongEventRegistry", methodName : "registerBaseEvents"}); var _g_head = funkin_data_event_SongEventRegistry.BUILTIN_EVENTS.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var eventCls = val; var eventClsName = eventCls.__name__; if(eventClsName == "funkin.play.event.SongEvent" || eventClsName == "funkin.play.event.ScriptedSongEvent") { continue; } var event = Type.createInstance(eventCls,["UNKNOWN"]); if(event != null) { haxe_Log.trace(" Loaded built-in song event: (" + event.id + ")",{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 49, className : "funkin.data.event.SongEventRegistry", methodName : "registerBaseEvents"}); funkin_data_event_SongEventRegistry.eventCache.h[event.id] = event; } else { haxe_Log.trace(" Failed to load built-in song event: " + eventCls.__name__,{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 54, className : "funkin.data.event.SongEventRegistry", methodName : "registerBaseEvents"}); } } }; funkin_data_event_SongEventRegistry.registerScriptedEvents = function() { var scriptedEventClassNames = funkin_play_event_ScriptedSongEvent.listScriptClasses(); if(scriptedEventClassNames == null || scriptedEventClassNames.length == 0) { return; } haxe_Log.trace("Instantiating " + scriptedEventClassNames.length + " scripted song events...",{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 64, className : "funkin.data.event.SongEventRegistry", methodName : "registerScriptedEvents"}); var _g = 0; while(_g < scriptedEventClassNames.length) { var eventCls = scriptedEventClassNames[_g]; ++_g; var event = funkin_play_event_ScriptedSongEvent.init(eventCls,"UKNOWN"); if(event != null) { haxe_Log.trace(" Loaded scripted song event: " + event.id,{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 71, className : "funkin.data.event.SongEventRegistry", methodName : "registerScriptedEvents"}); funkin_data_event_SongEventRegistry.eventCache.h[event.id] = event; } else { haxe_Log.trace(" Failed to instantiate scripted song event class: " + eventCls,{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 76, className : "funkin.data.event.SongEventRegistry", methodName : "registerScriptedEvents"}); } } }; funkin_data_event_SongEventRegistry.listEventIds = function() { return funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(funkin_data_event_SongEventRegistry.eventCache.h)); }; funkin_data_event_SongEventRegistry.listEvents = function() { return funkin_util_tools_MapTools.values(funkin_data_event_SongEventRegistry.eventCache); }; funkin_data_event_SongEventRegistry.getEvent = function(id) { return funkin_data_event_SongEventRegistry.eventCache.h[id]; }; funkin_data_event_SongEventRegistry.getEventSchema = function(id) { var event = funkin_data_event_SongEventRegistry.getEvent(id); if(event == null) { return null; } return event.getEventSchema(); }; funkin_data_event_SongEventRegistry.clearEventCache = function() { funkin_data_event_SongEventRegistry.eventCache.h = Object.create(null); }; funkin_data_event_SongEventRegistry.handleEvent = function(data) { var eventKind = data.eventKind; var eventHandler = funkin_data_event_SongEventRegistry.eventCache.h[eventKind]; if(eventHandler != null) { eventHandler.handleEvent(data); } else { haxe_Log.trace("WARNING: No event handler for event with kind: " + eventKind,{ fileName : "source/funkin/data/event/SongEventRegistry.hx", lineNumber : 120, className : "funkin.data.event.SongEventRegistry", methodName : "handleEvent"}); } data.activated = true; }; funkin_data_event_SongEventRegistry.handleEvents = function(events) { var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; funkin_data_event_SongEventRegistry.handleEvent(event); } }; funkin_data_event_SongEventRegistry.queryEvents = function(events,currentTime) { var _g = []; var _g1 = 0; var _g2 = events; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.activated ? false : v.time > currentTime ? false : true) { _g.push(v); } } return _g; }; funkin_data_event_SongEventRegistry.handleSkippedEvents = function(events,currentTime) { var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; if(event.time > currentTime) { event.activated = false; } if(event.time < currentTime) { event.activated = true; } } }; funkin_data_event_SongEventRegistry.resetEvents = function(events) { var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; event.activated = false; } }; var funkin_data_event_SongEventSchema = {}; funkin_data_event_SongEventSchema._new = function(fields) { return fields; }; funkin_data_event_SongEventSchema.getByName = function(this1,name) { var _g = 0; while(_g < this1.length) { var field = this1[_g]; ++_g; if(field.name == name) { return field; } } return null; }; funkin_data_event_SongEventSchema.getFirstField = function(this1) { return this1[0]; }; funkin_data_event_SongEventSchema.get = function(this1,key) { return this1[key]; }; funkin_data_event_SongEventSchema.arrayWrite = function(this1,k,v) { return this1[k] = v; }; funkin_data_event_SongEventSchema.stringifyFieldValue = function(this1,name,value,addUnits) { if(addUnits == null) { addUnits = true; } var field = funkin_data_event_SongEventSchema.getByName(this1,name); if(field == null) { return "Unknown"; } switch(field.type) { case "bool": return Std.string(value); case "enum": var valueString = Std.string(value); var h = field.keys.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(Std.string(field.keys.h[key]) == valueString) { return key; } } return valueString; case "float": var returnValue = Std.string(value); if(addUnits) { return funkin_data_event_SongEventSchema.addUnitsToString(this1,returnValue,field); } return returnValue; case "integer": var returnValue = Std.string(value); if(addUnits) { return funkin_data_event_SongEventSchema.addUnitsToString(this1,returnValue,field); } return returnValue; case "string": return Std.string(value); default: return "Unknown"; } }; funkin_data_event_SongEventSchema.addUnitsToString = function(this1,value,field) { if(field.units == null || field.units == "") { return value; } var unit = field.units; return value + (funkin_data_event_SongEventSchema.NO_SPACE_UNITS.indexOf(unit) != -1 ? "" : " ") + ("" + unit); }; var funkin_data_freeplay_album_AlbumRegistry = function() { funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData.call(this,"ALBUM","ui/freeplay/albums",funkin_data_freeplay_album_AlbumRegistry.ALBUM_DATA_VERSION_RULE); }; $hxClasses["funkin.data.freeplay.album.AlbumRegistry"] = funkin_data_freeplay_album_AlbumRegistry; funkin_data_freeplay_album_AlbumRegistry.__name__ = "funkin.data.freeplay.album.AlbumRegistry"; funkin_data_freeplay_album_AlbumRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData; funkin_data_freeplay_album_AlbumRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$ui_$freeplay_$Album_$funkin_$data_$freeplay_$album_$AlbumData.prototype,{ parseEntryData: function(id) { var parser = new JsonParser_$140(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$140(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_ui_freeplay_ScriptedAlbum.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_ui_freeplay_ScriptedAlbum.listScriptClasses(); } ,__class__: funkin_data_freeplay_album_AlbumRegistry }); var funkin_data_notestyle_NoteStyleRegistry = function() { funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData.call(this,"NOTESTYLE","notestyles",funkin_data_notestyle_NoteStyleRegistry.NOTE_STYLE_DATA_VERSION_RULE); }; $hxClasses["funkin.data.notestyle.NoteStyleRegistry"] = funkin_data_notestyle_NoteStyleRegistry; funkin_data_notestyle_NoteStyleRegistry.__name__ = "funkin.data.notestyle.NoteStyleRegistry"; funkin_data_notestyle_NoteStyleRegistry.__properties__ = {get_instance:"get_instance"}; funkin_data_notestyle_NoteStyleRegistry.get_instance = function() { if(funkin_data_notestyle_NoteStyleRegistry._instance == null) { funkin_data_notestyle_NoteStyleRegistry._instance = new funkin_data_notestyle_NoteStyleRegistry(); } return funkin_data_notestyle_NoteStyleRegistry._instance; }; funkin_data_notestyle_NoteStyleRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData; funkin_data_notestyle_NoteStyleRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$play_$notes_$notestyle_$NoteStyle_$funkin_$data_$notestyle_$NoteStyleData.prototype,{ fetchDefault: function() { return this.fetchEntry(funkin_util_Constants.DEFAULT_NOTE_STYLE); } ,parseEntryData: function(id) { var parser = new JsonParser_$48(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$48(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_play_notes_notestyle_ScriptedNoteStyle.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_play_notes_notestyle_ScriptedNoteStyle.listScriptClasses(); } ,__class__: funkin_data_notestyle_NoteStyleRegistry }); var funkin_data_song_SongMetadata = function(songName,artist,variation) { this.charter = null; this.version = funkin_data_song_SongRegistry.SONG_METADATA_VERSION; this.songName = songName; this.artist = artist; this.timeFormat = "ms"; this.divisions = null; this.offsets = new funkin_data_song_SongOffsets(); this.timeChanges = [new funkin_data_song_SongTimeChange(0,100)]; this.looped = false; this.playData = new funkin_data_song_SongPlayData(); this.playData.songVariations = []; this.playData.difficulties = []; this.playData.characters = new funkin_data_song_SongCharacterData("bf","gf","dad"); this.playData.stage = "mainStage"; this.playData.noteStyle = funkin_util_Constants.DEFAULT_NOTE_STYLE; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); this.variation = variation == null ? funkin_util_Constants.DEFAULT_VARIATION : variation; }; $hxClasses["funkin.data.song.SongMetadata"] = funkin_data_song_SongMetadata; funkin_data_song_SongMetadata.__name__ = "funkin.data.song.SongMetadata"; funkin_data_song_SongMetadata.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongMetadata.prototype = { version: null ,songName: null ,artist: null ,charter: null ,divisions: null ,looped: null ,offsets: null ,playData: null ,generatedBy: null ,timeFormat: null ,timeChanges: null ,variation: null ,clone: function() { var result = new funkin_data_song_SongMetadata(this.songName,this.artist,this.variation); result.version = this.version; result.timeFormat = this.timeFormat; result.divisions = this.divisions; result.offsets = this.offsets != null ? this.offsets.clone() : new funkin_data_song_SongOffsets(); result.timeChanges = funkin_util_tools_ArrayTools.deepClone(this.timeChanges); result.looped = this.looped; result.playData = this.playData.clone(); result.generatedBy = this.generatedBy; return result; } ,serialize: function(pretty) { if(pretty == null) { pretty = true; } this.updateVersionToLatest(); var ignoreNullOptionals = true; var writer = new JsonWriter_$0(ignoreNullOptionals); return writer.write(this,pretty ? " " : null); } ,updateVersionToLatest: function() { this.version = funkin_data_song_SongRegistry.SONG_METADATA_VERSION; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); } ,toString: function() { return "SongMetadata(" + this.songName + " by " + this.artist + ", variation " + this.variation + ")"; } ,__class__: funkin_data_song_SongMetadata }; var funkin_data_song_SongTimeChange = function(timeStamp,bpm,timeSignatureNum,timeSignatureDen,beatTime,beatTuplets) { if(timeSignatureDen == null) { timeSignatureDen = 4; } if(timeSignatureNum == null) { timeSignatureNum = 4; } this.timeStamp = timeStamp; this.bpm = bpm; this.timeSignatureNum = timeSignatureNum; this.timeSignatureDen = timeSignatureDen; this.beatTime = beatTime == null ? funkin_data_song_SongTimeChange.DEFAULT_BEAT_TIME : beatTime; this.beatTuplets = beatTuplets == null ? funkin_data_song_SongTimeChange.DEFAULT_BEAT_TUPLETS : beatTuplets; }; $hxClasses["funkin.data.song.SongTimeChange"] = funkin_data_song_SongTimeChange; funkin_data_song_SongTimeChange.__name__ = "funkin.data.song.SongTimeChange"; funkin_data_song_SongTimeChange.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongTimeChange.prototype = { timeStamp: null ,beatTime: null ,bpm: null ,timeSignatureNum: null ,timeSignatureDen: null ,beatTuplets: null ,clone: function() { return new funkin_data_song_SongTimeChange(this.timeStamp,this.bpm,this.timeSignatureNum,this.timeSignatureDen,this.beatTime,this.beatTuplets); } ,toString: function() { return "SongTimeChange(" + this.timeStamp + "ms," + this.bpm + "bpm)"; } ,__class__: funkin_data_song_SongTimeChange }; var funkin_data_song_SongOffsets = function(instrumental,altInstrumentals,vocals) { if(instrumental == null) { instrumental = 0.0; } this.instrumental = instrumental; this.altInstrumentals = altInstrumentals == null ? new haxe_ds_StringMap() : altInstrumentals; this.vocals = vocals == null ? new haxe_ds_StringMap() : vocals; }; $hxClasses["funkin.data.song.SongOffsets"] = funkin_data_song_SongOffsets; funkin_data_song_SongOffsets.__name__ = "funkin.data.song.SongOffsets"; funkin_data_song_SongOffsets.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongOffsets.prototype = { instrumental: null ,altInstrumentals: null ,vocals: null ,getInstrumentalOffset: function(instrumental) { if(instrumental == null || instrumental == "") { return this.instrumental; } if(!Object.prototype.hasOwnProperty.call(this.altInstrumentals.h,instrumental)) { return this.instrumental; } return this.altInstrumentals.h[instrumental]; } ,setInstrumentalOffset: function(value,instrumental) { if(instrumental == null || instrumental == "") { this.instrumental = value; } else { this.altInstrumentals.h[instrumental] = value; } return value; } ,getVocalOffset: function(charId) { if(!Object.prototype.hasOwnProperty.call(this.vocals.h,charId)) { return 0.0; } return this.vocals.h[charId]; } ,setVocalOffset: function(charId,value) { this.vocals.h[charId] = value; return value; } ,clone: function() { var result = new funkin_data_song_SongOffsets(this.instrumental); result.altInstrumentals = funkin_util_tools_MapTools.clone(this.altInstrumentals); result.vocals = funkin_util_tools_MapTools.clone(this.vocals); return result; } ,toString: function() { return "SongOffsets(" + this.instrumental + "ms, " + (this.altInstrumentals == null ? "null" : haxe_ds_StringMap.stringify(this.altInstrumentals.h)) + ", " + (this.vocals == null ? "null" : haxe_ds_StringMap.stringify(this.vocals.h)) + ")"; } ,__class__: funkin_data_song_SongOffsets }; var funkin_data_song_SongMusicData = function(songName,artist,variation) { if(variation == null) { variation = "default"; } this.version = funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION; this.songName = songName; this.artist = artist; this.timeFormat = "ms"; this.divisions = null; this.timeChanges = [new funkin_data_song_SongTimeChange(0,100)]; this.looped = false; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); this.variation = variation == null ? funkin_util_Constants.DEFAULT_VARIATION : variation; }; $hxClasses["funkin.data.song.SongMusicData"] = funkin_data_song_SongMusicData; funkin_data_song_SongMusicData.__name__ = "funkin.data.song.SongMusicData"; funkin_data_song_SongMusicData.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongMusicData.prototype = { version: null ,songName: null ,artist: null ,divisions: null ,looped: null ,generatedBy: null ,timeFormat: null ,timeChanges: null ,variation: null ,updateVersionToLatest: function() { this.version = funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); } ,clone: function() { var result = new funkin_data_song_SongMusicData(this.songName,this.artist,this.variation); result.version = this.version; result.timeFormat = this.timeFormat; result.divisions = this.divisions; result.timeChanges = funkin_util_tools_ArrayTools.clone(this.timeChanges); result.looped = this.looped; result.generatedBy = this.generatedBy; return result; } ,toString: function() { return "SongMusicData(" + this.songName + " by " + this.artist + ", variation " + this.variation + ")"; } ,__class__: funkin_data_song_SongMusicData }; var funkin_data_song_SongPlayData = function() { this.ratings = new haxe_ds_StringMap(); }; $hxClasses["funkin.data.song.SongPlayData"] = funkin_data_song_SongPlayData; funkin_data_song_SongPlayData.__name__ = "funkin.data.song.SongPlayData"; funkin_data_song_SongPlayData.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongPlayData.prototype = { songVariations: null ,difficulties: null ,characters: null ,stage: null ,noteStyle: null ,ratings: null ,album: null ,previewStart: null ,previewEnd: null ,clone: function() { var result = new funkin_data_song_SongPlayData(); result.songVariations = funkin_util_tools_ArrayTools.clone(this.songVariations); result.difficulties = funkin_util_tools_ArrayTools.clone(this.difficulties); result.characters = this.characters.clone(); result.stage = this.stage; result.noteStyle = this.noteStyle; result.ratings = funkin_util_tools_MapTools.clone(this.ratings); result.album = this.album; result.previewStart = this.previewStart; result.previewEnd = this.previewEnd; return result; } ,toString: function() { return "SongPlayData(" + Std.string(this.songVariations) + ", " + Std.string(this.difficulties) + ")"; } ,__class__: funkin_data_song_SongPlayData }; var funkin_data_song_SongCharacterData = function(player,girlfriend,opponent,instrumental) { if(instrumental == null) { instrumental = ""; } if(opponent == null) { opponent = ""; } if(girlfriend == null) { girlfriend = ""; } if(player == null) { player = ""; } this.altInstrumentals = []; this.instrumental = ""; this.opponent = ""; this.girlfriend = ""; this.player = ""; this.player = player; this.girlfriend = girlfriend; this.opponent = opponent; this.instrumental = instrumental; }; $hxClasses["funkin.data.song.SongCharacterData"] = funkin_data_song_SongCharacterData; funkin_data_song_SongCharacterData.__name__ = "funkin.data.song.SongCharacterData"; funkin_data_song_SongCharacterData.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongCharacterData.prototype = { player: null ,girlfriend: null ,opponent: null ,instrumental: null ,altInstrumentals: null ,clone: function() { var result = new funkin_data_song_SongCharacterData(this.player,this.girlfriend,this.opponent,this.instrumental); result.altInstrumentals = funkin_util_tools_ArrayTools.clone(this.altInstrumentals); return result; } ,toString: function() { return "SongCharacterData(" + this.player + ", " + this.girlfriend + ", " + this.opponent + ", " + this.instrumental + ", [" + this.altInstrumentals.join(", ") + "])"; } ,__class__: funkin_data_song_SongCharacterData }; var funkin_data_song_SongChartData = function(scrollSpeed,events,notes) { this.version = funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION; this.events = events; this.notes = notes; this.scrollSpeed = scrollSpeed; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); }; $hxClasses["funkin.data.song.SongChartData"] = funkin_data_song_SongChartData; funkin_data_song_SongChartData.__name__ = "funkin.data.song.SongChartData"; funkin_data_song_SongChartData.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongChartData.prototype = { version: null ,scrollSpeed: null ,events: null ,notes: null ,generatedBy: null ,variation: null ,getScrollSpeed: function(diff) { if(diff == null) { diff = "default"; } var result = this.scrollSpeed.h[diff]; if(result == 0.0 && diff != "default") { return this.getScrollSpeed("default"); } if(result == 0.0) { return 1.0; } else { return result; } } ,setScrollSpeed: function(value,diff) { if(diff == null) { diff = "default"; } this.scrollSpeed.h[diff] = value; return value; } ,getNotes: function(diff) { var result = this.notes.h[diff]; if(result == null && diff != "normal") { return this.getNotes("normal"); } if(result == null) { return []; } else { return result; } } ,setNotes: function(value,diff) { this.notes.h[diff] = value; return value; } ,serialize: function(pretty) { if(pretty == null) { pretty = true; } this.updateVersionToLatest(); var ignoreNullOptionals = true; var writer = new JsonWriter_$22(ignoreNullOptionals); return writer.write(this,pretty ? " " : null); } ,updateVersionToLatest: function() { this.version = funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); } ,clone: function() { var noteDataClone = new haxe_ds_StringMap(); var h = this.notes.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var value = funkin_util_tools_ArrayTools.deepClone(this.notes.h[key]); noteDataClone.h[key] = value; } var eventDataClone = funkin_util_tools_ArrayTools.deepClone(this.events); var result = new funkin_data_song_SongChartData(funkin_util_tools_MapTools.clone(this.scrollSpeed),eventDataClone,noteDataClone); result.version = this.version; result.generatedBy = this.generatedBy; result.variation = this.variation; return result; } ,toString: function() { return "SongChartData(" + this.events.length + " events, " + funkin_util_tools_MapTools.size(this.notes) + " difficulties, " + this.generatedBy + ")"; } ,__class__: funkin_data_song_SongChartData }; var funkin_data_song_SongEventDataRaw = function(time,eventKind,value) { this._stepTime = null; this.activated = false; this.value = null; this.set_time(time); this.eventKind = eventKind; this.value = value; }; $hxClasses["funkin.data.song.SongEventDataRaw"] = funkin_data_song_SongEventDataRaw; funkin_data_song_SongEventDataRaw.__name__ = "funkin.data.song.SongEventDataRaw"; funkin_data_song_SongEventDataRaw.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongEventDataRaw.prototype = { time: null ,set_time: function(value) { this._stepTime = null; return this.time = value; } ,eventKind: null ,value: null ,activated: null ,_stepTime: null ,getStepTime: function(force) { if(force == null) { force = false; } if(this._stepTime != null && !force) { return this._stepTime; } return this._stepTime = funkin_Conductor.get_instance().getTimeInSteps(this.time); } ,clone: function() { return new funkin_data_song_SongEventDataRaw(this.time,this.eventKind,this.value); } ,__class__: funkin_data_song_SongEventDataRaw ,__properties__: {set_time:"set_time"} }; var funkin_data_song_SongEventData = {}; funkin_data_song_SongEventData._new = function(time,eventKind,value) { return new funkin_data_song_SongEventDataRaw(time,eventKind,value); }; funkin_data_song_SongEventData.valueAsStruct = function(this1,defaultKey) { if(defaultKey == null) { defaultKey = "key"; } if(this1.value == null) { return { }; } if(((this1.value) instanceof Array)) { var result = { }; result[defaultKey] = this1.value; return result; } else if(Reflect.isObject(this1.value)) { return this1.value; } else { var result = { }; result[defaultKey] = this1.value; return result; } }; funkin_data_song_SongEventData.getHandler = function(this1) { return funkin_data_event_SongEventRegistry.getEvent(this1.eventKind); }; funkin_data_song_SongEventData.getSchema = function(this1) { return funkin_data_event_SongEventRegistry.getEventSchema(this1.eventKind); }; funkin_data_song_SongEventData.getDynamic = function(this1,key) { if(this1.value == null) { return null; } else { return Reflect.field(this1.value,key); } }; funkin_data_song_SongEventData.getBool = function(this1,key) { if(this1.value == null) { return null; } else { return Reflect.field(this1.value,key); } }; funkin_data_song_SongEventData.getInt = function(this1,key) { if(this1.value == null) { return null; } var result = Reflect.field(this1.value,key); if(result == null) { return null; } if(typeof(result) == "number" && ((result | 0) === result)) { return result; } if(typeof(result) == "string") { return Std.parseInt(result); } return result; }; funkin_data_song_SongEventData.getFloat = function(this1,key) { if(this1.value == null) { return null; } var result = Reflect.field(this1.value,key); if(result == null) { return null; } if(typeof(result) == "number") { return result; } if(typeof(result) == "string") { return parseFloat(result); } return result; }; funkin_data_song_SongEventData.getString = function(this1,key) { if(this1.value == null) { return null; } else { return Reflect.field(this1.value,key); } }; funkin_data_song_SongEventData.getArray = function(this1,key) { if(this1.value == null) { return null; } else { return Reflect.field(this1.value,key); } }; funkin_data_song_SongEventData.getBoolArray = function(this1,key) { if(this1.value == null) { return null; } else { return Reflect.field(this1.value,key); } }; funkin_data_song_SongEventData.buildTooltip = function(this1) { var eventHandler = funkin_data_event_SongEventRegistry.getEvent(this1.eventKind); var eventSchema = funkin_data_event_SongEventRegistry.getEventSchema(this1.eventKind); if(eventSchema == null) { return "Unknown Event: " + this1.eventKind; } var result = "" + eventHandler.getTitle(); var tmp = funkin_data_event_SongEventSchema.getFirstField(eventSchema); var defaultKey = tmp != null ? tmp.name : null; var valueStruct = funkin_data_song_SongEventData.valueAsStruct(this1,defaultKey); var access = valueStruct; var _g_access = access; var _g_keys = Reflect.fields(access); var _g_index = 0; while(_g_index < _g_keys.length) { var key = _g_keys[_g_index++]; var pair_value = _g_access[key]; var pair_key = key; var key1 = pair_key; var value = pair_value; var tmp = funkin_data_event_SongEventSchema.getByName(eventSchema,key1); var tmp1 = tmp != null ? tmp.title : null; var title = tmp1 != null ? tmp1 : "UnknownField"; var tmp2 = funkin_data_event_SongEventSchema.stringifyFieldValue(eventSchema,key1,value); var valueStr = tmp2 != null ? tmp2 : "UnknownValue"; result += "\n- " + title + ": " + valueStr; } return result; }; funkin_data_song_SongEventData.clone = function(this1) { return funkin_data_song_SongEventData._new(this1.time,this1.eventKind,this1.value); }; funkin_data_song_SongEventData.op_equals = function(this1,other) { if(this1.time == other.time && this1.eventKind == other.eventKind) { return this1.value == other.value; } else { return false; } }; funkin_data_song_SongEventData.op_notEquals = function(this1,other) { if(!(this1.time != other.time || this1.eventKind != other.eventKind)) { return this1.value != other.value; } else { return true; } }; funkin_data_song_SongEventData.op_greaterThan = function(this1,other) { return this1.time > other.time; }; funkin_data_song_SongEventData.op_lessThan = function(this1,other) { return this1.time < other.time; }; funkin_data_song_SongEventData.op_greaterThanOrEquals = function(this1,other) { return this1.time >= other.time; }; funkin_data_song_SongEventData.op_lessThanOrEquals = function(this1,other) { return this1.time <= other.time; }; funkin_data_song_SongEventData.toString = function(this1) { return "SongEventData(" + this1.time + "ms, " + this1.eventKind + ": " + Std.string(this1.value) + ")"; }; var funkin_data_song_SongNoteDataRaw = function(time,data,length,kind) { if(kind == null) { kind = ""; } if(length == null) { length = 0; } this._stepLength = null; this._stepTime = null; this.kind = null; this.set_time(time); this.data = data; this.set_length(length); this.set_kind(kind); }; $hxClasses["funkin.data.song.SongNoteDataRaw"] = funkin_data_song_SongNoteDataRaw; funkin_data_song_SongNoteDataRaw.__name__ = "funkin.data.song.SongNoteDataRaw"; funkin_data_song_SongNoteDataRaw.__interfaces__ = [funkin_util_tools_ICloneable]; funkin_data_song_SongNoteDataRaw.prototype = { time: null ,set_time: function(value) { this._stepTime = null; return this.time = value; } ,data: null ,length: null ,set_length: function(value) { this._stepLength = null; return this.length = value; } ,kind: null ,get_kind: function() { if(this.kind == null || this.kind == "") { return null; } return this.kind; } ,set_kind: function(value) { if(value == "") { value = null; } return this.kind = value; } ,getDirection: function(strumlineSize) { if(strumlineSize == null) { strumlineSize = 4; } return this.data % strumlineSize; } ,getDirectionName: function(strumlineSize) { if(strumlineSize == null) { strumlineSize = 4; } return funkin_data_song_SongNoteData.buildDirectionName(this.data,strumlineSize); } ,getStrumlineIndex: function(strumlineSize) { if(strumlineSize == null) { strumlineSize = 4; } return Math.floor(this.data / strumlineSize); } ,getMustHitNote: function(strumlineSize) { if(strumlineSize == null) { strumlineSize = 4; } return this.getStrumlineIndex(strumlineSize) == 0; } ,_stepTime: null ,getStepTime: function(force) { if(force == null) { force = false; } if(this._stepTime != null && !force) { return this._stepTime; } return this._stepTime = funkin_Conductor.get_instance().getTimeInSteps(this.time); } ,_stepLength: null ,getStepLength: function(force) { if(force == null) { force = false; } if(this.length <= 0) { return 0.0; } if(this._stepLength != null && !force) { return this._stepLength; } return this._stepLength = funkin_Conductor.get_instance().getTimeInSteps(this.time + this.length) - this.getStepTime(); } ,setStepLength: function(value) { if(value <= 0) { this.set_length(0.0); } else { var endStep = this.getStepTime() + value; var endMs = funkin_Conductor.get_instance().getStepTimeInMs(endStep); var lengthMs = endMs - this.time; this.set_length(lengthMs); } this._stepLength = null; } ,clone: function() { return new funkin_data_song_SongNoteDataRaw(this.time,this.data,this.length,this.get_kind()); } ,toString: function() { return "SongNoteData(" + this.time + "ms, " + (this.length > 0 ? "[" + this.length + "ms hold]" : "") + (" " + this.data) + (this.get_kind() != "" ? " [kind: " + this.get_kind() + "])" : ")"); } ,__class__: funkin_data_song_SongNoteDataRaw ,__properties__: {set_kind:"set_kind",get_kind:"get_kind",set_length:"set_length",set_time:"set_time"} }; var funkin_data_song_SongNoteData = {}; funkin_data_song_SongNoteData.__properties__ = {get_isHoldNote:"get_isHoldNote"}; funkin_data_song_SongNoteData._new = function(time,data,length,kind) { if(kind == null) { kind = ""; } if(length == null) { length = 0; } return new funkin_data_song_SongNoteDataRaw(time,data,length,kind); }; funkin_data_song_SongNoteData.buildDirectionName = function(data,strumlineSize) { if(strumlineSize == null) { strumlineSize = 4; } switch(data % strumlineSize) { case 0: return "Left"; case 1: return "Down"; case 2: return "Up"; case 3: return "Right"; default: return "Unknown"; } }; funkin_data_song_SongNoteData.get_isHoldNote = function(this1) { return this1.length > 0; }; funkin_data_song_SongNoteData.op_equals = function(this1,other) { if(this1 == null) { return other == null; } if(other == null) { return false; } if(this1.get_kind() == null || this1.get_kind() == "") { if(other.get_kind() != "" && this1.get_kind() != null) { return false; } } else if(other.get_kind() == "" || this1.get_kind() == null) { return false; } if(this1.time == other.time && this1.data == other.data) { return this1.length == other.length; } else { return false; } }; funkin_data_song_SongNoteData.op_notEquals = function(this1,other) { if(this1 == null) { return other == null; } if(other == null) { return false; } if(this1.get_kind() == "") { if(other.get_kind() != "") { return true; } } else if(other.get_kind() == "") { return true; } if(!(this1.time != other.time || this1.data != other.data)) { return this1.length != other.length; } else { return true; } }; funkin_data_song_SongNoteData.op_greaterThan = function(this1,other) { if(other == null) { return false; } return this1.time > other.time; }; funkin_data_song_SongNoteData.op_lessThan = function(this1,other) { if(other == null) { return false; } return this1.time < other.time; }; funkin_data_song_SongNoteData.op_greaterThanOrEquals = function(this1,other) { if(other == null) { return false; } return this1.time >= other.time; }; funkin_data_song_SongNoteData.op_lessThanOrEquals = function(this1,other) { if(other == null) { return false; } return this1.time <= other.time; }; funkin_data_song_SongNoteData.clone = function(this1) { return funkin_data_song_SongNoteData._new(this1.time,this1.data,this1.length,this1.get_kind()); }; funkin_data_song_SongNoteData.toString = function(this1) { return "SongNoteData(" + this1.time + "ms, " + (this1.length > 0 ? "[" + this1.length + "ms hold]" : "") + (" " + this1.data) + (this1.get_kind() != "" ? " [kind: " + this1.get_kind() + "])" : ")"); }; var funkin_data_song_SongDataUtils = function() { }; $hxClasses["funkin.data.song.SongDataUtils"] = funkin_data_song_SongDataUtils; funkin_data_song_SongDataUtils.__name__ = "funkin.data.song.SongDataUtils"; funkin_data_song_SongDataUtils.offsetSongNoteData = function(notes,offset) { var offsetNote = function(note) { var time = note.time + offset; var data = note.data; var length = note.length; var kind = note.get_kind(); return funkin_data_song_SongNoteData._new(time,data,length,kind); }; var _g = []; var _g1 = 0; var _g2 = notes.length; while(_g1 < _g2) { var i = _g1++; _g.push(offsetNote(notes[i])); } var result = _g; return result; }; funkin_data_song_SongDataUtils.offsetSongEventData = function(events,offset) { var result = new Array(events.length); var _g = 0; var _g1 = events.length; while(_g < _g1) { var i = _g++; var event = events[i]; result[i] = funkin_data_song_SongEventData._new(event.time + offset,event.eventKind,event.value); } return result; }; funkin_data_song_SongDataUtils.clampSongNoteData = function(notes,startTime,endTime) { var _g = []; var _g1 = 0; var _g2 = notes; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.time >= startTime && v.time <= endTime) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.clampSongEventData = function(events,startTime,endTime) { var _g = []; var _g1 = 0; var _g2 = events; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.time >= startTime && v.time <= endTime) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.subtractNotes = function(notes,subtrahend) { if(notes.length == 0 || subtrahend.length == 0) { return notes; } var _g = []; var _g1 = 0; var _g2 = notes; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if((function(note) { var _g = 0; while(_g < subtrahend.length) { var x = subtrahend[_g]; ++_g; if(funkin_data_song_SongNoteData.op_equals(x,note)) { return false; } } return true; })(v)) { _g.push(v); } } var result = _g; return result; }; funkin_data_song_SongDataUtils.subtractEvents = function(events,subtrahend) { if(events.length == 0 || subtrahend.length == 0) { return events; } var _g = []; var _g1 = 0; var _g2 = events; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if((function(event) { var _g = 0; while(_g < subtrahend.length) { var x = subtrahend[_g]; ++_g; if(funkin_data_song_SongEventData.op_equals(x,event)) { return false; } } return true; })(v)) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.flipNotes = function(notes,strumlineSize) { if(strumlineSize == null) { strumlineSize = 4; } var result = new Array(notes.length); var _g = 0; var _g1 = notes.length; while(_g < _g1) { var i = _g++; var note = notes[i]; var newData = note.data; if(newData < strumlineSize) { newData += strumlineSize; } else { newData -= strumlineSize; } result[i] = funkin_data_song_SongNoteData._new(note.time,newData,note.length,note.get_kind()); } return result; }; funkin_data_song_SongDataUtils.buildNoteClipboard = function(notes,timeOffset) { if(notes.length == 0) { return notes; } if(timeOffset == null) { timeOffset = notes[0].time | 0; } return funkin_data_song_SongDataUtils.offsetSongNoteData(funkin_data_song_SongDataUtils.sortNotes(notes),-timeOffset); }; funkin_data_song_SongDataUtils.buildEventClipboard = function(events,timeOffset) { if(events.length == 0) { return events; } if(timeOffset == null) { timeOffset = events[0].time | 0; } return funkin_data_song_SongDataUtils.offsetSongEventData(funkin_data_song_SongDataUtils.sortEvents(events),-timeOffset); }; funkin_data_song_SongDataUtils.sortNotes = function(notes,desc) { if(desc == null) { desc = false; } notes.sort(function(a,b) { var Order = desc ? 1 : -1; var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = Order; } else if(Value1 > Value2) { result = -Order; } return result; }); return notes; }; funkin_data_song_SongDataUtils.sortEvents = function(events,desc) { if(desc == null) { desc = false; } events.sort(function(a,b) { var Order = desc ? 1 : -1; var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = Order; } else if(Value1 > Value2) { result = -Order; } return result; }); return events; }; funkin_data_song_SongDataUtils.sortTimeChanges = function(timeChanges,desc) { if(desc == null) { desc = false; } timeChanges.sort(function(a,b) { var Order = desc ? 1 : -1; var Value1 = a.timeStamp; var Value2 = b.timeStamp; var result = 0; if(Value1 < Value2) { result = Order; } else if(Value1 > Value2) { result = -Order; } return result; }); return timeChanges; }; funkin_data_song_SongDataUtils.writeItemsToClipboard = function(data) { var ignoreNullOptionals = true; var writer = new JsonWriter_$53(ignoreNullOptionals); var dataString = writer.write(data," "); funkin_util_ClipboardUtil.setClipboard(dataString); haxe_Log.trace("Wrote " + data.notes.length + " notes and " + data.events.length + " events to clipboard.",{ fileName : "source/funkin/data/song/SongDataUtils.hx", lineNumber : 219, className : "funkin.data.song.SongDataUtils", methodName : "writeItemsToClipboard"}); }; funkin_data_song_SongDataUtils.readItemsFromClipboard = function() { var notesString = funkin_util_ClipboardUtil.getClipboard(); haxe_Log.trace("Read " + notesString.length + " characters from clipboard.",{ fileName : "source/funkin/data/song/SongDataUtils.hx", lineNumber : 229, className : "funkin.data.song.SongDataUtils", methodName : "readItemsFromClipboard"}); var parser = new JsonParser_$133(); parser.ignoreUnknownVariables = false; parser.fromJson(notesString,"clipboard"); if(parser.errors.length > 0) { haxe_Log.trace("[SongDataUtils] Error parsing note JSON data from clipboard.",{ fileName : "source/funkin/data/song/SongDataUtils.hx", lineNumber : 236, className : "funkin.data.song.SongDataUtils", methodName : "readItemsFromClipboard"}); var _g = 0; var _g1 = parser.errors; while(_g < _g1.length) { var error = _g1[_g]; ++_g; funkin_data_DataError.printError(error); } return { valid : false, notes : [], events : []}; } else { var data = parser.value; haxe_Log.trace("Parsed " + data.notes.length + " notes and " + data.events.length + " from clipboard.",{ fileName : "source/funkin/data/song/SongDataUtils.hx", lineNumber : 248, className : "funkin.data.song.SongDataUtils", methodName : "readItemsFromClipboard"}); data.valid = true; return data; } }; funkin_data_song_SongDataUtils.getNotesInTimeRange = function(notes,start,end) { var _g = []; var _g1 = 0; var _g2 = notes; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.time >= start && v.time <= end) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.getEventsInTimeRange = function(events,start,end) { var _g = []; var _g1 = 0; var _g2 = events; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.time >= start && v.time <= end) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.getNotesInDataRange = function(notes,start,end) { var _g = []; var _g1 = 0; var _g2 = notes; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.data >= start && v.data <= end) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.getNotesWithData = function(notes,data) { var _g = []; var _g1 = 0; var _g2 = notes; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(data.indexOf(v.data) != -1) { _g.push(v); } } return _g; }; funkin_data_song_SongDataUtils.getEventsWithKind = function(events,kinds) { var _g = []; var _g1 = 0; var _g2 = events; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(kinds.indexOf(v.eventKind) != -1) { _g.push(v); } } return _g; }; var funkin_data_song_SongRegistry = function() { funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata.call(this,"SONG","songs",funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE); }; $hxClasses["funkin.data.song.SongRegistry"] = funkin_data_song_SongRegistry; funkin_data_song_SongRegistry.__name__ = "funkin.data.song.SongRegistry"; funkin_data_song_SongRegistry.__properties__ = {get_instance:"get_instance",get_DEFAULT_GENERATEDBY:"get_DEFAULT_GENERATEDBY"}; funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY = function() { return "" + funkin_util_Constants.TITLE + " - " + funkin_util_Constants.get_VERSION(); }; funkin_data_song_SongRegistry.get_instance = function() { if(funkin_data_song_SongRegistry._instance == null) { funkin_data_song_SongRegistry._instance = new funkin_data_song_SongRegistry(); } return funkin_data_song_SongRegistry._instance; }; funkin_data_song_SongRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata; funkin_data_song_SongRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$play_$song_$Song_$funkin_$data_$song_$SongMetadata.prototype,{ loadEntries: function() { var _gthis = this; this.clearEntries(); var scriptedEntryClassNames = this.getScriptedClassNames(); this.log("Parsing " + scriptedEntryClassNames.length + " scripted entries..."); var _g = 0; while(_g < scriptedEntryClassNames.length) { var entryCls = scriptedEntryClassNames[_g]; ++_g; var entry = this.createScriptedEntry(entryCls); if(entry != null) { this.log("Successfully created scripted entry (" + entryCls + " = " + entry.id + ")"); this.entries.h[entry.id] = entry; this.scriptedEntryIds.h[entry.id] = entryCls; } else { this.log("Failed to create scripted entry (" + entryCls + ")"); } } var _this = funkin_util_assets_DataAssets.listDataFilesInPath("songs/","-metadata.json"); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = _this[i].split("/")[0]; } var entryIdList = result; var _g = []; var _g1 = 0; var _g2 = entryIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!Object.prototype.hasOwnProperty.call(_gthis.entries.h,v)) { _g.push(v); } } var unscriptedEntryIds = _g; this.log("Parsing " + unscriptedEntryIds.length + " unscripted entries..."); var _g = 0; while(_g < unscriptedEntryIds.length) { var entryId = unscriptedEntryIds[_g]; ++_g; try { var entry = this.createEntry(entryId); if(entry != null) { haxe_Log.trace(" Loaded entry data: " + Std.string(entry),{ fileName : "source/funkin/data/song/SongRegistry.hx", lineNumber : 103, className : "funkin.data.song.SongRegistry", methodName : "loadEntries"}); this.entries.h[entry.id] = entry; } } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var e = haxe_Exception.caught(_g1).unwrap(); haxe_Log.trace(" Failed to load entry data: " + entryId,{ fileName : "source/funkin/data/song/SongRegistry.hx", lineNumber : 110, className : "funkin.data.song.SongRegistry", methodName : "loadEntries"}); haxe_Log.trace(e,{ fileName : "source/funkin/data/song/SongRegistry.hx", lineNumber : 111, className : "funkin.data.song.SongRegistry", methodName : "loadEntries"}); continue; } } } ,parseEntryData: function(id) { return this.parseEntryMetadata(id); } ,parseEntryDataRaw: function(contents,fileName) { if(fileName == null) { fileName = "raw"; } return this.parseEntryMetadataRaw(contents); } ,parseEntryMetadata: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$0(); parser.ignoreUnknownVariables = true; var _g = this.loadEntryMetadataFile(id,variation); if(_g == null) { return null; } else { var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); } if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return this.cleanMetadata(parser.value,variation); } ,parseEntryMetadataRaw: function(contents,fileName,variation) { if(fileName == null) { fileName = "raw"; } if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$0(); parser.ignoreUnknownVariables = true; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return this.cleanMetadata(parser.value,variation); } ,parseEntryMetadataWithMigration: function(id,variation,version) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } if(funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE == null || funkin_util_VersionUtil.validateVersion(version,funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE)) { return this.parseEntryMetadata(id,variation); } else if(funkin_util_VersionUtil.validateVersion(version,thx_semver_VersionRule.stringToVersionRule("2.1.x"))) { return this.parseEntryMetadata_v2_1_0(id,variation); } else if(funkin_util_VersionUtil.validateVersion(version,thx_semver_VersionRule.stringToVersionRule("2.0.x"))) { return this.parseEntryMetadata_v2_0_0(id,variation); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Metadata entry " + id + ":" + variation + " does not support migration to version " + (funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE == null ? "null" : thx_semver_VersionRule.toString(funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE)) + "."); } } ,parseEntryMetadataRawWithMigration: function(contents,fileName,version) { if(fileName == null) { fileName = "raw"; } if(funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE == null || funkin_util_VersionUtil.validateVersion(version,funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE)) { return this.parseEntryMetadataRaw(contents,fileName); } else if(funkin_util_VersionUtil.validateVersion(version,thx_semver_VersionRule.stringToVersionRule("2.1.x"))) { return this.parseEntryMetadataRaw_v2_1_0(contents,fileName); } else if(funkin_util_VersionUtil.validateVersion(version,thx_semver_VersionRule.stringToVersionRule("2.0.x"))) { return this.parseEntryMetadataRaw_v2_0_0(contents,fileName); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Metadata entry \"" + fileName + "\" does not support migration to version " + (funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE == null ? "null" : thx_semver_VersionRule.toString(funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE)) + "."); } } ,parseEntryMetadata_v2_1_0: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$1(); parser.ignoreUnknownVariables = true; var _g = this.loadEntryMetadataFile(id,variation); if(_g == null) { return null; } else { var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); } if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return this.cleanMetadata(funkin_data_song_migrator_SongDataMigrator.migrate_SongMetadata_v2_1_0(parser.value),variation); } ,parseEntryMetadata_v2_0_0: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$2(); parser.ignoreUnknownVariables = true; var _g = this.loadEntryMetadataFile(id,variation); if(_g == null) { return null; } else { var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); } if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return this.cleanMetadata(funkin_data_song_migrator_SongDataMigrator.migrate_SongMetadata_v2_0_0(parser.value),variation); } ,parseEntryMetadataRaw_v2_1_0: function(contents,fileName) { if(fileName == null) { fileName = "raw"; } var parser = new JsonParser_$1(); parser.ignoreUnknownVariables = true; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return funkin_data_song_migrator_SongDataMigrator.migrate_SongMetadata_v2_1_0(parser.value); } ,parseEntryMetadataRaw_v2_0_0: function(contents,fileName) { if(fileName == null) { fileName = "raw"; } var parser = new JsonParser_$2(); parser.ignoreUnknownVariables = true; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return funkin_data_song_migrator_SongDataMigrator.migrate_SongMetadata_v2_0_0(parser.value); } ,parseMusicData: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$44(); parser.ignoreUnknownVariables = false; var _g = this.loadMusicDataFile(id,variation); if(_g == null) { return null; } else { var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); } if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseMusicDataRaw: function(contents,fileName) { if(fileName == null) { fileName = "raw"; } var parser = new JsonParser_$44(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,parseMusicDataWithMigration: function(id,variation,version) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } if(funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION_RULE == null || funkin_util_VersionUtil.validateVersion(version,funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION_RULE)) { return this.parseMusicData(id,variation); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Chart entry " + id + ":" + variation + " does not support migration to version " + (funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE == null ? "null" : thx_semver_VersionRule.toString(funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE)) + "."); } } ,parseMusicDataRawWithMigration: function(contents,fileName,version) { if(fileName == null) { fileName = "raw"; } if(funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION_RULE == null || funkin_util_VersionUtil.validateVersion(version,funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION_RULE)) { return this.parseMusicDataRaw(contents,fileName); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Chart entry \"" + fileName + "\" does not support migration to version " + (funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE == null ? "null" : thx_semver_VersionRule.toString(funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE)) + "."); } } ,parseEntryChartData: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$3(); parser.ignoreUnknownVariables = true; var _g = this.loadEntryChartFile(id,variation); if(_g == null) { return null; } else { var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); } if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return this.cleanChartData(parser.value,variation); } ,parseEntryChartDataRaw: function(contents,fileName,variation) { if(fileName == null) { fileName = "raw"; } if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var parser = new JsonParser_$3(); parser.ignoreUnknownVariables = true; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return this.cleanChartData(parser.value,variation); } ,parseEntryChartDataWithMigration: function(id,variation,version) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } if(funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE == null || funkin_util_VersionUtil.validateVersion(version,funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE)) { return this.parseEntryChartData(id,variation); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Chart entry " + id + ":" + variation + " does not support migration to version " + (funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE == null ? "null" : thx_semver_VersionRule.toString(funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE)) + "."); } } ,parseEntryChartDataRawWithMigration: function(contents,fileName,version) { if(fileName == null) { fileName = "raw"; } if(funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE == null || funkin_util_VersionUtil.validateVersion(version,funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE)) { return this.parseEntryChartDataRaw(contents,fileName); } else { throw haxe_Exception.thrown("[" + this.registryId + "] Chart entry \"" + fileName + "\" does not support migration to version " + (funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE == null ? "null" : thx_semver_VersionRule.toString(funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE)) + "."); } } ,createScriptedEntry: function(clsName) { return funkin_play_song_ScriptedSong.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_play_song_ScriptedSong.listScriptClasses(); } ,loadEntryMetadataFile: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id + "/" + id + "-metadata" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation)); if(!openfl_utils_Assets.exists(entryFilePath)) { haxe_Log.trace(" [WARN] Could not locate file " + entryFilePath,{ fileName : "source/funkin/data/song/SongRegistry.hx", lineNumber : 436, className : "funkin.data.song.SongRegistry", methodName : "loadEntryMetadataFile"}); return null; } var rawJson = openfl_utils_Assets.getText(entryFilePath); if(rawJson == null) { return null; } rawJson = StringTools.trim(rawJson); return { fileName : entryFilePath, contents : rawJson}; } ,loadMusicDataFile: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var entryFilePath = funkin_Paths.file("music/" + id + "/" + id + "-metadata" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation) + ".json"); if(!openfl_utils_Assets.exists(entryFilePath)) { return null; } var rawJson = openfl_utils_Assets.getText(entryFilePath); if(rawJson == null) { return null; } rawJson = StringTools.trim(rawJson); return { fileName : entryFilePath, contents : rawJson}; } ,hasMusicDataFile: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var entryFilePath = funkin_Paths.file("music/" + id + "/" + id + "-metadata" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation) + ".json"); return openfl_utils_Assets.exists(entryFilePath); } ,loadEntryChartFile: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var entryFilePath = funkin_Paths.json("" + this.dataFilePath + "/" + id + "/" + id + "-chart" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation)); if(!openfl_utils_Assets.exists(entryFilePath)) { return null; } var rawJson = openfl_utils_Assets.getText(entryFilePath); if(rawJson == null) { return null; } rawJson = StringTools.trim(rawJson); return { fileName : entryFilePath, contents : rawJson}; } ,fetchEntryMetadataVersion: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var tmp = this.loadEntryMetadataFile(id,variation); var entryStr = tmp != null ? tmp.contents : null; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,fetchEntryChartVersion: function(id,variation) { if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } var tmp = this.loadEntryChartFile(id,variation); var entryStr = tmp != null ? tmp.contents : null; var entryVersion = funkin_util_VersionUtil.getVersionFromJSON(entryStr); return entryVersion; } ,cleanMetadata: function(metadata,variation) { metadata.variation = variation; return metadata; } ,cleanChartData: function(chartData,variation) { chartData.variation = variation; return chartData; } ,listBaseGameSongIds: function() { return ["tutorial","bopeebo","fresh","dadbattle","spookeez","south","monster","pico","philly-nice","blammed","satin-panties","high","milf","cocoa","eggnog","winter-horrorland","senpai","roses","thorns","ugh","guns","stress","darnell","lit-up","2hot","blazin"]; } ,listModdedSongIds: function() { var _gthis = this; var _g = []; var _g1 = 0; var _g2 = this.listEntryIds(); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_gthis.listBaseGameSongIds().indexOf(v) == -1) { _g.push(v); } } return _g; } ,__class__: funkin_data_song_SongRegistry }); var funkin_data_song_importer_ChartManifestData = function(songId) { this.version = funkin_data_song_importer_ChartManifestData.CHART_MANIFEST_DATA_VERSION; this.songId = songId; }; $hxClasses["funkin.data.song.importer.ChartManifestData"] = funkin_data_song_importer_ChartManifestData; funkin_data_song_importer_ChartManifestData.__name__ = "funkin.data.song.importer.ChartManifestData"; funkin_data_song_importer_ChartManifestData.deserialize = function(contents) { var parser = new JsonParser_$141(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,"manifest.json"); if(parser.errors.length > 0) { haxe_Log.trace("[ChartManifest] Failed to parse chart file manifest",{ fileName : "source/funkin/data/song/importer/ChartManifestData.hx", lineNumber : 84, className : "funkin.data.song.importer.ChartManifestData", methodName : "deserialize"}); var _g = 0; var _g1 = parser.errors; while(_g < _g1.length) { var error = _g1[_g]; ++_g; funkin_data_DataError.printError(error); } return null; } return parser.value; }; funkin_data_song_importer_ChartManifestData.prototype = { version: null ,songId: null ,getMetadataFileName: function(variation) { if(variation == null || variation == "") { variation = funkin_util_Constants.DEFAULT_VARIATION; } return "" + this.songId + "-metadata" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation) + "." + funkin_util_Constants.EXT_DATA; } ,getChartDataFileName: function(variation) { if(variation == null || variation == "") { variation = funkin_util_Constants.DEFAULT_VARIATION; } return "" + this.songId + "-chart" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation) + "." + funkin_util_Constants.EXT_DATA; } ,getInstFileName: function(variation) { if(variation == null || variation == "") { variation = funkin_util_Constants.DEFAULT_VARIATION; } return "Inst" + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation) + "." + funkin_util_Constants.EXT_SOUND; } ,getVocalsFileName: function(charId,variation) { if(variation == null || variation == "") { variation = funkin_util_Constants.DEFAULT_VARIATION; } return "Voices-" + charId + (variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : "-" + variation) + "." + funkin_util_Constants.EXT_SOUND; } ,serialize: function(pretty) { if(pretty == null) { pretty = true; } this.updateVersionToLatest(); var writer = new JsonWriter_$54(); return writer.write(this,pretty ? " " : null); } ,updateVersionToLatest: function() { this.version = funkin_data_song_importer_ChartManifestData.CHART_MANIFEST_DATA_VERSION; } ,__class__: funkin_data_song_importer_ChartManifestData }; var funkin_data_song_importer_FNFLegacyData = function() { }; $hxClasses["funkin.data.song.importer.FNFLegacyData"] = funkin_data_song_importer_FNFLegacyData; funkin_data_song_importer_FNFLegacyData.__name__ = "funkin.data.song.importer.FNFLegacyData"; funkin_data_song_importer_FNFLegacyData.prototype = { song: null ,__class__: funkin_data_song_importer_FNFLegacyData }; var funkin_data_song_importer_LegacySongData = function() { }; $hxClasses["funkin.data.song.importer.LegacySongData"] = funkin_data_song_importer_LegacySongData; funkin_data_song_importer_LegacySongData.__name__ = "funkin.data.song.importer.LegacySongData"; funkin_data_song_importer_LegacySongData.prototype = { player1: null ,player2: null ,speed: null ,stageDefault: null ,bpm: null ,notes: null ,song: null ,toString: function() { var notesStr; var _g = this.notes; switch(_g._hx_index) { case 0: var sections = _g.v; notesStr = "single difficulty w/ " + sections.length + " sections"; break; case 1: var data = _g.v; var difficultyCount = 0; if(data.easy != null) { ++difficultyCount; } if(data.normal != null) { ++difficultyCount; } if(data.hard != null) { ++difficultyCount; } notesStr = "" + difficultyCount + " difficulties"; break; } return "LegacySongData(" + this.player1 + ", " + this.player2 + ", " + notesStr + ")"; } ,__class__: funkin_data_song_importer_LegacySongData }; var funkin_data_song_importer_LegacyNote = function(time,data,length,alt) { this.time = time; this.data = data; var tmp = length; this.length = tmp != null ? tmp : 0.0; var tmp = alt; this.alt = tmp != null && tmp; }; $hxClasses["funkin.data.song.importer.LegacyNote"] = funkin_data_song_importer_LegacyNote; funkin_data_song_importer_LegacyNote.__name__ = "funkin.data.song.importer.LegacyNote"; funkin_data_song_importer_LegacyNote.prototype = { time: null ,data: null ,length: null ,alt: null ,getKind: function() { if(this.alt) { return "alt"; } else { return "normal"; } } ,__class__: funkin_data_song_importer_LegacyNote }; var funkin_data_song_importer_FNFLegacyImporter = function() { }; $hxClasses["funkin.data.song.importer.FNFLegacyImporter"] = funkin_data_song_importer_FNFLegacyImporter; funkin_data_song_importer_FNFLegacyImporter.__name__ = "funkin.data.song.importer.FNFLegacyImporter"; funkin_data_song_importer_FNFLegacyImporter.parseLegacyDataRaw = function(input,fileName) { if(fileName == null) { fileName = "raw"; } var parser = new JsonParser_$142(); parser.ignoreUnknownVariables = true; parser.fromJson(input,fileName); if(parser.errors.length > 0) { haxe_Log.trace("[FNFLegacyImporter] Error parsing JSON data from " + fileName + ":",{ fileName : "source/funkin/data/song/importer/FNFLegacyImporter.hx", lineNumber : 22, className : "funkin.data.song.importer.FNFLegacyImporter", methodName : "parseLegacyDataRaw"}); var _g = 0; var _g1 = parser.errors; while(_g < _g1.length) { var error = _g1[_g]; ++_g; funkin_data_DataError.printError(error); } return null; } return parser.value; }; funkin_data_song_importer_FNFLegacyImporter.migrateMetadata = function(songData,difficulty) { if(difficulty == null) { difficulty = "normal"; } haxe_Log.trace("Migrating song metadata from FNF Legacy.",{ fileName : "source/funkin/data/song/importer/FNFLegacyImporter.hx", lineNumber : 37, className : "funkin.data.song.importer.FNFLegacyImporter", methodName : "migrateMetadata"}); var songMetadata = new funkin_data_song_SongMetadata("Import",funkin_util_Constants.DEFAULT_ARTIST,"default"); var hadError = false; songMetadata.generatedBy = "Chart Editor Import (FNF Legacy)"; var tmp = songData != null ? songData.song : null; var tmp1 = tmp != null ? tmp.stageDefault : null; songMetadata.playData.stage = tmp1 != null ? tmp1 : "mainStage"; var tmp = songData != null ? songData.song : null; var tmp1 = tmp != null ? tmp.song : null; songMetadata.songName = tmp1 != null ? tmp1 : "Import"; songMetadata.playData.difficulties = []; var tmp = songData != null ? songData.song : null; if((tmp != null ? tmp.notes : null) != null) { var _g = songData.song.notes; switch(_g._hx_index) { case 0: var notes = _g.v; songMetadata.playData.difficulties.push(difficulty); break; case 1: var difficulties = _g.v; if(difficulties.easy != null) { songMetadata.playData.difficulties.push("easy"); } if(difficulties.normal != null) { songMetadata.playData.difficulties.push("normal"); } if(difficulties.hard != null) { songMetadata.playData.difficulties.push("hard"); } break; } } songMetadata.playData.songVariations = []; songMetadata.timeChanges = funkin_data_song_importer_FNFLegacyImporter.rebuildTimeChanges(songData); var tmp = songData != null ? songData.song : null; var tmp1 = tmp != null ? tmp.player1 : null; var tmp = songData != null ? songData.song : null; var tmp2 = tmp != null ? tmp.player2 : null; songMetadata.playData.characters = new funkin_data_song_SongCharacterData(tmp1 != null ? tmp1 : "bf","gf",tmp2 != null ? tmp2 : "dad"); return songMetadata; }; funkin_data_song_importer_FNFLegacyImporter.migrateChartData = function(songData,difficulty) { if(difficulty == null) { difficulty = "normal"; } haxe_Log.trace("Migrating song chart data from FNF Legacy.",{ fileName : "source/funkin/data/song/importer/FNFLegacyImporter.hx", lineNumber : 75, className : "funkin.data.song.importer.FNFLegacyImporter", methodName : "migrateChartData"}); var _g = new haxe_ds_StringMap(); _g.h[difficulty] = 1.0; var _g1 = new haxe_ds_StringMap(); _g1.h[difficulty] = []; var songChartData = new funkin_data_song_SongChartData(_g,[],_g1); var tmp = songData != null ? songData.song : null; if((tmp != null ? tmp.notes : null) != null) { var _g = songData.song.notes; switch(_g._hx_index) { case 0: var notes = _g.v; var this1 = songChartData.notes; var value = funkin_data_song_importer_FNFLegacyImporter.migrateNoteSections(notes); this1.h[difficulty] = value; break; case 1: var difficulties = _g.v; var baseDifficulty = null; if(difficulties.easy != null) { var this1 = songChartData.notes; var value = funkin_data_song_importer_FNFLegacyImporter.migrateNoteSections(difficulties.easy); this1.h["easy"] = value; } if(difficulties.normal != null) { var this1 = songChartData.notes; var value = funkin_data_song_importer_FNFLegacyImporter.migrateNoteSections(difficulties.normal); this1.h["normal"] = value; } if(difficulties.hard != null) { var this1 = songChartData.notes; var value = funkin_data_song_importer_FNFLegacyImporter.migrateNoteSections(difficulties.hard); this1.h["hard"] = value; } break; } } songChartData.events = funkin_data_song_importer_FNFLegacyImporter.rebuildEventData(songData); var _g = songData.song.speed; switch(_g._hx_index) { case 0: var speed = _g.v; songChartData.scrollSpeed.h["default"] = speed; break; case 1: var speeds = _g.v; if(speeds.easy != null) { songChartData.scrollSpeed.h["easy"] = speeds.easy; } if(speeds.normal != null) { songChartData.scrollSpeed.h["normal"] = speeds.normal; } if(speeds.hard != null) { songChartData.scrollSpeed.h["hard"] = speeds.hard; } break; } return songChartData; }; funkin_data_song_importer_FNFLegacyImporter.rebuildEventData = function(songData) { var result = []; var noteSections = []; var _g = songData.song.notes; switch(_g._hx_index) { case 0: var notes = _g.v; noteSections = notes; break; case 1: var difficulties = _g.v; if(difficulties.normal != null) { noteSections = difficulties.normal; } if(difficulties.hard != null) { noteSections = difficulties.normal; } if(difficulties.easy != null) { noteSections = difficulties.normal; } break; } if(noteSections == null || noteSections.length == 0) { return result; } var lastSectionWasMustHit = null; var _g = 0; while(_g < noteSections.length) { var section = noteSections[_g]; ++_g; if(section.sectionNotes.length == 0) { continue; } if(section.mustHitSection != lastSectionWasMustHit) { lastSectionWasMustHit = section.mustHitSection; var firstNote = section.sectionNotes[0]; result.push(funkin_data_song_SongEventData._new(firstNote.time,"FocusCamera",{ char : section.mustHitSection ? 0 : 1})); } } return result; }; funkin_data_song_importer_FNFLegacyImporter.rebuildTimeChanges = function(songData) { var result = []; var tmp = songData != null ? songData.song : null; var tmp1 = tmp != null ? tmp.bpm : null; result.push(new funkin_data_song_SongTimeChange(0,tmp1 != null ? tmp1 : funkin_util_Constants.DEFAULT_BPM)); var noteSections = []; var _g = songData.song.notes; switch(_g._hx_index) { case 0: var notes = _g.v; noteSections = notes; break; case 1: var difficulties = _g.v; if(difficulties.normal != null) { noteSections = difficulties.normal; } if(difficulties.hard != null) { noteSections = difficulties.normal; } if(difficulties.easy != null) { noteSections = difficulties.normal; } break; } if(noteSections == null || noteSections.length == 0) { return result; } var _g = 0; while(_g < noteSections.length) { var noteSection = noteSections[_g]; ++_g; var tmp = noteSection.changeBPM; if(tmp != null && tmp) { var firstNote = noteSection.sectionNotes[0]; if(firstNote != null) { result.push(new funkin_data_song_SongTimeChange(firstNote.time,noteSection.bpm)); } } } return result; }; funkin_data_song_importer_FNFLegacyImporter.migrateNoteSections = function(input) { var result = []; var _g = 0; while(_g < input.length) { var section = input[_g]; ++_g; var tmp = section.mustHitSection; var mustHitSection = tmp != null && tmp; var _g1 = 0; var _g2 = section.sectionNotes; while(_g1 < _g2.length) { var note = _g2[_g1]; ++_g1; var noteData = note.data; if(!mustHitSection) { if(noteData >= funkin_data_song_importer_FNFLegacyImporter.STRUMLINE_SIZE) { noteData -= funkin_data_song_importer_FNFLegacyImporter.STRUMLINE_SIZE; } else { noteData += funkin_data_song_importer_FNFLegacyImporter.STRUMLINE_SIZE; } } result.push(funkin_data_song_SongNoteData._new(note.time,noteData,note.length,note.alt ? "alt" : "normal")); } } return result; }; var funkin_data_song_migrator_SongDataMigrator = function() { }; $hxClasses["funkin.data.song.migrator.SongDataMigrator"] = funkin_data_song_migrator_SongDataMigrator; funkin_data_song_migrator_SongDataMigrator.__name__ = "funkin.data.song.migrator.SongDataMigrator"; funkin_data_song_migrator_SongDataMigrator.migrate_SongMetadata_v2_1_0 = function(input) { var result = new funkin_data_song_SongMetadata(input.songName,input.artist,input.variation); result.version = funkin_data_song_SongRegistry.SONG_METADATA_VERSION; result.timeFormat = input.timeFormat; result.divisions = input.divisions; result.timeChanges = input.timeChanges; result.looped = input.looped; result.playData = funkin_data_song_migrator_SongDataMigrator.migrate_SongPlayData_v2_1_0(input.playData); result.generatedBy = input.generatedBy; return result; }; funkin_data_song_migrator_SongDataMigrator.migrate_SongPlayData_v2_1_0 = function(input) { var result = new funkin_data_song_SongPlayData(); result.songVariations = input.songVariations; result.difficulties = input.difficulties; result.stage = input.stage; result.characters = input.characters; result.noteStyle = input.noteSkin; var _g = new haxe_ds_StringMap(); _g.h["default"] = 1; result.ratings = _g; result.album = null; return result; }; funkin_data_song_migrator_SongDataMigrator.migrate_SongMetadata_v2_0_0 = function(input) { var result = new funkin_data_song_SongMetadata(input.songName,input.artist,input.variation); result.version = funkin_data_song_SongRegistry.SONG_METADATA_VERSION; result.timeFormat = input.timeFormat; result.divisions = input.divisions; result.timeChanges = input.timeChanges; result.looped = input.looped; result.playData = funkin_data_song_migrator_SongDataMigrator.migrate_SongPlayData_v2_0_0(input.playData); result.generatedBy = input.generatedBy; return result; }; funkin_data_song_migrator_SongDataMigrator.migrate_SongPlayData_v2_0_0 = function(input) { var result = new funkin_data_song_SongPlayData(); result.songVariations = input.songVariations; result.difficulties = input.difficulties; result.stage = input.stage; var _g = new haxe_ds_StringMap(); _g.h["default"] = 1; result.ratings = _g; result.album = null; result.noteStyle = input.noteSkin; var firstCharKey = funkin_util_tools_MapTools.size(input.playableChars) == 0 ? null : funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(input.playableChars.h))[0]; var firstCharData = input.playableChars.h[firstCharKey]; if(firstCharData == null) { result.characters = new funkin_data_song_SongCharacterData("bf","gf","dad"); } else { result.characters = new funkin_data_song_SongCharacterData(firstCharKey,firstCharData.girlfriend,firstCharData.opponent,firstCharData.inst); } return result; }; var funkin_data_song_migrator_SongMetadata_$v2_$0_$0 = function() { }; $hxClasses["funkin.data.song.migrator.SongMetadata_v2_0_0"] = funkin_data_song_migrator_SongMetadata_$v2_$0_$0; funkin_data_song_migrator_SongMetadata_$v2_$0_$0.__name__ = "funkin.data.song.migrator.SongMetadata_v2_0_0"; funkin_data_song_migrator_SongMetadata_$v2_$0_$0.prototype = { playData: null ,variation: null ,version: null ,songName: null ,artist: null ,divisions: null ,looped: null ,generatedBy: null ,timeFormat: null ,timeChanges: null ,toString: function() { return "SongMetadata[LEGACY:v2.0.0](" + this.songName + " by " + this.artist + ", variation " + this.variation + ")"; } ,__class__: funkin_data_song_migrator_SongMetadata_$v2_$0_$0 }; var funkin_data_song_migrator_SongPlayData_$v2_$0_$0 = function() { }; $hxClasses["funkin.data.song.migrator.SongPlayData_v2_0_0"] = funkin_data_song_migrator_SongPlayData_$v2_$0_$0; funkin_data_song_migrator_SongPlayData_$v2_$0_$0.__name__ = "funkin.data.song.migrator.SongPlayData_v2_0_0"; funkin_data_song_migrator_SongPlayData_$v2_$0_$0.prototype = { playableChars: null ,noteSkin: null ,songVariations: null ,difficulties: null ,stage: null ,toString: function() { return "SongPlayData[LEGACY:v2.0.0](" + Std.string(this.songVariations) + ", " + Std.string(this.difficulties) + ")"; } ,__class__: funkin_data_song_migrator_SongPlayData_$v2_$0_$0 }; var funkin_data_song_migrator_SongPlayableChar_$v2_$0_$0 = function(girlfriend,opponent,inst) { if(inst == null) { inst = ""; } if(opponent == null) { opponent = ""; } if(girlfriend == null) { girlfriend = ""; } this.inst = ""; this.opponent = ""; this.girlfriend = ""; this.girlfriend = girlfriend; this.opponent = opponent; this.inst = inst; }; $hxClasses["funkin.data.song.migrator.SongPlayableChar_v2_0_0"] = funkin_data_song_migrator_SongPlayableChar_$v2_$0_$0; funkin_data_song_migrator_SongPlayableChar_$v2_$0_$0.__name__ = "funkin.data.song.migrator.SongPlayableChar_v2_0_0"; funkin_data_song_migrator_SongPlayableChar_$v2_$0_$0.prototype = { girlfriend: null ,opponent: null ,inst: null ,toString: function() { return "SongPlayableChar[LEGACY:v2.0.0](" + this.girlfriend + ", " + this.opponent + ", " + this.inst + ")"; } ,__class__: funkin_data_song_migrator_SongPlayableChar_$v2_$0_$0 }; var funkin_data_song_migrator_SongMetadata_$v2_$1_$0 = function(songName,artist,variation) { this.version = funkin_data_song_SongRegistry.SONG_METADATA_VERSION; this.songName = songName; this.artist = artist; this.timeFormat = "ms"; this.divisions = null; this.timeChanges = [new funkin_data_song_SongTimeChange(0,100)]; this.looped = false; this.playData = new funkin_data_song_migrator_SongPlayData_$v2_$1_$0(); this.playData.songVariations = []; this.playData.difficulties = []; this.playData.characters = new funkin_data_song_SongCharacterData("bf","gf","dad"); this.playData.stage = "mainStage"; this.playData.noteSkin = "funkin"; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); this.variation = variation == null ? funkin_util_Constants.DEFAULT_VARIATION : variation; }; $hxClasses["funkin.data.song.migrator.SongMetadata_v2_1_0"] = funkin_data_song_migrator_SongMetadata_$v2_$1_$0; funkin_data_song_migrator_SongMetadata_$v2_$1_$0.__name__ = "funkin.data.song.migrator.SongMetadata_v2_1_0"; funkin_data_song_migrator_SongMetadata_$v2_$1_$0.prototype = { playData: null ,version: null ,songName: null ,artist: null ,divisions: null ,looped: null ,generatedBy: null ,timeFormat: null ,timeChanges: null ,variation: null ,toString: function() { return "SongMetadata[LEGACY:v2.1.0](" + this.songName + " by " + this.artist + ", variation " + this.variation + ")"; } ,__class__: funkin_data_song_migrator_SongMetadata_$v2_$1_$0 }; var funkin_data_song_migrator_SongPlayData_$v2_$1_$0 = function() { }; $hxClasses["funkin.data.song.migrator.SongPlayData_v2_1_0"] = funkin_data_song_migrator_SongPlayData_$v2_$1_$0; funkin_data_song_migrator_SongPlayData_$v2_$1_$0.__name__ = "funkin.data.song.migrator.SongPlayData_v2_1_0"; funkin_data_song_migrator_SongPlayData_$v2_$1_$0.prototype = { noteSkin: null ,songVariations: null ,difficulties: null ,characters: null ,stage: null ,toString: function() { return "SongPlayData[LEGACY:v2.1.0](" + Std.string(this.songVariations) + ", " + Std.string(this.difficulties) + ")"; } ,__class__: funkin_data_song_migrator_SongPlayData_$v2_$1_$0 }; var funkin_data_stage_StageData = function() { this.props = []; this.name = "Unknown"; this.version = thx_semver_Version.toString(funkin_data_stage_StageRegistry.STAGE_DATA_VERSION); this.characters = this.makeDefaultCharacters(); }; $hxClasses["funkin.data.stage.StageData"] = funkin_data_stage_StageData; funkin_data_stage_StageData.__name__ = "funkin.data.stage.StageData"; funkin_data_stage_StageData.prototype = { version: null ,name: null ,props: null ,characters: null ,cameraZoom: null ,makeDefaultCharacters: function() { return { bf : { zIndex : 0, scale : 1, position : [0,0], cameraOffsets : [-100,-100]}, dad : { zIndex : 0, scale : 1, position : [0,0], cameraOffsets : [100,-100]}, gf : { zIndex : 0, scale : 1, position : [0,0], cameraOffsets : [0,0]}}; } ,serialize: function(pretty) { if(pretty == null) { pretty = true; } this.updateVersionToLatest(); var writer = new JsonWriter_$31(); return writer.write(this,pretty ? " " : null); } ,updateVersionToLatest: function() { this.version = thx_semver_Version.toString(funkin_data_stage_StageRegistry.STAGE_DATA_VERSION); } ,__class__: funkin_data_stage_StageData }; var funkin_data_stage_StageRegistry = function() { funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData.call(this,"STAGE","stages",funkin_data_stage_StageRegistry.STAGE_DATA_VERSION_RULE); }; $hxClasses["funkin.data.stage.StageRegistry"] = funkin_data_stage_StageRegistry; funkin_data_stage_StageRegistry.__name__ = "funkin.data.stage.StageRegistry"; funkin_data_stage_StageRegistry.__properties__ = {get_instance:"get_instance"}; funkin_data_stage_StageRegistry.get_instance = function() { if(funkin_data_stage_StageRegistry._instance == null) { funkin_data_stage_StageRegistry._instance = new funkin_data_stage_StageRegistry(); } return funkin_data_stage_StageRegistry._instance; }; funkin_data_stage_StageRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData; funkin_data_stage_StageRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$play_$stage_$Stage_$funkin_$data_$stage_$StageData.prototype,{ parseEntryData: function(id) { var parser = new JsonParser_$123(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$123(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_play_stage_ScriptedStage.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_play_stage_ScriptedStage.listScriptClasses(); } ,listBaseGameStageIds: function() { return ["mainStage","spookyMansion","phillyTrain","limoRide","mallXmas","mallEvil","school","schoolEvil","tankmanBattlefield","phillyStreets","phillyBlazin"]; } ,listModdedStageIds: function() { var _gthis = this; var _g = []; var _g1 = 0; var _g2 = this.listEntryIds(); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_gthis.listBaseGameStageIds().indexOf(v) == -1) { _g.push(v); } } return _g; } ,__class__: funkin_data_stage_StageRegistry }); var funkin_data_story_level_LevelRegistry = function() { funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData.call(this,"LEVEL","levels",funkin_data_story_level_LevelRegistry.LEVEL_DATA_VERSION_RULE); }; $hxClasses["funkin.data.story.level.LevelRegistry"] = funkin_data_story_level_LevelRegistry; funkin_data_story_level_LevelRegistry.__name__ = "funkin.data.story.level.LevelRegistry"; funkin_data_story_level_LevelRegistry.__properties__ = {get_instance:"get_instance"}; funkin_data_story_level_LevelRegistry.get_instance = function() { if(funkin_data_story_level_LevelRegistry._instance == null) { funkin_data_story_level_LevelRegistry._instance = new funkin_data_story_level_LevelRegistry(); } return funkin_data_story_level_LevelRegistry._instance; }; funkin_data_story_level_LevelRegistry.__super__ = funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData; funkin_data_story_level_LevelRegistry.prototype = $extend(funkin_data_BaseRegistry_$funkin_$ui_$story_$Level_$funkin_$data_$story_$level_$LevelData.prototype,{ parseEntryData: function(id) { var parser = new JsonParser_$135(); parser.ignoreUnknownVariables = false; var _g = this.loadEntryFile(id); var contents = _g.contents; var fileName = _g.fileName; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,id); return null; } return parser.value; } ,parseEntryDataRaw: function(contents,fileName) { var parser = new JsonParser_$135(); parser.ignoreUnknownVariables = false; parser.fromJson(contents,fileName); if(parser.errors.length > 0) { this.printErrors(parser.errors,fileName); return null; } return parser.value; } ,createScriptedEntry: function(clsName) { return funkin_ui_story_ScriptedLevel.init(clsName,"unknown"); } ,getScriptedClassNames: function() { return funkin_ui_story_ScriptedLevel.listScriptClasses(); } ,listBaseGameLevelIds: function() { return ["tutorial","week1","week2","week3","week4","week5","week6","week7","weekend1"]; } ,listSortedLevelIds: function() { var result = this.listEntryIds(); var defaultValues = this.listBaseGameLevelIds(); result.sort(function(a,b) { return funkin_util_SortUtil.defaultsThenAlphabetically(defaultValues,a,b); }); return result; } ,listModdedLevelIds: function() { var _gthis = this; var _g = []; var _g1 = 0; var _g2 = this.listEntryIds(); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(_gthis.listBaseGameLevelIds().indexOf(v) == -1) { _g.push(v); } } return _g; } ,__class__: funkin_data_story_level_LevelRegistry }); var funkin_effects_IntervalShake = function() { this.scale = 0; this._secondsSinceStart = 0; }; $hxClasses["funkin.effects.IntervalShake"] = funkin_effects_IntervalShake; funkin_effects_IntervalShake.__name__ = "funkin.effects.IntervalShake"; funkin_effects_IntervalShake.__interfaces__ = [flixel_util_IFlxDestroyable]; funkin_effects_IntervalShake.shake = function(Object1,Duration,Interval,StartIntensity,EndIntensity,Ease,CompletionCallback,ProgressCallback) { if(EndIntensity == null) { EndIntensity = 0; } if(StartIntensity == null) { StartIntensity = 0; } if(Interval == null) { Interval = 0.04; } if(Duration == null) { Duration = 1; } if(funkin_effects_IntervalShake.isShaking(Object1)) { return funkin_effects_IntervalShake._boundObjects.h[Object1.__id__]; } if(Interval <= 0) { Interval = flixel_FlxG.elapsed; } var shake = funkin_effects_IntervalShake._pool.get(); shake.start(Object1,Duration,Interval,StartIntensity,EndIntensity,Ease,CompletionCallback,ProgressCallback); funkin_effects_IntervalShake._boundObjects.set(Object1,shake); return shake; }; funkin_effects_IntervalShake.isShaking = function(Object1) { return funkin_effects_IntervalShake._boundObjects.h.__keys__[Object1.__id__] != null; }; funkin_effects_IntervalShake.stopShaking = function(Object1) { var boundShake = funkin_effects_IntervalShake._boundObjects.h[Object1.__id__]; if(boundShake != null) { boundShake.stop(); } }; funkin_effects_IntervalShake.prototype = { object: null ,timer: null ,startIntensity: null ,endIntensity: null ,duration: null ,interval: null ,axes: null ,initialOffset: null ,completionCallback: null ,progressCallback: null ,ease: null ,destroy: function() { this.object = null; this.timer = null; this.ease = null; this.completionCallback = null; this.progressCallback = null; } ,start: function(Object1,Duration,Interval,StartIntensity,EndIntensity,Ease,CompletionCallback,ProgressCallback) { if(EndIntensity == null) { EndIntensity = 0; } if(StartIntensity == null) { StartIntensity = 0; } if(Interval == null) { Interval = 0.04; } if(Duration == null) { Duration = 1; } this.object = Object1; this.duration = Duration; this.interval = Interval; this.completionCallback = CompletionCallback; this.startIntensity = StartIntensity; this.endIntensity = EndIntensity; var x = Object1.x; var y = Object1.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this.initialOffset = new flixel_math_FlxBasePoint(x,y); this.ease = Ease; this.axes = 17; this._secondsSinceStart = 0; this.timer = new flixel_util_FlxTimer().start(this.interval,$bind(this,this.shakeProgress),this.duration / this.interval | 0); } ,stop: function() { this.timer.cancel(); this.object.set_x(this.initialOffset.x); this.object.set_y(this.initialOffset.y); this.release(); } ,release: function() { funkin_effects_IntervalShake._boundObjects.remove(this.object); funkin_effects_IntervalShake._pool.put(this); } ,_secondsSinceStart: null ,scale: null ,shakeProgress: function(timer) { this._secondsSinceStart += this.interval; this.scale = this._secondsSinceStart / this.duration; if(this.ease != null) { this.scale = 1 - this.ease(this.scale); } var curIntensity = 0; var a = this.endIntensity; curIntensity = a + this.scale * (this.startIntensity - a); var this1 = this.axes; if(this1 == 1 || this1 == 17) { this.object.set_x(this.initialOffset.x + flixel_FlxG.random.float(-curIntensity * this.object.get_width(),curIntensity * this.object.get_width())); } var this1 = this.axes; if(this1 == 16 || this1 == 17) { this.object.set_y(this.initialOffset.y + flixel_FlxG.random.float(-curIntensity * this.object.get_width(),curIntensity * this.object.get_width())); } if(this.progressCallback != null) { this.progressCallback(this); } if(timer.loops > 0 && timer.loops - timer._loopsCounter == 0) { this.object.set_x(this.initialOffset.x); this.object.set_y(this.initialOffset.y); if(this.completionCallback != null) { this.completionCallback(this); } if(this.timer == timer) { this.release(); } } } ,__class__: funkin_effects_IntervalShake }; var funkin_graphics_FunkinCamera = function(id,x,y,width,height,zoom) { if(zoom == null) { zoom = 0; } if(height == null) { height = 0; } if(width == null) { width = 0; } if(y == null) { y = 0; } if(x == null) { x = 0; } if(id == null) { id = "unknown"; } this.id = "unknown"; this.shouldDraw = true; this.bgItemCount = 0; this.filtersApplied = false; this.texturePool = []; this.grabbed = []; flixel_FlxCamera.call(this,x,y,width,height,zoom); this.id = id; this.bgTexture = this.pickTexture(width,height); this.bgBitmap = funkin_graphics_framebuffer_FixedBitmapData.fromTexture(this.bgTexture); this.bgFrame = new flixel_graphics_frames_FlxFrame(new flixel_graphics_FlxGraphic("",null)); this.bgFrame.parent.set_bitmap(this.bgBitmap); this.bgFrame.set_frame(new flixel_math_FlxRect()); this.customBlendShader = new funkin_graphics_shaders_RuntimeCustomBlendShader(); this.customBlendFilter = new openfl_filters_ShaderFilter(this.customBlendShader); }; $hxClasses["funkin.graphics.FunkinCamera"] = funkin_graphics_FunkinCamera; funkin_graphics_FunkinCamera.__name__ = "funkin.graphics.FunkinCamera"; funkin_graphics_FunkinCamera.__super__ = flixel_FlxCamera; funkin_graphics_FunkinCamera.prototype = $extend(flixel_FlxCamera.prototype,{ grabbed: null ,texturePool: null ,bgTexture: null ,bgBitmap: null ,bgFrame: null ,customBlendShader: null ,customBlendFilter: null ,filtersApplied: null ,bgItemCount: null ,shouldDraw: null ,id: null ,grabScreen: function(applyFilters,isolate) { if(isolate == null) { isolate = false; } var texture = this.pickTexture(this.width,this.height); var bitmap = funkin_graphics_framebuffer_FixedBitmapData.fromTexture(texture); this.squashTo(bitmap,applyFilters,isolate); this.grabbed.push(bitmap); return bitmap; } ,applyFilter: function(filter) { if(this.grabbed.length == 0) { flixel_FlxG.log.advanced("grab screen before you can apply a filter!",flixel_system_debug_log_LogStyle.ERROR,true); return; } funkin_graphics_framebuffer_BitmapDataUtil.applyFilter(this.bgBitmap,filter); } ,squashTo: function(bitmap,applyFilters,isolate,clearScreen) { if(clearScreen == null) { clearScreen = false; } if(applyFilters && isolate) { flixel_FlxG.log.advanced("cannot apply filters while isolating!",flixel_system_debug_log_LogStyle.ERROR,true); } if(this.filtersApplied && applyFilters) { flixel_FlxG.log.advanced("filters already applied!",flixel_system_debug_log_LogStyle.WARNING,true); } if(this.bgTexture.__width != this.width || this.bgTexture.__height != this.height) { funkin_graphics_framebuffer_BitmapDataUtil.resizeTexture(this.bgTexture,this.width,this.height); this.bgBitmap.__resize(this.width,this.height); this.bgFrame.parent.set_bitmap(this.bgBitmap); } this.renderSkipping(isolate ? this.bgItemCount : 0); bitmap.fillRect(bitmap.rect,0); funkin_graphics_FunkinCamera.squashTo_matrix.setTo(1,0,0,1,this.flashSprite.get_x(),this.flashSprite.get_y()); if(applyFilters) { bitmap.draw(this.flashSprite,funkin_graphics_FunkinCamera.squashTo_matrix); this.flashSprite.set_filters(null); this.filtersApplied = true; } else { var tmp = this.flashSprite.get_filters(); this.flashSprite.set_filters(null); bitmap.draw(this.flashSprite,funkin_graphics_FunkinCamera.squashTo_matrix); this.flashSprite.set_filters(tmp); } if(!isolate) { this.bgBitmap.fillRect(this.bgBitmap.rect,0); this.bgBitmap.draw(bitmap); } if(clearScreen) { flixel_FlxCamera.prototype.clearDrawStack.call(this); this.canvas.get_graphics().clear(); } var _this = this.bgFrame.frame; var X = 0; var Y = 0; var Width = this.width; var Height = this.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; funkin_graphics_FunkinCamera.squashTo_matrix.setTo((this.width - this.viewMarginX * 2) / this.width,0,0,(this.height - this.viewMarginY * 2) / this.height,this.viewMarginX,this.viewMarginY); this.drawPixels(this.bgFrame,null,funkin_graphics_FunkinCamera.squashTo_matrix); this.bgItemCount = 0; var item = this._headOfDrawStack; while(item != null) { item = item.next; this.bgItemCount++; } } ,renderSkipping: function(count) { var item = this._headOfDrawStack; while(item != null) { if(--count < 0) { item.render(this); } item = item.next; } } ,drawPixels: function(frame,pixels,matrix,transform,blend,smoothing,shader) { if(smoothing == null) { smoothing = false; } if(!this.shouldDraw) { return; } var tmp; if(blend == null) { tmp = false; } else { switch(blend) { case 2:case 5:case 8:case 11: tmp = true; break; default: tmp = false; } } if(tmp) { this.grabScreen(false); flixel_FlxCamera.prototype.drawPixels.call(this,frame,pixels,matrix,transform,null,smoothing,shader); var isolated = this.grabScreen(false,true); this.customBlendShader.set_blendSwag(blend); this.customBlendShader.set_sourceSwag(isolated); this.customBlendShader.updateViewInfo(flixel_FlxG.width,flixel_FlxG.height,this); this.applyFilter(this.customBlendFilter); } else { flixel_FlxCamera.prototype.drawPixels.call(this,frame,pixels,matrix,transform,blend,smoothing,shader); } } ,destroy: function() { flixel_FlxCamera.prototype.destroy.call(this); this.disposeTextures(); } ,clearDrawStack: function() { flixel_FlxCamera.prototype.clearDrawStack.call(this); var _g = 0; var _g1 = this.grabbed; while(_g < _g1.length) { var bitmap = _g1[_g]; ++_g; this.texturePool.push(bitmap.__texture); bitmap.dispose(); } funkin_util_tools_ArrayTools.clear(this.grabbed); this.filtersApplied = false; this.bgItemCount = 0; } ,pickTexture: function(width,height) { if(width < 1) { width = 1; } if(height < 1) { height = 1; } if(this.texturePool.length > 0) { var res = this.texturePool.pop(); funkin_graphics_framebuffer_BitmapDataUtil.resizeTexture(res,width,height); return res; } return openfl_Lib.get_current().stage.context3D.createTexture(width,height,1,true); } ,disposeTextures: function() { haxe_Log.trace("disposing textures",{ fileName : "source/funkin/graphics/FunkinCamera.hx", lineNumber : 247, className : "funkin.graphics.FunkinCamera", methodName : "disposeTextures"}); var _g = 0; var _g1 = this.grabbed; while(_g < _g1.length) { var bitmap = _g1[_g]; ++_g; bitmap.dispose(); } funkin_util_tools_ArrayTools.clear(this.grabbed); var _g = 0; var _g1 = this.texturePool; while(_g < _g1.length) { var texture = _g1[_g]; ++_g; texture.dispose(); } this.texturePool.length = 0; this.bgTexture.dispose(); this.bgBitmap.dispose(); } ,__class__: funkin_graphics_FunkinCamera }); var funkin_graphics_FunkinSprite = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } flixel_FlxSprite.call(this,x,y); }; $hxClasses["funkin.graphics.FunkinSprite"] = funkin_graphics_FunkinSprite; funkin_graphics_FunkinSprite.__name__ = "funkin.graphics.FunkinSprite"; funkin_graphics_FunkinSprite.create = function(x,y,key) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var sprite = new funkin_graphics_FunkinSprite(x,y); sprite.loadTexture(key); return sprite; }; funkin_graphics_FunkinSprite.createSparrow = function(x,y,key) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var sprite = new funkin_graphics_FunkinSprite(x,y); sprite.loadSparrow(key); return sprite; }; funkin_graphics_FunkinSprite.createPacker = function(x,y,key) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var sprite = new funkin_graphics_FunkinSprite(x,y); sprite.loadPacker(key); return sprite; }; funkin_graphics_FunkinSprite.isTextureCached = function(key) { return flixel_FlxG.bitmap._cache.h[key] != null; }; funkin_graphics_FunkinSprite.cacheTexture = function(key) { if(Object.prototype.hasOwnProperty.call(funkin_graphics_FunkinSprite.currentCachedTextures.h,key)) { return; } if(Object.prototype.hasOwnProperty.call(funkin_graphics_FunkinSprite.previousCachedTextures.h,key)) { var graphic = funkin_graphics_FunkinSprite.previousCachedTextures.h[key]; var _this = funkin_graphics_FunkinSprite.previousCachedTextures; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } funkin_graphics_FunkinSprite.currentCachedTextures.h[key] = graphic; return; } var graphic = flixel_graphics_FlxGraphic.fromAssetKey(key,false,null,true); if(graphic == null) { flixel_FlxG.log.advanced("Failed to cache graphic: " + key,flixel_system_debug_log_LogStyle.WARNING,true); } else { haxe_Log.trace("Successfully cached graphic: " + key,{ fileName : "source/funkin/graphics/FunkinSprite.hx", lineNumber : 186, className : "funkin.graphics.FunkinSprite", methodName : "cacheTexture"}); graphic.persist = true; funkin_graphics_FunkinSprite.currentCachedTextures.h[key] = graphic; } }; funkin_graphics_FunkinSprite.cacheSparrow = function(key) { funkin_graphics_FunkinSprite.cacheTexture(funkin_Paths.image(key)); }; funkin_graphics_FunkinSprite.cachePacker = function(key) { funkin_graphics_FunkinSprite.cacheTexture(funkin_Paths.image(key)); }; funkin_graphics_FunkinSprite.preparePurgeCache = function() { funkin_graphics_FunkinSprite.previousCachedTextures = funkin_graphics_FunkinSprite.currentCachedTextures; funkin_graphics_FunkinSprite.currentCachedTextures = new haxe_ds_StringMap(); }; funkin_graphics_FunkinSprite.purgeCache = function() { var h = funkin_graphics_FunkinSprite.previousCachedTextures.h; var graphicKey_h = h; var graphicKey_keys = Object.keys(h); var graphicKey_length = graphicKey_keys.length; var graphicKey_current = 0; while(graphicKey_current < graphicKey_length) { var graphicKey = graphicKey_keys[graphicKey_current++]; var graphic = funkin_graphics_FunkinSprite.previousCachedTextures.h[graphicKey]; if(graphic == null) { continue; } flixel_FlxG.bitmap.remove(graphic); graphic.destroy(); var _this = funkin_graphics_FunkinSprite.previousCachedTextures; if(Object.prototype.hasOwnProperty.call(_this.h,graphicKey)) { delete(_this.h[graphicKey]); } } }; funkin_graphics_FunkinSprite.isGraphicCached = function(graphic) { if(graphic == null) { return false; } var result = flixel_FlxG.bitmap._cache.h[graphic.key]; if(result == null) { return false; } if(result != graphic) { flixel_FlxG.log.advanced("Cached graphic does not match original: " + graphic.key,flixel_system_debug_log_LogStyle.WARNING,true); return false; } return true; }; funkin_graphics_FunkinSprite.__super__ = flixel_FlxSprite; funkin_graphics_FunkinSprite.prototype = $extend(flixel_FlxSprite.prototype,{ loadTexture: function(key) { var graphicKey = funkin_Paths.image(key); if(!funkin_graphics_FunkinSprite.isTextureCached(graphicKey)) { flixel_FlxG.log.advanced("Texture not cached, may experience stuttering! " + graphicKey,flixel_system_debug_log_LogStyle.WARNING,true); } this.loadGraphic(graphicKey); return this; } ,loadBitmapData: function(input) { this.loadGraphic(input); return this; } ,loadTextureBase: function(input) { var inputBitmap = funkin_graphics_framebuffer_FixedBitmapData.fromTexture(input); return this.loadBitmapData(inputBitmap); } ,loadSparrow: function(key) { var graphicKey = funkin_Paths.image(key); if(!funkin_graphics_FunkinSprite.isTextureCached(graphicKey)) { flixel_FlxG.log.advanced("Texture not cached, may experience stuttering! " + graphicKey,flixel_system_debug_log_LogStyle.WARNING,true); } this.set_frames(funkin_Paths.getSparrowAtlas(key)); return this; } ,loadPacker: function(key) { var graphicKey = funkin_Paths.image(key); if(!funkin_graphics_FunkinSprite.isTextureCached(graphicKey)) { flixel_FlxG.log.advanced("Texture not cached, may experience stuttering! " + graphicKey,flixel_system_debug_log_LogStyle.WARNING,true); } this.set_frames(funkin_Paths.getPackerAtlas(key)); return this; } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var graphic = flixel_FlxG.bitmap; var Alpha = true; var Prefix = false; if(Prefix == null) { Prefix = true; } if(Alpha == null) { Alpha = true; } var graphic1 = Alpha ? StringTools.hex(color >> 24 & 255,2) : ""; var graphic2 = graphic.create(2,2,color,false,"solid#" + ((Prefix ? "0x" : "") + graphic1 + StringTools.hex(color >> 16 & 255,2) + StringTools.hex(color >> 8 & 255,2) + StringTools.hex(color & 255,2))); this.set_frames(graphic2.get_imageFrame()); var this1 = this.scale; var x = width / 2.0; var y = height / 2.0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.updateHitbox(); return this; } ,clone: function() { var result = new funkin_graphics_FunkinSprite(this.x,this.y); result.set_frames(this.frames); var this1 = result.scale; var x = this.scale.x; var y = this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); result.updateHitbox(); return result; } ,destroy: function() { this.set_frames(null); flixel_tweens_FlxTween.cancelTweensOf(this); flixel_FlxSprite.prototype.destroy.call(this); } ,__class__: funkin_graphics_FunkinSprite }); var funkin_graphics_adobeanimate_FlxAtlasSprite = function(x,y,path,settings) { this.canPlayOtherAnims = true; this.onAnimationFinish = new flixel_util__$FlxSignal_FlxSignal1(); if(settings == null) { settings = funkin_graphics_adobeanimate_FlxAtlasSprite.SETTINGS; } if(path == null) { throw haxe_Exception.thrown("Null path specified for FlxAtlasSprite!"); } flxanimate_FlxAnimate.call(this,x,y,path,settings); if(this.anim.curInstance == null) { throw haxe_Exception.thrown("FlxAtlasSprite not initialized properly. Are you sure the path (" + path + ") exists?"); } this.onAnimationFinish.add($bind(this,this.cleanupAnimation)); this.anim.play(""); this.anim.pause(); }; $hxClasses["funkin.graphics.adobeanimate.FlxAtlasSprite"] = funkin_graphics_adobeanimate_FlxAtlasSprite; funkin_graphics_adobeanimate_FlxAtlasSprite.__name__ = "funkin.graphics.adobeanimate.FlxAtlasSprite"; funkin_graphics_adobeanimate_FlxAtlasSprite.__super__ = flxanimate_FlxAnimate; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype = $extend(flxanimate_FlxAnimate.prototype,{ onAnimationFinish: null ,currentAnimation: null ,canPlayOtherAnims: null ,listAnimations: function() { if(this.anim == null) { return []; } return this.anim.getFrameLabels(); } ,hasAnimation: function(id) { return this.getLabelIndex(id) != -1; } ,getCurrentAnimation: function() { return this.currentAnimation; } ,isLoopFinished: function() { if(this.anim == null) { return false; } if(!this.anim.isPlaying) { return false; } if(this.anim.curInstance.symbol.reverse && this.anim.get_curFrame() == 0) { return true; } if(!this.anim.curInstance.symbol.reverse && this.anim.get_curFrame() >= this.anim.get_length() - 1) { return true; } return false; } ,playAnimation: function(id,restart,ignoreOther,loop) { if(loop == null) { loop = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var _gthis = this; if(loop == null) { loop = false; } if(!this.canPlayOtherAnims && !ignoreOther) { return; } if(id == null || id == "") { id = this.currentAnimation; } if(this.currentAnimation == id && !restart) { if(this.anim.isPlaying) { return; } else { this.anim.play("",false,false); } } if(!this.hasAnimation(id)) { haxe_Log.trace("Animation " + id + " not found",{ fileName : "source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx", lineNumber : 138, className : "funkin.graphics.adobeanimate.FlxAtlasSprite", methodName : "playAnimation"}); return; } this.anim.callback = function(_,frame) { var offset = loop ? 0 : -1; var frameLabel = _gthis.anim.getFrameLabel(id); if(frame == frameLabel.duration + offset + frameLabel.index) { if(loop) { _gthis.playAnimation(id,true,false,true); } else { _gthis.onAnimationFinish.dispatch(id); } } }; if(ignoreOther) { this.canPlayOtherAnims = false; } this.goToFrameLabel(id); this.currentAnimation = id; } ,update: function(elapsed) { flxanimate_FlxAnimate.prototype.update.call(this,elapsed); } ,stopAnimation: function() { if(this.currentAnimation == null) { return; } this.anim.removeAllCallbacksFrom(this.getNextFrameLabel(this.currentAnimation)); this.goToFrameIndex(0); } ,addFrameCallback: function(label,callback) { var frameLabel = this.anim.getFrameLabel(label); frameLabel.add(callback); } ,goToFrameLabel: function(label) { this.anim.goToFrameLabel(label); } ,getNextFrameLabel: function(label) { return this.listAnimations()[(this.getLabelIndex(label) + 1) % this.listAnimations().length]; } ,getLabelIndex: function(label) { return this.listAnimations().indexOf(label); } ,goToFrameIndex: function(index) { this.anim.set_curFrame(index); } ,cleanupAnimation: function(_) { this.canPlayOtherAnims = true; this.anim.pause(); } ,__class__: funkin_graphics_adobeanimate_FlxAtlasSprite }); var funkin_graphics_framebuffer_BitmapDataUtil = function() { }; $hxClasses["funkin.graphics.framebuffer.BitmapDataUtil"] = funkin_graphics_framebuffer_BitmapDataUtil; funkin_graphics_framebuffer_BitmapDataUtil.__name__ = "funkin.graphics.framebuffer.BitmapDataUtil"; funkin_graphics_framebuffer_BitmapDataUtil.getCache = function() { if(funkin_graphics_framebuffer_BitmapDataUtil.getCache_cache == null) { var sprite = new openfl_display_Sprite(); var bitmap = new openfl_display_Bitmap(); sprite.addChild(bitmap); funkin_graphics_framebuffer_BitmapDataUtil.getCache_cache = { sprite : sprite, bitmap : bitmap}; } return funkin_graphics_framebuffer_BitmapDataUtil.getCache_cache; }; funkin_graphics_framebuffer_BitmapDataUtil.applyFilter = function(bitmap,filter) { funkin_graphics_framebuffer_BitmapDataUtil.hardwareCheck(bitmap); var cache = funkin_graphics_framebuffer_BitmapDataUtil.getCache(); cache.bitmap.set_bitmapData(bitmap); cache.sprite.set_filters([filter]); bitmap.draw(cache.sprite); }; funkin_graphics_framebuffer_BitmapDataUtil.create = function(width,height,format) { if(format == null) { format = 1; } var texture = openfl_Lib.get_current().stage.context3D.createTexture(width,height,format,true); return funkin_graphics_framebuffer_FixedBitmapData.fromTexture(texture); }; funkin_graphics_framebuffer_BitmapDataUtil.resize = function(bitmap,width,height) { funkin_graphics_framebuffer_BitmapDataUtil.hardwareCheck(bitmap); if(bitmap.width == width && bitmap.height == height) { return; } bitmap.width = width; bitmap.height = height; funkin_graphics_framebuffer_BitmapDataUtil.resizeTexture(bitmap.__texture,width,height); }; funkin_graphics_framebuffer_BitmapDataUtil.resizeTexture = function(texture,width,height) { if(texture.__width == width && texture.__height == height) { return; } texture.__width = width; texture.__height = height; var context = texture.__context; var gl = context.gl; context.__bindGLTexture2D(texture.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,texture.__internalFormat,width,height,0,texture.__format,gl.UNSIGNED_BYTE,null); context.__bindGLTexture2D(null); }; funkin_graphics_framebuffer_BitmapDataUtil.copy = function(dst,src) { funkin_graphics_framebuffer_BitmapDataUtil.hardwareCheck(dst); funkin_graphics_framebuffer_BitmapDataUtil.hardwareCheck(src); var cache = funkin_graphics_framebuffer_BitmapDataUtil.getCache(); cache.bitmap.set_bitmapData(src); cache.sprite.set_filters(null); funkin_graphics_framebuffer_BitmapDataUtil.resize(dst,src.width,src.height); dst.fillRect(dst.rect,0); dst.draw(cache.sprite); }; funkin_graphics_framebuffer_BitmapDataUtil.hardwareCheck = function(bitmap) { if(bitmap.readable) { flixel_FlxG.log.advanced("do not use `BitmapDataUtil` for non-GPU bitmaps!",flixel_system_debug_log_LogStyle.ERROR,true); } }; var funkin_graphics_framebuffer_FixedBitmapData = function(width,height,transparent,fillColor) { openfl_display_BitmapData.call(this,width,height,transparent,fillColor); }; $hxClasses["funkin.graphics.framebuffer.FixedBitmapData"] = funkin_graphics_framebuffer_FixedBitmapData; funkin_graphics_framebuffer_FixedBitmapData.__name__ = "funkin.graphics.framebuffer.FixedBitmapData"; funkin_graphics_framebuffer_FixedBitmapData.fromTexture = function(texture) { if(texture == null) { return null; } var bitmapData = new funkin_graphics_framebuffer_FixedBitmapData(texture.__width,texture.__height,true,0); bitmapData.__texture = texture; bitmapData.__textureContext = texture.__textureContext; return bitmapData; }; funkin_graphics_framebuffer_FixedBitmapData.__super__ = openfl_display_BitmapData; funkin_graphics_framebuffer_FixedBitmapData.prototype = $extend(openfl_display_BitmapData.prototype,{ __drawGL: function(source,renderer) { if(((source) instanceof openfl_display_DisplayObject)) { var object = source; renderer.__stage = object.stage; } openfl_display_BitmapData.prototype.__drawGL.call(this,source,renderer); } ,__class__: funkin_graphics_framebuffer_FixedBitmapData }); var funkin_graphics_framebuffer_FrameBuffer = function() { this.spriteCopies = []; this.bitmap = null; this.camera = new flixel_FlxCamera(); this.camera.set_antialiasing(false); this.camera.bgColor = 0; this.camera.flashSprite.stage = openfl_Lib.get_current().stage; }; $hxClasses["funkin.graphics.framebuffer.FrameBuffer"] = funkin_graphics_framebuffer_FrameBuffer; funkin_graphics_framebuffer_FrameBuffer.__name__ = "funkin.graphics.framebuffer.FrameBuffer"; funkin_graphics_framebuffer_FrameBuffer.prototype = { bitmap: null ,texture: null ,camera: null ,spriteCopies: null ,create: function(width,height,bgColor) { this.dispose(); this.texture = openfl_Lib.get_current().stage.context3D.createTexture(width,height,1,true); this.bitmap = funkin_graphics_framebuffer_FixedBitmapData.fromTexture(this.texture); this.camera.bgColor = bgColor; } ,follow: function(target) { this.camera.set_x(target.x); this.camera.set_y(target.y); this.camera.set_width(target.width); this.camera.set_height(target.height); this.camera.scroll.set_x(target.scroll.x); this.camera.scroll.set_y(target.scroll.y); this.camera.setScale(target.scaleX,target.scaleY); } ,lock: function() { this.camera.clearDrawStack(); this.camera.canvas.get_graphics().clear(); this.camera.fill(this.camera.bgColor & 16777215,this.camera.useBgAlphaBlending,(this.camera.bgColor >> 24 & 255) / 255); } ,render: function() { var _g = 0; var _g1 = this.spriteCopies; while(_g < _g1.length) { var spriteCopy = _g1[_g]; ++_g; spriteCopy.render(this.camera); } this.camera.render(); } ,unlock: function() { this.bitmap.fillRect(new openfl_geom_Rectangle(0,0,this.bitmap.width,this.bitmap.height),0); this.bitmap.draw(this.camera.flashSprite,new openfl_geom_Matrix(1,0,0,1,this.camera.flashSprite.get_x(),this.camera.flashSprite.get_y())); } ,dispose: function() { if(this.texture != null) { this.texture.dispose(); this.texture = null; this.bitmap.dispose(); this.bitmap = null; } this.spriteCopies.length = 0; } ,addSpriteCopy: function(spriteCopy) { this.spriteCopies.push(spriteCopy); } ,moveSprite: function(sprite) { sprite.set_cameras([this.camera]); } ,__class__: funkin_graphics_framebuffer_FrameBuffer }; var funkin_graphics_framebuffer_FrameBufferManager = function(camera) { this.frameBufferMap = new haxe_ds_StringMap(); this.camera = camera; }; $hxClasses["funkin.graphics.framebuffer.FrameBufferManager"] = funkin_graphics_framebuffer_FrameBufferManager; funkin_graphics_framebuffer_FrameBufferManager.__name__ = "funkin.graphics.framebuffer.FrameBufferManager"; funkin_graphics_framebuffer_FrameBufferManager.prototype = { camera: null ,frameBufferMap: null ,createFrameBuffer: function(name,bgColor) { if(Object.prototype.hasOwnProperty.call(this.frameBufferMap.h,name)) { flixel_FlxG.log.advanced("frame buffer \"" + name + "\" already exists",flixel_system_debug_log_LogStyle.WARNING,true); this.frameBufferMap.h[name].dispose(); var _this = this.frameBufferMap; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } } var fb = new funkin_graphics_framebuffer_FrameBuffer(); fb.create(this.camera.width,this.camera.height,bgColor); this.frameBufferMap.h[name] = fb; return fb.bitmap; } ,copySpriteTo: function(name,sprite,color) { if(!Object.prototype.hasOwnProperty.call(this.frameBufferMap.h,name)) { flixel_FlxG.log.advanced("frame buffer \"" + name + "\" does not exist",flixel_system_debug_log_LogStyle.WARNING,true); return; } this.frameBufferMap.h[name].addSpriteCopy(new funkin_graphics_framebuffer_SpriteCopy(sprite,color)); } ,moveSpriteTo: function(name,sprite) { if(!Object.prototype.hasOwnProperty.call(this.frameBufferMap.h,name)) { flixel_FlxG.log.advanced("frame buffer \"" + name + "\" does not exist",flixel_system_debug_log_LogStyle.WARNING,true); return; } this.frameBufferMap.h[name].moveSprite(sprite); } ,lock: function() { var h = this.frameBufferMap.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var _ = _g_key; var fb = _g_value; fb.follow(this.camera); fb.lock(); } } ,unlock: function() { var h = this.frameBufferMap.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var _ = _g_key; var fb = _g_value; fb.render(); } var h = this.frameBufferMap.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var _ = _g_key; var fb = _g_value; fb.unlock(); } } ,getFrameBuffer: function(name) { return this.frameBufferMap.h[name].bitmap; } ,dispose: function() { var h = this.frameBufferMap.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var _ = _g_key; var fb = _g_value; fb.dispose(); } this.frameBufferMap.h = Object.create(null); } ,__class__: funkin_graphics_framebuffer_FrameBufferManager }; var funkin_graphics_framebuffer_SpriteCopy = function(sprite,color) { this.sprite = sprite; this.color = color; }; $hxClasses["funkin.graphics.framebuffer.SpriteCopy"] = funkin_graphics_framebuffer_SpriteCopy; funkin_graphics_framebuffer_SpriteCopy.__name__ = "funkin.graphics.framebuffer.SpriteCopy"; funkin_graphics_framebuffer_SpriteCopy.prototype = { sprite: null ,color: null ,render: function(camera) { if(this.color == null) { var tmpCameras = this.sprite._cameras; this.sprite._cameras = [camera]; this.sprite.draw(); this.sprite._cameras = tmpCameras; } else { var rMult = this.sprite.colorTransform.redMultiplier; var gMult = this.sprite.colorTransform.greenMultiplier; var bMult = this.sprite.colorTransform.blueMultiplier; var aMult = this.sprite.colorTransform.alphaMultiplier; var rOff = this.sprite.colorTransform.redOffset | 0; var gOff = this.sprite.colorTransform.greenOffset | 0; var bOff = this.sprite.colorTransform.blueOffset | 0; var aOff = this.sprite.colorTransform.alphaOffset | 0; var tmpCameras = this.sprite._cameras; var tmpShader = this.sprite.shader; this.sprite._cameras = [camera]; this.sprite.shader = null; this.sprite.setColorTransform(0,0,0,1,this.color >> 16 & 255,this.color >> 8 & 255,this.color & 255,0); this.sprite.draw(); this.sprite._cameras = tmpCameras; this.sprite.shader = tmpShader; this.sprite.setColorTransform(rMult,gMult,bMult,aMult,rOff,gOff,bOff,aOff); } } ,__class__: funkin_graphics_framebuffer_SpriteCopy }; var funkin_graphics_shaders_AngleMask = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform vec2 endPosition;\n vec2 hash22(vec2 p) {\n vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));\n p3 += dot(p3, p3.yzx + 33.33);\n return fract((p3.xx + p3.yz) * p3.zy);\n }\n\n\n\n // ====== GAMMA CORRECTION ====== //\n // Helps with color mixing -- good to have by default in almost any shader\n // See https://www.shadertoy.com/view/lscSzl\n vec3 gamma(in vec3 color) {\n return pow(color, vec3(1.0 / 2.2));\n }\n\n vec4 mainPass(vec2 fragCoord) {\n vec4 base = texture2D(bitmap, fragCoord);\n\n vec2 uv = fragCoord.xy;\n\n vec2 start = vec2(0.0, 0.0);\n vec2 end = vec2(endPosition.x / openfl_TextureSize.x, 1.0);\n\n float dx = end.x - start.x;\n float dy = end.y - start.y;\n\n float angle = atan(dy, dx);\n\n uv.x -= start.x;\n uv.y -= start.y;\n\n float uvA = atan(uv.y, uv.x);\n\n if (uvA < angle)\n return base;\n else\n return vec4(0.0);\n }\n\n vec4 antialias(vec2 fragCoord) {\n\n const float AA_STAGES = 2.0;\n\n const float AA_TOTAL_PASSES = AA_STAGES * AA_STAGES + 1.0;\n const float AA_JITTER = 0.5;\n\n // Run the shader multiple times with a random subpixel offset each time and average the results\n vec4 color = mainPass(fragCoord);\n for (float x = 0.0; x < AA_STAGES; x++)\n {\n for (float y = 0.0; y < AA_STAGES; y++)\n {\n vec2 offset = AA_JITTER * (2.0 * hash22(vec2(x, y)) - 1.0) / openfl_TextureSize.xy;\n color += mainPass(fragCoord + offset);\n }\n }\n return color / AA_TOTAL_PASSES;\n }\n\n void main() {\n vec4 col = antialias(openfl_TextureCoordv);\n // col.xyz = gamma(col.xyz);\n gl_FragColor = col;\n }"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform vec2 endPosition;\n vec2 hash22(vec2 p) {\n vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));\n p3 += dot(p3, p3.yzx + 33.33);\n return fract((p3.xx + p3.yz) * p3.zy);\n }\n\n\n\n // ====== GAMMA CORRECTION ====== //\n // Helps with color mixing -- good to have by default in almost any shader\n // See https://www.shadertoy.com/view/lscSzl\n vec3 gamma(in vec3 color) {\n return pow(color, vec3(1.0 / 2.2));\n }\n\n vec4 mainPass(vec2 fragCoord) {\n vec4 base = texture2D(bitmap, fragCoord);\n\n vec2 uv = fragCoord.xy;\n\n vec2 start = vec2(0.0, 0.0);\n vec2 end = vec2(endPosition.x / openfl_TextureSize.x, 1.0);\n\n float dx = end.x - start.x;\n float dy = end.y - start.y;\n\n float angle = atan(dy, dx);\n\n uv.x -= start.x;\n uv.y -= start.y;\n\n float uvA = atan(uv.y, uv.x);\n\n if (uvA < angle)\n return base;\n else\n return vec4(0.0);\n }\n\n vec4 antialias(vec2 fragCoord) {\n\n const float AA_STAGES = 2.0;\n\n const float AA_TOTAL_PASSES = AA_STAGES * AA_STAGES + 1.0;\n const float AA_JITTER = 0.5;\n\n // Run the shader multiple times with a random subpixel offset each time and average the results\n vec4 color = mainPass(fragCoord);\n for (float x = 0.0; x < AA_STAGES; x++)\n {\n for (float y = 0.0; y < AA_STAGES; y++)\n {\n vec2 offset = AA_JITTER * (2.0 * hash22(vec2(x, y)) - 1.0) / openfl_TextureSize.xy;\n color += mainPass(fragCoord + offset);\n }\n }\n return color / AA_TOTAL_PASSES;\n }\n\n void main() {\n vec4 col = antialias(openfl_TextureCoordv);\n // col.xyz = gamma(col.xyz);\n gl_FragColor = col;\n }"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.endPosition.value = [90,100]; this.__initGL(); }; $hxClasses["funkin.graphics.shaders.AngleMask"] = funkin_graphics_shaders_AngleMask; funkin_graphics_shaders_AngleMask.__name__ = "funkin.graphics.shaders.AngleMask"; funkin_graphics_shaders_AngleMask.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_AngleMask.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ endPosition: null ,__class__: funkin_graphics_shaders_AngleMask }); var funkin_graphics_shaders_BlendModeEffect = function(shader,color) { shader.uBlendColor.value = []; this.shader = shader; this.set_color(color); }; $hxClasses["funkin.graphics.shaders.BlendModeEffect"] = funkin_graphics_shaders_BlendModeEffect; funkin_graphics_shaders_BlendModeEffect.__name__ = "funkin.graphics.shaders.BlendModeEffect"; funkin_graphics_shaders_BlendModeEffect.prototype = { shader: null ,color: null ,set_color: function(color) { this.shader.uBlendColor.value[0] = (color >> 16 & 255) / 255; this.shader.uBlendColor.value[1] = (color >> 8 & 255) / 255; this.shader.uBlendColor.value[2] = (color & 255) / 255; this.shader.uBlendColor.value[3] = (color >> 24 & 255) / 255; return this.color = color; } ,__class__: funkin_graphics_shaders_BlendModeEffect ,__properties__: {set_color:"set_color"} }; var funkin_graphics_shaders_BlendModesShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("blendModes"))); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.BlendModesShader"] = funkin_graphics_shaders_BlendModesShader; funkin_graphics_shaders_BlendModesShader.__name__ = "funkin.graphics.shaders.BlendModesShader"; funkin_graphics_shaders_BlendModesShader.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_BlendModesShader.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ camera: null ,cameraData: null ,setCamera: function(cameraData) { this.cameraData = cameraData; this.setBitmapData("camera",this.cameraData); } ,__class__: funkin_graphics_shaders_BlendModesShader }); var funkin_graphics_shaders_ColorSwap = function() { this.hueShit = 0; this.hasOutline = false; this.shader = new funkin_graphics_shaders_ColorSwapShader(); this.shader.uTime.value = [0]; this.shader.money.value = [0]; this.shader.awesomeOutline.value = [this.hasOutline]; }; $hxClasses["funkin.graphics.shaders.ColorSwap"] = funkin_graphics_shaders_ColorSwap; funkin_graphics_shaders_ColorSwap.__name__ = "funkin.graphics.shaders.ColorSwap"; funkin_graphics_shaders_ColorSwap.prototype = { shader: null ,colorToReplace: null ,newColor: null ,daTime: null ,hasOutline: null ,hueShit: null ,update: function(elapsed) { this.shader.uTime.value[0] += elapsed; this.hueShit += elapsed; } ,set_colorToReplace: function(color) { this.colorToReplace = color; return color; } ,set_hasOutline: function(lol) { this.shader.awesomeOutline.value = [lol]; return lol; } ,set_daTime: function(daTime) { return daTime; } ,set_newColor: function(color) { this.newColor = color; return color; } ,__class__: funkin_graphics_shaders_ColorSwap ,__properties__: {set_hasOutline:"set_hasOutline",set_daTime:"set_daTime",set_newColor:"set_newColor",set_colorToReplace:"set_colorToReplace"} }; var funkin_graphics_shaders_ColorSwapShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform float uTime;\n uniform float money;\n uniform bool awesomeOutline;\n\n\n const float offset = 1.0 / 128.0;\n\n\n\n vec3 normalizeColor(vec3 color)\n {\n return vec3(\n color[0] / 255.0,\n color[1] / 255.0,\n color[2] / 255.0\n );\n }\n\n vec3 rgb2hsv(vec3 c)\n {\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n }\n\n vec3 hsv2rgb(vec3 c)\n {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\n vec4 swagColor = vec4(rgb2hsv(vec3(color[0], color[1], color[2])), color[3]);\n\n // [0] is the hue???\n swagColor[0] += uTime;\n // swagColor[1] += uTime;\n\n // money += swagColor[0];\n\n color = vec4(hsv2rgb(vec3(swagColor[0], swagColor[1], swagColor[2])), swagColor[3]);\n\n\n if (awesomeOutline)\n {\n // Outline bullshit?\n vec2 size = vec2(3, 3);\n\n if (color.a <= 0.5) {\n float w = size.x / openfl_TextureSize.x;\n float h = size.y / openfl_TextureSize.y;\n\n if (flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x + w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x - w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y + h)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y - h)).a != 0.)\n color = vec4(1.0, 1.0, 1.0, 1.0);\n }\n\n\n }\n\n\n\n gl_FragColor = color;\n\n\n /*\n if (color.a > 0.5)\n gl_FragColor = color;\n else\n {\n float a = flixel_texture2D(bitmap, vec2(openfl_TextureCoordv + offset, openfl_TextureCoordv.y)).a +\n flixel_texture2D(bitmap, vec2(openfl_TextureCoordv, openfl_TextureCoordv.y - offset)).a +\n flixel_texture2D(bitmap, vec2(openfl_TextureCoordv - offset, openfl_TextureCoordv.y)).a +\n flixel_texture2D(bitmap, vec2(openfl_TextureCoordv, openfl_TextureCoordv.y + offset)).a;\n if (color.a < 1.0 && a > 0.0)\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.8);\n else\n gl_FragColor = color;\n } */\n }\n\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform float uTime;\n uniform float money;\n uniform bool awesomeOutline;\n\n\n const float offset = 1.0 / 128.0;\n\n\n\n vec3 normalizeColor(vec3 color)\n {\n return vec3(\n color[0] / 255.0,\n color[1] / 255.0,\n color[2] / 255.0\n );\n }\n\n vec3 rgb2hsv(vec3 c)\n {\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n }\n\n vec3 hsv2rgb(vec3 c)\n {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\n vec4 swagColor = vec4(rgb2hsv(vec3(color[0], color[1], color[2])), color[3]);\n\n // [0] is the hue???\n swagColor[0] += uTime;\n // swagColor[1] += uTime;\n\n // money += swagColor[0];\n\n color = vec4(hsv2rgb(vec3(swagColor[0], swagColor[1], swagColor[2])), swagColor[3]);\n\n\n if (awesomeOutline)\n {\n // Outline bullshit?\n vec2 size = vec2(3, 3);\n\n if (color.a <= 0.5) {\n float w = size.x / openfl_TextureSize.x;\n float h = size.y / openfl_TextureSize.y;\n\n if (flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x + w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x - w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y + h)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y - h)).a != 0.)\n color = vec4(1.0, 1.0, 1.0, 1.0);\n }\n\n\n }\n\n\n\n gl_FragColor = color;\n\n\n /*\n if (color.a > 0.5)\n gl_FragColor = color;\n else\n {\n float a = flixel_texture2D(bitmap, vec2(openfl_TextureCoordv + offset, openfl_TextureCoordv.y)).a +\n flixel_texture2D(bitmap, vec2(openfl_TextureCoordv, openfl_TextureCoordv.y - offset)).a +\n flixel_texture2D(bitmap, vec2(openfl_TextureCoordv - offset, openfl_TextureCoordv.y)).a +\n flixel_texture2D(bitmap, vec2(openfl_TextureCoordv, openfl_TextureCoordv.y + offset)).a;\n if (color.a < 1.0 && a > 0.0)\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.8);\n else\n gl_FragColor = color;\n } */\n }\n\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.ColorSwapShader"] = funkin_graphics_shaders_ColorSwapShader; funkin_graphics_shaders_ColorSwapShader.__name__ = "funkin.graphics.shaders.ColorSwapShader"; funkin_graphics_shaders_ColorSwapShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_ColorSwapShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ uTime: null ,money: null ,awesomeOutline: null ,__class__: funkin_graphics_shaders_ColorSwapShader }); var funkin_graphics_shaders_GaussianBlurShader = function(amount) { if(amount == null) { amount = 1.0; } if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("gaussianBlur"))); this.setAmount(amount); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.GaussianBlurShader"] = funkin_graphics_shaders_GaussianBlurShader; funkin_graphics_shaders_GaussianBlurShader.__name__ = "funkin.graphics.shaders.GaussianBlurShader"; funkin_graphics_shaders_GaussianBlurShader.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_GaussianBlurShader.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ amount: null ,setAmount: function(value) { this.amount = value; this.setFloat("_amount",this.amount); } ,__class__: funkin_graphics_shaders_GaussianBlurShader }); var funkin_graphics_shaders_Grayscale = function(amount) { if(amount == null) { amount = 1; } this.amount = 1; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("grayscale"))); this.setAmount(amount); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.Grayscale"] = funkin_graphics_shaders_Grayscale; funkin_graphics_shaders_Grayscale.__name__ = "funkin.graphics.shaders.Grayscale"; funkin_graphics_shaders_Grayscale.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_Grayscale.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ amount: null ,setAmount: function(value) { this.amount = value; this.setFloat("_amount",this.amount); } ,__class__: funkin_graphics_shaders_Grayscale }); var funkin_graphics_shaders_HSVShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("hsv"))); var _this = flixel_FlxG.debugger; var Profile = new flixel_system_debug_watch_TrackerProfile(funkin_graphics_shaders_HSVShader,["hue","saturation","value"]); this.set_hue(1); this.set_saturation(1); this.set_value(1); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.HSVShader"] = funkin_graphics_shaders_HSVShader; funkin_graphics_shaders_HSVShader.__name__ = "funkin.graphics.shaders.HSVShader"; funkin_graphics_shaders_HSVShader.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_HSVShader.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ hue: null ,saturation: null ,value: null ,set_hue: function(value) { this.setFloat("_hue",value); this.hue = value; return this.hue; } ,set_saturation: function(value) { this.setFloat("_sat",value); this.saturation = value; return this.saturation; } ,set_value: function(value) { this.setFloat("_val",value); this.value = value; return this.value; } ,__class__: funkin_graphics_shaders_HSVShader ,__properties__: $extend(flixel_addons_display_FlxRuntimeShader.prototype.__properties__,{set_value:"set_value",set_saturation:"set_saturation",set_hue:"set_hue"}) }); var funkin_graphics_shaders_LeftMaskShader = function() { this.swagSprX = 0; this.swagMaskX = 0; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform float sprX;\n uniform float maskX;\n\n\t\tuniform float uvFrameX;\n\t\tuniform float uvFrameY;\n\n void main()\n {\n\n float cutOff = maskX - sprX;\n float sprPos = cutOff / openfl_TextureSize.x;\n\n vec2 uv = openfl_TextureCoordv.xy;\n\n vec4 color = flixel_texture2D(bitmap, uv);\n\n if (uv.x < sprPos + uvFrameX)\n {\n color = vec4(0.0, 0.0, 0.0, 0.0);\n }\n\n gl_FragColor = color;\n\t\t\t// vec4 testCol = vec4(openfl_Position.x, openfl_Position.y, openfl_Position.z, 1.0);\n\t\t\t//gl_FragColor = vec4(1.0, openfl_TextureSize.x, 1.0, 1.0);\n\n }\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform float sprX;\n uniform float maskX;\n\n\t\tuniform float uvFrameX;\n\t\tuniform float uvFrameY;\n\n void main()\n {\n\n float cutOff = maskX - sprX;\n float sprPos = cutOff / openfl_TextureSize.x;\n\n vec2 uv = openfl_TextureCoordv.xy;\n\n vec4 color = flixel_texture2D(bitmap, uv);\n\n if (uv.x < sprPos + uvFrameX)\n {\n color = vec4(0.0, 0.0, 0.0, 0.0);\n }\n\n gl_FragColor = color;\n\t\t\t// vec4 testCol = vec4(openfl_Position.x, openfl_Position.y, openfl_Position.z, 1.0);\n\t\t\t//gl_FragColor = vec4(1.0, openfl_TextureSize.x, 1.0, 1.0);\n\n }\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.sprX.value = [0]; this.maskX.value = [0]; this.uvFrameX.value = [0]; this.uvFrameY.value = [0]; this.__initGL(); }; $hxClasses["funkin.graphics.shaders.LeftMaskShader"] = funkin_graphics_shaders_LeftMaskShader; funkin_graphics_shaders_LeftMaskShader.__name__ = "funkin.graphics.shaders.LeftMaskShader"; funkin_graphics_shaders_LeftMaskShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_LeftMaskShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ swagMaskX: null ,swagSprX: null ,frameUV: null ,set_swagSprX: function(x) { this.sprX.value[0] = x; return x; } ,set_swagMaskX: function(x) { this.maskX.value[0] = x; return x; } ,set_frameUV: function(uv) { haxe_Log.trace("SETTING FRAMEUV",{ fileName : "source/funkin/graphics/shaders/LeftMaskShader.hx", lineNumber : 28, className : "funkin.graphics.shaders.LeftMaskShader", methodName : "set_frameUV"}); haxe_Log.trace(uv,{ fileName : "source/funkin/graphics/shaders/LeftMaskShader.hx", lineNumber : 29, className : "funkin.graphics.shaders.LeftMaskShader", methodName : "set_frameUV"}); this.uvFrameX.value[0] = uv.x; this.uvFrameY.value[0] = uv.y; return uv; } ,sprX: null ,maskX: null ,uvFrameX: null ,uvFrameY: null ,__class__: funkin_graphics_shaders_LeftMaskShader ,__properties__: $extend(flixel_graphics_tile_FlxGraphicsShader.prototype.__properties__,{set_frameUV:"set_frameUV",set_swagSprX:"set_swagSprX",set_swagMaskX:"set_swagMaskX"}) }); var funkin_graphics_shaders_MultiplyShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n uniform sampler2D funnyImage;\n\t\tuniform vec4 uBlendColor;\n\n\t\tvec4 blendMultiply(vec4 base, vec4 blend)\n\t\t{\n\t\t\treturn base * blend;\n\t\t}\n\n\t\tvec4 blendMultiply(vec4 base, vec4 blend, float opacity)\n\t\t{\n\t\t\treturn (blendMultiply(base, blend) * opacity + base * (1.0 - opacity));\n\t\t}\n\n\t\tvoid main()\n\t\t{\n\t\t\tvec4 base = texture2D(bitmap, openfl_TextureCoordv);\n\t\t\tgl_FragColor = blendMultiply(base, uBlendColor, uBlendColor.a);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n uniform sampler2D funnyImage;\n\t\tuniform vec4 uBlendColor;\n\n\t\tvec4 blendMultiply(vec4 base, vec4 blend)\n\t\t{\n\t\t\treturn base * blend;\n\t\t}\n\n\t\tvec4 blendMultiply(vec4 base, vec4 blend, float opacity)\n\t\t{\n\t\t\treturn (blendMultiply(base, blend) * opacity + base * (1.0 - opacity));\n\t\t}\n\n\t\tvoid main()\n\t\t{\n\t\t\tvec4 base = texture2D(bitmap, openfl_TextureCoordv);\n\t\t\tgl_FragColor = blendMultiply(base, uBlendColor, uBlendColor.a);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.MultiplyShader"] = funkin_graphics_shaders_MultiplyShader; funkin_graphics_shaders_MultiplyShader.__name__ = "funkin.graphics.shaders.MultiplyShader"; funkin_graphics_shaders_MultiplyShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_MultiplyShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ funnyImage: null ,uBlendColor: null ,__class__: funkin_graphics_shaders_MultiplyShader }); var funkin_graphics_shaders_OverlayBlend = function() { this.funnyY = 0; this.funnyX = 0; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform float alphaShit;\n\t\tuniform float yPos;\n\t\tuniform float xPos;\n\n\t\tuniform sampler2D funnyShit;\n\n\n\t\tvec4 blendOverlay(vec4 base, vec4 blend)\n\t\t{\n\t\t\tvec4 mixed = mix(1.0 - 2.0 * (1.0 - base) * (1.0 - blend), 2.0 * base * blend, step(base, vec4(0.5)));\n\n\t\t\t// mixed = mix(mixed, blend, base.a); // proper alpha mixing?\n\n\t\t\treturn mixed;\n\t\t}\n\n void main()\n {\n\t\t\tvec2 funnyUv = openfl_TextureCoordv;\n vec4 color = flixel_texture2D(bitmap, funnyUv);\n\n\t\t\tvec2 reallyFunnyUv = vec2(vec2(0.0, 0.0) - gl_FragCoord.xy / openfl_TextureSize.xy);\n\n\t\t\tvec4 gf = flixel_texture2D(funnyShit, openfl_TextureCoordv.xy + vec2(0.1, 0.2));\n\n\n\t\t\tvec4 mixedCol = blendOverlay(color, gf);\n\n gl_FragColor = mixedCol;\n }\n\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform float alphaShit;\n\t\tuniform float yPos;\n\t\tuniform float xPos;\n\n\t\tuniform sampler2D funnyShit;\n\n\n\t\tvec4 blendOverlay(vec4 base, vec4 blend)\n\t\t{\n\t\t\tvec4 mixed = mix(1.0 - 2.0 * (1.0 - base) * (1.0 - blend), 2.0 * base * blend, step(base, vec4(0.5)));\n\n\t\t\t// mixed = mix(mixed, blend, base.a); // proper alpha mixing?\n\n\t\t\treturn mixed;\n\t\t}\n\n void main()\n {\n\t\t\tvec2 funnyUv = openfl_TextureCoordv;\n vec4 color = flixel_texture2D(bitmap, funnyUv);\n\n\t\t\tvec2 reallyFunnyUv = vec2(vec2(0.0, 0.0) - gl_FragCoord.xy / openfl_TextureSize.xy);\n\n\t\t\tvec4 gf = flixel_texture2D(funnyShit, openfl_TextureCoordv.xy + vec2(0.1, 0.2));\n\n\n\t\t\tvec4 mixedCol = blendOverlay(color, gf);\n\n gl_FragColor = mixedCol;\n }\n\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.xPos.value = [0]; this.yPos.value = [0]; this.__initGL(); }; $hxClasses["funkin.graphics.shaders.OverlayBlend"] = funkin_graphics_shaders_OverlayBlend; funkin_graphics_shaders_OverlayBlend.__name__ = "funkin.graphics.shaders.OverlayBlend"; funkin_graphics_shaders_OverlayBlend.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_OverlayBlend.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ funnyX: null ,funnyY: null ,set_funnyX: function(x) { this.xPos.value[0] = x; return x; } ,set_funnyY: function(y) { this.yPos.value[0] = y; return y; } ,alphaShit: null ,yPos: null ,xPos: null ,funnyShit: null ,__class__: funkin_graphics_shaders_OverlayBlend ,__properties__: $extend(flixel_graphics_tile_FlxGraphicsShader.prototype.__properties__,{set_funnyY:"set_funnyY",set_funnyX:"set_funnyX"}) }); var funkin_graphics_shaders_PuddleShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("puddle"))); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.PuddleShader"] = funkin_graphics_shaders_PuddleShader; funkin_graphics_shaders_PuddleShader.__name__ = "funkin.graphics.shaders.PuddleShader"; funkin_graphics_shaders_PuddleShader.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_PuddleShader.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ __class__: funkin_graphics_shaders_PuddleShader }); var funkin_graphics_shaders_PureColor = function(colr) { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform vec4 funnyColor;\n uniform bool colSet;\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\n if (color.a > 0.0 && colSet)\n color = vec4(funnyColor.r, funnyColor.g, funnyColor.b, color.a);\n\n gl_FragColor = color;\n }\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform vec4 funnyColor;\n uniform bool colSet;\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\n if (color.a > 0.0 && colSet)\n color = vec4(funnyColor.r, funnyColor.g, funnyColor.b, color.a);\n\n gl_FragColor = color;\n }\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.set_col(colr); this.set_colorSet(false); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.PureColor"] = funkin_graphics_shaders_PureColor; funkin_graphics_shaders_PureColor.__name__ = "funkin.graphics.shaders.PureColor"; funkin_graphics_shaders_PureColor.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_PureColor.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ col: null ,colorSet: null ,set_colorSet: function(bol) { this.colSet.value = [bol]; return bol; } ,set_col: function(val) { this.funnyColor.value = [val >> 16 & 255,val >> 8 & 255,val & 255,val >> 24 & 255]; return val; } ,funnyColor: null ,colSet: null ,__class__: funkin_graphics_shaders_PureColor ,__properties__: $extend(flixel_graphics_tile_FlxGraphicsShader.prototype.__properties__,{set_colorSet:"set_colorSet",set_col:"set_col"}) }); var funkin_graphics_shaders_RuntimePostEffectShader = function(fragmentSource,glVersion) { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\n\t\t// equals (FlxG.width, FlxG.height)\n\t\tuniform vec2 uScreenResolution;\n\n\t\t// equals (camera.viewLeft, camera.viewTop, camera.viewRight, camera.viewBottom)\n\t\tuniform vec4 uCameraBounds;\n\n\t\t// screen coord -> world coord conversion\n\t\t// returns world coord in px\n\t\tvec2 screenToWorld(vec2 screenCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn screenCoord * scale + offset;\n\t\t}\n\n\t\t// world coord -> screen coord conversion\n\t\t// returns normalized screen coord\n\t\tvec2 worldToScreen(vec2 worldCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn (worldCoord - offset) / scale;\n\t\t}\n\n\t\t// internally used to get the maximum `openfl_TextureCoordv`\n\t\tvec2 bitmapCoordScale() {\n\t\t\treturn openfl_TextureCoordv / screenCoord;\n\t\t}\n\n\t\t// internally used to compute bitmap coord\n\t\tvec2 screenToBitmap(vec2 screenCoord) {\n\t\t\treturn screenCoord * bitmapCoordScale();\n\t\t}\n\n\t\t// samples the frame buffer using a screen coord\n\t\tvec4 sampleBitmapScreen(vec2 screenCoord) {\n\t\t\treturn texture2D(bitmap, screenToBitmap(screenCoord));\n\t\t}\n\n\t\t// samples the frame buffer using a world coord\n\t\tvec4 sampleBitmapWorld(vec2 worldCoord) {\n\t\t\treturn sampleBitmapScreen(worldToScreen(worldCoord));\n\t\t}\n\t"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\t"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\tscreenCoord = vec2(\n\t\t\topenfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,\n\t\t\topenfl_TextureCoord.y > 0.0 ? 1.0 : 0.0\n\t\t);\n\t"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\n\t\t// equals (FlxG.width, FlxG.height)\n\t\tuniform vec2 uScreenResolution;\n\n\t\t// equals (camera.viewLeft, camera.viewTop, camera.viewRight, camera.viewBottom)\n\t\tuniform vec4 uCameraBounds;\n\n\t\t// screen coord -> world coord conversion\n\t\t// returns world coord in px\n\t\tvec2 screenToWorld(vec2 screenCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn screenCoord * scale + offset;\n\t\t}\n\n\t\t// world coord -> screen coord conversion\n\t\t// returns normalized screen coord\n\t\tvec2 worldToScreen(vec2 worldCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn (worldCoord - offset) / scale;\n\t\t}\n\n\t\t// internally used to get the maximum `openfl_TextureCoordv`\n\t\tvec2 bitmapCoordScale() {\n\t\t\treturn openfl_TextureCoordv / screenCoord;\n\t\t}\n\n\t\t// internally used to compute bitmap coord\n\t\tvec2 screenToBitmap(vec2 screenCoord) {\n\t\t\treturn screenCoord * bitmapCoordScale();\n\t\t}\n\n\t\t// samples the frame buffer using a screen coord\n\t\tvec4 sampleBitmapScreen(vec2 screenCoord) {\n\t\t\treturn texture2D(bitmap, screenToBitmap(screenCoord));\n\t\t}\n\n\t\t// samples the frame buffer using a world coord\n\t\tvec4 sampleBitmapWorld(vec2 worldCoord) {\n\t\t\treturn sampleBitmapScreen(worldToScreen(worldCoord));\n\t\t}\n\t\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\t\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\tscreenCoord = vec2(\n\t\t\topenfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,\n\t\t\topenfl_TextureCoord.y > 0.0 ? 1.0 : 0.0\n\t\t);\n\t\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,fragmentSource,null,glVersion); this.uScreenResolution.value = [flixel_FlxG.width,flixel_FlxG.height]; this.__initGL(); }; $hxClasses["funkin.graphics.shaders.RuntimePostEffectShader"] = funkin_graphics_shaders_RuntimePostEffectShader; funkin_graphics_shaders_RuntimePostEffectShader.__name__ = "funkin.graphics.shaders.RuntimePostEffectShader"; funkin_graphics_shaders_RuntimePostEffectShader.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_RuntimePostEffectShader.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ updateViewInfo: function(screenWidth,screenHeight,camera) { this.uScreenResolution.value = [screenWidth,screenHeight]; this.uCameraBounds.value = [camera.scroll.x + camera.viewMarginX,camera.scroll.y + camera.viewMarginY,camera.scroll.x + (camera.width - camera.viewMarginX),camera.scroll.y + (camera.height - camera.viewMarginY)]; } ,__createGLProgram: function(vertexSource,fragmentSource) { try { var res = flixel_addons_display_FlxRuntimeShader.prototype.__createGLProgram.call(this,vertexSource,fragmentSource); return res; } catch( _g ) { var error = haxe_Exception.caught(_g); lime_utils_Log.warn(error,{ fileName : "source/funkin/graphics/shaders/RuntimePostEffectShader.hx", lineNumber : 101, className : "funkin.graphics.shaders.RuntimePostEffectShader", methodName : "__createGLProgram"}); return null; } } ,uScreenResolution: null ,uCameraBounds: null ,__class__: funkin_graphics_shaders_RuntimePostEffectShader }); var funkin_graphics_shaders_RuntimeCustomBlendShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\n\t\t// equals (FlxG.width, FlxG.height)\n\t\tuniform vec2 uScreenResolution;\n\n\t\t// equals (camera.viewLeft, camera.viewTop, camera.viewRight, camera.viewBottom)\n\t\tuniform vec4 uCameraBounds;\n\n\t\t// screen coord -> world coord conversion\n\t\t// returns world coord in px\n\t\tvec2 screenToWorld(vec2 screenCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn screenCoord * scale + offset;\n\t\t}\n\n\t\t// world coord -> screen coord conversion\n\t\t// returns normalized screen coord\n\t\tvec2 worldToScreen(vec2 worldCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn (worldCoord - offset) / scale;\n\t\t}\n\n\t\t// internally used to get the maximum `openfl_TextureCoordv`\n\t\tvec2 bitmapCoordScale() {\n\t\t\treturn openfl_TextureCoordv / screenCoord;\n\t\t}\n\n\t\t// internally used to compute bitmap coord\n\t\tvec2 screenToBitmap(vec2 screenCoord) {\n\t\t\treturn screenCoord * bitmapCoordScale();\n\t\t}\n\n\t\t// samples the frame buffer using a screen coord\n\t\tvec4 sampleBitmapScreen(vec2 screenCoord) {\n\t\t\treturn texture2D(bitmap, screenToBitmap(screenCoord));\n\t\t}\n\n\t\t// samples the frame buffer using a world coord\n\t\tvec4 sampleBitmapWorld(vec2 worldCoord) {\n\t\t\treturn sampleBitmapScreen(worldToScreen(worldCoord));\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\t\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\tscreenCoord = vec2(\n\t\t\topenfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,\n\t\t\topenfl_TextureCoord.y > 0.0 ? 1.0 : 0.0\n\t\t);\n\t\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\n\t\t// equals (FlxG.width, FlxG.height)\n\t\tuniform vec2 uScreenResolution;\n\n\t\t// equals (camera.viewLeft, camera.viewTop, camera.viewRight, camera.viewBottom)\n\t\tuniform vec4 uCameraBounds;\n\n\t\t// screen coord -> world coord conversion\n\t\t// returns world coord in px\n\t\tvec2 screenToWorld(vec2 screenCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn screenCoord * scale + offset;\n\t\t}\n\n\t\t// world coord -> screen coord conversion\n\t\t// returns normalized screen coord\n\t\tvec2 worldToScreen(vec2 worldCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn (worldCoord - offset) / scale;\n\t\t}\n\n\t\t// internally used to get the maximum `openfl_TextureCoordv`\n\t\tvec2 bitmapCoordScale() {\n\t\t\treturn openfl_TextureCoordv / screenCoord;\n\t\t}\n\n\t\t// internally used to compute bitmap coord\n\t\tvec2 screenToBitmap(vec2 screenCoord) {\n\t\t\treturn screenCoord * bitmapCoordScale();\n\t\t}\n\n\t\t// samples the frame buffer using a screen coord\n\t\tvec4 sampleBitmapScreen(vec2 screenCoord) {\n\t\t\treturn texture2D(bitmap, screenToBitmap(screenCoord));\n\t\t}\n\n\t\t// samples the frame buffer using a world coord\n\t\tvec4 sampleBitmapWorld(vec2 worldCoord) {\n\t\t\treturn sampleBitmapScreen(worldToScreen(worldCoord));\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\t\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\tscreenCoord = vec2(\n\t\t\topenfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,\n\t\t\topenfl_TextureCoord.y > 0.0 ? 1.0 : 0.0\n\t\t);\n\t\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; funkin_graphics_shaders_RuntimePostEffectShader.call(this,openfl_utils_Assets.getText("assets/shaders/customBlend.frag")); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.RuntimeCustomBlendShader"] = funkin_graphics_shaders_RuntimeCustomBlendShader; funkin_graphics_shaders_RuntimeCustomBlendShader.__name__ = "funkin.graphics.shaders.RuntimeCustomBlendShader"; funkin_graphics_shaders_RuntimeCustomBlendShader.__super__ = funkin_graphics_shaders_RuntimePostEffectShader; funkin_graphics_shaders_RuntimeCustomBlendShader.prototype = $extend(funkin_graphics_shaders_RuntimePostEffectShader.prototype,{ sourceSwag: null ,set_sourceSwag: function(value) { this.setBitmapData("sourceSwag",value); return this.sourceSwag = value; } ,blendSwag: null ,set_blendSwag: function(value) { this.setInt("blendMode",value); return this.blendSwag = value; } ,__class__: funkin_graphics_shaders_RuntimeCustomBlendShader ,__properties__: $extend(funkin_graphics_shaders_RuntimePostEffectShader.prototype.__properties__,{set_blendSwag:"set_blendSwag",set_sourceSwag:"set_sourceSwag"}) }); var funkin_graphics_shaders_RuntimeRainShader = function() { this.numLightsSwag = 0; this.puddleScaleY = 0; this.puddleY = 0; this.intensity = 0.5; this.scale = 1; this.time = 1; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\n\t\t// equals (FlxG.width, FlxG.height)\n\t\tuniform vec2 uScreenResolution;\n\n\t\t// equals (camera.viewLeft, camera.viewTop, camera.viewRight, camera.viewBottom)\n\t\tuniform vec4 uCameraBounds;\n\n\t\t// screen coord -> world coord conversion\n\t\t// returns world coord in px\n\t\tvec2 screenToWorld(vec2 screenCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn screenCoord * scale + offset;\n\t\t}\n\n\t\t// world coord -> screen coord conversion\n\t\t// returns normalized screen coord\n\t\tvec2 worldToScreen(vec2 worldCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn (worldCoord - offset) / scale;\n\t\t}\n\n\t\t// internally used to get the maximum `openfl_TextureCoordv`\n\t\tvec2 bitmapCoordScale() {\n\t\t\treturn openfl_TextureCoordv / screenCoord;\n\t\t}\n\n\t\t// internally used to compute bitmap coord\n\t\tvec2 screenToBitmap(vec2 screenCoord) {\n\t\t\treturn screenCoord * bitmapCoordScale();\n\t\t}\n\n\t\t// samples the frame buffer using a screen coord\n\t\tvec4 sampleBitmapScreen(vec2 screenCoord) {\n\t\t\treturn texture2D(bitmap, screenToBitmap(screenCoord));\n\t\t}\n\n\t\t// samples the frame buffer using a world coord\n\t\tvec4 sampleBitmapWorld(vec2 worldCoord) {\n\t\t\treturn sampleBitmapScreen(worldToScreen(worldCoord));\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\t\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\tscreenCoord = vec2(\n\t\t\topenfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,\n\t\t\topenfl_TextureCoord.y > 0.0 ? 1.0 : 0.0\n\t\t);\n\t\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\n\t\t// equals (FlxG.width, FlxG.height)\n\t\tuniform vec2 uScreenResolution;\n\n\t\t// equals (camera.viewLeft, camera.viewTop, camera.viewRight, camera.viewBottom)\n\t\tuniform vec4 uCameraBounds;\n\n\t\t// screen coord -> world coord conversion\n\t\t// returns world coord in px\n\t\tvec2 screenToWorld(vec2 screenCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn screenCoord * scale + offset;\n\t\t}\n\n\t\t// world coord -> screen coord conversion\n\t\t// returns normalized screen coord\n\t\tvec2 worldToScreen(vec2 worldCoord) {\n\t\t\tfloat left = uCameraBounds.x;\n\t\t\tfloat top = uCameraBounds.y;\n\t\t\tfloat right = uCameraBounds.z;\n\t\t\tfloat bottom = uCameraBounds.w;\n\t\t\tvec2 scale = vec2(right - left, bottom - top);\n\t\t\tvec2 offset = vec2(left, top);\n\t\t\treturn (worldCoord - offset) / scale;\n\t\t}\n\n\t\t// internally used to get the maximum `openfl_TextureCoordv`\n\t\tvec2 bitmapCoordScale() {\n\t\t\treturn openfl_TextureCoordv / screenCoord;\n\t\t}\n\n\t\t// internally used to compute bitmap coord\n\t\tvec2 screenToBitmap(vec2 screenCoord) {\n\t\t\treturn screenCoord * bitmapCoordScale();\n\t\t}\n\n\t\t// samples the frame buffer using a screen coord\n\t\tvec4 sampleBitmapScreen(vec2 screenCoord) {\n\t\t\treturn texture2D(bitmap, screenToBitmap(screenCoord));\n\t\t}\n\n\t\t// samples the frame buffer using a world coord\n\t\tvec4 sampleBitmapWorld(vec2 worldCoord) {\n\t\t\treturn sampleBitmapScreen(worldToScreen(worldCoord));\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t// normalized screen coord\n\t\t// (0, 0) is the top left of the window\n\t\t// (1, 1) is the bottom right of the window\n\t\tvarying vec2 screenCoord;\n\t\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\tscreenCoord = vec2(\n\t\t\topenfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,\n\t\t\topenfl_TextureCoord.y > 0.0 ? 1.0 : 0.0\n\t\t);\n\t\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; funkin_graphics_shaders_RuntimePostEffectShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("rain"))); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.RuntimeRainShader"] = funkin_graphics_shaders_RuntimeRainShader; funkin_graphics_shaders_RuntimeRainShader.__name__ = "funkin.graphics.shaders.RuntimeRainShader"; funkin_graphics_shaders_RuntimeRainShader.__super__ = funkin_graphics_shaders_RuntimePostEffectShader; funkin_graphics_shaders_RuntimeRainShader.prototype = $extend(funkin_graphics_shaders_RuntimePostEffectShader.prototype,{ lights: null ,time: null ,set_time: function(value) { this.setFloat("uTime",value); return this.time = value; } ,scale: null ,set_scale: function(value) { this.setFloat("uScale",value); return this.scale = value; } ,intensity: null ,set_intensity: function(value) { this.setFloat("uIntensity",value); return this.intensity = value; } ,puddleY: null ,set_puddleY: function(value) { this.setFloat("uPuddleY",value); return this.puddleY = value; } ,puddleScaleY: null ,set_puddleScaleY: function(value) { this.setFloat("uPuddleScaleY",value); return this.puddleScaleY = value; } ,blurredScreen: null ,set_blurredScreen: function(value) { this.setBitmapData("uBlurredScreen",value); return this.blurredScreen = value; } ,mask: null ,set_mask: function(value) { this.setBitmapData("uMask",value); return this.mask = value; } ,lightMap: null ,set_lightMap: function(value) { this.setBitmapData("uLightMap",value); return this.lightMap = value; } ,numLightsSwag: null ,set_numLightsSwag: function(value) { this.setInt("numLights",value); return this.numLightsSwag = value; } ,update: function(elapsed) { this.set_time(this.time + elapsed); } ,__processGLData: function(source,storageType) { funkin_graphics_shaders_RuntimePostEffectShader.prototype.__processGLData.call(this,source,storageType); if(storageType == "uniform") { var _g = []; var _g1 = 0; var _g2 = funkin_graphics_shaders_RuntimeRainShader.MAX_LIGHTS; while(_g1 < _g2) { var i = _g1++; _g.push({ position : this.addFloatUniform("lights[" + i + "].position",2), color : this.addFloatUniform("lights[" + i + "].color",3), radius : this.addFloatUniform("lights[" + i + "].radius",1)}); } this.lights = _g; } } ,addFloatUniform: function(name,length) { var res = new openfl_display_ShaderParameter(); res.set_name(name); res.type = [null,4,5,6,7][length]; res.__arrayLength = 1; res.__isFloat = true; res.__isUniform = true; res.__length = length; this.__paramFloat.push(res); return res; } ,__class__: funkin_graphics_shaders_RuntimeRainShader ,__properties__: $extend(funkin_graphics_shaders_RuntimePostEffectShader.prototype.__properties__,{set_numLightsSwag:"set_numLightsSwag",set_lightMap:"set_lightMap",set_mask:"set_mask",set_blurredScreen:"set_blurredScreen",set_puddleScaleY:"set_puddleScaleY",set_puddleY:"set_puddleY",set_intensity:"set_intensity",set_scale:"set_scale",set_time:"set_time"}) }); var funkin_graphics_shaders_ScreenWipeShader = function() { this.daAlphaShit = 0; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform float alphaShit;\n\t\tuniform float yPos;\n\t\tuniform float xPos;\n\n\t\tuniform sampler2D funnyShit;\n\n\n vec3 rgb2hsv(vec3 c)\n {\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n }\n\n vec3 hsv2rgb(vec3 c)\n {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n void main()\n {\n\t\t\tvec2 funnyUv = openfl_TextureCoordv;\n vec4 color = flixel_texture2D(bitmap, funnyUv);\n\n\t\t\tvec2 reallyFunnyUv = vec2(vec2(0.0, 0.0) - gl_FragCoord.xy / openfl_TextureSize.xy);\n\n\t\t\tvec4 gf = flixel_texture2D(funnyShit, openfl_TextureCoordv);\n\n\n vec3 hsvTypeBeat = rgb2hsv(vec3(gf.r, gf.g, gf.b));\n\n\t\t\tvec4 output = color;\n\n // .b here actually means value?\n\t\t\tif (hsvTypeBeat.b <= alphaShit)\n\t\t\t\tcolor = vec4(0.0, 0.0, 0.0, 0.0);\n\n\n gl_FragColor = color;\n }\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform float alphaShit;\n\t\tuniform float yPos;\n\t\tuniform float xPos;\n\n\t\tuniform sampler2D funnyShit;\n\n\n vec3 rgb2hsv(vec3 c)\n {\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n }\n\n vec3 hsv2rgb(vec3 c)\n {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n }\n\n void main()\n {\n\t\t\tvec2 funnyUv = openfl_TextureCoordv;\n vec4 color = flixel_texture2D(bitmap, funnyUv);\n\n\t\t\tvec2 reallyFunnyUv = vec2(vec2(0.0, 0.0) - gl_FragCoord.xy / openfl_TextureSize.xy);\n\n\t\t\tvec4 gf = flixel_texture2D(funnyShit, openfl_TextureCoordv);\n\n\n vec3 hsvTypeBeat = rgb2hsv(vec3(gf.r, gf.g, gf.b));\n\n\t\t\tvec4 output = color;\n\n // .b here actually means value?\n\t\t\tif (hsvTypeBeat.b <= alphaShit)\n\t\t\t\tcolor = vec4(0.0, 0.0, 0.0, 0.0);\n\n\n gl_FragColor = color;\n }\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.alphaShit.value = [0]; this.__initGL(); }; $hxClasses["funkin.graphics.shaders.ScreenWipeShader"] = funkin_graphics_shaders_ScreenWipeShader; funkin_graphics_shaders_ScreenWipeShader.__name__ = "funkin.graphics.shaders.ScreenWipeShader"; funkin_graphics_shaders_ScreenWipeShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_ScreenWipeShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ daAlphaShit: null ,set_daAlphaShit: function(alpha) { this.alphaShit.value[0] = alpha; return alpha; } ,alphaShit: null ,yPos: null ,xPos: null ,funnyShit: null ,__class__: funkin_graphics_shaders_ScreenWipeShader ,__properties__: $extend(flixel_graphics_tile_FlxGraphicsShader.prototype.__properties__,{set_daAlphaShit:"set_daAlphaShit"}) }); var funkin_graphics_shaders_StrokeShader = function(color,width,height) { if(height == null) { height = 1; } if(width == null) { width = 1; } if(color == null) { color = -1; } this.col = -1; this.height = 0; this.width = 0; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n uniform vec2 size;\n uniform vec4 color;\n\n void main()\n {\n vec4 gay = flixel_texture2D(bitmap, openfl_TextureCoordv);\n if (gay.a == 0.) {\n float w = size.x / openfl_TextureSize.x;\n float h = size.y / openfl_TextureSize.y;\n\n if (flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x + w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x - w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y + h)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y - h)).a != 0.)\n gay = color;\n }\n gl_FragColor = gay;\n }\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n uniform vec2 size;\n uniform vec4 color;\n\n void main()\n {\n vec4 gay = flixel_texture2D(bitmap, openfl_TextureCoordv);\n if (gay.a == 0.) {\n float w = size.x / openfl_TextureSize.x;\n float h = size.y / openfl_TextureSize.y;\n\n if (flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x + w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x - w, openfl_TextureCoordv.y)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y + h)).a != 0.\n || flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x, openfl_TextureCoordv.y - h)).a != 0.)\n gay = color;\n }\n gl_FragColor = gay;\n }\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.set_col(color); this.set_width(width); this.set_height(height); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.StrokeShader"] = funkin_graphics_shaders_StrokeShader; funkin_graphics_shaders_StrokeShader.__name__ = "funkin.graphics.shaders.StrokeShader"; funkin_graphics_shaders_StrokeShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_StrokeShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ width: null ,height: null ,col: null ,set_width: function(val) { this.size.value = [val,this.height]; return val; } ,set_height: function(val) { this.size.value = [this.width,val]; return val; } ,set_col: function(val) { this.color.value = [val >> 16 & 255,val >> 8 & 255,val & 255,val >> 24 & 255]; return val; } ,size: null ,color: null ,__class__: funkin_graphics_shaders_StrokeShader ,__properties__: $extend(flixel_graphics_tile_FlxGraphicsShader.prototype.__properties__,{set_col:"set_col",set_height:"set_height",set_width:"set_width"}) }); var funkin_graphics_shaders_TitleOutline = function() { this.funnyY = 0; this.funnyX = 0; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n // uniform float alphaShit;\n uniform float xPos;\n uniform float yPos;\n\n uniform int numoutlines = 1;\n\n vec3 rgb2hsv(vec3 c)\n {\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n }\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n vec2 size = vec2(xPos, yPos);\n\n if (color.a == 0.0) {\n float w = size.x / openfl_TextureSize.x;\n float h = size.y / openfl_TextureSize.y;\n\n vec4 colorOffset = flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x - w, openfl_TextureCoordv.y - h));\n\n\n vec3 hsvShit = rgb2hsv(vec3(colorOffset.r, colorOffset.g, colorOffset.b));\n\n if (hsvShit.b <= 0.1 && colorOffset.a != 0.)\n color = vec4(0.0, 1.0, 0.8, color.a);\n }\n\n gl_FragColor = color;\n }\n\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n // uniform float alphaShit;\n uniform float xPos;\n uniform float yPos;\n\n uniform int numoutlines = 1;\n\n vec3 rgb2hsv(vec3 c)\n {\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n }\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n vec2 size = vec2(xPos, yPos);\n\n if (color.a == 0.0) {\n float w = size.x / openfl_TextureSize.x;\n float h = size.y / openfl_TextureSize.y;\n\n vec4 colorOffset = flixel_texture2D(bitmap, vec2(openfl_TextureCoordv.x - w, openfl_TextureCoordv.y - h));\n\n\n vec3 hsvShit = rgb2hsv(vec3(colorOffset.r, colorOffset.g, colorOffset.b));\n\n if (hsvShit.b <= 0.1 && colorOffset.a != 0.)\n color = vec4(0.0, 1.0, 0.8, color.a);\n }\n\n gl_FragColor = color;\n }\n\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.xPos.value = [0]; this.yPos.value = [0]; this.__initGL(); }; $hxClasses["funkin.graphics.shaders.TitleOutline"] = funkin_graphics_shaders_TitleOutline; funkin_graphics_shaders_TitleOutline.__name__ = "funkin.graphics.shaders.TitleOutline"; funkin_graphics_shaders_TitleOutline.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_TitleOutline.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ funnyX: null ,funnyY: null ,set_funnyX: function(x) { this.xPos.value[0] = x; return x; } ,set_funnyY: function(y) { this.yPos.value[0] = y; return y; } ,alphaShit: null ,xPos: null ,yPos: null ,numoutlines: null ,__class__: funkin_graphics_shaders_TitleOutline ,__properties__: $extend(flixel_graphics_tile_FlxGraphicsShader.prototype.__properties__,{set_funnyY:"set_funnyY",set_funnyX:"set_funnyX"}) }); var funkin_graphics_shaders_WaveShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n #pragma header\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\n gl_FragColor = color;\n }\n\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\n void main()\n {\n vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\n gl_FragColor = color;\n }\n\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_graphics_tile_FlxGraphicsShader.call(this); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.WaveShader"] = funkin_graphics_shaders_WaveShader; funkin_graphics_shaders_WaveShader.__name__ = "funkin.graphics.shaders.WaveShader"; funkin_graphics_shaders_WaveShader.__super__ = flixel_graphics_tile_FlxGraphicsShader; funkin_graphics_shaders_WaveShader.prototype = $extend(flixel_graphics_tile_FlxGraphicsShader.prototype,{ __class__: funkin_graphics_shaders_WaveShader }); var funkin_graphics_shaders_WiggleEffectType = $hxEnums["funkin.graphics.shaders.WiggleEffectType"] = { __ename__:"funkin.graphics.shaders.WiggleEffectType",__constructs__:null ,DREAMY: {_hx_name:"DREAMY",_hx_index:0,__enum__:"funkin.graphics.shaders.WiggleEffectType",toString:$estr} ,WAVY: {_hx_name:"WAVY",_hx_index:1,__enum__:"funkin.graphics.shaders.WiggleEffectType",toString:$estr} ,HEAT_WAVE_HORIZONTAL: {_hx_name:"HEAT_WAVE_HORIZONTAL",_hx_index:2,__enum__:"funkin.graphics.shaders.WiggleEffectType",toString:$estr} ,HEAT_WAVE_VERTICAL: {_hx_name:"HEAT_WAVE_VERTICAL",_hx_index:3,__enum__:"funkin.graphics.shaders.WiggleEffectType",toString:$estr} ,FLAG: {_hx_name:"FLAG",_hx_index:4,__enum__:"funkin.graphics.shaders.WiggleEffectType",toString:$estr} }; funkin_graphics_shaders_WiggleEffectType.__constructs__ = [funkin_graphics_shaders_WiggleEffectType.DREAMY,funkin_graphics_shaders_WiggleEffectType.WAVY,funkin_graphics_shaders_WiggleEffectType.HEAT_WAVE_HORIZONTAL,funkin_graphics_shaders_WiggleEffectType.HEAT_WAVE_VERTICAL,funkin_graphics_shaders_WiggleEffectType.FLAG]; funkin_graphics_shaders_WiggleEffectType.__empty_constructs__ = [funkin_graphics_shaders_WiggleEffectType.DREAMY,funkin_graphics_shaders_WiggleEffectType.WAVY,funkin_graphics_shaders_WiggleEffectType.HEAT_WAVE_HORIZONTAL,funkin_graphics_shaders_WiggleEffectType.HEAT_WAVE_VERTICAL,funkin_graphics_shaders_WiggleEffectType.FLAG]; var funkin_graphics_shaders_WiggleEffectRuntime = function(speed,freq,amplitude,effect) { if(effect == null) { effect = funkin_graphics_shaders_WiggleEffectType.DREAMY; } this.time = 0; this.waveAmplitude = 0; this.waveFrequency = 0; this.waveSpeed = 0; this.effectType = funkin_graphics_shaders_WiggleEffectType.DREAMY; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\t#pragma header\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\t#pragma body\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tuniform bool hasTransform;\n\t\tuniform bool hasColorTransform;\n\n\t\tvec4 flixel_texture2D(sampler2D bitmap, vec2 coord)\n\t\t{\n\t\t\tvec4 color = texture2D(bitmap, coord);\n\t\t\tif (!hasTransform)\n\t\t\t{\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\tif (color.a == 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t\t}\n\n\t\t\tif (!hasColorTransform)\n\t\t\t{\n\t\t\t\treturn color * openfl_Alphav;\n\t\t\t}\n\n\t\t\tcolor = vec4(color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4(0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp(openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0)\n\t\t\t{\n\t\t\t\treturn vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\t\t\t}\n\t\t\treturn vec4(0.0, 0.0, 0.0, 0.0);\n\t\t}\n\t\n\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\tgl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\t\n\t\tattribute float alpha;\n\t\tattribute vec4 colorMultiplier;\n\t\tattribute vec4 colorOffset;\n\t\tuniform bool hasColorTransform;\n\t\t\n\t\tvoid main(void)\n\t\t{\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\t\n\t\t\topenfl_Alphav = openfl_Alpha * alpha;\n\t\t\t\n\t\t\tif (hasColorTransform)\n\t\t\t{\n\t\t\t\topenfl_ColorOffsetv = colorOffset / 255.0;\n\t\t\t\topenfl_ColorMultiplierv = colorMultiplier;\n\t\t\t}\n\t\t}"; } this.__isGenerated = true; flixel_addons_display_FlxRuntimeShader.call(this,openfl_utils_Assets.getText(funkin_Paths.frag("wiggle"))); this.set_waveSpeed(speed); this.set_waveFrequency(freq); this.set_waveAmplitude(amplitude); this.set_effectType(effect); this.__initGL(); }; $hxClasses["funkin.graphics.shaders.WiggleEffectRuntime"] = funkin_graphics_shaders_WiggleEffectRuntime; funkin_graphics_shaders_WiggleEffectRuntime.__name__ = "funkin.graphics.shaders.WiggleEffectRuntime"; funkin_graphics_shaders_WiggleEffectRuntime.getEffectTypeId = function(v) { var _this = funkin_graphics_shaders_WiggleEffectType.__constructs__; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = _this[i]._hx_name; } return result.indexOf(Std.string(v)); }; funkin_graphics_shaders_WiggleEffectRuntime.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_graphics_shaders_WiggleEffectRuntime.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ effectType: null ,set_effectType: function(v) { this.setInt("effectType",funkin_graphics_shaders_WiggleEffectRuntime.getEffectTypeId(v)); return this.effectType = v; } ,waveSpeed: null ,set_waveSpeed: function(v) { this.setFloat("uSpeed",v); return this.waveSpeed = v; } ,waveFrequency: null ,set_waveFrequency: function(v) { this.setFloat("uFrequency",v); return this.waveFrequency = v; } ,waveAmplitude: null ,set_waveAmplitude: function(v) { this.setFloat("uWaveAmplitude",v); return this.waveAmplitude = v; } ,time: null ,set_time: function(v) { this.setFloat("uTime",v); return this.time = v; } ,update: function(elapsed) { this.set_time(this.time + elapsed); } ,__class__: funkin_graphics_shaders_WiggleEffectRuntime ,__properties__: $extend(flixel_addons_display_FlxRuntimeShader.prototype.__properties__,{set_time:"set_time",set_waveAmplitude:"set_waveAmplitude",set_waveFrequency:"set_waveFrequency",set_waveSpeed:"set_waveSpeed",set_effectType:"set_effectType"}) }); var funkin_graphics_video_FlxVideo = function(videoPath) { this.videoAvailable = false; funkin_graphics_FunkinSprite.call(this); this.videoPath = videoPath; this.makeGraphic(2,2,0); this.video = new openfl_media_Video(); this.video.set_x(0); this.video.set_y(0); this.video.set_alpha(0); flixel_FlxG.game.addChild(this.video); var netConnection = new openfl_net_NetConnection(); netConnection.connect(null); this.netStream = new openfl_net_NetStream(netConnection); this.netStream.client = { onMetaData : $bind(this,this.onClientMetaData)}; netConnection.addEventListener("netStatus",$bind(this,this.onNetConnectionNetStatus)); this.netStream.play(videoPath); }; $hxClasses["funkin.graphics.video.FlxVideo"] = funkin_graphics_video_FlxVideo; funkin_graphics_video_FlxVideo.__name__ = "funkin.graphics.video.FlxVideo"; funkin_graphics_video_FlxVideo.__super__ = funkin_graphics_FunkinSprite; funkin_graphics_video_FlxVideo.prototype = $extend(funkin_graphics_FunkinSprite.prototype,{ video: null ,netStream: null ,videoPath: null ,finishCallback: null ,pauseVideo: function() { if(this.netStream != null) { this.netStream.pause(); } } ,resumeVideo: function() { if(this.netStream != null) { this.netStream.resume(); } } ,videoAvailable: null ,frameTimer: null ,update: function(elapsed) { funkin_graphics_FunkinSprite.prototype.update.call(this,elapsed); if(this.frameTimer >= 1 / funkin_graphics_video_FlxVideo.FRAME_RATE) { this.frameTimer = 0; this.get_pixels().draw(this.video); } if(this.videoAvailable) { this.frameTimer += elapsed; } } ,restartVideo: function() { if(this.netStream != null) { this.netStream.seek(0); } } ,finishVideo: function() { this.netStream.dispose(); var child = this.video; if(flixel_FlxG.game.contains(child)) { flixel_FlxG.game.removeChild(child); } if(this.finishCallback != null) { this.finishCallback(); } } ,destroy: function() { if(this.netStream != null) { this.netStream.dispose(); if(flixel_FlxG.game.contains(this.video)) { flixel_FlxG.game.removeChild(this.video); } } funkin_graphics_FunkinSprite.prototype.destroy.call(this); } ,onClientMetaData: function(metaData) { this.video.attachNetStream(this.netStream); this.onVideoReady(); } ,onVideoReady: function() { this.video.set_width(flixel_FlxG.width); this.video.set_height(flixel_FlxG.height); this.videoAvailable = true; funkin_audio_FunkinSound.get_onVolumeChanged().add($bind(this,this.onVolumeChanged)); this.onVolumeChanged(flixel_FlxG.sound.muted ? 0 : flixel_FlxG.sound.volume); this.makeGraphic(this.video.get_width() | 0,this.video.get_height() | 0,0); } ,onVolumeChanged: function(volume) { this.netStream.set_soundTransform(new openfl_media_SoundTransform(volume)); } ,onNetConnectionNetStatus: function(event) { if(event.info.code == "NetStream.Play.Complete") { this.finishVideo(); } } ,__class__: funkin_graphics_video_FlxVideo }); var funkin_input_Controls = function(name,scheme) { this.keyboardScheme = funkin_input_KeyboardScheme.None; this.gamepadsAdded = []; this.byName = new haxe_ds_StringMap(); this._volume_mute = new funkin_input_FunkinAction("volume_mute"); this._volume_down = new funkin_input_FunkinAction("volume_down"); this._volume_up = new funkin_input_FunkinAction("volume_up"); this._debug_stage = new funkin_input_FunkinAction("debug_stage"); this._debug_chart = new funkin_input_FunkinAction("debug_chart"); this._debug_menu = new funkin_input_FunkinAction("debug_menu"); this._cutscene_advance = new funkin_input_FunkinAction("cutscene_advance"); this._freeplay_right = new funkin_input_FunkinAction("freeplay_right"); this._freeplay_left = new funkin_input_FunkinAction("freeplay_left"); this._freeplay_favorite = new funkin_input_FunkinAction("freeplay_favorite"); this._window_fullscreen = new funkin_input_FunkinAction("window_fullscreen"); this._window_screenshot = new funkin_input_FunkinAction("window_screenshot"); this._reset = new funkin_input_FunkinAction("reset"); this._pause = new funkin_input_FunkinAction("pause"); this._back = new funkin_input_FunkinAction("back"); this._accept = new funkin_input_FunkinAction("accept"); this._note_downR = new funkin_input_FunkinAction("note_down-release"); this._note_rightR = new funkin_input_FunkinAction("note_right-release"); this._note_leftR = new funkin_input_FunkinAction("note_left-release"); this._note_upR = new funkin_input_FunkinAction("note_up-release"); this._note_downP = new funkin_input_FunkinAction("note_down-press"); this._note_rightP = new funkin_input_FunkinAction("note_right-press"); this._note_leftP = new funkin_input_FunkinAction("note_left-press"); this._note_upP = new funkin_input_FunkinAction("note_up-press"); this._note_down = new funkin_input_FunkinAction("note_down"); this._note_right = new funkin_input_FunkinAction("note_right"); this._note_left = new funkin_input_FunkinAction("note_left"); this._note_up = new funkin_input_FunkinAction("note_up"); this._ui_downR = new funkin_input_FunkinAction("ui_down-release"); this._ui_rightR = new funkin_input_FunkinAction("ui_right-release"); this._ui_leftR = new funkin_input_FunkinAction("ui_left-release"); this._ui_upR = new funkin_input_FunkinAction("ui_up-release"); this._ui_downP = new funkin_input_FunkinAction("ui_down-press"); this._ui_rightP = new funkin_input_FunkinAction("ui_right-press"); this._ui_leftP = new funkin_input_FunkinAction("ui_left-press"); this._ui_upP = new funkin_input_FunkinAction("ui_up-press"); this._ui_down = new funkin_input_FunkinAction("ui_down"); this._ui_right = new funkin_input_FunkinAction("ui_right"); this._ui_left = new funkin_input_FunkinAction("ui_left"); this._ui_up = new funkin_input_FunkinAction("ui_up"); flixel_input_actions_FlxActionSet.call(this,name); this.add(this._ui_up); this.add(this._ui_left); this.add(this._ui_right); this.add(this._ui_down); this.add(this._note_up); this.add(this._note_left); this.add(this._note_right); this.add(this._note_down); this.add(this._accept); this.add(this._back); this.add(this._pause); this.add(this._reset); this.add(this._window_screenshot); this.add(this._window_fullscreen); this.add(this._freeplay_favorite); this.add(this._freeplay_left); this.add(this._freeplay_right); this.add(this._cutscene_advance); this.add(this._debug_menu); this.add(this._debug_chart); this.add(this._debug_stage); this.add(this._volume_up); this.add(this._volume_down); this.add(this._volume_mute); var _g = 0; var _g1 = this.digitalActions; while(_g < _g1.length) { var action = _g1[_g]; ++_g; if(((action) instanceof funkin_input_FunkinAction)) { var funkinAction = action; this.byName.h[funkinAction.name] = funkinAction; if(funkinAction.namePressed != null) { this.byName.h[funkinAction.namePressed] = funkinAction; } if(funkinAction.nameReleased != null) { this.byName.h[funkinAction.nameReleased] = funkinAction; } } } if(scheme == null) { scheme = funkin_input_KeyboardScheme.None; } this.setKeyboardScheme(scheme,false); }; $hxClasses["funkin.input.Controls"] = funkin_input_Controls; funkin_input_Controls.__name__ = "funkin.input.Controls"; funkin_input_Controls.init = function() { var actions = new flixel_input_actions_FlxActionManager(); flixel_FlxG.inputs.add_flixel_input_actions_FlxActionManager(actions); }; funkin_input_Controls.addKeys = function(action,keys,state) { var _g = 0; while(_g < keys.length) { var key = keys[_g]; ++_g; if(key == -1) { continue; } action.addKey(key,state); } }; funkin_input_Controls.removeKeys = function(action,keys) { var i = action.inputs.length; while(i-- > 0) { var input = action.inputs[i]; if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD && keys.indexOf(input.inputID) != -1) { action.remove(input); } } }; funkin_input_Controls.addButtons = function(action,buttons,state,id) { var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; if(button == -1) { continue; } action.addGamepad(button,state,id); } }; funkin_input_Controls.removeButtons = function(action,gamepadID,buttons) { var i = action.inputs.length; while(i-- > 0) { var input = action.inputs[i]; if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD && (gamepadID == -1 || input.deviceID == gamepadID) && buttons.indexOf(input.inputID) != -1) { action.remove(input); } } }; funkin_input_Controls.isDevice = function(input,device) { switch(device._hx_index) { case 0: return input.device == flixel_input_actions_FlxInputDevice.KEYBOARD; case 1: var id = device.id; if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD) { if(id != -1) { return input.deviceID == id; } else { return true; } } else { return false; } break; } }; funkin_input_Controls.isGamepad = function(input,deviceID) { if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD) { if(deviceID != -1) { return input.deviceID == deviceID; } else { return true; } } else { return false; } }; funkin_input_Controls.__super__ = flixel_input_actions_FlxActionSet; funkin_input_Controls.prototype = $extend(flixel_input_actions_FlxActionSet.prototype,{ _ui_up: null ,_ui_left: null ,_ui_right: null ,_ui_down: null ,_ui_upP: null ,_ui_leftP: null ,_ui_rightP: null ,_ui_downP: null ,_ui_upR: null ,_ui_leftR: null ,_ui_rightR: null ,_ui_downR: null ,_note_up: null ,_note_left: null ,_note_right: null ,_note_down: null ,_note_upP: null ,_note_leftP: null ,_note_rightP: null ,_note_downP: null ,_note_upR: null ,_note_leftR: null ,_note_rightR: null ,_note_downR: null ,_accept: null ,_back: null ,_pause: null ,_reset: null ,_window_screenshot: null ,_window_fullscreen: null ,_freeplay_favorite: null ,_freeplay_left: null ,_freeplay_right: null ,_cutscene_advance: null ,_debug_menu: null ,_debug_chart: null ,_debug_stage: null ,_volume_up: null ,_volume_down: null ,_volume_mute: null ,byName: null ,gamepadsAdded: null ,keyboardScheme: null ,get_UI_UP: function() { return this._ui_up.checkPressed(); } ,get_UI_LEFT: function() { return this._ui_left.checkPressed(); } ,get_UI_RIGHT: function() { return this._ui_right.checkPressed(); } ,get_UI_DOWN: function() { return this._ui_down.checkPressed(); } ,get_UI_UP_P: function() { return this._ui_up.checkJustPressed(); } ,get_UI_LEFT_P: function() { return this._ui_left.checkJustPressed(); } ,get_UI_RIGHT_P: function() { return this._ui_right.checkJustPressed(); } ,get_UI_DOWN_P: function() { return this._ui_down.checkJustPressed(); } ,get_UI_UP_R: function() { return this._ui_up.checkJustReleased(); } ,get_UI_LEFT_R: function() { return this._ui_left.checkJustReleased(); } ,get_UI_RIGHT_R: function() { return this._ui_right.checkJustReleased(); } ,get_UI_DOWN_R: function() { return this._ui_down.checkJustReleased(); } ,get_UI_UP_GAMEPAD: function() { return this._ui_up.checkPressedGamepad(); } ,get_UI_LEFT_GAMEPAD: function() { return this._ui_left.checkPressedGamepad(); } ,get_UI_RIGHT_GAMEPAD: function() { return this._ui_right.checkPressedGamepad(); } ,get_UI_DOWN_GAMEPAD: function() { return this._ui_down.checkPressedGamepad(); } ,get_NOTE_UP: function() { return this._note_up.checkPressed(); } ,get_NOTE_LEFT: function() { return this._note_left.checkPressed(); } ,get_NOTE_RIGHT: function() { return this._note_right.checkPressed(); } ,get_NOTE_DOWN: function() { return this._note_down.checkPressed(); } ,get_NOTE_UP_P: function() { return this._note_up.checkJustPressed(); } ,get_NOTE_LEFT_P: function() { return this._note_left.checkJustPressed(); } ,get_NOTE_RIGHT_P: function() { return this._note_right.checkJustPressed(); } ,get_NOTE_DOWN_P: function() { return this._note_down.checkJustPressed(); } ,get_NOTE_UP_R: function() { return this._note_up.checkJustReleased(); } ,get_NOTE_LEFT_R: function() { return this._note_left.checkJustReleased(); } ,get_NOTE_RIGHT_R: function() { return this._note_right.checkJustReleased(); } ,get_NOTE_DOWN_R: function() { return this._note_down.checkJustReleased(); } ,get_ACCEPT: function() { return this._accept.check(); } ,get_BACK: function() { return this._back.check(); } ,get_PAUSE: function() { return this._pause.check(); } ,get_RESET: function() { return this._reset.check(); } ,get_WINDOW_FULLSCREEN: function() { return this._window_fullscreen.check(); } ,get_WINDOW_SCREENSHOT: function() { return this._window_screenshot.check(); } ,get_FREEPLAY_FAVORITE: function() { return this._freeplay_favorite.check(); } ,get_FREEPLAY_LEFT: function() { return this._freeplay_left.check(); } ,get_FREEPLAY_RIGHT: function() { return this._freeplay_right.check(); } ,get_CUTSCENE_ADVANCE: function() { return this._cutscene_advance.check(); } ,get_DEBUG_MENU: function() { return this._debug_menu.check(); } ,get_DEBUG_CHART: function() { return this._debug_chart.check(); } ,get_DEBUG_STAGE: function() { return this._debug_stage.check(); } ,get_VOLUME_UP: function() { return this._volume_up.check(); } ,get_VOLUME_DOWN: function() { return this._volume_down.check(); } ,get_VOLUME_MUTE: function() { return this._volume_mute.check(); } ,update: function() { flixel_input_actions_FlxActionSet.prototype.update.call(this); } ,check: function(name,trigger,gamepadOnly) { if(gamepadOnly == null) { gamepadOnly = false; } if(trigger == null) { trigger = 2; } var action = this.byName.h[name]; if(gamepadOnly) { return action.checkFiltered(trigger,flixel_input_actions_FlxInputDevice.GAMEPAD); } else { return action.checkFiltered(trigger); } } ,getKeysForAction: function(name) { var result = []; var _g = 0; var _g1 = this.byName.h[name].inputs; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD) { result.push(input.inputID); } } return result; } ,getButtonsForAction: function(name) { var result = []; var _g = 0; var _g1 = this.byName.h[name].inputs; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD) { result.push(input.inputID); } } return result; } ,getDialogueName: function(action) { var input = action.inputs[0]; var _g = input.device; switch(_g._hx_index) { case 3: var tmp = input.inputID; return "[" + (tmp == null ? "null" : flixel_input_keyboard_FlxKey.toStringMap.h[tmp]) + "]"; case 4: var tmp = input.inputID; return "(" + (tmp == null ? "null" : flixel_input_gamepad_FlxGamepadInputID.toStringMap.h[tmp]) + ")"; default: var device = _g; throw haxe_Exception.thrown("unhandled device: " + Std.string(device)); } } ,getDialogueNameFromToken: function(token) { return this.getDialogueName(this.getActionFromControl(Type.createEnum(funkin_input_Control,token.toUpperCase(),null))); } ,getActionFromControl: function(control) { switch(control._hx_index) { case 0: return this._note_left; case 1: return this._note_down; case 2: return this._note_up; case 3: return this._note_right; case 4: return this._ui_up; case 5: return this._ui_left; case 6: return this._ui_right; case 7: return this._ui_down; case 8: return this._reset; case 9: return this._accept; case 10: return this._back; case 11: return this._pause; case 12: return this._cutscene_advance; case 13: return this._freeplay_favorite; case 14: return this._freeplay_left; case 15: return this._freeplay_right; case 16: return this._window_screenshot; case 17: return this._window_fullscreen; case 18: return this._volume_up; case 19: return this._volume_down; case 20: return this._volume_mute; case 21: return this._debug_menu; case 22: return this._debug_chart; case 23: return this._debug_stage; } } ,forEachBound: function(control,func) { switch(control._hx_index) { case 0: func(this._note_left,1); func(this._note_left,2); func(this._note_left,-1); break; case 1: func(this._note_down,1); func(this._note_down,2); func(this._note_down,-1); break; case 2: func(this._note_up,1); func(this._note_up,2); func(this._note_up,-1); break; case 3: func(this._note_right,1); func(this._note_right,2); func(this._note_right,-1); break; case 4: func(this._ui_up,1); func(this._ui_up,2); func(this._ui_up,-1); break; case 5: func(this._ui_left,1); func(this._ui_left,2); func(this._ui_left,-1); break; case 6: func(this._ui_right,1); func(this._ui_right,2); func(this._ui_right,-1); break; case 7: func(this._ui_down,1); func(this._ui_down,2); func(this._ui_down,-1); break; case 8: func(this._reset,2); break; case 9: func(this._accept,2); break; case 10: func(this._back,2); break; case 11: func(this._pause,2); break; case 12: func(this._cutscene_advance,2); break; case 13: func(this._freeplay_favorite,2); break; case 14: func(this._freeplay_left,2); break; case 15: func(this._freeplay_right,2); break; case 16: func(this._window_screenshot,2); break; case 17: func(this._window_fullscreen,2); break; case 18: func(this._volume_up,2); break; case 19: func(this._volume_down,2); break; case 20: func(this._volume_mute,2); break; case 21: func(this._debug_menu,2); break; case 22: func(this._debug_chart,2); break; case 23: func(this._debug_stage,2); break; } } ,replaceBinding: function(control,device,toAdd,toRemove) { var _gthis = this; if(toAdd == toRemove) { return; } switch(device._hx_index) { case 0: this.forEachBound(control,function(action,state) { _gthis.replaceKey(action,toAdd,toRemove,state); }); break; case 1: var id = device.id; this.forEachBound(control,function(action,state) { _gthis.replaceButton(action,id,toAdd,toRemove,state); }); break; } } ,replaceKey: function(action,toAdd,toRemove,state) { if(action.inputs.length == 0) { funkin_input_Controls.addKeys(action,[toAdd],state); return; } var hasReplaced = false; var _g = 0; var _g1 = action.inputs.length; while(_g < _g1) { var i = _g++; var input = action.inputs[i]; if(input == null) { continue; } if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD && input.inputID == toRemove) { if(toAdd == -1) { HxOverrides.remove(action.inputs,input); } else { action.inputs[i].inputID = toAdd; } hasReplaced = true; } else if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD && input.inputID == toAdd) { if(hasReplaced) { HxOverrides.remove(action.inputs,input); } else { hasReplaced = true; } } } if(!hasReplaced) { funkin_input_Controls.addKeys(action,[toAdd],state); } } ,replaceButton: function(action,deviceID,toAdd,toRemove,state) { if(action.inputs.length == 0) { var buttons = [toAdd]; var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; if(button == -1) { continue; } action.addGamepad(button,state,deviceID); } return; } var hasReplaced = false; var _g = 0; var _g1 = action.inputs.length; while(_g < _g1) { var i = _g++; var input = action.inputs[i]; if(input == null) { continue; } if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD && (deviceID == -1 || input.deviceID == deviceID) && input.inputID == toRemove) { action.inputs[i].inputID = toAdd; hasReplaced = true; } } if(!hasReplaced) { var buttons = [toAdd]; var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; if(button == -1) { continue; } action.addGamepad(button,state,deviceID); } } } ,copyFrom: function(controls,device) { var h = controls.byName.h; var name_h = h; var name_keys = Object.keys(h); var name_length = name_keys.length; var name_current = 0; while(name_current < name_length) { var name = name_keys[name_current++]; var action = controls.byName.h[name]; var _g = 0; var _g1 = action.inputs; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(device == null || funkin_input_Controls.isDevice(input,device)) { this.byName.h[name].add(input); } } } if(device == null) { var _g = 0; var _g1 = controls.gamepadsAdded; while(_g < _g1.length) { var gamepad = _g1[_g]; ++_g; if(this.gamepadsAdded.indexOf(gamepad) == -1) { this.gamepadsAdded.push(gamepad); } } this.mergeKeyboardScheme(controls.keyboardScheme); } else { switch(device._hx_index) { case 0: this.mergeKeyboardScheme(controls.keyboardScheme); break; case 1: var id = device.id; this.gamepadsAdded.push(id); break; } } } ,copyTo: function(controls,device) { controls.copyFrom(this,device); } ,mergeKeyboardScheme: function(scheme) { if(scheme != funkin_input_KeyboardScheme.None) { if(this.keyboardScheme._hx_index == 2) { this.keyboardScheme = scheme; } else { this.keyboardScheme = funkin_input_KeyboardScheme.Custom; } } } ,bindKeys: function(control,keys) { this.forEachBound(control,function(action,state) { funkin_input_Controls.addKeys(action,keys,state); }); } ,bindSwipe: function(control,swipeDir,swpLength) { if(swpLength == null) { swpLength = 90; } if(swipeDir == null) { swipeDir = 256; } this.forEachBound(control,function(action,press) { action.add(new funkin_input_FlxActionInputDigitalMobileSwipeGameplay(swipeDir,press,swpLength)); }); } ,unbindKeys: function(control,keys) { this.forEachBound(control,function(action,_) { funkin_input_Controls.removeKeys(action,keys); }); } ,setKeyboardScheme: function(scheme,reset) { if(reset == null) { reset = true; } if(reset) { this.removeKeyboard(); } this.keyboardScheme = scheme; this.bindKeys(funkin_input_Control.UI_UP,this.getDefaultKeybinds(scheme,funkin_input_Control.UI_UP)); this.bindKeys(funkin_input_Control.UI_DOWN,this.getDefaultKeybinds(scheme,funkin_input_Control.UI_DOWN)); this.bindKeys(funkin_input_Control.UI_LEFT,this.getDefaultKeybinds(scheme,funkin_input_Control.UI_LEFT)); this.bindKeys(funkin_input_Control.UI_RIGHT,this.getDefaultKeybinds(scheme,funkin_input_Control.UI_RIGHT)); this.bindKeys(funkin_input_Control.NOTE_UP,this.getDefaultKeybinds(scheme,funkin_input_Control.NOTE_UP)); this.bindKeys(funkin_input_Control.NOTE_DOWN,this.getDefaultKeybinds(scheme,funkin_input_Control.NOTE_DOWN)); this.bindKeys(funkin_input_Control.NOTE_LEFT,this.getDefaultKeybinds(scheme,funkin_input_Control.NOTE_LEFT)); this.bindKeys(funkin_input_Control.NOTE_RIGHT,this.getDefaultKeybinds(scheme,funkin_input_Control.NOTE_RIGHT)); this.bindKeys(funkin_input_Control.ACCEPT,this.getDefaultKeybinds(scheme,funkin_input_Control.ACCEPT)); this.bindKeys(funkin_input_Control.BACK,this.getDefaultKeybinds(scheme,funkin_input_Control.BACK)); this.bindKeys(funkin_input_Control.PAUSE,this.getDefaultKeybinds(scheme,funkin_input_Control.PAUSE)); this.bindKeys(funkin_input_Control.RESET,this.getDefaultKeybinds(scheme,funkin_input_Control.RESET)); this.bindKeys(funkin_input_Control.WINDOW_SCREENSHOT,this.getDefaultKeybinds(scheme,funkin_input_Control.WINDOW_SCREENSHOT)); this.bindKeys(funkin_input_Control.WINDOW_FULLSCREEN,this.getDefaultKeybinds(scheme,funkin_input_Control.WINDOW_FULLSCREEN)); this.bindKeys(funkin_input_Control.FREEPLAY_FAVORITE,this.getDefaultKeybinds(scheme,funkin_input_Control.FREEPLAY_FAVORITE)); this.bindKeys(funkin_input_Control.FREEPLAY_LEFT,this.getDefaultKeybinds(scheme,funkin_input_Control.FREEPLAY_LEFT)); this.bindKeys(funkin_input_Control.FREEPLAY_RIGHT,this.getDefaultKeybinds(scheme,funkin_input_Control.FREEPLAY_RIGHT)); this.bindKeys(funkin_input_Control.CUTSCENE_ADVANCE,this.getDefaultKeybinds(scheme,funkin_input_Control.CUTSCENE_ADVANCE)); this.bindKeys(funkin_input_Control.DEBUG_MENU,this.getDefaultKeybinds(scheme,funkin_input_Control.DEBUG_MENU)); this.bindKeys(funkin_input_Control.DEBUG_CHART,this.getDefaultKeybinds(scheme,funkin_input_Control.DEBUG_CHART)); this.bindKeys(funkin_input_Control.DEBUG_STAGE,this.getDefaultKeybinds(scheme,funkin_input_Control.DEBUG_STAGE)); this.bindKeys(funkin_input_Control.VOLUME_UP,this.getDefaultKeybinds(scheme,funkin_input_Control.VOLUME_UP)); this.bindKeys(funkin_input_Control.VOLUME_DOWN,this.getDefaultKeybinds(scheme,funkin_input_Control.VOLUME_DOWN)); this.bindKeys(funkin_input_Control.VOLUME_MUTE,this.getDefaultKeybinds(scheme,funkin_input_Control.VOLUME_MUTE)); this.bindMobileLol(); } ,getDefaultKeybinds: function(scheme,control) { switch(scheme._hx_index) { case 0: switch(control._hx_index) { case 0: return [65,37]; case 1: return [83,40]; case 2: return [87,38]; case 3: return [68,39]; case 4: return [87,38]; case 5: return [65,37]; case 6: return [68,39]; case 7: return [83,40]; case 8: return [82]; case 9: return [90,32,13]; case 10: return [88,8,27]; case 11: return [80,13,27]; case 12: return [90,13]; case 13: return [70]; case 14: return [81]; case 15: return [69]; case 16: return [114]; case 17: return [122]; case 18: return [187,107]; case 19: return [189,109]; case 20: return [48,96]; case 21: return [192]; case 22: return []; case 23: return []; } break; case 1: if(scheme.first) { switch(control._hx_index) { case 0: return [65]; case 1: return [83]; case 2: return [87]; case 3: return [68]; case 4: return [87]; case 5: return [65]; case 6: return [68]; case 7: return [83]; case 8: return [82]; case 9: return [71,90]; case 10: return [72,88]; case 11: return [49]; case 12: return [71,90]; case 13: return [70]; case 14: return [81]; case 15: return [69]; case 16: return [114]; case 17: return [122]; case 18: return [187]; case 19: return [189]; case 20: return [48]; case 21: return [192]; case 22: return []; case 23: return []; } } else { switch(control._hx_index) { case 0: return [37]; case 1: return [40]; case 2: return [38]; case 3: return [39]; case 4: return [38]; case 5: return [37]; case 6: return [39]; case 7: return [40]; case 8: return [82]; case 9: return [13]; case 10: return [27]; case 11: return [49]; case 12: return [13]; case 13: return []; case 14: return []; case 15: return []; case 16: return []; case 17: return []; case 18: return [107]; case 19: return [109]; case 20: return [96]; case 21: return []; case 22: return []; case 23: return []; } } break; default: } return []; } ,bindMobileLol: function() { this.bindSwipe(funkin_input_Control.NOTE_UP,256,40); this.bindSwipe(funkin_input_Control.NOTE_DOWN,4096,40); this.bindSwipe(funkin_input_Control.NOTE_LEFT,1,40); this.bindSwipe(funkin_input_Control.NOTE_RIGHT,16,40); this.bindSwipe(funkin_input_Control.UI_UP,4096); this.bindSwipe(funkin_input_Control.UI_DOWN,256); this.bindSwipe(funkin_input_Control.UI_LEFT,1); this.bindSwipe(funkin_input_Control.UI_RIGHT,16); } ,removeKeyboard: function() { var _g = 0; var _g1 = this.digitalActions; while(_g < _g1.length) { var action = _g1[_g]; ++_g; var i = action.inputs.length; while(i-- > 0) { var input = action.inputs[i]; if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD) { action.remove(input); } } } } ,addGamepadWithSaveData: function(id,padData) { this.gamepadsAdded.push(id); this.fromSaveData(padData,funkin_input_Device.Gamepad(id)); } ,getGamepadIds: function() { return this.gamepadsAdded; } ,getGamepads: function() { var _g = []; var _g1 = 0; var _g2 = this.gamepadsAdded; while(_g1 < _g2.length) { var id = _g2[_g1]; ++_g1; _g.push(flixel_FlxG.gamepads._activeGamepads[id]); } return _g; } ,addGamepadLiteral: function(id,buttonMap) { this.gamepadsAdded.push(id); var control = buttonMap.keys(); while(control.hasNext()) { var control1 = control.next(); this.bindButtons(control1,id,buttonMap.get(control1)); } } ,removeGamepad: function(deviceID) { if(deviceID == null) { deviceID = -1; } var _g = 0; var _g1 = this.digitalActions; while(_g < _g1.length) { var action = _g1[_g]; ++_g; var i = action.inputs.length; while(i-- > 0) { var input = action.inputs[i]; if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD && (deviceID == -1 || input.deviceID == deviceID)) { action.remove(input); } } } HxOverrides.remove(this.gamepadsAdded,deviceID); } ,addDefaultGamepad: function(id) { var _g = new haxe_ds_EnumValueMap(); _g.set(funkin_input_Control.ACCEPT,this.getDefaultGamepadBinds(funkin_input_Control.ACCEPT)); _g.set(funkin_input_Control.BACK,this.getDefaultGamepadBinds(funkin_input_Control.BACK)); _g.set(funkin_input_Control.UI_UP,this.getDefaultGamepadBinds(funkin_input_Control.UI_UP)); _g.set(funkin_input_Control.UI_DOWN,this.getDefaultGamepadBinds(funkin_input_Control.UI_DOWN)); _g.set(funkin_input_Control.UI_LEFT,this.getDefaultGamepadBinds(funkin_input_Control.UI_LEFT)); _g.set(funkin_input_Control.UI_RIGHT,this.getDefaultGamepadBinds(funkin_input_Control.UI_RIGHT)); _g.set(funkin_input_Control.NOTE_UP,this.getDefaultGamepadBinds(funkin_input_Control.NOTE_UP)); _g.set(funkin_input_Control.NOTE_DOWN,this.getDefaultGamepadBinds(funkin_input_Control.NOTE_DOWN)); _g.set(funkin_input_Control.NOTE_LEFT,this.getDefaultGamepadBinds(funkin_input_Control.NOTE_LEFT)); _g.set(funkin_input_Control.NOTE_RIGHT,this.getDefaultGamepadBinds(funkin_input_Control.NOTE_RIGHT)); _g.set(funkin_input_Control.PAUSE,this.getDefaultGamepadBinds(funkin_input_Control.PAUSE)); _g.set(funkin_input_Control.RESET,this.getDefaultGamepadBinds(funkin_input_Control.RESET)); _g.set(funkin_input_Control.WINDOW_FULLSCREEN,this.getDefaultGamepadBinds(funkin_input_Control.WINDOW_FULLSCREEN)); _g.set(funkin_input_Control.WINDOW_SCREENSHOT,this.getDefaultGamepadBinds(funkin_input_Control.WINDOW_SCREENSHOT)); _g.set(funkin_input_Control.CUTSCENE_ADVANCE,this.getDefaultGamepadBinds(funkin_input_Control.CUTSCENE_ADVANCE)); _g.set(funkin_input_Control.FREEPLAY_FAVORITE,this.getDefaultGamepadBinds(funkin_input_Control.FREEPLAY_FAVORITE)); _g.set(funkin_input_Control.FREEPLAY_LEFT,this.getDefaultGamepadBinds(funkin_input_Control.FREEPLAY_LEFT)); _g.set(funkin_input_Control.FREEPLAY_RIGHT,this.getDefaultGamepadBinds(funkin_input_Control.FREEPLAY_RIGHT)); _g.set(funkin_input_Control.VOLUME_UP,this.getDefaultGamepadBinds(funkin_input_Control.VOLUME_UP)); _g.set(funkin_input_Control.VOLUME_DOWN,this.getDefaultGamepadBinds(funkin_input_Control.VOLUME_DOWN)); _g.set(funkin_input_Control.VOLUME_MUTE,this.getDefaultGamepadBinds(funkin_input_Control.VOLUME_MUTE)); _g.set(funkin_input_Control.DEBUG_MENU,this.getDefaultGamepadBinds(funkin_input_Control.DEBUG_MENU)); _g.set(funkin_input_Control.DEBUG_CHART,this.getDefaultGamepadBinds(funkin_input_Control.DEBUG_CHART)); _g.set(funkin_input_Control.DEBUG_STAGE,this.getDefaultGamepadBinds(funkin_input_Control.DEBUG_STAGE)); var buttonMap = _g; this.gamepadsAdded.push(id); var control = buttonMap.keys(); while(control.hasNext()) { var control1 = control.next(); this.bindButtons(control1,id,buttonMap.get(control1)); } } ,getDefaultGamepadBinds: function(control) { switch(control._hx_index) { case 0: return [13,2,37,41]; case 1: return [12,0,36,40]; case 2: return [11,3,34,38]; case 3: return [14,1,35,39]; case 4: return [11,34]; case 5: return [13,37]; case 6: return [14,35]; case 7: return [12,36]; case 8: return [6]; case 9: return [0]; case 10: return [1]; case 11: return [7]; case 12: return [0]; case 13: break; case 14: break; case 15: break; case 16: break; case 17: break; case 18: break; case 19: break; case 20: break; case 21: break; case 22: break; case 23: break; } return []; } ,bindButtons: function(control,id,buttons) { this.forEachBound(control,function(action,state) { var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; if(button == -1) { continue; } action.addGamepad(button,state,id); } }); } ,touchShit: function(control,id) { this.forEachBound(control,function(action,state) { }); } ,unbindButtons: function(control,gamepadID,buttons) { this.forEachBound(control,function(action,_) { funkin_input_Controls.removeButtons(action,gamepadID,buttons); }); } ,getInputsFor: function(control,device,list) { if(list == null) { list = []; } switch(device._hx_index) { case 0: var _g = 0; var _g1 = this.getActionFromControl(control).inputs; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(input.device == flixel_input_actions_FlxInputDevice.KEYBOARD) { list.push(input.inputID); } } break; case 1: var id = device.id; var _g = 0; var _g1 = this.getActionFromControl(control).inputs; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(input.device == flixel_input_actions_FlxInputDevice.GAMEPAD && (id == -1 || input.deviceID == id)) { list.push(input.inputID); } } break; } return list; } ,removeDevice: function(device) { switch(device._hx_index) { case 0: this.setKeyboardScheme(funkin_input_KeyboardScheme.None); break; case 1: var id = device.id; this.removeGamepad(id); break; } } ,fromSaveData: function(data,device) { var _g = 0; var _g1 = funkin_input_Control.__empty_constructs__.slice(); while(_g < _g1.length) { var control = _g1[_g]; ++_g; var inputs = Reflect.field(data,$hxEnums[control.__enum__].__constructs__[control._hx_index]._hx_name); inputs = inputs != null ? thx_Arrays.distinct(inputs) : null; if(inputs != null) { if(inputs.length == 0) { haxe_Log.trace("Control " + Std.string(control) + " is missing bindings, resetting to default.",{ fileName : "source/funkin/input/Controls.hx", lineNumber : 1085, className : "funkin.input.Controls", methodName : "fromSaveData"}); switch(device._hx_index) { case 0: this.bindKeys(control,this.getDefaultKeybinds(funkin_input_KeyboardScheme.Solo,control)); break; case 1: var id = device.id; this.bindButtons(control,id,this.getDefaultGamepadBinds(control)); break; } } else if(inputs == [-1]) { haxe_Log.trace("Control " + Std.string(control) + " is unbound, leaving it be.",{ fileName : "source/funkin/input/Controls.hx", lineNumber : 1096, className : "funkin.input.Controls", methodName : "fromSaveData"}); } else { switch(device._hx_index) { case 0: this.bindKeys(control,inputs.slice()); break; case 1: var id1 = device.id; this.bindButtons(control,id1,inputs.slice()); break; } } } else { haxe_Log.trace("Control " + Std.string(control) + " is missing bindings, resetting to default.",{ fileName : "source/funkin/input/Controls.hx", lineNumber : 1111, className : "funkin.input.Controls", methodName : "fromSaveData"}); switch(device._hx_index) { case 0: this.bindKeys(control,this.getDefaultKeybinds(funkin_input_KeyboardScheme.Solo,control)); break; case 1: var id2 = device.id; this.bindButtons(control,id2,this.getDefaultGamepadBinds(control)); break; } } } } ,createSaveData: function(device) { var isEmpty = true; var data = { }; var _g = 0; var _g1 = funkin_input_Control.__empty_constructs__.slice(); while(_g < _g1.length) { var control = _g1[_g]; ++_g; var inputs = this.getInputsFor(control,device); isEmpty = isEmpty && inputs.length == 0; if(inputs.length == 0) { inputs = [-1]; } else { inputs = thx_Arrays.distinct(inputs); } data[$hxEnums[control.__enum__].__constructs__[control._hx_index]._hx_name] = inputs; } if(isEmpty) { return null; } else { return data; } } ,__class__: funkin_input_Controls ,__properties__: {get_VOLUME_MUTE:"get_VOLUME_MUTE",get_VOLUME_DOWN:"get_VOLUME_DOWN",get_VOLUME_UP:"get_VOLUME_UP",get_DEBUG_STAGE:"get_DEBUG_STAGE",get_DEBUG_CHART:"get_DEBUG_CHART",get_DEBUG_MENU:"get_DEBUG_MENU",get_CUTSCENE_ADVANCE:"get_CUTSCENE_ADVANCE",get_FREEPLAY_RIGHT:"get_FREEPLAY_RIGHT",get_FREEPLAY_LEFT:"get_FREEPLAY_LEFT",get_FREEPLAY_FAVORITE:"get_FREEPLAY_FAVORITE",get_WINDOW_SCREENSHOT:"get_WINDOW_SCREENSHOT",get_WINDOW_FULLSCREEN:"get_WINDOW_FULLSCREEN",get_RESET:"get_RESET",get_PAUSE:"get_PAUSE",get_BACK:"get_BACK",get_ACCEPT:"get_ACCEPT",get_NOTE_DOWN_R:"get_NOTE_DOWN_R",get_NOTE_RIGHT_R:"get_NOTE_RIGHT_R",get_NOTE_LEFT_R:"get_NOTE_LEFT_R",get_NOTE_UP_R:"get_NOTE_UP_R",get_NOTE_DOWN_P:"get_NOTE_DOWN_P",get_NOTE_RIGHT_P:"get_NOTE_RIGHT_P",get_NOTE_LEFT_P:"get_NOTE_LEFT_P",get_NOTE_UP_P:"get_NOTE_UP_P",get_NOTE_DOWN:"get_NOTE_DOWN",get_NOTE_RIGHT:"get_NOTE_RIGHT",get_NOTE_LEFT:"get_NOTE_LEFT",get_NOTE_UP:"get_NOTE_UP",get_UI_DOWN_GAMEPAD:"get_UI_DOWN_GAMEPAD",get_UI_RIGHT_GAMEPAD:"get_UI_RIGHT_GAMEPAD",get_UI_LEFT_GAMEPAD:"get_UI_LEFT_GAMEPAD",get_UI_UP_GAMEPAD:"get_UI_UP_GAMEPAD",get_UI_DOWN_R:"get_UI_DOWN_R",get_UI_RIGHT_R:"get_UI_RIGHT_R",get_UI_LEFT_R:"get_UI_LEFT_R",get_UI_UP_R:"get_UI_UP_R",get_UI_DOWN_P:"get_UI_DOWN_P",get_UI_RIGHT_P:"get_UI_RIGHT_P",get_UI_LEFT_P:"get_UI_LEFT_P",get_UI_UP_P:"get_UI_UP_P",get_UI_DOWN:"get_UI_DOWN",get_UI_RIGHT:"get_UI_RIGHT",get_UI_LEFT:"get_UI_LEFT",get_UI_UP:"get_UI_UP"} }); var funkin_input_FunkinAction = function(name,namePressed,nameReleased) { if(name == null) { name = ""; } this.cache = new haxe_ds_StringMap(); flixel_input_actions_FlxActionDigital.call(this,name); this.namePressed = namePressed; this.nameReleased = nameReleased; }; $hxClasses["funkin.input.FunkinAction"] = funkin_input_FunkinAction; funkin_input_FunkinAction.__name__ = "funkin.input.FunkinAction"; funkin_input_FunkinAction.__super__ = flixel_input_actions_FlxActionDigital; funkin_input_FunkinAction.prototype = $extend(flixel_input_actions_FlxActionDigital.prototype,{ namePressed: null ,nameReleased: null ,cache: null ,check: function() { return this.checkFiltered(2); } ,checkPressed: function() { return this.checkFiltered(1); } ,checkJustPressed: function() { return this.checkFiltered(2); } ,checkReleased: function() { return this.checkFiltered(0); } ,checkJustReleased: function() { return this.checkFiltered(-1); } ,checkPressedGamepad: function() { return this.checkFiltered(1,flixel_input_actions_FlxInputDevice.GAMEPAD); } ,checkJustPressedGamepad: function() { return this.checkFiltered(2,flixel_input_actions_FlxInputDevice.GAMEPAD); } ,checkReleasedGamepad: function() { return this.checkFiltered(0,flixel_input_actions_FlxInputDevice.GAMEPAD); } ,checkJustReleasedGamepad: function() { return this.checkFiltered(-1,flixel_input_actions_FlxInputDevice.GAMEPAD); } ,checkMultiFiltered: function(filterTriggers,filterDevices) { if(filterTriggers == null) { filterTriggers = [1,2]; } if(filterDevices == null) { filterDevices = []; } var _g = 0; while(_g < filterTriggers.length) { var i = filterTriggers[_g]; ++_g; if(filterDevices.length == 0) { if(this.checkFiltered(i)) { return true; } } else { var _g1 = 0; while(_g1 < filterDevices.length) { var j = filterDevices[_g1]; ++_g1; if(this.checkFiltered(i,j)) { return true; } } } } return false; } ,checkFiltered: function(filterTrigger,filterDevice) { var key = "" + filterTrigger + ":" + Std.string(filterDevice); var cacheEntry = this.cache.h[key]; if(cacheEntry != null && cacheEntry.timestamp == flixel_FlxG.game.ticks) { return cacheEntry.value; } var result = false; var len = this.inputs != null ? this.inputs.length : 0; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; var j = len - i - 1; var input = this.inputs[j]; if(input.destroyed) { this.inputs.splice(j,1); continue; } input.update(); if(filterTrigger != null && input.trigger != filterTrigger) { continue; } if(filterDevice != null && input.device != filterDevice) { continue; } if(input.check(this)) { result = true; } } this.cache.h[key] = { timestamp : flixel_FlxG.game.ticks, value : result}; return result; } ,__class__: funkin_input_FunkinAction }); var funkin_input_FlxActionInputDigitalMobileSwipeGameplay = function(swipeDir,Trigger,swipeLength) { if(swipeLength == null) { swipeLength = 90; } if(swipeDir == null) { swipeDir = 4369; } this.hapticPressure = 100; this.activateLength = 90; this.curStep = 5; this.vibrationSteps = 5; this.touchMap = new haxe_ds_IntMap(); flixel_input_actions_FlxActionInputDigital.call(this,flixel_input_actions_FlxInputDevice.OTHER,swipeDir,Trigger); this.activateLength = swipeLength; }; $hxClasses["funkin.input.FlxActionInputDigitalMobileSwipeGameplay"] = funkin_input_FlxActionInputDigitalMobileSwipeGameplay; funkin_input_FlxActionInputDigitalMobileSwipeGameplay.__name__ = "funkin.input.FlxActionInputDigitalMobileSwipeGameplay"; funkin_input_FlxActionInputDigitalMobileSwipeGameplay.__super__ = flixel_input_actions_FlxActionInputDigital; funkin_input_FlxActionInputDigitalMobileSwipeGameplay.prototype = $extend(flixel_input_actions_FlxActionInputDigital.prototype,{ touchMap: null ,vibrationSteps: null ,curStep: null ,activateLength: null ,hapticPressure: null ,update: function() { flixel_input_actions_FlxActionInputDigital.prototype.update.call(this); var _g = 0; var _g1 = flixel_FlxG.touches.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; if(touch.input.current == 2) { var x = touch.screenX; var y = touch.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } var pos = new flixel_math_FlxBasePoint(x,y); var x1 = touch.screenX; var y1 = touch.screenY; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var pos2 = new flixel_math_FlxBasePoint(x1,y1); var swp = { initTouchPos : pos, curTouchPos : pos2, touchAngle : 0, touchLength : 0}; this.touchMap.h[touch.input.ID] = swp; this.curStep = 1; lime_ui_Haptic.vibrate(40,70); } var _this = touch.input; if(_this.current == 1 || _this.current == 2) { var daSwipe = this.touchMap.h[touch.input.ID]; var this1 = daSwipe.curTouchPos; var x2 = touch.screenX; var y2 = touch.screenY; if(y2 == null) { y2 = 0; } if(x2 == null) { x2 = 0; } this1.set_x(x2); this1.set_y(y2); var dx = daSwipe.initTouchPos.x - touch.screenX; var dy = daSwipe.initTouchPos.y - touch.screenY; daSwipe.touchAngle = Math.atan2(dy,dx); daSwipe.touchLength = Math.sqrt(dx * dx + dy * dy); if(daSwipe.touchLength >= this.activateLength / this.vibrationSteps * this.curStep) { this.curStep += 1; } } if(touch.input.current == -1) { this.touchMap.remove(touch.input.ID); } } } ,check: function(Action) { var swp = this.touchMap.iterator(); while(swp.hasNext()) { var swp1 = swp.next(); var degAngle = swp1.touchAngle * (180 / Math.PI); if(this.trigger == 2) { if(swp1.touchLength >= this.activateLength) { switch(this.inputID) { case 1: if(degAngle <= 45 && -degAngle <= 45) { return this.properTouch(swp1); } break; case 16: if(degAngle >= 135 && degAngle <= -135) { return this.properTouch(swp1); } break; case 256: if(degAngle >= 45 && degAngle <= 135) { return this.properTouch(swp1); } break; case 4096: if(-degAngle >= 45 && -degAngle <= 135) { return this.properTouch(swp1); } break; } } } } return false; } ,properTouch: function(swipe) { this.curStep = 1; lime_ui_Haptic.vibrate(100,30); var this1 = swipe.initTouchPos; var x = swipe.curTouchPos.x; var y = swipe.curTouchPos.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); return true; } ,__class__: funkin_input_FlxActionInputDigitalMobileSwipeGameplay }); var funkin_input_Control = $hxEnums["funkin.input.Control"] = { __ename__:"funkin.input.Control",__constructs__:null ,NOTE_LEFT: {_hx_name:"NOTE_LEFT",_hx_index:0,__enum__:"funkin.input.Control",toString:$estr} ,NOTE_DOWN: {_hx_name:"NOTE_DOWN",_hx_index:1,__enum__:"funkin.input.Control",toString:$estr} ,NOTE_UP: {_hx_name:"NOTE_UP",_hx_index:2,__enum__:"funkin.input.Control",toString:$estr} ,NOTE_RIGHT: {_hx_name:"NOTE_RIGHT",_hx_index:3,__enum__:"funkin.input.Control",toString:$estr} ,UI_UP: {_hx_name:"UI_UP",_hx_index:4,__enum__:"funkin.input.Control",toString:$estr} ,UI_LEFT: {_hx_name:"UI_LEFT",_hx_index:5,__enum__:"funkin.input.Control",toString:$estr} ,UI_RIGHT: {_hx_name:"UI_RIGHT",_hx_index:6,__enum__:"funkin.input.Control",toString:$estr} ,UI_DOWN: {_hx_name:"UI_DOWN",_hx_index:7,__enum__:"funkin.input.Control",toString:$estr} ,RESET: {_hx_name:"RESET",_hx_index:8,__enum__:"funkin.input.Control",toString:$estr} ,ACCEPT: {_hx_name:"ACCEPT",_hx_index:9,__enum__:"funkin.input.Control",toString:$estr} ,BACK: {_hx_name:"BACK",_hx_index:10,__enum__:"funkin.input.Control",toString:$estr} ,PAUSE: {_hx_name:"PAUSE",_hx_index:11,__enum__:"funkin.input.Control",toString:$estr} ,CUTSCENE_ADVANCE: {_hx_name:"CUTSCENE_ADVANCE",_hx_index:12,__enum__:"funkin.input.Control",toString:$estr} ,FREEPLAY_FAVORITE: {_hx_name:"FREEPLAY_FAVORITE",_hx_index:13,__enum__:"funkin.input.Control",toString:$estr} ,FREEPLAY_LEFT: {_hx_name:"FREEPLAY_LEFT",_hx_index:14,__enum__:"funkin.input.Control",toString:$estr} ,FREEPLAY_RIGHT: {_hx_name:"FREEPLAY_RIGHT",_hx_index:15,__enum__:"funkin.input.Control",toString:$estr} ,WINDOW_SCREENSHOT: {_hx_name:"WINDOW_SCREENSHOT",_hx_index:16,__enum__:"funkin.input.Control",toString:$estr} ,WINDOW_FULLSCREEN: {_hx_name:"WINDOW_FULLSCREEN",_hx_index:17,__enum__:"funkin.input.Control",toString:$estr} ,VOLUME_UP: {_hx_name:"VOLUME_UP",_hx_index:18,__enum__:"funkin.input.Control",toString:$estr} ,VOLUME_DOWN: {_hx_name:"VOLUME_DOWN",_hx_index:19,__enum__:"funkin.input.Control",toString:$estr} ,VOLUME_MUTE: {_hx_name:"VOLUME_MUTE",_hx_index:20,__enum__:"funkin.input.Control",toString:$estr} ,DEBUG_MENU: {_hx_name:"DEBUG_MENU",_hx_index:21,__enum__:"funkin.input.Control",toString:$estr} ,DEBUG_CHART: {_hx_name:"DEBUG_CHART",_hx_index:22,__enum__:"funkin.input.Control",toString:$estr} ,DEBUG_STAGE: {_hx_name:"DEBUG_STAGE",_hx_index:23,__enum__:"funkin.input.Control",toString:$estr} }; funkin_input_Control.__constructs__ = [funkin_input_Control.NOTE_LEFT,funkin_input_Control.NOTE_DOWN,funkin_input_Control.NOTE_UP,funkin_input_Control.NOTE_RIGHT,funkin_input_Control.UI_UP,funkin_input_Control.UI_LEFT,funkin_input_Control.UI_RIGHT,funkin_input_Control.UI_DOWN,funkin_input_Control.RESET,funkin_input_Control.ACCEPT,funkin_input_Control.BACK,funkin_input_Control.PAUSE,funkin_input_Control.CUTSCENE_ADVANCE,funkin_input_Control.FREEPLAY_FAVORITE,funkin_input_Control.FREEPLAY_LEFT,funkin_input_Control.FREEPLAY_RIGHT,funkin_input_Control.WINDOW_SCREENSHOT,funkin_input_Control.WINDOW_FULLSCREEN,funkin_input_Control.VOLUME_UP,funkin_input_Control.VOLUME_DOWN,funkin_input_Control.VOLUME_MUTE,funkin_input_Control.DEBUG_MENU,funkin_input_Control.DEBUG_CHART,funkin_input_Control.DEBUG_STAGE]; funkin_input_Control.__empty_constructs__ = [funkin_input_Control.NOTE_LEFT,funkin_input_Control.NOTE_DOWN,funkin_input_Control.NOTE_UP,funkin_input_Control.NOTE_RIGHT,funkin_input_Control.UI_UP,funkin_input_Control.UI_LEFT,funkin_input_Control.UI_RIGHT,funkin_input_Control.UI_DOWN,funkin_input_Control.RESET,funkin_input_Control.ACCEPT,funkin_input_Control.BACK,funkin_input_Control.PAUSE,funkin_input_Control.CUTSCENE_ADVANCE,funkin_input_Control.FREEPLAY_FAVORITE,funkin_input_Control.FREEPLAY_LEFT,funkin_input_Control.FREEPLAY_RIGHT,funkin_input_Control.WINDOW_SCREENSHOT,funkin_input_Control.WINDOW_FULLSCREEN,funkin_input_Control.VOLUME_UP,funkin_input_Control.VOLUME_DOWN,funkin_input_Control.VOLUME_MUTE,funkin_input_Control.DEBUG_MENU,funkin_input_Control.DEBUG_CHART,funkin_input_Control.DEBUG_STAGE]; var funkin_input_Device = $hxEnums["funkin.input.Device"] = { __ename__:"funkin.input.Device",__constructs__:null ,Keys: {_hx_name:"Keys",_hx_index:0,__enum__:"funkin.input.Device",toString:$estr} ,Gamepad: ($_=function(id) { return {_hx_index:1,id:id,__enum__:"funkin.input.Device",toString:$estr}; },$_._hx_name="Gamepad",$_.__params__ = ["id"],$_) }; funkin_input_Device.__constructs__ = [funkin_input_Device.Keys,funkin_input_Device.Gamepad]; funkin_input_Device.__empty_constructs__ = [funkin_input_Device.Keys]; var funkin_input_KeyboardScheme = $hxEnums["funkin.input.KeyboardScheme"] = { __ename__:"funkin.input.KeyboardScheme",__constructs__:null ,Solo: {_hx_name:"Solo",_hx_index:0,__enum__:"funkin.input.KeyboardScheme",toString:$estr} ,Duo: ($_=function(first) { return {_hx_index:1,first:first,__enum__:"funkin.input.KeyboardScheme",toString:$estr}; },$_._hx_name="Duo",$_.__params__ = ["first"],$_) ,None: {_hx_name:"None",_hx_index:2,__enum__:"funkin.input.KeyboardScheme",toString:$estr} ,Custom: {_hx_name:"Custom",_hx_index:3,__enum__:"funkin.input.KeyboardScheme",toString:$estr} }; funkin_input_KeyboardScheme.__constructs__ = [funkin_input_KeyboardScheme.Solo,funkin_input_KeyboardScheme.Duo,funkin_input_KeyboardScheme.None,funkin_input_KeyboardScheme.Custom]; funkin_input_KeyboardScheme.__empty_constructs__ = [funkin_input_KeyboardScheme.Solo,funkin_input_KeyboardScheme.None,funkin_input_KeyboardScheme.Custom]; var funkin_input_Cursor = function() { }; $hxClasses["funkin.input.Cursor"] = funkin_input_Cursor; funkin_input_Cursor.__name__ = "funkin.input.Cursor"; funkin_input_Cursor.__properties__ = {set_cursorMode:"set_cursorMode"}; funkin_input_Cursor.show = function() { flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }; funkin_input_Cursor.hide = function() { flixel_FlxG.mouse.set_visible(false); funkin_input_Cursor.set_cursorMode(null); }; funkin_input_Cursor.toggle = function() { if(flixel_FlxG.mouse.visible) { flixel_FlxG.mouse.set_visible(false); funkin_input_Cursor.set_cursorMode(null); } else { flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); } }; funkin_input_Cursor.set_cursorMode = function(value) { if(value != null && funkin_input_Cursor.cursorMode != value) { funkin_input_Cursor.cursorMode = value; funkin_input_Cursor.setCursorGraphic(funkin_input_Cursor.cursorMode); } return funkin_input_Cursor.cursorMode; }; funkin_input_Cursor.setCursorGraphic = function(value) { if(value == null) { flixel_FlxG.mouse.unload(); return; } if(value == null) { funkin_input_Cursor.setCursorGraphic(null); } else { switch(value._hx_index) { case 0: if(funkin_input_Cursor.assetCursorDefault == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_DEFAULT_PARAMS.graphic); funkin_input_Cursor.assetCursorDefault = bitmapData; var params = funkin_input_Cursor.CURSOR_DEFAULT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorDefault,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_DEFAULT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorDefault,params.scale,params.offsetX,params.offsetY); } break; case 1: if(funkin_input_Cursor.assetCursorCross == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_CROSS_PARAMS.graphic); funkin_input_Cursor.assetCursorCross = bitmapData; var params = funkin_input_Cursor.CURSOR_CROSS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCross,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_CROSS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCross,params.scale,params.offsetX,params.offsetY); } break; case 2: if(funkin_input_Cursor.assetCursorEraser == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_ERASER_PARAMS.graphic); funkin_input_Cursor.assetCursorEraser = bitmapData; var params = funkin_input_Cursor.CURSOR_ERASER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorEraser,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_ERASER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorEraser,params.scale,params.offsetX,params.offsetY); } break; case 3: if(funkin_input_Cursor.assetCursorGrabbing == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_GRABBING_PARAMS.graphic); funkin_input_Cursor.assetCursorGrabbing = bitmapData; var params = funkin_input_Cursor.CURSOR_GRABBING_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorGrabbing,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_GRABBING_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorGrabbing,params.scale,params.offsetX,params.offsetY); } break; case 4: if(funkin_input_Cursor.assetCursorHourglass == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS.graphic); funkin_input_Cursor.assetCursorHourglass = bitmapData; var params = funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorHourglass,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorHourglass,params.scale,params.offsetX,params.offsetY); } break; case 5: if(funkin_input_Cursor.assetCursorPointer == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_POINTER_PARAMS.graphic); funkin_input_Cursor.assetCursorPointer = bitmapData; var params = funkin_input_Cursor.CURSOR_POINTER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorPointer,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_POINTER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorPointer,params.scale,params.offsetX,params.offsetY); } break; case 6: if(funkin_input_Cursor.assetCursorText == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_TEXT_PARAMS.graphic); funkin_input_Cursor.assetCursorText = bitmapData; var params = funkin_input_Cursor.CURSOR_TEXT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorText,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_TEXT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorText,params.scale,params.offsetX,params.offsetY); } break; case 7: if(funkin_input_Cursor.assetCursorZoomIn == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS.graphic); funkin_input_Cursor.assetCursorZoomIn = bitmapData; var params = funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomIn,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomIn,params.scale,params.offsetX,params.offsetY); } break; case 8: if(funkin_input_Cursor.assetCursorZoomOut == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS.graphic); funkin_input_Cursor.assetCursorZoomOut = bitmapData; var params = funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomOut,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomOut,params.scale,params.offsetX,params.offsetY); } break; case 9: if(funkin_input_Cursor.assetCursorCrosshair == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS.graphic); funkin_input_Cursor.assetCursorCrosshair = bitmapData; var params = funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCrosshair,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCrosshair,params.scale,params.offsetX,params.offsetY); } break; case 10: if(funkin_input_Cursor.assetCursorCell == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_CELL_PARAMS.graphic); funkin_input_Cursor.assetCursorCell = bitmapData; var params = funkin_input_Cursor.CURSOR_CELL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCell,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_CELL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCell,params.scale,params.offsetX,params.offsetY); } break; case 11: if(funkin_input_Cursor.assetCursorScroll == null) { var bitmapData = openfl_utils_Assets.getBitmapData(funkin_input_Cursor.CURSOR_SCROLL_PARAMS.graphic); funkin_input_Cursor.assetCursorScroll = bitmapData; var params = funkin_input_Cursor.CURSOR_SCROLL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorScroll,params.scale,params.offsetX,params.offsetY); } else { var params = funkin_input_Cursor.CURSOR_SCROLL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorScroll,params.scale,params.offsetX,params.offsetY); } break; } } }; funkin_input_Cursor.loadCursorGraphic = function(value) { if(value == null) { flixel_FlxG.mouse.unload(); return; } if(value == null) { funkin_input_Cursor.loadCursorGraphic(null); } else { switch(value._hx_index) { case 0: if(funkin_input_Cursor.assetCursorDefault == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_DEFAULT_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorDefault = bitmapData; var params = funkin_input_Cursor.CURSOR_DEFAULT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorDefault,params.scale,params.offsetX,params.offsetY); }); var cursorMode = funkin_input_CursorMode.Default; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode,error); }); } else { var params = funkin_input_Cursor.CURSOR_DEFAULT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorDefault,params.scale,params.offsetX,params.offsetY); } break; case 1: if(funkin_input_Cursor.assetCursorCross == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_CROSS_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorCross = bitmapData; var params = funkin_input_Cursor.CURSOR_CROSS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCross,params.scale,params.offsetX,params.offsetY); }); var cursorMode1 = funkin_input_CursorMode.Cross; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode1,error); }); } else { var params = funkin_input_Cursor.CURSOR_CROSS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCross,params.scale,params.offsetX,params.offsetY); } break; case 2: if(funkin_input_Cursor.assetCursorEraser == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_ERASER_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorEraser = bitmapData; var params = funkin_input_Cursor.CURSOR_ERASER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorEraser,params.scale,params.offsetX,params.offsetY); }); var cursorMode2 = funkin_input_CursorMode.Eraser; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode2,error); }); } else { var params = funkin_input_Cursor.CURSOR_ERASER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorEraser,params.scale,params.offsetX,params.offsetY); } break; case 3: if(funkin_input_Cursor.assetCursorGrabbing == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_GRABBING_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorGrabbing = bitmapData; var params = funkin_input_Cursor.CURSOR_GRABBING_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorGrabbing,params.scale,params.offsetX,params.offsetY); }); var cursorMode3 = funkin_input_CursorMode.Grabbing; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode3,error); }); } else { var params = funkin_input_Cursor.CURSOR_GRABBING_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorGrabbing,params.scale,params.offsetX,params.offsetY); } break; case 4: if(funkin_input_Cursor.assetCursorHourglass == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorHourglass = bitmapData; var params = funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorHourglass,params.scale,params.offsetX,params.offsetY); }); var cursorMode4 = funkin_input_CursorMode.Hourglass; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode4,error); }); } else { var params = funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorHourglass,params.scale,params.offsetX,params.offsetY); } break; case 5: if(funkin_input_Cursor.assetCursorPointer == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_POINTER_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorPointer = bitmapData; var params = funkin_input_Cursor.CURSOR_POINTER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorPointer,params.scale,params.offsetX,params.offsetY); }); var cursorMode5 = funkin_input_CursorMode.Pointer; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode5,error); }); } else { var params = funkin_input_Cursor.CURSOR_POINTER_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorPointer,params.scale,params.offsetX,params.offsetY); } break; case 6: if(funkin_input_Cursor.assetCursorText == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_TEXT_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorText = bitmapData; var params = funkin_input_Cursor.CURSOR_TEXT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorText,params.scale,params.offsetX,params.offsetY); }); var cursorMode6 = funkin_input_CursorMode.Text; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode6,error); }); } else { var params = funkin_input_Cursor.CURSOR_TEXT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorText,params.scale,params.offsetX,params.offsetY); } break; case 7: if(funkin_input_Cursor.assetCursorZoomIn == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorZoomIn = bitmapData; var params = funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomIn,params.scale,params.offsetX,params.offsetY); }); var cursorMode7 = funkin_input_CursorMode.ZoomIn; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode7,error); }); } else { var params = funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomIn,params.scale,params.offsetX,params.offsetY); } break; case 8: if(funkin_input_Cursor.assetCursorZoomOut == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorZoomOut = bitmapData; var params = funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomOut,params.scale,params.offsetX,params.offsetY); }); var cursorMode8 = funkin_input_CursorMode.ZoomOut; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode8,error); }); } else { var params = funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorZoomOut,params.scale,params.offsetX,params.offsetY); } break; case 9: if(funkin_input_Cursor.assetCursorCrosshair == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorCrosshair = bitmapData; var params = funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCrosshair,params.scale,params.offsetX,params.offsetY); }); var cursorMode9 = funkin_input_CursorMode.Crosshair; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode9,error); }); } else { var params = funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCrosshair,params.scale,params.offsetX,params.offsetY); } break; case 10: if(funkin_input_Cursor.assetCursorCell == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_CELL_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorCell = bitmapData; var params = funkin_input_Cursor.CURSOR_CELL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCell,params.scale,params.offsetX,params.offsetY); }); var cursorMode10 = funkin_input_CursorMode.Cell; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode10,error); }); } else { var params = funkin_input_Cursor.CURSOR_CELL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorCell,params.scale,params.offsetX,params.offsetY); } break; case 11: if(funkin_input_Cursor.assetCursorScroll == null) { var future = openfl_utils_Assets.loadBitmapData(funkin_input_Cursor.CURSOR_SCROLL_PARAMS.graphic); future.onComplete(function(bitmapData) { funkin_input_Cursor.assetCursorScroll = bitmapData; var params = funkin_input_Cursor.CURSOR_SCROLL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorScroll,params.scale,params.offsetX,params.offsetY); }); var cursorMode11 = funkin_input_CursorMode.Scroll; future.onError(function(error) { funkin_input_Cursor.onCursorError(cursorMode11,error); }); } else { var params = funkin_input_Cursor.CURSOR_SCROLL_PARAMS; flixel_FlxG.mouse.load(funkin_input_Cursor.assetCursorScroll,params.scale,params.offsetX,params.offsetY); } break; } } }; funkin_input_Cursor.applyCursorParams = function(graphic,params) { flixel_FlxG.mouse.load(graphic,params.scale,params.offsetX,params.offsetY); }; funkin_input_Cursor.onCursorError = function(cursorMode,error) { haxe_Log.trace("Failed to load cursor graphic for cursor mode " + Std.string(cursorMode) + ": " + error,{ fileName : "source/funkin/input/Cursor.hx", lineNumber : 543, className : "funkin.input.Cursor", methodName : "onCursorError"}); }; funkin_input_Cursor.registerHaxeUICursors = function() { haxe_ui_backend_flixel_CursorHelper.useCustomCursors = true; funkin_input_Cursor.registerHaxeUICursor("default",funkin_input_Cursor.CURSOR_DEFAULT_PARAMS); funkin_input_Cursor.registerHaxeUICursor("cross",funkin_input_Cursor.CURSOR_CROSS_PARAMS); funkin_input_Cursor.registerHaxeUICursor("eraser",funkin_input_Cursor.CURSOR_ERASER_PARAMS); funkin_input_Cursor.registerHaxeUICursor("grabbing",funkin_input_Cursor.CURSOR_GRABBING_PARAMS); funkin_input_Cursor.registerHaxeUICursor("hourglass",funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS); funkin_input_Cursor.registerHaxeUICursor("pointer",funkin_input_Cursor.CURSOR_POINTER_PARAMS); funkin_input_Cursor.registerHaxeUICursor("text",funkin_input_Cursor.CURSOR_TEXT_PARAMS); funkin_input_Cursor.registerHaxeUICursor("text-vertical",funkin_input_Cursor.CURSOR_TEXT_VERTICAL_PARAMS); funkin_input_Cursor.registerHaxeUICursor("zoom-in",funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS); funkin_input_Cursor.registerHaxeUICursor("zoom-out",funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS); funkin_input_Cursor.registerHaxeUICursor("crosshair",funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS); funkin_input_Cursor.registerHaxeUICursor("cell",funkin_input_Cursor.CURSOR_CELL_PARAMS); funkin_input_Cursor.registerHaxeUICursor("scroll",funkin_input_Cursor.CURSOR_SCROLL_PARAMS); }; funkin_input_Cursor.registerHaxeUICursor = function(id,params) { haxe_ui_backend_flixel_CursorHelper.registerCursor(id,params.graphic,params.scale,params.offsetX,params.offsetY); }; var funkin_input_CursorMode = $hxEnums["funkin.input.CursorMode"] = { __ename__:"funkin.input.CursorMode",__constructs__:null ,Default: {_hx_name:"Default",_hx_index:0,__enum__:"funkin.input.CursorMode",toString:$estr} ,Cross: {_hx_name:"Cross",_hx_index:1,__enum__:"funkin.input.CursorMode",toString:$estr} ,Eraser: {_hx_name:"Eraser",_hx_index:2,__enum__:"funkin.input.CursorMode",toString:$estr} ,Grabbing: {_hx_name:"Grabbing",_hx_index:3,__enum__:"funkin.input.CursorMode",toString:$estr} ,Hourglass: {_hx_name:"Hourglass",_hx_index:4,__enum__:"funkin.input.CursorMode",toString:$estr} ,Pointer: {_hx_name:"Pointer",_hx_index:5,__enum__:"funkin.input.CursorMode",toString:$estr} ,Text: {_hx_name:"Text",_hx_index:6,__enum__:"funkin.input.CursorMode",toString:$estr} ,ZoomIn: {_hx_name:"ZoomIn",_hx_index:7,__enum__:"funkin.input.CursorMode",toString:$estr} ,ZoomOut: {_hx_name:"ZoomOut",_hx_index:8,__enum__:"funkin.input.CursorMode",toString:$estr} ,Crosshair: {_hx_name:"Crosshair",_hx_index:9,__enum__:"funkin.input.CursorMode",toString:$estr} ,Cell: {_hx_name:"Cell",_hx_index:10,__enum__:"funkin.input.CursorMode",toString:$estr} ,Scroll: {_hx_name:"Scroll",_hx_index:11,__enum__:"funkin.input.CursorMode",toString:$estr} }; funkin_input_CursorMode.__constructs__ = [funkin_input_CursorMode.Default,funkin_input_CursorMode.Cross,funkin_input_CursorMode.Eraser,funkin_input_CursorMode.Grabbing,funkin_input_CursorMode.Hourglass,funkin_input_CursorMode.Pointer,funkin_input_CursorMode.Text,funkin_input_CursorMode.ZoomIn,funkin_input_CursorMode.ZoomOut,funkin_input_CursorMode.Crosshair,funkin_input_CursorMode.Cell,funkin_input_CursorMode.Scroll]; funkin_input_CursorMode.__empty_constructs__ = [funkin_input_CursorMode.Default,funkin_input_CursorMode.Cross,funkin_input_CursorMode.Eraser,funkin_input_CursorMode.Grabbing,funkin_input_CursorMode.Hourglass,funkin_input_CursorMode.Pointer,funkin_input_CursorMode.Text,funkin_input_CursorMode.ZoomIn,funkin_input_CursorMode.ZoomOut,funkin_input_CursorMode.Crosshair,funkin_input_CursorMode.Cell,funkin_input_CursorMode.Scroll]; var funkin_util_Constants = function() { }; $hxClasses["funkin.util.Constants"] = funkin_util_Constants; funkin_util_Constants.__name__ = "funkin.util.Constants"; funkin_util_Constants.__properties__ = {get_GENERATED_BY:"get_GENERATED_BY",get_VERSION:"get_VERSION"}; funkin_util_Constants.get_GENERATED_BY = function() { return "" + funkin_util_Constants.TITLE + " - " + funkin_util_Constants.get_VERSION(); }; funkin_util_Constants.get_VERSION = function() { return "v" + lime_app_Application.current.meta.h["version"] + funkin_util_Constants.VERSION_SUFFIX; }; 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 ,toString: function() { return haxe_Int64.toString(this); } ,__class__: haxe__$Int64__$_$_$Int64 }; var funkin_input_PreciseInputManager = function() { flixel_input_FlxKeyManager.call(this,function(state,preciseInputManager) { return new funkin_input_PreciseInputList(state,preciseInputManager); }); this._deviceBinds = new haxe_ds_ObjectMap(); this._keyList = []; this._keyListDir = new haxe_ds_IntMap(); this._buttonList = new haxe_ds_IntMap(); this._buttonListMap = new haxe_ds_IntMap(); this._buttonListArray = []; this._buttonListDir = new haxe_ds_IntMap(); this._dirPressTimestamps = new haxe_ds_IntMap(); this._dirReleaseTimestamps = new haxe_ds_IntMap(); openfl_Lib.get_current().stage.removeEventListener("keyDown",$bind(this,this.onKeyDown)); openfl_Lib.get_current().stage.removeEventListener("keyUp",$bind(this,this.onKeyUp)); openfl_Lib.get_current().stage.application.__window.onKeyDownPrecise.add($bind(this,this.handleKeyDown)); openfl_Lib.get_current().stage.application.__window.onKeyUpPrecise.add($bind(this,this.handleKeyUp)); this.preventDefaultKeys = funkin_input_PreciseInputManager.getPreventDefaultKeys(); this.onInputPressed = new flixel_util__$FlxSignal_FlxSignal1(); this.onInputReleased = new flixel_util__$FlxSignal_FlxSignal1(); }; $hxClasses["funkin.input.PreciseInputManager"] = funkin_input_PreciseInputManager; funkin_input_PreciseInputManager.__name__ = "funkin.input.PreciseInputManager"; funkin_input_PreciseInputManager.__properties__ = {get_instance:"get_instance"}; funkin_input_PreciseInputManager.instance = null; funkin_input_PreciseInputManager.get_instance = function() { var tmp = funkin_input_PreciseInputManager.instance; if(tmp != null) { return tmp; } else { return funkin_input_PreciseInputManager.instance = new funkin_input_PreciseInputManager(); } }; funkin_input_PreciseInputManager.getKeysForDirection = function(controls,noteDirection) { switch(noteDirection) { case 0: return controls.getKeysForAction("note_left"); case 1: return controls.getKeysForAction("note_down"); case 2: return controls.getKeysForAction("note_up"); case 3: return controls.getKeysForAction("note_right"); } }; funkin_input_PreciseInputManager.getButtonsForDirection = function(controls,noteDirection) { switch(noteDirection) { case 0: return controls.getButtonsForAction("note_left"); case 1: return controls.getButtonsForAction("note_down"); case 2: return controls.getButtonsForAction("note_up"); case 3: return controls.getButtonsForAction("note_right"); } }; funkin_input_PreciseInputManager.getCurrentTimestamp = function() { var a = haxe_Int64Helper.fromFloat(window.performance.now()); var b = funkin_input_PreciseInputManager.NS_PER_MS; var mask = 65535; var al = a.low & mask; var ah = a.low >>> 16; var bl = b.low & mask; var bh = b.low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(a.low,b.high) + haxe_Int32._mul(a.high,b.low) | 0) | 0; return new haxe__$Int64__$_$_$Int64(high,low); }; funkin_input_PreciseInputManager.getPreventDefaultKeys = function() { return flixel_FlxG.keys.preventDefaultKeys; }; funkin_input_PreciseInputManager.convertKeyCode = function(input) { switch(input) { 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 13; 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 input; } }; funkin_input_PreciseInputManager.__super__ = flixel_input_FlxKeyManager; funkin_input_PreciseInputManager.prototype = $extend(flixel_input_FlxKeyManager.prototype,{ onInputPressed: null ,onInputReleased: null ,_keyList: null ,_keyListDir: null ,_buttonList: null ,_buttonListArray: null ,_buttonListMap: null ,_buttonListDir: null ,_dirPressTimestamps: null ,_dirReleaseTimestamps: null ,_deviceBinds: null ,initializeKeys: function(controls) { this.clearKeys(); var _g = 0; var _g1 = funkin_input_PreciseInputManager.DIRECTIONS; while(_g < _g1.length) { var noteDirection = _g1[_g]; ++_g; var keys = funkin_input_PreciseInputManager.getKeysForDirection(controls,noteDirection); var _g2 = 0; while(_g2 < keys.length) { var key = keys[_g2]; ++_g2; var input = new flixel_input_FlxInput(key); this._keyList.push(key); this._keyListArray.push(input); this._keyListMap.h[key] = input; this._keyListDir.h[key] = noteDirection; } } } ,initializeButtons: function(controls,gamepad) { this.clearButtons(); var limeGamepad = funkin_util_FlxGamepadUtil.getLimeGamepad(gamepad); var _g = this; var gamepad1 = gamepad; var callbacks_onButtonDown = function(button,timestamp) { _g.handleButtonDown(gamepad1,button,timestamp); }; var _g1 = this; var gamepad2 = gamepad; var callbacks_onButtonUp = function(button,timestamp) { _g1.handleButtonUp(gamepad2,button,timestamp); }; limeGamepad.onButtonDownPrecise.add(callbacks_onButtonDown); limeGamepad.onButtonUpPrecise.add(callbacks_onButtonUp); var _g2 = 0; var _g3 = funkin_input_PreciseInputManager.DIRECTIONS; while(_g2 < _g3.length) { var noteDirection = _g3[_g2]; ++_g2; var buttons = funkin_input_PreciseInputManager.getButtonsForDirection(controls,noteDirection); var _g4 = 0; while(_g4 < buttons.length) { var button = buttons[_g4]; ++_g4; var input = new flixel_input_FlxInput(button); var buttonListEntry = this._buttonList.h[gamepad.id]; if(buttonListEntry == null) { buttonListEntry = []; this._buttonList.h[gamepad.id] = buttonListEntry; } buttonListEntry.push(button); this._buttonListArray.push(input); var buttonListMapEntry = this._buttonListMap.h[gamepad.id]; if(buttonListMapEntry == null) { var this1 = this._buttonListMap; var key = gamepad.id; buttonListMapEntry = new haxe_ds_IntMap(); this1.h[key] = buttonListMapEntry; } buttonListMapEntry.h[button] = input; var buttonListDirEntry = this._buttonListDir.h[gamepad.id]; if(buttonListDirEntry == null) { var this2 = this._buttonListDir; var key1 = gamepad.id; buttonListDirEntry = new haxe_ds_IntMap(); this2.h[key1] = buttonListDirEntry; } buttonListDirEntry.h[button] = noteDirection; } } } ,getTimeSincePressed: function(noteDirection) { var a = funkin_input_PreciseInputManager.getCurrentTimestamp(); var b = this._dirPressTimestamps.h[noteDirection]; var high = a.high - b.high | 0; var low = a.low - b.low | 0; if(haxe_Int32.ucompare(a.low,b.low) < 0) { var ret = high--; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); } ,getTimeSinceReleased: function(noteDirection) { var a = funkin_input_PreciseInputManager.getCurrentTimestamp(); var b = this._dirReleaseTimestamps.h[noteDirection]; var high = a.high - b.high | 0; var low = a.low - b.low | 0; if(haxe_Int32.ucompare(a.low,b.low) < 0) { var ret = high--; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); } ,getInputByKey: function(key) { return this._keyListMap.h[key]; } ,getInputByButton: function(gamepad,button) { return this._buttonListMap.h[gamepad.id].h[button]; } ,getDirectionForKey: function(key) { return this._keyListDir.h[key]; } ,getDirectionForButton: function(gamepad,button) { return this._buttonListDir.h[gamepad.id].h[button]; } ,getButton: function(gamepad,button) { return this._buttonListMap.h[gamepad.id].h[button]; } ,updateButtonStates: function(gamepad,button,down) { var input = this.getButton(gamepad,button); if(input == null) { return; } if(down) { input.press(); } else { input.release(); } } ,handleKeyDown: function(keyCode,_,timestamp) { var key = funkin_input_PreciseInputManager.convertKeyCode(keyCode); if(this._keyList.indexOf(key) == -1) { return; } var x = funkin_util_Constants.NS_PER_MS; var b_high = x >> 31; var b_low = x; var mask = 65535; var al = timestamp.low & mask; var ah = timestamp.low >>> 16; var bl = b_low & mask; var bh = b_low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(timestamp.low,b_high) + haxe_Int32._mul(timestamp.high,b_low) | 0) | 0; timestamp = new haxe__$Int64__$_$_$Int64(high,low); var x = funkin_Conductor.get_instance().get_inputOffset() * funkin_util_Constants.NS_PER_MS; var b_high = x >> 31; var b_low = x; var high = timestamp.high - b_high | 0; var low = timestamp.low - b_low | 0; if(haxe_Int32.ucompare(timestamp.low,b_low) < 0) { var ret = high--; high = high | 0; } timestamp = new haxe__$Int64__$_$_$Int64(high,low); var key1 = this._keyListMap.h[key]; if(key1 != null) { key1.press(); } var tmp = this.getInputByKey(key); var tmp1 = tmp != null ? tmp.current == 2 : null; if(tmp1 != null && tmp1) { this.onInputPressed.dispatch({ noteDirection : this.getDirectionForKey(key), timestamp : timestamp}); var this1 = this._dirPressTimestamps; var key1 = this.getDirectionForKey(key); this1.h[key1] = timestamp; } } ,handleKeyUp: function(keyCode,_,timestamp) { var key = funkin_input_PreciseInputManager.convertKeyCode(keyCode); if(this._keyList.indexOf(key) == -1) { return; } var x = funkin_util_Constants.NS_PER_MS; var b_high = x >> 31; var b_low = x; var mask = 65535; var al = timestamp.low & mask; var ah = timestamp.low >>> 16; var bl = b_low & mask; var bh = b_low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(timestamp.low,b_high) + haxe_Int32._mul(timestamp.high,b_low) | 0) | 0; timestamp = new haxe__$Int64__$_$_$Int64(high,low); var key1 = this._keyListMap.h[key]; if(key1 != null) { key1.release(); } var tmp = this.getInputByKey(key); var tmp1 = tmp != null ? tmp.current == -1 : null; if(tmp1 != null && tmp1) { this.onInputReleased.dispatch({ noteDirection : this.getDirectionForKey(key), timestamp : timestamp}); var this1 = this._dirReleaseTimestamps; var key1 = this.getDirectionForKey(key); this1.h[key1] = timestamp; } } ,handleButtonDown: function(gamepad,button,timestamp) { var buttonId = funkin_util_FlxGamepadUtil.getInputID(gamepad,button); var buttonListEntry = this._buttonList.h[gamepad.id]; if(buttonListEntry == null || buttonListEntry.indexOf(buttonId) == -1) { return; } var x = funkin_util_Constants.NS_PER_MS; var b_high = x >> 31; var b_low = x; var mask = 65535; var al = timestamp.low & mask; var ah = timestamp.low >>> 16; var bl = b_low & mask; var bh = b_low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(timestamp.low,b_high) + haxe_Int32._mul(timestamp.high,b_low) | 0) | 0; timestamp = new haxe__$Int64__$_$_$Int64(high,low); this.updateButtonStates(gamepad,buttonId,true); var tmp = this.getInputByButton(gamepad,buttonId); var tmp1 = tmp != null ? tmp.current == 2 : null; if(tmp1 != null && tmp1) { this.onInputPressed.dispatch({ noteDirection : this.getDirectionForButton(gamepad,buttonId), timestamp : timestamp}); var this1 = this._dirPressTimestamps; var key = this.getDirectionForButton(gamepad,buttonId); this1.h[key] = timestamp; } } ,handleButtonUp: function(gamepad,button,timestamp) { var buttonId = funkin_util_FlxGamepadUtil.getInputID(gamepad,button); var buttonListEntry = this._buttonList.h[gamepad.id]; if(buttonListEntry == null || buttonListEntry.indexOf(buttonId) == -1) { return; } var x = funkin_util_Constants.NS_PER_MS; var b_high = x >> 31; var b_low = x; var mask = 65535; var al = timestamp.low & mask; var ah = timestamp.low >>> 16; var bl = b_low & mask; var bh = b_low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(timestamp.low,b_high) + haxe_Int32._mul(timestamp.high,b_low) | 0) | 0; timestamp = new haxe__$Int64__$_$_$Int64(high,low); this.updateButtonStates(gamepad,buttonId,false); var tmp = this.getInputByButton(gamepad,buttonId); var tmp1 = tmp != null ? tmp.current == -1 : null; if(tmp1 != null && tmp1) { this.onInputReleased.dispatch({ noteDirection : this.getDirectionForButton(gamepad,buttonId), timestamp : timestamp}); var this1 = this._dirReleaseTimestamps; var key = this.getDirectionForButton(gamepad,buttonId); this1.h[key] = timestamp; } } ,clearKeys: function() { this._keyListArray = []; this._keyListMap.h = { }; this._keyListDir.h = { }; } ,clearButtons: function() { this._buttonListArray = []; this._buttonListDir.h = { }; var gamepad = this._deviceBinds.keys(); while(gamepad.hasNext()) { var gamepad1 = gamepad.next(); var callbacks = this._deviceBinds.h[gamepad1.__id__]; var limeGamepad = funkin_util_FlxGamepadUtil.getLimeGamepad(gamepad1); limeGamepad.onButtonDownPrecise.remove(callbacks.onButtonDown); limeGamepad.onButtonUpPrecise.remove(callbacks.onButtonUp); } this._deviceBinds.h = { __keys__ : { }}; } ,destroy: function() { openfl_Lib.get_current().stage.application.__window.onKeyDownPrecise.remove($bind(this,this.handleKeyDown)); openfl_Lib.get_current().stage.application.__window.onKeyUpPrecise.remove($bind(this,this.handleKeyUp)); this.clearKeys(); this.clearButtons(); } ,__class__: funkin_input_PreciseInputManager }); var funkin_input_PreciseInputList = function(state,preciseInputManager) { flixel_input_keyboard_FlxKeyList.call(this,state,preciseInputManager); this._preciseInputManager = preciseInputManager; }; $hxClasses["funkin.input.PreciseInputList"] = funkin_input_PreciseInputList; funkin_input_PreciseInputList.__name__ = "funkin.input.PreciseInputList"; funkin_input_PreciseInputList.getKeysForDir = function(noteDir) { return funkin_input_PreciseInputManager.getKeysForDirection(funkin_PlayerSettings.player1.controls,noteDir); }; funkin_input_PreciseInputList.__super__ = flixel_input_keyboard_FlxKeyList; funkin_input_PreciseInputList.prototype = $extend(flixel_input_keyboard_FlxKeyList.prototype,{ _preciseInputManager: null ,isKeyValid: function(key) { return this._preciseInputManager._keyListMap.h.hasOwnProperty(key); } ,checkFlxKey: function(key) { if(this.isKeyValid(key)) { return this.keyManager.checkStatusUnsafe(key,this.status); } return false; } ,checkDir: function(noteDir) { var _g = 0; var _g1 = funkin_input_PreciseInputList.getKeysForDir(noteDir); while(_g < _g1.length) { var key = _g1[_g]; ++_g; var tmp = this._preciseInputManager.getInputByKey(key); if(this.keyManager.checkStatusUnsafe(tmp != null ? tmp.ID : null,this.status)) { return true; } } return false; } ,get_NOTE_LEFT: function() { return this.checkDir(0); } ,get_NOTE_DOWN: function() { return this.checkDir(1); } ,get_NOTE_UP: function() { return this.checkDir(2); } ,get_NOTE_RIGHT: function() { return this.checkDir(3); } ,__class__: funkin_input_PreciseInputList ,__properties__: $extend(flixel_input_keyboard_FlxKeyList.prototype.__properties__,{get_NOTE_RIGHT:"get_NOTE_RIGHT",get_NOTE_UP:"get_NOTE_UP",get_NOTE_DOWN:"get_NOTE_DOWN",get_NOTE_LEFT:"get_NOTE_LEFT"}) }); var funkin_input_TurboActionHandler = function(action,delay,interval,gamepadOnly) { if(gamepadOnly == null) { gamepadOnly = false; } if(interval == null) { interval = 0.1; } if(delay == null) { delay = 0.4; } this.pressedTime = 0; this.activated = false; flixel_FlxBasic.call(this); this.action = action; this.delay = delay; this.interval = interval; this.gamepadOnly = gamepadOnly; }; $hxClasses["funkin.input.TurboActionHandler"] = funkin_input_TurboActionHandler; funkin_input_TurboActionHandler.__name__ = "funkin.input.TurboActionHandler"; funkin_input_TurboActionHandler.__super__ = flixel_FlxBasic; funkin_input_TurboActionHandler.prototype = $extend(flixel_FlxBasic.prototype,{ activated: null ,get_controls: function() { return funkin_PlayerSettings.player1.controls; } ,action: null ,delay: null ,interval: null ,gamepadOnly: null ,pressedTime: null ,get_pressed: function() { return this.get_controls().check(this.action,1,this.gamepadOnly); } ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); if(this.get_pressed()) { if(this.pressedTime == 0) { this.activated = true; } else if(this.pressedTime >= this.delay + this.interval) { this.activated = true; this.pressedTime -= this.interval; } else { this.activated = false; } this.pressedTime += elapsed; } else { this.pressedTime = 0; this.activated = false; } } ,__class__: funkin_input_TurboActionHandler ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{get_controls:"get_controls",get_pressed:"get_pressed"}) }); var funkin_input_TurboButtonHandler = function(inputs,delay,interval,targetGamepad) { if(interval == null) { interval = 0.1; } if(delay == null) { delay = 0.4; } this.allPressedTime = 0; this.activated = false; flixel_FlxBasic.call(this); this.inputs = inputs; this.delay = delay; this.interval = interval; var tmp = targetGamepad; this.targetGamepad = tmp != null ? tmp : flixel_FlxG.gamepads.firstActive; }; $hxClasses["funkin.input.TurboButtonHandler"] = funkin_input_TurboButtonHandler; funkin_input_TurboButtonHandler.__name__ = "funkin.input.TurboButtonHandler"; funkin_input_TurboButtonHandler.__super__ = flixel_FlxBasic; funkin_input_TurboButtonHandler.prototype = $extend(flixel_FlxBasic.prototype,{ activated: null ,inputs: null ,delay: null ,interval: null ,targetGamepad: null ,allPressedTime: null ,get_allPressed: function() { if(this.targetGamepad == null) { return false; } if(this.inputs == null || this.inputs.length == 0) { return false; } if(this.inputs.length == 1) { return this.targetGamepad.checkButtonArrayState(this.inputs,1); } var _g = 0; var _g1 = this.inputs; while(_g < _g1.length) { var input = _g1[_g]; ++_g; if(!this.targetGamepad.checkButtonArrayState([input],1)) { return false; } } return true; } ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); if(this.targetGamepad == null) { this.targetGamepad = flixel_FlxG.gamepads.firstActive; } if(this.get_allPressed()) { if(this.allPressedTime == 0) { this.activated = true; } else if(this.allPressedTime >= this.delay + this.interval) { this.activated = true; this.allPressedTime -= this.interval; } else { this.activated = false; } this.allPressedTime += elapsed; } else { this.allPressedTime = 0; this.activated = false; } } ,__class__: funkin_input_TurboButtonHandler ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{get_allPressed:"get_allPressed"}) }); var funkin_input_TurboKeyHandler = function(keys,delay,interval) { if(interval == null) { interval = 0.1; } if(delay == null) { delay = 0.4; } this.allPressedTime = 0; this.activated = false; flixel_FlxBasic.call(this); this.keys = keys; this.delay = delay; this.interval = interval; }; $hxClasses["funkin.input.TurboKeyHandler"] = funkin_input_TurboKeyHandler; funkin_input_TurboKeyHandler.__name__ = "funkin.input.TurboKeyHandler"; funkin_input_TurboKeyHandler.__super__ = flixel_FlxBasic; funkin_input_TurboKeyHandler.prototype = $extend(flixel_FlxBasic.prototype,{ activated: null ,keys: null ,delay: null ,interval: null ,allPressedTime: null ,get_allPressed: function() { if(this.keys == null || this.keys.length == 0) { return false; } if(this.keys.length == 1) { return flixel_FlxG.keys.checkKeyArrayState(this.keys,1); } var _g = 0; var _g1 = this.keys; while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(!flixel_FlxG.keys.checkKeyArrayState([key],1)) { return false; } } return true; } ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); if(this.get_allPressed()) { if(this.allPressedTime == 0) { this.activated = true; } else if(this.allPressedTime >= this.delay + this.interval) { this.activated = true; this.allPressedTime -= this.interval; } else { this.activated = false; } this.allPressedTime += elapsed; } else { this.allPressedTime = 0; this.activated = false; } } ,__class__: funkin_input_TurboKeyHandler ,__properties__: $extend(flixel_FlxBasic.prototype.__properties__,{get_allPressed:"get_allPressed"}) }); var funkin_modding_IScriptedClass = function() { }; $hxClasses["funkin.modding.IScriptedClass"] = funkin_modding_IScriptedClass; funkin_modding_IScriptedClass.__name__ = "funkin.modding.IScriptedClass"; funkin_modding_IScriptedClass.__isInterface__ = true; funkin_modding_IScriptedClass.prototype = { onScriptEvent: null ,onCreate: null ,onDestroy: null ,onUpdate: null ,__class__: funkin_modding_IScriptedClass }; var funkin_modding_IEventHandler = function() { }; $hxClasses["funkin.modding.IEventHandler"] = funkin_modding_IEventHandler; funkin_modding_IEventHandler.__name__ = "funkin.modding.IEventHandler"; funkin_modding_IEventHandler.__isInterface__ = true; funkin_modding_IEventHandler.prototype = { dispatchEvent: null ,__class__: funkin_modding_IEventHandler }; var funkin_modding_IStateChangingScriptedClass = function() { }; $hxClasses["funkin.modding.IStateChangingScriptedClass"] = funkin_modding_IStateChangingScriptedClass; funkin_modding_IStateChangingScriptedClass.__name__ = "funkin.modding.IStateChangingScriptedClass"; funkin_modding_IStateChangingScriptedClass.__isInterface__ = true; funkin_modding_IStateChangingScriptedClass.__interfaces__ = [funkin_modding_IScriptedClass]; funkin_modding_IStateChangingScriptedClass.prototype = { onStateChangeBegin: null ,onStateChangeEnd: null ,onSubStateOpenBegin: null ,onSubStateOpenEnd: null ,onSubStateCloseBegin: null ,onSubStateCloseEnd: null ,__class__: funkin_modding_IStateChangingScriptedClass }; var funkin_modding_IStateStageProp = function() { }; $hxClasses["funkin.modding.IStateStageProp"] = funkin_modding_IStateStageProp; funkin_modding_IStateStageProp.__name__ = "funkin.modding.IStateStageProp"; funkin_modding_IStateStageProp.__isInterface__ = true; funkin_modding_IStateStageProp.__interfaces__ = [funkin_modding_IScriptedClass]; funkin_modding_IStateStageProp.prototype = { onAdd: null ,__class__: funkin_modding_IStateStageProp }; var funkin_modding_INoteScriptedClass = function() { }; $hxClasses["funkin.modding.INoteScriptedClass"] = funkin_modding_INoteScriptedClass; funkin_modding_INoteScriptedClass.__name__ = "funkin.modding.INoteScriptedClass"; funkin_modding_INoteScriptedClass.__isInterface__ = true; funkin_modding_INoteScriptedClass.__interfaces__ = [funkin_modding_IScriptedClass]; funkin_modding_INoteScriptedClass.prototype = { onNoteIncoming: null ,onNoteHit: null ,onNoteMiss: null ,__class__: funkin_modding_INoteScriptedClass }; var funkin_modding_IPlayStateScriptedClass = function() { }; $hxClasses["funkin.modding.IPlayStateScriptedClass"] = funkin_modding_IPlayStateScriptedClass; funkin_modding_IPlayStateScriptedClass.__name__ = "funkin.modding.IPlayStateScriptedClass"; funkin_modding_IPlayStateScriptedClass.__isInterface__ = true; funkin_modding_IPlayStateScriptedClass.__interfaces__ = [funkin_modding_INoteScriptedClass]; funkin_modding_IPlayStateScriptedClass.prototype = { onPause: null ,onResume: null ,onSongLoaded: null ,onSongStart: null ,onSongEnd: null ,onGameOver: null ,onSongRetry: null ,onNoteGhostMiss: null ,onSongEvent: null ,onStepHit: null ,onBeatHit: null ,onCountdownStart: null ,onCountdownStep: null ,onCountdownEnd: null ,__class__: funkin_modding_IPlayStateScriptedClass }; var funkin_modding_IDialogueScriptedClass = function() { }; $hxClasses["funkin.modding.IDialogueScriptedClass"] = funkin_modding_IDialogueScriptedClass; funkin_modding_IDialogueScriptedClass.__name__ = "funkin.modding.IDialogueScriptedClass"; funkin_modding_IDialogueScriptedClass.__isInterface__ = true; funkin_modding_IDialogueScriptedClass.__interfaces__ = [funkin_modding_IScriptedClass]; funkin_modding_IDialogueScriptedClass.prototype = { onDialogueStart: null ,onDialogueCompleteLine: null ,onDialogueLine: null ,onDialogueSkip: null ,onDialogueEnd: null ,__class__: funkin_modding_IDialogueScriptedClass }; var funkin_modding_PolymodErrorHandler = function() { }; $hxClasses["funkin.modding.PolymodErrorHandler"] = funkin_modding_PolymodErrorHandler; funkin_modding_PolymodErrorHandler.__name__ = "funkin.modding.PolymodErrorHandler"; funkin_modding_PolymodErrorHandler.showAlert = function(name,desc) { lime_app_Application.current.__window.alert(desc,name); }; funkin_modding_PolymodErrorHandler.onPolymodError = function(error) { switch(error.code) { case "missing_icon": funkin_modding_PolymodErrorHandler.logWarn("A mod is missing an icon. Please add one."); break; case "mod_load_done":case "mod_load_prepare": funkin_modding_PolymodErrorHandler.logInfo("LOADING MOD - " + error.message); break; case "script_class_module_blacklisted": funkin_modding_PolymodErrorHandler.logError(error.message); funkin_modding_PolymodErrorHandler.showAlert("Polymod Script Blacklist Violation",error.message); break; case "script_class_module_not_found": funkin_modding_PolymodErrorHandler.logError(error.message); var className = error.message.split(" ").pop(); var msg = "Import error in " + error.origin; msg += "\nCould not import unknown class " + className; msg += "\nCheck to ensure the class exists and is spelled correctly."; funkin_modding_PolymodErrorHandler.showAlert("Polymod Script Import Error",msg); break; case "script_parse_error": funkin_modding_PolymodErrorHandler.logError(error.message); funkin_modding_PolymodErrorHandler.showAlert("Polymod Script Parsing Error",error.message); break; case "framework_autodetect":case "framework_init":case "script_parsing": return; case "script_runtime_exception": funkin_modding_PolymodErrorHandler.logError(error.message); funkin_modding_PolymodErrorHandler.showAlert("Polymod Script Exception",error.message); break; default: switch(error.severity._hx_index) { case 0: funkin_modding_PolymodErrorHandler.logInfo(error.message); break; case 1: funkin_modding_PolymodErrorHandler.logWarn(error.message); break; case 2: funkin_modding_PolymodErrorHandler.logError(error.message); break; } } }; funkin_modding_PolymodErrorHandler.logInfo = function(message) { haxe_Log.trace("[INFO-] " + message,{ fileName : "source/funkin/modding/PolymodErrorHandler.hx", lineNumber : 79, className : "funkin.modding.PolymodErrorHandler", methodName : "logInfo"}); }; funkin_modding_PolymodErrorHandler.logError = function(message) { haxe_Log.trace("[ERROR] " + message,{ fileName : "source/funkin/modding/PolymodErrorHandler.hx", lineNumber : 84, className : "funkin.modding.PolymodErrorHandler", methodName : "logError"}); }; funkin_modding_PolymodErrorHandler.logWarn = function(message) { haxe_Log.trace("[WARN-] " + message,{ fileName : "source/funkin/modding/PolymodErrorHandler.hx", lineNumber : 89, className : "funkin.modding.PolymodErrorHandler", methodName : "logWarn"}); }; var funkin_modding_PolymodHandler = function() { }; $hxClasses["funkin.modding.PolymodHandler"] = funkin_modding_PolymodHandler; funkin_modding_PolymodHandler.__name__ = "funkin.modding.PolymodHandler"; funkin_modding_PolymodHandler.createModRoot = function() { funkin_util_FileUtil.createDirIfNotExists(funkin_modding_PolymodHandler.MOD_FOLDER); }; funkin_modding_PolymodHandler.loadAllMods = function() { funkin_modding_PolymodHandler.createModRoot(); haxe_Log.trace("Initializing Polymod (using all mods)...",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 76, className : "funkin.modding.PolymodHandler", methodName : "loadAllMods"}); funkin_modding_PolymodHandler.loadModsById(funkin_modding_PolymodHandler.getAllModIds()); }; funkin_modding_PolymodHandler.loadEnabledMods = function() { funkin_modding_PolymodHandler.createModRoot(); haxe_Log.trace("Initializing Polymod (using configured mods)...",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 88, className : "funkin.modding.PolymodHandler", methodName : "loadEnabledMods"}); funkin_modding_PolymodHandler.loadModsById(funkin_save_Save.get_instance().get_enabledModIds()); }; funkin_modding_PolymodHandler.loadNoMods = function() { funkin_modding_PolymodHandler.createModRoot(); haxe_Log.trace("Initializing Polymod (using no mods)...",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 101, className : "funkin.modding.PolymodHandler", methodName : "loadNoMods"}); funkin_modding_PolymodHandler.loadModsById([]); }; funkin_modding_PolymodHandler.loadModsById = function(ids) { if(ids.length == 0) { haxe_Log.trace("You attempted to load zero mods.",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 113, className : "funkin.modding.PolymodHandler", methodName : "loadModsById"}); } else { haxe_Log.trace("Attempting to load " + ids.length + " mods...",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 117, className : "funkin.modding.PolymodHandler", methodName : "loadModsById"}); } funkin_modding_PolymodHandler.buildImports(); if(funkin_modding_PolymodHandler.modFileSystem == null) { funkin_modding_PolymodHandler.modFileSystem = funkin_modding_PolymodHandler.buildFileSystem(); } var loadedModList = thx_semver_VersionRule.stringToVersionRule(funkin_modding_PolymodHandler.API_VERSION); var loadedModList1 = funkin_modding_PolymodHandler.modFileSystem; var _g = new haxe_ds_StringMap(); _g.h["default"] = "preload"; _g.h["shared"] = "shared"; _g.h["songs"] = "songs"; _g.h["videos"] = "videos"; _g.h["tutorial"] = "tutorial"; _g.h["week1"] = "week1"; _g.h["week2"] = "week2"; _g.h["week3"] = "week3"; _g.h["week4"] = "week4"; _g.h["week5"] = "week5"; _g.h["week6"] = "week6"; _g.h["week7"] = "week7"; _g.h["weekend1"] = "weekend1"; var loadedModList2 = polymod_Polymod.getDefaultIgnoreList(); var loadedModList3 = funkin_modding_PolymodHandler.buildParseRules(); var loadedModList4 = polymod_Polymod.init({ modRoot : funkin_modding_PolymodHandler.MOD_FOLDER, dirs : ids, framework : polymod_Framework.OPENFL, apiVersionRule : loadedModList, errorCallback : funkin_modding_PolymodErrorHandler.onPolymodError, customFilesystem : loadedModList1, frameworkParams : { assetLibraryPaths : _g, coreAssetRedirect : funkin_modding_PolymodHandler.CORE_FOLDER}, ignoredFiles : loadedModList2, parseRules : loadedModList3, useScriptedClasses : true, loadScriptsAsync : true}); if(loadedModList4 == null) { haxe_Log.trace("An error occurred! Failed when loading mods!",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 158, className : "funkin.modding.PolymodHandler", methodName : "loadModsById"}); } else if(loadedModList4.length == 0) { haxe_Log.trace("Mod loading complete. We loaded no mods / " + ids.length + " mods.",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 164, className : "funkin.modding.PolymodHandler", methodName : "loadModsById"}); } else { haxe_Log.trace("Mod loading complete. We loaded " + loadedModList4.length + " / " + ids.length + " mods.",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 168, className : "funkin.modding.PolymodHandler", methodName : "loadModsById"}); } funkin_modding_PolymodHandler.loadedModIds = []; var _g = 0; while(_g < loadedModList4.length) { var mod = loadedModList4[_g]; ++_g; haxe_Log.trace(" * " + mod.title + " v" + (mod.modVersion == null ? "null" : thx_semver_Version.toString(mod.modVersion)) + " [" + mod.id + "]",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 175, className : "funkin.modding.PolymodHandler", methodName : "loadModsById"}); funkin_modding_PolymodHandler.loadedModIds.push(mod.id); } }; funkin_modding_PolymodHandler.buildFileSystem = function() { polymod_Polymod.onError = funkin_modding_PolymodErrorHandler.onPolymodError; return new polymod_fs_MemoryZipFileSystem({ modRoot : funkin_modding_PolymodHandler.MOD_FOLDER, autoScan : true}); }; funkin_modding_PolymodHandler.buildImports = function() { polymod_Polymod.addImportAlias("flixel.math.FlxPoint",flixel_math_FlxBasePoint); polymod_Polymod.blacklistImport("Sys"); polymod_Polymod.blacklistImport("Reflect"); polymod_Polymod.blacklistImport("Type"); polymod_Polymod.blacklistImport("cpp.Lib"); var _g_head = funkin_util_macro_CompiledClassList.get("package~polymod~recursive").h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var cls = val; if(cls == null) { continue; } var className = cls.__name__; polymod_Polymod.blacklistImport(className); } var _g_head = funkin_util_macro_CompiledClassList.get("package~sys~recursive").h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var cls = val; if(cls == null) { continue; } var className = cls.__name__; polymod_Polymod.blacklistImport(className); } }; funkin_modding_PolymodHandler.buildParseRules = function() { var output = polymod_format_ParseRules.getDefault(); output.addType("txt",polymod_format_TextFileFormat.LINES); output.addType("hscript",polymod_format_TextFileFormat.PLAINTEXT); output.addType("hxs",polymod_format_TextFileFormat.PLAINTEXT); output.addType("hxc",polymod_format_TextFileFormat.PLAINTEXT); output.addType("hx",polymod_format_TextFileFormat.PLAINTEXT); return output; }; funkin_modding_PolymodHandler.buildFrameworkParams = function() { var _g = new haxe_ds_StringMap(); _g.h["default"] = "preload"; _g.h["shared"] = "shared"; _g.h["songs"] = "songs"; _g.h["videos"] = "videos"; _g.h["tutorial"] = "tutorial"; _g.h["week1"] = "week1"; _g.h["week2"] = "week2"; _g.h["week3"] = "week3"; _g.h["week4"] = "week4"; _g.h["week5"] = "week5"; _g.h["week6"] = "week6"; _g.h["week7"] = "week7"; _g.h["weekend1"] = "weekend1"; return { assetLibraryPaths : _g, coreAssetRedirect : funkin_modding_PolymodHandler.CORE_FOLDER}; }; funkin_modding_PolymodHandler.getAllMods = function() { haxe_Log.trace("Scanning the mods folder...",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 304, className : "funkin.modding.PolymodHandler", methodName : "getAllMods"}); if(funkin_modding_PolymodHandler.modFileSystem == null) { funkin_modding_PolymodHandler.modFileSystem = funkin_modding_PolymodHandler.buildFileSystem(); } var modMetadata = polymod_Polymod.scan({ modRoot : funkin_modding_PolymodHandler.MOD_FOLDER, apiVersionRule : thx_semver_VersionRule.stringToVersionRule(funkin_modding_PolymodHandler.API_VERSION), fileSystem : funkin_modding_PolymodHandler.modFileSystem, errorCallback : funkin_modding_PolymodErrorHandler.onPolymodError}); haxe_Log.trace("Found " + modMetadata.length + " mods when scanning.",{ fileName : "source/funkin/modding/PolymodHandler.hx", lineNumber : 315, className : "funkin.modding.PolymodHandler", methodName : "getAllMods"}); return modMetadata; }; funkin_modding_PolymodHandler.getAllModIds = function() { var _g = []; var _g1 = 0; var _g2 = funkin_modding_PolymodHandler.getAllMods(); while(_g1 < _g2.length) { var i = _g2[_g1]; ++_g1; _g.push(i.id); } var modIds = _g; return modIds; }; funkin_modding_PolymodHandler.getEnabledMods = function() { var modIds = funkin_save_Save.get_instance().get_enabledModIds(); var modMetadata = funkin_modding_PolymodHandler.getAllMods(); var enabledMods = []; var _g = 0; while(_g < modMetadata.length) { var item = modMetadata[_g]; ++_g; if(modIds.indexOf(item.id) != -1) { enabledMods.push(item); } } return enabledMods; }; funkin_modding_PolymodHandler.forceReloadAssets = function() { funkin_modding_module_ModuleHandler.clearModuleCache(); polymod_Polymod.clearScripts(); funkin_modding_PolymodHandler.loadAllMods(); polymod_Polymod.registerAllScriptClasses(); funkin_data_song_SongRegistry.get_instance().loadEntries(); funkin_data_story_level_LevelRegistry.get_instance().loadEntries(); funkin_data_notestyle_NoteStyleRegistry.get_instance().loadEntries(); funkin_data_event_SongEventRegistry.loadEventCache(); funkin_data_dialogue_conversation_ConversationRegistry.get_instance().loadEntries(); funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.get_instance().loadEntries(); funkin_data_dialogue_speaker_SpeakerRegistry.get_instance().loadEntries(); funkin_data_freeplay_album_AlbumRegistry.instance.loadEntries(); funkin_data_stage_StageRegistry.get_instance().loadEntries(); funkin_play_character_CharacterDataParser.loadCharacterCache(); funkin_modding_module_ModuleHandler.loadModuleCache(); }; var polymod_hscript_HScriptedClass = function() { }; $hxClasses["polymod.hscript.HScriptedClass"] = polymod_hscript_HScriptedClass; polymod_hscript_HScriptedClass.__name__ = "polymod.hscript.HScriptedClass"; polymod_hscript_HScriptedClass.__isInterface__ = true; var funkin_modding_base_ScriptedFlxAtlasSprite = function(x,y,path,settings) { funkin_graphics_adobeanimate_FlxAtlasSprite.call(this,x,y,path,settings); }; $hxClasses["funkin.modding.base.ScriptedFlxAtlasSprite"] = funkin_modding_base_ScriptedFlxAtlasSprite; funkin_modding_base_ScriptedFlxAtlasSprite.__name__ = "funkin.modding.base.ScriptedFlxAtlasSprite"; funkin_modding_base_ScriptedFlxAtlasSprite.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxAtlasSprite.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.graphics.adobeanimate.FlxAtlasSprite"); }; funkin_modding_base_ScriptedFlxAtlasSprite.init = function(clsName,x,y,path,settings) { var value = $hxClasses["funkin.modding.base.ScriptedFlxAtlasSprite"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.graphics.adobeanimate.FlxAtlasSprite"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[x,y,path,settings]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxAtlasSprite" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxAtlasSprite.__super__ = funkin_graphics_adobeanimate_FlxAtlasSprite; funkin_modding_base_ScriptedFlxAtlasSprite.prototype = $extend(funkin_graphics_adobeanimate_FlxAtlasSprite.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxAtlasSprite"; var superName = "FlxAtlasSprite"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.update.call(this,elapsed); } } ,stopAnimation: function() { var fieldName = "stopAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.stopAnimation.call(this); } } ,playAnimation: function(id,restart,ignoreOther,loop) { if(loop == null) { loop = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[id,restart,ignoreOther,loop]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.playAnimation.call(this,id,restart,ignoreOther,loop); } } ,listAnimations: function() { var fieldName = "listAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.listAnimations.call(this); } } ,isLoopFinished: function() { var fieldName = "isLoopFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isLoopFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.hasAnimation.call(this,id); } } ,goToFrameLabel: function(label) { var fieldName = "goToFrameLabel"; if(this._asc != null) { this._asc.callFunction(fieldName,[label]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.goToFrameLabel.call(this,label); } } ,goToFrameIndex: function(index) { var fieldName = "goToFrameIndex"; if(this._asc != null) { this._asc.callFunction(fieldName,[index]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.goToFrameIndex.call(this,index); } } ,getNextFrameLabel: function(label) { var fieldName = "getNextFrameLabel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[label]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getNextFrameLabel.call(this,label); } } ,getLabelIndex: function(label) { var fieldName = "getLabelIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[label]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getLabelIndex.call(this,label); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getCurrentAnimation.call(this); } } ,cleanupAnimation: function(_) { var fieldName = "cleanupAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[_]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.cleanupAnimation.call(this,_); } } ,addFrameCallback: function(label,callback) { var fieldName = "addFrameCallback"; if(this._asc != null) { this._asc.callFunction(fieldName,[label,callback]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.addFrameCallback.call(this,label,callback); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.update.call(this,elapsed); } ,__super_stopAnimation: function() { var fieldName = "stopAnimation"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.stopAnimation.call(this); } ,__super_playAnimation: function(id,restart,ignoreOther,loop) { if(loop == null) { loop = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.playAnimation.call(this,id,restart,ignoreOther,loop); } ,__super_listAnimations: function() { var fieldName = "listAnimations"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.listAnimations.call(this); } ,__super_isLoopFinished: function() { var fieldName = "isLoopFinished"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isLoopFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.hasAnimation.call(this,id); } ,__super_goToFrameLabel: function(label) { var fieldName = "goToFrameLabel"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.goToFrameLabel.call(this,label); } ,__super_goToFrameIndex: function(index) { var fieldName = "goToFrameIndex"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.goToFrameIndex.call(this,index); } ,__super_getNextFrameLabel: function(label) { var fieldName = "getNextFrameLabel"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getNextFrameLabel.call(this,label); } ,__super_getLabelIndex: function(label) { var fieldName = "getLabelIndex"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getLabelIndex.call(this,label); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getCurrentAnimation.call(this); } ,__super_cleanupAnimation: function(_) { var fieldName = "cleanupAnimation"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.cleanupAnimation.call(this,_); } ,__super_addFrameCallback: function(label,callback) { var fieldName = "addFrameCallback"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.addFrameCallback.call(this,label,callback); } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateAnimation.call(this,elapsed); } } ,set_showPivot: function(v) { var fieldName = "set_showPivot"; if(this._asc != null) { return this._asc.callFunction(fieldName,[v]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_showPivot.call(this,v); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_flipX.call(this,Value); } } ,setTheSettings: function(Settings) { var fieldName = "setTheSettings"; if(this._asc != null) { this._asc.callFunction(fieldName,[Settings]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setTheSettings.call(this,Settings); } } ,setButtonPack: function(button,callbacks,sound) { var fieldName = "setButtonPack"; if(this._asc != null) { this._asc.callFunction(fieldName,[button,callbacks,sound]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setButtonPack.call(this,button,callbacks,sound); } } ,setButtonFrames: function(frame) { var fieldName = "setButtonFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[frame]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setButtonFrames.call(this,frame); } } ,parseElement: function(instance,curFrame,m,colorFilter,mainSymbol) { if(mainSymbol == null) { mainSymbol = false; } var fieldName = "parseElement"; if(this._asc != null) { this._asc.callFunction(fieldName,[instance,curFrame,m,colorFilter,mainSymbol]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.parseElement.call(this,instance,curFrame,m,colorFilter,mainSymbol); } } ,loadAtlas: function(Path) { var fieldName = "loadAtlas"; if(this._asc != null) { this._asc.callFunction(fieldName,[Path]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadAtlas.call(this,Path); } } ,limbOnScreen: function(limb,m,Camera) { var fieldName = "limbOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[limb,m,Camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.limbOnScreen.call(this,limb,m,Camera); } } ,drawLimb: function(limb,_matrix,colorTransform) { var fieldName = "drawLimb"; if(this._asc != null) { this._asc.callFunction(fieldName,[limb,_matrix,colorTransform]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawLimb.call(this,limb,_matrix,colorTransform); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.destroy.call(this); } } ,atlasSetting: function(Path) { var fieldName = "atlasSetting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Path]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.atlasSetting.call(this,Path); } } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateAnimation.call(this,elapsed); } ,__super_set_showPivot: function(v) { var fieldName = "set_showPivot"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_showPivot.call(this,v); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_flipX.call(this,Value); } ,__super_setTheSettings: function(Settings) { var fieldName = "setTheSettings"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setTheSettings.call(this,Settings); } ,__super_setButtonPack: function(button,callbacks,sound) { var fieldName = "setButtonPack"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setButtonPack.call(this,button,callbacks,sound); } ,__super_setButtonFrames: function(frame) { var fieldName = "setButtonFrames"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setButtonFrames.call(this,frame); } ,__super_parseElement: function(instance,curFrame,m,colorFilter,mainSymbol) { if(mainSymbol == null) { mainSymbol = false; } var fieldName = "parseElement"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.parseElement.call(this,instance,curFrame,m,colorFilter,mainSymbol); } ,__super_loadAtlas: function(Path) { var fieldName = "loadAtlas"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadAtlas.call(this,Path); } ,__super_limbOnScreen: function(limb,m,Camera) { var fieldName = "limbOnScreen"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.limbOnScreen.call(this,limb,m,Camera); } ,__super_drawLimb: function(limb,_matrix,colorTransform) { var fieldName = "drawLimb"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawLimb.call(this,limb,_matrix,colorTransform); } ,__super_draw: function() { var fieldName = "draw"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.destroy.call(this); } ,__super_atlasSetting: function(Path) { var fieldName = "atlasSetting"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.atlasSetting.call(this,Path); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateColorTransform.call(this); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_frame.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawComplex.call(this,camera); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.clone.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateColorTransform.call(this); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_frame.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.drawComplex.call(this,camera); } ,__super_clone: function() { var fieldName = "clone"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.clone.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateMotion.call(this,elapsed); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_x.call(this,value); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.toString.call(this); } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_x.call(this,value); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxAtlasSprite }); var funkin_modding_base_ScriptedFlxRuntimeShader = function(fragmentSource,vertexSource,glslVersion) { flixel_addons_display_FlxRuntimeShader.call(this,fragmentSource,vertexSource,glslVersion); }; $hxClasses["funkin.modding.base.ScriptedFlxRuntimeShader"] = funkin_modding_base_ScriptedFlxRuntimeShader; funkin_modding_base_ScriptedFlxRuntimeShader.__name__ = "funkin.modding.base.ScriptedFlxRuntimeShader"; funkin_modding_base_ScriptedFlxRuntimeShader.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxRuntimeShader.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.addons.display.FlxRuntimeShader"); }; funkin_modding_base_ScriptedFlxRuntimeShader.init = function(clsName,fragmentSource,vertexSource,glslVersion) { var value = $hxClasses["funkin.modding.base.ScriptedFlxRuntimeShader"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.addons.display.FlxRuntimeShader"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[fragmentSource,vertexSource,glslVersion]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxRuntimeShader" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxRuntimeShader.__super__ = flixel_addons_display_FlxRuntimeShader; funkin_modding_base_ScriptedFlxRuntimeShader.prototype = $extend(flixel_addons_display_FlxRuntimeShader.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxRuntimeShader"; var superName = "FlxRuntimeShader"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,setIntArray: function(name,value) { var fieldName = "setIntArray"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setIntArray.call(this,name,value); } } ,setInt: function(name,value) { var fieldName = "setInt"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setInt.call(this,name,value); } } ,setFloatArray: function(name,value) { var fieldName = "setFloatArray"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setFloatArray.call(this,name,value); } } ,setFloat: function(name,value) { var fieldName = "setFloat"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setFloat.call(this,name,value); } } ,setBoolArray: function(name,value) { var fieldName = "setBoolArray"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setBoolArray.call(this,name,value); } } ,setBool: function(name,value) { var fieldName = "setBool"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setBool.call(this,name,value); } } ,setBitmapData: function(name,value) { var fieldName = "setBitmapData"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,value]); } else { flixel_addons_display_FlxRuntimeShader.prototype.setBitmapData.call(this,name,value); } } ,getIntArray: function(name) { var fieldName = "getIntArray"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getIntArray.call(this,name); } } ,getInt: function(name) { var fieldName = "getInt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getInt.call(this,name); } } ,getFloatArray: function(name) { var fieldName = "getFloatArray"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getFloatArray.call(this,name); } } ,getFloat: function(name) { var fieldName = "getFloat"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getFloat.call(this,name); } } ,getBoolArray: function(name) { var fieldName = "getBoolArray"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getBoolArray.call(this,name); } } ,getBool: function(name) { var fieldName = "getBool"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getBool.call(this,name); } } ,getBitmapData: function(name) { var fieldName = "getBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.getBitmapData.call(this,name); } } ,__super_toString: function() { var fieldName = "toString"; return flixel_addons_display_FlxRuntimeShader.prototype.toString.call(this); } ,__super_setIntArray: function(name,value) { var fieldName = "setIntArray"; flixel_addons_display_FlxRuntimeShader.prototype.setIntArray.call(this,name,value); } ,__super_setInt: function(name,value) { var fieldName = "setInt"; flixel_addons_display_FlxRuntimeShader.prototype.setInt.call(this,name,value); } ,__super_setFloatArray: function(name,value) { var fieldName = "setFloatArray"; flixel_addons_display_FlxRuntimeShader.prototype.setFloatArray.call(this,name,value); } ,__super_setFloat: function(name,value) { var fieldName = "setFloat"; flixel_addons_display_FlxRuntimeShader.prototype.setFloat.call(this,name,value); } ,__super_setBoolArray: function(name,value) { var fieldName = "setBoolArray"; flixel_addons_display_FlxRuntimeShader.prototype.setBoolArray.call(this,name,value); } ,__super_setBool: function(name,value) { var fieldName = "setBool"; flixel_addons_display_FlxRuntimeShader.prototype.setBool.call(this,name,value); } ,__super_setBitmapData: function(name,value) { var fieldName = "setBitmapData"; flixel_addons_display_FlxRuntimeShader.prototype.setBitmapData.call(this,name,value); } ,__super_getIntArray: function(name) { var fieldName = "getIntArray"; return flixel_addons_display_FlxRuntimeShader.prototype.getIntArray.call(this,name); } ,__super_getInt: function(name) { var fieldName = "getInt"; return flixel_addons_display_FlxRuntimeShader.prototype.getInt.call(this,name); } ,__super_getFloatArray: function(name) { var fieldName = "getFloatArray"; return flixel_addons_display_FlxRuntimeShader.prototype.getFloatArray.call(this,name); } ,__super_getFloat: function(name) { var fieldName = "getFloat"; return flixel_addons_display_FlxRuntimeShader.prototype.getFloat.call(this,name); } ,__super_getBoolArray: function(name) { var fieldName = "getBoolArray"; return flixel_addons_display_FlxRuntimeShader.prototype.getBoolArray.call(this,name); } ,__super_getBool: function(name) { var fieldName = "getBool"; return flixel_addons_display_FlxRuntimeShader.prototype.getBool.call(this,name); } ,__super_getBitmapData: function(name) { var fieldName = "getBitmapData"; return flixel_addons_display_FlxRuntimeShader.prototype.getBitmapData.call(this,name); } ,__super___processVertexSource: function(input) { var fieldName = "__processVertexSource"; return flixel_addons_display_FlxRuntimeShader.prototype.__processVertexSource.call(this,input); } ,__super___processFragmentSource: function(input) { var fieldName = "__processFragmentSource"; return flixel_addons_display_FlxRuntimeShader.prototype.__processFragmentSource.call(this,input); } ,__processVertexSource: function(input) { var fieldName = "__processVertexSource"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.__processVertexSource.call(this,input); } } ,__processFragmentSource: function(input) { var fieldName = "__processFragmentSource"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.__processFragmentSource.call(this,input); } } ,thisHasField: function(name) { var fieldName = "thisHasField"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.thisHasField.call(this,name); } } ,set_glVertexSource: function(value) { var fieldName = "set_glVertexSource"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.set_glVertexSource.call(this,value); } } ,set_glVertexExtensions: function(value) { var fieldName = "set_glVertexExtensions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.set_glVertexExtensions.call(this,value); } } ,set_glVersion: function(value) { var fieldName = "set_glVersion"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.set_glVersion.call(this,value); } } ,set_glFragmentSource: function(value) { var fieldName = "set_glFragmentSource"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.set_glFragmentSource.call(this,value); } } ,set_glFragmentExtensions: function(value) { var fieldName = "set_glFragmentExtensions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.set_glFragmentExtensions.call(this,value); } } ,set_data: function(value) { var fieldName = "set_data"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.set_data.call(this,value); } } ,get_glVertexSourceRaw: function() { var fieldName = "get_glVertexSourceRaw"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexSourceRaw.call(this); } } ,get_glVertexSource: function() { var fieldName = "get_glVertexSource"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexSource.call(this); } } ,get_glVertexHeaderRaw: function() { var fieldName = "get_glVertexHeaderRaw"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexHeaderRaw.call(this); } } ,get_glVertexExtensions: function() { var fieldName = "get_glVertexExtensions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexExtensions.call(this); } } ,get_glVertexBodyRaw: function() { var fieldName = "get_glVertexBodyRaw"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexBodyRaw.call(this); } } ,get_glVersion: function() { var fieldName = "get_glVersion"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glVersion.call(this); } } ,get_glFragmentSourceRaw: function() { var fieldName = "get_glFragmentSourceRaw"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentSourceRaw.call(this); } } ,get_glFragmentSource: function() { var fieldName = "get_glFragmentSource"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentSource.call(this); } } ,get_glFragmentHeaderRaw: function() { var fieldName = "get_glFragmentHeaderRaw"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentHeaderRaw.call(this); } } ,get_glFragmentExtensions: function() { var fieldName = "get_glFragmentExtensions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentExtensions.call(this); } } ,get_glFragmentBodyRaw: function() { var fieldName = "get_glFragmentBodyRaw"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentBodyRaw.call(this); } } ,get_data: function() { var fieldName = "get_data"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.get_data.call(this); } } ,__updateGLFromBuffer: function(shaderBuffer,bufferOffset) { var fieldName = "__updateGLFromBuffer"; if(this._asc != null) { this._asc.callFunction(fieldName,[shaderBuffer,bufferOffset]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__updateGLFromBuffer.call(this,shaderBuffer,bufferOffset); } } ,__updateGL: function() { var fieldName = "__updateGL"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__updateGL.call(this); } } ,__updateFromBuffer: function(shaderBuffer,bufferOffset) { var fieldName = "__updateFromBuffer"; if(this._asc != null) { this._asc.callFunction(fieldName,[shaderBuffer,bufferOffset]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__updateFromBuffer.call(this,shaderBuffer,bufferOffset); } } ,__update: function() { var fieldName = "__update"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__update.call(this); } } ,__super_thisHasField: function(name) { var fieldName = "thisHasField"; return flixel_addons_display_FlxRuntimeShader.prototype.thisHasField.call(this,name); } ,__super_set_glVertexSource: function(value) { var fieldName = "set_glVertexSource"; return flixel_addons_display_FlxRuntimeShader.prototype.set_glVertexSource.call(this,value); } ,__super_set_glVertexExtensions: function(value) { var fieldName = "set_glVertexExtensions"; return flixel_addons_display_FlxRuntimeShader.prototype.set_glVertexExtensions.call(this,value); } ,__super_set_glVersion: function(value) { var fieldName = "set_glVersion"; return flixel_addons_display_FlxRuntimeShader.prototype.set_glVersion.call(this,value); } ,__super_set_glFragmentSource: function(value) { var fieldName = "set_glFragmentSource"; return flixel_addons_display_FlxRuntimeShader.prototype.set_glFragmentSource.call(this,value); } ,__super_set_glFragmentExtensions: function(value) { var fieldName = "set_glFragmentExtensions"; return flixel_addons_display_FlxRuntimeShader.prototype.set_glFragmentExtensions.call(this,value); } ,__super_set_data: function(value) { var fieldName = "set_data"; return flixel_addons_display_FlxRuntimeShader.prototype.set_data.call(this,value); } ,__super_get_glVertexSourceRaw: function() { var fieldName = "get_glVertexSourceRaw"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexSourceRaw.call(this); } ,__super_get_glVertexSource: function() { var fieldName = "get_glVertexSource"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexSource.call(this); } ,__super_get_glVertexHeaderRaw: function() { var fieldName = "get_glVertexHeaderRaw"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexHeaderRaw.call(this); } ,__super_get_glVertexExtensions: function() { var fieldName = "get_glVertexExtensions"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexExtensions.call(this); } ,__super_get_glVertexBodyRaw: function() { var fieldName = "get_glVertexBodyRaw"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glVertexBodyRaw.call(this); } ,__super_get_glVersion: function() { var fieldName = "get_glVersion"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glVersion.call(this); } ,__super_get_glFragmentSourceRaw: function() { var fieldName = "get_glFragmentSourceRaw"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentSourceRaw.call(this); } ,__super_get_glFragmentSource: function() { var fieldName = "get_glFragmentSource"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentSource.call(this); } ,__super_get_glFragmentHeaderRaw: function() { var fieldName = "get_glFragmentHeaderRaw"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentHeaderRaw.call(this); } ,__super_get_glFragmentExtensions: function() { var fieldName = "get_glFragmentExtensions"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentExtensions.call(this); } ,__super_get_glFragmentBodyRaw: function() { var fieldName = "get_glFragmentBodyRaw"; return flixel_addons_display_FlxRuntimeShader.prototype.get_glFragmentBodyRaw.call(this); } ,__super_get_data: function() { var fieldName = "get_data"; return flixel_addons_display_FlxRuntimeShader.prototype.get_data.call(this); } ,__super___updateGLFromBuffer: function(shaderBuffer,bufferOffset) { var fieldName = "__updateGLFromBuffer"; flixel_addons_display_FlxRuntimeShader.prototype.__updateGLFromBuffer.call(this,shaderBuffer,bufferOffset); } ,__super___updateGL: function() { var fieldName = "__updateGL"; flixel_addons_display_FlxRuntimeShader.prototype.__updateGL.call(this); } ,__super___updateFromBuffer: function(shaderBuffer,bufferOffset) { var fieldName = "__updateFromBuffer"; flixel_addons_display_FlxRuntimeShader.prototype.__updateFromBuffer.call(this,shaderBuffer,bufferOffset); } ,__super___update: function() { var fieldName = "__update"; flixel_addons_display_FlxRuntimeShader.prototype.__update.call(this); } ,__super___processGLData: function(source,storageType) { var fieldName = "__processGLData"; flixel_addons_display_FlxRuntimeShader.prototype.__processGLData.call(this,source,storageType); } ,__super___initGL: function() { var fieldName = "__initGL"; flixel_addons_display_FlxRuntimeShader.prototype.__initGL.call(this); } ,__super___init: function() { var fieldName = "__init"; flixel_addons_display_FlxRuntimeShader.prototype.__init.call(this); } ,__super___enableGL: function() { var fieldName = "__enableGL"; flixel_addons_display_FlxRuntimeShader.prototype.__enableGL.call(this); } ,__super___enable: function() { var fieldName = "__enable"; flixel_addons_display_FlxRuntimeShader.prototype.__enable.call(this); } ,__super___disableGL: function() { var fieldName = "__disableGL"; flixel_addons_display_FlxRuntimeShader.prototype.__disableGL.call(this); } ,__super___disable: function() { var fieldName = "__disable"; flixel_addons_display_FlxRuntimeShader.prototype.__disable.call(this); } ,__super___createGLShader: function(source,type) { var fieldName = "__createGLShader"; return flixel_addons_display_FlxRuntimeShader.prototype.__createGLShader.call(this,source,type); } ,__super___createGLProgram: function(vertexSource,fragmentSource) { var fieldName = "__createGLProgram"; return flixel_addons_display_FlxRuntimeShader.prototype.__createGLProgram.call(this,vertexSource,fragmentSource); } ,__super___clearUseArray: function() { var fieldName = "__clearUseArray"; flixel_addons_display_FlxRuntimeShader.prototype.__clearUseArray.call(this); } ,__super___buildSourcePrefix: function(isFragment) { var fieldName = "__buildSourcePrefix"; return flixel_addons_display_FlxRuntimeShader.prototype.__buildSourcePrefix.call(this,isFragment); } ,__processGLData: function(source,storageType) { var fieldName = "__processGLData"; if(this._asc != null) { this._asc.callFunction(fieldName,[source,storageType]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__processGLData.call(this,source,storageType); } } ,__initGL: function() { var fieldName = "__initGL"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__initGL.call(this); } } ,__init: function() { var fieldName = "__init"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__init.call(this); } } ,__enableGL: function() { var fieldName = "__enableGL"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__enableGL.call(this); } } ,__enable: function() { var fieldName = "__enable"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__enable.call(this); } } ,__disableGL: function() { var fieldName = "__disableGL"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__disableGL.call(this); } } ,__disable: function() { var fieldName = "__disable"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__disable.call(this); } } ,__createGLShader: function(source,type) { var fieldName = "__createGLShader"; if(this._asc != null) { return this._asc.callFunction(fieldName,[source,type]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.__createGLShader.call(this,source,type); } } ,__createGLProgram: function(vertexSource,fragmentSource) { var fieldName = "__createGLProgram"; if(this._asc != null) { return this._asc.callFunction(fieldName,[vertexSource,fragmentSource]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.__createGLProgram.call(this,vertexSource,fragmentSource); } } ,__clearUseArray: function() { var fieldName = "__clearUseArray"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_display_FlxRuntimeShader.prototype.__clearUseArray.call(this); } } ,__buildSourcePrefix: function(isFragment) { var fieldName = "__buildSourcePrefix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[isFragment]); } else { return flixel_addons_display_FlxRuntimeShader.prototype.__buildSourcePrefix.call(this,isFragment); } } ,__class__: funkin_modding_base_ScriptedFlxRuntimeShader }); var funkin_modding_base_ScriptedFlxSprite = function(X,Y,SimpleGraphic) { flixel_FlxSprite.call(this,X,Y,SimpleGraphic); }; $hxClasses["funkin.modding.base.ScriptedFlxSprite"] = funkin_modding_base_ScriptedFlxSprite; funkin_modding_base_ScriptedFlxSprite.__name__ = "funkin.modding.base.ScriptedFlxSprite"; funkin_modding_base_ScriptedFlxSprite.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxSprite.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.FlxSprite"); }; funkin_modding_base_ScriptedFlxSprite.init = function(clsName,X,Y,SimpleGraphic) { var value = $hxClasses["funkin.modding.base.ScriptedFlxSprite"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.FlxSprite"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[X,Y,SimpleGraphic]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxSprite" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxSprite.__super__ = flixel_FlxSprite; funkin_modding_base_ScriptedFlxSprite.prototype = $extend(flixel_FlxSprite.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxSprite"; var superName = "FlxSprite"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxSprite.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxSprite.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return flixel_FlxSprite.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return flixel_FlxSprite.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return flixel_FlxSprite.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { flixel_FlxSprite.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return flixel_FlxSprite.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return flixel_FlxSprite.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return flixel_FlxSprite.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return flixel_FlxSprite.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return flixel_FlxSprite.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return flixel_FlxSprite.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { flixel_FlxSprite.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return flixel_FlxSprite.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { flixel_FlxSprite.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return flixel_FlxSprite.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return flixel_FlxSprite.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return flixel_FlxSprite.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return flixel_FlxSprite.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return flixel_FlxSprite.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return flixel_FlxSprite.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return flixel_FlxSprite.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_FlxSprite.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_FlxSprite.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_FlxSprite.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return flixel_FlxSprite.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return flixel_FlxSprite.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return flixel_FlxSprite.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return flixel_FlxSprite.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return flixel_FlxSprite.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { flixel_FlxSprite.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { flixel_FlxSprite.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { flixel_FlxSprite.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.clone.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { flixel_FlxSprite.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { flixel_FlxSprite.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; flixel_FlxSprite.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return flixel_FlxSprite.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; flixel_FlxSprite.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; flixel_FlxSprite.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; flixel_FlxSprite.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return flixel_FlxSprite.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return flixel_FlxSprite.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return flixel_FlxSprite.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; flixel_FlxSprite.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return flixel_FlxSprite.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return flixel_FlxSprite.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return flixel_FlxSprite.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return flixel_FlxSprite.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return flixel_FlxSprite.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return flixel_FlxSprite.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return flixel_FlxSprite.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return flixel_FlxSprite.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return flixel_FlxSprite.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return flixel_FlxSprite.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return flixel_FlxSprite.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return flixel_FlxSprite.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return flixel_FlxSprite.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return flixel_FlxSprite.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; flixel_FlxSprite.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return flixel_FlxSprite.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; flixel_FlxSprite.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; flixel_FlxSprite.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return flixel_FlxSprite.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return flixel_FlxSprite.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return flixel_FlxSprite.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return flixel_FlxSprite.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return flixel_FlxSprite.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return flixel_FlxSprite.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return flixel_FlxSprite.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return flixel_FlxSprite.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return flixel_FlxSprite.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return flixel_FlxSprite.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; flixel_FlxSprite.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; flixel_FlxSprite.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return flixel_FlxSprite.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return flixel_FlxSprite.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return flixel_FlxSprite.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return flixel_FlxSprite.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return flixel_FlxSprite.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return flixel_FlxSprite.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return flixel_FlxSprite.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; flixel_FlxSprite.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; flixel_FlxSprite.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; flixel_FlxSprite.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; flixel_FlxSprite.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; flixel_FlxSprite.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return flixel_FlxSprite.prototype.clone.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; flixel_FlxSprite.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; flixel_FlxSprite.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; flixel_FlxSprite.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxSprite.prototype.updateMotion.call(this,elapsed); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_x.call(this,value); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return flixel_FlxSprite.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_FlxSprite.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { flixel_FlxSprite.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { flixel_FlxSprite.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { flixel_FlxSprite.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return flixel_FlxSprite.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return flixel_FlxSprite.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return flixel_FlxSprite.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_FlxSprite.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { flixel_FlxSprite.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return flixel_FlxSprite.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return flixel_FlxSprite.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return flixel_FlxSprite.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return flixel_FlxSprite.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_FlxSprite.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; flixel_FlxSprite.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return flixel_FlxSprite.prototype.toString.call(this); } ,__super_set_y: function(value) { var fieldName = "set_y"; return flixel_FlxSprite.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return flixel_FlxSprite.prototype.set_x.call(this,value); } ,__super_set_width: function(value) { var fieldName = "set_width"; return flixel_FlxSprite.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return flixel_FlxSprite.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return flixel_FlxSprite.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return flixel_FlxSprite.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return flixel_FlxSprite.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return flixel_FlxSprite.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return flixel_FlxSprite.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return flixel_FlxSprite.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return flixel_FlxSprite.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; flixel_FlxSprite.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; flixel_FlxSprite.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; flixel_FlxSprite.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return flixel_FlxSprite.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return flixel_FlxSprite.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return flixel_FlxSprite.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return flixel_FlxSprite.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; flixel_FlxSprite.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return flixel_FlxSprite.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return flixel_FlxSprite.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return flixel_FlxSprite.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return flixel_FlxSprite.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return flixel_FlxSprite.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return flixel_FlxSprite.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return flixel_FlxSprite.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return flixel_FlxSprite.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSprite.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSprite.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSprite.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return flixel_FlxSprite.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return flixel_FlxSprite.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return flixel_FlxSprite.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return flixel_FlxSprite.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return flixel_FlxSprite.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return flixel_FlxSprite.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; flixel_FlxSprite.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; flixel_FlxSprite.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return flixel_FlxSprite.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return flixel_FlxSprite.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxSprite }); var funkin_modding_base_ScriptedFlxSpriteGroup = function(X,Y,MaxSize) { flixel_group_FlxTypedSpriteGroup.call(this,X,Y,MaxSize); }; $hxClasses["funkin.modding.base.ScriptedFlxSpriteGroup"] = funkin_modding_base_ScriptedFlxSpriteGroup; funkin_modding_base_ScriptedFlxSpriteGroup.__name__ = "funkin.modding.base.ScriptedFlxSpriteGroup"; funkin_modding_base_ScriptedFlxSpriteGroup.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxSpriteGroup.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.group.FlxTypedSpriteGroup"); }; funkin_modding_base_ScriptedFlxSpriteGroup.init = function(clsName,X,Y,MaxSize) { var value = $hxClasses["funkin.modding.base.ScriptedFlxSpriteGroup"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.group.FlxTypedSpriteGroup"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[X,Y,MaxSize]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxSpriteGroup" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxSpriteGroup.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_modding_base_ScriptedFlxSpriteGroup.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxSpriteGroup"; var superName = "FlxTypedSpriteGroup"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } } ,set_y: function(Value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_y.call(this,Value); } } ,set_x: function(Value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_x.call(this,Value); } } ,set_width: function(Value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_width.call(this,Value); } } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_visible.call(this,Value); } } ,set_solid: function(Value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_solid.call(this,Value); } } ,set_pixels: function(Value) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_pixels.call(this,Value); } } ,set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_pixelPerfectRender.call(this,Value); } } ,set_moves: function(Value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_moves.call(this,Value); } } ,set_immovable: function(Value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_immovable.call(this,Value); } } ,set_height: function(Value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_height.call(this,Value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Value) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_facing.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_exists.call(this,Value); } } ,set_color: function(Value) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_color.call(this,Value); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_clipRect.call(this,rect); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_camera.call(this,Value); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_blend.call(this,Value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Value) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_alpha.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_active.call(this,Value); } } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { flixel_group_FlxTypedSpriteGroup.prototype.setPosition.call(this,X,Y); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.revive.call(this); } } ,reset: function(X,Y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { flixel_group_FlxTypedSpriteGroup.prototype.reset.call(this,X,Y); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite,Splice]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.remove.call(this,Sprite,Splice); } } ,preAdd: function(Sprite) { var fieldName = "preAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[Sprite]); } else { flixel_group_FlxTypedSpriteGroup.prototype.preAdd.call(this,Sprite); } } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,Mask,Camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } } ,overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,InScreenSpace,Camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Animated,Width,Height,Unique,Key]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.kill.call(this); } } ,isOnScreen: function(Camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.isOnScreen.call(this,Camera); } } ,insert: function(Position,Sprite) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Position,Sprite]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.insert.call(this,Position,Sprite); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.initVars.call(this); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_width.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_pixels.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_height.call(this); } } ,findMinYHelper: function() { var fieldName = "findMinYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMinYHelper.call(this); } } ,findMinY: function() { var fieldName = "findMinY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMinY.call(this); } } ,findMinXHelper: function() { var fieldName = "findMinXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMinXHelper.call(this); } } ,findMinX: function() { var fieldName = "findMinX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMinX.call(this); } } ,findMaxYHelper: function() { var fieldName = "findMaxYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMaxYHelper.call(this); } } ,findMaxY: function() { var fieldName = "findMaxY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMaxY.call(this); } } ,findMaxXHelper: function() { var fieldName = "findMaxXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMaxXHelper.call(this); } } ,findMaxX: function() { var fieldName = "findMaxX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.findMaxX.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.clone.call(this); } } ,add: function(Sprite) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.add.call(this,Sprite); } } ,__super_update: function(elapsed) { var fieldName = "update"; flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,__super_set_y: function(Value) { var fieldName = "set_y"; return flixel_group_FlxTypedSpriteGroup.prototype.set_y.call(this,Value); } ,__super_set_x: function(Value) { var fieldName = "set_x"; return flixel_group_FlxTypedSpriteGroup.prototype.set_x.call(this,Value); } ,__super_set_width: function(Value) { var fieldName = "set_width"; return flixel_group_FlxTypedSpriteGroup.prototype.set_width.call(this,Value); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return flixel_group_FlxTypedSpriteGroup.prototype.set_visible.call(this,Value); } ,__super_set_solid: function(Value) { var fieldName = "set_solid"; return flixel_group_FlxTypedSpriteGroup.prototype.set_solid.call(this,Value); } ,__super_set_pixels: function(Value) { var fieldName = "set_pixels"; return flixel_group_FlxTypedSpriteGroup.prototype.set_pixels.call(this,Value); } ,__super_set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; return flixel_group_FlxTypedSpriteGroup.prototype.set_pixelPerfectRender.call(this,Value); } ,__super_set_moves: function(Value) { var fieldName = "set_moves"; return flixel_group_FlxTypedSpriteGroup.prototype.set_moves.call(this,Value); } ,__super_set_immovable: function(Value) { var fieldName = "set_immovable"; return flixel_group_FlxTypedSpriteGroup.prototype.set_immovable.call(this,Value); } ,__super_set_height: function(Value) { var fieldName = "set_height"; return flixel_group_FlxTypedSpriteGroup.prototype.set_height.call(this,Value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return flixel_group_FlxTypedSpriteGroup.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return flixel_group_FlxTypedSpriteGroup.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return flixel_group_FlxTypedSpriteGroup.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return flixel_group_FlxTypedSpriteGroup.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Value) { var fieldName = "set_facing"; return flixel_group_FlxTypedSpriteGroup.prototype.set_facing.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return flixel_group_FlxTypedSpriteGroup.prototype.set_exists.call(this,Value); } ,__super_set_color: function(Value) { var fieldName = "set_color"; return flixel_group_FlxTypedSpriteGroup.prototype.set_color.call(this,Value); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return flixel_group_FlxTypedSpriteGroup.prototype.set_clipRect.call(this,rect); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return flixel_group_FlxTypedSpriteGroup.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return flixel_group_FlxTypedSpriteGroup.prototype.set_camera.call(this,Value); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return flixel_group_FlxTypedSpriteGroup.prototype.set_blend.call(this,Value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return flixel_group_FlxTypedSpriteGroup.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Value) { var fieldName = "set_alpha"; return flixel_group_FlxTypedSpriteGroup.prototype.set_alpha.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return flixel_group_FlxTypedSpriteGroup.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return flixel_group_FlxTypedSpriteGroup.prototype.set_active.call(this,Value); } ,__super_setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; flixel_group_FlxTypedSpriteGroup.prototype.setPosition.call(this,X,Y); } ,__super_revive: function() { var fieldName = "revive"; flixel_group_FlxTypedSpriteGroup.prototype.revive.call(this); } ,__super_reset: function(X,Y) { var fieldName = "reset"; flixel_group_FlxTypedSpriteGroup.prototype.reset.call(this,X,Y); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return flixel_group_FlxTypedSpriteGroup.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; return flixel_group_FlxTypedSpriteGroup.prototype.remove.call(this,Sprite,Splice); } ,__super_preAdd: function(Sprite) { var fieldName = "preAdd"; flixel_group_FlxTypedSpriteGroup.prototype.preAdd.call(this,Sprite); } ,__super_pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; return flixel_group_FlxTypedSpriteGroup.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } ,__super_overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; return flixel_group_FlxTypedSpriteGroup.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return flixel_group_FlxTypedSpriteGroup.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return flixel_group_FlxTypedSpriteGroup.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return flixel_group_FlxTypedSpriteGroup.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; return flixel_group_FlxTypedSpriteGroup.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } ,__super_kill: function() { var fieldName = "kill"; flixel_group_FlxTypedSpriteGroup.prototype.kill.call(this); } ,__super_isOnScreen: function(Camera) { var fieldName = "isOnScreen"; return flixel_group_FlxTypedSpriteGroup.prototype.isOnScreen.call(this,Camera); } ,__super_insert: function(Position,Sprite) { var fieldName = "insert"; return flixel_group_FlxTypedSpriteGroup.prototype.insert.call(this,Position,Sprite); } ,__super_initVars: function() { var fieldName = "initVars"; flixel_group_FlxTypedSpriteGroup.prototype.initVars.call(this); } ,__super_get_width: function() { var fieldName = "get_width"; return flixel_group_FlxTypedSpriteGroup.prototype.get_width.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return flixel_group_FlxTypedSpriteGroup.prototype.get_pixels.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return flixel_group_FlxTypedSpriteGroup.prototype.get_height.call(this); } ,__super_findMinYHelper: function() { var fieldName = "findMinYHelper"; return flixel_group_FlxTypedSpriteGroup.prototype.findMinYHelper.call(this); } ,__super_findMinY: function() { var fieldName = "findMinY"; return flixel_group_FlxTypedSpriteGroup.prototype.findMinY.call(this); } ,__super_findMinXHelper: function() { var fieldName = "findMinXHelper"; return flixel_group_FlxTypedSpriteGroup.prototype.findMinXHelper.call(this); } ,__super_findMinX: function() { var fieldName = "findMinX"; return flixel_group_FlxTypedSpriteGroup.prototype.findMinX.call(this); } ,__super_findMaxYHelper: function() { var fieldName = "findMaxYHelper"; return flixel_group_FlxTypedSpriteGroup.prototype.findMaxYHelper.call(this); } ,__super_findMaxY: function() { var fieldName = "findMaxY"; return flixel_group_FlxTypedSpriteGroup.prototype.findMaxY.call(this); } ,__super_findMaxXHelper: function() { var fieldName = "findMaxXHelper"; return flixel_group_FlxTypedSpriteGroup.prototype.findMaxXHelper.call(this); } ,__super_findMaxX: function() { var fieldName = "findMaxX"; return flixel_group_FlxTypedSpriteGroup.prototype.findMaxX.call(this); } ,__super_draw: function() { var fieldName = "draw"; flixel_group_FlxTypedSpriteGroup.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; flixel_group_FlxTypedSpriteGroup.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return flixel_group_FlxTypedSpriteGroup.prototype.clone.call(this); } ,__super_add: function(Sprite) { var fieldName = "add"; return flixel_group_FlxTypedSpriteGroup.prototype.add.call(this,Sprite); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.updateFramePixels.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_group_FlxTypedSpriteGroup.prototype.updateAnimation.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_useFramePixels.call(this,value); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_graphic.call(this,value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_antialiasing.call(this,value); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { flixel_group_FlxTypedSpriteGroup.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { flixel_group_FlxTypedSpriteGroup.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.isSimpleRender.call(this,camera); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.graphicLoaded.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { flixel_group_FlxTypedSpriteGroup.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { flixel_group_FlxTypedSpriteGroup.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { flixel_group_FlxTypedSpriteGroup.prototype.drawComplex.call(this,camera); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_group_FlxTypedSpriteGroup.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { flixel_group_FlxTypedSpriteGroup.prototype.centerOffsets.call(this,AdjustPosition); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; flixel_group_FlxTypedSpriteGroup.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return flixel_group_FlxTypedSpriteGroup.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; flixel_group_FlxTypedSpriteGroup.prototype.updateAnimation.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return flixel_group_FlxTypedSpriteGroup.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return flixel_group_FlxTypedSpriteGroup.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return flixel_group_FlxTypedSpriteGroup.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; var X1 = X; var Y1 = Y; } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return flixel_group_FlxTypedSpriteGroup.prototype.set_useFramePixels.call(this,value); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return flixel_group_FlxTypedSpriteGroup.prototype.set_graphic.call(this,value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return flixel_group_FlxTypedSpriteGroup.prototype.set_antialiasing.call(this,value); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; flixel_group_FlxTypedSpriteGroup.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return flixel_group_FlxTypedSpriteGroup.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; flixel_group_FlxTypedSpriteGroup.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return flixel_group_FlxTypedSpriteGroup.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return flixel_group_FlxTypedSpriteGroup.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return flixel_group_FlxTypedSpriteGroup.prototype.isSimpleRender.call(this,camera); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; flixel_group_FlxTypedSpriteGroup.prototype.graphicLoaded.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return flixel_group_FlxTypedSpriteGroup.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return flixel_group_FlxTypedSpriteGroup.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return flixel_group_FlxTypedSpriteGroup.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return flixel_group_FlxTypedSpriteGroup.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return flixel_group_FlxTypedSpriteGroup.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return flixel_group_FlxTypedSpriteGroup.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; flixel_group_FlxTypedSpriteGroup.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; flixel_group_FlxTypedSpriteGroup.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; flixel_group_FlxTypedSpriteGroup.prototype.drawComplex.call(this,camera); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; flixel_group_FlxTypedSpriteGroup.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; flixel_group_FlxTypedSpriteGroup.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; var RunOnCpp = force; } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_group_FlxTypedSpriteGroup.prototype.updateMotion.call(this,elapsed); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_path.call(this,path); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { flixel_group_FlxTypedSpriteGroup.prototype.setSize.call(this,width,height); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { flixel_group_FlxTypedSpriteGroup.prototype.hurt.call(this,damage); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; flixel_group_FlxTypedSpriteGroup.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return flixel_group_FlxTypedSpriteGroup.prototype.toString.call(this); } ,__super_set_path: function(path) { var fieldName = "set_path"; return flixel_group_FlxTypedSpriteGroup.prototype.set_path.call(this,path); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return flixel_group_FlxTypedSpriteGroup.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return flixel_group_FlxTypedSpriteGroup.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; flixel_group_FlxTypedSpriteGroup.prototype.setSize.call(this,width,height); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return flixel_group_FlxTypedSpriteGroup.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return flixel_group_FlxTypedSpriteGroup.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return flixel_group_FlxTypedSpriteGroup.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; flixel_group_FlxTypedSpriteGroup.prototype.hurt.call(this,damage); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return flixel_group_FlxTypedSpriteGroup.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return flixel_group_FlxTypedSpriteGroup.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return flixel_group_FlxTypedSpriteGroup.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return flixel_group_FlxTypedSpriteGroup.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return flixel_group_FlxTypedSpriteGroup.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return flixel_group_FlxTypedSpriteGroup.prototype.getBoundingBox.call(this,camera); } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_group_FlxTypedSpriteGroup.prototype.get_camera.call(this); } } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return flixel_group_FlxTypedSpriteGroup.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return flixel_group_FlxTypedSpriteGroup.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxSpriteGroup }); var funkin_modding_base_ScriptedFlxState = function() { flixel_FlxState.call(this); }; $hxClasses["funkin.modding.base.ScriptedFlxState"] = funkin_modding_base_ScriptedFlxState; funkin_modding_base_ScriptedFlxState.__name__ = "funkin.modding.base.ScriptedFlxState"; funkin_modding_base_ScriptedFlxState.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxState.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.FlxState"); }; funkin_modding_base_ScriptedFlxState.init = function(clsName) { var value = $hxClasses["funkin.modding.base.ScriptedFlxState"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.FlxState"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxState" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxState.__super__ = flixel_FlxState; funkin_modding_base_ScriptedFlxState.prototype = $extend(flixel_FlxState.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxState"; var superName = "FlxState"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxState.prototype.tryUpdate.call(this,elapsed); } } ,startOutro: function(onOutroComplete) { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[onOutroComplete]); } else { flixel_FlxState.prototype.startOutro.call(this,onOutroComplete); } } ,set_bgColor: function(Value) { var fieldName = "set_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_bgColor.call(this,Value); } } ,resetSubState: function() { var fieldName = "resetSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.resetSubState.call(this); } } ,openSubState: function(SubState) { var fieldName = "openSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[SubState]); } else { flixel_FlxState.prototype.openSubState.call(this,SubState); } } ,onResize: function(Width,Height) { var fieldName = "onResize"; if(this._asc != null) { this._asc.callFunction(fieldName,[Width,Height]); } else { flixel_FlxState.prototype.onResize.call(this,Width,Height); } } ,onFocusLost: function() { var fieldName = "onFocusLost"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.onFocusLost.call(this); } } ,onFocus: function() { var fieldName = "onFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.onFocus.call(this); } } ,get_subStateOpened: function() { var fieldName = "get_subStateOpened"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_subStateOpened.call(this); } } ,get_subStateClosed: function() { var fieldName = "get_subStateClosed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_subStateClosed.call(this); } } ,get_bgColor: function() { var fieldName = "get_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_bgColor.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.destroy.call(this); } } ,create: function() { var fieldName = "create"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.create.call(this); } } ,closeSubState: function() { var fieldName = "closeSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.closeSubState.call(this); } } ,__super_tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; flixel_FlxState.prototype.tryUpdate.call(this,elapsed); } ,__super_startOutro: function(onOutroComplete) { var fieldName = "startOutro"; flixel_FlxState.prototype.startOutro.call(this,onOutroComplete); } ,__super_set_bgColor: function(Value) { var fieldName = "set_bgColor"; return flixel_FlxState.prototype.set_bgColor.call(this,Value); } ,__super_resetSubState: function() { var fieldName = "resetSubState"; flixel_FlxState.prototype.resetSubState.call(this); } ,__super_openSubState: function(SubState) { var fieldName = "openSubState"; flixel_FlxState.prototype.openSubState.call(this,SubState); } ,__super_onResize: function(Width,Height) { var fieldName = "onResize"; flixel_FlxState.prototype.onResize.call(this,Width,Height); } ,__super_onFocusLost: function() { var fieldName = "onFocusLost"; flixel_FlxState.prototype.onFocusLost.call(this); } ,__super_onFocus: function() { var fieldName = "onFocus"; flixel_FlxState.prototype.onFocus.call(this); } ,__super_get_subStateOpened: function() { var fieldName = "get_subStateOpened"; return flixel_FlxState.prototype.get_subStateOpened.call(this); } ,__super_get_subStateClosed: function() { var fieldName = "get_subStateClosed"; return flixel_FlxState.prototype.get_subStateClosed.call(this); } ,__super_get_bgColor: function() { var fieldName = "get_bgColor"; return flixel_FlxState.prototype.get_bgColor.call(this); } ,__super_draw: function() { var fieldName = "draw"; flixel_FlxState.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; flixel_FlxState.prototype.destroy.call(this); } ,__super_create: function() { var fieldName = "create"; flixel_FlxState.prototype.create.call(this); } ,__super_closeSubState: function() { var fieldName = "closeSubState"; flixel_FlxState.prototype.closeSubState.call(this); } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxState.prototype.update.call(this,elapsed); } } ,set_maxSize: function(size) { var fieldName = "set_maxSize"; if(this._asc != null) { return this._asc.callFunction(fieldName,[size]); } else { return flixel_FlxState.prototype.set_maxSize.call(this,size); } } ,reviveMembers: function() { var fieldName = "reviveMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.reviveMembers.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.revive.call(this); } } ,replace: function(oldObject,newObject) { var fieldName = "replace"; if(this._asc != null) { return this._asc.callFunction(fieldName,[oldObject,newObject]); } else { return flixel_FlxState.prototype.replace.call(this,oldObject,newObject); } } ,remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic,splice]); } else { return flixel_FlxState.prototype.remove.call(this,basic,splice); } } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,objectFactory,force,revive]); } else { return flixel_FlxState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } } ,killMembers: function() { var fieldName = "killMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.killMembers.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.kill.call(this); } } ,insert: function(position,object) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[position,object]); } else { return flixel_FlxState.prototype.insert.call(this,position,object); } } ,get_memberRemoved: function() { var fieldName = "get_memberRemoved"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_memberRemoved.call(this); } } ,get_memberAdded: function() { var fieldName = "get_memberAdded"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_memberAdded.call(this); } } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[startIndex,length]); } else { return flixel_FlxState.prototype.getRandom.call(this,startIndex,length); } } ,getLastIndex: function(func) { var fieldName = "getLastIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxState.prototype.getLastIndex.call(this,func); } } ,getLast: function(func) { var fieldName = "getLast"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxState.prototype.getLast.call(this,func); } } ,getFirstNull: function() { var fieldName = "getFirstNull"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.getFirstNull.call(this); } } ,getFirstIndex: function(func) { var fieldName = "getFirstIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxState.prototype.getFirstIndex.call(this,func); } } ,getFirstExisting: function() { var fieldName = "getFirstExisting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.getFirstExisting.call(this); } } ,getFirstDead: function() { var fieldName = "getFirstDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.getFirstDead.call(this); } } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,force]); } else { return flixel_FlxState.prototype.getFirstAvailable.call(this,objectClass,force); } } ,getFirstAlive: function() { var fieldName = "getFirstAlive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.getFirstAlive.call(this); } } ,getFirst: function(func) { var fieldName = "getFirst"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxState.prototype.getFirst.call(this,func); } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; if(this._asc != null) { this._asc.callFunction(fieldName,[objectClass,func,recurse]); } else { flixel_FlxState.prototype.forEachOfType.call(this,objectClass,func,recurse); } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxState.prototype.forEachExists.call(this,func,recurse); } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxState.prototype.forEachDead.call(this,func,recurse); } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxState.prototype.forEachAlive.call(this,func,recurse); } } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxState.prototype.forEach.call(this,func,recurse); } } ,every: function(func) { var fieldName = "every"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxState.prototype.every.call(this,func); } } ,countLiving: function() { var fieldName = "countLiving"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.countLiving.call(this); } } ,countDead: function() { var fieldName = "countDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.countDead.call(this); } } ,clear: function() { var fieldName = "clear"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxState.prototype.clear.call(this); } } ,any: function(func) { var fieldName = "any"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxState.prototype.any.call(this,func); } } ,add: function(basic) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic]); } else { return flixel_FlxState.prototype.add.call(this,basic); } } ,__super_update: function(elapsed) { var fieldName = "update"; flixel_FlxState.prototype.update.call(this,elapsed); } ,__super_set_maxSize: function(size) { var fieldName = "set_maxSize"; return flixel_FlxState.prototype.set_maxSize.call(this,size); } ,__super_reviveMembers: function() { var fieldName = "reviveMembers"; flixel_FlxState.prototype.reviveMembers.call(this); } ,__super_revive: function() { var fieldName = "revive"; flixel_FlxState.prototype.revive.call(this); } ,__super_replace: function(oldObject,newObject) { var fieldName = "replace"; return flixel_FlxState.prototype.replace.call(this,oldObject,newObject); } ,__super_remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; return flixel_FlxState.prototype.remove.call(this,basic,splice); } ,__super_recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; return flixel_FlxState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } ,__super_killMembers: function() { var fieldName = "killMembers"; flixel_FlxState.prototype.killMembers.call(this); } ,__super_kill: function() { var fieldName = "kill"; flixel_FlxState.prototype.kill.call(this); } ,__super_insert: function(position,object) { var fieldName = "insert"; return flixel_FlxState.prototype.insert.call(this,position,object); } ,__super_get_memberRemoved: function() { var fieldName = "get_memberRemoved"; return flixel_FlxState.prototype.get_memberRemoved.call(this); } ,__super_get_memberAdded: function() { var fieldName = "get_memberAdded"; return flixel_FlxState.prototype.get_memberAdded.call(this); } ,__super_getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; return flixel_FlxState.prototype.getRandom.call(this,startIndex,length); } ,__super_getLastIndex: function(func) { var fieldName = "getLastIndex"; return flixel_FlxState.prototype.getLastIndex.call(this,func); } ,__super_getLast: function(func) { var fieldName = "getLast"; return flixel_FlxState.prototype.getLast.call(this,func); } ,__super_getFirstNull: function() { var fieldName = "getFirstNull"; return flixel_FlxState.prototype.getFirstNull.call(this); } ,__super_getFirstIndex: function(func) { var fieldName = "getFirstIndex"; return flixel_FlxState.prototype.getFirstIndex.call(this,func); } ,__super_getFirstExisting: function() { var fieldName = "getFirstExisting"; return flixel_FlxState.prototype.getFirstExisting.call(this); } ,__super_getFirstDead: function() { var fieldName = "getFirstDead"; return flixel_FlxState.prototype.getFirstDead.call(this); } ,__super_getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; return flixel_FlxState.prototype.getFirstAvailable.call(this,objectClass,force); } ,__super_getFirstAlive: function() { var fieldName = "getFirstAlive"; return flixel_FlxState.prototype.getFirstAlive.call(this); } ,__super_getFirst: function(func) { var fieldName = "getFirst"; return flixel_FlxState.prototype.getFirst.call(this,func); } ,__super_forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; flixel_FlxState.prototype.forEachOfType.call(this,objectClass,func,recurse); } ,__super_forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; flixel_FlxState.prototype.forEachExists.call(this,func,recurse); } ,__super_forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; flixel_FlxState.prototype.forEachDead.call(this,func,recurse); } ,__super_forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; flixel_FlxState.prototype.forEachAlive.call(this,func,recurse); } ,__super_forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; flixel_FlxState.prototype.forEach.call(this,func,recurse); } ,__super_every: function(func) { var fieldName = "every"; return flixel_FlxState.prototype.every.call(this,func); } ,__super_countLiving: function() { var fieldName = "countLiving"; return flixel_FlxState.prototype.countLiving.call(this); } ,__super_countDead: function() { var fieldName = "countDead"; return flixel_FlxState.prototype.countDead.call(this); } ,__super_clear: function() { var fieldName = "clear"; flixel_FlxState.prototype.clear.call(this); } ,__super_any: function(func) { var fieldName = "any"; return flixel_FlxState.prototype.any.call(this,func); } ,__super_add: function(basic) { var fieldName = "add"; return flixel_FlxState.prototype.add.call(this,basic); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxState.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxState.prototype.get_camera.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return flixel_FlxState.prototype.toString.call(this); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return flixel_FlxState.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return flixel_FlxState.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return flixel_FlxState.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return flixel_FlxState.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return flixel_FlxState.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return flixel_FlxState.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return flixel_FlxState.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return flixel_FlxState.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxState }); var funkin_modding_base_ScriptedFlxSubState = function(BGColor) { flixel_FlxSubState.call(this,BGColor); }; $hxClasses["funkin.modding.base.ScriptedFlxSubState"] = funkin_modding_base_ScriptedFlxSubState; funkin_modding_base_ScriptedFlxSubState.__name__ = "funkin.modding.base.ScriptedFlxSubState"; funkin_modding_base_ScriptedFlxSubState.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxSubState.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.FlxSubState"); }; funkin_modding_base_ScriptedFlxSubState.init = function(clsName,BGColor) { var value = $hxClasses["funkin.modding.base.ScriptedFlxSubState"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.FlxSubState"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[BGColor]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxSubState" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxSubState.__super__ = flixel_FlxSubState; funkin_modding_base_ScriptedFlxSubState.prototype = $extend(flixel_FlxSubState.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxSubState"; var superName = "FlxSubState"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,set_bgColor: function(Value) { var fieldName = "set_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_bgColor.call(this,Value); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.destroy.call(this); } } ,close: function() { var fieldName = "close"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.close.call(this); } } ,__super_set_bgColor: function(Value) { var fieldName = "set_bgColor"; return flixel_FlxSubState.prototype.set_bgColor.call(this,Value); } ,__super_draw: function() { var fieldName = "draw"; flixel_FlxSubState.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; flixel_FlxSubState.prototype.destroy.call(this); } ,__super_close: function() { var fieldName = "close"; flixel_FlxSubState.prototype.close.call(this); } ,tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxSubState.prototype.tryUpdate.call(this,elapsed); } } ,startOutro: function(onOutroComplete) { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[onOutroComplete]); } else { flixel_FlxSubState.prototype.startOutro.call(this,onOutroComplete); } } ,resetSubState: function() { var fieldName = "resetSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.resetSubState.call(this); } } ,openSubState: function(SubState) { var fieldName = "openSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[SubState]); } else { flixel_FlxSubState.prototype.openSubState.call(this,SubState); } } ,onResize: function(Width,Height) { var fieldName = "onResize"; if(this._asc != null) { this._asc.callFunction(fieldName,[Width,Height]); } else { flixel_FlxSubState.prototype.onResize.call(this,Width,Height); } } ,onFocusLost: function() { var fieldName = "onFocusLost"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.onFocusLost.call(this); } } ,onFocus: function() { var fieldName = "onFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.onFocus.call(this); } } ,get_subStateOpened: function() { var fieldName = "get_subStateOpened"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.get_subStateOpened.call(this); } } ,get_subStateClosed: function() { var fieldName = "get_subStateClosed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.get_subStateClosed.call(this); } } ,create: function() { var fieldName = "create"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.create.call(this); } } ,closeSubState: function() { var fieldName = "closeSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.closeSubState.call(this); } } ,__super_tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; flixel_FlxSubState.prototype.tryUpdate.call(this,elapsed); } ,__super_startOutro: function(onOutroComplete) { var fieldName = "startOutro"; flixel_FlxSubState.prototype.startOutro.call(this,onOutroComplete); } ,__super_resetSubState: function() { var fieldName = "resetSubState"; flixel_FlxSubState.prototype.resetSubState.call(this); } ,__super_openSubState: function(SubState) { var fieldName = "openSubState"; flixel_FlxSubState.prototype.openSubState.call(this,SubState); } ,__super_onResize: function(Width,Height) { var fieldName = "onResize"; flixel_FlxSubState.prototype.onResize.call(this,Width,Height); } ,__super_onFocusLost: function() { var fieldName = "onFocusLost"; flixel_FlxSubState.prototype.onFocusLost.call(this); } ,__super_onFocus: function() { var fieldName = "onFocus"; flixel_FlxSubState.prototype.onFocus.call(this); } ,__super_get_subStateOpened: function() { var fieldName = "get_subStateOpened"; return flixel_FlxSubState.prototype.get_subStateOpened.call(this); } ,__super_get_subStateClosed: function() { var fieldName = "get_subStateClosed"; return flixel_FlxSubState.prototype.get_subStateClosed.call(this); } ,__super_get_bgColor: function() { var fieldName = "get_bgColor"; return this._bgColor; } ,__super_create: function() { var fieldName = "create"; flixel_FlxSubState.prototype.create.call(this); } ,__super_closeSubState: function() { var fieldName = "closeSubState"; flixel_FlxSubState.prototype.closeSubState.call(this); } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_FlxSubState.prototype.update.call(this,elapsed); } } ,set_maxSize: function(size) { var fieldName = "set_maxSize"; if(this._asc != null) { return this._asc.callFunction(fieldName,[size]); } else { return flixel_FlxSubState.prototype.set_maxSize.call(this,size); } } ,reviveMembers: function() { var fieldName = "reviveMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.reviveMembers.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.revive.call(this); } } ,replace: function(oldObject,newObject) { var fieldName = "replace"; if(this._asc != null) { return this._asc.callFunction(fieldName,[oldObject,newObject]); } else { return flixel_FlxSubState.prototype.replace.call(this,oldObject,newObject); } } ,remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic,splice]); } else { return flixel_FlxSubState.prototype.remove.call(this,basic,splice); } } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,objectFactory,force,revive]); } else { return flixel_FlxSubState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } } ,killMembers: function() { var fieldName = "killMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.killMembers.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.kill.call(this); } } ,insert: function(position,object) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[position,object]); } else { return flixel_FlxSubState.prototype.insert.call(this,position,object); } } ,get_memberRemoved: function() { var fieldName = "get_memberRemoved"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.get_memberRemoved.call(this); } } ,get_memberAdded: function() { var fieldName = "get_memberAdded"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.get_memberAdded.call(this); } } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[startIndex,length]); } else { return flixel_FlxSubState.prototype.getRandom.call(this,startIndex,length); } } ,getLastIndex: function(func) { var fieldName = "getLastIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxSubState.prototype.getLastIndex.call(this,func); } } ,getLast: function(func) { var fieldName = "getLast"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxSubState.prototype.getLast.call(this,func); } } ,getFirstNull: function() { var fieldName = "getFirstNull"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.getFirstNull.call(this); } } ,getFirstIndex: function(func) { var fieldName = "getFirstIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxSubState.prototype.getFirstIndex.call(this,func); } } ,getFirstExisting: function() { var fieldName = "getFirstExisting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.getFirstExisting.call(this); } } ,getFirstDead: function() { var fieldName = "getFirstDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.getFirstDead.call(this); } } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,force]); } else { return flixel_FlxSubState.prototype.getFirstAvailable.call(this,objectClass,force); } } ,getFirstAlive: function() { var fieldName = "getFirstAlive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.getFirstAlive.call(this); } } ,getFirst: function(func) { var fieldName = "getFirst"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxSubState.prototype.getFirst.call(this,func); } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; if(this._asc != null) { this._asc.callFunction(fieldName,[objectClass,func,recurse]); } else { flixel_FlxSubState.prototype.forEachOfType.call(this,objectClass,func,recurse); } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxSubState.prototype.forEachExists.call(this,func,recurse); } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxSubState.prototype.forEachDead.call(this,func,recurse); } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxSubState.prototype.forEachAlive.call(this,func,recurse); } } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_FlxSubState.prototype.forEach.call(this,func,recurse); } } ,every: function(func) { var fieldName = "every"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxSubState.prototype.every.call(this,func); } } ,countLiving: function() { var fieldName = "countLiving"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.countLiving.call(this); } } ,countDead: function() { var fieldName = "countDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.countDead.call(this); } } ,clear: function() { var fieldName = "clear"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_FlxSubState.prototype.clear.call(this); } } ,any: function(func) { var fieldName = "any"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_FlxSubState.prototype.any.call(this,func); } } ,add: function(basic) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic]); } else { return flixel_FlxSubState.prototype.add.call(this,basic); } } ,__super_update: function(elapsed) { var fieldName = "update"; flixel_FlxSubState.prototype.update.call(this,elapsed); } ,__super_set_maxSize: function(size) { var fieldName = "set_maxSize"; return flixel_FlxSubState.prototype.set_maxSize.call(this,size); } ,__super_reviveMembers: function() { var fieldName = "reviveMembers"; flixel_FlxSubState.prototype.reviveMembers.call(this); } ,__super_revive: function() { var fieldName = "revive"; flixel_FlxSubState.prototype.revive.call(this); } ,__super_replace: function(oldObject,newObject) { var fieldName = "replace"; return flixel_FlxSubState.prototype.replace.call(this,oldObject,newObject); } ,__super_remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; return flixel_FlxSubState.prototype.remove.call(this,basic,splice); } ,__super_recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; return flixel_FlxSubState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } ,__super_killMembers: function() { var fieldName = "killMembers"; flixel_FlxSubState.prototype.killMembers.call(this); } ,__super_kill: function() { var fieldName = "kill"; flixel_FlxSubState.prototype.kill.call(this); } ,__super_insert: function(position,object) { var fieldName = "insert"; return flixel_FlxSubState.prototype.insert.call(this,position,object); } ,__super_get_memberRemoved: function() { var fieldName = "get_memberRemoved"; return flixel_FlxSubState.prototype.get_memberRemoved.call(this); } ,__super_get_memberAdded: function() { var fieldName = "get_memberAdded"; return flixel_FlxSubState.prototype.get_memberAdded.call(this); } ,__super_getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; return flixel_FlxSubState.prototype.getRandom.call(this,startIndex,length); } ,__super_getLastIndex: function(func) { var fieldName = "getLastIndex"; return flixel_FlxSubState.prototype.getLastIndex.call(this,func); } ,__super_getLast: function(func) { var fieldName = "getLast"; return flixel_FlxSubState.prototype.getLast.call(this,func); } ,__super_getFirstNull: function() { var fieldName = "getFirstNull"; return flixel_FlxSubState.prototype.getFirstNull.call(this); } ,__super_getFirstIndex: function(func) { var fieldName = "getFirstIndex"; return flixel_FlxSubState.prototype.getFirstIndex.call(this,func); } ,__super_getFirstExisting: function() { var fieldName = "getFirstExisting"; return flixel_FlxSubState.prototype.getFirstExisting.call(this); } ,__super_getFirstDead: function() { var fieldName = "getFirstDead"; return flixel_FlxSubState.prototype.getFirstDead.call(this); } ,__super_getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; return flixel_FlxSubState.prototype.getFirstAvailable.call(this,objectClass,force); } ,__super_getFirstAlive: function() { var fieldName = "getFirstAlive"; return flixel_FlxSubState.prototype.getFirstAlive.call(this); } ,__super_getFirst: function(func) { var fieldName = "getFirst"; return flixel_FlxSubState.prototype.getFirst.call(this,func); } ,__super_forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; flixel_FlxSubState.prototype.forEachOfType.call(this,objectClass,func,recurse); } ,__super_forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; flixel_FlxSubState.prototype.forEachExists.call(this,func,recurse); } ,__super_forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; flixel_FlxSubState.prototype.forEachDead.call(this,func,recurse); } ,__super_forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; flixel_FlxSubState.prototype.forEachAlive.call(this,func,recurse); } ,__super_forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; flixel_FlxSubState.prototype.forEach.call(this,func,recurse); } ,__super_every: function(func) { var fieldName = "every"; return flixel_FlxSubState.prototype.every.call(this,func); } ,__super_countLiving: function() { var fieldName = "countLiving"; return flixel_FlxSubState.prototype.countLiving.call(this); } ,__super_countDead: function() { var fieldName = "countDead"; return flixel_FlxSubState.prototype.countDead.call(this); } ,__super_clear: function() { var fieldName = "clear"; flixel_FlxSubState.prototype.clear.call(this); } ,__super_any: function(func) { var fieldName = "any"; return flixel_FlxSubState.prototype.any.call(this,func); } ,__super_add: function(basic) { var fieldName = "add"; return flixel_FlxSubState.prototype.add.call(this,basic); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_FlxSubState.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_FlxSubState.prototype.get_camera.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return flixel_FlxSubState.prototype.toString.call(this); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return flixel_FlxSubState.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return flixel_FlxSubState.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return flixel_FlxSubState.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return flixel_FlxSubState.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return flixel_FlxSubState.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return flixel_FlxSubState.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return flixel_FlxSubState.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return flixel_FlxSubState.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxSubState }); var funkin_modding_base_ScriptedFlxTransitionableState = function(TransIn,TransOut) { flixel_addons_transition_FlxTransitionableState.call(this,TransIn,TransOut); }; $hxClasses["funkin.modding.base.ScriptedFlxTransitionableState"] = funkin_modding_base_ScriptedFlxTransitionableState; funkin_modding_base_ScriptedFlxTransitionableState.__name__ = "funkin.modding.base.ScriptedFlxTransitionableState"; funkin_modding_base_ScriptedFlxTransitionableState.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxTransitionableState.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.addons.transition.FlxTransitionableState"); }; funkin_modding_base_ScriptedFlxTransitionableState.init = function(clsName,TransIn,TransOut) { var value = $hxClasses["funkin.modding.base.ScriptedFlxTransitionableState"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.addons.transition.FlxTransitionableState"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[TransIn,TransOut]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxTransitionableState" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxTransitionableState.__super__ = flixel_addons_transition_FlxTransitionableState; funkin_modding_base_ScriptedFlxTransitionableState.prototype = $extend(flixel_addons_transition_FlxTransitionableState.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxTransitionableState"; var superName = "FlxTransitionableState"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,transitionOut: function(OnExit) { var fieldName = "transitionOut"; if(this._asc != null) { this._asc.callFunction(fieldName,[OnExit]); } else { flixel_addons_transition_FlxTransitionableState.prototype.transitionOut.call(this,OnExit); } } ,transitionIn: function() { var fieldName = "transitionIn"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.transitionIn.call(this); } } ,startOutro: function(onOutroComplete) { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[onOutroComplete]); } else { flixel_addons_transition_FlxTransitionableState.prototype.startOutro.call(this,onOutroComplete); } } ,get_hasTransOut: function() { var fieldName = "get_hasTransOut"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_hasTransOut.call(this); } } ,get_hasTransIn: function() { var fieldName = "get_hasTransIn"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_hasTransIn.call(this); } } ,finishTransOut: function() { var fieldName = "finishTransOut"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.finishTransOut.call(this); } } ,finishTransIn: function() { var fieldName = "finishTransIn"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.finishTransIn.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.destroy.call(this); } } ,createTransition: function(data) { var fieldName = "createTransition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[data]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.createTransition.call(this,data); } } ,create: function() { var fieldName = "create"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.create.call(this); } } ,__super_transitionOut: function(OnExit) { var fieldName = "transitionOut"; flixel_addons_transition_FlxTransitionableState.prototype.transitionOut.call(this,OnExit); } ,__super_transitionIn: function() { var fieldName = "transitionIn"; flixel_addons_transition_FlxTransitionableState.prototype.transitionIn.call(this); } ,__super_startOutro: function(onOutroComplete) { var fieldName = "startOutro"; flixel_addons_transition_FlxTransitionableState.prototype.startOutro.call(this,onOutroComplete); } ,__super_get_hasTransOut: function() { var fieldName = "get_hasTransOut"; return flixel_addons_transition_FlxTransitionableState.prototype.get_hasTransOut.call(this); } ,__super_get_hasTransIn: function() { var fieldName = "get_hasTransIn"; return flixel_addons_transition_FlxTransitionableState.prototype.get_hasTransIn.call(this); } ,__super_finishTransOut: function() { var fieldName = "finishTransOut"; flixel_addons_transition_FlxTransitionableState.prototype.finishTransOut.call(this); } ,__super_finishTransIn: function() { var fieldName = "finishTransIn"; flixel_addons_transition_FlxTransitionableState.prototype.finishTransIn.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; flixel_addons_transition_FlxTransitionableState.prototype.destroy.call(this); } ,__super_createTransition: function(data) { var fieldName = "createTransition"; return flixel_addons_transition_FlxTransitionableState.prototype.createTransition.call(this,data); } ,__super_create: function() { var fieldName = "create"; flixel_addons_transition_FlxTransitionableState.prototype.create.call(this); } ,tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_addons_transition_FlxTransitionableState.prototype.tryUpdate.call(this,elapsed); } } ,set_bgColor: function(Value) { var fieldName = "set_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_bgColor.call(this,Value); } } ,resetSubState: function() { var fieldName = "resetSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.resetSubState.call(this); } } ,openSubState: function(SubState) { var fieldName = "openSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[SubState]); } else { flixel_addons_transition_FlxTransitionableState.prototype.openSubState.call(this,SubState); } } ,onResize: function(Width,Height) { var fieldName = "onResize"; if(this._asc != null) { this._asc.callFunction(fieldName,[Width,Height]); } else { flixel_addons_transition_FlxTransitionableState.prototype.onResize.call(this,Width,Height); } } ,onFocusLost: function() { var fieldName = "onFocusLost"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.onFocusLost.call(this); } } ,onFocus: function() { var fieldName = "onFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.onFocus.call(this); } } ,get_subStateOpened: function() { var fieldName = "get_subStateOpened"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_subStateOpened.call(this); } } ,get_subStateClosed: function() { var fieldName = "get_subStateClosed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_subStateClosed.call(this); } } ,get_bgColor: function() { var fieldName = "get_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_bgColor.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.draw.call(this); } } ,closeSubState: function() { var fieldName = "closeSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.closeSubState.call(this); } } ,__super_tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; flixel_addons_transition_FlxTransitionableState.prototype.tryUpdate.call(this,elapsed); } ,__super_set_bgColor: function(Value) { var fieldName = "set_bgColor"; return flixel_addons_transition_FlxTransitionableState.prototype.set_bgColor.call(this,Value); } ,__super_resetSubState: function() { var fieldName = "resetSubState"; flixel_addons_transition_FlxTransitionableState.prototype.resetSubState.call(this); } ,__super_openSubState: function(SubState) { var fieldName = "openSubState"; flixel_addons_transition_FlxTransitionableState.prototype.openSubState.call(this,SubState); } ,__super_onResize: function(Width,Height) { var fieldName = "onResize"; flixel_addons_transition_FlxTransitionableState.prototype.onResize.call(this,Width,Height); } ,__super_onFocusLost: function() { var fieldName = "onFocusLost"; flixel_addons_transition_FlxTransitionableState.prototype.onFocusLost.call(this); } ,__super_onFocus: function() { var fieldName = "onFocus"; flixel_addons_transition_FlxTransitionableState.prototype.onFocus.call(this); } ,__super_get_subStateOpened: function() { var fieldName = "get_subStateOpened"; return flixel_addons_transition_FlxTransitionableState.prototype.get_subStateOpened.call(this); } ,__super_get_subStateClosed: function() { var fieldName = "get_subStateClosed"; return flixel_addons_transition_FlxTransitionableState.prototype.get_subStateClosed.call(this); } ,__super_get_bgColor: function() { var fieldName = "get_bgColor"; return flixel_addons_transition_FlxTransitionableState.prototype.get_bgColor.call(this); } ,__super_draw: function() { var fieldName = "draw"; flixel_addons_transition_FlxTransitionableState.prototype.draw.call(this); } ,__super_closeSubState: function() { var fieldName = "closeSubState"; flixel_addons_transition_FlxTransitionableState.prototype.closeSubState.call(this); } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_addons_transition_FlxTransitionableState.prototype.update.call(this,elapsed); } } ,set_maxSize: function(size) { var fieldName = "set_maxSize"; if(this._asc != null) { return this._asc.callFunction(fieldName,[size]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_maxSize.call(this,size); } } ,reviveMembers: function() { var fieldName = "reviveMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.reviveMembers.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.revive.call(this); } } ,replace: function(oldObject,newObject) { var fieldName = "replace"; if(this._asc != null) { return this._asc.callFunction(fieldName,[oldObject,newObject]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.replace.call(this,oldObject,newObject); } } ,remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic,splice]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.remove.call(this,basic,splice); } } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,objectFactory,force,revive]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } } ,killMembers: function() { var fieldName = "killMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.killMembers.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.kill.call(this); } } ,insert: function(position,object) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[position,object]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.insert.call(this,position,object); } } ,get_memberRemoved: function() { var fieldName = "get_memberRemoved"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_memberRemoved.call(this); } } ,get_memberAdded: function() { var fieldName = "get_memberAdded"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_memberAdded.call(this); } } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[startIndex,length]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getRandom.call(this,startIndex,length); } } ,getLastIndex: function(func) { var fieldName = "getLastIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getLastIndex.call(this,func); } } ,getLast: function(func) { var fieldName = "getLast"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getLast.call(this,func); } } ,getFirstNull: function() { var fieldName = "getFirstNull"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirstNull.call(this); } } ,getFirstIndex: function(func) { var fieldName = "getFirstIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirstIndex.call(this,func); } } ,getFirstExisting: function() { var fieldName = "getFirstExisting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirstExisting.call(this); } } ,getFirstDead: function() { var fieldName = "getFirstDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirstDead.call(this); } } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,force]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirstAvailable.call(this,objectClass,force); } } ,getFirstAlive: function() { var fieldName = "getFirstAlive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirstAlive.call(this); } } ,getFirst: function(func) { var fieldName = "getFirst"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.getFirst.call(this,func); } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; if(this._asc != null) { this._asc.callFunction(fieldName,[objectClass,func,recurse]); } else { flixel_addons_transition_FlxTransitionableState.prototype.forEachOfType.call(this,objectClass,func,recurse); } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_transition_FlxTransitionableState.prototype.forEachExists.call(this,func,recurse); } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_transition_FlxTransitionableState.prototype.forEachDead.call(this,func,recurse); } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_transition_FlxTransitionableState.prototype.forEachAlive.call(this,func,recurse); } } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_transition_FlxTransitionableState.prototype.forEach.call(this,func,recurse); } } ,every: function(func) { var fieldName = "every"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.every.call(this,func); } } ,countLiving: function() { var fieldName = "countLiving"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.countLiving.call(this); } } ,countDead: function() { var fieldName = "countDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.countDead.call(this); } } ,clear: function() { var fieldName = "clear"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_transition_FlxTransitionableState.prototype.clear.call(this); } } ,any: function(func) { var fieldName = "any"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.any.call(this,func); } } ,add: function(basic) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.add.call(this,basic); } } ,__super_update: function(elapsed) { var fieldName = "update"; flixel_addons_transition_FlxTransitionableState.prototype.update.call(this,elapsed); } ,__super_set_maxSize: function(size) { var fieldName = "set_maxSize"; return flixel_addons_transition_FlxTransitionableState.prototype.set_maxSize.call(this,size); } ,__super_reviveMembers: function() { var fieldName = "reviveMembers"; flixel_addons_transition_FlxTransitionableState.prototype.reviveMembers.call(this); } ,__super_revive: function() { var fieldName = "revive"; flixel_addons_transition_FlxTransitionableState.prototype.revive.call(this); } ,__super_replace: function(oldObject,newObject) { var fieldName = "replace"; return flixel_addons_transition_FlxTransitionableState.prototype.replace.call(this,oldObject,newObject); } ,__super_remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; return flixel_addons_transition_FlxTransitionableState.prototype.remove.call(this,basic,splice); } ,__super_recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; return flixel_addons_transition_FlxTransitionableState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } ,__super_killMembers: function() { var fieldName = "killMembers"; flixel_addons_transition_FlxTransitionableState.prototype.killMembers.call(this); } ,__super_kill: function() { var fieldName = "kill"; flixel_addons_transition_FlxTransitionableState.prototype.kill.call(this); } ,__super_insert: function(position,object) { var fieldName = "insert"; return flixel_addons_transition_FlxTransitionableState.prototype.insert.call(this,position,object); } ,__super_get_memberRemoved: function() { var fieldName = "get_memberRemoved"; return flixel_addons_transition_FlxTransitionableState.prototype.get_memberRemoved.call(this); } ,__super_get_memberAdded: function() { var fieldName = "get_memberAdded"; return flixel_addons_transition_FlxTransitionableState.prototype.get_memberAdded.call(this); } ,__super_getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; return flixel_addons_transition_FlxTransitionableState.prototype.getRandom.call(this,startIndex,length); } ,__super_getLastIndex: function(func) { var fieldName = "getLastIndex"; return flixel_addons_transition_FlxTransitionableState.prototype.getLastIndex.call(this,func); } ,__super_getLast: function(func) { var fieldName = "getLast"; return flixel_addons_transition_FlxTransitionableState.prototype.getLast.call(this,func); } ,__super_getFirstNull: function() { var fieldName = "getFirstNull"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirstNull.call(this); } ,__super_getFirstIndex: function(func) { var fieldName = "getFirstIndex"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirstIndex.call(this,func); } ,__super_getFirstExisting: function() { var fieldName = "getFirstExisting"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirstExisting.call(this); } ,__super_getFirstDead: function() { var fieldName = "getFirstDead"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirstDead.call(this); } ,__super_getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirstAvailable.call(this,objectClass,force); } ,__super_getFirstAlive: function() { var fieldName = "getFirstAlive"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirstAlive.call(this); } ,__super_getFirst: function(func) { var fieldName = "getFirst"; return flixel_addons_transition_FlxTransitionableState.prototype.getFirst.call(this,func); } ,__super_forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; flixel_addons_transition_FlxTransitionableState.prototype.forEachOfType.call(this,objectClass,func,recurse); } ,__super_forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; flixel_addons_transition_FlxTransitionableState.prototype.forEachExists.call(this,func,recurse); } ,__super_forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; flixel_addons_transition_FlxTransitionableState.prototype.forEachDead.call(this,func,recurse); } ,__super_forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; flixel_addons_transition_FlxTransitionableState.prototype.forEachAlive.call(this,func,recurse); } ,__super_forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; flixel_addons_transition_FlxTransitionableState.prototype.forEach.call(this,func,recurse); } ,__super_every: function(func) { var fieldName = "every"; return flixel_addons_transition_FlxTransitionableState.prototype.every.call(this,func); } ,__super_countLiving: function() { var fieldName = "countLiving"; return flixel_addons_transition_FlxTransitionableState.prototype.countLiving.call(this); } ,__super_countDead: function() { var fieldName = "countDead"; return flixel_addons_transition_FlxTransitionableState.prototype.countDead.call(this); } ,__super_clear: function() { var fieldName = "clear"; flixel_addons_transition_FlxTransitionableState.prototype.clear.call(this); } ,__super_any: function(func) { var fieldName = "any"; return flixel_addons_transition_FlxTransitionableState.prototype.any.call(this,func); } ,__super_add: function(basic) { var fieldName = "add"; return flixel_addons_transition_FlxTransitionableState.prototype.add.call(this,basic); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_transition_FlxTransitionableState.prototype.get_camera.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return flixel_addons_transition_FlxTransitionableState.prototype.toString.call(this); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return flixel_addons_transition_FlxTransitionableState.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return flixel_addons_transition_FlxTransitionableState.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return flixel_addons_transition_FlxTransitionableState.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return flixel_addons_transition_FlxTransitionableState.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return flixel_addons_transition_FlxTransitionableState.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return flixel_addons_transition_FlxTransitionableState.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return flixel_addons_transition_FlxTransitionableState.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return flixel_addons_transition_FlxTransitionableState.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxTransitionableState }); var funkin_modding_base_ScriptedFlxUIState = function(TransIn,TransOut) { flixel_addons_ui_FlxUIState.call(this,TransIn,TransOut); }; $hxClasses["funkin.modding.base.ScriptedFlxUIState"] = funkin_modding_base_ScriptedFlxUIState; funkin_modding_base_ScriptedFlxUIState.__name__ = "funkin.modding.base.ScriptedFlxUIState"; funkin_modding_base_ScriptedFlxUIState.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFlxUIState.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("flixel.addons.ui.FlxUIState"); }; funkin_modding_base_ScriptedFlxUIState.init = function(clsName,TransIn,TransOut) { var value = $hxClasses["funkin.modding.base.ScriptedFlxUIState"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["flixel.addons.ui.FlxUIState"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[TransIn,TransOut]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFlxUIState" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFlxUIState.__super__ = flixel_addons_ui_FlxUIState; funkin_modding_base_ScriptedFlxUIState.prototype = $extend(flixel_addons_ui_FlxUIState.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFlxUIState"; var superName = "FlxUIState"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_addons_ui_FlxUIState.prototype.update.call(this,elapsed); } } ,setUIVariable: function(key,value) { var fieldName = "setUIVariable"; if(this._asc != null) { this._asc.callFunction(fieldName,[key,value]); } else { flixel_addons_ui_FlxUIState.prototype.setUIVariable.call(this,key,value); } } ,resizeScreen: function(width,height) { if(height == null) { height = 600; } if(width == null) { width = 800; } var fieldName = "resizeScreen"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { flixel_addons_ui_FlxUIState.prototype.resizeScreen.call(this,width,height); } } ,reloadUI: function(e) { var fieldName = "reloadUI"; if(this._asc != null) { this._asc.callFunction(fieldName,[e]); } else { flixel_addons_ui_FlxUIState.prototype.reloadUI.call(this,e); } } ,openSubState: function(SubState) { var fieldName = "openSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[SubState]); } else { flixel_addons_ui_FlxUIState.prototype.openSubState.call(this,SubState); } } ,onShowTooltip: function(t) { var fieldName = "onShowTooltip"; if(this._asc != null) { this._asc.callFunction(fieldName,[t]); } else { flixel_addons_ui_FlxUIState.prototype.onShowTooltip.call(this,t); } } ,onResize: function(Width,Height) { var fieldName = "onResize"; if(this._asc != null) { this._asc.callFunction(fieldName,[Width,Height]); } else { flixel_addons_ui_FlxUIState.prototype.onResize.call(this,Width,Height); } } ,onCursorEvent: function(code,target) { var fieldName = "onCursorEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[code,target]); } else { flixel_addons_ui_FlxUIState.prototype.onCursorEvent.call(this,code,target); } } ,loadUIFromData: function(data) { var fieldName = "loadUIFromData"; if(this._asc != null) { this._asc.callFunction(fieldName,[data]); } else { flixel_addons_ui_FlxUIState.prototype.loadUIFromData.call(this,data); } } ,getText: function(Flag,Context,Safe) { if(Safe == null) { Safe = true; } if(Context == null) { Context = "ui"; } var fieldName = "getText"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Flag,Context,Safe]); } else { return flixel_addons_ui_FlxUIState.prototype.getText.call(this,Flag,Context,Safe); } } ,getRequest: function(id,sender,data,params) { var fieldName = "getRequest"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id,sender,data,params]); } else { return flixel_addons_ui_FlxUIState.prototype.getRequest.call(this,id,sender,data,params); } } ,getEvent: function(id,sender,data,params) { var fieldName = "getEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[id,sender,data,params]); } else { flixel_addons_ui_FlxUIState.prototype.getEvent.call(this,id,sender,data,params); } } ,forceFocus: function(b,thing) { var fieldName = "forceFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[b,thing]); } else { flixel_addons_ui_FlxUIState.prototype.forceFocus.call(this,b,thing); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.destroy.call(this); } } ,createUI: function(data,ptr,superIndex_,tongue_,liveFilePath_) { if(liveFilePath_ == null) { liveFilePath_ = ""; } var fieldName = "createUI"; if(this._asc != null) { return this._asc.callFunction(fieldName,[data,ptr,superIndex_,tongue_,liveFilePath_]); } else { return flixel_addons_ui_FlxUIState.prototype.createUI.call(this,data,ptr,superIndex_,tongue_,liveFilePath_); } } ,createCursor: function() { var fieldName = "createCursor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.createCursor.call(this); } } ,create: function() { var fieldName = "create"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.create.call(this); } } ,closeSubState: function() { var fieldName = "closeSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.closeSubState.call(this); } } ,cleanup: function() { var fieldName = "cleanup"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.cleanup.call(this); } } ,_cleanupUIVars: function() { var fieldName = "_cleanupUIVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype._cleanupUIVars.call(this); } } ,__super_update: function(elapsed) { var fieldName = "update"; flixel_addons_ui_FlxUIState.prototype.update.call(this,elapsed); } ,__super_setUIVariable: function(key,value) { var fieldName = "setUIVariable"; flixel_addons_ui_FlxUIState.prototype.setUIVariable.call(this,key,value); } ,__super_resizeScreen: function(width,height) { if(height == null) { height = 600; } if(width == null) { width = 800; } var fieldName = "resizeScreen"; flixel_addons_ui_FlxUIState.prototype.resizeScreen.call(this,width,height); } ,__super_reloadUI: function(e) { var fieldName = "reloadUI"; flixel_addons_ui_FlxUIState.prototype.reloadUI.call(this,e); } ,__super_openSubState: function(SubState) { var fieldName = "openSubState"; flixel_addons_ui_FlxUIState.prototype.openSubState.call(this,SubState); } ,__super_onShowTooltip: function(t) { var fieldName = "onShowTooltip"; flixel_addons_ui_FlxUIState.prototype.onShowTooltip.call(this,t); } ,__super_onResize: function(Width,Height) { var fieldName = "onResize"; flixel_addons_ui_FlxUIState.prototype.onResize.call(this,Width,Height); } ,__super_onCursorEvent: function(code,target) { var fieldName = "onCursorEvent"; flixel_addons_ui_FlxUIState.prototype.onCursorEvent.call(this,code,target); } ,__super_loadUIFromData: function(data) { var fieldName = "loadUIFromData"; flixel_addons_ui_FlxUIState.prototype.loadUIFromData.call(this,data); } ,__super_getText: function(Flag,Context,Safe) { if(Safe == null) { Safe = true; } if(Context == null) { Context = "ui"; } var fieldName = "getText"; return flixel_addons_ui_FlxUIState.prototype.getText.call(this,Flag,Context,Safe); } ,__super_getRequest: function(id,sender,data,params) { var fieldName = "getRequest"; return flixel_addons_ui_FlxUIState.prototype.getRequest.call(this,id,sender,data,params); } ,__super_getEvent: function(id,sender,data,params) { var fieldName = "getEvent"; flixel_addons_ui_FlxUIState.prototype.getEvent.call(this,id,sender,data,params); } ,__super_forceFocus: function(b,thing) { var fieldName = "forceFocus"; flixel_addons_ui_FlxUIState.prototype.forceFocus.call(this,b,thing); } ,__super_destroy: function() { var fieldName = "destroy"; flixel_addons_ui_FlxUIState.prototype.destroy.call(this); } ,__super_createUI: function(data,ptr,superIndex_,tongue_,liveFilePath_) { if(liveFilePath_ == null) { liveFilePath_ = ""; } var fieldName = "createUI"; return flixel_addons_ui_FlxUIState.prototype.createUI.call(this,data,ptr,superIndex_,tongue_,liveFilePath_); } ,__super_createCursor: function() { var fieldName = "createCursor"; return flixel_addons_ui_FlxUIState.prototype.createCursor.call(this); } ,__super_create: function() { var fieldName = "create"; flixel_addons_ui_FlxUIState.prototype.create.call(this); } ,__super_closeSubState: function() { var fieldName = "closeSubState"; flixel_addons_ui_FlxUIState.prototype.closeSubState.call(this); } ,__super_cleanup: function() { var fieldName = "cleanup"; flixel_addons_ui_FlxUIState.prototype.cleanup.call(this); } ,__super__cleanupUIVars: function() { var fieldName = "_cleanupUIVars"; flixel_addons_ui_FlxUIState.prototype._cleanupUIVars.call(this); } ,transitionOut: function(OnExit) { var fieldName = "transitionOut"; if(this._asc != null) { this._asc.callFunction(fieldName,[OnExit]); } else { flixel_addons_ui_FlxUIState.prototype.transitionOut.call(this,OnExit); } } ,transitionIn: function() { var fieldName = "transitionIn"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.transitionIn.call(this); } } ,startOutro: function(onOutroComplete) { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[onOutroComplete]); } else { flixel_addons_ui_FlxUIState.prototype.startOutro.call(this,onOutroComplete); } } ,get_hasTransOut: function() { var fieldName = "get_hasTransOut"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_hasTransOut.call(this); } } ,get_hasTransIn: function() { var fieldName = "get_hasTransIn"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_hasTransIn.call(this); } } ,finishTransOut: function() { var fieldName = "finishTransOut"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.finishTransOut.call(this); } } ,finishTransIn: function() { var fieldName = "finishTransIn"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.finishTransIn.call(this); } } ,createTransition: function(data) { var fieldName = "createTransition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[data]); } else { return flixel_addons_ui_FlxUIState.prototype.createTransition.call(this,data); } } ,__super_transitionOut: function(OnExit) { var fieldName = "transitionOut"; flixel_addons_ui_FlxUIState.prototype.transitionOut.call(this,OnExit); } ,__super_transitionIn: function() { var fieldName = "transitionIn"; flixel_addons_ui_FlxUIState.prototype.transitionIn.call(this); } ,__super_startOutro: function(onOutroComplete) { var fieldName = "startOutro"; flixel_addons_ui_FlxUIState.prototype.startOutro.call(this,onOutroComplete); } ,__super_get_hasTransOut: function() { var fieldName = "get_hasTransOut"; return flixel_addons_ui_FlxUIState.prototype.get_hasTransOut.call(this); } ,__super_get_hasTransIn: function() { var fieldName = "get_hasTransIn"; return flixel_addons_ui_FlxUIState.prototype.get_hasTransIn.call(this); } ,__super_finishTransOut: function() { var fieldName = "finishTransOut"; flixel_addons_ui_FlxUIState.prototype.finishTransOut.call(this); } ,__super_finishTransIn: function() { var fieldName = "finishTransIn"; flixel_addons_ui_FlxUIState.prototype.finishTransIn.call(this); } ,__super_createTransition: function(data) { var fieldName = "createTransition"; return flixel_addons_ui_FlxUIState.prototype.createTransition.call(this,data); } ,tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { flixel_addons_ui_FlxUIState.prototype.tryUpdate.call(this,elapsed); } } ,set_bgColor: function(Value) { var fieldName = "set_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_bgColor.call(this,Value); } } ,resetSubState: function() { var fieldName = "resetSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.resetSubState.call(this); } } ,onFocusLost: function() { var fieldName = "onFocusLost"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.onFocusLost.call(this); } } ,onFocus: function() { var fieldName = "onFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.onFocus.call(this); } } ,get_subStateOpened: function() { var fieldName = "get_subStateOpened"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_subStateOpened.call(this); } } ,get_subStateClosed: function() { var fieldName = "get_subStateClosed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_subStateClosed.call(this); } } ,get_bgColor: function() { var fieldName = "get_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_bgColor.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.draw.call(this); } } ,__super_tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; flixel_addons_ui_FlxUIState.prototype.tryUpdate.call(this,elapsed); } ,__super_set_bgColor: function(Value) { var fieldName = "set_bgColor"; return flixel_addons_ui_FlxUIState.prototype.set_bgColor.call(this,Value); } ,__super_resetSubState: function() { var fieldName = "resetSubState"; flixel_addons_ui_FlxUIState.prototype.resetSubState.call(this); } ,__super_onFocusLost: function() { var fieldName = "onFocusLost"; flixel_addons_ui_FlxUIState.prototype.onFocusLost.call(this); } ,__super_onFocus: function() { var fieldName = "onFocus"; flixel_addons_ui_FlxUIState.prototype.onFocus.call(this); } ,__super_get_subStateOpened: function() { var fieldName = "get_subStateOpened"; return flixel_addons_ui_FlxUIState.prototype.get_subStateOpened.call(this); } ,__super_get_subStateClosed: function() { var fieldName = "get_subStateClosed"; return flixel_addons_ui_FlxUIState.prototype.get_subStateClosed.call(this); } ,__super_get_bgColor: function() { var fieldName = "get_bgColor"; return flixel_addons_ui_FlxUIState.prototype.get_bgColor.call(this); } ,__super_draw: function() { var fieldName = "draw"; flixel_addons_ui_FlxUIState.prototype.draw.call(this); } ,set_maxSize: function(size) { var fieldName = "set_maxSize"; if(this._asc != null) { return this._asc.callFunction(fieldName,[size]); } else { return flixel_addons_ui_FlxUIState.prototype.set_maxSize.call(this,size); } } ,reviveMembers: function() { var fieldName = "reviveMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.reviveMembers.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.revive.call(this); } } ,replace: function(oldObject,newObject) { var fieldName = "replace"; if(this._asc != null) { return this._asc.callFunction(fieldName,[oldObject,newObject]); } else { return flixel_addons_ui_FlxUIState.prototype.replace.call(this,oldObject,newObject); } } ,remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic,splice]); } else { return flixel_addons_ui_FlxUIState.prototype.remove.call(this,basic,splice); } } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,objectFactory,force,revive]); } else { return flixel_addons_ui_FlxUIState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } } ,killMembers: function() { var fieldName = "killMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.killMembers.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.kill.call(this); } } ,insert: function(position,object) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[position,object]); } else { return flixel_addons_ui_FlxUIState.prototype.insert.call(this,position,object); } } ,get_memberRemoved: function() { var fieldName = "get_memberRemoved"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_memberRemoved.call(this); } } ,get_memberAdded: function() { var fieldName = "get_memberAdded"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_memberAdded.call(this); } } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[startIndex,length]); } else { return flixel_addons_ui_FlxUIState.prototype.getRandom.call(this,startIndex,length); } } ,getLastIndex: function(func) { var fieldName = "getLastIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_ui_FlxUIState.prototype.getLastIndex.call(this,func); } } ,getLast: function(func) { var fieldName = "getLast"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_ui_FlxUIState.prototype.getLast.call(this,func); } } ,getFirstNull: function() { var fieldName = "getFirstNull"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirstNull.call(this); } } ,getFirstIndex: function(func) { var fieldName = "getFirstIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirstIndex.call(this,func); } } ,getFirstExisting: function() { var fieldName = "getFirstExisting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirstExisting.call(this); } } ,getFirstDead: function() { var fieldName = "getFirstDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirstDead.call(this); } } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,force]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirstAvailable.call(this,objectClass,force); } } ,getFirstAlive: function() { var fieldName = "getFirstAlive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirstAlive.call(this); } } ,getFirst: function(func) { var fieldName = "getFirst"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_ui_FlxUIState.prototype.getFirst.call(this,func); } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; if(this._asc != null) { this._asc.callFunction(fieldName,[objectClass,func,recurse]); } else { flixel_addons_ui_FlxUIState.prototype.forEachOfType.call(this,objectClass,func,recurse); } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_ui_FlxUIState.prototype.forEachExists.call(this,func,recurse); } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_ui_FlxUIState.prototype.forEachDead.call(this,func,recurse); } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_ui_FlxUIState.prototype.forEachAlive.call(this,func,recurse); } } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { flixel_addons_ui_FlxUIState.prototype.forEach.call(this,func,recurse); } } ,every: function(func) { var fieldName = "every"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_ui_FlxUIState.prototype.every.call(this,func); } } ,countLiving: function() { var fieldName = "countLiving"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.countLiving.call(this); } } ,countDead: function() { var fieldName = "countDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.countDead.call(this); } } ,clear: function() { var fieldName = "clear"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { flixel_addons_ui_FlxUIState.prototype.clear.call(this); } } ,any: function(func) { var fieldName = "any"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return flixel_addons_ui_FlxUIState.prototype.any.call(this,func); } } ,add: function(basic) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic]); } else { return flixel_addons_ui_FlxUIState.prototype.add.call(this,basic); } } ,__super_set_maxSize: function(size) { var fieldName = "set_maxSize"; return flixel_addons_ui_FlxUIState.prototype.set_maxSize.call(this,size); } ,__super_reviveMembers: function() { var fieldName = "reviveMembers"; flixel_addons_ui_FlxUIState.prototype.reviveMembers.call(this); } ,__super_revive: function() { var fieldName = "revive"; flixel_addons_ui_FlxUIState.prototype.revive.call(this); } ,__super_replace: function(oldObject,newObject) { var fieldName = "replace"; return flixel_addons_ui_FlxUIState.prototype.replace.call(this,oldObject,newObject); } ,__super_remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; return flixel_addons_ui_FlxUIState.prototype.remove.call(this,basic,splice); } ,__super_recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; return flixel_addons_ui_FlxUIState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } ,__super_killMembers: function() { var fieldName = "killMembers"; flixel_addons_ui_FlxUIState.prototype.killMembers.call(this); } ,__super_kill: function() { var fieldName = "kill"; flixel_addons_ui_FlxUIState.prototype.kill.call(this); } ,__super_insert: function(position,object) { var fieldName = "insert"; return flixel_addons_ui_FlxUIState.prototype.insert.call(this,position,object); } ,__super_get_memberRemoved: function() { var fieldName = "get_memberRemoved"; return flixel_addons_ui_FlxUIState.prototype.get_memberRemoved.call(this); } ,__super_get_memberAdded: function() { var fieldName = "get_memberAdded"; return flixel_addons_ui_FlxUIState.prototype.get_memberAdded.call(this); } ,__super_getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; return flixel_addons_ui_FlxUIState.prototype.getRandom.call(this,startIndex,length); } ,__super_getLastIndex: function(func) { var fieldName = "getLastIndex"; return flixel_addons_ui_FlxUIState.prototype.getLastIndex.call(this,func); } ,__super_getLast: function(func) { var fieldName = "getLast"; return flixel_addons_ui_FlxUIState.prototype.getLast.call(this,func); } ,__super_getFirstNull: function() { var fieldName = "getFirstNull"; return flixel_addons_ui_FlxUIState.prototype.getFirstNull.call(this); } ,__super_getFirstIndex: function(func) { var fieldName = "getFirstIndex"; return flixel_addons_ui_FlxUIState.prototype.getFirstIndex.call(this,func); } ,__super_getFirstExisting: function() { var fieldName = "getFirstExisting"; return flixel_addons_ui_FlxUIState.prototype.getFirstExisting.call(this); } ,__super_getFirstDead: function() { var fieldName = "getFirstDead"; return flixel_addons_ui_FlxUIState.prototype.getFirstDead.call(this); } ,__super_getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; return flixel_addons_ui_FlxUIState.prototype.getFirstAvailable.call(this,objectClass,force); } ,__super_getFirstAlive: function() { var fieldName = "getFirstAlive"; return flixel_addons_ui_FlxUIState.prototype.getFirstAlive.call(this); } ,__super_getFirst: function(func) { var fieldName = "getFirst"; return flixel_addons_ui_FlxUIState.prototype.getFirst.call(this,func); } ,__super_forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; flixel_addons_ui_FlxUIState.prototype.forEachOfType.call(this,objectClass,func,recurse); } ,__super_forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; flixel_addons_ui_FlxUIState.prototype.forEachExists.call(this,func,recurse); } ,__super_forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; flixel_addons_ui_FlxUIState.prototype.forEachDead.call(this,func,recurse); } ,__super_forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; flixel_addons_ui_FlxUIState.prototype.forEachAlive.call(this,func,recurse); } ,__super_forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; flixel_addons_ui_FlxUIState.prototype.forEach.call(this,func,recurse); } ,__super_every: function(func) { var fieldName = "every"; return flixel_addons_ui_FlxUIState.prototype.every.call(this,func); } ,__super_countLiving: function() { var fieldName = "countLiving"; return flixel_addons_ui_FlxUIState.prototype.countLiving.call(this); } ,__super_countDead: function() { var fieldName = "countDead"; return flixel_addons_ui_FlxUIState.prototype.countDead.call(this); } ,__super_clear: function() { var fieldName = "clear"; flixel_addons_ui_FlxUIState.prototype.clear.call(this); } ,__super_any: function(func) { var fieldName = "any"; return flixel_addons_ui_FlxUIState.prototype.any.call(this,func); } ,__super_add: function(basic) { var fieldName = "add"; return flixel_addons_ui_FlxUIState.prototype.add.call(this,basic); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return flixel_addons_ui_FlxUIState.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return flixel_addons_ui_FlxUIState.prototype.get_camera.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return flixel_addons_ui_FlxUIState.prototype.toString.call(this); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return flixel_addons_ui_FlxUIState.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return flixel_addons_ui_FlxUIState.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return flixel_addons_ui_FlxUIState.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return flixel_addons_ui_FlxUIState.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return flixel_addons_ui_FlxUIState.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return flixel_addons_ui_FlxUIState.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return flixel_addons_ui_FlxUIState.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return flixel_addons_ui_FlxUIState.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFlxUIState }); var funkin_modding_base_ScriptedFunkinSprite = function(x,y) { funkin_graphics_FunkinSprite.call(this,x,y); }; $hxClasses["funkin.modding.base.ScriptedFunkinSprite"] = funkin_modding_base_ScriptedFunkinSprite; funkin_modding_base_ScriptedFunkinSprite.__name__ = "funkin.modding.base.ScriptedFunkinSprite"; funkin_modding_base_ScriptedFunkinSprite.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedFunkinSprite.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.graphics.FunkinSprite"); }; funkin_modding_base_ScriptedFunkinSprite.init = function(clsName,x,y) { var value = $hxClasses["funkin.modding.base.ScriptedFunkinSprite"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.graphics.FunkinSprite"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[x,y]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedFunkinSprite" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedFunkinSprite.__super__ = funkin_graphics_FunkinSprite; funkin_modding_base_ScriptedFunkinSprite.prototype = $extend(funkin_graphics_FunkinSprite.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedFunkinSprite"; var superName = "FunkinSprite"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_graphics_FunkinSprite.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_graphics_FunkinSprite.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_graphics_FunkinSprite.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_graphics_FunkinSprite.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_graphics_FunkinSprite.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_graphics_FunkinSprite.prototype.loadBitmapData.call(this,input); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_graphics_FunkinSprite.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_graphics_FunkinSprite.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_graphics_FunkinSprite.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_graphics_FunkinSprite.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_graphics_FunkinSprite.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_graphics_FunkinSprite.prototype.loadBitmapData.call(this,input); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_graphics_FunkinSprite.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_graphics_FunkinSprite.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_graphics_FunkinSprite.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_graphics_FunkinSprite.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_graphics_FunkinSprite.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_graphics_FunkinSprite.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_graphics_FunkinSprite.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_graphics_FunkinSprite.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_graphics_FunkinSprite.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_graphics_FunkinSprite.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_graphics_FunkinSprite.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_graphics_FunkinSprite.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_graphics_FunkinSprite.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_graphics_FunkinSprite.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_graphics_FunkinSprite.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_graphics_FunkinSprite.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_graphics_FunkinSprite.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_graphics_FunkinSprite.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_graphics_FunkinSprite.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_graphics_FunkinSprite.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_graphics_FunkinSprite.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_graphics_FunkinSprite.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_graphics_FunkinSprite.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_graphics_FunkinSprite.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_FunkinSprite.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_FunkinSprite.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_FunkinSprite.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_graphics_FunkinSprite.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_graphics_FunkinSprite.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_graphics_FunkinSprite.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_graphics_FunkinSprite.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_graphics_FunkinSprite.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_graphics_FunkinSprite.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_graphics_FunkinSprite.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_graphics_FunkinSprite.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.draw.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_graphics_FunkinSprite.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_graphics_FunkinSprite.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_graphics_FunkinSprite.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_graphics_FunkinSprite.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_graphics_FunkinSprite.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_graphics_FunkinSprite.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_graphics_FunkinSprite.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_graphics_FunkinSprite.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_graphics_FunkinSprite.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_graphics_FunkinSprite.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_graphics_FunkinSprite.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_graphics_FunkinSprite.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_graphics_FunkinSprite.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_graphics_FunkinSprite.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_graphics_FunkinSprite.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_graphics_FunkinSprite.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_graphics_FunkinSprite.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_graphics_FunkinSprite.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_graphics_FunkinSprite.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_graphics_FunkinSprite.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_graphics_FunkinSprite.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_graphics_FunkinSprite.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_graphics_FunkinSprite.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_graphics_FunkinSprite.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_graphics_FunkinSprite.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_graphics_FunkinSprite.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_graphics_FunkinSprite.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_graphics_FunkinSprite.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_graphics_FunkinSprite.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_graphics_FunkinSprite.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_graphics_FunkinSprite.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_graphics_FunkinSprite.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_graphics_FunkinSprite.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_graphics_FunkinSprite.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_graphics_FunkinSprite.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_graphics_FunkinSprite.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_graphics_FunkinSprite.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_graphics_FunkinSprite.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_graphics_FunkinSprite.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_graphics_FunkinSprite.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_graphics_FunkinSprite.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_graphics_FunkinSprite.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_graphics_FunkinSprite.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_graphics_FunkinSprite.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_graphics_FunkinSprite.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_graphics_FunkinSprite.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_graphics_FunkinSprite.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_graphics_FunkinSprite.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_graphics_FunkinSprite.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_graphics_FunkinSprite.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_graphics_FunkinSprite.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_graphics_FunkinSprite.prototype.draw.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_graphics_FunkinSprite.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_graphics_FunkinSprite.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_graphics_FunkinSprite.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_graphics_FunkinSprite.prototype.updateMotion.call(this,elapsed); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_x.call(this,value); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_graphics_FunkinSprite.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_graphics_FunkinSprite.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_graphics_FunkinSprite.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_graphics_FunkinSprite.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_graphics_FunkinSprite.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_graphics_FunkinSprite.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_graphics_FunkinSprite.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_graphics_FunkinSprite.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_FunkinSprite.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_graphics_FunkinSprite.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_graphics_FunkinSprite.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_graphics_FunkinSprite.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_graphics_FunkinSprite.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_graphics_FunkinSprite.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_graphics_FunkinSprite.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_graphics_FunkinSprite.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_graphics_FunkinSprite.prototype.toString.call(this); } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_graphics_FunkinSprite.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_graphics_FunkinSprite.prototype.set_x.call(this,value); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_graphics_FunkinSprite.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_graphics_FunkinSprite.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_graphics_FunkinSprite.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_graphics_FunkinSprite.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_graphics_FunkinSprite.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_graphics_FunkinSprite.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_graphics_FunkinSprite.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_graphics_FunkinSprite.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_graphics_FunkinSprite.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_graphics_FunkinSprite.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_graphics_FunkinSprite.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_graphics_FunkinSprite.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_graphics_FunkinSprite.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_graphics_FunkinSprite.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_graphics_FunkinSprite.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_graphics_FunkinSprite.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_graphics_FunkinSprite.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_graphics_FunkinSprite.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_graphics_FunkinSprite.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_graphics_FunkinSprite.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_graphics_FunkinSprite.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_graphics_FunkinSprite.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_graphics_FunkinSprite.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_graphics_FunkinSprite.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_graphics_FunkinSprite.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_graphics_FunkinSprite.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_graphics_FunkinSprite.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_graphics_FunkinSprite.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_graphics_FunkinSprite.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_graphics_FunkinSprite.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_graphics_FunkinSprite.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_graphics_FunkinSprite.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_graphics_FunkinSprite.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_graphics_FunkinSprite.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_graphics_FunkinSprite.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_graphics_FunkinSprite.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_graphics_FunkinSprite.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_graphics_FunkinSprite.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedFunkinSprite }); var funkin_ui_MusicBeatState = function() { this.rightWatermarkText = null; this.leftWatermarkText = null; flixel_addons_transition_FlxTransitionableState.call(this); this.initCallbacks(); }; $hxClasses["funkin.ui.MusicBeatState"] = funkin_ui_MusicBeatState; funkin_ui_MusicBeatState.__name__ = "funkin.ui.MusicBeatState"; funkin_ui_MusicBeatState.__interfaces__ = [funkin_modding_IEventHandler]; funkin_ui_MusicBeatState.__super__ = flixel_addons_transition_FlxTransitionableState; funkin_ui_MusicBeatState.prototype = $extend(flixel_addons_transition_FlxTransitionableState.prototype,{ get_controls: function() { return funkin_PlayerSettings.player1.controls; } ,leftWatermarkText: null ,rightWatermarkText: null ,_conductorInUse: null ,get_conductorInUse: function() { if(this._conductorInUse == null) { return funkin_Conductor.get_instance(); } return this._conductorInUse; } ,set_conductorInUse: function(value) { return this._conductorInUse = value; } ,initCallbacks: function() { this.get_subStateOpened().add($bind(this,this.onOpenSubStateComplete)); this.get_subStateClosed().add($bind(this,this.onCloseSubStateComplete)); } ,create: function() { flixel_addons_transition_FlxTransitionableState.prototype.create.call(this); this.createWatermarkText(); funkin_Conductor.beatHit.add($bind(this,this.beatHit)); funkin_Conductor.stepHit.add($bind(this,this.stepHit)); } ,destroy: function() { flixel_addons_transition_FlxTransitionableState.prototype.destroy.call(this); funkin_Conductor.beatHit.remove($bind(this,this.beatHit)); funkin_Conductor.stepHit.remove($bind(this,this.stepHit)); } ,handleFunctionControls: function() { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(115,_this.status)) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(116,_this.status)) { this.debug_refreshModules(); } } ,update: function(elapsed) { flixel_addons_transition_FlxTransitionableState.prototype.update.call(this,elapsed); this.dispatchEvent(new funkin_modding_events_UpdateScriptEvent(elapsed)); } ,createWatermarkText: function() { this.leftWatermarkText = new flixel_text_FlxText(0,flixel_FlxG.height - 18,flixel_FlxG.width,"",12); this.rightWatermarkText = new flixel_text_FlxText(0,flixel_FlxG.height - 18,flixel_FlxG.width,"",12); this.leftWatermarkText.zIndex = 100000; this.rightWatermarkText.zIndex = 100000; var this1 = this.leftWatermarkText.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.rightWatermarkText.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.leftWatermarkText.setFormat("VCR OSD Mono",16,-1,"left",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); this.rightWatermarkText.setFormat("VCR OSD Mono",16,-1,"right",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); this.add(this.leftWatermarkText); this.add(this.rightWatermarkText); } ,dispatchEvent: function(event) { funkin_modding_module_ModuleHandler.callEvent(event); } ,debug_refreshModules: function() { funkin_modding_PolymodHandler.forceReloadAssets(); this.destroy(); var nextState = flixel_util_typeLimit_NextState.fromMaker(flixel_FlxG.game._state._constructor); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,stepHit: function() { var event = new funkin_modding_events_SongTimeScriptEvent("STEP_HIT",this.get_conductorInUse().currentBeat,this.get_conductorInUse().currentStep); this.dispatchEvent(event); if(event.eventCanceled) { return false; } return true; } ,beatHit: function() { var event = new funkin_modding_events_SongTimeScriptEvent("BEAT_HIT",this.get_conductorInUse().currentBeat,this.get_conductorInUse().currentStep); this.dispatchEvent(event); if(event.eventCanceled) { return false; } return true; } ,refresh: function() { var order = -1; if(order == null) { order = -1; } var _g = funkin_util_SortUtil.byZIndex; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.members.sort(tmp); } ,startOutro: function(onComplete) { var event = new funkin_modding_events_StateChangeScriptEvent("STATE_CHANGE_BEGIN",null,true); this.dispatchEvent(event); if(event.eventCanceled) { return; } else { funkin_audio_FunkinSound.stopAllAudio(); onComplete(); } } ,openSubState: function(targetSubState) { var event = new funkin_modding_events_SubStateScriptEvent("SUBSTATE_OPEN_BEGIN",targetSubState,true); this.dispatchEvent(event); if(event.eventCanceled) { return; } flixel_addons_transition_FlxTransitionableState.prototype.openSubState.call(this,targetSubState); } ,onOpenSubStateComplete: function(targetState) { this.dispatchEvent(new funkin_modding_events_SubStateScriptEvent("SUBSTATE_OPEN_END",targetState,true)); } ,closeSubState: function() { var event = new funkin_modding_events_SubStateScriptEvent("SUBSTATE_CLOSE_BEGIN",this.subState,true); this.dispatchEvent(event); if(event.eventCanceled) { return; } flixel_addons_transition_FlxTransitionableState.prototype.closeSubState.call(this); } ,onCloseSubStateComplete: function(targetState) { this.dispatchEvent(new funkin_modding_events_SubStateScriptEvent("SUBSTATE_CLOSE_END",targetState,true)); } ,__class__: funkin_ui_MusicBeatState ,__properties__: $extend(flixel_addons_transition_FlxTransitionableState.prototype.__properties__,{set_conductorInUse:"set_conductorInUse",get_conductorInUse:"get_conductorInUse",get_controls:"get_controls"}) }); var funkin_modding_base_ScriptedMusicBeatState = function() { funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.modding.base.ScriptedMusicBeatState"] = funkin_modding_base_ScriptedMusicBeatState; funkin_modding_base_ScriptedMusicBeatState.__name__ = "funkin.modding.base.ScriptedMusicBeatState"; funkin_modding_base_ScriptedMusicBeatState.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedMusicBeatState.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.ui.MusicBeatState"); }; funkin_modding_base_ScriptedMusicBeatState.init = function(clsName) { var value = $hxClasses["funkin.modding.base.ScriptedMusicBeatState"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.ui.MusicBeatState"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedMusicBeatState" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedMusicBeatState.__super__ = funkin_ui_MusicBeatState; funkin_modding_base_ScriptedMusicBeatState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedMusicBeatState"; var superName = "MusicBeatState"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); } } ,stepHit: function() { var fieldName = "stepHit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.stepHit.call(this); } } ,startOutro: function(onComplete) { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[onComplete]); } else { funkin_ui_MusicBeatState.prototype.startOutro.call(this,onComplete); } } ,set_conductorInUse: function(value) { var fieldName = "set_conductorInUse"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_ui_MusicBeatState.prototype.set_conductorInUse.call(this,value); } } ,refresh: function() { var fieldName = "refresh"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.refresh.call(this); } } ,openSubState: function(targetSubState) { var fieldName = "openSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[targetSubState]); } else { funkin_ui_MusicBeatState.prototype.openSubState.call(this,targetSubState); } } ,onOpenSubStateComplete: function(targetState) { var fieldName = "onOpenSubStateComplete"; if(this._asc != null) { this._asc.callFunction(fieldName,[targetState]); } else { funkin_ui_MusicBeatState.prototype.onOpenSubStateComplete.call(this,targetState); } } ,onCloseSubStateComplete: function(targetState) { var fieldName = "onCloseSubStateComplete"; if(this._asc != null) { this._asc.callFunction(fieldName,[targetState]); } else { funkin_ui_MusicBeatState.prototype.onCloseSubStateComplete.call(this,targetState); } } ,initCallbacks: function() { var fieldName = "initCallbacks"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.initCallbacks.call(this); } } ,handleFunctionControls: function() { var fieldName = "handleFunctionControls"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.handleFunctionControls.call(this); } } ,get_conductorInUse: function() { var fieldName = "get_conductorInUse"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_conductorInUse.call(this); } } ,dispatchEvent: function(event) { var fieldName = "dispatchEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_ui_MusicBeatState.prototype.dispatchEvent.call(this,event); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.destroy.call(this); } } ,debug_refreshModules: function() { var fieldName = "debug_refreshModules"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.debug_refreshModules.call(this); } } ,createWatermarkText: function() { var fieldName = "createWatermarkText"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.createWatermarkText.call(this); } } ,create: function() { var fieldName = "create"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.create.call(this); } } ,closeSubState: function() { var fieldName = "closeSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.closeSubState.call(this); } } ,beatHit: function() { var fieldName = "beatHit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.beatHit.call(this); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); } ,__super_stepHit: function() { var fieldName = "stepHit"; return funkin_ui_MusicBeatState.prototype.stepHit.call(this); } ,__super_startOutro: function(onComplete) { var fieldName = "startOutro"; funkin_ui_MusicBeatState.prototype.startOutro.call(this,onComplete); } ,__super_set_conductorInUse: function(value) { var fieldName = "set_conductorInUse"; return funkin_ui_MusicBeatState.prototype.set_conductorInUse.call(this,value); } ,__super_refresh: function() { var fieldName = "refresh"; funkin_ui_MusicBeatState.prototype.refresh.call(this); } ,__super_openSubState: function(targetSubState) { var fieldName = "openSubState"; funkin_ui_MusicBeatState.prototype.openSubState.call(this,targetSubState); } ,__super_onOpenSubStateComplete: function(targetState) { var fieldName = "onOpenSubStateComplete"; funkin_ui_MusicBeatState.prototype.onOpenSubStateComplete.call(this,targetState); } ,__super_onCloseSubStateComplete: function(targetState) { var fieldName = "onCloseSubStateComplete"; funkin_ui_MusicBeatState.prototype.onCloseSubStateComplete.call(this,targetState); } ,__super_initCallbacks: function() { var fieldName = "initCallbacks"; funkin_ui_MusicBeatState.prototype.initCallbacks.call(this); } ,__super_handleFunctionControls: function() { var fieldName = "handleFunctionControls"; funkin_ui_MusicBeatState.prototype.handleFunctionControls.call(this); } ,__super_get_conductorInUse: function() { var fieldName = "get_conductorInUse"; return funkin_ui_MusicBeatState.prototype.get_conductorInUse.call(this); } ,__super_dispatchEvent: function(event) { var fieldName = "dispatchEvent"; funkin_ui_MusicBeatState.prototype.dispatchEvent.call(this,event); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_ui_MusicBeatState.prototype.destroy.call(this); } ,__super_debug_refreshModules: function() { var fieldName = "debug_refreshModules"; funkin_ui_MusicBeatState.prototype.debug_refreshModules.call(this); } ,__super_createWatermarkText: function() { var fieldName = "createWatermarkText"; funkin_ui_MusicBeatState.prototype.createWatermarkText.call(this); } ,__super_create: function() { var fieldName = "create"; funkin_ui_MusicBeatState.prototype.create.call(this); } ,__super_closeSubState: function() { var fieldName = "closeSubState"; funkin_ui_MusicBeatState.prototype.closeSubState.call(this); } ,__super_beatHit: function() { var fieldName = "beatHit"; return funkin_ui_MusicBeatState.prototype.beatHit.call(this); } ,transitionOut: function(OnExit) { var fieldName = "transitionOut"; if(this._asc != null) { this._asc.callFunction(fieldName,[OnExit]); } else { funkin_ui_MusicBeatState.prototype.transitionOut.call(this,OnExit); } } ,transitionIn: function() { var fieldName = "transitionIn"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.transitionIn.call(this); } } ,get_hasTransOut: function() { var fieldName = "get_hasTransOut"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_hasTransOut.call(this); } } ,get_hasTransIn: function() { var fieldName = "get_hasTransIn"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_hasTransIn.call(this); } } ,finishTransOut: function() { var fieldName = "finishTransOut"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.finishTransOut.call(this); } } ,finishTransIn: function() { var fieldName = "finishTransIn"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.finishTransIn.call(this); } } ,createTransition: function(data) { var fieldName = "createTransition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[data]); } else { return funkin_ui_MusicBeatState.prototype.createTransition.call(this,data); } } ,__super_transitionOut: function(OnExit) { var fieldName = "transitionOut"; funkin_ui_MusicBeatState.prototype.transitionOut.call(this,OnExit); } ,__super_transitionIn: function() { var fieldName = "transitionIn"; funkin_ui_MusicBeatState.prototype.transitionIn.call(this); } ,__super_get_hasTransOut: function() { var fieldName = "get_hasTransOut"; return funkin_ui_MusicBeatState.prototype.get_hasTransOut.call(this); } ,__super_get_hasTransIn: function() { var fieldName = "get_hasTransIn"; return funkin_ui_MusicBeatState.prototype.get_hasTransIn.call(this); } ,__super_finishTransOut: function() { var fieldName = "finishTransOut"; funkin_ui_MusicBeatState.prototype.finishTransOut.call(this); } ,__super_finishTransIn: function() { var fieldName = "finishTransIn"; funkin_ui_MusicBeatState.prototype.finishTransIn.call(this); } ,__super_createTransition: function(data) { var fieldName = "createTransition"; return funkin_ui_MusicBeatState.prototype.createTransition.call(this,data); } ,tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_ui_MusicBeatState.prototype.tryUpdate.call(this,elapsed); } } ,set_bgColor: function(Value) { var fieldName = "set_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_bgColor.call(this,Value); } } ,resetSubState: function() { var fieldName = "resetSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.resetSubState.call(this); } } ,onResize: function(Width,Height) { var fieldName = "onResize"; if(this._asc != null) { this._asc.callFunction(fieldName,[Width,Height]); } else { funkin_ui_MusicBeatState.prototype.onResize.call(this,Width,Height); } } ,onFocusLost: function() { var fieldName = "onFocusLost"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.onFocusLost.call(this); } } ,onFocus: function() { var fieldName = "onFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.onFocus.call(this); } } ,get_subStateOpened: function() { var fieldName = "get_subStateOpened"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_subStateOpened.call(this); } } ,get_subStateClosed: function() { var fieldName = "get_subStateClosed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_subStateClosed.call(this); } } ,get_bgColor: function() { var fieldName = "get_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_bgColor.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.draw.call(this); } } ,__super_tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; funkin_ui_MusicBeatState.prototype.tryUpdate.call(this,elapsed); } ,__super_set_bgColor: function(Value) { var fieldName = "set_bgColor"; return funkin_ui_MusicBeatState.prototype.set_bgColor.call(this,Value); } ,__super_resetSubState: function() { var fieldName = "resetSubState"; funkin_ui_MusicBeatState.prototype.resetSubState.call(this); } ,__super_onResize: function(Width,Height) { var fieldName = "onResize"; funkin_ui_MusicBeatState.prototype.onResize.call(this,Width,Height); } ,__super_onFocusLost: function() { var fieldName = "onFocusLost"; funkin_ui_MusicBeatState.prototype.onFocusLost.call(this); } ,__super_onFocus: function() { var fieldName = "onFocus"; funkin_ui_MusicBeatState.prototype.onFocus.call(this); } ,__super_get_subStateOpened: function() { var fieldName = "get_subStateOpened"; return funkin_ui_MusicBeatState.prototype.get_subStateOpened.call(this); } ,__super_get_subStateClosed: function() { var fieldName = "get_subStateClosed"; return funkin_ui_MusicBeatState.prototype.get_subStateClosed.call(this); } ,__super_get_bgColor: function() { var fieldName = "get_bgColor"; return funkin_ui_MusicBeatState.prototype.get_bgColor.call(this); } ,__super_draw: function() { var fieldName = "draw"; funkin_ui_MusicBeatState.prototype.draw.call(this); } ,set_maxSize: function(size) { var fieldName = "set_maxSize"; if(this._asc != null) { return this._asc.callFunction(fieldName,[size]); } else { return funkin_ui_MusicBeatState.prototype.set_maxSize.call(this,size); } } ,reviveMembers: function() { var fieldName = "reviveMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.reviveMembers.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.revive.call(this); } } ,replace: function(oldObject,newObject) { var fieldName = "replace"; if(this._asc != null) { return this._asc.callFunction(fieldName,[oldObject,newObject]); } else { return funkin_ui_MusicBeatState.prototype.replace.call(this,oldObject,newObject); } } ,remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic,splice]); } else { return funkin_ui_MusicBeatState.prototype.remove.call(this,basic,splice); } } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,objectFactory,force,revive]); } else { return funkin_ui_MusicBeatState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } } ,killMembers: function() { var fieldName = "killMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.killMembers.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.kill.call(this); } } ,insert: function(position,object) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[position,object]); } else { return funkin_ui_MusicBeatState.prototype.insert.call(this,position,object); } } ,get_memberRemoved: function() { var fieldName = "get_memberRemoved"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_memberRemoved.call(this); } } ,get_memberAdded: function() { var fieldName = "get_memberAdded"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_memberAdded.call(this); } } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[startIndex,length]); } else { return funkin_ui_MusicBeatState.prototype.getRandom.call(this,startIndex,length); } } ,getLastIndex: function(func) { var fieldName = "getLastIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatState.prototype.getLastIndex.call(this,func); } } ,getLast: function(func) { var fieldName = "getLast"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatState.prototype.getLast.call(this,func); } } ,getFirstNull: function() { var fieldName = "getFirstNull"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.getFirstNull.call(this); } } ,getFirstIndex: function(func) { var fieldName = "getFirstIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatState.prototype.getFirstIndex.call(this,func); } } ,getFirstExisting: function() { var fieldName = "getFirstExisting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.getFirstExisting.call(this); } } ,getFirstDead: function() { var fieldName = "getFirstDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.getFirstDead.call(this); } } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,force]); } else { return funkin_ui_MusicBeatState.prototype.getFirstAvailable.call(this,objectClass,force); } } ,getFirstAlive: function() { var fieldName = "getFirstAlive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.getFirstAlive.call(this); } } ,getFirst: function(func) { var fieldName = "getFirst"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatState.prototype.getFirst.call(this,func); } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; if(this._asc != null) { this._asc.callFunction(fieldName,[objectClass,func,recurse]); } else { funkin_ui_MusicBeatState.prototype.forEachOfType.call(this,objectClass,func,recurse); } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatState.prototype.forEachExists.call(this,func,recurse); } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatState.prototype.forEachDead.call(this,func,recurse); } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatState.prototype.forEachAlive.call(this,func,recurse); } } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatState.prototype.forEach.call(this,func,recurse); } } ,every: function(func) { var fieldName = "every"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatState.prototype.every.call(this,func); } } ,countLiving: function() { var fieldName = "countLiving"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.countLiving.call(this); } } ,countDead: function() { var fieldName = "countDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.countDead.call(this); } } ,clear: function() { var fieldName = "clear"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatState.prototype.clear.call(this); } } ,any: function(func) { var fieldName = "any"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatState.prototype.any.call(this,func); } } ,add: function(basic) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic]); } else { return funkin_ui_MusicBeatState.prototype.add.call(this,basic); } } ,__super_set_maxSize: function(size) { var fieldName = "set_maxSize"; return funkin_ui_MusicBeatState.prototype.set_maxSize.call(this,size); } ,__super_reviveMembers: function() { var fieldName = "reviveMembers"; funkin_ui_MusicBeatState.prototype.reviveMembers.call(this); } ,__super_revive: function() { var fieldName = "revive"; funkin_ui_MusicBeatState.prototype.revive.call(this); } ,__super_replace: function(oldObject,newObject) { var fieldName = "replace"; return funkin_ui_MusicBeatState.prototype.replace.call(this,oldObject,newObject); } ,__super_remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; return funkin_ui_MusicBeatState.prototype.remove.call(this,basic,splice); } ,__super_recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; return funkin_ui_MusicBeatState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } ,__super_killMembers: function() { var fieldName = "killMembers"; funkin_ui_MusicBeatState.prototype.killMembers.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_ui_MusicBeatState.prototype.kill.call(this); } ,__super_insert: function(position,object) { var fieldName = "insert"; return funkin_ui_MusicBeatState.prototype.insert.call(this,position,object); } ,__super_get_memberRemoved: function() { var fieldName = "get_memberRemoved"; return funkin_ui_MusicBeatState.prototype.get_memberRemoved.call(this); } ,__super_get_memberAdded: function() { var fieldName = "get_memberAdded"; return funkin_ui_MusicBeatState.prototype.get_memberAdded.call(this); } ,__super_getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; return funkin_ui_MusicBeatState.prototype.getRandom.call(this,startIndex,length); } ,__super_getLastIndex: function(func) { var fieldName = "getLastIndex"; return funkin_ui_MusicBeatState.prototype.getLastIndex.call(this,func); } ,__super_getLast: function(func) { var fieldName = "getLast"; return funkin_ui_MusicBeatState.prototype.getLast.call(this,func); } ,__super_getFirstNull: function() { var fieldName = "getFirstNull"; return funkin_ui_MusicBeatState.prototype.getFirstNull.call(this); } ,__super_getFirstIndex: function(func) { var fieldName = "getFirstIndex"; return funkin_ui_MusicBeatState.prototype.getFirstIndex.call(this,func); } ,__super_getFirstExisting: function() { var fieldName = "getFirstExisting"; return funkin_ui_MusicBeatState.prototype.getFirstExisting.call(this); } ,__super_getFirstDead: function() { var fieldName = "getFirstDead"; return funkin_ui_MusicBeatState.prototype.getFirstDead.call(this); } ,__super_getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; return funkin_ui_MusicBeatState.prototype.getFirstAvailable.call(this,objectClass,force); } ,__super_getFirstAlive: function() { var fieldName = "getFirstAlive"; return funkin_ui_MusicBeatState.prototype.getFirstAlive.call(this); } ,__super_getFirst: function(func) { var fieldName = "getFirst"; return funkin_ui_MusicBeatState.prototype.getFirst.call(this,func); } ,__super_forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; funkin_ui_MusicBeatState.prototype.forEachOfType.call(this,objectClass,func,recurse); } ,__super_forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; funkin_ui_MusicBeatState.prototype.forEachExists.call(this,func,recurse); } ,__super_forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; funkin_ui_MusicBeatState.prototype.forEachDead.call(this,func,recurse); } ,__super_forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; funkin_ui_MusicBeatState.prototype.forEachAlive.call(this,func,recurse); } ,__super_forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; funkin_ui_MusicBeatState.prototype.forEach.call(this,func,recurse); } ,__super_every: function(func) { var fieldName = "every"; return funkin_ui_MusicBeatState.prototype.every.call(this,func); } ,__super_countLiving: function() { var fieldName = "countLiving"; return funkin_ui_MusicBeatState.prototype.countLiving.call(this); } ,__super_countDead: function() { var fieldName = "countDead"; return funkin_ui_MusicBeatState.prototype.countDead.call(this); } ,__super_clear: function() { var fieldName = "clear"; funkin_ui_MusicBeatState.prototype.clear.call(this); } ,__super_any: function(func) { var fieldName = "any"; return funkin_ui_MusicBeatState.prototype.any.call(this,func); } ,__super_add: function(basic) { var fieldName = "add"; return funkin_ui_MusicBeatState.prototype.add.call(this,basic); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatState.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatState.prototype.get_camera.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_ui_MusicBeatState.prototype.toString.call(this); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_ui_MusicBeatState.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_ui_MusicBeatState.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_ui_MusicBeatState.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_ui_MusicBeatState.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_ui_MusicBeatState.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_ui_MusicBeatState.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_ui_MusicBeatState.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_ui_MusicBeatState.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedMusicBeatState }); var funkin_ui_MusicBeatSubState = function(bgColor) { if(bgColor == null) { bgColor = 0; } this.rightWatermarkText = null; this.leftWatermarkText = null; flixel_FlxSubState.call(this); this.set_bgColor(bgColor); }; $hxClasses["funkin.ui.MusicBeatSubState"] = funkin_ui_MusicBeatSubState; funkin_ui_MusicBeatSubState.__name__ = "funkin.ui.MusicBeatSubState"; funkin_ui_MusicBeatSubState.__interfaces__ = [funkin_modding_IEventHandler]; funkin_ui_MusicBeatSubState.__super__ = flixel_FlxSubState; funkin_ui_MusicBeatSubState.prototype = $extend(flixel_FlxSubState.prototype,{ leftWatermarkText: null ,rightWatermarkText: null ,_conductorInUse: null ,get_conductorInUse: function() { if(this._conductorInUse == null) { return funkin_Conductor.get_instance(); } return this._conductorInUse; } ,set_conductorInUse: function(value) { return this._conductorInUse = value; } ,get_controls: function() { return funkin_PlayerSettings.player1.controls; } ,create: function() { flixel_FlxSubState.prototype.create.call(this); this.createWatermarkText(); funkin_Conductor.beatHit.add($bind(this,this.beatHit)); funkin_Conductor.stepHit.add($bind(this,this.stepHit)); } ,destroy: function() { flixel_FlxSubState.prototype.destroy.call(this); funkin_Conductor.beatHit.remove($bind(this,this.beatHit)); funkin_Conductor.stepHit.remove($bind(this,this.stepHit)); } ,update: function(elapsed) { flixel_FlxSubState.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(115,_this.status)) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(116,_this.status)) { this.debug_refreshModules(); } funkin_Conductor.watchQuick(this.get_conductorInUse()); this.dispatchEvent(new funkin_modding_events_UpdateScriptEvent(elapsed)); } ,debug_refreshModules: function() { funkin_modding_PolymodHandler.forceReloadAssets(); var nextState = flixel_util_typeLimit_NextState.fromMaker(flixel_FlxG.game._state._constructor); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,refresh: function() { var order = -1; if(order == null) { order = -1; } var _g = funkin_util_SortUtil.byZIndex; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.members.sort(tmp); } ,stepHit: function() { var event = new funkin_modding_events_SongTimeScriptEvent("STEP_HIT",this.get_conductorInUse().currentBeat,this.get_conductorInUse().currentStep); this.dispatchEvent(event); if(event.eventCanceled) { return false; } return true; } ,beatHit: function() { var event = new funkin_modding_events_SongTimeScriptEvent("BEAT_HIT",this.get_conductorInUse().currentBeat,this.get_conductorInUse().currentStep); this.dispatchEvent(event); if(event.eventCanceled) { return false; } return true; } ,dispatchEvent: function(event) { funkin_modding_module_ModuleHandler.callEvent(event); } ,createWatermarkText: function() { this.leftWatermarkText = new flixel_text_FlxText(0,flixel_FlxG.height - 18,flixel_FlxG.width,"",12); this.rightWatermarkText = new flixel_text_FlxText(0,flixel_FlxG.height - 18,flixel_FlxG.width,"",12); this.leftWatermarkText.zIndex = 100000; this.rightWatermarkText.zIndex = 100000; var this1 = this.leftWatermarkText.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.rightWatermarkText.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.leftWatermarkText.setFormat("VCR OSD Mono",16,-1,"left",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); this.rightWatermarkText.setFormat("VCR OSD Mono",16,-1,"right",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); this.add(this.leftWatermarkText); this.add(this.rightWatermarkText); } ,switchSubState: function(substate) { this.close(); this._parentState.openSubState(substate); } ,startOutro: function(onComplete) { var event = new funkin_modding_events_StateChangeScriptEvent("STATE_CHANGE_BEGIN",null,true); this.dispatchEvent(event); if(event.eventCanceled) { return; } else { funkin_audio_FunkinSound.stopAllAudio(); onComplete(); } } ,openSubState: function(targetSubState) { var event = new funkin_modding_events_SubStateScriptEvent("SUBSTATE_OPEN_BEGIN",targetSubState,true); this.dispatchEvent(event); if(event.eventCanceled) { return; } flixel_FlxSubState.prototype.openSubState.call(this,targetSubState); } ,onOpenSubStateComplete: function(targetState) { this.dispatchEvent(new funkin_modding_events_SubStateScriptEvent("SUBSTATE_OPEN_END",targetState,true)); } ,closeSubState: function() { var event = new funkin_modding_events_SubStateScriptEvent("SUBSTATE_CLOSE_BEGIN",this.subState,true); this.dispatchEvent(event); if(event.eventCanceled) { return; } flixel_FlxSubState.prototype.closeSubState.call(this); } ,onCloseSubStateComplete: function(targetState) { this.dispatchEvent(new funkin_modding_events_SubStateScriptEvent("SUBSTATE_CLOSE_END",targetState,true)); } ,__class__: funkin_ui_MusicBeatSubState ,__properties__: $extend(flixel_FlxSubState.prototype.__properties__,{get_controls:"get_controls",set_conductorInUse:"set_conductorInUse",get_conductorInUse:"get_conductorInUse"}) }); var funkin_modding_base_ScriptedMusicBeatSubState = function(bgColor) { funkin_ui_MusicBeatSubState.call(this,bgColor); }; $hxClasses["funkin.modding.base.ScriptedMusicBeatSubState"] = funkin_modding_base_ScriptedMusicBeatSubState; funkin_modding_base_ScriptedMusicBeatSubState.__name__ = "funkin.modding.base.ScriptedMusicBeatSubState"; funkin_modding_base_ScriptedMusicBeatSubState.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_base_ScriptedMusicBeatSubState.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.ui.MusicBeatSubState"); }; funkin_modding_base_ScriptedMusicBeatSubState.init = function(clsName,bgColor) { var value = $hxClasses["funkin.modding.base.ScriptedMusicBeatSubState"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.ui.MusicBeatSubState"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[bgColor]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.base.ScriptedMusicBeatSubState" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_base_ScriptedMusicBeatSubState.__super__ = funkin_ui_MusicBeatSubState; funkin_modding_base_ScriptedMusicBeatSubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedMusicBeatSubState"; var superName = "MusicBeatSubState"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); } } ,switchSubState: function(substate) { var fieldName = "switchSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[substate]); } else { funkin_ui_MusicBeatSubState.prototype.switchSubState.call(this,substate); } } ,stepHit: function() { var fieldName = "stepHit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.stepHit.call(this); } } ,startOutro: function(onComplete) { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[onComplete]); } else { funkin_ui_MusicBeatSubState.prototype.startOutro.call(this,onComplete); } } ,set_conductorInUse: function(value) { var fieldName = "set_conductorInUse"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_conductorInUse.call(this,value); } } ,refresh: function() { var fieldName = "refresh"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.refresh.call(this); } } ,openSubState: function(targetSubState) { var fieldName = "openSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[targetSubState]); } else { funkin_ui_MusicBeatSubState.prototype.openSubState.call(this,targetSubState); } } ,onOpenSubStateComplete: function(targetState) { var fieldName = "onOpenSubStateComplete"; if(this._asc != null) { this._asc.callFunction(fieldName,[targetState]); } else { funkin_ui_MusicBeatSubState.prototype.onOpenSubStateComplete.call(this,targetState); } } ,onCloseSubStateComplete: function(targetState) { var fieldName = "onCloseSubStateComplete"; if(this._asc != null) { this._asc.callFunction(fieldName,[targetState]); } else { funkin_ui_MusicBeatSubState.prototype.onCloseSubStateComplete.call(this,targetState); } } ,get_conductorInUse: function() { var fieldName = "get_conductorInUse"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_conductorInUse.call(this); } } ,dispatchEvent: function(event) { var fieldName = "dispatchEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_ui_MusicBeatSubState.prototype.dispatchEvent.call(this,event); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.destroy.call(this); } } ,debug_refreshModules: function() { var fieldName = "debug_refreshModules"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.debug_refreshModules.call(this); } } ,createWatermarkText: function() { var fieldName = "createWatermarkText"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.createWatermarkText.call(this); } } ,create: function() { var fieldName = "create"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.create.call(this); } } ,closeSubState: function() { var fieldName = "closeSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.closeSubState.call(this); } } ,beatHit: function() { var fieldName = "beatHit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.beatHit.call(this); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); } ,__super_switchSubState: function(substate) { var fieldName = "switchSubState"; funkin_ui_MusicBeatSubState.prototype.switchSubState.call(this,substate); } ,__super_stepHit: function() { var fieldName = "stepHit"; return funkin_ui_MusicBeatSubState.prototype.stepHit.call(this); } ,__super_startOutro: function(onComplete) { var fieldName = "startOutro"; funkin_ui_MusicBeatSubState.prototype.startOutro.call(this,onComplete); } ,__super_set_conductorInUse: function(value) { var fieldName = "set_conductorInUse"; return funkin_ui_MusicBeatSubState.prototype.set_conductorInUse.call(this,value); } ,__super_refresh: function() { var fieldName = "refresh"; funkin_ui_MusicBeatSubState.prototype.refresh.call(this); } ,__super_openSubState: function(targetSubState) { var fieldName = "openSubState"; funkin_ui_MusicBeatSubState.prototype.openSubState.call(this,targetSubState); } ,__super_onOpenSubStateComplete: function(targetState) { var fieldName = "onOpenSubStateComplete"; funkin_ui_MusicBeatSubState.prototype.onOpenSubStateComplete.call(this,targetState); } ,__super_onCloseSubStateComplete: function(targetState) { var fieldName = "onCloseSubStateComplete"; funkin_ui_MusicBeatSubState.prototype.onCloseSubStateComplete.call(this,targetState); } ,__super_get_conductorInUse: function() { var fieldName = "get_conductorInUse"; return funkin_ui_MusicBeatSubState.prototype.get_conductorInUse.call(this); } ,__super_dispatchEvent: function(event) { var fieldName = "dispatchEvent"; funkin_ui_MusicBeatSubState.prototype.dispatchEvent.call(this,event); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_ui_MusicBeatSubState.prototype.destroy.call(this); } ,__super_debug_refreshModules: function() { var fieldName = "debug_refreshModules"; funkin_ui_MusicBeatSubState.prototype.debug_refreshModules.call(this); } ,__super_createWatermarkText: function() { var fieldName = "createWatermarkText"; funkin_ui_MusicBeatSubState.prototype.createWatermarkText.call(this); } ,__super_create: function() { var fieldName = "create"; funkin_ui_MusicBeatSubState.prototype.create.call(this); } ,__super_closeSubState: function() { var fieldName = "closeSubState"; funkin_ui_MusicBeatSubState.prototype.closeSubState.call(this); } ,__super_beatHit: function() { var fieldName = "beatHit"; return funkin_ui_MusicBeatSubState.prototype.beatHit.call(this); } ,set_bgColor: function(Value) { var fieldName = "set_bgColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_bgColor.call(this,Value); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.draw.call(this); } } ,close: function() { var fieldName = "close"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.close.call(this); } } ,__super_set_bgColor: function(Value) { var fieldName = "set_bgColor"; return funkin_ui_MusicBeatSubState.prototype.set_bgColor.call(this,Value); } ,__super_draw: function() { var fieldName = "draw"; funkin_ui_MusicBeatSubState.prototype.draw.call(this); } ,__super_close: function() { var fieldName = "close"; funkin_ui_MusicBeatSubState.prototype.close.call(this); } ,tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_ui_MusicBeatSubState.prototype.tryUpdate.call(this,elapsed); } } ,resetSubState: function() { var fieldName = "resetSubState"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.resetSubState.call(this); } } ,onResize: function(Width,Height) { var fieldName = "onResize"; if(this._asc != null) { this._asc.callFunction(fieldName,[Width,Height]); } else { funkin_ui_MusicBeatSubState.prototype.onResize.call(this,Width,Height); } } ,onFocusLost: function() { var fieldName = "onFocusLost"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.onFocusLost.call(this); } } ,onFocus: function() { var fieldName = "onFocus"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.onFocus.call(this); } } ,get_subStateOpened: function() { var fieldName = "get_subStateOpened"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_subStateOpened.call(this); } } ,get_subStateClosed: function() { var fieldName = "get_subStateClosed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_subStateClosed.call(this); } } ,__super_tryUpdate: function(elapsed) { var fieldName = "tryUpdate"; funkin_ui_MusicBeatSubState.prototype.tryUpdate.call(this,elapsed); } ,__super_resetSubState: function() { var fieldName = "resetSubState"; funkin_ui_MusicBeatSubState.prototype.resetSubState.call(this); } ,__super_onResize: function(Width,Height) { var fieldName = "onResize"; funkin_ui_MusicBeatSubState.prototype.onResize.call(this,Width,Height); } ,__super_onFocusLost: function() { var fieldName = "onFocusLost"; funkin_ui_MusicBeatSubState.prototype.onFocusLost.call(this); } ,__super_onFocus: function() { var fieldName = "onFocus"; funkin_ui_MusicBeatSubState.prototype.onFocus.call(this); } ,__super_get_subStateOpened: function() { var fieldName = "get_subStateOpened"; return funkin_ui_MusicBeatSubState.prototype.get_subStateOpened.call(this); } ,__super_get_subStateClosed: function() { var fieldName = "get_subStateClosed"; return funkin_ui_MusicBeatSubState.prototype.get_subStateClosed.call(this); } ,__super_get_bgColor: function() { var fieldName = "get_bgColor"; return this._bgColor; } ,set_maxSize: function(size) { var fieldName = "set_maxSize"; if(this._asc != null) { return this._asc.callFunction(fieldName,[size]); } else { return funkin_ui_MusicBeatSubState.prototype.set_maxSize.call(this,size); } } ,reviveMembers: function() { var fieldName = "reviveMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.reviveMembers.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.revive.call(this); } } ,replace: function(oldObject,newObject) { var fieldName = "replace"; if(this._asc != null) { return this._asc.callFunction(fieldName,[oldObject,newObject]); } else { return funkin_ui_MusicBeatSubState.prototype.replace.call(this,oldObject,newObject); } } ,remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic,splice]); } else { return funkin_ui_MusicBeatSubState.prototype.remove.call(this,basic,splice); } } ,recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,objectFactory,force,revive]); } else { return funkin_ui_MusicBeatSubState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } } ,killMembers: function() { var fieldName = "killMembers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.killMembers.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.kill.call(this); } } ,insert: function(position,object) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[position,object]); } else { return funkin_ui_MusicBeatSubState.prototype.insert.call(this,position,object); } } ,get_memberRemoved: function() { var fieldName = "get_memberRemoved"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_memberRemoved.call(this); } } ,get_memberAdded: function() { var fieldName = "get_memberAdded"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_memberAdded.call(this); } } ,getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[startIndex,length]); } else { return funkin_ui_MusicBeatSubState.prototype.getRandom.call(this,startIndex,length); } } ,getLastIndex: function(func) { var fieldName = "getLastIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatSubState.prototype.getLastIndex.call(this,func); } } ,getLast: function(func) { var fieldName = "getLast"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatSubState.prototype.getLast.call(this,func); } } ,getFirstNull: function() { var fieldName = "getFirstNull"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirstNull.call(this); } } ,getFirstIndex: function(func) { var fieldName = "getFirstIndex"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirstIndex.call(this,func); } } ,getFirstExisting: function() { var fieldName = "getFirstExisting"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirstExisting.call(this); } } ,getFirstDead: function() { var fieldName = "getFirstDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirstDead.call(this); } } ,getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectClass,force]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirstAvailable.call(this,objectClass,force); } } ,getFirstAlive: function() { var fieldName = "getFirstAlive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirstAlive.call(this); } } ,getFirst: function(func) { var fieldName = "getFirst"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatSubState.prototype.getFirst.call(this,func); } } ,forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; if(this._asc != null) { this._asc.callFunction(fieldName,[objectClass,func,recurse]); } else { funkin_ui_MusicBeatSubState.prototype.forEachOfType.call(this,objectClass,func,recurse); } } ,forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatSubState.prototype.forEachExists.call(this,func,recurse); } } ,forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatSubState.prototype.forEachDead.call(this,func,recurse); } } ,forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatSubState.prototype.forEachAlive.call(this,func,recurse); } } ,forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; if(this._asc != null) { this._asc.callFunction(fieldName,[func,recurse]); } else { funkin_ui_MusicBeatSubState.prototype.forEach.call(this,func,recurse); } } ,every: function(func) { var fieldName = "every"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatSubState.prototype.every.call(this,func); } } ,countLiving: function() { var fieldName = "countLiving"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.countLiving.call(this); } } ,countDead: function() { var fieldName = "countDead"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.countDead.call(this); } } ,clear: function() { var fieldName = "clear"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_MusicBeatSubState.prototype.clear.call(this); } } ,any: function(func) { var fieldName = "any"; if(this._asc != null) { return this._asc.callFunction(fieldName,[func]); } else { return funkin_ui_MusicBeatSubState.prototype.any.call(this,func); } } ,add: function(basic) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[basic]); } else { return funkin_ui_MusicBeatSubState.prototype.add.call(this,basic); } } ,__super_set_maxSize: function(size) { var fieldName = "set_maxSize"; return funkin_ui_MusicBeatSubState.prototype.set_maxSize.call(this,size); } ,__super_reviveMembers: function() { var fieldName = "reviveMembers"; funkin_ui_MusicBeatSubState.prototype.reviveMembers.call(this); } ,__super_revive: function() { var fieldName = "revive"; funkin_ui_MusicBeatSubState.prototype.revive.call(this); } ,__super_replace: function(oldObject,newObject) { var fieldName = "replace"; return funkin_ui_MusicBeatSubState.prototype.replace.call(this,oldObject,newObject); } ,__super_remove: function(basic,splice) { if(splice == null) { splice = false; } var fieldName = "remove"; return funkin_ui_MusicBeatSubState.prototype.remove.call(this,basic,splice); } ,__super_recycle: function(objectClass,objectFactory,force,revive) { if(revive == null) { revive = true; } if(force == null) { force = false; } var fieldName = "recycle"; return funkin_ui_MusicBeatSubState.prototype.recycle.call(this,objectClass,objectFactory,force,revive); } ,__super_killMembers: function() { var fieldName = "killMembers"; funkin_ui_MusicBeatSubState.prototype.killMembers.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_ui_MusicBeatSubState.prototype.kill.call(this); } ,__super_insert: function(position,object) { var fieldName = "insert"; return funkin_ui_MusicBeatSubState.prototype.insert.call(this,position,object); } ,__super_get_memberRemoved: function() { var fieldName = "get_memberRemoved"; return funkin_ui_MusicBeatSubState.prototype.get_memberRemoved.call(this); } ,__super_get_memberAdded: function() { var fieldName = "get_memberAdded"; return funkin_ui_MusicBeatSubState.prototype.get_memberAdded.call(this); } ,__super_getRandom: function(startIndex,length) { if(length == null) { length = 0; } if(startIndex == null) { startIndex = 0; } var fieldName = "getRandom"; return funkin_ui_MusicBeatSubState.prototype.getRandom.call(this,startIndex,length); } ,__super_getLastIndex: function(func) { var fieldName = "getLastIndex"; return funkin_ui_MusicBeatSubState.prototype.getLastIndex.call(this,func); } ,__super_getLast: function(func) { var fieldName = "getLast"; return funkin_ui_MusicBeatSubState.prototype.getLast.call(this,func); } ,__super_getFirstNull: function() { var fieldName = "getFirstNull"; return funkin_ui_MusicBeatSubState.prototype.getFirstNull.call(this); } ,__super_getFirstIndex: function(func) { var fieldName = "getFirstIndex"; return funkin_ui_MusicBeatSubState.prototype.getFirstIndex.call(this,func); } ,__super_getFirstExisting: function() { var fieldName = "getFirstExisting"; return funkin_ui_MusicBeatSubState.prototype.getFirstExisting.call(this); } ,__super_getFirstDead: function() { var fieldName = "getFirstDead"; return funkin_ui_MusicBeatSubState.prototype.getFirstDead.call(this); } ,__super_getFirstAvailable: function(objectClass,force) { if(force == null) { force = false; } var fieldName = "getFirstAvailable"; return funkin_ui_MusicBeatSubState.prototype.getFirstAvailable.call(this,objectClass,force); } ,__super_getFirstAlive: function() { var fieldName = "getFirstAlive"; return funkin_ui_MusicBeatSubState.prototype.getFirstAlive.call(this); } ,__super_getFirst: function(func) { var fieldName = "getFirst"; return funkin_ui_MusicBeatSubState.prototype.getFirst.call(this,func); } ,__super_forEachOfType: function(objectClass,func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachOfType"; funkin_ui_MusicBeatSubState.prototype.forEachOfType.call(this,objectClass,func,recurse); } ,__super_forEachExists: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachExists"; funkin_ui_MusicBeatSubState.prototype.forEachExists.call(this,func,recurse); } ,__super_forEachDead: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachDead"; funkin_ui_MusicBeatSubState.prototype.forEachDead.call(this,func,recurse); } ,__super_forEachAlive: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEachAlive"; funkin_ui_MusicBeatSubState.prototype.forEachAlive.call(this,func,recurse); } ,__super_forEach: function(func,recurse) { if(recurse == null) { recurse = false; } var fieldName = "forEach"; funkin_ui_MusicBeatSubState.prototype.forEach.call(this,func,recurse); } ,__super_every: function(func) { var fieldName = "every"; return funkin_ui_MusicBeatSubState.prototype.every.call(this,func); } ,__super_countLiving: function() { var fieldName = "countLiving"; return funkin_ui_MusicBeatSubState.prototype.countLiving.call(this); } ,__super_countDead: function() { var fieldName = "countDead"; return funkin_ui_MusicBeatSubState.prototype.countDead.call(this); } ,__super_clear: function() { var fieldName = "clear"; funkin_ui_MusicBeatSubState.prototype.clear.call(this); } ,__super_any: function(func) { var fieldName = "any"; return funkin_ui_MusicBeatSubState.prototype.any.call(this,func); } ,__super_add: function(basic) { var fieldName = "add"; return funkin_ui_MusicBeatSubState.prototype.add.call(this,basic); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_ui_MusicBeatSubState.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_MusicBeatSubState.prototype.get_camera.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_ui_MusicBeatSubState.prototype.toString.call(this); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_ui_MusicBeatSubState.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_ui_MusicBeatSubState.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_ui_MusicBeatSubState.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_ui_MusicBeatSubState.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_ui_MusicBeatSubState.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_ui_MusicBeatSubState.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_ui_MusicBeatSubState.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_ui_MusicBeatSubState.prototype.get_camera.call(this); } ,__class__: funkin_modding_base_ScriptedMusicBeatSubState }); var funkin_modding_events_ScriptEvent = function(type,cancelable) { if(cancelable == null) { cancelable = false; } this.type = type; this.cancelable = cancelable; this.eventCanceled = false; this.shouldPropagate = true; }; $hxClasses["funkin.modding.events.ScriptEvent"] = funkin_modding_events_ScriptEvent; funkin_modding_events_ScriptEvent.__name__ = "funkin.modding.events.ScriptEvent"; funkin_modding_events_ScriptEvent.prototype = { cancelable: null ,type: null ,shouldPropagate: null ,eventCanceled: null ,cancelEvent: function() { if(this.cancelable) { this.eventCanceled = true; } } ,cancel: function() { this.cancelEvent(); } ,stopPropagation: function() { this.shouldPropagate = false; } ,toString: function() { return "ScriptEvent(type=" + this.type + ", cancelable=" + Std.string(this.cancelable) + ")"; } ,__class__: funkin_modding_events_ScriptEvent }; var funkin_modding_events_NoteScriptEvent = function(type,note,healthChange,comboCount,cancelable) { if(cancelable == null) { cancelable = false; } if(comboCount == null) { comboCount = 0; } funkin_modding_events_ScriptEvent.call(this,type,cancelable); this.note = note; this.comboCount = comboCount; this.playSound = true; this.healthChange = healthChange; }; $hxClasses["funkin.modding.events.NoteScriptEvent"] = funkin_modding_events_NoteScriptEvent; funkin_modding_events_NoteScriptEvent.__name__ = "funkin.modding.events.NoteScriptEvent"; funkin_modding_events_NoteScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_NoteScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ note: null ,comboCount: null ,playSound: null ,healthChange: null ,toString: function() { return "NoteScriptEvent(type=" + this.type + ", cancelable=" + Std.string(this.cancelable) + ", note=" + Std.string(this.note) + ", comboCount=" + this.comboCount + ")"; } ,__class__: funkin_modding_events_NoteScriptEvent }); var funkin_modding_events_HitNoteScriptEvent = function(note,healthChange,score,judgement,isComboBreak,comboCount,hitDiff,doesNotesplash) { if(doesNotesplash == null) { doesNotesplash = false; } if(hitDiff == null) { hitDiff = 0; } if(comboCount == null) { comboCount = 0; } this.doesNotesplash = false; this.hitDiff = 0; this.isComboBreak = false; funkin_modding_events_NoteScriptEvent.call(this,"NOTE_HIT",note,healthChange,comboCount,true); this.score = score; this.judgement = judgement; this.isComboBreak = isComboBreak; this.doesNotesplash = doesNotesplash; this.hitDiff = hitDiff; }; $hxClasses["funkin.modding.events.HitNoteScriptEvent"] = funkin_modding_events_HitNoteScriptEvent; funkin_modding_events_HitNoteScriptEvent.__name__ = "funkin.modding.events.HitNoteScriptEvent"; funkin_modding_events_HitNoteScriptEvent.__super__ = funkin_modding_events_NoteScriptEvent; funkin_modding_events_HitNoteScriptEvent.prototype = $extend(funkin_modding_events_NoteScriptEvent.prototype,{ judgement: null ,score: null ,isComboBreak: null ,hitDiff: null ,doesNotesplash: null ,toString: function() { return "HitNoteScriptEvent(note=" + Std.string(this.note) + ", comboCount=" + this.comboCount + ", judgement=" + this.judgement + ", score=" + this.score + ", isComboBreak=" + Std.string(this.isComboBreak) + ", hitDiff=" + this.hitDiff + ", doesNotesplash=" + Std.string(this.doesNotesplash) + ")"; } ,__class__: funkin_modding_events_HitNoteScriptEvent }); var funkin_modding_events_GhostMissNoteScriptEvent = function(dir,hasPossibleNotes,healthChange,scoreChange) { funkin_modding_events_ScriptEvent.call(this,"NOTE_GHOST_MISS",true); this.dir = dir; this.hasPossibleNotes = hasPossibleNotes; this.healthChange = healthChange; this.scoreChange = scoreChange; this.playSound = true; this.playAnim = true; }; $hxClasses["funkin.modding.events.GhostMissNoteScriptEvent"] = funkin_modding_events_GhostMissNoteScriptEvent; funkin_modding_events_GhostMissNoteScriptEvent.__name__ = "funkin.modding.events.GhostMissNoteScriptEvent"; funkin_modding_events_GhostMissNoteScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_GhostMissNoteScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ dir: null ,hasPossibleNotes: null ,healthChange: null ,scoreChange: null ,playSound: null ,playAnim: null ,toString: function() { return "GhostMissNoteScriptEvent(dir=" + (this.dir == null ? "null" : funkin_play_notes_NoteDirection.toString(this.dir)) + ", hasPossibleNotes=" + Std.string(this.hasPossibleNotes) + ")"; } ,__class__: funkin_modding_events_GhostMissNoteScriptEvent }); var funkin_modding_events_SongEventScriptEvent = function(eventData) { funkin_modding_events_ScriptEvent.call(this,"SONG_EVENT",true); this.eventData = eventData; }; $hxClasses["funkin.modding.events.SongEventScriptEvent"] = funkin_modding_events_SongEventScriptEvent; funkin_modding_events_SongEventScriptEvent.__name__ = "funkin.modding.events.SongEventScriptEvent"; funkin_modding_events_SongEventScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_SongEventScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ eventData: null ,toString: function() { return "SongEventScriptEvent(event=" + (this.eventData == null ? "null" : funkin_data_song_SongEventData.toString(this.eventData)) + ")"; } ,__class__: funkin_modding_events_SongEventScriptEvent }); var funkin_modding_events_UpdateScriptEvent = function(elapsed) { funkin_modding_events_ScriptEvent.call(this,"UPDATE",false); this.elapsed = elapsed; }; $hxClasses["funkin.modding.events.UpdateScriptEvent"] = funkin_modding_events_UpdateScriptEvent; funkin_modding_events_UpdateScriptEvent.__name__ = "funkin.modding.events.UpdateScriptEvent"; funkin_modding_events_UpdateScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_UpdateScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ elapsed: null ,toString: function() { return "UpdateScriptEvent(elapsed=" + this.elapsed + ")"; } ,__class__: funkin_modding_events_UpdateScriptEvent }); var funkin_modding_events_SongTimeScriptEvent = function(type,beat,step) { funkin_modding_events_ScriptEvent.call(this,type,true); this.beat = beat; this.step = step; }; $hxClasses["funkin.modding.events.SongTimeScriptEvent"] = funkin_modding_events_SongTimeScriptEvent; funkin_modding_events_SongTimeScriptEvent.__name__ = "funkin.modding.events.SongTimeScriptEvent"; funkin_modding_events_SongTimeScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_SongTimeScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ beat: null ,step: null ,toString: function() { return "SongTimeScriptEvent(type=" + this.type + ", beat=" + this.beat + ", step=" + this.step + ")"; } ,__class__: funkin_modding_events_SongTimeScriptEvent }); var funkin_modding_events_CountdownScriptEvent = function(type,step,cancelable) { if(cancelable == null) { cancelable = true; } funkin_modding_events_ScriptEvent.call(this,type,cancelable); this.step = step; }; $hxClasses["funkin.modding.events.CountdownScriptEvent"] = funkin_modding_events_CountdownScriptEvent; funkin_modding_events_CountdownScriptEvent.__name__ = "funkin.modding.events.CountdownScriptEvent"; funkin_modding_events_CountdownScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_CountdownScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ step: null ,toString: function() { return "CountdownScriptEvent(type=" + this.type + ", step=" + Std.string(this.step) + ")"; } ,__class__: funkin_modding_events_CountdownScriptEvent }); var funkin_modding_events_DialogueScriptEvent = function(type,conversation,cancelable) { if(cancelable == null) { cancelable = true; } funkin_modding_events_ScriptEvent.call(this,type,cancelable); this.conversation = conversation; }; $hxClasses["funkin.modding.events.DialogueScriptEvent"] = funkin_modding_events_DialogueScriptEvent; funkin_modding_events_DialogueScriptEvent.__name__ = "funkin.modding.events.DialogueScriptEvent"; funkin_modding_events_DialogueScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_DialogueScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ conversation: null ,toString: function() { return "DialogueScriptEvent(type=" + this.type + ", conversation=" + Std.string(this.conversation) + ")"; } ,__class__: funkin_modding_events_DialogueScriptEvent }); var funkin_modding_events_KeyboardInputScriptEvent = function(type,event) { funkin_modding_events_ScriptEvent.call(this,type,false); this.event = event; }; $hxClasses["funkin.modding.events.KeyboardInputScriptEvent"] = funkin_modding_events_KeyboardInputScriptEvent; funkin_modding_events_KeyboardInputScriptEvent.__name__ = "funkin.modding.events.KeyboardInputScriptEvent"; funkin_modding_events_KeyboardInputScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_KeyboardInputScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ event: null ,toString: function() { return "KeyboardInputScriptEvent(type=" + this.type + ", event=" + Std.string(this.event) + ")"; } ,__class__: funkin_modding_events_KeyboardInputScriptEvent }); var funkin_modding_events_SongLoadScriptEvent = function(id,difficulty,notes,events) { funkin_modding_events_ScriptEvent.call(this,"SONG_LOADED",false); this.id = id; this.difficulty = difficulty; this.set_notes(notes); this.set_events(events); }; $hxClasses["funkin.modding.events.SongLoadScriptEvent"] = funkin_modding_events_SongLoadScriptEvent; funkin_modding_events_SongLoadScriptEvent.__name__ = "funkin.modding.events.SongLoadScriptEvent"; funkin_modding_events_SongLoadScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_SongLoadScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ notes: null ,events: null ,id: null ,difficulty: null ,set_notes: function(notes) { this.notes = notes; return this.notes; } ,set_events: function(events) { this.events = events; return this.events; } ,toString: function() { var noteStr = this.notes == null ? "null" : "Array(" + this.notes.length + ")"; return "SongLoadScriptEvent(notes=" + noteStr + ", id=" + this.id + ", difficulty=" + this.difficulty + ")"; } ,__class__: funkin_modding_events_SongLoadScriptEvent ,__properties__: {set_events:"set_events",set_notes:"set_notes"} }); var funkin_modding_events_StateChangeScriptEvent = function(type,targetState,cancelable) { if(cancelable == null) { cancelable = false; } funkin_modding_events_ScriptEvent.call(this,type,cancelable); this.targetState = targetState; }; $hxClasses["funkin.modding.events.StateChangeScriptEvent"] = funkin_modding_events_StateChangeScriptEvent; funkin_modding_events_StateChangeScriptEvent.__name__ = "funkin.modding.events.StateChangeScriptEvent"; funkin_modding_events_StateChangeScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_StateChangeScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ targetState: null ,toString: function() { return "StateChangeScriptEvent(type=" + this.type + ", targetState=" + Std.string(this.targetState) + ")"; } ,__class__: funkin_modding_events_StateChangeScriptEvent }); var funkin_modding_events_SubStateScriptEvent = function(type,targetState,cancelable) { if(cancelable == null) { cancelable = false; } funkin_modding_events_ScriptEvent.call(this,type,cancelable); this.targetState = targetState; }; $hxClasses["funkin.modding.events.SubStateScriptEvent"] = funkin_modding_events_SubStateScriptEvent; funkin_modding_events_SubStateScriptEvent.__name__ = "funkin.modding.events.SubStateScriptEvent"; funkin_modding_events_SubStateScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_SubStateScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ targetState: null ,toString: function() { return "SubStateScriptEvent(type=" + this.type + ", targetState=" + Std.string(this.targetState) + ")"; } ,__class__: funkin_modding_events_SubStateScriptEvent }); var funkin_modding_events_PauseScriptEvent = function(gitaroo) { funkin_modding_events_ScriptEvent.call(this,"PAUSE",true); this.gitaroo = gitaroo; }; $hxClasses["funkin.modding.events.PauseScriptEvent"] = funkin_modding_events_PauseScriptEvent; funkin_modding_events_PauseScriptEvent.__name__ = "funkin.modding.events.PauseScriptEvent"; funkin_modding_events_PauseScriptEvent.__super__ = funkin_modding_events_ScriptEvent; funkin_modding_events_PauseScriptEvent.prototype = $extend(funkin_modding_events_ScriptEvent.prototype,{ gitaroo: null ,__class__: funkin_modding_events_PauseScriptEvent }); var funkin_modding_events_ScriptEventDispatcher = function() { }; $hxClasses["funkin.modding.events.ScriptEventDispatcher"] = funkin_modding_events_ScriptEventDispatcher; funkin_modding_events_ScriptEventDispatcher.__name__ = "funkin.modding.events.ScriptEventDispatcher"; funkin_modding_events_ScriptEventDispatcher.callEvent = function(target,event) { if(target == null || event == null) { return; } target.onScriptEvent(event); if(!event.shouldPropagate) { return; } switch(event.type) { case "CREATE": target.onCreate(event); return; case "DESTROY": target.onDestroy(event); return; case "UPDATE": target.onUpdate(event); return; default: } if(js_Boot.__implements(target,funkin_modding_IStateStageProp)) { var t = js_Boot.__cast(target , funkin_modding_IStateStageProp); if(event.type == "ADDED") { t.onAdd(event); return; } } if(js_Boot.__implements(target,funkin_modding_IDialogueScriptedClass)) { var t = js_Boot.__cast(target , funkin_modding_IDialogueScriptedClass); switch(event.type) { case "DIALOGUE_COMPLETE_LINE": t.onDialogueCompleteLine(event); return; case "DIALOGUE_END": t.onDialogueEnd(event); return; case "DIALOGUE_LINE": t.onDialogueLine(event); return; case "DIALOGUE_SKIP": t.onDialogueSkip(event); return; case "DIALOGUE_START": t.onDialogueStart(event); return; default: } } if(js_Boot.__implements(target,funkin_modding_INoteScriptedClass)) { var t = js_Boot.__cast(target , funkin_modding_INoteScriptedClass); switch(event.type) { case "NOTE_HIT": t.onNoteHit(event); return; case "NOTE_INCOMING": t.onNoteIncoming(event); return; case "NOTE_MISS": t.onNoteMiss(event); return; default: } } if(js_Boot.__implements(target,funkin_modding_IPlayStateScriptedClass)) { var t = js_Boot.__cast(target , funkin_modding_IPlayStateScriptedClass); switch(event.type) { case "BEAT_HIT": t.onBeatHit(event); return; case "COUNTDOWN_END": t.onCountdownEnd(event); return; case "COUNTDOWN_START": t.onCountdownStart(event); return; case "COUNTDOWN_STEP": t.onCountdownStep(event); return; case "GAME_OVER": t.onGameOver(event); return; case "NOTE_GHOST_MISS": t.onNoteGhostMiss(event); return; case "PAUSE": t.onPause(event); return; case "RESUME": t.onResume(event); return; case "SONG_END": t.onSongEnd(event); return; case "SONG_EVENT": t.onSongEvent(event); return; case "SONG_LOADED": t.onSongLoaded(event); return; case "SONG_RETRY": t.onSongRetry(event); return; case "SONG_START": t.onSongStart(event); return; case "STEP_HIT": t.onStepHit(event); return; default: } } if(js_Boot.__implements(target,funkin_modding_IStateChangingScriptedClass)) { var t = js_Boot.__cast(target , funkin_modding_IStateChangingScriptedClass); switch(event.type) { case "STATE_CHANGE_BEGIN": t.onStateChangeBegin(event); return; case "STATE_CHANGE_END": t.onStateChangeEnd(event); return; case "SUBSTATE_CLOSE_BEGIN": t.onSubStateCloseBegin(event); return; case "SUBSTATE_CLOSE_END": t.onSubStateCloseEnd(event); return; case "SUBSTATE_OPEN_BEGIN": t.onSubStateOpenBegin(event); return; case "SUBSTATE_OPEN_END": t.onSubStateOpenEnd(event); return; default: } } else { return; } }; funkin_modding_events_ScriptEventDispatcher.callEventOnAllTargets = function(targets,event) { if(targets == null || event == null) { return; } if(((targets) instanceof Array)) { var t = js_Boot.__cast(targets , Array); if(t.length == 0) { return; } } var target = targets; while(target.hasNext()) { var target1 = target.next(); var t = target1; if(t == null) { continue; } funkin_modding_events_ScriptEventDispatcher.callEvent(t,event); if(!event.shouldPropagate) { return; } } }; var funkin_modding_events_ScriptEventType = {}; funkin_modding_events_ScriptEventType.equals = function(a,b) { return a == b; }; funkin_modding_events_ScriptEventType.notEquals = function(a,b) { return a != b; }; var funkin_modding_module_Module = function(moduleId,priority) { if(priority == null) { priority = 1000; } this.moduleId = "UNKNOWN"; this.active = true; this.moduleId = moduleId; this.set_priority(priority); }; $hxClasses["funkin.modding.module.Module"] = funkin_modding_module_Module; funkin_modding_module_Module.__name__ = "funkin.modding.module.Module"; funkin_modding_module_Module.__interfaces__ = [funkin_modding_IStateChangingScriptedClass,funkin_modding_IPlayStateScriptedClass]; funkin_modding_module_Module.prototype = { active: null ,set_active: function(value) { return this.active = value; } ,moduleId: null ,priority: null ,set_priority: function(value) { this.priority = value; funkin_modding_module_ModuleHandler.reorderModuleCache(); return value; } ,toString: function() { return "Module(" + this.moduleId + ")"; } ,onScriptEvent: function(event) { } ,onCreate: function(event) { } ,onDestroy: function(event) { } ,onUpdate: function(event) { } ,onPause: function(event) { } ,onResume: function(event) { } ,onSongStart: function(event) { } ,onSongEnd: function(event) { } ,onGameOver: function(event) { } ,onNoteIncoming: function(event) { } ,onNoteHit: function(event) { } ,onNoteMiss: function(event) { } ,onNoteGhostMiss: function(event) { } ,onStepHit: function(event) { } ,onBeatHit: function(event) { } ,onSongEvent: function(event) { } ,onCountdownStart: function(event) { } ,onCountdownStep: function(event) { } ,onCountdownEnd: function(event) { } ,onSongLoaded: function(event) { } ,onStateChangeBegin: function(event) { } ,onStateChangeEnd: function(event) { } ,onSubStateOpenBegin: function(event) { } ,onSubStateOpenEnd: function(event) { } ,onSubStateCloseBegin: function(event) { } ,onSubStateCloseEnd: function(event) { } ,onSongRetry: function(event) { } ,__class__: funkin_modding_module_Module ,__properties__: {set_priority:"set_priority",set_active:"set_active"} }; var funkin_modding_module_ModuleHandler = function() { }; $hxClasses["funkin.modding.module.ModuleHandler"] = funkin_modding_module_ModuleHandler; funkin_modding_module_ModuleHandler.__name__ = "funkin.modding.module.ModuleHandler"; funkin_modding_module_ModuleHandler.loadModuleCache = function() { funkin_modding_module_ModuleHandler.clearModuleCache(); haxe_Log.trace("[MODULEHANDLER] Loading module cache...",{ fileName : "source/funkin/modding/module/ModuleHandler.hx", lineNumber : 27, className : "funkin.modding.module.ModuleHandler", methodName : "loadModuleCache"}); var scriptedModuleClassNames = funkin_modding_module_ScriptedModule.listScriptClasses(); haxe_Log.trace(" Instantiating " + scriptedModuleClassNames.length + " modules...",{ fileName : "source/funkin/modding/module/ModuleHandler.hx", lineNumber : 30, className : "funkin.modding.module.ModuleHandler", methodName : "loadModuleCache"}); var _g = 0; while(_g < scriptedModuleClassNames.length) { var moduleCls = scriptedModuleClassNames[_g]; ++_g; var module = funkin_modding_module_ScriptedModule.init(moduleCls,moduleCls); if(module != null) { haxe_Log.trace(" Loaded module: " + moduleCls,{ fileName : "source/funkin/modding/module/ModuleHandler.hx", lineNumber : 36, className : "funkin.modding.module.ModuleHandler", methodName : "loadModuleCache"}); funkin_modding_module_ModuleHandler.addToModuleCache(module); } else { haxe_Log.trace(" Failed to instantiate module: " + moduleCls,{ fileName : "source/funkin/modding/module/ModuleHandler.hx", lineNumber : 43, className : "funkin.modding.module.ModuleHandler", methodName : "loadModuleCache"}); } } funkin_modding_module_ModuleHandler.reorderModuleCache(); haxe_Log.trace("[MODULEHANDLER] Module cache loaded.",{ fileName : "source/funkin/modding/module/ModuleHandler.hx", lineNumber : 48, className : "funkin.modding.module.ModuleHandler", methodName : "loadModuleCache"}); }; funkin_modding_module_ModuleHandler.buildModuleCallbacks = function() { flixel_FlxG.signals.postStateSwitch.add(funkin_modding_module_ModuleHandler.onStateSwitchComplete); }; funkin_modding_module_ModuleHandler.onStateSwitchComplete = function() { funkin_modding_module_ModuleHandler.callEvent(new funkin_modding_events_StateChangeScriptEvent("STATE_CHANGE_END",flixel_FlxG.game._state,true)); }; funkin_modding_module_ModuleHandler.addToModuleCache = function(module) { funkin_modding_module_ModuleHandler.moduleCache.h[module.moduleId] = module; }; funkin_modding_module_ModuleHandler.reorderModuleCache = function() { funkin_modding_module_ModuleHandler.modulePriorityOrder = funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(funkin_modding_module_ModuleHandler.moduleCache.h)); funkin_modding_module_ModuleHandler.modulePriorityOrder.sort(funkin_modding_module_ModuleHandler.sortByPriority); }; funkin_modding_module_ModuleHandler.sortByPriority = function(a,b) { var aModule = funkin_modding_module_ModuleHandler.moduleCache.h[a]; var bModule = funkin_modding_module_ModuleHandler.moduleCache.h[b]; if(aModule.priority != bModule.priority) { return aModule.priority - bModule.priority; } else { return funkin_util_SortUtil.alphabetically(a,b); } }; funkin_modding_module_ModuleHandler.getModule = function(moduleId) { return funkin_modding_module_ModuleHandler.moduleCache.h[moduleId]; }; funkin_modding_module_ModuleHandler.activateModule = function(moduleId) { var module = funkin_modding_module_ModuleHandler.getModule(moduleId); if(module != null) { module.set_active(true); } }; funkin_modding_module_ModuleHandler.deactivateModule = function(moduleId) { var module = funkin_modding_module_ModuleHandler.getModule(moduleId); if(module != null) { module.set_active(false); } }; funkin_modding_module_ModuleHandler.clearModuleCache = function() { if(funkin_modding_module_ModuleHandler.moduleCache != null) { var event = new funkin_modding_events_ScriptEvent("DESTROY",false); var h = funkin_modding_module_ModuleHandler.moduleCache.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var key1 = _g_key; var value = _g_value; funkin_modding_events_ScriptEventDispatcher.callEvent(value,event); var _this = funkin_modding_module_ModuleHandler.moduleCache; if(Object.prototype.hasOwnProperty.call(_this.h,key1)) { delete(_this.h[key1]); } } funkin_modding_module_ModuleHandler.moduleCache.h = Object.create(null); funkin_modding_module_ModuleHandler.modulePriorityOrder = []; } }; funkin_modding_module_ModuleHandler.callEvent = function(event) { var _g = 0; var _g1 = funkin_modding_module_ModuleHandler.modulePriorityOrder; while(_g < _g1.length) { var moduleId = _g1[_g]; ++_g; var module = funkin_modding_module_ModuleHandler.moduleCache.h[moduleId]; if(module != null && module.active) { funkin_modding_events_ScriptEventDispatcher.callEvent(module,event); } } }; funkin_modding_module_ModuleHandler.callOnCreate = function() { funkin_modding_module_ModuleHandler.callEvent(new funkin_modding_events_ScriptEvent("CREATE",false)); }; var funkin_modding_module_ScriptedModule = function(moduleId,priority) { funkin_modding_module_Module.call(this,moduleId,priority); }; $hxClasses["funkin.modding.module.ScriptedModule"] = funkin_modding_module_ScriptedModule; funkin_modding_module_ScriptedModule.__name__ = "funkin.modding.module.ScriptedModule"; funkin_modding_module_ScriptedModule.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_modding_module_ScriptedModule.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.modding.module.Module"); }; funkin_modding_module_ScriptedModule.init = function(clsName,moduleId,priority) { var value = $hxClasses["funkin.modding.module.ScriptedModule"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.modding.module.Module"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[moduleId,priority]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.modding.module.ScriptedModule" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_modding_module_ScriptedModule.__super__ = funkin_modding_module_Module; funkin_modding_module_ScriptedModule.prototype = $extend(funkin_modding_module_Module.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedModule"; var superName = "Module"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,set_priority: function(value) { var fieldName = "set_priority"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_modding_module_Module.prototype.set_priority.call(this,value); } } ,set_active: function(value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_modding_module_Module.prototype.set_active.call(this,value); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onUpdate.call(this,event); } } ,onSubStateOpenEnd: function(event) { var fieldName = "onSubStateOpenEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSubStateOpenEnd.call(this,event); } } ,onSubStateOpenBegin: function(event) { var fieldName = "onSubStateOpenBegin"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSubStateOpenBegin.call(this,event); } } ,onSubStateCloseEnd: function(event) { var fieldName = "onSubStateCloseEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSubStateCloseEnd.call(this,event); } } ,onSubStateCloseBegin: function(event) { var fieldName = "onSubStateCloseBegin"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSubStateCloseBegin.call(this,event); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onStepHit.call(this,event); } } ,onStateChangeEnd: function(event) { var fieldName = "onStateChangeEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onStateChangeEnd.call(this,event); } } ,onStateChangeBegin: function(event) { var fieldName = "onStateChangeBegin"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onStateChangeBegin.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onSongEnd.call(this,event); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onScriptEvent.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onPause.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onNoteMiss.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onNoteIncoming.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onNoteGhostMiss.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onGameOver.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onCreate.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_modding_module_Module.prototype.onBeatHit.call(this,event); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_modding_module_Module.prototype.toString.call(this); } ,__super_set_priority: function(value) { var fieldName = "set_priority"; return funkin_modding_module_Module.prototype.set_priority.call(this,value); } ,__super_set_active: function(value) { var fieldName = "set_active"; return funkin_modding_module_Module.prototype.set_active.call(this,value); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_modding_module_Module.prototype.onUpdate.call(this,event); } ,__super_onSubStateOpenEnd: function(event) { var fieldName = "onSubStateOpenEnd"; funkin_modding_module_Module.prototype.onSubStateOpenEnd.call(this,event); } ,__super_onSubStateOpenBegin: function(event) { var fieldName = "onSubStateOpenBegin"; funkin_modding_module_Module.prototype.onSubStateOpenBegin.call(this,event); } ,__super_onSubStateCloseEnd: function(event) { var fieldName = "onSubStateCloseEnd"; funkin_modding_module_Module.prototype.onSubStateCloseEnd.call(this,event); } ,__super_onSubStateCloseBegin: function(event) { var fieldName = "onSubStateCloseBegin"; funkin_modding_module_Module.prototype.onSubStateCloseBegin.call(this,event); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_modding_module_Module.prototype.onStepHit.call(this,event); } ,__super_onStateChangeEnd: function(event) { var fieldName = "onStateChangeEnd"; funkin_modding_module_Module.prototype.onStateChangeEnd.call(this,event); } ,__super_onStateChangeBegin: function(event) { var fieldName = "onStateChangeBegin"; funkin_modding_module_Module.prototype.onStateChangeBegin.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_modding_module_Module.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_modding_module_Module.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_modding_module_Module.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_modding_module_Module.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_modding_module_Module.prototype.onSongEnd.call(this,event); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_modding_module_Module.prototype.onScriptEvent.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_modding_module_Module.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_modding_module_Module.prototype.onPause.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_modding_module_Module.prototype.onNoteMiss.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_modding_module_Module.prototype.onNoteIncoming.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_modding_module_Module.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_modding_module_Module.prototype.onNoteGhostMiss.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_modding_module_Module.prototype.onGameOver.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_modding_module_Module.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_modding_module_Module.prototype.onCreate.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_modding_module_Module.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_modding_module_Module.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_modding_module_Module.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_modding_module_Module.prototype.onBeatHit.call(this,event); } ,__class__: funkin_modding_module_ScriptedModule }); var funkin_play_CountdownStep = $hxEnums["funkin.play.CountdownStep"] = { __ename__:"funkin.play.CountdownStep",__constructs__:null ,BEFORE: {_hx_name:"BEFORE",_hx_index:0,__enum__:"funkin.play.CountdownStep",toString:$estr} ,THREE: {_hx_name:"THREE",_hx_index:1,__enum__:"funkin.play.CountdownStep",toString:$estr} ,TWO: {_hx_name:"TWO",_hx_index:2,__enum__:"funkin.play.CountdownStep",toString:$estr} ,ONE: {_hx_name:"ONE",_hx_index:3,__enum__:"funkin.play.CountdownStep",toString:$estr} ,GO: {_hx_name:"GO",_hx_index:4,__enum__:"funkin.play.CountdownStep",toString:$estr} ,AFTER: {_hx_name:"AFTER",_hx_index:5,__enum__:"funkin.play.CountdownStep",toString:$estr} }; funkin_play_CountdownStep.__constructs__ = [funkin_play_CountdownStep.BEFORE,funkin_play_CountdownStep.THREE,funkin_play_CountdownStep.TWO,funkin_play_CountdownStep.ONE,funkin_play_CountdownStep.GO,funkin_play_CountdownStep.AFTER]; funkin_play_CountdownStep.__empty_constructs__ = [funkin_play_CountdownStep.BEFORE,funkin_play_CountdownStep.THREE,funkin_play_CountdownStep.TWO,funkin_play_CountdownStep.ONE,funkin_play_CountdownStep.GO,funkin_play_CountdownStep.AFTER]; var funkin_play_Countdown = function() { }; $hxClasses["funkin.play.Countdown"] = funkin_play_Countdown; funkin_play_Countdown.__name__ = "funkin.play.Countdown"; funkin_play_Countdown.performCountdown = function(isPixelStyle) { funkin_play_Countdown.countdownStep = funkin_play_CountdownStep.BEFORE; var cancelled = funkin_play_Countdown.propagateCountdownEvent(funkin_play_Countdown.countdownStep); if(cancelled) { return false; } funkin_play_Countdown.stopCountdown(); funkin_play_PlayState.instance.isInCountdown = true; funkin_Conductor.get_instance().update(funkin_play_PlayState.instance.startTimestamp + funkin_Conductor.get_instance().get_beatLengthMs() * -5); funkin_play_Countdown.countdownTimer = new flixel_util_FlxTimer(); funkin_play_Countdown.countdownTimer.start(funkin_Conductor.get_instance().get_beatLengthMs() / 1000,function(tmr) { if(funkin_play_PlayState.instance == null) { tmr.cancel(); return; } funkin_play_Countdown.countdownStep = funkin_play_Countdown.decrement(funkin_play_Countdown.countdownStep); funkin_play_Countdown.showCountdownGraphic(funkin_play_Countdown.countdownStep,isPixelStyle); funkin_play_Countdown.playCountdownSound(funkin_play_Countdown.countdownStep,isPixelStyle); var cancelled = funkin_play_Countdown.propagateCountdownEvent(funkin_play_Countdown.countdownStep); if(cancelled) { funkin_play_Countdown.pauseCountdown(); } if(funkin_play_Countdown.countdownStep == funkin_play_CountdownStep.AFTER) { funkin_play_Countdown.stopCountdown(); } },5); return true; }; funkin_play_Countdown.propagateCountdownEvent = function(index) { var event; switch(index._hx_index) { case 0: event = new funkin_modding_events_CountdownScriptEvent("COUNTDOWN_START",index); break; case 1:case 2:case 3:case 4: event = new funkin_modding_events_CountdownScriptEvent("COUNTDOWN_STEP",index); break; case 5: event = new funkin_modding_events_CountdownScriptEvent("COUNTDOWN_END",index,false); break; } funkin_play_PlayState.instance.dispatchEvent(event); return event.eventCanceled; }; funkin_play_Countdown.pauseCountdown = function() { if(funkin_play_Countdown.countdownTimer != null && !funkin_play_Countdown.countdownTimer.finished) { funkin_play_Countdown.countdownTimer.active = false; } }; funkin_play_Countdown.resumeCountdown = function() { if(funkin_play_Countdown.countdownTimer != null && !funkin_play_Countdown.countdownTimer.finished) { funkin_play_Countdown.countdownTimer.active = true; } }; funkin_play_Countdown.stopCountdown = function() { if(funkin_play_Countdown.countdownTimer != null) { funkin_play_Countdown.countdownTimer.cancel(); funkin_play_Countdown.countdownTimer.destroy(); funkin_play_Countdown.countdownTimer = null; } }; funkin_play_Countdown.skipCountdown = function() { funkin_play_Countdown.stopCountdown(); funkin_Conductor.get_instance().update(0); }; funkin_play_Countdown.resetCountdown = function() { if(funkin_play_Countdown.countdownTimer != null) { funkin_play_Countdown.countdownTimer.reset(); } }; funkin_play_Countdown.showCountdownGraphic = function(index,isPixelStyle) { var spritePath = null; if(isPixelStyle) { switch(index._hx_index) { case 2: spritePath = "weeb/pixelUI/ready-pixel"; break; case 3: spritePath = "weeb/pixelUI/set-pixel"; break; case 4: spritePath = "weeb/pixelUI/date-pixel"; break; default: } } else { switch(index._hx_index) { case 2: spritePath = "ready"; break; case 3: spritePath = "set"; break; case 4: spritePath = "go"; break; default: } } if(spritePath == null) { return; } var countdownSprite = funkin_graphics_FunkinSprite.create(null,null,spritePath); var this1 = countdownSprite.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(isPixelStyle) { countdownSprite.setGraphicSize(countdownSprite.get_width() * funkin_util_Constants.PIXEL_ART_SCALE | 0); } countdownSprite.set_antialiasing(!isPixelStyle); countdownSprite.updateHitbox(); if(17 == 1 || 17 == 17) { countdownSprite.set_x((flixel_FlxG.width - countdownSprite.get_width()) / 2); } if(17 == 16 || 17 == 17) { countdownSprite.set_y((flixel_FlxG.height - countdownSprite.get_height()) / 2); } flixel_tweens_FlxTween.tween(countdownSprite,{ y : countdownSprite.set_y(countdownSprite.y + 100), alpha : 0},funkin_Conductor.get_instance().get_beatLengthMs() / 1000,{ ease : flixel_tweens_FlxEase.cubeInOut, onComplete : function(twn) { countdownSprite.destroy(); }}); funkin_play_PlayState.instance.add(countdownSprite); }; funkin_play_Countdown.playCountdownSound = function(index,isPixelStyle) { var soundPath = null; if(isPixelStyle) { switch(index._hx_index) { case 1: soundPath = "intro3-pixel"; break; case 2: soundPath = "intro2-pixel"; break; case 3: soundPath = "intro1-pixel"; break; case 4: soundPath = "introGo-pixel"; break; default: } } else { switch(index._hx_index) { case 1: soundPath = "intro3"; break; case 2: soundPath = "intro2"; break; case 3: soundPath = "intro1"; break; case 4: soundPath = "introGo"; break; default: } } if(soundPath == null) { return; } funkin_audio_FunkinSound.playOnce(funkin_Paths.sound(soundPath),funkin_util_Constants.COUNTDOWN_VOLUME); }; funkin_play_Countdown.decrement = function(step) { switch(step._hx_index) { case 0: return funkin_play_CountdownStep.THREE; case 1: return funkin_play_CountdownStep.TWO; case 2: return funkin_play_CountdownStep.ONE; case 3: return funkin_play_CountdownStep.GO; case 4: return funkin_play_CountdownStep.AFTER; default: return funkin_play_CountdownStep.AFTER; } }; var funkin_play_GameOverSubState = function(params) { this.playingJeffQuote = false; this.hasStartedAnimation = false; this.targetCameraZoom = 1.0; this.mustNotExit = false; this.isChartingMode = false; this.isStarting = true; this.isEnding = false; this.gameOverMusic = null; this.boyfriend = null; funkin_ui_MusicBeatSubState.call(this); var tmp = params != null ? params.isChartingMode : null; this.isChartingMode = tmp != null && tmp; this.transparent = params.transparent; this.cameraFollowPoint = new flixel_FlxObject(funkin_play_PlayState.instance.cameraFollowPoint.x,funkin_play_PlayState.instance.cameraFollowPoint.y,1,1); }; $hxClasses["funkin.play.GameOverSubState"] = funkin_play_GameOverSubState; funkin_play_GameOverSubState.__name__ = "funkin.play.GameOverSubState"; funkin_play_GameOverSubState.reset = function() { funkin_play_GameOverSubState.animationSuffix = ""; funkin_play_GameOverSubState.musicSuffix = ""; funkin_play_GameOverSubState.blueBallSuffix = ""; funkin_play_GameOverSubState.blueballed = false; }; funkin_play_GameOverSubState.playBlueBalledSFX = function() { funkin_play_GameOverSubState.blueballed = true; if(openfl_utils_Assets.exists(funkin_Paths.sound("gameplay/gameover/fnf_loss_sfx" + funkin_play_GameOverSubState.blueBallSuffix))) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("gameplay/gameover/fnf_loss_sfx" + funkin_play_GameOverSubState.blueBallSuffix)); } else { flixel_FlxG.log.advanced("Missing blue ball sound effect: " + funkin_Paths.sound("gameplay/gameover/fnf_loss_sfx" + funkin_play_GameOverSubState.blueBallSuffix),flixel_system_debug_log_LogStyle.ERROR,true); } }; funkin_play_GameOverSubState.__super__ = funkin_ui_MusicBeatSubState; funkin_play_GameOverSubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ boyfriend: null ,cameraFollowPoint: null ,gameOverMusic: null ,isEnding: null ,isStarting: null ,isChartingMode: null ,mustNotExit: null ,transparent: null ,targetCameraZoom: null ,create: function() { if(funkin_play_GameOverSubState.instance != null) { flixel_FlxG.log.advanced("WARNING: GameOverSubState instance already exists. This should not happen.",flixel_system_debug_log_LogStyle.WARNING,true); } funkin_play_GameOverSubState.instance = this; funkin_ui_MusicBeatSubState.prototype.create.call(this); var playState = funkin_play_PlayState.instance; var bg = new funkin_graphics_FunkinSprite().makeSolidColor(flixel_FlxG.width * 2,flixel_FlxG.height * 2,-16777216); bg.set_alpha(this.transparent ? 0.25 : 1.0); var this1 = bg.scrollFactor; this1.set_x(0); this1.set_y(0); if(17 == 1 || 17 == 17) { bg.set_x((flixel_FlxG.width - bg.get_width()) / 2); } if(17 == 16 || 17 == 17) { bg.set_y((flixel_FlxG.height - bg.get_height()) / 2); } this.add(bg); if(!funkin_play_PlayState.instance.isMinimalMode) { this.boyfriend = funkin_play_PlayState.instance.currentStage.getBoyfriend(true); this.boyfriend.isDead = true; this.add(this.boyfriend); this.boyfriend.resetCharacter(); } this.setCameraTarget(); funkin_Conductor.get_instance().update(0); } ,setCameraTarget: function() { if(funkin_play_PlayState.instance.isMinimalMode || this.boyfriend == null) { return; } this.cameraFollowPoint = new flixel_FlxObject(funkin_play_PlayState.instance.cameraFollowPoint.x,funkin_play_PlayState.instance.cameraFollowPoint.y,1,1); this.cameraFollowPoint.set_x(this.boyfriend.getGraphicMidpoint().x); this.cameraFollowPoint.set_y(this.boyfriend.getGraphicMidpoint().y); var offsets = this.boyfriend.getDeathCameraOffsets(); var fh = this.cameraFollowPoint; fh.set_x(fh.x + offsets[0]); var fh = this.cameraFollowPoint; fh.set_y(fh.y + offsets[1]); this.add(this.cameraFollowPoint); flixel_FlxG.camera.target = null; flixel_FlxG.camera.follow(this.cameraFollowPoint,flixel_FlxCameraFollowStyle.LOCKON,funkin_util_Constants.DEFAULT_CAMERA_FOLLOW_RATE / 2); var tmp = funkin_play_PlayState != null ? funkin_play_PlayState.instance : null; var tmp1 = tmp != null ? tmp.currentStage : null; var tmp = tmp1 != null ? tmp1.get_camZoom() : null; this.targetCameraZoom = (tmp != null ? tmp : 1.0) * this.boyfriend.getDeathCameraZoom(); } ,resetCameraZoom: function() { var tmp = flixel_FlxG.camera; var tmp1 = funkin_play_PlayState != null ? funkin_play_PlayState.instance : null; var tmp2 = tmp1 != null ? tmp1.currentStage : null; var tmp1 = tmp2 != null ? tmp2.get_camZoom() : null; tmp.set_zoom(tmp1 != null ? tmp1 : 1.0); } ,hasStartedAnimation: null ,update: function(elapsed) { if(!this.hasStartedAnimation) { this.hasStartedAnimation = true; if(this.boyfriend == null || funkin_play_PlayState.instance.isMinimalMode) { funkin_play_GameOverSubState.playBlueBalledSFX(); } else { var tmp; if(this.boyfriend.hasAnimation("fakeoutDeath")) { var Chance = 0.0244140625; if(Chance == null) { Chance = 50; } tmp = flixel_FlxG.random.float(0,100) < Chance; } else { tmp = false; } if(tmp) { this.boyfriend.playAnimation("fakeoutDeath",true,false); } else { this.boyfriend.playAnimation("firstDeath",true,false); funkin_play_GameOverSubState.playBlueBalledSFX(); } } } flixel_FlxG.camera.set_zoom(funkin_util_MathUtil.smoothLerp(flixel_FlxG.camera.zoom,this.targetCameraZoom,elapsed,funkin_play_GameOverSubState.CAMERA_ZOOM_DURATION)); if(flixel_FlxG.html5.onMobile) { var touch = flixel_FlxG.touches.getFirst(); if(touch != null) { if(this.boyfriend == null || touch.overlaps(this.boyfriend)) { this.confirmDeath(); } } } if(funkin_PlayerSettings.player1.controls._accept.check() && funkin_play_GameOverSubState.blueballed && !this.mustNotExit) { funkin_play_GameOverSubState.blueballed = false; this.confirmDeath(); } if(funkin_PlayerSettings.player1.controls._back.check() && !this.mustNotExit && !this.isEnding) { this.isEnding = true; funkin_play_GameOverSubState.blueballed = false; funkin_play_PlayState.instance.deathCounter = 0; if(this.gameOverMusic != null) { var _this = this.gameOverMusic; _this.cleanup(_this.autoDestroy,true); } if(this.isChartingMode) { this.close(); if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.pause(); } funkin_play_PlayState.instance.close(); return; } else if(funkin_play_PlayStatePlaylist.isStoryMode) { this.openSubState(new funkin_ui_transition_StickerSubState(null,function(sticker) { return new funkin_ui_story_StoryMenuState(sticker); })); } else { this.openSubState(new funkin_ui_transition_StickerSubState(null,function(sticker) { return funkin_ui_freeplay_FreeplayState.build(null,sticker); })); } } if(this.gameOverMusic != null && this.gameOverMusic._channel != null) { funkin_Conductor.get_instance().update(this.gameOverMusic._time); } else if(this.boyfriend != null) { if(!funkin_play_PlayState.instance.isMinimalMode) { var _g = funkin_play_PlayStatePlaylist.campaignId; if(_g == null) { if(StringTools.startsWith(this.boyfriend.getCurrentAnimation(),"firstDeath") && this.boyfriend.isAnimationFinished()) { this.startDeathMusic(1.0,false); this.boyfriend.playAnimation("deathLoop" + funkin_play_GameOverSubState.animationSuffix); } } else if(_g == "week7") { if(StringTools.startsWith(this.boyfriend.getCurrentAnimation(),"firstDeath") && this.boyfriend.isAnimationFinished() && !this.playingJeffQuote) { this.playingJeffQuote = true; this.playJeffQuote(); this.startDeathMusic(0.2,false); this.boyfriend.playAnimation("deathLoop" + funkin_play_GameOverSubState.animationSuffix); } } else if(StringTools.startsWith(this.boyfriend.getCurrentAnimation(),"firstDeath") && this.boyfriend.isAnimationFinished()) { this.startDeathMusic(1.0,false); this.boyfriend.playAnimation("deathLoop" + funkin_play_GameOverSubState.animationSuffix); } } } funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); } ,confirmDeath: function() { var _gthis = this; if(!this.isEnding) { this.isEnding = true; this.startDeathMusic(1.0,true); if(!(funkin_play_PlayState.instance.isMinimalMode || this.boyfriend == null)) { this.boyfriend.playAnimation("deathConfirm" + funkin_play_GameOverSubState.animationSuffix,true); } new flixel_util_FlxTimer().start(0.7,function(tmr) { flixel_FlxG.camera.fade(-16777216,2,false,function() { flixel_FlxG.camera.fade(-16777216,1,true,null,true); funkin_play_PlayState.instance.needsReset = true; if(!(funkin_play_PlayState.instance.isMinimalMode || _gthis.boyfriend == null)) { _gthis.boyfriend.isDead = false; _gthis.remove(_gthis.boyfriend); funkin_play_PlayState.instance.currentStage.addCharacter(_gthis.boyfriend,funkin_play_character_CharacterType.BF); } _gthis.resetCameraZoom(); _gthis.close(); }); }); } } ,dispatchEvent: function(event) { funkin_ui_MusicBeatSubState.prototype.dispatchEvent.call(this,event); funkin_modding_events_ScriptEventDispatcher.callEvent(this.boyfriend,event); } ,resolveMusicPath: function(suffix,starting,ending) { if(ending == null) { ending = false; } if(starting == null) { starting = false; } var basePath = "gameplay/gameover/gameOver"; if(ending) { basePath += "End"; } else if(starting) { basePath += "Start"; } var musicPath = funkin_Paths.music(basePath + suffix); while(!openfl_utils_Assets.exists(musicPath) && suffix.length > 0) { suffix = suffix.split("-").slice(0,-1).join("-"); musicPath = funkin_Paths.music(basePath + suffix); } if(!openfl_utils_Assets.exists(musicPath)) { return null; } haxe_Log.trace("Resolved music path: " + musicPath,{ fileName : "source/funkin/play/GameOverSubState.hx", lineNumber : 382, className : "funkin.play.GameOverSubState", methodName : "resolveMusicPath"}); return musicPath; } ,startDeathMusic: function(startingVolume,force) { if(force == null) { force = false; } if(startingVolume == null) { startingVolume = 1; } var _gthis = this; var musicPath = this.resolveMusicPath(funkin_play_GameOverSubState.musicSuffix,this.isStarting,this.isEnding); var onComplete = function() { }; if(this.isStarting) { if(musicPath == null) { this.isStarting = false; musicPath = this.resolveMusicPath(funkin_play_GameOverSubState.musicSuffix,this.isStarting,this.isEnding); } else { onComplete = function() { _gthis.isStarting = true; _gthis.startDeathMusic(1.0,true); }; } } if(musicPath == null) { flixel_FlxG.log.advanced("[GAMEOVER] Could not find game over music at path (" + musicPath + ")!",flixel_system_debug_log_LogStyle.WARNING,true); return; } else if(this.gameOverMusic == null || this.gameOverMusic._channel == null || force) { if(this.gameOverMusic != null) { var _this = this.gameOverMusic; _this.cleanup(_this.autoDestroy,true); } this.gameOverMusic = funkin_audio_FunkinSound.load(musicPath); if(this.gameOverMusic == null) { return; } this.gameOverMusic.set_volume(startingVolume); this.gameOverMusic.looped = !(this.isEnding || this.isStarting); this.gameOverMusic.onComplete = onComplete; this.gameOverMusic.play(); } else { var tmp = this.gameOverMusic; haxe_Log.trace("Music already playing! " + (tmp != null ? tmp._label : null),{ fileName : "source/funkin/play/GameOverSubState.hx", lineNumber : 434, className : "funkin.play.GameOverSubState", methodName : "startDeathMusic"}); } } ,playingJeffQuote: null ,playJeffQuote: function() { var _gthis = this; var randomCensor = []; if(!funkin_Preferences.get_naughtyness()) { randomCensor = [1,3,8,13,17,21]; } funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("jeffGameover/jeffGameover-" + flixel_FlxG.random.int(1,25,randomCensor)),null,function() { if(!_gthis.isEnding && _gthis.gameOverMusic != null) { var _this = _gthis.gameOverMusic; var Duration = 4; var From = 0.2; var To = 1; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } }); } ,destroy: function() { funkin_ui_MusicBeatSubState.prototype.destroy.call(this); if(this.gameOverMusic != null) { var _this = this.gameOverMusic; _this.cleanup(_this.autoDestroy,true); this.gameOverMusic = null; } funkin_play_GameOverSubState.blueballed = false; funkin_play_GameOverSubState.instance = null; } ,toString: function() { return "GameOverSubState"; } ,__class__: funkin_play_GameOverSubState }); var funkin_play_GitarooPause = function(previousParams) { this.replaySelect = false; funkin_ui_MusicBeatState.call(this); this.previousParams = previousParams; }; $hxClasses["funkin.play.GitarooPause"] = funkin_play_GitarooPause; funkin_play_GitarooPause.__name__ = "funkin.play.GitarooPause"; funkin_play_GitarooPause.__super__ = funkin_ui_MusicBeatState; funkin_play_GitarooPause.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ replayButton: null ,cancelButton: null ,replaySelect: null ,previousParams: null ,create: function() { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.destroy(); flixel_FlxG.sound.music = null; } var bg = funkin_graphics_FunkinSprite.create(null,null,"pauseAlt/pauseBG"); this.add(bg); var bf = funkin_graphics_FunkinSprite.createSparrow(0,30,"pauseAlt/bfLol"); bf.animation.addByPrefix("lol","funnyThing",13); bf.animation.play("lol"); this.add(bf); var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { bf.set_x((flixel_FlxG.width - bf.get_width()) / 2); } if(axes == 16 || axes == 17) { bf.set_y((flixel_FlxG.height - bf.get_height()) / 2); } this.replayButton = funkin_graphics_FunkinSprite.createSparrow(flixel_FlxG.width * 0.28,flixel_FlxG.height * 0.7,"pauseAlt/pauseUI"); this.replayButton.animation.addByPrefix("selected","bluereplay",0,false); this.replayButton.animation.appendByPrefix("selected","yellowreplay"); this.replayButton.animation.play("selected"); this.add(this.replayButton); this.cancelButton = funkin_graphics_FunkinSprite.createSparrow(flixel_FlxG.width * 0.58,this.replayButton.y,"pauseAlt/pauseUI"); this.cancelButton.animation.addByPrefix("selected","bluecancel",0,false); this.cancelButton.animation.appendByPrefix("selected","cancelyellow"); this.cancelButton.animation.play("selected"); this.add(this.cancelButton); this.changeThing(); funkin_ui_MusicBeatState.prototype.create.call(this); } ,update: function(elapsed) { var _gthis = this; if(funkin_PlayerSettings.player1.controls._ui_left.checkJustPressed() || funkin_PlayerSettings.player1.controls._ui_right.checkJustPressed()) { this.changeThing(); } if(funkin_PlayerSettings.player1.controls._accept.check()) { if(this.replaySelect) { flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false; var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_play_PlayState(_gthis.previousParams); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } else { var nextState1 = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall1 = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall1) { flixel_FlxG.game._nextState = nextState1; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); } ,changeThing: function() { this.replaySelect = !this.replaySelect; if(this.replaySelect) { this.cancelButton.animation._curAnim.set_curFrame(0); this.replayButton.animation._curAnim.set_curFrame(1); } else { this.cancelButton.animation._curAnim.set_curFrame(1); this.replayButton.animation._curAnim.set_curFrame(0); } } ,__class__: funkin_play_GitarooPause }); var funkin_play_cutscene_VideoCutscene = function() { }; $hxClasses["funkin.play.cutscene.VideoCutscene"] = funkin_play_cutscene_VideoCutscene; funkin_play_cutscene_VideoCutscene.__name__ = "funkin.play.cutscene.VideoCutscene"; funkin_play_cutscene_VideoCutscene.blackScreen = null; funkin_play_cutscene_VideoCutscene.cutsceneType = null; funkin_play_cutscene_VideoCutscene.vid = null; funkin_play_cutscene_VideoCutscene.play = function(filePath,cutsceneType) { if(cutsceneType == null) { cutsceneType = funkin_play_cutscene_CutsceneType.STARTING; } if(funkin_play_PlayState.instance == null) { return; } if(!openfl_utils_Assets.exists(filePath)) { haxe_Log.trace("Video file does not exist: " + filePath,{ fileName : "source/funkin/play/cutscene/VideoCutscene.hx", lineNumber : 76, className : "funkin.play.cutscene.VideoCutscene", methodName : "play"}); } var rawFilePath = funkin_Paths.stripLibrary(filePath); funkin_play_PlayState.instance.isInCutscene = true; funkin_play_PlayState.instance.camHUD.set_visible(false); funkin_play_PlayState.instance.camCutscene.set_visible(true); funkin_play_cutscene_VideoCutscene.blackScreen = new flixel_FlxSprite(-200,-200).makeGraphic(flixel_FlxG.width * 2,flixel_FlxG.height * 2,-16777216); var this1 = funkin_play_cutscene_VideoCutscene.blackScreen.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); funkin_play_cutscene_VideoCutscene.blackScreen.set_cameras([funkin_play_PlayState.instance.camCutscene]); funkin_play_PlayState.instance.add(funkin_play_cutscene_VideoCutscene.blackScreen); funkin_play_cutscene_VideoCutscene.cutsceneType = cutsceneType; funkin_play_cutscene_VideoCutscene.playVideoHTML5(rawFilePath); }; funkin_play_cutscene_VideoCutscene.isPlaying = function() { return funkin_play_cutscene_VideoCutscene.vid != null; }; funkin_play_cutscene_VideoCutscene.playVideoHTML5 = function(filePath) { funkin_play_cutscene_VideoCutscene.vid = new funkin_graphics_video_FlxVideo(filePath); if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_cutscene_VideoCutscene.vid.zIndex = 0; var transitionTime = 0.5; var tmp = function() { funkin_play_cutscene_VideoCutscene.finishVideo(transitionTime); }; funkin_play_cutscene_VideoCutscene.vid.finishCallback = tmp; funkin_play_cutscene_VideoCutscene.vid.set_cameras([funkin_play_PlayState.instance.camCutscene]); funkin_play_PlayState.instance.add(funkin_play_cutscene_VideoCutscene.vid); funkin_play_PlayState.instance.refresh(); funkin_play_cutscene_VideoCutscene.onVideoStarted.dispatch(); } else { haxe_Log.trace("ALERT: Video is null! Could not play cutscene!",{ fileName : "source/funkin/play/cutscene/VideoCutscene.hx", lineNumber : 133, className : "funkin.play.cutscene.VideoCutscene", methodName : "playVideoHTML5"}); } }; funkin_play_cutscene_VideoCutscene.restartVideo = function(resume) { if(resume == null) { resume = true; } if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_cutscene_VideoCutscene.vid.restartVideo(); funkin_play_cutscene_VideoCutscene.onVideoRestarted.dispatch(); } }; funkin_play_cutscene_VideoCutscene.pauseVideo = function() { if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_cutscene_VideoCutscene.vid.pauseVideo(); funkin_play_cutscene_VideoCutscene.onVideoPaused.dispatch(); } }; funkin_play_cutscene_VideoCutscene.hideVideo = function() { if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_cutscene_VideoCutscene.vid.set_visible(false); funkin_play_cutscene_VideoCutscene.blackScreen.set_visible(false); } }; funkin_play_cutscene_VideoCutscene.showVideo = function() { if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_cutscene_VideoCutscene.vid.set_visible(true); funkin_play_cutscene_VideoCutscene.blackScreen.set_visible(false); } }; funkin_play_cutscene_VideoCutscene.resumeVideo = function() { if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_cutscene_VideoCutscene.vid.resumeVideo(); funkin_play_cutscene_VideoCutscene.onVideoResumed.dispatch(); } }; funkin_play_cutscene_VideoCutscene.finishVideo = function(transitionTime) { if(transitionTime == null) { transitionTime = 0.5; } haxe_Log.trace("ALERT: Finish video cutscene called!",{ fileName : "source/funkin/play/cutscene/VideoCutscene.hx", lineNumber : 284, className : "funkin.play.cutscene.VideoCutscene", methodName : "finishVideo"}); var cutsceneType = funkin_play_cutscene_VideoCutscene.cutsceneType; if(funkin_play_cutscene_VideoCutscene.vid != null) { funkin_play_PlayState.instance.remove(funkin_play_cutscene_VideoCutscene.vid); } funkin_play_cutscene_VideoCutscene.vid.destroy(); funkin_play_cutscene_VideoCutscene.vid = null; funkin_play_PlayState.instance.camCutscene.set_visible(true); funkin_play_PlayState.instance.camHUD.set_visible(true); flixel_tweens_FlxTween.tween(funkin_play_cutscene_VideoCutscene.blackScreen,{ alpha : 0},transitionTime,{ ease : flixel_tweens_FlxEase.quadInOut, onComplete : function(twn) { funkin_play_PlayState.instance.remove(funkin_play_cutscene_VideoCutscene.blackScreen); funkin_play_cutscene_VideoCutscene.blackScreen = null; }}); flixel_tweens_FlxTween.tween(flixel_FlxG.camera,{ zoom : funkin_play_PlayState.instance.get_stageZoom()},transitionTime,{ ease : flixel_tweens_FlxEase.quadInOut, onComplete : function(twn) { funkin_play_cutscene_VideoCutscene.onVideoEnded.dispatch(); funkin_play_cutscene_VideoCutscene.onCutsceneFinish(cutsceneType); }}); }; funkin_play_cutscene_VideoCutscene.onCutsceneFinish = function(cutsceneType) { switch(cutsceneType._hx_index) { case 0: funkin_play_PlayState.instance.startCountdown(); break; case 1: break; case 2: funkin_play_PlayState.instance.endSong(true); break; } }; var funkin_play_PlayState = function(params) { this.prevScrollTargets = []; this.inputSpitter = []; this.perfectMode = false; this.generatedMusic = false; this.initialized = false; this.cameraTweensPausedBySubState = new haxe_ds_List(); this.musicPausedBySubState = false; this.startingSong = false; this.criticalFailure = false; this.overrideMusic = false; this.skipHeldTimer = 0; this.healthLerp = funkin_util_Constants.HEALTH_STARTING; this.mayPauseGame = true; this.justUnpaused = false; this.inputReleaseQueue = []; this.inputPressQueue = []; this.disableKeys = false; this.isInCutscene = false; this.isMinimalMode = false; this.isPlayerDying = false; this.isBotPlayMode = false; this.isPracticeMode = false; this.isInCountdown = false; this.cameraZoomRate = funkin_util_Constants.DEFAULT_ZOOM_RATE; this.hudCameraZoomIntensity = 0.03; this.cameraBopIntensity = funkin_util_Constants.DEFAULT_BOP_INTENSITY; this.defaultHUDCameraZoom = flixel_FlxCamera.defaultZoom; this.cameraBopMultiplier = 1.0; this.currentCameraZoom = flixel_FlxCamera.defaultZoom; this.previousCameraFollowPoint = null; this.scrollSpeedTweens = []; this.playbackRate = 1.0; this.startTimestamp = 0.0; this.songScore = 0; this.health = funkin_util_Constants.HEALTH_STARTING; this.deathCounter = 0; this.needsReset = false; this.currentStage = null; this.currentInstrumental = ""; this.currentVariation = funkin_util_Constants.DEFAULT_VARIATION; this.currentDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; this.currentSong = null; funkin_ui_MusicBeatSubState.call(this); if(params == null && funkin_play_PlayState.lastParams == null) { throw haxe_Exception.thrown("PlayState constructor called with no available parameters."); } else if(params == null) { haxe_Log.trace("WARNING: PlayState constructor called with no parameters. Reusing previous parameters.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 600, className : "funkin.play.PlayState", methodName : "new"}); params = funkin_play_PlayState.lastParams; } else { funkin_play_PlayState.lastParams = params; } this.currentSong = params.targetSong; if(params.targetDifficulty != null) { this.currentDifficulty = params.targetDifficulty; } if(params.targetVariation != null) { this.currentVariation = params.targetVariation; } if(params.targetInstrumental != null) { this.currentInstrumental = params.targetInstrumental; } var tmp = params.practiceMode; this.isPracticeMode = tmp != null && tmp; var tmp = params.botPlayMode; this.isBotPlayMode = tmp != null && tmp; var tmp = params.minimalMode; this.isMinimalMode = tmp != null && tmp; var tmp = params.startTimestamp; this.startTimestamp = tmp != null ? tmp : 0.0; var tmp = params.playbackRate; this.playbackRate = tmp != null ? tmp : 1.0; var tmp = params.overrideMusic; this.overrideMusic = tmp != null && tmp; this.previousCameraFollowPoint = params.cameraFollowPoint; }; $hxClasses["funkin.play.PlayState"] = funkin_play_PlayState; funkin_play_PlayState.__name__ = "funkin.play.PlayState"; funkin_play_PlayState.__super__ = funkin_ui_MusicBeatSubState; funkin_play_PlayState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ currentSong: null ,currentDifficulty: null ,currentVariation: null ,currentInstrumental: null ,currentStage: null ,needsReset: null ,deathCounter: null ,health: null ,songScore: null ,startTimestamp: null ,playbackRate: null ,cameraFollowPoint: null ,cameraFollowTween: null ,cameraZoomTween: null ,scrollSpeedTweens: null ,previousCameraFollowPoint: null ,currentCameraZoom: null ,cameraBopMultiplier: null ,get_stageZoom: function() { if(this.currentStage != null) { return this.currentStage.get_camZoom(); } else { return flixel_FlxCamera.defaultZoom * 1.05; } } ,defaultHUDCameraZoom: null ,cameraBopIntensity: null ,hudCameraZoomIntensity: null ,cameraZoomRate: null ,isInCountdown: null ,isPracticeMode: null ,isBotPlayMode: null ,isPlayerDying: null ,isMinimalMode: null ,isInCutscene: null ,disableKeys: null ,get_isSubState: function() { return this._parentState != null; } ,get_isChartingMode: function() { if(this._parentState != null) { return ((this._parentState) instanceof funkin_ui_debug_charting_ChartEditorState); } else { return false; } } ,currentConversation: null ,inputPressQueue: null ,inputReleaseQueue: null ,justUnpaused: null ,songEvents: null ,mayPauseGame: null ,healthLerp: null ,skipHeldTimer: null ,overrideMusic: null ,criticalFailure: null ,startingSong: null ,musicPausedBySubState: null ,cameraTweensPausedBySubState: null ,initialized: null ,vocals: null ,scoreText: null ,healthBar: null ,healthBarBG: null ,iconP1: null ,iconP2: null ,playerStrumline: null ,opponentStrumline: null ,camHUD: null ,camGame: null ,camCutscene: null ,comboPopUps: null ,get_isGamePaused: function() { return this.subState != null; } ,get_isExitingViaPauseMenu: function() { if(this.subState == null) { return false; } if(!((this.subState) instanceof funkin_play_PauseSubState)) { return false; } var pauseSubState = this.subState; return !pauseSubState.allowInput; } ,get_currentChart: function() { if(this.currentSong == null || this.currentDifficulty == null) { return null; } return this.currentSong.getDifficulty(this.currentDifficulty,this.currentVariation); } ,get_currentStageId: function() { if(this.get_currentChart() == null || this.get_currentChart().stage == null || this.get_currentChart().stage == "") { return funkin_util_Constants.DEFAULT_STAGE; } return this.get_currentChart().stage; } ,get_currentSongLengthMs: function() { var tmp = flixel_FlxG != null ? flixel_FlxG.sound : null; var tmp1 = tmp != null ? tmp.music : null; if(tmp1 != null) { return tmp1._length; } else { return null; } } ,generatedMusic: null ,perfectMode: null ,create: function() { if(funkin_play_PlayState.instance != null) { haxe_Log.trace("WARNING: PlayState instance already exists. This should not happen.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 632, className : "funkin.play.PlayState", methodName : "create"}); } funkin_play_PlayState.instance = this; if(!this.assertChartExists()) { return; } this.cameraFollowPoint = new flixel_FlxObject(0,0); flixel_FlxG.fixedTimestep = false; this.persistentUpdate = true; this.persistentDraw = true; if(!this.overrideMusic && flixel_FlxG.sound.music != null) { var _this = flixel_FlxG.sound.music; _this.cleanup(_this.autoDestroy,true); } if(!this.overrideMusic && this.get_currentChart() != null) { this.get_currentChart().cacheInst(); var _g = 0; var _g1 = this.get_currentChart().buildVoiceList(); while(_g < _g1.length) { var voice = _g1[_g]; ++_g; var _this = flixel_FlxG.sound; if(openfl_utils_Assets.exists(voice,"SOUND") || openfl_utils_Assets.exists(voice,"MUSIC")) { openfl_utils_Assets.getSound(voice,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + voice + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } } } funkin_Conductor.get_instance().forceBPM(null); if(this.get_currentChart().offsets != null) { funkin_Conductor.get_instance().instrumentalOffset = this.get_currentChart().offsets.getInstrumentalOffset(); } funkin_Conductor.get_instance().mapTimeChanges(this.get_currentChart().timeChanges); funkin_Conductor.get_instance().update(funkin_Conductor.get_instance().get_beatLengthMs() * -5 + this.startTimestamp); this.initCameras(); this.initHealthBar(); if(!this.isMinimalMode) { this.initStage(); this.initCharacters(); } else { this.initMinimalMode(); } this.initStrumlines(); this.comboPopUps = new funkin_play_components_PopUpStuff(); this.comboPopUps.zIndex = 900; this.add(this.comboPopUps); this.comboPopUps.set_cameras([this.camHUD]); this.generateSong(); this.resetCamera(); this.initPreciseInputs(); var _this = flixel_FlxG.worldBounds; var X = 0; var Y = 0; var Width = flixel_FlxG.width; var Height = flixel_FlxG.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; this.startingSong = true; var tmp = this.currentSong; var tmp1 = tmp != null ? tmp.id : null; if((tmp1 != null ? tmp1 : "").toLowerCase() == "winter-horrorland") { funkin_play_cutscene_VanillaCutscenes.playHorrorStartCutscene(); } else { this.startCountdown(); } funkin_ui_MusicBeatSubState.prototype.create.call(this); this.leftWatermarkText.set_cameras([this.camHUD]); this.rightWatermarkText.set_cameras([this.camHUD]); this.initialized = true; this.refresh(); } ,draw: function() { funkin_ui_MusicBeatSubState.prototype.draw.call(this); } ,assertChartExists: function() { if(this.currentSong == null || this.get_currentChart() == null || this.get_currentChart().notes == null) { this.criticalFailure = true; var message = "There was a critical error. Click OK to return to the main menu."; if(this.currentSong == null) { message = "There was a critical error loading this song's chart. Click OK to return to the main menu."; } else if(this.currentDifficulty == null) { message = "There was a critical error selecting a difficulty for this song. Click OK to return to the main menu."; } else if(this.get_currentChart() == null) { message = "There was a critical error retrieving data for this song on \"" + this.currentDifficulty + "\" difficulty with variation \"" + this.currentVariation + "\". Click OK to return to the main menu."; } else if(this.get_currentChart().notes == null) { message = "There was a critical error retrieving note data for this song on \"" + this.currentDifficulty + "\" difficulty with variation \"" + this.currentVariation + "\". Click OK to return to the main menu."; } lime_app_Application.current.__window.alert(message,"Error loading PlayState"); if(this.get_isSubState()) { this.close(); } else { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } return false; } return true; } ,update: function(elapsed) { var _gthis = this; if(this.criticalFailure) { return; } funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); var list = flixel_FlxG.sound.list; this.updateHealthBar(); this.updateScoreText(); if(this.needsReset) { if(!this.assertChartExists()) { return; } this.prevScrollTargets = []; this.dispatchEvent(new funkin_modding_events_ScriptEvent("SONG_RETRY")); this.resetCamera(); var fromDeathState = this.isPlayerDying; this.persistentUpdate = true; this.persistentDraw = true; this.startingSong = true; this.isPlayerDying = false; this.inputSpitter = []; if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.set_time(this.startTimestamp - funkin_Conductor.get_instance().instrumentalOffset); flixel_FlxG.sound.music.set_pitch(this.playbackRate); flixel_FlxG.sound.music.pause(); } if(!this.overrideMusic) { if(this.vocals != null) { this.vocals.stop(); } this.vocals = this.get_currentChart().buildVocals(); if(this.vocals.members.length == 0) { haxe_Log.trace("WARNING: No vocals found for this song.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 869, className : "funkin.play.PlayState", methodName : "update"}); } } this.vocals.pause(); this.vocals.set_time(0); if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.set_volume(1); } this.vocals.set_volume(1); this.vocals.set_playerVolume(1); this.vocals.set_opponentVolume(1); if(this.currentStage != null) { this.currentStage.resetStage(); } if(!fromDeathState) { this.playerStrumline.vwooshNotes(); this.opponentStrumline.vwooshNotes(); } this.playerStrumline.clean(); this.opponentStrumline.clean(); this.regenNoteData(); this.cameraBopIntensity = funkin_util_Constants.DEFAULT_BOP_INTENSITY; this.hudCameraZoomIntensity = (this.cameraBopIntensity - 1.0) * 2.0; this.cameraZoomRate = funkin_util_Constants.DEFAULT_ZOOM_RATE; this.health = funkin_util_Constants.HEALTH_STARTING; this.songScore = 0; funkin_Highscore.tallies.combo = 0; funkin_play_Countdown.performCountdown(StringTools.startsWith(this.get_currentStageId(),"school")); this.needsReset = false; } if(this.startingSong) { if(this.isInCountdown) { funkin_Conductor.get_instance().update(funkin_Conductor.get_instance().songPosition + elapsed * 1000,false); if(funkin_Conductor.get_instance().songPosition >= this.startTimestamp) { this.startSong(); } } } else { if(funkin_util_Constants.EXT_SOUND == "mp3") { funkin_Conductor.get_instance().formatOffset = funkin_util_Constants.MP3_DELAY_MS; } else { funkin_Conductor.get_instance().formatOffset = 0.0; } funkin_Conductor.get_instance().update(); } var androidPause = false; if((funkin_PlayerSettings.player1.controls._pause.check() || androidPause) && this.isInCountdown && this.mayPauseGame && !this.justUnpaused) { var Chance = 0.001; if(Chance == null) { Chance = 50; } var event = new funkin_modding_events_PauseScriptEvent(flixel_FlxG.random.float(0,100) < Chance); this.dispatchEvent(event); if(!event.eventCanceled) { this.persistentUpdate = false; this.persistentDraw = true; if(!this.get_isSubState() && event.gitaroo) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_play_GitarooPause({ targetSong : _gthis.currentSong, targetDifficulty : _gthis.currentDifficulty, targetVariation : _gthis.currentVariation}); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } else { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var boyfriendPos = new flixel_math_FlxBasePoint(x,y); if(this.currentStage != null && this.currentStage.getBoyfriend() != null) { boyfriendPos = this.currentStage.getBoyfriend().getScreenPosition(); } var pauseSubState = new funkin_play_PauseSubState({ mode : this.get_isChartingMode() ? funkin_play_PauseMode.Charting : funkin_play_PauseMode.Standard}); flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; pauseSubState.set_camera(this.camHUD); this.openSubState(pauseSubState); } } } if(this.health > funkin_util_Constants.HEALTH_MAX) { this.health = funkin_util_Constants.HEALTH_MAX; } if(this.health < funkin_util_Constants.HEALTH_MIN) { this.health = funkin_util_Constants.HEALTH_MIN; } if(this.subState == null && this.cameraZoomRate > 0.0) { this.cameraBopMultiplier = 1.0 + 0.95 * (this.cameraBopMultiplier - 1.0); var zoomPlusBop = this.currentCameraZoom * this.cameraBopMultiplier; flixel_FlxG.camera.set_zoom(zoomPlusBop); var a = this.defaultHUDCameraZoom; this.camHUD.set_zoom(a + 0.95 * (this.camHUD.zoom - a)); } if(this.currentStage != null && this.currentStage.getBoyfriend() != null) { var _this = flixel_FlxG.watch; var value = this.currentStage.getBoyfriend().getCurrentAnimation(); } if(!this.isInCutscene && !this.disableKeys) { if(funkin_PlayerSettings.player1.controls._reset.check()) { this.health = funkin_util_Constants.HEALTH_MIN; haxe_Log.trace("RESET = True",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1018, className : "funkin.play.PlayState", methodName : "update"}); } if(this.health <= funkin_util_Constants.HEALTH_MIN && !this.isPracticeMode && !this.isPlayerDying) { this.vocals.pause(); if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.pause(); } this.deathCounter += 1; this.dispatchEvent(new funkin_modding_events_ScriptEvent("GAME_OVER")); this.persistentUpdate = false; this.persistentDraw = false; this.isPlayerDying = true; var tmp = this.currentStage; var tmp1 = tmp != null ? tmp.getBoyfriend() : null; var tmp = tmp1 != null ? tmp1.getDeathPreTransitionDelay() : null; var deathPreTransitionDelay = tmp != null ? tmp : 0.0; if(deathPreTransitionDelay > 0) { new flixel_util_FlxTimer().start(deathPreTransitionDelay,function(_) { _gthis.moveToGameOver(); }); } else { this.moveToGameOver(); } } else { var tmp = this.isPlayerDying; } } this.processSongEvents(); this.processInputQueue(); if(!this.isInCutscene && !this.disableKeys) { this.debugKeyShit(); } if(this.isInCutscene && !this.disableKeys) { this.handleCutsceneKeys(elapsed); } if(!this.isInCutscene) { this.processNotes(elapsed); } this.justUnpaused = false; } ,moveToGameOver: function() { this.playerStrumline.clean(); this.opponentStrumline.clean(); this.songScore = 0; this.updateScoreText(); this.health = funkin_util_Constants.HEALTH_STARTING; this.healthLerp = this.health; this.healthBar.set_value(this.healthLerp); if(!this.isMinimalMode) { this.iconP1.updatePosition(); this.iconP2.updatePosition(); } var gameOverSubState = new funkin_play_GameOverSubState({ isChartingMode : this.get_isChartingMode(), transparent : this.persistentDraw}); flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; this.openSubState(gameOverSubState); } ,processSongEvents: function() { if(this.songEvents != null && this.songEvents.length > 0) { var songEventsToActivate = funkin_data_event_SongEventRegistry.queryEvents(this.songEvents,funkin_Conductor.get_instance().songPosition); if(songEventsToActivate.length > 0) { haxe_Log.trace("Found " + songEventsToActivate.length + " event(s) to activate.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1136, className : "funkin.play.PlayState", methodName : "processSongEvents"}); var _g = 0; while(_g < songEventsToActivate.length) { var event = songEventsToActivate[_g]; ++_g; var eventAge = funkin_Conductor.get_instance().songPosition - event.time; if(eventAge > 1000) { event.activated = true; continue; } var eventEvent = new funkin_modding_events_SongEventScriptEvent(event); this.dispatchEvent(eventEvent); if(!eventEvent.eventCanceled) { funkin_data_event_SongEventRegistry.handleEvent(event); } } } } } ,dispatchEvent: function(event) { funkin_ui_MusicBeatSubState.prototype.dispatchEvent.call(this,event); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentStage,event); if(this.currentStage != null) { this.currentStage.dispatchToCharacters(event); } funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentSong,event); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentConversation,event); } ,openSubState: function(subState) { var shouldPause = ((subState) instanceof funkin_play_PauseSubState) || ((subState) instanceof funkin_play_GameOverSubState); if(shouldPause) { if(flixel_FlxG.sound.music != null) { if(flixel_FlxG.sound.music._channel != null) { flixel_FlxG.sound.music.pause(); this.musicPausedBySubState = true; } if(this.vocals != null) { this.vocals.pause(); } } if(this.cameraFollowTween != null && this.cameraFollowTween.active) { this.cameraFollowTween.set_active(false); this.cameraTweensPausedBySubState.add(this.cameraFollowTween); } if(this.cameraZoomTween != null && this.cameraZoomTween.active) { this.cameraZoomTween.set_active(false); this.cameraTweensPausedBySubState.add(this.cameraZoomTween); } flixel_FlxG.camera.followLerp = 0; var _g = 0; var _g1 = this.scrollSpeedTweens; while(_g < _g1.length) { var tween = _g1[_g]; ++_g; if(tween != null && tween.active) { tween.set_active(false); this.cameraTweensPausedBySubState.add(tween); } } funkin_play_Countdown.pauseCountdown(); } funkin_ui_MusicBeatSubState.prototype.openSubState.call(this,subState); } ,closeSubState: function() { if(((this.subState) instanceof funkin_play_PauseSubState)) { var event = new funkin_modding_events_ScriptEvent("RESUME",true); this.dispatchEvent(event); if(event.eventCanceled) { return; } if(this.musicPausedBySubState) { flixel_FlxG.sound.music.play(); this.musicPausedBySubState = false; } var _g_head = this.cameraTweensPausedBySubState.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var camTween = val; camTween.set_active(true); } this.cameraTweensPausedBySubState.clear(); flixel_FlxG.camera.followLerp = funkin_util_Constants.DEFAULT_CAMERA_FOLLOW_RATE; if(this.currentConversation != null) { this.currentConversation.resumeMusic(); } if(flixel_FlxG.sound.music != null && !this.startingSong && !this.isInCutscene) { this.resyncVocals(); } funkin_play_Countdown.resumeCountdown(); this.justUnpaused = true; } else { var tmp = ((this.subState) instanceof flixel_addons_transition_Transition); } funkin_ui_MusicBeatSubState.prototype.closeSubState.call(this); } ,debug_refreshModules: function() { this.criticalFailure = true; if(this.currentStage != null) { this.remove(this.currentStage); var event = new funkin_modding_events_ScriptEvent("DESTROY",false); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentStage,event); this.currentStage = null; } if(!this.overrideMusic) { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.destroy(); flixel_FlxG.sound.music = null; } if(this.vocals != null && this.vocals.exists) { this.vocals.destroy(); this.vocals = null; } } else { if(flixel_FlxG.sound.music != null) { var _this = flixel_FlxG.sound.music; _this.cleanup(_this.autoDestroy,true); } if(this.vocals != null && this.vocals.exists) { this.vocals.stop(); } } funkin_ui_MusicBeatSubState.prototype.debug_refreshModules.call(this); var event = new funkin_modding_events_ScriptEvent("CREATE",false); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentSong,event); } ,stepHit: function() { if(this.criticalFailure || !this.initialized) { return false; } if(!funkin_ui_MusicBeatSubState.prototype.stepHit.call(this)) { return false; } if(this.get_isGamePaused()) { return false; } if(!this.startingSong && flixel_FlxG.sound.music != null && (Math.abs(flixel_FlxG.sound.music._time - (funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset)) > 200 || Math.abs(this.vocals.checkSyncError(funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset)) > 200)) { haxe_Log.trace("VOCALS NEED RESYNC",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1412, className : "funkin.play.PlayState", methodName : "stepHit"}); if(this.vocals != null) { haxe_Log.trace(this.vocals.checkSyncError(funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset),{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1413, className : "funkin.play.PlayState", methodName : "stepHit"}); } haxe_Log.trace(flixel_FlxG.sound.music._time - (funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset),{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1414, className : "funkin.play.PlayState", methodName : "stepHit"}); this.resyncVocals(); } if(this.iconP1 != null) { this.iconP1.onStepHit(funkin_Conductor.get_instance().currentStep | 0); } if(this.iconP2 != null) { this.iconP2.onStepHit(funkin_Conductor.get_instance().currentStep | 0); } return true; } ,beatHit: function() { if(this.criticalFailure || !this.initialized) { return false; } if(!funkin_ui_MusicBeatSubState.prototype.beatHit.call(this)) { return false; } if(this.get_isGamePaused()) { return false; } var tmp = this.generatedMusic; if(funkin_Preferences.get_zoomCamera() && flixel_FlxG.camera.zoom < 1.35 * flixel_FlxCamera.defaultZoom && this.cameraZoomRate > 0 && funkin_Conductor.get_instance().currentBeat % this.cameraZoomRate == 0) { this.cameraBopMultiplier = this.cameraBopIntensity; var fh = this.camHUD; fh.set_zoom(fh.zoom + this.hudCameraZoomIntensity * this.defaultHUDCameraZoom); } var shouldShowComboText = false; if(shouldShowComboText) { var animShit = new funkin_play_components_ComboMilestone(-100,300,funkin_Highscore.tallies.combo); var this1 = animShit.scrollFactor; var x = 0.6; var y = 0.6; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); animShit.zIndex = 1100; animShit.set_cameras([this.camHUD]); this.add(animShit); var frameShit = 0.0833333333333333287; new flixel_util_FlxTimer().start(funkin_Conductor.get_instance().get_beatLengthMs() / 1000 * 1.25 - frameShit,function(tmr) { animShit.forceFinish(); }); } if(this.playerStrumline != null) { this.playerStrumline.onBeatHit(); } if(this.opponentStrumline != null) { this.opponentStrumline.onBeatHit(); } this.danceOnBeat(); return true; } ,destroy: function() { this.performCleanup(); funkin_ui_MusicBeatSubState.prototype.destroy.call(this); } ,danceOnBeat: function() { if(this.currentStage == null) { return; } if(funkin_Conductor.get_instance().currentBeat % 16 == 15 && this.currentStage.getDad().characterId == "gf" && funkin_Conductor.get_instance().currentBeat > 16 && funkin_Conductor.get_instance().currentBeat < 48) { this.currentStage.getBoyfriend().playAnimation("hey",true); this.currentStage.getDad().playAnimation("cheer",true); } } ,initCameras: function() { this.camGame = new funkin_graphics_FunkinCamera("playStateCamGame"); this.camGame.bgColor = funkin_play_PlayState.BACKGROUND_COLOR; this.camHUD = new flixel_FlxCamera(); this.camHUD.bgColor &= 16777215; this.camHUD.bgColor |= 0; this.camCutscene = new flixel_FlxCamera(); this.camCutscene.bgColor &= 16777215; this.camCutscene.bgColor |= 0; flixel_FlxG.cameras.reset(this.camGame); flixel_FlxG.cameras.add(this.camHUD,false); flixel_FlxG.cameras.add(this.camCutscene,false); if(this.previousCameraFollowPoint != null) { this.cameraFollowPoint.setPosition(this.previousCameraFollowPoint.x,this.previousCameraFollowPoint.y); this.previousCameraFollowPoint = null; } this.add(this.cameraFollowPoint); } ,initHealthBar: function() { var healthBarYPos = funkin_Preferences.get_downscroll() ? flixel_FlxG.height * 0.1 : flixel_FlxG.height * 0.9; this.healthBarBG = funkin_graphics_FunkinSprite.create(0,healthBarYPos,"healthBar"); var _this = this.healthBarBG; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } var this1 = this.healthBarBG.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.healthBarBG.zIndex = 800; this.add(this.healthBarBG); this.healthBar = new flixel_ui_FlxBar(this.healthBarBG.x + 4,this.healthBarBG.y + 4,flixel_ui_FlxBarFillDirection.RIGHT_TO_LEFT,this.healthBarBG.get_width() - 8 | 0,this.healthBarBG.get_height() - 8 | 0,this,"healthLerp",0,2); var this1 = this.healthBar.scrollFactor; this1.set_x(0); this1.set_y(0); this.healthBar.createFilledBar(funkin_util_Constants.COLOR_HEALTH_BAR_RED,funkin_util_Constants.COLOR_HEALTH_BAR_GREEN); this.healthBar.zIndex = 801; this.add(this.healthBar); this.scoreText = new flixel_text_FlxText(this.healthBarBG.x + this.healthBarBG.get_width() - 190,this.healthBarBG.y + 30,0,"",20); this.scoreText.setFormat(funkin_Paths.font("vcr.ttf"),16,-1,"right",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); var this1 = this.scoreText.scrollFactor; this1.set_x(0); this1.set_y(0); this.scoreText.zIndex = 802; this.add(this.scoreText); this.healthBar.set_cameras([this.camHUD]); this.healthBarBG.set_cameras([this.camHUD]); this.scoreText.set_cameras([this.camHUD]); } ,initStage: function() { this.loadStage(this.get_currentStageId()); } ,initMinimalMode: function() { var menuBG = funkin_graphics_FunkinSprite.create(null,null,"menuDesat"); menuBG.set_color(-11751600); menuBG.setGraphicSize(menuBG.get_width() * 1.1 | 0); menuBG.updateHitbox(); if(17 == 1 || 17 == 17) { menuBG.set_x((flixel_FlxG.width - menuBG.get_width()) / 2); } if(17 == 16 || 17 == 17) { menuBG.set_y((flixel_FlxG.height - menuBG.get_height()) / 2); } var this1 = menuBG.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); menuBG.zIndex = -1000; this.add(menuBG); } ,loadStage: function(id) { this.currentStage = funkin_data_stage_StageRegistry.get_instance().fetchEntry(id); if(this.currentStage != null) { this.currentStage.revive(); var event = new funkin_modding_events_ScriptEvent("CREATE",false); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentStage,event); this.resetCameraZoom(); this.add(this.currentStage); } else { lime_app_Application.current.__window.alert("Unable to load stage " + id + ", is its data corrupted?.","Stage Error"); } } ,resetCameraZoom: function() { if(funkin_play_PlayState.instance.isMinimalMode) { return; } this.currentCameraZoom = this.get_stageZoom(); flixel_FlxG.camera.set_zoom(this.currentCameraZoom); this.cameraBopMultiplier = 1.0; } ,initCharacters: function() { if(this.currentSong == null || this.get_currentChart() == null) { haxe_Log.trace("Song difficulty could not be loaded.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1653, className : "funkin.play.PlayState", methodName : "initCharacters"}); } var currentCharacterData = this.get_currentChart().characters; var girlfriend = funkin_play_character_CharacterDataParser.fetchCharacter(currentCharacterData.girlfriend); if(girlfriend != null) { girlfriend.set_characterType(funkin_play_character_CharacterType.GF); } else if(currentCharacterData.girlfriend != "") { haxe_Log.trace("WARNING: Could not load girlfriend character with ID " + currentCharacterData.girlfriend + ", skipping...",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1669, className : "funkin.play.PlayState", methodName : "initCharacters"}); } var dad = funkin_play_character_CharacterDataParser.fetchCharacter(currentCharacterData.opponent); if(dad != null) { dad.set_characterType(funkin_play_character_CharacterType.DAD); this.iconP2 = new funkin_play_components_HealthIcon("dad",1); this.iconP2.set_y(this.healthBar.y - this.iconP2.get_height() / 2); dad.initHealthIcon(true); this.iconP2.zIndex = 850; this.add(this.iconP2); this.iconP2.set_cameras([this.camHUD]); } var boyfriend = funkin_play_character_CharacterDataParser.fetchCharacter(currentCharacterData.player); if(boyfriend != null) { boyfriend.set_characterType(funkin_play_character_CharacterType.BF); this.iconP1 = new funkin_play_components_HealthIcon("bf",0); this.iconP1.set_y(this.healthBar.y - this.iconP1.get_height() / 2); boyfriend.initHealthIcon(false); this.iconP1.zIndex = 850; this.add(this.iconP1); this.iconP1.set_cameras([this.camHUD]); } if(this.currentStage != null) { if(girlfriend != null) { this.currentStage.addCharacter(girlfriend,funkin_play_character_CharacterType.GF); } if(boyfriend != null) { this.currentStage.addCharacter(boyfriend,funkin_play_character_CharacterType.BF); } if(dad != null) { this.currentStage.addCharacter(dad,funkin_play_character_CharacterType.DAD); this.cameraFollowPoint.setPosition(dad.cameraFocusPoint.x,dad.cameraFocusPoint.y); } this.currentStage.refresh(); } } ,initStrumlines: function() { var noteStyleId = this.get_currentChart().noteStyle; var noteStyle = funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchEntry(noteStyleId); if(noteStyle == null) { noteStyle = funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchDefault(); } this.playerStrumline = new funkin_play_notes_Strumline(noteStyle,!this.isBotPlayMode); this.playerStrumline.onNoteIncoming.add($bind(this,this.onStrumlineNoteIncoming)); this.opponentStrumline = new funkin_play_notes_Strumline(noteStyle,false); this.opponentStrumline.onNoteIncoming.add($bind(this,this.onStrumlineNoteIncoming)); this.add(this.playerStrumline); this.add(this.opponentStrumline); this.playerStrumline.set_x(flixel_FlxG.width / 2 + funkin_util_Constants.STRUMLINE_X_OFFSET); this.playerStrumline.set_y(funkin_Preferences.get_downscroll() ? flixel_FlxG.height - this.playerStrumline.get_height() - funkin_util_Constants.STRUMLINE_Y_OFFSET : funkin_util_Constants.STRUMLINE_Y_OFFSET); this.playerStrumline.zIndex = 1001; this.playerStrumline.set_cameras([this.camHUD]); this.opponentStrumline.set_x(funkin_util_Constants.STRUMLINE_X_OFFSET); this.opponentStrumline.set_y(funkin_Preferences.get_downscroll() ? flixel_FlxG.height - this.opponentStrumline.get_height() - funkin_util_Constants.STRUMLINE_Y_OFFSET : funkin_util_Constants.STRUMLINE_Y_OFFSET); this.opponentStrumline.zIndex = 1000; this.opponentStrumline.set_cameras([this.camHUD]); if(!funkin_play_PlayStatePlaylist.isStoryMode) { this.playerStrumline.fadeInArrows(); this.opponentStrumline.fadeInArrows(); } } ,initDiscord: function() { } ,initPreciseInputs: function() { funkin_input_PreciseInputManager.get_instance().onInputPressed.add($bind(this,this.onKeyPress)); funkin_input_PreciseInputManager.get_instance().onInputReleased.add($bind(this,this.onKeyRelease)); } ,generateSong: function() { if(this.get_currentChart() == null) { haxe_Log.trace("Song difficulty could not be loaded.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1836, className : "funkin.play.PlayState", methodName : "generateSong"}); } if(!this.overrideMusic) { if(this.vocals != null) { this.vocals.stop(); } this.vocals = this.get_currentChart().buildVocals(); if(this.vocals.members.length == 0) { haxe_Log.trace("WARNING: No vocals found for this song.",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 1849, className : "funkin.play.PlayState", methodName : "generateSong"}); } } this.regenNoteData(); var event = new funkin_modding_events_ScriptEvent("CREATE",false); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentSong,event); this.generatedMusic = true; } ,regenNoteData: function(startTime) { if(startTime == null) { startTime = 0; } funkin_Highscore.tallies.combo = 0; funkin_Highscore.tallies = funkin_Tallies._new(); var event = new funkin_modding_events_SongLoadScriptEvent(this.get_currentChart().song.id,this.get_currentChart().difficulty,this.get_currentChart().notes.slice(),this.get_currentChart().getEvents()); this.dispatchEvent(event); var builtNoteData = event.notes; var builtEventData = event.events; this.songEvents = builtEventData; funkin_data_event_SongEventRegistry.resetEvents(this.songEvents); var playerNoteData = []; var opponentNoteData = []; var _g = 0; while(_g < builtNoteData.length) { var songNote = builtNoteData[_g]; ++_g; var strumTime = songNote.time; if(strumTime < startTime) { continue; } var noteData = songNote.data % 4; var playerNote = true; if(noteData > 3) { playerNote = false; } switch(songNote.getStrumlineIndex()) { case 0: playerNoteData.push(songNote); funkin_Highscore.tallies.totalNotes++; break; case 1: opponentNoteData.push(songNote); break; } } this.playerStrumline.applyNoteData(playerNoteData); this.opponentStrumline.applyNoteData(opponentNoteData); } ,onStrumlineNoteIncoming: function(noteSprite) { var event = new funkin_modding_events_NoteScriptEvent("NOTE_INCOMING",noteSprite,0,null,false); this.dispatchEvent(event); } ,startCountdown: function() { var result = funkin_play_Countdown.performCountdown(StringTools.startsWith(this.get_currentStageId(),"school")); if(!result) { return; } this.isInCutscene = false; this.camCutscene.set_visible(false); this.camHUD.set_visible(true); } ,startConversation: function(conversationId) { this.isInCutscene = true; this.currentConversation = funkin_data_dialogue_conversation_ConversationRegistry.get_instance().fetchEntry(conversationId); if(this.currentConversation == null) { return; } if(!this.currentConversation.alive) { this.currentConversation.revive(); } this.currentConversation.completeCallback = $bind(this,this.onConversationComplete); this.currentConversation.set_cameras([this.camCutscene]); this.currentConversation.zIndex = 1000; this.add(this.currentConversation); this.refresh(); var event = new funkin_modding_events_ScriptEvent("CREATE",false); funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentConversation,event); } ,onConversationComplete: function() { this.isInCutscene = false; if(this.currentConversation != null) { this.currentConversation.kill(); this.remove(this.currentConversation); this.currentConversation = null; } if(this.startingSong && !this.isInCountdown) { this.startCountdown(); } } ,startSong: function() { this.startingSong = false; if(!this.overrideMusic && !this.get_isGamePaused() && this.get_currentChart() != null) { this.get_currentChart().playInst(1.0,this.currentInstrumental,false); } if(flixel_FlxG.sound.music == null) { flixel_FlxG.log.advanced("PlayState failed to initialize instrumental!",flixel_system_debug_log_LogStyle.ERROR,true); return; } var _g = this; var rightGoddamnNow = false; var tmp = function() { _g.endSong(rightGoddamnNow); }; flixel_FlxG.sound.music.onComplete = tmp; flixel_FlxG.sound.music.play(true,this.startTimestamp - funkin_Conductor.get_instance().instrumentalOffset); flixel_FlxG.sound.music.set_pitch(this.playbackRate); flixel_FlxG.sound.music.set_volume(1.0); if(flixel_FlxG.sound.music.fadeTween != null) { flixel_FlxG.sound.music.fadeTween.cancel(); } haxe_Log.trace("Playing vocals...",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2003, className : "funkin.play.PlayState", methodName : "startSong"}); this.add(this.vocals); this.vocals.play(); this.vocals.set_volume(1.0); this.vocals.set_pitch(this.playbackRate); this.resyncVocals(); if(this.startTimestamp > 0) { this.handleSkippedNotes(); } this.dispatchEvent(new funkin_modding_events_ScriptEvent("SONG_START")); } ,resyncVocals: function() { if(this.vocals == null) { return; } if(flixel_FlxG.sound.music._channel == null) { return; } this.vocals.pause(); flixel_FlxG.sound.music.play(null,flixel_FlxG.sound.music._time); this.vocals.set_time(flixel_FlxG.sound.music._time); this.vocals.play(false,flixel_FlxG.sound.music._time); } ,updateScoreText: function() { if(this.isBotPlayMode) { this.scoreText.set_text("Bot Play Enabled"); } else { this.scoreText.set_text("Score:" + this.songScore); } } ,updateHealthBar: function() { if(this.isBotPlayMode) { this.healthLerp = funkin_util_Constants.HEALTH_MAX; } else { var a = this.healthLerp; this.healthLerp = a + 0.15 * (this.health - a); } } ,onKeyPress: function(event) { if(this.get_isGamePaused()) { return; } this.inputPressQueue.push(event); } ,onKeyRelease: function(event) { if(this.get_isGamePaused()) { return; } this.inputReleaseQueue.push(event); } ,processNotes: function(elapsed) { var tmp; var tmp1 = this.playerStrumline; var tmp2 = tmp1 != null ? tmp1.notes : null; if((tmp2 != null ? tmp2.group.members : null) != null) { var tmp1 = this.opponentStrumline; var tmp2 = tmp1 != null ? tmp1.notes : null; tmp = (tmp2 != null ? tmp2.group.members : null) == null; } else { tmp = true; } if(tmp) { return; } var _g = 0; var _g1 = this.opponentStrumline.notes.group.members; while(_g < _g1.length) { var note = _g1[_g]; ++_g; if(note == null) { continue; } var hitWindowStart = note.get_strumTime() + funkin_Conductor.get_instance().get_inputOffset() - funkin_util_Constants.HIT_WINDOW_MS; var hitWindowCenter = note.get_strumTime() + funkin_Conductor.get_instance().get_inputOffset(); var hitWindowEnd = note.get_strumTime() + funkin_Conductor.get_instance().get_inputOffset() + funkin_util_Constants.HIT_WINDOW_MS; if(funkin_Conductor.get_instance().songPosition > hitWindowEnd) { if(note.hasMissed || note.hasBeenHit) { continue; } note.tooEarly = false; note.mayHit = false; note.hasMissed = true; if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = true; } } else if(funkin_Conductor.get_instance().songPosition > hitWindowCenter) { if(note.hasBeenHit) { continue; } var event = new funkin_modding_events_HitNoteScriptEvent(note,0.0,0,"perfect",false,0); this.dispatchEvent(event); if(event.eventCanceled) { continue; } this.opponentStrumline.hitNote(note); if(note.holdNoteSprite != null) { this.opponentStrumline.playNoteHoldCover(note.holdNoteSprite); } } else if(funkin_Conductor.get_instance().songPosition > hitWindowStart) { if(note.hasBeenHit || note.hasMissed) { continue; } note.tooEarly = false; note.mayHit = true; note.hasMissed = false; if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = false; } } else { note.tooEarly = true; note.mayHit = false; note.hasMissed = false; if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = false; } } } var _g = 0; var _g1 = this.opponentStrumline.holdNotes.group.members; while(_g < _g1.length) { var holdNote = _g1[_g]; ++_g; if(holdNote == null || !holdNote.alive) { continue; } if(holdNote.hitNote && !holdNote.missedNote && holdNote.sustainLength > 0) { if(this.currentStage != null && this.currentStage.getDad() != null && this.currentStage.getDad().isSinging()) { this.currentStage.getDad().holdTimer = 0; } } if(holdNote.missedNote && !holdNote.handledMiss) { holdNote.handledMiss = true; this.currentStage.getOpponent().playSingAnimation(holdNote.noteData.data % 4,true); } } var _g = 0; var _g1 = this.playerStrumline.notes.group.members; while(_g < _g1.length) { var note = _g1[_g]; ++_g; if(note == null) { continue; } if(note.hasBeenHit) { note.tooEarly = false; note.mayHit = false; note.hasMissed = false; continue; } var hitWindowStart = note.get_strumTime() - funkin_util_Constants.HIT_WINDOW_MS; var hitWindowCenter = note.get_strumTime(); var hitWindowEnd = note.get_strumTime() + funkin_util_Constants.HIT_WINDOW_MS; if(funkin_Conductor.get_instance().songPosition > hitWindowEnd) { if(note.hasMissed || note.hasBeenHit) { continue; } note.tooEarly = false; note.mayHit = false; note.hasMissed = true; if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = true; } } else if(this.isBotPlayMode && funkin_Conductor.get_instance().songPosition > hitWindowCenter) { if(note.hasBeenHit) { continue; } var event = new funkin_modding_events_HitNoteScriptEvent(note,0.0,0,"perfect",false,0); this.dispatchEvent(event); if(event.eventCanceled) { continue; } this.playerStrumline.hitNote(note); if(note.holdNoteSprite != null) { this.playerStrumline.playNoteHoldCover(note.holdNoteSprite); } } else if(funkin_Conductor.get_instance().songPosition > hitWindowStart) { note.tooEarly = false; note.mayHit = true; note.hasMissed = false; if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = false; } } else { note.tooEarly = true; note.mayHit = false; note.hasMissed = false; if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = false; } } if(note.hasMissed && !note.handledMiss) { var event1 = new funkin_modding_events_NoteScriptEvent("NOTE_MISS",note,-funkin_util_Constants.HEALTH_MISS_PENALTY,0,true); this.dispatchEvent(event1); if(event1.eventCanceled) { continue; } haxe_Log.trace("Missed note! " + (note.noteData == null ? "null" : funkin_data_song_SongNoteData.toString(note.noteData)),{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2272, className : "funkin.play.PlayState", methodName : "processNotes"}); this.onNoteMiss(note,event1.playSound,event1.healthChange); note.handledMiss = true; } } var _g = 0; var _g1 = this.playerStrumline.holdNotes.group.members; while(_g < _g1.length) { var holdNote = _g1[_g]; ++_g; if(holdNote == null || !holdNote.alive) { continue; } if(holdNote.hitNote && !holdNote.missedNote && holdNote.sustainLength > 0) { if(!this.isBotPlayMode) { this.health += funkin_util_Constants.HEALTH_HOLD_BONUS_PER_SECOND * elapsed; this.songScore += funkin_util_Constants.SCORE_HOLD_BONUS_PER_SECOND * elapsed | 0; } if(this.isBotPlayMode && this.currentStage != null && this.currentStage.getBoyfriend() != null && this.currentStage.getBoyfriend().isSinging()) { this.currentStage.getBoyfriend().holdTimer = 0; } } if(holdNote.missedNote && !holdNote.handledMiss) { holdNote.handledMiss = true; } } } ,inputSpitter: null ,handleSkippedNotes: function() { var _g = 0; var _g1 = this.playerStrumline.notes.group.members; while(_g < _g1.length) { var note = _g1[_g]; ++_g; if(note == null || note.hasBeenHit) { continue; } var hitWindowEnd = note.get_strumTime() + funkin_util_Constants.HIT_WINDOW_MS; if(funkin_Conductor.get_instance().songPosition > hitWindowEnd) { note.handledMiss = true; } } this.playerStrumline.handleSkippedNotes(); this.opponentStrumline.handleSkippedNotes(); } ,processInputQueue: function() { if(this.inputPressQueue.length + this.inputReleaseQueue.length == 0) { return; } if(this.isInCutscene || this.disableKeys) { this.inputPressQueue = []; this.inputReleaseQueue = []; return; } var notesInRange = this.playerStrumline.getNotesMayHit(); var holdNotesInRange = this.playerStrumline.getHoldNotesHitOrMissed(); var notesByDirection = [[],[],[],[]]; var _g = 0; while(_g < notesInRange.length) { var note = notesInRange[_g]; ++_g; notesByDirection[note.direction].push(note); } while(this.inputPressQueue.length > 0) { var input = this.inputPressQueue.shift(); this.playerStrumline.pressKey(input.noteDirection); var notesInDirection = notesByDirection[input.noteDirection]; if(!funkin_util_Constants.GHOST_TAPPING && notesInDirection.length == 0) { this.ghostNoteMiss(input.noteDirection,notesInRange.length > 0); this.playerStrumline.playPress(input.noteDirection); haxe_Log.trace("PENALTY Score: " + this.songScore,{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2380, className : "funkin.play.PlayState", methodName : "processInputQueue"}); } else if(funkin_util_Constants.GHOST_TAPPING && !this.playerStrumline.mayGhostTap() && notesInDirection.length == 0) { this.ghostNoteMiss(input.noteDirection,notesInRange.length > 0); this.playerStrumline.playPress(input.noteDirection); haxe_Log.trace("PENALTY Score: " + this.songScore,{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2390, className : "funkin.play.PlayState", methodName : "processInputQueue"}); } else if(notesInDirection.length == 0) { this.playerStrumline.playPress(input.noteDirection); haxe_Log.trace("NO PENALTY Score: " + this.songScore,{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2398, className : "funkin.play.PlayState", methodName : "processInputQueue"}); } else { var targetNote = thx_Arrays.find(notesInDirection,function(note) { return !note.lowPriority; }); if(targetNote == null) { targetNote = notesInDirection[0]; } if(targetNote == null) { continue; } haxe_Log.trace("Hit note! " + (targetNote.noteData == null ? "null" : funkin_data_song_SongNoteData.toString(targetNote.noteData)),{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2408, className : "funkin.play.PlayState", methodName : "processInputQueue"}); this.goodNoteHit(targetNote,input); haxe_Log.trace("Score: " + this.songScore,{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2410, className : "funkin.play.PlayState", methodName : "processInputQueue"}); HxOverrides.remove(notesInDirection,targetNote); this.playerStrumline.playConfirm(input.noteDirection); } } while(this.inputReleaseQueue.length > 0) { var input = this.inputReleaseQueue.shift(); this.playerStrumline.playStatic(input.noteDirection); this.playerStrumline.releaseKey(input.noteDirection); } } ,goodNoteHit: function(note,input) { var a = funkin_input_PreciseInputManager.getCurrentTimestamp(); var b = input.timestamp; var high = a.high - b.high | 0; var low = a.low - b.low | 0; if(haxe_Int32.ucompare(a.low,b.low) < 0) { var ret = high--; high = high | 0; } var inputLatencyNs = new haxe__$Int64__$_$_$Int64(high,low); var inputLatencyMs = funkin_util_tools_Int64Tools.toFloat(inputLatencyNs) / funkin_util_Constants.NS_PER_MS; var noteDiff = funkin_Conductor.get_instance().songPosition - note.noteData.time - inputLatencyMs | 0; var score = funkin_play_scoring_Scoring.scoreNote(noteDiff,"PBOT1"); var daRating = funkin_play_scoring_Scoring.judgeNote(noteDiff,"PBOT1"); var healthChange = 0.0; var isComboBreak = false; switch(daRating) { case "bad": healthChange = funkin_util_Constants.HEALTH_BAD_BONUS; isComboBreak = funkin_util_Constants.JUDGEMENT_BAD_COMBO_BREAK; break; case "good": healthChange = funkin_util_Constants.HEALTH_GOOD_BONUS; isComboBreak = funkin_util_Constants.JUDGEMENT_GOOD_COMBO_BREAK; break; case "shit": isComboBreak = funkin_util_Constants.JUDGEMENT_SHIT_COMBO_BREAK; healthChange = funkin_util_Constants.HEALTH_SHIT_BONUS; break; case "sick": healthChange = funkin_util_Constants.HEALTH_SICK_BONUS; isComboBreak = funkin_util_Constants.JUDGEMENT_SICK_COMBO_BREAK; break; } var event = new funkin_modding_events_HitNoteScriptEvent(note,healthChange,score,daRating,isComboBreak,funkin_Highscore.tallies.combo + 1,noteDiff,daRating == "sick"); this.dispatchEvent(event); if(event.eventCanceled) { return; } funkin_Highscore.tallies.totalNotesHit++; this.playerStrumline.hitNote(note,!isComboBreak); if(event.doesNotesplash) { this.playerStrumline.playNoteSplash(note.noteData.data % 4); } if(note.get_isHoldNote() && note.holdNoteSprite != null) { this.playerStrumline.playNoteHoldCover(note.holdNoteSprite); } this.vocals.set_playerVolume(1); this.applyScore(event.score,event.judgement,event.healthChange,event.isComboBreak); this.popUpScore(event.judgement); } ,onNoteMiss: function(note,playSound,healthChange) { if(playSound == null) { playSound = false; } if(!this.isPracticeMode) { var pressArray = [funkin_PlayerSettings.player1.controls._note_left.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_down.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_up.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_right.checkJustPressed()]; var indices = []; var _g = 0; var _g1 = pressArray.length; while(_g < _g1) { var i = _g++; if(pressArray[i]) { indices.push(i); } } if(indices.length > 0) { var _g = 0; var _g1 = indices.length; while(_g < _g1) { var i = _g++; this.inputSpitter.push({ t : funkin_Conductor.get_instance().songPosition | 0, d : indices[i], l : 20}); } } else { this.inputSpitter.push({ t : funkin_Conductor.get_instance().songPosition | 0, d : -1, l : 20}); } } this.vocals.set_playerVolume(0); if(funkin_Highscore.tallies.combo != 0) { if(funkin_Highscore.tallies.combo >= 10) { this.comboPopUps.displayCombo(0); } } this.applyScore(-10,"miss",healthChange,true); if(playSound) { this.vocals.set_playerVolume(0); funkin_audio_FunkinSound.playOnce(funkin_Paths.soundRandom("missnote",1,3),flixel_FlxG.random.float(0.5,0.6)); } } ,ghostNoteMiss: function(direction,hasPossibleNotes) { if(hasPossibleNotes == null) { hasPossibleNotes = true; } var event = new funkin_modding_events_GhostMissNoteScriptEvent(direction,hasPossibleNotes,-1 * funkin_util_Constants.HEALTH_MISS_PENALTY,-10); this.dispatchEvent(event); if(event.eventCanceled) { return; } this.health += event.healthChange; this.songScore += event.scoreChange; if(!this.isPracticeMode) { var pressArray = [funkin_PlayerSettings.player1.controls._note_left.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_down.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_up.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_right.checkJustPressed()]; var indices = []; var _g = 0; var _g1 = pressArray.length; while(_g < _g1) { var i = _g++; if(pressArray[i]) { indices.push(i); } } var _g = 0; var _g1 = indices.length; while(_g < _g1) { var i = _g++; this.inputSpitter.push({ t : funkin_Conductor.get_instance().songPosition | 0, d : indices[i], l : 20}); } } if(event.playSound) { this.vocals.set_playerVolume(0); funkin_audio_FunkinSound.playOnce(funkin_Paths.soundRandom("missnote",1,3),flixel_FlxG.random.float(0.1,0.2)); } } ,debugKeyShit: function() { this.perfectMode = false; var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(57,_this.status)) { this.iconP1.toggleOldIcon(); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(66,_this.status)) { haxe_Log.trace(this.inputSpitter.join("\n"),{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2652, className : "funkin.play.PlayState", methodName : "debugKeyShit"}); } } ,applyScore: function(score,daRating,healthChange,isComboBreak) { switch(daRating) { case "bad": funkin_Highscore.tallies.bad += 1; break; case "good": funkin_Highscore.tallies.good += 1; break; case "miss": funkin_Highscore.tallies.missed += 1; break; case "shit": funkin_Highscore.tallies.shit += 1; break; case "sick": funkin_Highscore.tallies.sick += 1; break; } this.health += healthChange; if(isComboBreak) { if(funkin_Highscore.tallies.combo >= 10) { this.comboPopUps.displayCombo(0); } funkin_Highscore.tallies.combo = 0; } else { funkin_Highscore.tallies.combo++; if(funkin_Highscore.tallies.combo > funkin_Highscore.tallies.maxCombo) { funkin_Highscore.tallies.maxCombo = funkin_Highscore.tallies.combo; } } this.songScore += score; } ,popUpScore: function(daRating,combo) { if(daRating == "miss") { flixel_FlxG.log.advanced("popUpScore judged a note as a miss!",flixel_system_debug_log_LogStyle.WARNING,true); return; } if(combo == null) { combo = funkin_Highscore.tallies.combo; } if(!this.isPracticeMode) { var pressArray = [funkin_PlayerSettings.player1.controls._note_left.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_down.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_up.checkJustPressed(),funkin_PlayerSettings.player1.controls._note_right.checkJustPressed()]; var indices = []; var _g = 0; var _g1 = pressArray.length; while(_g < _g1) { var i = _g++; if(pressArray[i]) { indices.push(i); } } if(indices.length > 0) { var _g = 0; var _g1 = indices.length; while(_g < _g1) { var i = _g++; this.inputSpitter.push({ t : funkin_Conductor.get_instance().songPosition | 0, d : indices[i], l : 20}); } } else { this.inputSpitter.push({ t : funkin_Conductor.get_instance().songPosition | 0, d : -1, l : 20}); } } this.comboPopUps.displayRating(daRating); if(combo >= 10 || combo == 0) { this.comboPopUps.displayCombo(combo); } this.vocals.set_playerVolume(1); } ,handleCutsceneKeys: function(elapsed) { if(this.get_isGamePaused()) { return; } if(this.currentConversation != null) { if(funkin_PlayerSettings.player1.controls._cutscene_advance.check() && !this.justUnpaused) { this.currentConversation.advanceConversation(); } else if(funkin_PlayerSettings.player1.controls._pause.check() && !this.justUnpaused) { this.currentConversation.pauseMusic(); var pauseSubState = new funkin_play_PauseSubState({ mode : funkin_play_PauseMode.Conversation}); this.persistentUpdate = false; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; pauseSubState.set_camera(this.camCutscene); this.openSubState(pauseSubState); } } else if(funkin_play_cutscene_VideoCutscene.isPlaying()) { if(funkin_PlayerSettings.player1.controls._pause.check() && !this.justUnpaused) { funkin_play_cutscene_VideoCutscene.pauseVideo(); var pauseSubState = new funkin_play_PauseSubState({ mode : funkin_play_PauseMode.Cutscene}); this.persistentUpdate = false; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; pauseSubState.set_camera(this.camCutscene); this.openSubState(pauseSubState); } } } ,skipVideoCutscene: function() { funkin_play_cutscene_VideoCutscene.finishVideo(); } ,endSong: function(rightGoddamnNow) { if(rightGoddamnNow == null) { rightGoddamnNow = false; } var _gthis = this; if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.set_volume(0); } this.vocals.set_volume(0); this.mayPauseGame = false; var event = new funkin_modding_events_ScriptEvent("SONG_END",true); this.dispatchEvent(event); if(event.eventCanceled) { return; } this.deathCounter = 0; var suffixedDifficulty = this.currentVariation != funkin_util_Constants.DEFAULT_VARIATION && this.currentVariation != "erect" ? "" + this.currentDifficulty + "-" + this.currentVariation : this.currentDifficulty; var isNewHighscore = false; var prevScoreData = funkin_save_Save.get_instance().getSongScore(this.currentSong.id,suffixedDifficulty); if(this.currentSong != null && this.currentSong.validScore) { var data = { score : this.songScore, tallies : { sick : funkin_Highscore.tallies.sick, good : funkin_Highscore.tallies.good, bad : funkin_Highscore.tallies.bad, shit : funkin_Highscore.tallies.shit, missed : funkin_Highscore.tallies.missed, combo : funkin_Highscore.tallies.combo, maxCombo : funkin_Highscore.tallies.maxCombo, totalNotesHit : funkin_Highscore.tallies.totalNotesHit, totalNotes : funkin_Highscore.tallies.totalNotes}}; funkin_Highscore.talliesLevel = funkin_Highscore.combineTallies(funkin_Highscore.tallies,funkin_Highscore.talliesLevel); if(!this.isPracticeMode && !this.isBotPlayMode) { isNewHighscore = funkin_save_Save.get_instance().isSongHighScore(this.currentSong.id,suffixedDifficulty,data); funkin_save_Save.get_instance().applySongRank(this.currentSong.id,suffixedDifficulty,data); var isNewHighscore1 = isNewHighscore; } } if(funkin_play_PlayStatePlaylist.isStoryMode) { isNewHighscore = false; funkin_play_PlayStatePlaylist.campaignScore += this.songScore; var targetSongId = funkin_play_PlayStatePlaylist.playlistSongIds.shift(); if(targetSongId == null) { if(this.currentSong.validScore) { funkin_api_newgrounds_NGio.unlockMedal(60961); var data = { score : funkin_play_PlayStatePlaylist.campaignScore, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; if(funkin_save_Save.get_instance().isLevelHighScore(funkin_play_PlayStatePlaylist.campaignId,funkin_play_PlayStatePlaylist.campaignDifficulty,data)) { funkin_save_Save.get_instance().setLevelScore(funkin_play_PlayStatePlaylist.campaignId,funkin_play_PlayStatePlaylist.campaignDifficulty,data); isNewHighscore = true; } } if(this.get_isSubState()) { this.close(); } else if(rightGoddamnNow) { this.moveToResultsScreen(isNewHighscore); } else { this.zoomIntoResultsScreen(isNewHighscore); } } else { var difficulty = ""; haxe_Log.trace("Loading next song (" + targetSongId + " : " + difficulty + ")",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 2941, className : "funkin.play.PlayState", methodName : "endSong"}); flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; if(flixel_FlxG.sound.music != null) { var _this = flixel_FlxG.sound.music; _this.cleanup(_this.autoDestroy,true); } this.vocals.stop(); if(this.currentSong.id == "eggnog") { var blackBG = new funkin_graphics_FunkinSprite(-flixel_FlxG.width * flixel_FlxG.camera.zoom,-flixel_FlxG.height * flixel_FlxG.camera.zoom); blackBG.makeSolidColor(flixel_FlxG.width * 3,flixel_FlxG.height * 3,-16777216); var this1 = blackBG.scrollFactor; this1.set_x(0); this1.set_y(0); this.add(blackBG); this.camHUD.set_visible(false); this.isInCutscene = true; funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("Lights_Shut_off"),null,function() { var targetSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(targetSongId); funkin_ui_transition_LoadingState.loadPlayState({ targetSong : targetSong, targetDifficulty : funkin_play_PlayStatePlaylist.campaignDifficulty, targetVariation : _gthis.currentVariation, cameraFollowPoint : _gthis.cameraFollowPoint.getPosition()}); }); } else { var targetSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(targetSongId); funkin_ui_transition_LoadingState.loadPlayState({ targetSong : targetSong, targetDifficulty : funkin_play_PlayStatePlaylist.campaignDifficulty, targetVariation : this.currentVariation, cameraFollowPoint : this.cameraFollowPoint.getPosition()}); } } } else if(this.get_isSubState()) { this.close(); } else if(rightGoddamnNow) { this.moveToResultsScreen(isNewHighscore,prevScoreData); } else { this.zoomIntoResultsScreen(isNewHighscore,prevScoreData); } } ,close: function() { this.criticalFailure = true; this.performCleanup(); funkin_ui_MusicBeatSubState.prototype.close.call(this); } ,performCleanup: function() { this.cancelAllCameraTweens(); this.dispatchEvent(new funkin_modding_events_ScriptEvent("DESTROY",false)); if(this.currentConversation != null) { this.remove(this.currentConversation); this.currentConversation.kill(); } var tmp = this.get_currentChart() != null; if(this.overrideMusic) { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.pause(); } if(this.vocals != null) { this.vocals.pause(); this.remove(this.vocals); } } else { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.pause(); } if(this.vocals != null) { this.vocals.destroy(); this.remove(this.vocals); } } if(this.currentStage != null) { this.remove(this.currentStage); this.currentStage.kill(); this.currentStage = null; } funkin_play_GameOverSubState.reset(); funkin_play_PauseSubState.reset(); funkin_play_PlayState.instance = null; } ,zoomIntoResultsScreen: function(isNewHighscore,prevScoreData) { var _gthis = this; haxe_Log.trace("WENT TO RESULTS SCREEN!",{ fileName : "source/funkin/play/PlayState.hx", lineNumber : 3074, className : "funkin.play.PlayState", methodName : "zoomIntoResultsScreen"}); this.cameraZoomRate = 0; this.cancelAllCameraTweens(); this.cancelScrollSpeedTweens(); var targetDad = this.currentStage.getDad() != null && this.currentStage.getDad().characterId == "gf"; var targetBF = this.currentStage.getGirlfriend() == null && !targetDad; if(targetBF) { flixel_FlxG.camera.follow(this.currentStage.getBoyfriend(),null,0.05); } else if(targetDad) { flixel_FlxG.camera.follow(this.currentStage.getDad(),null,0.05); } else { flixel_FlxG.camera.follow(this.currentStage.getGirlfriend(),null,0.05); } var fh = flixel_FlxG.camera; fh.targetOffset.set_y(fh.targetOffset.y - 350); var fh = flixel_FlxG.camera; fh.targetOffset.set_x(fh.targetOffset.x + 20); flixel_FlxG.camera.fade(-16777216,0.6); flixel_tweens_FlxTween.tween(this.camHUD,{ alpha : 0},0.6,{ onComplete : function(_) { _gthis.moveToResultsScreen(isNewHighscore,prevScoreData); }}); new flixel_util_FlxTimer().start(0.8,function(_) { if(targetBF) { _gthis.currentStage.getBoyfriend().animation.play("hey"); } else if(targetDad) { _gthis.currentStage.getDad().animation.play("cheer"); } else { _gthis.currentStage.getGirlfriend().animation.play("cheer"); } }); } ,moveToResultsScreen: function(isNewHighscore,prevScoreData) { this.persistentUpdate = false; this.vocals.stop(); this.camHUD.set_alpha(1); var talliesToUse = funkin_play_PlayStatePlaylist.isStoryMode ? funkin_Highscore.talliesLevel : funkin_Highscore.tallies; var res = new funkin_play_ResultState({ storyMode : funkin_play_PlayStatePlaylist.isStoryMode, songId : this.get_currentChart().song.id, difficultyId : this.currentDifficulty, title : funkin_play_PlayStatePlaylist.isStoryMode ? "" + funkin_play_PlayStatePlaylist.campaignTitle : "" + this.get_currentChart().songName + " by " + this.get_currentChart().songArtist, prevScoreData : prevScoreData, scoreData : { score : funkin_play_PlayStatePlaylist.isStoryMode ? funkin_play_PlayStatePlaylist.campaignScore : this.songScore, tallies : { sick : talliesToUse.sick, good : talliesToUse.good, bad : talliesToUse.bad, shit : talliesToUse.shit, missed : talliesToUse.missed, combo : talliesToUse.combo, maxCombo : talliesToUse.maxCombo, totalNotesHit : talliesToUse.totalNotesHit, totalNotes : talliesToUse.totalNotes}}, isNewHighscore : isNewHighscore}); this.persistentDraw = false; this.openSubState(res); } ,pauseMusic: function() { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.pause(); } if(this.vocals != null) { this.vocals.pause(); } } ,resetCamera: function(resetZoom,cancelTweens) { if(cancelTweens == null) { cancelTweens = true; } if(resetZoom == null) { resetZoom = true; } if(cancelTweens) { this.cancelAllCameraTweens(); } flixel_FlxG.camera.follow(this.cameraFollowPoint,flixel_FlxCameraFollowStyle.LOCKON,funkin_util_Constants.DEFAULT_CAMERA_FOLLOW_RATE); var this1 = flixel_FlxG.camera.targetOffset; this1.set_x(0); this1.set_y(0); if(resetZoom) { this.resetCameraZoom(); } var _this = flixel_FlxG.camera; var point = this.cameraFollowPoint.getPosition(); var this1 = _this.scroll; var x = point.x - _this.width * 0.5; var y = point.y - _this.height * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(point._weak) { point.put(); } } ,tweenCameraToPosition: function(x,y,duration,ease) { this.cameraFollowPoint.setPosition(x,y); this.tweenCameraToFollowPoint(duration,ease); } ,tweenCameraToFollowPoint: function(duration,ease) { var _gthis = this; this.cancelCameraFollowTween(); if(duration == 0) { this.resetCamera(false,false); } else { flixel_FlxG.camera.target = null; var a = this.cameraFollowPoint.getPosition(); var x = flixel_FlxG.camera.width * 0.5; var y = flixel_FlxG.camera.height * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x = x1; var y = y1; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; var point1 = point; point1._weak = true; var b = point1; var x = a.x - b.x; var y = a.y - b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(a._weak) { a.put(); } if(b._weak) { b.put(); } var followPos = result; this.cameraFollowTween = flixel_tweens_FlxTween.tween(flixel_FlxG.camera.scroll,{ x : followPos.x, y : followPos.y},duration,{ ease : ease, onComplete : function(_) { _gthis.resetCamera(false,false); }}); } } ,cancelCameraFollowTween: function() { if(this.cameraFollowTween != null) { this.cameraFollowTween.cancel(); } } ,tweenCameraZoom: function(zoom,duration,direct,ease) { this.cancelCameraZoomTween(); var targetZoom = zoom * (direct ? flixel_FlxCamera.defaultZoom : this.get_stageZoom()); if(duration == 0) { this.currentCameraZoom = targetZoom; } else { this.cameraZoomTween = flixel_tweens_FlxTween.tween(this,{ currentCameraZoom : targetZoom},duration,{ ease : ease}); } } ,cancelCameraZoomTween: function() { if(this.cameraZoomTween != null) { this.cameraZoomTween.cancel(); } } ,cancelAllCameraTweens: function() { this.cancelCameraFollowTween(); this.cancelCameraZoomTween(); } ,prevScrollTargets: null ,tweenScrollSpeed: function(speed,duration,ease,strumlines) { this.cancelScrollSpeedTweens(); var _g = 0; var _g1 = this.prevScrollTargets; while(_g < _g1.length) { var i = _g1[_g]; ++_g; var value = i[0]; var strum = Reflect.getProperty(this,i[1]); strum.scrollSpeed = value; } this.prevScrollTargets = []; var _g = 0; while(_g < strumlines.length) { var i = strumlines[_g]; ++_g; var value = speed; var strum = Reflect.getProperty(this,i); if(duration == 0) { strum.scrollSpeed = value; } else { this.scrollSpeedTweens.push(flixel_tweens_FlxTween.tween(strum,{ "scrollSpeed" : value},duration,{ ease : ease})); } this.prevScrollTargets.push([value,i]); } } ,cancelScrollSpeedTweens: function() { var _g = 0; var _g1 = this.scrollSpeedTweens; while(_g < _g1.length) { var tween = _g1[_g]; ++_g; if(tween != null) { tween.cancel(); } } this.scrollSpeedTweens = []; } ,__class__: funkin_play_PlayState ,__properties__: $extend(funkin_ui_MusicBeatSubState.prototype.__properties__,{get_currentSongLengthMs:"get_currentSongLengthMs",get_currentStageId:"get_currentStageId",get_currentChart:"get_currentChart",get_isExitingViaPauseMenu:"get_isExitingViaPauseMenu",get_isGamePaused:"get_isGamePaused",get_isChartingMode:"get_isChartingMode",get_isSubState:"get_isSubState",get_stageZoom:"get_stageZoom"}) }); var funkin_play_PlayStatePlaylist = function() { }; $hxClasses["funkin.play.PlayStatePlaylist"] = funkin_play_PlayStatePlaylist; funkin_play_PlayStatePlaylist.__name__ = "funkin.play.PlayStatePlaylist"; funkin_play_PlayStatePlaylist.reset = function() { funkin_play_PlayStatePlaylist.isStoryMode = false; funkin_play_PlayStatePlaylist.playlistSongIds = []; funkin_play_PlayStatePlaylist.campaignScore = 0; funkin_play_PlayStatePlaylist.campaignTitle = "UNKNOWN"; funkin_play_PlayStatePlaylist.campaignId = null; funkin_play_PlayStatePlaylist.campaignDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; }; var funkin_ui_story_StoryMenuState = function(stickers) { this.FADE_OUT_TIME = 1.5; this.levelList = []; this.selectedLevel = false; this.exitingMenu = false; this.highScoreLerp = 12345678; this.highScore = 42069420; this.currentLevelId = "tutorial"; this.currentDifficultyId = "normal"; funkin_ui_MusicBeatState.call(this); if(stickers != null) { this.stickerSubState = stickers; } }; $hxClasses["funkin.ui.story.StoryMenuState"] = funkin_ui_story_StoryMenuState; funkin_ui_story_StoryMenuState.__name__ = "funkin.ui.story.StoryMenuState"; funkin_ui_story_StoryMenuState.__super__ = funkin_ui_MusicBeatState; funkin_ui_story_StoryMenuState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ currentDifficultyId: null ,currentLevelId: null ,currentLevel: null ,isLevelUnlocked: null ,currentLevelTitle: null ,highScore: null ,highScoreLerp: null ,exitingMenu: null ,selectedLevel: null ,levelTitleText: null ,scoreText: null ,modeText: null ,tracklistText: null ,levelTitles: null ,levelProps: null ,levelBackground: null ,leftDifficultyArrow: null ,rightDifficultyArrow: null ,difficultySprite: null ,levelList: null ,difficultySprites: null ,stickerSubState: null ,create: function() { funkin_ui_MusicBeatState.prototype.create.call(this); this.levelList = funkin_data_story_level_LevelRegistry.get_instance().listSortedLevelIds(); var _g = []; var _g1 = 0; var _g2 = this.levelList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; var levelData = funkin_data_story_level_LevelRegistry.get_instance().fetchEntry(v); if(levelData == null ? false : levelData.isVisible()) { _g.push(v); } } this.levelList = _g; if(this.levelList.length == 0) { this.levelList = ["tutorial"]; } this.difficultySprites = new haxe_ds_StringMap(); this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn; this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut; this.playMenuMusic(); if(this.stickerSubState != null) { this.persistentUpdate = true; this.persistentDraw = true; this.openSubState(this.stickerSubState); this.stickerSubState.degenStickers(); } this.persistentUpdate = this.persistentDraw = true; this.rememberSelection(); this.updateData(); this.set_bgColor(-16777216); this.levelTitles = new flixel_group_FlxTypedGroup(); this.levelTitles.zIndex = 15; this.add(this.levelTitles); this.updateBackground(); var black = new funkin_graphics_FunkinSprite(this.levelBackground.x,0).makeSolidColor(flixel_FlxG.width,400 + this.levelBackground.y | 0,-16777216); black.zIndex = this.levelBackground.zIndex - 1; this.add(black); this.levelProps = new flixel_group_FlxTypedGroup(); this.levelProps.zIndex = 1000; this.add(this.levelProps); this.updateProps(); this.tracklistText = new flixel_text_FlxText(flixel_FlxG.width * 0.05,this.levelBackground.x + this.levelBackground.get_height() + 100,0,"Tracks",32); this.tracklistText.setFormat("VCR OSD Mono",32); this.tracklistText.set_alignment("center"); this.tracklistText.set_color(-1747081); this.add(this.tracklistText); this.scoreText = new flixel_text_FlxText(10,10,0,"HIGH SCORE: 42069420"); this.scoreText.setFormat("VCR OSD Mono",32); this.scoreText.zIndex = 1000; this.add(this.scoreText); this.levelTitleText = new flixel_text_FlxText(flixel_FlxG.width * 0.7,10,0,"LEVEL 1"); this.levelTitleText.setFormat("VCR OSD Mono",32,-1,"right"); this.levelTitleText.set_alpha(0.7); this.levelTitleText.zIndex = 1000; this.add(this.levelTitleText); this.buildLevelTitles(); this.leftDifficultyArrow = new flixel_FlxSprite(870,480); this.leftDifficultyArrow.set_frames(funkin_Paths.getSparrowAtlas("storymenu/ui/arrows")); this.leftDifficultyArrow.animation.addByPrefix("idle","leftIdle0"); this.leftDifficultyArrow.animation.addByPrefix("press","leftConfirm0"); this.leftDifficultyArrow.animation.play("idle"); this.add(this.leftDifficultyArrow); this.buildDifficultySprite(funkin_util_Constants.DEFAULT_DIFFICULTY); this.buildDifficultySprite(); this.rightDifficultyArrow = new flixel_FlxSprite(1245,this.leftDifficultyArrow.y); this.rightDifficultyArrow.set_frames(this.leftDifficultyArrow.frames); this.rightDifficultyArrow.animation.addByPrefix("idle","rightIdle0"); this.rightDifficultyArrow.animation.addByPrefix("press","rightConfirm0"); this.rightDifficultyArrow.animation.play("idle"); this.add(this.rightDifficultyArrow); this.add(this.difficultySprite); this.updateText(); this.changeDifficulty(); this.changeLevel(); this.refresh(); } ,rememberSelection: function() { if(funkin_ui_story_StoryMenuState.rememberedLevelId != null) { this.currentLevelId = funkin_ui_story_StoryMenuState.rememberedLevelId; } if(funkin_ui_story_StoryMenuState.rememberedDifficulty != null) { this.currentDifficultyId = funkin_ui_story_StoryMenuState.rememberedDifficulty; } } ,playMenuMusic: function() { funkin_audio_FunkinSound.playMusic("freakyMenu",{ overrideExisting : true, restartTrack : false}); } ,updateData: function() { this.currentLevel = funkin_data_story_level_LevelRegistry.get_instance().fetchEntry(this.currentLevelId); this.isLevelUnlocked = this.currentLevel == null ? false : this.currentLevel.isUnlocked(); } ,buildDifficultySprite: function(diff) { if(diff == null) { diff = this.currentDifficultyId; } this.remove(this.difficultySprite); this.difficultySprite = this.difficultySprites.h[diff]; if(this.difficultySprite == null) { this.difficultySprite = new flixel_FlxSprite(this.leftDifficultyArrow.x + this.leftDifficultyArrow.get_width() + 10,this.leftDifficultyArrow.y); if(openfl_utils_Assets.exists(funkin_Paths.file("images/storymenu/difficulties/" + diff + ".xml"))) { this.difficultySprite.set_frames(funkin_Paths.getSparrowAtlas("storymenu/difficulties/" + diff)); this.difficultySprite.animation.addByPrefix("idle","idle0",24,true); if(funkin_Preferences.get_flashingLights()) { this.difficultySprite.animation.play("idle"); } } else { this.difficultySprite.loadGraphic(funkin_Paths.image("storymenu/difficulties/" + diff)); } this.difficultySprites.h[diff] = this.difficultySprite; var fh = this.difficultySprite; fh.set_x(fh.x + (this.difficultySprites.h[funkin_util_Constants.DEFAULT_DIFFICULTY].get_width() - this.difficultySprite.get_width()) / 2); } this.difficultySprite.set_alpha(0); this.difficultySprite.set_y(this.leftDifficultyArrow.y - 15); var targetY = this.leftDifficultyArrow.y + 10; targetY -= (this.difficultySprite.get_height() - this.difficultySprites.h[funkin_util_Constants.DEFAULT_DIFFICULTY].get_height()) / 2; flixel_tweens_FlxTween.tween(this.difficultySprite,{ y : targetY, alpha : 1},0.07); this.add(this.difficultySprite); } ,buildLevelTitles: function() { this.levelTitles.clear(); var _g = 0; var _g1 = this.levelList.length; while(_g < _g1) { var levelIndex = _g++; var levelId = this.levelList[levelIndex]; var level = funkin_data_story_level_LevelRegistry.get_instance().fetchEntry(levelId); if(level == null || !level.isVisible()) { continue; } var levelTitleItem = new funkin_ui_story_LevelTitle(0,this.levelBackground.y + this.levelBackground.get_height() + 10 | 0,level); levelTitleItem.targetY = (levelTitleItem.get_height() + 20) * levelIndex; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { levelTitleItem.set_x((flixel_FlxG.width - levelTitleItem.get_width()) / 2); } if(axes == 16 || axes == 17) { levelTitleItem.set_y((flixel_FlxG.height - levelTitleItem.get_height()) / 2); } this.levelTitles.add(levelTitleItem); } } ,update: function(elapsed) { funkin_Conductor.get_instance().update(); this.highScoreLerp = funkin_util_MathUtil.smoothLerp(this.highScoreLerp,this.highScore,elapsed,0.25) | 0; this.scoreText.set_text("LEVEL SCORE: " + Math.round(this.highScoreLerp)); this.levelTitleText.set_text(this.currentLevel.getTitle()); this.levelTitleText.set_x(flixel_FlxG.width - (this.levelTitleText.get_width() + 10)); this.handleKeyPresses(); funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); } ,handleKeyPresses: function() { if(!this.exitingMenu) { if(!this.selectedLevel) { if(funkin_PlayerSettings.player1.controls._ui_up.checkJustPressed()) { this.changeLevel(-1); this.changeDifficulty(0); } if(funkin_PlayerSettings.player1.controls._ui_down.checkJustPressed()) { this.changeLevel(1); this.changeDifficulty(0); } if(funkin_PlayerSettings.player1.controls._ui_right.checkJustPressed()) { this.changeDifficulty(1); } if(funkin_PlayerSettings.player1.controls._ui_left.checkJustPressed()) { this.changeDifficulty(-1); } if(funkin_PlayerSettings.player1.controls._ui_right.checkPressed()) { this.rightDifficultyArrow.animation.play("press"); } else { this.rightDifficultyArrow.animation.play("idle"); } if(funkin_PlayerSettings.player1.controls._ui_left.checkPressed()) { this.leftDifficultyArrow.animation.play("press"); } else { this.leftDifficultyArrow.animation.play("idle"); } } if(funkin_PlayerSettings.player1.controls._accept.check()) { this.selectLevel(); } } if(funkin_PlayerSettings.player1.controls._back.check() && !this.exitingMenu && !this.selectedLevel) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); this.exitingMenu = true; var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } ,changeLevel: function(change) { if(change == null) { change = 0; } var currentIndex = this.levelList.indexOf(this.currentLevelId); var prevIndex = currentIndex; currentIndex += change; if(currentIndex < 0) { currentIndex = this.levelList.length - 1; } if(currentIndex >= this.levelList.length) { currentIndex = 0; } var previousLevelId = this.currentLevelId; this.currentLevelId = this.levelList[currentIndex]; funkin_ui_story_StoryMenuState.rememberedLevelId = this.currentLevelId; this.updateData(); var _g = 0; var _g1 = this.levelTitles.members.length; while(_g < _g1) { var index = _g++; var item = this.levelTitles.members[index]; item.targetY = (index - currentIndex) * 125 + 480; if(index == currentIndex) { this.currentLevelTitle = item; item.set_alpha(1.0); } else { item.set_alpha(0.6); } } if(currentIndex != prevIndex) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); } this.updateText(); this.updateBackground(previousLevelId); this.updateProps(); this.refresh(); } ,changeDifficulty: function(change) { if(change == null) { change = 0; } var difficultyList = funkin_util_Constants.DEFAULT_DIFFICULTY_LIST; var currentIndex = difficultyList.indexOf(this.currentDifficultyId); currentIndex += change; if(currentIndex < 0) { currentIndex = difficultyList.length - 1; } if(currentIndex >= difficultyList.length) { currentIndex = 0; } var hasChanged = this.currentDifficultyId != difficultyList[currentIndex]; this.currentDifficultyId = difficultyList[currentIndex]; funkin_ui_story_StoryMenuState.rememberedDifficulty = this.currentDifficultyId; if(difficultyList.length <= 1) { this.leftDifficultyArrow.set_visible(false); this.rightDifficultyArrow.set_visible(false); } else { this.leftDifficultyArrow.set_visible(true); this.rightDifficultyArrow.set_visible(true); } if(hasChanged) { this.buildDifficultySprite(); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); } this.updateText(); this.refresh(); } ,FADE_OUT_TIME: null ,funnyMusicThing: function() { if(this.currentDifficultyId == "nightmare") { var _this = flixel_FlxG.sound.music; var Duration = this.FADE_OUT_TIME; var To = 0.0; if(To == null) { To = 0; } if(Duration == null) { Duration = 1; } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(_this._volume,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } else { var _this = flixel_FlxG.sound.music; var Duration = this.FADE_OUT_TIME; var To = 1.0; if(To == null) { To = 0; } if(Duration == null) { Duration = 1; } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(_this._volume,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } } ,dispatchEvent: function(event) { funkin_ui_MusicBeatState.prototype.dispatchEvent.call(this,event); var tmp = this.levelProps; if((tmp != null ? tmp.members : null) != null && this.levelProps.members.length > 0) { var _g = 0; var _g1 = this.levelProps.members; while(_g < _g1.length) { var prop = _g1[_g]; ++_g; funkin_modding_events_ScriptEventDispatcher.callEvent(prop,event); } } } ,selectLevel: function() { if(!this.currentLevel.isUnlocked()) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); return; } if(this.selectedLevel) { return; } this.selectedLevel = true; funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("confirmMenu")); this.currentLevelTitle.isFlashing = true; var _g = 0; var _g1 = this.levelProps.members; while(_g < _g1.length) { var prop = _g1[_g]; ++_g; prop.playConfirm(); } funkin_Paths.setCurrentLevel(this.currentLevel.id); funkin_play_PlayStatePlaylist.playlistSongIds = this.currentLevel.getSongs(); funkin_play_PlayStatePlaylist.isStoryMode = true; funkin_play_PlayStatePlaylist.campaignScore = 0; var targetSongId = funkin_play_PlayStatePlaylist.playlistSongIds.shift(); var targetSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(targetSongId); funkin_play_PlayStatePlaylist.campaignId = this.currentLevel.id; funkin_play_PlayStatePlaylist.campaignTitle = this.currentLevel.getTitle(); funkin_play_PlayStatePlaylist.campaignDifficulty = this.currentDifficultyId; funkin_Highscore.talliesLevel = funkin_Tallies._new(); new flixel_util_FlxTimer().start(1,function(tmr) { flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false; var targetVariation = targetSong.getFirstValidVariation(funkin_play_PlayStatePlaylist.campaignDifficulty); funkin_ui_transition_LoadingState.loadPlayState({ targetSong : targetSong, targetDifficulty : funkin_play_PlayStatePlaylist.campaignDifficulty, targetVariation : targetVariation},true); }); } ,updateBackground: function(previousLevelId) { if(previousLevelId == null) { previousLevelId = ""; } var _gthis = this; if(this.levelBackground == null || previousLevelId == "") { this.levelBackground = this.currentLevel.buildBackground(); this.levelBackground.set_x(0); this.levelBackground.set_y(56); this.levelBackground.zIndex = 100; this.levelBackground.set_alpha(1.0); this.add(this.levelBackground); } else { var previousLevel = funkin_data_story_level_LevelRegistry.get_instance().fetchEntry(previousLevelId); if(this.currentLevel.isBackgroundSimple() && previousLevel.isBackgroundSimple()) { var previousColor = previousLevel.getBackgroundColor(); var currentColor = this.currentLevel.getBackgroundColor(); if(previousColor != currentColor) { flixel_tweens_FlxTween.cancelTweensOf(this.levelBackground); flixel_tweens_FlxTween.color(this.levelBackground,0.9,this.levelBackground.color,currentColor,{ ease : flixel_tweens_FlxEase.quartOut}); } } else { var oldBackground = this.levelBackground; flixel_tweens_FlxTween.tween(oldBackground,{ alpha : 0.0},0.6,{ ease : flixel_tweens_FlxEase.linear, onComplete : function(_) { _gthis.remove(oldBackground); }}); this.levelBackground = this.currentLevel.buildBackground(); this.levelBackground.set_x(0); this.levelBackground.set_y(56); this.levelBackground.set_alpha(0.0); this.levelBackground.zIndex = 100; this.add(this.levelBackground); flixel_tweens_FlxTween.tween(this.levelBackground,{ alpha : 1.0},0.6,{ ease : flixel_tweens_FlxEase.linear}); } } } ,updateProps: function() { var _g_current = 0; var _g_array = this.currentLevel.buildProps(this.levelProps.members); while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = _g_key; var prop = _g_value; prop.zIndex = 1000; if(this.levelProps.members[ind] != prop) { if(this.levelProps.replace(this.levelProps.members[ind],prop) == null) { this.levelProps.add(prop); } } } this.refresh(); } ,updateText: function() { this.tracklistText.set_text("TRACKS\n\n"); var fh = this.tracklistText; fh.set_text(fh.text + this.currentLevel.getSongDisplayNames(this.currentDifficultyId).join("\n")); var _this = this.tracklistText; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } var fh = this.tracklistText; fh.set_x(fh.x - flixel_FlxG.width * 0.35); var levelScore = funkin_save_Save.get_instance().getLevelScore(this.currentLevelId,this.currentDifficultyId); var tmp = levelScore != null ? levelScore.score : null; this.highScore = tmp != null ? tmp : 0; } ,__class__: funkin_ui_story_StoryMenuState }); var funkin_ui_transition_StickerSubState = function(oldStickers,targetState) { this.switchingState = false; this.sounds = []; this.soundSelection = ""; this.soundSelections = []; var _gthis = this; funkin_ui_MusicBeatSubState.call(this); this.targetState = targetState == null ? function(sticker) { return new funkin_ui_mainmenu_MainMenuState(); } : targetState; var assetsInList = openfl_utils_Assets.list(); var soundFilterFunc = function(a) { return StringTools.startsWith(a,"assets/shared/sounds/stickersounds/"); }; var _g = []; var _g1 = 0; var _g2 = assetsInList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(soundFilterFunc(v)) { _g.push(v); } } this.soundSelections = _g; var _this = this.soundSelections; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = StringTools.replace(_this[i],"assets/shared/sounds/stickersounds/","").split("/")[0]; } this.soundSelections = result; var _g = 0; var _g1 = this.soundSelections; while(_g < _g1.length) { var i = _g1[_g]; ++_g; while(this.soundSelections.indexOf(i) != -1) HxOverrides.remove(this.soundSelections,i); this.soundSelections.push(i); } haxe_Log.trace(this.soundSelections,{ fileName : "source/funkin/ui/transition/StickerSubState.hx", lineNumber : 80, className : "funkin.ui.transition.StickerSubState", methodName : "new"}); this.soundSelection = flixel_FlxG.random.getObject_String(this.soundSelections); var filterFunc = function(a) { return StringTools.startsWith(a,"assets/shared/sounds/stickersounds/" + _gthis.soundSelection + "/"); }; var assetsInList3 = openfl_utils_Assets.list(); var _g = []; var _g1 = 0; var _g2 = assetsInList3; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(filterFunc(v)) { _g.push(v); } } this.sounds = _g; var _g = 0; var _g1 = this.sounds.length; while(_g < _g1) { var i = _g++; this.sounds[i] = StringTools.replace(this.sounds[i],"assets/shared/sounds/",""); this.sounds[i] = this.sounds[i].substring(0,this.sounds[i].lastIndexOf(".")); } haxe_Log.trace(this.sounds,{ fileName : "source/funkin/ui/transition/StickerSubState.hx", lineNumber : 95, className : "funkin.ui.transition.StickerSubState", methodName : "new"}); this.grpStickers = new flixel_group_FlxTypedGroup(); this.add(this.grpStickers); this.grpStickers.set_cameras(flixel_FlxG.cameras.list); if(oldStickers != null) { var _g = 0; while(_g < oldStickers.length) { var sticker = oldStickers[_g]; ++_g; this.grpStickers.add(sticker); } this.degenStickers(); } else { this.regenStickers(); } }; $hxClasses["funkin.ui.transition.StickerSubState"] = funkin_ui_transition_StickerSubState; funkin_ui_transition_StickerSubState.__name__ = "funkin.ui.transition.StickerSubState"; funkin_ui_transition_StickerSubState.__super__ = funkin_ui_MusicBeatSubState; funkin_ui_transition_StickerSubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ grpStickers: null ,dipshit: null ,targetState: null ,soundSelections: null ,soundSelection: null ,sounds: null ,degenStickers: function() { var _gthis = this; this.grpStickers.set_cameras(flixel_FlxG.cameras.list); if(this.grpStickers.members == null || this.grpStickers.members.length == 0) { this.switchingState = false; this.close(); return; } var _g_current = 0; var _g_array = this.grpStickers.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = [_g_key]; var sticker = [_g_value]; new flixel_util_FlxTimer().start(sticker[0].timing,(function(sticker,ind) { return function(_) { sticker[0].set_visible(false); var daSound = flixel_FlxG.random.getObject_String(_gthis.sounds); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound(daSound)); if(_gthis.grpStickers == null || ind[0] == _gthis.grpStickers.members.length - 1) { _gthis.switchingState = false; _gthis.close(); } }; })(sticker,ind)); } } ,regenStickers: function() { var _gthis = this; if(this.grpStickers.members.length > 0) { this.grpStickers.clear(); } var stickerInfo = new funkin_ui_transition_StickerInfo("stickers-set-1"); var stickers = new haxe_ds_StringMap(); var _g = 0; var _g1 = stickerInfo.getPack("all"); while(_g < _g1.length) { var stickerSets = _g1[_g]; ++_g; var value = stickerInfo.getStickers(stickerSets); stickers.h[stickerSets] = value; } var xPos = -100; var yPos = -100; while(xPos <= flixel_FlxG.width) { var stickerSet = flixel_FlxG.random.getObject_String(funkin_util_tools_MapTools.keyValues(stickers)); var sticker = flixel_FlxG.random.getObject_String(stickers.h[stickerSet]); var sticky = new funkin_ui_transition_StickerSprite(0,0,stickerInfo.name,sticker); sticky.set_visible(false); sticky.set_x(xPos); sticky.set_y(yPos); xPos += sticky.frameWidth * 0.5; if(xPos >= flixel_FlxG.width) { if(yPos <= flixel_FlxG.height) { xPos = -100; yPos += flixel_FlxG.random.float(70,120); } } sticky.set_angle(flixel_FlxG.random.int(-60,70)); this.grpStickers.add(sticky); } flixel_FlxG.random.shuffle_funkin_ui_transition_StickerSprite(this.grpStickers.members); var _g_current = 0; var _g_array = this.grpStickers.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = [_g_key]; var sticker = [_g_value]; sticker[0].timing = flixel_math_FlxMath.remapToRange(ind[0],0,this.grpStickers.members.length,0,0.9); new flixel_util_FlxTimer().start(sticker[0].timing,(function(sticker,ind) { return function(_) { if(_gthis.grpStickers == null) { return; } sticker[0].set_visible(true); var daSound = flixel_FlxG.random.getObject_String(_gthis.sounds); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound(daSound)); var frameTimer = flixel_FlxG.random.int(0,2); if(ind[0] == _gthis.grpStickers.members.length - 1) { frameTimer = 2; } new flixel_util_FlxTimer().start(0.0416666666666666644 * frameTimer,(function(sticker,ind) { return function(_) { if(sticker[0] == null) { return; } sticker[0].scale.set_x(sticker[0].scale.set_y(flixel_FlxG.random.float(0.97,1.02))); if(ind[0] == _gthis.grpStickers.members.length - 1) { _gthis.switchingState = true; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; var nextState = flixel_util_typeLimit_NextState.fromMaker((function() { return function() { funkin_graphics_FunkinSprite.preparePurgeCache(); funkin_graphics_FunkinSprite.purgeCache(); return _gthis.targetState(_gthis); }; })()); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro((function() { return function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }; })()); } }; })(sticker,ind)); }; })(sticker,ind)); } var _g = function(ord,a,b) { var Value1 = a.timing; var Value2 = b.timing; var result = 0; if(Value1 < Value2) { result = ord; } else if(Value1 > Value2) { result = -ord; } return result; }; var a1 = -1; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.grpStickers.members.sort(tmp); var lastOne = this.grpStickers.members[this.grpStickers.members.length - 1]; lastOne.updateHitbox(); lastOne.set_angle(0); if(17 == 1 || 17 == 17) { lastOne.set_x((flixel_FlxG.width - lastOne.get_width()) / 2); } if(17 == 16 || 17 == 17) { lastOne.set_y((flixel_FlxG.height - lastOne.get_height()) / 2); } } ,update: function(elapsed) { funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); } ,switchingState: null ,close: function() { if(this.switchingState) { return; } funkin_ui_MusicBeatSubState.prototype.close.call(this); } ,destroy: function() { if(this.switchingState) { return; } funkin_ui_MusicBeatSubState.prototype.destroy.call(this); } ,__class__: funkin_ui_transition_StickerSubState }); var funkin_ui_mainmenu_MainMenuState = function(_overrideMusic) { if(_overrideMusic == null) { _overrideMusic = false; } this.overrideMusic = false; funkin_ui_MusicBeatState.call(this); this.overrideMusic = _overrideMusic; }; $hxClasses["funkin.ui.mainmenu.MainMenuState"] = funkin_ui_mainmenu_MainMenuState; funkin_ui_mainmenu_MainMenuState.__name__ = "funkin.ui.mainmenu.MainMenuState"; funkin_ui_mainmenu_MainMenuState.__super__ = funkin_ui_MusicBeatState; funkin_ui_mainmenu_MainMenuState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ menuItems: null ,magenta: null ,camFollow: null ,overrideMusic: null ,create: function() { var _gthis = this; flixel_FlxG.cameras.reset(new funkin_graphics_FunkinCamera("mainMenu")); this.transIn = flixel_addons_transition_FlxTransitionableState.defaultTransIn; this.transOut = flixel_addons_transition_FlxTransitionableState.defaultTransOut; if(this.overrideMusic == false) { this.playMenuMusic(); } this.persistentUpdate = true; this.persistentDraw = true; var bg = new flixel_FlxSprite(null,null,funkin_Paths.image("menuBG")); bg.scrollFactor.set_x(0); bg.scrollFactor.set_y(0.17); bg.setGraphicSize(bg.get_width() * 1.2 | 0); bg.updateHitbox(); if(17 == 1 || 17 == 17) { bg.set_x((flixel_FlxG.width - bg.get_width()) / 2); } if(17 == 16 || 17 == 17) { bg.set_y((flixel_FlxG.height - bg.get_height()) / 2); } this.add(bg); this.camFollow = new flixel_FlxObject(0,0,1,1); this.add(this.camFollow); this.magenta = new flixel_FlxSprite(null,null,funkin_Paths.image("menuBGMagenta")); this.magenta.scrollFactor.set_x(bg.scrollFactor.x); this.magenta.scrollFactor.set_y(bg.scrollFactor.y); this.magenta.setGraphicSize(bg.get_width() | 0); this.magenta.updateHitbox(); this.magenta.set_x(bg.x); this.magenta.set_y(bg.y); this.magenta.set_visible(false); if(funkin_Preferences.get_flashingLights()) { this.add(this.magenta); } this.menuItems = new funkin_ui_MenuTypedList(); this.add(this.menuItems); this.menuItems.onChange.add($bind(this,this.onMenuItemChange)); this.menuItems.onAcceptPress.add(function(_) { if(_.name == "freeplay") { _gthis.magenta.set_visible(true); } else { flixel_effects_FlxFlicker.flicker(_gthis.magenta,1.1,0.15,false,true); } }); this.menuItems.enabled = true; this.createMenuItem("storymode","mainmenu/storymode",function() { _gthis.startExitState(flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_story_StoryMenuState(); })); }); this.createMenuItem("freeplay","mainmenu/freeplay",function() { _gthis.persistentDraw = true; _gthis.persistentUpdate = false; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; _gthis.openSubState(new funkin_ui_freeplay_FreeplayState()); }); var hasPopupBlocker = true; this.createMenuItem("merch","mainmenu/merch",$bind(this,this.selectMerch),hasPopupBlocker); this.createMenuItem("options","mainmenu/options",function() { _gthis.startExitState(flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_options_OptionsState(); })); }); this.createMenuItem("credits","mainmenu/credits",function() { _gthis.startExitState(flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_credits_CreditsState(); })); }); var spacing = 160; var top = (flixel_FlxG.height - spacing * (this.menuItems.length - 1)) / 2; var _g = 0; var _g1 = this.menuItems.length; while(_g < _g1) { var i = _g++; var menuItem = this.menuItems.members[i]; menuItem.set_x(flixel_FlxG.width / 2); menuItem.set_y(top + spacing * i); menuItem.scrollFactor.set_x(0.0); menuItem.scrollFactor.set_y(0.4); } this.menuItems.selectItem(funkin_ui_mainmenu_MainMenuState.rememberedSelectedIndex); this.resetCamStuff(); this.get_subStateOpened().add(function(sub) { if(js_Boot.getClass(sub) == funkin_ui_freeplay_FreeplayState) { new flixel_util_FlxTimer().start(0.5,function(_) { _gthis.magenta.set_visible(false); }); } }); funkin_ui_MusicBeatState.prototype.create.call(this); this.leftWatermarkText.set_text(funkin_util_Constants.get_VERSION()); } ,playMenuMusic: function() { funkin_audio_FunkinSound.playMusic("freakyMenu",{ overrideExisting : true, restartTrack : false}); } ,resetCamStuff: function() { flixel_FlxG.camera.follow(this.camFollow,null,0.06); flixel_FlxG.camera.snapToTarget(); } ,createMenuItem: function(name,atlas,callback,fireInstantly) { if(fireInstantly == null) { fireInstantly = false; } var item = new funkin_ui_AtlasMenuItem(null,null,name,funkin_Paths.getSparrowAtlas(atlas),callback); item.fireInstantly = fireInstantly; item.ID = this.menuItems.length; var this1 = item.scrollFactor; this1.set_x(0); this1.set_y(0); item.centered = true; item.changeAnim("idle"); this.menuItems.addItem(name,item); } ,closeSubState: function() { this.magenta.set_visible(false); funkin_ui_MusicBeatState.prototype.closeSubState.call(this); } ,finishTransIn: function() { funkin_ui_MusicBeatState.prototype.finishTransIn.call(this); } ,onMenuItemChange: function(selected) { this.camFollow.setPosition(selected.getGraphicMidpoint().x,selected.getGraphicMidpoint().y); } ,selectDonate: function() { funkin_util_WindowUtil.openURL(funkin_util_Constants.URL_ITCH); } ,selectMerch: function() { funkin_util_WindowUtil.openURL(funkin_util_Constants.URL_MERCH); } ,openPrompt: function(prompt,onClose) { var _gthis = this; this.menuItems.enabled = false; this.persistentUpdate = false; prompt.closeCallback = function() { _gthis.menuItems.enabled = true; if(onClose != null) { onClose(); } }; this.openSubState(prompt); } ,startExitState: function(state) { var _gthis = this; this.menuItems.enabled = false; funkin_ui_mainmenu_MainMenuState.rememberedSelectedIndex = this.menuItems.selectedIndex; var duration = 0.4; this.menuItems.forEach(function(item) { if(_gthis.menuItems.selectedIndex != item.ID) { flixel_tweens_FlxTween.tween(item,{ alpha : 0},duration,{ ease : flixel_tweens_FlxEase.quadOut}); } else { item.set_visible(false); } }); new flixel_util_FlxTimer().start(duration,function(_) { var nextState = state; var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); }); } ,update: function(elapsed) { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); if(flixel_FlxG.html5.onMobile) { var touch = flixel_FlxG.touches.getFirst(); if(touch != null) { var item = new flixel_group_FlxTypedGroupIterator(this.menuItems.members,null); while(item.hasNext()) { var item1 = item.next(); if(touch.overlaps(item1)) { if(this.menuItems.selectedIndex == item1.ID && touch.input.current == 2) { this.menuItems.accept(); } else { this.menuItems.selectItem(item1.ID); } } } } } if(flixel_FlxG.sound.music != null && flixel_FlxG.sound.music._volume < 0.8) { var fh = flixel_FlxG.sound.music; fh.set_volume(fh._volume + 0.5 * elapsed); } if(this._exiting) { this.menuItems.enabled = false; } if(funkin_PlayerSettings.player1.controls._back.check() && this.menuItems.enabled && !this.menuItems.busy) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_title_TitleState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } ,__class__: funkin_ui_mainmenu_MainMenuState }); var openfl_utils_IAssetCache = function() { }; $hxClasses["openfl.utils.IAssetCache"] = openfl_utils_IAssetCache; openfl_utils_IAssetCache.__name__ = "openfl.utils.IAssetCache"; openfl_utils_IAssetCache.__isInterface__ = true; openfl_utils_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_utils_IAssetCache ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"} }; var openfl_utils_AssetCache = function() { this.__enabled = true; this.bitmapData = new haxe_ds_StringMap(); this.font = new haxe_ds_StringMap(); this.sound = new haxe_ds_StringMap(); }; $hxClasses["openfl.utils.AssetCache"] = openfl_utils_AssetCache; openfl_utils_AssetCache.__name__ = "openfl.utils.AssetCache"; openfl_utils_AssetCache.__interfaces__ = [openfl_utils_IAssetCache]; openfl_utils_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 h = this.bitmapData.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(StringTools.startsWith(key,prefix)) { this.removeBitmapData(key); } } var h = this.font.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(StringTools.startsWith(key,prefix)) { this.removeFont(key); } } var h = this.sound.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(StringTools.startsWith(key,prefix)) { this.removeSound(key); } } } } ,getBitmapData: function(id) { return this.bitmapData.h[id]; } ,getFont: function(id) { return this.font.h[id]; } ,getSound: function(id) { return this.sound.h[id]; } ,hasBitmapData: function(id) { return Object.prototype.hasOwnProperty.call(this.bitmapData.h,id); } ,hasFont: function(id) { return Object.prototype.hasOwnProperty.call(this.font.h,id); } ,hasSound: function(id) { return Object.prototype.hasOwnProperty.call(this.sound.h,id); } ,removeBitmapData: function(id) { var _this = lime_utils_Assets.cache.image; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); } var _this = this.bitmapData; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); return true; } else { return false; } } ,removeFont: function(id) { var _this = lime_utils_Assets.cache.font; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); } var _this = this.font; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); return true; } else { return false; } } ,removeSound: function(id) { var _this = lime_utils_Assets.cache.audio; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); } var _this = this.sound; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); return true; } else { return false; } } ,setBitmapData: function(id,bitmapData) { this.bitmapData.h[id] = bitmapData; } ,setFont: function(id,font) { this.font.h[id] = font; } ,setSound: function(id,sound) { this.sound.h[id] = sound; } ,get_enabled: function() { return this.__enabled; } ,set_enabled: function(value) { return this.__enabled = value; } ,__class__: openfl_utils_AssetCache ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"} }; var openfl_utils_Assets = function() { }; $hxClasses["openfl.utils.Assets"] = openfl_utils_Assets; openfl_utils_Assets.__name__ = "openfl.utils.Assets"; openfl_utils_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_utils_Assets.onChange.has(openfl_utils_Assets.LimeAssets_onChange)) { lime_utils_Assets.onChange.add(openfl_utils_Assets.LimeAssets_onChange); } openfl_utils_Assets.dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference); }; openfl_utils_Assets.dispatchEvent = function(event) { return openfl_utils_Assets.dispatcher.dispatchEvent(event); }; openfl_utils_Assets.exists = function(id,type) { return lime_utils_Assets.exists(id,type); }; openfl_utils_Assets.getBitmapData = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasBitmapData(id)) { var bitmapData = openfl_utils_Assets.cache.getBitmapData(id); if(openfl_utils_Assets.isValidBitmapData(bitmapData)) { return bitmapData; } } var image = lime_utils_Assets.getImage(id,false); if(image != null) { var bitmapData = openfl_display_BitmapData.fromImage(image); if(useCache && openfl_utils_Assets.cache.get_enabled()) { openfl_utils_Assets.cache.setBitmapData(id,bitmapData); } return bitmapData; } return null; }; openfl_utils_Assets.getBytes = function(id) { return openfl_utils_ByteArray.fromLimeBytes(lime_utils_Assets.getBytes(id)); }; openfl_utils_Assets.getFont = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasFont(id)) { return openfl_utils_Assets.cache.getFont(id); } var limeFont = lime_utils_Assets.getFont(id,false); if(limeFont != null) { var font = new openfl_text_Font(); font.__fromLimeFont(limeFont); if(useCache && openfl_utils_Assets.cache.get_enabled()) { openfl_utils_Assets.cache.setFont(id,font); } return font; } return new openfl_text_Font(); }; openfl_utils_Assets.getLibrary = function(name) { return lime_utils_Assets.getLibrary(name); }; openfl_utils_Assets.getMovieClip = function(id) { var libraryName = id.substring(0,id.indexOf(":")); var symbolName = HxOverrides.substr(id,id.indexOf(":") + 1,null); var limeLibrary = openfl_utils_Assets.getLibrary(libraryName); if(limeLibrary != null) { if(((limeLibrary) instanceof openfl_utils_AssetLibrary)) { var library = limeLibrary; if(library.exists(symbolName,"MOVIE_CLIP")) { if(library.isLocal(symbolName,"MOVIE_CLIP")) { return library.getMovieClip(symbolName); } else { lime_utils_Log.error("MovieClip asset \"" + id + "\" exists, but only asynchronously",{ fileName : "openfl/utils/Assets.hx", lineNumber : 215, className : "openfl.utils.Assets", methodName : "getMovieClip"}); return null; } } } lime_utils_Log.error("There is no MovieClip asset with an ID of \"" + id + "\"",{ fileName : "openfl/utils/Assets.hx", lineNumber : 221, className : "openfl.utils.Assets", methodName : "getMovieClip"}); } else { lime_utils_Log.error("There is no asset library named \"" + libraryName + "\"",{ fileName : "openfl/utils/Assets.hx", lineNumber : 225, className : "openfl.utils.Assets", methodName : "getMovieClip"}); } return null; }; openfl_utils_Assets.getMusic = function(id,useCache) { if(useCache == null) { useCache = true; } return openfl_utils_Assets.getSound(id,useCache); }; openfl_utils_Assets.getPath = function(id) { return lime_utils_Assets.getPath(id); }; openfl_utils_Assets.getSound = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasSound(id)) { var sound = openfl_utils_Assets.cache.getSound(id); if(openfl_utils_Assets.isValidSound(sound)) { return sound; } } var buffer = lime_utils_Assets.getAudioBuffer(id,false); if(buffer != null) { var sound = openfl_media_Sound.fromAudioBuffer(buffer); if(useCache && openfl_utils_Assets.cache.get_enabled()) { openfl_utils_Assets.cache.setSound(id,sound); } return sound; } return null; }; openfl_utils_Assets.getText = function(id) { return lime_utils_Assets.getText(id); }; openfl_utils_Assets.hasEventListener = function(type) { return openfl_utils_Assets.dispatcher.hasEventListener(type); }; openfl_utils_Assets.hasLibrary = function(name) { return lime_utils_Assets.hasLibrary(name); }; openfl_utils_Assets.initBinding = function(className,instance) { if(Object.prototype.hasOwnProperty.call(openfl_utils_Assets.libraryBindings.h,className)) { var library = openfl_utils_Assets.libraryBindings.h[className]; if(instance == null) { openfl_display_Sprite.__constructor = function(instance) { instance.__bind(library,className); }; } else { openfl_display_Sprite.__constructor = null; instance.__bind(library,className); } } else { lime_utils_Log.warn("No asset is registered as \"" + className + "\"",{ fileName : "openfl/utils/Assets.hx", lineNumber : 367, className : "openfl.utils.Assets", methodName : "initBinding"}); } }; openfl_utils_Assets.isLocal = function(id,type,useCache) { if(useCache == null) { useCache = true; } if(useCache && openfl_utils_Assets.cache.get_enabled()) { if(type == "IMAGE" || type == null) { if(openfl_utils_Assets.cache.hasBitmapData(id)) { return true; } } if(type == "FONT" || type == null) { if(openfl_utils_Assets.cache.hasFont(id)) { return true; } } if(type == "SOUND" || type == "MUSIC" || type == null) { if(openfl_utils_Assets.cache.hasSound(id)) { return true; } } } var libraryName = id.substring(0,id.indexOf(":")); var symbolName = HxOverrides.substr(id,id.indexOf(":") + 1,null); var library = openfl_utils_Assets.getLibrary(libraryName); if(library != null) { return library.isLocal(symbolName,type); } return false; }; openfl_utils_Assets.isValidBitmapData = function(bitmapData) { return bitmapData != null && bitmapData.image != null; }; openfl_utils_Assets.isValidSound = function(sound) { return true; }; openfl_utils_Assets.list = function(type) { return lime_utils_Assets.list(type); }; openfl_utils_Assets.loadBitmapData = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache == null) { useCache = true; } var promise = new lime_app_Promise(); if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasBitmapData(id)) { var bitmapData = openfl_utils_Assets.cache.getBitmapData(id); if(openfl_utils_Assets.isValidBitmapData(bitmapData)) { promise.complete(bitmapData); return promise.future; } } lime_utils_Assets.loadImage(id,false).onComplete(function(image) { if(image != null) { var bitmapData = openfl_display_BitmapData.fromImage(image); if(useCache && openfl_utils_Assets.cache.get_enabled()) { openfl_utils_Assets.cache.setBitmapData(id,bitmapData); } promise.complete(bitmapData); } else { promise.error("[Assets] Could not load Image \"" + id + "\""); } }).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress)); return promise.future; }; openfl_utils_Assets.loadBytes = function(id) { var promise = new lime_app_Promise(); var future = lime_utils_Assets.loadBytes(id); future.onComplete(function(bytes) { promise.complete(openfl_utils_ByteArray.fromLimeBytes(bytes)); }); future.onProgress(function(progress,total) { promise.progress(progress,total); }); future.onError(function(msg) { promise.error(msg); }); return promise.future; }; openfl_utils_Assets.loadFont = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache == null) { useCache = true; } var promise = new lime_app_Promise(); if(useCache && openfl_utils_Assets.cache.get_enabled() && openfl_utils_Assets.cache.hasFont(id)) { promise.complete(openfl_utils_Assets.cache.getFont(id)); return promise.future; } lime_utils_Assets.loadFont(id).onComplete(function(limeFont) { var font = new openfl_text_Font(); font.__fromLimeFont(limeFont); if(useCache && openfl_utils_Assets.cache.get_enabled()) { openfl_utils_Assets.cache.setFont(id,font); } promise.complete(font); }).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress)); return promise.future; }; openfl_utils_Assets.loadLibrary = function(name) { return lime_utils_Assets.loadLibrary(name).then(function(library) { var _library = null; if(library != null) { if(((library) instanceof openfl_utils_AssetLibrary)) { _library = library; } else { _library = new openfl_utils_AssetLibrary(); _library.__proxy = library; var unload = lime_utils_Assets.getLibrary(name) != _library.__proxy; lime_utils_Assets.registerLibrary(name,_library,unload); } } return lime_app_Future.withValue(_library); }); }; openfl_utils_Assets.loadMusic = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache == null) { useCache = true; } var future = new lime_app_Future(function() { return openfl_utils_Assets.getMusic(id,useCache); }); return future; }; openfl_utils_Assets.loadMovieClip = function(id) { var promise = new lime_app_Promise(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName = HxOverrides.substr(id,id.indexOf(":") + 1,null); var limeLibrary = openfl_utils_Assets.getLibrary(libraryName); if(limeLibrary != null) { if(((limeLibrary) instanceof openfl_utils_AssetLibrary)) { var library = limeLibrary; if(library.exists(symbolName,"MOVIE_CLIP")) { promise.completeWith(library.loadMovieClip(symbolName)); return promise.future; } } 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_utils_Assets.loadSound = function(id,useCache) { if(useCache == null) { useCache = true; } if(useCache == null) { useCache = true; } var promise = new lime_app_Promise(); lime_utils_Assets.loadAudioBuffer(id,useCache).onComplete(function(buffer) { if(buffer != null) { var sound = openfl_media_Sound.fromAudioBuffer(buffer); if(useCache && openfl_utils_Assets.cache.get_enabled()) { openfl_utils_Assets.cache.setSound(id,sound); } promise.complete(sound); } else { promise.error("[Assets] Could not load Sound \"" + id + "\""); } }).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress)); return promise.future; }; openfl_utils_Assets.loadText = function(id) { var future = lime_utils_Assets.loadText(id); return future; }; openfl_utils_Assets.registerBinding = function(className,library) { openfl_utils_Assets.libraryBindings.h[className] = library; }; openfl_utils_Assets.registerLibrary = function(name,library) { lime_utils_Assets.registerLibrary(name,library); }; openfl_utils_Assets.removeEventListener = function(type,listener,capture) { if(capture == null) { capture = false; } openfl_utils_Assets.dispatcher.removeEventListener(type,listener,capture); }; openfl_utils_Assets.resolveClass = function(name) { return $hxClasses[name]; }; openfl_utils_Assets.resolveEnum = function(name) { var value = $hxEnums[name]; return value; }; openfl_utils_Assets.unloadLibrary = function(name) { lime_utils_Assets.unloadLibrary(name); }; openfl_utils_Assets.unregisterBinding = function(className,library) { if(Object.prototype.hasOwnProperty.call(openfl_utils_Assets.libraryBindings.h,className) && openfl_utils_Assets.libraryBindings.h[className] == library) { var _this = openfl_utils_Assets.libraryBindings; if(Object.prototype.hasOwnProperty.call(_this.h,className)) { delete(_this.h[className]); } } }; openfl_utils_Assets.LimeAssets_onChange = function() { openfl_utils_Assets.dispatchEvent(new openfl_events_Event("change")); }; var lime_utils_AssetCache = function() { this.enabled = true; this.audio = new haxe_ds_StringMap(); this.font = new haxe_ds_StringMap(); this.image = new haxe_ds_StringMap(); this.version = 494747; }; $hxClasses["lime.utils.AssetCache"] = lime_utils_AssetCache; lime_utils_AssetCache.__name__ = "lime.utils.AssetCache"; lime_utils_AssetCache.prototype = { audio: null ,enabled: null ,image: null ,font: null ,version: null ,exists: function(id,type) { if(type == "IMAGE" || type == null) { if(Object.prototype.hasOwnProperty.call(this.image.h,id)) { return true; } } if(type == "FONT" || type == null) { if(Object.prototype.hasOwnProperty.call(this.font.h,id)) { return true; } } if(type == "SOUND" || type == "MUSIC" || type == null) { if(Object.prototype.hasOwnProperty.call(this.audio.h,id)) { return true; } } return false; } ,set: function(id,type,asset) { switch(type) { case "FONT": this.font.h[id] = asset; break; case "IMAGE": if(!((asset) instanceof lime_graphics_Image)) { throw haxe_Exception.thrown("Cannot cache non-Image asset: " + Std.string(asset) + " as Image"); } this.image.h[id] = asset; break; case "MUSIC":case "SOUND": if(!((asset) instanceof lime_media_AudioBuffer)) { throw haxe_Exception.thrown("Cannot cache non-AudioBuffer asset: " + Std.string(asset) + " as AudioBuffer"); } this.audio.h[id] = asset; break; default: throw haxe_Exception.thrown(type + " assets are not cachable"); } } ,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 h = this.audio.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(StringTools.startsWith(key,prefix)) { var _this = this.audio; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } var h = this.font.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(StringTools.startsWith(key,prefix)) { var _this = this.font; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } var h = this.image.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(StringTools.startsWith(key,prefix)) { var _this = this.image; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } } } ,__class__: lime_utils_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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_utils_Assets = function() { }; $hxClasses["lime.utils.Assets"] = lime_utils_Assets; lime_utils_Assets.__name__ = "lime.utils.Assets"; lime_utils_Assets.exists = function(id,type) { if(type == null) { type = "BINARY"; } var id1 = id; var colonIndex = id1.indexOf(":"); var symbol_libraryName = id1.substring(0,colonIndex); var symbol_symbolName = id1.substring(colonIndex + 1); var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName); if(symbol_library != null) { return symbol_library.exists(symbol_symbolName,type); } return false; }; lime_utils_Assets.getAsset = function(id,type,useCache) { if(useCache && lime_utils_Assets.cache.enabled) { switch(type) { case "FONT": var font = lime_utils_Assets.cache.font.h[id]; if(font != null) { return font; } break; case "IMAGE": var image = lime_utils_Assets.cache.image.h[id]; if(lime_utils_Assets.isValidImage(image)) { return image; } break; case "MUSIC":case "SOUND": var audio = lime_utils_Assets.cache.audio.h[id]; if(lime_utils_Assets.isValidAudio(audio)) { return audio; } break; case "TEMPLATE": throw haxe_Exception.thrown("Not sure how to get template: " + id); case "BINARY":case "TEXT": useCache = false; break; default: return null; } } var id1 = id; var colonIndex = id1.indexOf(":"); var symbol_libraryName = id1.substring(0,colonIndex); var symbol_symbolName = id1.substring(colonIndex + 1); var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName); if(symbol_library != null) { if(symbol_library.exists(symbol_symbolName,type)) { if(symbol_library.isLocal(symbol_symbolName,type)) { var asset = symbol_library.getAsset(symbol_symbolName,type); if(useCache && lime_utils_Assets.cache.enabled) { lime_utils_Assets.cache.set(id,type,asset); } return asset; } else { lime_utils_Log.error(type + " asset \"" + id + "\" exists, but only asynchronously",{ fileName : "lime/utils/Assets.hx", lineNumber : 133, className : "lime.utils.Assets", methodName : "getAsset"}); } } else { lime_utils_Log.error("There is no " + type + " asset with an ID of \"" + id + "\"",{ fileName : "lime/utils/Assets.hx", lineNumber : 138, className : "lime.utils.Assets", methodName : "getAsset"}); } } else { lime_utils_Log.error(lime_utils_Assets.__libraryNotFound(symbol_libraryName),{ fileName : "lime/utils/Assets.hx", lineNumber : 143, className : "lime.utils.Assets", methodName : "getAsset"}); } return null; }; lime_utils_Assets.getAudioBuffer = function(id,useCache) { if(useCache == null) { useCache = true; } return lime_utils_Assets.getAsset(id,"SOUND",useCache); }; lime_utils_Assets.getBytes = function(id) { return lime_utils_Assets.getAsset(id,"BINARY",false); }; lime_utils_Assets.getFont = function(id,useCache) { if(useCache == null) { useCache = true; } return lime_utils_Assets.getAsset(id,"FONT",useCache); }; lime_utils_Assets.getImage = function(id,useCache) { if(useCache == null) { useCache = true; } return lime_utils_Assets.getAsset(id,"IMAGE",useCache); }; lime_utils_Assets.getLibrary = function(name) { if(name == null || name == "") { name = "default"; } return lime_utils_Assets.libraries.h[name]; }; lime_utils_Assets.getPath = function(id) { var id1 = id; var colonIndex = id1.indexOf(":"); var symbol_libraryName = id1.substring(0,colonIndex); var symbol_symbolName = id1.substring(colonIndex + 1); var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName); if(symbol_library != null) { if(symbol_library.exists(symbol_symbolName,null)) { return symbol_library.getPath(symbol_symbolName); } else { lime_utils_Log.error("There is no asset with an ID of \"" + id + "\"",{ fileName : "lime/utils/Assets.hx", lineNumber : 224, className : "lime.utils.Assets", methodName : "getPath"}); } } else { lime_utils_Log.error(lime_utils_Assets.__libraryNotFound(symbol_libraryName),{ fileName : "lime/utils/Assets.hx", lineNumber : 229, className : "lime.utils.Assets", methodName : "getPath"}); } return null; }; lime_utils_Assets.getText = function(id) { return lime_utils_Assets.getAsset(id,"TEXT",false); }; lime_utils_Assets.hasLibrary = function(name) { if(name == null || name == "") { name = "default"; } return Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraries.h,name); }; lime_utils_Assets.isLocal = function(id,type,useCache) { if(useCache == null) { useCache = true; } if(useCache && lime_utils_Assets.cache.enabled) { if(lime_utils_Assets.cache.exists(id,type)) { return true; } } var id1 = id; var colonIndex = id1.indexOf(":"); var symbol_libraryName = id1.substring(0,colonIndex); var symbol_symbolName = id1.substring(colonIndex + 1); var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName); if(symbol_library != null) { return symbol_library.isLocal(symbol_symbolName,type); } else { return false; } }; lime_utils_Assets.isValidAudio = function(buffer) { return buffer != null; }; lime_utils_Assets.isValidImage = function(image) { if(image != null) { return image.buffer != null; } else { return false; } }; lime_utils_Assets.list = function(type) { var items = []; var h = lime_utils_Assets.libraries.h; var library_h = h; var library_keys = Object.keys(h); var library_length = library_keys.length; var library_current = 0; while(library_current < library_length) { var library = library_h[library_keys[library_current++]]; var libraryItems = library.list(type); if(libraryItems != null) { items = items.concat(libraryItems); } } return items; }; lime_utils_Assets.loadAsset = function(id,type,useCache) { if(useCache && lime_utils_Assets.cache.enabled) { switch(type) { case "FONT": var font = lime_utils_Assets.cache.font.h[id]; if(font != null) { return lime_app_Future.withValue(font); } break; case "IMAGE": var image = lime_utils_Assets.cache.image.h[id]; if(lime_utils_Assets.isValidImage(image)) { return lime_app_Future.withValue(image); } break; case "MUSIC":case "SOUND": var audio = lime_utils_Assets.cache.audio.h[id]; if(lime_utils_Assets.isValidAudio(audio)) { return lime_app_Future.withValue(audio); } break; case "TEMPLATE": throw haxe_Exception.thrown("Not sure how to get template: " + id); case "BINARY":case "TEXT": useCache = false; break; default: return null; } } var id1 = id; var colonIndex = id1.indexOf(":"); var symbol_libraryName = id1.substring(0,colonIndex); var symbol_symbolName = id1.substring(colonIndex + 1); var symbol_library = lime_utils_Assets.getLibrary(symbol_libraryName); if(symbol_library != null) { if(symbol_library.exists(symbol_symbolName,type)) { var future = symbol_library.loadAsset(symbol_symbolName,type); if(useCache && lime_utils_Assets.cache.enabled) { future.onComplete(function(asset) { lime_utils_Assets.cache.set(id,type,asset); }); } return future; } else { return lime_app_Future.withError("There is no " + type + " asset with an ID of \"" + id + "\""); } } else { return lime_app_Future.withError(lime_utils_Assets.__libraryNotFound(symbol_libraryName)); } }; lime_utils_Assets.loadAudioBuffer = function(id,useCache) { if(useCache == null) { useCache = true; } return lime_utils_Assets.loadAsset(id,"SOUND",useCache); }; lime_utils_Assets.loadBytes = function(id) { return lime_utils_Assets.loadAsset(id,"BINARY",false); }; lime_utils_Assets.loadFont = function(id,useCache) { if(useCache == null) { useCache = true; } return lime_utils_Assets.loadAsset(id,"FONT",useCache); }; lime_utils_Assets.loadImage = function(id,useCache) { if(useCache == null) { useCache = true; } return lime_utils_Assets.loadAsset(id,"IMAGE",useCache); }; lime_utils_Assets.loadLibrary = function(id) { var promise = new lime_app_Promise(); var library = lime_utils_Assets.getLibrary(id); if(library != null) { return library.load(); } var path = id; var rootPath = null; if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.bundlePaths.h,id)) { lime_utils_AssetBundle.loadFromFile(lime_utils_Assets.bundlePaths.h[id]).onComplete(function(bundle) { if(bundle == null) { promise.error("Cannot load bundle for library \"" + id + "\""); return; } var library = lime_utils_AssetLibrary.fromBundle(bundle); if(library == null) { promise.error("Cannot open library \"" + id + "\""); } else { lime_utils_Assets.libraries.h[id] = library; library.onChange.add(($_=lime_utils_Assets.onChange,$bind($_,$_.dispatch))); promise.completeWith(library.load()); } }).onError(function(_) { promise.error("There is no asset library with an ID of \"" + id + "\""); }); } else { if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraryPaths.h,id)) { path = lime_utils_Assets.libraryPaths.h[id]; rootPath = haxe_io_Path.directory(path); } else { if(StringTools.endsWith(path,".bundle")) { rootPath = path; path += "/library.json"; } else { rootPath = haxe_io_Path.directory(path); } path = lime_utils_Assets.__cacheBreak(path); } lime_utils_AssetManifest.loadFromFile(path,rootPath).onComplete(function(manifest) { if(manifest == null) { promise.error("Cannot parse asset manifest for library \"" + id + "\""); return; } var library = lime_utils_AssetLibrary.fromManifest(manifest); if(library == null) { promise.error("Cannot open library \"" + id + "\""); } else { lime_utils_Assets.libraries.h[id] = library; library.onChange.add(($_=lime_utils_Assets.onChange,$bind($_,$_.dispatch))); promise.completeWith(library.load()); } }).onError(function(_) { promise.error("There is no asset library with an ID of \"" + id + "\""); }); } return promise.future; }; lime_utils_Assets.loadText = function(id) { return lime_utils_Assets.loadAsset(id,"TEXT",false); }; lime_utils_Assets.registerLibrary = function(name,library,unload) { if(unload == null) { unload = true; } if(name == null || name == "") { name = "default"; } if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraries.h,name)) { if(lime_utils_Assets.libraries.h[name] == library) { return; } else if(unload) { lime_utils_Assets.unloadLibrary(name); } } if(library != null) { library.onChange.add(lime_utils_Assets.library_onChange); } lime_utils_Assets.libraries.h[name] = library; }; lime_utils_Assets.unloadLibrary = function(name) { if(name == null || name == "") { name = "default"; } var library = lime_utils_Assets.libraries.h[name]; if(library != null) { lime_utils_Assets.cache.clear(name + ":"); library.onChange.remove(lime_utils_Assets.library_onChange); library.unload(); } var _this = lime_utils_Assets.libraries; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } }; lime_utils_Assets.__cacheBreak = function(path) { if(lime_utils_Assets.cache.version > 0) { if(path.indexOf("?") > -1) { path += "&" + lime_utils_Assets.cache.version; } else { path += "?" + lime_utils_Assets.cache.version; } } return path; }; lime_utils_Assets.__libraryNotFound = function(name) { if(name == null || name == "") { name = "default"; } if(lime_app_Application.current != null && lime_app_Application.current.__preloader != null && !lime_app_Application.current.__preloader.complete) { return "There is no asset library named \"" + name + "\", or it is not yet preloaded"; } else { return "There is no asset library named \"" + name + "\""; } }; lime_utils_Assets.library_onChange = function() { lime_utils_Assets.cache.clear(); lime_utils_Assets.onChange.dispatch(); }; var funkin_ui_freeplay_FreeplayState = function(params,stickers) { this.originalPos = new flixel_math_FlxBasePoint(0,0); this.busy = false; this.spamming = false; this.spamTimer = 0; this.initTouchPos = new flixel_math_FlxBasePoint(0,0); this.touchTimer = 0; this.veloctiyLoopShit = 0; this.velTouch = 0; this.dyTouch = 0; this.dxTouch = 0; this.touchX = 0; this.touchY = 0; this.currentFilteredSongs = []; this.currentFilter = null; this.prepForNewRank = false; this.fromResultsParams = null; this.exitMovers = new haxe_ds_ObjectMap(); this.curPlaying = false; this.coolColors = [-7179779,-7179779,-14535868,-7072173,-223529,-6237697,-34625,-608764]; this.intendedScore = 0; this.lerpScore = 0; this.intendedCompletion = 0; this.lerpCompletion = 0; this.currentDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; this.curSelected = 0; this.diffIdsTotal = []; this.diffIdsCurrent = []; this.songs = []; var tmp = params != null ? params.character : null; this.currentCharacter = tmp != null ? tmp : funkin_util_Constants.DEFAULT_CHARACTER; this.fromResultsParams = params != null ? params.fromResults : null; var tmp = this.fromResultsParams; if((tmp != null ? tmp.playRankAnim : null) == true) { this.prepForNewRank = true; } if(stickers != null) { this.stickerSubState = stickers; } funkin_ui_MusicBeatSubState.call(this,0); }; $hxClasses["funkin.ui.freeplay.FreeplayState"] = funkin_ui_freeplay_FreeplayState; funkin_ui_freeplay_FreeplayState.__name__ = "funkin.ui.freeplay.FreeplayState"; funkin_ui_freeplay_FreeplayState.build = function(params,stickers) { var result; if(params != null ? params.fromResults.playRankAnim : null) { result = new funkin_ui_mainmenu_MainMenuState(true); } else { result = new funkin_ui_mainmenu_MainMenuState(false); } result.openSubState(new funkin_ui_freeplay_FreeplayState(params,stickers)); result.persistentUpdate = false; result.persistentDraw = true; return result; }; funkin_ui_freeplay_FreeplayState.__super__ = funkin_ui_MusicBeatSubState; funkin_ui_freeplay_FreeplayState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ currentCharacter: null ,songs: null ,diffIdsCurrent: null ,diffIdsTotal: null ,curSelected: null ,currentDifficulty: null ,fp: null ,txtCompletion: null ,lerpCompletion: null ,intendedCompletion: null ,lerpScore: null ,intendedScore: null ,grpDifficulties: null ,coolColors: null ,grpSongs: null ,grpCapsules: null ,curCapsule: null ,curPlaying: null ,dj: null ,ostName: null ,albumRoll: null ,letterSort: null ,exitMovers: null ,stickerSubState: null ,funnyCam: null ,rankCamera: null ,rankBg: null ,rankVignette: null ,backingTextYeah: null ,orangeBackShit: null ,alsoOrangeLOL: null ,pinkBack: null ,confirmGlow: null ,confirmGlow2: null ,confirmTextGlow: null ,moreWays: null ,funnyScroll: null ,txtNuts: null ,funnyScroll2: null ,moreWays2: null ,funnyScroll3: null ,bgDad: null ,cardGlow: null ,fromResultsParams: null ,prepForNewRank: null ,create: function() { var _gthis = this; funkin_ui_MusicBeatSubState.prototype.create.call(this); flixel_FlxG.game._state.persistentUpdate = false; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; this.funnyCam = new funkin_graphics_FunkinCamera("freeplayFunny",0,0,flixel_FlxG.width,flixel_FlxG.height); this.funnyCam.bgColor = 0; flixel_FlxG.cameras.add(this.funnyCam,false); this.set_cameras([this.funnyCam]); if(this.stickerSubState != null) { this.persistentUpdate = true; this.persistentDraw = true; this.openSubState(this.stickerSubState); this.stickerSubState.degenStickers(); } var isDebug = false; if(this.prepForNewRank == false) { funkin_audio_FunkinSound.playMusic("freakyMenu",{ overrideExisting : true, restartTrack : false}); } this.songs.push(null); var _g = 0; var _g1 = funkin_data_story_level_LevelRegistry.get_instance().listSortedLevelIds(); while(_g < _g1.length) { var levelId = _g1[_g]; ++_g; var level = funkin_data_story_level_LevelRegistry.get_instance().fetchEntry(levelId); if(level == null) { haxe_Log.trace("[WARN] Could not find level with id (" + levelId + ")",{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 278, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); continue; } var _g2 = 0; var _g3 = level.getSongs(); while(_g2 < _g3.length) { var songId = _g3[_g2]; ++_g2; var song = funkin_data_song_SongRegistry.get_instance().fetchEntry(songId); if(song == null) { haxe_Log.trace("[WARN] Could not find song with id (" + songId + ")",{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 288, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); continue; } var displayedVariations = song.getVariationsByCharId(this.currentCharacter); haxe_Log.trace(songId,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 294, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); haxe_Log.trace(displayedVariations,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 295, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); var availableDifficultiesForSong = song.listDifficulties(null,displayedVariations,false); haxe_Log.trace(availableDifficultiesForSong,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 297, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); if(availableDifficultiesForSong.length == 0) { continue; } this.songs.push(new funkin_ui_freeplay_FreeplaySongData(levelId,songId,song,displayedVariations)); var _g4 = 0; while(_g4 < availableDifficultiesForSong.length) { var difficulty = availableDifficultiesForSong[_g4]; ++_g4; funkin_util_tools_ArrayTools.pushUnique(this.diffIdsTotal,difficulty); } } } haxe_Log.trace(flixel_FlxG.width,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 312, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); haxe_Log.trace(flixel_FlxG.camera.zoom,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 313, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); haxe_Log.trace(flixel_FlxG.camera.initialZoom,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 314, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); haxe_Log.trace(flixel_FlxCamera.defaultZoom,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 315, className : "funkin.ui.freeplay.FreeplayState", methodName : "create"}); this.pinkBack = funkin_graphics_FunkinSprite.create(null,null,"freeplay/pinkBack"); this.pinkBack.set_color(-11031); var fh = this.pinkBack; fh.set_x(fh.x - this.pinkBack.get_width()); flixel_tweens_FlxTween.tween(this.pinkBack,{ x : 0},0.6,{ ease : flixel_tweens_FlxEase.quartOut}); this.add(this.pinkBack); this.orangeBackShit = new funkin_graphics_FunkinSprite(84,440).makeSolidColor(this.pinkBack.get_width() | 0,75,-75264); this.add(this.orangeBackShit); this.alsoOrangeLOL = new funkin_graphics_FunkinSprite(0,this.orangeBackShit.y).makeSolidColor(100,this.orangeBackShit.get_height() | 0,-11264); this.add(this.alsoOrangeLOL); this.exitMovers.set([this.pinkBack,this.orangeBackShit,this.alsoOrangeLOL],{ x : -this.pinkBack.get_width(), y : this.pinkBack.y, speed : 0.4, wait : 0}); flixel_util_FlxSpriteUtil.alphaMaskFlxSprite(this.orangeBackShit,this.pinkBack,this.orangeBackShit); this.orangeBackShit.set_visible(false); this.alsoOrangeLOL.set_visible(false); this.confirmTextGlow = new flixel_FlxSprite(-8,115).loadGraphic(funkin_Paths.image("freeplay/glowingText")); this.confirmTextGlow.set_blend(0); this.confirmTextGlow.set_visible(false); this.confirmGlow = new flixel_FlxSprite(-30,240).loadGraphic(funkin_Paths.image("freeplay/confirmGlow")); this.confirmGlow.set_blend(0); this.confirmGlow2 = new flixel_FlxSprite(this.confirmGlow.x,this.confirmGlow.y).loadGraphic(funkin_Paths.image("freeplay/confirmGlow2")); this.confirmGlow.set_visible(false); this.confirmGlow2.set_visible(false); this.add(this.confirmGlow2); this.add(this.confirmGlow); this.add(this.confirmTextGlow); var grpTxtScrolls = new flixel_group_FlxTypedGroup(); this.add(grpTxtScrolls); grpTxtScrolls.set_visible(false); var _this = flixel_FlxG.debugger; var Profile = new flixel_system_debug_watch_TrackerProfile(funkin_ui_freeplay_BGScrollingText,["x","y","speed","size"]); this.moreWays = new funkin_ui_freeplay_BGScrollingText(0,160,"HOT BLOODED IN MORE WAYS THAN ONE",flixel_FlxG.width,true,43); this.moreWays.set_funnyColor(-3197); this.moreWays.speed = 6.8; grpTxtScrolls.add(this.moreWays); this.exitMovers.set([this.moreWays],{ x : flixel_FlxG.width * 2, speed : 0.4}); this.funnyScroll = new funkin_ui_freeplay_BGScrollingText(0,220,"BOYFRIEND",flixel_FlxG.width / 2,false,60); this.funnyScroll.set_funnyColor(-26269); this.funnyScroll.speed = -3.8; grpTxtScrolls.add(this.funnyScroll); this.exitMovers.set([this.funnyScroll],{ x : -this.funnyScroll.get_width() * 2, y : this.funnyScroll.y, speed : 0.4, wait : 0}); this.txtNuts = new funkin_ui_freeplay_BGScrollingText(0,285,"PROTECT YO NUTS",flixel_FlxG.width / 2,true,43); this.txtNuts.speed = 3.5; grpTxtScrolls.add(this.txtNuts); this.exitMovers.set([this.txtNuts],{ x : flixel_FlxG.width * 2, speed : 0.4}); this.funnyScroll2 = new funkin_ui_freeplay_BGScrollingText(0,335,"BOYFRIEND",flixel_FlxG.width / 2,false,60); this.funnyScroll2.set_funnyColor(-26269); this.funnyScroll2.speed = -3.8; grpTxtScrolls.add(this.funnyScroll2); this.exitMovers.set([this.funnyScroll2],{ x : -this.funnyScroll2.get_width() * 2, speed : 0.5}); this.moreWays2 = new funkin_ui_freeplay_BGScrollingText(0,397,"HOT BLOODED IN MORE WAYS THAN ONE",flixel_FlxG.width,true,43); this.moreWays2.set_funnyColor(-3197); this.moreWays2.speed = 6.8; grpTxtScrolls.add(this.moreWays2); this.exitMovers.set([this.moreWays2],{ x : flixel_FlxG.width * 2, speed : 0.4}); this.funnyScroll3 = new funkin_ui_freeplay_BGScrollingText(0,this.orangeBackShit.y + 10,"BOYFRIEND",flixel_FlxG.width / 2,null,60); this.funnyScroll3.set_funnyColor(-89088); this.funnyScroll3.speed = -3.8; grpTxtScrolls.add(this.funnyScroll3); this.exitMovers.set([this.funnyScroll3],{ x : -this.funnyScroll3.get_width() * 2, speed : 0.3}); var tmp = funkin_Paths.animateAtlas("freeplay/backing-text-yeah"); var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this.backingTextYeah = new funkin_graphics_adobeanimate_FlxAtlasSprite(640,370,tmp,{ FrameRate : 24.0, Reversed : false, ShowPivot : false, Antialiasing : true, ScrollFactor : new flixel_math_FlxBasePoint(x,y)}); this.add(this.backingTextYeah); this.cardGlow = new flixel_FlxSprite(-30,-30).loadGraphic(funkin_Paths.image("freeplay/cardGlow")); this.cardGlow.set_blend(0); this.cardGlow.set_visible(false); this.add(this.cardGlow); this.dj = new funkin_ui_freeplay_DJBoyfriend(640,366); this.exitMovers.set([this.dj],{ x : -this.dj.get_width() * 1.6, speed : 0.5}); if(this.currentCharacter == "pico") { this.dj.set_visible(false); } this.add(this.dj); this.bgDad = new flixel_FlxSprite(this.pinkBack.get_width() * 0.74,0).loadGraphic(funkin_Paths.image("freeplay/freeplayBGdad")); this.bgDad.shader = new funkin_graphics_shaders_AngleMask(); this.bgDad.set_visible(false); var blackOverlayBullshitLOLXD = new flixel_FlxSprite(flixel_FlxG.width).makeGraphic(this.bgDad.get_width() | 0,this.bgDad.get_height() | 0,-16777216); this.add(blackOverlayBullshitLOLXD); this.bgDad.setGraphicSize(0,flixel_FlxG.height); blackOverlayBullshitLOLXD.setGraphicSize(0,flixel_FlxG.height); this.bgDad.updateHitbox(); blackOverlayBullshitLOLXD.updateHitbox(); this.exitMovers.set([blackOverlayBullshitLOLXD,this.bgDad],{ x : flixel_FlxG.width * 1.5, speed : 0.4, wait : 0}); this.add(this.bgDad); flixel_tweens_FlxTween.tween(blackOverlayBullshitLOLXD,{ x : this.pinkBack.get_width() * 0.74},0.7,{ ease : flixel_tweens_FlxEase.quintOut}); blackOverlayBullshitLOLXD.shader = this.bgDad.shader; this.rankBg = new funkin_graphics_FunkinSprite(0,0); this.rankBg.makeSolidColor(flixel_FlxG.width,flixel_FlxG.height,-754974720); this.add(this.rankBg); this.grpSongs = new flixel_group_FlxTypedGroup(); this.add(this.grpSongs); this.grpCapsules = new flixel_group_FlxTypedGroup(); this.add(this.grpCapsules); this.grpDifficulties = new flixel_group_FlxTypedSpriteGroup(-300,80); this.add(this.grpDifficulties); this.exitMovers.set([this.grpDifficulties],{ x : -300, speed : 0.25, wait : 0}); var _g = 0; var _g1 = this.diffIdsTotal; while(_g < _g1.length) { var diffId = _g1[_g]; ++_g; var diffSprite = new funkin_ui_freeplay_DifficultySprite(diffId); diffSprite.difficultyId = diffId; this.grpDifficulties.add(diffSprite); } this.grpDifficulties.group.forEach(function(spr) { spr.set_visible(false); }); var _g = 0; var _g1 = this.grpDifficulties.group.members; while(_g < _g1.length) { var diffSprite = _g1[_g]; ++_g; if(diffSprite == null) { continue; } if(diffSprite.difficultyId == this.currentDifficulty) { diffSprite.set_visible(true); } } this.albumRoll = new funkin_ui_freeplay_AlbumRoll(); this.albumRoll.set_albumId(null); this.add(this.albumRoll); this.albumRoll.applyExitMovers(this.exitMovers); var overhangStuff = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,64,-16777216); overhangStuff.set_y(overhangStuff.y - overhangStuff.get_height()); this.add(overhangStuff); flixel_tweens_FlxTween.tween(overhangStuff,{ y : 0},0.3,{ ease : flixel_tweens_FlxEase.quartOut}); var fnfFreeplay = new flixel_text_FlxText(8,8,0,"FREEPLAY",48); fnfFreeplay.set_font("VCR OSD Mono"); fnfFreeplay.set_visible(false); this.ostName = new flixel_text_FlxText(8,8,flixel_FlxG.width - 8 - 8,"OFFICIAL OST",48); this.ostName.set_font("VCR OSD Mono"); this.ostName.set_alignment("right"); this.ostName.set_visible(false); this.exitMovers.set([overhangStuff,fnfFreeplay,this.ostName],{ y : -overhangStuff.get_height(), x : 0, speed : 0.2, wait : 0}); var sillyStroke = new funkin_graphics_shaders_StrokeShader(-1,2,2); fnfFreeplay.shader = sillyStroke; this.ostName.shader = sillyStroke; this.add(fnfFreeplay); this.add(this.ostName); var fnfHighscoreSpr = new flixel_FlxSprite(860,70); fnfHighscoreSpr.set_frames(funkin_Paths.getSparrowAtlas("freeplay/highscore")); fnfHighscoreSpr.animation.addByPrefix("highscore","highscore small instance 1",24,false); fnfHighscoreSpr.set_visible(false); fnfHighscoreSpr.setGraphicSize(0,fnfHighscoreSpr.get_height() | 0); fnfHighscoreSpr.updateHitbox(); this.add(fnfHighscoreSpr); new flixel_util_FlxTimer().start(flixel_FlxG.random.float(12,50),function(tmr) { fnfHighscoreSpr.animation.play("highscore"); tmr.time = flixel_FlxG.random.float(20,60); },0); this.fp = new funkin_ui_freeplay_FreeplayScore(460,60,7,100); this.fp.set_visible(false); this.add(this.fp); var clearBoxSprite = new flixel_FlxSprite(1165,65).loadGraphic(funkin_Paths.image("freeplay/clearBox")); clearBoxSprite.set_visible(false); this.add(clearBoxSprite); this.txtCompletion = new funkin_ui_AtlasText(1185,87,"69","freeplay-clear"); this.txtCompletion.set_visible(false); this.add(this.txtCompletion); this.letterSort = new funkin_ui_freeplay_LetterSort(400,75); this.add(this.letterSort); this.letterSort.set_visible(false); this.exitMovers.set([this.letterSort],{ y : -100, speed : 0.3}); this.letterSort.changeSelectionCallback = function(str) { switch(str) { case "#": _gthis.generateSongList({ filterType : "REGEXP", filterData : "0-9"},true); break; case "ALL": _gthis.generateSongList(null,true); break; case "fav": _gthis.generateSongList({ filterType : "FAVORITE"},true); break; default: _gthis.generateSongList({ filterType : "REGEXP", filterData : str},true); } if(_gthis.grpCapsules.members.length > 0) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); _gthis.curSelected = 1; _gthis.changeSelection(); } }; this.exitMovers.set([this.fp,this.txtCompletion,fnfHighscoreSpr,this.txtCompletion,clearBoxSprite],{ x : flixel_FlxG.width, speed : 0.3}); var diffSelLeft = new funkin_ui_freeplay_DifficultySelector(20,this.grpDifficulties.y - 10,false,funkin_PlayerSettings.player1.controls); var diffSelRight = new funkin_ui_freeplay_DifficultySelector(325,this.grpDifficulties.y - 10,true,funkin_PlayerSettings.player1.controls); diffSelLeft.set_visible(false); diffSelRight.set_visible(false); this.add(diffSelLeft); this.add(diffSelRight); this.dj.onIntroDone.add(function() { _gthis.albumRoll.playIntro(); flixel_tweens_FlxTween.tween(_gthis.grpDifficulties,{ x : 90},0.6,{ ease : flixel_tweens_FlxEase.quartOut}); diffSelLeft.set_visible(true); diffSelRight.set_visible(true); _gthis.letterSort.set_visible(true); var this1 = _gthis.exitMovers; var value = { x : -diffSelLeft.get_width() * 2, speed : 0.26}; this1.set([diffSelLeft,diffSelRight],value); new flixel_util_FlxTimer().start(0.0416666666666666644,function(handShit) { fnfHighscoreSpr.set_visible(true); fnfFreeplay.set_visible(true); _gthis.ostName.set_visible(true); _gthis.fp.set_visible(true); _gthis.fp.updateScore(0); clearBoxSprite.set_visible(true); _gthis.txtCompletion.set_visible(true); _gthis.intendedCompletion = 0; new flixel_util_FlxTimer().start(0.0625,function(bold) { sillyStroke.set_width(0); sillyStroke.set_height(0); _gthis.changeSelection(); }); }); _gthis.pinkBack.set_color(-10141); _gthis.bgDad.set_visible(true); _gthis.orangeBackShit.set_visible(true); _gthis.alsoOrangeLOL.set_visible(true); grpTxtScrolls.set_visible(true); if(_gthis._parentState != null) { _gthis._parentState.persistentDraw = false; } _gthis.cardGlow.set_visible(true); flixel_tweens_FlxTween.tween(_gthis.cardGlow,{ alpha : 0, "scale.x" : 1.2, "scale.y" : 1.2},0.45,{ ease : flixel_tweens_FlxEase.sineOut}); if(_gthis.prepForNewRank) { _gthis.rankAnimStart(_gthis.fromResultsParams); } }); this.generateSongList(null,false); this.funnyCam = new funkin_graphics_FunkinCamera("freeplayFunny",0,0,flixel_FlxG.width,flixel_FlxG.height); this.funnyCam.bgColor = 0; flixel_FlxG.cameras.add(this.funnyCam,false); this.rankVignette = new flixel_FlxSprite(0,0).loadGraphic(funkin_Paths.image("freeplay/rankVignette")); var this1 = this.rankVignette.scale; var x = 2; var y = 2; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.rankVignette.updateHitbox(); this.rankVignette.set_blend(0); this.add(this.rankVignette); this.rankVignette.set_alpha(0); this.forEach(function(bs) { bs.set_cameras([_gthis.funnyCam]); }); this.rankCamera = new funkin_graphics_FunkinCamera("rankCamera",0,0,flixel_FlxG.width,flixel_FlxG.height); this.rankCamera.bgColor = 0; flixel_FlxG.cameras.add(this.rankCamera,false); this.rankBg.set_cameras([this.rankCamera]); this.rankBg.set_alpha(0); if(this.prepForNewRank) { this.rankCamera.fade(-16777216,0,false,null,true); } } ,currentFilter: null ,currentFilteredSongs: null ,generateSongList: function(filterStuff,force,onlyIfChanged) { if(onlyIfChanged == null) { onlyIfChanged = true; } if(force == null) { force = false; } var _gthis = this; var tempSongs = this.songs; if(funkin_ui_freeplay_FreeplayState.rememberedDifficulty != null) { this.currentDifficulty = funkin_ui_freeplay_FreeplayState.rememberedDifficulty; } if(filterStuff != null) { tempSongs = this.sortSongs(tempSongs,filterStuff); } if(this.currentDifficulty != null) { var _g = []; var _g1 = 0; var _g2 = tempSongs; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v == null ? true : v.songDifficulties.indexOf(_gthis.currentDifficulty) != -1) { _g.push(v); } } tempSongs = _g; } if(onlyIfChanged) { if(funkin_util_tools_ArrayTools.isEqualUnordered(tempSongs,this.currentFilteredSongs)) { return; } } var tmp = this.grpCapsules.members[this.curSelected]; var tmp1 = tmp != null ? tmp.songData : null; var tmp = tmp1 != null ? tmp1.songId : null; funkin_ui_freeplay_FreeplayState.rememberedSongId = tmp != null ? tmp : funkin_ui_freeplay_FreeplayState.rememberedSongId; var _g = 0; var _g1 = this.grpCapsules.members; while(_g < _g1.length) { var cap = _g1[_g]; ++_g; cap.songText.resetText(); cap.kill(); } this.currentFilter = filterStuff; this.currentFilteredSongs = tempSongs; this.curSelected = 0; var hsvShader = new funkin_graphics_shaders_HSVShader(); var randomCapsule = this.grpCapsules.recycle(funkin_ui_freeplay_SongMenuItem); randomCapsule.init(flixel_FlxG.width,0,null); randomCapsule.onConfirm = function() { _gthis.capsuleOnConfirmRandom(randomCapsule); }; randomCapsule.set_y(randomCapsule.intendedY(0) + 10); randomCapsule.targetPos.set_x(randomCapsule.x); randomCapsule.set_alpha(0); randomCapsule.songText.set_visible(false); randomCapsule.favIcon.set_visible(false); randomCapsule.favIconBlurred.set_visible(false); randomCapsule.ranking.set_visible(false); randomCapsule.blurredRanking.set_visible(false); randomCapsule.initJumpIn(0,force); randomCapsule.set_hsvShader(hsvShader); this.grpCapsules.add(randomCapsule); var _g = 0; var _g1 = tempSongs.length; while(_g < _g1) { var i = _g++; if(tempSongs[i] == null) { continue; } var funnyMenu = [this.grpCapsules.recycle(funkin_ui_freeplay_SongMenuItem)]; funnyMenu[0].init(flixel_FlxG.width,0,tempSongs[i]); funnyMenu[0].onConfirm = (function(funnyMenu) { return function() { _gthis.capsuleOnConfirmDefault(funnyMenu[0]); }; })(funnyMenu); funnyMenu[0].set_y(funnyMenu[0].intendedY(i + 1) + 10); funnyMenu[0].targetPos.set_x(funnyMenu[0].x); funnyMenu[0].ID = i; funnyMenu[0].capsule.set_alpha(0.5); funnyMenu[0].songText.set_visible(false); funnyMenu[0].favIcon.set_visible(tempSongs[i].isFav); funnyMenu[0].favIconBlurred.set_visible(tempSongs[i].isFav); funnyMenu[0].set_hsvShader(hsvShader); funnyMenu[0].newText.animation._curAnim.set_curFrame(45 - i * 4 % 45); funnyMenu[0].checkClip(); funnyMenu[0].forcePosition(); this.grpCapsules.add(funnyMenu[0]); } this.rememberSelection(); this.changeSelection(); this.changeDiff(0,true); } ,sortSongs: function(songsToFilter,songFilter) { var filterAlphabetically = function(a,b) { if((a != null ? a.songName.toLowerCase() : null) < (b != null ? b.songName.toLowerCase() : null)) { return -1; } else if((a != null ? a.songName.toLowerCase() : null) > (b != null ? b.songName.toLowerCase() : null)) { return 1; } else { return 0; } }; switch(songFilter.filterType) { case "ALL": break; case "FAVORITE": var _g = []; var _g1 = 0; var _g2 = songsToFilter; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v == null ? true : v.isFav) { _g.push(v); } } songsToFilter = _g; songsToFilter.sort(filterAlphabetically); break; case "REGEXP": var filterRegexp = new EReg("^[" + Std.string(songFilter.filterData) + "].*","i"); var _g = []; var _g1 = 0; var _g2 = songsToFilter; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v == null ? true : filterRegexp.match(v.songName)) { _g.push(v); } } songsToFilter = _g; songsToFilter.sort(filterAlphabetically); break; case "STARTSWITH": var _g = []; var _g1 = 0; var _g2 = songsToFilter; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v == null ? true : StringTools.startsWith(v.songName.toLowerCase(),songFilter.filterData)) { _g.push(v); } } songsToFilter = _g; break; default: } return songsToFilter; } ,sparks: null ,sparksADD: null ,rankAnimStart: function(fromResults) { var _gthis = this; this.busy = true; this.grpCapsules.members[this.curSelected].sparkle.set_alpha(0); if(fromResults != null) { funkin_ui_freeplay_FreeplayState.rememberedSongId = fromResults.songId; funkin_ui_freeplay_FreeplayState.rememberedDifficulty = fromResults.difficultyId; this.changeSelection(); this.changeDiff(); } this.dj.fistPump(); this.rankCamera.fade(-16777216,0.5,true,null,true); if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.set_volume(0); } this.rankBg.set_alpha(1); if((fromResults != null ? fromResults.oldRank : null) != null) { this.grpCapsules.members[this.curSelected].fakeRanking.set_rank(fromResults.oldRank); this.grpCapsules.members[this.curSelected].fakeBlurredRanking.set_rank(fromResults.oldRank); this.sparks = new flixel_FlxSprite(0,0); this.sparks.set_frames(funkin_Paths.getSparrowAtlas("freeplay/sparks")); this.sparks.animation.addByPrefix("sparks","sparks",24,false); this.sparks.set_visible(false); this.sparks.set_blend(0); this.sparks.setPosition(517,134); var this1 = this.sparks.scale; var x = 0.5; var y = 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.sparks); this.sparks.set_cameras([this.rankCamera]); this.sparksADD = new flixel_FlxSprite(0,0); this.sparksADD.set_visible(false); this.sparksADD.set_frames(funkin_Paths.getSparrowAtlas("freeplay/sparksadd")); this.sparksADD.animation.addByPrefix("sparks add","sparks add",24,false); this.sparksADD.setPosition(498,116); this.sparksADD.set_blend(0); var this1 = this.sparksADD.scale; var x = 0.5; var y = 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.sparksADD); this.sparksADD.set_cameras([this.rankCamera]); switch(fromResults.oldRank) { case "EXCELLENT": this.sparksADD.set_color(-144574); break; case "GOOD": this.sparksADD.set_color(-1079452); break; case "GREAT": this.sparksADD.set_color(-1378561); break; case "PERFECT": this.sparksADD.set_color(-42828); break; case "PERFECT_GOLD": this.sparksADD.set_color(-18919); break; case "SHIT": this.sparksADD.set_color(-10468097); break; } } this.grpCapsules.members[this.curSelected].doLerp = false; this.originalPos.set_x(320.488); this.originalPos.set_y(235.6); haxe_Log.trace(this.originalPos,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 949, className : "funkin.ui.freeplay.FreeplayState", methodName : "rankAnimStart"}); this.grpCapsules.members[this.curSelected].ranking.set_visible(false); this.grpCapsules.members[this.curSelected].blurredRanking.set_visible(false); this.rankCamera.set_zoom(1.85); flixel_tweens_FlxTween.tween(this.rankCamera,{ "zoom" : 1.8},0.6,{ ease : flixel_tweens_FlxEase.sineIn}); this.funnyCam.set_zoom(1.15); flixel_tweens_FlxTween.tween(this.funnyCam,{ "zoom" : 1.1},0.6,{ ease : flixel_tweens_FlxEase.sineIn}); this.grpCapsules.members[this.curSelected].set_cameras([this.rankCamera]); this.grpCapsules.members[this.curSelected].setPosition(flixel_FlxG.width / 2 - this.grpCapsules.members[this.curSelected].get_width() / 2,flixel_FlxG.height / 2 - this.grpCapsules.members[this.curSelected].get_height() / 2); new flixel_util_FlxTimer().start(0.5,function(_) { _gthis.rankDisplayNew(fromResults); }); } ,rankDisplayNew: function(fromResults) { var _gthis = this; this.grpCapsules.members[this.curSelected].ranking.set_visible(true); this.grpCapsules.members[this.curSelected].blurredRanking.set_visible(true); var this1 = this.grpCapsules.members[this.curSelected].ranking.scale; var x = 20; var y = 20; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.grpCapsules.members[this.curSelected].blurredRanking.scale; var x = 20; var y = 20; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if((fromResults != null ? fromResults.newRank : null) != null) { this.grpCapsules.members[this.curSelected].ranking.animation.play(funkin_play_scoring_ScoringRank.getFreeplayRankIconAsset(fromResults.newRank),true); } flixel_tweens_FlxTween.tween(this.grpCapsules.members[this.curSelected].ranking,{ "scale.x" : 1, "scale.y" : 1},0.1); if((fromResults != null ? fromResults.newRank : null) != null) { this.grpCapsules.members[this.curSelected].blurredRanking.animation.play(funkin_play_scoring_ScoringRank.getFreeplayRankIconAsset(fromResults.newRank),true); } flixel_tweens_FlxTween.tween(this.grpCapsules.members[this.curSelected].blurredRanking,{ "scale.x" : 1, "scale.y" : 1},0.1); new flixel_util_FlxTimer().start(0.1,function(_) { if((fromResults != null ? fromResults.oldRank : null) != null) { _gthis.grpCapsules.members[_gthis.curSelected].fakeRanking.set_visible(false); _gthis.grpCapsules.members[_gthis.curSelected].fakeBlurredRanking.set_visible(false); _gthis.sparks.set_visible(true); _gthis.sparksADD.set_visible(true); _gthis.sparks.animation.play("sparks",true); _gthis.sparksADD.animation.play("sparks add",true); _gthis.sparks.animation.finishCallback = function(anim) { _gthis.sparks.set_visible(false); _gthis.sparksADD.set_visible(false); }; } var tmp = _gthis.fromResultsParams; var _g = tmp != null ? tmp.newRank : null; if(_g == null) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/rankinnormal")); } else { switch(_g) { case "PERFECT": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/rankinperfect")); break; case "PERFECT_GOLD": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/rankinperfect")); break; case "SHIT": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/rankinbad")); break; default: funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/rankinnormal")); } } _gthis.rankCamera.set_zoom(1.3); flixel_tweens_FlxTween.tween(_gthis.rankCamera,{ "zoom" : 1.5},0.3,{ ease : flixel_tweens_FlxEase.backInOut}); var fh = _gthis.grpCapsules.members[_gthis.curSelected]; fh.set_x(fh.x - 10); var fh = _gthis.grpCapsules.members[_gthis.curSelected]; fh.set_y(fh.y - 20); flixel_tweens_FlxTween.tween(_gthis.funnyCam,{ "zoom" : 1.05},0.3,{ ease : flixel_tweens_FlxEase.elasticOut}); _gthis.grpCapsules.members[_gthis.curSelected].capsule.set_angle(-3); flixel_tweens_FlxTween.tween(_gthis.grpCapsules.members[_gthis.curSelected].capsule,{ angle : 0},0.5,{ ease : flixel_tweens_FlxEase.backOut}); funkin_effects_IntervalShake.shake(_gthis.grpCapsules.members[_gthis.curSelected].capsule,0.3,0.0333333333333333329,0.1,0,flixel_tweens_FlxEase.quadOut); }); new flixel_util_FlxTimer().start(0.4,function(_) { flixel_tweens_FlxTween.tween(_gthis.funnyCam,{ "zoom" : 1},0.8,{ ease : flixel_tweens_FlxEase.sineIn}); flixel_tweens_FlxTween.tween(_gthis.rankCamera,{ "zoom" : 1.2},0.8,{ ease : flixel_tweens_FlxEase.backIn}); flixel_tweens_FlxTween.tween(_gthis.grpCapsules.members[_gthis.curSelected],{ x : _gthis.originalPos.x - 7, y : _gthis.originalPos.y - 80},1.3,{ ease : flixel_tweens_FlxEase.quartIn}); }); new flixel_util_FlxTimer().start(0.6,function(_) { _gthis.rankAnimSlam(fromResults); }); } ,rankAnimSlam: function(fromResultsParams) { var _gthis = this; flixel_tweens_FlxTween.tween(this.rankBg,{ alpha : 0},0.5,{ ease : flixel_tweens_FlxEase.expoIn}); var _g = fromResultsParams != null ? fromResultsParams.newRank : null; if(_g == null) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/loss")); } else { switch(_g) { case "EXCELLENT": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/excellent")); break; case "GOOD": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/good")); break; case "GREAT": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/great")); break; case "PERFECT": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/perfect")); break; case "PERFECT_GOLD": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/perfect")); break; case "SHIT": funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/loss")); break; default: funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("ranks/loss")); } } flixel_tweens_FlxTween.tween(this.grpCapsules.members[this.curSelected],{ "targetPos.x" : this.originalPos.x, "targetPos.y" : this.originalPos.y},0.5,{ ease : flixel_tweens_FlxEase.expoOut}); new flixel_util_FlxTimer().start(0.5,function(_) { _gthis.funnyCam.shake(0.0045,0.35); if((fromResultsParams != null ? fromResultsParams.newRank : null) == "SHIT") { _gthis.dj.pumpFistBad(); } else { _gthis.dj.pumpFist(); } _gthis.rankCamera.set_zoom(0.8); _gthis.funnyCam.set_zoom(0.8); flixel_tweens_FlxTween.tween(_gthis.rankCamera,{ "zoom" : 1},1,{ ease : flixel_tweens_FlxEase.elasticOut}); flixel_tweens_FlxTween.tween(_gthis.funnyCam,{ "zoom" : 1},0.8,{ ease : flixel_tweens_FlxEase.elasticOut}); var _g_current = 0; var _g_array = _gthis.grpCapsules.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var index = _g_key; var capsule = [_g_value]; var distFromSelected = [Math.abs(index - _gthis.curSelected) - 1]; if(distFromSelected[0] < 5) { if(index == _gthis.curSelected) { flixel_tweens_FlxTween.cancelTweensOf(capsule[0]); capsule[0].fadeAnim(); _gthis.rankVignette.set_color(capsule[0].getTrailColor()); _gthis.rankVignette.set_alpha(1); flixel_tweens_FlxTween.tween(_gthis.rankVignette,{ alpha : 0},0.6,{ ease : flixel_tweens_FlxEase.expoOut}); capsule[0].doLerp = false; capsule[0].setPosition(_gthis.originalPos.x,_gthis.originalPos.y); funkin_effects_IntervalShake.shake(capsule[0],0.6,0.0416666666666666644,0.12,0,flixel_tweens_FlxEase.quadOut,(function(capsule) { return function(_) { capsule[0].doLerp = true; capsule[0].set_cameras([_gthis.funnyCam]); _gthis.busy = false; _gthis.grpCapsules.members[_gthis.curSelected].sparkle.set_alpha(0.7); _gthis.playCurSongPreview(capsule[0]); }; })(capsule),null); flixel_tweens_FlxTween.tween(capsule[0],{ angle : 0},0.5,{ ease : flixel_tweens_FlxEase.backOut}); } if(index > _gthis.curSelected) { new flixel_util_FlxTimer().start(distFromSelected[0] / 20,(function(distFromSelected,capsule) { return function(_) { capsule[0].doLerp = false; capsule[0].capsule.set_angle(flixel_FlxG.random.float(-10 + distFromSelected[0] * 2,10 - distFromSelected[0] * 2)); flixel_tweens_FlxTween.tween(capsule[0].capsule,{ angle : 0},0.5,{ ease : flixel_tweens_FlxEase.backOut}); funkin_effects_IntervalShake.shake(capsule[0],0.6,0.0416666666666666644,0.12 / (distFromSelected[0] + 1),0,flixel_tweens_FlxEase.quadOut,(function(capsule) { return function(_) { capsule[0].doLerp = true; }; })(capsule)); }; })(distFromSelected,capsule)); } if(index < _gthis.curSelected) { new flixel_util_FlxTimer().start(distFromSelected[0] / 20,(function(distFromSelected,capsule) { return function(_) { capsule[0].doLerp = false; capsule[0].capsule.set_angle(flixel_FlxG.random.float(-10 + distFromSelected[0] * 2,10 - distFromSelected[0] * 2)); flixel_tweens_FlxTween.tween(capsule[0].capsule,{ angle : 0},0.5,{ ease : flixel_tweens_FlxEase.backOut}); funkin_effects_IntervalShake.shake(capsule[0],0.6,0.0416666666666666644,0.12 / (distFromSelected[0] + 1),0,flixel_tweens_FlxEase.quadOut,(function(capsule) { return function(_) { capsule[0].doLerp = true; }; })(capsule)); }; })(distFromSelected,capsule)); } } ++index; } }); new flixel_util_FlxTimer().start(2,function(_) { _gthis.prepForNewRank = false; }); } ,touchY: null ,touchX: null ,dxTouch: null ,dyTouch: null ,velTouch: null ,veloctiyLoopShit: null ,touchTimer: null ,initTouchPos: null ,spamTimer: null ,spamming: null ,busy: null ,originalPos: null ,update: function(elapsed) { var _gthis = this; funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); if(funkin_PlayerSettings.player1.controls._freeplay_favorite.check() && !this.busy) { var tmp = this.grpCapsules.members[this.curSelected]; var targetSong = tmp != null ? tmp.songData : null; if(targetSong != null) { var realShit = this.curSelected; var isFav = targetSong.toggleFavorite(); if(isFav) { this.grpCapsules.members[realShit].favIcon.set_visible(true); this.grpCapsules.members[realShit].favIconBlurred.set_visible(true); this.grpCapsules.members[realShit].favIcon.animation.play("fav"); this.grpCapsules.members[realShit].favIconBlurred.animation.play("fav"); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("fav"),1); this.grpCapsules.members[realShit].checkClip(); this.grpCapsules.members[realShit].set_selected(this.grpCapsules.members[realShit].selected); this.busy = true; this.grpCapsules.members[realShit].doLerp = false; flixel_tweens_FlxTween.tween(this.grpCapsules.members[realShit],{ y : this.grpCapsules.members[realShit].y - 5},0.1,{ ease : flixel_tweens_FlxEase.expoOut}); flixel_tweens_FlxTween.tween(this.grpCapsules.members[realShit],{ y : this.grpCapsules.members[realShit].y + 5},0.1,{ ease : flixel_tweens_FlxEase.expoIn, startDelay : 0.1, onComplete : function(_) { _gthis.grpCapsules.members[realShit].doLerp = true; _gthis.busy = false; }}); } else { this.grpCapsules.members[realShit].favIcon.animation.play("fav",true,true,9); this.grpCapsules.members[realShit].favIconBlurred.animation.play("fav",true,true,9); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("unfav"),1); new flixel_util_FlxTimer().start(0.2,function(_) { _gthis.grpCapsules.members[realShit].favIcon.set_visible(false); _gthis.grpCapsules.members[realShit].favIconBlurred.set_visible(false); _gthis.grpCapsules.members[realShit].checkClip(); }); this.busy = true; this.grpCapsules.members[realShit].doLerp = false; flixel_tweens_FlxTween.tween(this.grpCapsules.members[realShit],{ y : this.grpCapsules.members[realShit].y + 5},0.1,{ ease : flixel_tweens_FlxEase.expoOut}); flixel_tweens_FlxTween.tween(this.grpCapsules.members[realShit],{ y : this.grpCapsules.members[realShit].y - 5},0.1,{ ease : flixel_tweens_FlxEase.expoIn, startDelay : 0.1, onComplete : function(_) { _gthis.grpCapsules.members[realShit].doLerp = true; _gthis.busy = false; }}); } } } this.lerpScore = funkin_util_MathUtil.smoothLerp(this.lerpScore,this.intendedScore,elapsed,0.5); this.lerpCompletion = funkin_util_MathUtil.smoothLerp(this.lerpCompletion,this.intendedCompletion,elapsed,0.5); var f = this.lerpScore; if(isNaN(f)) { this.lerpScore = this.intendedScore; } var f = this.lerpCompletion; if(isNaN(f)) { this.lerpCompletion = this.intendedCompletion; } this.fp.updateScore(this.lerpScore | 0); this.txtCompletion.set_text("" + Math.floor(this.lerpCompletion * 100)); switch(this.txtCompletion.text.length) { case 1: this.txtCompletion.offset.set_x(-24); break; case 2: this.txtCompletion.offset.set_x(0); break; case 3: this.txtCompletion.offset.set_x(10); break; default: this.txtCompletion.offset.set_x(0); } this.handleInputs(elapsed); } ,handleInputs: function(elapsed) { var _gthis = this; if(this.busy) { return; } var upP; if(funkin_PlayerSettings.player1.controls._ui_up.checkJustPressed()) { var _this = flixel_FlxG.keys.pressed; upP = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { upP = false; } var downP; if(funkin_PlayerSettings.player1.controls._ui_down.checkJustPressed()) { var _this = flixel_FlxG.keys.pressed; downP = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { downP = false; } var accepted; if(funkin_PlayerSettings.player1.controls._accept.check()) { var _this = flixel_FlxG.keys.pressed; accepted = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { accepted = false; } if(flixel_FlxG.html5.onMobile) { var _g = 0; var _g1 = flixel_FlxG.touches.list; while(_g < _g1.length) { var touch = _g1[_g]; ++_g; if(touch.input.current == 2) { var this1 = this.initTouchPos; var x = touch.screenX; var y = touch.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } var _this = touch.input; var tmp = _this.current == 1 || _this.current == 2; } if(flixel_FlxG.touches.getFirst() != null) { if(this.touchTimer >= 1.5) { accepted = true; } this.touchTimer += elapsed; var touch = flixel_FlxG.touches.getFirst(); this.velTouch = Math.abs(touch.screenY - this.dyTouch) / 50; this.dyTouch = touch.screenY - this.touchY; this.dxTouch = touch.screenX - this.touchX; if(touch.input.current == 2) { this.touchY = touch.screenY; this.dyTouch = 0; this.velTouch = 0; this.touchX = touch.screenX; this.dxTouch = 0; } if(Math.abs(this.dxTouch) >= 100) { this.touchX = touch.screenX; if(this.dxTouch != 0) { if(this.dxTouch < 0) { this.changeDiff(1); } else { this.changeDiff(-1); } } } if(Math.abs(this.dyTouch) >= 100) { this.touchY = touch.screenY; if(this.dyTouch != 0) { if(this.dyTouch < 0) { this.changeSelection(1); } else { this.changeSelection(-1); } } } } else { this.touchTimer = 0; } } var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(17,_this.status) && (funkin_PlayerSettings.player1.controls._ui_up.checkPressed() || funkin_PlayerSettings.player1.controls._ui_down.checkPressed())) { if(this.spamming) { if(this.spamTimer >= 0.07) { this.spamTimer = 0; if(funkin_PlayerSettings.player1.controls._ui_up.checkPressed()) { this.changeSelection(-1); } else { this.changeSelection(1); } } } else if(this.spamTimer >= 0.9) { this.spamming = true; } else if(this.spamTimer <= 0) { if(funkin_PlayerSettings.player1.controls._ui_up.checkPressed()) { this.changeSelection(-1); } else { this.changeSelection(1); } } this.spamTimer += elapsed; this.dj.resetAFKTimer(); } else { this.spamming = false; this.spamTimer = 0; } if(flixel_FlxG.mouse.wheel < 0) { this.dj.resetAFKTimer(); this.changeSelection(-Math.round(flixel_FlxG.mouse.wheel / 8)); } else if(flixel_FlxG.mouse.wheel > 0) { this.dj.resetAFKTimer(); this.changeSelection(-Math.round(flixel_FlxG.mouse.wheel / 8)); } var tmp; if(funkin_PlayerSettings.player1.controls._ui_left.checkJustPressed()) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { this.dj.resetAFKTimer(); this.changeDiff(-1); this.generateSongList(this.currentFilter,true); } var tmp; if(funkin_PlayerSettings.player1.controls._ui_right.checkJustPressed()) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { this.dj.resetAFKTimer(); this.changeDiff(1); this.generateSongList(this.currentFilter,true); } if(funkin_PlayerSettings.player1.controls._back.check()) { this.busy = true; flixel_tweens_FlxTween.globalManager.clear(); flixel_util_FlxArrayUtil.clearArray(flixel_util_FlxTimer.globalManager._timers); flixel_util_FlxDestroyUtil.destroyArray(this.dj.onIntroDone.handlers); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); var longestTimer = 0; flixel_tweens_FlxTween.color(this.pinkBack,0.25,-10141,-12075,{ ease : flixel_tweens_FlxEase.quadOut}); this.cardGlow.set_visible(true); this.cardGlow.set_alpha(1); var this1 = this.cardGlow.scale; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); flixel_tweens_FlxTween.tween(this.cardGlow,{ alpha : 0, "scale.x" : 1.2, "scale.y" : 1.2},0.25,{ ease : flixel_tweens_FlxEase.sineOut}); this.orangeBackShit.set_visible(false); this.alsoOrangeLOL.set_visible(false); this.moreWays.set_visible(false); this.funnyScroll.set_visible(false); this.txtNuts.set_visible(false); this.funnyScroll2.set_visible(false); this.moreWays2.set_visible(false); this.funnyScroll3.set_visible(false); var grpSpr = this.exitMovers.keys(); while(grpSpr.hasNext()) { var grpSpr1 = grpSpr.next(); var moveData = this.exitMovers.h[grpSpr1.__id__]; var _g = 0; while(_g < grpSpr1.length) { var spr = grpSpr1[_g]; ++_g; if(spr == null) { continue; } var funnyMoveShit = moveData; if(moveData.x == null) { funnyMoveShit.x = spr.x; } if(moveData.y == null) { funnyMoveShit.y = spr.y; } if(moveData.speed == null) { funnyMoveShit.speed = 0.2; } if(moveData.wait == null) { funnyMoveShit.wait = 0; } flixel_tweens_FlxTween.tween(spr,{ x : funnyMoveShit.x, y : funnyMoveShit.y},funnyMoveShit.speed,{ ease : flixel_tweens_FlxEase.expoIn}); longestTimer = Math.max(longestTimer,funnyMoveShit.speed + funnyMoveShit.wait); } } var _g = 0; var _g1 = this.grpCapsules.members; while(_g < _g1.length) { var caps = _g1[_g]; ++_g; caps.doJumpIn = false; caps.doLerp = false; caps.doJumpOut = true; } if(js_Boot.getClass(this._parentState) == funkin_ui_mainmenu_MainMenuState) { this._parentState.persistentUpdate = false; this._parentState.persistentDraw = true; } new flixel_util_FlxTimer().start(longestTimer,function(_) { flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; if(js_Boot.getClass(_gthis._parentState) == funkin_ui_mainmenu_MainMenuState) { funkin_audio_FunkinSound.playMusic("freakyMenu",{ overrideExisting : true, restartTrack : false}); var _this = flixel_FlxG.sound.music; var Duration = 4.0; var From = 0.0; var To = 1.0; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); _gthis.close(); } else { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } }); } if(accepted) { this.grpCapsules.members[this.curSelected].onConfirm(); } } ,destroy: function() { funkin_ui_MusicBeatSubState.prototype.destroy.call(this); var daSong = this.currentFilteredSongs[this.curSelected]; if(daSong != null) { this.clearDaCache(daSong.songName); } flixel_FlxG.cameras.remove(this.funnyCam); } ,changeDiff: function(change,force) { if(force == null) { force = false; } if(change == null) { change = 0; } this.touchTimer = 0; var currentDifficultyIndex = this.diffIdsCurrent.indexOf(this.currentDifficulty); if(currentDifficultyIndex == -1) { currentDifficultyIndex = this.diffIdsCurrent.indexOf(funkin_util_Constants.DEFAULT_DIFFICULTY); } currentDifficultyIndex += change; if(currentDifficultyIndex < 0) { currentDifficultyIndex = this.diffIdsCurrent.length - 1; } if(currentDifficultyIndex >= this.diffIdsCurrent.length) { currentDifficultyIndex = 0; } this.currentDifficulty = this.diffIdsCurrent[currentDifficultyIndex]; var daSong = this.grpCapsules.members[this.curSelected].songData; if(daSong != null) { var targetSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(this.grpCapsules.members[this.curSelected].songData.songId); if(targetSong == null) { flixel_FlxG.log.advanced("WARN: could not find song with id (" + this.grpCapsules.members[this.curSelected].songData.songId + ")",flixel_system_debug_log_LogStyle.WARNING,true); return; } var targetVariation = targetSong.getFirstValidVariation(this.currentDifficulty); var suffixedDifficulty = targetVariation != funkin_util_Constants.DEFAULT_VARIATION && targetVariation != "erect" ? "" + this.currentDifficulty + "-" + targetVariation : this.currentDifficulty; var songScore = funkin_save_Save.get_instance().getSongScore(this.grpCapsules.members[this.curSelected].songData.songId,suffixedDifficulty); var tmp = songScore != null ? songScore.score : null; this.intendedScore = tmp != null ? tmp : 0; this.intendedCompletion = songScore == null ? 0.0 : (songScore.tallies.sick + songScore.tallies.good) / songScore.tallies.totalNotes; funkin_ui_freeplay_FreeplayState.rememberedDifficulty = this.currentDifficulty; } else { this.intendedScore = 0; this.intendedCompletion = 0.0; } var tmp; if(!(this.intendedCompletion == Infinity || this.intendedCompletion == -Infinity)) { var f = this.intendedCompletion; tmp = isNaN(f); } else { tmp = true; } if(tmp) { this.intendedCompletion = 0; } this.grpDifficulties.group.forEach(function(diffSprite) { diffSprite.set_visible(false); }); var _g = 0; var _g1 = this.grpDifficulties.group.members; while(_g < _g1.length) { var diffSprite = [_g1[_g]]; ++_g; if(diffSprite[0] == null) { continue; } if(diffSprite[0].difficultyId == this.currentDifficulty) { if(change != 0) { diffSprite[0].set_visible(true); diffSprite[0].offset.set_y(diffSprite[0].offset.y + 5); diffSprite[0].set_alpha(0.5); new flixel_util_FlxTimer().start(0.0416666666666666644,(function(diffSprite) { return function(swag) { diffSprite[0].set_alpha(1); diffSprite[0].updateHitbox(); }; })(diffSprite)); } else { diffSprite[0].set_visible(true); } } } if(change != 0 || force) { var _g = 0; var _g1 = this.grpCapsules.members; while(_g < _g1.length) { var songCapsule = _g1[_g]; ++_g; if(songCapsule == null) { continue; } if(songCapsule.songData != null) { songCapsule.songData.set_currentDifficulty(this.currentDifficulty); songCapsule.init(null,null,songCapsule.songData); songCapsule.checkClip(); } else { songCapsule.init(null,null,null); } } } var newAlbumId = daSong != null ? daSong.albumId : null; if(this.albumRoll.albumId != newAlbumId) { this.albumRoll.set_albumId(newAlbumId); this.albumRoll.skipIntro(); } this.albumRoll.setDifficultyStars(daSong != null ? daSong.difficultyRating : null); } ,clearDaCache: function(actualSongTho) { var _g = 0; var _g1 = this.songs; while(_g < _g1.length) { var song = _g1[_g]; ++_g; if(song == null) { continue; } if(song.songName != actualSongTho) { haxe_Log.trace("trying to remove: " + song.songName,{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 1668, className : "funkin.ui.freeplay.FreeplayState", methodName : "clearDaCache"}); } } } ,capsuleOnConfirmRandom: function(randomCapsule) { haxe_Log.trace("RANDOM SELECTED",{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 1676, className : "funkin.ui.freeplay.FreeplayState", methodName : "capsuleOnConfirmRandom"}); this.busy = true; this.letterSort.inputEnabled = false; var _g = []; var _g1 = 0; var _g2 = this.grpCapsules.members; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.alive && v.songData != null) { _g.push(v); } } var availableSongCapsules = _g; var tmp = haxe_Log.trace; var result = new Array(availableSongCapsules.length); var _g = 0; var _g1 = availableSongCapsules.length; while(_g < _g1) { var i = _g++; result[i] = availableSongCapsules[i].songData.songName; } tmp("Available songs: " + Std.string(result),{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 1686, className : "funkin.ui.freeplay.FreeplayState", methodName : "capsuleOnConfirmRandom"}); if(availableSongCapsules.length == 0) { haxe_Log.trace("No songs available!",{ fileName : "source/funkin/ui/freeplay/FreeplayState.hx", lineNumber : 1692, className : "funkin.ui.freeplay.FreeplayState", methodName : "capsuleOnConfirmRandom"}); this.busy = false; this.letterSort.inputEnabled = true; funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); return; } var targetSong = flixel_FlxG.random.getObject_funkin_ui_freeplay_SongMenuItem(availableSongCapsules); this.curSelected = this.grpCapsules.members.indexOf(targetSong); this.changeSelection(0); this.capsuleOnConfirmDefault(targetSong); } ,capsuleOnConfirmDefault: function(cap) { var _gthis = this; this.busy = true; this.letterSort.inputEnabled = false; funkin_play_PlayStatePlaylist.isStoryMode = false; var targetSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(cap.songData.songId); if(targetSong == null) { flixel_FlxG.log.advanced("WARN: could not find song with id (" + cap.songData.songId + ")",flixel_system_debug_log_LogStyle.WARNING,true); return; } var targetDifficultyId = this.currentDifficulty; var targetVariation = targetSong.getFirstValidVariation(targetDifficultyId); funkin_play_PlayStatePlaylist.campaignId = cap.songData.levelId; var targetDifficulty = targetSong.getDifficulty(targetDifficultyId,targetVariation); if(targetDifficulty == null) { flixel_FlxG.log.advanced("WARN: could not find difficulty with id (" + targetDifficultyId + ")",flixel_system_debug_log_LogStyle.WARNING,true); return; } var targetInstId = targetDifficulty.characters.instrumental; funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("confirmMenu")); this.dj.confirm(); this.grpCapsules.members[this.curSelected].forcePosition(); this.grpCapsules.members[this.curSelected].songText.flickerText(); flixel_tweens_FlxTween.color(this.pinkBack,0.33,-12075,-15263695,{ ease : flixel_tweens_FlxEase.quadOut}); this.orangeBackShit.set_visible(false); this.alsoOrangeLOL.set_visible(false); this.confirmGlow.set_visible(true); this.confirmGlow2.set_visible(true); this.backingTextYeah.anim.play("BF back card confirm raw",false,false,0); this.confirmGlow2.set_alpha(0); this.confirmGlow.set_alpha(0); flixel_tweens_FlxTween.tween(this.confirmGlow2,{ alpha : 0.5},0.33,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : function(_) { _gthis.confirmGlow2.set_alpha(0.6); _gthis.confirmGlow.set_alpha(1); _gthis.confirmTextGlow.set_visible(true); _gthis.confirmTextGlow.set_alpha(1); flixel_tweens_FlxTween.tween(_gthis.confirmTextGlow,{ alpha : 0.4},0.5); flixel_tweens_FlxTween.tween(_gthis.confirmGlow,{ alpha : 0},0.5); }}); this.moreWays.set_visible(false); this.funnyScroll.set_visible(false); this.txtNuts.set_visible(false); this.funnyScroll2.set_visible(false); this.moreWays2.set_visible(false); this.funnyScroll3.set_visible(false); new flixel_util_FlxTimer().start(1,function(tmr) { funkin_audio_FunkinSound.emptyPartialQueue(); funkin_Paths.setCurrentLevel(cap.songData.levelId); funkin_ui_transition_LoadingState.loadPlayState({ targetSong : targetSong, targetDifficulty : targetDifficultyId, targetVariation : targetVariation, targetInstrumental : targetInstId, practiceMode : false, minimalMode : false, botPlayMode : false},true); }); } ,rememberSelection: function() { if(funkin_ui_freeplay_FreeplayState.rememberedSongId != null) { this.curSelected = thx_Arrays.findIndex(this.currentFilteredSongs,function(song) { if(song == null) { return false; } return song.songId == funkin_ui_freeplay_FreeplayState.rememberedSongId; }); if(this.curSelected == -1) { this.curSelected = 0; } } if(funkin_ui_freeplay_FreeplayState.rememberedDifficulty != null) { this.currentDifficulty = funkin_ui_freeplay_FreeplayState.rememberedDifficulty; } } ,changeSelection: function(change) { if(change == null) { change = 0; } var prevSelected = this.curSelected; this.curSelected += change; if(!this.prepForNewRank && this.curSelected != prevSelected) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); } if(this.curSelected < 0) { this.curSelected = this.grpCapsules.countLiving() - 1; } if(this.curSelected >= this.grpCapsules.countLiving()) { this.curSelected = 0; } var daSongCapsule = this.grpCapsules.members[this.curSelected]; if(daSongCapsule.songData != null) { var songScore = funkin_save_Save.get_instance().getSongScore(daSongCapsule.songData.songId,this.currentDifficulty); var tmp = songScore != null ? songScore.score : null; this.intendedScore = tmp != null ? tmp : 0; this.intendedCompletion = songScore == null ? 0.0 : (songScore.tallies.sick + songScore.tallies.good) / songScore.tallies.totalNotes; this.diffIdsCurrent = daSongCapsule.songData.songDifficulties; funkin_ui_freeplay_FreeplayState.rememberedSongId = daSongCapsule.songData.songId; this.changeDiff(); } else { this.intendedScore = 0; this.intendedCompletion = 0.0; this.diffIdsCurrent = this.diffIdsTotal; funkin_ui_freeplay_FreeplayState.rememberedSongId = null; funkin_ui_freeplay_FreeplayState.rememberedDifficulty = null; this.albumRoll.set_albumId(null); } var _g_current = 0; var _g_array = this.grpCapsules.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var index = _g_key; var capsule = _g_value; ++index; capsule.set_selected(index == this.curSelected + 1); capsule.targetPos.set_y(capsule.intendedY(index - this.curSelected)); capsule.targetPos.set_x(270 + 60 * Math.sin(index - this.curSelected)); if(index < this.curSelected) { capsule.targetPos.set_y(capsule.targetPos.y - 100); } } if(this.grpCapsules.countLiving() > 0 && !this.prepForNewRank) { this.playCurSongPreview(daSongCapsule); this.grpCapsules.members[this.curSelected].set_selected(true); } } ,playCurSongPreview: function(daSongCapsule) { if(this.curSelected == 0) { funkin_audio_FunkinSound.playMusic("freeplayRandom",{ startingVolume : 0.0, overrideExisting : true, restartTrack : false}); var _this = flixel_FlxG.sound.music; var Duration = 2; var From = 0; var To = 0.8; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } else { var potentiallyErect = this.currentDifficulty == "erect" || this.currentDifficulty == "nightmare" ? "-erect" : ""; funkin_audio_FunkinSound.playMusic(daSongCapsule.songData.songId,{ startingVolume : 0.0, overrideExisting : true, restartTrack : false, pathsFunction : "INST", suffix : potentiallyErect, partialParams : { loadPartial : true, start : 0.05, end : 0.25}, onLoad : function() { var _this = flixel_FlxG.sound.music; var Duration = 2; var From = 0; var To = 0.4; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); }}); } } ,__class__: funkin_ui_freeplay_FreeplayState }); var funkin_play_PauseMode = $hxEnums["funkin.play.PauseMode"] = { __ename__:"funkin.play.PauseMode",__constructs__:null ,Standard: {_hx_name:"Standard",_hx_index:0,__enum__:"funkin.play.PauseMode",toString:$estr} ,Charting: {_hx_name:"Charting",_hx_index:1,__enum__:"funkin.play.PauseMode",toString:$estr} ,Difficulty: {_hx_name:"Difficulty",_hx_index:2,__enum__:"funkin.play.PauseMode",toString:$estr} ,Conversation: {_hx_name:"Conversation",_hx_index:3,__enum__:"funkin.play.PauseMode",toString:$estr} ,Cutscene: {_hx_name:"Cutscene",_hx_index:4,__enum__:"funkin.play.PauseMode",toString:$estr} }; funkin_play_PauseMode.__constructs__ = [funkin_play_PauseMode.Standard,funkin_play_PauseMode.Charting,funkin_play_PauseMode.Difficulty,funkin_play_PauseMode.Conversation,funkin_play_PauseMode.Cutscene]; funkin_play_PauseMode.__empty_constructs__ = [funkin_play_PauseMode.Standard,funkin_play_PauseMode.Charting,funkin_play_PauseMode.Difficulty,funkin_play_PauseMode.Conversation,funkin_play_PauseMode.Cutscene]; var funkin_play_PauseSubState = function(params) { this.charterFadeTween = null; this.currentEntry = 0; this.allowInput = false; funkin_ui_MusicBeatSubState.call(this); var tmp = params != null ? params.mode : null; this.currentMode = tmp != null ? tmp : funkin_play_PauseMode.Standard; }; $hxClasses["funkin.play.PauseSubState"] = funkin_play_PauseSubState; funkin_play_PauseSubState.__name__ = "funkin.play.PauseSubState"; funkin_play_PauseSubState.reset = function() { funkin_play_PauseSubState.musicSuffix = ""; }; funkin_play_PauseSubState.resume = function(state) { funkin_play_cutscene_VideoCutscene.resumeVideo(); state.close(); }; funkin_play_PauseSubState.switchMode = function(state,targetMode) { state.regenerateMenu(targetMode); }; funkin_play_PauseSubState.changeDifficulty = function(state,difficulty) { var tmp = funkin_data_song_SongRegistry.get_instance(); funkin_play_PlayState.instance.currentSong = tmp.fetchEntry(funkin_play_PlayState.instance.currentSong.id.toLowerCase()); funkin_play_PlayStatePlaylist.campaignScore = 0; funkin_play_PlayStatePlaylist.campaignDifficulty = difficulty; funkin_play_PlayState.instance.currentDifficulty = funkin_play_PlayStatePlaylist.campaignDifficulty; funkin_ui_freeplay_FreeplayState.rememberedDifficulty = difficulty; funkin_play_PlayState.instance.needsReset = true; state.close(); }; funkin_play_PauseSubState.restartPlayState = function(state) { funkin_play_PlayState.instance.needsReset = true; state.close(); }; funkin_play_PauseSubState.enablePracticeMode = function(state) { if(funkin_play_PlayState.instance == null) { return; } funkin_play_PlayState.instance.isPracticeMode = true; state.regenerateMenu(); }; funkin_play_PauseSubState.restartVideoCutscene = function(state) { funkin_play_cutscene_VideoCutscene.restartVideo(); state.close(); }; funkin_play_PauseSubState.skipVideoCutscene = function(state) { funkin_play_cutscene_VideoCutscene.finishVideo(); state.close(); }; funkin_play_PauseSubState.restartConversation = function(state) { var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.currentConversation : null) == null) { return; } funkin_play_PlayState.instance.currentConversation.resetConversation(); state.close(); }; funkin_play_PauseSubState.skipConversation = function(state) { var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.currentConversation : null) == null) { return; } funkin_play_PlayState.instance.currentConversation.skipConversation(); state.close(); }; funkin_play_PauseSubState.quitToMenu = function(state) { state.allowInput = false; funkin_play_PlayState.instance.deathCounter = 0; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = true; if(funkin_play_PlayStatePlaylist.isStoryMode) { funkin_play_PlayStatePlaylist.reset(); state.openSubState(new funkin_ui_transition_StickerSubState(null,function(sticker) { return new funkin_ui_story_StoryMenuState(sticker); })); } else { state.openSubState(new funkin_ui_transition_StickerSubState(null,function(sticker) { return funkin_ui_freeplay_FreeplayState.build(null,sticker); })); } }; funkin_play_PauseSubState.quitToChartEditor = function(state) { state.close(); if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.pause(); } funkin_play_PlayState.instance.close(); }; funkin_play_PauseSubState.__super__ = funkin_ui_MusicBeatSubState; funkin_play_PauseSubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ allowInput: null ,currentMenuEntries: null ,currentEntry: null ,currentMode: null ,background: null ,metadata: null ,metadataPractice: null ,metadataDeaths: null ,metadataArtist: null ,menuEntryText: null ,pauseMusic: null ,create: function() { funkin_ui_MusicBeatSubState.prototype.create.call(this); this.startPauseMusic(); this.buildBackground(); this.buildMetadata(); this.regenerateMenu(); this.transitionIn(); this.startCharterTimer(); } ,update: function(elapsed) { funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); this.handleInputs(); } ,destroy: function() { funkin_ui_MusicBeatSubState.prototype.destroy.call(this); this.charterFadeTween.cancel(); this.charterFadeTween = null; var _this = this.pauseMusic; _this.cleanup(_this.autoDestroy,true); } ,startPauseMusic: function() { var pauseMusicPath = funkin_Paths.music("breakfast" + funkin_play_PauseSubState.musicSuffix + "/breakfast" + funkin_play_PauseSubState.musicSuffix); this.pauseMusic = funkin_audio_FunkinSound.load(pauseMusicPath,null,true,true); if(this.pauseMusic == null) { flixel_FlxG.log.advanced("Could not play pause music: " + pauseMusicPath + " does not exist!",flixel_system_debug_log_LogStyle.WARNING,true); } this.pauseMusic.play(false,flixel_FlxG.random.int(0,this.pauseMusic._length / 2 | 0)); var _this = this.pauseMusic; var Duration = funkin_play_PauseSubState.MUSIC_FADE_IN_TIME; var From = 0; var To = funkin_play_PauseSubState.MUSIC_FINAL_VOLUME; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } ,buildBackground: function() { this.background = new funkin_graphics_FunkinSprite(0,0); this.background.makeSolidColor(flixel_FlxG.width,flixel_FlxG.height,-16777216); this.background.set_alpha(0.0); var this1 = this.background.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.background.updateHitbox(); this.add(this.background); } ,buildMetadata: function() { this.metadata = new flixel_group_FlxTypedSpriteGroup(); var this1 = this.metadata.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.metadata); var metadataSong = new flixel_text_FlxText(20,15,flixel_FlxG.width - 40,"Song Name"); metadataSong.setFormat(funkin_Paths.font("vcr.ttf"),32,-1,"right"); var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.get_currentChart() : null) != null) { metadataSong.set_text("" + funkin_play_PlayState.instance.get_currentChart().songName); } var this1 = metadataSong.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.metadata.add(metadataSong); this.metadataArtist = new flixel_text_FlxText(20,metadataSong.y + 32,flixel_FlxG.width - 40,"Artist: " + funkin_util_Constants.DEFAULT_ARTIST); this.metadataArtist.setFormat(funkin_Paths.font("vcr.ttf"),32,-1,"right"); var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.get_currentChart() : null) != null) { this.metadataArtist.set_text("Artist: " + funkin_play_PlayState.instance.get_currentChart().songArtist); } var this1 = this.metadataArtist.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.metadata.add(this.metadataArtist); var metadataDifficulty = new flixel_text_FlxText(20,this.metadataArtist.y + 32,flixel_FlxG.width - 40,"Difficulty: "); metadataDifficulty.setFormat(funkin_Paths.font("vcr.ttf"),32,-1,"right"); var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.currentDifficulty : null) != null) { metadataDifficulty.set_text(metadataDifficulty.text + funkin_util_tools_StringTools.toTitleCase(funkin_play_PlayState.instance.currentDifficulty)); } var this1 = metadataDifficulty.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.metadata.add(metadataDifficulty); var tmp = funkin_play_PlayState.instance; this.metadataDeaths = new flixel_text_FlxText(20,metadataDifficulty.y + 32,flixel_FlxG.width - 40,"" + (tmp != null ? tmp.deathCounter : null) + " Blue Balls"); this.metadataDeaths.setFormat(funkin_Paths.font("vcr.ttf"),32,-1,"right"); var this1 = this.metadataDeaths.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.metadata.add(this.metadataDeaths); this.metadataPractice = new flixel_text_FlxText(20,this.metadataDeaths.y + 32,flixel_FlxG.width - 40,"PRACTICE MODE"); this.metadataPractice.setFormat(funkin_Paths.font("vcr.ttf"),32,-1,"right"); var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.isPracticeMode : null; this.metadataPractice.set_visible(tmp1 != null && tmp1); var this1 = this.metadataPractice.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.metadata.add(this.metadataPractice); this.updateMetadataText(); } ,charterFadeTween: null ,startCharterTimer: function() { var _gthis = this; this.charterFadeTween = flixel_tweens_FlxTween.tween(this.metadataArtist,{ alpha : 0.0},funkin_play_PauseSubState.CHARTER_FADE_DURATION,{ startDelay : funkin_play_PauseSubState.CHARTER_FADE_DELAY, ease : flixel_tweens_FlxEase.quartOut, onComplete : function(_) { var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.get_currentChart() : null) != null) { var _gthis1 = _gthis.metadataArtist; var tmp = funkin_play_PlayState.instance.get_currentChart().charter; _gthis1.set_text("Charter: " + (tmp != null ? tmp : "Unknown")); } else { _gthis.metadataArtist.set_text("Charter: " + funkin_util_Constants.DEFAULT_CHARTER); } flixel_tweens_FlxTween.tween(_gthis.metadataArtist,{ alpha : 1.0},funkin_play_PauseSubState.CHARTER_FADE_DURATION,{ ease : flixel_tweens_FlxEase.quartOut, onComplete : function(_) { _gthis.startArtistTimer(); }}); }}); } ,startArtistTimer: function() { var _gthis = this; this.charterFadeTween = flixel_tweens_FlxTween.tween(this.metadataArtist,{ alpha : 0.0},funkin_play_PauseSubState.CHARTER_FADE_DURATION,{ startDelay : funkin_play_PauseSubState.CHARTER_FADE_DELAY, ease : flixel_tweens_FlxEase.quartOut, onComplete : function(_) { var tmp = funkin_play_PlayState.instance; if((tmp != null ? tmp.get_currentChart() : null) != null) { _gthis.metadataArtist.set_text("Artist: " + funkin_play_PlayState.instance.get_currentChart().songArtist); } else { _gthis.metadataArtist.set_text("Artist: " + funkin_util_Constants.DEFAULT_ARTIST); } flixel_tweens_FlxTween.tween(_gthis.metadataArtist,{ alpha : 1.0},funkin_play_PauseSubState.CHARTER_FADE_DURATION,{ ease : flixel_tweens_FlxEase.quartOut, onComplete : function(_) { _gthis.startCharterTimer(); }}); }}); } ,transitionIn: function() { var _gthis = this; flixel_tweens_FlxTween.tween(this.background,{ alpha : 0.6},0.8,{ ease : flixel_tweens_FlxEase.quartOut}); var delay = 0.1; var _g = 0; var _g1 = this.metadata.group.members; while(_g < _g1.length) { var child = _g1[_g]; ++_g; flixel_tweens_FlxTween.tween(child,{ alpha : 1, y : child.y + 5},1.8,{ ease : flixel_tweens_FlxEase.quartOut, startDelay : delay}); delay += 0.1; } new flixel_util_FlxTimer().start(0.2,function(_) { _gthis.allowInput = true; }); } ,handleInputs: function() { if(!this.allowInput) { return; } if(funkin_PlayerSettings.player1.controls._ui_up.checkJustPressed()) { this.changeSelection(-1); } if(funkin_PlayerSettings.player1.controls._ui_down.checkJustPressed()) { this.changeSelection(1); } if(funkin_PlayerSettings.player1.controls._accept.check()) { this.currentMenuEntries[this.currentEntry].callback(this); } else if(funkin_PlayerSettings.player1.controls._pause.check()) { funkin_play_PauseSubState.resume(this); } } ,changeSelection: function(change) { if(change == null) { change = 0; } var prevEntry = this.currentEntry; this.currentEntry += change; if(this.currentEntry < 0) { this.currentEntry = this.currentMenuEntries.length - 1; } if(this.currentEntry >= this.currentMenuEntries.length) { this.currentEntry = 0; } if(this.currentEntry != prevEntry) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); } var _g = 0; var _g1 = this.currentMenuEntries.length; while(_g < _g1) { var entryIndex = _g++; var isCurrent = entryIndex == this.currentEntry; var entry = this.currentMenuEntries[entryIndex]; var text = entry.sprite; text.set_alpha(isCurrent ? 1.0 : 0.6); var targetX = flixel_math_FlxMath.remapToRange(entryIndex - this.currentEntry,0,1,0,1.3) * 20 + 90; var targetY = flixel_math_FlxMath.remapToRange(entryIndex - this.currentEntry,0,1,0,1.3) * 120 + flixel_FlxG.height * 0.48; flixel_tweens_FlxTween.globalManager.cancelTweensOf(text); flixel_tweens_FlxTween.tween(text,{ x : targetX, y : targetY},0.33,{ ease : flixel_tweens_FlxEase.quartOut}); } } ,regenerateMenu: function(targetMode) { if(targetMode == null) { targetMode = this.currentMode; } var previousMode = this.currentMode; this.currentMode = targetMode; this.resetSelection(); this.chooseMenuEntries(); this.clearAndAddMenuEntries(); this.updateMetadataText(); this.changeSelection(); } ,resetSelection: function() { this.currentEntry = 0; } ,chooseMenuEntries: function() { switch(this.currentMode._hx_index) { case 0: this.currentMenuEntries = funkin_util_tools_ArrayTools.clone(funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_STANDARD); break; case 1: this.currentMenuEntries = funkin_util_tools_ArrayTools.clone(funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_CHARTING); break; case 2: var entries = []; if(funkin_play_PlayState.instance.get_currentChart() != null) { var difficultiesInVariation = funkin_play_PlayState.instance.currentSong.listDifficulties(funkin_play_PlayState.instance.get_currentChart().variation,null,true); haxe_Log.trace("DIFFICULTIES: " + Std.string(difficultiesInVariation),{ fileName : "source/funkin/play/PauseSubState.hx", lineNumber : 528, className : "funkin.play.PauseSubState", methodName : "chooseMenuEntries"}); var _g = 0; while(_g < difficultiesInVariation.length) { var difficulty = [difficultiesInVariation[_g]]; ++_g; entries.push({ text : funkin_util_tools_StringTools.toTitleCase(difficulty[0]), callback : (function(difficulty) { return function(state) { funkin_play_PauseSubState.changeDifficulty(state,difficulty[0]); }; })(difficulty)}); } } this.currentMenuEntries = entries.concat(funkin_util_tools_ArrayTools.clone(funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_DIFFICULTY)); break; case 3: this.currentMenuEntries = funkin_util_tools_ArrayTools.clone(funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_CONVERSATION); break; case 4: this.currentMenuEntries = funkin_util_tools_ArrayTools.clone(funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_VIDEO_CUTSCENE); break; } } ,clearAndAddMenuEntries: function() { if(this.menuEntryText == null) { this.menuEntryText = new flixel_group_FlxTypedSpriteGroup(); var this1 = this.menuEntryText.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.menuEntryText); } this.menuEntryText.group.clear(); var entryIndex = 0; var toRemove = []; var _g = 0; var _g1 = this.currentMenuEntries; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; if(entry == null || entry.filter != null && !entry.filter()) { toRemove.push(entry); } else { var yPos = 70 * entryIndex + 30; var text = new funkin_ui_AtlasText(0,yPos,entry.text,"bold"); var this1 = text.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); text.set_alpha(0); this.menuEntryText.add(text); entry.sprite = text; ++entryIndex; } } var _g = 0; while(_g < toRemove.length) { var entry = toRemove[_g]; ++_g; HxOverrides.remove(this.currentMenuEntries,entry); } } ,updateMetadataText: function() { var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.isPracticeMode : null; this.metadataPractice.set_visible(tmp1 != null && tmp1); switch(this.currentMode._hx_index) { case 1: this.metadataDeaths.set_text("Chart Editor Preview"); break; case 0:case 2: var tmp = funkin_play_PlayState.instance; this.metadataDeaths.set_text("" + (tmp != null ? tmp.deathCounter : null) + " Blue Balls"); break; case 3: this.metadataDeaths.set_text("Dialogue Paused"); break; case 4: this.metadataDeaths.set_text("Video Paused"); break; } } ,__class__: funkin_play_PauseSubState }); var funkin_play_ResultScore = function(x,y,digitCount,scoreShit) { if(scoreShit == null) { scoreShit = 100; } this.scoreStart = 0; this.scoreShit = 0; flixel_group_FlxTypedSpriteGroup.call(this,x,y); var _g = 0; var _g1 = digitCount; while(_g < _g1) { var i = _g++; this.add(new funkin_play_ScoreNum(x + 65 * i,y)); } this.set_scoreShit(scoreShit); }; $hxClasses["funkin.play.ResultScore"] = funkin_play_ResultScore; funkin_play_ResultScore.__name__ = "funkin.play.ResultScore"; funkin_play_ResultScore.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_ResultScore.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ scoreShit: null ,scoreStart: null ,set_scoreShit: function(val) { if(this.group == null || this.group.members == null) { return val; } var loopNum = this.group.members.length - 1; var dumbNumb = Std.parseInt(val == null ? "null" : "" + val); var prevNum; while(dumbNumb > 0) { this.scoreStart += 1; this.group.members[loopNum].set_finalDigit(dumbNumb % 10); dumbNumb = Math.floor(dumbNumb / 10); --loopNum; } while(loopNum > 0) { this.group.members[loopNum].set_digit(10); --loopNum; } return val; } ,animateNumbers: function() { var _gthis = this; var _g = this.group.members.length - this.scoreStart; var _g1 = this.group.members.length; while(_g < _g1) { var i = [_g++]; new flixel_util_FlxTimer().start((i[0] - 1) / 24,(function(i) { return function(_) { _gthis.group.members[i[0]].finalDelay = _gthis.scoreStart - (i[0] - 1); _gthis.group.members[i[0]].playAnim(); _gthis.group.members[i[0]].shuffle(); }; })(i)); } } ,updateScore: function(scoreNew) { this.set_scoreShit(scoreNew); } ,__class__: funkin_play_ResultScore ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_scoreShit:"set_scoreShit"}) }); var funkin_play_ScoreNum = function(x,y) { this.numToString = ["ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","DISABLED"]; this.baseX = 0; this.baseY = 0; this.finalDelay = 0; this.glow = true; this.finalDigit = 10; this.digit = 10; flixel_FlxSprite.call(this,x,y); this.baseY = y; this.baseX = x; this.set_frames(funkin_Paths.getSparrowAtlas("resultScreen/score-digital-numbers")); var stringNum = this.numToString[0]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[1]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[2]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[3]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[4]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[5]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[6]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[7]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[8]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[9]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); this.animation.addByPrefix("DISABLED","DISABLED",24,false); this.animation.addByPrefix("GONE","GONE",24,false); this.set_digit(10); this.animation.play(this.numToString[this.digit],true); this.updateHitbox(); }; $hxClasses["funkin.play.ScoreNum"] = funkin_play_ScoreNum; funkin_play_ScoreNum.__name__ = "funkin.play.ScoreNum"; funkin_play_ScoreNum.__super__ = flixel_FlxSprite; funkin_play_ScoreNum.prototype = $extend(flixel_FlxSprite.prototype,{ digit: null ,finalDigit: null ,glow: null ,set_finalDigit: function(val) { this.animation.play("GONE",true,false,0); return this.finalDigit = val; } ,set_digit: function(val) { if(val >= 0 && this.animation._curAnim != null && this.animation._curAnim.name != this.numToString[val]) { if(this.glow) { this.animation.play(this.numToString[val],true,false,0); this.glow = false; } else { this.animation.play(this.numToString[val],true,false,4); } this.updateHitbox(); switch(val) { case 1: break; case 4: break; case 5: break; case 7: break; case 9: break; default: this.centerOffsets(false); } } return this.digit = val; } ,playAnim: function() { this.animation.play(this.numToString[this.digit],true,false,0); } ,shuffleTimer: null ,finalTween: null ,finalDelay: null ,baseY: null ,baseX: null ,numToString: null ,finishShuffleTween: function() { var _gthis = this; var tweenFunction = function(x) { var digitRounded = Math.floor(x); _gthis.set_digit(digitRounded); }; this.finalTween = flixel_tweens_FlxTween.num(0.0,this.finalDigit,0.95833333333333337,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : function(input) { new flixel_util_FlxTimer().start(_gthis.finalDelay / 24,function(_) { _gthis.animation.play(_gthis.animation._curAnim.name,true,false,0); }); }},tweenFunction); } ,shuffleProgress: function(shuffleTimer) { var tempDigit = this.digit; ++tempDigit; if(tempDigit > 9) { tempDigit = 0; } if(tempDigit < 0) { tempDigit = 0; } this.set_digit(tempDigit); if(shuffleTimer.loops > 0 && shuffleTimer.loops - shuffleTimer._loopsCounter == 0) { this.finishShuffleTween(); } } ,shuffle: function() { var duration = 1.70833333333333326; var interval = 0.0416666666666666644; this.shuffleTimer = new flixel_util_FlxTimer().start(interval,$bind(this,this.shuffleProgress),duration / interval | 0); } ,__class__: funkin_play_ScoreNum ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_finalDigit:"set_finalDigit",set_digit:"set_digit"}) }); var funkin_play_ResultState = function(params) { var x = -1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.speedOfTween = point; this.movingSongStuff = false; this.clearPercentLerp = 0; this.clearPercentTarget = 100; this.rankTallyTimer = null; this.bfShit = null; this.gfGood = null; this.bfGood = null; this.gfGreat = null; this.bfGreat = null; this.bfExcellent = null; this.heartsPerfect = null; this.bfPerfect = null; this.maskShaderDifficulty = new funkin_graphics_shaders_LeftMaskShader(); this.maskShaderSongName = new funkin_graphics_shaders_LeftMaskShader(); funkin_ui_MusicBeatSubState.call(this); this.params = params; var tmp = funkin_play_scoring_Scoring.calculateRank(params.scoreData); this.rank = tmp != null ? tmp : "SHIT"; this.cameraBG = new funkin_graphics_FunkinCamera("resultsBG",0,0,flixel_FlxG.width,flixel_FlxG.height); this.cameraScroll = new funkin_graphics_FunkinCamera("resultsScroll",0,0,flixel_FlxG.width,flixel_FlxG.height); this.cameraEverything = new funkin_graphics_FunkinCamera("resultsEverything",0,0,flixel_FlxG.width,flixel_FlxG.height); var fontLetters = "AaBbCcDdEeFfGgHhiIJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz:1234567890"; var tmp = funkin_Paths.image("resultScreen/tardlingSpritesheet"); var x = 49; var y = 62; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.songName = new flixel_text_FlxBitmapText(null,null,null,flixel_graphics_frames_FlxBitmapFont.fromMonospace(tmp,fontLetters,point)); this.songName.set_text(params.title); this.songName.set_letterSpacing(-15); this.songName.set_angle(-4.4); this.songName.zIndex = 1000; this.difficulty = new flixel_FlxSprite(555); this.difficulty.zIndex = 1000; this.clearPercentSmall = new funkin_play_components_ClearPercentCounter(flixel_FlxG.width / 2 + 300,flixel_FlxG.height / 2 - 100,100,true); this.clearPercentSmall.zIndex = 1000; this.clearPercentSmall.set_visible(false); this.bgFlash = flixel_util_FlxGradient.createGradientFlxSprite(flixel_FlxG.width,flixel_FlxG.height,[-3674,-3650],90); this.resultsAnim = funkin_graphics_FunkinSprite.createSparrow(-200,-10,"resultScreen/results"); this.ratingsPopin = funkin_graphics_FunkinSprite.createSparrow(-135,135,"resultScreen/ratingsPopin"); this.scorePopin = funkin_graphics_FunkinSprite.createSparrow(-180,515,"resultScreen/scorePopin"); this.highscoreNew = new flixel_FlxSprite(44,557); this.score = new funkin_play_ResultScore(35,305,10,params.scoreData.score); this.rankBg = new funkin_graphics_FunkinSprite(0,0); }; $hxClasses["funkin.play.ResultState"] = funkin_play_ResultState; funkin_play_ResultState.__name__ = "funkin.play.ResultState"; funkin_play_ResultState.__super__ = funkin_ui_MusicBeatSubState; funkin_play_ResultState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ params: null ,rank: null ,songName: null ,difficulty: null ,clearPercentSmall: null ,maskShaderSongName: null ,maskShaderDifficulty: null ,resultsAnim: null ,ratingsPopin: null ,scorePopin: null ,bgFlash: null ,highscoreNew: null ,score: null ,bfPerfect: null ,heartsPerfect: null ,bfExcellent: null ,bfGreat: null ,gfGreat: null ,bfGood: null ,gfGood: null ,bfShit: null ,rankBg: null ,cameraBG: null ,cameraScroll: null ,cameraEverything: null ,create: function() { var _gthis = this; if(flixel_FlxG.sound.music != null) { var _this = flixel_FlxG.sound.music; _this.cleanup(_this.autoDestroy,true); } this.cameraScroll.set_angle(-3.8); this.cameraBG.bgColor = -65281; this.cameraScroll.bgColor = 0; this.cameraEverything.bgColor = 0; flixel_FlxG.cameras.add(this.cameraBG,false); flixel_FlxG.cameras.add(this.cameraScroll,false); flixel_FlxG.cameras.add(this.cameraEverything,false); flixel_FlxG.cameras.setDefaultDrawTarget(this.cameraEverything,true); this.set_camera(this.cameraEverything); flixel_FlxG.camera.set_zoom(1.0); var bg = flixel_util_FlxGradient.createGradientFlxSprite(flixel_FlxG.width,flixel_FlxG.height,[-78756,-147364],90); var this1 = bg.scrollFactor; this1.set_x(0); this1.set_y(0); bg.zIndex = 10; bg.set_cameras([this.cameraBG]); this.add(bg); var this1 = this.bgFlash.scrollFactor; this1.set_x(0); this1.set_y(0); this.bgFlash.set_visible(false); this.bgFlash.zIndex = 20; this.add(this.bgFlash); var soundSystem = funkin_graphics_FunkinSprite.createSparrow(-15,-180,"resultScreen/soundSystem"); soundSystem.animation.addByPrefix("idle","sound system",24,false); soundSystem.set_visible(false); new flixel_util_FlxTimer().start(0.333333333333333315,function(_) { soundSystem.animation.play("idle"); soundSystem.set_visible(true); }); soundSystem.zIndex = 1100; this.add(soundSystem); switch(this.rank) { case "EXCELLENT": this.bfExcellent = new funkin_graphics_adobeanimate_FlxAtlasSprite(1329,429,funkin_Paths.animateAtlas("resultScreen/results-bf/resultsEXCELLENT","shared")); this.bfExcellent.set_visible(false); this.bfExcellent.zIndex = 500; this.add(this.bfExcellent); this.bfExcellent.anim.onComplete = function() { if(_gthis.bfExcellent != null) { _gthis.bfExcellent.anim.set_curFrame(28); _gthis.bfExcellent.anim.play(); } }; break; case "GOOD": this.gfGood = funkin_graphics_FunkinSprite.createSparrow(625,325,"resultScreen/results-bf/resultsGOOD/resultGirlfriendGOOD"); this.gfGood.animation.addByPrefix("clap","Girlfriend Good Anim",24,false); this.gfGood.set_visible(false); this.gfGood.zIndex = 500; this.gfGood.animation.finishCallback = function(_) { if(_gthis.gfGood != null) { _gthis.gfGood.animation.play("clap",true,false,9); } }; this.add(this.gfGood); this.bfGood = funkin_graphics_FunkinSprite.createSparrow(640,-200,"resultScreen/results-bf/resultsGOOD/resultBoyfriendGOOD"); this.bfGood.animation.addByPrefix("fall","Boyfriend Good Anim0",24,false); this.bfGood.set_visible(false); this.bfGood.zIndex = 501; this.bfGood.animation.finishCallback = function(_) { if(_gthis.bfGood != null) { _gthis.bfGood.animation.play("fall",true,false,14); } }; this.add(this.bfGood); break; case "GREAT": this.gfGreat = new funkin_graphics_adobeanimate_FlxAtlasSprite(802,331,funkin_Paths.animateAtlas("resultScreen/results-bf/resultsGREAT/gf","shared")); this.gfGreat.set_visible(false); this.gfGreat.zIndex = 499; this.add(this.gfGreat); var this1 = this.gfGreat.scale; var x = 0.93; var y = 0.93; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.gfGreat.anim.onComplete = function() { if(_gthis.gfGreat != null) { _gthis.gfGreat.anim.set_curFrame(9); _gthis.gfGreat.anim.play(); } }; this.bfGreat = new funkin_graphics_adobeanimate_FlxAtlasSprite(929,363,funkin_Paths.animateAtlas("resultScreen/results-bf/resultsGREAT/bf","shared")); this.bfGreat.set_visible(false); this.bfGreat.zIndex = 500; this.add(this.bfGreat); var this1 = this.bfGreat.scale; var x = 0.93; var y = 0.93; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.bfGreat.anim.onComplete = function() { if(_gthis.bfGreat != null) { _gthis.bfGreat.anim.set_curFrame(15); _gthis.bfGreat.anim.play(); } }; break; case "PERFECT":case "PERFECT_GOLD": this.heartsPerfect = new funkin_graphics_adobeanimate_FlxAtlasSprite(1342,370,funkin_Paths.animateAtlas("resultScreen/results-bf/resultsPERFECT/hearts","shared")); this.heartsPerfect.set_visible(false); this.heartsPerfect.zIndex = 501; this.add(this.heartsPerfect); this.heartsPerfect.anim.onComplete = function() { if(_gthis.heartsPerfect != null) { _gthis.heartsPerfect.anim.set_curFrame(43); _gthis.heartsPerfect.anim.play(); } }; this.bfPerfect = new funkin_graphics_adobeanimate_FlxAtlasSprite(1342,370,funkin_Paths.animateAtlas("resultScreen/results-bf/resultsPERFECT","shared")); this.bfPerfect.set_visible(false); this.bfPerfect.zIndex = 500; this.add(this.bfPerfect); this.bfPerfect.anim.onComplete = function() { if(_gthis.bfPerfect != null) { _gthis.bfPerfect.anim.set_curFrame(137); _gthis.bfPerfect.anim.play(); } }; break; case "SHIT": this.bfShit = new funkin_graphics_adobeanimate_FlxAtlasSprite(0,20,funkin_Paths.animateAtlas("resultScreen/results-bf/resultsSHIT","shared")); this.bfShit.set_visible(false); this.bfShit.zIndex = 500; this.add(this.bfShit); this.bfShit.onAnimationFinish.add(function(animName) { if(_gthis.bfShit != null) { _gthis.bfShit.playAnimation("Loop Start"); } }); break; } var tmp = this.params; var tmp1 = tmp != null ? tmp.difficultyId : null; var diffSpr = "diff_" + (tmp1 != null ? tmp1 : "Normal"); this.difficulty.loadGraphic(funkin_Paths.image("resultScreen/" + diffSpr)); this.add(this.difficulty); this.add(this.songName); var angleRad = this.songName.angle * Math.PI / 180; this.speedOfTween.set_x(-1.0 * Math.cos(angleRad)); this.speedOfTween.set_y(-1.0 * Math.sin(angleRad)); this.timerThenSongName(1.0,false); this.songName.shader = this.maskShaderSongName; this.difficulty.shader = this.maskShaderDifficulty; this.maskShaderDifficulty.set_swagMaskX(this.difficulty.x - 15); var blackTopBar = new flixel_FlxSprite().loadGraphic(funkin_Paths.image("resultScreen/topBarBlack")); blackTopBar.set_y(-blackTopBar.get_height()); flixel_tweens_FlxTween.tween(blackTopBar,{ y : 0},0.291666666666666685,{ ease : flixel_tweens_FlxEase.quartOut, startDelay : 0.125}); blackTopBar.zIndex = 1010; this.add(blackTopBar); this.resultsAnim.animation.addByPrefix("result","results instance 1",24,false); this.resultsAnim.set_visible(false); this.resultsAnim.zIndex = 1200; this.add(this.resultsAnim); new flixel_util_FlxTimer().start(0.25,function(_) { _gthis.resultsAnim.set_visible(true); _gthis.resultsAnim.animation.play("result"); }); this.ratingsPopin.animation.addByPrefix("idle","Categories",24,false); this.ratingsPopin.set_visible(false); this.ratingsPopin.zIndex = 1200; this.add(this.ratingsPopin); new flixel_util_FlxTimer().start(0.875,function(_) { _gthis.ratingsPopin.set_visible(true); _gthis.ratingsPopin.animation.play("idle"); }); this.scorePopin.animation.addByPrefix("score","tally score",24,false); this.scorePopin.set_visible(false); this.scorePopin.zIndex = 1200; this.add(this.scorePopin); new flixel_util_FlxTimer().start(1.5,function(_) { _gthis.scorePopin.set_visible(true); _gthis.scorePopin.animation.play("score"); _gthis.scorePopin.animation.finishCallback = function(anim) { }; }); new flixel_util_FlxTimer().start(1.54166666666666674,function(_) { _gthis.score.set_visible(true); _gthis.score.animateNumbers(); _gthis.startRankTallySequence(); }); new flixel_util_FlxTimer().start(funkin_play_scoring_ScoringRank.getBFDelay(this.rank),function(_) { _gthis.afterRankTallySequence(); }); new flixel_util_FlxTimer().start(funkin_play_scoring_ScoringRank.getFlashDelay(this.rank),function(_) { _gthis.displayRankText(); }); this.highscoreNew.set_frames(funkin_Paths.getSparrowAtlas("resultScreen/highscoreNew")); this.highscoreNew.animation.addByPrefix("new","highscoreAnim0",24,false); this.highscoreNew.set_visible(false); this.highscoreNew.updateHitbox(); this.highscoreNew.zIndex = 1200; this.add(this.highscoreNew); new flixel_util_FlxTimer().start(funkin_play_scoring_ScoringRank.getHighscoreDelay(this.rank),function(_) { var tmp = _gthis.params.isNewHighscore; if(tmp != null && tmp) { _gthis.highscoreNew.set_visible(true); _gthis.highscoreNew.animation.play("new"); _gthis.highscoreNew.animation.finishCallback = function(_) { _gthis.highscoreNew.animation.play("new",true,false,16); }; } else { _gthis.highscoreNew.set_visible(false); } }); var hStuf = 50; var ratingGrp = new flixel_group_FlxTypedGroup(); ratingGrp.zIndex = 1200; this.add(ratingGrp); var totalHit = new funkin_play_components_TallyCounter(375,hStuf * 3,this.params.scoreData.tallies.totalNotesHit); ratingGrp.add(totalHit); var maxCombo = new funkin_play_components_TallyCounter(375,hStuf * 4,this.params.scoreData.tallies.maxCombo); ratingGrp.add(maxCombo); hStuf += 2; var extraYOffset = 7; hStuf += 2; var tallySick = new funkin_play_components_TallyCounter(230,hStuf * 5 + extraYOffset,this.params.scoreData.tallies.sick,-7740002); ratingGrp.add(tallySick); var tallyGood = new funkin_play_components_TallyCounter(210,hStuf * 6 + extraYOffset,this.params.scoreData.tallies.good,-7747099); ratingGrp.add(tallyGood); var tallyBad = new funkin_play_components_TallyCounter(190,hStuf * 7 + extraYOffset,this.params.scoreData.tallies.bad,-1650806); ratingGrp.add(tallyBad); var tallyShit = new funkin_play_components_TallyCounter(220,hStuf * 8 + extraYOffset,this.params.scoreData.tallies.shit,-1667958); ratingGrp.add(tallyShit); var tallyMissed = new funkin_play_components_TallyCounter(260,hStuf * 9 + extraYOffset,this.params.scoreData.tallies.missed,-3765530); ratingGrp.add(tallyMissed); this.score.set_visible(false); this.score.zIndex = 1200; this.add(this.score); var _g_current = 0; var _g_array = ratingGrp.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = _g_key; var rating = [_g_value]; rating[0].set_visible(false); new flixel_util_FlxTimer().start(0.3 * ind + 1.20,(function(rating) { return function(_) { rating[0].set_visible(true); flixel_tweens_FlxTween.tween(rating[0],{ curNumber : rating[0].neededNumber},0.5,{ ease : flixel_tweens_FlxEase.quartOut}); }; })(rating)); } new flixel_util_FlxTimer().start(funkin_play_scoring_ScoringRank.getMusicDelay(this.rank),function(_) { if(funkin_play_scoring_ScoringRank.hasMusicIntro(_gthis.rank)) { var introMusic = funkin_Paths.music(funkin_play_scoring_ScoringRank.getMusicPath(_gthis.rank) + "/" + funkin_play_scoring_ScoringRank.getMusicPath(_gthis.rank) + "-intro"); funkin_audio_FunkinSound.load(introMusic,1.0,false,true,true,function() { funkin_audio_FunkinSound.playMusic(funkin_play_scoring_ScoringRank.getMusicPath(_gthis.rank),{ startingVolume : 1.0, overrideExisting : true, restartTrack : true, loop : funkin_play_scoring_ScoringRank.shouldMusicLoop(_gthis.rank)}); }); } else { funkin_audio_FunkinSound.playMusic(funkin_play_scoring_ScoringRank.getMusicPath(_gthis.rank),{ startingVolume : 1.0, overrideExisting : true, restartTrack : true, loop : funkin_play_scoring_ScoringRank.shouldMusicLoop(_gthis.rank)}); } }); this.rankBg.makeSolidColor(flixel_FlxG.width,flixel_FlxG.height,-16777216); this.rankBg.zIndex = 99999; this.add(this.rankBg); this.rankBg.set_alpha(0); this.refresh(); funkin_ui_MusicBeatSubState.prototype.create.call(this); } ,rankTallyTimer: null ,clearPercentTarget: null ,clearPercentLerp: null ,startRankTallySequence: function() { var _gthis = this; this.bgFlash.set_visible(true); flixel_tweens_FlxTween.tween(this.bgFlash,{ alpha : 0},0.208333333333333343); var clearPercentFloat = (this.params.scoreData.tallies.sick + this.params.scoreData.tallies.good) / this.params.scoreData.tallies.totalNotes * 100; this.clearPercentTarget = Math.floor(clearPercentFloat); this.clearPercentLerp = Math.max(0,this.clearPercentTarget - 36) | 0; haxe_Log.trace("Clear percent target: " + clearPercentFloat + ", round: " + this.clearPercentTarget,{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 473, className : "funkin.play.ResultState", methodName : "startRankTallySequence"}); var clearPercentCounter = new funkin_play_components_ClearPercentCounter(flixel_FlxG.width / 2 + 190,flixel_FlxG.height / 2 - 70,this.clearPercentLerp); flixel_tweens_FlxTween.tween(clearPercentCounter,{ curNumber : this.clearPercentTarget},2.41666666666666652,{ ease : flixel_tweens_FlxEase.quartOut, onUpdate : function(_) { if(_gthis.clearPercentLerp != clearPercentCounter.curNumber) { _gthis.clearPercentLerp = clearPercentCounter.curNumber; funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu")); } }, onComplete : function(_) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("confirmMenu")); clearPercentCounter.set_curNumber(_gthis.clearPercentTarget); clearPercentCounter.flash(true); new flixel_util_FlxTimer().start(0.4,function(_) { clearPercentCounter.flash(false); }); new flixel_util_FlxTimer().start(0.25,function(_) { flixel_tweens_FlxTween.tween(clearPercentCounter,{ alpha : 0},0.5,{ startDelay : 0.5, ease : flixel_tweens_FlxEase.quartOut, onComplete : function(_) { _gthis.remove(clearPercentCounter); }}); }); }}); clearPercentCounter.zIndex = 450; this.add(clearPercentCounter); if(this.ratingsPopin == null) { haxe_Log.trace("Could not build ratingsPopin!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 521, className : "funkin.play.ResultState", methodName : "startRankTallySequence"}); } else { this.ratingsPopin.animation.finishCallback = function(anim) { var tmp = _gthis.params.isNewHighscore; if(tmp != null && tmp) { _gthis.highscoreNew.set_visible(true); _gthis.highscoreNew.animation.play("new"); } else { _gthis.highscoreNew.set_visible(false); } }; } this.refresh(); } ,displayRankText: function() { this.bgFlash.set_visible(true); this.bgFlash.set_alpha(1); flixel_tweens_FlxTween.tween(this.bgFlash,{ alpha : 0},0.58333333333333337); var rankTextVert = new flixel_addons_display_FlxBackdrop(funkin_Paths.image(funkin_play_scoring_ScoringRank.getVerTextAsset(this.rank)),16,0,30); rankTextVert.set_x(flixel_FlxG.width - 44); rankTextVert.set_y(100); rankTextVert.zIndex = 990; this.add(rankTextVert); flixel_effects_FlxFlicker.flicker(rankTextVert,0.25,0.0833333333333333287,true); new flixel_util_FlxTimer().start(1.25,function(_) { rankTextVert.velocity.set_y(-80); }); var _g = 0; while(_g < 12) { var i = _g++; var rankTextBack = new flixel_addons_display_FlxBackdrop(funkin_Paths.image(funkin_play_scoring_ScoringRank.getHorTextAsset(this.rank)),1,10,0); rankTextBack.set_x(flixel_FlxG.width / 2 - 320); rankTextBack.set_y(50 + 135 * i / 2 + 10); rankTextBack.zIndex = 100; rankTextBack.set_cameras([this.cameraScroll]); this.add(rankTextBack); rankTextBack.velocity.set_x(i % 2 == 0 ? -7.0 : 7.0); } this.refresh(); } ,afterRankTallySequence: function() { var _gthis = this; this.showSmallClearPercent(); switch(this.rank) { case "EXCELLENT": if(this.bfExcellent == null) { haxe_Log.trace("Could not build EXCELLENT animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 614, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { this.bfExcellent.set_visible(true); this.bfExcellent.playAnimation(""); } break; case "GOOD": if(this.bfGood == null) { haxe_Log.trace("Could not build GOOD animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 656, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { this.bfGood.animation.play("fall"); this.bfGood.set_visible(true); new flixel_util_FlxTimer().start(0.91666666666666663,function(_) { if(_gthis.gfGood != null) { _gthis.gfGood.animation.play("clap",true); _gthis.gfGood.set_visible(true); } else { haxe_Log.trace("Could not build GOOD animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 671, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } }); } break; case "GREAT": if(this.bfGreat == null) { haxe_Log.trace("Could not build GREAT animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 624, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { this.bfGreat.set_visible(true); this.bfGreat.playAnimation(""); } new flixel_util_FlxTimer().start(0.25,function(_) { if(_gthis.gfGreat == null) { haxe_Log.trace("Could not build GREAT animation for gf!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 635, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { _gthis.gfGreat.set_visible(true); _gthis.gfGreat.playAnimation(""); } }); break; case "PERFECT":case "PERFECT_GOLD": if(this.bfPerfect == null) { haxe_Log.trace("Could not build PERFECT animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 593, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { this.bfPerfect.set_visible(true); this.bfPerfect.playAnimation(""); } new flixel_util_FlxTimer().start(4.41666666666666696,function(_) { if(_gthis.heartsPerfect == null) { haxe_Log.trace("Could not build heartsPerfect animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 603, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { _gthis.heartsPerfect.set_visible(true); _gthis.heartsPerfect.playAnimation(""); } }); break; case "SHIT": if(this.bfShit == null) { haxe_Log.trace("Could not build SHIT animation!",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 646, className : "funkin.play.ResultState", methodName : "afterRankTallySequence"}); } else { this.bfShit.set_visible(true); this.bfShit.playAnimation("Intro"); } break; default: } } ,timerThenSongName: function(timerLength,autoScroll) { if(autoScroll == null) { autoScroll = true; } if(timerLength == null) { timerLength = 3.0; } var _gthis = this; this.movingSongStuff = false; this.difficulty.set_x(555); var diffYTween = 122; this.difficulty.set_y(-this.difficulty.get_height()); flixel_tweens_FlxTween.tween(this.difficulty,{ y : diffYTween},0.5,{ ease : flixel_tweens_FlxEase.expoOut, startDelay : 0.8}); if(this.clearPercentSmall != null) { this.clearPercentSmall.set_x(this.difficulty.x + this.difficulty.get_width() + 60); this.clearPercentSmall.set_y(-this.clearPercentSmall.get_height()); flixel_tweens_FlxTween.tween(this.clearPercentSmall,{ y : 117},0.5,{ ease : flixel_tweens_FlxEase.expoOut, startDelay : 0.85}); } this.songName.set_y(-this.songName.get_height()); var fuckedupnumber = 10 * (this.songName.text.length / 15); flixel_tweens_FlxTween.tween(this.songName,{ y : diffYTween - 25 - fuckedupnumber},0.5,{ ease : flixel_tweens_FlxEase.expoOut, startDelay : 0.9}); this.songName.set_x(this.clearPercentSmall.x + 94); new flixel_util_FlxTimer().start(timerLength,function(_) { var x = _gthis.speedOfTween.x; var y = _gthis.speedOfTween.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var tempSpeed = point; var this1 = _gthis.speedOfTween; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); flixel_tweens_FlxTween.tween(_gthis.speedOfTween,{ x : tempSpeed.x, y : tempSpeed.y},0.7,{ ease : flixel_tweens_FlxEase.quadIn}); _gthis.movingSongStuff = autoScroll; }); } ,showSmallClearPercent: function() { var _gthis = this; if(this.clearPercentSmall != null) { this.add(this.clearPercentSmall); this.clearPercentSmall.set_visible(true); this.clearPercentSmall.flash(true); new flixel_util_FlxTimer().start(0.4,function(_) { _gthis.clearPercentSmall.flash(false); }); this.clearPercentSmall.set_curNumber(this.clearPercentTarget); this.clearPercentSmall.zIndex = 1000; this.refresh(); } new flixel_util_FlxTimer().start(2.5,function(_) { _gthis.movingSongStuff = true; }); } ,movingSongStuff: null ,speedOfTween: null ,draw: function() { funkin_ui_MusicBeatSubState.prototype.draw.call(this); var tmp = this.songName; var X = Math.max(0,520 - this.songName.x); var Y = 0; var Width = flixel_FlxG.width; var Height = this.songName.get_height(); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; tmp.set_clipRect(rect); } ,update: function(elapsed) { var _gthis = this; this.maskShaderDifficulty.set_swagSprX(this.difficulty.x); if(this.movingSongStuff) { var fh = this.songName; fh.set_x(fh.x + this.speedOfTween.x); var fh = this.difficulty; fh.set_x(fh.x + this.speedOfTween.x); var fh = this.clearPercentSmall; fh.set_x(fh.x + this.speedOfTween.x); var fh = this.songName; fh.set_y(fh.y + this.speedOfTween.y); var fh = this.difficulty; fh.set_y(fh.y + this.speedOfTween.y); var fh = this.clearPercentSmall; fh.set_y(fh.y + this.speedOfTween.y); if(this.songName.x + this.songName.get_width() < 100) { this.timerThenSongName(); } } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { this.speedOfTween.set_x(this.speedOfTween.x + 0.1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { this.speedOfTween.set_x(this.speedOfTween.x - 0.1); } if(funkin_PlayerSettings.player1.controls._pause.check()) { if(flixel_FlxG.sound.music != null) { flixel_tweens_FlxTween.tween(flixel_FlxG.sound.music,{ volume : 0},0.8); flixel_tweens_FlxTween.tween(flixel_FlxG.sound.music,{ pitch : 3},0.1,{ onComplete : function(_) { flixel_tweens_FlxTween.tween(flixel_FlxG.sound.music,{ pitch : 0.5},0.4); }}); } if(this.params.storyMode) { this.openSubState(new funkin_ui_transition_StickerSubState(null,function(sticker) { return new funkin_ui_story_StoryMenuState(sticker); })); } else { var rigged = true; var tmp = this.params; if(funkin_play_scoring_ScoringRank.compareGT(this.rank,funkin_play_scoring_Scoring.calculateRank(tmp != null ? tmp.prevScoreData : null))) { haxe_Log.trace("THE RANK IS Higher.....",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 869, className : "funkin.play.ResultState", methodName : "update"}); flixel_tweens_FlxTween.tween(this.rankBg,{ alpha : 1},0.5,{ ease : flixel_tweens_FlxEase.expoOut, onComplete : function(_) { var tmp = _gthis.params; var nextState = flixel_util_typeLimit_NextState.fromState(funkin_ui_freeplay_FreeplayState.build({ fromResults : { oldRank : funkin_play_scoring_Scoring.calculateRank(tmp != null ? tmp.prevScoreData : null), newRank : _gthis.rank, songId : _gthis.params.songId, difficultyId : _gthis.params.difficultyId, playRankAnim : true}})); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); }}); } else { haxe_Log.trace("rank is lower...... and/or equal",{ fileName : "source/funkin/play/ResultState.hx", lineNumber : 893, className : "funkin.play.ResultState", methodName : "update"}); this.openSubState(new funkin_ui_transition_StickerSubState(null,function(sticker) { return funkin_ui_freeplay_FreeplayState.build({ fromResults : { oldRank : null, playRankAnim : false, newRank : _gthis.rank, songId : _gthis.params.songId, difficultyId : _gthis.params.difficultyId}},sticker); })); } } } funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); } ,__class__: funkin_play_ResultState }); var funkin_play_stage_StageProp = function() { this.name = ""; funkin_graphics_FunkinSprite.call(this); }; $hxClasses["funkin.play.stage.StageProp"] = funkin_play_stage_StageProp; funkin_play_stage_StageProp.__name__ = "funkin.play.stage.StageProp"; funkin_play_stage_StageProp.__interfaces__ = [funkin_modding_IStateStageProp]; funkin_play_stage_StageProp.__super__ = funkin_graphics_FunkinSprite; funkin_play_stage_StageProp.prototype = $extend(funkin_graphics_FunkinSprite.prototype,{ name: null ,onAdd: function(event) { } ,onScriptEvent: function(event) { } ,onCreate: function(event) { } ,onDestroy: function(event) { } ,onUpdate: function(event) { } ,__class__: funkin_play_stage_StageProp }); var funkin_play_stage_Bopper = function(danceEvery) { if(danceEvery == null) { danceEvery = 1; } this.forceAnimationTimer = new flixel_util_FlxTimer(); this.canPlayOtherAnims = true; this.hasDanced = false; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this.originalPosition = new flixel_math_FlxBasePoint(x,y); this.animOffsets = [0,0]; this.globalOffsets = [0,0]; this.shouldBop = true; this.isPixel = false; this.idleSuffix = ""; this.animationOffsets = new haxe_ds_StringMap(); this.shouldAlternate = null; this.danceEvery = 1; funkin_play_stage_StageProp.call(this); this.danceEvery = danceEvery; if(this.animation != null) { this.animation.callback = $bind(this,this.onAnimationFrame); this.animation.finishCallback = $bind(this,this.onAnimationFinished); } }; $hxClasses["funkin.play.stage.Bopper"] = funkin_play_stage_Bopper; funkin_play_stage_Bopper.__name__ = "funkin.play.stage.Bopper"; funkin_play_stage_Bopper.__interfaces__ = [funkin_modding_IPlayStateScriptedClass]; funkin_play_stage_Bopper.__super__ = funkin_play_stage_StageProp; funkin_play_stage_Bopper.prototype = $extend(funkin_play_stage_StageProp.prototype,{ danceEvery: null ,shouldAlternate: null ,animationOffsets: null ,idleSuffix: null ,isPixel: null ,set_isPixel: function(value) { if(this.isPixel == value) { return value; } return this.isPixel = value; } ,shouldBop: null ,set_idleSuffix: function(value) { this.idleSuffix = value; this.dance(); return value; } ,globalOffsets: null ,set_globalOffsets: function(value) { if(this.globalOffsets == null) { this.globalOffsets = [0,0]; } if(this.globalOffsets == value) { return value; } var xDiff = this.globalOffsets[0] - value[0]; var yDiff = this.globalOffsets[1] - value[1]; this.set_x(this.x + xDiff); this.set_y(this.y + yDiff); return this.globalOffsets = value; } ,animOffsets: null ,originalPosition: null ,set_animOffsets: function(value) { if(this.animOffsets == null) { this.animOffsets = [0,0]; } if(this.animOffsets[0] == value[0] && this.animOffsets[1] == value[1]) { return value; } var xDiff = this.animOffsets[0] - value[0]; var yDiff = this.animOffsets[1] - value[1]; this.set_x(this.x + xDiff); this.set_y(this.y + yDiff); return this.animOffsets = value; } ,hasDanced: null ,onAnimationFinished: function(name) { if(!this.canPlayOtherAnims) { this.canPlayOtherAnims = true; } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } } ,resetPosition: function() { var oldAnimOffsets = [this.animOffsets[0],this.animOffsets[1]]; this.set_animOffsets([0,0]); this.set_x(this.originalPosition.x); this.set_y(this.originalPosition.y); this.set_animOffsets(oldAnimOffsets); } ,update_shouldAlternate: function() { this.shouldAlternate = this.hasAnimation("danceLeft"); } ,onBeatHit: function(event) { if(this.danceEvery > 0 && event.beat % this.danceEvery == 0) { this.dance(this.shouldBop); } } ,dance: function(forceRestart) { if(forceRestart == null) { forceRestart = false; } if(this.animation == null) { return; } if(this.shouldAlternate == null) { this.update_shouldAlternate(); } if(this.shouldAlternate) { if(this.hasDanced) { haxe_Log.trace("DanceRight (alternate)",{ fileName : "source/funkin/play/stage/Bopper.hx", lineNumber : 203, className : "funkin.play.stage.Bopper", methodName : "dance"}); this.playAnimation("danceRight" + this.idleSuffix,forceRestart); } else { haxe_Log.trace("DanceLeft (alternate)",{ fileName : "source/funkin/play/stage/Bopper.hx", lineNumber : 208, className : "funkin.play.stage.Bopper", methodName : "dance"}); this.playAnimation("danceLeft" + this.idleSuffix,forceRestart); } this.hasDanced = !this.hasDanced; } else { this.playAnimation("idle" + this.idleSuffix,forceRestart); } } ,hasAnimation: function(id) { if(this.animation == null) { return false; } return this.animation._animations.h[id] != null; } ,correctAnimationName: function(name,fallback) { if(this.hasAnimation(name)) { return name; } flixel_FlxG.log.advanced("Bopper tried to play animation \"" + name + "\" that does not exist, stripping suffixes...",flixel_system_debug_log_LogStyle.NOTICE); if(name.lastIndexOf("-") != -1) { var correctName = name.substring(0,name.lastIndexOf("-")); flixel_FlxG.log.advanced("Bopper tried to play animation \"" + name + "\" that does not exist, stripping suffixes...",flixel_system_debug_log_LogStyle.NOTICE); return this.correctAnimationName(correctName); } else if(fallback != null) { if(fallback == name) { flixel_FlxG.log.advanced("Bopper tried to play animation \"" + name + "\" that does not exist! This is bad!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } else { flixel_FlxG.log.advanced("Bopper tried to play animation \"" + name + "\" that does not exist, fallback to idle...",flixel_system_debug_log_LogStyle.WARNING,true); return this.correctAnimationName("idle"); } } else { flixel_FlxG.log.advanced("Bopper tried to play animation \"" + name + "\" that does not exist! This is bad!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } } ,canPlayOtherAnims: null ,playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } if(!this.canPlayOtherAnims && !ignoreOther) { return; } var correctName = this.correctAnimationName(name); if(correctName == null) { return; } this.animation.play(correctName,restart,reversed,0); if(ignoreOther) { this.canPlayOtherAnims = false; } this.applyAnimationOffsets(correctName); } ,forceAnimationTimer: null ,forceAnimationForDuration: function(name,duration) { var _gthis = this; if(this.animation == null) { return; } var correctName = this.correctAnimationName(name); if(correctName == null) { return; } this.animation.play(correctName,false,false); this.applyAnimationOffsets(correctName); this.canPlayOtherAnims = false; this.forceAnimationTimer.start(duration,function(timer) { _gthis.canPlayOtherAnims = true; },1); } ,applyAnimationOffsets: function(name) { var offsets = this.animationOffsets.h[name]; if(offsets != null && !(offsets[0] == 0 && offsets[1] == 0)) { this.set_animOffsets([offsets[0] + this.globalOffsets[0],offsets[1] + this.globalOffsets[1]]); } else { this.set_animOffsets(this.globalOffsets); } } ,isAnimationFinished: function() { return this.animation.get_finished(); } ,setAnimationOffsets: function(name,xOffset,yOffset) { this.animationOffsets.h[name] = [xOffset,yOffset]; } ,getCurrentAnimation: function() { if(this.animation == null || this.animation._curAnim == null) { return ""; } return this.animation._curAnim.name; } ,onPause: function(event) { } ,onResume: function(event) { } ,onSongStart: function(event) { } ,onSongEnd: function(event) { } ,onGameOver: function(event) { } ,onNoteIncoming: function(event) { } ,onNoteHit: function(event) { } ,onNoteMiss: function(event) { } ,onSongEvent: function(event) { } ,onNoteGhostMiss: function(event) { } ,onStepHit: function(event) { } ,onCountdownStart: function(event) { } ,onCountdownStep: function(event) { } ,onCountdownEnd: function(event) { } ,onSongLoaded: function(event) { } ,onSongRetry: function(event) { } ,__class__: funkin_play_stage_Bopper ,__properties__: $extend(funkin_play_stage_StageProp.prototype.__properties__,{set_animOffsets:"set_animOffsets",set_globalOffsets:"set_globalOffsets",set_isPixel:"set_isPixel",set_idleSuffix:"set_idleSuffix"}) }); var funkin_play_character_BaseCharacter = function(id,renderType) { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this.cameraFocusPoint = new flixel_math_FlxBasePoint(x,y); this.debug = false; this.isDead = false; this.holdTimer = 0; this.characterType = funkin_play_character_CharacterType.OTHER; funkin_play_stage_Bopper.call(this); this.characterId = id; this._data = funkin_play_character_CharacterDataParser.fetchCharacterData(this.characterId); if(this._data == null) { throw haxe_Exception.thrown("Could not find character data for characterId: " + this.characterId); } else if(this._data.renderType != renderType) { throw haxe_Exception.thrown("Render type mismatch for character (" + this.characterId + "): expected " + renderType + ", got " + this._data.renderType); } else { this.characterName = this._data.name; this.name = this._data.name; this.singTimeSteps = this._data.singTime; this.set_globalOffsets(this._data.offsets); this.set_flipX(this._data.flipX); } this.shouldBop = false; }; $hxClasses["funkin.play.character.BaseCharacter"] = funkin_play_character_BaseCharacter; funkin_play_character_BaseCharacter.__name__ = "funkin.play.character.BaseCharacter"; funkin_play_character_BaseCharacter.__super__ = funkin_play_stage_Bopper; funkin_play_character_BaseCharacter.prototype = $extend(funkin_play_stage_Bopper.prototype,{ characterId: null ,characterName: null ,characterType: null ,set_characterType: function(value) { return this.characterType = value; } ,holdTimer: null ,isDead: null ,debug: null ,comboNoteCounts: null ,dropNoteCounts: null ,_data: null ,singTimeSteps: null ,get_characterOrigin: function() { var xPos = this.get_width() / 2; var yPos = this.get_height(); var x = xPos; var y = yPos; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,get_cornerPosition: function() { var x = this.x; var y = this.y; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,set_cornerPosition: function(value) { var xDiff = value.x - this.x; var yDiff = value.y - this.y; this.cameraFocusPoint.set_x(this.cameraFocusPoint.x + xDiff); this.cameraFocusPoint.set_y(this.cameraFocusPoint.y + yDiff); funkin_play_stage_Bopper.prototype.set_x.call(this,value.x); funkin_play_stage_Bopper.prototype.set_y.call(this,value.y); return value; } ,get_feetPosition: function() { var x = this.x + this.get_characterOrigin().x; var y = this.y + this.get_characterOrigin().y; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,cameraFocusPoint: null ,set_animOffsets: function(value) { if(this.animOffsets == null) { value = [0,0]; } if(this.animOffsets[0] == value[0] && this.animOffsets[1] == value[1]) { return value; } var xDiff = this.animOffsets[0] * this.scale.x / (this.isPixel ? 6 : 1) - value[0]; var yDiff = this.animOffsets[1] * this.scale.y / (this.isPixel ? 6 : 1) - value[1]; funkin_play_stage_Bopper.prototype.set_x.call(this,this.x + xDiff); funkin_play_stage_Bopper.prototype.set_y.call(this,this.y + yDiff); return this.animOffsets = value; } ,set_x: function(value) { if(value == this.x) { return value; } var xDiff = value - this.x; this.cameraFocusPoint.set_x(this.cameraFocusPoint.x + xDiff); return funkin_play_stage_Bopper.prototype.set_x.call(this,value); } ,set_y: function(value) { if(value == this.y) { return value; } var yDiff = value - this.y; this.cameraFocusPoint.set_y(this.cameraFocusPoint.y + yDiff); return funkin_play_stage_Bopper.prototype.set_y.call(this,value); } ,getDeathCameraOffsets: function() { var tmp = this._data.death; var tmp1 = tmp != null ? tmp.cameraOffsets : null; if(tmp1 != null) { return tmp1; } else { return [0.0,0.0]; } } ,getBaseScale: function() { return this._data.scale; } ,getDeathCameraZoom: function() { var tmp = this._data.death; var tmp1 = tmp != null ? tmp.cameraZoom : null; if(tmp1 != null) { return tmp1; } else { return 1.0; } } ,getDeathPreTransitionDelay: function() { var tmp = this._data.death; var tmp1 = tmp != null ? tmp.preTransitionDelay : null; if(tmp1 != null) { return tmp1; } else { return 0.0; } } ,getDataFlipX: function() { return this._data.flipX; } ,findCountAnimations: function(prefix) { var animNames = this.animation.getNameList(); var result = []; var _g = 0; while(_g < animNames.length) { var anim = animNames[_g]; ++_g; if(StringTools.startsWith(anim,prefix)) { var comboNum = Std.parseInt(anim.substring(prefix.length)); if(comboNum != null) { result.push(comboNum); } } } result.sort(function(a,b) { return a - b; }); return result; } ,resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } this.resetPosition(); this.dance(true); this.updateHitbox(); if(resetCamera) { this.resetCameraFocusPoint(); } } ,setScale: function(scale) { if(scale == null) { scale = 1.0; } var feetPos = this.get_feetPosition(); this.scale.set_x(scale); this.scale.set_y(scale); this.updateHitbox(); this.set_x(feetPos.x - this.get_characterOrigin().x + this.globalOffsets[0]); this.set_y(feetPos.y - this.get_characterOrigin().y + this.globalOffsets[1]); } ,get_characterCameraOffsets: function() { return this._data.cameraOffsets; } ,onCreate: function(event) { funkin_play_stage_Bopper.prototype.onCreate.call(this,event); this.dance(true); this.updateHitbox(); this.resetCameraFocusPoint(); this.comboNoteCounts = this.findCountAnimations("combo"); this.dropNoteCounts = this.findCountAnimations("drop"); funkin_play_stage_Bopper.prototype.onCreate.call(this,event); } ,resetCameraFocusPoint: function() { var charCenterX = this.x + this.get_width() / 2; var charCenterY = this.y + this.get_height() / 2; var x = charCenterX + this._data.cameraOffsets[0]; var y = charCenterY + this._data.cameraOffsets[1]; if(y == null) { y = 0; } if(x == null) { x = 0; } this.cameraFocusPoint = new flixel_math_FlxBasePoint(x,y); } ,initHealthIcon: function(isOpponent) { if(!isOpponent) { if(funkin_play_PlayState.instance.iconP1 == null) { haxe_Log.trace("[WARN] Player 1 health icon not found!",{ fileName : "source/funkin/play/character/BaseCharacter.hx", lineNumber : 332, className : "funkin.play.character.BaseCharacter", methodName : "initHealthIcon"}); return; } funkin_play_PlayState.instance.iconP1.configure(this._data.healthIcon); funkin_play_PlayState.instance.iconP1.set_flipX(!funkin_play_PlayState.instance.iconP1.flipX); } else { if(funkin_play_PlayState.instance.iconP2 == null) { haxe_Log.trace("[WARN] Player 2 health icon not found!",{ fileName : "source/funkin/play/character/BaseCharacter.hx", lineNumber : 342, className : "funkin.play.character.BaseCharacter", methodName : "initHealthIcon"}); return; } funkin_play_PlayState.instance.iconP2.configure(this._data.healthIcon); } } ,onUpdate: function(event) { funkin_play_stage_Bopper.prototype.onUpdate.call(this,event); if(this.justPressedNote() && this.characterType == funkin_play_character_CharacterType.BF) { this.holdTimer = 0; } if(this.isDead) { return; } if(!StringTools.endsWith(this.getCurrentAnimation(),"-hold") && this.hasAnimation(this.getCurrentAnimation() + "-hold") && this.isAnimationFinished()) { this.playAnimation(this.getCurrentAnimation() + "-hold"); } if(this.isSinging()) { this.holdTimer += event.elapsed; var singTimeSec = this.singTimeSteps * (funkin_Conductor.get_instance().get_stepLengthMs() / funkin_util_Constants.MS_PER_SEC); if(StringTools.endsWith(this.getCurrentAnimation(),"miss")) { singTimeSec *= 2; } var shouldStopSinging = this.characterType == funkin_play_character_CharacterType.BF ? !this.isHoldingNote() : true; if(this.holdTimer > singTimeSec && shouldStopSinging) { haxe_Log.trace("holdTimer reached " + this.holdTimer + "sec (> " + singTimeSec + "), stopping sing animation",{ fileName : "source/funkin/play/character/BaseCharacter.hx", lineNumber : 396, className : "funkin.play.character.BaseCharacter", methodName : "onUpdate"}); this.holdTimer = 0; this.dance(true); } } else { this.holdTimer = 0; } } ,isSinging: function() { return StringTools.startsWith(this.getCurrentAnimation(),"sing"); } ,dance: function(force) { if(force == null) { force = false; } if(this.isDead) { return; } if(!force) { if(this.isSinging()) { return; } var currentAnimation = this.getCurrentAnimation(); if((currentAnimation == "hey" || currentAnimation == "cheer") && !this.isAnimationFinished()) { return; } } if(!force && this.isSinging()) { return; } funkin_play_stage_Bopper.prototype.dance.call(this); } ,justPressedNote: function(player) { if(player == null) { player = 1; } switch(player) { case 1: if(!(funkin_PlayerSettings.player1.controls._note_left.checkJustPressed() || funkin_PlayerSettings.player1.controls._note_down.checkJustPressed() || funkin_PlayerSettings.player1.controls._note_up.checkJustPressed())) { return funkin_PlayerSettings.player1.controls._note_right.checkJustPressed(); } else { return true; } break; case 2: if(!(funkin_PlayerSettings.player2.controls._note_left.checkJustPressed() || funkin_PlayerSettings.player2.controls._note_down.checkJustPressed() || funkin_PlayerSettings.player2.controls._note_up.checkJustPressed())) { return funkin_PlayerSettings.player2.controls._note_right.checkJustPressed(); } else { return true; } break; } return false; } ,isHoldingNote: function(player) { if(player == null) { player = 1; } switch(player) { case 1: if(!(funkin_PlayerSettings.player1.controls._note_left.checkPressed() || funkin_PlayerSettings.player1.controls._note_down.checkPressed() || funkin_PlayerSettings.player1.controls._note_up.checkPressed())) { return funkin_PlayerSettings.player1.controls._note_right.checkPressed(); } else { return true; } break; case 2: if(!(funkin_PlayerSettings.player2.controls._note_left.checkPressed() || funkin_PlayerSettings.player2.controls._note_down.checkPressed() || funkin_PlayerSettings.player2.controls._note_up.checkPressed())) { return funkin_PlayerSettings.player2.controls._note_right.checkPressed(); } else { return true; } break; } return false; } ,onNoteHit: function(event) { funkin_play_stage_Bopper.prototype.onNoteHit.call(this,event); if(event.note.noteData.getMustHitNote() && this.characterType == funkin_play_character_CharacterType.BF) { this.playSingAnimation(event.note.noteData.data % 4,false); this.holdTimer = 0; } else if(!event.note.noteData.getMustHitNote() && this.characterType == funkin_play_character_CharacterType.DAD) { this.playSingAnimation(event.note.noteData.data % 4,false); this.holdTimer = 0; } } ,onNoteMiss: function(event) { funkin_play_stage_Bopper.prototype.onNoteMiss.call(this,event); if(event.note.noteData.getMustHitNote() && this.characterType == funkin_play_character_CharacterType.BF) { this.playSingAnimation(event.note.noteData.data % 4,true); } else if(!event.note.noteData.getMustHitNote() && this.characterType == funkin_play_character_CharacterType.DAD) { this.playSingAnimation(event.note.noteData.data % 4,true); } else if(event.note.noteData.getMustHitNote() && this.characterType == funkin_play_character_CharacterType.GF) { var dropAnim = ""; var _g = 0; var _g1 = this.dropNoteCounts; while(_g < _g1.length) { var count = _g1[_g]; ++_g; if(event.comboCount >= count) { dropAnim = "drop" + count; } } if(dropAnim != "") { haxe_Log.trace("Playing GF combo drop animation: " + dropAnim,{ fileName : "source/funkin/play/character/BaseCharacter.hx", lineNumber : 539, className : "funkin.play.character.BaseCharacter", methodName : "onNoteMiss"}); this.playAnimation(dropAnim,true,true); } } } ,onNoteGhostMiss: function(event) { funkin_play_stage_Bopper.prototype.onNoteGhostMiss.call(this,event); if(event.eventCanceled || !event.playAnim) { return; } if(this.characterType == funkin_play_character_CharacterType.BF) { this.playSingAnimation(event.dir,true); } } ,onDestroy: function(event) { this.set_characterType(funkin_play_character_CharacterType.OTHER); } ,playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var anim = "sing" + funkin_play_notes_NoteDirection.get_nameUpper(dir) + (miss ? "miss" : "") + (suffix != "" ? "-" + suffix : ""); this.playAnimation(anim,true); } ,playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } funkin_play_stage_Bopper.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } ,__class__: funkin_play_character_BaseCharacter ,__properties__: $extend(funkin_play_stage_Bopper.prototype.__properties__,{get_characterCameraOffsets:"get_characterCameraOffsets",get_feetPosition:"get_feetPosition",set_cornerPosition:"set_cornerPosition",get_cornerPosition:"get_cornerPosition",get_characterOrigin:"get_characterOrigin",set_characterType:"set_characterType"}) }); var funkin_play_character_AnimateAtlasCharacter = function(id) { this.animFinished = false; this.currentAnimName = null; this.animations = new haxe_ds_StringMap(); this._skipTransformChildren = false; funkin_play_character_BaseCharacter.call(this,id,"animateatlas"); }; $hxClasses["funkin.play.character.AnimateAtlasCharacter"] = funkin_play_character_AnimateAtlasCharacter; funkin_play_character_AnimateAtlasCharacter.__name__ = "funkin.play.character.AnimateAtlasCharacter"; funkin_play_character_AnimateAtlasCharacter.__super__ = funkin_play_character_BaseCharacter; funkin_play_character_AnimateAtlasCharacter.prototype = $extend(funkin_play_character_BaseCharacter.prototype,{ transformChildren_flixel_math_FlxRect: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_openfl_display_BlendMode: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_Int: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_Float: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_Bool: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_Array_flixel_FlxCamera: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_flixel_FlxCamera: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,transformChildren_flixel_math_FlxPoint: function(callback,value) { if(this._skipTransformChildren || this.mainSprite == null) { return; } callback(this.mainSprite,value); } ,mainSprite: null ,_skipTransformChildren: null ,animations: null ,currentAnimName: null ,animFinished: null ,initVars: function() { this.animation = new flixel_animation_FlxAnimationController(this); this.offset = new flixel_math_FlxCallbackPoint($bind(this,this.offsetCallback)); this.origin = new flixel_math_FlxCallbackPoint($bind(this,this.originCallback)); this.scale = new flixel_math_FlxCallbackPoint($bind(this,this.scaleCallback)); this.scrollFactor = new flixel_math_FlxCallbackPoint($bind(this,this.scrollFactorCallback)); var this1 = this.scale; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.scrollFactor; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.velocity = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.acceleration = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; this.drag = point; var x = 10000; var y = 10000; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.maxVelocity = point; } ,onCreate: function(event) { haxe_Log.trace("Creating Animate Atlas character: " + this.characterId,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 77, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "onCreate"}); try { var atlasSprite = this.loadAtlasSprite(); this.setSprite(atlasSprite); this.loadAnimations(); } catch( _g ) { var e = haxe_Exception.caught(_g); throw haxe_Exception.thrown("Exception thrown while building FlxAtlasSprite: " + Std.string(e)); } funkin_play_character_BaseCharacter.prototype.onCreate.call(this,event); } ,playAnimation: function(name,restart,ignoreOther,reverse) { if(reverse == null) { reverse = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } if(!this.canPlayOtherAnims && !ignoreOther) { return; } var correctName = this.correctAnimationName(name); if(correctName == null) { haxe_Log.trace("Could not find Atlas animation: " + name,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 101, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "playAnimation"}); return; } var animData = this.getAnimationData(correctName); this.currentAnimName = correctName; var prefix = animData.prefix; if(prefix == null) { prefix = correctName; } var loop = animData.looped; this.mainSprite.playAnimation(prefix,restart,ignoreOther,loop); this.animFinished = false; } ,hasAnimation: function(name) { return this.getAnimationData(name) != null; } ,isAnimationFinished: function() { return this.animFinished; } ,loadAtlasSprite: function() { haxe_Log.trace("[ATLASCHAR] Loading sprite atlas for " + this.characterId + ".",{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 132, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "loadAtlasSprite"}); var sprite = new funkin_graphics_adobeanimate_FlxAtlasSprite(0,0,funkin_Paths.animateAtlas(this._data.assetPath,"shared")); flixel_util_FlxDestroyUtil.destroyArray(sprite.onAnimationFinish.handlers); sprite.onAnimationFinish.add($bind(this,this.onAnimationFinished)); return sprite; } ,onAnimationFinished: function(prefix) { funkin_play_character_BaseCharacter.prototype.onAnimationFinished.call(this,prefix); if(this.getAnimationData() != null && this.getAnimationData().looped) { this.playAnimation(prefix,true,false); } else { this.mainSprite.cleanupAnimation(prefix); this.animFinished = true; } } ,setSprite: function(sprite) { haxe_Log.trace("[ATLASCHAR] Applying sprite properties to " + this.characterId,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 164, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "setSprite"}); this.mainSprite = sprite; var feetPos = this.get_feetPosition(); this.updateHitbox(); sprite.set_x(this.x); sprite.set_y(this.y); sprite.set_alpha(sprite.alpha * this.alpha); sprite.set_flipX(this.flipX); sprite.set_flipY(this.flipY); var this1 = sprite.scrollFactor; var p = this.scrollFactor; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } sprite.set_cameras(this._cameras); if(this.clipRect != null) { var clipRect = this.clipRect; if(clipRect == null) { sprite.set_clipRect(null); } else { var X = clipRect.x - sprite.x + this.x; var Y = clipRect.y - sprite.y + this.y; var Width = clipRect.width; var Height = clipRect.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; sprite.set_clipRect(rect); } } } ,loadAnimations: function() { haxe_Log.trace("[ATLASCHAR] Attempting to load " + this._data.animations.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 184, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "loadAnimations"}); var animData = this._data.animations; var _g = 0; while(_g < animData.length) { var anim = animData[_g]; ++_g; var prefix = anim.prefix; if(!this.mainSprite.hasAnimation(prefix)) { flixel_FlxG.log.advanced("[ATLASCHAR] Animation " + prefix + " not found in Animate Atlas " + this._data.assetPath,flixel_system_debug_log_LogStyle.WARNING,true); haxe_Log.trace("[ATLASCHAR] Animation " + prefix + " not found in Animate Atlas " + this._data.assetPath,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 195, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "loadAnimations"}); continue; } this.animations.h[anim.name] = anim; haxe_Log.trace("[ATLASCHAR] - Successfully loaded animation " + anim.name + " to " + this.characterId,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 199, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "loadAnimations"}); } haxe_Log.trace("[ATLASCHAR] Loaded " + funkin_util_tools_MapTools.size(this.animations) + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/AnimateAtlasCharacter.hx", lineNumber : 202, className : "funkin.play.character.AnimateAtlasCharacter", methodName : "loadAnimations"}); } ,getCurrentAnimation: function() { return this.currentAnimName; } ,getAnimationData: function(name) { if(name == null) { name = this.getCurrentAnimation(); } return this.animations.h[name]; } ,kill: function() { this._skipTransformChildren = true; funkin_play_character_BaseCharacter.prototype.kill.call(this); this._skipTransformChildren = false; if(this.mainSprite != null) { this.mainSprite.kill(); this.mainSprite = null; } } ,revive: function() { this._skipTransformChildren = true; funkin_play_character_BaseCharacter.prototype.revive.call(this); this._skipTransformChildren = false; this.mainSprite.revive(); } ,destroy: function() { this.offset = flixel_util_FlxDestroyUtil.destroy(this.offset); this.origin = flixel_util_FlxDestroyUtil.destroy(this.origin); this.scale = flixel_util_FlxDestroyUtil.destroy(this.scale); this.scrollFactor = flixel_util_FlxDestroyUtil.destroy(this.scrollFactor); this.mainSprite = flixel_util_FlxDestroyUtil.destroy(this.mainSprite); funkin_play_character_BaseCharacter.prototype.destroy.call(this); } ,isOnScreen: function(camera) { if(this.mainSprite != null && this.mainSprite.exists && this.mainSprite.visible && this.mainSprite.isOnScreen(camera)) { return true; } return false; } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var result = false; result = this.mainSprite.overlapsPoint(point,inScreenSpace,camera); return result; } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var result = false; if(this.mainSprite != null && this.mainSprite.exists && this.mainSprite.visible) { result = this.mainSprite.pixelsOverlapPoint(point,Mask,Camera); } return result; } ,update: function(elapsed) { this.mainSprite.update(elapsed); if(this.moves) { this.updateMotion(elapsed); } } ,draw: function() { this.mainSprite.draw(); } ,xTransform: function(sprite,x) { sprite.set_x(sprite.x + x); } ,yTransform: function(sprite,y) { sprite.set_y(sprite.y + y); } ,angleTransform: function(sprite,angle) { sprite.set_angle(sprite.angle + angle); } ,alphaTransform: function(sprite,alpha) { if(sprite.alpha != 0 || alpha == 0) { sprite.set_alpha(sprite.alpha * alpha); } else { sprite.set_alpha(1 / alpha); } } ,directAlphaTransform: function(sprite,alpha) { sprite.set_alpha(alpha); } ,facingTransform: function(sprite,facing) { sprite.set_facing(facing); } ,flipXTransform: function(sprite,flipX) { sprite.set_flipX(flipX); } ,flipYTransform: function(sprite,flipY) { sprite.set_flipY(flipY); } ,movesTransform: function(sprite,moves) { sprite.set_moves(moves); } ,pixelPerfectTransform: function(sprite,pixelPerfect) { sprite.set_pixelPerfectRender(pixelPerfect); } ,gColorTransform: function(sprite,color) { sprite.set_color(color); } ,blendTransform: function(sprite,blend) { sprite.set_blend(blend); } ,immovableTransform: function(sprite,immovable) { sprite.set_immovable(immovable); } ,visibleTransform: function(sprite,visible) { sprite.set_visible(visible); } ,activeTransform: function(sprite,active) { sprite.set_active(active); } ,solidTransform: function(sprite,solid) { sprite.set_solid(solid); } ,aliveTransform: function(sprite,alive) { sprite.set_alive(alive); } ,existsTransform: function(sprite,exists) { sprite.set_exists(exists); } ,cameraTransform: function(sprite,camera) { sprite.set_camera(camera); } ,camerasTransform: function(sprite,cameras) { sprite.set_cameras(cameras); } ,offsetTransform: function(sprite,offset) { var this1 = sprite.offset; var x = offset.x; var y = offset.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(offset._weak) { offset.put(); } } ,originTransform: function(sprite,origin) { var this1 = sprite.origin; var x = origin.x; var y = origin.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(origin._weak) { origin.put(); } } ,scaleTransform: function(sprite,scale) { var this1 = sprite.scale; var x = scale.x; var y = scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(scale._weak) { scale.put(); } } ,scrollFactorTransform: function(sprite,scrollFactor) { var this1 = sprite.scrollFactor; var x = scrollFactor.x; var y = scrollFactor.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(scrollFactor._weak) { scrollFactor.put(); } } ,clipRectTransform: function(sprite,clipRect) { if(clipRect == null) { sprite.set_clipRect(null); } else { var X = clipRect.x - sprite.x + this.x; var Y = clipRect.y - sprite.y + this.y; var Width = clipRect.width; var Height = clipRect.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; sprite.set_clipRect(rect); } } ,offsetCallback: function(offset) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.offsetTransform),offset); } ,originCallback: function(origin) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.originTransform),origin); } ,scaleCallback: function(scale) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.scaleTransform),scale); } ,scrollFactorCallback: function(scrollFactor) { this.transformChildren_flixel_math_FlxPoint($bind(this,this.scrollFactorTransform),scrollFactor); } ,set_camera: function(value) { if(this.get_camera() != value) { this.transformChildren_flixel_FlxCamera($bind(this,this.cameraTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_camera.call(this,value); } ,set_cameras: function(value) { if(this.get_cameras() != value) { this.transformChildren_Array_flixel_FlxCamera($bind(this,this.camerasTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_cameras.call(this,value); } ,set_exists: function(value) { if(this.exists != value) { this.transformChildren_Bool($bind(this,this.existsTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_exists.call(this,value); } ,set_visible: function(value) { if(this.exists && this.visible != value) { this.transformChildren_Bool($bind(this,this.visibleTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_visible.call(this,value); } ,set_active: function(value) { if(this.exists && this.active != value) { this.transformChildren_Bool($bind(this,this.activeTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_active.call(this,value); } ,set_alive: function(value) { if(this.alive != value) { this.transformChildren_Bool($bind(this,this.aliveTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_alive.call(this,value); } ,set_x: function(value) { if(!this.exists || this.x == value) { return this.x; } this.transformChildren_Float($bind(this,this.xTransform),value - this.x); return this.x = value; } ,set_y: function(value) { if(this.exists && this.y != value) { this.transformChildren_Float($bind(this,this.yTransform),value - this.y); } return this.y = value; } ,set_angle: function(value) { if(this.exists && this.angle != value) { this.transformChildren_Float($bind(this,this.angleTransform),value - this.angle); } return this.angle = value; } ,set_alpha: function(value) { var lowerBound = value < 0 ? 0 : value; value = lowerBound > 1 ? 1 : lowerBound; if(this.exists && this.alpha != value) { this.transformChildren_Float($bind(this,this.directAlphaTransform),value); } return this.alpha = value; } ,set_facing: function(value) { if(this.exists && this.facing != value) { this.transformChildren_Int($bind(this,this.facingTransform),value); } return this.facing = value; } ,set_flipX: function(value) { if(this.exists && this.flipX != value) { this.transformChildren_Bool($bind(this,this.flipXTransform),value); } return this.flipX = value; } ,set_flipY: function(value) { if(this.exists && this.flipY != value) { this.transformChildren_Bool($bind(this,this.flipYTransform),value); } return this.flipY = value; } ,set_moves: function(value) { if(this.exists && this.moves != value) { this.transformChildren_Bool($bind(this,this.movesTransform),value); } return this.moves = value; } ,set_immovable: function(value) { if(this.exists && this.immovable != value) { this.transformChildren_Bool($bind(this,this.immovableTransform),value); } return this.immovable = value; } ,set_solid: function(value) { if(this.exists && (this.allowCollisions & 4369) > 0 != value) { this.transformChildren_Bool($bind(this,this.solidTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_solid.call(this,value); } ,set_color: function(value) { if(this.exists && this.color != value) { this.transformChildren_Int($bind(this,this.gColorTransform),value); } return this.color = value; } ,set_blend: function(value) { if(this.exists && this.blend != value) { this.transformChildren_openfl_display_BlendMode($bind(this,this.blendTransform),value); } return this.blend = value; } ,set_clipRect: function(rect) { if(this.exists) { this.transformChildren_flixel_math_FlxRect($bind(this,this.clipRectTransform),rect); } return funkin_play_character_BaseCharacter.prototype.set_clipRect.call(this,rect); } ,set_pixelPerfectRender: function(value) { if(this.exists && this.pixelPerfectRender != value) { this.transformChildren_Bool($bind(this,this.pixelPerfectTransform),value); } return funkin_play_character_BaseCharacter.prototype.set_pixelPerfectRender.call(this,value); } ,set_width: function(value) { return value; } ,get_width: function() { if(this.mainSprite == null) { return 0; } return this.mainSprite.get_width(); } ,findMinX: function() { if(this.mainSprite == null) { return this.x; } else { return this.findMinXHelper(); } } ,findMinXHelper: function() { return this.mainSprite.x; } ,findMaxX: function() { if(this.mainSprite == null) { return this.x; } else { return this.findMaxXHelper(); } } ,findMaxXHelper: function() { return this.mainSprite.x + this.mainSprite.get_width(); } ,set_height: function(value) { return value; } ,get_height: function() { if(this.mainSprite == null) { return 0; } return this.mainSprite.get_height(); } ,findMinY: function() { if(this.mainSprite == null) { return this.y; } else { return this.findMinYHelper(); } } ,findMinYHelper: function() { return this.mainSprite.y; } ,findMaxY: function() { if(this.mainSprite == null) { return this.y; } else { return this.findMaxYHelper(); } } ,findMaxYHelper: function() { return this.mainSprite.y + this.mainSprite.get_height(); } ,loadGraphicFromSprite: function(Sprite) { return this; } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } return this; } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } return this; } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } return this; } ,set_pixels: function(value) { return value; } ,set_frame: function(value) { return value; } ,get_pixels: function() { return null; } ,calcFrame: function(RunOnCpp) { if(RunOnCpp == null) { RunOnCpp = false; } } ,resetHelpers: function() { } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } } ,set_frames: function(Frames) { return Frames; } ,updateColorTransform: function() { } ,__class__: funkin_play_character_AnimateAtlasCharacter }); var funkin_play_character_CharacterType = $hxEnums["funkin.play.character.CharacterType"] = { __ename__:"funkin.play.character.CharacterType",__constructs__:null ,BF: {_hx_name:"BF",_hx_index:0,__enum__:"funkin.play.character.CharacterType",toString:$estr} ,DAD: {_hx_name:"DAD",_hx_index:1,__enum__:"funkin.play.character.CharacterType",toString:$estr} ,GF: {_hx_name:"GF",_hx_index:2,__enum__:"funkin.play.character.CharacterType",toString:$estr} ,OTHER: {_hx_name:"OTHER",_hx_index:3,__enum__:"funkin.play.character.CharacterType",toString:$estr} }; funkin_play_character_CharacterType.__constructs__ = [funkin_play_character_CharacterType.BF,funkin_play_character_CharacterType.DAD,funkin_play_character_CharacterType.GF,funkin_play_character_CharacterType.OTHER]; funkin_play_character_CharacterType.__empty_constructs__ = [funkin_play_character_CharacterType.BF,funkin_play_character_CharacterType.DAD,funkin_play_character_CharacterType.GF,funkin_play_character_CharacterType.OTHER]; var funkin_play_character_CharacterDataParser = function() { }; $hxClasses["funkin.play.character.CharacterDataParser"] = funkin_play_character_CharacterDataParser; funkin_play_character_CharacterDataParser.__name__ = "funkin.play.character.CharacterDataParser"; funkin_play_character_CharacterDataParser.loadCharacterCache = function() { funkin_play_character_CharacterDataParser.clearCharacterCache(); haxe_Log.trace("[CHARACTER] Parsing all entries...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 46, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var charIdList = funkin_util_assets_DataAssets.listDataFilesInPath("characters/"); var _g = []; var _g1 = 0; var _g2 = charIdList; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!Object.prototype.hasOwnProperty.call(funkin_play_character_CharacterDataParser.characterCache.h,v)) { _g.push(v); } } var unscriptedCharIds = _g; haxe_Log.trace(" Fetching data for " + unscriptedCharIds.length + " characters...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 55, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var _g = 0; while(_g < unscriptedCharIds.length) { var charId = unscriptedCharIds[_g]; ++_g; try { var charData = funkin_play_character_CharacterDataParser.parseCharacterData(charId); if(charData != null) { haxe_Log.trace(" Loaded character data: " + charId,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 63, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); funkin_play_character_CharacterDataParser.characterCache.h[charId] = charData; } } catch( _g1 ) { continue; } } var scriptedCharClassNames1 = funkin_play_character_ScriptedSparrowCharacter.listScriptClasses(); if(scriptedCharClassNames1.length > 0) { haxe_Log.trace(" Instantiating " + scriptedCharClassNames1.length + " (Sparrow) scripted characters...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 83, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var _g = 0; while(_g < scriptedCharClassNames1.length) { var charCls = scriptedCharClassNames1[_g]; ++_g; try { var character = funkin_play_character_ScriptedSparrowCharacter.init(charCls,funkin_play_character_CharacterDataParser.DEFAULT_CHAR_ID); haxe_Log.trace(" Initialized character " + character.characterName,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 89, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); funkin_play_character_CharacterDataParser.characterScriptedClass.h[character.characterId] = charCls; } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" FAILED to instantiate scripted Sparrow character: " + charCls,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 94, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); haxe_Log.trace(e,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 95, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); } } } var scriptedCharClassNames2 = funkin_play_character_ScriptedPackerCharacter.listScriptClasses(); if(scriptedCharClassNames2.length > 0) { haxe_Log.trace(" Instantiating " + scriptedCharClassNames2.length + " (Packer) scripted characters...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 103, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var _g = 0; while(_g < scriptedCharClassNames2.length) { var charCls = scriptedCharClassNames2[_g]; ++_g; try { var character = funkin_play_character_ScriptedPackerCharacter.init(charCls,funkin_play_character_CharacterDataParser.DEFAULT_CHAR_ID); funkin_play_character_CharacterDataParser.characterScriptedClass.h[character.characterId] = charCls; } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" FAILED to instantiate scripted Packer character: " + charCls,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 113, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); haxe_Log.trace(e,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 114, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); } } } var scriptedCharClassNames3 = funkin_play_character_ScriptedMultiSparrowCharacter.listScriptClasses(); if(scriptedCharClassNames3.length > 0) { haxe_Log.trace(" Instantiating " + scriptedCharClassNames3.length + " (Multi-Sparrow) scripted characters...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 122, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var _g = 0; while(_g < scriptedCharClassNames3.length) { var charCls = scriptedCharClassNames3[_g]; ++_g; try { var character = funkin_play_character_ScriptedMultiSparrowCharacter.init(charCls,funkin_play_character_CharacterDataParser.DEFAULT_CHAR_ID); funkin_play_character_CharacterDataParser.characterScriptedClass.h[character.characterId] = charCls; } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" FAILED to instantiate scripted Multi-Sparrow character: " + charCls,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 132, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); haxe_Log.trace(e,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 133, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); } } } var scriptedCharClassNames4 = funkin_play_character_ScriptedAnimateAtlasCharacter.listScriptClasses(); if(scriptedCharClassNames4.length > 0) { haxe_Log.trace(" Instantiating " + scriptedCharClassNames4.length + " (Animate Atlas) scripted characters...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 141, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var _g = 0; while(_g < scriptedCharClassNames4.length) { var charCls = scriptedCharClassNames4[_g]; ++_g; try { var character = funkin_play_character_ScriptedAnimateAtlasCharacter.init(charCls,funkin_play_character_CharacterDataParser.DEFAULT_CHAR_ID); funkin_play_character_CharacterDataParser.characterScriptedClass.h[character.characterId] = charCls; } catch( _g1 ) { var e = haxe_Exception.caught(_g1); haxe_Log.trace(" FAILED to instantiate scripted Animate Atlas character: " + charCls,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 151, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); haxe_Log.trace(e,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 152, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); } } } var scriptedCharClassNames = funkin_play_character_ScriptedBaseCharacter.listScriptClasses(); var _g = []; var _g1 = 0; var _g2 = scriptedCharClassNames; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!(scriptedCharClassNames1.indexOf(v) != -1 || scriptedCharClassNames2.indexOf(v) != -1 || scriptedCharClassNames3.indexOf(v) != -1 || scriptedCharClassNames4.indexOf(v) != -1)) { _g.push(v); } } scriptedCharClassNames = _g; if(scriptedCharClassNames.length > 0) { haxe_Log.trace(" Instantiating " + scriptedCharClassNames.length + " (Base) scripted characters...",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 169, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); var _g = 0; while(_g < scriptedCharClassNames.length) { var charCls = scriptedCharClassNames[_g]; ++_g; var character = funkin_play_character_ScriptedBaseCharacter.init(charCls,funkin_play_character_CharacterDataParser.DEFAULT_CHAR_ID,"custom"); if(character == null) { haxe_Log.trace(" Failed to instantiate scripted character: " + charCls,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 175, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); continue; } else { haxe_Log.trace(" Successfully instantiated scripted character: " + charCls,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 180, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); funkin_play_character_CharacterDataParser.characterScriptedClass.h[character.characterId] = charCls; } } } haxe_Log.trace(" Successfully loaded " + Lambda.count(funkin_play_character_CharacterDataParser.characterCache) + " stages.",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 186, className : "funkin.play.character.CharacterDataParser", methodName : "loadCharacterCache"}); }; funkin_play_character_CharacterDataParser.fetchCharacter = function(charId,debug) { if(debug == null) { debug = false; } if(charId == null || charId == "" || !Object.prototype.hasOwnProperty.call(funkin_play_character_CharacterDataParser.characterCache.h,charId)) { if(charId != null && charId != "") { haxe_Log.trace("Failed to build character, not found in cache: " + charId,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 202, className : "funkin.play.character.CharacterDataParser", methodName : "fetchCharacter"}); } return null; } var charData = funkin_play_character_CharacterDataParser.characterCache.h[charId]; var charScriptClass = funkin_play_character_CharacterDataParser.characterScriptedClass.h[charId]; var char; if(charScriptClass != null) { switch(charData.renderType) { case "animateatlas": char = funkin_play_character_ScriptedAnimateAtlasCharacter.init(charScriptClass,charId); break; case "multisparrow": char = funkin_play_character_ScriptedMultiSparrowCharacter.init(charScriptClass,charId); break; case "packer": char = funkin_play_character_ScriptedPackerCharacter.init(charScriptClass,charId); break; case "sparrow": char = funkin_play_character_ScriptedSparrowCharacter.init(charScriptClass,charId); break; default: char = funkin_play_character_ScriptedBaseCharacter.init(charScriptClass,charId,"custom"); } } else { switch(charData.renderType) { case "animateatlas": char = new funkin_play_character_AnimateAtlasCharacter(charId); break; case "multisparrow": char = new funkin_play_character_MultiSparrowCharacter(charId); break; case "packer": char = new funkin_play_character_PackerCharacter(charId); break; case "sparrow": char = new funkin_play_character_SparrowCharacter(charId); break; default: haxe_Log.trace("[WARN] Creating character with undefined renderType " + charData.renderType,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 241, className : "funkin.play.character.CharacterDataParser", methodName : "fetchCharacter"}); char = new funkin_play_character_BaseCharacter(charId,"custom"); } } if(char == null) { haxe_Log.trace("Failed to instantiate character: " + charId,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 248, className : "funkin.play.character.CharacterDataParser", methodName : "fetchCharacter"}); return null; } haxe_Log.trace("Successfully instantiated character (" + (debug ? "debug" : "stable") + "): " + charId,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 252, className : "funkin.play.character.CharacterDataParser", methodName : "fetchCharacter"}); char.debug = debug; funkin_modding_events_ScriptEventDispatcher.callEvent(char,new funkin_modding_events_ScriptEvent("CREATE")); return char; }; funkin_play_character_CharacterDataParser.fetchCharacterData = function(charId) { if(Object.prototype.hasOwnProperty.call(funkin_play_character_CharacterDataParser.characterCache.h,charId)) { return funkin_play_character_CharacterDataParser.characterCache.h[charId]; } return null; }; funkin_play_character_CharacterDataParser.listCharacterIds = function() { return funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(funkin_play_character_CharacterDataParser.characterCache.h)); }; funkin_play_character_CharacterDataParser.getCharPixelIconAsset = function(char) { var icon = char; switch(icon) { case "bf-car":case "bf-christmas":case "bf-holding-gf":case "bf-pixel": icon = "bf"; break; case "dad": icon = "daddy"; break; case "darnell-blazin": icon = "darnell"; break; case "gf-car":case "gf-christmas":case "gf-pixel":case "gf-tankmen": icon = "gf"; break; case "mom":case "mom-car": icon = "mommy"; break; case "monster-christmas": icon = "monster"; break; case "pico-blazin":case "pico-playable":case "pico-speaker": icon = "pico"; break; case "senpai-angry": icon = "senpai"; break; case "tankman":case "tankman-atlas": icon = "tankmen"; break; } var path = funkin_Paths.image("freeplay/icons/" + icon + "pixel"); if(openfl_utils_Assets.exists(path)) { return path; } return null; }; funkin_play_character_CharacterDataParser.clearCharacterCache = function() { if(funkin_play_character_CharacterDataParser.characterCache != null) { funkin_play_character_CharacterDataParser.characterCache.h = Object.create(null); } if(funkin_play_character_CharacterDataParser.characterScriptedClass != null) { funkin_play_character_CharacterDataParser.characterScriptedClass.h = Object.create(null); } }; funkin_play_character_CharacterDataParser.parseCharacterData = function(charId) { var rawJson = funkin_play_character_CharacterDataParser.loadCharacterFile(charId); var charData = funkin_play_character_CharacterDataParser.migrateCharacterData(rawJson,charId); return funkin_play_character_CharacterDataParser.validateCharacterData(charId,charData); }; funkin_play_character_CharacterDataParser.loadCharacterFile = function(charPath) { var charFilePath = funkin_Paths.json("characters/" + charPath); var rawJson = StringTools.trim(openfl_utils_Assets.getText(charFilePath)); while(!StringTools.endsWith(rawJson,"}")) rawJson = HxOverrides.substr(rawJson,0,rawJson.length - 1); return rawJson; }; funkin_play_character_CharacterDataParser.migrateCharacterData = function(rawJson,charId) { try { var charData = JSON.parse(rawJson); return charData; } catch( _g ) { var e = haxe_Exception.caught(_g); haxe_Log.trace(" Error parsing data for character: " + charId,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 374, className : "funkin.play.character.CharacterDataParser", methodName : "migrateCharacterData"}); haxe_Log.trace(" " + Std.string(e),{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 375, className : "funkin.play.character.CharacterDataParser", methodName : "migrateCharacterData"}); return null; } }; funkin_play_character_CharacterDataParser.validateCharacterData = function(id,input) { if(input == null) { haxe_Log.trace("ERROR: Could not parse character data for \"" + id + "\".",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 413, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); return null; } if(input.version == null) { haxe_Log.trace("WARN: No semantic version specified for character data file \"" + id + "\", assuming " + funkin_play_character_CharacterDataParser.CHARACTER_DATA_VERSION,{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 419, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); input.version = funkin_play_character_CharacterDataParser.CHARACTER_DATA_VERSION; } if(!funkin_util_VersionUtil.validateVersionStr(input.version,funkin_play_character_CharacterDataParser.CHARACTER_DATA_VERSION_RULE)) { haxe_Log.trace("ERROR: Could not load character data for \"" + id + "\": bad version (got " + input.version + ", expected " + funkin_play_character_CharacterDataParser.CHARACTER_DATA_VERSION_RULE + ")",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 425, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); return null; } if(input.name == null) { haxe_Log.trace("WARN: Character data for \"" + id + "\" missing name",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 431, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); input.name = funkin_play_character_CharacterDataParser.DEFAULT_NAME; } if(input.renderType == null) { input.renderType = funkin_play_character_CharacterDataParser.DEFAULT_RENDERTYPE; } if(input.assetPath == null) { haxe_Log.trace("ERROR: Could not load character data for \"" + id + "\": missing assetPath",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 442, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); return null; } if(input.offsets == null) { input.offsets = funkin_play_character_CharacterDataParser.DEFAULT_OFFSETS; } if(input.cameraOffsets == null) { input.cameraOffsets = funkin_play_character_CharacterDataParser.DEFAULT_OFFSETS; } if(input.healthIcon == null) { input.healthIcon = { id : null, scale : null, flipX : null, isPixel : null, offsets : null}; } if(input.healthIcon.id == null) { input.healthIcon.id = id; } if(input.healthIcon.scale == null) { input.healthIcon.scale = funkin_play_character_CharacterDataParser.DEFAULT_SCALE; } if(input.healthIcon.flipX == null) { input.healthIcon.flipX = funkin_play_character_CharacterDataParser.DEFAULT_FLIPX; } if(input.healthIcon.offsets == null) { input.healthIcon.offsets = funkin_play_character_CharacterDataParser.DEFAULT_OFFSETS; } if(input.startingAnimation == null) { input.startingAnimation = funkin_play_character_CharacterDataParser.DEFAULT_STARTINGANIM; } if(input.scale == null) { input.scale = funkin_play_character_CharacterDataParser.DEFAULT_SCALE; } if(input.isPixel == null) { input.isPixel = funkin_play_character_CharacterDataParser.DEFAULT_ISPIXEL; } if(input.healthIcon.isPixel == null) { input.healthIcon.isPixel = input.isPixel; } if(input.danceEvery == null) { input.danceEvery = funkin_play_character_CharacterDataParser.DEFAULT_DANCEEVERY; } if(input.singTime == null) { input.singTime = funkin_play_character_CharacterDataParser.DEFAULT_SINGTIME; } if(input.animations == null || input.animations.length == 0) { haxe_Log.trace("ERROR: Could not load character data for \"" + id + "\": missing animations",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 520, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); input.animations = []; } if(input.flipX == null) { input.flipX = funkin_play_character_CharacterDataParser.DEFAULT_FLIPX; } if(input.animations.length == 0 && input.startingAnimation != null) { return null; } var _g = 0; var _g1 = input.animations; while(_g < _g1.length) { var inputAnimation = _g1[_g]; ++_g; if(inputAnimation.name == null) { haxe_Log.trace("ERROR: Could not load character data for \"" + id + "\": missing animation name for prop \"" + input.name + "\"",{ fileName : "source/funkin/play/character/CharacterData.hx", lineNumber : 538, className : "funkin.play.character.CharacterDataParser", methodName : "validateCharacterData"}); return null; } if(inputAnimation.frameRate == null) { inputAnimation.frameRate = funkin_play_character_CharacterDataParser.DEFAULT_FRAMERATE; } if(inputAnimation.offsets == null) { inputAnimation.offsets = funkin_play_character_CharacterDataParser.DEFAULT_OFFSETS; } if(inputAnimation.looped == null) { inputAnimation.looped = funkin_play_character_CharacterDataParser.DEFAULT_LOOP; } if(inputAnimation.flipX == null) { inputAnimation.flipX = funkin_play_character_CharacterDataParser.DEFAULT_FLIPX; } if(inputAnimation.flipY == null) { inputAnimation.flipY = funkin_play_character_CharacterDataParser.DEFAULT_FLIPY; } } return input; }; var funkin_play_character_MultiSparrowCharacter = function(id) { funkin_play_character_BaseCharacter.call(this,id,"multisparrow"); }; $hxClasses["funkin.play.character.MultiSparrowCharacter"] = funkin_play_character_MultiSparrowCharacter; funkin_play_character_MultiSparrowCharacter.__name__ = "funkin.play.character.MultiSparrowCharacter"; funkin_play_character_MultiSparrowCharacter.__super__ = funkin_play_character_BaseCharacter; funkin_play_character_MultiSparrowCharacter.prototype = $extend(funkin_play_character_BaseCharacter.prototype,{ onCreate: function(event) { haxe_Log.trace("Creating Multi-Sparrow character: " + this.characterId,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 29, className : "funkin.play.character.MultiSparrowCharacter", methodName : "onCreate"}); this.buildSprites(); funkin_play_character_BaseCharacter.prototype.onCreate.call(this,event); } ,buildSprites: function() { this.buildSpritesheet(); this.buildAnimations(); if(this._data.isPixel) { this.set_isPixel(true); this.set_antialiasing(false); } else { this.set_isPixel(false); this.set_antialiasing(true); } } ,buildSpritesheet: function() { var assetList = []; var _g = 0; var _g1 = this._data.animations; while(_g < _g1.length) { var anim = _g1[_g]; ++_g; if(anim.assetPath != null && assetList.indexOf(anim.assetPath) == -1) { assetList.push(anim.assetPath); } } var texture = funkin_Paths.getSparrowAtlas(this._data.assetPath,"shared"); if(texture == null) { haxe_Log.trace("Multi-Sparrow atlas could not load PRIMARY texture: " + this._data.assetPath,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 67, className : "funkin.play.character.MultiSparrowCharacter", methodName : "buildSpritesheet"}); } else { haxe_Log.trace("Creating multi-sparrow atlas: " + this._data.assetPath,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 71, className : "funkin.play.character.MultiSparrowCharacter", methodName : "buildSpritesheet"}); texture.parent.set_destroyOnNoUse(false); } var _g = 0; while(_g < assetList.length) { var asset = assetList[_g]; ++_g; var subTexture = funkin_Paths.getSparrowAtlas(asset,"shared"); if(subTexture == null) { haxe_Log.trace("Multi-Sparrow atlas could not load subtexture: " + asset,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 82, className : "funkin.play.character.MultiSparrowCharacter", methodName : "buildSpritesheet"}); } else { haxe_Log.trace("Concatenating multi-sparrow atlas: " + asset,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 86, className : "funkin.play.character.MultiSparrowCharacter", methodName : "buildSpritesheet"}); subTexture.parent.set_destroyOnNoUse(false); } texture.addAtlas(subTexture); } this.set_frames(texture); this.setScale(this._data.scale); } ,buildAnimations: function() { haxe_Log.trace("[MULTISPARROWCHAR] Loading " + this._data.animations.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 99, className : "funkin.play.character.MultiSparrowCharacter", methodName : "buildAnimations"}); var _g = 0; var _g1 = this._data.animations; while(_g < _g1.length) { var anim = _g1[_g]; ++_g; funkin_util_assets_FlxAnimationUtil.addAtlasAnimation(this,anim); if(anim.offsets == null) { this.setAnimationOffsets(anim.name,0,0); } else { this.setAnimationOffsets(anim.name,anim.offsets[0],anim.offsets[1]); } } var animNames = this.animation.getNameList(); haxe_Log.trace("[MULTISPARROWCHAR] Successfully loaded " + animNames.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/MultiSparrowCharacter.hx", lineNumber : 117, className : "funkin.play.character.MultiSparrowCharacter", methodName : "buildAnimations"}); } ,playAnimation: function(name,restart,ignoreOther,reverse) { if(reverse == null) { reverse = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } if(!this.canPlayOtherAnims && !ignoreOther) { return; } funkin_play_character_BaseCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reverse); } ,__class__: funkin_play_character_MultiSparrowCharacter }); var funkin_play_character_PackerCharacter = function(id) { funkin_play_character_BaseCharacter.call(this,id,"packer"); }; $hxClasses["funkin.play.character.PackerCharacter"] = funkin_play_character_PackerCharacter; funkin_play_character_PackerCharacter.__name__ = "funkin.play.character.PackerCharacter"; funkin_play_character_PackerCharacter.__super__ = funkin_play_character_BaseCharacter; funkin_play_character_PackerCharacter.prototype = $extend(funkin_play_character_BaseCharacter.prototype,{ onCreate: function(event) { haxe_Log.trace("Creating Packer character: " + this.characterId,{ fileName : "source/funkin/play/character/PackerCharacter.hx", lineNumber : 21, className : "funkin.play.character.PackerCharacter", methodName : "onCreate"}); this.loadSpritesheet(); this.loadAnimations(); funkin_play_character_BaseCharacter.prototype.onCreate.call(this,event); } ,loadSpritesheet: function() { haxe_Log.trace("[PACKERCHAR] Loading spritesheet " + this._data.assetPath + " for " + this.characterId,{ fileName : "source/funkin/play/character/PackerCharacter.hx", lineNumber : 31, className : "funkin.play.character.PackerCharacter", methodName : "loadSpritesheet"}); var tex = funkin_Paths.getPackerAtlas(this._data.assetPath,"shared"); if(tex == null) { haxe_Log.trace("Could not load Packer sprite: " + this._data.assetPath,{ fileName : "source/funkin/play/character/PackerCharacter.hx", lineNumber : 36, className : "funkin.play.character.PackerCharacter", methodName : "loadSpritesheet"}); return; } this.set_frames(tex); if(this._data.isPixel) { this.set_isPixel(true); this.set_antialiasing(false); } else { this.set_isPixel(false); this.set_antialiasing(true); } this.setScale(this._data.scale); } ,loadAnimations: function() { haxe_Log.trace("[PACKERCHAR] Loading " + this._data.animations.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/PackerCharacter.hx", lineNumber : 58, className : "funkin.play.character.PackerCharacter", methodName : "loadAnimations"}); funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(this,this._data.animations); var _g = 0; var _g1 = this._data.animations; while(_g < _g1.length) { var anim = _g1[_g]; ++_g; if(anim.offsets == null) { this.setAnimationOffsets(anim.name,0,0); } else { this.setAnimationOffsets(anim.name,anim.offsets[0],anim.offsets[1]); } } var animNames = this.animation.getNameList(); haxe_Log.trace("[PACKERCHAR] Successfully loaded " + animNames.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/PackerCharacter.hx", lineNumber : 75, className : "funkin.play.character.PackerCharacter", methodName : "loadAnimations"}); } ,__class__: funkin_play_character_PackerCharacter }); var funkin_play_character_ScriptedBaseCharacter = function(id,renderType) { funkin_play_character_BaseCharacter.call(this,id,renderType); }; $hxClasses["funkin.play.character.ScriptedBaseCharacter"] = funkin_play_character_ScriptedBaseCharacter; funkin_play_character_ScriptedBaseCharacter.__name__ = "funkin.play.character.ScriptedBaseCharacter"; funkin_play_character_ScriptedBaseCharacter.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_character_ScriptedBaseCharacter.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.character.BaseCharacter"); }; funkin_play_character_ScriptedBaseCharacter.init = function(clsName,id,renderType) { var value = $hxClasses["funkin.play.character.ScriptedBaseCharacter"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.character.BaseCharacter"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id,renderType]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.character.ScriptedBaseCharacter" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_character_ScriptedBaseCharacter.__super__ = funkin_play_character_BaseCharacter; funkin_play_character_ScriptedBaseCharacter.prototype = $extend(funkin_play_character_BaseCharacter.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedBaseCharacter"; var superName = "BaseCharacter"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_x.call(this,value); } } ,set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_cornerPosition.call(this,value); } } ,set_characterType: function(value) { var fieldName = "set_characterType"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_characterType.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_animOffsets.call(this,value); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_character_BaseCharacter.prototype.setScale.call(this,scale); } } ,resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[resetCamera]); } else { funkin_play_character_BaseCharacter.prototype.resetCharacter.call(this,resetCamera); } } ,resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.resetCameraFocusPoint.call(this); } } ,playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[dir,miss,suffix]); } else { funkin_play_character_BaseCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } } ,playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,ignoreOther,reversed]); } else { funkin_play_character_BaseCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onUpdate.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onNoteMiss.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onNoteGhostMiss.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onCreate.call(this,event); } } ,justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_BaseCharacter.prototype.justPressedNote.call(this,player); } } ,isSinging: function() { var fieldName = "isSinging"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.isSinging.call(this); } } ,isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_BaseCharacter.prototype.isHoldingNote.call(this,player); } } ,initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; if(this._asc != null) { this._asc.callFunction(fieldName,[isOpponent]); } else { funkin_play_character_BaseCharacter.prototype.initHealthIcon.call(this,isOpponent); } } ,get_feetPosition: function() { var fieldName = "get_feetPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_feetPosition.call(this); } } ,get_cornerPosition: function() { var fieldName = "get_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_cornerPosition.call(this); } } ,get_characterOrigin: function() { var fieldName = "get_characterOrigin"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_characterOrigin.call(this); } } ,get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_characterCameraOffsets.call(this); } } ,getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.getDeathPreTransitionDelay.call(this); } } ,getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.getDeathCameraZoom.call(this); } } ,getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.getDeathCameraOffsets.call(this); } } ,getDataFlipX: function() { var fieldName = "getDataFlipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.getDataFlipX.call(this); } } ,getBaseScale: function() { var fieldName = "getBaseScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.getBaseScale.call(this); } } ,findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[prefix]); } else { return funkin_play_character_BaseCharacter.prototype.findCountAnimations.call(this,prefix); } } ,dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_BaseCharacter.prototype.dance.call(this,force); } } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_character_BaseCharacter.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_character_BaseCharacter.prototype.set_x.call(this,value); } ,__super_set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; return funkin_play_character_BaseCharacter.prototype.set_cornerPosition.call(this,value); } ,__super_set_characterType: function(value) { var fieldName = "set_characterType"; return funkin_play_character_BaseCharacter.prototype.set_characterType.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_character_BaseCharacter.prototype.set_animOffsets.call(this,value); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_character_BaseCharacter.prototype.setScale.call(this,scale); } ,__super_resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; funkin_play_character_BaseCharacter.prototype.resetCharacter.call(this,resetCamera); } ,__super_resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; funkin_play_character_BaseCharacter.prototype.resetCameraFocusPoint.call(this); } ,__super_playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; funkin_play_character_BaseCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } ,__super_playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_character_BaseCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_character_BaseCharacter.prototype.onUpdate.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_character_BaseCharacter.prototype.onNoteMiss.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_character_BaseCharacter.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_character_BaseCharacter.prototype.onNoteGhostMiss.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_character_BaseCharacter.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_character_BaseCharacter.prototype.onCreate.call(this,event); } ,__super_justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; return funkin_play_character_BaseCharacter.prototype.justPressedNote.call(this,player); } ,__super_isSinging: function() { var fieldName = "isSinging"; return funkin_play_character_BaseCharacter.prototype.isSinging.call(this); } ,__super_isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; return funkin_play_character_BaseCharacter.prototype.isHoldingNote.call(this,player); } ,__super_initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; funkin_play_character_BaseCharacter.prototype.initHealthIcon.call(this,isOpponent); } ,__super_get_feetPosition: function() { var fieldName = "get_feetPosition"; return funkin_play_character_BaseCharacter.prototype.get_feetPosition.call(this); } ,__super_get_cornerPosition: function() { var fieldName = "get_cornerPosition"; return funkin_play_character_BaseCharacter.prototype.get_cornerPosition.call(this); } ,__super_get_characterOrigin: function() { var fieldName = "get_characterOrigin"; return funkin_play_character_BaseCharacter.prototype.get_characterOrigin.call(this); } ,__super_get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; return funkin_play_character_BaseCharacter.prototype.get_characterCameraOffsets.call(this); } ,__super_getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; return funkin_play_character_BaseCharacter.prototype.getDeathPreTransitionDelay.call(this); } ,__super_getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; return funkin_play_character_BaseCharacter.prototype.getDeathCameraZoom.call(this); } ,__super_getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; return funkin_play_character_BaseCharacter.prototype.getDeathCameraOffsets.call(this); } ,__super_getDataFlipX: function() { var fieldName = "getDataFlipX"; return funkin_play_character_BaseCharacter.prototype.getDataFlipX.call(this); } ,__super_getBaseScale: function() { var fieldName = "getBaseScale"; return funkin_play_character_BaseCharacter.prototype.getBaseScale.call(this); } ,__super_findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; return funkin_play_character_BaseCharacter.prototype.findCountAnimations.call(this,prefix); } ,__super_dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; funkin_play_character_BaseCharacter.prototype.dance.call(this,force); } ,update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.update_shouldAlternate.call(this); } } ,set_isPixel: function(value) { var fieldName = "set_isPixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_isPixel.call(this,value); } } ,set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_idleSuffix.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_globalOffsets.call(this,value); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_character_BaseCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,resetPosition: function() { var fieldName = "resetPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.resetPosition.call(this); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onSongEnd.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onPause.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onNoteIncoming.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onGameOver.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onBeatHit.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_character_BaseCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_BaseCharacter.prototype.onAnimationFinished.call(this,name); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.isAnimationFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_character_BaseCharacter.prototype.hasAnimation.call(this,id); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.getCurrentAnimation.call(this); } } ,forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,duration]); } else { funkin_play_character_BaseCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } } ,correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name,fallback]); } else { return funkin_play_character_BaseCharacter.prototype.correctAnimationName.call(this,name,fallback); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_BaseCharacter.prototype.applyAnimationOffsets.call(this,name); } } ,__super_update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; funkin_play_character_BaseCharacter.prototype.update_shouldAlternate.call(this); } ,__super_set_isPixel: function(value) { var fieldName = "set_isPixel"; return funkin_play_character_BaseCharacter.prototype.set_isPixel.call(this,value); } ,__super_set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; return funkin_play_character_BaseCharacter.prototype.set_idleSuffix.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_character_BaseCharacter.prototype.set_globalOffsets.call(this,value); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_character_BaseCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_resetPosition: function() { var fieldName = "resetPosition"; funkin_play_character_BaseCharacter.prototype.resetPosition.call(this); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_character_BaseCharacter.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_character_BaseCharacter.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_character_BaseCharacter.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_character_BaseCharacter.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_character_BaseCharacter.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_character_BaseCharacter.prototype.onSongEnd.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_character_BaseCharacter.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_character_BaseCharacter.prototype.onPause.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_character_BaseCharacter.prototype.onNoteIncoming.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_character_BaseCharacter.prototype.onGameOver.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_character_BaseCharacter.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_character_BaseCharacter.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_character_BaseCharacter.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_character_BaseCharacter.prototype.onBeatHit.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_character_BaseCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; funkin_play_character_BaseCharacter.prototype.onAnimationFinished.call(this,name); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_character_BaseCharacter.prototype.isAnimationFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_character_BaseCharacter.prototype.hasAnimation.call(this,id); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_character_BaseCharacter.prototype.getCurrentAnimation.call(this); } ,__super_forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; funkin_play_character_BaseCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } ,__super_correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; return funkin_play_character_BaseCharacter.prototype.correctAnimationName.call(this,name,fallback); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_character_BaseCharacter.prototype.applyAnimationOffsets.call(this,name); } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onScriptEvent.call(this,event); } } ,onAdd: function(event) { var fieldName = "onAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_BaseCharacter.prototype.onAdd.call(this,event); } } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_character_BaseCharacter.prototype.onScriptEvent.call(this,event); } ,__super_onAdd: function(event) { var fieldName = "onAdd"; funkin_play_character_BaseCharacter.prototype.onAdd.call(this,event); } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_play_character_BaseCharacter.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_BaseCharacter.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_BaseCharacter.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_BaseCharacter.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_BaseCharacter.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_BaseCharacter.prototype.loadBitmapData.call(this,input); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_play_character_BaseCharacter.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_play_character_BaseCharacter.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_play_character_BaseCharacter.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_play_character_BaseCharacter.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_play_character_BaseCharacter.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_play_character_BaseCharacter.prototype.loadBitmapData.call(this,input); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_character_BaseCharacter.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_character_BaseCharacter.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_BaseCharacter.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_BaseCharacter.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_character_BaseCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_character_BaseCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_character_BaseCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_play_character_BaseCharacter.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_play_character_BaseCharacter.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_character_BaseCharacter.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_play_character_BaseCharacter.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_play_character_BaseCharacter.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_BaseCharacter.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_play_character_BaseCharacter.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_BaseCharacter.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_character_BaseCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_character_BaseCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_character_BaseCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_play_character_BaseCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_character_BaseCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_character_BaseCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_character_BaseCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_character_BaseCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_play_character_BaseCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_BaseCharacter.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_BaseCharacter.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_BaseCharacter.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_character_BaseCharacter.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_character_BaseCharacter.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_character_BaseCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_character_BaseCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_BaseCharacter.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_BaseCharacter.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_character_BaseCharacter.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_BaseCharacter.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.draw.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_character_BaseCharacter.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_BaseCharacter.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_character_BaseCharacter.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_character_BaseCharacter.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_play_character_BaseCharacter.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_character_BaseCharacter.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_character_BaseCharacter.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_character_BaseCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_character_BaseCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_character_BaseCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_play_character_BaseCharacter.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_character_BaseCharacter.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_play_character_BaseCharacter.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_character_BaseCharacter.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_character_BaseCharacter.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_character_BaseCharacter.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_character_BaseCharacter.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_character_BaseCharacter.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_play_character_BaseCharacter.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_play_character_BaseCharacter.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_character_BaseCharacter.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_character_BaseCharacter.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_character_BaseCharacter.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_character_BaseCharacter.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_play_character_BaseCharacter.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_character_BaseCharacter.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_character_BaseCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_character_BaseCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_play_character_BaseCharacter.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_character_BaseCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_character_BaseCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_character_BaseCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_character_BaseCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_character_BaseCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_character_BaseCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_play_character_BaseCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_character_BaseCharacter.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_character_BaseCharacter.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_character_BaseCharacter.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_character_BaseCharacter.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_character_BaseCharacter.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_character_BaseCharacter.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_character_BaseCharacter.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_character_BaseCharacter.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_character_BaseCharacter.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_character_BaseCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_character_BaseCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_character_BaseCharacter.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_character_BaseCharacter.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_character_BaseCharacter.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_character_BaseCharacter.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_character_BaseCharacter.prototype.draw.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_character_BaseCharacter.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_character_BaseCharacter.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_play_character_BaseCharacter.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_BaseCharacter.prototype.updateMotion.call(this,elapsed); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_character_BaseCharacter.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_BaseCharacter.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_BaseCharacter.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_BaseCharacter.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_BaseCharacter.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_character_BaseCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_BaseCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_BaseCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_BaseCharacter.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_character_BaseCharacter.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_character_BaseCharacter.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_character_BaseCharacter.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_BaseCharacter.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_BaseCharacter.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_BaseCharacter.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_character_BaseCharacter.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_character_BaseCharacter.prototype.toString.call(this); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_character_BaseCharacter.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_character_BaseCharacter.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_character_BaseCharacter.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_character_BaseCharacter.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_character_BaseCharacter.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_character_BaseCharacter.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_character_BaseCharacter.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_character_BaseCharacter.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_character_BaseCharacter.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_character_BaseCharacter.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_character_BaseCharacter.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_character_BaseCharacter.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_character_BaseCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_character_BaseCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_character_BaseCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_character_BaseCharacter.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_character_BaseCharacter.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_character_BaseCharacter.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_character_BaseCharacter.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_character_BaseCharacter.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_character_BaseCharacter.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_character_BaseCharacter.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_character_BaseCharacter.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_character_BaseCharacter.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_character_BaseCharacter.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_BaseCharacter.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_BaseCharacter.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_BaseCharacter.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_character_BaseCharacter.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_character_BaseCharacter.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_character_BaseCharacter.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_character_BaseCharacter.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_character_BaseCharacter.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_character_BaseCharacter.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_character_BaseCharacter.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_character_BaseCharacter.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_character_BaseCharacter.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_character_BaseCharacter.prototype.get_camera.call(this); } ,__class__: funkin_play_character_ScriptedBaseCharacter }); var funkin_play_character_SparrowCharacter = function(id) { funkin_play_character_BaseCharacter.call(this,id,"sparrow"); }; $hxClasses["funkin.play.character.SparrowCharacter"] = funkin_play_character_SparrowCharacter; funkin_play_character_SparrowCharacter.__name__ = "funkin.play.character.SparrowCharacter"; funkin_play_character_SparrowCharacter.__super__ = funkin_play_character_BaseCharacter; funkin_play_character_SparrowCharacter.prototype = $extend(funkin_play_character_BaseCharacter.prototype,{ onCreate: function(event) { haxe_Log.trace("Creating Sparrow character: " + this.characterId,{ fileName : "source/funkin/play/character/SparrowCharacter.hx", lineNumber : 24, className : "funkin.play.character.SparrowCharacter", methodName : "onCreate"}); this.loadSpritesheet(); this.loadAnimations(); funkin_play_character_BaseCharacter.prototype.onCreate.call(this,event); } ,loadSpritesheet: function() { haxe_Log.trace("[SPARROWCHAR] Loading spritesheet " + this._data.assetPath + " for " + this.characterId,{ fileName : "source/funkin/play/character/SparrowCharacter.hx", lineNumber : 34, className : "funkin.play.character.SparrowCharacter", methodName : "loadSpritesheet"}); var tex = funkin_Paths.getSparrowAtlas(this._data.assetPath,"shared"); if(tex == null) { haxe_Log.trace("Could not load Sparrow sprite: " + this._data.assetPath,{ fileName : "source/funkin/play/character/SparrowCharacter.hx", lineNumber : 39, className : "funkin.play.character.SparrowCharacter", methodName : "loadSpritesheet"}); return; } this.set_frames(tex); if(this._data.isPixel) { this.set_isPixel(true); this.set_antialiasing(false); } else { this.set_isPixel(false); this.set_antialiasing(true); } this.setScale(this._data.scale); } ,loadAnimations: function() { haxe_Log.trace("[SPARROWCHAR] Loading " + this._data.animations.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/SparrowCharacter.hx", lineNumber : 61, className : "funkin.play.character.SparrowCharacter", methodName : "loadAnimations"}); funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(this,this._data.animations); var _g = 0; var _g1 = this._data.animations; while(_g < _g1.length) { var anim = _g1[_g]; ++_g; if(anim.offsets == null) { this.setAnimationOffsets(anim.name,0,0); } else { this.setAnimationOffsets(anim.name,anim.offsets[0],anim.offsets[1]); } } var animNames = this.animation.getNameList(); haxe_Log.trace("[SPARROWCHAR] Successfully loaded " + animNames.length + " animations for " + this.characterId,{ fileName : "source/funkin/play/character/SparrowCharacter.hx", lineNumber : 78, className : "funkin.play.character.SparrowCharacter", methodName : "loadAnimations"}); } ,__class__: funkin_play_character_SparrowCharacter }); var funkin_play_character_ScriptedSparrowCharacter = function(id) { funkin_play_character_SparrowCharacter.call(this,id); }; $hxClasses["funkin.play.character.ScriptedSparrowCharacter"] = funkin_play_character_ScriptedSparrowCharacter; funkin_play_character_ScriptedSparrowCharacter.__name__ = "funkin.play.character.ScriptedSparrowCharacter"; funkin_play_character_ScriptedSparrowCharacter.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_character_ScriptedSparrowCharacter.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.character.SparrowCharacter"); }; funkin_play_character_ScriptedSparrowCharacter.init = function(clsName,id) { var value = $hxClasses["funkin.play.character.ScriptedSparrowCharacter"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.character.SparrowCharacter"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.character.ScriptedSparrowCharacter" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_character_ScriptedSparrowCharacter.__super__ = funkin_play_character_SparrowCharacter; funkin_play_character_ScriptedSparrowCharacter.prototype = $extend(funkin_play_character_SparrowCharacter.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedSparrowCharacter"; var superName = "SparrowCharacter"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onCreate.call(this,event); } } ,loadSpritesheet: function() { var fieldName = "loadSpritesheet"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.loadSpritesheet.call(this); } } ,loadAnimations: function() { var fieldName = "loadAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.loadAnimations.call(this); } } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_character_SparrowCharacter.prototype.onCreate.call(this,event); } ,__super_loadSpritesheet: function() { var fieldName = "loadSpritesheet"; funkin_play_character_SparrowCharacter.prototype.loadSpritesheet.call(this); } ,__super_loadAnimations: function() { var fieldName = "loadAnimations"; funkin_play_character_SparrowCharacter.prototype.loadAnimations.call(this); } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_x.call(this,value); } } ,set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_cornerPosition.call(this,value); } } ,set_characterType: function(value) { var fieldName = "set_characterType"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_characterType.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_animOffsets.call(this,value); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_character_SparrowCharacter.prototype.setScale.call(this,scale); } } ,resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[resetCamera]); } else { funkin_play_character_SparrowCharacter.prototype.resetCharacter.call(this,resetCamera); } } ,resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.resetCameraFocusPoint.call(this); } } ,playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[dir,miss,suffix]); } else { funkin_play_character_SparrowCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } } ,playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,ignoreOther,reversed]); } else { funkin_play_character_SparrowCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onUpdate.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onNoteMiss.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onNoteGhostMiss.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onDestroy.call(this,event); } } ,justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_SparrowCharacter.prototype.justPressedNote.call(this,player); } } ,isSinging: function() { var fieldName = "isSinging"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.isSinging.call(this); } } ,isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_SparrowCharacter.prototype.isHoldingNote.call(this,player); } } ,initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; if(this._asc != null) { this._asc.callFunction(fieldName,[isOpponent]); } else { funkin_play_character_SparrowCharacter.prototype.initHealthIcon.call(this,isOpponent); } } ,get_feetPosition: function() { var fieldName = "get_feetPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_feetPosition.call(this); } } ,get_cornerPosition: function() { var fieldName = "get_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_cornerPosition.call(this); } } ,get_characterOrigin: function() { var fieldName = "get_characterOrigin"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_characterOrigin.call(this); } } ,get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_characterCameraOffsets.call(this); } } ,getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.getDeathPreTransitionDelay.call(this); } } ,getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.getDeathCameraZoom.call(this); } } ,getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.getDeathCameraOffsets.call(this); } } ,getDataFlipX: function() { var fieldName = "getDataFlipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.getDataFlipX.call(this); } } ,getBaseScale: function() { var fieldName = "getBaseScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.getBaseScale.call(this); } } ,findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[prefix]); } else { return funkin_play_character_SparrowCharacter.prototype.findCountAnimations.call(this,prefix); } } ,dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_SparrowCharacter.prototype.dance.call(this,force); } } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_character_SparrowCharacter.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_character_SparrowCharacter.prototype.set_x.call(this,value); } ,__super_set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; return funkin_play_character_SparrowCharacter.prototype.set_cornerPosition.call(this,value); } ,__super_set_characterType: function(value) { var fieldName = "set_characterType"; return funkin_play_character_SparrowCharacter.prototype.set_characterType.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_character_SparrowCharacter.prototype.set_animOffsets.call(this,value); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_character_SparrowCharacter.prototype.setScale.call(this,scale); } ,__super_resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; funkin_play_character_SparrowCharacter.prototype.resetCharacter.call(this,resetCamera); } ,__super_resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; funkin_play_character_SparrowCharacter.prototype.resetCameraFocusPoint.call(this); } ,__super_playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; funkin_play_character_SparrowCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } ,__super_playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_character_SparrowCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_character_SparrowCharacter.prototype.onUpdate.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_character_SparrowCharacter.prototype.onNoteMiss.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_character_SparrowCharacter.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_character_SparrowCharacter.prototype.onNoteGhostMiss.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_character_SparrowCharacter.prototype.onDestroy.call(this,event); } ,__super_justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; return funkin_play_character_SparrowCharacter.prototype.justPressedNote.call(this,player); } ,__super_isSinging: function() { var fieldName = "isSinging"; return funkin_play_character_SparrowCharacter.prototype.isSinging.call(this); } ,__super_isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; return funkin_play_character_SparrowCharacter.prototype.isHoldingNote.call(this,player); } ,__super_initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; funkin_play_character_SparrowCharacter.prototype.initHealthIcon.call(this,isOpponent); } ,__super_get_feetPosition: function() { var fieldName = "get_feetPosition"; return funkin_play_character_SparrowCharacter.prototype.get_feetPosition.call(this); } ,__super_get_cornerPosition: function() { var fieldName = "get_cornerPosition"; return funkin_play_character_SparrowCharacter.prototype.get_cornerPosition.call(this); } ,__super_get_characterOrigin: function() { var fieldName = "get_characterOrigin"; return funkin_play_character_SparrowCharacter.prototype.get_characterOrigin.call(this); } ,__super_get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; return funkin_play_character_SparrowCharacter.prototype.get_characterCameraOffsets.call(this); } ,__super_getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; return funkin_play_character_SparrowCharacter.prototype.getDeathPreTransitionDelay.call(this); } ,__super_getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; return funkin_play_character_SparrowCharacter.prototype.getDeathCameraZoom.call(this); } ,__super_getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; return funkin_play_character_SparrowCharacter.prototype.getDeathCameraOffsets.call(this); } ,__super_getDataFlipX: function() { var fieldName = "getDataFlipX"; return funkin_play_character_SparrowCharacter.prototype.getDataFlipX.call(this); } ,__super_getBaseScale: function() { var fieldName = "getBaseScale"; return funkin_play_character_SparrowCharacter.prototype.getBaseScale.call(this); } ,__super_findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; return funkin_play_character_SparrowCharacter.prototype.findCountAnimations.call(this,prefix); } ,__super_dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; funkin_play_character_SparrowCharacter.prototype.dance.call(this,force); } ,update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.update_shouldAlternate.call(this); } } ,set_isPixel: function(value) { var fieldName = "set_isPixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_isPixel.call(this,value); } } ,set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_idleSuffix.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_globalOffsets.call(this,value); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_character_SparrowCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,resetPosition: function() { var fieldName = "resetPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.resetPosition.call(this); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onSongEnd.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onPause.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onNoteIncoming.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onGameOver.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onBeatHit.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_character_SparrowCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_SparrowCharacter.prototype.onAnimationFinished.call(this,name); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.isAnimationFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_character_SparrowCharacter.prototype.hasAnimation.call(this,id); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.getCurrentAnimation.call(this); } } ,forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,duration]); } else { funkin_play_character_SparrowCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } } ,correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name,fallback]); } else { return funkin_play_character_SparrowCharacter.prototype.correctAnimationName.call(this,name,fallback); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_SparrowCharacter.prototype.applyAnimationOffsets.call(this,name); } } ,__super_update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; funkin_play_character_SparrowCharacter.prototype.update_shouldAlternate.call(this); } ,__super_set_isPixel: function(value) { var fieldName = "set_isPixel"; return funkin_play_character_SparrowCharacter.prototype.set_isPixel.call(this,value); } ,__super_set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; return funkin_play_character_SparrowCharacter.prototype.set_idleSuffix.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_character_SparrowCharacter.prototype.set_globalOffsets.call(this,value); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_character_SparrowCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_resetPosition: function() { var fieldName = "resetPosition"; funkin_play_character_SparrowCharacter.prototype.resetPosition.call(this); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_character_SparrowCharacter.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_character_SparrowCharacter.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_character_SparrowCharacter.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_character_SparrowCharacter.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_character_SparrowCharacter.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_character_SparrowCharacter.prototype.onSongEnd.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_character_SparrowCharacter.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_character_SparrowCharacter.prototype.onPause.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_character_SparrowCharacter.prototype.onNoteIncoming.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_character_SparrowCharacter.prototype.onGameOver.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_character_SparrowCharacter.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_character_SparrowCharacter.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_character_SparrowCharacter.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_character_SparrowCharacter.prototype.onBeatHit.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_character_SparrowCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; funkin_play_character_SparrowCharacter.prototype.onAnimationFinished.call(this,name); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_character_SparrowCharacter.prototype.isAnimationFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_character_SparrowCharacter.prototype.hasAnimation.call(this,id); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_character_SparrowCharacter.prototype.getCurrentAnimation.call(this); } ,__super_forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; funkin_play_character_SparrowCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } ,__super_correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; return funkin_play_character_SparrowCharacter.prototype.correctAnimationName.call(this,name,fallback); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_character_SparrowCharacter.prototype.applyAnimationOffsets.call(this,name); } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onScriptEvent.call(this,event); } } ,onAdd: function(event) { var fieldName = "onAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_SparrowCharacter.prototype.onAdd.call(this,event); } } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_character_SparrowCharacter.prototype.onScriptEvent.call(this,event); } ,__super_onAdd: function(event) { var fieldName = "onAdd"; funkin_play_character_SparrowCharacter.prototype.onAdd.call(this,event); } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_play_character_SparrowCharacter.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_SparrowCharacter.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_SparrowCharacter.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_SparrowCharacter.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_SparrowCharacter.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_SparrowCharacter.prototype.loadBitmapData.call(this,input); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_play_character_SparrowCharacter.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_play_character_SparrowCharacter.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_play_character_SparrowCharacter.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_play_character_SparrowCharacter.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_play_character_SparrowCharacter.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_play_character_SparrowCharacter.prototype.loadBitmapData.call(this,input); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_character_SparrowCharacter.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_character_SparrowCharacter.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_SparrowCharacter.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_SparrowCharacter.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_character_SparrowCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_character_SparrowCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_character_SparrowCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_play_character_SparrowCharacter.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_play_character_SparrowCharacter.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_character_SparrowCharacter.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_play_character_SparrowCharacter.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_play_character_SparrowCharacter.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_SparrowCharacter.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_play_character_SparrowCharacter.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_SparrowCharacter.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_character_SparrowCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_character_SparrowCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_character_SparrowCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_character_SparrowCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_character_SparrowCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_character_SparrowCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_character_SparrowCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_play_character_SparrowCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_SparrowCharacter.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_SparrowCharacter.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_SparrowCharacter.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_character_SparrowCharacter.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_SparrowCharacter.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_SparrowCharacter.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_character_SparrowCharacter.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_SparrowCharacter.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.draw.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_character_SparrowCharacter.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_SparrowCharacter.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_character_SparrowCharacter.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_character_SparrowCharacter.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_play_character_SparrowCharacter.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_character_SparrowCharacter.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_character_SparrowCharacter.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_character_SparrowCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_character_SparrowCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_character_SparrowCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_play_character_SparrowCharacter.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_character_SparrowCharacter.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_play_character_SparrowCharacter.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_character_SparrowCharacter.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_character_SparrowCharacter.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_character_SparrowCharacter.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_character_SparrowCharacter.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_character_SparrowCharacter.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_play_character_SparrowCharacter.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_play_character_SparrowCharacter.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_character_SparrowCharacter.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_character_SparrowCharacter.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_character_SparrowCharacter.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_character_SparrowCharacter.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_play_character_SparrowCharacter.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_character_SparrowCharacter.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_character_SparrowCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_character_SparrowCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_play_character_SparrowCharacter.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_character_SparrowCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_character_SparrowCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_character_SparrowCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_character_SparrowCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_character_SparrowCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_character_SparrowCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_play_character_SparrowCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_character_SparrowCharacter.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_character_SparrowCharacter.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_character_SparrowCharacter.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_character_SparrowCharacter.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_character_SparrowCharacter.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_character_SparrowCharacter.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_character_SparrowCharacter.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_character_SparrowCharacter.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_character_SparrowCharacter.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_character_SparrowCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_character_SparrowCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_character_SparrowCharacter.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_character_SparrowCharacter.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_character_SparrowCharacter.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_character_SparrowCharacter.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_character_SparrowCharacter.prototype.draw.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_character_SparrowCharacter.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_character_SparrowCharacter.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_play_character_SparrowCharacter.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_SparrowCharacter.prototype.updateMotion.call(this,elapsed); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_character_SparrowCharacter.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_SparrowCharacter.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_SparrowCharacter.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_SparrowCharacter.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_SparrowCharacter.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_character_SparrowCharacter.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_character_SparrowCharacter.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_character_SparrowCharacter.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_SparrowCharacter.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_SparrowCharacter.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_SparrowCharacter.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_character_SparrowCharacter.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_character_SparrowCharacter.prototype.toString.call(this); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_character_SparrowCharacter.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_character_SparrowCharacter.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_character_SparrowCharacter.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_character_SparrowCharacter.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_character_SparrowCharacter.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_character_SparrowCharacter.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_character_SparrowCharacter.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_character_SparrowCharacter.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_character_SparrowCharacter.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_character_SparrowCharacter.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_character_SparrowCharacter.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_character_SparrowCharacter.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_character_SparrowCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_character_SparrowCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_character_SparrowCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_character_SparrowCharacter.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_character_SparrowCharacter.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_character_SparrowCharacter.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_character_SparrowCharacter.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_character_SparrowCharacter.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_character_SparrowCharacter.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_character_SparrowCharacter.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_character_SparrowCharacter.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_character_SparrowCharacter.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_character_SparrowCharacter.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_SparrowCharacter.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_SparrowCharacter.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_SparrowCharacter.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_character_SparrowCharacter.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_character_SparrowCharacter.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_character_SparrowCharacter.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_character_SparrowCharacter.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_character_SparrowCharacter.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_character_SparrowCharacter.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_character_SparrowCharacter.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_character_SparrowCharacter.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_character_SparrowCharacter.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_character_SparrowCharacter.prototype.get_camera.call(this); } ,__class__: funkin_play_character_ScriptedSparrowCharacter }); var funkin_play_character_ScriptedMultiSparrowCharacter = function(id) { funkin_play_character_MultiSparrowCharacter.call(this,id); }; $hxClasses["funkin.play.character.ScriptedMultiSparrowCharacter"] = funkin_play_character_ScriptedMultiSparrowCharacter; funkin_play_character_ScriptedMultiSparrowCharacter.__name__ = "funkin.play.character.ScriptedMultiSparrowCharacter"; funkin_play_character_ScriptedMultiSparrowCharacter.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_character_ScriptedMultiSparrowCharacter.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.character.MultiSparrowCharacter"); }; funkin_play_character_ScriptedMultiSparrowCharacter.init = function(clsName,id) { var value = $hxClasses["funkin.play.character.ScriptedMultiSparrowCharacter"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.character.MultiSparrowCharacter"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.character.ScriptedMultiSparrowCharacter" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_character_ScriptedMultiSparrowCharacter.__super__ = funkin_play_character_MultiSparrowCharacter; funkin_play_character_ScriptedMultiSparrowCharacter.prototype = $extend(funkin_play_character_MultiSparrowCharacter.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedMultiSparrowCharacter"; var superName = "MultiSparrowCharacter"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,playAnimation: function(name,restart,ignoreOther,reverse) { if(reverse == null) { reverse = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,ignoreOther,reverse]); } else { funkin_play_character_MultiSparrowCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reverse); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onCreate.call(this,event); } } ,buildSpritesheet: function() { var fieldName = "buildSpritesheet"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.buildSpritesheet.call(this); } } ,buildSprites: function() { var fieldName = "buildSprites"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.buildSprites.call(this); } } ,buildAnimations: function() { var fieldName = "buildAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.buildAnimations.call(this); } } ,__super_playAnimation: function(name,restart,ignoreOther,reverse) { if(reverse == null) { reverse = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_character_MultiSparrowCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reverse); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_character_MultiSparrowCharacter.prototype.onCreate.call(this,event); } ,__super_buildSpritesheet: function() { var fieldName = "buildSpritesheet"; funkin_play_character_MultiSparrowCharacter.prototype.buildSpritesheet.call(this); } ,__super_buildSprites: function() { var fieldName = "buildSprites"; funkin_play_character_MultiSparrowCharacter.prototype.buildSprites.call(this); } ,__super_buildAnimations: function() { var fieldName = "buildAnimations"; funkin_play_character_MultiSparrowCharacter.prototype.buildAnimations.call(this); } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_x.call(this,value); } } ,set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_cornerPosition.call(this,value); } } ,set_characterType: function(value) { var fieldName = "set_characterType"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_characterType.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_animOffsets.call(this,value); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_character_MultiSparrowCharacter.prototype.setScale.call(this,scale); } } ,resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[resetCamera]); } else { funkin_play_character_MultiSparrowCharacter.prototype.resetCharacter.call(this,resetCamera); } } ,resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.resetCameraFocusPoint.call(this); } } ,playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[dir,miss,suffix]); } else { funkin_play_character_MultiSparrowCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onUpdate.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onNoteMiss.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onNoteGhostMiss.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onDestroy.call(this,event); } } ,justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.justPressedNote.call(this,player); } } ,isSinging: function() { var fieldName = "isSinging"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isSinging.call(this); } } ,isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isHoldingNote.call(this,player); } } ,initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; if(this._asc != null) { this._asc.callFunction(fieldName,[isOpponent]); } else { funkin_play_character_MultiSparrowCharacter.prototype.initHealthIcon.call(this,isOpponent); } } ,get_feetPosition: function() { var fieldName = "get_feetPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_feetPosition.call(this); } } ,get_cornerPosition: function() { var fieldName = "get_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_cornerPosition.call(this); } } ,get_characterOrigin: function() { var fieldName = "get_characterOrigin"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_characterOrigin.call(this); } } ,get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_characterCameraOffsets.call(this); } } ,getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getDeathPreTransitionDelay.call(this); } } ,getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getDeathCameraZoom.call(this); } } ,getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getDeathCameraOffsets.call(this); } } ,getDataFlipX: function() { var fieldName = "getDataFlipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getDataFlipX.call(this); } } ,getBaseScale: function() { var fieldName = "getBaseScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getBaseScale.call(this); } } ,findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[prefix]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.findCountAnimations.call(this,prefix); } } ,dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_MultiSparrowCharacter.prototype.dance.call(this,force); } } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_character_MultiSparrowCharacter.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_character_MultiSparrowCharacter.prototype.set_x.call(this,value); } ,__super_set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; return funkin_play_character_MultiSparrowCharacter.prototype.set_cornerPosition.call(this,value); } ,__super_set_characterType: function(value) { var fieldName = "set_characterType"; return funkin_play_character_MultiSparrowCharacter.prototype.set_characterType.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_character_MultiSparrowCharacter.prototype.set_animOffsets.call(this,value); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_character_MultiSparrowCharacter.prototype.setScale.call(this,scale); } ,__super_resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; funkin_play_character_MultiSparrowCharacter.prototype.resetCharacter.call(this,resetCamera); } ,__super_resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; funkin_play_character_MultiSparrowCharacter.prototype.resetCameraFocusPoint.call(this); } ,__super_playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; funkin_play_character_MultiSparrowCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_character_MultiSparrowCharacter.prototype.onUpdate.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_character_MultiSparrowCharacter.prototype.onNoteMiss.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_character_MultiSparrowCharacter.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_character_MultiSparrowCharacter.prototype.onNoteGhostMiss.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_character_MultiSparrowCharacter.prototype.onDestroy.call(this,event); } ,__super_justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; return funkin_play_character_MultiSparrowCharacter.prototype.justPressedNote.call(this,player); } ,__super_isSinging: function() { var fieldName = "isSinging"; return funkin_play_character_MultiSparrowCharacter.prototype.isSinging.call(this); } ,__super_isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; return funkin_play_character_MultiSparrowCharacter.prototype.isHoldingNote.call(this,player); } ,__super_initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; funkin_play_character_MultiSparrowCharacter.prototype.initHealthIcon.call(this,isOpponent); } ,__super_get_feetPosition: function() { var fieldName = "get_feetPosition"; return funkin_play_character_MultiSparrowCharacter.prototype.get_feetPosition.call(this); } ,__super_get_cornerPosition: function() { var fieldName = "get_cornerPosition"; return funkin_play_character_MultiSparrowCharacter.prototype.get_cornerPosition.call(this); } ,__super_get_characterOrigin: function() { var fieldName = "get_characterOrigin"; return funkin_play_character_MultiSparrowCharacter.prototype.get_characterOrigin.call(this); } ,__super_get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; return funkin_play_character_MultiSparrowCharacter.prototype.get_characterCameraOffsets.call(this); } ,__super_getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; return funkin_play_character_MultiSparrowCharacter.prototype.getDeathPreTransitionDelay.call(this); } ,__super_getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; return funkin_play_character_MultiSparrowCharacter.prototype.getDeathCameraZoom.call(this); } ,__super_getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; return funkin_play_character_MultiSparrowCharacter.prototype.getDeathCameraOffsets.call(this); } ,__super_getDataFlipX: function() { var fieldName = "getDataFlipX"; return funkin_play_character_MultiSparrowCharacter.prototype.getDataFlipX.call(this); } ,__super_getBaseScale: function() { var fieldName = "getBaseScale"; return funkin_play_character_MultiSparrowCharacter.prototype.getBaseScale.call(this); } ,__super_findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; return funkin_play_character_MultiSparrowCharacter.prototype.findCountAnimations.call(this,prefix); } ,__super_dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; funkin_play_character_MultiSparrowCharacter.prototype.dance.call(this,force); } ,update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.update_shouldAlternate.call(this); } } ,set_isPixel: function(value) { var fieldName = "set_isPixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_isPixel.call(this,value); } } ,set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_idleSuffix.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_globalOffsets.call(this,value); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_character_MultiSparrowCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,resetPosition: function() { var fieldName = "resetPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.resetPosition.call(this); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onSongEnd.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onPause.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onNoteIncoming.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onGameOver.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onBeatHit.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onAnimationFinished.call(this,name); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isAnimationFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.hasAnimation.call(this,id); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getCurrentAnimation.call(this); } } ,forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,duration]); } else { funkin_play_character_MultiSparrowCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } } ,correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name,fallback]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.correctAnimationName.call(this,name,fallback); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_MultiSparrowCharacter.prototype.applyAnimationOffsets.call(this,name); } } ,__super_update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; funkin_play_character_MultiSparrowCharacter.prototype.update_shouldAlternate.call(this); } ,__super_set_isPixel: function(value) { var fieldName = "set_isPixel"; return funkin_play_character_MultiSparrowCharacter.prototype.set_isPixel.call(this,value); } ,__super_set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; return funkin_play_character_MultiSparrowCharacter.prototype.set_idleSuffix.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_character_MultiSparrowCharacter.prototype.set_globalOffsets.call(this,value); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_character_MultiSparrowCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_resetPosition: function() { var fieldName = "resetPosition"; funkin_play_character_MultiSparrowCharacter.prototype.resetPosition.call(this); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_character_MultiSparrowCharacter.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_character_MultiSparrowCharacter.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_character_MultiSparrowCharacter.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_character_MultiSparrowCharacter.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_character_MultiSparrowCharacter.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_character_MultiSparrowCharacter.prototype.onSongEnd.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_character_MultiSparrowCharacter.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_character_MultiSparrowCharacter.prototype.onPause.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_character_MultiSparrowCharacter.prototype.onNoteIncoming.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_character_MultiSparrowCharacter.prototype.onGameOver.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_character_MultiSparrowCharacter.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_character_MultiSparrowCharacter.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_character_MultiSparrowCharacter.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_character_MultiSparrowCharacter.prototype.onBeatHit.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_character_MultiSparrowCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; funkin_play_character_MultiSparrowCharacter.prototype.onAnimationFinished.call(this,name); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_character_MultiSparrowCharacter.prototype.isAnimationFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_character_MultiSparrowCharacter.prototype.hasAnimation.call(this,id); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_character_MultiSparrowCharacter.prototype.getCurrentAnimation.call(this); } ,__super_forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; funkin_play_character_MultiSparrowCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } ,__super_correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; return funkin_play_character_MultiSparrowCharacter.prototype.correctAnimationName.call(this,name,fallback); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_character_MultiSparrowCharacter.prototype.applyAnimationOffsets.call(this,name); } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onScriptEvent.call(this,event); } } ,onAdd: function(event) { var fieldName = "onAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_MultiSparrowCharacter.prototype.onAdd.call(this,event); } } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_character_MultiSparrowCharacter.prototype.onScriptEvent.call(this,event); } ,__super_onAdd: function(event) { var fieldName = "onAdd"; funkin_play_character_MultiSparrowCharacter.prototype.onAdd.call(this,event); } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadBitmapData.call(this,input); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_play_character_MultiSparrowCharacter.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_play_character_MultiSparrowCharacter.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_play_character_MultiSparrowCharacter.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_play_character_MultiSparrowCharacter.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_play_character_MultiSparrowCharacter.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_play_character_MultiSparrowCharacter.prototype.loadBitmapData.call(this,input); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_character_MultiSparrowCharacter.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_character_MultiSparrowCharacter.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_MultiSparrowCharacter.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_MultiSparrowCharacter.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_play_character_MultiSparrowCharacter.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_MultiSparrowCharacter.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_character_MultiSparrowCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_MultiSparrowCharacter.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_character_MultiSparrowCharacter.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_MultiSparrowCharacter.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.draw.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_character_MultiSparrowCharacter.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_MultiSparrowCharacter.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_character_MultiSparrowCharacter.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_character_MultiSparrowCharacter.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_play_character_MultiSparrowCharacter.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_character_MultiSparrowCharacter.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_character_MultiSparrowCharacter.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_character_MultiSparrowCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_character_MultiSparrowCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_character_MultiSparrowCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_play_character_MultiSparrowCharacter.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_character_MultiSparrowCharacter.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_play_character_MultiSparrowCharacter.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_character_MultiSparrowCharacter.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_character_MultiSparrowCharacter.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_character_MultiSparrowCharacter.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_character_MultiSparrowCharacter.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_character_MultiSparrowCharacter.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_play_character_MultiSparrowCharacter.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_play_character_MultiSparrowCharacter.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_character_MultiSparrowCharacter.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_character_MultiSparrowCharacter.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_character_MultiSparrowCharacter.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_character_MultiSparrowCharacter.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_play_character_MultiSparrowCharacter.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_character_MultiSparrowCharacter.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_character_MultiSparrowCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_character_MultiSparrowCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_play_character_MultiSparrowCharacter.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_character_MultiSparrowCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_character_MultiSparrowCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_character_MultiSparrowCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_character_MultiSparrowCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_character_MultiSparrowCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_character_MultiSparrowCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_play_character_MultiSparrowCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_character_MultiSparrowCharacter.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_character_MultiSparrowCharacter.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_character_MultiSparrowCharacter.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_character_MultiSparrowCharacter.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_character_MultiSparrowCharacter.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_character_MultiSparrowCharacter.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_character_MultiSparrowCharacter.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_character_MultiSparrowCharacter.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_character_MultiSparrowCharacter.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_character_MultiSparrowCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_character_MultiSparrowCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_character_MultiSparrowCharacter.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_character_MultiSparrowCharacter.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_character_MultiSparrowCharacter.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_character_MultiSparrowCharacter.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_character_MultiSparrowCharacter.prototype.draw.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_character_MultiSparrowCharacter.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_character_MultiSparrowCharacter.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_play_character_MultiSparrowCharacter.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_MultiSparrowCharacter.prototype.updateMotion.call(this,elapsed); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_MultiSparrowCharacter.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_MultiSparrowCharacter.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_MultiSparrowCharacter.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_character_MultiSparrowCharacter.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_character_MultiSparrowCharacter.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_character_MultiSparrowCharacter.prototype.toString.call(this); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_character_MultiSparrowCharacter.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_character_MultiSparrowCharacter.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_character_MultiSparrowCharacter.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_character_MultiSparrowCharacter.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_character_MultiSparrowCharacter.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_character_MultiSparrowCharacter.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_character_MultiSparrowCharacter.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_character_MultiSparrowCharacter.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_character_MultiSparrowCharacter.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_character_MultiSparrowCharacter.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_character_MultiSparrowCharacter.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_character_MultiSparrowCharacter.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_character_MultiSparrowCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_character_MultiSparrowCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_character_MultiSparrowCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_character_MultiSparrowCharacter.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_character_MultiSparrowCharacter.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_character_MultiSparrowCharacter.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_character_MultiSparrowCharacter.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_character_MultiSparrowCharacter.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_character_MultiSparrowCharacter.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_character_MultiSparrowCharacter.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_character_MultiSparrowCharacter.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_character_MultiSparrowCharacter.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_character_MultiSparrowCharacter.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_MultiSparrowCharacter.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_MultiSparrowCharacter.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_character_MultiSparrowCharacter.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_character_MultiSparrowCharacter.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_character_MultiSparrowCharacter.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_character_MultiSparrowCharacter.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_character_MultiSparrowCharacter.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_character_MultiSparrowCharacter.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_character_MultiSparrowCharacter.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_character_MultiSparrowCharacter.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_character_MultiSparrowCharacter.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_character_MultiSparrowCharacter.prototype.get_camera.call(this); } ,__class__: funkin_play_character_ScriptedMultiSparrowCharacter }); var funkin_play_character_ScriptedPackerCharacter = function(id) { funkin_play_character_PackerCharacter.call(this,id); }; $hxClasses["funkin.play.character.ScriptedPackerCharacter"] = funkin_play_character_ScriptedPackerCharacter; funkin_play_character_ScriptedPackerCharacter.__name__ = "funkin.play.character.ScriptedPackerCharacter"; funkin_play_character_ScriptedPackerCharacter.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_character_ScriptedPackerCharacter.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.character.PackerCharacter"); }; funkin_play_character_ScriptedPackerCharacter.init = function(clsName,id) { var value = $hxClasses["funkin.play.character.ScriptedPackerCharacter"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.character.PackerCharacter"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.character.ScriptedPackerCharacter" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_character_ScriptedPackerCharacter.__super__ = funkin_play_character_PackerCharacter; funkin_play_character_ScriptedPackerCharacter.prototype = $extend(funkin_play_character_PackerCharacter.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedPackerCharacter"; var superName = "PackerCharacter"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onCreate.call(this,event); } } ,loadSpritesheet: function() { var fieldName = "loadSpritesheet"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.loadSpritesheet.call(this); } } ,loadAnimations: function() { var fieldName = "loadAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.loadAnimations.call(this); } } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_character_PackerCharacter.prototype.onCreate.call(this,event); } ,__super_loadSpritesheet: function() { var fieldName = "loadSpritesheet"; funkin_play_character_PackerCharacter.prototype.loadSpritesheet.call(this); } ,__super_loadAnimations: function() { var fieldName = "loadAnimations"; funkin_play_character_PackerCharacter.prototype.loadAnimations.call(this); } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_x.call(this,value); } } ,set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_cornerPosition.call(this,value); } } ,set_characterType: function(value) { var fieldName = "set_characterType"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_characterType.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_animOffsets.call(this,value); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_character_PackerCharacter.prototype.setScale.call(this,scale); } } ,resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[resetCamera]); } else { funkin_play_character_PackerCharacter.prototype.resetCharacter.call(this,resetCamera); } } ,resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.resetCameraFocusPoint.call(this); } } ,playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[dir,miss,suffix]); } else { funkin_play_character_PackerCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } } ,playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,ignoreOther,reversed]); } else { funkin_play_character_PackerCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onUpdate.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onNoteMiss.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onNoteGhostMiss.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onDestroy.call(this,event); } } ,justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_PackerCharacter.prototype.justPressedNote.call(this,player); } } ,isSinging: function() { var fieldName = "isSinging"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.isSinging.call(this); } } ,isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_PackerCharacter.prototype.isHoldingNote.call(this,player); } } ,initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; if(this._asc != null) { this._asc.callFunction(fieldName,[isOpponent]); } else { funkin_play_character_PackerCharacter.prototype.initHealthIcon.call(this,isOpponent); } } ,get_feetPosition: function() { var fieldName = "get_feetPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_feetPosition.call(this); } } ,get_cornerPosition: function() { var fieldName = "get_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_cornerPosition.call(this); } } ,get_characterOrigin: function() { var fieldName = "get_characterOrigin"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_characterOrigin.call(this); } } ,get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_characterCameraOffsets.call(this); } } ,getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.getDeathPreTransitionDelay.call(this); } } ,getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.getDeathCameraZoom.call(this); } } ,getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.getDeathCameraOffsets.call(this); } } ,getDataFlipX: function() { var fieldName = "getDataFlipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.getDataFlipX.call(this); } } ,getBaseScale: function() { var fieldName = "getBaseScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.getBaseScale.call(this); } } ,findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[prefix]); } else { return funkin_play_character_PackerCharacter.prototype.findCountAnimations.call(this,prefix); } } ,dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_PackerCharacter.prototype.dance.call(this,force); } } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_character_PackerCharacter.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_character_PackerCharacter.prototype.set_x.call(this,value); } ,__super_set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; return funkin_play_character_PackerCharacter.prototype.set_cornerPosition.call(this,value); } ,__super_set_characterType: function(value) { var fieldName = "set_characterType"; return funkin_play_character_PackerCharacter.prototype.set_characterType.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_character_PackerCharacter.prototype.set_animOffsets.call(this,value); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_character_PackerCharacter.prototype.setScale.call(this,scale); } ,__super_resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; funkin_play_character_PackerCharacter.prototype.resetCharacter.call(this,resetCamera); } ,__super_resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; funkin_play_character_PackerCharacter.prototype.resetCameraFocusPoint.call(this); } ,__super_playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; funkin_play_character_PackerCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } ,__super_playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_character_PackerCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_character_PackerCharacter.prototype.onUpdate.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_character_PackerCharacter.prototype.onNoteMiss.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_character_PackerCharacter.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_character_PackerCharacter.prototype.onNoteGhostMiss.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_character_PackerCharacter.prototype.onDestroy.call(this,event); } ,__super_justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; return funkin_play_character_PackerCharacter.prototype.justPressedNote.call(this,player); } ,__super_isSinging: function() { var fieldName = "isSinging"; return funkin_play_character_PackerCharacter.prototype.isSinging.call(this); } ,__super_isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; return funkin_play_character_PackerCharacter.prototype.isHoldingNote.call(this,player); } ,__super_initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; funkin_play_character_PackerCharacter.prototype.initHealthIcon.call(this,isOpponent); } ,__super_get_feetPosition: function() { var fieldName = "get_feetPosition"; return funkin_play_character_PackerCharacter.prototype.get_feetPosition.call(this); } ,__super_get_cornerPosition: function() { var fieldName = "get_cornerPosition"; return funkin_play_character_PackerCharacter.prototype.get_cornerPosition.call(this); } ,__super_get_characterOrigin: function() { var fieldName = "get_characterOrigin"; return funkin_play_character_PackerCharacter.prototype.get_characterOrigin.call(this); } ,__super_get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; return funkin_play_character_PackerCharacter.prototype.get_characterCameraOffsets.call(this); } ,__super_getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; return funkin_play_character_PackerCharacter.prototype.getDeathPreTransitionDelay.call(this); } ,__super_getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; return funkin_play_character_PackerCharacter.prototype.getDeathCameraZoom.call(this); } ,__super_getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; return funkin_play_character_PackerCharacter.prototype.getDeathCameraOffsets.call(this); } ,__super_getDataFlipX: function() { var fieldName = "getDataFlipX"; return funkin_play_character_PackerCharacter.prototype.getDataFlipX.call(this); } ,__super_getBaseScale: function() { var fieldName = "getBaseScale"; return funkin_play_character_PackerCharacter.prototype.getBaseScale.call(this); } ,__super_findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; return funkin_play_character_PackerCharacter.prototype.findCountAnimations.call(this,prefix); } ,__super_dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; funkin_play_character_PackerCharacter.prototype.dance.call(this,force); } ,update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.update_shouldAlternate.call(this); } } ,set_isPixel: function(value) { var fieldName = "set_isPixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_isPixel.call(this,value); } } ,set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_idleSuffix.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_globalOffsets.call(this,value); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_character_PackerCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,resetPosition: function() { var fieldName = "resetPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.resetPosition.call(this); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onSongEnd.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onPause.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onNoteIncoming.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onGameOver.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onBeatHit.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_character_PackerCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_PackerCharacter.prototype.onAnimationFinished.call(this,name); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.isAnimationFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_character_PackerCharacter.prototype.hasAnimation.call(this,id); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.getCurrentAnimation.call(this); } } ,forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,duration]); } else { funkin_play_character_PackerCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } } ,correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name,fallback]); } else { return funkin_play_character_PackerCharacter.prototype.correctAnimationName.call(this,name,fallback); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_PackerCharacter.prototype.applyAnimationOffsets.call(this,name); } } ,__super_update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; funkin_play_character_PackerCharacter.prototype.update_shouldAlternate.call(this); } ,__super_set_isPixel: function(value) { var fieldName = "set_isPixel"; return funkin_play_character_PackerCharacter.prototype.set_isPixel.call(this,value); } ,__super_set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; return funkin_play_character_PackerCharacter.prototype.set_idleSuffix.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_character_PackerCharacter.prototype.set_globalOffsets.call(this,value); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_character_PackerCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_resetPosition: function() { var fieldName = "resetPosition"; funkin_play_character_PackerCharacter.prototype.resetPosition.call(this); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_character_PackerCharacter.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_character_PackerCharacter.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_character_PackerCharacter.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_character_PackerCharacter.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_character_PackerCharacter.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_character_PackerCharacter.prototype.onSongEnd.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_character_PackerCharacter.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_character_PackerCharacter.prototype.onPause.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_character_PackerCharacter.prototype.onNoteIncoming.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_character_PackerCharacter.prototype.onGameOver.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_character_PackerCharacter.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_character_PackerCharacter.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_character_PackerCharacter.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_character_PackerCharacter.prototype.onBeatHit.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_character_PackerCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; funkin_play_character_PackerCharacter.prototype.onAnimationFinished.call(this,name); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_character_PackerCharacter.prototype.isAnimationFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_character_PackerCharacter.prototype.hasAnimation.call(this,id); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_character_PackerCharacter.prototype.getCurrentAnimation.call(this); } ,__super_forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; funkin_play_character_PackerCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } ,__super_correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; return funkin_play_character_PackerCharacter.prototype.correctAnimationName.call(this,name,fallback); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_character_PackerCharacter.prototype.applyAnimationOffsets.call(this,name); } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onScriptEvent.call(this,event); } } ,onAdd: function(event) { var fieldName = "onAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_PackerCharacter.prototype.onAdd.call(this,event); } } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_character_PackerCharacter.prototype.onScriptEvent.call(this,event); } ,__super_onAdd: function(event) { var fieldName = "onAdd"; funkin_play_character_PackerCharacter.prototype.onAdd.call(this,event); } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_play_character_PackerCharacter.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_PackerCharacter.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_PackerCharacter.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_PackerCharacter.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_PackerCharacter.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_PackerCharacter.prototype.loadBitmapData.call(this,input); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_play_character_PackerCharacter.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_play_character_PackerCharacter.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_play_character_PackerCharacter.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_play_character_PackerCharacter.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_play_character_PackerCharacter.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_play_character_PackerCharacter.prototype.loadBitmapData.call(this,input); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_character_PackerCharacter.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_character_PackerCharacter.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_PackerCharacter.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_PackerCharacter.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_character_PackerCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_character_PackerCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_character_PackerCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_play_character_PackerCharacter.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_play_character_PackerCharacter.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_character_PackerCharacter.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_play_character_PackerCharacter.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_play_character_PackerCharacter.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_PackerCharacter.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_play_character_PackerCharacter.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_PackerCharacter.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_character_PackerCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_character_PackerCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_character_PackerCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_play_character_PackerCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_character_PackerCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_character_PackerCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_character_PackerCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_character_PackerCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_play_character_PackerCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_PackerCharacter.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_PackerCharacter.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_PackerCharacter.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_character_PackerCharacter.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_character_PackerCharacter.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_character_PackerCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_character_PackerCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_PackerCharacter.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_PackerCharacter.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_character_PackerCharacter.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_PackerCharacter.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.draw.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_character_PackerCharacter.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_PackerCharacter.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_character_PackerCharacter.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_character_PackerCharacter.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_play_character_PackerCharacter.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_character_PackerCharacter.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_character_PackerCharacter.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_character_PackerCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_character_PackerCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_character_PackerCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_play_character_PackerCharacter.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_character_PackerCharacter.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_play_character_PackerCharacter.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_character_PackerCharacter.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_character_PackerCharacter.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_character_PackerCharacter.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_character_PackerCharacter.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_character_PackerCharacter.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_play_character_PackerCharacter.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_play_character_PackerCharacter.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_character_PackerCharacter.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_character_PackerCharacter.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_character_PackerCharacter.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_character_PackerCharacter.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_play_character_PackerCharacter.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_character_PackerCharacter.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_character_PackerCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_character_PackerCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_play_character_PackerCharacter.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_character_PackerCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_character_PackerCharacter.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_character_PackerCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_character_PackerCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_character_PackerCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_character_PackerCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_play_character_PackerCharacter.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_character_PackerCharacter.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_character_PackerCharacter.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_character_PackerCharacter.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_character_PackerCharacter.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_character_PackerCharacter.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_character_PackerCharacter.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_character_PackerCharacter.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_character_PackerCharacter.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_character_PackerCharacter.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_character_PackerCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_character_PackerCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_character_PackerCharacter.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_character_PackerCharacter.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_character_PackerCharacter.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_character_PackerCharacter.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_character_PackerCharacter.prototype.draw.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_character_PackerCharacter.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_character_PackerCharacter.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_play_character_PackerCharacter.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_PackerCharacter.prototype.updateMotion.call(this,elapsed); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_character_PackerCharacter.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_PackerCharacter.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_PackerCharacter.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_PackerCharacter.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_PackerCharacter.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_character_PackerCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_PackerCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_PackerCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_PackerCharacter.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_character_PackerCharacter.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_character_PackerCharacter.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_character_PackerCharacter.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_PackerCharacter.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_PackerCharacter.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_PackerCharacter.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_character_PackerCharacter.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_character_PackerCharacter.prototype.toString.call(this); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_character_PackerCharacter.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_character_PackerCharacter.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_character_PackerCharacter.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_character_PackerCharacter.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_character_PackerCharacter.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_character_PackerCharacter.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_character_PackerCharacter.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_character_PackerCharacter.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_character_PackerCharacter.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_character_PackerCharacter.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_character_PackerCharacter.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_character_PackerCharacter.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_character_PackerCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_character_PackerCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_character_PackerCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_character_PackerCharacter.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_character_PackerCharacter.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_character_PackerCharacter.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_character_PackerCharacter.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_character_PackerCharacter.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_character_PackerCharacter.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_character_PackerCharacter.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_character_PackerCharacter.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_character_PackerCharacter.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_character_PackerCharacter.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_character_PackerCharacter.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_PackerCharacter.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_PackerCharacter.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_character_PackerCharacter.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_character_PackerCharacter.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_character_PackerCharacter.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_character_PackerCharacter.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_character_PackerCharacter.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_character_PackerCharacter.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_character_PackerCharacter.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_character_PackerCharacter.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_character_PackerCharacter.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_character_PackerCharacter.prototype.get_camera.call(this); } ,__class__: funkin_play_character_ScriptedPackerCharacter }); var funkin_play_character_ScriptedAnimateAtlasCharacter = function(id) { funkin_play_character_AnimateAtlasCharacter.call(this,id); }; $hxClasses["funkin.play.character.ScriptedAnimateAtlasCharacter"] = funkin_play_character_ScriptedAnimateAtlasCharacter; funkin_play_character_ScriptedAnimateAtlasCharacter.__name__ = "funkin.play.character.ScriptedAnimateAtlasCharacter"; funkin_play_character_ScriptedAnimateAtlasCharacter.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_character_ScriptedAnimateAtlasCharacter.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.character.AnimateAtlasCharacter"); }; funkin_play_character_ScriptedAnimateAtlasCharacter.init = function(clsName,id) { var value = $hxClasses["funkin.play.character.ScriptedAnimateAtlasCharacter"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.character.AnimateAtlasCharacter"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.character.ScriptedAnimateAtlasCharacter" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_character_ScriptedAnimateAtlasCharacter.__super__ = funkin_play_character_AnimateAtlasCharacter; funkin_play_character_ScriptedAnimateAtlasCharacter.prototype = $extend(funkin_play_character_AnimateAtlasCharacter.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedAnimateAtlasCharacter"; var superName = "AnimateAtlasCharacter"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.update.call(this,elapsed); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_x.call(this,value); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_width.call(this,value); } } ,set_visible: function(value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_visible.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_solid.call(this,value); } } ,set_pixels: function(value) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_pixels.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_pixelPerfectRender.call(this,value); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_height.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_frames.call(this,Frames); } } ,set_frame: function(value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_frame.call(this,value); } } ,set_flipY: function(value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_flipY.call(this,value); } } ,set_flipX: function(value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_flipX.call(this,value); } } ,set_facing: function(value) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_facing.call(this,value); } } ,set_exists: function(value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_exists.call(this,value); } } ,set_color: function(value) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_color.call(this,value); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_clipRect.call(this,rect); } } ,set_cameras: function(value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_cameras.call(this,value); } } ,set_camera: function(value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_camera.call(this,value); } } ,set_blend: function(value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_blend.call(this,value); } } ,set_angle: function(value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_angle.call(this,value); } } ,set_alpha: function(value) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_alpha.call(this,value); } } ,set_alive: function(value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_alive.call(this,value); } } ,set_active: function(value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_active.call(this,value); } } ,setSprite: function(sprite) { var fieldName = "setSprite"; if(this._asc != null) { this._asc.callFunction(fieldName,[sprite]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setSprite.call(this,sprite); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.revive.call(this); } } ,playAnimation: function(name,restart,ignoreOther,reverse) { if(reverse == null) { reverse = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,ignoreOther,reverse]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reverse); } } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,Mask,Camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onCreate.call(this,event); } } ,onAnimationFinished: function(prefix) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[prefix]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onAnimationFinished.call(this,prefix); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Animated,Width,Height,Unique,Key]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } } ,loadAtlasSprite: function() { var fieldName = "loadAtlasSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadAtlasSprite.call(this); } } ,loadAnimations: function() { var fieldName = "loadAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.loadAnimations.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.kill.call(this); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isOnScreen.call(this,camera); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isAnimationFinished.call(this); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.initVars.call(this); } } ,hasAnimation: function(name) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.hasAnimation.call(this,name); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_width.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_pixels.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_height.call(this); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getCurrentAnimation.call(this); } } ,getAnimationData: function(name) { var fieldName = "getAnimationData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getAnimationData.call(this,name); } } ,findMinYHelper: function() { var fieldName = "findMinYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMinYHelper.call(this); } } ,findMinY: function() { var fieldName = "findMinY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMinY.call(this); } } ,findMinXHelper: function() { var fieldName = "findMinXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMinXHelper.call(this); } } ,findMinX: function() { var fieldName = "findMinX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMinX.call(this); } } ,findMaxYHelper: function() { var fieldName = "findMaxYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxYHelper.call(this); } } ,findMaxY: function() { var fieldName = "findMaxY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxY.call(this); } } ,findMaxXHelper: function() { var fieldName = "findMaxXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxXHelper.call(this); } } ,findMaxX: function() { var fieldName = "findMaxX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxX.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.destroy.call(this); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_character_AnimateAtlasCharacter.prototype.update.call(this,elapsed); } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_x.call(this,value); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_width.call(this,value); } ,__super_set_visible: function(value) { var fieldName = "set_visible"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_visible.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_solid.call(this,value); } ,__super_set_pixels: function(value) { var fieldName = "set_pixels"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_pixels.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_height.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(value) { var fieldName = "set_frame"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_frame.call(this,value); } ,__super_set_flipY: function(value) { var fieldName = "set_flipY"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_flipY.call(this,value); } ,__super_set_flipX: function(value) { var fieldName = "set_flipX"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_flipX.call(this,value); } ,__super_set_facing: function(value) { var fieldName = "set_facing"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_facing.call(this,value); } ,__super_set_exists: function(value) { var fieldName = "set_exists"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_exists.call(this,value); } ,__super_set_color: function(value) { var fieldName = "set_color"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_color.call(this,value); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_clipRect.call(this,rect); } ,__super_set_cameras: function(value) { var fieldName = "set_cameras"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_cameras.call(this,value); } ,__super_set_camera: function(value) { var fieldName = "set_camera"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_camera.call(this,value); } ,__super_set_blend: function(value) { var fieldName = "set_blend"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_blend.call(this,value); } ,__super_set_angle: function(value) { var fieldName = "set_angle"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_angle.call(this,value); } ,__super_set_alpha: function(value) { var fieldName = "set_alpha"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_alpha.call(this,value); } ,__super_set_alive: function(value) { var fieldName = "set_alive"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_alive.call(this,value); } ,__super_set_active: function(value) { var fieldName = "set_active"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_active.call(this,value); } ,__super_setSprite: function(sprite) { var fieldName = "setSprite"; funkin_play_character_AnimateAtlasCharacter.prototype.setSprite.call(this,sprite); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_character_AnimateAtlasCharacter.prototype.revive.call(this); } ,__super_playAnimation: function(name,restart,ignoreOther,reverse) { if(reverse == null) { reverse = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_character_AnimateAtlasCharacter.prototype.playAnimation.call(this,name,restart,ignoreOther,reverse); } ,__super_pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_character_AnimateAtlasCharacter.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_character_AnimateAtlasCharacter.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_character_AnimateAtlasCharacter.prototype.onCreate.call(this,event); } ,__super_onAnimationFinished: function(prefix) { var fieldName = "onAnimationFinished"; funkin_play_character_AnimateAtlasCharacter.prototype.onAnimationFinished.call(this,prefix); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_character_AnimateAtlasCharacter.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } ,__super_loadAtlasSprite: function() { var fieldName = "loadAtlasSprite"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadAtlasSprite.call(this); } ,__super_loadAnimations: function() { var fieldName = "loadAnimations"; funkin_play_character_AnimateAtlasCharacter.prototype.loadAnimations.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_character_AnimateAtlasCharacter.prototype.kill.call(this); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_character_AnimateAtlasCharacter.prototype.isOnScreen.call(this,camera); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_character_AnimateAtlasCharacter.prototype.isAnimationFinished.call(this); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_character_AnimateAtlasCharacter.prototype.initVars.call(this); } ,__super_hasAnimation: function(name) { var fieldName = "hasAnimation"; return funkin_play_character_AnimateAtlasCharacter.prototype.hasAnimation.call(this,name); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_width.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_pixels.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_height.call(this); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_character_AnimateAtlasCharacter.prototype.getCurrentAnimation.call(this); } ,__super_getAnimationData: function(name) { var fieldName = "getAnimationData"; return funkin_play_character_AnimateAtlasCharacter.prototype.getAnimationData.call(this,name); } ,__super_findMinYHelper: function() { var fieldName = "findMinYHelper"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMinYHelper.call(this); } ,__super_findMinY: function() { var fieldName = "findMinY"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMinY.call(this); } ,__super_findMinXHelper: function() { var fieldName = "findMinXHelper"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMinXHelper.call(this); } ,__super_findMinX: function() { var fieldName = "findMinX"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMinX.call(this); } ,__super_findMaxYHelper: function() { var fieldName = "findMaxYHelper"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxYHelper.call(this); } ,__super_findMaxY: function() { var fieldName = "findMaxY"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxY.call(this); } ,__super_findMaxXHelper: function() { var fieldName = "findMaxXHelper"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxXHelper.call(this); } ,__super_findMaxX: function() { var fieldName = "findMaxX"; return funkin_play_character_AnimateAtlasCharacter.prototype.findMaxX.call(this); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_character_AnimateAtlasCharacter.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_character_AnimateAtlasCharacter.prototype.destroy.call(this); } ,set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_cornerPosition.call(this,value); } } ,set_characterType: function(value) { var fieldName = "set_characterType"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_characterType.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_animOffsets.call(this,value); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setScale.call(this,scale); } } ,resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[resetCamera]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.resetCharacter.call(this,resetCamera); } } ,resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.resetCameraFocusPoint.call(this); } } ,playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[dir,miss,suffix]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onUpdate.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onNoteMiss.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onNoteGhostMiss.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onDestroy.call(this,event); } } ,justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.justPressedNote.call(this,player); } } ,isSinging: function() { var fieldName = "isSinging"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isSinging.call(this); } } ,isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; if(this._asc != null) { return this._asc.callFunction(fieldName,[player]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isHoldingNote.call(this,player); } } ,initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; if(this._asc != null) { this._asc.callFunction(fieldName,[isOpponent]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.initHealthIcon.call(this,isOpponent); } } ,get_feetPosition: function() { var fieldName = "get_feetPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_feetPosition.call(this); } } ,get_cornerPosition: function() { var fieldName = "get_cornerPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_cornerPosition.call(this); } } ,get_characterOrigin: function() { var fieldName = "get_characterOrigin"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_characterOrigin.call(this); } } ,get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_characterCameraOffsets.call(this); } } ,getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getDeathPreTransitionDelay.call(this); } } ,getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getDeathCameraZoom.call(this); } } ,getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getDeathCameraOffsets.call(this); } } ,getDataFlipX: function() { var fieldName = "getDataFlipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getDataFlipX.call(this); } } ,getBaseScale: function() { var fieldName = "getBaseScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getBaseScale.call(this); } } ,findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[prefix]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.findCountAnimations.call(this,prefix); } } ,dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.dance.call(this,force); } } ,__super_set_cornerPosition: function(value) { var fieldName = "set_cornerPosition"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_cornerPosition.call(this,value); } ,__super_set_characterType: function(value) { var fieldName = "set_characterType"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_characterType.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_animOffsets.call(this,value); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_character_AnimateAtlasCharacter.prototype.setScale.call(this,scale); } ,__super_resetCharacter: function(resetCamera) { if(resetCamera == null) { resetCamera = true; } var fieldName = "resetCharacter"; funkin_play_character_AnimateAtlasCharacter.prototype.resetCharacter.call(this,resetCamera); } ,__super_resetCameraFocusPoint: function() { var fieldName = "resetCameraFocusPoint"; funkin_play_character_AnimateAtlasCharacter.prototype.resetCameraFocusPoint.call(this); } ,__super_playSingAnimation: function(dir,miss,suffix) { if(suffix == null) { suffix = ""; } if(miss == null) { miss = false; } var fieldName = "playSingAnimation"; funkin_play_character_AnimateAtlasCharacter.prototype.playSingAnimation.call(this,dir,miss,suffix); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_character_AnimateAtlasCharacter.prototype.onUpdate.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_character_AnimateAtlasCharacter.prototype.onNoteMiss.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_character_AnimateAtlasCharacter.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_character_AnimateAtlasCharacter.prototype.onNoteGhostMiss.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_character_AnimateAtlasCharacter.prototype.onDestroy.call(this,event); } ,__super_justPressedNote: function(player) { if(player == null) { player = 1; } var fieldName = "justPressedNote"; return funkin_play_character_AnimateAtlasCharacter.prototype.justPressedNote.call(this,player); } ,__super_isSinging: function() { var fieldName = "isSinging"; return funkin_play_character_AnimateAtlasCharacter.prototype.isSinging.call(this); } ,__super_isHoldingNote: function(player) { if(player == null) { player = 1; } var fieldName = "isHoldingNote"; return funkin_play_character_AnimateAtlasCharacter.prototype.isHoldingNote.call(this,player); } ,__super_initHealthIcon: function(isOpponent) { var fieldName = "initHealthIcon"; funkin_play_character_AnimateAtlasCharacter.prototype.initHealthIcon.call(this,isOpponent); } ,__super_get_feetPosition: function() { var fieldName = "get_feetPosition"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_feetPosition.call(this); } ,__super_get_cornerPosition: function() { var fieldName = "get_cornerPosition"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_cornerPosition.call(this); } ,__super_get_characterOrigin: function() { var fieldName = "get_characterOrigin"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_characterOrigin.call(this); } ,__super_get_characterCameraOffsets: function() { var fieldName = "get_characterCameraOffsets"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_characterCameraOffsets.call(this); } ,__super_getDeathPreTransitionDelay: function() { var fieldName = "getDeathPreTransitionDelay"; return funkin_play_character_AnimateAtlasCharacter.prototype.getDeathPreTransitionDelay.call(this); } ,__super_getDeathCameraZoom: function() { var fieldName = "getDeathCameraZoom"; return funkin_play_character_AnimateAtlasCharacter.prototype.getDeathCameraZoom.call(this); } ,__super_getDeathCameraOffsets: function() { var fieldName = "getDeathCameraOffsets"; return funkin_play_character_AnimateAtlasCharacter.prototype.getDeathCameraOffsets.call(this); } ,__super_getDataFlipX: function() { var fieldName = "getDataFlipX"; return funkin_play_character_AnimateAtlasCharacter.prototype.getDataFlipX.call(this); } ,__super_getBaseScale: function() { var fieldName = "getBaseScale"; return funkin_play_character_AnimateAtlasCharacter.prototype.getBaseScale.call(this); } ,__super_findCountAnimations: function(prefix) { var fieldName = "findCountAnimations"; return funkin_play_character_AnimateAtlasCharacter.prototype.findCountAnimations.call(this,prefix); } ,__super_dance: function(force) { if(force == null) { force = false; } var fieldName = "dance"; funkin_play_character_AnimateAtlasCharacter.prototype.dance.call(this,force); } ,update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.update_shouldAlternate.call(this); } } ,set_isPixel: function(value) { var fieldName = "set_isPixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_isPixel.call(this,value); } } ,set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_idleSuffix.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_globalOffsets.call(this,value); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,resetPosition: function() { var fieldName = "resetPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.resetPosition.call(this); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onSongEnd.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onPause.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onNoteIncoming.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onGameOver.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onBeatHit.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,duration]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } } ,correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name,fallback]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.correctAnimationName.call(this,name,fallback); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.applyAnimationOffsets.call(this,name); } } ,__super_update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; funkin_play_character_AnimateAtlasCharacter.prototype.update_shouldAlternate.call(this); } ,__super_set_isPixel: function(value) { var fieldName = "set_isPixel"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_isPixel.call(this,value); } ,__super_set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_idleSuffix.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_globalOffsets.call(this,value); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_character_AnimateAtlasCharacter.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_resetPosition: function() { var fieldName = "resetPosition"; funkin_play_character_AnimateAtlasCharacter.prototype.resetPosition.call(this); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_character_AnimateAtlasCharacter.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_character_AnimateAtlasCharacter.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_character_AnimateAtlasCharacter.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_character_AnimateAtlasCharacter.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_character_AnimateAtlasCharacter.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_character_AnimateAtlasCharacter.prototype.onSongEnd.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_character_AnimateAtlasCharacter.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_character_AnimateAtlasCharacter.prototype.onPause.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_character_AnimateAtlasCharacter.prototype.onNoteIncoming.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_character_AnimateAtlasCharacter.prototype.onGameOver.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_character_AnimateAtlasCharacter.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_character_AnimateAtlasCharacter.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_character_AnimateAtlasCharacter.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_character_AnimateAtlasCharacter.prototype.onBeatHit.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_character_AnimateAtlasCharacter.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; funkin_play_character_AnimateAtlasCharacter.prototype.forceAnimationForDuration.call(this,name,duration); } ,__super_correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; return funkin_play_character_AnimateAtlasCharacter.prototype.correctAnimationName.call(this,name,fallback); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_character_AnimateAtlasCharacter.prototype.applyAnimationOffsets.call(this,name); } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onScriptEvent.call(this,event); } } ,onAdd: function(event) { var fieldName = "onAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.onAdd.call(this,event); } } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_character_AnimateAtlasCharacter.prototype.onScriptEvent.call(this,event); } ,__super_onAdd: function(event) { var fieldName = "onAdd"; funkin_play_character_AnimateAtlasCharacter.prototype.onAdd.call(this,event); } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadBitmapData.call(this,input); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_play_character_AnimateAtlasCharacter.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadBitmapData.call(this,input); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_character_AnimateAtlasCharacter.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.updateFramePixels.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.updateAnimation.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_useFramePixels.call(this,value); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_graphic.call(this,value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_antialiasing.call(this,value); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isSimpleRender.call(this,camera); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.graphicLoaded.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.drawComplex.call(this,camera); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.centerOffsets.call(this,AdjustPosition); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_character_AnimateAtlasCharacter.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_character_AnimateAtlasCharacter.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_character_AnimateAtlasCharacter.prototype.updateAnimation.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_character_AnimateAtlasCharacter.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_character_AnimateAtlasCharacter.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_character_AnimateAtlasCharacter.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; var X1 = X; var Y1 = Y; } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_useFramePixels.call(this,value); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_graphic.call(this,value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_antialiasing.call(this,value); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_character_AnimateAtlasCharacter.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_character_AnimateAtlasCharacter.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_character_AnimateAtlasCharacter.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_character_AnimateAtlasCharacter.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_character_AnimateAtlasCharacter.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_character_AnimateAtlasCharacter.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_character_AnimateAtlasCharacter.prototype.isSimpleRender.call(this,camera); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_character_AnimateAtlasCharacter.prototype.graphicLoaded.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_character_AnimateAtlasCharacter.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_character_AnimateAtlasCharacter.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_character_AnimateAtlasCharacter.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_character_AnimateAtlasCharacter.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_character_AnimateAtlasCharacter.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_character_AnimateAtlasCharacter.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_character_AnimateAtlasCharacter.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_character_AnimateAtlasCharacter.prototype.drawComplex.call(this,camera); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_character_AnimateAtlasCharacter.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_character_AnimateAtlasCharacter.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; var RunOnCpp = force; } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.updateMotion.call(this,elapsed); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_path.call(this,path); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.reset.call(this,x,y); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_character_AnimateAtlasCharacter.prototype.hurt.call(this,damage); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_character_AnimateAtlasCharacter.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_character_AnimateAtlasCharacter.prototype.toString.call(this); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_path.call(this,path); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_character_AnimateAtlasCharacter.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_character_AnimateAtlasCharacter.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_character_AnimateAtlasCharacter.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_character_AnimateAtlasCharacter.prototype.reset.call(this,x,y); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_character_AnimateAtlasCharacter.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_character_AnimateAtlasCharacter.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_character_AnimateAtlasCharacter.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_character_AnimateAtlasCharacter.prototype.hurt.call(this,damage); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_character_AnimateAtlasCharacter.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_character_AnimateAtlasCharacter.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_character_AnimateAtlasCharacter.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_character_AnimateAtlasCharacter.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_character_AnimateAtlasCharacter.prototype.getBoundingBox.call(this,camera); } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_character_AnimateAtlasCharacter.prototype.get_camera.call(this); } } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_character_AnimateAtlasCharacter.prototype.get_camera.call(this); } ,__class__: funkin_play_character_ScriptedAnimateAtlasCharacter }); var funkin_play_components_ClearPercentCounter = function(x,y,startingNumber,small) { if(small == null) { small = false; } if(startingNumber == null) { startingNumber = 0; } this.tmr = 0; this.small = false; this.numberChanged = false; this.curNumber = 0; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.flashShader = new funkin_graphics_shaders_PureColor(-1); this.flashShader.set_colorSet(false); this.set_curNumber(startingNumber); this.small = small; var clearPercentText = funkin_graphics_FunkinSprite.create(0,0,"resultScreen/clearPercent/clearPercentText" + (small ? "Small" : "")); clearPercentText.set_x(small ? 40 : 0); this.add(clearPercentText); this.drawNumbers(); }; $hxClasses["funkin.play.components.ClearPercentCounter"] = funkin_play_components_ClearPercentCounter; funkin_play_components_ClearPercentCounter.__name__ = "funkin.play.components.ClearPercentCounter"; funkin_play_components_ClearPercentCounter.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_components_ClearPercentCounter.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ curNumber: null ,numberChanged: null ,set_curNumber: function(val) { this.numberChanged = true; return this.curNumber = val; } ,small: null ,flashShader: null ,flash: function(enabled) { this.flashShader.set_colorSet(enabled); } ,tmr: null ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); if(this.numberChanged) { this.drawNumbers(); } } ,drawNumbers: function() { var seperatedScore = []; var tempCombo = Math.round(this.curNumber); while(tempCombo != 0) { seperatedScore.push(tempCombo % 10); tempCombo = Math.floor(tempCombo / 10); } if(seperatedScore.length == 0) { seperatedScore.push(0); } seperatedScore.reverse(); var _g_current = 0; var _g_array = seperatedScore; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = _g_key; var num = _g_value; var digitIndex = ind + 1; var digitOffset = seperatedScore.length == 1 ? 1 : seperatedScore.length == 3 ? -1 : 0; var digitSize = this.small ? 32 : 72; var digitHeightOffset = this.small ? -4 : 0; var xPos = (digitIndex - 1 + digitOffset) * (digitSize * this.scale.x); xPos += this.small ? -24 : 0; var yPos = (digitIndex - 1 + digitOffset) * (digitHeightOffset * this.scale.y); yPos += this.small ? 0 : 72; if(digitIndex >= this.group.members.length) { var variant = seperatedScore.length == 3 ? digitIndex >= 2 : digitIndex >= 1; var numb = new funkin_play_components_ClearPercentNumber(xPos,yPos,num,variant,this.small); var this1 = numb.scale; var x = this.scale.x; var y = this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); numb.shader = this.flashShader; numb.set_visible(true); this.add(numb); } else { this.group.members[digitIndex].animation.play(num == null ? "null" : "" + num); this.group.members[digitIndex].set_x(xPos + this.x); this.group.members[digitIndex].set_y(yPos + this.y); this.group.members[digitIndex].set_visible(true); } } var _g = seperatedScore.length + 1; var _g1 = this.group.members.length; while(_g < _g1) { var ind = _g++; this.group.members[ind].set_visible(false); } } ,__class__: funkin_play_components_ClearPercentCounter ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_curNumber:"set_curNumber"}) }); var funkin_play_components_ClearPercentNumber = function(x,y,digit,variant,small) { flixel_FlxSprite.call(this,x,y); this.set_frames(funkin_Paths.getSparrowAtlas("resultScreen/clearPercent/clearPercentNumber" + (small ? "Small" : variant ? "Right" : "Left"))); this.animation.addByPrefix("" + 0,"number " + 0 + " 0",24,false); this.animation.addByPrefix("" + 1,"number " + 1 + " 0",24,false); this.animation.addByPrefix("" + 2,"number " + 2 + " 0",24,false); this.animation.addByPrefix("" + 3,"number " + 3 + " 0",24,false); this.animation.addByPrefix("" + 4,"number " + 4 + " 0",24,false); this.animation.addByPrefix("" + 5,"number " + 5 + " 0",24,false); this.animation.addByPrefix("" + 6,"number " + 6 + " 0",24,false); this.animation.addByPrefix("" + 7,"number " + 7 + " 0",24,false); this.animation.addByPrefix("" + 8,"number " + 8 + " 0",24,false); this.animation.addByPrefix("" + 9,"number " + 9 + " 0",24,false); this.animation.play("" + digit); this.updateHitbox(); }; $hxClasses["funkin.play.components.ClearPercentNumber"] = funkin_play_components_ClearPercentNumber; funkin_play_components_ClearPercentNumber.__name__ = "funkin.play.components.ClearPercentNumber"; funkin_play_components_ClearPercentNumber.__super__ = flixel_FlxSprite; funkin_play_components_ClearPercentNumber.prototype = $extend(flixel_FlxSprite.prototype,{ __class__: funkin_play_components_ClearPercentNumber }); var funkin_play_components_ComboMilestone = function(x,y,daCombo) { if(daCombo == null) { daCombo = 0; } this.onScreenTime = 0; this.daCombo = 0; this.wasComboSetup = false; var _gthis = this; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.daCombo = daCombo; this.effectStuff = new flixel_FlxSprite(0,0); this.effectStuff.set_frames(funkin_Paths.getSparrowAtlas("comboMilestone")); this.effectStuff.animation.addByPrefix("funny","NOTE COMBO animation",24,false); this.effectStuff.animation.play("funny"); this.effectStuff.animation.finishCallback = function(nameThing) { _gthis.kill(); }; this.effectStuff.setGraphicSize(this.effectStuff.get_width() * 0.7 | 0); this.add(this.effectStuff); this.grpNumbers = new flixel_group_FlxTypedGroup(); }; $hxClasses["funkin.play.components.ComboMilestone"] = funkin_play_components_ComboMilestone; funkin_play_components_ComboMilestone.__name__ = "funkin.play.components.ComboMilestone"; funkin_play_components_ComboMilestone.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_components_ComboMilestone.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ effectStuff: null ,wasComboSetup: null ,daCombo: null ,grpNumbers: null ,onScreenTime: null ,forceFinish: function() { var _gthis = this; if(this.onScreenTime < 0.9) { new flixel_util_FlxTimer().start(funkin_Conductor.get_instance().get_beatLengthMs() / 1000 * 0.25,function(tmr) { _gthis.forceFinish(); }); } else { this.effectStuff.animation.play("funny",true,false,18); } } ,update: function(elapsed) { this.onScreenTime += elapsed; if(this.effectStuff.animation._curAnim.curFrame == 17) { var _this = this.effectStuff.animation; if(_this._curAnim != null) { _this._curAnim.pause(); } } if(this.effectStuff.animation._curAnim.curFrame == 2 && !this.wasComboSetup) { this.setupCombo(this.daCombo); } if(this.effectStuff.animation._curAnim.curFrame == 18) { this.grpNumbers.forEach(function(spr) { var _this = spr.animation; if(_this._curAnim != null) { _this._curAnim.reset(); } }); } if(this.effectStuff.animation._curAnim.curFrame == 20) { this.grpNumbers.forEach(function(spr) { spr.kill(); }); } flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,setupCombo: function(daCombo) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("comboSound")); this.wasComboSetup = true; var loopNum = 0; while(daCombo > 0) { var comboNumber = new funkin_play_components_ComboMilestoneNumber(450 - 100 * loopNum,20 + 14 * loopNum,daCombo % 10); comboNumber.setGraphicSize(comboNumber.get_width() * 0.7 | 0); this.grpNumbers.add(comboNumber); this.add(comboNumber); ++loopNum; daCombo = Math.floor(daCombo / 10); } } ,__class__: funkin_play_components_ComboMilestone }); var funkin_play_components_ComboMilestoneNumber = function(x,y,digit) { this.shiftedX = false; flixel_FlxSprite.call(this,x - 20,y); var stringNum = digit == null ? "null" : "" + digit; this.set_frames(funkin_Paths.getSparrowAtlas("comboMilestoneNumbers")); this.animation.addByPrefix(stringNum,stringNum,24,false); this.animation.play(stringNum); this.updateHitbox(); }; $hxClasses["funkin.play.components.ComboMilestoneNumber"] = funkin_play_components_ComboMilestoneNumber; funkin_play_components_ComboMilestoneNumber.__name__ = "funkin.play.components.ComboMilestoneNumber"; funkin_play_components_ComboMilestoneNumber.__super__ = flixel_FlxSprite; funkin_play_components_ComboMilestoneNumber.prototype = $extend(flixel_FlxSprite.prototype,{ shiftedX: null ,update: function(elapsed) { if(this.animation._curAnim.curFrame == 2 && !this.shiftedX) { this.shiftedX = true; this.set_x(this.x + 20); } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,__class__: funkin_play_components_ComboMilestoneNumber }); var funkin_play_components_HealthIcon = function(char,playerId) { if(playerId == null) { playerId = 0; } if(char == null) { char = "bf"; } this.isLegacyStyle = false; this.isPixel = false; this.playerId = 0; this.bopAngle = 0.0; this.bopEvery = funkin_util_Constants.STEPS_PER_BEAT; var x = 1; var y = 1; if(y == null) { y = 0; } if(x == null) { x = 0; } this.size = new flixel_math_FlxBasePoint(x,y); this.autoUpdate = true; funkin_graphics_FunkinSprite.call(this,0,0); this.playerId = playerId; var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); this.set_characterId(char); this.setGraphicSize(funkin_play_components_HealthIcon.HEALTH_ICON_SIZE); this.updateHitbox(); }; $hxClasses["funkin.play.components.HealthIcon"] = funkin_play_components_HealthIcon; funkin_play_components_HealthIcon.__name__ = "funkin.play.components.HealthIcon"; funkin_play_components_HealthIcon.__super__ = funkin_graphics_FunkinSprite; funkin_play_components_HealthIcon.prototype = $extend(funkin_graphics_FunkinSprite.prototype,{ characterId: null ,autoUpdate: null ,size: null ,bopEvery: null ,bopAngle: null ,playerId: null ,isPixel: null ,isLegacyStyle: null ,set_characterId: function(value) { if(value == this.characterId) { return value; } var tmp = value; this.characterId = tmp != null ? tmp : funkin_util_Constants.DEFAULT_HEALTH_ICON; return this.characterId; } ,set_isPixel: function(value) { if(value == this.isPixel) { return value; } this.isPixel = value; return this.isPixel; } ,toggleOldIcon: function() { if(this.characterId == "bf-old") { funkin_play_PlayState.instance.currentStage.getBoyfriend().initHealthIcon(false); } else { this.set_characterId("bf-old"); this.loadCharacter(this.characterId); } } ,configure: function(data) { if(data == null) { this.set_characterId(funkin_util_Constants.DEFAULT_HEALTH_ICON); this.set_isPixel(false); this.loadCharacter(this.characterId); var this1 = this.size; var x = 1.0; var y = 1.0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.offset.set_x(0.0); this.offset.set_y(0.0); this.set_flipX(false); } else { this.set_characterId(data.id); var tmp = data.isPixel; this.set_isPixel(tmp != null && tmp); this.loadCharacter(this.characterId); var this1 = this.size; var tmp = data.scale; var x = tmp != null ? tmp : 1.0; var tmp = data.scale; var y = tmp != null ? tmp : 1.0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.offset.set_x(data.offsets != null ? data.offsets[0] : 0.0); this.offset.set_y(data.offsets != null ? data.offsets[1] : 0.0); var tmp = data.flipX; this.set_flipX(tmp != null && tmp); } } ,update: function(elapsed) { funkin_graphics_FunkinSprite.prototype.update.call(this,elapsed); if(this.bopEvery != 0) { if(this.get_width() > this.get_height()) { var targetSize = funkin_util_MathUtil.coolLerp(this.get_width(),funkin_play_components_HealthIcon.HEALTH_ICON_SIZE * this.size.x,0.15) | 0; this.setGraphicSize(targetSize,0); } else { var targetSize = funkin_util_MathUtil.coolLerp(this.get_height(),funkin_play_components_HealthIcon.HEALTH_ICON_SIZE * this.size.y,0.15) | 0; this.setGraphicSize(0,targetSize); } this.set_angle(funkin_util_MathUtil.coolLerp(this.angle,0,0.15)); this.updateHitbox(); } this.updatePosition(); } ,updatePosition: function() { if(this.autoUpdate && funkin_play_PlayState.instance != null) { switch(this.playerId) { case 0: this.updateHealthIcon(funkin_play_PlayState.instance.health); this.set_x(funkin_play_PlayState.instance.healthBar.x + (funkin_play_PlayState.instance.healthBar.get_width() * (flixel_math_FlxMath.remapToRange(funkin_play_PlayState.instance.healthBar.get_value(),0,2,100,0) * 0.01) - funkin_play_components_HealthIcon.POSITION_OFFSET)); break; case 1: this.updateHealthIcon(funkin_play_components_HealthIcon.MAXIMUM_HEALTH - funkin_play_PlayState.instance.health); this.set_x(funkin_play_PlayState.instance.healthBar.x + funkin_play_PlayState.instance.healthBar.get_width() * (flixel_math_FlxMath.remapToRange(funkin_play_PlayState.instance.healthBar.get_value(),0,2,100,0) * 0.01) - (this.get_width() - funkin_play_components_HealthIcon.POSITION_OFFSET)); break; } this.set_y(funkin_play_PlayState.instance.healthBar.y - this.get_height() / 2); } } ,onStepHit: function(curStep) { if(this.bopEvery != 0 && curStep % this.bopEvery == 0 && this.isLegacyStyle) { if(this.get_width() > this.get_height()) { this.setGraphicSize(this.get_width() + funkin_play_components_HealthIcon.HEALTH_ICON_SIZE * this.size.x * funkin_play_components_HealthIcon.BOP_SCALE | 0,0); } else { this.setGraphicSize(0,this.get_height() + funkin_play_components_HealthIcon.HEALTH_ICON_SIZE * this.size.y * funkin_play_components_HealthIcon.BOP_SCALE | 0); } this.set_angle(this.angle + this.bopAngle * (this.playerId == 0 ? 1 : -1)); this.updateHitbox(); this.updatePosition(); } } ,initTargetSize: function() { this.setGraphicSize(funkin_play_components_HealthIcon.HEALTH_ICON_SIZE); this.updateHitbox(); } ,updateHealthIcon: function(health) { switch(this.getCurrentAnimation()) { case "": this.playAnimation("idle"); break; case "fromLosing":case "fromWinning": if(this.isAnimationFinished()) { this.playAnimation("idle"); } break; case "idle": if(health < funkin_play_components_HealthIcon.LOSING_THRESHOLD) { this.playAnimation("toLosing","losing"); } else if(health > funkin_play_components_HealthIcon.WINNING_THRESHOLD) { this.playAnimation("toWinning","winning"); } else { this.playAnimation("idle"); } break; case "losing": if(health > funkin_play_components_HealthIcon.LOSING_THRESHOLD) { this.playAnimation("fromLosing","idle"); } else { this.playAnimation("losing","idle"); } break; case "toLosing": if(this.isAnimationFinished()) { this.playAnimation("losing","idle"); } break; case "toWinning": if(this.isAnimationFinished()) { this.playAnimation("winning","idle"); } break; case "winning": if(health < funkin_play_components_HealthIcon.WINNING_THRESHOLD) { this.playAnimation("fromWinning","idle"); } else { this.playAnimation("winning","idle"); } break; default: this.playAnimation("idle"); } } ,loadAnimationNew: function() { this.animation.addByPrefix("idle","idle",24,true); this.animation.addByPrefix("winning","winning",24,true); this.animation.addByPrefix("losing","losing",24,true); this.animation.addByPrefix("toWinning","toWinning",24,false); this.animation.addByPrefix("toLosing","toLosing",24,false); this.animation.addByPrefix("fromWinning","fromWinning",24,false); this.animation.addByPrefix("fromLosing","fromLosing",24,false); } ,loadAnimationOld: function() { this.animation.add("idle",[0],0,false,false); this.animation.add("losing",[1],0,false,false); if(this.animation._sprite.get_numFrames() >= 3) { this.animation.add("winning",[2],0,false,false); } } ,correctCharacterId: function(charId) { if(charId == null) { return funkin_util_Constants.DEFAULT_HEALTH_ICON; } if(!openfl_utils_Assets.exists(funkin_Paths.image("icons/icon-" + charId))) { flixel_FlxG.log.advanced("No icon for character: " + charId + " : using default placeholder face instead!",flixel_system_debug_log_LogStyle.WARNING,true); return funkin_util_Constants.DEFAULT_HEALTH_ICON; } return charId; } ,isNewSpritesheet: function(charId) { return openfl_utils_Assets.exists(funkin_Paths.file("images/icons/icon-" + this.characterId + ".xml")); } ,loadCharacter: function(charId) { if(charId == null || this.correctCharacterId(charId) != charId) { this.set_characterId(this.correctCharacterId(charId)); return; } this.isLegacyStyle = !this.isNewSpritesheet(charId); if(!this.isLegacyStyle) { this.loadSparrow("icons/icon-" + charId); this.loadAnimationNew(); } else { this.loadGraphic(funkin_Paths.image("icons/icon-" + charId),true,this.isPixel ? funkin_play_components_HealthIcon.PIXEL_ICON_SIZE : funkin_play_components_HealthIcon.HEALTH_ICON_SIZE,this.isPixel ? funkin_play_components_HealthIcon.PIXEL_ICON_SIZE : funkin_play_components_HealthIcon.HEALTH_ICON_SIZE); this.loadAnimationOld(); } this.set_antialiasing(!this.isPixel); } ,getCurrentAnimation: function() { if(this.animation == null || this.animation._curAnim == null) { return ""; } return this.animation._curAnim.name; } ,hasAnimation: function(id) { if(this.animation == null) { return false; } return this.animation._animations.h[id] != null; } ,isAnimationFinished: function() { return this.animation.get_finished(); } ,playAnimation: function(name,fallback,restart) { if(restart == null) { restart = false; } if(this.hasAnimation(name)) { this.animation.play(name,restart,false,0); return; } if(fallback != null && this.hasAnimation(fallback)) { this.animation.play(fallback,restart,false,0); return; } } ,__class__: funkin_play_components_HealthIcon ,__properties__: $extend(funkin_graphics_FunkinSprite.prototype.__properties__,{set_isPixel:"set_isPixel",set_characterId:"set_characterId"}) }); var funkin_play_components_PopUpStuff = function() { this.offsets = [0,0]; flixel_group_FlxTypedGroup.call(this); }; $hxClasses["funkin.play.components.PopUpStuff"] = funkin_play_components_PopUpStuff; funkin_play_components_PopUpStuff.__name__ = "funkin.play.components.PopUpStuff"; funkin_play_components_PopUpStuff.__super__ = flixel_group_FlxTypedGroup; funkin_play_components_PopUpStuff.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ offsets: null ,displayRating: function(daRating) { var _gthis = this; var perfStart = funkin_util_TimerUtil.start(); if(daRating == null) { daRating = "good"; } var ratingPath = daRating; if(StringTools.startsWith(funkin_play_PlayState.instance.get_currentStageId(),"school")) { ratingPath = "weeb/pixelUI/" + ratingPath + "-pixel"; } var rating = funkin_graphics_FunkinSprite.create(0,0,ratingPath); var this1 = rating.scrollFactor; var x = 0.2; var y = 0.2; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); rating.zIndex = 1000; rating.set_x(flixel_FlxG.width * 0.474 + this.offsets[0]); rating.set_y(flixel_FlxG.camera.height * 0.45 - 60 + this.offsets[1]); rating.acceleration.set_y(550); rating.velocity.set_y(rating.velocity.y - flixel_FlxG.random.int(140,175)); rating.velocity.set_x(rating.velocity.x - flixel_FlxG.random.int(0,10)); this.add(rating); if(StringTools.startsWith(funkin_play_PlayState.instance.get_currentStageId(),"school")) { rating.setGraphicSize(rating.get_width() * funkin_util_Constants.PIXEL_ART_SCALE * 0.7 | 0); rating.set_antialiasing(false); } else { rating.setGraphicSize(rating.get_width() * 0.65 | 0); rating.set_antialiasing(true); } rating.updateHitbox(); rating.set_x(rating.x - rating.get_width() / 2); rating.set_y(rating.y - rating.get_height() / 2); var rating1 = rating; var tmp = funkin_Conductor.get_instance().get_beatLengthMs(); flixel_tweens_FlxTween.tween(rating1,{ alpha : 0},0.2,{ onComplete : function(tween) { _gthis.remove(rating,true); rating.destroy(); }, startDelay : tmp * 0.001}); haxe_Log.trace("displayRating took: " + funkin_util_TimerUtil.seconds(perfStart),{ fileName : "source/funkin/play/components/PopUpStuff.hx", lineNumber : 67, className : "funkin.play.components.PopUpStuff", methodName : "displayRating"}); } ,displayCombo: function(combo) { if(combo == null) { combo = 0; } var _gthis = this; var perfStart = funkin_util_TimerUtil.start(); if(combo == null) { combo = 0; } var pixelShitPart1 = ""; var pixelShitPart2 = ""; if(StringTools.startsWith(funkin_play_PlayState.instance.get_currentStageId(),"school")) { pixelShitPart1 = "weeb/pixelUI/"; pixelShitPart2 = "-pixel"; } var comboSpr = funkin_graphics_FunkinSprite.create(null,null,pixelShitPart1 + "combo" + pixelShitPart2); comboSpr.set_y(flixel_FlxG.camera.height * 0.44 + this.offsets[1]); comboSpr.set_x(flixel_FlxG.width * 0.507 + this.offsets[0]); comboSpr.acceleration.set_y(600); comboSpr.velocity.set_y(comboSpr.velocity.y - 150); comboSpr.velocity.set_x(comboSpr.velocity.x + flixel_FlxG.random.int(1,10)); if(StringTools.startsWith(funkin_play_PlayState.instance.get_currentStageId(),"school")) { comboSpr.setGraphicSize(comboSpr.get_width() * funkin_util_Constants.PIXEL_ART_SCALE * 0.7 | 0); comboSpr.set_antialiasing(false); } else { comboSpr.setGraphicSize(comboSpr.get_width() * 0.7 | 0); comboSpr.set_antialiasing(true); } comboSpr.updateHitbox(); var comboSpr1 = comboSpr; var tmp = funkin_Conductor.get_instance().get_beatLengthMs(); flixel_tweens_FlxTween.tween(comboSpr1,{ alpha : 0},0.2,{ onComplete : function(tween) { _gthis.remove(comboSpr,true); comboSpr.destroy(); }, startDelay : tmp * 0.001}); var seperatedScore = []; var tempCombo = combo; while(tempCombo != 0) { seperatedScore.push(tempCombo % 10); tempCombo = tempCombo / 10 | 0; } while(seperatedScore.length < 3) seperatedScore.push(0); var daLoop = 1; var _g = 0; while(_g < seperatedScore.length) { var i = seperatedScore[_g]; ++_g; var numScore = [funkin_graphics_FunkinSprite.create(0,comboSpr.y,pixelShitPart1 + "num" + (i | 0) + pixelShitPart2)]; if(StringTools.startsWith(funkin_play_PlayState.instance.get_currentStageId(),"school")) { numScore[0].setGraphicSize(numScore[0].get_width() * funkin_util_Constants.PIXEL_ART_SCALE * 0.7 | 0); numScore[0].set_antialiasing(false); } else { numScore[0].setGraphicSize(numScore[0].get_width() * 0.45 | 0); numScore[0].set_antialiasing(true); } numScore[0].updateHitbox(); numScore[0].set_x(comboSpr.x - 36 * daLoop - 65); numScore[0].acceleration.set_y(flixel_FlxG.random.int(250,300)); numScore[0].velocity.set_y(numScore[0].velocity.y - flixel_FlxG.random.int(130,150)); numScore[0].velocity.set_x(flixel_FlxG.random.float(-5,5)); this.add(numScore[0]); var numScore1 = numScore[0]; var tmp = (function(numScore) { return function(tween) { _gthis.remove(numScore[0],true); numScore[0].destroy(); }; })(numScore); var tmp1 = funkin_Conductor.get_instance().get_beatLengthMs(); flixel_tweens_FlxTween.tween(numScore1,{ alpha : 0},0.2,{ onComplete : tmp, startDelay : tmp1 * 0.002}); ++daLoop; } haxe_Log.trace("displayCombo took: " + funkin_util_TimerUtil.seconds(perfStart),{ fileName : "source/funkin/play/components/PopUpStuff.hx", lineNumber : 165, className : "funkin.play.components.PopUpStuff", methodName : "displayCombo"}); return combo; } ,__class__: funkin_play_components_PopUpStuff }); var funkin_play_components_TallyCounter = function(x,y,neededNumber,flavour,align) { if(align == null) { align = "left"; } if(flavour == null) { flavour = -1; } if(neededNumber == null) { neededNumber = 0; } this.tmr = 0; this.align = "left"; this.flavour = -1; this.neededNumber = 0; this.curNumber = 0; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.align = align; this.flavour = flavour; this.neededNumber = neededNumber; if(this.curNumber == neededNumber) { this.drawNumbers(); } }; $hxClasses["funkin.play.components.TallyCounter"] = funkin_play_components_TallyCounter; funkin_play_components_TallyCounter.__name__ = "funkin.play.components.TallyCounter"; funkin_play_components_TallyCounter.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_components_TallyCounter.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ curNumber: null ,neededNumber: null ,flavour: null ,align: null ,tmr: null ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); if(this.curNumber < this.neededNumber) { this.drawNumbers(); } } ,drawNumbers: function() { var seperatedScore = []; var tempCombo = Math.round(this.curNumber); var fullNumberDigits = Math.max(1,Math.ceil(funkin_util_MathUtil.logBase(10,this.neededNumber))) | 0; while(tempCombo != 0) { seperatedScore.push(tempCombo % 10); tempCombo = Math.floor(tempCombo / 10); } if(seperatedScore.length == 0) { seperatedScore.push(0); } seperatedScore.reverse(); var _g_current = 0; var _g_array = seperatedScore; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = _g_key; var num = _g_value; if(ind >= this.group.members.length) { var xPos = ind * (43 * this.scale.x); if(this.align == "right") { xPos -= fullNumberDigits * (43 * this.scale.x); } var numb = new funkin_play_components_TallyNumber(xPos,0,num); var this1 = numb.scale; var x = this.scale.x; var y = this.scale.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(numb); numb.set_color(this.flavour); } else { this.group.members[ind].animation.play(num == null ? "null" : "" + num); this.group.members[ind].set_color(this.flavour); } } } ,__class__: funkin_play_components_TallyCounter }); var funkin_play_components_TallyNumber = function(x,y,digit) { flixel_FlxSprite.call(this,x,y); this.set_frames(funkin_Paths.getSparrowAtlas("resultScreen/tallieNumber")); this.animation.addByPrefix("0",0 + " small",24,false); this.animation.addByPrefix("1",1 + " small",24,false); this.animation.addByPrefix("2",2 + " small",24,false); this.animation.addByPrefix("3",3 + " small",24,false); this.animation.addByPrefix("4",4 + " small",24,false); this.animation.addByPrefix("5",5 + " small",24,false); this.animation.addByPrefix("6",6 + " small",24,false); this.animation.addByPrefix("7",7 + " small",24,false); this.animation.addByPrefix("8",8 + " small",24,false); this.animation.addByPrefix("9",9 + " small",24,false); this.animation.play(digit == null ? "null" : "" + digit); this.updateHitbox(); }; $hxClasses["funkin.play.components.TallyNumber"] = funkin_play_components_TallyNumber; funkin_play_components_TallyNumber.__name__ = "funkin.play.components.TallyNumber"; funkin_play_components_TallyNumber.__super__ = flixel_FlxSprite; funkin_play_components_TallyNumber.prototype = $extend(flixel_FlxSprite.prototype,{ __class__: funkin_play_components_TallyNumber }); var funkin_play_cutscene_VanillaCutscenes = function() { }; $hxClasses["funkin.play.cutscene.VanillaCutscenes"] = funkin_play_cutscene_VanillaCutscenes; funkin_play_cutscene_VanillaCutscenes.__name__ = "funkin.play.cutscene.VanillaCutscenes"; funkin_play_cutscene_VanillaCutscenes.blackScreen = null; funkin_play_cutscene_VanillaCutscenes.playHorrorStartCutscene = function() { funkin_play_PlayState.instance.isInCutscene = true; funkin_play_PlayState.instance.camHUD.set_visible(false); funkin_play_cutscene_VanillaCutscenes.blackScreen = new flixel_FlxSprite(-200,-200).makeGraphic(flixel_FlxG.width * 2,flixel_FlxG.height * 2,-16777216); var this1 = funkin_play_cutscene_VanillaCutscenes.blackScreen.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); funkin_play_cutscene_VanillaCutscenes.blackScreen.zIndex = 1000000; funkin_play_PlayState.instance.add(funkin_play_cutscene_VanillaCutscenes.blackScreen); new flixel_util_FlxTimer().start(0.1,function(_) { haxe_Log.trace("Playing horrorland cutscene...",{ fileName : "source/funkin/play/cutscene/VanillaCutscenes.hx", lineNumber : 35, className : "funkin.play.cutscene.VanillaCutscenes", methodName : "playHorrorStartCutscene"}); funkin_play_PlayState.instance.remove(funkin_play_cutscene_VanillaCutscenes.blackScreen); funkin_play_PlayState.instance.cameraFollowPoint.setPosition(400,-2050); funkin_play_PlayState.instance.resetCamera(); flixel_FlxG.camera.set_zoom(2.5); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("Lights_Turn_On"),null,function() { haxe_Log.trace("SFX done...",{ fileName : "source/funkin/play/cutscene/VanillaCutscenes.hx", lineNumber : 46, className : "funkin.play.cutscene.VanillaCutscenes", methodName : "playHorrorStartCutscene"}); funkin_play_PlayState.instance.camHUD.set_visible(true); funkin_play_PlayState.instance.camHUD.set_alpha(0.0); flixel_tweens_FlxTween.tween(funkin_play_PlayState.instance.camHUD,{ alpha : 1.0},funkin_play_cutscene_VanillaCutscenes.TWEEN_DURATION,{ ease : flixel_tweens_FlxEase.quadInOut}); haxe_Log.trace("Zoom out done...",{ fileName : "source/funkin/play/cutscene/VanillaCutscenes.hx", lineNumber : 52, className : "funkin.play.cutscene.VanillaCutscenes", methodName : "playHorrorStartCutscene"}); haxe_Log.trace("Begin countdown (ends cutscene)",{ fileName : "source/funkin/play/cutscene/VanillaCutscenes.hx", lineNumber : 53, className : "funkin.play.cutscene.VanillaCutscenes", methodName : "playHorrorStartCutscene"}); funkin_play_PlayState.instance.startCountdown(); }); }); }; var funkin_play_cutscene_CutsceneType = $hxEnums["funkin.play.cutscene.CutsceneType"] = { __ename__:"funkin.play.cutscene.CutsceneType",__constructs__:null ,STARTING: {_hx_name:"STARTING",_hx_index:0,__enum__:"funkin.play.cutscene.CutsceneType",toString:$estr} ,MIDSONG: {_hx_name:"MIDSONG",_hx_index:1,__enum__:"funkin.play.cutscene.CutsceneType",toString:$estr} ,ENDING: {_hx_name:"ENDING",_hx_index:2,__enum__:"funkin.play.cutscene.CutsceneType",toString:$estr} }; funkin_play_cutscene_CutsceneType.__constructs__ = [funkin_play_cutscene_CutsceneType.STARTING,funkin_play_cutscene_CutsceneType.MIDSONG,funkin_play_cutscene_CutsceneType.ENDING]; funkin_play_cutscene_CutsceneType.__empty_constructs__ = [funkin_play_cutscene_CutsceneType.STARTING,funkin_play_cutscene_CutsceneType.MIDSONG,funkin_play_cutscene_CutsceneType.ENDING]; var funkin_play_cutscene_dialogue_Conversation = function(id) { this.currentDialogueLine = 0; this.currentDialogueEntry = 0; this.state = funkin_play_cutscene_dialogue_ConversationState.Start; flixel_group_FlxTypedSpriteGroup.call(this); this.id = id; this._data = funkin_play_cutscene_dialogue_Conversation._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not parse conversation data for id: " + id); } }; $hxClasses["funkin.play.cutscene.dialogue.Conversation"] = funkin_play_cutscene_dialogue_Conversation; funkin_play_cutscene_dialogue_Conversation.__name__ = "funkin.play.cutscene.dialogue.Conversation"; funkin_play_cutscene_dialogue_Conversation.__interfaces__ = [funkin_data_IRegistryEntry,funkin_modding_IDialogueScriptedClass]; funkin_play_cutscene_dialogue_Conversation._fetchData = function(id) { return funkin_data_dialogue_conversation_ConversationRegistry.get_instance().parseEntryDataWithMigration(id,funkin_data_dialogue_conversation_ConversationRegistry.get_instance().fetchEntryVersion(id)); }; funkin_play_cutscene_dialogue_Conversation.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_cutscene_dialogue_Conversation.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ id: null ,state: null ,_data: null ,currentDialogueEntry: null ,get_currentDialogueEntryCount: function() { return this._data.dialogue.length; } ,currentDialogueLine: null ,get_currentDialogueLineCount: function() { return this.get_currentDialogueEntryData().text.length; } ,get_currentDialogueEntryData: function() { if(this._data == null || this._data.dialogue == null) { return null; } if(this.currentDialogueEntry < 0 || this.currentDialogueEntry >= this._data.dialogue.length) { return null; } return this._data.dialogue[this.currentDialogueEntry]; } ,get_currentDialogueLineString: function() { var tmp = this.get_currentDialogueEntryData(); if(tmp != null) { return tmp.text[this.currentDialogueLine]; } else { return null; } } ,music: null ,backdrop: null ,currentSpeaker: null ,currentDialogueBox: null ,onCreate: function(event) { this.currentDialogueEntry = 0; this.currentDialogueLine = 0; this.state = funkin_play_cutscene_dialogue_ConversationState.Start; this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_START",this,false)); } ,setupMusic: function() { if(this._data.music == null) { return; } this.music = funkin_audio_FunkinSound.load(funkin_Paths.music(this._data.music.asset),0.0,true,true,true); if(this._data.music.fadeTime > 0.0) { flixel_tweens_FlxTween.tween(this.music,{ volume : 1.0},this._data.music.fadeTime,{ ease : flixel_tweens_FlxEase.linear}); } else { this.music.set_volume(1.0); } } ,pauseMusic: function() { if(this.music != null) { this.music.pause(); } } ,resumeMusic: function() { if(this.music != null) { this.music.resume(); } } ,setupBackdrop: function() { if(this.backdrop != null) { this.backdrop.destroy(); this.remove(this.backdrop); this.backdrop = null; } this.backdrop = new funkin_graphics_FunkinSprite(0,0); if(this._data.backdrop == null) { return; } var backdropData = this._data.backdrop.data; var targetColor = flixel_util_FlxColor.fromString(backdropData.color); this.backdrop.makeSolidColor(flixel_FlxG.width | 0,flixel_FlxG.height | 0,targetColor); if(backdropData.fadeTime > 0.0) { this.backdrop.set_alpha(0.0); flixel_tweens_FlxTween.tween(this.backdrop,{ alpha : 1.0},backdropData.fadeTime,{ ease : function(t) { return Math.floor(t * 10) / 10; }}); } else { this.backdrop.set_alpha(1.0); } this.backdrop.zIndex = 10; this.add(this.backdrop); this.refresh(); } ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); this.dispatchEvent(new funkin_modding_events_UpdateScriptEvent(elapsed)); } ,showCurrentSpeaker: function() { var nextSpeakerId = this.get_currentDialogueEntryData().speaker; if(this.currentSpeaker != null && this.currentSpeaker.alive && nextSpeakerId == this.currentSpeaker.id) { return; } if(this.currentSpeaker != null) { this.remove(this.currentSpeaker); this.currentSpeaker.kill(); this.currentSpeaker = null; } var nextSpeaker = funkin_data_dialogue_speaker_SpeakerRegistry.get_instance().fetchEntry(nextSpeakerId); if(nextSpeaker == null) { if(nextSpeakerId == null) { haxe_Log.trace("Dialogue entry has no speaker.",{ fileName : "source/funkin/play/cutscene/dialogue/Conversation.hx", lineNumber : 225, className : "funkin.play.cutscene.dialogue.Conversation", methodName : "showCurrentSpeaker"}); } else { haxe_Log.trace("Speaker could not be retrieved.",{ fileName : "source/funkin/play/cutscene/dialogue/Conversation.hx", lineNumber : 229, className : "funkin.play.cutscene.dialogue.Conversation", methodName : "showCurrentSpeaker"}); } return; } if(!nextSpeaker.alive) { nextSpeaker.revive(); } funkin_modding_events_ScriptEventDispatcher.callEvent(nextSpeaker,new funkin_modding_events_ScriptEvent("CREATE",true)); this.currentSpeaker = nextSpeaker; this.currentSpeaker.zIndex = 200; this.add(this.currentSpeaker); this.refresh(); } ,playSpeakerAnimation: function() { var nextSpeakerAnimation = this.get_currentDialogueEntryData().speakerAnimation; if(nextSpeakerAnimation == null) { return; } this.currentSpeaker.playAnimation(nextSpeakerAnimation); } ,refresh: function() { var Order = -1; if(Order == null) { Order = -1; } var order = Order; if(order == null) { order = -1; } var _g = funkin_util_SortUtil.byZIndex; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.group.members.sort(tmp); } ,showCurrentDialogueBox: function() { var tmp = this.get_currentDialogueEntryData(); var nextDialogueBoxId = tmp != null ? tmp.box : null; if(this.currentDialogueBox != null && this.currentDialogueBox.alive && nextDialogueBoxId == this.currentDialogueBox.id) { return; } if(this.currentDialogueBox != null) { this.remove(this.currentDialogueBox); this.currentDialogueBox.kill(); this.currentDialogueBox = null; } var nextDialogueBox = funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.get_instance().fetchEntry(nextDialogueBoxId); if(nextDialogueBox == null) { haxe_Log.trace("Dialogue box could not be retrieved.",{ fileName : "source/funkin/play/cutscene/dialogue/Conversation.hx", lineNumber : 275, className : "funkin.play.cutscene.dialogue.Conversation", methodName : "showCurrentDialogueBox"}); return; } if(!nextDialogueBox.alive) { nextDialogueBox.revive(); } funkin_modding_events_ScriptEventDispatcher.callEvent(nextDialogueBox,new funkin_modding_events_ScriptEvent("CREATE",true)); this.currentDialogueBox = nextDialogueBox; this.currentDialogueBox.zIndex = 300; this.currentDialogueBox.typingCompleteCallback = $bind(this,this.onTypingComplete); this.add(this.currentDialogueBox); this.refresh(); } ,playDialogueBoxAnimation: function() { var tmp = this.get_currentDialogueEntryData(); var nextDialogueBoxAnimation = tmp != null ? tmp.boxAnimation : null; if(nextDialogueBoxAnimation == null) { return; } this.currentDialogueBox.playAnimation(nextDialogueBoxAnimation); } ,onTypingComplete: function() { if(this.state == funkin_play_cutscene_dialogue_ConversationState.Speaking) { this.state = funkin_play_cutscene_dialogue_ConversationState.Idle; } else { haxe_Log.trace("[WARNING] Unexpected state transition from " + Std.string(this.state),{ fileName : "source/funkin/play/cutscene/dialogue/Conversation.hx", lineNumber : 308, className : "funkin.play.cutscene.dialogue.Conversation", methodName : "onTypingComplete"}); this.state = funkin_play_cutscene_dialogue_ConversationState.Idle; } } ,startConversation: function() { this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_START",this,true)); } ,advanceConversation: function() { switch(this.state._hx_index) { case 0: this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_START",this,true)); break; case 1: this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_COMPLETE_LINE",this,true)); break; case 2: this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_COMPLETE_LINE",this,true)); break; case 3: this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_LINE",this,true)); break; case 4: this.endOutro(); break; } } ,dispatchEvent: function(event) { var currentState = flixel_FlxG.game._state; currentState.dispatchEvent(event); } ,resetConversation: function() { this.currentDialogueEntry = 0; this.state = funkin_play_cutscene_dialogue_ConversationState.Start; if(this.outroTween != null) { this.outroTween.cancel(); } this.outroTween = null; if(this.music != null) { var _this = this.music; _this.cleanup(_this.autoDestroy,true); } this.music = null; if(this.currentSpeaker != null) { this.currentSpeaker.kill(); } this.remove(this.currentSpeaker); this.currentSpeaker = null; if(this.currentDialogueBox != null) { this.currentDialogueBox.kill(); } this.remove(this.currentDialogueBox); this.currentDialogueBox = null; if(this.backdrop != null) { this.backdrop.destroy(); } this.remove(this.backdrop); this.backdrop = null; this.startConversation(); } ,skipConversation: function() { this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_SKIP",this,true)); } ,outroTween: null ,startOutro: function() { var _gthis = this; var tmp = this._data; var _g = tmp != null ? tmp.outro : null; if(_g == null) { this.endOutro(); } else { switch(_g._hx_index) { case 0: var _g1 = _g.data; this.endOutro(); break; case 1: var outroData = _g.data; this.outroTween = flixel_tweens_FlxTween.tween(this,{ alpha : 0.0},outroData.fadeTime,{ type : 8, startDelay : 0, onComplete : function(_) { _gthis.endOutro(); }, ease : function(t) { return Math.floor(t * 8) / 8; }}); flixel_tweens_FlxTween.tween(this.music,{ volume : 0.0},outroData.fadeTime); break; } } } ,completeCallback: null ,endOutro: function() { funkin_modding_events_ScriptEventDispatcher.callEvent(this,new funkin_modding_events_ScriptEvent("DESTROY",false)); } ,onDialogueStart: function(event) { this.propagateEvent(event); this.setupMusic(); this.setupBackdrop(); this.state = funkin_play_cutscene_dialogue_ConversationState.Opening; this.showCurrentDialogueBox(); this.playDialogueBoxAnimation(); } ,onDialogueLine: function(event) { this.propagateEvent(event); if(event.eventCanceled) { return; } if((this.currentDialogueLine += 1) >= this.get_currentDialogueLineCount()) { this.currentDialogueLine = 0; if((this.currentDialogueEntry += 1) >= this.get_currentDialogueEntryCount()) { this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_END",this,false)); } else if(this.state == funkin_play_cutscene_dialogue_ConversationState.Idle) { this.showCurrentDialogueBox(); this.playDialogueBoxAnimation(); this.state = funkin_play_cutscene_dialogue_ConversationState.Opening; } } else { this.state = funkin_play_cutscene_dialogue_ConversationState.Speaking; this.currentDialogueBox.appendText(this.get_currentDialogueLineString()); } } ,onDialogueCompleteLine: function(event) { this.propagateEvent(event); if(event.eventCanceled) { return; } this.currentDialogueBox.skip(); } ,onDialogueSkip: function(event) { this.propagateEvent(event); if(event.eventCanceled) { return; } this.dispatchEvent(new funkin_modding_events_DialogueScriptEvent("DIALOGUE_END",this,false)); } ,onDialogueEnd: function(event) { this.propagateEvent(event); this.state = funkin_play_cutscene_dialogue_ConversationState.Ending; } ,onUpdate: function(event) { this.propagateEvent(event); if(event.eventCanceled) { return; } switch(this.state._hx_index) { case 0: return; case 1: var tmp; if(this.currentDialogueBox != null) { if(!this.currentDialogueBox.isAnimationFinished()) { var tmp1 = this.currentDialogueBox.getCurrentAnimation(); var tmp2 = this.get_currentDialogueEntryData(); tmp = tmp1 != (tmp2 != null ? tmp2.boxAnimation : null); } else { tmp = true; } } else { tmp = false; } if(tmp) { this.state = funkin_play_cutscene_dialogue_ConversationState.Speaking; this.showCurrentSpeaker(); this.playSpeakerAnimation(); this.currentDialogueBox.setText(this.get_currentDialogueLineString()); } return; case 2: return; case 3: return; case 4: if(this.outroTween == null) { this.startOutro(); } return; } } ,onDestroy: function(event) { this.propagateEvent(event); if(this.outroTween != null) { this.outroTween.cancel(); } this.outroTween = null; if(this.music != null) { var _this = this.music; _this.cleanup(_this.autoDestroy,true); } this.music = null; if(this.currentSpeaker != null) { this.currentSpeaker.kill(); } this.remove(this.currentSpeaker); this.currentSpeaker = null; if(this.currentDialogueBox != null) { this.currentDialogueBox.kill(); } this.remove(this.currentDialogueBox); this.currentDialogueBox = null; if(this.backdrop != null) { this.backdrop.destroy(); } this.remove(this.backdrop); this.backdrop = null; this.group.clear(); if(this.completeCallback != null) { this.completeCallback(); } } ,onScriptEvent: function(event) { this.propagateEvent(event); } ,propagateEvent: function(event) { if(this.currentDialogueBox != null && this.currentDialogueBox.exists) { funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentDialogueBox,event); } if(this.currentSpeaker != null && this.currentSpeaker.exists) { funkin_modding_events_ScriptEventDispatcher.callEvent(this.currentSpeaker,event); } } ,revive: function() { flixel_group_FlxTypedSpriteGroup.prototype.revive.call(this); this.set_alpha(1); this.set_visible(true); } ,kill: function() { this._skipTransformChildren = true; this.set_alive(false); this.set_exists(false); this._skipTransformChildren = false; if(this.group != null) { this.group.kill(); } if(this.outroTween != null) { this.outroTween.cancel(); this.outroTween = null; } } ,toString: function() { return "Conversation(" + this.id + ")"; } ,__class__: funkin_play_cutscene_dialogue_Conversation ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{get_currentDialogueLineString:"get_currentDialogueLineString",get_currentDialogueEntryData:"get_currentDialogueEntryData",get_currentDialogueLineCount:"get_currentDialogueLineCount",get_currentDialogueEntryCount:"get_currentDialogueEntryCount"}) }); var funkin_play_cutscene_dialogue_ConversationState = $hxEnums["funkin.play.cutscene.dialogue.ConversationState"] = { __ename__:"funkin.play.cutscene.dialogue.ConversationState",__constructs__:null ,Start: {_hx_name:"Start",_hx_index:0,__enum__:"funkin.play.cutscene.dialogue.ConversationState",toString:$estr} ,Opening: {_hx_name:"Opening",_hx_index:1,__enum__:"funkin.play.cutscene.dialogue.ConversationState",toString:$estr} ,Speaking: {_hx_name:"Speaking",_hx_index:2,__enum__:"funkin.play.cutscene.dialogue.ConversationState",toString:$estr} ,Idle: {_hx_name:"Idle",_hx_index:3,__enum__:"funkin.play.cutscene.dialogue.ConversationState",toString:$estr} ,Ending: {_hx_name:"Ending",_hx_index:4,__enum__:"funkin.play.cutscene.dialogue.ConversationState",toString:$estr} }; funkin_play_cutscene_dialogue_ConversationState.__constructs__ = [funkin_play_cutscene_dialogue_ConversationState.Start,funkin_play_cutscene_dialogue_ConversationState.Opening,funkin_play_cutscene_dialogue_ConversationState.Speaking,funkin_play_cutscene_dialogue_ConversationState.Idle,funkin_play_cutscene_dialogue_ConversationState.Ending]; funkin_play_cutscene_dialogue_ConversationState.__empty_constructs__ = [funkin_play_cutscene_dialogue_ConversationState.Start,funkin_play_cutscene_dialogue_ConversationState.Opening,funkin_play_cutscene_dialogue_ConversationState.Speaking,funkin_play_cutscene_dialogue_ConversationState.Idle,funkin_play_cutscene_dialogue_ConversationState.Ending]; var funkin_play_cutscene_dialogue_DialogueBox = function(id) { this.globalOffsets = [0,0]; this.animOffsets = [0,0]; this.animationOffsets = new haxe_ds_StringMap(); flixel_group_FlxTypedSpriteGroup.call(this); this.id = id; this._data = funkin_play_cutscene_dialogue_DialogueBox._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not parse dialogue box data for id: " + id); } }; $hxClasses["funkin.play.cutscene.dialogue.DialogueBox"] = funkin_play_cutscene_dialogue_DialogueBox; funkin_play_cutscene_dialogue_DialogueBox.__name__ = "funkin.play.cutscene.dialogue.DialogueBox"; funkin_play_cutscene_dialogue_DialogueBox.__interfaces__ = [funkin_data_IRegistryEntry,funkin_modding_IDialogueScriptedClass]; funkin_play_cutscene_dialogue_DialogueBox._fetchData = function(id) { return funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.get_instance().parseEntryDataWithMigration(id,funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.get_instance().fetchEntryVersion(id)); }; funkin_play_cutscene_dialogue_DialogueBox.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_cutscene_dialogue_DialogueBox.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ id: null ,get_dialogueBoxName: function() { var tmp = this._data.name; if(tmp != null) { return tmp; } else { return "UNKNOWN"; } } ,_data: null ,animationOffsets: null ,animOffsets: null ,set_animOffsets: function(value) { if(this.animOffsets == null) { this.animOffsets = [0,0]; } if(this.animOffsets[0] == value[0] && this.animOffsets[1] == value[1]) { return value; } var xDiff = value[0] - this.animOffsets[0]; var yDiff = value[1] - this.animOffsets[1]; this.set_x(this.x + xDiff); this.set_y(this.y + yDiff); return this.animOffsets = value; } ,globalOffsets: null ,set_globalOffsets: function(value) { if(this.globalOffsets == null) { this.globalOffsets = [0,0]; } if(this.globalOffsets == value) { return value; } var xDiff = value[0] - this.globalOffsets[0]; var yDiff = value[1] - this.globalOffsets[1]; this.set_x(this.x + xDiff); this.set_y(this.y + yDiff); return this.globalOffsets = value; } ,boxSprite: null ,textDisplay: null ,text: null ,set_text: function(value) { this.text = value; this.textDisplay.resetText(this.text); this.textDisplay.start(); return this.text; } ,speed: null ,set_speed: function(value) { this.speed = value; this.textDisplay.delay = this.speed * 0.05; return this.speed; } ,onCreate: function(event) { this.set_globalOffsets([0,0]); this.set_x(0); this.set_y(0); this.set_alpha(1); this.loadSpritesheet(); this.loadAnimations(); this.loadText(); } ,loadSpritesheet: function() { if(this.boxSprite != null) { this.remove(this.boxSprite); this.boxSprite = null; } this.boxSprite = new funkin_graphics_FunkinSprite(0,0); haxe_Log.trace("[DIALOGUE BOX] Loading spritesheet " + this._data.assetPath + " for " + this.id,{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 131, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "loadSpritesheet"}); var tex = funkin_Paths.getSparrowAtlas(this._data.assetPath); if(tex == null) { haxe_Log.trace("Could not load Sparrow sprite: " + this._data.assetPath,{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 136, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "loadSpritesheet"}); return; } this.boxSprite.set_frames(tex); if(this._data.isPixel) { this.boxSprite.set_antialiasing(false); } else { this.boxSprite.set_antialiasing(true); } this.set_flipX(this._data.flipX); this.set_flipY(this._data.flipY); this.set_globalOffsets(this._data.offsets); this.setScale(this._data.scale); this.add(this.boxSprite); } ,setText: function(newText) { this.textDisplay.prefix = ""; this.textDisplay.resetText(newText); this.textDisplay.start(); } ,appendText: function(newText) { this.textDisplay.prefix = this.textDisplay.text; this.textDisplay.resetText(newText); this.textDisplay.start(); } ,skip: function() { this.textDisplay.skip(); } ,onTypingComplete: function() { if(this.typingCompleteCallback != null) { this.typingCompleteCallback(); } } ,typingCompleteCallback: null ,setScale: function(scale) { if(scale == null) { scale = 1.0; } this.boxSprite.scale.set_x(scale); this.boxSprite.scale.set_y(scale); this.boxSprite.updateHitbox(); } ,kill: function() { flixel_group_FlxTypedSpriteGroup.prototype.kill.call(this); if(this.boxSprite != null) { this.boxSprite.kill(); this.boxSprite = null; } if(this.textDisplay != null) { this.textDisplay.kill(); this.textDisplay = null; } this.group.clear(); } ,revive: function() { flixel_group_FlxTypedSpriteGroup.prototype.revive.call(this); this.set_visible(true); this.set_alpha(1.0); } ,loadAnimations: function() { haxe_Log.trace("[DIALOGUE BOX] Loading " + this._data.animations.length + " animations for " + this.id,{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 231, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "loadAnimations"}); funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(this.boxSprite,this._data.animations); var _g = 0; var _g1 = this._data.animations; while(_g < _g1.length) { var anim = _g1[_g]; ++_g; if(anim.offsets == null) { this.setAnimationOffsets(anim.name,0,0); } else { this.setAnimationOffsets(anim.name,anim.offsets[0],anim.offsets[1]); } } var tmp = this.boxSprite; var tmp1 = tmp != null ? tmp.animation : null; var tmp = tmp1 != null ? tmp1.getNameList() : null; var animNames = tmp != null ? tmp : []; haxe_Log.trace("[DIALOGUE BOX] Successfully loaded " + animNames.length + " animations for " + this.id,{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 248, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "loadAnimations"}); this.boxSprite.animation.callback = $bind(this,this.onAnimationFrame); this.boxSprite.animation.finishCallback = $bind(this,this.onAnimationFinished); } ,onAnimationFinished: function(name) { } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } } ,loadText: function() { this.textDisplay = new flixel_addons_text_FlxTypeText(0,0,300,"",32); this.textDisplay.set_fieldWidth(this._data.text.width); var tmp = this.textDisplay; var tmp1 = this._data.text.fontFamily; var tmp2 = this._data.text.size; var tmp3 = flixel_util_FlxColor.fromString(this._data.text.color); var tmp4 = this._data.text.shadowColor; tmp.setFormat(tmp1,tmp2,tmp3,"left",flixel_text_FlxTextBorderStyle.SHADOW,flixel_util_FlxColor.fromString(tmp4 != null ? tmp4 : "#00000000"),false); var tmp = this._data.text.shadowWidth; this.textDisplay.set_borderSize(tmp != null ? tmp : 2); var tmp = funkin_audio_FunkinSound.load(funkin_Paths.sound("pixelText"),0.6); this.textDisplay.sounds = [tmp]; this.textDisplay.completeCallback = $bind(this,this.onTypingComplete); var fh = this.textDisplay; fh.set_x(fh.x + this._data.text.offsets[0]); var fh = this.textDisplay; fh.set_y(fh.y + this._data.text.offsets[1]); this.add(this.textDisplay); } ,playAnimation: function(name,restart,reversed) { if(reversed == null) { reversed = false; } if(restart == null) { restart = false; } var correctName = this.correctAnimationName(name); if(correctName == null) { return; } this.boxSprite.animation.play(correctName,restart,false,0); this.applyAnimationOffsets(correctName); } ,correctAnimationName: function(name) { if(this.hasAnimation(name)) { return name; } haxe_Log.trace("[DIALOGUE BOX] Animation \"" + name + "\" does not exist!",{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 321, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "correctAnimationName"}); if(name.lastIndexOf("-") != -1) { var correctName = name.substring(0,name.lastIndexOf("-")); haxe_Log.trace("[DIALOGUE BOX] Attempting to fallback to \"" + correctName + "\"",{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 327, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "correctAnimationName"}); return this.correctAnimationName(correctName); } else if(name != "idle") { haxe_Log.trace("[DIALOGUE BOX] Attempting to fallback to \"idle\"",{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 334, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "correctAnimationName"}); return this.correctAnimationName("idle"); } else { haxe_Log.trace("[DIALOGUE BOX] Failing animation playback.",{ fileName : "source/funkin/play/cutscene/dialogue/DialogueBox.hx", lineNumber : 339, className : "funkin.play.cutscene.dialogue.DialogueBox", methodName : "correctAnimationName"}); return null; } } ,hasAnimation: function(id) { if(this.boxSprite.animation == null) { return false; } return this.boxSprite.animation._animations.h[id] != null; } ,getCurrentAnimation: function() { if(this.animation == null || this.animation._curAnim == null) { return ""; } return this.animation._curAnim.name; } ,setAnimationOffsets: function(name,xOffset,yOffset) { this.animationOffsets.h[name] = [xOffset,yOffset]; } ,applyAnimationOffsets: function(name) { var offsets = this.animationOffsets.h[name]; if(offsets != null && !(offsets[0] == 0 && offsets[1] == 0)) { this.set_animOffsets(offsets); } else { this.set_animOffsets([0,0]); } } ,isAnimationFinished: function() { var tmp = this.boxSprite; var tmp1 = tmp != null ? tmp.animation : null; var tmp = tmp1 != null ? tmp1.get_finished() : null; if(tmp != null) { return tmp; } else { return false; } } ,onDialogueStart: function(event) { } ,onDialogueCompleteLine: function(event) { } ,onDialogueLine: function(event) { } ,onDialogueSkip: function(event) { } ,onDialogueEnd: function(event) { } ,onUpdate: function(event) { } ,onDestroy: function(event) { if(this.boxSprite != null) { this.remove(this.boxSprite); } this.boxSprite = null; if(this.textDisplay != null) { this.remove(this.textDisplay); } this.textDisplay = null; this.group.clear(); this.set_x(0); this.set_y(0); this.set_globalOffsets([0,0]); this.set_alpha(0); this.kill(); } ,onScriptEvent: function(event) { } ,toString: function() { return "DialogueBox(" + this.id + ")"; } ,__class__: funkin_play_cutscene_dialogue_DialogueBox ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_speed:"set_speed",set_text:"set_text",set_globalOffsets:"set_globalOffsets",set_animOffsets:"set_animOffsets",get_dialogueBoxName:"get_dialogueBoxName"}) }); var funkin_play_cutscene_dialogue_ScriptedConversation = function(id) { funkin_play_cutscene_dialogue_Conversation.call(this,id); }; $hxClasses["funkin.play.cutscene.dialogue.ScriptedConversation"] = funkin_play_cutscene_dialogue_ScriptedConversation; funkin_play_cutscene_dialogue_ScriptedConversation.__name__ = "funkin.play.cutscene.dialogue.ScriptedConversation"; funkin_play_cutscene_dialogue_ScriptedConversation.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_cutscene_dialogue_ScriptedConversation.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.cutscene.dialogue.Conversation"); }; funkin_play_cutscene_dialogue_ScriptedConversation.init = function(clsName,id) { var value = $hxClasses["funkin.play.cutscene.dialogue.ScriptedConversation"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.cutscene.dialogue.Conversation"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.cutscene.dialogue.ScriptedConversation" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_cutscene_dialogue_ScriptedConversation.__super__ = funkin_play_cutscene_dialogue_Conversation; funkin_play_cutscene_dialogue_ScriptedConversation.prototype = $extend(funkin_play_cutscene_dialogue_Conversation.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedConversation"; var superName = "Conversation"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.update.call(this,elapsed); } } ,startOutro: function() { var fieldName = "startOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.startOutro.call(this); } } ,startConversation: function() { var fieldName = "startConversation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.startConversation.call(this); } } ,skipConversation: function() { var fieldName = "skipConversation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.skipConversation.call(this); } } ,showCurrentSpeaker: function() { var fieldName = "showCurrentSpeaker"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.showCurrentSpeaker.call(this); } } ,showCurrentDialogueBox: function() { var fieldName = "showCurrentDialogueBox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.showCurrentDialogueBox.call(this); } } ,setupMusic: function() { var fieldName = "setupMusic"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.setupMusic.call(this); } } ,setupBackdrop: function() { var fieldName = "setupBackdrop"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.setupBackdrop.call(this); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.revive.call(this); } } ,resumeMusic: function() { var fieldName = "resumeMusic"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.resumeMusic.call(this); } } ,resetConversation: function() { var fieldName = "resetConversation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.resetConversation.call(this); } } ,refresh: function() { var fieldName = "refresh"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.refresh.call(this); } } ,propagateEvent: function(event) { var fieldName = "propagateEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.propagateEvent.call(this,event); } } ,playSpeakerAnimation: function() { var fieldName = "playSpeakerAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.playSpeakerAnimation.call(this); } } ,playDialogueBoxAnimation: function() { var fieldName = "playDialogueBoxAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.playDialogueBoxAnimation.call(this); } } ,pauseMusic: function() { var fieldName = "pauseMusic"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.pauseMusic.call(this); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onUpdate.call(this,event); } } ,onTypingComplete: function() { var fieldName = "onTypingComplete"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onTypingComplete.call(this); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onScriptEvent.call(this,event); } } ,onDialogueStart: function(event) { var fieldName = "onDialogueStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueStart.call(this,event); } } ,onDialogueSkip: function(event) { var fieldName = "onDialogueSkip"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueSkip.call(this,event); } } ,onDialogueLine: function(event) { var fieldName = "onDialogueLine"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueLine.call(this,event); } } ,onDialogueEnd: function(event) { var fieldName = "onDialogueEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueEnd.call(this,event); } } ,onDialogueCompleteLine: function(event) { var fieldName = "onDialogueCompleteLine"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueCompleteLine.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.onCreate.call(this,event); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.kill.call(this); } } ,get_currentDialogueLineString: function() { var fieldName = "get_currentDialogueLineString"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueLineString.call(this); } } ,get_currentDialogueLineCount: function() { var fieldName = "get_currentDialogueLineCount"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueLineCount.call(this); } } ,get_currentDialogueEntryData: function() { var fieldName = "get_currentDialogueEntryData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueEntryData.call(this); } } ,get_currentDialogueEntryCount: function() { var fieldName = "get_currentDialogueEntryCount"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueEntryCount.call(this); } } ,endOutro: function() { var fieldName = "endOutro"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.endOutro.call(this); } } ,dispatchEvent: function(event) { var fieldName = "dispatchEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.dispatchEvent.call(this,event); } } ,advanceConversation: function() { var fieldName = "advanceConversation"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.advanceConversation.call(this); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_cutscene_dialogue_Conversation.prototype.update.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_cutscene_dialogue_Conversation.prototype.toString.call(this); } ,__super_startOutro: function() { var fieldName = "startOutro"; funkin_play_cutscene_dialogue_Conversation.prototype.startOutro.call(this); } ,__super_startConversation: function() { var fieldName = "startConversation"; funkin_play_cutscene_dialogue_Conversation.prototype.startConversation.call(this); } ,__super_skipConversation: function() { var fieldName = "skipConversation"; funkin_play_cutscene_dialogue_Conversation.prototype.skipConversation.call(this); } ,__super_showCurrentSpeaker: function() { var fieldName = "showCurrentSpeaker"; funkin_play_cutscene_dialogue_Conversation.prototype.showCurrentSpeaker.call(this); } ,__super_showCurrentDialogueBox: function() { var fieldName = "showCurrentDialogueBox"; funkin_play_cutscene_dialogue_Conversation.prototype.showCurrentDialogueBox.call(this); } ,__super_setupMusic: function() { var fieldName = "setupMusic"; funkin_play_cutscene_dialogue_Conversation.prototype.setupMusic.call(this); } ,__super_setupBackdrop: function() { var fieldName = "setupBackdrop"; funkin_play_cutscene_dialogue_Conversation.prototype.setupBackdrop.call(this); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_cutscene_dialogue_Conversation.prototype.revive.call(this); } ,__super_resumeMusic: function() { var fieldName = "resumeMusic"; funkin_play_cutscene_dialogue_Conversation.prototype.resumeMusic.call(this); } ,__super_resetConversation: function() { var fieldName = "resetConversation"; funkin_play_cutscene_dialogue_Conversation.prototype.resetConversation.call(this); } ,__super_refresh: function() { var fieldName = "refresh"; funkin_play_cutscene_dialogue_Conversation.prototype.refresh.call(this); } ,__super_propagateEvent: function(event) { var fieldName = "propagateEvent"; funkin_play_cutscene_dialogue_Conversation.prototype.propagateEvent.call(this,event); } ,__super_playSpeakerAnimation: function() { var fieldName = "playSpeakerAnimation"; funkin_play_cutscene_dialogue_Conversation.prototype.playSpeakerAnimation.call(this); } ,__super_playDialogueBoxAnimation: function() { var fieldName = "playDialogueBoxAnimation"; funkin_play_cutscene_dialogue_Conversation.prototype.playDialogueBoxAnimation.call(this); } ,__super_pauseMusic: function() { var fieldName = "pauseMusic"; funkin_play_cutscene_dialogue_Conversation.prototype.pauseMusic.call(this); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_cutscene_dialogue_Conversation.prototype.onUpdate.call(this,event); } ,__super_onTypingComplete: function() { var fieldName = "onTypingComplete"; funkin_play_cutscene_dialogue_Conversation.prototype.onTypingComplete.call(this); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_cutscene_dialogue_Conversation.prototype.onScriptEvent.call(this,event); } ,__super_onDialogueStart: function(event) { var fieldName = "onDialogueStart"; funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueStart.call(this,event); } ,__super_onDialogueSkip: function(event) { var fieldName = "onDialogueSkip"; funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueSkip.call(this,event); } ,__super_onDialogueLine: function(event) { var fieldName = "onDialogueLine"; funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueLine.call(this,event); } ,__super_onDialogueEnd: function(event) { var fieldName = "onDialogueEnd"; funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueEnd.call(this,event); } ,__super_onDialogueCompleteLine: function(event) { var fieldName = "onDialogueCompleteLine"; funkin_play_cutscene_dialogue_Conversation.prototype.onDialogueCompleteLine.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_cutscene_dialogue_Conversation.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_cutscene_dialogue_Conversation.prototype.onCreate.call(this,event); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_cutscene_dialogue_Conversation.prototype.kill.call(this); } ,__super_get_currentDialogueLineString: function() { var fieldName = "get_currentDialogueLineString"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueLineString.call(this); } ,__super_get_currentDialogueLineCount: function() { var fieldName = "get_currentDialogueLineCount"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueLineCount.call(this); } ,__super_get_currentDialogueEntryData: function() { var fieldName = "get_currentDialogueEntryData"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueEntryData.call(this); } ,__super_get_currentDialogueEntryCount: function() { var fieldName = "get_currentDialogueEntryCount"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_currentDialogueEntryCount.call(this); } ,__super_endOutro: function() { var fieldName = "endOutro"; funkin_play_cutscene_dialogue_Conversation.prototype.endOutro.call(this); } ,__super_dispatchEvent: function(event) { var fieldName = "dispatchEvent"; funkin_play_cutscene_dialogue_Conversation.prototype.dispatchEvent.call(this,event); } ,__super_advanceConversation: function() { var fieldName = "advanceConversation"; funkin_play_cutscene_dialogue_Conversation.prototype.advanceConversation.call(this); } ,set_y: function(Value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_y.call(this,Value); } } ,set_x: function(Value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_x.call(this,Value); } } ,set_width: function(Value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_width.call(this,Value); } } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_visible.call(this,Value); } } ,set_solid: function(Value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_solid.call(this,Value); } } ,set_pixels: function(Value) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_pixels.call(this,Value); } } ,set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_pixelPerfectRender.call(this,Value); } } ,set_moves: function(Value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_moves.call(this,Value); } } ,set_immovable: function(Value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_immovable.call(this,Value); } } ,set_height: function(Value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_height.call(this,Value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Value) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_facing.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_exists.call(this,Value); } } ,set_color: function(Value) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_color.call(this,Value); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_clipRect.call(this,rect); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_camera.call(this,Value); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_blend.call(this,Value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Value) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_alpha.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_active.call(this,Value); } } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.setPosition.call(this,X,Y); } } ,reset: function(X,Y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.reset.call(this,X,Y); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite,Splice]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.remove.call(this,Sprite,Splice); } } ,preAdd: function(Sprite) { var fieldName = "preAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[Sprite]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.preAdd.call(this,Sprite); } } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,Mask,Camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } } ,overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,InScreenSpace,Camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Animated,Width,Height,Unique,Key]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } } ,isOnScreen: function(Camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.isOnScreen.call(this,Camera); } } ,insert: function(Position,Sprite) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Position,Sprite]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.insert.call(this,Position,Sprite); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.initVars.call(this); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_width.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_pixels.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_height.call(this); } } ,findMinYHelper: function() { var fieldName = "findMinYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMinYHelper.call(this); } } ,findMinY: function() { var fieldName = "findMinY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMinY.call(this); } } ,findMinXHelper: function() { var fieldName = "findMinXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMinXHelper.call(this); } } ,findMinX: function() { var fieldName = "findMinX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMinX.call(this); } } ,findMaxYHelper: function() { var fieldName = "findMaxYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxYHelper.call(this); } } ,findMaxY: function() { var fieldName = "findMaxY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxY.call(this); } } ,findMaxXHelper: function() { var fieldName = "findMaxXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxXHelper.call(this); } } ,findMaxX: function() { var fieldName = "findMaxX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxX.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.clone.call(this); } } ,add: function(Sprite) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.add.call(this,Sprite); } } ,__super_set_y: function(Value) { var fieldName = "set_y"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_y.call(this,Value); } ,__super_set_x: function(Value) { var fieldName = "set_x"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_x.call(this,Value); } ,__super_set_width: function(Value) { var fieldName = "set_width"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_width.call(this,Value); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_visible.call(this,Value); } ,__super_set_solid: function(Value) { var fieldName = "set_solid"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_solid.call(this,Value); } ,__super_set_pixels: function(Value) { var fieldName = "set_pixels"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_pixels.call(this,Value); } ,__super_set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_pixelPerfectRender.call(this,Value); } ,__super_set_moves: function(Value) { var fieldName = "set_moves"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_moves.call(this,Value); } ,__super_set_immovable: function(Value) { var fieldName = "set_immovable"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_immovable.call(this,Value); } ,__super_set_height: function(Value) { var fieldName = "set_height"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_height.call(this,Value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Value) { var fieldName = "set_facing"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_facing.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_exists.call(this,Value); } ,__super_set_color: function(Value) { var fieldName = "set_color"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_color.call(this,Value); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_clipRect.call(this,rect); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_camera.call(this,Value); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_blend.call(this,Value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Value) { var fieldName = "set_alpha"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_alpha.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_active.call(this,Value); } ,__super_setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; funkin_play_cutscene_dialogue_Conversation.prototype.setPosition.call(this,X,Y); } ,__super_reset: function(X,Y) { var fieldName = "reset"; funkin_play_cutscene_dialogue_Conversation.prototype.reset.call(this,X,Y); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_cutscene_dialogue_Conversation.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; return funkin_play_cutscene_dialogue_Conversation.prototype.remove.call(this,Sprite,Splice); } ,__super_preAdd: function(Sprite) { var fieldName = "preAdd"; funkin_play_cutscene_dialogue_Conversation.prototype.preAdd.call(this,Sprite); } ,__super_pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_cutscene_dialogue_Conversation.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } ,__super_overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_cutscene_dialogue_Conversation.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_cutscene_dialogue_Conversation.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_cutscene_dialogue_Conversation.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_cutscene_dialogue_Conversation.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; return funkin_play_cutscene_dialogue_Conversation.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } ,__super_isOnScreen: function(Camera) { var fieldName = "isOnScreen"; return funkin_play_cutscene_dialogue_Conversation.prototype.isOnScreen.call(this,Camera); } ,__super_insert: function(Position,Sprite) { var fieldName = "insert"; return funkin_play_cutscene_dialogue_Conversation.prototype.insert.call(this,Position,Sprite); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_cutscene_dialogue_Conversation.prototype.initVars.call(this); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_width.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_pixels.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_height.call(this); } ,__super_findMinYHelper: function() { var fieldName = "findMinYHelper"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMinYHelper.call(this); } ,__super_findMinY: function() { var fieldName = "findMinY"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMinY.call(this); } ,__super_findMinXHelper: function() { var fieldName = "findMinXHelper"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMinXHelper.call(this); } ,__super_findMinX: function() { var fieldName = "findMinX"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMinX.call(this); } ,__super_findMaxYHelper: function() { var fieldName = "findMaxYHelper"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxYHelper.call(this); } ,__super_findMaxY: function() { var fieldName = "findMaxY"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxY.call(this); } ,__super_findMaxXHelper: function() { var fieldName = "findMaxXHelper"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxXHelper.call(this); } ,__super_findMaxX: function() { var fieldName = "findMaxX"; return funkin_play_cutscene_dialogue_Conversation.prototype.findMaxX.call(this); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_cutscene_dialogue_Conversation.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_cutscene_dialogue_Conversation.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_cutscene_dialogue_Conversation.prototype.clone.call(this); } ,__super_add: function(Sprite) { var fieldName = "add"; return funkin_play_cutscene_dialogue_Conversation.prototype.add.call(this,Sprite); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.updateFramePixels.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.updateAnimation.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_useFramePixels.call(this,value); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_graphic.call(this,value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_antialiasing.call(this,value); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.isSimpleRender.call(this,camera); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.graphicLoaded.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.drawComplex.call(this,camera); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.centerOffsets.call(this,AdjustPosition); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_cutscene_dialogue_Conversation.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_cutscene_dialogue_Conversation.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_cutscene_dialogue_Conversation.prototype.updateAnimation.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_cutscene_dialogue_Conversation.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_cutscene_dialogue_Conversation.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_cutscene_dialogue_Conversation.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; var X1 = X; var Y1 = Y; } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_useFramePixels.call(this,value); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_graphic.call(this,value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_antialiasing.call(this,value); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_cutscene_dialogue_Conversation.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_cutscene_dialogue_Conversation.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_cutscene_dialogue_Conversation.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_cutscene_dialogue_Conversation.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_cutscene_dialogue_Conversation.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_cutscene_dialogue_Conversation.prototype.isSimpleRender.call(this,camera); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_cutscene_dialogue_Conversation.prototype.graphicLoaded.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_cutscene_dialogue_Conversation.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_cutscene_dialogue_Conversation.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_cutscene_dialogue_Conversation.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_cutscene_dialogue_Conversation.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_cutscene_dialogue_Conversation.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_cutscene_dialogue_Conversation.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_cutscene_dialogue_Conversation.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_cutscene_dialogue_Conversation.prototype.drawComplex.call(this,camera); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_cutscene_dialogue_Conversation.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_cutscene_dialogue_Conversation.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; var RunOnCpp = force; } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.updateMotion.call(this,elapsed); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_path.call(this,path); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.setSize.call(this,width,height); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_cutscene_dialogue_Conversation.prototype.hurt.call(this,damage); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_cutscene_dialogue_Conversation.prototype.updateMotion.call(this,elapsed); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_path.call(this,path); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_cutscene_dialogue_Conversation.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_cutscene_dialogue_Conversation.prototype.setSize.call(this,width,height); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_cutscene_dialogue_Conversation.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_cutscene_dialogue_Conversation.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_cutscene_dialogue_Conversation.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_cutscene_dialogue_Conversation.prototype.hurt.call(this,damage); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_cutscene_dialogue_Conversation.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_cutscene_dialogue_Conversation.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_cutscene_dialogue_Conversation.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_cutscene_dialogue_Conversation.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_cutscene_dialogue_Conversation.prototype.getBoundingBox.call(this,camera); } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Conversation.prototype.get_camera.call(this); } } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_cutscene_dialogue_Conversation.prototype.get_camera.call(this); } ,__class__: funkin_play_cutscene_dialogue_ScriptedConversation }); var funkin_play_cutscene_dialogue_ScriptedDialogueBox = function(id) { funkin_play_cutscene_dialogue_DialogueBox.call(this,id); }; $hxClasses["funkin.play.cutscene.dialogue.ScriptedDialogueBox"] = funkin_play_cutscene_dialogue_ScriptedDialogueBox; funkin_play_cutscene_dialogue_ScriptedDialogueBox.__name__ = "funkin.play.cutscene.dialogue.ScriptedDialogueBox"; funkin_play_cutscene_dialogue_ScriptedDialogueBox.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_cutscene_dialogue_ScriptedDialogueBox.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.cutscene.dialogue.DialogueBox"); }; funkin_play_cutscene_dialogue_ScriptedDialogueBox.init = function(clsName,id) { var value = $hxClasses["funkin.play.cutscene.dialogue.ScriptedDialogueBox"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.cutscene.dialogue.DialogueBox"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.cutscene.dialogue.ScriptedDialogueBox" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_cutscene_dialogue_ScriptedDialogueBox.__super__ = funkin_play_cutscene_dialogue_DialogueBox; funkin_play_cutscene_dialogue_ScriptedDialogueBox.prototype = $extend(funkin_play_cutscene_dialogue_DialogueBox.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedDialogueBox"; var superName = "DialogueBox"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,skip: function() { var fieldName = "skip"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.skip.call(this); } } ,set_text: function(value) { var fieldName = "set_text"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_text.call(this,value); } } ,set_speed: function(value) { var fieldName = "set_speed"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_speed.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_globalOffsets.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_animOffsets.call(this,value); } } ,setText: function(newText) { var fieldName = "setText"; if(this._asc != null) { this._asc.callFunction(fieldName,[newText]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setText.call(this,newText); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setScale.call(this,scale); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.revive.call(this); } } ,playAnimation: function(name,restart,reversed) { if(reversed == null) { reversed = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,reversed]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.playAnimation.call(this,name,restart,reversed); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onUpdate.call(this,event); } } ,onTypingComplete: function() { var fieldName = "onTypingComplete"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onTypingComplete.call(this); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onScriptEvent.call(this,event); } } ,onDialogueStart: function(event) { var fieldName = "onDialogueStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueStart.call(this,event); } } ,onDialogueSkip: function(event) { var fieldName = "onDialogueSkip"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueSkip.call(this,event); } } ,onDialogueLine: function(event) { var fieldName = "onDialogueLine"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueLine.call(this,event); } } ,onDialogueEnd: function(event) { var fieldName = "onDialogueEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueEnd.call(this,event); } } ,onDialogueCompleteLine: function(event) { var fieldName = "onDialogueCompleteLine"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueCompleteLine.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onCreate.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.onAnimationFinished.call(this,name); } } ,loadText: function() { var fieldName = "loadText"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.loadText.call(this); } } ,loadSpritesheet: function() { var fieldName = "loadSpritesheet"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.loadSpritesheet.call(this); } } ,loadAnimations: function() { var fieldName = "loadAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.loadAnimations.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.kill.call(this); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.isAnimationFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.hasAnimation.call(this,id); } } ,get_dialogueBoxName: function() { var fieldName = "get_dialogueBoxName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_dialogueBoxName.call(this); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getCurrentAnimation.call(this); } } ,correctAnimationName: function(name) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.correctAnimationName.call(this,name); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.applyAnimationOffsets.call(this,name); } } ,appendText: function(newText) { var fieldName = "appendText"; if(this._asc != null) { this._asc.callFunction(fieldName,[newText]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.appendText.call(this,newText); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.toString.call(this); } ,__super_skip: function() { var fieldName = "skip"; funkin_play_cutscene_dialogue_DialogueBox.prototype.skip.call(this); } ,__super_set_text: function(value) { var fieldName = "set_text"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_text.call(this,value); } ,__super_set_speed: function(value) { var fieldName = "set_speed"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_speed.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_globalOffsets.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_animOffsets.call(this,value); } ,__super_setText: function(newText) { var fieldName = "setText"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setText.call(this,newText); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setScale.call(this,scale); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_cutscene_dialogue_DialogueBox.prototype.revive.call(this); } ,__super_playAnimation: function(name,restart,reversed) { if(reversed == null) { reversed = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_cutscene_dialogue_DialogueBox.prototype.playAnimation.call(this,name,restart,reversed); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onUpdate.call(this,event); } ,__super_onTypingComplete: function() { var fieldName = "onTypingComplete"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onTypingComplete.call(this); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onScriptEvent.call(this,event); } ,__super_onDialogueStart: function(event) { var fieldName = "onDialogueStart"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueStart.call(this,event); } ,__super_onDialogueSkip: function(event) { var fieldName = "onDialogueSkip"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueSkip.call(this,event); } ,__super_onDialogueLine: function(event) { var fieldName = "onDialogueLine"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueLine.call(this,event); } ,__super_onDialogueEnd: function(event) { var fieldName = "onDialogueEnd"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueEnd.call(this,event); } ,__super_onDialogueCompleteLine: function(event) { var fieldName = "onDialogueCompleteLine"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onDialogueCompleteLine.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onCreate.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; funkin_play_cutscene_dialogue_DialogueBox.prototype.onAnimationFinished.call(this,name); } ,__super_loadText: function() { var fieldName = "loadText"; funkin_play_cutscene_dialogue_DialogueBox.prototype.loadText.call(this); } ,__super_loadSpritesheet: function() { var fieldName = "loadSpritesheet"; funkin_play_cutscene_dialogue_DialogueBox.prototype.loadSpritesheet.call(this); } ,__super_loadAnimations: function() { var fieldName = "loadAnimations"; funkin_play_cutscene_dialogue_DialogueBox.prototype.loadAnimations.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_cutscene_dialogue_DialogueBox.prototype.kill.call(this); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.isAnimationFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.hasAnimation.call(this,id); } ,__super_get_dialogueBoxName: function() { var fieldName = "get_dialogueBoxName"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_dialogueBoxName.call(this); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getCurrentAnimation.call(this); } ,__super_correctAnimationName: function(name) { var fieldName = "correctAnimationName"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.correctAnimationName.call(this,name); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_cutscene_dialogue_DialogueBox.prototype.applyAnimationOffsets.call(this,name); } ,__super_appendText: function(newText) { var fieldName = "appendText"; funkin_play_cutscene_dialogue_DialogueBox.prototype.appendText.call(this,newText); } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.update.call(this,elapsed); } } ,set_y: function(Value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_y.call(this,Value); } } ,set_x: function(Value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_x.call(this,Value); } } ,set_width: function(Value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_width.call(this,Value); } } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_visible.call(this,Value); } } ,set_solid: function(Value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_solid.call(this,Value); } } ,set_pixels: function(Value) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_pixels.call(this,Value); } } ,set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_pixelPerfectRender.call(this,Value); } } ,set_moves: function(Value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_moves.call(this,Value); } } ,set_immovable: function(Value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_immovable.call(this,Value); } } ,set_height: function(Value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_height.call(this,Value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Value) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_facing.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_exists.call(this,Value); } } ,set_color: function(Value) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_color.call(this,Value); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_clipRect.call(this,rect); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_camera.call(this,Value); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_blend.call(this,Value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Value) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_alpha.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_active.call(this,Value); } } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setPosition.call(this,X,Y); } } ,reset: function(X,Y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.reset.call(this,X,Y); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite,Splice]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.remove.call(this,Sprite,Splice); } } ,preAdd: function(Sprite) { var fieldName = "preAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[Sprite]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.preAdd.call(this,Sprite); } } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,Mask,Camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } } ,overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,InScreenSpace,Camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Animated,Width,Height,Unique,Key]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } } ,isOnScreen: function(Camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.isOnScreen.call(this,Camera); } } ,insert: function(Position,Sprite) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Position,Sprite]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.insert.call(this,Position,Sprite); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.initVars.call(this); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_width.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_pixels.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_height.call(this); } } ,findMinYHelper: function() { var fieldName = "findMinYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinYHelper.call(this); } } ,findMinY: function() { var fieldName = "findMinY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinY.call(this); } } ,findMinXHelper: function() { var fieldName = "findMinXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinXHelper.call(this); } } ,findMinX: function() { var fieldName = "findMinX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinX.call(this); } } ,findMaxYHelper: function() { var fieldName = "findMaxYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxYHelper.call(this); } } ,findMaxY: function() { var fieldName = "findMaxY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxY.call(this); } } ,findMaxXHelper: function() { var fieldName = "findMaxXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxXHelper.call(this); } } ,findMaxX: function() { var fieldName = "findMaxX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxX.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.clone.call(this); } } ,add: function(Sprite) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.add.call(this,Sprite); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_cutscene_dialogue_DialogueBox.prototype.update.call(this,elapsed); } ,__super_set_y: function(Value) { var fieldName = "set_y"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_y.call(this,Value); } ,__super_set_x: function(Value) { var fieldName = "set_x"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_x.call(this,Value); } ,__super_set_width: function(Value) { var fieldName = "set_width"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_width.call(this,Value); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_visible.call(this,Value); } ,__super_set_solid: function(Value) { var fieldName = "set_solid"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_solid.call(this,Value); } ,__super_set_pixels: function(Value) { var fieldName = "set_pixels"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_pixels.call(this,Value); } ,__super_set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_pixelPerfectRender.call(this,Value); } ,__super_set_moves: function(Value) { var fieldName = "set_moves"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_moves.call(this,Value); } ,__super_set_immovable: function(Value) { var fieldName = "set_immovable"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_immovable.call(this,Value); } ,__super_set_height: function(Value) { var fieldName = "set_height"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_height.call(this,Value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Value) { var fieldName = "set_facing"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_facing.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_exists.call(this,Value); } ,__super_set_color: function(Value) { var fieldName = "set_color"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_color.call(this,Value); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_clipRect.call(this,rect); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_camera.call(this,Value); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_blend.call(this,Value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Value) { var fieldName = "set_alpha"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_alpha.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_active.call(this,Value); } ,__super_setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setPosition.call(this,X,Y); } ,__super_reset: function(X,Y) { var fieldName = "reset"; funkin_play_cutscene_dialogue_DialogueBox.prototype.reset.call(this,X,Y); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.remove.call(this,Sprite,Splice); } ,__super_preAdd: function(Sprite) { var fieldName = "preAdd"; funkin_play_cutscene_dialogue_DialogueBox.prototype.preAdd.call(this,Sprite); } ,__super_pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } ,__super_overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } ,__super_isOnScreen: function(Camera) { var fieldName = "isOnScreen"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.isOnScreen.call(this,Camera); } ,__super_insert: function(Position,Sprite) { var fieldName = "insert"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.insert.call(this,Position,Sprite); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_cutscene_dialogue_DialogueBox.prototype.initVars.call(this); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_width.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_pixels.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_height.call(this); } ,__super_findMinYHelper: function() { var fieldName = "findMinYHelper"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinYHelper.call(this); } ,__super_findMinY: function() { var fieldName = "findMinY"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinY.call(this); } ,__super_findMinXHelper: function() { var fieldName = "findMinXHelper"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinXHelper.call(this); } ,__super_findMinX: function() { var fieldName = "findMinX"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMinX.call(this); } ,__super_findMaxYHelper: function() { var fieldName = "findMaxYHelper"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxYHelper.call(this); } ,__super_findMaxY: function() { var fieldName = "findMaxY"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxY.call(this); } ,__super_findMaxXHelper: function() { var fieldName = "findMaxXHelper"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxXHelper.call(this); } ,__super_findMaxX: function() { var fieldName = "findMaxX"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.findMaxX.call(this); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_cutscene_dialogue_DialogueBox.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_cutscene_dialogue_DialogueBox.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.clone.call(this); } ,__super_add: function(Sprite) { var fieldName = "add"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.add.call(this,Sprite); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.updateFramePixels.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.updateAnimation.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_useFramePixels.call(this,value); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_graphic.call(this,value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_antialiasing.call(this,value); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.isSimpleRender.call(this,camera); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.graphicLoaded.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.drawComplex.call(this,camera); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.centerOffsets.call(this,AdjustPosition); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_cutscene_dialogue_DialogueBox.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_cutscene_dialogue_DialogueBox.prototype.updateAnimation.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; var X1 = X; var Y1 = Y; } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_useFramePixels.call(this,value); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_graphic.call(this,value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_antialiasing.call(this,value); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.isSimpleRender.call(this,camera); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_cutscene_dialogue_DialogueBox.prototype.graphicLoaded.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_cutscene_dialogue_DialogueBox.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_cutscene_dialogue_DialogueBox.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_cutscene_dialogue_DialogueBox.prototype.drawComplex.call(this,camera); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_cutscene_dialogue_DialogueBox.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_cutscene_dialogue_DialogueBox.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; var RunOnCpp = force; } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.updateMotion.call(this,elapsed); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_path.call(this,path); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.setSize.call(this,width,height); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_cutscene_dialogue_DialogueBox.prototype.hurt.call(this,damage); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_cutscene_dialogue_DialogueBox.prototype.updateMotion.call(this,elapsed); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_path.call(this,path); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_cutscene_dialogue_DialogueBox.prototype.setSize.call(this,width,height); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_cutscene_dialogue_DialogueBox.prototype.hurt.call(this,damage); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.getBoundingBox.call(this,camera); } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_camera.call(this); } } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_cutscene_dialogue_DialogueBox.prototype.get_camera.call(this); } ,__class__: funkin_play_cutscene_dialogue_ScriptedDialogueBox }); var funkin_play_cutscene_dialogue_Speaker = function(id) { this.globalOffsets = [0,0]; this.animOffsets = [0,0]; this.animationOffsets = new haxe_ds_StringMap(); flixel_FlxSprite.call(this); this.id = id; this._data = funkin_play_cutscene_dialogue_Speaker._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not parse speaker data for id: " + id); } }; $hxClasses["funkin.play.cutscene.dialogue.Speaker"] = funkin_play_cutscene_dialogue_Speaker; funkin_play_cutscene_dialogue_Speaker.__name__ = "funkin.play.cutscene.dialogue.Speaker"; funkin_play_cutscene_dialogue_Speaker.__interfaces__ = [funkin_data_IRegistryEntry,funkin_modding_IDialogueScriptedClass]; funkin_play_cutscene_dialogue_Speaker._fetchData = function(id) { return funkin_data_dialogue_speaker_SpeakerRegistry.get_instance().parseEntryDataWithMigration(id,funkin_data_dialogue_speaker_SpeakerRegistry.get_instance().fetchEntryVersion(id)); }; funkin_play_cutscene_dialogue_Speaker.__super__ = flixel_FlxSprite; funkin_play_cutscene_dialogue_Speaker.prototype = $extend(flixel_FlxSprite.prototype,{ id: null ,_data: null ,get_speakerName: function() { return this._data.name; } ,animationOffsets: null ,animOffsets: null ,set_animOffsets: function(value) { if(this.animOffsets == null) { this.animOffsets = [0,0]; } if(this.animOffsets[0] == value[0] && this.animOffsets[1] == value[1]) { return value; } var xDiff = value[0] - this.animOffsets[0]; var yDiff = value[1] - this.animOffsets[1]; this.set_x(this.x + xDiff); this.set_y(this.y + yDiff); return this.animOffsets = value; } ,globalOffsets: null ,set_globalOffsets: function(value) { if(this.globalOffsets == null) { this.globalOffsets = [0,0]; } if(this.globalOffsets == value) { return value; } var xDiff = value[0] - this.globalOffsets[0]; var yDiff = value[1] - this.globalOffsets[1]; this.set_x(this.x + xDiff); this.set_y(this.y + yDiff); return this.globalOffsets = value; } ,onCreate: function(event) { this.set_globalOffsets([0,0]); this.set_x(0); this.set_y(0); this.set_alpha(1); this.loadSpritesheet(); this.loadAnimations(); } ,kill: function() { flixel_FlxSprite.prototype.kill.call(this); } ,revive: function() { flixel_FlxSprite.prototype.revive.call(this); this.set_visible(true); this.set_alpha(1.0); this.loadSpritesheet(); this.loadAnimations(); } ,loadSpritesheet: function() { haxe_Log.trace("[SPEAKER] Loading spritesheet " + this._data.assetPath + " for " + this.id,{ fileName : "source/funkin/play/cutscene/dialogue/Speaker.hx", lineNumber : 131, className : "funkin.play.cutscene.dialogue.Speaker", methodName : "loadSpritesheet"}); var tex = funkin_Paths.getSparrowAtlas(this._data.assetPath); if(tex == null) { haxe_Log.trace("Could not load Sparrow sprite: " + this._data.assetPath,{ fileName : "source/funkin/play/cutscene/dialogue/Speaker.hx", lineNumber : 136, className : "funkin.play.cutscene.dialogue.Speaker", methodName : "loadSpritesheet"}); return; } this.set_frames(tex); if(this._data.isPixel) { this.set_antialiasing(false); } else { this.set_antialiasing(true); } this.set_flipX(this._data.flipX); this.set_flipY(this._data.flipY); this.set_globalOffsets(this._data.offsets); this.setScale(this._data.scale); } ,setScale: function(scale) { if(scale == null) { scale = 1.0; } this.scale.set_x(scale); this.scale.set_y(scale); this.updateHitbox(); } ,loadAnimations: function() { haxe_Log.trace("[SPEAKER] Loading " + this._data.animations.length + " animations for " + this.id,{ fileName : "source/funkin/play/cutscene/dialogue/Speaker.hx", lineNumber : 171, className : "funkin.play.cutscene.dialogue.Speaker", methodName : "loadAnimations"}); funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(this,this._data.animations); var _g = 0; var _g1 = this._data.animations; while(_g < _g1.length) { var anim = _g1[_g]; ++_g; if(anim.offsets == null) { this.setAnimationOffsets(anim.name,0,0); } else { this.setAnimationOffsets(anim.name,anim.offsets[0],anim.offsets[1]); } } var animNames = this.animation.getNameList(); haxe_Log.trace("[SPEAKER] Successfully loaded " + animNames.length + " animations for " + this.id,{ fileName : "source/funkin/play/cutscene/dialogue/Speaker.hx", lineNumber : 188, className : "funkin.play.cutscene.dialogue.Speaker", methodName : "loadAnimations"}); } ,playAnimation: function(name,restart) { if(restart == null) { restart = false; } var correctName = this.correctAnimationName(name); if(correctName == null) { return; } this.animation.play(correctName,restart,false,0); this.applyAnimationOffsets(correctName); } ,getCurrentAnimation: function() { if(this.animation == null || this.animation._curAnim == null) { return ""; } return this.animation._curAnim.name; } ,correctAnimationName: function(name) { if(this.hasAnimation(name)) { return name; } flixel_FlxG.log.advanced("Speaker tried to play animation \"" + name + "\" that does not exist, stripping suffixes...",flixel_system_debug_log_LogStyle.NOTICE); if(name.lastIndexOf("-") != -1) { var correctName = name.substring(0,name.lastIndexOf("-")); flixel_FlxG.log.advanced("Speaker tried to play animation \"" + name + "\" that does not exist, stripping suffixes...",flixel_system_debug_log_LogStyle.NOTICE); return this.correctAnimationName(correctName); } else if(name != "idle") { flixel_FlxG.log.advanced("Speaker tried to play animation \"" + name + "\" that does not exist, fallback to idle...",flixel_system_debug_log_LogStyle.WARNING,true); return this.correctAnimationName("idle"); } else { flixel_FlxG.log.advanced("Speaker tried to play animation \"idle\" that does not exist! This is bad!",flixel_system_debug_log_LogStyle.ERROR,true); return null; } } ,hasAnimation: function(id) { if(this.animation == null) { return false; } return this.animation._animations.h[id] != null; } ,setAnimationOffsets: function(name,xOffset,yOffset) { this.animationOffsets.h[name] = [xOffset,yOffset]; } ,applyAnimationOffsets: function(name) { var offsets = this.animationOffsets.h[name]; if(offsets != null && !(offsets[0] == 0 && offsets[1] == 0)) { this.set_animOffsets(offsets); } else { this.set_animOffsets([0,0]); } } ,onDialogueStart: function(event) { } ,onDialogueCompleteLine: function(event) { } ,onDialogueLine: function(event) { } ,onDialogueSkip: function(event) { } ,onDialogueEnd: function(event) { } ,onUpdate: function(event) { } ,onDestroy: function(event) { this.set_frames(null); this.set_x(0); this.set_y(0); this.set_globalOffsets([0,0]); this.set_alpha(0); this.kill(); } ,onScriptEvent: function(event) { } ,toString: function() { return "Speaker(" + this.id + ")"; } ,__class__: funkin_play_cutscene_dialogue_Speaker ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_globalOffsets:"set_globalOffsets",set_animOffsets:"set_animOffsets",get_speakerName:"get_speakerName"}) }); var funkin_play_cutscene_dialogue_ScriptedSpeaker = function(id) { funkin_play_cutscene_dialogue_Speaker.call(this,id); }; $hxClasses["funkin.play.cutscene.dialogue.ScriptedSpeaker"] = funkin_play_cutscene_dialogue_ScriptedSpeaker; funkin_play_cutscene_dialogue_ScriptedSpeaker.__name__ = "funkin.play.cutscene.dialogue.ScriptedSpeaker"; funkin_play_cutscene_dialogue_ScriptedSpeaker.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_cutscene_dialogue_ScriptedSpeaker.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.cutscene.dialogue.Speaker"); }; funkin_play_cutscene_dialogue_ScriptedSpeaker.init = function(clsName,id) { var value = $hxClasses["funkin.play.cutscene.dialogue.ScriptedSpeaker"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.cutscene.dialogue.Speaker"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.cutscene.dialogue.ScriptedSpeaker" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_cutscene_dialogue_ScriptedSpeaker.__super__ = funkin_play_cutscene_dialogue_Speaker; funkin_play_cutscene_dialogue_ScriptedSpeaker.prototype = $extend(funkin_play_cutscene_dialogue_Speaker.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedSpeaker"; var superName = "Speaker"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_globalOffsets.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_animOffsets.call(this,value); } } ,setScale: function(scale) { var fieldName = "setScale"; if(this._asc != null) { this._asc.callFunction(fieldName,[scale]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.setScale.call(this,scale); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.revive.call(this); } } ,playAnimation: function(name,restart) { if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.playAnimation.call(this,name,restart); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onUpdate.call(this,event); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onScriptEvent.call(this,event); } } ,onDialogueStart: function(event) { var fieldName = "onDialogueStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueStart.call(this,event); } } ,onDialogueSkip: function(event) { var fieldName = "onDialogueSkip"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueSkip.call(this,event); } } ,onDialogueLine: function(event) { var fieldName = "onDialogueLine"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueLine.call(this,event); } } ,onDialogueEnd: function(event) { var fieldName = "onDialogueEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueEnd.call(this,event); } } ,onDialogueCompleteLine: function(event) { var fieldName = "onDialogueCompleteLine"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueCompleteLine.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.onCreate.call(this,event); } } ,loadSpritesheet: function() { var fieldName = "loadSpritesheet"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.loadSpritesheet.call(this); } } ,loadAnimations: function() { var fieldName = "loadAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.loadAnimations.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.kill.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.hasAnimation.call(this,id); } } ,get_speakerName: function() { var fieldName = "get_speakerName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_speakerName.call(this); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getCurrentAnimation.call(this); } } ,correctAnimationName: function(name) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.correctAnimationName.call(this,name); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.applyAnimationOffsets.call(this,name); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_cutscene_dialogue_Speaker.prototype.toString.call(this); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_globalOffsets.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_animOffsets.call(this,value); } ,__super_setScale: function(scale) { var fieldName = "setScale"; funkin_play_cutscene_dialogue_Speaker.prototype.setScale.call(this,scale); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_cutscene_dialogue_Speaker.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_cutscene_dialogue_Speaker.prototype.revive.call(this); } ,__super_playAnimation: function(name,restart) { if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_cutscene_dialogue_Speaker.prototype.playAnimation.call(this,name,restart); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_cutscene_dialogue_Speaker.prototype.onUpdate.call(this,event); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_cutscene_dialogue_Speaker.prototype.onScriptEvent.call(this,event); } ,__super_onDialogueStart: function(event) { var fieldName = "onDialogueStart"; funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueStart.call(this,event); } ,__super_onDialogueSkip: function(event) { var fieldName = "onDialogueSkip"; funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueSkip.call(this,event); } ,__super_onDialogueLine: function(event) { var fieldName = "onDialogueLine"; funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueLine.call(this,event); } ,__super_onDialogueEnd: function(event) { var fieldName = "onDialogueEnd"; funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueEnd.call(this,event); } ,__super_onDialogueCompleteLine: function(event) { var fieldName = "onDialogueCompleteLine"; funkin_play_cutscene_dialogue_Speaker.prototype.onDialogueCompleteLine.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_cutscene_dialogue_Speaker.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_cutscene_dialogue_Speaker.prototype.onCreate.call(this,event); } ,__super_loadSpritesheet: function() { var fieldName = "loadSpritesheet"; funkin_play_cutscene_dialogue_Speaker.prototype.loadSpritesheet.call(this); } ,__super_loadAnimations: function() { var fieldName = "loadAnimations"; funkin_play_cutscene_dialogue_Speaker.prototype.loadAnimations.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_cutscene_dialogue_Speaker.prototype.kill.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_cutscene_dialogue_Speaker.prototype.hasAnimation.call(this,id); } ,__super_get_speakerName: function() { var fieldName = "get_speakerName"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_speakerName.call(this); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_cutscene_dialogue_Speaker.prototype.getCurrentAnimation.call(this); } ,__super_correctAnimationName: function(name) { var fieldName = "correctAnimationName"; return funkin_play_cutscene_dialogue_Speaker.prototype.correctAnimationName.call(this,name); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_cutscene_dialogue_Speaker.prototype.applyAnimationOffsets.call(this,name); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.draw.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.clone.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_cutscene_dialogue_Speaker.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_cutscene_dialogue_Speaker.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_play_cutscene_dialogue_Speaker.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_cutscene_dialogue_Speaker.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_cutscene_dialogue_Speaker.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_cutscene_dialogue_Speaker.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_cutscene_dialogue_Speaker.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_cutscene_dialogue_Speaker.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_play_cutscene_dialogue_Speaker.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_cutscene_dialogue_Speaker.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_cutscene_dialogue_Speaker.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_cutscene_dialogue_Speaker.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_play_cutscene_dialogue_Speaker.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_cutscene_dialogue_Speaker.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_cutscene_dialogue_Speaker.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_cutscene_dialogue_Speaker.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_cutscene_dialogue_Speaker.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_cutscene_dialogue_Speaker.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_cutscene_dialogue_Speaker.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_play_cutscene_dialogue_Speaker.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_cutscene_dialogue_Speaker.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_cutscene_dialogue_Speaker.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_cutscene_dialogue_Speaker.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_cutscene_dialogue_Speaker.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_cutscene_dialogue_Speaker.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_cutscene_dialogue_Speaker.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_cutscene_dialogue_Speaker.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_cutscene_dialogue_Speaker.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_cutscene_dialogue_Speaker.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_cutscene_dialogue_Speaker.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_cutscene_dialogue_Speaker.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_cutscene_dialogue_Speaker.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_cutscene_dialogue_Speaker.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_cutscene_dialogue_Speaker.prototype.draw.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_cutscene_dialogue_Speaker.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_cutscene_dialogue_Speaker.prototype.clone.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_cutscene_dialogue_Speaker.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_cutscene_dialogue_Speaker.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_play_cutscene_dialogue_Speaker.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.updateMotion.call(this,elapsed); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_x.call(this,value); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_cutscene_dialogue_Speaker.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_cutscene_dialogue_Speaker.prototype.updateMotion.call(this,elapsed); } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_x.call(this,value); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_cutscene_dialogue_Speaker.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_cutscene_dialogue_Speaker.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_cutscene_dialogue_Speaker.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_cutscene_dialogue_Speaker.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_cutscene_dialogue_Speaker.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_cutscene_dialogue_Speaker.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_cutscene_dialogue_Speaker.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_cutscene_dialogue_Speaker.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_cutscene_dialogue_Speaker.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_cutscene_dialogue_Speaker.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_cutscene_dialogue_Speaker.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_cutscene_dialogue_Speaker.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_cutscene_dialogue_Speaker.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.set_active.call(this,Value); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_cutscene_dialogue_Speaker.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_cutscene_dialogue_Speaker.prototype.set_active.call(this,Value); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_cutscene_dialogue_Speaker.prototype.get_camera.call(this); } ,__class__: funkin_play_cutscene_dialogue_ScriptedSpeaker }); var funkin_play_event_SongEvent = function(id) { this.id = id; }; $hxClasses["funkin.play.event.SongEvent"] = funkin_play_event_SongEvent; funkin_play_event_SongEvent.__name__ = "funkin.play.event.SongEvent"; funkin_play_event_SongEvent.prototype = { id: null ,handleEvent: function(data) { throw haxe_Exception.thrown("SongEvent.handleEvent() must be overridden!"); } ,getEventSchema: function() { return null; } ,getIconPath: function() { return "ui/chart-editor/events/default"; } ,getTitle: function() { return funkin_util_tools_StringTools.toTitleCase(this.id); } ,toString: function() { return "SongEvent(" + this.id + ")"; } ,__class__: funkin_play_event_SongEvent }; var funkin_play_event_FocusCameraSongEvent = function() { funkin_play_event_SongEvent.call(this,"FocusCamera"); }; $hxClasses["funkin.play.event.FocusCameraSongEvent"] = funkin_play_event_FocusCameraSongEvent; funkin_play_event_FocusCameraSongEvent.__name__ = "funkin.play.event.FocusCameraSongEvent"; funkin_play_event_FocusCameraSongEvent.__super__ = funkin_play_event_SongEvent; funkin_play_event_FocusCameraSongEvent.prototype = $extend(funkin_play_event_SongEvent.prototype,{ handleEvent: function(data) { if(funkin_play_PlayState.instance == null || funkin_play_PlayState.instance.currentStage == null) { return; } if(funkin_play_PlayState.instance.isMinimalMode) { return; } var posX; if(data.value == null) { posX = null; } else { var result = Reflect.field(data.value,"x"); posX = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } if(posX == null) { posX = 0.0; } var posY; if(data.value == null) { posY = null; } else { var result = Reflect.field(data.value,"y"); posY = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } if(posY == null) { posY = 0.0; } var char; if(data.value == null) { char = null; } else { var result = Reflect.field(data.value,"char"); char = result == null ? null : typeof(result) == "number" && ((result | 0) === result) ? result : typeof(result) == "string" ? Std.parseInt(result) : result; } if(char == null) { char = data.value; } var duration; if(data.value == null) { duration = null; } else { var result = Reflect.field(data.value,"duration"); duration = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } if(duration == null) { duration = 4.0; } var ease = data.value == null ? null : Reflect.field(data.value,"ease"); if(ease == null) { ease = "CLASSIC"; } var currentStage = funkin_play_PlayState.instance.currentStage; var targetX = posX; var targetY = posY; if(char == null) { haxe_Log.trace("Unknown camera focus: " + (data == null ? "null" : funkin_data_song_SongEventData.toString(data)),{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 123, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); } else { switch(char) { case -1: haxe_Log.trace("Focusing camera on static position.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 87, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); break; case 0: if(currentStage.getBoyfriend() == null) { haxe_Log.trace("No BF to focus on.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 92, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); return; } haxe_Log.trace("Focusing camera on player.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 95, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); var bfPoint = currentStage.getBoyfriend().cameraFocusPoint; targetX += bfPoint.x; targetY += bfPoint.y; break; case 1: if(currentStage.getDad() == null) { haxe_Log.trace("No dad to focus on.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 103, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); return; } haxe_Log.trace("Focusing camera on opponent.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 106, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); var dadPoint = currentStage.getDad().cameraFocusPoint; targetX += dadPoint.x; targetY += dadPoint.y; break; case 2: if(currentStage.getGirlfriend() == null) { haxe_Log.trace("No GF to focus on.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 114, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); return; } haxe_Log.trace("Focusing camera on girlfriend.",{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 117, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); var gfPoint = currentStage.getGirlfriend().cameraFocusPoint; targetX += gfPoint.x; targetY += gfPoint.y; break; default: haxe_Log.trace("Unknown camera focus: " + (data == null ? "null" : funkin_data_song_SongEventData.toString(data)),{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 123, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); } } if(ease == null) { var durSeconds = funkin_Conductor.get_instance().get_stepLengthMs() * duration / 1000; var easeFunction = Reflect.field(flixel_tweens_FlxEase,ease); if(easeFunction == null) { haxe_Log.trace("Invalid ease function: " + ease,{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 139, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); return; } funkin_play_PlayState.instance.tweenCameraToPosition(targetX,targetY,durSeconds,easeFunction); } else { switch(ease) { case "CLASSIC": funkin_play_PlayState.instance.resetCamera(false,true); funkin_play_PlayState.instance.cameraFollowPoint.setPosition(targetX,targetY); break; case "INSTANT": funkin_play_PlayState.instance.tweenCameraToPosition(targetX,targetY,0); break; default: var durSeconds = funkin_Conductor.get_instance().get_stepLengthMs() * duration / 1000; var easeFunction = Reflect.field(flixel_tweens_FlxEase,ease); if(easeFunction == null) { haxe_Log.trace("Invalid ease function: " + ease,{ fileName : "source/funkin/play/event/FocusCameraSongEvent.hx", lineNumber : 139, className : "funkin.play.event.FocusCameraSongEvent", methodName : "handleEvent"}); return; } funkin_play_PlayState.instance.tweenCameraToPosition(targetX,targetY,durSeconds,easeFunction); } } } ,getTitle: function() { return "Focus Camera"; } ,getEventSchema: function() { var _g = new haxe_ds_StringMap(); _g.h["Position"] = -1; _g.h["Player"] = 0; _g.h["Opponent"] = 1; _g.h["Girlfriend"] = 2; var _g1 = new haxe_ds_StringMap(); _g1.h["Linear"] = "linear"; _g1.h["Sine In"] = "sineIn"; _g1.h["Sine Out"] = "sineOut"; _g1.h["Sine In/Out"] = "sineInOut"; _g1.h["Quad In"] = "quadIn"; _g1.h["Quad Out"] = "quadOut"; _g1.h["Quad In/Out"] = "quadInOut"; _g1.h["Cube In"] = "cubeIn"; _g1.h["Cube Out"] = "cubeOut"; _g1.h["Cube In/Out"] = "cubeInOut"; _g1.h["Quart In"] = "quartIn"; _g1.h["Quart Out"] = "quartOut"; _g1.h["Quart In/Out"] = "quartInOut"; _g1.h["Quint In"] = "quintIn"; _g1.h["Quint Out"] = "quintOut"; _g1.h["Quint In/Out"] = "quintInOut"; _g1.h["Expo In"] = "expoIn"; _g1.h["Expo Out"] = "expoOut"; _g1.h["Expo In/Out"] = "expoInOut"; _g1.h["Smooth Step In"] = "smoothStepIn"; _g1.h["Smooth Step Out"] = "smoothStepOut"; _g1.h["Smooth Step In/Out"] = "smoothStepInOut"; _g1.h["Elastic In"] = "elasticIn"; _g1.h["Elastic Out"] = "elasticOut"; _g1.h["Elastic In/Out"] = "elasticInOut"; _g1.h["Instant (Ignores duration)"] = "INSTANT"; _g1.h["Classic (Ignores duration)"] = "CLASSIC"; return funkin_data_event_SongEventSchema._new([{ name : "char", title : "Target", defaultValue : 0, type : "enum", keys : _g},{ name : "x", title : "X Position", defaultValue : 0, step : 10.0, type : "float", units : "px"},{ name : "y", title : "Y Position", defaultValue : 0, step : 10.0, type : "float", units : "px"},{ name : "duration", title : "Duration", defaultValue : 4.0, step : 0.5, type : "float", units : "steps"},{ name : "ease", title : "Easing Type", defaultValue : "linear", type : "enum", keys : _g1}]); } ,__class__: funkin_play_event_FocusCameraSongEvent }); var funkin_play_event_PlayAnimationSongEvent = function() { funkin_play_event_SongEvent.call(this,"PlayAnimation"); }; $hxClasses["funkin.play.event.PlayAnimationSongEvent"] = funkin_play_event_PlayAnimationSongEvent; funkin_play_event_PlayAnimationSongEvent.__name__ = "funkin.play.event.PlayAnimationSongEvent"; funkin_play_event_PlayAnimationSongEvent.__super__ = funkin_play_event_SongEvent; funkin_play_event_PlayAnimationSongEvent.prototype = $extend(funkin_play_event_SongEvent.prototype,{ handleEvent: function(data) { if(funkin_play_PlayState.instance == null || funkin_play_PlayState.instance.currentStage == null) { return; } var targetName = data.value == null ? null : Reflect.field(data.value,"target"); var anim = data.value == null ? null : Reflect.field(data.value,"anim"); var force = data.value == null ? null : Reflect.field(data.value,"force"); if(force == null) { force = false; } var target = null; switch(targetName) { case "gf":case "girlfriend": haxe_Log.trace("Playing animation " + anim + " on girlfriend.",{ fileName : "source/funkin/play/event/PlayAnimationSongEvent.hx", lineNumber : 41, className : "funkin.play.event.PlayAnimationSongEvent", methodName : "handleEvent"}); target = funkin_play_PlayState.instance.currentStage.getGirlfriend(); break; case "dad":case "opponent": haxe_Log.trace("Playing animation " + anim + " on dad.",{ fileName : "source/funkin/play/event/PlayAnimationSongEvent.hx", lineNumber : 38, className : "funkin.play.event.PlayAnimationSongEvent", methodName : "handleEvent"}); target = funkin_play_PlayState.instance.currentStage.getDad(); break; case "bf":case "boyfriend":case "player": haxe_Log.trace("Playing animation " + anim + " on boyfriend.",{ fileName : "source/funkin/play/event/PlayAnimationSongEvent.hx", lineNumber : 35, className : "funkin.play.event.PlayAnimationSongEvent", methodName : "handleEvent"}); target = funkin_play_PlayState.instance.currentStage.getBoyfriend(); break; default: target = funkin_play_PlayState.instance.currentStage.getNamedProp(targetName); if(target == null) { haxe_Log.trace("Unknown animation target: " + targetName,{ fileName : "source/funkin/play/event/PlayAnimationSongEvent.hx", lineNumber : 45, className : "funkin.play.event.PlayAnimationSongEvent", methodName : "handleEvent"}); } else { haxe_Log.trace("Fetched animation target " + targetName + " from stage.",{ fileName : "source/funkin/play/event/PlayAnimationSongEvent.hx", lineNumber : 47, className : "funkin.play.event.PlayAnimationSongEvent", methodName : "handleEvent"}); } } if(target != null) { if(((target) instanceof funkin_play_character_BaseCharacter)) { var targetChar = target; targetChar.playAnimation(anim,force,force); } else { target.animation.play(anim,force); } } } ,getTitle: function() { return "Play Animation"; } ,getEventSchema: function() { return funkin_data_event_SongEventSchema._new([{ name : "target", title : "Target", type : "string", defaultValue : "boyfriend"},{ name : "anim", title : "Animation", type : "string", defaultValue : "idle"},{ name : "force", title : "Force", type : "bool", defaultValue : false}]); } ,__class__: funkin_play_event_PlayAnimationSongEvent }); var funkin_play_event_ScriptedSongEvent = function(id) { funkin_play_event_SongEvent.call(this,id); }; $hxClasses["funkin.play.event.ScriptedSongEvent"] = funkin_play_event_ScriptedSongEvent; funkin_play_event_ScriptedSongEvent.__name__ = "funkin.play.event.ScriptedSongEvent"; funkin_play_event_ScriptedSongEvent.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_event_ScriptedSongEvent.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.event.SongEvent"); }; funkin_play_event_ScriptedSongEvent.init = function(clsName,id) { var value = $hxClasses["funkin.play.event.ScriptedSongEvent"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.event.SongEvent"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.event.ScriptedSongEvent" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_event_ScriptedSongEvent.__super__ = funkin_play_event_SongEvent; funkin_play_event_ScriptedSongEvent.prototype = $extend(funkin_play_event_SongEvent.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedSongEvent"; var superName = "SongEvent"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,handleEvent: function(data) { var fieldName = "handleEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[data]); } else { funkin_play_event_SongEvent.prototype.handleEvent.call(this,data); } } ,getTitle: function() { var fieldName = "getTitle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_event_SongEvent.prototype.getTitle.call(this); } } ,getIconPath: function() { var fieldName = "getIconPath"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_event_SongEvent.prototype.getIconPath.call(this); } } ,getEventSchema: function() { var fieldName = "getEventSchema"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_event_SongEvent.prototype.getEventSchema.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_event_SongEvent.prototype.toString.call(this); } ,__super_handleEvent: function(data) { var fieldName = "handleEvent"; funkin_play_event_SongEvent.prototype.handleEvent.call(this,data); } ,__super_getTitle: function() { var fieldName = "getTitle"; return funkin_play_event_SongEvent.prototype.getTitle.call(this); } ,__super_getIconPath: function() { var fieldName = "getIconPath"; return funkin_play_event_SongEvent.prototype.getIconPath.call(this); } ,__super_getEventSchema: function() { var fieldName = "getEventSchema"; return funkin_play_event_SongEvent.prototype.getEventSchema.call(this); } ,__class__: funkin_play_event_ScriptedSongEvent }); var funkin_play_event_ScrollSpeedEvent = function() { funkin_play_event_SongEvent.call(this,"ScrollSpeed"); }; $hxClasses["funkin.play.event.ScrollSpeedEvent"] = funkin_play_event_ScrollSpeedEvent; funkin_play_event_ScrollSpeedEvent.__name__ = "funkin.play.event.ScrollSpeedEvent"; funkin_play_event_ScrollSpeedEvent.__super__ = funkin_play_event_SongEvent; funkin_play_event_ScrollSpeedEvent.prototype = $extend(funkin_play_event_SongEvent.prototype,{ handleEvent: function(data) { if(funkin_play_PlayState.instance == null) { return; } var tmp; if(data.value == null) { tmp = null; } else { var result = Reflect.field(data.value,"scroll"); tmp = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } var scroll = tmp != null ? tmp : funkin_play_event_ScrollSpeedEvent.DEFAULT_SCROLL; var tmp; if(data.value == null) { tmp = null; } else { var result = Reflect.field(data.value,"duration"); tmp = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } var duration = tmp != null ? tmp : funkin_play_event_ScrollSpeedEvent.DEFAULT_DURATION; var tmp = data.value == null ? null : Reflect.field(data.value,"ease"); var ease = tmp != null ? tmp : funkin_play_event_ScrollSpeedEvent.DEFAULT_EASE; var tmp = data.value == null ? null : Reflect.field(data.value,"strumline"); var strumline = tmp != null ? tmp : funkin_play_event_ScrollSpeedEvent.DEFAULT_STRUMLINE; var tmp = data.value == null ? null : Reflect.field(data.value,"absolute"); var absolute = tmp != null ? tmp : funkin_play_event_ScrollSpeedEvent.DEFAULT_ABSOLUTE; var strumlineNames = []; if(!absolute) { var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.get_currentChart() : null; var tmp = tmp1 != null ? tmp1.scrollSpeed : null; scroll *= tmp != null ? tmp : 1.0; } if(strumline == "both") { strumlineNames = ["playerStrumline","opponentStrumline"]; } else { strumlineNames = [strumline + "Strumline"]; } if(ease == "INSTANT") { funkin_play_PlayState.instance.tweenScrollSpeed(scroll,0,null,strumlineNames); } else { var durSeconds = funkin_Conductor.get_instance().get_stepLengthMs() * duration / 1000; var easeFunction = Reflect.field(flixel_tweens_FlxEase,ease); if(easeFunction == null) { haxe_Log.trace("Invalid ease function: " + ease,{ fileName : "source/funkin/play/event/ScrollSpeedEvent.hx", lineNumber : 84, className : "funkin.play.event.ScrollSpeedEvent", methodName : "handleEvent"}); return; } funkin_play_PlayState.instance.tweenScrollSpeed(scroll,durSeconds,easeFunction,strumlineNames); } } ,getTitle: function() { return "Scroll Speed"; } ,getEventSchema: function() { var _g = new haxe_ds_StringMap(); _g.h["Linear"] = "linear"; _g.h["Instant (Ignores Duration)"] = "INSTANT"; _g.h["Sine In"] = "sineIn"; _g.h["Sine Out"] = "sineOut"; _g.h["Sine In/Out"] = "sineInOut"; _g.h["Quad In"] = "quadIn"; _g.h["Quad Out"] = "quadOut"; _g.h["Quad In/Out"] = "quadInOut"; _g.h["Cube In"] = "cubeIn"; _g.h["Cube Out"] = "cubeOut"; _g.h["Cube In/Out"] = "cubeInOut"; _g.h["Quart In"] = "quartIn"; _g.h["Quart Out"] = "quartOut"; _g.h["Quart In/Out"] = "quartInOut"; _g.h["Quint In"] = "quintIn"; _g.h["Quint Out"] = "quintOut"; _g.h["Quint In/Out"] = "quintInOut"; _g.h["Expo In"] = "expoIn"; _g.h["Expo Out"] = "expoOut"; _g.h["Expo In/Out"] = "expoInOut"; _g.h["Smooth Step In"] = "smoothStepIn"; _g.h["Smooth Step Out"] = "smoothStepOut"; _g.h["Smooth Step In/Out"] = "smoothStepInOut"; _g.h["Elastic In"] = "elasticIn"; _g.h["Elastic Out"] = "elasticOut"; _g.h["Elastic In/Out"] = "elasticInOut"; var _g1 = new haxe_ds_StringMap(); _g1.h["Both"] = "both"; _g1.h["Player"] = "player"; _g1.h["Opponent"] = "opponent"; return funkin_data_event_SongEventSchema._new([{ name : "scroll", title : "Target Value", defaultValue : 1.0, step : 0.1, type : "float", units : "x"},{ name : "duration", title : "Duration", defaultValue : 4.0, step : 0.5, type : "float", units : "steps"},{ name : "ease", title : "Easing Type", defaultValue : "linear", type : "enum", keys : _g},{ name : "strumline", title : "Target Strumline", defaultValue : "both", type : "enum", keys : _g1},{ name : "absolute", title : "Absolute", defaultValue : false, type : "bool"}]); } ,__class__: funkin_play_event_ScrollSpeedEvent }); var funkin_play_event_SetCameraBopSongEvent = function() { funkin_play_event_SongEvent.call(this,"SetCameraBop"); }; $hxClasses["funkin.play.event.SetCameraBopSongEvent"] = funkin_play_event_SetCameraBopSongEvent; funkin_play_event_SetCameraBopSongEvent.__name__ = "funkin.play.event.SetCameraBopSongEvent"; funkin_play_event_SetCameraBopSongEvent.__super__ = funkin_play_event_SongEvent; funkin_play_event_SetCameraBopSongEvent.prototype = $extend(funkin_play_event_SongEvent.prototype,{ handleEvent: function(data) { if(funkin_play_PlayState.instance == null) { return; } var rate; if(data.value == null) { rate = null; } else { var result = Reflect.field(data.value,"rate"); rate = result == null ? null : typeof(result) == "number" && ((result | 0) === result) ? result : typeof(result) == "string" ? Std.parseInt(result) : result; } if(rate == null) { rate = funkin_util_Constants.DEFAULT_ZOOM_RATE; } var intensity; if(data.value == null) { intensity = null; } else { var result = Reflect.field(data.value,"intensity"); intensity = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } if(intensity == null) { intensity = 1.0; } funkin_play_PlayState.instance.cameraBopIntensity = (funkin_util_Constants.DEFAULT_BOP_INTENSITY - 1.0) * intensity + 1.0; funkin_play_PlayState.instance.hudCameraZoomIntensity = (funkin_util_Constants.DEFAULT_BOP_INTENSITY - 1.0) * intensity * 2.0; funkin_play_PlayState.instance.cameraZoomRate = rate; haxe_Log.trace("Set camera zoom rate to " + funkin_play_PlayState.instance.cameraZoomRate,{ fileName : "source/funkin/play/event/SetCameraBopSongEvent.hx", lineNumber : 56, className : "funkin.play.event.SetCameraBopSongEvent", methodName : "handleEvent"}); } ,getTitle: function() { return "Set Camera Bop"; } ,getEventSchema: function() { return funkin_data_event_SongEventSchema._new([{ name : "intensity", title : "Intensity", defaultValue : 1.0, step : 0.1, type : "float", units : "x"},{ name : "rate", title : "Rate", defaultValue : 4, step : 1, type : "integer", units : "beats/zoom"}]); } ,__class__: funkin_play_event_SetCameraBopSongEvent }); var funkin_play_event_ZoomCameraSongEvent = function() { funkin_play_event_SongEvent.call(this,"ZoomCamera"); }; $hxClasses["funkin.play.event.ZoomCameraSongEvent"] = funkin_play_event_ZoomCameraSongEvent; funkin_play_event_ZoomCameraSongEvent.__name__ = "funkin.play.event.ZoomCameraSongEvent"; funkin_play_event_ZoomCameraSongEvent.__super__ = funkin_play_event_SongEvent; funkin_play_event_ZoomCameraSongEvent.prototype = $extend(funkin_play_event_SongEvent.prototype,{ handleEvent: function(data) { if(funkin_play_PlayState.instance == null || funkin_play_PlayState.instance.currentStage == null) { return; } if(funkin_play_PlayState.instance.isMinimalMode) { return; } var tmp; if(data.value == null) { tmp = null; } else { var result = Reflect.field(data.value,"zoom"); tmp = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } var zoom = tmp != null ? tmp : funkin_play_event_ZoomCameraSongEvent.DEFAULT_ZOOM; var tmp; if(data.value == null) { tmp = null; } else { var result = Reflect.field(data.value,"duration"); tmp = result == null ? null : typeof(result) == "number" ? result : typeof(result) == "string" ? parseFloat(result) : result; } var duration = tmp != null ? tmp : funkin_play_event_ZoomCameraSongEvent.DEFAULT_DURATION; var tmp = data.value == null ? null : Reflect.field(data.value,"mode"); var mode = tmp != null ? tmp : funkin_play_event_ZoomCameraSongEvent.DEFAULT_MODE; var isDirectMode = mode == "direct"; var tmp = data.value == null ? null : Reflect.field(data.value,"ease"); var ease = tmp != null ? tmp : funkin_play_event_ZoomCameraSongEvent.DEFAULT_EASE; if(ease == "INSTANT") { funkin_play_PlayState.instance.tweenCameraZoom(zoom,0,isDirectMode); } else { var durSeconds = funkin_Conductor.get_instance().get_stepLengthMs() * duration / 1000; var easeFunction = Reflect.field(flixel_tweens_FlxEase,ease); if(easeFunction == null) { haxe_Log.trace("Invalid ease function: " + ease,{ fileName : "source/funkin/play/event/ZoomCameraSongEvent.hx", lineNumber : 87, className : "funkin.play.event.ZoomCameraSongEvent", methodName : "handleEvent"}); return; } funkin_play_PlayState.instance.tweenCameraZoom(zoom,durSeconds,isDirectMode,easeFunction); } } ,getTitle: function() { return "Zoom Camera"; } ,getEventSchema: function() { var _g = new haxe_ds_StringMap(); _g.h["Stage zoom"] = "stage"; _g.h["Absolute zoom"] = "direct"; var _g1 = new haxe_ds_StringMap(); _g1.h["Linear"] = "linear"; _g1.h["Instant"] = "INSTANT"; _g1.h["Sine In"] = "sineIn"; _g1.h["Sine Out"] = "sineOut"; _g1.h["Sine In/Out"] = "sineInOut"; _g1.h["Quad In"] = "quadIn"; _g1.h["Quad Out"] = "quadOut"; _g1.h["Quad In/Out"] = "quadInOut"; _g1.h["Cube In"] = "cubeIn"; _g1.h["Cube Out"] = "cubeOut"; _g1.h["Cube In/Out"] = "cubeInOut"; _g1.h["Quart In"] = "quartIn"; _g1.h["Quart Out"] = "quartOut"; _g1.h["Quart In/Out"] = "quartInOut"; _g1.h["Quint In"] = "quintIn"; _g1.h["Quint Out"] = "quintOut"; _g1.h["Quint In/Out"] = "quintInOut"; _g1.h["Expo In"] = "expoIn"; _g1.h["Expo Out"] = "expoOut"; _g1.h["Expo In/Out"] = "expoInOut"; _g1.h["Smooth Step In"] = "smoothStepIn"; _g1.h["Smooth Step Out"] = "smoothStepOut"; _g1.h["Smooth Step In/Out"] = "smoothStepInOut"; _g1.h["Elastic In"] = "elasticIn"; _g1.h["Elastic Out"] = "elasticOut"; _g1.h["Elastic In/Out"] = "elasticInOut"; return funkin_data_event_SongEventSchema._new([{ name : "zoom", title : "Zoom Level", defaultValue : 1.0, step : 0.1, type : "float", units : "x"},{ name : "duration", title : "Duration", defaultValue : 4.0, step : 0.5, type : "float", units : "steps"},{ name : "mode", title : "Mode", defaultValue : "stage", type : "enum", keys : _g},{ name : "ease", title : "Easing Type", defaultValue : "linear", type : "enum", keys : _g1}]); } ,__class__: funkin_play_event_ZoomCameraSongEvent }); var funkin_play_notes_NoteDirection = {}; funkin_play_notes_NoteDirection.__properties__ = {get_colorName:"get_colorName",get_color:"get_color",get_nameUpper:"get_nameUpper",get_name:"get_name"}; funkin_play_notes_NoteDirection.fromInt = function(value) { switch(value % 4) { case 0: return 0; case 1: return 1; case 2: return 2; case 3: return 3; default: return 0; } }; funkin_play_notes_NoteDirection.get_name = function(this1) { switch(this1) { case 0: return "left"; case 1: return "down"; case 2: return "up"; case 3: return "right"; default: return "unknown"; } }; funkin_play_notes_NoteDirection.get_nameUpper = function(this1) { return funkin_play_notes_NoteDirection.get_name(this1).toUpperCase(); }; funkin_play_notes_NoteDirection.get_color = function(this1) { return funkin_util_Constants.COLOR_NOTES[this1]; }; funkin_play_notes_NoteDirection.get_colorName = function(this1) { switch(this1) { case 0: return "purple"; case 1: return "blue"; case 2: return "green"; case 3: return "red"; default: return "unknown"; } }; funkin_play_notes_NoteDirection.toString = function(this1) { return funkin_play_notes_NoteDirection.get_name(this1); }; var funkin_play_notes_NoteHoldCover = function() { flixel_group_FlxTypedSpriteGroup.call(this,0,0); this.setup(); }; $hxClasses["funkin.play.notes.NoteHoldCover"] = funkin_play_notes_NoteHoldCover; funkin_play_notes_NoteHoldCover.__name__ = "funkin.play.notes.NoteHoldCover"; funkin_play_notes_NoteHoldCover.glowFrames = null; funkin_play_notes_NoteHoldCover.preloadFrames = function() { funkin_play_notes_NoteHoldCover.glowFrames = null; var _g = 0; var _g1 = funkin_play_notes_Strumline.DIRECTIONS; while(_g < _g1.length) { var direction = _g1[_g]; ++_g; var directionName = funkin_util_tools_StringTools.toTitleCase(funkin_play_notes_NoteDirection.get_colorName(direction)); var atlas = funkin_Paths.getSparrowAtlas("holdCover" + directionName); atlas.parent.persist = true; if(funkin_play_notes_NoteHoldCover.glowFrames != null) { funkin_play_notes_NoteHoldCover.glowFrames = funkin_util_assets_FlxAnimationUtil.combineFramesCollections(funkin_play_notes_NoteHoldCover.glowFrames,atlas); } else { funkin_play_notes_NoteHoldCover.glowFrames = atlas; } } }; funkin_play_notes_NoteHoldCover.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_notes_NoteHoldCover.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ holdNote: null ,glow: null ,sparks: null ,setup: function() { this.glow = new flixel_FlxSprite(); this.add(this.glow); if(funkin_play_notes_NoteHoldCover.glowFrames == null) { funkin_play_notes_NoteHoldCover.preloadFrames(); } this.glow.set_frames(funkin_play_notes_NoteHoldCover.glowFrames); var _g = 0; var _g1 = funkin_play_notes_Strumline.DIRECTIONS; while(_g < _g1.length) { var direction = _g1[_g]; ++_g; var directionName = funkin_util_tools_StringTools.toTitleCase(funkin_play_notes_NoteDirection.get_colorName(direction)); this.glow.animation.addByPrefix("holdCoverStart" + directionName,"holdCoverStart" + directionName + "0",funkin_play_notes_NoteHoldCover.FRAMERATE_DEFAULT,false,false,false); this.glow.animation.addByPrefix("holdCover" + directionName,"holdCover" + directionName + "0",funkin_play_notes_NoteHoldCover.FRAMERATE_DEFAULT,true,false,false); this.glow.animation.addByPrefix("holdCoverEnd" + directionName,"holdCoverEnd" + directionName + "0",funkin_play_notes_NoteHoldCover.FRAMERATE_DEFAULT,false,false,false); } this.glow.animation.finishCallback = $bind(this,this.onAnimationFinished); if(this.glow.animation.getAnimationList().length < 12) { haxe_Log.trace("WARNING: NoteHoldCover failed to initialize all animations.",{ fileName : "source/funkin/play/notes/NoteHoldCover.hx", lineNumber : 73, className : "funkin.play.notes.NoteHoldCover", methodName : "setup"}); } } ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,playStart: function() { var direction = this.holdNote.noteDirection; this.glow.animation.play("holdCoverStart" + funkin_util_tools_StringTools.toTitleCase(funkin_play_notes_NoteDirection.get_colorName(direction))); } ,playContinue: function() { var direction = this.holdNote.noteDirection; this.glow.animation.play("holdCover" + funkin_util_tools_StringTools.toTitleCase(funkin_play_notes_NoteDirection.get_colorName(direction))); } ,playEnd: function() { var direction = this.holdNote.noteDirection; this.glow.animation.play("holdCoverEnd" + funkin_util_tools_StringTools.toTitleCase(funkin_play_notes_NoteDirection.get_colorName(direction))); } ,kill: function() { flixel_group_FlxTypedSpriteGroup.prototype.kill.call(this); this.set_visible(false); if(this.glow != null) { this.glow.set_visible(false); } if(this.sparks != null) { this.sparks.set_visible(false); } } ,revive: function() { flixel_group_FlxTypedSpriteGroup.prototype.revive.call(this); this.set_visible(true); this.set_alpha(1.0); if(this.glow != null) { this.glow.set_visible(true); } if(this.sparks != null) { this.sparks.set_visible(true); } } ,onAnimationFinished: function(animationName) { if(StringTools.startsWith(animationName,"holdCoverStart")) { this.playContinue(); } if(StringTools.startsWith(animationName,"holdCoverEnd")) { this.set_visible(false); this.kill(); } } ,__class__: funkin_play_notes_NoteHoldCover }); var funkin_play_notes_NoteSplash = function() { flixel_FlxSprite.call(this,0,0); this.setup(); this.set_alpha(funkin_play_notes_NoteSplash.ALPHA); this.animation.finishCallback = $bind(this,this.onAnimationFinished); }; $hxClasses["funkin.play.notes.NoteSplash"] = funkin_play_notes_NoteSplash; funkin_play_notes_NoteSplash.__name__ = "funkin.play.notes.NoteSplash"; funkin_play_notes_NoteSplash.frameCollection = null; funkin_play_notes_NoteSplash.preloadFrames = function() { funkin_play_notes_NoteSplash.frameCollection = funkin_Paths.getSparrowAtlas("noteSplashes"); funkin_play_notes_NoteSplash.frameCollection.parent.persist = true; }; funkin_play_notes_NoteSplash.__super__ = flixel_FlxSprite; funkin_play_notes_NoteSplash.prototype = $extend(flixel_FlxSprite.prototype,{ setup: function() { var tmp = funkin_play_notes_NoteSplash.frameCollection; var tmp1 = tmp != null ? tmp.parent : null; var tmp = tmp1 != null ? tmp1.shader == null : null; if(tmp != null && tmp) { funkin_play_notes_NoteSplash.frameCollection = null; } if(funkin_play_notes_NoteSplash.frameCollection == null) { funkin_play_notes_NoteSplash.preloadFrames(); } this.set_frames(funkin_play_notes_NoteSplash.frameCollection); this.animation.addByPrefix("splash1Left","note impact 1 purple0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash1Down","note impact 1 blue0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash1Up","note impact 1 green0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash1Right","note impact 1 red0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash2Left","note impact 2 purple0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash2Down","note impact 2 blue0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash2Up","note impact 2 green0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); this.animation.addByPrefix("splash2Right","note impact 2 red0",funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT,false,false,false); if(this.animation.getAnimationList().length < 8) { haxe_Log.trace("WARNING: NoteSplash failed to initialize all animations.",{ fileName : "source/funkin/play/notes/NoteSplash.hx", lineNumber : 54, className : "funkin.play.notes.NoteSplash", methodName : "setup"}); } } ,playAnimation: function(name,force,reversed,startFrame) { if(startFrame == null) { startFrame = 0; } if(reversed == null) { reversed = false; } if(force == null) { force = false; } this.animation.play(name,force,reversed,startFrame); } ,play: function(direction,variant) { if(variant == null) { variant = flixel_FlxG.random.int(1,2); } switch(direction) { case 0: this.playAnimation("splash" + variant + "Left"); break; case 1: this.playAnimation("splash" + variant + "Down"); break; case 2: this.playAnimation("splash" + variant + "Up"); break; case 3: this.playAnimation("splash" + variant + "Right"); break; } if(this.animation._curAnim == null) { return; } this.animation._curAnim.set_frameRate(funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT + flixel_FlxG.random.int(-funkin_play_notes_NoteSplash.FRAMERATE_VARIANCE,funkin_play_notes_NoteSplash.FRAMERATE_VARIANCE)); var this1 = this.offset; var x = this.get_width() * 0.3; var y = this.get_height() * 0.3; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,onAnimationFinished: function(animationName) { this.kill(); } ,__class__: funkin_play_notes_NoteSplash }); var funkin_play_notes_NoteSprite = function(noteStyle,direction) { if(direction == null) { direction = 0; } this.lowPriority = false; this.hasBeenHit = false; funkin_graphics_FunkinSprite.call(this,0,-9999); this.set_direction(direction); this.hsvShader = new funkin_graphics_shaders_HSVShader(); this.setupNoteGraphic(noteStyle); this.set_active(false); }; $hxClasses["funkin.play.notes.NoteSprite"] = funkin_play_notes_NoteSprite; funkin_play_notes_NoteSprite.__name__ = "funkin.play.notes.NoteSprite"; funkin_play_notes_NoteSprite.__super__ = funkin_graphics_FunkinSprite; funkin_play_notes_NoteSprite.prototype = $extend(funkin_graphics_FunkinSprite.prototype,{ holdNoteSprite: null ,hsvShader: null ,get_strumTime: function() { var tmp = this.noteData; var tmp1 = tmp != null ? tmp.time : null; if(tmp1 != null) { return tmp1; } else { return 0.0; } } ,set_strumTime: function(value) { if(this.noteData == null) { return value; } return this.noteData.set_time(value); } ,get_length: function() { var tmp = this.noteData; var tmp1 = tmp != null ? tmp.length : null; if(tmp1 != null) { return tmp1; } else { return 0.0; } } ,set_length: function(value) { if(this.noteData == null) { return value; } return this.noteData.set_length(value); } ,get_kind: function() { var tmp = this.noteData; if(tmp != null) { return tmp.get_kind(); } else { return null; } } ,set_kind: function(value) { if(this.noteData == null) { return value; } return this.noteData.set_kind(value); } ,direction: null ,set_direction: function(value) { if(this.frames == null) { return value; } this.animation.play(funkin_play_notes_NoteSprite.DIRECTION_COLORS[value] + "Scroll"); this.direction = value; return this.direction; } ,noteData: null ,get_isHoldNote: function() { return this.noteData.length > 0; } ,hasBeenHit: null ,lowPriority: null ,hasMissed: null ,tooEarly: null ,mayHit: null ,handledMiss: null ,setupNoteGraphic: function(noteStyle) { noteStyle.buildNoteSprite(this); this.setGraphicSize(funkin_play_notes_Strumline.STRUMLINE_SIZE); this.updateHitbox(); this.shader = this.hsvShader; } ,desaturate: function() { this.hsvShader.set_saturation(0.2); } ,setHue: function(hue) { this.hsvShader.set_hue(hue); } ,revive: function() { funkin_graphics_FunkinSprite.prototype.revive.call(this); this.set_visible(true); this.set_alpha(1.0); this.set_active(false); this.tooEarly = false; this.hasBeenHit = false; this.mayHit = false; this.hasMissed = false; this.hsvShader.set_hue(1.0); this.hsvShader.set_saturation(1.0); this.hsvShader.set_value(1.0); } ,kill: function() { funkin_graphics_FunkinSprite.prototype.kill.call(this); } ,destroy: function() { funkin_graphics_FunkinSprite.prototype.destroy.call(this); } ,__class__: funkin_play_notes_NoteSprite ,__properties__: $extend(funkin_graphics_FunkinSprite.prototype.__properties__,{get_isHoldNote:"get_isHoldNote",set_direction:"set_direction",set_kind:"set_kind",get_kind:"get_kind",set_length:"set_length",get_length:"get_length",set_strumTime:"set_strumTime",get_strumTime:"get_strumTime"}) }); var funkin_play_notes_Strumline = function(noteStyle,isPlayer) { this.heldKeys = []; this.nextNoteIndex = -1; this.noteData = []; this.scrollSpeed = 1.0; flixel_group_FlxTypedSpriteGroup.call(this); this.isPlayer = isPlayer; this.noteStyle = noteStyle; this.strumlineNotes = new flixel_group_FlxTypedSpriteGroup(); this.strumlineNotes.zIndex = 10; this.add(this.strumlineNotes); this.holdNotes = new flixel_group_FlxTypedSpriteGroup(); this.holdNotes.zIndex = 20; this.add(this.holdNotes); this.holdNotesVwoosh = new flixel_group_FlxTypedSpriteGroup(); this.holdNotesVwoosh.zIndex = 21; this.add(this.holdNotesVwoosh); this.notes = new flixel_group_FlxTypedSpriteGroup(); this.notes.zIndex = 30; this.add(this.notes); this.notesVwoosh = new flixel_group_FlxTypedSpriteGroup(); this.notesVwoosh.zIndex = 31; this.add(this.notesVwoosh); this.noteHoldCovers = new flixel_group_FlxTypedSpriteGroup(0,0,4); this.noteHoldCovers.zIndex = 40; this.add(this.noteHoldCovers); this.noteSplashes = new flixel_group_FlxTypedSpriteGroup(0,0,funkin_play_notes_Strumline.NOTE_SPLASH_CAP); this.noteSplashes.zIndex = 50; this.add(this.noteSplashes); this.refresh(); this.onNoteIncoming = new flixel_util__$FlxSignal_FlxSignal1(); this.resetScrollSpeed(); var _g = 0; var _g1 = funkin_play_notes_Strumline.KEY_COUNT; while(_g < _g1) { var i = _g++; var child = new funkin_play_notes_StrumlineNote(noteStyle,isPlayer,funkin_play_notes_Strumline.DIRECTIONS[i]); child.set_x(this.getXPos(funkin_play_notes_Strumline.DIRECTIONS[i])); child.set_x(child.x + funkin_play_notes_Strumline.INITIAL_OFFSET); child.set_y(0); noteStyle.applyStrumlineOffsets(child); this.strumlineNotes.add(child); } var _g = 0; var _g1 = funkin_play_notes_Strumline.KEY_COUNT; while(_g < _g1) { var i = _g++; this.heldKeys.push(false); } this.set_active(true); }; $hxClasses["funkin.play.notes.Strumline"] = funkin_play_notes_Strumline; funkin_play_notes_Strumline.__name__ = "funkin.play.notes.Strumline"; funkin_play_notes_Strumline.__properties__ = {get_RENDER_DISTANCE_MS:"get_RENDER_DISTANCE_MS"}; funkin_play_notes_Strumline.get_RENDER_DISTANCE_MS = function() { return flixel_FlxG.height / 0.45; }; funkin_play_notes_Strumline.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_notes_Strumline.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ isPlayer: null ,scrollSpeed: null ,resetScrollSpeed: function() { var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.get_currentChart() : null; var tmp = tmp1 != null ? tmp1.scrollSpeed : null; this.scrollSpeed = tmp != null ? tmp : 1.0; } ,_conductorInUse: null ,get_conductorInUse: function() { if(this._conductorInUse == null) { return funkin_Conductor.get_instance(); } return this._conductorInUse; } ,set_conductorInUse: function(value) { return this._conductorInUse = value; } ,notes: null ,holdNotes: null ,onNoteIncoming: null ,strumlineNotes: null ,noteSplashes: null ,noteHoldCovers: null ,notesVwoosh: null ,holdNotesVwoosh: null ,noteStyle: null ,noteData: null ,nextNoteIndex: null ,heldKeys: null ,refresh: function() { var Order = -1; if(Order == null) { Order = -1; } var order = Order; if(order == null) { order = -1; } var _g = funkin_util_SortUtil.byZIndex; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.group.members.sort(tmp); } ,get_width: function() { return funkin_play_notes_Strumline.KEY_COUNT * funkin_play_notes_Strumline.NOTE_SPACING; } ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); this.updateNotes(); } ,mayGhostTap: function() { var _g = []; var _g1 = 0; var _g2 = this.notes.group.members; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != null && v.alive && !v.hasBeenHit) { _g.push(v); } } return _g.length == 0; } ,getNotesMayHit: function() { var _g = []; var _g1 = 0; var _g2 = this.notes.group.members; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != null && v.alive && !v.hasBeenHit && v.mayHit) { _g.push(v); } } return _g; } ,getHoldNotesHitOrMissed: function() { var _g = []; var _g1 = 0; var _g2 = this.holdNotes.group.members; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != null && v.alive && (v.hitNote || v.missedNote)) { _g.push(v); } } return _g; } ,getNoteSprite: function(noteData) { if(noteData == null) { return null; } var _g = 0; var _g1 = this.notes.group.members; while(_g < _g1.length) { var note = _g1[_g]; ++_g; if(note == null) { continue; } if(note.alive) { continue; } if(funkin_data_song_SongNoteData.op_equals(note.noteData,noteData)) { return note; } } return null; } ,getHoldNoteSprite: function(noteData) { var tmp; if(noteData != null) { var tmp1 = noteData.length; tmp = (tmp1 != null ? tmp1 : 0.0) <= 0.0; } else { tmp = true; } if(tmp) { return null; } var _g = 0; var _g1 = this.holdNotes.group.members; while(_g < _g1.length) { var holdNote = _g1[_g]; ++_g; if(holdNote == null) { continue; } if(holdNote.alive) { continue; } if(funkin_data_song_SongNoteData.op_equals(holdNote.noteData,noteData)) { return holdNote; } } return null; } ,vwooshNotes: function() { var _gthis = this; var _g = 0; var _g1 = this.notes.group.members; while(_g < _g1.length) { var note = [_g1[_g]]; ++_g; if(note[0] == null) { continue; } if(!note[0].alive) { continue; } this.notes.remove(note[0]); this.notesVwoosh.add(note[0]); var targetY = flixel_FlxG.height + note[0].y; if(funkin_Preferences.get_downscroll()) { targetY = 0 - note[0].get_height(); } flixel_tweens_FlxTween.tween(note[0],{ y : targetY},0.5,{ ease : flixel_tweens_FlxEase.expoIn, onComplete : (function(note) { return function(twn) { note[0].kill(); _gthis.notesVwoosh.remove(note[0],true); note[0].destroy(); }; })(note)}); } var _g = 0; var _g1 = this.holdNotes.group.members; while(_g < _g1.length) { var holdNote = [_g1[_g]]; ++_g; if(holdNote[0] == null) { continue; } if(!holdNote[0].alive) { continue; } this.holdNotes.remove(holdNote[0]); this.holdNotesVwoosh.add(holdNote[0]); var targetY = flixel_FlxG.height + holdNote[0].y; if(funkin_Preferences.get_downscroll()) { targetY = 0 - holdNote[0].get_height(); } flixel_tweens_FlxTween.tween(holdNote[0],{ y : targetY},0.5,{ ease : flixel_tweens_FlxEase.expoIn, onComplete : (function(holdNote) { return function(twn) { holdNote[0].kill(); _gthis.holdNotesVwoosh.remove(holdNote[0],true); holdNote[0].destroy(); }; })(holdNote)}); } } ,calculateNoteYPos: function(strumTime,vwoosh) { if(vwoosh == null) { vwoosh = true; } var vwoosh = 1.0; return funkin_util_Constants.PIXELS_PER_MS * (this.get_conductorInUse().songPosition - strumTime - funkin_Conductor.get_instance().get_inputOffset()) * this.scrollSpeed * vwoosh * (funkin_Preferences.get_downscroll() ? 1 : -1); } ,updateNotes: function() { if(this.noteData.length == 0) { return; } var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.startTimestamp : null; var songStart = tmp1 != null ? tmp1 : 0.0; var hitWindowStart = this.get_conductorInUse().songPosition - funkin_util_Constants.HIT_WINDOW_MS; var renderWindowStart = this.get_conductorInUse().songPosition + funkin_play_notes_Strumline.get_RENDER_DISTANCE_MS(); var _g = this.nextNoteIndex; var _g1 = this.noteData.length; while(_g < _g1) { var noteIndex = _g++; var note = this.noteData[noteIndex]; if(note == null) { continue; } if(note.time < songStart || note.time < hitWindowStart) { this.nextNoteIndex = noteIndex + 1; continue; } if(note.time > renderWindowStart) { break; } var noteSprite = this.buildNoteSprite(note); if(note.length > 0) { noteSprite.holdNoteSprite = this.buildHoldNoteSprite(note); } this.nextNoteIndex = noteIndex + 1; this.onNoteIncoming.dispatch(noteSprite); } var _g = 0; var _g1 = this.notes.group.members; while(_g < _g1.length) { var note = _g1[_g]; ++_g; if(note == null || !note.alive) { continue; } var vwoosh = note.holdNoteSprite == null; note.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET + this.calculateNoteYPos(note.get_strumTime(),vwoosh)); var isOffscreen = funkin_Preferences.get_downscroll() ? note.y > flixel_FlxG.height : note.y < -note.get_height(); if(note.handledMiss && isOffscreen) { this.killNote(note); } } var _g = 0; var _g1 = this.holdNotes.group.members; while(_g < _g1.length) { var holdNote = _g1[_g]; ++_g; if(holdNote == null || !holdNote.alive) { continue; } if(this.get_conductorInUse().songPosition > holdNote.strumTime && holdNote.hitNote && !holdNote.missedNote) { if(this.isPlayer && !this.isKeyHeld(holdNote.noteDirection)) { this.playStatic(holdNote.noteDirection); holdNote.missedNote = true; holdNote.set_visible(true); holdNote.set_alpha(0.0); } } var renderWindowEnd = holdNote.strumTime + holdNote.fullSustainLength + funkin_util_Constants.HIT_WINDOW_MS + funkin_play_notes_Strumline.get_RENDER_DISTANCE_MS() / 8; if(holdNote.missedNote && this.get_conductorInUse().songPosition >= renderWindowEnd) { holdNote.set_visible(false); holdNote.kill(); } else if(holdNote.hitNote && holdNote.sustainLength <= 0) { if(this.isKeyHeld(holdNote.noteDirection)) { this.playPress(holdNote.noteDirection); } else { this.playStatic(holdNote.noteDirection); } if(holdNote.cover != null && this.isPlayer) { holdNote.cover.playEnd(); } else if(holdNote.cover != null) { holdNote.cover.set_visible(false); holdNote.cover.kill(); } holdNote.set_visible(false); holdNote.kill(); } else if(holdNote.missedNote && holdNote.fullSustainLength > holdNote.sustainLength) { holdNote.set_visible(true); var yOffset = (holdNote.fullSustainLength - holdNote.sustainLength) * funkin_util_Constants.PIXELS_PER_MS; var vwoosh = false; if(funkin_Preferences.get_downscroll()) { holdNote.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET + this.calculateNoteYPos(holdNote.strumTime,vwoosh) - holdNote.get_height() + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); } else { holdNote.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET + this.calculateNoteYPos(holdNote.strumTime,vwoosh) + yOffset + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); } if(holdNote.cover != null) { holdNote.cover.set_visible(false); holdNote.cover.kill(); } } else if(this.get_conductorInUse().songPosition > holdNote.strumTime && holdNote.hitNote) { this.holdConfirm(holdNote.noteDirection); holdNote.set_visible(true); holdNote.set_sustainLength(holdNote.strumTime + holdNote.fullSustainLength - this.get_conductorInUse().songPosition); if(holdNote.sustainLength <= 10) { holdNote.set_visible(false); } if(funkin_Preferences.get_downscroll()) { holdNote.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET - holdNote.get_height() + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); } else { holdNote.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); } } else { holdNote.set_visible(true); var vwoosh1 = false; if(funkin_Preferences.get_downscroll()) { holdNote.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET + this.calculateNoteYPos(holdNote.strumTime,vwoosh1) - holdNote.get_height() + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); } else { holdNote.set_y(this.y - funkin_play_notes_Strumline.INITIAL_OFFSET + this.calculateNoteYPos(holdNote.strumTime,vwoosh1) + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); } } } var _g = 0; var _g1 = funkin_play_notes_Strumline.DIRECTIONS; while(_g < _g1.length) { var dir = _g1[_g]; ++_g; if(this.isKeyHeld(dir) && this.getByDirection(dir).getCurrentAnimation() == "static") { this.playPress(dir); } } } ,handleSkippedNotes: function() { this.clean(); this.nextNoteIndex = 0; } ,onBeatHit: function() { if(this.notes.group.members.length > 1) { var _g = this; var order = -1; var tmp = function(a,b) { return _g.compareNoteSprites(order,a,b); }; funkin_util_tools_ArraySortTools.insertionSort(this.notes.group.members,tmp); } if(this.holdNotes.group.members.length > 1) { var _g1 = this; var order1 = -1; var tmp = function(a,b) { return _g1.compareHoldNoteSprites(order1,a,b); }; funkin_util_tools_ArraySortTools.insertionSort(this.holdNotes.group.members,tmp); } } ,pressKey: function(dir) { this.heldKeys[dir] = true; } ,releaseKey: function(dir) { this.heldKeys[dir] = false; } ,isKeyHeld: function(dir) { return this.heldKeys[dir]; } ,clean: function() { var _g = 0; var _g1 = this.notes.group.members; while(_g < _g1.length) { var note = _g1[_g]; ++_g; if(note == null) { continue; } this.killNote(note); } var _g = 0; var _g1 = this.holdNotes.group.members; while(_g < _g1.length) { var holdNote = _g1[_g]; ++_g; if(holdNote == null) { continue; } holdNote.kill(); } var splash = new flixel_group_FlxTypedGroupIterator(this.noteSplashes.group.members,null); while(splash.hasNext()) { var splash1 = splash.next(); if(splash1 == null) { continue; } splash1.kill(); } var cover = new flixel_group_FlxTypedGroupIterator(this.noteHoldCovers.group.members,null); while(cover.hasNext()) { var cover1 = cover.next(); if(cover1 == null) { continue; } cover1.kill(); } this.heldKeys = [false,false,false,false]; var _g = 0; var _g1 = funkin_play_notes_Strumline.DIRECTIONS; while(_g < _g1.length) { var dir = _g1[_g]; ++_g; this.playStatic(dir); } this.resetScrollSpeed(); } ,applyNoteData: function(data) { this.notes.group.clear(); this.noteData = data.slice(); this.nextNoteIndex = 0; var _g = this; var order = -1; var tmp = function(a,b) { return _g.compareNoteData(order,a,b); }; funkin_util_tools_ArraySortTools.insertionSort(this.noteData,tmp); } ,hitNote: function(note,removeNote) { if(removeNote == null) { removeNote = true; } this.playConfirm(note.direction); note.hasBeenHit = true; if(removeNote) { this.killNote(note); } else { note.set_alpha(0.5); note.desaturate(); } if(note.holdNoteSprite != null) { note.holdNoteSprite.hitNote = true; note.holdNoteSprite.missedNote = false; note.holdNoteSprite.set_alpha(1.0); note.holdNoteSprite.set_sustainLength(note.holdNoteSprite.strumTime + note.holdNoteSprite.fullSustainLength - this.get_conductorInUse().songPosition); } } ,killNote: function(note) { if(note == null) { return; } note.set_visible(false); this.notes.remove(note,false); note.kill(); if(note.holdNoteSprite != null) { note.holdNoteSprite.missedNote = true; note.holdNoteSprite.set_visible(false); } } ,getByIndex: function(index) { return this.strumlineNotes.group.members[index]; } ,getByDirection: function(direction) { return this.getByIndex(funkin_play_notes_Strumline.DIRECTIONS.indexOf(direction)); } ,playStatic: function(direction) { this.getByDirection(direction).playStatic(); } ,playPress: function(direction) { this.getByDirection(direction).playPress(); } ,playConfirm: function(direction) { this.getByDirection(direction).playConfirm(); } ,holdConfirm: function(direction) { this.getByDirection(direction).holdConfirm(); } ,isConfirm: function(direction) { return this.getByDirection(direction).isConfirm(); } ,playNoteSplash: function(direction) { if(!this.noteStyle.isNoteSplashEnabled()) { return; } var splash = this.constructNoteSplash(); if(splash != null) { splash.play(direction); splash.set_x(this.x); splash.set_x(splash.x + this.getXPos(direction)); splash.set_x(splash.x + funkin_play_notes_Strumline.INITIAL_OFFSET); splash.set_y(this.y); splash.set_y(splash.y - funkin_play_notes_Strumline.INITIAL_OFFSET); splash.set_y(splash.y); } } ,playNoteHoldCover: function(holdNote) { if(!this.noteStyle.isHoldNoteCoverEnabled()) { return; } var cover = this.constructNoteHoldCover(); if(cover != null) { cover.holdNote = holdNote; holdNote.cover = cover; cover.set_visible(true); cover.playStart(); cover.set_x(this.x); cover.set_x(cover.x + this.getXPos(holdNote.noteDirection)); cover.set_x(cover.x + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); cover.set_x(cover.x - cover.get_width() / 2); cover.set_x(cover.x + (-12)); cover.set_y(this.y); cover.set_y(cover.y + funkin_play_notes_Strumline.INITIAL_OFFSET); cover.set_y(cover.y + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); cover.set_y(cover.y + (-96)); } } ,buildNoteSprite: function(note) { var noteSprite = this.constructNoteSprite(); if(noteSprite != null) { noteSprite.set_direction(note.data % 4); noteSprite.noteData = note; noteSprite.set_x(this.x); noteSprite.set_x(noteSprite.x + this.getXPos(funkin_play_notes_Strumline.DIRECTIONS[note.data % 4 % funkin_play_notes_Strumline.KEY_COUNT])); noteSprite.set_x(noteSprite.x - funkin_play_notes_Strumline.NUDGE); noteSprite.set_y(-9999); } return noteSprite; } ,buildHoldNoteSprite: function(note) { var holdNoteSprite = this.constructHoldNoteSprite(); if(holdNoteSprite != null) { holdNoteSprite.parentStrumline = this; holdNoteSprite.noteData = note; holdNoteSprite.strumTime = note.time; holdNoteSprite.noteDirection = note.data % 4; holdNoteSprite.fullSustainLength = note.length; holdNoteSprite.set_sustainLength(note.length); holdNoteSprite.missedNote = false; holdNoteSprite.hitNote = false; holdNoteSprite.set_visible(true); holdNoteSprite.set_alpha(1.0); holdNoteSprite.set_x(this.x); holdNoteSprite.set_x(holdNoteSprite.x + this.getXPos(funkin_play_notes_Strumline.DIRECTIONS[note.data % 4 % funkin_play_notes_Strumline.KEY_COUNT])); holdNoteSprite.set_x(holdNoteSprite.x + funkin_play_notes_Strumline.STRUMLINE_SIZE / 2); holdNoteSprite.set_x(holdNoteSprite.x - holdNoteSprite.get_width() / 2); holdNoteSprite.set_y(-9999); } return holdNoteSprite; } ,constructNoteSplash: function() { var result = null; if(this.noteSplashes.group.length < this.noteSplashes.group.maxSize) { result = new funkin_play_notes_NoteSplash(); this.noteSplashes.add(result); } else { result = this.noteSplashes.group.getFirstAvailable(null,false); if(result != null) { result.revive(); } else { result = flixel_FlxG.random.getObject_funkin_play_notes_NoteSplash(this.noteSplashes.group.members); } } return result; } ,constructNoteHoldCover: function() { var result = null; if(this.noteHoldCovers.group.length < this.noteHoldCovers.group.maxSize) { result = new funkin_play_notes_NoteHoldCover(); this.noteHoldCovers.add(result); } else { result = this.noteHoldCovers.group.getFirstAvailable(null,false); if(result != null) { result.revive(); } else { result = flixel_FlxG.random.getObject_funkin_play_notes_NoteHoldCover(this.noteHoldCovers.group.members); } } return result; } ,constructNoteSprite: function() { var result = null; result = this.notes.group.getFirstAvailable(null,false); if(result != null) { result.revive(); } else { result = new funkin_play_notes_NoteSprite(this.noteStyle); this.notes.add(result); } return result; } ,constructHoldNoteSprite: function() { var result = null; result = this.holdNotes.group.getFirstAvailable(null,false); if(result != null) { result.revive(); } else { result = new funkin_play_notes_SustainTrail(0,0,this.noteStyle); this.holdNotes.add(result); } return result; } ,getXPos: function(direction) { switch(direction) { case 0: return 0; case 1: return funkin_play_notes_Strumline.NOTE_SPACING; case 2: return 2 * funkin_play_notes_Strumline.NOTE_SPACING; case 3: return 3 * funkin_play_notes_Strumline.NOTE_SPACING; default: return 0; } } ,fadeInArrow: function(index,arrow) { arrow.set_y(arrow.y - 10); arrow.set_alpha(0.0); flixel_tweens_FlxTween.tween(arrow,{ y : arrow.y + 10, alpha : 1},1,{ ease : flixel_tweens_FlxEase.circOut, startDelay : 0.5 + 0.2 * index}); } ,fadeInArrows: function() { var _g_current = 0; var _g_array = this.strumlineNotes.group.members; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var index = _g_key; var arrow = _g_value; this.fadeInArrow(index,arrow); } } ,compareNoteData: function(order,a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; } ,compareNoteSprites: function(order,a,b) { var Value1 = a != null ? a.get_strumTime() : null; var Value2 = b != null ? b.get_strumTime() : null; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; } ,compareHoldNoteSprites: function(order,a,b) { var Value1 = a != null ? a.strumTime : null; var Value2 = b != null ? b.strumTime : null; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; } ,__class__: funkin_play_notes_Strumline ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_conductorInUse:"set_conductorInUse",get_conductorInUse:"get_conductorInUse"}) }); var funkin_play_notes_StrumlineNote = function(noteStyle,isPlayer,direction) { this.confirmHoldTimer = -1; flixel_FlxSprite.call(this,0,0); this.isPlayer = isPlayer; this.set_direction(direction); this.setup(noteStyle); this.animation.callback = $bind(this,this.onAnimationFrame); this.animation.finishCallback = $bind(this,this.onAnimationFinished); this.set_active(true); }; $hxClasses["funkin.play.notes.StrumlineNote"] = funkin_play_notes_StrumlineNote; funkin_play_notes_StrumlineNote.__name__ = "funkin.play.notes.StrumlineNote"; funkin_play_notes_StrumlineNote.__super__ = flixel_FlxSprite; funkin_play_notes_StrumlineNote.prototype = $extend(flixel_FlxSprite.prototype,{ isPlayer: null ,direction: null ,confirmHoldTimer: null ,set_direction: function(value) { this.direction = value; return this.direction; } ,onAnimationFrame: function(name,frameNumber,frameIndex) { } ,onAnimationFinished: function(name) { if(name == "confirm") { this.confirmHoldTimer = 0; } } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(this.confirmHoldTimer >= 0) { this.confirmHoldTimer += elapsed; if(this.confirmHoldTimer >= funkin_play_notes_StrumlineNote.CONFIRM_HOLD_TIME) { this.confirmHoldTimer = -1; this.playStatic(); } } } ,setup: function(noteStyle) { noteStyle.applyStrumlineFrames(this); noteStyle.applyStrumlineAnimations(this,this.direction); this.setGraphicSize(funkin_play_notes_Strumline.STRUMLINE_SIZE * noteStyle.getStrumlineScale() | 0); this.updateHitbox(); noteStyle.applyStrumlineOffsets(this); this.playStatic(); } ,playAnimation: function(name,force,reversed,startFrame) { if(startFrame == null) { startFrame = 0; } if(reversed == null) { reversed = false; } if(force == null) { force = false; } if(name == null) { name = "static"; } this.animation.play(name,force,reversed,startFrame); this.centerOffsets(); var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,playStatic: function() { this.set_active(false); this.playAnimation("static",true); } ,playPress: function() { this.set_active(true); this.playAnimation("press",true); } ,playConfirm: function() { this.set_active(true); this.playAnimation("confirm",true); } ,isConfirm: function() { return StringTools.startsWith(this.getCurrentAnimation(),"confirm"); } ,holdConfirm: function() { this.set_active(true); if(this.getCurrentAnimation() == "confirm-hold") { return; } else if(this.getCurrentAnimation() == "confirm") { if(this.isAnimationFinished()) { this.confirmHoldTimer = -1; this.playAnimation("confirm-hold",false,false); } } else { this.playAnimation("confirm",false,false); } } ,getCurrentAnimation: function() { if(this.animation == null || this.animation._curAnim == null) { return ""; } return this.animation._curAnim.name; } ,isAnimationFinished: function() { return this.animation.get_finished(); } ,fixOffsets: function() { this.centerOffsets(); if(this.getCurrentAnimation() == "confirm") { this.offset.set_x(this.offset.x - funkin_play_notes_StrumlineNote.DEFAULT_OFFSET); this.offset.set_y(this.offset.y - funkin_play_notes_StrumlineNote.DEFAULT_OFFSET); } else { var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } ,__class__: funkin_play_notes_StrumlineNote ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_direction:"set_direction"}) }); var funkin_play_notes_SustainTrail = function(noteDirection,sustainLength,noteStyle) { this.previousScrollSpeed = 1; this.graphicHeight = 0; this.graphicWidth = 0; this.bottomClip = 0.9; this.endOffset = 0.5; this.zoom = 1; this.uvtData = openfl_Vector.toFloatVector(null); this.indices = openfl_Vector.toIntVector(null); this.vertices = openfl_Vector.toFloatVector(null); this.handledMiss = false; this.missedNote = false; this.hitNote = false; this.cover = null; this.fullSustainLength = 0; this.sustainLength = 0; this.noteDirection = 0; this.strumTime = 0; flixel_FlxSprite.call(this,0,0,noteStyle.getHoldNoteAssetPath()); this.set_antialiasing(true); this.isPixel = noteStyle.isHoldNotePixel(); if(this.isPixel) { this.endOffset = this.bottomClip = 1; this.set_antialiasing(false); } this.zoom *= noteStyle.fetchHoldNoteScale(); this.set_sustainLength(sustainLength); this.fullSustainLength = sustainLength; this.noteDirection = noteDirection; this.zoom *= 0.7; this.graphicWidth = this.graphic.width / 8 * this.zoom; var tmp = this.parentStrumline; var tmp1 = tmp != null ? tmp.scrollSpeed : null; this.graphicHeight = sustainLength * 0.45 * (tmp1 != null ? tmp1 : 1.0); this.set_flipY(funkin_Preferences.get_downscroll()); this.set_alpha(1.0); this.updateColorTransform(); this.updateClipping(); this.indices = openfl_Vector.toIntVector(null,12,true,funkin_play_notes_SustainTrail.TRIANGLE_VERTEX_INDICES); this.set_active(true); }; $hxClasses["funkin.play.notes.SustainTrail"] = funkin_play_notes_SustainTrail; funkin_play_notes_SustainTrail.__name__ = "funkin.play.notes.SustainTrail"; funkin_play_notes_SustainTrail.sustainHeight = function(susLength,scroll) { return susLength * 0.45 * scroll; }; funkin_play_notes_SustainTrail.__super__ = flixel_FlxSprite; funkin_play_notes_SustainTrail.prototype = $extend(flixel_FlxSprite.prototype,{ strumTime: null ,noteDirection: null ,sustainLength: null ,fullSustainLength: null ,noteData: null ,parentStrumline: null ,cover: null ,hitNote: null ,missedNote: null ,handledMiss: null ,vertices: null ,indices: null ,uvtData: null ,processedGraphic: null ,zoom: null ,endOffset: null ,bottomClip: null ,isPixel: null ,graphicWidth: null ,graphicHeight: null ,getBaseScrollSpeed: function() { var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.get_currentChart() : null; var tmp = tmp1 != null ? tmp1.scrollSpeed : null; if(tmp != null) { return tmp; } else { return 1.0; } } ,previousScrollSpeed: null ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); var tmp = this.parentStrumline; var tmp1 = tmp != null ? tmp.scrollSpeed : null; if(this.previousScrollSpeed != (tmp1 != null ? tmp1 : 1.0)) { this.triggerRedraw(); } var tmp = this.parentStrumline; var tmp1 = tmp != null ? tmp.scrollSpeed : null; this.previousScrollSpeed = tmp1 != null ? tmp1 : 1.0; } ,set_sustainLength: function(s) { if(s < 0.0) { s = 0.0; } if(this.sustainLength == s) { return s; } this.sustainLength = s; this.triggerRedraw(); return this.sustainLength; } ,triggerRedraw: function() { var tmp = this.parentStrumline; var tmp1 = tmp != null ? tmp.scrollSpeed : null; this.graphicHeight = this.sustainLength * 0.45 * (tmp1 != null ? tmp1 : 1.0); this.updateClipping(); this.updateHitbox(); } ,updateHitbox: function() { this.set_width(this.graphicWidth); this.set_height(this.graphicHeight); var this1 = this.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.origin; var x = this.get_width() * 0.5; var y = this.get_height() * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,updateClipping: function(songTime) { if(songTime == null) { songTime = 0; } var tmp = this.parentStrumline; var tmp1 = tmp != null ? tmp.scrollSpeed : null; var Value = (this.sustainLength - (songTime - this.strumTime)) * 0.45 * (tmp1 != null ? tmp1 : 1.0); var Max = this.graphicHeight; var lowerBound = Value < 0 ? 0 : Value; var clipHeight = Max != null && lowerBound > Max ? Max : lowerBound; if(clipHeight <= 0.1) { this.set_visible(false); return; } else { this.set_visible(true); } var bottomHeight = this.graphic.height * this.zoom * this.endOffset; var partHeight = clipHeight - bottomHeight; this.vertices.set(0,0.0); this.vertices.set(1,this.flipY ? clipHeight : this.graphicHeight - clipHeight); this.vertices.set(2,this.graphicWidth); this.vertices.set(3,this.vertices.get(1)); this.vertices.set(4,0.0); this.vertices.set(5,partHeight > 0 ? this.flipY ? bottomHeight : this.vertices.get(1) + partHeight : this.vertices.get(1)); this.vertices.set(6,this.graphicWidth); this.vertices.set(7,this.vertices.get(5)); this.uvtData.set(0,0.25 * (this.noteDirection % 4)); this.uvtData.set(1,-partHeight / this.graphic.height / this.zoom); this.uvtData.set(2,this.uvtData.get(0) + 0.125); this.uvtData.set(3,this.uvtData.get(1)); this.uvtData.set(4,this.uvtData.get(0)); this.uvtData.set(5,0.0); this.uvtData.set(6,this.uvtData.get(2)); this.uvtData.set(7,this.uvtData.get(5)); this.vertices.set(8,this.vertices.get(4)); this.vertices.set(9,this.vertices.get(5)); this.vertices.set(10,this.vertices.get(6)); this.vertices.set(11,this.vertices.get(7)); this.vertices.set(12,this.vertices.get(4)); this.vertices.set(13,this.flipY ? this.graphic.height * (-this.bottomClip + this.endOffset) * this.zoom : this.graphicHeight + this.graphic.height * (this.bottomClip - this.endOffset) * this.zoom); this.vertices.set(14,this.vertices.get(6)); this.vertices.set(15,this.vertices.get(13)); this.uvtData.set(8,this.uvtData.get(4) + 0.125); this.uvtData.set(9,partHeight > 0 ? 0 : (bottomHeight - clipHeight) / this.zoom / this.graphic.height); this.uvtData.set(10,this.uvtData.get(8) + 0.125); this.uvtData.set(11,this.uvtData.get(9)); this.uvtData.set(12,this.uvtData.get(8)); this.uvtData.set(13,this.bottomClip); this.uvtData.set(14,this.uvtData.get(10)); this.uvtData.set(15,this.uvtData.get(13)); } ,draw: function() { if(this.alpha == 0 || this.graphic == null || this.vertices == null) { return; } var _g = 0; var _g1 = this.get_cameras(); while(_g < _g1.length) { var camera = _g1[_g]; ++_g; if(!camera.visible || !camera.exists) { continue; } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } camera.drawTriangles(this.processedGraphic,this.vertices,this.indices,this.uvtData,null,this._point,this.blend,true,this.antialiasing); } } ,kill: function() { flixel_FlxSprite.prototype.kill.call(this); this.strumTime = 0; this.noteDirection = 0; this.set_sustainLength(0); this.fullSustainLength = 0; this.noteData = null; this.hitNote = false; this.missedNote = false; } ,revive: function() { flixel_FlxSprite.prototype.revive.call(this); this.strumTime = 0; this.noteDirection = 0; this.set_sustainLength(0); this.fullSustainLength = 0; this.noteData = null; this.hitNote = false; this.missedNote = false; this.handledMiss = false; } ,destroy: function() { this.vertices = null; this.indices = null; this.uvtData = null; this.processedGraphic.destroy(); flixel_FlxSprite.prototype.destroy.call(this); } ,updateColorTransform: function() { flixel_FlxSprite.prototype.updateColorTransform.call(this); if(this.processedGraphic != null) { this.processedGraphic.destroy(); } this.processedGraphic = flixel_graphics_FlxGraphic.fromGraphic(this.graphic,true); this.processedGraphic.bitmap.colorTransform(this.processedGraphic.bitmap.rect,this.colorTransform); } ,__class__: funkin_play_notes_SustainTrail ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_sustainLength:"set_sustainLength"}) }); var funkin_play_notes_notestyle_NoteStyle = function(id) { this.noteFrames = null; this.id = id; this._data = funkin_play_notes_notestyle_NoteStyle._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not parse note style data for id: " + id); } this.fallback = funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchEntry(this.getFallbackID()); }; $hxClasses["funkin.play.notes.notestyle.NoteStyle"] = funkin_play_notes_notestyle_NoteStyle; funkin_play_notes_notestyle_NoteStyle.__name__ = "funkin.play.notes.notestyle.NoteStyle"; funkin_play_notes_notestyle_NoteStyle.__interfaces__ = [funkin_data_IRegistryEntry]; funkin_play_notes_notestyle_NoteStyle._fetchData = function(id) { return funkin_data_notestyle_NoteStyleRegistry.get_instance().parseEntryDataWithMigration(id,funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchEntryVersion(id)); }; funkin_play_notes_notestyle_NoteStyle.prototype = { id: null ,_data: null ,fallback: null ,getName: function() { return this._data.name; } ,getAuthor: function() { return this._data.author; } ,getFallbackID: function() { return this._data.fallback; } ,buildNoteSprite: function(target) { var atlas = this.buildNoteFrames(false); if(atlas == null) { throw haxe_Exception.thrown("Could not load spritesheet for note style: " + this.id); } target.set_frames(atlas); target.scale.set_x(this._data.assets.note.scale); target.scale.set_y(this._data.assets.note.scale); target.set_antialiasing(!this._data.assets.note.isPixel); this.buildNoteAnimations(target); } ,noteFrames: null ,buildNoteFrames: function(force) { if(force == null) { force = false; } if(!funkin_graphics_FunkinSprite.isTextureCached(funkin_Paths.image(this.getNoteAssetPath()))) { flixel_FlxG.log.advanced("Note texture is not cached: " + this.getNoteAssetPath(),flixel_system_debug_log_LogStyle.WARNING,true); } var tmp = this.noteFrames; var tmp1 = tmp != null ? tmp.parent : null; var tmp = tmp1 != null ? tmp1.shader == null : null; if(tmp != null && tmp) { this.noteFrames = null; } if(this.noteFrames != null && !force) { return this.noteFrames; } this.noteFrames = funkin_Paths.getSparrowAtlas(this.getNoteAssetPath(),this.getNoteAssetLibrary()); if(this.noteFrames == null) { throw haxe_Exception.thrown("Could not load note frames for note style: " + this.id); } return this.noteFrames; } ,getNoteAssetPath: function(raw) { if(raw == null) { raw = false; } if(raw) { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var tmp = tmp1 != null ? tmp1.note : null; var rawPath = tmp != null ? tmp.assetPath : null; if(rawPath == null) { return this.fallback.getNoteAssetPath(true); } return rawPath; } var parts = this.getNoteAssetPath(true).split(funkin_util_Constants.LIBRARY_SEPARATOR); if(parts.length == 1) { return this.getNoteAssetPath(true); } return parts[1]; } ,getNoteAssetLibrary: function() { var parts = this.getNoteAssetPath(true).split(funkin_util_Constants.LIBRARY_SEPARATOR); if(parts.length == 1) { return null; } return parts[0]; } ,buildNoteAnimations: function(target) { var leftData = this.fetchNoteAnimationData(0); target.animation.addByPrefix("purpleScroll",leftData.prefix,leftData.frameRate,leftData.looped,leftData.flipX,leftData.flipY); var downData = this.fetchNoteAnimationData(1); target.animation.addByPrefix("blueScroll",downData.prefix,downData.frameRate,downData.looped,downData.flipX,downData.flipY); var upData = this.fetchNoteAnimationData(2); target.animation.addByPrefix("greenScroll",upData.prefix,upData.frameRate,upData.looped,upData.flipX,upData.flipY); var rightData = this.fetchNoteAnimationData(3); target.animation.addByPrefix("redScroll",rightData.prefix,rightData.frameRate,rightData.looped,rightData.flipX,rightData.flipY); } ,fetchNoteAnimationData: function(dir) { var result; switch(dir) { case 0: result = funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.note.data.left); break; case 1: result = funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.note.data.down); break; case 2: result = funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.note.data.up); break; case 3: result = funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.note.data.right); break; } if(result == null) { return this.fallback.fetchNoteAnimationData(dir); } else { return result; } } ,getHoldNoteAssetPath: function(raw) { if(raw == null) { raw = false; } if(raw) { var rawPath; var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; if((tmp1 != null ? tmp1.holdNote : null) == null) { rawPath = null; } else { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var tmp = tmp1 != null ? tmp1.holdNote : null; rawPath = tmp != null ? tmp.assetPath : null; } if(rawPath == null) { return this.fallback.getHoldNoteAssetPath(true); } else { return rawPath; } } var parts = this.getHoldNoteAssetPath(true).split(funkin_util_Constants.LIBRARY_SEPARATOR); if(parts.length == 1) { return funkin_Paths.image(parts[0]); } return funkin_Paths.image(parts[1],parts[0]); } ,isHoldNotePixel: function() { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var data = tmp1 != null ? tmp1.holdNote : null; if(data == null) { return this.fallback.isHoldNotePixel(); } return data.isPixel; } ,fetchHoldNoteScale: function() { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var data = tmp1 != null ? tmp1.holdNote : null; if(data == null) { return this.fallback.fetchHoldNoteScale(); } return data.scale; } ,applyStrumlineFrames: function(target) { var atlas = funkin_Paths.getSparrowAtlas(this.getStrumlineAssetPath(),this.getStrumlineAssetLibrary()); if(atlas == null) { throw haxe_Exception.thrown("Could not load spritesheet for note style: " + this.id); } target.set_frames(atlas); target.scale.set_x(this._data.assets.noteStrumline.scale); target.scale.set_y(this._data.assets.noteStrumline.scale); target.set_antialiasing(!this._data.assets.noteStrumline.isPixel); } ,getStrumlineAssetPath: function(raw) { if(raw == null) { raw = false; } if(raw) { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var tmp = tmp1 != null ? tmp1.noteStrumline : null; var rawPath = tmp != null ? tmp.assetPath : null; if(rawPath == null) { return this.fallback.getStrumlineAssetPath(true); } return rawPath; } var parts = this.getStrumlineAssetPath(true).split(funkin_util_Constants.LIBRARY_SEPARATOR); if(parts.length == 1) { return this.getStrumlineAssetPath(true); } return parts[1]; } ,getStrumlineAssetLibrary: function() { var parts = this.getStrumlineAssetPath(true).split(funkin_util_Constants.LIBRARY_SEPARATOR); if(parts.length == 1) { return null; } return parts[0]; } ,applyStrumlineAnimations: function(target,dir) { funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(target,this.getStrumlineAnimationData(dir)); } ,getStrumlineAnimationData: function(dir) { var result; switch(dir) { case 0: result = [funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.leftStatic,"static"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.leftPress,"press"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.leftConfirm,"confirm"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.leftConfirmHold,"confirm-hold")]; break; case 1: result = [funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.downStatic,"static"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.downPress,"press"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.downConfirm,"confirm"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.downConfirmHold,"confirm-hold")]; break; case 2: result = [funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.upStatic,"static"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.upPress,"press"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.upConfirm,"confirm"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.upConfirmHold,"confirm-hold")]; break; case 3: result = [funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.rightStatic,"static"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.rightPress,"press"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.rightConfirm,"confirm"),funkin_data_animation_AnimationDataUtil.toNamed(this._data.assets.noteStrumline.data.rightConfirmHold,"confirm-hold")]; break; } return result; } ,applyStrumlineOffsets: function(target) { target.set_x(target.x + this._data.assets.noteStrumline.offsets[0]); target.set_y(target.y + this._data.assets.noteStrumline.offsets[1]); } ,getStrumlineScale: function() { return this._data.assets.noteStrumline.scale; } ,isNoteSplashEnabled: function() { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var tmp = tmp1 != null ? tmp1.noteSplash : null; var data = tmp != null ? tmp.data : null; if(data == null) { return this.fallback.isNoteSplashEnabled(); } return data.enabled; } ,isHoldNoteCoverEnabled: function() { var tmp = this._data; var tmp1 = tmp != null ? tmp.assets : null; var tmp = tmp1 != null ? tmp1.holdNoteCover : null; var data = tmp != null ? tmp.data : null; if(data == null) { return this.fallback.isHoldNoteCoverEnabled(); } return data.enabled; } ,destroy: function() { } ,toString: function() { return "NoteStyle(" + this.id + ")"; } ,__class__: funkin_play_notes_notestyle_NoteStyle }; var funkin_play_notes_notestyle_ScriptedNoteStyle = function(id) { funkin_play_notes_notestyle_NoteStyle.call(this,id); }; $hxClasses["funkin.play.notes.notestyle.ScriptedNoteStyle"] = funkin_play_notes_notestyle_ScriptedNoteStyle; funkin_play_notes_notestyle_ScriptedNoteStyle.__name__ = "funkin.play.notes.notestyle.ScriptedNoteStyle"; funkin_play_notes_notestyle_ScriptedNoteStyle.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_notes_notestyle_ScriptedNoteStyle.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.notes.notestyle.NoteStyle"); }; funkin_play_notes_notestyle_ScriptedNoteStyle.init = function(clsName,id) { var value = $hxClasses["funkin.play.notes.notestyle.ScriptedNoteStyle"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.notes.notestyle.NoteStyle"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.notes.notestyle.ScriptedNoteStyle" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_notes_notestyle_ScriptedNoteStyle.__super__ = funkin_play_notes_notestyle_NoteStyle; funkin_play_notes_notestyle_ScriptedNoteStyle.prototype = $extend(funkin_play_notes_notestyle_NoteStyle.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedNoteStyle"; var superName = "NoteStyle"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,isNoteSplashEnabled: function() { var fieldName = "isNoteSplashEnabled"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.isNoteSplashEnabled.call(this); } } ,isHoldNotePixel: function() { var fieldName = "isHoldNotePixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.isHoldNotePixel.call(this); } } ,isHoldNoteCoverEnabled: function() { var fieldName = "isHoldNoteCoverEnabled"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.isHoldNoteCoverEnabled.call(this); } } ,getStrumlineScale: function() { var fieldName = "getStrumlineScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineScale.call(this); } } ,getStrumlineAssetPath: function(raw) { if(raw == null) { raw = false; } var fieldName = "getStrumlineAssetPath"; if(this._asc != null) { return this._asc.callFunction(fieldName,[raw]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineAssetPath.call(this,raw); } } ,getStrumlineAssetLibrary: function() { var fieldName = "getStrumlineAssetLibrary"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineAssetLibrary.call(this); } } ,getStrumlineAnimationData: function(dir) { var fieldName = "getStrumlineAnimationData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[dir]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineAnimationData.call(this,dir); } } ,getNoteAssetPath: function(raw) { if(raw == null) { raw = false; } var fieldName = "getNoteAssetPath"; if(this._asc != null) { return this._asc.callFunction(fieldName,[raw]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getNoteAssetPath.call(this,raw); } } ,getNoteAssetLibrary: function() { var fieldName = "getNoteAssetLibrary"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getNoteAssetLibrary.call(this); } } ,getName: function() { var fieldName = "getName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getName.call(this); } } ,getHoldNoteAssetPath: function(raw) { if(raw == null) { raw = false; } var fieldName = "getHoldNoteAssetPath"; if(this._asc != null) { return this._asc.callFunction(fieldName,[raw]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getHoldNoteAssetPath.call(this,raw); } } ,getFallbackID: function() { var fieldName = "getFallbackID"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getFallbackID.call(this); } } ,getAuthor: function() { var fieldName = "getAuthor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.getAuthor.call(this); } } ,fetchNoteAnimationData: function(dir) { var fieldName = "fetchNoteAnimationData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[dir]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.fetchNoteAnimationData.call(this,dir); } } ,fetchHoldNoteScale: function() { var fieldName = "fetchHoldNoteScale"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.fetchHoldNoteScale.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_notes_notestyle_NoteStyle.prototype.destroy.call(this); } } ,buildNoteSprite: function(target) { var fieldName = "buildNoteSprite"; if(this._asc != null) { this._asc.callFunction(fieldName,[target]); } else { funkin_play_notes_notestyle_NoteStyle.prototype.buildNoteSprite.call(this,target); } } ,buildNoteFrames: function(force) { if(force == null) { force = false; } var fieldName = "buildNoteFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[force]); } else { return funkin_play_notes_notestyle_NoteStyle.prototype.buildNoteFrames.call(this,force); } } ,buildNoteAnimations: function(target) { var fieldName = "buildNoteAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[target]); } else { funkin_play_notes_notestyle_NoteStyle.prototype.buildNoteAnimations.call(this,target); } } ,applyStrumlineOffsets: function(target) { var fieldName = "applyStrumlineOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[target]); } else { funkin_play_notes_notestyle_NoteStyle.prototype.applyStrumlineOffsets.call(this,target); } } ,applyStrumlineFrames: function(target) { var fieldName = "applyStrumlineFrames"; if(this._asc != null) { this._asc.callFunction(fieldName,[target]); } else { funkin_play_notes_notestyle_NoteStyle.prototype.applyStrumlineFrames.call(this,target); } } ,applyStrumlineAnimations: function(target,dir) { var fieldName = "applyStrumlineAnimations"; if(this._asc != null) { this._asc.callFunction(fieldName,[target,dir]); } else { funkin_play_notes_notestyle_NoteStyle.prototype.applyStrumlineAnimations.call(this,target,dir); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_notes_notestyle_NoteStyle.prototype.toString.call(this); } ,__super_isNoteSplashEnabled: function() { var fieldName = "isNoteSplashEnabled"; return funkin_play_notes_notestyle_NoteStyle.prototype.isNoteSplashEnabled.call(this); } ,__super_isHoldNotePixel: function() { var fieldName = "isHoldNotePixel"; return funkin_play_notes_notestyle_NoteStyle.prototype.isHoldNotePixel.call(this); } ,__super_isHoldNoteCoverEnabled: function() { var fieldName = "isHoldNoteCoverEnabled"; return funkin_play_notes_notestyle_NoteStyle.prototype.isHoldNoteCoverEnabled.call(this); } ,__super_getStrumlineScale: function() { var fieldName = "getStrumlineScale"; return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineScale.call(this); } ,__super_getStrumlineAssetPath: function(raw) { if(raw == null) { raw = false; } var fieldName = "getStrumlineAssetPath"; return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineAssetPath.call(this,raw); } ,__super_getStrumlineAssetLibrary: function() { var fieldName = "getStrumlineAssetLibrary"; return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineAssetLibrary.call(this); } ,__super_getStrumlineAnimationData: function(dir) { var fieldName = "getStrumlineAnimationData"; return funkin_play_notes_notestyle_NoteStyle.prototype.getStrumlineAnimationData.call(this,dir); } ,__super_getNoteAssetPath: function(raw) { if(raw == null) { raw = false; } var fieldName = "getNoteAssetPath"; return funkin_play_notes_notestyle_NoteStyle.prototype.getNoteAssetPath.call(this,raw); } ,__super_getNoteAssetLibrary: function() { var fieldName = "getNoteAssetLibrary"; return funkin_play_notes_notestyle_NoteStyle.prototype.getNoteAssetLibrary.call(this); } ,__super_getName: function() { var fieldName = "getName"; return funkin_play_notes_notestyle_NoteStyle.prototype.getName.call(this); } ,__super_getHoldNoteAssetPath: function(raw) { if(raw == null) { raw = false; } var fieldName = "getHoldNoteAssetPath"; return funkin_play_notes_notestyle_NoteStyle.prototype.getHoldNoteAssetPath.call(this,raw); } ,__super_getFallbackID: function() { var fieldName = "getFallbackID"; return funkin_play_notes_notestyle_NoteStyle.prototype.getFallbackID.call(this); } ,__super_getAuthor: function() { var fieldName = "getAuthor"; return funkin_play_notes_notestyle_NoteStyle.prototype.getAuthor.call(this); } ,__super_fetchNoteAnimationData: function(dir) { var fieldName = "fetchNoteAnimationData"; return funkin_play_notes_notestyle_NoteStyle.prototype.fetchNoteAnimationData.call(this,dir); } ,__super_fetchHoldNoteScale: function() { var fieldName = "fetchHoldNoteScale"; return funkin_play_notes_notestyle_NoteStyle.prototype.fetchHoldNoteScale.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_notes_notestyle_NoteStyle.prototype.destroy.call(this); } ,__super_buildNoteSprite: function(target) { var fieldName = "buildNoteSprite"; funkin_play_notes_notestyle_NoteStyle.prototype.buildNoteSprite.call(this,target); } ,__super_buildNoteFrames: function(force) { if(force == null) { force = false; } var fieldName = "buildNoteFrames"; return funkin_play_notes_notestyle_NoteStyle.prototype.buildNoteFrames.call(this,force); } ,__super_buildNoteAnimations: function(target) { var fieldName = "buildNoteAnimations"; funkin_play_notes_notestyle_NoteStyle.prototype.buildNoteAnimations.call(this,target); } ,__super_applyStrumlineOffsets: function(target) { var fieldName = "applyStrumlineOffsets"; funkin_play_notes_notestyle_NoteStyle.prototype.applyStrumlineOffsets.call(this,target); } ,__super_applyStrumlineFrames: function(target) { var fieldName = "applyStrumlineFrames"; funkin_play_notes_notestyle_NoteStyle.prototype.applyStrumlineFrames.call(this,target); } ,__super_applyStrumlineAnimations: function(target,dir) { var fieldName = "applyStrumlineAnimations"; funkin_play_notes_notestyle_NoteStyle.prototype.applyStrumlineAnimations.call(this,target,dir); } ,__class__: funkin_play_notes_notestyle_ScriptedNoteStyle }); var funkin_play_scoring_Scoring = function() { }; $hxClasses["funkin.play.scoring.Scoring"] = funkin_play_scoring_Scoring; funkin_play_scoring_Scoring.__name__ = "funkin.play.scoring.Scoring"; funkin_play_scoring_Scoring.scoreNote = function(msTiming,scoringSystem) { if(scoringSystem == null) { scoringSystem = "PBOT1"; } switch(scoringSystem) { case "LEGACY": return funkin_play_scoring_Scoring.scoreNoteLEGACY(msTiming); case "PBOT1": return funkin_play_scoring_Scoring.scoreNotePBOT1(msTiming); case "WEEK7": return funkin_play_scoring_Scoring.scoreNoteWEEK7(msTiming); default: flixel_FlxG.log.advanced("Unknown scoring system: " + scoringSystem,flixel_system_debug_log_LogStyle.ERROR,true); return 0; } }; funkin_play_scoring_Scoring.judgeNote = function(msTiming,scoringSystem) { if(scoringSystem == null) { scoringSystem = "PBOT1"; } switch(scoringSystem) { case "LEGACY": return funkin_play_scoring_Scoring.judgeNoteLEGACY(msTiming); case "PBOT1": return funkin_play_scoring_Scoring.judgeNotePBOT1(msTiming); case "WEEK7": return funkin_play_scoring_Scoring.judgeNoteWEEK7(msTiming); default: flixel_FlxG.log.advanced("Unknown scoring system: " + scoringSystem,flixel_system_debug_log_LogStyle.ERROR,true); return "miss"; } }; funkin_play_scoring_Scoring.scoreNotePBOT1 = function(msTiming) { var absTiming = Math.abs(msTiming); var _hx_tmp; if(absTiming > funkin_play_scoring_Scoring.PBOT1_MISS_THRESHOLD == true) { return funkin_play_scoring_Scoring.PBOT1_MISS_SCORE; } else { _hx_tmp = absTiming < funkin_play_scoring_Scoring.PBOT1_PERFECT_THRESHOLD; if(_hx_tmp == true) { return funkin_play_scoring_Scoring.PBOT1_MAX_SCORE; } else { var factor = 1.0 - 1.0 / (1.0 + Math.exp(-funkin_play_scoring_Scoring.PBOT1_SCORING_SLOPE * (absTiming - funkin_play_scoring_Scoring.PBOT1_SCORING_OFFSET))); var score = funkin_play_scoring_Scoring.PBOT1_MAX_SCORE * factor + funkin_play_scoring_Scoring.PBOT1_MIN_SCORE | 0; return score; } } }; funkin_play_scoring_Scoring.judgeNotePBOT1 = function(msTiming) { var absTiming = Math.abs(msTiming); var _hx_tmp; var _hx_tmp1; var _hx_tmp2; if(absTiming < funkin_play_scoring_Scoring.PBOT1_SICK_THRESHOLD == true) { return "sick"; } else { _hx_tmp2 = absTiming < funkin_play_scoring_Scoring.PBOT1_GOOD_THRESHOLD; if(_hx_tmp2 == true) { return "good"; } else { _hx_tmp1 = absTiming < funkin_play_scoring_Scoring.PBOT1_BAD_THRESHOLD; if(_hx_tmp1 == true) { return "bad"; } else { _hx_tmp = absTiming < funkin_play_scoring_Scoring.PBOT1_SHIT_THRESHOLD; if(_hx_tmp == true) { return "shit"; } else { flixel_FlxG.log.advanced("Missed note: Bad timing (" + absTiming + " < " + funkin_play_scoring_Scoring.PBOT1_SHIT_THRESHOLD + ")",flixel_system_debug_log_LogStyle.WARNING,true); return "miss"; } } } } }; funkin_play_scoring_Scoring.scoreNoteLEGACY = function(msTiming) { var absTiming = Math.abs(msTiming); var _hx_tmp; var _hx_tmp1; var _hx_tmp2; if(absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_SICK_THRESHOLD == true) { return funkin_play_scoring_Scoring.LEGACY_SICK_SCORE; } else { _hx_tmp2 = absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_GOOD_THRESHOLD; if(_hx_tmp2 == true) { return funkin_play_scoring_Scoring.LEGACY_GOOD_SCORE; } else { _hx_tmp1 = absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_BAD_THRESHOLD; if(_hx_tmp1 == true) { return funkin_play_scoring_Scoring.LEGACY_BAD_SCORE; } else { _hx_tmp = absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_SHIT_THRESHOLD; if(_hx_tmp == true) { return funkin_play_scoring_Scoring.LEGACY_SHIT_SCORE; } else { return 0; } } } } }; funkin_play_scoring_Scoring.judgeNoteLEGACY = function(msTiming) { var absTiming = Math.abs(msTiming); var _hx_tmp; var _hx_tmp1; var _hx_tmp2; if(absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_SICK_THRESHOLD == true) { return "sick"; } else { _hx_tmp2 = absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_GOOD_THRESHOLD; if(_hx_tmp2 == true) { return "good"; } else { _hx_tmp1 = absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_BAD_THRESHOLD; if(_hx_tmp1 == true) { return "bad"; } else { _hx_tmp = absTiming < funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW * funkin_play_scoring_Scoring.LEGACY_SHIT_THRESHOLD; if(_hx_tmp == true) { return "shit"; } else { flixel_FlxG.log.advanced("Missed note: Bad timing (" + absTiming + " < " + funkin_play_scoring_Scoring.LEGACY_SHIT_THRESHOLD + ")",flixel_system_debug_log_LogStyle.WARNING,true); return "miss"; } } } } }; funkin_play_scoring_Scoring.scoreNoteWEEK7 = function(msTiming) { var absTiming = Math.abs(msTiming); var _hx_tmp; var _hx_tmp1; var _hx_tmp2; if(absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW * funkin_play_scoring_Scoring.WEEK7_SICK_THRESHOLD == true) { return funkin_play_scoring_Scoring.LEGACY_SICK_SCORE; } else { _hx_tmp2 = absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW * funkin_play_scoring_Scoring.WEEK7_GOOD_THRESHOLD; if(_hx_tmp2 == true) { return funkin_play_scoring_Scoring.LEGACY_GOOD_SCORE; } else { _hx_tmp1 = absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW * funkin_play_scoring_Scoring.WEEK7_BAD_THRESHOLD; if(_hx_tmp1 == true) { return funkin_play_scoring_Scoring.LEGACY_BAD_SCORE; } else { _hx_tmp = absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW; if(_hx_tmp == true) { return funkin_play_scoring_Scoring.LEGACY_SHIT_SCORE; } else { return 0; } } } } }; funkin_play_scoring_Scoring.judgeNoteWEEK7 = function(msTiming) { var absTiming = Math.abs(msTiming); if(absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW * funkin_play_scoring_Scoring.WEEK7_SICK_THRESHOLD) { return "sick"; } else if(absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW * funkin_play_scoring_Scoring.WEEK7_GOOD_THRESHOLD) { return "good"; } else if(absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW * funkin_play_scoring_Scoring.WEEK7_BAD_THRESHOLD) { return "bad"; } else if(absTiming < funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW) { return "shit"; } else { flixel_FlxG.log.advanced("Missed note: Bad timing (" + absTiming + " < " + funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW + ")",flixel_system_debug_log_LogStyle.WARNING,true); return "miss"; } }; funkin_play_scoring_Scoring.calculateRank = function(scoreData) { if((scoreData != null ? scoreData.tallies.totalNotes : null) == 0 || scoreData == null) { return null; } if(scoreData.tallies.totalNotes == 0) { return null; } var isPerfectGold = scoreData.tallies.sick == scoreData.tallies.totalNotes; if(isPerfectGold) { return "PERFECT_GOLD"; } var grade = (scoreData.tallies.sick + scoreData.tallies.good) / scoreData.tallies.totalNotes; var clear = scoreData.tallies.totalNotesHit / scoreData.tallies.totalNotes; if(grade == funkin_util_Constants.RANK_PERFECT_THRESHOLD) { return "PERFECT"; } else if(grade >= funkin_util_Constants.RANK_EXCELLENT_THRESHOLD) { return "EXCELLENT"; } else if(grade >= funkin_util_Constants.RANK_GREAT_THRESHOLD) { return "GREAT"; } else if(grade >= funkin_util_Constants.RANK_GOOD_THRESHOLD) { return "GOOD"; } else { return "SHIT"; } }; var funkin_play_scoring_ScoringRank = {}; funkin_play_scoring_ScoringRank.getValue = function(rank) { if(rank == null) { return -1; } if(rank == null) { return -1; } else { switch(rank) { case "EXCELLENT": return 3; case "GOOD": return 1; case "GREAT": return 2; case "PERFECT": return 4; case "PERFECT_GOLD": return 5; case "SHIT": return 0; default: return -1; } } }; funkin_play_scoring_ScoringRank.compareGT = function(a,b) { if(a != null && b == null) { return true; } if(a == null || b == null) { return false; } var temp1 = funkin_play_scoring_ScoringRank.getValue(a); var temp2 = funkin_play_scoring_ScoringRank.getValue(b); return temp1 > temp2; }; funkin_play_scoring_ScoringRank.compareGTEQ = function(a,b) { if(a != null && b == null) { return true; } if(a == null || b == null) { return false; } var temp1 = funkin_play_scoring_ScoringRank.getValue(a); var temp2 = funkin_play_scoring_ScoringRank.getValue(b); return temp1 >= temp2; }; funkin_play_scoring_ScoringRank.compareLT = function(a,b) { if(a != null && b == null) { return true; } if(a == null || b == null) { return false; } var temp1 = funkin_play_scoring_ScoringRank.getValue(a); var temp2 = funkin_play_scoring_ScoringRank.getValue(b); return temp1 < temp2; }; funkin_play_scoring_ScoringRank.compareLTEQ = function(a,b) { if(a != null && b == null) { return true; } if(a == null || b == null) { return false; } var temp1 = funkin_play_scoring_ScoringRank.getValue(a); var temp2 = funkin_play_scoring_ScoringRank.getValue(b); return temp1 <= temp2; }; funkin_play_scoring_ScoringRank.getMusicDelay = function(this1) { switch(this1) { case "EXCELLENT": return 0; case "GOOD": return 0.125; case "GREAT": return 0.208333333333333343; case "PERFECT":case "PERFECT_GOLD": return 3.95833333333333348; case "SHIT": return 0.0833333333333333287; default: return 3.5; } }; funkin_play_scoring_ScoringRank.getBFDelay = function(this1) { switch(this1) { case "EXCELLENT": return 4.04166666666666696; case "GOOD": return 3.95833333333333348; case "GREAT": return 3.95833333333333348; case "PERFECT":case "PERFECT_GOLD": return 3.95833333333333348; case "SHIT": return 3.95833333333333348; default: return 3.5; } }; funkin_play_scoring_ScoringRank.getFlashDelay = function(this1) { switch(this1) { case "EXCELLENT": return 5.08333333333333304; case "GOOD": return 4.45833333333333304; case "GREAT": return 4.54166666666666696; case "PERFECT":case "PERFECT_GOLD": return 5.375; case "SHIT": return 7.75; default: return 3.5; } }; funkin_play_scoring_ScoringRank.getHighscoreDelay = function(this1) { switch(this1) { case "EXCELLENT": return 5.83333333333333304; case "GOOD": return 5.29166666666666696; case "GREAT": return 5.375; case "PERFECT":case "PERFECT_GOLD": return 5.83333333333333304; case "SHIT": return 8.625; default: return 3.5; } }; funkin_play_scoring_ScoringRank.getMusicPath = function(this1) { switch(this1) { case "EXCELLENT": return "resultsEXCELLENT"; case "GOOD": return "resultsNORMAL"; case "GREAT": return "resultsNORMAL"; case "PERFECT": return "resultsPERFECT"; case "PERFECT_GOLD": return "resultsPERFECT"; case "SHIT": return "resultsSHIT"; default: return "resultsNORMAL"; } }; funkin_play_scoring_ScoringRank.hasMusicIntro = function(this1) { switch(this1) { case "EXCELLENT": return true; case "SHIT": return true; default: return false; } }; funkin_play_scoring_ScoringRank.getFreeplayRankIconAsset = function(this1) { switch(this1) { case "EXCELLENT": return "EXCELLENT"; case "GOOD": return "GOOD"; case "GREAT": return "GREAT"; case "PERFECT": return "PERFECT"; case "PERFECT_GOLD": return "PERFECTSICK"; case "SHIT": return "LOSS"; default: return null; } }; funkin_play_scoring_ScoringRank.shouldMusicLoop = function(this1) { switch(this1) { case "EXCELLENT":case "GOOD":case "GREAT":case "PERFECT":case "PERFECT_GOLD": return true; case "SHIT": return false; default: return false; } }; funkin_play_scoring_ScoringRank.getHorTextAsset = function(this1) { switch(this1) { case "EXCELLENT": return "resultScreen/rankText/rankScrollEXCELLENT"; case "GOOD": return "resultScreen/rankText/rankScrollGOOD"; case "GREAT": return "resultScreen/rankText/rankScrollGREAT"; case "PERFECT": return "resultScreen/rankText/rankScrollPERFECT"; case "PERFECT_GOLD": return "resultScreen/rankText/rankScrollPERFECT"; case "SHIT": return "resultScreen/rankText/rankScrollLOSS"; default: return "resultScreen/rankText/rankScrollGOOD"; } }; funkin_play_scoring_ScoringRank.getVerTextAsset = function(this1) { switch(this1) { case "EXCELLENT": return "resultScreen/rankText/rankTextEXCELLENT"; case "GOOD": return "resultScreen/rankText/rankTextGOOD"; case "GREAT": return "resultScreen/rankText/rankTextGREAT"; case "PERFECT": return "resultScreen/rankText/rankTextPERFECT"; case "PERFECT_GOLD": return "resultScreen/rankText/rankTextPERFECT"; case "SHIT": return "resultScreen/rankText/rankTextLOSS"; default: return "resultScreen/rankText/rankTextGOOD"; } }; var funkin_play_song_Song = function(id) { this.validScore = true; this.id = id; this.difficulties = new haxe_ds_StringMap(); this._data = funkin_play_song_Song._fetchData(id); var tmp; if(this._data == null) { tmp = new haxe_ds_StringMap(); } else { var _g = new haxe_ds_StringMap(); _g.h[funkin_util_Constants.DEFAULT_VARIATION] = this._data; tmp = _g; } this._metadata = tmp; if(this._data != null && this._data.playData != null) { var _g = 0; var _g1 = this._data.playData.songVariations; while(_g < _g1.length) { var vari = _g1[_g]; ++_g; var variMeta = this.fetchVariationMetadata(id,vari); if(variMeta != null) { this._metadata.h[variMeta.variation] = variMeta; haxe_Log.trace(" Loaded variation: " + vari,{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 163, className : "funkin.play.song.Song", methodName : "new"}); } else { flixel_FlxG.log.advanced("[SONG] Failed to load variation metadata (" + id + ":" + vari + "), is the path correct?",flixel_system_debug_log_LogStyle.WARNING,true); haxe_Log.trace(" FAILED to load variation: " + vari,{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 168, className : "funkin.play.song.Song", methodName : "new"}); } } } if(funkin_util_tools_MapTools.size(this._metadata) == 0) { haxe_Log.trace("[WARN] Could not find song data for songId: " + id,{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 175, className : "funkin.play.song.Song", methodName : "new"}); return; } this.populateDifficulties(); }; $hxClasses["funkin.play.song.Song"] = funkin_play_song_Song; funkin_play_song_Song.__name__ = "funkin.play.song.Song"; funkin_play_song_Song.__interfaces__ = [funkin_data_IRegistryEntry,funkin_modding_IPlayStateScriptedClass]; funkin_play_song_Song.buildRaw = function(songId,metadata,variations,charts,includeScript,validScore) { if(validScore == null) { validScore = false; } if(includeScript == null) { includeScript = true; } var result; if(includeScript && funkin_data_song_SongRegistry.get_instance().isScriptedEntry(songId)) { var songClassName = funkin_data_song_SongRegistry.get_instance().getScriptedEntryClassName(songId); result = funkin_data_song_SongRegistry.get_instance().createScriptedEntry(songClassName); } else { result = funkin_data_song_SongRegistry.get_instance().createEntry(songId); } if(result == null) { throw haxe_Exception.thrown("ERROR: Could not build Song instance (" + songId + "), is the attached script bad?"); } result._metadata.h = Object.create(null); var _g = 0; while(_g < metadata.length) { var meta = metadata[_g]; ++_g; result._metadata.h[meta.variation] = meta; } result.difficulties.h = Object.create(null); result.populateDifficulties(); var h = charts.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var variation = _g_key; var chartData = _g_value; result.applyChartData(chartData,variation); } result.validScore = validScore; return result; }; funkin_play_song_Song._fetchData = function(id) { haxe_Log.trace("Fetching song metadata for " + id,{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 569, className : "funkin.play.song.Song", methodName : "_fetchData"}); var version = funkin_data_song_SongRegistry.get_instance().fetchEntryMetadataVersion(id); if(version == null) { return null; } return funkin_data_song_SongRegistry.get_instance().parseEntryMetadataWithMigration(id,funkin_util_Constants.DEFAULT_VARIATION,version); }; funkin_play_song_Song.prototype = { id: null ,_data: null ,_metadata: null ,difficulties: null ,get_variations: function() { return funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(this._metadata.h)); } ,isSongNew: function(currentDifficulty) { return false; } ,validScore: null ,get_songName: function() { if(this._data != null) { var tmp = this._data; var tmp1 = tmp != null ? tmp.songName : null; if(tmp1 != null) { return tmp1; } else { return funkin_play_song_Song.DEFAULT_SONGNAME; } } if(funkin_util_tools_MapTools.size(this._metadata) > 0) { var tmp = this._metadata.h[funkin_util_Constants.DEFAULT_VARIATION]; var tmp1 = tmp != null ? tmp.songName : null; if(tmp1 != null) { return tmp1; } else { return funkin_play_song_Song.DEFAULT_SONGNAME; } } return funkin_play_song_Song.DEFAULT_SONGNAME; } ,get_songArtist: function() { if(this._data != null) { var tmp = this._data; var tmp1 = tmp != null ? tmp.artist : null; if(tmp1 != null) { return tmp1; } else { return funkin_play_song_Song.DEFAULT_ARTIST; } } if(funkin_util_tools_MapTools.size(this._metadata) > 0) { var tmp = this._metadata.h[funkin_util_Constants.DEFAULT_VARIATION]; var tmp1 = tmp != null ? tmp.artist : null; if(tmp1 != null) { return tmp1; } else { return funkin_play_song_Song.DEFAULT_ARTIST; } } return funkin_play_song_Song.DEFAULT_ARTIST; } ,get_charter: function() { if(this._data != null) { var tmp = this._data; var tmp1 = tmp != null ? tmp.charter : null; if(tmp1 != null) { return tmp1; } else { return "Unknown"; } } if(funkin_util_tools_MapTools.size(this._metadata) > 0) { var tmp = this._metadata.h[funkin_util_Constants.DEFAULT_VARIATION]; var tmp1 = tmp != null ? tmp.charter : null; if(tmp1 != null) { return tmp1; } else { return "Unknown"; } } return funkin_util_Constants.DEFAULT_CHARTER; } ,getRawMetadata: function() { return funkin_util_tools_MapTools.values(this._metadata); } ,listAlbums: function() { var result = new haxe_ds_StringMap(); var h = this.difficulties.h; var difficultyId_h = h; var difficultyId_keys = Object.keys(h); var difficultyId_length = difficultyId_keys.length; var difficultyId_current = 0; while(difficultyId_current < difficultyId_length) { var difficultyId = difficultyId_keys[difficultyId_current++]; var meta = this.difficulties.h[difficultyId]; if(meta != null && meta.album != null) { result.h[difficultyId] = meta.album; } } return result; } ,populateDifficulties: function() { if(this._metadata == null || funkin_util_tools_MapTools.size(this._metadata) == 0) { return; } var _g = 0; var _g1 = funkin_util_tools_MapTools.values(this._metadata); while(_g < _g1.length) { var metadata = _g1[_g]; ++_g; if(metadata == null || metadata.playData == null) { continue; } if(metadata.playData.difficulties.length == 0) { throw haxe_Exception.thrown("Song " + this.id + " has no difficulties listed in metadata!"); } var _g2 = 0; var _g3 = metadata.playData.difficulties; while(_g2 < _g3.length) { var diffId = _g3[_g2]; ++_g2; var difficulty = new funkin_play_song_SongDifficulty(this,diffId,metadata.variation); difficulty.songName = metadata.songName; difficulty.songArtist = metadata.artist; var tmp = metadata.charter; difficulty.charter = tmp != null ? tmp : funkin_util_Constants.DEFAULT_CHARTER; difficulty.timeFormat = metadata.timeFormat; difficulty.divisions = metadata.divisions; difficulty.timeChanges = metadata.timeChanges; difficulty.looped = metadata.looped; difficulty.generatedBy = metadata.generatedBy; var tmp1 = metadata != null ? metadata.offsets : null; difficulty.offsets = tmp1 != null ? tmp1 : new funkin_data_song_SongOffsets(); var tmp2 = metadata.playData.ratings.h[diffId]; difficulty.difficultyRating = tmp2 != null ? tmp2 : 0; difficulty.album = metadata.playData.album; difficulty.stage = metadata.playData.stage; difficulty.noteStyle = metadata.playData.noteStyle; difficulty.characters = metadata.playData.characters; var variationSuffix = metadata.variation != funkin_util_Constants.DEFAULT_VARIATION ? "-" + metadata.variation : ""; this.difficulties.h["" + diffId + variationSuffix] = difficulty; } } } ,cacheCharts: function(force) { if(force == null) { force = false; } if(force) { this.clearCharts(); } haxe_Log.trace("Caching " + this.get_variations().length + " chart files for song " + this.id,{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 324, className : "funkin.play.song.Song", methodName : "cacheCharts"}); var _g = 0; var _g1 = this.get_variations(); while(_g < _g1.length) { var variation = _g1[_g]; ++_g; var version = funkin_data_song_SongRegistry.get_instance().fetchEntryChartVersion(this.id,variation); if(version == null) { continue; } var chart = funkin_data_song_SongRegistry.get_instance().parseEntryChartDataWithMigration(this.id,variation,version); if(chart == null) { continue; } this.applyChartData(chart,variation); } haxe_Log.trace("Done caching charts.",{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 333, className : "funkin.play.song.Song", methodName : "cacheCharts"}); } ,applyChartData: function(chartData,variation) { var chartNotes = chartData.notes; var h = chartNotes.h; var diffId_h = h; var diffId_keys = Object.keys(h); var diffId_length = diffId_keys.length; var diffId_current = 0; while(diffId_current < diffId_length) { var diffId = diffId_keys[diffId_current++]; var variationSuffix = variation != funkin_util_Constants.DEFAULT_VARIATION ? "-" + variation : ""; var difficulty = this.difficulties.h["" + diffId + variationSuffix]; if(difficulty == null) { haxe_Log.trace("Fabricated new difficulty for " + diffId + ".",{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 347, className : "funkin.play.song.Song", methodName : "applyChartData"}); difficulty = new funkin_play_song_SongDifficulty(this,diffId,variation); var metadata = this._metadata.h[variation]; this.difficulties.h["" + diffId + variationSuffix] = difficulty; if(metadata != null) { difficulty.songName = metadata.songName; difficulty.songArtist = metadata.artist; var tmp = metadata.charter; difficulty.charter = tmp != null ? tmp : funkin_util_Constants.DEFAULT_CHARTER; difficulty.timeFormat = metadata.timeFormat; difficulty.divisions = metadata.divisions; difficulty.timeChanges = metadata.timeChanges; difficulty.looped = metadata.looped; difficulty.generatedBy = metadata.generatedBy; var tmp1 = metadata != null ? metadata.offsets : null; difficulty.offsets = tmp1 != null ? tmp1 : new funkin_data_song_SongOffsets(); difficulty.stage = metadata.playData.stage; difficulty.noteStyle = metadata.playData.noteStyle; difficulty.characters = metadata.playData.characters; } } var tmp2 = chartNotes.h[diffId]; difficulty.notes = tmp2 != null ? tmp2 : []; var tmp3 = chartData.getScrollSpeed(diffId); difficulty.scrollSpeed = tmp3 != null ? tmp3 : 1.0; difficulty.events = chartData.events; } } ,getDifficulty: function(diffId,variation,variations) { if(diffId == null) { diffId = this.listDifficulties(variation,variations)[0]; } if(variation == null) { variation = funkin_util_Constants.DEFAULT_VARIATION; } if(variations == null) { variations = [variation]; } var _g = 0; while(_g < variations.length) { var currentVariation = variations[_g]; ++_g; var variationSuffix = currentVariation != funkin_util_Constants.DEFAULT_VARIATION ? "-" + currentVariation : ""; if(Object.prototype.hasOwnProperty.call(this.difficulties.h,"" + diffId + variationSuffix)) { return this.difficulties.h["" + diffId + variationSuffix]; } } return null; } ,getFirstValidVariation: function(diffId,possibleVariations) { if(possibleVariations == null) { possibleVariations = this.get_variations(); var defaultValues = funkin_util_Constants.DEFAULT_VARIATION_LIST; possibleVariations.sort(function(a,b) { return funkin_util_SortUtil.defaultsThenAlphabetically(defaultValues,a,b); }); } if(diffId == null) { diffId = this.listDifficulties(null,possibleVariations)[0]; } var _g = 0; while(_g < possibleVariations.length) { var variationId = possibleVariations[_g]; ++_g; var variationSuffix = variationId != funkin_util_Constants.DEFAULT_VARIATION ? "-" + variationId : ""; if(Object.prototype.hasOwnProperty.call(this.difficulties.h,"" + diffId + variationSuffix)) { return variationId; } } return null; } ,getVariationsByCharId: function(charId) { if(charId == null) { charId = funkin_util_Constants.DEFAULT_CHARACTER; } if(this.get_variations().indexOf(charId) != -1) { return [charId]; } else { return this.get_variations(); } } ,listDifficulties: function(variationId,variationIds,showLocked,showHidden) { if(showHidden == null) { showHidden = false; } if(showLocked == null) { showLocked = false; } var _gthis = this; if(variationIds == null) { variationIds = []; } if(variationId != null) { variationIds.push(variationId); } var _this = funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(this.difficulties.h)); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var difficulty = _gthis.difficulties.h[_this[i]]; result[i] = difficulty == null ? null : variationIds.length > 0 && variationIds.indexOf(difficulty.variation) == -1 ? null : difficulty.difficulty; } var diffFiltered = thx_Arrays.distinct(thx_Arrays.filterNull(result)); var _g = []; var _g1 = 0; var _g2 = diffFiltered; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if((function(diffId) { if(showHidden) { return true; } var _g = 0; while(_g < variationIds.length) { var targetVariation = variationIds[_g]; ++_g; if(_gthis.isDifficultyVisible(diffId,targetVariation)) { return true; } } return false; })(v)) { _g.push(v); } } diffFiltered = _g; var defaultValues = funkin_util_Constants.DEFAULT_DIFFICULTY_LIST; diffFiltered.sort(function(a,b) { return funkin_util_SortUtil.defaultsThenAlphabetically(defaultValues,a,b); }); return diffFiltered; } ,hasDifficulty: function(diffId,variationId,variationIds) { if(variationIds == null) { variationIds = []; } if(variationId != null) { variationIds.push(variationId); } var _g = 0; while(_g < variationIds.length) { var targetVariation = variationIds[_g]; ++_g; var variationSuffix = targetVariation != funkin_util_Constants.DEFAULT_VARIATION ? "-" + targetVariation : ""; if(Object.prototype.hasOwnProperty.call(this.difficulties.h,"" + diffId + variationSuffix)) { return true; } } return false; } ,isDifficultyVisible: function(diffId,variationId) { var variation = this._metadata.h[variationId]; if(variation == null) { return false; } return variation.playData.difficulties.indexOf(diffId) != -1; } ,clearCharts: function() { var h = this.difficulties.h; var diff_h = h; var diff_keys = Object.keys(h); var diff_length = diff_keys.length; var diff_current = 0; while(diff_current < diff_length) { var diff = diff_h[diff_keys[diff_current++]]; diff.clearChart(); } } ,toString: function() { return "Song(" + this.id + ")"; } ,destroy: function() { } ,onPause: function(event) { } ,onResume: function(event) { } ,onSongLoaded: function(event) { } ,onSongStart: function(event) { } ,onSongEnd: function(event) { } ,onGameOver: function(event) { } ,onSongRetry: function(event) { } ,onNoteIncoming: function(event) { } ,onNoteHit: function(event) { } ,onNoteMiss: function(event) { } ,onNoteGhostMiss: function(event) { } ,onSongEvent: function(event) { } ,onStepHit: function(event) { } ,onBeatHit: function(event) { } ,onCountdownStart: function(event) { } ,onCountdownStep: function(event) { } ,onCountdownEnd: function(event) { } ,onScriptEvent: function(event) { } ,onCreate: function(event) { } ,onDestroy: function(event) { } ,onUpdate: function(event) { } ,fetchVariationMetadata: function(id,vari) { var version = funkin_data_song_SongRegistry.get_instance().fetchEntryMetadataVersion(id,vari); if(version == null) { return null; } var meta = funkin_data_song_SongRegistry.get_instance().parseEntryMetadataWithMigration(id,vari,version); return meta; } ,__class__: funkin_play_song_Song ,__properties__: {get_charter:"get_charter",get_songArtist:"get_songArtist",get_songName:"get_songName",get_variations:"get_variations"} }; var funkin_play_song_ScriptedSong = function(id) { funkin_play_song_Song.call(this,id); }; $hxClasses["funkin.play.song.ScriptedSong"] = funkin_play_song_ScriptedSong; funkin_play_song_ScriptedSong.__name__ = "funkin.play.song.ScriptedSong"; funkin_play_song_ScriptedSong.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_song_ScriptedSong.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.song.Song"); }; funkin_play_song_ScriptedSong.init = function(clsName,id) { var value = $hxClasses["funkin.play.song.ScriptedSong"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.song.Song"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.song.ScriptedSong" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_song_ScriptedSong.__super__ = funkin_play_song_Song; funkin_play_song_ScriptedSong.prototype = $extend(funkin_play_song_Song.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedSong"; var superName = "Song"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,populateDifficulties: function() { var fieldName = "populateDifficulties"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_song_Song.prototype.populateDifficulties.call(this); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onUpdate.call(this,event); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onSongEnd.call(this,event); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onScriptEvent.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onPause.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onNoteMiss.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onNoteIncoming.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onNoteGhostMiss.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onGameOver.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onCreate.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_song_Song.prototype.onBeatHit.call(this,event); } } ,listDifficulties: function(variationId,variationIds,showLocked,showHidden) { if(showHidden == null) { showHidden = false; } if(showLocked == null) { showLocked = false; } var fieldName = "listDifficulties"; if(this._asc != null) { return this._asc.callFunction(fieldName,[variationId,variationIds,showLocked,showHidden]); } else { return funkin_play_song_Song.prototype.listDifficulties.call(this,variationId,variationIds,showLocked,showHidden); } } ,listAlbums: function() { var fieldName = "listAlbums"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_song_Song.prototype.listAlbums.call(this); } } ,isSongNew: function(currentDifficulty) { var fieldName = "isSongNew"; if(this._asc != null) { return this._asc.callFunction(fieldName,[currentDifficulty]); } else { return funkin_play_song_Song.prototype.isSongNew.call(this,currentDifficulty); } } ,isDifficultyVisible: function(diffId,variationId) { var fieldName = "isDifficultyVisible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[diffId,variationId]); } else { return funkin_play_song_Song.prototype.isDifficultyVisible.call(this,diffId,variationId); } } ,hasDifficulty: function(diffId,variationId,variationIds) { var fieldName = "hasDifficulty"; if(this._asc != null) { return this._asc.callFunction(fieldName,[diffId,variationId,variationIds]); } else { return funkin_play_song_Song.prototype.hasDifficulty.call(this,diffId,variationId,variationIds); } } ,get_variations: function() { var fieldName = "get_variations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_song_Song.prototype.get_variations.call(this); } } ,get_songName: function() { var fieldName = "get_songName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_song_Song.prototype.get_songName.call(this); } } ,get_songArtist: function() { var fieldName = "get_songArtist"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_song_Song.prototype.get_songArtist.call(this); } } ,get_charter: function() { var fieldName = "get_charter"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_song_Song.prototype.get_charter.call(this); } } ,getVariationsByCharId: function(charId) { var fieldName = "getVariationsByCharId"; if(this._asc != null) { return this._asc.callFunction(fieldName,[charId]); } else { return funkin_play_song_Song.prototype.getVariationsByCharId.call(this,charId); } } ,getRawMetadata: function() { var fieldName = "getRawMetadata"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_song_Song.prototype.getRawMetadata.call(this); } } ,getFirstValidVariation: function(diffId,possibleVariations) { var fieldName = "getFirstValidVariation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[diffId,possibleVariations]); } else { return funkin_play_song_Song.prototype.getFirstValidVariation.call(this,diffId,possibleVariations); } } ,getDifficulty: function(diffId,variation,variations) { var fieldName = "getDifficulty"; if(this._asc != null) { return this._asc.callFunction(fieldName,[diffId,variation,variations]); } else { return funkin_play_song_Song.prototype.getDifficulty.call(this,diffId,variation,variations); } } ,fetchVariationMetadata: function(id,vari) { var fieldName = "fetchVariationMetadata"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id,vari]); } else { return funkin_play_song_Song.prototype.fetchVariationMetadata.call(this,id,vari); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_song_Song.prototype.destroy.call(this); } } ,clearCharts: function() { var fieldName = "clearCharts"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_song_Song.prototype.clearCharts.call(this); } } ,cacheCharts: function(force) { if(force == null) { force = false; } var fieldName = "cacheCharts"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_song_Song.prototype.cacheCharts.call(this,force); } } ,applyChartData: function(chartData,variation) { var fieldName = "applyChartData"; if(this._asc != null) { this._asc.callFunction(fieldName,[chartData,variation]); } else { funkin_play_song_Song.prototype.applyChartData.call(this,chartData,variation); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_song_Song.prototype.toString.call(this); } ,__super_populateDifficulties: function() { var fieldName = "populateDifficulties"; funkin_play_song_Song.prototype.populateDifficulties.call(this); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_song_Song.prototype.onUpdate.call(this,event); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_song_Song.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_song_Song.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_song_Song.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_song_Song.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_song_Song.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_song_Song.prototype.onSongEnd.call(this,event); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_song_Song.prototype.onScriptEvent.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_song_Song.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_song_Song.prototype.onPause.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_song_Song.prototype.onNoteMiss.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_song_Song.prototype.onNoteIncoming.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_song_Song.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_song_Song.prototype.onNoteGhostMiss.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_song_Song.prototype.onGameOver.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_song_Song.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_song_Song.prototype.onCreate.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_song_Song.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_song_Song.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_song_Song.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_song_Song.prototype.onBeatHit.call(this,event); } ,__super_listDifficulties: function(variationId,variationIds,showLocked,showHidden) { if(showHidden == null) { showHidden = false; } if(showLocked == null) { showLocked = false; } var fieldName = "listDifficulties"; return funkin_play_song_Song.prototype.listDifficulties.call(this,variationId,variationIds,showLocked,showHidden); } ,__super_listAlbums: function() { var fieldName = "listAlbums"; return funkin_play_song_Song.prototype.listAlbums.call(this); } ,__super_isSongNew: function(currentDifficulty) { var fieldName = "isSongNew"; return funkin_play_song_Song.prototype.isSongNew.call(this,currentDifficulty); } ,__super_isDifficultyVisible: function(diffId,variationId) { var fieldName = "isDifficultyVisible"; return funkin_play_song_Song.prototype.isDifficultyVisible.call(this,diffId,variationId); } ,__super_hasDifficulty: function(diffId,variationId,variationIds) { var fieldName = "hasDifficulty"; return funkin_play_song_Song.prototype.hasDifficulty.call(this,diffId,variationId,variationIds); } ,__super_get_variations: function() { var fieldName = "get_variations"; return funkin_play_song_Song.prototype.get_variations.call(this); } ,__super_get_songName: function() { var fieldName = "get_songName"; return funkin_play_song_Song.prototype.get_songName.call(this); } ,__super_get_songArtist: function() { var fieldName = "get_songArtist"; return funkin_play_song_Song.prototype.get_songArtist.call(this); } ,__super_get_charter: function() { var fieldName = "get_charter"; return funkin_play_song_Song.prototype.get_charter.call(this); } ,__super_getVariationsByCharId: function(charId) { var fieldName = "getVariationsByCharId"; return funkin_play_song_Song.prototype.getVariationsByCharId.call(this,charId); } ,__super_getRawMetadata: function() { var fieldName = "getRawMetadata"; return funkin_play_song_Song.prototype.getRawMetadata.call(this); } ,__super_getFirstValidVariation: function(diffId,possibleVariations) { var fieldName = "getFirstValidVariation"; return funkin_play_song_Song.prototype.getFirstValidVariation.call(this,diffId,possibleVariations); } ,__super_getDifficulty: function(diffId,variation,variations) { var fieldName = "getDifficulty"; return funkin_play_song_Song.prototype.getDifficulty.call(this,diffId,variation,variations); } ,__super_fetchVariationMetadata: function(id,vari) { var fieldName = "fetchVariationMetadata"; return funkin_play_song_Song.prototype.fetchVariationMetadata.call(this,id,vari); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_song_Song.prototype.destroy.call(this); } ,__super_clearCharts: function() { var fieldName = "clearCharts"; funkin_play_song_Song.prototype.clearCharts.call(this); } ,__super_cacheCharts: function(force) { if(force == null) { force = false; } var fieldName = "cacheCharts"; funkin_play_song_Song.prototype.cacheCharts.call(this,force); } ,__super_applyChartData: function(chartData,variation) { var fieldName = "applyChartData"; funkin_play_song_Song.prototype.applyChartData.call(this,chartData,variation); } ,__class__: funkin_play_song_ScriptedSong }); var funkin_play_song_SongDifficulty = function(song,diffId,variation) { this.album = null; this.difficultyRating = 0; this.scrollSpeed = funkin_util_Constants.DEFAULT_SCROLLSPEED; this.characters = null; this.noteStyle = funkin_util_Constants.DEFAULT_NOTE_STYLE; this.stage = funkin_util_Constants.DEFAULT_STAGE; this.timeChanges = []; this.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); this.offsets = new funkin_data_song_SongOffsets(); this.looped = false; this.divisions = null; this.timeFormat = funkin_util_Constants.DEFAULT_TIMEFORMAT; this.charter = funkin_util_Constants.DEFAULT_CHARTER; this.songArtist = funkin_util_Constants.DEFAULT_ARTIST; this.songName = funkin_util_Constants.DEFAULT_SONGNAME; this.song = song; this.difficulty = diffId; this.variation = variation; }; $hxClasses["funkin.play.song.SongDifficulty"] = funkin_play_song_SongDifficulty; funkin_play_song_SongDifficulty.__name__ = "funkin.play.song.SongDifficulty"; funkin_play_song_SongDifficulty.prototype = { song: null ,difficulty: null ,variation: null ,notes: null ,events: null ,songName: null ,songArtist: null ,charter: null ,timeFormat: null ,divisions: null ,looped: null ,offsets: null ,generatedBy: null ,timeChanges: null ,stage: null ,noteStyle: null ,characters: null ,scrollSpeed: null ,difficultyRating: null ,album: null ,clearChart: function() { this.notes = null; } ,getStartingBPM: function() { if(this.timeChanges.length == 0) { return 0; } return this.timeChanges[0].bpm; } ,getEvents: function() { return this.events; } ,getInstPath: function(instrumental) { if(instrumental == null) { instrumental = ""; } if(this.characters != null) { if(instrumental != "" && this.characters.altInstrumentals.indexOf(instrumental) != -1) { var instId = "-" + instrumental; return funkin_Paths.inst(this.song.id,instId); } else { var tmp = this.characters.instrumental; var instId = (tmp != null ? tmp : "") != "" ? "-" + this.characters.instrumental : ""; return funkin_Paths.inst(this.song.id,instId); } } else { return funkin_Paths.inst(this.song.id); } } ,cacheInst: function(instrumental) { if(instrumental == null) { instrumental = ""; } var _this = flixel_FlxG.sound; var embeddedSound = this.getInstPath(instrumental); if(openfl_utils_Assets.exists(embeddedSound,"SOUND") || openfl_utils_Assets.exists(embeddedSound,"MUSIC")) { openfl_utils_Assets.getSound(embeddedSound,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + embeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } } ,playInst: function(volume,instId,looped) { if(looped == null) { looped = false; } if(instId == null) { instId = ""; } if(volume == null) { volume = 1.0; } var suffix = instId != "" ? "-" + instId : ""; var tmp = funkin_Paths.inst(this.song.id,suffix); flixel_FlxG.sound.music = funkin_audio_FunkinSound.load(tmp,volume,looped,false,true); flixel_FlxG.sound.list.remove(flixel_FlxG.sound.music); } ,cacheVocals: function() { var _g = 0; var _g1 = this.buildVoiceList(); while(_g < _g1.length) { var voice = _g1[_g]; ++_g; var _this = flixel_FlxG.sound; if(openfl_utils_Assets.exists(voice,"SOUND") || openfl_utils_Assets.exists(voice,"MUSIC")) { openfl_utils_Assets.getSound(voice,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + voice + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } } } ,buildVoiceList: function() { var suffix = this.variation != null && this.variation != "" && this.variation != "default" ? "-" + this.variation : ""; var playerId = this.characters.player; var voicePlayer = funkin_Paths.voices(this.song.id,"-" + playerId + suffix); while(voicePlayer != null && !openfl_utils_Assets.exists(voicePlayer)) { playerId = playerId.split("-").slice(0,-1).join("-"); voicePlayer = playerId == "" ? null : funkin_Paths.voices(this.song.id,"-" + playerId + suffix); } if(voicePlayer == null) { playerId = this.characters.player; voicePlayer = funkin_Paths.voices(this.song.id,"-" + playerId); while(voicePlayer != null && !openfl_utils_Assets.exists(voicePlayer)) { playerId = playerId.split("-").slice(0,-1).join("-"); voicePlayer = playerId == "" ? null : funkin_Paths.voices(this.song.id,"-" + playerId + suffix); } } var opponentId = this.characters.opponent; var voiceOpponent = funkin_Paths.voices(this.song.id,"-" + opponentId + suffix); while(voiceOpponent != null && !openfl_utils_Assets.exists(voiceOpponent)) { opponentId = opponentId.split("-").slice(0,-1).join("-"); voiceOpponent = opponentId == "" ? null : funkin_Paths.voices(this.song.id,"-" + opponentId + suffix); } if(voiceOpponent == null) { opponentId = this.characters.opponent; voiceOpponent = funkin_Paths.voices(this.song.id,"-" + opponentId); while(voiceOpponent != null && !openfl_utils_Assets.exists(voiceOpponent)) { opponentId = opponentId.split("-").slice(0,-1).join("-"); voiceOpponent = opponentId == "" ? null : funkin_Paths.voices(this.song.id,"-" + opponentId + suffix); } } var result = []; if(voicePlayer != null) { result.push(voicePlayer); } if(voiceOpponent != null) { result.push(voiceOpponent); } if(voicePlayer == null && voiceOpponent == null) { if(openfl_utils_Assets.exists(funkin_Paths.voices(this.song.id,""))) { result.push(funkin_Paths.voices(this.song.id,"" + suffix)); } } return result; } ,buildVocals: function() { var result = new funkin_audio_VoicesGroup(); var voiceList = this.buildVoiceList(); if(voiceList.length == 0) { haxe_Log.trace("Could not find any voices for song " + this.song.id,{ fileName : "source/funkin/play/song/Song.hx", lineNumber : 792, className : "funkin.play.song.SongDifficulty", methodName : "buildVocals"}); return result; } if(voiceList[0] != null) { result.addPlayerVoice(funkin_audio_FunkinSound.load(voiceList[0])); } if(voiceList[1] != null) { result.addOpponentVoice(funkin_audio_FunkinSound.load(voiceList[1])); } if(voiceList.length > 2) { var _g = 2; var _g1 = voiceList.length; while(_g < _g1) { var i = _g++; result.add(funkin_audio_FunkinSound.load(openfl_utils_Assets.getSound(voiceList[i]))); } } result.set_playerVoicesOffset(this.offsets.getVocalOffset(this.characters.player)); result.set_opponentVoicesOffset(this.offsets.getVocalOffset(this.characters.opponent)); return result; } ,__class__: funkin_play_song_SongDifficulty }; var funkin_play_song_SongSerializer = function() { }; $hxClasses["funkin.play.song.SongSerializer"] = funkin_play_song_SongSerializer; funkin_play_song_SongSerializer.__name__ = "funkin.play.song.SongSerializer"; funkin_play_song_SongSerializer.importSongChartDataSync = function(path) { var fileData = funkin_util_FileUtil.readStringFromPath(path); if(fileData == null) { return null; } var songChartData = funkin_util_tools_StringTools.parseJSON(fileData); return songChartData; }; funkin_play_song_SongSerializer.importSongMetadataSync = function(path) { var fileData = funkin_util_FileUtil.readStringFromPath(path); if(fileData == null) { return null; } var songMetadata = funkin_util_tools_StringTools.parseJSON(fileData); return songMetadata; }; funkin_play_song_SongSerializer.importSongChartDataAsync = function(callback) { funkin_util_FileUtil.browseFileReference(function(fileReference) { var data = fileReference.data.toString(); if(data == null) { return; } var songChartData = funkin_util_tools_StringTools.parseJSON(data); if(songChartData != null) { callback(songChartData); } }); }; funkin_play_song_SongSerializer.importSongMetadataAsync = function(callback) { funkin_util_FileUtil.browseFileReference(function(fileReference) { var data = fileReference.data.toString(); if(data == null) { return; } var songMetadata = funkin_util_tools_StringTools.parseJSON(data); if(songMetadata != null) { callback(songMetadata); } }); }; var funkin_play_stage_ScriptedBopper = function(danceEvery) { funkin_play_stage_Bopper.call(this,danceEvery); }; $hxClasses["funkin.play.stage.ScriptedBopper"] = funkin_play_stage_ScriptedBopper; funkin_play_stage_ScriptedBopper.__name__ = "funkin.play.stage.ScriptedBopper"; funkin_play_stage_ScriptedBopper.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_stage_ScriptedBopper.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.stage.Bopper"); }; funkin_play_stage_ScriptedBopper.init = function(clsName,danceEvery) { var value = $hxClasses["funkin.play.stage.ScriptedBopper"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.stage.Bopper"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[danceEvery]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.stage.ScriptedBopper" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_stage_ScriptedBopper.__super__ = funkin_play_stage_Bopper; funkin_play_stage_ScriptedBopper.prototype = $extend(funkin_play_stage_Bopper.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedBopper"; var superName = "Bopper"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.update_shouldAlternate.call(this); } } ,set_isPixel: function(value) { var fieldName = "set_isPixel"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_isPixel.call(this,value); } } ,set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_idleSuffix.call(this,value); } } ,set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_globalOffsets.call(this,value); } } ,set_animOffsets: function(value) { var fieldName = "set_animOffsets"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_animOffsets.call(this,value); } } ,setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,xOffset,yOffset]); } else { funkin_play_stage_Bopper.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } } ,resetPosition: function() { var fieldName = "resetPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.resetPosition.call(this); } } ,playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,restart,ignoreOther,reversed]); } else { funkin_play_stage_Bopper.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onSongEnd.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onPause.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onNoteMiss.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onNoteIncoming.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onNoteGhostMiss.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onGameOver.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onBeatHit.call(this,event); } } ,onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,frameNumber,frameIndex]); } else { funkin_play_stage_Bopper.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } } ,onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_stage_Bopper.prototype.onAnimationFinished.call(this,name); } } ,isAnimationFinished: function() { var fieldName = "isAnimationFinished"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.isAnimationFinished.call(this); } } ,hasAnimation: function(id) { var fieldName = "hasAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_stage_Bopper.prototype.hasAnimation.call(this,id); } } ,getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.getCurrentAnimation.call(this); } } ,forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; if(this._asc != null) { this._asc.callFunction(fieldName,[name,duration]); } else { funkin_play_stage_Bopper.prototype.forceAnimationForDuration.call(this,name,duration); } } ,dance: function(forceRestart) { if(forceRestart == null) { forceRestart = false; } var fieldName = "dance"; if(this._asc != null) { this._asc.callFunction(fieldName,[forceRestart]); } else { funkin_play_stage_Bopper.prototype.dance.call(this,forceRestart); } } ,correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name,fallback]); } else { return funkin_play_stage_Bopper.prototype.correctAnimationName.call(this,name,fallback); } } ,applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[name]); } else { funkin_play_stage_Bopper.prototype.applyAnimationOffsets.call(this,name); } } ,__super_update_shouldAlternate: function() { var fieldName = "update_shouldAlternate"; funkin_play_stage_Bopper.prototype.update_shouldAlternate.call(this); } ,__super_set_isPixel: function(value) { var fieldName = "set_isPixel"; return funkin_play_stage_Bopper.prototype.set_isPixel.call(this,value); } ,__super_set_idleSuffix: function(value) { var fieldName = "set_idleSuffix"; return funkin_play_stage_Bopper.prototype.set_idleSuffix.call(this,value); } ,__super_set_globalOffsets: function(value) { var fieldName = "set_globalOffsets"; return funkin_play_stage_Bopper.prototype.set_globalOffsets.call(this,value); } ,__super_set_animOffsets: function(value) { var fieldName = "set_animOffsets"; return funkin_play_stage_Bopper.prototype.set_animOffsets.call(this,value); } ,__super_setAnimationOffsets: function(name,xOffset,yOffset) { var fieldName = "setAnimationOffsets"; funkin_play_stage_Bopper.prototype.setAnimationOffsets.call(this,name,xOffset,yOffset); } ,__super_resetPosition: function() { var fieldName = "resetPosition"; funkin_play_stage_Bopper.prototype.resetPosition.call(this); } ,__super_playAnimation: function(name,restart,ignoreOther,reversed) { if(reversed == null) { reversed = false; } if(ignoreOther == null) { ignoreOther = false; } if(restart == null) { restart = false; } var fieldName = "playAnimation"; funkin_play_stage_Bopper.prototype.playAnimation.call(this,name,restart,ignoreOther,reversed); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_stage_Bopper.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_stage_Bopper.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_stage_Bopper.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_stage_Bopper.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_stage_Bopper.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_stage_Bopper.prototype.onSongEnd.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_stage_Bopper.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_stage_Bopper.prototype.onPause.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_stage_Bopper.prototype.onNoteMiss.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_stage_Bopper.prototype.onNoteIncoming.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_stage_Bopper.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_stage_Bopper.prototype.onNoteGhostMiss.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_stage_Bopper.prototype.onGameOver.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_stage_Bopper.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_stage_Bopper.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_stage_Bopper.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_stage_Bopper.prototype.onBeatHit.call(this,event); } ,__super_onAnimationFrame: function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } var fieldName = "onAnimationFrame"; funkin_play_stage_Bopper.prototype.onAnimationFrame.call(this,name,frameNumber,frameIndex); } ,__super_onAnimationFinished: function(name) { var fieldName = "onAnimationFinished"; funkin_play_stage_Bopper.prototype.onAnimationFinished.call(this,name); } ,__super_isAnimationFinished: function() { var fieldName = "isAnimationFinished"; return funkin_play_stage_Bopper.prototype.isAnimationFinished.call(this); } ,__super_hasAnimation: function(id) { var fieldName = "hasAnimation"; return funkin_play_stage_Bopper.prototype.hasAnimation.call(this,id); } ,__super_getCurrentAnimation: function() { var fieldName = "getCurrentAnimation"; return funkin_play_stage_Bopper.prototype.getCurrentAnimation.call(this); } ,__super_forceAnimationForDuration: function(name,duration) { var fieldName = "forceAnimationForDuration"; funkin_play_stage_Bopper.prototype.forceAnimationForDuration.call(this,name,duration); } ,__super_dance: function(forceRestart) { if(forceRestart == null) { forceRestart = false; } var fieldName = "dance"; funkin_play_stage_Bopper.prototype.dance.call(this,forceRestart); } ,__super_correctAnimationName: function(name,fallback) { var fieldName = "correctAnimationName"; return funkin_play_stage_Bopper.prototype.correctAnimationName.call(this,name,fallback); } ,__super_applyAnimationOffsets: function(name) { var fieldName = "applyAnimationOffsets"; funkin_play_stage_Bopper.prototype.applyAnimationOffsets.call(this,name); } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onUpdate.call(this,event); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onScriptEvent.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onCreate.call(this,event); } } ,onAdd: function(event) { var fieldName = "onAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Bopper.prototype.onAdd.call(this,event); } } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_stage_Bopper.prototype.onUpdate.call(this,event); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_stage_Bopper.prototype.onScriptEvent.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_stage_Bopper.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_stage_Bopper.prototype.onCreate.call(this,event); } ,__super_onAdd: function(event) { var fieldName = "onAdd"; funkin_play_stage_Bopper.prototype.onAdd.call(this,event); } ,makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[width,height,color]); } else { return funkin_play_stage_Bopper.prototype.makeSolidColor.call(this,width,height,color); } } ,loadTextureBase: function(input) { var fieldName = "loadTextureBase"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_stage_Bopper.prototype.loadTextureBase.call(this,input); } } ,loadTexture: function(key) { var fieldName = "loadTexture"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_stage_Bopper.prototype.loadTexture.call(this,key); } } ,loadSparrow: function(key) { var fieldName = "loadSparrow"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_stage_Bopper.prototype.loadSparrow.call(this,key); } } ,loadPacker: function(key) { var fieldName = "loadPacker"; if(this._asc != null) { return this._asc.callFunction(fieldName,[key]); } else { return funkin_play_stage_Bopper.prototype.loadPacker.call(this,key); } } ,loadBitmapData: function(input) { var fieldName = "loadBitmapData"; if(this._asc != null) { return this._asc.callFunction(fieldName,[input]); } else { return funkin_play_stage_Bopper.prototype.loadBitmapData.call(this,input); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.clone.call(this); } } ,__super_makeSolidColor: function(width,height,color) { if(color == null) { color = -1; } var fieldName = "makeSolidColor"; return funkin_play_stage_Bopper.prototype.makeSolidColor.call(this,width,height,color); } ,__super_loadTextureBase: function(input) { var fieldName = "loadTextureBase"; return funkin_play_stage_Bopper.prototype.loadTextureBase.call(this,input); } ,__super_loadTexture: function(key) { var fieldName = "loadTexture"; return funkin_play_stage_Bopper.prototype.loadTexture.call(this,key); } ,__super_loadSparrow: function(key) { var fieldName = "loadSparrow"; return funkin_play_stage_Bopper.prototype.loadSparrow.call(this,key); } ,__super_loadPacker: function(key) { var fieldName = "loadPacker"; return funkin_play_stage_Bopper.prototype.loadPacker.call(this,key); } ,__super_loadBitmapData: function(input) { var fieldName = "loadBitmapData"; return funkin_play_stage_Bopper.prototype.loadBitmapData.call(this,input); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_stage_Bopper.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_stage_Bopper.prototype.clone.call(this); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.updateFramePixels.call(this); } } ,updateColorTransform: function() { var fieldName = "updateColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.updateColorTransform.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_stage_Bopper.prototype.updateAnimation.call(this,elapsed); } } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_stage_Bopper.prototype.update.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_stage_Bopper.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_stage_Bopper.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_stage_Bopper.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; if(this._asc != null) { this._asc.callFunction(fieldName,[Brush,X,Y]); } else { funkin_play_stage_Bopper.prototype.stamp.call(this,Brush,X,Y); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_useFramePixels.call(this,value); } } ,set_pixels: function(Pixels) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Pixels]); } else { return funkin_play_stage_Bopper.prototype.set_pixels.call(this,Pixels); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_graphic.call(this,value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_stage_Bopper.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Direction) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Direction]); } else { return funkin_play_stage_Bopper.prototype.set_facing.call(this,Direction); } } ,set_color: function(Color) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color]); } else { return funkin_play_stage_Bopper.prototype.set_color.call(this,Color); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_stage_Bopper.prototype.set_clipRect.call(this,rect); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_blend.call(this,Value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_antialiasing.call(this,value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Alpha) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Alpha]); } else { return funkin_play_stage_Bopper.prototype.set_alpha.call(this,Alpha); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_stage_Bopper.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_stage_Bopper.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_stage_Bopper.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,resetHelpers: function() { var fieldName = "resetHelpers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.resetHelpers.call(this); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_stage_Bopper.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,alphaTolerance,camera]); } else { return funkin_play_stage_Bopper.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_stage_Bopper.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_stage_Bopper.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_stage_Bopper.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_stage_Bopper.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[graphic,animated,frameWidth,frameHeight,unique,key]); } else { return funkin_play_stage_Bopper.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Bopper.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Bopper.prototype.isSimpleRender.call(this,camera); } } ,isOnScreen: function(camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Bopper.prototype.isOnScreen.call(this,camera); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.initVars.call(this); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.graphicLoaded.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_pixels.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_stage_Bopper.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_stage_Bopper.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_stage_Bopper.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_stage_Bopper.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_stage_Bopper.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_stage_Bopper.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_stage_Bopper.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_stage_Bopper.prototype.drawComplex.call(this,camera); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.draw.call(this); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_stage_Bopper.prototype.centerOffsets.call(this,AdjustPosition); } } ,calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[force]); } else { funkin_play_stage_Bopper.prototype.calcFrame.call(this,force); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_stage_Bopper.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_stage_Bopper.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; funkin_play_stage_Bopper.prototype.updateColorTransform.call(this); } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_stage_Bopper.prototype.updateAnimation.call(this,elapsed); } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_stage_Bopper.prototype.update.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_stage_Bopper.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_stage_Bopper.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_stage_Bopper.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; funkin_play_stage_Bopper.prototype.stamp.call(this,Brush,X,Y); } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_stage_Bopper.prototype.set_useFramePixels.call(this,value); } ,__super_set_pixels: function(Pixels) { var fieldName = "set_pixels"; return funkin_play_stage_Bopper.prototype.set_pixels.call(this,Pixels); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_stage_Bopper.prototype.set_graphic.call(this,value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_stage_Bopper.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_stage_Bopper.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_stage_Bopper.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_stage_Bopper.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Direction) { var fieldName = "set_facing"; return funkin_play_stage_Bopper.prototype.set_facing.call(this,Direction); } ,__super_set_color: function(Color) { var fieldName = "set_color"; return funkin_play_stage_Bopper.prototype.set_color.call(this,Color); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_stage_Bopper.prototype.set_clipRect.call(this,rect); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_stage_Bopper.prototype.set_blend.call(this,Value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_stage_Bopper.prototype.set_antialiasing.call(this,value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_stage_Bopper.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Alpha) { var fieldName = "set_alpha"; return funkin_play_stage_Bopper.prototype.set_alpha.call(this,Alpha); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_stage_Bopper.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_stage_Bopper.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_stage_Bopper.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; funkin_play_stage_Bopper.prototype.resetHelpers.call(this); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_stage_Bopper.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(worldPoint,alphaTolerance,camera) { if(alphaTolerance == null) { alphaTolerance = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_stage_Bopper.prototype.pixelsOverlapPoint.call(this,worldPoint,alphaTolerance,camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_stage_Bopper.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_stage_Bopper.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_stage_Bopper.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_stage_Bopper.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(graphic,animated,frameWidth,frameHeight,unique,key) { if(unique == null) { unique = false; } if(frameHeight == null) { frameHeight = 0; } if(frameWidth == null) { frameWidth = 0; } if(animated == null) { animated = false; } var fieldName = "loadGraphic"; return funkin_play_stage_Bopper.prototype.loadGraphic.call(this,graphic,animated,frameWidth,frameHeight,unique,key); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_stage_Bopper.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_stage_Bopper.prototype.isSimpleRender.call(this,camera); } ,__super_isOnScreen: function(camera) { var fieldName = "isOnScreen"; return funkin_play_stage_Bopper.prototype.isOnScreen.call(this,camera); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_stage_Bopper.prototype.initVars.call(this); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_stage_Bopper.prototype.graphicLoaded.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_stage_Bopper.prototype.get_pixels.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_stage_Bopper.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_stage_Bopper.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_stage_Bopper.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_stage_Bopper.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_stage_Bopper.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_stage_Bopper.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_stage_Bopper.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_stage_Bopper.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_stage_Bopper.prototype.drawComplex.call(this,camera); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_stage_Bopper.prototype.draw.call(this); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_stage_Bopper.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_stage_Bopper.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; funkin_play_stage_Bopper.prototype.calcFrame.call(this,force); } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_stage_Bopper.prototype.updateMotion.call(this,elapsed); } } ,set_y: function(value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_y.call(this,value); } } ,set_x: function(value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_x.call(this,value); } } ,set_width: function(value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_width.call(this,value); } } ,set_solid: function(value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_solid.call(this,value); } } ,set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_pixelPerfectRender.call(this,value); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_stage_Bopper.prototype.set_path.call(this,path); } } ,set_moves: function(value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_moves.call(this,value); } } ,set_immovable: function(value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_immovable.call(this,value); } } ,set_height: function(value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_height.call(this,value); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Bopper.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_stage_Bopper.prototype.setSize.call(this,width,height); } } ,setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_stage_Bopper.prototype.setPosition.call(this,x,y); } } ,reset: function(x,y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[x,y]); } else { funkin_play_stage_Bopper.prototype.reset.call(this,x,y); } } ,overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,inScreenSpace,camera]); } else { return funkin_play_stage_Bopper.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_stage_Bopper.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_stage_Bopper.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Bopper.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_stage_Bopper.prototype.hurt.call(this,damage); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_width.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_height.call(this); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_stage_Bopper.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_stage_Bopper.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_stage_Bopper.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_stage_Bopper.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Bopper.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_stage_Bopper.prototype.updateMotion.call(this,elapsed); } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_stage_Bopper.prototype.toString.call(this); } ,__super_set_y: function(value) { var fieldName = "set_y"; return funkin_play_stage_Bopper.prototype.set_y.call(this,value); } ,__super_set_x: function(value) { var fieldName = "set_x"; return funkin_play_stage_Bopper.prototype.set_x.call(this,value); } ,__super_set_width: function(value) { var fieldName = "set_width"; return funkin_play_stage_Bopper.prototype.set_width.call(this,value); } ,__super_set_solid: function(value) { var fieldName = "set_solid"; return funkin_play_stage_Bopper.prototype.set_solid.call(this,value); } ,__super_set_pixelPerfectRender: function(value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_stage_Bopper.prototype.set_pixelPerfectRender.call(this,value); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_stage_Bopper.prototype.set_path.call(this,path); } ,__super_set_moves: function(value) { var fieldName = "set_moves"; return funkin_play_stage_Bopper.prototype.set_moves.call(this,value); } ,__super_set_immovable: function(value) { var fieldName = "set_immovable"; return funkin_play_stage_Bopper.prototype.set_immovable.call(this,value); } ,__super_set_height: function(value) { var fieldName = "set_height"; return funkin_play_stage_Bopper.prototype.set_height.call(this,value); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_stage_Bopper.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_stage_Bopper.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_stage_Bopper.prototype.setSize.call(this,width,height); } ,__super_setPosition: function(x,y) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var fieldName = "setPosition"; funkin_play_stage_Bopper.prototype.setPosition.call(this,x,y); } ,__super_reset: function(x,y) { var fieldName = "reset"; funkin_play_stage_Bopper.prototype.reset.call(this,x,y); } ,__super_overlapsPoint: function(point,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_stage_Bopper.prototype.overlapsPoint.call(this,point,inScreenSpace,camera); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_stage_Bopper.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_stage_Bopper.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_stage_Bopper.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_stage_Bopper.prototype.hurt.call(this,damage); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_stage_Bopper.prototype.get_width.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_stage_Bopper.prototype.get_height.call(this); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_stage_Bopper.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_stage_Bopper.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_stage_Bopper.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_stage_Bopper.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_stage_Bopper.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_stage_Bopper.prototype.getBoundingBox.call(this,camera); } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_visible.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_exists.call(this,Value); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_camera.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Bopper.prototype.set_active.call(this,Value); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.revive.call(this); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Bopper.prototype.kill.call(this); } } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Bopper.prototype.get_camera.call(this); } } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_stage_Bopper.prototype.set_visible.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_stage_Bopper.prototype.set_exists.call(this,Value); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_stage_Bopper.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_stage_Bopper.prototype.set_camera.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_stage_Bopper.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_stage_Bopper.prototype.set_active.call(this,Value); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_stage_Bopper.prototype.revive.call(this); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_stage_Bopper.prototype.kill.call(this); } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_stage_Bopper.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_stage_Bopper.prototype.get_camera.call(this); } ,__class__: funkin_play_stage_ScriptedBopper }); var funkin_play_stage_Stage = function(id) { this.boppers = []; this.characters = new haxe_ds_StringMap(); this.namedProps = new haxe_ds_StringMap(); flixel_group_FlxTypedSpriteGroup.call(this); this.id = id; this._data = funkin_play_stage_Stage._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not find stage data for stage id: " + id); } }; $hxClasses["funkin.play.stage.Stage"] = funkin_play_stage_Stage; funkin_play_stage_Stage.__name__ = "funkin.play.stage.Stage"; funkin_play_stage_Stage.__interfaces__ = [funkin_data_IRegistryEntry,funkin_modding_IPlayStateScriptedClass]; funkin_play_stage_Stage._fetchData = function(id) { return funkin_data_stage_StageRegistry.get_instance().parseEntryDataWithMigration(id,funkin_data_stage_StageRegistry.get_instance().fetchEntryVersion(id)); }; funkin_play_stage_Stage.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_play_stage_Stage.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ id: null ,_data: null ,get_stageName: function() { var tmp = this._data; var tmp1 = tmp != null ? tmp.name : null; if(tmp1 != null) { return tmp1; } else { return "Unknown"; } } ,get_camZoom: function() { var tmp = this._data; var tmp1 = tmp != null ? tmp.cameraZoom : null; if(tmp1 != null) { return tmp1; } else { return 1.0; } } ,frameBufferMan: null ,maskTexture: null ,namedProps: null ,characters: null ,boppers: null ,onCreate: function(event) { if(this.frameBufferMan != null) { this.frameBufferMan.dispose(); } this.frameBufferMan = new funkin_graphics_framebuffer_FrameBufferManager(flixel_FlxG.camera); this.setupFrameBuffers(); this.buildStage(); this.refresh(); this.debugIconGroup = new flixel_group_FlxTypedSpriteGroup(); this.debugIconGroup.set_visible(false); this.debugIconGroup.zIndex = 1000000; } ,resetStage: function() { if(this.getBoyfriend() != null) { this.getBoyfriend().resetCharacter(true); var stageCharData = this._data.characters.bf; var finalScale = this.getBoyfriend().getBaseScale() * stageCharData.scale; this.getBoyfriend().setScale(finalScale); var fh = this.getBoyfriend(); fh.cameraFocusPoint.set_x(fh.cameraFocusPoint.x + stageCharData.cameraOffsets[0]); var fh = this.getBoyfriend(); fh.cameraFocusPoint.set_y(fh.cameraFocusPoint.y + stageCharData.cameraOffsets[1]); } else { haxe_Log.trace("STAGE RESET: No boyfriend found.",{ fileName : "source/funkin/play/stage/Stage.hx", lineNumber : 120, className : "funkin.play.stage.Stage", methodName : "resetStage"}); } if(this.getGirlfriend() != null) { this.getGirlfriend().resetCharacter(true); var stageCharData = this._data.characters.gf; var finalScale = this.getGirlfriend().getBaseScale() * stageCharData.scale; this.getGirlfriend().setScale(finalScale); var fh = this.getGirlfriend(); fh.cameraFocusPoint.set_x(fh.cameraFocusPoint.x + stageCharData.cameraOffsets[0]); var fh = this.getGirlfriend(); fh.cameraFocusPoint.set_y(fh.cameraFocusPoint.y + stageCharData.cameraOffsets[1]); } if(this.getDad() != null) { this.getDad().resetCharacter(true); var stageCharData = this._data.characters.dad; var finalScale = this.getDad().getBaseScale() * stageCharData.scale; this.getDad().setScale(finalScale); var fh = this.getDad(); fh.cameraFocusPoint.set_x(fh.cameraFocusPoint.x + stageCharData.cameraOffsets[0]); var fh = this.getDad(); fh.cameraFocusPoint.set_y(fh.cameraFocusPoint.y + stageCharData.cameraOffsets[1]); } var _g = 0; var _g1 = this._data.props; while(_g < _g1.length) { var dataProp = _g1[_g]; ++_g; var prop = this.getNamedProp(dataProp.name); if(prop != null) { prop.set_x(dataProp.position[0]); prop.set_y(dataProp.position[1]); prop.zIndex = dataProp.zIndex; } } } ,buildStage: function() { haxe_Log.trace("Building stage for display: " + this.id,{ fileName : "source/funkin/play/stage/Stage.hx", lineNumber : 167, className : "funkin.play.stage.Stage", methodName : "buildStage"}); this.debugIconGroup = new flixel_group_FlxTypedSpriteGroup(); var _g = 0; var _g1 = this._data.props; while(_g < _g1.length) { var dataProp = _g1[_g]; ++_g; haxe_Log.trace(" Placing prop: " + dataProp.name + " (" + dataProp.assetPath + ")",{ fileName : "source/funkin/play/stage/Stage.hx", lineNumber : 173, className : "funkin.play.stage.Stage", methodName : "buildStage"}); var isSolidColor = StringTools.startsWith(dataProp.assetPath,"#"); var isAnimated = dataProp.animations.length > 0; var propSprite; if(dataProp.danceEvery != 0) { propSprite = new funkin_play_stage_Bopper(dataProp.danceEvery); } else { propSprite = new funkin_play_stage_StageProp(); } if(isAnimated) { var _g2 = dataProp.animType; if(_g2 == null) { propSprite.loadSparrow(dataProp.assetPath); } else if(_g2 == "packer") { propSprite.loadPacker(dataProp.assetPath); } else { propSprite.loadSparrow(dataProp.assetPath); } } else if(isSolidColor) { var width = 1; var height = 1; var _g3 = dataProp.scale; switch(_g3._hx_index) { case 0: var value = _g3.v; width = value | 0; height = value | 0; break; case 1: var values = _g3.v; width = values[0] | 0; height = values[1] | 0; break; } propSprite.makeSolidColor(width,height,flixel_util_FlxColor.fromString(dataProp.assetPath)); } else { propSprite.loadTexture(dataProp.assetPath); propSprite.set_active(false); } if(propSprite.frames == null || propSprite.frames.frames.length == 0) { var tmp = funkin_Paths.currentLevel; haxe_Log.trace(" ERROR: Could not build texture for prop. Check the asset path (" + (tmp != null ? tmp : "default") + ", " + dataProp.assetPath + ").",{ fileName : "source/funkin/play/stage/Stage.hx", lineNumber : 227, className : "funkin.play.stage.Stage", methodName : "buildStage"}); continue; } if(!isSolidColor) { var _g4 = dataProp.scale; switch(_g4._hx_index) { case 0: var value1 = _g4.v; var this1 = propSprite.scale; var x = value1; var y = value1; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); break; case 1: var values1 = _g4.v; var this2 = propSprite.scale; var x1 = values1[0]; var y1 = values1[1]; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } this2.set_x(x1); this2.set_y(y1); break; } } propSprite.updateHitbox(); propSprite.set_x(dataProp.position[0]); propSprite.set_y(dataProp.position[1]); propSprite.set_alpha(dataProp.alpha); propSprite.set_antialiasing(!dataProp.isPixel); propSprite.scrollFactor.set_x(dataProp.scroll[0]); propSprite.scrollFactor.set_y(dataProp.scroll[1]); propSprite.zIndex = dataProp.zIndex; var _g5 = dataProp.animType; if(_g5 == null) { funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(propSprite,dataProp.animations); if(((propSprite) instanceof funkin_play_stage_Bopper)) { var _g6 = 0; var _g7 = dataProp.animations; while(_g6 < _g7.length) { var propAnim = _g7[_g6]; ++_g6; (js_Boot.__cast(propSprite , funkin_play_stage_Bopper)).setAnimationOffsets(propAnim.name,propAnim.offsets[0],propAnim.offsets[1]); } } } else if(_g5 == "packer") { var _g8 = 0; var _g9 = dataProp.animations; while(_g8 < _g9.length) { var propAnim1 = _g9[_g8]; ++_g8; propSprite.animation.add(propAnim1.name,propAnim1.frameIndices); if(((propSprite) instanceof funkin_play_stage_Bopper)) { (js_Boot.__cast(propSprite , funkin_play_stage_Bopper)).setAnimationOffsets(propAnim1.name,propAnim1.offsets[0],propAnim1.offsets[1]); } } } else { funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(propSprite,dataProp.animations); if(((propSprite) instanceof funkin_play_stage_Bopper)) { var _g10 = 0; var _g11 = dataProp.animations; while(_g10 < _g11.length) { var propAnim2 = _g11[_g10]; ++_g10; (js_Boot.__cast(propSprite , funkin_play_stage_Bopper)).setAnimationOffsets(propAnim2.name,propAnim2.offsets[0],propAnim2.offsets[1]); } } } if(((propSprite) instanceof funkin_play_stage_Bopper)) { var _g12 = 0; var _g13 = dataProp.animations; while(_g12 < _g13.length) { var propAnim3 = _g13[_g12]; ++_g12; (js_Boot.__cast(propSprite , funkin_play_stage_Bopper)).setAnimationOffsets(propAnim3.name,propAnim3.offsets[0],propAnim3.offsets[1]); } if(!((propSprite) instanceof funkin_play_character_BaseCharacter)) { (js_Boot.__cast(propSprite , funkin_play_stage_Bopper)).originalPosition.set_x(dataProp.position[0]); (js_Boot.__cast(propSprite , funkin_play_stage_Bopper)).originalPosition.set_y(dataProp.position[1]); } } if(dataProp.startingAnimation != null) { propSprite.animation.play(dataProp.startingAnimation); } if(!((propSprite) instanceof funkin_play_character_BaseCharacter)) { if(((propSprite) instanceof funkin_play_stage_Bopper)) { this.addBopper(propSprite,dataProp.name); } else { this.addProp(propSprite,dataProp.name); } } } } ,addProp: function(prop,name) { if(name != null) { this.namedProps.h[name] = prop; prop.name = name; } this.add(prop); } ,addBopper: function(bopper,name) { this.boppers.push(bopper); this.addProp(bopper,name); bopper.name = name; } ,refresh: function() { var Order = -1; if(Order == null) { Order = -1; } var order = Order; if(order == null) { order = -1; } var _g = funkin_util_SortUtil.byZIndex; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.group.members.sort(tmp); } ,setShader: function(shader) { this.group.forEachAlive(function(prop) { prop.shader = shader; },false); } ,preAdd: function(Sprite) { if(Sprite == null) { return; } var sprite = Sprite; sprite.set_x(sprite.x + this.x); sprite.set_y(sprite.y + this.y); sprite.set_alpha(sprite.alpha * this.alpha); sprite.set_cameras(this._cameras); if(this.clipRect != null) { var ClipRect = this.clipRect; if(ClipRect == null) { sprite.set_clipRect(null); } else { var X = ClipRect.x - sprite.x + this.x; var Y = ClipRect.y - sprite.y + this.y; var Width = ClipRect.width; var Height = ClipRect.height; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; sprite.set_clipRect(rect); } } } ,debugIconGroup: null ,addCharacter: function(character,charType) { if(character == null) { return; } var stageCharData = null; switch(charType._hx_index) { case 0: this.characters.h["bf"] = character; stageCharData = this._data.characters.bf; character.set_flipX(!character.getDataFlipX()); character.name = "bf"; character.initHealthIcon(false); break; case 1: this.characters.h["dad"] = character; stageCharData = this._data.characters.dad; character.set_flipX(character.getDataFlipX()); character.name = "dad"; character.initHealthIcon(true); break; case 2: this.characters.h["gf"] = character; stageCharData = this._data.characters.gf; character.set_flipX(character.getDataFlipX()); character.name = "gf"; break; default: this.characters.h[character.characterId] = character; } character.resetCharacter(true); if(stageCharData != null) { character.zIndex = stageCharData.zIndex; character.set_x(stageCharData.position[0] - character.get_characterOrigin().x + character.globalOffsets[0]); character.set_y(stageCharData.position[1] - character.get_characterOrigin().y + character.globalOffsets[1]); character.originalPosition.set_x(character.x + character.animOffsets[0]); character.originalPosition.set_y(character.y + character.animOffsets[1]); var finalScale = character.getBaseScale() * stageCharData.scale; character.setScale(finalScale); character.cameraFocusPoint.set_x(character.cameraFocusPoint.x + stageCharData.cameraOffsets[0]); character.cameraFocusPoint.set_y(character.cameraFocusPoint.y + stageCharData.cameraOffsets[1]); } this.add(character); funkin_modding_events_ScriptEventDispatcher.callEvent(character,new funkin_modding_events_ScriptEvent("ADDED",false)); } ,getGirlfriendPosition: function() { var x = this._data.characters.gf.position[0]; var y = this._data.characters.gf.position[1]; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,getBoyfriendPosition: function() { var x = this._data.characters.bf.position[0]; var y = this._data.characters.bf.position[1]; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,getDadPosition: function() { var x = this._data.characters.dad.position[0]; var y = this._data.characters.dad.position[1]; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); } ,getCharacter: function(id) { return this.characters.h[id]; } ,getBoyfriend: function(pop) { if(pop == null) { pop = false; } if(pop) { var boyfriend = this.getCharacter("bf"); this.remove(boyfriend); var _this = this.characters; if(Object.prototype.hasOwnProperty.call(_this.h,"bf")) { delete(_this.h["bf"]); } return boyfriend; } else { return this.getCharacter("bf"); } } ,getPlayer: function(pop) { if(pop == null) { pop = false; } return this.getBoyfriend(pop); } ,getGirlfriend: function(pop) { if(pop == null) { pop = false; } if(pop) { var girlfriend = this.getCharacter("gf"); this.remove(girlfriend); var _this = this.characters; if(Object.prototype.hasOwnProperty.call(_this.h,"gf")) { delete(_this.h["gf"]); } return girlfriend; } else { return this.getCharacter("gf"); } } ,getDad: function(pop) { if(pop == null) { pop = false; } if(pop) { var dad = this.getCharacter("dad"); this.remove(dad); var _this = this.characters; if(Object.prototype.hasOwnProperty.call(_this.h,"dad")) { delete(_this.h["dad"]); } return dad; } else { return this.getCharacter("dad"); } } ,getOpponent: function(pop) { if(pop == null) { pop = false; } return this.getDad(pop); } ,getNamedProp: function(name) { return this.namedProps.h[name]; } ,pause: function() { this.group.forEachAlive(function(prop) { if(prop.animation != null) { var _this = prop.animation; if(_this._curAnim != null) { _this._curAnim.pause(); } } },false); } ,resume: function() { this.group.forEachAlive(function(prop) { if(prop.animation != null) { var _this = prop.animation; if(_this._curAnim != null) { _this._curAnim.paused = false; } } },false); } ,fetchAssetPaths: function() { var result = []; var _g = 0; var _g1 = this._data.props; while(_g < _g1.length) { var dataProp = _g1[_g]; ++_g; result.push(funkin_Paths.image(dataProp.assetPath)); } return result; } ,dispatchToCharacters: function(event) { var charList = funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(this.characters.h)); if(charList.indexOf("dad") != -1) { this.dispatchToCharacter("dad",event); HxOverrides.remove(charList,"dad"); } if(charList.indexOf("bf") != -1) { this.dispatchToCharacter("bf",event); HxOverrides.remove(charList,"bf"); } if(charList.indexOf("gf") != -1) { this.dispatchToCharacter("gf",event); HxOverrides.remove(charList,"gf"); } var _g = 0; while(_g < charList.length) { var characterId = charList[_g]; ++_g; this.dispatchToCharacter(characterId,event); } } ,dispatchToCharacter: function(characterId,event) { var character = this.getCharacter(characterId); if(character != null) { funkin_modding_events_ScriptEventDispatcher.callEvent(character,event); } } ,onDestroy: function(event) { this.kill(); var h = this.namedProps.h; var prop_h = h; var prop_keys = Object.keys(h); var prop_length = prop_keys.length; var prop_current = 0; while(prop_current < prop_length) { var prop = prop_h[prop_keys[prop_current++]]; if(prop != null) { this.remove(prop); prop.kill(); prop.destroy(); } } this.namedProps.h = Object.create(null); var h = this.characters.h; var char_h = h; var char_keys = Object.keys(h); var char_length = char_keys.length; var char_current = 0; while(char_current < char_length) { var char = char_h[char_keys[char_current++]]; if(char != null) { this.remove(char); char.kill(); char.destroy(); } } this.characters.h = Object.create(null); var _g = 0; var _g1 = this.boppers; while(_g < _g1.length) { var bopper = _g1[_g]; ++_g; if(bopper != null) { this.remove(bopper); bopper.kill(); bopper.destroy(); } } this.boppers = []; if(this.group != null) { var sprite = new flixel_group_FlxTypedGroupIterator(this.group.members,null); while(sprite.hasNext()) { var sprite1 = sprite.next(); if(sprite1 != null) { sprite1.kill(); sprite1.destroy(); this.remove(sprite1); } } this.group.clear(); } if(this.debugIconGroup != null && this.debugIconGroup.group != null) { this.debugIconGroup.kill(); } else { this.debugIconGroup = null; } if(this.frameBufferMan != null) { this.frameBufferMan.dispose(); } } ,onStepHit: function(event) { } ,onBeatHit: function(event) { var _g = 0; var _g1 = this.boppers; while(_g < _g1.length) { var bopper = _g1[_g]; ++_g; funkin_modding_events_ScriptEventDispatcher.callEvent(bopper,event); } } ,onUpdate: function(event) { } ,kill: function() { this._skipTransformChildren = true; this.set_alive(false); this.set_exists(false); this._skipTransformChildren = false; if(this.group != null) { this.group.kill(); } } ,remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var sprite = Sprite; sprite.set_x(sprite.x - this.x); sprite.set_y(sprite.y - this.y); sprite.set_cameras(null); if(this.group != null) { this.group.remove(Sprite,Splice); } return Sprite; } ,draw: function() { if(this.frameBufferMan != null) { this.frameBufferMan.lock(); } flixel_group_FlxTypedSpriteGroup.prototype.draw.call(this); if(this.frameBufferMan != null) { this.frameBufferMan.unlock(); } this.frameBuffersUpdated(); } ,setupFrameBuffers: function() { } ,frameBuffersUpdated: function() { } ,grabScreen: function(applyFilters) { if(((flixel_FlxG.camera) instanceof funkin_graphics_FunkinCamera)) { var cam = flixel_FlxG.camera; return cam.grabScreen(applyFilters); } else { flixel_FlxG.log.advanced("cannot grab the screen: the main camera is not grabbable",flixel_system_debug_log_LogStyle.ERROR,true); return null; } } ,toString: function() { return "Stage(" + this.id + ")"; } ,onScriptEvent: function(event) { } ,onPause: function(event) { } ,onResume: function(event) { } ,onSongStart: function(event) { } ,onSongEnd: function(event) { } ,onGameOver: function(event) { } ,onCountdownStart: function(event) { } ,onCountdownStep: function(event) { } ,onCountdownEnd: function(event) { } ,onNoteIncoming: function(event) { } ,onNoteHit: function(event) { } ,onNoteMiss: function(event) { } ,onSongEvent: function(event) { } ,onNoteGhostMiss: function(event) { } ,onSongLoaded: function(event) { } ,onSongRetry: function(event) { } ,__class__: funkin_play_stage_Stage ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{get_camZoom:"get_camZoom",get_stageName:"get_stageName"}) }); var funkin_play_stage_ScriptedStage = function(id) { funkin_play_stage_Stage.call(this,id); }; $hxClasses["funkin.play.stage.ScriptedStage"] = funkin_play_stage_ScriptedStage; funkin_play_stage_ScriptedStage.__name__ = "funkin.play.stage.ScriptedStage"; funkin_play_stage_ScriptedStage.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_play_stage_ScriptedStage.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.play.stage.Stage"); }; funkin_play_stage_ScriptedStage.init = function(clsName,id) { var value = $hxClasses["funkin.play.stage.ScriptedStage"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.play.stage.Stage"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.play.stage.ScriptedStage" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_play_stage_ScriptedStage.__super__ = funkin_play_stage_Stage; funkin_play_stage_ScriptedStage.prototype = $extend(funkin_play_stage_Stage.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedStage"; var superName = "Stage"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,setupFrameBuffers: function() { var fieldName = "setupFrameBuffers"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.setupFrameBuffers.call(this); } } ,setShader: function(shader) { var fieldName = "setShader"; if(this._asc != null) { this._asc.callFunction(fieldName,[shader]); } else { funkin_play_stage_Stage.prototype.setShader.call(this,shader); } } ,resume: function() { var fieldName = "resume"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.resume.call(this); } } ,resetStage: function() { var fieldName = "resetStage"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.resetStage.call(this); } } ,remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite,Splice]); } else { return funkin_play_stage_Stage.prototype.remove.call(this,Sprite,Splice); } } ,refresh: function() { var fieldName = "refresh"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.refresh.call(this); } } ,preAdd: function(Sprite) { var fieldName = "preAdd"; if(this._asc != null) { this._asc.callFunction(fieldName,[Sprite]); } else { funkin_play_stage_Stage.prototype.preAdd.call(this,Sprite); } } ,pause: function() { var fieldName = "pause"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.pause.call(this); } } ,onUpdate: function(event) { var fieldName = "onUpdate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onUpdate.call(this,event); } } ,onStepHit: function(event) { var fieldName = "onStepHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onStepHit.call(this,event); } } ,onSongStart: function(event) { var fieldName = "onSongStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onSongStart.call(this,event); } } ,onSongRetry: function(event) { var fieldName = "onSongRetry"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onSongRetry.call(this,event); } } ,onSongLoaded: function(event) { var fieldName = "onSongLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onSongLoaded.call(this,event); } } ,onSongEvent: function(event) { var fieldName = "onSongEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onSongEvent.call(this,event); } } ,onSongEnd: function(event) { var fieldName = "onSongEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onSongEnd.call(this,event); } } ,onScriptEvent: function(event) { var fieldName = "onScriptEvent"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onScriptEvent.call(this,event); } } ,onResume: function(event) { var fieldName = "onResume"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onResume.call(this,event); } } ,onPause: function(event) { var fieldName = "onPause"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onPause.call(this,event); } } ,onNoteMiss: function(event) { var fieldName = "onNoteMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onNoteMiss.call(this,event); } } ,onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onNoteIncoming.call(this,event); } } ,onNoteHit: function(event) { var fieldName = "onNoteHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onNoteHit.call(this,event); } } ,onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onNoteGhostMiss.call(this,event); } } ,onGameOver: function(event) { var fieldName = "onGameOver"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onGameOver.call(this,event); } } ,onDestroy: function(event) { var fieldName = "onDestroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onDestroy.call(this,event); } } ,onCreate: function(event) { var fieldName = "onCreate"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onCreate.call(this,event); } } ,onCountdownStep: function(event) { var fieldName = "onCountdownStep"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onCountdownStep.call(this,event); } } ,onCountdownStart: function(event) { var fieldName = "onCountdownStart"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onCountdownStart.call(this,event); } } ,onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onCountdownEnd.call(this,event); } } ,onBeatHit: function(event) { var fieldName = "onBeatHit"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.onBeatHit.call(this,event); } } ,kill: function() { var fieldName = "kill"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.kill.call(this); } } ,grabScreen: function(applyFilters) { var fieldName = "grabScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[applyFilters]); } else { return funkin_play_stage_Stage.prototype.grabScreen.call(this,applyFilters); } } ,get_stageName: function() { var fieldName = "get_stageName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_stageName.call(this); } } ,get_camZoom: function() { var fieldName = "get_camZoom"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_camZoom.call(this); } } ,getPlayer: function(pop) { if(pop == null) { pop = false; } var fieldName = "getPlayer"; if(this._asc != null) { return this._asc.callFunction(fieldName,[pop]); } else { return funkin_play_stage_Stage.prototype.getPlayer.call(this,pop); } } ,getOpponent: function(pop) { if(pop == null) { pop = false; } var fieldName = "getOpponent"; if(this._asc != null) { return this._asc.callFunction(fieldName,[pop]); } else { return funkin_play_stage_Stage.prototype.getOpponent.call(this,pop); } } ,getNamedProp: function(name) { var fieldName = "getNamedProp"; if(this._asc != null) { return this._asc.callFunction(fieldName,[name]); } else { return funkin_play_stage_Stage.prototype.getNamedProp.call(this,name); } } ,getGirlfriend: function(pop) { if(pop == null) { pop = false; } var fieldName = "getGirlfriend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[pop]); } else { return funkin_play_stage_Stage.prototype.getGirlfriend.call(this,pop); } } ,getDad: function(pop) { if(pop == null) { pop = false; } var fieldName = "getDad"; if(this._asc != null) { return this._asc.callFunction(fieldName,[pop]); } else { return funkin_play_stage_Stage.prototype.getDad.call(this,pop); } } ,getCharacter: function(id) { var fieldName = "getCharacter"; if(this._asc != null) { return this._asc.callFunction(fieldName,[id]); } else { return funkin_play_stage_Stage.prototype.getCharacter.call(this,id); } } ,getBoyfriend: function(pop) { if(pop == null) { pop = false; } var fieldName = "getBoyfriend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[pop]); } else { return funkin_play_stage_Stage.prototype.getBoyfriend.call(this,pop); } } ,frameBuffersUpdated: function() { var fieldName = "frameBuffersUpdated"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.frameBuffersUpdated.call(this); } } ,fetchAssetPaths: function() { var fieldName = "fetchAssetPaths"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.fetchAssetPaths.call(this); } } ,draw: function() { var fieldName = "draw"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.draw.call(this); } } ,dispatchToCharacters: function(event) { var fieldName = "dispatchToCharacters"; if(this._asc != null) { this._asc.callFunction(fieldName,[event]); } else { funkin_play_stage_Stage.prototype.dispatchToCharacters.call(this,event); } } ,dispatchToCharacter: function(characterId,event) { var fieldName = "dispatchToCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[characterId,event]); } else { funkin_play_stage_Stage.prototype.dispatchToCharacter.call(this,characterId,event); } } ,buildStage: function() { var fieldName = "buildStage"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.buildStage.call(this); } } ,addProp: function(prop,name) { var fieldName = "addProp"; if(this._asc != null) { this._asc.callFunction(fieldName,[prop,name]); } else { funkin_play_stage_Stage.prototype.addProp.call(this,prop,name); } } ,addCharacter: function(character,charType) { var fieldName = "addCharacter"; if(this._asc != null) { this._asc.callFunction(fieldName,[character,charType]); } else { funkin_play_stage_Stage.prototype.addCharacter.call(this,character,charType); } } ,addBopper: function(bopper,name) { var fieldName = "addBopper"; if(this._asc != null) { this._asc.callFunction(fieldName,[bopper,name]); } else { funkin_play_stage_Stage.prototype.addBopper.call(this,bopper,name); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_play_stage_Stage.prototype.toString.call(this); } ,__super_setupFrameBuffers: function() { var fieldName = "setupFrameBuffers"; funkin_play_stage_Stage.prototype.setupFrameBuffers.call(this); } ,__super_setShader: function(shader) { var fieldName = "setShader"; funkin_play_stage_Stage.prototype.setShader.call(this,shader); } ,__super_resume: function() { var fieldName = "resume"; funkin_play_stage_Stage.prototype.resume.call(this); } ,__super_resetStage: function() { var fieldName = "resetStage"; funkin_play_stage_Stage.prototype.resetStage.call(this); } ,__super_remove: function(Sprite,Splice) { if(Splice == null) { Splice = false; } var fieldName = "remove"; return funkin_play_stage_Stage.prototype.remove.call(this,Sprite,Splice); } ,__super_refresh: function() { var fieldName = "refresh"; funkin_play_stage_Stage.prototype.refresh.call(this); } ,__super_preAdd: function(Sprite) { var fieldName = "preAdd"; funkin_play_stage_Stage.prototype.preAdd.call(this,Sprite); } ,__super_pause: function() { var fieldName = "pause"; funkin_play_stage_Stage.prototype.pause.call(this); } ,__super_onUpdate: function(event) { var fieldName = "onUpdate"; funkin_play_stage_Stage.prototype.onUpdate.call(this,event); } ,__super_onStepHit: function(event) { var fieldName = "onStepHit"; funkin_play_stage_Stage.prototype.onStepHit.call(this,event); } ,__super_onSongStart: function(event) { var fieldName = "onSongStart"; funkin_play_stage_Stage.prototype.onSongStart.call(this,event); } ,__super_onSongRetry: function(event) { var fieldName = "onSongRetry"; funkin_play_stage_Stage.prototype.onSongRetry.call(this,event); } ,__super_onSongLoaded: function(event) { var fieldName = "onSongLoaded"; funkin_play_stage_Stage.prototype.onSongLoaded.call(this,event); } ,__super_onSongEvent: function(event) { var fieldName = "onSongEvent"; funkin_play_stage_Stage.prototype.onSongEvent.call(this,event); } ,__super_onSongEnd: function(event) { var fieldName = "onSongEnd"; funkin_play_stage_Stage.prototype.onSongEnd.call(this,event); } ,__super_onScriptEvent: function(event) { var fieldName = "onScriptEvent"; funkin_play_stage_Stage.prototype.onScriptEvent.call(this,event); } ,__super_onResume: function(event) { var fieldName = "onResume"; funkin_play_stage_Stage.prototype.onResume.call(this,event); } ,__super_onPause: function(event) { var fieldName = "onPause"; funkin_play_stage_Stage.prototype.onPause.call(this,event); } ,__super_onNoteMiss: function(event) { var fieldName = "onNoteMiss"; funkin_play_stage_Stage.prototype.onNoteMiss.call(this,event); } ,__super_onNoteIncoming: function(event) { var fieldName = "onNoteIncoming"; funkin_play_stage_Stage.prototype.onNoteIncoming.call(this,event); } ,__super_onNoteHit: function(event) { var fieldName = "onNoteHit"; funkin_play_stage_Stage.prototype.onNoteHit.call(this,event); } ,__super_onNoteGhostMiss: function(event) { var fieldName = "onNoteGhostMiss"; funkin_play_stage_Stage.prototype.onNoteGhostMiss.call(this,event); } ,__super_onGameOver: function(event) { var fieldName = "onGameOver"; funkin_play_stage_Stage.prototype.onGameOver.call(this,event); } ,__super_onDestroy: function(event) { var fieldName = "onDestroy"; funkin_play_stage_Stage.prototype.onDestroy.call(this,event); } ,__super_onCreate: function(event) { var fieldName = "onCreate"; funkin_play_stage_Stage.prototype.onCreate.call(this,event); } ,__super_onCountdownStep: function(event) { var fieldName = "onCountdownStep"; funkin_play_stage_Stage.prototype.onCountdownStep.call(this,event); } ,__super_onCountdownStart: function(event) { var fieldName = "onCountdownStart"; funkin_play_stage_Stage.prototype.onCountdownStart.call(this,event); } ,__super_onCountdownEnd: function(event) { var fieldName = "onCountdownEnd"; funkin_play_stage_Stage.prototype.onCountdownEnd.call(this,event); } ,__super_onBeatHit: function(event) { var fieldName = "onBeatHit"; funkin_play_stage_Stage.prototype.onBeatHit.call(this,event); } ,__super_kill: function() { var fieldName = "kill"; funkin_play_stage_Stage.prototype.kill.call(this); } ,__super_grabScreen: function(applyFilters) { var fieldName = "grabScreen"; return funkin_play_stage_Stage.prototype.grabScreen.call(this,applyFilters); } ,__super_get_stageName: function() { var fieldName = "get_stageName"; return funkin_play_stage_Stage.prototype.get_stageName.call(this); } ,__super_get_camZoom: function() { var fieldName = "get_camZoom"; return funkin_play_stage_Stage.prototype.get_camZoom.call(this); } ,__super_getPlayer: function(pop) { if(pop == null) { pop = false; } var fieldName = "getPlayer"; return funkin_play_stage_Stage.prototype.getPlayer.call(this,pop); } ,__super_getOpponent: function(pop) { if(pop == null) { pop = false; } var fieldName = "getOpponent"; return funkin_play_stage_Stage.prototype.getOpponent.call(this,pop); } ,__super_getNamedProp: function(name) { var fieldName = "getNamedProp"; return funkin_play_stage_Stage.prototype.getNamedProp.call(this,name); } ,__super_getGirlfriend: function(pop) { if(pop == null) { pop = false; } var fieldName = "getGirlfriend"; return funkin_play_stage_Stage.prototype.getGirlfriend.call(this,pop); } ,__super_getDad: function(pop) { if(pop == null) { pop = false; } var fieldName = "getDad"; return funkin_play_stage_Stage.prototype.getDad.call(this,pop); } ,__super_getCharacter: function(id) { var fieldName = "getCharacter"; return funkin_play_stage_Stage.prototype.getCharacter.call(this,id); } ,__super_getBoyfriend: function(pop) { if(pop == null) { pop = false; } var fieldName = "getBoyfriend"; return funkin_play_stage_Stage.prototype.getBoyfriend.call(this,pop); } ,__super_frameBuffersUpdated: function() { var fieldName = "frameBuffersUpdated"; funkin_play_stage_Stage.prototype.frameBuffersUpdated.call(this); } ,__super_fetchAssetPaths: function() { var fieldName = "fetchAssetPaths"; return funkin_play_stage_Stage.prototype.fetchAssetPaths.call(this); } ,__super_draw: function() { var fieldName = "draw"; funkin_play_stage_Stage.prototype.draw.call(this); } ,__super_dispatchToCharacters: function(event) { var fieldName = "dispatchToCharacters"; funkin_play_stage_Stage.prototype.dispatchToCharacters.call(this,event); } ,__super_dispatchToCharacter: function(characterId,event) { var fieldName = "dispatchToCharacter"; funkin_play_stage_Stage.prototype.dispatchToCharacter.call(this,characterId,event); } ,__super_buildStage: function() { var fieldName = "buildStage"; funkin_play_stage_Stage.prototype.buildStage.call(this); } ,__super_addProp: function(prop,name) { var fieldName = "addProp"; funkin_play_stage_Stage.prototype.addProp.call(this,prop,name); } ,__super_addCharacter: function(character,charType) { var fieldName = "addCharacter"; funkin_play_stage_Stage.prototype.addCharacter.call(this,character,charType); } ,__super_addBopper: function(bopper,name) { var fieldName = "addBopper"; funkin_play_stage_Stage.prototype.addBopper.call(this,bopper,name); } ,update: function(elapsed) { var fieldName = "update"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_stage_Stage.prototype.update.call(this,elapsed); } } ,set_y: function(Value) { var fieldName = "set_y"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_y.call(this,Value); } } ,set_x: function(Value) { var fieldName = "set_x"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_x.call(this,Value); } } ,set_width: function(Value) { var fieldName = "set_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_width.call(this,Value); } } ,set_visible: function(Value) { var fieldName = "set_visible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_visible.call(this,Value); } } ,set_solid: function(Value) { var fieldName = "set_solid"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_solid.call(this,Value); } } ,set_pixels: function(Value) { var fieldName = "set_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_pixels.call(this,Value); } } ,set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_pixelPerfectRender.call(this,Value); } } ,set_moves: function(Value) { var fieldName = "set_moves"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_moves.call(this,Value); } } ,set_immovable: function(Value) { var fieldName = "set_immovable"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_immovable.call(this,Value); } } ,set_height: function(Value) { var fieldName = "set_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_height.call(this,Value); } } ,set_frames: function(Frames) { var fieldName = "set_frames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames]); } else { return funkin_play_stage_Stage.prototype.set_frames.call(this,Frames); } } ,set_frame: function(Value) { var fieldName = "set_frame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_frame.call(this,Value); } } ,set_flipY: function(Value) { var fieldName = "set_flipY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_flipY.call(this,Value); } } ,set_flipX: function(Value) { var fieldName = "set_flipX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_flipX.call(this,Value); } } ,set_facing: function(Value) { var fieldName = "set_facing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_facing.call(this,Value); } } ,set_exists: function(Value) { var fieldName = "set_exists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_exists.call(this,Value); } } ,set_color: function(Value) { var fieldName = "set_color"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_color.call(this,Value); } } ,set_clipRect: function(rect) { var fieldName = "set_clipRect"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_stage_Stage.prototype.set_clipRect.call(this,rect); } } ,set_cameras: function(Value) { var fieldName = "set_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_cameras.call(this,Value); } } ,set_camera: function(Value) { var fieldName = "set_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_camera.call(this,Value); } } ,set_blend: function(Value) { var fieldName = "set_blend"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_blend.call(this,Value); } } ,set_angle: function(Value) { var fieldName = "set_angle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_angle.call(this,Value); } } ,set_alpha: function(Value) { var fieldName = "set_alpha"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_alpha.call(this,Value); } } ,set_alive: function(Value) { var fieldName = "set_alive"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_alive.call(this,Value); } } ,set_active: function(Value) { var fieldName = "set_active"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Value]); } else { return funkin_play_stage_Stage.prototype.set_active.call(this,Value); } } ,setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { funkin_play_stage_Stage.prototype.setPosition.call(this,X,Y); } } ,revive: function() { var fieldName = "revive"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.revive.call(this); } } ,reset: function(X,Y) { var fieldName = "reset"; if(this._asc != null) { this._asc.callFunction(fieldName,[X,Y]); } else { funkin_play_stage_Stage.prototype.reset.call(this,X,Y); } } ,replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Color,NewColor,FetchPositions]); } else { return funkin_play_stage_Stage.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } } ,pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,Mask,Camera]); } else { return funkin_play_stage_Stage.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } } ,overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point,InScreenSpace,Camera]); } else { return funkin_play_stage_Stage.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } } ,makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Width,Height,Color,Unique,Key]); } else { return funkin_play_stage_Stage.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } } ,loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key]); } else { return funkin_play_stage_Stage.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } } ,loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_stage_Stage.prototype.loadGraphicFromSprite.call(this,Sprite); } } ,loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Graphic,Animated,Width,Height,Unique,Key]); } else { return funkin_play_stage_Stage.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } } ,isOnScreen: function(Camera) { var fieldName = "isOnScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Camera]); } else { return funkin_play_stage_Stage.prototype.isOnScreen.call(this,Camera); } } ,insert: function(Position,Sprite) { var fieldName = "insert"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Position,Sprite]); } else { return funkin_play_stage_Stage.prototype.insert.call(this,Position,Sprite); } } ,initVars: function() { var fieldName = "initVars"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.initVars.call(this); } } ,get_width: function() { var fieldName = "get_width"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_width.call(this); } } ,get_pixels: function() { var fieldName = "get_pixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_pixels.call(this); } } ,get_height: function() { var fieldName = "get_height"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_height.call(this); } } ,findMinYHelper: function() { var fieldName = "findMinYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMinYHelper.call(this); } } ,findMinY: function() { var fieldName = "findMinY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMinY.call(this); } } ,findMinXHelper: function() { var fieldName = "findMinXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMinXHelper.call(this); } } ,findMinX: function() { var fieldName = "findMinX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMinX.call(this); } } ,findMaxYHelper: function() { var fieldName = "findMaxYHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMaxYHelper.call(this); } } ,findMaxY: function() { var fieldName = "findMaxY"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMaxY.call(this); } } ,findMaxXHelper: function() { var fieldName = "findMaxXHelper"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMaxXHelper.call(this); } } ,findMaxX: function() { var fieldName = "findMaxX"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.findMaxX.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.destroy.call(this); } } ,clone: function() { var fieldName = "clone"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.clone.call(this); } } ,add: function(Sprite) { var fieldName = "add"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Sprite]); } else { return funkin_play_stage_Stage.prototype.add.call(this,Sprite); } } ,__super_update: function(elapsed) { var fieldName = "update"; funkin_play_stage_Stage.prototype.update.call(this,elapsed); } ,__super_set_y: function(Value) { var fieldName = "set_y"; return funkin_play_stage_Stage.prototype.set_y.call(this,Value); } ,__super_set_x: function(Value) { var fieldName = "set_x"; return funkin_play_stage_Stage.prototype.set_x.call(this,Value); } ,__super_set_width: function(Value) { var fieldName = "set_width"; return funkin_play_stage_Stage.prototype.set_width.call(this,Value); } ,__super_set_visible: function(Value) { var fieldName = "set_visible"; return funkin_play_stage_Stage.prototype.set_visible.call(this,Value); } ,__super_set_solid: function(Value) { var fieldName = "set_solid"; return funkin_play_stage_Stage.prototype.set_solid.call(this,Value); } ,__super_set_pixels: function(Value) { var fieldName = "set_pixels"; return funkin_play_stage_Stage.prototype.set_pixels.call(this,Value); } ,__super_set_pixelPerfectRender: function(Value) { var fieldName = "set_pixelPerfectRender"; return funkin_play_stage_Stage.prototype.set_pixelPerfectRender.call(this,Value); } ,__super_set_moves: function(Value) { var fieldName = "set_moves"; return funkin_play_stage_Stage.prototype.set_moves.call(this,Value); } ,__super_set_immovable: function(Value) { var fieldName = "set_immovable"; return funkin_play_stage_Stage.prototype.set_immovable.call(this,Value); } ,__super_set_height: function(Value) { var fieldName = "set_height"; return funkin_play_stage_Stage.prototype.set_height.call(this,Value); } ,__super_set_frames: function(Frames) { var fieldName = "set_frames"; return funkin_play_stage_Stage.prototype.set_frames.call(this,Frames); } ,__super_set_frame: function(Value) { var fieldName = "set_frame"; return funkin_play_stage_Stage.prototype.set_frame.call(this,Value); } ,__super_set_flipY: function(Value) { var fieldName = "set_flipY"; return funkin_play_stage_Stage.prototype.set_flipY.call(this,Value); } ,__super_set_flipX: function(Value) { var fieldName = "set_flipX"; return funkin_play_stage_Stage.prototype.set_flipX.call(this,Value); } ,__super_set_facing: function(Value) { var fieldName = "set_facing"; return funkin_play_stage_Stage.prototype.set_facing.call(this,Value); } ,__super_set_exists: function(Value) { var fieldName = "set_exists"; return funkin_play_stage_Stage.prototype.set_exists.call(this,Value); } ,__super_set_color: function(Value) { var fieldName = "set_color"; return funkin_play_stage_Stage.prototype.set_color.call(this,Value); } ,__super_set_clipRect: function(rect) { var fieldName = "set_clipRect"; return funkin_play_stage_Stage.prototype.set_clipRect.call(this,rect); } ,__super_set_cameras: function(Value) { var fieldName = "set_cameras"; return funkin_play_stage_Stage.prototype.set_cameras.call(this,Value); } ,__super_set_camera: function(Value) { var fieldName = "set_camera"; return funkin_play_stage_Stage.prototype.set_camera.call(this,Value); } ,__super_set_blend: function(Value) { var fieldName = "set_blend"; return funkin_play_stage_Stage.prototype.set_blend.call(this,Value); } ,__super_set_angle: function(Value) { var fieldName = "set_angle"; return funkin_play_stage_Stage.prototype.set_angle.call(this,Value); } ,__super_set_alpha: function(Value) { var fieldName = "set_alpha"; return funkin_play_stage_Stage.prototype.set_alpha.call(this,Value); } ,__super_set_alive: function(Value) { var fieldName = "set_alive"; return funkin_play_stage_Stage.prototype.set_alive.call(this,Value); } ,__super_set_active: function(Value) { var fieldName = "set_active"; return funkin_play_stage_Stage.prototype.set_active.call(this,Value); } ,__super_setPosition: function(X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "setPosition"; funkin_play_stage_Stage.prototype.setPosition.call(this,X,Y); } ,__super_revive: function() { var fieldName = "revive"; funkin_play_stage_Stage.prototype.revive.call(this); } ,__super_reset: function(X,Y) { var fieldName = "reset"; funkin_play_stage_Stage.prototype.reset.call(this,X,Y); } ,__super_replaceColor: function(Color,NewColor,FetchPositions) { if(FetchPositions == null) { FetchPositions = false; } var fieldName = "replaceColor"; return funkin_play_stage_Stage.prototype.replaceColor.call(this,Color,NewColor,FetchPositions); } ,__super_pixelsOverlapPoint: function(point,Mask,Camera) { if(Mask == null) { Mask = 255; } var fieldName = "pixelsOverlapPoint"; return funkin_play_stage_Stage.prototype.pixelsOverlapPoint.call(this,point,Mask,Camera); } ,__super_overlapsPoint: function(point,InScreenSpace,Camera) { if(InScreenSpace == null) { InScreenSpace = false; } var fieldName = "overlapsPoint"; return funkin_play_stage_Stage.prototype.overlapsPoint.call(this,point,InScreenSpace,Camera); } ,__super_makeGraphic: function(Width,Height,Color,Unique,Key) { if(Unique == null) { Unique = false; } if(Color == null) { Color = -1; } var fieldName = "makeGraphic"; return funkin_play_stage_Stage.prototype.makeGraphic.call(this,Width,Height,Color,Unique,Key); } ,__super_loadRotatedGraphic: function(Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Frame == null) { Frame = -1; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedGraphic"; return funkin_play_stage_Stage.prototype.loadRotatedGraphic.call(this,Graphic,Rotations,Frame,AntiAliasing,AutoBuffer,Key); } ,__super_loadGraphicFromSprite: function(Sprite) { var fieldName = "loadGraphicFromSprite"; return funkin_play_stage_Stage.prototype.loadGraphicFromSprite.call(this,Sprite); } ,__super_loadGraphic: function(Graphic,Animated,Width,Height,Unique,Key) { if(Unique == null) { Unique = false; } if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Animated == null) { Animated = false; } var fieldName = "loadGraphic"; return funkin_play_stage_Stage.prototype.loadGraphic.call(this,Graphic,Animated,Width,Height,Unique,Key); } ,__super_isOnScreen: function(Camera) { var fieldName = "isOnScreen"; return funkin_play_stage_Stage.prototype.isOnScreen.call(this,Camera); } ,__super_insert: function(Position,Sprite) { var fieldName = "insert"; return funkin_play_stage_Stage.prototype.insert.call(this,Position,Sprite); } ,__super_initVars: function() { var fieldName = "initVars"; funkin_play_stage_Stage.prototype.initVars.call(this); } ,__super_get_width: function() { var fieldName = "get_width"; return funkin_play_stage_Stage.prototype.get_width.call(this); } ,__super_get_pixels: function() { var fieldName = "get_pixels"; return funkin_play_stage_Stage.prototype.get_pixels.call(this); } ,__super_get_height: function() { var fieldName = "get_height"; return funkin_play_stage_Stage.prototype.get_height.call(this); } ,__super_findMinYHelper: function() { var fieldName = "findMinYHelper"; return funkin_play_stage_Stage.prototype.findMinYHelper.call(this); } ,__super_findMinY: function() { var fieldName = "findMinY"; return funkin_play_stage_Stage.prototype.findMinY.call(this); } ,__super_findMinXHelper: function() { var fieldName = "findMinXHelper"; return funkin_play_stage_Stage.prototype.findMinXHelper.call(this); } ,__super_findMinX: function() { var fieldName = "findMinX"; return funkin_play_stage_Stage.prototype.findMinX.call(this); } ,__super_findMaxYHelper: function() { var fieldName = "findMaxYHelper"; return funkin_play_stage_Stage.prototype.findMaxYHelper.call(this); } ,__super_findMaxY: function() { var fieldName = "findMaxY"; return funkin_play_stage_Stage.prototype.findMaxY.call(this); } ,__super_findMaxXHelper: function() { var fieldName = "findMaxXHelper"; return funkin_play_stage_Stage.prototype.findMaxXHelper.call(this); } ,__super_findMaxX: function() { var fieldName = "findMaxX"; return funkin_play_stage_Stage.prototype.findMaxX.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_play_stage_Stage.prototype.destroy.call(this); } ,__super_clone: function() { var fieldName = "clone"; return funkin_play_stage_Stage.prototype.clone.call(this); } ,__super_add: function(Sprite) { var fieldName = "add"; return funkin_play_stage_Stage.prototype.add.call(this,Sprite); } ,updateHitbox: function() { var fieldName = "updateHitbox"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.updateHitbox.call(this); } } ,updateFramePixels: function() { var fieldName = "updateFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.updateFramePixels.call(this); } } ,updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_stage_Stage.prototype.updateAnimation.call(this,elapsed); } } ,transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,result]); } else { return funkin_play_stage_Stage.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } } ,transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera,result]); } else { return funkin_play_stage_Stage.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } } ,transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera,result]); } else { return funkin_play_stage_Stage.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } } ,set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Stage.prototype.set_useFramePixels.call(this,value); } } ,set_graphic: function(value) { var fieldName = "set_graphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Stage.prototype.set_graphic.call(this,value); } } ,set_antialiasing: function(value) { var fieldName = "set_antialiasing"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Stage.prototype.set_antialiasing.call(this,value); } } ,setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_stage_Stage.prototype.setGraphicSize.call(this,width,height); } } ,setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frames,saveAnimations]); } else { return funkin_play_stage_Stage.prototype.setFrames.call(this,Frames,saveAnimations); } } ,setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; if(this._asc != null) { this._asc.callFunction(fieldName,[redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset]); } else { funkin_play_stage_Stage.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } } ,loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; if(this._asc != null) { return this._asc.callFunction(fieldName,[Frame,Rotations,AntiAliasing,AutoBuffer]); } else { return funkin_play_stage_Stage.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } } ,isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Stage.prototype.isSimpleRenderBlit.call(this,camera); } } ,isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Stage.prototype.isSimpleRender.call(this,camera); } } ,graphicLoaded: function() { var fieldName = "graphicLoaded"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.graphicLoaded.call(this); } } ,get_numFrames: function() { var fieldName = "get_numFrames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_numFrames.call(this); } } ,getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect,camera]); } else { return funkin_play_stage_Stage.prototype.getScreenBounds.call(this,newRect,camera); } } ,getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; if(this._asc != null) { return this._asc.callFunction(fieldName,[newRect]); } else { return funkin_play_stage_Stage.prototype.getRotatedBounds.call(this,newRect); } } ,getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; if(this._asc != null) { return this._asc.callFunction(fieldName,[screenPoint,camera]); } else { return funkin_play_stage_Stage.prototype.getPixelAtScreen.call(this,screenPoint,camera); } } ,getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[worldPoint,camera]); } else { return funkin_play_stage_Stage.prototype.getPixelAt.call(this,worldPoint,camera); } } ,getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_stage_Stage.prototype.getGraphicMidpoint.call(this,point); } } ,drawSimple: function(camera) { var fieldName = "drawSimple"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_stage_Stage.prototype.drawSimple.call(this,camera); } } ,drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[Force]); } else { funkin_play_stage_Stage.prototype.drawFrame.call(this,Force); } } ,drawComplex: function(camera) { var fieldName = "drawComplex"; if(this._asc != null) { this._asc.callFunction(fieldName,[camera]); } else { funkin_play_stage_Stage.prototype.drawComplex.call(this,camera); } } ,checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_play_stage_Stage.prototype.checkEmptyFrame.call(this); } } ,centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; if(this._asc != null) { this._asc.callFunction(fieldName,[AdjustPosition]); } else { funkin_play_stage_Stage.prototype.centerOffsets.call(this,AdjustPosition); } } ,__super_updateHitbox: function() { var fieldName = "updateHitbox"; funkin_play_stage_Stage.prototype.updateHitbox.call(this); } ,__super_updateFramePixels: function() { var fieldName = "updateFramePixels"; return funkin_play_stage_Stage.prototype.updateFramePixels.call(this); } ,__super_updateColorTransform: function() { var fieldName = "updateColorTransform"; } ,__super_updateAnimation: function(elapsed) { var fieldName = "updateAnimation"; funkin_play_stage_Stage.prototype.updateAnimation.call(this,elapsed); } ,__super_transformWorldToPixelsSimple: function(worldPoint,result) { var fieldName = "transformWorldToPixelsSimple"; return funkin_play_stage_Stage.prototype.transformWorldToPixelsSimple.call(this,worldPoint,result); } ,__super_transformWorldToPixels: function(worldPoint,camera,result) { var fieldName = "transformWorldToPixels"; return funkin_play_stage_Stage.prototype.transformWorldToPixels.call(this,worldPoint,camera,result); } ,__super_transformScreenToPixels: function(screenPoint,camera,result) { var fieldName = "transformScreenToPixels"; return funkin_play_stage_Stage.prototype.transformScreenToPixels.call(this,screenPoint,camera,result); } ,__super_stamp: function(Brush,X,Y) { if(Y == null) { Y = 0; } if(X == null) { X = 0; } var fieldName = "stamp"; var X1 = X; var Y1 = Y; } ,__super_set_useFramePixels: function(value) { var fieldName = "set_useFramePixels"; return funkin_play_stage_Stage.prototype.set_useFramePixels.call(this,value); } ,__super_set_graphic: function(value) { var fieldName = "set_graphic"; return funkin_play_stage_Stage.prototype.set_graphic.call(this,value); } ,__super_set_antialiasing: function(value) { var fieldName = "set_antialiasing"; return funkin_play_stage_Stage.prototype.set_antialiasing.call(this,value); } ,__super_setGraphicSize: function(width,height) { if(height == null) { height = 0.0; } if(width == null) { width = 0.0; } var fieldName = "setGraphicSize"; funkin_play_stage_Stage.prototype.setGraphicSize.call(this,width,height); } ,__super_setFrames: function(Frames,saveAnimations) { if(saveAnimations == null) { saveAnimations = true; } var fieldName = "setFrames"; return funkin_play_stage_Stage.prototype.setFrames.call(this,Frames,saveAnimations); } ,__super_setColorTransform: function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) { alphaOffset = 0.0; } if(blueOffset == null) { blueOffset = 0.0; } if(greenOffset == null) { greenOffset = 0.0; } if(redOffset == null) { redOffset = 0.0; } if(alphaMultiplier == null) { alphaMultiplier = 1.0; } if(blueMultiplier == null) { blueMultiplier = 1.0; } if(greenMultiplier == null) { greenMultiplier = 1.0; } if(redMultiplier == null) { redMultiplier = 1.0; } var fieldName = "setColorTransform"; funkin_play_stage_Stage.prototype.setColorTransform.call(this,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset); } ,__super_resetHelpers: function() { var fieldName = "resetHelpers"; } ,__super_loadRotatedFrame: function(Frame,Rotations,AntiAliasing,AutoBuffer) { if(AutoBuffer == null) { AutoBuffer = false; } if(AntiAliasing == null) { AntiAliasing = false; } if(Rotations == null) { Rotations = 16; } var fieldName = "loadRotatedFrame"; return funkin_play_stage_Stage.prototype.loadRotatedFrame.call(this,Frame,Rotations,AntiAliasing,AutoBuffer); } ,__super_isSimpleRenderBlit: function(camera) { var fieldName = "isSimpleRenderBlit"; return funkin_play_stage_Stage.prototype.isSimpleRenderBlit.call(this,camera); } ,__super_isSimpleRender: function(camera) { var fieldName = "isSimpleRender"; return funkin_play_stage_Stage.prototype.isSimpleRender.call(this,camera); } ,__super_graphicLoaded: function() { var fieldName = "graphicLoaded"; funkin_play_stage_Stage.prototype.graphicLoaded.call(this); } ,__super_get_numFrames: function() { var fieldName = "get_numFrames"; return funkin_play_stage_Stage.prototype.get_numFrames.call(this); } ,__super_getScreenBounds: function(newRect,camera) { var fieldName = "getScreenBounds"; return funkin_play_stage_Stage.prototype.getScreenBounds.call(this,newRect,camera); } ,__super_getRotatedBounds: function(newRect) { var fieldName = "getRotatedBounds"; return funkin_play_stage_Stage.prototype.getRotatedBounds.call(this,newRect); } ,__super_getPixelAtScreen: function(screenPoint,camera) { var fieldName = "getPixelAtScreen"; return funkin_play_stage_Stage.prototype.getPixelAtScreen.call(this,screenPoint,camera); } ,__super_getPixelAt: function(worldPoint,camera) { var fieldName = "getPixelAt"; return funkin_play_stage_Stage.prototype.getPixelAt.call(this,worldPoint,camera); } ,__super_getGraphicMidpoint: function(point) { var fieldName = "getGraphicMidpoint"; return funkin_play_stage_Stage.prototype.getGraphicMidpoint.call(this,point); } ,__super_drawSimple: function(camera) { var fieldName = "drawSimple"; funkin_play_stage_Stage.prototype.drawSimple.call(this,camera); } ,__super_drawFrame: function(Force) { if(Force == null) { Force = false; } var fieldName = "drawFrame"; funkin_play_stage_Stage.prototype.drawFrame.call(this,Force); } ,__super_drawComplex: function(camera) { var fieldName = "drawComplex"; funkin_play_stage_Stage.prototype.drawComplex.call(this,camera); } ,__super_checkEmptyFrame: function() { var fieldName = "checkEmptyFrame"; funkin_play_stage_Stage.prototype.checkEmptyFrame.call(this); } ,__super_centerOffsets: function(AdjustPosition) { if(AdjustPosition == null) { AdjustPosition = false; } var fieldName = "centerOffsets"; funkin_play_stage_Stage.prototype.centerOffsets.call(this,AdjustPosition); } ,__super_calcFrame: function(force) { if(force == null) { force = false; } var fieldName = "calcFrame"; var RunOnCpp = force; } ,updateMotion: function(elapsed) { var fieldName = "updateMotion"; if(this._asc != null) { this._asc.callFunction(fieldName,[elapsed]); } else { funkin_play_stage_Stage.prototype.updateMotion.call(this,elapsed); } } ,set_path: function(path) { var fieldName = "set_path"; if(this._asc != null) { return this._asc.callFunction(fieldName,[path]); } else { return funkin_play_stage_Stage.prototype.set_path.call(this,path); } } ,set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Stage.prototype.set_collisonXDrag.call(this,value); } } ,set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; if(this._asc != null) { return this._asc.callFunction(fieldName,[value]); } else { return funkin_play_stage_Stage.prototype.set_allowCollisions.call(this,value); } } ,setSize: function(width,height) { var fieldName = "setSize"; if(this._asc != null) { this._asc.callFunction(fieldName,[width,height]); } else { funkin_play_stage_Stage.prototype.setSize.call(this,width,height); } } ,overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; if(this._asc != null) { return this._asc.callFunction(fieldName,[x,y,objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_stage_Stage.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } } ,overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[objectOrGroup,inScreenSpace,camera]); } else { return funkin_play_stage_Stage.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } } ,isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Stage.prototype.isPixelPerfectRender.call(this,camera); } } ,hurt: function(damage) { var fieldName = "hurt"; if(this._asc != null) { this._asc.callFunction(fieldName,[damage]); } else { funkin_play_stage_Stage.prototype.hurt.call(this,damage); } } ,get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_collisonXDrag.call(this); } } ,getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result,camera]); } else { return funkin_play_stage_Stage.prototype.getScreenPosition.call(this,result,camera); } } ,getPosition: function(result) { var fieldName = "getPosition"; if(this._asc != null) { return this._asc.callFunction(fieldName,[result]); } else { return funkin_play_stage_Stage.prototype.getPosition.call(this,result); } } ,getMidpoint: function(point) { var fieldName = "getMidpoint"; if(this._asc != null) { return this._asc.callFunction(fieldName,[point]); } else { return funkin_play_stage_Stage.prototype.getMidpoint.call(this,point); } } ,getHitbox: function(rect) { var fieldName = "getHitbox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[rect]); } else { return funkin_play_stage_Stage.prototype.getHitbox.call(this,rect); } } ,getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; if(this._asc != null) { return this._asc.callFunction(fieldName,[camera]); } else { return funkin_play_stage_Stage.prototype.getBoundingBox.call(this,camera); } } ,__super_updateMotion: function(elapsed) { var fieldName = "updateMotion"; funkin_play_stage_Stage.prototype.updateMotion.call(this,elapsed); } ,__super_set_path: function(path) { var fieldName = "set_path"; return funkin_play_stage_Stage.prototype.set_path.call(this,path); } ,__super_set_collisonXDrag: function(value) { var fieldName = "set_collisonXDrag"; return funkin_play_stage_Stage.prototype.set_collisonXDrag.call(this,value); } ,__super_set_allowCollisions: function(value) { var fieldName = "set_allowCollisions"; return funkin_play_stage_Stage.prototype.set_allowCollisions.call(this,value); } ,__super_setSize: function(width,height) { var fieldName = "setSize"; funkin_play_stage_Stage.prototype.setSize.call(this,width,height); } ,__super_overlapsAt: function(x,y,objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlapsAt"; return funkin_play_stage_Stage.prototype.overlapsAt.call(this,x,y,objectOrGroup,inScreenSpace,camera); } ,__super_overlaps: function(objectOrGroup,inScreenSpace,camera) { if(inScreenSpace == null) { inScreenSpace = false; } var fieldName = "overlaps"; return funkin_play_stage_Stage.prototype.overlaps.call(this,objectOrGroup,inScreenSpace,camera); } ,__super_isPixelPerfectRender: function(camera) { var fieldName = "isPixelPerfectRender"; return funkin_play_stage_Stage.prototype.isPixelPerfectRender.call(this,camera); } ,__super_hurt: function(damage) { var fieldName = "hurt"; funkin_play_stage_Stage.prototype.hurt.call(this,damage); } ,__super_get_collisonXDrag: function() { var fieldName = "get_collisonXDrag"; return funkin_play_stage_Stage.prototype.get_collisonXDrag.call(this); } ,__super_getScreenPosition: function(result,camera) { var fieldName = "getScreenPosition"; return funkin_play_stage_Stage.prototype.getScreenPosition.call(this,result,camera); } ,__super_getPosition: function(result) { var fieldName = "getPosition"; return funkin_play_stage_Stage.prototype.getPosition.call(this,result); } ,__super_getMidpoint: function(point) { var fieldName = "getMidpoint"; return funkin_play_stage_Stage.prototype.getMidpoint.call(this,point); } ,__super_getHitbox: function(rect) { var fieldName = "getHitbox"; return funkin_play_stage_Stage.prototype.getHitbox.call(this,rect); } ,__super_getBoundingBox: function(camera) { var fieldName = "getBoundingBox"; return funkin_play_stage_Stage.prototype.getBoundingBox.call(this,camera); } ,get_cameras: function() { var fieldName = "get_cameras"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_cameras.call(this); } } ,get_camera: function() { var fieldName = "get_camera"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_play_stage_Stage.prototype.get_camera.call(this); } } ,__super_get_cameras: function() { var fieldName = "get_cameras"; return funkin_play_stage_Stage.prototype.get_cameras.call(this); } ,__super_get_camera: function() { var fieldName = "get_camera"; return funkin_play_stage_Stage.prototype.get_camera.call(this); } ,__class__: funkin_play_stage_ScriptedStage }); var funkin_save_Save = function(data) { if(data == null) { this.data = funkin_save_Save.getDefault(); } else { this.data = data; } this.updateVersionToLatest(); }; $hxClasses["funkin.save.Save"] = funkin_save_Save; funkin_save_Save.__name__ = "funkin.save.Save"; funkin_save_Save.__properties__ = {get_instance:"get_instance"}; funkin_save_Save.get_instance = function() { if(funkin_save_Save._instance == null) { funkin_save_Save._instance = new funkin_save_Save(flixel_FlxG.save.data); } return funkin_save_Save._instance; }; funkin_save_Save.load = function() { haxe_Log.trace("[SAVE] Loading save...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 46, className : "funkin.save.Save", methodName : "load"}); funkin_save_Save.loadFromSlot(1); }; funkin_save_Save.getDefault = function() { var tmp = { levels : new haxe_ds_StringMap(), songs : new haxe_ds_StringMap()}; return { version : funkin_save_Save.SAVE_DATA_VERSION, volume : 1.0, mute : false, api : { newgrounds : { sessionId : null}}, scores : tmp, favoriteSongs : [], options : { naughtyness : true, downscroll : false, flashingLights : true, zoomCamera : true, debugDisplay : false, autoPause : true, inputOffset : 0, audioVisualOffset : 0, controls : { p1 : { keyboard : { }, gamepad : { }}, p2 : { keyboard : { }, gamepad : { }}}}, mods : { enabledMods : [], modOptions : new haxe_ds_StringMap()}, optionsChartEditor : { previousFiles : [], noteQuant : 3, chartEditorLiveInputStyle : funkin_ui_debug_charting_ChartEditorLiveInputStyle.None, theme : funkin_ui_debug_charting_ChartEditorTheme.Light, playtestStartTime : false, downscroll : false, metronomeVolume : 1.0, hitsoundVolumePlayer : 1.0, hitsoundVolumeOpponent : 1.0, themeMusic : true}}; }; funkin_save_Save.loadFromSlot = function(slot) { haxe_Log.trace("[SAVE] Loading save from slot " + slot + "...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 776, className : "funkin.save.Save", methodName : "loadFromSlot"}); funkin_util_SerializerUtil.initSerializer(); flixel_FlxG.save.bind("" + funkin_save_Save.SAVE_NAME + slot,funkin_save_Save.SAVE_PATH); if(flixel_FlxG.save.isEmpty()) { haxe_Log.trace("[SAVE] Save data is empty, checking for legacy save data...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 785, className : "funkin.save.Save", methodName : "loadFromSlot"}); var legacySaveData = funkin_save_Save.fetchLegacySaveData(); if(legacySaveData != null) { haxe_Log.trace("[SAVE] Found legacy save data, converting...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 789, className : "funkin.save.Save", methodName : "loadFromSlot"}); var gameSave = funkin_save_migrator_SaveDataMigrator.migrateFromLegacy(legacySaveData); flixel_FlxG.save.mergeData(gameSave.data,true); } else { haxe_Log.trace("[SAVE] No legacy save data found.",{ fileName : "source/funkin/save/Save.hx", lineNumber : 795, className : "funkin.save.Save", methodName : "loadFromSlot"}); var gameSave = new funkin_save_Save(); flixel_FlxG.save.mergeData(gameSave.data,true); } } else { haxe_Log.trace("[SAVE] Found existing save data.",{ fileName : "source/funkin/save/Save.hx", lineNumber : 802, className : "funkin.save.Save", methodName : "loadFromSlot"}); var gameSave = funkin_save_migrator_SaveDataMigrator.migrate(flixel_FlxG.save.data); flixel_FlxG.save.mergeData(gameSave.data,true); } }; funkin_save_Save.archiveBadSaveData = function(data) { var RECOVERY_SLOT_START = 1000; return funkin_save_Save.writeToAvailableSlot(RECOVERY_SLOT_START,data); }; funkin_save_Save.debug_queryBadSaveData = function() { var RECOVERY_SLOT_START = 1000; var RECOVERY_SLOT_END = 1100; var firstBadSaveData = funkin_save_Save.querySlotRange(RECOVERY_SLOT_START,RECOVERY_SLOT_END); if(firstBadSaveData > 0) { haxe_Log.trace("[SAVE] Found bad save data in slot " + firstBadSaveData + "!",{ fileName : "source/funkin/save/Save.hx", lineNumber : 824, className : "funkin.save.Save", methodName : "debug_queryBadSaveData"}); haxe_Log.trace("We should look into recovery...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 825, className : "funkin.save.Save", methodName : "debug_queryBadSaveData"}); haxe_Log.trace(JSON.stringify(funkin_save_Save.fetchFromSlotRaw(firstBadSaveData)),{ fileName : "source/funkin/save/Save.hx", lineNumber : 827, className : "funkin.save.Save", methodName : "debug_queryBadSaveData"}); } }; funkin_save_Save.fetchFromSlotRaw = function(slot) { var targetSaveData = new flixel_util_FlxSave(); targetSaveData.bind("" + funkin_save_Save.SAVE_NAME + slot,funkin_save_Save.SAVE_PATH); if(targetSaveData.isEmpty()) { return null; } return targetSaveData.data; }; funkin_save_Save.writeToAvailableSlot = function(slot,data) { haxe_Log.trace("[SAVE] Finding slot to write data to (starting with " + slot + ")...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 841, className : "funkin.save.Save", methodName : "writeToAvailableSlot"}); var targetSaveData = new flixel_util_FlxSave(); targetSaveData.bind("" + funkin_save_Save.SAVE_NAME + slot,funkin_save_Save.SAVE_PATH); while(!targetSaveData.isEmpty()) { haxe_Log.trace("[SAVE] Slot " + slot + " is taken, continuing...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 848, className : "funkin.save.Save", methodName : "writeToAvailableSlot"}); ++slot; targetSaveData.bind("" + funkin_save_Save.SAVE_NAME + slot,funkin_save_Save.SAVE_PATH); } haxe_Log.trace("[SAVE] Writing data to slot " + slot + "...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 853, className : "funkin.save.Save", methodName : "writeToAvailableSlot"}); targetSaveData.mergeData(data,true); haxe_Log.trace("[SAVE] Data written to slot " + slot + "!",{ fileName : "source/funkin/save/Save.hx", lineNumber : 856, className : "funkin.save.Save", methodName : "writeToAvailableSlot"}); return slot; }; funkin_save_Save.querySlot = function(slot) { var targetSaveData = new flixel_util_FlxSave(); targetSaveData.bind("" + funkin_save_Save.SAVE_NAME + slot,funkin_save_Save.SAVE_PATH); return !targetSaveData.isEmpty(); }; funkin_save_Save.querySlotRange = function(start,end) { var _g = start; var _g1 = end; while(_g < _g1) { var i = _g++; if(funkin_save_Save.querySlot(i)) { return i; } } return -1; }; funkin_save_Save.fetchLegacySaveData = function() { haxe_Log.trace("[SAVE] Checking for legacy save data...",{ fileName : "source/funkin/save/Save.hx", lineNumber : 892, className : "funkin.save.Save", methodName : "fetchLegacySaveData"}); var legacySave = new flixel_util_FlxSave(); legacySave.bind(funkin_save_Save.SAVE_NAME_LEGACY,funkin_save_Save.SAVE_PATH_LEGACY); if(legacySave.isEmpty()) { haxe_Log.trace("[SAVE] No legacy save data found.",{ fileName : "source/funkin/save/Save.hx", lineNumber : 897, className : "funkin.save.Save", methodName : "fetchLegacySaveData"}); return null; } else { haxe_Log.trace("[SAVE] Legacy save data found.",{ fileName : "source/funkin/save/Save.hx", lineNumber : 902, className : "funkin.save.Save", methodName : "fetchLegacySaveData"}); haxe_Log.trace(legacySave.data,{ fileName : "source/funkin/save/Save.hx", lineNumber : 903, className : "funkin.save.Save", methodName : "fetchLegacySaveData"}); return legacySave.data; } }; funkin_save_Save.prototype = { data: null ,get_options: function() { return this.data.options; } ,get_modOptions: function() { return this.data.mods.modOptions; } ,get_ngSessionId: function() { return this.data.api.newgrounds.sessionId; } ,set_ngSessionId: function(value) { this.data.api.newgrounds.sessionId = value; this.flush(); return this.data.api.newgrounds.sessionId; } ,get_enabledModIds: function() { return this.data.mods.enabledMods; } ,set_enabledModIds: function(value) { this.data.mods.enabledMods = value; this.flush(); return this.data.mods.enabledMods; } ,get_chartEditorPreviousFiles: function() { if(this.data.optionsChartEditor.previousFiles == null) { this.data.optionsChartEditor.previousFiles = []; } return this.data.optionsChartEditor.previousFiles; } ,set_chartEditorPreviousFiles: function(value) { this.data.optionsChartEditor.previousFiles = value; this.flush(); return this.data.optionsChartEditor.previousFiles; } ,get_chartEditorHasBackup: function() { if(this.data.optionsChartEditor.hasBackup == null) { this.data.optionsChartEditor.hasBackup = false; } return this.data.optionsChartEditor.hasBackup; } ,set_chartEditorHasBackup: function(value) { this.data.optionsChartEditor.hasBackup = value; this.flush(); return this.data.optionsChartEditor.hasBackup; } ,get_chartEditorNoteQuant: function() { if(this.data.optionsChartEditor.noteQuant == null) { this.data.optionsChartEditor.noteQuant = 3; } return this.data.optionsChartEditor.noteQuant; } ,set_chartEditorNoteQuant: function(value) { this.data.optionsChartEditor.noteQuant = value; this.flush(); return this.data.optionsChartEditor.noteQuant; } ,get_chartEditorLiveInputStyle: function() { if(this.data.optionsChartEditor.chartEditorLiveInputStyle == null) { this.data.optionsChartEditor.chartEditorLiveInputStyle = funkin_ui_debug_charting_ChartEditorLiveInputStyle.None; } return this.data.optionsChartEditor.chartEditorLiveInputStyle; } ,set_chartEditorLiveInputStyle: function(value) { this.data.optionsChartEditor.chartEditorLiveInputStyle = value; this.flush(); return this.data.optionsChartEditor.chartEditorLiveInputStyle; } ,get_chartEditorDownscroll: function() { if(this.data.optionsChartEditor.downscroll == null) { this.data.optionsChartEditor.downscroll = false; } return this.data.optionsChartEditor.downscroll; } ,set_chartEditorDownscroll: function(value) { this.data.optionsChartEditor.downscroll = value; this.flush(); return this.data.optionsChartEditor.downscroll; } ,get_chartEditorPlaytestStartTime: function() { if(this.data.optionsChartEditor.playtestStartTime == null) { this.data.optionsChartEditor.playtestStartTime = false; } return this.data.optionsChartEditor.playtestStartTime; } ,set_chartEditorPlaytestStartTime: function(value) { this.data.optionsChartEditor.playtestStartTime = value; this.flush(); return this.data.optionsChartEditor.playtestStartTime; } ,get_chartEditorTheme: function() { if(this.data.optionsChartEditor.theme == null) { this.data.optionsChartEditor.theme = funkin_ui_debug_charting_ChartEditorTheme.Light; } return this.data.optionsChartEditor.theme; } ,set_chartEditorTheme: function(value) { this.data.optionsChartEditor.theme = value; this.flush(); return this.data.optionsChartEditor.theme; } ,get_chartEditorMetronomeVolume: function() { if(this.data.optionsChartEditor.metronomeVolume == null) { this.data.optionsChartEditor.metronomeVolume = 1.0; } return this.data.optionsChartEditor.metronomeVolume; } ,set_chartEditorMetronomeVolume: function(value) { this.data.optionsChartEditor.metronomeVolume = value; this.flush(); return this.data.optionsChartEditor.metronomeVolume; } ,get_chartEditorHitsoundVolumePlayer: function() { if(this.data.optionsChartEditor.hitsoundVolumePlayer == null) { this.data.optionsChartEditor.hitsoundVolumePlayer = 1.0; } return this.data.optionsChartEditor.hitsoundVolumePlayer; } ,set_chartEditorHitsoundVolumePlayer: function(value) { this.data.optionsChartEditor.hitsoundVolumePlayer = value; this.flush(); return this.data.optionsChartEditor.hitsoundVolumePlayer; } ,get_chartEditorHitsoundVolumeOpponent: function() { if(this.data.optionsChartEditor.hitsoundVolumeOpponent == null) { this.data.optionsChartEditor.hitsoundVolumeOpponent = 1.0; } return this.data.optionsChartEditor.hitsoundVolumeOpponent; } ,set_chartEditorHitsoundVolumeOpponent: function(value) { this.data.optionsChartEditor.hitsoundVolumeOpponent = value; this.flush(); return this.data.optionsChartEditor.hitsoundVolumeOpponent; } ,get_chartEditorThemeMusic: function() { if(this.data.optionsChartEditor.themeMusic == null) { this.data.optionsChartEditor.themeMusic = true; } return this.data.optionsChartEditor.themeMusic; } ,set_chartEditorThemeMusic: function(value) { this.data.optionsChartEditor.themeMusic = value; this.flush(); return this.data.optionsChartEditor.themeMusic; } ,get_chartEditorPlaybackSpeed: function() { if(this.data.optionsChartEditor.playbackSpeed == null) { this.data.optionsChartEditor.playbackSpeed = 1.0; } return this.data.optionsChartEditor.playbackSpeed; } ,set_chartEditorPlaybackSpeed: function(value) { this.data.optionsChartEditor.playbackSpeed = value; this.flush(); return this.data.optionsChartEditor.playbackSpeed; } ,getLevelScore: function(levelId,difficultyId) { if(difficultyId == null) { difficultyId = "normal"; } var tmp = this.data.scores; if((tmp != null ? tmp.levels : null) == null) { if(this.data.scores == null) { var tmp = new haxe_ds_StringMap(); this.data.scores = { songs : tmp, levels : new haxe_ds_StringMap()}; } else { this.data.scores.levels = new haxe_ds_StringMap(); } } var level = this.data.scores.levels.h[levelId]; if(level == null) { level = new haxe_ds_StringMap(); this.data.scores.levels.h[levelId] = level; } return level.h[difficultyId]; } ,setLevelScore: function(levelId,difficultyId,score) { var level = this.data.scores.levels.h[levelId]; if(level == null) { level = new haxe_ds_StringMap(); this.data.scores.levels.h[levelId] = level; } level.h[difficultyId] = score; this.flush(); } ,isLevelHighScore: function(levelId,difficultyId,score) { if(difficultyId == null) { difficultyId = "normal"; } var level = this.data.scores.levels.h[levelId]; if(level == null) { level = new haxe_ds_StringMap(); this.data.scores.levels.h[levelId] = level; } var currentScore = level.h[difficultyId]; if(currentScore == null) { return true; } return score.score > currentScore.score; } ,hasBeatenLevel: function(levelId,difficultyList) { if(difficultyList == null) { difficultyList = ["easy","normal","hard"]; } var _g = 0; while(_g < difficultyList.length) { var difficulty = difficultyList[_g]; ++_g; var score = this.getLevelScore(levelId,difficulty); if(score != null) { return true; } } return false; } ,getSongScore: function(songId,difficultyId) { if(difficultyId == null) { difficultyId = "normal"; } var song = this.data.scores.songs.h[songId]; if(song == null) { song = new haxe_ds_StringMap(); this.data.scores.songs.h[songId] = song; } return song.h[difficultyId]; } ,getSongRank: function(songId,difficultyId) { if(difficultyId == null) { difficultyId = "normal"; } return funkin_play_scoring_Scoring.calculateRank(this.getSongScore(songId,difficultyId)); } ,setSongScore: function(songId,difficultyId,score) { var song = this.data.scores.songs.h[songId]; if(song == null) { song = new haxe_ds_StringMap(); this.data.scores.songs.h[songId] = song; } song.h[difficultyId] = score; this.flush(); } ,applySongRank: function(songId,difficultyId,newScoreData) { var newRank = funkin_play_scoring_Scoring.calculateRank(newScoreData); if(newScoreData == null || newRank == null) { return; } var song = this.data.scores.songs.h[songId]; if(song == null) { song = new haxe_ds_StringMap(); this.data.scores.songs.h[songId] = song; } var previousScoreData = song.h[difficultyId]; var previousRank = funkin_play_scoring_Scoring.calculateRank(previousScoreData); if(previousScoreData == null || previousRank == null) { this.setSongScore(songId,difficultyId,newScoreData); return; } var newScore = { score : previousScoreData.score > newScoreData.score ? previousScoreData.score : newScoreData.score, tallies : funkin_play_scoring_ScoringRank.compareGT(previousRank,newRank) ? previousScoreData.tallies : newScoreData.tallies}; song.h[difficultyId] = newScore; this.flush(); } ,isSongHighScore: function(songId,difficultyId,score) { if(difficultyId == null) { difficultyId = "normal"; } var song = this.data.scores.songs.h[songId]; if(song == null) { song = new haxe_ds_StringMap(); this.data.scores.songs.h[songId] = song; } var currentScore = song.h[difficultyId]; if(currentScore == null) { return true; } return score.score > currentScore.score; } ,isSongHighRank: function(songId,difficultyId,score) { if(difficultyId == null) { difficultyId = "normal"; } var newScoreRank = funkin_play_scoring_Scoring.calculateRank(score); if(newScoreRank == null) { return false; } var song = this.data.scores.songs.h[songId]; if(song == null) { song = new haxe_ds_StringMap(); this.data.scores.songs.h[songId] = song; } var currentScore = song.h[difficultyId]; var currentScoreRank = funkin_play_scoring_Scoring.calculateRank(currentScore); if(currentScoreRank == null) { return true; } return funkin_play_scoring_ScoringRank.compareGT(newScoreRank,currentScoreRank); } ,hasBeatenSong: function(songId,difficultyList) { if(difficultyList == null) { difficultyList = ["easy","normal","hard"]; } var _g = 0; while(_g < difficultyList.length) { var difficulty = difficultyList[_g]; ++_g; var score = this.getSongScore(songId,difficulty); if(score != null) { return true; } } return false; } ,isSongFavorited: function(id) { if(this.data.favoriteSongs == null) { this.data.favoriteSongs = []; this.flush(); } return this.data.favoriteSongs.indexOf(id) != -1; } ,favoriteSong: function(id) { if(!this.isSongFavorited(id)) { this.data.favoriteSongs.push(id); this.flush(); } } ,unfavoriteSong: function(id) { if(this.isSongFavorited(id)) { HxOverrides.remove(this.data.favoriteSongs,id); this.flush(); } } ,getControls: function(playerId,inputType) { switch(inputType._hx_index) { case 0: if(playerId == 0) { var tmp = this.data; var tmp1 = tmp != null ? tmp.options : null; var tmp = tmp1 != null ? tmp1.controls : null; if(tmp != null) { return tmp.p1.keyboard; } else { return null; } } else { var tmp = this.data; var tmp1 = tmp != null ? tmp.options : null; var tmp = tmp1 != null ? tmp1.controls : null; if(tmp != null) { return tmp.p2.keyboard; } else { return null; } } break; case 1: var _g = inputType.id; if(playerId == 0) { var tmp = this.data; var tmp1 = tmp != null ? tmp.options : null; var tmp = tmp1 != null ? tmp1.controls : null; if(tmp != null) { return tmp.p1.gamepad; } else { return null; } } else { var tmp = this.data; var tmp1 = tmp != null ? tmp.options : null; var tmp = tmp1 != null ? tmp1.controls : null; if(tmp != null) { return tmp.p2.gamepad; } else { return null; } } break; } } ,hasControls: function(playerId,inputType) { var controls = this.getControls(playerId,inputType); if(controls == null) { return false; } var controlsFields = Reflect.fields(controls); return controlsFields.length > 0; } ,setControls: function(playerId,inputType,controls) { switch(inputType._hx_index) { case 0: if(playerId == 0) { this.data.options.controls.p1.keyboard = controls; } else { this.data.options.controls.p2.keyboard = controls; } break; case 1: var _g = inputType.id; if(playerId == 0) { this.data.options.controls.p1.gamepad = controls; } else { this.data.options.controls.p2.gamepad = controls; } break; } this.flush(); } ,isCharacterUnlocked: function(characterId) { switch(characterId) { case "bf": return true; case "pico": return this.hasBeatenLevel("weekend1"); default: haxe_Log.trace("Unknown character ID: " + characterId,{ fileName : "source/funkin/save/Save.hx", lineNumber : 727, className : "funkin.save.Save", methodName : "isCharacterUnlocked"}); return true; } } ,get_volume: function() { return this.data.volume; } ,set_volume: function(value) { return this.data.volume = value; } ,get_mute: function() { return this.data.mute; } ,set_mute: function(value) { return this.data.mute = value; } ,flush: function() { flixel_FlxG.save.flush(); } ,serialize: function(pretty) { if(pretty == null) { pretty = true; } var ignoreNullOptionals = true; var writer = new JsonWriter_$56(ignoreNullOptionals); return writer.write(this.data,pretty ? " " : null); } ,updateVersionToLatest: function() { this.data.version = funkin_save_Save.SAVE_DATA_VERSION; } ,debug_dumpSave: function() { funkin_util_FileUtil.saveFile(haxe_io_Bytes.ofString(this.serialize()),[funkin_util_FileUtil.FILE_FILTER_JSON],null,null,"./save.json","Write save data as JSON..."); } ,__class__: funkin_save_Save ,__properties__: {set_mute:"set_mute",get_mute:"get_mute",set_volume:"set_volume",get_volume:"get_volume",set_chartEditorPlaybackSpeed:"set_chartEditorPlaybackSpeed",get_chartEditorPlaybackSpeed:"get_chartEditorPlaybackSpeed",set_chartEditorThemeMusic:"set_chartEditorThemeMusic",get_chartEditorThemeMusic:"get_chartEditorThemeMusic",set_chartEditorHitsoundVolumeOpponent:"set_chartEditorHitsoundVolumeOpponent",get_chartEditorHitsoundVolumeOpponent:"get_chartEditorHitsoundVolumeOpponent",set_chartEditorHitsoundVolumePlayer:"set_chartEditorHitsoundVolumePlayer",get_chartEditorHitsoundVolumePlayer:"get_chartEditorHitsoundVolumePlayer",set_chartEditorMetronomeVolume:"set_chartEditorMetronomeVolume",get_chartEditorMetronomeVolume:"get_chartEditorMetronomeVolume",set_chartEditorTheme:"set_chartEditorTheme",get_chartEditorTheme:"get_chartEditorTheme",set_chartEditorPlaytestStartTime:"set_chartEditorPlaytestStartTime",get_chartEditorPlaytestStartTime:"get_chartEditorPlaytestStartTime",set_chartEditorDownscroll:"set_chartEditorDownscroll",get_chartEditorDownscroll:"get_chartEditorDownscroll",set_chartEditorLiveInputStyle:"set_chartEditorLiveInputStyle",get_chartEditorLiveInputStyle:"get_chartEditorLiveInputStyle",set_chartEditorNoteQuant:"set_chartEditorNoteQuant",get_chartEditorNoteQuant:"get_chartEditorNoteQuant",set_chartEditorHasBackup:"set_chartEditorHasBackup",get_chartEditorHasBackup:"get_chartEditorHasBackup",set_chartEditorPreviousFiles:"set_chartEditorPreviousFiles",get_chartEditorPreviousFiles:"get_chartEditorPreviousFiles",set_enabledModIds:"set_enabledModIds",get_enabledModIds:"get_enabledModIds",set_ngSessionId:"set_ngSessionId",get_ngSessionId:"get_ngSessionId",get_modOptions:"get_modOptions",get_options:"get_options"} }; var funkin_save_migrator_SaveDataMigrator = function() { }; $hxClasses["funkin.save.migrator.SaveDataMigrator"] = funkin_save_migrator_SaveDataMigrator; funkin_save_migrator_SaveDataMigrator.__name__ = "funkin.save.migrator.SaveDataMigrator"; funkin_save_migrator_SaveDataMigrator.migrate = function(inputData) { var tmp = inputData != null ? inputData.version : null; var version = funkin_util_VersionUtil.parseVersion(tmp != null ? tmp : null); if(version == null) { haxe_Log.trace("[SAVE] No version found in save data! Returning blank data.",{ fileName : "source/funkin/save/migrator/SaveDataMigrator.hx", lineNumber : 20, className : "funkin.save.migrator.SaveDataMigrator", methodName : "migrate"}); haxe_Log.trace(inputData,{ fileName : "source/funkin/save/migrator/SaveDataMigrator.hx", lineNumber : 21, className : "funkin.save.migrator.SaveDataMigrator", methodName : "migrate"}); return new funkin_save_Save(funkin_save_Save.getDefault()); } else { version = funkin_util_VersionUtil.repairVersion(version); if(funkin_util_VersionUtil.validateVersion(version,funkin_save_Save.SAVE_DATA_VERSION_RULE)) { var saveDataWithDefaults = thx_Objects.deepCombine(funkin_save_Save.getDefault(),inputData); var save = new funkin_save_Save(saveDataWithDefaults); return save; } else { var message = "Error migrating save data, expected " + (funkin_save_Save.SAVE_DATA_VERSION == null ? "null" : thx_semver_Version.toString(funkin_save_Save.SAVE_DATA_VERSION)) + "."; var slot = funkin_save_Save.archiveBadSaveData(inputData); var fullMessage = "An error occurred migrating your save data.\n" + message + "\nInvalid data has been moved to save slot " + slot + "."; lime_app_Application.current.__window.alert(fullMessage,"Save Data Failure"); return new funkin_save_Save(funkin_save_Save.getDefault()); } } }; funkin_save_migrator_SaveDataMigrator.migrateFromLegacy = function(inputData) { var inputSaveData = inputData; var result = new funkin_save_Save(funkin_save_Save.getDefault()); result.set_volume(inputSaveData.volume); result.set_mute(inputSaveData.mute); result.set_ngSessionId(inputSaveData.sessionId); funkin_save_migrator_SaveDataMigrator.migrateLegacyScores(result,inputSaveData); funkin_save_migrator_SaveDataMigrator.migrateLegacyControls(result,inputSaveData); return result; }; funkin_save_migrator_SaveDataMigrator.migrateLegacyScores = function(result,inputSaveData) { if(inputSaveData.songCompletion == null) { inputSaveData.songCompletion = new haxe_ds_StringMap(); } if(inputSaveData.songScores == null) { inputSaveData.songScores = new haxe_ds_StringMap(); } funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week0"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week1"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week2"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week3"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week4"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week5"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week6"); funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore(result,inputSaveData,"week7"); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["tutorial","Tutorial"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["bopeebo","Bopeebo"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["fresh","Fresh"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["dadbattle","Dadbattle"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["monster","Monster"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["south","South"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["spookeez","Spookeez"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["pico","Pico"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["philly-nice","Philly","philly","Philly-Nice"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["blammed","Blammed"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["satin-panties","Satin-Panties"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["high","High"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["milf","Milf","MILF"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["cocoa","Cocoa"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["eggnog","Eggnog"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["winter-horrorland","Winter-Horrorland"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["senpai","Senpai"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["roses","Roses"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["thorns","Thorns"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["ugh","Ugh"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["guns","Guns"]); funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore(result,inputSaveData,["stress","Stress"]); }; funkin_save_migrator_SaveDataMigrator.migrateLegacyLevelScore = function(result,inputSaveData,levelId) { var tmp = inputSaveData.songScores.h["" + levelId + "-easy"]; var scoreDataEasy = { score : tmp != null ? tmp : 0, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; result.setLevelScore(levelId,"easy",scoreDataEasy); var tmp = inputSaveData.songScores.h["" + levelId]; var scoreDataNormal = { score : tmp != null ? tmp : 0, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; result.setLevelScore(levelId,"normal",scoreDataNormal); var tmp = inputSaveData.songScores.h["" + levelId + "-hard"]; var scoreDataHard = { score : tmp != null ? tmp : 0, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; result.setLevelScore(levelId,"hard",scoreDataHard); }; funkin_save_migrator_SaveDataMigrator.migrateLegacySongScore = function(result,inputSaveData,songIds) { var scoreDataEasy = { score : 0, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; var _g = 0; while(_g < songIds.length) { var songId = songIds[_g]; ++_g; var tmp = inputSaveData.songScores.h["" + songId + "-easy"]; scoreDataEasy.score = Math.max(scoreDataEasy.score,tmp != null ? tmp : 0) | 0; } result.setSongScore(songIds[0],"easy",scoreDataEasy); var scoreDataNormal = { score : 0, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; var _g = 0; while(_g < songIds.length) { var songId = songIds[_g]; ++_g; var tmp = inputSaveData.songScores.h["" + songId]; scoreDataNormal.score = Math.max(scoreDataNormal.score,tmp != null ? tmp : 0) | 0; } result.setSongScore(songIds[0],"normal",scoreDataNormal); var scoreDataHard = { score : 0, tallies : { sick : 0, good : 0, bad : 0, shit : 0, missed : 0, combo : 0, maxCombo : 0, totalNotesHit : 0, totalNotes : 0}}; var _g = 0; while(_g < songIds.length) { var songId = songIds[_g]; ++_g; var tmp = inputSaveData.songScores.h["" + songId + "-hard"]; scoreDataHard.score = Math.max(scoreDataHard.score,tmp != null ? tmp : 0) | 0; } result.setSongScore(songIds[0],"hard",scoreDataHard); }; funkin_save_migrator_SaveDataMigrator.migrateLegacyControls = function(result,inputSaveData) { var tmp = inputSaveData != null ? inputSaveData.controls : null; var p1Data = tmp != null ? tmp.p1 : null; if(p1Data != null) { funkin_save_migrator_SaveDataMigrator.migrateLegacyPlayerControls(result,1,p1Data); } var tmp = inputSaveData != null ? inputSaveData.controls : null; var p2Data = tmp != null ? tmp.p2 : null; if(p2Data != null) { funkin_save_migrator_SaveDataMigrator.migrateLegacyPlayerControls(result,2,p2Data); } }; funkin_save_migrator_SaveDataMigrator.migrateLegacyPlayerControls = function(result,playerId,controlsData) { var tmp = controlsData != null ? controlsData.keys : null; var tmp1 = tmp != null ? tmp.ACCEPT : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp2 = tmp != null ? tmp.BACK : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp3 = tmp != null ? tmp.CUTSCENE_ADVANCE : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp4 = tmp != null ? tmp.NOTE_DOWN : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp5 = tmp != null ? tmp.NOTE_LEFT : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp6 = tmp != null ? tmp.NOTE_RIGHT : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp7 = tmp != null ? tmp.NOTE_UP : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp8 = tmp != null ? tmp.PAUSE : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp9 = tmp != null ? tmp.RESET : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp10 = tmp != null ? tmp.UI_DOWN : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp11 = tmp != null ? tmp.UI_LEFT : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp12 = tmp != null ? tmp.UI_RIGHT : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp13 = tmp != null ? tmp.UI_UP : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp14 = tmp != null ? tmp.VOLUME_DOWN : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp15 = tmp != null ? tmp.VOLUME_MUTE : null; var tmp = controlsData != null ? controlsData.keys : null; var tmp16 = tmp != null ? tmp.VOLUME_UP : null; var outputKeyControls = { ACCEPT : tmp1 != null ? tmp1 : null, BACK : tmp2 != null ? tmp2 : null, CUTSCENE_ADVANCE : tmp3 != null ? tmp3 : null, NOTE_DOWN : tmp4 != null ? tmp4 : null, NOTE_LEFT : tmp5 != null ? tmp5 : null, NOTE_RIGHT : tmp6 != null ? tmp6 : null, NOTE_UP : tmp7 != null ? tmp7 : null, PAUSE : tmp8 != null ? tmp8 : null, RESET : tmp9 != null ? tmp9 : null, UI_DOWN : tmp10 != null ? tmp10 : null, UI_LEFT : tmp11 != null ? tmp11 : null, UI_RIGHT : tmp12 != null ? tmp12 : null, UI_UP : tmp13 != null ? tmp13 : null, VOLUME_DOWN : tmp14 != null ? tmp14 : null, VOLUME_MUTE : tmp15 != null ? tmp15 : null, VOLUME_UP : tmp16 != null ? tmp16 : null}; var tmp = controlsData != null ? controlsData.pad : null; var tmp1 = tmp != null ? tmp.ACCEPT : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp2 = tmp != null ? tmp.BACK : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp3 = tmp != null ? tmp.CUTSCENE_ADVANCE : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp4 = tmp != null ? tmp.NOTE_DOWN : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp5 = tmp != null ? tmp.NOTE_LEFT : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp6 = tmp != null ? tmp.NOTE_RIGHT : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp7 = tmp != null ? tmp.NOTE_UP : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp8 = tmp != null ? tmp.PAUSE : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp9 = tmp != null ? tmp.RESET : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp10 = tmp != null ? tmp.UI_DOWN : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp11 = tmp != null ? tmp.UI_LEFT : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp12 = tmp != null ? tmp.UI_RIGHT : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp13 = tmp != null ? tmp.UI_UP : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp14 = tmp != null ? tmp.VOLUME_DOWN : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp15 = tmp != null ? tmp.VOLUME_MUTE : null; var tmp = controlsData != null ? controlsData.pad : null; var tmp16 = tmp != null ? tmp.VOLUME_UP : null; var outputPadControls = { ACCEPT : tmp1 != null ? tmp1 : null, BACK : tmp2 != null ? tmp2 : null, CUTSCENE_ADVANCE : tmp3 != null ? tmp3 : null, NOTE_DOWN : tmp4 != null ? tmp4 : null, NOTE_LEFT : tmp5 != null ? tmp5 : null, NOTE_RIGHT : tmp6 != null ? tmp6 : null, NOTE_UP : tmp7 != null ? tmp7 : null, PAUSE : tmp8 != null ? tmp8 : null, RESET : tmp9 != null ? tmp9 : null, UI_DOWN : tmp10 != null ? tmp10 : null, UI_LEFT : tmp11 != null ? tmp11 : null, UI_RIGHT : tmp12 != null ? tmp12 : null, UI_UP : tmp13 != null ? tmp13 : null, VOLUME_DOWN : tmp14 != null ? tmp14 : null, VOLUME_MUTE : tmp15 != null ? tmp15 : null, VOLUME_UP : tmp16 != null ? tmp16 : null}; result.setControls(playerId,funkin_input_Device.Keys,outputKeyControls); result.setControls(playerId,funkin_input_Device.Gamepad(0),outputPadControls); }; var funkin_ui_Alphabet = function(x,y,text,bold,typed) { if(typed == null) { typed = false; } if(bold == null) { bold = false; } if(text == null) { text = ""; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.personTalking = "gf"; this.isBold = false; this.splitWords = []; this.lastWasSpace = false; this.xPosResetted = false; this.yMulti = 1; this.widthOfWords = flixel_FlxG.width; this._curText = ""; this._finalText = ""; this.text = ""; this.isMenuItem = false; this.targetY = 0; this.paused = false; this.delay = 0.05; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this._finalText = text; this.text = text; this.isBold = bold; if(text != "") { if(typed) { this.startTypedText(); } else { this.addText(); } } }; $hxClasses["funkin.ui.Alphabet"] = funkin_ui_Alphabet; funkin_ui_Alphabet.__name__ = "funkin.ui.Alphabet"; funkin_ui_Alphabet.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_Alphabet.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ delay: null ,paused: null ,targetY: null ,isMenuItem: null ,text: null ,_finalText: null ,_curText: null ,widthOfWords: null ,yMulti: null ,lastSprite: null ,xPosResetted: null ,lastWasSpace: null ,splitWords: null ,isBold: null ,addText: function() { this.doSplitWords(); var xPos = 0; var _g = 0; var _g1 = this.splitWords; while(_g < _g1.length) { var character = _g1[_g]; ++_g; if(character == " " || character == "-") { this.lastWasSpace = true; } if(funkin_ui_AlphaCharacter.alphabet.indexOf(character.toLowerCase()) != -1) { if(this.lastSprite != null) { xPos = this.lastSprite.x + this.lastSprite.get_width(); } if(this.lastWasSpace) { xPos += 40; this.lastWasSpace = false; } var letter = new funkin_ui_AlphaCharacter(xPos,0); if(this.isBold) { letter.createBold(character); } else { letter.createLetter(character); } this.add(letter); this.lastSprite = letter; } } } ,doSplitWords: function() { this.splitWords = this._finalText.split(""); } ,personTalking: null ,startTypedText: function() { var _gthis = this; this._finalText = this.text; this.doSplitWords(); var loopNum = 0; var xPos = 0; var curRow = 0; new flixel_util_FlxTimer().start(0.05,function(tmr) { if(_gthis._finalText.charCodeAt(loopNum) == 10) { _gthis.yMulti += 1; _gthis.xPosResetted = true; xPos = 0; curRow += 1; } if(_gthis.splitWords[loopNum] == " ") { _gthis.lastWasSpace = true; } var isNumber = funkin_ui_AlphaCharacter.numbers.indexOf(_gthis.splitWords[loopNum]) != -1; var isSymbol = funkin_ui_AlphaCharacter.symbols.indexOf(_gthis.splitWords[loopNum]) != -1; if(funkin_ui_AlphaCharacter.alphabet.indexOf(_gthis.splitWords[loopNum].toLowerCase()) != -1 || isNumber || isSymbol) { if(_gthis.lastSprite != null && !_gthis.xPosResetted) { _gthis.lastSprite.updateHitbox(); xPos += _gthis.lastSprite.get_width() + 3; } else { _gthis.xPosResetted = false; } if(_gthis.lastWasSpace) { xPos += 20; _gthis.lastWasSpace = false; } var letter = new funkin_ui_AlphaCharacter(xPos,55 * _gthis.yMulti); letter.row = curRow; if(_gthis.isBold) { letter.createBold(_gthis.splitWords[loopNum]); } else { if(isNumber) { letter.createNumber(_gthis.splitWords[loopNum]); } else if(isSymbol) { letter.createSymbol(_gthis.splitWords[loopNum]); } else { letter.createLetter(_gthis.splitWords[loopNum]); } letter.set_x(letter.x + 90); } var Chance = 40; if(Chance == null) { Chance = 50; } if(flixel_FlxG.random.float(0,100) < Chance) { var daSound = "GF_"; funkin_audio_FunkinSound.playOnce(funkin_Paths.soundRandom(daSound,1,4)); } _gthis.add(letter); _gthis.lastSprite = letter; } loopNum += 1; tmr.time = flixel_FlxG.random.float(0.04,0.09); },this.splitWords.length); } ,update: function(elapsed) { if(this.isMenuItem) { var scaledY = flixel_math_FlxMath.remapToRange(this.targetY,0,1,0,1.3); this.set_y(funkin_util_MathUtil.coolLerp(this.y,scaledY * 120 + flixel_FlxG.height * 0.48,0.16)); this.set_x(funkin_util_MathUtil.coolLerp(this.x,this.targetY * 20 + 90,0.16)); } flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,__class__: funkin_ui_Alphabet }); var funkin_ui_AlphaCharacter = function(x,y) { this.row = 0; flixel_FlxSprite.call(this,x,y); var tex = funkin_Paths.getSparrowAtlas("alphabet"); this.set_frames(tex); }; $hxClasses["funkin.ui.AlphaCharacter"] = funkin_ui_AlphaCharacter; funkin_ui_AlphaCharacter.__name__ = "funkin.ui.AlphaCharacter"; funkin_ui_AlphaCharacter.__super__ = flixel_FlxSprite; funkin_ui_AlphaCharacter.prototype = $extend(flixel_FlxSprite.prototype,{ row: null ,createBold: function(letter) { this.animation.addByPrefix(letter,letter.toUpperCase() + " bold",24); this.animation.play(letter); this.updateHitbox(); } ,createLetter: function(letter) { var letterCase = "lowercase"; if(letter.toLowerCase() != letter) { letterCase = "capital"; } this.animation.addByPrefix(letter,letter + " " + letterCase,24); this.animation.play(letter); this.updateHitbox(); this.set_y(110 - this.get_height()); this.set_y(this.y + this.row * 60); } ,createNumber: function(letter) { this.animation.addByPrefix(letter,letter,24); this.animation.play(letter); this.updateHitbox(); } ,createSymbol: function(letter) { switch(letter) { case "!": this.animation.addByPrefix(letter,"exclamation point",24); this.animation.play(letter); break; case "'": this.animation.addByPrefix(letter,"apostraphie",24); this.animation.play(letter); this.set_y(this.y); break; case ".": this.animation.addByPrefix(letter,"period",24); this.animation.play(letter); this.set_y(this.y + 50); break; case "?": this.animation.addByPrefix(letter,"question mark",24); this.animation.play(letter); break; } this.updateHitbox(); } ,__class__: funkin_ui_AlphaCharacter }); var funkin_ui_MenuTypedList = function(navControls,wrapMode) { if(navControls == null) { navControls = funkin_ui_NavControls.Vertical; } this.busy = false; this.byName = new haxe_ds_StringMap(); this.wrapMode = funkin_ui_WrapMode.Both; this.enabled = true; this.onAcceptPress = new flixel_util__$FlxSignal_FlxSignal1(); this.onChange = new flixel_util__$FlxSignal_FlxSignal1(); this.selectedIndex = 0; this.navControls = navControls; if(wrapMode != null) { this.wrapMode = wrapMode; } else { var tmp; switch(navControls._hx_index) { case 0: tmp = funkin_ui_WrapMode.Horizontal; break; case 1: tmp = funkin_ui_WrapMode.Vertical; break; default: tmp = funkin_ui_WrapMode.Both; } this.wrapMode = tmp; } flixel_group_FlxTypedGroup.call(this); }; $hxClasses["funkin.ui.MenuTypedList"] = funkin_ui_MenuTypedList; funkin_ui_MenuTypedList.__name__ = "funkin.ui.MenuTypedList"; funkin_ui_MenuTypedList.__super__ = flixel_group_FlxTypedGroup; funkin_ui_MenuTypedList.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ selectedIndex: null ,onChange: null ,onAcceptPress: null ,navControls: null ,enabled: null ,wrapMode: null ,byName: null ,busy: null ,addItem: function(name,item) { if(this.length == this.selectedIndex) { item.select(); } this.byName.h[name] = item; return this.add(item); } ,resetItem: function(oldName,newName,callback) { if(!Object.prototype.hasOwnProperty.call(this.byName.h,oldName)) { throw haxe_Exception.thrown("No item named:" + oldName); } var item = this.byName.h[oldName]; var _this = this.byName; if(Object.prototype.hasOwnProperty.call(_this.h,oldName)) { delete(_this.h[oldName]); } this.byName.h[newName] = item; item.setItem(newName,callback); return item; } ,update: function(elapsed) { flixel_group_FlxTypedGroup.prototype.update.call(this,elapsed); if(this.enabled && !this.busy) { var controls = funkin_PlayerSettings.player1.controls; var wrapX; switch(this.wrapMode._hx_index) { case 0:case 2: wrapX = true; break; default: wrapX = false; } var wrapY; switch(this.wrapMode._hx_index) { case 1:case 2: wrapY = true; break; default: wrapY = false; } var newIndex; var _g = this.navControls; switch(_g._hx_index) { case 0: var prev = controls._ui_left.checkJustPressed(); var next = controls._ui_right.checkJustPressed(); newIndex = this.navAxis(this.selectedIndex,this.length,prev,next,wrapX); break; case 1: var prev = controls._ui_up.checkJustPressed(); var next = controls._ui_down.checkJustPressed(); newIndex = this.navAxis(this.selectedIndex,this.length,prev,next,wrapY); break; case 2: var prev = controls._ui_left.checkJustPressed() || controls._ui_up.checkJustPressed(); var next = controls._ui_right.checkJustPressed() || controls._ui_down.checkJustPressed(); newIndex = this.navAxis(this.selectedIndex,this.length,prev,next,this.wrapMode._hx_index != 3); break; case 3: var num = _g.num; newIndex = this.navGrid(num,controls._ui_left.checkJustPressed(),controls._ui_right.checkJustPressed(),wrapX,controls._ui_up.checkJustPressed(),controls._ui_down.checkJustPressed(),wrapY); break; case 4: var num = _g.num; newIndex = this.navGrid(num,controls._ui_up.checkJustPressed(),controls._ui_down.checkJustPressed(),wrapY,controls._ui_left.checkJustPressed(),controls._ui_right.checkJustPressed(),wrapX); break; } if(newIndex != this.selectedIndex) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); this.selectItem(newIndex); } if(controls._accept.check()) { this.accept(); } } } ,updateControls: function() { var controls = funkin_PlayerSettings.player1.controls; var wrapX; switch(this.wrapMode._hx_index) { case 0:case 2: wrapX = true; break; default: wrapX = false; } var wrapY; switch(this.wrapMode._hx_index) { case 1:case 2: wrapY = true; break; default: wrapY = false; } var newIndex; var _g = this.navControls; switch(_g._hx_index) { case 0: var prev = controls._ui_left.checkJustPressed(); var next = controls._ui_right.checkJustPressed(); newIndex = this.navAxis(this.selectedIndex,this.length,prev,next,wrapX); break; case 1: var prev = controls._ui_up.checkJustPressed(); var next = controls._ui_down.checkJustPressed(); newIndex = this.navAxis(this.selectedIndex,this.length,prev,next,wrapY); break; case 2: var prev = controls._ui_left.checkJustPressed() || controls._ui_up.checkJustPressed(); var next = controls._ui_right.checkJustPressed() || controls._ui_down.checkJustPressed(); newIndex = this.navAxis(this.selectedIndex,this.length,prev,next,this.wrapMode._hx_index != 3); break; case 3: var num = _g.num; newIndex = this.navGrid(num,controls._ui_left.checkJustPressed(),controls._ui_right.checkJustPressed(),wrapX,controls._ui_up.checkJustPressed(),controls._ui_down.checkJustPressed(),wrapY); break; case 4: var num = _g.num; newIndex = this.navGrid(num,controls._ui_up.checkJustPressed(),controls._ui_down.checkJustPressed(),wrapY,controls._ui_left.checkJustPressed(),controls._ui_right.checkJustPressed(),wrapX); break; } if(newIndex != this.selectedIndex) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("scrollMenu"),0.4); this.selectItem(newIndex); } if(controls._accept.check()) { this.accept(); } } ,navAxis: function(index,size,prev,next,allowWrap) { if(prev == next) { return index; } if(prev) { if(index > 0) { --index; } else if(allowWrap) { index = size - 1; } } else if(index < size - 1) { ++index; } else if(allowWrap) { index = 0; } return index; } ,navList: function(prev,next,allowWrap) { return this.navAxis(this.selectedIndex,this.length,prev,next,allowWrap); } ,navGrid: function(latSize,latPrev,latNext,latAllowWrap,prev,next,allowWrap) { var size = Math.ceil(this.length / latSize); var index = Math.floor(this.selectedIndex / latSize); var latIndex = this.selectedIndex % latSize; latIndex = this.navAxis(latIndex,latSize,latPrev,latNext,latAllowWrap); index = this.navAxis(index,size,prev,next,allowWrap); return Math.min(this.length - 1,index * latSize + latIndex) | 0; } ,accept: function() { var _gthis = this; var selected = this.members[this.selectedIndex]; this.onAcceptPress.dispatch(selected); if(selected.fireInstantly) { selected.callback(); } else { this.busy = true; funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("confirmMenu")); flixel_effects_FlxFlicker.flicker(selected,1,0.06,true,false,function(_) { _gthis.busy = false; selected.callback(); }); } } ,selectItem: function(index) { this.members[this.selectedIndex].idle(); this.selectedIndex = index; var selected = this.members[this.selectedIndex]; selected.select(); this.onChange.dispatch(selected); } ,has: function(name) { return Object.prototype.hasOwnProperty.call(this.byName.h,name); } ,getItem: function(name) { return this.byName.h[name]; } ,destroy: function() { flixel_group_FlxTypedGroup.prototype.destroy.call(this); this.byName.h = Object.create(null); flixel_util_FlxDestroyUtil.destroyArray(this.onChange.handlers); flixel_util_FlxDestroyUtil.destroyArray(this.onAcceptPress.handlers); } ,get_selectedItem: function() { return this.members[this.selectedIndex]; } ,__class__: funkin_ui_MenuTypedList ,__properties__: $extend(flixel_group_FlxTypedGroup.prototype.__properties__,{get_selectedItem:"get_selectedItem"}) }); var funkin_ui_AtlasMenuList = function(atlas,navControls,wrapMode) { if(navControls == null) { navControls = funkin_ui_NavControls.Vertical; } funkin_ui_MenuTypedList.call(this,navControls,wrapMode); if(typeof(atlas) == "string") { this.atlas = funkin_Paths.getSparrowAtlas(atlas); } else { this.atlas = atlas; } }; $hxClasses["funkin.ui.AtlasMenuList"] = funkin_ui_AtlasMenuList; funkin_ui_AtlasMenuList.__name__ = "funkin.ui.AtlasMenuList"; funkin_ui_AtlasMenuList.__super__ = funkin_ui_MenuTypedList; funkin_ui_AtlasMenuList.prototype = $extend(funkin_ui_MenuTypedList.prototype,{ atlas: null ,createItem: function(x,y,name,callback,fireInstantly) { if(fireInstantly == null) { fireInstantly = false; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var item = new funkin_ui_AtlasMenuItem(x,y,name,this.atlas,callback); item.fireInstantly = fireInstantly; return this.addItem(name,item); } ,destroy: function() { funkin_ui_MenuTypedList.prototype.destroy.call(this); this.atlas = null; } ,__class__: funkin_ui_AtlasMenuList }); var funkin_ui_MenuListItem = function(x,y,name,callback) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.fireInstantly = false; flixel_FlxSprite.call(this,x,y); this.setData(name,callback); this.idle(); }; $hxClasses["funkin.ui.MenuListItem"] = funkin_ui_MenuListItem; funkin_ui_MenuListItem.__name__ = "funkin.ui.MenuListItem"; funkin_ui_MenuListItem.__super__ = flixel_FlxSprite; funkin_ui_MenuListItem.prototype = $extend(flixel_FlxSprite.prototype,{ callback: null ,name: null ,fireInstantly: null ,get_selected: function() { return this.alpha == 1.0; } ,setData: function(name,callback) { this.name = name; if(callback != null) { this.callback = callback; } } ,setItem: function(name,callback) { this.setData(name,callback); if(this.get_selected()) { this.select(); } else { this.idle(); } } ,idle: function() { this.set_alpha(0.6); } ,select: function() { this.set_alpha(1.0); } ,__class__: funkin_ui_MenuListItem ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{get_selected:"get_selected"}) }); var funkin_ui_AtlasMenuItem = function(x,y,name,atlas,callback) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.centered = false; this.atlas = atlas; funkin_ui_MenuListItem.call(this,x,y,name,callback); }; $hxClasses["funkin.ui.AtlasMenuItem"] = funkin_ui_AtlasMenuItem; funkin_ui_AtlasMenuItem.__name__ = "funkin.ui.AtlasMenuItem"; funkin_ui_AtlasMenuItem.__super__ = funkin_ui_MenuListItem; funkin_ui_AtlasMenuItem.prototype = $extend(funkin_ui_MenuListItem.prototype,{ atlas: null ,centered: null ,setData: function(name,callback) { this.set_frames(this.atlas); this.animation.addByPrefix("idle","" + name + " idle",24); this.animation.addByPrefix("selected","" + name + " selected",24); funkin_ui_MenuListItem.prototype.setData.call(this,name,callback); } ,changeAnim: function(animName) { this.animation.play(animName); this.updateHitbox(); if(this.centered) { var this1 = this.origin; var x = this.frameWidth * 0.5; var y = this.frameHeight * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.offset; var p = this.origin; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } } } ,idle: function() { this.changeAnim("idle"); } ,select: function() { this.changeAnim("selected"); } ,get_selected: function() { if(this.animation._curAnim != null) { return this.animation._curAnim.name == "selected"; } else { return false; } } ,destroy: function() { funkin_ui_MenuListItem.prototype.destroy.call(this); this.atlas = null; } ,__class__: funkin_ui_AtlasMenuItem }); var funkin_ui_AtlasText = function(x,y,text,fontName) { if(fontName == null) { fontName = "default"; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.text = ""; if(!Object.prototype.hasOwnProperty.call(funkin_ui_AtlasText.fonts.h,fontName)) { var this1 = funkin_ui_AtlasText.fonts; var v = new funkin_ui__$AtlasText_AtlasFontData(fontName); this1.h[fontName] = v; } this.font = funkin_ui_AtlasText.fonts.h[fontName]; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.set_text(text); }; $hxClasses["funkin.ui.AtlasText"] = funkin_ui_AtlasText; funkin_ui_AtlasText.__name__ = "funkin.ui.AtlasText"; funkin_ui_AtlasText.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_AtlasText.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ text: null ,font: null ,get_atlas: function() { return this.font.atlas; } ,get_caseAllowed: function() { return this.font.caseAllowed; } ,get_maxHeight: function() { return this.font.maxHeight; } ,set_text: function(value) { if(value == null) { value = ""; } var caseValue = this.restrictCase(value); var caseText = this.restrictCase(this.text); this.text = value; if(caseText == caseValue) { return value; } if(caseValue.indexOf(caseText) == 0) { this.appendTextCased(HxOverrides.substr(caseValue,caseText.length,null)); return this.text; } value = caseValue; this.group.kill(); if(value == "") { return this.text; } this.appendTextCased(caseValue); return this.text; } ,appendText: function(text) { if(text == null) { throw haxe_Exception.thrown("cannot append null"); } if(text == "") { return; } this.set_text(this.text + text); } ,restrictCase: function(text) { switch(this.font.caseAllowed._hx_index) { case 0: return text; case 1: return text.toUpperCase(); case 2: return text.toLowerCase(); } } ,appendTextCased: function(text) { var charCount = this.group.countLiving(); var xPos = 0; var yPos = 0; if(charCount == -1) { charCount = 0; } else if(charCount > 0) { var lastChar = this.group.members[charCount - 1]; xPos = lastChar.x + lastChar.get_width() - this.x; yPos = lastChar.y + lastChar.get_height() - this.font.maxHeight - this.y; } var splitValues = text.split(""); var _g = 0; var _g1 = splitValues.length; while(_g < _g1) { var i = _g++; var _g2 = splitValues[i]; switch(_g2) { case "\n": xPos = 0; yPos += this.font.maxHeight; break; case " ": xPos += 40; break; default: var char = _g2; var charSprite; if(this.group.members.length <= charCount) { charSprite = new funkin_ui_AtlasChar(null,null,this.font.atlas,char); } else { charSprite = this.group.members[charCount]; charSprite.revive(); charSprite.set_char(char); charSprite.set_alpha(1); } charSprite.set_x(xPos); charSprite.set_y(yPos + this.font.maxHeight - charSprite.get_height()); this.add(charSprite); xPos += charSprite.get_width(); ++charCount; } } } ,toString: function() { var value = this.x; var _this = flixel_util_LabelValuePair._pool.get(); _this.label = "x"; _this.value = value; var value = this.y; var _this1 = flixel_util_LabelValuePair._pool.get(); _this1.label = "y"; _this1.value = value; var value = this.text; var _this2 = flixel_util_LabelValuePair._pool.get(); _this2.label = "text"; _this2.value = value; return "InputItem, " + flixel_util_FlxStringUtil.getDebugString([_this,_this1,_this2]); } ,__class__: funkin_ui_AtlasText ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{get_maxHeight:"get_maxHeight",get_caseAllowed:"get_caseAllowed",get_atlas:"get_atlas",set_text:"set_text"}) }); var funkin_ui_AtlasChar = function(x,y,atlas,char) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } flixel_FlxSprite.call(this,x,y); this.set_frames(atlas); this.set_char(char); }; $hxClasses["funkin.ui.AtlasChar"] = funkin_ui_AtlasChar; funkin_ui_AtlasChar.__name__ = "funkin.ui.AtlasChar"; funkin_ui_AtlasChar.__super__ = flixel_FlxSprite; funkin_ui_AtlasChar.prototype = $extend(flixel_FlxSprite.prototype,{ char: null ,set_char: function(value) { if(this.char != value) { var prefix = this.getAnimPrefix(value); this.animation.addByPrefix("anim",prefix,24); if(this.animation.exists("anim")) { this.animation.play("anim"); } else { haxe_Log.trace("Could not find animation for char \"" + value + "\"",{ fileName : "source/funkin/ui/AtlasText.hx", lineNumber : 188, className : "funkin.ui.AtlasChar", methodName : "set_char"}); } this.updateHitbox(); } return this.char = value; } ,getAnimPrefix: function(char) { switch(char) { case "!": return "-exclamation point-"; case "&": return "-andpersand-"; case "'": return "-apostraphie-"; case "*": return "-multiply x-"; case ",": return "-comma-"; case "-": return "-dash-"; case ".": return "-period-"; case "/": return "-forward slash-"; case "<": return "-less than-"; case ">": return "-greater than-"; case "?": return "-question mark-"; case "\\": return "-back slash-"; case "“": return "-start quote-"; case "”": return "-end quote-"; case "←": return "-left arrow-"; case "↑": return "-up arrow-"; case "→": return "-right arrow-"; case "↓": return "-down arrow-"; case "♡": return "-heart-"; case "♥": return "-heart-"; case "😠": return "-angry faic-"; default: return char; } } ,__class__: funkin_ui_AtlasChar ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_char:"set_char"}) }); var funkin_ui__$AtlasText_AtlasFontData = function(name) { this.caseAllowed = funkin_ui_Case.Both; this.maxHeight = 0.0; var fontName = name; this.atlas = funkin_Paths.getSparrowAtlas("fonts/" + fontName.toLowerCase()); if(this.atlas == null) { flixel_FlxG.log.advanced("Could not find font atlas for font \"" + fontName + "\".",flixel_system_debug_log_LogStyle.WARNING,true); return; } this.atlas.parent.set_destroyOnNoUse(false); this.atlas.parent.persist = true; var containsUpper = false; var containsLower = false; var _g = 0; var _g1 = this.atlas.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; this.maxHeight = Math.max(this.maxHeight,frame.frame.height); if(!containsUpper) { containsUpper = funkin_ui__$AtlasText_AtlasFontData.upperChar.match(frame.name); } if(!containsLower) { containsLower = funkin_ui__$AtlasText_AtlasFontData.lowerChar.match(frame.name); } } if(containsUpper != containsLower) { this.caseAllowed = containsUpper ? funkin_ui_Case.Upper : funkin_ui_Case.Lower; } }; $hxClasses["funkin.ui._AtlasText.AtlasFontData"] = funkin_ui__$AtlasText_AtlasFontData; funkin_ui__$AtlasText_AtlasFontData.__name__ = "funkin.ui._AtlasText.AtlasFontData"; funkin_ui__$AtlasText_AtlasFontData.prototype = { atlas: null ,maxHeight: null ,caseAllowed: null ,__class__: funkin_ui__$AtlasText_AtlasFontData }; var funkin_ui_Case = $hxEnums["funkin.ui.Case"] = { __ename__:"funkin.ui.Case",__constructs__:null ,Both: {_hx_name:"Both",_hx_index:0,__enum__:"funkin.ui.Case",toString:$estr} ,Upper: {_hx_name:"Upper",_hx_index:1,__enum__:"funkin.ui.Case",toString:$estr} ,Lower: {_hx_name:"Lower",_hx_index:2,__enum__:"funkin.ui.Case",toString:$estr} }; funkin_ui_Case.__constructs__ = [funkin_ui_Case.Both,funkin_ui_Case.Upper,funkin_ui_Case.Lower]; funkin_ui_Case.__empty_constructs__ = [funkin_ui_Case.Both,funkin_ui_Case.Upper,funkin_ui_Case.Lower]; var funkin_ui_MenuItem = function(x,y,weekNum,weekType) { if(weekNum == null) { weekNum = 0; } this.fakeFramerate = Math.round(1 / flixel_FlxG.elapsed / 10); this.isFlashing = false; this.flashingInt = 0; this.targetY = 0; flixel_group_FlxTypedSpriteGroup.call(this,x,y); var weekStr; switch(weekType) { case "WEEK": weekStr = "week"; break; case "WEEKEND": weekStr = "weekend"; break; } this.week = new flixel_FlxSprite().loadGraphic(funkin_Paths.image("storymenu/" + weekStr + weekNum)); this.add(this.week); }; $hxClasses["funkin.ui.MenuItem"] = funkin_ui_MenuItem; funkin_ui_MenuItem.__name__ = "funkin.ui.MenuItem"; funkin_ui_MenuItem.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_MenuItem.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ targetY: null ,week: null ,flashingInt: null ,isFlashing: null ,startFlashing: function() { this.isFlashing = true; } ,fakeFramerate: null ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); this.set_y(funkin_util_MathUtil.coolLerp(this.y,this.targetY * 120 + 480,0.17)); if(this.isFlashing) { this.flashingInt += 1; } if(this.flashingInt % this.fakeFramerate >= Math.floor(this.fakeFramerate / 2)) { this.week.set_color(-13369345); } else { this.week.set_color(-1); } } ,__class__: funkin_ui_MenuItem }); var funkin_ui_MenuTypedItem = function(x,y,label,name,callback) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } funkin_ui_MenuListItem.call(this,x,y,name,callback); this.set_label(label); }; $hxClasses["funkin.ui.MenuTypedItem"] = funkin_ui_MenuTypedItem; funkin_ui_MenuTypedItem.__name__ = "funkin.ui.MenuTypedItem"; funkin_ui_MenuTypedItem.__super__ = funkin_ui_MenuListItem; funkin_ui_MenuTypedItem.prototype = $extend(funkin_ui_MenuListItem.prototype,{ label: null ,setEmptyBackground: function() { var oldWidth = this.get_width(); var oldHeight = this.get_height(); this.makeGraphic(1,1,0); this.set_width(oldWidth); this.set_height(oldHeight); } ,set_label: function(value) { if(value != null) { value.set_x(this.x); value.set_y(this.y); value.set_alpha(this.alpha); } return this.label = value; } ,update: function(elapsed) { funkin_ui_MenuListItem.prototype.update.call(this,elapsed); if(this.label != null) { this.label.update(elapsed); } } ,draw: function() { funkin_ui_MenuListItem.prototype.draw.call(this); if(this.label != null) { this.label.set_cameras(this.get_cameras()); var this1 = this.label.scrollFactor; var p = this.scrollFactor; var x = p.x; var y = p.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(p._weak) { p.put(); } this.label.draw(); } } ,set_alpha: function(value) { funkin_ui_MenuListItem.prototype.set_alpha.call(this,value); if(this.label != null) { this.label.set_alpha(this.alpha); } return this.alpha; } ,set_x: function(value) { funkin_ui_MenuListItem.prototype.set_x.call(this,value); if(this.label != null) { this.label.set_x(this.x); } return this.x; } ,set_y: function(Value) { funkin_ui_MenuListItem.prototype.set_y.call(this,Value); if(this.label != null) { this.label.set_y(this.y); } return this.y; } ,__class__: funkin_ui_MenuTypedItem ,__properties__: $extend(funkin_ui_MenuListItem.prototype.__properties__,{set_label:"set_label"}) }); var funkin_ui_NavControls = $hxEnums["funkin.ui.NavControls"] = { __ename__:"funkin.ui.NavControls",__constructs__:null ,Horizontal: {_hx_name:"Horizontal",_hx_index:0,__enum__:"funkin.ui.NavControls",toString:$estr} ,Vertical: {_hx_name:"Vertical",_hx_index:1,__enum__:"funkin.ui.NavControls",toString:$estr} ,Both: {_hx_name:"Both",_hx_index:2,__enum__:"funkin.ui.NavControls",toString:$estr} ,Columns: ($_=function(num) { return {_hx_index:3,num:num,__enum__:"funkin.ui.NavControls",toString:$estr}; },$_._hx_name="Columns",$_.__params__ = ["num"],$_) ,Rows: ($_=function(num) { return {_hx_index:4,num:num,__enum__:"funkin.ui.NavControls",toString:$estr}; },$_._hx_name="Rows",$_.__params__ = ["num"],$_) }; funkin_ui_NavControls.__constructs__ = [funkin_ui_NavControls.Horizontal,funkin_ui_NavControls.Vertical,funkin_ui_NavControls.Both,funkin_ui_NavControls.Columns,funkin_ui_NavControls.Rows]; funkin_ui_NavControls.__empty_constructs__ = [funkin_ui_NavControls.Horizontal,funkin_ui_NavControls.Vertical,funkin_ui_NavControls.Both]; var funkin_ui_WrapMode = $hxEnums["funkin.ui.WrapMode"] = { __ename__:"funkin.ui.WrapMode",__constructs__:null ,Horizontal: {_hx_name:"Horizontal",_hx_index:0,__enum__:"funkin.ui.WrapMode",toString:$estr} ,Vertical: {_hx_name:"Vertical",_hx_index:1,__enum__:"funkin.ui.WrapMode",toString:$estr} ,Both: {_hx_name:"Both",_hx_index:2,__enum__:"funkin.ui.WrapMode",toString:$estr} ,None: {_hx_name:"None",_hx_index:3,__enum__:"funkin.ui.WrapMode",toString:$estr} }; funkin_ui_WrapMode.__constructs__ = [funkin_ui_WrapMode.Horizontal,funkin_ui_WrapMode.Vertical,funkin_ui_WrapMode.Both,funkin_ui_WrapMode.None]; funkin_ui_WrapMode.__empty_constructs__ = [funkin_ui_WrapMode.Horizontal,funkin_ui_WrapMode.Vertical,funkin_ui_WrapMode.Both,funkin_ui_WrapMode.None]; var funkin_ui_Prompt = function(text,style) { if(style == null) { style = funkin_ui_ButtonStyle.Ok; } this.style = style; flixel_FlxSubState.call(this,-2147483648); this.buttons = new funkin_ui_TextMenuList(funkin_ui_NavControls.Horizontal); this.field = new funkin_ui_AtlasText(null,null,text,"bold"); var this1 = this.field.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); }; $hxClasses["funkin.ui.Prompt"] = funkin_ui_Prompt; funkin_ui_Prompt.__name__ = "funkin.ui.Prompt"; funkin_ui_Prompt.__super__ = flixel_FlxSubState; funkin_ui_Prompt.prototype = $extend(flixel_FlxSubState.prototype,{ onYes: null ,onNo: null ,buttons: null ,field: null ,back: null ,style: null ,create: function() { flixel_FlxSubState.prototype.create.call(this); this.field.set_y(100); var _this = this.field; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } this.add(this.field); this.createButtons(); this.add(this.buttons); } ,createBg: function(width,height,color) { if(color == null) { color = -8355712; } this.back = new flixel_FlxSprite(); this.back.makeGraphic(width,height,color,false,"prompt-bg"); var _this = this.back; var axes = 17; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } this.add(this.back); this.members.unshift(this.members.pop()); } ,createBgFromMargin: function(margin,color) { if(color == null) { color = -8355712; } if(margin == null) { margin = 100; } this.createBg(flixel_FlxG.width - margin * 2 | 0,flixel_FlxG.height - margin * 2 | 0,color); } ,setButtons: function(style) { if(this.style != style) { this.style = style; this.createButtons(); } } ,createButtons: function() { while(this.buttons.members.length > 0) this.buttons.remove(this.buttons.members[0],true).destroy(); var _g = this.style; switch(_g._hx_index) { case 0: this.createButtonsHelper("ok"); break; case 1: this.createButtonsHelper("yes","no"); break; case 2: var yes = _g.yes; var no = _g.no; this.createButtonsHelper(yes,no); break; case 3: this.buttons.set_exists(false); break; } } ,createButtonsHelper: function(yes,no) { var _gthis = this; this.buttons.set_exists(true); var yesButton = this.buttons.createItem(null,null,yes,null,function() { _gthis.onYes(); }); var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { yesButton.set_x((flixel_FlxG.width - yesButton.get_width()) / 2); } if(axes == 16 || axes == 17) { yesButton.set_y((flixel_FlxG.height - yesButton.get_height()) / 2); } yesButton.set_y(flixel_FlxG.height - yesButton.get_height() - 100); var this1 = yesButton.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(no != null) { yesButton.set_x(flixel_FlxG.width - yesButton.get_width() - 100); var noButton = this.buttons.createItem(null,null,no,null,function() { _gthis.onNo(); }); noButton.set_x(100); noButton.set_y(flixel_FlxG.height - noButton.get_height() - 100); var this1 = noButton.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } ,setText: function(text) { this.field.set_text(text); var _this = this.field; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } } ,__class__: funkin_ui_Prompt }); var funkin_ui_ButtonStyle = $hxEnums["funkin.ui.ButtonStyle"] = { __ename__:"funkin.ui.ButtonStyle",__constructs__:null ,Ok: {_hx_name:"Ok",_hx_index:0,__enum__:"funkin.ui.ButtonStyle",toString:$estr} ,Yes_No: {_hx_name:"Yes_No",_hx_index:1,__enum__:"funkin.ui.ButtonStyle",toString:$estr} ,Custom: ($_=function(yes,no) { return {_hx_index:2,yes:yes,no:no,__enum__:"funkin.ui.ButtonStyle",toString:$estr}; },$_._hx_name="Custom",$_.__params__ = ["yes","no"],$_) ,None: {_hx_name:"None",_hx_index:3,__enum__:"funkin.ui.ButtonStyle",toString:$estr} }; funkin_ui_ButtonStyle.__constructs__ = [funkin_ui_ButtonStyle.Ok,funkin_ui_ButtonStyle.Yes_No,funkin_ui_ButtonStyle.Custom,funkin_ui_ButtonStyle.None]; funkin_ui_ButtonStyle.__empty_constructs__ = [funkin_ui_ButtonStyle.Ok,funkin_ui_ButtonStyle.Yes_No,funkin_ui_ButtonStyle.None]; var funkin_ui_TextMenuList = function(navControls,wrapMode) { if(navControls == null) { navControls = funkin_ui_NavControls.Vertical; } funkin_ui_MenuTypedList.call(this,navControls,wrapMode); }; $hxClasses["funkin.ui.TextMenuList"] = funkin_ui_TextMenuList; funkin_ui_TextMenuList.__name__ = "funkin.ui.TextMenuList"; funkin_ui_TextMenuList.__super__ = funkin_ui_MenuTypedList; funkin_ui_TextMenuList.prototype = $extend(funkin_ui_MenuTypedList.prototype,{ createItem: function(x,y,name,font,callback,fireInstantly) { if(fireInstantly == null) { fireInstantly = false; } if(font == null) { font = "bold"; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var item = new funkin_ui_TextMenuItem(x,y,name,font,callback); item.fireInstantly = fireInstantly; return this.addItem(name,item); } ,__class__: funkin_ui_TextMenuList }); var funkin_ui_TextTypedMenuItem = function(x,y,label,name,callback) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } funkin_ui_MenuTypedItem.call(this,x,y,label,name,callback); }; $hxClasses["funkin.ui.TextTypedMenuItem"] = funkin_ui_TextTypedMenuItem; funkin_ui_TextTypedMenuItem.__name__ = "funkin.ui.TextTypedMenuItem"; funkin_ui_TextTypedMenuItem.__super__ = funkin_ui_MenuTypedItem; funkin_ui_TextTypedMenuItem.prototype = $extend(funkin_ui_MenuTypedItem.prototype,{ setItem: function(name,callback) { if(this.label != null) { this.label.set_text(name); this.label.set_alpha(this.alpha); this.set_width(this.label.get_width()); this.set_height(this.label.get_height()); } funkin_ui_MenuTypedItem.prototype.setItem.call(this,name,callback); } ,set_label: function(value) { funkin_ui_MenuTypedItem.prototype.set_label.call(this,value); this.setItem(this.name,this.callback); return value; } ,__class__: funkin_ui_TextTypedMenuItem }); var funkin_ui_TextMenuItem = function(x,y,name,font,callback) { if(font == null) { font = "bold"; } if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } funkin_ui_TextTypedMenuItem.call(this,x,y,new funkin_ui_AtlasText(0,0,name,font),name,callback); this.setEmptyBackground(); }; $hxClasses["funkin.ui.TextMenuItem"] = funkin_ui_TextMenuItem; funkin_ui_TextMenuItem.__name__ = "funkin.ui.TextMenuItem"; funkin_ui_TextMenuItem.__super__ = funkin_ui_TextTypedMenuItem; funkin_ui_TextMenuItem.prototype = $extend(funkin_ui_TextTypedMenuItem.prototype,{ __class__: funkin_ui_TextMenuItem }); var funkin_ui_credits_CreditsDataHandler = function() { }; $hxClasses["funkin.ui.credits.CreditsDataHandler"] = funkin_ui_credits_CreditsDataHandler; funkin_ui_credits_CreditsDataHandler.__name__ = "funkin.ui.credits.CreditsDataHandler"; funkin_ui_credits_CreditsDataHandler.debugPrint = function(data) { if(data == null) { haxe_Log.trace("CreditsData(NULL)",{ fileName : "source/funkin/ui/credits/CreditsDataHandler.hx", lineNumber : 22, className : "funkin.ui.credits.CreditsDataHandler", methodName : "debugPrint"}); return; } if(data.entries == null || data.entries.length == 0) { haxe_Log.trace("CreditsData(EMPTY)",{ fileName : "source/funkin/ui/credits/CreditsDataHandler.hx", lineNumber : 28, className : "funkin.ui.credits.CreditsDataHandler", methodName : "debugPrint"}); return; } var entryCount = data.entries.length; var lineCount = 0; var _g = 0; var _g1 = data.entries; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; var tmp = entry != null ? entry.body : null; var tmp1 = tmp != null ? tmp.length : null; lineCount += tmp1 != null ? tmp1 : 0; } haxe_Log.trace("CreditsData(" + entryCount + " entries containing " + lineCount + " lines)",{ fileName : "source/funkin/ui/credits/CreditsDataHandler.hx", lineNumber : 39, className : "funkin.ui.credits.CreditsDataHandler", methodName : "debugPrint"}); }; funkin_ui_credits_CreditsDataHandler.getFallback = function() { return { entries : [{ header : "Founders", body : [{ line : "ninjamuffin99"},{ line : "PhantomArcade"},{ line : "Kawai Sprite"},{ line : "evilsk8r"}]}]}; }; funkin_ui_credits_CreditsDataHandler.fetchBackerEntries = function() { return []; }; var funkin_ui_credits_CreditsDataMacro = function() { }; $hxClasses["funkin.ui.credits.CreditsDataMacro"] = funkin_ui_credits_CreditsDataMacro; funkin_ui_credits_CreditsDataMacro.__name__ = "funkin.ui.credits.CreditsDataMacro"; var funkin_ui_credits_CreditsState = function() { this.scrollPaused = false; this.FULL_WIDTH = flixel_FlxG.width - funkin_ui_credits_CreditsState.SCREEN_PAD * 2; this.STARTING_HEIGHT = flixel_FlxG.height; funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.ui.credits.CreditsState"] = funkin_ui_credits_CreditsState; funkin_ui_credits_CreditsState.__name__ = "funkin.ui.credits.CreditsState"; funkin_ui_credits_CreditsState.__super__ = funkin_ui_MusicBeatState; funkin_ui_credits_CreditsState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ STARTING_HEIGHT: null ,FULL_WIDTH: null ,creditsGroup: null ,scrollPaused: null ,create: function() { funkin_ui_MusicBeatState.prototype.create.call(this); var bg = new flixel_FlxSprite(null,null,funkin_Paths.image("menuDesat")); bg.scrollFactor.set_x(0); bg.scrollFactor.set_y(0); bg.setGraphicSize(flixel_FlxG.width | 0); bg.updateHitbox(); bg.set_x(0); bg.set_y(0); bg.set_alpha(0.1); bg.set_visible(true); bg.set_color(-4882724); this.creditsGroup = new flixel_group_FlxTypedSpriteGroup(); this.creditsGroup.set_x(funkin_ui_credits_CreditsState.SCREEN_PAD); this.creditsGroup.set_y(this.STARTING_HEIGHT); this.buildCreditsGroup(); this.add(this.creditsGroup); funkin_audio_FunkinSound.playMusic("freeplayRandom",{ startingVolume : 0.0, overrideExisting : true, restartTrack : true, loop : true}); var _this = flixel_FlxG.sound.music; var Duration = 6; var From = 0; var To = 0.8; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } ,buildCreditsGroup: function() { var y = 0; var _g = 0; var _g1 = funkin_ui_credits_CreditsDataHandler.CREDITS_DATA.entries; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; if(entry.header != null) { var header = this.buildCreditsLine(entry.header,y,true,funkin_ui_credits_CreditsSide.Left); header.set_bold(true); this.creditsGroup.add(header); y += funkin_ui_credits_CreditsState.CREDITS_HEADER_FONT_SIZE + header.textField.get_numLines() * funkin_ui_credits_CreditsState.CREDITS_HEADER_FONT_SIZE; } var _g2 = 0; var tmp = entry != null ? entry.body : null; var _g3 = tmp != null ? tmp : []; while(_g2 < _g3.length) { var line = _g3[_g2]; ++_g2; var entry1 = this.buildCreditsLine(line.line,y,false,funkin_ui_credits_CreditsSide.Left); this.creditsGroup.add(entry1); y += funkin_ui_credits_CreditsState.CREDITS_FONT_SIZE * entry1.textField.get_numLines(); } if(entry.appendBackers) { var backers = funkin_ui_credits_CreditsDataHandler.fetchBackerEntries(); var _g4 = 0; while(_g4 < backers.length) { var backer = backers[_g4]; ++_g4; this.creditsGroup.add(this.buildCreditsLine(backer,y,false,funkin_ui_credits_CreditsSide.Left)); y += funkin_ui_credits_CreditsState.CREDITS_FONT_SIZE; } } y += funkin_ui_credits_CreditsState.CREDITS_FONT_SIZE * 2.5; } } ,buildCreditsLine: function(text,yPos,header,side) { if(side == null) { side = funkin_ui_credits_CreditsSide.Center; } var xPos = side == funkin_ui_credits_CreditsSide.Right ? this.FULL_WIDTH / 2 : 0; var width = side == funkin_ui_credits_CreditsSide.Center ? this.FULL_WIDTH : this.FULL_WIDTH / 2; var size = header ? funkin_ui_credits_CreditsState.CREDITS_HEADER_FONT_SIZE : funkin_ui_credits_CreditsState.CREDITS_FONT_SIZE; var creditsLine = new flixel_text_FlxText(xPos,yPos,width,text); creditsLine.setFormat(funkin_ui_credits_CreditsState.CREDITS_FONT,size,funkin_ui_credits_CreditsState.CREDITS_FONT_COLOR,"left",flixel_text_FlxTextBorderStyle.OUTLINE,funkin_ui_credits_CreditsState.CREDITS_FONT_STROKE_COLOR,true); return creditsLine; } ,update: function(elapsed) { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); if(!this.scrollPaused) { var tmp; if(!funkin_PlayerSettings.player1.controls._accept.check()) { var _this = flixel_FlxG.keys.pressed; tmp = _this.keyManager.checkStatusUnsafe(32,_this.status); } else { tmp = true; } if(tmp) { var fh = this.creditsGroup; fh.set_y(fh.y - funkin_ui_credits_CreditsState.CREDITS_SCROLL_FAST_SPEED * elapsed); } else { var fh = this.creditsGroup; fh.set_y(fh.y - funkin_ui_credits_CreditsState.CREDITS_SCROLL_BASE_SPEED * elapsed); } } if(funkin_PlayerSettings.player1.controls._back.check() || this.hasEnded()) { this.exit(); } else { var tmp = funkin_PlayerSettings.player1.controls._pause.check(); } } ,hasEnded: function() { return this.creditsGroup.y < -this.creditsGroup.get_height(); } ,exit: function() { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,destroy: function() { funkin_ui_MusicBeatState.prototype.destroy.call(this); } ,__class__: funkin_ui_credits_CreditsState }); var funkin_ui_credits_CreditsSide = $hxEnums["funkin.ui.credits.CreditsSide"] = { __ename__:"funkin.ui.credits.CreditsSide",__constructs__:null ,Left: {_hx_name:"Left",_hx_index:0,__enum__:"funkin.ui.credits.CreditsSide",toString:$estr} ,Center: {_hx_name:"Center",_hx_index:1,__enum__:"funkin.ui.credits.CreditsSide",toString:$estr} ,Right: {_hx_name:"Right",_hx_index:2,__enum__:"funkin.ui.credits.CreditsSide",toString:$estr} }; funkin_ui_credits_CreditsSide.__constructs__ = [funkin_ui_credits_CreditsSide.Left,funkin_ui_credits_CreditsSide.Center,funkin_ui_credits_CreditsSide.Right]; funkin_ui_credits_CreditsSide.__empty_constructs__ = [funkin_ui_credits_CreditsSide.Left,funkin_ui_credits_CreditsSide.Center,funkin_ui_credits_CreditsSide.Right]; var funkin_ui_debug_DebugMenuSubState = function(bgColor) { funkin_ui_MusicBeatSubState.call(this,bgColor); }; $hxClasses["funkin.ui.debug.DebugMenuSubState"] = funkin_ui_debug_DebugMenuSubState; funkin_ui_debug_DebugMenuSubState.__name__ = "funkin.ui.debug.DebugMenuSubState"; funkin_ui_debug_DebugMenuSubState.__super__ = funkin_ui_MusicBeatSubState; funkin_ui_debug_DebugMenuSubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ items: null ,camFocusPoint: null ,create: function() { flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; funkin_ui_MusicBeatSubState.prototype.create.call(this); this.set_bgColor(0); this.camFocusPoint = new flixel_FlxObject(0,0); this.add(this.camFocusPoint); flixel_FlxG.camera.follow(this.camFocusPoint,null,0.06); var menuBG = new flixel_FlxSprite().loadGraphic(funkin_Paths.image("menuDesat")); menuBG.set_color(-11751600); menuBG.setGraphicSize(menuBG.get_width() * 1.1 | 0); menuBG.updateHitbox(); if(17 == 1 || 17 == 17) { menuBG.set_x((flixel_FlxG.width - menuBG.get_width()) / 2); } if(17 == 16 || 17 == 17) { menuBG.set_y((flixel_FlxG.height - menuBG.get_height()) / 2); } var this1 = menuBG.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(menuBG); this.items = new funkin_ui_TextMenuList(); this.items.onChange.add($bind(this,this.onMenuChange)); this.add(this.items); flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; this.onMenuChange(this.createItem("CHART EDITOR",$bind(this,this.openChartEditor))); this.createItem("ANIMATION EDITOR",$bind(this,this.openAnimationEditor)); var _this = flixel_FlxG.camera; var x = this.camFocusPoint.x; var y = this.camFocusPoint.y + 500; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = new flixel_math_FlxBasePoint(x,y); var this1 = _this.scroll; var x = point.x - _this.width * 0.5; var y = point.y - _this.height * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(point._weak) { point.put(); } } ,onMenuChange: function(selected) { this.camFocusPoint.setPosition(selected.x + selected.get_width() / 2,selected.y + selected.get_height() / 2); } ,update: function(elapsed) { funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); if(funkin_PlayerSettings.player1.controls._back.check()) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); this.exitDebugMenu(); } } ,createItem: function(name,callback,fireInstantly) { if(fireInstantly == null) { fireInstantly = false; } var item = this.items.createItem(0,100 + this.items.length * 100,name,"bold",callback); item.fireInstantly = fireInstantly; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { item.set_x((flixel_FlxG.width - item.get_width()) / 2); } if(axes == 16 || axes == 17) { item.set_y((flixel_FlxG.height - item.get_height()) / 2); } return item; } ,openChartEditor: function() { flixel_addons_transition_FlxTransitionableState.skipNextTransIn = true; var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_debug_charting_ChartEditorState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,openInputOffsetTesting: function() { this.openSubState(new funkin_ui_debug_latency_LatencyState()); haxe_Log.trace("Input Offset Testing",{ fileName : "source/funkin/ui/debug/DebugMenuSubState.hx", lineNumber : 102, className : "funkin.ui.debug.DebugMenuSubState", methodName : "openInputOffsetTesting"}); } ,openAnimationEditor: function() { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_debug_anim_DebugBoundingState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); haxe_Log.trace("Animation Editor",{ fileName : "source/funkin/ui/debug/DebugMenuSubState.hx", lineNumber : 108, className : "funkin.ui.debug.DebugMenuSubState", methodName : "openAnimationEditor"}); } ,testStickers: function() { this.openSubState(new funkin_ui_transition_StickerSubState()); haxe_Log.trace("opened stickers",{ fileName : "source/funkin/ui/debug/DebugMenuSubState.hx", lineNumber : 114, className : "funkin.ui.debug.DebugMenuSubState", methodName : "testStickers"}); } ,openStageEditor: function() { haxe_Log.trace("Stage Editor",{ fileName : "source/funkin/ui/debug/DebugMenuSubState.hx", lineNumber : 119, className : "funkin.ui.debug.DebugMenuSubState", methodName : "openStageEditor"}); } ,exitDebugMenu: function() { this.close(); } ,__class__: funkin_ui_debug_DebugMenuSubState }); var funkin_ui_debug_MemoryCounter = function(x,y,color) { if(color == null) { color = 0; } if(y == null) { y = 10; } if(x == null) { x = 10; } this.memPeak = 0; openfl_text_TextField.call(this); this.set_x(x); this.set_y(y); this.set_width(500); this.set_selectable(false); this.mouseEnabled = false; this.set_defaultTextFormat(new openfl_text_TextFormat("_sans",12,color)); this.set_text("RAM: "); }; $hxClasses["funkin.ui.debug.MemoryCounter"] = funkin_ui_debug_MemoryCounter; funkin_ui_debug_MemoryCounter.__name__ = "funkin.ui.debug.MemoryCounter"; funkin_ui_debug_MemoryCounter.__super__ = openfl_text_TextField; funkin_ui_debug_MemoryCounter.prototype = $extend(openfl_text_TextField.prototype,{ memPeak: null ,__enterFrame: function(deltaTime) { var mem = Math.round(funkin_util_MemoryUtil.getMemoryUsed() / funkin_ui_debug_MemoryCounter.BYTES_PER_MEG / funkin_ui_debug_MemoryCounter.ROUND_TO) * funkin_ui_debug_MemoryCounter.ROUND_TO; if(mem > this.memPeak) { this.memPeak = mem; } this.set_text("RAM: " + mem + "mb / " + this.memPeak + "mb"); } ,__class__: funkin_ui_debug_MemoryCounter }); var funkin_ui_debug_WaveformTestState = function() { this.vertexCount = 3; funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.ui.debug.WaveformTestState"] = funkin_ui_debug_WaveformTestState; funkin_ui_debug_WaveformTestState.__name__ = "funkin.ui.debug.WaveformTestState"; funkin_ui_debug_WaveformTestState.__super__ = funkin_ui_MusicBeatState; funkin_ui_debug_WaveformTestState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ waveformData: null ,waveformData2: null ,waveformAudio: null ,timeMarker: null ,polygonSprite: null ,vertexCount: null ,create: function() { funkin_ui_MusicBeatState.prototype.create.call(this); var testSprite = new flixel_FlxSprite(0,0); testSprite.loadGraphic(funkin_Paths.image("funkay")); testSprite.updateHitbox(); testSprite.set_clipRect(new flixel_math_FlxRect(0,0,flixel_FlxG.width,flixel_FlxG.height)); this.waveformAudio = funkin_audio_FunkinSound.load(funkin_Paths.inst("bopeebo","-erect")); this.waveformData = funkin_audio_waveform_WaveformDataParser.interpretFlxSound(this.waveformAudio); this.polygonSprite = new funkin_graphics_rendering_MeshRender(flixel_FlxG.width / 2,flixel_FlxG.height / 2,-1); this.setPolygonVertices(this.vertexCount); this.add(this.polygonSprite); this.timeMarker = new flixel_FlxSprite(0,flixel_FlxG.height / 6); this.timeMarker.makeGraphic(1,flixel_FlxG.height * 2 / 3 | 0,-65536); this.add(this.timeMarker); } ,update: function(elapsed) { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(32,_this.status)) { if(this.waveformAudio.get_isPlaying()) { var _this = this.waveformAudio; _this.cleanup(_this.autoDestroy,true); } else { this.waveformAudio.play(); } } var _this = flixel_FlxG.keys.justPressed; var tmp = _this.keyManager.checkStatusUnsafe(13,_this.status); var tmp = this.waveformAudio.get_isPlaying(); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { this.vertexCount += 1; this.setPolygonVertices(this.vertexCount); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { this.vertexCount -= 1; this.setPolygonVertices(this.vertexCount); } var _this = flixel_FlxG.keys.justPressed; var tmp = _this.keyManager.checkStatusUnsafe(37,_this.status); var _this = flixel_FlxG.keys.justPressed; var tmp = _this.keyManager.checkStatusUnsafe(39,_this.status); } ,setPolygonVertices: function(count) { this.polygonSprite.clear(); var size = 100.0; var vertices = []; var angle = 0.0; var _g = 0; var _g1 = count; while(_g < _g1) { var i = _g++; var x = Math.cos(angle) * size; var y = Math.sin(angle) * size; vertices.push([x,y]); angle += 2 * Math.PI / count; } haxe_Log.trace("vertices: " + Std.string(vertices),{ fileName : "source/funkin/ui/debug/WaveformTestState.hx", lineNumber : 158, className : "funkin.ui.debug.WaveformTestState", methodName : "setPolygonVertices"}); var _this = this.polygonSprite; var index = _this.vertex_count; var pos = index << 1; _this.vertices.set(pos,0); _this.vertices.set(pos + 1,0); _this.uvtData.set(pos,0); _this.uvtData.set(pos + 1,0); _this.vertex_count++; var centerVertex = index; var firstVertex = -1; var lastVertex = -1; var _g = 0; while(_g < vertices.length) { var vertex = vertices[_g]; ++_g; var x = vertex[0]; var y = vertex[1]; var _this = this.polygonSprite; var index = _this.vertex_count; var pos = index << 1; _this.vertices.set(pos,x); _this.vertices.set(pos + 1,y); _this.uvtData.set(pos,0); _this.uvtData.set(pos + 1,0); _this.vertex_count++; var newVertex = index; if(firstVertex == -1) { firstVertex = newVertex; } if(lastVertex != -1) { this.polygonSprite.add_tri(centerVertex,lastVertex,newVertex); } lastVertex = newVertex; } this.polygonSprite.add_tri(centerVertex,lastVertex,firstVertex); } ,destroy: function() { funkin_ui_MusicBeatState.prototype.destroy.call(this); } ,__class__: funkin_ui_debug_WaveformTestState }); var funkin_ui_debug_anim_DebugBoundingState = function() { var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.oldPos = point; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; this.mouseOffset = point; this.haxeUIFocused = false; this.dropDownSetup = false; this.curView = "SPRITESHEET"; flixel_FlxState.call(this); }; $hxClasses["funkin.ui.debug.anim.DebugBoundingState"] = funkin_ui_debug_anim_DebugBoundingState; funkin_ui_debug_anim_DebugBoundingState.__name__ = "funkin.ui.debug.anim.DebugBoundingState"; funkin_ui_debug_anim_DebugBoundingState.__super__ = flixel_FlxState; funkin_ui_debug_anim_DebugBoundingState.prototype = $extend(flixel_FlxState.prototype,{ bg: null ,fileInfo: null ,txtGrp: null ,hudCam: null ,curView: null ,spriteSheetView: null ,offsetView: null ,animDropDownMenu: null ,dropDownSetup: null ,onionSkinChar: null ,txtOffsetShit: null ,uiStuff: null ,haxeUIFocused: null ,get_haxeUIFocused: function() { var tmp = this.hudCam; var hudMousePos = flixel_FlxG.mouse.getScreenPosition(tmp != null ? tmp : flixel_FlxG.camera); return haxe_ui_core_Screen.get_instance().hasSolidComponentUnderPoint(hudMousePos.x,hudMousePos.y); } ,create: function() { var _gthis = this; funkin_Paths.setCurrentLevel("week1"); this.hudCam = new flixel_FlxCamera(); this.hudCam.bgColor &= 16777215; this.hudCam.bgColor |= 0; this.bg = flixel_addons_display_FlxGridOverlay.create(10,10); var this1 = this.bg.scrollFactor; this1.set_x(0); this1.set_y(0); this.add(this.bg); flixel_FlxG.cameras.add(this.hudCam); var str = funkin_Paths.xml("ui/animation-editor/offset-editor-view"); this.uiStuff = haxe_ui_RuntimeComponentBuilder.fromAsset(str); var dropdown = this.uiStuff.findComponent("swapper"); dropdown.set_onChange(function(e) { haxe_Log.trace(e.type,{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 121, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "create"}); _gthis.curView = e.data.curView; haxe_Log.trace(e.data,{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 123, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "create"}); }); this.uiStuff.set_cameras([this.hudCam]); this.add(this.uiStuff); flixel_FlxG.cameras.setDefaultDrawTarget(flixel_FlxG.camera,true); flixel_FlxG.cameras.setDefaultDrawTarget(this.hudCam,false); this.initSpritesheetView(); this.initOffsetView(); flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); flixel_FlxState.prototype.create.call(this); } ,bf: null ,swagOutlines: null ,initSpritesheetView: function() { this.spriteSheetView = new flixel_group_FlxTypedGroup(); this.add(this.spriteSheetView); var tex = funkin_Paths.getSparrowAtlas("characters/BOYFRIEND"); this.bf = new flixel_FlxSprite(); this.bf.loadGraphic(tex.parent); this.spriteSheetView.add(this.bf); this.swagOutlines = new flixel_FlxSprite().makeGraphic(tex.parent.width,tex.parent.height,0); this.generateOutlines(tex.frames); this.txtGrp = new flixel_group_FlxTypedGroup(); this.txtGrp.set_cameras([this.hudCam]); this.spriteSheetView.add(this.txtGrp); this.addInfo("boyfriend.xml",""); this.addInfo("Width",this.bf.get_width()); this.addInfo("Height",this.bf.get_height()); this.spriteSheetView.add(this.swagOutlines); openfl_Lib.get_current().stage.window.onDropFile.add(function(path) { var swagList = path; var objShit = URL.createObjectURL(swagList.item(0)); haxe_Log.trace(objShit,{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 178, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "initSpritesheetView"}); var funnysound = new funkin_audio_FunkinSound().loadStream("https://cdn.discordapp.com/attachments/767500676166451231/817821618251759666/Flutter.mp3",false,false,null,function() { haxe_Log.trace("LOADED SHIT??",{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 182, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "initSpritesheetView"}); }); funnysound.set_volume(1); funnysound.play(); var urlShit = new openfl_net_URLLoader(new openfl_net_URLRequest(objShit)); new flixel_util_FlxTimer().start(3,function(tmr) { var tmp = urlShit.dataFormat == 0; haxe_Log.trace(urlShit.dataFormat == null ? "null" : openfl_net_URLLoaderDataFormat.toString(urlShit.dataFormat),{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 200, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "initSpritesheetView"}); }); }); } ,generateOutlines: function(frameShit) { this.swagOutlines.get_pixels().fillRect(new openfl_geom_Rectangle(0,0,this.swagOutlines.get_width(),this.swagOutlines.get_height()),0); var _g = 0; while(_g < frameShit.length) { var i = frameShit[_g]; ++_g; var lineStyle = { color : -65536, thickness : 2}; var uvW = i.uv.width * i.parent.width - i.uv.x * i.parent.width; var uvH = i.uv.height * i.parent.height - i.uv.y * i.parent.height; flixel_util_FlxSpriteUtil.drawRect(this.swagOutlines,i.uv.x * i.parent.width,i.uv.y * i.parent.height,uvW,uvH,0,lineStyle); } } ,initOffsetView: function() { var _gthis = this; this.offsetView = new flixel_group_FlxTypedGroup(); this.add(this.offsetView); this.onionSkinChar = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width * 2,flixel_FlxG.height * 2,0); this.onionSkinChar.set_visible(false); this.offsetView.add(this.onionSkinChar); this.txtOffsetShit = new flixel_text_FlxText(20,20,0,"",20); this.txtOffsetShit.setFormat(funkin_Paths.font("vcr.ttf"),26,-1,"left",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); this.txtOffsetShit.set_cameras([this.hudCam]); this.offsetView.add(this.txtOffsetShit); this.animDropDownMenu = new flixel_addons_ui_FlxUIDropDownMenu(0,0,flixel_addons_ui_FlxUIDropDownMenu.makeStrIdLabelArray(["weed"],true)); this.animDropDownMenu.set_cameras([this.hudCam]); this.animDropDownMenu.set_x(flixel_FlxG.width - this.animDropDownMenu.get_width() - 20); this.animDropDownMenu.set_y(flixel_FlxG.height - this.animDropDownMenu.get_height() - 20); this.offsetView.add(this.animDropDownMenu); var characters = funkin_play_character_CharacterDataParser.listCharacterIds(); var _g = []; var _g1 = 0; var _g2 = characters; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; var char = funkin_play_character_CharacterDataParser.fetchCharacterData(v); if(char.renderType != "animateatlas") { _g.push(v); } } characters = _g; characters.sort(funkin_util_SortUtil.alphabetically); var charDropdown = this.uiStuff.findComponent("characterDropdown"); var _g = 0; while(_g < characters.length) { var char = characters[_g]; ++_g; charDropdown.get_dataSource().add({ text : char}); } charDropdown.set_onChange(function(e) { _gthis.loadAnimShit(e.data.text); }); } ,mouseOffset: null ,oldPos: null ,mouseOffsetMovement: function() { if(this.swagChar != null) { if(flixel_FlxG.mouse._leftButton.current == 2) { var this1 = this.mouseOffset; var x = flixel_FlxG.mouse.x - -this.swagChar.animOffsets[0]; var y = flixel_FlxG.mouse.y - -this.swagChar.animOffsets[1]; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } var _this = flixel_FlxG.mouse._leftButton; if(_this.current == 1 || _this.current == 2) { this.swagChar.set_animOffsets([(flixel_FlxG.mouse.x - this.mouseOffset.x) * -1,(flixel_FlxG.mouse.y - this.mouseOffset.y) * -1]); var this1 = this.swagChar.animationOffsets; var key = this.animDropDownMenu.get_selectedLabel(); this1.h[key] = this.swagChar.animOffsets; this.txtOffsetShit.set_text("Offset: " + Std.string(this.swagChar.animOffsets)); } } } ,addInfo: function(str,value) { var swagText = new flixel_text_FlxText(10,10 + 28 * this.txtGrp.length); swagText.setFormat(funkin_Paths.font("vcr.ttf"),26,-1,"left",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); var this1 = swagText.scrollFactor; this1.set_x(0); this1.set_y(0); this.txtGrp.add(swagText); swagText.set_text(str + ": " + Std.string(value)); } ,clearInfo: function() { this.txtGrp.clear(); } ,checkLibrary: function(library) { haxe_Log.trace(openfl_utils_Assets.hasLibrary(library),{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 330, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "checkLibrary"}); if(openfl_utils_Assets.getLibrary(library) == null) { if(!Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraryPaths.h,library)) { throw haxe_Exception.thrown("Missing library: " + library); } openfl_utils_Assets.loadLibrary(library).onComplete(function(_) { haxe_Log.trace("LOADED... awesomeness...",{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 338, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "checkLibrary"}); }); } } ,update: function(elapsed) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(49,_this.status)) { var lv = this.uiStuff.findComponent("swapper"); lv.set_selectedIndex(0); this.curView = "SPRITESHEET"; } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(50,_this.status)) { var lv = this.uiStuff.findComponent("swapper"); lv.set_selectedIndex(1); this.curView = "ANIMATIONS"; if(this.swagChar != null) { var _this = flixel_FlxG.camera; var point = this.swagChar.getMidpoint(); var this1 = _this.scroll; var x = point.x - _this.width * 0.5; var y = point.y - _this.height * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); if(point._weak) { point.put(); } flixel_FlxG.camera.set_zoom(0.95); } } switch(this.curView) { case "ANIMATIONS": this.spriteSheetView.set_visible(false); this.offsetView.set_visible(true); this.offsetView.set_active(true); this.offsetControls(); if(!this.get_haxeUIFocused()) { this.mouseOffsetMovement(); } break; case "SPRITESHEET": this.spriteSheetView.set_visible(true); this.offsetView.set_visible(false); this.offsetView.set_active(false); break; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(72,_this.status)) { this.hudCam.set_visible(!this.hudCam.visible); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(115,_this.status)) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } funkin_util_MouseUtil.mouseCamDrag(); if(!this.get_haxeUIFocused()) { funkin_util_MouseUtil.mouseWheelZoom(); } this.bg.setGraphicSize(this.bg.get_width() / flixel_FlxG.camera.zoom | 0); flixel_FlxState.prototype.update.call(this,elapsed); } ,offsetControls: function() { var tmp; var _this = flixel_FlxG.keys.justPressed; if(!_this.keyManager.checkStatusUnsafe(221,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(69,_this.status); } else { tmp = true; } if(tmp) { if(Std.parseInt(this.animDropDownMenu.get_selectedId()) + 1 <= this.animDropDownMenu.group.length) { this.animDropDownMenu.set_selectedId(Std.string(Std.parseInt(this.animDropDownMenu.get_selectedId()) + 1)); } else { this.animDropDownMenu.set_selectedId("0"); } this.playCharacterAnimation(this.animDropDownMenu.get_selectedId(),true); } var tmp; var _this = flixel_FlxG.keys.justPressed; if(!_this.keyManager.checkStatusUnsafe(219,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(81,_this.status); } else { tmp = true; } if(tmp) { if(Std.parseInt(this.animDropDownMenu.get_selectedId()) - 1 >= 0) { this.animDropDownMenu.set_selectedId(Std.string(Std.parseInt(this.animDropDownMenu.get_selectedId()) - 1)); } else { this.animDropDownMenu.set_selectedId(Std.string(this.animDropDownMenu.group.length - 1)); } this.playCharacterAnimation(this.animDropDownMenu.get_selectedId(),true); } var tmp; var tmp1; var tmp2; var _this = flixel_FlxG.keys.justPressed; if(!_this.keyManager.checkStatusUnsafe(87,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp2 = _this.keyManager.checkStatusUnsafe(83,_this.status); } else { tmp2 = true; } if(!tmp2) { var _this = flixel_FlxG.keys.justPressed; tmp1 = _this.keyManager.checkStatusUnsafe(68,_this.status); } else { tmp1 = true; } if(!tmp1) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(65,_this.status); } else { tmp = true; } if(tmp) { var suffix = ""; var targetLabel = ""; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { suffix = "miss"; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(87,_this.status)) { targetLabel = "singUP" + suffix; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(83,_this.status)) { targetLabel = "singDOWN" + suffix; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(65,_this.status)) { targetLabel = "singLEFT" + suffix; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(68,_this.status)) { targetLabel = "singRIGHT" + suffix; } if(targetLabel != this.animDropDownMenu.get_selectedLabel()) { this.animDropDownMenu.set_selectedLabel(targetLabel); this.playCharacterAnimation(this.animDropDownMenu.get_selectedId(),true); } else { this.playCharacterAnimation(this.animDropDownMenu.get_selectedId(),false); } } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(70,_this.status)) { this.onionSkinChar.set_visible(!this.onionSkinChar.visible); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(32,_this.status)) { this.animDropDownMenu.set_selectedLabel("idle"); this.playCharacterAnimation(this.animDropDownMenu.get_selectedId(),true); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(13,_this.status)) { this.playCharacterAnimation(this.animDropDownMenu.get_selectedId(),false); } var tmp; var tmp1; var tmp2; var _this = flixel_FlxG.keys.justPressed; if(!_this.keyManager.checkStatusUnsafe(39,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp2 = _this.keyManager.checkStatusUnsafe(37,_this.status); } else { tmp2 = true; } if(!tmp2) { var _this = flixel_FlxG.keys.justPressed; tmp1 = _this.keyManager.checkStatusUnsafe(38,_this.status); } else { tmp1 = true; } if(!tmp1) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(40,_this.status); } else { tmp = true; } if(tmp) { var animName = this.animDropDownMenu.get_selectedLabel(); var coolValues = this.swagChar.animationOffsets.h[animName].slice(); var multiplier = 5; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { multiplier = 1; } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { multiplier = 10; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { coolValues[0] -= multiplier; } else { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { coolValues[0] += multiplier; } else { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { coolValues[1] += multiplier; } else { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { coolValues[1] -= multiplier; } } } } var this1 = this.swagChar.animationOffsets; var key = this.animDropDownMenu.get_selectedLabel(); this1.h[key] = coolValues; this.swagChar.playAnimation(animName); this.txtOffsetShit.set_text("Offset: " + Std.string(coolValues)); haxe_Log.trace(animName,{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 479, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "offsetControls"}); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(27,_this.status)) { var _this = flixel_FlxG.keys.pressed; var outputString = _this.keyManager.checkStatusUnsafe(17,_this.status) ? this.buildOutputStringOld() : this.buildOutputStringNew(); var _this = flixel_FlxG.keys.pressed; this.saveOffsets(outputString,_this.keyManager.checkStatusUnsafe(17,_this.status) ? this.swagChar.characterId + "Offsets.txt" : this.swagChar.characterId + ".json"); } } ,buildOutputStringOld: function() { var outputString = ""; var h = this.swagChar.animationOffsets.h; var i_h = h; var i_keys = Object.keys(h); var i_length = i_keys.length; var i_current = 0; while(i_current < i_length) { var i = i_keys[i_current++]; outputString += i + " " + this.swagChar.animationOffsets.h[i][0] + " " + this.swagChar.animationOffsets.h[i][1] + "\n"; } StringTools.trim(outputString); return outputString; } ,buildOutputStringNew: function() { var charData = Reflect.copy(this.swagChar._data); var _g = 0; var _g1 = charData.animations; while(_g < _g1.length) { var charDataAnim = _g1[_g]; ++_g; var animName = charDataAnim.name; charDataAnim.offsets = this.swagChar.animationOffsets.h[animName]; } return funkin_util_SerializerUtil.toJSON(charData,true); } ,swagChar: null ,loadAnimShit: function(char) { var _gthis = this; if(this.swagChar != null) { this.offsetView.remove(this.swagChar); this.swagChar.destroy(); } this.swagChar = funkin_play_character_CharacterDataParser.fetchCharacter(char); this.swagChar.set_x(100); this.swagChar.set_y(100); this.offsetView.add(this.swagChar); if(this.swagChar == null || this.swagChar.frames == null) { haxe_Log.trace("ERROR: Failed to load character " + char + "!",{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 537, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "loadAnimShit"}); } this.generateOutlines(this.swagChar.frames.frames); this.bf.set_pixels(this.swagChar.get_pixels()); this.clearInfo(); this.addInfo(this.swagChar._data.assetPath,""); this.addInfo("Width",this.bf.get_width()); this.addInfo("Height",this.bf.get_height()); this.characterAnimNames = []; var h = this.swagChar.animationOffsets.h; var i_h = h; var i_keys = Object.keys(h); var i_length = i_keys.length; var i_current = 0; while(i_current < i_length) { var i = i_keys[i_current++]; this.characterAnimNames.push(i); haxe_Log.trace(i,{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 553, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "loadAnimShit"}); haxe_Log.trace(this.swagChar.animationOffsets.h[i],{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 554, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "loadAnimShit"}); } this.animDropDownMenu.setData(flixel_addons_ui_FlxUIDropDownMenu.makeStrIdLabelArray(this.characterAnimNames,true)); this.animDropDownMenu.callback = function(str) { _gthis.playCharacterAnimation(str,true); }; this.txtOffsetShit.set_text("Offset: " + Std.string(this.swagChar.animOffsets)); this.dropDownSetup = true; } ,characterAnimNames: null ,playCharacterAnimation: function(str,setOnionSkin) { if(setOnionSkin == null) { setOnionSkin = true; } if(setOnionSkin) { this.onionSkinChar.get_pixels().fillRect(new openfl_geom_Rectangle(0,0,flixel_FlxG.width * 2,flixel_FlxG.height * 2),0); this.onionSkinChar.stamp(this.swagChar,this.swagChar.x | 0,this.swagChar.y | 0); this.onionSkinChar.set_alpha(0.6); } var animName = this.characterAnimNames[Std.parseInt(str)]; this.swagChar.playAnimation(animName,true); haxe_Log.trace(this.swagChar.animationOffsets.h[animName],{ fileName : "source/funkin/ui/debug/anim/DebugBoundingState.hx", lineNumber : 580, className : "funkin.ui.debug.anim.DebugBoundingState", methodName : "playCharacterAnimation"}); this.txtOffsetShit.set_text("Offset: " + Std.string(this.swagChar.animOffsets)); } ,_file: null ,saveOffsets: function(saveString,fileName) { if(saveString != null && saveString.length > 0) { this._file = new openfl_net_FileReference(); this._file.addEventListener("complete",$bind(this,this.onSaveComplete)); this._file.addEventListener("cancel",$bind(this,this.onSaveCancel)); this._file.addEventListener("ioError",$bind(this,this.onSaveError)); this._file.save(saveString); } } ,onSaveComplete: function(_) { this._file.removeEventListener("complete",$bind(this,this.onSaveComplete)); this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel)); this._file.removeEventListener("ioError",$bind(this,this.onSaveError)); this._file = null; flixel_FlxG.log.advanced("Successfully saved LEVEL DATA.",flixel_system_debug_log_LogStyle.NOTICE); } ,onSaveCancel: function(_) { this._file.removeEventListener("complete",$bind(this,this.onSaveComplete)); this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel)); this._file.removeEventListener("ioError",$bind(this,this.onSaveError)); this._file = null; } ,onSaveError: function(_) { this._file.removeEventListener("complete",$bind(this,this.onSaveComplete)); this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel)); this._file.removeEventListener("ioError",$bind(this,this.onSaveError)); this._file = null; flixel_FlxG.log.advanced("Problem saving Level data",flixel_system_debug_log_LogStyle.ERROR,true); } ,__class__: funkin_ui_debug_anim_DebugBoundingState ,__properties__: $extend(flixel_FlxState.prototype.__properties__,{get_haxeUIFocused:"get_haxeUIFocused"}) }); var funkin_ui_debug_anim_FlxAnimateTest = function() { funkin_ui_MusicBeatState.call(this); this.set_bgColor(-6710887); }; $hxClasses["funkin.ui.debug.anim.FlxAnimateTest"] = funkin_ui_debug_anim_FlxAnimateTest; funkin_ui_debug_anim_FlxAnimateTest.__name__ = "funkin.ui.debug.anim.FlxAnimateTest"; funkin_ui_debug_anim_FlxAnimateTest.__super__ = funkin_ui_MusicBeatState; funkin_ui_debug_anim_FlxAnimateTest.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ sprite: null ,create: function() { funkin_ui_MusicBeatState.prototype.create.call(this); this.sprite = new funkin_graphics_adobeanimate_FlxAtlasSprite(0,0,"shared:assets/shared/images/characters/tankman"); this.add(this.sprite); this.sprite.playAnimation("idle"); } ,update: function(elapsed) { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(32,_this.status)) { this.sprite.playAnimation("idle"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(87,_this.status)) { this.sprite.playAnimation("singUP"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(65,_this.status)) { this.sprite.playAnimation("singLEFT"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(83,_this.status)) { this.sprite.playAnimation("singDOWN"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(68,_this.status)) { this.sprite.playAnimation("singRIGHT"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(74,_this.status)) { this.sprite.playAnimation("hehPrettyGood"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(75,_this.status)) { this.sprite.playAnimation("ugh"); } } ,__class__: funkin_ui_debug_anim_FlxAnimateTest }); var haxe_ui_backend_flixel_UIState = function() { this.root = new haxe_ui_containers_Box(); this.bindingRoot = false; funkin_ui_MusicBeatState.call(this); }; $hxClasses["haxe.ui.backend.flixel.UIState"] = haxe_ui_backend_flixel_UIState; haxe_ui_backend_flixel_UIState.__name__ = "haxe.ui.backend.flixel.UIState"; haxe_ui_backend_flixel_UIState.__super__ = funkin_ui_MusicBeatState; haxe_ui_backend_flixel_UIState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ bindingRoot: null ,root: null ,applyRootLayout: function(l) { if(l == "vbox") { this.root.set_layout(haxe_ui_layouts_LayoutFactory.createFromName("vertical")); } else if(l == "hbox") { this.root.set_layout(haxe_ui_layouts_LayoutFactory.createFromName("horizontal")); } } ,create: function() { var _gthis = this; funkin_ui_MusicBeatState.prototype.create.call(this); this.root.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { _gthis.onReady(); }); this.add(this.root); } ,onReady: function() { } ,validateNow: function() { this.root.validateNow(); } ,registerBehaviours: function() { } ,addComponent: function(child) { return this.root.addComponent(child); } ,get_width: function() { return this.root.get_width(); } ,set_width: function(value) { this.root.set_width(value); return value; } ,get_percentWidth: function() { return this.root.get_percentWidth(); } ,set_percentWidth: function(value) { this.root.set_percentWidth(value); return value; } ,get_height: function() { return this.root.get_height(); } ,set_height: function(value) { this.root.set_height(value); return value; } ,get_percentHeight: function() { return this.root.get_percentHeight(); } ,set_percentHeight: function(value) { this.root.set_percentHeight(value); return value; } ,get_styleString: function() { return this.root.get_styleString(); } ,set_styleString: function(value) { this.root.set_styleString(value); return value; } ,show: function() { this.root.show(); } ,hide: function() { this.root.hide(); } ,__class__: haxe_ui_backend_flixel_UIState ,__properties__: $extend(funkin_ui_MusicBeatState.prototype.__properties__,{set_styleString:"set_styleString",get_styleString:"get_styleString",set_percentHeight:"set_percentHeight",get_percentHeight:"get_percentHeight",set_height:"set_height",get_height:"get_height",set_percentWidth:"set_percentWidth",get_percentWidth:"get_percentWidth",set_width:"set_width",get_width:"get_width"}) }); var lime_utils__$Assets_LibrarySymbol = function(id) { var colonIndex = id.indexOf(":"); this.libraryName = id.substring(0,colonIndex); this.symbolName = id.substring(colonIndex + 1); this.library = lime_utils_Assets.getLibrary(this.libraryName); }; $hxClasses["lime.utils._Assets.LibrarySymbol"] = lime_utils__$Assets_LibrarySymbol; lime_utils__$Assets_LibrarySymbol.__name__ = "lime.utils._Assets.LibrarySymbol"; lime_utils__$Assets_LibrarySymbol.prototype = { library: null ,libraryName: null ,symbolName: null ,isLocal: function(type) { return this.library.isLocal(this.symbolName,type); } ,exists: function(type) { return this.library.exists(this.symbolName,type); } ,__class__: lime_utils__$Assets_LibrarySymbol }; var funkin_ui_debug_charting_ChartEditorState = function(params) { this.displayAutosavePopup = false; this.renderedSelectionSquares = new flixel_group_FlxTypedSpriteGroup(); this.renderedEvents = new flixel_group_FlxTypedSpriteGroup(); this.renderedHoldNotes = new flixel_group_FlxTypedSpriteGroup(); this.renderedNotes = new flixel_group_FlxTypedSpriteGroup(); this.menuBG = null; this.txtCopyNotif = null; this.healthIconBF = null; this.healthIconDad = null; this.selectionBoxSprite = null; this.notePreviewPlayhead = null; this.notePreviewViewport = null; this.notePreview = null; this.gridGhostEvent = null; this.gridPlayheadGhostHoldNotes = []; this.gridGhostHoldNote = null; this.gridGhostNote = null; this.gridPlayhead = new flixel_group_FlxTypedSpriteGroup(); this.measureTicks = null; this.gridTiledSprite = null; this.offsetTickBitmap = null; this.measureTickBitmap = null; this.notePreviewViewportBitmap = null; this.selectionSquareBitmap = null; this.gridBitmap = null; this.visulizerGrps = null; this.playbarHeadLayout = null; this.selectedDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; this.selectedVariation = funkin_util_Constants.DEFAULT_VARIATION; this.songChartData = new haxe_ds_StringMap(); this.songMetadata = new haxe_ds_StringMap(); this.audioVocalTrackData = new haxe_ds_StringMap(); this.audioWaveforms = new flixel_group_FlxTypedSpriteGroup(); this.audioVocalTrackGroup = new funkin_audio_VoicesGroup(); this.audioInstTrackData = new haxe_ds_StringMap(); this.audioInstTrack = null; this.welcomeMusic = new funkin_audio_FunkinSound(); this.rightStickRightGamepadHandler = new funkin_input_TurboButtonHandler([39],0.4,0.1); this.rightStickLeftGamepadHandler = new funkin_input_TurboButtonHandler([41],0.4,0.1); this.rightStickDownGamepadHandler = new funkin_input_TurboButtonHandler([40],0.4,0.1); this.rightStickUpGamepadHandler = new funkin_input_TurboButtonHandler([38],0.4,0.1); this.leftStickRightGamepadHandler = new funkin_input_TurboButtonHandler([35],0.4,0.1); this.leftStickLeftGamepadHandler = new funkin_input_TurboButtonHandler([37],0.4,0.1); this.leftStickDownGamepadHandler = new funkin_input_TurboButtonHandler([36],0.4,0.1); this.leftStickUpGamepadHandler = new funkin_input_TurboButtonHandler([34],0.4,0.1); this.dpadRightGamepadHandler = new funkin_input_TurboButtonHandler([14],0.4,0.1); this.dpadLeftGamepadHandler = new funkin_input_TurboButtonHandler([13],0.4,0.1); this.dpadDownGamepadHandler = new funkin_input_TurboButtonHandler([12],0.4,0.1); this.dpadUpGamepadHandler = new funkin_input_TurboButtonHandler([11],0.4,0.1); this.pageDownKeyHandler = new funkin_input_TurboKeyHandler([34],0.4,0.1); this.pageUpKeyHandler = new funkin_input_TurboKeyHandler([33],0.4,0.1); this.sKeyHandler = new funkin_input_TurboKeyHandler([83],0.4,0.1); this.wKeyHandler = new funkin_input_TurboKeyHandler([87],0.4,0.1); this.downKeyHandler = new funkin_input_TurboKeyHandler([40],0.4,0.1); this.upKeyHandler = new funkin_input_TurboKeyHandler([38],0.4,0.1); this.redoKeyHandler = new funkin_input_TurboKeyHandler([17,89],0.4,0.1); this.undoKeyHandler = new funkin_input_TurboKeyHandler([17,90],0.4,0.1); this.criticalFailure = false; this.commandHistoryDirty = true; this.opponentPreviewDirty = true; this.playerPreviewDirty = true; this.characterSelectDirty = true; this.difficultySelectDirty = true; this.previousWorkingFilePaths = [null]; this.saveDataDirty = false; this.notePreviewViewportBoundsDirty = true; this.notePreviewDirty = true; this.healthIconsDirty = true; this.noteTooltipsDirty = true; this.noteDisplayDirty = true; this.redoHistory = []; this.undoHistory = []; this.selectionBoxStartPos = null; this.currentEventSelection = []; this.currentNoteSelection = []; this.stretchySounds = false; this.playheadDragLengthCurrent = []; this.dragLengthCurrent = 0; this.dragTargetCurrentColumn = 0; this.dragTargetCurrentStep = 0; this.dragTargetEvent = null; this.dragTargetNote = null; this.currentLiveInputPlaceNoteData = []; this.currentPlaceNoteData = null; this.scrollAnchorScreenPos = null; this.notePreviewScrollAreaStartPos = null; this.gridPlayheadScrollAreaPressed = false; this.autoSaveTimer = null; this.hitsoundVolumeOpponent = 1.0; this.hitsoundVolumePlayer = 1.0; this.metronomeVolume = 1.0; this.activeToolboxes = new haxe_ds_StringMap(); this.isHaxeUIDialogOpen = false; this.wasCursorOverHaxeUI = false; this.currentOpponentCharacterPlayer = null; this.currentPlayerCharacterPlayer = null; this.currentTheme = funkin_ui_debug_charting_ChartEditorTheme.Light; this.isViewDownscroll = false; this.playtestSongScripts = true; this.enabledDebuggerPopup = true; this.playtestBotPlayMode = false; this.playtestPracticeMode = false; this.playtestStartTime = false; this.currentLiveInputStyle = funkin_ui_debug_charting_ChartEditorLiveInputStyle.None; this.noteSnapQuantIndex = funkin_ui_debug_charting_ChartEditorState.BASE_QUANT_INDEX; this.eventDataToPlace = { }; this.eventKindToPlace = "FocusCamera"; this.noteKindToPlace = null; this.playbarHeadDraggingWasPlaying = false; this.playbarHeadDragging = false; this.playbarButtonPressed = null; this.playheadPositionInPixels = 0.0; this.scrollPositionInPixels = -1.0; this.songLengthInMs = 0; haxe_ui_backend_flixel_UIState.call(this); haxe_ui_Toolkit.styleSheet.parse("\n .menu {\n // The width of the individual menu items\n width: 160px;\n }\n ","user"); haxe_ui_Toolkit.styleSheet.parse("\n\t\tbody, .label, .link {\n\t\tfont-size: 14px;\n\t\tfont-family: 'Inconsolata';\n\t\tfont-bold: true;\n\t\t}\n\t\t.button, .menu, .menuitem, .menuLabel, .menuitem-checkbox {\n\t\tfont-size: 12px;\n\t\tfont-family: 'Inconsolata';\n\t\tfont-bold: true;\n\t\t}\n\t\t.menuHeader {\n\t\tfont-size: 16px;\n\t\tfont-family: 'Inconsolata';\n\t\tfont-bold: true;\n\t\t}\n\t\t.textfield {\n\t\tfont-size: 10px;\n\t\tfont-bold: true;\n\t\t}\n\t\t.notifbar {\n\t\tmargin: 0px;\n\t\tpadding: 0px;\n\t\tborder-left: 1px solid #000;\n\t\tborder-top: 1px solid #000;\n\t\tborder-right: 0px solid #000;\n\t\tborder-bottom: 0px solid #000;\n\t\t}\n\t\t.notifbarBox {\n\t\tmargin: 8px;\n\t\t}\n\t\t.playbar {\n\t\tbackground-color: $solid-background-color;\n\t\tpadding: 8px;\n\t\t}\n\t\t.playbarDuration {\n\t\tfont-size: 24px;\n\t\tfont-bold: true;\n\t\t}\n\t\t.playbarDifficulty {\n\t\tfont-size: 18px;\n\t\tfont-bold: true;\n\t\t}\n\t\t.playbarStatus {\n\t\tfont-size: 18px;\n\t\tfont-bold: true;\n\t\tpointer-events: true;\n\t\t}\n\t\t.playbarStatus:hover {\n\t\tbackground-color: #CCCCCC;\n\t\t}\n\t\t.playbarButton {\n\t\tfont-size: 16px;\n\t\tfont-family: 'Inconsolata';\n\t\tfont-bold: true;\n\t\twidth: 56px;\n\t\t}\n\t\t.compact {\n\t\tmargin: 0px;\n\t\tpadding: 0px;\n\t\t}\n\t\t.compactButton {\n\t\tmargin: 0px;\n\t\tpadding-top: 4px;\n\t\tpadding-right: 0px;\n\t\tpadding-bottom: 4px;\n\t\tpadding-left: 0px;\n\t\t}\n\t\t.dialog-close-button {\n\t\tresource: \"haxeui-flixel/styles/flixel-ui/images/close.png\";\n\t\tvertical-align: \"center\";\n\t\tcursor: \"pointer\";\n\t\tpointer-events: true;\n\t\tpadding: 3px;\n\t\tborder-radius: 2px;\n\t\t}\n\t\t.dialog-close-button:hover {\n\t\tresource: $close-hover;\n\t\tbackground-color: $selection-background-color;\n\t\t}\n\t\t.dialog-minimize-button {\n\t\tresource: \"shared:assets/shared/images/ui/chart-editor/minimize.png\";\n\t\tvertical-align: \"center\";\n\t\tcursor: \"pointer\";\n\t\tpointer-events: true;\n\t\tpadding: 3px;\n\t\tborder-radius: 2px;\n\t\t}\n\t\t.dialog-minimize-button:hover {\n\t\tresource: \"shared:assets/shared/images/ui/chart-editor/minimize.png\";\n\t\tbackground-color: $selection-background-color;\n\t\t}\n\t\t.dialog-maximize-button {\n\t\tresource: \"shared:assets/shared/images/ui/chart-editor/maximize.png\";\n\t\tvertical-align: \"center\";\n\t\tcursor: \"pointer\";\n\t\tpointer-events: true;\n\t\tpadding: 3px;\n\t\tborder-radius: 2px;\n\t\t}\n\t\t.disable-validation.invalid-value {\n\t\tborder: $normal-border-size solid $normal-border-color;\n\t\tbackground-color: $tertiary-background-color;\n\t\t}\n\t\t.dialog-maximize-button:hover {\n\t\tresource: \"shared:assets/shared/images/ui/chart-editor/maximize.png\";\n\t\tbackground-color: $selection-background-color;\n\t\t}\n\t\t#toolboxTools .dialog-title, #toolboxSong .dialog-title, #toolboxNotes .dialog-title, #toolboxEvents .dialog-title {\n\t\tpadding: 4px;\n\t\t}\n\t\t#toolboxSong .dialog-content {\n\t\tpadding: 0px;\n\t\t}\n\t\t.offset-ticks-label {\n\t\tcolor: #FFFFFF;\n\t\tfont-size: 12px;\n\t\tfont-weight: bold;\n\t\t}\n\t\t.absolute {\n\t\tclip: false;\n\t\t}\n\t\t.upload-bg {\n\t\tbackground-color: #666666;\n\t\t}\n\t\t.upload-bg-hover {\n\t\tbackground-color: #444444;\n\t\t}\n","user"); var c0 = new haxe_ui_containers_menus_MenuBar(); c0.set_id("menubar"); c0.set_percentWidth(100.); c0.set_paddingLeft(172); var c1 = new haxe_ui_containers_menus_Menu(); c1.set_text("File"); var c2 = new haxe_ui_containers_menus_MenuItem(); c2.set_id("menubarItemNewChart"); c2.set_text("New Chart"); c2.set_shortcutText("Ctrl+N"); c1.addComponent(c2); var c3 = new haxe_ui_containers_menus_MenuSeparator(); c1.addComponent(c3); var c4 = new haxe_ui_containers_menus_MenuItem(); c4.set_id("menubarItemOpenChart"); c4.set_text("Open Chart..."); c4.set_shortcutText("Ctrl+O"); c1.addComponent(c4); var c5 = new haxe_ui_containers_menus_Menu(); c5.set_id("menubarOpenRecent"); c5.set_text("Open Recent"); c1.addComponent(c5); var c6 = new haxe_ui_containers_menus_MenuSeparator(); c1.addComponent(c6); var c7 = new haxe_ui_containers_menus_MenuItem(); c7.set_id("menubarItemSaveChart"); c7.set_text("Save Chart"); c7.set_shortcutText("Ctrl+S"); c1.addComponent(c7); var c8 = new haxe_ui_containers_menus_MenuItem(); c8.set_id("menubarItemSaveChartAs"); c8.set_text("Save Chart As..."); c8.set_shortcutText("Ctrl+Shift+S"); c1.addComponent(c8); var c9 = new haxe_ui_containers_menus_MenuSeparator(); c1.addComponent(c9); var c10 = new haxe_ui_containers_menus_MenuItem(); c10.set_id("menubarItemPreferences"); c10.set_text("Preferences"); c10.set_disabled(true); c1.addComponent(c10); var c11 = new haxe_ui_containers_menus_MenuSeparator(); c1.addComponent(c11); var c12 = new haxe_ui_containers_menus_MenuItem(); c12.set_id("menubarItemExit"); c12.set_text("Exit"); c12.set_shortcutText("Ctrl+Q"); c1.addComponent(c12); c0.addComponent(c1); var c13 = new haxe_ui_containers_menus_Menu(); c13.set_text("Edit"); var c14 = new haxe_ui_containers_menus_MenuItem(); c14.set_id("menubarItemUndo"); c14.set_text("Undo"); c14.set_shortcutText("Ctrl+Z"); c13.addComponent(c14); var c15 = new haxe_ui_containers_menus_MenuItem(); c15.set_id("menubarItemRedo"); c15.set_text("Redo"); c15.set_shortcutText("Ctrl+Y"); c13.addComponent(c15); var c16 = new haxe_ui_containers_menus_MenuSeparator(); c13.addComponent(c16); var c17 = new haxe_ui_containers_menus_MenuItem(); c17.set_id("menubarItemCut"); c17.set_text("Cut"); c17.set_shortcutText("Ctrl+X"); c13.addComponent(c17); var c18 = new haxe_ui_containers_menus_MenuItem(); c18.set_id("menubarItemCopy"); c18.set_text("Copy"); c18.set_shortcutText("Ctrl+C"); c13.addComponent(c18); var c19 = new haxe_ui_containers_menus_MenuItem(); c19.set_id("menubarItemPaste"); c19.set_text("Paste"); c19.set_shortcutText("Ctrl+V"); c13.addComponent(c19); var c20 = new haxe_ui_containers_menus_MenuItem(); c20.set_id("menubarItemPasteUnsnapped"); c20.set_text("Paste (Unsnapped)"); c20.set_shortcutText("Ctrl+Shift+V"); c13.addComponent(c20); var c21 = new haxe_ui_containers_menus_MenuItem(); c21.set_id("menubarItemDelete"); c21.set_text("Delete"); c21.set_shortcutText("Delete"); c13.addComponent(c21); var c22 = new haxe_ui_containers_menus_MenuSeparator(); c13.addComponent(c22); var c23 = new haxe_ui_containers_menus_MenuItem(); c23.set_id("menubarItemFlipNotes"); c23.set_text("Flip Selected Notes"); c23.set_shortcutText("Ctrl+F"); c13.addComponent(c23); var c24 = new haxe_ui_containers_menus_MenuSeparator(); c13.addComponent(c24); var c25 = new haxe_ui_containers_menus_MenuItem(); c25.set_id("menubarItemSelectAllNotes"); c25.set_text("Select All Notes"); c25.set_shortcutText("Ctrl+A"); c13.addComponent(c25); var c26 = new haxe_ui_containers_menus_MenuItem(); c26.set_id("menubarItemSelectAllEvents"); c26.set_text("Select All Events"); c26.set_shortcutText("Ctrl+Alt+A"); c13.addComponent(c26); var c27 = new haxe_ui_containers_menus_MenuItem(); c27.set_id("menubarItemSelectInverse"); c27.set_text("Invert Selection"); c27.set_shortcutText("Ctrl+I"); c13.addComponent(c27); var c28 = new haxe_ui_containers_menus_MenuItem(); c28.set_id("menubarItemSelectNone"); c28.set_text("Deselect All"); c28.set_shortcutText("Ctrl+D"); c13.addComponent(c28); var c29 = new haxe_ui_containers_menus_MenuItem(); c29.set_id("menubarItemSelectRegion"); c29.set_text("Select Region"); c29.set_shortcutText("Tab"); c29.set_disabled(true); c13.addComponent(c29); var c30 = new haxe_ui_containers_menus_MenuItem(); c30.set_id("menubarItemSelectBeforeCursor"); c30.set_text("Select Before Cursor"); c30.set_shortcutText("Shift+Home"); c30.set_disabled(true); c13.addComponent(c30); var c31 = new haxe_ui_containers_menus_MenuItem(); c31.set_id("menubarItemSelectAfterCursor"); c31.set_text("Select After Cursor"); c31.set_shortcutText("Shift+End"); c31.set_disabled(true); c13.addComponent(c31); var c32 = new haxe_ui_containers_menus_MenuSeparator(); c13.addComponent(c32); var c33 = new haxe_ui_containers_menus_Menu(); c33.set_text("Note Snapping"); var c34 = new haxe_ui_containers_menus_MenuItem(); c34.set_id("menuBarItemNoteSnapDecrease"); c34.set_text("Decrease Note Snap Precision"); c34.set_shortcutText("Left Arrow"); c33.addComponent(c34); var c35 = new haxe_ui_containers_menus_MenuItem(); c35.set_id("menuBarItemNoteSnapIncrease"); c35.set_text("Increase Note Snap Precision"); c35.set_shortcutText("Right Arrow"); c33.addComponent(c35); c13.addComponent(c33); var c36 = new haxe_ui_containers_menus_Menu(); c36.set_text("Live Input Mode"); var c37 = new haxe_ui_containers_menus_MenuOptionBox(); c37.set_id("menuBarItemInputStyleNone"); c37.set_text("None"); c37.set_componentGroup("menubarItemInputStyleGroup"); c36.addComponent(c37); var c38 = new haxe_ui_containers_menus_MenuOptionBox(); c38.set_id("menuBarItemInputStyleNumberKeys"); c38.set_text("Number Keys"); c38.set_componentGroup("menubarItemInputStyleGroup"); c36.addComponent(c38); var c39 = new haxe_ui_containers_menus_MenuOptionBox(); c39.set_id("menuBarItemInputStyleWASD"); c39.set_text("WASD + Arrows"); c39.set_componentGroup("menubarItemInputStyleGroup"); c36.addComponent(c39); c13.addComponent(c36); c0.addComponent(c13); var c40 = new haxe_ui_containers_menus_Menu(); c40.set_text("View"); var c41 = new haxe_ui_containers_menus_MenuCheckBox(); c41.set_id("menubarItemDownscroll"); c41.set_text("Downscroll"); c41.set_disabled(true); c40.addComponent(c41); var c42 = new haxe_ui_containers_menus_Menu(); c42.set_text("Theme"); var c43 = new haxe_ui_containers_menus_MenuOptionBox(); c43.set_id("menuBarItemThemeLight"); c43.set_text("Light"); c43.set_selected(true); c43.set_componentGroup("menubarItemThemeGroup"); c42.addComponent(c43); var c44 = new haxe_ui_containers_menus_MenuOptionBox(); c44.set_id("menuBarItemThemeDark"); c44.set_text("Dark"); c44.set_componentGroup("menubarItemThemeGroup"); c42.addComponent(c44); c40.addComponent(c42); var c45 = new haxe_ui_containers_menus_MenuSeparator(); c40.addComponent(c45); var c46 = new haxe_ui_containers_menus_MenuItem(); c46.set_id("menubarItemDifficultyUp"); c46.set_text("Increase Difficulty"); c46.set_tooltip("Manage Difficulties with the Difficulty Toolbox"); c46.set_shortcutText("Ctrl+Left"); c40.addComponent(c46); var c47 = new haxe_ui_containers_menus_MenuItem(); c47.set_id("menubarItemDifficultyDown"); c47.set_text("Decrease Difficulty"); c47.set_tooltip("Manage Difficulties with the Difficulty Toolbox"); c47.set_shortcutText("Ctrl+Right"); c40.addComponent(c47); c0.addComponent(c40); var c48 = new haxe_ui_containers_menus_Menu(); c48.set_text("Audio"); var c49 = new haxe_ui_containers_menus_MenuItem(); c49.set_id("menubarItemPlayPause"); c49.set_text("Play/Pause"); c49.set_shortcutText("Space"); c48.addComponent(c49); var c50 = new haxe_ui_containers_menus_MenuSeparator(); c48.addComponent(c50); var c51 = new haxe_ui_containers_menus_MenuItem(); c51.set_id("menubarItemLoadInstrumental"); c51.set_text("Load Instrumental"); c48.addComponent(c51); var c52 = new haxe_ui_containers_menus_MenuItem(); c52.set_id("menubarItemLoadVocals"); c52.set_text("Load Vocals"); c48.addComponent(c52); var c53 = new haxe_ui_containers_menus_MenuSeparator(); c48.addComponent(c53); var c54 = new haxe_ui_containers_VBox(); c54.set_percentWidth(100.); c54.set_styleString("padding: 5px;"); var c55 = new haxe_ui_components_Label(); c55.set_id("menubarLabelVolumeMetronome"); c55.set_text("Metronome - 100%"); c55.set_styleNames("menuLabel"); c54.addComponent(c55); var c56 = new haxe_ui_components_HorizontalSlider(); c56.set_id("menubarItemVolumeMetronome"); c56.set_percentWidth(100.); c56.set_pos(100); c56.set_minorTicks(5); c56.set_majorTicks(10); c54.addComponent(c56); c48.addComponent(c54); var c57 = new haxe_ui_containers_menus_MenuSeparator(); c48.addComponent(c57); var c58 = new haxe_ui_containers_VBox(); c58.set_percentWidth(100.); c58.set_styleString("padding: 5px;"); var c59 = new haxe_ui_components_Label(); c59.set_id("menubarLabelHitsoundVolume"); c59.set_percentWidth(100.); c59.set_text("HITSOUNDS"); c59.set_styleNames("menuHeader"); c58.addComponent(c59); var c60 = new haxe_ui_containers_HBox(); c60.set_percentWidth(100.); c60.set_styleString("padding: 5px;"); var c61 = new haxe_ui_containers_VBox(); c61.set_percentWidth(50.); var c62 = new haxe_ui_components_Label(); c62.set_id("menubarLabelVolumeHitsoundPlayer"); c62.set_text("Player - 100%"); c62.set_styleNames("menuLabel"); c61.addComponent(c62); var c63 = new haxe_ui_components_HorizontalSlider(); c63.set_id("menubarItemVolumeHitsoundPlayer"); c63.set_percentWidth(100.); c63.set_pos(100); c63.set_minorTicks(10); c63.set_majorTicks(20); c61.addComponent(c63); c60.addComponent(c61); var c64 = new haxe_ui_containers_VBox(); c64.set_percentWidth(50.); var c65 = new haxe_ui_components_Label(); c65.set_id("menubarLabelVolumeHitsoundOpponent"); c65.set_text("Enemy - 100%"); c65.set_styleNames("menuLabel"); c64.addComponent(c65); var c66 = new haxe_ui_components_HorizontalSlider(); c66.set_id("menubarItemVolumeHitsoundOpponent"); c66.set_percentWidth(100.); c66.set_pos(100); c66.set_minorTicks(10); c66.set_majorTicks(20); c64.addComponent(c66); c60.addComponent(c64); c58.addComponent(c60); c48.addComponent(c58); var c67 = new haxe_ui_containers_menus_MenuSeparator(); c48.addComponent(c67); var c68 = new haxe_ui_containers_VBox(); c68.set_percentWidth(100.); c68.set_styleString("padding-bottom: 9px;"); var c69 = new haxe_ui_containers_VBox(); c69.set_percentWidth(100.); c69.set_styleString("padding: 5px;"); var c70 = new haxe_ui_components_Label(); c70.set_id("menubarLabelSongVolume"); c70.set_percentWidth(100.); c70.set_text("SONG"); c70.set_styleNames("menuHeader"); c69.addComponent(c70); var c71 = new haxe_ui_components_Label(); c71.set_id("menubarLabelVolumeInstrumental"); c71.set_text("Instrumental - 100%"); c71.set_styleNames("menuLabel"); c69.addComponent(c71); var c72 = new haxe_ui_components_HorizontalSlider(); c72.set_id("menubarItemVolumeInstrumental"); c72.set_percentWidth(100.); c72.set_pos(100); c72.set_minorTicks(5); c72.set_majorTicks(10); c69.addComponent(c72); c68.addComponent(c69); var c73 = new haxe_ui_containers_HBox(); c73.set_percentWidth(100.); c73.set_styleString("padding: 5px;"); var c74 = new haxe_ui_containers_VBox(); c74.set_percentWidth(50.); var c75 = new haxe_ui_components_Label(); c75.set_id("menubarLabelVolumeVocalsPlayer"); c75.set_text("Player - 100%"); c75.set_styleNames("menuLabel"); c74.addComponent(c75); var c76 = new haxe_ui_components_HorizontalSlider(); c76.set_id("menubarItemVolumeVocalsPlayer"); c76.set_percentWidth(100.); c76.set_pos(100); c76.set_minorTicks(10); c76.set_majorTicks(20); c74.addComponent(c76); c73.addComponent(c74); var c77 = new haxe_ui_containers_VBox(); c77.set_percentWidth(50.); var c78 = new haxe_ui_components_Label(); c78.set_id("menubarLabelVolumeVocalsOpponent"); c78.set_text("Enemy - 100%"); c78.set_styleNames("menuLabel"); c77.addComponent(c78); var c79 = new haxe_ui_components_HorizontalSlider(); c79.set_id("menubarItemVolumeVocalsOpponent"); c79.set_percentWidth(100.); c79.set_pos(100); c79.set_minorTicks(10); c79.set_majorTicks(20); c77.addComponent(c79); c73.addComponent(c77); c68.addComponent(c73); c48.addComponent(c68); var c80 = new haxe_ui_containers_menus_MenuSeparator(); c48.addComponent(c80); var c81 = new haxe_ui_containers_VBox(); c81.set_percentWidth(100.); c81.set_styleString("padding: 5px;"); var c82 = new haxe_ui_components_Label(); c82.set_id("menubarLabelPlaybackSpeed"); c82.set_text("Playback Speed - 100%"); c82.set_styleNames("menuLabel"); c81.addComponent(c82); var c83 = new haxe_ui_components_HorizontalSlider(); c83.set_id("menubarItemPlaybackSpeed"); c83.set_percentWidth(100.); c83.set_pos(50); c83.set_minorTicks(5); c83.set_majorTicks(10); c81.addComponent(c83); c48.addComponent(c81); var c84 = new haxe_ui_containers_menus_MenuSeparator(); c48.addComponent(c84); var c85 = new haxe_ui_containers_menus_MenuCheckBox(); c85.set_id("menubarItemThemeMusic"); c85.set_text("Play Theme Music"); c48.addComponent(c85); c0.addComponent(c48); var c86 = new haxe_ui_containers_menus_Menu(); c86.set_text("Test"); var c87 = new haxe_ui_containers_menus_MenuItem(); c87.set_id("menubarItemPlaytestFull"); c87.set_text("Playtest Chart"); c87.set_shortcutText("Enter"); c86.addComponent(c87); var c88 = new haxe_ui_containers_menus_MenuItem(); c88.set_id("menubarItemPlaytestMinimal"); c88.set_text("Playtest Chart (Minimal Mode)"); c88.set_shortcutText("Shift-Enter"); c86.addComponent(c88); c0.addComponent(c86); var c89 = new haxe_ui_containers_menus_Menu(); c89.set_text("Window"); var c90 = new haxe_ui_containers_menus_MenuCheckBox(); c90.set_id("menubarItemToggleToolboxDifficulty"); c90.set_text("Difficulty"); c89.addComponent(c90); var c91 = new haxe_ui_containers_menus_MenuCheckBox(); c91.set_id("menubarItemToggleToolboxPlayerPreview"); c91.set_text("Player Preview"); c91.set_hidden(true); c89.addComponent(c91); var c92 = new haxe_ui_containers_menus_MenuCheckBox(); c92.set_id("menubarItemToggleToolboxOpponentPreview"); c92.set_text("Opponent Preview"); c92.set_hidden(true); c89.addComponent(c92); var c93 = new haxe_ui_containers_menus_MenuCheckBox(); c93.set_id("menubarItemToggleToolboxMetadata"); c93.set_text("Metadata"); c89.addComponent(c93); var c94 = new haxe_ui_containers_menus_MenuCheckBox(); c94.set_id("menubarItemToggleToolboxOffsets"); c94.set_text("Offsets"); c89.addComponent(c94); var c95 = new haxe_ui_containers_menus_MenuCheckBox(); c95.set_id("menubarItemToggleToolboxNoteData"); c95.set_text("Notes"); c89.addComponent(c95); var c96 = new haxe_ui_containers_menus_MenuCheckBox(); c96.set_id("menubarItemToggleToolboxEventData"); c96.set_text("Events"); c89.addComponent(c96); var c97 = new haxe_ui_containers_menus_MenuCheckBox(); c97.set_id("menubarItemToggleToolboxFreeplay"); c97.set_text("Freeplay Properties"); c89.addComponent(c97); var c98 = new haxe_ui_containers_menus_MenuCheckBox(); c98.set_id("menubarItemToggleToolboxPlaytestProperties"); c98.set_text("Playtest Properties"); c89.addComponent(c98); c0.addComponent(c89); var c99 = new haxe_ui_containers_menus_Menu(); c99.set_text("Help"); var c100 = new haxe_ui_containers_menus_MenuItem(); c100.set_id("menubarItemWelcomeDialog"); c100.set_text("Welcome Dialog"); c99.addComponent(c100); var c101 = new haxe_ui_containers_menus_MenuItem(); c101.set_id("menubarItemUserGuide"); c101.set_text("User Guide"); c101.set_shortcutText("F1"); c99.addComponent(c101); var c102 = new haxe_ui_containers_menus_MenuItem(); c102.set_id("menubarItemGoToBackupsFolder"); c102.set_text("Go to Backups Folder"); c99.addComponent(c102); var c103 = new haxe_ui_containers_menus_MenuItem(); c103.set_id("menubarItemAbout"); c103.set_text("About..."); c99.addComponent(c103); c0.addComponent(c99); var c104 = new haxe_ui_components_Spacer(); c104.set_percentWidth(100.); c0.addComponent(c104); var c105 = new haxe_ui_components_Label(); c105.set_text("PROTOTYPE Functionality is subject to change."); c105.set_verticalAlign("center"); c0.addComponent(c105); this.addComponent(c0); var c106 = new haxe_ui_containers_Box(); c106.set_width(0.); c106.set_height(0.); c106.set_y(-9999); c106.set_x(-9999); c106.set_padding(0); this.addComponent(c106); var c107 = new haxe_ui_components_Spacer(); c107.set_percentHeight(100.); this.addComponent(c107); var c108 = new haxe_ui_containers_Box(); c108.set_id("playbar"); c108.set_height(48.); c108.set_percentWidth(100.); c108.set_styleNames("playbar"); var c109 = new haxe_ui_containers_HBox(); var c110 = new haxe_ui_components_Label(); c110.set_id("playbarSongPos"); c110.set_text("0:32"); c110.set_styleNames("playbarDuration"); c110.set_horizontalAlign("left"); c109.addComponent(c110); c108.addComponent(c109); var c111 = new haxe_ui_containers_HBox(); c111.set_horizontalAlign("center"); var c112 = new haxe_ui_components_Button(); c112.set_id("playbarStart"); c112.set_text("|<"); c112.set_styleNames("playbarButton"); c112.set_tooltip("Skip to Start"); c112.set_allowFocus(false); c111.addComponent(c112); var c113 = new haxe_ui_components_Button(); c113.set_id("playbarBack"); c113.set_text("<<"); c113.set_styleNames("playbarButton"); c113.set_tooltip("Skip Back"); c113.set_allowFocus(false); c111.addComponent(c113); var c114 = new haxe_ui_components_Button(); c114.set_id("playbarPlay"); c114.set_text(">"); c114.set_styleNames("playbarButton"); c114.set_tooltip("Play/Pause"); c114.set_allowFocus(false); c111.addComponent(c114); var c115 = new haxe_ui_components_Button(); c115.set_id("playbarForward"); c115.set_text(">>"); c115.set_styleNames("playbarButton"); c115.set_tooltip("Skip Back"); c115.set_allowFocus(false); c111.addComponent(c115); var c116 = new haxe_ui_components_Button(); c116.set_id("playbarEnd"); c116.set_text(">|"); c116.set_styleNames("playbarButton"); c116.set_tooltip("Skip to End"); c116.set_allowFocus(false); c111.addComponent(c116); c108.addComponent(c111); var c117 = new haxe_ui_containers_HBox(); c117.set_horizontalAlign("right"); var c118 = new haxe_ui_components_Label(); c118.set_id("playbarDifficulty"); c118.set_text("NORMAL"); c118.set_styleNames("playbarStatus"); c118.set_verticalAlign("center"); c118.set_tooltip("Left Click/Ctrl+Left Arrow to Decrease Difficulty\\nRight Click/Ctrl+Right Arrow to Increase Difficulty\\nCtrl+Click to open Difficulty Window"); c117.addComponent(c118); var c119 = new haxe_ui_components_VerticalRule(); c119.set_percentHeight(80.); c117.addComponent(c119); var c120 = new haxe_ui_components_Label(); c120.set_id("playbarBPM"); c120.set_text("BPM: 120"); c120.set_styleNames("playbarStatus"); c120.set_verticalAlign("center"); c120.set_tooltip("Left Click to Increase BPM\\nRight Click to Decrease BPM\\nCtrl+Click to open Metadata Window"); c117.addComponent(c120); var c121 = new haxe_ui_components_VerticalRule(); c121.set_percentHeight(80.); c117.addComponent(c121); var c122 = new haxe_ui_components_Label(); c122.set_id("playbarNoteSnap"); c122.set_text("1/4"); c122.set_styleNames("playbarStatus"); c122.set_verticalAlign("center"); c122.set_tooltip("Note Snap Level\\nLeft Click to Increase\\nRight Click to Decrease\\nShift+Click to set to default snapping (1/16)"); c117.addComponent(c122); var c123 = new haxe_ui_components_VerticalRule(); c123.set_percentHeight(80.); c117.addComponent(c123); var c124 = new haxe_ui_components_Label(); c124.set_id("playbarSongRemaining"); c124.set_text("-1:00"); c124.set_styleNames("playbarDuration"); c117.addComponent(c124); c108.addComponent(c117); this.addComponent(c108); this.set_percentWidth(100.); this.set_percentHeight(100.); this.bindingRoot = true; this.playbarStart = c112; this.playbarSongRemaining = c124; this.playbarSongPos = c110; this.playbarPlay = c114; this.playbarNoteSnap = c122; this.playbarForward = c115; this.playbarEnd = c116; this.playbarDifficulty = c118; this.playbarBack = c113; this.playbarBPM = c120; this.playbar = c108; this.menubarOpenRecent = c5; this.menubarLabelVolumeVocalsPlayer = c75; this.menubarLabelVolumeVocalsOpponent = c78; this.menubarLabelVolumeMetronome = c55; this.menubarLabelVolumeInstrumental = c71; this.menubarLabelVolumeHitsoundPlayer = c62; this.menubarLabelVolumeHitsoundOpponent = c65; this.menubarLabelSongVolume = c70; this.menubarLabelPlaybackSpeed = c82; this.menubarLabelHitsoundVolume = c59; this.menubarItemWelcomeDialog = c100; this.menubarItemVolumeVocalsPlayer = c76; this.menubarItemVolumeVocalsOpponent = c79; this.menubarItemVolumeMetronome = c56; this.menubarItemVolumeInstrumental = c72; this.menubarItemVolumeHitsoundPlayer = c63; this.menubarItemVolumeHitsoundOpponent = c66; this.menubarItemUserGuide = c101; this.menubarItemUndo = c14; this.menubarItemToggleToolboxPlaytestProperties = c98; this.menubarItemToggleToolboxPlayerPreview = c91; this.menubarItemToggleToolboxOpponentPreview = c92; this.menubarItemToggleToolboxOffsets = c94; this.menubarItemToggleToolboxNoteData = c95; this.menubarItemToggleToolboxMetadata = c93; this.menubarItemToggleToolboxFreeplay = c97; this.menubarItemToggleToolboxEventData = c96; this.menubarItemToggleToolboxDifficulty = c90; this.menubarItemThemeMusic = c85; this.menubarItemSelectRegion = c29; this.menubarItemSelectNone = c28; this.menubarItemSelectInverse = c27; this.menubarItemSelectBeforeCursor = c30; this.menubarItemSelectAllNotes = c25; this.menubarItemSelectAllEvents = c26; this.menubarItemSelectAfterCursor = c31; this.menubarItemSaveChartAs = c8; this.menubarItemSaveChart = c7; this.menubarItemRedo = c15; this.menubarItemPreferences = c10; this.menubarItemPlaytestMinimal = c88; this.menubarItemPlaytestFull = c87; this.menubarItemPlaybackSpeed = c83; this.menubarItemPlayPause = c49; this.menubarItemPasteUnsnapped = c20; this.menubarItemPaste = c19; this.menubarItemOpenChart = c4; this.menubarItemNewChart = c2; this.menubarItemLoadVocals = c52; this.menubarItemLoadInstrumental = c51; this.menubarItemGoToBackupsFolder = c102; this.menubarItemFlipNotes = c23; this.menubarItemExit = c12; this.menubarItemDownscroll = c41; this.menubarItemDifficultyUp = c46; this.menubarItemDifficultyDown = c47; this.menubarItemDelete = c21; this.menubarItemCut = c17; this.menubarItemCopy = c18; this.menubarItemAbout = c103; this.menubar = c0; this.menuBarItemThemeLight = c43; this.menuBarItemThemeDark = c44; this.menuBarItemNoteSnapIncrease = c35; this.menuBarItemNoteSnapDecrease = c34; this.menuBarItemInputStyleWASD = c39; this.menuBarItemInputStyleNumberKeys = c38; this.menuBarItemInputStyleNone = c37; this.params = params; this.applyRootLayout("vbox"); }; $hxClasses["funkin.ui.debug.charting.ChartEditorState"] = funkin_ui_debug_charting_ChartEditorState; funkin_ui_debug_charting_ChartEditorState.__name__ = "funkin.ui.debug.charting.ChartEditorState"; funkin_ui_debug_charting_ChartEditorState.__properties__ = {get_GRID_X_POS:"get_GRID_X_POS"}; funkin_ui_debug_charting_ChartEditorState.get_GRID_X_POS = function() { return flixel_FlxG.width / 2 - funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; }; funkin_ui_debug_charting_ChartEditorState.noteDataToGridColumn = function(input) { if(input < 0) { input = 0; } if(input >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1) { input = funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1; } else if(input >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE) { input -= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; } else { input += funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; } return input; }; funkin_ui_debug_charting_ChartEditorState.gridColumnToNoteData = function(input) { if(input < 0) { input = 0; } if(input >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1) { input = funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1; } else if(input >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE) { input -= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; } else { input += funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; } return input; }; funkin_ui_debug_charting_ChartEditorState.__super__ = haxe_ui_backend_flixel_UIState; funkin_ui_debug_charting_ChartEditorState.prototype = $extend(haxe_ui_backend_flixel_UIState.prototype,{ songLengthInMs: null ,get_songLengthInMs: function() { if(this.songLengthInMs <= 0) { return 1000; } return this.songLengthInMs; } ,set_songLengthInMs: function(value) { this.songLengthInMs = value; this.updateGridHeight(); return this.get_songLengthInMs(); } ,get_songLengthInSteps: function() { return funkin_Conductor.get_instance().getTimeInSteps(this.get_songLengthInMs()); } ,set_songLengthInSteps: function(value) { this.set_songLengthInMs(funkin_Conductor.get_instance().getStepTimeInMs(value)); return value; } ,get_songLengthInPixels: function() { return this.get_songLengthInSteps() * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE | 0; } ,set_songLengthInPixels: function(value) { this.set_songLengthInSteps(value / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); return value; } ,scrollPositionInPixels: null ,set_scrollPositionInPixels: function(value) { if(value < 0) { if(this.playheadPositionInPixels > 0) { var amount = this.scrollPositionInPixels - value; this.set_playheadPositionInPixels(this.playheadPositionInPixels - amount); } value = 0; } if(value > this.get_songLengthInPixels()) { value = this.get_songLengthInPixels(); } if(value == this.scrollPositionInPixels) { return value; } var diff = value - this.scrollPositionInPixels; this.scrollPositionInPixels = value; if(this.gridTiledSprite != null && this.measureTicks != null) { if(this.isViewDownscroll) { this.gridTiledSprite.set_y(-this.scrollPositionInPixels + funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS); this.measureTicks.set_y(this.gridTiledSprite.y); } else { this.gridTiledSprite.set_y(-this.scrollPositionInPixels + funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS); this.measureTicks.set_y(this.gridTiledSprite.y); var _g = 0; var _g1 = this.audioWaveforms.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; member.set_time(this.get_scrollPositionInMs() / funkin_util_Constants.MS_PER_SEC); } } } var tmp = this.gridTiledSprite; var tmp1 = tmp != null ? tmp.x : null; var tmp = this.gridTiledSprite; var tmp2 = tmp != null ? tmp.y : null; this.renderedNotes.setPosition(tmp1 != null ? tmp1 : 0.0,tmp2 != null ? tmp2 : 0.0); var tmp = this.gridTiledSprite; var tmp1 = tmp != null ? tmp.x : null; var tmp = this.gridTiledSprite; var tmp2 = tmp != null ? tmp.y : null; this.renderedHoldNotes.setPosition(tmp1 != null ? tmp1 : 0.0,tmp2 != null ? tmp2 : 0.0); var tmp = this.gridTiledSprite; var tmp1 = tmp != null ? tmp.x : null; var tmp = this.gridTiledSprite; var tmp2 = tmp != null ? tmp.y : null; this.renderedEvents.setPosition(tmp1 != null ? tmp1 : 0.0,tmp2 != null ? tmp2 : 0.0); var tmp = this.gridTiledSprite; var tmp1 = tmp != null ? tmp.x : null; var tmp = this.gridTiledSprite; var tmp2 = tmp != null ? tmp.y : null; this.renderedSelectionSquares.setPosition(tmp1 != null ? tmp1 : 0.0,tmp2 != null ? tmp2 : 0.0); if(this.selectionBoxStartPos != null) { this.selectionBoxStartPos.set_y(this.selectionBoxStartPos.y - diff); } this.setNotePreviewViewportBounds(this.calculateNotePreviewViewportBounds()); this.refreshNotePreviewPlayheadPosition(); if(this.measureTicks != null) { var tmp = this.gridTiledSprite; var tmp1 = tmp != null ? tmp.y : null; this.measureTicks.set_y(tmp1 != null ? tmp1 : 0.0); } return this.scrollPositionInPixels; } ,get_scrollPositionInSteps: function() { return this.scrollPositionInPixels / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; } ,set_scrollPositionInSteps: function(value) { this.set_scrollPositionInPixels(value * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); return value; } ,get_scrollPositionInMs: function() { return funkin_Conductor.get_instance().getStepTimeInMs(this.get_scrollPositionInSteps()); } ,set_scrollPositionInMs: function(value) { this.set_scrollPositionInSteps(funkin_Conductor.get_instance().getTimeInSteps(value)); return value; } ,playheadPositionInPixels: null ,set_playheadPositionInPixels: function(value) { if(value + this.scrollPositionInPixels < 0) { value = -this.scrollPositionInPixels; } if(value + this.scrollPositionInPixels > this.get_songLengthInPixels()) { value = this.get_songLengthInPixels() - this.scrollPositionInPixels; } this.playheadPositionInPixels = value; this.gridPlayhead.set_y(this.playheadPositionInPixels + funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS); this.updatePlayheadGhostHoldNotes(); this.refreshNotePreviewPlayheadPosition(); return this.playheadPositionInPixels; } ,get_playheadPositionInSteps: function() { return this.playheadPositionInPixels / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; } ,set_playheadPositionInSteps: function(value) { this.set_playheadPositionInPixels(value * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); return value; } ,get_playheadPositionInMs: function() { return funkin_Conductor.get_instance().getStepTimeInMs(this.get_playheadPositionInSteps()); } ,set_playheadPositionInMs: function(value) { this.set_playheadPositionInSteps(funkin_Conductor.get_instance().getTimeInSteps(value)); return value; } ,playbarButtonPressed: null ,playbarHeadDragging: null ,playbarHeadDraggingWasPlaying: null ,noteKindToPlace: null ,eventKindToPlace: null ,eventDataToPlace: null ,noteSnapQuantIndex: null ,get_noteSnapQuant: function() { return funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS[this.noteSnapQuantIndex]; } ,get_noteSnapRatio: function() { return funkin_ui_debug_charting_ChartEditorState.BASE_QUANT / this.get_noteSnapQuant(); } ,currentLiveInputStyle: null ,playtestStartTime: null ,playtestPracticeMode: null ,playtestBotPlayMode: null ,enabledDebuggerPopup: null ,playtestSongScripts: null ,isViewDownscroll: null ,set_isViewDownscroll: function(value) { this.isViewDownscroll = value; this.noteDisplayDirty = true; this.set_notePreviewDirty(true); this.notePreviewViewportBoundsDirty = true; this.set_scrollPositionInPixels(this.scrollPositionInPixels); this.healthIconsDirty = true; return this.isViewDownscroll; } ,currentTheme: null ,set_currentTheme: function(value) { if(value == null || value == this.currentTheme) { return this.currentTheme; } this.currentTheme = value; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateTheme(this); return value; } ,currentPlayerCharacterPlayer: null ,currentOpponentCharacterPlayer: null ,get_isHaxeUIFocused: function() { return haxe_ui_focus_FocusManager.get_instance().get_focus() != null; } ,get_isCursorOverHaxeUI: function() { return haxe_ui_core_Screen.get_instance().hasSolidComponentUnderPoint(flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY); } ,wasCursorOverHaxeUI: null ,isHaxeUIDialogOpen: null ,activeToolboxes: null ,uiCamera: null ,metronomeVolume: null ,hitsoundVolumePlayer: null ,hitsoundVolumeOpponent: null ,get_hitsoundsEnabled: function() { return this.hitsoundVolumePlayer + this.hitsoundVolumeOpponent > 0; } ,autoSaveTimer: null ,gridPlayheadScrollAreaPressed: null ,notePreviewScrollAreaStartPos: null ,currentScrollEase: null ,scrollAnchorScreenPos: null ,currentPlaceNoteData: null ,set_currentPlaceNoteData: function(value) { this.noteDisplayDirty = true; return this.currentPlaceNoteData = value; } ,currentLiveInputPlaceNoteData: null ,dragTargetNote: null ,dragTargetEvent: null ,dragTargetCurrentStep: null ,dragTargetCurrentColumn: null ,dragLengthCurrent: null ,playheadDragLengthCurrent: null ,stretchySounds: null ,currentNoteSelection: null ,set_currentNoteSelection: function(value) { var isSuperset = funkin_util_tools_ArrayTools.isSubset(this.currentNoteSelection,value); var isEqual = funkin_util_tools_ArrayTools.isEqualUnordered(this.currentNoteSelection,value); this.currentNoteSelection = value; if(!isEqual) { if(this.currentNoteSelection.length > 0 && isSuperset) { this.notePreview.addSelectedNotes(this.currentNoteSelection,this.get_songLengthInMs() | 0); } else { this.set_notePreviewDirty(true); } } return this.currentNoteSelection; } ,currentEventSelection: null ,selectionBoxStartPos: null ,undoHistory: null ,redoHistory: null ,noteDisplayDirty: null ,noteTooltipsDirty: null ,healthIconsDirty: null ,notePreviewDirty: null ,set_notePreviewDirty: function(value) { return this.notePreviewDirty = value; } ,notePreviewViewportBoundsDirty: null ,saveDataDirty: null ,set_saveDataDirty: function(value) { var _gthis = this; if(value == this.saveDataDirty) { return value; } if(value) { this.autoSaveTimer = new flixel_util_FlxTimer().start(funkin_util_Constants.AUTOSAVE_TIMER_DELAY_SEC,function(_) { _gthis.autoSave(); }); } else if(this.autoSaveTimer != null) { this.autoSaveTimer.cancel(); this.autoSaveTimer.destroy(); this.autoSaveTimer = null; } this.saveDataDirty = value; this.applyWindowTitle(); return this.saveDataDirty; } ,get_shouldShowBackupAvailableDialog: function() { return funkin_save_Save.get_instance().get_chartEditorHasBackup(); } ,set_shouldShowBackupAvailableDialog: function(value) { return funkin_save_Save.get_instance().set_chartEditorHasBackup(value); } ,previousWorkingFilePaths: null ,set_previousWorkingFilePaths: function(value) { this.previousWorkingFilePaths = value; this.applyWindowTitle(); this.populateOpenRecentMenu(); this.applyCanQuickSave(); return value; } ,get_currentWorkingFilePath: function() { return this.previousWorkingFilePaths[0]; } ,set_currentWorkingFilePath: function(value) { if(value == this.previousWorkingFilePaths[0]) { return value; } if(this.previousWorkingFilePaths.indexOf(null) != -1) { var _g = []; var _g1 = 0; var _g2 = this.previousWorkingFilePaths; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != null) { _g.push(v); } } this.set_previousWorkingFilePaths(_g); } if(this.previousWorkingFilePaths.indexOf(value) != -1) { HxOverrides.remove(this.previousWorkingFilePaths,value); this.previousWorkingFilePaths.unshift(value); } else { this.previousWorkingFilePaths.unshift(value); } while(this.previousWorkingFilePaths.length > funkin_util_Constants.MAX_PREVIOUS_WORKING_FILES) this.previousWorkingFilePaths.pop(); this.populateOpenRecentMenu(); this.applyWindowTitle(); return value; } ,difficultySelectDirty: null ,characterSelectDirty: null ,playerPreviewDirty: null ,opponentPreviewDirty: null ,commandHistoryDirty: null ,criticalFailure: null ,undoKeyHandler: null ,redoKeyHandler: null ,upKeyHandler: null ,downKeyHandler: null ,wKeyHandler: null ,sKeyHandler: null ,pageUpKeyHandler: null ,pageDownKeyHandler: null ,dpadUpGamepadHandler: null ,dpadDownGamepadHandler: null ,dpadLeftGamepadHandler: null ,dpadRightGamepadHandler: null ,leftStickUpGamepadHandler: null ,leftStickDownGamepadHandler: null ,leftStickLeftGamepadHandler: null ,leftStickRightGamepadHandler: null ,rightStickUpGamepadHandler: null ,rightStickDownGamepadHandler: null ,rightStickLeftGamepadHandler: null ,rightStickRightGamepadHandler: null ,welcomeMusic: null ,audioInstTrack: null ,audioInstTrackData: null ,audioVocalTrackGroup: null ,audioWaveforms: null ,audioVocalTrackData: null ,songMetadata: null ,get_availableVariations: function() { var _g = []; var h = this.songMetadata.h; var x_h = h; var x_keys = Object.keys(h); var x_length = x_keys.length; var x_current = 0; while(x_current < x_length) { var x = x_keys[x_current++]; _g.push(x); } var variations = _g; var defaultValue = "default"; variations.sort(function(a,b) { return funkin_util_SortUtil.defaultThenAlphabetically(defaultValue,a,b); }); return variations; } ,get_availableDifficulties: function() { var m = this.songMetadata.h[this.selectedVariation]; var tmp = m != null ? m.playData : null; var tmp1 = tmp != null ? tmp.difficulties : null; if(tmp1 != null) { return tmp1; } else { return [funkin_util_Constants.DEFAULT_DIFFICULTY]; } } ,get_allDifficulties: function() { var _g = []; var _g1 = 0; var _g2 = this.get_availableVariations(); while(_g1 < _g2.length) { var x = _g2[_g1]; ++_g1; var m = this.songMetadata.h[x]; var tmp = m != null ? m.playData : null; var tmp1 = tmp != null ? tmp.difficulties : null; _g.push(tmp1 != null ? tmp1 : []); } var result = _g; var _g = []; var _g_current = 0; var _g_array = result; while(_g_current < _g_array.length) { var e = _g_array[_g_current++]; var x = $getIterator(e); while(x.hasNext()) { var x1 = x.next(); _g.push(x1); } } return _g; } ,songChartData: null ,get_currentSongMetadata: function() { var result = this.songMetadata.h[this.selectedVariation]; if(result == null) { result = new funkin_data_song_SongMetadata("Default Song Name",funkin_util_Constants.DEFAULT_ARTIST,this.selectedVariation); this.songMetadata.h[this.selectedVariation] = result; } return result; } ,set_currentSongMetadata: function(value) { this.songMetadata.h[this.selectedVariation] = value; return value; } ,get_currentSongChartData: function() { var result = this.songChartData.h[this.selectedVariation]; if(result == null) { var _g = new haxe_ds_StringMap(); _g.h[funkin_util_Constants.DEFAULT_DIFFICULTY] = 1.0; var _g1 = new haxe_ds_StringMap(); _g1.h[funkin_util_Constants.DEFAULT_DIFFICULTY] = []; result = new funkin_data_song_SongChartData(_g,[],_g1); this.songChartData.h[this.selectedVariation] = result; } return result; } ,set_currentSongChartData: function(value) { this.songChartData.h[this.selectedVariation] = value; return value; } ,get_currentSongChartScrollSpeed: function() { var result = this.get_currentSongChartData().scrollSpeed.h[this.selectedDifficulty]; if(result == null) { this.get_currentSongChartData().scrollSpeed.h[this.selectedDifficulty] = 1.0; return 1.0; } return result; } ,set_currentSongChartScrollSpeed: function(value) { this.get_currentSongChartData().scrollSpeed.h[this.selectedDifficulty] = value; return value; } ,get_currentSongChartNoteData: function() { var result = this.get_currentSongChartData().notes.h[this.selectedDifficulty]; if(result == null) { result = []; haxe_Log.trace("Initializing blank chart for difficulty " + this.selectedDifficulty,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 1342, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "get_currentSongChartNoteData"}); this.get_currentSongChartData().notes.h[this.selectedDifficulty] = result; funkin_util_tools_ArrayTools.pushUnique(this.get_currentSongMetadata().playData.difficulties,this.selectedDifficulty); return result; } return result; } ,set_currentSongChartNoteData: function(value) { this.get_currentSongChartData().notes.h[this.selectedDifficulty] = value; funkin_util_tools_ArrayTools.pushUnique(this.get_currentSongMetadata().playData.difficulties,this.selectedDifficulty); return value; } ,get_currentSongChartEventData: function() { if(this.get_currentSongChartData().events == null) { this.get_currentSongChartData().events = []; } return this.get_currentSongChartData().events; } ,set_currentSongChartEventData: function(value) { return this.get_currentSongChartData().events = value; } ,get_currentSongChartDifficultyRating: function() { var result = this.get_currentSongMetadata().playData.ratings.h[this.selectedDifficulty]; if(result == null) { this.get_currentSongMetadata().playData.ratings.h[this.selectedDifficulty] = 0; return 0; } return result; } ,set_currentSongChartDifficultyRating: function(value) { this.get_currentSongMetadata().playData.ratings.h[this.selectedDifficulty] = value; return value; } ,get_currentSongNoteStyle: function() { if(this.get_currentSongMetadata().playData.noteStyle == null) { this.get_currentSongMetadata().playData.noteStyle = funkin_util_Constants.DEFAULT_NOTE_STYLE; } return this.get_currentSongMetadata().playData.noteStyle; } ,set_currentSongNoteStyle: function(value) { return this.get_currentSongMetadata().playData.noteStyle = value; } ,get_currentSongFreeplayPreviewStart: function() { return this.get_currentSongMetadata().playData.previewStart; } ,set_currentSongFreeplayPreviewStart: function(value) { return this.get_currentSongMetadata().playData.previewStart = value; } ,get_currentSongFreeplayPreviewEnd: function() { return this.get_currentSongMetadata().playData.previewEnd; } ,set_currentSongFreeplayPreviewEnd: function(value) { return this.get_currentSongMetadata().playData.previewEnd = value; } ,get_currentSongStage: function() { if(this.get_currentSongMetadata().playData.stage == null) { this.get_currentSongMetadata().playData.stage = "mainStage"; } return this.get_currentSongMetadata().playData.stage; } ,set_currentSongStage: function(value) { return this.get_currentSongMetadata().playData.stage = value; } ,get_currentSongName: function() { if(this.get_currentSongMetadata().songName == null) { this.get_currentSongMetadata().songName = "New Song"; } return this.get_currentSongMetadata().songName; } ,set_currentSongName: function(value) { return this.get_currentSongMetadata().songName = value; } ,get_currentSongId: function() { return funkin_util_tools_StringTools.sanitize(StringTools.replace(funkin_util_tools_StringTools.toLowerKebabCase(this.get_currentSongName())," ","-")); } ,get_currentSongArtist: function() { if(this.get_currentSongMetadata().artist == null) { this.get_currentSongMetadata().artist = "Unknown"; } return this.get_currentSongMetadata().artist; } ,set_currentSongArtist: function(value) { return this.get_currentSongMetadata().artist = value; } ,get_currentPlayerChar: function() { if(this.get_currentSongMetadata().playData.characters.player == null) { this.get_currentSongMetadata().playData.characters.player = funkin_util_Constants.DEFAULT_CHARACTER; } return this.get_currentSongMetadata().playData.characters.player; } ,set_currentPlayerChar: function(value) { return this.get_currentSongMetadata().playData.characters.player = value; } ,get_currentOpponentChar: function() { if(this.get_currentSongMetadata().playData.characters.opponent == null) { this.get_currentSongMetadata().playData.characters.opponent = funkin_util_Constants.DEFAULT_CHARACTER; } return this.get_currentSongMetadata().playData.characters.opponent; } ,set_currentOpponentChar: function(value) { return this.get_currentSongMetadata().playData.characters.opponent = value; } ,get_currentSongOffsets: function() { if(this.get_currentSongMetadata().offsets == null) { this.get_currentSongMetadata().offsets = new funkin_data_song_SongOffsets(); } return this.get_currentSongMetadata().offsets; } ,set_currentSongOffsets: function(value) { return this.get_currentSongMetadata().offsets = value; } ,get_currentInstrumentalOffset: function() { return this.get_currentSongOffsets().getInstrumentalOffset(); } ,set_currentInstrumentalOffset: function(value) { this.get_currentSongOffsets().setInstrumentalOffset(value); return value; } ,get_currentVocalOffsetPlayer: function() { return this.get_currentSongOffsets().getVocalOffset(this.get_currentPlayerChar()); } ,set_currentVocalOffsetPlayer: function(value) { this.get_currentSongOffsets().setVocalOffset(this.get_currentPlayerChar(),value); return value; } ,get_currentVocalOffsetOpponent: function() { return this.get_currentSongOffsets().getVocalOffset(this.get_currentOpponentChar()); } ,set_currentVocalOffsetOpponent: function(value) { this.get_currentSongOffsets().setVocalOffset(this.get_currentOpponentChar(),value); return value; } ,selectedVariation: null ,set_selectedVariation: function(value) { if(this.selectedVariation == value) { return this.selectedVariation; } this.selectedVariation = value; this.noteDisplayDirty = true; this.set_notePreviewDirty(true); this.noteTooltipsDirty = true; this.notePreviewViewportBoundsDirty = true; this.switchToCurrentInstrumental(); return this.selectedVariation; } ,selectedDifficulty: null ,set_selectedDifficulty: function(value) { if(value == null) { var tmp = this.get_availableDifficulties()[0]; value = tmp != null ? tmp : funkin_util_Constants.DEFAULT_DIFFICULTY; } this.selectedDifficulty = value; this.noteDisplayDirty = true; this.set_notePreviewDirty(true); this.noteTooltipsDirty = true; this.notePreviewViewportBoundsDirty = true; funkin_util_tools_ArrayTools.pushUnique(this.get_currentSongMetadata().playData.difficulties,this.selectedDifficulty); return this.selectedDifficulty; } ,get_currentInstrumentalId: function() { var instId = this.get_currentSongMetadata().playData.characters.instrumental; if(instId == null || instId == "") { instId = this.selectedVariation == funkin_util_Constants.DEFAULT_VARIATION ? "" : this.selectedVariation; } return instId; } ,set_currentInstrumentalId: function(value) { return this.get_currentSongMetadata().playData.characters.instrumental = value; } ,playbarHeadLayout: null ,menubar: null ,menubarItemNewChart: null ,menubarItemOpenChart: null ,menubarOpenRecent: null ,menubarItemSaveChart: null ,menubarItemSaveChartAs: null ,menubarItemPreferences: null ,menubarItemExit: null ,menubarItemUndo: null ,menubarItemRedo: null ,menubarItemCut: null ,menubarItemCopy: null ,menubarItemPaste: null ,menubarItemPasteUnsnapped: null ,menubarItemDelete: null ,menubarItemFlipNotes: null ,menubarItemSelectAll: null ,menubarItemSelectInverse: null ,menubarItemSelectNone: null ,menubarItemSelectRegion: null ,menubarItemSelectBeforeCursor: null ,menubarItemSelectAfterCursor: null ,menuBarItemNoteSnapDecrease: null ,menuBarItemNoteSnapIncrease: null ,menubarItemDownscroll: null ,menubarItemDifficultyUp: null ,menubarItemDifficultyDown: null ,menubarItemPlayPause: null ,menubarItemLoadInstrumental: null ,menubarItemLoadVocals: null ,menubarLabelVolumeMetronome: null ,menubarItemVolumeMetronome: null ,menubarItemThemeMusic: null ,menubarLabelVolumeHitsoundPlayer: null ,menubarLabelVolumeHitsoundOpponent: null ,menubarItemVolumeHitsoundPlayer: null ,menubarItemVolumeHitsoundOpponent: null ,menubarLabelVolumeInstrumental: null ,menubarItemVolumeInstrumental: null ,menubarLabelVolumeVocalsPlayer: null ,menubarLabelVolumeVocalsOpponent: null ,menubarItemVolumeVocalsPlayer: null ,menubarItemVolumeVocalsOpponent: null ,menubarLabelPlaybackSpeed: null ,menubarItemPlaybackSpeed: null ,playbarSongPos: null ,playbarSongRemaining: null ,playbarNoteSnap: null ,playbarStart: null ,playbarBack: null ,playbarPlay: null ,playbarForward: null ,playbarEnd: null ,buttonSelectOpponent: null ,buttonSelectPlayer: null ,buttonSelectEvent: null ,sliderVolumePlayer: null ,sliderVolumeOpponent: null ,visulizerGrps: null ,gridBitmap: null ,selectionSquareBitmap: null ,notePreviewViewportBitmap: null ,measureTickBitmap: null ,offsetTickBitmap: null ,gridTiledSprite: null ,measureTicks: null ,gridPlayhead: null ,gridGhostNote: null ,gridGhostHoldNote: null ,gridPlayheadGhostHoldNotes: null ,gridGhostEvent: null ,notePreview: null ,notePreviewViewport: null ,notePreviewPlayhead: null ,selectionBoxSprite: null ,healthIconDad: null ,healthIconBF: null ,txtCopyNotif: null ,menuBG: null ,renderedNotes: null ,renderedHoldNotes: null ,renderedEvents: null ,renderedSelectionSquares: null ,params: null ,dispatchEvent: function(event) { haxe_ui_backend_flixel_UIState.prototype.dispatchEvent.call(this,event); if(this.currentPlayerCharacterPlayer != null) { switch(event.type) { case "BEAT_HIT": this.currentPlayerCharacterPlayer.onBeatHit(event); break; case "NOTE_HIT": this.currentPlayerCharacterPlayer.onNoteHit(event); break; case "STEP_HIT": this.currentPlayerCharacterPlayer.onStepHit(event); break; case "UPDATE": this.currentPlayerCharacterPlayer.onUpdate(event); break; default: } } if(this.currentOpponentCharacterPlayer != null) { switch(event.type) { case "BEAT_HIT": this.currentOpponentCharacterPlayer.onBeatHit(event); break; case "NOTE_HIT": this.currentOpponentCharacterPlayer.onNoteHit(event); break; case "STEP_HIT": this.currentOpponentCharacterPlayer.onStepHit(event); break; case "UPDATE": this.currentOpponentCharacterPlayer.onUpdate(event); break; default: } } } ,create: function() { haxe_ui_backend_flixel_UIState.prototype.create.call(this); this.root.zIndex = 100; if(flixel_FlxG.sound.music != null) { var _this = flixel_FlxG.sound.music; _this.cleanup(_this.autoDestroy,true); } this.setupWelcomeMusic(); flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); this.loadPreferences(); this.uiCamera = new funkin_graphics_FunkinCamera("chartEditorUI"); flixel_FlxG.cameras.reset(this.uiCamera); this.buildDefaultSongData(); this.buildBackground(); funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateTheme(this); this.buildGrid(); this.buildMeasureTicks(); this.buildNotePreview(); this.buildAdditionalUI(); this.populateOpenRecentMenu(); funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.applyPlatformShortcutText(this); this.setupUIListeners(); this.setupContextMenu(); this.setupTurboKeyHandlers(); this.setupAutoSave(); this.refresh(); if(this.params != null && this.params.fnfcTargetPath != null) { var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFCPath(this,this.params.fnfcTargetPath); if(result != null) { if(result.length == 0) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(this,"Loaded Chart","Loaded chart (" + this.params.fnfcTargetPath + ")"); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.warning(this,"Loaded Chart","Loaded chart with issues (" + this.params.fnfcTargetPath + ")\n" + result.join("\n")); } } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this,"Failure","Failed to load chart (" + this.params.fnfcTargetPath + ")"); var welcomeDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(this,false); if(this.get_shouldShowBackupAvailableDialog()) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBackupAvailableDialog(this,welcomeDialog); } } } else if(this.params != null && this.params.targetSongId != null) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSongAsTemplate(this,this.params.targetSongId); } else { var welcomeDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(this,false); if(this.get_shouldShowBackupAvailableDialog()) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBackupAvailableDialog(this,welcomeDialog); } } } ,setupWelcomeMusic: function() { this.welcomeMusic.loadEmbedded(funkin_Paths.music("chartEditorLoop/chartEditorLoop")); flixel_FlxG.sound.list.add(this.welcomeMusic); this.welcomeMusic.looped = true; } ,loadPreferences: function() { var save = funkin_save_Save.get_instance(); if(this.previousWorkingFilePaths[0] == null) { this.set_previousWorkingFilePaths([null].concat(save.get_chartEditorPreviousFiles())); } else { this.set_previousWorkingFilePaths([this.get_currentWorkingFilePath()].concat(save.get_chartEditorPreviousFiles())); } this.noteSnapQuantIndex = save.get_chartEditorNoteQuant(); this.currentLiveInputStyle = save.get_chartEditorLiveInputStyle(); this.set_isViewDownscroll(save.get_chartEditorDownscroll()); this.playtestStartTime = save.get_chartEditorPlaytestStartTime(); this.set_currentTheme(save.get_chartEditorTheme()); this.metronomeVolume = save.get_chartEditorMetronomeVolume(); this.hitsoundVolumePlayer = save.get_chartEditorHitsoundVolumePlayer(); this.hitsoundVolumePlayer = save.get_chartEditorHitsoundVolumeOpponent(); this.welcomeMusic.set_active(save.get_chartEditorThemeMusic()); } ,writePreferences: function(hasBackup) { var save = funkin_save_Save.get_instance(); var filteredWorkingFilePaths = []; var _g = 0; var _g1 = this.previousWorkingFilePaths; while(_g < _g1.length) { var chartPath = _g1[_g]; ++_g; if(chartPath != null) { filteredWorkingFilePaths.push(chartPath); } } save.set_chartEditorPreviousFiles(filteredWorkingFilePaths); if(hasBackup) { haxe_Log.trace("Queuing backup prompt for next time!",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 2300, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "writePreferences"}); } save.set_chartEditorHasBackup(hasBackup); save.set_chartEditorNoteQuant(this.noteSnapQuantIndex); save.set_chartEditorLiveInputStyle(this.currentLiveInputStyle); save.set_chartEditorDownscroll(this.isViewDownscroll); save.set_chartEditorPlaytestStartTime(this.playtestStartTime); save.set_chartEditorTheme(this.currentTheme); save.set_chartEditorMetronomeVolume(this.metronomeVolume); save.set_chartEditorHitsoundVolumePlayer(this.hitsoundVolumePlayer); save.set_chartEditorHitsoundVolumeOpponent(this.hitsoundVolumeOpponent); save.set_chartEditorThemeMusic(this.welcomeMusic.active); } ,populateOpenRecentMenu: function() { if(this.menubarOpenRecent == null) { return; } this.menubarOpenRecent.hide(); } ,bgMusicTimer: null ,fadeInWelcomeMusic: function(extraWait,fadeInTime) { if(fadeInTime == null) { fadeInTime = 5; } if(extraWait == null) { extraWait = 0; } var _gthis = this; if(!this.welcomeMusic.active) { this.stopWelcomeMusic(); return; } this.bgMusicTimer = new flixel_util_FlxTimer().start(extraWait,function(_) { _gthis.welcomeMusic.set_volume(0); if(_gthis.welcomeMusic.active) { _gthis.welcomeMusic.play(); var _this = _gthis.welcomeMusic; var Duration = fadeInTime; var From = 0; var To = 1.0; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } }); } ,stopWelcomeMusic: function() { if(this.bgMusicTimer != null) { this.bgMusicTimer.cancel(); } this.welcomeMusic.pause(); } ,buildDefaultSongData: function() { this.set_selectedVariation(funkin_util_Constants.DEFAULT_VARIATION); this.set_selectedDifficulty(funkin_util_Constants.DEFAULT_DIFFICULTY); this.songMetadata = new haxe_ds_StringMap(); this.songChartData = new haxe_ds_StringMap(); } ,buildBackground: function() { this.menuBG = new flixel_FlxSprite().loadGraphic(funkin_Paths.image("menuDesat")); this.add(this.menuBG); this.menuBG.setGraphicSize(this.menuBG.get_width() * 1.1 | 0); this.menuBG.updateHitbox(); var _this = this.menuBG; if(17 == 1 || 17 == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(17 == 16 || 17 == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } var this1 = this.menuBG.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.menuBG.zIndex = -100; } ,oppSpectogram: null ,buildGrid: function() { if(this.gridBitmap == null) { throw haxe_Exception.thrown("ERROR: Tried to build grid, but gridBitmap is null! Check ChartEditorThemeHandler.updateTheme()."); } this.gridTiledSprite = new flixel_addons_display_FlxTiledSprite(this.gridBitmap,this.gridBitmap.width,1000,false,true); this.gridTiledSprite.set_x(funkin_ui_debug_charting_ChartEditorState.get_GRID_X_POS()); this.gridTiledSprite.set_y(funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS); this.add(this.gridTiledSprite); this.gridTiledSprite.zIndex = 10; this.gridGhostNote = new funkin_ui_debug_charting_components_ChartEditorNoteSprite(this); this.gridGhostNote.set_alpha(0.6); this.gridGhostNote.set_noteData(funkin_data_song_SongNoteData._new(0,0,0,"")); this.gridGhostNote.set_visible(false); this.add(this.gridGhostNote); this.gridGhostNote.zIndex = 11; this.gridGhostHoldNote = new funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite(this); this.gridGhostHoldNote.set_alpha(0.6); this.gridGhostHoldNote.noteData = null; this.gridGhostHoldNote.set_visible(false); this.add(this.gridGhostHoldNote); this.gridGhostHoldNote.zIndex = 11; this.gridGhostEvent = new funkin_ui_debug_charting_components_ChartEditorEventSprite(this,true); this.gridGhostEvent.set_alpha(0.6); this.gridGhostEvent.set_eventData(funkin_data_song_SongEventData._new(-1,"",{ })); this.gridGhostEvent.set_visible(false); this.add(this.gridGhostEvent); this.gridGhostEvent.zIndex = 12; this.buildNoteGroup(); this.add(this.gridPlayhead); this.gridPlayhead.zIndex = 30; var playheadWidth = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * (funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1) + funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH * 2; var playheadBaseYPos = funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS; this.gridPlayhead.setPosition(funkin_ui_debug_charting_ChartEditorState.get_GRID_X_POS(),playheadBaseYPos); var playheadSprite = new funkin_graphics_FunkinSprite().makeSolidColor(playheadWidth,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_HEIGHT,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_COLOR); playheadSprite.set_x(-funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH); playheadSprite.set_y(0); this.gridPlayhead.add(playheadSprite); var playheadBlock = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.buildPlayheadBlock(); playheadBlock.set_x(-funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH); playheadBlock.set_y(-funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_HEIGHT / 2); this.gridPlayhead.add(playheadBlock); this.healthIconDad = new funkin_play_components_HealthIcon(this.get_currentSongMetadata().playData.characters.opponent); this.healthIconDad.autoUpdate = false; var this1 = this.healthIconDad.size; var x = 0.5; var y = 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.healthIconDad); this.healthIconDad.zIndex = 30; this.healthIconBF = new funkin_play_components_HealthIcon(this.get_currentSongMetadata().playData.characters.player); this.healthIconBF.autoUpdate = false; var this1 = this.healthIconBF.size; var x = 0.5; var y = 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.healthIconBF.set_flipX(true); this.add(this.healthIconBF); this.healthIconBF.zIndex = 30; this.add(this.audioWaveforms); } ,buildMeasureTicks: function() { this.measureTicks = new funkin_ui_debug_charting_components_ChartEditorMeasureTicks(this); var measureTicksWidth = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; this.measureTicks.set_x(this.gridTiledSprite.x - measureTicksWidth); this.measureTicks.set_y(funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT + funkin_ui_debug_charting_ChartEditorState.GRID_TOP_PAD); this.measureTicks.zIndex = 20; this.add(this.measureTicks); } ,buildNotePreview: function() { var playbarHeightWithPad = funkin_ui_debug_charting_ChartEditorState.PLAYBAR_HEIGHT + 10; var notePreviewHeight = flixel_FlxG.height - funkin_ui_debug_charting_ChartEditorState.NOTE_PREVIEW_Y_POS - playbarHeightWithPad; this.notePreview = new funkin_ui_debug_charting_components_ChartEditorNotePreview(notePreviewHeight); this.notePreview.set_x(funkin_ui_debug_charting_ChartEditorState.NOTE_PREVIEW_X_POS); this.notePreview.set_y(funkin_ui_debug_charting_ChartEditorState.NOTE_PREVIEW_Y_POS); this.add(this.notePreview); if(this.notePreviewViewport == null) { throw haxe_Exception.thrown("ERROR: Tried to build note preview, but notePreviewViewport is null! Check ChartEditorThemeHandler.updateTheme()."); } var this1 = this.notePreviewViewport.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(this.notePreviewViewport); this.notePreviewViewport.zIndex = 30; this.notePreviewPlayhead = new flixel_FlxSprite().makeGraphic(2,2,-65536); var this1 = this.notePreviewPlayhead.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.notePreviewPlayhead.scale; var x = this.notePreview.get_width() / 2; var y = 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.notePreviewPlayhead.updateHitbox(); this.notePreviewPlayhead.set_x(this.notePreview.x); this.notePreviewPlayhead.set_y(this.notePreview.y); this.add(this.notePreviewPlayhead); this.notePreviewPlayhead.zIndex = 31; this.setNotePreviewViewportBounds(this.calculateNotePreviewViewportBounds()); } ,setSelectionBoxBounds: function(bounds) { if(this.selectionBoxSprite == null) { throw haxe_Exception.thrown("ERROR: Tried to set selection box bounds, but selectionBoxSprite is null! Check ChartEditorThemeHandler.updateTheme()."); } if(bounds == null) { this.selectionBoxSprite.set_visible(false); this.selectionBoxSprite.set_x(-9999); this.selectionBoxSprite.set_y(-9999); } else { this.selectionBoxSprite.set_visible(true); this.selectionBoxSprite.set_x(bounds.x); this.selectionBoxSprite.set_y(bounds.y); this.selectionBoxSprite.set_width(bounds.width); this.selectionBoxSprite.set_height(bounds.height); } } ,draw: function() { haxe_ui_backend_flixel_UIState.prototype.draw.call(this); } ,calculateNotePreviewViewportBounds: function() { var bounds = new flixel_math_FlxRect(); if(this.notePreview == null) { return bounds; } bounds.x = this.notePreview.x; bounds.width = this.notePreview.get_width(); bounds.y = this.notePreview.y + this.notePreview.get_height() * (this.scrollPositionInPixels / this.get_songLengthInPixels()); bounds.height = this.notePreview.get_height() * (flixel_FlxG.height / this.get_songLengthInPixels()); if(bounds.y < this.notePreview.y) { bounds.height -= this.notePreview.y - bounds.y; bounds.y = this.notePreview.y; } else if(bounds.y + bounds.height > this.notePreview.y + this.notePreview.get_height()) { bounds.height -= bounds.y + bounds.height - (this.notePreview.y + this.notePreview.get_height()); } var MIN_HEIGHT = 8; if(bounds.height < MIN_HEIGHT) { bounds.y -= MIN_HEIGHT - bounds.height; bounds.height = MIN_HEIGHT; } return bounds; } ,setNotePreviewViewportBounds: function(bounds) { if(this.notePreviewViewport == null) { haxe_Log.trace("[WARN] Tried to set note preview viewport bounds, but notePreviewViewport is null!",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 2605, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "setNotePreviewViewportBounds"}); return; } if(bounds == null) { this.notePreviewViewport.set_visible(false); this.notePreviewViewport.set_x(-9999); this.notePreviewViewport.set_y(-9999); } else { this.notePreviewViewport.set_visible(true); this.notePreviewViewport.set_x(bounds.x); this.notePreviewViewport.set_y(bounds.y); this.notePreviewViewport.set_width(bounds.width); this.notePreviewViewport.set_height(bounds.height); } } ,refreshNotePreviewPlayheadPosition: function() { if(this.notePreviewPlayhead == null) { return; } this.notePreviewPlayhead.set_y(this.notePreview.y + this.notePreview.get_height() * ((this.scrollPositionInPixels + this.playheadPositionInPixels) / this.get_songLengthInPixels())); } ,buildNoteGroup: function() { if(this.gridTiledSprite == null) { throw haxe_Exception.thrown("ERROR: Tried to build note groups, but gridTiledSprite is null! Check ChartEditorState.buildGrid()."); } this.renderedHoldNotes.setPosition(this.gridTiledSprite.x,this.gridTiledSprite.y); this.add(this.renderedHoldNotes); this.renderedHoldNotes.zIndex = 24; this.renderedNotes.setPosition(this.gridTiledSprite.x,this.gridTiledSprite.y); this.add(this.renderedNotes); this.renderedNotes.zIndex = 25; this.renderedEvents.setPosition(this.gridTiledSprite.x,this.gridTiledSprite.y); this.add(this.renderedEvents); this.renderedEvents.zIndex = 25; this.renderedSelectionSquares.setPosition(this.gridTiledSprite.x,this.gridTiledSprite.y); this.add(this.renderedSelectionSquares); this.renderedSelectionSquares.zIndex = 26; } ,buildAdditionalUI: function() { var _gthis = this; this.playbarHeadLayout = new funkin_ui_debug_charting_components_ChartEditorPlaybarHead(); this.playbarHeadLayout.zIndex = 110; this.playbarHeadLayout.set_width(flixel_FlxG.width - 8); this.playbarHeadLayout.set_height(10); this.playbarHeadLayout.set_x(4); this.playbarHeadLayout.set_y(flixel_FlxG.height - 48 - 8); this.playbarHeadLayout.playbarHead.set_allowFocus(false); this.playbarHeadLayout.playbarHead.set_width(flixel_FlxG.width); this.playbarHeadLayout.playbarHead.set_height(10); this.playbarHeadLayout.playbarHead.set_styleString("padding-left: 0px; padding-right: 0px; border-left: 0px; border-right: 0px;"); this.playbarHeadLayout.playbarHead.set_onDragStart(function(_) { _gthis.playbarHeadDragging = true; if(_gthis.audioInstTrack != null && _gthis.audioInstTrack.get_isPlaying()) { _gthis.playbarHeadDraggingWasPlaying = true; _gthis.stopAudioPlayback(); } else { _gthis.playbarHeadDraggingWasPlaying = false; } }); this.playbarHeadLayout.playbarHead.set_onDrag(function(_) { if(_gthis.playbarHeadDragging) { _gthis.set_scrollPositionInPixels(_gthis.get_songLengthInPixels() * _gthis.playbarHeadLayout.playbarHead.get_value() / 100); _gthis.moveSongToScrollPosition(); } }); this.playbarHeadLayout.playbarHead.set_onDragEnd(function(_) { _gthis.playbarHeadDragging = false; if(_gthis.playbarHeadDraggingWasPlaying) { _gthis.playbarHeadDraggingWasPlaying = false; } }); this.add(this.playbarHeadLayout); this.txtCopyNotif = new flixel_text_FlxText(0,0,0,"",24); var _this = this.txtCopyNotif; var Color = -16300023; var Size = 1; if(Size == null) { Size = 1; } if(Color == null) { Color = 0; } _this.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE); _this.set_borderColor(Color); _this.set_borderSize(Size); _this.set_borderQuality(1); this.txtCopyNotif.set_color(-11337865); this.txtCopyNotif.zIndex = 120; this.add(this.txtCopyNotif); if(!funkin_Preferences.get_debugDisplay()) { this.menubar.set_paddingLeft(null); } funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.setupNotifications(this); flixel_input_mouse_FlxMouseEvent.globalManager.add(this.healthIconDad,function(_) { if(!_gthis.get_isCursorOverHaxeUI()) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCharacterDropdown(_gthis,funkin_play_character_CharacterType.DAD,true); } },null,null,null,false,true,true,null); flixel_input_mouse_FlxMouseEvent.globalManager.add(this.healthIconBF,function(_) { if(!_gthis.get_isCursorOverHaxeUI()) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCharacterDropdown(_gthis,funkin_play_character_CharacterType.BF,true); } },null,null,null,false,true,true,null); this.buttonSelectOpponent = new haxe_ui_components_Button(); this.buttonSelectOpponent.set_allowFocus(false); this.buttonSelectOpponent.set_text("Opponent"); this.buttonSelectOpponent.set_x(funkin_ui_debug_charting_ChartEditorState.get_GRID_X_POS()); this.buttonSelectOpponent.set_y(funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT - 8); this.buttonSelectOpponent.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4); this.buttonSelectOpponent.set_height(funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT); this.buttonSelectOpponent.set_tooltip("Click to set selection to all notes on this side.\nShift-click to add all notes on this side to selection."); this.buttonSelectOpponent.zIndex = 110; this.add(this.buttonSelectOpponent); this.buttonSelectOpponent.set_onClick(function(_) { var notesToSelect = _gthis.get_currentSongChartNoteData(); notesToSelect = funkin_data_song_SongDataUtils.getNotesInDataRange(notesToSelect,funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE,funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 - 1); var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { _gthis.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand(notesToSelect,[])); } else { _gthis.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand(notesToSelect,[])); } }); this.buttonSelectPlayer = new haxe_ui_components_Button(); this.buttonSelectPlayer.set_allowFocus(false); this.buttonSelectPlayer.set_text("Player"); this.buttonSelectPlayer.set_x(this.buttonSelectOpponent.x + this.buttonSelectOpponent.get_width()); this.buttonSelectPlayer.set_y(this.buttonSelectOpponent.y); this.buttonSelectPlayer.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4); this.buttonSelectPlayer.set_height(funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT); this.buttonSelectPlayer.set_tooltip("Click to set selection to all notes on this side.\nShift-click to add all notes on this side to selection."); this.buttonSelectPlayer.zIndex = 110; this.add(this.buttonSelectPlayer); this.buttonSelectPlayer.set_onClick(function(_) { var notesToSelect = _gthis.get_currentSongChartNoteData(); notesToSelect = funkin_data_song_SongDataUtils.getNotesInDataRange(notesToSelect,0,funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE - 1); var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { _gthis.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand(notesToSelect,[])); } else { _gthis.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand(notesToSelect,[])); } }); this.buttonSelectEvent = new haxe_ui_components_Button(); this.buttonSelectEvent.set_allowFocus(false); this.buttonSelectEvent.set_icon(haxe_ui_util_Variant.fromString(funkin_Paths.image("ui/chart-editor/events/Default"))); this.buttonSelectEvent.set_iconPosition("top"); this.buttonSelectEvent.set_x(this.buttonSelectPlayer.x + this.buttonSelectPlayer.get_width()); this.buttonSelectEvent.set_y(this.buttonSelectPlayer.y); this.buttonSelectEvent.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); this.buttonSelectEvent.set_height(funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT); this.buttonSelectEvent.set_tooltip("Click to set selection to all events.\nShift-click to add all events to selection."); this.buttonSelectEvent.zIndex = 110; this.add(this.buttonSelectEvent); this.buttonSelectEvent.set_onClick(function(_) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { _gthis.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([],_gthis.get_currentSongChartEventData())); } else { _gthis.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand([],_gthis.get_currentSongChartEventData())); } }); } ,setupUIListeners: function() { var _gthis = this; this.playbarStart.set_onClick(function(_) { _gthis.playbarButtonPressed = "playbarStart"; }); this.playbarBack.set_onClick(function(_) { _gthis.playbarButtonPressed = "playbarBack"; }); this.playbarPlay.set_onClick(function(_) { _gthis.toggleAudioPlayback(); }); this.playbarForward.set_onClick(function(_) { _gthis.playbarButtonPressed = "playbarForward"; }); this.playbarEnd.set_onClick(function(_) { _gthis.playbarButtonPressed = "playbarEnd"; }); this.playbarNoteSnap.set_onRightClick(function(_) { _gthis.noteSnapQuantIndex--; if(_gthis.noteSnapQuantIndex < 0) { _gthis.noteSnapQuantIndex = funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS.length - 1; } }); this.playbarNoteSnap.set_onClick(function(_) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { _gthis.noteSnapQuantIndex = funkin_ui_debug_charting_ChartEditorState.BASE_QUANT_INDEX; } else { _gthis.noteSnapQuantIndex++; if(_gthis.noteSnapQuantIndex >= funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS.length) { _gthis.noteSnapQuantIndex = 0; } } }); this.playbarBPM.set_onClick(function(_) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT,true); } else { funkin_Conductor.get_instance().currentTimeChange.bpm += 1; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); } }); this.playbarBPM.set_onRightClick(function(_) { funkin_Conductor.get_instance().currentTimeChange.bpm -= 1; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); }); this.playbarDifficulty.set_onClick(function(_) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT,true); } else { _gthis.incrementDifficulty(-1); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); } }); this.playbarDifficulty.set_onRightClick(function(_) { _gthis.incrementDifficulty(1); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); }); this.menubarItemNewChart.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(_gthis,true); }); this.menubarItemOpenChart.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBrowseFNFC(_gthis,true); }); this.menubarItemSaveChart.set_onClick(function(_) { if(_gthis.get_currentWorkingFilePath() != null) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(_gthis,true,_gthis.get_currentWorkingFilePath()); } else { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(_gthis,false,null); } }); this.menubarItemSaveChartAs.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(_gthis,false,null); }); this.menubarItemExit.set_onClick(function(_) { _gthis.quitChartEditor(); }); this.menubarItemUndo.set_onClick(function(_) { _gthis.undoLastCommand(); }); this.menubarItemRedo.set_onClick(function(_) { _gthis.redoLastCommand(); }); this.menubarItemCopy.set_onClick(function(_) { _gthis.copySelection(); }); this.menubarItemCut.set_onClick(function(_) { _gthis.performCommand(new funkin_ui_debug_charting_commands_CutItemsCommand(_gthis.currentNoteSelection,_gthis.currentEventSelection)); }); this.menubarItemPaste.set_onClick(function(_) { var targetMs = _gthis.get_scrollPositionInMs() + _gthis.get_playheadPositionInMs(); var targetStep = funkin_Conductor.get_instance().getTimeInSteps(targetMs); var targetSnappedStep = Math.floor(targetStep / _gthis.get_noteSnapRatio()) * _gthis.get_noteSnapRatio(); var targetSnappedMs = funkin_Conductor.get_instance().getStepTimeInMs(targetSnappedStep); _gthis.performCommand(new funkin_ui_debug_charting_commands_PasteItemsCommand(targetSnappedMs)); }); this.menubarItemPasteUnsnapped.set_onClick(function(_) { var targetMs = _gthis.get_scrollPositionInMs() + _gthis.get_playheadPositionInMs(); _gthis.performCommand(new funkin_ui_debug_charting_commands_PasteItemsCommand(targetMs)); }); this.menubarItemDelete.set_onClick(function(_) { if(_gthis.currentNoteSelection.length > 0 && _gthis.currentEventSelection.length > 0) { _gthis.performCommand(new funkin_ui_debug_charting_commands_RemoveItemsCommand(_gthis.currentNoteSelection,_gthis.currentEventSelection)); } else if(_gthis.currentNoteSelection.length > 0) { _gthis.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand(_gthis.currentNoteSelection)); } else if(_gthis.currentEventSelection.length > 0) { _gthis.performCommand(new funkin_ui_debug_charting_commands_RemoveEventsCommand(_gthis.currentEventSelection)); } }); this.menubarItemFlipNotes.set_onClick(function(_) { _gthis.performCommand(new funkin_ui_debug_charting_commands_FlipNotesCommand(_gthis.currentNoteSelection)); }); this.menubarItemSelectAllNotes.set_onClick(function(_) { _gthis.performCommand(new funkin_ui_debug_charting_commands_SelectAllItemsCommand(true,false)); }); this.menubarItemSelectAllEvents.set_onClick(function(_) { _gthis.performCommand(new funkin_ui_debug_charting_commands_SelectAllItemsCommand(false,true)); }); this.menubarItemSelectInverse.set_onClick(function(_) { _gthis.performCommand(new funkin_ui_debug_charting_commands_InvertSelectedItemsCommand()); }); this.menubarItemSelectNone.set_onClick(function(_) { _gthis.performCommand(new funkin_ui_debug_charting_commands_DeselectAllItemsCommand()); }); this.menubarItemPlaytestFull.set_onClick(function(_) { _gthis.testSongInPlayState(false); }); this.menubarItemPlaytestMinimal.set_onClick(function(_) { _gthis.testSongInPlayState(true); }); this.menuBarItemNoteSnapDecrease.set_onClick(function(_) { _gthis.noteSnapQuantIndex--; if(_gthis.noteSnapQuantIndex < 0) { _gthis.noteSnapQuantIndex = funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS.length - 1; } }); this.menuBarItemNoteSnapIncrease.set_onClick(function(_) { _gthis.noteSnapQuantIndex++; if(_gthis.noteSnapQuantIndex >= funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS.length) { _gthis.noteSnapQuantIndex = 0; } }); this.menuBarItemInputStyleNone.set_onClick(function(event) { _gthis.currentLiveInputStyle = funkin_ui_debug_charting_ChartEditorLiveInputStyle.None; }); this.menuBarItemInputStyleNone.set_selected(this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None); this.menuBarItemInputStyleNumberKeys.set_onClick(function(event) { _gthis.currentLiveInputStyle = funkin_ui_debug_charting_ChartEditorLiveInputStyle.NumberKeys; }); this.menuBarItemInputStyleNumberKeys.set_selected(this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.NumberKeys); this.menuBarItemInputStyleWASD.set_onClick(function(event) { _gthis.currentLiveInputStyle = funkin_ui_debug_charting_ChartEditorLiveInputStyle.WASDKeys; }); this.menuBarItemInputStyleWASD.set_selected(this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.WASDKeys); this.menubarItemAbout.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openAboutDialog(_gthis); }); this.menubarItemWelcomeDialog.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(_gthis,true); }); this.menubarItemGoToBackupsFolder.set_disabled(true); this.menubarItemUserGuide.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUserGuideDialog(_gthis); }); this.menubarItemDownscroll.set_onClick(function(event) { _gthis.set_isViewDownscroll(haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemDownscroll.set_selected(this.isViewDownscroll); this.menubarItemDifficultyUp.set_onClick(function(_) { _gthis.incrementDifficulty(1); }); this.menubarItemDifficultyDown.set_onClick(function(_) { _gthis.incrementDifficulty(-1); }); this.menuBarItemThemeLight.set_onChange(function(event) { if(event.target.get_value()) { _gthis.set_currentTheme(funkin_ui_debug_charting_ChartEditorTheme.Light); } }); this.menuBarItemThemeLight.set_selected(this.currentTheme == funkin_ui_debug_charting_ChartEditorTheme.Light); this.menuBarItemThemeDark.set_onChange(function(event) { if(event.target.get_value()) { _gthis.set_currentTheme(funkin_ui_debug_charting_ChartEditorTheme.Dark); } }); this.menuBarItemThemeDark.set_selected(this.currentTheme == funkin_ui_debug_charting_ChartEditorTheme.Dark); this.menubarItemPlayPause.set_onClick(function(_) { _gthis.toggleAudioPlayback(); }); this.menubarItemLoadInstrumental.set_onClick(function(_) { var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(_gthis,true); dialog.set_onDialogClosed(function(_) { _gthis.isHaxeUIDialogOpen = false; _gthis.switchToCurrentInstrumental(); _gthis.postLoadInstrumental(); }); }); this.menubarItemLoadVocals.set_onClick(function(_) { var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(_gthis,true); dialog.set_onDialogClosed(function(_) { _gthis.isHaxeUIDialogOpen = false; _gthis.switchToCurrentInstrumental(); _gthis.postLoadInstrumental(); }); }); this.menubarItemVolumeMetronome.set_onChange(function(event) { var volume = haxe_ui_util_Variant.toFloat(event.value) / 100.0; _gthis.metronomeVolume = volume; _gthis.menubarLabelVolumeMetronome.set_text("Metronome - " + (haxe_ui_util_Variant.toFloat(event.value) | 0) + "%"); }); this.menubarItemVolumeMetronome.set_value(this.metronomeVolume * 100 | 0); this.menubarItemThemeMusic.set_onChange(function(event) { _gthis.welcomeMusic.set_active(haxe_ui_util_Variant.toBool(event.value)); _gthis.fadeInWelcomeMusic(funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DELAY,funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DURATION); }); this.menubarItemThemeMusic.set_selected(this.welcomeMusic.active); this.menubarItemVolumeHitsoundPlayer.set_onChange(function(event) { var volume = haxe_ui_util_Variant.toFloat(event.value) / 100.0; _gthis.hitsoundVolumePlayer = volume; _gthis.menubarLabelVolumeHitsoundPlayer.set_text("Player - " + (haxe_ui_util_Variant.toFloat(event.value) | 0) + "%"); }); this.menubarItemVolumeHitsoundPlayer.set_value(this.hitsoundVolumePlayer * 100 | 0); this.menubarItemVolumeHitsoundOpponent.set_onChange(function(event) { var volume = haxe_ui_util_Variant.toFloat(event.value) / 100.0; _gthis.hitsoundVolumeOpponent = volume; _gthis.menubarLabelVolumeHitsoundOpponent.set_text("Enemy - " + (haxe_ui_util_Variant.toFloat(event.value) | 0) + "%"); }); this.menubarItemVolumeHitsoundOpponent.set_value(this.hitsoundVolumeOpponent * 100 | 0); this.menubarItemVolumeInstrumental.set_onChange(function(event) { var volume = haxe_ui_util_Variant.toFloat(event.value) / 100.0; if(_gthis.audioInstTrack != null) { _gthis.audioInstTrack.set_volume(volume); } _gthis.menubarLabelVolumeInstrumental.set_text("Instrumental - " + (haxe_ui_util_Variant.toFloat(event.value) | 0) + "%"); }); this.menubarItemVolumeVocalsPlayer.set_onChange(function(event) { var volume = haxe_ui_util_Variant.toFloat(event.value) / 100.0; _gthis.audioVocalTrackGroup.set_playerVolume(volume); _gthis.menubarLabelVolumeVocalsPlayer.set_text("Player - " + (haxe_ui_util_Variant.toFloat(event.value) | 0) + "%"); }); this.menubarItemVolumeVocalsOpponent.set_onChange(function(event) { var volume = haxe_ui_util_Variant.toFloat(event.value) / 100.0; _gthis.audioVocalTrackGroup.set_opponentVolume(volume); _gthis.menubarLabelVolumeVocalsOpponent.set_text("Enemy - " + (haxe_ui_util_Variant.toFloat(event.value) | 0) + "%"); }); this.menubarItemPlaybackSpeed.set_onChange(function(event) { var pitch = haxe_ui_util_Variant.toFloat(event.value) * 2.0 / 100.0; pitch = Math.floor(pitch / 0.05) * 0.05; pitch = Math.max(0.05,Math.min(2.0,pitch)); if(_gthis.audioInstTrack != null) { _gthis.audioInstTrack.set_pitch(pitch); } _gthis.audioVocalTrackGroup.set_pitch(pitch); var pitchDisplay = (pitch * 100 | 0) / 100; _gthis.menubarLabelPlaybackSpeed.set_text("Playback Speed - " + pitchDisplay + "x"); }); this.menubarItemToggleToolboxDifficulty.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxMetadata.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxOffsets.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxNoteData.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_NOTE_DATA_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxEventData.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxFreeplay.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_FREEPLAY_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxPlaytestProperties.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYTEST_PROPERTIES_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxPlayerPreview.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); this.menubarItemToggleToolboxOpponentPreview.set_onChange(function(event) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState(_gthis,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT,haxe_ui_util_Variant.toBool(event.value)); }); } ,setupContextMenu: function() { var _gthis = this; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP,function(e) { var xPos = e.screenX; var yPos = e.screenY; _gthis.onContextMenu(xPos,yPos); }); } ,onContextMenu: function(xPos,yPos) { haxe_Log.trace("User right clicked to open menu at (" + xPos + ", " + yPos + ")",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3097, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "onContextMenu"}); } ,copySelection: function() { var timeOffset = this.currentNoteSelection.length > 0 ? this.currentNoteSelection[0].time | 0 : null; if(this.currentEventSelection.length > 0) { if(timeOffset == null || this.currentEventSelection[0].time < timeOffset) { timeOffset = this.currentEventSelection[0].time | 0; } } funkin_data_song_SongDataUtils.writeItemsToClipboard({ notes : funkin_data_song_SongDataUtils.buildNoteClipboard(this.currentNoteSelection,timeOffset), events : funkin_data_song_SongDataUtils.buildEventClipboard(this.currentEventSelection,timeOffset)}); } ,setupTurboKeyHandlers: function() { this.add(this.undoKeyHandler); this.add(this.redoKeyHandler); this.add(this.upKeyHandler); this.add(this.downKeyHandler); this.add(this.wKeyHandler); this.add(this.sKeyHandler); this.add(this.pageUpKeyHandler); this.add(this.pageDownKeyHandler); this.add(this.dpadUpGamepadHandler); this.add(this.dpadDownGamepadHandler); this.add(this.dpadLeftGamepadHandler); this.add(this.dpadRightGamepadHandler); this.add(this.leftStickUpGamepadHandler); this.add(this.leftStickDownGamepadHandler); this.add(this.leftStickLeftGamepadHandler); this.add(this.leftStickRightGamepadHandler); this.add(this.rightStickUpGamepadHandler); this.add(this.rightStickDownGamepadHandler); this.add(this.rightStickLeftGamepadHandler); this.add(this.rightStickRightGamepadHandler); } ,setupAutoSave: function() { funkin_util_WindowUtil.windowExit.add($bind(this,this.onWindowClose)); funkin_util_logging_CrashHandler.errorSignal.add($bind(this,this.onWindowCrash)); funkin_util_logging_CrashHandler.criticalErrorSignal.add($bind(this,this.onWindowCrash)); this.set_saveDataDirty(false); } ,displayAutosavePopup: null ,autoSave: function(beforePlaytest) { if(beforePlaytest == null) { beforePlaytest = false; } var needsAutoSave = this.saveDataDirty; this.set_saveDataDirty(false); this.writePreferences(needsAutoSave); } ,openBackupsFolder: function(_) { haxe_Log.trace("No file system access, cannot open backups folder.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3222, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "openBackupsFolder"}); return false; } ,onWindowClose: function(exitCode) { haxe_Log.trace("Window exited with exit code: " + exitCode,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3233, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "onWindowClose"}); haxe_Log.trace("Should save chart? " + Std.string(this.saveDataDirty),{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3234, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "onWindowClose"}); var needsAutoSave = this.saveDataDirty; this.writePreferences(needsAutoSave); if(needsAutoSave) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(this,true,null); } } ,onWindowCrash: function(message) { haxe_Log.trace("Chart editor intercepted crash:",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3248, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "onWindowCrash"}); haxe_Log.trace("" + message,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3249, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "onWindowCrash"}); haxe_Log.trace("Should save chart? " + Std.string(this.saveDataDirty),{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3251, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "onWindowCrash"}); var needsAutoSave = this.saveDataDirty; this.writePreferences(needsAutoSave); if(needsAutoSave) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(this,true,null); } } ,cleanupAutoSave: function() { funkin_util_WindowUtil.windowExit.remove($bind(this,this.onWindowClose)); funkin_util_logging_CrashHandler.errorSignal.remove($bind(this,this.onWindowCrash)); funkin_util_logging_CrashHandler.criticalErrorSignal.remove($bind(this,this.onWindowCrash)); } ,update: function(elapsed) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(115,_this.status) && !this.criticalFailure) { this.quitChartEditor(); return; } haxe_ui_backend_flixel_UIState.prototype.update.call(this,elapsed); if(this.criticalFailure) { return; } this.handleMusicPlayback(elapsed); this.handleNoteDisplay(); this.handleScrollKeybinds(); this.handleSnap(); this.handleCursor(); this.handleMenubar(); this.handleToolboxes(); this.handlePlaybar(); this.handlePlayhead(); this.handleNotePreview(); this.handleHealthIcons(); this.handleFileKeybinds(); this.handleEditKeybinds(); this.handleViewKeybinds(); this.handleTestKeybinds(); this.handleHelpKeybinds(); this.handlePostUpdate(); } ,beatHit: function() { if(!haxe_ui_backend_flixel_UIState.prototype.beatHit.call(this)) { return false; } if(this.metronomeVolume > 0.0 && this.subState == null && (this.audioInstTrack != null && this.audioInstTrack.get_isPlaying())) { this.playMetronomeTick(funkin_Conductor.get_instance().currentBeat % funkin_Conductor.get_instance().get_beatsPerMeasure() == 0); } flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); return true; } ,stepHit: function() { if(!haxe_ui_backend_flixel_UIState.prototype.stepHit.call(this)) { return false; } if(this.audioInstTrack != null && this.audioInstTrack.get_isPlaying()) { if(this.healthIconDad != null) { this.healthIconDad.onStepHit(funkin_Conductor.get_instance().currentStep); } if(this.healthIconBF != null) { this.healthIconBF.onStepHit(funkin_Conductor.get_instance().currentStep); } } return true; } ,handleMusicPlayback: function(elapsed) { if(this.audioInstTrack != null) { this.audioInstTrack.update(elapsed); if(funkin_Conductor.get_instance().instrumentalOffset < 0) { if(this.audioInstTrack._time < -funkin_Conductor.get_instance().instrumentalOffset) { haxe_Log.trace("Resetting instrumental time to " + -funkin_Conductor.get_instance().instrumentalOffset + "ms",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3376, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "handleMusicPlayback"}); this.audioInstTrack.set_time(-funkin_Conductor.get_instance().instrumentalOffset); } } } if(this.audioInstTrack != null && this.audioInstTrack.get_isPlaying()) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { var oldStepTime = funkin_Conductor.get_instance().currentStepTime; var oldSongPosition = funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset; funkin_Conductor.get_instance().update(this.audioInstTrack._time); this.handleHitsounds(oldSongPosition,funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset); if(Math.abs(this.audioInstTrack._time - this.audioVocalTrackGroup.get_time()) > 100) { this.audioVocalTrackGroup.set_time(this.audioInstTrack._time); } var diffStepTime = funkin_Conductor.get_instance().currentStepTime - oldStepTime; this.set_playheadPositionInPixels(this.playheadPositionInPixels + diffStepTime * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); } else { var oldSongPosition = funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset; funkin_Conductor.get_instance().update(this.audioInstTrack._time); this.handleHitsounds(oldSongPosition,funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset); if(Math.abs(this.audioInstTrack._time - this.audioVocalTrackGroup.get_time()) > 100) { this.audioVocalTrackGroup.set_time(this.audioInstTrack._time); } this.set_scrollPositionInPixels((funkin_Conductor.get_instance().currentStepTime + funkin_Conductor.get_instance().get_instrumentalOffsetSteps()) * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - this.playheadPositionInPixels); this.noteDisplayDirty = true; this.setNotePreviewViewportBounds(this.calculateNotePreviewViewportBounds()); } } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(32,_this.status) && !this.isHaxeUIDialogOpen) { this.toggleAudioPlayback(); } } ,handleNoteDisplay: function() { var _gthis = this; if(this.noteDisplayDirty) { this.noteDisplayDirty = false; this.renderedNotes.set_flipX(this.isViewDownscroll); var viewAreaTopPixels = funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT; var visibleGridHeightPixels = flixel_FlxG.height - funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT - funkin_ui_debug_charting_ChartEditorState.PLAYBAR_HEIGHT; var viewAreaBottomPixels = viewAreaTopPixels + visibleGridHeightPixels; var displayedNoteData = []; var _g = 0; var _g1 = this.renderedNotes.group.members; while(_g < _g1.length) { var noteSprite = _g1[_g]; ++_g; if(noteSprite == null || noteSprite.noteData == null || !noteSprite.exists || !noteSprite.visible) { continue; } var isSelectedAndDragged = funkin_util_tools_SongNoteDataArrayTools.fastIndexOf(this.currentNoteSelection,noteSprite.noteData) != -1 && this.dragTargetCurrentStep != 0; if(noteSprite.isNoteVisible(viewAreaBottomPixels,viewAreaTopPixels) && funkin_util_tools_SongNoteDataArrayTools.fastIndexOf(this.get_currentSongChartNoteData(),noteSprite.noteData) != -1 || isSelectedAndDragged) { displayedNoteData.push(noteSprite.noteData); noteSprite.updateNotePosition(this.renderedNotes); } else { noteSprite.set_noteData(null); } } var order = -1; funkin_util_tools_ArraySortTools.insertionSort(displayedNoteData,function(a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; }); var displayedHoldNoteData = []; var _g = 0; var _g1 = this.renderedHoldNotes.group.members; while(_g < _g1.length) { var holdNoteSprite = _g1[_g]; ++_g; if(holdNoteSprite == null || holdNoteSprite.noteData == null || !holdNoteSprite.exists || !holdNoteSprite.visible) { continue; } if(funkin_data_song_SongNoteData.op_equals(holdNoteSprite.noteData,this.currentPlaceNoteData)) { holdNoteSprite.kill(); } else if(!holdNoteSprite.isHoldNoteVisible(flixel_FlxG.height - funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT,funkin_ui_debug_charting_ChartEditorState.GRID_TOP_PAD)) { holdNoteSprite.kill(); } else if(funkin_util_tools_SongNoteDataArrayTools.fastIndexOf(this.get_currentSongChartNoteData(),holdNoteSprite.noteData) == -1 || holdNoteSprite.noteData.length == 0) { holdNoteSprite.kill(); } else if(funkin_util_tools_SongNoteDataArrayTools.fastIndexOf(displayedHoldNoteData,holdNoteSprite.noteData) != -1) { holdNoteSprite.kill(); } else { displayedHoldNoteData.push(holdNoteSprite.noteData); holdNoteSprite.updateHoldNotePosition(this.renderedNotes); } } var order1 = -1; funkin_util_tools_ArraySortTools.insertionSort(displayedHoldNoteData,function(a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = order1; } else if(Value1 > Value2) { result = -order1; } return result; }); var displayedEventData = []; var _g = 0; var _g1 = this.renderedEvents.group.members; while(_g < _g1.length) { var eventSprite = _g1[_g]; ++_g; if(eventSprite == null || eventSprite.eventData == null || !eventSprite.exists || !eventSprite.visible) { continue; } var isSelectedAndDragged = funkin_util_tools_SongEventDataArrayTools.fastIndexOf(this.currentEventSelection,eventSprite.eventData) != -1 && this.dragTargetCurrentStep != 0; if(eventSprite.isEventVisible(flixel_FlxG.height - funkin_ui_debug_charting_ChartEditorState.PLAYBAR_HEIGHT,funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT) && funkin_util_tools_SongEventDataArrayTools.fastIndexOf(this.get_currentSongChartEventData(),eventSprite.eventData) != -1 || isSelectedAndDragged) { displayedEventData.push(eventSprite.eventData); eventSprite.updateEventPosition(this.renderedEvents); eventSprite.playAnimation(eventSprite.eventData.eventKind); } else { eventSprite.set_eventData(null); } } var order2 = -1; funkin_util_tools_ArraySortTools.insertionSort(displayedEventData,function(a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = order2; } else if(Value1 > Value2) { result = -order2; } return result; }); var viewAreaTopMs = this.get_scrollPositionInMs() - funkin_Conductor.get_instance().get_measureLengthMs() * 2; var viewAreaBottomMs = this.get_scrollPositionInMs() + funkin_Conductor.get_instance().get_measureLengthMs() * 2; var _g = 0; var _g1 = this.get_currentSongChartNoteData(); while(_g < _g1.length) { var noteData = _g1[_g]; ++_g; if(noteData == null) { continue; } if(noteData.time < viewAreaTopMs || noteData.time > viewAreaBottomMs) { continue; } if(funkin_util_tools_SongNoteDataArrayTools.fastIndexOf(displayedNoteData,noteData) != -1) { continue; } if(!funkin_ui_debug_charting_components_ChartEditorNoteSprite.wouldNoteBeVisible(viewAreaBottomPixels,viewAreaTopPixels,noteData,this.renderedNotes)) { continue; } var noteSprite = this.renderedNotes.group.recycle(null,function() { return new funkin_ui_debug_charting_components_ChartEditorNoteSprite(_gthis); },false,true); noteSprite.parentState = this; noteSprite.set_noteData(noteData); noteSprite.set_overrideStepTime(null); noteSprite.set_overrideData(null); noteSprite.updateNotePosition(this.renderedNotes); if(noteSprite.noteData != null && noteSprite.noteData.length > 0 && displayedHoldNoteData.indexOf(noteSprite.noteData) == -1 && funkin_data_song_SongNoteData.op_notEquals(noteSprite.noteData,this.currentPlaceNoteData)) { var holdNoteSprite = this.renderedHoldNotes.group.recycle(null,function() { return new funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite(_gthis); },false,true); var noteLengthPixels = noteSprite.noteData.getStepLength() * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; holdNoteSprite.noteData = noteSprite.noteData; holdNoteSprite.noteDirection = noteSprite.noteData.data % 4; holdNoteSprite.setHeightDirectly(noteLengthPixels); holdNoteSprite.updateHoldNotePosition(this.renderedHoldNotes); haxe_Log.trace(holdNoteSprite.x + ", " + holdNoteSprite.y + ", " + holdNoteSprite.get_width() + ", " + holdNoteSprite.get_height(),{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3612, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "handleNoteDisplay"}); } } var _g = 0; var _g1 = this.get_currentSongChartEventData(); while(_g < _g1.length) { var eventData = _g1[_g]; ++_g; if(displayedEventData.indexOf(eventData) != -1) { continue; } if(!funkin_ui_debug_charting_components_ChartEditorEventSprite.wouldEventBeVisible(viewAreaBottomPixels,viewAreaTopPixels,eventData,this.renderedNotes)) { continue; } var Force = false; var Revive = true; if(Revive == null) { Revive = true; } if(Force == null) { Force = false; } var eventSprite = this.renderedEvents.group.recycle(null,function() { return new funkin_ui_debug_charting_components_ChartEditorEventSprite(_gthis); },Force,Revive); eventSprite.parentState = this; haxe_Log.trace("Creating new Event... (" + this.renderedEvents.group.members.length + ")",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 3634, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "handleNoteDisplay"}); eventSprite.set_eventData(eventData); eventSprite.set_overrideStepTime(null); eventSprite.set_x(eventSprite.x + this.renderedEvents.x); eventSprite.set_y(eventSprite.y + this.renderedEvents.y); eventSprite.updateTooltipPosition(); } var _g = 0; var _g1 = this.get_currentSongChartNoteData(); while(_g < _g1.length) { var noteData = _g1[_g]; ++_g; if(noteData == null || noteData.length <= 0) { continue; } if(funkin_data_song_SongNoteData.op_equals(noteData,this.currentPlaceNoteData)) { continue; } if(displayedHoldNoteData.indexOf(noteData) != -1) { continue; } if(!funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite.wouldHoldNoteBeVisible(viewAreaBottomPixels,viewAreaTopPixels,noteData,this.renderedHoldNotes)) { continue; } var holdNoteFactory = function() { return new funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite(_gthis); }; var holdNoteSprite = this.renderedHoldNotes.group.recycle(null,holdNoteFactory,false,true); var noteLengthPixels = noteData.getStepLength() * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; holdNoteSprite.noteData = noteData; holdNoteSprite.noteDirection = noteData.data % 4; holdNoteSprite.setHeightDirectly(noteLengthPixels); holdNoteSprite.updateHoldNotePosition(this.renderedHoldNotes); displayedHoldNoteData.push(noteData); } var _g = 0; var _g1 = this.renderedSelectionSquares.group.members; while(_g < _g1.length) { var member = _g1[_g]; ++_g; member.kill(); } var _g = 0; var _g1 = this.renderedNotes.group.members; while(_g < _g1.length) { var noteSprite = _g1[_g]; ++_g; if(this.isNoteSelected(noteSprite.noteData)) { if(this.dragTargetCurrentStep != 0.0) { var stepTime = noteSprite.noteData == null ? 0.0 : noteSprite.noteData.getStepTime(); noteSprite.set_overrideStepTime(funkin_util_tools_FloatTools.clamp(stepTime + this.dragTargetCurrentStep,0,this.get_songLengthInSteps() - this.get_noteSnapRatio())); noteSprite.updateNotePosition(this.renderedNotes); } else if(noteSprite.overrideStepTime != null) { noteSprite.set_overrideStepTime(null); noteSprite.updateNotePosition(this.renderedNotes); } if(this.dragTargetCurrentColumn != 0) { var data = noteSprite.noteData == null ? 0 : noteSprite.noteData.data; noteSprite.set_overrideData(funkin_ui_debug_charting_ChartEditorState.gridColumnToNoteData(funkin_util_tools_IntTools.clamp(funkin_ui_debug_charting_ChartEditorState.noteDataToGridColumn(data) + this.dragTargetCurrentColumn,0,funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 - 1))); noteSprite.updateNotePosition(this.renderedNotes); } else if(noteSprite.overrideData != null) { noteSprite.set_overrideData(null); noteSprite.updateNotePosition(this.renderedNotes); } var selectionSquare = this.renderedSelectionSquares.group.recycle(null,$bind(this,this.buildSelectionSquare),false,true); selectionSquare.noteData = noteSprite.noteData; selectionSquare.eventData = null; selectionSquare.set_x(noteSprite.x); selectionSquare.set_y(noteSprite.y); selectionSquare.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var stepLength = noteSprite.noteData.getStepLength(); selectionSquare.set_height(stepLength <= 0 ? funkin_ui_debug_charting_ChartEditorState.GRID_SIZE : (stepLength + 1) * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); } } var _g = 0; var _g1 = this.renderedEvents.group.members; while(_g < _g1.length) { var eventSprite = _g1[_g]; ++_g; if(this.isEventSelected(eventSprite.eventData)) { if(this.dragTargetCurrentStep > 0 || this.dragTargetCurrentColumn > 0) { var stepTime = eventSprite.eventData == null ? 0 : eventSprite.eventData.getStepTime(); eventSprite.set_overrideStepTime(funkin_util_tools_FloatTools.clamp(stepTime + this.dragTargetCurrentStep,0,this.get_songLengthInSteps())); eventSprite.updateEventPosition(this.renderedEvents); } else if(eventSprite.overrideStepTime != null) { eventSprite.set_overrideStepTime(null); eventSprite.updateEventPosition(this.renderedEvents); } var selectionSquare = this.renderedSelectionSquares.group.recycle(null,$bind(this,this.buildSelectionSquare),false,true); selectionSquare.noteData = null; selectionSquare.eventData = eventSprite.eventData; selectionSquare.set_x(eventSprite.x); selectionSquare.set_y(eventSprite.y); selectionSquare.set_width(eventSprite.get_width()); selectionSquare.set_height(eventSprite.get_height()); } if(this.noteTooltipsDirty) { eventSprite.updateTooltipText(); } } this.noteTooltipsDirty = false; var Order = 1; if(Order == null) { Order = -1; } var order3 = Order; if(order3 == null) { order3 = -1; } var _g = flixel_util_FlxSort.byY; var a1 = order3; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.renderedNotes.group.members.sort(tmp); var Order = 1; if(Order == null) { Order = -1; } var order3 = Order; if(order3 == null) { order3 = -1; } var _g1 = flixel_util_FlxSort.byY; var a11 = order3; var tmp = function(a2,a3) { return _g1(a11,a2,a3); }; this.renderedEvents.group.members.sort(tmp); } } ,handleScrollKeybinds: function() { var _gthis = this; if((this.get_isHaxeUIFocused() || this.get_isCursorOverHaxeUI()) && this.playbarButtonPressed == null) { return; } var scrollAmount = 0; var playheadAmount = 0; var shouldPause = false; var shouldEase = false; if(this.scrollAnchorScreenPos != null) { var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } var currentScreenPos = new flixel_math_FlxBasePoint(x,y); var b = this.scrollAnchorScreenPos; var x = currentScreenPos.x - b.x; var y = currentScreenPos.y - b.y; if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = x; var y1 = y; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x1,y1); point._inPool = false; var result = point; if(currentScreenPos._weak) { currentScreenPos.put(); } if(b._weak) { b.put(); } var distance = result; var verticalDistance = distance.y; var ANCHOR_SCROLL_SPEED = 0.2; scrollAmount = ANCHOR_SCROLL_SPEED * verticalDistance; shouldPause = true; } var tmp; if(flixel_FlxG.mouse.wheel != 0) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { scrollAmount = -50 * flixel_FlxG.mouse.wheel; shouldPause = true; } if(this.upKeyHandler.activated && this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None) { scrollAmount = -funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4; shouldPause = true; } if(this.downKeyHandler.activated && this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None) { scrollAmount = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4; shouldPause = true; } var tmp; if(this.wKeyHandler.activated && this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { scrollAmount = -funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4; shouldPause = true; } var tmp; if(this.sKeyHandler.activated && this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { scrollAmount = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4; shouldPause = true; } if(this.leftStickUpGamepadHandler.activated) { scrollAmount = -funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * this.get_noteSnapRatio(); shouldPause = true; } if(this.leftStickDownGamepadHandler.activated) { scrollAmount = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * this.get_noteSnapRatio(); shouldPause = true; } if(this.rightStickUpGamepadHandler.activated) { playheadAmount = -funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * this.get_noteSnapRatio(); shouldPause = true; } if(this.rightStickDownGamepadHandler.activated) { playheadAmount = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * this.get_noteSnapRatio(); shouldPause = true; } var funcJumpUp = function(playheadOnly) { var measureHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4 * funkin_Conductor.get_instance().get_beatsPerMeasure(); var playheadPos = _gthis.scrollPositionInPixels + _gthis.playheadPositionInPixels; var targetScrollPosition = Math.floor(playheadPos / measureHeight) * measureHeight; var targetScrollAmount = Math.abs(targetScrollPosition - playheadPos); if(targetScrollAmount < funkin_ui_debug_charting_ChartEditorState.GRID_SIZE) { targetScrollPosition -= funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_util_Constants.STEPS_PER_BEAT * funkin_Conductor.get_instance().get_beatsPerMeasure(); } if(playheadOnly) { playheadAmount = targetScrollPosition - playheadPos; return playheadAmount; } else { scrollAmount = targetScrollPosition - playheadPos; return scrollAmount; } }; if(this.pageUpKeyHandler.activated || this.leftStickLeftGamepadHandler.activated) { funcJumpUp(false); shouldPause = true; } if(this.rightStickLeftGamepadHandler.activated) { funcJumpUp(true); shouldPause = true; } if(this.playbarButtonPressed == "playbarBack") { this.playbarButtonPressed = ""; funcJumpUp(false); shouldPause = true; } var funcJumpDown = function(playheadOnly) { var measureHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 4 * funkin_Conductor.get_instance().get_beatsPerMeasure(); var playheadPos = _gthis.scrollPositionInPixels + _gthis.playheadPositionInPixels; var targetScrollPosition = Math.ceil(playheadPos / measureHeight) * measureHeight; var targetScrollAmount = Math.abs(targetScrollPosition - playheadPos); if(targetScrollAmount < funkin_ui_debug_charting_ChartEditorState.GRID_SIZE) { targetScrollPosition += funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_util_Constants.STEPS_PER_BEAT * funkin_Conductor.get_instance().get_beatsPerMeasure(); } if(playheadOnly) { playheadAmount = targetScrollPosition - playheadPos; return playheadAmount; } else { scrollAmount = targetScrollPosition - playheadPos; return scrollAmount; } }; if(this.pageDownKeyHandler.activated || this.leftStickRightGamepadHandler.activated) { funcJumpDown(false); shouldPause = true; } if(this.rightStickRightGamepadHandler.activated) { funcJumpDown(true); shouldPause = true; } if(this.playbarButtonPressed == "playbarForward") { this.playbarButtonPressed = ""; funcJumpDown(false); shouldPause = true; } var tmp; var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(16,_this.status)) { var tmp1 = flixel_FlxG.gamepads.firstActive; var tmp2 = tmp1 != null ? tmp1.pressed : null; var tmp1; if(tmp2 != null) { var id = 8; var _this = tmp2.gamepad; var Status = tmp2.status; var tmp2; switch(id) { case -2: tmp2 = _this.anyButton(Status); break; case -1: tmp2 = !_this.anyButton(Status); break; default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; tmp2 = button != null && button.hasState(Status); } tmp1 = tmp2; } else { tmp1 = null; } tmp = tmp1 != null && tmp1; } else { tmp = true; } if(tmp) { scrollAmount *= 2; } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { scrollAmount /= 4; } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { playheadAmount = scrollAmount; scrollAmount = 0; shouldPause = false; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(36,_this.status)) { scrollAmount = 0 - this.scrollPositionInPixels; playheadAmount = 0 - this.playheadPositionInPixels; shouldPause = true; } if(this.playbarButtonPressed == "playbarStart") { this.playbarButtonPressed = ""; scrollAmount = 0 - this.scrollPositionInPixels; playheadAmount = 0 - this.playheadPositionInPixels; shouldPause = true; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(35,_this.status)) { scrollAmount = this.get_songLengthInPixels() - this.scrollPositionInPixels; shouldPause = true; } if(this.playbarButtonPressed == "playbarEnd") { this.playbarButtonPressed = ""; scrollAmount = this.get_songLengthInPixels() - this.scrollPositionInPixels; shouldPause = true; } if(Math.abs(scrollAmount) > funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 8) { shouldEase = true; } if(scrollAmount != 0 || playheadAmount != 0) { this.set_playheadPositionInPixels(this.playheadPositionInPixels + playheadAmount); if(shouldEase) { this.easeSongToScrollPosition(this.scrollPositionInPixels + scrollAmount); } else { this.set_scrollPositionInPixels(this.scrollPositionInPixels + scrollAmount); this.moveSongToScrollPosition(); } } if(shouldPause) { this.stopAudioPlayback(); } } ,handleSnap: function() { if(this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None) { var tmp; var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { this.noteSnapQuantIndex--; if(this.noteSnapQuantIndex < 0) { this.noteSnapQuantIndex = funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS.length - 1; } } var tmp; var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { this.noteSnapQuantIndex++; if(this.noteSnapQuantIndex >= funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS.length) { this.noteSnapQuantIndex = 0; } } } } ,handleCursor: function() { if(flixel_FlxG.mouse._leftButton.current == 2) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("chartingSounds/ClickDown")); } if(flixel_FlxG.mouse._leftButton.current == -1) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("chartingSounds/ClickUp")); } var shouldHandleCursor = !(this.get_isHaxeUIFocused() || this.playbarHeadDragging || this.isHaxeUIDialogOpen) || this.selectionBoxStartPos != null || (this.dragTargetNote != null || this.dragTargetEvent != null); var eventColumn = funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1 - 1; if(shouldHandleCursor) { var targetCursorMode = null; if(this.gridTiledSprite == null) { throw haxe_Exception.thrown("ERROR: Tried to handle cursor, but gridTiledSprite is null! Check ChartEditorState.buildGrid()"); } var overlapsGrid = flixel_FlxG.mouse.overlaps(this.gridTiledSprite); var overlapsRenderedNotes = flixel_FlxG.mouse.overlaps(this.renderedNotes); var overlapsRenderedHoldNotes = flixel_FlxG.mouse.overlaps(this.renderedHoldNotes); var overlapsRenderedEvents = flixel_FlxG.mouse.overlaps(this.renderedEvents); var cursorX = flixel_FlxG.mouse.screenX - this.gridTiledSprite.x; var cursorY = flixel_FlxG.mouse.screenY - this.gridTiledSprite.y; var overlapsSelectionBorder = overlapsGrid && (cursorX % 40 < funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2 || cursorX % 40 > 40 - funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2 || cursorY % 40 < funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2 || cursorY % 40 > 40 - funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2); var overlapsSelection = flixel_FlxG.mouse.overlaps(this.renderedSelectionSquares); var overlapsHealthIcons = flixel_FlxG.mouse.overlaps(this.healthIconBF) || flixel_FlxG.mouse.overlaps(this.healthIconDad); if(flixel_FlxG.mouse._middleButton.current == 2) { if(this.scrollAnchorScreenPos == null) { var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this.scrollAnchorScreenPos = new flixel_math_FlxBasePoint(x,y); this.selectionBoxStartPos = null; } else { this.scrollAnchorScreenPos = null; } } if(flixel_FlxG.mouse._leftButton.current == 2) { if(this.scrollAnchorScreenPos != null) { this.scrollAnchorScreenPos = null; } else if(this.measureTicks != null && flixel_FlxG.mouse.overlaps(this.measureTicks) && !this.get_isCursorOverHaxeUI()) { this.gridPlayheadScrollAreaPressed = true; } else if(this.notePreview != null && flixel_FlxG.mouse.overlaps(this.notePreview) && !this.get_isCursorOverHaxeUI()) { var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this.notePreviewScrollAreaStartPos = new flixel_math_FlxBasePoint(x,y); } else if(!this.get_isCursorOverHaxeUI() && (!overlapsGrid || overlapsSelectionBorder)) { var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this.selectionBoxStartPos = new flixel_math_FlxBasePoint(x,y); targetCursorMode = funkin_input_CursorMode.Crosshair; } else if(overlapsSelection) { haxe_Log.trace("Clicked on a selected note!",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 4145, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "handleCursor"}); } } var tmp; if(this.gridPlayheadScrollAreaPressed) { var _this = flixel_FlxG.mouse._leftButton; tmp = _this.current == 0 || _this.current == -1; } else { tmp = false; } if(tmp) { this.gridPlayheadScrollAreaPressed = false; } var tmp; if(this.notePreviewScrollAreaStartPos != null) { var _this = flixel_FlxG.mouse._leftButton; tmp = _this.current == 0 || _this.current == -1; } else { tmp = false; } if(tmp) { this.notePreviewScrollAreaStartPos = null; } if(this.gridPlayheadScrollAreaPressed) { this.set_playheadPositionInPixels(flixel_FlxG.mouse.screenY - funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS); this.moveSongToScrollPosition(); if(targetCursorMode == null) { targetCursorMode = funkin_input_CursorMode.Grabbing; } } var cursorFractionalStep = cursorY / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; var cursorMs = funkin_Conductor.get_instance().getStepTimeInMs(cursorFractionalStep); var cursorSnappedStep = Math.floor(cursorFractionalStep / this.get_noteSnapRatio()) * this.get_noteSnapRatio(); var cursorSnappedMs = funkin_Conductor.get_instance().getStepTimeInMs(cursorSnappedStep); var cursorGridPos = Math.floor(cursorX / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var cursorColumn = funkin_ui_debug_charting_ChartEditorState.gridColumnToNoteData(cursorGridPos); if(this.selectionBoxStartPos != null) { var cursorXStart = this.selectionBoxStartPos.x - this.gridTiledSprite.x; var cursorYStart = this.selectionBoxStartPos.y - this.gridTiledSprite.y; var hasDraggedMouse = Math.abs(cursorX - cursorXStart) > funkin_ui_debug_charting_ChartEditorState.DRAG_THRESHOLD || Math.abs(cursorY - cursorYStart) > funkin_ui_debug_charting_ChartEditorState.DRAG_THRESHOLD; if(hasDraggedMouse) { if(flixel_FlxG.mouse._leftButton.current == -1) { var cursorFractionalStepStart = cursorYStart / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; var cursorStepStart = Math.floor(cursorFractionalStepStart); var cursorMsStart = funkin_Conductor.get_instance().getStepTimeInMs(cursorStepStart); var cursorColumnBase = Math.floor(cursorX / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var cursorColumnBaseStart = Math.floor(cursorXStart / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var columnStart = Math.min(cursorColumnBase,cursorColumnBaseStart) | 0; var columnEnd = Math.max(cursorColumnBase,cursorColumnBaseStart) | 0; var _g = []; var _g1 = columnStart; var _g2 = columnEnd + 1; while(_g1 < _g2) { var i = _g1++; _g.push(i); } var _this = _g; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var i1 = _this[i]; result[i] = i1 >= eventColumn ? eventColumn : i1 >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE ? i1 - funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE : i1 >= 0 ? i1 + funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE : 0; } var columns = result; if(columns.length > 0) { var notesToSelect = this.get_currentSongChartNoteData(); notesToSelect = funkin_data_song_SongDataUtils.getNotesInTimeRange(notesToSelect,Math.min(cursorMsStart,cursorMs),Math.max(cursorMsStart,cursorMs)); notesToSelect = funkin_data_song_SongDataUtils.getNotesWithData(notesToSelect,columns); var eventsToSelect = []; if(columns.indexOf(eventColumn) != -1) { eventsToSelect = this.get_currentSongChartEventData(); eventsToSelect = funkin_data_song_SongDataUtils.getEventsInTimeRange(eventsToSelect,Math.min(cursorMsStart,cursorMs),Math.max(cursorMsStart,cursorMs)); } if(notesToSelect.length > 0 || eventsToSelect.length > 0) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand(notesToSelect,eventsToSelect)); } else { this.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand(notesToSelect,eventsToSelect)); } } else { var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(17,_this.status)) { var shouldDeselect = !this.wasCursorOverHaxeUI && (this.currentNoteSelection.length > 0 || this.currentEventSelection.length > 0); if(shouldDeselect) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectAllItemsCommand()); } } } } this.selectionBoxStartPos = null; this.setSelectionBoxBounds(); } else { if(flixel_FlxG.mouse.screenY < funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT) { var diff = funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT - flixel_FlxG.mouse.screenY; this.set_scrollPositionInPixels(this.scrollPositionInPixels - diff * 0.5); this.moveSongToScrollPosition(); } else { var tmp = this.playbarHeadLayout; var tmp1 = tmp != null ? tmp.y : null; if(flixel_FlxG.mouse.screenY > (tmp1 != null ? tmp1 : 0.0)) { var tmp = this.playbarHeadLayout; var tmp1 = tmp != null ? tmp.y : null; var diff = flixel_FlxG.mouse.screenY - (tmp1 != null ? tmp1 : 0.0); this.set_scrollPositionInPixels(this.scrollPositionInPixels + diff * 0.5); this.moveSongToScrollPosition(); } } var selectionRect = new flixel_math_FlxRect(); selectionRect.x = Math.min(flixel_FlxG.mouse.screenX,this.selectionBoxStartPos.x); selectionRect.y = Math.min(flixel_FlxG.mouse.screenY,this.selectionBoxStartPos.y); selectionRect.width = Math.abs(flixel_FlxG.mouse.screenX - this.selectionBoxStartPos.x); selectionRect.height = Math.abs(flixel_FlxG.mouse.screenY - this.selectionBoxStartPos.y); this.setSelectionBoxBounds(selectionRect); targetCursorMode = funkin_input_CursorMode.Crosshair; } } else if(flixel_FlxG.mouse._leftButton.current == -1) { this.selectionBoxStartPos = null; this.setSelectionBoxBounds(); if(overlapsGrid) { var highlightedNote = Lambda.find(this.renderedNotes.group.members,function(note) { if(note.alive) { return flixel_FlxG.mouse.overlaps(note); } else { return false; } }); var highlightedEvent = null; if(highlightedNote == null) { highlightedEvent = Lambda.find(this.renderedEvents.group.members,function(event) { if(event.alive) { return flixel_FlxG.mouse.overlaps(event); } else { return false; } }); } var highlightedHoldNote = null; if(highlightedNote == null && highlightedEvent == null) { highlightedHoldNote = Lambda.find(this.renderedHoldNotes.group.members,function(holdNote) { if(holdNote.alive) { return flixel_FlxG.mouse.overlaps(holdNote); } else { return false; } }); } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { if(highlightedNote != null && highlightedNote.noteData != null) { if(this.isNoteSelected(highlightedNote.noteData)) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectItemsCommand([highlightedNote.noteData],[])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([highlightedNote.noteData],[])); } } else if(highlightedEvent != null && highlightedEvent.eventData != null) { if(this.isEventSelected(highlightedEvent.eventData)) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectItemsCommand([],[highlightedEvent.eventData])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([],[highlightedEvent.eventData])); } } else if(highlightedHoldNote != null && highlightedHoldNote.noteData != null) { if(this.isNoteSelected(highlightedNote.noteData)) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectItemsCommand([highlightedHoldNote.noteData],[])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([highlightedHoldNote.noteData],[])); } } } else if(highlightedNote != null && highlightedNote.noteData != null) { this.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand([highlightedNote.noteData],[])); } else if(highlightedEvent != null && highlightedEvent.eventData != null) { this.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand([],[highlightedEvent.eventData])); } else if(highlightedHoldNote != null && highlightedHoldNote.noteData != null) { this.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand([highlightedHoldNote.noteData],[])); } else { var shouldDeselect = !this.wasCursorOverHaxeUI && (this.currentNoteSelection.length > 0 || this.currentEventSelection.length > 0); if(shouldDeselect) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectAllItemsCommand()); } } } else { var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(17,_this.status)) { var shouldDeselect = !this.wasCursorOverHaxeUI && (this.currentNoteSelection.length > 0 || this.currentEventSelection.length > 0); if(shouldDeselect) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectAllItemsCommand()); } } } } } else if(this.notePreviewScrollAreaStartPos != null) { targetCursorMode = funkin_input_CursorMode.Grabbing; var clickedPosInPixels = flixel_FlxG.mouse.screenY; var tmp = this.notePreview; var tmp1 = tmp != null ? tmp.y : null; var tmp = this.notePreview; var tmp2 = tmp != null ? tmp.y : null; var tmp = this.notePreview; var tmp3 = tmp != null ? tmp.get_height() : null; var clickedPosInPixels1 = flixel_math_FlxMath.remapToRange(clickedPosInPixels,tmp1 != null ? tmp1 : 0.0,(tmp2 != null ? tmp2 : 0.0) + (tmp3 != null ? tmp3 : 0.0),0,this.get_songLengthInPixels()); this.set_scrollPositionInPixels(clickedPosInPixels1); this.moveSongToScrollPosition(); } else if(this.scrollAnchorScreenPos != null) { targetCursorMode = funkin_input_CursorMode.Scroll; } else if(this.dragTargetNote != null || this.dragTargetEvent != null) { if(flixel_FlxG.mouse._leftButton.current == -1) { var dragDistanceSteps = this.dragTargetCurrentStep; var dragDistanceMs = 0; if(this.dragTargetNote != null && this.dragTargetNote.noteData != null) { dragDistanceMs = funkin_Conductor.get_instance().getStepTimeInMs(this.dragTargetNote.noteData.getStepTime() + dragDistanceSteps) - this.dragTargetNote.noteData.time; } else if(this.dragTargetEvent != null && this.dragTargetEvent.eventData != null) { dragDistanceMs = funkin_Conductor.get_instance().getStepTimeInMs(this.dragTargetEvent.eventData.getStepTime() + dragDistanceSteps) - this.dragTargetEvent.eventData.time; } var dragDistanceColumns = this.dragTargetCurrentColumn; if(this.currentNoteSelection.length > 0 && this.currentEventSelection.length > 0) { this.performCommand(new funkin_ui_debug_charting_commands_MoveItemsCommand(this.currentNoteSelection,this.currentEventSelection,dragDistanceMs,dragDistanceColumns)); } else if(this.currentNoteSelection.length > 0) { this.performCommand(new funkin_ui_debug_charting_commands_MoveNotesCommand(this.currentNoteSelection,dragDistanceMs,dragDistanceColumns)); } else if(this.currentEventSelection.length > 0) { this.performCommand(new funkin_ui_debug_charting_commands_MoveEventsCommand(this.currentEventSelection,dragDistanceMs)); } this.dragTargetNote = null; this.dragTargetEvent = null; this.noteDisplayDirty = true; this.dragTargetCurrentStep = 0; this.dragTargetCurrentColumn = 0; } else { targetCursorMode = funkin_input_CursorMode.Grabbing; if(flixel_FlxG.mouse.screenY < funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT) { var diff = funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT - flixel_FlxG.mouse.screenY; this.set_scrollPositionInPixels(this.scrollPositionInPixels - diff * 0.5); this.moveSongToScrollPosition(); } else { var tmp = this.playbarHeadLayout; var tmp1 = tmp != null ? tmp.y : null; if(flixel_FlxG.mouse.screenY > (tmp1 != null ? tmp1 : 0.0)) { var tmp = this.playbarHeadLayout; var tmp1 = tmp != null ? tmp.y : null; var diff = flixel_FlxG.mouse.screenY - (tmp1 != null ? tmp1 : 0.0); this.set_scrollPositionInPixels(this.scrollPositionInPixels + diff * 0.5); this.moveSongToScrollPosition(); } } var stepTime = 0; if(this.dragTargetNote != null && this.dragTargetNote.noteData != null) { stepTime = this.dragTargetNote.noteData.getStepTime(); } else if(this.dragTargetEvent != null && this.dragTargetEvent.eventData != null) { stepTime = this.dragTargetEvent.eventData.getStepTime(); } var dragDistanceSteps = funkin_util_tools_FloatTools.clamp(funkin_Conductor.get_instance().getTimeInSteps(cursorSnappedMs),0,this.get_songLengthInSteps() - this.get_noteSnapRatio()) - stepTime; var data = 0; var noteGridPos = 0; if(this.dragTargetNote != null && this.dragTargetNote.noteData != null) { data = this.dragTargetNote.noteData.data; noteGridPos = funkin_ui_debug_charting_ChartEditorState.noteDataToGridColumn(data); } else if(this.dragTargetEvent != null) { data = funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1; } var dragDistanceColumns = cursorGridPos - noteGridPos; if(this.dragTargetCurrentStep != dragDistanceSteps || this.dragTargetCurrentColumn != dragDistanceColumns) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/noteLay")); haxe_Log.trace("Dragged " + dragDistanceColumns + " X and " + dragDistanceSteps + " Y.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 4539, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "handleCursor"}); this.dragTargetCurrentStep = dragDistanceSteps; this.dragTargetCurrentColumn = dragDistanceColumns; this.noteDisplayDirty = true; } } } else if(this.currentPlaceNoteData != null) { var _this = this.currentPlaceNoteData; var stepTime = _this._stepTime != null ? _this._stepTime : _this._stepTime = funkin_Conductor.get_instance().getTimeInSteps(_this.time); var dragLengthSteps = funkin_Conductor.get_instance().getTimeInSteps(cursorSnappedMs) - stepTime; var dragLengthMs = dragLengthSteps * funkin_Conductor.get_instance().get_stepLengthMs(); var dragLengthPixels = dragLengthSteps * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; if(this.gridGhostHoldNote != null) { if(dragLengthSteps > 0) { if(this.dragLengthCurrent != dragLengthSteps) { this.stretchySounds = !this.stretchySounds; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/stretch" + (this.stretchySounds ? "1" : "2") + "_UI")); this.dragLengthCurrent = dragLengthSteps; } this.gridGhostHoldNote.set_visible(true); this.gridGhostHoldNote.noteData = this.currentPlaceNoteData; this.gridGhostHoldNote.noteDirection = this.currentPlaceNoteData.data % 4; this.gridGhostHoldNote.setHeightDirectly(dragLengthPixels,true); this.gridGhostHoldNote.updateHoldNotePosition(this.renderedHoldNotes); } else { this.gridGhostHoldNote.set_visible(false); this.gridGhostHoldNote.setHeightDirectly(0); } } if(flixel_FlxG.mouse._leftButton.current == -1) { if(dragLengthSteps > 0) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/stretchSNAP_UI")); this.performCommand(new funkin_ui_debug_charting_commands_ExtendNoteLengthCommand(this.currentPlaceNoteData,dragLengthMs)); } else if(this.currentPlaceNoteData.length > 0) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/stretchSNAP_UI")); this.performCommand(new funkin_ui_debug_charting_commands_ExtendNoteLengthCommand(this.currentPlaceNoteData,0)); } this.set_currentPlaceNoteData(null); } else if(targetCursorMode == null) { targetCursorMode = funkin_input_CursorMode.Grabbing; } } else { if(flixel_FlxG.mouse._leftButton.current == 2) { if(!this.get_isCursorOverHaxeUI() && overlapsGrid && !overlapsSelectionBorder) { var highlightedNote = Lambda.find(this.renderedNotes.group.members,function(note) { if(note.alive) { return flixel_FlxG.mouse.overlaps(note); } else { return false; } }); var highlightedEvent = null; if(highlightedNote == null) { highlightedEvent = Lambda.find(this.renderedEvents.group.members,function(event) { if(event.alive) { return flixel_FlxG.mouse.overlaps(event); } else { return false; } }); } var highlightedHoldNote = null; if(highlightedNote == null && highlightedEvent == null) { highlightedHoldNote = Lambda.find(this.renderedHoldNotes.group.members,function(holdNote) { if(holdNote.alive) { return flixel_FlxG.mouse.overlaps(holdNote); } else { return false; } }); } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { if(highlightedNote != null && highlightedNote.noteData != null) { if(this.isNoteSelected(highlightedNote.noteData)) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectItemsCommand([highlightedNote.noteData],[])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([highlightedNote.noteData],[])); } } else if(highlightedEvent != null && highlightedEvent.eventData != null) { if(this.isEventSelected(highlightedEvent.eventData)) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectItemsCommand([],[highlightedEvent.eventData])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([],[highlightedEvent.eventData])); } } else if(highlightedHoldNote != null && highlightedHoldNote.noteData != null) { if(this.isNoteSelected(highlightedNote.noteData)) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectItemsCommand([highlightedHoldNote.noteData],[])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([highlightedHoldNote.noteData],[])); } } } else if(highlightedNote != null && highlightedNote.noteData != null) { if(this.isNoteSelected(highlightedNote.noteData)) { this.dragTargetNote = highlightedNote; } else { this.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand([highlightedNote.noteData],[])); } } else if(highlightedEvent != null && highlightedEvent.eventData != null) { if(this.isEventSelected(highlightedEvent.eventData)) { this.dragTargetEvent = highlightedEvent; } else { this.performCommand(new funkin_ui_debug_charting_commands_SetItemSelectionCommand([],[highlightedEvent.eventData])); } } else if(highlightedHoldNote != null && highlightedHoldNote.noteData != null) { this.set_currentPlaceNoteData(highlightedHoldNote.noteData); } else if(cursorGridPos == eventColumn) { var newEventData = funkin_data_song_SongEventData._new(cursorSnappedMs,this.eventKindToPlace,Reflect.copy(this.eventDataToPlace)); var _this = flixel_FlxG.keys.pressed; this.performCommand(new funkin_ui_debug_charting_commands_AddEventsCommand([newEventData],_this.keyManager.checkStatusUnsafe(17,_this.status))); } else { var newNoteData = funkin_data_song_SongNoteData._new(cursorSnappedMs,cursorColumn,0,this.noteKindToPlace); var _this = flixel_FlxG.keys.pressed; this.performCommand(new funkin_ui_debug_charting_commands_AddNotesCommand([newNoteData],_this.keyManager.checkStatusUnsafe(17,_this.status))); this.set_currentPlaceNoteData(newNoteData); } } } var rightMouseUpdated; if(flixel_FlxG.mouse._rightButton.current != 2) { var _this = flixel_FlxG.mouse._rightButton; if(_this.current == 1 || _this.current == 2) { var _this = flixel_FlxG.mouse; if(_this.x - _this._prevX <= 0) { var _this = flixel_FlxG.mouse; rightMouseUpdated = _this.y - _this._prevY > 0; } else { rightMouseUpdated = true; } } else { rightMouseUpdated = false; } } else { rightMouseUpdated = true; } if(rightMouseUpdated && overlapsGrid) { var highlightedNote = Lambda.find(this.renderedNotes.group.members,function(note) { if(note.alive) { return flixel_FlxG.mouse.overlaps(note); } else { return false; } }); var highlightedEvent = null; if(highlightedNote == null) { highlightedEvent = Lambda.find(this.renderedEvents.group.members,function(event) { if(event.alive) { return flixel_FlxG.mouse.overlaps(event); } else { return false; } }); } var highlightedHoldNote = null; if(highlightedNote == null && highlightedEvent == null) { highlightedHoldNote = Lambda.find(this.renderedHoldNotes.group.members,function(holdNote) { if(holdNote.alive) { return flixel_FlxG.mouse.overlaps(holdNote); } else { return false; } }); } if(highlightedNote != null && highlightedNote.noteData != null) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { var isHighlightedNoteSelected = this.isNoteSelected(highlightedNote.noteData); var useSingleNoteContextMenu = !isHighlightedNoteSelected || isHighlightedNoteSelected && this.currentNoteSelection.length == 1; if(useSingleNoteContextMenu) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openNoteContextMenu(this,flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY,highlightedNote.noteData); } else { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openSelectionContextMenu(this,flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY); } } else { this.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand([highlightedNote.noteData])); } } else if(highlightedEvent != null && highlightedEvent.eventData != null) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { var isHighlightedEventSelected = this.isEventSelected(highlightedEvent.eventData); var useSingleEventContextMenu = !isHighlightedEventSelected || isHighlightedEventSelected && this.currentEventSelection.length == 1; if(useSingleEventContextMenu) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openEventContextMenu(this,flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY,highlightedEvent.eventData); } else { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openSelectionContextMenu(this,flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY); } } else { this.performCommand(new funkin_ui_debug_charting_commands_RemoveEventsCommand([highlightedEvent.eventData])); } } else if(highlightedHoldNote != null && highlightedHoldNote.noteData != null) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { var isHighlightedNoteSelected = this.isNoteSelected(highlightedHoldNote.noteData); var useSingleNoteContextMenu = !isHighlightedNoteSelected || isHighlightedNoteSelected && this.currentNoteSelection.length == 1; if(useSingleNoteContextMenu) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openHoldNoteContextMenu(this,flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY,highlightedHoldNote.noteData); } else { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openSelectionContextMenu(this,flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY); } } else { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/stretchSNAP_UI")); this.performCommand(new funkin_ui_debug_charting_commands_ExtendNoteLengthCommand(highlightedHoldNote.noteData,0)); } } } var isOrWillSelect = overlapsSelection || this.dragTargetNote != null || this.dragTargetEvent != null || overlapsRenderedNotes || overlapsRenderedHoldNotes || overlapsRenderedEvents; if(!this.get_isCursorOverHaxeUI() && overlapsGrid && !isOrWillSelect && !overlapsSelectionBorder && !this.gridPlayheadScrollAreaPressed) { if(cursorGridPos == eventColumn) { if(this.gridGhostNote != null) { this.gridGhostNote.set_visible(false); } if(this.gridGhostHoldNote != null) { this.gridGhostHoldNote.set_visible(false); } if(this.gridGhostEvent == null) { throw haxe_Exception.thrown("ERROR: Tried to handle cursor, but gridGhostEvent is null! Check ChartEditorState.buildGrid()"); } var eventData = this.gridGhostEvent.eventData != null ? this.gridGhostEvent.eventData : funkin_data_song_SongEventData._new(cursorMs,this.eventKindToPlace,null); if(this.eventKindToPlace != eventData.eventKind) { eventData.eventKind = this.eventKindToPlace; } eventData.set_time(cursorSnappedMs); this.gridGhostEvent.set_visible(true); this.gridGhostEvent.set_eventData(eventData); this.gridGhostEvent.updateEventPosition(this.renderedEvents); targetCursorMode = funkin_input_CursorMode.Cell; } else { if(this.gridGhostEvent != null) { this.gridGhostEvent.set_visible(false); } if(this.gridGhostNote == null) { throw haxe_Exception.thrown("ERROR: Tried to handle cursor, but gridGhostNote is null! Check ChartEditorState.buildGrid()"); } var noteData = this.gridGhostNote.noteData != null ? this.gridGhostNote.noteData : funkin_data_song_SongNoteData._new(cursorMs,cursorColumn,0,this.noteKindToPlace); if(cursorColumn != noteData.data || this.noteKindToPlace != noteData.get_kind()) { noteData.set_kind(this.noteKindToPlace); noteData.data = cursorColumn; this.gridGhostNote.playNoteAnimation(); } noteData.set_time(cursorSnappedMs); this.gridGhostNote.set_visible(true); this.gridGhostNote.set_noteData(noteData); this.gridGhostNote.updateNotePosition(this.renderedNotes); targetCursorMode = funkin_input_CursorMode.Cell; } } else { if(this.gridGhostNote != null) { this.gridGhostNote.set_visible(false); } if(this.gridGhostHoldNote != null) { this.gridGhostHoldNote.set_visible(false); } if(this.gridGhostEvent != null) { this.gridGhostEvent.set_visible(false); } } } if(targetCursorMode == null) { var _this = flixel_FlxG.mouse._leftButton; if(_this.current == 1 || _this.current == 2) { if(overlapsSelection) { targetCursorMode = funkin_input_CursorMode.Grabbing; } if(overlapsSelectionBorder) { targetCursorMode = funkin_input_CursorMode.Crosshair; } } else if(!this.get_isCursorOverHaxeUI()) { if(this.notePreview != null && flixel_FlxG.mouse.overlaps(this.notePreview)) { targetCursorMode = funkin_input_CursorMode.Pointer; } else if(this.measureTicks != null && flixel_FlxG.mouse.overlaps(this.measureTicks)) { targetCursorMode = funkin_input_CursorMode.Pointer; } else if(overlapsSelection) { targetCursorMode = funkin_input_CursorMode.Pointer; } else if(overlapsSelectionBorder) { targetCursorMode = funkin_input_CursorMode.Crosshair; } else if(overlapsRenderedNotes) { targetCursorMode = funkin_input_CursorMode.Pointer; } else if(overlapsRenderedHoldNotes) { targetCursorMode = funkin_input_CursorMode.Pointer; } else if(overlapsRenderedEvents) { targetCursorMode = funkin_input_CursorMode.Pointer; } else if(overlapsGrid) { targetCursorMode = funkin_input_CursorMode.Cell; } else if(overlapsHealthIcons) { targetCursorMode = funkin_input_CursorMode.Pointer; } } } var tmp = targetCursorMode; funkin_input_Cursor.set_cursorMode(tmp != null ? tmp : funkin_input_CursorMode.Default); } else { if(this.gridGhostNote != null) { this.gridGhostNote.set_visible(false); } if(this.gridGhostHoldNote != null) { this.gridGhostHoldNote.set_visible(false); } if(this.gridGhostEvent != null) { this.gridGhostEvent.set_visible(false); } } } ,handleToolboxes: function() { this.handleDifficultyToolbox(); this.handlePlayerPreviewToolbox(); this.handleOpponentPreviewToolbox(); } ,handleDifficultyToolbox: function() { if(this.difficultySelectDirty) { this.difficultySelectDirty = false; var difficultyToolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); if(difficultyToolbox == null) { return; } difficultyToolbox.updateTree(); } } ,handlePlayerPreviewToolbox: function() { var charPreviewToolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox_OLD(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT); if(charPreviewToolbox == null) { return; } var charPlayer = null; if(charPlayer == null) { return; } this.currentPlayerCharacterPlayer = charPlayer; if(this.playerPreviewDirty) { this.playerPreviewDirty = false; if(this.get_currentSongMetadata().playData.characters.player != charPlayer.get_charId()) { if(this.healthIconBF != null) { this.healthIconBF.set_characterId(this.get_currentSongMetadata().playData.characters.player); } charPlayer.loadCharacter(this.get_currentSongMetadata().playData.characters.player); charPlayer.set_characterType(funkin_play_character_CharacterType.BF); charPlayer.set_flip(true); charPlayer.set_targetScale(0.5); charPreviewToolbox.set_title("Player Preview - " + charPlayer.get_charName()); } if(charPreviewToolbox != null && !charPreviewToolbox.get_minimized()) { charPreviewToolbox.set_width(charPlayer.get_width() + 32); charPreviewToolbox.set_height(charPlayer.get_height() + 64); } } } ,handleOpponentPreviewToolbox: function() { var charPreviewToolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox_OLD(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT); if(charPreviewToolbox == null) { return; } var charPlayer = null; if(charPlayer == null) { return; } this.currentOpponentCharacterPlayer = charPlayer; if(this.opponentPreviewDirty) { this.opponentPreviewDirty = false; if(this.get_currentSongMetadata().playData.characters.opponent != charPlayer.get_charId()) { if(this.healthIconDad != null) { this.healthIconDad.set_characterId(this.get_currentSongMetadata().playData.characters.opponent); } charPlayer.loadCharacter(this.get_currentSongMetadata().playData.characters.opponent); charPlayer.set_characterType(funkin_play_character_CharacterType.DAD); charPlayer.set_flip(false); charPlayer.set_targetScale(0.5); charPreviewToolbox.set_title("Opponent Preview - " + charPlayer.get_charName()); } if(charPreviewToolbox != null && !charPreviewToolbox.get_minimized()) { charPreviewToolbox.set_width(charPlayer.get_width() + 32); charPreviewToolbox.set_height(charPlayer.get_height() + 64); } } } ,handleSelectionButtons: function() { this.buttonSelectOpponent.set_y(funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT - 2); this.buttonSelectPlayer.set_y(funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT - 2); this.buttonSelectEvent.set_y(funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT - 2); } ,handlePlaybar: function() { if(this.playbarHeadLayout == null) { throw haxe_Exception.thrown("ERROR: Tried to handle playbar, but playbarHeadLayout is null!"); } this.playbarHeadLayout.set_x(4); this.playbarHeadLayout.set_y(flixel_FlxG.height - 48 - 8); if(!this.playbarHeadDragging) { var songPosPercent = this.scrollPositionInPixels / this.get_songLengthInPixels() * 100; if(this.playbarHeadLayout.playbarHead.get_value() != songPosPercent) { this.playbarHeadLayout.playbarHead.set_value(songPosPercent); } } var songPos = funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset; var songPosSeconds = StringTools.lpad(Std.string(Math.floor(Math.abs(songPos) / 1000 % 60)),"0",2); var songPosMinutes = StringTools.lpad(Std.string(Math.floor(Math.abs(songPos) / 1000 / 60)),"0",2); if(songPos < 0) { songPosMinutes = "-" + songPosMinutes; } var songPosString = "" + songPosMinutes + ":" + songPosSeconds; if(this.playbarSongPos.get_value() != songPosString) { this.playbarSongPos.set_value(songPosString); } var songRemaining = Math.max(this.get_songLengthInMs() - songPos,0.0); var songRemainingSeconds = StringTools.lpad(Std.string(Math.floor(songRemaining / 1000 % 60)),"0",2); var songRemainingMinutes = StringTools.lpad(Std.string(Math.floor(songRemaining / 1000 / 60)),"0",2); var songRemainingString = "-" + songRemainingMinutes + ":" + songRemainingSeconds; if(this.playbarSongRemaining.get_value() != songRemainingString) { this.playbarSongRemaining.set_value(songRemainingString); } this.playbarNoteSnap.set_text("1/" + this.get_noteSnapQuant()); this.playbarDifficulty.set_text("" + funkin_util_tools_StringTools.toTitleCase(this.selectedDifficulty)); var tmp = this.playbarBPM; var tmp1 = funkin_Conductor.get_instance().get_bpm(); tmp.set_text("BPM: " + (tmp1 != null ? tmp1 : 0.0)); } ,handlePlayhead: function() { switch(this.currentLiveInputStyle._hx_index) { case 0: break; case 1: var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(49,_this.status)) { this.placeNoteAtPlayhead(4); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(49,_this.status)) { this.finishPlaceNoteAtPlayhead(4); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(50,_this.status)) { this.placeNoteAtPlayhead(5); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(50,_this.status)) { this.finishPlaceNoteAtPlayhead(5); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(51,_this.status)) { this.placeNoteAtPlayhead(6); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(51,_this.status)) { this.finishPlaceNoteAtPlayhead(6); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(52,_this.status)) { this.placeNoteAtPlayhead(7); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(52,_this.status)) { this.finishPlaceNoteAtPlayhead(7); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(53,_this.status)) { this.placeNoteAtPlayhead(0); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(53,_this.status)) { this.finishPlaceNoteAtPlayhead(0); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(54,_this.status)) { this.placeNoteAtPlayhead(1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(55,_this.status)) { this.placeNoteAtPlayhead(2); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(55,_this.status)) { this.finishPlaceNoteAtPlayhead(2); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(56,_this.status)) { this.placeNoteAtPlayhead(3); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(56,_this.status)) { this.finishPlaceNoteAtPlayhead(3); } break; case 2: var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(65,_this.status)) { this.placeNoteAtPlayhead(4); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(65,_this.status)) { this.finishPlaceNoteAtPlayhead(4); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(83,_this.status)) { this.placeNoteAtPlayhead(5); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(83,_this.status)) { this.finishPlaceNoteAtPlayhead(5); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(87,_this.status)) { this.placeNoteAtPlayhead(6); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(87,_this.status)) { this.finishPlaceNoteAtPlayhead(6); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(68,_this.status)) { this.placeNoteAtPlayhead(7); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(68,_this.status)) { this.finishPlaceNoteAtPlayhead(7); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { this.placeNoteAtPlayhead(0); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { this.finishPlaceNoteAtPlayhead(0); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { this.placeNoteAtPlayhead(1); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { this.finishPlaceNoteAtPlayhead(1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { this.placeNoteAtPlayhead(2); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { this.finishPlaceNoteAtPlayhead(2); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { this.placeNoteAtPlayhead(3); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { this.finishPlaceNoteAtPlayhead(3); } break; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(188,_this.status)) { this.placeEventAtPlayhead(true); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(190,_this.status)) { this.placeEventAtPlayhead(false); } this.updatePlayheadGhostHoldNotes(); } ,placeNoteAtPlayhead: function(column) { var removeNoteInstead; var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(16,_this.status)) { var tmp = flixel_FlxG.gamepads.firstActive; var tmp1 = tmp != null ? tmp.pressed : null; var tmp; if(tmp1 != null) { var id = 4; var _this = tmp1.gamepad; var Status = tmp1.status; var tmp1; switch(id) { case -2: tmp1 = _this.anyButton(Status); break; case -1: tmp1 = !_this.anyButton(Status); break; default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } tmp = tmp1; } else { tmp = null; } removeNoteInstead = tmp != null && tmp; } else { removeNoteInstead = true; } var playheadPos = this.scrollPositionInPixels + this.playheadPositionInPixels; var playheadPosFractionalStep = playheadPos / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / this.get_noteSnapRatio(); var playheadPosStep = Math.floor(playheadPosFractionalStep) | 0; var playheadPosSnappedMs = playheadPosStep * funkin_Conductor.get_instance().get_stepLengthMs() * this.get_noteSnapRatio(); var notesAtPos = funkin_data_song_SongDataUtils.getNotesInTimeRange(this.get_currentSongChartNoteData(),playheadPosSnappedMs,playheadPosSnappedMs + funkin_Conductor.get_instance().get_stepLengthMs() * this.get_noteSnapRatio()); notesAtPos = funkin_data_song_SongDataUtils.getNotesWithData(notesAtPos,[column]); if(notesAtPos.length == 0 && !removeNoteInstead) { haxe_Log.trace("Placing note. " + column,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5198, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "placeNoteAtPlayhead"}); var newNoteData = funkin_data_song_SongNoteData._new(playheadPosSnappedMs,column,0,this.noteKindToPlace); var _this = flixel_FlxG.keys.pressed; this.performCommand(new funkin_ui_debug_charting_commands_AddNotesCommand([newNoteData],_this.keyManager.checkStatusUnsafe(17,_this.status))); this.currentLiveInputPlaceNoteData[column] = newNoteData; } else if(removeNoteInstead) { haxe_Log.trace("Removing existing note at position. " + column,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5205, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "placeNoteAtPlayhead"}); this.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand(notesAtPos)); } else { haxe_Log.trace("Already a note there. " + column,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5210, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "placeNoteAtPlayhead"}); } } ,placeEventAtPlayhead: function(isOpponent) { var removeEventInstead; var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(16,_this.status)) { var tmp = flixel_FlxG.gamepads.firstActive; var tmp1 = tmp != null ? tmp.pressed : null; var tmp; if(tmp1 != null) { var id = 4; var _this = tmp1.gamepad; var Status = tmp1.status; var tmp1; switch(id) { case -2: tmp1 = _this.anyButton(Status); break; case -1: tmp1 = !_this.anyButton(Status); break; default: var RawID = _this.mapping.getRawID(id); var button = _this.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } tmp = tmp1; } else { tmp = null; } removeEventInstead = tmp != null && tmp; } else { removeEventInstead = true; } var playheadPos = this.scrollPositionInPixels + this.playheadPositionInPixels; var playheadPosFractionalStep = playheadPos / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / this.get_noteSnapRatio(); var playheadPosStep = Math.floor(playheadPosFractionalStep) | 0; var playheadPosSnappedMs = playheadPosStep * funkin_Conductor.get_instance().get_stepLengthMs() * this.get_noteSnapRatio(); var eventsAtPos = funkin_data_song_SongDataUtils.getEventsInTimeRange(this.get_currentSongChartEventData(),playheadPosSnappedMs,playheadPosSnappedMs + funkin_Conductor.get_instance().get_stepLengthMs() * this.get_noteSnapRatio()); eventsAtPos = funkin_data_song_SongDataUtils.getEventsWithKind(eventsAtPos,["FocusCamera"]); if(eventsAtPos.length == 0 && !removeEventInstead) { haxe_Log.trace("Placing event " + (isOpponent == null ? "null" : "" + isOpponent),{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5231, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "placeEventAtPlayhead"}); var newEventData = funkin_data_song_SongEventData._new(playheadPosSnappedMs,"FocusCamera",{ char : isOpponent ? 1 : 0}); var _this = flixel_FlxG.keys.pressed; this.performCommand(new funkin_ui_debug_charting_commands_AddEventsCommand([newEventData],_this.keyManager.checkStatusUnsafe(17,_this.status))); } else if(removeEventInstead) { haxe_Log.trace("Removing existing event at position.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5240, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "placeEventAtPlayhead"}); this.performCommand(new funkin_ui_debug_charting_commands_RemoveEventsCommand(eventsAtPos)); } else { haxe_Log.trace("Already an event there.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5245, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "placeEventAtPlayhead"}); } } ,updatePlayheadGhostHoldNotes: function() { while(this.gridPlayheadGhostHoldNotes.length < funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2) { var ghost = new funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite(this); ghost.set_alpha(0.6); ghost.noteData = null; ghost.set_visible(false); ghost.zIndex = 11; this.add(ghost); this.gridPlayheadGhostHoldNotes.push(ghost); this.refresh(); } var _g = 0; var _g1 = this.gridPlayheadGhostHoldNotes.length; while(_g < _g1) { var column = _g++; var targetNoteData = this.currentLiveInputPlaceNoteData[column]; var ghostHold = this.gridPlayheadGhostHoldNotes[column]; if(targetNoteData == null && ghostHold.noteData != null) { ghostHold.noteData = null; } if(targetNoteData != null && ghostHold.noteData == null) { ghostHold.noteData = funkin_data_song_SongNoteData.clone(targetNoteData); ghostHold.noteDirection = ghostHold.noteData.data % 4; ghostHold.set_visible(true); ghostHold.set_alpha(0.6); ghostHold.setHeightDirectly(0); ghostHold.updateHoldNotePosition(this.renderedHoldNotes); } if(ghostHold.noteData == null) { ghostHold.set_visible(false); ghostHold.setHeightDirectly(0); this.playheadDragLengthCurrent[column] = 0; continue; } var playheadPos = this.scrollPositionInPixels + this.playheadPositionInPixels; var playheadPosFractionalStep = playheadPos / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / this.get_noteSnapRatio(); var playheadPosStep = Math.floor(playheadPosFractionalStep) | 0; var playheadPosSnappedMs = playheadPosStep * funkin_Conductor.get_instance().get_stepLengthMs() * this.get_noteSnapRatio(); var newNoteLength = playheadPosSnappedMs - ghostHold.noteData.time; haxe_Log.trace("newNoteLength: " + newNoteLength,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5302, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "updatePlayheadGhostHoldNotes"}); if(newNoteLength > 0) { ghostHold.noteData.set_length(newNoteLength); var targetNoteLengthSteps = ghostHold.noteData.getStepLength(true); var targetNoteLengthStepsInt = Math.floor(targetNoteLengthSteps) | 0; var targetNoteLengthPixels = targetNoteLengthSteps * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; if(this.playheadDragLengthCurrent[column] != targetNoteLengthStepsInt) { this.stretchySounds = !this.stretchySounds; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/stretch" + (this.stretchySounds ? "1" : "2") + "_UI")); this.playheadDragLengthCurrent[column] = targetNoteLengthStepsInt; } ghostHold.set_visible(true); ghostHold.set_alpha(0.6); ghostHold.setHeightDirectly(targetNoteLengthPixels,true); ghostHold.updateHoldNotePosition(this.renderedHoldNotes); haxe_Log.trace("lerpLength: " + ghostHold.fullSustainLength,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5321, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "updatePlayheadGhostHoldNotes"}); haxe_Log.trace("position: " + ghostHold.x + ", " + ghostHold.y,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5322, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "updatePlayheadGhostHoldNotes"}); } else { ghostHold.set_visible(false); ghostHold.setHeightDirectly(0); this.playheadDragLengthCurrent[column] = 0; continue; } } } ,finishPlaceNoteAtPlayhead: function(column) { if(this.currentLiveInputPlaceNoteData[column] == null) { return; } var playheadPos = this.scrollPositionInPixels + this.playheadPositionInPixels; var playheadPosFractionalStep = playheadPos / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / this.get_noteSnapRatio(); var playheadPosStep = Math.floor(playheadPosFractionalStep) | 0; var playheadPosSnappedMs = playheadPosStep * funkin_Conductor.get_instance().get_stepLengthMs() * this.get_noteSnapRatio(); var newNoteLength = playheadPosSnappedMs - this.currentLiveInputPlaceNoteData[column].time; haxe_Log.trace("finishPlace newNoteLength: " + newNoteLength,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5344, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "finishPlaceNoteAtPlayhead"}); if(newNoteLength < funkin_Conductor.get_instance().get_stepLengthMs()) { haxe_Log.trace("Not extending note. " + column,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5349, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "finishPlaceNoteAtPlayhead"}); this.currentLiveInputPlaceNoteData[column] = null; this.gridPlayheadGhostHoldNotes[column].noteData = null; } else { haxe_Log.trace("Extending note. " + column,{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5356, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "finishPlaceNoteAtPlayhead"}); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/stretchSNAP_UI")); this.performCommand(new funkin_ui_debug_charting_commands_ExtendNoteLengthCommand(this.currentLiveInputPlaceNoteData[column],newNoteLength)); this.currentLiveInputPlaceNoteData[column] = null; this.gridPlayheadGhostHoldNotes[column].noteData = null; } } ,handleHealthIcons: function() { if(this.healthIconsDirty) { var charDataBF = funkin_play_character_CharacterDataParser.fetchCharacterData(this.get_currentSongMetadata().playData.characters.player); var charDataDad = funkin_play_character_CharacterDataParser.fetchCharacterData(this.get_currentSongMetadata().playData.characters.opponent); if(this.healthIconBF != null) { this.healthIconBF.configure(charDataBF != null ? charDataBF.healthIcon : null); var a = this.healthIconBF.size; var y = null; if(y == null) { y = 0.5; } a.set_x(a.x * 0.5); a.set_y(a.y * y); this.healthIconBF.set_flipX(!this.healthIconBF.flipX); } if(this.buttonSelectPlayer != null) { var tmp = charDataBF != null ? charDataBF.name : null; this.buttonSelectPlayer.set_text(tmp != null ? tmp : "Player"); } if(this.healthIconDad != null) { this.healthIconDad.configure(charDataDad != null ? charDataDad.healthIcon : null); var a = this.healthIconDad.size; var y = null; if(y == null) { y = 0.5; } a.set_x(a.x * 0.5); a.set_y(a.y * y); } if(this.buttonSelectOpponent != null) { var tmp = charDataDad != null ? charDataDad.name : null; this.buttonSelectOpponent.set_text(tmp != null ? tmp : "Opponent"); } this.healthIconsDirty = false; } if(this.healthIconBF != null) { var xOffset = 45 - this.healthIconBF.get_width() / 2; this.healthIconBF.set_x(this.gridTiledSprite == null ? 0 : funkin_ui_debug_charting_ChartEditorState.get_GRID_X_POS() + this.gridTiledSprite.get_width() + xOffset); var yOffset = 30 - this.healthIconBF.get_height() / 2; this.healthIconBF.set_y(this.gridTiledSprite == null ? 0 : funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT + yOffset); } if(this.healthIconDad != null) { var xOffset = 75 + this.healthIconDad.get_width() / 2; this.healthIconDad.set_x(this.gridTiledSprite == null ? 0 : funkin_ui_debug_charting_ChartEditorState.get_GRID_X_POS() - xOffset); var yOffset = 30 - this.healthIconDad.get_height() / 2; this.healthIconDad.set_y(this.gridTiledSprite == null ? 0 : funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT + yOffset); } } ,handleFileKeybinds: function() { var _gthis = this; var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(78,_this.status); } else { tmp = false; } if(tmp && !this.isHaxeUIDialogOpen) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(this,true); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(79,_this.status); } else { tmp = false; } if(tmp && !this.isHaxeUIDialogOpen) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBrowseFNFC(this,true); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(83,_this.status); } else { tmp = false; } if(tmp && !this.isHaxeUIDialogOpen) { var tmp; if(this.get_currentWorkingFilePath() != null) { var _this = flixel_FlxG.keys.pressed; tmp = _this.keyManager.checkStatusUnsafe(16,_this.status); } else { tmp = true; } if(tmp) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(this,false,null,function(path) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(_gthis,"Saved Chart","Chart saved successfully to " + path + "."); },function() { }); } else { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData(this,true,this.get_currentWorkingFilePath()); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(this,"Saved Chart","Chart saved successfully to " + this.get_currentWorkingFilePath() + "."); } } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(81,_this.status); } else { tmp = false; } if(tmp) { this.quitChartEditor(); } } ,quitChartEditor: function() { this.autoSave(); this.stopWelcomeMusic(); if(this.audioInstTrack != null) { this.audioInstTrack.onComplete = null; } var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); this.resetWindowTitle(); this.criticalFailure = true; } ,handleEditKeybinds: function() { if(this.undoKeyHandler.activated) { this.undoLastCommand(); } if(this.redoKeyHandler.activated) { this.redoLastCommand(); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(67,_this.status); } else { tmp = false; } if(tmp) { this.performCommand(new funkin_ui_debug_charting_commands_CopyItemsCommand(this.currentNoteSelection,this.currentEventSelection)); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(88,_this.status); } else { tmp = false; } if(tmp) { this.performCommand(new funkin_ui_debug_charting_commands_CutItemsCommand(this.currentNoteSelection,this.currentEventSelection)); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(86,_this.status); } else { tmp = false; } if(tmp) { var targetMs; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { targetMs = this.get_scrollPositionInMs() + this.get_playheadPositionInMs(); } else { var targetMs1 = this.get_scrollPositionInMs() + this.get_playheadPositionInMs(); var targetStep = funkin_Conductor.get_instance().getTimeInSteps(targetMs1); var targetSnappedStep = Math.floor(targetStep / this.get_noteSnapRatio()) * this.get_noteSnapRatio(); var targetSnappedMs = funkin_Conductor.get_instance().getStepTimeInMs(targetSnappedStep); targetMs = targetSnappedMs; } this.performCommand(new funkin_ui_debug_charting_commands_PasteItemsCommand(targetMs)); } var _this = flixel_FlxG.keys.justPressed; var $delete = _this.keyManager.checkStatusUnsafe(46,_this.status); if($delete) { if(this.currentNoteSelection.length > 0 && this.currentEventSelection.length > 0) { this.performCommand(new funkin_ui_debug_charting_commands_RemoveItemsCommand(this.currentNoteSelection,this.currentEventSelection)); } else if(this.currentNoteSelection.length > 0) { this.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand(this.currentNoteSelection)); } else if(this.currentEventSelection.length > 0) { this.performCommand(new funkin_ui_debug_charting_commands_RemoveEventsCommand(this.currentEventSelection)); } } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(70,_this.status); } else { tmp = false; } if(tmp) { this.performCommand(new funkin_ui_debug_charting_commands_FlipNotesCommand(this.currentNoteSelection)); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(65,_this.status); } else { tmp = false; } if(tmp) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand([],this.get_currentSongChartEventData())); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectAllItemsCommand(false,true)); } } else { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { this.performCommand(new funkin_ui_debug_charting_commands_SelectItemsCommand(this.get_currentSongChartNoteData(),[])); } else { this.performCommand(new funkin_ui_debug_charting_commands_SelectAllItemsCommand(true,false)); } } } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(73,_this.status); } else { tmp = false; } if(tmp) { this.performCommand(new funkin_ui_debug_charting_commands_InvertSelectedItemsCommand()); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(68,_this.status); } else { tmp = false; } if(tmp) { this.performCommand(new funkin_ui_debug_charting_commands_DeselectAllItemsCommand()); } } ,handleViewKeybinds: function() { if(this.currentLiveInputStyle == funkin_ui_debug_charting_ChartEditorLiveInputStyle.None) { var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(37,_this.status); } else { tmp = false; } if(tmp) { this.incrementDifficulty(-1); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(39,_this.status); } else { tmp = false; } if(tmp) { this.incrementDifficulty(1); } } else { haxe_Log.trace("Ignoring keybinds for View menu items because we are in live input mode (" + Std.string(this.currentLiveInputStyle) + ").",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5620, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "handleViewKeybinds"}); } } ,handleTestKeybinds: function() { var tmp; if(!this.isHaxeUIDialogOpen && !this.get_isHaxeUIFocused()) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(13,_this.status); } else { tmp = false; } if(tmp) { var _this = flixel_FlxG.keys.pressed; var minimal = _this.keyManager.checkStatusUnsafe(16,_this.status); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.hideAllToolboxes(this); this.testSongInPlayState(minimal); } } ,handleHelpKeybinds: function() { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(112,_this.status)) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUserGuideDialog(this); } } ,handleQuickWatch: function() { } ,handlePostUpdate: function() { this.wasCursorOverHaxeUI = this.get_isCursorOverHaxeUI(); } ,testSongInPlayState: function(minimal) { if(minimal == null) { minimal = false; } var _gthis = this; this.autoSave(true); this.stopWelcomeMusic(); this.stopAudioPlayback(); var startTimestamp = 0; if(this.playtestStartTime) { startTimestamp = this.get_scrollPositionInMs() + this.get_playheadPositionInMs(); } var tmp = this.menubarItemPlaybackSpeed.get_value(); var playbackRate = (tmp != null ? tmp : 1.0) * 2.0 / 100.0; playbackRate = Math.floor(playbackRate / 0.05) * 0.05; playbackRate = Math.max(0.05,Math.min(2.0,playbackRate)); var targetSong; try { targetSong = funkin_play_song_Song.buildRaw(this.get_currentSongId(),funkin_util_tools_MapTools.values(this.songMetadata),this.get_availableVariations(),this.songChartData,this.playtestSongScripts,false); } catch( _g ) { var e = haxe_Exception.caught(_g); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this,"Could Not Playtest","Got an error trying to playtest the song.\n" + Std.string(e)); return; } switch(this.get_currentSongStage()) { case "limoRide": funkin_play_PlayStatePlaylist.campaignId = "week4"; break; case "mainStage": funkin_play_PlayStatePlaylist.campaignId = "week1"; break; case "mallEvil":case "mallXmas": funkin_play_PlayStatePlaylist.campaignId = "week5"; break; case "phillyBlazin":case "phillyBlazin2":case "phillyStreets": funkin_play_PlayStatePlaylist.campaignId = "weekend1"; break; case "phillyTrain": funkin_play_PlayStatePlaylist.campaignId = "week3"; break; case "school":case "schoolEvil": funkin_play_PlayStatePlaylist.campaignId = "week6"; break; case "spookyMansion": funkin_play_PlayStatePlaylist.campaignId = "week2"; break; case "tankmanBattlefield": funkin_play_PlayStatePlaylist.campaignId = "week7"; break; } funkin_Paths.setCurrentLevel(funkin_play_PlayStatePlaylist.campaignId); this.get_subStateClosed().add($bind(this,this.reviveUICamera)); this.get_subStateClosed().add($bind(this,this.resetConductorAfterTest)); flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false; var targetStateParams = { targetSong : targetSong, targetDifficulty : this.selectedDifficulty, targetVariation : this.selectedVariation, practiceMode : this.playtestPracticeMode, botPlayMode : this.playtestBotPlayMode, minimalMode : minimal, startTimestamp : startTimestamp, playbackRate : playbackRate, overrideMusic : true}; if(this.audioInstTrack != null) { flixel_FlxG.sound.music = this.audioInstTrack; } this.uiCamera.kill(); flixel_FlxG.cameras.remove(this.uiCamera,false); flixel_FlxG.cameras.reset(new funkin_graphics_FunkinCamera("chartEditorUI2")); this.persistentUpdate = false; this.persistentDraw = false; this.stopWelcomeMusic(); funkin_ui_transition_LoadingState.loadPlayState(targetStateParams,false,true,function(targetState) { targetState.vocals = _gthis.audioVocalTrackGroup; }); } ,performCommand: function(command,purgeRedoStack) { if(purgeRedoStack == null) { purgeRedoStack = true; } command.execute(this); if(command.shouldAddToHistory(this)) { this.undoHistory.push(command); this.commandHistoryDirty = true; } if(purgeRedoStack) { this.redoHistory = []; } } ,undoCommand: function(command) { command.undo(this); this.redoHistory.push(command); this.commandHistoryDirty = true; } ,undoLastCommand: function() { var command = this.undoHistory.pop(); if(command == null) { haxe_Log.trace("No actions to undo.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5805, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "undoLastCommand"}); return; } this.undoCommand(command); } ,redoLastCommand: function() { var command = this.redoHistory.pop(); if(command == null) { haxe_Log.trace("No actions to redo.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 5819, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "redoLastCommand"}); return; } this.performCommand(command,false); } ,buildSelectionSquare: function() { if(this.selectionSquareBitmap == null) { throw haxe_Exception.thrown("ERROR: Tried to build selection square, but selectionSquareBitmap is null! Check ChartEditorThemeHandler.updateSelectionSquare()"); } var result = new funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite(this); result.loadGraphic(this.selectionSquareBitmap); return result; } ,reviveUICamera: function(_) { this.uiCamera.revive(); flixel_FlxG.cameras.reset(this.uiCamera); this.add(this.root); } ,startAudioPlayback: function() { if(this.audioInstTrack != null) { this.audioInstTrack.play(false,this.audioInstTrack._time); this.audioVocalTrackGroup.play(false,this.audioInstTrack._time); } this.playbarPlay.set_text("||"); } ,playMetronomeTick: function(high) { if(high == null) { high = false; } funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/metronome" + (high ? "1" : "2")),this.metronomeVolume); } ,switchToCurrentInstrumental: function() { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.switchToInstrumental(this,this.get_currentInstrumentalId(),this.get_currentSongMetadata().playData.characters.player,this.get_currentSongMetadata().playData.characters.opponent); } ,updateGridHeight: function() { if(this.get_playheadPositionInMs() > this.get_songLengthInMs()) { this.set_playheadPositionInMs(this.get_songLengthInMs()); } if(this.gridTiledSprite != null) { this.gridTiledSprite.set_height(this.get_songLengthInPixels()); } if(this.measureTicks != null) { this.measureTicks.setHeight(this.get_songLengthInPixels()); } var songCutoffPointSteps = this.get_songLengthInSteps() - 0.1; var songCutoffPointMs = funkin_Conductor.get_instance().getStepTimeInMs(songCutoffPointSteps); this.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.clampSongNoteData(this.get_currentSongChartNoteData(),0.0,songCutoffPointMs)); this.set_currentSongChartEventData(funkin_data_song_SongDataUtils.clampSongEventData(this.get_currentSongChartEventData(),0.0,songCutoffPointMs)); this.set_scrollPositionInPixels(0); this.set_playheadPositionInPixels(0); this.set_notePreviewDirty(true); this.notePreviewViewportBoundsDirty = true; this.noteDisplayDirty = true; this.moveSongToScrollPosition(); } ,sortChartData: function() { this.get_currentSongChartNoteData().sort(function(a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = -1; } else if(Value1 > Value2) { result = 1; } return result; }); this.get_currentSongChartEventData().sort(function(a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = -1; } else if(Value1 > Value2) { result = 1; } return result; }); } ,isEventSelected: function(event) { if(event != null) { return this.currentEventSelection.indexOf(event) != -1; } else { return false; } } ,createDifficulty: function(variation,difficulty,scrollSpeed) { if(scrollSpeed == null) { scrollSpeed = 1.0; } var variationMetadata = this.songMetadata.h[variation]; if(variationMetadata == null) { return; } variationMetadata.playData.difficulties.push(difficulty); var resultChartData = this.songChartData.h[variation]; if(resultChartData == null) { var _g = new haxe_ds_StringMap(); _g.h[difficulty] = scrollSpeed; var _g1 = new haxe_ds_StringMap(); _g1.h[difficulty] = []; resultChartData = new funkin_data_song_SongChartData(_g,[],_g1); this.songChartData.h[variation] = resultChartData; } else { resultChartData.scrollSpeed.h[difficulty] = scrollSpeed; resultChartData.notes.h[difficulty] = []; } this.difficultySelectDirty = true; } ,removeDifficulty: function(variation,difficulty) { var variationMetadata = this.songMetadata.h[variation]; if(variationMetadata == null) { return; } HxOverrides.remove(variationMetadata.playData.difficulties,difficulty); var resultChartData = this.songChartData.h[variation]; if(resultChartData != null) { var _this = resultChartData.scrollSpeed; if(Object.prototype.hasOwnProperty.call(_this.h,difficulty)) { delete(_this.h[difficulty]); } var _this = resultChartData.notes; if(Object.prototype.hasOwnProperty.call(_this.h,difficulty)) { delete(_this.h[difficulty]); } } if(funkin_util_tools_MapTools.size(this.songMetadata) > 1) { if(variationMetadata.playData.difficulties.length == 0) { var _this = this.songMetadata; if(Object.prototype.hasOwnProperty.call(_this.h,variation)) { delete(_this.h[variation]); } var _this = this.songChartData; if(Object.prototype.hasOwnProperty.call(_this.h,variation)) { delete(_this.h[variation]); } } if(variation == this.selectedVariation) { var firstVariation = funkin_util_tools_MapTools.keyValues(this.songMetadata)[0]; if(firstVariation != null) { this.set_selectedVariation(firstVariation); } variationMetadata = this.songMetadata.h[this.selectedVariation]; } } if(this.selectedDifficulty == difficulty || variationMetadata.playData.difficulties.indexOf(this.selectedDifficulty) == -1) { this.set_selectedDifficulty(variationMetadata.playData.difficulties[0]); } this.difficultySelectDirty = true; } ,incrementDifficulty: function(change) { var currentDifficultyIndex = this.get_availableDifficulties().indexOf(this.selectedDifficulty); var currentAllDifficultyIndex = this.get_allDifficulties().indexOf(this.selectedDifficulty); if(currentDifficultyIndex == -1 || currentAllDifficultyIndex == -1) { haxe_Log.trace("ERROR determining difficulty index!",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6002, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "incrementDifficulty"}); } var isFirstDiff = currentAllDifficultyIndex == 0; var isLastDiff = currentAllDifficultyIndex == this.get_allDifficulties().length - 1; var isFirstDiffInVariation = currentDifficultyIndex == 0; var isLastDiffInVariation = currentDifficultyIndex == this.get_availableDifficulties().length - 1; haxe_Log.trace(this.get_allDifficulties(),{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6011, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "incrementDifficulty"}); if(change < 0 && isFirstDiff) { haxe_Log.trace("At lowest difficulty! Do nothing.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6015, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "incrementDifficulty"}); return; } if(change > 0 && isLastDiff) { haxe_Log.trace("At highest difficulty! Do nothing.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6021, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "incrementDifficulty"}); return; } if(change < 0) { haxe_Log.trace("Decrement difficulty.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6027, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "incrementDifficulty"}); if(isFirstDiffInVariation) { var currentVariationIndex = this.get_availableVariations().indexOf(this.selectedVariation); var prevVariation = this.get_availableVariations()[currentVariationIndex - 1]; this.set_selectedVariation(prevVariation); var prevDifficulty = this.get_availableDifficulties()[this.get_availableDifficulties().length - 1]; this.set_selectedDifficulty(prevDifficulty); funkin_Conductor.get_instance().mapTimeChanges(this.get_currentSongMetadata().timeChanges); this.updateTimeSignature(); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); } else { var prevDifficulty = this.get_availableDifficulties()[currentDifficultyIndex - 1]; this.set_selectedDifficulty(prevDifficulty); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); } } else { haxe_Log.trace("Increment difficulty.",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6058, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "incrementDifficulty"}); if(isLastDiffInVariation) { var currentVariationIndex = this.get_availableVariations().indexOf(this.selectedVariation); var nextVariation = this.get_availableVariations()[currentVariationIndex + 1]; this.set_selectedVariation(nextVariation); var nextDifficulty = this.get_availableDifficulties()[0]; this.set_selectedDifficulty(nextDifficulty); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); } else { var nextDifficulty = this.get_availableDifficulties()[currentDifficultyIndex + 1]; this.set_selectedDifficulty(nextDifficulty); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); } } } ,moveSongToScrollPosition: function() { if(this.audioInstTrack != null) { this.audioInstTrack.set_time(this.get_scrollPositionInMs() + this.get_playheadPositionInMs() - funkin_Conductor.get_instance().instrumentalOffset); funkin_Conductor.get_instance().update(this.audioInstTrack._time); this.audioVocalTrackGroup.set_time(this.audioInstTrack._time); } this.noteDisplayDirty = true; } ,easeSongToScrollPosition: function(targetScrollPosition) { if(this.currentScrollEase != null) { this.cancelScrollEase(this.currentScrollEase); } this.currentScrollEase = flixel_tweens_FlxTween.tween(this,{ scrollPositionInPixels : targetScrollPosition},funkin_ui_debug_charting_ChartEditorState.SCROLL_EASE_DURATION,{ ease : flixel_tweens_FlxEase.quintInOut, onUpdate : $bind(this,this.onScrollEaseUpdate), onComplete : $bind(this,this.cancelScrollEase), type : 8}); } ,onScrollEaseUpdate: function(_) { this.moveSongToScrollPosition(); } ,cancelScrollEase: function(_) { if(this.currentScrollEase != null) { var targetScrollPosition = this.currentScrollEase._properties.scrollPositionInPixels; this.currentScrollEase.cancel(); this.currentScrollEase = null; this.set_scrollPositionInPixels(targetScrollPosition); } } ,resetConductorAfterTest: function(_) { this.persistentUpdate = true; this.persistentDraw = true; if(this.displayAutosavePopup) { this.displayAutosavePopup = false; } this.moveSongToScrollPosition(); this.fadeInWelcomeMusic(funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DELAY,funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DURATION); var tmp = this.menubarItemVolumeInstrumental.get_value(); var instTargetVolume = tmp != null ? tmp : 1.0; var tmp = this.menubarItemVolumeVocalsPlayer.get_value(); var vocalPlayerTargetVolume = tmp != null ? tmp : 1.0; var tmp = this.menubarItemVolumeVocalsOpponent.get_value(); var vocalOpponentTargetVolume = tmp != null ? tmp : 1.0; if(this.audioInstTrack != null) { this.audioInstTrack.set_volume(instTargetVolume); this.audioInstTrack.onComplete = null; } if(this.audioVocalTrackGroup != null) { this.audioVocalTrackGroup.set_playerVolume(vocalPlayerTargetVolume); this.audioVocalTrackGroup.set_opponentVolume(vocalOpponentTargetVolume); } } ,updateTimeSignature: function() { funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateTheme(this); this.gridTiledSprite.loadGraphic(this.gridBitmap); this.measureTicks.reloadTickBitmap(); } ,handleNotePreview: function() { if(this.notePreviewDirty && this.notePreview != null) { this.set_notePreviewDirty(false); this.notePreview.erase(); this.notePreview.addNotes(this.get_currentSongChartNoteData(),this.get_songLengthInMs() | 0); this.notePreview.addSelectedNotes(this.currentNoteSelection,this.get_songLengthInMs() | 0); this.notePreview.addEvents(this.get_currentSongChartEventData(),this.get_songLengthInMs() | 0); } if(this.notePreviewViewportBoundsDirty) { this.setNotePreviewViewportBounds(this.calculateNotePreviewViewportBounds()); this.notePreviewViewportBoundsDirty = false; } } ,handleMenubar: function() { if(this.commandHistoryDirty) { this.commandHistoryDirty = false; if(this.undoHistory.length == 0) { this.menubarItemUndo.set_disabled(true); this.menubarItemUndo.set_text("Undo"); } else { this.menubarItemUndo.set_disabled(false); this.menubarItemUndo.set_text("Undo " + this.undoHistory[this.undoHistory.length - 1].toString()); } if(this.redoHistory.length == 0) { this.menubarItemRedo.set_disabled(true); this.menubarItemRedo.set_text("Redo"); } else { this.menubarItemRedo.set_disabled(false); this.menubarItemRedo.set_text("Redo " + this.redoHistory[this.redoHistory.length - 1].toString()); } } } ,handleHitsounds: function(oldSongPosition,newSongPosition) { if(!this.get_hitsoundsEnabled()) { return; } var _g = 0; var _g1 = this.get_currentSongChartNoteData(); while(_g < _g1.length) { var noteData = _g1[_g]; ++_g; if(noteData.time < oldSongPosition) { continue; } if(noteData.time > newSongPosition) { return; } var tempNote = new funkin_play_notes_NoteSprite(funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchDefault()); tempNote.noteData = noteData; var this1 = tempNote.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var event = new funkin_modding_events_HitNoteScriptEvent(tempNote,0.0,0,"perfect",false,0); this.dispatchEvent(event); if(event.eventCanceled) { continue; } switch(noteData.getStrumlineIndex()) { case 0: if(this.hitsoundVolumePlayer > 0) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/hitNotePlayer"),this.hitsoundVolumePlayer); } break; case 1: if(this.hitsoundVolumeOpponent > 0) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(this,funkin_Paths.sound("chartingSounds/hitNoteOpponent"),this.hitsoundVolumeOpponent); } break; } } } ,stopAudioPlayback: function() { if(this.audioInstTrack != null) { this.audioInstTrack.pause(); } this.audioVocalTrackGroup.pause(); this.playbarPlay.set_text(">"); } ,toggleAudioPlayback: function() { if(this.audioInstTrack == null) { return; } if(this.audioInstTrack.get_isPlaying()) { this.stopAudioPlayback(); this.fadeInWelcomeMusic(funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DELAY,funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DURATION); } else { this.startAudioPlayback(); this.stopWelcomeMusic(); } } ,postLoadInstrumental: function() { var _gthis = this; if(this.audioInstTrack != null) { this.audioInstTrack.onComplete = function() { if(_gthis.audioInstTrack != null) { _gthis.audioInstTrack.pause(); _gthis.audioInstTrack.set_time(_gthis.audioInstTrack._length); } _gthis.audioVocalTrackGroup.pause(); }; } else { haxe_Log.trace("ERROR: Instrumental track is null!",{ fileName : "source/funkin/ui/debug/charting/ChartEditorState.hx", lineNumber : 6367, className : "funkin.ui.debug.charting.ChartEditorState", methodName : "postLoadInstrumental"}); } var tmp = this.audioInstTrack; var tmp1 = tmp != null ? tmp._length : null; this.set_songLengthInMs((tmp1 != null ? tmp1 : 1000.0) + funkin_Conductor.get_instance().instrumentalOffset); this.healthIconsDirty = true; } ,hardRefreshOffsetsToolbox: function() { var offsetsToolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT); if(offsetsToolbox != null) { offsetsToolbox.refreshAudioPreview(); offsetsToolbox.refresh(); } } ,hardRefreshFreeplayToolbox: function() { var freeplayToolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox(this,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_FREEPLAY_LAYOUT); if(freeplayToolbox != null) { freeplayToolbox.refreshAudioPreview(); freeplayToolbox.refresh(); } } ,clearVocals: function() { this.audioVocalTrackGroup.clear(); } ,isNoteSelected: function(note) { if(note != null) { return this.currentNoteSelection.indexOf(note) != -1; } else { return false; } } ,destroy: function() { haxe_ui_backend_flixel_UIState.prototype.destroy.call(this); this.cleanupAutoSave(); funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.closeAllMenus(this); flixel_FlxG.mouse.set_visible(false); funkin_input_Cursor.set_cursorMode(null); funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection = null; if(this.welcomeMusic != null) { this.welcomeMusic.destroy(); } if(this.audioInstTrack != null) { this.audioInstTrack.destroy(); } if(this.audioVocalTrackGroup != null) { this.audioVocalTrackGroup.destroy(); } } ,applyCanQuickSave: function() { if(this.menubarItemSaveChart == null) { return; } if(this.get_currentWorkingFilePath() == null) { this.menubarItemSaveChart.set_disabled(true); } else { this.menubarItemSaveChart.set_disabled(false); } } ,applyWindowTitle: function() { var inner = "New Chart"; var cwfp = this.get_currentWorkingFilePath(); if(cwfp != null) { inner = cwfp; } if(this.get_currentWorkingFilePath() == null || this.saveDataDirty) { inner += "*"; } funkin_util_WindowUtil.setWindowTitle("Friday Night Funkin' Chart Editor - " + inner); } ,resetWindowTitle: function() { funkin_util_WindowUtil.setWindowTitle("Friday Night Funkin'"); } ,registerBehaviours: function() { haxe_ui_backend_flixel_UIState.prototype.registerBehaviours.call(this); } ,playbarDifficulty: null ,playbarBPM: null ,playbar: null ,menubarLabelSongVolume: null ,menubarLabelHitsoundVolume: null ,menubarItemWelcomeDialog: null ,menubarItemUserGuide: null ,menubarItemToggleToolboxPlaytestProperties: null ,menubarItemToggleToolboxPlayerPreview: null ,menubarItemToggleToolboxOpponentPreview: null ,menubarItemToggleToolboxOffsets: null ,menubarItemToggleToolboxNoteData: null ,menubarItemToggleToolboxMetadata: null ,menubarItemToggleToolboxFreeplay: null ,menubarItemToggleToolboxEventData: null ,menubarItemToggleToolboxDifficulty: null ,menubarItemSelectAllNotes: null ,menubarItemSelectAllEvents: null ,menubarItemPlaytestMinimal: null ,menubarItemPlaytestFull: null ,menubarItemGoToBackupsFolder: null ,menubarItemAbout: null ,menuBarItemThemeLight: null ,menuBarItemThemeDark: null ,menuBarItemInputStyleWASD: null ,menuBarItemInputStyleNumberKeys: null ,menuBarItemInputStyleNone: null ,__class__: funkin_ui_debug_charting_ChartEditorState ,__properties__: $extend(haxe_ui_backend_flixel_UIState.prototype.__properties__,{set_currentInstrumentalId:"set_currentInstrumentalId",get_currentInstrumentalId:"get_currentInstrumentalId",set_selectedDifficulty:"set_selectedDifficulty",set_selectedVariation:"set_selectedVariation",set_currentVocalOffsetOpponent:"set_currentVocalOffsetOpponent",get_currentVocalOffsetOpponent:"get_currentVocalOffsetOpponent",set_currentVocalOffsetPlayer:"set_currentVocalOffsetPlayer",get_currentVocalOffsetPlayer:"get_currentVocalOffsetPlayer",set_currentInstrumentalOffset:"set_currentInstrumentalOffset",get_currentInstrumentalOffset:"get_currentInstrumentalOffset",set_currentSongOffsets:"set_currentSongOffsets",get_currentSongOffsets:"get_currentSongOffsets",set_currentOpponentChar:"set_currentOpponentChar",get_currentOpponentChar:"get_currentOpponentChar",set_currentPlayerChar:"set_currentPlayerChar",get_currentPlayerChar:"get_currentPlayerChar",set_currentSongArtist:"set_currentSongArtist",get_currentSongArtist:"get_currentSongArtist",get_currentSongId:"get_currentSongId",set_currentSongName:"set_currentSongName",get_currentSongName:"get_currentSongName",set_currentSongStage:"set_currentSongStage",get_currentSongStage:"get_currentSongStage",set_currentSongFreeplayPreviewEnd:"set_currentSongFreeplayPreviewEnd",get_currentSongFreeplayPreviewEnd:"get_currentSongFreeplayPreviewEnd",set_currentSongFreeplayPreviewStart:"set_currentSongFreeplayPreviewStart",get_currentSongFreeplayPreviewStart:"get_currentSongFreeplayPreviewStart",set_currentSongNoteStyle:"set_currentSongNoteStyle",get_currentSongNoteStyle:"get_currentSongNoteStyle",set_currentSongChartDifficultyRating:"set_currentSongChartDifficultyRating",get_currentSongChartDifficultyRating:"get_currentSongChartDifficultyRating",set_currentSongChartEventData:"set_currentSongChartEventData",get_currentSongChartEventData:"get_currentSongChartEventData",set_currentSongChartNoteData:"set_currentSongChartNoteData",get_currentSongChartNoteData:"get_currentSongChartNoteData",set_currentSongChartScrollSpeed:"set_currentSongChartScrollSpeed",get_currentSongChartScrollSpeed:"get_currentSongChartScrollSpeed",set_currentSongChartData:"set_currentSongChartData",get_currentSongChartData:"get_currentSongChartData",set_currentSongMetadata:"set_currentSongMetadata",get_currentSongMetadata:"get_currentSongMetadata",get_allDifficulties:"get_allDifficulties",get_availableDifficulties:"get_availableDifficulties",get_availableVariations:"get_availableVariations",set_currentWorkingFilePath:"set_currentWorkingFilePath",get_currentWorkingFilePath:"get_currentWorkingFilePath",set_previousWorkingFilePaths:"set_previousWorkingFilePaths",set_shouldShowBackupAvailableDialog:"set_shouldShowBackupAvailableDialog",get_shouldShowBackupAvailableDialog:"get_shouldShowBackupAvailableDialog",set_saveDataDirty:"set_saveDataDirty",set_notePreviewDirty:"set_notePreviewDirty",set_currentNoteSelection:"set_currentNoteSelection",set_currentPlaceNoteData:"set_currentPlaceNoteData",get_hitsoundsEnabled:"get_hitsoundsEnabled",get_isCursorOverHaxeUI:"get_isCursorOverHaxeUI",get_isHaxeUIFocused:"get_isHaxeUIFocused",set_currentTheme:"set_currentTheme",set_isViewDownscroll:"set_isViewDownscroll",get_noteSnapRatio:"get_noteSnapRatio",get_noteSnapQuant:"get_noteSnapQuant",set_playheadPositionInMs:"set_playheadPositionInMs",get_playheadPositionInMs:"get_playheadPositionInMs",set_playheadPositionInSteps:"set_playheadPositionInSteps",get_playheadPositionInSteps:"get_playheadPositionInSteps",set_playheadPositionInPixels:"set_playheadPositionInPixels",set_scrollPositionInMs:"set_scrollPositionInMs",get_scrollPositionInMs:"get_scrollPositionInMs",set_scrollPositionInSteps:"set_scrollPositionInSteps",get_scrollPositionInSteps:"get_scrollPositionInSteps",set_scrollPositionInPixels:"set_scrollPositionInPixels",set_songLengthInPixels:"set_songLengthInPixels",get_songLengthInPixels:"get_songLengthInPixels",set_songLengthInSteps:"set_songLengthInSteps",get_songLengthInSteps:"get_songLengthInSteps",set_songLengthInMs:"set_songLengthInMs",get_songLengthInMs:"get_songLengthInMs"}) }); var funkin_ui_debug_charting_ChartEditorLiveInputStyle = $hxEnums["funkin.ui.debug.charting.ChartEditorLiveInputStyle"] = { __ename__:"funkin.ui.debug.charting.ChartEditorLiveInputStyle",__constructs__:null ,None: {_hx_name:"None",_hx_index:0,__enum__:"funkin.ui.debug.charting.ChartEditorLiveInputStyle",toString:$estr} ,NumberKeys: {_hx_name:"NumberKeys",_hx_index:1,__enum__:"funkin.ui.debug.charting.ChartEditorLiveInputStyle",toString:$estr} ,WASDKeys: {_hx_name:"WASDKeys",_hx_index:2,__enum__:"funkin.ui.debug.charting.ChartEditorLiveInputStyle",toString:$estr} }; funkin_ui_debug_charting_ChartEditorLiveInputStyle.__constructs__ = [funkin_ui_debug_charting_ChartEditorLiveInputStyle.None,funkin_ui_debug_charting_ChartEditorLiveInputStyle.NumberKeys,funkin_ui_debug_charting_ChartEditorLiveInputStyle.WASDKeys]; funkin_ui_debug_charting_ChartEditorLiveInputStyle.__empty_constructs__ = [funkin_ui_debug_charting_ChartEditorLiveInputStyle.None,funkin_ui_debug_charting_ChartEditorLiveInputStyle.NumberKeys,funkin_ui_debug_charting_ChartEditorLiveInputStyle.WASDKeys]; var funkin_ui_debug_charting_ChartEditorTheme = $hxEnums["funkin.ui.debug.charting.ChartEditorTheme"] = { __ename__:"funkin.ui.debug.charting.ChartEditorTheme",__constructs__:null ,Light: {_hx_name:"Light",_hx_index:0,__enum__:"funkin.ui.debug.charting.ChartEditorTheme",toString:$estr} ,Dark: {_hx_name:"Dark",_hx_index:1,__enum__:"funkin.ui.debug.charting.ChartEditorTheme",toString:$estr} }; funkin_ui_debug_charting_ChartEditorTheme.__constructs__ = [funkin_ui_debug_charting_ChartEditorTheme.Light,funkin_ui_debug_charting_ChartEditorTheme.Dark]; funkin_ui_debug_charting_ChartEditorTheme.__empty_constructs__ = [funkin_ui_debug_charting_ChartEditorTheme.Light,funkin_ui_debug_charting_ChartEditorTheme.Dark]; var funkin_ui_debug_charting_commands_ChartEditorCommand = function() { }; $hxClasses["funkin.ui.debug.charting.commands.ChartEditorCommand"] = funkin_ui_debug_charting_commands_ChartEditorCommand; funkin_ui_debug_charting_commands_ChartEditorCommand.__name__ = "funkin.ui.debug.charting.commands.ChartEditorCommand"; funkin_ui_debug_charting_commands_ChartEditorCommand.__isInterface__ = true; funkin_ui_debug_charting_commands_ChartEditorCommand.prototype = { execute: null ,undo: null ,shouldAddToHistory: null ,toString: null ,__class__: funkin_ui_debug_charting_commands_ChartEditorCommand }; var funkin_ui_debug_charting_commands_AddEventsCommand = function(events,appendToSelection) { if(appendToSelection == null) { appendToSelection = false; } this.events = events; this.appendToSelection = appendToSelection; }; $hxClasses["funkin.ui.debug.charting.commands.AddEventsCommand"] = funkin_ui_debug_charting_commands_AddEventsCommand; funkin_ui_debug_charting_commands_AddEventsCommand.__name__ = "funkin.ui.debug.charting.commands.AddEventsCommand"; funkin_ui_debug_charting_commands_AddEventsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_AddEventsCommand.prototype = { events: null ,appendToSelection: null ,execute: function(state) { var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; state.get_currentSongChartEventData().push(event); } if(this.appendToSelection) { state.currentEventSelection = state.currentEventSelection.concat(this.events); } else { state.set_currentNoteSelection([]); state.currentEventSelection = this.events; } funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteLay")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); state.set_currentNoteSelection([]); state.currentEventSelection = []; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.events.length > 0; } ,toString: function() { var len = this.events.length; return "Add " + len + " Events"; } ,__class__: funkin_ui_debug_charting_commands_AddEventsCommand }; var funkin_ui_debug_charting_commands_AddNotesCommand = function(notes,appendToSelection) { if(appendToSelection == null) { appendToSelection = false; } this.notes = notes; this.appendToSelection = appendToSelection; }; $hxClasses["funkin.ui.debug.charting.commands.AddNotesCommand"] = funkin_ui_debug_charting_commands_AddNotesCommand; funkin_ui_debug_charting_commands_AddNotesCommand.__name__ = "funkin.ui.debug.charting.commands.AddNotesCommand"; funkin_ui_debug_charting_commands_AddNotesCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_AddNotesCommand.prototype = { notes: null ,appendToSelection: null ,execute: function(state) { var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; state.get_currentSongChartNoteData().push(note); } if(this.appendToSelection) { state.set_currentNoteSelection(state.currentNoteSelection.concat(this.notes)); } else { state.set_currentNoteSelection(this.notes); state.currentEventSelection = []; } funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteLay")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); state.set_currentNoteSelection([]); state.currentEventSelection = []; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/undo")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.notes.length > 0; } ,toString: function() { if(this.notes.length == 1) { var dir = this.notes[0].getDirectionName(); return "Add " + dir + " Note"; } return "Add " + this.notes.length + " Notes"; } ,__class__: funkin_ui_debug_charting_commands_AddNotesCommand }; var funkin_ui_debug_charting_commands_ChangeStartingBPMCommand = function(targetBPM) { this.previousBPM = 100; this.targetBPM = targetBPM; }; $hxClasses["funkin.ui.debug.charting.commands.ChangeStartingBPMCommand"] = funkin_ui_debug_charting_commands_ChangeStartingBPMCommand; funkin_ui_debug_charting_commands_ChangeStartingBPMCommand.__name__ = "funkin.ui.debug.charting.commands.ChangeStartingBPMCommand"; funkin_ui_debug_charting_commands_ChangeStartingBPMCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_ChangeStartingBPMCommand.prototype = { targetBPM: null ,previousBPM: null ,execute: function(state) { var timeChanges = state.get_currentSongMetadata().timeChanges; if(timeChanges == null || timeChanges.length == 0) { this.previousBPM = 100; timeChanges = [new funkin_data_song_SongTimeChange(0,this.targetBPM)]; } else { this.previousBPM = timeChanges[0].bpm; timeChanges[0].bpm = this.targetBPM; } state.get_currentSongMetadata().timeChanges = timeChanges; state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.notePreviewViewportBoundsDirty = true; state.set_scrollPositionInPixels(0); funkin_Conductor.get_instance().mapTimeChanges(state.get_currentSongMetadata().timeChanges); state.updateGridHeight(); } ,undo: function(state) { var timeChanges = state.get_currentSongMetadata().timeChanges; if(timeChanges == null || timeChanges.length == 0) { timeChanges = [new funkin_data_song_SongTimeChange(0,this.previousBPM)]; } else { timeChanges[0].bpm = this.previousBPM; } state.get_currentSongMetadata().timeChanges = timeChanges; state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.notePreviewViewportBoundsDirty = true; state.set_scrollPositionInPixels(0); funkin_Conductor.get_instance().mapTimeChanges(state.get_currentSongMetadata().timeChanges); state.updateGridHeight(); } ,shouldAddToHistory: function(state) { return this.targetBPM != this.previousBPM; } ,toString: function() { return "Change Starting BPM to " + this.targetBPM; } ,__class__: funkin_ui_debug_charting_commands_ChangeStartingBPMCommand }; var funkin_ui_debug_charting_commands_CopyItemsCommand = function(notes,events) { this.notes = notes; this.events = events; }; $hxClasses["funkin.ui.debug.charting.commands.CopyItemsCommand"] = funkin_ui_debug_charting_commands_CopyItemsCommand; funkin_ui_debug_charting_commands_CopyItemsCommand.__name__ = "funkin.ui.debug.charting.commands.CopyItemsCommand"; funkin_ui_debug_charting_commands_CopyItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_CopyItemsCommand.prototype = { notes: null ,events: null ,execute: function(state) { var timeOffset = state.currentNoteSelection.length > 0 ? state.currentNoteSelection[0].time | 0 : null; if(state.currentEventSelection.length > 0) { if(timeOffset == null || state.currentEventSelection[0].time < timeOffset) { timeOffset = state.currentEventSelection[0].time | 0; } } funkin_data_song_SongDataUtils.writeItemsToClipboard({ notes : funkin_data_song_SongDataUtils.buildNoteClipboard(state.currentNoteSelection,timeOffset), events : funkin_data_song_SongDataUtils.buildEventClipboard(state.currentEventSelection,timeOffset)}); this.performVisuals(state); } ,performVisuals: function(state) { var hasNotes = false; var hasEvents = false; if(state.currentNoteSelection.length > 0) { hasNotes = true; var _g = 0; var _g1 = state.renderedNotes.group.members; while(_g < _g1.length) { var note = [_g1[_g]]; ++_g; if(state.isNoteSelected(note[0].noteData)) { flixel_tweens_FlxTween.globalManager.cancelTweensOf(note[0]); flixel_tweens_FlxTween.globalManager.cancelTweensOf(note[0].scale); note[0].playNoteAnimation(); var prevX = note[0].scale.x; var prevY = note[0].scale.y; note[0].scale.set_x(note[0].scale.x * 1.2); note[0].scale.set_y(note[0].scale.y * 1.2); note[0].set_angle(flixel_FlxG.random.float(0,100) < 50 ? -10 : 10); flixel_tweens_FlxTween.tween(note[0],{ "angle" : 0},0.8,{ ease : flixel_tweens_FlxEase.elasticOut}); flixel_tweens_FlxTween.tween(note[0].scale,{ "y" : prevX, "x" : prevY},0.7,{ ease : flixel_tweens_FlxEase.elasticOut, onComplete : (function(note) { return function(_) { note[0].playNoteAnimation(); }; })(note)}); } } } if(state.currentEventSelection.length > 0) { hasEvents = true; var _g = 0; var _g1 = state.renderedEvents.group.members; while(_g < _g1.length) { var event = [_g1[_g]]; ++_g; if(state.isEventSelected(event[0].eventData)) { flixel_tweens_FlxTween.globalManager.cancelTweensOf(event[0]); flixel_tweens_FlxTween.globalManager.cancelTweensOf(event[0].scale); event[0].playAnimation(); var prevX = event[0].scale.x; var prevY = event[0].scale.y; event[0].scale.set_x(event[0].scale.x * 1.2); event[0].scale.set_y(event[0].scale.y * 1.2); event[0].set_angle(flixel_FlxG.random.float(0,100) < 50 ? -10 : 10); flixel_tweens_FlxTween.tween(event[0],{ "angle" : 0},0.8,{ ease : flixel_tweens_FlxEase.elasticOut}); flixel_tweens_FlxTween.tween(event[0].scale,{ "y" : prevX, "x" : prevY},0.7,{ ease : flixel_tweens_FlxEase.elasticOut, onComplete : (function(event) { return function(_) { event[0].playAnimation(); }; })(event)}); } } } if((hasNotes || hasEvents) && state.txtCopyNotif != null) { var copiedString = ""; if(hasNotes) { var copiedNotes = state.currentNoteSelection.length; copiedString += "" + copiedNotes + " note"; if(copiedNotes > 1) { copiedString += "s"; } if(hasEvents) { copiedString += " and "; } } if(hasEvents) { var copiedEvents = state.currentEventSelection.length; copiedString += "" + state.currentEventSelection.length + " event"; if(copiedEvents > 1) { copiedString += "s"; } } state.txtCopyNotif.set_visible(true); state.txtCopyNotif.set_text("Copied " + copiedString + " to clipboard"); state.txtCopyNotif.set_x(flixel_FlxG.mouse.x - state.txtCopyNotif.get_width() / 2); state.txtCopyNotif.set_y(flixel_FlxG.mouse.y - 16); flixel_tweens_FlxTween.tween(state.txtCopyNotif,{ y : state.txtCopyNotif.y - 32},0.5,{ type : 8, ease : flixel_tweens_FlxEase.quadOut, onComplete : function(_) { state.txtCopyNotif.set_visible(false); }}); } } ,undo: function(state) { } ,shouldAddToHistory: function(state) { return false; } ,toString: function() { var len = this.notes.length + this.events.length; if(this.notes.length == 0) { return "Copy " + len + " Events to Clipboard"; } else if(this.events.length == 0) { return "Copy " + len + " Notes to Clipboard"; } else { return "Copy " + len + " Items to Clipboard"; } } ,__class__: funkin_ui_debug_charting_commands_CopyItemsCommand }; var funkin_ui_debug_charting_commands_CutItemsCommand = function(notes,events) { this.notes = notes; this.events = events; }; $hxClasses["funkin.ui.debug.charting.commands.CutItemsCommand"] = funkin_ui_debug_charting_commands_CutItemsCommand; funkin_ui_debug_charting_commands_CutItemsCommand.__name__ = "funkin.ui.debug.charting.commands.CutItemsCommand"; funkin_ui_debug_charting_commands_CutItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_CutItemsCommand.prototype = { notes: null ,events: null ,execute: function(state) { funkin_data_song_SongDataUtils.writeItemsToClipboard({ notes : funkin_data_song_SongDataUtils.buildNoteClipboard(this.notes), events : funkin_data_song_SongDataUtils.buildEventClipboard(this.events)}); state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); state.set_currentNoteSelection([]); state.currentEventSelection = []; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.notes)); state.set_currentSongChartEventData(state.get_currentSongChartEventData().concat(this.events)); state.set_currentNoteSelection(this.notes); state.currentEventSelection = this.events; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { if(this.notes.length <= 0) { return this.events.length > 0; } else { return true; } } ,toString: function() { var len = this.notes.length + this.events.length; if(this.notes.length == 0) { return "Cut " + len + " Events to Clipboard"; } else if(this.events.length == 0) { return "Cut " + len + " Notes to Clipboard"; } else { return "Cut " + len + " Items to Clipboard"; } } ,__class__: funkin_ui_debug_charting_commands_CutItemsCommand }; var funkin_ui_debug_charting_commands_DeselectAllItemsCommand = function() { this.previousEventSelection = []; this.previousNoteSelection = []; }; $hxClasses["funkin.ui.debug.charting.commands.DeselectAllItemsCommand"] = funkin_ui_debug_charting_commands_DeselectAllItemsCommand; funkin_ui_debug_charting_commands_DeselectAllItemsCommand.__name__ = "funkin.ui.debug.charting.commands.DeselectAllItemsCommand"; funkin_ui_debug_charting_commands_DeselectAllItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_DeselectAllItemsCommand.prototype = { previousNoteSelection: null ,previousEventSelection: null ,execute: function(state) { this.previousNoteSelection = state.currentNoteSelection; this.previousEventSelection = state.currentEventSelection; state.set_currentNoteSelection([]); state.currentEventSelection = []; state.noteDisplayDirty = true; } ,undo: function(state) { state.set_currentNoteSelection(this.previousNoteSelection); state.currentEventSelection = this.previousEventSelection; state.noteDisplayDirty = true; } ,shouldAddToHistory: function(state) { if(this.previousNoteSelection.length <= 0) { return this.previousEventSelection.length > 0; } else { return true; } } ,toString: function() { return "Deselect All Items"; } ,__class__: funkin_ui_debug_charting_commands_DeselectAllItemsCommand }; var funkin_ui_debug_charting_commands_DeselectItemsCommand = function(notes,events) { this.notes = notes; this.events = events; }; $hxClasses["funkin.ui.debug.charting.commands.DeselectItemsCommand"] = funkin_ui_debug_charting_commands_DeselectItemsCommand; funkin_ui_debug_charting_commands_DeselectItemsCommand.__name__ = "funkin.ui.debug.charting.commands.DeselectItemsCommand"; funkin_ui_debug_charting_commands_DeselectItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_DeselectItemsCommand.prototype = { notes: null ,events: null ,execute: function(state) { state.set_currentNoteSelection(funkin_data_song_SongDataUtils.subtractNotes(state.currentNoteSelection,this.notes)); state.currentEventSelection = funkin_data_song_SongDataUtils.subtractEvents(state.currentEventSelection,this.events); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); } ,undo: function(state) { var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; state.currentNoteSelection.push(note); } var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; state.currentEventSelection.push(event); } state.noteDisplayDirty = true; state.set_notePreviewDirty(true); } ,shouldAddToHistory: function(state) { if(this.notes.length <= 0) { return this.events.length > 0; } else { return true; } } ,toString: function() { var isPlural = this.notes.length + this.events.length > 1; var notesOnly = this.notes.length > 0 && this.events.length == 0; var eventsOnly = this.notes.length == 0 && this.events.length > 0; if(notesOnly) { return "Deselect " + this.notes.length + " " + (isPlural ? "Notes" : "Note"); } else if(eventsOnly) { return "Deselect " + this.events.length + " " + (isPlural ? "Events" : "Event"); } return "Deselect " + (this.notes.length + this.events.length) + " Items"; } ,__class__: funkin_ui_debug_charting_commands_DeselectItemsCommand }; var funkin_ui_debug_charting_commands_ExtendNoteLengthCommand = function(note,newLength,unit) { if(unit == null) { unit = funkin_ui_debug_charting_commands_Unit.MILLISECONDS; } this.note = note; this.oldLength = note.length; this.newLength = newLength; this.unit = unit; }; $hxClasses["funkin.ui.debug.charting.commands.ExtendNoteLengthCommand"] = funkin_ui_debug_charting_commands_ExtendNoteLengthCommand; funkin_ui_debug_charting_commands_ExtendNoteLengthCommand.__name__ = "funkin.ui.debug.charting.commands.ExtendNoteLengthCommand"; funkin_ui_debug_charting_commands_ExtendNoteLengthCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_ExtendNoteLengthCommand.prototype = { note: null ,oldLength: null ,newLength: null ,unit: null ,execute: function(state) { switch(this.unit._hx_index) { case 0: this.note.set_length(this.newLength); break; case 1: this.note.setStepLength(this.newLength); break; } state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/undo")); this.note.set_length(this.oldLength); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.oldLength != this.newLength; } ,toString: function() { if(this.oldLength == 0) { return "Add Hold to Note"; } else if(this.newLength == 0) { return "Remove Hold from Note"; } else { return "Extend Hold Note Length"; } } ,__class__: funkin_ui_debug_charting_commands_ExtendNoteLengthCommand }; var funkin_ui_debug_charting_commands_Unit = $hxEnums["funkin.ui.debug.charting.commands.Unit"] = { __ename__:"funkin.ui.debug.charting.commands.Unit",__constructs__:null ,MILLISECONDS: {_hx_name:"MILLISECONDS",_hx_index:0,__enum__:"funkin.ui.debug.charting.commands.Unit",toString:$estr} ,STEPS: {_hx_name:"STEPS",_hx_index:1,__enum__:"funkin.ui.debug.charting.commands.Unit",toString:$estr} }; funkin_ui_debug_charting_commands_Unit.__constructs__ = [funkin_ui_debug_charting_commands_Unit.MILLISECONDS,funkin_ui_debug_charting_commands_Unit.STEPS]; funkin_ui_debug_charting_commands_Unit.__empty_constructs__ = [funkin_ui_debug_charting_commands_Unit.MILLISECONDS,funkin_ui_debug_charting_commands_Unit.STEPS]; var funkin_ui_debug_charting_commands_FlipNotesCommand = function(notes) { this.flippedNotes = []; this.notes = []; this.notes = notes; this.flippedNotes = funkin_data_song_SongDataUtils.flipNotes(notes); }; $hxClasses["funkin.ui.debug.charting.commands.FlipNotesCommand"] = funkin_ui_debug_charting_commands_FlipNotesCommand; funkin_ui_debug_charting_commands_FlipNotesCommand.__name__ = "funkin.ui.debug.charting.commands.FlipNotesCommand"; funkin_ui_debug_charting_commands_FlipNotesCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_FlipNotesCommand.prototype = { notes: null ,flippedNotes: null ,execute: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.flippedNotes)); state.set_currentNoteSelection(this.flippedNotes); state.currentEventSelection = []; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.flippedNotes)); state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.notes)); state.set_currentNoteSelection(this.notes); state.currentEventSelection = []; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.notes.length > 0; } ,toString: function() { var len = this.notes.length; return "Flip " + len + " Notes"; } ,__class__: funkin_ui_debug_charting_commands_FlipNotesCommand }; var funkin_ui_debug_charting_commands_InvertSelectedItemsCommand = function() { this.previousEventSelection = []; this.previousNoteSelection = []; }; $hxClasses["funkin.ui.debug.charting.commands.InvertSelectedItemsCommand"] = funkin_ui_debug_charting_commands_InvertSelectedItemsCommand; funkin_ui_debug_charting_commands_InvertSelectedItemsCommand.__name__ = "funkin.ui.debug.charting.commands.InvertSelectedItemsCommand"; funkin_ui_debug_charting_commands_InvertSelectedItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_InvertSelectedItemsCommand.prototype = { previousNoteSelection: null ,previousEventSelection: null ,execute: function(state) { this.previousNoteSelection = state.currentNoteSelection; this.previousEventSelection = state.currentEventSelection; state.set_currentNoteSelection(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.previousNoteSelection)); state.currentEventSelection = funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.previousEventSelection); state.noteDisplayDirty = true; } ,undo: function(state) { state.set_currentNoteSelection(this.previousNoteSelection); state.currentEventSelection = this.previousEventSelection; state.noteDisplayDirty = true; } ,shouldAddToHistory: function(state) { if(this.previousNoteSelection.length <= 0) { return this.previousEventSelection.length > 0; } else { return true; } } ,toString: function() { return "Invert Selected Items"; } ,__class__: funkin_ui_debug_charting_commands_InvertSelectedItemsCommand }; var funkin_ui_debug_charting_commands_MoveEventsCommand = function(events,offset) { var _g = []; var _g1 = 0; while(_g1 < events.length) { var event = events[_g1]; ++_g1; _g.push(funkin_data_song_SongEventData.clone(event)); } this.events = _g; this.offset = offset; this.movedEvents = []; }; $hxClasses["funkin.ui.debug.charting.commands.MoveEventsCommand"] = funkin_ui_debug_charting_commands_MoveEventsCommand; funkin_ui_debug_charting_commands_MoveEventsCommand.__name__ = "funkin.ui.debug.charting.commands.MoveEventsCommand"; funkin_ui_debug_charting_commands_MoveEventsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_MoveEventsCommand.prototype = { events: null ,movedEvents: null ,offset: null ,execute: function(state) { state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); this.movedEvents = []; var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; var resultEvent = funkin_data_song_SongEventData.clone(event); resultEvent.set_time(funkin_util_tools_FloatTools.clamp(resultEvent.time + this.offset,0,funkin_Conductor.get_instance().getStepTimeInMs(state.get_songLengthInSteps() - state.get_noteSnapRatio()))); this.movedEvents.push(resultEvent); } state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); state.set_currentSongChartEventData(state.get_currentSongChartEventData().concat(this.movedEvents)); state.currentEventSelection = this.movedEvents; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteLay")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.movedEvents)); state.set_currentSongChartEventData(state.get_currentSongChartEventData().concat(this.events)); state.currentEventSelection = this.events; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.events.length > 0; } ,toString: function() { var len = this.events.length; return "Move " + len + " Events"; } ,__class__: funkin_ui_debug_charting_commands_MoveEventsCommand }; var funkin_ui_debug_charting_commands_MoveItemsCommand = function(notes,events,offset,columns) { this.notes = funkin_util_tools_ArrayTools.clone(notes); this.events = funkin_util_tools_ArrayTools.clone(events); this.offset = offset; this.columns = columns; this.movedNotes = []; this.movedEvents = []; }; $hxClasses["funkin.ui.debug.charting.commands.MoveItemsCommand"] = funkin_ui_debug_charting_commands_MoveItemsCommand; funkin_ui_debug_charting_commands_MoveItemsCommand.__name__ = "funkin.ui.debug.charting.commands.MoveItemsCommand"; funkin_ui_debug_charting_commands_MoveItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_MoveItemsCommand.prototype = { notes: null ,movedNotes: null ,events: null ,movedEvents: null ,offset: null ,columns: null ,execute: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); this.movedNotes = []; this.movedEvents = []; var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; var resultNote = funkin_data_song_SongNoteData.clone(note); resultNote.set_time(funkin_util_tools_FloatTools.clamp(resultNote.time + this.offset,0,funkin_Conductor.get_instance().getStepTimeInMs(state.get_songLengthInSteps() - state.get_noteSnapRatio()))); resultNote.data = funkin_ui_debug_charting_ChartEditorState.gridColumnToNoteData(funkin_util_tools_IntTools.clamp(funkin_ui_debug_charting_ChartEditorState.noteDataToGridColumn(resultNote.data) + this.columns,0,funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 - 1)); this.movedNotes.push(resultNote); } var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; var resultEvent = funkin_data_song_SongEventData.clone(event); resultEvent.set_time(funkin_util_tools_FloatTools.clamp(resultEvent.time + this.offset,0,funkin_Conductor.get_instance().getStepTimeInMs(state.get_songLengthInSteps() - state.get_noteSnapRatio()))); this.movedEvents.push(resultEvent); } state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.movedNotes)); state.set_currentSongChartEventData(state.get_currentSongChartEventData().concat(this.movedEvents)); state.set_currentNoteSelection(this.movedNotes); state.currentEventSelection = this.movedEvents; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteLay")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.movedNotes)); state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.movedEvents)); state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.notes)); state.set_currentSongChartEventData(state.get_currentSongChartEventData().concat(this.events)); state.set_currentNoteSelection(this.notes); state.currentEventSelection = this.events; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { if(this.notes.length <= 0) { return this.events.length > 0; } else { return true; } } ,toString: function() { var len = this.notes.length + this.events.length; return "Move " + len + " Items"; } ,__class__: funkin_ui_debug_charting_commands_MoveItemsCommand }; var funkin_ui_debug_charting_commands_MoveNotesCommand = function(notes,offset,columns) { var _g = []; var _g1 = 0; while(_g1 < notes.length) { var note = notes[_g1]; ++_g1; _g.push(funkin_data_song_SongNoteData.clone(note)); } this.notes = _g; this.offset = offset; this.columns = columns; this.movedNotes = []; }; $hxClasses["funkin.ui.debug.charting.commands.MoveNotesCommand"] = funkin_ui_debug_charting_commands_MoveNotesCommand; funkin_ui_debug_charting_commands_MoveNotesCommand.__name__ = "funkin.ui.debug.charting.commands.MoveNotesCommand"; funkin_ui_debug_charting_commands_MoveNotesCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_MoveNotesCommand.prototype = { notes: null ,movedNotes: null ,offset: null ,columns: null ,execute: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); this.movedNotes = []; var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; var resultNote = funkin_data_song_SongNoteData.clone(note); resultNote.set_time(funkin_util_tools_FloatTools.clamp(resultNote.time + this.offset,0,funkin_Conductor.get_instance().getStepTimeInMs(state.get_songLengthInSteps() - state.get_noteSnapRatio()))); resultNote.data = funkin_ui_debug_charting_ChartEditorState.gridColumnToNoteData(funkin_util_tools_IntTools.clamp(funkin_ui_debug_charting_ChartEditorState.noteDataToGridColumn(resultNote.data) + this.columns,0,funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 - 1)); this.movedNotes.push(resultNote); } state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.movedNotes)); state.set_currentNoteSelection(this.movedNotes); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteLay")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.movedNotes)); state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.notes)); state.set_currentNoteSelection(this.notes); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.notes.length > 0; } ,toString: function() { var len = this.notes.length; return "Move " + len + " Notes"; } ,__class__: funkin_ui_debug_charting_commands_MoveNotesCommand }; var funkin_ui_debug_charting_commands_PasteItemsCommand = function(targetTimestamp) { this.addedEvents = []; this.addedNotes = []; this.targetTimestamp = targetTimestamp; }; $hxClasses["funkin.ui.debug.charting.commands.PasteItemsCommand"] = funkin_ui_debug_charting_commands_PasteItemsCommand; funkin_ui_debug_charting_commands_PasteItemsCommand.__name__ = "funkin.ui.debug.charting.commands.PasteItemsCommand"; funkin_ui_debug_charting_commands_PasteItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_PasteItemsCommand.prototype = { targetTimestamp: null ,addedNotes: null ,addedEvents: null ,execute: function(state) { var currentClipboard = funkin_data_song_SongDataUtils.readItemsFromClipboard(); if(currentClipboard.valid != true) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failed to Paste","Could not parse clipboard contents."); return; } var stepEndOfSong = funkin_Conductor.get_instance().getTimeInSteps(state.get_songLengthInMs()); var stepCutoff = stepEndOfSong - 1.0; var msCutoff = funkin_Conductor.get_instance().getStepTimeInMs(stepCutoff); this.addedNotes = funkin_data_song_SongDataUtils.offsetSongNoteData(currentClipboard.notes,this.targetTimestamp | 0); this.addedNotes = funkin_data_song_SongDataUtils.clampSongNoteData(this.addedNotes,0.0,msCutoff); this.addedEvents = funkin_data_song_SongDataUtils.offsetSongEventData(currentClipboard.events,this.targetTimestamp | 0); this.addedEvents = funkin_data_song_SongDataUtils.clampSongEventData(this.addedEvents,0.0,msCutoff); state.set_currentSongChartNoteData(state.get_currentSongChartNoteData().concat(this.addedNotes)); state.set_currentSongChartEventData(state.get_currentSongChartEventData().concat(this.addedEvents)); state.set_currentNoteSelection(this.addedNotes.slice()); state.currentEventSelection = this.addedEvents.slice(); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Paste Successful","Successfully pasted clipboard contents."); } ,undo: function(state) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/undo")); state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.addedNotes)); state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.addedEvents)); state.set_currentNoteSelection([]); state.currentEventSelection = []; state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { if(this.addedNotes.length <= 0) { return this.addedEvents.length > 0; } else { return true; } } ,toString: function() { var currentClipboard = funkin_data_song_SongDataUtils.readItemsFromClipboard(); var len = currentClipboard.notes.length + currentClipboard.events.length; if(currentClipboard.notes.length == 0) { return "Paste " + len + " Events"; } else if(currentClipboard.events.length == 0) { return "Paste " + len + " Notes"; } else { return "Paste " + len + " Items"; } } ,__class__: funkin_ui_debug_charting_commands_PasteItemsCommand }; var funkin_ui_debug_charting_commands_RemoveEventsCommand = function(events) { this.events = events; }; $hxClasses["funkin.ui.debug.charting.commands.RemoveEventsCommand"] = funkin_ui_debug_charting_commands_RemoveEventsCommand; funkin_ui_debug_charting_commands_RemoveEventsCommand.__name__ = "funkin.ui.debug.charting.commands.RemoveEventsCommand"; funkin_ui_debug_charting_commands_RemoveEventsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_RemoveEventsCommand.prototype = { events: null ,execute: function(state) { if(this.events.length == 0) { return; } state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); state.currentEventSelection = []; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteErase")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { if(this.events.length == 0) { return; } var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; state.get_currentSongChartEventData().push(event); } state.currentEventSelection = this.events; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/undo")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.events.length > 0; } ,toString: function() { if(this.events.length == 1 && this.events[0] != null) { return "Remove Event"; } return "Remove " + this.events.length + " Events"; } ,__class__: funkin_ui_debug_charting_commands_RemoveEventsCommand }; var funkin_ui_debug_charting_commands_RemoveItemsCommand = function(notes,events) { this.notes = notes; this.events = events; }; $hxClasses["funkin.ui.debug.charting.commands.RemoveItemsCommand"] = funkin_ui_debug_charting_commands_RemoveItemsCommand; funkin_ui_debug_charting_commands_RemoveItemsCommand.__name__ = "funkin.ui.debug.charting.commands.RemoveItemsCommand"; funkin_ui_debug_charting_commands_RemoveItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_RemoveItemsCommand.prototype = { notes: null ,events: null ,execute: function(state) { if(this.notes.length + this.events.length == 0) { return; } state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); state.set_currentSongChartEventData(funkin_data_song_SongDataUtils.subtractEvents(state.get_currentSongChartEventData(),this.events)); state.set_currentNoteSelection([]); state.currentEventSelection = []; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteErase")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { if(this.notes.length + this.events.length == 0) { return; } var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; state.get_currentSongChartNoteData().push(note); } var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; state.get_currentSongChartEventData().push(event); } state.set_currentNoteSelection(this.notes); state.currentEventSelection = this.events; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/undo")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { if(this.notes.length <= 0) { return this.events.length > 0; } else { return true; } } ,toString: function() { return "Remove " + (this.notes.length + this.events.length) + " Items"; } ,__class__: funkin_ui_debug_charting_commands_RemoveItemsCommand }; var funkin_ui_debug_charting_commands_RemoveNotesCommand = function(notes) { this.notes = notes; }; $hxClasses["funkin.ui.debug.charting.commands.RemoveNotesCommand"] = funkin_ui_debug_charting_commands_RemoveNotesCommand; funkin_ui_debug_charting_commands_RemoveNotesCommand.__name__ = "funkin.ui.debug.charting.commands.RemoveNotesCommand"; funkin_ui_debug_charting_commands_RemoveNotesCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_RemoveNotesCommand.prototype = { notes: null ,execute: function(state) { if(this.notes.length == 0) { return; } state.set_currentSongChartNoteData(funkin_data_song_SongDataUtils.subtractNotes(state.get_currentSongChartNoteData(),this.notes)); state.set_currentNoteSelection([]); state.currentEventSelection = []; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/noteErase")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,undo: function(state) { if(this.notes.length == 0) { return; } var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; state.get_currentSongChartNoteData().push(note); } state.set_currentNoteSelection(this.notes); state.currentEventSelection = []; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/undo")); state.set_saveDataDirty(true); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); state.sortChartData(); } ,shouldAddToHistory: function(state) { return this.notes.length > 0; } ,toString: function() { if(this.notes.length == 1 && this.notes[0] != null) { var dir = this.notes[0].getDirectionName(); return "Remove " + dir + " Note"; } return "Remove " + this.notes.length + " Notes"; } ,__class__: funkin_ui_debug_charting_commands_RemoveNotesCommand }; var funkin_ui_debug_charting_commands_SelectAllItemsCommand = function(shouldSelectNotes,shouldSelectEvents) { this.previousEventSelection = []; this.previousNoteSelection = []; this.shouldSelectNotes = shouldSelectNotes; this.shouldSelectEvents = shouldSelectEvents; }; $hxClasses["funkin.ui.debug.charting.commands.SelectAllItemsCommand"] = funkin_ui_debug_charting_commands_SelectAllItemsCommand; funkin_ui_debug_charting_commands_SelectAllItemsCommand.__name__ = "funkin.ui.debug.charting.commands.SelectAllItemsCommand"; funkin_ui_debug_charting_commands_SelectAllItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_SelectAllItemsCommand.prototype = { shouldSelectNotes: null ,shouldSelectEvents: null ,previousNoteSelection: null ,previousEventSelection: null ,execute: function(state) { this.previousNoteSelection = state.currentNoteSelection; this.previousEventSelection = state.currentEventSelection; state.set_currentNoteSelection(this.shouldSelectNotes ? state.get_currentSongChartNoteData() : []); state.currentEventSelection = this.shouldSelectEvents ? state.get_currentSongChartEventData() : []; state.noteDisplayDirty = true; } ,undo: function(state) { state.set_currentNoteSelection(this.previousNoteSelection); state.currentEventSelection = this.previousEventSelection; state.noteDisplayDirty = true; } ,shouldAddToHistory: function(state) { if(state.currentNoteSelection.length <= 0) { return state.currentEventSelection.length > 0; } else { return true; } } ,toString: function() { if(this.shouldSelectNotes && !this.shouldSelectEvents) { return "Select All Notes"; } else if(this.shouldSelectEvents && !this.shouldSelectNotes) { return "Select All Events"; } else if(this.shouldSelectNotes && this.shouldSelectEvents) { return "Select All Notes and Events"; } else { return "Select Nothing (Huh?)"; } } ,__class__: funkin_ui_debug_charting_commands_SelectAllItemsCommand }; var funkin_ui_debug_charting_commands_SelectItemsCommand = function(notes,events) { var tmp = notes; this.notes = tmp != null ? tmp : []; var tmp = events; this.events = tmp != null ? tmp : []; }; $hxClasses["funkin.ui.debug.charting.commands.SelectItemsCommand"] = funkin_ui_debug_charting_commands_SelectItemsCommand; funkin_ui_debug_charting_commands_SelectItemsCommand.__name__ = "funkin.ui.debug.charting.commands.SelectItemsCommand"; funkin_ui_debug_charting_commands_SelectItemsCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_SelectItemsCommand.prototype = { notes: null ,events: null ,execute: function(state) { var _g = 0; var _g1 = this.notes; while(_g < _g1.length) { var note = _g1[_g]; ++_g; state.currentNoteSelection.push(note); } var _g = 0; var _g1 = this.events; while(_g < _g1.length) { var event = _g1[_g]; ++_g; state.currentEventSelection.push(event); } if(this.notes.length == 0 && this.events.length == 1) { var eventSelected = this.events[0]; state.eventKindToPlace = eventSelected.eventKind; var eventSchema = funkin_data_event_SongEventRegistry.getEventSchema(eventSelected.eventKind); var defaultKey = null; if(eventSchema == null) { haxe_Log.trace("[WARNING] Event schema not found for event " + eventSelected.eventKind + ".",{ fileName : "source/funkin/ui/debug/charting/commands/SelectItemsCommand.hx", lineNumber : 49, className : "funkin.ui.debug.charting.commands.SelectItemsCommand", methodName : "execute"}); } else { var tmp = funkin_data_event_SongEventSchema.getFirstField(eventSchema); defaultKey = tmp != null ? tmp.name : null; } var eventData = funkin_data_song_SongEventData.valueAsStruct(eventSelected,defaultKey); state.eventDataToPlace = eventData; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT); } if(this.events.length == 0 && this.notes.length == 1) { var noteSelected = this.notes[0]; state.noteKindToPlace = noteSelected.get_kind(); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_NOTE_DATA_LAYOUT); } state.noteDisplayDirty = true; state.set_notePreviewDirty(true); } ,undo: function(state) { state.set_currentNoteSelection(funkin_data_song_SongDataUtils.subtractNotes(state.currentNoteSelection,this.notes)); state.currentEventSelection = funkin_data_song_SongDataUtils.subtractEvents(state.currentEventSelection,this.events); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); } ,shouldAddToHistory: function(state) { if(this.notes.length <= 0) { return this.events.length > 0; } else { return true; } } ,toString: function() { var len = this.notes.length + this.events.length; if(this.notes.length == 0) { if(this.events.length == 1) { return "Select Event"; } else { return "Select " + this.events.length + " Events"; } } else if(this.events.length == 0) { if(this.notes.length == 1) { return "Select Note"; } else { return "Select " + this.notes.length + " Notes"; } } return "Select " + len + " Items"; } ,__class__: funkin_ui_debug_charting_commands_SelectItemsCommand }; var funkin_ui_debug_charting_commands_SetAudioOffsetCommand = function(type,newOffset,refreshOffsetsToolbox) { if(refreshOffsetsToolbox == null) { refreshOffsetsToolbox = true; } this.oldOffset = 0; this.type = type; this.newOffset = newOffset; this.refreshOffsetsToolbox = refreshOffsetsToolbox; }; $hxClasses["funkin.ui.debug.charting.commands.SetAudioOffsetCommand"] = funkin_ui_debug_charting_commands_SetAudioOffsetCommand; funkin_ui_debug_charting_commands_SetAudioOffsetCommand.__name__ = "funkin.ui.debug.charting.commands.SetAudioOffsetCommand"; funkin_ui_debug_charting_commands_SetAudioOffsetCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_SetAudioOffsetCommand.prototype = { type: null ,oldOffset: null ,newOffset: null ,refreshOffsetsToolbox: null ,execute: function(state) { switch(this.type._hx_index) { case 0: this.oldOffset = state.get_currentInstrumentalOffset(); state.set_currentInstrumentalOffset(this.newOffset); funkin_Conductor.get_instance().instrumentalOffset = state.get_currentInstrumentalOffset(); var tmp = state.audioInstTrack; var tmp1 = tmp != null ? tmp._length : null; state.set_songLengthInMs((tmp1 != null ? tmp1 : 1000.0) + funkin_Conductor.get_instance().instrumentalOffset); break; case 1: this.oldOffset = state.get_currentVocalOffsetPlayer(); state.set_currentVocalOffsetPlayer(this.newOffset); state.audioVocalTrackGroup.set_playerVoicesOffset(state.get_currentVocalOffsetPlayer()); break; case 2: this.oldOffset = state.get_currentVocalOffsetOpponent(); state.set_currentVocalOffsetOpponent(this.newOffset); state.audioVocalTrackGroup.set_opponentVoicesOffset(state.get_currentVocalOffsetOpponent()); break; } if(this.refreshOffsetsToolbox) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_FREEPLAY_LAYOUT); } } ,undo: function(state) { switch(this.type._hx_index) { case 0: state.set_currentInstrumentalOffset(this.oldOffset); funkin_Conductor.get_instance().instrumentalOffset = state.get_currentInstrumentalOffset(); var tmp = state.audioInstTrack; var tmp1 = tmp != null ? tmp._length : null; state.set_songLengthInMs((tmp1 != null ? tmp1 : 1000.0) + funkin_Conductor.get_instance().instrumentalOffset); break; case 1: state.set_currentVocalOffsetPlayer(this.oldOffset); state.audioVocalTrackGroup.set_playerVoicesOffset(state.get_currentVocalOffsetPlayer()); break; case 2: state.set_currentVocalOffsetOpponent(this.oldOffset); state.audioVocalTrackGroup.set_opponentVoicesOffset(state.get_currentVocalOffsetOpponent()); break; } funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT); } ,shouldAddToHistory: function(state) { return this.newOffset != this.oldOffset; } ,toString: function() { switch(this.type._hx_index) { case 0: return "Set Inst. Audio Offset to " + this.newOffset; case 1: return "Set Player Audio Offset to " + this.newOffset; case 2: return "Set Opponent Audio Offset to " + this.newOffset; } } ,__class__: funkin_ui_debug_charting_commands_SetAudioOffsetCommand }; var funkin_ui_debug_charting_commands_AudioOffsetType = $hxEnums["funkin.ui.debug.charting.commands.AudioOffsetType"] = { __ename__:"funkin.ui.debug.charting.commands.AudioOffsetType",__constructs__:null ,INSTRUMENTAL: {_hx_name:"INSTRUMENTAL",_hx_index:0,__enum__:"funkin.ui.debug.charting.commands.AudioOffsetType",toString:$estr} ,PLAYER: {_hx_name:"PLAYER",_hx_index:1,__enum__:"funkin.ui.debug.charting.commands.AudioOffsetType",toString:$estr} ,OPPONENT: {_hx_name:"OPPONENT",_hx_index:2,__enum__:"funkin.ui.debug.charting.commands.AudioOffsetType",toString:$estr} }; funkin_ui_debug_charting_commands_AudioOffsetType.__constructs__ = [funkin_ui_debug_charting_commands_AudioOffsetType.INSTRUMENTAL,funkin_ui_debug_charting_commands_AudioOffsetType.PLAYER,funkin_ui_debug_charting_commands_AudioOffsetType.OPPONENT]; funkin_ui_debug_charting_commands_AudioOffsetType.__empty_constructs__ = [funkin_ui_debug_charting_commands_AudioOffsetType.INSTRUMENTAL,funkin_ui_debug_charting_commands_AudioOffsetType.PLAYER,funkin_ui_debug_charting_commands_AudioOffsetType.OPPONENT]; var funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand = function(newStartTime,newEndTime) { this.newEndTime = null; this.newStartTime = null; this.previousEndTime = 0; this.previousStartTime = 0; this.newStartTime = newStartTime; this.newEndTime = newEndTime; }; $hxClasses["funkin.ui.debug.charting.commands.SetFreeplayPreviewCommand"] = funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand; funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand.__name__ = "funkin.ui.debug.charting.commands.SetFreeplayPreviewCommand"; funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand.prototype = { previousStartTime: null ,previousEndTime: null ,newStartTime: null ,newEndTime: null ,execute: function(state) { this.previousStartTime = state.get_currentSongFreeplayPreviewStart(); this.previousEndTime = state.get_currentSongFreeplayPreviewEnd(); if(this.newStartTime != null) { state.set_currentSongFreeplayPreviewStart(this.newStartTime); } if(this.newEndTime != null) { state.set_currentSongFreeplayPreviewEnd(this.newEndTime); } } ,undo: function(state) { state.set_currentSongFreeplayPreviewStart(this.previousStartTime); state.set_currentSongFreeplayPreviewEnd(this.previousEndTime); } ,shouldAddToHistory: function(state) { if(!(this.newStartTime != null && this.newStartTime != this.previousStartTime)) { if(this.newEndTime != null) { return this.newEndTime != this.previousEndTime; } else { return false; } } else { return true; } } ,toString: function() { var setStart = this.newStartTime != null && this.newStartTime != this.previousStartTime; var setEnd = this.newEndTime != null && this.newEndTime != this.previousEndTime; if(setStart && !setEnd) { return "Set Freeplay Preview Start Time"; } else if(setEnd && !setStart) { return "Set Freeplay Preview End Time"; } else { return "Set Freeplay Preview Start and End Times"; } } ,__class__: funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand }; var funkin_ui_debug_charting_commands_SetItemSelectionCommand = function(notes,events) { this.previousEventSelection = []; this.previousNoteSelection = []; this.notes = notes; this.events = events; }; $hxClasses["funkin.ui.debug.charting.commands.SetItemSelectionCommand"] = funkin_ui_debug_charting_commands_SetItemSelectionCommand; funkin_ui_debug_charting_commands_SetItemSelectionCommand.__name__ = "funkin.ui.debug.charting.commands.SetItemSelectionCommand"; funkin_ui_debug_charting_commands_SetItemSelectionCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_SetItemSelectionCommand.prototype = { notes: null ,events: null ,previousNoteSelection: null ,previousEventSelection: null ,execute: function(state) { this.previousNoteSelection = state.currentNoteSelection; this.previousEventSelection = state.currentEventSelection; state.set_currentNoteSelection(this.notes); state.currentEventSelection = this.events; if(this.notes.length == 0 && this.events.length == 1) { var eventSelected = this.events[0]; if(state.eventKindToPlace == eventSelected.eventKind) { haxe_Log.trace("Target event kind matches selection: " + eventSelected.eventKind,{ fileName : "source/funkin/ui/debug/charting/commands/SetItemSelectionCommand.hx", lineNumber : 40, className : "funkin.ui.debug.charting.commands.SetItemSelectionCommand", methodName : "execute"}); } else { haxe_Log.trace("Switching target event kind to match selection: " + state.eventKindToPlace + " != " + eventSelected.eventKind,{ fileName : "source/funkin/ui/debug/charting/commands/SetItemSelectionCommand.hx", lineNumber : 44, className : "funkin.ui.debug.charting.commands.SetItemSelectionCommand", methodName : "execute"}); state.eventKindToPlace = eventSelected.eventKind; } var eventSchema = funkin_data_event_SongEventRegistry.getEventSchema(eventSelected.eventKind); var defaultKey = null; if(eventSchema == null) { haxe_Log.trace("[WARNING] Event schema not found for event " + eventSelected.eventKind + ".",{ fileName : "source/funkin/ui/debug/charting/commands/SetItemSelectionCommand.hx", lineNumber : 54, className : "funkin.ui.debug.charting.commands.SetItemSelectionCommand", methodName : "execute"}); } else { var tmp = funkin_data_event_SongEventSchema.getFirstField(eventSchema); defaultKey = tmp != null ? tmp.name : null; } var eventData = funkin_data_song_SongEventData.valueAsStruct(eventSelected,defaultKey); var eventDataClone = Reflect.copy(eventData); if(eventDataClone != null) { state.eventDataToPlace = eventDataClone; } funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT); } if(this.events.length == 0 && this.notes.length == 1) { var noteSelected = this.notes[0]; state.noteKindToPlace = noteSelected.get_kind(); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_NOTE_DATA_LAYOUT); } state.noteDisplayDirty = true; } ,undo: function(state) { state.set_currentNoteSelection(this.previousNoteSelection); state.currentEventSelection = this.previousEventSelection; state.noteDisplayDirty = true; } ,shouldAddToHistory: function(state) { if(state.currentNoteSelection != this.previousNoteSelection) { return state.currentEventSelection != this.previousEventSelection; } else { return false; } } ,toString: function() { return "Select " + (this.notes.length + this.events.length) + " Items"; } ,__class__: funkin_ui_debug_charting_commands_SetItemSelectionCommand }; var funkin_ui_debug_charting_commands_SwitchDifficultyCommand = function(prevDifficulty,newDifficulty,prevVariation,newVariation) { this.prevDifficulty = prevDifficulty; this.newDifficulty = newDifficulty; this.prevVariation = prevVariation; this.newVariation = newVariation; }; $hxClasses["funkin.ui.debug.charting.commands.SwitchDifficultyCommand"] = funkin_ui_debug_charting_commands_SwitchDifficultyCommand; funkin_ui_debug_charting_commands_SwitchDifficultyCommand.__name__ = "funkin.ui.debug.charting.commands.SwitchDifficultyCommand"; funkin_ui_debug_charting_commands_SwitchDifficultyCommand.__interfaces__ = [funkin_ui_debug_charting_commands_ChartEditorCommand]; funkin_ui_debug_charting_commands_SwitchDifficultyCommand.prototype = { prevDifficulty: null ,newDifficulty: null ,prevVariation: null ,newVariation: null ,execute: function(state) { state.set_selectedVariation(this.newVariation != null ? this.newVariation : this.prevVariation); state.set_selectedDifficulty(this.newDifficulty != null ? this.newDifficulty : this.prevDifficulty); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); } ,undo: function(state) { state.set_selectedVariation(this.prevVariation != null ? this.prevVariation : this.newVariation); state.set_selectedDifficulty(this.prevDifficulty != null ? this.prevDifficulty : this.newDifficulty); state.noteDisplayDirty = true; state.set_notePreviewDirty(true); } ,shouldAddToHistory: function(state) { if(this.prevVariation == this.newVariation) { return this.prevDifficulty != this.newDifficulty; } else { return true; } } ,toString: function() { return "Switch Difficulty"; } ,__class__: funkin_ui_debug_charting_commands_SwitchDifficultyCommand }; var funkin_ui_debug_charting_components_ChartEditorEventSprite = function(parent,isGhost) { if(isGhost == null) { isGhost = false; } this.isGhost = false; this.overrideStepTime = null; this.eventData = null; flixel_FlxSprite.call(this); this.parentState = parent; this.isGhost = isGhost; this.tooltip = funkin_util_HaxeUIUtil.buildTooltip("N/A"); this.set_frames(funkin_ui_debug_charting_components_ChartEditorEventSprite.buildFrames()); this.buildAnimations(); this.refresh(); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorEventSprite"] = funkin_ui_debug_charting_components_ChartEditorEventSprite; funkin_ui_debug_charting_components_ChartEditorEventSprite.__name__ = "funkin.ui.debug.charting.components.ChartEditorEventSprite"; funkin_ui_debug_charting_components_ChartEditorEventSprite.buildFrames = function(force) { if(force == null) { force = false; } if(funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames != null && !force) { return funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames; } funkin_ui_debug_charting_components_ChartEditorEventSprite.initEmptyEventFrames(); if(funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames == null) { throw haxe_Exception.thrown("Failed to initialize empty event frames."); } var defaultFrames = funkin_Paths.getSparrowAtlas("ui/chart-editor/events/" + funkin_ui_debug_charting_components_ChartEditorEventSprite.DEFAULT_EVENT); defaultFrames.parent.persist = true; var _g = 0; var _g1 = defaultFrames.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames.pushFrame(frame); } var _g = 0; var _g1 = funkin_data_event_SongEventRegistry.listEventIds(); while(_g < _g1.length) { var eventName = _g1[_g]; ++_g; var exists = openfl_utils_Assets.exists(funkin_Paths.image("ui/chart-editor/events/" + eventName)); if(!exists) { continue; } var frames = funkin_Paths.getSparrowAtlas("ui/chart-editor/events/" + eventName); if(frames == null) { continue; } frames.parent.persist = true; var _g2 = 0; var _g3 = frames.frames; while(_g2 < _g3.length) { var frame = _g3[_g2]; ++_g2; funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames.pushFrame(frame); } } return funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames; }; funkin_ui_debug_charting_components_ChartEditorEventSprite.initEmptyEventFrames = function() { funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames = new flixel_graphics_frames_FlxAtlasFrames(null); }; funkin_ui_debug_charting_components_ChartEditorEventSprite.wouldEventBeVisible = function(viewAreaBottom,viewAreaTop,eventData,origin) { var noteHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; var notePosY = eventData.getStepTime() * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; if(origin != null) { notePosY += origin.y; } var aboveViewArea = notePosY + noteHeight < viewAreaTop; var belowViewArea = notePosY > viewAreaBottom; if(!aboveViewArea) { return !belowViewArea; } else { return false; } }; funkin_ui_debug_charting_components_ChartEditorEventSprite.__super__ = flixel_FlxSprite; funkin_ui_debug_charting_components_ChartEditorEventSprite.prototype = $extend(flixel_FlxSprite.prototype,{ parentState: null ,eventData: null ,overrideStepTime: null ,tooltip: null ,isGhost: null ,set_overrideStepTime: function(value) { if(this.overrideStepTime == value) { return this.overrideStepTime; } this.overrideStepTime = value; this.updateEventPosition(); return this.overrideStepTime; } ,buildAnimations: function() { var eventNames = [funkin_ui_debug_charting_components_ChartEditorEventSprite.DEFAULT_EVENT].concat(funkin_data_event_SongEventRegistry.listEventIds()); var _g = 0; while(_g < eventNames.length) { var eventName = eventNames[_g]; ++_g; this.animation.addByPrefix(eventName,"" + eventName + "0",24,false); } } ,correctAnimationName: function(name) { if(this.animation.exists(name)) { return name; } haxe_Log.trace("Warning: Invalid animation name \"" + name + "\" for song event. Using \"" + funkin_ui_debug_charting_components_ChartEditorEventSprite.DEFAULT_EVENT + "\"",{ fileName : "source/funkin/ui/debug/charting/components/ChartEditorEventSprite.hx", lineNumber : 130, className : "funkin.ui.debug.charting.components.ChartEditorEventSprite", methodName : "correctAnimationName"}); return funkin_ui_debug_charting_components_ChartEditorEventSprite.DEFAULT_EVENT; } ,playAnimation: function(name) { if(name == null) { var tmp = this.eventData; var tmp1 = tmp != null ? tmp.eventKind : null; name = tmp1 != null ? tmp1 : funkin_ui_debug_charting_components_ChartEditorEventSprite.DEFAULT_EVENT; } var correctedName = this.correctAnimationName(name); this.animation.play(correctedName); this.refresh(); } ,refresh: function() { this.setGraphicSize(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); this.updateHitbox(); } ,set_eventData: function(value) { if(value == null) { this.eventData = null; this.kill(); this.set_visible(false); this.updateTooltipPosition(); return null; } else { this.set_visible(true); this.playAnimation(value.eventKind); this.eventData = value; this.updateEventPosition(); this.updateTooltipText(); return this.eventData; } } ,updateEventPosition: function(origin) { if(this.eventData == null) { return; } this.set_x((funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1 - 1) * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var stepTime = this.overrideStepTime != null ? this.overrideStepTime : this.eventData.getStepTime(); this.set_y(stepTime * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); if(origin != null) { this.set_x(this.x + origin.x); this.set_y(this.y + origin.y); } this.updateTooltipPosition(); } ,updateTooltipText: function() { if(this.eventData == null) { return; } if(this.isGhost) { return; } var tmp = funkin_data_song_SongEventData.buildTooltip(this.eventData); this.tooltip.tipData = { text : tmp}; } ,updateTooltipPosition: function() { if(this.isGhost) { return; } if(this.eventData == null) { haxe_ui_tooltips_ToolTipManager.get_instance().unregisterTooltipRegion(this.tooltip); } else { this.tooltip.left = this.x; this.tooltip.top = this.y; this.tooltip.width = this.get_width(); this.tooltip.height = this.get_height(); haxe_ui_tooltips_ToolTipManager.get_instance().registerTooltipRegion(this.tooltip); } } ,isEventVisible: function(viewAreaBottom,viewAreaTop) { var aboveViewArea = this.y + this.get_height() < viewAreaTop; var belowViewArea = this.y > viewAreaBottom; if(!aboveViewArea) { return !belowViewArea; } else { return false; } } ,__class__: funkin_ui_debug_charting_components_ChartEditorEventSprite ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_overrideStepTime:"set_overrideStepTime",set_eventData:"set_eventData"}) }); var funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite = function(parent) { var noteStyle = funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchDefault(); funkin_play_notes_SustainTrail.call(this,0,100,noteStyle); this.parentState = parent; this.zoom = 1.0; this.zoom *= noteStyle.fetchHoldNoteScale(); this.zoom *= 0.7; this.zoom *= funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / funkin_play_notes_Strumline.STRUMLINE_SIZE; this.set_flipY(false); this.setup(); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorHoldNoteSprite"] = funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite; funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite.__name__ = "funkin.ui.debug.charting.components.ChartEditorHoldNoteSprite"; funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite.wouldHoldNoteBeVisible = function(viewAreaBottom,viewAreaTop,noteData,origin) { var noteHeight = noteData.getStepLength() * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; var stepTime = noteData._stepTime != null ? noteData._stepTime : noteData._stepTime = funkin_Conductor.get_instance().getTimeInSteps(noteData.time); var notePosY = stepTime * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; if(origin != null) { notePosY += origin.y; } var aboveViewArea = notePosY + noteHeight < viewAreaTop; var belowViewArea = notePosY > viewAreaBottom; if(!aboveViewArea) { return !belowViewArea; } else { return false; } }; funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite.__super__ = funkin_play_notes_SustainTrail; funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite.prototype = $extend(funkin_play_notes_SustainTrail.prototype,{ parentState: null ,updateHitbox: function() { this.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); this.set_height(this.graphicHeight); var xOffset = (funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - this.graphicWidth) / 2; var this1 = this.offset; var x = -xOffset; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = this.origin; var x = this.get_width() * 0.5; var y = this.get_height() * 0.5; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,setHeightDirectly: function(h,lerp) { if(lerp == null) { lerp = false; } if(lerp) { var a = this.sustainLength; this.set_sustainLength(a + 0.25 * (h / (this.getBaseScrollSpeed() * funkin_util_Constants.PIXELS_PER_MS) - a)); } else { this.set_sustainLength(h / (this.getBaseScrollSpeed() * funkin_util_Constants.PIXELS_PER_MS)); } this.fullSustainLength = this.sustainLength; } ,setup: function() { this.strumTime = 999999999; this.missedNote = false; this.hitNote = false; this.set_active(true); this.set_visible(true); this.set_alpha(1.0); this.graphicWidth = this.graphic.width / 8 * this.zoom; this.updateHitbox(); } ,revive: function() { funkin_play_notes_SustainTrail.prototype.revive.call(this); this.setup(); } ,kill: function() { funkin_play_notes_SustainTrail.prototype.kill.call(this); this.set_active(false); this.set_visible(false); this.noteData = null; this.strumTime = 999999999; this.noteDirection = 0; this.set_sustainLength(0); this.fullSustainLength = 0; } ,isHoldNoteVisible: function(viewAreaBottom,viewAreaTop) { var aboveViewArea = this.y + this.get_height() < viewAreaTop; var belowViewArea = this.y > viewAreaBottom; if(!aboveViewArea) { return !belowViewArea; } else { return false; } } ,updateHoldNotePosition: function(origin) { if(this.noteData == null) { return; } var cursorColumn = this.noteData.data; if(cursorColumn < 0) { cursorColumn = 0; } if(cursorColumn >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1) { cursorColumn = funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1; } else if(cursorColumn >= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE) { cursorColumn -= funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; } else { cursorColumn += funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE; } this.set_x(cursorColumn * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var _this = this.noteData; var stepTime = _this._stepTime != null ? _this._stepTime : _this._stepTime = funkin_Conductor.get_instance().getTimeInSteps(_this.time); if(stepTime >= 0) { this.set_y(stepTime * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); } this.set_x(this.x + funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / 2); this.set_x(this.x - this.graphicWidth / 2); this.set_y(this.y + funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / 2); if(origin != null) { this.set_x(this.x + origin.x); this.set_y(this.y + origin.y); } this.set_x(this.x + this.offset.x); } ,__class__: funkin_ui_debug_charting_components_ChartEditorHoldNoteSprite }); var funkin_ui_debug_charting_components_ChartEditorMeasureTicks = function(chartEditorState) { flixel_group_FlxTypedSpriteGroup.call(this); this.chartEditorState = chartEditorState; this.tickTiledSprite = new flixel_addons_display_FlxTiledSprite(chartEditorState.measureTickBitmap,chartEditorState.measureTickBitmap.width,1000,false,true); this.add(this.tickTiledSprite); this.measureNumber = new flixel_text_FlxText(0,0,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,"1"); this.measureNumber.setFormat(funkin_Paths.font("vcr.ttf"),20,-1); this.measureNumber.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE); this.measureNumber.set_borderColor(-16777216); this.add(this.measureNumber); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorMeasureTicks"] = funkin_ui_debug_charting_components_ChartEditorMeasureTicks; funkin_ui_debug_charting_components_ChartEditorMeasureTicks.__name__ = "funkin.ui.debug.charting.components.ChartEditorMeasureTicks"; funkin_ui_debug_charting_components_ChartEditorMeasureTicks.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_debug_charting_components_ChartEditorMeasureTicks.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ chartEditorState: null ,tickTiledSprite: null ,measureNumber: null ,set_y: function(value) { var result = flixel_group_FlxTypedSpriteGroup.prototype.set_y.call(this,value); this.updateMeasureNumber(); return result; } ,reloadTickBitmap: function() { this.tickTiledSprite.loadGraphic(this.chartEditorState.measureTickBitmap); } ,updateMeasureNumber: function() { if(this.measureNumber == null) { return; } var viewTopPosition = 0 - this.y; var viewHeight = flixel_FlxG.height - funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT - funkin_ui_debug_charting_ChartEditorState.PLAYBAR_HEIGHT; var viewBottomPosition = viewTopPosition + viewHeight; var measureNumberInViewport = Math.floor(viewTopPosition / funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / funkin_Conductor.get_instance().get_stepsPerMeasure()) + 1; var measureNumberPosition = measureNumberInViewport * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_Conductor.get_instance().get_stepsPerMeasure(); this.measureNumber.set_y(measureNumberPosition + this.y); if(measureNumberInViewport + 1 < this.chartEditorState.get_songLengthInSteps() / funkin_Conductor.get_instance().get_stepsPerMeasure()) { this.measureNumber.set_text("" + (measureNumberInViewport + 1)); } else { this.measureNumber.set_text(""); } } ,setHeight: function(songLengthInPixels) { this.tickTiledSprite.set_height(songLengthInPixels); } ,__class__: funkin_ui_debug_charting_components_ChartEditorMeasureTicks }); var funkin_ui_debug_charting_components_ChartEditorNotePreview = function(height) { flixel_FlxSprite.call(this,0,0); this.previewHeight = height; this.buildBackground(); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorNotePreview"] = funkin_ui_debug_charting_components_ChartEditorNotePreview; funkin_ui_debug_charting_components_ChartEditorNotePreview.__name__ = "funkin.ui.debug.charting.components.ChartEditorNotePreview"; funkin_ui_debug_charting_components_ChartEditorNotePreview.__super__ = flixel_FlxSprite; funkin_ui_debug_charting_components_ChartEditorNotePreview.prototype = $extend(flixel_FlxSprite.prototype,{ previewHeight: null ,buildBackground: function() { this.makeGraphic(funkin_ui_debug_charting_components_ChartEditorNotePreview.WIDTH,this.previewHeight,funkin_ui_debug_charting_components_ChartEditorNotePreview.BG_COLOR); } ,erase: function() { flixel_util_FlxSpriteUtil.drawRect(this,0,0,funkin_ui_debug_charting_components_ChartEditorNotePreview.WIDTH,this.previewHeight,funkin_ui_debug_charting_components_ChartEditorNotePreview.BG_COLOR); } ,addNote: function(note,songLengthInMs,isSelection) { if(isSelection == null) { isSelection = false; } var noteDir = note.data % 4; var mustHit = note.getStrumlineIndex() == 0; this.drawNote(noteDir,mustHit,note.time | 0,songLengthInMs,isSelection); } ,addEvent: function(event,songLengthInMs,isSelection) { if(isSelection == null) { isSelection = false; } this.drawNote(-1,false,event.time | 0,songLengthInMs,isSelection); } ,addNotes: function(notes,songLengthInMs) { var _g = 0; while(_g < notes.length) { var note = notes[_g]; ++_g; this.addNote(note,songLengthInMs,false); } } ,addSelectedNotes: function(notes,songLengthInMs) { var _g = 0; while(_g < notes.length) { var note = notes[_g]; ++_g; this.addNote(note,songLengthInMs,true); } } ,addEvents: function(events,songLengthInMs) { var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; this.addEvent(event,songLengthInMs); } } ,addSelectedEvents: function(events,songLengthInMs) { var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; this.addEvent(event,songLengthInMs,true); } } ,drawNote: function(dir,mustHit,strumTimeInMs,songLengthInMs,isSelection) { if(isSelection == null) { isSelection = false; } var color; switch(dir) { case 0: color = funkin_ui_debug_charting_components_ChartEditorNotePreview.LEFT_COLOR; break; case 1: color = funkin_ui_debug_charting_components_ChartEditorNotePreview.DOWN_COLOR; break; case 2: color = funkin_ui_debug_charting_components_ChartEditorNotePreview.UP_COLOR; break; case 3: color = funkin_ui_debug_charting_components_ChartEditorNotePreview.RIGHT_COLOR; break; default: color = funkin_ui_debug_charting_components_ChartEditorNotePreview.EVENT_COLOR; } var noteHeight = funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_HEIGHT; if(isSelection != null && isSelection) { color = funkin_ui_debug_charting_components_ChartEditorNotePreview.SELECTED_COLOR; ++noteHeight; } var noteX = funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * dir; if(mustHit) { noteX += funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * 4; } if(dir == -1) { noteX = funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * 8; } var noteY = flixel_math_FlxMath.remapToRange(strumTimeInMs,0,songLengthInMs,0,this.previewHeight); flixel_util_FlxSpriteUtil.drawRect(this,noteX,noteY,funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH,noteHeight,color); } ,eraseNote: function(dir,mustHit,strumTimeInMs,songLengthInMs) { var noteX = funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * dir; if(mustHit) { noteX += funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * 4; } if(dir == -1) { noteX = funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * 8; } var noteY = flixel_math_FlxMath.remapToRange(strumTimeInMs,0,songLengthInMs,0,this.previewHeight); flixel_util_FlxSpriteUtil.drawRect(this,noteX,noteY,funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH,funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_HEIGHT,funkin_ui_debug_charting_components_ChartEditorNotePreview.BG_COLOR); } ,drawRect: function(noteX,noteY,width,height,color) { flixel_util_FlxSpriteUtil.drawRect(this,noteX,noteY,width,height,color); } ,__class__: funkin_ui_debug_charting_components_ChartEditorNotePreview }); var funkin_ui_debug_charting_components_ChartEditorNoteSprite = function(parent) { this.overrideData = null; this.overrideStepTime = null; flixel_FlxSprite.call(this); this.parentState = parent; if(funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection == null) { funkin_ui_debug_charting_components_ChartEditorNoteSprite.initFrameCollection(); } if(funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection == null) { throw haxe_Exception.thrown("ERROR: Could not initialize note sprite animations."); } this.set_frames(funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection); this.animation.addByPrefix("tapLeftFunkin","purple instance"); this.animation.addByPrefix("tapDownFunkin","blue instance"); this.animation.addByPrefix("tapUpFunkin","green instance"); this.animation.addByPrefix("tapRightFunkin","red instance"); this.animation.addByPrefix("holdLeftFunkin","LeftHoldPiece"); this.animation.addByPrefix("holdDownFunkin","DownHoldPiece"); this.animation.addByPrefix("holdUpFunkin","UpHoldPiece"); this.animation.addByPrefix("holdRightFunkin","RightHoldPiece"); this.animation.addByPrefix("holdEndLeftFunkin","LeftHoldEnd"); this.animation.addByPrefix("holdEndDownFunkin","DownHoldEnd"); this.animation.addByPrefix("holdEndUpFunkin","UpHoldEnd"); this.animation.addByPrefix("holdEndRightFunkin","RightHoldEnd"); this.animation.addByPrefix("tapLeftPixel","pixel4"); this.animation.addByPrefix("tapDownPixel","pixel5"); this.animation.addByPrefix("tapUpPixel","pixel6"); this.animation.addByPrefix("tapRightPixel","pixel7"); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorNoteSprite"] = funkin_ui_debug_charting_components_ChartEditorNoteSprite; funkin_ui_debug_charting_components_ChartEditorNoteSprite.__name__ = "funkin.ui.debug.charting.components.ChartEditorNoteSprite"; funkin_ui_debug_charting_components_ChartEditorNoteSprite.initFrameCollection = function() { funkin_ui_debug_charting_components_ChartEditorNoteSprite.buildEmptyFrameCollection(); if(funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection == null) { return; } var frameCollectionNormal = funkin_Paths.getSparrowAtlas("NOTE_assets"); var _g = 0; var _g1 = frameCollectionNormal.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection.pushFrame(frame); } var graphicPixel = flixel_FlxG.bitmap.add(funkin_Paths.image("weeb/pixelUI/arrows-pixels","week6"),false,null); if(graphicPixel == null) { haxe_Log.trace("ERROR: Could not load graphic: " + funkin_Paths.image("weeb/pixelUI/arrows-pixels","week6"),{ fileName : "source/funkin/ui/debug/charting/components/ChartEditorNoteSprite.hx", lineNumber : 123, className : "funkin.ui.debug.charting.components.ChartEditorNoteSprite", methodName : "initFrameCollection"}); } var x = 17; var y = 17; if(y == null) { y = 0; } if(x == null) { x = 0; } var frameCollectionPixel = flixel_graphics_frames_FlxTileFrames.fromGraphic(graphicPixel,new flixel_math_FlxBasePoint(x,y)); var _g = 0; var _g1 = frameCollectionPixel.frames.length; while(_g < _g1) { var i = _g++; var frame = frameCollectionPixel.frames[i]; if(frame == null) { continue; } frame.name = "pixel" + i; funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection.pushFrame(frame); } }; funkin_ui_debug_charting_components_ChartEditorNoteSprite.buildEmptyFrameCollection = function() { funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection = new flixel_graphics_frames_FlxFramesCollection(null,flixel_graphics_frames_FlxFrameCollectionType.ATLAS,null); }; funkin_ui_debug_charting_components_ChartEditorNoteSprite.wouldNoteBeVisible = function(viewAreaBottom,viewAreaTop,noteData,origin) { var noteHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; var stepTime = noteData._stepTime != null ? noteData._stepTime : noteData._stepTime = funkin_Conductor.get_instance().getTimeInSteps(noteData.time); var notePosY = stepTime * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE; if(origin != null) { notePosY += origin.y; } var aboveViewArea = notePosY + noteHeight < viewAreaTop; var belowViewArea = notePosY > viewAreaBottom; if(!aboveViewArea) { return !belowViewArea; } else { return false; } }; funkin_ui_debug_charting_components_ChartEditorNoteSprite.__super__ = flixel_FlxSprite; funkin_ui_debug_charting_components_ChartEditorNoteSprite.prototype = $extend(flixel_FlxSprite.prototype,{ parentState: null ,noteData: null ,overrideStepTime: null ,set_overrideStepTime: function(value) { if(this.overrideStepTime == value) { return this.overrideStepTime; } this.overrideStepTime = value; this.updateNotePosition(); return this.overrideStepTime; } ,overrideData: null ,set_overrideData: function(value) { if(this.overrideData == value) { return this.overrideData; } this.overrideData = value; this.playNoteAnimation(); return this.overrideData; } ,set_noteData: function(value) { this.noteData = value; if(this.noteData == null) { this.kill(); return this.noteData; } this.set_visible(true); this.playNoteAnimation(); this.updateNotePosition(); return this.noteData; } ,updateNotePosition: function(origin) { if(this.noteData == null) { return; } var cursorColumn = this.overrideData != null ? this.overrideData : this.noteData.data; cursorColumn = funkin_ui_debug_charting_ChartEditorState.noteDataToGridColumn(cursorColumn); this.set_x(cursorColumn * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); var stepTime = this.overrideStepTime != null ? this.overrideStepTime : this.noteData.getStepTime(); if(stepTime >= 0) { this.set_y(stepTime * funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); } if(origin != null) { this.set_x(this.x + origin.x); this.set_y(this.y + origin.y); } } ,get_noteStyle: function() { if(funkin_ui_debug_charting_components_ChartEditorNoteSprite.NOTE_STYLES.indexOf(this.parentState.get_currentSongNoteStyle()) != -1) { return this.parentState.get_currentSongNoteStyle(); } else { return "funkin"; } } ,playNoteAnimation: function() { if(this.noteData == null) { return; } var baseAnimationName = "tap"; var dirName = this.overrideData != null ? funkin_data_song_SongNoteData.buildDirectionName(this.overrideData) : this.noteData.getDirectionName(); var animationName = "" + baseAnimationName + dirName + funkin_util_tools_StringTools.toTitleCase(this.get_noteStyle()); this.animation.play(animationName); if(baseAnimationName == "tap") { this.setGraphicSize(0,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE); } this.updateHitbox(); this.set_antialiasing(this.parentState.get_currentSongNoteStyle() != "Pixel"); } ,isNoteVisible: function(viewAreaBottom,viewAreaTop) { var aboveViewArea = this.y + this.get_height() < viewAreaTop; var belowViewArea = this.y > viewAreaBottom; if(!aboveViewArea) { return !belowViewArea; } else { return false; } } ,__class__: funkin_ui_debug_charting_components_ChartEditorNoteSprite ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_overrideData:"set_overrideData",set_overrideStepTime:"set_overrideStepTime",get_noteStyle:"get_noteStyle",set_noteData:"set_noteData"}) }); var haxe_ui_core_IComponentContainer = function() { }; $hxClasses["haxe.ui.core.IComponentContainer"] = haxe_ui_core_IComponentContainer; haxe_ui_core_IComponentContainer.__name__ = "haxe.ui.core.IComponentContainer"; haxe_ui_core_IComponentContainer.__isInterface__ = true; haxe_ui_core_IComponentContainer.prototype = { addComponent: null ,removeComponent: null ,containsComponent: null ,__class__: haxe_ui_core_IComponentContainer }; var haxe_ui_core_IEventDispatcher = function() { }; $hxClasses["haxe.ui.core.IEventDispatcher"] = haxe_ui_core_IEventDispatcher; haxe_ui_core_IEventDispatcher.__name__ = "haxe.ui.core.IEventDispatcher"; haxe_ui_core_IEventDispatcher.__isInterface__ = true; haxe_ui_core_IEventDispatcher.prototype = { registerEvent: null ,hasEvent: null ,unregisterEvent: null ,dispatch: null ,removeAllListeners: null ,__class__: haxe_ui_core_IEventDispatcher }; var haxe_ui_core_IClonable = function() { }; $hxClasses["haxe.ui.core.IClonable"] = haxe_ui_core_IClonable; haxe_ui_core_IClonable.__name__ = "haxe.ui.core.IClonable"; haxe_ui_core_IClonable.__isInterface__ = true; haxe_ui_core_IClonable.prototype = { cloneComponent: null ,self: null ,postCloneComponent: null ,__class__: haxe_ui_core_IClonable }; var haxe_ui_backend_EventBase = function() { }; $hxClasses["haxe.ui.backend.EventBase"] = haxe_ui_backend_EventBase; haxe_ui_backend_EventBase.__name__ = "haxe.ui.backend.EventBase"; haxe_ui_backend_EventBase.prototype = { cancel: function() { } ,postClone: function(event) { } ,__class__: haxe_ui_backend_EventBase }; var haxe_ui_backend_EventImpl = function() { }; $hxClasses["haxe.ui.backend.EventImpl"] = haxe_ui_backend_EventImpl; haxe_ui_backend_EventImpl.__name__ = "haxe.ui.backend.EventImpl"; haxe_ui_backend_EventImpl.__super__ = haxe_ui_backend_EventBase; haxe_ui_backend_EventImpl.prototype = $extend(haxe_ui_backend_EventBase.prototype,{ __class__: haxe_ui_backend_EventImpl }); var haxe_ui_events_EventType = {}; haxe_ui_events_EventType.$name = function(name) { return name; }; var haxe_ui_events_UIEvent = function(type,bubble,data) { if(bubble == null) { bubble = false; } this.relatedComponent = null; this.relatedEvent = null; this.type = type; this.bubble = bubble; this.data = data; this.canceled = false; }; $hxClasses["haxe.ui.events.UIEvent"] = haxe_ui_events_UIEvent; haxe_ui_events_UIEvent.__name__ = "haxe.ui.events.UIEvent"; haxe_ui_events_UIEvent.__super__ = haxe_ui_backend_EventImpl; haxe_ui_events_UIEvent.prototype = $extend(haxe_ui_backend_EventImpl.prototype,{ bubble: null ,type: null ,target: null ,data: null ,canceled: null ,relatedEvent: null ,relatedComponent: null ,value: null ,previousValue: null ,cancel: function() { haxe_ui_backend_EventImpl.prototype.cancel.call(this); this.canceled = true; } ,clone: function() { var c = new haxe_ui_events_UIEvent(this.type); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.value = this.value; c.previousValue = this.previousValue; c.canceled = this.canceled; c.relatedEvent = this.relatedEvent; c.relatedComponent = this.relatedComponent; this.postClone(c); return c; } ,copyFrom: function(c) { } ,__class__: haxe_ui_events_UIEvent }); var haxe_ui_events_MouseEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.events.MouseEvent"] = haxe_ui_events_MouseEvent; haxe_ui_events_MouseEvent.__name__ = "haxe.ui.events.MouseEvent"; haxe_ui_events_MouseEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_MouseEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ screenX: null ,screenY: null ,buttonDown: null ,delta: null ,touchEvent: null ,ctrlKey: null ,shiftKey: null ,localX: null ,get_localX: function() { if(this.target == null) { return null; } return (this.screenX * haxe_ui_Toolkit.get_scaleX() - this.target.get_screenLeft()) / haxe_ui_Toolkit.get_scaleX(); } ,localY: null ,get_localY: function() { if(this.target == null) { return null; } return (this.screenY * haxe_ui_Toolkit.get_scaleY() - this.target.get_screenTop()) / haxe_ui_Toolkit.get_scaleY(); } ,clone: function() { var c = new haxe_ui_events_MouseEvent(this.type); c.data = this.data; c.type = this.type; c.target = this.target; c.screenX = this.screenX; c.screenY = this.screenY; c.buttonDown = this.buttonDown; c.delta = this.delta; c.touchEvent = this.touchEvent; c.ctrlKey = this.ctrlKey; c.shiftKey = this.shiftKey; this.postClone(c); return c; } ,__class__: haxe_ui_events_MouseEvent ,__properties__: {get_localY:"get_localY",get_localX:"get_localX"} }); var haxe_ui_events_KeyboardEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.events.KeyboardEvent"] = haxe_ui_events_KeyboardEvent; haxe_ui_events_KeyboardEvent.__name__ = "haxe.ui.events.KeyboardEvent"; haxe_ui_events_KeyboardEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_KeyboardEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ keyCode: null ,altKey: null ,ctrlKey: null ,shiftKey: null ,clone: function() { var c = new haxe_ui_events_KeyboardEvent(this.type); c.type = this.type; c.target = this.target; c.keyCode = this.keyCode; c.altKey = this.altKey; c.ctrlKey = this.ctrlKey; c.shiftKey = this.shiftKey; return c; } ,__class__: haxe_ui_events_KeyboardEvent }); var haxe_ui_backend_ComponentBase = function() { this._nativeClassName = null; this._nodeName = null; this._className = null; this._depth = -1; this._invalidateCount = 0; this._isDisposed = false; this._isInitialized = false; this._isValidating = false; this._isAllInvalid = false; this._delayedInvalidationFlags = new haxe_ds_StringMap(); this._invalidationFlags = new haxe_ds_StringMap(); this._style = null; this._componentClipRect = null; this._screenBounds = null; this._top = 0; this._left = 0; this._hasScreen = null; this._cachedPercentHeight = null; this._cachedPercentWidth = null; this._layoutLocked = false; this._layout = null; this._pausedEvents = null; this._interactivityDisabledCounter = 0; this._interactivityDisabled = false; this._internalEventsClass = null; this._internalEvents = null; this._parentComponent = null; this._id = null; this._componentReady = false; flixel_group_FlxTypedSpriteGroup.call(this); this.behaviours = new haxe_ui_behaviours_Behaviours(js_Boot.__cast(this , haxe_ui_core_Component)); }; $hxClasses["haxe.ui.backend.ComponentBase"] = haxe_ui_backend_ComponentBase; haxe_ui_backend_ComponentBase.__name__ = "haxe.ui.backend.ComponentBase"; haxe_ui_backend_ComponentBase.__interfaces__ = [haxe_ui_core_IComponentContainer,haxe_ui_core_IEventDispatcher,haxe_ui_core_IClonable]; haxe_ui_backend_ComponentBase.__super__ = flixel_group_FlxTypedSpriteGroup; haxe_ui_backend_ComponentBase.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ behaviours: null ,registerBehaviours: function() { this.behaviours.register("text",haxe_ui_backend_ComponentTextBehaviour); this.behaviours.register("value",haxe_ui_backend_ComponentValueBehaviour); this.behaviours.register("disabled",haxe_ui_backend_ComponentDisabledBehaviour); this.behaviours.register("tooltip",haxe_ui_backend_ComponentToolTipBehaviour,null); this.behaviours.register("tooltipRenderer",haxe_ui_backend_ComponentToolTipRendererBehaviour,null); } ,_componentReady: null ,isReady: null ,get_isReady: function() { return this._componentReady; } ,_id: null ,get_id: function() { return this._id; } ,set_id: function(value) { if(this._id != value) { this._id = value; } return this._id; } ,_parentComponent: null ,get_parentComponent: function() { return this._parentComponent; } ,set_parentComponent: function(value) { this._parentComponent = value; if(value != null) { this.onParentComponentSet(); } return value; } ,onParentComponentSet: function() { } ,isInScroller: null ,get_isInScroller: function() { var scroller = this.findScroller(); if(scroller == null) { return false; } return scroller.get_isScrollable(); } ,findScroller: function() { var view = null; var ref = this; while(ref != null) { if(js_Boot.__implements(ref,haxe_ui_core_IScroller)) { view = js_Boot.__cast(ref , haxe_ui_core_IScroller); break; } ref = ref.get_parentComponent(); } return view; } ,containsChildComponent: function(child,recursive) { if(recursive == null) { recursive = false; } var contains = this._children != null && this._children.indexOf(child) != -1; if(recursive && !contains && this._children != null) { var _g = 0; var _g1 = this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; contains = c.containsChildComponent(child,recursive); if(contains) { break; } } } return contains; } ,_children: null ,childComponents: null ,get_childComponents: function() { if(this._children == null) { return []; } return this._children; } ,addComponent: function(child) { return null; } ,addComponentAt: function(child,index) { return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return null; } ,containsComponent: function(child) { return false; } ,removeComponentAt: function(index,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return null; } ,moveComponentToBack: function() { if(this.get_parentComponent() == null || this.get_parentComponent().get_numComponents() <= 1) { return; } this.get_parentComponent().setComponentIndex(this,0); } ,moveComponentBackward: function() { if(this.get_parentComponent() == null || this.get_parentComponent().get_numComponents() <= 1) { return; } var index = this.get_parentComponent().getComponentIndex(this); if(index == 0) { return; } this.get_parentComponent().setComponentIndex(this,index - 1); } ,moveComponentToFront: function() { if(this.get_parentComponent() == null || this.get_parentComponent().get_numComponents() <= 1) { return; } this.get_parentComponent().setComponentIndex(this,this.get_parentComponent().get_numComponents() - 1); } ,moveComponentFrontward: function() { if(this.get_parentComponent() == null || this.get_parentComponent().get_numComponents() <= 1) { return; } var index = this.get_parentComponent().getComponentIndex(this); if(index == this.get_parentComponent().get_numComponents() - 1) { return; } this.get_parentComponent().setComponentIndex(this,index + 1); } ,bottomComponent: null ,get_bottomComponent: function() { if(this._children == null || this._children.length == 0) { return null; } return this._children[0]; } ,topComponent: null ,get_topComponent: function() { if(this._children == null || this._children.length == 0) { return null; } return this._children[this._children.length - 1]; } ,postCloneComponent: function(c) { } ,_internalEvents: null ,_internalEventsClass: null ,registerInternalEvents: function(eventsClass,reregister) { if(reregister == null) { reregister = false; } if(this._internalEvents == null && eventsClass != null) { this._internalEvents = Type.createInstance(eventsClass,[this]); this._internalEvents.register(); } if(reregister == true && this._internalEvents != null) { this._internalEvents.register(); } } ,unregisterInternalEvents: function() { if(this._internalEvents == null) { return; } this._internalEvents.unregister(); this._internalEvents = null; } ,__events: null ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if((js_Boot.__cast(this , haxe_ui_core_Component)).classes.indexOf(":mobile") != -1 && (Std.string(type) == Std.string(haxe_ui_events_MouseEvent.MOUSE_OVER) || Std.string(type) == Std.string(haxe_ui_events_MouseEvent.MOUSE_OUT))) { return; } if(this.get_disabled() == true && this.isInteractiveEvent(type) == true) { if(this._disabledEvents == null) { this._disabledEvents = new haxe_ui_util_EventMap(); } this._disabledEvents.add(type,listener,priority); return; } if(this.__events == null) { this.__events = new haxe_ui_util_EventMap(); } if(this.__events.add(type,listener,priority) == true) { this.mapEvent(type,$bind(this,this._onMappedEvent)); } this.checkWatchForMoveEvents(); } ,hasEvent: function(type,listener) { if(this.__events == null) { return false; } return this.__events.contains(type,listener); } ,unregisterEvent: function(type,listener) { if(this._disabledEvents != null && !this._interactivityDisabled) { this._disabledEvents.remove(type,listener); } if(this.__events != null) { if(this.__events.remove(type,listener) == true) { this.unmapEvent(type,$bind(this,this._onMappedEvent)); } this.checkWatchForMoveEvents(); } } ,unregisterEvents: function(type) { if(this._disabledEvents != null && !this._interactivityDisabled) { this._disabledEvents.removeAll(type); } if(this.__events != null) { this.__events.removeAll(type); this.unmapEvent(type,$bind(this,this._onMappedEvent)); } } ,dispatch: function(event,target) { if(this._pausedEvents != null && this._pausedEvents.indexOf(event.type) != -1) { return; } if(event != null) { if(this.__events != null) { this.__events.invoke(event.type,event,js_Boot.__cast(this , haxe_ui_core_Component)); } if(event.bubble == true && event.canceled == false && this.get_parentComponent() != null) { this.get_parentComponent().dispatch(event); } } } ,dispatchRecursively: function(event) { this.dispatch(event); var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.dispatchRecursively(event); } } ,removeAllListeners: function() { if(this.__events != null) { this.__events.removeAll(); } } ,dispatchRecursivelyWhen: function(event,condition) { if(condition(this) == true) { this.dispatch(event); } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(condition(child) == true) { child.dispatchRecursivelyWhen(event,condition); } } } ,checkWatchForMoveEvents: function() { if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER) || this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT)) { if(!this.hasEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this._onMoveInternal))) { this.registerEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this._onMoveInternal)); } } } ,_onMoveInternal: function(_) { this.checkComponentBounds(); } ,checkComponentBounds: function(checkNextFrame) { if(checkNextFrame == null) { checkNextFrame = true; } var _gthis = this; if(haxe_ui_core_Screen.get_instance().currentMouseX == null || haxe_ui_core_Screen.get_instance().currentMouseY == null) { return; } var hasHover = (js_Boot.__cast(this , haxe_ui_core_Component)).classes.indexOf(":hover") != -1; if(!hasHover && this.get_screenBounds().containsPoint(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY)) { var mouseEvent = new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.MOUSE_OVER); mouseEvent.screenX = haxe_ui_core_Screen.get_instance().currentMouseX; mouseEvent.screenY = haxe_ui_core_Screen.get_instance().currentMouseY; this.dispatch(mouseEvent); } else if(hasHover && !this.get_screenBounds().containsPoint(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY)) { var mouseEvent = new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.MOUSE_OUT); mouseEvent.screenX = haxe_ui_core_Screen.get_instance().currentMouseX; mouseEvent.screenY = haxe_ui_core_Screen.get_instance().currentMouseY; this.dispatch(mouseEvent); } if(checkNextFrame) { haxe_ui_Toolkit.callLater(function() { _gthis.checkComponentBounds(false); }); } } ,_onMappedEvent: function(event) { this.dispatch(event); } ,_disabledEvents: null ,isInteractiveEvent: function(type) { return haxe_ui_backend_ComponentBase.INTERACTIVE_EVENTS.indexOf(type) != -1; } ,disableInteractiveEvents: function(disable) { if(disable == true) { if(this.__events != null) { var eventType = this.__events.keys(); while(eventType.hasNext()) { var eventType1 = eventType.next(); if(!this.isInteractiveEvent(eventType1)) { continue; } var listeners = this.__events.listeners(eventType1); if(listeners != null) { var listener = listeners.copy().iterator(); while(listener.hasNext()) { var listener1 = listener.next(); if(this._disabledEvents == null) { this._disabledEvents = new haxe_ui_util_EventMap(); } this._disabledEvents.add(eventType1,haxe_ui_util_Listener.toFunc(listener1)); this.unregisterEvent(eventType1,haxe_ui_util_Listener.toFunc(listener1)); } } } } } else if(this._disabledEvents != null) { var eventType = this._disabledEvents.keys(); while(eventType.hasNext()) { var eventType1 = eventType.next(); var listeners = this._disabledEvents.listeners(eventType1); if(listeners != null) { var listener = listeners.copy().iterator(); while(listener.hasNext()) { var listener1 = listener.next(); this.registerEvent(eventType1,haxe_ui_util_Listener.toFunc(listener1)); } } } this._disabledEvents = null; } } ,_interactivityDisabled: null ,_interactivityDisabledCounter: null ,disableInteractivity: function(disable,recursive,updateStyle,force) { if(force == null) { force = false; } if(updateStyle == null) { updateStyle = false; } if(recursive == null) { recursive = true; } if(force == true) { this._interactivityDisabledCounter = 0; } if(disable == true) { this._interactivityDisabledCounter++; } else { this._interactivityDisabledCounter--; } if(this._interactivityDisabledCounter > 0 && this._interactivityDisabled == false) { this._interactivityDisabled = true; if(updateStyle == true) { (js_Boot.__cast(this , haxe_ui_core_Component)).swapClass(":disabled",":hover"); } this.handleDisabled(true); this.disableInteractiveEvents(true); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.DISABLED)); } else if(this._interactivityDisabledCounter < 1 && this._interactivityDisabled == true) { this._interactivityDisabled = false; if(updateStyle == true) { (js_Boot.__cast(this , haxe_ui_core_Component)).removeClass(":disabled"); } this.handleDisabled(false); this.disableInteractiveEvents(false); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.ENABLED)); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.disableInteractivity(disable,recursive,updateStyle); } } } ,unregisterEventsInternal: function() { if(this.__events != null) { var copy = []; var eventType = this.__events.keys(); while(eventType.hasNext()) { var eventType1 = eventType.next(); copy.push(eventType1); } var _g = 0; while(_g < copy.length) { var eventType = copy[_g]; ++_g; var listeners = this.__events.listeners(eventType); if(listeners != null) { var listener = listeners.iterator(); while(listener.hasNext()) { var listener1 = listener.next(); if(listener1 != null) { if(this.__events.remove(eventType,haxe_ui_util_Listener.toFunc(listener1)) == true) { this.unmapEvent(eventType,$bind(this,this._onMappedEvent)); } } } } } } } ,_pausedEvents: null ,pauseEvent: function(type,recursive) { if(recursive == null) { recursive = false; } if(this._pausedEvents == null) { this._pausedEvents = []; } if(this._pausedEvents.indexOf(type) == -1) { this._pausedEvents.push(type); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.pauseEvent(type,recursive); } } } ,resumeEvent: function(type,nextFrame,recursive) { if(recursive == null) { recursive = false; } if(nextFrame == null) { nextFrame = false; } var _gthis = this; if(nextFrame) { haxe_ui_Toolkit.callLater(function() { _gthis.resumeEvent(type,false,recursive); }); } else { if(this._pausedEvents != null && this._pausedEvents.indexOf(type) != -1) { HxOverrides.remove(this._pausedEvents,type); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.resumeEvent(type,false,recursive); } } } } ,_layout: null ,_layoutLocked: null ,autoWidth: null ,get_autoWidth: function() { if(this._percentWidth != null || this._width != null) { return false; } if(this.get_style() == null) { return true; } if(this.get_style().autoWidth == null) { return false; } return this.get_style().autoWidth; } ,autoHeight: null ,get_autoHeight: function() { if(this._percentHeight != null || this._height != null || this.get_style() == null) { return false; } if(this.get_style().autoHeight == null) { return false; } return this.get_style().autoHeight; } ,resizeComponent: function(w,h) { var invalidate = false; if(w != null && this._componentWidth != w) { this._componentWidth = w; invalidate = true; } if(h != null && this._componentHeight != h) { this._componentHeight = h; invalidate = true; } if(invalidate == true && this.isComponentInvalid("layout") == false) { if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } } ,actualComponentWidth: null ,get_actualComponentWidth: function() { return this.get_componentWidth() * haxe_ui_Toolkit.get_scaleX(); } ,actualComponentHeight: null ,get_actualComponentHeight: function() { return this.get_componentHeight() * haxe_ui_Toolkit.get_scaleY(); } ,_componentWidth: null ,get_componentWidth: function() { if(this._componentWidth == null) { return 0; } return this._componentWidth; } ,set_componentWidth: function(value) { this.resizeComponent(value,null); return value; } ,_componentHeight: null ,get_componentHeight: function() { if(this._componentHeight == null) { return 0; } return this._componentHeight; } ,set_componentHeight: function(value) { this.resizeComponent(null,value); return value; } ,_percentWidth: null ,get_percentWidth: function() { return this._percentWidth; } ,set_percentWidth: function(value) { if(this._percentWidth == value) { return value; } this._percentWidth = value; if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } else { haxe_ui_core_Screen.get_instance().resizeRootComponents(); } return value; } ,_percentHeight: null ,get_percentHeight: function() { return this._percentHeight; } ,set_percentHeight: function(value) { if(this._percentHeight == value) { return value; } this._percentHeight = value; if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } else { haxe_ui_core_Screen.get_instance().resizeRootComponents(); } return value; } ,_cachedPercentWidth: null ,_cachedPercentHeight: null ,cachePercentSizes: function(clearExisting) { if(clearExisting == null) { clearExisting = true; } if(this._percentWidth != null) { this._cachedPercentWidth = this._percentWidth; if(clearExisting == true) { this._percentWidth = null; } } if(this._percentHeight != null) { this._cachedPercentHeight = this._percentHeight; if(clearExisting == true) { this._percentHeight = null; } } } ,restorePercentSizes: function() { if(this._cachedPercentWidth != null) { this.set_percentWidth(this._cachedPercentWidth); } if(this._cachedPercentHeight != null) { this.set_percentHeight(this._cachedPercentHeight); } } ,_width: null ,set_width: function(value) { if(value == 0) { return value; } if(this._width == value) { return value; } this._width = value; this.set_componentWidth(value); return value; } ,get_width: function() { var f = this.get_componentWidth(); return f; } ,_height: null ,set_height: function(value) { if(value == 0) { return value; } if(this._height == value) { return value; } this._height = value; this.set_componentHeight(value); return value; } ,get_height: function() { var f = this.get_componentHeight(); return f; } ,_actualWidth: null ,_actualHeight: null ,_hasScreen: null ,hasScreen: null ,get_hasScreen: function() { var p = this; while(p != null) { if(p._hasScreen == false) { return false; } p = p.get_parentComponent(); } return true; } ,hitTest: function(left,top,allowZeroSized) { if(allowZeroSized == null) { allowZeroSized = false; } if(left == null || top == null) { return false; } if(this.get_hasScreen() == false) { return false; } left *= haxe_ui_Toolkit.get_scale(); top *= haxe_ui_Toolkit.get_scale(); var b = false; var bounds = this.get_screenBounds(); var sx = bounds.left; var sy = bounds.top; var cx = 0; if(this.get_componentWidth() != null) { cx = this.get_actualComponentWidth(); } var cy = 0; if(this.get_componentHeight() != null) { cy = this.get_actualComponentHeight(); } if(allowZeroSized == true) { if(this.get_width() <= 0 || this.get_height() <= 0) { return true; } } if(left >= sx && left < sx + cx && top >= sy && top < sy + cy) { b = true; } return b; } ,autoSize: function() { if(this._componentReady == false || this._layout == null) { return false; } return this._layout.autoSize(); } ,moveComponent: function(left,top) { var invalidate = false; if(left != null && this._left != left) { this._left = left; invalidate = true; } if(top != null && this._top != top) { this._top = top; invalidate = true; } if(invalidate == true && this.isComponentInvalid("position") == false) { this.invalidateComponent("position",false); } } ,_left: null ,get_left: function() { return this._left; } ,set_left: function(value) { this.moveComponent(value,null); return value; } ,_top: null ,get_top: function() { return this._top; } ,set_top: function(value) { this.moveComponent(null,value); return value; } ,screenLeft: null ,get_screenLeft: function() { return this.get_screenBounds().left; } ,screenRight: null ,get_screenRight: function() { return this.get_screenLeft() + this.get_width(); } ,screenTop: null ,get_screenTop: function() { return this.get_screenBounds().top; } ,screenBottom: null ,get_screenBottom: function() { return this.get_screenTop() + this.get_height(); } ,_screenBounds: null ,screenBounds: null ,get_screenBounds: function() { if(this._screenBounds == null) { this._screenBounds = new haxe_ui_geom_Rectangle(); } var c = this; var xpos = 0; var ypos = 0; while(c != null) { var l = c.get_left(); var t = c.get_top(); if(c.get_parentComponent() != null) { l *= haxe_ui_Toolkit.get_scale(); t *= haxe_ui_Toolkit.get_scale(); } xpos += l; ypos += t; if(c.get_componentClipRect() != null) { xpos -= c.get_componentClipRect().left * haxe_ui_Toolkit.get_scaleX(); ypos -= c.get_componentClipRect().top * haxe_ui_Toolkit.get_scaleY(); } c = c.get_parentComponent(); } this._screenBounds.set(xpos,ypos,this.get_width(),this.get_height()); return this._screenBounds; } ,_componentClipRect: null ,get_componentClipRect: function() { if(this.get_style() != null && this.get_style().clip != null && this.get_style().clip == true) { return new haxe_ui_geom_Rectangle(0,0,this.get_componentWidth(),this.get_componentHeight()); } return this._componentClipRect; } ,set_componentClipRect: function(value) { this._componentClipRect = value; if(!this.isComponentInvalid("display")) { this.invalidateComponent("display",false); } return value; } ,isComponentClipped: null ,get_isComponentClipped: function() { return this.get_componentClipRect() != null; } ,isComponentOffscreen: null ,get_isComponentOffscreen: function() { if(this.get_width() == 0 && this.get_height() == 0) { return false; } var x = this.get_screenLeft(); var y = this.get_screenTop(); var w = this.get_width(); var h = this.get_height(); var thisRect = new haxe_ui_geom_Rectangle(x,y,w,h); var screenRect = new haxe_ui_geom_Rectangle(0,0,haxe_ui_core_Screen.get_instance().get_width(),haxe_ui_core_Screen.get_instance().get_height()); return !screenRect.intersects(thisRect); } ,_style: null ,get_style: function() { return this._style; } ,set_style: function(value) { this._style = value; return value; } ,_invalidationFlags: null ,_delayedInvalidationFlags: null ,_isAllInvalid: null ,_isValidating: null ,_isInitialized: null ,_isDisposed: null ,_invalidateCount: null ,_depth: null ,get_depth: function() { return this._depth; } ,set_depth: function(value) { if(this._depth == value) { return value; } this._depth = value; return value; } ,isComponentInvalid: function(flag) { if(flag == null) { flag = "all"; } if(this._isAllInvalid == true) { return true; } if(flag == "all") { var h = this._invalidationFlags.h; var value_h = h; var value_keys = Object.keys(h); var value_length = value_keys.length; var value_current = 0; while(value_current < value_length) { var value = value_h[value_keys[value_current++]]; return true; } return false; } return Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag); } ,invalidateComponent: function(flag,recursive) { if(recursive == null) { recursive = false; } if(flag == null) { flag = "all"; } if(this._componentReady == false) { return; } var isAlreadyInvalid = this.isComponentInvalid(flag); var isAlreadyDelayedInvalid = false; if(this._isValidating == true) { var h = this._delayedInvalidationFlags.h; var value_h = h; var value_keys = Object.keys(h); var value_length = value_keys.length; var value_current = 0; while(value_current < value_length) { var value = value_h[value_keys[value_current++]]; isAlreadyDelayedInvalid = true; break; } } if(flag == "all") { if(this._isValidating == true) { this._delayedInvalidationFlags.h["all"] = true; } else { this._isAllInvalid = true; } } else if(this._isValidating == true) { this._delayedInvalidationFlags.h[flag] = true; } else if(flag != "all" && !Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag)) { this._invalidationFlags.h[flag] = true; } if(this._isValidating == true) { if(isAlreadyDelayedInvalid == true) { return; } this._invalidateCount++; if(this._invalidateCount >= 10) { throw haxe_Exception.thrown("The validation queue returned too many times during validation. This may be an infinite loop. Try to avoid doing anything that calls invalidate() during validation."); } haxe_ui_validation_ValidationManager.get_instance().add(js_Boot.__cast(this , haxe_ui_core_Component)); return; } else if(isAlreadyInvalid == true) { if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.invalidateComponent(flag,recursive); } } return; } this._invalidateCount = 0; haxe_ui_validation_ValidationManager.get_instance().add(js_Boot.__cast(this , haxe_ui_core_Component)); if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.invalidateComponent(flag,recursive); } } } ,invalidateComponentData: function(recursive) { if(recursive == null) { recursive = false; } this.invalidateComponent("data",recursive); } ,invalidateComponentLayout: function(recursive) { if(recursive == null) { recursive = false; } if(this._layout == null || this._layoutLocked == true) { return; } this.invalidateComponent("layout",recursive); } ,invalidateComponentPosition: function(recursive) { if(recursive == null) { recursive = false; } this.invalidateComponent("position",recursive); } ,invalidateComponentDisplay: function(recursive) { if(recursive == null) { recursive = false; } this.invalidateComponent("display",recursive); } ,invalidateComponentStyle: function(force,recursive) { if(recursive == null) { recursive = false; } if(force == null) { force = false; } this.invalidateComponent("style",recursive); if(force == true) { this._style = null; } } ,validateComponent: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } if(this._componentReady == false || this._isDisposed == true || this._isValidating == true || this.isComponentInvalid() == false) { return; } var isInitialized = this._isInitialized; if(isInitialized == false) { this.initializeComponent(); } this._isValidating = true; this.validateComponentInternal(nextFrame); this.validateInitialSize(isInitialized); this._invalidationFlags.h = Object.create(null); this._isAllInvalid = false; var h = this._delayedInvalidationFlags.h; var flag_h = h; var flag_keys = Object.keys(h); var flag_length = flag_keys.length; var flag_current = 0; while(flag_current < flag_length) { var flag = flag_keys[flag_current++]; if(flag == "all") { this._isAllInvalid = true; } else { this._invalidationFlags.h[flag] = true; } } this._delayedInvalidationFlags.h = Object.create(null); this._isValidating = false; } ,validateNow: function() { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.validateNow(); } this.invalidateComponent(); this.syncComponentValidation(false); } ,syncComponentValidation: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } var count = 0; while(this.isComponentInvalid()) { this.validateComponent(nextFrame); var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.syncComponentValidation(nextFrame); } if(++count >= 10) { if(this._isDisposed) { var c = js_Boot.getClass(this); throw haxe_Exception.thrown("There was a problem validating this component as it has already been destroyed (" + c.__name__ + "#" + this.get_id() + ")"); } else { var c1 = js_Boot.getClass(this); throw haxe_Exception.thrown("The syncValidation returned too many times during validation. This may be an infinite loop. Try to avoid doing anything that calls invalidate() during validation (" + c1.__name__ + "#" + this.get_id() + ")."); } } } } ,validateComponentInternal: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } var dataInvalid = this.isComponentInvalid("data"); var styleInvalid = this.isComponentInvalid("style"); var textDisplayInvalid = this.isComponentInvalid("textDisplay") && this.hasTextDisplay(); var textInputInvalid = this.isComponentInvalid("textInput") && this.hasTextInput(); var imageDisplayInvalid = this.isComponentInvalid("imageDisplay") && this.hasImageDisplay(); var positionInvalid = this.isComponentInvalid("position"); var displayInvalid = this.isComponentInvalid("display"); var layoutInvalid = this.isComponentInvalid("layout") && this._layoutLocked == false; if(dataInvalid) { this.validateComponentData(); } if(styleInvalid) { this.validateComponentStyle(); } if(textDisplayInvalid) { this.getTextDisplay().validateComponent(); } if(textInputInvalid) { this.getTextInput().validateComponent(); } if(imageDisplayInvalid) { this.getImageDisplay().validateComponent(); } if(positionInvalid) { this.validateComponentPosition(); } if(layoutInvalid) { if(this.validateComponentLayout()) { displayInvalid = true; } } if(displayInvalid || styleInvalid) { haxe_ui_validation_ValidationManager.get_instance().addDisplay(js_Boot.__cast(this , haxe_ui_core_Component),nextFrame); } } ,initializeComponent: function() { } ,validateInitialSize: function(isInitialized) { } ,validateComponentData: function() { } ,validateComponentLayout: function() { return false; } ,validateComponentStyle: function() { } ,validateComponentPosition: function() { } ,handleCreate: function(native) { } ,handleDestroy: function() { } ,handlePosition: function(left,top,style) { } ,handlePreReposition: function() { } ,handlePostReposition: function() { } ,handleSize: function(width,height,style) { } ,handleReady: function() { } ,handleClipRect: function(value) { } ,handleVisibility: function(show) { } ,handleDisabled: function(disable) { } ,handleSetComponentIndex: function(child,index) { } ,handleAddComponent: function(child) { return child; } ,handleAddComponentAt: function(child,index) { return child; } ,handleRemoveComponent: function(child,dispose) { if(dispose == null) { dispose = true; } return child; } ,handleRemoveComponentAt: function(index,dispose) { if(dispose == null) { dispose = true; } return null; } ,applyStyle: function(style) { } ,mapEvent: function(type,listener) { } ,unmapEvent: function(type,listener) { } ,getComponentOffset: function() { return new haxe_ui_geom_Point(0,0); } ,get_isNativeScroller: function() { return false; } ,set_isNativeScroller: function(value) { return value; } ,get_isHybridScroller: function() { return false; } ,set_isHybridScroller: function(value) { return value; } ,handleFrameworkProperty: function(id,value) { } ,_textDisplay: null ,createTextDisplay: function(text) { if(this._textDisplay == null) { this._textDisplay = new haxe_ui_core_TextDisplay(); this._textDisplay.parentComponent = js_Boot.__cast(this , haxe_ui_core_Component); } if(text != null) { this._textDisplay.set_text(text); } return this._textDisplay; } ,getTextDisplay: function() { return this.createTextDisplay(); } ,hasTextDisplay: function() { return this._textDisplay != null; } ,_textInput: null ,createTextInput: function(text) { if(this._textInput == null) { this._textInput = new haxe_ui_core_TextInput(); this._textInput.parentComponent = js_Boot.__cast(this , haxe_ui_core_Component); } if(text != null) { this._textInput.set_text(text); } return this._textInput; } ,getTextInput: function() { return this.createTextInput(); } ,hasTextInput: function() { return this._textInput != null; } ,_imageDisplay: null ,createImageDisplay: function() { if(this._imageDisplay == null) { this._imageDisplay = new haxe_ui_core_ImageDisplay(); this._imageDisplay.parentComponent = js_Boot.__cast(this , haxe_ui_core_Component); } return this._imageDisplay; } ,getImageDisplay: function() { return this.createImageDisplay(); } ,hasImageDisplay: function() { return this._imageDisplay != null; } ,removeImageDisplay: function() { if(this._imageDisplay != null) { this._imageDisplay.dispose(); this._imageDisplay = null; } } ,getClassProperty: function(name) { var v = null; if(this._classProperties != null) { v = this._classProperties.h[name]; } if(v == null) { var c = js_Boot.getClass(this); var c1 = c.__name__.toLowerCase() + "." + name; v = haxe_ui_Toolkit.properties.h[c1]; } return v; } ,_classProperties: null ,setClassProperty: function(name,value) { if(this._classProperties == null) { this._classProperties = new haxe_ds_StringMap(); } this._classProperties.h[name] = value; } ,_hasNativeEntry: null ,hasNativeEntry: null ,get_hasNativeEntry: function() { if(this._hasNativeEntry == null) { this._hasNativeEntry = this.getNativeConfigProperty(".@id") != null; } return this._hasNativeEntry; } ,getNativeConfigProperty: function(query,defaultValue) { query = "component[id=" + this.get_nativeClassName() + "]" + query; return haxe_ui_Toolkit.nativeConfig.query(query,defaultValue,this); } ,getNativeConfigPropertyBool: function(query,defaultValue) { if(defaultValue == null) { defaultValue = false; } query = "component[id=" + this.get_nativeClassName() + "]" + query; return haxe_ui_Toolkit.nativeConfig.queryBool(query,defaultValue,this); } ,getNativeConfigProperties: function(query) { if(query == null) { query = ""; } query = "component[id=" + this.get_nativeClassName() + "]" + query; return haxe_ui_Toolkit.nativeConfig.queryValues(query,this); } ,_className: null ,className: null ,get_className: function() { if(this._className != null) { return this._className; } var c = js_Boot.getClass(this); this._className = c.__name__; return this._className; } ,_nodeName: null ,nodeName: null ,get_nodeName: function() { if(this._nodeName != null) { return this._nodeName; } this._nodeName = this.get_className().split(".").pop().toLowerCase(); return this._nodeName; } ,_nativeClassName: null ,nativeClassName: null ,get_nativeClassName: function() { if(this._nativeClassName != null) { return this._nativeClassName; } var r = js_Boot.getClass(this); while(r != null) { var c = r.__name__; var t = haxe_ui_Toolkit.nativeConfig.query("component[id=" + c + "].@class",null,this); if(t != null) { this._nativeClassName = c; break; } r = r.__super__; if(r == haxe_ui_core_Component) { break; } } if(this._nativeClassName == null) { this._nativeClassName = this.get_className(); } return this._nativeClassName; } ,get_text: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("text")); } ,set_text: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"text",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("text",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"text")); return value; } ,get_value: function() { if(this.behaviours == null) { return null; } return this.behaviours.getDynamic("value"); } ,set_value: function(value) { this.behaviours.setDynamic("value",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_disabled: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("disabled")); } ,set_disabled: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("disabled",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"disabled")); return value; } ,get_tooltip: function() { if(this.behaviours == null) { return null; } return this.behaviours.getDynamic("tooltip"); } ,set_tooltip: function(value) { this.behaviours.setDynamic("tooltip",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"tooltip")); return value; } ,get_tooltipRenderer: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("tooltipRenderer")); } ,set_tooltipRenderer: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("tooltipRenderer",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"tooltipRenderer")); return value; } ,cloneComponent: function() { var c = this.self(); if(this.get_id() != null) { c.set_id(this.get_id()); } if(this.get_componentWidth() != null) { c.set_componentWidth(this.get_componentWidth()); } if(this.get_componentHeight() != null) { c.set_componentHeight(this.get_componentHeight()); } if(this.get_percentWidth() != null) { c.set_percentWidth(this.get_percentWidth()); } if(this.get_percentHeight() != null) { c.set_percentHeight(this.get_percentHeight()); } if(this.get_text() != null) { c.set_text(this.get_text()); } if(this.get_value() != null) { c.set_value(this.get_value()); } c.set_disabled(this.get_disabled()); if(this.get_tooltip() != null) { c.set_tooltip(this.get_tooltip()); } if(this.get_tooltipRenderer() != null) { c.set_tooltipRenderer(this.get_tooltipRenderer()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_backend_ComponentBase(); } ,__class__: haxe_ui_backend_ComponentBase ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_tooltipRenderer:"set_tooltipRenderer",get_tooltipRenderer:"get_tooltipRenderer",set_tooltip:"set_tooltip",get_tooltip:"get_tooltip",set_disabled:"set_disabled",get_disabled:"get_disabled",set_value:"set_value",get_value:"get_value",set_text:"set_text",get_text:"get_text",get_nativeClassName:"get_nativeClassName",get_nodeName:"get_nodeName",get_className:"get_className",get_hasNativeEntry:"get_hasNativeEntry",set_isHybridScroller:"set_isHybridScroller",get_isHybridScroller:"get_isHybridScroller",set_isNativeScroller:"set_isNativeScroller",get_isNativeScroller:"get_isNativeScroller",set_depth:"set_depth",get_depth:"get_depth",set_style:"set_style",get_style:"get_style",get_isComponentOffscreen:"get_isComponentOffscreen",get_isComponentClipped:"get_isComponentClipped",set_componentClipRect:"set_componentClipRect",get_componentClipRect:"get_componentClipRect",get_screenBounds:"get_screenBounds",get_screenBottom:"get_screenBottom",get_screenTop:"get_screenTop",get_screenRight:"get_screenRight",get_screenLeft:"get_screenLeft",set_top:"set_top",get_top:"get_top",set_left:"set_left",get_left:"get_left",get_hasScreen:"get_hasScreen",set_percentHeight:"set_percentHeight",get_percentHeight:"get_percentHeight",set_percentWidth:"set_percentWidth",get_percentWidth:"get_percentWidth",set_componentHeight:"set_componentHeight",get_componentHeight:"get_componentHeight",set_componentWidth:"set_componentWidth",get_componentWidth:"get_componentWidth",get_actualComponentHeight:"get_actualComponentHeight",get_actualComponentWidth:"get_actualComponentWidth",get_autoHeight:"get_autoHeight",get_autoWidth:"get_autoWidth",get_topComponent:"get_topComponent",get_bottomComponent:"get_bottomComponent",get_childComponents:"get_childComponents",get_isInScroller:"get_isInScroller",set_parentComponent:"set_parentComponent",get_parentComponent:"get_parentComponent",set_id:"set_id",get_id:"get_id",get_isReady:"get_isReady"}) }); var haxe_ui_backend_ComponentImpl = function() { this._destroyed = false; this._updates = 0; this._destroy = false; this._unsolicitedMembers = null; this._cachedRootComponent = null; this._cachedClipComponentNone = null; this._cachedClipComponent = null; this._cachedScreenY = null; this._cachedScreenX = null; haxe_ui_backend_ComponentBase.call(this); this._eventMap = new haxe_ds_StringMap(); this.set_pixelPerfectRender(true); this.set_moves(false); this.superVisible(false); this.asComponent = js_Boot.__cast(this , haxe_ui_core_Component); if(haxe_ui_core_Platform.get_instance().get_isMobile()) { this.asComponent.addClass(":mobile"); } var this1 = this.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this._surface = new flixel_FlxSprite(); this._surface.makeGraphic(1,1,0,true); this._surface.set_pixelPerfectRender(true); this._surface.set_active(false); this._surface.set_visible(false); this.add(this._surface); }; $hxClasses["haxe.ui.backend.ComponentImpl"] = haxe_ui_backend_ComponentImpl; haxe_ui_backend_ComponentImpl.__name__ = "haxe.ui.backend.ComponentImpl"; haxe_ui_backend_ComponentImpl.__super__ = haxe_ui_backend_ComponentBase; haxe_ui_backend_ComponentImpl.prototype = $extend(haxe_ui_backend_ComponentBase.prototype,{ _eventMap: null ,_surface: null ,asComponent: null ,recursiveReady: function() { this.asComponent.ready(); var _g = 0; var _this = this.asComponent; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.recursiveReady(); } } ,_state: null ,get_state: function() { return this.findRootComponent()._state; } ,set_state: function(value) { this.findRootComponent()._state = value; return value; } ,_cachedScreenX: null ,_cachedScreenY: null ,_cachedClipComponent: null ,_cachedClipComponentNone: null ,_cachedRootComponent: null ,clearCaches: function() { this._cachedScreenX = null; this._cachedScreenY = null; this._cachedClipComponent = null; this._cachedClipComponentNone = null; this._cachedRootComponent = null; } ,cacheScreenPos: function() { if(this._cachedScreenX != null && this._cachedScreenY != null) { return; } var c = this.asComponent; var xpos = 0; var ypos = 0; while(c != null) { xpos += c.get_left(); ypos += c.get_top(); if(c.get_componentClipRect() != null) { xpos -= c.get_componentClipRect().left; ypos -= c.get_componentClipRect().top; } c = c.get_parentComponent(); } this._cachedScreenX = xpos * haxe_ui_Toolkit.get_scaleX(); this._cachedScreenY = ypos * haxe_ui_Toolkit.get_scaleY(); } ,screenX: null ,get_screenX: function() { this.cacheScreenPos(); return this._cachedScreenX; } ,screenY: null ,get_screenY: function() { this.cacheScreenPos(); return this._cachedScreenY; } ,findRootComponent: function() { if(this._cachedRootComponent != null) { return this._cachedRootComponent; } var c = this.asComponent; while(c.get_parentComponent() != null) c = c.get_parentComponent(); this._cachedRootComponent = c; return c; } ,isRootComponent: function() { return this.findRootComponent() == this; } ,findClipComponent: function() { if(this._cachedClipComponent != null) { return this._cachedClipComponent; } else if(this._cachedClipComponentNone == true) { return null; } var c = this.asComponent; var clip = null; while(c != null) { if(c.get_componentClipRect() != null) { clip = c; break; } c = c.get_parentComponent(); } this._cachedClipComponent = clip; if(clip == null) { this._cachedClipComponentNone = true; } return clip; } ,inBounds: function(x,y) { if(this.asComponent.get_hidden() == true) { return false; } var b = false; var sx = this.get_screenX(); var sy = this.get_screenY(); var cx = this.asComponent.get_componentWidth() * haxe_ui_Toolkit.get_scaleX(); var cy = this.asComponent.get_componentHeight() * haxe_ui_Toolkit.get_scaleY(); if(x >= sx && y >= sy && x <= sx + cx && y < sy + cy) { b = true; } if(b == true) { var clip = this.findClipComponent(); if(clip != null) { b = false; var sx = clip.get_screenX() + clip.get_componentClipRect().left * haxe_ui_Toolkit.get_scaleX(); var sy = clip.get_screenY() + clip.get_componentClipRect().top * haxe_ui_Toolkit.get_scaleY(); var cx = clip.get_componentClipRect().width * haxe_ui_Toolkit.get_scaleX(); var cy = clip.get_componentClipRect().height * haxe_ui_Toolkit.get_scaleY(); if(x >= sx && y >= sy && x <= sx + cx && y < sy + cy) { b = true; } } } return b; } ,handlePosition: function(left,top,style) { if(left == null && top == null) { return; } if(this.get_parentComponent() == null) { if(left != null) { this.set_x(left); } if(top != null) { this.set_y(top); } } } ,handleSize: function(width,height,style) { if(this._surface == null) { return; } if(width == null || height == null) { return; } var w = width * haxe_ui_Toolkit.get_scaleX() | 0; var h = height * haxe_ui_Toolkit.get_scaleY() | 0; if(this._surface.get_width() != w || this._surface.get_height() != h) { if(w <= 0 || h <= 0) { this._surface.graphic.destroy(); this._surface.makeGraphic(1,1,0,true); this._surface.set_visible(false); } else { this._surface.graphic.destroy(); this._surface.makeGraphic(w,h,0,true); this.applyStyle(style); } } } ,handleDestroy: function() { this.destroyInternal(); } ,handleSetComponentIndex: function(child,index) { this.handleAddComponentAt(child,index); } ,handleAddComponent: function(child) { this.handleAddComponentAt(child,(this._children == null ? [] : this._children).length - 1); return child; } ,superVisible: function(value) { this._skipTransformChildren = true; haxe_ui_backend_ComponentBase.prototype.set_visible.call(this,value); this._skipTransformChildren = false; } ,handleAddComponentAt: function(child,index) { var indexOffset = 0; while(indexOffset < this.group.members.length) if(!((this.group.members[indexOffset]) instanceof haxe_ui_core_Component)) { ++indexOffset; } else { break; } this.insert(index + indexOffset,child); return child; } ,_unsolicitedMembers: null ,preAdd: function(sprite) { if(this.isUnsolicitedMember(sprite)) { if(this._unsolicitedMembers == null) { this._unsolicitedMembers = []; } if(this.findUnsolictedEntryFromSprite(sprite) == null) { var use = true; if(this._textInput != null && this._textInput.equals(sprite)) { use = false; } if(use) { this._unsolicitedMembers.push({ sprite : sprite, originalX : sprite.x, originalY : sprite.y}); } } } haxe_ui_backend_ComponentBase.prototype.preAdd.call(this,sprite); } ,remove: function(sprite,splice) { if(splice == null) { splice = false; } if(this.isUnsolicitedMember(sprite) && this._unsolicitedMembers != null) { var um = this.findUnsolictedEntryFromSprite(sprite); HxOverrides.remove(this._unsolicitedMembers,um); } return haxe_ui_backend_ComponentBase.prototype.remove.call(this,sprite,splice); } ,findUnsolictedEntryFromSprite: function(sprite) { if(this._unsolicitedMembers == null) { return null; } var _g = 0; var _g1 = this._unsolicitedMembers; while(_g < _g1.length) { var um = _g1[_g]; ++_g; if(um.sprite == sprite) { return um; } } return null; } ,_destroy: null ,handleRemoveComponent: function(child,dispose) { if(dispose == null) { dispose = true; } if(this.exists == false) { return child; } if(this.group.members.indexOf(child) > -1) { this.remove(child,true); if(dispose == true) { child._destroy = true; child.destroyInternal(); } } return child; } ,handleRemoveComponentAt: function(index,dispose) { if(dispose == null) { dispose = true; } return this.handleRemoveComponent((this._children == null ? [] : this._children)[index],dispose); } ,handleClipRect: function(value) { if(value == null) { this.set_clipRect(null); } } ,handleVisibility: function(show) { this.applyVisibility(show); } ,applyVisibility: function(show) { this.superVisible(show); if(this.hasTextDisplay()) { this._textDisplay.tf.set_visible(show); } if(this.hasTextInput()) { this._textInput.set_visible(show); } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.applyVisibility(show && !c.get_hidden()); } } ,applyStyle: function(style) { if(style.opacity != null) { this.applyAlpha(style.opacity); } else { var tmp = this._surface.alpha != 1; } this._surface.set_visible(haxe_ui_backend_flixel_FlxStyleHelper.applyStyle(this._surface,style)); this.applyFilters(style); } ,applyAlpha: function(value) { this._surface.set_alpha(value); if(this.hasTextDisplay()) { this.getTextDisplay().tf.set_alpha(value); } if(this.hasTextInput()) { this.getTextInput().set_alpha(value); } if(this.hasImageDisplay()) { this.getImageDisplay().set_alpha(value); } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; if(c.get_style() != null && c.get_style().opacity != null) { c.applyAlpha(c.get_style().opacity * value); } else { c.applyAlpha(value); } } } ,set_alpha: function(alpha) { this._surface.set_alpha(alpha); if(this.hasTextDisplay()) { this.getTextDisplay().tf.set_alpha(alpha); } if(this.hasTextInput()) { this.getTextInput().set_alpha(alpha); } if(this.hasImageDisplay()) { this.getImageDisplay().set_alpha(alpha); } return haxe_ui_backend_ComponentBase.prototype.set_alpha.call(this,alpha); } ,applyFilters: function(style) { if(style.filter != null && style.filter.length > 0) { var _g = 0; var _g1 = style.filter; while(_g < _g1.length) { var f = _g1[_g]; ++_g; if(this._textDisplay != null && ((f) instanceof haxe_ui_filters_Outline)) { var o = js_Boot.__cast(f , haxe_ui_filters_Outline); var col = o.color; var _this = this._textDisplay.tf; var Color = -16777216 | o.color; var Size = o.size; if(Size == null) { Size = 1; } if(Color == null) { Color = 0; } _this.set_borderStyle(flixel_text_FlxTextBorderStyle.OUTLINE); _this.set_borderColor(Color); _this.set_borderSize(Size); _this.set_borderQuality(1); } else if(this._textDisplay != null && ((f) instanceof haxe_ui_filters_DropShadow)) { var o1 = js_Boot.__cast(f , haxe_ui_filters_DropShadow); var _this1 = this._textDisplay.tf; var Color1 = -16777216 | o1.color; var Size1 = o1.distance; if(Size1 == null) { Size1 = 1; } if(Color1 == null) { Color1 = 0; } _this1.set_borderStyle(flixel_text_FlxTextBorderStyle.SHADOW); _this1.set_borderColor(Color1); _this1.set_borderSize(Size1); _this1.set_borderQuality(1); } } } } ,createImageDisplay: function() { var _gthis = this; if(this._imageDisplay == null) { haxe_ui_backend_ComponentBase.prototype.createImageDisplay.call(this); this._imageDisplay.set_visible(false); this.add(this._imageDisplay); haxe_ui_Toolkit.callLater(function() { if(_gthis._imageDisplay != null) { _gthis._imageDisplay.set_visible(true); } }); } return this._imageDisplay; } ,removeImageDisplay: function() { if(this._imageDisplay != null) { this.remove(this._imageDisplay,true); this._imageDisplay.destroy(); this._imageDisplay = null; } } ,mapEvent: function(type,listener) { switch(type) { case haxe_ui_events_UIEvent.CHANGE: if(Object.prototype.hasOwnProperty.call(this._eventMap.h,haxe_ui_events_UIEvent.CHANGE) == false) { if(this.hasTextInput() == true) { this._eventMap.h[haxe_ui_events_UIEvent.CHANGE] = listener; this.getTextInput().set_onChange($bind(this,this.__onTextInputChange)); } } break; case haxe_ui_events_MouseEvent.CLICK: if(Object.prototype.hasOwnProperty.call(this._eventMap.h,haxe_ui_events_MouseEvent.CLICK) == false) { if(this.hasTextInput()) { this._eventMap.h[haxe_ui_events_MouseEvent.CLICK] = listener; this.getTextInput().set_onClick($bind(this,this.__onTextInputMouseEvent)); } } break; case haxe_ui_events_KeyboardEvent.KEY_DOWN: if(Object.prototype.hasOwnProperty.call(this._eventMap.h,haxe_ui_events_KeyboardEvent.KEY_DOWN) == false) { if(this.hasTextInput()) { this._eventMap.h[haxe_ui_events_KeyboardEvent.KEY_DOWN] = listener; this.getTextInput().set_onKeyDown($bind(this,this.__onTextInputKeyboardEvent)); } } break; case haxe_ui_events_KeyboardEvent.KEY_UP: if(Object.prototype.hasOwnProperty.call(this._eventMap.h,haxe_ui_events_KeyboardEvent.KEY_UP) == false) { if(this.hasTextInput()) { this._eventMap.h[haxe_ui_events_KeyboardEvent.KEY_UP] = listener; this.getTextInput().set_onKeyUp($bind(this,this.__onTextInputKeyboardEvent)); } } break; case haxe_ui_events_MouseEvent.MOUSE_DOWN: if(Object.prototype.hasOwnProperty.call(this._eventMap.h,haxe_ui_events_MouseEvent.MOUSE_DOWN) == false) { if(this.hasTextInput()) { this._eventMap.h[haxe_ui_events_MouseEvent.MOUSE_DOWN] = listener; this.getTextInput().set_onMouseDown($bind(this,this.__onTextInputMouseEvent)); } } break; case haxe_ui_events_MouseEvent.MOUSE_UP: if(Object.prototype.hasOwnProperty.call(this._eventMap.h,haxe_ui_events_MouseEvent.MOUSE_UP) == false) { if(this.hasTextInput()) { this._eventMap.h[haxe_ui_events_MouseEvent.MOUSE_UP] = listener; this.getTextInput().set_onMouseUp($bind(this,this.__onTextInputMouseEvent)); } } break; } } ,unmapEvent: function(type,listener) { switch(type) { case haxe_ui_events_UIEvent.CHANGE: if(this.hasTextInput()) { var _this = this._eventMap; if(Object.prototype.hasOwnProperty.call(_this.h,type)) { delete(_this.h[type]); } this.getTextInput().set_onChange(null); } break; case haxe_ui_events_MouseEvent.CLICK: if(this.hasTextInput()) { var _this = this._eventMap; if(Object.prototype.hasOwnProperty.call(_this.h,type)) { delete(_this.h[type]); } this.getTextInput().set_onClick(null); } break; case haxe_ui_events_KeyboardEvent.KEY_DOWN: if(this.hasTextInput()) { var _this = this._eventMap; if(Object.prototype.hasOwnProperty.call(_this.h,type)) { delete(_this.h[type]); } this.getTextInput().set_onKeyDown(null); } break; case haxe_ui_events_KeyboardEvent.KEY_UP: if(this.hasTextInput()) { var _this = this._eventMap; if(Object.prototype.hasOwnProperty.call(_this.h,type)) { delete(_this.h[type]); } this.getTextInput().set_onKeyUp(null); } break; case haxe_ui_events_MouseEvent.MOUSE_DOWN: if(this.hasTextInput()) { var _this = this._eventMap; if(Object.prototype.hasOwnProperty.call(_this.h,type)) { delete(_this.h[type]); } this.getTextInput().set_onMouseDown(null); } break; case haxe_ui_events_MouseEvent.MOUSE_UP: if(this.hasTextInput()) { var _this = this._eventMap; if(Object.prototype.hasOwnProperty.call(_this.h,type)) { delete(_this.h[type]); } this.getTextInput().set_onMouseUp(null); } break; } } ,__onTextInputChange: function(event) { var fn = this._eventMap.h[haxe_ui_events_UIEvent.CHANGE]; if(fn != null) { fn(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } } ,__onTextInputMouseEvent: function(event) { var type = null; switch(event.type) { case "click": type = haxe_ui_events_MouseEvent.CLICK; break; case "mouseDown": type = haxe_ui_events_MouseEvent.MOUSE_DOWN; break; case "mouseUp": type = haxe_ui_events_MouseEvent.MOUSE_UP; break; } var fn = this._eventMap.h[type]; if(fn != null) { var mouseEvent = new haxe_ui_events_MouseEvent(type); mouseEvent.screenX = event.stageX / haxe_ui_Toolkit.get_scaleX(); mouseEvent.screenY = event.stageY / haxe_ui_Toolkit.get_scaleY(); if(haxe_ui_core_Platform.get_instance().get_isMobile()) { mouseEvent.touchEvent = true; } fn(mouseEvent); } } ,applyRootLayout: function(l) { } ,__onTextInputKeyboardEvent: function(event) { var type; switch(event.type) { case "keyDown": type = haxe_ui_events_KeyboardEvent.KEY_DOWN; break; case "keyUp": type = haxe_ui_events_KeyboardEvent.KEY_UP; break; default: type = null; } var fn = this._eventMap.h[type]; if(fn == null) { return; } var keyboardEvent = new haxe_ui_events_KeyboardEvent(type); keyboardEvent.keyCode = event.keyCode; keyboardEvent.altKey = event.altKey; keyboardEvent.ctrlKey = event.ctrlKey; keyboardEvent.shiftKey = event.shiftKey; fn(keyboardEvent); } ,createTextDisplay: function(text) { var _gthis = this; if(this._textDisplay == null) { haxe_ui_backend_ComponentBase.prototype.createTextDisplay.call(this,text); this._textDisplay.tf.set_visible(false); this.add(this._textDisplay.tf); haxe_ui_Toolkit.callLater(function() { _gthis.applyFilters(_gthis.get_style()); }); } return this._textDisplay; } ,createTextInput: function(text) { if(this._textInput == null) { haxe_ui_backend_ComponentBase.prototype.createTextInput.call(this,text); this._textInput.attach(); this._textInput.set_visible(false); this._textInput.addToComponent(this); } return this._textInput; } ,repositionChildren: function() { if(this._surface != null) { this._surface.set_x(this.get_screenX()); this._surface.set_y(this.get_screenY()); } if(this._textDisplay != null) { var offsetX = 2 / haxe_ui_Toolkit.get_scaleX(); var offsetY = 2 / haxe_ui_Toolkit.get_scaleY(); this._textDisplay.tf.set_x(this._surface.x + this._textDisplay.get_left() - offsetX); this._textDisplay.tf.set_y(this._surface.y + this._textDisplay.get_top() - offsetY); } if(this._textInput != null) { var offsetX = 2 / haxe_ui_Toolkit.get_scaleX(); var offsetY = 2 / haxe_ui_Toolkit.get_scaleY(); this._textInput.set_x(this._surface.x + this._textInput.get_left() - offsetX); this._textInput.set_y(this._surface.y + this._textInput.get_top() - offsetY); this._textInput.set_scaleX(flixel_FlxG.scaleMode.scale.x); this._textInput.set_scaleY(flixel_FlxG.scaleMode.scale.y); this._textInput.update(); } if(this._imageDisplay != null) { var offsetX = 0; var offsetY = 0; this._imageDisplay.set_x(this._surface.x + this._imageDisplay.get_left() - offsetX); this._imageDisplay.set_y(this._surface.y + this._imageDisplay.get_top() - offsetY); } if(this._unsolicitedMembers != null) { var _g = 0; var _g1 = this._unsolicitedMembers; while(_g < _g1.length) { var m = _g1[_g]; ++_g; m.sprite.set_x(m.originalX + this.get_screenX()); m.sprite.set_y(m.originalY + this.get_screenY()); } } } ,isUnsolicitedMember: function(m) { if(m == this._surface) { return false; } if(this._textDisplay != null && m == this._textDisplay.tf) { return false; } if(m == this._imageDisplay) { return false; } return !((m) instanceof haxe_ui_core_Component); } ,hasComponentOver: function(ref,x,y) { var array = this.getComponentsAtPoint(x,y); if(array.length == 0) { return false; } return !this.hasChildRecursive(ref,array[array.length - 1]); } ,getComponentsAtPoint: function(x,y,reverse) { if(reverse == null) { reverse = false; } var array = []; var _g = 0; var _g1 = haxe_ui_core_Screen.get_instance().rootComponents; while(_g < _g1.length) { var r = _g1[_g]; ++_g; this.findChildrenAtPoint(r,x,y,array); } if(reverse == true) { array.reverse(); } return array; } ,findChildrenAtPoint: function(child,x,y,array) { if(child.inBounds(x,y) == true) { array.push(child); } var _g = 0; var _g1 = child._children == null ? [] : child._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; this.findChildrenAtPoint(c,x,y,array); } } ,hasChildRecursive: function(parent,child) { if(parent == child) { return true; } var r = false; var _g = 0; var _g1 = parent._children == null ? [] : parent._children; while(_g < _g1.length) { var t = _g1[_g]; ++_g; if(t == child) { r = true; break; } r = this.hasChildRecursive(t,child); if(r == true) { break; } } return r; } ,_updates: null ,update: function(elapsed) { if(this._destroyed) { haxe_ui_backend_ComponentBase.prototype.update.call(this,elapsed); return; } if(this._destroy == true) { this.destroyInternal(); haxe_ui_backend_ComponentBase.prototype.update.call(this,elapsed); return; } this.clearCaches(); this.repositionChildren(); this._updates++; if(this._updates == 2) { if(this.asComponent.get_hidden() == false) { this.applyVisibility(true); } else { this.applyVisibility(false); } } haxe_ui_backend_ComponentBase.prototype.update.call(this,elapsed); if(this.get_parentComponent() == null) { this.applyClipRect(); } } ,applyClipRect: function() { if(this.get_componentClipRect() != null) { this.set_clipRect(this.getFlixelClipRect(this.clipRect)); } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.applyClipRect(); } } ,getFlixelClipRect: function(rect) { var value = this.get_componentClipRect(); if(value == null) { return null; } value.top = value.top | 0; value.left = value.left | 0; if(rect == null) { var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect1 = _this; rect1._inPool = false; rect = rect1; } var X = value.left * haxe_ui_Toolkit.get_scaleX() + this._surface.x - this.x; var Y = value.top * haxe_ui_Toolkit.get_scaleY() + this._surface.y - this.y; var Width = value.width * haxe_ui_Toolkit.get_scaleX(); var Height = value.height * haxe_ui_Toolkit.get_scaleY(); if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } rect.x = X; rect.y = Y; rect.width = Width; rect.height = Height; var p = this.get_parentComponent(); while(p != null) { if(p.get_componentClipRect() != null) { var pRect = p.getFlixelClipRect(); var oldRect = rect; rect = rect.intersection(pRect); if(!pRect._inPool) { pRect._inPool = true; pRect._weak = false; flixel_math_FlxRect._pool.putUnsafe(pRect); } if(!oldRect._inPool) { oldRect._inPool = true; oldRect._weak = false; flixel_math_FlxRect._pool.putUnsafe(oldRect); } break; } p = p.get_parentComponent(); } return rect; } ,applyAddInternal: function() { if(!haxe_ui_backend_flixel_textinputs_FlxTextInput.USE_ON_ADDED) { return; } if(this.hasTextInput() && this.asComponent.get_hidden() == false) { this.getTextInput().set_visible(true); } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.applyAddInternal(); } } ,applyRemoveInternal: function() { if(!haxe_ui_backend_flixel_textinputs_FlxTextInput.USE_ON_REMOVED) { return; } if(this.hasTextInput()) { this.getTextInput().set_visible(false); } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.applyRemoveInternal(); } } ,_destroyed: null ,destroyInternal: function() { if(this._surface != null) { this._surface.destroy(); this._surface = null; } if(this._textDisplay != null) { this._textDisplay.tf.destroy(); this._textDisplay = null; } if(this._textInput != null) { this._textInput.destroy(this); this._textInput = null; } if(this._imageDisplay != null) { this._imageDisplay.destroy(); this._imageDisplay = null; } if(this._unsolicitedMembers != null) { this._unsolicitedMembers = null; } this._state = null; this._destroy = false; this._destroyed = true; haxe_ui_backend_ComponentBase.prototype.destroy.call(this); } ,destroy: function() { if(this.get_parentComponent() != null) { if(this.get_parentComponent().getComponentIndex(this) != -1) { this.get_parentComponent().removeComponent(this); return; } } else { haxe_ui_core_Screen.get_instance().removeComponent(this); } this._destroy = true; } ,set_x: function(value) { var r = haxe_ui_backend_ComponentBase.prototype.set_x.call(this,value); if(this.get_parentComponent() == null && this._surface != null) { this.set_left(value); } return r; } ,set_y: function(value) { var r = haxe_ui_backend_ComponentBase.prototype.set_y.call(this,value); if(this.get_parentComponent() == null && this._surface != null) { this.set_top(value); } return r; } ,registerBehaviours: function() { haxe_ui_backend_ComponentBase.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_backend_ComponentBase.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_backend_ComponentImpl(); } ,__class__: haxe_ui_backend_ComponentImpl ,__properties__: $extend(haxe_ui_backend_ComponentBase.prototype.__properties__,{get_screenY:"get_screenY",get_screenX:"get_screenX",set_state:"set_state",get_state:"get_state"}) }); var haxe_ui_validation_IValidating = function() { }; $hxClasses["haxe.ui.validation.IValidating"] = haxe_ui_validation_IValidating; haxe_ui_validation_IValidating.__name__ = "haxe.ui.validation.IValidating"; haxe_ui_validation_IValidating.__isInterface__ = true; haxe_ui_validation_IValidating.prototype = { get_depth: null ,set_depth: null ,get_id: null ,set_id: null ,get_isComponentOffscreen: null ,validateComponent: null ,updateComponentDisplay: null ,isComponentOffscreen: null ,__class__: haxe_ui_validation_IValidating ,__properties__: {get_isComponentOffscreen:"get_isComponentOffscreen",set_id:"set_id",get_id:"get_id",set_depth:"set_depth",get_depth:"get_depth"} }; var haxe_ui_core_Component = function() { this.recursivePointerEvents = true; this._pauseAnimationStyleChanges = false; this._initialSizeApplied = false; this._scriptAccess = true; this._includeInLayout = true; this._styleSheet = null; this._cachedStyleSheetRef = null; this._useCachedStyleSheetRef = false; this._styleNamesList = null; this._styleNames = null; this.cascadeActive = false; this.classes = []; this._customStyle = null; this._hidden = false; this._invalidateRecursivelyOnShow = true; this.bindingRoot = false; this.userData = null; this._animatable = true; this._native = null; this._defaultLayoutClass = null; this.componentTabIndex = 0; haxe_ui_backend_ComponentImpl.call(this); this.addClass("html5",false); this.addClass(haxe_ui_Backend.get_id(),false); var c = js_Boot.getClass(this); while(c != null) { var css = c.__name__; var className = css.split(".").pop(); this.addClass(className.toLowerCase(),false); this.addClass(haxe_ui_util_StringUtil.toDashes(className),false); if(className.toLowerCase() == "component") { break; } c = c.__super__; } var s = haxe_ui_Toolkit.styleSheet.buildStyleFor(this); if(s.native != null && this.get_hasNativeEntry() == true) { this.set_native(s.native); } else { this.create(); } if(haxe_ui_Toolkit.get_initialized() == false) { haxe_Log.trace("WARNING: You are trying to create a component before the toolkit has been initialized. This could have undefined results.",{ fileName : "haxe/ui/core/Component.hx", lineNumber : 82, className : "haxe.ui.core.Component", methodName : "new"}); } }; $hxClasses["haxe.ui.core.Component"] = haxe_ui_core_Component; haxe_ui_core_Component.__name__ = "haxe.ui.core.Component"; haxe_ui_core_Component.__interfaces__ = [haxe_ui_validation_IValidating]; haxe_ui_core_Component.addNamedComponentsFrom = function(parent,list) { if(parent == null) { return; } if(parent.get_id() != null) { list.push(parent); } var _g = 0; var _g1 = parent._children == null ? [] : parent._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; haxe_ui_core_Component.addNamedComponentsFrom(child,list); } }; haxe_ui_core_Component.__super__ = haxe_ui_backend_ComponentImpl; haxe_ui_core_Component.prototype = $extend(haxe_ui_backend_ComponentImpl.prototype,{ componentTabIndex: null ,_defaultLayoutClass: null ,create: function() { var _gthis = this; if(this.get_native() == false || this.get_native() == null) { this.registerComposite(); } this.createDefaults(); this.handleCreate(this.get_native()); this.destroyChildren(); this.registerBehaviours(); this.behaviours.replaceNative(); if(this.get_native() == false || this.get_native() == null) { if(this._compositeBuilderClass != null) { if(this._compositeBuilder == null) { this._compositeBuilder = Type.createInstance(this._compositeBuilderClass,[this]); } this._compositeBuilder.create(); } this.createChildren(); if(this._internalEventsClass != null && this._internalEvents == null) { this.registerInternalEvents(this._internalEventsClass); } } else { var builderClass = this.getNativeConfigProperty(".builder.@class"); if(builderClass != null) { if(this._compositeBuilder == null) { this._compositeBuilder = Type.createInstance($hxClasses[builderClass],[this]); } this._compositeBuilder.create(); } } this.behaviours.applyDefaults(); haxe_ui_Toolkit.callLater(function() { var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_CREATED,true); event.relatedComponent = _gthis; _gthis.dispatch(event); }); this.onComponentCreated(); } ,onComponentCreated: function() { } ,_compositeBuilderClass: null ,_compositeBuilder: null ,registerComposite: function() { } ,createDefaults: function() { } ,createChildren: function() { } ,destroyChildren: function() { this.unregisterInternalEvents(); } ,createLayout: function() { var l = null; if(this.get_native() == true) { var sizeProps = this.getNativeConfigProperties(".size"); if(sizeProps != null && Object.prototype.hasOwnProperty.call(sizeProps.h,"class")) { var name = sizeProps.h["class"]; var size = Type.createInstance($hxClasses[name],[]); size.config = sizeProps; l = new haxe_ui_layouts_DelegateLayout(size); } else { var layoutProps = this.getNativeConfigProperties(".layout"); if(layoutProps != null && Object.prototype.hasOwnProperty.call(layoutProps.h,"class")) { var name = layoutProps.h["class"]; l = Type.createInstance($hxClasses[name],[]); } } } if(l == null) { if(this._defaultLayoutClass != null) { l = Type.createInstance(this._defaultLayoutClass,[]); } else { l = new haxe_ui_layouts_DefaultLayout(); } } return l; } ,_native: null ,get_native: function() { if(this._native == null) { return false; } if(this.get_hasNativeEntry() == false) { return false; } return this._native; } ,set_native: function(value) { if(this.get_hasNativeEntry() == false) { return value; } if(this._native == value) { return value; } this._native = value; this.get_customStyle().native = value; if(this._native == true && this.get_hasNativeEntry()) { this.addClass(":native"); } else { this.removeClass(":native"); } this.behaviours.cache(); this.behaviours.detatch(); this.create(); if(this.get_layout() != null) { this.set_layout(this.createLayout()); } this.behaviours.restore(); return value; } ,_animatable: null ,get_animatable: function() { return this._animatable; } ,set_animatable: function(value) { if(this._animatable != value) { if(value == false && this._componentAnimation != null) { this._componentAnimation.stop(); this._componentAnimation = null; } this._animatable = value; } this._animatable = value; return value; } ,_componentAnimation: null ,get_componentAnimation: function() { return this._componentAnimation; } ,set_componentAnimation: function(value) { if(this._componentAnimation != value && this._animatable == true) { if(this._componentAnimation != null) { this._componentAnimation.stop(); } this._componentAnimation = value; } return value; } ,userData: null ,userDataAs: function(c) { return this.userData; } ,screen: null ,get_screen: function() { return haxe_ui_Toolkit.get_screen(); } ,bindingRoot: null ,get_rootComponent: function() { var r = this; while(r.get_parentComponent() != null) r = r.get_parentComponent(); return r; } ,get_numComponents: function() { var n = 0; if(this._compositeBuilder != null) { var builderCount = this._compositeBuilder.get_numComponents(); if(builderCount != null) { n = builderCount; } else if(this._children != null) { n = this._children.length; } } else if(this._children != null) { n = this._children.length; } return n; } ,addComponent: function(child) { if(this._compositeBuilder != null) { var v = this._compositeBuilder.addComponent(child); if(v != null) { v.set_scriptAccess(this.get_scriptAccess()); return v; } } if(this.get_native() == true) { var allowChildren = this.getNativeConfigPropertyBool(".@allowChildren",true); if(allowChildren == false) { return child; } } child.set_parentComponent(this); child._isDisposed = false; if(this._children == null) { this._children = []; } this._children.push(child); this.handleAddComponent(child); if(this._componentReady) { child.ready(); } this.assignPositionClasses(); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } if(this.get_disabled()) { child.set_disabled(true); } if(this._compositeBuilder != null) { this._compositeBuilder.onComponentAdded(child); } this.onComponentAdded(child); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED); event.relatedComponent = child; this.dispatch(event); child.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED_TO_PARENT)); child.set_scriptAccess(this.get_scriptAccess()); return child; } ,containsComponent: function(child) { if(child == null) { return false; } var contains = false; this.walkComponents(function(c) { if(child == c) { contains = true; } return !contains; }); return contains; } ,addComponentAt: function(child,index) { if(this._compositeBuilder != null) { var v = this._compositeBuilder.addComponentAt(child,index); if(v != null) { v.set_scriptAccess(this.get_scriptAccess()); return v; } } if(this.get_native() == true) { var allowChildren = this.getNativeConfigPropertyBool(".@allowChildren",true); if(allowChildren == false) { return child; } } child.set_parentComponent(this); child._isDisposed = false; if(this._children == null) { this._children = []; } this._children.splice(index,0,child); this.handleAddComponentAt(child,index); if(this._componentReady) { child.ready(); } this.assignPositionClasses(); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } if(this.get_disabled()) { child.set_disabled(true); } if(this._compositeBuilder != null) { this._compositeBuilder.onComponentAdded(child); } this.onComponentAdded(child); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED)); child.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED_TO_PARENT)); child.set_scriptAccess(this.get_scriptAccess()); return child; } ,onComponentAdded: function(child) { } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(child == null) { return null; } if(this._compositeBuilder != null) { var v = this._compositeBuilder.removeComponent(child,dispose,invalidate); if(v != null) { return v; } } if(this._children != null) { if(this._children.indexOf(child) == -1) { var childId = child.get_className(); if(child.get_id() != null) { childId += "#" + child.get_id(); } var thisId = this.get_className(); if(this.get_id() != null) { thisId += "#" + this.get_id(); } haxe_Log.trace("WARNING: trying to remove a child (" + childId + ") that is not a child of this component (" + thisId + ")",{ fileName : "haxe/ui/core/Component.hx", lineNumber : 502, className : "haxe.ui.core.Component", methodName : "removeComponent"}); return child; } if(HxOverrides.remove(this._children,child)) { child.set_parentComponent(null); child.set_depth(-1); } if(dispose == true) { child.disposeComponent(); } else { child.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); child.removeClass(":hover",false,true); } } this.handleRemoveComponent(child,dispose); this.assignPositionClasses(invalidate); if(this._children != null && invalidate == true) { if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } if(this._compositeBuilder != null) { this._compositeBuilder.onComponentRemoved(child); } this.onComponentRemoved(child); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED); event.relatedComponent = child; this.dispatch(event); child.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED_FROM_PARENT)); return child; } ,disposeComponent: function() { if(this._isDisposed) { return; } this._isDisposed = true; this.removeAllComponents(true); this.destroyComponent(); this.unregisterEventsInternal(); if(this.hasTextDisplay()) { this.getTextDisplay().dispose(); } if(this.hasTextInput()) { this.getTextInput().dispose(); } if(this.hasImageDisplay()) { this.getImageDisplay().dispose(); } if(this.behaviours != null) { this.behaviours.dispose(); this.behaviours = null; } if(this._layout != null) { this._layout.set_component(null); this._layout = null; } if(this._internalEvents != null) { this._internalEvents.onDispose(); this._internalEvents._target = null; this._internalEvents = null; } this.set_parentComponent(null); } ,removeComponentAt: function(index,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(this._children == null) { return null; } var childCount = this._children.length; if(this._compositeBuilder != null) { var compositeChildCount = this._compositeBuilder.get_numComponents(); if(compositeChildCount != null) { childCount = compositeChildCount; } } if(index < 0 || index > childCount - 1) { return null; } if(this._compositeBuilder != null) { var v = this._compositeBuilder.removeComponentAt(index,dispose,invalidate); if(v != null) { return v; } } var child = this._children[index]; if(child == null) { return null; } if(dispose == true) { child._isDisposed = true; child.removeAllComponents(true); } else { child.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); child.removeClass(":hover",false,true); } this.handleRemoveComponentAt(index,dispose); if(HxOverrides.remove(this._children,child)) { child.set_parentComponent(null); child.set_depth(-1); } if(dispose == true) { child.destroyComponent(); child.unregisterEventsInternal(); } this.assignPositionClasses(invalidate); if(invalidate == true) { if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } if(this._compositeBuilder != null) { this._compositeBuilder.onComponentRemoved(child); } this.onComponentRemoved(child); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED)); child.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED_FROM_PARENT)); return child; } ,onComponentRemoved: function(child) { } ,assignPositionClasses: function(invalidate) { if(invalidate == null) { invalidate = true; } if((this._children == null ? [] : this._children).length == 1) { (this._children == null ? [] : this._children)[0].addClasses(["first","last"],invalidate); return; } var effectiveChildCount = 0; var _g = 0; var _g1 = (this._children == null ? [] : this._children).length; while(_g < _g1) { var i = _g++; var c = (this._children == null ? [] : this._children)[i]; if(!c.get_includeInLayout()) { continue; } ++effectiveChildCount; } var n = 0; var _g = 0; var _g1 = (this._children == null ? [] : this._children).length; while(_g < _g1) { var i = _g++; var c = (this._children == null ? [] : this._children)[i]; if(!c.get_includeInLayout()) { continue; } if(i == 0) { c.swapClass("first","last",invalidate); } else if(i == effectiveChildCount - 1) { c.swapClass("last","first",invalidate); } else { c.removeClasses(["first","last"],invalidate); } ++n; } } ,destroyComponent: function() { if(this._compositeBuilder != null) { this._compositeBuilder.destroy(); } haxe_ui_locale_LocaleManager.get_instance().unregisterComponent(this); this.handleDestroy(); this.onDestroy(); } ,onDestroy: function() { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.onDestroy(); } this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.DESTROY)); } ,walkComponents: function(callback) { if(callback(this) == false) { return; } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; var cont = [true]; child.walkComponents((function(cont) { return function(c) { cont[0] = callback(c); return cont[0]; }; })(cont)); if(cont[0] == false) { break; } } } ,removeAllComponents: function(dispose) { if(dispose == null) { dispose = true; } if(this._compositeBuilder != null) { var b = this._compositeBuilder.removeAllComponents(dispose); if(b == true) { return; } } if(this._children != null) { while(this._children.length > 0) { if(dispose) { this._children[0].removeAllComponents(dispose); } this.removeComponent(this._children[0],dispose,false); } if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } } ,matchesSearch: function(criteria,type,searchType) { if(searchType == null) { searchType = "id"; } if(criteria != null) { if(searchType == "id" && this.get_id() == criteria || searchType == "css" && this.classes.indexOf(criteria) != -1 == true) { if(type != null) { return js_Boot.__instanceof(this,type); } return true; } } else if(type != null) { return js_Boot.__instanceof(this,type); } return false; } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } if(recursive == null && criteria != null && searchType == "id") { recursive = true; } var match = null; var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.matchesSearch(criteria,type,searchType)) { match = child; break; } } if(match == null && recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; var temp = child.findComponent(criteria,type,recursive,searchType); if(temp != null) { match = temp; break; } } if(match == null && this._compositeBuilder != null) { match = this._compositeBuilder.findComponent(criteria,type,recursive,searchType); } } return match; } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } if(maxDepth == -1) { maxDepth = 100; } if(maxDepth <= 0) { return []; } --maxDepth; var r = []; if(this._compositeBuilder != null) { var childArray = this._compositeBuilder.findComponents(styleName,type,maxDepth); if(childArray != null) { var _g = 0; while(_g < childArray.length) { var c = childArray[_g]; ++_g; r.push(c); } } } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; var match = true; if(styleName != null && child.classes.indexOf(styleName) != -1 == false) { match = false; } if(type != null && js_Boot.__instanceof(child,type) == false) { match = false; } var continueRecursion = true; if(js_Boot.__implements(child,haxe_ui_core_ICompositeInteractiveComponent) && type == haxe_ui_core_InteractiveComponent) { continueRecursion = false; } if(match == true) { r.push(child); } if(continueRecursion) { var childArray = child.findComponents(styleName,type,maxDepth); var _g2 = 0; while(_g2 < childArray.length) { var c = childArray[_g2]; ++_g2; r.push(c); } } } return r; } ,findAncestor: function(criteria,type,searchType) { if(searchType == null) { searchType = "id"; } var match = null; var p = this.get_parentComponent(); while(p != null) if(p.matchesSearch(criteria,type,searchType)) { match = p; break; } else { p = p.get_parentComponent(); } return match; } ,hitTest: function(left,top,allowZeroSized) { if(allowZeroSized == null) { allowZeroSized = false; } if(this.get_hidden()) { return false; } return haxe_ui_backend_ComponentImpl.prototype.hitTest.call(this,left,top,allowZeroSized); } ,findComponentsUnderPoint: function(screenX,screenY,type) { var c = []; if(this.hitTest(screenX,screenY,false)) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.hitTest(screenX,screenY,false)) { var match = true; if(type != null && js_Boot.__instanceof(child,type) == false) { match = false; } if(match == true) { c.push(child); } c = c.concat(child.findComponentsUnderPoint(screenX,screenY,type)); } } } return c; } ,hasComponentUnderPoint: function(screenX,screenY,type) { var b = false; if(this.hitTest(screenX,screenY,false)) { if(type == null) { return true; } var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.hitTest(screenX,screenY,false)) { var match = true; if(type != null && js_Boot.__instanceof(child,type) == false) { match = false; } if(match == false) { match = child.hasComponentUnderPoint(screenX,screenY,type); } if(match == true) { b = match; break; } } } } return b; } ,getComponentIndex: function(child) { if(this._compositeBuilder != null) { var index = this._compositeBuilder.getComponentIndex(child); if(index != -2147483648) { return index; } } var index = -1; if(this._children != null && child != null) { index = this._children.indexOf(child); } return index; } ,setComponentIndex: function(child,index) { if(this._compositeBuilder != null) { var v = this._compositeBuilder.setComponentIndex(child,index); if(v != null) { return v; } } if(index >= 0 && index <= this._children.length && child.get_parentComponent() == this) { this.handleSetComponentIndex(child,index); HxOverrides.remove(this._children,child); this._children.splice(index,0,child); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } return child; } ,getComponentAt: function(index) { if(this._compositeBuilder != null) { var v = this._compositeBuilder.getComponentAt(index); if(v != null) { return v; } } if(this._children == null) { return null; } return this._children[index]; } ,hide: function() { if(this._compositeBuilder != null) { var v = this._compositeBuilder.hide(); if(v == true) { return; } } if(this._hidden == false) { this._hidden = true; this.handleVisibility(false); if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } this.dispatchRecursively(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); } } ,hideInternal: function(dispatchChildren) { if(dispatchChildren == null) { dispatchChildren = false; } if(this._compositeBuilder != null) { var v = this._compositeBuilder.hide(); if(v == true) { return; } } if(this._hidden == false) { this._hidden = true; this.handleVisibility(false); if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } if(dispatchChildren == true) { this.dispatchRecursively(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); } else { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); } } } ,_invalidateRecursivelyOnShow: null ,show: function() { if(this._compositeBuilder != null) { var v = this._compositeBuilder.show(); if(v == true) { return; } } if(this._hidden == true) { this._hidden = false; this.handleVisibility(true); var recursive = this._invalidateRecursivelyOnShow; if(recursive == null) { recursive = false; } if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",recursive); } this._invalidateRecursivelyOnShow = false; if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } this.dispatchRecursively(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SHOWN)); } } ,showInternal: function(dispatchChildren) { if(dispatchChildren == null) { dispatchChildren = false; } if(this._compositeBuilder != null) { var v = this._compositeBuilder.show(); if(v == true) { return; } } if(this._hidden == true) { this._hidden = false; this.handleVisibility(true); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } if(dispatchChildren == true) { this.dispatchRecursively(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SHOWN)); } else { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SHOWN)); } } } ,fadeIn: function(onEnd,show) { if(show == null) { show = true; } var _gthis = this; if(onEnd != null || show == true) { var prevStart = this.onAnimationStart; var prevEnd = this.onAnimationEnd; if(show == true) { prevStart = this.onAnimationStart; this.set_onAnimationStart(function(e) { _gthis.show(); _gthis.set_onAnimationStart(prevStart); }); } this.set_onAnimationEnd(function(e) { _gthis.removeClass("fade-in"); _gthis.set_onAnimationEnd(prevEnd); if(onEnd != null) { onEnd(); } }); } this.swapClass("fade-in","fade-out"); } ,fadeOut: function(onEnd,hide) { if(hide == null) { hide = true; } var _gthis = this; if(onEnd != null || hide == true) { var prevEnd = this.onAnimationEnd; this.set_onAnimationEnd(function(e) { if(hide == true) { _gthis.hide(); } _gthis.set_onAnimationEnd(prevEnd); _gthis.removeClass("fade-out"); if(onEnd != null) { onEnd(); } }); } this.swapClass("fade-out","fade-in"); } ,_hidden: null ,get_hidden: function() { if(this._hidden == true) { return true; } if(this.get_parentComponent() != null) { return this.get_parentComponent().get_hidden(); } return false; } ,set_hidden: function(value) { if(value == this._hidden) { return value; } if(value == true) { this.hide(); } else { this.show(); } this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"hidden")); return value; } ,_customStyle: null ,get_customStyle: function() { if(this._customStyle == null) { this._customStyle = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } return this._customStyle; } ,set_customStyle: function(value) { if(value != this._customStyle) { this.invalidateComponent("style",false); } this._customStyle = value; return value; } ,classes: null ,cascadeActive: null ,addClass: function(name,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } if(this.classes.indexOf(name) == -1) { this.classes.push(name); if(invalidate == true) { this.invalidateComponent("style",false); } } if(recursive == true || this.cascadeActive == true && name == ":active") { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.addClass(name,invalidate,recursive); } } } ,addClasses: function(names,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } var needsInvalidate = false; var _g = 0; while(_g < names.length) { var name = names[_g]; ++_g; if(this.classes.indexOf(name) == -1) { this.classes.push(name); if(invalidate == true) { needsInvalidate = true; } } } if(needsInvalidate == true) { this.invalidateComponent("style",false); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.addClasses(names,invalidate,recursive); } } } ,removeClass: function(name,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } if(this.classes.indexOf(name) != -1) { HxOverrides.remove(this.classes,name); if(invalidate == true) { this.invalidateComponent("style",false); } } if(recursive == true || this.cascadeActive == true && name == ":active") { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClass(name,invalidate,recursive); } } } ,removeClasses: function(names,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } var needsInvalidate = false; var _g = 0; while(_g < names.length) { var name = names[_g]; ++_g; if(this.classes.indexOf(name) != -1) { HxOverrides.remove(this.classes,name); if(invalidate == true) { needsInvalidate = true; } } } if(needsInvalidate == true) { this.invalidateComponent("style",false); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClasses(names,invalidate,recursive); } } } ,hasClass: function(name) { return this.classes.indexOf(name) != -1; } ,swapClass: function(classToAdd,classToRemove,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } var needsInvalidate = false; if(classToAdd != null && this.classes.indexOf(classToAdd) == -1) { this.classes.push(classToAdd); needsInvalidate = true; } if(classToRemove != null && this.classes.indexOf(classToRemove) != -1) { HxOverrides.remove(this.classes,classToRemove); needsInvalidate = true; } if(invalidate == true && needsInvalidate == true) { this.invalidateComponent("style",false); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.swapClass(classToAdd,classToRemove,invalidate,recursive); } } } ,swapClasses: function(classesToAdd,classesToRemove,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } var needsInvalidate = false; if(classesToAdd != null) { var _g = 0; while(_g < classesToAdd.length) { var classToAdd = classesToAdd[_g]; ++_g; if(classToAdd != null && this.classes.indexOf(classToAdd) == -1) { this.classes.push(classToAdd); needsInvalidate = true; } } } if(classesToRemove != null) { var _g = 0; while(_g < classesToRemove.length) { var classToRemove = classesToRemove[_g]; ++_g; if(classToRemove != null && this.classes.indexOf(classToRemove) != -1) { HxOverrides.remove(this.classes,classToRemove); needsInvalidate = true; } } } if(invalidate == true && needsInvalidate == true) { this.invalidateComponent("style",false); } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.swapClasses(classesToAdd,classesToRemove,invalidate,recursive); } } } ,_styleNames: null ,_styleNamesList: null ,get_styleNames: function() { return this._styleNames; } ,set_styleNames: function(value) { if(value == this._styleNames) { return value; } if(value == null) { value = ""; } this._styleNames = value; var newStyleNamesList = []; var classesToAdd = []; var requiresInvalidation = false; var _g = 0; var _g1 = value.split(" "); while(_g < _g1.length) { var x = _g1[_g]; ++_g; x = StringTools.trim(x); if(x.length == 0) { continue; } newStyleNamesList.push(x); if(this._styleNamesList != null) { if(this._styleNamesList.indexOf(x) == -1) { classesToAdd.push(x); requiresInvalidation = true; } } else { classesToAdd.push(x); requiresInvalidation = true; } } var classesToRemove = []; if(this._styleNamesList != null) { var _g = 0; var _g1 = this._styleNamesList; while(_g < _g1.length) { var x = _g1[_g]; ++_g; if(newStyleNamesList.indexOf(x) == -1) { classesToRemove.push(x); requiresInvalidation = true; } } } this._styleNamesList = newStyleNamesList; if(requiresInvalidation) { var _g = 0; while(_g < classesToAdd.length) { var x = classesToAdd[_g]; ++_g; this.addClass(x,false,false); } var _g = 0; while(_g < classesToRemove.length) { var x = classesToRemove[_g]; ++_g; this.removeClass(x,false,false); } this.invalidateComponent("all",true); } return value; } ,_styleString: null ,get_styleString: function() { return this._styleString; } ,set_styleString: function(value) { if(value == null || value == this._styleString) { return value; } var cssString = StringTools.trim(value); if(cssString.length == 0) { return value; } if(StringTools.endsWith(cssString,";") == false) { cssString += ";"; } cssString = "_ { " + cssString + "}"; var s = new haxe_ui_styles_Parser().parse(cssString); this.get_customStyle().mergeDirectives(s.get_rules()[0].directives); this._styleString = value; this.invalidateComponent("style",false); return value; } ,_useCachedStyleSheetRef: null ,_cachedStyleSheetRef: null ,_styleSheet: null ,get_styleSheet: function() { if(this._useCachedStyleSheetRef == true) { return this._cachedStyleSheetRef; } var s = null; var ref = this; while(ref != null) { if(ref._styleSheet != null) { s = ref._styleSheet; break; } ref = ref.get_parentComponent(); } this._useCachedStyleSheetRef = true; this._cachedStyleSheetRef = s; return s; } ,set_styleSheet: function(value) { this._styleSheet = value; this.resetCachedStyleSheetRef(); return value; } ,resetCachedStyleSheetRef: function() { this._cachedStyleSheetRef = null; this._useCachedStyleSheetRef = false; var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.resetCachedStyleSheetRef(); } } ,_includeInLayout: null ,get_includeInLayout: function() { if(this._hidden == true) { return false; } return this._includeInLayout; } ,set_includeInLayout: function(value) { this._includeInLayout = value; return value; } ,get_layout: function() { return this._layout; } ,set_layout: function(value) { if(value == null) { return value; } var tmp; if(this._layout != null) { var c = js_Boot.getClass(value); var tmp1 = c.__name__; var c = js_Boot.getClass(this._layout); tmp = tmp1 == c.__name__; } else { tmp = false; } if(tmp) { return value; } this._layout = value; this._layout.set_component(this); return value; } ,lockLayout: function(recursive) { if(recursive == null) { recursive = false; } if(this._layoutLocked == true) { return; } this._layoutLocked = true; if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.lockLayout(recursive); } } } ,unlockLayout: function(recursive) { if(recursive == null) { recursive = false; } if(this._layoutLocked == false) { return; } if(recursive == true) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.unlockLayout(recursive); } } this._layoutLocked = false; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } ,ready: function() { var _gthis = this; this.set_depth(haxe_ui_util_ComponentUtil.getDepth(this)); if(this.isComponentInvalid()) { this._invalidateCount = 0; haxe_ui_validation_ValidationManager.get_instance().add(this); } if(this._componentReady == false) { this._componentReady = true; this.handleReady(); if((this._children == null ? [] : this._children) != null) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.ready(); } } this.invalidateComponent(); this.behaviours.ready(); this.behaviours.update(); haxe_ui_Toolkit.callLater(function() { _gthis.invalidateComponent("data",false); _gthis.invalidateComponent("style",false); if(_gthis._compositeBuilder != null) { _gthis._compositeBuilder.onReady(); } _gthis.onReady(); _gthis.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.READY)); if(_gthis._hidden == false) { _gthis.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SHOWN)); } }); } } ,onReady: function() { } ,onInitialize: function() { } ,onResized: function() { } ,onMoved: function() { } ,_scriptAccess: null ,get_scriptAccess: function() { return this._scriptAccess; } ,set_scriptAccess: function(value) { if(value == this._scriptAccess) { return value; } this._scriptAccess = value; var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.set_scriptAccess(value); } return value; } ,namedComponents: null ,get_namedComponents: function() { var list = []; haxe_ui_core_Component.addNamedComponentsFrom(this,list); return list; } ,namedComponentsMap: null ,get_namedComponentsMap: function() { var map = new haxe_ds_StringMap(); var _g = 0; var _g1 = this.get_namedComponents(); while(_g < _g1.length) { var c = _g1[_g]; ++_g; var key = c.get_id(); map.h[key] = c; } return map; } ,onThemeChanged: function() { } ,initializeComponent: function() { if(this._isInitialized == true) { return; } if(this._compositeBuilder != null) { this._compositeBuilder.onInitialize(); } this.onInitialize(); if(this._layout == null) { this.set_layout(this.createLayout()); } this._isInitialized = true; if(this.hasEvent(haxe_ui_events_UIEvent.INITIALIZE)) { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.INITIALIZE)); } } ,_initialSizeApplied: null ,validateInitialSize: function(isInitialized) { if(isInitialized == false && this._style != null && this._initialSizeApplied == false) { if((this._style.initialWidth != null || this._style.initialPercentWidth != null) && (this.get_width() <= 0 && this.get_percentWidth() == null)) { if(this._style.initialWidth != null) { this.set_width(this._style.initialWidth); this._initialSizeApplied = true; } else if(this._style.initialPercentWidth != null) { this.set_percentWidth(this._style.initialPercentWidth); this._initialSizeApplied = true; } } if((this._style.initialHeight != null || this._style.initialPercentHeight != null) && (this.get_height() <= 0 && this.get_percentHeight() == null)) { if(this._style.initialHeight != null) { this.set_height(this._style.initialHeight); this._initialSizeApplied = true; } else if(this._style.initialPercentHeight != null) { this.set_percentHeight(this._style.initialPercentHeight); this._initialSizeApplied = true; } } } } ,validateComponentData: function() { this.behaviours.validateData(); if(this._compositeBuilder != null) { this._compositeBuilder.validateComponentData(); } } ,validateComponentLayout: function() { this.get_layout().refresh(); while(this.validateComponentAutoSize()) this.get_layout().refresh(); var sizeChanged = false; if(this._componentWidth != this._actualWidth || this._componentHeight != this._actualHeight) { this._actualWidth = this._componentWidth; this._actualHeight = this._componentHeight; this.enforceSizeConstraints(); if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } this.onResized(); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.RESIZE)); sizeChanged = true; } if(this._compositeBuilder != null) { if(this._compositeBuilder.validateComponentLayout()) { sizeChanged = true; } } return sizeChanged; } ,enforceSizeConstraints: function() { if(this.get_style() != null) { if(this.get_style().minWidth != null && this._componentWidth < this.get_style().minWidth) { this._componentWidth = this._actualWidth = this._width = this.get_style().minWidth; } if(this.get_style().maxWidth != null && this.get_style().maxPercentWidth == null && this._componentWidth > this.get_style().maxWidth) { this._componentWidth = this._actualWidth = this._width = this.get_style().maxWidth; } else if(this.get_style().maxWidth == null && this.get_style().maxPercentWidth != null) { var p = this; var max = 0; while(p != null) { if(p.get_style() != null && p.get_style().maxPercentWidth == null) { max += p.get_width(); break; } if(p.get_style() != null && p != this) { max -= p.get_style().paddingLeft + p.get_style().paddingRight; } p = p.get_parentComponent(); } max = max * this.get_style().maxPercentWidth / 100; if(max > 0 && this._componentWidth > max) { this._componentWidth = this._actualWidth = this._width = max; } } if(this.get_style().minHeight != null && this._componentHeight < this.get_style().minHeight) { this._componentHeight = this._actualHeight = this._height = this.get_style().minHeight; } if(this.get_style().maxHeight != null && this.get_style().maxPercentHeight == null && this._componentHeight > this.get_style().maxHeight) { this._componentHeight = this._actualHeight = this._height = this.get_style().maxHeight; } else if(this.get_style().maxHeight == null && this.get_style().maxPercentHeight != null) { var p = this; var max = 0; while(p != null) { if(p.get_style() != null && p.get_style().maxPercentHeight == null) { max += p.get_height(); break; } if(p.get_style() != null && p != this) { max -= p.get_style().paddingTop + p.get_style().paddingBottom; } p = p.get_parentComponent(); } max = max * this.get_style().maxPercentHeight / 100; if(max > 0 && this._componentHeight > max) { this._componentHeight = this._actualHeight = this._height = max; } } } } ,validateComponentStyle: function() { var s = haxe_ui_Toolkit.styleSheet.buildStyleFor(this); if(this.get_styleSheet() != null) { var localStyle = this.get_styleSheet().buildStyleFor(this); s.apply(localStyle); } s.apply(this.get_customStyle()); if(this._style == null || this._style.equalTo(s) == false) { var marginsChanged = false; if(this.get_parentComponent() != null && this._style != null) { marginsChanged = this._style.marginLeft != s.marginLeft || this._style.marginRight != s.marginRight || this._style.marginTop != s.marginTop || this._style.marginBottom != s.marginBottom; } var bordersChanged = false; if(this._style != null && this._style.get_fullBorderSize() != s.get_fullBorderSize()) { bordersChanged = true; } this._style = s; this.applyStyle(s); if(bordersChanged == true) { if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } if(marginsChanged == true) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } } } ,validateComponentPosition: function() { this.handlePosition(this._left,this._top,this._style); this.onMoved(); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.MOVE)); } ,updateComponentDisplay: function() { if(this.get_componentWidth() == null || this.get_componentHeight() == null) { return; } this.handleSize(this.get_componentWidth(),this.get_componentHeight(),this._style); if(this._componentClipRect != null || this.get_style() != null && this.get_style().clip != null && this.get_style().clip == true) { this.handleClipRect(this._componentClipRect != null ? this._componentClipRect : new haxe_ui_geom_Rectangle(0,0,this.get_componentWidth(),this.get_componentHeight())); } } ,validateComponentAutoSize: function() { var invalidate = false; if(this.get_autoWidth() == true || this.get_autoHeight() == true) { var s = this.get_layout().calcAutoSize(); if(this.get_autoWidth() == true) { if(s.width != this._componentWidth) { this._componentWidth = s.width; invalidate = true; } } if(this.get_autoHeight() == true) { if(s.height != this._componentHeight) { this._componentHeight = s.height; invalidate = true; } } } return invalidate; } ,_pauseAnimationStyleChanges: null ,applyStyle: function(style) { haxe_ui_backend_ComponentImpl.prototype.applyStyle.call(this,style); if(style != null && this._initialSizeApplied == false) { if((style.initialWidth != null || style.initialPercentWidth != null) && (this.get_width() <= 0 && this.get_percentWidth() == null)) { if(style.initialWidth != null) { this.set_width(style.initialWidth); this._initialSizeApplied = true; } else if(style.initialPercentWidth != null) { this.set_percentWidth(style.initialPercentWidth); this._initialSizeApplied = true; } } if((style.initialHeight != null || style.initialPercentHeight != null) && (this.get_height() <= 0 && this.get_percentHeight() == null)) { if(style.initialHeight != null) { this.set_height(style.initialHeight); this._initialSizeApplied = true; } else if(style.initialPercentHeight != null) { this.set_percentHeight(style.initialPercentHeight); this._initialSizeApplied = true; } } } if(style.left != null) { this.set_left(style.left); } if(style.top != null) { this.set_top(style.top); } if(style.percentWidth != null) { this._width = null; this.set_componentWidth(null); this.set_percentWidth(style.percentWidth); } if(style.percentHeight != null) { this._height = null; this.set_componentHeight(null); this.set_percentHeight(style.percentHeight); } if(style.width != null) { this.set_percentWidth(null); this.set_width(style.width); } if(style.height != null) { this.set_percentHeight(null); this.set_height(style.height); } if(style.native != null) { this.set_native(style.native); } if(style.hidden != null) { this.set_hidden(style.hidden); } if(this._pauseAnimationStyleChanges == false) { if(style.animationName != null) { var animationKeyFrames = haxe_ui_Toolkit.styleSheet.get_animations().h[style.animationName]; this.applyAnimationKeyFrame(animationKeyFrames,style.animationOptions); } else if(this.get_componentAnimation() != null) { this.set_componentAnimation(null); } } if(style.pointerEvents != null && style.pointerEvents != "none") { if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onPointerEventsMouseOver)) == false) { if(style.cursor == null) { this.get_customStyle().cursor = "pointer"; } this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onPointerEventsMouseOver)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onPointerEventsMouseOut)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onPointerEventsMouseOut)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onPointerEventsMouseDown)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onPointerEventsMouseDown)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onPointerEventsMouseUp)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onPointerEventsMouseUp)); } this.handleFrameworkProperty("allowMouseInteraction",true); } else if(style.pointerEvents != null) { if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onPointerEventsMouseOver)) == true) { this.get_customStyle().cursor = null; this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onPointerEventsMouseOver)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onPointerEventsMouseOut)) == true) { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onPointerEventsMouseOut)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onPointerEventsMouseDown)) == true) { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onPointerEventsMouseDown)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onPointerEventsMouseUp)) == true) { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onPointerEventsMouseUp)); } this.handleFrameworkProperty("allowMouseInteraction",false); } if(style.includeInLayout != null) { this.set_includeInLayout(style.includeInLayout); } if(style.customDirectives != null) { var h = style.customDirectives.h; var directive_h = h; var directive_keys = Object.keys(h); var directive_length = directive_keys.length; var directive_current = 0; while(directive_current < directive_length) { var directive = directive_keys[directive_current++]; if(Object.prototype.hasOwnProperty.call(haxe_ui_styles_DirectiveHandler._directiveHandlers.h,directive)) { var instance = haxe_ui_styles_DirectiveHandler._directiveHandlerInstances.h[directive]; var handler; if(instance != null) { handler = instance; } else { var ctor = haxe_ui_styles_DirectiveHandler._directiveHandlers.h[directive]; if(ctor == null) { handler = null; } else { instance = ctor(); haxe_ui_styles_DirectiveHandler._directiveHandlerInstances.h[directive] = instance; handler = instance; } } if(handler != null) { handler.apply(this,style.customDirectives.h[directive]); } } } } if(this._compositeBuilder != null) { this._compositeBuilder.applyStyle(style); } } ,recursivePointerEvents: null ,onPointerEventsMouseOver: function(e) { this.addClass(":hover",true,this.recursivePointerEvents); } ,onPointerEventsMouseOut: function(e) { this.removeClass(":hover",true,this.recursivePointerEvents); } ,onPointerEventsMouseDown: function(e) { this.addClass(":down",true,this.recursivePointerEvents); } ,onPointerEventsMouseUp: function(e) { this.removeClass(":down",true,this.recursivePointerEvents); } ,applyAnimationKeyFrame: function(animationKeyFrames,options) { var _gthis = this; if(this._animatable == false || options == null || options.duration == 0 || this._componentAnimation != null && this._componentAnimation.name == animationKeyFrames.id && options.compareToAnimation(this._componentAnimation) == true) { return; } if(this.hasEvent(haxe_ui_events_AnimationEvent.START)) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.START)); } this.set_componentAnimation(haxe_ui_styles_animation_Animation.createWithKeyFrames(animationKeyFrames,this,options)); this.get_componentAnimation().run(function() { if(_gthis.hasEvent(haxe_ui_events_AnimationEvent.END)) { _gthis.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.END)); } }); } ,cloneComponent: function() { var c = haxe_ui_backend_ComponentImpl.prototype.cloneComponent.call(this); if(this.get_styleNames() != null) { c.set_styleNames(this.get_styleNames()); } if(this.get_styleString() != null) { c.set_styleString(this.get_styleString()); } var tmp = this._componentReady == false; if(this.get_layout() != null) { c.set_layout(this.get_layout().cloneLayout()); } if(this._hidden == true) { c.hide(); } if(this.get_autoWidth() == false && this.get_width() > 0) { c.set_width(this.get_width()); } if(this.get_autoHeight() == false && this.get_height() > 0) { c.set_height(this.get_height()); } if(this.get_customStyle() != null) { if(c.get_customStyle() == null) { c.set_customStyle(new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null)); } c.get_customStyle().apply(this.get_customStyle()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,get_isComponentClipped: function() { if(this._compositeBuilder != null) { return this._compositeBuilder.get_isComponentClipped(); } return this.get_componentClipRect() != null; } ,cssName: null ,get_cssName: function() { var cssName = null; if(this._compositeBuilder != null) { cssName = this._compositeBuilder.get_cssName(); } if(cssName == null) { var c = js_Boot.getClass(this); cssName = c.__name__.split(".").pop().toLowerCase(); } return cssName; } ,isComponentSolid: null ,get_isComponentSolid: function() { if(this.get_style() == null) { return false; } if(this.get_style().backgroundColor != null || this.get_style().backgroundImage != null) { if(this.get_style().opacity == null || this.get_style().opacity > 0) { if(this.get_style().backgroundOpacity == null || this.get_style().backgroundOpacity > 0) { return true; } } } return false; } ,registerBehaviours: function() { haxe_ui_backend_ComponentImpl.prototype.registerBehaviours.call(this); } ,get_backgroundColor: function() { if(this.get_customStyle().backgroundColor != null) { return this.get_customStyle().backgroundColor; } if(this.get_style() == null || this.get_style().backgroundColor == null) { return null; } return this.get_style().backgroundColor; } ,set_backgroundColor: function(value) { if(this.get_customStyle().backgroundColor == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().backgroundColor = null; } else { this.get_customStyle().backgroundColor = haxe_ui_util_Color.toInt(value); } this.invalidateComponent("style",false); return value; } ,get_backgroundColorEnd: function() { if(this.get_customStyle().backgroundColorEnd != null) { return this.get_customStyle().backgroundColorEnd; } if(this.get_style() == null || this.get_style().backgroundColorEnd == null) { return null; } return this.get_style().backgroundColorEnd; } ,set_backgroundColorEnd: function(value) { if(this.get_customStyle().backgroundColorEnd == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().backgroundColorEnd = null; } else { this.get_customStyle().backgroundColorEnd = haxe_ui_util_Color.toInt(value); } this.invalidateComponent("style",false); return value; } ,get_backgroundImage: function() { if(this.get_customStyle().backgroundImage != null) { return this.get_customStyle().backgroundImage; } if(this.get_style() == null || this.get_style().backgroundImage == null) { return null; } return this.get_style().backgroundImage; } ,set_backgroundImage: function(value) { if(haxe_ui_util_Variant.eq(this.get_customStyle().backgroundImage,value)) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().backgroundImage = null; } else { this.get_customStyle().backgroundImage = value; } this.invalidateComponent("style",false); return value; } ,get_borderColor: function() { if(this.get_customStyle().borderColor != null) { return this.get_customStyle().borderColor; } if(this.get_style() == null || this.get_style().borderColor == null) { return null; } return this.get_style().borderColor; } ,set_borderColor: function(value) { if(this.get_customStyle().borderColor == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().borderColor = null; } else { this.get_customStyle().borderColor = haxe_ui_util_Color.toInt(value); } this.get_customStyle().borderTopColor = haxe_ui_util_Color.toInt(value); this.get_customStyle().borderLeftColor = haxe_ui_util_Color.toInt(value); this.get_customStyle().borderBottomColor = haxe_ui_util_Color.toInt(value); this.get_customStyle().borderRightColor = haxe_ui_util_Color.toInt(value); this.invalidateComponent("style",false); return value; } ,get_borderSize: function() { if(this.get_customStyle().borderSize != null) { return this.get_customStyle().borderSize; } if(this.get_style() == null || this.get_style().borderSize == null) { return null; } return this.get_style().borderSize; } ,set_borderSize: function(value) { if(this.get_customStyle().borderSize == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().borderSize = null; } else { this.get_customStyle().borderSize = value; } this.get_customStyle().borderTopSize = value; this.get_customStyle().borderLeftSize = value; this.get_customStyle().borderBottomSize = value; this.get_customStyle().borderRightSize = value; this.invalidateComponent("style",false); return value; } ,get_borderRadius: function() { if(this.get_customStyle().borderRadius != null) { return this.get_customStyle().borderRadius; } if(this.get_style() == null || this.get_style().borderRadius == null) { return null; } return this.get_style().borderRadius; } ,set_borderRadius: function(value) { if(this.get_customStyle().borderRadius == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().borderRadius = null; } else { this.get_customStyle().borderRadius = value; } this.invalidateComponent("style",false); return value; } ,get_padding: function() { if(this.get_customStyle().padding != null) { return this.get_customStyle().padding; } if(this.get_style() == null || this.get_style().padding == null) { return null; } return this.get_style().padding; } ,set_padding: function(value) { if(this.get_customStyle().padding == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().set_padding(null); } else { this.get_customStyle().set_padding(value); } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_paddingLeft: function() { if(this.get_customStyle().paddingLeft != null) { return this.get_customStyle().paddingLeft; } if(this.get_style() == null || this.get_style().paddingLeft == null) { return null; } return this.get_style().paddingLeft; } ,set_paddingLeft: function(value) { if(this.get_customStyle().paddingLeft == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().paddingLeft = null; } else { this.get_customStyle().paddingLeft = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_paddingRight: function() { if(this.get_customStyle().paddingRight != null) { return this.get_customStyle().paddingRight; } if(this.get_style() == null || this.get_style().paddingRight == null) { return null; } return this.get_style().paddingRight; } ,set_paddingRight: function(value) { if(this.get_customStyle().paddingRight == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().paddingRight = null; } else { this.get_customStyle().paddingRight = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_paddingTop: function() { if(this.get_customStyle().paddingTop != null) { return this.get_customStyle().paddingTop; } if(this.get_style() == null || this.get_style().paddingTop == null) { return null; } return this.get_style().paddingTop; } ,set_paddingTop: function(value) { if(this.get_customStyle().paddingTop == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().paddingTop = null; } else { this.get_customStyle().paddingTop = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_paddingBottom: function() { if(this.get_customStyle().paddingBottom != null) { return this.get_customStyle().paddingBottom; } if(this.get_style() == null || this.get_style().paddingBottom == null) { return null; } return this.get_style().paddingBottom; } ,set_paddingBottom: function(value) { if(this.get_customStyle().paddingBottom == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().paddingBottom = null; } else { this.get_customStyle().paddingBottom = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_horizontalSpacing: function() { if(this.get_customStyle().horizontalSpacing != null) { return this.get_customStyle().horizontalSpacing; } if(this.get_style() == null || this.get_style().horizontalSpacing == null) { return null; } return this.get_style().horizontalSpacing; } ,set_horizontalSpacing: function(value) { if(this.get_customStyle().horizontalSpacing == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().horizontalSpacing = null; } else { this.get_customStyle().horizontalSpacing = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_verticalSpacing: function() { if(this.get_customStyle().verticalSpacing != null) { return this.get_customStyle().verticalSpacing; } if(this.get_style() == null || this.get_style().verticalSpacing == null) { return null; } return this.get_style().verticalSpacing; } ,set_verticalSpacing: function(value) { if(this.get_customStyle().verticalSpacing == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().verticalSpacing = null; } else { this.get_customStyle().verticalSpacing = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_marginLeft: function() { if(this.get_customStyle().marginLeft != null) { return this.get_customStyle().marginLeft; } if(this.get_style() == null || this.get_style().marginLeft == null) { return null; } return this.get_style().marginLeft; } ,set_marginLeft: function(value) { if(this.get_customStyle().marginLeft == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().marginLeft = null; } else { this.get_customStyle().marginLeft = value; } this.invalidateComponent("style",false); return value; } ,get_marginRight: function() { if(this.get_customStyle().marginRight != null) { return this.get_customStyle().marginRight; } if(this.get_style() == null || this.get_style().marginRight == null) { return null; } return this.get_style().marginRight; } ,set_marginRight: function(value) { if(this.get_customStyle().marginRight == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().marginRight = null; } else { this.get_customStyle().marginRight = value; } this.invalidateComponent("style",false); return value; } ,get_marginTop: function() { if(this.get_customStyle().marginTop != null) { return this.get_customStyle().marginTop; } if(this.get_style() == null || this.get_style().marginTop == null) { return null; } return this.get_style().marginTop; } ,set_marginTop: function(value) { if(this.get_customStyle().marginTop == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().marginTop = null; } else { this.get_customStyle().marginTop = value; } this.invalidateComponent("style",false); return value; } ,get_marginBottom: function() { if(this.get_customStyle().marginBottom != null) { return this.get_customStyle().marginBottom; } if(this.get_style() == null || this.get_style().marginBottom == null) { return null; } return this.get_style().marginBottom; } ,set_marginBottom: function(value) { if(this.get_customStyle().marginBottom == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().marginBottom = null; } else { this.get_customStyle().marginBottom = value; } this.invalidateComponent("style",false); return value; } ,get_clip: function() { if(this.get_customStyle().clip != null) { return this.get_customStyle().clip; } if(this.get_style() == null || this.get_style().clip == null) { return null; } return this.get_style().clip; } ,set_clip: function(value) { if(this.get_customStyle().clip == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().clip = null; } else { this.get_customStyle().clip = value; } this.invalidateComponent("style",false); return value; } ,get_opacity: function() { if(this.get_customStyle().opacity != null) { return this.get_customStyle().opacity; } if(this.get_style() == null || this.get_style().opacity == null) { return null; } return this.get_style().opacity; } ,set_opacity: function(value) { if(this.get_customStyle().opacity == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().opacity = null; } else { this.get_customStyle().opacity = value; } this.invalidateComponent("style",false); return value; } ,get_horizontalAlign: function() { if(this.get_customStyle().horizontalAlign != null) { return this.get_customStyle().horizontalAlign; } if(this.get_style() == null || this.get_style().horizontalAlign == null) { return null; } return this.get_style().horizontalAlign; } ,set_horizontalAlign: function(value) { if(this.get_customStyle().horizontalAlign == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().horizontalAlign = null; } else { this.get_customStyle().horizontalAlign = value; } this.invalidateComponent("style",false); if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } return value; } ,get_verticalAlign: function() { if(this.get_customStyle().verticalAlign != null) { return this.get_customStyle().verticalAlign; } if(this.get_style() == null || this.get_style().verticalAlign == null) { return null; } return this.get_style().verticalAlign; } ,set_verticalAlign: function(value) { if(this.get_customStyle().verticalAlign == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().verticalAlign = null; } else { this.get_customStyle().verticalAlign = value; } this.invalidateComponent("style",false); if(this.get_parentComponent() != null) { var _this = this.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } return value; } ,self: function() { return new haxe_ui_core_Component(); } ,_internal__onAnimationStart: null ,onAnimationStart: null ,set_onAnimationStart: function(value) { if(this._internal__onAnimationStart != null) { this.unregisterEvent(haxe_ui_events_AnimationEvent.START,this._internal__onAnimationStart); this._internal__onAnimationStart = null; } if(value != null) { this._internal__onAnimationStart = value; this.registerEvent(haxe_ui_events_AnimationEvent.START,value); } return value; } ,_internal__onAnimationFrame: null ,onAnimationFrame: null ,set_onAnimationFrame: function(value) { if(this._internal__onAnimationFrame != null) { this.unregisterEvent(haxe_ui_events_AnimationEvent.FRAME,this._internal__onAnimationFrame); this._internal__onAnimationFrame = null; } if(value != null) { this._internal__onAnimationFrame = value; this.registerEvent(haxe_ui_events_AnimationEvent.FRAME,value); } return value; } ,_internal__onAnimationEnd: null ,onAnimationEnd: null ,set_onAnimationEnd: function(value) { if(this._internal__onAnimationEnd != null) { this.unregisterEvent(haxe_ui_events_AnimationEvent.END,this._internal__onAnimationEnd); this._internal__onAnimationEnd = null; } if(value != null) { this._internal__onAnimationEnd = value; this.registerEvent(haxe_ui_events_AnimationEvent.END,value); } return value; } ,_internal__onClick: null ,onClick: null ,set_onClick: function(value) { if(this._internal__onClick != null) { this.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,this._internal__onClick); this._internal__onClick = null; } if(value != null) { this._internal__onClick = value; this.registerEvent(haxe_ui_events_MouseEvent.CLICK,value); } return value; } ,_internal__onMouseOver: null ,onMouseOver: null ,set_onMouseOver: function(value) { if(this._internal__onMouseOver != null) { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,this._internal__onMouseOver); this._internal__onMouseOver = null; } if(value != null) { this._internal__onMouseOver = value; this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,value); } return value; } ,_internal__onMouseOut: null ,onMouseOut: null ,set_onMouseOut: function(value) { if(this._internal__onMouseOut != null) { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,this._internal__onMouseOut); this._internal__onMouseOut = null; } if(value != null) { this._internal__onMouseOut = value; this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,value); } return value; } ,_internal__onDblClick: null ,onDblClick: null ,set_onDblClick: function(value) { if(this._internal__onDblClick != null) { this.unregisterEvent(haxe_ui_events_MouseEvent.DBL_CLICK,this._internal__onDblClick); this._internal__onDblClick = null; } if(value != null) { this._internal__onDblClick = value; this.registerEvent(haxe_ui_events_MouseEvent.DBL_CLICK,value); } return value; } ,_internal__onRightClick: null ,onRightClick: null ,set_onRightClick: function(value) { if(this._internal__onRightClick != null) { this.unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,this._internal__onRightClick); this._internal__onRightClick = null; } if(value != null) { this._internal__onRightClick = value; this.registerEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,value); } return value; } ,_internal__onChange: null ,onChange: null ,set_onChange: function(value) { if(this._internal__onChange != null) { this.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,this._internal__onChange); this._internal__onChange = null; } if(value != null) { this._internal__onChange = value; this.registerEvent(haxe_ui_events_UIEvent.CHANGE,value); } return value; } ,__class__: haxe_ui_core_Component ,__properties__: $extend(haxe_ui_backend_ComponentImpl.prototype.__properties__,{set_onChange:"set_onChange",set_onRightClick:"set_onRightClick",set_onDblClick:"set_onDblClick",set_onMouseOut:"set_onMouseOut",set_onMouseOver:"set_onMouseOver",set_onClick:"set_onClick",set_onAnimationEnd:"set_onAnimationEnd",set_onAnimationFrame:"set_onAnimationFrame",set_onAnimationStart:"set_onAnimationStart",set_verticalAlign:"set_verticalAlign",get_verticalAlign:"get_verticalAlign",set_horizontalAlign:"set_horizontalAlign",get_horizontalAlign:"get_horizontalAlign",set_opacity:"set_opacity",get_opacity:"get_opacity",set_clip:"set_clip",get_clip:"get_clip",set_marginBottom:"set_marginBottom",get_marginBottom:"get_marginBottom",set_marginTop:"set_marginTop",get_marginTop:"get_marginTop",set_marginRight:"set_marginRight",get_marginRight:"get_marginRight",set_marginLeft:"set_marginLeft",get_marginLeft:"get_marginLeft",set_verticalSpacing:"set_verticalSpacing",get_verticalSpacing:"get_verticalSpacing",set_horizontalSpacing:"set_horizontalSpacing",get_horizontalSpacing:"get_horizontalSpacing",set_paddingBottom:"set_paddingBottom",get_paddingBottom:"get_paddingBottom",set_paddingTop:"set_paddingTop",get_paddingTop:"get_paddingTop",set_paddingRight:"set_paddingRight",get_paddingRight:"get_paddingRight",set_paddingLeft:"set_paddingLeft",get_paddingLeft:"get_paddingLeft",set_padding:"set_padding",get_padding:"get_padding",set_borderRadius:"set_borderRadius",get_borderRadius:"get_borderRadius",set_borderSize:"set_borderSize",get_borderSize:"get_borderSize",set_borderColor:"set_borderColor",get_borderColor:"get_borderColor",set_backgroundImage:"set_backgroundImage",get_backgroundImage:"get_backgroundImage",set_backgroundColorEnd:"set_backgroundColorEnd",get_backgroundColorEnd:"get_backgroundColorEnd",set_backgroundColor:"set_backgroundColor",get_backgroundColor:"get_backgroundColor",get_isComponentSolid:"get_isComponentSolid",get_cssName:"get_cssName",get_namedComponentsMap:"get_namedComponentsMap",get_namedComponents:"get_namedComponents",set_scriptAccess:"set_scriptAccess",get_scriptAccess:"get_scriptAccess",set_layout:"set_layout",get_layout:"get_layout",set_includeInLayout:"set_includeInLayout",get_includeInLayout:"get_includeInLayout",set_styleSheet:"set_styleSheet",get_styleSheet:"get_styleSheet",set_styleString:"set_styleString",get_styleString:"get_styleString",set_styleNames:"set_styleNames",get_styleNames:"get_styleNames",set_customStyle:"set_customStyle",get_customStyle:"get_customStyle",set_hidden:"set_hidden",get_hidden:"get_hidden",get_numComponents:"get_numComponents",get_rootComponent:"get_rootComponent",get_screen:"get_screen",set_componentAnimation:"set_componentAnimation",get_componentAnimation:"get_componentAnimation",set_animatable:"set_animatable",get_animatable:"get_animatable",set_native:"set_native",get_native:"get_native"}) }); var haxe_ui_core_IDataComponent = function() { }; $hxClasses["haxe.ui.core.IDataComponent"] = haxe_ui_core_IDataComponent; haxe_ui_core_IDataComponent.__name__ = "haxe.ui.core.IDataComponent"; haxe_ui_core_IDataComponent.__isInterface__ = true; haxe_ui_core_IDataComponent.prototype = { get_dataSource: null ,set_dataSource: null ,__class__: haxe_ui_core_IDataComponent ,__properties__: {set_dataSource:"set_dataSource",get_dataSource:"get_dataSource"} }; var haxe_ui_containers_Box = function() { this._direction = null; haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.containers.Box"] = haxe_ui_containers_Box; haxe_ui_containers_Box.__name__ = "haxe.ui.containers.Box"; haxe_ui_containers_Box.__interfaces__ = [haxe_ui_core_IDataComponent]; haxe_ui_containers_Box.__super__ = haxe_ui_core_Component; haxe_ui_containers_Box.prototype = $extend(haxe_ui_core_Component.prototype,{ _layoutName: null ,get_layoutName: function() { return this._layoutName; } ,set_layoutName: function(value) { if(this._layoutName == value) { return value; } this._layoutName = value; var l = haxe_ui_layouts_LayoutFactory.createFromName(this.get_layoutName()); if(l != null) { this.set_layout(l); } return value; } ,_itemRenderer: null ,get_itemRenderer: function() { return this._itemRenderer; } ,set_itemRenderer: function(value) { if(this._itemRenderer != value) { this._itemRenderer = value; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } return value; } ,createDefaults: function() { haxe_ui_core_Component.prototype.createDefaults.call(this); if(this._defaultLayoutClass == null) { this._defaultLayoutClass = haxe_ui_layouts_DefaultLayout; } } ,_direction: null ,applyStyle: function(style) { haxe_ui_core_Component.prototype.applyStyle.call(this,style); if(style.direction != null && style.direction != this._direction) { this._direction = style.direction; this.set_layout(haxe_ui_layouts_LayoutFactory.createFromName(this._direction)); } if(style.layout != null) { this.set_layoutName(style.layout); } if(style.layoutProperties != null && this.get_layout() != null) { this.get_layout().applyProperties(style.layoutProperties); } } ,registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$Box_Builder; this._defaultLayoutClass = haxe_ui_layouts_DefaultLayout; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("icon",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("dataSource",haxe_ui_containers__$Box_DataSourceBehaviour); } ,get_icon: function() { if(this.behaviours == null) { return null; } return this.behaviours.get("icon"); } ,set_icon: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("icon",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"icon")); return value; } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if(this.get_layoutName() != null) { c.set_layoutName(this.get_layoutName()); } if(this.get_itemRenderer() != null) { c.set_itemRenderer(this.get_itemRenderer()); } if(this.get_icon() != null) { c.set_icon(this.get_icon()); } if(this.get_dataSource() != null) { c.set_dataSource(this.get_dataSource()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Box(); } ,__class__: haxe_ui_containers_Box ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_dataSource:"set_dataSource",get_dataSource:"get_dataSource",set_icon:"set_icon",get_icon:"get_icon",set_itemRenderer:"set_itemRenderer",get_itemRenderer:"get_itemRenderer",set_layoutName:"set_layoutName",get_layoutName:"get_layoutName"}) }); var funkin_ui_debug_charting_components_ChartEditorPlaybarHead = function() { haxe_ui_containers_Box.call(this); haxe_ui_Toolkit.styleSheet.parse("\n\t\t#playbarHead {\n\t\tborder-radius: 0px;\n\t\t}\n\t\t#playbarHead .button {\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder-radius: 8px;\n\t\tbackground: #8844DD #6622BB vertical;\n\t\t}\n\t\t#playbarHead .slider-value {\n\t\tbackground: #442277 #220055 vertical;\n\t\t}\n\t\t#playbarHead .range-value {\n\t\tbackground: #8844DD #6622BB vertical;\n\t\t}\n\t","user"); var c0 = new haxe_ui_components_HorizontalSlider(); c0.set_id("playbarHead"); c0.set_styleNames("playhead-slider"); this.addComponent(c0); this.bindingRoot = true; this.playbarHead = c0; this.applyRootLayout("box"); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorPlaybarHead"] = funkin_ui_debug_charting_components_ChartEditorPlaybarHead; funkin_ui_debug_charting_components_ChartEditorPlaybarHead.__name__ = "funkin.ui.debug.charting.components.ChartEditorPlaybarHead"; funkin_ui_debug_charting_components_ChartEditorPlaybarHead.__super__ = haxe_ui_containers_Box; funkin_ui_debug_charting_components_ChartEditorPlaybarHead.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new funkin_ui_debug_charting_components_ChartEditorPlaybarHead(); } ,playbarHead: null ,__class__: funkin_ui_debug_charting_components_ChartEditorPlaybarHead }); var funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite = function(chartEditorState) { flixel_addons_display_FlxSliceSprite.call(this,chartEditorState.selectionSquareBitmap,new flixel_math_FlxRect(funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 4,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 4,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - (2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 8),funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - (2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 8)),32,32); }; $hxClasses["funkin.ui.debug.charting.components.ChartEditorSelectionSquareSprite"] = funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite; funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite.__name__ = "funkin.ui.debug.charting.components.ChartEditorSelectionSquareSprite"; funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite.__super__ = flixel_addons_display_FlxSliceSprite; funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite.prototype = $extend(flixel_addons_display_FlxSliceSprite.prototype,{ noteData: null ,eventData: null ,__class__: funkin_ui_debug_charting_components_ChartEditorSelectionSquareSprite }); var haxe_ui_containers_menus_Menu = function() { this.menuBar = null; haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.menus.Menu"] = haxe_ui_containers_menus_Menu; haxe_ui_containers_menus_Menu.__name__ = "haxe.ui.containers.menus.Menu"; haxe_ui_containers_menus_Menu.__super__ = haxe_ui_containers_Box; haxe_ui_containers_menus_Menu.prototype = $extend(haxe_ui_containers_Box.prototype,{ menuBar: null ,onThemeChanged: function() { haxe_ui_containers_Box.prototype.onThemeChanged.call(this); var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers_menus__$Menu_Builder); builder.onThemeChanged(); } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("menuStyleNames",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("currentIndex",haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("currentItem",haxe_ui_containers_menus__$Menu_CurrentItemBehaviour); } ,get_menuStyleNames: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("menuStyleNames")); } ,set_menuStyleNames: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"menuStyleNames",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("menuStyleNames",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"menuStyleNames")); return value; } ,get_currentIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("currentIndex")); } ,set_currentIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("currentIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"currentIndex")); return value; } ,get_currentItem: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("currentItem")); } ,set_currentItem: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("currentItem",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"currentItem")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_menus_Menu(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_menus_MenuEvents; this._compositeBuilderClass = haxe_ui_containers_menus__$Menu_Builder; this._defaultLayoutClass = haxe_ui_containers_menus__$Menu_Layout; } ,_internal__onMenuSelected: null ,onMenuSelected: null ,set_onMenuSelected: function(value) { if(this._internal__onMenuSelected != null) { this.unregisterEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,this._internal__onMenuSelected); this._internal__onMenuSelected = null; } if(value != null) { this._internal__onMenuSelected = value; this.registerEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,value); } return value; } ,__class__: haxe_ui_containers_menus_Menu ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_onMenuSelected:"set_onMenuSelected",set_currentItem:"set_currentItem",get_currentItem:"get_currentItem",set_currentIndex:"set_currentIndex",get_currentIndex:"get_currentIndex",set_menuStyleNames:"set_menuStyleNames",get_menuStyleNames:"get_menuStyleNames"}) }); var funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu = function(chartEditorState,xPos,yPos) { if(yPos == null) { yPos = 0; } if(xPos == null) { xPos = 0; } haxe_ui_containers_menus_Menu.call(this); this.chartEditorState = chartEditorState; this.set_left(xPos); this.set_top(yPos); }; $hxClasses["funkin.ui.debug.charting.contextmenus.ChartEditorBaseContextMenu"] = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.__name__ = "funkin.ui.debug.charting.contextmenus.ChartEditorBaseContextMenu"; funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.__super__ = haxe_ui_containers_menus_Menu; funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype = $extend(haxe_ui_containers_menus_Menu.prototype,{ chartEditorState: null ,registerBehaviours: function() { haxe_ui_containers_menus_Menu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_menus_Menu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState: null ,_constructorParam_xPos: null ,_constructorParam_yPos: null ,self: function() { return new funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu(this._constructorParam_chartEditorState,this._constructorParam_xPos,this._constructorParam_yPos); } ,__class__: funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu }); var funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu = function(chartEditorState2,xPos2,yPos2) { if(yPos2 == null) { yPos2 = 0; } if(xPos2 == null) { xPos2 = 0; } funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.call(this,chartEditorState2,xPos2,yPos2); var c0 = new haxe_ui_containers_menus_MenuItem(); c0.set_id("contextmenuTest"); c0.set_text("Test"); c0.set_shortcutText("Ctrl+Alt+Shift+T"); this.addComponent(c0); this.bindingRoot = true; this.contextmenuTest = c0; this.applyRootLayout("menu"); }; $hxClasses["funkin.ui.debug.charting.contextmenus.ChartEditorDefaultContextMenu"] = funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu.__name__ = "funkin.ui.debug.charting.contextmenus.ChartEditorDefaultContextMenu"; funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu.__super__ = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu.prototype = $extend(funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype,{ registerBehaviours: function() { funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_xPos2: null ,_constructorParam_yPos2: null ,self: function() { return new funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu(this._constructorParam_chartEditorState2,this._constructorParam_xPos2,this._constructorParam_yPos2); } ,contextmenuTest: null ,__class__: funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu }); var funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu = function(chartEditorState2,xPos2,yPos2,data) { if(yPos2 == null) { yPos2 = 0; } if(xPos2 == null) { xPos2 = 0; } funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.call(this,chartEditorState2,xPos2,yPos2); var c0 = new haxe_ui_containers_menus_MenuItem(); c0.set_id("contextmenuEdit"); c0.set_text("Edit Event"); this.addComponent(c0); var c1 = new haxe_ui_containers_menus_MenuItem(); c1.set_id("contextmenuDelete"); c1.set_text("Delete Event"); this.addComponent(c1); this.bindingRoot = true; this.contextmenuEdit = c0; this.contextmenuDelete = c1; this.data = data; this.initialize(); this.applyRootLayout("menu"); }; $hxClasses["funkin.ui.debug.charting.contextmenus.ChartEditorEventContextMenu"] = funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu.__name__ = "funkin.ui.debug.charting.contextmenus.ChartEditorEventContextMenu"; funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu.__super__ = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu.prototype = $extend(funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype,{ contextmenuEdit: null ,contextmenuDelete: null ,data: null ,initialize: function() { var _gthis = this; this.contextmenuEdit.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.showToolbox(_gthis.chartEditorState,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT); }); this.contextmenuDelete.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_RemoveEventsCommand([_gthis.data])); }); } ,registerBehaviours: function() { funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_xPos2: null ,_constructorParam_yPos2: null ,_constructorParam_data: null ,self: function() { return new funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu(this._constructorParam_chartEditorState2,this._constructorParam_xPos2,this._constructorParam_yPos2,this._constructorParam_data); } ,__class__: funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu }); var funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu = function(chartEditorState2,xPos2,yPos2,data) { if(yPos2 == null) { yPos2 = 0; } if(xPos2 == null) { xPos2 = 0; } funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.call(this,chartEditorState2,xPos2,yPos2); var c0 = new haxe_ui_containers_menus_MenuItem(); c0.set_id("contextmenuFlip"); c0.set_text("Flip Note"); this.addComponent(c0); var c1 = new haxe_ui_containers_menus_MenuItem(); c1.set_id("contextmenuRemoveHold"); c1.set_text("Remove Hold"); this.addComponent(c1); var c2 = new haxe_ui_containers_menus_MenuItem(); c2.set_id("contextmenuDelete"); c2.set_text("Delete Note"); this.addComponent(c2); this.bindingRoot = true; this.contextmenuRemoveHold = c1; this.contextmenuFlip = c0; this.contextmenuDelete = c2; this.data = data; this.initialize(); this.applyRootLayout("menu"); }; $hxClasses["funkin.ui.debug.charting.contextmenus.ChartEditorHoldNoteContextMenu"] = funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu.__name__ = "funkin.ui.debug.charting.contextmenus.ChartEditorHoldNoteContextMenu"; funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu.__super__ = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu.prototype = $extend(funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype,{ contextmenuFlip: null ,contextmenuDelete: null ,data: null ,initialize: function() { var _gthis = this; this.contextmenuFlip.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_FlipNotesCommand([_gthis.data])); }); this.contextmenuRemoveHold.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_ExtendNoteLengthCommand(_gthis.data,0)); }); this.contextmenuDelete.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand([_gthis.data])); }); } ,registerBehaviours: function() { funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_xPos2: null ,_constructorParam_yPos2: null ,_constructorParam_data: null ,self: function() { return new funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu(this._constructorParam_chartEditorState2,this._constructorParam_xPos2,this._constructorParam_yPos2,this._constructorParam_data); } ,contextmenuRemoveHold: null ,__class__: funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu }); var funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu = function(chartEditorState2,xPos2,yPos2,data) { if(yPos2 == null) { yPos2 = 0; } if(xPos2 == null) { xPos2 = 0; } funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.call(this,chartEditorState2,xPos2,yPos2); var c0 = new haxe_ui_containers_menus_MenuItem(); c0.set_id("contextmenuFlip"); c0.set_text("Flip Note"); this.addComponent(c0); var c1 = new haxe_ui_containers_menus_MenuItem(); c1.set_id("contextmenuAddHold"); c1.set_text("Add Hold"); this.addComponent(c1); var c2 = new haxe_ui_containers_menus_MenuItem(); c2.set_id("contextmenuDelete"); c2.set_text("Delete Note"); this.addComponent(c2); this.bindingRoot = true; this.contextmenuFlip = c0; this.contextmenuDelete = c2; this.contextmenuAddHold = c1; this.data = data; this.initialize(); this.applyRootLayout("menu"); }; $hxClasses["funkin.ui.debug.charting.contextmenus.ChartEditorNoteContextMenu"] = funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu.__name__ = "funkin.ui.debug.charting.contextmenus.ChartEditorNoteContextMenu"; funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu.__super__ = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu.prototype = $extend(funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype,{ contextmenuFlip: null ,contextmenuDelete: null ,data: null ,initialize: function() { var _gthis = this; this.contextmenuFlip.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_FlipNotesCommand([_gthis.data])); }); this.contextmenuAddHold.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_ExtendNoteLengthCommand(_gthis.data,4,funkin_ui_debug_charting_commands_Unit.STEPS)); }); this.contextmenuDelete.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand([_gthis.data])); }); } ,registerBehaviours: function() { funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_xPos2: null ,_constructorParam_yPos2: null ,_constructorParam_data: null ,self: function() { return new funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu(this._constructorParam_chartEditorState2,this._constructorParam_xPos2,this._constructorParam_yPos2,this._constructorParam_data); } ,contextmenuAddHold: null ,__class__: funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu }); var funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu = function(chartEditorState2,xPos2,yPos2) { if(yPos2 == null) { yPos2 = 0; } if(xPos2 == null) { xPos2 = 0; } funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.call(this,chartEditorState2,xPos2,yPos2); var c0 = new haxe_ui_containers_menus_MenuItem(); c0.set_id("contextmenuCut"); c0.set_text("Cut Selection"); c0.set_shortcutText("Ctrl+X"); this.addComponent(c0); var c1 = new haxe_ui_containers_menus_MenuItem(); c1.set_id("contextmenuCopy"); c1.set_text("Copy Selection"); c1.set_shortcutText("Ctrl+C"); this.addComponent(c1); var c2 = new haxe_ui_containers_menus_MenuItem(); c2.set_id("contextmenuDelete"); c2.set_text("Delete Selection"); c2.set_shortcutText("Delete"); this.addComponent(c2); var c3 = new haxe_ui_containers_menus_MenuSeparator(); this.addComponent(c3); var c4 = new haxe_ui_containers_menus_MenuItem(); c4.set_id("contextmenuFlip"); c4.set_text("Flip Selected Notes"); this.addComponent(c4); var c5 = new haxe_ui_containers_menus_MenuSeparator(); this.addComponent(c5); var c6 = new haxe_ui_containers_menus_MenuItem(); c6.set_id("contextmenuSelectAll"); c6.set_text("Select All"); c6.set_shortcutText("Ctrl+A"); this.addComponent(c6); var c7 = new haxe_ui_containers_menus_MenuItem(); c7.set_id("contextmenuSelectInverse"); c7.set_text("Select Inverse"); c7.set_shortcutText("Ctrl+I"); this.addComponent(c7); var c8 = new haxe_ui_containers_menus_MenuItem(); c8.set_id("contextmenuSelectNone"); c8.set_text("Select None"); c8.set_shortcutText("Ctrl+D"); this.addComponent(c8); this.bindingRoot = true; this.contextmenuSelectNone = c8; this.contextmenuSelectInverse = c7; this.contextmenuSelectAll = c6; this.contextmenuFlip = c4; this.contextmenuDelete = c2; this.contextmenuCut = c0; this.contextmenuCopy = c1; this.initialize(); this.applyRootLayout("menu"); }; $hxClasses["funkin.ui.debug.charting.contextmenus.ChartEditorSelectionContextMenu"] = funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu.__name__ = "funkin.ui.debug.charting.contextmenus.ChartEditorSelectionContextMenu"; funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu.__super__ = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu; funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu.prototype = $extend(funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype,{ contextmenuCut: null ,contextmenuCopy: null ,contextmenuPaste: null ,contextmenuDelete: null ,contextmenuFlip: null ,contextmenuSelectAll: null ,contextmenuSelectInverse: null ,contextmenuSelectNone: null ,initialize: function() { var _gthis = this; this.contextmenuCut.set_onClick(function(_) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_CutItemsCommand(_gthis.chartEditorState.currentNoteSelection,_gthis.chartEditorState.currentEventSelection)); }); this.contextmenuCopy.set_onClick(function(_) { _gthis.chartEditorState.copySelection(); }); this.contextmenuFlip.set_onClick(function(_) { if(_gthis.chartEditorState.currentNoteSelection.length > 0 && _gthis.chartEditorState.currentEventSelection.length > 0) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_RemoveItemsCommand(_gthis.chartEditorState.currentNoteSelection,_gthis.chartEditorState.currentEventSelection)); } else if(_gthis.chartEditorState.currentNoteSelection.length > 0) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_RemoveNotesCommand(_gthis.chartEditorState.currentNoteSelection)); } else if(_gthis.chartEditorState.currentEventSelection.length > 0) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_RemoveEventsCommand(_gthis.chartEditorState.currentEventSelection)); } }); } ,registerBehaviours: function() { funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_contextmenus_ChartEditorBaseContextMenu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_xPos2: null ,_constructorParam_yPos2: null ,self: function() { return new funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu(this._constructorParam_chartEditorState2,this._constructorParam_xPos2,this._constructorParam_yPos2); } ,__class__: funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu }); var haxe_ui_extensions_Draggable = function() { }; $hxClasses["haxe.ui.extensions.Draggable"] = haxe_ui_extensions_Draggable; haxe_ui_extensions_Draggable.__name__ = "haxe.ui.extensions.Draggable"; haxe_ui_extensions_Draggable.__isInterface__ = true; var haxe_ui_backend_DialogBase = function() { this._dragOptions = null; this._dragInitiator = null; this._buttonsCreated = false; this._forcedTop = null; this._forcedLeft = null; this._dialogParent = null; this._autoSizeDialog = false; this.destroyOnClose = true; this.defaultButton = null; this.button = null; this.centerDialog = true; this.buttons = null; this.autoCenterDialog = true; this.modal = true; var _gthis = this; haxe_ui_containers_Box.call(this); this.dialogContainer = new haxe_ui_containers_VBox(); this.dialogContainer.set_id("dialog-container"); this.dialogContainer.set_styleNames("dialog-container"); this.dialogContainer.set_scriptAccess(false); this.addComponent(this.dialogContainer); this.dialogTitle = new haxe_ui_containers_HBox(); this.dialogTitle.set_id("dialog-title"); this.dialogTitle.set_styleNames("dialog-title"); this.dialogTitle.set_scriptAccess(false); this.set_dragInitiator(this.dialogTitle); this.dialogContainer.addComponent(this.dialogTitle); this.dialogTitleLabel = new haxe_ui_components_Label(); this.dialogTitleLabel.set_id("dialog-title-label"); this.dialogTitleLabel.set_styleNames("dialog-title-label"); this.dialogTitleLabel.set_text("HaxeUI"); this.dialogTitleLabel.set_scriptAccess(false); this.dialogTitle.addComponent(this.dialogTitleLabel); this.dialogCloseButton = new haxe_ui_components_Image(); this.dialogCloseButton.set_id("dialog-close-button"); this.dialogCloseButton.set_styleNames("dialog-close-button"); this.dialogCloseButton.set_scriptAccess(false); this.dialogTitle.addComponent(this.dialogCloseButton); this.dialogContent = new haxe_ui_containers_VBox(); this.dialogContent.set_id("dialog-content"); this.dialogContent.set_styleNames("dialog-content"); this.dialogContent.set_scriptAccess(false); this.dialogContent.registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this.onContentResize)); this.dialogContainer.addComponent(this.dialogContent); this.dialogFooterContainer = new haxe_ui_containers_Box(); this.dialogFooterContainer.set_id("dialog-footer-container"); this.dialogFooterContainer.set_styleNames("dialog-footer-container"); this.dialogFooterContainer.set_scriptAccess(false); this.dialogContainer.addComponent(this.dialogFooterContainer); this.dialogFooter = new haxe_ui_containers_HBox(); this.dialogFooter.set_id("dialog-footer"); this.dialogFooter.set_styleNames("dialog-footer"); this.dialogFooter.set_scriptAccess(false); this.dialogFooter.registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this.onFooterResize)); this.dialogFooterContainer.addComponent(this.dialogFooter); this.dialogFooterContainer.hide(); this.dialogCloseButton.set_onClick(function(e) { _gthis.hideDialog("{{cancel}}"); }); this.registerEvent(haxe_ui_events_UIEvent.SUBMIT,$bind(this,this.onSubmit)); }; $hxClasses["haxe.ui.backend.DialogBase"] = haxe_ui_backend_DialogBase; haxe_ui_backend_DialogBase.__name__ = "haxe.ui.backend.DialogBase"; haxe_ui_backend_DialogBase.__interfaces__ = [haxe_ui_extensions_Draggable]; haxe_ui_backend_DialogBase.__super__ = haxe_ui_containers_Box; haxe_ui_backend_DialogBase.prototype = $extend(haxe_ui_containers_Box.prototype,{ modal: null ,autoCenterDialog: null ,buttons: null ,centerDialog: null ,button: null ,defaultButton: null ,_overlay: null ,dialogContainer: null ,dialogTitle: null ,dialogTitleLabel: null ,dialogCloseButton: null ,dialogContent: null ,dialogFooterContainer: null ,dialogFooter: null ,destroyOnClose: null ,onSubmit: function(event) { if(this.defaultButton != null) { this.hideDialog(this.defaultButton); } } ,_autoSizeDialog: null ,onReady: function() { haxe_ui_containers_Box.prototype.onReady.call(this); this._autoSizeDialog = this.get_autoWidth(); } ,_dialogParent: null ,get_dialogParent: function() { return this._dialogParent; } ,set_dialogParent: function(value) { this._dialogParent = value; return value; } ,showDialog: function(modal) { if(modal == null) { modal = true; } this.modal = modal; this.show(); } ,_forcedLeft: null ,set_left: function(value) { haxe_ui_containers_Box.prototype.set_left.call(this,value); this.autoCenterDialog = false; this._forcedLeft = value; return value; } ,_forcedTop: null ,set_top: function(value) { haxe_ui_containers_Box.prototype.set_top.call(this,value); this.autoCenterDialog = false; this._forcedTop = value; return value; } ,show: function() { var _gthis = this; var dp = this.get_dialogParent(); if(this.modal) { if(this._overlay == null) { this._overlay = new haxe_ui_core_Component(); this._overlay.set_id("modal-background"); this._overlay.addClass("modal-background"); this._overlay.set_percentWidth(this._overlay.set_percentHeight(100)); this._overlay.set_onClick(function(_) { if(_gthis.get_closable()) { _gthis.hideDialog("{{cancel}}"); } }); } if(dp != null) { this.set_includeInLayout(false); this._overlay.set_includeInLayout(false); this._overlay.set_height(dp.get_height()); this._overlay.set_width(dp.get_width()); dp.addComponent(this._overlay); } else { haxe_ui_core_Screen.get_instance().addComponent(this._overlay); } } this.createButtons(); if(dp != null) { dp.addComponent(this); } else { haxe_ui_core_Screen.get_instance().addComponent(this); } this.syncComponentValidation(); if(this.get_autoHeight() == false) { this.dialogContainer.set_percentHeight(100); this.dialogContent.set_percentHeight(100); } if(this.centerDialog) { this.centerDialogComponent(js_Boot.__cast(this , haxe_ui_containers_dialogs_Dialog)); } haxe_ui_Toolkit.callLater(function() { if(_gthis.centerDialog) { _gthis.centerDialogComponent(js_Boot.__cast(_gthis , haxe_ui_containers_dialogs_Dialog)); } haxe_ui_Toolkit.callLater(function() { _gthis.handleVisibility(true); if(_gthis.centerDialog) { _gthis.centerDialogComponent(js_Boot.__cast(_gthis , haxe_ui_containers_dialogs_Dialog)); } _gthis._forcedLeft = null; _gthis._forcedTop = null; if(dp != null) { dp.registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(_gthis,_gthis._onParentResized)); } else { haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(_gthis,_gthis._onScreenResized)); } }); }); } ,_onScreenResized: function(_) { if(!this.autoCenterDialog) { return; } this._forcedLeft = null; this._forcedTop = null; this.centerDialogComponent(this); } ,_onParentResized: function(_) { if(this._overlay != null) { this._overlay.set_width(this.get_dialogParent().get_width()); this._overlay.set_height(this.get_dialogParent().get_height()); } if(!this.autoCenterDialog) { return; } this._forcedLeft = null; this._forcedTop = null; this.centerDialogComponent(this,false); } ,_buttonsCreated: null ,createButtons: function() { if(this._buttonsCreated == true) { return; } if(this.buttons != null) { var _g = 0; var _g1 = haxe_ui_containers_dialogs_DialogButton.toArray(this.buttons); while(_g < _g1.length) { var button = _g1[_g]; ++_g; var buttonComponent = new haxe_ui_components_Button(); buttonComponent.set_id(haxe_ui_containers_dialogs_DialogButton.toString(button).toLowerCase()); var text = haxe_ui_containers_dialogs_DialogButton.toString(button); buttonComponent.set_text(text); buttonComponent.userData = button; buttonComponent.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onFooterButtonClick)); if(this.defaultButton != null && buttonComponent.get_text() == this.defaultButton) { buttonComponent.addClass("emphasized"); } this.addFooterComponent(buttonComponent); } this._buttonsCreated = true; } } ,get_closable: function() { return !this.dialogCloseButton.get_hidden(); } ,set_closable: function(value) { if(value == true) { this.dialogCloseButton.show(); } else { this.dialogCloseButton.hide(); } return value; } ,validateDialog: function(button,fn) { fn(true); } ,hide: function() { var _gthis = this; this.validateDialog(this.button,function(result) { if(result == true) { var dp = _gthis.get_dialogParent(); var event = new haxe_ui_containers_dialogs_DialogEvent("dialogClosed"); event.button = _gthis.button; _gthis.dispatch(event); if(event.canceled == true) { return; } if(_gthis.modal && _gthis._overlay != null) { if(dp != null) { dp.removeComponent(_gthis._overlay,_gthis.destroyOnClose); } else { haxe_ui_core_Screen.get_instance().removeComponent(_gthis._overlay,_gthis.destroyOnClose); } } if(dp != null) { dp.removeComponent(_gthis,_gthis.destroyOnClose); } else { haxe_ui_core_Screen.get_instance().removeComponent(_gthis,_gthis.destroyOnClose); } } }); } ,hideDialog: function(button) { this.button = button; this.hide(); } ,get_title: function() { return this.dialogTitleLabel.get_text(); } ,set_title: function(value) { this.dialogTitleLabel.set_text(value); return value; } ,addComponent: function(child) { if(child == this.dialogContainer) { return haxe_ui_containers_Box.prototype.addComponent.call(this,child); } return this.dialogContent.addComponent(child); } ,validateComponentLayout: function() { var b = haxe_ui_containers_Box.prototype.validateComponentLayout.call(this); this.dialogTitle.set_width(this.get_layout().get_innerWidth()); if(this._autoSizeDialog == false) { var offset = this.get_layout().get_paddingLeft() + this.get_layout().get_paddingRight(); if(this.dialogContent.get_width() != this.get_width() - offset) { this.dialogContent.set_width(this.get_width() - offset); } if(this.dialogFooterContainer.get_width() != this.get_width() - offset) { this.dialogFooterContainer.set_width(this.get_width() - offset); } } return b; } ,onDestroy: function() { haxe_ui_containers_Box.prototype.onDestroy.call(this); if(this._overlay != null) { if(this.get_dialogParent() != null) { this.get_dialogParent().removeComponent(this._overlay); } else { haxe_ui_core_Screen.get_instance().removeComponent(this._overlay); } this._overlay = null; } if(this.get_dialogParent() != null) { this.get_dialogParent().unregisterEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this._onParentResized)); } else { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this._onScreenResized)); } } ,onContentResize: function(e) { if(this.dialogFooter.get_width() <= 0 || this.dialogFooterContainer.get_width() <= 0 || this._autoSizeDialog == false) { return; } var cx = Math.max(this.dialogFooter.get_width(),this.dialogContent.get_width()); var offset = this.get_layout().get_paddingLeft() + this.get_layout().get_paddingRight(); var recenter = false; if(cx > 0 && cx != this.get_width() + offset) { this.set_width(cx + offset); recenter = true; } if(this.dialogFooterContainer.get_width() != this.get_width() - offset) { this.dialogFooterContainer.set_width(this.get_width() - offset); } if(recenter == true && this.autoCenterDialog == true) { this.centerDialogComponent(js_Boot.__cast(this , haxe_ui_containers_dialogs_Dialog),false); } } ,onFooterResize: function(e) { if(this.dialogFooter.get_width() <= 0 || this.dialogFooterContainer.get_width() <= 0 || this._autoSizeDialog == false) { return; } var cx = Math.max(this.dialogFooter.get_width(),this.dialogContent.get_width()); var offset = this.get_layout().get_paddingLeft() + this.get_layout().get_paddingRight(); var recenter = false; if(cx > 0 && cx != this.get_width() + offset) { this.set_width(cx + offset); recenter = true; } if(this.dialogFooterContainer.get_width() != this.get_width() - offset) { this.dialogFooterContainer.set_width(this.get_width() - offset); } if(recenter == true && this.autoCenterDialog == true) { this.centerDialogComponent(js_Boot.__cast(this , haxe_ui_containers_dialogs_Dialog),false); } } ,addFooterComponent: function(c) { this.dialogFooterContainer.show(); this.dialogFooter.addComponent(c); } ,centerDialogComponent: function(dialog,validate) { if(validate == null) { validate = true; } if(this._isDisposed) { return; } if(validate == true) { dialog.syncComponentValidation(); } var dp = this.get_dialogParent(); if(dp != null) { if(validate == true) { dp.syncComponentValidation(); } var x = dp.get_actualComponentWidth() / 2 - dialog.get_actualComponentWidth() / 2; if(this._forcedLeft != null && this._forcedLeft > 0) { x = this._forcedLeft; } var y = dp.get_actualComponentHeight() / 2 - dialog.get_actualComponentHeight() / 2; if(this._forcedTop != null && this._forcedTop > 0) { y = this._forcedTop; } dialog.moveComponent(x,y); } else { var x = haxe_ui_core_Screen.get_instance().get_actualWidth() / 2 - dialog.get_actualComponentWidth() / 2; if(this._forcedLeft != null && this._forcedLeft > 0) { x = this._forcedLeft; } var y = haxe_ui_core_Screen.get_instance().get_actualHeight() / 2 - dialog.get_actualComponentHeight() / 2; if(this._forcedTop != null && this._forcedTop > 0) { y = this._forcedTop; } dialog.moveComponent(x,y); } } ,onFooterButtonClick: function(event) { this.hideDialog(event.target.userData); } ,get_draggable: function() { return haxe_ui_dragdrop_DragManager.get_instance().isRegisteredDraggable(this); } ,set_draggable: function(value) { if(value == true) { haxe_ui_dragdrop_DragManager.get_instance().registerDraggable(this,this.get_dragOptions()); } else { haxe_ui_dragdrop_DragManager.get_instance().unregisterDraggable(this); } return value; } ,_dragInitiator: null ,get_dragInitiator: function() { return this._dragInitiator; } ,set_dragInitiator: function(value) { this._dragInitiator = value; if(value != null) { if(this._dragOptions != null) { this._dragOptions.mouseTarget = value; } this.set_draggable(true); } else { this.set_draggable(false); } return value; } ,_dragOptions: null ,get_dragOptions: function() { if(this._dragOptions == null) { this._dragOptions = { mouseTarget : this._dragInitiator}; } return this._dragOptions; } ,set_dragOptions: function(value) { this._dragOptions = value; this.set_draggable(true); return value; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_backend_DialogBase(); } ,_internal__onDragStart: null ,onDragStart: null ,set_onDragStart: function(value) { if(this._internal__onDragStart != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_START,this._internal__onDragStart); this._internal__onDragStart = null; } if(value != null) { this._internal__onDragStart = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_START,value); } return value; } ,_internal__onDrag: null ,onDrag: null ,set_onDrag: function(value) { if(this._internal__onDrag != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG,this._internal__onDrag); this._internal__onDrag = null; } if(value != null) { this._internal__onDrag = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG,value); } return value; } ,_internal__onDragEnd: null ,onDragEnd: null ,set_onDragEnd: function(value) { if(this._internal__onDragEnd != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_END,this._internal__onDragEnd); this._internal__onDragEnd = null; } if(value != null) { this._internal__onDragEnd = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_END,value); } return value; } ,__class__: haxe_ui_backend_DialogBase ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_onDragEnd:"set_onDragEnd",set_onDrag:"set_onDrag",set_onDragStart:"set_onDragStart",set_dragOptions:"set_dragOptions",get_dragOptions:"get_dragOptions",set_dragInitiator:"set_dragInitiator",get_dragInitiator:"get_dragInitiator",set_draggable:"set_draggable",get_draggable:"get_draggable",set_title:"set_title",get_title:"get_title",set_closable:"set_closable",get_closable:"get_closable",set_dialogParent:"set_dialogParent",get_dialogParent:"get_dialogParent"}) }); var haxe_ui_containers_dialogs_Dialog = function() { var _gthis = this; haxe_ui_backend_DialogBase.call(this); haxe_ui_actions_ActionManager.get_instance().registerEvent(haxe_ui_events_ActionEvent.ACTION_START,function(event) { if(_gthis.get_closable() && (event.action == "actionCancel" || event.action == "actionBack")) { _gthis.hideDialog("{{cancel}}"); } }); }; $hxClasses["haxe.ui.containers.dialogs.Dialog"] = haxe_ui_containers_dialogs_Dialog; haxe_ui_containers_dialogs_Dialog.__name__ = "haxe.ui.containers.dialogs.Dialog"; haxe_ui_containers_dialogs_Dialog.__super__ = haxe_ui_backend_DialogBase; haxe_ui_containers_dialogs_Dialog.prototype = $extend(haxe_ui_backend_DialogBase.prototype,{ __onDialogClosed: null ,onDialogClosed: null ,set_onDialogClosed: function(value) { if(this.__onDialogClosed != null) { this.unregisterEvent("dialogClosed",this.__onDialogClosed); this.__onDialogClosed = null; } this.registerEvent("dialogClosed",value); this.__onDialogClosed = value; return value; } ,registerBehaviours: function() { haxe_ui_backend_DialogBase.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_backend_DialogBase.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_dialogs_Dialog(); } ,__class__: haxe_ui_containers_dialogs_Dialog ,__properties__: $extend(haxe_ui_backend_DialogBase.prototype.__properties__,{set_onDialogClosed:"set_onDialogClosed"}) }); var funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog = function(chartEditorState,params) { this.locked = false; var _gthis = this; haxe_ui_containers_dialogs_Dialog.call(this); this.chartEditorState = chartEditorState; this.params = params; this.destroyOnClose = true; var tmp = params.closable; this.set_closable(tmp != null && tmp); this.set_onDialogClosed(function(event) { _gthis.onClose(event); }); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorBaseDialog"] = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorBaseDialog"; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.__super__ = haxe_ui_containers_dialogs_Dialog; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype = $extend(haxe_ui_containers_dialogs_Dialog.prototype,{ chartEditorState: null ,params: null ,locked: null ,showDialog: function(modal) { if(modal == null) { modal = true; } haxe_ui_containers_dialogs_Dialog.prototype.showDialog.call(this,modal); this.fadeInComponent(this,1); } ,onReady: function() { this._overlay.set_opacity(0); this.fadeInDialogOverlay(); } ,onClose: function(event) { this.chartEditorState.isHaxeUIDialogOpen = false; } ,lock: function() { this.locked = true; this.set_closable(false); } ,unlock: function() { this.locked = false; var tmp = this.params.closable; this.set_closable(tmp != null && tmp); } ,fadeInDialogOverlay: function() { if(!this.modal) { haxe_Log.trace("Dialog is not modal, skipping overlay fade...",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorBaseDialog.hx", lineNumber : 81, className : "funkin.ui.debug.charting.dialogs.ChartEditorBaseDialog", methodName : "fadeInDialogOverlay"}); return; } if(this._overlay == null) { haxe_Log.trace("[WARN] Dialog overlay is null, skipping overlay fade...",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorBaseDialog.hx", lineNumber : 87, className : "funkin.ui.debug.charting.dialogs.ChartEditorBaseDialog", methodName : "fadeInDialogOverlay"}); return; } this.fadeInComponent(this._overlay,0.5); } ,fadeInComponent: function(component,fadeTo) { if(fadeTo == null) { fadeTo = 1; } var builder = new haxe_ui_animation_AnimationBuilder(component,funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.OVERLAY_EASE_DURATION,funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.OVERLAY_EASE_TYPE); builder.setPosition(0,"opacity",0,true); builder.setPosition(100,"opacity",fadeTo,true); haxe_Log.trace("Fading in dialog component...",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorBaseDialog.hx", lineNumber : 100, className : "funkin.ui.debug.charting.dialogs.ChartEditorBaseDialog", methodName : "fadeInComponent"}); builder.play(); } ,registerBehaviours: function() { haxe_ui_containers_dialogs_Dialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_dialogs_Dialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState: null ,_constructorParam_params: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog(this._constructorParam_chartEditorState,this._constructorParam_params); } ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog }); var funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog = function(chartEditorState2,params2) { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.call(this,chartEditorState2,params2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); var c1 = new haxe_ui_components_Label(); c1.set_text("Friday Night Funkin'"); c1.set_horizontalAlign("center"); c0.addComponent(c1); var c2 = new haxe_ui_components_Label(); c2.set_text("Chart Editor v1.0"); c2.set_horizontalAlign("center"); c0.addComponent(c2); var c3 = new haxe_ui_components_Label(); c3.set_text("Built by EliteMasterEric"); c3.set_horizontalAlign("center"); c0.addComponent(c3); var c4 = new haxe_ui_components_Label(); c4.set_text("HaxeUI by Ian Harrigan"); c4.set_horizontalAlign("center"); c0.addComponent(c4); this.addComponent(c0); this.set_width(500.); this.set_title("About"); this.bindingRoot = true; this.applyRootLayout("dialog"); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorAboutDialog"] = funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog; funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorAboutDialog"; funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog.build = function(chartEditorState,closable,modal) { var tmp = closable; var tmp1 = modal; var dialog = new funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog(chartEditorState,{ closable : tmp != null ? tmp : true, modal : tmp1 != null ? tmp1 : true}); var tmp = modal; dialog.showDialog(tmp != null ? tmp : true); return dialog; }; funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog.__super__ = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog; funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog.prototype = $extend(funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype,{ registerBehaviours: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_params2: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog(this._constructorParam_chartEditorState2,this._constructorParam_params2); } ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog }); var funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu = function(chartEditorState) { haxe_ui_containers_menus_Menu.call(this); this.chartEditorState = chartEditorState; }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorBaseMenu"] = funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu; funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorBaseMenu"; funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.__super__ = haxe_ui_containers_menus_Menu; funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.prototype = $extend(haxe_ui_containers_menus_Menu.prototype,{ chartEditorState: null ,registerBehaviours: function() { haxe_ui_containers_menus_Menu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_menus_Menu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu(this._constructorParam_chartEditorState); } ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu }); var funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu = function(chartEditorState2,charType,lockPosition) { if(lockPosition == null) { lockPosition = false; } funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_ScrollView(); c1.set_id("charSelectScroll"); c1.set_width(390.); c1.set_height(150.); c1.set_percentContentWidth(100.); c0.addComponent(c1); var c2 = new haxe_ui_components_Label(); c2.set_id("charIconName"); c2.set_text("(choose a character)"); c0.addComponent(c2); this.addComponent(c0); this.set_id("iconSelector"); this.set_width(410.); this.set_height(185.); this.set_padding(8); this.bindingRoot = true; this.charSelectScroll = c1; this.charIconName = c2; this.initialize(charType,lockPosition); this.set_alpha(0); this.set_y(this.y - 10); flixel_tweens_FlxTween.tween(this,{ alpha : 1, y : this.y + 10},0.2,{ ease : flixel_tweens_FlxEase.quartOut}); this.applyRootLayout("menu"); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorCharacterIconSelectorMenu"] = funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu; funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorCharacterIconSelectorMenu"; funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu.build = function(chartEditorState,charType,lockPosition) { if(lockPosition == null) { lockPosition = false; } var menu = new funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu(chartEditorState,charType,lockPosition); haxe_ui_core_Screen.get_instance().addComponent(menu); return menu; }; funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu.__super__ = funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu; funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu.prototype = $extend(funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.prototype,{ charSelectScroll: null ,charIconName: null ,initialize: function(charType,lockPosition) { var _gthis = this; var currentCharId; switch(charType._hx_index) { case 0: currentCharId = this.chartEditorState.get_currentSongMetadata().playData.characters.player; break; case 1: currentCharId = this.chartEditorState.get_currentSongMetadata().playData.characters.opponent; break; case 2: currentCharId = this.chartEditorState.get_currentSongMetadata().playData.characters.girlfriend; break; default: throw haxe_Exception.thrown("Invalid charType: " + Std.string(charType)); } var targetHealthIcon; switch(charType._hx_index) { case 0: targetHealthIcon = this.chartEditorState.healthIconBF; break; case 1: targetHealthIcon = this.chartEditorState.healthIconDad; break; default: targetHealthIcon = null; } if(lockPosition && targetHealthIcon != null) { var x = targetHealthIcon.x + targetHealthIcon.get_width() / 2; var y = targetHealthIcon.y + targetHealthIcon.get_height(); if(y == null) { y = 0; } if(x == null) { x = 0; } var healthIconBottomCenter = new flixel_math_FlxBasePoint(x,y); this.set_x(healthIconBottomCenter.x - this.get_width() / 2); this.set_y(healthIconBottomCenter.y); } else { this.set_x(haxe_ui_core_Screen.get_instance().currentMouseX); this.set_y(haxe_ui_core_Screen.get_instance().currentMouseY); } var charGrid = new haxe_ui_containers_Grid(); charGrid.set_columns(5); charGrid.set_width(this.get_width()); this.charSelectScroll.addComponent(charGrid); var charIds = funkin_play_character_CharacterDataParser.listCharacterIds(); charIds.sort(funkin_util_SortUtil.alphabetically); var defaultText = "(choose a character)"; var _g_current = 0; var _g_array = charIds; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var charIndex = _g_key; var charId = [_g_value]; var charData = [funkin_play_character_CharacterDataParser.fetchCharacterData(charId[0])]; var charButton = new haxe_ui_components_Button(); charButton.set_width(70); charButton.set_height(70); charButton.set_padding(8); charButton.set_iconPosition("top"); if(charId[0] == currentCharId) { this.charSelectScroll.set_hscrollPos(Math.floor(charIndex / 5) * 80); charButton.set_selected(true); defaultText = "" + charData[0].name + " [" + charId[0] + "]"; } var LIMIT = 6; charButton.set_icon(haxe_ui_util_Variant.fromString(funkin_play_character_CharacterDataParser.getCharPixelIconAsset(charId[0]))); charButton.set_text(charData[0].name.length > LIMIT ? "" + HxOverrides.substr(charData[0].name,0,LIMIT) + "." : "" + charData[0].name); charButton.set_onClick((function(charId) { return function(_) { switch(charType._hx_index) { case 0: _gthis.chartEditorState.get_currentSongMetadata().playData.characters.player = charId[0]; break; case 1: _gthis.chartEditorState.get_currentSongMetadata().playData.characters.opponent = charId[0]; break; case 2: _gthis.chartEditorState.get_currentSongMetadata().playData.characters.girlfriend = charId[0]; break; default: throw haxe_Exception.thrown("Invalid charType: " + Std.string(charType)); } _gthis.chartEditorState.healthIconsDirty = true; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(_gthis.chartEditorState,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); }; })(charId)); charButton.set_onMouseOver((function(charData,charId) { return function(_) { _gthis.charIconName.set_text("" + charData[0].name + " [" + charId[0] + "]"); }; })(charData,charId)); charButton.set_onMouseOut((function() { return function(_) { _gthis.charIconName.set_text(defaultText); }; })()); charGrid.addComponent(charButton); } this.charIconName.set_text(defaultText); } ,registerBehaviours: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_dialogs_ChartEditorBaseMenu.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,_constructorParam_charType: null ,_constructorParam_lockPosition: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu(this._constructorParam_chartEditorState2,this._constructorParam_charType,this._constructorParam_lockPosition); } ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu }); var funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog = function(state2,params2) { this.dropHandlers = []; var _gthis = this; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.call(this,state2,params2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_Box(); c1.set_id("chartBox"); c1.set_percentWidth(100.); c1.set_percentHeight(100.); c1.set_styleNames("upload-bg"); c1.set_styleString("border: 2px dotted #DDDDDD; padding: 5px;"); var c2 = new haxe_ui_components_Label(); c2.set_percentWidth(100.); c2.set_text("Drag and drop a chart file (.fnfc) here, or click to browse."); c2.set_styleString("font-size: 24px"); c2.set_verticalAlign("center"); c2.set_textAlign("center"); c2.set_horizontalAlign("center"); c1.addComponent(c2); c0.addComponent(c1); var c3 = new haxe_ui_containers_HBox(); var c4 = new haxe_ui_components_Button(); c4.set_id("dialogCancel"); c4.set_text("Cancel"); c3.addComponent(c4); var c5 = new haxe_ui_components_Spacer(); c5.set_percentWidth(100.); c3.addComponent(c5); c0.addComponent(c3); this.addComponent(c0); this.set_id("chartDialog"); this.set_width(600.); this.set_height(400.); this.set_title("New Chart - Upload Chart"); this.bindingRoot = true; this.dialogCancel = c4; this.chartBox = c1; this.dialogCancel.set_onClick(function(_) { _gthis.hideDialog("{{cancel}}"); }); this.chartBox.set_onClick(function(_) { _gthis.onClickChartBox(); }); this.chartBox.set_onMouseOver(function(_event) { if(_gthis.locked) { return; } _gthis.chartBox.swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }); this.chartBox.set_onMouseOut(function(_event) { _gthis.chartBox.swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }); this.dropHandlers.push({ component : this.chartBox, handler : $bind(this,this.onDropFileChartBox)}); this.applyRootLayout("dialog"); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorUploadChartDialog"] = funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog; funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorUploadChartDialog"; funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog.build = function(state,closable,modal) { var tmp = closable; var tmp1 = modal; var dialog = new funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog(state,{ closable : tmp != null && tmp, modal : tmp1 != null ? tmp1 : true}); var _g = 0; var _g1 = dialog.dropHandlers; while(_g < _g1.length) { var dropTarget = _g1[_g]; ++_g; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,dropTarget); } var tmp = modal; dialog.showDialog(tmp != null ? tmp : true); return dialog; }; funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog.__super__ = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog; funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog.prototype = $extend(funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype,{ dropHandlers: null ,onClose: function(event) { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.onClose.call(this,event); if(event.button != "{{apply}}" && !this.get_closable()) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(this.chartEditorState,this.get_closable()); } var _g = 0; var _g1 = this.dropHandlers; while(_g < _g1.length) { var dropTarget = _g1[_g]; ++_g; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.removeDropHandler(this.chartEditorState,dropTarget); } } ,lock: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.lock.call(this); this.dialogCancel.set_disabled(true); } ,unlock: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.unlock.call(this); this.dialogCancel.set_disabled(false); } ,onClickChartBox: function() { if(this.locked) { return; } this.lock(); funkin_util_FileUtil.browseForBinaryFile("Open Chart",[funkin_util_FileUtil.FILE_EXTENSION_INFO_FNFC],$bind(this,this.onSelectFile),$bind(this,this.onCancelBrowse)); } ,onDropFileChartBox: function(pathStr) { var path = new haxe_io_Path(pathStr); haxe_Log.trace("Dropped file (" + Std.string(path) + ")",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadChartDialog.hx", lineNumber : 111, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadChartDialog", methodName : "onDropFileChartBox"}); try { var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFCPath(this.chartEditorState,path.toString()); if(result != null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(this.chartEditorState,"Loaded Chart",result.length == 0 ? "Loaded chart (" + path.toString() + ")" : "Loaded chart (" + path.toString() + ")\n" + result.join("\n")); this.hideDialog("{{apply}}"); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this.chartEditorState,"Failed to Load Chart","Failed to load chart (" + path.toString() + ")"); } } catch( _g ) { var err = haxe_Exception.caught(_g); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this.chartEditorState,"Failed to Load Chart","Failed to load chart (" + path.toString() + "): " + Std.string(err)); } } ,onSelectFile: function(selectedFile) { this.unlock(); if(selectedFile != null && selectedFile.bytes != null) { try { var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFC(this.chartEditorState,selectedFile.bytes); if(result != null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(this.chartEditorState,"Loaded Chart",result.length == 0 ? "Loaded chart (" + selectedFile.name + ")" : "Loaded chart (" + selectedFile.name + ")\n" + result.join("\n")); if(selectedFile.fullPath != null) { this.chartEditorState.set_currentWorkingFilePath(selectedFile.fullPath); } this.hideDialog("{{apply}}"); } } catch( _g ) { var err = haxe_Exception.caught(_g); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this.chartEditorState,"Failed to Load Chart","Failed to load chart (" + selectedFile.name + "): " + Std.string(err)); } } } ,onCancelBrowse: function() { this.unlock(); } ,registerBehaviours: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_state2: null ,_constructorParam_params2: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog(this._constructorParam_state2,this._constructorParam_params2); } ,dialogCancel: null ,chartBox: null ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog }); var funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog = function(state2,charIds,params2) { this.hasClearedVocals = false; this.dropHandlers = []; var _gthis = this; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.call(this,state2,params2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_HBox(); c1.set_id("vocalContainer"); c1.set_percentWidth(100.); c1.set_percentHeight(100.); c0.addComponent(c1); var c2 = new haxe_ui_containers_HBox(); c2.set_percentWidth(100.); c2.set_horizontalAlign("right"); var c3 = new haxe_ui_components_Button(); c3.set_id("dialogCancel"); c3.set_text("Cancel"); c2.addComponent(c3); var c4 = new haxe_ui_components_Spacer(); c4.set_percentWidth(100.); c2.addComponent(c4); var c5 = new haxe_ui_components_Button(); c5.set_id("dialogNoVocals"); c5.set_text("Skip (No Vocals)"); c2.addComponent(c5); var c6 = new haxe_ui_components_Button(); c6.set_id("dialogContinue"); c6.set_text("Continue"); c2.addComponent(c6); c0.addComponent(c2); this.addComponent(c0); this.set_id("vocalDialog"); this.set_width(600.); this.set_height(400.); this.set_title("New Chart - Upload Vocals"); this.bindingRoot = true; this.vocalContainer = c1; this.dialogNoVocals = c5; this.dialogContinue = c6; this.dialogCancel = c3; this.charIds = charIds; this.instId = this.chartEditorState.get_currentInstrumentalId(); this.dialogCancel.set_onClick(function(_) { _gthis.hideDialog("{{cancel}}"); }); this.dialogNoVocals.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeVocalData(_gthis.chartEditorState); _gthis.hideDialog("{{apply}}"); }); this.dialogContinue.set_onClick(function(_) { _gthis.hideDialog("{{apply}}"); }); this.buildDropHandlers(); this.applyRootLayout("dialog"); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog"] = funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog"; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog.build = function(state,charIds,closable,modal) { var tmp = closable; var tmp1 = modal; var dialog = new funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog(state,charIds,{ closable : tmp != null && tmp, modal : tmp1 != null ? tmp1 : true}); var _g = 0; var _g1 = dialog.dropHandlers; while(_g < _g1.length) { var dropTarget = _g1[_g]; ++_g; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,dropTarget); } var tmp = modal; dialog.showDialog(tmp != null ? tmp : true); return dialog; }; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog.__super__ = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog.prototype = $extend(funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype,{ dropHandlers: null ,vocalContainer: null ,dialogCancel: null ,dialogNoVocals: null ,dialogContinue: null ,charIds: null ,instId: null ,hasClearedVocals: null ,buildDropHandlers: function() { var _gthis = this; var _g = 0; var _g1 = this.charIds; while(_g < _g1.length) { var charKey = [_g1[_g]]; ++_g; haxe_Log.trace("Adding vocal upload for character " + charKey[0],{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadVocalsDialog.hx", lineNumber : 65, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog", methodName : "buildDropHandlers"}); var charMetadata = funkin_play_character_CharacterDataParser.fetchCharacterData(charKey[0]); var tmp = charMetadata != null ? charMetadata.name : null; var charName = [tmp != null ? tmp : charKey[0]]; var vocalsEntry = [new funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry(charName[0])]; var dropHandler = [{ component : vocalsEntry[0], handler : null}]; var onDropFile = (function(dropHandler,vocalsEntry,charName,charKey) { return function(pathStr) { haxe_Log.trace("Selected file: " + pathStr,{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadVocalsDialog.hx", lineNumber : 75, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog", methodName : "buildDropHandlers"}); var path = new haxe_io_Path(pathStr); if(funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromPath(_gthis.chartEditorState,path,charKey[0],_gthis.instId,!_gthis.hasClearedVocals)) { _gthis.hasClearedVocals = true; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(_gthis.chartEditorState,"Loaded Vocals","Loaded vocals for " + charName[0] + " (" + path.file + "." + path.ext + "), variation " + _gthis.chartEditorState.selectedVariation); vocalsEntry[0].vocalsEntryLabel.set_text("Voices for " + charName[0] + " (drag and drop, or click to browse)\nSelected file: " + path.file + "." + path.ext); _gthis.dialogNoVocals.set_hidden(true); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.removeDropHandler(_gthis.chartEditorState,dropHandler[0]); } else { haxe_Log.trace("Failed to load vocal track (" + path.file + "." + path.ext + ")",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadVocalsDialog.hx", lineNumber : 94, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog", methodName : "buildDropHandlers"}); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(_gthis.chartEditorState,"Failed to Load Vocals","Failed to load vocal track (" + path.file + "." + path.ext + ") for variation (" + _gthis.chartEditorState.selectedVariation + ")"); vocalsEntry[0].vocalsEntryLabel.set_text("Drag and drop vocals for " + charName[0] + " here, or click to browse."); } }; })(dropHandler,vocalsEntry,charName,charKey); vocalsEntry[0].set_onClick((function(vocalsEntry,charName,charKey) { return function(_event) { var tmp = "Open " + charName[0] + " Vocals"; var tmp1 = (function(vocalsEntry,charName,charKey) { return function(selectedFile) { if(selectedFile != null && selectedFile.bytes != null) { haxe_Log.trace("Selected file: " + selectedFile.name,{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadVocalsDialog.hx", lineNumber : 112, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog", methodName : "buildDropHandlers"}); if(funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromBytes(_gthis.chartEditorState,selectedFile.bytes,charKey[0],_gthis.instId,!_gthis.hasClearedVocals)) { _gthis.hasClearedVocals = true; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(_gthis.chartEditorState,"Loaded Vocals","Loaded vocals for " + charName[0] + " (" + selectedFile.name + "), variation " + _gthis.chartEditorState.selectedVariation); vocalsEntry[0].vocalsEntryLabel.set_text("Voices for " + charName[0] + " (drag and drop, or click to browse)\nSelected file: " + selectedFile.name); _gthis.dialogNoVocals.set_hidden(true); } else { haxe_Log.trace("Failed to load vocal track (" + selectedFile.fullPath + ")",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadVocalsDialog.hx", lineNumber : 131, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog", methodName : "buildDropHandlers"}); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(_gthis.chartEditorState,"Failed to Load Vocals","Failed to load vocal track (" + selectedFile.name + ") for variation (" + _gthis.chartEditorState.selectedVariation + ")"); vocalsEntry[0].vocalsEntryLabel.set_text("Drag and drop vocals for " + charName[0] + " here, or click to browse."); } } }; })(vocalsEntry,charName,charKey); haxe_ui_containers_dialogs_Dialogs.openBinaryFile(tmp,[{ label : "Audio File (.ogg)", extension : "ogg"}],tmp1); }; })(vocalsEntry,charName,charKey)); dropHandler[0].handler = onDropFile; this.dropHandlers.push(dropHandler[0]); this.vocalContainer.addComponent(vocalsEntry[0]); } } ,onClose: function(event) { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.onClose.call(this,event); if(event.button != "{{apply}}" && !this.get_closable()) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(this.chartEditorState,this.get_closable()); } var _g = 0; var _g1 = this.dropHandlers; while(_g < _g1.length) { var dropTarget = _g1[_g]; ++_g; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.removeDropHandler(this.chartEditorState,dropTarget); } } ,lock: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.lock.call(this); this.dialogCancel.set_disabled(true); } ,unlock: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.unlock.call(this); this.dialogCancel.set_disabled(false); } ,onClickChartBox: function() { if(this.locked) { return; } this.lock(); funkin_util_FileUtil.browseForBinaryFile("Open Chart",[funkin_util_FileUtil.FILE_EXTENSION_INFO_FNFC],$bind(this,this.onSelectFile),$bind(this,this.onCancelBrowse)); } ,onDropFileChartBox: function(pathStr) { var path = new haxe_io_Path(pathStr); haxe_Log.trace("Dropped file (" + Std.string(path) + ")",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorUploadVocalsDialog.hx", lineNumber : 225, className : "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog", methodName : "onDropFileChartBox"}); try { var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFCPath(this.chartEditorState,path.toString()); if(result != null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(this.chartEditorState,"Loaded Chart",result.length == 0 ? "Loaded chart (" + path.toString() + ")" : "Loaded chart (" + path.toString() + ")\n" + result.join("\n")); this.hideDialog("{{apply}}"); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this.chartEditorState,"Failed to Load Chart","Failed to load chart (" + path.toString() + ")"); } } catch( _g ) { var err = haxe_Exception.caught(_g); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this.chartEditorState,"Failed to Load Chart","Failed to load chart (" + path.toString() + "): " + Std.string(err)); } } ,onSelectFile: function(selectedFile) { this.unlock(); if(selectedFile != null && selectedFile.bytes != null) { try { var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFC(this.chartEditorState,selectedFile.bytes); if(result != null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(this.chartEditorState,"Loaded Chart",result.length == 0 ? "Loaded chart (" + selectedFile.name + ")" : "Loaded chart (" + selectedFile.name + ")\n" + result.join("\n")); if(selectedFile.fullPath != null) { this.chartEditorState.set_currentWorkingFilePath(selectedFile.fullPath); } this.hideDialog("{{apply}}"); } } catch( _g ) { var err = haxe_Exception.caught(_g); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(this.chartEditorState,"Failed to Load Chart","Failed to load chart (" + selectedFile.name + "): " + Std.string(err)); } } } ,onCancelBrowse: function() { this.unlock(); } ,registerBehaviours: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_state2: null ,_constructorParam_charIds: null ,_constructorParam_params2: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog(this._constructorParam_state2,this._constructorParam_charIds,this._constructorParam_params2); } ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog }); var funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry = function(charName) { var _gthis = this; haxe_ui_containers_Box.call(this); var c0 = new haxe_ui_components_Label(); c0.set_id("vocalsEntryLabel"); c0.set_percentWidth(100.); c0.set_text("Click to browse for a vocal track for Boyfriend."); c0.set_styleString("font-size: 16px"); c0.set_verticalAlign("center"); c0.set_textAlign("center"); c0.set_horizontalAlign("center"); this.addComponent(c0); this.set_id("vocalsEntryBox"); this.set_percentWidth(100.); this.set_percentHeight(100.); this.set_styleNames("upload-bg"); this.set_styleString("border: 2px dotted #DDDDDD; padding: 5px;"); this.bindingRoot = true; this.vocalsEntryLabel = c0; this.charName = charName; this.vocalsEntryLabel.set_text("Drag and drop vocals for " + charName + " here, or click to browse."); this.set_onMouseOver(function(_event) { _gthis.swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }); this.set_onMouseOut(function(_event) { _gthis.swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }); this.applyRootLayout("box"); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsEntry"] = funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsEntry"; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry.__super__ = haxe_ui_containers_Box; funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry.prototype = $extend(haxe_ui_containers_Box.prototype,{ vocalsEntryLabel: null ,charName: null ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_charName: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry(this._constructorParam_charName); } ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsEntry }); var funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog = function(state2,params2) { var _gthis = this; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.call(this,state2,params2); var c0 = new haxe_ui_containers_HBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_Card(); c1.set_id("splashSectionLeft"); c1.set_percentWidth(25.); c1.set_percentHeight(100.); c1.set_text("Open Recent"); var c2 = new haxe_ui_containers_ScrollView(); c2.set_percentWidth(100.); c2.set_percentHeight(50.); c2.set_percentContentWidth(100.); var c3 = new haxe_ui_containers_VBox(); c3.set_id("splashRecentContainer"); c3.set_percentWidth(100.); c2.addComponent(c3); c1.addComponent(c2); var c4 = new haxe_ui_components_Button(); c4.set_id("splashBrowse"); c4.set_text("Browse for Chart"); c1.addComponent(c4); c0.addComponent(c1); var c5 = new haxe_ui_containers_VBox(); c5.set_percentWidth(25.); c5.set_percentHeight(100.); var c6 = new haxe_ui_containers_Card(); c6.set_id("splashSectionCenter"); c6.set_percentWidth(100.); c6.set_percentHeight(50.); c6.set_text("Create New"); var c7 = new haxe_ui_components_Link(); c7.set_id("splashCreateFromSongBasicOnly"); c7.set_percentWidth(100.); c7.set_text("Easy/Normal/Hard Only"); c6.addComponent(c7); var c8 = new haxe_ui_components_Link(); c8.set_id("splashCreateFromSongErectOnly"); c8.set_percentWidth(100.); c8.set_text("Erect/Nightmare Only"); c6.addComponent(c8); var c9 = new haxe_ui_components_Link(); c9.set_id("splashCreateFromSongBasicErect"); c9.set_percentWidth(100.); c9.set_text("Easy/Normal/Hard/Erect/Nightmare"); c6.addComponent(c9); c5.addComponent(c6); var c10 = new haxe_ui_containers_Card(); c10.set_id("splashSectionCenter"); c10.set_percentWidth(100.); c10.set_percentHeight(50.); c10.set_text("Import Chart"); var c11 = new haxe_ui_components_Link(); c11.set_id("splashImportChartLegacy"); c11.set_percentWidth(100.); c11.set_text("FNF Legacy"); c10.addComponent(c11); var c12 = new haxe_ui_components_Link(); c12.set_id("splashImportChartOsuMania"); c12.set_percentWidth(100.); c12.set_text("Osu!Mania"); c12.set_disabled(true); c10.addComponent(c12); var c13 = new haxe_ui_components_Link(); c13.set_id("splashImportChartStepMania"); c13.set_percentWidth(100.); c13.set_text("StepMania"); c13.set_disabled(true); c10.addComponent(c13); c5.addComponent(c10); c0.addComponent(c5); var c14 = new haxe_ui_containers_Card(); c14.set_id("splashSectionRight"); c14.set_percentWidth(25.); c14.set_percentHeight(100.); c14.set_text("Create From Song"); var c15 = new haxe_ui_containers_ScrollView(); c15.set_percentWidth(100.); c15.set_percentHeight(100.); c15.set_percentContentWidth(100.); var c16 = new haxe_ui_containers_VBox(); c16.set_id("splashTemplateContainer"); c16.set_percentWidth(100.); c15.addComponent(c16); c14.addComponent(c15); c0.addComponent(c14); var c17 = new haxe_ui_containers_HBox(); c17.set_id("spriteBox"); c17.set_percentWidth(10.); c17.set_percentHeight(100.); c0.addComponent(c17); this.addComponent(c0); this.set_width(800.); this.set_height(500.); this.set_title("Chart Editor - New Song"); this.bindingRoot = true; this.spriteBox = c17; this.splashTemplateContainer = c16; this.splashSectionRight = c14; this.splashSectionLeft = c1; this.splashSectionCenter = c10; this.splashRecentContainer = c3; this.splashImportChartStepMania = c13; this.splashImportChartOsuMania = c12; this.splashImportChartLegacy = c11; this.splashCreateFromSongErectOnly = c8; this.splashCreateFromSongBasicOnly = c7; this.splashCreateFromSongBasicErect = c9; this.splashBrowse = c4; this.splashBrowse.set_onClick(function(_) { _gthis.onClickButtonBrowse(); }); this.splashCreateFromSongBasicOnly.set_onClick(function(_) { _gthis.onClickLinkCreateBasicOnly(); }); this.splashCreateFromSongErectOnly.set_onClick(function(_) { _gthis.onClickLinkCreateErectOnly(); }); this.splashCreateFromSongBasicErect.set_onClick(function(_) { _gthis.onClickLinkCreateBasicErect(); }); this.splashImportChartLegacy.set_onClick(function(_) { _gthis.onClickLinkImportChartLegacy(); }); this.addHTML5RecentFileMessage(); this.buildTemplateSongList(this.chartEditorState); this.applyRootLayout("dialog"); }; $hxClasses["funkin.ui.debug.charting.dialogs.ChartEditorWelcomeDialog"] = funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog; funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog.__name__ = "funkin.ui.debug.charting.dialogs.ChartEditorWelcomeDialog"; funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog.build = function(chartEditorState,closable,modal) { var tmp = closable; var tmp1 = modal; var dialog = new funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog(chartEditorState,{ closable : tmp != null && tmp, modal : tmp1 != null ? tmp1 : true}); var tmp = modal; dialog.showDialog(tmp != null ? tmp : true); return dialog; }; funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog.__super__ = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog; funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog.prototype = $extend(funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype,{ onClose: function(event) { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.onClose.call(this,event); } ,addRecentFilePath: function(state,chartPath) { var _gthis = this; var linkRecentChart = new haxe_ui_components_Link(); var fileNamePattern = new EReg("([^/\\\\]+)$",""); var fileName = fileNamePattern.match(chartPath) ? fileNamePattern.matched(1) : chartPath; linkRecentChart.set_text(fileName); linkRecentChart.set_tooltip(chartPath); linkRecentChart.set_onClick(function(_event) { _gthis.hideDialog("{{cancel}}"); var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFCPath(state,chartPath); if(result != null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(_gthis.chartEditorState,"Loaded Chart",result.length == 0 ? "Loaded chart (" + chartPath.toString() + ")" : "Loaded chart (" + chartPath.toString() + ")\n" + result.join("\n")); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(_gthis.chartEditorState,"Failed to Load Chart","Failed to load chart (" + chartPath.toString() + ")"); } }); if(!funkin_util_FileUtil.doesFileExist(chartPath)) { haxe_Log.trace("Previously loaded chart file (" + chartPath + ") does not exist, disabling link...",{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx", lineNumber : 116, className : "funkin.ui.debug.charting.dialogs.ChartEditorWelcomeDialog", methodName : "addRecentFilePath"}); linkRecentChart.set_disabled(true); } this.splashRecentContainer.addComponent(linkRecentChart); } ,addHTML5RecentFileMessage: function() { var webLoadLabel = new haxe_ui_components_Label(); webLoadLabel.set_text("Click the button below to load a chart file (.fnfc) from your computer."); this.splashRecentContainer.addComponent(webLoadLabel); } ,buildTemplateSongList: function(state) { var _gthis = this; var songList = funkin_data_song_SongRegistry.get_instance().listEntryIds(); songList.sort(funkin_util_SortUtil.alphabetically); var _g = 0; while(_g < songList.length) { var targetSongId = [songList[_g]]; ++_g; var songData = funkin_data_song_SongRegistry.get_instance().fetchEntry(targetSongId[0]); if(songData == null) { continue; } var tmp = songData.getDifficulty("normal"); var songName = tmp != null ? tmp.songName : null; if(songName == null) { var tmp1 = songData.getDifficulty(); songName = tmp1 != null ? tmp1.songName : null; } if(songName == null) { haxe_Log.trace("[WARN] Could not fetch song name for " + targetSongId[0],{ fileName : "source/funkin/ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx", lineNumber : 152, className : "funkin.ui.debug.charting.dialogs.ChartEditorWelcomeDialog", methodName : "buildTemplateSongList"}); continue; } this.addTemplateSong(songName,targetSongId[0],(function(targetSongId) { return function(_) { _gthis.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSongAsTemplate(_gthis.chartEditorState,targetSongId[0]); }; })(targetSongId)); } } ,addTemplateSong: function(songName,songId,onClickCb) { var linkTemplateSong = new haxe_ui_components_Link(); linkTemplateSong.set_text(songName); linkTemplateSong.set_onClick(onClickCb); this.splashTemplateContainer.addComponent(linkTemplateSong); } ,onClickButtonBrowse: function() { this.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBrowseFNFC(this.chartEditorState,false); } ,onClickLinkCreateBasicOnly: function() { this.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCreateSongWizardBasicOnly(this.chartEditorState,false); } ,onClickLinkCreateErectOnly: function() { this.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCreateSongWizardErectOnly(this.chartEditorState,false); } ,onClickLinkCreateBasicErect: function() { this.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCreateSongWizardBasicErect(this.chartEditorState,false); } ,onClickLinkImportChartLegacy: function() { this.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openImportChartWizard(this.chartEditorState,"legacy",false); } ,registerBehaviours: function() { funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_state2: null ,_constructorParam_params2: null ,self: function() { return new funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog(this._constructorParam_state2,this._constructorParam_params2); } ,spriteBox: null ,splashTemplateContainer: null ,splashSectionRight: null ,splashSectionLeft: null ,splashSectionCenter: null ,splashRecentContainer: null ,splashImportChartStepMania: null ,splashImportChartOsuMania: null ,splashImportChartLegacy: null ,splashCreateFromSongErectOnly: null ,splashCreateFromSongBasicOnly: null ,splashCreateFromSongBasicErect: null ,splashBrowse: null ,__class__: funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog }); var funkin_ui_debug_charting_handlers_ChartEditorAudioHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorAudioHandler"] = funkin_ui_debug_charting_handlers_ChartEditorAudioHandler; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler"; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromPath = function(state,path,charId,instId,wipeFirst) { if(wipeFirst == null) { wipeFirst = false; } if(instId == null) { instId = ""; } haxe_Log.trace("[WARN] This platform can't load audio from a file path, you'll need to fetch the bytes some other way.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 40, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "loadVocalsFromPath"}); return false; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromAsset = function(state,path,charId,instId,wipeFirst) { if(wipeFirst == null) { wipeFirst = false; } if(instId == null) { instId = ""; } var trackData = openfl_utils_ByteArray.toBytes(openfl_utils_Assets.getBytes(path)); if(trackData != null) { return funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromBytes(state,trackData,charId,instId,wipeFirst); } return false; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromBytes = function(state,bytes,charId,instId,wipeFirst) { if(wipeFirst == null) { wipeFirst = false; } if(instId == null) { instId = ""; } var trackId = "" + charId + (instId == "" ? "" : "-" + instId); if(wipeFirst) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeVocalData(state); } state.audioVocalTrackData.h[trackId] = bytes; return true; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromPath = function(state,path,instId,wipeFirst) { if(wipeFirst == null) { wipeFirst = false; } if(instId == null) { instId = ""; } haxe_Log.trace("[WARN] This platform can't load audio from a file path, you'll need to fetch the bytes some other way.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 92, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "loadInstFromPath"}); return false; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromAsset = function(state,path,instId,wipeFirst) { if(wipeFirst == null) { wipeFirst = false; } if(instId == null) { instId = ""; } var trackData = openfl_utils_ByteArray.toBytes(openfl_utils_Assets.getBytes(path)); if(trackData != null) { return funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromBytes(state,trackData,instId,wipeFirst); } return false; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromBytes = function(state,bytes,instId,wipeFirst) { if(wipeFirst == null) { wipeFirst = false; } if(instId == null) { instId = ""; } if(instId == "") { instId = "default"; } if(wipeFirst) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeInstrumentalData(state); } state.audioInstTrackData.h[instId] = bytes; return true; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.switchToInstrumental = function(state,instId,playerId,opponentId) { if(instId == null) { instId = ""; } var perfA = funkin_util_TimerUtil.start(); var result = funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playInstrumental(state,instId); if(!result) { return false; } var perfB = funkin_util_TimerUtil.start(); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingVocals(state); var perfC = funkin_util_TimerUtil.start(); result = funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playVocals(state,funkin_play_character_CharacterType.BF,playerId,instId); var perfD = funkin_util_TimerUtil.start(); result = funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playVocals(state,funkin_play_character_CharacterType.DAD,opponentId,instId); var perfE = funkin_util_TimerUtil.start(); state.hardRefreshOffsetsToolbox(); var perfF = funkin_util_TimerUtil.start(); state.hardRefreshFreeplayToolbox(); var perfG = funkin_util_TimerUtil.start(); haxe_Log.trace("Switched to instrumental in " + funkin_util_TimerUtil.seconds(perfA,perfB) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 160, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "switchToInstrumental"}); haxe_Log.trace("Stopped existing vocals in " + funkin_util_TimerUtil.seconds(perfB,perfC) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 161, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "switchToInstrumental"}); haxe_Log.trace("Played BF vocals in " + funkin_util_TimerUtil.seconds(perfC,perfD) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 162, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "switchToInstrumental"}); haxe_Log.trace("Played DAD vocals in " + funkin_util_TimerUtil.seconds(perfD,perfE) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 163, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "switchToInstrumental"}); haxe_Log.trace("Hard refreshed offsets toolbox in " + funkin_util_TimerUtil.seconds(perfE,perfF) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 164, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "switchToInstrumental"}); haxe_Log.trace("Hard refreshed freeplay toolbox in " + funkin_util_TimerUtil.seconds(perfF,perfG) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 165, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "switchToInstrumental"}); return true; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playInstrumental = function(state,instId) { if(instId == null) { instId = ""; } if(instId == "") { instId = "default"; } var instTrackData = state.audioInstTrackData.h[instId]; var perfStart = funkin_util_TimerUtil.start(); var instTrack = funkin_util_assets_SoundUtil.buildSoundFromBytes(instTrackData); haxe_Log.trace("Built instrumental track in " + funkin_util_TimerUtil.seconds(perfStart) + " seconds.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 179, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playInstrumental"}); if(instTrack == null) { return false; } funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingInstrumental(state); state.audioInstTrack = instTrack; state.postLoadInstrumental(); flixel_FlxG.sound.list.remove(instTrack); return true; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingInstrumental = function(state) { if(state.audioInstTrack != null) { var _this = state.audioInstTrack; _this.cleanup(_this.autoDestroy,true); state.audioInstTrack.destroy(); state.audioInstTrack = null; } }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playVocals = function(state,charType,charId,instId) { if(instId == null) { instId = ""; } var trackId = "" + charId + (instId == "" ? "" : "-" + instId); var vocalTrackData = state.audioVocalTrackData.h[trackId]; var perfStart = funkin_util_TimerUtil.start(); var vocalTrack = funkin_util_assets_SoundUtil.buildSoundFromBytes(vocalTrackData); haxe_Log.trace("Built vocal track in " + funkin_util_TimerUtil.seconds(perfStart) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 209, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playVocals"}); if(state.audioVocalTrackGroup == null) { state.audioVocalTrackGroup = new funkin_audio_VoicesGroup(); } if(vocalTrack != null) { switch(charType._hx_index) { case 0: state.audioVocalTrackGroup.addPlayerVoice(vocalTrack); var perfStart = funkin_util_TimerUtil.start(); var waveformData = vocalTrack.get_waveformData(); haxe_Log.trace("Interpreted waveform data in " + funkin_util_TimerUtil.seconds(perfStart) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 222, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playVocals"}); if(waveformData != null) { var duration = funkin_Conductor.get_instance().getStepTimeInMs(16) * 0.001; var waveformSprite = new funkin_audio_waveform_WaveformSprite(waveformData,funkin_audio_waveform_WaveformOrientation.VERTICAL,-1); waveformSprite.set_x(840); var tmp = state.gridTiledSprite; var tmp1 = tmp != null ? tmp.y : null; waveformSprite.set_y(Math.max(tmp1 != null ? tmp1 : 0.0,funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.GRID_TOP_PAD)); waveformSprite.set_height(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 16); waveformSprite.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 2); waveformSprite.set_time(0); waveformSprite.set_duration(duration); state.audioWaveforms.add(waveformSprite); } else { haxe_Log.trace("[WARN] Failed to parse waveform data for vocal track.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 238, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playVocals"}); } state.audioVocalTrackGroup.set_playerVoicesOffset(state.get_currentVocalOffsetPlayer()); return true; case 1: state.audioVocalTrackGroup.addOpponentVoice(vocalTrack); var perfStart = funkin_util_TimerUtil.start(); var waveformData = vocalTrack.get_waveformData(); haxe_Log.trace("Interpreted waveform data in " + funkin_util_TimerUtil.seconds(perfStart) + ".",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 248, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playVocals"}); if(waveformData != null) { var duration = funkin_Conductor.get_instance().getStepTimeInMs(16) * 0.001; var waveformSprite = new funkin_audio_waveform_WaveformSprite(waveformData,funkin_audio_waveform_WaveformOrientation.VERTICAL,-1); waveformSprite.set_x(360); var tmp = state.gridTiledSprite; var tmp1 = tmp != null ? tmp.y : null; waveformSprite.set_y(Math.max(tmp1 != null ? tmp1 : 0.0,funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.GRID_TOP_PAD)); waveformSprite.set_height(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 16); waveformSprite.set_width(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * 2); waveformSprite.set_time(0); waveformSprite.set_duration(duration); state.audioWaveforms.add(waveformSprite); } else { haxe_Log.trace("[WARN] Failed to parse waveform data for vocal track.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 264, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playVocals"}); } state.audioVocalTrackGroup.set_opponentVoicesOffset(state.get_currentVocalOffsetOpponent()); return true; case 3: state.audioVocalTrackGroup.add(vocalTrack); return true; default: } } return false; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingVocals = function(state) { state.audioVocalTrackGroup.clear(); if(state.audioWaveforms != null) { state.audioWaveforms.group.clear(); } }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound = function(_state,path,volume) { if(volume == null) { volume = 1.0; } var _this = flixel_FlxG.sound; var asset; if(openfl_utils_Assets.exists(path,"SOUND") || openfl_utils_Assets.exists(path,"MUSIC")) { asset = openfl_utils_Assets.getSound(path,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + path + "'.",flixel_system_debug_log_LogStyle.ERROR,true); asset = null; } if(asset == null) { haxe_Log.trace("WARN: Failed to play sound " + path + ", asset not found.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 301, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "playSound"}); return; } var snd = funkin_audio_FunkinSound.load(asset); if(snd == null) { return; } snd.autoDestroy = true; snd.play(true); snd.set_volume(volume); }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeInstrumentalData = function(state) { state.audioInstTrackData.h = Object.create(null); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingInstrumental(state); }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeVocalData = function(state) { state.audioVocalTrackData.h = Object.create(null); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingVocals(state); }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.makeZIPEntriesFromInstrumentals = function(state) { var zipEntries = []; var instTrackIds = funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(state.audioInstTrackData.h)); var _g = 0; while(_g < instTrackIds.length) { var key = instTrackIds[_g]; ++_g; if(key == "default") { var data = state.audioInstTrackData.h["default"]; if(data == null) { haxe_Log.trace("[WARN] Failed to access inst track (" + key + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 340, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "makeZIPEntriesFromInstrumentals"}); continue; } zipEntries.push(funkin_util_FileUtil.makeZIPEntryFromBytes("Inst.ogg",data)); } else { var data1 = state.audioInstTrackData.h[key]; if(data1 == null) { haxe_Log.trace("[WARN] Failed to access inst track (" + key + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 350, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "makeZIPEntriesFromInstrumentals"}); continue; } zipEntries.push(funkin_util_FileUtil.makeZIPEntryFromBytes("Inst-" + key + ".ogg",data1)); } } return zipEntries; }; funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.makeZIPEntriesFromVocals = function(state) { var zipEntries = []; var vocalTrackIds = funkin_util_tools_IteratorTools.array(new haxe_ds__$StringMap_StringMapKeyIterator(state.audioVocalTrackData.h)); var h = state.audioVocalTrackData.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var data = state.audioVocalTrackData.h[key]; if(data == null) { haxe_Log.trace("[WARN] Failed to access vocal track (" + key + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorAudioHandler.hx", lineNumber : 375, className : "funkin.ui.debug.charting.handlers.ChartEditorAudioHandler", methodName : "makeZIPEntriesFromVocals"}); continue; } zipEntries.push(funkin_util_FileUtil.makeZIPEntryFromBytes("Voices-" + key + ".ogg",data)); } return zipEntries; }; var funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorContextMenuHandler"] = funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorContextMenuHandler"; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openDefaultContextMenu = function(state,xPos,yPos) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.displayMenu(state,new funkin_ui_debug_charting_contextmenus_ChartEditorDefaultContextMenu(state,xPos,yPos)); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openSelectionContextMenu = function(state,xPos,yPos) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.displayMenu(state,new funkin_ui_debug_charting_contextmenus_ChartEditorSelectionContextMenu(state,xPos,yPos)); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openNoteContextMenu = function(state,xPos,yPos,data) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.displayMenu(state,new funkin_ui_debug_charting_contextmenus_ChartEditorNoteContextMenu(state,xPos,yPos,data)); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openHoldNoteContextMenu = function(state,xPos,yPos,data) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.displayMenu(state,new funkin_ui_debug_charting_contextmenus_ChartEditorHoldNoteContextMenu(state,xPos,yPos,data)); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.openEventContextMenu = function(state,xPos,yPos,data) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.displayMenu(state,new funkin_ui_debug_charting_contextmenus_ChartEditorEventContextMenu(state,xPos,yPos,data)); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.displayMenu = function(state,targetMenu) { funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.closeAllMenus(state); haxe_ui_core_Screen.get_instance().addComponent(targetMenu); funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.existingMenus.push(targetMenu); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.closeMenu = function(state,targetMenu) { HxOverrides.remove(funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.existingMenus,targetMenu); }; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.closeAllMenus = function(state) { var _g = 0; var _g1 = funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.existingMenus; while(_g < _g1.length) { var existingMenu = _g1[_g]; ++_g; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.closeMenu(state,existingMenu); } }; var funkin_ui_debug_charting_handlers_ChartEditorDialogHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorDialogHandler"] = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler"; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openAboutDialog = function(state) { var dialog = funkin_ui_debug_charting_dialogs_ChartEditorAboutDialog.build(state); dialog.zIndex = 1000; state.isHaxeUIDialogOpen = true; return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog = function(state,closable) { if(closable == null) { closable = true; } var dialog = funkin_ui_debug_charting_dialogs_ChartEditorWelcomeDialog.build(state,closable); dialog.zIndex = 1000; state.isHaxeUIDialogOpen = true; state.fadeInWelcomeMusic(); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBrowseFNFC = function(state,closable) { var dialog = funkin_ui_debug_charting_dialogs_ChartEditorUploadChartDialog.build(state,closable); dialog.zIndex = 1000; state.isHaxeUIDialogOpen = true; return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog = function(state,closable) { if(closable == null) { closable = true; } var charData = state.get_currentSongMetadata().playData.characters; var hasClearedVocals = false; var charIdsForVocals = [charData.player,charData.opponent]; var dialog = funkin_ui_debug_charting_dialogs_ChartEditorUploadVocalsDialog.build(state,charIdsForVocals,closable); dialog.zIndex = 1000; state.isHaxeUIDialogOpen = true; return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCharacterDropdown = function(state,charType,lockPosition) { if(lockPosition == null) { lockPosition = false; } var menu = funkin_ui_debug_charting_dialogs_ChartEditorCharacterIconSelectorMenu.build(state,charType,lockPosition); menu.zIndex = 1000; return menu; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBackupAvailableDialog = function(state,welcomeDialog) { var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_BACKUP_AVAILABLE_LAYOUT,true,true); if(dialog == null) { throw haxe_Exception.thrown("Could not locate Backup Available dialog"); } dialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { if(welcomeDialog != null) { welcomeDialog.hideDialog("{{apply}}"); } } }); state.isHaxeUIDialogOpen = true; var backupTimeLabel = dialog.findComponent("backupTimeLabel",haxe_ui_components_Label); if(backupTimeLabel == null) { throw haxe_Exception.thrown("Could not locate backupTimeLabel button in Backup Available dialog"); } var latestBackupDate = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.getLatestBackupDate(); if(latestBackupDate != null) { var latestBackupDateStr = funkin_util_DateUtil.generateCleanTimestamp(latestBackupDate); backupTimeLabel.set_text(latestBackupDateStr); } var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Backup Available dialog"); } buttonCancel.set_onClick(function(_) { dialog.hideDialog("{{cancel}}"); }); var buttonGoToFolder = dialog.findComponent("buttonGoToFolder",haxe_ui_components_Button); if(buttonGoToFolder == null) { throw haxe_Exception.thrown("Could not locate buttonGoToFolder button in Backup Available dialog"); } buttonGoToFolder.set_onClick(function(_) { state.openBackupsFolder(); }); var buttonOpenBackup = dialog.findComponent("buttonOpenBackup",haxe_ui_components_Button); if(buttonOpenBackup == null) { throw haxe_Exception.thrown("Could not locate buttonOpenBackup button in Backup Available dialog"); } buttonOpenBackup.set_onClick(function(_) { var latestBackupPath = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.getLatestBackupPath(); var result = latestBackupPath != null ? funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFCPath(state,latestBackupPath) : null; if(result != null) { if(result.length == 0) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Chart","Loaded chart (" + latestBackupPath + ")"); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.warning(state,"Loaded Chart","Loaded chart (" + latestBackupPath + ")\n" + result.join("\n")); } dialog.hideDialog("{{apply}}"); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failed to Load Chart","Failed to load chart (" + latestBackupPath + ")"); dialog.hideDialog("{{cancel}}"); } }); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openBrowseWizard = function(state,closable) { var openChartDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openChartDialog(state); openChartDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadInstDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(state,closable); uploadInstDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadVocalsDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(state,closable); uploadVocalsDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; state.set_currentWorkingFilePath(null); state.switchToCurrentInstrumental(); state.postLoadInstrumental(); }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openImportChartWizard = function(state,format,closable) { var openChartDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openImportChartDialog(state,format); if(openChartDialog == null) { throw haxe_Exception.thrown("Could not locate Import Chart dialog"); } openChartDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadInstDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(state,closable); uploadInstDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadVocalsDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(state,closable); uploadVocalsDialog.set_onDialogClosed(function(_) { state.isHaxeUIDialogOpen = false; state.set_currentWorkingFilePath(null); state.switchToCurrentInstrumental(); state.postLoadInstrumental(); }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCreateSongWizardBasicOnly = function(state,closable) { var songMetadataDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openSongMetadataDialog(state,false,funkin_util_Constants.DEFAULT_VARIATION,true); songMetadataDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadInstDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(state,closable); uploadInstDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadVocalsDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(state,closable); uploadVocalsDialog.set_onDialogClosed(function(_) { state.isHaxeUIDialogOpen = false; state.set_currentWorkingFilePath(null); state.switchToCurrentInstrumental(); state.postLoadInstrumental(); }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCreateSongWizardErectOnly = function(state,closable) { var songMetadataDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openSongMetadataDialog(state,true,funkin_util_Constants.DEFAULT_VARIATION,true); songMetadataDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadInstDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(state,closable); uploadInstDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadVocalsDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(state,closable); uploadVocalsDialog.set_onDialogClosed(function(_) { state.isHaxeUIDialogOpen = false; state.set_currentWorkingFilePath(null); state.switchToCurrentInstrumental(); state.postLoadInstrumental(); }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCreateSongWizardBasicErect = function(state,closable) { var songMetadataDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openSongMetadataDialog(state,false,funkin_util_Constants.DEFAULT_VARIATION,true); songMetadataDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadInstDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(state,closable); uploadInstDialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadVocalsDialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(state,closable); uploadVocalsDialog.set_onDialogClosed(function(_) { state.switchToCurrentInstrumental(); var songMetadataDialogErect = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openSongMetadataDialog(state,true,"erect",false); songMetadataDialogErect.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { state.set_selectedVariation("erect"); var uploadInstDialogErect = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog(state,closable); uploadInstDialogErect.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; var lhs = event.button; var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); if(larr.indexOf("{{apply}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{apply}}")) != -1) { var uploadVocalsDialogErect = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadVocalsDialog(state,closable); uploadVocalsDialogErect.set_onDialogClosed(function(_) { state.isHaxeUIDialogOpen = false; state.set_currentWorkingFilePath(null); state.switchToCurrentInstrumental(); state.postLoadInstrumental(); }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); } else { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openWelcomeDialog(state,closable); } }); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUploadInstDialog = function(state,closable) { if(closable == null) { closable = true; } var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_UPLOAD_INST_LAYOUT,true,closable); if(dialog == null) { throw haxe_Exception.thrown("Could not locate Upload Instrumental dialog"); } var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Upload Instrumental dialog"); } buttonCancel.set_onClick(function(_) { dialog.hideDialog("{{cancel}}"); }); var instrumentalBox = dialog.findComponent("instrumentalBox",haxe_ui_containers_Box); if(instrumentalBox == null) { throw haxe_Exception.thrown("Could not locate instrumentalBox in Upload Instrumental dialog"); } instrumentalBox.set_onMouseOver(function(_) { instrumentalBox.swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }); instrumentalBox.set_onMouseOut(function(_) { instrumentalBox.swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }); var instId = state.get_currentInstrumentalId(); var dropHandler = { component : instrumentalBox, handler : null}; instrumentalBox.set_onClick(function(_) { haxe_ui_containers_dialogs_Dialogs.openBinaryFile("Open Instrumental",[{ label : "Audio File (.ogg)", extension : "ogg"}],function(selectedFile) { if(selectedFile != null && selectedFile.bytes != null) { if(funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromBytes(state,selectedFile.bytes,instId)) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Instrumental","Loaded instrumental track (" + selectedFile.name + ") for variation (" + state.selectedVariation + ")"); state.switchToCurrentInstrumental(); dialog.hideDialog("{{apply}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.removeDropHandler(state,dropHandler); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failed to Load Instrumental","Failed to load instrumental track (" + selectedFile.name + ") for variation (" + state.selectedVariation + ")"); } } }); }); var onDropFile = function(pathStr) { var path = new haxe_io_Path(pathStr); haxe_Log.trace("Dropped file (" + Std.string(path) + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 534, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openUploadInstDialog"}); if(funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromPath(state,path,instId)) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Instrumental","Loaded instrumental track (" + path.file + "." + path.ext + ") for variation (" + state.selectedVariation + ")"); state.switchToCurrentInstrumental(); dialog.hideDialog("{{apply}}"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.removeDropHandler(state,dropHandler); } else { var tmp = path.ext; var message = funkin_ui_debug_charting_ChartEditorState.SUPPORTED_MUSIC_FORMATS.indexOf(tmp != null ? tmp : "") == -1 ? "File format (" + path.ext + ") not supported for instrumental track (" + path.file + "." + path.ext + ")" : "Failed to load instrumental track (" + path.file + "." + path.ext + ") for variation (" + state.selectedVariation + ")"; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failed to Load Instrumental",message); } }; dropHandler.handler = onDropFile; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,dropHandler); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openSongMetadataDialog = function(state,erect,targetVariation,clearExistingMetadata) { var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_SONG_METADATA_LAYOUT,true,false); if(dialog == null) { throw haxe_Exception.thrown("Could not locate Song Metadata dialog"); } if(targetVariation != funkin_util_Constants.DEFAULT_VARIATION) { dialog.set_title("New Chart - Provide Song Metadata (" + funkin_util_tools_StringTools.toTitleCase(targetVariation) + ")"); } var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Song Metadata dialog"); } state.isHaxeUIDialogOpen = true; buttonCancel.set_onClick(function(_) { state.isHaxeUIDialogOpen = false; dialog.hideDialog("{{cancel}}"); }); var newSongMetadata = new funkin_data_song_SongMetadata("","",funkin_util_Constants.DEFAULT_VARIATION); newSongMetadata.variation = targetVariation; newSongMetadata.playData.difficulties = erect ? ["erect","nightmare"] : ["easy","normal","hard"]; var inputSongName = dialog.findComponent("inputSongName",haxe_ui_components_TextField); if(inputSongName == null) { throw haxe_Exception.thrown("Could not locate inputSongName TextField in Song Metadata dialog"); } inputSongName.set_onChange(function(event) { var valid = event.target.get_text() != null && event.target.get_text() != ""; if(valid) { inputSongName.removeClass("invalid-value"); newSongMetadata.songName = event.target.get_text(); } else { newSongMetadata.songName = ""; } }); inputSongName.set_text(""); var inputSongArtist = dialog.findComponent("inputSongArtist",haxe_ui_components_TextField); if(inputSongArtist == null) { throw haxe_Exception.thrown("Could not locate inputSongArtist TextField in Song Metadata dialog"); } inputSongArtist.set_onChange(function(event) { var valid = event.target.get_text() != null && event.target.get_text() != ""; if(valid) { inputSongArtist.removeClass("invalid-value"); newSongMetadata.artist = event.target.get_text(); } else { newSongMetadata.artist = ""; } }); inputSongArtist.set_text(""); var inputStage = dialog.findComponent("inputStage",haxe_ui_components_DropDown); if(inputStage == null) { throw haxe_Exception.thrown("Could not locate inputStage DropDown in Song Metadata dialog"); } inputStage.set_onChange(function(event) { if(event.data == null && event.data.id == null) { return; } newSongMetadata.playData.stage = event.data.id; }); var startingValueStage = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithStages(inputStage,newSongMetadata.playData.stage); inputStage.set_value(startingValueStage); var inputNoteStyle = dialog.findComponent("inputNoteStyle",haxe_ui_components_DropDown); if(inputNoteStyle == null) { throw haxe_Exception.thrown("Could not locate inputNoteStyle DropDown in Song Metadata dialog"); } inputNoteStyle.set_onChange(function(event) { if(event.data.id == null) { return; } newSongMetadata.playData.noteStyle = event.data.id; }); var startingValueNoteStyle = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithNoteStyles(inputNoteStyle,newSongMetadata.playData.noteStyle); inputNoteStyle.set_value(startingValueNoteStyle); var inputCharacterPlayer = dialog.findComponent("inputCharacterPlayer",haxe_ui_components_DropDown); if(inputCharacterPlayer == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxMetadataLayout() - Could not find inputCharacterPlayer component."); } inputCharacterPlayer.set_onChange(function(event) { var tmp = event.data; if((tmp != null ? tmp.id : null) == null) { return; } newSongMetadata.playData.characters.player = event.data.id; }); var startingValuePlayer = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters(inputCharacterPlayer,funkin_play_character_CharacterType.BF,newSongMetadata.playData.characters.player); inputCharacterPlayer.set_value(startingValuePlayer); var inputCharacterOpponent = dialog.findComponent("inputCharacterOpponent",haxe_ui_components_DropDown); if(inputCharacterOpponent == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxMetadataLayout() - Could not find inputCharacterOpponent component."); } inputCharacterOpponent.set_onChange(function(event) { var tmp = event.data; if((tmp != null ? tmp.id : null) == null) { return; } newSongMetadata.playData.characters.opponent = event.data.id; }); var startingValueOpponent = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters(inputCharacterOpponent,funkin_play_character_CharacterType.DAD,newSongMetadata.playData.characters.opponent); inputCharacterOpponent.set_value(startingValueOpponent); var inputCharacterGirlfriend = dialog.findComponent("inputCharacterGirlfriend",haxe_ui_components_DropDown); if(inputCharacterGirlfriend == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxMetadataLayout() - Could not find inputCharacterGirlfriend component."); } inputCharacterGirlfriend.set_onChange(function(event) { var tmp = event.data; if((tmp != null ? tmp.id : null) == null) { return; } newSongMetadata.playData.characters.girlfriend = event.data.id == "none" ? "" : event.data.id; }); var startingValueGirlfriend = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters(inputCharacterGirlfriend,funkin_play_character_CharacterType.GF,newSongMetadata.playData.characters.girlfriend); inputCharacterGirlfriend.set_value(startingValueGirlfriend); var dialogBPM = dialog.findComponent("dialogBPM",haxe_ui_components_NumberStepper); if(dialogBPM == null) { throw haxe_Exception.thrown("Could not locate dialogBPM NumberStepper in Song Metadata dialog"); } dialogBPM.set_onChange(function(event) { if(event.value == null || haxe_ui_util_Variant.lte(event.value,haxe_ui_util_Variant.fromInt(0))) { return; } var timeChanges = newSongMetadata.timeChanges; if(timeChanges == null || timeChanges.length == 0) { timeChanges = [new funkin_data_song_SongTimeChange(0,haxe_ui_util_Variant.toFloat(event.value))]; } else { timeChanges[0].bpm = haxe_ui_util_Variant.toFloat(event.value); } newSongMetadata.timeChanges = timeChanges; }); var dialogContinue = dialog.findComponent("dialogContinue",haxe_ui_components_Button); if(dialogContinue == null) { throw haxe_Exception.thrown("Could not locate dialogContinue button in Song Metadata dialog"); } dialogContinue.set_onClick(function(_) { if(clearExistingMetadata) { state.songMetadata.h = Object.create(null); state.songChartData.h = Object.create(null); } state.songMetadata.h[targetVariation] = newSongMetadata; funkin_Conductor.get_instance().instrumentalOffset = state.get_currentInstrumentalOffset(); funkin_Conductor.get_instance().mapTimeChanges(state.get_currentSongMetadata().timeChanges); state.updateTimeSignature(); state.set_selectedVariation(funkin_util_Constants.DEFAULT_VARIATION); state.set_selectedDifficulty(state.get_availableDifficulties()[0]); state.difficultySelectDirty = true; dialog.hideDialog("{{apply}}"); }); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openChartDialog = function(state,closable) { if(closable == null) { closable = true; } var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_LAYOUT,true,closable); if(dialog == null) { throw haxe_Exception.thrown("Could not locate Open Chart dialog"); } var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Open Chart dialog"); } buttonCancel.set_onClick(function(_) { dialog.hideDialog("{{cancel}}"); }); var chartContainerA = dialog.findComponent("chartContainerA"); if(chartContainerA == null) { throw haxe_Exception.thrown("Could not locate chartContainerA in Open Chart dialog"); } var chartContainerB = dialog.findComponent("chartContainerB"); if(chartContainerB == null) { throw haxe_Exception.thrown("Could not locate chartContainerB in Open Chart dialog"); } var songMetadata = new haxe_ds_StringMap(); var songChartData = new haxe_ds_StringMap(); var buttonContinue = dialog.findComponent("dialogContinue",haxe_ui_components_Button); if(buttonContinue == null) { throw haxe_Exception.thrown("Could not locate dialogContinue button in Open Chart dialog"); } buttonContinue.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSong(state,songMetadata,songChartData); dialog.hideDialog("{{apply}}"); }); var onDropFileMetadataVariation; var onClickMetadataVariation; var onDropFileChartDataVariation; var onClickChartDataVariation; var constructVariationEntries = function(variations) { while(chartContainerB.getComponentAt(0) != null) chartContainerB.removeComponent(chartContainerB.getComponentAt(0)); var songDefaultChartDataEntry = haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_ENTRY_LAYOUT); var songDefaultChartDataEntryLabel = songDefaultChartDataEntry.findComponent("chartEntryLabel",haxe_ui_components_Label); if(songDefaultChartDataEntryLabel == null) { throw haxe_Exception.thrown("Could not locate chartEntryLabel in Open Chart dialog"); } songDefaultChartDataEntryLabel.set_text("Drag and drop -chart.json file, or click to browse."); var _g = onClickChartDataVariation; var a1 = funkin_util_Constants.DEFAULT_VARIATION; var _g1 = function(a2,a3) { _g(a1,a2,a3); }; var a2 = songDefaultChartDataEntryLabel; songDefaultChartDataEntry.set_onClick(function(a3) { _g1(a2,a3); }); var _g2 = onDropFileChartDataVariation; var a11 = funkin_util_Constants.DEFAULT_VARIATION; var _g3 = function(a2,a3) { _g2(a11,a2,a3); }; var a21 = songDefaultChartDataEntryLabel; var constructVariationEntries = function(a3) { _g3(a21,a3); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,{ component : songDefaultChartDataEntry, handler : constructVariationEntries}); chartContainerB.addComponent(songDefaultChartDataEntry); var _g4 = 0; while(_g4 < variations.length) { var variation = variations[_g4]; ++_g4; var songVariationMetadataEntry = [haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_ENTRY_LAYOUT)]; var songVariationMetadataEntryLabel = songVariationMetadataEntry[0].findComponent("chartEntryLabel",haxe_ui_components_Label); if(songVariationMetadataEntryLabel == null) { throw haxe_Exception.thrown("Could not locate chartEntryLabel in Open Chart dialog"); } songVariationMetadataEntryLabel.set_text("Drag and drop -metadata-" + variation + ".json file, or click to browse."); songVariationMetadataEntry[0].set_onMouseOver((function(songVariationMetadataEntry) { return function(_) { songVariationMetadataEntry[0].swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }; })(songVariationMetadataEntry)); songVariationMetadataEntry[0].set_onMouseOut((function(songVariationMetadataEntry) { return function(_) { songVariationMetadataEntry[0].swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }; })(songVariationMetadataEntry)); songVariationMetadataEntry[0].set_onClick((function(_g,a2) { return function(a3) { _g[0](a2[0],a3); }; })([(function(_g,a1) { return function(a2,a3) { _g[0](a1[0],a2,a3); }; })([onClickMetadataVariation],[variation])],[songVariationMetadataEntryLabel])); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,{ component : songVariationMetadataEntry[0], handler : (function(_g,a2) { return function(a3) { _g[0](a2[0],a3); }; })([(function(_g,a1) { return function(a2,a3) { _g[0](a1[0],a2,a3); }; })([onDropFileMetadataVariation],[variation])],[songVariationMetadataEntryLabel])}); chartContainerB.addComponent(songVariationMetadataEntry[0]); var songVariationChartDataEntry = [haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_ENTRY_LAYOUT)]; var songVariationChartDataEntryLabel = songVariationChartDataEntry[0].findComponent("chartEntryLabel",haxe_ui_components_Label); if(songVariationChartDataEntryLabel == null) { throw haxe_Exception.thrown("Could not locate chartEntryLabel in Open Chart dialog"); } songVariationChartDataEntryLabel.set_text("Drag and drop -chart-" + variation + ".json file, or click to browse."); songVariationChartDataEntry[0].set_onMouseOver((function(songVariationChartDataEntry) { return function(_) { songVariationChartDataEntry[0].swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }; })(songVariationChartDataEntry)); songVariationChartDataEntry[0].set_onMouseOut((function(songVariationChartDataEntry) { return function(_) { songVariationChartDataEntry[0].swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }; })(songVariationChartDataEntry)); songVariationChartDataEntry[0].set_onClick((function(_g,a2) { return function(a3) { _g[0](a2[0],a3); }; })([(function(_g,a1) { return function(a2,a3) { _g[0](a1[0],a2,a3); }; })([onClickChartDataVariation],[variation])],[songVariationChartDataEntryLabel])); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,{ component : songVariationChartDataEntry[0], handler : (function(_g,a2) { return function(a3) { _g[0](a2[0],a3); }; })([(function(_g,a1) { return function(a2,a3) { _g[0](a1[0],a2,a3); }; })([onDropFileChartDataVariation],[variation])],[songVariationChartDataEntryLabel])}); chartContainerB.addComponent(songVariationChartDataEntry[0]); } }; onDropFileMetadataVariation = function(variation,label,pathStr) { var path = new haxe_io_Path(pathStr); haxe_Log.trace("Dropped JSON file (" + Std.string(path) + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 848, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openChartDialog"}); var songMetadataTxt = funkin_util_FileUtil.readStringFromPath(path.toString()); var songMetadataVersion = funkin_util_VersionUtil.getVersionFromJSON(songMetadataTxt); if(songMetadataVersion == null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Could not parse metadata file version (" + path.file + "." + path.ext + ")"); return; } var songMetadataVariation = funkin_data_song_SongRegistry.get_instance().parseEntryMetadataRawWithMigration(songMetadataTxt,path.toString(),songMetadataVersion); if(songMetadataVariation == null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Could not load metadata file (" + path.file + "." + path.ext + ")"); return; } songMetadata.h[variation] = songMetadataVariation; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Metadata","Loaded metadata file (" + path.file + "." + path.ext + ")"); label.set_text("Metadata file (drag and drop, or click to browse)\nSelected file: " + path.file + "." + path.ext); if(variation == funkin_util_Constants.DEFAULT_VARIATION) { constructVariationEntries(songMetadataVariation.playData.songVariations); } }; onClickMetadataVariation = function(variation,label,_) { haxe_ui_containers_dialogs_Dialogs.openBinaryFile("Open Chart (" + variation + ") Metadata",[{ label : "JSON File (.json)", extension : "json"}],function(selectedFile) { if(selectedFile != null && selectedFile.bytes != null) { haxe_Log.trace("Selected file: " + selectedFile.name,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 889, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openChartDialog"}); var songMetadataTxt = selectedFile.bytes.toString(); var songMetadataVersion = funkin_util_VersionUtil.getVersionFromJSON(songMetadataTxt); if(songMetadataVersion == null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Could not parse metadata file version (" + selectedFile.name + ")"); return; } var songMetadataVariation = funkin_data_song_SongRegistry.get_instance().parseEntryMetadataRawWithMigration(songMetadataTxt,selectedFile.name,songMetadataVersion); if(songMetadataVariation != null) { songMetadata.h[variation] = songMetadataVariation; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Metadata","Loaded metadata file (" + selectedFile.name + ")"); label.set_text("Metadata file (drag and drop, or click to browse)\nSelected file: " + selectedFile.name); if(variation == funkin_util_Constants.DEFAULT_VARIATION) { constructVariationEntries(songMetadataVariation.playData.songVariations); } } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Failed to load metadata file (" + selectedFile.name + ")"); } } }); }; onDropFileChartDataVariation = function(variation,label,pathStr) { var path = new haxe_io_Path(pathStr); haxe_Log.trace("Dropped JSON file (" + Std.string(path) + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 930, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openChartDialog"}); var songChartDataTxt = funkin_util_FileUtil.readStringFromPath(path.toString()); var songChartDataVersion = funkin_util_VersionUtil.getVersionFromJSON(songChartDataTxt); if(songChartDataVersion == null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Could not parse chart data file version (" + path.file + "." + path.ext + ")"); return; } var songChartDataVariation = funkin_data_song_SongRegistry.get_instance().parseEntryChartDataRawWithMigration(songChartDataTxt,path.toString(),songChartDataVersion); if(songChartDataVariation != null) { songChartData.h[variation] = songChartDataVariation; state.set_notePreviewDirty(true); state.notePreviewViewportBoundsDirty = true; state.noteDisplayDirty = true; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Chart Data","Loaded chart data file (" + path.file + "." + path.ext + ")"); label.set_text("Chart data file (drag and drop, or click to browse)\nSelected file: " + path.file + "." + path.ext); } else { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Failed to load chart data file (" + path.file + "." + path.ext + ")"); } }; onClickChartDataVariation = function(variation,label,_) { haxe_ui_containers_dialogs_Dialogs.openBinaryFile("Open Chart (" + variation + ") Metadata",[{ label : "JSON File (.json)", extension : "json"}],function(selectedFile) { if(selectedFile != null && selectedFile.bytes != null) { haxe_Log.trace("Selected file: " + selectedFile.name,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 973, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openChartDialog"}); var songChartDataTxt = selectedFile.bytes.toString(); var songChartDataVersion = funkin_util_VersionUtil.getVersionFromJSON(songChartDataTxt); if(songChartDataVersion == null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Could not parse chart data file version (" + selectedFile.name + ")"); return; } var songChartDataVariation = funkin_data_song_SongRegistry.get_instance().parseEntryChartDataRawWithMigration(songChartDataTxt,selectedFile.name,songChartDataVersion); if(songChartDataVariation != null) { songChartData.h[variation] = songChartDataVariation; state.set_notePreviewDirty(true); state.notePreviewViewportBoundsDirty = true; state.noteDisplayDirty = true; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Loaded Chart Data","Loaded chart data file (" + selectedFile.name + ")"); label.set_text("Chart data file (drag and drop, or click to browse)\nSelected file: " + selectedFile.name); } } }); }; var metadataEntry = haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_ENTRY_LAYOUT); var metadataEntryLabel = metadataEntry.findComponent("chartEntryLabel",haxe_ui_components_Label); if(metadataEntryLabel == null) { throw haxe_Exception.thrown("Could not locate chartEntryLabel in Open Chart dialog"); } metadataEntryLabel.set_text("Drag and drop -metadata.json file, or click to browse."); var _g = onClickMetadataVariation; var a1 = funkin_util_Constants.DEFAULT_VARIATION; var _g1 = function(a2,a3) { _g(a1,a2,a3); }; var a2 = metadataEntryLabel; var tmp = function(a3) { _g1(a2,a3); }; metadataEntry.set_onClick(tmp); var _g2 = onDropFileMetadataVariation; var a11 = funkin_util_Constants.DEFAULT_VARIATION; var _g3 = function(a2,a3) { _g2(a11,a2,a3); }; var a21 = metadataEntryLabel; var tmp = function(a3) { _g3(a21,a3); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,{ component : metadataEntry, handler : tmp}); metadataEntry.set_onMouseOver(function(_event) { metadataEntry.swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }); metadataEntry.set_onMouseOut(function(_) { metadataEntry.swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }); chartContainerA.addComponent(metadataEntry); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openImportChartDialog = function(state,format,closable) { if(closable == null) { closable = true; } var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_IMPORT_CHART_LAYOUT,true,closable); if(dialog == null) { return null; } var prettyFormat = format == "legacy" ? "FNF Legacy" : "Unknown"; var fileFilter = format == "legacy" ? { label : "JSON Data File (.json)", extension : "json"} : null; dialog.set_title("Import Chart - " + prettyFormat); var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Import Chart dialog"); } state.isHaxeUIDialogOpen = true; buttonCancel.set_onClick(function(_) { state.isHaxeUIDialogOpen = false; dialog.hideDialog("{{cancel}}"); }); var importBox = dialog.findComponent("importBox",haxe_ui_containers_Box); if(importBox == null) { throw haxe_Exception.thrown("Could not locate importBox in Import Chart dialog"); } importBox.set_onMouseOver(function(_) { importBox.swapClass("upload-bg","upload-bg-hover"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Pointer); }); importBox.set_onMouseOut(function(_) { importBox.swapClass("upload-bg-hover","upload-bg"); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); }); importBox.set_onClick(function(_) { haxe_ui_containers_dialogs_Dialogs.openBinaryFile("Import Chart - " + prettyFormat,fileFilter != null ? [fileFilter] : [],function(selectedFile) { if(selectedFile != null && selectedFile.bytes != null) { haxe_Log.trace("Selected file: " + selectedFile.fullPath,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 1087, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openImportChartDialog"}); var selectedFileTxt = selectedFile.bytes.toString(); var fnfLegacyData = funkin_data_song_importer_FNFLegacyImporter.parseLegacyDataRaw(selectedFileTxt,selectedFile.fullPath); if(fnfLegacyData == null) { funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,"Failure","Failed to parse FNF chart file (" + selectedFile.name + ")"); return; } var songMetadata = funkin_data_song_importer_FNFLegacyImporter.migrateMetadata(fnfLegacyData); var songChartData = funkin_data_song_importer_FNFLegacyImporter.migrateChartData(fnfLegacyData); var state1 = state; var _g = new haxe_ds_StringMap(); _g.h[funkin_util_Constants.DEFAULT_VARIATION] = songMetadata; var _g1 = new haxe_ds_StringMap(); _g1.h[funkin_util_Constants.DEFAULT_VARIATION] = songChartData; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSong(state1,_g,_g1); dialog.hideDialog("{{apply}}"); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Success","Loaded chart file (" + selectedFile.name + ")"); } }); }); var onDropFile = function(pathStr) { var path = new haxe_io_Path(pathStr); var selectedFileText = funkin_util_FileUtil.readStringFromPath(path.toString()); var selectedFileData = funkin_data_song_importer_FNFLegacyImporter.parseLegacyDataRaw(selectedFileText,path.toString()); var songMetadata = funkin_data_song_importer_FNFLegacyImporter.migrateMetadata(selectedFileData); var songChartData = funkin_data_song_importer_FNFLegacyImporter.migrateChartData(selectedFileData); var state1 = state; var _g = new haxe_ds_StringMap(); _g.h[funkin_util_Constants.DEFAULT_VARIATION] = songMetadata; var _g1 = new haxe_ds_StringMap(); _g1.h[funkin_util_Constants.DEFAULT_VARIATION] = songChartData; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSong(state1,_g,_g1); dialog.hideDialog("{{apply}}"); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Success","Loaded chart file (" + path.file + "." + path.ext + ")"); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler(state,{ component : importBox, handler : onDropFile}); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openUserGuideDialog = function(state) { return funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_USER_GUIDE_LAYOUT,true,true); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openAddVariationDialog = function(state,closable) { if(closable == null) { closable = true; } var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_ADD_VARIATION_LAYOUT,true,false); if(dialog == null) { throw haxe_Exception.thrown("Could not locate Add Variation dialog"); } var variationForm = dialog.findComponent("variationForm",haxe_ui_containers_Form); if(variationForm == null) { throw haxe_Exception.thrown("Could not locate variationForm Form in Add Variation dialog"); } var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Add Variation dialog"); } buttonCancel.set_onClick(function(_) { dialog.hideDialog("{{cancel}}"); }); var buttonAdd = dialog.findComponent("dialogAdd",haxe_ui_components_Button); if(buttonAdd == null) { throw haxe_Exception.thrown("Could not locate dialogAdd button in Add Variation dialog"); } buttonAdd.set_onClick(function(_) { variationForm.submit(); }); var dialogSongName = dialog.findComponent("dialogSongName",haxe_ui_components_TextField); if(dialogSongName == null) { throw haxe_Exception.thrown("Could not locate dialogSongName TextField in Add Variation dialog"); } dialogSongName.set_value(state.get_currentSongMetadata().songName); var dialogSongArtist = dialog.findComponent("dialogSongArtist",haxe_ui_components_TextField); if(dialogSongArtist == null) { throw haxe_Exception.thrown("Could not locate dialogSongArtist TextField in Add Variation dialog"); } dialogSongArtist.set_value(state.get_currentSongMetadata().artist); var dialogStage = dialog.findComponent("dialogStage",haxe_ui_components_DropDown); if(dialogStage == null) { throw haxe_Exception.thrown("Could not locate dialogStage DropDown in Add Variation dialog"); } var startingValueStage = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithStages(dialogStage,state.get_currentSongMetadata().playData.stage); dialogStage.set_value(startingValueStage); var dialogNoteStyle = dialog.findComponent("dialogNoteStyle",haxe_ui_components_DropDown); if(dialogNoteStyle == null) { throw haxe_Exception.thrown("Could not locate dialogNoteStyle DropDown in Add Variation dialog"); } dialogNoteStyle.set_value(state.get_currentSongMetadata().playData.noteStyle); var dialogCharacterPlayer = dialog.findComponent("dialogCharacterPlayer",haxe_ui_components_DropDown); if(dialogCharacterPlayer == null) { throw haxe_Exception.thrown("Could not locate dialogCharacterPlayer DropDown in Add Variation dialog"); } dialogCharacterPlayer.set_value(funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters(dialogCharacterPlayer,funkin_play_character_CharacterType.BF,state.get_currentSongMetadata().playData.characters.player)); var dialogCharacterOpponent = dialog.findComponent("dialogCharacterOpponent",haxe_ui_components_DropDown); if(dialogCharacterOpponent == null) { throw haxe_Exception.thrown("Could not locate dialogCharacterOpponent DropDown in Add Variation dialog"); } dialogCharacterOpponent.set_value(funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters(dialogCharacterOpponent,funkin_play_character_CharacterType.DAD,state.get_currentSongMetadata().playData.characters.opponent)); var dialogCharacterGirlfriend = dialog.findComponent("dialogCharacterGirlfriend",haxe_ui_components_DropDown); if(dialogCharacterGirlfriend == null) { throw haxe_Exception.thrown("Could not locate dialogCharacterGirlfriend DropDown in Add Variation dialog"); } dialogCharacterGirlfriend.set_value(funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters(dialogCharacterGirlfriend,funkin_play_character_CharacterType.GF,state.get_currentSongMetadata().playData.characters.girlfriend)); var dialogBPM = dialog.findComponent("dialogBPM",haxe_ui_components_NumberStepper); if(dialogBPM == null) { throw haxe_Exception.thrown("Could not locate dialogBPM NumberStepper in Add Variation dialog"); } var currentStartingBPM = state.get_currentSongMetadata().timeChanges[0].bpm; dialogBPM.set_value(currentStartingBPM); state.isHaxeUIDialogOpen = true; variationForm.set_onSubmit(function(_) { state.isHaxeUIDialogOpen = false; haxe_Log.trace("Add Variation dialog submitted, validation succeeded!",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 1206, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openAddVariationDialog"}); var dialogVariationName = dialog.findComponent("dialogVariationName",haxe_ui_components_TextField); if(dialogVariationName == null) { throw haxe_Exception.thrown("Could not locate dialogVariationName TextField in Add Variation dialog"); } var pendingVariation = new funkin_data_song_SongMetadata(dialogSongName.get_text(),dialogSongArtist.get_text(),dialogVariationName.get_text().toLowerCase()); pendingVariation.playData.stage = dialogStage.get_value().id; pendingVariation.playData.noteStyle = dialogNoteStyle.get_value(); pendingVariation.timeChanges[0].bpm = dialogBPM.get_value(); state.songMetadata.h[pendingVariation.variation] = pendingVariation; state.difficultySelectDirty = true; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Add Variation","Added new variation \"" + pendingVariation.variation + "\""); dialog.hideDialog("{{apply}}"); }); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openAddDifficultyDialog = function(state,closable) { if(closable == null) { closable = true; } var dialog = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog(state,funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_ADD_DIFFICULTY_LAYOUT,true,false); if(dialog == null) { throw haxe_Exception.thrown("Could not locate Add Difficulty dialog"); } var difficultyForm = dialog.findComponent("difficultyForm",haxe_ui_containers_Form); if(difficultyForm == null) { throw haxe_Exception.thrown("Could not locate difficultyForm Form in Add Difficulty dialog"); } var buttonCancel = dialog.findComponent("dialogCancel",haxe_ui_components_Button); if(buttonCancel == null) { throw haxe_Exception.thrown("Could not locate dialogCancel button in Add Difficulty dialog"); } buttonCancel.set_onClick(function(_) { dialog.hideDialog("{{cancel}}"); }); var buttonAdd = dialog.findComponent("dialogAdd",haxe_ui_components_Button); if(buttonAdd == null) { throw haxe_Exception.thrown("Could not locate dialogAdd button in Add Difficulty dialog"); } buttonAdd.set_onClick(function(_) { difficultyForm.submit(); }); var dialogVariation = dialog.findComponent("dialogVariation",haxe_ui_components_DropDown); if(dialogVariation == null) { throw haxe_Exception.thrown("Could not locate dialogVariation DropDown in Add Variation dialog"); } dialogVariation.set_value(funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithVariations(dialogVariation,state,true)); var labelScrollSpeed = dialog.findComponent("labelScrollSpeed",haxe_ui_components_Label); if(labelScrollSpeed == null) { throw haxe_Exception.thrown("Could not find labelScrollSpeed component."); } var inputScrollSpeed = dialog.findComponent("inputScrollSpeed",haxe_ui_components_Slider); if(inputScrollSpeed == null) { throw haxe_Exception.thrown("Could not find inputScrollSpeed component."); } inputScrollSpeed.set_onChange(function(event) { labelScrollSpeed.set_text("Scroll Speed: " + Std.string(inputScrollSpeed.get_value()) + "x"); }); inputScrollSpeed.set_value(state.get_currentSongChartScrollSpeed()); labelScrollSpeed.set_text("Scroll Speed: " + Std.string(inputScrollSpeed.get_value()) + "x"); difficultyForm.set_onSubmit(function(_) { haxe_Log.trace("Add Difficulty dialog submitted, validation succeeded!",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 1273, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "openAddDifficultyDialog"}); var dialogDifficultyName = dialog.findComponent("dialogDifficultyName",haxe_ui_components_TextField); if(dialogDifficultyName == null) { throw haxe_Exception.thrown("Could not locate dialogDifficultyName TextField in Add Difficulty dialog"); } var state1 = state; var tmp = dialogVariation.get_value().id; var tmp1 = dialogDifficultyName.get_text().toLowerCase(); var tmp2 = inputScrollSpeed.get_value(); state1.createDifficulty(tmp,tmp1,tmp2 != null ? tmp2 : 1.0); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Add Difficulty","Added new difficulty \"" + dialogDifficultyName.get_text().toLowerCase() + "\""); dialog.hideDialog("{{apply}}"); }); return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openDialog = function(state,key,modal,closable) { if(closable == null) { closable = true; } if(modal == null) { modal = true; } var dialog = haxe_ui_RuntimeComponentBuilder.fromAsset(key); if(dialog == null) { return null; } dialog.destroyOnClose = true; dialog.set_closable(closable); dialog.showDialog(modal); state.isHaxeUIDialogOpen = true; dialog.set_onDialogClosed(function(event) { state.isHaxeUIDialogOpen = false; }); dialog.zIndex = 1000; return dialog; }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.addDropHandler = function(state,dropTarget) { haxe_Log.trace("addDropHandler not implemented for this platform",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorDialogHandler.hx", lineNumber : 1331, className : "funkin.ui.debug.charting.handlers.ChartEditorDialogHandler", methodName : "addDropHandler"}); }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.removeDropHandler = function(state,dropTarget) { }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.clearDropHandlers = function(state) { }; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.onDropFile = function(path) { new flixel_util_FlxTimer().start(funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.EPSILON,function(_) { var _g = 0; var _g1 = funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.dropHandlers; while(_g < _g1.length) { var handler = _g1[_g]; ++_g; if(handler.component.hitTest(flixel_FlxG.mouse.screenX,flixel_FlxG.mouse.screenY)) { handler.handler(path); return; } } }); }; var funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler"] = funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler; funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler"; funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler.handleGamepadControls = function(chartEditorState) { if(flixel_FlxG.gamepads.firstActive != null) { funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler.handleGamepad(chartEditorState,flixel_FlxG.gamepads.firstActive); } }; funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler.handleGamepad = function(chartEditorState,gamepad) { if(chartEditorState.get_isHaxeUIFocused()) { funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource.instance.handleGamepad(gamepad); } else { funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler.handleGamepadLiveInputs(chartEditorState,gamepad); var _this = gamepad.justPressed; var id = 5; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: Right shoulder pressed, toggling audio playback.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 39, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler", methodName : "handleGamepad"}); chartEditorState.toggleAudioPlayback(); } var _this = gamepad.justPressed; var id = 7; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { var _this = gamepad.pressed; var id = 4; var _this1 = _this.gamepad; var Status = _this.status; var minimal; switch(id) { case -2: minimal = _this1.anyButton(Status); break; case -1: minimal = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; minimal = button != null && button.hasState(Status); } funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.hideAllToolboxes(chartEditorState); haxe_Log.trace("Gamepad: Start pressed, opening playtest (minimal: " + (minimal == null ? "null" : "" + minimal) + ")",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 47, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler", methodName : "handleGamepad"}); chartEditorState.testSongInPlayState(minimal); } var tmp; var _this = gamepad.justPressed; var id = 6; var _this1 = _this.gamepad; var Status = _this.status; var tmp1; switch(id) { case -2: tmp1 = _this1.anyButton(Status); break; case -1: tmp1 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } if(tmp1) { var _this = gamepad.pressed; var id = 4; var _this1 = _this.gamepad; var Status = _this.status; var tmp1; switch(id) { case -2: tmp1 = _this1.anyButton(Status); break; case -1: tmp1 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } tmp = !tmp1; } else { tmp = false; } if(tmp) { haxe_Log.trace("Gamepad: Back pressed, focusing on HaxeUI menu.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 53, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler", methodName : "handleGamepad"}); } else { var tmp; var _this = gamepad.justPressed; var id = 6; var _this1 = _this.gamepad; var Status = _this.status; var tmp1; switch(id) { case -2: tmp1 = _this1.anyButton(Status); break; case -1: tmp1 = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp1 = button != null && button.hasState(Status); } if(tmp1) { var _this = gamepad.pressed; var id = 4; var _this1 = _this.gamepad; var Status = _this.status; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } } else { tmp = false; } if(tmp) { haxe_Log.trace("Gamepad: Back pressed, unfocusing on HaxeUI menu.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 58, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler", methodName : "handleGamepad"}); haxe_ui_focus_FocusManager.get_instance().set_focus(null); } } } var _this = gamepad.justPressed; var id = 10; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: Guide pressed, quitting chart editor.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 65, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadHandler", methodName : "handleGamepad"}); chartEditorState.quitChartEditor(); } }; funkin_ui_debug_charting_handlers_ChartEditorGamepadHandler.handleGamepadLiveInputs = function(chartEditorState,gamepad) { if(!(chartEditorState.get_isHaxeUIFocused() || chartEditorState.isHaxeUIDialogOpen)) { var _this = gamepad.justPressed; var id = 13; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(4); } var _this = gamepad.justReleased; var id = 13; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(4); } var _this = gamepad.justPressed; var id = 12; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(5); } var _this = gamepad.justReleased; var id = 12; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(5); } var _this = gamepad.justPressed; var id = 11; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(6); } var _this = gamepad.justReleased; var id = 11; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(6); } var _this = gamepad.justPressed; var id = 14; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(7); } var _this = gamepad.justReleased; var id = 14; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(7); } var _this = gamepad.justPressed; var id = 2; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(0); } var _this = gamepad.justReleased; var id = 2; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(0); } var _this = gamepad.justPressed; var id = 0; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(1); } var _this = gamepad.justReleased; var id = 0; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(1); } var _this = gamepad.justPressed; var id = 3; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(2); } var _this = gamepad.justReleased; var id = 3; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(2); } var _this = gamepad.justPressed; var id = 1; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.placeNoteAtPlayhead(3); } var _this = gamepad.justReleased; var id = 1; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { chartEditorState.finishPlaceNoteAtPlayhead(3); } } }; var haxe_ui_actions_IActionInputSource = function() { }; $hxClasses["haxe.ui.actions.IActionInputSource"] = haxe_ui_actions_IActionInputSource; haxe_ui_actions_IActionInputSource.__name__ = "haxe.ui.actions.IActionInputSource"; haxe_ui_actions_IActionInputSource.__isInterface__ = true; haxe_ui_actions_IActionInputSource.prototype = { start: null ,__class__: haxe_ui_actions_IActionInputSource }; var funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource"] = funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource; funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource"; funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource.__interfaces__ = [haxe_ui_actions_IActionInputSource]; funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource.prototype = { start: function() { } ,handleGamepad: function(gamepad) { var _this = gamepad.justPressed; var id = 13; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: DPAD_LEFT pressed, moving left.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 115, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionLeft",this); } else { var _this = gamepad.justReleased; var id = 13; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionLeft",this); } } var _this = gamepad.justPressed; var id = 14; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: DPAD_RIGHT pressed, moving right.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 125, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionRight",this); } else { var _this = gamepad.justReleased; var id = 14; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionRight",this); } } var _this = gamepad.justPressed; var id = 11; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: DPAD_UP pressed, moving up.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 135, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionUp",this); } else { var _this = gamepad.justReleased; var id = 11; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionUp",this); } } var _this = gamepad.justPressed; var id = 12; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: DPAD_DOWN pressed, moving down.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 145, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionDown",this); } else { var _this = gamepad.justReleased; var id = 12; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionDown",this); } } var _this = gamepad.justPressed; var id = 0; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: A pressed, confirmingg.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 155, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionConfirm",this); } else { var _this = gamepad.justReleased; var id = 0; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionConfirm",this); } } var _this = gamepad.justPressed; var id = 1; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: B pressed, cancelling.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 165, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionCancel",this); } else { var _this = gamepad.justReleased; var id = 1; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionCancel",this); } } var _this = gamepad.justPressed; var id = 17; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: LEFT_TRIGGER pressed, moving to previous item.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 175, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionPrevious",this); } else { var _this = gamepad.justReleased; var id = 17; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionPrevious",this); } } var _this = gamepad.justPressed; var id = 18; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_Log.trace("Gamepad: RIGHT_TRIGGER pressed, moving to next item.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorGamepadHandler.hx", lineNumber : 185, className : "funkin.ui.debug.charting.handlers.ChartEditorGamepadActionInputSource", methodName : "handleGamepad"}); haxe_ui_actions_ActionManager.get_instance().actionStart("actionNext",this); } else { var _this = gamepad.justReleased; var id = 18; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionNext",this); } } } ,__class__: funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource }; var funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler"] = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler"; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSongAsTemplate = function(state,songId) { haxe_Log.trace("===============START",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 31, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "loadSongAsTemplate"}); var song = funkin_data_song_SongRegistry.get_instance().fetchEntry(songId); if(song == null) { return; } var rawSongMetadata = song.getRawMetadata(); var songMetadata = new haxe_ds_StringMap(); var songChartData = new haxe_ds_StringMap(); var _g = 0; while(_g < rawSongMetadata.length) { var metadata = rawSongMetadata[_g]; ++_g; if(metadata == null) { continue; } var variation = metadata.variation == null || metadata.variation == "" ? funkin_util_Constants.DEFAULT_VARIATION : metadata.variation; var metadataClone = metadata.clone(); metadataClone.variation = variation; if(metadataClone != null) { songMetadata.h[variation] = metadataClone; } var chartData = funkin_data_song_SongRegistry.get_instance().parseEntryChartData(songId,metadata.variation); if(chartData != null) { songChartData.h[variation] = chartData; } } funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSong(state,songMetadata,songChartData); state.sortChartData(); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeInstrumentalData(state); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeVocalData(state); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.stopExistingVocals(state); var variations = state.get_availableVariations(); var _g = 0; while(_g < variations.length) { var variation = variations[_g]; ++_g; if(variation == funkin_util_Constants.DEFAULT_VARIATION) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromAsset(state,funkin_Paths.inst(songId)); } else { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromAsset(state,funkin_Paths.inst(songId,"-" + variation),variation); } var _g1 = 0; var _g2 = song.listDifficulties(variation,null,true,true); while(_g1 < _g2.length) { var difficultyId = _g2[_g1]; ++_g1; var diff = song.getDifficulty(difficultyId,variation); if(diff == null) { continue; } var instId = diff.variation == funkin_util_Constants.DEFAULT_VARIATION ? "" : diff.variation; var voiceList = diff.buildVoiceList(); if(voiceList.length == 2) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromAsset(state,voiceList[0],diff.characters.player,instId); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromAsset(state,voiceList[1],diff.characters.opponent,instId); } else if(voiceList.length == 1) { funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromAsset(state,voiceList[0],diff.characters.player,instId); } else { haxe_Log.trace("[WARN] Strange quantity of voice paths for difficulty " + difficultyId + ": " + voiceList.length,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 95, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "loadSongAsTemplate"}); } } } state.isHaxeUIDialogOpen = false; state.set_currentWorkingFilePath(null); state.switchToCurrentInstrumental(); state.postLoadInstrumental(); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(state,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success(state,"Success","Loaded song (" + rawSongMetadata[0].songName + ")"); haxe_Log.trace("===============END",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 110, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "loadSongAsTemplate"}); }; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSong = function(state,newSongMetadata,newSongChartData) { state.songMetadata = newSongMetadata; state.songChartData = newSongChartData; funkin_Conductor.get_instance().forceBPM(null); funkin_Conductor.get_instance().instrumentalOffset = state.get_currentInstrumentalOffset(); funkin_Conductor.get_instance().mapTimeChanges(state.get_currentSongMetadata().timeChanges); state.updateTimeSignature(); state.set_notePreviewDirty(true); state.notePreviewViewportBoundsDirty = true; state.difficultySelectDirty = true; state.opponentPreviewDirty = true; state.playerPreviewDirty = true; if(state.audioInstTrack != null) { var _this = state.audioInstTrack; _this.cleanup(_this.autoDestroy,true); state.audioInstTrack = null; } state.audioVocalTrackGroup.stop(); state.audioVocalTrackGroup.clear(); }; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFCPath = function(state,path) { var bytes = funkin_util_FileUtil.readBytesFromPath(path); if(bytes == null) { return null; } haxe_Log.trace("Loaded " + bytes.length + " bytes from " + path,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 155, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "loadFromFNFCPath"}); var result = funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFC(state,bytes); if(result != null) { state.set_currentWorkingFilePath(path); state.set_saveDataDirty(false); } return result; }; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadFromFNFC = function(state,bytes) { var warnings = []; var songMetadatas = new haxe_ds_StringMap(); var songChartDatas = new haxe_ds_StringMap(); var fileEntries = funkin_util_FileUtil.readZIPFromBytes(bytes); var mappedFileEntries = funkin_util_FileUtil.mapZIPEntriesByName(fileEntries); var tmp = mappedFileEntries.h["manifest.json"]; var manifestBytes = tmp != null ? tmp.data : null; if(manifestBytes == null) { throw haxe_Exception.thrown("Could not locate manifest."); } var manifestString = manifestBytes.toString(); var manifest = funkin_data_song_importer_ChartManifestData.deserialize(manifestString); if(manifest == null) { throw haxe_Exception.thrown("Could not read manifest."); } var songId = manifest.songId; var baseMetadataPath = manifest.getMetadataFileName(); var baseChartDataPath = manifest.getChartDataFileName(); var tmp = mappedFileEntries.h[baseMetadataPath]; var baseMetadataBytes = tmp != null ? tmp.data : null; if(baseMetadataBytes == null) { throw haxe_Exception.thrown("Could not locate metadata (default)."); } var baseMetadataString = baseMetadataBytes.toString(); var baseMetadataVersion = funkin_util_VersionUtil.getVersionFromJSON(baseMetadataString); if(baseMetadataVersion == null) { throw haxe_Exception.thrown("Could not read metadata version (default)."); } var baseMetadata = funkin_data_song_SongRegistry.get_instance().parseEntryMetadataRawWithMigration(baseMetadataString,baseMetadataPath,baseMetadataVersion); if(baseMetadata == null) { throw haxe_Exception.thrown("Could not read metadata (default)."); } songMetadatas.h[funkin_util_Constants.DEFAULT_VARIATION] = baseMetadata; var tmp = mappedFileEntries.h[baseChartDataPath]; var baseChartDataBytes = tmp != null ? tmp.data : null; if(baseChartDataBytes == null) { throw haxe_Exception.thrown("Could not locate chart data (default)."); } var baseChartDataString = baseChartDataBytes.toString(); var baseChartDataVersion = funkin_util_VersionUtil.getVersionFromJSON(baseChartDataString); if(baseChartDataVersion == null) { throw haxe_Exception.thrown("Could not read chart data (default) version."); } var baseChartData = funkin_data_song_SongRegistry.get_instance().parseEntryChartDataRawWithMigration(baseChartDataString,baseChartDataPath,baseChartDataVersion); if(baseChartData == null) { throw haxe_Exception.thrown("Could not read chart data (default)."); } songChartDatas.h[funkin_util_Constants.DEFAULT_VARIATION] = baseChartData; var variationList = baseMetadata.playData.songVariations; var _g = 0; while(_g < variationList.length) { var variation = variationList[_g]; ++_g; var variMetadataPath = manifest.getMetadataFileName(variation); var variChartDataPath = manifest.getChartDataFileName(variation); var tmp = mappedFileEntries.h[variMetadataPath]; var variMetadataBytes = tmp != null ? tmp.data : null; if(variMetadataBytes == null) { throw haxe_Exception.thrown("Could not locate metadata (" + variation + ")."); } var variMetadataString = variMetadataBytes.toString(); var variMetadataVersion = funkin_util_VersionUtil.getVersionFromJSON(variMetadataString); if(variMetadataVersion == null) { throw haxe_Exception.thrown("Could not read metadata (" + variation + ") version."); } var variMetadata = funkin_data_song_SongRegistry.get_instance().parseEntryMetadataRawWithMigration(baseMetadataString,variMetadataPath,variMetadataVersion); if(variMetadata == null) { throw haxe_Exception.thrown("Could not read metadata (" + variation + ")."); } songMetadatas.h[variation] = variMetadata; var tmp1 = mappedFileEntries.h[variChartDataPath]; var variChartDataBytes = tmp1 != null ? tmp1.data : null; if(variChartDataBytes == null) { throw haxe_Exception.thrown("Could not locate chart data (" + variation + ")."); } var variChartDataString = variChartDataBytes.toString(); var variChartDataVersion = funkin_util_VersionUtil.getVersionFromJSON(variChartDataString); if(variChartDataVersion == null) { throw haxe_Exception.thrown("Could not read chart data version (" + variation + ")."); } var variChartData = funkin_data_song_SongRegistry.get_instance().parseEntryChartDataRawWithMigration(variChartDataString,variChartDataPath,variChartDataVersion); if(variChartData == null) { throw haxe_Exception.thrown("Could not read chart data (" + variation + ")."); } songChartDatas.h[variation] = variChartData; } funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeInstrumentalData(state); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.wipeVocalData(state); var _g = 0; var _g1 = [funkin_util_Constants.DEFAULT_VARIATION].concat(variationList); while(_g < _g1.length) { var variation = _g1[_g]; ++_g; var variMetadata = songMetadatas.h[variation]; if(variMetadata == null) { continue; } var tmp = variMetadata != null ? variMetadata.playData : null; var tmp1 = tmp != null ? tmp.characters : null; var tmp2 = tmp1 != null ? tmp1.instrumental : null; var instId = tmp2 != null ? tmp2 : ""; var tmp3 = variMetadata != null ? variMetadata.playData : null; var tmp4 = tmp3 != null ? tmp3.characters : null; var tmp5 = tmp4 != null ? tmp4.player : null; var playerCharId = tmp5 != null ? tmp5 : funkin_util_Constants.DEFAULT_CHARACTER; var tmp6 = variMetadata != null ? variMetadata.playData : null; var tmp7 = tmp6 != null ? tmp6.characters : null; var opponentCharId = tmp7 != null ? tmp7.opponent : null; var instFileName = manifest.getInstFileName(instId); var tmp8 = mappedFileEntries.h[instFileName]; var instFileBytes = tmp8 != null ? tmp8.data : null; if(instFileBytes != null) { if(!funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadInstFromBytes(state,instFileBytes,instId)) { throw haxe_Exception.thrown("Could not load instrumental (" + instFileName + ")."); } } else { throw haxe_Exception.thrown("Could not find instrumental (" + instFileName + ")."); } var playerVocalsFileName = manifest.getVocalsFileName(playerCharId); var tmp9 = mappedFileEntries.h[playerVocalsFileName]; var playerVocalsFileBytes = tmp9 != null ? tmp9.data : null; if(playerVocalsFileBytes != null) { if(!funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromBytes(state,playerVocalsFileBytes,playerCharId,instId)) { warnings.push("Could not parse vocals (" + playerCharId + ")."); } } else { warnings.push("Could not find vocals (" + playerVocalsFileName + ")."); } if(opponentCharId != null) { var opponentVocalsFileName = manifest.getVocalsFileName(opponentCharId); var tmp10 = mappedFileEntries.h[opponentVocalsFileName]; var opponentVocalsFileBytes = tmp10 != null ? tmp10.data : null; if(opponentVocalsFileBytes != null) { if(!funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.loadVocalsFromBytes(state,opponentVocalsFileBytes,opponentCharId,instId)) { warnings.push("Could not parse vocals (" + opponentCharId + ")."); } } else { warnings.push("Could not find vocals (" + opponentVocalsFileName + ")."); } } } haxe_Log.trace(songMetadatas == null ? "null" : haxe_ds_StringMap.stringify(songMetadatas.h),{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 310, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "loadFromFNFC"}); haxe_Log.trace(songChartDatas == null ? "null" : haxe_ds_StringMap.stringify(songChartDatas.h),{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 311, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "loadFromFNFC"}); funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.loadSong(state,songMetadatas,songChartDatas); state.switchToCurrentInstrumental(); return warnings; }; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.getLatestBackupPath = function() { return null; }; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.getLatestBackupDate = function() { return null; }; funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.exportAllSongData = function(state,force,targetPath,onSaveCb,onCancelCb) { if(force == null) { force = false; } var zipEntries = []; var variations = state.get_availableVariations(); var _g = 0; while(_g < variations.length) { var variation = variations[_g]; ++_g; var variationId = variation; if(variation == "" || variation == "default" || variation == "normal") { variationId = ""; } if(variationId == "") { var variationMetadata = state.songMetadata.h[variation]; if(variationMetadata != null) { variationMetadata.version = funkin_data_song_SongRegistry.SONG_METADATA_VERSION; variationMetadata.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); zipEntries.push(funkin_util_FileUtil.makeZIPEntry("" + state.get_currentSongId() + "-metadata.json",variationMetadata.serialize())); } var variationChart = state.songChartData.h[variation]; if(variationChart != null) { variationChart.version = funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION; variationChart.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); zipEntries.push(funkin_util_FileUtil.makeZIPEntry("" + state.get_currentSongId() + "-chart.json",variationChart.serialize())); } } else { var variationMetadata1 = state.songMetadata.h[variation]; if(variationMetadata1 != null) { zipEntries.push(funkin_util_FileUtil.makeZIPEntry("" + state.get_currentSongId() + "-metadata-" + variationId + ".json",variationMetadata1.serialize())); } var variationChart1 = state.songChartData.h[variation]; if(variationChart1 != null) { variationChart1.version = funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION; variationChart1.generatedBy = funkin_data_song_SongRegistry.get_DEFAULT_GENERATEDBY(); zipEntries.push(funkin_util_FileUtil.makeZIPEntry("" + state.get_currentSongId() + "-chart-" + variationId + ".json",variationChart1.serialize())); } } } if(state.audioInstTrackData != null) { zipEntries = zipEntries.concat(funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.makeZIPEntriesFromInstrumentals(state)); } if(state.audioVocalTrackData != null) { zipEntries = zipEntries.concat(funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.makeZIPEntriesFromVocals(state)); } var manifest = new funkin_data_song_importer_ChartManifestData(state.get_currentSongId()); zipEntries.push(funkin_util_FileUtil.makeZIPEntry("manifest.json",manifest.serialize())); haxe_Log.trace("Exporting " + zipEntries.length + " files to ZIP...",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 424, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); if(force) { var targetMode = funkin_util_FileWriteMode.Force; if(targetPath == null) { targetMode = funkin_util_FileWriteMode.Skip; targetPath = haxe_io_Path.join([funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.BACKUPS_PATH,"chart-editor-" + funkin_util_DateUtil.generateTimestamp() + "." + funkin_util_Constants.EXT_CHART]); haxe_Log.trace("Force exporting to " + targetPath + "...",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 438, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); try { funkin_util_FileUtil.saveFilesAsZIPToPath(zipEntries,targetPath,targetMode); if(onSaveCb != null) { onSaveCb(targetPath); } } catch( _g ) { if(onCancelCb != null) { onCancelCb(); } } } else { haxe_Log.trace("Force exporting to " + targetPath + "...",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 454, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); try { funkin_util_FileUtil.saveFilesAsZIPToPath(zipEntries,targetPath,targetMode); state.set_saveDataDirty(false); if(onSaveCb != null) { onSaveCb(targetPath); } } catch( _g ) { if(onCancelCb != null) { onCancelCb(); } } } } else { var onSave = function(paths) { if(paths.length != 1) { haxe_Log.trace("[WARN] Could not get save path.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 475, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); state.applyWindowTitle(); } else { haxe_Log.trace("Saved to \"" + paths[0] + "\"",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 480, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); state.set_currentWorkingFilePath(paths[0]); state.applyWindowTitle(); if(onSaveCb != null) { onSaveCb(paths[0]); } } }; var onCancel = function() { haxe_Log.trace("Export cancelled.",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 488, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); if(onCancelCb != null) { onCancelCb(); } }; haxe_Log.trace("Exporting to user-defined location...",{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx", lineNumber : 492, className : "funkin.ui.debug.charting.handlers.ChartEditorImportExportHandler", methodName : "exportAllSongData"}); try { funkin_util_FileUtil.saveChartAsFNFC(zipEntries,onSave,onCancel,"" + state.get_currentSongId() + "." + funkin_util_Constants.EXT_CHART); state.set_saveDataDirty(false); } catch( _g ) { } } }; var funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorNotificationHandler"] = funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorNotificationHandler"; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.setupNotifications = function(state) { haxe_ui_notifications_NotificationManager.GUTTER_SIZE = 20; }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.success = function(state,title,body) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.sendNotification(state,title,body,haxe_ui_notifications_NotificationType.Success); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.warning = function(state,title,body) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.sendNotification(state,title,body,haxe_ui_notifications_NotificationType.Warning); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.warn = function(state,title,body) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.warning(state,title,body); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error = function(state,title,body) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.sendNotification(state,title,body,haxe_ui_notifications_NotificationType.Error); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.failure = function(state,title,body) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.error(state,title,body); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.info = function(state,title,body) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.sendNotification(state,title,body,haxe_ui_notifications_NotificationType.Info); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.infoWithActions = function(state,title,body,actions) { return funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.sendNotification(state,title,body,haxe_ui_notifications_NotificationType.Info,actions); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.clearNotifications = function(state) { haxe_ui_notifications_NotificationManager.get_instance().clearNotifications(); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.clearNotification = function(state,notif) { haxe_ui_notifications_NotificationManager.get_instance().removeNotification(notif); }; funkin_ui_debug_charting_handlers_ChartEditorNotificationHandler.sendNotification = function(state,title,body,type,actions) { var actionNames; if(actions == null) { actionNames = []; } else { var result = new Array(actions.length); var _g = 0; var _g1 = actions.length; while(_g < _g1) { var i = _g++; result[i] = actions[i].text; } actionNames = result; } var tmp = type; var notif = haxe_ui_notifications_NotificationManager.get_instance().addNotification({ title : title, body : body, type : tmp != null ? tmp : haxe_ui_notifications_NotificationType.Default, expiryMs : funkin_util_Constants.NOTIFICATION_DISMISS_TIME, actions : actions}); if(actions != null && actions.length > 0) { var actionsContainer = notif.findComponent("actionsContainer",haxe_ui_containers_HBox); actionsContainer.walkComponents(function(component) { if(((component) instanceof haxe_ui_components_Button)) { var button = component; var action = thx_Arrays.find(actions,function(action) { return action.text == button.get_text(); }); if(action != null && action.callback != null) { button.set_onClick(function(_) { if(state.subState != null) { return; } action.callback(action); }); } } return true; }); } return notif; }; var funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorShortcutHandler"] = funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler; funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorShortcutHandler"; funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.applyPlatformShortcutText = function(state) { state.menubarItemNewChart.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "N" : "Ctrl+" + "N"); state.menubarItemOpenChart.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "O" : "Ctrl+" + "O"); var state1 = state.menubarItemSaveChartAs; var input = funkin_util_PlatformUtil.isMacOS() ? "⇧+" + "S" : "Shift+" + "S"; state1.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + input : "Ctrl+" + input); state.menubarItemExit.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "Q" : "Ctrl+" + "Q"); state.menubarItemUndo.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "Z" : "Ctrl+" + "Z"); state.menubarItemRedo.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "Y" : "Ctrl+" + "Y"); state.menubarItemCut.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "X" : "Ctrl+" + "X"); state.menubarItemCopy.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "C" : "Ctrl+" + "C"); state.menubarItemPaste.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "V" : "Ctrl+" + "V"); state.menubarItemSelectAllNotes.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "A" : "Ctrl+" + "A"); var state1 = state.menubarItemSelectAllEvents; var input = funkin_util_PlatformUtil.isMacOS() ? "⌥+" + "A" : "Alt+" + "A"; state1.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + input : "Ctrl+" + input); state.menubarItemSelectInverse.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "I" : "Ctrl+" + "I"); state.menubarItemSelectNone.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "D" : "Ctrl+" + "D"); state.menubarItemSelectBeforeCursor.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⇧+" + "Home" : "Shift+" + "Home"); state.menubarItemSelectAfterCursor.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⇧+" + "End" : "Shift+" + "End"); state.menubarItemDifficultyDown.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "←" : "Ctrl+" + "←"); state.menubarItemDifficultyUp.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⌘+" + "→" : "Ctrl+" + "→"); state.menubarItemPlaytestFull.set_shortcutText("Enter"); state.menubarItemPlaytestMinimal.set_shortcutText(funkin_util_PlatformUtil.isMacOS() ? "⇧+" + "Enter" : "Shift+" + "Enter"); }; funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.ctrlOrCmd = function(input) { if(funkin_util_PlatformUtil.isMacOS()) { return "⌘+" + input; } else { return "Ctrl+" + input; } }; funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.ctrl = function(input) { if(funkin_util_PlatformUtil.isMacOS()) { return "^+" + input; } else { return "Ctrl+" + input; } }; funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.alt = function(input) { if(funkin_util_PlatformUtil.isMacOS()) { return "⌥+" + input; } else { return "Alt+" + input; } }; funkin_ui_debug_charting_handlers_ChartEditorShortcutHandler.shift = function(input) { if(funkin_util_PlatformUtil.isMacOS()) { return "⇧+" + input; } else { return "Shift+" + input; } }; var funkin_ui_debug_charting_handlers_ChartEditorThemeHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorThemeHandler"] = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorThemeHandler"; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateTheme = function(state) { funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateBackground(state); funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateGridBitmap(state); funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateMeasureTicks(state); funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateOffsetTicks(state); funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateSelectionSquare(state); funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateNotePreview(state); }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateBackground = function(state) { if(state.menuBG == null) { return; } var tmp; switch(state.currentTheme._hx_index) { case 0: tmp = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.BACKGROUND_COLOR_LIGHT; break; case 1: tmp = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.BACKGROUND_COLOR_DARK; break; } state.menuBG.set_color(tmp); }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateGridBitmap = function(state) { var gridColor1; switch(state.currentTheme._hx_index) { case 0: gridColor1 = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_1_LIGHT; break; case 1: gridColor1 = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_1_DARK; break; } var gridColor2; switch(state.currentTheme._hx_index) { case 0: gridColor2 = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_2_LIGHT; break; case 1: gridColor2 = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_2_DARK; break; } var gridWidth = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.TOTAL_COLUMN_COUNT | 0; var gridHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_Conductor.get_instance().get_stepsPerMeasure() | 0; state.gridBitmap = flixel_addons_display_FlxGridOverlay.createGrid(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,gridWidth,gridHeight,true,gridColor1,gridColor2); var selectionBorderColor; switch(state.currentTheme._hx_index) { case 0: selectionBorderColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_3_LIGHT; break; case 1: selectionBorderColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_3_DARK; break; } state.gridBitmap.fillRect(new openfl_geom_Rectangle(0,-(funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2),state.gridBitmap.width,funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH),selectionBorderColor); var _g = 1; var _g1 = funkin_Conductor.get_instance().get_stepsPerMeasure(); while(_g < _g1) { var i = _g++; state.gridBitmap.fillRect(new openfl_geom_Rectangle(0,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * i - funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2,state.gridBitmap.width,funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH),selectionBorderColor); } state.gridBitmap.fillRect(new openfl_geom_Rectangle(0,state.gridBitmap.height - funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2,state.gridBitmap.width,funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH),selectionBorderColor); state.gridBitmap.fillRect(new openfl_geom_Rectangle(-(funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2),0,funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH,state.gridBitmap.height),selectionBorderColor); var _g = 1; var _g1 = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.TOTAL_COLUMN_COUNT; while(_g < _g1) { var i = _g++; state.gridBitmap.fillRect(new openfl_geom_Rectangle(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * i - funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2,0,funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH,state.gridBitmap.height),selectionBorderColor); } state.gridBitmap.fillRect(new openfl_geom_Rectangle(state.gridBitmap.width - funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH / 2,0,funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH,state.gridBitmap.height),selectionBorderColor); var gridMeasureDividerColor; switch(state.currentTheme._hx_index) { case 0: gridMeasureDividerColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT; break; case 1: gridMeasureDividerColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_DARK; break; } state.gridBitmap.fillRect(new openfl_geom_Rectangle(0,0,state.gridBitmap.width,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_WIDTH / 2),gridMeasureDividerColor); var dividerLineBY = state.gridBitmap.height - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_WIDTH / 2; state.gridBitmap.fillRect(new openfl_geom_Rectangle(0,dividerLineBY,state.gridBitmap.width,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_WIDTH / 2),gridMeasureDividerColor); var gridBeatDividerColor; switch(state.currentTheme._hx_index) { case 0: gridBeatDividerColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_COLOR_LIGHT; break; case 1: gridBeatDividerColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_COLOR_DARK; break; } var _g = 1; var _g1 = funkin_Conductor.get_instance().get_stepsPerMeasure(); while(_g < _g1) { var i = _g++; if(i % funkin_util_Constants.STEPS_PER_BEAT == 0) { state.gridBitmap.fillRect(new openfl_geom_Rectangle(0,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * i - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_WIDTH / 2,state.gridBitmap.width,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_WIDTH),gridBeatDividerColor); } } var gridStrumlineDividerColor; switch(state.currentTheme._hx_index) { case 0: gridStrumlineDividerColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_COLOR_LIGHT; break; case 1: gridStrumlineDividerColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_COLOR_DARK; break; } var dividerLineAX = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_WIDTH / 2; state.gridBitmap.fillRect(new openfl_geom_Rectangle(dividerLineAX,0,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_WIDTH,state.gridBitmap.height),gridStrumlineDividerColor); var dividerLineBX = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * (funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2) - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_WIDTH / 2; state.gridBitmap.fillRect(new openfl_geom_Rectangle(dividerLineBX,0,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_WIDTH,state.gridBitmap.height),gridStrumlineDividerColor); if(state.gridTiledSprite != null) { state.gridTiledSprite.loadGraphic(state.gridBitmap); } }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateMeasureTicks = function(state) { var measureTickWidth = 6; var beatTickWidth = 4; var stepTickWidth = 2; var ticksWidth = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE | 0; var ticksHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_Conductor.get_instance().get_stepsPerMeasure() | 0; state.measureTickBitmap = new openfl_display_BitmapData(ticksWidth,ticksHeight,true); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,0,ticksWidth,ticksHeight),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_COLOR_DARK); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,0,state.measureTickBitmap.width,measureTickWidth / 2),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); var bottomTickY = state.measureTickBitmap.height - measureTickWidth / 2; state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,bottomTickY,state.measureTickBitmap.width,measureTickWidth / 2),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); var beatTick2Y = state.measureTickBitmap.height / funkin_Conductor.get_instance().get_beatsPerMeasure() - beatTickWidth / 2; var beatTick3Y = state.measureTickBitmap.height * 2 / funkin_Conductor.get_instance().get_beatsPerMeasure() - beatTickWidth / 2; var beatTick4Y = state.measureTickBitmap.height * 3 / funkin_Conductor.get_instance().get_beatsPerMeasure() - beatTickWidth / 2; var beatTickLength = state.measureTickBitmap.width * 2 / 3; state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,beatTick2Y,beatTickLength,beatTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,beatTick3Y,beatTickLength,beatTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,beatTick4Y,beatTickLength,beatTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); var stepTick2Y = state.measureTickBitmap.height / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick3Y = state.measureTickBitmap.height * 2 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick4Y = state.measureTickBitmap.height * 3 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick6Y = state.measureTickBitmap.height * 5 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick7Y = state.measureTickBitmap.height * 6 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick8Y = state.measureTickBitmap.height * 7 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick10Y = state.measureTickBitmap.height * 9 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick11Y = state.measureTickBitmap.height * 10 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick12Y = state.measureTickBitmap.height * 11 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick14Y = state.measureTickBitmap.height * 13 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick15Y = state.measureTickBitmap.height * 14 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTick16Y = state.measureTickBitmap.height * 15 / funkin_Conductor.get_instance().get_stepsPerMeasure() - stepTickWidth / 2; var stepTickLength = state.measureTickBitmap.width / 3; state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick2Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick3Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick4Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick6Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick7Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick8Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick10Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick11Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick12Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick14Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick15Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.measureTickBitmap.fillRect(new openfl_geom_Rectangle(0,stepTick16Y,stepTickLength,stepTickWidth),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateOffsetTicks = function(state) { var majorTickWidth = 6; var minorTickWidth = 3; var ticksWidth = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE * funkin_Conductor.get_instance().get_stepsPerMeasure() | 0; var ticksHeight = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE | 0; state.offsetTickBitmap = new openfl_display_BitmapData(ticksWidth,ticksHeight,true); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(0,0,ticksWidth,ticksHeight),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_COLOR_DARK); var leftTickX = 0; var middleTickX = state.offsetTickBitmap.width / 2 - majorTickWidth / 2; var rightTickX = state.offsetTickBitmap.width - majorTickWidth / 2; var majorTickLength = state.offsetTickBitmap.height; state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(leftTickX,0,majorTickWidth / 2,majorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(middleTickX,0,majorTickWidth,majorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(rightTickX,0,majorTickWidth / 2,majorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); var minorTick2X = state.offsetTickBitmap.width / 10 - minorTickWidth / 2; var minorTick3X = state.offsetTickBitmap.width * 2 / 10 - minorTickWidth / 2; var minorTick4X = state.offsetTickBitmap.width * 3 / 10 - minorTickWidth / 2; var minorTick5X = state.offsetTickBitmap.width * 4 / 10 - minorTickWidth / 2; var minorTick7X = state.offsetTickBitmap.width * 6 / 10 - minorTickWidth / 2; var minorTick8X = state.offsetTickBitmap.width * 7 / 10 - minorTickWidth / 2; var minorTick9X = state.offsetTickBitmap.width * 8 / 10 - minorTickWidth / 2; var minorTick10X = state.offsetTickBitmap.width * 9 / 10 - minorTickWidth / 2; var minorTickLength = state.offsetTickBitmap.height / 3; state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick2X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick3X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick4X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick5X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick7X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick8X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick9X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); state.offsetTickBitmap.fillRect(new openfl_geom_Rectangle(minorTick10X,0,minorTickWidth,minorTickLength),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT); }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateSelectionSquare = function(state) { var selectionSquareBorderColor; switch(state.currentTheme._hx_index) { case 0: selectionSquareBorderColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_COLOR_LIGHT; break; case 1: selectionSquareBorderColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_COLOR_DARK; break; } var selectionSquareFillColor; switch(state.currentTheme._hx_index) { case 0: selectionSquareFillColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_FILL_COLOR_LIGHT; break; case 1: selectionSquareFillColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_FILL_COLOR_DARK; break; } state.selectionSquareBitmap = new openfl_display_BitmapData(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,true); state.selectionSquareBitmap.fillRect(new openfl_geom_Rectangle(0,0,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE),selectionSquareBorderColor); state.selectionSquareBitmap.fillRect(new openfl_geom_Rectangle(funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH * 2,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH * 2),selectionSquareFillColor); state.selectionBoxSprite = new flixel_addons_display_FlxSliceSprite(state.selectionSquareBitmap,new flixel_math_FlxRect(funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 4,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 4,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - (2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 8),funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - (2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 8)),32,32); var this1 = state.selectionBoxSprite.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); state.selectionBoxSprite.zIndex = 30; state.add(state.selectionBoxSprite); state.setSelectionBoxBounds(); }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.updateNotePreview = function(state) { var viewportBorderColor; switch(state.currentTheme._hx_index) { case 0: viewportBorderColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_BORDER_COLOR_LIGHT; break; case 1: viewportBorderColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_BORDER_COLOR_DARK; break; } var viewportFillColor; switch(state.currentTheme._hx_index) { case 0: viewportFillColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_FILL_COLOR_LIGHT; break; case 1: viewportFillColor = funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_FILL_COLOR_DARK; break; } state.notePreviewViewportBitmap = new openfl_display_BitmapData(funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,true); state.notePreviewViewportBitmap.fillRect(new openfl_geom_Rectangle(0,0,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE),viewportBorderColor); state.notePreviewViewportBitmap.fillRect(new openfl_geom_Rectangle(funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH * 2,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH * 2),viewportFillColor); if(state.notePreviewViewport != null) { state.notePreviewViewport.loadGraphic(state.notePreviewViewportBitmap); } else { state.notePreviewViewport = new flixel_addons_display_FlxSliceSprite(state.notePreviewViewportBitmap,new flixel_math_FlxRect(funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 1,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 1,funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - (2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 2),funkin_ui_debug_charting_ChartEditorState.GRID_SIZE - (2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH + 2)),32,32); } }; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.buildPlayheadBlock = function() { var playheadBlock = new flixel_FlxSprite(); var playheadBlockBitmap = new openfl_display_BitmapData(funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_HEIGHT * 2,true); playheadBlockBitmap.fillRect(new openfl_geom_Rectangle(0,0,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_HEIGHT * 2),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_COLOR); playheadBlockBitmap.fillRect(new openfl_geom_Rectangle(funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_WIDTH,funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_WIDTH,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH - 2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_WIDTH,funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_HEIGHT * 2 - 2 * funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_WIDTH),funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_FILL_COLOR); return playheadBlock.loadGraphic(playheadBlockBitmap); }; var funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler = function() { }; $hxClasses["funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler"] = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.__name__ = "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler"; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.setToolboxState = function(state,id,shown) { if(shown) { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.showToolbox(state,id); } else { funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.hideToolbox(state,id); } }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.showToolbox = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.initToolbox(state,id); } if(toolbox != null) { toolbox.showDialog(false); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/openWindow")); switch(id) { case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT: (js_Boot.__cast(toolbox , funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox)).refresh(); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT: (js_Boot.__cast(toolbox , funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox)).refresh(); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_FREEPLAY_LAYOUT: (js_Boot.__cast(toolbox , funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox)).refresh(); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT: (js_Boot.__cast(toolbox , funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox)).refresh(); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_NOTE_DATA_LAYOUT: (js_Boot.__cast(toolbox , funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox)).refresh(); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT: (js_Boot.__cast(toolbox , funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox)).refresh(); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT: funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onShowToolboxOpponentPreview(state,toolbox); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT: funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onShowToolboxPlayerPreview(state,toolbox); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYTEST_PROPERTIES_LAYOUT: funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onShowToolboxPlaytestProperties(state,toolbox); break; default: haxe_Log.trace("ChartEditorToolboxHandler.showToolbox() - Unknown toolbox ID: " + id,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorToolboxHandler.hx", lineNumber : 104, className : "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler", methodName : "showToolbox"}); } } else { haxe_Log.trace("ChartEditorToolboxHandler.showToolbox() - Could not retrieve toolbox: " + id,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorToolboxHandler.hx", lineNumber : 109, className : "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler", methodName : "showToolbox"}); } }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.hideToolbox = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.initToolbox(state,id); } if(toolbox != null) { toolbox.hideDialog("{{cancel}}"); funkin_ui_debug_charting_handlers_ChartEditorAudioHandler.playSound(state,funkin_Paths.sound("chartingSounds/exitWindow")); switch(id) { case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT: funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onHideToolboxOpponentPreview(state,toolbox); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT: funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onHideToolboxPlayerPreview(state,toolbox); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYTEST_PROPERTIES_LAYOUT: funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onHideToolboxPlaytestProperties(state,toolbox); break; default: haxe_Log.trace("ChartEditorToolboxHandler.hideToolbox() - Unknown toolbox ID: " + id,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorToolboxHandler.hx", lineNumber : 135, className : "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler", methodName : "hideToolbox"}); } } else { haxe_Log.trace("ChartEditorToolboxHandler.hideToolbox() - Could not retrieve toolbox: " + id,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorToolboxHandler.hx", lineNumber : 140, className : "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler", methodName : "hideToolbox"}); } }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { return; } if(toolbox != null) { toolbox.refresh(); } else { haxe_Log.trace("ChartEditorToolboxHandler.refreshToolbox() - Could not retrieve toolbox: " + id,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorToolboxHandler.hx", lineNumber : 156, className : "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler", methodName : "refreshToolbox"}); } }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.rememberOpenToolboxes = function(state) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.openRememberedToolboxes = function(state) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.hideAllToolboxes = function(state) { var _g = 0; var _g1 = funkin_util_tools_MapTools.values(state.activeToolboxes); while(_g < _g1.length) { var toolbox = _g1[_g]; ++_g; toolbox.hideDialog("{{cancel}}"); } }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.minimizeToolbox = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { return; } toolbox.set_minimized(true); }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.maximizeToolbox = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { return; } toolbox.set_minimized(false); }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.initToolbox = function(state,id) { var toolbox = null; switch(id) { case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxDifficultyLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxEventDataLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_FREEPLAY_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxFreeplayLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxMetadataLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_NOTE_DATA_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxNoteDataLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxOffsetsLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxOpponentPreviewLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxPlayerPreviewLayout(state); break; case funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYTEST_PROPERTIES_LAYOUT: toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxPlaytestPropertiesLayout(state); break; default: haxe_Log.trace("ChartEditorToolboxHandler.initToolbox() - Unknown toolbox ID: " + id,{ fileName : "source/funkin/ui/debug/charting/handlers/ChartEditorToolboxHandler.hx", lineNumber : 215, className : "funkin.ui.debug.charting.handlers.ChartEditorToolboxHandler", methodName : "initToolbox"}); toolbox = null; } if(toolbox == null) { return null; } toolbox.destroyOnClose = false; state.activeToolboxes.h[id] = toolbox; return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox_OLD = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.initToolbox(state,id); } if(toolbox == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.getToolbox_OLD() - Could not retrieve or build toolbox: " + id); } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.getToolbox = function(state,id) { var toolbox = state.activeToolboxes.h[id]; if(toolbox == null) { toolbox = funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.initToolbox(state,id); } if(toolbox == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.getToolbox() - Could not retrieve or build toolbox: " + id); } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxNoteDataLayout = function(state) { var toolbox = funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox.build(state); if(toolbox == null) { return null; } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onShowToolboxPlaytestProperties = function(state,toolbox) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onHideToolboxPlaytestProperties = function(state,toolbox) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxPlaytestPropertiesLayout = function(state) { var toolbox = haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYTEST_PROPERTIES_LAYOUT); if(toolbox == null) { return null; } toolbox.set_onDialogClosed(function(_) { state.menubarItemToggleToolboxPlaytestProperties.set_selected(false); }); var checkboxPracticeMode = toolbox.findComponent("practiceModeCheckbox",haxe_ui_components_CheckBox); if(checkboxPracticeMode == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxPlaytestPropertiesLayout() - Could not find practiceModeCheckbox component."); } checkboxPracticeMode.set_selected(state.playtestPracticeMode); checkboxPracticeMode.set_onClick(function(_) { state.playtestPracticeMode = checkboxPracticeMode.get_selected(); }); var checkboxStartTime = toolbox.findComponent("playtestStartTimeCheckbox",haxe_ui_components_CheckBox); if(checkboxStartTime == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxPlaytestPropertiesLayout() - Could not find playtestStartTimeCheckbox component."); } checkboxStartTime.set_selected(state.playtestStartTime); checkboxStartTime.set_onClick(function(_) { state.playtestStartTime = checkboxStartTime.get_selected(); }); var checkboxBotPlay = toolbox.findComponent("playtestBotPlayCheckbox",haxe_ui_components_CheckBox); if(checkboxBotPlay == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxPlaytestPropertiesLayout() - Could not find playtestBotPlayCheckbox component."); } checkboxBotPlay.set_selected(state.playtestBotPlayMode); checkboxBotPlay.set_onClick(function(_) { state.playtestBotPlayMode = checkboxBotPlay.get_selected(); }); var checkboxSongScripts = toolbox.findComponent("playtestSongScriptsCheckbox",haxe_ui_components_CheckBox); if(checkboxSongScripts == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxPlaytestPropertiesLayout() - Could not find playtestSongScriptsCheckbox component."); } state.playtestSongScripts = checkboxSongScripts.get_selected(); checkboxSongScripts.set_onClick(function(_) { state.playtestSongScripts = checkboxSongScripts.get_selected(); }); return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxDifficultyLayout = function(state) { var toolbox = funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox.build(state); if(toolbox == null) { return null; } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxMetadataLayout = function(state) { var toolbox = funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox.build(state); if(toolbox == null) { return null; } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxOffsetsLayout = function(state) { var toolbox = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.build(state); if(toolbox == null) { return null; } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxFreeplayLayout = function(state) { var toolbox = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.build(state); if(toolbox == null) { return null; } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxEventDataLayout = function(state) { var toolbox = funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox.build(state); if(toolbox == null) { return null; } return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxPlayerPreviewLayout = function(state) { var toolbox = haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT); if(toolbox == null) { return null; } toolbox.set_x(200); toolbox.set_y(350); toolbox.set_onDialogClosed(function(event) { state.menubarItemToggleToolboxPlayerPreview.set_selected(false); }); var charPlayer = toolbox.findComponent("charPlayer"); if(charPlayer == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxPlayerPreviewLayout() - Could not find charPlayer component."); } charPlayer.loadCharacter("bf"); charPlayer.set_characterType(funkin_play_character_CharacterType.BF); charPlayer.set_flip(true); charPlayer.set_targetScale(0.5); return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onShowToolboxPlayerPreview = function(state,toolbox) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onHideToolboxPlayerPreview = function(state,toolbox) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.buildToolboxOpponentPreviewLayout = function(state) { var toolbox = haxe_ui_RuntimeComponentBuilder.fromAsset(funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT); if(toolbox == null) { return null; } toolbox.set_x(200); toolbox.set_y(350); toolbox.set_onDialogClosed(function(event) { state.menubarItemToggleToolboxOpponentPreview.set_selected(false); }); var charPlayer = toolbox.findComponent("charPlayer"); if(charPlayer == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxOpponentPreviewLayout() - Could not find charPlayer component."); } charPlayer.loadCharacter("dad"); charPlayer.set_characterType(funkin_play_character_CharacterType.DAD); charPlayer.set_flip(false); charPlayer.set_targetScale(0.5); return toolbox; }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onShowToolboxOpponentPreview = function(state,toolbox) { }; funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.onHideToolboxOpponentPreview = function(state,toolbox) { }; var haxe_ui_containers_dialogs_CollapsibleDialog = function() { haxe_ui_containers_dialogs_Dialog.call(this); }; $hxClasses["haxe.ui.containers.dialogs.CollapsibleDialog"] = haxe_ui_containers_dialogs_CollapsibleDialog; haxe_ui_containers_dialogs_CollapsibleDialog.__name__ = "haxe.ui.containers.dialogs.CollapsibleDialog"; haxe_ui_containers_dialogs_CollapsibleDialog.__super__ = haxe_ui_containers_dialogs_Dialog; haxe_ui_containers_dialogs_CollapsibleDialog.prototype = $extend(haxe_ui_containers_dialogs_Dialog.prototype,{ registerBehaviours: function() { haxe_ui_containers_dialogs_Dialog.prototype.registerBehaviours.call(this); this.behaviours.register("minimized",haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized,haxe_ui_util_Variant.fromBool(false)); } ,get_minimized: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("minimized")); } ,set_minimized: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("minimized",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"minimized")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_dialogs_Dialog.prototype.cloneComponent.call(this); c.set_minimized(this.get_minimized()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_dialogs_CollapsibleDialog(); } ,registerComposite: function() { haxe_ui_containers_dialogs_Dialog.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers_dialogs__$CollapsibleDialog_Builder; } ,__class__: haxe_ui_containers_dialogs_CollapsibleDialog ,__properties__: $extend(haxe_ui_containers_dialogs_Dialog.prototype.__properties__,{set_minimized:"set_minimized",get_minimized:"get_minimized"}) }); var funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox = function(chartEditorState) { haxe_ui_containers_dialogs_CollapsibleDialog.call(this); this.chartEditorState = chartEditorState; }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorBaseToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorBaseToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.__super__ = haxe_ui_containers_dialogs_CollapsibleDialog; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype = $extend(haxe_ui_containers_dialogs_CollapsibleDialog.prototype,{ chartEditorState: null ,refresh: function() { } ,registerBehaviours: function() { haxe_ui_containers_dialogs_CollapsibleDialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_dialogs_CollapsibleDialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox(this._constructorParam_chartEditorState); } ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox }); var funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox = function(chartEditorState2) { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); var c1 = new haxe_ui_containers_Frame(); c1.set_text("Select Difficulty"); var c2 = new haxe_ui_containers_TreeView(); c2.set_id("difficultyToolboxTree"); c2.set_width(260.); c2.set_height(200.); c1.addComponent(c2); c0.addComponent(c1); var c3 = new haxe_ui_containers_HBox(); var c4 = new haxe_ui_components_Button(); c4.set_id("difficultyToolboxAddVariation"); c4.set_text("Add Variation"); c4.set_allowFocus(false); c3.addComponent(c4); var c5 = new haxe_ui_components_Button(); c5.set_id("difficultyToolboxAddDifficulty"); c5.set_text("Add Difficulty"); c5.set_allowFocus(false); c3.addComponent(c5); c0.addComponent(c3); var c6 = new haxe_ui_containers_HBox(); var c7 = new haxe_ui_components_Button(); c7.set_id("difficultyToolboxRemoveDifficulty"); c7.set_text("Remove Difficulty"); c7.set_allowFocus(false); c6.addComponent(c7); c0.addComponent(c6); var c8 = new haxe_ui_components_HorizontalRule(); c0.addComponent(c8); var c9 = new haxe_ui_containers_HBox(); var c10 = new haxe_ui_components_Button(); c10.set_id("difficultyToolboxSaveMetadata"); c10.set_text("Save Metadata File"); c10.set_allowFocus(false); c9.addComponent(c10); var c11 = new haxe_ui_components_Button(); c11.set_id("difficultyToolboxSaveChart"); c11.set_text("Save Chart File"); c11.set_allowFocus(false); c9.addComponent(c11); c0.addComponent(c9); var c12 = new haxe_ui_containers_HBox(); var c13 = new haxe_ui_components_Button(); c13.set_id("difficultyToolboxLoadMetadata"); c13.set_text("Load Metadata File"); c13.set_allowFocus(false); c12.addComponent(c13); var c14 = new haxe_ui_components_Button(); c14.set_id("difficultyToolboxLoadChart"); c14.set_text("Load Chart File"); c14.set_allowFocus(false); c12.addComponent(c14); c0.addComponent(c12); this.addComponent(c0); this.set_id("toolboxDifficulty"); this.set_width(300.); this.set_height(425.); this.set_title("Difficulty"); this.bindingRoot = true; this.difficultyToolboxTree = c2; this.difficultyToolboxSaveMetadata = c10; this.difficultyToolboxSaveChart = c11; this.difficultyToolboxRemoveDifficulty = c7; this.difficultyToolboxLoadMetadata = c13; this.difficultyToolboxLoadChart = c14; this.difficultyToolboxAddVariation = c4; this.difficultyToolboxAddDifficulty = c5; this.initialize(); this.set_onDialogClosed($bind(this,this.onClose)); this.applyRootLayout("collapsibledialog"); }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox.build = function(chartEditorState) { return new funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox(chartEditorState); }; funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox.__super__ = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox.prototype = $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype,{ difficultyToolboxTree: null ,difficultyToolboxAddVariation: null ,difficultyToolboxAddDifficulty: null ,difficultyToolboxRemoveDifficulty: null ,difficultyToolboxSaveMetadata: null ,difficultyToolboxSaveChart: null ,difficultyToolboxLoadMetadata: null ,difficultyToolboxLoadChart: null ,onClose: function(event) { this.chartEditorState.menubarItemToggleToolboxDifficulty.set_selected(false); } ,initialize: function() { var _gthis = this; this.set_x(150); this.set_y(250); this.difficultyToolboxAddVariation.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openAddVariationDialog(_gthis.chartEditorState,true); }); this.difficultyToolboxAddDifficulty.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openAddDifficultyDialog(_gthis.chartEditorState,true); }); this.difficultyToolboxRemoveDifficulty.set_onClick(function(_) { var currentVariation = _gthis.chartEditorState.selectedVariation; var currentDifficulty = _gthis.chartEditorState.selectedDifficulty; haxe_Log.trace("Removing difficulty \"" + currentVariation + ":" + currentDifficulty + "\"",{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorDifficultyToolbox.hx", lineNumber : 81, className : "funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox", methodName : "initialize"}); var callback = function(button) { switch(button) { case "{{no}}": break; case "{{yes}}": _gthis.chartEditorState.removeDifficulty(currentVariation,currentDifficulty); _gthis.refresh(); break; default: } }; haxe_ui_containers_dialogs_Dialogs.messageBox("Are you sure? This cannot be undone.","Remove Difficulty","yesno",null,callback); }); this.difficultyToolboxSaveMetadata.set_onClick(function(_) { var vari = _gthis.chartEditorState.selectedVariation != funkin_util_Constants.DEFAULT_VARIATION ? "-" + _gthis.chartEditorState.selectedVariation : ""; funkin_util_FileUtil.writeFileReference("" + _gthis.chartEditorState.get_currentSongId() + vari + "-metadata.json",_gthis.chartEditorState.get_currentSongMetadata().serialize()); }); this.difficultyToolboxSaveChart.set_onClick(function(_) { var vari = _gthis.chartEditorState.selectedVariation != funkin_util_Constants.DEFAULT_VARIATION ? "-" + _gthis.chartEditorState.selectedVariation : ""; funkin_util_FileUtil.writeFileReference("" + _gthis.chartEditorState.get_currentSongId() + vari + "-chart.json",_gthis.chartEditorState.get_currentSongChartData().serialize()); }); this.difficultyToolboxLoadMetadata.set_onClick(function(_) { funkin_play_song_SongSerializer.importSongMetadataAsync(function(songMetadata) { _gthis.chartEditorState.set_currentSongMetadata(songMetadata); }); }); this.difficultyToolboxLoadChart.set_onClick(function(_) { funkin_play_song_SongSerializer.importSongChartDataAsync(function(songChartData) { _gthis.chartEditorState.set_currentSongChartData(songChartData); _gthis.chartEditorState.noteDisplayDirty = true; }); }); this.refresh(); } ,updateTree: function() { this.difficultyToolboxTree.clearNodes(); var treeSong = this.difficultyToolboxTree.addNode({ id : "stv_song", text : "S: " + this.chartEditorState.get_currentSongName()}); treeSong.set_expanded(true); var _g = 0; var _g1 = this.chartEditorState.get_availableVariations(); while(_g < _g1.length) { var curVariation = _g1[_g]; ++_g; var variationMetadata = this.chartEditorState.songMetadata.h[curVariation]; if(variationMetadata == null) { continue; } var treeVariation = treeSong.addNode({ id : "stv_variation_" + curVariation, text : "V: " + funkin_util_tools_StringTools.toTitleCase(curVariation)}); treeVariation.set_expanded(true); var difficultyList = variationMetadata.playData.difficulties; var _g2 = 0; while(_g2 < difficultyList.length) { var difficulty = difficultyList[_g2]; ++_g2; var _treeDifficulty = treeVariation.addNode({ id : "stv_difficulty_" + curVariation + "_" + difficulty, text : "D: " + funkin_util_tools_StringTools.toTitleCase(difficulty)}); } } this.difficultyToolboxTree.set_onChange($bind(this,this.onTreeChange)); this.refreshTreeSelection(); } ,refreshTreeSelection: function() { var targetNode = this.getCurrentTreeNode(); if(targetNode != null) { this.difficultyToolboxTree.set_selectedNode(targetNode); } } ,getCurrentTreeNode: function() { return this.difficultyToolboxTree.findNodeByPath("stv_song/stv_variation_" + Std.string(this.chartEditorState) + ".selectedVariation/stv_difficulty_" + this.chartEditorState.selectedVariation + "_" + Std.string(this.chartEditorState) + ".selectedDifficulty","id"); } ,onTreeChange: function(event) { var treeView = event.target; var targetNode = this.difficultyToolboxTree.get_selectedNode(); if(targetNode == null) { haxe_Log.trace("No target node!",{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorDifficultyToolbox.hx", lineNumber : 198, className : "funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox", methodName : "onTreeChange"}); this.refreshTreeSelection(); return; } if(targetNode.get_data().id.split("_")[1] == "difficulty") { var variation = targetNode.get_data().id.split("_")[2]; var difficulty = targetNode.get_data().id.split("_")[3]; if(variation != null && difficulty != null) { haxe_Log.trace("Changing difficulty to \"" + variation + ":" + difficulty + "\"",{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorDifficultyToolbox.hx", lineNumber : 212, className : "funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox", methodName : "onTreeChange"}); this.chartEditorState.set_selectedVariation(variation); this.chartEditorState.set_selectedDifficulty(difficulty); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this.chartEditorState,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); this.refreshTreeSelection(); } } else { haxe_Log.trace("Selected wrong node type, resetting selection.",{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorDifficultyToolbox.hx", lineNumber : 222, className : "funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox", methodName : "onTreeChange"}); this.refreshTreeSelection(); funkin_ui_debug_charting_handlers_ChartEditorToolboxHandler.refreshToolbox(this.chartEditorState,funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT); } } ,refresh: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.refresh.call(this); this.refreshTreeSelection(); } ,registerBehaviours: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox(this._constructorParam_chartEditorState2); } ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorDifficultyToolbox }); var funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox = function(chartEditorState2) { this.lastEventKind = "unknown"; this._initializing = true; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); var c1 = new haxe_ui_containers_Grid(); c1.set_percentWidth(100.); c1.set_columns(2); var c2 = new haxe_ui_components_Label(); c2.set_text("Event Type"); c2.set_verticalAlign("center"); c1.addComponent(c2); var c3 = new haxe_ui_components_DropDown(); c3.set_id("toolboxEventsEventKind"); c3.set_percentWidth(100.); c3.set_value("normal"); c3.set_searchable(true); c3.set_dropdownWidth(300); c3.set_dropdownSize(10); var ds3 = new haxe_ui_data_ArrayDataSource(); c3.set_dataSource(ds3); c1.addComponent(c3); c0.addComponent(c1); var c4 = new haxe_ui_containers_Frame(); c4.set_id("toolboxEventsDataFrame"); c4.set_percentWidth(100.); c4.set_text("Event Data"); var c5 = new haxe_ui_containers_Grid(); c5.set_id("toolboxEventsDataGrid"); c5.set_percentWidth(100.); c5.set_columns(2); c4.addComponent(c5); c0.addComponent(c4); this.addComponent(c0); this.set_id("toolboxEvents"); this.set_width(320.); this.set_styleString("minHeight:200"); this.set_title("Events"); this.bindingRoot = true; this.toolboxEventsEventKind = c3; this.toolboxEventsDataGrid = c5; this.toolboxEventsDataFrame = c4; this.initialize(); this.set_onDialogClosed($bind(this,this.onClose)); this._initializing = false; this.applyRootLayout("collapsibledialog"); }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox.build = function(chartEditorState) { return new funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox(chartEditorState); }; funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox.__super__ = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox.prototype = $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype,{ toolboxEventsEventKind: null ,toolboxEventsDataFrame: null ,toolboxEventsDataGrid: null ,_initializing: null ,onClose: function(event) { this.chartEditorState.menubarItemToggleToolboxEventData.set_selected(false); } ,initialize: function() { var _gthis = this; this.toolboxEventsEventKind.set_onChange(function(event) { var eventType = event.data.id; haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Event type changed: " + eventType,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 64, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "initialize"}); _gthis.chartEditorState.eventKindToPlace = eventType; var schema = funkin_data_event_SongEventRegistry.getEventSchema(eventType); if(schema == null) { haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Unknown event kind: " + eventType,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 73, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "initialize"}); return; } _gthis.buildEventDataFormFromSchema(_gthis.toolboxEventsDataGrid,schema,_gthis.chartEditorState.eventKindToPlace); if(!_gthis._initializing && _gthis.chartEditorState.currentEventSelection.length > 0) { var _g = 0; var _g1 = _gthis.chartEditorState.currentEventSelection; while(_g < _g1.length) { var event = _g1[_g]; ++_g; event.eventKind = _gthis.chartEditorState.eventKindToPlace; event.value = _gthis.chartEditorState.eventDataToPlace; } _gthis.chartEditorState.set_saveDataDirty(true); _gthis.chartEditorState.noteDisplayDirty = true; _gthis.chartEditorState.set_notePreviewDirty(true); } }); var startingEventValue = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithSongEvents(this.toolboxEventsEventKind,this.chartEditorState.eventKindToPlace); haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Starting event kind: " + Std.string(startingEventValue),{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 93, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "initialize"}); this.toolboxEventsEventKind.set_value(startingEventValue); } ,refresh: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.refresh.call(this); var newDropdownElement = funkin_ui_debug_charting_util_ChartEditorDropdowns.findDropdownElement(this.chartEditorState.eventKindToPlace,this.toolboxEventsEventKind); if(newDropdownElement == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Event kind not in dropdown: " + this.chartEditorState.eventKindToPlace); } else if(this.toolboxEventsEventKind.get_value() != newDropdownElement || this.lastEventKind != this.toolboxEventsEventKind.get_value().id) { this.toolboxEventsEventKind.set_value(newDropdownElement); var schema = funkin_data_event_SongEventRegistry.getEventSchema(this.chartEditorState.eventKindToPlace); if(schema == null) { haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Unknown event kind: " + this.chartEditorState.eventKindToPlace,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 114, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "refresh"}); } else { haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Event kind changed: " + Std.string(this.toolboxEventsEventKind.get_value().id) + " != " + newDropdownElement.id + " != " + this.lastEventKind + ", rebuilding form",{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 118, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "refresh"}); this.buildEventDataFormFromSchema(this.toolboxEventsDataGrid,schema,this.chartEditorState.eventKindToPlace); } } else { haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxEventDataLayout() - Event kind not changed: " + Std.string(this.toolboxEventsEventKind.get_value()) + " == " + Std.string(newDropdownElement) + " == " + this.lastEventKind,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 124, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "refresh"}); } var access = this.chartEditorState.eventDataToPlace; var _g_access = access; var _g_keys = Reflect.fields(access); var _g_index = 0; while(_g_index < _g_keys.length) { var key = _g_keys[_g_index++]; var pair_value = _g_access[key]; var pair_key = key; var fieldId = pair_key; var value = pair_value; var field = this.toolboxEventsDataGrid.findComponent(fieldId); if(field == null) { throw haxe_Exception.thrown("ChartEditorToolboxHandler.refresh() - Field \"" + fieldId + "\" does not exist in the event data form for kind " + this.lastEventKind + "."); } else { var _hx_tmp; var _hx_tmp1; var _hx_tmp2; if(((field) instanceof haxe_ui_components_NumberStepper) == true) { var numberStepper = field; numberStepper.set_value(value); } else { _hx_tmp2 = ((field) instanceof haxe_ui_components_CheckBox); if(_hx_tmp2 == true) { var checkBox = field; checkBox.set_selected(value); } else { _hx_tmp1 = ((field) instanceof haxe_ui_components_DropDown); if(_hx_tmp1 == true) { var dropDown = field; dropDown.set_value(value); } else { _hx_tmp = ((field) instanceof haxe_ui_components_TextField); if(_hx_tmp == true) { var textField = field; textField.set_text(value); } else { var c = js_Boot.getClass(field); throw haxe_Exception.thrown("ChartEditorToolboxHandler.refresh() - Field \"" + fieldId + "\" is of unknown type \"" + c.__name__ + "\"."); } } } } } } } ,lastEventKind: null ,buildEventDataFormFromSchema: function(target,schema,eventKind) { var _gthis = this; haxe_Log.trace("Building event data form from schema for event kind: " + eventKind,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 165, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "buildEventDataFormFromSchema"}); var tmp = eventKind; this.lastEventKind = tmp != null ? tmp : "unknown"; target.removeAllComponents(); this.chartEditorState.eventDataToPlace = { }; var _g_current = 0; var _g_array = schema; while(_g_current < _g_array.length) { var field = [_g_array[_g_current++]]; if(field[0] == null) { continue; } var label = new haxe_ui_components_Label(); label.set_text(field[0].title); label.set_verticalAlign("center"); target.addComponent(label); var input; switch(field[0].type) { case "bool": var checkBox = new haxe_ui_components_CheckBox(); checkBox.set_id(field[0].name); if(field[0].defaultValue != null) { checkBox.set_selected(field[0].defaultValue); } input = checkBox; break; case "enum": var dropDown = new haxe_ui_components_DropDown(); dropDown.set_id(field[0].name); dropDown.set_width(200.0); dropDown.set_dropdownSize(10); dropDown.set_dropdownWidth(300); dropDown.set_searchable(true); dropDown.set_dataSource(new haxe_ui_data_ArrayDataSource()); if(field[0].keys == null) { throw haxe_Exception.thrown("Field \"" + field[0].name + "\" is of Enum type but has no keys."); } var h = field[0].keys.h; var optionName_h = h; var optionName_keys = Object.keys(h); var optionName_length = optionName_keys.length; var optionName_current = 0; while(optionName_current < optionName_length) { var optionName = optionName_keys[optionName_current++]; var optionValue = field[0].keys.h[optionName]; dropDown.get_dataSource().add({ value : optionValue, text : optionName}); } dropDown.set_value(field[0].defaultValue); dropDown.get_dataSource().sort("text","asc"); input = dropDown; break; case "float": var numberStepper = new haxe_ui_components_NumberStepper(); numberStepper.set_id(field[0].name); var tmp = field[0].step; numberStepper.set_step(tmp != null ? tmp : 0.1); if(field[0].min != null) { numberStepper.set_min(field[0].min); } if(field[0].max != null) { numberStepper.set_max(field[0].max); } if(field[0].defaultValue != null) { numberStepper.set_value(field[0].defaultValue); } input = numberStepper; break; case "integer": var numberStepper1 = new haxe_ui_components_NumberStepper(); numberStepper1.set_id(field[0].name); var tmp1 = field[0].step; numberStepper1.set_step(tmp1 != null ? tmp1 : 1.0); var tmp2 = field[0].min; numberStepper1.set_min(tmp2 != null ? tmp2 : 0.0); var tmp3 = field[0].max; numberStepper1.set_max(tmp3 != null ? tmp3 : 10.0); if(field[0].defaultValue != null) { numberStepper1.set_value(field[0].defaultValue); } input = numberStepper1; break; case "string": input = new haxe_ui_components_TextField(); input.set_id(field[0].name); if(field[0].defaultValue != null) { input.set_text(field[0].defaultValue); } break; default: input = new haxe_ui_components_Label(); input.set_id(field[0].name); input.set_text(field[0].type); } var inputBox = new haxe_ui_containers_HBox(); inputBox.addComponent(input); if(field[0].units != null && field[0].units != "") { var units = new haxe_ui_components_Label(); units.set_text(field[0].units); units.set_verticalAlign("center"); inputBox.addComponent(units); } target.addComponent(inputBox); input.set_onChange((function(field) { return function(event) { var value = event.target.get_value(); if(field[0].type == "enum") { value = event.target.get_value().value; } else if(field[0].type == "bool") { var chk = event.target; value = js_Boot.__cast(chk.get_selected() , Bool); } haxe_Log.trace("ChartEditorToolboxHandler.buildEventDataFormFromSchema() - " + event.target.get_id() + " = " + (value == null ? "null" : "" + value),{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorEventDataToolbox.hx", lineNumber : 275, className : "funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox", methodName : "buildEventDataFormFromSchema"}); if(value == null) { Reflect.deleteField(_gthis.chartEditorState.eventDataToPlace,event.target.get_id()); } else { _gthis.chartEditorState.eventDataToPlace[event.target.get_id()] = value; } if(!_gthis._initializing && _gthis.chartEditorState.currentEventSelection.length > 0) { var _g = 0; var _g1 = _gthis.chartEditorState.currentEventSelection; while(_g < _g1.length) { var songEvent = _g1[_g]; ++_g; songEvent.eventKind = _gthis.chartEditorState.eventKindToPlace; songEvent.value = Reflect.copy(_gthis.chartEditorState.eventDataToPlace); } _gthis.chartEditorState.set_saveDataDirty(true); _gthis.chartEditorState.noteDisplayDirty = true; _gthis.chartEditorState.set_notePreviewDirty(true); _gthis.chartEditorState.noteTooltipsDirty = true; } }; })(field)); } } ,registerBehaviours: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox(this._constructorParam_chartEditorState2); } ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorEventDataToolbox }); var funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox = function(chartEditorState2) { this.isFadingOutPreview = false; this.isPerformingPreview = false; this.waveformDragStartPos = null; this.tickLabels = []; this.waveformMagicFactor = 1.0; this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.STARTING_SCALE; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); var c1 = new haxe_ui_containers_HBox(); c1.set_percentWidth(100.); var c2 = new haxe_ui_components_Button(); c2.set_id("freeplayButtonPause"); c2.set_text("Pause"); c1.addComponent(c2); var c3 = new haxe_ui_components_Button(); c3.set_id("freeplayButtonPlay"); c3.set_text("Play"); c1.addComponent(c3); var c4 = new haxe_ui_components_Button(); c4.set_id("freeplayButtonStop"); c4.set_text("Stop"); c1.addComponent(c4); var c5 = new haxe_ui_components_Label(); c5.set_id("freeplayLabelTime"); c5.set_percentHeight(100.); c5.set_text("0:00.0"); c1.addComponent(c5); var c6 = new haxe_ui_components_Spacer(); c6.set_percentWidth(100.); c1.addComponent(c6); var c7 = new haxe_ui_components_Button(); c7.set_id("freeplayButtonZoomIn"); c7.set_text("Zoom In"); c1.addComponent(c7); var c8 = new haxe_ui_components_Button(); c8.set_id("freeplayButtonZoomOut"); c8.set_text("Zoom Out"); c1.addComponent(c8); c0.addComponent(c1); var c9 = new haxe_ui_containers_HBox(); c9.set_percentWidth(100.); var c10 = new haxe_ui_containers_VBox(); c10.set_width(125.); c10.set_height(135.); var c11 = new haxe_ui_components_Spacer(); c11.set_percentHeight(100.); c10.addComponent(c11); var c12 = new haxe_ui_containers_Frame(); c12.set_height(80.); c12.set_percentWidth(100.); c12.set_text("Instrumental"); var c13 = new haxe_ui_containers_VBox(); c13.set_percentWidth(100.); c13.set_percentHeight(100.); var c14 = new haxe_ui_components_HorizontalSlider(); c14.set_id("freeplayMusicVolume"); c14.set_percentWidth(100.); c14.set_styleNames("compact"); c14.set_tooltip("Music Volume"); c14.set_pos(50); c14.set_minorTicks(5); c14.set_majorTicks(10); c13.addComponent(c14); var c15 = new haxe_ui_containers_HBox(); c15.set_percentWidth(100.); var c16 = new haxe_ui_components_Button(); c16.set_id("freeplayMusicMute"); c16.set_percentWidth(100.); c16.set_text("Mute"); c16.set_styleNames("compactButton"); c16.set_tooltip("Mute the music."); c15.addComponent(c16); c13.addComponent(c15); c12.addComponent(c13); c10.addComponent(c12); c9.addComponent(c10); var c17 = new haxe_ui_containers_ScrollView(); c17.set_id("waveformScrollview"); c17.set_width(400.); c17.set_height(180.); c17.set_styleNames("no-padding"); c17.set_verticalScrollPolicy("never"); c17.set_scrollMode(haxe_ui_constants_ScrollMode.fromString("normal")); c17.set_horizontalScrollPolicy("always"); var c18 = new haxe_ui_containers_Absolute(); c18.set_id("waveformContainer"); c18.set_width(3000.); c18.set_height(140.); c18.set_styleNames("compact"); var c19 = new haxe_ui_containers_VBox(); c19.set_left(0.); c19.set_top(0.); c19.set_percentWidth(100.); c19.set_percentHeight(100.); var c20 = new haxe_ui_containers_Absolute(); c20.set_id("freeplayTicksContainer"); c20.set_height(40.); c20.set_percentWidth(100.); c20.set_styleString("cursor: pointer;"); var c21 = new haxe_ui_backend_flixel_components_SpriteWrapper(); c21.set_id("freeplayTicksSprite"); c21.set_left(0.); c21.set_top(0.); c21.set_percentWidth(100.); c21.set_percentHeight(100.); c21.set_styleString("background-color: #111111"); c20.addComponent(c21); c19.addComponent(c20); var c22 = new funkin_ui_haxeui_components_WaveformPlayer(); c22.set_id("waveformMusic"); c22.set_styleString("cursor: pointer; pointer-events: true"); c19.addComponent(c22); c18.addComponent(c19); var c23 = new haxe_ui_backend_flixel_components_SpriteWrapper(); c23.set_id("previewSelectionSprite"); c23.set_left(0.); c23.set_top(40.); c23.set_width(300.); c23.set_height(100.); c23.set_styleString("background-color: #3EE2F4; opacity: 0.5;"); c18.addComponent(c23); var c24 = new haxe_ui_backend_flixel_components_SpriteWrapper(); c24.set_id("playheadSprite"); c24.set_left(0.); c24.set_top(0.); c24.set_width(2.); c24.set_percentHeight(100.); c24.set_styleString("background-color: #FF0000"); c18.addComponent(c24); c17.addComponent(c18); c9.addComponent(c17); c0.addComponent(c9); var c25 = new haxe_ui_containers_Grid(); c25.set_percentWidth(100.); c25.set_columns(2); var c26 = new haxe_ui_components_Label(); c26.set_text("Preview Start Time (ms)"); c26.set_verticalAlign("center"); c25.addComponent(c26); var c27 = new haxe_ui_components_NumberStepper(); c27.set_id("freeplayPreviewStart"); c27.set_styleNames("disable-validation"); c27.set_tooltip("Adjust the start of the Freeplay instrumental preview."); c27.set_step(100); c27.set_pos(0); c27.set_min(0); c27.set_horizontalAlign("right"); c25.addComponent(c27); var c28 = new haxe_ui_components_Label(); c28.set_text("Preview End Time (ms)"); c28.set_verticalAlign("center"); c25.addComponent(c28); var c29 = new haxe_ui_components_NumberStepper(); c29.set_id("freeplayPreviewEnd"); c29.set_styleNames("disable-validation"); c29.set_tooltip("Adjust the end of the Freeplay instrumental preview."); c29.set_step(100); c29.set_pos(0); c29.set_min(0); c29.set_horizontalAlign("right"); c25.addComponent(c29); var c30 = new haxe_ui_components_Button(); c30.set_id("testPreview"); c30.set_text("Test Preview"); c30.set_horizontalAlign("right"); c25.addComponent(c30); c0.addComponent(c25); this.addComponent(c0); this.set_id("toolboxFreeplay"); this.set_width(550.); this.set_height(490.); this.set_title("Freeplay"); this.bindingRoot = true; this.waveformScrollview = c17; this.waveformMusic = c22; this.waveformContainer = c18; this.testPreview = c30; this.previewSelectionSprite = c23; this.playheadSprite = c24; this.freeplayTicksSprite = c21; this.freeplayTicksContainer = c20; this.freeplayPreviewStart = c27; this.freeplayPreviewEnd = c29; this.freeplayMusicVolume = c14; this.freeplayMusicMute = c16; this.freeplayLabelTime = c5; this.freeplayButtonZoomOut = c8; this.freeplayButtonZoomIn = c7; this.freeplayButtonStop = c4; this.freeplayButtonPlay = c3; this.freeplayButtonPause = c2; this.initialize(); this.set_onDialogClosed($bind(this,this.onClose)); this.applyRootLayout("collapsibledialog"); }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.build = function(chartEditorState) { return new funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox(chartEditorState); }; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.__super__ = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.prototype = $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype,{ waveformContainer: null ,waveformScrollview: null ,waveformMusic: null ,freeplayButtonZoomIn: null ,freeplayButtonZoomOut: null ,freeplayButtonPause: null ,freeplayButtonPlay: null ,freeplayButtonStop: null ,freeplayPreviewStart: null ,freeplayPreviewEnd: null ,freeplayTicksContainer: null ,playheadSprite: null ,previewSelectionSprite: null ,waveformScale: null ,get_playheadAbsolutePos: function() { return this.playheadSprite.get_left(); } ,set_playheadAbsolutePos: function(value) { return this.playheadSprite.set_left(value); } ,get_playheadRelativePos: function() { return this.playheadSprite.get_left() - this.waveformScrollview.get_hscrollPos(); } ,set_playheadRelativePos: function(value) { return this.playheadSprite.set_left(this.waveformScrollview.get_hscrollPos() + value); } ,get_previewBoxStartPosAbsolute: function() { return this.previewSelectionSprite.get_left(); } ,set_previewBoxStartPosAbsolute: function(value) { return this.previewSelectionSprite.set_left(value); } ,get_previewBoxEndPosAbsolute: function() { return this.previewSelectionSprite.get_left() + this.previewSelectionSprite.get_width(); } ,set_previewBoxEndPosAbsolute: function(value) { if(value < this.get_previewBoxStartPosAbsolute()) { return this.previewSelectionSprite.set_left(this.get_previewBoxStartPosAbsolute()); } return this.previewSelectionSprite.set_width(value - this.get_previewBoxStartPosAbsolute()); } ,get_previewBoxStartPosRelative: function() { return this.previewSelectionSprite.get_left() - this.waveformScrollview.get_hscrollPos(); } ,set_previewBoxStartPosRelative: function(value) { return this.previewSelectionSprite.set_left(this.waveformScrollview.get_hscrollPos() + value); } ,get_previewBoxEndPosRelative: function() { return this.previewSelectionSprite.get_left() + this.previewSelectionSprite.get_width() - this.waveformScrollview.get_hscrollPos(); } ,set_previewBoxEndPosRelative: function(value) { if(value < this.get_previewBoxStartPosRelative()) { return this.previewSelectionSprite.set_left(this.get_previewBoxStartPosRelative()); } return this.previewSelectionSprite.set_width(value - this.get_previewBoxStartPosRelative()); } ,waveformMagicFactor: null ,audioPreviewTracks: null ,tickTiledSprite: null ,freeplayPreviewVolume: null ,get_freeplayPreviewVolume: function() { return this.freeplayMusicVolume.get_value() * 2 / 100; } ,tickLabels: null ,onClose: function(event) { this.chartEditorState.menubarItemToggleToolboxFreeplay.set_selected(false); } ,initialize: function() { var _gthis = this; this.set_x(150); this.set_y(250); this.freeplayMusicVolume.set_onChange(function(_) { _gthis.setTrackVolume(_gthis.get_freeplayPreviewVolume()); }); this.freeplayMusicMute.set_onClick(function(_) { _gthis.toggleMuteTrack(); }); this.freeplayButtonZoomIn.set_onClick(function(_) { _gthis.zoomWaveformIn(); }); this.freeplayButtonZoomOut.set_onClick(function(_) { _gthis.zoomWaveformOut(); }); this.freeplayButtonPause.set_onClick(function(_) { _gthis.pauseAudioPreview(); }); this.freeplayButtonPlay.set_onClick(function(_) { _gthis.playAudioPreview(); }); this.freeplayButtonStop.set_onClick(function(_) { _gthis.stopAudioPreview(); }); this.testPreview.set_onClick(function(_) { _gthis.performPreview(); }); this.freeplayPreviewStart.set_onChange(function(event) { if(haxe_ui_util_Variant.eq(event.value,haxe_ui_util_Variant.fromInt(_gthis.chartEditorState.get_currentSongFreeplayPreviewStart()))) { return; } if(_gthis.waveformDragStartPos != null) { return; } _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand(haxe_ui_util_Variant.toInt(event.value),null)); _gthis.refresh(); }); this.freeplayPreviewEnd.set_onChange(function(event) { if(haxe_ui_util_Variant.eq(event.value,haxe_ui_util_Variant.fromInt(_gthis.chartEditorState.get_currentSongFreeplayPreviewEnd()))) { return; } if(_gthis.waveformDragStartPos != null) { return; } _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand(null,haxe_ui_util_Variant.toInt(event.value))); _gthis.refresh(); }); this.waveformScrollview.set_onScroll(function(_) { if(!_gthis.audioPreviewTracks.get_playing()) { var prevPlayheadRelativePos = _gthis.get_playheadRelativePos(); var _gthis1 = _gthis; var Value = _gthis.get_playheadRelativePos(); var Max = _gthis.waveformScrollview.get_width() - funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.PLAYHEAD_RIGHT_PAD; var lowerBound = Value < 0 ? 0 : Value; _gthis1.set_playheadRelativePos(Max != null && lowerBound > Max ? Max : lowerBound); haxe_Log.trace("newPos: " + _gthis.get_playheadRelativePos(),{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorFreeplayToolbox.hx", lineNumber : 218, className : "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox", methodName : "initialize"}); var diff = _gthis.get_playheadRelativePos() - prevPlayheadRelativePos; if(diff != 0) { var currentWaveformIndex = _gthis.get_playheadAbsolutePos() * (_gthis.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * _gthis.waveformMagicFactor) | 0; var targetSongTimeSeconds = _gthis.waveformMusic.waveform.waveformData.indexToSeconds(currentWaveformIndex); _gthis.audioPreviewTracks.set_time(targetSongTimeSeconds * funkin_util_Constants.MS_PER_SEC); } _gthis.addOffsetsToAudioPreview(); } _gthis.refresh(); }); this.initializeTicks(); this.refreshAudioPreview(); this.refresh(); this.refreshTicks(); this.waveformMusic.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { _gthis.onStartDragWaveform(); }); this.freeplayTicksContainer.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { _gthis.onStartDragPlayhead(); }); } ,initializeTicks: function() { this.tickTiledSprite = new flixel_addons_display_FlxTiledSprite(this.chartEditorState.offsetTickBitmap,100,this.chartEditorState.offsetTickBitmap.height,true,false); this.freeplayTicksSprite.set_sprite(this.tickTiledSprite); this.tickTiledSprite.set_width(5000); } ,refreshAudioPreview: function() { if(this.audioPreviewTracks == null) { this.audioPreviewTracks = new funkin_audio_SoundGroup(); this.chartEditorState.add(this.audioPreviewTracks); } else { this.audioPreviewTracks.stop(); this.audioPreviewTracks.clear(); } var instTrack = this.chartEditorState.audioInstTrack.clone(); this.audioPreviewTracks.add(instTrack); var playerVoice = this.chartEditorState.audioVocalTrackGroup.getPlayerVoice(); if(playerVoice != null) { this.audioPreviewTracks.add(playerVoice.clone()); } var opponentVoice = this.chartEditorState.audioVocalTrackGroup.getOpponentVoice(); if(opponentVoice != null) { this.audioPreviewTracks.add(opponentVoice.clone()); } var perfStart = funkin_util_TimerUtil.start(); var waveformData1 = playerVoice != null ? playerVoice.get_waveformData() : null; var tmp = opponentVoice != null ? opponentVoice.get_waveformData() : null; var waveformData2 = tmp != null ? tmp : playerVoice != null ? playerVoice.get_waveformData() : null; var waveformData3 = this.chartEditorState.audioInstTrack.get_waveformData(); var waveformData = waveformData3.merge(waveformData1).merge(waveformData2); haxe_Log.trace("Waveform data merging took: " + funkin_util_TimerUtil.seconds(perfStart),{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorFreeplayToolbox.hx", lineNumber : 297, className : "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox", methodName : "refreshAudioPreview"}); this.waveformMusic.waveform.set_waveformData(waveformData); this.waveformMusic.waveform.set_duration(instTrack._length / funkin_util_Constants.MS_PER_SEC); this.addOffsetsToAudioPreview(); } ,refreshTicks: function() { while(this.tickLabels.length > 0) { var label = this.tickLabels.pop(); this.freeplayTicksContainer.removeComponent(label); } var labelYPos = this.chartEditorState.offsetTickBitmap.height / 2; var labelHeight = this.chartEditorState.offsetTickBitmap.height / 2; var numberOfTicks = Math.floor(this.waveformMusic.waveform.get_width() / this.chartEditorState.offsetTickBitmap.width * 2) + 1; var _g = 0; var _g1 = numberOfTicks; while(_g < _g1) { var index = _g++; var tickPos = this.chartEditorState.offsetTickBitmap.width / 2 * index; var _this = this.waveformMusic.waveform.waveformData; var tickTime = tickPos * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor) / (_this.sampleRate / _this.samplesPerPoint); var tickLabel = new haxe_ui_components_Label(); tickLabel.set_text(this.formatTime(tickTime)); tickLabel.set_styleNames("offset-ticks-label"); tickLabel.set_height(labelHeight); tickLabel.set_top(labelYPos); tickLabel.set_left(tickPos + funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.TICK_LABEL_X_OFFSET); this.freeplayTicksContainer.addComponent(tickLabel); this.tickLabels.push(tickLabel); } } ,formatTime: function(seconds) { if(seconds <= 0) { return "0.0"; } var integerSeconds = Math.floor(seconds); var decimalSeconds = Math.floor((seconds - integerSeconds) * 10); if(integerSeconds < 60) { return "" + integerSeconds + "." + decimalSeconds; } else { var integerMinutes = Math.floor(integerSeconds / 60); var remainingSeconds = integerSeconds % 60; var remainingSecondsPad = remainingSeconds < 10 ? "0" + remainingSeconds : "" + remainingSeconds; return "" + integerMinutes + ":" + remainingSecondsPad + (decimalSeconds > 0 ? "." + decimalSeconds : ""); } } ,buildTickLabel: function() { } ,onStartDragPlayhead: function() { haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragPlayhead)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragPlayhead)); this.movePlayheadToMouse(); } ,onDragPlayhead: function(event) { this.movePlayheadToMouse(); } ,onStopDragPlayhead: function(event) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragPlayhead)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragPlayhead)); } ,movePlayheadToMouse: function() { var mouseXPos = flixel_FlxG.mouse.x; var relativeMouseXPos = mouseXPos - this.waveformScrollview.get_screenX(); var targetPlayheadPos = relativeMouseXPos + this.waveformScrollview.get_hscrollPos(); this.set_playheadAbsolutePos(targetPlayheadPos); var currentWaveformIndex = this.get_playheadAbsolutePos() * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor) | 0; var targetSongTimeSeconds = this.waveformMusic.waveform.waveformData.indexToSeconds(currentWaveformIndex); this.audioPreviewTracks.set_time(targetSongTimeSeconds * funkin_util_Constants.MS_PER_SEC); } ,waveformDragStartPos: null ,waveformDragPreviewStartPos: null ,waveformDragPreviewEndPos: null ,onStartDragWaveform: function() { this.waveformDragStartPos = flixel_FlxG.mouse.x; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragWaveform)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragWaveform)); } ,onDragWaveform: function(event) { var currentAbsMousePos = flixel_FlxG.mouse.x; var dragDiff = currentAbsMousePos - this.waveformDragStartPos; var currentRelativeMousePos = currentAbsMousePos - this.waveformScrollview.get_screenX(); var relativeStartPos = this.waveformDragStartPos - this.waveformScrollview.get_screenX(); var isDraggingRight = dragDiff > 0; var hasDraggedEnough = Math.abs(dragDiff) > 10; if(hasDraggedEnough) { if(isDraggingRight) { this.waveformDragPreviewStartPos = relativeStartPos; this.waveformDragPreviewEndPos = currentRelativeMousePos; } else { this.waveformDragPreviewStartPos = currentRelativeMousePos; this.waveformDragPreviewEndPos = relativeStartPos; } } this.refresh(); } ,onStopDragWaveform: function(event) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragWaveform)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragWaveform)); var previewStartPosAbsolute = this.waveformDragPreviewStartPos + this.waveformScrollview.get_hscrollPos(); var previewStartPosIndex = previewStartPosAbsolute * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor) | 0; var previewStartPosMs = this.waveformMusic.waveform.waveformData.indexToSeconds(previewStartPosIndex) * funkin_util_Constants.MS_PER_SEC | 0; var previewEndPosAbsolute = this.waveformDragPreviewEndPos + this.waveformScrollview.get_hscrollPos(); var previewEndPosIndex = previewEndPosAbsolute * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor) | 0; var previewEndPosMs = this.waveformMusic.waveform.waveformData.indexToSeconds(previewEndPosIndex) * funkin_util_Constants.MS_PER_SEC | 0; this.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetFreeplayPreviewCommand(previewStartPosMs,previewEndPosMs)); this.waveformDragStartPos = null; this.waveformDragPreviewStartPos = 0; this.waveformDragPreviewEndPos = 0; this.refresh(); this.addOffsetsToAudioPreview(); } ,playAudioPreview: function() { if(this.isPerformingPreview) { this.stopPerformingPreview(); } this.audioPreviewTracks.set_volume(this.get_freeplayPreviewVolume()); this.audioPreviewTracks.play(false,this.audioPreviewTracks.get_time()); } ,addOffsetsToAudioPreview: function() { var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { trackInst.set_time(trackInst._time - this.chartEditorState.get_currentInstrumentalOffset()); } var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { trackPlayer.set_time(trackPlayer._time - this.chartEditorState.get_currentVocalOffsetPlayer()); } var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { trackOpponent.set_time(trackOpponent._time - this.chartEditorState.get_currentVocalOffsetOpponent()); } } ,pauseAudioPreview: function() { if(this.isPerformingPreview) { this.stopPerformingPreview(); } this.audioPreviewTracks.pause(); } ,stopAudioPreview: function() { if(this.isPerformingPreview) { this.stopPerformingPreview(); } this.audioPreviewTracks.stop(); this.audioPreviewTracks.set_time(0); this.waveformScrollview.set_hscrollPos(0); this.set_playheadAbsolutePos(this.playheadSprite.get_width()); this.refresh(); this.addOffsetsToAudioPreview(); } ,zoomWaveformIn: function() { if(this.isPerformingPreview) { this.stopPerformingPreview(); } if(this.waveformScale > funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE) { this.waveformScale /= funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.WAVEFORM_ZOOM_MULT; if(this.waveformScale < funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE) { this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE; } haxe_Log.trace("Zooming in, scale: " + this.waveformScale,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorFreeplayToolbox.hx", lineNumber : 523, className : "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox", methodName : "zoomWaveformIn"}); this.set_playheadAbsolutePos(this.get_playheadAbsolutePos() * funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.WAVEFORM_ZOOM_MULT); var vaguelyCenterPlayheadOffset = this.waveformScrollview.get_width() / 8; this.waveformScrollview.set_hscrollPos(this.get_playheadAbsolutePos() - vaguelyCenterPlayheadOffset); this.refresh(); this.refreshTicks(); } else { this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE; } } ,zoomWaveformOut: function() { this.waveformScale *= funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.WAVEFORM_ZOOM_MULT; if(this.waveformScale < funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE) { this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE; } haxe_Log.trace("Zooming out, scale: " + this.waveformScale,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorFreeplayToolbox.hx", lineNumber : 546, className : "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox", methodName : "zoomWaveformOut"}); this.set_playheadAbsolutePos(this.get_playheadAbsolutePos() / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.WAVEFORM_ZOOM_MULT); var vaguelyCenterPlayheadOffset = this.waveformScrollview.get_width() / 8; this.waveformScrollview.set_hscrollPos(this.get_playheadAbsolutePos() - vaguelyCenterPlayheadOffset); this.refresh(); this.refreshTicks(); } ,setTrackVolume: function(volume) { this.audioPreviewTracks.set_volume(volume); } ,muteTrack: function() { this.audioPreviewTracks.set_muted(true); } ,unmuteTrack: function() { this.audioPreviewTracks.set_muted(false); } ,toggleMuteTrack: function() { this.audioPreviewTracks.set_muted(!this.audioPreviewTracks.get_muted()); } ,isPerformingPreview: null ,isFadingOutPreview: null ,performPreview: function() { this.isPerformingPreview = true; this.isFadingOutPreview = false; this.audioPreviewTracks.play(true,this.chartEditorState.get_currentSongFreeplayPreviewStart()); this.audioPreviewTracks.fadeIn(funkin_ui_freeplay_FreeplayState.FADE_IN_DURATION,funkin_ui_freeplay_FreeplayState.FADE_IN_START_VOLUME * this.get_freeplayPreviewVolume(),funkin_ui_freeplay_FreeplayState.FADE_IN_END_VOLUME * this.get_freeplayPreviewVolume(),null); } ,stopPerformingPreview: function() { this.isPerformingPreview = false; this.isFadingOutPreview = false; this.audioPreviewTracks.set_volume(this.get_freeplayPreviewVolume()); this.audioPreviewTracks.pause(); } ,update: function(elapsed) { var _gthis = this; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.update.call(this,elapsed); if(this.isPerformingPreview && !this.audioPreviewTracks.get_playing()) { this.stopPerformingPreview(); } if(this.isPerformingPreview && this.audioPreviewTracks.get_playing()) { var startFadeOutTime = this.chartEditorState.get_currentSongFreeplayPreviewEnd() - funkin_ui_freeplay_FreeplayState.FADE_OUT_DURATION * funkin_util_Constants.MS_PER_SEC; haxe_Log.trace("startFadeOutTime: " + this.audioPreviewTracks.get_time() + " >= " + startFadeOutTime,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorFreeplayToolbox.hx", lineNumber : 611, className : "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox", methodName : "update"}); if(!this.isFadingOutPreview && this.audioPreviewTracks.get_time() >= startFadeOutTime) { this.isFadingOutPreview = true; this.audioPreviewTracks.fadeOut(funkin_ui_freeplay_FreeplayState.FADE_OUT_DURATION,funkin_ui_freeplay_FreeplayState.FADE_OUT_END_VOLUME * this.get_freeplayPreviewVolume(),function(_) { haxe_Log.trace("Stop performing preview! " + _gthis.audioPreviewTracks.get_time(),{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorFreeplayToolbox.hx", lineNumber : 616, className : "funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox", methodName : "update"}); _gthis.stopPerformingPreview(); }); } } if(this.audioPreviewTracks.get_playing()) { var targetScrollPos = this.waveformMusic.waveform.waveformData.secondsToIndex(this.audioPreviewTracks.get_time() / funkin_util_Constants.MS_PER_SEC) / (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor); var prevPlayheadAbsolutePos = this.get_playheadAbsolutePos(); this.set_playheadAbsolutePos(targetScrollPos); var playheadDiff = this.get_playheadAbsolutePos() - prevPlayheadAbsolutePos; if(this.get_playheadAbsolutePos() < this.waveformScrollview.get_hscrollPos()) { var fh = this.waveformScrollview; fh.set_hscrollPos(fh.get_hscrollPos() - this.waveformScrollview.get_width()); } if(this.get_playheadAbsolutePos() > this.waveformScrollview.get_hscrollPos() + this.waveformScrollview.get_width()) { var fh = this.waveformScrollview; fh.set_hscrollPos(fh.get_hscrollPos() + this.waveformScrollview.get_width()); } } this.freeplayLabelTime.set_text(this.formatTime(this.audioPreviewTracks.get_time() / funkin_util_Constants.MS_PER_SEC)); if(this.waveformDragStartPos != null && (this.waveformDragPreviewStartPos > 0 && this.waveformDragPreviewEndPos > 0)) { var previewStartPosAbsolute = this.waveformDragPreviewStartPos + this.waveformScrollview.get_hscrollPos(); var previewStartPosIndex = previewStartPosAbsolute * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor) | 0; var previewStartPosMs = this.waveformMusic.waveform.waveformData.indexToSeconds(previewStartPosIndex) * funkin_util_Constants.MS_PER_SEC | 0; var previewEndPosAbsolute = this.waveformDragPreviewEndPos + this.waveformScrollview.get_hscrollPos(); var previewEndPosIndex = previewEndPosAbsolute * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor) | 0; var previewEndPosMs = this.waveformMusic.waveform.waveformData.indexToSeconds(previewEndPosIndex) * funkin_util_Constants.MS_PER_SEC | 0; this.freeplayPreviewStart.set_value(previewStartPosMs); this.freeplayPreviewEnd.set_value(previewEndPosMs); this.set_previewBoxStartPosAbsolute(previewStartPosAbsolute); this.set_previewBoxEndPosAbsolute(previewEndPosAbsolute); } else { this.set_previewBoxStartPosAbsolute(this.waveformMusic.waveform.waveformData.secondsToIndex(this.chartEditorState.get_currentSongFreeplayPreviewStart() / funkin_util_Constants.MS_PER_SEC) / (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor)); this.set_previewBoxEndPosAbsolute(this.waveformMusic.waveform.waveformData.secondsToIndex(this.chartEditorState.get_currentSongFreeplayPreviewEnd() / funkin_util_Constants.MS_PER_SEC) / (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor)); this.freeplayPreviewStart.set_value(this.chartEditorState.get_currentSongFreeplayPreviewStart()); this.freeplayPreviewEnd.set_value(this.chartEditorState.get_currentSongFreeplayPreviewEnd()); } } ,refresh: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.refresh.call(this); var _this = this.waveformMusic.waveform.waveformData; this.waveformMagicFactor = funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MAGIC_SCALE_BASE_TIME / (this.chartEditorState.offsetTickBitmap.width / (_this.sampleRate / _this.samplesPerPoint)); var currentZoomFactor = this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE * this.waveformMagicFactor; var maxWidth = -1; this.waveformMusic.waveform.set_time(-this.chartEditorState.get_currentInstrumentalOffset() / funkin_util_Constants.MS_PER_SEC); var tmp = this.waveformMusic.waveform.waveformData; var tmp1 = tmp != null ? tmp.length : null; this.waveformMusic.waveform.set_width((tmp1 != null ? tmp1 : 1000) / currentZoomFactor); if(this.waveformMusic.waveform.get_width() > maxWidth) { maxWidth = this.waveformMusic.waveform.get_width() | 0; } this.waveformMusic.waveform.set_height(65); this.waveformMusic.waveform.markDirty(); this.waveformContainer.set_width(maxWidth); this.tickTiledSprite.set_width(maxWidth); } ,registerBehaviours: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox(this._constructorParam_chartEditorState2); } ,testPreview: null ,freeplayTicksSprite: null ,freeplayMusicVolume: null ,freeplayMusicMute: null ,freeplayLabelTime: null ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox ,__properties__: $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.__properties__,{get_freeplayPreviewVolume:"get_freeplayPreviewVolume",set_previewBoxEndPosRelative:"set_previewBoxEndPosRelative",get_previewBoxEndPosRelative:"get_previewBoxEndPosRelative",set_previewBoxStartPosRelative:"set_previewBoxStartPosRelative",get_previewBoxStartPosRelative:"get_previewBoxStartPosRelative",set_previewBoxEndPosAbsolute:"set_previewBoxEndPosAbsolute",get_previewBoxEndPosAbsolute:"get_previewBoxEndPosAbsolute",set_previewBoxStartPosAbsolute:"set_previewBoxStartPosAbsolute",get_previewBoxStartPosAbsolute:"get_previewBoxStartPosAbsolute",set_playheadRelativePos:"set_playheadRelativePos",get_playheadRelativePos:"get_playheadRelativePos",set_playheadAbsolutePos:"set_playheadAbsolutePos",get_playheadAbsolutePos:"get_playheadAbsolutePos"}) }); var funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox = function(chartEditorState2) { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_Frame(); c1.set_id("frameVariation"); c1.set_height(230.); c1.set_percentWidth(100.); c1.set_text("Variation: Default"); var c2 = new haxe_ui_containers_VBox(); c2.set_percentWidth(100.); c2.set_percentHeight(100.); var c3 = new haxe_ui_containers_Grid(); c3.set_percentHeight(100.); c3.set_columns(2); var c4 = new haxe_ui_components_Label(); c4.set_text("Song Name:"); c4.set_verticalAlign("center"); c4.set_horizontalAlign("right"); c3.addComponent(c4); var c5 = new haxe_ui_components_TextField(); c5.set_id("inputSongName"); c5.set_value("Bopeebo"); c5.set_tooltip("The readable name of the song."); c3.addComponent(c5); var c6 = new haxe_ui_components_Label(); c6.set_text("Song Artist:"); c6.set_verticalAlign("center"); c6.set_horizontalAlign("right"); c3.addComponent(c6); var c7 = new haxe_ui_components_TextField(); c7.set_id("inputSongArtist"); c7.set_value("Kawai Sprite"); c7.set_tooltip("The artist who composed the song."); c3.addComponent(c7); var c8 = new haxe_ui_components_Label(); c8.set_text("Charter:"); c8.set_verticalAlign("center"); c8.set_horizontalAlign("right"); c3.addComponent(c8); var c9 = new haxe_ui_components_TextField(); c9.set_id("inputSongCharter"); c9.set_value(null); c9.set_tooltip("The person who charted the song. That's you!"); c3.addComponent(c9); var c10 = new haxe_ui_components_Label(); c10.set_text("Stage:"); c10.set_verticalAlign("center"); c10.set_horizontalAlign("right"); c3.addComponent(c10); var c11 = new haxe_ui_components_DropDown(); c11.set_id("inputStage"); c11.set_percentWidth(100.); c11.set_value("Main Stage"); c11.set_tooltip("Which stage the level takes place on."); c11.set_searchable(true); c11.set_horizontalAlign("right"); c11.set_dropdownWidth(300); c11.set_dropdownSize(10); var ds11 = new haxe_ui_data_ArrayDataSource(); ds11.add({ text : "Main Stage", id : "item"}); ds11.add({ text : "Spooky Mansion", id : "item"}); ds11.add({ text : "Philly Train", id : "item"}); ds11.add({ text : "Limo Ride", id : "item"}); ds11.add({ text : "Mall (Xmas)", id : "item"}); ds11.add({ text : "Mall (Evil)", id : "item"}); ds11.add({ text : "School", id : "item"}); ds11.add({ text : "School (Evil)", id : "item"}); ds11.add({ text : "Tankman Battlefield", id : "item"}); ds11.add({ text : "Philly Streets", id : "item"}); ds11.add({ text : "Philly Streets (Blazin')", id : "item"}); c11.set_dataSource(ds11); c3.addComponent(c11); var c12 = new haxe_ui_components_Label(); c12.set_text("Note Style:"); c12.set_verticalAlign("center"); c12.set_horizontalAlign("right"); c3.addComponent(c12); var c13 = new haxe_ui_components_DropDown(); c13.set_id("inputNoteStyle"); c13.set_percentWidth(100.); c13.set_value("Normal"); c13.set_tooltip("Which graphical style of notes to use."); c13.set_searchable(true); c13.set_horizontalAlign("right"); c13.set_dropdownWidth(300); c13.set_dropdownSize(10); var ds13 = new haxe_ui_data_ArrayDataSource(); ds13.add({ text : "Normal", id : "item"}); ds13.add({ text : "Pixel", id : "item"}); c13.set_dataSource(ds13); c3.addComponent(c13); c2.addComponent(c3); var c14 = new haxe_ui_containers_HBox(); c14.set_percentWidth(100.); var c15 = new haxe_ui_components_Button(); c15.set_id("buttonCharacterOpponent"); c15.set_width(70.); c15.set_height(70.); c15.set_padding(8); c15.set_iconPosition("top"); c14.addComponent(c15); var c16 = new haxe_ui_components_Button(); c16.set_id("buttonCharacterGirlfriend"); c16.set_width(70.); c16.set_height(70.); c16.set_padding(8); c16.set_iconPosition("top"); c14.addComponent(c16); var c17 = new haxe_ui_components_Button(); c17.set_id("buttonCharacterPlayer"); c17.set_width(70.); c17.set_height(70.); c17.set_padding(8); c17.set_iconPosition("top"); c14.addComponent(c17); c2.addComponent(c14); c1.addComponent(c2); c0.addComponent(c1); var c18 = new haxe_ui_containers_Frame(); c18.set_id("frameDifficulty"); c18.set_height(170.); c18.set_percentWidth(100.); c18.set_text("Difficulty: Normal"); var c19 = new haxe_ui_containers_Grid(); c19.set_columns(2); var c20 = new haxe_ui_components_Label(); c20.set_text("Starting BPM"); c20.set_verticalAlign("center"); c19.addComponent(c20); var c21 = new haxe_ui_components_NumberStepper(); c21.set_id("inputBPM"); c21.set_tooltip("Adjust the BPM of the song, which helps align the grid and character animations to the music."); c21.set_step(1); c21.set_precision(1); c21.set_pos(100); c21.set_min(10); c21.set_max(500); c21.set_horizontalAlign("right"); c19.addComponent(c21); var c22 = new haxe_ui_components_Label(); c22.set_text("Starting Time Signature"); c22.set_verticalAlign("center"); c19.addComponent(c22); var c23 = new haxe_ui_components_DropDown(); c23.set_id("inputTimeSignature"); c23.set_value("4/4"); c23.set_tooltip("Adjust the time signature of the song, which helps align the grid."); c23.set_horizontalAlign("right"); var ds23 = new haxe_ui_data_ArrayDataSource(); ds23.add({ text : "2/4", id : "2/4"}); ds23.add({ text : "3/4", id : "3/4"}); ds23.add({ text : "4/4", id : "4/4"}); ds23.add({ text : "5/4", id : "5/4"}); ds23.add({ text : "6/4", id : "6/4"}); ds23.add({ text : "3/8", id : "3/8"}); ds23.add({ text : "5/8", id : "5/8"}); ds23.add({ text : "7/8", id : "7/8"}); ds23.add({ text : "9/8", id : "9/8"}); ds23.add({ text : "15/16", id : "15/16"}); c23.set_dataSource(ds23); c19.addComponent(c23); var c24 = new haxe_ui_components_Label(); c24.set_id("labelScrollSpeed"); c24.set_text("Scroll Speed: 1.0x"); c19.addComponent(c24); var c25 = new haxe_ui_components_Spacer(); c19.addComponent(c25); var c26 = new haxe_ui_components_HorizontalSlider(); c26.set_id("inputScrollSpeed"); c26.set_tooltip("Adjust the relative speed at which the notes move."); c26.set_step(0.1); c26.set_precision(1); c26.set_pos(1.); c26.set_min(0.5); c26.set_max(5.); c19.addComponent(c26); var c27 = new haxe_ui_components_Spacer(); c19.addComponent(c27); var c28 = new haxe_ui_components_Label(); c28.set_id("labelDifficultyRating"); c28.set_text("Difficulty Rank"); c28.set_verticalAlign("center"); c19.addComponent(c28); var c29 = new haxe_ui_components_NumberStepper(); c29.set_id("inputDifficultyRating"); c29.set_tooltip("Set the rating for this difficulty as shown in the Freeplay menu."); c29.set_step(1); c29.set_pos(0); c29.set_min(0); c29.set_max(15); c19.addComponent(c29); c18.addComponent(c19); c0.addComponent(c18); this.addComponent(c0); this.set_id("toolboxMetadata"); this.set_width(345.); this.set_height(472.); this.set_title("Song Metadata"); this.bindingRoot = true; this.labelScrollSpeed = c24; this.labelDifficultyRating = c28; this.inputTimeSignature = c23; this.inputStage = c11; this.inputSongName = c5; this.inputSongCharter = c9; this.inputSongArtist = c7; this.inputScrollSpeed = c26; this.inputNoteStyle = c13; this.inputDifficultyRating = c29; this.inputBPM = c21; this.frameVariation = c1; this.frameDifficulty = c18; this.buttonCharacterPlayer = c17; this.buttonCharacterOpponent = c15; this.buttonCharacterGirlfriend = c16; this.initialize(); this.set_onDialogClosed($bind(this,this.onClose)); this.applyRootLayout("collapsibledialog"); }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorMetadataToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorMetadataToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox.build = function(chartEditorState) { return new funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox(chartEditorState); }; funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox.__super__ = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox.prototype = $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype,{ inputSongName: null ,inputSongArtist: null ,inputSongCharter: null ,inputStage: null ,inputNoteStyle: null ,buttonCharacterPlayer: null ,buttonCharacterGirlfriend: null ,buttonCharacterOpponent: null ,inputBPM: null ,labelScrollSpeed: null ,inputScrollSpeed: null ,frameVariation: null ,frameDifficulty: null ,onClose: function(event) { this.chartEditorState.menubarItemToggleToolboxMetadata.set_selected(false); } ,initialize: function() { var _gthis = this; this.set_x(150); this.set_y(250); this.inputSongName.set_onChange(function(event) { var valid = event.target.get_text() != null && event.target.get_text() != ""; if(valid) { _gthis.inputSongName.removeClass("invalid-value"); _gthis.chartEditorState.get_currentSongMetadata().songName = event.target.get_text(); } else { _gthis.chartEditorState.get_currentSongMetadata().songName = ""; } }); this.inputSongArtist.set_onChange(function(event) { var valid = event.target.get_text() != null && event.target.get_text() != ""; if(valid) { _gthis.inputSongArtist.removeClass("invalid-value"); _gthis.chartEditorState.get_currentSongMetadata().artist = event.target.get_text(); } else { _gthis.chartEditorState.get_currentSongMetadata().artist = ""; } }); this.inputSongCharter.set_onChange(function(event) { var valid = event.target.get_text() != null && event.target.get_text() != ""; if(valid) { _gthis.inputSongCharter.removeClass("invalid-value"); _gthis.chartEditorState.get_currentSongMetadata().charter = event.target.get_text(); } else { _gthis.chartEditorState.get_currentSongMetadata().charter = null; } }); this.inputStage.set_onChange(function(event) { var valid = event.data != null && event.data.id != null; if(valid) { _gthis.chartEditorState.get_currentSongMetadata().playData.stage = event.data.id; } }); var startingValueStage = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithStages(this.inputStage,this.chartEditorState.get_currentSongMetadata().playData.stage); this.inputStage.set_value(startingValueStage); this.inputNoteStyle.set_onChange(function(event) { var tmp = event.data; if((tmp != null ? tmp.id : null) == null) { return; } _gthis.chartEditorState.set_currentSongNoteStyle(event.data.id); }); var startingValueNoteStyle = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithNoteStyles(this.inputNoteStyle,this.chartEditorState.get_currentSongMetadata().playData.noteStyle); this.inputNoteStyle.set_value(startingValueNoteStyle); this.inputBPM.set_onChange(function(event) { if(event.value == null || haxe_ui_util_Variant.lte(event.value,haxe_ui_util_Variant.fromInt(0))) { return; } var startingBPM = _gthis.chartEditorState.get_currentSongMetadata().timeChanges[0].bpm; if(haxe_ui_util_Variant.neq(event.value,haxe_ui_util_Variant.fromFloat(startingBPM))) { _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_ChangeStartingBPMCommand(haxe_ui_util_Variant.toFloat(event.value))); } }); this.inputTimeSignature.set_onChange(function(event) { var timeSignatureStr = event.data.text; var timeSignature = timeSignatureStr.split("/"); if(timeSignature.length != 2) { return; } var timeSignatureNum = Std.parseInt(timeSignature[0]); var timeSignatureDen = Std.parseInt(timeSignature[1]); var previousTimeSignatureNum = _gthis.chartEditorState.get_currentSongMetadata().timeChanges[0].timeSignatureNum; var previousTimeSignatureDen = _gthis.chartEditorState.get_currentSongMetadata().timeChanges[0].timeSignatureDen; if(timeSignatureNum == previousTimeSignatureNum && timeSignatureDen == previousTimeSignatureDen) { return; } _gthis.chartEditorState.get_currentSongMetadata().timeChanges[0].timeSignatureNum = timeSignatureNum; _gthis.chartEditorState.get_currentSongMetadata().timeChanges[0].timeSignatureDen = timeSignatureDen; haxe_Log.trace("Time signature changed to " + timeSignatureNum + "/" + timeSignatureDen,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorMetadataToolbox.hx", lineNumber : 151, className : "funkin.ui.debug.charting.toolboxes.ChartEditorMetadataToolbox", methodName : "initialize"}); _gthis.chartEditorState.updateTimeSignature(); }); this.inputScrollSpeed.set_onChange(function(event) { var valid = event.target.get_value() != null && event.target.get_value() > 0; if(valid) { _gthis.inputScrollSpeed.removeClass("invalid-value"); _gthis.chartEditorState.set_currentSongChartScrollSpeed(event.target.get_value()); } else { _gthis.chartEditorState.set_currentSongChartScrollSpeed(1.0); } _gthis.labelScrollSpeed.set_text("Scroll Speed: " + _gthis.chartEditorState.get_currentSongChartScrollSpeed() + "x"); }); this.inputDifficultyRating.set_onChange(function(event) { _gthis.chartEditorState.set_currentSongChartDifficultyRating(event.target.get_value()); }); this.buttonCharacterOpponent.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCharacterDropdown(_gthis.chartEditorState,funkin_play_character_CharacterType.DAD,false); }); this.buttonCharacterGirlfriend.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCharacterDropdown(_gthis.chartEditorState,funkin_play_character_CharacterType.GF,false); }); this.buttonCharacterPlayer.set_onClick(function(_) { funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.openCharacterDropdown(_gthis.chartEditorState,funkin_play_character_CharacterType.BF,false); }); this.refresh(); } ,refresh: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.refresh.call(this); this.inputSongName.set_value(this.chartEditorState.get_currentSongMetadata().songName); this.inputSongArtist.set_value(this.chartEditorState.get_currentSongMetadata().artist); this.inputSongCharter.set_value(this.chartEditorState.get_currentSongMetadata().charter); this.inputStage.set_value(this.chartEditorState.get_currentSongMetadata().playData.stage); this.inputNoteStyle.set_value(this.chartEditorState.get_currentSongMetadata().playData.noteStyle); this.inputBPM.set_value(this.chartEditorState.get_currentSongMetadata().timeChanges[0].bpm); this.inputDifficultyRating.set_value(this.chartEditorState.get_currentSongChartDifficultyRating()); this.inputScrollSpeed.set_value(this.chartEditorState.get_currentSongChartScrollSpeed()); this.labelScrollSpeed.set_text("Scroll Speed: " + this.chartEditorState.get_currentSongChartScrollSpeed() + "x"); this.frameVariation.set_text("Variation: " + funkin_util_tools_StringTools.toTitleCase(this.chartEditorState.selectedVariation)); this.frameDifficulty.set_text("Difficulty: " + funkin_util_tools_StringTools.toTitleCase(this.chartEditorState.selectedDifficulty)); var currentTimeSignature = "" + this.chartEditorState.get_currentSongMetadata().timeChanges[0].timeSignatureNum + "/" + this.chartEditorState.get_currentSongMetadata().timeChanges[0].timeSignatureDen; haxe_Log.trace("Setting time signature to " + currentTimeSignature,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorMetadataToolbox.hx", lineNumber : 207, className : "funkin.ui.debug.charting.toolboxes.ChartEditorMetadataToolbox", methodName : "refresh"}); this.inputTimeSignature.set_value({ id : currentTimeSignature, text : currentTimeSignature}); var stageId = this.chartEditorState.get_currentSongMetadata().playData.stage; var stage = funkin_data_stage_StageRegistry.get_instance().fetchEntry(stageId); if(this.inputStage != null) { this.inputStage.set_value(stage != null ? { id : stage.id, text : stage.get_stageName()} : { id : "mainStage", text : "Main Stage"}); } var LIMIT = 6; var charDataOpponent = funkin_play_character_CharacterDataParser.fetchCharacterData(this.chartEditorState.get_currentSongMetadata().playData.characters.opponent); if(charDataOpponent != null) { this.buttonCharacterOpponent.set_icon(haxe_ui_util_Variant.fromString(funkin_play_character_CharacterDataParser.getCharPixelIconAsset(this.chartEditorState.get_currentSongMetadata().playData.characters.opponent))); this.buttonCharacterOpponent.set_text(charDataOpponent.name.length > LIMIT ? "" + HxOverrides.substr(charDataOpponent.name,0,LIMIT) + "." : "" + charDataOpponent.name); } else { this.buttonCharacterOpponent.set_icon(null); this.buttonCharacterOpponent.set_text("None"); } var charDataGirlfriend = funkin_play_character_CharacterDataParser.fetchCharacterData(this.chartEditorState.get_currentSongMetadata().playData.characters.girlfriend); if(charDataGirlfriend != null) { this.buttonCharacterGirlfriend.set_icon(haxe_ui_util_Variant.fromString(funkin_play_character_CharacterDataParser.getCharPixelIconAsset(this.chartEditorState.get_currentSongMetadata().playData.characters.girlfriend))); this.buttonCharacterGirlfriend.set_text(charDataGirlfriend.name.length > LIMIT ? "" + HxOverrides.substr(charDataGirlfriend.name,0,LIMIT) + "." : "" + charDataGirlfriend.name); } else { this.buttonCharacterGirlfriend.set_icon(null); this.buttonCharacterGirlfriend.set_text("None"); } var charDataPlayer = funkin_play_character_CharacterDataParser.fetchCharacterData(this.chartEditorState.get_currentSongMetadata().playData.characters.player); if(charDataPlayer != null) { this.buttonCharacterPlayer.set_icon(haxe_ui_util_Variant.fromString(funkin_play_character_CharacterDataParser.getCharPixelIconAsset(this.chartEditorState.get_currentSongMetadata().playData.characters.player))); this.buttonCharacterPlayer.set_text(charDataPlayer.name.length > LIMIT ? "" + HxOverrides.substr(charDataPlayer.name,0,LIMIT) + "." : "" + charDataPlayer.name); } else { this.buttonCharacterPlayer.set_icon(null); this.buttonCharacterPlayer.set_text("None"); } } ,registerBehaviours: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox(this._constructorParam_chartEditorState2); } ,labelDifficultyRating: null ,inputTimeSignature: null ,inputDifficultyRating: null ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorMetadataToolbox }); var funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox = function(chartEditorState2) { this._initializing = true; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_Grid(); c1.set_percentWidth(100.); c1.set_columns(2); var c2 = new haxe_ui_components_Label(); c2.set_text("Note Kind"); c2.set_verticalAlign("center"); c2.set_horizontalAlign("right"); c1.addComponent(c2); var c3 = new haxe_ui_components_DropDown(); c3.set_id("toolboxNotesNoteKind"); c3.set_percentWidth(100.); c3.set_value(null); c3.set_searchable(true); c3.set_dropdownWidth(300); c3.set_dropdownSize(10); var ds3 = new haxe_ui_data_ArrayDataSource(); ds3.add({ text : "Default", id : ""}); ds3.add({ text : "Custom", id : "~CUSTOM~"}); c3.set_dataSource(ds3); c1.addComponent(c3); var c4 = new haxe_ui_components_Label(); c4.set_id("toolboxNotesCustomKindLabel"); c4.set_text("Custom Note Type"); c4.set_hidden(true); c1.addComponent(c4); var c5 = new haxe_ui_components_TextField(); c5.set_id("toolboxNotesCustomKind"); c5.set_percentWidth(100.); c5.set_styleString("font-size: 10px"); c5.set_placeholder("Kind..."); c5.set_hidden(true); c1.addComponent(c5); c0.addComponent(c1); this.addComponent(c0); this.set_id("toolboxNotes"); this.set_width(250.); this.set_height(100.); this.set_title("Notes"); this.bindingRoot = true; this.toolboxNotesNoteKind = c3; this.toolboxNotesCustomKindLabel = c4; this.toolboxNotesCustomKind = c5; this.initialize(); this.set_onDialogClosed($bind(this,this.onClose)); this._initializing = false; this.applyRootLayout("collapsibledialog"); }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorNoteDataToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorNoteDataToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox.build = function(chartEditorState) { return new funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox(chartEditorState); }; funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox.__super__ = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox.prototype = $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype,{ toolboxNotesNoteKind: null ,toolboxNotesCustomKind: null ,_initializing: null ,onClose: function(event) { this.chartEditorState.menubarItemToggleToolboxNoteData.set_selected(false); } ,initialize: function() { var _gthis = this; this.toolboxNotesNoteKind.set_onChange(function(event) { var tmp = event != null ? event.data : null; var tmp1 = tmp != null ? tmp.id : null; var noteKind = tmp1 != null ? tmp1 : null; if(noteKind == "") { noteKind = null; } haxe_Log.trace("ChartEditorToolboxHandler.buildToolboxNoteDataLayout() - Note kind changed: " + noteKind,{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorNoteDataToolbox.hx", lineNumber : 42, className : "funkin.ui.debug.charting.toolboxes.ChartEditorNoteDataToolbox", methodName : "initialize"}); if(noteKind == "~CUSTOM~") { _gthis.showCustom(); _gthis.toolboxNotesCustomKind.set_value(_gthis.chartEditorState.noteKindToPlace); } else { _gthis.hideCustom(); _gthis.chartEditorState.noteKindToPlace = noteKind; _gthis.toolboxNotesCustomKind.set_value(_gthis.chartEditorState.noteKindToPlace); } if(!_gthis._initializing && _gthis.chartEditorState.currentNoteSelection.length > 0) { var _g = 0; var _g1 = _gthis.chartEditorState.currentNoteSelection; while(_g < _g1.length) { var note = _g1[_g]; ++_g; note.set_kind(_gthis.chartEditorState.noteKindToPlace); } _gthis.chartEditorState.set_saveDataDirty(true); _gthis.chartEditorState.noteDisplayDirty = true; _gthis.chartEditorState.set_notePreviewDirty(true); } }); var startingValueNoteKind = funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithNoteKinds(this.toolboxNotesNoteKind,""); this.toolboxNotesNoteKind.set_value(startingValueNoteKind); this.toolboxNotesCustomKind.set_onChange(function(event) { var tmp = event != null ? event.target : null; var customKind = tmp != null ? tmp.get_text() : null; _gthis.chartEditorState.noteKindToPlace = customKind; if(_gthis.chartEditorState.currentEventSelection.length > 0) { var _g = 0; var _g1 = _gthis.chartEditorState.currentNoteSelection; while(_g < _g1.length) { var note = _g1[_g]; ++_g; note.set_kind(_gthis.chartEditorState.noteKindToPlace); } _gthis.chartEditorState.set_saveDataDirty(true); _gthis.chartEditorState.noteDisplayDirty = true; _gthis.chartEditorState.set_notePreviewDirty(true); } }); this.toolboxNotesCustomKind.set_value(this.chartEditorState.noteKindToPlace); } ,refresh: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.refresh.call(this); this.toolboxNotesNoteKind.set_value(funkin_ui_debug_charting_util_ChartEditorDropdowns.lookupNoteKind(this.chartEditorState.noteKindToPlace)); this.toolboxNotesCustomKind.set_value(this.chartEditorState.noteKindToPlace); } ,showCustom: function() { this.toolboxNotesCustomKindLabel.set_hidden(false); this.toolboxNotesCustomKind.set_hidden(false); } ,hideCustom: function() { this.toolboxNotesCustomKindLabel.set_hidden(true); this.toolboxNotesCustomKind.set_hidden(true); } ,registerBehaviours: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox(this._constructorParam_chartEditorState2); } ,toolboxNotesCustomKindLabel: null ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorNoteDataToolbox }); var funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox = function(chartEditorState2) { this.dragOffsetMs = 0; this.dragWaveform = null; this.dragMousePosition = 0; this.audioPreviewInstrumentalOffset = 0; this.audioPreviewOpponentOffset = 0; this.audioPreviewPlayerOffset = 0; this.tickLabels = []; this.waveformMagicFactor = 1.0; this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE; funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.call(this,chartEditorState2); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); var c1 = new haxe_ui_containers_HBox(); c1.set_percentWidth(100.); var c2 = new haxe_ui_components_Button(); c2.set_id("offsetButtonPause"); c2.set_text("Pause"); c1.addComponent(c2); var c3 = new haxe_ui_components_Button(); c3.set_id("offsetButtonPlay"); c3.set_text("Play"); c1.addComponent(c3); var c4 = new haxe_ui_components_Button(); c4.set_id("offsetButtonStop"); c4.set_text("Stop"); c1.addComponent(c4); var c5 = new haxe_ui_components_Label(); c5.set_id("offsetLabelTime"); c5.set_percentHeight(100.); c5.set_text("0:00.0"); c1.addComponent(c5); var c6 = new haxe_ui_components_Spacer(); c6.set_percentWidth(100.); c1.addComponent(c6); var c7 = new haxe_ui_components_Button(); c7.set_id("offsetButtonZoomIn"); c7.set_text("Zoom In"); c1.addComponent(c7); var c8 = new haxe_ui_components_Button(); c8.set_id("offsetButtonZoomOut"); c8.set_text("Zoom Out"); c1.addComponent(c8); c0.addComponent(c1); var c9 = new haxe_ui_containers_HBox(); c9.set_percentWidth(100.); var c10 = new haxe_ui_containers_VBox(); c10.set_width(125.); c10.set_height(295.); var c11 = new haxe_ui_components_Spacer(); c11.set_percentHeight(100.); c10.addComponent(c11); var c12 = new haxe_ui_containers_Frame(); c12.set_height(80.); c12.set_percentWidth(100.); c12.set_text("Player Vocals"); var c13 = new haxe_ui_containers_VBox(); c13.set_percentWidth(100.); c13.set_percentHeight(100.); var c14 = new haxe_ui_components_HorizontalSlider(); c14.set_id("offsetPlayerVolume"); c14.set_percentWidth(100.); c14.set_styleNames("compact"); c14.set_tooltip("Player Vocals Volume"); c14.set_pos(50); c14.set_minorTicks(5); c14.set_majorTicks(10); c13.addComponent(c14); var c15 = new haxe_ui_containers_HBox(); c15.set_percentWidth(100.); var c16 = new haxe_ui_components_Button(); c16.set_id("offsetPlayerMute"); c16.set_percentWidth(50.); c16.set_text("Mute"); c16.set_styleNames("compactButton"); c16.set_tooltip("Mute the player vocals."); c15.addComponent(c16); var c17 = new haxe_ui_components_Button(); c17.set_id("offsetPlayerSolo"); c17.set_percentWidth(50.); c17.set_text("Solo"); c17.set_styleNames("compactButton"); c17.set_tooltip("Isolate the player vocals and mute other tracks."); c15.addComponent(c17); c13.addComponent(c15); c12.addComponent(c13); c10.addComponent(c12); var c18 = new haxe_ui_containers_Frame(); c18.set_height(80.); c18.set_percentWidth(100.); c18.set_text("Opponent Vocals"); var c19 = new haxe_ui_containers_VBox(); c19.set_percentWidth(100.); c19.set_percentHeight(100.); var c20 = new haxe_ui_components_HorizontalSlider(); c20.set_id("offsetOpponentVolume"); c20.set_percentWidth(100.); c20.set_styleNames("compact"); c20.set_tooltip("Opponent Vocals Volume"); c20.set_pos(50); c20.set_minorTicks(5); c20.set_majorTicks(10); c19.addComponent(c20); var c21 = new haxe_ui_containers_HBox(); c21.set_percentWidth(100.); var c22 = new haxe_ui_components_Button(); c22.set_id("offsetOpponentMute"); c22.set_percentWidth(50.); c22.set_text("Mute"); c22.set_styleNames("compactButton"); c22.set_tooltip("Mute the opponent vocals."); c21.addComponent(c22); var c23 = new haxe_ui_components_Button(); c23.set_id("offsetOpponentSolo"); c23.set_percentWidth(50.); c23.set_text("Solo"); c23.set_styleNames("compactButton"); c23.set_tooltip("Isolate the opponent vocals and mute other tracks."); c21.addComponent(c23); c19.addComponent(c21); c18.addComponent(c19); c10.addComponent(c18); var c24 = new haxe_ui_containers_Frame(); c24.set_height(80.); c24.set_percentWidth(100.); c24.set_text("Instrumental"); var c25 = new haxe_ui_containers_VBox(); c25.set_percentWidth(100.); c25.set_percentHeight(100.); var c26 = new haxe_ui_components_HorizontalSlider(); c26.set_id("offsetInstrumentalVolume"); c26.set_percentWidth(100.); c26.set_styleNames("compact"); c26.set_tooltip("Instrumental Volume"); c26.set_pos(50); c26.set_minorTicks(5); c26.set_majorTicks(10); c25.addComponent(c26); var c27 = new haxe_ui_containers_HBox(); c27.set_percentWidth(100.); var c28 = new haxe_ui_components_Button(); c28.set_id("offsetInstrumentalMute"); c28.set_percentWidth(50.); c28.set_text("Mute"); c28.set_styleNames("compactButton"); c28.set_tooltip("Mute the instrumental."); c27.addComponent(c28); var c29 = new haxe_ui_components_Button(); c29.set_id("offsetInstrumentalSolo"); c29.set_percentWidth(50.); c29.set_text("Solo"); c29.set_styleNames("compactButton"); c29.set_tooltip("Isolate the instrumental and mute other tracks."); c27.addComponent(c29); c25.addComponent(c27); c24.addComponent(c25); c10.addComponent(c24); c9.addComponent(c10); var c30 = new haxe_ui_containers_ScrollView(); c30.set_id("waveformScrollview"); c30.set_width(400.); c30.set_height(310.); c30.set_styleNames("no-padding"); c30.set_verticalScrollPolicy("never"); c30.set_scrollMode(haxe_ui_constants_ScrollMode.fromString("normal")); c30.set_horizontalScrollPolicy("always"); var c31 = new haxe_ui_containers_Absolute(); c31.set_id("waveformContainer"); c31.set_width(3000.); c31.set_height(300.); c31.set_styleNames("compact"); var c32 = new haxe_ui_containers_VBox(); c32.set_left(0.); c32.set_top(0.); c32.set_percentWidth(100.); c32.set_percentHeight(100.); var c33 = new haxe_ui_containers_Absolute(); c33.set_id("offsetTicksContainer"); c33.set_height(40.); c33.set_percentWidth(100.); c33.set_styleString("cursor: pointer;"); var c34 = new haxe_ui_backend_flixel_components_SpriteWrapper(); c34.set_id("offsetTicksSprite"); c34.set_left(0.); c34.set_top(0.); c34.set_percentWidth(100.); c34.set_percentHeight(100.); c34.set_styleString("background-color: #111111"); c33.addComponent(c34); c32.addComponent(c33); var c35 = new funkin_ui_haxeui_components_WaveformPlayer(); c35.set_id("waveformPlayer"); c35.set_styleString("cursor: pointer; pointer-events: true"); c32.addComponent(c35); var c36 = new haxe_ui_components_Spacer(); c36.set_height(10.); c32.addComponent(c36); var c37 = new funkin_ui_haxeui_components_WaveformPlayer(); c37.set_id("waveformOpponent"); c37.set_styleString("cursor: pointer; pointer-events: true"); c32.addComponent(c37); var c38 = new haxe_ui_components_Spacer(); c38.set_height(8.); c32.addComponent(c38); var c39 = new funkin_ui_haxeui_components_WaveformPlayer(); c39.set_id("waveformInstrumental"); c39.set_styleString("cursor: pointer; pointer-events: true"); c32.addComponent(c39); c31.addComponent(c32); var c40 = new haxe_ui_backend_flixel_components_SpriteWrapper(); c40.set_id("playheadSprite"); c40.set_left(0.); c40.set_top(0.); c40.set_width(2.); c40.set_percentHeight(100.); c40.set_styleString("background-color: #FF0000"); c31.addComponent(c40); c30.addComponent(c31); c9.addComponent(c30); c0.addComponent(c9); var c41 = new haxe_ui_containers_Grid(); c41.set_percentWidth(100.); c41.set_columns(2); var c42 = new haxe_ui_components_Label(); c42.set_text("Player Offset (ms)"); c42.set_verticalAlign("center"); c41.addComponent(c42); var c43 = new haxe_ui_components_NumberStepper(); c43.set_id("offsetStepperPlayer"); c43.set_tooltip("Adjust the start of the player vocal track by this many milliseconds, ON TOP OF the instrumental offset."); c43.set_pos(0); c43.set_horizontalAlign("right"); c41.addComponent(c43); var c44 = new haxe_ui_components_Label(); c44.set_text("Opponent Offset (ms)"); c44.set_verticalAlign("center"); c41.addComponent(c44); var c45 = new haxe_ui_components_NumberStepper(); c45.set_id("offsetStepperOpponent"); c45.set_tooltip("Adjust the start of the opponent vocal track by this many milliseconds, ON TOP OF the instrumental offset."); c45.set_pos(0); c45.set_horizontalAlign("right"); c41.addComponent(c45); var c46 = new haxe_ui_components_Label(); c46.set_text("Instrumental Offset (ms)"); c46.set_verticalAlign("center"); c41.addComponent(c46); var c47 = new haxe_ui_components_NumberStepper(); c47.set_id("offsetStepperInstrumental"); c47.set_tooltip("Adjust the start of the instrumental track by this many milliseconds."); c47.set_pos(0); c47.set_horizontalAlign("right"); c41.addComponent(c47); c0.addComponent(c41); this.addComponent(c0); this.set_id("toolboxOffsets"); this.set_width(550.); this.set_height(490.); this.set_title("Offsets"); this.bindingRoot = true; this.waveformScrollview = c30; this.waveformPlayer = c35; this.waveformOpponent = c37; this.waveformInstrumental = c39; this.waveformContainer = c31; this.playheadSprite = c40; this.offsetTicksSprite = c34; this.offsetTicksContainer = c33; this.offsetStepperPlayer = c43; this.offsetStepperOpponent = c45; this.offsetStepperInstrumental = c47; this.offsetPlayerVolume = c14; this.offsetPlayerSolo = c17; this.offsetPlayerMute = c16; this.offsetOpponentVolume = c20; this.offsetOpponentSolo = c23; this.offsetOpponentMute = c22; this.offsetLabelTime = c5; this.offsetInstrumentalVolume = c26; this.offsetInstrumentalSolo = c29; this.offsetInstrumentalMute = c28; this.offsetButtonZoomOut = c8; this.offsetButtonZoomIn = c7; this.offsetButtonStop = c4; this.offsetButtonPlay = c3; this.offsetButtonPause = c2; this.initialize(); this.set_onDialogClosed($bind(this,this.onClose)); this.applyRootLayout("collapsibledialog"); }; $hxClasses["funkin.ui.debug.charting.toolboxes.ChartEditorOffsetsToolbox"] = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.__name__ = "funkin.ui.debug.charting.toolboxes.ChartEditorOffsetsToolbox"; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.build = function(chartEditorState) { return new funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox(chartEditorState); }; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.__super__ = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.prototype = $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype,{ waveformContainer: null ,waveformScrollview: null ,waveformPlayer: null ,waveformOpponent: null ,waveformInstrumental: null ,offsetButtonZoomIn: null ,offsetButtonZoomOut: null ,offsetButtonPause: null ,offsetButtonPlay: null ,offsetButtonStop: null ,offsetStepperPlayer: null ,offsetStepperOpponent: null ,offsetStepperInstrumental: null ,offsetTicksContainer: null ,playheadSprite: null ,waveformScale: null ,get_playheadAbsolutePos: function() { return this.playheadSprite.get_left(); } ,set_playheadAbsolutePos: function(value) { return this.playheadSprite.set_left(value); } ,get_playheadRelativePos: function() { return this.playheadSprite.get_left() - this.waveformScrollview.get_hscrollPos(); } ,set_playheadRelativePos: function(value) { return this.playheadSprite.set_left(this.waveformScrollview.get_hscrollPos() + value); } ,waveformMagicFactor: null ,audioPreviewTracks: null ,tickTiledSprite: null ,tickLabels: null ,audioPreviewPlayerOffset: null ,audioPreviewOpponentOffset: null ,audioPreviewInstrumentalOffset: null ,onClose: function(event) { this.chartEditorState.menubarItemToggleToolboxOffsets.set_selected(false); } ,initialize: function() { var _gthis = this; this.set_x(150); this.set_y(250); this.offsetPlayerVolume.set_onChange(function(_) { var targetVolume = _gthis.offsetPlayerVolume.get_value() * 2 / 100; _gthis.setTrackVolume(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER,targetVolume); }); this.offsetPlayerMute.set_onClick(function(_) { _gthis.toggleMuteTrack(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER); }); this.offsetPlayerSolo.set_onClick(function(_) { _gthis.soloTrack(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER); }); this.offsetOpponentVolume.set_onChange(function(_) { var targetVolume = _gthis.offsetOpponentVolume.get_value() * 2 / 100; _gthis.setTrackVolume(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT,targetVolume); }); this.offsetOpponentMute.set_onClick(function(_) { _gthis.toggleMuteTrack(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT); }); this.offsetOpponentSolo.set_onClick(function(_) { _gthis.soloTrack(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT); }); this.offsetInstrumentalVolume.set_onChange(function(_) { var targetVolume = _gthis.offsetInstrumentalVolume.get_value() * 2 / 100; _gthis.setTrackVolume(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL,targetVolume); }); this.offsetInstrumentalMute.set_onClick(function(_) { _gthis.toggleMuteTrack(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL); }); this.offsetInstrumentalSolo.set_onClick(function(_) { _gthis.soloTrack(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL); }); this.offsetButtonZoomIn.set_onClick(function(_) { _gthis.zoomWaveformIn(); }); this.offsetButtonZoomOut.set_onClick(function(_) { _gthis.zoomWaveformOut(); }); this.offsetButtonPause.set_onClick(function(_) { _gthis.pauseAudioPreview(); }); this.offsetButtonPlay.set_onClick(function(_) { _gthis.playAudioPreview(); }); this.offsetButtonStop.set_onClick(function(_) { _gthis.stopAudioPreview(); }); this.offsetStepperPlayer.set_onChange(function(event) { if(haxe_ui_util_Variant.eq(event.value,haxe_ui_util_Variant.fromFloat(_gthis.chartEditorState.get_currentVocalOffsetPlayer()))) { return; } if(_gthis.dragWaveform != null) { return; } _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetAudioOffsetCommand(funkin_ui_debug_charting_commands_AudioOffsetType.PLAYER,haxe_ui_util_Variant.toFloat(event.value))); _gthis.refresh(); }); this.offsetStepperOpponent.set_onChange(function(event) { if(haxe_ui_util_Variant.eq(event.value,haxe_ui_util_Variant.fromFloat(_gthis.chartEditorState.get_currentVocalOffsetOpponent()))) { return; } if(_gthis.dragWaveform != null) { return; } _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetAudioOffsetCommand(funkin_ui_debug_charting_commands_AudioOffsetType.OPPONENT,haxe_ui_util_Variant.toFloat(event.value))); _gthis.refresh(); }); this.offsetStepperInstrumental.set_onChange(function(event) { if(haxe_ui_util_Variant.eq(event.value,haxe_ui_util_Variant.fromFloat(_gthis.chartEditorState.get_currentInstrumentalOffset()))) { return; } if(_gthis.dragWaveform != null) { return; } _gthis.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetAudioOffsetCommand(funkin_ui_debug_charting_commands_AudioOffsetType.INSTRUMENTAL,haxe_ui_util_Variant.toFloat(event.value))); _gthis.refresh(); }); this.waveformScrollview.set_onScroll(function(_) { if(!_gthis.audioPreviewTracks.get_playing()) { var prevPlayheadRelativePos = _gthis.get_playheadRelativePos(); var _gthis1 = _gthis; var Value = _gthis.get_playheadRelativePos(); var Max = _gthis.waveformScrollview.get_width() - funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.PLAYHEAD_RIGHT_PAD; var lowerBound = Value < 0 ? 0 : Value; _gthis1.set_playheadRelativePos(Max != null && lowerBound > Max ? Max : lowerBound); var diff = _gthis.get_playheadRelativePos() - prevPlayheadRelativePos; if(diff != 0) { var currentWaveformIndex = _gthis.get_playheadAbsolutePos() * (_gthis.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE * _gthis.waveformMagicFactor) | 0; var targetSongTimeSeconds = _gthis.waveformPlayer.waveform.waveformData.indexToSeconds(currentWaveformIndex); _gthis.audioPreviewTracks.set_time(targetSongTimeSeconds * funkin_util_Constants.MS_PER_SEC); } _gthis.addOffsetsToAudioPreview(); } _gthis.refresh(); }); this.initializeTicks(); this.refreshAudioPreview(); this.refresh(); this.refreshTicks(); this.waveformPlayer.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { _gthis.onStartDragWaveform(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER); }); this.waveformOpponent.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { _gthis.onStartDragWaveform(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT); }); this.waveformInstrumental.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { _gthis.onStartDragWaveform(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL); }); this.offsetTicksContainer.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { _gthis.onStartDragPlayhead(); }); } ,initializeTicks: function() { this.tickTiledSprite = new flixel_addons_display_FlxTiledSprite(this.chartEditorState.offsetTickBitmap,100,this.chartEditorState.offsetTickBitmap.height,true,false); this.offsetTicksSprite.set_sprite(this.tickTiledSprite); this.tickTiledSprite.set_width(5000); } ,refreshAudioPreview: function() { if(this.audioPreviewTracks == null) { this.audioPreviewTracks = new funkin_audio_SoundGroup(); this.chartEditorState.add(this.audioPreviewTracks); } else { this.audioPreviewTracks.stop(); this.audioPreviewTracks.clear(); } var instTrack = this.chartEditorState.audioInstTrack.clone(); this.audioPreviewTracks.add(instTrack); var playerVoice = this.chartEditorState.audioVocalTrackGroup.getPlayerVoice(); if(playerVoice != null) { this.audioPreviewTracks.add(playerVoice.clone()); } var opponentVoice = this.chartEditorState.audioVocalTrackGroup.getOpponentVoice(); if(opponentVoice != null) { this.audioPreviewTracks.add(opponentVoice.clone()); } this.waveformPlayer.waveform.set_waveformData(playerVoice != null ? playerVoice.get_waveformData() : null); var tmp = playerVoice != null ? playerVoice._length : null; this.waveformPlayer.waveform.set_duration((tmp != null ? tmp : 1000.0) / funkin_util_Constants.MS_PER_SEC); this.waveformOpponent.waveform.set_waveformData(opponentVoice != null ? opponentVoice.get_waveformData() : null); var tmp = opponentVoice != null ? opponentVoice._length : null; this.waveformOpponent.waveform.set_duration((tmp != null ? tmp : 1000.0) / funkin_util_Constants.MS_PER_SEC); this.waveformInstrumental.waveform.set_waveformData(this.chartEditorState.audioInstTrack.get_waveformData()); var tmp = instTrack != null ? instTrack._length : null; this.waveformInstrumental.waveform.set_duration((tmp != null ? tmp : 1000.0) / funkin_util_Constants.MS_PER_SEC); this.addOffsetsToAudioPreview(); } ,refreshTicks: function() { while(this.tickLabels.length > 0) { var label = this.tickLabels.pop(); this.offsetTicksContainer.removeComponent(label); } var labelYPos = this.chartEditorState.offsetTickBitmap.height / 2; var labelHeight = this.chartEditorState.offsetTickBitmap.height / 2; var numberOfTicks = Math.floor(this.waveformInstrumental.waveform.get_width() / this.chartEditorState.offsetTickBitmap.width * 2) + 1; var _g = 0; var _g1 = numberOfTicks; while(_g < _g1) { var index = _g++; var tickPos = this.chartEditorState.offsetTickBitmap.width / 2 * index; var _this = this.waveformInstrumental.waveform.waveformData; var tickTime = tickPos * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE * this.waveformMagicFactor) / (_this.sampleRate / _this.samplesPerPoint); var tickLabel = new haxe_ui_components_Label(); tickLabel.set_text(this.formatTime(tickTime)); tickLabel.set_styleNames("offset-ticks-label"); tickLabel.set_height(labelHeight); tickLabel.set_top(labelYPos); tickLabel.set_left(tickPos + funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.TICK_LABEL_X_OFFSET); this.offsetTicksContainer.addComponent(tickLabel); this.tickLabels.push(tickLabel); } } ,formatTime: function(seconds) { if(seconds <= 0) { return "0.0"; } var integerSeconds = Math.floor(seconds); var decimalSeconds = Math.floor((seconds - integerSeconds) * 10); if(integerSeconds < 60) { return "" + integerSeconds + "." + decimalSeconds; } else { var integerMinutes = Math.floor(integerSeconds / 60); var remainingSeconds = integerSeconds % 60; var remainingSecondsPad = remainingSeconds < 10 ? "0" + remainingSeconds : "" + remainingSeconds; return "" + integerMinutes + ":" + remainingSecondsPad + (decimalSeconds > 0 ? "." + decimalSeconds : ""); } } ,buildTickLabel: function() { } ,onStartDragPlayhead: function() { haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragPlayhead)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragPlayhead)); this.movePlayheadToMouse(); } ,onDragPlayhead: function(event) { this.movePlayheadToMouse(); } ,onStopDragPlayhead: function(event) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragPlayhead)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragPlayhead)); } ,movePlayheadToMouse: function() { var mouseXPos = flixel_FlxG.mouse.x; var relativeMouseXPos = mouseXPos - this.waveformScrollview.get_screenX(); var targetPlayheadPos = relativeMouseXPos + this.waveformScrollview.get_hscrollPos(); this.set_playheadAbsolutePos(targetPlayheadPos); var currentWaveformIndex = this.get_playheadAbsolutePos() * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE * this.waveformMagicFactor) | 0; var targetSongTimeSeconds = this.waveformPlayer.waveform.waveformData.indexToSeconds(currentWaveformIndex); this.audioPreviewTracks.set_time(targetSongTimeSeconds * funkin_util_Constants.MS_PER_SEC); } ,onStartDragWaveform: function(waveform) { this.dragMousePosition = flixel_FlxG.mouse.x; this.dragWaveform = waveform; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragWaveform)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragWaveform)); } ,dragMousePosition: null ,dragWaveform: null ,dragOffsetMs: null ,onDragWaveform: function(event) { var newDragMousePosition = flixel_FlxG.mouse.x; var deltaMousePosition = newDragMousePosition - this.dragMousePosition; if(deltaMousePosition == 0) { return; } var deltaPixels = deltaMousePosition * (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE * this.waveformMagicFactor); var deltaMilliseconds; switch(this.dragWaveform._hx_index) { case 0: var _this = this.waveformPlayer.waveform.waveformData; deltaMilliseconds = deltaPixels / (_this.sampleRate / _this.samplesPerPoint) * funkin_util_Constants.MS_PER_SEC; break; case 1: var _this = this.waveformOpponent.waveform.waveformData; deltaMilliseconds = deltaPixels / (_this.sampleRate / _this.samplesPerPoint) * funkin_util_Constants.MS_PER_SEC; break; case 2: var _this = this.waveformInstrumental.waveform.waveformData; deltaMilliseconds = deltaPixels / (_this.sampleRate / _this.samplesPerPoint) * funkin_util_Constants.MS_PER_SEC; break; } switch(this.dragWaveform._hx_index) { case 0: this.dragOffsetMs += deltaMilliseconds; var fh = this.offsetStepperPlayer; fh.set_value(fh.get_value() + deltaMilliseconds); break; case 1: this.dragOffsetMs += deltaMilliseconds; var fh = this.offsetStepperOpponent; fh.set_value(fh.get_value() + deltaMilliseconds); break; case 2: this.dragOffsetMs += deltaMilliseconds; var fh = this.offsetStepperInstrumental; fh.set_value(fh.get_value() + deltaMilliseconds); break; } this.dragMousePosition = newDragMousePosition; this.refresh(); } ,onStopDragWaveform: function(event) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onDragWaveform)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onStopDragWaveform)); if(this.dragOffsetMs != 0) { switch(this.dragWaveform._hx_index) { case 0: this.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetAudioOffsetCommand(funkin_ui_debug_charting_commands_AudioOffsetType.PLAYER,this.chartEditorState.get_currentVocalOffsetPlayer() + this.dragOffsetMs,false)); break; case 1: this.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetAudioOffsetCommand(funkin_ui_debug_charting_commands_AudioOffsetType.OPPONENT,this.chartEditorState.get_currentVocalOffsetOpponent() + this.dragOffsetMs,false)); break; case 2: this.chartEditorState.performCommand(new funkin_ui_debug_charting_commands_SetAudioOffsetCommand(funkin_ui_debug_charting_commands_AudioOffsetType.INSTRUMENTAL,this.chartEditorState.get_currentInstrumentalOffset() + this.dragOffsetMs,false)); break; } } this.dragOffsetMs = 0; this.dragMousePosition = 0; this.dragWaveform = null; this.refresh(); this.addOffsetsToAudioPreview(); } ,playAudioPreview: function() { this.audioPreviewTracks.play(false,this.audioPreviewTracks.get_time()); } ,addOffsetsToAudioPreview: function() { var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { this.audioPreviewInstrumentalOffset = this.chartEditorState.get_currentInstrumentalOffset(); trackInst.set_time(trackInst._time - this.audioPreviewInstrumentalOffset); } var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { this.audioPreviewPlayerOffset = this.chartEditorState.get_currentVocalOffsetPlayer(); trackPlayer.set_time(trackPlayer._time - this.audioPreviewPlayerOffset); } var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { this.audioPreviewOpponentOffset = this.chartEditorState.get_currentVocalOffsetOpponent(); trackOpponent.set_time(trackOpponent._time - this.audioPreviewOpponentOffset); } } ,pauseAudioPreview: function() { this.audioPreviewTracks.pause(); } ,stopAudioPreview: function() { this.audioPreviewTracks.stop(); this.audioPreviewTracks.set_time(0); var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { this.audioPreviewInstrumentalOffset = this.chartEditorState.get_currentInstrumentalOffset(); trackInst.set_time(-this.audioPreviewInstrumentalOffset); } var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { this.audioPreviewPlayerOffset = this.chartEditorState.get_currentVocalOffsetPlayer(); trackPlayer.set_time(-this.audioPreviewPlayerOffset); } var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { this.audioPreviewOpponentOffset = this.chartEditorState.get_currentVocalOffsetOpponent(); trackOpponent.set_time(-this.audioPreviewOpponentOffset); } this.waveformScrollview.set_hscrollPos(0); this.set_playheadAbsolutePos(this.playheadSprite.get_width()); this.refresh(); this.addOffsetsToAudioPreview(); } ,zoomWaveformIn: function() { if(this.waveformScale > funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE) { this.waveformScale /= funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.WAVEFORM_ZOOM_MULT; if(this.waveformScale < funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE) { this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE; } this.set_playheadAbsolutePos(this.get_playheadAbsolutePos() * funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.WAVEFORM_ZOOM_MULT); var vaguelyCenterPlayheadOffset = this.waveformScrollview.get_width() / 8; this.waveformScrollview.set_hscrollPos(this.get_playheadAbsolutePos() - vaguelyCenterPlayheadOffset); this.refresh(); this.refreshTicks(); } else { this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE; } } ,zoomWaveformOut: function() { this.waveformScale *= funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.WAVEFORM_ZOOM_MULT; if(this.waveformScale < funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE) { this.waveformScale = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE; } this.set_playheadAbsolutePos(this.get_playheadAbsolutePos() / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.WAVEFORM_ZOOM_MULT); var vaguelyCenterPlayheadOffset = this.waveformScrollview.get_width() / 8; this.waveformScrollview.set_hscrollPos(this.get_playheadAbsolutePos() - vaguelyCenterPlayheadOffset); this.refresh(); this.refreshTicks(); } ,setTrackVolume: function(target,volume) { switch(target._hx_index) { case 0: var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { trackPlayer.set_volume(volume); } break; case 1: var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { trackOpponent.set_volume(volume); } break; case 2: var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { trackInst.set_volume(volume); } break; } } ,muteTrack: function(target) { switch(target._hx_index) { case 0: var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { trackPlayer.set_muted(true); this.offsetPlayerMute.set_text(trackPlayer.muted ? "Unmute" : "Mute"); } break; case 1: var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { trackOpponent.set_muted(true); this.offsetOpponentMute.set_text(trackOpponent.muted ? "Unmute" : "Mute"); } break; case 2: var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { trackInst.set_muted(true); this.offsetInstrumentalMute.set_text(trackInst.muted ? "Unmute" : "Mute"); } break; } } ,unmuteTrack: function(target) { switch(target._hx_index) { case 0: var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { trackPlayer.set_muted(false); this.offsetPlayerMute.set_text(trackPlayer.muted ? "Unmute" : "Mute"); } break; case 1: var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { trackOpponent.set_muted(false); this.offsetOpponentMute.set_text(trackOpponent.muted ? "Unmute" : "Mute"); } break; case 2: var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { trackInst.set_muted(false); this.offsetInstrumentalMute.set_text(trackInst.muted ? "Unmute" : "Mute"); } break; } } ,toggleMuteTrack: function(target) { switch(target._hx_index) { case 0: var trackPlayer = this.audioPreviewTracks.members[1]; if(trackPlayer != null) { trackPlayer.set_muted(!trackPlayer.muted); this.offsetPlayerMute.set_text(trackPlayer.muted ? "Unmute" : "Mute"); } break; case 1: var trackOpponent = this.audioPreviewTracks.members[2]; if(trackOpponent != null) { trackOpponent.set_muted(!trackOpponent.muted); this.offsetOpponentMute.set_text(trackOpponent.muted ? "Unmute" : "Mute"); } break; case 2: var trackInst = this.audioPreviewTracks.members[0]; if(trackInst != null) { trackInst.set_muted(!trackInst.muted); this.offsetInstrumentalMute.set_text(trackInst.muted ? "Unmute" : "Mute"); } break; } } ,soloTrack: function(target) { switch(target._hx_index) { case 0: this.muteTrack(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT); this.muteTrack(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL); this.unmuteTrack(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER); break; case 1: this.muteTrack(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER); this.muteTrack(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL); this.unmuteTrack(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT); break; case 2: this.muteTrack(funkin_ui_debug_charting_toolboxes_Waveform.PLAYER); this.muteTrack(funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT); this.unmuteTrack(funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL); break; } } ,update: function(elapsed) { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.update.call(this,elapsed); if(this.audioPreviewTracks.get_playing()) { haxe_Log.trace("Playback time: " + this.audioPreviewTracks.get_time(),{ fileName : "source/funkin/ui/debug/charting/toolboxes/ChartEditorOffsetsToolbox.hx", lineNumber : 709, className : "funkin.ui.debug.charting.toolboxes.ChartEditorOffsetsToolbox", methodName : "update"}); var targetScrollPos = this.waveformInstrumental.waveform.waveformData.secondsToIndex(this.audioPreviewTracks.get_time() / funkin_util_Constants.MS_PER_SEC) / (this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE * this.waveformMagicFactor); var prevPlayheadAbsolutePos = this.get_playheadAbsolutePos(); this.set_playheadAbsolutePos(targetScrollPos); var playheadDiff = this.get_playheadAbsolutePos() - prevPlayheadAbsolutePos; if(this.get_playheadAbsolutePos() < this.waveformScrollview.get_hscrollPos()) { var fh = this.waveformScrollview; fh.set_hscrollPos(fh.get_hscrollPos() - this.waveformScrollview.get_width()); } if(this.get_playheadAbsolutePos() > this.waveformScrollview.get_hscrollPos() + this.waveformScrollview.get_width()) { var fh = this.waveformScrollview; fh.set_hscrollPos(fh.get_hscrollPos() + this.waveformScrollview.get_width()); } } if(this.chartEditorState.get_currentInstrumentalOffset() != this.audioPreviewInstrumentalOffset) { var track = this.audioPreviewTracks.members[0]; if(track != null) { track.set_time(track._time + this.audioPreviewInstrumentalOffset); track.set_time(track._time - this.chartEditorState.get_currentInstrumentalOffset()); this.audioPreviewInstrumentalOffset = this.chartEditorState.get_currentInstrumentalOffset(); } } if(this.chartEditorState.get_currentVocalOffsetPlayer() != this.audioPreviewPlayerOffset) { var track = this.audioPreviewTracks.members[1]; if(track != null) { track.set_time(track._time + this.audioPreviewPlayerOffset); track.set_time(track._time - this.chartEditorState.get_currentVocalOffsetPlayer()); this.audioPreviewPlayerOffset = this.chartEditorState.get_currentVocalOffsetPlayer(); } } if(this.chartEditorState.get_currentVocalOffsetOpponent() != this.audioPreviewOpponentOffset) { var track = this.audioPreviewTracks.members[2]; if(track != null) { track.set_time(track._time + this.audioPreviewOpponentOffset); track.set_time(track._time - this.chartEditorState.get_currentVocalOffsetOpponent()); this.audioPreviewOpponentOffset = this.chartEditorState.get_currentVocalOffsetOpponent(); } } this.offsetLabelTime.set_text(this.formatTime(this.audioPreviewTracks.get_time() / funkin_util_Constants.MS_PER_SEC)); } ,refresh: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.refresh.call(this); var _this = this.waveformInstrumental.waveform.waveformData; this.waveformMagicFactor = funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MAGIC_SCALE_BASE_TIME / (this.chartEditorState.offsetTickBitmap.width / (_this.sampleRate / _this.samplesPerPoint)); var currentZoomFactor = this.waveformScale / funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE * this.waveformMagicFactor; var maxWidth = -1; this.offsetStepperPlayer.set_value(this.chartEditorState.get_currentVocalOffsetPlayer()); this.offsetStepperOpponent.set_value(this.chartEditorState.get_currentVocalOffsetOpponent()); this.offsetStepperInstrumental.set_value(this.chartEditorState.get_currentInstrumentalOffset()); this.waveformPlayer.waveform.set_time(-this.chartEditorState.get_currentVocalOffsetPlayer() / funkin_util_Constants.MS_PER_SEC); var tmp = this.waveformPlayer.waveform.waveformData; var tmp1 = tmp != null ? tmp.length : null; this.waveformPlayer.waveform.set_width((tmp1 != null ? tmp1 : 1000) / currentZoomFactor); if(this.waveformPlayer.waveform.get_width() > maxWidth) { maxWidth = this.waveformPlayer.waveform.get_width() | 0; } this.waveformPlayer.waveform.set_height(65); this.waveformOpponent.waveform.set_time(-this.chartEditorState.get_currentVocalOffsetOpponent() / funkin_util_Constants.MS_PER_SEC); var tmp = this.waveformOpponent.waveform.waveformData; var tmp1 = tmp != null ? tmp.length : null; this.waveformOpponent.waveform.set_width((tmp1 != null ? tmp1 : 1000) / currentZoomFactor); if(this.waveformOpponent.waveform.get_width() > maxWidth) { maxWidth = this.waveformOpponent.waveform.get_width() | 0; } this.waveformOpponent.waveform.set_height(65); this.waveformInstrumental.waveform.set_time(-this.chartEditorState.get_currentInstrumentalOffset() / funkin_util_Constants.MS_PER_SEC); var tmp = this.waveformInstrumental.waveform.waveformData; var tmp1 = tmp != null ? tmp.length : null; this.waveformInstrumental.waveform.set_width((tmp1 != null ? tmp1 : 1000) / currentZoomFactor); if(this.waveformInstrumental.waveform.get_width() > maxWidth) { maxWidth = this.waveformInstrumental.waveform.get_width() | 0; } this.waveformInstrumental.waveform.set_height(65); if(this.dragWaveform != null) { switch(this.dragWaveform._hx_index) { case 0: var fh = this.waveformPlayer.waveform; fh.set_time(fh.time - this.dragOffsetMs / funkin_util_Constants.MS_PER_SEC); var fh = this.offsetStepperPlayer; fh.set_value(fh.get_value() + this.dragOffsetMs); break; case 1: var fh = this.waveformOpponent.waveform; fh.set_time(fh.time - this.dragOffsetMs / funkin_util_Constants.MS_PER_SEC); var fh = this.offsetStepperOpponent; fh.set_value(fh.get_value() + this.dragOffsetMs); break; case 2: var fh = this.waveformInstrumental.waveform; fh.set_time(fh.time - this.dragOffsetMs / funkin_util_Constants.MS_PER_SEC); var fh = this.offsetStepperInstrumental; fh.set_value(fh.get_value() + this.dragOffsetMs); break; } } this.waveformPlayer.waveform.markDirty(); this.waveformOpponent.waveform.markDirty(); this.waveformInstrumental.waveform.markDirty(); this.waveformContainer.set_width(maxWidth); this.tickTiledSprite.set_width(maxWidth); } ,registerBehaviours: function() { funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_chartEditorState2: null ,self: function() { return new funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox(this._constructorParam_chartEditorState2); } ,offsetTicksSprite: null ,offsetPlayerVolume: null ,offsetPlayerSolo: null ,offsetPlayerMute: null ,offsetOpponentVolume: null ,offsetOpponentSolo: null ,offsetOpponentMute: null ,offsetLabelTime: null ,offsetInstrumentalVolume: null ,offsetInstrumentalSolo: null ,offsetInstrumentalMute: null ,__class__: funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox ,__properties__: $extend(funkin_ui_debug_charting_toolboxes_ChartEditorBaseToolbox.prototype.__properties__,{set_playheadRelativePos:"set_playheadRelativePos",get_playheadRelativePos:"get_playheadRelativePos",set_playheadAbsolutePos:"set_playheadAbsolutePos",get_playheadAbsolutePos:"get_playheadAbsolutePos"}) }); var funkin_ui_debug_charting_toolboxes_Waveform = $hxEnums["funkin.ui.debug.charting.toolboxes.Waveform"] = { __ename__:"funkin.ui.debug.charting.toolboxes.Waveform",__constructs__:null ,PLAYER: {_hx_name:"PLAYER",_hx_index:0,__enum__:"funkin.ui.debug.charting.toolboxes.Waveform",toString:$estr} ,OPPONENT: {_hx_name:"OPPONENT",_hx_index:1,__enum__:"funkin.ui.debug.charting.toolboxes.Waveform",toString:$estr} ,INSTRUMENTAL: {_hx_name:"INSTRUMENTAL",_hx_index:2,__enum__:"funkin.ui.debug.charting.toolboxes.Waveform",toString:$estr} }; funkin_ui_debug_charting_toolboxes_Waveform.__constructs__ = [funkin_ui_debug_charting_toolboxes_Waveform.PLAYER,funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT,funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL]; funkin_ui_debug_charting_toolboxes_Waveform.__empty_constructs__ = [funkin_ui_debug_charting_toolboxes_Waveform.PLAYER,funkin_ui_debug_charting_toolboxes_Waveform.OPPONENT,funkin_ui_debug_charting_toolboxes_Waveform.INSTRUMENTAL]; var funkin_ui_debug_charting_util_ChartEditorDropdowns = function() { }; $hxClasses["funkin.ui.debug.charting.util.ChartEditorDropdowns"] = funkin_ui_debug_charting_util_ChartEditorDropdowns; funkin_ui_debug_charting_util_ChartEditorDropdowns.__name__ = "funkin.ui.debug.charting.util.ChartEditorDropdowns"; funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithCharacters = function(dropDown,charType,startingCharId) { dropDown.get_dataSource().clear(); var charIds = funkin_play_character_CharacterDataParser.listCharacterIds(); var returnValue; switch(charType._hx_index) { case 0: returnValue = { id : "bf", text : "Boyfriend"}; break; case 1: returnValue = { id : "dad", text : "Daddy Dearest"}; break; default: dropDown.get_dataSource().add({ id : "none", text : ""}); returnValue = { id : "none", text : "None"}; } var _g = 0; while(_g < charIds.length) { var charId = charIds[_g]; ++_g; var character = funkin_play_character_CharacterDataParser.fetchCharacterData(charId); if(character == null) { continue; } var value = { id : charId, text : character.name}; if(startingCharId == charId) { returnValue = value; } dropDown.get_dataSource().add(value); } dropDown.get_dataSource().sort("text","asc"); return returnValue; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithStages = function(dropDown,startingStageId) { dropDown.get_dataSource().clear(); var stageIds = funkin_data_stage_StageRegistry.get_instance().listEntryIds(); var returnValue = { id : "mainStage", text : "Main Stage"}; var _g = 0; while(_g < stageIds.length) { var stageId = stageIds[_g]; ++_g; var stage = funkin_data_stage_StageRegistry.get_instance().fetchEntry(stageId); if(stage == null) { continue; } var value = { id : stage.id, text : stage.get_stageName()}; if(startingStageId == stageId) { returnValue = value; } dropDown.get_dataSource().add(value); } dropDown.get_dataSource().sort("text","asc"); return returnValue; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithSongEvents = function(dropDown,startingEventId) { dropDown.get_dataSource().clear(); var returnValue = { id : "FocusCamera", text : "Focus Camera"}; var songEvents = funkin_data_event_SongEventRegistry.listEvents(); var _g = 0; while(_g < songEvents.length) { var event = songEvents[_g]; ++_g; var value = { id : event.id, text : event.getTitle()}; if(startingEventId == event.id) { returnValue = value; } dropDown.get_dataSource().add(value); } dropDown.get_dataSource().sort("text","asc"); return returnValue; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.findDropdownElement = function(id,dropDown) { var _g = 0; var _g1 = dropDown.get_dataSource().get_size(); while(_g < _g1) { var entryIndex = _g++; var entry = dropDown.get_dataSource().get(entryIndex); if(entry.id == id) { return entry; } } return null; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithNoteStyles = function(dropDown,startingStyleId) { dropDown.get_dataSource().clear(); var noteStyleIds = funkin_data_notestyle_NoteStyleRegistry.get_instance().listEntryIds(); var returnValue = { id : "funkin", text : "Funkin'"}; var _g = 0; while(_g < noteStyleIds.length) { var noteStyleId = noteStyleIds[_g]; ++_g; var noteStyle = funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchEntry(noteStyleId); if(noteStyle == null) { continue; } var value = { id : noteStyleId, text : noteStyle.getName()}; if(startingStyleId == noteStyleId) { returnValue = value; } dropDown.get_dataSource().add(value); } dropDown.get_dataSource().sort("text","asc"); return returnValue; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithNoteKinds = function(dropDown,startingKindId) { dropDown.get_dataSource().clear(); var returnValue = funkin_ui_debug_charting_util_ChartEditorDropdowns.lookupNoteKind("~CUSTOM"); var h = funkin_ui_debug_charting_util_ChartEditorDropdowns.NOTE_KINDS.h; var noteKindId_h = h; var noteKindId_keys = Object.keys(h); var noteKindId_length = noteKindId_keys.length; var noteKindId_current = 0; while(noteKindId_current < noteKindId_length) { var noteKindId = noteKindId_keys[noteKindId_current++]; var tmp = funkin_ui_debug_charting_util_ChartEditorDropdowns.NOTE_KINDS.h[noteKindId]; var noteKind = tmp != null ? tmp : "Default"; var value = { id : noteKindId, text : noteKind}; if(startingKindId == noteKindId) { returnValue = value; } dropDown.get_dataSource().add(value); } dropDown.get_dataSource().sort("id","asc"); return returnValue; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.lookupNoteKind = function(noteKindId) { if(noteKindId == null) { return funkin_ui_debug_charting_util_ChartEditorDropdowns.lookupNoteKind(""); } if(!Object.prototype.hasOwnProperty.call(funkin_ui_debug_charting_util_ChartEditorDropdowns.NOTE_KINDS.h,noteKindId)) { return { id : "~CUSTOM~", text : "Custom"}; } var tmp = noteKindId; var tmp1 = funkin_ui_debug_charting_util_ChartEditorDropdowns.NOTE_KINDS.h[noteKindId]; return { id : tmp != null ? tmp : "", text : tmp1 != null ? tmp1 : "Default"}; }; funkin_ui_debug_charting_util_ChartEditorDropdowns.populateDropdownWithVariations = function(dropDown,state,includeNone) { if(includeNone == null) { includeNone = true; } dropDown.get_dataSource().clear(); var variationIds = state.get_availableVariations(); if(includeNone) { dropDown.get_dataSource().add({ id : "none", text : ""}); } var returnValue = includeNone ? { id : "none", text : ""} : { id : "default", text : "Default"}; var _g = 0; while(_g < variationIds.length) { var variationId = variationIds[_g]; ++_g; dropDown.get_dataSource().add({ id : variationId, text : funkin_util_tools_StringTools.toTitleCase(variationId)}); } dropDown.get_dataSource().sort("text","asc"); return returnValue; }; var funkin_ui_debug_dialogue_ConversationDebugState = function() { this.conversationId = "senpai"; funkin_ui_MusicBeatState.call(this); funkin_Paths.setCurrentLevel("week6"); }; $hxClasses["funkin.ui.debug.dialogue.ConversationDebugState"] = funkin_ui_debug_dialogue_ConversationDebugState; funkin_ui_debug_dialogue_ConversationDebugState.__name__ = "funkin.ui.debug.dialogue.ConversationDebugState"; funkin_ui_debug_dialogue_ConversationDebugState.__super__ = funkin_ui_MusicBeatState; funkin_ui_debug_dialogue_ConversationDebugState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ conversationId: null ,conversation: null ,create: function() { funkin_ui_MusicBeatState.prototype.create.call(this); this.startConversation(); } ,startConversation: function() { if(this.conversation != null) { return; } this.conversation = funkin_data_dialogue_conversation_ConversationRegistry.get_instance().fetchEntry(this.conversationId); if(this.conversation == null) { return; } if(!this.conversation.alive) { this.conversation.revive(); } this.conversation.zIndex = 1000; this.add(this.conversation); this.refresh(); var event = new funkin_modding_events_ScriptEvent("CREATE",false); funkin_modding_events_ScriptEventDispatcher.callEvent(this.conversation,event); } ,onConversationComplete: function() { this.remove(this.conversation); this.conversation = null; } ,dispatchEvent: function(event) { funkin_modding_events_ScriptEventDispatcher.callEvent(this.conversation,event); } ,update: function(elapsed) { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); if(this.conversation != null) { if(funkin_PlayerSettings.player1.controls._cutscene_advance.check()) { this.conversation.advanceConversation(); } else if(funkin_PlayerSettings.player1.controls._pause.check()) { this.conversation.kill(); this.remove(this.conversation); this.conversation = null; var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_debug_dialogue_ConversationDebugState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } } ,__class__: funkin_ui_debug_dialogue_ConversationDebugState }); var funkin_ui_debug_latency_CoolStatsGraph = function(X,Y,Width,Height,GraphColor,Unit,LabelWidth,Label) { if(LabelWidth == null) { LabelWidth = 45; } this.history = []; this.maxValue = 0.0000000000000001; this.minValue = 1.79e+308; openfl_display_Sprite.call(this); this.set_x(X); this.set_y(Y); this._width = Width - LabelWidth; this._height = Height; this.graphColor = GraphColor; this._unit = Unit; this._labelWidth = LabelWidth; this._label = Label == null ? "" : Label; this._axis = new openfl_display_Shape(); this._axis.set_x(this._labelWidth + 10); this.maxLabel = flixel_system_debug_DebuggerUtil.createTextField(0,0,-1426063361,11); this.curLabel = flixel_system_debug_DebuggerUtil.createTextField(0,this._height / 2 - 5.5,this.graphColor,11); this.minLabel = flixel_system_debug_DebuggerUtil.createTextField(0,this._height - 11,-1426063361,11); this.avgLabel = flixel_system_debug_DebuggerUtil.createTextField(this._labelWidth + 20,this._height / 2 - 5.5 - 10,-1426063361,11); this.avgLabel.set_width(this._width); this.avgLabel.get_defaultTextFormat().align = 0; this.avgLabel.set_alpha(0.5); this.addChild(this._axis); this.addChild(this.maxLabel); this.addChild(this.curLabel); this.addChild(this.minLabel); this.addChild(this.avgLabel); this.drawAxes(); }; $hxClasses["funkin.ui.debug.latency.CoolStatsGraph"] = funkin_ui_debug_latency_CoolStatsGraph; funkin_ui_debug_latency_CoolStatsGraph.__name__ = "funkin.ui.debug.latency.CoolStatsGraph"; funkin_ui_debug_latency_CoolStatsGraph.__super__ = openfl_display_Sprite; funkin_ui_debug_latency_CoolStatsGraph.prototype = $extend(openfl_display_Sprite.prototype,{ minLabel: null ,curLabel: null ,maxLabel: null ,avgLabel: null ,minValue: null ,maxValue: null ,graphColor: null ,history: null ,_axis: null ,_width: null ,_height: null ,_unit: null ,_labelWidth: null ,_label: null ,drawAxes: function() { var gfx = this._axis.get_graphics(); gfx.clear(); gfx.lineStyle(1,16777215,0.5); gfx.moveTo(0,0); gfx.lineTo(0,this._height); gfx.moveTo(0,this._height); gfx.lineTo(this._width,this._height); } ,drawGraph: function() { var gfx = this.get_graphics(); gfx.clear(); gfx.lineStyle(1,this.graphColor,1); var inc = this._width / 499; var range = Math.max(this.maxValue - this.minValue,this.maxValue * 0.1); var graphX = this._axis.get_x() + 1; var _g = 0; var _g1 = this.history.length; while(_g < _g1) { var i = _g++; var value = (this.history[i] - this.minValue) / range; var pointY = -value * this._height - 1 + this._height; if(i == 0) { gfx.moveTo(graphX,this._axis.get_y() + pointY); } gfx.lineTo(graphX + i * inc,pointY); } } ,update: function(Value) { this.history.unshift(Value); if(this.history.length > 500) { this.history.pop(); } this.maxValue = Math.max(this.maxValue,Value); this.minValue = Math.min(this.minValue,Value); this.minLabel.set_text(this.formatValue(this.minValue)); this.curLabel.set_text(this.formatValue(Value)); this.maxLabel.set_text(this.formatValue(this.maxValue)); this.avgLabel.set_text(this._label + "\nAvg: " + this.formatValue(this.average())); this.drawGraph(); } ,formatValue: function(value) { return flixel_math_FlxMath.roundDecimal(value,1) + " " + this._unit; } ,average: function() { var sum = 0; var _g = 0; var _g1 = this.history; while(_g < _g1.length) { var value = _g1[_g]; ++_g; sum += value; } return sum / this.history.length; } ,destroy: function() { this._axis = flixel_util_FlxDestroyUtil.removeChild(this,this._axis); this.minLabel = flixel_util_FlxDestroyUtil.removeChild(this,this.minLabel); this.curLabel = flixel_util_FlxDestroyUtil.removeChild(this,this.curLabel); this.maxLabel = flixel_util_FlxDestroyUtil.removeChild(this,this.maxLabel); this.avgLabel = flixel_util_FlxDestroyUtil.removeChild(this,this.avgLabel); this.history = null; } ,__class__: funkin_ui_debug_latency_CoolStatsGraph }); var funkin_ui_debug_latency_LatencyState = function(bgColor) { this.offsetsPerBeat = []; this.noteGrp = []; funkin_ui_MusicBeatSubState.call(this,bgColor); }; $hxClasses["funkin.ui.debug.latency.LatencyState"] = funkin_ui_debug_latency_LatencyState; funkin_ui_debug_latency_LatencyState.__name__ = "funkin.ui.debug.latency.LatencyState"; funkin_ui_debug_latency_LatencyState.__super__ = funkin_ui_MusicBeatSubState; funkin_ui_debug_latency_LatencyState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ visualOffsetText: null ,offsetText: null ,noteGrp: null ,strumLine: null ,blocks: null ,songPosVis: null ,songVisFollowVideo: null ,songVisFollowAudio: null ,beatTrail: null ,diffGrp: null ,offsetsPerBeat: null ,swagSong: null ,previousVolume: null ,stateCamera: null ,localConductor: null ,prevPersistentDraw: null ,prevPersistentUpdate: null ,create: function() { funkin_ui_MusicBeatSubState.prototype.create.call(this); this.prevPersistentDraw = flixel_FlxG.game._state.persistentDraw; this.prevPersistentUpdate = flixel_FlxG.game._state.persistentUpdate; flixel_FlxG.game._state.persistentDraw = false; flixel_FlxG.game._state.persistentUpdate = false; this.localConductor = new funkin_Conductor(); this.set_conductorInUse(this.localConductor); this.stateCamera = new flixel_FlxCamera(0,0,flixel_FlxG.width,flixel_FlxG.height); this.stateCamera.bgColor = -16777216; flixel_FlxG.cameras.add(this.stateCamera); var bg = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,flixel_FlxG.height,-16777216); this.add(bg); if(flixel_FlxG.sound.music != null) { this.previousVolume = flixel_FlxG.sound.music._volume; flixel_FlxG.sound.music.set_volume(0); } else { this.previousVolume = 1; } this.swagSong = new funkin_ui_debug_latency_HomemadeMusic(); this.swagSong.loadEmbedded(funkin_Paths.sound("soundTest"),true); this.swagSong.looped = true; this.swagSong.play(); flixel_FlxG.sound.list.add(this.swagSong); funkin_input_PreciseInputManager.get_instance().onInputPressed.add($bind(this,this.preciseInputPressed)); funkin_input_PreciseInputManager.get_instance().onInputReleased.add($bind(this,this.preciseInputReleased)); this.localConductor.forceBPM(60); funkin_Conductor.get_instance().forceBPM(60); this.diffGrp = new flixel_group_FlxTypedGroup(); this.add(this.diffGrp); var _g = 0; var _g1 = Math.floor(this.swagSong._length / (this.localConductor.get_stepLengthMs() * 2)); while(_g < _g1) { var beat = _g++; var beatTick = new flixel_FlxSprite(this.songPosToX(beat * (this.localConductor.get_stepLengthMs() * 2)),flixel_FlxG.height - 15); beatTick.makeGraphic(2,15); beatTick.set_alpha(0.3); this.add(beatTick); var offsetTxt = new flixel_text_FlxText(this.songPosToX(beat * (this.localConductor.get_stepLengthMs() * 2)),flixel_FlxG.height - 26,0,""); offsetTxt.set_alpha(0.5); this.diffGrp.add(offsetTxt); this.offsetsPerBeat.push(null); } this.songVisFollowAudio = new flixel_FlxSprite(0,flixel_FlxG.height - 20).makeGraphic(2,20,-256); this.add(this.songVisFollowAudio); this.songVisFollowVideo = new flixel_FlxSprite(0,flixel_FlxG.height - 20).makeGraphic(2,20,-16776961); this.add(this.songVisFollowVideo); this.songPosVis = new flixel_FlxSprite(0,flixel_FlxG.height - 20).makeGraphic(2,20,-65536); this.add(this.songPosVis); this.beatTrail = new flixel_FlxSprite(0,this.songPosVis.y).makeGraphic(2,20,-8388480); this.beatTrail.set_alpha(0.7); this.add(this.beatTrail); this.blocks = new flixel_group_FlxTypedGroup(); this.add(this.blocks); var _g = 0; while(_g < 8) { var i = _g++; var block = new flixel_FlxSprite(2,(flixel_FlxG.height / 8 + 2) * i).makeGraphic(flixel_FlxG.height / 8 | 0,flixel_FlxG.height / 8 - 4 | 0); block.set_alpha(0.1); this.blocks.add(block); } var strumlineBG = new flixel_FlxSprite(); this.add(strumlineBG); this.strumLine = new funkin_play_notes_Strumline(funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchDefault(),true); this.strumLine.set_conductorInUse(this.localConductor); var _this = this.strumLine; if(17 == 1 || 17 == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(17 == 16 || 17 == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } this.add(this.strumLine); strumlineBG.set_x(this.strumLine.x); strumlineBG.makeGraphic(this.strumLine.get_width() | 0,flixel_FlxG.height,-1); strumlineBG.set_alpha(0.1); this.visualOffsetText = new flixel_text_FlxText(); this.visualOffsetText.setFormat(funkin_Paths.font("vcr.ttf"),20); this.visualOffsetText.set_x(flixel_FlxG.height / 8 + 10); this.visualOffsetText.set_y(10); this.visualOffsetText.set_fieldWidth(this.strumLine.x - this.visualOffsetText.x - 10); this.add(this.visualOffsetText); this.offsetText = new flixel_text_FlxText(); this.offsetText.setFormat(funkin_Paths.font("vcr.ttf"),20); this.offsetText.set_x(this.strumLine.x + this.strumLine.get_width() + 10); this.offsetText.set_y(10); this.offsetText.set_fieldWidth(flixel_FlxG.width - this.offsetText.x - 10); this.add(this.offsetText); var helpText = new flixel_text_FlxText(); helpText.setFormat(funkin_Paths.font("vcr.ttf"),20); helpText.set_text("Press BACK to return to main menu"); helpText.set_x(flixel_FlxG.width - helpText.get_width()); helpText.set_y(flixel_FlxG.height - helpText.get_height() * 2 - 2); this.add(helpText); this.regenNoteData(); } ,preciseInputPressed: function(event) { this.generateBeatStuff(event); this.strumLine.pressKey(event.noteDirection); this.strumLine.playPress(event.noteDirection); } ,preciseInputReleased: function(event) { this.strumLine.playStatic(event.noteDirection); this.strumLine.releaseKey(event.noteDirection); } ,close: function() { funkin_input_PreciseInputManager.get_instance().onInputPressed.remove($bind(this,this.preciseInputPressed)); funkin_input_PreciseInputManager.get_instance().onInputReleased.remove($bind(this,this.preciseInputReleased)); flixel_FlxG.sound.music.set_volume(this.previousVolume); var _this = this.swagSong; _this.cleanup(_this.autoDestroy,true); flixel_FlxG.sound.list.remove(this.swagSong); flixel_FlxG.cameras.remove(this.stateCamera); flixel_FlxG.game._state.persistentDraw = this.prevPersistentDraw; flixel_FlxG.game._state.persistentUpdate = this.prevPersistentUpdate; funkin_ui_MusicBeatSubState.prototype.close.call(this); } ,regenNoteData: function() { var _g = 0; while(_g < 32) { var i = _g++; var note = funkin_data_song_SongNoteData._new(this.localConductor.get_stepLengthMs() * 2 * i,1); this.noteGrp.push(note); } this.strumLine.applyNoteData(this.noteGrp); } ,stepHit: function() { if(this.localConductor.currentStep % 4 == 2) { this.blocks.members[(this.localConductor.currentBeat % 8 + 1) % 8].set_alpha(0.5); } return funkin_ui_MusicBeatSubState.prototype.stepHit.call(this); } ,beatHit: function() { if(this.localConductor.currentBeat % 8 == 0) { this.blocks.forEach(function(blok) { blok.set_alpha(0.1); }); } this.blocks.members[this.localConductor.currentBeat % 8].set_alpha(1); return funkin_ui_MusicBeatSubState.prototype.beatHit.call(this); } ,update: function(elapsed) { this.localConductor.update(this.swagSong._time,false); this.songPosVis.set_x(this.songPosToX(this.localConductor.songPosition)); this.songVisFollowAudio.set_x(this.songPosToX(this.localConductor.songPosition - this.localConductor.get_audioVisualOffset())); this.songVisFollowVideo.set_x(this.songPosToX(this.localConductor.songPosition - this.localConductor.get_inputOffset())); this.visualOffsetText.set_text("Visual Offset: " + this.localConductor.get_audioVisualOffset() + "ms"); var fh = this.visualOffsetText; fh.set_text(fh.text + "\n\nYou can press SPACE+Left/Right to change this value."); var fh = this.visualOffsetText; fh.set_text(fh.text + "\n\nYou can hold SHIFT to step 1ms at a time"); this.offsetText.set_text("INPUT Offset (Left/Right to change): " + this.localConductor.get_inputOffset() + "ms"); var fh = this.offsetText; fh.set_text(fh.text + "\n\nYou can hold SHIFT to step 1ms at a time"); var avgOffsetInput = 0; var loopInd = 0; var _g = 0; var _g1 = this.offsetsPerBeat; while(_g < _g1.length) { var offsetThing = _g1[_g]; ++_g; if(offsetThing == null) { continue; } avgOffsetInput += offsetThing; ++loopInd; } avgOffsetInput /= loopInd; var fh = this.offsetText; fh.set_text(fh.text + ("\n\nEstimated average input offset needed: " + avgOffsetInput)); var multiply = 10; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(16,_this.status)) { multiply = 1; } var tmp; var _this = flixel_FlxG.keys.pressed; if(!_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.pressed; tmp = _this.keyManager.checkStatusUnsafe(32,_this.status); } else { tmp = true; } if(tmp) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { var fh = this.localConductor; fh.set_audioVisualOffset(fh.get_audioVisualOffset() + multiply); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { var fh = this.localConductor; fh.set_audioVisualOffset(fh.get_audioVisualOffset() - multiply); } } else if(flixel_FlxG.keys.checkKeyArrayState([37,39],2)) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { var fh = this.localConductor; fh.set_inputOffset(fh.get_inputOffset() + multiply); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { var fh = this.localConductor; fh.set_inputOffset(fh.get_inputOffset() - multiply); } this.offsetsPerBeat = []; this.diffGrp.forEach(function(memb) { memb.set_text(""); }); } if(funkin_PlayerSettings.player1.controls._back.check()) { this.close(); } funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); } ,generateBeatStuff: function(event) { var a = funkin_input_PreciseInputManager.getCurrentTimestamp(); var b = event.timestamp; var high = a.high - b.high | 0; var low = a.low - b.low | 0; if(haxe_Int32.ucompare(a.low,b.low) < 0) { var ret = high--; high = high | 0; } var x_high = high; var x_low = low; if(x_high != x_low >> 31) { throw haxe_Exception.thrown("Overflow"); } var inputLatencyMs = x_low / 1000.0 / 1000.0; var closestBeat = Math.round(this.localConductor.getTimeWithDiff(this.swagSong) / (this.localConductor.get_stepLengthMs() * 2)) % this.diffGrp.members.length; var getDiff = this.localConductor.getTimeWithDiff(this.swagSong) - closestBeat * (this.localConductor.get_stepLengthMs() * 2); getDiff -= inputLatencyMs; getDiff -= this.localConductor.get_audioVisualOffset(); if(closestBeat == 0 && getDiff >= this.localConductor.get_stepLengthMs() * 2) { getDiff -= this.swagSong._length; } this.beatTrail.set_x(this.songPosVis.x); this.diffGrp.members[closestBeat].set_text(getDiff + "ms"); this.offsetsPerBeat[closestBeat] = Math.round(getDiff); } ,songPosToX: function(pos) { return flixel_math_FlxMath.remapToRange(pos,0,this.swagSong._length,0,flixel_FlxG.width); } ,__class__: funkin_ui_debug_latency_LatencyState }); var funkin_ui_debug_latency_HomemadeMusic = function() { this.prevTime = 0; this.prevTimestamp = 0; flixel_sound_FlxSound.call(this); }; $hxClasses["funkin.ui.debug.latency.HomemadeMusic"] = funkin_ui_debug_latency_HomemadeMusic; funkin_ui_debug_latency_HomemadeMusic.__name__ = "funkin.ui.debug.latency.HomemadeMusic"; funkin_ui_debug_latency_HomemadeMusic.__super__ = flixel_sound_FlxSound; funkin_ui_debug_latency_HomemadeMusic.prototype = $extend(flixel_sound_FlxSound.prototype,{ prevTimestamp: null ,prevTime: null ,update: function(elapsed) { flixel_sound_FlxSound.prototype.update.call(this,elapsed); if(this.prevTime != this._time) { this.prevTime = this._time; this.prevTimestamp = new Date().getTime() / 1000 * 1000 | 0; } } ,getTimeWithDiff: function() { return this._time + ((new Date().getTime() / 1000 * 1000 | 0) - this.prevTimestamp); } ,__class__: funkin_ui_debug_latency_HomemadeMusic }); var funkin_ui_debug_stage_SprStage = function(x,y,dragShitFunc) { if(y == null) { y = 0; } if(x == null) { x = 0; } var x1 = 0; var y1 = 0; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x11 = x1; var y11 = y1; if(y11 == null) { y11 = 0; } if(x11 == null) { x11 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x11,y11); point._inPool = false; this.oldPos = point; var x1 = 0; var y1 = 0; if(y1 == null) { y1 = 0; } if(x1 == null) { x1 = 0; } var x11 = x1; var y11 = y1; if(y11 == null) { y11 = 0; } if(x11 == null) { x11 = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x11,y11); point._inPool = false; this.mouseOffset = point; this.mousePressing = false; this.layer = 0; this.imgName = ""; var _gthis = this; flixel_FlxSprite.call(this,x,y); var mouseChildren = false; var mouseEnabled = true; var pixelPerfect = true; if(pixelPerfect == null) { pixelPerfect = true; } if(mouseEnabled == null) { mouseEnabled = true; } if(mouseChildren == null) { mouseChildren = false; } flixel_input_mouse_FlxMouseEvent.globalManager.add(this,dragShitFunc,null,function(spr) { if(_gthis.isSelected() || funkin_ui_debug_stage_StageBuilderState.curTool == funkin_ui_debug_stage_TOOLS.SELECT) { _gthis.set_alpha(0.5); } },function(spr) { _gthis.set_alpha(1); },mouseChildren,mouseEnabled,pixelPerfect,null); }; $hxClasses["funkin.ui.debug.stage.SprStage"] = funkin_ui_debug_stage_SprStage; funkin_ui_debug_stage_SprStage.__name__ = "funkin.ui.debug.stage.SprStage"; funkin_ui_debug_stage_SprStage.__super__ = flixel_FlxSprite; funkin_ui_debug_stage_SprStage.prototype = $extend(flixel_FlxSprite.prototype,{ imgName: null ,layer: null ,mousePressing: null ,mouseOffset: null ,oldPos: null ,isSelected: function() { return funkin_ui_debug_stage_StageBuilderState.curSelectedSpr == this; } ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); if(this.mousePressing && this.isSelected()) { this.set_x(flixel_FlxG.mouse.x - this.mouseOffset.x); this.set_y(flixel_FlxG.mouse.y - this.mouseOffset.y); } if(flixel_FlxG.mouse._leftButton.current == -1) { this.mousePressing = false; funkin_ui_debug_stage_StageBuilderState.changeTool(funkin_ui_debug_stage_TOOLS.GRAB); } } ,__class__: funkin_ui_debug_stage_SprStage }); var funkin_ui_debug_stage_CharStage = function(x,y,dragShitFunc) { funkin_ui_debug_stage_SprStage.call(this,x,y,dragShitFunc); }; $hxClasses["funkin.ui.debug.stage.CharStage"] = funkin_ui_debug_stage_CharStage; funkin_ui_debug_stage_CharStage.__name__ = "funkin.ui.debug.stage.CharStage"; funkin_ui_debug_stage_CharStage.__super__ = funkin_ui_debug_stage_SprStage; funkin_ui_debug_stage_CharStage.prototype = $extend(funkin_ui_debug_stage_SprStage.prototype,{ __class__: funkin_ui_debug_stage_CharStage }); var funkin_ui_debug_stage_TOOLS = $hxEnums["funkin.ui.debug.stage.TOOLS"] = { __ename__:"funkin.ui.debug.stage.TOOLS",__constructs__:null ,SELECT: {_hx_name:"SELECT",_hx_index:0,__enum__:"funkin.ui.debug.stage.TOOLS",toString:$estr} ,MOVE: {_hx_name:"MOVE",_hx_index:1,__enum__:"funkin.ui.debug.stage.TOOLS",toString:$estr} ,GRAB: {_hx_name:"GRAB",_hx_index:2,__enum__:"funkin.ui.debug.stage.TOOLS",toString:$estr} ,GRABBING: {_hx_name:"GRABBING",_hx_index:3,__enum__:"funkin.ui.debug.stage.TOOLS",toString:$estr} ,BOYFRIEND: {_hx_name:"BOYFRIEND",_hx_index:4,__enum__:"funkin.ui.debug.stage.TOOLS",toString:$estr} }; funkin_ui_debug_stage_TOOLS.__constructs__ = [funkin_ui_debug_stage_TOOLS.SELECT,funkin_ui_debug_stage_TOOLS.MOVE,funkin_ui_debug_stage_TOOLS.GRAB,funkin_ui_debug_stage_TOOLS.GRABBING,funkin_ui_debug_stage_TOOLS.BOYFRIEND]; funkin_ui_debug_stage_TOOLS.__empty_constructs__ = [funkin_ui_debug_stage_TOOLS.SELECT,funkin_ui_debug_stage_TOOLS.MOVE,funkin_ui_debug_stage_TOOLS.GRAB,funkin_ui_debug_stage_TOOLS.GRABBING,funkin_ui_debug_stage_TOOLS.BOYFRIEND]; var funkin_ui_debug_stage_StageBuilderState = function() { this.shakePos = new flixel_math_FlxBasePoint(0,0); this.shakeIntensity = 60; this.isShaking = false; this.posQueue = []; this.actionQueue = []; this.isUndoRedo = false; this.curFocus = funkin_ui_debug_stage_FOCUS.MOVEMENTS; this.tempTool = funkin_ui_debug_stage_TOOLS.SELECT; funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.ui.debug.stage.StageBuilderState"] = funkin_ui_debug_stage_StageBuilderState; funkin_ui_debug_stage_StageBuilderState.__name__ = "funkin.ui.debug.stage.StageBuilderState"; funkin_ui_debug_stage_StageBuilderState.curSelectedSpr = null; funkin_ui_debug_stage_StageBuilderState.changeTool = function(newTool) { funkin_ui_debug_stage_StageBuilderState.curTool = newTool; switch(funkin_ui_debug_stage_StageBuilderState.curTool._hx_index) { case 0: flixel_FlxG.mouse.load(new flixel_FlxSprite().loadGraphic(funkin_Paths.image("stageBuild/cursorSelect")).get_pixels()); break; case 2: flixel_FlxG.mouse.load(new flixel_FlxSprite().loadGraphic(funkin_Paths.image("stageBuild/cursorGrab")).get_pixels()); break; case 3: flixel_FlxG.mouse.load(new flixel_FlxSprite().loadGraphic(funkin_Paths.image("stageBuild/cursorGrabbing")).get_pixels()); break; default: haxe_Log.trace("swag",{ fileName : "source/funkin/ui/debug/stage/StageBuilderState.hx", lineNumber : 316, className : "funkin.ui.debug.stage.StageBuilderState", methodName : "changeTool"}); } }; funkin_ui_debug_stage_StageBuilderState.__super__ = funkin_ui_MusicBeatState; funkin_ui_debug_stage_StageBuilderState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ hudGrp: null ,textInfo: null ,sprGrp: null ,hudCam: null ,create: function() { this.hudCam = new flixel_FlxCamera(); this.hudCam.bgColor &= 16777215; this.hudCam.bgColor |= 0; flixel_FlxG.cameras.add(this.hudCam,false); funkin_ui_MusicBeatState.prototype.create.call(this); flixel_FlxG.mouse.set_visible(true); var bg = flixel_addons_display_FlxGridOverlay.create(10,10); this.add(bg); this.sprGrp = new flixel_group_FlxTypedGroup(); this.add(this.sprGrp); this.hudGrp = new flixel_group_FlxTypedGroup(); this.hudGrp.set_cameras([this.hudCam]); this.add(this.hudGrp); this.textInfo = new flixel_text_FlxText(10,80,0,"",24); this.textInfo.setFormat(funkin_Paths.font("vcr.ttf"),20,-1,"left",flixel_text_FlxTextBorderStyle.OUTLINE,-16777216); var this1 = this.textInfo.scrollFactor; this1.set_x(0); this1.set_y(0); this.hudGrp.add(this.textInfo); var imgBtn = new flixel_ui_FlxButton(20,20,"Load Image",$bind(this,this.loadImage)); this.hudGrp.add(imgBtn); var saveSceneBtn = new flixel_ui_FlxButton(20,50,"Save Scene",$bind(this,this.saveScene)); this.hudGrp.add(saveSceneBtn); } ,loadImage: function() { } ,saveScene: function() { } ,tempTool: null ,update: function(elapsed) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(72,_this.status)) { this.hudGrp.set_visible(!this.hudGrp.visible); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(27,_this.status)) { if(this.curFocus == funkin_ui_debug_stage_FOCUS.ATTRIBUTES) { this.curFocus = funkin_ui_debug_stage_FOCUS.MOVEMENTS; } else { this.curFocus = funkin_ui_debug_stage_FOCUS.ATTRIBUTES; } } switch(this.curFocus._hx_index) { case 0: this.attributeControls(); break; case 1: this.movementControls(); break; default: } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(46,_this.status)) { if(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr != null) { this.sprGrp.remove(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr,true); } } funkin_util_MouseUtil.mouseCamDrag(); var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { funkin_util_MouseUtil.mouseWheelZoom(); } if(this.isShaking) { openfl_Lib.get_current().stage.window.set_x(this.shakePos.x + flixel_FlxG.random.float(-1,1) * this.shakeIntensity | 0); openfl_Lib.get_current().stage.window.set_y(this.shakePos.y + flixel_FlxG.random.float(-1,1) * this.shakeIntensity | 0); this.shakeIntensity -= 30 * elapsed; if(this.shakeIntensity <= 0) { this.isShaking = false; this.shakeIntensity = 60; openfl_Lib.get_current().stage.window.set_x(this.shakePos.x | 0); openfl_Lib.get_current().stage.window.set_y(this.shakePos.y | 0); } } if(funkin_ui_debug_stage_StageBuilderState.curTool == funkin_ui_debug_stage_TOOLS.GRABBING && flixel_FlxG.mouse._leftButton.current == -1) { this.moveSprPos([funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.x - funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.oldPos.x,funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.y - funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.oldPos.y]); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(90,_this.status) && this.actionQueue.length > 0) { this.isUndoRedo = true; var daFunc = this.actionQueue.pop(); var daValue = this.posQueue.pop(); daFunc(daValue); } funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); } ,attributeControls: function() { this.textInfo.set_alpha(1); var tmp; var _this = flixel_FlxG.keys.justPressed; if(!_this.keyManager.checkStatusUnsafe(37,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(39,_this.status); } else { tmp = true; } if(tmp) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { var fh = funkin_ui_debug_stage_StageBuilderState.curSelectedSpr; fh.scrollFactor.set_x(fh.scrollFactor.x - 0.1); var fh = funkin_ui_debug_stage_StageBuilderState.curSelectedSpr; fh.scrollFactor.set_y(fh.scrollFactor.y - 0.1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { var fh = funkin_ui_debug_stage_StageBuilderState.curSelectedSpr; fh.scrollFactor.set_x(fh.scrollFactor.x + 0.1); var fh = funkin_ui_debug_stage_StageBuilderState.curSelectedSpr; fh.scrollFactor.set_y(fh.scrollFactor.y + 0.1); } this.updateTextInfo(); } } ,movementControls: function() { this.textInfo.set_alpha(0.5); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { this.tempTool = funkin_ui_debug_stage_StageBuilderState.curTool; funkin_ui_debug_stage_StageBuilderState.changeTool(funkin_ui_debug_stage_TOOLS.SELECT); } var _this = flixel_FlxG.keys.justReleased; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { funkin_ui_debug_stage_StageBuilderState.changeTool(this.tempTool); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(86,_this.status)) { funkin_ui_debug_stage_StageBuilderState.changeTool(funkin_ui_debug_stage_TOOLS.SELECT); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(82,_this.status)) { this.shakingScreen(); openfl_Lib.get_current().stage.window.set_title("YOU WILL DIE"); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { this.moveSprPos([1,0,true]); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { this.moveSprPos([-1,0,true]); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { this.moveSprPos([0,-1,true]); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { this.moveSprPos([0,1,true]); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(219,_this.status)) { if(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr != null) { this.moveLayer(1); } } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(221,_this.status)) { if(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr != null) { this.moveLayer(-1); } } } ,curFocus: null ,changeCurSelected: function(spr) { this.undoRedoCheck($bind(this,this.changeCurSelected),funkin_ui_debug_stage_StageBuilderState.curSelectedSpr); funkin_ui_debug_stage_StageBuilderState.curSelectedSpr = spr; this.updateTextInfo(); } ,updateTextInfo: function() { this.textInfo.set_text(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.imgName); var fh = this.textInfo; fh.set_text(fh.text + (" - parallax: " + Std.string(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.scrollFactor))); } ,undoRedoCheck: function(daFunc,daValue) { if(!this.isUndoRedo) { this.actionQueue.push(daFunc); this.posQueue.push(daValue); } else { this.isUndoRedo = false; } } ,sprDragShitFunc: function(spr) { if(funkin_ui_debug_stage_StageBuilderState.curTool == funkin_ui_debug_stage_TOOLS.SELECT) { this.changeCurSelected(spr); } spr.mousePressing = true; if(spr.isSelected()) { funkin_ui_debug_stage_StageBuilderState.changeTool(funkin_ui_debug_stage_TOOLS.GRABBING); } var this1 = spr.mouseOffset; var x = flixel_FlxG.mouse.x - spr.x; var y = flixel_FlxG.mouse.y - spr.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = spr.oldPos; var x = spr.x; var y = spr.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,moveSprPos: function(dumbArray) { var xDiff = dumbArray[0]; var yDiff = dumbArray[1]; var forceMove = dumbArray[2]; if(forceMove) { var fh = funkin_ui_debug_stage_StageBuilderState.curSelectedSpr; fh.set_x(fh.x + xDiff); var fh = funkin_ui_debug_stage_StageBuilderState.curSelectedSpr; fh.set_y(fh.y + yDiff); } this.undoRedoCheck($bind(this,this.moveSprPos),[-xDiff,-yDiff,true]); } ,isUndoRedo: null ,actionQueue: null ,posQueue: null ,moveLayer: function(layerMovement) { if(layerMovement == null) { layerMovement = 0; } if(funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.layer == 0 && layerMovement > 0) { return; } funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.layer -= layerMovement; this.sprGrp.members[funkin_ui_debug_stage_StageBuilderState.curSelectedSpr.layer].layer += layerMovement; this.sortSprGrp(); this.undoRedoCheck($bind(this,this.moveLayer),layerMovement * -1); } ,isShaking: null ,shakeIntensity: null ,shakePos: null ,shakingScreen: function() { if(!this.isShaking) { this.isShaking = true; var this1 = this.shakePos; var x = openfl_Lib.get_current().stage.window.__x; var y = openfl_Lib.get_current().stage.window.__y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } ,sortSprGrp: function() { var order = -1; if(order == null) { order = -1; } var _g = $bind(this,this.daLayerSorting); var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.sprGrp.members.sort(tmp); flixel_input_mouse_FlxMouseEvent.globalManager.reorder(); } ,daLayerSorting: function(order,layer1,layer2) { if(order == null) { order = -1; } var Value1 = layer1.layer; var Value2 = layer2.layer; var result = 0; if(Value1 < Value2) { result = -1; } else if(Value1 > Value2) { result = 1; } return result; } ,__class__: funkin_ui_debug_stage_StageBuilderState }); var funkin_ui_debug_stage_FOCUS = $hxEnums["funkin.ui.debug.stage.FOCUS"] = { __ename__:"funkin.ui.debug.stage.FOCUS",__constructs__:null ,ATTRIBUTES: {_hx_name:"ATTRIBUTES",_hx_index:0,__enum__:"funkin.ui.debug.stage.FOCUS",toString:$estr} ,MOVEMENTS: {_hx_name:"MOVEMENTS",_hx_index:1,__enum__:"funkin.ui.debug.stage.FOCUS",toString:$estr} ,TOOLBAR: {_hx_name:"TOOLBAR",_hx_index:2,__enum__:"funkin.ui.debug.stage.FOCUS",toString:$estr} }; funkin_ui_debug_stage_FOCUS.__constructs__ = [funkin_ui_debug_stage_FOCUS.ATTRIBUTES,funkin_ui_debug_stage_FOCUS.MOVEMENTS,funkin_ui_debug_stage_FOCUS.TOOLBAR]; funkin_ui_debug_stage_FOCUS.__empty_constructs__ = [funkin_ui_debug_stage_FOCUS.ATTRIBUTES,funkin_ui_debug_stage_FOCUS.MOVEMENTS,funkin_ui_debug_stage_FOCUS.TOOLBAR]; var funkin_ui_debug_stage_StageEditorCommand = function() { }; $hxClasses["funkin.ui.debug.stage.StageEditorCommand"] = funkin_ui_debug_stage_StageEditorCommand; funkin_ui_debug_stage_StageEditorCommand.__name__ = "funkin.ui.debug.stage.StageEditorCommand"; funkin_ui_debug_stage_StageEditorCommand.__isInterface__ = true; funkin_ui_debug_stage_StageEditorCommand.prototype = { execute: null ,undo: null ,toString: null ,__class__: funkin_ui_debug_stage_StageEditorCommand }; var funkin_ui_debug_stage_MovePropCommand = function(xDiff,yDiff,realMove) { if(realMove == null) { realMove = true; } if(yDiff == null) { yDiff = 0; } if(xDiff == null) { xDiff = 0; } this.xDiff = xDiff; this.yDiff = yDiff; this.realMove = realMove; }; $hxClasses["funkin.ui.debug.stage.MovePropCommand"] = funkin_ui_debug_stage_MovePropCommand; funkin_ui_debug_stage_MovePropCommand.__name__ = "funkin.ui.debug.stage.MovePropCommand"; funkin_ui_debug_stage_MovePropCommand.__interfaces__ = [funkin_ui_debug_stage_StageEditorCommand]; funkin_ui_debug_stage_MovePropCommand.prototype = { xDiff: null ,yDiff: null ,realMove: null ,execute: function(state) { if(this.realMove) { var fh = state.char; fh.set_x(fh.x + this.xDiff); var fh = state.char; fh.set_y(fh.y + this.yDiff); } } ,undo: function(state) { var fh = state.char; fh.set_x(fh.x - this.xDiff); var fh = state.char; fh.set_y(fh.y - this.yDiff); } ,toString: function() { return "Moved char " + this.xDiff + " " + this.yDiff + " " + Std.string(this.realMove); } ,__class__: funkin_ui_debug_stage_MovePropCommand }; var funkin_ui_debug_stage_SelectPropCommand = function(prop) { this.prop = prop; }; $hxClasses["funkin.ui.debug.stage.SelectPropCommand"] = funkin_ui_debug_stage_SelectPropCommand; funkin_ui_debug_stage_SelectPropCommand.__name__ = "funkin.ui.debug.stage.SelectPropCommand"; funkin_ui_debug_stage_SelectPropCommand.__interfaces__ = [funkin_ui_debug_stage_StageEditorCommand]; funkin_ui_debug_stage_SelectPropCommand.prototype = { prop: null ,prevProp: null ,execute: function(state) { this.prevProp = state.char; state.char = this.prop; } ,undo: function(state) { var funnyShader = state.char.shader; if(state.char != null) { state.char.shader = null; } state.char = this.prevProp; if(state.char != null) { state.char.shader = funnyShader; } } ,toString: function() { return "Selected" + Std.string(this.prop); } ,__class__: funkin_ui_debug_stage_SelectPropCommand }; var funkin_ui_haxeui_HaxeUISubState = function(key) { funkin_ui_MusicBeatSubState.call(this); this._componentKey = key; }; $hxClasses["funkin.ui.haxeui.HaxeUISubState"] = funkin_ui_haxeui_HaxeUISubState; funkin_ui_haxeui_HaxeUISubState.__name__ = "funkin.ui.haxeui.HaxeUISubState"; funkin_ui_haxeui_HaxeUISubState.__super__ = funkin_ui_MusicBeatSubState; funkin_ui_haxeui_HaxeUISubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ component: null ,_componentKey: null ,create: function() { funkin_ui_MusicBeatSubState.prototype.create.call(this); this.refreshComponent(); } ,buildComponent: function(assetPath) { haxe_Log.trace("Building component " + assetPath,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 39, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "buildComponent"}); return haxe_ui_RuntimeComponentBuilder.fromAsset(assetPath); } ,update: function(elapsed) { funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(115,_this.status)) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(116,_this.status)) { this.refreshComponent(); } } ,refreshComponent: function() { if(this.component == null) { this.component = this.buildComponent(this._componentKey); this.add(this.component); haxe_Log.trace(this.component,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 81, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "refreshComponent"}); } else { var component2 = this.buildComponent(this._componentKey); component2.set_x(component2.x + 100); this.add(component2); haxe_Log.trace(component2,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 88, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "refreshComponent"}); this.remove(this.component); } } ,addUIClickListener: function(key,callback) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 102, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "addUIClickListener"}); } else { target.set_onClick(callback); } } ,addUIChangeListener: function(key,callback) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 119, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "addUIChangeListener"}); } else { target.set_onChange(callback); } } ,setUIValue: function(key,value) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 137, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "setUIValue"}); return value; } else { return target.set_value(value); } } ,setUICheckboxSelected: function(key,value) { var targetA = this.findComponent(key,haxe_ui_components_CheckBox); if(targetA != null) { return targetA.set_selected(value); } var targetB = this.findComponent(key,haxe_ui_containers_menus_MenuCheckBox); if(targetB != null) { return targetB.set_selected(value); } haxe_Log.trace("WARN: Could not locate check box: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUISubState.hx", lineNumber : 166, className : "funkin.ui.haxeui.HaxeUISubState", methodName : "setUICheckboxSelected"}); return value; } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } if(this.component == null) { return null; } return this.component.findComponent(criteria,type,recursive,searchType); } ,destroy: function() { if(this.component != null) { this.remove(this.component); } this.component = null; } ,__class__: funkin_ui_haxeui_HaxeUISubState }); var funkin_ui_debug_stage_StageOffsetSubState = function() { this.curOperation = -1; this.commandStack = []; this.overlappingChar = false; this.char = null; this.sprOld = new flixel_math_FlxBasePoint(0,0); this.mosPosOld = new flixel_math_FlxBasePoint(0,0); funkin_ui_haxeui_HaxeUISubState.call(this,funkin_ui_debug_stage_StageOffsetSubState.STAGE_EDITOR_LAYOUT); }; $hxClasses["funkin.ui.debug.stage.StageOffsetSubState"] = funkin_ui_debug_stage_StageOffsetSubState; funkin_ui_debug_stage_StageOffsetSubState.__name__ = "funkin.ui.debug.stage.StageOffsetSubState"; funkin_ui_debug_stage_StageOffsetSubState.__super__ = funkin_ui_haxeui_HaxeUISubState; funkin_ui_debug_stage_StageOffsetSubState.prototype = $extend(funkin_ui_haxeui_HaxeUISubState.prototype,{ uiStuff: null ,outlineShader: null ,create: function() { var _gthis = this; funkin_ui_haxeui_HaxeUISubState.prototype.create.call(this); var playState = funkin_play_PlayState.instance; flixel_FlxG.mouse.set_visible(true); playState.pauseMusic(); playState.cancelAllCameraTweens(); flixel_FlxG.camera.target = null; this.setupUIListeners(); playState.persistentUpdate = true; this.component.set_cameras([playState.camHUD]); this.outlineShader = new funkin_graphics_shaders_StrokeShader(-1,4,4); var layerList = this.findComponent("prop-layers"); var thing = new flixel_group_FlxTypedGroupIterator(playState.currentStage.group.members,null); while(thing.hasNext()) { var thing1 = thing.next(); var prop = thing1; if(prop != null && prop.name != null) { layerList.get_dataSource().add({ item : prop.name, complete : true, id : "swag"}); } flixel_input_mouse_FlxMouseEvent.globalManager.add(thing1,function(spr) { haxe_Log.trace(spr,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 94, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "create"}); var dyn = spr; if(dyn != null && dyn.name != null) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status) && _gthis.char != dyn) { _gthis.selectProp(dyn.name); } } },null,function(spr) { var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { spr.ID = 1; spr.set_alpha(0.5); } else { spr.ID = 0; spr.set_alpha(1); } },function(spr) { if(_gthis.char != spr) { spr.ID = 0; spr.set_alpha(1); } },false,true,true,null); } } ,selectProp: function(propName) { if(this.char != null && this.char.shader == this.outlineShader) { this.char.shader = null; } var proptemp = funkin_play_PlayState.instance.currentStage.getNamedProp(propName); if(proptemp == null) { return; } this.performCommand(new funkin_ui_debug_stage_SelectPropCommand(proptemp)); this.char.shader = this.outlineShader; haxe_Log.trace("JUST PRESSED!",{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 142, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "selectProp"}); this.sprOld.set_x(this.char.x); this.sprOld.set_y(this.char.y); this.mosPosOld.set_x(flixel_FlxG.mouse.x); this.mosPosOld.set_y(flixel_FlxG.mouse.y); this.setUIValue("propXPos",this.char.x); this.setUIValue("propYPos",this.char.y); } ,setupUIListeners: function() { var _gthis = this; this.addUIClickListener("lol",$bind(this,this.saveCharacterCompile)); this.addUIClickListener("saveAs",$bind(this,this.saveStageFileRef)); this.addUIChangeListener("propXPos",function(event) { if(_gthis.char != null) { _gthis.char.set_x(haxe_ui_util_Variant.toFloat(event.value)); } }); this.addUIChangeListener("propYPos",function(event) { if(_gthis.char != null) { _gthis.char.set_y(haxe_ui_util_Variant.toFloat(event.value)); } }); this.addUIChangeListener("prop-layers",function(event) { haxe_Log.trace(event.value == null ? "null" : haxe_ui_util_Variant.toString(event.value),{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 184, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "setupUIListeners"}); haxe_Log.trace(event.type,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 185, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "setupUIListeners"}); haxe_Log.trace(event.target,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 186, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "setupUIListeners"}); haxe_Log.trace(event.data,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 187, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "setupUIListeners"}); haxe_Log.trace(event.relatedEvent,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 188, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "setupUIListeners"}); }); this.setUICheckboxSelected("complete",false); } ,mosPosOld: null ,sprOld: null ,char: null ,overlappingChar: null ,update: function(elapsed) { funkin_ui_haxeui_HaxeUISubState.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(79,_this.status)) { haxe_Log.trace("COMMANDS!!!",{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 206, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "update"}); haxe_Log.trace("-/-/-/-/-/-",{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 207, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "update"}); var _g_current = 0; var _g_array = this.commandStack; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var ind = _g_key; var cmd = _g_value; var output = cmd.toString(); if(this.curOperation == ind) { output += " <---"; } haxe_Log.trace(output,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 213, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "update"}); } haxe_Log.trace("-/-/-/-/-/-",{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 215, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "update"}); } if(this.char != null) { this.setUIValue("propXPos",this.char.x); this.setUIValue("propYPos",this.char.y); } if(this.char != null && this.char.ID == 1) { var _this = flixel_FlxG.mouse._leftButton; if(_this.current == 1 || _this.current == 2) { this.char.set_x(this.sprOld.x - (this.mosPosOld.x - flixel_FlxG.mouse.x)); this.char.set_y(this.sprOld.y - (this.mosPosOld.y - flixel_FlxG.mouse.y)); } if(flixel_FlxG.mouse._leftButton.current == -1) { haxe_Log.trace("LOL",{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 234, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "update"}); var xDiff = this.mosPosOld.x - flixel_FlxG.mouse.x; var yDiff = this.mosPosOld.y - flixel_FlxG.mouse.y; this.performCommand(new funkin_ui_debug_stage_MovePropCommand(-xDiff,-yDiff,false)); } } if(this.char != null) { var zoomShitLol = 2 / flixel_FlxG.camera.zoom; var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { this.performCommand(new funkin_ui_debug_stage_MovePropCommand(-zoomShitLol,0)); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { this.performCommand(new funkin_ui_debug_stage_MovePropCommand(zoomShitLol,0)); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { this.performCommand(new funkin_ui_debug_stage_MovePropCommand(0,-zoomShitLol)); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { this.performCommand(new funkin_ui_debug_stage_MovePropCommand(0,zoomShitLol)); } } flixel_FlxG.mouse.set_visible(true); funkin_util_MouseUtil.mouseCamDrag(); var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { funkin_util_MouseUtil.mouseWheelZoom(); } var tmp; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; tmp = _this.keyManager.checkStatusUnsafe(90,_this.status); } else { tmp = false; } if(tmp) { this.undoLastCommand(); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(89,_this.status)) { var thing = new flixel_group_FlxTypedGroupIterator(funkin_play_PlayState.instance.currentStage.group.members,null); while(thing.hasNext()) { var thing1 = thing.next(); flixel_input_mouse_FlxMouseEvent.globalManager.remove(thing1); thing1.set_alpha(1); } funkin_play_PlayState.instance.disableKeys = false; funkin_play_PlayState.instance.resetCamera(); flixel_FlxG.mouse.set_visible(false); this.close(); } } ,commandStack: null ,curOperation: null ,performCommand: function(command) { command.execute(this); this.commandStack.push(command); this.curOperation++; if(this.curOperation < this.commandStack.length - 1) { this.commandStack = this.commandStack.slice(0,this.curOperation + 1); } } ,undoCommand: function(command) { command.undo(this); this.curOperation--; } ,undoLastCommand: function() { haxe_Log.trace(this.curOperation,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 296, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "undoLastCommand"}); haxe_Log.trace(this.commandStack.length,{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 297, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "undoLastCommand"}); if(this.curOperation == -1 || this.commandStack.length == 0) { haxe_Log.trace("no actions to undo",{ fileName : "source/funkin/ui/debug/stage/StageOffsetSubState.hx", lineNumber : 301, className : "funkin.ui.debug.stage.StageOffsetSubState", methodName : "undoLastCommand"}); return; } var command = this.commandStack[this.curOperation]; this.undoCommand(command); } ,_file: null ,saveStageFileRef: function(_) { var jsonStr = this.prepStageStuff(); this._file = new openfl_net_FileReference(); this._file.addEventListener("complete",$bind(this,this.onSaveComplete)); this._file.addEventListener("cancel",$bind(this,this.onSaveCancel)); this._file.addEventListener("ioError",$bind(this,this.onSaveError)); this._file.save(jsonStr,funkin_play_PlayState.instance.get_currentStageId() + ".json"); } ,onSaveComplete: function(_) { this.fileRemoveListens(); flixel_FlxG.log.advanced("Successfully saved!",flixel_system_debug_log_LogStyle.NOTICE); } ,onSaveCancel: function(_) { this.fileRemoveListens(); } ,onSaveError: function(_) { this.fileRemoveListens(); flixel_FlxG.log.advanced("Problem saving Stage file!",flixel_system_debug_log_LogStyle.ERROR,true); } ,fileRemoveListens: function() { this._file.removeEventListener("complete",$bind(this,this.onSaveComplete)); this._file.removeEventListener("cancel",$bind(this,this.onSaveCancel)); this._file.removeEventListener("ioError",$bind(this,this.onSaveError)); this._file = null; } ,saveCharacterCompile: function(_) { var outputJson = this.prepStageStuff(); } ,prepStageStuff: function() { var tmp = funkin_data_stage_StageRegistry.get_instance().fetchEntry(funkin_play_PlayState.instance.get_currentStageId()); var stageLol = tmp != null ? tmp._data : null; if(stageLol == null) { flixel_FlxG.log.advanced("Stage not found in registry!",flixel_system_debug_log_LogStyle.ERROR,true); return ""; } var _g = 0; var _g1 = stageLol.props; while(_g < _g1.length) { var prop = _g1[_g]; ++_g; var posStuff = funkin_play_PlayState.instance.currentStage.namedProps.h[prop.name]; prop.position[0] = posStuff.x; prop.position[1] = posStuff.y; } var bfPos = funkin_play_PlayState.instance.currentStage.getBoyfriend().get_feetPosition(); stageLol.characters.bf.position[0] = bfPos.x | 0; stageLol.characters.bf.position[1] = bfPos.y | 0; var dadPos = funkin_play_PlayState.instance.currentStage.getDad().get_feetPosition(); stageLol.characters.dad.position[0] = dadPos.x | 0; stageLol.characters.dad.position[1] = dadPos.y | 0; var GF_FEET_SNIIIIIIIIIIIIIFFFF = funkin_play_PlayState.instance.currentStage.getGirlfriend().get_feetPosition(); stageLol.characters.gf.position[0] = GF_FEET_SNIIIIIIIIIIIIIFFFF.x | 0; stageLol.characters.gf.position[1] = GF_FEET_SNIIIIIIIIIIIIIFFFF.y | 0; return stageLol.serialize(); } ,__class__: funkin_ui_debug_stage_StageOffsetSubState }); var funkin_ui_debug_stage_StagetoolBar = function() { this.iconSprs = ["cursorSelect","cursorGrab","cursorMove","toolbarBF"]; this.icons = [funkin_ui_debug_stage_TOOLS.SELECT,funkin_ui_debug_stage_TOOLS.MOVE,funkin_ui_debug_stage_TOOLS.GRAB,funkin_ui_debug_stage_TOOLS.BOYFRIEND]; flixel_group_FlxTypedGroup.call(this); }; $hxClasses["funkin.ui.debug.stage.StagetoolBar"] = funkin_ui_debug_stage_StagetoolBar; funkin_ui_debug_stage_StagetoolBar.__name__ = "funkin.ui.debug.stage.StagetoolBar"; funkin_ui_debug_stage_StagetoolBar.__super__ = flixel_group_FlxTypedGroup; funkin_ui_debug_stage_StagetoolBar.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ icons: null ,iconSprs: null ,__class__: funkin_ui_debug_stage_StagetoolBar }); var funkin_ui_freeplay_Album = function(id) { this.id = id; this._data = funkin_ui_freeplay_Album._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not parse album data for id: " + id); } }; $hxClasses["funkin.ui.freeplay.Album"] = funkin_ui_freeplay_Album; funkin_ui_freeplay_Album.__name__ = "funkin.ui.freeplay.Album"; funkin_ui_freeplay_Album.__interfaces__ = [funkin_data_IRegistryEntry]; funkin_ui_freeplay_Album._fetchData = function(id) { return funkin_data_freeplay_album_AlbumRegistry.instance.parseEntryDataWithMigration(id,funkin_data_freeplay_album_AlbumRegistry.instance.fetchEntryVersion(id)); }; funkin_ui_freeplay_Album.prototype = { id: null ,_data: null ,getAlbumName: function() { return this._data.name; } ,getAlbumArtists: function() { return this._data.artists; } ,getAlbumArtAssetKey: function() { return this._data.albumArtAsset; } ,getAlbumArtGraphic: function() { return flixel_FlxG.bitmap.add(funkin_Paths.image(this.getAlbumArtAssetKey())); } ,getAlbumTitleAssetKey: function() { return this._data.albumTitleAsset; } ,hasAlbumTitleAnimations: function() { return this._data.albumTitleAnimations.length > 0; } ,getAlbumTitleAnimations: function() { return this._data.albumTitleAnimations; } ,toString: function() { return "Album(" + this.id + ")"; } ,destroy: function() { } ,__class__: funkin_ui_freeplay_Album }; var funkin_ui_freeplay_AlbumRoll = function() { this.titleTimer = null; var _g = new haxe_ds_StringMap(); _g.h["volume1-active"] = "ENTRANCE"; _g.h["volume2-active"] = "ENTRANCE VOL2"; _g.h["volume3-active"] = "ENTRANCE VOL3"; _g.h["volume1-trans"] = "VOL1 TRANS"; _g.h["volume2-trans"] = "VOL2 TRANS"; _g.h["volume3-trans"] = "VOL3 TRANS"; _g.h["volume1-idle"] = "VOL1 STILL"; _g.h["volume2-idle"] = "VOL2 STILL"; _g.h["volume3-idle"] = "VOL3 STILL"; this.animNames = _g; flixel_group_FlxTypedSpriteGroup.call(this); this.newAlbumArt = new funkin_graphics_adobeanimate_FlxAtlasSprite(0,0,funkin_Paths.animateAtlas("freeplay/albumRoll/freeplayAlbum")); this.newAlbumArt.set_visible(false); this.newAlbumArt.onAnimationFinish.add($bind(this,this.onAlbumFinish)); this.add(this.newAlbumArt); this.difficultyStars = new funkin_ui_freeplay_DifficultyStars(140,39); this.difficultyStars.set_visible(false); this.add(this.difficultyStars); }; $hxClasses["funkin.ui.freeplay.AlbumRoll"] = funkin_ui_freeplay_AlbumRoll; funkin_ui_freeplay_AlbumRoll.__name__ = "funkin.ui.freeplay.AlbumRoll"; funkin_ui_freeplay_AlbumRoll.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_AlbumRoll.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ albumId: null ,set_albumId: function(value) { if(this.albumId != value) { this.albumId = value; this.updateAlbum(); } return value; } ,newAlbumArt: null ,difficultyStars: null ,_exitMovers: null ,albumData: null ,animNames: null ,onAlbumFinish: function(animName) { this.newAlbumArt.playAnimation(this.animNames.h["" + this.albumId + "-idle"],false,false,true); } ,updateAlbum: function() { if(this.albumId == null) { this.set_visible(false); this.difficultyStars.stars.set_visible(false); return; } else { this.set_visible(true); } this.albumData = funkin_data_freeplay_album_AlbumRegistry.instance.fetchEntry(this.albumId); if(this.albumData == null) { flixel_FlxG.log.advanced("Could not find album data for album ID: " + this.albumId,flixel_system_debug_log_LogStyle.WARNING,true); return; } this.applyExitMovers(); this.refresh(); } ,refresh: function() { var Order = -1; if(Order == null) { Order = -1; } var order = Order; if(order == null) { order = -1; } var _g = funkin_util_SortUtil.byZIndex; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.group.members.sort(tmp); } ,applyExitMovers: function(exitMovers) { if(exitMovers == null) { exitMovers = this._exitMovers; } else { this._exitMovers = exitMovers; } if(exitMovers == null) { return; } exitMovers.set([this.newAlbumArt,this.difficultyStars],{ x : flixel_FlxG.width, speed : 0.4, wait : 0}); } ,titleTimer: null ,playIntro: function() { var _gthis = this; this.newAlbumArt.set_visible(true); this.newAlbumArt.playAnimation(this.animNames.h["" + this.albumId + "-active"],false,false,false); this.difficultyStars.set_visible(false); new flixel_util_FlxTimer().start(0.75,function(_) { _gthis.showStars(); }); } ,skipIntro: function() { this.newAlbumArt.playAnimation(this.animNames.h["" + this.albumId + "-trans"],false,false,false); } ,setDifficultyStars: function(difficulty) { if(difficulty == null) { return; } this.difficultyStars.set_difficulty(difficulty); } ,showStars: function() { this.difficultyStars.set_visible(true); this.difficultyStars.flameCheck(); } ,__class__: funkin_ui_freeplay_AlbumRoll ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_albumId:"set_albumId"}) }); var funkin_ui_freeplay_BGScrollingText = function(x,y,text,widthShit,bold,size) { if(size == null) { size = 48; } if(bold == null) { bold = false; } if(widthShit == null) { widthShit = 100; } this.funnyColor = -1; this.size = 48; this.speed = 1; this.placementOffset = 20; this.widthShit = flixel_FlxG.width; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.widthShit = widthShit; if(size != null) { this.set_size(size); } this.grpTexts = new flixel_group_FlxTypedSpriteGroup(); this.add(this.grpTexts); var testText = new flixel_text_FlxText(0,0,0,text,this.size); testText.set_font("5by7"); testText.set_bold(bold); testText.updateHitbox(); this.grpTexts.add(testText); var needed = Math.ceil(widthShit / testText.frameWidth) + 1; var _g = 0; var _g1 = needed; while(_g < _g1) { var i = _g++; var lmfao = i + 1; var coolText = new flixel_text_FlxText(lmfao * testText.frameWidth + lmfao * 20,0,0,text,this.size); coolText.set_font("5by7"); coolText.set_bold(bold); coolText.updateHitbox(); this.grpTexts.add(coolText); } }; $hxClasses["funkin.ui.freeplay.BGScrollingText"] = funkin_ui_freeplay_BGScrollingText; funkin_ui_freeplay_BGScrollingText.__name__ = "funkin.ui.freeplay.BGScrollingText"; funkin_ui_freeplay_BGScrollingText.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_BGScrollingText.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ grpTexts: null ,widthShit: null ,placementOffset: null ,speed: null ,size: null ,funnyColor: null ,set_size: function(value) { if(this.grpTexts != null) { this.grpTexts.group.forEach(function(txt) { txt.set_size(value); },false); } this.size = value; return value; } ,set_funnyColor: function(col) { this.grpTexts.group.forEach(function(txt) { txt.set_color(col); },false); return col; } ,update: function(elapsed) { var txt = new flixel_group_FlxTypedGroupIterator(this.grpTexts.group.members,null); while(txt.hasNext()) { var txt1 = txt.next(); txt1.set_x(txt1.x - this.speed * (elapsed / 0.0166666666666666664)); if(this.speed > 0) { if(txt1.x < -txt1.frameWidth) { txt1.set_x(this.grpTexts.group.members[this.grpTexts.group.length - 1].x + this.grpTexts.group.members[this.grpTexts.group.length - 1].frameWidth + this.placementOffset); this.sortTextShit(); } } else if(txt1.x > txt1.frameWidth * 2) { txt1.set_x(this.grpTexts.group.members[0].x - this.grpTexts.group.members[0].frameWidth - this.placementOffset); this.sortTextShit(); } } flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,sortTextShit: function() { var order = -1; if(order == null) { order = -1; } var _g = function(Order,Obj1,Obj2) { var Value1 = Obj1.x; var Value2 = Obj2.x; var result = 0; if(Value1 < Value2) { result = Order; } else if(Value1 > Value2) { result = -Order; } return result; }; var a1 = order; var tmp = function(a2,a3) { return _g(a1,a2,a3); }; this.grpTexts.group.members.sort(tmp); } ,__class__: funkin_ui_freeplay_BGScrollingText ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_funnyColor:"set_funnyColor",set_size:"set_size"}) }); var funkin_ui_freeplay_CapsuleText = function(x,y,songTitle,size) { this.flickerState = false; this.moveTimer = new flixel_util_FlxTimer(); this.tooLong = false; this.clipWidth = 255; this.maskShaderSongName = new funkin_graphics_shaders_LeftMaskShader(); flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.blurredText = this.initText(songTitle,size); this.blurredText.shader = new funkin_graphics_shaders_GaussianBlurShader(1); this.whiteText = this.initText(songTitle,size); this.set_text(songTitle); this.blurredText.set_color(-16724737); this.whiteText.set_color(-1); this.add(this.blurredText); this.add(this.whiteText); }; $hxClasses["funkin.ui.freeplay.CapsuleText"] = funkin_ui_freeplay_CapsuleText; funkin_ui_freeplay_CapsuleText.__name__ = "funkin.ui.freeplay.CapsuleText"; funkin_ui_freeplay_CapsuleText.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_CapsuleText.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ blurredText: null ,whiteText: null ,text: null ,maskShaderSongName: null ,clipWidth: null ,tooLong: null ,initText: function(songTitle,size) { var text = new flixel_text_FlxText(0,0,0,songTitle,size | 0); text.set_font("5by7"); return text; } ,set_clipWidth: function(value) { this.resetText(); this.checkClipWidth(value); return this.clipWidth = value; } ,checkClipWidth: function(wid) { if(wid == null) { wid = this.clipWidth; } if(this.whiteText.get_width() > wid) { this.tooLong = true; this.blurredText.set_clipRect(new flixel_math_FlxRect(0,0,wid,this.blurredText.get_height())); this.whiteText.set_clipRect(new flixel_math_FlxRect(0,0,wid,this.whiteText.get_height())); } else { this.tooLong = false; this.blurredText.set_clipRect(null); this.whiteText.set_clipRect(null); } } ,set_text: function(value) { if(value == null) { return value; } if(this.blurredText == null || this.whiteText == null) { haxe_Log.trace("WARN: Capsule not initialized properly",{ fileName : "source/funkin/ui/freeplay/CapsuleText.hx", lineNumber : 94, className : "funkin.ui.freeplay.CapsuleText", methodName : "set_text"}); return this.text = value; } this.blurredText.set_text(value); this.whiteText.set_text(value); this.checkClipWidth(); this.whiteText.textField.set_filters([new openfl_filters_GlowFilter(52479,1,5,5,210,2)]); return this.text = value; } ,moveTimer: null ,moveTween: null ,initMove: function() { var _gthis = this; this.moveTimer.start(0.6,function(timer) { _gthis.moveTextRight(); }); } ,moveTextRight: function() { var _gthis = this; var distToMove = this.whiteText.get_width() - this.clipWidth; this.moveTween = flixel_tweens_FlxTween.tween(this.whiteText.offset,{ x : distToMove},2,{ onUpdate : function(_) { _gthis.whiteText.set_clipRect(new flixel_math_FlxRect(_gthis.whiteText.offset.x,0,_gthis.clipWidth,_gthis.whiteText.get_height())); _gthis.blurredText.offset = _gthis.whiteText.offset; _gthis.blurredText.set_clipRect(new flixel_math_FlxRect(_gthis.whiteText.offset.x,0,_gthis.clipWidth,_gthis.blurredText.get_height())); }, onComplete : function(_) { _gthis.moveTimer.start(0.3,function(timer) { _gthis.moveTextLeft(); }); }, ease : flixel_tweens_FlxEase.sineInOut}); } ,moveTextLeft: function() { var _gthis = this; this.moveTween = flixel_tweens_FlxTween.tween(this.whiteText.offset,{ x : 0},2,{ onUpdate : function(_) { _gthis.whiteText.set_clipRect(new flixel_math_FlxRect(_gthis.whiteText.offset.x,0,_gthis.clipWidth,_gthis.whiteText.get_height())); _gthis.blurredText.offset = _gthis.whiteText.offset; _gthis.blurredText.set_clipRect(new flixel_math_FlxRect(_gthis.whiteText.offset.x,0,_gthis.clipWidth,_gthis.blurredText.get_height())); }, onComplete : function(_) { _gthis.moveTimer.start(0.3,function(timer) { _gthis.moveTextRight(); }); }, ease : flixel_tweens_FlxEase.sineInOut}); } ,resetText: function() { if(this.moveTween != null) { this.moveTween.cancel(); } if(this.moveTimer != null) { this.moveTimer.cancel(); } this.whiteText.offset.set_x(0); this.whiteText.set_clipRect(new flixel_math_FlxRect(this.whiteText.offset.x,0,this.clipWidth,this.whiteText.get_height())); this.blurredText.set_clipRect(new flixel_math_FlxRect(this.whiteText.offset.x,0,this.clipWidth,this.whiteText.get_height())); } ,flickerState: null ,flickerTimer: null ,flickerText: function() { this.resetText(); this.flickerTimer = new flixel_util_FlxTimer().start(0.0416666666666666644,$bind(this,this.flickerProgress),19); } ,flickerProgress: function(timer) { if(this.flickerState == true) { this.whiteText.set_blend(0); this.blurredText.set_blend(0); this.blurredText.set_color(-1); this.whiteText.set_color(-1); this.whiteText.textField.set_filters([new openfl_filters_GlowFilter(16777215,1,5,5,210,2)]); } else { this.blurredText.set_color(-16733475); this.whiteText.set_color(-2236963); this.whiteText.textField.set_filters([new openfl_filters_GlowFilter(14540253,1,5,5,210,2)]); } this.flickerState = !this.flickerState; } ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,__class__: funkin_ui_freeplay_CapsuleText ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_clipWidth:"set_clipWidth",set_text:"set_text"}) }); var funkin_ui_freeplay_DJBoyfriend = function(x,y) { var _g = []; var _g1 = 0; var _g2 = openfl_utils_Assets.list(); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(StringTools.startsWith(v,"assets/sounds/cartoons/")) { _g.push(v); } } this.cartoonList = _g; this.playingCartoon = false; this.cartoonSnd = null; this.offsetY = 0.0; this.offsetX = 0.0; this.lowPumpLoopPoint = 4; this.timeSinceSpook = 0; this.gotSpooked = false; this.onSpook = new flixel_util__$FlxSignal_FlxSignal0(); this.onIntroDone = new flixel_util__$FlxSignal_FlxSignal0(); this.currentState = funkin_ui_freeplay_DJBoyfriendState.Intro; var _gthis = this; funkin_graphics_adobeanimate_FlxAtlasSprite.call(this,x,y,funkin_Paths.animateAtlas("freeplay/freeplay-boyfriend","preload")); this.animOffsets = new haxe_ds_StringMap(); this.anim.callback = function(name,number) { if(name == "Boyfriend DJ watchin tv OG") { if(number == 80) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("remote_click")); } if(number == 85) { _gthis.runTvLogic(); } } }; this.setupAnimations(); flixel_FlxG.debugger.track(this); this.anim.onComplete = $bind(this,this.onFinishAnim); }; $hxClasses["funkin.ui.freeplay.DJBoyfriend"] = funkin_ui_freeplay_DJBoyfriend; funkin_ui_freeplay_DJBoyfriend.__name__ = "funkin.ui.freeplay.DJBoyfriend"; funkin_ui_freeplay_DJBoyfriend.__super__ = funkin_graphics_adobeanimate_FlxAtlasSprite; funkin_ui_freeplay_DJBoyfriend.prototype = $extend(funkin_graphics_adobeanimate_FlxAtlasSprite.prototype,{ currentState: null ,onIntroDone: null ,onSpook: null ,animOffsets: null ,gotSpooked: null ,timeSinceSpook: null ,listAnimations: function() { var anims = []; var h = this.anim.symbolDictionary.h; var animKey_h = h; var animKey_keys = Object.keys(h); var animKey_length = animKey_keys.length; var animKey_current = 0; while(animKey_current < animKey_length) { var animKey = animKey_h[animKey_keys[animKey_current++]]; anims.push(animKey.name); } return anims; } ,lowPumpLoopPoint: null ,update: function(elapsed) { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.update.call(this,elapsed); switch(this.currentState._hx_index) { case 0: if(this.getCurrentAnimation() != "boyfriend dj intro") { this.playFlashAnimation("boyfriend dj intro",true); } this.timeSinceSpook = 0; break; case 1: if(this.getCurrentAnimation() != "Boyfriend DJ") { this.playFlashAnimation("Boyfriend DJ",true); } if(this.getCurrentAnimation() == "Boyfriend DJ" && this.isLoopFinished()) { if(this.timeSinceSpook >= funkin_ui_freeplay_DJBoyfriend.SPOOK_PERIOD && !this.gotSpooked) { this.currentState = funkin_ui_freeplay_DJBoyfriendState.Spook; } else if(this.timeSinceSpook >= funkin_ui_freeplay_DJBoyfriend.TV_PERIOD) { this.currentState = funkin_ui_freeplay_DJBoyfriendState.TV; } } this.timeSinceSpook += elapsed; break; case 2: if(this.getCurrentAnimation() != "Boyfriend DJ confirm") { this.playFlashAnimation("Boyfriend DJ confirm",false); } this.timeSinceSpook = 0; break; case 3: if(this.getCurrentAnimation() != "Boyfriend DJ fist pump") { this.playFlashAnimation("Boyfriend DJ fist pump",false); } if(this.getCurrentAnimation() == "Boyfriend DJ fist pump" && this.anim.get_curFrame() >= 4) { this.anim.play("Boyfriend DJ fist pump",true,false,0); } break; case 4: break; case 5: if(this.getCurrentAnimation() != "bf dj afk") { this.onSpook.dispatch(); this.playFlashAnimation("bf dj afk",false); this.gotSpooked = true; } this.timeSinceSpook = 0; break; case 6: if(this.getCurrentAnimation() != "Boyfriend DJ watchin tv OG") { this.playFlashAnimation("Boyfriend DJ watchin tv OG",true); } this.timeSinceSpook = 0; break; } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(37,_this.status)) { var tmp = this; var tmp1 = tmp.offsetX; var tmp2; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { tmp2 = 0.1; } else { var _this = flixel_FlxG.keys.pressed; tmp2 = _this.keyManager.checkStatusUnsafe(16,_this.status) ? 10.0 : 1.0; } tmp.offsetX = tmp1 - tmp2; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(39,_this.status)) { var tmp = this; var tmp1 = tmp.offsetX; var tmp2; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { tmp2 = 0.1; } else { var _this = flixel_FlxG.keys.pressed; tmp2 = _this.keyManager.checkStatusUnsafe(16,_this.status) ? 10.0 : 1.0; } tmp.offsetX = tmp1 + tmp2; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(38,_this.status)) { var tmp = this; var tmp1 = tmp.offsetY; var tmp2; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { tmp2 = 0.1; } else { var _this = flixel_FlxG.keys.pressed; tmp2 = _this.keyManager.checkStatusUnsafe(16,_this.status) ? 10.0 : 1.0; } tmp.offsetY = tmp1 - tmp2; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(40,_this.status)) { var tmp = this; var tmp1 = tmp.offsetY; var tmp2; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(18,_this.status)) { tmp2 = 0.1; } else { var _this = flixel_FlxG.keys.pressed; tmp2 = _this.keyManager.checkStatusUnsafe(16,_this.status) ? 10.0 : 1.0; } tmp.offsetY = tmp1 + tmp2; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(32,_this.status)) { this.currentState = this.currentState == funkin_ui_freeplay_DJBoyfriendState.Idle ? funkin_ui_freeplay_DJBoyfriendState.TV : funkin_ui_freeplay_DJBoyfriendState.Idle; } } } ,onFinishAnim: function() { var name = this.anim.get_curSymbol().name; switch(name) { case "Boyfriend DJ": break; case "Boyfriend DJ confirm": break; case "Boyfriend DJ fist pump": this.currentState = funkin_ui_freeplay_DJBoyfriendState.Idle; break; case "Boyfriend DJ loss reaction 1": this.currentState = funkin_ui_freeplay_DJBoyfriendState.Idle; break; case "Boyfriend DJ watchin tv OG": var Chance = 33; if(Chance == null) { Chance = 50; } var frame = flixel_FlxG.random.float(0,100) < Chance ? 112 : 166; var Chance = 5; if(Chance == null) { Chance = 50; } if(flixel_FlxG.random.float(0,100) < Chance) { frame = 60; } haxe_Log.trace("Replay idle: " + frame,{ fileName : "source/funkin/ui/freeplay/DJBoyfriend.hx", lineNumber : 203, className : "funkin.ui.freeplay.DJBoyfriend", methodName : "onFinishAnim"}); this.anim.play("Boyfriend DJ watchin tv OG",true,false,frame); break; case "bf dj afk": this.currentState = funkin_ui_freeplay_DJBoyfriendState.Idle; break; case "boyfriend dj intro": this.currentState = funkin_ui_freeplay_DJBoyfriendState.Idle; this.onIntroDone.dispatch(); break; } } ,resetAFKTimer: function() { this.timeSinceSpook = 0; this.gotSpooked = false; } ,offsetX: null ,offsetY: null ,setupAnimations: function() { var x = 6.7; var y = 2.6; if(y == null) { y = 0; } if(x == null) { x = 0; } var v = [x,y]; this.animOffsets.h["boyfriend dj intro"] = v; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var v = [x,y]; this.animOffsets.h["Boyfriend DJ"] = v; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var v = [x,y]; this.animOffsets.h["Boyfriend DJ confirm"] = v; var x = 649.5; var y = 58.5; if(y == null) { y = 0; } if(x == null) { x = 0; } var v = [x,y]; this.animOffsets.h["bf dj afk"] = v; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var v = [x,y]; this.animOffsets.h["Boyfriend DJ watchin tv OG"] = v; } ,cartoonSnd: null ,playingCartoon: null ,runTvLogic: function() { var _gthis = this; if(this.cartoonSnd == null) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("tv_on"),1.0,function() { _gthis.loadCartoon(); }); } else { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("channel_switch"),1.0,function() { _gthis.cartoonSnd.destroy(); _gthis.loadCartoon(); }); } } ,loadCartoon: function() { var _gthis = this; this.cartoonSnd = funkin_audio_FunkinSound.load(funkin_Paths.sound(this.getRandomFlashToon()),1.0,false,true,true,function() { _gthis.anim.play("Boyfriend DJ watchin tv OG",true,false,60); }); var _this = flixel_FlxG.sound.music; var Duration = 1.0; var To = 0.1; if(To == null) { To = 0; } if(Duration == null) { Duration = 1; } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(_this._volume,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); this.cartoonSnd.set_time(flixel_FlxG.random.float(0,Math.max(this.cartoonSnd._length - 5 * funkin_util_Constants.MS_PER_SEC,0.0))); } ,cartoonList: null ,getRandomFlashToon: function() { var randomFile = flixel_FlxG.random.getObject_String(this.cartoonList); randomFile = StringTools.replace(randomFile,"assets/sounds/",""); randomFile = randomFile.substring(0,randomFile.length - 4); return randomFile; } ,confirm: function() { this.currentState = funkin_ui_freeplay_DJBoyfriendState.Confirm; } ,fistPump: function() { this.currentState = funkin_ui_freeplay_DJBoyfriendState.PumpIntro; } ,pumpFist: function() { this.currentState = funkin_ui_freeplay_DJBoyfriendState.FistPump; this.anim.play("Boyfriend DJ fist pump",true,false,4); } ,pumpFistBad: function() { this.currentState = funkin_ui_freeplay_DJBoyfriendState.FistPump; this.anim.play("Boyfriend DJ loss reaction 1",true,false,4); } ,addOffset: function(name,x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } var v = [x,y]; this.animOffsets.h[name] = v; } ,getCurrentAnimation: function() { if(this.anim == null || this.anim.get_curSymbol() == null) { return ""; } return this.anim.get_curSymbol().name; } ,playFlashAnimation: function(id,Force,Reverse,Frame) { if(Frame == null) { Frame = 0; } if(Reverse == null) { Reverse = false; } if(Force == null) { Force = false; } this.anim.play(id,Force,Reverse,Frame); this.applyAnimOffset(); } ,applyAnimOffset: function() { var AnimName = this.getCurrentAnimation(); var daOffset = this.animOffsets.h[AnimName]; if(Object.prototype.hasOwnProperty.call(this.animOffsets.h,AnimName)) { var xValue = daOffset[0]; var yValue = daOffset[1]; if(AnimName == "Boyfriend DJ watchin tv OG") { xValue += this.offsetX; yValue += this.offsetY; } var this1 = this.offset; var x = xValue; var y = yValue; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } else { var this1 = this.offset; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } ,destroy: function() { funkin_graphics_adobeanimate_FlxAtlasSprite.prototype.destroy.call(this); if(this.cartoonSnd != null) { this.cartoonSnd.destroy(); this.cartoonSnd = null; } } ,__class__: funkin_ui_freeplay_DJBoyfriend }); var funkin_ui_freeplay_DJBoyfriendState = $hxEnums["funkin.ui.freeplay.DJBoyfriendState"] = { __ename__:"funkin.ui.freeplay.DJBoyfriendState",__constructs__:null ,Intro: {_hx_name:"Intro",_hx_index:0,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} ,Idle: {_hx_name:"Idle",_hx_index:1,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} ,Confirm: {_hx_name:"Confirm",_hx_index:2,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} ,PumpIntro: {_hx_name:"PumpIntro",_hx_index:3,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} ,FistPump: {_hx_name:"FistPump",_hx_index:4,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} ,Spook: {_hx_name:"Spook",_hx_index:5,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} ,TV: {_hx_name:"TV",_hx_index:6,__enum__:"funkin.ui.freeplay.DJBoyfriendState",toString:$estr} }; funkin_ui_freeplay_DJBoyfriendState.__constructs__ = [funkin_ui_freeplay_DJBoyfriendState.Intro,funkin_ui_freeplay_DJBoyfriendState.Idle,funkin_ui_freeplay_DJBoyfriendState.Confirm,funkin_ui_freeplay_DJBoyfriendState.PumpIntro,funkin_ui_freeplay_DJBoyfriendState.FistPump,funkin_ui_freeplay_DJBoyfriendState.Spook,funkin_ui_freeplay_DJBoyfriendState.TV]; funkin_ui_freeplay_DJBoyfriendState.__empty_constructs__ = [funkin_ui_freeplay_DJBoyfriendState.Intro,funkin_ui_freeplay_DJBoyfriendState.Idle,funkin_ui_freeplay_DJBoyfriendState.Confirm,funkin_ui_freeplay_DJBoyfriendState.PumpIntro,funkin_ui_freeplay_DJBoyfriendState.FistPump,funkin_ui_freeplay_DJBoyfriendState.Spook,funkin_ui_freeplay_DJBoyfriendState.TV]; var funkin_ui_freeplay_DifficultyStars = function(x,y) { this.difficulty = 1; this.curDifficulty = 0; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.hsvShader = new funkin_graphics_shaders_HSVShader(); this.flames = new funkin_ui_freeplay_FreeplayFlames(0,0); this.add(this.flames); this.stars = new funkin_graphics_adobeanimate_FlxAtlasSprite(0,0,funkin_Paths.animateAtlas("freeplay/freeplayStars")); this.stars.anim.play("diff stars"); this.add(this.stars); this.stars.shader = this.hsvShader; var _g = 0; var _g1 = this.flames.group.members; while(_g < _g1.length) { var memb = _g1[_g]; ++_g; memb.shader = this.hsvShader; } }; $hxClasses["funkin.ui.freeplay.DifficultyStars"] = funkin_ui_freeplay_DifficultyStars; funkin_ui_freeplay_DifficultyStars.__name__ = "funkin.ui.freeplay.DifficultyStars"; funkin_ui_freeplay_DifficultyStars.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_DifficultyStars.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ curDifficulty: null ,difficulty: null ,stars: null ,flames: null ,hsvShader: null ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); if(this.curDifficulty < 15 && this.stars.anim.get_curFrame() >= (this.curDifficulty + 1) * 100) { this.stars.anim.play("diff stars",true,false,this.curDifficulty * 100); } } ,set_difficulty: function(value) { this.difficulty = value; if(this.difficulty <= 0) { this.difficulty = 0; this.set_curDifficulty(15); } else if(this.difficulty <= 15) { this.difficulty = value; this.set_curDifficulty(this.difficulty - 1); } else { this.difficulty = 15; this.set_curDifficulty(this.difficulty - 1); } this.flameCheck(); return this.difficulty; } ,flameCheck: function() { if(this.difficulty > 10) { this.flames.set_flameCount(this.difficulty - 10); } else { this.flames.set_flameCount(0); } } ,set_curDifficulty: function(value) { this.curDifficulty = value; if(this.curDifficulty == 15) { this.stars.anim.play("diff stars",true,false,1500); this.stars.anim.pause(); } else { this.stars.anim.set_curFrame(this.curDifficulty * 100 | 0); this.stars.anim.play("diff stars",true,false,this.curDifficulty * 100); } return this.curDifficulty; } ,__class__: funkin_ui_freeplay_DifficultyStars ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_difficulty:"set_difficulty",set_curDifficulty:"set_curDifficulty"}) }); var funkin_ui_freeplay_FreeplayFlames = function(x,y) { this.timers = []; this.properPositions = false; this.flameTimer = 0.25; this.flameCount = 0; this.flameSpreadY = 6; this.flameSpreadX = 29; this.flameY = 103; this.flameX = 917; flixel_group_FlxTypedSpriteGroup.call(this,x,y); var _g = 0; while(_g < 5) { var i = _g++; var flame = [new flixel_FlxSprite(this.flameX + this.flameSpreadX * i,this.flameY + this.flameSpreadY * i)]; flame[0].set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplayFlame")); flame[0].animation.addByPrefix("flame","fire loop full instance 1",flixel_FlxG.random.int(23,25),false); flame[0].animation.play("flame"); flame[0].set_visible(false); this.set_flameCount(0); flame[0].animation.finishCallback = (function(flame) { return function(_) { flame[0].animation.play("flame",true,false,2); }; })(flame); this.add(flame[0]); } }; $hxClasses["funkin.ui.freeplay.FreeplayFlames"] = funkin_ui_freeplay_FreeplayFlames; funkin_ui_freeplay_FreeplayFlames.__name__ = "funkin.ui.freeplay.FreeplayFlames"; funkin_ui_freeplay_FreeplayFlames.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_FreeplayFlames.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ flameX: null ,flameY: null ,flameSpreadX: null ,flameSpreadY: null ,flameCount: null ,flameTimer: null ,properPositions: null ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); if(!this.properPositions) { this.setFlamePositions(); this.properPositions = true; } } ,timers: null ,set_flameCount: function(value) { var _gthis = this; var _g = 0; var _g1 = this.timers; while(_g < _g1.length) { var timer = _g1[_g]; ++_g; timer.active = false; timer.destroy(); HxOverrides.remove(this.timers,timer); } this.flameCount = value; var visibleCount = 0; var _g = 0; while(_g < 5) { var i = [_g++]; if(this.group.members[i[0]] == null) { continue; } var flame = [this.group.members[i[0]]]; if(i[0] < this.flameCount) { if(!flame[0].visible) { var nextTimer = new flixel_util_FlxTimer().start(this.flameTimer * visibleCount,(function(flame,i) { return function(currentTimer) { if(i[0] >= _gthis.flameCount) { haxe_Log.trace("EARLY EXIT",{ fileName : "source/funkin/ui/freeplay/FreeplayFlames.hx", lineNumber : 79, className : "funkin.ui.freeplay.FreeplayFlames", methodName : "set_flameCount"}); return; } HxOverrides.remove(_gthis.timers,currentTimer); flame[0].animation.play("flame",true); flame[0].set_visible(true); }; })(flame,i)); this.timers.push(nextTimer); ++visibleCount; } } else { flame[0].set_visible(false); } } return this.flameCount; } ,setFlamePositions: function() { var flame = this.group.members[0]; flame.set_x(this.flameX + this.flameSpreadX * 0); flame.set_y(this.flameY + this.flameSpreadY * 0); var flame = this.group.members[1]; flame.set_x(this.flameX + this.flameSpreadX); flame.set_y(this.flameY + this.flameSpreadY); var flame = this.group.members[2]; flame.set_x(this.flameX + this.flameSpreadX * 2); flame.set_y(this.flameY + this.flameSpreadY * 2); var flame = this.group.members[3]; flame.set_x(this.flameX + this.flameSpreadX * 3); flame.set_y(this.flameY + this.flameSpreadY * 3); var flame = this.group.members[4]; flame.set_x(this.flameX + this.flameSpreadX * 4); flame.set_y(this.flameY + this.flameSpreadY * 4); } ,set_flameX: function(value) { this.flameX = value; this.setFlamePositions(); return this.flameX; } ,set_flameY: function(value) { this.flameY = value; this.setFlamePositions(); return this.flameY; } ,set_flameSpreadX: function(value) { this.flameSpreadX = value; this.setFlamePositions(); return this.flameSpreadX; } ,set_flameSpreadY: function(value) { this.flameSpreadY = value; this.setFlamePositions(); return this.flameSpreadY; } ,__class__: funkin_ui_freeplay_FreeplayFlames ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_flameCount:"set_flameCount",set_flameSpreadY:"set_flameSpreadY",set_flameSpreadX:"set_flameSpreadX",set_flameY:"set_flameY",set_flameX:"set_flameX"}) }); var funkin_ui_freeplay_FreeplayScore = function(x,y,digitCount,scoreShit) { if(scoreShit == null) { scoreShit = 100; } this.scoreShit = 0; flixel_group_FlxTypedSpriteGroup.call(this,x,y); var _g = 0; var _g1 = digitCount; while(_g < _g1) { var i = _g++; this.add(new funkin_ui_freeplay_ScoreNum(x + 45 * i,y,0)); } this.set_scoreShit(scoreShit); }; $hxClasses["funkin.ui.freeplay.FreeplayScore"] = funkin_ui_freeplay_FreeplayScore; funkin_ui_freeplay_FreeplayScore.__name__ = "funkin.ui.freeplay.FreeplayScore"; funkin_ui_freeplay_FreeplayScore.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_FreeplayScore.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ scoreShit: null ,set_scoreShit: function(val) { if(this.group == null || this.group.members == null) { return val; } var loopNum = this.group.members.length - 1; var dumbNumb = Std.parseInt(val == null ? "null" : "" + val); var prevNum; while(dumbNumb > 0) { this.group.members[loopNum].set_digit(dumbNumb % 10); dumbNumb = Math.floor(dumbNumb / 10); --loopNum; } while(loopNum > 0) { this.group.members[loopNum].set_digit(0); --loopNum; } return val; } ,updateScore: function(scoreNew) { this.set_scoreShit(scoreNew); } ,__class__: funkin_ui_freeplay_FreeplayScore ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_scoreShit:"set_scoreShit"}) }); var funkin_ui_freeplay_ScoreNum = function(x,y,initDigit) { if(initDigit == null) { initDigit = 0; } this.numToString = ["ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE"]; this.baseX = 0; this.baseY = 0; this.digit = 0; flixel_FlxSprite.call(this,x,y); this.baseY = y; this.baseX = x; this.set_frames(funkin_Paths.getSparrowAtlas("digital_numbers")); var stringNum = this.numToString[0]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[1]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[2]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[3]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[4]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[5]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[6]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[7]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[8]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); var stringNum = this.numToString[9]; this.animation.addByPrefix(stringNum,"" + stringNum + " DIGITAL",24,false); this.set_digit(initDigit); this.animation.play(this.numToString[this.digit],true); this.setGraphicSize(this.get_width() * 0.4 | 0); this.updateHitbox(); }; $hxClasses["funkin.ui.freeplay.ScoreNum"] = funkin_ui_freeplay_ScoreNum; funkin_ui_freeplay_ScoreNum.__name__ = "funkin.ui.freeplay.ScoreNum"; funkin_ui_freeplay_ScoreNum.__super__ = flixel_FlxSprite; funkin_ui_freeplay_ScoreNum.prototype = $extend(flixel_FlxSprite.prototype,{ digit: null ,set_digit: function(val) { if(this.animation._curAnim != null && this.animation._curAnim.name != this.numToString[val]) { this.animation.play(this.numToString[val],true,false,0); this.updateHitbox(); switch(val) { case 1: this.offset.set_x(this.offset.x - 15); break; case 4: break; case 5: break; case 7: break; case 9: break; default: this.centerOffsets(false); } } return val; } ,baseY: null ,baseX: null ,numToString: null ,__class__: funkin_ui_freeplay_ScoreNum ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_digit:"set_digit"}) }); var funkin_ui_freeplay_DifficultySelector = function(x,y,flipped,controls) { flixel_FlxSprite.call(this,x,y); this.controls = controls; this.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplaySelector")); this.animation.addByPrefix("shine","arrow pointer loop",24); this.animation.play("shine"); this.whiteShader = new funkin_graphics_shaders_PureColor(-1); this.shader = this.whiteShader; this.set_flipX(flipped); }; $hxClasses["funkin.ui.freeplay.DifficultySelector"] = funkin_ui_freeplay_DifficultySelector; funkin_ui_freeplay_DifficultySelector.__name__ = "funkin.ui.freeplay.DifficultySelector"; funkin_ui_freeplay_DifficultySelector.__super__ = flixel_FlxSprite; funkin_ui_freeplay_DifficultySelector.prototype = $extend(flixel_FlxSprite.prototype,{ controls: null ,whiteShader: null ,update: function(elapsed) { var tmp; if(this.flipX && this.controls._ui_right.checkJustPressed()) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { this.moveShitDown(); } var tmp; if(!this.flipX && this.controls._ui_left.checkJustPressed()) { var _this = flixel_FlxG.keys.pressed; tmp = !_this.keyManager.checkStatusUnsafe(17,_this.status); } else { tmp = false; } if(tmp) { this.moveShitDown(); } flixel_FlxSprite.prototype.update.call(this,elapsed); } ,moveShitDown: function() { var _gthis = this; this.offset.set_y(this.offset.y - 5); this.whiteShader.set_colorSet(true); this.scale.set_x(this.scale.set_y(0.5)); new flixel_util_FlxTimer().start(0.0833333333333333287,function(tmr) { _gthis.scale.set_x(_gthis.scale.set_y(1)); _gthis.whiteShader.set_colorSet(false); _gthis.updateHitbox(); }); } ,__class__: funkin_ui_freeplay_DifficultySelector }); var funkin_ui_freeplay_FreeplaySongData = function(levelId,songId,song,displayedVariations) { this.displayedVariations = [funkin_util_Constants.DEFAULT_VARIATION]; this.scoringRank = null; this.currentDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; this.albumId = null; this.difficultyRating = 0; this.songStartingBpm = 0; this.songCharacter = ""; this.songName = ""; this.songDifficulties = []; this.songId = ""; this.levelId = ""; this.isNew = false; this.isFav = false; this.levelId = levelId; this.songId = songId; this.song = song; this.isFav = funkin_save_Save.get_instance().isSongFavorited(songId); if(displayedVariations != null) { this.displayedVariations = displayedVariations; } this.updateValues(displayedVariations); }; $hxClasses["funkin.ui.freeplay.FreeplaySongData"] = funkin_ui_freeplay_FreeplaySongData; funkin_ui_freeplay_FreeplaySongData.__name__ = "funkin.ui.freeplay.FreeplaySongData"; funkin_ui_freeplay_FreeplaySongData.prototype = { isFav: null ,isNew: null ,song: null ,levelId: null ,songId: null ,songDifficulties: null ,songName: null ,songCharacter: null ,songStartingBpm: null ,difficultyRating: null ,albumId: null ,currentDifficulty: null ,scoringRank: null ,displayedVariations: null ,set_currentDifficulty: function(value) { this.currentDifficulty = value; this.updateValues(this.displayedVariations); return value; } ,toggleFavorite: function() { this.isFav = !this.isFav; if(this.isFav) { funkin_save_Save.get_instance().favoriteSong(this.songId); } else { funkin_save_Save.get_instance().unfavoriteSong(this.songId); } return this.isFav; } ,updateValues: function(variations) { this.songDifficulties = this.song.listDifficulties(null,variations,false,false); if(this.songDifficulties.indexOf(this.currentDifficulty) == -1) { this.set_currentDifficulty(funkin_util_Constants.DEFAULT_DIFFICULTY); } var songDifficulty = this.song.getDifficulty(this.currentDifficulty,null,variations); if(songDifficulty == null) { return; } this.songStartingBpm = songDifficulty.getStartingBPM(); this.songName = songDifficulty.songName; this.songCharacter = songDifficulty.characters.opponent; this.difficultyRating = songDifficulty.difficultyRating; if(songDifficulty.album == null) { flixel_FlxG.log.advanced("No album for: " + songDifficulty.songName,flixel_system_debug_log_LogStyle.WARNING,true); this.albumId = funkin_util_Constants.DEFAULT_ALBUM_ID; } else { this.albumId = songDifficulty.album; } this.scoringRank = funkin_save_Save.get_instance().getSongRank(this.songId,this.currentDifficulty); this.isNew = this.song.isSongNew(this.currentDifficulty); } ,__class__: funkin_ui_freeplay_FreeplaySongData ,__properties__: {set_currentDifficulty:"set_currentDifficulty"} }; var funkin_ui_freeplay_DifficultySprite = function(diffId) { flixel_FlxSprite.call(this); this.difficultyId = diffId; if(lime_utils_Assets.exists(funkin_Paths.file("images/freeplay/freeplay" + diffId + ".xml"))) { this.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplay" + diffId)); this.animation.addByPrefix("idle","idle0",24,true); if(funkin_Preferences.get_flashingLights()) { this.animation.play("idle"); } } else { this.loadGraphic(funkin_Paths.image("freeplay/freeplay" + diffId)); } }; $hxClasses["funkin.ui.freeplay.DifficultySprite"] = funkin_ui_freeplay_DifficultySprite; funkin_ui_freeplay_DifficultySprite.__name__ = "funkin.ui.freeplay.DifficultySprite"; funkin_ui_freeplay_DifficultySprite.__super__ = flixel_FlxSprite; funkin_ui_freeplay_DifficultySprite.prototype = $extend(flixel_FlxSprite.prototype,{ difficultyId: null ,__class__: funkin_ui_freeplay_DifficultySprite }); var funkin_ui_freeplay_LetterSort = function(x,y) { this.inputEnabled = true; this.grpSeperators = []; this.curSelection = 2; this.letters = []; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.leftArrow = new flixel_FlxSprite(-20,15).loadGraphic(funkin_Paths.image("freeplay/miniArrow")); this.leftArrow.set_flipX(true); this.add(this.leftArrow); var _g = 0; while(_g < 5) { var i = _g++; var letter = new funkin_ui_freeplay_FreeplayLetter(i * 80,0,i); letter.set_x(letter.x + 50); letter.set_y(letter.y + 50); this.add(letter); this.letters.push(letter); if(i != 2) { letter.scale.set_x(letter.scale.set_y(0.8)); } var darkness = Math.abs(i - 2) / 6; letter.set_color(flixel_util_FlxColor.getDarkened(letter.color,darkness)); if(i == 4) { continue; } var sep = new flixel_FlxSprite(i * 80 + 60,20).loadGraphic(funkin_Paths.image("freeplay/seperator")); sep.set_color(flixel_util_FlxColor.getDarkened(letter.color,darkness)); this.add(sep); this.grpSeperators.push(sep); } this.rightArrow = new flixel_FlxSprite(380,15).loadGraphic(funkin_Paths.image("freeplay/miniArrow")); this.add(this.rightArrow); this.changeSelection(0); }; $hxClasses["funkin.ui.freeplay.LetterSort"] = funkin_ui_freeplay_LetterSort; funkin_ui_freeplay_LetterSort.__name__ = "funkin.ui.freeplay.LetterSort"; funkin_ui_freeplay_LetterSort.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_LetterSort.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ letters: null ,curSelection: null ,changeSelectionCallback: null ,leftArrow: null ,rightArrow: null ,grpSeperators: null ,inputEnabled: null ,get_controls: function() { return funkin_PlayerSettings.player1.controls; } ,update: function(elapsed) { flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); if(this.inputEnabled) { if(funkin_PlayerSettings.player1.controls._freeplay_left.check()) { this.changeSelection(-1); } if(funkin_PlayerSettings.player1.controls._freeplay_right.check()) { this.changeSelection(1); } } } ,changeSelection: function(diff) { if(diff == null) { diff = 0; } this.doLetterChangeAnims(diff); var multiPosOrNeg = diff > 0 ? 1 : -1; var arrowToMove = diff < 0 ? this.leftArrow : this.rightArrow; arrowToMove.offset.set_x(3 * multiPosOrNeg); new flixel_util_FlxTimer().start(0.0833333333333333287,function(_) { arrowToMove.offset.set_x(0); }); } ,doLetterChangeAnims: function(diff) { var ezTimer = function(frameNum,spr,offsetNum) { new flixel_util_FlxTimer().start(frameNum / 24,function(_) { spr.offset.set_x(offsetNum); }); }; var positions_2; var positions_1; var positions_0 = -10; positions_1 = -22; positions_2 = 2; var positions_3 = 0; var multiPosOrNeg = diff > 0 ? 1 : -1; var _g = 0; var _g1 = this.grpSeperators; while(_g < _g1.length) { var sep = _g1[_g]; ++_g; ezTimer(0,sep,positions_0 * multiPosOrNeg); ezTimer(1,sep,positions_1 * multiPosOrNeg); ezTimer(2,sep,positions_2 * multiPosOrNeg); ezTimer(3,sep,positions_3 * multiPosOrNeg); } var _g_current = 0; var _g_array = this.letters; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var index = [_g_key]; var letter = [_g_value]; letter[0].offset.set_x(positions_0 * multiPosOrNeg); new flixel_util_FlxTimer().start(0.0416666666666666644,(function(letter,index) { return function(_) { letter[0].offset.set_x(positions_1 * multiPosOrNeg); if(index[0] == 0) { letter[0].set_visible(false); } }; })(letter,index)); new flixel_util_FlxTimer().start(0.0833333333333333287,(function(letter,index) { return function(_) { letter[0].offset.set_x(positions_2 * multiPosOrNeg); if(index[0] == 0.) { letter[0].set_visible(true); } }; })(letter,index)); if(index[0] == 2) { ezTimer(3,letter[0],0); continue; } ezTimer(3,letter[0],positions_3 * multiPosOrNeg); } this.curSelection += diff; if(this.curSelection < 0) { this.curSelection = this.letters[0].regexLetters.length - 1; } if(this.curSelection >= this.letters[0].regexLetters.length) { this.curSelection = 0; } var _g = 0; var _g1 = this.letters; while(_g < _g1.length) { var letter1 = _g1[_g]; ++_g; letter1.changeLetter(diff,this.curSelection); } if(this.changeSelectionCallback != null) { this.changeSelectionCallback(this.letters[2].regexLetters[this.letters[2].curLetter]); } } ,__class__: funkin_ui_freeplay_LetterSort ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{get_controls:"get_controls"}) }); var funkin_ui_freeplay_FreeplayLetter = function(x,y,letterInd) { this.curLetter = 0; this.animLetters = []; this.regexLetters = []; funkin_graphics_adobeanimate_FlxAtlasSprite.call(this,x,y,funkin_Paths.animateAtlas("freeplay/sortedLetters")); var alphabet = "A-B_C-D_E-H_I-L_M-N_O-R_S_T_U-Z"; this.regexLetters = alphabet.split("_"); this.regexLetters.splice(0,0,"ALL"); this.regexLetters.splice(0,0,"fav"); this.regexLetters.splice(0,0,"#"); var _this = this.regexLetters; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = StringTools.replace(_this[i],"-",""); } this.animLetters = result; if(letterInd != null) { this.anim.play(this.animLetters[letterInd] + " move"); this.anim.pause(); this.curLetter = letterInd; } }; $hxClasses["funkin.ui.freeplay.FreeplayLetter"] = funkin_ui_freeplay_FreeplayLetter; funkin_ui_freeplay_FreeplayLetter.__name__ = "funkin.ui.freeplay.FreeplayLetter"; funkin_ui_freeplay_FreeplayLetter.__super__ = funkin_graphics_adobeanimate_FlxAtlasSprite; funkin_ui_freeplay_FreeplayLetter.prototype = $extend(funkin_graphics_adobeanimate_FlxAtlasSprite.prototype,{ regexLetters: null ,animLetters: null ,curLetter: null ,changeLetter: function(diff,curSelection) { if(diff == null) { diff = 0; } this.curLetter += diff; if(this.curLetter < 0) { this.curLetter = this.regexLetters.length - 1; } if(this.curLetter >= this.regexLetters.length) { this.curLetter = 0; } var animName = this.animLetters[this.curLetter] + " move"; switch(this.animLetters[this.curLetter]) { case "IL": animName = "IL move"; break; case "s": animName = "S move"; break; case "t": animName = "T move"; break; } this.anim.play(animName); if(curSelection != this.curLetter) { this.anim.pause(); } } ,__class__: funkin_ui_freeplay_FreeplayLetter }); var funkin_ui_freeplay_ScriptedAlbum = function(id) { funkin_ui_freeplay_Album.call(this,id); }; $hxClasses["funkin.ui.freeplay.ScriptedAlbum"] = funkin_ui_freeplay_ScriptedAlbum; funkin_ui_freeplay_ScriptedAlbum.__name__ = "funkin.ui.freeplay.ScriptedAlbum"; funkin_ui_freeplay_ScriptedAlbum.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_ui_freeplay_ScriptedAlbum.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.ui.freeplay.Album"); }; funkin_ui_freeplay_ScriptedAlbum.init = function(clsName,id) { var value = $hxClasses["funkin.ui.freeplay.ScriptedAlbum"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.ui.freeplay.Album"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.ui.freeplay.ScriptedAlbum" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_ui_freeplay_ScriptedAlbum.__super__ = funkin_ui_freeplay_Album; funkin_ui_freeplay_ScriptedAlbum.prototype = $extend(funkin_ui_freeplay_Album.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedAlbum"; var superName = "Album"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,hasAlbumTitleAnimations: function() { var fieldName = "hasAlbumTitleAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.hasAlbumTitleAnimations.call(this); } } ,getAlbumTitleAssetKey: function() { var fieldName = "getAlbumTitleAssetKey"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.getAlbumTitleAssetKey.call(this); } } ,getAlbumTitleAnimations: function() { var fieldName = "getAlbumTitleAnimations"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.getAlbumTitleAnimations.call(this); } } ,getAlbumName: function() { var fieldName = "getAlbumName"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.getAlbumName.call(this); } } ,getAlbumArtists: function() { var fieldName = "getAlbumArtists"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.getAlbumArtists.call(this); } } ,getAlbumArtGraphic: function() { var fieldName = "getAlbumArtGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.getAlbumArtGraphic.call(this); } } ,getAlbumArtAssetKey: function() { var fieldName = "getAlbumArtAssetKey"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_freeplay_Album.prototype.getAlbumArtAssetKey.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_freeplay_Album.prototype.destroy.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_ui_freeplay_Album.prototype.toString.call(this); } ,__super_hasAlbumTitleAnimations: function() { var fieldName = "hasAlbumTitleAnimations"; return funkin_ui_freeplay_Album.prototype.hasAlbumTitleAnimations.call(this); } ,__super_getAlbumTitleAssetKey: function() { var fieldName = "getAlbumTitleAssetKey"; return funkin_ui_freeplay_Album.prototype.getAlbumTitleAssetKey.call(this); } ,__super_getAlbumTitleAnimations: function() { var fieldName = "getAlbumTitleAnimations"; return funkin_ui_freeplay_Album.prototype.getAlbumTitleAnimations.call(this); } ,__super_getAlbumName: function() { var fieldName = "getAlbumName"; return funkin_ui_freeplay_Album.prototype.getAlbumName.call(this); } ,__super_getAlbumArtists: function() { var fieldName = "getAlbumArtists"; return funkin_ui_freeplay_Album.prototype.getAlbumArtists.call(this); } ,__super_getAlbumArtGraphic: function() { var fieldName = "getAlbumArtGraphic"; return funkin_ui_freeplay_Album.prototype.getAlbumArtGraphic.call(this); } ,__super_getAlbumArtAssetKey: function() { var fieldName = "getAlbumArtAssetKey"; return funkin_ui_freeplay_Album.prototype.getAlbumArtAssetKey.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_ui_freeplay_Album.prototype.destroy.call(this); } ,__class__: funkin_ui_freeplay_ScriptedAlbum }); var funkin_ui_freeplay_SongMenuItem = function(x,y) { this.realScaled = 0.8; this.xPosOutLerpLol = [0.245,0.75,0.98,0.98,1.2]; this.xPosLerpLol = [0.9,0.4,0.16,0.16,0.22,0.22,0.245]; this.xFrames = [1.7,1.8,0.85,0.85,0.97,0.97,1]; this.frameOutTypeBeat = 0; this.frameOutTicker = 0; this.frameInTypeBeat = 0; this.frameInTicker = 0; this.weekNumbers = []; this.smallNumbers = []; this.bigNumbers = []; this.doJumpOut = false; this.doJumpIn = false; this.doLerp = false; this.targetPos = new flixel_math_FlxBasePoint(0,0); this.ranks = ["fail","average","great","excellent","perfect","perfectsick"]; this.songData = null; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.capsule = new flixel_FlxSprite(); this.capsule.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplayCapsule")); this.capsule.animation.addByPrefix("selected","mp3 capsule w backing0",24); this.capsule.animation.addByPrefix("unselected","mp3 capsule w backing NOT SELECTED",24); this.add(this.capsule); this.bpmText = new flixel_FlxSprite(144,87).loadGraphic(funkin_Paths.image("freeplay/freeplayCapsule/bpmtext")); this.bpmText.setGraphicSize(this.bpmText.get_width() * 0.9 | 0); this.add(this.bpmText); this.difficultyText = new flixel_FlxSprite(414,87).loadGraphic(funkin_Paths.image("freeplay/freeplayCapsule/difficultytext")); this.difficultyText.setGraphicSize(this.difficultyText.get_width() * 0.9 | 0); this.add(this.difficultyText); this.weekType = new flixel_FlxSprite(291,87); this.weekType.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplayCapsule/weektypes")); this.weekType.animation.addByPrefix("WEEK","WEEK text instance 1",24,false); this.weekType.animation.addByPrefix("WEEKEND","WEEKEND text instance 1",24,false); this.weekType.setGraphicSize(this.weekType.get_width() * 0.9 | 0); this.add(this.weekType); this.newText = new flixel_FlxSprite(454,9); this.newText.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplayCapsule/new")); this.newText.animation.addByPrefix("newAnim","NEW notif",24,true); this.newText.animation.play("newAnim",true); this.newText.setGraphicSize(this.newText.get_width() * 0.9 | 0); this.add(this.newText); var bigNumber = new funkin_ui_freeplay_CapsuleNumber(466,32,true,0); this.add(bigNumber); this.bigNumbers.push(bigNumber); var bigNumber = new funkin_ui_freeplay_CapsuleNumber(496,32,true,0); this.add(bigNumber); this.bigNumbers.push(bigNumber); var smallNumber = new funkin_ui_freeplay_CapsuleNumber(185,88.5,false,0); this.add(smallNumber); this.smallNumbers.push(smallNumber); var smallNumber = new funkin_ui_freeplay_CapsuleNumber(196,88.5,false,0); this.add(smallNumber); this.smallNumbers.push(smallNumber); var smallNumber = new funkin_ui_freeplay_CapsuleNumber(207,88.5,false,0); this.add(smallNumber); this.smallNumbers.push(smallNumber); this.grpHide = new flixel_group_FlxTypedGroup(); this.fakeRanking = new funkin_ui_freeplay_FreeplayRank(420,41); this.add(this.fakeRanking); this.fakeBlurredRanking = new funkin_ui_freeplay_FreeplayRank(this.fakeRanking.x,this.fakeRanking.y); this.fakeBlurredRanking.shader = new funkin_graphics_shaders_GaussianBlurShader(1); this.add(this.fakeBlurredRanking); this.fakeRanking.set_visible(false); this.fakeBlurredRanking.set_visible(false); this.ranking = new funkin_ui_freeplay_FreeplayRank(420,41); this.add(this.ranking); this.blurredRanking = new funkin_ui_freeplay_FreeplayRank(this.ranking.x,this.ranking.y); this.blurredRanking.shader = new funkin_graphics_shaders_GaussianBlurShader(1); this.add(this.blurredRanking); this.sparkle = new flixel_FlxSprite(this.ranking.x,this.ranking.y); this.sparkle.set_frames(funkin_Paths.getSparrowAtlas("freeplay/sparkle")); this.sparkle.animation.addByPrefix("sparkle","sparkle",24,false); this.sparkle.animation.play("sparkle",true); var this1 = this.sparkle.scale; var x = 0.8; var y = 0.8; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.sparkle.set_blend(0); this.sparkle.set_visible(false); this.sparkle.set_alpha(0.7); this.add(this.sparkle); this.grayscaleShader = new funkin_graphics_shaders_Grayscale(1); this.songText = new funkin_ui_freeplay_CapsuleText(this.capsule.get_width() * 0.26,45,"Random",40 * this.realScaled | 0); this.add(this.songText); this.grpHide.add(this.songText); this.updateDifficultyRating(flixel_FlxG.random.int(0,20)); this.pixelIcon = new flixel_FlxSprite(160,35); this.pixelIcon.makeGraphic(32,32,0); this.pixelIcon.set_antialiasing(false); this.pixelIcon.set_active(false); this.add(this.pixelIcon); this.grpHide.add(this.pixelIcon); this.favIconBlurred = new flixel_FlxSprite(380,40); this.favIconBlurred.set_frames(funkin_Paths.getSparrowAtlas("freeplay/favHeart")); this.favIconBlurred.animation.addByPrefix("fav","favorite heart",24,false); this.favIconBlurred.animation.play("fav"); this.favIconBlurred.setGraphicSize(50,50); this.favIconBlurred.set_blend(0); this.favIconBlurred.shader = new funkin_graphics_shaders_GaussianBlurShader(1.2); this.favIconBlurred.set_visible(false); this.add(this.favIconBlurred); this.favIcon = new flixel_FlxSprite(this.favIconBlurred.x,this.favIconBlurred.y); this.favIcon.set_frames(funkin_Paths.getSparrowAtlas("freeplay/favHeart")); this.favIcon.animation.addByPrefix("fav","favorite heart",24,false); this.favIcon.animation.play("fav"); this.favIcon.setGraphicSize(50,50); this.favIcon.set_visible(false); this.favIcon.set_blend(0); this.add(this.favIcon); var weekNumber = new funkin_ui_freeplay_CapsuleNumber(355,88.5,false,0); this.add(weekNumber); this.weekNumbers.push(weekNumber); this.setVisibleGrp(false); }; $hxClasses["funkin.ui.freeplay.SongMenuItem"] = funkin_ui_freeplay_SongMenuItem; funkin_ui_freeplay_SongMenuItem.__name__ = "funkin.ui.freeplay.SongMenuItem"; funkin_ui_freeplay_SongMenuItem.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_freeplay_SongMenuItem.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ capsule: null ,pixelIcon: null ,songData: null ,selected: null ,songText: null ,favIconBlurred: null ,favIcon: null ,ranking: null ,blurredRanking: null ,fakeRanking: null ,fakeBlurredRanking: null ,ranks: null ,targetPos: null ,doLerp: null ,doJumpIn: null ,doJumpOut: null ,onConfirm: null ,grayscaleShader: null ,hsvShader: null ,bpmText: null ,difficultyText: null ,weekType: null ,newText: null ,bigNumbers: null ,smallNumbers: null ,weekNumbers: null ,impactThing: null ,sparkle: null ,sparkleTimer: null ,sparkleEffect: function(timer) { this.sparkle.setPosition(flixel_FlxG.random.float(this.ranking.x - 20,this.ranking.x + 3),flixel_FlxG.random.float(this.ranking.y - 29,this.ranking.y + 4)); this.sparkle.animation.play("sparkle",true); this.sparkleTimer = new flixel_util_FlxTimer().start(flixel_FlxG.random.float(1.2,4.5),$bind(this,this.sparkleEffect)); } ,checkWeek: function(name) { var weekNum = 0; switch(name) { case "blammed":case "philly-nice":case "pico": weekNum = 3; break; case "2hot":case "blazin":case "darnell":case "lit-up": weekNum = -1; break; case "bopeebo":case "dadbattle":case "fresh": weekNum = 1; break; case "high":case "milf":case "satin-panties": weekNum = 4; break; case "monster":case "south":case "spookeez": weekNum = 2; break; case "guns":case "stress":case "ugh": weekNum = 7; break; case "roses":case "senpai":case "thorns": weekNum = 6; break; case "cocoa":case "eggnog":case "winter-horrorland": weekNum = 5; break; default: weekNum = 0; } this.weekNumbers[0].set_digit(Math.abs(weekNum) | 0); if(weekNum == 0) { this.weekType.set_visible(false); this.weekNumbers[0].set_visible(false); } else { this.weekType.set_visible(true); this.weekNumbers[0].set_visible(true); } if(weekNum > 0) { this.weekType.animation.play("WEEK",true); } else { this.weekType.animation.play("WEEKEND",true); var fh = this.weekNumbers[0]; fh.offset.set_x(fh.offset.x - 35); } } ,checkClip: function() { var clipSize = 290; var clipType = 0; if(this.ranking.visible) { this.favIconBlurred.set_x(this.x + 370); this.favIcon.set_x(this.favIconBlurred.x); ++clipType; } else { this.favIconBlurred.set_x(this.favIcon.set_x(this.x + 405)); } if(this.favIcon.visible) { ++clipType; } switch(clipType) { case 1: clipSize = 245; break; case 2: clipSize = 210; break; } this.songText.set_clipWidth(clipSize); } ,updateBPM: function(newBPM) { var shiftX = 191; var tempShift = 0; if(Math.floor(newBPM / 100) == 1) { shiftX = 186; } var _g = 0; var _g1 = this.smallNumbers.length; while(_g < _g1) { var i = _g++; this.smallNumbers[i].set_x(this.x + (shiftX + i * 11)); switch(i) { case 0: if(newBPM < 100) { this.smallNumbers[i].set_digit(0); } else { this.smallNumbers[i].set_digit(Math.floor(newBPM / 100) % 10); } break; case 1: if(newBPM < 10) { this.smallNumbers[i].set_digit(0); } else { this.smallNumbers[i].set_digit(Math.floor(newBPM / 10) % 10); if(Math.floor(newBPM / 10) % 10 == 1) { tempShift = -4; } } break; case 2: this.smallNumbers[i].set_digit(newBPM % 10); break; default: haxe_Log.trace("why the fuck is this being called",{ fileName : "source/funkin/ui/freeplay/SongMenuItem.hx", lineNumber : 368, className : "funkin.ui.freeplay.SongMenuItem", methodName : "updateBPM"}); } var fh = this.smallNumbers[i]; fh.set_x(fh.x + tempShift); } } ,evilTrail: null ,fadeAnim: function() { var _gthis = this; this.impactThing = new funkin_graphics_FunkinSprite(0,0); this.impactThing.set_frames(this.capsule.frames); this.impactThing.set_frame(this.capsule.frame); this.impactThing.updateHitbox(); this.impactThing.set_alpha(0); this.impactThing.zIndex = this.capsule.zIndex - 3; this.add(this.impactThing); flixel_tweens_FlxTween.tween(this.impactThing.scale,{ x : 2.5, y : 2.5},0.5); this.evilTrail = new flixel_addons_effects_FlxTrail(this.impactThing,null,15,2,0.01,0.069); this.evilTrail.set_blend(0); this.evilTrail.zIndex = this.capsule.zIndex - 5; flixel_tweens_FlxTween.tween(this.evilTrail,{ alpha : 0},0.6,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : function(_) { _gthis.remove(_gthis.evilTrail); }}); this.add(this.evilTrail); switch(this.ranking.rank) { case "EXCELLENT": this.evilTrail.set_color(-144574); break; case "GOOD": this.evilTrail.set_color(-1079452); break; case "GREAT": this.evilTrail.set_color(-1378561); break; case "PERFECT": this.evilTrail.set_color(-42828); break; case "PERFECT_GOLD": this.evilTrail.set_color(-18919); break; case "SHIT": this.evilTrail.set_color(-10468097); break; } } ,getTrailColor: function() { return this.evilTrail.color; } ,updateDifficultyRating: function(newRating) { var ratingPadded = newRating < 10 ? "0" + newRating : "" + newRating; var _g = 0; var _g1 = this.bigNumbers.length; while(_g < _g1) { var i = _g++; switch(i) { case 0: if(newRating < 10) { this.bigNumbers[i].set_digit(0); } else { this.bigNumbers[i].set_digit(Math.floor(newRating / 10)); } break; case 1: this.bigNumbers[i].set_digit(newRating % 10); break; default: haxe_Log.trace("why the fuck is this being called",{ fileName : "source/funkin/ui/freeplay/SongMenuItem.hx", lineNumber : 447, className : "funkin.ui.freeplay.SongMenuItem", methodName : "updateDifficultyRating"}); } } } ,updateScoringRank: function(newRank) { if(this.sparkleTimer != null) { this.sparkleTimer.cancel(); } this.sparkle.set_visible(false); this.ranking.set_rank(newRank); this.blurredRanking.set_rank(newRank); if(newRank == "PERFECT_GOLD") { this.sparkleTimer = new flixel_util_FlxTimer().start(1,$bind(this,this.sparkleEffect)); this.sparkle.set_visible(true); } } ,set_hsvShader: function(value) { this.hsvShader = value; this.capsule.shader = this.hsvShader; this.songText.shader = this.hsvShader; return value; } ,textAppear: function() { var _gthis = this; this.songText.scale.set_x(1.7); this.songText.scale.set_y(0.2); new flixel_util_FlxTimer().start(0.0416666666666666644,function(_) { _gthis.songText.scale.set_x(0.4); _gthis.songText.scale.set_y(1.4); }); new flixel_util_FlxTimer().start(0.0833333333333333287,function(_) { _gthis.songText.scale.set_x(_gthis.songText.scale.set_y(1)); }); } ,setVisibleGrp: function(value) { var _g = 0; var _g1 = this.grpHide.members; while(_g < _g1.length) { var spr = _g1[_g]; ++_g; spr.set_visible(value); } if(value) { this.textAppear(); } this.updateSelected(); } ,init: function(x,y,songData) { if(x != null) { this.set_x(x); } if(y != null) { this.set_y(y); } this.songData = songData; var tmp = songData != null ? songData.songName : null; this.songText.set_text(tmp != null ? tmp : "Random"); if((songData != null ? songData.songCharacter : null) != null) { this.setCharacter(songData.songCharacter); } var tmp = (songData != null ? songData.songStartingBpm : null) | 0; this.updateBPM(tmp != null ? tmp : 0); var tmp = songData != null ? songData.difficultyRating : null; this.updateDifficultyRating(tmp != null ? tmp : 0); this.updateScoringRank(songData != null ? songData.scoringRank : null); this.newText.set_visible(songData != null ? songData.isNew : null); this.updateSelected(); this.checkWeek(songData != null ? songData.songId : null); } ,setCharacter: function(char) { var charPath = "freeplay/icons/"; switch(char) { case "dad": charPath += "daddypixel"; break; case "darnell-blazin": charPath += "darnellpixel"; break; case "mom-car": charPath += "mommypixel"; break; case "monster-christmas": charPath += "monsterpixel"; break; case "senpai-angry": charPath += "senpaipixel"; break; default: charPath += "" + char + "pixel"; } if(!openfl_utils_Assets.exists(funkin_Paths.image(charPath))) { haxe_Log.trace("[WARN] Character " + char + " has no freeplay icon.",{ fileName : "source/funkin/ui/freeplay/SongMenuItem.hx", lineNumber : 554, className : "funkin.ui.freeplay.SongMenuItem", methodName : "setCharacter"}); return; } this.pixelIcon.loadGraphic(funkin_Paths.image(charPath)); this.pixelIcon.scale.set_x(this.pixelIcon.scale.set_y(2)); if(char == "parents-christmas") { this.pixelIcon.origin.set_x(140); } else { this.pixelIcon.origin.set_x(100); } } ,frameInTicker: null ,frameInTypeBeat: null ,frameOutTicker: null ,frameOutTypeBeat: null ,xFrames: null ,xPosLerpLol: null ,xPosOutLerpLol: null ,realScaled: null ,initJumpIn: function(maxTimer,force) { var _gthis = this; this.frameInTypeBeat = 0; new flixel_util_FlxTimer().start(0.0416666666666666644 * maxTimer,function(doShit) { _gthis.doJumpIn = true; }); new flixel_util_FlxTimer().start(0.09 * maxTimer + 0.85,function(lerpTmr) { _gthis.doLerp = true; }); if(force) { this.set_visible(true); this.capsule.set_alpha(1); this.setVisibleGrp(true); } else { new flixel_util_FlxTimer().start(this.xFrames.length / 24 * 2.5,function(_) { _gthis.set_visible(true); _gthis.capsule.set_alpha(1); _gthis.setVisibleGrp(true); }); } } ,grpHide: null ,forcePosition: function() { this.set_visible(true); this.capsule.set_alpha(1); this.updateSelected(); this.doLerp = true; this.doJumpIn = false; this.doJumpOut = false; this.frameInTypeBeat = this.xFrames.length; this.frameOutTypeBeat = 0; this.capsule.scale.set_x(this.xFrames[this.frameInTypeBeat - 1]); this.capsule.scale.set_y(1 / this.xFrames[this.frameInTypeBeat - 1]); this.set_x(this.targetPos.x); this.set_y(this.targetPos.y); var fh = this.capsule; fh.scale.set_x(fh.scale.x * this.realScaled); var fh = this.capsule; fh.scale.set_y(fh.scale.y * this.realScaled); this.setVisibleGrp(true); } ,update: function(elapsed) { if(this.impactThing != null) { this.impactThing.set_angle(this.capsule.angle); } if(this.doJumpIn) { this.frameInTicker += elapsed; if(this.frameInTicker >= 0.0416666666666666644 && this.frameInTypeBeat < this.xFrames.length) { this.frameInTicker = 0; this.capsule.scale.set_x(this.xFrames[this.frameInTypeBeat]); this.capsule.scale.set_y(1 / this.xFrames[this.frameInTypeBeat]); this.set_x(flixel_FlxG.width * this.xPosLerpLol[Math.min(this.frameInTypeBeat,this.xPosLerpLol.length - 1) | 0]); var fh = this.capsule; fh.scale.set_x(fh.scale.x * this.realScaled); var fh = this.capsule; fh.scale.set_y(fh.scale.y * this.realScaled); this.frameInTypeBeat += 1; } } if(this.doJumpOut) { this.frameOutTicker += elapsed; if(this.frameOutTicker >= 0.0416666666666666644 && this.frameOutTypeBeat < this.xFrames.length) { this.frameOutTicker = 0; this.capsule.scale.set_x(this.xFrames[this.frameOutTypeBeat]); this.capsule.scale.set_y(1 / this.xFrames[this.frameOutTypeBeat]); this.set_x(flixel_FlxG.width * this.xPosOutLerpLol[Math.min(this.frameOutTypeBeat,this.xPosOutLerpLol.length - 1) | 0]); var fh = this.capsule; fh.scale.set_x(fh.scale.x * this.realScaled); var fh = this.capsule; fh.scale.set_y(fh.scale.y * this.realScaled); this.frameOutTypeBeat += 1; } } if(this.doLerp) { this.set_x(funkin_util_MathUtil.coolLerp(this.x,this.targetPos.x,0.3)); this.set_y(funkin_util_MathUtil.coolLerp(this.y,this.targetPos.y,0.4)); } flixel_group_FlxTypedSpriteGroup.prototype.update.call(this,elapsed); } ,intendedY: function(index) { return index * (this.get_height() * this.realScaled + 10) + 120; } ,set_selected: function(value) { this.selected = value; this.updateSelected(); return this.selected; } ,updateSelected: function() { this.grayscaleShader.setAmount(this.selected ? 0 : 0.8); this.songText.set_alpha(this.selected ? 1 : 0.6); this.songText.blurredText.set_visible(this.selected); this.capsule.offset.set_x(this.selected ? 0 : -5); this.capsule.animation.play(this.selected ? "selected" : "unselected"); this.ranking.set_alpha(this.selected ? 1 : 0.7); this.favIcon.set_alpha(this.selected ? 1 : 0.6); this.favIconBlurred.set_alpha(this.selected ? 1 : 0); this.ranking.set_color(this.selected ? -1 : -5592406); if(this.songText.tooLong) { this.songText.resetText(); } if(this.selected && this.songText.tooLong) { this.songText.initMove(); } } ,__class__: funkin_ui_freeplay_SongMenuItem ,__properties__: $extend(flixel_group_FlxTypedSpriteGroup.prototype.__properties__,{set_hsvShader:"set_hsvShader",set_selected:"set_selected"}) }); var funkin_ui_freeplay_FreeplayRank = function(x,y) { this.baseY = 0; this.baseX = 0; this.rank = null; flixel_FlxSprite.call(this,x,y); this.set_frames(funkin_Paths.getSparrowAtlas("freeplay/rankbadges")); this.animation.addByPrefix("PERFECT","PERFECT rank0",24,false); this.animation.addByPrefix("EXCELLENT","EXCELLENT rank0",24,false); this.animation.addByPrefix("GOOD","GOOD rank0",24,false); this.animation.addByPrefix("PERFECTSICK","PERFECT rank GOLD",24,false); this.animation.addByPrefix("GREAT","GREAT rank0",24,false); this.animation.addByPrefix("LOSS","LOSS rank0",24,false); this.set_blend(0); this.set_rank(null); var this1 = this.scale; var x = 0.9; var y = 0.9; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.updateHitbox(); }; $hxClasses["funkin.ui.freeplay.FreeplayRank"] = funkin_ui_freeplay_FreeplayRank; funkin_ui_freeplay_FreeplayRank.__name__ = "funkin.ui.freeplay.FreeplayRank"; funkin_ui_freeplay_FreeplayRank.__super__ = flixel_FlxSprite; funkin_ui_freeplay_FreeplayRank.prototype = $extend(flixel_FlxSprite.prototype,{ rank: null ,set_rank: function(val) { this.rank = val; if(this.rank == null || val == null) { this.set_visible(false); } else { this.set_visible(true); this.animation.play(funkin_play_scoring_ScoringRank.getFreeplayRankIconAsset(val),true,false); this.centerOffsets(false); if(val == null) { this.centerOffsets(false); this.set_visible(false); } else { switch(val) { case "EXCELLENT": break; case "GOOD": this.offset.set_y(this.offset.y - 8); break; case "GREAT": this.offset.set_y(this.offset.y - 8); break; case "PERFECT": break; case "PERFECT_GOLD": break; case "SHIT": break; default: this.centerOffsets(false); this.set_visible(false); } } this.updateHitbox(); } return this.rank = val; } ,baseX: null ,baseY: null ,__class__: funkin_ui_freeplay_FreeplayRank ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_rank:"set_rank"}) }); var funkin_ui_freeplay_CapsuleNumber = function(x,y,big,initDigit) { if(initDigit == null) { initDigit = 0; } if(big == null) { big = false; } this.numToString = ["ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE"]; this.baseX = 0; this.baseY = 0; this.digit = 0; flixel_FlxSprite.call(this,x,y); if(big) { this.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplayCapsule/bignumbers")); } else { this.set_frames(funkin_Paths.getSparrowAtlas("freeplay/freeplayCapsule/smallnumbers")); } var stringNum = this.numToString[0]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[1]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[2]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[3]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[4]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[5]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[6]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[7]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[8]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); var stringNum = this.numToString[9]; this.animation.addByPrefix(stringNum,"" + stringNum,24,false); this.set_digit(initDigit); this.animation.play(this.numToString[initDigit],true); this.setGraphicSize(this.get_width() * 0.9 | 0); this.updateHitbox(); }; $hxClasses["funkin.ui.freeplay.CapsuleNumber"] = funkin_ui_freeplay_CapsuleNumber; funkin_ui_freeplay_CapsuleNumber.__name__ = "funkin.ui.freeplay.CapsuleNumber"; funkin_ui_freeplay_CapsuleNumber.__super__ = flixel_FlxSprite; funkin_ui_freeplay_CapsuleNumber.prototype = $extend(flixel_FlxSprite.prototype,{ digit: null ,set_digit: function(val) { this.animation.play(this.numToString[val],true,false,0); this.centerOffsets(false); switch(val) { case 1: this.offset.set_x(this.offset.x - 4); break; case 3: this.offset.set_x(this.offset.x - 1); break; case 4: break; case 6: break; case 9: break; default: this.centerOffsets(false); } return val; } ,baseY: null ,baseX: null ,numToString: null ,__class__: funkin_ui_freeplay_CapsuleNumber ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_digit:"set_digit"}) }); var funkin_ui_haxeui_FlxGamepadActionInputSource = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.ui.haxeui.FlxGamepadActionInputSource"] = funkin_ui_haxeui_FlxGamepadActionInputSource; funkin_ui_haxeui_FlxGamepadActionInputSource.__name__ = "funkin.ui.haxeui.FlxGamepadActionInputSource"; funkin_ui_haxeui_FlxGamepadActionInputSource.__properties__ = {get_instance:"get_instance"}; funkin_ui_haxeui_FlxGamepadActionInputSource.instance = null; funkin_ui_haxeui_FlxGamepadActionInputSource.get_instance = function() { if(funkin_ui_haxeui_FlxGamepadActionInputSource.instance == null) { funkin_ui_haxeui_FlxGamepadActionInputSource.instance = new funkin_ui_haxeui_FlxGamepadActionInputSource(); } return funkin_ui_haxeui_FlxGamepadActionInputSource.instance; }; funkin_ui_haxeui_FlxGamepadActionInputSource.__super__ = flixel_FlxBasic; funkin_ui_haxeui_FlxGamepadActionInputSource.prototype = $extend(flixel_FlxBasic.prototype,{ start: function() { flixel_FlxG.plugins.addPlugin(this); } ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); if(flixel_FlxG.gamepads.firstActive != null) { this.updateGamepad(elapsed,flixel_FlxG.gamepads.firstActive); } } ,updateGamepad: function(elapsed,gamepad) { var _this = gamepad.justPressed; var id = 6; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); HxOverrides.remove(flixel_FlxG.plugins.list,this); } ,__class__: funkin_ui_haxeui_FlxGamepadActionInputSource }); var funkin_ui_haxeui_HaxeUIState = function(key) { funkin_ui_MusicBeatState.call(this); this._componentKey = key; }; $hxClasses["funkin.ui.haxeui.HaxeUIState"] = funkin_ui_haxeui_HaxeUIState; funkin_ui_haxeui_HaxeUIState.__name__ = "funkin.ui.haxeui.HaxeUIState"; funkin_ui_haxeui_HaxeUIState.__super__ = funkin_ui_MusicBeatState; funkin_ui_haxeui_HaxeUIState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ component: null ,_componentKey: null ,create: function() { funkin_ui_MusicBeatState.prototype.create.call(this); if(this.component == null) { this.component = this.buildComponent(this._componentKey); } if(this.component != null) { this.add(this.component); } } ,buildComponent: function(assetPath) { try { return haxe_ui_RuntimeComponentBuilder.fromAsset(assetPath); } catch( _g ) { var e = haxe_Exception.caught(_g); lime_app_Application.current.__window.alert("Error building component \"" + assetPath + "\": " + Std.string(e),"HaxeUI Parsing Error"); return null; } } ,contextMenu: null ,showContextMenu: function(assetPath,xPos,yPos) { if(this.contextMenu != null) { this.contextMenu.destroy(); } this.contextMenu = this.buildComponent(assetPath); if(this.contextMenu != null) { this.contextMenu.set_left(xPos); this.contextMenu.set_top(yPos); haxe_ui_core_Screen.get_instance().addComponent(this.contextMenu); } return this.contextMenu; } ,registerContextMenu: function(target,assetPath) { var _gthis = this; if(target == null) { haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,function(e) { _gthis.showContextMenu(assetPath,e.screenX,e.screenY); }); } else { target.registerEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,function(e) { _gthis.showContextMenu(assetPath,e.screenX,e.screenY); }); } } ,addUIClickListener: function(key,callback) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 105, className : "funkin.ui.haxeui.HaxeUIState", methodName : "addUIClickListener"}); } else { target.set_onClick(callback); } } ,addUIRightClickListener: function(key,callback) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 122, className : "funkin.ui.haxeui.HaxeUIState", methodName : "addUIRightClickListener"}); } else { target.set_onRightClick(callback); } } ,setComponentText: function(key,text) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 136, className : "funkin.ui.haxeui.HaxeUIState", methodName : "setComponentText"}); } else { target.set_text(text); } } ,setComponentShortcutText: function(key,text) { var target = this.findComponent(key,haxe_ui_containers_menus_MenuItem); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 150, className : "funkin.ui.haxeui.HaxeUIState", methodName : "setComponentShortcutText"}); } else { target.set_shortcutText(text); } } ,addTooltip: function(key,text) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 164, className : "funkin.ui.haxeui.HaxeUIState", methodName : "addTooltip"}); } else { target.set_tooltip(text); } } ,addUIChangeListener: function(key,callback) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 181, className : "funkin.ui.haxeui.HaxeUIState", methodName : "addUIChangeListener"}); } else { target.set_onChange(callback); } } ,setUIValue: function(key,value) { var target = this.findComponent(key); if(target == null) { haxe_Log.trace("WARN: Could not locate menu item: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 199, className : "funkin.ui.haxeui.HaxeUIState", methodName : "setUIValue"}); return value; } else { return target.set_value(value); } } ,setUICheckboxSelected: function(key,value) { var targetA = this.findComponent(key,haxe_ui_components_CheckBox); if(targetA != null) { return targetA.set_selected(value); } var targetB = this.findComponent(key,haxe_ui_containers_menus_MenuCheckBox); if(targetB != null) { return targetB.set_selected(value); } haxe_Log.trace("WARN: Could not locate check box: " + key,{ fileName : "source/funkin/ui/haxeui/HaxeUIState.hx", lineNumber : 228, className : "funkin.ui.haxeui.HaxeUIState", methodName : "setUICheckboxSelected"}); return value; } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } if(this.component == null) { return null; } return this.component.findComponent(criteria,type,recursive,searchType); } ,destroy: function() { if(this.component != null) { this.remove(this.component); } this.component = null; funkin_ui_MusicBeatState.prototype.destroy.call(this); } ,__class__: funkin_ui_haxeui_HaxeUIState }); var funkin_ui_haxeui_components_CharacterPlayer = function(defaultToBf) { if(defaultToBf == null) { defaultToBf = true; } this.targetScale = 1.0; this._characterLoaded = false; this._redispatchStart = false; this._redispatchLoaded = false; haxe_ui_containers_Box.call(this); if(defaultToBf) { this.loadCharacter("bf"); } }; $hxClasses["funkin.ui.haxeui.components.CharacterPlayer"] = funkin_ui_haxeui_components_CharacterPlayer; funkin_ui_haxeui_components_CharacterPlayer.__name__ = "funkin.ui.haxeui.components.CharacterPlayer"; funkin_ui_haxeui_components_CharacterPlayer.__super__ = haxe_ui_containers_Box; funkin_ui_haxeui_components_CharacterPlayer.prototype = $extend(haxe_ui_containers_Box.prototype,{ character: null ,get_charId: function() { var tmp = this.character; var tmp1 = tmp != null ? tmp.characterId : null; if(tmp1 != null) { return tmp1; } else { return ""; } } ,set_charId: function(value) { this.loadCharacter(value); return value; } ,get_charName: function() { var tmp = this.character; var tmp1 = tmp != null ? tmp.characterName : null; if(tmp1 != null) { return tmp1; } else { return "Unknown"; } } ,_redispatchLoaded: null ,_redispatchStart: null ,_characterLoaded: null ,loadCharacter: function(id) { var _gthis = this; if(id == null) { return; } if(this.character != null) { this.remove(this.character); this.character.destroy(); this.character = null; } var newCharacter = funkin_play_character_CharacterDataParser.fetchCharacter(id,true); if(newCharacter == null) { this.character = null; return; } this.character = newCharacter; if(this.characterType != null) { this.character.set_characterType(this.characterType); } if(this.flip) { this.character.set_flipX(!this.character.flipX); } if(this.targetScale != 1.0) { this.character.setScale(this.targetScale); } this.character.animation.callback = function(name,frameNumber,frameIndex) { if(frameIndex == null) { frameIndex = -1; } if(frameNumber == null) { frameNumber = -1; } if(name == null) { name = ""; } _gthis.character.onAnimationFrame(name,frameNumber,frameIndex); _gthis.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.FRAME)); }; this.character.animation.finishCallback = function(name) { if(name == null) { name = ""; } _gthis.character.onAnimationFinished(name); _gthis.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.END)); }; this.add(this.character); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } if(this.hasEvent(haxe_ui_events_AnimationEvent.LOADED)) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.LOADED)); } else { this._redispatchLoaded = true; } } ,characterType: null ,set_characterType: function(value) { if(this.character != null) { this.character.set_characterType(value); } return this.characterType = value; } ,flip: null ,set_flip: function(value) { if(value == this.flip) { return value; } if(this.character != null) { this.character.set_flipX(!this.character.flipX); } return this.flip = value; } ,targetScale: null ,set_targetScale: function(value) { if(value == this.targetScale) { return value; } if(this.character != null) { this.character.setScale(value); } return this.targetScale = value; } ,onFrame: function(name,frameNumber,frameIndex) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.FRAME)); } ,onFinish: function(name) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.END)); } ,repositionChildren: function() { haxe_ui_containers_Box.prototype.repositionChildren.call(this); this.character.set_x(this.get_screenX()); this.character.set_y(this.get_screenY()); var animOffsets = this.character.animOffsets; var fh = this.character; fh.set_x(fh.x - animOffsets[0] * this.targetScale * (this.flip ? -1 : 1)); var fh = this.character; fh.set_y(fh.y - animOffsets[1] * this.targetScale); } ,onUpdate: function(event) { if(this.character != null) { this.character.onUpdate(event); } } ,onBeatHit: function(event) { if(this.character != null) { this.character.onBeatHit(event); } } ,onStepHit: function(event) { if(this.character != null) { this.character.onStepHit(event); } } ,onNoteIncoming: function(event) { if(this.character != null) { this.character.onNoteIncoming(event); } } ,onNoteHit: function(event) { if(this.character != null) { this.character.onNoteHit(event); } } ,onNoteMiss: function(event) { if(this.character != null) { this.character.onNoteMiss(event); } } ,onNoteGhostMiss: function(event) { if(this.character != null) { this.character.onNoteGhostMiss(event); } } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_defaultToBf: null ,self: function() { return new funkin_ui_haxeui_components_CharacterPlayer(this._constructorParam_defaultToBf); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._defaultLayoutClass = funkin_ui_haxeui_components__$CharacterPlayer_Layout; } ,__class__: funkin_ui_haxeui_components_CharacterPlayer ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_targetScale:"set_targetScale",set_flip:"set_flip",set_characterType:"set_characterType",get_charName:"get_charName",set_charId:"set_charId",get_charId:"get_charId"}) }); var haxe_ui_layouts_ILayout = function() { }; $hxClasses["haxe.ui.layouts.ILayout"] = haxe_ui_layouts_ILayout; haxe_ui_layouts_ILayout.__name__ = "haxe.ui.layouts.ILayout"; haxe_ui_layouts_ILayout.__isInterface__ = true; var haxe_ui_layouts_Layout = function() { }; $hxClasses["haxe.ui.layouts.Layout"] = haxe_ui_layouts_Layout; haxe_ui_layouts_Layout.__name__ = "haxe.ui.layouts.Layout"; haxe_ui_layouts_Layout.__interfaces__ = [haxe_ui_layouts_ILayout]; haxe_ui_layouts_Layout.prototype = { _component: null ,get_component: function() { return this._component; } ,set_component: function(value) { this._component = value; if(this._component != null) { var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } return value; } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } if(this._component == null) { return null; } return this._component.findComponent(criteria,type,recursive,searchType); } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } if(this._component == null) { return null; } return this._component.findComponents(styleName,type,maxDepth); } ,applyProperties: function(props) { } ,refresh: function() { if(this._component != null && this._component.get_isReady() == true) { this.resizeChildren(); this._component.handlePreReposition(); this.repositionChildren(); this._component.handlePostReposition(); } } ,autoSize: function() { if(this.get_component().get_isReady() == false) { return false; } var calculatedWidth = null; var calculatedHeight = null; if(this.get_component().get_autoWidth() == true || this.get_component().get_autoHeight() == true) { var size = this.calcAutoSize(); if(this.get_component().get_autoWidth() == true) { calculatedWidth = size.width; } if(this.get_component().get_autoHeight() == true) { calculatedHeight = size.height; } this.get_component().resizeComponent(calculatedWidth,calculatedHeight); } if(calculatedWidth == null) { return calculatedHeight != null; } else { return true; } } ,marginTop: function(child) { if(child == null || child.get_style() == null || child.get_style().marginTop == null) { return 0; } return child.get_style().marginTop; } ,marginLeft: function(child) { if(child == null || child.get_style() == null || child.get_style().marginLeft == null) { return 0; } return child.get_style().marginLeft; } ,marginBottom: function(child) { if(child == null || child.get_style() == null || child.get_style().marginBottom == null) { return 0; } return child.get_style().marginBottom; } ,marginRight: function(child) { if(child == null || child.get_style() == null || child.get_style().marginRight == null) { return 0; } return child.get_style().marginRight; } ,childPaddingTop: function(child) { if(child == null || child.get_style() == null || child.get_style().paddingTop == null) { return 0; } return child.get_style().paddingTop; } ,childPaddingLeft: function(child) { if(child == null || child.get_style() == null || child.get_style().paddingLeft == null) { return 0; } return child.get_style().paddingLeft; } ,childPaddingBottom: function(child) { if(child == null || child.get_style() == null || child.get_style().paddingBottom == null) { return 0; } return child.get_style().paddingBottom; } ,childPaddingRight: function(child) { if(child == null || child.get_style() == null || child.get_style().paddingRight == null) { return 0; } return child.get_style().paddingRight; } ,hidden: function(c) { if(c == null) { c = this.get_component(); } return c.get_hidden(); } ,horizontalAlign: function(child) { if(child == null || child.get_style() == null || child.get_style().horizontalAlign == null) { return "left"; } return child.get_style().horizontalAlign; } ,verticalAlign: function(child) { if(child == null || child.get_style() == null || child.get_style().verticalAlign == null) { return "top"; } return child.get_style().verticalAlign; } ,fixedMinWidth: function(child) { var fixedMinWidth = false; if(child != null && child.get_style() != null && child.get_style().minWidth != null) { fixedMinWidth = child.get_componentWidth() <= child.get_style().minWidth; } return fixedMinWidth; } ,fixedMinHeight: function(child) { var fixedMinHeight = false; if(child != null && child.get_style() != null && child.get_style().minHeight != null) { fixedMinHeight = child.get_componentHeight() <= child.get_style().minHeight; } return fixedMinHeight; } ,borderSize: null ,get_borderSize: function() { if(this._component.get_style() == null) { return 0; } var n = this._component.get_style().get_fullBorderSize(); var tmp = n > 0; return n; } ,paddingLeft: null ,get_paddingLeft: function() { if(this._component == null || this._component.get_style() == null || this._component.get_style().paddingLeft == null) { return 0; } return this._component.get_style().paddingLeft; } ,paddingTop: null ,get_paddingTop: function() { if(this._component == null || this._component.get_style() == null || this._component.get_style().paddingTop == null) { return 0; } return this._component.get_style().paddingTop; } ,paddingBottom: null ,get_paddingBottom: function() { if(this._component == null || this._component.get_style() == null || this._component.get_style().paddingBottom == null) { return 0; } return this._component.get_style().paddingBottom; } ,paddingRight: null ,get_paddingRight: function() { if(this._component == null || this._component.get_style() == null || this._component.get_style().paddingRight == null) { return 0; } return this._component.get_style().paddingRight; } ,horizontalSpacing: null ,get_horizontalSpacing: function() { if(this._component == null || this._component.get_style() == null || this._component.get_style().horizontalSpacing == null) { return 0; } return this._component.get_style().horizontalSpacing; } ,verticalSpacing: null ,get_verticalSpacing: function() { if(this._component == null || this._component.get_style() == null || this._component.get_style().verticalSpacing == null) { return 0; } return this._component.get_style().verticalSpacing; } ,innerWidth: null ,innerHeight: null ,get_innerWidth: function() { if(this.get_component() == null) { return 0; } return this.get_component().get_componentWidth() - (this.get_paddingLeft() + this.get_paddingRight()); } ,get_innerHeight: function() { if(this.get_component() == null) { return 0; } var padding = 0; if(this.get_component().get_style() != null && this.get_component().get_style().paddingTop != null) { padding = this.get_component().get_style().paddingTop + padding; } if(this.get_component().get_style() != null && this.get_component().get_style().paddingBottom != null) { padding = this.get_component().get_style().paddingBottom + padding; } var icy = this.get_component().get_componentHeight() - padding; return icy; } ,resizeChildren: function() { } ,repositionChildren: function() { } ,usableSize: null ,get_usableSize: function() { var ucx = 0; if(this._component.get_componentWidth() != null) { ucx = this._component.get_componentWidth(); ucx -= this.get_paddingLeft() + this.get_paddingRight(); } var ucy = 0; if(this._component.get_componentHeight() != null) { ucy = this._component.get_componentHeight(); ucy -= this.get_paddingTop() + this.get_paddingBottom(); } return new haxe_ui_geom_Size(ucx,ucy); } ,usableWidth: null ,get_usableWidth: function() { return this.get_usableSize().width; } ,usableHeight: null ,get_usableHeight: function() { return this.get_usableSize().height; } ,calcAutoWidth: function() { return this.calcAutoSize().width; } ,calcAutoHeight: function() { return this.calcAutoSize().height; } ,calcAutoSize: function(exclusions) { var x1 = 16777215; var x2 = 0; var y1 = 16777215; var y2 = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false || this.excluded(exclusions,child) == true) { continue; } if(child.get_percentWidth() == null) { if(child.get_left() < x1) { x1 = child.get_left() - this.marginLeft(child) + this.marginRight(child); } if(child.get_componentWidth() != null && child.get_left() + child.get_componentWidth() > x2) { x2 = child.get_left() + child.get_componentWidth() - this.marginLeft(child) + this.marginRight(child); } } if(child.get_percentHeight() == null) { if(child.get_top() < y1) { y1 = child.get_top() - this.marginTop(child) + this.marginBottom(child); } if(child.get_componentHeight() != null && child.get_top() + child.get_componentHeight() > y2) { y2 = child.get_top() + child.get_componentHeight() - this.marginTop(child) + this.marginBottom(child); } } } if(x1 == 16777215) { x1 = 0; } if(y1 == 16777215) { y1 = 0; } var w = x2 - x1 + (this.get_paddingLeft() + this.get_paddingRight()); var h = y2 - y1 + (this.get_paddingTop() + this.get_paddingBottom()); if(((this) instanceof haxe_ui_layouts_AbsoluteLayout)) { w += x1; h += y1; } return new haxe_ui_geom_Size(w,h); } ,excluded: function(exclusions,child) { if(exclusions == null || child == null) { return false; } return exclusions.indexOf(child) != -1; } ,cloneLayout: function() { var c = this.self(); return c; } ,self: function() { return new haxe_ui_layouts_Layout(); } ,__class__: haxe_ui_layouts_Layout ,__properties__: {get_usableHeight:"get_usableHeight",get_usableWidth:"get_usableWidth",get_usableSize:"get_usableSize",get_innerHeight:"get_innerHeight",get_innerWidth:"get_innerWidth",get_verticalSpacing:"get_verticalSpacing",get_horizontalSpacing:"get_horizontalSpacing",get_paddingRight:"get_paddingRight",get_paddingBottom:"get_paddingBottom",get_paddingTop:"get_paddingTop",get_paddingLeft:"get_paddingLeft",get_borderSize:"get_borderSize",set_component:"set_component",get_component:"get_component"} }; var haxe_ui_layouts_DefaultLayout = function() { this._roundFullWidths = false; this._calcFullHeights = false; this._calcFullWidths = false; haxe_ui_layouts_Layout.call(this); }; $hxClasses["haxe.ui.layouts.DefaultLayout"] = haxe_ui_layouts_DefaultLayout; haxe_ui_layouts_DefaultLayout.__name__ = "haxe.ui.layouts.DefaultLayout"; haxe_ui_layouts_DefaultLayout.__super__ = haxe_ui_layouts_Layout; haxe_ui_layouts_DefaultLayout.prototype = $extend(haxe_ui_layouts_Layout.prototype,{ _calcFullWidths: null ,_calcFullHeights: null ,_roundFullWidths: null ,buildWidthRoundingMap: function() { var tmp; if(this._roundFullWidths != false) { var _this = this.get_component(); tmp = (_this._children == null ? [] : _this._children).length <= 1; } else { tmp = true; } if(tmp) { return null; } var map = null; var hasNonFullWidth = false; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() == null || child.get_percentWidth() != 100) { hasNonFullWidth = true; break; } } if(hasNonFullWidth == false) { var remainderWidth = this.get_usableWidth(); var _this = this.get_component(); var remainderWidth1 = remainderWidth % (_this._children == null ? [] : _this._children).length; if(remainderWidth1 != 0) { map = new haxe_ds_ObjectMap(); var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var n = 0; if(remainderWidth1 > 0) { n = 1; --remainderWidth1; } map.set(child,n); } } } return map; } ,resizeChildren: function() { var usableSize = this.get_usableSize(); var percentWidth = 100; var percentHeight = 100; var fullWidthValue = 100; var fullHeightValue = 100; if(this._calcFullWidths == true || this._calcFullHeights == true) { var n1 = 0; var n2 = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(this._calcFullWidths == true && child.get_percentWidth() != null && child.get_percentWidth() == 100) { ++n1; } if(this._calcFullHeights == true && child.get_percentHeight() != null && child.get_percentHeight() == 100) { ++n2; } } if(n1 > 0) { fullWidthValue = 100 / n1; } if(n2 > 0) { fullHeightValue = 100 / n2; } } var childRoundingWidth = this.buildWidthRoundingMap(); var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var cx = null; var cy = null; if(child.get_percentWidth() != null) { var childPercentWidth = child.get_percentWidth(); if(childPercentWidth == 100) { childPercentWidth = fullWidthValue; } cx = usableSize.width * childPercentWidth / percentWidth - this.marginLeft(child) - this.marginRight(child); if(childRoundingWidth != null && childRoundingWidth.h.__keys__[child.__id__] != null) { var roundDirection = childRoundingWidth.h[child.__id__]; if(roundDirection == 0) { cx = Math.floor(cx); } else if(roundDirection == 1) { cx = Math.ceil(cx); } } } if(child.get_percentHeight() != null) { var childPercentHeight = child.get_percentHeight(); if(childPercentHeight == 100) { childPercentHeight = fullHeightValue; } cy = usableSize.height * childPercentHeight / percentHeight - this.marginTop(child) - this.marginBottom(child); } if(this.fixedMinWidth(child) && child.get_percentWidth() != null) { percentWidth -= child.get_percentWidth(); } if(this.fixedMinHeight(child) && child.get_percentHeight() != null) { percentHeight -= child.get_percentHeight(); } child.resizeComponent(cx,cy); } } ,repositionChildren: function() { var usableSize = this.get_usableSize(); var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } this.repositionChild(child); } } ,repositionChild: function(child) { if(child == null) { return; } var xpos = 0; var ypos = 0; switch(this.horizontalAlign(child)) { case "center": xpos = (this.get_usableSize().width - child.get_componentWidth()) / 2 + this.get_paddingLeft() + this.marginLeft(child) - this.marginRight(child); break; case "right": xpos = this.get_component().get_componentWidth() - (child.get_componentWidth() + this.get_paddingRight() + this.marginRight(child)); break; default: xpos = this.get_paddingLeft() + this.marginLeft(child); } switch(this.verticalAlign(child)) { case "bottom": ypos = this.get_component().get_componentHeight() - (child.get_componentHeight() + this.get_paddingBottom() + this.marginBottom(child)); break; case "center": ypos = (this.get_usableSize().height - child.get_componentHeight()) / 2 + this.get_paddingTop() + this.marginTop(child) - this.marginBottom(child); break; default: ypos = this.get_paddingTop() + this.marginTop(child); } child.moveComponent(xpos,ypos); } ,cloneLayout: function() { var c = haxe_ui_layouts_Layout.prototype.cloneLayout.call(this); c._calcFullWidths = this._calcFullWidths; c._calcFullHeights = this._calcFullHeights; c._roundFullWidths = this._roundFullWidths; return c; } ,self: function() { return new haxe_ui_layouts_DefaultLayout(); } ,__class__: haxe_ui_layouts_DefaultLayout }); var funkin_ui_haxeui_components__$CharacterPlayer_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["funkin.ui.haxeui.components._CharacterPlayer.Layout"] = funkin_ui_haxeui_components__$CharacterPlayer_Layout; funkin_ui_haxeui_components__$CharacterPlayer_Layout.__name__ = "funkin.ui.haxeui.components._CharacterPlayer.Layout"; funkin_ui_haxeui_components__$CharacterPlayer_Layout.__super__ = haxe_ui_layouts_DefaultLayout; funkin_ui_haxeui_components__$CharacterPlayer_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var player = js_Boot.__cast(this._component , funkin_ui_haxeui_components_CharacterPlayer); var character = player.character; if(character == null) { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); return; } var this1 = character.get_cornerPosition(); var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } ,calcAutoSize: function(exclusions) { var player = js_Boot.__cast(this._component , funkin_ui_haxeui_components_CharacterPlayer); var character = player.character; if(character == null) { return haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); } var size = new haxe_ui_geom_Size(); size.width = character.get_width() + this.get_paddingLeft() + this.get_paddingRight(); size.height = character.get_height() + this.get_paddingTop() + this.get_paddingBottom(); return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new funkin_ui_haxeui_components__$CharacterPlayer_Layout(); } ,__class__: funkin_ui_haxeui_components__$CharacterPlayer_Layout }); var haxe_ui_backend_flixel_components_SpriteWrapper = function() { this._sprite = null; this.spriteOffsetY = 0; this.spriteOffsetX = 0; haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.backend.flixel.components.SpriteWrapper"] = haxe_ui_backend_flixel_components_SpriteWrapper; haxe_ui_backend_flixel_components_SpriteWrapper.__name__ = "haxe.ui.backend.flixel.components.SpriteWrapper"; haxe_ui_backend_flixel_components_SpriteWrapper.__super__ = haxe_ui_containers_Box; haxe_ui_backend_flixel_components_SpriteWrapper.prototype = $extend(haxe_ui_containers_Box.prototype,{ spriteOffsetX: null ,spriteOffsetY: null ,_sprite: null ,get_sprite: function() { return this._sprite; } ,set_sprite: function(value) { if(this._sprite != null) { this.remove(this._sprite); } this._sprite = value; this.add(this._sprite); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,repositionChildren: function() { haxe_ui_containers_Box.prototype.repositionChildren.call(this); if(this.get_sprite() != null) { this.get_sprite().set_x(this.spriteOffsetX + this.get_screenX()); this.get_sprite().set_y(this.spriteOffsetY + this.get_screenY()); } } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_backend_flixel_components_SpriteWrapper(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_backend_flixel_components__$SpriteWrapper_Layout; } ,__class__: haxe_ui_backend_flixel_components_SpriteWrapper ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_sprite:"set_sprite",get_sprite:"get_sprite"}) }); var funkin_ui_haxeui_components_WaveformPlayer = function(waveformData) { haxe_ui_backend_flixel_components_SpriteWrapper.call(this); this.waveform = new funkin_audio_waveform_WaveformSprite(waveformData); this.set_sprite(this.waveform); }; $hxClasses["funkin.ui.haxeui.components.WaveformPlayer"] = funkin_ui_haxeui_components_WaveformPlayer; funkin_ui_haxeui_components_WaveformPlayer.__name__ = "funkin.ui.haxeui.components.WaveformPlayer"; funkin_ui_haxeui_components_WaveformPlayer.__super__ = haxe_ui_backend_flixel_components_SpriteWrapper; funkin_ui_haxeui_components_WaveformPlayer.prototype = $extend(haxe_ui_backend_flixel_components_SpriteWrapper.prototype,{ waveform: null ,registerBehaviours: function() { haxe_ui_backend_flixel_components_SpriteWrapper.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_backend_flixel_components_SpriteWrapper.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,_constructorParam_waveformData: null ,self: function() { return new funkin_ui_haxeui_components_WaveformPlayer(this._constructorParam_waveformData); } ,__class__: funkin_ui_haxeui_components_WaveformPlayer }); var funkin_ui_options_ButtonRemapSubState = function() { flixel_FlxSubState.call(this); }; $hxClasses["funkin.ui.options.ButtonRemapSubState"] = funkin_ui_options_ButtonRemapSubState; funkin_ui_options_ButtonRemapSubState.__name__ = "funkin.ui.options.ButtonRemapSubState"; funkin_ui_options_ButtonRemapSubState.__super__ = flixel_FlxSubState; funkin_ui_options_ButtonRemapSubState.prototype = $extend(flixel_FlxSubState.prototype,{ __class__: funkin_ui_options_ButtonRemapSubState }); var funkin_ui_options_Page = function(MaxSize) { this.canExit = true; this.enabled = true; this.onExit = new flixel_util__$FlxSignal_FlxSignal0(); this.onSwitch = new flixel_util__$FlxSignal_FlxSignal1(); flixel_group_FlxTypedGroup.call(this,MaxSize); }; $hxClasses["funkin.ui.options.Page"] = funkin_ui_options_Page; funkin_ui_options_Page.__name__ = "funkin.ui.options.Page"; funkin_ui_options_Page.__super__ = flixel_group_FlxTypedGroup; funkin_ui_options_Page.prototype = $extend(flixel_group_FlxTypedGroup.prototype,{ onSwitch: null ,onExit: null ,enabled: null ,canExit: null ,get_controls: function() { return funkin_PlayerSettings.player1.controls; } ,subState: null ,switchPage: function(name) { this.onSwitch.dispatch(name); } ,exit: function() { this.onExit.dispatch(); } ,update: function(elapsed) { flixel_group_FlxTypedGroup.prototype.update.call(this,elapsed); if(this.enabled) { this.updateEnabled(elapsed); } } ,updateEnabled: function(elapsed) { if(this.canExit && funkin_PlayerSettings.player1.controls._back.check()) { funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("cancelMenu")); this.onExit.dispatch(); } } ,set_enabled: function(value) { return this.enabled = value; } ,openPrompt: function(prompt,onClose) { var _gthis = this; this.set_enabled(false); prompt.closeCallback = function() { _gthis.set_enabled(true); if(onClose != null) { onClose(); } }; flixel_FlxG.game._state.openSubState(prompt); } ,destroy: function() { flixel_group_FlxTypedGroup.prototype.destroy.call(this); flixel_util_FlxDestroyUtil.destroyArray(this.onSwitch.handlers); } ,__class__: funkin_ui_options_Page ,__properties__: $extend(flixel_group_FlxTypedGroup.prototype.__properties__,{get_controls:"get_controls",set_enabled:"set_enabled"}) }); var funkin_ui_options_ColorsMenu = function() { this.curSelected = 0; funkin_ui_options_Page.call(this); this.grpNotes = new flixel_group_FlxTypedGroup(); this.add(this.grpNotes); var _g = 0; while(_g < 4) { var i = _g++; var note = new funkin_play_notes_NoteSprite(funkin_data_notestyle_NoteStyleRegistry.get_instance().fetchDefault(),i); note.set_x(100 * i + i); var axes = 16; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { note.set_x((flixel_FlxG.width - note.get_width()) / 2); } if(axes == 16 || axes == 17) { note.set_y((flixel_FlxG.height - note.get_height()) / 2); } var _effectSpr = new flixel_addons_effects_chainable_FlxEffectSprite(note,[new flixel_addons_effects_chainable_FlxOutlineEffect(flixel_addons_effects_chainable_FlxOutlineMode.FAST,-1,4,1)]); this.add(_effectSpr); _effectSpr.set_y(0); _effectSpr.set_x(i * 130); _effectSpr.scale.set_x(_effectSpr.scale.set_y(0.7)); _effectSpr.set_height(note.get_height()); _effectSpr.set_width(note.get_width()); this.grpNotes.add(note); } }; $hxClasses["funkin.ui.options.ColorsMenu"] = funkin_ui_options_ColorsMenu; funkin_ui_options_ColorsMenu.__name__ = "funkin.ui.options.ColorsMenu"; funkin_ui_options_ColorsMenu.__super__ = funkin_ui_options_Page; funkin_ui_options_ColorsMenu.prototype = $extend(funkin_ui_options_Page.prototype,{ curSelected: null ,grpNotes: null ,update: function(elapsed) { if(funkin_PlayerSettings.player1.controls._ui_right.checkJustPressed()) { this.curSelected += 1; } if(funkin_PlayerSettings.player1.controls._ui_left.checkJustPressed()) { this.curSelected -= 1; } if(this.curSelected < 0) { this.curSelected = this.grpNotes.members.length - 1; } if(this.curSelected >= this.grpNotes.members.length) { this.curSelected = 0; } var tmp = funkin_PlayerSettings.player1.controls._ui_up.checkPressed(); var tmp = funkin_PlayerSettings.player1.controls._ui_down.checkPressed(); funkin_ui_options_Page.prototype.update.call(this,elapsed); } ,__class__: funkin_ui_options_ColorsMenu }); var funkin_ui_options_ControlsMenu = function() { this.buttonUsedToEnterPrompt = null; this.keyUsedToEnterPrompt = null; this.deviceListSelected = false; this.currentDevice = funkin_input_Device.Keys; var _g = []; var _g1 = 0; var _g2 = funkin_ui_options_ControlsMenu.controlGroups.length; while(_g1 < _g2) { var i = _g1++; _g.push([]); } this.itemGroups = _g; var _gthis = this; funkin_ui_options_Page.call(this); this.menuCamera = new funkin_graphics_FunkinCamera("controlsMenu"); flixel_FlxG.cameras.add(this.menuCamera,false); this.menuCamera.bgColor = 0; this.set_camera(this.menuCamera); this.labels = new flixel_group_FlxTypedGroup(); var headers = new flixel_group_FlxTypedGroup(); this.controlGrid = new funkin_ui_MenuTypedList(funkin_ui_NavControls.Columns(2),funkin_ui_WrapMode.Vertical); this.add(this.labels); this.add(headers); this.add(this.controlGrid); if(flixel_FlxG.gamepads.get_numActiveGamepads() > 0) { var devicesBg = new funkin_graphics_FunkinSprite(); devicesBg.makeSolidColor(flixel_FlxG.width,100,-328339); this.add(devicesBg); this.deviceList = new funkin_ui_TextMenuList(funkin_ui_NavControls.Horizontal,funkin_ui_WrapMode.None); this.add(this.deviceList); this.deviceListSelected = true; var _g = this; var device = funkin_input_Device.Keys; var item = function() { _g.selectDevice(device); }; var item1 = this.deviceList.createItem(null,null,"Keyboard","bold",item); item1.set_x(flixel_FlxG.width / 2 - item1.get_width() - 30); item1.set_y((devicesBg.get_height() - item1.get_height()) / 2); var _g1 = this; var device1 = funkin_input_Device.Gamepad(flixel_FlxG.gamepads.firstActive.id); var item = function() { _g1.selectDevice(device1); }; item1 = this.deviceList.createItem(null,null,"Gamepad","bold",item); item1.set_x(flixel_FlxG.width / 2 + 30); item1.set_y((devicesBg.get_height() - item1.get_height()) / 2); } var y = this.deviceList == null ? 30 : 120; var spacer = 70; var currentHeader = null; var _g2 = 0; var _g3 = funkin_ui_options_ControlsMenu.controlList.length; while(_g2 < _g3) { var i = _g2++; var control = funkin_ui_options_ControlsMenu.controlList[i]; var name = $hxEnums[control.__enum__].__constructs__[control._hx_index]._hx_name; if(currentHeader != "UI_" && name.indexOf("UI_") == 0) { currentHeader = "UI_"; var _this = headers.add(new funkin_ui_AtlasText(0,y,"UI","bold")); var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } y += spacer; } else if(currentHeader != "NOTE_" && name.indexOf("NOTE_") == 0) { currentHeader = "NOTE_"; var _this1 = headers.add(new funkin_ui_AtlasText(0,y,"NOTES","bold")); var axes1 = 1; if(axes1 == null) { axes1 = 17; } if(axes1 == 1 || axes1 == 17) { _this1.set_x((flixel_FlxG.width - _this1.get_width()) / 2); } if(axes1 == 16 || axes1 == 17) { _this1.set_y((flixel_FlxG.height - _this1.get_height()) / 2); } y += spacer; } else if(currentHeader != "CUTSCENE_" && name.indexOf("CUTSCENE_") == 0) { currentHeader = "CUTSCENE_"; var _this2 = headers.add(new funkin_ui_AtlasText(0,y,"CUTSCENE","bold")); var axes2 = 1; if(axes2 == null) { axes2 = 17; } if(axes2 == 1 || axes2 == 17) { _this2.set_x((flixel_FlxG.width - _this2.get_width()) / 2); } if(axes2 == 16 || axes2 == 17) { _this2.set_y((flixel_FlxG.height - _this2.get_height()) / 2); } y += spacer; } else if(currentHeader != "FREEPLAY_" && name.indexOf("FREEPLAY_") == 0) { currentHeader = "FREEPLAY_"; var _this3 = headers.add(new funkin_ui_AtlasText(0,y,"FREEPLAY","bold")); var axes3 = 1; if(axes3 == null) { axes3 = 17; } if(axes3 == 1 || axes3 == 17) { _this3.set_x((flixel_FlxG.width - _this3.get_width()) / 2); } if(axes3 == 16 || axes3 == 17) { _this3.set_y((flixel_FlxG.height - _this3.get_height()) / 2); } y += spacer; } else if(currentHeader != "WINDOW_" && name.indexOf("WINDOW_") == 0) { currentHeader = "WINDOW_"; var _this4 = headers.add(new funkin_ui_AtlasText(0,y,"WINDOW","bold")); var axes4 = 1; if(axes4 == null) { axes4 = 17; } if(axes4 == 1 || axes4 == 17) { _this4.set_x((flixel_FlxG.width - _this4.get_width()) / 2); } if(axes4 == 16 || axes4 == 17) { _this4.set_y((flixel_FlxG.height - _this4.get_height()) / 2); } y += spacer; } else if(currentHeader != "VOLUME_" && name.indexOf("VOLUME_") == 0) { currentHeader = "VOLUME_"; var _this5 = headers.add(new funkin_ui_AtlasText(0,y,"VOLUME","bold")); var axes5 = 1; if(axes5 == null) { axes5 = 17; } if(axes5 == 1 || axes5 == 17) { _this5.set_x((flixel_FlxG.width - _this5.get_width()) / 2); } if(axes5 == 16 || axes5 == 17) { _this5.set_y((flixel_FlxG.height - _this5.get_height()) / 2); } y += spacer; } else if(currentHeader != "DEBUG_" && name.indexOf("DEBUG_") == 0) { currentHeader = "DEBUG_"; var _this6 = headers.add(new funkin_ui_AtlasText(0,y,"DEBUG","bold")); var axes6 = 1; if(axes6 == null) { axes6 = 17; } if(axes6 == 1 || axes6 == 17) { _this6.set_x((flixel_FlxG.width - _this6.get_width()) / 2); } if(axes6 == 16 || axes6 == 17) { _this6.set_y((flixel_FlxG.height - _this6.get_height()) / 2); } y += spacer; } if(currentHeader != null && name.indexOf(currentHeader) == 0) { name = HxOverrides.substr(name,currentHeader.length,null); } var label = this.labels.add(new funkin_ui_AtlasText(100,y,name,"bold")); label.set_alpha(0.6); this.createItem(label.x + 550,y,control,0); this.createItem(label.x + 550 + 400,y,control,1); y += spacer; } this.camFollow = new flixel_FlxObject(flixel_FlxG.width / 2,0,70,70); if(this.deviceList != null) { var _this = this.deviceList; this.camFollow.set_y(_this.members[_this.selectedIndex].y); var _this = this.controlGrid; _this.members[_this.selectedIndex].idle(); this.controlGrid.enabled = false; } else { var _this = this.controlGrid; this.camFollow.set_y(_this.members[_this.selectedIndex].y); } this.menuCamera.follow(this.camFollow,null,0.06); var margin = 100; var _this = this.menuCamera.deadzone; var X = 0; var Y = margin; var Width = this.menuCamera.width; var Height = this.menuCamera.height - margin * 2; 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; this.menuCamera.minScrollY = 0; this.controlGrid.onChange.add(function(selected) { _gthis.camFollow.set_y(selected.y); _gthis.labels.forEach(function(label) { label.set_alpha(0.6); }); _gthis.labels.members[_gthis.controlGrid.selectedIndex / 2 | 0].set_alpha(1.0); }); this.prompt = new funkin_ui_Prompt("\nPress any key to rebind\n\n\nBackspace to unbind\n Escape to cancel",funkin_ui_ButtonStyle.None); this.prompt.create(); this.prompt.createBgFromMargin(100,-328339); var this1 = this.prompt.back.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.prompt.set_exists(false); this.add(this.prompt); }; $hxClasses["funkin.ui.options.ControlsMenu"] = funkin_ui_options_ControlsMenu; funkin_ui_options_ControlsMenu.__name__ = "funkin.ui.options.ControlsMenu"; funkin_ui_options_ControlsMenu.__super__ = funkin_ui_options_Page; funkin_ui_options_ControlsMenu.prototype = $extend(funkin_ui_options_Page.prototype,{ itemGroups: null ,controlGrid: null ,deviceList: null ,menuCamera: null ,prompt: null ,camFollow: null ,labels: null ,currentDevice: null ,deviceListSelected: null ,createItem: function(x,y,control,index) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } var item = new funkin_ui_options_InputItem(x,y,this.currentDevice,control,index,$bind(this,this.onSelect)); var _g = 0; var _g1 = funkin_ui_options_ControlsMenu.controlGroups.length; while(_g < _g1) { var i = _g++; if(funkin_ui_options_ControlsMenu.controlGroups[i].indexOf(control) != -1) { this.itemGroups[i].push(item); } } return this.controlGrid.addItem(item.name,item); } ,onSelect: function() { var _g = this.currentDevice; switch(_g._hx_index) { case 0: this.keyUsedToEnterPrompt = flixel_FlxG.keys.firstJustPressed(); break; case 1: var id = _g.id; var _this = flixel_FlxG.gamepads._activeGamepads[id]; var id = _this.firstJustPressedRawID(); this.buttonUsedToEnterPrompt = id < 0 ? id : _this.mapping.getID(id); break; } this.controlGrid.enabled = false; this.canExit = false; this.prompt.set_exists(true); } ,goToDeviceList: function() { var _this = this.controlGrid; _this.members[_this.selectedIndex].idle(); this.labels.members[this.controlGrid.selectedIndex / 2 | 0].set_alpha(0.6); this.controlGrid.enabled = false; this.deviceList.enabled = true; this.canExit = true; var _this = this.deviceList; this.camFollow.set_y(_this.members[_this.selectedIndex].y); this.deviceListSelected = true; } ,selectDevice: function(device) { this.currentDevice = device; var _g = 0; var _g1 = this.controlGrid.members; while(_g < _g1.length) { var item = _g1[_g]; ++_g; item.updateDevice(this.currentDevice); } var inputName = device == funkin_input_Device.Keys ? "key" : "button"; var cancel = device == funkin_input_Device.Keys ? "Escape" : "Back"; if(device == funkin_input_Device.Keys) { this.prompt.setText("\nPress any key to rebind\n\n\n\n " + cancel + " to cancel"); } else { this.prompt.setText("\nPress any button\n to rebind\n\n\n " + cancel + " to cancel"); } var _this = this.controlGrid; _this.members[_this.selectedIndex].select(); this.labels.members[this.controlGrid.selectedIndex / 2 | 0].set_alpha(1.0); this.controlGrid.enabled = true; this.deviceList.enabled = false; this.deviceListSelected = false; this.canExit = false; } ,keyUsedToEnterPrompt: null ,buttonUsedToEnterPrompt: null ,update: function(elapsed) { funkin_ui_options_Page.prototype.update.call(this,elapsed); var controls = funkin_PlayerSettings.player1.controls; if(this.controlGrid.enabled && this.deviceList != null && this.deviceListSelected == false && controls._back.check()) { this.goToDeviceList(); } if(this.prompt.exists) { var _g = this.currentDevice; switch(_g._hx_index) { case 0: var key = flixel_FlxG.keys.firstJustReleased(); if(key != -1 && key != this.keyUsedToEnterPrompt) { if(key == 27) { this.closePrompt(); } else if(key == 8) { this.onInputSelect(-1); this.closePrompt(); } else { this.onInputSelect(key); this.closePrompt(); } } break; case 1: var id = _g.id; var _this = flixel_FlxG.gamepads._activeGamepads[id]; var id = _this.firstJustReleasedRawID(); var button = id < 0 ? id : _this.mapping.getID(id); if(button != -1 && button != this.buttonUsedToEnterPrompt) { if(button != 6) { this.onInputSelect(button); } this.closePrompt(); } var key = flixel_FlxG.keys.firstJustReleased(); if(key != -1 && key != this.keyUsedToEnterPrompt) { if(key == 27) { this.closePrompt(); } else if(key == 8) { this.onInputSelect(-1); this.closePrompt(); } } break; } } var _g = this.currentDevice; switch(_g._hx_index) { case 0: var keyJustReleased = flixel_FlxG.keys.firstJustReleased(); if(keyJustReleased != -1 && keyJustReleased == this.keyUsedToEnterPrompt) { this.keyUsedToEnterPrompt = null; } this.buttonUsedToEnterPrompt = null; break; case 1: var id = _g.id; var _this = flixel_FlxG.gamepads._activeGamepads[id]; var id = _this.firstJustReleasedRawID(); var buttonJustReleased = id < 0 ? id : _this.mapping.getID(id); if(buttonJustReleased != -1 && buttonJustReleased == this.buttonUsedToEnterPrompt) { this.buttonUsedToEnterPrompt = null; } this.keyUsedToEnterPrompt = null; break; } } ,onInputSelect: function(input) { var _this = this.controlGrid; var item = _this.members[_this.selectedIndex]; if(input != -1) { var column0 = Math.floor(this.controlGrid.selectedIndex / 2) * 2; if(this.controlGrid.members[column0].input == input) { return; } if(this.controlGrid.members[column0 + 1].input == input) { return; } } var _g = 0; var _g1 = this.itemGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(input != -1 && group.indexOf(item) != -1) { var _g2 = 0; while(_g2 < group.length) { var otherItem = group[_g2]; ++_g2; if(otherItem != item && otherItem.input == input) { funkin_PlayerSettings.player1.controls.replaceBinding(otherItem.control,this.currentDevice,item.input,otherItem.input); otherItem.input = item.input; otherItem.label.set_text(item.label.text); } } } } funkin_PlayerSettings.player1.controls.replaceBinding(item.control,this.currentDevice,input,item.input); item.input = input; item.label.set_text(item.getLabel(input)); if(this.controlGrid.selectedIndex % 2 == 1) { haxe_Log.trace("Modified item on right side of grid",{ fileName : "source/funkin/ui/options/ControlsMenu.hx", lineNumber : 372, className : "funkin.ui.options.ControlsMenu", methodName : "onInputSelect"}); var leftItem = this.controlGrid.members[this.controlGrid.selectedIndex - 1]; if(leftItem != null && input != -1 && leftItem.input == -1) { haxe_Log.trace("Left item is unbound and right item is not!",{ fileName : "source/funkin/ui/options/ControlsMenu.hx", lineNumber : 376, className : "funkin.ui.options.ControlsMenu", methodName : "onInputSelect"}); var temp = leftItem.input; leftItem.input = item.input; item.input = temp; leftItem.label.set_text(leftItem.getLabel(leftItem.input)); item.label.set_text(item.getLabel(item.input)); } } else { haxe_Log.trace("Modified item on left side of grid",{ fileName : "source/funkin/ui/options/ControlsMenu.hx", lineNumber : 388, className : "funkin.ui.options.ControlsMenu", methodName : "onInputSelect"}); var rightItem = this.controlGrid.members[this.controlGrid.selectedIndex + 1]; if(rightItem != null && input == -1 && rightItem.input != -1) { haxe_Log.trace("Left item is unbound and right item is not!",{ fileName : "source/funkin/ui/options/ControlsMenu.hx", lineNumber : 392, className : "funkin.ui.options.ControlsMenu", methodName : "onInputSelect"}); var temp = item.input; item.input = rightItem.input; rightItem.input = temp; item.label.set_text(item.getLabel(item.input)); rightItem.label.set_text(rightItem.getLabel(rightItem.input)); } } funkin_PlayerSettings.player1.saveControls(); } ,closePrompt: function() { this.prompt.set_exists(false); this.controlGrid.enabled = true; if(this.deviceList == null) { this.canExit = true; } } ,destroy: function() { funkin_ui_options_Page.prototype.destroy.call(this); this.itemGroups = null; if(flixel_FlxG.cameras.list.indexOf(this.menuCamera) != -1) { flixel_FlxG.cameras.remove(this.menuCamera); } } ,set_enabled: function(value) { if(value == false) { this.controlGrid.enabled = false; if(this.deviceList != null) { this.deviceList.enabled = false; } } else { this.controlGrid.enabled = !this.deviceListSelected; if(this.deviceList != null) { this.deviceList.enabled = this.deviceListSelected; } } return funkin_ui_options_Page.prototype.set_enabled.call(this,value); } ,__class__: funkin_ui_options_ControlsMenu }); var funkin_ui_options_InputItem = function(x,y,device,control,index,callback) { if(y == null) { y = 0.0; } if(x == null) { x = 0.0; } this.index = -1; this.input = -1; this.device = funkin_input_Device.Keys; this.device = device; this.control = control; this.index = index; this.input = this.getInput(); funkin_ui_TextMenuItem.call(this,x,y,this.getLabel(this.input),"default",callback); this.fireInstantly = true; }; $hxClasses["funkin.ui.options.InputItem"] = funkin_ui_options_InputItem; funkin_ui_options_InputItem.__name__ = "funkin.ui.options.InputItem"; funkin_ui_options_InputItem.__super__ = funkin_ui_TextMenuItem; funkin_ui_options_InputItem.prototype = $extend(funkin_ui_TextMenuItem.prototype,{ device: null ,control: null ,input: null ,index: null ,updateDevice: function(device) { if(this.device != device) { this.device = device; this.input = this.getInput(); this.label.set_text(this.getLabel(this.input)); } } ,getInput: function() { var list = funkin_PlayerSettings.player1.controls.getInputsFor(this.control,this.device); if(list.length > this.index) { if(list[this.index] != 27 || list[this.index] != 6) { return list[this.index]; } if(list.length > 2) { return list[2]; } } return -1; } ,getLabel: function(input) { if(input == -1) { return "---"; } else { return funkin_util_InputUtil.format(input,this.device); } } ,__class__: funkin_ui_options_InputItem }); var funkin_ui_options_FunkinSoundTray = function() { this.alphaTarget = 0; this.lerpYPos = 0; this.graphicScale = 0.30; flixel_system_ui_FlxSoundTray.call(this); this.removeChildren(); var bg = new openfl_display_Bitmap(openfl_utils_Assets.getBitmapData(funkin_Paths.image("soundtray/volumebox"))); bg.set_scaleX(this.graphicScale); bg.set_scaleY(this.graphicScale); this.addChild(bg); this.set_y(-this.get_height()); this.set_visible(false); var backingBar = new openfl_display_Bitmap(openfl_utils_Assets.getBitmapData(funkin_Paths.image("soundtray/bars_10"))); backingBar.set_x(9); backingBar.set_y(5); backingBar.set_scaleX(this.graphicScale); backingBar.set_scaleY(this.graphicScale); this.addChild(backingBar); backingBar.set_alpha(0.4); this._bars = []; var _g = 1; while(_g < 11) { var i = _g++; var bar = new openfl_display_Bitmap(openfl_utils_Assets.getBitmapData(funkin_Paths.image("soundtray/bars_" + i))); bar.set_x(9); bar.set_y(5); bar.set_scaleX(this.graphicScale); bar.set_scaleY(this.graphicScale); this.addChild(bar); this._bars.push(bar); } this.set_y(-this.get_height()); this.screenCenter(); this.volumeUpSound = funkin_Paths.sound("soundtray/Volup"); this.volumeDownSound = funkin_Paths.sound("soundtray/Voldown"); this.volumeMaxSound = funkin_Paths.sound("soundtray/VolMAX"); haxe_Log.trace("Custom tray added!",{ fileName : "source/funkin/ui/options/FunkinSoundTray.hx", lineNumber : 75, className : "funkin.ui.options.FunkinSoundTray", methodName : "new"}); }; $hxClasses["funkin.ui.options.FunkinSoundTray"] = funkin_ui_options_FunkinSoundTray; funkin_ui_options_FunkinSoundTray.__name__ = "funkin.ui.options.FunkinSoundTray"; funkin_ui_options_FunkinSoundTray.__super__ = flixel_system_ui_FlxSoundTray; funkin_ui_options_FunkinSoundTray.prototype = $extend(flixel_system_ui_FlxSoundTray.prototype,{ graphicScale: null ,lerpYPos: null ,alphaTarget: null ,volumeMaxSound: null ,update: function(MS) { this.set_y(funkin_util_MathUtil.coolLerp(this.get_y(),this.lerpYPos,0.1)); this.set_alpha(funkin_util_MathUtil.coolLerp(this.get_alpha(),this.alphaTarget,0.25)); if(this._timer > 0) { this._timer -= MS / 1000; this.alphaTarget = 1; } else if(this.get_y() >= -this.get_height()) { this.lerpYPos = -this.get_height() - 10; this.alphaTarget = 0; } if(this.get_y() <= -this.get_height()) { this.set_visible(false); this.active = false; var _g = flixel_FlxG.save.status; var tmp; if(_g._hx_index == 1) { var _g1 = _g.name; var _g1 = _g.path; tmp = true; } else { tmp = false; } if(tmp) { flixel_FlxG.save.data.mute = flixel_FlxG.sound.muted; flixel_FlxG.save.data.volume = flixel_FlxG.sound.volume; flixel_FlxG.save.flush(); } } } ,show: function(up) { if(up == null) { up = false; } this._timer = 1; this.lerpYPos = 10; this.set_visible(true); this.active = true; var globalVolume = Math.round(flixel_FlxG.sound.volume * 10); if(flixel_FlxG.sound.muted) { globalVolume = 0; } if(!this.silent) { var sound = up ? this.volumeUpSound : this.volumeDownSound; if(globalVolume == 10) { sound = this.volumeMaxSound; } if(sound != null) { flixel_FlxG.sound.load(sound).play(); } } var _g = 0; var _g1 = this._bars.length; while(_g < _g1) { var i = _g++; if(i < globalVolume) { this._bars[i].set_visible(true); } else { this._bars[i].set_visible(false); } } } ,__class__: funkin_ui_options_FunkinSoundTray }); var funkin_ui_options_ModMenu = function() { this.curSelected = 0; this.detectedMods = []; this.enabledMods = []; funkin_ui_options_Page.call(this); this.grpMods = new flixel_group_FlxTypedGroup(); this.add(this.grpMods); this.refreshModList(); }; $hxClasses["funkin.ui.options.ModMenu"] = funkin_ui_options_ModMenu; funkin_ui_options_ModMenu.__name__ = "funkin.ui.options.ModMenu"; funkin_ui_options_ModMenu.__super__ = funkin_ui_options_Page; funkin_ui_options_ModMenu.prototype = $extend(funkin_ui_options_Page.prototype,{ grpMods: null ,enabledMods: null ,detectedMods: null ,curSelected: null ,update: function(elapsed) { var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(82,_this.status)) { this.refreshModList(); } this.selections(); if(funkin_PlayerSettings.player1.controls._ui_up.checkJustPressed()) { this.selections(-1); } if(funkin_PlayerSettings.player1.controls._ui_down.checkJustPressed()) { this.selections(1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(32,_this.status)) { this.grpMods.members[this.curSelected].modEnabled = !this.grpMods.members[this.curSelected].modEnabled; } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(73,_this.status) && this.curSelected != 0) { var oldOne = this.grpMods.members[this.curSelected - 1]; this.grpMods.members[this.curSelected - 1] = this.grpMods.members[this.curSelected]; this.grpMods.members[this.curSelected] = oldOne; this.selections(-1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(75,_this.status) && this.curSelected < this.grpMods.members.length - 1) { var oldOne = this.grpMods.members[this.curSelected + 1]; this.grpMods.members[this.curSelected + 1] = this.grpMods.members[this.curSelected]; this.grpMods.members[this.curSelected] = oldOne; this.selections(1); } funkin_ui_options_Page.prototype.update.call(this,elapsed); } ,selections: function(change) { if(change == null) { change = 0; } this.curSelected += change; if(this.curSelected >= this.detectedMods.length) { this.curSelected = 0; } if(this.curSelected < 0) { this.curSelected = this.detectedMods.length - 1; } var _g = 0; var _g1 = this.grpMods.length; while(_g < _g1) { var txt = _g++; if(txt == this.curSelected) { this.grpMods.members[txt].set_color(-256); } else { this.grpMods.members[txt].set_color(-1); } } this.organizeByY(); } ,refreshModList: function() { while(this.grpMods.members.length > 0) this.grpMods.remove(this.grpMods.members[0],true); } ,organizeByY: function() { var _g = 0; var _g1 = this.grpMods.length; while(_g < _g1) { var i = _g++; this.grpMods.members[i].set_y(10 + 40 * i); } } ,__class__: funkin_ui_options_ModMenu }); var funkin_ui_options_ModMenuItem = function(x,y,w,str,size) { this.modEnabled = false; flixel_text_FlxText.call(this,x,y,w,str,size); }; $hxClasses["funkin.ui.options.ModMenuItem"] = funkin_ui_options_ModMenuItem; funkin_ui_options_ModMenuItem.__name__ = "funkin.ui.options.ModMenuItem"; funkin_ui_options_ModMenuItem.__super__ = flixel_text_FlxText; funkin_ui_options_ModMenuItem.prototype = $extend(flixel_text_FlxText.prototype,{ modEnabled: null ,daMod: null ,update: function(elapsed) { if(this.modEnabled) { this.set_alpha(1); } else { this.set_alpha(0.5); } flixel_text_FlxText.prototype.update.call(this,elapsed); } ,__class__: funkin_ui_options_ModMenuItem }); var funkin_ui_options_OptionsState = function() { this.currentName = "options"; this.pages = new haxe_ds_StringMap(); funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.ui.options.OptionsState"] = funkin_ui_options_OptionsState; funkin_ui_options_OptionsState.__name__ = "funkin.ui.options.OptionsState"; funkin_ui_options_OptionsState.__super__ = funkin_ui_MusicBeatState; funkin_ui_options_OptionsState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ pages: null ,currentName: null ,get_currentPage: function() { return this.pages.h[this.currentName]; } ,create: function() { this.persistentUpdate = true; var menuBG = new flixel_FlxSprite().loadGraphic(funkin_Paths.image("menuBG")); var hsv = new funkin_graphics_shaders_HSVShader(); hsv.set_hue(-0.6); hsv.set_saturation(0.9); hsv.set_value(3.6); menuBG.shader = hsv; flixel_FlxG.debugger.track(hsv); menuBG.setGraphicSize(menuBG.get_width() * 1.1 | 0); menuBG.updateHitbox(); if(17 == 1 || 17 == 17) { menuBG.set_x((flixel_FlxG.width - menuBG.get_width()) / 2); } if(17 == 16 || 17 == 17) { menuBG.set_y((flixel_FlxG.height - menuBG.get_height()) / 2); } var this1 = menuBG.scrollFactor; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.add(menuBG); var options = this.addPage("options",new funkin_ui_options_OptionsMenu()); var preferences = this.addPage("preferences",new funkin_ui_options_PreferencesMenu()); var controls = this.addPage("controls",new funkin_ui_options_ControlsMenu()); if(options.hasMultipleOptions()) { options.onExit.add($bind(this,this.exitToMainMenu)); controls.onExit.add($bind(this,this.exitControls)); var _g = this; var name = "options"; var tmp = function() { _g.switchPage(name); }; preferences.onExit.add(tmp); } else { controls.onExit.add($bind(this,this.exitToMainMenu)); this.setPage("controls"); } funkin_ui_MusicBeatState.prototype.create.call(this); } ,addPage: function(name,page) { page.onSwitch.add($bind(this,this.switchPage)); this.pages.h[name] = page; this.add(page); page.set_exists(this.currentName == name); return page; } ,setPage: function(name) { if(Object.prototype.hasOwnProperty.call(this.pages.h,this.currentName)) { this.pages.h[this.currentName].set_exists(false); this.pages.h[this.currentName].set_visible(false); } this.currentName = name; if(Object.prototype.hasOwnProperty.call(this.pages.h,this.currentName)) { this.pages.h[this.currentName].set_exists(true); this.pages.h[this.currentName].set_visible(true); } } ,switchPage: function(name) { this.setPage(name); } ,exitControls: function() { funkin_PlayerSettings.reset(); funkin_PlayerSettings.init(); this.switchPage("options"); } ,exitToMainMenu: function() { this.pages.h[this.currentName].set_enabled(false); var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,__class__: funkin_ui_options_OptionsState ,__properties__: $extend(funkin_ui_MusicBeatState.prototype.__properties__,{get_currentPage:"get_currentPage"}) }); var funkin_ui_options_OptionsMenu = function() { var _gthis = this; funkin_ui_options_Page.call(this); this.add(this.items = new funkin_ui_TextMenuList()); this.createItem("PREFERENCES",function() { _gthis.onSwitch.dispatch("preferences"); }); this.createItem("CONTROLS",function() { _gthis.onSwitch.dispatch("controls"); }); this.createItem("INPUT OFFSETS",function() { flixel_FlxG.game._state.openSubState(new funkin_ui_debug_latency_LatencyState()); }); this.createItem("EXIT",$bind(this,this.exit)); }; $hxClasses["funkin.ui.options.OptionsMenu"] = funkin_ui_options_OptionsMenu; funkin_ui_options_OptionsMenu.__name__ = "funkin.ui.options.OptionsMenu"; funkin_ui_options_OptionsMenu.__super__ = funkin_ui_options_Page; funkin_ui_options_OptionsMenu.prototype = $extend(funkin_ui_options_Page.prototype,{ items: null ,createItem: function(name,callback,fireInstantly) { if(fireInstantly == null) { fireInstantly = false; } var item = this.items.createItem(0,100 + this.items.length * 100,name,"bold",callback); item.fireInstantly = fireInstantly; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { item.set_x((flixel_FlxG.width - item.get_width()) / 2); } if(axes == 16 || axes == 17) { item.set_y((flixel_FlxG.height - item.get_height()) / 2); } return item; } ,set_enabled: function(value) { this.items.enabled = value; return funkin_ui_options_Page.prototype.set_enabled.call(this,value); } ,hasMultipleOptions: function() { return this.items.length > 2; } ,__class__: funkin_ui_options_OptionsMenu }); var funkin_ui_options_PreferencesMenu = function() { var _gthis = this; funkin_ui_options_Page.call(this); this.menuCamera = new funkin_graphics_FunkinCamera("prefMenu"); flixel_FlxG.cameras.add(this.menuCamera,false); this.menuCamera.bgColor = 0; this.set_camera(this.menuCamera); this.add(this.items = new funkin_ui_TextMenuList()); this.add(this.preferenceItems = new flixel_group_FlxTypedSpriteGroup()); this.createPrefItems(); this.camFollow = new flixel_FlxObject(flixel_FlxG.width / 2,0,140,70); if(this.items != null) { var _this = this.items; this.camFollow.set_y(_this.members[_this.selectedIndex].y); } this.menuCamera.follow(this.camFollow,null,0.06); var margin = 160; var _this = this.menuCamera.deadzone; var X = 0; var Y = margin; var Width = this.menuCamera.width; var Height = 40; 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; this.menuCamera.minScrollY = 0; this.items.onChange.add(function(selected) { _gthis.camFollow.set_y(selected.y); }); }; $hxClasses["funkin.ui.options.PreferencesMenu"] = funkin_ui_options_PreferencesMenu; funkin_ui_options_PreferencesMenu.__name__ = "funkin.ui.options.PreferencesMenu"; funkin_ui_options_PreferencesMenu.__super__ = funkin_ui_options_Page; funkin_ui_options_PreferencesMenu.prototype = $extend(funkin_ui_options_Page.prototype,{ items: null ,preferenceItems: null ,menuCamera: null ,camFollow: null ,createPrefItems: function() { this.createPrefItemCheckbox("Naughtyness","Toggle displaying raunchy content",function(value) { funkin_Preferences.set_naughtyness(value); },funkin_Preferences.get_naughtyness()); this.createPrefItemCheckbox("Downscroll","Enable to make notes move downwards",function(value) { funkin_Preferences.set_downscroll(value); },funkin_Preferences.get_downscroll()); this.createPrefItemCheckbox("Flashing Lights","Disable to dampen flashing effects",function(value) { funkin_Preferences.set_flashingLights(value); },funkin_Preferences.get_flashingLights()); this.createPrefItemCheckbox("Camera Zooming on Beat","Disable to stop the camera bouncing to the song",function(value) { funkin_Preferences.set_zoomCamera(value); },funkin_Preferences.get_zoomCamera()); this.createPrefItemCheckbox("Debug Display","Enable to show FPS and other debug stats",function(value) { funkin_Preferences.set_debugDisplay(value); },funkin_Preferences.get_debugDisplay()); this.createPrefItemCheckbox("Auto Pause","Automatically pause the game when it loses focus",function(value) { funkin_Preferences.set_autoPause(value); },funkin_Preferences.get_autoPause()); } ,createPrefItemCheckbox: function(prefName,prefDesc,onChange,defaultValue) { var checkbox = new funkin_ui_options_CheckboxPreferenceItem(0,120 * (this.items.length - 1 + 1),defaultValue); this.items.createItem(120,120 * this.items.length + 30,prefName,"bold",function() { var value = !checkbox.currentValue; onChange(value); checkbox.set_currentValue(value); }); this.preferenceItems.add(checkbox); } ,update: function(elapsed) { var _gthis = this; funkin_ui_options_Page.prototype.update.call(this,elapsed); this.items.forEach(function(daItem) { var _this = _gthis.items; if(_this.members[_this.selectedIndex] == daItem) { daItem.set_x(150); } else { daItem.set_x(120); } }); } ,__class__: funkin_ui_options_PreferencesMenu }); var funkin_ui_options_CheckboxPreferenceItem = function(x,y,defaultValue) { if(defaultValue == null) { defaultValue = false; } flixel_FlxSprite.call(this,x,y); this.set_frames(funkin_Paths.getSparrowAtlas("checkboxThingie")); this.animation.addByPrefix("static","Check Box unselected",24,false); this.animation.addByPrefix("checked","Check Box selecting animation",24,false); this.setGraphicSize(this.get_width() * 0.7 | 0); this.updateHitbox(); this.set_currentValue(defaultValue); }; $hxClasses["funkin.ui.options.CheckboxPreferenceItem"] = funkin_ui_options_CheckboxPreferenceItem; funkin_ui_options_CheckboxPreferenceItem.__name__ = "funkin.ui.options.CheckboxPreferenceItem"; funkin_ui_options_CheckboxPreferenceItem.__super__ = flixel_FlxSprite; funkin_ui_options_CheckboxPreferenceItem.prototype = $extend(flixel_FlxSprite.prototype,{ currentValue: null ,update: function(elapsed) { flixel_FlxSprite.prototype.update.call(this,elapsed); switch(this.animation._curAnim.name) { case "checked": var this1 = this.offset; var x = 17; var y = 70; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); break; case "static": var this1 = this.offset; this1.set_x(0); this1.set_y(0); break; } } ,set_currentValue: function(value) { if(value) { this.animation.play("checked",true); } else { this.animation.play("static"); } return this.currentValue = value; } ,__class__: funkin_ui_options_CheckboxPreferenceItem ,__properties__: $extend(flixel_FlxSprite.prototype.__properties__,{set_currentValue:"set_currentValue"}) }); var funkin_ui_story_Level = function(id) { this.id = id; this._data = funkin_ui_story_Level._fetchData(id); if(this._data == null) { throw haxe_Exception.thrown("Could not parse level data for id: " + id); } }; $hxClasses["funkin.ui.story.Level"] = funkin_ui_story_Level; funkin_ui_story_Level.__name__ = "funkin.ui.story.Level"; funkin_ui_story_Level.__interfaces__ = [funkin_data_IRegistryEntry]; funkin_ui_story_Level.getSongDisplayName = function(songId,difficulty) { var song = funkin_data_song_SongRegistry.get_instance().fetchEntry(songId); if(song == null) { return "Unknown"; } return song.get_songName(); }; funkin_ui_story_Level._fetchData = function(id) { return funkin_data_story_level_LevelRegistry.get_instance().parseEntryDataWithMigration(id,funkin_data_story_level_LevelRegistry.get_instance().fetchEntryVersion(id)); }; funkin_ui_story_Level.prototype = { id: null ,_data: null ,getSongs: function() { return this._data.songs.slice(); } ,getTitle: function() { return this._data.name; } ,buildTitleGraphic: function() { var result = new flixel_FlxSprite().loadGraphic(funkin_Paths.image(this._data.titleAsset)); return result; } ,getSongDisplayNames: function(difficulty) { var tmp = this.getSongs(); var songList = tmp != null ? tmp : []; var result = new Array(songList.length); var _g = 0; var _g1 = songList.length; while(_g < _g1) { var i = _g++; result[i] = funkin_ui_story_Level.getSongDisplayName(songList[i],difficulty); } var songNameList = result; return songNameList; } ,isUnlocked: function() { return true; } ,isVisible: function() { return this._data.visible; } ,buildBackground: function() { if(!StringTools.startsWith(this._data.background,"#")) { return new flixel_FlxSprite().loadGraphic(funkin_Paths.image(this._data.background)); } var result = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,400,-1); result.set_color(this.getBackgroundColor()); return result; } ,isBackgroundSimple: function() { return StringTools.startsWith(this._data.background,"#"); } ,getBackgroundColor: function() { return flixel_util_FlxColor.fromString(this._data.background); } ,getDifficulties: function() { var difficulties = []; var songList = this.getSongs(); var firstSongId = songList[0]; var firstSong = funkin_data_song_SongRegistry.get_instance().fetchEntry(firstSongId); if(firstSong != null) { var _g = 0; var _g1 = firstSong.listDifficulties(null,[funkin_util_Constants.DEFAULT_VARIATION,"erect"],false,false); while(_g < _g1.length) { var difficulty = _g1[_g]; ++_g; difficulties.push(difficulty); } } var defaultValues = funkin_util_Constants.DEFAULT_DIFFICULTY_LIST; difficulties.sort(function(a,b) { return funkin_util_SortUtil.defaultsThenAlphabetically(defaultValues,a,b); }); var _g = 1; var _g1 = songList.length; while(_g < _g1) { var songIndex = _g++; var songId = songList[songIndex]; var song = funkin_data_song_SongRegistry.get_instance().fetchEntry(songId); if(song == null) { continue; } var _g2 = 0; while(_g2 < difficulties.length) { var difficulty = difficulties[_g2]; ++_g2; if(!song.hasDifficulty(difficulty,null,[funkin_util_Constants.DEFAULT_VARIATION,"erect"])) { HxOverrides.remove(difficulties,difficulty); } } } if(difficulties.length == 0) { difficulties = ["normal"]; } return difficulties; } ,buildProps: function(existingProps) { var props; if(existingProps == null) { props = []; } else { var _g = []; var _g1 = 0; while(_g1 < existingProps.length) { var x = existingProps[_g1]; ++_g1; _g.push(x); } props = _g; } if(this._data.props.length == 0) { return props; } var hiddenProps = props.splice(this._data.props.length - 1,props.length - 1); var _g = 0; while(_g < hiddenProps.length) { var hiddenProp = hiddenProps[_g]; ++_g; hiddenProp.set_visible(false); } var _g = 0; var _g1 = this._data.props.length; while(_g < _g1) { var propIndex = _g++; var propData = this._data.props[propIndex]; var existingProp = props[propIndex]; if(existingProp != null) { existingProp.set_propData(propData); if(existingProp.propData == null) { existingProp.set_visible(false); } else { existingProp.set_visible(true); existingProp.set_x(propData.offsets[0] + flixel_FlxG.width * 0.25 * propIndex); } } else { var propSprite = funkin_ui_story_LevelProp.build(propData); if(propSprite == null) { continue; } propSprite.set_x(propData.offsets[0] + flixel_FlxG.width * 0.25 * propIndex); props.push(propSprite); } } return props; } ,destroy: function() { } ,toString: function() { return "Level(" + this.id + ")"; } ,__class__: funkin_ui_story_Level }; var funkin_ui_story_LevelProp = function(propData) { this.propData = null; funkin_play_stage_Bopper.call(this,propData.danceEvery); this.set_propData(propData); }; $hxClasses["funkin.ui.story.LevelProp"] = funkin_ui_story_LevelProp; funkin_ui_story_LevelProp.__name__ = "funkin.ui.story.LevelProp"; funkin_ui_story_LevelProp.build = function(propData) { if(propData == null) { return null; } return new funkin_ui_story_LevelProp(propData); }; funkin_ui_story_LevelProp.__super__ = funkin_play_stage_Bopper; funkin_ui_story_LevelProp.prototype = $extend(funkin_play_stage_Bopper.prototype,{ propData: null ,set_propData: function(value) { if(this.propData == null || !thx_Dynamics.equals(value,this.propData)) { this.propData = value; this.set_visible(this.propData != null); var tmp = this.propData; var tmp1 = tmp != null ? tmp.danceEvery : null; this.danceEvery = tmp1 != null ? tmp1 : 0; this.applyData(); } return this.propData; } ,playConfirm: function() { this.playAnimation("confirm",true,true); } ,applyData: function() { if(this.propData == null) { this.set_visible(false); return; } else { this.set_visible(true); } this.shouldAlternate = null; var isAnimated = this.propData.animations.length > 0; if(isAnimated) { this.set_frames(funkin_Paths.getSparrowAtlas(this.propData.assetPath)); } else { this.loadGraphic(funkin_Paths.image(this.propData.assetPath)); this.set_active(false); } if(this.frames == null || this.frames.frames.length == 0) { haxe_Log.trace("ERROR: Could not build texture for level prop (" + this.propData.assetPath + ").",{ fileName : "source/funkin/ui/story/LevelProp.hx", lineNumber : 71, className : "funkin.ui.story.LevelProp", methodName : "applyData"}); return; } var scale = this.propData.scale * (this.propData.isPixel ? 6 : 1); var this1 = this.scale; var x = scale; var y = scale; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.set_antialiasing(!this.propData.isPixel); this.set_alpha(this.propData.alpha); this.set_x(this.propData.offsets[0]); this.set_y(this.propData.offsets[1]); funkin_util_assets_FlxAnimationUtil.addAtlasAnimations(this,this.propData.animations); var _g = 0; var _g1 = this.propData.animations; while(_g < _g1.length) { var propAnim = _g1[_g]; ++_g; this.setAnimationOffsets(propAnim.name,propAnim.offsets[0],propAnim.offsets[1]); } this.dance(); var _this = this.animation; if(_this._curAnim != null) { _this._curAnim.pause(); } } ,__class__: funkin_ui_story_LevelProp ,__properties__: $extend(funkin_play_stage_Bopper.prototype.__properties__,{set_propData:"set_propData"}) }); var funkin_ui_story_LevelTitle = function(x,y,level) { this.fakeFramerate = Math.round(1 / flixel_FlxG.elapsed / 10); this.flashingInt = 0; this.isFlashing = false; flixel_group_FlxTypedSpriteGroup.call(this,x,y); this.level = level; if(this.level == null) { throw haxe_Exception.thrown("Level cannot be null!"); } this.buildLevelTitle(); this.buildLevelLock(); }; $hxClasses["funkin.ui.story.LevelTitle"] = funkin_ui_story_LevelTitle; funkin_ui_story_LevelTitle.__name__ = "funkin.ui.story.LevelTitle"; funkin_ui_story_LevelTitle.__super__ = flixel_group_FlxTypedSpriteGroup; funkin_ui_story_LevelTitle.prototype = $extend(flixel_group_FlxTypedSpriteGroup.prototype,{ level: null ,targetY: null ,isFlashing: null ,title: null ,lock: null ,flashingInt: null ,get_width: function() { if(this.group.length == 0) { return 0; } if(this.lock.visible) { return this.title.get_width() + this.lock.get_width() + funkin_ui_story_LevelTitle.LOCK_PAD; } else { return this.title.get_width(); } } ,fakeFramerate: null ,update: function(elapsed) { this.set_y(funkin_util_MathUtil.coolLerp(this.y,this.targetY,0.17)); if(this.isFlashing) { this.flashingInt += 1; } if(this.flashingInt % this.fakeFramerate >= Math.floor(this.fakeFramerate / 2)) { this.title.set_color(-13369345); } else { this.title.set_color(-1); } } ,showLock: function() { this.lock.set_visible(true); this.set_x(this.x - (this.lock.get_width() + funkin_ui_story_LevelTitle.LOCK_PAD) / 2); } ,hideLock: function() { this.lock.set_visible(false); this.set_x(this.x + (this.lock.get_width() + funkin_ui_story_LevelTitle.LOCK_PAD) / 2); } ,buildLevelTitle: function() { this.title = this.level.buildTitleGraphic(); this.add(this.title); } ,buildLevelLock: function() { this.lock = new flixel_FlxSprite(0,0).loadGraphic(funkin_Paths.image("storymenu/ui/lock")); this.lock.set_x(this.title.x + this.title.get_width() + funkin_ui_story_LevelTitle.LOCK_PAD); this.lock.set_visible(false); this.add(this.lock); } ,__class__: funkin_ui_story_LevelTitle }); var funkin_ui_story_ScriptedLevel = function(id) { funkin_ui_story_Level.call(this,id); }; $hxClasses["funkin.ui.story.ScriptedLevel"] = funkin_ui_story_ScriptedLevel; funkin_ui_story_ScriptedLevel.__name__ = "funkin.ui.story.ScriptedLevel"; funkin_ui_story_ScriptedLevel.__interfaces__ = [polymod_hscript_HScriptedClass]; funkin_ui_story_ScriptedLevel.listScriptClasses = function() { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending("funkin.ui.story.Level"); }; funkin_ui_story_ScriptedLevel.init = function(clsName,id) { var value = $hxClasses["funkin.ui.story.ScriptedLevel"]; polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h["funkin.ui.story.Level"] = value; var asc = polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance(clsName,[id]); if(asc == null) { polymod_Polymod.error("script_runtime_exception","Could not construct instance of scripted class (" + clsName + " extends " + "funkin.ui.story.ScriptedLevel" + ")"); return null; } var scriptedObj = asc.superClass; scriptedObj["_asc"] = asc; return scriptedObj; }; funkin_ui_story_ScriptedLevel.__super__ = funkin_ui_story_Level; funkin_ui_story_ScriptedLevel.prototype = $extend(funkin_ui_story_Level.prototype,{ _asc: null ,scriptCall: function(funcName,funcArgs) { return this._asc.callFunction(funcName,funcArgs == null ? [] : funcArgs); } ,scriptGet: function(varName) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(this._asc,varName); } ,scriptSet: function(varName,varValue) { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(this._asc,varName,varValue); } ,toString: function() { if(this._asc == null) { var clsName = "ScriptedLevel"; var superName = "Level"; return "PolymodScriptedClass<" + clsName + " extends " + superName + ">(NO ASC)"; } else { return this._asc.callFunction("toString",[]); } } ,isVisible: function() { var fieldName = "isVisible"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.isVisible.call(this); } } ,isUnlocked: function() { var fieldName = "isUnlocked"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.isUnlocked.call(this); } } ,isBackgroundSimple: function() { var fieldName = "isBackgroundSimple"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.isBackgroundSimple.call(this); } } ,getTitle: function() { var fieldName = "getTitle"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.getTitle.call(this); } } ,getSongs: function() { var fieldName = "getSongs"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.getSongs.call(this); } } ,getSongDisplayNames: function(difficulty) { var fieldName = "getSongDisplayNames"; if(this._asc != null) { return this._asc.callFunction(fieldName,[difficulty]); } else { return funkin_ui_story_Level.prototype.getSongDisplayNames.call(this,difficulty); } } ,getDifficulties: function() { var fieldName = "getDifficulties"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.getDifficulties.call(this); } } ,getBackgroundColor: function() { var fieldName = "getBackgroundColor"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.getBackgroundColor.call(this); } } ,destroy: function() { var fieldName = "destroy"; if(this._asc != null) { this._asc.callFunction(fieldName,[]); } else { funkin_ui_story_Level.prototype.destroy.call(this); } } ,buildTitleGraphic: function() { var fieldName = "buildTitleGraphic"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.buildTitleGraphic.call(this); } } ,buildProps: function(existingProps) { var fieldName = "buildProps"; if(this._asc != null) { return this._asc.callFunction(fieldName,[existingProps]); } else { return funkin_ui_story_Level.prototype.buildProps.call(this,existingProps); } } ,buildBackground: function() { var fieldName = "buildBackground"; if(this._asc != null) { return this._asc.callFunction(fieldName,[]); } else { return funkin_ui_story_Level.prototype.buildBackground.call(this); } } ,__super_toString: function() { var fieldName = "toString"; return funkin_ui_story_Level.prototype.toString.call(this); } ,__super_isVisible: function() { var fieldName = "isVisible"; return funkin_ui_story_Level.prototype.isVisible.call(this); } ,__super_isUnlocked: function() { var fieldName = "isUnlocked"; return funkin_ui_story_Level.prototype.isUnlocked.call(this); } ,__super_isBackgroundSimple: function() { var fieldName = "isBackgroundSimple"; return funkin_ui_story_Level.prototype.isBackgroundSimple.call(this); } ,__super_getTitle: function() { var fieldName = "getTitle"; return funkin_ui_story_Level.prototype.getTitle.call(this); } ,__super_getSongs: function() { var fieldName = "getSongs"; return funkin_ui_story_Level.prototype.getSongs.call(this); } ,__super_getSongDisplayNames: function(difficulty) { var fieldName = "getSongDisplayNames"; return funkin_ui_story_Level.prototype.getSongDisplayNames.call(this,difficulty); } ,__super_getDifficulties: function() { var fieldName = "getDifficulties"; return funkin_ui_story_Level.prototype.getDifficulties.call(this); } ,__super_getBackgroundColor: function() { var fieldName = "getBackgroundColor"; return funkin_ui_story_Level.prototype.getBackgroundColor.call(this); } ,__super_destroy: function() { var fieldName = "destroy"; funkin_ui_story_Level.prototype.destroy.call(this); } ,__super_buildTitleGraphic: function() { var fieldName = "buildTitleGraphic"; return funkin_ui_story_Level.prototype.buildTitleGraphic.call(this); } ,__super_buildProps: function(existingProps) { var fieldName = "buildProps"; return funkin_ui_story_Level.prototype.buildProps.call(this,existingProps); } ,__super_buildBackground: function() { var fieldName = "buildBackground"; return funkin_ui_story_Level.prototype.buildBackground.call(this); } ,__class__: funkin_ui_story_ScriptedLevel }); var funkin_ui_title_AttractState = function() { funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.ui.title.AttractState"] = funkin_ui_title_AttractState; funkin_ui_title_AttractState.__name__ = "funkin.ui.title.AttractState"; funkin_ui_title_AttractState.__super__ = funkin_ui_MusicBeatState; funkin_ui_title_AttractState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ create: function() { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.destroy(); flixel_FlxG.sound.music = null; } haxe_Log.trace("Playing web video " + funkin_ui_title_AttractState.ATTRACT_VIDEO_PATH,{ fileName : "source/funkin/ui/title/AttractState.hx", lineNumber : 32, className : "funkin.ui.title.AttractState", methodName : "create"}); this.playVideoHTML5(funkin_ui_title_AttractState.ATTRACT_VIDEO_PATH); } ,vid: null ,playVideoHTML5: function(filePath) { this.vid = new funkin_graphics_video_FlxVideo(filePath); if(this.vid != null) { this.vid.zIndex = 0; this.vid.finishCallback = $bind(this,this.onAttractEnd); this.add(this.vid); } else { haxe_Log.trace("ALERT: Video is null! Could not play cutscene!",{ fileName : "source/funkin/ui/title/AttractState.hx", lineNumber : 59, className : "funkin.ui.title.AttractState", methodName : "playVideoHTML5"}); } } ,update: function(elapsed) { funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); if(flixel_FlxG.keys.justPressed.get_ANY() && !funkin_PlayerSettings.player1.controls._volume_mute.check() && !funkin_PlayerSettings.player1.controls._volume_up.check() && !funkin_PlayerSettings.player1.controls._volume_down.check()) { this.onAttractEnd(); } } ,onAttractEnd: function() { if(this.vid != null) { this.remove(this.vid); } this.vid.destroy(); this.vid = null; var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_title_TitleState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,__class__: funkin_ui_title_AttractState }); var funkin_ui_title_FlxSpriteOverlay = function(x,y) { flixel_FlxSprite.call(this,x,y); this.temp = new flixel_FlxSprite().makeGraphic(flixel_FlxG.width,flixel_FlxG.height,-16777216); this.blendShader = new funkin_graphics_shaders_BlendModesShader(); this.dipshitBitmap = new openfl_display_BitmapData(2180,1720,true,-3407668); }; $hxClasses["funkin.ui.title.FlxSpriteOverlay"] = funkin_ui_title_FlxSpriteOverlay; funkin_ui_title_FlxSpriteOverlay.__name__ = "funkin.ui.title.FlxSpriteOverlay"; funkin_ui_title_FlxSpriteOverlay.__super__ = flixel_FlxSprite; funkin_ui_title_FlxSpriteOverlay.prototype = $extend(flixel_FlxSprite.prototype,{ blendShader: null ,dipshitBitmap: null ,temp: null ,drawComplex: function(camera) { var doFlipX = this.flipX != this._frame.flipX; var doFlipY = this.flipY != this._frame.flipY; this._frame.prepareMatrix(this._matrix,0,this.animation._curAnim != null ? doFlipX != this.animation._curAnim.flipX : doFlipX,this.animation._curAnim != null ? doFlipY != this.animation._curAnim.flipY : doFlipY); this._matrix.translate(-this.origin.x,-this.origin.y); this._matrix.scale(this.scale.x,this.scale.y); if(this.bakedRotationAngle <= 0) { if(this._angleChanged) { var radians = this.angle * (Math.PI / 180); this._sinAngle = Math.sin(radians); this._cosAngle = Math.cos(radians); this._angleChanged = false; } if(this.angle != 0) { var _this = this._matrix; var cos = this._cosAngle; var sin = this._sinAngle; 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; } } var this1 = this.getScreenPosition(this._point,camera); var point = this.offset; var x = point.x; var y = point.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x - x); this1.set_y(this1.y - y); if(point._weak) { point.put(); } var this1 = this._point; var x = this.origin.x; var y = this.origin.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(this1.x + x); this1.set_y(this1.y + y); this._matrix.translate(this._point.x,this._point.y); if(this.isPixelPerfectRender(camera)) { this._matrix.tx = Math.floor(this._matrix.tx); this._matrix.ty = Math.floor(this._matrix.ty); } var sprRect = this.getScreenBounds(); camera.drawPixels(this._frame,this.framePixels,this._matrix,this.colorTransform,this.blend,this.antialiasing,this.shader); } ,copyToFlash: function(rect) { var flashRect = new openfl_geom_Rectangle(); flashRect.x = rect.x; flashRect.y = rect.y; flashRect.width = rect.width; flashRect.height = rect.height; return flashRect; } ,isSimpleRender: function(camera) { if(flixel_FlxG.renderBlit) { return flixel_FlxSprite.prototype.isSimpleRender.call(this,camera); } else { return false; } } ,__class__: funkin_ui_title_FlxSpriteOverlay }); var funkin_ui_title_TitleState = function() { this.skippedIntro = false; this.isRainbow = false; this.cheatActive = false; this.curCheatPos = 0; this.cheatArray = [1,16,1,16,256,4096,256,4096]; this.transitioning = false; this.maskShader = new funkin_graphics_shaders_LeftMaskShader(); this.danceLeft = false; this.lastBeat = 0; this.curWacky = []; funkin_ui_MusicBeatState.call(this); }; $hxClasses["funkin.ui.title.TitleState"] = funkin_ui_title_TitleState; funkin_ui_title_TitleState.__name__ = "funkin.ui.title.TitleState"; funkin_ui_title_TitleState.__super__ = funkin_ui_MusicBeatState; funkin_ui_title_TitleState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ blackScreen: null ,credGroup: null ,textGroup: null ,ngSpr: null ,curWacky: null ,lastBeat: null ,swagShader: null ,video: null ,netStream: null ,overlay: null ,create: function() { var _gthis = this; funkin_ui_MusicBeatState.prototype.create.call(this); this.swagShader = new funkin_graphics_shaders_ColorSwap(); this.curWacky = flixel_FlxG.random.getObject_Array_String(this.getIntroTextShit()); var _this = flixel_FlxG.sound; var embeddedSound = funkin_Paths.music("freakyMenu/freakyMenu"); if(openfl_utils_Assets.exists(embeddedSound,"SOUND") || openfl_utils_Assets.exists(embeddedSound,"MUSIC")) { openfl_utils_Assets.getSound(embeddedSound,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + embeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } var _this = flixel_FlxG.sound; var embeddedSound = funkin_Paths.music("girlfriendsRingtone/girlfriendsRingtone"); if(openfl_utils_Assets.exists(embeddedSound,"SOUND") || openfl_utils_Assets.exists(embeddedSound,"MUSIC")) { openfl_utils_Assets.getSound(embeddedSound,true); } else { flixel_FlxG.log.advanced("Could not find a Sound asset with an ID of '" + embeddedSound + "'.",flixel_system_debug_log_LogStyle.ERROR,true); } if(!funkin_ui_title_TitleState.initialized) { new flixel_util_FlxTimer().start(1,function(tmr) { _gthis.startIntro(); }); } else { this.startIntro(); } } ,client_onMetaData: function(metaData) { this.video.attachNetStream(this.netStream); this.video.set_width(this.video.get_videoWidth()); this.video.set_height(this.video.get_videoHeight()); } ,netStream_onAsyncError: function(event) { haxe_Log.trace("Error loading video",{ fileName : "source/funkin/ui/title/TitleState.hx", lineNumber : 88, className : "funkin.ui.title.TitleState", methodName : "netStream_onAsyncError"}); } ,netConnection_onNetStatus: function(event) { if(event.info.code == "NetStream.Play.Complete") { this.startIntro(); } haxe_Log.trace(event.toString(),{ fileName : "source/funkin/ui/title/TitleState.hx", lineNumber : 101, className : "funkin.ui.title.TitleState", methodName : "netConnection_onNetStatus"}); } ,overlay_onMouseDown: function(event) { this.netStream.get_soundTransform().volume = 0.2; this.netStream.get_soundTransform().pan = -1; openfl_Lib.get_current().stage.removeChild(this.overlay); } ,logoBl: null ,outlineShaderShit: null ,gfDance: null ,danceLeft: null ,titleText: null ,maskShader: null ,startIntro: function() { if(!funkin_ui_title_TitleState.initialized || flixel_FlxG.sound.music == null) { this.playMenuMusic(); } this.persistentUpdate = true; var bg = new funkin_graphics_FunkinSprite(-1).makeSolidColor(flixel_FlxG.width + 2,flixel_FlxG.height,-16777216); if(17 == 1 || 17 == 17) { bg.set_x((flixel_FlxG.width - bg.get_width()) / 2); } if(17 == 16 || 17 == 17) { bg.set_y((flixel_FlxG.height - bg.get_height()) / 2); } this.add(bg); this.logoBl = new flixel_FlxSprite(-150,-100); this.logoBl.set_frames(funkin_Paths.getSparrowAtlas("logoBumpin")); this.logoBl.animation.addByPrefix("bump","logo bumpin",24); this.logoBl.animation.play("bump"); this.logoBl.shader = this.swagShader.shader; this.logoBl.updateHitbox(); this.outlineShaderShit = new funkin_graphics_shaders_TitleOutline(); this.gfDance = new funkin_ui_title_FlxSpriteOverlay(flixel_FlxG.width * 0.4,flixel_FlxG.height * 0.07); this.gfDance.set_frames(funkin_Paths.getSparrowAtlas("gfDanceTitle")); this.gfDance.animation.addByIndices("danceLeft","gfDance",[30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"",24,false); this.gfDance.animation.addByIndices("danceRight","gfDance",[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"",24,false); this.gfDance.shader = this.swagShader.shader; this.add(this.logoBl); this.add(this.gfDance); this.titleText = new flixel_FlxSprite(100,flixel_FlxG.height * 0.8); this.titleText.set_frames(funkin_Paths.getSparrowAtlas("titleEnter")); this.titleText.animation.addByPrefix("idle","Press Enter to Begin",24); this.titleText.animation.addByPrefix("press","ENTER PRESSED",24); this.titleText.animation.play("idle"); this.titleText.updateHitbox(); this.titleText.shader = this.swagShader.shader; this.add(this.titleText); if(!funkin_ui_title_TitleState.initialized) { this.credGroup = new flixel_group_FlxTypedGroup(); this.add(this.credGroup); } this.textGroup = new flixel_group_FlxTypedGroup(); this.blackScreen = bg.clone(); if(this.credGroup != null) { this.credGroup.add(this.blackScreen); this.credGroup.add(this.textGroup); } this.ngSpr = new flixel_FlxSprite(0,flixel_FlxG.height * 0.52); var Chance = 1; if(Chance == null) { Chance = 50; } if(flixel_FlxG.random.float(0,100) < Chance) { this.ngSpr.loadGraphic(funkin_Paths.image("newgrounds_logo_classic")); } else { var Chance = 30; if(Chance == null) { Chance = 50; } if(flixel_FlxG.random.float(0,100) < Chance) { this.ngSpr.loadGraphic(funkin_Paths.image("newgrounds_logo_animated"),true,600); this.ngSpr.animation.add("idle",[0,1],4); this.ngSpr.animation.play("idle"); this.ngSpr.setGraphicSize(this.ngSpr.get_width() * 0.55 | 0); var fh = this.ngSpr; fh.set_y(fh.y + 25); } else { this.ngSpr.loadGraphic(funkin_Paths.image("newgrounds_logo")); this.ngSpr.setGraphicSize(this.ngSpr.get_width() * 0.8 | 0); } } this.add(this.ngSpr); this.ngSpr.set_visible(false); this.ngSpr.updateHitbox(); var _this = this.ngSpr; var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(axes == 16 || axes == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } flixel_FlxG.mouse.set_visible(false); if(funkin_ui_title_TitleState.initialized) { this.skipIntro(); } else { funkin_ui_title_TitleState.initialized = true; } if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.onComplete = $bind(this,this.moveToAttract); } } ,moveToAttract: function() { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_title_AttractState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } ,playMenuMusic: function() { var shouldFadeIn = flixel_FlxG.sound.music == null; funkin_audio_FunkinSound.playMusic("freakyMenu",{ startingVolume : 0.0, overrideExisting : true, restartTrack : true}); if(shouldFadeIn) { var _this = flixel_FlxG.sound.music; var Duration = 4.0; var From = 0.0; var To = 1.0; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); } } ,getIntroTextShit: function() { var fullText = openfl_utils_Assets.getText(funkin_Paths.txt("introText")); var _g = []; var _g1 = 0; var _g2 = fullText.split("\n"); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != "") { _g.push(v); } } var firstArray = _g; var swagGoodArray = []; var _g = 0; while(_g < firstArray.length) { var i = firstArray[_g]; ++_g; swagGoodArray.push(i.split("--")); } return swagGoodArray; } ,transitioning: null ,update: function(elapsed) { funkin_Conductor.get_instance().update(); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(73,_this.status)) { flixel_tweens_FlxTween.tween(this.outlineShaderShit,{ funnyX : 50, funnyY : 50},0.6,{ ease : flixel_tweens_FlxEase.quartOut}); } var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(68,_this.status)) { var fh = this.outlineShaderShit; fh.set_funnyX(fh.funnyX + 1); } var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(89,_this.status)) { flixel_tweens_FlxTween.cancelTweensOf(openfl_Lib.get_current().stage.window,["x","y"]); flixel_tweens_FlxTween.tween(openfl_Lib.get_current().stage.window,{ x : openfl_Lib.get_current().stage.window.__x + 300},1.4,{ ease : flixel_tweens_FlxEase.quadInOut, type : 4, startDelay : 0.35}); flixel_tweens_FlxTween.tween(openfl_Lib.get_current().stage.window,{ y : openfl_Lib.get_current().stage.window.__y + 100},0.7,{ ease : flixel_tweens_FlxEase.quadInOut, type : 4}); } if(flixel_FlxG.sound.music != null) { funkin_Conductor.get_instance().update(flixel_FlxG.sound.music._time); } var _this = flixel_FlxG.keys.justPressed; var pressedEnter = _this.keyManager.checkStatusUnsafe(13,_this.status); var gamepad = flixel_FlxG.gamepads.lastActive; if(gamepad != null) { var _this = gamepad.justPressed; var id = 7; var _this1 = _this.gamepad; var Status = _this.status; var tmp; switch(id) { case -2: tmp = _this1.anyButton(Status); break; case -1: tmp = !_this1.anyButton(Status); break; default: var RawID = _this1.mapping.getRawID(id); var button = _this1.buttons[RawID]; tmp = button != null && button.hasState(Status); } if(tmp) { pressedEnter = true; } } if(pressedEnter && this.transitioning && this.skippedIntro) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } if(pressedEnter && !this.transitioning && this.skippedIntro) { if(flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.onComplete = null; } funkin_api_newgrounds_NGio.unlockMedal(60960); if(new Date().getDay() == 5) { funkin_api_newgrounds_NGio.unlockMedal(61034); } this.titleText.animation.play("press"); flixel_FlxG.camera.flash(-1,1); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("confirmMenu"),0.7); this.transitioning = true; var targetState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); new flixel_util_FlxTimer().start(2,function(tmr) { var nextState = targetState; var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); }); } if(pressedEnter && !this.skippedIntro && funkin_ui_title_TitleState.initialized) { this.skipIntro(); } if(funkin_PlayerSettings.player1.controls._ui_left.checkPressed()) { this.swagShader.update(-elapsed * 0.1); } if(funkin_PlayerSettings.player1.controls._ui_right.checkPressed()) { this.swagShader.update(elapsed * 0.1); } if(!this.cheatActive && this.skippedIntro) { this.cheatCodeShit(); } funkin_ui_MusicBeatState.prototype.update.call(this,elapsed); } ,draw: function() { funkin_ui_MusicBeatState.prototype.draw.call(this); } ,cheatArray: null ,curCheatPos: null ,cheatActive: null ,cheatCodeShit: function() { if(flixel_FlxG.keys.justPressed.get_ANY()) { if(funkin_PlayerSettings.player1.controls._note_down.checkJustPressed() || funkin_PlayerSettings.player1.controls._ui_down.checkJustPressed()) { this.codePress(4096); } if(funkin_PlayerSettings.player1.controls._note_up.checkJustPressed() || funkin_PlayerSettings.player1.controls._ui_up.checkJustPressed()) { this.codePress(256); } if(funkin_PlayerSettings.player1.controls._note_left.checkJustPressed() || funkin_PlayerSettings.player1.controls._ui_left.checkJustPressed()) { this.codePress(1); } if(funkin_PlayerSettings.player1.controls._note_right.checkJustPressed() || funkin_PlayerSettings.player1.controls._ui_right.checkJustPressed()) { this.codePress(16); } } } ,codePress: function(input) { if(input == this.cheatArray[this.curCheatPos]) { this.curCheatPos += 1; if(this.curCheatPos >= this.cheatArray.length) { this.startCheat(); } } else { this.curCheatPos = 0; } haxe_Log.trace(input,{ fileName : "source/funkin/ui/title/TitleState.hx", lineNumber : 385, className : "funkin.ui.title.TitleState", methodName : "codePress"}); } ,startCheat: function() { this.cheatActive = true; var spec = new funkin_audio_visualize_SpectogramSprite(flixel_FlxG.sound.music); funkin_audio_FunkinSound.playMusic("girlfriendsRingtone",{ startingVolume : 0.0, overrideExisting : true, restartTrack : true}); var _this = flixel_FlxG.sound.music; var Duration = 4.0; var From = 0.0; var To = 1.0; if(To == null) { To = 1; } if(From == null) { From = 0; } if(Duration == null) { Duration = 1; } if(_this._channel == null) { _this.play(); } if(_this.fadeTween != null) { _this.fadeTween.cancel(); } _this.fadeTween = flixel_tweens_FlxTween.num(From,To,Duration,{ onComplete : null},$bind(_this,_this.volumeTween)); flixel_FlxG.camera.flash(-1,1); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("confirmMenu"),0.7); } ,createCoolText: function(textArray) { if(this.credGroup == null || this.textGroup == null) { return; } var _g = 0; var _g1 = textArray.length; while(_g < _g1) { var i = _g++; var money = new funkin_ui_AtlasText(0,0,textArray[i],"bold"); var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { money.set_x((flixel_FlxG.width - money.get_width()) / 2); } if(axes == 16 || axes == 17) { money.set_y((flixel_FlxG.height - money.get_height()) / 2); } money.set_y(money.y + (i * 60 + 200)); this.textGroup.add(money); } } ,addMoreText: function(text) { if(this.credGroup == null || this.textGroup == null) { return; } lime_ui_Haptic.vibrate(100,100); var coolText = new funkin_ui_AtlasText(0,0,StringTools.trim(text),"bold"); var axes = 1; if(axes == null) { axes = 17; } if(axes == 1 || axes == 17) { coolText.set_x((flixel_FlxG.width - coolText.get_width()) / 2); } if(axes == 16 || axes == 17) { coolText.set_y((flixel_FlxG.height - coolText.get_height()) / 2); } coolText.set_y(coolText.y + (this.textGroup.length * 60 + 200)); this.textGroup.add(coolText); } ,deleteCoolText: function() { if(this.credGroup == null || this.textGroup == null) { return; } while(this.textGroup.members.length > 0) this.textGroup.remove(this.textGroup.members[0],true); } ,isRainbow: null ,skippedIntro: null ,beatHit: function() { if(!funkin_ui_MusicBeatState.prototype.beatHit.call(this)) { return false; } if(!this.skippedIntro) { if(funkin_Conductor.get_instance().currentBeat > this.lastBeat) { var _g = this.lastBeat; var _g1 = funkin_Conductor.get_instance().currentBeat; while(_g < _g1) { var i = _g++; switch(i + 1) { case 1: this.createCoolText(["The","Funkin Crew Inc"]); break; case 3: this.addMoreText("presents"); break; case 4: this.deleteCoolText(); break; case 5: this.createCoolText(["In association","with"]); break; case 7: this.addMoreText("newgrounds"); if(this.ngSpr != null) { this.ngSpr.set_visible(true); } break; case 8: this.deleteCoolText(); if(this.ngSpr != null) { this.ngSpr.set_visible(false); } break; case 9: this.createCoolText([this.curWacky[0]]); break; case 11: this.addMoreText(this.curWacky[1]); break; case 12: this.deleteCoolText(); break; case 13: this.addMoreText("Friday"); break; case 14: this.addMoreText("Night"); break; case 15: this.addMoreText("Funkin"); break; case 16: this.skipIntro(); break; } } } this.lastBeat = funkin_Conductor.get_instance().currentBeat; } if(this.skippedIntro) { if(this.cheatActive && funkin_Conductor.get_instance().currentBeat % 2 == 0) { this.swagShader.update(0.125); } if(this.logoBl != null && this.logoBl.animation != null) { this.logoBl.animation.play("bump",true); } this.danceLeft = !this.danceLeft; if(this.gfDance != null && this.gfDance.animation != null) { if(this.danceLeft) { this.gfDance.animation.play("danceRight"); } else { this.gfDance.animation.play("danceLeft"); } } } return true; } ,skipIntro: function() { if(!this.skippedIntro) { this.remove(this.ngSpr); flixel_FlxG.camera.flash(-1,funkin_ui_title_TitleState.initialized ? 1 : 4); this.remove(this.credGroup); this.skippedIntro = true; } } ,__class__: funkin_ui_title_TitleState }); var funkin_ui_transition_LoadingState = function(target,stopMusic,playParams) { this.targetShit = 0; this.danceLeft = false; this.stopMusic = false; this.asSubState = false; funkin_ui_MusicBeatSubState.call(this); this.target = target; this.playParams = playParams; this.stopMusic = stopMusic; }; $hxClasses["funkin.ui.transition.LoadingState"] = funkin_ui_transition_LoadingState; funkin_ui_transition_LoadingState.__name__ = "funkin.ui.transition.LoadingState"; funkin_ui_transition_LoadingState.getSongPath = function() { return funkin_Paths.inst(funkin_play_PlayState.instance.currentSong.id); }; funkin_ui_transition_LoadingState.loadPlayState = function(params,shouldStopMusic,asSubState,onConstruct) { if(asSubState == null) { asSubState = false; } if(shouldStopMusic == null) { shouldStopMusic = false; } funkin_Paths.setCurrentLevel(funkin_play_PlayStatePlaylist.campaignId); var playStateCtor = function() { return new funkin_play_PlayState(params); }; if(onConstruct != null) { playStateCtor = function() { var result = new funkin_play_PlayState(params); onConstruct(result); return result; }; } var loadStateCtor = function() { var result = new funkin_ui_transition_LoadingState(flixel_util_typeLimit_NextState.fromMaker(playStateCtor),shouldStopMusic,params); result.asSubState = asSubState; return result; }; if(asSubState) { flixel_FlxG.game._state.openSubState(loadStateCtor()); } else { var nextState = flixel_util_typeLimit_NextState.fromMaker(loadStateCtor); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } }; funkin_ui_transition_LoadingState.isSoundLoaded = function(path) { return openfl_utils_Assets.cache.hasSound(path); }; funkin_ui_transition_LoadingState.isLibraryLoaded = function(library) { return openfl_utils_Assets.getLibrary(library) != null; }; funkin_ui_transition_LoadingState.initSongsManifest = function() { var id = "songs"; var promise = new lime_app_Promise(); var library = lime_utils_Assets.getLibrary(id); if(library != null) { return lime_app_Future.withValue(library); } var path = id; var rootPath = null; var libraryPaths = lime_utils_Assets.libraryPaths; if(Object.prototype.hasOwnProperty.call(libraryPaths.h,id)) { path = libraryPaths.h[id]; rootPath = haxe_io_Path.directory(path); } else { if(StringTools.endsWith(path,".bundle")) { rootPath = path; path += "/library.json"; } else { rootPath = haxe_io_Path.directory(path); } path = lime_utils_Assets.__cacheBreak(path); } lime_utils_AssetManifest.loadFromFile(path,rootPath).onComplete(function(manifest) { if(manifest == null) { promise.error("Cannot parse asset manifest for library '" + id + "'"); return; } var library = lime_utils_AssetLibrary.fromManifest(manifest); if(library == null) { promise.error("Cannot open library '" + id + "'"); } else { lime_utils_Assets.libraries.h[id] = library; library.onChange.add(($_=lime_utils_Assets.onChange,$bind($_,$_.dispatch))); promise.completeWith(lime_app_Future.withValue(library)); } }).onError(function(_) { promise.error("There is no asset library with an ID of '" + id + "'"); }); return promise.future; }; funkin_ui_transition_LoadingState.__super__ = funkin_ui_MusicBeatSubState; funkin_ui_transition_LoadingState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ asSubState: null ,target: null ,playParams: null ,stopMusic: null ,callbacks: null ,danceLeft: null ,loadBar: null ,funkay: null ,create: function() { var _gthis = this; var bg = new funkin_graphics_FunkinSprite().makeSolidColor(flixel_FlxG.width,flixel_FlxG.height,-3473587); this.add(bg); this.funkay = funkin_graphics_FunkinSprite.create(null,null,"funkay"); this.funkay.setGraphicSize(0,flixel_FlxG.height); this.funkay.updateHitbox(); this.add(this.funkay); var this1 = this.funkay.scrollFactor; this1.set_x(0); this1.set_y(0); var _this = this.funkay; if(17 == 1 || 17 == 17) { _this.set_x((flixel_FlxG.width - _this.get_width()) / 2); } if(17 == 16 || 17 == 17) { _this.set_y((flixel_FlxG.height - _this.get_height()) / 2); } this.loadBar = new funkin_graphics_FunkinSprite(0,flixel_FlxG.height - 20).makeSolidColor(0,10,-59694); this.add(this.loadBar); funkin_ui_transition_LoadingState.initSongsManifest().onComplete(function(lib) { _gthis.callbacks = new funkin_ui_transition_MultiCallback($bind(_gthis,_gthis.onLoad)); var introComplete = _gthis.callbacks.add("introComplete"); if(_gthis.playParams != null) { if(_gthis.playParams.targetSong != null) { _gthis.playParams.targetSong.cacheCharts(true); } var tmp = _gthis.playParams.targetDifficulty; var difficulty = tmp != null ? tmp : funkin_util_Constants.DEFAULT_DIFFICULTY; var tmp = _gthis.playParams.targetVariation; var variation = tmp != null ? tmp : funkin_util_Constants.DEFAULT_VARIATION; var tmp = _gthis.playParams.targetSong; var targetChart = tmp != null ? tmp.getDifficulty(difficulty,variation) : null; var instPath = targetChart.getInstPath(_gthis.playParams.targetInstrumental); var voicesPaths = targetChart.buildVoiceList(); _gthis.checkLoadSong(instPath); var _g = 0; while(_g < voicesPaths.length) { var voicePath = voicesPaths[_g]; ++_g; _gthis.checkLoadSong(voicePath); } } _gthis.checkLibrary("shared"); _gthis.checkLibrary(funkin_play_PlayStatePlaylist.campaignId); _gthis.checkLibrary("tutorial"); var fadeTime = 0.5; flixel_FlxG.camera.fade(flixel_FlxG.camera.bgColor,fadeTime,true); new flixel_util_FlxTimer().start(fadeTime + 1.0,function(_) { introComplete(); }); }); } ,checkLoadSong: function(path) { if(!openfl_utils_Assets.cache.hasSound(path)) { var library = openfl_utils_Assets.getLibrary("songs"); var symbolPath = path.split(":").pop(); var callback = this.callbacks.add("song:" + path); openfl_utils_Assets.loadSound(path).onComplete(function(_) { callback(); }); } } ,checkLibrary: function(library) { haxe_Log.trace(openfl_utils_Assets.hasLibrary(library),{ fileName : "source/funkin/ui/transition/LoadingState.hx", lineNumber : 118, className : "funkin.ui.transition.LoadingState", methodName : "checkLibrary"}); if(openfl_utils_Assets.getLibrary(library) == null) { if(!Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraryPaths.h,library)) { throw haxe_Exception.thrown("Missing library: " + library); } var callback = this.callbacks.add("library:" + library); openfl_utils_Assets.loadLibrary(library).onComplete(function(_) { callback(); }); } } ,beatHit: function() { if(!funkin_ui_MusicBeatSubState.prototype.beatHit.call(this)) { return false; } this.danceLeft = !this.danceLeft; return true; } ,targetShit: null ,update: function(elapsed) { funkin_ui_MusicBeatSubState.prototype.update.call(this,elapsed); var a = flixel_FlxG.width * 0.88; this.funkay.setGraphicSize(a + 0.9 * (this.funkay.get_width() - a) | 0); this.funkay.updateHitbox(); if(funkin_PlayerSettings.player1.controls._accept.check()) { this.funkay.setGraphicSize(this.funkay.get_width() + 60 | 0); this.funkay.updateHitbox(); } if(this.callbacks != null) { this.targetShit = flixel_math_FlxMath.remapToRange(this.callbacks.numRemaining / this.callbacks.length,1,0,0,1); var a = this.loadBar.get_width(); var lerpWidth = a + 0.2 * (flixel_FlxG.width * this.targetShit - a) | 0; if(lerpWidth > 0) { this.loadBar.setGraphicSize(lerpWidth,this.loadBar.get_height()); this.loadBar.updateHitbox(); } } } ,onLoad: function() { if(this.stopMusic && flixel_FlxG.sound.music != null) { flixel_FlxG.sound.music.destroy(); flixel_FlxG.sound.music = null; } if(this.asSubState) { this.close(); flixel_FlxG.game._state.openSubState(this.target); } else { var nextState = this.target; var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } ,destroy: function() { funkin_ui_MusicBeatSubState.prototype.destroy.call(this); this.callbacks = null; } ,__class__: funkin_ui_transition_LoadingState }); var funkin_ui_transition_MultiCallback = function(callback,logId) { this.fired = []; this.unfired = new haxe_ds_StringMap(); this.numRemaining = 0; this.length = 0; this.logId = null; this.callback = callback; this.logId = logId; }; $hxClasses["funkin.ui.transition.MultiCallback"] = funkin_ui_transition_MultiCallback; funkin_ui_transition_MultiCallback.__name__ = "funkin.ui.transition.MultiCallback"; funkin_ui_transition_MultiCallback.coolSwitchState = function(state,transitionTex,time) { if(time == null) { time = 2; } if(transitionTex == null) { transitionTex = "shaderTransitionStuff/coolDots"; } var screenShit = funkin_graphics_FunkinSprite.create(null,null,"shaderTransitionStuff/coolDots"); var screenWipeShit = new funkin_graphics_shaders_ScreenWipeShader(); screenWipeShit.funnyShit.input = screenShit.get_pixels(); flixel_tweens_FlxTween.tween(screenWipeShit,{ daAlphaShit : 1},time,{ ease : flixel_tweens_FlxEase.quadInOut, onComplete : function(twn) { screenShit.destroy(); var nextState = state; var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); }}); flixel_FlxG.camera.filters = [new openfl_filters_ShaderFilter(screenWipeShit)]; }; funkin_ui_transition_MultiCallback.prototype = { callback: null ,logId: null ,length: null ,numRemaining: null ,unfired: null ,fired: null ,add: function(id) { if(id == null) { id = "untitled"; } var _gthis = this; id = "" + this.length + ":" + id; this.length++; this.numRemaining++; var func = null; func = function() { if(Object.prototype.hasOwnProperty.call(_gthis.unfired.h,id)) { var _this = _gthis.unfired; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); } _gthis.fired.push(id); _gthis.numRemaining--; if(_gthis.logId != null) { if(_gthis.logId != null) { haxe_Log.trace("" + _gthis.logId + ": " + ("fired " + id + ", " + _gthis.numRemaining + " remaining"),{ fileName : "source/funkin/ui/transition/LoadingState.hx", lineNumber : 482, className : "funkin.ui.transition.MultiCallback", methodName : "log"}); } } if(_gthis.numRemaining == 0) { if(_gthis.logId != null) { if(_gthis.logId != null) { haxe_Log.trace("" + _gthis.logId + ": " + "all callbacks fired",{ fileName : "source/funkin/ui/transition/LoadingState.hx", lineNumber : 482, className : "funkin.ui.transition.MultiCallback", methodName : "log"}); } } _gthis.callback(); } } else if(_gthis.logId != null) { haxe_Log.trace("" + _gthis.logId + ": " + ("already fired " + id),{ fileName : "source/funkin/ui/transition/LoadingState.hx", lineNumber : 482, className : "funkin.ui.transition.MultiCallback", methodName : "log"}); } }; this.unfired.h[id] = func; return func; } ,log: function(msg) { if(this.logId != null) { haxe_Log.trace("" + this.logId + ": " + msg,{ fileName : "source/funkin/ui/transition/LoadingState.hx", lineNumber : 482, className : "funkin.ui.transition.MultiCallback", methodName : "log"}); } } ,getFired: function() { return this.fired.slice(); } ,getUnfired: function() { return Lambda.array(this.unfired); } ,__class__: funkin_ui_transition_MultiCallback }; var funkin_ui_transition_StickerSprite = function(x,y,stickerSet,stickerName) { this.timing = 0; funkin_graphics_FunkinSprite.call(this,x,y); this.loadTexture("transitionSwag/" + stickerSet + "/" + stickerName); this.updateHitbox(); var this1 = this.scrollFactor; this1.set_x(0); this1.set_y(0); }; $hxClasses["funkin.ui.transition.StickerSprite"] = funkin_ui_transition_StickerSprite; funkin_ui_transition_StickerSprite.__name__ = "funkin.ui.transition.StickerSprite"; funkin_ui_transition_StickerSprite.__super__ = funkin_graphics_FunkinSprite; funkin_ui_transition_StickerSprite.prototype = $extend(funkin_graphics_FunkinSprite.prototype,{ timing: null ,__class__: funkin_ui_transition_StickerSprite }); var funkin_ui_transition_StickerInfo = function(stickerSet) { var path = funkin_Paths.file("images/transitionSwag/" + stickerSet + "/stickers.json"); var json = JSON.parse(lime_utils_Assets.getText(path)); var jsonInfo = json; this.name = jsonInfo.name; this.artist = jsonInfo.artist; this.stickerPacks = new haxe_ds_StringMap(); var _g = 0; var _g1 = Reflect.fields(json.stickerPacks); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var stickerFunny = json.stickerPacks; var stickerStuff = Reflect.field(stickerFunny,field); this.stickerPacks.h[field] = stickerStuff; } this.stickers = new haxe_ds_StringMap(); var _g = 0; var _g1 = Reflect.fields(json.stickers); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var stickerFunny = json.stickers; var stickerStuff = Reflect.field(stickerFunny,field); this.stickers.h[field] = stickerStuff; } }; $hxClasses["funkin.ui.transition.StickerInfo"] = funkin_ui_transition_StickerInfo; funkin_ui_transition_StickerInfo.__name__ = "funkin.ui.transition.StickerInfo"; funkin_ui_transition_StickerInfo.prototype = { name: null ,artist: null ,stickers: null ,stickerPacks: null ,getStickers: function(stickerName) { return this.stickers.h[stickerName]; } ,getPack: function(packName) { return this.stickerPacks.h[packName]; } ,__class__: funkin_ui_transition_StickerInfo }; var funkin_ui_transition_preload_LogoImage = 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(funkin_ui_transition_preload_LogoImage.preload != null) { this.__fromImage(funkin_ui_transition_preload_LogoImage.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(funkin_ui_transition_preload_LogoImage.resourceName),funkin_ui_transition_preload_LogoImage.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(funkin_ui_transition_preload_LogoImage.preload == null) { funkin_ui_transition_preload_LogoImage.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["funkin.ui.transition.preload.LogoImage"] = funkin_ui_transition_preload_LogoImage; funkin_ui_transition_preload_LogoImage.__name__ = "funkin.ui.transition.preload.LogoImage"; funkin_ui_transition_preload_LogoImage.preload = null; funkin_ui_transition_preload_LogoImage.__super__ = openfl_display_BitmapData; funkin_ui_transition_preload_LogoImage.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: funkin_ui_transition_preload_LogoImage }); var funkin_ui_transition_preload_TouchHereToPlayImage = 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(funkin_ui_transition_preload_TouchHereToPlayImage.preload != null) { this.__fromImage(funkin_ui_transition_preload_TouchHereToPlayImage.preload); } else { var _gthis = this; lime_graphics_Image.loadFromBase64(haxe_Resource.getString(funkin_ui_transition_preload_TouchHereToPlayImage.resourceName),funkin_ui_transition_preload_TouchHereToPlayImage.resourceType).then(function(image) { _gthis.__fromImage(image); return lime_app_Future.withValue(_gthis); }).onComplete(function(b) { if(funkin_ui_transition_preload_TouchHereToPlayImage.preload == null) { funkin_ui_transition_preload_TouchHereToPlayImage.preload = b.image; } if(onload != null && Reflect.isFunction(onload)) { onload(b); } }); } }; $hxClasses["funkin.ui.transition.preload.TouchHereToPlayImage"] = funkin_ui_transition_preload_TouchHereToPlayImage; funkin_ui_transition_preload_TouchHereToPlayImage.__name__ = "funkin.ui.transition.preload.TouchHereToPlayImage"; funkin_ui_transition_preload_TouchHereToPlayImage.preload = null; funkin_ui_transition_preload_TouchHereToPlayImage.__super__ = openfl_display_BitmapData; funkin_ui_transition_preload_TouchHereToPlayImage.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: funkin_ui_transition_preload_TouchHereToPlayImage }); var funkin_ui_transition_preload_FunkinPreloader = function() { this.lastElapsed = 0.0; this.completeTime = -1; this.cachingCoreAssetsPercent = -1; this.initializingScriptsPercent = -1; this.parsingSongsComplete = false; this.parsingSongsStartTime = -1; this.parsingSongsPercent = -1; this.parsingCharactersComplete = false; this.parsingCharactersStartTime = -1; this.parsingCharactersPercent = -1; this.parsingStagesComplete = false; this.parsingStagesStartTime = -1; this.parsingStagesPercent = -1; this.parsingSpritesheetsComplete = false; this.parsingSpritesheetsStartTime = -1; this.parsingSpritesheetsPercent = -1; this.cachingDataComplete = false; this.cachingDataStartTime = -1; this.cachingDataPercent = -1; this.cachingAudioComplete = false; this.cachingAudioStartTime = -1; this.cachingAudioPercent = -1; this.cachingGraphicsComplete = false; this.cachingGraphicsStartTime = -1; this.cachingGraphicsPercent = -1; this.preloadingPlayAssetsComplete = false; this.preloadingPlayAssetsStartTime = -1; this.preloadingPlayAssetsPercent = -1; this.downloadingAssetsComplete = false; this.downloadingAssetsPercent = -1; this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.NotStarted; this.ratio = 0; flixel_system_FlxBasePreloader.call(this,funkin_util_Constants.PRELOADER_MIN_STAGE_TIME); haxe_Log.trace("Initializing custom preloader...",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 137, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "new"}); funkin_util_CLIUtil.resetWorkingDir(); this.siteLockTitleText = funkin_util_Constants.SITE_LOCK_TITLE; this.siteLockBodyText = funkin_util_Constants.SITE_LOCK_DESC; }; $hxClasses["funkin.ui.transition.preload.FunkinPreloader"] = funkin_ui_transition_preload_FunkinPreloader; funkin_ui_transition_preload_FunkinPreloader.__name__ = "funkin.ui.transition.preload.FunkinPreloader"; funkin_ui_transition_preload_FunkinPreloader.__super__ = flixel_system_FlxBasePreloader; funkin_ui_transition_preload_FunkinPreloader.prototype = $extend(flixel_system_FlxBasePreloader.prototype,{ ratio: null ,currentState: null ,downloadingAssetsPercent: null ,downloadingAssetsComplete: null ,preloadingPlayAssetsPercent: null ,preloadingPlayAssetsStartTime: null ,preloadingPlayAssetsComplete: null ,cachingGraphicsPercent: null ,cachingGraphicsStartTime: null ,cachingGraphicsComplete: null ,cachingAudioPercent: null ,cachingAudioStartTime: null ,cachingAudioComplete: null ,cachingDataPercent: null ,cachingDataStartTime: null ,cachingDataComplete: null ,parsingSpritesheetsPercent: null ,parsingSpritesheetsStartTime: null ,parsingSpritesheetsComplete: null ,parsingStagesPercent: null ,parsingStagesStartTime: null ,parsingStagesComplete: null ,parsingCharactersPercent: null ,parsingCharactersStartTime: null ,parsingCharactersComplete: null ,parsingSongsPercent: null ,parsingSongsStartTime: null ,parsingSongsComplete: null ,initializingScriptsPercent: null ,cachingCoreAssetsPercent: null ,completeTime: null ,logo: null ,touchHereToPlay: null ,touchHereSprite: null ,progressBarPieces: null ,progressBar: null ,progressLeftText: null ,progressRightText: null ,dspText: null ,fnfText: null ,enhancedText: null ,stereoText: null ,vfdShader: null ,vfdBitmap: null ,box: null ,progressLines: null ,create: function() { var _gthis = this; flixel_system_FlxBasePreloader.prototype.create.call(this); openfl_Lib.get_current().stage.set_color(funkin_util_Constants.COLOR_PRELOADER_BG); this._width = openfl_Lib.get_current().stage.stageWidth; this._height = openfl_Lib.get_current().stage.stageHeight; this.ratio = this._width / funkin_ui_transition_preload_FunkinPreloader.BASE_WIDTH / 2.0; this.logo = this.createBitmap(funkin_ui_transition_preload_LogoImage,function(bmp) { bmp.set_scaleX(bmp.set_scaleY(_gthis.ratio)); bmp.set_x((_gthis._width - bmp.get_width()) / 2); bmp.set_y((_gthis._height - bmp.get_height()) / 2); }); var amountOfPieces = 16; this.progressBarPieces = []; var maxBarWidth = this._width - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING * 2; var pieceWidth = maxBarWidth / amountOfPieces; var pieceGap = 8; this.progressLines = new openfl_display_Sprite(); this.progressLines.get_graphics().lineStyle(2,funkin_util_Constants.COLOR_PRELOADER_BAR); this.progressLines.get_graphics().drawRect(-2,480,this._width + 4,30); this.addChild(this.progressLines); var progressBarPiece = new openfl_display_Sprite(); progressBarPiece.get_graphics().beginFill(funkin_util_Constants.COLOR_PRELOADER_BAR); progressBarPiece.get_graphics().drawRoundRect(0,0,pieceWidth - pieceGap,funkin_ui_transition_preload_FunkinPreloader.BAR_HEIGHT,4,4); progressBarPiece.get_graphics().endFill(); var _g = 0; var _g1 = amountOfPieces; while(_g < _g1) { var i = _g++; var piece = new openfl_display_Sprite(); piece.get_graphics().beginFill(funkin_util_Constants.COLOR_PRELOADER_BAR); piece.get_graphics().drawRoundRect(0,0,pieceWidth - pieceGap,funkin_ui_transition_preload_FunkinPreloader.BAR_HEIGHT,4,4); piece.get_graphics().endFill(); piece.set_x(i * (piece.get_width() + pieceGap)); piece.set_y(this._height - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING - funkin_ui_transition_preload_FunkinPreloader.BAR_HEIGHT - 200); this.addChild(piece); this.progressBarPieces.push(piece); } this.progressLeftText = new openfl_text_TextField(); this.dspText = new openfl_text_TextField(); this.fnfText = new openfl_text_TextField(); this.enhancedText = new openfl_text_TextField(); this.stereoText = new openfl_text_TextField(); var progressLeftTextFormat = new openfl_text_TextFormat("DS-Digital",32,funkin_util_Constants.COLOR_PRELOADER_BAR,true); progressLeftTextFormat.align = 3; this.progressLeftText.set_defaultTextFormat(progressLeftTextFormat); this.progressLeftText.set_selectable(false); this.progressLeftText.set_width(this._width - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING * 2); this.progressLeftText.set_text("Downloading assets..."); this.progressLeftText.set_x(funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING); this.progressLeftText.set_y(this._height - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING - funkin_ui_transition_preload_FunkinPreloader.BAR_HEIGHT - 290); this.addChild(this.progressLeftText); this.progressRightText = new openfl_text_TextField(); var progressRightTextFormat = new openfl_text_TextFormat("DS-Digital",16,funkin_util_Constants.COLOR_PRELOADER_BAR,true); progressRightTextFormat.align = 4; this.progressRightText.set_defaultTextFormat(progressRightTextFormat); this.progressRightText.set_selectable(false); this.progressRightText.set_width(this._width - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING * 2); this.progressRightText.set_text("0%"); this.progressRightText.set_x(funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING); this.progressRightText.set_y(this._height - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING - funkin_ui_transition_preload_FunkinPreloader.BAR_HEIGHT - 16 - 4); this.addChild(this.progressRightText); this.box = new openfl_display_Sprite(); this.box.get_graphics().beginFill(funkin_util_Constants.COLOR_PRELOADER_BAR,1); this.box.get_graphics().drawRoundRect(0,0,64,20,5,5); this.box.get_graphics().drawRoundRect(70,0,58,20,5,5); this.box.get_graphics().endFill(); this.box.get_graphics().beginFill(funkin_util_Constants.COLOR_PRELOADER_BAR,0.1); this.box.get_graphics().drawRoundRect(0,0,128,20,5,5); this.box.get_graphics().endFill(); this.box.set_x(880); this.box.set_y(440); this.addChild(this.box); this.dspText.set_selectable(false); this.dspText.set_textColor(0); this.dspText.set_width(this._width); this.dspText.set_height(20); this.dspText.set_text("DSP"); this.dspText.set_x(10); this.dspText.set_y(-5); this.box.addChild(this.dspText); this.fnfText.set_selectable(false); this.fnfText.set_textColor(0); this.fnfText.set_width(this._width); this.fnfText.set_height(20); this.fnfText.set_x(75); this.fnfText.set_y(-5); this.fnfText.set_text("FNF"); this.box.addChild(this.fnfText); this.enhancedText.set_selectable(false); this.enhancedText.set_textColor(funkin_util_Constants.COLOR_PRELOADER_BAR); this.enhancedText.set_width(this._width); this.enhancedText.set_height(100); this.enhancedText.set_text("ENHANCED"); this.enhancedText.set_x(-100); this.enhancedText.set_y(0); this.box.addChild(this.enhancedText); this.stereoText.set_selectable(false); this.stereoText.set_textColor(funkin_util_Constants.COLOR_PRELOADER_BAR); this.stereoText.set_width(this._width); this.stereoText.set_height(100); this.stereoText.set_text("STEREO"); this.stereoText.set_x(0); this.stereoText.set_y(-40); this.box.addChild(this.stereoText); this.vfdBitmap = new openfl_display_Bitmap(new openfl_display_BitmapData(this._width,this._height,true,-1)); this.addChild(this.vfdBitmap); this.vfdShader = new funkin_ui_transition_preload_VFDOverlay(); this.vfdBitmap.set_shader(this.vfdShader); this.touchHereToPlay = this.createBitmap(funkin_ui_transition_preload_TouchHereToPlayImage,function(bmp) { bmp.set_scaleX(bmp.set_scaleY(_gthis.ratio)); bmp.set_x((_gthis._width - bmp.get_width()) / 2); bmp.set_y((_gthis._height - bmp.get_height()) / 2); }); this.touchHereToPlay.set_alpha(0.0); this.touchHereSprite = new openfl_display_Sprite(); this.touchHereSprite.set_buttonMode(false); this.touchHereSprite.addChild(this.touchHereToPlay); this.addChild(this.touchHereSprite); } ,lastElapsed: null ,update: function(percent) { var elapsed = (new Date().getTime() - this._startTime) / 1000.0; this.vfdShader.update(elapsed * 100); this.downloadingAssetsPercent = percent; var loadPercent = this.updateState(percent,elapsed); this.updateGraphics(loadPercent,elapsed); this.lastElapsed = elapsed; } ,updateState: function(percent,elapsed) { switch(this.currentState._hx_index) { case 0: if(this.downloadingAssetsPercent > 0.0) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.DownloadingAssets; } return percent; case 1: if(this.downloadingAssetsPercent >= 1.0 || elapsed > funkin_util_Constants.PRELOADER_MIN_STAGE_TIME && this.downloadingAssetsComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.PreloadingPlayAssets; } return percent; case 2: if(this.preloadingPlayAssetsPercent < 0.0) { this.preloadingPlayAssetsStartTime = elapsed; this.preloadingPlayAssetsPercent = 0.0; this.preloadingPlayAssetsPercent = 1.0; this.preloadingPlayAssetsComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedPreloadingPlayAssets = elapsed - this.preloadingPlayAssetsStartTime; if(this.preloadingPlayAssetsComplete && elapsedPreloadingPlayAssets >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.InitializingScripts; return 0.0; } else if(this.preloadingPlayAssetsPercent < elapsedPreloadingPlayAssets / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.preloadingPlayAssetsPercent; } else { return elapsedPreloadingPlayAssets / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.preloadingPlayAssetsComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.InitializingScripts; } return this.preloadingPlayAssetsPercent; case 3: if(this.initializingScriptsPercent < 0.0) { this.initializingScriptsPercent = 0.0; this.initializingScriptsPercent = 1.0; this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.CachingGraphics; return 0.0; } return this.initializingScriptsPercent; case 4: if(this.cachingGraphicsPercent < 0) { this.cachingGraphicsPercent = 0.0; this.cachingGraphicsStartTime = elapsed; this.cachingGraphicsPercent = 1.0; this.cachingGraphicsComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedCachingGraphics = elapsed - this.cachingGraphicsStartTime; if(this.cachingGraphicsComplete && elapsedCachingGraphics >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.CachingAudio; return 0.0; } else if(this.cachingGraphicsPercent < elapsedCachingGraphics / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.cachingGraphicsPercent; } else { return elapsedCachingGraphics / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.cachingGraphicsComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.CachingAudio; return 0.0; } else { return this.cachingGraphicsPercent; } break; case 5: if(this.cachingAudioPercent < 0) { this.cachingAudioPercent = 0.0; this.cachingAudioStartTime = elapsed; this.cachingAudioPercent = 1.0; this.cachingAudioComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedCachingAudio = elapsed - this.cachingAudioStartTime; if(this.cachingAudioComplete && elapsedCachingAudio >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.CachingData; return 0.0; } else if(this.cachingAudioPercent < elapsedCachingAudio / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.cachingAudioPercent; } else { return elapsedCachingAudio / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.cachingAudioComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.CachingData; return 0.0; } else { return this.cachingAudioPercent; } break; case 6: if(this.cachingDataPercent < 0) { this.cachingDataPercent = 0.0; this.cachingDataStartTime = elapsed; this.cachingDataPercent = 1.0; this.cachingDataComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedCachingData = elapsed - this.cachingDataStartTime; if(this.cachingDataComplete && elapsedCachingData >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingSpritesheets; return 0.0; } else if(this.cachingDataPercent < elapsedCachingData / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.cachingDataPercent; } else { return elapsedCachingData / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.cachingDataComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingSpritesheets; return 0.0; } return this.cachingDataPercent; case 7: if(this.parsingSpritesheetsPercent < 0) { this.parsingSpritesheetsPercent = 0.0; this.parsingSpritesheetsStartTime = elapsed; this.parsingSpritesheetsPercent = 1.0; this.parsingSpritesheetsComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedParsingSpritesheets = elapsed - this.parsingSpritesheetsStartTime; if(this.parsingSpritesheetsComplete && elapsedParsingSpritesheets >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingStages; return 0.0; } else if(this.parsingSpritesheetsPercent < elapsedParsingSpritesheets / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.parsingSpritesheetsPercent; } else { return elapsedParsingSpritesheets / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.parsingSpritesheetsComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingStages; return 0.0; } return this.parsingSpritesheetsPercent; case 8: if(this.parsingStagesPercent < 0) { this.parsingStagesPercent = 0.0; this.parsingStagesStartTime = elapsed; this.parsingStagesPercent = 1.0; this.parsingStagesComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedParsingStages = elapsed - this.parsingStagesStartTime; if(this.parsingStagesComplete && elapsedParsingStages >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingCharacters; return 0.0; } else if(this.parsingStagesPercent < elapsedParsingStages / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.parsingStagesPercent; } else { return elapsedParsingStages / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.parsingStagesComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingCharacters; return 0.0; } return this.parsingStagesPercent; case 9: if(this.parsingCharactersPercent < 0) { this.parsingCharactersPercent = 0.0; this.parsingCharactersStartTime = elapsed; this.parsingCharactersPercent = 1.0; this.parsingCharactersComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedParsingCharacters = elapsed - this.parsingCharactersStartTime; if(this.parsingCharactersComplete && elapsedParsingCharacters >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingSongs; return 0.0; } else if(this.parsingCharactersPercent < elapsedParsingCharacters / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.parsingCharactersPercent; } else { return elapsedParsingCharacters / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.parsingStagesComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.ParsingSongs; return 0.0; } return this.parsingCharactersPercent; case 10: if(this.parsingSongsPercent < 0) { this.parsingSongsPercent = 0.0; this.parsingSongsStartTime = elapsed; this.parsingSongsPercent = 1.0; this.parsingSongsComplete = true; return 0.0; } else if(funkin_util_Constants.PRELOADER_MIN_STAGE_TIME > 0) { var elapsedParsingSongs = elapsed - this.parsingSongsStartTime; if(this.parsingSongsComplete && elapsedParsingSongs >= funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.Complete; return 0.0; } else if(this.parsingSongsPercent < elapsedParsingSongs / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME) { return this.parsingSongsPercent; } else { return elapsedParsingSongs / funkin_util_Constants.PRELOADER_MIN_STAGE_TIME; } } else if(this.parsingSongsComplete) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.Complete; return 0.0; } else { return this.parsingSongsPercent; } break; case 11: if(this.completeTime < 0) { this.completeTime = elapsed; } return 1.0; case 12: if(this.completeTime < 0) { this.completeTime = elapsed; } if(this.touchHereToPlay.get_alpha() < 1.0) { this.touchHereSprite.set_buttonMode(true); this.touchHereToPlay.set_alpha(1.0); this.removeChild(this.vfdBitmap); this.addEventListener("click",$bind(this,this.onTouchHereToPlay)); this.touchHereSprite.addEventListener("mouseOver",$bind(this,this.overTouchHereToPlay)); this.touchHereSprite.addEventListener("mouseDown",$bind(this,this.mouseDownTouchHereToPlay)); this.touchHereSprite.addEventListener("mouseOut",$bind(this,this.outTouchHereToPlay)); } return 1.0; } } ,overTouchHereToPlay: function(e) { this.touchHereToPlay.set_scaleX(this.touchHereToPlay.set_scaleY(this.ratio * 1.1)); this.touchHereToPlay.set_x((this._width - this.touchHereToPlay.get_width()) / 2); this.touchHereToPlay.set_y((this._height - this.touchHereToPlay.get_height()) / 2); } ,outTouchHereToPlay: function(e) { this.touchHereToPlay.set_scaleX(this.touchHereToPlay.set_scaleY(this.ratio)); this.touchHereToPlay.set_x((this._width - this.touchHereToPlay.get_width()) / 2); this.touchHereToPlay.set_y((this._height - this.touchHereToPlay.get_height()) / 2); } ,mouseDownTouchHereToPlay: function(e) { var fh = this.touchHereToPlay; fh.set_y(fh.get_y() + 10); } ,onTouchHereToPlay: function(e) { this.touchHereToPlay.set_x((this._width - this.touchHereToPlay.get_width()) / 2); this.touchHereToPlay.set_y((this._height - this.touchHereToPlay.get_height()) / 2); this.removeEventListener("click",$bind(this,this.onTouchHereToPlay)); this.touchHereSprite.removeEventListener("mouseOver",$bind(this,this.overTouchHereToPlay)); this.touchHereSprite.removeEventListener("mouseOut",$bind(this,this.outTouchHereToPlay)); this.touchHereSprite.removeEventListener("mouseDown",$bind(this,this.mouseDownTouchHereToPlay)); this.immediatelyStartGame(); } ,updateGraphics: function(percent,elapsed) { if(this.completeTime > 0.0) { var elapsedFinished = this.renderLogoFadeOut(elapsed); if(elapsedFinished > funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME) { this.currentState = funkin_ui_transition_preload_FunkinPreloaderState.TouchHereToPlay; } } else { this.renderLogoFadeIn(elapsed); var maxWidth = this._width - funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING * 2; var barWidth = maxWidth * percent; var piecesToRender = percent * this.progressBarPieces.length | 0; var _g_current = 0; var _g_array = this.progressBarPieces; while(_g_current < _g_array.length) { var _g_value = _g_array[_g_current]; var _g_key = _g_current++; var i = _g_key; var piece = _g_value; piece.set_alpha(i <= piecesToRender ? 0.9 : 0.1); } } var ellipsisCount = (elapsed / funkin_ui_transition_preload_FunkinPreloader.ELLIPSIS_TIME | 0) % 3 + 1; var ellipsis = ""; var _g = 0; var _g1 = ellipsisCount; while(_g < _g1) { var i = _g++; ellipsis += "."; } var percentage = Math.floor(percent * 100); switch(this.currentState._hx_index) { case 1: this.updateProgressLeftText("Downloading assets \n1/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 933, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 2: this.updateProgressLeftText("Preloading assets \n2/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 936, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 3: this.updateProgressLeftText("Initializing scripts \n3/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 939, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 4: this.updateProgressLeftText("Caching graphics \n4/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 942, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 5: this.updateProgressLeftText("Caching audio \n5/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 945, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 6: this.updateProgressLeftText("Caching data \n6/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 948, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 7: this.updateProgressLeftText("Parsing spritesheets \n7/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 951, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 8: this.updateProgressLeftText("Parsing stages \n8/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 954, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 9: this.updateProgressLeftText("Parsing characters \n9/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 957, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 10: this.updateProgressLeftText("Parsing songs \n10/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 960, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); break; case 11: this.updateProgressLeftText("Finishing up \n" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + "/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); break; case 12: this.updateProgressLeftText(null); break; default: this.updateProgressLeftText("Loading \n0/" + funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS + " " + ellipsis); haxe_Log.trace("Preloader state: " + Std.string(this.currentState) + " (" + percentage + "%, " + elapsed + "s)",{ fileName : "source/funkin/ui/transition/preload/FunkinPreloader.hx", lineNumber : 930, className : "funkin.ui.transition.preload.FunkinPreloader", methodName : "updateGraphics"}); } this.progressRightText.set_text("" + percentage + "%"); flixel_system_FlxBasePreloader.prototype.update.call(this,percent); } ,updateProgressLeftText: function(text) { if(this.progressLeftText != null) { if(text == null) { this.progressLeftText.set_alpha(0.0); } else if(this.progressLeftText.get_text() != text) { var progressLeftTextFormat = new openfl_text_TextFormat("DS-Digital",32,funkin_util_Constants.COLOR_PRELOADER_BAR,true); progressLeftTextFormat.align = 3; this.progressLeftText.set_defaultTextFormat(progressLeftTextFormat); this.progressLeftText.set_text(text); this.dspText.set_defaultTextFormat(new openfl_text_TextFormat("Quantico",20,0,false)); this.dspText.set_text("DSP"); this.dspText.set_textColor(0); this.fnfText.set_defaultTextFormat(new openfl_text_TextFormat("Quantico",20,0,false)); this.fnfText.set_text("FNF"); this.fnfText.set_textColor(0); this.enhancedText.set_defaultTextFormat(new openfl_text_TextFormat("Inconsolata Black",16,funkin_util_Constants.COLOR_PRELOADER_BAR,false)); this.enhancedText.set_text("ENHANCED"); this.enhancedText.set_textColor(funkin_util_Constants.COLOR_PRELOADER_BAR); this.stereoText.set_defaultTextFormat(new openfl_text_TextFormat("Inconsolata Bold",36,funkin_util_Constants.COLOR_PRELOADER_BAR,false)); this.stereoText.set_text("NATURAL STEREO"); } } } ,immediatelyStartGame: function() { this._loaded = true; } ,renderLogoFadeOut: function(elapsed) { var elapsedFinished = elapsed - this.completeTime; this.logo.set_alpha(1.0 - funkin_util_MathUtil.easeInOutCirc(elapsedFinished / funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME)); this.logo.set_scaleX((1.0 - funkin_util_MathUtil.easeInBack(elapsedFinished / funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME)) * this.ratio); this.logo.set_scaleY((1.0 - funkin_util_MathUtil.easeInBack(elapsedFinished / funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME)) * this.ratio); this.logo.set_x((this._width - this.logo.get_width()) / 2); this.logo.set_y((this._height - this.logo.get_height()) / 2); this.progressLeftText.set_alpha(this.logo.get_alpha()); this.progressRightText.set_alpha(this.logo.get_alpha()); this.box.set_alpha(this.logo.get_alpha()); this.dspText.set_alpha(this.logo.get_alpha()); this.fnfText.set_alpha(this.logo.get_alpha()); this.enhancedText.set_alpha(this.logo.get_alpha()); this.stereoText.set_alpha(this.logo.get_alpha()); this.progressLines.set_alpha(this.logo.get_alpha()); var _g = 0; var _g1 = this.progressBarPieces; while(_g < _g1.length) { var piece = _g1[_g]; ++_g; piece.set_alpha(this.logo.get_alpha()); } return elapsedFinished; } ,renderLogoFadeIn: function(elapsed) { this.logo.set_alpha(funkin_util_MathUtil.easeInOutCirc(elapsed / funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME)); this.logo.set_scaleX(funkin_util_MathUtil.easeOutBack(elapsed / funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME) * this.ratio); this.logo.set_scaleY(funkin_util_MathUtil.easeOutBack(elapsed / funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME) * this.ratio); this.logo.set_x((this._width - this.logo.get_width()) / 2); this.logo.set_y((this._height - this.logo.get_height()) / 2); } ,createSiteLockFailureScreen: function() { } ,adjustSiteLockTextFields: function(titleText,bodyText,hyperlinkText) { var titleFormat = titleText.get_defaultTextFormat(); titleFormat.align = 0; titleFormat.color = funkin_util_Constants.COLOR_PRELOADER_LOCK_FONT; titleText.setTextFormat(titleFormat); var bodyFormat = bodyText.get_defaultTextFormat(); bodyFormat.align = 0; bodyFormat.color = funkin_util_Constants.COLOR_PRELOADER_LOCK_FONT; bodyText.setTextFormat(bodyFormat); var hyperlinkFormat = hyperlinkText.get_defaultTextFormat(); hyperlinkFormat.align = 0; hyperlinkFormat.color = funkin_util_Constants.COLOR_PRELOADER_LOCK_LINK; hyperlinkText.setTextFormat(hyperlinkFormat); } ,destroy: function() { this.removeChild(this.logo); this.logo = null; flixel_system_FlxBasePreloader.prototype.destroy.call(this); } ,onLoaded: function() { flixel_system_FlxBasePreloader.prototype.onLoaded.call(this); this._loaded = false; this.downloadingAssetsComplete = true; } ,__class__: funkin_ui_transition_preload_FunkinPreloader }); var funkin_ui_transition_preload_FunkinPreloaderState = $hxEnums["funkin.ui.transition.preload.FunkinPreloaderState"] = { __ename__:"funkin.ui.transition.preload.FunkinPreloaderState",__constructs__:null ,NotStarted: {_hx_name:"NotStarted",_hx_index:0,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,DownloadingAssets: {_hx_name:"DownloadingAssets",_hx_index:1,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,PreloadingPlayAssets: {_hx_name:"PreloadingPlayAssets",_hx_index:2,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,InitializingScripts: {_hx_name:"InitializingScripts",_hx_index:3,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,CachingGraphics: {_hx_name:"CachingGraphics",_hx_index:4,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,CachingAudio: {_hx_name:"CachingAudio",_hx_index:5,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,CachingData: {_hx_name:"CachingData",_hx_index:6,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,ParsingSpritesheets: {_hx_name:"ParsingSpritesheets",_hx_index:7,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,ParsingStages: {_hx_name:"ParsingStages",_hx_index:8,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,ParsingCharacters: {_hx_name:"ParsingCharacters",_hx_index:9,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,ParsingSongs: {_hx_name:"ParsingSongs",_hx_index:10,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,Complete: {_hx_name:"Complete",_hx_index:11,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} ,TouchHereToPlay: {_hx_name:"TouchHereToPlay",_hx_index:12,__enum__:"funkin.ui.transition.preload.FunkinPreloaderState",toString:$estr} }; funkin_ui_transition_preload_FunkinPreloaderState.__constructs__ = [funkin_ui_transition_preload_FunkinPreloaderState.NotStarted,funkin_ui_transition_preload_FunkinPreloaderState.DownloadingAssets,funkin_ui_transition_preload_FunkinPreloaderState.PreloadingPlayAssets,funkin_ui_transition_preload_FunkinPreloaderState.InitializingScripts,funkin_ui_transition_preload_FunkinPreloaderState.CachingGraphics,funkin_ui_transition_preload_FunkinPreloaderState.CachingAudio,funkin_ui_transition_preload_FunkinPreloaderState.CachingData,funkin_ui_transition_preload_FunkinPreloaderState.ParsingSpritesheets,funkin_ui_transition_preload_FunkinPreloaderState.ParsingStages,funkin_ui_transition_preload_FunkinPreloaderState.ParsingCharacters,funkin_ui_transition_preload_FunkinPreloaderState.ParsingSongs,funkin_ui_transition_preload_FunkinPreloaderState.Complete,funkin_ui_transition_preload_FunkinPreloaderState.TouchHereToPlay]; funkin_ui_transition_preload_FunkinPreloaderState.__empty_constructs__ = [funkin_ui_transition_preload_FunkinPreloaderState.NotStarted,funkin_ui_transition_preload_FunkinPreloaderState.DownloadingAssets,funkin_ui_transition_preload_FunkinPreloaderState.PreloadingPlayAssets,funkin_ui_transition_preload_FunkinPreloaderState.InitializingScripts,funkin_ui_transition_preload_FunkinPreloaderState.CachingGraphics,funkin_ui_transition_preload_FunkinPreloaderState.CachingAudio,funkin_ui_transition_preload_FunkinPreloaderState.CachingData,funkin_ui_transition_preload_FunkinPreloaderState.ParsingSpritesheets,funkin_ui_transition_preload_FunkinPreloaderState.ParsingStages,funkin_ui_transition_preload_FunkinPreloaderState.ParsingCharacters,funkin_ui_transition_preload_FunkinPreloaderState.ParsingSongs,funkin_ui_transition_preload_FunkinPreloaderState.Complete,funkin_ui_transition_preload_FunkinPreloaderState.TouchHereToPlay]; var funkin_ui_transition_preload_VFDOverlay = function() { this.elapsedTime = 0; if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "#pragma header\n const vec2 s = vec2(1, 1.7320508);\n\n uniform float u_time;\n\n float rand(float co) { return fract(sin(co*(91.3458)) * 47453.5453); }\n float rand(vec2 co){ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); }\n\n void main(void) {\n vec4 col = texture2D (bitmap, openfl_TextureCoordv);\n vec2 game_res = vec2(1280.0, 720.0);\n const float tileAmount = 10.;\n\n vec2 uv = (2. * openfl_TextureCoordv.xy * -1.);\n uv *= 50.;\n\n vec4 hexCenter = floor(vec4(uv, uv - vec2(0.5, 1.0)) / s.xyxy) + 0.5;\n vec4 offset = vec4(uv - hexCenter.xy * s, uv - (hexCenter.zw + 0.5) * s) + 0.0;\n vec4 hexInfo = dot(offset.xy, offset.xy) < dot(offset.zw, offset.zw) ? vec4(offset.xy, hexCenter.xy) : vec4(offset.zw, hexCenter.zw);\n\n // Distance to the nearest edge of a hexagon\n vec2 p = abs(hexInfo.xy) ;\n float edgeDist = max(dot(p, normalize(vec2(1.0, sqrt(3.0)))), p.x);\n float edgeWidth = 0.05 * tileAmount; // Adjust edge width based on tile amount\n float edgeSharpness = 0.011 * tileAmount;\n\n float outline = smoothstep(edgeWidth - edgeSharpness, edgeWidth, edgeDist);\n float color_mix = mix(0.0, 0.3, outline); // Mix black outline with white fill\n\n float flicker = (sin(u_time) * 0.05) + 1.0;\n float sinshit = smoothstep(-3.0, 1.0, sin(uv.y * 3.));\n\n col = vec4(vec3(0.0), color_mix);\n col = mix(col, vec4(0., 0., 0., sinshit), 0.5 * flicker);\n\n float specs = rand(uv.xy);\n vec4 noise = vec4(0., 0., 0., specs);\n col = mix(col, noise, 0.1);\n\n gl_FragColor = col;\n\t\t}\n "; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n const vec2 s = vec2(1, 1.7320508);\n\n uniform float u_time;\n\n float rand(float co) { return fract(sin(co*(91.3458)) * 47453.5453); }\n float rand(vec2 co){ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); }\n\n void main(void) {\n vec4 col = texture2D (bitmap, openfl_TextureCoordv);\n vec2 game_res = vec2(1280.0, 720.0);\n const float tileAmount = 10.;\n\n vec2 uv = (2. * openfl_TextureCoordv.xy * -1.);\n uv *= 50.;\n\n vec4 hexCenter = floor(vec4(uv, uv - vec2(0.5, 1.0)) / s.xyxy) + 0.5;\n vec4 offset = vec4(uv - hexCenter.xy * s, uv - (hexCenter.zw + 0.5) * s) + 0.0;\n vec4 hexInfo = dot(offset.xy, offset.xy) < dot(offset.zw, offset.zw) ? vec4(offset.xy, hexCenter.xy) : vec4(offset.zw, hexCenter.zw);\n\n // Distance to the nearest edge of a hexagon\n vec2 p = abs(hexInfo.xy) ;\n float edgeDist = max(dot(p, normalize(vec2(1.0, sqrt(3.0)))), p.x);\n float edgeWidth = 0.05 * tileAmount; // Adjust edge width based on tile amount\n float edgeSharpness = 0.011 * tileAmount;\n\n float outline = smoothstep(edgeWidth - edgeSharpness, edgeWidth, edgeDist);\n float color_mix = mix(0.0, 0.3, outline); // Mix black outline with white fill\n\n float flicker = (sin(u_time) * 0.05) + 1.0;\n float sinshit = smoothstep(-3.0, 1.0, sin(uv.y * 3.));\n\n col = vec4(vec3(0.0), color_mix);\n col = mix(col, vec4(0., 0., 0., sinshit), 0.5 * flicker);\n\n float specs = rand(uv.xy);\n vec4 noise = vec4(0., 0., 0., specs);\n col = mix(col, noise, 0.1);\n\n gl_FragColor = col;\n\t\t}\n "; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\n\t\t}"; } this.__isGenerated = true; openfl_display_GraphicsShader.call(this); this.set_elapsedTime(0); this.__initGL(); }; $hxClasses["funkin.ui.transition.preload.VFDOverlay"] = funkin_ui_transition_preload_VFDOverlay; funkin_ui_transition_preload_VFDOverlay.__name__ = "funkin.ui.transition.preload.VFDOverlay"; funkin_ui_transition_preload_VFDOverlay.__super__ = openfl_display_GraphicsShader; funkin_ui_transition_preload_VFDOverlay.prototype = $extend(openfl_display_GraphicsShader.prototype,{ elapsedTime: null ,set_elapsedTime: function(value) { this.u_time.value = [value]; return value; } ,update: function(elapsed) { this.set_elapsedTime(this.elapsedTime + elapsed); } ,u_time: null ,__class__: funkin_ui_transition_preload_VFDOverlay ,__properties__: $extend(openfl_display_GraphicsShader.prototype.__properties__,{set_elapsedTime:"set_elapsedTime"}) }); var funkin_util_BezierUtil = function() { }; $hxClasses["funkin.util.BezierUtil"] = funkin_util_BezierUtil; funkin_util_BezierUtil.__name__ = "funkin.util.BezierUtil"; funkin_util_BezierUtil.mix2 = function(p,a,b) { return a * (1 - p) + b * p; }; funkin_util_BezierUtil.mix3 = function(p,a,b,c) { return (a * (1 - p) + b * p) * (1 - p) + (b * (1 - p) + c * p) * p; }; funkin_util_BezierUtil.mix4 = function(p,a,b,c,d) { return ((a * (1 - p) + b * p) * (1 - p) + (b * (1 - p) + c * p) * p) * (1 - p) + ((b * (1 - p) + c * p) * (1 - p) + (c * (1 - p) + d * p) * p) * p; }; funkin_util_BezierUtil.mix5 = function(p,a,b,c,d,e) { return (((a * (1 - p) + b * p) * (1 - p) + (b * (1 - p) + c * p) * p) * (1 - p) + ((b * (1 - p) + c * p) * (1 - p) + (c * (1 - p) + d * p) * p) * p) * (1 - p) + (((b * (1 - p) + c * p) * (1 - p) + (c * (1 - p) + d * p) * p) * (1 - p) + ((c * (1 - p) + d * p) * (1 - p) + (d * (1 - p) + e * p) * p) * p) * p; }; funkin_util_BezierUtil.bezier2 = function(p,a,b) { var x = a.x * (1 - p) + b.x * p; var y = a.y * (1 - p) + b.y * p; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); }; funkin_util_BezierUtil.bezier3 = function(p,a,b,c) { var b1 = b.x; var x = (a.x * (1 - p) + b1 * p) * (1 - p) + (b1 * (1 - p) + c.x * p) * p; var b1 = b.y; var y = (a.y * (1 - p) + b1 * p) * (1 - p) + (b1 * (1 - p) + c.y * p) * p; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); }; funkin_util_BezierUtil.bezier4 = function(p,a,b,c,d) { var b1 = b.x; var c1 = c.x; var x = ((a.x * (1 - p) + b1 * p) * (1 - p) + (b1 * (1 - p) + c1 * p) * p) * (1 - p) + ((b1 * (1 - p) + c1 * p) * (1 - p) + (c1 * (1 - p) + d.x * p) * p) * p; var b1 = b.y; var c1 = c.y; var y = ((a.y * (1 - p) + b1 * p) * (1 - p) + (b1 * (1 - p) + c1 * p) * p) * (1 - p) + ((b1 * (1 - p) + c1 * p) * (1 - p) + (c1 * (1 - p) + d.y * p) * p) * p; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); }; funkin_util_BezierUtil.bezier5 = function(p,a,b,c,d,e) { var b1 = b.x; var c1 = c.x; var d1 = d.x; var x = (((a.x * (1 - p) + b1 * p) * (1 - p) + (b1 * (1 - p) + c1 * p) * p) * (1 - p) + ((b1 * (1 - p) + c1 * p) * (1 - p) + (c1 * (1 - p) + d1 * p) * p) * p) * (1 - p) + (((b1 * (1 - p) + c1 * p) * (1 - p) + (c1 * (1 - p) + d1 * p) * p) * (1 - p) + ((c1 * (1 - p) + d1 * p) * (1 - p) + (d1 * (1 - p) + e.x * p) * p) * p) * p; var b1 = b.y; var c1 = c.y; var d1 = d.y; var y = (((a.y * (1 - p) + b1 * p) * (1 - p) + (b1 * (1 - p) + c1 * p) * p) * (1 - p) + ((b1 * (1 - p) + c1 * p) * (1 - p) + (c1 * (1 - p) + d1 * p) * p) * p) * (1 - p) + (((b1 * (1 - p) + c1 * p) * (1 - p) + (c1 * (1 - p) + d1 * p) * p) * (1 - p) + ((c1 * (1 - p) + d1 * p) * (1 - p) + (d1 * (1 - p) + e.y * p) * p) * p) * p; if(y == null) { y = 0; } if(x == null) { x = 0; } return new flixel_math_FlxBasePoint(x,y); }; var funkin_util_CLIUtil = function() { }; $hxClasses["funkin.util.CLIUtil"] = funkin_util_CLIUtil; funkin_util_CLIUtil.__name__ = "funkin.util.CLIUtil"; funkin_util_CLIUtil.resetWorkingDir = function() { }; funkin_util_CLIUtil.processArgs = function() { return funkin_util_CLIUtil.buildDefaultParams(); }; funkin_util_CLIUtil.interpretArgs = function(args) { var result = funkin_util_CLIUtil.buildDefaultParams(); var _g = []; var _g1 = 0; while(_g1 < args.length) { var arg = args[_g1]; ++_g1; _g.push(arg); } result.args = _g; while(args.length > 0) { var arg = args.shift(); if(arg == null) { continue; } if(StringTools.startsWith(arg,"-")) { switch(arg) { case "--chart": if(args.length == 0) { haxe_Log.trace("No chart path provided.",{ fileName : "source/funkin/util/CLIUtil.hx", lineNumber : 67, className : "funkin.util.CLIUtil", methodName : "interpretArgs"}); funkin_util_CLIUtil.printUsage(); } else { result.chart.shouldLoadChart = true; result.chart.chartPath = args.shift(); } break; case "--help":case "-h": funkin_util_CLIUtil.printUsage(); break; case "--version":case "-v": haxe_Log.trace(funkin_util_Constants.get_GENERATED_BY(),{ fileName : "source/funkin/util/CLIUtil.hx", lineNumber : 63, className : "funkin.util.CLIUtil", methodName : "interpretArgs"}); break; } } else if(StringTools.endsWith(arg,funkin_util_Constants.EXT_CHART)) { result.chart.shouldLoadChart = true; result.chart.chartPath = arg; } else { haxe_Log.trace("Unrecognized argument: " + arg,{ fileName : "source/funkin/util/CLIUtil.hx", lineNumber : 88, className : "funkin.util.CLIUtil", methodName : "interpretArgs"}); funkin_util_CLIUtil.printUsage(); } } return result; }; funkin_util_CLIUtil.printUsage = function() { haxe_Log.trace("Usage: Funkin.exe [--chart ] [--help] [--version]",{ fileName : "source/funkin/util/CLIUtil.hx", lineNumber : 99, className : "funkin.util.CLIUtil", methodName : "printUsage"}); }; funkin_util_CLIUtil.buildDefaultParams = function() { return { args : [], chart : { shouldLoadChart : false, chartPath : null}}; }; funkin_util_CLIUtil.cleanArgs = function(args) { var result = []; if(args == null || args.length == 0) { return result; } var result = new Array(args.length); var _g = 0; var _g1 = args.length; while(_g < _g1) { var i = _g++; var arg = args[i]; result[i] = arg == null ? "" : StringTools.trim(arg); } var _g = []; var _g1 = 0; var _g2 = result; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != null && v != "") { _g.push(v); } } return _g; }; var funkin_util_ClipboardUtil = function() { }; $hxClasses["funkin.util.ClipboardUtil"] = funkin_util_ClipboardUtil; funkin_util_ClipboardUtil.__name__ = "funkin.util.ClipboardUtil"; funkin_util_ClipboardUtil.addListener = function(callback,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } lime_system_Clipboard.onUpdate.add(callback,once,priority); }; funkin_util_ClipboardUtil.removeListener = function(callback) { lime_system_Clipboard.onUpdate.remove(callback); }; funkin_util_ClipboardUtil.getClipboard = function() { return lime_system_Clipboard.get_text(); }; funkin_util_ClipboardUtil.setClipboard = function(text) { return lime_system_Clipboard.set_text(text); }; var funkin_util_DateUtil = function() { }; $hxClasses["funkin.util.DateUtil"] = funkin_util_DateUtil; funkin_util_DateUtil.__name__ = "funkin.util.DateUtil"; funkin_util_DateUtil.generateTimestamp = function(date) { if(date == null) { date = new Date(); } return "" + date.getFullYear() + "-" + StringTools.lpad(Std.string(date.getMonth() + 1),"0",2) + "-" + StringTools.lpad(Std.string(date.getDate()),"0",2) + "-" + StringTools.lpad(Std.string(date.getHours()),"0",2) + "-" + StringTools.lpad(Std.string(date.getMinutes()),"0",2) + "-" + StringTools.lpad(Std.string(date.getSeconds()),"0",2); }; funkin_util_DateUtil.generateCleanTimestamp = function(date) { if(date == null) { date = new Date(); } return "" + DateTools.format(date,"%B %d, %Y") + " at " + DateTools.format(date,"%I:%M %p"); }; var funkin_util_EaseUtil = function() { }; $hxClasses["funkin.util.EaseUtil"] = funkin_util_EaseUtil; funkin_util_EaseUtil.__name__ = "funkin.util.EaseUtil"; funkin_util_EaseUtil.stepped = function(steps) { return function(t) { return Math.floor(t * steps) / steps; }; }; var openfl_net_FileFilter = function(description,extension,macType) { this.description = description; this.extension = extension; this.macType = macType; }; $hxClasses["openfl.net.FileFilter"] = openfl_net_FileFilter; openfl_net_FileFilter.__name__ = "openfl.net.FileFilter"; openfl_net_FileFilter.prototype = { description: null ,extension: null ,macType: null ,__class__: openfl_net_FileFilter }; var funkin_util_FileUtil = function() { }; $hxClasses["funkin.util.FileUtil"] = funkin_util_FileUtil; funkin_util_FileUtil.__name__ = "funkin.util.FileUtil"; funkin_util_FileUtil.browseForBinaryFile = function(dialogTitle,typeFilter,onSelect,onCancel) { var onComplete = function(button,selectedFiles) { var larr = (button == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(button)).split("|"); if(larr.indexOf("{{ok}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{ok}}")) != -1 && selectedFiles.length > 0) { onSelect(selectedFiles[0]); } else { onCancel(); } }; var tmp = typeFilter; haxe_ui_containers_dialogs_Dialogs.openFile(onComplete,{ readContents : true, readAsBinary : true, multiple : false, extensions : tmp != null ? tmp : [], title : dialogTitle}); }; funkin_util_FileUtil.browseForTextFile = function(dialogTitle,typeFilter,onSelect,onCancel) { var onComplete = function(button,selectedFiles) { var larr = (button == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(button)).split("|"); if(larr.indexOf("{{ok}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{ok}}")) != -1 && selectedFiles.length > 0) { onSelect(selectedFiles[0]); } else { onCancel(); } }; var tmp = typeFilter; haxe_ui_containers_dialogs_Dialogs.openFile(onComplete,{ readContents : true, readAsBinary : false, multiple : false, extensions : tmp != null ? tmp : [], title : dialogTitle}); }; funkin_util_FileUtil.browseForDirectory = function(typeFilter,onSelect,onCancel,defaultPath,dialogTitle) { onCancel(); return false; }; funkin_util_FileUtil.browseForMultipleFiles = function(typeFilter,onSelect,onCancel,defaultPath,dialogTitle) { onCancel(); return false; }; funkin_util_FileUtil.browseForSaveFile = function(typeFilter,onSelect,onCancel,defaultPath,dialogTitle) { onCancel(); return false; }; funkin_util_FileUtil.saveFile = function(data,typeFilter,onSave,onCancel,defaultFileName,dialogTitle) { var filter = defaultFileName != null ? haxe_io_Path.extension(defaultFileName) : null; var fileDialog = new lime_ui_FileDialog(); if(onSave != null) { fileDialog.onSave.add(onSave); } if(onCancel != null) { fileDialog.onCancel.add(onCancel); } fileDialog.save(data,filter,defaultFileName,dialogTitle); return true; }; funkin_util_FileUtil.saveMultipleFiles = function(resources,onSaveAll,onCancel,defaultPath,force) { if(force == null) { force = false; } funkin_util_FileUtil.saveFilesAsZIP(resources,onSaveAll,onCancel,defaultPath,force); return true; }; funkin_util_FileUtil.saveFilesAsZIP = function(resources,onSave,onCancel,defaultPath,force) { if(force == null) { force = false; } var zipBytes = funkin_util_FileUtil.createZIPFromEntries(resources); var onSave1 = function(path) { haxe_Log.trace("Saved " + resources.length + " files to ZIP at \"" + path + "\".",{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 275, className : "funkin.util.FileUtil", methodName : "saveFilesAsZIP"}); if(onSave != null) { onSave([path]); } }; funkin_util_FileUtil.saveFile(zipBytes,[funkin_util_FileUtil.FILE_FILTER_ZIP],onSave1,onCancel,defaultPath,"Save files as ZIP..."); return true; }; funkin_util_FileUtil.saveChartAsFNFC = function(resources,onSave,onCancel,defaultPath,force) { if(force == null) { force = false; } var zipBytes = funkin_util_FileUtil.createZIPFromEntries(resources); var onSave1 = function(path) { haxe_Log.trace("Saved FNF file to \"" + path + "\"",{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 292, className : "funkin.util.FileUtil", methodName : "saveChartAsFNFC"}); if(onSave != null) { onSave([path]); } }; funkin_util_FileUtil.saveFile(zipBytes,[funkin_util_FileUtil.FILE_FILTER_FNFC],onSave1,onCancel,defaultPath,"Save chart as FNFC..."); return true; }; funkin_util_FileUtil.saveFilesAsZIPToPath = function(resources,path,mode) { if(mode == null) { mode = funkin_util_FileWriteMode.Skip; } return false; }; funkin_util_FileUtil.readStringFromPath = function(path) { haxe_Log.trace("ERROR: readStringFromPath not implemented for this platform",{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 331, className : "funkin.util.FileUtil", methodName : "readStringFromPath"}); return null; }; funkin_util_FileUtil.readBytesFromPath = function(path) { return null; }; funkin_util_FileUtil.doesFileExist = function(path) { return false; }; funkin_util_FileUtil.browseFileReference = function(callback) { var file = new openfl_net_FileReference(); file.addEventListener("select",function(e) { var selectedFileRef = e.target; haxe_Log.trace("Selected file: " + selectedFileRef.get_name(),{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 373, className : "funkin.util.FileUtil", methodName : "browseFileReference"}); selectedFileRef.addEventListener("complete",function(e) { var loadedFileRef = e.target; haxe_Log.trace("Loaded file: " + loadedFileRef.get_name(),{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 376, className : "funkin.util.FileUtil", methodName : "browseFileReference"}); callback(loadedFileRef); }); selectedFileRef.load(); }); file.browse(); }; funkin_util_FileUtil.writeFileReference = function(path,data) { var file = new openfl_net_FileReference(); file.addEventListener("complete",function(e) { haxe_Log.trace("Successfully wrote file.",{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 391, className : "funkin.util.FileUtil", methodName : "writeFileReference"}); }); file.addEventListener("cancel",function(e) { haxe_Log.trace("Cancelled writing file.",{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 394, className : "funkin.util.FileUtil", methodName : "writeFileReference"}); }); file.addEventListener("ioError",function(e) { haxe_Log.trace("IO error writing file.",{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 397, className : "funkin.util.FileUtil", methodName : "writeFileReference"}); }); file.save(data,path); }; funkin_util_FileUtil.readJSONFromPath = function(path) { return null; }; funkin_util_FileUtil.writeStringToPath = function(path,data,mode) { if(mode == null) { mode = funkin_util_FileWriteMode.Skip; } throw haxe_Exception.thrown("Direct file writing by path not supported on this platform."); }; funkin_util_FileUtil.writeBytesToPath = function(path,data,mode) { if(mode == null) { mode = funkin_util_FileWriteMode.Skip; } throw haxe_Exception.thrown("Direct file writing by path not supported on this platform."); }; funkin_util_FileUtil.appendStringToPath = function(path,data) { throw haxe_Exception.thrown("Direct file writing by path not supported on this platform."); }; funkin_util_FileUtil.createDirIfNotExists = function(dir) { }; funkin_util_FileUtil.getTempDir = function() { if(funkin_util_FileUtil.tempDir != null) { return funkin_util_FileUtil.tempDir; } return null; }; funkin_util_FileUtil.createZIPFromEntries = function(entries) { var o = new haxe_io_BytesOutput(); var zipWriter = new haxe_zip_Writer(o); zipWriter.write(Lambda.list(entries)); return o.getBytes(); }; funkin_util_FileUtil.readZIPFromBytes = function(input) { haxe_Log.trace("TEST: " + input.length,{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 589, className : "funkin.util.FileUtil", methodName : "readZIPFromBytes"}); haxe_Log.trace(input.sub(0,30).toHex(),{ fileName : "source/funkin/util/FileUtil.hx", lineNumber : 590, className : "funkin.util.FileUtil", methodName : "readZIPFromBytes"}); var bytesInput = new haxe_io_BytesInput(input); var zippedEntries = haxe_zip_Reader.readZip(bytesInput); var results = []; var _g_head = zippedEntries.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var entry = val; if(entry.compressed) { entry.data = haxe_zip_Reader.unzip(entry); } results.push(entry); } return results; }; funkin_util_FileUtil.mapZIPEntriesByName = function(input) { var results = new haxe_ds_StringMap(); var _g = 0; while(_g < input.length) { var entry = input[_g]; ++_g; results.h[entry.fileName] = entry; } return results; }; funkin_util_FileUtil.makeZIPEntry = function(name,content) { var data = haxe_io_Bytes.ofString(content,haxe_io_Encoding.UTF8); return funkin_util_FileUtil.makeZIPEntryFromBytes(name,data); }; funkin_util_FileUtil.makeZIPEntryFromBytes = function(name,data) { return { fileName : name, fileSize : data.length, data : data, dataSize : data.length, compressed : false, fileTime : new Date(), crc32 : null, extraFields : null}; }; funkin_util_FileUtil.openFolder = function(pathFolder) { }; funkin_util_FileUtil.convertTypeFilter = function(typeFilter) { var filter = null; if(typeFilter != null) { var filters = []; var _g = 0; while(_g < typeFilter.length) { var type = typeFilter[_g]; ++_g; filters.push(StringTools.replace(StringTools.replace(type.extension,"*.",""),";",",")); } filter = filters.join(";"); } return filter; }; var funkin_util_FileWriteMode = $hxEnums["funkin.util.FileWriteMode"] = { __ename__:"funkin.util.FileWriteMode",__constructs__:null ,Force: {_hx_name:"Force",_hx_index:0,__enum__:"funkin.util.FileWriteMode",toString:$estr} ,Ask: {_hx_name:"Ask",_hx_index:1,__enum__:"funkin.util.FileWriteMode",toString:$estr} ,Skip: {_hx_name:"Skip",_hx_index:2,__enum__:"funkin.util.FileWriteMode",toString:$estr} }; funkin_util_FileWriteMode.__constructs__ = [funkin_util_FileWriteMode.Force,funkin_util_FileWriteMode.Ask,funkin_util_FileWriteMode.Skip]; funkin_util_FileWriteMode.__empty_constructs__ = [funkin_util_FileWriteMode.Force,funkin_util_FileWriteMode.Ask,funkin_util_FileWriteMode.Skip]; var funkin_util_FlxGamepadUtil = function() { }; $hxClasses["funkin.util.FlxGamepadUtil"] = funkin_util_FlxGamepadUtil; funkin_util_FlxGamepadUtil.__name__ = "funkin.util.FlxGamepadUtil"; funkin_util_FlxGamepadUtil.getInputID = function(gamepad,button) { var OFFSET = 6; var result = gamepad.mapping.getID(button + OFFSET); if(result == -1) { return -1; } return result; }; funkin_util_FlxGamepadUtil.getLimeGamepad = function(input) { return input._device.getLimeGamepad(); }; funkin_util_FlxGamepadUtil.getFlxGamepadByLimeGamepad = function(gamepad) { var gameInputDevice = openfl_ui_GameInput.__getDevice(gamepad); var gamepadIndex = flixel_FlxG.gamepads.findGamepadIndex(gameInputDevice); return flixel_FlxG.gamepads._activeGamepads[gamepadIndex]; }; var funkin_util_FlxTweenUtil = function() { }; $hxClasses["funkin.util.FlxTweenUtil"] = funkin_util_FlxTweenUtil; funkin_util_FlxTweenUtil.__name__ = "funkin.util.FlxTweenUtil"; funkin_util_FlxTweenUtil.pauseTween = function(tween) { if(tween != null) { tween.set_active(false); } }; funkin_util_FlxTweenUtil.resumeTween = function(tween) { if(tween != null) { tween.set_active(true); } }; funkin_util_FlxTweenUtil.pauseTweensOf = function(Object1,FieldPaths) { flixel_tweens_FlxTween.globalManager.forEachTweensOf(Object1,FieldPaths,funkin_util_FlxTweenUtil.pauseTween); }; funkin_util_FlxTweenUtil.resumeTweensOf = function(Object1,FieldPaths) { flixel_tweens_FlxTween.globalManager.forEachTweensOf(Object1,FieldPaths,funkin_util_FlxTweenUtil.resumeTween); }; var funkin_util_HaxeUIUtil = function() { }; $hxClasses["funkin.util.HaxeUIUtil"] = funkin_util_HaxeUIUtil; funkin_util_HaxeUIUtil.__name__ = "funkin.util.HaxeUIUtil"; funkin_util_HaxeUIUtil.buildTooltip = function(text,left,top,width,height) { var tmp = left; var tmp1 = top; var tmp2 = width; var tmp3 = height; return { tipData : { text : text}, left : tmp != null ? tmp : 0.0, top : tmp1 != null ? tmp1 : 0.0, width : tmp2 != null ? tmp2 : 0.0, height : tmp3 != null ? tmp3 : 0.0}; }; var funkin_util_InputUtil = function() { }; $hxClasses["funkin.util.InputUtil"] = funkin_util_InputUtil; funkin_util_InputUtil.__name__ = "funkin.util.InputUtil"; funkin_util_InputUtil.format = function(id,device) { switch(device._hx_index) { case 0: return funkin_util_InputUtil.getKeyName(id); case 1: var gamepadID = device.id; var label = flixel_FlxG.gamepads._activeGamepads[gamepadID].mapping.getInputLabel(id); return funkin_util_InputUtil.shortenButtonName(label); } }; funkin_util_InputUtil.getKeyName = function(id) { switch(id) { case 8: return "BckSpc"; case 17: return "Ctrl"; case 18: return "Alt"; case 20: return "Caps"; case 33: return "PgUp"; case 34: return "PgDown"; case 48: return "0"; case 49: return "1"; case 50: return "2"; case 51: return "3"; case 52: return "4"; case 53: return "5"; case 54: return "6"; case 55: return "7"; case 56: return "8"; case 57: return "9"; case 96: return "#0"; case 97: return "#1"; case 98: return "#2"; case 99: return "#3"; case 100: return "#4"; case 101: return "#5"; case 102: return "#6"; case 103: return "#7"; case 104: return "#8"; case 105: return "#9"; case 106: return "#*"; case 107: return "#+"; case 109: return "#-"; case 110: return "#."; case 186: return ";"; case 188: return ","; case 190: return "."; case 191: return "/"; case 192: return "`"; case 219: return "["; case 220: return "\\"; case 221: return "]"; case 222: return "'"; case 301: return "PrtScrn"; default: var str = flixel_input_keyboard_FlxKey.toStringMap.h[id]; return str.charAt(0).toUpperCase() + HxOverrides.substr(str,1,null).toLowerCase(); } }; funkin_util_InputUtil.getButtonName = function(id,gamepad) { var label = gamepad.mapping.getInputLabel(id); return funkin_util_InputUtil.shortenButtonName(label); }; funkin_util_InputUtil.shortenButtonName = function(name) { var _g = name == null ? "" : name.toLowerCase(); if(_g == "") { return "[?]"; } else { var dir = _g; if(funkin_util_InputUtil.dirReg.match(dir)) { var tmp = funkin_util_InputUtil.dirReg.matched(1).toUpperCase() + " "; var str = funkin_util_InputUtil.dirReg.matched(2); return tmp + (str.charAt(0).toUpperCase() + HxOverrides.substr(str,1,null).toLowerCase()); } else { var label = _g; return label.charAt(0).toUpperCase() + HxOverrides.substr(label,1,null).toLowerCase(); } } }; funkin_util_InputUtil.titleCaseTrim = function(str,length) { if(length == null) { length = 8; } return str.charAt(0).toUpperCase() + HxOverrides.substr(str,1,length - 1).toLowerCase(); }; funkin_util_InputUtil.titleCase = function(str) { return str.charAt(0).toUpperCase() + HxOverrides.substr(str,1,null).toLowerCase(); }; funkin_util_InputUtil.parsePadName = function(name) { return funkin_util_ControllerName.parseName(name); }; funkin_util_InputUtil.getPadName = function(gamepad) { return funkin_util_ControllerName.parseName(gamepad.get_name()); }; funkin_util_InputUtil.getPadNameById = function(id) { return funkin_util_ControllerName.parseName(flixel_FlxG.gamepads._activeGamepads[id].get_name()); }; var funkin_util_ControllerName = {}; funkin_util_ControllerName.getAssetByDevice = function(device) { switch(device._hx_index) { case 0: return funkin_util_ControllerName.getAsset(null); case 1: var id = device.id; return funkin_util_ControllerName.getAsset(flixel_FlxG.gamepads._activeGamepads[id]); } }; funkin_util_ControllerName.getAsset = function(gamepad) { if(gamepad == null) { return "assets/images/ui/devices/Keys.png"; } var name = funkin_util_ControllerName.parseName(gamepad.get_name()); var path = "assets/images/ui/devices/" + name + ".png"; if(openfl_utils_Assets.exists(path)) { return path; } return "assets/images/ui/devices/Pad.png"; }; funkin_util_ControllerName.getNameById = function(id) { return funkin_util_ControllerName.parseName(flixel_FlxG.gamepads._activeGamepads[id].get_name()); }; funkin_util_ControllerName.getName = function(gamepad) { return funkin_util_ControllerName.parseName(gamepad.get_name()); }; funkin_util_ControllerName.parseName = function(name) { name = StringTools.replace(StringTools.replace(name.toLowerCase(),"-",""),"_",""); if(name.indexOf("ouya") != -1) { return "Ouya"; } else if(name.indexOf("wireless controller") != -1 || name.indexOf("ps4") != -1) { return "PS4"; } else if(name.indexOf("logitech") != -1) { return "Logi"; } else if(name.indexOf("xbox") != -1) { return "XBox"; } else if(name.indexOf("xinput") != -1) { return "XInput"; } else if(name.indexOf("nintendo rvlcnt01tr") != -1 || name.indexOf("nintendo rvlcnt01") != -1) { return "Wii"; } else if(name.indexOf("mayflash wiimote pc adapter") != -1) { return "Wii"; } else if(name.indexOf("pro controller") != -1) { return "Pro_Con"; } else if(name.indexOf("joycon l+r") != -1) { return "Joycons"; } else if(name.indexOf("joycon (l)") != -1) { return "Joycon_L"; } else if(name.indexOf("joycon (r)") != -1) { return "Joycon_R"; } else if(name.indexOf("mfi") != -1) { return "MFI"; } else { return "Pad"; } }; var funkin_util_MathUtil = function() { }; $hxClasses["funkin.util.MathUtil"] = funkin_util_MathUtil; funkin_util_MathUtil.__name__ = "funkin.util.MathUtil"; funkin_util_MathUtil.coolLerp = function(base,target,ratio) { return base + funkin_util_MathUtil.cameraLerp(ratio) * (target - base); }; funkin_util_MathUtil.cameraLerp = function(lerp) { return lerp * (flixel_FlxG.elapsed / 0.0166666666666666664); }; funkin_util_MathUtil.logBase = function(base,value) { return Math.log(value) / Math.log(base); }; funkin_util_MathUtil.easeInOutCirc = function(x) { if(x <= 0.0) { return 0.0; } if(x >= 1.0) { return 1.0; } var result = x < 0.5 ? (1 - Math.sqrt(1 - 4 * x * x)) / 2 : (Math.sqrt(1 - 4 * (1 - x) * (1 - x)) + 1) / 2; if(result == NaN) { return 1.0; } else { return result; } }; funkin_util_MathUtil.easeInOutBack = function(x,c) { if(c == null) { c = 1.70158; } if(x <= 0.0) { return 0.0; } if(x >= 1.0) { return 1.0; } var result = x < 0.5 ? 2 * x * x * ((c + 1) * 2 * x - c) / 2 : (1 - 2 * (1 - x) * (1 - x) * ((c + 1) * 2 * (1 - x) - c)) / 2; if(result == NaN) { return 1.0; } else { return result; } }; funkin_util_MathUtil.easeInBack = function(x,c) { if(c == null) { c = 1.70158; } if(x <= 0.0) { return 0.0; } if(x >= 1.0) { return 1.0; } return (1 + c) * x * x * x - c * x * x; }; funkin_util_MathUtil.easeOutBack = function(x,c) { if(c == null) { c = 1.70158; } if(x <= 0.0) { return 0.0; } if(x >= 1.0) { return 1.0; } return 1 + (c + 1) * Math.pow(x - 1,3) + c * Math.pow(x - 1,2); }; funkin_util_MathUtil.exp2 = function(x) { return Math.pow(2,x); }; funkin_util_MathUtil.lerp = function(base,target,progress) { return base + progress * (target - base); }; funkin_util_MathUtil.smoothLerp = function(current,target,elapsed,duration,precision) { if(precision == null) { precision = 0.01; } if(current == target) { return target; } var result = funkin_util_MathUtil.lerp(current,target,1 - Math.pow(precision,elapsed / duration)); if(Math.abs(result - target) < precision * target) { result = target; } return result; }; var funkin_util_MemoryUtil = function() { }; $hxClasses["funkin.util.MemoryUtil"] = funkin_util_MemoryUtil; funkin_util_MemoryUtil.__name__ = "funkin.util.MemoryUtil"; funkin_util_MemoryUtil.buildGCInfo = function() { var result = "JS-MNS:"; result += "\n- Memory Used: " + funkin_util_MemoryUtil.getMemoryUsed() + " bytes"; return result; }; funkin_util_MemoryUtil.getMemoryUsed = function() { return openfl_system_System.get_totalMemory(); }; funkin_util_MemoryUtil.enable = function() { throw haxe_Exception.thrown("Not implemented!"); }; funkin_util_MemoryUtil.disable = function() { throw haxe_Exception.thrown("Not implemented!"); }; funkin_util_MemoryUtil.collect = function(major) { if(major == null) { major = false; } throw haxe_Exception.thrown("Not implemented!"); }; funkin_util_MemoryUtil.compact = function() { throw haxe_Exception.thrown("Not implemented!"); }; var funkin_util_MouseUtil = function() { }; $hxClasses["funkin.util.MouseUtil"] = funkin_util_MouseUtil; funkin_util_MouseUtil.__name__ = "funkin.util.MouseUtil"; funkin_util_MouseUtil.mouseCamDrag = function(target,jusPres,pressed) { if(target == null) { target = flixel_FlxG.camera.scroll; } if(jusPres == null) { jusPres = flixel_FlxG.mouse._middleButton.current == 2; } if(pressed == null) { var _this = flixel_FlxG.mouse._middleButton; pressed = _this.current == 1 || _this.current == 2; } if(jusPres) { var this1 = funkin_util_MouseUtil.oldCamPos; var x = target.x; var y = target.y; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); var this1 = funkin_util_MouseUtil.oldMousePos; var x = flixel_FlxG.mouse.screenX; var y = flixel_FlxG.mouse.screenY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } if(pressed) { target.set_x(funkin_util_MouseUtil.oldCamPos.x - (flixel_FlxG.mouse.screenX - funkin_util_MouseUtil.oldMousePos.x)); target.set_y(funkin_util_MouseUtil.oldCamPos.y - (flixel_FlxG.mouse.screenY - funkin_util_MouseUtil.oldMousePos.y)); } }; funkin_util_MouseUtil.mouseWheelZoom = function() { if(flixel_FlxG.mouse.wheel != 0) { var fh = flixel_FlxG.camera; fh.set_zoom(fh.zoom + flixel_FlxG.mouse.wheel * (0.1 * flixel_FlxG.camera.zoom)); } }; var funkin_util_PlatformUtil = function() { }; $hxClasses["funkin.util.PlatformUtil"] = funkin_util_PlatformUtil; funkin_util_PlatformUtil.__name__ = "funkin.util.PlatformUtil"; funkin_util_PlatformUtil.isMacOS = function() { if(!(StringTools.startsWith(window.navigator.platform,"Mac") || StringTools.startsWith(window.navigator.platform,"iPad"))) { return StringTools.startsWith(window.navigator.platform,"iPhone"); } else { return true; } }; funkin_util_PlatformUtil.detectHostPlatform = function() { return funkin_util_HostPlatform.HTML5; }; var funkin_util_HostPlatform = $hxEnums["funkin.util.HostPlatform"] = { __ename__:"funkin.util.HostPlatform",__constructs__:null ,WINDOWS: {_hx_name:"WINDOWS",_hx_index:0,__enum__:"funkin.util.HostPlatform",toString:$estr} ,LINUX: {_hx_name:"LINUX",_hx_index:1,__enum__:"funkin.util.HostPlatform",toString:$estr} ,MAC: {_hx_name:"MAC",_hx_index:2,__enum__:"funkin.util.HostPlatform",toString:$estr} ,HTML5: {_hx_name:"HTML5",_hx_index:3,__enum__:"funkin.util.HostPlatform",toString:$estr} }; funkin_util_HostPlatform.__constructs__ = [funkin_util_HostPlatform.WINDOWS,funkin_util_HostPlatform.LINUX,funkin_util_HostPlatform.MAC,funkin_util_HostPlatform.HTML5]; funkin_util_HostPlatform.__empty_constructs__ = [funkin_util_HostPlatform.WINDOWS,funkin_util_HostPlatform.LINUX,funkin_util_HostPlatform.MAC,funkin_util_HostPlatform.HTML5]; var funkin_util_ReflectUtil = function() { }; $hxClasses["funkin.util.ReflectUtil"] = funkin_util_ReflectUtil; funkin_util_ReflectUtil.__name__ = "funkin.util.ReflectUtil"; funkin_util_ReflectUtil.getClassFields = function(cls) { return Type.getClassFields(cls); }; funkin_util_ReflectUtil.getClassFieldsOf = function(obj) { return Type.getClassFields(js_Boot.getClass(obj)); }; funkin_util_ReflectUtil.getInstanceFields = function(cls) { return Type.getInstanceFields(cls); }; funkin_util_ReflectUtil.getInstanceFieldsOf = function(obj) { return Type.getInstanceFields(js_Boot.getClass(obj)); }; funkin_util_ReflectUtil.getClassName = function(cls) { return cls.__name__; }; funkin_util_ReflectUtil.getClassNameOf = function(obj) { var c = js_Boot.getClass(obj); return c.__name__; }; var funkin_util_SerializerUtil = function() { }; $hxClasses["funkin.util.SerializerUtil"] = funkin_util_SerializerUtil; funkin_util_SerializerUtil.__name__ = "funkin.util.SerializerUtil"; funkin_util_SerializerUtil.toJSON = function(input,pretty) { if(pretty == null) { pretty = true; } return JSON.stringify(input,funkin_util_SerializerUtil.replacer,pretty ? funkin_util_SerializerUtil.INDENT_CHAR : null); }; funkin_util_SerializerUtil.fromJSON = function(input) { try { return JSON.parse(input); } catch( _g ) { var e = haxe_Exception.caught(_g); haxe_Log.trace("An error occurred while parsing JSON from string data",{ fileName : "source/funkin/util/SerializerUtil.hx", lineNumber : 43, className : "funkin.util.SerializerUtil", methodName : "fromJSON"}); haxe_Log.trace(e,{ fileName : "source/funkin/util/SerializerUtil.hx", lineNumber : 44, className : "funkin.util.SerializerUtil", methodName : "fromJSON"}); return null; } }; funkin_util_SerializerUtil.fromJSONBytes = function(input) { try { return JSON.parse(input.toString()); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); haxe_Log.trace("An error occurred while parsing JSON from byte data",{ fileName : "source/funkin/util/SerializerUtil.hx", lineNumber : 60, className : "funkin.util.SerializerUtil", methodName : "fromJSONBytes"}); haxe_Log.trace(e,{ fileName : "source/funkin/util/SerializerUtil.hx", lineNumber : 61, className : "funkin.util.SerializerUtil", methodName : "fromJSONBytes"}); return null; } }; funkin_util_SerializerUtil.initSerializer = function() { haxe_Unserializer.DEFAULT_RESOLVER = new funkin_util_FunkinTypeResolver(); }; funkin_util_SerializerUtil.fromHaxeObject = function(input) { return haxe_Serializer.run(input); }; funkin_util_SerializerUtil.toHaxeObject = function(input) { return haxe_Unserializer.run(input); }; funkin_util_SerializerUtil.replacer = function(key,value) { if(key == "version") { if(typeof(value) == "string") { return value; } var value1 = value; var result = "" + value1.version[0] + "." + value1.version[1] + "." + value1.version[2]; if(value1.pre.length > 0) { result += "-" + thx_semver_Version.identifiersToString(value1.pre); } if(thx_semver_Version.identifiersToString(value1.build).length > 0) { result += "+" + thx_semver_Version.identifiersToString(value1.build); } return result; } return value; }; funkin_util_SerializerUtil.serializeVersion = function(value) { var result = "" + value.version[0] + "." + value.version[1] + "." + value.version[2]; if(value.pre.length > 0) { result += "-" + thx_semver_Version.identifiersToString(value.pre); } if(thx_semver_Version.identifiersToString(value.build).length > 0) { result += "+" + thx_semver_Version.identifiersToString(value.build); } return result; }; var funkin_util_FunkinTypeResolver = function() { }; $hxClasses["funkin.util.FunkinTypeResolver"] = funkin_util_FunkinTypeResolver; funkin_util_FunkinTypeResolver.__name__ = "funkin.util.FunkinTypeResolver"; funkin_util_FunkinTypeResolver.prototype = { resolveClass: function(name) { if(name == "Dynamic") { flixel_FlxG.log.advanced("Found invalid class type in save data, indicates partial save corruption.",flixel_system_debug_log_LogStyle.WARNING,true); return null; } return $hxClasses[name]; } ,resolveEnum: function(name) { return $hxEnums[name]; } ,__class__: funkin_util_FunkinTypeResolver }; var funkin_util_SortUtil = function() { }; $hxClasses["funkin.util.SortUtil"] = funkin_util_SortUtil; funkin_util_SortUtil.__name__ = "funkin.util.SortUtil"; funkin_util_SortUtil.byZIndex = function(order,a,b) { if(a == null || b == null) { return 0; } var Value1 = a.zIndex; var Value2 = b.zIndex; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; }; funkin_util_SortUtil.byStrumtime = function(order,a,b) { var Value1 = a.noteData.time; var Value2 = b.noteData.time; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; }; funkin_util_SortUtil.noteDataByTime = function(order,a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; }; funkin_util_SortUtil.eventDataByTime = function(order,a,b) { var Value1 = a.time; var Value2 = b.time; var result = 0; if(Value1 < Value2) { result = order; } else if(Value1 > Value2) { result = -order; } return result; }; funkin_util_SortUtil.byFrameName = function(a,b) { return funkin_util_SortUtil.alphabetically(a.name,b.name); }; funkin_util_SortUtil.alphabetically = function(a,b) { a = a.toUpperCase(); b = b.toUpperCase(); if(a == b) { return 0; } else if(a > b) { return 1; } else { return -1; } }; funkin_util_SortUtil.defaultThenAlphabetically = function(defaultValue,a,b) { if(a == b) { return 0; } if(a == defaultValue) { return -1; } if(b == defaultValue) { return 1; } return funkin_util_SortUtil.alphabetically(a,b); }; funkin_util_SortUtil.defaultsThenAlphabetically = function(defaultValues,a,b) { if(a == b) { return 0; } if(defaultValues.indexOf(a) != -1 && defaultValues.indexOf(b) != -1) { return defaultValues.indexOf(a) - defaultValues.indexOf(b); } if(defaultValues.indexOf(a) != -1) { return -1; } if(defaultValues.indexOf(b) != -1) { return 1; } return funkin_util_SortUtil.alphabetically(a,b); }; var funkin_util_TimerUtil = function() { }; $hxClasses["funkin.util.TimerUtil"] = funkin_util_TimerUtil; funkin_util_TimerUtil.__name__ = "funkin.util.TimerUtil"; funkin_util_TimerUtil.start = function() { return new Date().getTime() / 1000; }; funkin_util_TimerUtil.took = function(start,end) { var endOrNow = end != null ? end : new Date().getTime() / 1000; return endOrNow - start; }; funkin_util_TimerUtil.seconds = function(start,end,precision) { if(precision == null) { precision = 2; } var seconds = funkin_util_tools_FloatTools.round(funkin_util_TimerUtil.took(start,end),precision); return "" + seconds + " seconds"; }; funkin_util_TimerUtil.ms = function(start,end) { var seconds = funkin_util_TimerUtil.took(start,end); return "" + seconds * 1000 + " ms"; }; var funkin_util_TrackerToolButtonUtil = function() { flixel_system_debug_interaction_tools_Tool.call(this); }; $hxClasses["funkin.util.TrackerToolButtonUtil"] = funkin_util_TrackerToolButtonUtil; funkin_util_TrackerToolButtonUtil.__name__ = "funkin.util.TrackerToolButtonUtil"; funkin_util_TrackerToolButtonUtil.__super__ = flixel_system_debug_interaction_tools_Tool; funkin_util_TrackerToolButtonUtil.prototype = $extend(flixel_system_debug_interaction_tools_Tool.prototype,{ init: function(brain) { flixel_system_debug_interaction_tools_Tool.prototype.init.call(this,brain); this._name = "Add Tracker"; this.setButton(flixel_system_debug_interaction_tools_GraphicCursorCross); this.button.upHandler = function() { brain.selectedItems.forEach(function(item) { flixel_FlxG.debugger.track(item); }); }; this.button.toggleMode = false; return this; } ,__class__: funkin_util_TrackerToolButtonUtil }); var funkin_util_TrackerUtil = function() { }; $hxClasses["funkin.util.TrackerUtil"] = funkin_util_TrackerUtil; funkin_util_TrackerUtil.__name__ = "funkin.util.TrackerUtil"; funkin_util_TrackerUtil.initTrackers = function() { }; var funkin_util_VersionUtil = function() { }; $hxClasses["funkin.util.VersionUtil"] = funkin_util_VersionUtil; funkin_util_VersionUtil.__name__ = "funkin.util.VersionUtil"; funkin_util_VersionUtil.validateVersion = function(version,versionRule) { try { var versionRaw = version; haxe_Log.trace("" + Std.string(versionRaw) + " satisfies (" + (versionRule == null ? "null" : thx_semver_VersionRule.toString(versionRule)) + ")? " + Std.string(thx_semver_VersionRule.isSatisfiedBy(versionRule,version)),{ fileName : "source/funkin/util/VersionUtil.hx", lineNumber : 27, className : "funkin.util.VersionUtil", methodName : "validateVersion"}); return thx_semver_VersionRule.isSatisfiedBy(versionRule,version); } catch( _g ) { haxe_Log.trace("[VERSIONUTIL] Invalid semantic version: " + (version == null ? "null" : thx_semver_Version.toString(version)),{ fileName : "source/funkin/util/VersionUtil.hx", lineNumber : 32, className : "funkin.util.VersionUtil", methodName : "validateVersion"}); return false; } }; funkin_util_VersionUtil.repairVersion = function(version) { var versionData = version; var v = versionData.version; if(Reflect.isObject(v) && null == js_Boot.getClass(v)) { haxe_Log.trace("[SAVE] Version data repair required! (got " + Std.string(versionData.version) + ")",{ fileName : "source/funkin/util/VersionUtil.hx", lineNumber : 44, className : "funkin.util.VersionUtil", methodName : "repairVersion"}); versionData.version = [versionData.version[0],versionData.version[1],versionData.version[2]]; var buildData = versionData.build; var o = buildData; var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = Reflect.field(o,_this[i]); } var _this = result; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = thx_semver_Identifier.StringId(_this[i].toString()); } var buildDataFixed = result; versionData.build = buildDataFixed; var preData = versionData.pre; var o = preData; var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = Reflect.field(o,_this[i]); } var _this = result; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = thx_semver_Identifier.StringId(_this[i].toString()); } var preDataFixed = result; versionData.pre = preDataFixed; var fixedVersion = versionData; haxe_Log.trace("[SAVE] Fixed version: " + (fixedVersion == null ? "null" : thx_semver_Version.toString(fixedVersion)),{ fileName : "source/funkin/util/VersionUtil.hx", lineNumber : 60, className : "funkin.util.VersionUtil", methodName : "repairVersion"}); return fixedVersion; } else { haxe_Log.trace("[SAVE] Version data repair not required (got " + (version == null ? "null" : thx_semver_Version.toString(version)) + ")",{ fileName : "source/funkin/util/VersionUtil.hx", lineNumber : 65, className : "funkin.util.VersionUtil", methodName : "repairVersion"}); return version; } }; funkin_util_VersionUtil.validateVersionStr = function(version,versionRule) { try { var version1 = thx_semver_Version.stringToVersion(version); var versionRule1 = thx_semver_VersionRule.stringToVersionRule(versionRule); return thx_semver_VersionRule.isSatisfiedBy(versionRule1,version1); } catch( _g ) { haxe_Log.trace("[VERSIONUTIL] Invalid semantic version: " + version,{ fileName : "source/funkin/util/VersionUtil.hx", lineNumber : 88, className : "funkin.util.VersionUtil", methodName : "validateVersionStr"}); return false; } }; funkin_util_VersionUtil.getVersionFromJSON = function(input) { if(input == null) { return null; } var parsed = funkin_util_SerializerUtil.fromJSON(input); if(parsed == null) { return null; } if(parsed.version == null) { return null; } var versionStr = parsed.version; var version = thx_semver_Version.stringToVersion(versionStr); return version; }; funkin_util_VersionUtil.parseVersion = function(input) { if(input == null) { return null; } if(typeof(input) == "string") { var inputStr = input; var version = thx_semver_Version.stringToVersion(inputStr); return version; } else { var semVer = input; var version = semVer; return version; } }; var funkin_util_WindowUtil = function() { }; $hxClasses["funkin.util.WindowUtil"] = funkin_util_WindowUtil; funkin_util_WindowUtil.__name__ = "funkin.util.WindowUtil"; funkin_util_WindowUtil.openURL = function(targetUrl) { var url = targetUrl; if(!new EReg("^.\\w+?:/*","").match(url)) { url = "https://" + url; } openfl_Lib.getURL(new openfl_net_URLRequest(url),"_blank"); }; funkin_util_WindowUtil.openFolder = function(targetPath) { }; funkin_util_WindowUtil.openSelectFile = function(targetPath) { }; funkin_util_WindowUtil.initWindowEvents = function() { openfl_Lib.get_current().stage.application.onExit.add(function(exitCode) { funkin_util_WindowUtil.windowExit.dispatch(exitCode); }); openfl_Lib.get_current().stage.addEventListener("keyDown",function(e) { var _g = 0; var _g1 = funkin_PlayerSettings.player1.controls.getKeysForAction("window_fullscreen"); while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(e.keyCode == key) { openfl_Lib.get_application().__window.set_fullscreen(!openfl_Lib.get_application().__window.__fullscreen); } } }); }; funkin_util_WindowUtil.disableCrashHandler = function() { }; funkin_util_WindowUtil.setWindowTitle = function(value) { lime_app_Application.current.__window.set_title(value); }; var funkin_util_assets_DataAssets = function() { }; $hxClasses["funkin.util.assets.DataAssets"] = funkin_util_assets_DataAssets; funkin_util_assets_DataAssets.__name__ = "funkin.util.assets.DataAssets"; funkin_util_assets_DataAssets.buildDataPath = function(path) { return "assets/data/" + path; }; funkin_util_assets_DataAssets.listDataFilesInPath = function(path,suffix) { if(suffix == null) { suffix = ".json"; } var textAssets = openfl_utils_Assets.list("TEXT"); var queryPath = funkin_util_assets_DataAssets.buildDataPath(path); var results = []; var _g = 0; while(_g < textAssets.length) { var textPath = textAssets[_g]; ++_g; if(StringTools.startsWith(textPath,queryPath) && StringTools.endsWith(textPath,suffix)) { var pathNoSuffix = textPath.substring(0,textPath.length - suffix.length); var pathNoPrefix = pathNoSuffix.substring(queryPath.length); if(results.indexOf(pathNoPrefix) == -1) { results.push(pathNoPrefix); } } } return results; }; var funkin_util_assets_FlxAnimationUtil = function() { }; $hxClasses["funkin.util.assets.FlxAnimationUtil"] = funkin_util_assets_FlxAnimationUtil; funkin_util_assets_FlxAnimationUtil.__name__ = "funkin.util.assets.FlxAnimationUtil"; funkin_util_assets_FlxAnimationUtil.addAtlasAnimation = function(target,anim) { var frameRate = anim.frameRate == null ? 24 : anim.frameRate; var looped = anim.looped == null ? false : anim.looped; var flipX = anim.flipX == null ? false : anim.flipX; var flipY = anim.flipY == null ? false : anim.flipY; if(anim.frameIndices != null && anim.frameIndices.length > 0) { target.animation.addByIndices(anim.name,anim.prefix,anim.frameIndices,"",frameRate,looped,flipX,flipY); } else { target.animation.addByPrefix(anim.name,anim.prefix,frameRate,looped,flipX,flipY); } }; funkin_util_assets_FlxAnimationUtil.addAtlasAnimations = function(target,animations) { var _g = 0; while(_g < animations.length) { var anim = animations[_g]; ++_g; funkin_util_assets_FlxAnimationUtil.addAtlasAnimation(target,anim); } }; funkin_util_assets_FlxAnimationUtil.combineFramesCollections = function(a,b) { var result = new flixel_graphics_frames_FlxFramesCollection(null,flixel_graphics_frames_FlxFrameCollectionType.ATLAS,null); var _g = 0; var _g1 = a.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; result.pushFrame(frame); } var _g = 0; var _g1 = b.frames; while(_g < _g1.length) { var frame = _g1[_g]; ++_g; result.pushFrame(frame); } return result; }; var funkin_util_assets_SoundUtil = function() { }; $hxClasses["funkin.util.assets.SoundUtil"] = funkin_util_assets_SoundUtil; funkin_util_assets_SoundUtil.__name__ = "funkin.util.assets.SoundUtil"; funkin_util_assets_SoundUtil.buildSoundFromBytes = function(input) { if(input == null) { return null; } var openflSound = new openfl_media_Sound(); openflSound.loadCompressedDataFromByteArray(openfl_utils_ByteArray.fromBytes(input),input.length); var output = funkin_audio_FunkinSound.load(openflSound,1.0,false); return output; }; var funkin_util_flixel_sound_FlxPartialSound = function() { }; $hxClasses["funkin.util.flixel.sound.FlxPartialSound"] = funkin_util_flixel_sound_FlxPartialSound; funkin_util_flixel_sound_FlxPartialSound.__name__ = "funkin.util.flixel.sound.FlxPartialSound"; funkin_util_flixel_sound_FlxPartialSound.partialLoadAndPlayFile = function(path,rangeStart,rangeEnd) { if(rangeEnd == null) { rangeEnd = 1; } if(rangeStart == null) { rangeStart = 0; } return funkin_util_flixel_sound_FlxPartialSound.partialLoadFromFile(path,rangeStart,rangeEnd).future.onComplete(function(sound) { flixel_FlxG.sound.play(sound); }); }; funkin_util_flixel_sound_FlxPartialSound.partialLoadFromFile = function(path,rangeStart,rangeEnd) { if(rangeEnd == null) { rangeEnd = 1; } if(rangeStart == null) { rangeStart = 0; } var promise = new lime_app_Promise(); if(openfl_utils_Assets.cache.hasSound(path + ".partial-" + rangeStart + "-" + rangeEnd)) { promise.complete(openfl_utils_Assets.cache.getSound(path + ".partial-" + rangeStart + "-" + rangeEnd)); return promise; } funkin_util_flixel_sound_FlxPartialSound.requestContentLength(path).onComplete(function(contentLength) { var startByte = contentLength * rangeStart | 0; var endByte = contentLength * rangeEnd | 0; var byteRange = startByte + "-" + endByte; if(haxe_io_Path.extension(path) == "ogg") { byteRange = "0-" + "6400"; } var http = new lime_net__$HTTPRequest_$Bytes(path); var rangeHeader = new lime_net_HTTPRequestHeader("Range","bytes=" + byteRange); http.headers.push(rangeHeader); http.load().onComplete(function(data) { var audioBuffer = new lime_media_AudioBuffer(); switch(haxe_io_Path.extension(path)) { case "mp3": audioBuffer = funkin_util_flixel_sound_FlxPartialSound.parseBytesMp3(data); openfl_utils_Assets.cache.setSound(path + ".partial-" + rangeStart + "-" + rangeEnd,openfl_media_Sound.fromAudioBuffer(audioBuffer)); promise.complete(openfl_media_Sound.fromAudioBuffer(audioBuffer)); break; case "ogg": var httpFull = new lime_net__$HTTPRequest_$Bytes(path); rangeHeader = new lime_net_HTTPRequestHeader("Range","bytes=" + startByte + "-" + endByte); httpFull.headers.push(rangeHeader); httpFull.load().onComplete(function(fullOggData) { var cleanIntroBytes = funkin_util_flixel_sound_FlxPartialSound.cleanOggBytes(data); var cleanFullBytes = funkin_util_flixel_sound_FlxPartialSound.cleanOggBytes(fullOggData); var fullBytes = new haxe_io_Bytes(new ArrayBuffer(cleanIntroBytes.length + cleanFullBytes.length)); fullBytes.blit(0,cleanIntroBytes,0,cleanIntroBytes.length); fullBytes.blit(cleanIntroBytes.length,cleanFullBytes,0,cleanFullBytes.length); audioBuffer = funkin_util_flixel_sound_FlxPartialSound.parseBytesOgg(fullBytes,true); openfl_utils_Assets.cache.setSound(path + ".partial-" + rangeStart + "-" + rangeEnd,openfl_media_Sound.fromAudioBuffer(audioBuffer)); promise.complete(openfl_media_Sound.fromAudioBuffer(audioBuffer)); }); break; default: promise.error("Unsupported file type: " + haxe_io_Path.extension(path)); } }); }); return promise; }; funkin_util_flixel_sound_FlxPartialSound.requestContentLength = function(path) { var promise = new lime_app_Promise(); var fileLengthInBytes = 0; var httpFileLength = new lime_net__$HTTPRequest_$Bytes(path); httpFileLength.headers.push(new lime_net_HTTPRequestHeader("Accept-Ranges","bytes")); httpFileLength.method = "HEAD"; httpFileLength.enableResponseHeaders = true; httpFileLength.load(path).onComplete(function(data) { var _g = []; var _g1 = 0; var _g2 = httpFileLength.responseHeaders; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v.name == "content-length") { _g.push(v); } } var contentLengthHeader = _g[0]; promise.complete(Std.parseInt(contentLengthHeader.value)); }); return promise.future; }; funkin_util_flixel_sound_FlxPartialSound.parseBytesMp3 = function(data) { var frameSyncBytePos = -1; var lastFrameSyncBytePos = 0; var byteInput = new haxe_io_BytesInput(data); var _g = 0; var _g1 = data.length; while(_g < _g1) { var byte = _g++; var byteValue = byteInput.readByte(); var nextByte = data.b[byte + 1]; if(byteValue == 255) { var mpegVersion = (nextByte & 24) >> 3; var nextFrameSync = (nextByte & 224) >> 5; if(nextFrameSync == 7 && (nextByte == 251 || nextByte == 250 || nextByte == 243)) { if(frameSyncBytePos == -1) { frameSyncBytePos = byte; } lastFrameSyncBytePos = byte; } } } var bytesLength = lastFrameSyncBytePos - frameSyncBytePos; var output = new haxe_io_Bytes(new ArrayBuffer(bytesLength + 1)); output.blit(0,data,frameSyncBytePos,bytesLength); return lime_media_AudioBuffer.fromBytes(output); }; funkin_util_flixel_sound_FlxPartialSound.parseBytesOgg = function(data,skipCleaning) { if(skipCleaning == null) { skipCleaning = false; } var cleanedBytes = skipCleaning ? data : funkin_util_flixel_sound_FlxPartialSound.cleanOggBytes(data); return lime_media_AudioBuffer.fromBytes(cleanedBytes); }; funkin_util_flixel_sound_FlxPartialSound.cleanOggBytes = function(data) { var byteInput = new haxe_io_BytesInput(data); var firstByte = -1; var lastByte = -1; var oggString = ""; var _g = 0; var _g1 = data.length; while(_g < _g1) { var byte = _g++; var byteValue = byteInput.readByte(); if(byteValue == 79 || byteValue == 103 || byteValue == 83) { oggString += String.fromCodePoint(byteValue); } else { oggString = ""; } if(oggString == "OggS") { if(firstByte == -1) { firstByte = byte - 3; data.b[byte + 2] = 2; } lastByte = byte - 3; var version = data.b[byte + 1]; var headerType = data.b[byte + 2]; } } var byteLength = lastByte - firstByte; var output = new haxe_io_Bytes(new ArrayBuffer(byteLength + 1)); output.blit(0,data,firstByte,byteLength); return output; }; var funkin_util_logging_AnsiTrace = function() { }; $hxClasses["funkin.util.logging.AnsiTrace"] = funkin_util_logging_AnsiTrace; funkin_util_logging_AnsiTrace.__name__ = "funkin.util.logging.AnsiTrace"; funkin_util_logging_AnsiTrace.trace = function(v,info) { var str = funkin_util_logging_AnsiTrace.formatOutput(v,info); if(typeof(console) != "undefined" && console.log != null) { console.log(str); } }; funkin_util_logging_AnsiTrace.formatOutput = function(v,infos) { var str = Std.string(v); if(infos == null) { return str; } if(funkin_util_logging_AnsiTrace.colorSupported) { var dirs = infos.fileName.split("/"); dirs[dirs.length - 1] = funkin_util_logging_AnsiTrace.ansiWrap(dirs[dirs.length - 1],"\x1B[1m"); infos.fileName = dirs.join("/"); } var pstr = infos.fileName + ":" + funkin_util_logging_AnsiTrace.ansiWrap(infos.lineNumber,"\x1B[1m"); if(infos.customParams != null) { var _g = 0; var _g1 = infos.customParams; while(_g < _g1.length) { var v = _g1[_g]; ++_g; str += ", " + Std.string(v); } } return pstr + ": " + str; }; funkin_util_logging_AnsiTrace.traceBF = function() { }; funkin_util_logging_AnsiTrace.ansiWrap = function(str,ansiCol) { return funkin_util_logging_AnsiTrace.ansify(ansiCol) + Std.string(str) + funkin_util_logging_AnsiTrace.ansify("\x1B[0m"); }; funkin_util_logging_AnsiTrace.ansify = function(ansiCol) { if(funkin_util_logging_AnsiTrace.colorSupported) { return ansiCol; } else { return ""; } }; var funkin_util_logging_CrashHandler = function() { }; $hxClasses["funkin.util.logging.CrashHandler"] = funkin_util_logging_CrashHandler; funkin_util_logging_CrashHandler.__name__ = "funkin.util.logging.CrashHandler"; funkin_util_logging_CrashHandler.initialize = function() { haxe_Log.trace("[LOG] Enabling standard uncaught error handler...",{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 34, className : "funkin.util.logging.CrashHandler", methodName : "initialize"}); openfl_Lib.get_current().get_loaderInfo().uncaughtErrorEvents.addEventListener("uncaughtError",funkin_util_logging_CrashHandler.onUncaughtError); }; funkin_util_logging_CrashHandler.onUncaughtError = function(error) { try { funkin_util_logging_CrashHandler.errorSignal.dispatch(funkin_util_logging_CrashHandler.generateErrorMessage(error)); funkin_util_logging_CrashHandler.displayError(error); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); haxe_Log.trace("Error while handling crash: " + Std.string(e),{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 62, className : "funkin.util.logging.CrashHandler", methodName : "onUncaughtError"}); } }; funkin_util_logging_CrashHandler.onCriticalError = function(message) { try { funkin_util_logging_CrashHandler.criticalErrorSignal.dispatch(message); funkin_util_logging_CrashHandler.displayErrorMessage(message); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); haxe_Log.trace("Error while handling crash: " + Std.string(e),{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 80, className : "funkin.util.logging.CrashHandler", methodName : "onCriticalError"}); haxe_Log.trace("Message: " + message,{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 82, className : "funkin.util.logging.CrashHandler", methodName : "onCriticalError"}); } }; funkin_util_logging_CrashHandler.displayError = function(error) { funkin_util_logging_CrashHandler.displayErrorMessage(funkin_util_logging_CrashHandler.generateErrorMessage(error)); }; funkin_util_logging_CrashHandler.displayErrorMessage = function(message) { lime_app_Application.current.__window.alert(message,"Fatal Uncaught Exception"); }; funkin_util_logging_CrashHandler.generateErrorMessage = function(error) { var errorMessage = ""; var callStack = haxe_CallStack.exceptionStack(true); errorMessage += "" + Std.string(error.error) + "\n"; var _g = 0; while(_g < callStack.length) { var stackItem = callStack[_g]; ++_g; switch(stackItem._hx_index) { case 0: errorMessage += "[Function] "; break; case 1: var m = stackItem.m; errorMessage += "[Module(" + m + ")] "; break; case 2: var innerStackItem = stackItem.s; var file = stackItem.file; var line = stackItem.line; var column = stackItem.column; errorMessage += " in " + file + "#" + line; if(column != null) { errorMessage += ":" + column; } break; case 3: var classname = stackItem.classname; var method = stackItem.method; errorMessage += "[Function(" + classname + "." + method + ")] "; break; case 4: var v = stackItem.v; errorMessage += "[LocalFunction(" + v + ")] "; break; } errorMessage += "\n"; } return errorMessage; }; funkin_util_logging_CrashHandler.queryStatus = function() { var currentStatus = openfl_Lib.get_current().stage.__uncaughtErrorEvents.__enabled; haxe_Log.trace("ERROR HANDLER STATUS: " + (currentStatus == null ? "null" : "" + currentStatus),{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 228, className : "funkin.util.logging.CrashHandler", methodName : "queryStatus"}); haxe_Log.trace("Define: openfl_enable_handle_error is enabled",{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 231, className : "funkin.util.logging.CrashHandler", methodName : "queryStatus"}); haxe_Log.trace("Define: openfl_disable_handle_error is disabled",{ fileName : "source/funkin/util/logging/CrashHandler.hx", lineNumber : 239, className : "funkin.util.logging.CrashHandler", methodName : "queryStatus"}); }; funkin_util_logging_CrashHandler.induceBasicCrash = function() { throw haxe_Exception.thrown("This is an example of an uncaught exception."); }; funkin_util_logging_CrashHandler.induceNullObjectReference = function() { var obj = null; var value = obj.test; }; funkin_util_logging_CrashHandler.induceNullObjectReference2 = function() { var obj = null; var value = obj.test(); }; funkin_util_logging_CrashHandler.induceNullObjectReference3 = function() { var obj = null; var value = obj(); }; funkin_util_logging_CrashHandler.renderMethod = function() { try { switch(flixel_FlxG.renderMethod._hx_index) { case 0: return "DRAW_TILES"; case 1: return "BLITTING"; } } catch( _g ) { var e = haxe_Exception.caught(_g); return "ERROR ON QUERY RENDER METHOD: " + Std.string(e); } }; var funkin_util_logging_Perf = function(label,posInfos) { this.label = label; this.posInfos = posInfos; this.startTime = funkin_util_logging_Perf.current(); }; $hxClasses["funkin.util.logging.Perf"] = funkin_util_logging_Perf; funkin_util_logging_Perf.__name__ = "funkin.util.logging.Perf"; funkin_util_logging_Perf.current = function() { return new Date().getTime() / 1000; }; funkin_util_logging_Perf.prototype = { startTime: null ,label: null ,posInfos: null ,duration: function() { return funkin_util_logging_Perf.current() - this.startTime; } ,durationClean: function() { var round = 100; return Math.floor(this.duration() * funkin_util_Constants.MS_PER_SEC * round) / round; } ,print: function() { var tmp = this.label; var label = tmp != null ? tmp : this.posInfos == null ? "unknown" : "" + this.posInfos.className + "#" + this.posInfos.methodName + "()"; haxe_Log.trace("[PERF] [" + label + "] Took " + this.durationClean() + "ms.",{ fileName : "source/funkin/util/logging/Perf.hx", lineNumber : 74, className : "funkin.util.logging.Perf", methodName : "print"}); } ,__class__: funkin_util_logging_Perf }; var funkin_util_macro_ClassMacro = function() { }; $hxClasses["funkin.util.macro.ClassMacro"] = funkin_util_macro_ClassMacro; funkin_util_macro_ClassMacro.__name__ = "funkin.util.macro.ClassMacro"; var funkin_util_macro_GitCommit = function() { }; $hxClasses["funkin.util.macro.GitCommit"] = funkin_util_macro_GitCommit; funkin_util_macro_GitCommit.__name__ = "funkin.util.macro.GitCommit"; var funkin_util_macro_HaxelibVersions = function() { }; $hxClasses["funkin.util.macro.HaxelibVersions"] = funkin_util_macro_HaxelibVersions; funkin_util_macro_HaxelibVersions.__name__ = "funkin.util.macro.HaxelibVersions"; var funkin_util_macro_InlineMacro = function() { }; $hxClasses["funkin.util.macro.InlineMacro"] = funkin_util_macro_InlineMacro; funkin_util_macro_InlineMacro.__name__ = "funkin.util.macro.InlineMacro"; var funkin_util_macro_MacroUtil = function() { }; $hxClasses["funkin.util.macro.MacroUtil"] = funkin_util_macro_MacroUtil; funkin_util_macro_MacroUtil.__name__ = "funkin.util.macro.MacroUtil"; var funkin_util_plugins_EvacuateDebugPlugin = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.util.plugins.EvacuateDebugPlugin"] = funkin_util_plugins_EvacuateDebugPlugin; funkin_util_plugins_EvacuateDebugPlugin.__name__ = "funkin.util.plugins.EvacuateDebugPlugin"; funkin_util_plugins_EvacuateDebugPlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_EvacuateDebugPlugin()); }; funkin_util_plugins_EvacuateDebugPlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_EvacuateDebugPlugin.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(115,_this.status)) { var nextState = flixel_util_typeLimit_NextState.fromMaker(function() { return new funkin_ui_mainmenu_MainMenuState(); }); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); } ,__class__: funkin_util_plugins_EvacuateDebugPlugin }); var funkin_util_plugins_ForceCrashPlugin = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.util.plugins.ForceCrashPlugin"] = funkin_util_plugins_ForceCrashPlugin; funkin_util_plugins_ForceCrashPlugin.__name__ = "funkin.util.plugins.ForceCrashPlugin"; funkin_util_plugins_ForceCrashPlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_ForceCrashPlugin()); }; funkin_util_plugins_ForceCrashPlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_ForceCrashPlugin.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var tmp; var tmp1; var _this = flixel_FlxG.keys.pressed; if(_this.keyManager.checkStatusUnsafe(17,_this.status)) { var _this = flixel_FlxG.keys.pressed; tmp1 = _this.keyManager.checkStatusUnsafe(16,_this.status); } else { tmp1 = false; } if(tmp1) { var _this = flixel_FlxG.keys.pressed; tmp = _this.keyManager.checkStatusUnsafe(76,_this.status); } else { tmp = false; } if(tmp) { throw haxe_Exception.thrown("DEBUG: Crashing the game via debug keybind!"); } } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); } ,__class__: funkin_util_plugins_ForceCrashPlugin }); var funkin_util_plugins_MemoryGCPlugin = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.util.plugins.MemoryGCPlugin"] = funkin_util_plugins_MemoryGCPlugin; funkin_util_plugins_MemoryGCPlugin.__name__ = "funkin.util.plugins.MemoryGCPlugin"; funkin_util_plugins_MemoryGCPlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_MemoryGCPlugin()); }; funkin_util_plugins_MemoryGCPlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_MemoryGCPlugin.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(45,_this.status)) { var perfStart = funkin_util_TimerUtil.start(); funkin_util_MemoryUtil.collect(true); haxe_Log.trace("Memory GC took: " + funkin_util_TimerUtil.seconds(perfStart),{ fileName : "source/funkin/util/plugins/MemoryGCPlugin.hx", lineNumber : 29, className : "funkin.util.plugins.MemoryGCPlugin", methodName : "update"}); } } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); } ,__class__: funkin_util_plugins_MemoryGCPlugin }); var funkin_util_plugins_ReloadAssetsDebugPlugin = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.util.plugins.ReloadAssetsDebugPlugin"] = funkin_util_plugins_ReloadAssetsDebugPlugin; funkin_util_plugins_ReloadAssetsDebugPlugin.__name__ = "funkin.util.plugins.ReloadAssetsDebugPlugin"; funkin_util_plugins_ReloadAssetsDebugPlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_ReloadAssetsDebugPlugin()); }; funkin_util_plugins_ReloadAssetsDebugPlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_ReloadAssetsDebugPlugin.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var tmp; var _this = flixel_FlxG.keys.justPressed; if(_this.keyManager.checkStatusUnsafe(53,_this.status)) { var _this = flixel_FlxG.keys.pressed; tmp = _this.keyManager.checkStatusUnsafe(16,_this.status); } else { tmp = false; } if(tmp) { funkin_modding_PolymodHandler.forceReloadAssets(); var nextState = flixel_util_typeLimit_NextState.fromMaker(flixel_FlxG.game._state._constructor); var stateOnCall = flixel_FlxG.game._state; flixel_FlxG.game._state.startOutro(function() { if(flixel_FlxG.game._state == stateOnCall) { flixel_FlxG.game._nextState = nextState; } else { flixel_FlxG.log.advanced("`onOutroComplete` was called after the state was switched. This will be ignored",flixel_system_debug_log_LogStyle.WARNING,true); } }); } } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); } ,__class__: funkin_util_plugins_ReloadAssetsDebugPlugin }); var funkin_util_plugins_ScreenshotPlugin = function(params) { this.CAMERA_FLASH_DURATION = 0.25; flixel_FlxBasic.call(this); this._hotkeys = params.hotkeys; var tmp = params.region; this._region = tmp != null ? tmp : null; this._shouldHideMouse = params.shouldHideMouse; this._flashColor = params.flashColor; this._fancyPreview = params.fancyPreview; this.onPreScreenshot = new flixel_util__$FlxSignal_FlxSignal0(); this.onPostScreenshot = new flixel_util__$FlxSignal_FlxSignal1(); }; $hxClasses["funkin.util.plugins.ScreenshotPlugin"] = funkin_util_plugins_ScreenshotPlugin; funkin_util_plugins_ScreenshotPlugin.__name__ = "funkin.util.plugins.ScreenshotPlugin"; funkin_util_plugins_ScreenshotPlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_ScreenshotPlugin({ flashColor : funkin_Preferences.get_flashingLights() ? -1 : null, hotkeys : [114], shouldHideMouse : false, fancyPreview : true})); }; funkin_util_plugins_ScreenshotPlugin.getCurrentState = function() { var state = flixel_FlxG.game._state; while(state.subState != null) state = state.subState; return state; }; funkin_util_plugins_ScreenshotPlugin.getScreenshotPath = function() { return "" + funkin_util_plugins_ScreenshotPlugin.SCREENSHOT_FOLDER + "/screenshot-" + funkin_util_DateUtil.generateTimestamp() + ".png"; }; funkin_util_plugins_ScreenshotPlugin.makeScreenshotPath = function() { funkin_util_FileUtil.createDirIfNotExists(funkin_util_plugins_ScreenshotPlugin.SCREENSHOT_FOLDER); }; funkin_util_plugins_ScreenshotPlugin.encodePNG = function(bitmap) { return bitmap.get_bitmapData().encode(bitmap.get_bitmapData().rect,new openfl_display_PNGEncoderOptions()); }; funkin_util_plugins_ScreenshotPlugin.saveScreenshot = function(bitmap) { funkin_util_plugins_ScreenshotPlugin.makeScreenshotPath(); var targetPath = funkin_util_plugins_ScreenshotPlugin.getScreenshotPath(); var pngData = funkin_util_plugins_ScreenshotPlugin.encodePNG(bitmap); if(pngData == null) { haxe_Log.trace("[WARN] Failed to encode PNG data.",{ fileName : "source/funkin/util/plugins/ScreenshotPlugin.hx", lineNumber : 314, className : "funkin.util.plugins.ScreenshotPlugin", methodName : "saveScreenshot"}); return; } else { haxe_Log.trace("Saving screenshot to: " + targetPath,{ fileName : "source/funkin/util/plugins/ScreenshotPlugin.hx", lineNumber : 319, className : "funkin.util.plugins.ScreenshotPlugin", methodName : "saveScreenshot"}); funkin_util_FileUtil.writeBytesToPath(targetPath,openfl_utils_ByteArray.toLimeBytes(pngData)); } }; funkin_util_plugins_ScreenshotPlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_ScreenshotPlugin.prototype = $extend(flixel_FlxBasic.prototype,{ _hotkeys: null ,_region: null ,_shouldHideMouse: null ,_flashColor: null ,_fancyPreview: null ,onPreScreenshot: null ,onPostScreenshot: null ,update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); if(this.hasPressedScreenshot()) { this.capture(); } } ,hasPressedScreenshot: function() { return funkin_PlayerSettings.player1.controls._window_screenshot.check(); } ,updatePreferences: function() { this._flashColor = funkin_Preferences.get_flashingLights() ? -1 : null; } ,defineCaptureRegion: function(x,y,width,height) { this._region = new openfl_geom_Rectangle(x,y,width,height); } ,capture: function() { this.onPreScreenshot.dispatch(); var captureRegion = this._region != null ? this._region : new openfl_geom_Rectangle(0,0,openfl_Lib.get_current().stage.stageWidth,openfl_Lib.get_current().stage.stageHeight); var wasMouseHidden = false; if(this._shouldHideMouse && flixel_FlxG.mouse.visible) { wasMouseHidden = true; flixel_FlxG.mouse.set_visible(false); funkin_input_Cursor.set_cursorMode(null); } var bitmap = new openfl_display_Bitmap(openfl_display_BitmapData.fromImage(openfl_Lib.get_current().stage.window.readPixels())); if(wasMouseHidden) { flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); } funkin_util_plugins_ScreenshotPlugin.saveScreenshot(bitmap); this.showCaptureFeedback(); if(this._fancyPreview) { this.showFancyPreview(bitmap); } this.onPostScreenshot.dispatch(bitmap); } ,CAMERA_FLASH_DURATION: null ,showCaptureFeedback: function() { var flashBitmap = new openfl_display_Bitmap(new openfl_display_BitmapData(openfl_Lib.get_current().stage.get_width() | 0,openfl_Lib.get_current().stage.get_height() | 0,false,-1)); var flashSpr = new openfl_display_Sprite(); flashSpr.addChild(flashBitmap); openfl_Lib.get_current().stage.addChild(flashSpr); flixel_tweens_FlxTween.tween(flashSpr,{ alpha : 0},0.15,{ ease : flixel_tweens_FlxEase.quadOut, onComplete : function(_) { openfl_Lib.get_current().stage.removeChild(flashSpr); }}); funkin_audio_FunkinSound.playOnce(funkin_Paths.sound("screenshot"),1.0); } ,showFancyPreview: function(bitmap) { var _gthis = this; var wasMouseHidden = false; if(!flixel_FlxG.mouse.visible) { wasMouseHidden = true; flixel_FlxG.mouse.set_visible(true); funkin_input_Cursor.set_cursorMode(funkin_input_CursorMode.Default); } var changingAlpha = false; var onHover = function(e) { if(!changingAlpha) { var this1 = e.target; if(this1 != null) { Reflect.setProperty(this1,"alpha",0.6); } } }; var onHoverOut = function(e) { if(!changingAlpha) { var this1 = e.target; if(this1 != null) { Reflect.setProperty(this1,"alpha",1); } } }; var scale = 0.25; var w = bitmap.get_bitmapData().width * scale | 0; var h = bitmap.get_bitmapData().height * scale | 0; var preview = new openfl_display_BitmapData(w,h,true); var matrix = new openfl_geom_Matrix(); matrix.scale(scale,scale); preview.draw(bitmap.get_bitmapData(),matrix); var previewSprite = new openfl_display_Sprite(); previewSprite.set_buttonMode(true); previewSprite.addEventListener("mouseDown",$bind(this,this.openScreenshotsFolder)); previewSprite.addEventListener("mouseOver",onHover); previewSprite.addEventListener("mouseOut",onHoverOut); openfl_Lib.get_current().stage.addChild(previewSprite); previewSprite.set_alpha(0.0); previewSprite.set_y(previewSprite.get_y() - 10); var previewBitmap = new openfl_display_Bitmap(preview); previewSprite.addChild(previewBitmap); new flixel_util_FlxTimer().start(funkin_util_plugins_ScreenshotPlugin.PREVIEW_INITIAL_DELAY,function(_) { changingAlpha = true; flixel_tweens_FlxTween.tween(previewSprite,{ alpha : 1.0, y : 0},funkin_util_plugins_ScreenshotPlugin.PREVIEW_FADE_IN_DURATION,{ ease : flixel_tweens_FlxEase.quartOut, onComplete : function(_) { changingAlpha = false; new flixel_util_FlxTimer().start(funkin_util_plugins_ScreenshotPlugin.PREVIEW_FADE_OUT_DELAY,function(_) { changingAlpha = true; flixel_tweens_FlxTween.tween(previewSprite,{ alpha : 0.0, y : 10},funkin_util_plugins_ScreenshotPlugin.PREVIEW_FADE_OUT_DURATION,{ ease : flixel_tweens_FlxEase.quartInOut, onComplete : function(_) { if(wasMouseHidden) { flixel_FlxG.mouse.set_visible(false); funkin_input_Cursor.set_cursorMode(null); } previewSprite.removeEventListener("mouseDown",$bind(_gthis,_gthis.openScreenshotsFolder)); previewSprite.removeEventListener("mouseOver",onHover); previewSprite.removeEventListener("mouseOut",onHoverOut); openfl_Lib.get_current().stage.removeChild(previewSprite); }}); }); }}); }); } ,openScreenshotsFolder: function(e) { funkin_util_FileUtil.openFolder(funkin_util_plugins_ScreenshotPlugin.SCREENSHOT_FOLDER); } ,__class__: funkin_util_plugins_ScreenshotPlugin }); var funkin_util_plugins_VolumePlugin = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.util.plugins.VolumePlugin"] = funkin_util_plugins_VolumePlugin; funkin_util_plugins_VolumePlugin.__name__ = "funkin.util.plugins.VolumePlugin"; funkin_util_plugins_VolumePlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_VolumePlugin()); }; funkin_util_plugins_VolumePlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_VolumePlugin.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var tmp = haxe_ui_focus_FocusManager.get_instance(); var isHaxeUIFocused = (tmp != null ? tmp.get_focus() : null) != null; if(!isHaxeUIFocused) { if(funkin_PlayerSettings.player1.controls._volume_mute.check()) { flixel_FlxG.sound.toggleMuted(); } else if(funkin_PlayerSettings.player1.controls._volume_up.check()) { flixel_FlxG.sound.changeVolume(0.1); } else if(funkin_PlayerSettings.player1.controls._volume_down.check()) { flixel_FlxG.sound.changeVolume(-0.1); } } } ,__class__: funkin_util_plugins_VolumePlugin }); var funkin_util_plugins_WatchPlugin = function() { flixel_FlxBasic.call(this); }; $hxClasses["funkin.util.plugins.WatchPlugin"] = funkin_util_plugins_WatchPlugin; funkin_util_plugins_WatchPlugin.__name__ = "funkin.util.plugins.WatchPlugin"; funkin_util_plugins_WatchPlugin.initialize = function() { flixel_FlxG.plugins.addPlugin(new funkin_util_plugins_WatchPlugin()); }; funkin_util_plugins_WatchPlugin.__super__ = flixel_FlxBasic; funkin_util_plugins_WatchPlugin.prototype = $extend(flixel_FlxBasic.prototype,{ update: function(elapsed) { flixel_FlxBasic.prototype.update.call(this,elapsed); var c = js_Boot.getClass(flixel_FlxG.game._state); var stateClassName = c.__name__; var subStateClassNames = []; var subState = flixel_FlxG.game._state.subState; while(subState != null) { var c = js_Boot.getClass(subState); subStateClassNames.push(c.__name__); subState = subState.subState; } var _this = flixel_FlxG.watch; var value = subStateClassNames.join(", "); var _this = flixel_FlxG.watch; var value = funkin_Conductor.get_instance().songPosition; var _this = flixel_FlxG.watch; var value = funkin_Conductor.get_instance().songPosition + funkin_Conductor.get_instance().instrumentalOffset; var _this = flixel_FlxG.watch; var value = funkin_Conductor.get_instance().get_bpm(); var _this = flixel_FlxG.watch; var value = funkin_Conductor.get_instance().currentMeasureTime; var _this = flixel_FlxG.watch; var value = funkin_Conductor.get_instance().currentBeatTime; var _this = flixel_FlxG.watch; var value = funkin_Conductor.get_instance().currentStepTime; } ,destroy: function() { flixel_FlxBasic.prototype.destroy.call(this); } ,__class__: funkin_util_plugins_WatchPlugin }); var funkin_util_tools_ArraySortTools = function() { }; $hxClasses["funkin.util.tools.ArraySortTools"] = funkin_util_tools_ArraySortTools; funkin_util_tools_ArraySortTools.__name__ = "funkin.util.tools.ArraySortTools"; funkin_util_tools_ArraySortTools.mergeSort = function(input,compare) { if(input == null || input.length <= 1) { return; } if(compare == null) { throw haxe_Exception.thrown("No comparison function provided."); } haxe_ds_ArraySort.sort(input,compare); }; funkin_util_tools_ArraySortTools.quickSort = function(input,compare) { if(input == null || input.length <= 1) { return; } if(compare == null) { throw haxe_Exception.thrown("No comparison function provided."); } funkin_util_tools_ArraySortTools.quickSortInner(input,0,input.length - 1,compare); }; funkin_util_tools_ArraySortTools.quickSortInner = function(input,low,high,compare) { while(low < high) { var pivot = funkin_util_tools_ArraySortTools.quickSortPartition(input,low,high,compare); if(pivot - low <= high - (pivot + 1)) { funkin_util_tools_ArraySortTools.quickSortInner(input,low,pivot,compare); low = pivot + 1; } else { funkin_util_tools_ArraySortTools.quickSortInner(input,pivot + 1,high,compare); high = pivot; } } }; funkin_util_tools_ArraySortTools.quickSortPartition = function(input,low,high,compare) { var pivot = input[low]; var i = low - 1; var j = high + 1; while(true) { do ++i; while(compare(input[i],pivot) < 0); do --j; while(compare(input[j],pivot) > 0); if(i >= j) { return j; } var temp = input[i]; input[i] = input[j]; input[j] = temp; } }; funkin_util_tools_ArraySortTools.insertionSort = function(input,compare) { if(input == null || input.length <= 1) { return; } if(compare == null) { throw haxe_Exception.thrown("No comparison function provided."); } var _g = 1; var _g1 = input.length; while(_g < _g1) { var i = _g++; var current = input[i]; var j = i - 1; while(j >= 0 && compare(input[j],current) > 0) { input[j + 1] = input[j]; --j; } input[j + 1] = current; } }; var funkin_util_tools_ArrayTools = function() { }; $hxClasses["funkin.util.tools.ArrayTools"] = funkin_util_tools_ArrayTools; funkin_util_tools_ArrayTools.__name__ = "funkin.util.tools.ArrayTools"; funkin_util_tools_ArrayTools.pushUnique = function(input,element) { if(input.indexOf(element) != -1) { return false; } input.push(element); return true; }; funkin_util_tools_ArrayTools.clear = function(array) { while(array.length > 0) array.pop(); }; funkin_util_tools_ArrayTools.clone = function(array) { var _g = []; var _g1 = 0; while(_g1 < array.length) { var element = array[_g1]; ++_g1; _g.push(element); } return _g; }; funkin_util_tools_ArrayTools.deepClone = function(array) { var _g = []; var _g1 = 0; while(_g1 < array.length) { var element = array[_g1]; ++_g1; _g.push(element.clone()); } return _g; }; funkin_util_tools_ArrayTools.isEqualUnordered = function(a,b) { if(a.length != b.length) { return false; } var _g = 0; while(_g < a.length) { var element = a[_g]; ++_g; if(b.indexOf(element) == -1) { return false; } } var _g = 0; while(_g < b.length) { var element = b[_g]; ++_g; if(a.indexOf(element) == -1) { return false; } } return true; }; funkin_util_tools_ArrayTools.isSuperset = function(superset,subset) { if(subset.length == 0) { return true; } if(subset.length > superset.length) { return false; } var _g = 0; while(_g < subset.length) { var element = subset[_g]; ++_g; if(superset.indexOf(element) == -1) { return false; } } return true; }; funkin_util_tools_ArrayTools.isSubset = function(subset,superset) { return funkin_util_tools_ArrayTools.isSuperset(superset,subset); }; var funkin_util_tools_FloatTools = function() { }; $hxClasses["funkin.util.tools.FloatTools"] = funkin_util_tools_FloatTools; funkin_util_tools_FloatTools.__name__ = "funkin.util.tools.FloatTools"; funkin_util_tools_FloatTools.clamp = function(value,min,max) { return Math.max(min,Math.min(max,value)); }; funkin_util_tools_FloatTools.round = function(number,precision) { if(precision == null) { precision = 2; } number *= Math.pow(10,precision); return Math.round(number) / Math.pow(10,precision); }; var funkin_util_tools_Int64Tools = function() { }; $hxClasses["funkin.util.tools.Int64Tools"] = funkin_util_tools_Int64Tools; funkin_util_tools_Int64Tools.__name__ = "funkin.util.tools.Int64Tools"; funkin_util_tools_Int64Tools.fromFloat = function(f) { var h = f / 4294967296.0 | 0; var l = f | 0; return new haxe__$Int64__$_$_$Int64(h,l); }; funkin_util_tools_Int64Tools.toFloat = function(i) { var f = i.low; if(f < 0) { f += 4294967296.0; } return i.high * 4294967296.0 + f; }; funkin_util_tools_Int64Tools.isToIntSafe = function(i) { return i.high != i.low >> 31; }; funkin_util_tools_Int64Tools.toIntSafe = function(i) { try { if(i.high != i.low >> 31) { throw haxe_Exception.thrown("Overflow"); } return i.low; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; throw haxe_Exception.thrown("Could not represent value \"" + haxe_Int64.toString(i) + "\" as an integer."); } }; var funkin_util_tools_IntTools = function() { }; $hxClasses["funkin.util.tools.IntTools"] = funkin_util_tools_IntTools; funkin_util_tools_IntTools.__name__ = "funkin.util.tools.IntTools"; funkin_util_tools_IntTools.clamp = function(value,min,max) { if(value < min) { return min; } else if(value > max) { return max; } else { return value; } }; var funkin_util_tools_IteratorTools = function() { }; $hxClasses["funkin.util.tools.IteratorTools"] = funkin_util_tools_IteratorTools; funkin_util_tools_IteratorTools.__name__ = "funkin.util.tools.IteratorTools"; funkin_util_tools_IteratorTools.array = function(iterator) { var _g = []; var i = iterator; while(i.hasNext()) { var i1 = i.next(); _g.push(i1); } return _g; }; funkin_util_tools_IteratorTools.count = function(iterator,predicate) { var n = 0; if(predicate == null) { var _ = iterator; while(_.hasNext()) { var _1 = _.next(); ++n; } } else { var x = iterator; while(x.hasNext()) { var x1 = x.next(); if(predicate(x1)) { ++n; } } } return n; }; var funkin_util_tools_MapTools = function() { }; $hxClasses["funkin.util.tools.MapTools"] = funkin_util_tools_MapTools; funkin_util_tools_MapTools.__name__ = "funkin.util.tools.MapTools"; funkin_util_tools_MapTools.size = function(map) { return funkin_util_tools_IteratorTools.array(map.keys()).length; }; funkin_util_tools_MapTools.values = function(map) { var _g = []; var i = map.iterator(); while(i.hasNext()) { var i1 = i.next(); _g.push(i1); } return _g; }; funkin_util_tools_MapTools.clone = function(map) { return map.copy(); }; funkin_util_tools_MapTools.merge = function(a,b) { var result = a.copy(); var pair = b.keyValueIterator(); while(pair.hasNext()) { var pair1 = pair.next(); result.set(pair1.key,pair1.value); } return result; }; funkin_util_tools_MapTools.deepClone = function(map) { throw haxe_Exception.thrown("Not implemented"); }; funkin_util_tools_MapTools.keyValues = function(map) { return funkin_util_tools_IteratorTools.array(map.keys()); }; var funkin_util_tools_SongEventDataArrayTools = function() { }; $hxClasses["funkin.util.tools.SongEventDataArrayTools"] = funkin_util_tools_SongEventDataArrayTools; funkin_util_tools_SongEventDataArrayTools.__name__ = "funkin.util.tools.SongEventDataArrayTools"; funkin_util_tools_SongEventDataArrayTools.fastIndexOf = function(input,note) { var lowIndex = 0; var highIndex = input.length - 1; var midIndex; var midNote; while(lowIndex <= highIndex) { midIndex = (lowIndex + highIndex) / 2 | 0; midNote = input[midIndex]; if(midNote.time < note.time) { lowIndex = midIndex + 1; } else if(midNote.time > note.time) { highIndex = midIndex - 1; } else { return midIndex; } } return -1; }; funkin_util_tools_SongEventDataArrayTools.fastContains = function(input,note) { return funkin_util_tools_SongEventDataArrayTools.fastIndexOf(input,note) != -1; }; var funkin_util_tools_SongNoteDataArrayTools = function() { }; $hxClasses["funkin.util.tools.SongNoteDataArrayTools"] = funkin_util_tools_SongNoteDataArrayTools; funkin_util_tools_SongNoteDataArrayTools.__name__ = "funkin.util.tools.SongNoteDataArrayTools"; funkin_util_tools_SongNoteDataArrayTools.fastIndexOf = function(input,note) { if(input.length == 0) { return -1; } if(note.time < input[0].time || note.time > input[input.length - 1].time) { return -1; } var lowIndex = 0; var highIndex = input.length - 1; while(lowIndex <= highIndex) { var midIndex = (lowIndex + highIndex) / 2 | 0; var midNote = input[midIndex]; if(midNote.time < note.time) { lowIndex = midIndex + 1; } else if(midNote.time > note.time) { highIndex = midIndex - 1; } else if(funkin_data_song_SongNoteData.op_equals(midNote,note)) { return midIndex; } else { --highIndex; } } return -1; }; funkin_util_tools_SongNoteDataArrayTools.fastContains = function(input,note) { return funkin_util_tools_SongNoteDataArrayTools.fastIndexOf(input,note) != -1; }; var funkin_util_tools_StringTools = function() { }; $hxClasses["funkin.util.tools.StringTools"] = funkin_util_tools_StringTools; funkin_util_tools_StringTools.__name__ = "funkin.util.tools.StringTools"; funkin_util_tools_StringTools.toTitleCase = function(value) { var words = value.split(" "); var result = ""; var _g = 0; var _g1 = words.length; while(_g < _g1) { var i = _g++; var word = words[i]; result += word.charAt(0).toUpperCase() + HxOverrides.substr(word,1,null).toLowerCase(); if(i < words.length - 1) { result += " "; } } return result; }; funkin_util_tools_StringTools.stripPrefix = function(value,prefix) { if(StringTools.startsWith(value,prefix)) { return HxOverrides.substr(value,prefix.length,null); } return value; }; funkin_util_tools_StringTools.stripSuffix = function(value,suffix) { if(StringTools.endsWith(value,suffix)) { return HxOverrides.substr(value,0,value.length - suffix.length); } return value; }; funkin_util_tools_StringTools.toLowerKebabCase = function(value) { return StringTools.replace(value.toLowerCase()," ","-"); }; funkin_util_tools_StringTools.toUpperKebabCase = function(value) { return StringTools.replace(value.toUpperCase()," ","-"); }; funkin_util_tools_StringTools.sanitize = function(value) { return value.replace(funkin_util_tools_StringTools.SANTIZE_REGEX.r,""); }; funkin_util_tools_StringTools.parseJSON = function(value) { return funkin_util_SerializerUtil.fromJSON(value); }; var funkin_vis_AudioBuffer = function(data,sampleRate) { this.data = data; this.sampleRate = sampleRate; }; $hxClasses["funkin.vis.AudioBuffer"] = funkin_vis_AudioBuffer; funkin_vis_AudioBuffer.__name__ = "funkin.vis.AudioBuffer"; funkin_vis_AudioBuffer.prototype = { data: null ,sampleRate: null ,__class__: funkin_vis_AudioBuffer }; var funkin_vis_AudioClip = function() { }; $hxClasses["funkin.vis.AudioClip"] = funkin_vis_AudioClip; funkin_vis_AudioClip.__name__ = "funkin.vis.AudioClip"; funkin_vis_AudioClip.__isInterface__ = true; funkin_vis_AudioClip.prototype = { get_currentFrame: null ,audioBuffer: null ,source: null ,__class__: funkin_vis_AudioClip ,__properties__: {get_currentFrame:"get_currentFrame"} }; var funkin_vis_LogHelper = function() { }; $hxClasses["funkin.vis.LogHelper"] = funkin_vis_LogHelper; funkin_vis_LogHelper.__name__ = "funkin.vis.LogHelper"; funkin_vis_LogHelper.log2 = function(x) { return Math.log(x) / Math.log(2); }; funkin_vis_LogHelper.log10 = function(x) { return Math.log(x) / Math.log(10); }; var funkin_vis_Scaling = function() { }; $hxClasses["funkin.vis.Scaling"] = funkin_vis_Scaling; funkin_vis_Scaling.__name__ = "funkin.vis.Scaling"; funkin_vis_Scaling.freqScaleMel = function(freq) { return funkin_vis_LogHelper.log2(1 + freq / 700); }; funkin_vis_Scaling.invFreqScaleMel = function(x) { return 700 * Math.pow(2,x - 1); }; funkin_vis_Scaling.freqScaleBark = function(freq) { return 26.81 * freq / (1960 + freq) - 0.53; }; funkin_vis_Scaling.invFreqScaleBark = function(x) { return 1960 / (26.81 / (x + .53) - 1); }; funkin_vis_Scaling.freqScaleLog = function(freq) { return funkin_vis_LogHelper.log10(1 + freq / 1000); }; funkin_vis_Scaling.invFreqScaleLog = function(x) { return 1000 * Math.pow(10,x - 1); }; var funkin_vis__$internal_html5_AnalyzerNode = function(audioClip) { this.fftSize = 2048; this.minDecibels = -100; this.maxDecibels = -30; haxe_Log.trace("Loading audioClip",{ fileName : "funkin/vis/_internal/html5/AnalyzerNode.hx", lineNumber : 25, className : "funkin.vis._internal.html5.AnalyzerNode", methodName : "new"}); this.analyzer = new AnalyserNode(audioClip.source._sounds[0]._node.context); audioClip.source._sounds[0]._node.connect(this.analyzer); this.getFloatFrequencyData(); }; $hxClasses["funkin.vis._internal.html5.AnalyzerNode"] = funkin_vis__$internal_html5_AnalyzerNode; funkin_vis__$internal_html5_AnalyzerNode.__name__ = "funkin.vis._internal.html5.AnalyzerNode"; funkin_vis__$internal_html5_AnalyzerNode.prototype = { analyzer: null ,maxDecibels: null ,minDecibels: null ,fftSize: null ,getFloatFrequencyData: function() { var array = new Float32Array(this.analyzer.frequencyBinCount); this.analyzer.fftSize = this.fftSize; this.analyzer.minDecibels = this.minDecibels; this.analyzer.maxDecibels = this.maxDecibels; this.analyzer.getFloatFrequencyData(array); return array; } ,__class__: funkin_vis__$internal_html5_AnalyzerNode }; var funkin_vis_audioclip_frontends_LimeAudioClip = function(audioSource) { var data = audioSource.buffer.data; var sampleRate = audioSource.buffer.get_src()._sounds[0]._node.context.sampleRate; this.audioBuffer = new funkin_vis_AudioBuffer(data,sampleRate); this.source = audioSource.buffer.get_src(); }; $hxClasses["funkin.vis.audioclip.frontends.LimeAudioClip"] = funkin_vis_audioclip_frontends_LimeAudioClip; funkin_vis_audioclip_frontends_LimeAudioClip.__name__ = "funkin.vis.audioclip.frontends.LimeAudioClip"; funkin_vis_audioclip_frontends_LimeAudioClip.__interfaces__ = [funkin_vis_AudioClip]; funkin_vis_audioclip_frontends_LimeAudioClip.prototype = { audioBuffer: null ,source: null ,get_currentFrame: function() { var dataLength = 0; dataLength = this.source.length; return flixel_math_FlxMath.remapToRange(flixel_FlxG.sound.music._time,0,flixel_FlxG.sound.music._length,0,dataLength) | 0; } ,__class__: funkin_vis_audioclip_frontends_LimeAudioClip ,__properties__: {get_currentFrame:"get_currentFrame"} }; var funkin_vis_dsp_Complex = {}; funkin_vis_dsp_Complex.__properties__ = {get_magnitude:"get_magnitude",get_angle:"get_angle"}; funkin_vis_dsp_Complex._new = function(real,imag) { return { real : real, imag : imag}; }; funkin_vis_dsp_Complex.fromReal = function(r) { return { real : r, imag : 0}; }; funkin_vis_dsp_Complex.get_angle = function(this1) { return Math.atan2(this1.imag,this1.real); }; funkin_vis_dsp_Complex.get_magnitude = function(this1) { return Math.sqrt(this1.real * this1.real + this1.imag * this1.imag); }; funkin_vis_dsp_Complex.add = function(this1,rhs) { return { real : this1.real + rhs.real, imag : this1.imag + rhs.imag}; }; funkin_vis_dsp_Complex.sub = function(this1,rhs) { return { real : this1.real - rhs.real, imag : this1.imag - rhs.imag}; }; funkin_vis_dsp_Complex.mult = function(this1,rhs) { return { real : this1.real * rhs.real - this1.imag * rhs.imag, imag : this1.real * rhs.imag + this1.imag * rhs.real}; }; funkin_vis_dsp_Complex.conj = function(this1) { return { real : this1.real, imag : -this1.imag}; }; funkin_vis_dsp_Complex.scale = function(this1,k) { return { real : this1.real * k, imag : this1.imag * k}; }; funkin_vis_dsp_Complex.copy = function(this1) { return { real : this1.real, imag : this1.imag}; }; funkin_vis_dsp_Complex.exp = function(w) { return { real : Math.cos(w), imag : Math.sin(w)}; }; var funkin_vis_dsp_FFT = function() { }; $hxClasses["funkin.vis.dsp.FFT"] = funkin_vis_dsp_FFT; funkin_vis_dsp_FFT.__name__ = "funkin.vis.dsp.FFT"; funkin_vis_dsp_FFT.fft = function(input) { return funkin_vis_dsp_FFT.do_fft(input,false); }; funkin_vis_dsp_FFT.rfft = function(input) { var f = funkin_vis_dsp_Complex.fromReal; var result = new Array(input.length); var _g = 0; var _g1 = input.length; while(_g < _g1) { var i = _g++; result[i] = f(input[i]); } var s = funkin_vis_dsp_FFT.fft(result); return s.slice(0,(s.length / 2 | 0) + 1); }; funkin_vis_dsp_FFT.ifft = function(input) { return funkin_vis_dsp_FFT.do_fft(input,true); }; funkin_vis_dsp_FFT.do_fft = function(input,inverse) { var n = funkin_vis_dsp_FFT.nextPow2(input.length); var _g = []; var _g1 = 0; var _g2 = n; while(_g1 < _g2) { var i = _g1++; if(i < input.length) { _g.push(input[i]); } else { _g.push(funkin_vis_dsp_Complex.zero); } } var ts = _g; var _g = []; var _g1 = 0; var _g2 = n; while(_g1 < _g2) { var _ = _g1++; _g.push(funkin_vis_dsp_Complex.zero); } var fs = _g; var tmp; if(inverse) { var tmp1 = funkin_vis_dsp_FFT.twiddleFactorsInversed; tmp = (tmp1 != null ? tmp1.length : null) != n; } else { tmp = false; } if(tmp) { funkin_vis_dsp_FFT.precomputeTwiddleFactors(n,true); } else { var tmp; if(!inverse) { var tmp1 = funkin_vis_dsp_FFT.twiddleFactors; tmp = (tmp1 != null ? tmp1.length : null) != n; } else { tmp = false; } if(tmp) { funkin_vis_dsp_FFT.precomputeTwiddleFactors(n,false); } } funkin_vis_dsp_FFT.ditfft4(ts,0,fs,0,n,1,inverse); if(inverse) { var result = new Array(fs.length); var _g = 0; var _g1 = fs.length; while(_g < _g1) { var i = _g++; var z = fs[i]; var k = 1 / n; result[i] = { real : z.real * k, imag : z.imag * k}; } return result; } else { return fs; } }; funkin_vis_dsp_FFT.ditfft2 = function(time,t,freq,f,n,step,inverse) { if(n == 1) { var this1 = time[t]; freq[f] = { real : this1.real, imag : this1.imag}; } else { var halfLen = n / 2 | 0; funkin_vis_dsp_FFT.ditfft2(time,t,freq,f,halfLen,step * 2,inverse); funkin_vis_dsp_FFT.ditfft2(time,t + step,freq,f + halfLen,halfLen,step * 2,inverse); var _g = 0; var _g1 = halfLen; while(_g < _g1) { var k = _g++; var twiddle = inverse ? funkin_vis_dsp_FFT.twiddleFactorsInversed[k] : funkin_vis_dsp_FFT.twiddleFactors[k]; var this1 = freq[f + k]; var even_real = this1.real; var even_imag = this1.imag; var this2 = freq[f + k + halfLen]; var odd_real = this2.real; var odd_imag = this2.imag; var rhs_real = twiddle.real * odd_real - twiddle.imag * odd_imag; var rhs_imag = twiddle.real * odd_imag + twiddle.imag * odd_real; freq[f + k] = { real : even_real + rhs_real, imag : even_imag + rhs_imag}; var rhs_real1 = twiddle.real * odd_real - twiddle.imag * odd_imag; var rhs_imag1 = twiddle.real * odd_imag + twiddle.imag * odd_real; freq[f + k + halfLen] = { real : even_real - rhs_real1, imag : even_imag - rhs_imag1}; } } }; funkin_vis_dsp_FFT.ditfft4 = function(time,t,freq,f,n,step,inverse) { if(n == 4) { var _g = 0; var _g1 = n; while(_g < _g1) { var k = _g++; var sum = funkin_vis_dsp_Complex.zero; var w = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle_real = Math.cos(w); var twiddle_imag = Math.sin(w); var this1 = time[t + 0 * step]; var rhs_real = this1.real * twiddle_real - this1.imag * twiddle_imag; var rhs_imag = this1.real * twiddle_imag + this1.imag * twiddle_real; sum = { real : sum.real + rhs_real, imag : sum.imag + rhs_imag}; var w1 = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle_real1 = Math.cos(w1); var twiddle_imag1 = Math.sin(w1); var this2 = time[t + step]; var rhs_real1 = this2.real * twiddle_real1 - this2.imag * twiddle_imag1; var rhs_imag1 = this2.real * twiddle_imag1 + this2.imag * twiddle_real1; sum = { real : sum.real + rhs_real1, imag : sum.imag + rhs_imag1}; var w2 = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle_real2 = Math.cos(w2); var twiddle_imag2 = Math.sin(w2); var this3 = time[t + 2 * step]; var rhs_real2 = this3.real * twiddle_real2 - this3.imag * twiddle_imag2; var rhs_imag2 = this3.real * twiddle_imag2 + this3.imag * twiddle_real2; sum = { real : sum.real + rhs_real2, imag : sum.imag + rhs_imag2}; var w3 = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle_real3 = Math.cos(w3); var twiddle_imag3 = Math.sin(w3); var this4 = time[t + 3 * step]; var rhs_real3 = this4.real * twiddle_real3 - this4.imag * twiddle_imag3; var rhs_imag3 = this4.real * twiddle_imag3 + this4.imag * twiddle_real3; sum = { real : sum.real + rhs_real3, imag : sum.imag + rhs_imag3}; freq[f + k] = sum; } } else { var quarterLen = n / 4 | 0; funkin_vis_dsp_FFT.ditfft4(time,t,freq,f,quarterLen,step * 4,inverse); funkin_vis_dsp_FFT.ditfft4(time,t + step,freq,f + quarterLen,quarterLen,step * 4,inverse); funkin_vis_dsp_FFT.ditfft4(time,t + 2 * step,freq,f + 2 * quarterLen,quarterLen,step * 4,inverse); funkin_vis_dsp_FFT.ditfft4(time,t + 3 * step,freq,f + 3 * quarterLen,quarterLen,step * 4,inverse); var _g = 0; var _g1 = quarterLen; while(_g < _g1) { var k = _g++; var w = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle0_real = Math.cos(w); var twiddle0_imag = Math.sin(w); var w1 = (inverse ? 1 : -1) * 2 * Math.PI * k / n; var twiddle1_real = Math.cos(w1); var twiddle1_imag = Math.sin(w1); var w2 = (inverse ? 1 : -1) * 2 * Math.PI * k * 2 / n; var twiddle2_real = Math.cos(w2); var twiddle2_imag = Math.sin(w2); var w3 = (inverse ? 1 : -1) * 2 * Math.PI * k * 3 / n; var twiddle3_real = Math.cos(w3); var twiddle3_imag = Math.sin(w3); var this1 = freq[f + k]; var f0_real = this1.real; var f0_imag = this1.imag; var this2 = freq[f + k + quarterLen]; var this_real = this2.real; var this_imag = this2.imag; var f1_real = this_real * twiddle1_real - this_imag * twiddle1_imag; var f1_imag = this_real * twiddle1_imag + this_imag * twiddle1_real; var this3 = freq[f + k + 2 * quarterLen]; var this_real1 = this3.real; var this_imag1 = this3.imag; var f2_real = this_real1 * twiddle2_real - this_imag1 * twiddle2_imag; var f2_imag = this_real1 * twiddle2_imag + this_imag1 * twiddle2_real; var this4 = freq[f + k + 3 * quarterLen]; var this_real2 = this4.real; var this_imag2 = this4.imag; var f3_real = this_real2 * twiddle3_real - this_imag2 * twiddle3_imag; var f3_imag = this_real2 * twiddle3_imag + this_imag2 * twiddle3_real; var this_real3 = f0_real + f1_real; var this_imag3 = f0_imag + f1_imag; var this_real4 = this_real3 + f2_real; var this_imag4 = this_imag3 + f2_imag; freq[f + k] = { real : this_real4 + f3_real, imag : this_imag4 + f3_imag}; var this_real5 = f0_real + f1_real; var this_imag5 = f0_imag + f1_imag; var this_real6 = this_real5 - f2_real; var this_imag6 = this_imag5 - f2_imag; freq[f + k + quarterLen] = { real : this_real6 - f3_real, imag : this_imag6 - f3_imag}; var this_real7 = f0_real - f1_real; var this_imag7 = f0_imag - f1_imag; var this_real8 = this_real7 - f2_real; var this_imag8 = this_imag7 - f2_imag; freq[f + k + 2 * quarterLen] = { real : this_real8 + f3_real, imag : this_imag8 + f3_imag}; var this_real9 = f0_real - f1_real; var this_imag9 = f0_imag - f1_imag; var this_real10 = this_real9 + f2_real; var this_imag10 = this_imag9 + f2_imag; freq[f + k + 3 * quarterLen] = { real : this_real10 - f3_real, imag : this_imag10 - f3_imag}; } } }; funkin_vis_dsp_FFT.dft = function(ts,inverse) { if(inverse == null) { inverse = false; } var n = ts.length; var fs = []; fs.length = n; var _g = 0; var _g1 = n; while(_g < _g1) { var f = _g++; var sum = funkin_vis_dsp_Complex.zero; var _g2 = 0; var _g3 = n; while(_g2 < _g3) { var t = _g2++; var this1 = ts[t]; var w = (inverse ? 1 : -1) * 2 * Math.PI * f * t / n; var rhs_real = Math.cos(w); var rhs_imag = Math.sin(w); var rhs_real1 = this1.real * rhs_real - this1.imag * rhs_imag; var rhs_imag1 = this1.real * rhs_imag + this1.imag * rhs_real; sum = { real : sum.real + rhs_real1, imag : sum.imag + rhs_imag1}; } var tmp; if(inverse) { var k = 1 / n; tmp = { real : sum.real * k, imag : sum.imag * k}; } else { tmp = sum; } fs[f] = tmp; } return fs; }; funkin_vis_dsp_FFT.twiddleFactorsInversed = null; funkin_vis_dsp_FFT.twiddleFactors = null; funkin_vis_dsp_FFT.precomputeTwiddleFactors = function(maxN,inverse) { var n = maxN; var base_len = maxN; var len = base_len * 4; var twiddles = []; var _g = 0; var _g1 = n / 2 | 0; while(_g < _g1) { var k = _g++; var twiddle = funkin_vis_dsp_FFT.computeTwiddle(k,n,inverse); twiddles.push(twiddle); } if(inverse) { funkin_vis_dsp_FFT.twiddleFactorsInversed = twiddles; } else { funkin_vis_dsp_FFT.twiddleFactors = twiddles; } }; funkin_vis_dsp_FFT.computeTwiddle = function(index,fft_len,inverse) { if(inverse == null) { inverse = false; } var constant = -2 * Math.PI / fft_len; var angle = constant * index; var result = { real : Math.cos(angle), imag : Math.sin(angle)}; if(inverse) { return { real : result.real, imag : -result.imag}; } else { return result; } }; funkin_vis_dsp_FFT.useTwiddleFactor = function(n,k,inverse) { if(inverse == null) { inverse = false; } var twiddlesToUse = inverse ? funkin_vis_dsp_FFT.twiddleFactorsInversed : funkin_vis_dsp_FFT.twiddleFactors; return twiddlesToUse[k]; }; funkin_vis_dsp_FFT.nextPow2 = function(x) { if(x < 2) { return 1; } else if((x & x - 1) == 0) { return x; } var pow = 2; --x; while((x >>= 1) != 0) pow <<= 1; return pow; }; funkin_vis_dsp_FFT.main = function() { var Fs = 44100.0; var N = 512; var halfN = N / 2 | 0; var freqs = [5919.911]; var _g = []; var _g1 = 0; var _g2 = N; while(_g1 < _g2) { var n = _g1++; var result = new Array(freqs.length); var _g3 = 0; var _g4 = freqs.length; while(_g3 < _g4) { var i = _g3++; result[i] = Math.sin(2 * Math.PI * freqs[i] * n / Fs); } _g.push(funkin_vis_dsp_Signal.sum(result)); } var ts = _g; var fs_pos = funkin_vis_dsp_FFT.rfft(ts); var _g = []; var _g1 = -(halfN - 1); var _g2 = 0; while(_g1 < _g2) { var k = _g1++; var this1 = fs_pos[-k]; _g.push({ real : this1.real, imag : -this1.imag}); } var fs_fft_array = _g.concat(fs_pos); var fs_fft_offset = -(halfN - 1); var f = funkin_vis_dsp_Complex.fromReal; var result = new Array(ts.length); var _g = 0; var _g1 = ts.length; while(_g < _g1) { var i = _g++; result[i] = f(ts[i]); } var fs_dft_array = funkin_vis_dsp_OffsetArray.circShift(funkin_vis_dsp_FFT.dft(result),halfN - 1); var fs_dft_offset = -(halfN - 1); var _g = []; var _g1 = -(halfN - 1); var _g2 = halfN; while(_g1 < _g2) { var k = _g1++; var this1 = fs_fft_array[k - fs_fft_offset]; var rhs = fs_dft_array[k - fs_dft_offset]; _g.push({ real : this1.real - rhs.real, imag : this1.imag - rhs.imag}); } var fs_err = _g; var result = new Array(fs_err.length); var _g = 0; var _g1 = fs_err.length; while(_g < _g1) { var i = _g++; var z = fs_err[i]; result[i] = Math.sqrt(z.real * z.real + z.imag * z.imag); } var max_fs_err = funkin_vis_dsp_Signal.max(result); if(max_fs_err > 1e-6) { haxe_Log.trace("FT Error: " + max_fs_err,null); } var _this = fs_fft_array; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var z = _this[i]; result[i] = Math.sqrt(z.real * z.real + z.imag * z.imag); } var _this = funkin_vis_dsp_Signal.findPeaks(result); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = (_this[i] - (halfN - 1)) * Fs / N; } var _g = []; var _g1 = 0; var _g2 = result; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v >= 0) { _g.push(v); } } var freqis = _g; if(freqis.length != freqs.length) { haxe_Log.trace("Found frequencies: " + Std.string(freqis),{ fileName : "funkin/vis/dsp/FFT.hx", lineNumber : 233, className : "funkin.vis.dsp.FFT", methodName : "main"}); } else { var _g = []; var _g1 = 0; var _g2 = freqs.length; while(_g1 < _g2) { var i = _g1++; _g.push(freqis[i] - freqs[i]); } var freqs_err = _g; var f = Math.abs; var result = new Array(freqs_err.length); var _g = 0; var _g1 = freqs_err.length; while(_g < _g1) { var i = _g++; result[i] = f(freqs_err[i]); } var max_freqs_err = funkin_vis_dsp_Signal.max(result); if(max_freqs_err > Fs / N) { haxe_Log.trace("Frequency Errors: " + Std.string(freqs_err),{ fileName : "funkin/vis/dsp/FFT.hx", lineNumber : 237, className : "funkin.vis.dsp.FFT", methodName : "main"}); } } var _this = funkin_vis_dsp_OffsetArray.circShift(fs_fft_array,-(halfN - 1)); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var z = _this[i]; var k = 1 / Fs; result[i] = { real : z.real * k, imag : z.imag * k}; } var ts_ifft = funkin_vis_dsp_FFT.ifft(result); var _g = []; var _g1 = 0; var _g2 = N; while(_g1 < _g2) { var n = _g1++; var this1 = ts_ifft[n]; var this_real = this1.real * Fs; var this_imag = this1.imag * Fs; _g.push(this_real - ts[n]); } var ts_err = _g; var f = Math.abs; var result = new Array(ts_err.length); var _g = 0; var _g1 = ts_err.length; while(_g < _g1) { var i = _g++; result[i] = f(ts_err[i]); } var max_ts_err = funkin_vis_dsp_Signal.max(result); if(max_ts_err > 1e-6) { haxe_Log.trace("IFT Error: " + max_ts_err,null); } }; var funkin_vis_dsp_OffsetArray = {}; funkin_vis_dsp_OffsetArray.__properties__ = {get_length:"get_length"}; funkin_vis_dsp_OffsetArray._new = function(array,offset) { return { array : array, offset : offset}; }; funkin_vis_dsp_OffsetArray.get_length = function(this1) { return this1.array.length; }; funkin_vis_dsp_OffsetArray.get = function(this1,index) { return this1.array[index - this1.offset]; }; funkin_vis_dsp_OffsetArray.set = function(this1,index,value) { this1.array[index - this1.offset] = value; }; funkin_vis_dsp_OffsetArray.keyValueIterator = function(this1) { return new funkin_vis_dsp__$OffsetArray_OffsetArrayIterator(this1.array,this1.offset); }; funkin_vis_dsp_OffsetArray.fromArray = function(array) { return { array : array, offset : 0}; }; funkin_vis_dsp_OffsetArray.toArray = function(this1) { return this1.array; }; funkin_vis_dsp_OffsetArray.circShift = function(array,n) { if(n < 0) { return funkin_vis_dsp_OffsetArray.circShift(array,array.length + n); } var shifted = []; n %= array.length; var _g = array.length - n; var _g1 = array.length; while(_g < _g1) { var i = _g++; shifted.push(array[i]); } var _g = 0; var _g1 = array.length - n; while(_g < _g1) { var i = _g++; shifted.push(array[i]); } return shifted; }; var funkin_vis_dsp__$OffsetArray_OffsetArrayIterator = function(array,offset) { this.array = array; this.offset = offset; this.enumeration = 0; }; $hxClasses["funkin.vis.dsp._OffsetArray.OffsetArrayIterator"] = funkin_vis_dsp__$OffsetArray_OffsetArrayIterator; funkin_vis_dsp__$OffsetArray_OffsetArrayIterator.__name__ = "funkin.vis.dsp._OffsetArray.OffsetArrayIterator"; funkin_vis_dsp__$OffsetArray_OffsetArrayIterator.prototype = { array: null ,offset: null ,enumeration: null ,next: function() { var i = this.enumeration++; return { key : i + this.offset, value : this.array[i]}; } ,hasNext: function() { return this.enumeration < this.array.length; } ,__class__: funkin_vis_dsp__$OffsetArray_OffsetArrayIterator }; var funkin_vis_dsp_RecentPeakFinder = function(length) { if(length == null) { length = 30; } this.peak = 0; this.bufferIndex = 0; this.buffer = []; this.buffer.length = length; }; $hxClasses["funkin.vis.dsp.RecentPeakFinder"] = funkin_vis_dsp_RecentPeakFinder; funkin_vis_dsp_RecentPeakFinder.__name__ = "funkin.vis.dsp.RecentPeakFinder"; funkin_vis_dsp_RecentPeakFinder.prototype = { buffer: null ,bufferIndex: null ,peak: null ,push: function(value) { this.buffer[this.bufferIndex] = value; if(value > this.peak) { this.peak = value; } else { this.peak = funkin_vis_dsp_Signal.max(this.buffer); } this.bufferIndex = this.bufferIndex + 1 == this.buffer.length ? 0 : this.bufferIndex + 1; } ,get_lastValue: function() { if(this.bufferIndex == 0) { return this.buffer[this.buffer.length - 1]; } else { return this.buffer[this.bufferIndex - 1]; } } ,__class__: funkin_vis_dsp_RecentPeakFinder ,__properties__: {get_lastValue:"get_lastValue"} }; var funkin_vis_dsp_Signal = function() { }; $hxClasses["funkin.vis.dsp.Signal"] = funkin_vis_dsp_Signal; funkin_vis_dsp_Signal.__name__ = "funkin.vis.dsp.Signal"; funkin_vis_dsp_Signal.smooth = function(y,n) { if(n <= 0) { return null; } else if(n == 1) { return y.slice(); } else { var smoothed = []; smoothed.length = y.length; var _g = 0; var _g1 = y.length; while(_g < _g1) { var i = _g++; var m = i + 1 < n ? i : n - 1; smoothed[i] = funkin_vis_dsp_Signal.sum(y.slice(i - m,i + 1)); } return smoothed; } }; funkin_vis_dsp_Signal.findPeaks = function(y,threshold,minHeight) { threshold = threshold == null ? 0.0 : Math.abs(threshold); if(minHeight == null) { minHeight = funkin_vis_dsp_Signal.min(y); } var peaks = []; var _g = []; var _g1 = 1; var _g2 = y.length; while(_g1 < _g2) { var i = _g1++; _g.push(y[i] - y[i - 1]); } var dy = _g; var _g = 1; var _g1 = dy.length; while(_g < _g1) { var i = _g++; if(dy[i - 1] > threshold && dy[i] < -threshold && y[i] > minHeight) { peaks.push(i); } } return peaks; }; funkin_vis_dsp_Signal.sum = function(array) { var sum = 0.0; var c = 0.0; var _g = 0; while(_g < array.length) { var v = array[_g]; ++_g; var t = sum + v; c += Math.abs(sum) >= Math.abs(v) ? sum - t + v : v - t + sum; sum = t; } return sum + c; }; funkin_vis_dsp_Signal.mean = function(y) { return funkin_vis_dsp_Signal.sum(y) / y.length; }; funkin_vis_dsp_Signal.max = function(y) { return Lambda.fold(y,Math.max,y[0]); }; funkin_vis_dsp_Signal.maxi = function(y) { return Lambda.foldi(y,function(yi,m,i) { if(yi > y[m]) { return i; } else { return m; } },0); }; funkin_vis_dsp_Signal.min = function(y) { return Lambda.fold(y,Math.min,y[0]); }; funkin_vis_dsp_Signal.mini = function(y) { return Lambda.foldi(y,function(yi,m,i) { if(yi < y[m]) { return i; } else { return m; } },0); }; var funkin_vis_dsp_MathType = $hxEnums["funkin.vis.dsp.MathType"] = { __ename__:"funkin.vis.dsp.MathType",__constructs__:null ,Round: {_hx_name:"Round",_hx_index:0,__enum__:"funkin.vis.dsp.MathType",toString:$estr} ,Floor: {_hx_name:"Floor",_hx_index:1,__enum__:"funkin.vis.dsp.MathType",toString:$estr} ,Ceil: {_hx_name:"Ceil",_hx_index:2,__enum__:"funkin.vis.dsp.MathType",toString:$estr} ,Cast: {_hx_name:"Cast",_hx_index:3,__enum__:"funkin.vis.dsp.MathType",toString:$estr} }; funkin_vis_dsp_MathType.__constructs__ = [funkin_vis_dsp_MathType.Round,funkin_vis_dsp_MathType.Floor,funkin_vis_dsp_MathType.Ceil,funkin_vis_dsp_MathType.Cast]; funkin_vis_dsp_MathType.__empty_constructs__ = [funkin_vis_dsp_MathType.Round,funkin_vis_dsp_MathType.Floor,funkin_vis_dsp_MathType.Ceil,funkin_vis_dsp_MathType.Cast]; var funkin_vis_dsp_SpectralAnalyzer = function(audioSource,barCount,maxDelta,peakHold) { if(peakHold == null) { peakHold = 30; } if(maxDelta == null) { maxDelta = 0.01; } this.bars = []; this.fftN2 = 2048; this.maxFreq = 22000; this.minFreq = 50; this.fftN = 4096; this.maxDb = -20; this.minDb = -70; this.audioSource = audioSource; this.audioClip = new funkin_vis_audioclip_frontends_LimeAudioClip(audioSource); this.barCount = barCount; this.maxDelta = maxDelta; this.peakHold = peakHold; this.htmlAnalyzer = new funkin_vis__$internal_html5_AnalyzerNode(this.audioClip); this.calcBars(barCount,peakHold); this.resizeBlackmanWindow(this.fftN); }; $hxClasses["funkin.vis.dsp.SpectralAnalyzer"] = funkin_vis_dsp_SpectralAnalyzer; funkin_vis_dsp_SpectralAnalyzer.__name__ = "funkin.vis.dsp.SpectralAnalyzer"; funkin_vis_dsp_SpectralAnalyzer.clamp_Float = function(val,min,max) { if(val <= min) { return min; } else if(val >= max) { return max; } else { return val; } }; funkin_vis_dsp_SpectralAnalyzer.calculateBlackmanWindow = function(n,fftN) { return 0.42 - 0.50 * Math.cos(2 * Math.PI * n / (fftN - 1)) + 0.08 * Math.cos(4 * Math.PI * n / (fftN - 1)); }; funkin_vis_dsp_SpectralAnalyzer.prototype = { minDb: null ,maxDb: null ,fftN: null ,minFreq: null ,maxFreq: null ,audioSource: null ,audioClip: null ,barCount: null ,maxDelta: null ,peakHold: null ,fftN2: null ,htmlAnalyzer: null ,bars: null ,freqToBin: function(freq,mathType) { if(mathType == null) { mathType = funkin_vis_dsp_MathType.Round; } var bin = freq * this.fftN2 / this.audioClip.audioBuffer.sampleRate; switch(mathType._hx_index) { case 0: return Math.round(bin); case 1: return Math.floor(bin); case 2: return Math.ceil(bin); case 3: return bin | 0; } } ,normalizedB: function(value) { var maxValue = this.maxDb; var minValue = this.minDb; var val = (value - minValue) / (maxValue - minValue); if(val <= 0) { return 0; } else if(val >= 1) { return 1; } else { return val; } } ,calcBars: function(barCount,peakHold) { this.bars = []; var logStep = (funkin_vis_LogHelper.log10(this.maxFreq) - funkin_vis_LogHelper.log10(this.minFreq)) / barCount; var scaleMin = funkin_vis_LogHelper.log10(1 + this.minFreq / 1000); var scaleMax = funkin_vis_LogHelper.log10(1 + this.maxFreq / 1000); var curScale = scaleMin; var _g = 0; var _g1 = barCount; while(_g < _g1) { var i = _g++; var curFreq = Math.pow(10,funkin_vis_LogHelper.log10(this.minFreq) + logStep * i); var freqLo = curFreq; var freqHi = Math.pow(10,funkin_vis_LogHelper.log10(this.minFreq) + logStep * (i + 1)); var binLo = this.freqToBin(freqLo,funkin_vis_dsp_MathType.Floor); var binHi = this.freqToBin(freqHi); this.bars.push({ binLo : binLo, binHi : binHi, freqLo : freqLo, freqHi : freqHi, recentValues : new funkin_vis_dsp_RecentPeakFinder(peakHold)}); } if(this.bars[0].freqLo < this.minFreq) { this.bars[0].freqLo = this.minFreq; this.bars[0].binLo = this.freqToBin(this.minFreq,funkin_vis_dsp_MathType.Floor); } if(this.bars[this.bars.length - 1].freqHi > this.maxFreq) { this.bars[this.bars.length - 1].freqHi = this.maxFreq; this.bars[this.bars.length - 1].binHi = this.freqToBin(this.maxFreq,funkin_vis_dsp_MathType.Floor); } } ,resizeBlackmanWindow: function(size) { } ,getLevels: function() { var amplitudes = this.htmlAnalyzer.getFloatFrequencyData(); var levels = []; var _g = 0; var _g1 = this.bars.length; while(_g < _g1) { var i = _g++; var bar = this.bars[i]; var binLo = bar.binLo; var binHi = bar.binHi; var value = this.minDb; var _g2 = binLo + 1; var _g3 = binHi; while(_g2 < _g3) { var j = _g2++; value = Math.max(value,amplitudes[j | 0]); } value = this.normalizedB(value); bar.recentValues.push(value); var recentPeak = bar.recentValues.peak; levels.push({ value : value, peak : recentPeak}); } return levels; } ,set_minDb: function(value) { this.minDb = value; this.htmlAnalyzer.minDecibels = value; return value; } ,set_maxDb: function(value) { this.maxDb = value; this.htmlAnalyzer.maxDecibels = value; return value; } ,set_fftN: function(value) { this.fftN = value; var pow2 = funkin_vis_dsp_FFT.nextPow2(value); this.fftN2 = pow2 / 2 | 0; this.htmlAnalyzer.fftSize = pow2; this.calcBars(this.barCount,this.peakHold); this.resizeBlackmanWindow(this.fftN); return pow2; } ,__class__: funkin_vis_dsp_SpectralAnalyzer ,__properties__: {set_fftN:"set_fftN",set_maxDb:"set_maxDb",set_minDb:"set_minDb"} }; var grig_audio_Complex = {}; grig_audio_Complex.__properties__ = {set_imag:"set_imag",get_imag:"get_imag",set_real:"set_real",get_real:"get_real"}; grig_audio_Complex.get_real = function(this1) { return this1.real; }; grig_audio_Complex.set_real = function(this1,n) { return this1.real = n; }; grig_audio_Complex.get_imag = function(this1) { return this1.imag; }; grig_audio_Complex.set_imag = function(this1,n) { return this1.imag = n; }; grig_audio_Complex._new = function(real,imag) { return { real : real, imag : imag}; }; grig_audio_Complex.toString = function(this1) { return "(" + this1.real + "," + this1.imag + ")"; }; grig_audio_Complex.sum = function(this1,z) { return { real : this1.real + z.real, imag : this1.imag + z.imag}; }; grig_audio_Complex.sumWithFloat = function(this1,x) { return { real : this1.real + x, imag : this1.imag}; }; grig_audio_Complex.subWithFloat = function(this1,x) { return { real : this1.real + -x, imag : this1.imag}; }; grig_audio_Complex.sub = function(this1,z) { return { real : this1.real - z.real, imag : this1.imag - z.imag}; }; grig_audio_Complex.mul = function(this1,z) { return { real : this1.real * z.real - this1.imag * z.imag, imag : this1.real * z.imag + this1.imag * z.real}; }; grig_audio_Complex.mulWithFloat = function(this1,x) { return { real : this1.real * x, imag : this1.imag * x}; }; grig_audio_Complex.div = function(this1,z) { var d = Math.sqrt(z.real * z.real + z.imag * z.imag); return { real : (this1.real * z.real + this1.imag * z.imag) / d, imag : (this1.imag * z.real - this1.real * z.imag) / d}; }; grig_audio_Complex.divWithFloat = function(this1,x) { haxe_Log.trace(x,{ fileName : "grig/audio/Complex.hx", lineNumber : 93, className : "grig.audio._Complex.Complex_Impl_", methodName : "divWithFloat", customParams : [this1.real * x,this1.imag * x]}); var x1 = 1 / x; return { real : this1.real * x1, imag : this1.imag * x1}; }; grig_audio_Complex.sumAsn = function(this1,z) { this1 = { real : this1.real + z.real, imag : this1.imag + z.imag}; return this1; }; grig_audio_Complex.sumWithFloatAsm = function(this1,x) { this1 = { real : this1.real + x, imag : this1.imag}; return this1; }; grig_audio_Complex.subAsn = function(this1,z) { this1 = { real : this1.real - z.real, imag : this1.imag - z.imag}; return this1; }; grig_audio_Complex.subWithFloatAsn = function(this1,x) { this1 = { real : this1.real + -x, imag : this1.imag}; return this1; }; grig_audio_Complex.mulAsn = function(this1,z) { this1 = { real : this1.real * z.real - this1.imag * z.imag, imag : this1.real * z.imag + this1.imag * z.real}; return this1; }; grig_audio_Complex.mulWithFloatAsn = function(this1,x) { this1 = { real : this1.real * x, imag : this1.imag * x}; return this1; }; grig_audio_Complex.divAsn = function(this1,z) { var d = Math.sqrt(z.real * z.real + z.imag * z.imag); this1 = { real : (this1.real * z.real + this1.imag * z.imag) / d, imag : (this1.imag * z.real - this1.real * z.imag) / d}; return this1; }; grig_audio_Complex.divWithFloatAsn = function(this1,x) { haxe_Log.trace(x,{ fileName : "grig/audio/Complex.hx", lineNumber : 93, className : "grig.audio._Complex.Complex_Impl_", methodName : "divWithFloat", customParams : [this1.real * x,this1.imag * x]}); var x1 = 1 / x; this1 = { real : this1.real * x1, imag : this1.imag * x1}; return this1; }; grig_audio_Complex.equals = function(this1,z) { if(this1.real == z.real) { return this1.imag == z.imag; } else { return false; } }; grig_audio_Complex.fromPolar = function(norm,phi) { return { real : norm * Math.cos(phi), imag : norm * Math.sin(phi)}; }; grig_audio_Complex.abs = function(z) { return Math.sqrt(z.real * z.real + z.imag * z.imag); }; grig_audio_Complex.norm = function(z) { return z.real * z.real + z.imag * z.imag; }; grig_audio_Complex.arg = function(z) { return Math.atan2(z.imag,z.real); }; grig_audio_Complex.sqrt = function(z) { var m = Math.sqrt(z.real * z.real + z.imag * z.imag); var a = Math.atan2(z.imag,z.real) / 2.0; return { real : m * Math.cos(a), imag : m * Math.sin(a)}; }; grig_audio_Complex.exp = function(z) { var m = Math.exp(z.real); var phi = z.imag; return { real : m * Math.cos(phi), imag : m * Math.sin(phi)}; }; grig_audio_Complex.conj = function(z) { return { real : z.real, imag : -z.imag}; }; grig_audio_Complex.pow = function(base,exponent) { var m = Math.sqrt(base.real * base.real + base.imag * base.imag); var a = Math.atan2(base.imag,base.real); var nM = Math.pow(m,exponent); var nA = a * exponent; return { real : nM * Math.cos(nA), imag : nM * Math.sin(nA)}; }; grig_audio_Complex.log = function(z) { var m = Math.sqrt(z.real * z.real + z.imag * z.imag); var a = Math.atan2(z.imag,z.real); if(m > 0) { return { real : Math.log(m), imag : a}; } else { return { real : NaN, imag : NaN}; } }; var grig_audio_FFT = function(n) { if(n == null) { n = 512; } this.roots = []; this.reversed = []; this.hamming = []; this.hamming.length = n; this.reversed.length = n; this.roots.length = n / 2 | 0; this.n = n; this.logN = grig_audio_FFT.log(2.0,n) | 0; this.generateTables(); }; $hxClasses["grig.audio.FFT"] = grig_audio_FFT; grig_audio_FFT.__name__ = "grig.audio.FFT"; grig_audio_FFT.clamp_Int = function(value,lower,upper) { if(value < lower) { return lower; } else if(value > upper) { return upper; } else { return value; } }; grig_audio_FFT.log = function(base,x) { return Math.log(x) / Math.log(base); }; grig_audio_FFT.prototype = { hamming: null ,reversed: null ,roots: null ,n: null ,logN: null ,bitReverse: function(x) { var y = 0; var i = this.logN; while(i > 0) { y = y << 1 | x & 1; x >>= 1; --i; } return y; } ,generateTables: function() { var _g = 0; var _g1 = this.n; while(_g < _g1) { var i = _g++; this.hamming[i] = 1 - 0.85 * Math.cos(i * (grig_audio_FFT.TWO_PI / this.n)); } var _g = 0; var _g1 = this.reversed.length; while(_g < _g1) { var i = _g++; this.reversed[i] = this.bitReverse(i); } var _g = 0; var _g1 = this.n / 2 | 0; while(_g < _g1) { var i = _g++; var z = { real : 0, imag : i * (grig_audio_FFT.TWO_PI / this.n)}; var m = Math.exp(z.real); var phi = z.imag; this.roots[i] = { real : m * Math.cos(phi), imag : m * Math.sin(phi)}; } } ,doFFT: function(a) { var half = 1; var inv = a.length / 2 | 0; while(inv > 0) { var g = 0; while(g < a.length) { var b = 0; var r = 0; while(b < half) { var even = a[g + b]; var this1 = this.roots[r]; var z = a[g + half + b]; var odd_real = this1.real * z.real - this1.imag * z.imag; var odd_imag = this1.real * z.imag + this1.imag * z.real; a[g + b] = { real : even.real + odd_real, imag : even.imag + odd_imag}; a[g + half + b] = { real : even.real - odd_real, imag : even.imag - odd_imag}; ++b; r += inv; } g += half << 1; } half <<= 1; inv >>= 1; } } ,calcFreq: function(data) { var a = []; var freq = []; a.length = this.n; freq.length = this.n / 2 | 0; var _g = 0; var _g1 = a.length; while(_g < _g1) { var i = _g++; a[this.reversed[i]] = { real : data[i] * this.hamming[i], imag : 0.0}; } this.doFFT(a); var _g = 0; var _g1 = this.n / 2 | 0; while(_g < _g1) { var i = _g++; var z = a[1 + i]; freq[i] = 2 * Math.sqrt(z.real * z.real + z.imag * z.imag) / this.n; } var z = a[this.n / 2 | 0]; freq[(this.n / 2 | 0) - 1] = Math.sqrt(z.real * z.real + z.imag * z.imag) / this.n; return freq; } ,__class__: grig_audio_FFT }; var grig_audio_FFTVisualization = function() { this.xscale = []; }; $hxClasses["grig.audio.FFTVisualization"] = grig_audio_FFTVisualization; grig_audio_FFTVisualization.__name__ = "grig.audio.FFTVisualization"; grig_audio_FFTVisualization.computeLogXScale = function(bands) { var xscale = []; xscale.length = bands + 1; xscale[bands] = 0.0; var _g = 0; var _g1 = bands; while(_g < _g1) { var i = _g++; xscale[i] = Math.pow(256,i / bands) - 0.5; } return xscale; }; grig_audio_FFTVisualization.computeFreqBand = function(freq,xscale,band,bands) { var a = Math.ceil(xscale[band]); var b = Math.floor(xscale[band + 1]); var n = 0.0; if(b < a) { n += freq[b] * (xscale[band + 1] - xscale[band]); } else { if(a > 0) { n += freq[a - 1] * (a - xscale[band]); } while(a < b) { n += freq[a]; ++a; } if(b < 256) { n += freq[b] * (xscale[band + 1] - b); } } n *= bands / 12; return 20 * grig_audio_FFT.log(10,n); }; grig_audio_FFTVisualization.prototype = { xscale: null ,makeLogGraph: function(freq,bands,dbRange,intRange) { if(this.xscale.length != bands + 1) { this.xscale = grig_audio_FFTVisualization.computeLogXScale(bands); } var graph = []; graph.length = bands; var _g = 0; var _g1 = bands; while(_g < _g1) { var i = _g++; var val = grig_audio_FFTVisualization.computeFreqBand(freq,this.xscale,i,bands); val = (1 + val / dbRange) * intRange; graph[i] = grig_audio_FFT.clamp_Int(val | 0,0,intRange); } return graph; } ,__class__: grig_audio_FFTVisualization }; var grig_audio_lime_UInt8ArrayTools = function() { }; $hxClasses["grig.audio.lime.UInt8ArrayTools"] = grig_audio_lime_UInt8ArrayTools; grig_audio_lime_UInt8ArrayTools.__name__ = "grig.audio.lime.UInt8ArrayTools"; grig_audio_lime_UInt8ArrayTools.getInt16 = function(data,pos) { var val = data[pos] | data[pos + 1] << 8; if((val & 32768) != 0) { return val - 65536; } return val; }; grig_audio_lime_UInt8ArrayTools.getInt24 = function(data,pos) { var val = data[pos] | data[pos + 1] << 8 | data[pos + 2] << 16; if((val & 8388608) != 0) { return val - 16777216; } return val; }; grig_audio_lime_UInt8ArrayTools.getInt32 = function(data,pos) { return data[pos] | data[pos + 1] << 8 | data[pos + 2] << 16 | data[pos + 3] << 24; }; grig_audio_lime_UInt8ArrayTools.toInterleaved = function(data,bitsPerSample) { var newBuffer = []; if(bitsPerSample == 8) { newBuffer.length = data.length; var _g = 0; var _g1 = data.length; while(_g < _g1) { var i = _g++; newBuffer[i] = UInt.toFloat(data[i]) / 128.0; } } else if(bitsPerSample == 16) { newBuffer.length = data.length / 2 | 0; var bytes = new haxe_io_Bytes(new Uint8Array(data.buffer)); var _g = 0; var _g1 = newBuffer.length; while(_g < _g1) { var i = _g++; var pos = i * 2; var val = data[pos] | data[pos + 1] << 8; newBuffer[i] = ((val & 32768) != 0 ? val - 65536 : val) / 32767.0; } } else if(bitsPerSample == 24) { var bytes = new haxe_io_Bytes(new Uint8Array(data.buffer)); newBuffer.length = data.length / 3 | 0; var _g = 0; var _g1 = newBuffer.length; while(_g < _g1) { var i = _g++; var pos = i * 3; var val = data[pos] | data[pos + 1] << 8 | data[pos + 2] << 16; newBuffer[i] = ((val & 8388608) != 0 ? val - 16777216 : val) / 8388607.0; } } else if(bitsPerSample == 32) { newBuffer.length = data.length / 4 | 0; var _g = 0; var _g1 = newBuffer.length; while(_g < _g1) { var i = _g++; var pos = i * 4; newBuffer[i] = (data[pos] | data[pos + 1] << 8 | data[pos + 2] << 16 | data[pos + 3] << 24) / 2147483647.0; } } else { haxe_Log.trace("Unknown integer audio format",{ fileName : "grig/audio/lime/UInt8ArrayTools.hx", lineNumber : 55, className : "grig.audio.lime.UInt8ArrayTools", methodName : "toInterleaved"}); } return newBuffer; }; var haxe_StackItem = $hxEnums["haxe.StackItem"] = { __ename__:"haxe.StackItem",__constructs__:null ,CFunction: {_hx_name:"CFunction",_hx_index:0,__enum__:"haxe.StackItem",toString:$estr} ,Module: ($_=function(m) { return {_hx_index:1,m:m,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="Module",$_.__params__ = ["m"],$_) ,FilePos: ($_=function(s,file,line,column) { return {_hx_index:2,s:s,file:file,line:line,column:column,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="FilePos",$_.__params__ = ["s","file","line","column"],$_) ,Method: ($_=function(classname,method) { return {_hx_index:3,classname:classname,method:method,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="Method",$_.__params__ = ["classname","method"],$_) ,LocalFunction: ($_=function(v) { return {_hx_index:4,v:v,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="LocalFunction",$_.__params__ = ["v"],$_) }; haxe_StackItem.__constructs__ = [haxe_StackItem.CFunction,haxe_StackItem.Module,haxe_StackItem.FilePos,haxe_StackItem.Method,haxe_StackItem.LocalFunction]; haxe_StackItem.__empty_constructs__ = [haxe_StackItem.CFunction]; var haxe_CallStack = {}; haxe_CallStack.__properties__ = {get_length:"get_length"}; haxe_CallStack.get_length = function(this1) { return this1.length; }; haxe_CallStack.callStack = function() { return haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.callStack()); }; haxe_CallStack.exceptionStack = function(fullStack) { if(fullStack == null) { fullStack = false; } var eStack = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.exceptionStack()); return fullStack ? eStack : haxe_CallStack.subtract(eStack,haxe_CallStack.callStack()); }; haxe_CallStack.toString = function(stack) { var b = new StringBuf(); var _g = 0; var _g1 = stack; while(_g < _g1.length) { var s = _g1[_g]; ++_g; b.b += "\nCalled from "; haxe_CallStack.itemToString(b,s); } return b.b; }; haxe_CallStack.subtract = function(this1,stack) { var startIndex = -1; var i = -1; while(++i < this1.length) { var _g = 0; var _g1 = stack.length; while(_g < _g1) { var j = _g++; if(haxe_CallStack.equalItems(this1[i],stack[j])) { if(startIndex < 0) { startIndex = i; } ++i; if(i >= this1.length) { break; } } else { startIndex = -1; } } if(startIndex >= 0) { break; } } if(startIndex >= 0) { return this1.slice(0,startIndex); } else { return this1; } }; haxe_CallStack.copy = function(this1) { return this1.slice(); }; haxe_CallStack.get = function(this1,index) { return this1[index]; }; haxe_CallStack.asArray = function(this1) { return this1; }; haxe_CallStack.equalItems = function(item1,item2) { if(item1 == null) { if(item2 == null) { return true; } else { return false; } } else { switch(item1._hx_index) { case 0: if(item2 == null) { return false; } else if(item2._hx_index == 0) { return true; } else { return false; } break; case 1: if(item2 == null) { return false; } else if(item2._hx_index == 1) { var m2 = item2.m; var m1 = item1.m; return m1 == m2; } else { return false; } break; case 2: if(item2 == null) { return false; } else if(item2._hx_index == 2) { var item21 = item2.s; var file2 = item2.file; var line2 = item2.line; var col2 = item2.column; var col1 = item1.column; var line1 = item1.line; var file1 = item1.file; var item11 = item1.s; if(file1 == file2 && line1 == line2 && col1 == col2) { return haxe_CallStack.equalItems(item11,item21); } else { return false; } } else { return false; } break; case 3: if(item2 == null) { return false; } else if(item2._hx_index == 3) { var class2 = item2.classname; var method2 = item2.method; var method1 = item1.method; var class1 = item1.classname; if(class1 == class2) { return method1 == method2; } else { return false; } } else { return false; } break; case 4: if(item2 == null) { return false; } else if(item2._hx_index == 4) { var v2 = item2.v; var v1 = item1.v; return v1 == v2; } else { return false; } break; } } }; haxe_CallStack.exceptionToString = function(e) { if(e.get_previous() == null) { var tmp = "Exception: " + e.toString(); var tmp1 = e.get_stack(); return tmp + (tmp1 == null ? "null" : haxe_CallStack.toString(tmp1)); } var result = ""; var e1 = e; var prev = null; while(e1 != null) { if(prev == null) { var result1 = "Exception: " + e1.get_message(); var tmp = e1.get_stack(); result = result1 + (tmp == null ? "null" : haxe_CallStack.toString(tmp)) + result; } else { var prevStack = haxe_CallStack.subtract(e1.get_stack(),prev.get_stack()); result = "Exception: " + e1.get_message() + (prevStack == null ? "null" : haxe_CallStack.toString(prevStack)) + "\n\nNext " + result; } prev = e1; e1 = e1.get_previous(); } return result; }; haxe_CallStack.itemToString = function(b,s) { switch(s._hx_index) { case 0: b.b += "a C function"; break; case 1: var m = s.m; b.b += "module "; b.b += m == null ? "null" : "" + m; break; case 2: var s1 = s.s; var file = s.file; var line = s.line; var col = s.column; if(s1 != null) { haxe_CallStack.itemToString(b,s1); b.b += " ("; } b.b += file == null ? "null" : "" + file; b.b += " line "; b.b += line == null ? "null" : "" + line; if(col != null) { b.b += " column "; b.b += col == null ? "null" : "" + col; } if(s1 != null) { b.b += ")"; } break; case 3: var cname = s.classname; var meth = s.method; b.b += Std.string(cname == null ? "" : cname); b.b += "."; b.b += meth == null ? "null" : "" + meth; break; case 4: var n = s.v; b.b += "local function #"; b.b += n == null ? "null" : "" + n; break; } }; var haxe_DynamicAccess = {}; haxe_DynamicAccess._new = function() { return { }; }; haxe_DynamicAccess.get = function(this1,key) { return this1[key]; }; haxe_DynamicAccess.set = function(this1,key,value) { return this1[key] = value; }; haxe_DynamicAccess.exists = function(this1,key) { return Object.prototype.hasOwnProperty.call(this1,key); }; haxe_DynamicAccess.remove = function(this1,key) { return Reflect.deleteField(this1,key); }; haxe_DynamicAccess.keys = function(this1) { return Reflect.fields(this1); }; haxe_DynamicAccess.copy = function(this1) { return Reflect.copy(this1); }; haxe_DynamicAccess.iterator = function(this1) { return new haxe_iterators_DynamicAccessIterator(this1); }; haxe_DynamicAccess.keyValueIterator = function(this1) { return new haxe_iterators_DynamicAccessKeyValueIterator(this1); }; var haxe_Exception = function(message,previous,native) { Error.call(this,message); this.message = message; this.__previousException = previous; this.__nativeException = native != null ? native : this; this.__skipStack = 0; var old = Error.prepareStackTrace; Error.prepareStackTrace = function(e) { return e.stack; } if(((native) instanceof Error)) { this.stack = native.stack; } else { var e = null; if(Error.captureStackTrace) { Error.captureStackTrace(this,haxe_Exception); e = this; } else { e = new Error(); if(typeof(e.stack) == "undefined") { try { throw e; } catch(_) {} this.__skipStack++; } } this.stack = e.stack; } Error.prepareStackTrace = old; }; $hxClasses["haxe.Exception"] = haxe_Exception; haxe_Exception.__name__ = "haxe.Exception"; haxe_Exception.caught = function(value) { if(((value) instanceof haxe_Exception)) { return value; } else if(((value) instanceof Error)) { return new haxe_Exception(value.message,null,value); } else { return new haxe_ValueException(value,null,value); } }; haxe_Exception.thrown = function(value) { if(((value) instanceof haxe_Exception)) { return value.get_native(); } else if(((value) instanceof Error)) { return value; } else { var e = new haxe_ValueException(value); e.__skipStack++; return e; } }; haxe_Exception.__super__ = Error; haxe_Exception.prototype = $extend(Error.prototype,{ __skipStack: null ,__nativeException: null ,__previousException: null ,unwrap: function() { return this.__nativeException; } ,toString: function() { return this.get_message(); } ,details: function() { if(this.get_previous() == null) { var tmp = "Exception: " + this.toString(); var tmp1 = this.get_stack(); return tmp + (tmp1 == null ? "null" : haxe_CallStack.toString(tmp1)); } else { var result = ""; var e = this; var prev = null; while(e != null) { if(prev == null) { var result1 = "Exception: " + e.get_message(); var tmp = e.get_stack(); result = result1 + (tmp == null ? "null" : haxe_CallStack.toString(tmp)) + result; } else { var prevStack = haxe_CallStack.subtract(e.get_stack(),prev.get_stack()); result = "Exception: " + e.get_message() + (prevStack == null ? "null" : haxe_CallStack.toString(prevStack)) + "\n\nNext " + result; } prev = e; e = e.get_previous(); } return result; } } ,__shiftStack: function() { this.__skipStack++; } ,get_message: function() { return this.message; } ,get_previous: function() { return this.__previousException; } ,get_native: function() { return this.__nativeException; } ,get_stack: function() { var _g = this.__exceptionStack; if(_g == null) { var value = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.normalize(this.stack),this.__skipStack); this.setProperty("__exceptionStack",value); return value; } else { var s = _g; return s; } } ,setProperty: function(name,value) { try { Object.defineProperty(this,name,{ value : value}); } catch( _g ) { this[name] = value; } } ,get___exceptionStack: function() { return this.__exceptionStack; } ,set___exceptionStack: function(value) { this.setProperty("__exceptionStack",value); return value; } ,get___skipStack: function() { return this.__skipStack; } ,set___skipStack: function(value) { this.setProperty("__skipStack",value); return value; } ,get___nativeException: function() { return this.__nativeException; } ,set___nativeException: function(value) { this.setProperty("__nativeException",value); return value; } ,get___previousException: function() { return this.__previousException; } ,set___previousException: function(value) { this.setProperty("__previousException",value); return value; } ,__class__: haxe_Exception ,__properties__: {set___exceptionStack:"set___exceptionStack",get___exceptionStack:"get___exceptionStack",get_native:"get_native",get_previous:"get_previous",get_stack:"get_stack",get_message:"get_message"} }); var haxe_Int32 = {}; haxe_Int32.negate = function(this1) { return ~this1 + 1 | 0; }; haxe_Int32.preIncrement = function(this1) { this1 = ++this1 | 0; return this1; }; haxe_Int32.postIncrement = function(this1) { var ret = this1++; this1 |= 0; return ret; }; haxe_Int32.preDecrement = function(this1) { this1 = --this1 | 0; return this1; }; haxe_Int32.postDecrement = function(this1) { var ret = this1--; this1 |= 0; return ret; }; haxe_Int32.add = function(a,b) { return a + b | 0; }; haxe_Int32.addInt = function(a,b) { return a + b | 0; }; haxe_Int32.sub = function(a,b) { return a - b | 0; }; haxe_Int32.subInt = function(a,b) { return a - b | 0; }; haxe_Int32.intSub = function(a,b) { return a - b | 0; }; haxe_Int32.mul = function(a,b) { return haxe_Int32._mul(a,b); }; haxe_Int32.mulInt = function(a,b) { return haxe_Int32._mul(a,b); }; haxe_Int32.toFloat = function(this1) { return this1; }; haxe_Int32.ucompare = function(a,b) { if(a < 0) { if(b < 0) { return ~b - ~a | 0; } else { return 1; } } if(b < 0) { return -1; } else { return a - b | 0; } }; haxe_Int32.clamp = function(x) { return x | 0; }; var haxe_Int64 = {}; haxe_Int64.__properties__ = {get_low:"get_low",get_high:"get_high"}; haxe_Int64._new = function(x) { return x; }; haxe_Int64.copy = function(this1) { return new haxe__$Int64__$_$_$Int64(this1.high,this1.low); }; haxe_Int64.make = function(high,low) { return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.ofInt = function(x) { return new haxe__$Int64__$_$_$Int64(x >> 31,x); }; haxe_Int64.toInt = function(x) { if(x.high != x.low >> 31) { throw haxe_Exception.thrown("Overflow"); } return x.low; }; haxe_Int64.is = function(val) { return ((val) instanceof haxe__$Int64__$_$_$Int64); }; haxe_Int64.isInt64 = function(val) { return ((val) instanceof haxe__$Int64__$_$_$Int64); }; haxe_Int64.getHigh = function(x) { return x.high; }; haxe_Int64.getLow = function(x) { return x.low; }; haxe_Int64.isNeg = function(x) { return x.high < 0; }; haxe_Int64.isZero = function(x) { var b_high = 0; var b_low = 0; if(x.high == b_high) { return x.low == b_low; } else { return false; } }; haxe_Int64.compare = function(a,b) { var v = a.high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b.low); } if(a.high < 0) { if(b.high < 0) { return v; } else { return -1; } } else if(b.high >= 0) { return v; } else { return 1; } }; haxe_Int64.ucompare = function(a,b) { var v = haxe_Int32.ucompare(a.high,b.high); if(v != 0) { return v; } else { return haxe_Int32.ucompare(a.low,b.low); } }; haxe_Int64.toStr = function(x) { return haxe_Int64.toString(x); }; haxe_Int64.toString = function(this1) { var i = this1; var b_high = 0; var b_low = 0; if(i.high == b_high && i.low == b_low) { return "0"; } var str = ""; var neg = false; if(i.high < 0) { neg = true; } var ten = new haxe__$Int64__$_$_$Int64(0,10); while(true) { var b_high = 0; var b_low = 0; if(!(i.high != b_high || i.low != b_low)) { break; } var r = haxe_Int64.divMod(i,ten); if(r.modulus.high < 0) { var x = r.modulus; var high = ~x.high; var low = ~x.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } var this_high = high; var this_low = low; str = this_low + str; var x1 = r.quotient; var high1 = ~x1.high; var low1 = ~x1.low + 1 | 0; if(low1 == 0) { var ret1 = high1++; high1 = high1 | 0; } i = new haxe__$Int64__$_$_$Int64(high1,low1); } else { str = r.modulus.low + str; i = r.quotient; } } if(neg) { str = "-" + str; } return str; }; haxe_Int64.parseString = function(sParam) { return haxe_Int64Helper.parseString(sParam); }; haxe_Int64.fromFloat = function(f) { return haxe_Int64Helper.fromFloat(f); }; haxe_Int64.divMod = function(dividend,divisor) { if(divisor.high == 0) { switch(divisor.low) { case 0: throw haxe_Exception.thrown("divide by zero"); case 1: return { quotient : new haxe__$Int64__$_$_$Int64(dividend.high,dividend.low), modulus : new haxe__$Int64__$_$_$Int64(0,0)}; } } var divSign = dividend.high < 0 != divisor.high < 0; var modulus; if(dividend.high < 0) { var high = ~dividend.high; var low = ~dividend.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } modulus = new haxe__$Int64__$_$_$Int64(high,low); } else { modulus = new haxe__$Int64__$_$_$Int64(dividend.high,dividend.low); } if(divisor.high < 0) { var high = ~divisor.high; var low = ~divisor.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } divisor = new haxe__$Int64__$_$_$Int64(high,low); } var quotient = new haxe__$Int64__$_$_$Int64(0,0); var mask = new haxe__$Int64__$_$_$Int64(0,1); while(!(divisor.high < 0)) { var v = haxe_Int32.ucompare(divisor.high,modulus.high); var cmp = v != 0 ? v : haxe_Int32.ucompare(divisor.low,modulus.low); var b = 1; b &= 63; divisor = b == 0 ? new haxe__$Int64__$_$_$Int64(divisor.high,divisor.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(divisor.high << b | divisor.low >>> 32 - b,divisor.low << b) : new haxe__$Int64__$_$_$Int64(divisor.low << b - 32,0); var b1 = 1; b1 &= 63; mask = b1 == 0 ? new haxe__$Int64__$_$_$Int64(mask.high,mask.low) : b1 < 32 ? new haxe__$Int64__$_$_$Int64(mask.high << b1 | mask.low >>> 32 - b1,mask.low << b1) : new haxe__$Int64__$_$_$Int64(mask.low << b1 - 32,0); if(cmp >= 0) { break; } } while(true) { var b_high = 0; var b_low = 0; if(!(mask.high != b_high || mask.low != b_low)) { break; } var v = haxe_Int32.ucompare(modulus.high,divisor.high); if((v != 0 ? v : haxe_Int32.ucompare(modulus.low,divisor.low)) >= 0) { quotient = new haxe__$Int64__$_$_$Int64(quotient.high | mask.high,quotient.low | mask.low); var high = modulus.high - divisor.high | 0; var low = modulus.low - divisor.low | 0; if(haxe_Int32.ucompare(modulus.low,divisor.low) < 0) { var ret = high--; high = high | 0; } modulus = new haxe__$Int64__$_$_$Int64(high,low); } var b = 1; b &= 63; mask = b == 0 ? new haxe__$Int64__$_$_$Int64(mask.high,mask.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(mask.high >>> b,mask.high << 32 - b | mask.low >>> b) : new haxe__$Int64__$_$_$Int64(0,mask.high >>> b - 32); var b1 = 1; b1 &= 63; divisor = b1 == 0 ? new haxe__$Int64__$_$_$Int64(divisor.high,divisor.low) : b1 < 32 ? new haxe__$Int64__$_$_$Int64(divisor.high >>> b1,divisor.high << 32 - b1 | divisor.low >>> b1) : new haxe__$Int64__$_$_$Int64(0,divisor.high >>> b1 - 32); } if(divSign) { var high = ~quotient.high; var low = ~quotient.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } quotient = new haxe__$Int64__$_$_$Int64(high,low); } if(dividend.high < 0) { var high = ~modulus.high; var low = ~modulus.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } modulus = new haxe__$Int64__$_$_$Int64(high,low); } return { quotient : quotient, modulus : modulus}; }; haxe_Int64.neg = function(x) { var high = ~x.high; var low = ~x.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.preIncrement = function(this1) { this1 = new haxe__$Int64__$_$_$Int64(this1.high,this1.low); var ret = this1.low++; this1.low = this1.low | 0; if(this1.low == 0) { var ret = this1.high++; this1.high = this1.high | 0; } return this1; }; haxe_Int64.postIncrement = function(this1) { var ret = this1; this1 = new haxe__$Int64__$_$_$Int64(this1.high,this1.low); var ret1 = this1.low++; this1.low = this1.low | 0; if(this1.low == 0) { var ret1 = this1.high++; this1.high = this1.high | 0; } return ret; }; haxe_Int64.preDecrement = function(this1) { this1 = new haxe__$Int64__$_$_$Int64(this1.high,this1.low); if(this1.low == 0) { var ret = this1.high--; this1.high = this1.high | 0; } var ret = this1.low--; this1.low = this1.low | 0; return this1; }; haxe_Int64.postDecrement = function(this1) { var ret = this1; this1 = new haxe__$Int64__$_$_$Int64(this1.high,this1.low); if(this1.low == 0) { var ret1 = this1.high--; this1.high = this1.high | 0; } var ret1 = this1.low--; this1.low = this1.low | 0; return ret; }; haxe_Int64.add = function(a,b) { var high = a.high + b.high | 0; var low = a.low + b.low | 0; if(haxe_Int32.ucompare(low,a.low) < 0) { var ret = high++; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.addInt = function(a,b) { var b_high = b >> 31; var b_low = b; var high = a.high + b_high | 0; var low = a.low + b_low | 0; if(haxe_Int32.ucompare(low,a.low) < 0) { var ret = high++; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.sub = function(a,b) { var high = a.high - b.high | 0; var low = a.low - b.low | 0; if(haxe_Int32.ucompare(a.low,b.low) < 0) { var ret = high--; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.subInt = function(a,b) { var b_high = b >> 31; var b_low = b; var high = a.high - b_high | 0; var low = a.low - b_low | 0; if(haxe_Int32.ucompare(a.low,b_low) < 0) { var ret = high--; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.intSub = function(a,b) { var a_high = a >> 31; var a_low = a; var high = a_high - b.high | 0; var low = a_low - b.low | 0; if(haxe_Int32.ucompare(a_low,b.low) < 0) { var ret = high--; high = high | 0; } return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.mul = function(a,b) { var mask = 65535; var al = a.low & mask; var ah = a.low >>> 16; var bl = b.low & mask; var bh = b.low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(a.low,b.high) + haxe_Int32._mul(a.high,b.low) | 0) | 0; return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.mulInt = function(a,b) { var b_high = b >> 31; var b_low = b; var mask = 65535; var al = a.low & mask; var ah = a.low >>> 16; var bl = b_low & mask; var bh = b_low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret = high++; high = high | 0; } high = high + (haxe_Int32._mul(a.low,b_high) + haxe_Int32._mul(a.high,b_low) | 0) | 0; return new haxe__$Int64__$_$_$Int64(high,low); }; haxe_Int64.div = function(a,b) { return haxe_Int64.divMod(a,b).quotient; }; haxe_Int64.divInt = function(a,b) { return haxe_Int64.divMod(a,new haxe__$Int64__$_$_$Int64(b >> 31,b)).quotient; }; haxe_Int64.intDiv = function(a,b) { var x = haxe_Int64.divMod(new haxe__$Int64__$_$_$Int64(a >> 31,a),b).quotient; if(x.high != x.low >> 31) { throw haxe_Exception.thrown("Overflow"); } var x1 = x.low; return new haxe__$Int64__$_$_$Int64(x1 >> 31,x1); }; haxe_Int64.mod = function(a,b) { return haxe_Int64.divMod(a,b).modulus; }; haxe_Int64.modInt = function(a,b) { var x = haxe_Int64.divMod(a,new haxe__$Int64__$_$_$Int64(b >> 31,b)).modulus; if(x.high != x.low >> 31) { throw haxe_Exception.thrown("Overflow"); } var x1 = x.low; return new haxe__$Int64__$_$_$Int64(x1 >> 31,x1); }; haxe_Int64.intMod = function(a,b) { var x = haxe_Int64.divMod(new haxe__$Int64__$_$_$Int64(a >> 31,a),b).modulus; if(x.high != x.low >> 31) { throw haxe_Exception.thrown("Overflow"); } var x1 = x.low; return new haxe__$Int64__$_$_$Int64(x1 >> 31,x1); }; haxe_Int64.eq = function(a,b) { if(a.high == b.high) { return a.low == b.low; } else { return false; } }; haxe_Int64.eqInt = function(a,b) { var b_high = b >> 31; var b_low = b; if(a.high == b_high) { return a.low == b_low; } else { return false; } }; haxe_Int64.neq = function(a,b) { if(a.high == b.high) { return a.low != b.low; } else { return true; } }; haxe_Int64.neqInt = function(a,b) { var b_high = b >> 31; var b_low = b; if(a.high == b_high) { return a.low != b_low; } else { return true; } }; haxe_Int64.lt = function(a,b) { var v = a.high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b.low); } return (a.high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) < 0; }; haxe_Int64.ltInt = function(a,b) { var b_high = b >> 31; var b_low = b; var v = a.high - b_high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b_low); } return (a.high < 0 ? b_high < 0 ? v : -1 : b_high >= 0 ? v : 1) < 0; }; haxe_Int64.intLt = function(a,b) { var a_high = a >> 31; var a_low = a; var v = a_high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a_low,b.low); } return (a_high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) < 0; }; haxe_Int64.lte = function(a,b) { var v = a.high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b.low); } return (a.high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) <= 0; }; haxe_Int64.lteInt = function(a,b) { var b_high = b >> 31; var b_low = b; var v = a.high - b_high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b_low); } return (a.high < 0 ? b_high < 0 ? v : -1 : b_high >= 0 ? v : 1) <= 0; }; haxe_Int64.intLte = function(a,b) { var a_high = a >> 31; var a_low = a; var v = a_high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a_low,b.low); } return (a_high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) <= 0; }; haxe_Int64.gt = function(a,b) { var v = a.high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b.low); } return (a.high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) > 0; }; haxe_Int64.gtInt = function(a,b) { var b_high = b >> 31; var b_low = b; var v = a.high - b_high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b_low); } return (a.high < 0 ? b_high < 0 ? v : -1 : b_high >= 0 ? v : 1) > 0; }; haxe_Int64.intGt = function(a,b) { var a_high = a >> 31; var a_low = a; var v = a_high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a_low,b.low); } return (a_high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) > 0; }; haxe_Int64.gte = function(a,b) { var v = a.high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b.low); } return (a.high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) >= 0; }; haxe_Int64.gteInt = function(a,b) { var b_high = b >> 31; var b_low = b; var v = a.high - b_high | 0; if(v == 0) { v = haxe_Int32.ucompare(a.low,b_low); } return (a.high < 0 ? b_high < 0 ? v : -1 : b_high >= 0 ? v : 1) >= 0; }; haxe_Int64.intGte = function(a,b) { var a_high = a >> 31; var a_low = a; var v = a_high - b.high | 0; if(v == 0) { v = haxe_Int32.ucompare(a_low,b.low); } return (a_high < 0 ? b.high < 0 ? v : -1 : b.high >= 0 ? v : 1) >= 0; }; haxe_Int64.complement = function(a) { return new haxe__$Int64__$_$_$Int64(~a.high,~a.low); }; haxe_Int64.and = function(a,b) { return new haxe__$Int64__$_$_$Int64(a.high & b.high,a.low & b.low); }; haxe_Int64.or = function(a,b) { return new haxe__$Int64__$_$_$Int64(a.high | b.high,a.low | b.low); }; haxe_Int64.xor = function(a,b) { return new haxe__$Int64__$_$_$Int64(a.high ^ b.high,a.low ^ b.low); }; haxe_Int64.shl = function(a,b) { b &= 63; if(b == 0) { return new haxe__$Int64__$_$_$Int64(a.high,a.low); } else if(b < 32) { return new haxe__$Int64__$_$_$Int64(a.high << b | a.low >>> 32 - b,a.low << b); } else { return new haxe__$Int64__$_$_$Int64(a.low << b - 32,0); } }; haxe_Int64.shr = function(a,b) { b &= 63; if(b == 0) { return new haxe__$Int64__$_$_$Int64(a.high,a.low); } else if(b < 32) { return new haxe__$Int64__$_$_$Int64(a.high >> b,a.high << 32 - b | a.low >>> b); } else { return new haxe__$Int64__$_$_$Int64(a.high >> 31,a.high >> b - 32); } }; haxe_Int64.ushr = function(a,b) { b &= 63; if(b == 0) { return new haxe__$Int64__$_$_$Int64(a.high,a.low); } else if(b < 32) { return new haxe__$Int64__$_$_$Int64(a.high >>> b,a.high << 32 - b | a.low >>> b); } else { return new haxe__$Int64__$_$_$Int64(0,a.high >>> b - 32); } }; haxe_Int64.get_high = function(this1) { return this1.high; }; haxe_Int64.set_high = function(this1,x) { return this1.high = x; }; haxe_Int64.get_low = function(this1) { return this1.low; }; haxe_Int64.set_low = function(this1,x) { return this1.low = x; }; var haxe_Int64Helper = function() { }; $hxClasses["haxe.Int64Helper"] = haxe_Int64Helper; haxe_Int64Helper.__name__ = "haxe.Int64Helper"; haxe_Int64Helper.parseString = function(sParam) { var base_high = 0; var base_low = 10; var current = new haxe__$Int64__$_$_$Int64(0,0); var multiplier = new haxe__$Int64__$_$_$Int64(0,1); var sIsNegative = false; var s = StringTools.trim(sParam); if(s.charAt(0) == "-") { sIsNegative = true; s = s.substring(1,s.length); } var len = s.length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; var digitInt = HxOverrides.cca(s,len - 1 - i) - 48; if(digitInt < 0 || digitInt > 9) { throw haxe_Exception.thrown("NumberFormatError"); } if(digitInt != 0) { var digit_high = digitInt >> 31; var digit_low = digitInt; if(sIsNegative) { var mask = 65535; var al = multiplier.low & mask; var ah = multiplier.low >>> 16; var bl = digit_low & mask; var bh = digit_low >>> 16; var p00 = haxe_Int32._mul(al,bl); var p10 = haxe_Int32._mul(ah,bl); var p01 = haxe_Int32._mul(al,bh); var p11 = haxe_Int32._mul(ah,bh); var low = p00; var high = (p11 + (p01 >>> 16) | 0) + (p10 >>> 16) | 0; p01 <<= 16; low = low + p01 | 0; if(haxe_Int32.ucompare(low,p01) < 0) { var ret = high++; high = high | 0; } p10 <<= 16; low = low + p10 | 0; if(haxe_Int32.ucompare(low,p10) < 0) { var ret1 = high++; high = high | 0; } high = high + (haxe_Int32._mul(multiplier.low,digit_high) + haxe_Int32._mul(multiplier.high,digit_low) | 0) | 0; var b_high = high; var b_low = low; var high1 = current.high - b_high | 0; var low1 = current.low - b_low | 0; if(haxe_Int32.ucompare(current.low,b_low) < 0) { var ret2 = high1--; high1 = high1 | 0; } current = new haxe__$Int64__$_$_$Int64(high1,low1); if(!(current.high < 0)) { throw haxe_Exception.thrown("NumberFormatError: Underflow"); } } else { var mask1 = 65535; var al1 = multiplier.low & mask1; var ah1 = multiplier.low >>> 16; var bl1 = digit_low & mask1; var bh1 = digit_low >>> 16; var p001 = haxe_Int32._mul(al1,bl1); var p101 = haxe_Int32._mul(ah1,bl1); var p011 = haxe_Int32._mul(al1,bh1); var p111 = haxe_Int32._mul(ah1,bh1); var low2 = p001; var high2 = (p111 + (p011 >>> 16) | 0) + (p101 >>> 16) | 0; p011 <<= 16; low2 = low2 + p011 | 0; if(haxe_Int32.ucompare(low2,p011) < 0) { var ret3 = high2++; high2 = high2 | 0; } p101 <<= 16; low2 = low2 + p101 | 0; if(haxe_Int32.ucompare(low2,p101) < 0) { var ret4 = high2++; high2 = high2 | 0; } high2 = high2 + (haxe_Int32._mul(multiplier.low,digit_high) + haxe_Int32._mul(multiplier.high,digit_low) | 0) | 0; var b_high1 = high2; var b_low1 = low2; var high3 = current.high + b_high1 | 0; var low3 = current.low + b_low1 | 0; if(haxe_Int32.ucompare(low3,current.low) < 0) { var ret5 = high3++; high3 = high3 | 0; } current = new haxe__$Int64__$_$_$Int64(high3,low3); if(current.high < 0) { throw haxe_Exception.thrown("NumberFormatError: Overflow"); } } } var mask2 = 65535; var al2 = multiplier.low & mask2; var ah2 = multiplier.low >>> 16; var bl2 = base_low & mask2; var bh2 = base_low >>> 16; var p002 = haxe_Int32._mul(al2,bl2); var p102 = haxe_Int32._mul(ah2,bl2); var p012 = haxe_Int32._mul(al2,bh2); var p112 = haxe_Int32._mul(ah2,bh2); var low4 = p002; var high4 = (p112 + (p012 >>> 16) | 0) + (p102 >>> 16) | 0; p012 <<= 16; low4 = low4 + p012 | 0; if(haxe_Int32.ucompare(low4,p012) < 0) { var ret6 = high4++; high4 = high4 | 0; } p102 <<= 16; low4 = low4 + p102 | 0; if(haxe_Int32.ucompare(low4,p102) < 0) { var ret7 = high4++; high4 = high4 | 0; } high4 = high4 + (haxe_Int32._mul(multiplier.low,base_high) + haxe_Int32._mul(multiplier.high,base_low) | 0) | 0; multiplier = new haxe__$Int64__$_$_$Int64(high4,low4); } return current; }; haxe_Int64Helper.fromFloat = function(f) { if(isNaN(f) || !isFinite(f)) { throw haxe_Exception.thrown("Number is NaN or Infinite"); } var noFractions = f - f % 1; if(noFractions > 9007199254740991) { throw haxe_Exception.thrown("Conversion overflow"); } if(noFractions < -9007199254740991) { throw haxe_Exception.thrown("Conversion underflow"); } var result = new haxe__$Int64__$_$_$Int64(0,0); var neg = noFractions < 0; var rest = neg ? -noFractions : noFractions; var i = 0; while(rest >= 1) { var curr = rest % 2; rest /= 2; if(curr >= 1) { var a_high = 0; var a_low = 1; var b = i; b &= 63; var b1 = b == 0 ? new haxe__$Int64__$_$_$Int64(a_high,a_low) : b < 32 ? new haxe__$Int64__$_$_$Int64(a_high << b | a_low >>> 32 - b,a_low << b) : new haxe__$Int64__$_$_$Int64(a_low << b - 32,0); var high = result.high + b1.high | 0; var low = result.low + b1.low | 0; if(haxe_Int32.ucompare(low,result.low) < 0) { var ret = high++; high = high | 0; } result = new haxe__$Int64__$_$_$Int64(high,low); } ++i; } if(neg) { var high = ~result.high; var low = ~result.low + 1 | 0; if(low == 0) { var ret = high++; high = high | 0; } result = new haxe__$Int64__$_$_$Int64(high,low); } return result; }; var haxe_NativeStackTrace = function() { }; $hxClasses["haxe.NativeStackTrace"] = haxe_NativeStackTrace; haxe_NativeStackTrace.__name__ = "haxe.NativeStackTrace"; haxe_NativeStackTrace.lastError = null; haxe_NativeStackTrace.wrapCallSite = null; haxe_NativeStackTrace.saveStack = function(e) { haxe_NativeStackTrace.lastError = e; }; haxe_NativeStackTrace.callStack = function() { var e = new Error(""); var stack = haxe_NativeStackTrace.tryHaxeStack(e); if(typeof(stack) == "undefined") { try { throw e; } catch( _g ) { } stack = e.stack; } return haxe_NativeStackTrace.normalize(stack,2); }; haxe_NativeStackTrace.exceptionStack = function() { return haxe_NativeStackTrace.normalize(haxe_NativeStackTrace.tryHaxeStack(haxe_NativeStackTrace.lastError)); }; haxe_NativeStackTrace.toHaxe = function(s,skip) { if(skip == null) { skip = 0; } if(s == null) { return []; } else if(typeof(s) == "string") { var stack = s.split("\n"); if(stack[0] == "Error") { stack.shift(); } var m = []; var _g = 0; var _g1 = stack.length; while(_g < _g1) { var i = _g++; if(skip > i) { continue; } var line = stack[i]; var matched = line.match(/^ at ([$A-Za-z0-9_. ]+) \(([^)]+):([0-9]+):([0-9]+)\)$/); if(matched != null) { var path = matched[1].split("."); if(path[0] == "$hxClasses") { path.shift(); } var meth = path.pop(); var file = matched[2]; var line1 = Std.parseInt(matched[3]); var column = Std.parseInt(matched[4]); m.push(haxe_StackItem.FilePos(meth == "Anonymous function" ? haxe_StackItem.LocalFunction() : meth == "Global code" ? null : haxe_StackItem.Method(path.join("."),meth),file,line1,column)); } else { m.push(haxe_StackItem.Module(StringTools.trim(line))); } } return m; } else if(skip > 0 && Array.isArray(s)) { return s.slice(skip); } else { return s; } }; haxe_NativeStackTrace.tryHaxeStack = function(e) { if(e == null) { return []; } var oldValue = Error.prepareStackTrace; Error.prepareStackTrace = haxe_NativeStackTrace.prepareHxStackTrace; var stack = e.stack; Error.prepareStackTrace = oldValue; return stack; }; haxe_NativeStackTrace.prepareHxStackTrace = function(e,callsites) { var stack = []; var _g = 0; while(_g < callsites.length) { var site = callsites[_g]; ++_g; if(haxe_NativeStackTrace.wrapCallSite != null) { site = haxe_NativeStackTrace.wrapCallSite(site); } var method = null; var fullName = site.getFunctionName(); if(fullName != null) { var idx = fullName.lastIndexOf("."); if(idx >= 0) { var className = fullName.substring(0,idx); var methodName = fullName.substring(idx + 1); method = haxe_StackItem.Method(className,methodName); } else { method = haxe_StackItem.Method(null,fullName); } } var fileName = site.getFileName(); var fileAddr = fileName == null ? -1 : fileName.indexOf("file:"); if(haxe_NativeStackTrace.wrapCallSite != null && fileAddr > 0) { fileName = fileName.substring(fileAddr + 6); } stack.push(haxe_StackItem.FilePos(method,fileName,site.getLineNumber(),site.getColumnNumber())); } return stack; }; haxe_NativeStackTrace.normalize = function(stack,skipItems) { if(skipItems == null) { skipItems = 0; } if(Array.isArray(stack) && skipItems > 0) { return stack.slice(skipItems); } else if(typeof(stack) == "string") { switch(stack.substring(0,6)) { case "Error\n":case "Error:": ++skipItems; break; default: } return haxe_NativeStackTrace.skipLines(stack,skipItems); } else { return stack; } }; haxe_NativeStackTrace.skipLines = function(stack,skip,pos) { if(pos == null) { pos = 0; } if(skip > 0) { pos = stack.indexOf("\n",pos); if(pos < 0) { return ""; } else { return haxe_NativeStackTrace.skipLines(stack,--skip,pos + 1); } } else { return stack.substring(pos); } }; var haxe_Resource = function() { }; $hxClasses["haxe.Resource"] = haxe_Resource; haxe_Resource.__name__ = "haxe.Resource"; haxe_Resource.content = null; haxe_Resource.listNames = function() { var _g = []; var _g1 = 0; var _g2 = haxe_Resource.content; while(_g1 < _g2.length) { var x = _g2[_g1]; ++_g1; _g.push(x.name); } return _g; }; 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_Rest = {}; haxe_Rest.__properties__ = {get_length:"get_length"}; haxe_Rest.get_length = function(this1) { return this1.length; }; haxe_Rest.of = function(array) { return array; }; haxe_Rest._new = function(array) { return array; }; haxe_Rest.get = function(this1,index) { return this1[index]; }; haxe_Rest.toArray = function(this1) { return this1.slice(); }; haxe_Rest.iterator = function(this1) { return new haxe_iterators_RestIterator(this1); }; haxe_Rest.keyValueIterator = function(this1) { return new haxe_iterators_RestKeyValueIterator(this1); }; haxe_Rest.append = function(this1,item) { var result = this1.slice(); result.push(item); return result; }; haxe_Rest.prepend = function(this1,item) { var result = this1.slice(); result.unshift(item); return result; }; haxe_Rest.toString = function(this1) { return "[" + this1.toString() + "]"; }; 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.h[s]; if(x != null) { this.buf.b += "R"; this.buf.b += x == null ? "null" : "" + x; return; } this.shash.h[s] = this.scount++; this.buf.b += "y"; s = encodeURIComponent(s); this.buf.b += Std.string(s.length); this.buf.b += ":"; this.buf.b += s == null ? "null" : "" + s; } ,serializeRef: function(v) { var vt = typeof(v); var _g = 0; var _g1 = this.cache.length; while(_g < _g1) { var i = _g++; var ci = this.cache[i]; if(typeof(ci) == vt && ci == v) { this.buf.b += "r"; this.buf.b += i == null ? "null" : "" + 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._hx_index) { case 0: this.buf.b += "n"; break; case 1: var v1 = v; if(v1 == 0) { this.buf.b += "z"; return; } this.buf.b += "i"; this.buf.b += v1 == null ? "null" : "" + v1; break; case 2: var v1 = v; if(isNaN(v1)) { this.buf.b += "k"; } else if(!isFinite(v1)) { this.buf.b += v1 < 0 ? "m" : "p"; } else { this.buf.b += "d"; this.buf.b += v1 == null ? "null" : "" + v1; } break; case 3: this.buf.b += v ? "t" : "f"; break; case 4: if(js_Boot.__instanceof(v,Class)) { var className = v.__name__; this.buf.b += "A"; this.serializeString(className); } else if(js_Boot.__instanceof(v,Enum)) { this.buf.b += "B"; this.serializeString(v.__ename__); } else { if(this.useCache && this.serializeRef(v)) { return; } this.buf.b += "o"; this.serializeFields(v); } break; case 5: throw haxe_Exception.thrown("Cannot serialize function"); case 6: var c = _g.c; 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; var _g2 = l; while(_g1 < _g2) { var i = _g1++; if(v[i] == null) { ++ucount; } else { if(ucount > 0) { if(ucount == 1) { this.buf.b += "n"; } else { this.buf.b += "u"; this.buf.b += ucount == null ? "null" : "" + ucount; } ucount = 0; } this.serialize(v[i]); } } if(ucount > 0) { if(ucount == 1) { this.buf.b += "n"; } else { this.buf.b += "u"; this.buf.b += ucount == null ? "null" : "" + ucount; } } this.buf.b += "h"; break; case Date: var d = v; this.buf.b += "v"; this.buf.b += Std.string(d.getTime()); break; case haxe_ds_IntMap: this.buf.b += "q"; var v1 = v; var k = v1.keys(); while(k.hasNext()) { var k1 = k.next(); this.buf.b += ":"; this.buf.b += k1 == null ? "null" : "" + k1; this.serialize(v1.h[k1]); } this.buf.b += "h"; break; case haxe_ds_List: this.buf.b += "l"; var v1 = v; var _g_head = v1.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var i = val; this.serialize(i); } this.buf.b += "h"; break; case haxe_ds_ObjectMap: this.buf.b += "M"; var v1 = v; var k = v1.keys(); while(k.hasNext()) { var k1 = k.next(); var id = Reflect.field(k1,"__id__"); Reflect.deleteField(k1,"__id__"); this.serialize(k1); k1["__id__"] = id; this.serialize(v1.h[k1.__id__]); } this.buf.b += "h"; break; case haxe_ds_StringMap: this.buf.b += "b"; var v1 = v; var h = v1.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var k = _g_keys[_g_current++]; this.serializeString(k); this.serialize(v1.h[k]); } this.buf.b += "h"; break; case haxe_io_Bytes: var v1 = v; this.buf.b += "s"; this.buf.b += Std.string(Math.ceil(v1.length * 8 / 6)); this.buf.b += ":"; var i = 0; var max = v1.length - 2; var b64 = haxe_Serializer.BASE64_CODES; if(b64 == null) { b64 = new Array(haxe_Serializer.BASE64.length); var _g1 = 0; var _g2 = haxe_Serializer.BASE64.length; while(_g1 < _g2) { var i1 = _g1++; b64[i1] = HxOverrides.cca(haxe_Serializer.BASE64,i1); } haxe_Serializer.BASE64_CODES = b64; } while(i < max) { var b1 = v1.b[i++]; var b2 = v1.b[i++]; var b3 = v1.b[i++]; this.buf.b += String.fromCodePoint(b64[b1 >> 2]); this.buf.b += String.fromCodePoint(b64[(b1 << 4 | b2 >> 4) & 63]); this.buf.b += String.fromCodePoint(b64[(b2 << 2 | b3 >> 6) & 63]); this.buf.b += String.fromCodePoint(b64[b3 & 63]); } if(i == max) { var b1 = v1.b[i++]; var b2 = v1.b[i++]; this.buf.b += String.fromCodePoint(b64[b1 >> 2]); this.buf.b += String.fromCodePoint(b64[(b1 << 4 | b2 >> 4) & 63]); this.buf.b += String.fromCodePoint(b64[b2 << 2 & 63]); } else if(i == max + 1) { var b1 = v1.b[i++]; this.buf.b += String.fromCodePoint(b64[b1 >> 2]); this.buf.b += String.fromCodePoint(b64[b1 << 4 & 63]); } break; default: if(this.useCache) { this.cache.pop(); } if(v.hxSerialize != null) { this.buf.b += "C"; this.serializeString(c.__name__); if(this.useCache) { this.cache.push(v); } v.hxSerialize(this); this.buf.b += "g"; } else { this.buf.b += "c"; this.serializeString(c.__name__); if(this.useCache) { this.cache.push(v); } this.serializeFields(v); } } break; case 7: var e = _g.e; if(this.useCache) { if(this.serializeRef(v)) { return; } this.cache.pop(); } this.buf.b += Std.string(this.useEnumIndex ? "j" : "w"); this.serializeString(e.__ename__); if(this.useEnumIndex) { this.buf.b += ":"; this.buf.b += Std.string(v._hx_index); } else { var e = v; this.serializeString($hxEnums[e.__enum__].__constructs__[e._hx_index]._hx_name); } this.buf.b += ":"; var params = Type.enumParameters(v); this.buf.b += Std.string(params.length); var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; this.serialize(p); } if(this.useCache) { this.cache.push(v); } break; default: throw haxe_Exception.thrown("Cannot serialize " + Std.string(v)); } } ,serializeException: function(e) { this.buf.b += "x"; this.serialize(e); } ,__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 = new Date().getTime() / 1000; var r = f(); haxe_Log.trace(new Date().getTime() / 1000 - 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_DefaultResolver = function() { }; $hxClasses["haxe._Unserializer.DefaultResolver"] = haxe__$Unserializer_DefaultResolver; haxe__$Unserializer_DefaultResolver.__name__ = "haxe._Unserializer.DefaultResolver"; haxe__$Unserializer_DefaultResolver.prototype = { resolveClass: function(name) { return $hxClasses[name]; } ,resolveEnum: function(name) { return $hxEnums[name]; } ,__class__: haxe__$Unserializer_DefaultResolver }; var haxe_Unserializer = function(buf) { this.buf = buf; this.length = this.buf.length; this.pos = 0; this.scache = []; this.cache = []; var r = haxe_Unserializer.DEFAULT_RESOLVER; if(r == null) { r = new haxe__$Unserializer_DefaultResolver(); haxe_Unserializer.DEFAULT_RESOLVER = r; } this.resolver = r; }; $hxClasses["haxe.Unserializer"] = haxe_Unserializer; haxe_Unserializer.__name__ = "haxe.Unserializer"; haxe_Unserializer.initCodes = function() { var codes = []; var _g = 0; var _g1 = haxe_Unserializer.BASE64.length; while(_g < _g1) { var i = _g++; codes[haxe_Unserializer.BASE64.charCodeAt(i)] = i; } return codes; }; haxe_Unserializer.run = function(v) { return new haxe_Unserializer(v).unserialize(); }; haxe_Unserializer.fastLength = function(s) { return s.length; }; haxe_Unserializer.fastCharCodeAt = function(s,pos) { return HxOverrides.cca(s,pos); }; haxe_Unserializer.fastCharAt = function(s,pos) { return s.charAt(pos); }; haxe_Unserializer.fastSubstr = function(s,pos,length) { return HxOverrides.substr(s,pos,length); }; haxe_Unserializer.prototype = { buf: null ,pos: null ,length: null ,cache: null ,scache: null ,resolver: null ,setResolver: function(r) { if(r == null) { if(haxe__$Unserializer_NullResolver.instance == null) { haxe__$Unserializer_NullResolver.instance = new haxe__$Unserializer_NullResolver(); } this.resolver = haxe__$Unserializer_NullResolver.instance; } else { this.resolver = r; } } ,getResolver: function() { return this.resolver; } ,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 != c) { break; } if(c >= 43 && c < 58 || c == 101 || c == 69) { this.pos++; } else { break; } } return parseFloat(HxOverrides.substr(this.buf,p1,this.pos - p1)); } ,unserializeObject: function(o) { while(true) { if(this.pos >= this.length) { throw haxe_Exception.thrown("Invalid object"); } if(this.buf.charCodeAt(this.pos) == 103) { break; } var k = this.unserialize(); if(typeof(k) != "string") { throw haxe_Exception.thrown("Invalid object key"); } var v = this.unserialize(); o[k] = v; } this.pos++; } ,unserializeEnum: function(edecl,tag) { if(this.buf.charCodeAt(this.pos++) != 58) { throw haxe_Exception.thrown("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() { switch(this.buf.charCodeAt(this.pos++)) { case 65: var name = this.unserialize(); var cl = this.resolver.resolveClass(name); if(cl == null) { throw haxe_Exception.thrown("Class not found " + name); } return cl; case 66: var name = this.unserialize(); var e = this.resolver.resolveEnum(name); if(e == null) { throw haxe_Exception.thrown("Enum not found " + name); } return e; case 67: var name = this.unserialize(); var cl = this.resolver.resolveClass(name); if(cl == null) { throw haxe_Exception.thrown("Class not found " + name); } var o = Object.create(cl.prototype); this.cache.push(o); o.hxUnserialize(this); if(this.buf.charCodeAt(this.pos++) != 103) { throw haxe_Exception.thrown("Invalid custom data"); } return o; case 77: var h = new haxe_ds_ObjectMap(); this.cache.push(h); var buf = this.buf; while(this.buf.charCodeAt(this.pos) != 104) { var s = this.unserialize(); h.set(s,this.unserialize()); } this.pos++; return h; case 82: var n = this.readDigits(); if(n < 0 || n >= this.scache.length) { throw haxe_Exception.thrown("Invalid string reference"); } return this.scache[n]; 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 98: var h = new haxe_ds_StringMap(); this.cache.push(h); var buf = this.buf; while(this.buf.charCodeAt(this.pos) != 104) { var s = this.unserialize(); var value = this.unserialize(); h.h[s] = value; } this.pos++; return h; case 99: var name = this.unserialize(); var cl = this.resolver.resolveClass(name); if(cl == null) { throw haxe_Exception.thrown("Class not found " + name); } var o = Object.create(cl.prototype); this.cache.push(o); this.unserializeObject(o); return o; case 100: return this.readFloat(); case 102: return false; case 105: return this.readDigits(); case 106: var name = this.unserialize(); var edecl = this.resolver.resolveEnum(name); if(edecl == null) { throw haxe_Exception.thrown("Enum not found " + name); } this.pos++; var index = this.readDigits(); var _this = edecl.__constructs__; var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = _this[i]._hx_name; } var tag = result[index]; if(tag == null) { throw haxe_Exception.thrown("Unknown enum index " + name + "@" + index); } var e = this.unserializeEnum(edecl,tag); this.cache.push(e); return e; case 107: return NaN; case 108: var l = new haxe_ds_List(); this.cache.push(l); var buf = this.buf; while(this.buf.charCodeAt(this.pos) != 104) l.add(this.unserialize()); this.pos++; return l; case 109: return -Infinity; case 110: return null; case 111: var o = { }; this.cache.push(o); this.unserializeObject(o); return o; case 112: return Infinity; case 113: var h = new haxe_ds_IntMap(); this.cache.push(h); var buf = this.buf; var c = this.buf.charCodeAt(this.pos++); while(c == 58) { var i = this.readDigits(); var value = this.unserialize(); h.h[i] = value; c = this.buf.charCodeAt(this.pos++); } if(c != 104) { throw haxe_Exception.thrown("Invalid IntMap format"); } return h; case 114: var n = this.readDigits(); if(n < 0 || n >= this.cache.length) { throw haxe_Exception.thrown("Invalid reference"); } return this.cache[n]; case 115: var len = this.readDigits(); var buf = this.buf; if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) { throw haxe_Exception.thrown("Invalid bytes length"); } var codes = haxe_Unserializer.CODES; if(codes == null) { codes = haxe_Unserializer.initCodes(); haxe_Unserializer.CODES = codes; } var i = this.pos; var rest = len & 3; var size = (len >> 2) * 3 + (rest >= 2 ? rest - 1 : 0); var max = i + (len - rest); var bytes = new haxe_io_Bytes(new ArrayBuffer(size)); var bpos = 0; while(i < max) { var c1 = codes[buf.charCodeAt(i++)]; var c2 = codes[buf.charCodeAt(i++)]; bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255; var c3 = codes[buf.charCodeAt(i++)]; bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255; var c4 = codes[buf.charCodeAt(i++)]; bytes.b[bpos++] = (c3 << 6 | c4) & 255; } if(rest >= 2) { var c1 = codes[buf.charCodeAt(i++)]; var c2 = codes[buf.charCodeAt(i++)]; bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255; if(rest == 3) { var c3 = codes[buf.charCodeAt(i++)]; bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255; } } this.pos += len; this.cache.push(bytes); return bytes; case 116: return true; 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) { d = HxOverrides.strDate(HxOverrides.substr(this.buf,this.pos,19)); this.pos += 19; } else { d = new Date(this.readFloat()); } this.cache.push(d); return d; case 119: var name = this.unserialize(); var edecl = this.resolver.resolveEnum(name); if(edecl == null) { throw haxe_Exception.thrown("Enum not found " + name); } var e = this.unserializeEnum(edecl,this.unserialize()); this.cache.push(e); return e; case 120: throw haxe_Exception.thrown(this.unserialize()); case 121: var len = this.readDigits(); if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) { throw haxe_Exception.thrown("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 122: return 0; default: } this.pos--; throw haxe_Exception.thrown("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos); } ,__class__: haxe_Unserializer }; var haxe__$Unserializer_NullResolver = function() { }; $hxClasses["haxe._Unserializer.NullResolver"] = haxe__$Unserializer_NullResolver; haxe__$Unserializer_NullResolver.__name__ = "haxe._Unserializer.NullResolver"; haxe__$Unserializer_NullResolver.__properties__ = {get_instance:"get_instance"}; haxe__$Unserializer_NullResolver.instance = null; haxe__$Unserializer_NullResolver.get_instance = function() { if(haxe__$Unserializer_NullResolver.instance == null) { haxe__$Unserializer_NullResolver.instance = new haxe__$Unserializer_NullResolver(); } return haxe__$Unserializer_NullResolver.instance; }; haxe__$Unserializer_NullResolver.prototype = { resolveClass: function(name) { return null; } ,resolveEnum: function(name) { return null; } ,__class__: haxe__$Unserializer_NullResolver }; var haxe_Utf8 = function(size) { this.__b = ""; }; $hxClasses["haxe.Utf8"] = haxe_Utf8; haxe_Utf8.__name__ = "haxe.Utf8"; haxe_Utf8.iter = function(s,chars) { var _g = 0; var _g1 = s.length; while(_g < _g1) { var i = _g++; chars(HxOverrides.cca(s,i)); } }; haxe_Utf8.encode = function(s) { throw new haxe_exceptions_NotImplementedException(null,null,{ fileName : "haxe/Utf8.hx", lineNumber : 66, className : "haxe.Utf8", methodName : "encode"}); }; haxe_Utf8.decode = function(s) { throw new haxe_exceptions_NotImplementedException(null,null,{ fileName : "haxe/Utf8.hx", lineNumber : 74, className : "haxe.Utf8", methodName : "decode"}); }; haxe_Utf8.charCodeAt = function(s,index) { return HxOverrides.cca(s,index); }; haxe_Utf8.validate = function(s) { return true; }; haxe_Utf8.compare = function(a,b) { if(a > b) { return 1; } else if(a == b) { return 0; } else { return -1; } }; haxe_Utf8.sub = function(s,pos,len) { return HxOverrides.substr(s,pos,len); }; haxe_Utf8.prototype = { __b: null ,addChar: function(c) { this.__b += String.fromCodePoint(c); } ,toString: function() { return this.__b; } ,__class__: haxe_Utf8 }; var haxe_ValueException = function(value,previous,native) { haxe_Exception.call(this,String(value),previous,native); this.value = value; this.__skipStack++; }; $hxClasses["haxe.ValueException"] = haxe_ValueException; haxe_ValueException.__name__ = "haxe.ValueException"; haxe_ValueException.__super__ = haxe_Exception; haxe_ValueException.prototype = $extend(haxe_Exception.prototype,{ value: null ,unwrap: function() { return this.value; } ,__class__: haxe_ValueException }); var haxe_crypto_Adler32 = function() { this.a1 = 1; this.a2 = 0; }; $hxClasses["haxe.crypto.Adler32"] = haxe_crypto_Adler32; haxe_crypto_Adler32.__name__ = "haxe.crypto.Adler32"; haxe_crypto_Adler32.read = function(i) { var a = new haxe_crypto_Adler32(); var a2a = i.readByte(); var a2b = i.readByte(); var a1a = i.readByte(); var a1b = i.readByte(); a.a1 = a1a << 8 | a1b; a.a2 = a2a << 8 | a2b; return a; }; haxe_crypto_Adler32.make = function(b) { var a = new haxe_crypto_Adler32(); a.update(b,0,b.length); return a.get(); }; haxe_crypto_Adler32.prototype = { a1: null ,a2: null ,get: function() { return this.a2 << 16 | this.a1; } ,update: function(b,pos,len) { var a1 = this.a1; var a2 = this.a2; var _g = pos; var _g1 = pos + len; while(_g < _g1) { var p = _g++; var c = b.b[p]; a1 = (a1 + c) % 65521; a2 = (a2 + a1) % 65521; } this.a1 = a1; this.a2 = a2; } ,equals: function(a) { if(a.a1 == this.a1) { return a.a2 == this.a2; } else { return false; } } ,toString: function() { return StringTools.hex(this.a2,8) + StringTools.hex(this.a1,8); } ,__class__: haxe_crypto_Adler32 }; var haxe_crypto_Base64 = function() { }; $hxClasses["haxe.crypto.Base64"] = haxe_crypto_Base64; haxe_crypto_Base64.__name__ = "haxe.crypto.Base64"; haxe_crypto_Base64.encode = function(bytes,complement) { if(complement == null) { complement = true; } var str = new haxe_crypto_BaseCode(haxe_crypto_Base64.BYTES).encodeBytes(bytes).toString(); if(complement) { switch(bytes.length % 3) { case 1: str += "=="; break; case 2: str += "="; break; default: } } return str; }; 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)); }; haxe_crypto_Base64.urlEncode = function(bytes,complement) { if(complement == null) { complement = false; } var str = new haxe_crypto_BaseCode(haxe_crypto_Base64.URL_BYTES).encodeBytes(bytes).toString(); if(complement) { switch(bytes.length % 3) { case 1: str += "=="; break; case 2: str += "="; break; default: } } return str; }; haxe_crypto_Base64.urlDecode = function(str,complement) { if(complement == null) { complement = false; } if(complement) { while(HxOverrides.cca(str,str.length - 1) == 61) str = HxOverrides.substr(str,0,-1); } return new haxe_crypto_BaseCode(haxe_crypto_Base64.URL_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 haxe_Exception.thrown("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.encode = function(s,base) { var b = new haxe_crypto_BaseCode(haxe_io_Bytes.ofString(base)); return b.encodeString(s); }; haxe_crypto_BaseCode.decode = function(s,base) { var b = new haxe_crypto_BaseCode(haxe_io_Bytes.ofString(base)); return b.decodeString(s); }; 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 = new haxe_io_Bytes(new ArrayBuffer(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.b[pin++]; } curbits -= nbits; out.b[pout++] = base.b[buf >> curbits & mask] & 255; } if(curbits > 0) { out.b[pout++] = base.b[buf << nbits - curbits & mask] & 255; } return out; } ,initTable: function() { var tbl = []; var _g = 0; while(_g < 256) { var i = _g++; tbl[i] = -1; } var _g = 0; var _g1 = this.base.length; while(_g < _g1) { var i = _g++; tbl[this.base.b[i]] = i; } 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 = new haxe_io_Bytes(new ArrayBuffer(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.b[pin++]]; if(i == -1) { throw haxe_Exception.thrown("BaseCode : invalid encoded char"); } buf |= i; } curbits -= 8; out.b[pout++] = buf >> curbits & 255 & 255; } return out; } ,encodeString: function(s) { return this.encodeBytes(haxe_io_Bytes.ofString(s)).toString(); } ,decodeString: function(s) { return this.decodeBytes(haxe_io_Bytes.ofString(s)).toString(); } ,__class__: haxe_crypto_BaseCode }; var haxe_crypto_Crc32 = function() { this.crc = -1; }; $hxClasses["haxe.crypto.Crc32"] = haxe_crypto_Crc32; haxe_crypto_Crc32.__name__ = "haxe.crypto.Crc32"; haxe_crypto_Crc32.make = function(data) { var c_crc = -1; var b = data.b.bufferValue; var _g = 0; var _g1 = data.length; while(_g < _g1) { var i = _g++; var tmp = (c_crc ^ b.bytes[i]) & 255; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; c_crc = c_crc >>> 8 ^ tmp; } return c_crc ^ -1; }; haxe_crypto_Crc32.prototype = { crc: null ,byte: function(b) { var tmp = (this.crc ^ b) & 255; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; this.crc = this.crc >>> 8 ^ tmp; } ,update: function(b,pos,len) { var b1 = b.b.bufferValue; var _g = pos; var _g1 = pos + len; while(_g < _g1) { var i = _g++; var tmp = (this.crc ^ b1.bytes[i]) & 255; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; tmp = tmp >>> 1 ^ -(tmp & 1) & -306674912; this.crc = this.crc >>> 8 ^ tmp; } } ,get: function() { return this.crc ^ -1; } ,__class__: haxe_crypto_Crc32 }; 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.make = function(b) { var h = new haxe_crypto_Md5().doEncode(haxe_crypto_Md5.bytes2blks(b)); var out = new haxe_io_Bytes(new ArrayBuffer(16)); var p = 0; out.b[p++] = h[0] & 255 & 255; out.b[p++] = h[0] >> 8 & 255 & 255; out.b[p++] = h[0] >> 16 & 255 & 255; out.b[p++] = h[0] >>> 24 & 255; out.b[p++] = h[1] & 255 & 255; out.b[p++] = h[1] >> 8 & 255 & 255; out.b[p++] = h[1] >> 16 & 255 & 255; out.b[p++] = h[1] >>> 24 & 255; out.b[p++] = h[2] & 255 & 255; out.b[p++] = h[2] >> 8 & 255 & 255; out.b[p++] = h[2] >> 16 & 255 & 255; out.b[p++] = h[2] >>> 24 & 255; out.b[p++] = h[3] & 255 & 255; out.b[p++] = h[3] >> 8 & 255 & 255; out.b[p++] = h[3] >> 16 & 255 & 255; out.b[p++] = h[3] >>> 24 & 255; return out; }; haxe_crypto_Md5.bytes2blks = function(b) { var nblk = (b.length + 8 >> 6) + 1; var blks = []; var blksSize = nblk * 16; var _g = 0; var _g1 = blksSize; while(_g < _g1) { var i = _g++; blks[i] = 0; } var i = 0; while(i < b.length) { blks[i >> 2] |= b.b[i] << (((b.length << 3) + i & 3) << 3); ++i; } blks[i >> 2] |= 128 << (b.length * 8 + i) % 4 * 8; var l = b.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.str2blks = function(str) { var str1 = haxe_io_Bytes.ofString(str); var nblk = (str1.length + 8 >> 6) + 1; var blks = []; var blksSize = nblk * 16; var _g = 0; var _g1 = blksSize; while(_g < _g1) { var i = _g++; blks[i] = 0; } var i = 0; var max = str1.length; var l = max * 8; while(i < max) { blks[i >> 2] |= str1.b[i] << (l + i) % 4 * 8; ++i; } blks[i >> 2] |= 128 << (l + i) % 4 * 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; str += hex_chr.charAt(num >> 4 & 15) + hex_chr.charAt(num & 15); str += hex_chr.charAt(num >> 12 & 15) + hex_chr.charAt(num >> 8 & 15); str += hex_chr.charAt(num >> 20 & 15) + hex_chr.charAt(num >> 16 & 15); str += hex_chr.charAt(num >> 28 & 15) + hex_chr.charAt(num >> 24 & 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_crypto_Sha1 = function() { }; $hxClasses["haxe.crypto.Sha1"] = haxe_crypto_Sha1; haxe_crypto_Sha1.__name__ = "haxe.crypto.Sha1"; haxe_crypto_Sha1.encode = function(s) { var sh = new haxe_crypto_Sha1(); var h = sh.doEncode(haxe_crypto_Sha1.str2blks(s)); return sh.hex(h); }; haxe_crypto_Sha1.make = function(b) { var h = new haxe_crypto_Sha1().doEncode(haxe_crypto_Sha1.bytes2blks(b)); var out = new haxe_io_Bytes(new ArrayBuffer(20)); var p = 0; out.b[p++] = h[0] >>> 24 & 255; out.b[p++] = h[0] >> 16 & 255 & 255; out.b[p++] = h[0] >> 8 & 255 & 255; out.b[p++] = h[0] & 255 & 255; out.b[p++] = h[1] >>> 24 & 255; out.b[p++] = h[1] >> 16 & 255 & 255; out.b[p++] = h[1] >> 8 & 255 & 255; out.b[p++] = h[1] & 255 & 255; out.b[p++] = h[2] >>> 24 & 255; out.b[p++] = h[2] >> 16 & 255 & 255; out.b[p++] = h[2] >> 8 & 255 & 255; out.b[p++] = h[2] & 255 & 255; out.b[p++] = h[3] >>> 24 & 255; out.b[p++] = h[3] >> 16 & 255 & 255; out.b[p++] = h[3] >> 8 & 255 & 255; out.b[p++] = h[3] & 255 & 255; out.b[p++] = h[4] >>> 24 & 255; out.b[p++] = h[4] >> 16 & 255 & 255; out.b[p++] = h[4] >> 8 & 255 & 255; out.b[p++] = h[4] & 255 & 255; return out; }; haxe_crypto_Sha1.str2blks = function(s) { var s1 = haxe_io_Bytes.ofString(s); var nblk = (s1.length + 8 >> 6) + 1; var blks = []; var _g = 0; var _g1 = nblk * 16; while(_g < _g1) { var i = _g++; blks[i] = 0; } var _g = 0; var _g1 = s1.length; while(_g < _g1) { var i = _g++; var p = i >> 2; blks[p] |= s1.b[i] << 24 - ((i & 3) << 3); } var i = s1.length; var p = i >> 2; blks[p] |= 128 << 24 - ((i & 3) << 3); blks[nblk * 16 - 1] = s1.length * 8; return blks; }; haxe_crypto_Sha1.bytes2blks = function(b) { var nblk = (b.length + 8 >> 6) + 1; var blks = []; var _g = 0; var _g1 = nblk * 16; while(_g < _g1) { var i = _g++; blks[i] = 0; } var _g = 0; var _g1 = b.length; while(_g < _g1) { var i = _g++; var p = i >> 2; blks[p] |= b.b[i] << 24 - ((i & 3) << 3); } var i = b.length; var p = i >> 2; blks[p] |= 128 << 24 - ((i & 3) << 3); blks[nblk * 16 - 1] = b.length * 8; return blks; }; haxe_crypto_Sha1.prototype = { doEncode: function(x) { var w = []; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; var e = -1009589776; var i = 0; while(i < x.length) { var olda = a; var oldb = b; var oldc = c; var oldd = d; var olde = e; var j = 0; while(j < 80) { if(j < 16) { w[j] = x[i + j]; } else { var num = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16]; w[j] = num << 1 | num >>> 31; } var t = (a << 5 | a >>> 27) + this.ft(j,b,c,d) + e + w[j] + this.kt(j); e = d; d = c; c = b << 30 | b >>> 2; b = a; a = t; ++j; } a += olda; b += oldb; c += oldc; d += oldd; e += olde; i += 16; } return [a,b,c,d,e]; } ,rol: function(num,cnt) { return num << cnt | num >>> 32 - cnt; } ,ft: function(t,b,c,d) { if(t < 20) { return b & c | ~b & d; } if(t < 40) { return b ^ c ^ d; } if(t < 60) { return b & c | b & d | c & d; } return b ^ c ^ d; } ,kt: function(t) { if(t < 20) { return 1518500249; } if(t < 40) { return 1859775393; } if(t < 60) { return -1894007588; } return -899497514; } ,hex: function(a) { var str = ""; var _g = 0; while(_g < a.length) { var num = a[_g]; ++_g; str += StringTools.hex(num,8); } return str.toLowerCase(); } ,__class__: haxe_crypto_Sha1 }; var haxe_display_DisplayMethods = function() { }; $hxClasses["haxe.display.DisplayMethods"] = haxe_display_DisplayMethods; haxe_display_DisplayMethods.__name__ = "haxe.display.DisplayMethods"; var haxe_display_FsPath = {}; haxe_display_FsPath._new = function(path) { return path; }; haxe_display_FsPath.toString = function(this1) { return this1; }; var haxe_display_Methods = function() { }; $hxClasses["haxe.display.Methods"] = haxe_display_Methods; haxe_display_Methods.__name__ = "haxe.display.Methods"; var haxe_display_HaxeRequestMethod = {}; haxe_display_HaxeRequestMethod._new = function(method) { return method; }; var haxe_display_HaxeNotificationMethod = {}; haxe_display_HaxeNotificationMethod._new = function(method) { return method; }; var haxe_display_NoData = $hxEnums["haxe.display.NoData"] = { __ename__:"haxe.display.NoData",__constructs__:null }; haxe_display_NoData.__constructs__ = []; haxe_display_NoData.__empty_constructs__ = []; var haxe_ds_ArraySort = function() { }; $hxClasses["haxe.ds.ArraySort"] = haxe_ds_ArraySort; haxe_ds_ArraySort.__name__ = "haxe.ds.ArraySort"; haxe_ds_ArraySort.sort = function(a,cmp) { haxe_ds_ArraySort.rec(a,cmp,0,a.length); }; haxe_ds_ArraySort.rec = function(a,cmp,from,to) { var middle = from + to >> 1; if(to - from < 12) { if(to <= from) { return; } var _g = from + 1; var _g1 = to; while(_g < _g1) { var i = _g++; var j = i; while(j > from) { if(cmp(a[j],a[j - 1]) < 0) { haxe_ds_ArraySort.swap(a,j - 1,j); } else { break; } --j; } } return; } haxe_ds_ArraySort.rec(a,cmp,from,middle); haxe_ds_ArraySort.rec(a,cmp,middle,to); haxe_ds_ArraySort.doMerge(a,cmp,from,middle,to,middle - from,to - middle); }; haxe_ds_ArraySort.doMerge = function(a,cmp,from,pivot,to,len1,len2) { var first_cut; var second_cut; var len11; var len22; if(len1 == 0 || len2 == 0) { return; } if(len1 + len2 == 2) { if(cmp(a[pivot],a[from]) < 0) { haxe_ds_ArraySort.swap(a,pivot,from); } return; } if(len1 > len2) { len11 = len1 >> 1; first_cut = from + len11; second_cut = haxe_ds_ArraySort.lower(a,cmp,pivot,to,first_cut); len22 = second_cut - pivot; } else { len22 = len2 >> 1; second_cut = pivot + len22; first_cut = haxe_ds_ArraySort.upper(a,cmp,from,pivot,second_cut); len11 = first_cut - from; } haxe_ds_ArraySort.rotate(a,cmp,first_cut,pivot,second_cut); var new_mid = first_cut + len22; haxe_ds_ArraySort.doMerge(a,cmp,from,first_cut,new_mid,len11,len22); haxe_ds_ArraySort.doMerge(a,cmp,new_mid,second_cut,to,len1 - len11,len2 - len22); }; haxe_ds_ArraySort.rotate = function(a,cmp,from,mid,to) { if(from == mid || mid == to) { return; } var n = haxe_ds_ArraySort.gcd(to - from,mid - from); while(n-- != 0) { var val = a[from + n]; var shift = mid - from; var p1 = from + n; var p2 = from + n + shift; while(p2 != from + n) { a[p1] = a[p2]; p1 = p2; if(to - p2 > shift) { p2 += shift; } else { p2 = from + (shift - (to - p2)); } } a[p1] = val; } }; haxe_ds_ArraySort.gcd = function(m,n) { while(n != 0) { var t = m % n; m = n; n = t; } return m; }; haxe_ds_ArraySort.upper = function(a,cmp,from,to,val) { var len = to - from; var half; var mid; while(len > 0) { half = len >> 1; mid = from + half; if(cmp(a[val],a[mid]) < 0) { len = half; } else { from = mid + 1; len = len - half - 1; } } return from; }; haxe_ds_ArraySort.lower = function(a,cmp,from,to,val) { var len = to - from; var half; var mid; while(len > 0) { half = len >> 1; mid = from + half; if(cmp(a[mid],a[val]) < 0) { from = mid + 1; len = len - half - 1; } else { len = half; } } return from; }; haxe_ds_ArraySort.swap = function(a,i,j) { var tmp = a[i]; a[i] = a[j]; a[j] = tmp; }; haxe_ds_ArraySort.compare = function(a,cmp,i,j) { return cmp(a[i],a[j]); }; var haxe_ds_BalancedTree = function() { }; $hxClasses["haxe.ds.BalancedTree"] = haxe_ds_BalancedTree; haxe_ds_BalancedTree.__name__ = "haxe.ds.BalancedTree"; haxe_ds_BalancedTree.__interfaces__ = [haxe_IMap]; haxe_ds_BalancedTree.iteratorLoop = function(node,acc) { if(node != null) { haxe_ds_BalancedTree.iteratorLoop(node.left,acc); acc.push(node.value); haxe_ds_BalancedTree.iteratorLoop(node.right,acc); } }; haxe_ds_BalancedTree.prototype = { root: null ,set: function(key,value) { this.root = this.setLoop(key,value,this.root); } ,get: function(key) { var node = this.root; while(node != null) { var c = this.compare(key,node.key); if(c == 0) { return node.value; } if(c < 0) { node = node.left; } else { node = node.right; } } return null; } ,remove: function(key) { try { this.root = this.removeLoop(key,this.root); return true; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; if(typeof(haxe_Exception.caught(_g).unwrap()) == "string") { return false; } else { throw _g; } } } ,exists: function(key) { var node = this.root; while(node != null) { var c = this.compare(key,node.key); if(c == 0) { return true; } else if(c < 0) { node = node.left; } else { node = node.right; } } return false; } ,iterator: function() { var ret = []; haxe_ds_BalancedTree.iteratorLoop(this.root,ret); return new haxe_iterators_ArrayIterator(ret); } ,keyValueIterator: function() { return new haxe_iterators_MapKeyValueIterator(this); } ,keys: function() { var ret = []; this.keysLoop(this.root,ret); return new haxe_iterators_ArrayIterator(ret); } ,copy: function() { var copied = new haxe_ds_BalancedTree(); copied.root = this.root; return copied; } ,setLoop: function(k,v,node) { if(node == null) { return new haxe_ds_TreeNode(null,k,v,null); } var c = this.compare(k,node.key); if(c == 0) { return new haxe_ds_TreeNode(node.left,k,v,node.right,node == null ? 0 : node._height); } else if(c < 0) { var nl = this.setLoop(k,v,node.left); return this.balance(nl,node.key,node.value,node.right); } else { var nr = this.setLoop(k,v,node.right); return this.balance(node.left,node.key,node.value,nr); } } ,removeLoop: function(k,node) { if(node == null) { throw haxe_Exception.thrown("Not_found"); } var c = this.compare(k,node.key); if(c == 0) { return this.merge(node.left,node.right); } else if(c < 0) { return this.balance(this.removeLoop(k,node.left),node.key,node.value,node.right); } else { return this.balance(node.left,node.key,node.value,this.removeLoop(k,node.right)); } } ,keysLoop: function(node,acc) { if(node != null) { this.keysLoop(node.left,acc); acc.push(node.key); this.keysLoop(node.right,acc); } } ,merge: function(t1,t2) { if(t1 == null) { return t2; } if(t2 == null) { return t1; } var t = this.minBinding(t2); return this.balance(t1,t.key,t.value,this.removeMinBinding(t2)); } ,minBinding: function(t) { if(t == null) { throw haxe_Exception.thrown("Not_found"); } else if(t.left == null) { return t; } else { return this.minBinding(t.left); } } ,removeMinBinding: function(t) { if(t.left == null) { return t.right; } else { return this.balance(this.removeMinBinding(t.left),t.key,t.value,t.right); } } ,balance: function(l,k,v,r) { var hl = l == null ? 0 : l._height; var hr = r == null ? 0 : r._height; if(hl > hr + 2) { var _this = l.left; var _this1 = l.right; if((_this == null ? 0 : _this._height) >= (_this1 == null ? 0 : _this1._height)) { return new haxe_ds_TreeNode(l.left,l.key,l.value,new haxe_ds_TreeNode(l.right,k,v,r)); } else { return new haxe_ds_TreeNode(new haxe_ds_TreeNode(l.left,l.key,l.value,l.right.left),l.right.key,l.right.value,new haxe_ds_TreeNode(l.right.right,k,v,r)); } } else if(hr > hl + 2) { var _this = r.right; var _this1 = r.left; if((_this == null ? 0 : _this._height) > (_this1 == null ? 0 : _this1._height)) { return new haxe_ds_TreeNode(new haxe_ds_TreeNode(l,k,v,r.left),r.key,r.value,r.right); } else { return new haxe_ds_TreeNode(new haxe_ds_TreeNode(l,k,v,r.left.left),r.left.key,r.left.value,new haxe_ds_TreeNode(r.left.right,r.key,r.value,r.right)); } } else { return new haxe_ds_TreeNode(l,k,v,r,(hl > hr ? hl : hr) + 1); } } ,compare: function(k1,k2) { return Reflect.compare(k1,k2); } ,toString: function() { if(this.root == null) { return "[]"; } else { return "[" + this.root.toString() + "]"; } } ,clear: function() { this.root = null; } ,__class__: haxe_ds_BalancedTree }; var haxe_ds_TreeNode = function(l,k,v,r,h) { if(h == null) { h = -1; } this.left = l; this.key = k; this.value = v; this.right = r; if(h == -1) { var tmp; var _this = this.left; var _this1 = this.right; if((_this == null ? 0 : _this._height) > (_this1 == null ? 0 : _this1._height)) { var _this = this.left; tmp = _this == null ? 0 : _this._height; } else { var _this = this.right; tmp = _this == null ? 0 : _this._height; } this._height = tmp + 1; } else { this._height = h; } }; $hxClasses["haxe.ds.TreeNode"] = haxe_ds_TreeNode; haxe_ds_TreeNode.__name__ = "haxe.ds.TreeNode"; haxe_ds_TreeNode.prototype = { left: null ,right: null ,key: null ,value: null ,_height: null ,toString: function() { return (this.left == null ? "" : this.left.toString() + ", ") + ("" + Std.string(this.key) + " => " + Std.string(this.value)) + (this.right == null ? "" : ", " + this.right.toString()); } ,__class__: haxe_ds_TreeNode }; var haxe_ds_Either = $hxEnums["haxe.ds.Either"] = { __ename__:"haxe.ds.Either",__constructs__:null ,Left: ($_=function(v) { return {_hx_index:0,v:v,__enum__:"haxe.ds.Either",toString:$estr}; },$_._hx_name="Left",$_.__params__ = ["v"],$_) ,Right: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"haxe.ds.Either",toString:$estr}; },$_._hx_name="Right",$_.__params__ = ["v"],$_) }; haxe_ds_Either.__constructs__ = [haxe_ds_Either.Left,haxe_ds_Either.Right]; haxe_ds_Either.__empty_constructs__ = []; var haxe_ds_EnumValueMap = function() { haxe_ds_BalancedTree.call(this); }; $hxClasses["haxe.ds.EnumValueMap"] = haxe_ds_EnumValueMap; haxe_ds_EnumValueMap.__name__ = "haxe.ds.EnumValueMap"; haxe_ds_EnumValueMap.__interfaces__ = [haxe_IMap]; haxe_ds_EnumValueMap.__super__ = haxe_ds_BalancedTree; haxe_ds_EnumValueMap.prototype = $extend(haxe_ds_BalancedTree.prototype,{ compare: function(k1,k2) { var d = k1._hx_index - k2._hx_index; if(d != 0) { return d; } var p1 = Type.enumParameters(k1); var p2 = Type.enumParameters(k2); if(p1.length == 0 && p2.length == 0) { return 0; } return this.compareArgs(p1,p2); } ,compareArgs: function(a1,a2) { var ld = a1.length - a2.length; if(ld != 0) { return ld; } var _g = 0; var _g1 = a1.length; while(_g < _g1) { var i = _g++; var d = this.compareArg(a1[i],a2[i]); if(d != 0) { return d; } } return 0; } ,compareArg: function(v1,v2) { if(Reflect.isEnumValue(v1) && Reflect.isEnumValue(v2)) { return this.compare(v1,v2); } else if(((v1) instanceof Array) && ((v2) instanceof Array)) { return this.compareArgs(v1,v2); } else { return Reflect.compare(v1,v2); } } ,copy: function() { var copied = new haxe_ds_EnumValueMap(); copied.root = this.root; return copied; } ,__class__: haxe_ds_EnumValueMap }); 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; } ,get: function(key) { return this.h[key]; } ,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); return new haxe_iterators_ArrayIterator(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]; }}; } ,keyValueIterator: function() { return new haxe_iterators_MapKeyValueIterator(this); } ,copy: function() { var copied = new haxe_ds_IntMap(); var key = this.keys(); while(key.hasNext()) { var key1 = key.next(); copied.h[key1] = this.h[key1]; } return copied; } ,toString: function() { var s_b = ""; s_b += "["; var it = this.keys(); var i = it; while(i.hasNext()) { var i1 = i.next(); s_b += i1 == null ? "null" : "" + i1; s_b += " => "; s_b += Std.string(Std.string(this.h[i1])); if(it.hasNext()) { s_b += ", "; } } s_b += "]"; return s_b; } ,clear: function() { this.h = { }; } ,__class__: haxe_ds_IntMap }; var haxe_ds__$List_ListNode = function(item,next) { this.item = item; this.next = next; }; $hxClasses["haxe.ds._List.ListNode"] = haxe_ds__$List_ListNode; haxe_ds__$List_ListNode.__name__ = "haxe.ds._List.ListNode"; haxe_ds__$List_ListNode.prototype = { item: null ,next: null ,__class__: haxe_ds__$List_ListNode }; var haxe_ds__$List_ListIterator = function(head) { this.head = head; }; $hxClasses["haxe.ds._List.ListIterator"] = haxe_ds__$List_ListIterator; haxe_ds__$List_ListIterator.__name__ = "haxe.ds._List.ListIterator"; haxe_ds__$List_ListIterator.prototype = { head: null ,hasNext: function() { return this.head != null; } ,next: function() { var val = this.head.item; this.head = this.head.next; return val; } ,__class__: haxe_ds__$List_ListIterator }; var haxe_ds__$List_ListKeyValueIterator = function(head) { this.head = head; this.idx = 0; }; $hxClasses["haxe.ds._List.ListKeyValueIterator"] = haxe_ds__$List_ListKeyValueIterator; haxe_ds__$List_ListKeyValueIterator.__name__ = "haxe.ds._List.ListKeyValueIterator"; haxe_ds__$List_ListKeyValueIterator.prototype = { idx: null ,head: null ,hasNext: function() { return this.head != null; } ,next: function() { var val = this.head.item; this.head = this.head.next; return { value : val, key : this.idx++}; } ,__class__: haxe_ds__$List_ListKeyValueIterator }; var haxe_ds_Option = $hxEnums["haxe.ds.Option"] = { __ename__:"haxe.ds.Option",__constructs__:null ,Some: ($_=function(v) { return {_hx_index:0,v:v,__enum__:"haxe.ds.Option",toString:$estr}; },$_._hx_name="Some",$_.__params__ = ["v"],$_) ,None: {_hx_name:"None",_hx_index:1,__enum__:"haxe.ds.Option",toString:$estr} }; haxe_ds_Option.__constructs__ = [haxe_ds_Option.Some,haxe_ds_Option.None]; haxe_ds_Option.__empty_constructs__ = [haxe_ds_Option.None]; var haxe_ds_ReadOnlyArray = {}; haxe_ds_ReadOnlyArray.__properties__ = {get_length:"get_length"}; haxe_ds_ReadOnlyArray.get_length = function(this1) { return this1.length; }; haxe_ds_ReadOnlyArray.get = function(this1,i) { return this1[i]; }; haxe_ds_ReadOnlyArray.concat = function(this1,a) { return this1.concat(a); }; var haxe_ds_StringMap = function() { this.h = Object.create(null); }; $hxClasses["haxe.ds.StringMap"] = haxe_ds_StringMap; haxe_ds_StringMap.__name__ = "haxe.ds.StringMap"; haxe_ds_StringMap.__interfaces__ = [haxe_IMap]; haxe_ds_StringMap.createCopy = function(h) { var copy = new haxe_ds_StringMap(); for (var key in h) copy.h[key] = h[key]; return copy; }; haxe_ds_StringMap.stringify = function(h) { var s = "["; var first = true; for (var key in h) { if (first) first = false; else s += ','; s += key + ' => ' + Std.string(h[key]); } return s + "]"; }; haxe_ds_StringMap.prototype = { h: null ,exists: function(key) { return Object.prototype.hasOwnProperty.call(this.h,key); } ,get: function(key) { return this.h[key]; } ,set: function(key,value) { this.h[key] = value; } ,remove: function(key) { if(Object.prototype.hasOwnProperty.call(this.h,key)) { delete(this.h[key]); return true; } else { return false; } } ,keys: function() { return new haxe_ds__$StringMap_StringMapKeyIterator(this.h); } ,iterator: function() { return new haxe_ds__$StringMap_StringMapValueIterator(this.h); } ,keyValueIterator: function() { return new haxe_ds__$StringMap_StringMapKeyValueIterator(this.h); } ,copy: function() { return haxe_ds_StringMap.createCopy(this.h); } ,clear: function() { this.h = Object.create(null); } ,toString: function() { return haxe_ds_StringMap.stringify(this.h); } ,__class__: haxe_ds_StringMap }; var haxe_ds__$StringMap_StringMapKeyIterator = function(h) { this.h = h; this.keys = Object.keys(h); this.length = this.keys.length; this.current = 0; }; $hxClasses["haxe.ds._StringMap.StringMapKeyIterator"] = haxe_ds__$StringMap_StringMapKeyIterator; haxe_ds__$StringMap_StringMapKeyIterator.__name__ = "haxe.ds._StringMap.StringMapKeyIterator"; haxe_ds__$StringMap_StringMapKeyIterator.prototype = { h: null ,keys: null ,length: null ,current: null ,hasNext: function() { return this.current < this.length; } ,next: function() { return this.keys[this.current++]; } ,__class__: haxe_ds__$StringMap_StringMapKeyIterator }; var haxe_ds__$StringMap_StringMapValueIterator = function(h) { this.h = h; this.keys = Object.keys(h); this.length = this.keys.length; this.current = 0; }; $hxClasses["haxe.ds._StringMap.StringMapValueIterator"] = haxe_ds__$StringMap_StringMapValueIterator; haxe_ds__$StringMap_StringMapValueIterator.__name__ = "haxe.ds._StringMap.StringMapValueIterator"; haxe_ds__$StringMap_StringMapValueIterator.prototype = { h: null ,keys: null ,length: null ,current: null ,hasNext: function() { return this.current < this.length; } ,next: function() { return this.h[this.keys[this.current++]]; } ,__class__: haxe_ds__$StringMap_StringMapValueIterator }; var haxe_ds__$StringMap_StringMapKeyValueIterator = function(h) { this.h = h; this.keys = Object.keys(h); this.length = this.keys.length; this.current = 0; }; $hxClasses["haxe.ds._StringMap.StringMapKeyValueIterator"] = haxe_ds__$StringMap_StringMapKeyValueIterator; haxe_ds__$StringMap_StringMapKeyValueIterator.__name__ = "haxe.ds._StringMap.StringMapKeyValueIterator"; haxe_ds__$StringMap_StringMapKeyValueIterator.prototype = { h: null ,keys: null ,length: null ,current: null ,hasNext: function() { return this.current < this.length; } ,next: function() { var key = this.keys[this.current++]; return { key : key, value : this.h[key]}; } ,__class__: haxe_ds__$StringMap_StringMapKeyValueIterator }; var haxe_ds_Vector = {}; haxe_ds_Vector.__properties__ = {get_length:"get_length"}; haxe_ds_Vector.get = function(this1,index) { return this1[index]; }; haxe_ds_Vector.set = function(this1,index,val) { return this1[index] = val; }; haxe_ds_Vector.get_length = function(this1) { return this1.length; }; haxe_ds_Vector.fill = function(this1,value) { var _g = 0; var _g1 = this1.length; while(_g < _g1) { var i = _g++; this1[i] = value; } }; haxe_ds_Vector.blit = function(src,srcPos,dest,destPos,len) { if(src == dest) { if(srcPos < destPos) { var i = srcPos + len; var j = destPos + len; var _g = 0; var _g1 = len; while(_g < _g1) { var k = _g++; --i; --j; src[j] = src[i]; } } else if(srcPos > destPos) { var i = srcPos; var j = destPos; var _g = 0; var _g1 = len; while(_g < _g1) { var k = _g++; src[j] = src[i]; ++i; ++j; } } } else { var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; dest[destPos + i] = src[srcPos + i]; } } }; haxe_ds_Vector.toArray = function(this1) { return this1.slice(0); }; haxe_ds_Vector.toData = function(this1) { return this1; }; haxe_ds_Vector.fromData = function(data) { return data; }; haxe_ds_Vector.fromArrayCopy = function(array) { return array.slice(0); }; haxe_ds_Vector.copy = function(this1) { var r = new Array(this1.length); haxe_ds_Vector.blit(this1,0,r,0,this1.length); return r; }; haxe_ds_Vector.join = function(this1,sep) { var b_b = ""; var len = this1.length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; b_b += Std.string(Std.string(this1[i])); if(i < len - 1) { b_b += sep == null ? "null" : "" + sep; } } return b_b; }; haxe_ds_Vector.map = function(this1,f) { var length = this1.length; var r = new Array(length); var len = length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; var v = f(this1[i]); r[i] = v; } return r; }; haxe_ds_Vector.sort = function(this1,f) { this1.sort(f); }; var haxe_exceptions_PosException = function(message,previous,pos) { haxe_Exception.call(this,message,previous); if(pos == null) { this.posInfos = { fileName : "(unknown)", lineNumber : 0, className : "(unknown)", methodName : "(unknown)"}; } else { this.posInfos = pos; } this.__skipStack++; }; $hxClasses["haxe.exceptions.PosException"] = haxe_exceptions_PosException; haxe_exceptions_PosException.__name__ = "haxe.exceptions.PosException"; haxe_exceptions_PosException.__super__ = haxe_Exception; haxe_exceptions_PosException.prototype = $extend(haxe_Exception.prototype,{ posInfos: null ,toString: function() { return "" + haxe_Exception.prototype.toString.call(this) + " in " + this.posInfos.className + "." + this.posInfos.methodName + " at " + this.posInfos.fileName + ":" + this.posInfos.lineNumber; } ,__class__: haxe_exceptions_PosException }); var haxe_exceptions_NotImplementedException = function(message,previous,pos) { if(message == null) { message = "Not implemented"; } haxe_exceptions_PosException.call(this,message,previous,pos); this.__skipStack++; }; $hxClasses["haxe.exceptions.NotImplementedException"] = haxe_exceptions_NotImplementedException; haxe_exceptions_NotImplementedException.__name__ = "haxe.exceptions.NotImplementedException"; haxe_exceptions_NotImplementedException.__super__ = haxe_exceptions_PosException; haxe_exceptions_NotImplementedException.prototype = $extend(haxe_exceptions_PosException.prototype,{ __class__: haxe_exceptions_NotImplementedException }); var haxe_format_JsonParser = function(str) { this.str = str; this.pos = 0; }; $hxClasses["haxe.format.JsonParser"] = haxe_format_JsonParser; haxe_format_JsonParser.__name__ = "haxe.format.JsonParser"; haxe_format_JsonParser.parse = function(str) { return new haxe_format_JsonParser(str).doParse(); }; haxe_format_JsonParser.prototype = { str: null ,pos: null ,doParse: function() { var result = this.parseRec(); var c; while(true) { c = this.str.charCodeAt(this.pos++); var c1 = c; if(!(c1 == c1)) { break; } switch(c) { case 9:case 10:case 13:case 32: break; default: this.invalidChar(); } } return result; } ,parseRec: function() { while(true) { var c = this.str.charCodeAt(this.pos++); switch(c) { case 9:case 10:case 13:case 32: break; case 34: return this.parseString(); case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: var c1 = c; var start = this.pos - 1; var minus = c1 == 45; var digit = !minus; var zero = c1 == 48; var point = false; var e = false; var pm = false; var end = false; do { c1 = this.str.charCodeAt(this.pos++); switch(c1) { case 43:case 45: if(!e || pm) { this.invalidNumber(start); } digit = false; pm = true; break; case 46: if(minus || point || e) { this.invalidNumber(start); } digit = false; point = true; break; case 48: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; zero = true; } digit = true; break; case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; } digit = true; zero = false; break; case 69:case 101: if(minus || zero || e) { this.invalidNumber(start); } digit = false; e = true; break; default: if(!digit) { this.invalidNumber(start); } this.pos--; end = true; } } while(!end); var f = parseFloat(HxOverrides.substr(this.str,start,this.pos - start)); if(point) { return f; } else { var i = f | 0; if(i == f) { return i; } else { return f; } } break; case 91: var arr = []; var comma = null; while(true) { var c2 = this.str.charCodeAt(this.pos++); switch(c2) { case 9:case 10:case 13:case 32: break; case 44: if(comma) { comma = false; } else { this.invalidChar(); } break; case 93: if(comma == false) { this.invalidChar(); } return arr; default: if(comma) { this.invalidChar(); } this.pos--; arr.push(this.parseRec()); comma = true; } } break; case 102: var save = this.pos; if(this.str.charCodeAt(this.pos++) != 97 || this.str.charCodeAt(this.pos++) != 108 || this.str.charCodeAt(this.pos++) != 115 || this.str.charCodeAt(this.pos++) != 101) { this.pos = save; this.invalidChar(); } return false; case 110: var save1 = this.pos; if(this.str.charCodeAt(this.pos++) != 117 || this.str.charCodeAt(this.pos++) != 108 || this.str.charCodeAt(this.pos++) != 108) { this.pos = save1; this.invalidChar(); } return null; case 116: var save2 = this.pos; if(this.str.charCodeAt(this.pos++) != 114 || this.str.charCodeAt(this.pos++) != 117 || this.str.charCodeAt(this.pos++) != 101) { this.pos = save2; this.invalidChar(); } return true; case 123: var obj = { }; var field = null; var comma1 = null; while(true) { var c3 = this.str.charCodeAt(this.pos++); switch(c3) { case 9:case 10:case 13:case 32: break; case 34: if(field != null || comma1) { this.invalidChar(); } field = this.parseString(); break; case 44: if(comma1) { comma1 = false; } else { this.invalidChar(); } break; case 58: if(field == null) { this.invalidChar(); } obj[field] = this.parseRec(); field = null; comma1 = true; break; case 125: if(field != null || comma1 == false) { this.invalidChar(); } return obj; default: this.invalidChar(); } } break; default: this.invalidChar(); } } } ,parseString: function() { var start = this.pos; var buf = null; var prev = -1; while(true) { var c = this.str.charCodeAt(this.pos++); if(c == 34) { break; } if(c == 92) { if(buf == null) { buf = new StringBuf(); } var s = this.str; var len = this.pos - start - 1; buf.b += len == null ? HxOverrides.substr(s,start,null) : HxOverrides.substr(s,start,len); c = this.str.charCodeAt(this.pos++); if(c != 117 && prev != -1) { buf.b += String.fromCodePoint(65533); prev = -1; } switch(c) { case 34:case 47:case 92: buf.b += String.fromCodePoint(c); break; case 98: buf.b += String.fromCodePoint(8); break; case 102: buf.b += String.fromCodePoint(12); break; case 110: buf.b += String.fromCodePoint(10); break; case 114: buf.b += String.fromCodePoint(13); break; case 116: buf.b += String.fromCodePoint(9); break; case 117: var uc = Std.parseInt("0x" + HxOverrides.substr(this.str,this.pos,4)); this.pos += 4; if(prev != -1) { if(uc < 56320 || uc > 57343) { buf.b += String.fromCodePoint(65533); prev = -1; } else { buf.b += String.fromCodePoint(((prev - 55296 << 10) + (uc - 56320) + 65536)); prev = -1; } } else if(uc >= 55296 && uc <= 56319) { prev = uc; } else { buf.b += String.fromCodePoint(uc); } break; default: throw haxe_Exception.thrown("Invalid escape sequence \\" + String.fromCodePoint(c) + " at position " + (this.pos - 1)); } start = this.pos; } else if(c != c) { throw haxe_Exception.thrown("Unclosed string"); } } if(prev != -1) { buf.b += String.fromCodePoint(65533); prev = -1; } if(buf == null) { return HxOverrides.substr(this.str,start,this.pos - start - 1); } else { var s = this.str; var len = this.pos - start - 1; buf.b += len == null ? HxOverrides.substr(s,start,null) : HxOverrides.substr(s,start,len); return buf.b; } } ,parseNumber: function(c) { var start = this.pos - 1; var minus = c == 45; var digit = !minus; var zero = c == 48; var point = false; var e = false; var pm = false; var end = false; do { c = this.str.charCodeAt(this.pos++); switch(c) { case 43:case 45: if(!e || pm) { this.invalidNumber(start); } digit = false; pm = true; break; case 46: if(minus || point || e) { this.invalidNumber(start); } digit = false; point = true; break; case 48: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; zero = true; } digit = true; break; case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; } digit = true; zero = false; break; case 69:case 101: if(minus || zero || e) { this.invalidNumber(start); } digit = false; e = true; break; default: if(!digit) { this.invalidNumber(start); } this.pos--; end = true; } } while(!end); var f = parseFloat(HxOverrides.substr(this.str,start,this.pos - start)); if(point) { return f; } else { var i = f | 0; if(i == f) { return i; } else { return f; } } } ,nextChar: function() { return this.str.charCodeAt(this.pos++); } ,invalidChar: function() { this.pos--; throw haxe_Exception.thrown("Invalid char " + this.str.charCodeAt(this.pos) + " at position " + this.pos); } ,invalidNumber: function(start) { throw haxe_Exception.thrown("Invalid number at position " + start + ": " + HxOverrides.substr(this.str,start,this.pos - start)); } ,__class__: haxe_format_JsonParser }; var haxe_io_ArrayBufferView = {}; haxe_io_ArrayBufferView.__properties__ = {get_byteLength:"get_byteLength",get_byteOffset:"get_byteOffset",get_buffer:"get_buffer"}; haxe_io_ArrayBufferView._new = function(size) { return new Uint8Array(size); }; haxe_io_ArrayBufferView.get_byteOffset = function(this1) { return this1.byteOffset; }; haxe_io_ArrayBufferView.get_byteLength = function(this1) { return this1.byteLength; }; haxe_io_ArrayBufferView.get_buffer = function(this1) { return haxe_io_Bytes.ofData(this1.buffer); }; haxe_io_ArrayBufferView.sub = function(this1,begin,length) { return new Uint8Array(this1.buffer,begin,length == null ? this1.buffer.byteLength - begin : length); }; haxe_io_ArrayBufferView.getData = function(this1) { return this1; }; haxe_io_ArrayBufferView.fromData = function(a) { return a; }; var haxe_io_BytesBuffer = function() { this.pos = 0; this.size = 0; }; $hxClasses["haxe.io.BytesBuffer"] = haxe_io_BytesBuffer; haxe_io_BytesBuffer.__name__ = "haxe.io.BytesBuffer"; haxe_io_BytesBuffer.prototype = { buffer: null ,view: null ,u8: null ,pos: null ,size: null ,get_length: function() { return this.pos; } ,addByte: function(byte) { if(this.pos == this.size) { this.grow(1); } this.view.setUint8(this.pos++,byte); } ,add: function(src) { if(this.pos + src.length > this.size) { this.grow(src.length); } if(this.size == 0) { return; } var sub = new Uint8Array(src.b.buffer,src.b.byteOffset,src.length); this.u8.set(sub,this.pos); this.pos += src.length; } ,addString: function(v,encoding) { this.add(haxe_io_Bytes.ofString(v,encoding)); } ,addInt32: function(v) { if(this.pos + 4 > this.size) { this.grow(4); } this.view.setInt32(this.pos,v,true); this.pos += 4; } ,addInt64: function(v) { if(this.pos + 8 > this.size) { this.grow(8); } this.view.setInt32(this.pos,v.low,true); this.view.setInt32(this.pos + 4,v.high,true); this.pos += 8; } ,addFloat: function(v) { if(this.pos + 4 > this.size) { this.grow(4); } this.view.setFloat32(this.pos,v,true); this.pos += 4; } ,addDouble: function(v) { if(this.pos + 8 > this.size) { this.grow(8); } this.view.setFloat64(this.pos,v,true); this.pos += 8; } ,addBytes: function(src,pos,len) { if(pos < 0 || len < 0 || pos + len > src.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } if(this.pos + len > this.size) { this.grow(len); } if(this.size == 0) { return; } var sub = new Uint8Array(src.b.buffer,src.b.byteOffset + pos,len); this.u8.set(sub,this.pos); this.pos += len; } ,grow: function(delta) { var req = this.pos + delta; var nsize = this.size == 0 ? 16 : this.size; while(nsize < req) nsize = nsize * 3 >> 1; var nbuf = new ArrayBuffer(nsize); var nu8 = new Uint8Array(nbuf); if(this.size > 0) { nu8.set(this.u8); } this.size = nsize; this.buffer = nbuf; this.u8 = nu8; this.view = new DataView(this.buffer); } ,getBytes: function() { if(this.size == 0) { return new haxe_io_Bytes(new ArrayBuffer(0)); } var b = new haxe_io_Bytes(this.buffer); b.length = this.pos; return b; } ,__class__: haxe_io_BytesBuffer ,__properties__: {get_length:"get_length"} }; var haxe_io_Input = function() { }; $hxClasses["haxe.io.Input"] = haxe_io_Input; haxe_io_Input.__name__ = "haxe.io.Input"; haxe_io_Input.prototype = { bigEndian: null ,readByte: function() { throw new haxe_exceptions_NotImplementedException(null,null,{ fileName : "haxe/io/Input.hx", lineNumber : 53, className : "haxe.io.Input", methodName : "readByte"}); } ,readBytes: function(s,pos,len) { var k = len; var b = s.b; if(pos < 0 || len < 0 || pos + len > s.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } try { while(k > 0) { b[pos] = this.readByte(); ++pos; --k; } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; if(!((haxe_Exception.caught(_g).unwrap()) instanceof haxe_io_Eof)) { throw _g; } } return len - k; } ,close: function() { } ,set_bigEndian: function(b) { this.bigEndian = b; return b; } ,readAll: function(bufsize) { if(bufsize == null) { bufsize = 16384; } var buf = new haxe_io_Bytes(new ArrayBuffer(bufsize)); var total = new haxe_io_BytesBuffer(); try { while(true) { var len = this.readBytes(buf,0,bufsize); if(len == 0) { throw haxe_Exception.thrown(haxe_io_Error.Blocked); } total.addBytes(buf,0,len); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; if(!((haxe_Exception.caught(_g).unwrap()) instanceof haxe_io_Eof)) { throw _g; } } return total.getBytes(); } ,readFullBytes: function(s,pos,len) { while(len > 0) { var k = this.readBytes(s,pos,len); if(k == 0) { throw haxe_Exception.thrown(haxe_io_Error.Blocked); } pos += k; len -= k; } } ,read: function(nbytes) { var s = new haxe_io_Bytes(new ArrayBuffer(nbytes)); var p = 0; while(nbytes > 0) { var k = this.readBytes(s,p,nbytes); if(k == 0) { throw haxe_Exception.thrown(haxe_io_Error.Blocked); } p += k; nbytes -= k; } return s; } ,readUntil: function(end) { var buf = new haxe_io_BytesBuffer(); var last; while(true) { last = this.readByte(); if(!(last != end)) { break; } buf.addByte(last); } return buf.getBytes().toString(); } ,readLine: function() { var buf = new haxe_io_BytesBuffer(); var last; var s; try { while(true) { last = this.readByte(); if(!(last != 10)) { break; } buf.addByte(last); } s = buf.getBytes().toString(); if(HxOverrides.cca(s,s.length - 1) == 13) { s = HxOverrides.substr(s,0,-1); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof haxe_io_Eof)) { var e = _g1; s = buf.getBytes().toString(); if(s.length == 0) { throw haxe_Exception.thrown(e); } } else { throw _g; } } return s; } ,readFloat: function() { return haxe_io_FPHelper.i32ToFloat(this.readInt32()); } ,readDouble: function() { var i1 = this.readInt32(); var i2 = this.readInt32(); if(this.bigEndian) { return haxe_io_FPHelper.i64ToDouble(i2,i1); } else { return haxe_io_FPHelper.i64ToDouble(i1,i2); } } ,readInt8: function() { var n = this.readByte(); if(n >= 128) { return n - 256; } return n; } ,readInt16: function() { var ch1 = this.readByte(); var ch2 = this.readByte(); var n = this.bigEndian ? ch2 | ch1 << 8 : ch1 | ch2 << 8; if((n & 32768) != 0) { return n - 65536; } return n; } ,readUInt16: function() { var ch1 = this.readByte(); var ch2 = this.readByte(); if(this.bigEndian) { return ch2 | ch1 << 8; } else { return ch1 | ch2 << 8; } } ,readInt24: function() { var ch1 = this.readByte(); var ch2 = this.readByte(); var ch3 = this.readByte(); var n = this.bigEndian ? ch3 | ch2 << 8 | ch1 << 16 : ch1 | ch2 << 8 | ch3 << 16; if((n & 8388608) != 0) { return n - 16777216; } return n; } ,readUInt24: function() { var ch1 = this.readByte(); var ch2 = this.readByte(); var ch3 = this.readByte(); if(this.bigEndian) { return ch3 | ch2 << 8 | ch1 << 16; } else { return ch1 | ch2 << 8 | ch3 << 16; } } ,readInt32: function() { var ch1 = this.readByte(); var ch2 = this.readByte(); var ch3 = this.readByte(); var ch4 = this.readByte(); if(this.bigEndian) { return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24; } else { return ch1 | ch2 << 8 | ch3 << 16 | ch4 << 24; } } ,readString: function(len,encoding) { var b = new haxe_io_Bytes(new ArrayBuffer(len)); this.readFullBytes(b,0,len); return b.getString(0,len,encoding); } ,getDoubleSig: function(bytes) { return ((bytes[1] & 15) << 16 | bytes[2] << 8 | bytes[3]) * 4294967296. + (bytes[4] >> 7) * 2147483648 + ((bytes[4] & 127) << 24 | bytes[5] << 16 | bytes[6] << 8 | bytes[7]); } ,__class__: haxe_io_Input ,__properties__: {set_bigEndian:"set_bigEndian"} }; var haxe_io_BytesInput = function(b,pos,len) { if(pos == null) { pos = 0; } if(len == null) { len = b.length - pos; } if(pos < 0 || len < 0 || pos + len > b.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } this.b = b.b; this.pos = pos; this.len = len; this.totlen = len; }; $hxClasses["haxe.io.BytesInput"] = haxe_io_BytesInput; haxe_io_BytesInput.__name__ = "haxe.io.BytesInput"; haxe_io_BytesInput.__super__ = haxe_io_Input; haxe_io_BytesInput.prototype = $extend(haxe_io_Input.prototype,{ b: null ,pos: null ,len: null ,totlen: null ,get_position: function() { return this.pos; } ,get_length: function() { return this.totlen; } ,set_position: function(p) { if(p < 0) { p = 0; } else if(p > this.totlen) { p = this.totlen; } this.len = this.totlen - p; return this.pos = p; } ,readByte: function() { if(this.len == 0) { throw haxe_Exception.thrown(new haxe_io_Eof()); } this.len--; return this.b[this.pos++]; } ,readBytes: function(buf,pos,len) { if(pos < 0 || len < 0 || pos + len > buf.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } if(this.len == 0 && len > 0) { throw haxe_Exception.thrown(new haxe_io_Eof()); } if(this.len < len) { len = this.len; } var b1 = this.b; var b2 = buf.b; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; b2[pos + i] = b1[this.pos + i]; } this.pos += len; this.len -= len; return len; } ,__class__: haxe_io_BytesInput ,__properties__: $extend(haxe_io_Input.prototype.__properties__,{get_length:"get_length",set_position:"set_position",get_position:"get_position"}) }); var haxe_io_Output = function() { }; $hxClasses["haxe.io.Output"] = haxe_io_Output; haxe_io_Output.__name__ = "haxe.io.Output"; haxe_io_Output.prototype = { bigEndian: null ,writeByte: function(c) { throw new haxe_exceptions_NotImplementedException(null,null,{ fileName : "haxe/io/Output.hx", lineNumber : 47, className : "haxe.io.Output", methodName : "writeByte"}); } ,writeBytes: function(s,pos,len) { if(pos < 0 || len < 0 || pos + len > s.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } var b = s.b; var k = len; while(k > 0) { this.writeByte(b[pos]); ++pos; --k; } return len; } ,flush: function() { } ,close: function() { } ,set_bigEndian: function(b) { this.bigEndian = b; return b; } ,write: function(s) { var l = s.length; var p = 0; while(l > 0) { var k = this.writeBytes(s,p,l); if(k == 0) { throw haxe_Exception.thrown(haxe_io_Error.Blocked); } p += k; l -= k; } } ,writeFullBytes: function(s,pos,len) { while(len > 0) { var k = this.writeBytes(s,pos,len); pos += k; len -= k; } } ,writeFloat: function(x) { this.writeInt32(haxe_io_FPHelper.floatToI32(x)); } ,writeDouble: function(x) { var i64 = haxe_io_FPHelper.doubleToI64(x); if(this.bigEndian) { this.writeInt32(i64.high); this.writeInt32(i64.low); } else { this.writeInt32(i64.low); this.writeInt32(i64.high); } } ,writeInt8: function(x) { if(x < -128 || x >= 128) { throw haxe_Exception.thrown(haxe_io_Error.Overflow); } this.writeByte(x & 255); } ,writeInt16: function(x) { if(x < -32768 || x >= 32768) { throw haxe_Exception.thrown(haxe_io_Error.Overflow); } this.writeUInt16(x & 65535); } ,writeUInt16: function(x) { if(x < 0 || x >= 65536) { throw haxe_Exception.thrown(haxe_io_Error.Overflow); } if(this.bigEndian) { this.writeByte(x >> 8); this.writeByte(x & 255); } else { this.writeByte(x & 255); this.writeByte(x >> 8); } } ,writeInt24: function(x) { if(x < -8388608 || x >= 8388608) { throw haxe_Exception.thrown(haxe_io_Error.Overflow); } this.writeUInt24(x & 16777215); } ,writeUInt24: function(x) { if(x < 0 || x >= 16777216) { throw haxe_Exception.thrown(haxe_io_Error.Overflow); } if(this.bigEndian) { this.writeByte(x >> 16); this.writeByte(x >> 8 & 255); this.writeByte(x & 255); } else { this.writeByte(x & 255); this.writeByte(x >> 8 & 255); this.writeByte(x >> 16); } } ,writeInt32: function(x) { if(this.bigEndian) { this.writeByte(x >>> 24); this.writeByte(x >> 16 & 255); this.writeByte(x >> 8 & 255); this.writeByte(x & 255); } else { this.writeByte(x & 255); this.writeByte(x >> 8 & 255); this.writeByte(x >> 16 & 255); this.writeByte(x >>> 24); } } ,prepare: function(nbytes) { } ,writeInput: function(i,bufsize) { if(bufsize == null) { bufsize = 4096; } var buf = new haxe_io_Bytes(new ArrayBuffer(bufsize)); try { while(true) { var len = i.readBytes(buf,0,bufsize); if(len == 0) { throw haxe_Exception.thrown(haxe_io_Error.Blocked); } var p = 0; while(len > 0) { var k = this.writeBytes(buf,p,len); if(k == 0) { throw haxe_Exception.thrown(haxe_io_Error.Blocked); } p += k; len -= k; } } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; if(!((haxe_Exception.caught(_g).unwrap()) instanceof haxe_io_Eof)) { throw _g; } } } ,writeString: function(s,encoding) { var b = haxe_io_Bytes.ofString(s,encoding); this.writeFullBytes(b,0,b.length); } ,__class__: haxe_io_Output ,__properties__: {set_bigEndian:"set_bigEndian"} }; var haxe_io_BytesOutput = function() { this.b = new haxe_io_BytesBuffer(); }; $hxClasses["haxe.io.BytesOutput"] = haxe_io_BytesOutput; haxe_io_BytesOutput.__name__ = "haxe.io.BytesOutput"; haxe_io_BytesOutput.__super__ = haxe_io_Output; haxe_io_BytesOutput.prototype = $extend(haxe_io_Output.prototype,{ b: null ,get_length: function() { return this.b.pos; } ,writeByte: function(c) { this.b.addByte(c); } ,writeBytes: function(buf,pos,len) { this.b.addBytes(buf,pos,len); return len; } ,getBytes: function() { return this.b.getBytes(); } ,__class__: haxe_io_BytesOutput ,__properties__: $extend(haxe_io_Output.prototype.__properties__,{get_length:"get_length"}) }); var haxe_io_Encoding = $hxEnums["haxe.io.Encoding"] = { __ename__:"haxe.io.Encoding",__constructs__:null ,UTF8: {_hx_name:"UTF8",_hx_index:0,__enum__:"haxe.io.Encoding",toString:$estr} ,RawNative: {_hx_name:"RawNative",_hx_index:1,__enum__:"haxe.io.Encoding",toString:$estr} }; haxe_io_Encoding.__constructs__ = [haxe_io_Encoding.UTF8,haxe_io_Encoding.RawNative]; haxe_io_Encoding.__empty_constructs__ = [haxe_io_Encoding.UTF8,haxe_io_Encoding.RawNative]; 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 = $hxEnums["haxe.io.Error"] = { __ename__:"haxe.io.Error",__constructs__:null ,Blocked: {_hx_name:"Blocked",_hx_index:0,__enum__:"haxe.io.Error",toString:$estr} ,Overflow: {_hx_name:"Overflow",_hx_index:1,__enum__:"haxe.io.Error",toString:$estr} ,OutsideBounds: {_hx_name:"OutsideBounds",_hx_index:2,__enum__:"haxe.io.Error",toString:$estr} ,Custom: ($_=function(e) { return {_hx_index:3,e:e,__enum__:"haxe.io.Error",toString:$estr}; },$_._hx_name="Custom",$_.__params__ = ["e"],$_) }; haxe_io_Error.__constructs__ = [haxe_io_Error.Blocked,haxe_io_Error.Overflow,haxe_io_Error.OutsideBounds,haxe_io_Error.Custom]; haxe_io_Error.__empty_constructs__ = [haxe_io_Error.Blocked,haxe_io_Error.Overflow,haxe_io_Error.OutsideBounds]; 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 e = i >> 23 & 255; if(e == 255) { if((i & 8388607) == 0) { if(sign > 0) { return Infinity; } else { return -Infinity; } } else { return NaN; } } var m = e == 0 ? (i & 8388607) << 1 : i & 8388607 | 8388608; return sign * m * Math.pow(2,e - 150); }; haxe_io_FPHelper._i64ToDouble = function(lo,hi) { var sign = 1 - (hi >>> 31 << 1); var e = hi >> 20 & 2047; if(e == 2047) { if(lo == 0 && (hi & 1048575) == 0) { if(sign > 0) { return Infinity; } else { return -Infinity; } } else { return NaN; } } var m = 2.220446049250313e-16 * ((hi & 1048575) * 4294967296. + (lo >>> 31) * 2147483648. + (lo & 2147483647)); if(e == 0) { m *= 2.0; } else { m += 1.0; } return sign * m * Math.pow(2,e - 1023); }; haxe_io_FPHelper._floatToI32 = function(f) { if(f == 0) { return 0; } var af = f < 0 ? -f : f; var exp = Math.floor(Math.log(af) / 0.6931471805599453); if(exp > 127) { return 2139095040; } else { if(exp <= -127) { exp = -127; af *= 7.1362384635298e+44; } else { af = (af / Math.pow(2,exp) - 1.0) * 8388608; } return (f < 0 ? -2147483648 : 0) | exp + 127 << 23 | Math.round(af); } }; haxe_io_FPHelper._doubleToI64 = function(v) { var i64 = haxe_io_FPHelper.i64tmp; if(v == 0) { i64.low = 0; i64.high = 0; } else if(!isFinite(v)) { i64.low = 0; i64.high = v > 0 ? 2146435072 : -1048576; } else { var av = v < 0 ? -v : v; var exp = Math.floor(Math.log(av) / 0.6931471805599453); if(exp > 1023) { i64.low = -1; i64.high = 2146435071; } else { if(exp <= -1023) { exp = -1023; av /= 2.2250738585072014e-308; } else { av = av / Math.pow(2,exp) - 1.0; } var sig = Math.round(av * 4503599627370496.); 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; }; haxe_io_FPHelper.i32ToFloat = function(i) { haxe_io_FPHelper.helper.setInt32(0,i,true); return haxe_io_FPHelper.helper.getFloat32(0,true); }; haxe_io_FPHelper.floatToI32 = function(f) { haxe_io_FPHelper.helper.setFloat32(0,f,true); return haxe_io_FPHelper.helper.getInt32(0,true); }; haxe_io_FPHelper.i64ToDouble = function(low,high) { haxe_io_FPHelper.helper.setInt32(0,low,true); haxe_io_FPHelper.helper.setInt32(4,high,true); return haxe_io_FPHelper.helper.getFloat64(0,true); }; haxe_io_FPHelper.doubleToI64 = function(v) { var i64 = haxe_io_FPHelper.i64tmp; haxe_io_FPHelper.helper.setFloat64(0,v,true); i64.low = haxe_io_FPHelper.helper.getInt32(0,true); i64.high = haxe_io_FPHelper.helper.getInt32(4,true); 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.withoutDirectory = function(path) { var s = new haxe_io_Path(path); s.dir = null; return s.toString(); }; haxe_io_Path.directory = function(path) { var s = new haxe_io_Path(path); if(s.dir == null) { return ""; } return s.dir; }; haxe_io_Path.extension = function(path) { var s = new haxe_io_Path(path); if(s.ext == null) { return ""; } return s.ext; }; haxe_io_Path.withExtension = function(path,ext) { var s = new haxe_io_Path(path); s.ext = ext; return s.toString(); }; haxe_io_Path.join = function(paths) { var _g = []; var _g1 = 0; var _g2 = paths; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v != null && v != "") { _g.push(v); } } var paths = _g; if(paths.length == 0) { return ""; } var path = paths[0]; var _g = 1; var _g1 = paths.length; while(_g < _g1) { var i = _g++; path = haxe_io_Path.addTrailingSlash(path); path += paths[i]; } return haxe_io_Path.normalize(path); }; haxe_io_Path.normalize = function(path) { var slash = "/"; path = path.split("\\").join(slash); if(path == slash) { return slash; } var target = []; var _g = 0; var _g1 = path.split(slash); while(_g < _g1.length) { var token = _g1[_g]; ++_g; if(token == ".." && target.length > 0 && target[target.length - 1] != "..") { target.pop(); } else if(token == "") { if(target.length > 0 || HxOverrides.cca(path,0) == 47) { target.push(token); } } else if(token != ".") { target.push(token); } } var tmp = target.join(slash); var acc_b = ""; var colon = false; var slashes = false; var _g_offset = 0; var _g_s = tmp; while(_g_offset < _g_s.length) { var s = _g_s; var index = _g_offset++; var c = s.charCodeAt(index); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023; } var c1 = c; if(c1 >= 65536) { ++_g_offset; } var c2 = c1; switch(c2) { case 47: if(!colon) { slashes = true; } else { var i = c2; colon = false; if(slashes) { acc_b += "/"; slashes = false; } acc_b += String.fromCodePoint(i); } break; case 58: acc_b += ":"; colon = true; break; default: var i1 = c2; colon = false; if(slashes) { acc_b += "/"; slashes = false; } acc_b += String.fromCodePoint(i1); } } return acc_b; }; haxe_io_Path.addTrailingSlash = function(path) { if(path.length == 0) { return "/"; } var c1 = path.lastIndexOf("/"); var c2 = path.lastIndexOf("\\"); if(c1 < c2) { if(c2 != path.length - 1) { return path + "\\"; } else { return path; } } else if(c1 != path.length - 1) { return path + "/"; } else { return path; } }; haxe_io_Path.removeTrailingSlashes = function(path) { _hx_loop1: while(true) { var _g = HxOverrides.cca(path,path.length - 1); if(_g == null) { break; } else { switch(_g) { case 47:case 92: path = HxOverrides.substr(path,0,-1); break; default: break _hx_loop1; } } } return path; }; haxe_io_Path.isAbsolute = function(path) { if(StringTools.startsWith(path,"/")) { return true; } if(path.charAt(1) == ":") { return true; } if(StringTools.startsWith(path,"\\\\")) { return true; } return false; }; haxe_io_Path.unescape = function(path) { var regex = new EReg("-x([0-9][0-9])","g"); return regex.map(path,function(regex) { var code = Std.parseInt(regex.matched(1)); return String.fromCodePoint(code); }); }; haxe_io_Path.escape = function(path,allowSlashes) { if(allowSlashes == null) { allowSlashes = false; } var regex = allowSlashes ? new EReg("[^A-Za-z0-9_/\\\\\\.]","g") : new EReg("[^A-Za-z0-9_\\.]","g"); return regex.map(path,function(v) { return "-x" + HxOverrides.cca(v.matched(0),0); }); }; 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_io_UInt8Array = {}; haxe_io_UInt8Array.__properties__ = {get_view:"get_view",get_length:"get_length"}; haxe_io_UInt8Array._new = function(elements) { return new Uint8Array(elements); }; haxe_io_UInt8Array.get_length = function(this1) { return this1.length; }; haxe_io_UInt8Array.get_view = function(this1) { return this1; }; haxe_io_UInt8Array.get = function(this1,index) { return this1[index]; }; haxe_io_UInt8Array.set = function(this1,index,value) { return this1[index] = value; }; haxe_io_UInt8Array.sub = function(this1,begin,length) { return this1.subarray(begin,length == null ? this1.length : begin + length); }; haxe_io_UInt8Array.subarray = function(this1,begin,end) { return this1.subarray(begin,end); }; haxe_io_UInt8Array.getData = function(this1) { return this1; }; haxe_io_UInt8Array.fromData = function(d) { return d; }; haxe_io_UInt8Array.fromArray = function(a,pos,length) { if(pos == null) { pos = 0; } if(length == null) { length = a.length - pos; } if(pos < 0 || length < 0 || pos + length > a.length) { throw haxe_Exception.thrown(haxe_io_Error.OutsideBounds); } if(pos == 0 && length == a.length) { return new Uint8Array(a); } var i = new Uint8Array(a.length); var _g = 0; var _g1 = length; while(_g < _g1) { var idx = _g++; i[idx] = a[idx + pos]; } return i; }; haxe_io_UInt8Array.fromBytes = function(bytes,bytePos,length) { if(bytePos == null) { bytePos = 0; } if(length == null) { length = bytes.length - bytePos; } return new Uint8Array(bytes.b.bufferValue,bytePos,length); }; var haxe_iterators_ArrayIterator = function(array) { this.current = 0; this.array = array; }; $hxClasses["haxe.iterators.ArrayIterator"] = haxe_iterators_ArrayIterator; haxe_iterators_ArrayIterator.__name__ = "haxe.iterators.ArrayIterator"; haxe_iterators_ArrayIterator.prototype = { array: null ,current: null ,hasNext: function() { return this.current < this.array.length; } ,next: function() { return this.array[this.current++]; } ,__class__: haxe_iterators_ArrayIterator }; var haxe_iterators_ArrayKeyValueIterator = function(array) { this.current = 0; this.array = array; }; $hxClasses["haxe.iterators.ArrayKeyValueIterator"] = haxe_iterators_ArrayKeyValueIterator; haxe_iterators_ArrayKeyValueIterator.__name__ = "haxe.iterators.ArrayKeyValueIterator"; haxe_iterators_ArrayKeyValueIterator.prototype = { current: null ,array: null ,hasNext: function() { return this.current < this.array.length; } ,next: function() { return { value : this.array[this.current], key : this.current++}; } ,__class__: haxe_iterators_ArrayKeyValueIterator }; var haxe_iterators_DynamicAccessIterator = function(access) { this.access = access; this.keys = Reflect.fields(access); this.index = 0; }; $hxClasses["haxe.iterators.DynamicAccessIterator"] = haxe_iterators_DynamicAccessIterator; haxe_iterators_DynamicAccessIterator.__name__ = "haxe.iterators.DynamicAccessIterator"; haxe_iterators_DynamicAccessIterator.prototype = { access: null ,keys: null ,index: null ,hasNext: function() { return this.index < this.keys.length; } ,next: function() { return this.access[this.keys[this.index++]]; } ,__class__: haxe_iterators_DynamicAccessIterator }; var haxe_iterators_DynamicAccessKeyValueIterator = function(access) { this.access = access; this.keys = Reflect.fields(access); this.index = 0; }; $hxClasses["haxe.iterators.DynamicAccessKeyValueIterator"] = haxe_iterators_DynamicAccessKeyValueIterator; haxe_iterators_DynamicAccessKeyValueIterator.__name__ = "haxe.iterators.DynamicAccessKeyValueIterator"; haxe_iterators_DynamicAccessKeyValueIterator.prototype = { access: null ,keys: null ,index: null ,hasNext: function() { return this.index < this.keys.length; } ,next: function() { var key = this.keys[this.index++]; return { value : this.access[key], key : key}; } ,__class__: haxe_iterators_DynamicAccessKeyValueIterator }; var haxe_iterators_MapKeyValueIterator = function(map) { this.map = map; this.keys = map.keys(); }; $hxClasses["haxe.iterators.MapKeyValueIterator"] = haxe_iterators_MapKeyValueIterator; haxe_iterators_MapKeyValueIterator.__name__ = "haxe.iterators.MapKeyValueIterator"; haxe_iterators_MapKeyValueIterator.prototype = { map: null ,keys: null ,hasNext: function() { return this.keys.hasNext(); } ,next: function() { var key = this.keys.next(); return { value : this.map.get(key), key : key}; } ,__class__: haxe_iterators_MapKeyValueIterator }; var haxe_iterators_RestIterator = function(args) { this.current = 0; this.args = args; }; $hxClasses["haxe.iterators.RestIterator"] = haxe_iterators_RestIterator; haxe_iterators_RestIterator.__name__ = "haxe.iterators.RestIterator"; haxe_iterators_RestIterator.prototype = { args: null ,current: null ,hasNext: function() { return this.current < this.args.length; } ,next: function() { return this.args[this.current++]; } ,__class__: haxe_iterators_RestIterator }; var haxe_iterators_RestKeyValueIterator = function(args) { this.current = 0; this.args = args; }; $hxClasses["haxe.iterators.RestKeyValueIterator"] = haxe_iterators_RestKeyValueIterator; haxe_iterators_RestKeyValueIterator.__name__ = "haxe.iterators.RestKeyValueIterator"; haxe_iterators_RestKeyValueIterator.prototype = { args: null ,current: null ,hasNext: function() { return this.current < this.args.length; } ,next: function() { return { key : this.current, value : this.args[this.current++]}; } ,__class__: haxe_iterators_RestKeyValueIterator }; var haxe_iterators_StringIterator = function(s) { this.offset = 0; this.s = s; }; $hxClasses["haxe.iterators.StringIterator"] = haxe_iterators_StringIterator; haxe_iterators_StringIterator.__name__ = "haxe.iterators.StringIterator"; haxe_iterators_StringIterator.prototype = { offset: null ,s: null ,hasNext: function() { return this.offset < this.s.length; } ,next: function() { return this.s.charCodeAt(this.offset++); } ,__class__: haxe_iterators_StringIterator }; var haxe_iterators_StringIteratorUnicode = function(s) { this.offset = 0; this.s = s; }; $hxClasses["haxe.iterators.StringIteratorUnicode"] = haxe_iterators_StringIteratorUnicode; haxe_iterators_StringIteratorUnicode.__name__ = "haxe.iterators.StringIteratorUnicode"; haxe_iterators_StringIteratorUnicode.unicodeIterator = function(s) { return new haxe_iterators_StringIteratorUnicode(s); }; haxe_iterators_StringIteratorUnicode.prototype = { offset: null ,s: null ,hasNext: function() { return this.offset < this.s.length; } ,next: function() { var s = this.s; var index = this.offset++; var c = s.charCodeAt(index); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023; } var c1 = c; if(c1 >= 65536) { this.offset++; } return c1; } ,__class__: haxe_iterators_StringIteratorUnicode }; var haxe_iterators_StringKeyValueIterator = function(s) { this.offset = 0; this.s = s; }; $hxClasses["haxe.iterators.StringKeyValueIterator"] = haxe_iterators_StringKeyValueIterator; haxe_iterators_StringKeyValueIterator.__name__ = "haxe.iterators.StringKeyValueIterator"; haxe_iterators_StringKeyValueIterator.prototype = { offset: null ,s: null ,hasNext: function() { return this.offset < this.s.length; } ,next: function() { return { key : this.offset, value : this.s.charCodeAt(this.offset++)}; } ,__class__: haxe_iterators_StringKeyValueIterator }; var haxe_iterators_StringKeyValueIteratorUnicode = function(s) { this.charOffset = 0; this.byteOffset = 0; this.s = s; }; $hxClasses["haxe.iterators.StringKeyValueIteratorUnicode"] = haxe_iterators_StringKeyValueIteratorUnicode; haxe_iterators_StringKeyValueIteratorUnicode.__name__ = "haxe.iterators.StringKeyValueIteratorUnicode"; haxe_iterators_StringKeyValueIteratorUnicode.unicodeKeyValueIterator = function(s) { return new haxe_iterators_StringKeyValueIteratorUnicode(s); }; haxe_iterators_StringKeyValueIteratorUnicode.prototype = { byteOffset: null ,charOffset: null ,s: null ,hasNext: function() { return this.byteOffset < this.s.length; } ,next: function() { var s = this.s; var index = this.byteOffset++; var c = s.charCodeAt(index); if(c >= 55296 && c <= 56319) { c = c - 55232 << 10 | s.charCodeAt(index + 1) & 1023; } var c1 = c; if(c1 >= 65536) { this.byteOffset++; } return { key : this.charOffset++, value : c1}; } ,__class__: haxe_iterators_StringKeyValueIteratorUnicode }; var haxe_macro_Compiler = function() { }; $hxClasses["haxe.macro.Compiler"] = haxe_macro_Compiler; haxe_macro_Compiler.__name__ = "haxe.macro.Compiler"; var haxe_macro_PackageRule = $hxEnums["haxe.macro.PackageRule"] = { __ename__:"haxe.macro.PackageRule",__constructs__:null ,Forbidden: {_hx_name:"Forbidden",_hx_index:0,__enum__:"haxe.macro.PackageRule",toString:$estr} ,Directory: ($_=function(path) { return {_hx_index:1,path:path,__enum__:"haxe.macro.PackageRule",toString:$estr}; },$_._hx_name="Directory",$_.__params__ = ["path"],$_) ,Remap: ($_=function(path) { return {_hx_index:2,path:path,__enum__:"haxe.macro.PackageRule",toString:$estr}; },$_._hx_name="Remap",$_.__params__ = ["path"],$_) }; haxe_macro_PackageRule.__constructs__ = [haxe_macro_PackageRule.Forbidden,haxe_macro_PackageRule.Directory,haxe_macro_PackageRule.Remap]; haxe_macro_PackageRule.__empty_constructs__ = [haxe_macro_PackageRule.Forbidden]; var haxe_macro_ComplexTypeTools = function() { }; $hxClasses["haxe.macro.ComplexTypeTools"] = haxe_macro_ComplexTypeTools; haxe_macro_ComplexTypeTools.__name__ = "haxe.macro.ComplexTypeTools"; haxe_macro_ComplexTypeTools.toString = function(c) { return new haxe_macro_Printer().printComplexType(c); }; var haxe_macro_Message = $hxEnums["haxe.macro.Message"] = { __ename__:"haxe.macro.Message",__constructs__:null ,Info: ($_=function(msg,pos) { return {_hx_index:0,msg:msg,pos:pos,__enum__:"haxe.macro.Message",toString:$estr}; },$_._hx_name="Info",$_.__params__ = ["msg","pos"],$_) ,Warning: ($_=function(msg,pos) { return {_hx_index:1,msg:msg,pos:pos,__enum__:"haxe.macro.Message",toString:$estr}; },$_._hx_name="Warning",$_.__params__ = ["msg","pos"],$_) }; haxe_macro_Message.__constructs__ = [haxe_macro_Message.Info,haxe_macro_Message.Warning]; haxe_macro_Message.__empty_constructs__ = []; var haxe_macro_Context = function() { }; $hxClasses["haxe.macro.Context"] = haxe_macro_Context; haxe_macro_Context.__name__ = "haxe.macro.Context"; var haxe_macro_StringLiteralKind = $hxEnums["haxe.macro.StringLiteralKind"] = { __ename__:"haxe.macro.StringLiteralKind",__constructs__:null ,DoubleQuotes: {_hx_name:"DoubleQuotes",_hx_index:0,__enum__:"haxe.macro.StringLiteralKind",toString:$estr} ,SingleQuotes: {_hx_name:"SingleQuotes",_hx_index:1,__enum__:"haxe.macro.StringLiteralKind",toString:$estr} }; haxe_macro_StringLiteralKind.__constructs__ = [haxe_macro_StringLiteralKind.DoubleQuotes,haxe_macro_StringLiteralKind.SingleQuotes]; haxe_macro_StringLiteralKind.__empty_constructs__ = [haxe_macro_StringLiteralKind.DoubleQuotes,haxe_macro_StringLiteralKind.SingleQuotes]; var haxe_macro_Constant = $hxEnums["haxe.macro.Constant"] = { __ename__:"haxe.macro.Constant",__constructs__:null ,CInt: ($_=function(v,s) { return {_hx_index:0,v:v,s:s,__enum__:"haxe.macro.Constant",toString:$estr}; },$_._hx_name="CInt",$_.__params__ = ["v","s"],$_) ,CFloat: ($_=function(f,s) { return {_hx_index:1,f:f,s:s,__enum__:"haxe.macro.Constant",toString:$estr}; },$_._hx_name="CFloat",$_.__params__ = ["f","s"],$_) ,CString: ($_=function(s,kind) { return {_hx_index:2,s:s,kind:kind,__enum__:"haxe.macro.Constant",toString:$estr}; },$_._hx_name="CString",$_.__params__ = ["s","kind"],$_) ,CIdent: ($_=function(s) { return {_hx_index:3,s:s,__enum__:"haxe.macro.Constant",toString:$estr}; },$_._hx_name="CIdent",$_.__params__ = ["s"],$_) ,CRegexp: ($_=function(r,opt) { return {_hx_index:4,r:r,opt:opt,__enum__:"haxe.macro.Constant",toString:$estr}; },$_._hx_name="CRegexp",$_.__params__ = ["r","opt"],$_) }; haxe_macro_Constant.__constructs__ = [haxe_macro_Constant.CInt,haxe_macro_Constant.CFloat,haxe_macro_Constant.CString,haxe_macro_Constant.CIdent,haxe_macro_Constant.CRegexp]; haxe_macro_Constant.__empty_constructs__ = []; var haxe_macro_Binop = $hxEnums["haxe.macro.Binop"] = { __ename__:"haxe.macro.Binop",__constructs__:null ,OpAdd: {_hx_name:"OpAdd",_hx_index:0,__enum__:"haxe.macro.Binop",toString:$estr} ,OpMult: {_hx_name:"OpMult",_hx_index:1,__enum__:"haxe.macro.Binop",toString:$estr} ,OpDiv: {_hx_name:"OpDiv",_hx_index:2,__enum__:"haxe.macro.Binop",toString:$estr} ,OpSub: {_hx_name:"OpSub",_hx_index:3,__enum__:"haxe.macro.Binop",toString:$estr} ,OpAssign: {_hx_name:"OpAssign",_hx_index:4,__enum__:"haxe.macro.Binop",toString:$estr} ,OpEq: {_hx_name:"OpEq",_hx_index:5,__enum__:"haxe.macro.Binop",toString:$estr} ,OpNotEq: {_hx_name:"OpNotEq",_hx_index:6,__enum__:"haxe.macro.Binop",toString:$estr} ,OpGt: {_hx_name:"OpGt",_hx_index:7,__enum__:"haxe.macro.Binop",toString:$estr} ,OpGte: {_hx_name:"OpGte",_hx_index:8,__enum__:"haxe.macro.Binop",toString:$estr} ,OpLt: {_hx_name:"OpLt",_hx_index:9,__enum__:"haxe.macro.Binop",toString:$estr} ,OpLte: {_hx_name:"OpLte",_hx_index:10,__enum__:"haxe.macro.Binop",toString:$estr} ,OpAnd: {_hx_name:"OpAnd",_hx_index:11,__enum__:"haxe.macro.Binop",toString:$estr} ,OpOr: {_hx_name:"OpOr",_hx_index:12,__enum__:"haxe.macro.Binop",toString:$estr} ,OpXor: {_hx_name:"OpXor",_hx_index:13,__enum__:"haxe.macro.Binop",toString:$estr} ,OpBoolAnd: {_hx_name:"OpBoolAnd",_hx_index:14,__enum__:"haxe.macro.Binop",toString:$estr} ,OpBoolOr: {_hx_name:"OpBoolOr",_hx_index:15,__enum__:"haxe.macro.Binop",toString:$estr} ,OpShl: {_hx_name:"OpShl",_hx_index:16,__enum__:"haxe.macro.Binop",toString:$estr} ,OpShr: {_hx_name:"OpShr",_hx_index:17,__enum__:"haxe.macro.Binop",toString:$estr} ,OpUShr: {_hx_name:"OpUShr",_hx_index:18,__enum__:"haxe.macro.Binop",toString:$estr} ,OpMod: {_hx_name:"OpMod",_hx_index:19,__enum__:"haxe.macro.Binop",toString:$estr} ,OpAssignOp: ($_=function(op) { return {_hx_index:20,op:op,__enum__:"haxe.macro.Binop",toString:$estr}; },$_._hx_name="OpAssignOp",$_.__params__ = ["op"],$_) ,OpInterval: {_hx_name:"OpInterval",_hx_index:21,__enum__:"haxe.macro.Binop",toString:$estr} ,OpArrow: {_hx_name:"OpArrow",_hx_index:22,__enum__:"haxe.macro.Binop",toString:$estr} ,OpIn: {_hx_name:"OpIn",_hx_index:23,__enum__:"haxe.macro.Binop",toString:$estr} ,OpNullCoal: {_hx_name:"OpNullCoal",_hx_index:24,__enum__:"haxe.macro.Binop",toString:$estr} }; haxe_macro_Binop.__constructs__ = [haxe_macro_Binop.OpAdd,haxe_macro_Binop.OpMult,haxe_macro_Binop.OpDiv,haxe_macro_Binop.OpSub,haxe_macro_Binop.OpAssign,haxe_macro_Binop.OpEq,haxe_macro_Binop.OpNotEq,haxe_macro_Binop.OpGt,haxe_macro_Binop.OpGte,haxe_macro_Binop.OpLt,haxe_macro_Binop.OpLte,haxe_macro_Binop.OpAnd,haxe_macro_Binop.OpOr,haxe_macro_Binop.OpXor,haxe_macro_Binop.OpBoolAnd,haxe_macro_Binop.OpBoolOr,haxe_macro_Binop.OpShl,haxe_macro_Binop.OpShr,haxe_macro_Binop.OpUShr,haxe_macro_Binop.OpMod,haxe_macro_Binop.OpAssignOp,haxe_macro_Binop.OpInterval,haxe_macro_Binop.OpArrow,haxe_macro_Binop.OpIn,haxe_macro_Binop.OpNullCoal]; haxe_macro_Binop.__empty_constructs__ = [haxe_macro_Binop.OpAdd,haxe_macro_Binop.OpMult,haxe_macro_Binop.OpDiv,haxe_macro_Binop.OpSub,haxe_macro_Binop.OpAssign,haxe_macro_Binop.OpEq,haxe_macro_Binop.OpNotEq,haxe_macro_Binop.OpGt,haxe_macro_Binop.OpGte,haxe_macro_Binop.OpLt,haxe_macro_Binop.OpLte,haxe_macro_Binop.OpAnd,haxe_macro_Binop.OpOr,haxe_macro_Binop.OpXor,haxe_macro_Binop.OpBoolAnd,haxe_macro_Binop.OpBoolOr,haxe_macro_Binop.OpShl,haxe_macro_Binop.OpShr,haxe_macro_Binop.OpUShr,haxe_macro_Binop.OpMod,haxe_macro_Binop.OpInterval,haxe_macro_Binop.OpArrow,haxe_macro_Binop.OpIn,haxe_macro_Binop.OpNullCoal]; var haxe_macro_Unop = $hxEnums["haxe.macro.Unop"] = { __ename__:"haxe.macro.Unop",__constructs__:null ,OpIncrement: {_hx_name:"OpIncrement",_hx_index:0,__enum__:"haxe.macro.Unop",toString:$estr} ,OpDecrement: {_hx_name:"OpDecrement",_hx_index:1,__enum__:"haxe.macro.Unop",toString:$estr} ,OpNot: {_hx_name:"OpNot",_hx_index:2,__enum__:"haxe.macro.Unop",toString:$estr} ,OpNeg: {_hx_name:"OpNeg",_hx_index:3,__enum__:"haxe.macro.Unop",toString:$estr} ,OpNegBits: {_hx_name:"OpNegBits",_hx_index:4,__enum__:"haxe.macro.Unop",toString:$estr} ,OpSpread: {_hx_name:"OpSpread",_hx_index:5,__enum__:"haxe.macro.Unop",toString:$estr} }; haxe_macro_Unop.__constructs__ = [haxe_macro_Unop.OpIncrement,haxe_macro_Unop.OpDecrement,haxe_macro_Unop.OpNot,haxe_macro_Unop.OpNeg,haxe_macro_Unop.OpNegBits,haxe_macro_Unop.OpSpread]; haxe_macro_Unop.__empty_constructs__ = [haxe_macro_Unop.OpIncrement,haxe_macro_Unop.OpDecrement,haxe_macro_Unop.OpNot,haxe_macro_Unop.OpNeg,haxe_macro_Unop.OpNegBits,haxe_macro_Unop.OpSpread]; var haxe_macro_EFieldKind = $hxEnums["haxe.macro.EFieldKind"] = { __ename__:"haxe.macro.EFieldKind",__constructs__:null ,Normal: {_hx_name:"Normal",_hx_index:0,__enum__:"haxe.macro.EFieldKind",toString:$estr} ,Safe: {_hx_name:"Safe",_hx_index:1,__enum__:"haxe.macro.EFieldKind",toString:$estr} }; haxe_macro_EFieldKind.__constructs__ = [haxe_macro_EFieldKind.Normal,haxe_macro_EFieldKind.Safe]; haxe_macro_EFieldKind.__empty_constructs__ = [haxe_macro_EFieldKind.Normal,haxe_macro_EFieldKind.Safe]; var haxe_macro_QuoteStatus = $hxEnums["haxe.macro.QuoteStatus"] = { __ename__:"haxe.macro.QuoteStatus",__constructs__:null ,Unquoted: {_hx_name:"Unquoted",_hx_index:0,__enum__:"haxe.macro.QuoteStatus",toString:$estr} ,Quoted: {_hx_name:"Quoted",_hx_index:1,__enum__:"haxe.macro.QuoteStatus",toString:$estr} }; haxe_macro_QuoteStatus.__constructs__ = [haxe_macro_QuoteStatus.Unquoted,haxe_macro_QuoteStatus.Quoted]; haxe_macro_QuoteStatus.__empty_constructs__ = [haxe_macro_QuoteStatus.Unquoted,haxe_macro_QuoteStatus.Quoted]; var haxe_macro_FunctionKind = $hxEnums["haxe.macro.FunctionKind"] = { __ename__:"haxe.macro.FunctionKind",__constructs__:null ,FAnonymous: {_hx_name:"FAnonymous",_hx_index:0,__enum__:"haxe.macro.FunctionKind",toString:$estr} ,FNamed: ($_=function(name,inlined) { return {_hx_index:1,name:name,inlined:inlined,__enum__:"haxe.macro.FunctionKind",toString:$estr}; },$_._hx_name="FNamed",$_.__params__ = ["name","inlined"],$_) ,FArrow: {_hx_name:"FArrow",_hx_index:2,__enum__:"haxe.macro.FunctionKind",toString:$estr} }; haxe_macro_FunctionKind.__constructs__ = [haxe_macro_FunctionKind.FAnonymous,haxe_macro_FunctionKind.FNamed,haxe_macro_FunctionKind.FArrow]; haxe_macro_FunctionKind.__empty_constructs__ = [haxe_macro_FunctionKind.FAnonymous,haxe_macro_FunctionKind.FArrow]; var haxe_macro_ExprDef = $hxEnums["haxe.macro.ExprDef"] = { __ename__:"haxe.macro.ExprDef",__constructs__:null ,EConst: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EConst",$_.__params__ = ["c"],$_) ,EArray: ($_=function(e1,e2) { return {_hx_index:1,e1:e1,e2:e2,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EArray",$_.__params__ = ["e1","e2"],$_) ,EBinop: ($_=function(op,e1,e2) { return {_hx_index:2,op:op,e1:e1,e2:e2,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EBinop",$_.__params__ = ["op","e1","e2"],$_) ,EField: ($_=function(e,field,kind) { return {_hx_index:3,e:e,field:field,kind:kind,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EField",$_.__params__ = ["e","field","kind"],$_) ,EParenthesis: ($_=function(e) { return {_hx_index:4,e:e,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EParenthesis",$_.__params__ = ["e"],$_) ,EObjectDecl: ($_=function(fields) { return {_hx_index:5,fields:fields,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EObjectDecl",$_.__params__ = ["fields"],$_) ,EArrayDecl: ($_=function(values) { return {_hx_index:6,values:values,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EArrayDecl",$_.__params__ = ["values"],$_) ,ECall: ($_=function(e,params) { return {_hx_index:7,e:e,params:params,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ECall",$_.__params__ = ["e","params"],$_) ,ENew: ($_=function(t,params) { return {_hx_index:8,t:t,params:params,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ENew",$_.__params__ = ["t","params"],$_) ,EUnop: ($_=function(op,postFix,e) { return {_hx_index:9,op:op,postFix:postFix,e:e,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EUnop",$_.__params__ = ["op","postFix","e"],$_) ,EVars: ($_=function(vars) { return {_hx_index:10,vars:vars,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EVars",$_.__params__ = ["vars"],$_) ,EFunction: ($_=function(kind,f) { return {_hx_index:11,kind:kind,f:f,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EFunction",$_.__params__ = ["kind","f"],$_) ,EBlock: ($_=function(exprs) { return {_hx_index:12,exprs:exprs,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EBlock",$_.__params__ = ["exprs"],$_) ,EFor: ($_=function(it,expr) { return {_hx_index:13,it:it,expr:expr,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EFor",$_.__params__ = ["it","expr"],$_) ,EIf: ($_=function(econd,eif,eelse) { return {_hx_index:14,econd:econd,eif:eif,eelse:eelse,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EIf",$_.__params__ = ["econd","eif","eelse"],$_) ,EWhile: ($_=function(econd,e,normalWhile) { return {_hx_index:15,econd:econd,e:e,normalWhile:normalWhile,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EWhile",$_.__params__ = ["econd","e","normalWhile"],$_) ,ESwitch: ($_=function(e,cases,edef) { return {_hx_index:16,e:e,cases:cases,edef:edef,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ESwitch",$_.__params__ = ["e","cases","edef"],$_) ,ETry: ($_=function(e,catches) { return {_hx_index:17,e:e,catches:catches,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ETry",$_.__params__ = ["e","catches"],$_) ,EReturn: ($_=function(e) { return {_hx_index:18,e:e,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EReturn",$_.__params__ = ["e"],$_) ,EBreak: {_hx_name:"EBreak",_hx_index:19,__enum__:"haxe.macro.ExprDef",toString:$estr} ,EContinue: {_hx_name:"EContinue",_hx_index:20,__enum__:"haxe.macro.ExprDef",toString:$estr} ,EUntyped: ($_=function(e) { return {_hx_index:21,e:e,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EUntyped",$_.__params__ = ["e"],$_) ,EThrow: ($_=function(e) { return {_hx_index:22,e:e,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EThrow",$_.__params__ = ["e"],$_) ,ECast: ($_=function(e,t) { return {_hx_index:23,e:e,t:t,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ECast",$_.__params__ = ["e","t"],$_) ,EDisplay: ($_=function(e,displayKind) { return {_hx_index:24,e:e,displayKind:displayKind,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EDisplay",$_.__params__ = ["e","displayKind"],$_) ,ETernary: ($_=function(econd,eif,eelse) { return {_hx_index:25,econd:econd,eif:eif,eelse:eelse,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ETernary",$_.__params__ = ["econd","eif","eelse"],$_) ,ECheckType: ($_=function(e,t) { return {_hx_index:26,e:e,t:t,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="ECheckType",$_.__params__ = ["e","t"],$_) ,EMeta: ($_=function(s,e) { return {_hx_index:27,s:s,e:e,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EMeta",$_.__params__ = ["s","e"],$_) ,EIs: ($_=function(e,t) { return {_hx_index:28,e:e,t:t,__enum__:"haxe.macro.ExprDef",toString:$estr}; },$_._hx_name="EIs",$_.__params__ = ["e","t"],$_) }; haxe_macro_ExprDef.__constructs__ = [haxe_macro_ExprDef.EConst,haxe_macro_ExprDef.EArray,haxe_macro_ExprDef.EBinop,haxe_macro_ExprDef.EField,haxe_macro_ExprDef.EParenthesis,haxe_macro_ExprDef.EObjectDecl,haxe_macro_ExprDef.EArrayDecl,haxe_macro_ExprDef.ECall,haxe_macro_ExprDef.ENew,haxe_macro_ExprDef.EUnop,haxe_macro_ExprDef.EVars,haxe_macro_ExprDef.EFunction,haxe_macro_ExprDef.EBlock,haxe_macro_ExprDef.EFor,haxe_macro_ExprDef.EIf,haxe_macro_ExprDef.EWhile,haxe_macro_ExprDef.ESwitch,haxe_macro_ExprDef.ETry,haxe_macro_ExprDef.EReturn,haxe_macro_ExprDef.EBreak,haxe_macro_ExprDef.EContinue,haxe_macro_ExprDef.EUntyped,haxe_macro_ExprDef.EThrow,haxe_macro_ExprDef.ECast,haxe_macro_ExprDef.EDisplay,haxe_macro_ExprDef.ETernary,haxe_macro_ExprDef.ECheckType,haxe_macro_ExprDef.EMeta,haxe_macro_ExprDef.EIs]; haxe_macro_ExprDef.__empty_constructs__ = [haxe_macro_ExprDef.EBreak,haxe_macro_ExprDef.EContinue]; var haxe_macro_DisplayKind = $hxEnums["haxe.macro.DisplayKind"] = { __ename__:"haxe.macro.DisplayKind",__constructs__:null ,DKCall: {_hx_name:"DKCall",_hx_index:0,__enum__:"haxe.macro.DisplayKind",toString:$estr} ,DKDot: {_hx_name:"DKDot",_hx_index:1,__enum__:"haxe.macro.DisplayKind",toString:$estr} ,DKStructure: {_hx_name:"DKStructure",_hx_index:2,__enum__:"haxe.macro.DisplayKind",toString:$estr} ,DKMarked: {_hx_name:"DKMarked",_hx_index:3,__enum__:"haxe.macro.DisplayKind",toString:$estr} ,DKPattern: ($_=function(outermost) { return {_hx_index:4,outermost:outermost,__enum__:"haxe.macro.DisplayKind",toString:$estr}; },$_._hx_name="DKPattern",$_.__params__ = ["outermost"],$_) }; haxe_macro_DisplayKind.__constructs__ = [haxe_macro_DisplayKind.DKCall,haxe_macro_DisplayKind.DKDot,haxe_macro_DisplayKind.DKStructure,haxe_macro_DisplayKind.DKMarked,haxe_macro_DisplayKind.DKPattern]; haxe_macro_DisplayKind.__empty_constructs__ = [haxe_macro_DisplayKind.DKCall,haxe_macro_DisplayKind.DKDot,haxe_macro_DisplayKind.DKStructure,haxe_macro_DisplayKind.DKMarked]; var haxe_macro_ComplexType = $hxEnums["haxe.macro.ComplexType"] = { __ename__:"haxe.macro.ComplexType",__constructs__:null ,TPath: ($_=function(p) { return {_hx_index:0,p:p,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TPath",$_.__params__ = ["p"],$_) ,TFunction: ($_=function(args,ret) { return {_hx_index:1,args:args,ret:ret,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TFunction",$_.__params__ = ["args","ret"],$_) ,TAnonymous: ($_=function(fields) { return {_hx_index:2,fields:fields,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TAnonymous",$_.__params__ = ["fields"],$_) ,TParent: ($_=function(t) { return {_hx_index:3,t:t,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TParent",$_.__params__ = ["t"],$_) ,TExtend: ($_=function(p,fields) { return {_hx_index:4,p:p,fields:fields,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TExtend",$_.__params__ = ["p","fields"],$_) ,TOptional: ($_=function(t) { return {_hx_index:5,t:t,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TOptional",$_.__params__ = ["t"],$_) ,TNamed: ($_=function(n,t) { return {_hx_index:6,n:n,t:t,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TNamed",$_.__params__ = ["n","t"],$_) ,TIntersection: ($_=function(tl) { return {_hx_index:7,tl:tl,__enum__:"haxe.macro.ComplexType",toString:$estr}; },$_._hx_name="TIntersection",$_.__params__ = ["tl"],$_) }; haxe_macro_ComplexType.__constructs__ = [haxe_macro_ComplexType.TPath,haxe_macro_ComplexType.TFunction,haxe_macro_ComplexType.TAnonymous,haxe_macro_ComplexType.TParent,haxe_macro_ComplexType.TExtend,haxe_macro_ComplexType.TOptional,haxe_macro_ComplexType.TNamed,haxe_macro_ComplexType.TIntersection]; haxe_macro_ComplexType.__empty_constructs__ = []; var haxe_macro_TypeParam = $hxEnums["haxe.macro.TypeParam"] = { __ename__:"haxe.macro.TypeParam",__constructs__:null ,TPType: ($_=function(t) { return {_hx_index:0,t:t,__enum__:"haxe.macro.TypeParam",toString:$estr}; },$_._hx_name="TPType",$_.__params__ = ["t"],$_) ,TPExpr: ($_=function(e) { return {_hx_index:1,e:e,__enum__:"haxe.macro.TypeParam",toString:$estr}; },$_._hx_name="TPExpr",$_.__params__ = ["e"],$_) }; haxe_macro_TypeParam.__constructs__ = [haxe_macro_TypeParam.TPType,haxe_macro_TypeParam.TPExpr]; haxe_macro_TypeParam.__empty_constructs__ = []; var haxe_macro_Access = $hxEnums["haxe.macro.Access"] = { __ename__:"haxe.macro.Access",__constructs__:null ,APublic: {_hx_name:"APublic",_hx_index:0,__enum__:"haxe.macro.Access",toString:$estr} ,APrivate: {_hx_name:"APrivate",_hx_index:1,__enum__:"haxe.macro.Access",toString:$estr} ,AStatic: {_hx_name:"AStatic",_hx_index:2,__enum__:"haxe.macro.Access",toString:$estr} ,AOverride: {_hx_name:"AOverride",_hx_index:3,__enum__:"haxe.macro.Access",toString:$estr} ,ADynamic: {_hx_name:"ADynamic",_hx_index:4,__enum__:"haxe.macro.Access",toString:$estr} ,AInline: {_hx_name:"AInline",_hx_index:5,__enum__:"haxe.macro.Access",toString:$estr} ,AMacro: {_hx_name:"AMacro",_hx_index:6,__enum__:"haxe.macro.Access",toString:$estr} ,AFinal: {_hx_name:"AFinal",_hx_index:7,__enum__:"haxe.macro.Access",toString:$estr} ,AExtern: {_hx_name:"AExtern",_hx_index:8,__enum__:"haxe.macro.Access",toString:$estr} ,AAbstract: {_hx_name:"AAbstract",_hx_index:9,__enum__:"haxe.macro.Access",toString:$estr} ,AOverload: {_hx_name:"AOverload",_hx_index:10,__enum__:"haxe.macro.Access",toString:$estr} }; haxe_macro_Access.__constructs__ = [haxe_macro_Access.APublic,haxe_macro_Access.APrivate,haxe_macro_Access.AStatic,haxe_macro_Access.AOverride,haxe_macro_Access.ADynamic,haxe_macro_Access.AInline,haxe_macro_Access.AMacro,haxe_macro_Access.AFinal,haxe_macro_Access.AExtern,haxe_macro_Access.AAbstract,haxe_macro_Access.AOverload]; haxe_macro_Access.__empty_constructs__ = [haxe_macro_Access.APublic,haxe_macro_Access.APrivate,haxe_macro_Access.AStatic,haxe_macro_Access.AOverride,haxe_macro_Access.ADynamic,haxe_macro_Access.AInline,haxe_macro_Access.AMacro,haxe_macro_Access.AFinal,haxe_macro_Access.AExtern,haxe_macro_Access.AAbstract,haxe_macro_Access.AOverload]; var haxe_macro_FieldType = $hxEnums["haxe.macro.FieldType"] = { __ename__:"haxe.macro.FieldType",__constructs__:null ,FVar: ($_=function(t,e) { return {_hx_index:0,t:t,e:e,__enum__:"haxe.macro.FieldType",toString:$estr}; },$_._hx_name="FVar",$_.__params__ = ["t","e"],$_) ,FFun: ($_=function(f) { return {_hx_index:1,f:f,__enum__:"haxe.macro.FieldType",toString:$estr}; },$_._hx_name="FFun",$_.__params__ = ["f"],$_) ,FProp: ($_=function(get,set,t,e) { return {_hx_index:2,get:get,set:set,t:t,e:e,__enum__:"haxe.macro.FieldType",toString:$estr}; },$_._hx_name="FProp",$_.__params__ = ["get","set","t","e"],$_) }; haxe_macro_FieldType.__constructs__ = [haxe_macro_FieldType.FVar,haxe_macro_FieldType.FFun,haxe_macro_FieldType.FProp]; haxe_macro_FieldType.__empty_constructs__ = []; var haxe_macro_TypeDefKind = $hxEnums["haxe.macro.TypeDefKind"] = { __ename__:"haxe.macro.TypeDefKind",__constructs__:null ,TDEnum: {_hx_name:"TDEnum",_hx_index:0,__enum__:"haxe.macro.TypeDefKind",toString:$estr} ,TDStructure: {_hx_name:"TDStructure",_hx_index:1,__enum__:"haxe.macro.TypeDefKind",toString:$estr} ,TDClass: ($_=function(superClass,interfaces,isInterface,isFinal,isAbstract) { return {_hx_index:2,superClass:superClass,interfaces:interfaces,isInterface:isInterface,isFinal:isFinal,isAbstract:isAbstract,__enum__:"haxe.macro.TypeDefKind",toString:$estr}; },$_._hx_name="TDClass",$_.__params__ = ["superClass","interfaces","isInterface","isFinal","isAbstract"],$_) ,TDAlias: ($_=function(t) { return {_hx_index:3,t:t,__enum__:"haxe.macro.TypeDefKind",toString:$estr}; },$_._hx_name="TDAlias",$_.__params__ = ["t"],$_) ,TDAbstract: ($_=function(tthis,flags,from,to) { return {_hx_index:4,tthis:tthis,flags:flags,from:from,to:to,__enum__:"haxe.macro.TypeDefKind",toString:$estr}; },$_._hx_name="TDAbstract",$_.__params__ = ["tthis","flags","from","to"],$_) ,TDField: ($_=function(kind,access) { return {_hx_index:5,kind:kind,access:access,__enum__:"haxe.macro.TypeDefKind",toString:$estr}; },$_._hx_name="TDField",$_.__params__ = ["kind","access"],$_) }; haxe_macro_TypeDefKind.__constructs__ = [haxe_macro_TypeDefKind.TDEnum,haxe_macro_TypeDefKind.TDStructure,haxe_macro_TypeDefKind.TDClass,haxe_macro_TypeDefKind.TDAlias,haxe_macro_TypeDefKind.TDAbstract,haxe_macro_TypeDefKind.TDField]; haxe_macro_TypeDefKind.__empty_constructs__ = [haxe_macro_TypeDefKind.TDEnum,haxe_macro_TypeDefKind.TDStructure]; var haxe_macro_AbstractFlag = $hxEnums["haxe.macro.AbstractFlag"] = { __ename__:"haxe.macro.AbstractFlag",__constructs__:null ,AbEnum: {_hx_name:"AbEnum",_hx_index:0,__enum__:"haxe.macro.AbstractFlag",toString:$estr} ,AbFrom: ($_=function(ct) { return {_hx_index:1,ct:ct,__enum__:"haxe.macro.AbstractFlag",toString:$estr}; },$_._hx_name="AbFrom",$_.__params__ = ["ct"],$_) ,AbTo: ($_=function(ct) { return {_hx_index:2,ct:ct,__enum__:"haxe.macro.AbstractFlag",toString:$estr}; },$_._hx_name="AbTo",$_.__params__ = ["ct"],$_) }; haxe_macro_AbstractFlag.__constructs__ = [haxe_macro_AbstractFlag.AbEnum,haxe_macro_AbstractFlag.AbFrom,haxe_macro_AbstractFlag.AbTo]; haxe_macro_AbstractFlag.__empty_constructs__ = [haxe_macro_AbstractFlag.AbEnum]; var haxe_macro_Error = function(message,pos,previous) { haxe_Exception.call(this,message,previous); this.pos = pos; this.__skipStack++; }; $hxClasses["haxe.macro.Error"] = haxe_macro_Error; haxe_macro_Error.__name__ = "haxe.macro.Error"; haxe_macro_Error.__super__ = haxe_Exception; haxe_macro_Error.prototype = $extend(haxe_Exception.prototype,{ pos: null ,childErrors: null ,__class__: haxe_macro_Error }); var haxe_macro_ImportMode = $hxEnums["haxe.macro.ImportMode"] = { __ename__:"haxe.macro.ImportMode",__constructs__:null ,INormal: {_hx_name:"INormal",_hx_index:0,__enum__:"haxe.macro.ImportMode",toString:$estr} ,IAsName: ($_=function(alias) { return {_hx_index:1,alias:alias,__enum__:"haxe.macro.ImportMode",toString:$estr}; },$_._hx_name="IAsName",$_.__params__ = ["alias"],$_) ,IAll: {_hx_name:"IAll",_hx_index:2,__enum__:"haxe.macro.ImportMode",toString:$estr} }; haxe_macro_ImportMode.__constructs__ = [haxe_macro_ImportMode.INormal,haxe_macro_ImportMode.IAsName,haxe_macro_ImportMode.IAll]; haxe_macro_ImportMode.__empty_constructs__ = [haxe_macro_ImportMode.INormal,haxe_macro_ImportMode.IAll]; var haxe_macro_ExprTools = function() { }; $hxClasses["haxe.macro.ExprTools"] = haxe_macro_ExprTools; haxe_macro_ExprTools.__name__ = "haxe.macro.ExprTools"; haxe_macro_ExprTools.toString = function(e) { return new haxe_macro_Printer().printExpr(e); }; haxe_macro_ExprTools.iter = function(e,f) { var _g = e.expr; switch(_g._hx_index) { case 0: var _g1 = _g.c; break; case 1: var e1 = _g.e1; var e2 = _g.e2; f(e1); f(e2); break; case 2: var _g1 = _g.op; var e1 = _g.e1; var e2 = _g.e2; f(e1); f(e2); break; case 3: var _g1 = _g.field; var _g1 = _g.kind; var e = _g.e; f(e); break; case 4: var e = _g.e; f(e); break; case 5: var fl = _g.fields; var _g1 = 0; while(_g1 < fl.length) { var fd = fl[_g1]; ++_g1; f(fd.expr); } break; case 6: var el = _g.values; haxe_macro_ExprArrayTools.iter(el,f); break; case 7: var e = _g.e; var el = _g.params; f(e); haxe_macro_ExprArrayTools.iter(el,f); break; case 8: var _g1 = _g.t; var el = _g.params; haxe_macro_ExprArrayTools.iter(el,f); break; case 9: var _g1 = _g.op; var _g1 = _g.postFix; var e = _g.e; f(e); break; case 10: var vl = _g.vars; var _g1 = 0; while(_g1 < vl.length) { var v = vl[_g1]; ++_g1; var e = v.expr; if(e != null) { f(e); } } break; case 11: var _g1 = _g.kind; var func = _g.f; var _g1 = 0; var _g2 = func.args; while(_g1 < _g2.length) { var arg = _g2[_g1]; ++_g1; var e = arg.value; if(e != null) { f(e); } } var e = func.expr; if(e != null) { f(e); } break; case 12: var el = _g.exprs; haxe_macro_ExprArrayTools.iter(el,f); break; case 13: var e1 = _g.it; var e2 = _g.expr; f(e1); f(e2); break; case 14: var e1 = _g.econd; var e2 = _g.eif; var e3 = _g.eelse; f(e1); f(e2); if(e3 != null) { f(e3); } break; case 15: var _g1 = _g.normalWhile; var e1 = _g.econd; var e2 = _g.e; f(e1); f(e2); break; case 16: var e = _g.e; var cl = _g.cases; var edef = _g.edef; f(e); var _g1 = 0; while(_g1 < cl.length) { var c = cl[_g1]; ++_g1; haxe_macro_ExprArrayTools.iter(c.values,f); var e = c.guard; if(e != null) { f(e); } var e1 = c.expr; if(e1 != null) { f(e1); } } if(edef != null && edef.expr != null) { f(edef); } break; case 17: var e = _g.e; var cl = _g.catches; f(e); var _g1 = 0; while(_g1 < cl.length) { var c = cl[_g1]; ++_g1; f(c.expr); } break; case 18: var e = _g.e; if(e != null) { f(e); } break; case 19:case 20: break; case 21: var e = _g.e; f(e); break; case 22: var e = _g.e; f(e); break; case 23: var _g1 = _g.t; var e = _g.e; f(e); break; case 24: var _g1 = _g.displayKind; var e = _g.e; f(e); break; case 25: var e1 = _g.econd; var e2 = _g.eif; var e3 = _g.eelse; f(e1); f(e2); if(e3 != null) { f(e3); } break; case 26: var _g1 = _g.t; var e = _g.e; f(e); break; case 27: var _g1 = _g.s; var e = _g.e; f(e); break; case 28: var _g1 = _g.t; var e = _g.e; f(e); break; } }; haxe_macro_ExprTools.map = function(e,f) { var e1 = e.pos; var _g = e.expr; var tmp; switch(_g._hx_index) { case 0: var _g1 = _g.c; tmp = e.expr; break; case 1: var e11 = _g.e1; var e2 = _g.e2; tmp = haxe_macro_ExprDef.EArray(f(e11),f(e2)); break; case 2: var op = _g.op; var e11 = _g.e1; var e2 = _g.e2; tmp = haxe_macro_ExprDef.EBinop(op,f(e11),f(e2)); break; case 3: var e2 = _g.e; var field = _g.field; var kind = _g.kind; tmp = haxe_macro_ExprDef.EField(f(e2),field,kind); break; case 4: var e2 = _g.e; tmp = haxe_macro_ExprDef.EParenthesis(f(e2)); break; case 5: var fields = _g.fields; var ret = []; var _g1 = 0; while(_g1 < fields.length) { var field = fields[_g1]; ++_g1; ret.push({ field : field.field, expr : f(field.expr), quotes : field.quotes}); } tmp = haxe_macro_ExprDef.EObjectDecl(ret); break; case 6: var el = _g.values; tmp = haxe_macro_ExprDef.EArrayDecl(haxe_macro_ExprArrayTools.map(el,f)); break; case 7: var e2 = _g.e; var params = _g.params; tmp = haxe_macro_ExprDef.ECall(f(e2),haxe_macro_ExprArrayTools.map(params,f)); break; case 8: var tp = _g.t; var params = _g.params; tmp = haxe_macro_ExprDef.ENew(tp,haxe_macro_ExprArrayTools.map(params,f)); break; case 9: var op = _g.op; var postFix = _g.postFix; var e2 = _g.e; tmp = haxe_macro_ExprDef.EUnop(op,postFix,f(e2)); break; case 10: var vars = _g.vars; var ret = []; var _g1 = 0; while(_g1 < vars.length) { var v = vars[_g1]; ++_g1; var e2 = v.expr; var v2 = { name : v.name, type : v.type, expr : e2 == null ? null : f(e2)}; if(v.isFinal != null) { v2.isFinal = v.isFinal; } ret.push(v2); } tmp = haxe_macro_ExprDef.EVars(ret); break; case 11: var kind = _g.kind; var func = _g.f; var ret = []; var _g1 = 0; var _g2 = func.args; while(_g1 < _g2.length) { var arg = _g2[_g1]; ++_g1; var e2 = arg.value; ret.push({ name : arg.name, opt : arg.opt, type : arg.type, value : e2 == null ? null : f(e2)}); } tmp = haxe_macro_ExprDef.EFunction(kind,{ args : ret, ret : func.ret, params : func.params, expr : f(func.expr)}); break; case 12: var el = _g.exprs; tmp = haxe_macro_ExprDef.EBlock(haxe_macro_ExprArrayTools.map(el,f)); break; case 13: var it = _g.it; var expr = _g.expr; tmp = haxe_macro_ExprDef.EFor(f(it),f(expr)); break; case 14: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; tmp = haxe_macro_ExprDef.EIf(f(econd),f(eif),eelse == null ? null : f(eelse)); break; case 15: var econd = _g.econd; var e2 = _g.e; var normalWhile = _g.normalWhile; tmp = haxe_macro_ExprDef.EWhile(f(econd),f(e2),normalWhile); break; case 16: var e2 = _g.e; var cases = _g.cases; var edef = _g.edef; var ret = []; var _g1 = 0; while(_g1 < cases.length) { var c = cases[_g1]; ++_g1; var e3 = c.expr; var tmp1 = e3 == null ? null : f(e3); var e4 = c.guard; ret.push({ expr : tmp1, guard : e4 == null ? null : f(e4), values : haxe_macro_ExprArrayTools.map(c.values,f)}); } tmp = haxe_macro_ExprDef.ESwitch(f(e2),ret,edef == null || edef.expr == null ? edef : f(edef)); break; case 17: var e2 = _g.e; var catches = _g.catches; var ret = []; var _g1 = 0; while(_g1 < catches.length) { var c = catches[_g1]; ++_g1; ret.push({ name : c.name, type : c.type, expr : f(c.expr)}); } tmp = haxe_macro_ExprDef.ETry(f(e2),ret); break; case 18: var e2 = _g.e; tmp = haxe_macro_ExprDef.EReturn(e2 == null ? null : f(e2)); break; case 19:case 20: tmp = e.expr; break; case 21: var e = _g.e; tmp = haxe_macro_ExprDef.EUntyped(f(e)); break; case 22: var e = _g.e; tmp = haxe_macro_ExprDef.EThrow(f(e)); break; case 23: var e = _g.e; var t = _g.t; tmp = haxe_macro_ExprDef.ECast(f(e),t); break; case 24: var e = _g.e; var dk = _g.displayKind; tmp = haxe_macro_ExprDef.EDisplay(f(e),dk); break; case 25: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; tmp = haxe_macro_ExprDef.ETernary(f(econd),f(eif),f(eelse)); break; case 26: var e = _g.e; var t = _g.t; tmp = haxe_macro_ExprDef.ECheckType(f(e),t); break; case 27: var m = _g.s; var e = _g.e; tmp = haxe_macro_ExprDef.EMeta(m,f(e)); break; case 28: var e = _g.e; var t = _g.t; tmp = haxe_macro_ExprDef.EIs(f(e),t); break; } return { pos : e1, expr : tmp}; }; haxe_macro_ExprTools.getValue = function(e) { var _g = e.expr; switch(_g._hx_index) { case 0: var _g1 = _g.c; switch(_g1._hx_index) { case 0: var _g2 = _g1.s; var v = _g1.v; return Std.parseInt(v); case 1: var _g2 = _g1.s; var v = _g1.f; return parseFloat(v); case 2: var _g2 = _g1.kind; var s = _g1.s; return s; case 3: switch(_g1.s) { case "false": return false; case "null": return null; case "true": return true; default: throw haxe_Exception.thrown("Unsupported expression: " + Std.string(e)); } break; default: throw haxe_Exception.thrown("Unsupported expression: " + Std.string(e)); } break; case 2: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; var e11 = haxe_macro_ExprTools.getValue(e1); var e21 = haxe_macro_ExprTools.getValue(e2); switch(op._hx_index) { case 0: return e11 + e21; case 1: return e11 * e21; case 2: return e11 / e21; case 3: return e11 - e21; case 5: return e11 == e21; case 6: return e11 != e21; case 7: return e11 > e21; case 8: return e11 >= e21; case 9: return e11 < e21; case 10: return e11 <= e21; case 11: return e11 & e21; case 12: return e11 | e21; case 13: return e11 ^ e21; case 14: if(e11) { return e21; } else { return false; } break; case 15: if(!e11) { return e21; } else { return true; } break; case 16: return e11 << e21; case 17: return e11 >> e21; case 18: return e11 >>> e21; case 19: return e11 % e21; default: throw haxe_Exception.thrown("Unsupported expression: " + Std.string(e)); } break; case 4: var e1 = _g.e; return haxe_macro_ExprTools.getValue(e1); case 5: var fields = _g.fields; var obj = { }; var _g1 = 0; while(_g1 < fields.length) { var field = fields[_g1]; ++_g1; obj[field.field] = haxe_macro_ExprTools.getValue(field.expr); } return obj; case 6: var el = _g.values; var f = haxe_macro_ExprTools.getValue; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return result; case 9: if(_g.postFix == false) { var op = _g.op; var e1 = _g.e; var e11 = haxe_macro_ExprTools.getValue(e1); switch(op._hx_index) { case 2: return !e11; case 3: return -e11; case 4: return ~e11; default: throw haxe_Exception.thrown("Unsupported expression: " + Std.string(e)); } } else { throw haxe_Exception.thrown("Unsupported expression: " + Std.string(e)); } break; case 14: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; if(eelse == null) { throw haxe_Exception.thrown("If statements only have a value if the else clause is defined"); } else { var econd1 = haxe_macro_ExprTools.getValue(econd); if(econd1) { return haxe_macro_ExprTools.getValue(eif); } else { return haxe_macro_ExprTools.getValue(eelse); } } break; case 21: var e1 = _g.e; return haxe_macro_ExprTools.getValue(e1); case 25: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; if(eelse == null) { throw haxe_Exception.thrown("If statements only have a value if the else clause is defined"); } else { var econd1 = haxe_macro_ExprTools.getValue(econd); if(econd1) { return haxe_macro_ExprTools.getValue(eif); } else { return haxe_macro_ExprTools.getValue(eelse); } } break; case 27: var _g1 = _g.s; var e1 = _g.e; return haxe_macro_ExprTools.getValue(e1); default: throw haxe_Exception.thrown("Unsupported expression: " + Std.string(e)); } }; haxe_macro_ExprTools.opt = function(e,f) { if(e == null) { return null; } else { return f(e); } }; haxe_macro_ExprTools.opt2 = function(e,f) { if(e != null) { f(e); } }; var haxe_macro_ExprArrayTools = function() { }; $hxClasses["haxe.macro.ExprArrayTools"] = haxe_macro_ExprArrayTools; haxe_macro_ExprArrayTools.__name__ = "haxe.macro.ExprArrayTools"; haxe_macro_ExprArrayTools.map = function(el,f) { var ret = []; var _g = 0; while(_g < el.length) { var e = el[_g]; ++_g; ret.push(f(e)); } return ret; }; haxe_macro_ExprArrayTools.iter = function(el,f) { var _g = 0; while(_g < el.length) { var e = el[_g]; ++_g; f(e); } }; var haxe_macro_MacroStringTools = function() { }; $hxClasses["haxe.macro.MacroStringTools"] = haxe_macro_MacroStringTools; haxe_macro_MacroStringTools.__name__ = "haxe.macro.MacroStringTools"; haxe_macro_MacroStringTools.toFieldExpr = function(sl,pos) { if(pos == null) { return Lambda.fold(sl,function(s,e) { if(e == null) { return { expr : haxe_macro_ExprDef.EConst(haxe_macro_Constant.CIdent(s)), pos : { file : "/usr/share/haxe/std/haxe/macro/MacroStringTools.hx", min : 2294, max : 2297}}; } else { return { expr : haxe_macro_ExprDef.EField(e,s,haxe_macro_EFieldKind.Normal), pos : { file : "/usr/share/haxe/std/haxe/macro/MacroStringTools.hx", min : 2308, max : 2313}}; } },null); } var e = null; var _g = 0; while(_g < sl.length) { var v = sl[_g]; ++_g; if(e == null) { e = { expr : haxe_macro_ExprDef.EConst(haxe_macro_Constant.CIdent(v)), pos : pos}; } else { e = { expr : haxe_macro_ExprDef.EField(e,v), pos : pos}; } } return e; }; haxe_macro_MacroStringTools.toDotPath = function(pack,name) { if(pack.length == 0) { return name; } else { return pack.join(".") + "." + name; } }; haxe_macro_MacroStringTools.toComplex = function(path) { var pack = path.split("."); return haxe_macro_ComplexType.TPath({ pack : pack, name : pack.pop(), params : []}); }; var haxe_macro_CapturePolicy = $hxEnums["haxe.macro.CapturePolicy"] = { __ename__:"haxe.macro.CapturePolicy",__constructs__:null ,None: {_hx_name:"None",_hx_index:0,__enum__:"haxe.macro.CapturePolicy",toString:$estr} ,WrapRef: {_hx_name:"WrapRef",_hx_index:1,__enum__:"haxe.macro.CapturePolicy",toString:$estr} ,LoopVars: {_hx_name:"LoopVars",_hx_index:2,__enum__:"haxe.macro.CapturePolicy",toString:$estr} }; haxe_macro_CapturePolicy.__constructs__ = [haxe_macro_CapturePolicy.None,haxe_macro_CapturePolicy.WrapRef,haxe_macro_CapturePolicy.LoopVars]; haxe_macro_CapturePolicy.__empty_constructs__ = [haxe_macro_CapturePolicy.None,haxe_macro_CapturePolicy.WrapRef,haxe_macro_CapturePolicy.LoopVars]; var haxe_macro_VarScope = $hxEnums["haxe.macro.VarScope"] = { __ename__:"haxe.macro.VarScope",__constructs__:null ,FunctionScope: {_hx_name:"FunctionScope",_hx_index:0,__enum__:"haxe.macro.VarScope",toString:$estr} ,BlockScope: {_hx_name:"BlockScope",_hx_index:1,__enum__:"haxe.macro.VarScope",toString:$estr} }; haxe_macro_VarScope.__constructs__ = [haxe_macro_VarScope.FunctionScope,haxe_macro_VarScope.BlockScope]; haxe_macro_VarScope.__empty_constructs__ = [haxe_macro_VarScope.FunctionScope,haxe_macro_VarScope.BlockScope]; var haxe_macro_VarScopingFlags = $hxEnums["haxe.macro.VarScopingFlags"] = { __ename__:"haxe.macro.VarScopingFlags",__constructs__:null ,VarHoisting: {_hx_name:"VarHoisting",_hx_index:0,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} ,NoShadowing: {_hx_name:"NoShadowing",_hx_index:1,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} ,NoCatchVarShadowing: {_hx_name:"NoCatchVarShadowing",_hx_index:2,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} ,ReserveCurrentTopLevelSymbol: {_hx_name:"ReserveCurrentTopLevelSymbol",_hx_index:3,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} ,ReserveAllTopLevelSymbols: {_hx_name:"ReserveAllTopLevelSymbols",_hx_index:4,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} ,ReserveAllTypesFlat: {_hx_name:"ReserveAllTypesFlat",_hx_index:5,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} ,ReserveNames: ($_=function(names) { return {_hx_index:6,names:names,__enum__:"haxe.macro.VarScopingFlags",toString:$estr}; },$_._hx_name="ReserveNames",$_.__params__ = ["names"],$_) ,SwitchCasesNoBlocks: {_hx_name:"SwitchCasesNoBlocks",_hx_index:7,__enum__:"haxe.macro.VarScopingFlags",toString:$estr} }; haxe_macro_VarScopingFlags.__constructs__ = [haxe_macro_VarScopingFlags.VarHoisting,haxe_macro_VarScopingFlags.NoShadowing,haxe_macro_VarScopingFlags.NoCatchVarShadowing,haxe_macro_VarScopingFlags.ReserveCurrentTopLevelSymbol,haxe_macro_VarScopingFlags.ReserveAllTopLevelSymbols,haxe_macro_VarScopingFlags.ReserveAllTypesFlat,haxe_macro_VarScopingFlags.ReserveNames,haxe_macro_VarScopingFlags.SwitchCasesNoBlocks]; haxe_macro_VarScopingFlags.__empty_constructs__ = [haxe_macro_VarScopingFlags.VarHoisting,haxe_macro_VarScopingFlags.NoShadowing,haxe_macro_VarScopingFlags.NoCatchVarShadowing,haxe_macro_VarScopingFlags.ReserveCurrentTopLevelSymbol,haxe_macro_VarScopingFlags.ReserveAllTopLevelSymbols,haxe_macro_VarScopingFlags.ReserveAllTypesFlat,haxe_macro_VarScopingFlags.SwitchCasesNoBlocks]; var haxe_macro_PositionTools = function() { }; $hxClasses["haxe.macro.PositionTools"] = haxe_macro_PositionTools; haxe_macro_PositionTools.__name__ = "haxe.macro.PositionTools"; haxe_macro_PositionTools.getInfos = function(p) { return p; }; haxe_macro_PositionTools.make = function(inf) { return inf; }; var haxe_macro_Printer = function(tabString) { if(tabString == null) { tabString = "\t"; } this.tabs = ""; this.tabString = tabString; }; $hxClasses["haxe.macro.Printer"] = haxe_macro_Printer; haxe_macro_Printer.__name__ = "haxe.macro.Printer"; haxe_macro_Printer.prototype = { tabs: null ,tabString: null ,printUnop: function(op) { switch(op._hx_index) { case 0: return "++"; case 1: return "--"; case 2: return "!"; case 3: return "-"; case 4: return "~"; case 5: return "..."; } } ,printBinop: function(op) { switch(op._hx_index) { case 0: return "+"; case 1: return "*"; case 2: return "/"; case 3: return "-"; case 4: return "="; case 5: return "=="; case 6: return "!="; case 7: return ">"; case 8: return ">="; case 9: return "<"; case 10: return "<="; case 11: return "&"; case 12: return "|"; case 13: return "^"; case 14: return "&&"; case 15: return "||"; case 16: return "<<"; case 17: return ">>"; case 18: return ">>>"; case 19: return "%"; case 20: var op1 = op.op; return this.printBinop(op1) + "="; case 21: return "..."; case 22: return "=>"; case 23: return "in"; case 24: return "??"; } } ,escapeString: function(s,delim) { return delim + StringTools.replace(StringTools.replace(StringTools.replace(StringTools.replace(StringTools.replace(StringTools.replace(s,"\\","\\\\"),"\n","\\n"),"\t","\\t"),"\r","\\r"),"'","\\'"),"\"","\\\"") + delim; } ,printFormatString: function(s) { return this.escapeString(s,"'"); } ,printString: function(s) { return this.escapeString(s,"\""); } ,printConstant: function(c) { switch(c._hx_index) { case 0: var _g = c.v; var _g1 = c.s; if(_g1 == null) { var s = _g; return s; } else { var suffix = _g1; var s = _g; return s + suffix; } break; case 1: var _g = c.f; var _g1 = c.s; if(_g1 == null) { var s = _g; return s; } else { var suffix = _g1; var s = _g; return s + suffix; } break; case 2: var _g = c.s; var _g1 = c.kind; if(_g1 == null) { var s = _g; return this.printString(s); } else if(_g1._hx_index == 1) { var s = _g; return this.printFormatString(s); } else { var s = _g; return this.printString(s); } break; case 3: var s = c.s; return s; case 4: var s = c.r; var opt = c.opt; return "~/" + s + "/" + opt; } } ,printTypeParam: function(param) { switch(param._hx_index) { case 0: var ct = param.t; return this.printComplexType(ct); case 1: var e = param.e; return this.printExpr(e); } } ,printTypePath: function(tp) { var tmp = (tp.pack.length > 0 ? tp.pack.join(".") + "." : "") + tp.name + (tp.sub != null ? "." + tp.sub : ""); var tmp1; if(tp.params == null) { tmp1 = ""; } else if(tp.params.length > 0) { var _this = tp.params; var f = $bind(this,this.printTypeParam); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp1 = "<" + result.join(", ") + ">"; } else { tmp1 = ""; } return tmp + tmp1; } ,printComplexType: function(ct) { switch(ct._hx_index) { case 0: var tp = ct.p; return this.printTypePath(tp); case 1: var args = ct.args; var ret = ct.ret; var wrapArgumentsInParentheses; if(args.length == 1) { var _g = args[0]; switch(_g._hx_index) { case 0: var _g1 = _g.p; wrapArgumentsInParentheses = false; break; case 3: var t = _g.t; wrapArgumentsInParentheses = false; break; case 5: var _g1 = _g.t; if(_g1._hx_index == 0) { var _g = _g1.p; wrapArgumentsInParentheses = false; } else { wrapArgumentsInParentheses = true; } break; default: wrapArgumentsInParentheses = true; } } else { wrapArgumentsInParentheses = true; } var f = $bind(this,this.printComplexType); var result = new Array(args.length); var _g = 0; var _g1 = args.length; while(_g < _g1) { var i = _g++; result[i] = f(args[i]); } var argStr = result.join(", "); var tmp; if(ret._hx_index == 1) { var _g = ret.args; var _g = ret.ret; tmp = "(" + this.printComplexType(ret) + ")"; } else { tmp = this.printComplexType(ret); } return (wrapArgumentsInParentheses ? "(" + argStr + ")" : argStr) + " -> " + tmp; case 2: var fields = ct.fields; var _g = []; var _g1 = 0; while(_g1 < fields.length) { var f = fields[_g1]; ++_g1; _g.push(this.printField(f) + "; "); } return "{ " + _g.join("") + "}"; case 3: var ct1 = ct.t; return "(" + this.printComplexType(ct1) + ")"; case 4: var tpl = ct.p; var fields = ct.fields; var _g = []; var _g1 = 0; while(_g1 < tpl.length) { var t = tpl[_g1]; ++_g1; _g.push("> " + this.printTypePath(t) + ", "); } var types = _g.join(""); var _g = []; var _g1 = 0; while(_g1 < fields.length) { var f = fields[_g1]; ++_g1; _g.push(this.printField(f) + "; "); } var fields = _g.join(""); return "{" + types + fields + "}"; case 5: var ct1 = ct.t; return "?" + this.printComplexType(ct1); case 6: var n = ct.n; var ct1 = ct.t; return n + ":" + this.printComplexType(ct1); case 7: var tl = ct.tl; var f = $bind(this,this.printComplexType); var result = new Array(tl.length); var _g = 0; var _g1 = tl.length; while(_g < _g1) { var i = _g++; result[i] = f(tl[i]); } return result.join(" & "); } } ,printMetadata: function(meta) { return "@" + meta.name + (meta.params != null && meta.params.length > 0 ? "(" + this.printExprs(meta.params,", ") + ")" : ""); } ,printAccess: function(access) { switch(access._hx_index) { case 0: return "public"; case 1: return "private"; case 2: return "static"; case 3: return "override"; case 4: return "dynamic"; case 5: return "inline"; case 6: return "macro"; case 7: return "final"; case 8: return "extern"; case 9: return "abstract"; case 10: return "overload"; } } ,printField: function(field) { var tmp = field.doc != null && field.doc != "" ? "/**\n" + this.tabs + this.tabString + StringTools.replace(field.doc,"\n","\n" + this.tabs + this.tabString) + "\n" + this.tabs + "**/\n" + this.tabs : ""; var tmp1; if(field.meta != null && field.meta.length > 0) { var _this = field.meta; var f = $bind(this,this.printMetadata); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp1 = result.join("\n" + this.tabs) + ("\n" + this.tabs); } else { tmp1 = ""; } var tmp2 = tmp + tmp1; var tmp; if(field.access != null && field.access.length > 0) { var access = field.access; var _this; if(Lambda.has(access,haxe_macro_Access.AFinal)) { var _g = []; var _g1 = 0; var _g2 = access; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(v._hx_index != 7) { _g.push(v); } } _this = _g.concat([haxe_macro_Access.AFinal]); } else { _this = access; } var f = $bind(this,this.printAccess); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp = result.join(" ") + " "; } else { tmp = ""; } var tmp1 = tmp2 + tmp; var _g = field.kind; var tmp; switch(_g._hx_index) { case 0: var t = _g.t; var eo = _g.e; tmp = (field.access != null && Lambda.has(field.access,haxe_macro_Access.AFinal) ? "" : "var ") + ("" + field.name) + this.opt(t,$bind(this,this.printComplexType)," : ") + this.opt(eo,$bind(this,this.printExpr)," = "); break; case 1: var func = _g.f; tmp = "function " + field.name + this.printFunction(func); break; case 2: var get = _g.get; var set = _g.set; var t = _g.t; var eo = _g.e; tmp = "var " + field.name + "(" + get + ", " + set + ")" + this.opt(t,$bind(this,this.printComplexType)," : ") + this.opt(eo,$bind(this,this.printExpr)," = "); break; } return tmp1 + tmp; } ,printTypeParamDecl: function(tpd) { var tmp; if(tpd.meta != null && tpd.meta.length > 0) { var _this = tpd.meta; var f = $bind(this,this.printMetadata); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp = result.join(" ") + " "; } else { tmp = ""; } var tmp1 = tmp + tpd.name; var tmp; if(tpd.params != null && tpd.params.length > 0) { var _this = tpd.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp = "<" + result.join(", ") + ">"; } else { tmp = ""; } var tmp2 = tmp1 + tmp; var tmp; if(tpd.constraints != null && tpd.constraints.length > 0) { var _this = tpd.constraints; var f = $bind(this,this.printComplexType); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp = ":(" + result.join(", ") + ")"; } else { tmp = ""; } return tmp2 + tmp + (tpd.defaultType != null ? "=" + this.printComplexType(tpd.defaultType) : ""); } ,printFunctionArg: function(arg) { return (arg.opt ? "?" : "") + arg.name + this.opt(arg.type,$bind(this,this.printComplexType),":") + this.opt(arg.value,$bind(this,this.printExpr)," = "); } ,printFunction: function(func,kind) { var skipParentheses; var _g = func.args; if(_g.length == 1) { var _g1 = _g[0]; var _g = _g1.meta; var _g = _g1.name; var _g = _g1.opt; var _g = _g1.value; skipParentheses = _g1.type == null && kind == haxe_macro_FunctionKind.FArrow; } else { skipParentheses = false; } var tmp; if(func.params == null) { tmp = ""; } else if(func.params.length > 0) { var _this = func.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } tmp = "<" + result.join(", ") + ">"; } else { tmp = ""; } var tmp1 = tmp + (skipParentheses ? "" : "("); var _this = func.args; var f = $bind(this,this.printFunctionArg); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } return tmp1 + result.join(", ") + (skipParentheses ? "" : ")") + (kind == haxe_macro_FunctionKind.FArrow ? " ->" : "") + this.opt(func.ret,$bind(this,this.printComplexType),":") + this.opt(func.expr,$bind(this,this.printExpr)," "); } ,printVar: function(v) { var s = v.name + this.opt(v.type,$bind(this,this.printComplexType),":") + this.opt(v.expr,$bind(this,this.printExpr)," = "); var _g = v.meta; if(_g == null) { return s; } else if(_g.length == 0) { return s; } else { var meta = _g; var f = $bind(this,this.printMetadata); var result = new Array(meta.length); var _g = 0; var _g1 = meta.length; while(_g < _g1) { var i = _g++; result[i] = f(meta[i]); } return result.join(" ") + " " + s; } } ,printObjectFieldKey: function(of) { var _g = of.quotes; if(_g == null) { return of.field; } else { switch(_g._hx_index) { case 0: return of.field; case 1: return "\"" + of.field + "\""; } } } ,printObjectField: function(of) { return "" + this.printObjectFieldKey(of) + " : " + this.printExpr(of.expr); } ,printExpr: function(e) { var _gthis = this; if(e == null) { return "#NULL"; } else { var _g = e.expr; switch(_g._hx_index) { case 0: var c = _g.c; return this.printConstant(c); case 1: var e1 = _g.e1; var e2 = _g.e2; return "" + this.printExpr(e1) + "[" + this.printExpr(e2) + "]"; case 2: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; return "" + this.printExpr(e1) + " " + this.printBinop(op) + " " + this.printExpr(e2); case 3: var e1 = _g.e; var n = _g.field; var kind = _g.kind; if(kind == haxe_macro_EFieldKind.Safe) { return "" + this.printExpr(e1) + "?." + n; } else { return "" + this.printExpr(e1) + "." + n; } break; case 4: var e1 = _g.e; return "(" + this.printExpr(e1) + ")"; case 5: var fl = _g.fields; var result = new Array(fl.length); var _g1 = 0; var _g2 = fl.length; while(_g1 < _g2) { var i = _g1++; result[i] = _gthis.printObjectField(fl[i]); } return "{ " + result.join(", ") + " }"; case 6: var el = _g.values; return "[" + this.printExprs(el,", ") + "]"; case 7: var e1 = _g.e; var el = _g.params; return "" + this.printExpr(e1) + "(" + this.printExprs(el,", ") + ")"; case 8: var tp = _g.t; var el = _g.params; return "new " + this.printTypePath(tp) + "(" + this.printExprs(el,", ") + ")"; case 9: var _g1 = _g.op; var _g2 = _g.e; if(_g.postFix) { var op = _g1; var e1 = _g2; return this.printExpr(e1) + this.printUnop(op); } else { var op = _g1; var e1 = _g2; return this.printUnop(op) + this.printExpr(e1); } break; case 10: var _g1 = _g.vars; if(_g1.length == 0) { return "var "; } else { var vl = _g1; var tmp = (vl[0].isStatic ? "static " : "") + (vl[0].isFinal ? "final " : "var "); var f = $bind(this,this.printVar); var result = new Array(vl.length); var _g1 = 0; var _g2 = vl.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(vl[i]); } return tmp + result.join(", "); } break; case 11: var _g1 = _g.kind; var _g2 = _g.f; if(_g1 == null) { var kind = _g1; var func = _g2; return (kind != haxe_macro_FunctionKind.FArrow ? "function" : "") + this.printFunction(func,kind); } else if(_g1._hx_index == 1) { var no = _g1.name; var inlined = _g1.inlined; var func = _g2; return (inlined ? "inline " : "") + ("function " + no) + this.printFunction(func); } else { var kind = _g1; var func = _g2; return (kind != haxe_macro_FunctionKind.FArrow ? "function" : "") + this.printFunction(func,kind); } break; case 12: var _g1 = _g.exprs; if(_g1.length == 0) { return "{ }"; } else { var el = _g1; var old = this.tabs; this.tabs += this.tabString; var s = "{\n" + this.tabs + this.printExprs(el,";\n" + this.tabs); this.tabs = old; return s + (";\n" + this.tabs + "}"); } break; case 13: var e1 = _g.it; var e2 = _g.expr; return "for (" + this.printExpr(e1) + ") " + this.printExpr(e2); case 14: var _g1 = _g.econd; var _g2 = _g.eif; var _g3 = _g.eelse; if(_g3 == null) { var eif = _g2; var econd = _g1; return "if (" + this.printExpr(econd) + ") " + this.printExpr(eif); } else { var eelse = _g3; var eif = _g2; var econd = _g1; return "if (" + this.printExpr(econd) + ") " + this.printExpr(eif) + " else " + this.printExpr(eelse); } break; case 15: var _g1 = _g.econd; var _g2 = _g.e; if(_g.normalWhile) { var e1 = _g2; var econd = _g1; return "while (" + this.printExpr(econd) + ") " + this.printExpr(e1); } else { var e1 = _g2; var econd = _g1; return "do " + this.printExpr(e1) + " while (" + this.printExpr(econd) + ")"; } break; case 16: var e1 = _g.e; var cl = _g.cases; var edef = _g.edef; var old = this.tabs; this.tabs += this.tabString; var s = "switch " + this.printExpr(e1) + " {\n" + this.tabs; var result = new Array(cl.length); var _g1 = 0; var _g2 = cl.length; while(_g1 < _g2) { var i = _g1++; var c = cl[i]; result[i] = "case " + _gthis.printExprs(c.values,", ") + (c.guard != null ? " if (" + _gthis.printExpr(c.guard) + "):" : ":") + (c.expr != null ? _gthis.opt(c.expr,$bind(_gthis,_gthis.printExpr)) + ";" : ""); } var s1 = s + result.join("\n" + this.tabs); if(edef != null) { s1 += "\n" + this.tabs + "default:" + (edef.expr == null ? "" : this.printExpr(edef) + ";"); } this.tabs = old; return s1 + ("\n" + this.tabs + "}"); case 17: var e1 = _g.e; var cl = _g.catches; var tmp = "try " + this.printExpr(e1); var result = new Array(cl.length); var _g1 = 0; var _g2 = cl.length; while(_g1 < _g2) { var i = _g1++; var c = cl[i]; result[i] = " catch(" + c.name + (c.type == null ? "" : ":" + _gthis.printComplexType(c.type)) + ") " + _gthis.printExpr(c.expr); } return tmp + result.join(""); case 18: var eo = _g.e; return "return" + this.opt(eo,$bind(this,this.printExpr)," "); case 19: return "break"; case 20: return "continue"; case 21: var e1 = _g.e; return "untyped " + this.printExpr(e1); case 22: var e1 = _g.e; return "throw " + this.printExpr(e1); case 23: var _g1 = _g.e; var e1 = _g1; var cto = _g.t; if(cto != null) { return "cast(" + this.printExpr(e1) + ", " + this.printComplexType(cto) + ")"; } else { var e1 = _g1; return "cast " + this.printExpr(e1); } break; case 24: var _g1 = _g.displayKind; var e1 = _g.e; return "#DISPLAY(" + this.printExpr(e1) + ")"; case 25: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; return "" + this.printExpr(econd) + " ? " + this.printExpr(eif) + " : " + this.printExpr(eelse); case 26: var e1 = _g.e; var ct = _g.t; return "(" + this.printExpr(e1) + " : " + this.printComplexType(ct) + ")"; case 27: var _g1 = _g.s; var _g2 = _g.e; var _g3 = _g1.params; var _g3 = _g1.pos; if(_g1.name == ":implicitReturn") { var _g3 = _g2.expr; var _g4 = _g2.pos; if(_g3._hx_index == 18) { var e1 = _g3.e; return this.printExpr(e1); } else { var meta = _g1; var e1 = _g2; return this.printMetadata(meta) + " " + this.printExpr(e1); } } else { var meta = _g1; var e1 = _g2; return this.printMetadata(meta) + " " + this.printExpr(e1); } break; case 28: var e1 = _g.e; var ct = _g.t; return "" + this.printExpr(e1) + " is " + this.printComplexType(ct); } } } ,printExprs: function(el,sep) { var f = $bind(this,this.printExpr); var result = new Array(el.length); var _g = 0; var _g1 = el.length; while(_g < _g1) { var i = _g++; result[i] = f(el[i]); } return result.join(sep); } ,printExtension: function(tpl,fields) { var tmp = "{\n" + this.tabs + ">"; var f = $bind(this,this.printTypePath); var result = new Array(tpl.length); var _g = 0; var _g1 = tpl.length; while(_g < _g1) { var i = _g++; result[i] = f(tpl[i]); } var tmp1 = tmp + result.join(",\n" + this.tabs + ">") + ","; var tmp; if(fields.length > 0) { var tmp2 = "\n" + this.tabs; var f = $bind(this,this.printField); var result = new Array(fields.length); var _g = 0; var _g1 = fields.length; while(_g < _g1) { var i = _g++; result[i] = f(fields[i]); } tmp = tmp2 + result.join(";\n" + this.tabs) + ";\n}"; } else { tmp = "\n}"; } return tmp1 + tmp; } ,printStructure: function(fields) { if(fields.length == 0) { return "{ }"; } else { var tmp = "{\n" + this.tabs; var f = $bind(this,this.printField); var result = new Array(fields.length); var _g = 0; var _g1 = fields.length; while(_g < _g1) { var i = _g++; result[i] = f(fields[i]); } return tmp + result.join(";\n" + this.tabs) + ";\n}"; } } ,printTypeDefinition: function(t,printPackage) { if(printPackage == null) { printPackage = true; } var old = this.tabs; this.tabs = this.tabString; var str; if(t == null) { str = "#NULL"; } else { var str1 = (printPackage && t.pack.length > 0 && t.pack[0] != "" ? "package " + t.pack.join(".") + ";\n" : "") + (t.doc != null && t.doc != "" ? "/**\n" + this.tabString + StringTools.replace(t.doc,"\n","\n" + this.tabString) + "\n**/\n" : ""); var str2; if(t.meta != null && t.meta.length > 0) { var _this = t.meta; var f = $bind(this,this.printMetadata); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = f(_this[i]); } str2 = result.join(" ") + " "; } else { str2 = ""; } var str3 = str1 + str2 + (t.isExtern ? "extern " : ""); var _g = t.kind; var str1; switch(_g._hx_index) { case 0: var str2 = "enum " + t.name; var str4; if(t.params != null && t.params.length > 0) { var _this = t.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(_this[i]); } str4 = "<" + result.join(", ") + ">"; } else { str4 = ""; } var str5 = str2 + str4 + " {\n"; var _g1 = []; var _g2 = 0; var _g3 = t.fields; while(_g2 < _g3.length) { var field = _g3[_g2]; ++_g2; var str2 = this.tabs + (field.doc != null && field.doc != "" ? "/**\n" + this.tabs + this.tabString + StringTools.replace(field.doc,"\n","\n" + this.tabs + this.tabString) + "\n" + this.tabs + "**/\n" + this.tabs : ""); var str4; if(field.meta != null && field.meta.length > 0) { var _this = field.meta; var f = $bind(this,this.printMetadata); var result = new Array(_this.length); var _g4 = 0; var _g5 = _this.length; while(_g4 < _g5) { var i = _g4++; result[i] = f(_this[i]); } str4 = result.join(" ") + " "; } else { str4 = ""; } var str6 = str2 + str4; var _g6 = field.kind; var str7; switch(_g6._hx_index) { case 0: var _g7 = _g6.e; var t1 = _g6.t; str7 = field.name + this.opt(t1,$bind(this,this.printComplexType),":"); break; case 1: var func = _g6.f; str7 = field.name + this.printFunction(func); break; case 2: var _g8 = _g6.get; var _g9 = _g6.set; var _g10 = _g6.t; var _g11 = _g6.e; throw haxe_Exception.thrown("FProp is invalid for TDEnum."); } _g1.push(str6 + str7 + ";"); } str1 = str5 + _g1.join("\n") + "\n}"; break; case 1: var str2 = "typedef " + t.name; var str4; if(t.params != null && t.params.length > 0) { var _this = t.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(_this[i]); } str4 = "<" + result.join(", ") + ">"; } else { str4 = ""; } var str5 = str2 + str4 + " = {\n"; var _g1 = []; var _g2 = 0; var _g3 = t.fields; while(_g2 < _g3.length) { var f = _g3[_g2]; ++_g2; _g1.push(this.tabs + this.printField(f) + ";"); } str1 = str5 + _g1.join("\n") + "\n}"; break; case 2: var superClass = _g.superClass; var interfaces = _g.interfaces; var isInterface = _g.isInterface; var isFinal = _g.isFinal; var isAbstract = _g.isAbstract; var str2 = (isFinal ? "final " : "") + (isAbstract ? "abstract " : "") + (isInterface ? "interface " : "class ") + t.name; var str4; if(t.params != null && t.params.length > 0) { var _this = t.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(_this[i]); } str4 = "<" + result.join(", ") + ">"; } else { str4 = ""; } var str5 = str2 + str4 + (superClass != null ? " extends " + this.printTypePath(superClass) : ""); var str2; if(interfaces != null) { var str4; if(isInterface) { var _g1 = []; var _g2 = 0; while(_g2 < interfaces.length) { var tp = interfaces[_g2]; ++_g2; _g1.push(" extends " + this.printTypePath(tp)); } str4 = _g1; } else { var _g1 = []; var _g2 = 0; while(_g2 < interfaces.length) { var tp = interfaces[_g2]; ++_g2; _g1.push(" implements " + this.printTypePath(tp)); } str4 = _g1; } str2 = str4.join(""); } else { str2 = ""; } var str4 = str5 + str2 + " {\n"; var _g1 = []; var _g2 = 0; var _g3 = t.fields; while(_g2 < _g3.length) { var f = _g3[_g2]; ++_g2; _g1.push(this.tabs + this.printFieldWithDelimiter(f)); } str1 = str4 + _g1.join("\n") + "\n}"; break; case 3: var ct = _g.t; var str2 = "typedef " + t.name; var str4; if(t.params != null && t.params.length > 0) { var _this = t.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(_this[i]); } str4 = "<" + result.join(", ") + ">"; } else { str4 = ""; } var str5 = str2 + str4 + " = "; var str2; switch(ct._hx_index) { case 2: var fields = ct.fields; str2 = this.printStructure(fields); break; case 4: var tpl = ct.p; var fields = ct.fields; str2 = this.printExtension(tpl,fields); break; default: str2 = this.printComplexType(ct); } str1 = str5 + str2 + ";"; break; case 4: var tthis = _g.tthis; var tflags = _g.flags; var from = _g.from; var to = _g.to; var from1 = from == null ? [] : from.slice(); var to1 = to == null ? [] : to.slice(); var isEnum = false; if(tflags != null) { var _g1 = 0; while(_g1 < tflags.length) { var flag = tflags[_g1]; ++_g1; switch(flag._hx_index) { case 0: isEnum = true; break; case 1: var ct = flag.ct; from1.push(ct); break; case 2: var ct1 = flag.ct; to1.push(ct1); break; } } } var str2 = (isEnum ? "enum " : "") + "abstract " + t.name; var str4; if(t.params != null && t.params.length > 0) { var _this = t.params; var f = $bind(this,this.printTypeParamDecl); var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(_this[i]); } str4 = "<" + result.join(", ") + ">"; } else { str4 = ""; } var str5 = str2 + str4 + (tthis == null ? "" : "(" + this.printComplexType(tthis) + ")"); var _g1 = []; var _g2 = 0; while(_g2 < from1.length) { var f = from1[_g2]; ++_g2; _g1.push(" from " + this.printComplexType(f)); } var str2 = str5 + _g1.join(""); var _g1 = []; var _g2 = 0; while(_g2 < to1.length) { var f = to1[_g2]; ++_g2; _g1.push(" to " + this.printComplexType(f)); } var str4 = str2 + _g1.join("") + " {\n"; var _g1 = []; var _g2 = 0; var _g3 = t.fields; while(_g2 < _g3.length) { var f = _g3[_g2]; ++_g2; _g1.push(this.tabs + this.printFieldWithDelimiter(f)); } str1 = str4 + _g1.join("\n") + "\n}"; break; case 5: var kind = _g.kind; var access = _g.access; this.tabs = old; var str2; if(access != null && access.length > 0) { var f = $bind(this,this.printAccess); var result = new Array(access.length); var _g = 0; var _g1 = access.length; while(_g < _g1) { var i = _g++; result[i] = f(access[i]); } str2 = result.join(" ") + " "; } else { str2 = ""; } var str4; switch(kind._hx_index) { case 0: var type = kind.t; var eo = kind.e; str4 = (access != null && Lambda.has(access,haxe_macro_Access.AFinal) ? "" : "var ") + ("" + t.name) + this.opt(type,$bind(this,this.printComplexType)," : ") + this.opt(eo,$bind(this,this.printExpr)," = ") + ";"; break; case 1: var func = kind.f; var str5 = "function " + t.name + this.printFunction(func); var _g = func.expr; var str6; if(_g == null) { str6 = ";"; } else { var _g1 = _g.expr; var _g2 = _g.pos; if(_g1._hx_index == 12) { var _g = _g1.exprs; str6 = ""; } else { str6 = ";"; } } str4 = str5 + str6; break; case 2: var get = kind.get; var set = kind.set; var type = kind.t; var eo = kind.e; str4 = "var " + t.name + "(" + get + ", " + set + ")" + this.opt(type,$bind(this,this.printComplexType)," : ") + this.opt(eo,$bind(this,this.printExpr)," = ") + ";"; break; } str1 = str2 + str4; break; } str = str3 + str1; } this.tabs = old; return str; } ,printFieldWithDelimiter: function(f) { var tmp = this.printField(f); var _g = f.kind; var tmp1; switch(_g._hx_index) { case 0: var _g1 = _g.t; var _g1 = _g.e; tmp1 = ";"; break; case 1: var _g1 = _g.f; var _g2 = _g1.args; var _g2 = _g1.expr; var _g3 = _g1.params; var _g3 = _g1.ret; if(_g2 == null) { tmp1 = ";"; } else { var _g1 = _g2.expr; var _g3 = _g2.pos; if(_g1._hx_index == 12) { var _g2 = _g1.exprs; tmp1 = ""; } else { tmp1 = ";"; } } break; case 2: var _g1 = _g.get; var _g1 = _g.set; var _g1 = _g.t; var _g1 = _g.e; tmp1 = ";"; break; } return tmp + tmp1; } ,opt: function(v,f,prefix) { if(prefix == null) { prefix = ""; } if(v == null) { return ""; } else { return prefix + f(v); } } ,printExprWithPositions: function(e) { var _gthis = this; var buffer_b = ""; var format4 = function(i) { return StringTools.lpad(i == null ? "null" : "" + i," ",4); }; var loop = null; loop = function(tabs,e) { var add = function(s,p) { if(p == null) { p = e.pos; } var p = e.pos; buffer_b += Std.string("" + format4(p.min) + "-" + format4(p.max) + " " + tabs + s + "\n"); }; var loopI = function(e) { loop(tabs + _gthis.tabString,e); }; var _g = e.expr; switch(_g._hx_index) { case 0: var c = _g.c; add(_gthis.printConstant(c)); break; case 1: var e1 = _g.e1; var e2 = _g.e2; add("EArray"); loopI(e1); loopI(e2); break; case 2: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; add("EBinop " + _gthis.printBinop(op)); loopI(e1); loopI(e2); break; case 3: var e1 = _g.e; var field = _g.field; var kind = _g.kind; if(kind == null) { kind = haxe_macro_EFieldKind.Normal; } add("EField " + field + " (" + $hxEnums[kind.__enum__].__constructs__[kind._hx_index]._hx_name + ")"); loopI(e1); break; case 4: var e1 = _g.e; add("EParenthesis"); loopI(e1); break; case 5: var fields = _g.fields; add("EObjectDecl"); var _g1 = 0; while(_g1 < fields.length) { var field = fields[_g1]; ++_g1; add(field.field); loopI(field.expr); } break; case 6: var values = _g.values; add("EArrayDecl"); Lambda.iter(values,loopI); break; case 7: var e1 = _g.e; var params = _g.params; add("ECall"); loopI(e1); Lambda.iter(params,loopI); break; case 8: var tp = _g.t; var params = _g.params; add("ENew " + _gthis.printTypePath(tp)); Lambda.iter(params,loopI); break; case 9: var op = _g.op; var postFix = _g.postFix; var e1 = _g.e; add("EUnop " + _gthis.printUnop(op)); loopI(e1); break; case 10: var vars = _g.vars; add("EVars"); var _g1 = 0; while(_g1 < vars.length) { var v = vars[_g1]; ++_g1; if(v.expr != null) { add(v.name); loopI(v.expr); } } break; case 11: var _g1 = _g.kind; var f = _g.f; add("EFunction"); if(f.expr != null) { loopI(f.expr); } break; case 12: var exprs = _g.exprs; add("EBlock"); Lambda.iter(exprs,loopI); break; case 13: var it = _g.it; var expr = _g.expr; add("EFor"); loopI(it); loopI(expr); break; case 14: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; add("EIf"); loopI(econd); loopI(eif); if(eelse != null) { loopI(eelse); } break; case 15: var econd = _g.econd; var e1 = _g.e; var normalWhile = _g.normalWhile; add("EWhile"); loopI(econd); loopI(e1); break; case 16: var e1 = _g.e; var cases = _g.cases; var edef = _g.edef; add("ESwitch"); loopI(e1); var _g1 = 0; while(_g1 < cases.length) { var c = cases[_g1]; ++_g1; var _g2 = 0; var _g3 = c.values; while(_g2 < _g3.length) { var pat = _g3[_g2]; ++_g2; loop(tabs + _gthis.tabString + _gthis.tabString,pat); } if(c.expr != null) { loop(tabs + _gthis.tabString + _gthis.tabString + _gthis.tabString,c.expr); } } if(edef != null) { loop(tabs + _gthis.tabString + _gthis.tabString + _gthis.tabString,edef); } break; case 17: var e1 = _g.e; var catches = _g.catches; add("ETry"); loopI(e1); var _g1 = 0; while(_g1 < catches.length) { var c = catches[_g1]; ++_g1; loop(tabs + _gthis.tabString + _gthis.tabString,c.expr); } break; case 18: var e1 = _g.e; add("EReturn"); if(e1 != null) { loopI(e1); } break; case 19: add("EBreak"); break; case 20: add("EContinue"); break; case 21: var e1 = _g.e; add("EUntyped"); loopI(e1); break; case 22: var e1 = _g.e; add("EThrow"); loopI(e1); break; case 23: var e1 = _g.e; var t = _g.t; add("ECast"); loopI(e1); break; case 24: var e1 = _g.e; var displayKind = _g.displayKind; add("EDisplay"); loopI(e1); break; case 25: var econd = _g.econd; var eif = _g.eif; var eelse = _g.eelse; add("ETernary"); loopI(econd); loopI(eif); loopI(eelse); break; case 26: var e1 = _g.e; var t = _g.t; add("ECheckType"); loopI(e1); break; case 27: var s = _g.s; var e1 = _g.e; add("EMeta " + _gthis.printMetadata(s)); loopI(e1); break; case 28: var e1 = _g.e; var t = _g.t; add("EIs"); loopI(e1); break; } }; loop("",e); return buffer_b; } ,__class__: haxe_macro_Printer }; var haxe_macro_Type = $hxEnums["haxe.macro.Type"] = { __ename__:"haxe.macro.Type",__constructs__:null ,TMono: ($_=function(t) { return {_hx_index:0,t:t,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TMono",$_.__params__ = ["t"],$_) ,TEnum: ($_=function(t,params) { return {_hx_index:1,t:t,params:params,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TEnum",$_.__params__ = ["t","params"],$_) ,TInst: ($_=function(t,params) { return {_hx_index:2,t:t,params:params,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TInst",$_.__params__ = ["t","params"],$_) ,TType: ($_=function(t,params) { return {_hx_index:3,t:t,params:params,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TType",$_.__params__ = ["t","params"],$_) ,TFun: ($_=function(args,ret) { return {_hx_index:4,args:args,ret:ret,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TFun",$_.__params__ = ["args","ret"],$_) ,TAnonymous: ($_=function(a) { return {_hx_index:5,a:a,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TAnonymous",$_.__params__ = ["a"],$_) ,TDynamic: ($_=function(t) { return {_hx_index:6,t:t,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TDynamic",$_.__params__ = ["t"],$_) ,TLazy: ($_=function(f) { return {_hx_index:7,f:f,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TLazy",$_.__params__ = ["f"],$_) ,TAbstract: ($_=function(t,params) { return {_hx_index:8,t:t,params:params,__enum__:"haxe.macro.Type",toString:$estr}; },$_._hx_name="TAbstract",$_.__params__ = ["t","params"],$_) }; haxe_macro_Type.__constructs__ = [haxe_macro_Type.TMono,haxe_macro_Type.TEnum,haxe_macro_Type.TInst,haxe_macro_Type.TType,haxe_macro_Type.TFun,haxe_macro_Type.TAnonymous,haxe_macro_Type.TDynamic,haxe_macro_Type.TLazy,haxe_macro_Type.TAbstract]; haxe_macro_Type.__empty_constructs__ = []; var haxe_macro_AnonStatus = $hxEnums["haxe.macro.AnonStatus"] = { __ename__:"haxe.macro.AnonStatus",__constructs__:null ,AClosed: {_hx_name:"AClosed",_hx_index:0,__enum__:"haxe.macro.AnonStatus",toString:$estr} ,AOpened: {_hx_name:"AOpened",_hx_index:1,__enum__:"haxe.macro.AnonStatus",toString:$estr} ,AConst: {_hx_name:"AConst",_hx_index:2,__enum__:"haxe.macro.AnonStatus",toString:$estr} ,AExtend: ($_=function(tl) { return {_hx_index:3,tl:tl,__enum__:"haxe.macro.AnonStatus",toString:$estr}; },$_._hx_name="AExtend",$_.__params__ = ["tl"],$_) ,AClassStatics: ($_=function(t) { return {_hx_index:4,t:t,__enum__:"haxe.macro.AnonStatus",toString:$estr}; },$_._hx_name="AClassStatics",$_.__params__ = ["t"],$_) ,AEnumStatics: ($_=function(t) { return {_hx_index:5,t:t,__enum__:"haxe.macro.AnonStatus",toString:$estr}; },$_._hx_name="AEnumStatics",$_.__params__ = ["t"],$_) ,AAbstractStatics: ($_=function(t) { return {_hx_index:6,t:t,__enum__:"haxe.macro.AnonStatus",toString:$estr}; },$_._hx_name="AAbstractStatics",$_.__params__ = ["t"],$_) }; haxe_macro_AnonStatus.__constructs__ = [haxe_macro_AnonStatus.AClosed,haxe_macro_AnonStatus.AOpened,haxe_macro_AnonStatus.AConst,haxe_macro_AnonStatus.AExtend,haxe_macro_AnonStatus.AClassStatics,haxe_macro_AnonStatus.AEnumStatics,haxe_macro_AnonStatus.AAbstractStatics]; haxe_macro_AnonStatus.__empty_constructs__ = [haxe_macro_AnonStatus.AClosed,haxe_macro_AnonStatus.AOpened,haxe_macro_AnonStatus.AConst]; var haxe_macro_ClassKind = $hxEnums["haxe.macro.ClassKind"] = { __ename__:"haxe.macro.ClassKind",__constructs__:null ,KNormal: {_hx_name:"KNormal",_hx_index:0,__enum__:"haxe.macro.ClassKind",toString:$estr} ,KTypeParameter: ($_=function(constraints) { return {_hx_index:1,constraints:constraints,__enum__:"haxe.macro.ClassKind",toString:$estr}; },$_._hx_name="KTypeParameter",$_.__params__ = ["constraints"],$_) ,KModuleFields: ($_=function(module) { return {_hx_index:2,module:module,__enum__:"haxe.macro.ClassKind",toString:$estr}; },$_._hx_name="KModuleFields",$_.__params__ = ["module"],$_) ,KExpr: ($_=function(expr) { return {_hx_index:3,expr:expr,__enum__:"haxe.macro.ClassKind",toString:$estr}; },$_._hx_name="KExpr",$_.__params__ = ["expr"],$_) ,KGeneric: {_hx_name:"KGeneric",_hx_index:4,__enum__:"haxe.macro.ClassKind",toString:$estr} ,KGenericInstance: ($_=function(cl,params) { return {_hx_index:5,cl:cl,params:params,__enum__:"haxe.macro.ClassKind",toString:$estr}; },$_._hx_name="KGenericInstance",$_.__params__ = ["cl","params"],$_) ,KMacroType: {_hx_name:"KMacroType",_hx_index:6,__enum__:"haxe.macro.ClassKind",toString:$estr} ,KAbstractImpl: ($_=function(a) { return {_hx_index:7,a:a,__enum__:"haxe.macro.ClassKind",toString:$estr}; },$_._hx_name="KAbstractImpl",$_.__params__ = ["a"],$_) ,KGenericBuild: {_hx_name:"KGenericBuild",_hx_index:8,__enum__:"haxe.macro.ClassKind",toString:$estr} }; haxe_macro_ClassKind.__constructs__ = [haxe_macro_ClassKind.KNormal,haxe_macro_ClassKind.KTypeParameter,haxe_macro_ClassKind.KModuleFields,haxe_macro_ClassKind.KExpr,haxe_macro_ClassKind.KGeneric,haxe_macro_ClassKind.KGenericInstance,haxe_macro_ClassKind.KMacroType,haxe_macro_ClassKind.KAbstractImpl,haxe_macro_ClassKind.KGenericBuild]; haxe_macro_ClassKind.__empty_constructs__ = [haxe_macro_ClassKind.KNormal,haxe_macro_ClassKind.KGeneric,haxe_macro_ClassKind.KMacroType,haxe_macro_ClassKind.KGenericBuild]; var haxe_macro_FieldKind = $hxEnums["haxe.macro.FieldKind"] = { __ename__:"haxe.macro.FieldKind",__constructs__:null ,FVar: ($_=function(read,write) { return {_hx_index:0,read:read,write:write,__enum__:"haxe.macro.FieldKind",toString:$estr}; },$_._hx_name="FVar",$_.__params__ = ["read","write"],$_) ,FMethod: ($_=function(k) { return {_hx_index:1,k:k,__enum__:"haxe.macro.FieldKind",toString:$estr}; },$_._hx_name="FMethod",$_.__params__ = ["k"],$_) }; haxe_macro_FieldKind.__constructs__ = [haxe_macro_FieldKind.FVar,haxe_macro_FieldKind.FMethod]; haxe_macro_FieldKind.__empty_constructs__ = []; var haxe_macro_VarAccess = $hxEnums["haxe.macro.VarAccess"] = { __ename__:"haxe.macro.VarAccess",__constructs__:null ,AccNormal: {_hx_name:"AccNormal",_hx_index:0,__enum__:"haxe.macro.VarAccess",toString:$estr} ,AccNo: {_hx_name:"AccNo",_hx_index:1,__enum__:"haxe.macro.VarAccess",toString:$estr} ,AccNever: {_hx_name:"AccNever",_hx_index:2,__enum__:"haxe.macro.VarAccess",toString:$estr} ,AccResolve: {_hx_name:"AccResolve",_hx_index:3,__enum__:"haxe.macro.VarAccess",toString:$estr} ,AccCall: {_hx_name:"AccCall",_hx_index:4,__enum__:"haxe.macro.VarAccess",toString:$estr} ,AccInline: {_hx_name:"AccInline",_hx_index:5,__enum__:"haxe.macro.VarAccess",toString:$estr} ,AccRequire: ($_=function(r,msg) { return {_hx_index:6,r:r,msg:msg,__enum__:"haxe.macro.VarAccess",toString:$estr}; },$_._hx_name="AccRequire",$_.__params__ = ["r","msg"],$_) ,AccCtor: {_hx_name:"AccCtor",_hx_index:7,__enum__:"haxe.macro.VarAccess",toString:$estr} }; haxe_macro_VarAccess.__constructs__ = [haxe_macro_VarAccess.AccNormal,haxe_macro_VarAccess.AccNo,haxe_macro_VarAccess.AccNever,haxe_macro_VarAccess.AccResolve,haxe_macro_VarAccess.AccCall,haxe_macro_VarAccess.AccInline,haxe_macro_VarAccess.AccRequire,haxe_macro_VarAccess.AccCtor]; haxe_macro_VarAccess.__empty_constructs__ = [haxe_macro_VarAccess.AccNormal,haxe_macro_VarAccess.AccNo,haxe_macro_VarAccess.AccNever,haxe_macro_VarAccess.AccResolve,haxe_macro_VarAccess.AccCall,haxe_macro_VarAccess.AccInline,haxe_macro_VarAccess.AccCtor]; var haxe_macro_MethodKind = $hxEnums["haxe.macro.MethodKind"] = { __ename__:"haxe.macro.MethodKind",__constructs__:null ,MethNormal: {_hx_name:"MethNormal",_hx_index:0,__enum__:"haxe.macro.MethodKind",toString:$estr} ,MethInline: {_hx_name:"MethInline",_hx_index:1,__enum__:"haxe.macro.MethodKind",toString:$estr} ,MethDynamic: {_hx_name:"MethDynamic",_hx_index:2,__enum__:"haxe.macro.MethodKind",toString:$estr} ,MethMacro: {_hx_name:"MethMacro",_hx_index:3,__enum__:"haxe.macro.MethodKind",toString:$estr} }; haxe_macro_MethodKind.__constructs__ = [haxe_macro_MethodKind.MethNormal,haxe_macro_MethodKind.MethInline,haxe_macro_MethodKind.MethDynamic,haxe_macro_MethodKind.MethMacro]; haxe_macro_MethodKind.__empty_constructs__ = [haxe_macro_MethodKind.MethNormal,haxe_macro_MethodKind.MethInline,haxe_macro_MethodKind.MethDynamic,haxe_macro_MethodKind.MethMacro]; var haxe_macro_TConstant = $hxEnums["haxe.macro.TConstant"] = { __ename__:"haxe.macro.TConstant",__constructs__:null ,TInt: ($_=function(i) { return {_hx_index:0,i:i,__enum__:"haxe.macro.TConstant",toString:$estr}; },$_._hx_name="TInt",$_.__params__ = ["i"],$_) ,TFloat: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"haxe.macro.TConstant",toString:$estr}; },$_._hx_name="TFloat",$_.__params__ = ["s"],$_) ,TString: ($_=function(s) { return {_hx_index:2,s:s,__enum__:"haxe.macro.TConstant",toString:$estr}; },$_._hx_name="TString",$_.__params__ = ["s"],$_) ,TBool: ($_=function(b) { return {_hx_index:3,b:b,__enum__:"haxe.macro.TConstant",toString:$estr}; },$_._hx_name="TBool",$_.__params__ = ["b"],$_) ,TNull: {_hx_name:"TNull",_hx_index:4,__enum__:"haxe.macro.TConstant",toString:$estr} ,TThis: {_hx_name:"TThis",_hx_index:5,__enum__:"haxe.macro.TConstant",toString:$estr} ,TSuper: {_hx_name:"TSuper",_hx_index:6,__enum__:"haxe.macro.TConstant",toString:$estr} }; haxe_macro_TConstant.__constructs__ = [haxe_macro_TConstant.TInt,haxe_macro_TConstant.TFloat,haxe_macro_TConstant.TString,haxe_macro_TConstant.TBool,haxe_macro_TConstant.TNull,haxe_macro_TConstant.TThis,haxe_macro_TConstant.TSuper]; haxe_macro_TConstant.__empty_constructs__ = [haxe_macro_TConstant.TNull,haxe_macro_TConstant.TThis,haxe_macro_TConstant.TSuper]; var haxe_macro_ModuleType = $hxEnums["haxe.macro.ModuleType"] = { __ename__:"haxe.macro.ModuleType",__constructs__:null ,TClassDecl: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"haxe.macro.ModuleType",toString:$estr}; },$_._hx_name="TClassDecl",$_.__params__ = ["c"],$_) ,TEnumDecl: ($_=function(e) { return {_hx_index:1,e:e,__enum__:"haxe.macro.ModuleType",toString:$estr}; },$_._hx_name="TEnumDecl",$_.__params__ = ["e"],$_) ,TTypeDecl: ($_=function(t) { return {_hx_index:2,t:t,__enum__:"haxe.macro.ModuleType",toString:$estr}; },$_._hx_name="TTypeDecl",$_.__params__ = ["t"],$_) ,TAbstract: ($_=function(a) { return {_hx_index:3,a:a,__enum__:"haxe.macro.ModuleType",toString:$estr}; },$_._hx_name="TAbstract",$_.__params__ = ["a"],$_) }; haxe_macro_ModuleType.__constructs__ = [haxe_macro_ModuleType.TClassDecl,haxe_macro_ModuleType.TEnumDecl,haxe_macro_ModuleType.TTypeDecl,haxe_macro_ModuleType.TAbstract]; haxe_macro_ModuleType.__empty_constructs__ = []; var haxe_macro_FieldAccess = $hxEnums["haxe.macro.FieldAccess"] = { __ename__:"haxe.macro.FieldAccess",__constructs__:null ,FInstance: ($_=function(c,params,cf) { return {_hx_index:0,c:c,params:params,cf:cf,__enum__:"haxe.macro.FieldAccess",toString:$estr}; },$_._hx_name="FInstance",$_.__params__ = ["c","params","cf"],$_) ,FStatic: ($_=function(c,cf) { return {_hx_index:1,c:c,cf:cf,__enum__:"haxe.macro.FieldAccess",toString:$estr}; },$_._hx_name="FStatic",$_.__params__ = ["c","cf"],$_) ,FAnon: ($_=function(cf) { return {_hx_index:2,cf:cf,__enum__:"haxe.macro.FieldAccess",toString:$estr}; },$_._hx_name="FAnon",$_.__params__ = ["cf"],$_) ,FDynamic: ($_=function(s) { return {_hx_index:3,s:s,__enum__:"haxe.macro.FieldAccess",toString:$estr}; },$_._hx_name="FDynamic",$_.__params__ = ["s"],$_) ,FClosure: ($_=function(c,cf) { return {_hx_index:4,c:c,cf:cf,__enum__:"haxe.macro.FieldAccess",toString:$estr}; },$_._hx_name="FClosure",$_.__params__ = ["c","cf"],$_) ,FEnum: ($_=function(e,ef) { return {_hx_index:5,e:e,ef:ef,__enum__:"haxe.macro.FieldAccess",toString:$estr}; },$_._hx_name="FEnum",$_.__params__ = ["e","ef"],$_) }; haxe_macro_FieldAccess.__constructs__ = [haxe_macro_FieldAccess.FInstance,haxe_macro_FieldAccess.FStatic,haxe_macro_FieldAccess.FAnon,haxe_macro_FieldAccess.FDynamic,haxe_macro_FieldAccess.FClosure,haxe_macro_FieldAccess.FEnum]; haxe_macro_FieldAccess.__empty_constructs__ = []; var haxe_macro_TypedExprDef = $hxEnums["haxe.macro.TypedExprDef"] = { __ename__:"haxe.macro.TypedExprDef",__constructs__:null ,TConst: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TConst",$_.__params__ = ["c"],$_) ,TLocal: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TLocal",$_.__params__ = ["v"],$_) ,TArray: ($_=function(e1,e2) { return {_hx_index:2,e1:e1,e2:e2,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TArray",$_.__params__ = ["e1","e2"],$_) ,TBinop: ($_=function(op,e1,e2) { return {_hx_index:3,op:op,e1:e1,e2:e2,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TBinop",$_.__params__ = ["op","e1","e2"],$_) ,TField: ($_=function(e,fa) { return {_hx_index:4,e:e,fa:fa,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TField",$_.__params__ = ["e","fa"],$_) ,TTypeExpr: ($_=function(m) { return {_hx_index:5,m:m,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TTypeExpr",$_.__params__ = ["m"],$_) ,TParenthesis: ($_=function(e) { return {_hx_index:6,e:e,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TParenthesis",$_.__params__ = ["e"],$_) ,TObjectDecl: ($_=function(fields) { return {_hx_index:7,fields:fields,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TObjectDecl",$_.__params__ = ["fields"],$_) ,TArrayDecl: ($_=function(el) { return {_hx_index:8,el:el,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TArrayDecl",$_.__params__ = ["el"],$_) ,TCall: ($_=function(e,el) { return {_hx_index:9,e:e,el:el,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TCall",$_.__params__ = ["e","el"],$_) ,TNew: ($_=function(c,params,el) { return {_hx_index:10,c:c,params:params,el:el,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TNew",$_.__params__ = ["c","params","el"],$_) ,TUnop: ($_=function(op,postFix,e) { return {_hx_index:11,op:op,postFix:postFix,e:e,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TUnop",$_.__params__ = ["op","postFix","e"],$_) ,TFunction: ($_=function(tfunc) { return {_hx_index:12,tfunc:tfunc,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TFunction",$_.__params__ = ["tfunc"],$_) ,TVar: ($_=function(v,expr) { return {_hx_index:13,v:v,expr:expr,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TVar",$_.__params__ = ["v","expr"],$_) ,TBlock: ($_=function(el) { return {_hx_index:14,el:el,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TBlock",$_.__params__ = ["el"],$_) ,TFor: ($_=function(v,e1,e2) { return {_hx_index:15,v:v,e1:e1,e2:e2,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TFor",$_.__params__ = ["v","e1","e2"],$_) ,TIf: ($_=function(econd,eif,eelse) { return {_hx_index:16,econd:econd,eif:eif,eelse:eelse,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TIf",$_.__params__ = ["econd","eif","eelse"],$_) ,TWhile: ($_=function(econd,e,normalWhile) { return {_hx_index:17,econd:econd,e:e,normalWhile:normalWhile,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TWhile",$_.__params__ = ["econd","e","normalWhile"],$_) ,TSwitch: ($_=function(e,cases,edef) { return {_hx_index:18,e:e,cases:cases,edef:edef,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TSwitch",$_.__params__ = ["e","cases","edef"],$_) ,TTry: ($_=function(e,catches) { return {_hx_index:19,e:e,catches:catches,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TTry",$_.__params__ = ["e","catches"],$_) ,TReturn: ($_=function(e) { return {_hx_index:20,e:e,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TReturn",$_.__params__ = ["e"],$_) ,TBreak: {_hx_name:"TBreak",_hx_index:21,__enum__:"haxe.macro.TypedExprDef",toString:$estr} ,TContinue: {_hx_name:"TContinue",_hx_index:22,__enum__:"haxe.macro.TypedExprDef",toString:$estr} ,TThrow: ($_=function(e) { return {_hx_index:23,e:e,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TThrow",$_.__params__ = ["e"],$_) ,TCast: ($_=function(e,m) { return {_hx_index:24,e:e,m:m,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TCast",$_.__params__ = ["e","m"],$_) ,TMeta: ($_=function(m,e1) { return {_hx_index:25,m:m,e1:e1,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TMeta",$_.__params__ = ["m","e1"],$_) ,TEnumParameter: ($_=function(e1,ef,index) { return {_hx_index:26,e1:e1,ef:ef,index:index,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TEnumParameter",$_.__params__ = ["e1","ef","index"],$_) ,TEnumIndex: ($_=function(e1) { return {_hx_index:27,e1:e1,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TEnumIndex",$_.__params__ = ["e1"],$_) ,TIdent: ($_=function(s) { return {_hx_index:28,s:s,__enum__:"haxe.macro.TypedExprDef",toString:$estr}; },$_._hx_name="TIdent",$_.__params__ = ["s"],$_) }; haxe_macro_TypedExprDef.__constructs__ = [haxe_macro_TypedExprDef.TConst,haxe_macro_TypedExprDef.TLocal,haxe_macro_TypedExprDef.TArray,haxe_macro_TypedExprDef.TBinop,haxe_macro_TypedExprDef.TField,haxe_macro_TypedExprDef.TTypeExpr,haxe_macro_TypedExprDef.TParenthesis,haxe_macro_TypedExprDef.TObjectDecl,haxe_macro_TypedExprDef.TArrayDecl,haxe_macro_TypedExprDef.TCall,haxe_macro_TypedExprDef.TNew,haxe_macro_TypedExprDef.TUnop,haxe_macro_TypedExprDef.TFunction,haxe_macro_TypedExprDef.TVar,haxe_macro_TypedExprDef.TBlock,haxe_macro_TypedExprDef.TFor,haxe_macro_TypedExprDef.TIf,haxe_macro_TypedExprDef.TWhile,haxe_macro_TypedExprDef.TSwitch,haxe_macro_TypedExprDef.TTry,haxe_macro_TypedExprDef.TReturn,haxe_macro_TypedExprDef.TBreak,haxe_macro_TypedExprDef.TContinue,haxe_macro_TypedExprDef.TThrow,haxe_macro_TypedExprDef.TCast,haxe_macro_TypedExprDef.TMeta,haxe_macro_TypedExprDef.TEnumParameter,haxe_macro_TypedExprDef.TEnumIndex,haxe_macro_TypedExprDef.TIdent]; haxe_macro_TypedExprDef.__empty_constructs__ = [haxe_macro_TypedExprDef.TBreak,haxe_macro_TypedExprDef.TContinue]; var haxe_macro_TypeTools = function() { }; $hxClasses["haxe.macro.TypeTools"] = haxe_macro_TypeTools; haxe_macro_TypeTools.__name__ = "haxe.macro.TypeTools"; haxe_macro_TypeTools.nullable = function(complexType) { return haxe_macro_ComplexType.TPath({ pack : [], name : "Null", params : [haxe_macro_TypeParam.TPType(complexType)]}); }; haxe_macro_TypeTools.toField = function(cf) { var varAccessToString = function(va,getOrSet) { switch(va._hx_index) { case 1: return "null"; case 2: return "never"; case 3: throw haxe_Exception.thrown("Invalid TAnonymous"); case 4: return getOrSet; case 5: return "default"; case 6: var _g = va.r; var _g = va.msg; return "default"; case 0:case 7: return "default"; } }; var access = cf.isPublic ? [haxe_macro_Access.APublic] : [haxe_macro_Access.APrivate]; if(cf.meta.has(":final")) { access.push(haxe_macro_Access.AFinal); } if(cf.params.length == 0) { var cf1 = cf.name; var cf2 = cf.doc; var tmp; var _g = cf.kind; var _g1 = cf.type; switch(_g._hx_index) { case 0: var read = _g.read; var write = _g.write; var ret = _g1; tmp = haxe_macro_FieldType.FProp(varAccessToString(read,"get"),varAccessToString(write,"set"),haxe_macro_TypeTools.toComplexType(ret),null); break; case 1: var _g2 = _g.k; if(_g1._hx_index == 4) { var args = _g1.args; var ret = _g1.ret; var _g = []; var _g1 = 0; while(_g1 < args.length) { var a = args[_g1]; ++_g1; _g.push({ name : a.name, opt : a.opt, type : haxe_macro_TypeTools.toComplexType(a.t)}); } tmp = haxe_macro_FieldType.FFun({ args : _g, ret : haxe_macro_TypeTools.toComplexType(ret), expr : null}); } else { throw haxe_Exception.thrown("Invalid TAnonymous"); } break; } return { name : cf1, doc : cf2, access : access, kind : tmp, pos : cf.pos, meta : cf.meta.get()}; } else { throw haxe_Exception.thrown("Invalid TAnonymous"); } }; haxe_macro_TypeTools.toComplexType = function(type) { if(type == null) { return null; } else { switch(type._hx_index) { case 0: var t = type.t.get(); if(t == null) { return null; } else { return haxe_macro_TypeTools.toComplexType(t); } break; case 1: var baseType = type.t.get(); var params = type.params; return haxe_macro_ComplexType.TPath(haxe_macro_TypeTools.toTypePath(baseType,params)); case 2: var classType = type.t.get(); var params = type.params; var _g = classType.kind; if(_g._hx_index == 1) { var _g1 = _g.constraints; return haxe_macro_ComplexType.TPath({ name : classType.name, pack : []}); } else { return haxe_macro_ComplexType.TPath(haxe_macro_TypeTools.toTypePath(classType,params)); } break; case 3: var baseType = type.t.get(); var params = type.params; return haxe_macro_ComplexType.TPath(haxe_macro_TypeTools.toTypePath(baseType,params)); case 4: var args = type.args; var ret = type.ret; var _g = []; var _g1 = 0; while(_g1 < args.length) { var a = args[_g1]; ++_g1; _g.push(a.opt ? haxe_macro_TypeTools.nullable(haxe_macro_TypeTools.toComplexType(a.t)) : haxe_macro_TypeTools.toComplexType(a.t)); } return haxe_macro_ComplexType.TFunction(_g,haxe_macro_TypeTools.toComplexType(ret)); case 5: var _hx_tmp = type.a.get(); var _g = _hx_tmp.status; var fields = _hx_tmp.fields; var _g = []; var _g1 = 0; while(_g1 < fields.length) { var cf = fields[_g1]; ++_g1; _g.push(haxe_macro_TypeTools.toField(cf)); } return haxe_macro_ComplexType.TAnonymous(_g); case 6: var t = type.t; if(t == null) { return haxe_macro_ComplexType.TPath({ pack : [], name : "Dynamic", params : []}); } else { var ct = haxe_macro_TypeTools.toComplexType(t); return haxe_macro_ComplexType.TPath({ pack : [], name : "Dynamic", params : [haxe_macro_TypeParam.TPType(ct)]}); } break; case 7: var f = type.f; return haxe_macro_TypeTools.toComplexType(f()); case 8: var baseType = type.t.get(); var params = type.params; return haxe_macro_ComplexType.TPath(haxe_macro_TypeTools.toTypePath(baseType,params)); } } }; haxe_macro_TypeTools.toTypeParam = function(type) { if(type._hx_index == 2) { var _g = type.params; var _hx_tmp = type.t.get(); var _g = _hx_tmp.constructor; var _g = _hx_tmp.doc; var _g = _hx_tmp.fields; var _g = _hx_tmp.init; var _g = _hx_tmp.interfaces; var _g = _hx_tmp.isAbstract; var _g = _hx_tmp.isExtern; var _g = _hx_tmp.isFinal; var _g = _hx_tmp.isInterface; var _g = _hx_tmp.isPrivate; var _g = _hx_tmp.kind; var _g1 = _hx_tmp.meta; var _g1 = _hx_tmp.module; var _g1 = _hx_tmp.name; var _g1 = _hx_tmp.overrides; var _g1 = _hx_tmp.pack; var _g1 = _hx_tmp.params; var _g1 = _hx_tmp.pos; var _g1 = _hx_tmp.statics; var _g1 = _hx_tmp.superClass; if(_g._hx_index == 3) { var e = _g.expr; return haxe_macro_TypeParam.TPExpr(e); } else { return haxe_macro_TypeParam.TPType(haxe_macro_TypeTools.toComplexType(type)); } } else { return haxe_macro_TypeParam.TPType(haxe_macro_TypeTools.toComplexType(type)); } }; haxe_macro_TypeTools.toTypePath = function(baseType,params) { var module = baseType.module; var baseType1 = baseType.pack; var tmp = module.substring(module.lastIndexOf(".") + 1); var baseType2 = baseType.name; var _g = []; var _g1 = 0; while(_g1 < params.length) { var t = params[_g1]; ++_g1; _g.push(haxe_macro_TypeTools.toTypeParam(t)); } return { pack : baseType1, name : tmp, sub : baseType2, params : _g}; }; haxe_macro_TypeTools.findField = function(c,name,isStatic) { if(isStatic == null) { isStatic = false; } var field = Lambda.find((isStatic ? c.statics : c.fields).get(),function(field) { return field.name == name; }); if(field != null) { return field; } else if(c.superClass != null) { return haxe_macro_TypeTools.findField(c.superClass.t.get(),name,isStatic); } else { return null; } }; var haxe_macro_TypedExprTools = function() { }; $hxClasses["haxe.macro.TypedExprTools"] = haxe_macro_TypedExprTools; haxe_macro_TypedExprTools.__name__ = "haxe.macro.TypedExprTools"; haxe_macro_TypedExprTools.with = function(e,edef,t) { return { expr : edef == null ? e.expr : edef, pos : e.pos, t : t == null ? e.t : t}; }; haxe_macro_TypedExprTools.map = function(e,f) { var _g = e.expr; switch(_g._hx_index) { case 0: var _g1 = _g.c; return e; case 1: var _g1 = _g.v; return e; case 2: var e1 = _g.e1; var e2 = _g.e2; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TArray(f(e1),f(e2))); case 3: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TBinop(op,f(e1),f(e2))); case 4: var e1 = _g.e; var fa = _g.fa; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TField(f(e1),fa)); case 5: var _g1 = _g.m; return e; case 6: var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TParenthesis(f(e1))); case 7: var fl = _g.fields; var result = new Array(fl.length); var _g1 = 0; var _g2 = fl.length; while(_g1 < _g2) { var i = _g1++; var field = fl[i]; result[i] = { name : field.name, expr : f(field.expr)}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TObjectDecl(result)); case 8: var el = _g.el; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TArrayDecl(result)); case 9: var e1 = _g.e; var el = _g.el; var tmp = f(e1); var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TCall(tmp,result)); case 10: var t = _g.c; var pl = _g.params; var el = _g.el; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TNew(t,pl,result)); case 11: var op = _g.op; var pre = _g.postFix; var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TUnop(op,pre,f(e1))); case 12: var fu = _g.tfunc; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TFunction({ t : fu.t, args : fu.args, expr : f(fu.expr)})); case 13: var v = _g.v; var eo = _g.expr; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TVar(v,eo == null ? null : f(eo))); case 14: var el = _g.el; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TBlock(result)); case 15: var v = _g.v; var e1 = _g.e1; var e2 = _g.e2; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TFor(v,f(e1),f(e2))); case 16: var e1 = _g.econd; var e2 = _g.eif; var e3 = _g.eelse; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TIf(f(e1),f(e2),e3 == null ? null : f(e3))); case 17: var e1 = _g.econd; var e2 = _g.e; var flag = _g.normalWhile; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TWhile(f(e1),f(e2),flag)); case 18: var e1 = _g.e; var cases = _g.cases; var e2 = _g.edef; var tmp = f(e1); var result = new Array(cases.length); var _g1 = 0; var _g2 = cases.length; while(_g1 < _g2) { var i = _g1++; var c = cases[i]; var _this = c.values; var result1 = new Array(_this.length); var _g3 = 0; var _g4 = _this.length; while(_g3 < _g4) { var i1 = _g3++; result1[i1] = f(_this[i1]); } result[i] = { values : result1, expr : f(c.expr)}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TSwitch(tmp,result,e2 == null ? null : f(e2))); case 19: var e1 = _g.e; var catches = _g.catches; var tmp = f(e1); var result = new Array(catches.length); var _g1 = 0; var _g2 = catches.length; while(_g1 < _g2) { var i = _g1++; var c = catches[i]; result[i] = { v : c.v, expr : f(c.expr)}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TTry(tmp,result)); case 20: var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TReturn(e1 == null ? null : f(e1))); case 21:case 22: return e; case 23: var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TThrow(f(e1))); case 24: var e1 = _g.e; var mt = _g.m; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TCast(f(e1),mt)); case 25: var m = _g.m; var e1 = _g.e1; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TMeta(m,f(e1))); case 26: var e1 = _g.e1; var ef = _g.ef; var i = _g.index; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TEnumParameter(f(e1),ef,i)); case 27: var e1 = _g.e1; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TEnumIndex(f(e1))); case 28: var _g1 = _g.s; return e; } }; haxe_macro_TypedExprTools.iter = function(e,f) { var _g = e.expr; switch(_g._hx_index) { case 0: var _g1 = _g.c; break; case 1: var _g1 = _g.v; break; case 2: var e1 = _g.e1; var e2 = _g.e2; f(e1); f(e2); break; case 3: var _g1 = _g.op; var e1 = _g.e1; var e2 = _g.e2; f(e1); f(e2); break; case 4: var _g1 = _g.fa; var e1 = _g.e; f(e1); break; case 5: var _g1 = _g.m; break; case 6: var e1 = _g.e; f(e1); break; case 7: var fl = _g.fields; var _g1 = 0; while(_g1 < fl.length) { var field = fl[_g1]; ++_g1; f(field.expr); } break; case 8: var el = _g.el; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 9: var e1 = _g.e; var el = _g.el; f(e1); var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 10: var _g1 = _g.c; var _g1 = _g.params; var el = _g.el; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 11: var _g1 = _g.op; var _g1 = _g.postFix; var e1 = _g.e; f(e1); break; case 12: var fu = _g.tfunc; f(fu.expr); break; case 13: var _g1 = _g.v; var e1 = _g.expr; if(e1 != null) { f(e1); } break; case 14: var el = _g.el; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 15: var _g1 = _g.v; var e1 = _g.e1; var e2 = _g.e2; f(e1); f(e2); break; case 16: var e1 = _g.econd; var e2 = _g.eif; var e3 = _g.eelse; f(e1); f(e2); if(e3 != null) { f(e3); } break; case 17: var _g1 = _g.normalWhile; var e1 = _g.econd; var e2 = _g.e; f(e1); f(e2); break; case 18: var e1 = _g.e; var cases = _g.cases; var e2 = _g.edef; f(e1); var _g1 = 0; while(_g1 < cases.length) { var c = cases[_g1]; ++_g1; var _g2 = 0; var _g3 = c.values; while(_g2 < _g3.length) { var v = _g3[_g2]; ++_g2; f(v); } f(c.expr); } if(e2 != null) { f(e2); } break; case 19: var e1 = _g.e; var catches = _g.catches; f(e1); var _g1 = 0; while(_g1 < catches.length) { var c = catches[_g1]; ++_g1; f(c.expr); } break; case 20: var e1 = _g.e; if(e1 != null) { f(e1); } break; case 21:case 22: break; case 23: var e1 = _g.e; f(e1); break; case 24: var _g1 = _g.m; var e1 = _g.e; f(e1); break; case 25: var _g1 = _g.m; var e1 = _g.e1; f(e1); break; case 26: var _g1 = _g.ef; var _g1 = _g.index; var e1 = _g.e1; f(e1); break; case 27: var e1 = _g.e1; f(e1); break; case 28: var _g1 = _g.s; break; } }; haxe_macro_TypedExprTools.mapWithType = function(e,f,ft,fv) { var _g = e.expr; switch(_g._hx_index) { case 0: var _g1 = _g.c; return haxe_macro_TypedExprTools.with(e,null,ft(e.t)); case 1: var v = _g.v; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TLocal(fv(v)),ft(e.t)); case 2: var e1 = _g.e1; var e2 = _g.e2; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TArray(f(e1),f(e2)),ft(e.t)); case 3: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TBinop(op,f(e1),f(e2)),ft(e.t)); case 4: var e1 = _g.e; var fa = _g.fa; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TField(f(e1),fa),ft(e.t)); case 5: var _g1 = _g.m; return haxe_macro_TypedExprTools.with(e,null,ft(e.t)); case 6: var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TParenthesis(e1),ft(e.t)); case 7: var fl = _g.fields; var result = new Array(fl.length); var _g1 = 0; var _g2 = fl.length; while(_g1 < _g2) { var i = _g1++; var field = fl[i]; result[i] = { name : field.name, expr : f(field.expr)}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TObjectDecl(result),ft(e.t)); case 8: var el = _g.el; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TArrayDecl(result),ft(e.t)); case 9: var e1 = _g.e; var el = _g.el; var tmp = f(e1); var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TCall(tmp,result),ft(e.t)); case 10: var t = _g.c; var pl = _g.params; var el = _g.el; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TNew(t,pl,result),ft(e.t)); case 11: var op = _g.op; var pre = _g.postFix; var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TUnop(op,pre,f(e1)),ft(e.t)); case 12: var fu = _g.tfunc; var tmp = ft(fu.t); var _this = fu.args; var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; var arg = _this[i]; result[i] = { v : fv(arg.v), value : arg.value}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TFunction({ t : tmp, args : result, expr : f(fu.expr)}),ft(e.t)); case 13: var v = _g.v; var eo = _g.expr; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TVar(fv(v),eo == null ? null : f(eo)),ft(e.t)); case 14: var el = _g.el; var result = new Array(el.length); var _g1 = 0; var _g2 = el.length; while(_g1 < _g2) { var i = _g1++; result[i] = f(el[i]); } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TBlock(result),ft(e.t)); case 15: var v = _g.v; var e1 = _g.e1; var e2 = _g.e2; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TFor(fv(v),f(e1),f(e2)),ft(e.t)); case 16: var e1 = _g.econd; var e2 = _g.eif; var e3 = _g.eelse; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TIf(f(e1),f(e2),e3 == null ? null : f(e3)),ft(e.t)); case 17: var e1 = _g.econd; var e2 = _g.e; var flag = _g.normalWhile; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TWhile(f(e1),f(e2),flag),ft(e.t)); case 18: var e1 = _g.e; var cases = _g.cases; var e2 = _g.edef; var tmp = f(e1); var result = new Array(cases.length); var _g1 = 0; var _g2 = cases.length; while(_g1 < _g2) { var i = _g1++; var c = cases[i]; var _this = c.values; var result1 = new Array(_this.length); var _g3 = 0; var _g4 = _this.length; while(_g3 < _g4) { var i1 = _g3++; result1[i1] = f(_this[i1]); } result[i] = { values : result1, expr : f(c.expr)}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TSwitch(tmp,result,e2 == null ? null : f(e2)),ft(e.t)); case 19: var e1 = _g.e; var catches = _g.catches; var tmp = f(e1); var result = new Array(catches.length); var _g1 = 0; var _g2 = catches.length; while(_g1 < _g2) { var i = _g1++; var c = catches[i]; result[i] = { v : fv(c.v), expr : f(c.expr)}; } return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TTry(tmp,result),ft(e.t)); case 20: var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TReturn(e1 == null ? null : f(e1)),ft(e.t)); case 21:case 22: return haxe_macro_TypedExprTools.with(e,null,ft(e.t)); case 23: var e1 = _g.e; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TThrow(f(e1)),ft(e.t)); case 24: var e1 = _g.e; var mt = _g.m; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TCast(f(e1),mt),ft(e.t)); case 25: var m = _g.m; var e1 = _g.e1; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TMeta(m,f(e1)),ft(e.t)); case 26: var e1 = _g.e1; var ef = _g.ef; var i = _g.index; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TEnumParameter(f(e1),ef,i),ft(e.t)); case 27: var e1 = _g.e1; return haxe_macro_TypedExprTools.with(e,haxe_macro_TypedExprDef.TEnumIndex(f(e1)),ft(e.t)); case 28: var _g1 = _g.s; return haxe_macro_TypedExprTools.with(e,null,ft(e.t)); } }; var haxe_rtti_CType = $hxEnums["haxe.rtti.CType"] = { __ename__:"haxe.rtti.CType",__constructs__:null ,CUnknown: {_hx_name:"CUnknown",_hx_index:0,__enum__:"haxe.rtti.CType",toString:$estr} ,CEnum: ($_=function(name,params) { return {_hx_index:1,name:name,params:params,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CEnum",$_.__params__ = ["name","params"],$_) ,CClass: ($_=function(name,params) { return {_hx_index:2,name:name,params:params,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CClass",$_.__params__ = ["name","params"],$_) ,CTypedef: ($_=function(name,params) { return {_hx_index:3,name:name,params:params,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CTypedef",$_.__params__ = ["name","params"],$_) ,CFunction: ($_=function(args,ret) { return {_hx_index:4,args:args,ret:ret,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CFunction",$_.__params__ = ["args","ret"],$_) ,CAnonymous: ($_=function(fields) { return {_hx_index:5,fields:fields,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CAnonymous",$_.__params__ = ["fields"],$_) ,CDynamic: ($_=function(t) { return {_hx_index:6,t:t,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CDynamic",$_.__params__ = ["t"],$_) ,CAbstract: ($_=function(name,params) { return {_hx_index:7,name:name,params:params,__enum__:"haxe.rtti.CType",toString:$estr}; },$_._hx_name="CAbstract",$_.__params__ = ["name","params"],$_) }; haxe_rtti_CType.__constructs__ = [haxe_rtti_CType.CUnknown,haxe_rtti_CType.CEnum,haxe_rtti_CType.CClass,haxe_rtti_CType.CTypedef,haxe_rtti_CType.CFunction,haxe_rtti_CType.CAnonymous,haxe_rtti_CType.CDynamic,haxe_rtti_CType.CAbstract]; haxe_rtti_CType.__empty_constructs__ = [haxe_rtti_CType.CUnknown]; var haxe_rtti_Rights = $hxEnums["haxe.rtti.Rights"] = { __ename__:"haxe.rtti.Rights",__constructs__:null ,RNormal: {_hx_name:"RNormal",_hx_index:0,__enum__:"haxe.rtti.Rights",toString:$estr} ,RNo: {_hx_name:"RNo",_hx_index:1,__enum__:"haxe.rtti.Rights",toString:$estr} ,RCall: ($_=function(m) { return {_hx_index:2,m:m,__enum__:"haxe.rtti.Rights",toString:$estr}; },$_._hx_name="RCall",$_.__params__ = ["m"],$_) ,RMethod: {_hx_name:"RMethod",_hx_index:3,__enum__:"haxe.rtti.Rights",toString:$estr} ,RDynamic: {_hx_name:"RDynamic",_hx_index:4,__enum__:"haxe.rtti.Rights",toString:$estr} ,RInline: {_hx_name:"RInline",_hx_index:5,__enum__:"haxe.rtti.Rights",toString:$estr} }; haxe_rtti_Rights.__constructs__ = [haxe_rtti_Rights.RNormal,haxe_rtti_Rights.RNo,haxe_rtti_Rights.RCall,haxe_rtti_Rights.RMethod,haxe_rtti_Rights.RDynamic,haxe_rtti_Rights.RInline]; haxe_rtti_Rights.__empty_constructs__ = [haxe_rtti_Rights.RNormal,haxe_rtti_Rights.RNo,haxe_rtti_Rights.RMethod,haxe_rtti_Rights.RDynamic,haxe_rtti_Rights.RInline]; var haxe_rtti_TypeTree = $hxEnums["haxe.rtti.TypeTree"] = { __ename__:"haxe.rtti.TypeTree",__constructs__:null ,TPackage: ($_=function(name,full,subs) { return {_hx_index:0,name:name,full:full,subs:subs,__enum__:"haxe.rtti.TypeTree",toString:$estr}; },$_._hx_name="TPackage",$_.__params__ = ["name","full","subs"],$_) ,TClassdecl: ($_=function(c) { return {_hx_index:1,c:c,__enum__:"haxe.rtti.TypeTree",toString:$estr}; },$_._hx_name="TClassdecl",$_.__params__ = ["c"],$_) ,TEnumdecl: ($_=function(e) { return {_hx_index:2,e:e,__enum__:"haxe.rtti.TypeTree",toString:$estr}; },$_._hx_name="TEnumdecl",$_.__params__ = ["e"],$_) ,TTypedecl: ($_=function(t) { return {_hx_index:3,t:t,__enum__:"haxe.rtti.TypeTree",toString:$estr}; },$_._hx_name="TTypedecl",$_.__params__ = ["t"],$_) ,TAbstractdecl: ($_=function(a) { return {_hx_index:4,a:a,__enum__:"haxe.rtti.TypeTree",toString:$estr}; },$_._hx_name="TAbstractdecl",$_.__params__ = ["a"],$_) }; haxe_rtti_TypeTree.__constructs__ = [haxe_rtti_TypeTree.TPackage,haxe_rtti_TypeTree.TClassdecl,haxe_rtti_TypeTree.TEnumdecl,haxe_rtti_TypeTree.TTypedecl,haxe_rtti_TypeTree.TAbstractdecl]; haxe_rtti_TypeTree.__empty_constructs__ = []; var haxe_rtti_TypeApi = function() { }; $hxClasses["haxe.rtti.TypeApi"] = haxe_rtti_TypeApi; haxe_rtti_TypeApi.__name__ = "haxe.rtti.TypeApi"; haxe_rtti_TypeApi.typeInfos = function(t) { var inf; switch(t._hx_index) { case 0: var _g = t.name; var _g = t.full; var _g = t.subs; throw haxe_Exception.thrown("Unexpected Package"); case 1: var c = t.c; inf = c; break; case 2: var e = t.e; inf = e; break; case 3: var t1 = t.t; inf = t1; break; case 4: var a = t.a; inf = a; break; } return inf; }; haxe_rtti_TypeApi.isVar = function(t) { if(t._hx_index == 4) { var _g = t.args; var _g = t.ret; return false; } else { return true; } }; haxe_rtti_TypeApi.leq = function(f,l1,l2) { var it_current = 0; var it_array = l2; var _g = 0; while(_g < l1.length) { var e1 = l1[_g]; ++_g; if(it_current >= it_array.length) { return false; } var e2 = it_array[it_current++]; if(!f(e1,e2)) { return false; } } if(it_current < it_array.length) { return false; } return true; }; haxe_rtti_TypeApi.rightsEq = function(r1,r2) { if(r1 == r2) { return true; } if(r1._hx_index == 2) { var m1 = r1.m; if(r2._hx_index == 2) { var m2 = r2.m; return m1 == m2; } } return false; }; haxe_rtti_TypeApi.typeEq = function(t1,t2) { switch(t1._hx_index) { case 0: return t2 == haxe_rtti_CType.CUnknown; case 1: var name = t1.name; var params = t1.params; if(t2._hx_index == 1) { var name2 = t2.name; var params2 = t2.params; if(name == name2) { return haxe_rtti_TypeApi.leq(haxe_rtti_TypeApi.typeEq,params,params2); } else { return false; } } break; case 2: var name = t1.name; var params = t1.params; if(t2._hx_index == 2) { var name2 = t2.name; var params2 = t2.params; if(name == name2) { return haxe_rtti_TypeApi.leq(haxe_rtti_TypeApi.typeEq,params,params2); } else { return false; } } break; case 3: var name = t1.name; var params = t1.params; if(t2._hx_index == 3) { var name2 = t2.name; var params2 = t2.params; if(name == name2) { return haxe_rtti_TypeApi.leq(haxe_rtti_TypeApi.typeEq,params,params2); } else { return false; } } break; case 4: var args = t1.args; var ret = t1.ret; if(t2._hx_index == 4) { var args2 = t2.args; var ret2 = t2.ret; if(haxe_rtti_TypeApi.leq(function(a,b) { if(a.name == b.name && a.opt == b.opt) { return haxe_rtti_TypeApi.typeEq(a.t,b.t); } else { return false; } },args,args2)) { return haxe_rtti_TypeApi.typeEq(ret,ret2); } else { return false; } } break; case 5: var fields = t1.fields; if(t2._hx_index == 5) { var fields2 = t2.fields; return haxe_rtti_TypeApi.leq(function(a,b) { return haxe_rtti_TypeApi.fieldEq(a,b); },fields,fields2); } break; case 6: var t = t1.t; if(t2._hx_index == 6) { var t21 = t2.t; if(t == null != (t21 == null)) { return false; } if(t != null) { return haxe_rtti_TypeApi.typeEq(t,t21); } else { return true; } } break; case 7: var name = t1.name; var params = t1.params; if(t2._hx_index == 7) { var name2 = t2.name; var params2 = t2.params; if(name == name2) { return haxe_rtti_TypeApi.leq(haxe_rtti_TypeApi.typeEq,params,params2); } else { return false; } } break; } return false; }; haxe_rtti_TypeApi.fieldEq = function(f1,f2) { if(f1.name != f2.name) { return false; } if(!haxe_rtti_TypeApi.typeEq(f1.type,f2.type)) { return false; } if(f1.isPublic != f2.isPublic) { return false; } if(f1.doc != f2.doc) { return false; } if(!haxe_rtti_TypeApi.rightsEq(f1.get,f2.get)) { return false; } if(!haxe_rtti_TypeApi.rightsEq(f1.set,f2.set)) { return false; } if(f1.params == null != (f2.params == null)) { return false; } if(f1.params != null && f1.params.join(":") != f2.params.join(":")) { return false; } return true; }; haxe_rtti_TypeApi.constructorEq = function(c1,c2) { if(c1.name != c2.name) { return false; } if(c1.doc != c2.doc) { return false; } if(c1.args == null != (c2.args == null)) { return false; } if(c1.args != null && !haxe_rtti_TypeApi.leq(function(a,b) { if(a.name == b.name && a.opt == b.opt) { return haxe_rtti_TypeApi.typeEq(a.t,b.t); } else { return false; } },c1.args,c2.args)) { return false; } return true; }; var haxe_rtti_CTypeTools = function() { }; $hxClasses["haxe.rtti.CTypeTools"] = haxe_rtti_CTypeTools; haxe_rtti_CTypeTools.__name__ = "haxe.rtti.CTypeTools"; haxe_rtti_CTypeTools.toString = function(t) { switch(t._hx_index) { case 0: return "unknown"; case 1: var name = t.name; var params = t.params; return haxe_rtti_CTypeTools.nameWithParams(name,params); case 2: var name = t.name; var params = t.params; return haxe_rtti_CTypeTools.nameWithParams(name,params); case 3: var name = t.name; var params = t.params; return haxe_rtti_CTypeTools.nameWithParams(name,params); case 4: var args = t.args; var ret = t.ret; if(args.length == 0) { return "Void -> " + haxe_rtti_CTypeTools.toString(ret); } else { var f = haxe_rtti_CTypeTools.functionArgumentName; var result = new Array(args.length); var _g = 0; var _g1 = args.length; while(_g < _g1) { var i = _g++; result[i] = f(args[i]); } return result.join(" -> ") + " -> " + haxe_rtti_CTypeTools.toString(ret); } break; case 5: var fields = t.fields; var f = haxe_rtti_CTypeTools.classField; var result = new Array(fields.length); var _g = 0; var _g1 = fields.length; while(_g < _g1) { var i = _g++; result[i] = f(fields[i]); } return "{ " + result.join(", ") + "}"; case 6: var d = t.t; if(d == null) { return "Dynamic"; } else { return "Dynamic<" + haxe_rtti_CTypeTools.toString(d) + ">"; } break; case 7: var name = t.name; var params = t.params; return haxe_rtti_CTypeTools.nameWithParams(name,params); } }; haxe_rtti_CTypeTools.nameWithParams = function(name,params) { if(params.length == 0) { return name; } var tmp = name + "<"; var f = haxe_rtti_CTypeTools.toString; var result = new Array(params.length); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; result[i] = f(params[i]); } return tmp + result.join(", ") + ">"; }; haxe_rtti_CTypeTools.functionArgumentName = function(arg) { return (arg.opt ? "?" : "") + (arg.name == "" ? "" : arg.name + ":") + haxe_rtti_CTypeTools.toString(arg.t) + (arg.value == null ? "" : " = " + arg.value); }; haxe_rtti_CTypeTools.classField = function(cf) { return cf.name + ":" + haxe_rtti_CTypeTools.toString(cf.type); }; var haxe_rtti_Rtti = function() { }; $hxClasses["haxe.rtti.Rtti"] = haxe_rtti_Rtti; haxe_rtti_Rtti.__name__ = "haxe.rtti.Rtti"; haxe_rtti_Rtti.getRtti = function(c) { var rtti = Reflect.field(c,"__rtti"); if(rtti == null) { throw haxe_Exception.thrown("Class " + c.__name__ + " has no RTTI information, consider adding @:rtti"); } var x = Xml.parse(rtti).firstElement(); var infos = new haxe_rtti_XmlParser().processElement(x); if(infos._hx_index == 1) { var c = infos.c; return c; } else { var t = infos; throw haxe_Exception.thrown("Enum mismatch: expected TClassDecl but found " + Std.string(t)); } }; haxe_rtti_Rtti.hasRtti = function(c) { return Lambda.has(Type.getClassFields(c),"__rtti"); }; var haxe_rtti_XmlParser = function() { this.root = []; }; $hxClasses["haxe.rtti.XmlParser"] = haxe_rtti_XmlParser; haxe_rtti_XmlParser.__name__ = "haxe.rtti.XmlParser"; haxe_rtti_XmlParser.prototype = { root: null ,curplatform: null ,sort: function(l) { if(l == null) { l = this.root; } l.sort(function(e1,e2) { var n1; if(e1._hx_index == 0) { var _g = e1.full; var _g = e1.subs; var p = e1.name; n1 = " " + p; } else { n1 = haxe_rtti_TypeApi.typeInfos(e1).path; } var n2; if(e2._hx_index == 0) { var _g = e2.full; var _g = e2.subs; var p = e2.name; n2 = " " + p; } else { n2 = haxe_rtti_TypeApi.typeInfos(e2).path; } if(n1 > n2) { return 1; } return -1; }); var _g = 0; while(_g < l.length) { var x = l[_g]; ++_g; switch(x._hx_index) { case 0: var _g1 = x.name; var _g2 = x.full; var l1 = x.subs; this.sort(l1); break; case 1: var c = x.c; this.sortFields(c.fields); this.sortFields(c.statics); break; case 2: var _g3 = x.e; break; case 3: var _g4 = x.t; break; case 4: var _g5 = x.a; break; } } } ,sortFields: function(a) { a.sort(function(f1,f2) { var v1 = haxe_rtti_TypeApi.isVar(f1.type); var v2 = haxe_rtti_TypeApi.isVar(f2.type); if(v1 && !v2) { return -1; } if(v2 && !v1) { return 1; } if(f1.name == "new") { return -1; } if(f2.name == "new") { return 1; } if(f1.name > f2.name) { return 1; } return -1; }); } ,process: function(x,platform) { this.curplatform = platform; if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } this.xroot(x); } ,mergeRights: function(f1,f2) { if(f1.get == haxe_rtti_Rights.RInline && f1.set == haxe_rtti_Rights.RNo && f2.get == haxe_rtti_Rights.RNormal && f2.set == haxe_rtti_Rights.RMethod) { f1.get = haxe_rtti_Rights.RNormal; f1.set = haxe_rtti_Rights.RMethod; return true; } if(Type.enumEq(f1.get,f2.get)) { return Type.enumEq(f1.set,f2.set); } else { return false; } } ,mergeDoc: function(f1,f2) { if(f1.doc == null) { f1.doc = f2.doc; } else if(f2.doc == null) { f2.doc = f1.doc; } return true; } ,mergeFields: function(f,f2) { if(!haxe_rtti_TypeApi.fieldEq(f,f2)) { if(f.name == f2.name && (this.mergeRights(f,f2) || this.mergeRights(f2,f)) && this.mergeDoc(f,f2)) { return haxe_rtti_TypeApi.fieldEq(f,f2); } else { return false; } } else { return true; } } ,newField: function(c,f) { } ,mergeClasses: function(c,c2) { if(c.isInterface != c2.isInterface) { return false; } if(this.curplatform != null) { c.platforms.push(this.curplatform); } if(c.isExtern != c2.isExtern) { c.isExtern = false; } var _g = 0; var _g1 = c2.fields; while(_g < _g1.length) { var f2 = _g1[_g]; ++_g; var found = null; var _g2 = 0; var _g3 = c.fields; while(_g2 < _g3.length) { var f = _g3[_g2]; ++_g2; if(this.mergeFields(f,f2)) { found = f; break; } } if(found == null) { this.newField(c,f2); c.fields.push(f2); } else if(this.curplatform != null) { found.platforms.push(this.curplatform); } } var _g = 0; var _g1 = c2.statics; while(_g < _g1.length) { var f2 = _g1[_g]; ++_g; var found = null; var _g2 = 0; var _g3 = c.statics; while(_g2 < _g3.length) { var f = _g3[_g2]; ++_g2; if(this.mergeFields(f,f2)) { found = f; break; } } if(found == null) { this.newField(c,f2); c.statics.push(f2); } else if(this.curplatform != null) { found.platforms.push(this.curplatform); } } return true; } ,mergeEnums: function(e,e2) { if(e.isExtern != e2.isExtern) { return false; } if(this.curplatform != null) { e.platforms.push(this.curplatform); } var _g = 0; var _g1 = e2.constructors; while(_g < _g1.length) { var c2 = _g1[_g]; ++_g; var found = null; var _g2 = 0; var _g3 = e.constructors; while(_g2 < _g3.length) { var c = _g3[_g2]; ++_g2; if(haxe_rtti_TypeApi.constructorEq(c,c2)) { found = c; break; } } if(found == null) { e.constructors.push(c2); } else if(this.curplatform != null) { found.platforms.push(this.curplatform); } } return true; } ,mergeTypedefs: function(t,t2) { if(this.curplatform == null) { return false; } t.platforms.push(this.curplatform); t.types.h[this.curplatform] = t2.type; return true; } ,mergeAbstracts: function(a,a2) { if(this.curplatform == null) { return false; } if(a.to.length != a2.to.length || a.from.length != a2.from.length) { return false; } var _g = 0; var _g1 = a.to.length; while(_g < _g1) { var i = _g++; if(!haxe_rtti_TypeApi.typeEq(a.to[i].t,a2.to[i].t)) { return false; } } var _g = 0; var _g1 = a.from.length; while(_g < _g1) { var i = _g++; if(!haxe_rtti_TypeApi.typeEq(a.from[i].t,a2.from[i].t)) { return false; } } if(a2.impl != null) { this.mergeClasses(a.impl,a2.impl); } a.platforms.push(this.curplatform); return true; } ,merge: function(t) { var inf = haxe_rtti_TypeApi.typeInfos(t); var pack = inf.path.split("."); var cur = this.root; var curpack = []; pack.pop(); var _g = 0; while(_g < pack.length) { var p = pack[_g]; ++_g; var found = false; var _g1 = 0; while(_g1 < cur.length) { var pk = cur[_g1]; ++_g1; if(pk._hx_index == 0) { var _g2 = pk.full; var pname = pk.name; var subs = pk.subs; if(pname == p) { found = true; cur = subs; break; } } } curpack.push(p); if(!found) { var pk1 = []; cur.push(haxe_rtti_TypeTree.TPackage(p,curpack.join("."),pk1)); cur = pk1; } } var _g = 0; while(_g < cur.length) { var ct = cur[_g]; ++_g; var tmp; if(ct._hx_index == 0) { var _g1 = ct.name; var _g2 = ct.full; var _g3 = ct.subs; tmp = true; } else { tmp = false; } if(tmp) { continue; } var tinf = haxe_rtti_TypeApi.typeInfos(ct); if(tinf.path == inf.path) { var sameType = true; if(tinf.doc == null != (inf.doc == null)) { if(inf.doc == null) { inf.doc = tinf.doc; } else { tinf.doc = inf.doc; } } if(tinf.path == "haxe._Int64.NativeInt64") { continue; } if(tinf.module == inf.module && tinf.doc == inf.doc && tinf.isPrivate == inf.isPrivate) { switch(ct._hx_index) { case 0: var _g4 = ct.name; var _g5 = ct.full; var _g6 = ct.subs; sameType = false; break; case 1: var c = ct.c; if(t._hx_index == 1) { var c2 = t.c; if(this.mergeClasses(c,c2)) { return; } } else { sameType = false; } break; case 2: var e = ct.e; if(t._hx_index == 2) { var e2 = t.e; if(this.mergeEnums(e,e2)) { return; } } else { sameType = false; } break; case 3: var td = ct.t; if(t._hx_index == 3) { var td2 = t.t; if(this.mergeTypedefs(td,td2)) { return; } } break; case 4: var a = ct.a; if(t._hx_index == 4) { var a2 = t.a; if(this.mergeAbstracts(a,a2)) { return; } } else { sameType = false; } break; } } var msg = tinf.module != inf.module ? "module " + inf.module + " should be " + tinf.module : tinf.doc != inf.doc ? "documentation is different" : tinf.isPrivate != inf.isPrivate ? "private flag is different" : !sameType ? "type kind is different" : "could not merge definition"; throw haxe_Exception.thrown("Incompatibilities between " + tinf.path + " in " + tinf.platforms.join(",") + " and " + this.curplatform + " (" + msg + ")"); } } cur.push(t); } ,mkPath: function(p) { return p; } ,mkTypeParams: function(p) { var pl = p.split(":"); if(pl[0] == "") { return []; } return pl; } ,mkRights: function(r) { switch(r) { case "dynamic": return haxe_rtti_Rights.RDynamic; case "inline": return haxe_rtti_Rights.RInline; case "method": return haxe_rtti_Rights.RMethod; case "null": return haxe_rtti_Rights.RNo; default: return haxe_rtti_Rights.RCall(r); } } ,xerror: function(c) { var tmp; if(c.nodeType == Xml.Document) { tmp = "Document"; } else { if(c.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c.nodeType == null ? "null" : XmlType.toString(c.nodeType))); } tmp = c.nodeName; } throw haxe_Exception.thrown("Invalid " + tmp); } ,xroot: function(x) { var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); this.merge(this.processElement(c1)); } } ,processElement: function(x) { if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } var c = x; var _g; if(c.nodeType == Xml.Document) { _g = "Document"; } else { if(c.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c.nodeType == null ? "null" : XmlType.toString(c.nodeType))); } _g = c.nodeName; } switch(_g) { case "abstract": return haxe_rtti_TypeTree.TAbstractdecl(this.xabstract(c)); case "class": return haxe_rtti_TypeTree.TClassdecl(this.xclass(c)); case "enum": return haxe_rtti_TypeTree.TEnumdecl(this.xenum(c)); case "typedef": return haxe_rtti_TypeTree.TTypedecl(this.xtypedef(c)); default: return this.xerror(c); } } ,xmeta: function(x) { var ml = []; var _g = 0; var _g1 = haxe_xml__$Access_NodeListAccess.resolve(x,"m"); while(_g < _g1.length) { var m = _g1[_g]; ++_g; var pl = []; var _g2 = 0; var _g3 = haxe_xml__$Access_NodeListAccess.resolve(m,"e"); while(_g2 < _g3.length) { var p = _g3[_g2]; ++_g2; pl.push(haxe_xml_Access.get_innerHTML(p)); } ml.push({ name : haxe_xml__$Access_AttribAccess.resolve(m,"n"), params : pl}); } return ml; } ,xoverloads: function(x) { var l = []; var m = x.elements(); while(m.hasNext()) { var m1 = m.next(); l.push(this.xclassfield(m1)); } return l; } ,xpath: function(x) { var path = this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")); var params = []; var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); params.push(this.xtype(c1)); } return { path : path, params : params}; } ,xclass: function(x) { var csuper = null; var doc = null; var tdynamic = null; var interfaces = []; var fields = []; var statics = []; var meta = []; var isInterface = x.exists("interface"); var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); var _g; if(c1.nodeType == Xml.Document) { _g = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } _g = c1.nodeName; } switch(_g) { case "extends": if(isInterface) { interfaces.push(this.xpath(c1)); } else { csuper = this.xpath(c1); } break; case "haxe_doc": doc = haxe_xml_Access.get_innerData(c1); break; case "haxe_dynamic": var x1 = c1.firstElement(); if(x1.nodeType != Xml.Document && x1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x1.nodeType == null ? "null" : XmlType.toString(x1.nodeType))); } tdynamic = this.xtype(x1); break; case "implements": interfaces.push(this.xpath(c1)); break; case "meta": meta = this.xmeta(c1); break; default: if(c1.exists("static")) { statics.push(this.xclassfield(c1)); } else { fields.push(this.xclassfield(c1)); } } } return { file : haxe_xml__$Access_HasAttribAccess.resolve(x,"file") ? haxe_xml__$Access_AttribAccess.resolve(x,"file") : null, path : this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")), module : haxe_xml__$Access_HasAttribAccess.resolve(x,"module") ? this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"module")) : null, doc : doc, isPrivate : x.exists("private"), isExtern : x.exists("extern"), isFinal : x.exists("final"), isInterface : isInterface, params : this.mkTypeParams(haxe_xml__$Access_AttribAccess.resolve(x,"params")), superClass : csuper, interfaces : interfaces, fields : fields, statics : statics, tdynamic : tdynamic, platforms : this.defplat(), meta : meta}; } ,xclassfield: function(x,defPublic) { if(defPublic == null) { defPublic = false; } var e = x.elements(); var t = this.xtype(e.next()); var doc = null; var meta = []; var overloads = null; var c = e; while(c.hasNext()) { var c1 = c.next(); var _g; if(c1.nodeType == Xml.Document) { _g = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } _g = c1.nodeName; } switch(_g) { case "haxe_doc": doc = haxe_xml_Access.get_innerData(c1); break; case "meta": meta = this.xmeta(c1); break; case "overloads": overloads = this.xoverloads(c1); break; default: this.xerror(c1); } } var tmp; if(x.nodeType == Xml.Document) { tmp = "Document"; } else { if(x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } tmp = x.nodeName; } return { name : tmp, type : t, isPublic : x.exists("public") || defPublic, isFinal : x.exists("final"), isOverride : x.exists("override"), line : haxe_xml__$Access_HasAttribAccess.resolve(x,"line") ? Std.parseInt(haxe_xml__$Access_AttribAccess.resolve(x,"line")) : null, doc : doc, get : haxe_xml__$Access_HasAttribAccess.resolve(x,"get") ? this.mkRights(haxe_xml__$Access_AttribAccess.resolve(x,"get")) : haxe_rtti_Rights.RNormal, set : haxe_xml__$Access_HasAttribAccess.resolve(x,"set") ? this.mkRights(haxe_xml__$Access_AttribAccess.resolve(x,"set")) : haxe_rtti_Rights.RNormal, params : haxe_xml__$Access_HasAttribAccess.resolve(x,"params") ? this.mkTypeParams(haxe_xml__$Access_AttribAccess.resolve(x,"params")) : [], platforms : this.defplat(), meta : meta, overloads : overloads, expr : haxe_xml__$Access_HasAttribAccess.resolve(x,"expr") ? haxe_xml__$Access_AttribAccess.resolve(x,"expr") : null}; } ,xenum: function(x) { var cl = []; var doc = null; var meta = []; var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); var tmp; if(c1.nodeType == Xml.Document) { tmp = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } tmp = c1.nodeName; } if(tmp == "haxe_doc") { doc = haxe_xml_Access.get_innerData(c1); } else { var tmp1; if(c1.nodeType == Xml.Document) { tmp1 = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } tmp1 = c1.nodeName; } if(tmp1 == "meta") { meta = this.xmeta(c1); } else { cl.push(this.xenumfield(c1)); } } } return { file : haxe_xml__$Access_HasAttribAccess.resolve(x,"file") ? haxe_xml__$Access_AttribAccess.resolve(x,"file") : null, path : this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")), module : haxe_xml__$Access_HasAttribAccess.resolve(x,"module") ? this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"module")) : null, doc : doc, isPrivate : x.exists("private"), isExtern : x.exists("extern"), params : this.mkTypeParams(haxe_xml__$Access_AttribAccess.resolve(x,"params")), constructors : cl, platforms : this.defplat(), meta : meta}; } ,xenumfield: function(x) { var args = null; var docElements = x.elementsNamed("haxe_doc"); var xdoc = docElements.hasNext() ? docElements.next() : null; var meta = haxe_xml__$Access_HasNodeAccess.resolve(x,"meta") ? this.xmeta(haxe_xml__$Access_NodeAccess.resolve(x,"meta")) : []; if(haxe_xml__$Access_HasAttribAccess.resolve(x,"a")) { var names = haxe_xml__$Access_AttribAccess.resolve(x,"a").split(":"); var elts = x.elements(); args = []; var _g = 0; while(_g < names.length) { var c = names[_g]; ++_g; var opt = false; if(c.charAt(0) == "?") { opt = true; c = HxOverrides.substr(c,1,null); } args.push({ name : c, opt : opt, t : this.xtype(elts.next())}); } } var tmp; if(x.nodeType == Xml.Document) { tmp = "Document"; } else { if(x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } tmp = x.nodeName; } var tmp1; if(xdoc == null) { tmp1 = null; } else { if(xdoc.nodeType != Xml.Document && xdoc.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (xdoc.nodeType == null ? "null" : XmlType.toString(xdoc.nodeType))); } tmp1 = haxe_xml_Access.get_innerData(xdoc); } return { name : tmp, args : args, doc : tmp1, meta : meta, platforms : this.defplat()}; } ,xabstract: function(x) { var doc = null; var impl = null; var athis = null; var meta = []; var to = []; var from = []; var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); var _g; if(c1.nodeType == Xml.Document) { _g = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } _g = c1.nodeName; } switch(_g) { case "from": var t = c1.elements(); while(t.hasNext()) { var t1 = t.next(); var x1 = t1.firstElement(); if(x1.nodeType != Xml.Document && x1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x1.nodeType == null ? "null" : XmlType.toString(x1.nodeType))); } from.push({ t : this.xtype(x1), field : haxe_xml__$Access_HasAttribAccess.resolve(t1,"field") ? haxe_xml__$Access_AttribAccess.resolve(t1,"field") : null}); } break; case "haxe_doc": doc = haxe_xml_Access.get_innerData(c1); break; case "impl": impl = this.xclass(haxe_xml__$Access_NodeAccess.resolve(c1,"class")); break; case "meta": meta = this.xmeta(c1); break; case "this": var x2 = c1.firstElement(); if(x2.nodeType != Xml.Document && x2.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x2.nodeType == null ? "null" : XmlType.toString(x2.nodeType))); } athis = this.xtype(x2); break; case "to": var t2 = c1.elements(); while(t2.hasNext()) { var t3 = t2.next(); var x3 = t3.firstElement(); if(x3.nodeType != Xml.Document && x3.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x3.nodeType == null ? "null" : XmlType.toString(x3.nodeType))); } to.push({ t : this.xtype(x3), field : haxe_xml__$Access_HasAttribAccess.resolve(t3,"field") ? haxe_xml__$Access_AttribAccess.resolve(t3,"field") : null}); } break; default: this.xerror(c1); } } return { file : haxe_xml__$Access_HasAttribAccess.resolve(x,"file") ? haxe_xml__$Access_AttribAccess.resolve(x,"file") : null, path : this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")), module : haxe_xml__$Access_HasAttribAccess.resolve(x,"module") ? this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"module")) : null, doc : doc, isPrivate : x.exists("private"), params : this.mkTypeParams(haxe_xml__$Access_AttribAccess.resolve(x,"params")), platforms : this.defplat(), meta : meta, athis : athis, to : to, from : from, impl : impl}; } ,xtypedef: function(x) { var doc = null; var t = null; var meta = []; var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); var tmp; if(c1.nodeType == Xml.Document) { tmp = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } tmp = c1.nodeName; } if(tmp == "haxe_doc") { doc = haxe_xml_Access.get_innerData(c1); } else { var tmp1; if(c1.nodeType == Xml.Document) { tmp1 = "Document"; } else { if(c1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (c1.nodeType == null ? "null" : XmlType.toString(c1.nodeType))); } tmp1 = c1.nodeName; } if(tmp1 == "meta") { meta = this.xmeta(c1); } else { t = this.xtype(c1); } } } var types = new haxe_ds_StringMap(); if(this.curplatform != null) { types.h[this.curplatform] = t; } return { file : haxe_xml__$Access_HasAttribAccess.resolve(x,"file") ? haxe_xml__$Access_AttribAccess.resolve(x,"file") : null, path : this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")), module : haxe_xml__$Access_HasAttribAccess.resolve(x,"module") ? this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"module")) : null, doc : doc, isPrivate : x.exists("private"), params : this.mkTypeParams(haxe_xml__$Access_AttribAccess.resolve(x,"params")), type : t, types : types, platforms : this.defplat(), meta : meta}; } ,xtype: function(x) { var _g; if(x.nodeType == Xml.Document) { _g = "Document"; } else { if(x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } _g = x.nodeName; } switch(_g) { case "a": var fields = []; var f = x.elements(); while(f.hasNext()) { var f1 = f.next(); var f2 = this.xclassfield(f1,true); f2.platforms = []; fields.push(f2); } return haxe_rtti_CType.CAnonymous(fields); case "c": return haxe_rtti_CType.CClass(this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")),this.xtypeparams(x)); case "d": var t = null; var tx = x.firstElement(); if(tx != null) { if(tx.nodeType != Xml.Document && tx.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (tx.nodeType == null ? "null" : XmlType.toString(tx.nodeType))); } t = this.xtype(tx); } return haxe_rtti_CType.CDynamic(t); case "e": return haxe_rtti_CType.CEnum(this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")),this.xtypeparams(x)); case "f": var args = []; var aname = haxe_xml__$Access_AttribAccess.resolve(x,"a").split(":"); var eargs_current = 0; var eargs_array = aname; var evalues = haxe_xml__$Access_HasAttribAccess.resolve(x,"v") ? new haxe_iterators_ArrayIterator(haxe_xml__$Access_AttribAccess.resolve(x,"v").split(":")) : null; var e = x.elements(); while(e.hasNext()) { var e1 = e.next(); var opt = false; var a = eargs_current < eargs_array.length ? eargs_array[eargs_current++] : null; if(a == null) { a = ""; } if(a.charAt(0) == "?") { opt = true; a = HxOverrides.substr(a,1,null); } var v = evalues == null || evalues.current >= evalues.array.length ? null : evalues.array[evalues.current++]; args.push({ name : a, opt : opt, t : this.xtype(e1), value : v == "" ? null : v}); } var ret = args[args.length - 1]; HxOverrides.remove(args,ret); return haxe_rtti_CType.CFunction(args,ret.t); case "t": return haxe_rtti_CType.CTypedef(this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")),this.xtypeparams(x)); case "unknown": return haxe_rtti_CType.CUnknown; case "x": return haxe_rtti_CType.CAbstract(this.mkPath(haxe_xml__$Access_AttribAccess.resolve(x,"path")),this.xtypeparams(x)); default: return this.xerror(x); } } ,xtypeparams: function(x) { var p = []; var c = x.elements(); while(c.hasNext()) { var c1 = c.next(); p.push(this.xtype(c1)); } return p; } ,defplat: function() { var l = []; if(this.curplatform != null) { l.push(this.curplatform); } return l; } ,__class__: haxe_rtti_XmlParser }; var haxe_ui_backend_BackendImpl = function() { }; $hxClasses["haxe.ui.backend.BackendImpl"] = haxe_ui_backend_BackendImpl; haxe_ui_backend_BackendImpl.__name__ = "haxe.ui.backend.BackendImpl"; var haxe_ui_Backend = function() { }; $hxClasses["haxe.ui.Backend"] = haxe_ui_Backend; haxe_ui_Backend.__name__ = "haxe.ui.Backend"; haxe_ui_Backend.__properties__ = {get_id:"get_id"}; haxe_ui_Backend.id = null; haxe_ui_Backend.get_id = function() { return haxe_ui_backend_BackendImpl.id; }; haxe_ui_Backend.__super__ = haxe_ui_backend_BackendImpl; haxe_ui_Backend.prototype = $extend(haxe_ui_backend_BackendImpl.prototype,{ __class__: haxe_ui_Backend }); var haxe_ui_backend_CallLaterImpl = function(fn) { if(!haxe_ui_backend_CallLaterImpl.added) { haxe_ui_backend_CallLaterImpl.added = true; haxe_ui_backend_CallLaterImpl.current = haxe_ui_backend_CallLaterImpl.list1; flixel_FlxG.signals.preUpdate.add(haxe_ui_backend_CallLaterImpl.onUpdate); } haxe_ui_backend_CallLaterImpl.current.splice(0,0,fn); }; $hxClasses["haxe.ui.backend.CallLaterImpl"] = haxe_ui_backend_CallLaterImpl; haxe_ui_backend_CallLaterImpl.__name__ = "haxe.ui.backend.CallLaterImpl"; haxe_ui_backend_CallLaterImpl.current = null; haxe_ui_backend_CallLaterImpl.onUpdate = function() { var ref = haxe_ui_backend_CallLaterImpl.current; if(haxe_ui_backend_CallLaterImpl.current == haxe_ui_backend_CallLaterImpl.list1) { haxe_ui_backend_CallLaterImpl.current = haxe_ui_backend_CallLaterImpl.list2; } else { haxe_ui_backend_CallLaterImpl.current = haxe_ui_backend_CallLaterImpl.list1; } while(ref.length > 0) (ref.pop())(); }; haxe_ui_backend_CallLaterImpl.prototype = { __class__: haxe_ui_backend_CallLaterImpl }; var haxe_ui_CallLater = function(fn) { haxe_ui_backend_CallLaterImpl.call(this,fn); }; $hxClasses["haxe.ui.CallLater"] = haxe_ui_CallLater; haxe_ui_CallLater.__name__ = "haxe.ui.CallLater"; haxe_ui_CallLater.__super__ = haxe_ui_backend_CallLaterImpl; haxe_ui_CallLater.prototype = $extend(haxe_ui_backend_CallLaterImpl.prototype,{ __class__: haxe_ui_CallLater }); var haxe_ui_Preloader = function() { haxe_ui_containers_Box.call(this); this.set_id("preloader"); this.set_styleString("width:100%;height:100%;"); this.set_percentWidth(this.set_percentHeight(100)); this.set_styleNames("default-background"); }; $hxClasses["haxe.ui.Preloader"] = haxe_ui_Preloader; haxe_ui_Preloader.__name__ = "haxe.ui.Preloader"; haxe_ui_Preloader.__super__ = haxe_ui_containers_Box; haxe_ui_Preloader.prototype = $extend(haxe_ui_containers_Box.prototype,{ createChildren: function() { } ,validateComponentLayout: function() { var b = haxe_ui_containers_Box.prototype.validateComponentLayout.call(this); var tmp = this.get_actualComponentWidth() > 0 && this.get_actualComponentHeight() > 0; return b; } ,_current: null ,_max: null ,progress: function(current,max) { this._current = current; this._max = max; if(current > 0) { var label = this.findComponent(null,haxe_ui_components_Label); if(label != null) { var text = label.get_text(); if(StringTools.endsWith(text,"....")) { text = "Loading"; } label.set_text(text); } } } ,increment: function() { this.progress(this._current + 1,this._max); } ,complete: function() { haxe_ui_core_Screen.get_instance().removeComponent(this); } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_Preloader(); } ,__class__: haxe_ui_Preloader }); var haxe_ui_RuntimeComponentBuilder = function() { }; $hxClasses["haxe.ui.RuntimeComponentBuilder"] = haxe_ui_RuntimeComponentBuilder; haxe_ui_RuntimeComponentBuilder.__name__ = "haxe.ui.RuntimeComponentBuilder"; haxe_ui_RuntimeComponentBuilder.build = function(file) { return haxe_ui_RuntimeComponentBuilder.fromAsset(file); }; haxe_ui_RuntimeComponentBuilder.fromAsset = function(assetId) { var data = haxe_ui_ToolkitAssets.get_instance().getText(assetId); return haxe_ui_RuntimeComponentBuilder.fromString(data,null,new haxe_ui_parsers_ui_resolvers_AssetResourceResolver(assetId)); }; haxe_ui_RuntimeComponentBuilder.fromString = function(data,type,resourceResolver) { if(data == null || data.length == 0) { return null; } if(type == null) { if(StringTools.startsWith(StringTools.trim(data),"<")) { type = "xml"; } } var parser = haxe_ui_parsers_ui_ComponentParser.get(type); if(parser == null) { haxe_Log.trace("WARNING: type \"" + type + "\" not recognised",{ fileName : "haxe/ui/RuntimeComponentBuilder.hx", lineNumber : 61, className : "haxe.ui.RuntimeComponentBuilder", methodName : "fromString"}); return null; } var c = parser.parse(data,resourceResolver); var _g = 0; var _g1 = c.styles; while(_g < _g1.length) { var style = _g1[_g]; ++_g; if(style.scope == "global") { haxe_ui_Toolkit.styleSheet.parse(style.style); } } var component = haxe_ui_RuntimeComponentBuilder.buildComponentFromInfo(c); var fullScript = ""; var _g = 0; var _g1 = c.scriptlets; while(_g < _g1.length) { var scriptString = _g1[_g]; ++_g; fullScript += scriptString; } return component; }; haxe_ui_RuntimeComponentBuilder.buildComponentFromInfo = function(c) { if(c.condition != null && haxe_ui_util_SimpleExpressionEvaluator.evalCondition(c.condition) == false) { return null; } var className = haxe_ui_core_ComponentClassMap.get(c.type.toLowerCase()); if(className == null) { haxe_Log.trace("WARNING: no class found for component: " + c.type,{ fileName : "haxe/ui/RuntimeComponentBuilder.hx", lineNumber : 90, className : "haxe.ui.RuntimeComponentBuilder", methodName : "buildComponentFromInfo"}); return null; } var tempComponent = Object.create($hxClasses[className].prototype); var isDelegate = false; if(tempComponent == null) { var tempComponent2 = Object.create($hxClasses[className].prototype); if(js_Boot.__implements(tempComponent2,haxe_ui_IComponentDelegate)) { isDelegate = true; } else { haxe_Log.trace("WARNING: could not create class instance: " + className,{ fileName : "haxe/ui/RuntimeComponentBuilder.hx", lineNumber : 105, className : "haxe.ui.RuntimeComponentBuilder", methodName : "buildComponentFromInfo"}); return null; } } var component = null; if(js_Boot.__implements(tempComponent,haxe_ui_core_IDirectionalComponent)) { var parts = tempComponent.get_className().split("."); var name = parts.pop(); if(StringTools.startsWith(name,"Horizontal") == false && StringTools.startsWith(name,"Vertical") == false) { var direction = c.direction; if(direction == null) { direction = "horizontal"; } var directionalName = direction + name; var directionalClassName = haxe_ui_core_ComponentClassMap.get(directionalName.toLowerCase()); if(directionalClassName == null) { haxe_Log.trace("WARNING: no directional class found for component: " + c.type + " (" + (direction + c.type.toLowerCase()) + ")",{ fileName : "haxe/ui/RuntimeComponentBuilder.hx", lineNumber : 122, className : "haxe.ui.RuntimeComponentBuilder", methodName : "buildComponentFromInfo"}); return null; } component = Type.createInstance($hxClasses[directionalClassName],[]); if(component == null) { haxe_Log.trace("WARNING: could not create class instance: " + directionalClassName,{ fileName : "haxe/ui/RuntimeComponentBuilder.hx", lineNumber : 127, className : "haxe.ui.RuntimeComponentBuilder", methodName : "buildComponentFromInfo"}); return null; } } } else if(isDelegate) { var componentDelegate = Type.createInstance($hxClasses[className],[]); component = componentDelegate.get_component(); } if(component == null) { component = Type.createInstance($hxClasses[className],[]); } if(c.id != null) { component.set_id(c.id); } if(c.left != null) { component.set_left(c.left); } if(c.top != null) { component.set_top(c.top); } if(c.width != null) { component.set_width(c.width); } if(c.height != null) { component.set_height(c.height); } if(c.percentWidth != null) { component.set_percentWidth(c.percentWidth); } if(c.percentHeight != null) { component.set_percentHeight(c.percentHeight); } if(c.text != null) { component.set_text(c.text); } if(c.styleNames != null) { component.set_styleNames(c.styleNames); } if(c.style != null) { component.set_styleString(c.style); } if(c.layout != null) { var layout = haxe_ui_RuntimeComponentBuilder.buildLayoutFromInfo(c.layout); component.set_layout(layout); } if(((component) instanceof haxe_ui_containers_ScrollView)) { var scrollview = js_Boot.__cast(component , haxe_ui_containers_ScrollView); if(c.contentWidth != null) { scrollview.set_contentWidth(c.contentWidth); } if(c.contentHeight != null) { scrollview.set_contentHeight(c.contentHeight); } if(c.percentContentWidth != null) { scrollview.set_percentContentWidth(c.percentContentWidth); } if(c.percentContentHeight != null) { scrollview.set_percentContentHeight(c.percentContentHeight); } } var h = c.properties.h; var propName_h = h; var propName_keys = Object.keys(h); var propName_length = propName_keys.length; var propName_current = 0; while(propName_current < propName_length) { var propName = propName_keys[propName_current++]; var propValue = c.properties.h[propName]; if(Object.prototype.hasOwnProperty.call(haxe_ui_core_ComponentFieldMap.MAP.h,propName)) { propName = haxe_ui_core_ComponentFieldMap.MAP.h[propName]; } if(!StringTools.startsWith(propName,"on")) { var c1 = js_Boot.getClass(component); var propInfo = haxe_ui_util_RTTI.getClassProperty(c1.__name__,propName); if(propInfo != null && propInfo.propertyType == "variant") { propValue = haxe_ui_util_Variant.fromDynamic(propValue); Reflect.setProperty(component,propName,propValue); } else { propValue = haxe_ui_util_TypeConverter.convertFrom(propValue); Reflect.setProperty(component,propName,propValue); } } } if(js_Boot.__implements(component,haxe_ui_core_IDataComponent) && c.data != null) { (js_Boot.__cast(component , haxe_ui_core_IDataComponent)).set_dataSource(new haxe_ui_data_DataSourceFactory().fromString(c.get_dataString(),haxe_ui_data_ArrayDataSource)); } if(c.validators != null) { haxe_ui_RuntimeComponentBuilder.buildValidators(c,component,c.validators); } var _g = 0; var _g1 = c.children; while(_g < _g1.length) { var childInfo = _g1[_g]; ++_g; var childComponent = haxe_ui_RuntimeComponentBuilder.buildComponentFromInfo(childInfo); if(childComponent != null) { component.addComponent(childComponent); } } return component; }; haxe_ui_RuntimeComponentBuilder.buildValidators = function(c,component,validators) { var list = []; var _g = 0; while(_g < validators.length) { var validator = validators[_g]; ++_g; var type = validator.type; var instance = haxe_ui_validators_ValidatorManager.get_instance().createValidator(type); if(validator.properties != null) { var h = validator.properties.h; var propertyName_h = h; var propertyName_keys = Object.keys(h); var propertyName_length = propertyName_keys.length; var propertyName_current = 0; while(propertyName_current < propertyName_length) { var propertyName = propertyName_keys[propertyName_current++]; var propertyValue = validator.properties.h[propertyName]; var convertedPropertyValue = haxe_ui_util_TypeConverter.convertFrom(propertyValue); instance.setProperty(propertyName,convertedPropertyValue); } } list.push(instance); } if(list.length > 0 && ((component) instanceof haxe_ui_core_InteractiveComponent)) { (js_Boot.__cast(component , haxe_ui_core_InteractiveComponent)).set_validators(haxe_ui_validators_Validators.fromArray(list)); } }; haxe_ui_RuntimeComponentBuilder.buildLayoutFromInfo = function(l) { var layout = haxe_ui_layouts_LayoutFactory.createFromName(l.type.toLowerCase()); if(layout == null) { haxe_Log.trace("WARNING: could not create class instance: " + l.type.toLowerCase(),{ fileName : "haxe/ui/RuntimeComponentBuilder.hx", lineNumber : 221, className : "haxe.ui.RuntimeComponentBuilder", methodName : "buildLayoutFromInfo"}); return null; } var h = l.properties.h; var propName_h = h; var propName_keys = Object.keys(h); var propName_length = propName_keys.length; var propName_current = 0; while(propName_current < propName_length) { var propName = propName_keys[propName_current++]; var propValue = l.properties.h[propName]; Reflect.setProperty(layout,propName,haxe_ui_util_Variant.fromDynamic(propValue)); } return layout; }; var haxe_ui_IComponentDelegate = function() { }; $hxClasses["haxe.ui.IComponentDelegate"] = haxe_ui_IComponentDelegate; haxe_ui_IComponentDelegate.__name__ = "haxe.ui.IComponentDelegate"; haxe_ui_IComponentDelegate.__isInterface__ = true; haxe_ui_IComponentDelegate.prototype = { get_component: null ,set_component: null ,__class__: haxe_ui_IComponentDelegate ,__properties__: {set_component:"set_component",get_component:"get_component"} }; var haxe_ui_util_Properties = function() { this._props = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.util.Properties"] = haxe_ui_util_Properties; haxe_ui_util_Properties.__name__ = "haxe.ui.util.Properties"; haxe_ui_util_Properties.prototype = { _props: null ,exists: function(name) { return Object.prototype.hasOwnProperty.call(this._props.h,name); } ,getProp: function(name,defaultValue) { var v = defaultValue; if(Object.prototype.hasOwnProperty.call(this._props.h,name)) { v = this._props.h[name]; } return v; } ,getPropInt: function(name,defaultValue) { if(defaultValue == null) { defaultValue = 0; } var v = defaultValue; var stringValue = this.getProp(name); if(stringValue != null) { v = Std.parseInt(stringValue); } return v; } ,getPropBool: function(name,defaultValue) { if(defaultValue == null) { defaultValue = false; } var v = defaultValue; var stringValue = this.getProp(name); if(stringValue != null) { v = stringValue == "true"; } return v; } ,getPropCol: function(name,defaultValue) { if(defaultValue == null) { defaultValue = 0; } var v = defaultValue; var stringValue = this.getProp(name); if(stringValue != null) { var s = stringValue; if(StringTools.startsWith(s,"#")) { s = s.substring(1,s.length); } else if(StringTools.startsWith(s,"0x")) { s = s.substring(2,s.length); } v = Std.parseInt("0x" + s); } return v; } ,setProp: function(name,value) { if(name == null || StringTools.trim(name).length == 0) { return; } var this1 = this._props; var key = StringTools.trim(name); var value1 = StringTools.trim(value); this1.h[key] = value1; } ,names: function() { return new haxe_ds__$StringMap_StringMapKeyIterator(this._props.h); } ,addAll: function(p) { var name = p.names(); while(name.hasNext()) { var name1 = name.next(); this.setProp(name1,p.getProp(name1)); } } ,__class__: haxe_ui_util_Properties }; var haxe_ui_util_GenericConfig = function() { this.values = new haxe_ds_StringMap(); this.sections = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.util.GenericConfig"] = haxe_ui_util_GenericConfig; haxe_ui_util_GenericConfig.__name__ = "haxe.ui.util.GenericConfig"; haxe_ui_util_GenericConfig.prototype = { values: null ,sections: null ,addSection: function(name) { var config = new haxe_ui_util_GenericConfig(); var array = this.sections.h[name]; if(array == null) { array = []; this.sections.h[name] = array; } array.push(config); return config; } ,findBy: function(section,field,value) { var array = this.sections.h[section]; if(array == null) { return null; } if(field == null && value == null) { return array[0]; } var r = null; var _g = 0; while(_g < array.length) { var item = array[_g]; ++_g; var h = item.values.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(key == field && (item.values.h[key] == value || item.values.h[key].toLowerCase() == value.toLowerCase())) { r = item; break; } } if(r != null) { break; } } return r; } ,queryBool: function(q,defaultValue,conditionRef) { if(defaultValue == null) { defaultValue = false; } var r = this.query(q,null,conditionRef); if(r == null) { return defaultValue; } return r == "true"; } ,query: function(q,defaultValue,conditionRef) { if(Object.prototype.hasOwnProperty.call(haxe_ui_util_GenericConfig.cache.h,q)) { if(defaultValue != null && haxe_ui_util_GenericConfig.cache.h[q] == null) { return defaultValue; } return haxe_ui_util_GenericConfig.cache.h[q]; } var regexp = new EReg("\\.(?![^\\[]*\\])","g"); var finalArray = regexp.split(q); var ref = this; var value = null; var _g = 0; while(_g < finalArray.length) { var f = finalArray[_g]; ++_g; if(f.indexOf("[") == -1 && f.indexOf("@") == -1) { ref = ref.findBy(f); } else if(f.indexOf("[") != -1) { var p = f.split("["); var p1 = p[0]; var p2 = p[1].split("=")[0]; var p3 = p[1].split("=")[1]; p3 = HxOverrides.substr(p3,0,p3.length - 1); ref = ref.findBy(p1,p2,p3); } else if(f.indexOf("@") != -1) { var v = HxOverrides.substr(f,1,f.length); value = ref.values.h[v]; break; } if(ref == null) { haxe_ui_util_GenericConfig.cache.h[q] = defaultValue; return defaultValue; } } if(value == null) { value = defaultValue; } if(value != null) { haxe_ui_util_GenericConfig.cache.h[q] = value; } return value; } ,queryValues: function(q,conditionRef) { var regexp = new EReg("\\.(?![^\\[]*\\])","g"); var finalArray = regexp.split(q); var ref = this; var _g = 0; while(_g < finalArray.length) { var f = finalArray[_g]; ++_g; if(f.indexOf("[") == -1 && f.indexOf("@") == -1) { ref = ref.findBy(f); } else if(f.indexOf("[") != -1) { var p = f.split("["); var p1 = p[0]; var p2 = p[1].split("=")[0]; var p3 = p[1].split("=")[1]; p3 = HxOverrides.substr(p3,0,p3.length - 1); ref = ref.findBy(p1,p2,p3); } if(ref == null) { return null; } } return ref.values; } ,__class__: haxe_ui_util_GenericConfig }; var haxe_ui_styles_CompositeStyleSheet = function() { this._animations = null; this._styleSheets = []; }; $hxClasses["haxe.ui.styles.CompositeStyleSheet"] = haxe_ui_styles_CompositeStyleSheet; haxe_ui_styles_CompositeStyleSheet.__name__ = "haxe.ui.styles.CompositeStyleSheet"; haxe_ui_styles_CompositeStyleSheet.prototype = { _styleSheets: null ,_animations: null ,get_animations: function() { if(this._animations != null) { return this._animations; } this._animations = new haxe_ds_StringMap(); var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var s = _g1[_g]; ++_g; var h = s.get_animations().h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var a = s.get_animations().h[key]; this._animations.h[key] = a; } } return this._animations; } ,findAnimation: function(id) { var h = this.get_animations().h; var a_h = h; var a_keys = Object.keys(h); var a_length = a_keys.length; var a_current = 0; while(a_current < a_length) { var a = a_h[a_keys[a_current++]]; if(a.id == id) { return a; } } return null; } ,hasMediaQueries: null ,get_hasMediaQueries: function() { var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var styleSheet = _g1[_g]; ++_g; if(styleSheet.get_hasMediaQueries() == true) { return true; } } return false; } ,getAnimation: function(id,create) { if(create == null) { create = true; } var a = this.findAnimation(id); if(a == null) { a = new haxe_ui_styles_elements_AnimationKeyFrames(id,[]); this.addAnimation(a); } return a; } ,addAnimation: function(animation) { this._styleSheets[0].addAnimation(animation); } ,addStyleSheet: function(styleSheet) { this._styleSheets.push(styleSheet); } ,removeStyleSheet: function(styleSheet) { HxOverrides.remove(this._styleSheets,styleSheet); } ,parse: function(css,styleSheetName,invalidateAll) { if(invalidateAll == null) { invalidateAll = false; } if(styleSheetName == null) { styleSheetName = "default"; } var s = this.findStyleSheet(styleSheetName); if(s == null) { s = new haxe_ui_styles_StyleSheet(); s.name = styleSheetName; this._styleSheets.push(s); } s.parse(css); this._animations = null; if(invalidateAll == true) { haxe_ui_core_Screen.get_instance().invalidateAll(); } } ,findStyleSheet: function(styleSheetName) { var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var s = _g1[_g]; ++_g; if(s.name == styleSheetName) { return s; } } return null; } ,findRule: function(selector) { var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var s = _g1[_g]; ++_g; var el = s.findRule(selector); if(el != null) { return el; } } return null; } ,findMatchingRules: function(selector) { var m = []; var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var s = _g1[_g]; ++_g; m = m.concat(s.findMatchingRules(selector)); } return m; } ,getAllRules: function() { var r = []; var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var s = _g1[_g]; ++_g; r = r.concat(s.get_rules()); } return r; } ,buildStyleFor: function(c) { var style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); var _g = 0; var _g1 = this._styleSheets; while(_g < _g1.length) { var s = _g1[_g]; ++_g; style = s.buildStyleFor(c,style); } return style; } ,clear: function(styleSheetName) { var s = this.findStyleSheet(styleSheetName); if(s != null) { s.clear(); this._animations = null; } } ,__class__: haxe_ui_styles_CompositeStyleSheet ,__properties__: {get_hasMediaQueries:"get_hasMediaQueries",get_animations:"get_animations"} }; var haxe_ui_Toolkit = function() { }; $hxClasses["haxe.ui.Toolkit"] = haxe_ui_Toolkit; haxe_ui_Toolkit.__name__ = "haxe.ui.Toolkit"; haxe_ui_Toolkit.__properties__ = {set_scale:"set_scale",get_scale:"get_scale",set_scaleY:"set_scaleY",get_scaleY:"get_scaleY",set_scaleX:"set_scaleX",get_scaleX:"get_scaleX",get_autoScaleDPIThreshold:"get_autoScaleDPIThreshold",set_pixelsPerRem:"set_pixelsPerRem",get_screen:"get_screen",get_assets:"get_assets",get_initialized:"get_initialized",get_backendProperties:"get_backendProperties",set_theme:"set_theme",get_theme:"get_theme"}; haxe_ui_Toolkit.get_theme = function() { return haxe_ui_Toolkit._theme; }; haxe_ui_Toolkit.set_theme = function(value) { if(haxe_ui_Toolkit._theme == value) { return value; } haxe_ui_Toolkit._theme = value; if(haxe_ui_Toolkit._initialized == true) { haxe_ui_themes_ThemeManager.get_instance().applyTheme(haxe_ui_Toolkit._theme); haxe_ui_core_Screen.get_instance().onThemeChanged(); haxe_ui_core_Screen.get_instance().invalidateAll(); } return value; }; haxe_ui_Toolkit.backendProperties = null; haxe_ui_Toolkit.get_backendProperties = function() { haxe_ui_Toolkit.buildBackend(); return haxe_ui_Toolkit._backendProperties; }; haxe_ui_Toolkit.build = function() { if(haxe_ui_Toolkit._built == true) { return; } haxe_ui_themes_ThemeManager.get_instance().getTheme("native").parent = "default"; haxe_ui_themes_ThemeManager.get_instance().addStyleResource("native","haxeui-core/styles/native/main.css",-3.,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("global","haxeui-core/styles/global.css",-4.,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/main.css",-3.,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/buttons.css",-2.99,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/dialogs.css",-2.98000000000000043,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/windows.css",-2.97000000000000064,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/textinputs.css",-2.96000000000000085,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/scrollbars.css",-2.95000000000000107,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/scrollview.css",-2.94000000000000128,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/checkboxes.css",-2.93000000000000149,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/optionboxes.css",-2.92000000000000171,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/ranges.css",-2.91000000000000192,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/progressbars.css",-2.90000000000000213,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/sliders.css",-2.89000000000000234,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/steppers.css",-2.88000000000000256,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/tabs.css",-2.87000000000000277,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/listview.css",-2.86000000000000298,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/dropdowns.css",-2.8500000000000032,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/tableview.css",-2.84000000000000341,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/switches.css",-2.83000000000000362,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/calendars.css",-2.82000000000000384,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/menus.css",-2.81000000000000405,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/accordion.css",-2.80000000000000426,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/propertygrids.css",-2.79000000000000448,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/frames.css",-2.78000000000000469,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/splitters.css",-2.7700000000000049,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/tooltips.css",-2.76000000000000512,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/rules.css",-2.75000000000000533,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/sidebars.css",-2.74000000000000554,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/cards.css",-2.73000000000000576,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/treeviews.css",-2.72000000000000597,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/colorpickers.css",-2.71000000000000618,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/notifications.css",-2.70000000000000639,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/pickers.css",-2.69000000000000661,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/panels.css",-2.68000000000000682,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/collapsible.css",-2.67000000000000703,null); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-core/styles/default/last.css",-2.66000000000000725,null); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","warning-large","haxeui-core/styles/shared/warning-large.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","warning-border-color","#ffd83f"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","warning-background-color-start","#fffbeb"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","warning-background-color-end","#fff8df"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","tooltip-background-color","#fffff8"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","tertiary-background-color","#ffffff"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","success-border-color","#53df9e"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","success-background-color-start","#e9fbf3"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","success-background-color-end","#dcf8ec"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","sort-desc","haxeui-core/styles/shared/sortable-desc-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","sort-asc","haxeui-core/styles/shared/sortable-asc-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","solid-background-color-hover","#fcfcfc"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","solid-background-color-down","#f0f0f0"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","solid-background-color-disabled","#fefefe"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","solid-background-color-alt","#fafafa"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","solid-background-color","#f6f6f6"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","selection-text-color","#ffffff"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","selection-background-color-hover","#d9e5f2"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","selection-background-color","#b4cbe4"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","secondary-background-color","#ffffff"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","search","haxeui-core/styles/shared/search.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","scrollbar-button-color","#d6d6d6"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","scrollbar-background-color","#f0f0f0"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","restore-hover","haxeui-core/styles/shared/restore-button-white.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","restore","haxeui-core/styles/shared/restore-button-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","question-large","haxeui-core/styles/shared/help-large.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","option-selected","haxeui-core/styles/shared/option-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-text-color","#666666"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-inner-shadow","drop-shadow(1, 45, #888888, 0.1, 1, 1, 1, 3, true)"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-border-size","1px"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-border-radius","2px"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-border-color","#d2d2d2"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-background-color-start","#fdfdfd"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","normal-background-color-end","#f6f6f6"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","modal-background-color","#ffffff"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","minimize-hover","haxeui-core/styles/shared/minimize-button-white.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","minimize","haxeui-core/styles/shared/minimize-button-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","menu-shadow","drop-shadow(2, 45, #888888, 0.1, 4, 1, 30, 35, false)"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","maximize-hover","haxeui-core/styles/shared/maximize-button-white.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","maximize","haxeui-core/styles/shared/maximize-button-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","lighter-text-color","#a0a0a0"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","info-large","haxeui-core/styles/shared/info-large.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","hover-text-color","#444444"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","hover-border-color","#c0c0c0"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","hover-background-color-start","#f2f2f2"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","hover-background-color-end","#e1e1e1"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","gripper-vertical","haxeui-core/styles/shared/gripper-vertical.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","gripper-horizontal","haxeui-core/styles/shared/gripper-horizontal.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","expanded","haxeui-core/styles/shared/collapsed-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","expand-hover","haxeui-core/styles/shared/window-expand-white.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","expand","haxeui-core/styles/shared/window-expand-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","error-large","haxeui-core/styles/shared/error-large.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","error-border-color","#f6a7a2"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","error-background-color-start","#fde9e8"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","error-background-color-end","#fbdcda"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","down-text-color","#444444"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","down-border-color","#b3b3b3"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","down-background-color-start","#e6e6e6"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","down-background-color-end","#cccccc"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","disabled-text-color","#cccccc"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","disabled-border-color","#e4e4e4"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","disabled-background-color-start","#fdfdfd"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","disabled-background-color-end","#f6f6f6"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","dialog-title-color","#aaaaaa"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","dialog-shadow","drop-shadow(1, 45, #888888, 0.2, 30, 2, 1, 3, false)"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","default-background-color","#ffffff"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","contrast-background-color","#ffffff"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","collapsed","haxeui-core/styles/shared/expanded-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","collapse-hover","haxeui-core/styles/shared/window-collapse-white.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","collapse","haxeui-core/styles/shared/window-collapse-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","close-hover","haxeui-core/styles/shared/close-button-white.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","close","haxeui-core/styles/shared/close-button-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","check-selected","haxeui-core/styles/shared/check-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","blank","haxeui-core/styles/shared/blank.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-up-down","haxeui-core/styles/shared/sortable-arrows-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-up","haxeui-core/styles/shared/up-arrow-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-right-square","haxeui-core/styles/shared/right-arrow-square-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-right","haxeui-core/styles/shared/right-arrow-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-left","haxeui-core/styles/shared/left-arrow-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-down-square","haxeui-core/styles/shared/down-arrow-square-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","arrow-down","haxeui-core/styles/shared/down-arrow-blue.png"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","accent-gradient-start","#98c4e6"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","accent-gradient-end","#549bde"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","accent-color-lighter","#ecf2f9"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","accent-color-darker","#407dbf"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("default","accent-color","#83aad4"); haxe_ui_themes_ThemeManager.get_instance().getTheme("dark").parent = "default"; haxe_ui_themes_ThemeManager.get_instance().addStyleResource("dark","haxeui-core/styles/dark/scrollbars.css",-2.,null); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","warning-border-color","#807100"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","warning-background-color-start","#4d4400"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","warning-background-color-end","#473f00"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","tooltip-background-color","#3d3f41"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","tertiary-background-color","#313435"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","success-border-color","#146c43"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","success-background-color-start","#0c4129"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","success-background-color-end","#093421"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","solid-background-color-hover","#393b3c"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","solid-background-color-down","#313335"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","solid-background-color-disabled","#2f3132"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","solid-background-color-alt","#2d2e2f"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","solid-background-color","#3d3f41"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","selection-text-color","#d4d4d4"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","selection-background-color-hover","#323e52"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","selection-background-color","#415982"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","secondary-background-color","#3d3f41"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","scrollbar-button-color","#3e4142"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","scrollbar-background-color","#2c2f30"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-text-color","#aaaaaa"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-inner-shadow","drop-shadow(1, 45, #000000, 0.2, 2, 2, 1, 3, true)"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-border-size","1px"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-border-radius","2px"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-border-color","#222426"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-background-color-start","#3e4142"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","normal-background-color-end","#36383a"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","modal-background-color","#181a1b"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","menu-shadow","drop-shadow(2, 45, #000000, 0.15, 6, 1, 30, 35, false)"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","lighter-text-color","#737373"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","hover-text-color","#bbbbbb"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","hover-border-color","#222426"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","hover-background-color-start","#434647"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","hover-background-color-end","#393b3c"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","error-border-color","#8b160e"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","error-background-color-start","#4a1721"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","error-background-color-end","#3a121a"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","down-text-color","#999999"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","down-border-color","#222426"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","down-background-color-start","#393c3c"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","down-background-color-end","#313335"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","disabled-text-color","#595959"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","disabled-border-color","#26292b"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","disabled-background-color-start","#36393a"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","disabled-background-color-end","#313335"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","dialog-title-color","#aaaaaa"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","dialog-shadow","drop-shadow(1, 45, #000000, 0.2, 30, 2, 1, 3, false)"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","default-background-color","#2c2f30"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","contrast-background-color","#aaaaaa"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","accent-gradient-start","#334666"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","accent-gradient-end","#2f3746"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","accent-color-lighter","#323e52"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","accent-color-darker","#407dbf"); haxe_ui_themes_ThemeManager.get_instance().setThemeVar("dark","accent-color","#3c5177"); haxe_ui_Toolkit.properties.h["haxe.ui.components.spinner.targetFrameRate"] = "45"; haxe_ui_Toolkit.properties.h["haxe.ui.components.spinner.resource"] = "haxeui-core/styles/atlases/default-spinner.png"; haxe_ui_Toolkit.properties.h["haxe.ui.components.spinner.atlas"] = "haxeui-core/styles/atlases/default-spinner.json"; haxe_ui_layouts_LayoutFactory.register("Absolute","haxe.ui.layouts.AbsoluteLayout"); haxe_ui_layouts_LayoutFactory.register("Default","haxe.ui.layouts.DefaultLayout"); haxe_ui_layouts_LayoutFactory.register("Delegate","haxe.ui.layouts.DelegateLayout"); haxe_ui_layouts_LayoutFactory.register("HorizontalContinuous","haxe.ui.layouts.HorizontalContinuousLayout"); haxe_ui_layouts_LayoutFactory.register("horizontal continuous","haxe.ui.layouts.HorizontalContinuousLayout"); haxe_ui_layouts_LayoutFactory.register("horizontal-continuous","haxe.ui.layouts.HorizontalContinuousLayout"); haxe_ui_layouts_LayoutFactory.register("continuous horizontal","haxe.ui.layouts.HorizontalContinuousLayout"); haxe_ui_layouts_LayoutFactory.register("continuous-horizontal","haxe.ui.layouts.HorizontalContinuousLayout"); haxe_ui_layouts_LayoutFactory.register("HorizontalGrid","haxe.ui.layouts.HorizontalGridLayout"); haxe_ui_layouts_LayoutFactory.register("horizontal grid","haxe.ui.layouts.HorizontalGridLayout"); haxe_ui_layouts_LayoutFactory.register("horizontal-grid","haxe.ui.layouts.HorizontalGridLayout"); haxe_ui_layouts_LayoutFactory.register("grid horizontal","haxe.ui.layouts.HorizontalGridLayout"); haxe_ui_layouts_LayoutFactory.register("grid-horizontal","haxe.ui.layouts.HorizontalGridLayout"); haxe_ui_layouts_LayoutFactory.register("Horizontal","haxe.ui.layouts.HorizontalLayout"); haxe_ui_layouts_LayoutFactory.register("ScrollView","haxe.ui.layouts.ScrollViewLayout"); haxe_ui_layouts_LayoutFactory.register("scroll view","haxe.ui.layouts.ScrollViewLayout"); haxe_ui_layouts_LayoutFactory.register("scroll-view","haxe.ui.layouts.ScrollViewLayout"); haxe_ui_layouts_LayoutFactory.register("view scroll","haxe.ui.layouts.ScrollViewLayout"); haxe_ui_layouts_LayoutFactory.register("view-scroll","haxe.ui.layouts.ScrollViewLayout"); haxe_ui_layouts_LayoutFactory.register("VerticalGrid","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("vertical grid","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("vertical-grid","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("grid vertical","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("grid-vertical","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("grid","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("grid","haxe.ui.layouts.VerticalGridLayout"); haxe_ui_layouts_LayoutFactory.register("Vertical","haxe.ui.layouts.VerticalLayout"); haxe_ui_layouts_LayoutFactory.register("VerticalVirtual","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("vertical virtual","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("vertical-virtual","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("virtual vertical","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("virtual-vertical","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("virtual","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("virtual","haxe.ui.layouts.VerticalVirtualLayout"); haxe_ui_layouts_LayoutFactory.register("Virtual","haxe.ui.layouts.VirtualLayout"); haxe_ui_locale_LocaleManager.get_instance().parseResource("en","haxeui-core/locale/en/expression-replacements.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("en","haxeui-core/locale/en/std-strings.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("en","haxeui-core/locale/en/formats.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("en_US","haxeui-core/locale/en_US/formats.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("es","haxeui-core/locale/es/expression-replacements.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("es","haxeui-core/locale/es/std-strings.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("es","haxeui-core/locale/es/formats.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("de","haxeui-core/locale/de/expression-replacements.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("de","haxeui-core/locale/de/std-strings.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("de","haxeui-core/locale/de/formats.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("fr","haxeui-core/locale/fr/expression-replacements.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("fr","haxeui-core/locale/fr/std-strings.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("fr","haxeui-core/locale/fr/formats.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("it","haxeui-core/locale/it/expression-replacements.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("it","haxeui-core/locale/it/std-strings.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("it","haxeui-core/locale/it/formats.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("ru","haxeui-core/locale/ru/expression-replacements.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("ru","haxeui-core/locale/ru/std-strings.properties"); haxe_ui_locale_LocaleManager.get_instance().parseResource("ru","haxeui-core/locale/ru/formats.properties"); haxe_ui_validators_ValidatorManager.get_instance().registerValidator("required",function() { return new haxe_ui_validators_RequiredValidator(); },null); haxe_ui_validators_ValidatorManager.get_instance().registerValidator("pattern",function() { return new haxe_ui_validators_PatternValidator(); },null); haxe_ui_validators_ValidatorManager.get_instance().registerValidator("email",function() { return new haxe_ui_validators_EmailValidator(); },null); haxe_ui_actions_ActionManager.get_instance().registerInputSource(new haxe_ui_actions_KeyboardActionInputSource()); haxe_ui_loaders_image_ImageLoader.get_instance().register("asset",function() { return new haxe_ui_loaders_image_AssetImageLoader(); },null,true,true); haxe_ui_loaders_image_ImageLoader.get_instance().register("file",function() { return new haxe_ui_loaders_image_FileImageLoader(); },null,false,true); haxe_ui_loaders_image_ImageLoader.get_instance().register("http",function() { return new haxe_ui_loaders_image_HttpImageLoader(); },null,false,false); haxe_ui_loaders_image_ImageLoader.get_instance().register("https",function() { return new haxe_ui_loaders_image_HttpImageLoader(); },null,false,false); haxe_ui_styles_CssFunctions.registerCssFunction("calc",haxe_ui_styles_CssFunctions.calc); haxe_ui_styles_CssFunctions.registerCssFunction("min",haxe_ui_styles_CssFunctions.min); haxe_ui_styles_CssFunctions.registerCssFunction("max",haxe_ui_styles_CssFunctions.max); haxe_ui_styles_CssFunctions.registerCssFunction("clamp",haxe_ui_styles_CssFunctions.clamp); haxe_ui_styles_CssFunctions.registerCssFunction("platform-color",haxe_ui_styles_CssFunctions.platformColor); haxe_ui_styles_CssFunctions.registerCssFunction("theme-icon",haxe_ui_styles_CssFunctions.themeIcon); haxe_ui_styles_CssFunctions.registerCssFunction("theme-image",haxe_ui_styles_CssFunctions.themeIcon); haxe_ui_styles_CssFunctions.registerCssFunction("rgb",haxe_ui_styles_CssFunctions.rgb); haxe_ui_styles_CssFunctions.registerCssFunction("lookup",haxe_ui_styles_CssFunctions.lookup); haxe_ui_styles_CssFunctions.registerCssFunction("lighten",haxe_ui_styles_CssFunctions.lighten); haxe_ui_styles_CssFunctions.registerCssFunction("darken",haxe_ui_styles_CssFunctions.darken); haxe_ui_styles_CssFilters.registerCssFilter("blur",function() { return new haxe_ui_filters_Blur(); }); haxe_ui_styles_CssFilters.registerCssFilter("box-shadow",function() { return new haxe_ui_filters_BoxShadow(); }); haxe_ui_styles_CssFilters.registerCssFilter("drop-shadow",function() { return new haxe_ui_filters_DropShadow(); }); haxe_ui_styles_CssFilters.registerCssFilter("grayscale",function() { return new haxe_ui_filters_Grayscale(); }); haxe_ui_styles_CssFilters.registerCssFilter("outline",function() { return new haxe_ui_filters_Outline(); }); haxe_ui_styles_CssFilters.registerCssFilter("tint",function() { return new haxe_ui_filters_Tint(); }); haxe_ui_styles_CssFilters.registerCssFilter("contrast",function() { return new haxe_ui_filters_Contrast(); }); haxe_ui_styles_CssFilters.registerCssFilter("hue-rotate",function() { return new haxe_ui_filters_HueRotate(); }); haxe_ui_styles_CssFilters.registerCssFilter("saturate",function() { return new haxe_ui_filters_Saturate(); }); haxe_ui_core_ComponentClassMap.register("SparrowPlayer","haxe.ui.backend.flixel.components.SparrowPlayer"); haxe_ui_core_ComponentClassMap.register("SpriteWrapper","haxe.ui.backend.flixel.components.SpriteWrapper"); haxe_ui_core_ComponentClassMap.register("Link","haxe.ui.components.Link"); haxe_ui_core_ComponentClassMap.register("Animation","haxe.ui.components.Animation"); haxe_ui_core_ComponentClassMap.register("AtlasPlayer","haxe.ui.components.AtlasPlayer"); haxe_ui_core_ComponentClassMap.register("Button","haxe.ui.components.Button"); haxe_ui_core_ComponentClassMap.register("Calendar","haxe.ui.components.Calendar"); haxe_ui_core_ComponentClassMap.register("Canvas","haxe.ui.components.Canvas"); haxe_ui_core_ComponentClassMap.register("CheckBox","haxe.ui.components.CheckBox"); haxe_ui_core_ComponentClassMap.register("CheckBoxValue","haxe.ui.components.CheckBoxValue"); haxe_ui_core_ComponentClassMap.register("ColorPicker","haxe.ui.components.ColorPicker"); haxe_ui_core_ComponentClassMap.register("ColorPickerImpl","haxe.ui.components._ColorPicker.ColorPickerImpl"); haxe_ui_core_ComponentClassMap.register("HSVColorPickerImpl","haxe.ui.components._ColorPicker.HSVColorPickerImpl"); haxe_ui_core_ComponentClassMap.register("Column","haxe.ui.components.Column"); haxe_ui_core_ComponentClassMap.register("Decorator","haxe.ui.components.Decorator"); haxe_ui_core_ComponentClassMap.register("DropDown","haxe.ui.components.DropDown"); haxe_ui_core_ComponentClassMap.register("HorizontalProgress","haxe.ui.components.HorizontalProgress"); haxe_ui_core_ComponentClassMap.register("HorizontalRange","haxe.ui.components.HorizontalRange"); haxe_ui_core_ComponentClassMap.register("HorizontalRule","haxe.ui.components.HorizontalRule"); haxe_ui_core_ComponentClassMap.register("HorizontalScroll","haxe.ui.components.HorizontalScroll"); haxe_ui_core_ComponentClassMap.register("HorizontalSlider","haxe.ui.components.HorizontalSlider"); haxe_ui_core_ComponentClassMap.register("IconLink","haxe.ui.components.IconLink"); haxe_ui_core_ComponentClassMap.register("Image","haxe.ui.components.Image"); haxe_ui_core_ComponentClassMap.register("Label","haxe.ui.components.Label"); haxe_ui_core_ComponentClassMap.register("MonthStepper","haxe.ui.components.MonthStepper"); haxe_ui_core_ComponentClassMap.register("NumberStepper","haxe.ui.components.NumberStepper"); haxe_ui_core_ComponentClassMap.register("OptionBox","haxe.ui.components.OptionBox"); haxe_ui_core_ComponentClassMap.register("OptionStepper","haxe.ui.components.OptionStepper"); haxe_ui_core_ComponentClassMap.register("Progress","haxe.ui.components.Progress"); haxe_ui_core_ComponentClassMap.register("Range","haxe.ui.components.Range"); haxe_ui_core_ComponentClassMap.register("Rule","haxe.ui.components.Rule"); haxe_ui_core_ComponentClassMap.register("Scroll","haxe.ui.components.Scroll"); haxe_ui_core_ComponentClassMap.register("SectionHeader","haxe.ui.components.SectionHeader"); haxe_ui_core_ComponentClassMap.register("Slider","haxe.ui.components.Slider"); haxe_ui_core_ComponentClassMap.register("Spacer","haxe.ui.components.Spacer"); haxe_ui_core_ComponentClassMap.register("Spinner","haxe.ui.components.Spinner"); haxe_ui_core_ComponentClassMap.register("Stepper","haxe.ui.components.Stepper"); haxe_ui_core_ComponentClassMap.register("Switch","haxe.ui.components.Switch"); haxe_ui_core_ComponentClassMap.register("SwitchButtonSub","haxe.ui.components._Switch.SwitchButtonSub"); haxe_ui_core_ComponentClassMap.register("TabBar","haxe.ui.components.TabBar"); haxe_ui_core_ComponentClassMap.register("TabBarButton","haxe.ui.components._TabBar.TabBarButton"); haxe_ui_core_ComponentClassMap.register("Tag","haxe.ui.components.Tag"); haxe_ui_core_ComponentClassMap.register("TextArea","haxe.ui.components.TextArea"); haxe_ui_core_ComponentClassMap.register("TextField","haxe.ui.components.TextField"); haxe_ui_core_ComponentClassMap.register("Toggle","haxe.ui.components.Toggle"); haxe_ui_core_ComponentClassMap.register("VerticalProgress","haxe.ui.components.VerticalProgress"); haxe_ui_core_ComponentClassMap.register("VerticalRange","haxe.ui.components.VerticalRange"); haxe_ui_core_ComponentClassMap.register("VerticalRule","haxe.ui.components.VerticalRule"); haxe_ui_core_ComponentClassMap.register("VerticalScroll","haxe.ui.components.VerticalScroll"); haxe_ui_core_ComponentClassMap.register("VerticalSlider","haxe.ui.components.VerticalSlider"); haxe_ui_core_ComponentClassMap.register("CollapsibleDialog","haxe.ui.containers.dialogs.CollapsibleDialog"); haxe_ui_core_ComponentClassMap.register("Dialog","haxe.ui.containers.dialogs.Dialog"); haxe_ui_core_ComponentClassMap.register("MessageBox","haxe.ui.containers.dialogs.MessageBox"); haxe_ui_core_ComponentClassMap.register("Menu","haxe.ui.containers.menus.Menu"); haxe_ui_core_ComponentClassMap.register("MenuBar","haxe.ui.containers.menus.MenuBar"); haxe_ui_core_ComponentClassMap.register("MenuCheckBox","haxe.ui.containers.menus.MenuCheckBox"); haxe_ui_core_ComponentClassMap.register("MenuItem","haxe.ui.containers.menus.MenuItem"); haxe_ui_core_ComponentClassMap.register("MenuOptionBox","haxe.ui.containers.menus.MenuOptionBox"); haxe_ui_core_ComponentClassMap.register("MenuSeparator","haxe.ui.containers.menus.MenuSeparator"); haxe_ui_core_ComponentClassMap.register("Property","haxe.ui.containers.properties.Property"); haxe_ui_core_ComponentClassMap.register("PropertyGrid","haxe.ui.containers.properties.PropertyGrid"); haxe_ui_core_ComponentClassMap.register("PropertyGroup","haxe.ui.containers.properties.PropertyGroup"); haxe_ui_core_ComponentClassMap.register("Absolute","haxe.ui.containers.Absolute"); haxe_ui_core_ComponentClassMap.register("Accordion","haxe.ui.containers.Accordion"); haxe_ui_core_ComponentClassMap.register("Box","haxe.ui.containers.Box"); haxe_ui_core_ComponentClassMap.register("ButtonBar","haxe.ui.containers.ButtonBar"); haxe_ui_core_ComponentClassMap.register("CalendarView","haxe.ui.containers.CalendarView"); haxe_ui_core_ComponentClassMap.register("Card","haxe.ui.containers.Card"); haxe_ui_core_ComponentClassMap.register("Collapsible","haxe.ui.containers.Collapsible"); haxe_ui_core_ComponentClassMap.register("ContinuousHBox","haxe.ui.containers.ContinuousHBox"); haxe_ui_core_ComponentClassMap.register("Footer","haxe.ui.containers.Footer"); haxe_ui_core_ComponentClassMap.register("Form","haxe.ui.containers.Form"); haxe_ui_core_ComponentClassMap.register("Frame","haxe.ui.containers.Frame"); haxe_ui_core_ComponentClassMap.register("Grid","haxe.ui.containers.Grid"); haxe_ui_core_ComponentClassMap.register("Group","haxe.ui.containers.Group"); haxe_ui_core_ComponentClassMap.register("HBox","haxe.ui.containers.HBox"); haxe_ui_core_ComponentClassMap.register("Header","haxe.ui.containers.Header"); haxe_ui_core_ComponentClassMap.register("HorizontalButtonBar","haxe.ui.containers.HorizontalButtonBar"); haxe_ui_core_ComponentClassMap.register("HorizontalSplitter","haxe.ui.containers.HorizontalSplitter"); haxe_ui_core_ComponentClassMap.register("ListView","haxe.ui.containers.ListView"); haxe_ui_core_ComponentClassMap.register("Panel","haxe.ui.containers.Panel"); haxe_ui_core_ComponentClassMap.register("PanelHeader","haxe.ui.containers._Panel.PanelHeader"); haxe_ui_core_ComponentClassMap.register("PanelFooter","haxe.ui.containers._Panel.PanelFooter"); haxe_ui_core_ComponentClassMap.register("ScrollView","haxe.ui.containers.ScrollView"); haxe_ui_core_ComponentClassMap.register("SideBar","haxe.ui.containers.SideBar"); haxe_ui_core_ComponentClassMap.register("Splitter","haxe.ui.containers.Splitter"); haxe_ui_core_ComponentClassMap.register("SizerGripper","haxe.ui.containers._Splitter.SizerGripper"); haxe_ui_core_ComponentClassMap.register("Stack","haxe.ui.containers.Stack"); haxe_ui_core_ComponentClassMap.register("TableView","haxe.ui.containers.TableView"); haxe_ui_core_ComponentClassMap.register("CompoundItemRenderer","haxe.ui.containers._TableView.CompoundItemRenderer"); haxe_ui_core_ComponentClassMap.register("TabView","haxe.ui.containers.TabView"); haxe_ui_core_ComponentClassMap.register("TagList","haxe.ui.containers.TagList"); haxe_ui_core_ComponentClassMap.register("TreeView","haxe.ui.containers.TreeView"); haxe_ui_core_ComponentClassMap.register("TreeViewNode","haxe.ui.containers.TreeViewNode"); haxe_ui_core_ComponentClassMap.register("VBox","haxe.ui.containers.VBox"); haxe_ui_core_ComponentClassMap.register("VerticalButtonBar","haxe.ui.containers.VerticalButtonBar"); haxe_ui_core_ComponentClassMap.register("VerticalSplitter","haxe.ui.containers.VerticalSplitter"); haxe_ui_core_ComponentClassMap.register("BasicItemRenderer","haxe.ui.core.BasicItemRenderer"); haxe_ui_core_ComponentClassMap.register("Component","haxe.ui.core.Component"); haxe_ui_core_ComponentClassMap.register("InteractiveComponent","haxe.ui.core.InteractiveComponent"); haxe_ui_core_ComponentClassMap.register("ItemRenderer","haxe.ui.core.ItemRenderer"); haxe_ui_core_ComponentClassMap.register("CharacterPlayer","funkin.ui.haxeui.components.CharacterPlayer"); haxe_ui_core_ComponentClassMap.register("WaveformPlayer","funkin.ui.haxeui.components.WaveformPlayer"); haxe_ui_themes_ThemeManager.get_instance().addStyleResource("default","haxeui-flixel/styles/default/main.css",-1,null); haxe_ui_core_ComponentClassMap.register("windowtitle","haxe.ui.containers.windows.WindowTitle"); haxe_ui_core_ComponentClassMap.register("windowlistitem","haxe.ui.containers.windows._WindowList.WindowListItem"); haxe_ui_core_ComponentClassMap.register("windowlist","haxe.ui.containers.windows.WindowList"); haxe_ui_core_ComponentClassMap.register("windowfooter","haxe.ui.containers.windows.WindowFooter"); haxe_ui_core_ComponentClassMap.register("window","haxe.ui.containers.windows.Window"); haxe_ui_core_ComponentClassMap.register("waveformplayer","funkin.ui.haxeui.components.WaveformPlayer"); haxe_ui_core_ComponentClassMap.register("verticalsplitter","haxe.ui.containers.VerticalSplitter"); haxe_ui_core_ComponentClassMap.register("verticalslider","haxe.ui.components.VerticalSlider"); haxe_ui_core_ComponentClassMap.register("verticalscroll","haxe.ui.components.VerticalScroll"); haxe_ui_core_ComponentClassMap.register("verticalrule","haxe.ui.components.VerticalRule"); haxe_ui_core_ComponentClassMap.register("verticalrange","haxe.ui.components.VerticalRange"); haxe_ui_core_ComponentClassMap.register("verticalprogress","haxe.ui.components.VerticalProgress"); haxe_ui_core_ComponentClassMap.register("verticalbuttonbar","haxe.ui.containers.VerticalButtonBar"); haxe_ui_core_ComponentClassMap.register("vbox","haxe.ui.containers.VBox"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/windowtitle","haxe.ui.containers.windows.WindowTitle"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/windowlist","haxe.ui.containers.windows.WindowList"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/window","haxe.ui.containers.windows.Window"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/waveformplayer","funkin.ui.haxeui.components.WaveformPlayer"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/vslider","haxe.ui.components.VerticalSlider"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/vrule","haxe.ui.components.VerticalRule"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/verticalslider","haxe.ui.components.VerticalSlider"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/verticalrule","haxe.ui.components.VerticalRule"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/vbox","haxe.ui.containers.VBox"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/treeview","haxe.ui.containers.TreeView"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/textfield","haxe.ui.components.TextField"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/stack","haxe.ui.containers.Stack"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/spritewrapper","haxe.ui.backend.flixel.components.SpriteWrapper"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/spacer","haxe.ui.components.Spacer"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/slider","haxe.ui.components.Slider"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/scrollview","haxe.ui.containers.ScrollView"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/rule","haxe.ui.components.Rule"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/panelheader","haxe.ui.containers._Panel.PanelHeader"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/panelfooter","haxe.ui.containers._Panel.PanelFooter"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/panel","haxe.ui.containers.Panel"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/numberstepper","haxe.ui.components.NumberStepper"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/notification","haxe.ui.notifications.Notification"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/monthstepper","haxe.ui.components.MonthStepper"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/monthpickerpanel","haxe.ui.components.pickers.MonthPickerPanel"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/monthpicker","haxe.ui.components.pickers.MonthPicker"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menuseparator","haxe.ui.containers.menus.MenuSeparator"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menuoptionbox","haxe.ui.containers.menus.MenuOptionBox"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menuitempicker","haxe.ui.components.pickers.MenuItemPicker"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menuitem","haxe.ui.containers.menus.MenuItem"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menucheckbox","haxe.ui.containers.menus.MenuCheckBox"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menubar","haxe.ui.containers.menus.MenuBar"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/menu","haxe.ui.containers.menus.Menu"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/listview","haxe.ui.containers.ListView"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/listitempicker","haxe.ui.components.pickers.ListItemPicker"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/link","haxe.ui.components.Link"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/label","haxe.ui.components.Label"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/itemrenderer","haxe.ui.core.ItemRenderer"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/itempicker","haxe.ui.components.pickers.ItemPicker"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/image","haxe.ui.components.Image"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/iconlink","haxe.ui.components.IconLink"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/hsvcolorpickerimpl","haxe.ui.components._ColorPicker.HSVColorPickerImpl"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/hslider","haxe.ui.components.HorizontalSlider"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/hrule","haxe.ui.components.HorizontalRule"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/horizontalslider","haxe.ui.components.HorizontalSlider"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/horizontalrule","haxe.ui.components.HorizontalRule"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/hbox","haxe.ui.containers.HBox"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/grid","haxe.ui.containers.Grid"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/frame","haxe.ui.containers.Frame"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/dropdown","haxe.ui.components.DropDown"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/dialog","haxe.ui.containers.dialogs.Dialog"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/colorpickerpopupview","haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/colorpickerpopup","haxe.ui.components.popups.ColorPickerPopup"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/colorpicker","haxe.ui.components.ColorPicker"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/collapsibledialog","haxe.ui.containers.dialogs.CollapsibleDialog"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/card","haxe.ui.containers.Card"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/canvas","haxe.ui.components.Canvas"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/button","haxe.ui.components.Button"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/box","haxe.ui.containers.Box"); haxe_ui_core_ComponentClassMap.register("urn::haxeui::org/absolute","haxe.ui.containers.Absolute"); haxe_ui_core_ComponentClassMap.register("treeviewnode","haxe.ui.containers.TreeViewNode"); haxe_ui_core_ComponentClassMap.register("treeview","haxe.ui.containers.TreeView"); haxe_ui_core_ComponentClassMap.register("tooltip","haxe.ui.tooltips.ToolTip"); haxe_ui_core_ComponentClassMap.register("toggle","haxe.ui.components.Toggle"); haxe_ui_core_ComponentClassMap.register("textfield","haxe.ui.components.TextField"); haxe_ui_core_ComponentClassMap.register("textarea","haxe.ui.components.TextArea"); haxe_ui_core_ComponentClassMap.register("taglist","haxe.ui.containers.TagList"); haxe_ui_core_ComponentClassMap.register("tag","haxe.ui.components.Tag"); haxe_ui_core_ComponentClassMap.register("tabview","haxe.ui.containers.TabView"); haxe_ui_core_ComponentClassMap.register("tableview","haxe.ui.containers.TableView"); haxe_ui_core_ComponentClassMap.register("tabbarbutton","haxe.ui.components._TabBar.TabBarButton"); haxe_ui_core_ComponentClassMap.register("tabbar","haxe.ui.components.TabBar"); haxe_ui_core_ComponentClassMap.register("switchbuttonsub","haxe.ui.components._Switch.SwitchButtonSub"); haxe_ui_core_ComponentClassMap.register("switch","haxe.ui.components.Switch"); haxe_ui_core_ComponentClassMap.register("stepper","haxe.ui.components.Stepper"); haxe_ui_core_ComponentClassMap.register("stack","haxe.ui.containers.Stack"); haxe_ui_core_ComponentClassMap.register("spritewrapper","haxe.ui.backend.flixel.components.SpriteWrapper"); haxe_ui_core_ComponentClassMap.register("splitter","haxe.ui.containers.Splitter"); haxe_ui_core_ComponentClassMap.register("spinner","haxe.ui.components.Spinner"); haxe_ui_core_ComponentClassMap.register("sparrowplayer","haxe.ui.backend.flixel.components.SparrowPlayer"); haxe_ui_core_ComponentClassMap.register("spacer","haxe.ui.components.Spacer"); haxe_ui_core_ComponentClassMap.register("slider","haxe.ui.components.Slider"); haxe_ui_core_ComponentClassMap.register("sizergripper","haxe.ui.containers._Splitter.SizerGripper"); haxe_ui_core_ComponentClassMap.register("sidebar","haxe.ui.containers.SideBar"); haxe_ui_core_ComponentClassMap.register("sectionheader","haxe.ui.components.SectionHeader"); haxe_ui_core_ComponentClassMap.register("scrollview","haxe.ui.containers.ScrollView"); haxe_ui_core_ComponentClassMap.register("scroll","haxe.ui.components.Scroll"); haxe_ui_core_ComponentClassMap.register("rule","haxe.ui.components.Rule"); haxe_ui_core_ComponentClassMap.register("range","haxe.ui.components.Range"); haxe_ui_core_ComponentClassMap.register("propertygroup","haxe.ui.containers.properties.PropertyGroup"); haxe_ui_core_ComponentClassMap.register("propertygrid","haxe.ui.containers.properties.PropertyGrid"); haxe_ui_core_ComponentClassMap.register("property","haxe.ui.containers.properties.Property"); haxe_ui_core_ComponentClassMap.register("progress","haxe.ui.components.Progress"); haxe_ui_core_ComponentClassMap.register("preloader","haxe.ui.Preloader"); haxe_ui_core_ComponentClassMap.register("panelheader","haxe.ui.containers._Panel.PanelHeader"); haxe_ui_core_ComponentClassMap.register("panelfooter","haxe.ui.containers._Panel.PanelFooter"); haxe_ui_core_ComponentClassMap.register("panel","haxe.ui.containers.Panel"); haxe_ui_core_ComponentClassMap.register("optionstepper","haxe.ui.components.OptionStepper"); haxe_ui_core_ComponentClassMap.register("optionbox","haxe.ui.components.OptionBox"); haxe_ui_core_ComponentClassMap.register("numberstepper","haxe.ui.components.NumberStepper"); haxe_ui_core_ComponentClassMap.register("notification","haxe.ui.notifications.Notification"); haxe_ui_core_ComponentClassMap.register("monthstepper","haxe.ui.components.MonthStepper"); haxe_ui_core_ComponentClassMap.register("monthpickerpanel","haxe.ui.components.pickers.MonthPickerPanel"); haxe_ui_core_ComponentClassMap.register("monthpicker","haxe.ui.components.pickers.MonthPicker"); haxe_ui_core_ComponentClassMap.register("messageboxbase","haxe.ui.backend.MessageBoxBase"); haxe_ui_core_ComponentClassMap.register("messagebox","haxe.ui.containers.dialogs.MessageBox"); haxe_ui_core_ComponentClassMap.register("menuseparator","haxe.ui.containers.menus.MenuSeparator"); haxe_ui_core_ComponentClassMap.register("menuoptionbox","haxe.ui.containers.menus.MenuOptionBox"); haxe_ui_core_ComponentClassMap.register("menuitempicker","haxe.ui.components.pickers.MenuItemPicker"); haxe_ui_core_ComponentClassMap.register("menuitem","haxe.ui.containers.menus.MenuItem"); haxe_ui_core_ComponentClassMap.register("menucheckbox","haxe.ui.containers.menus.MenuCheckBox"); haxe_ui_core_ComponentClassMap.register("menubar","haxe.ui.containers.menus.MenuBar"); haxe_ui_core_ComponentClassMap.register("menu","haxe.ui.containers.menus.Menu"); haxe_ui_core_ComponentClassMap.register("listview","haxe.ui.containers.ListView"); haxe_ui_core_ComponentClassMap.register("listitempicker","haxe.ui.components.pickers.ListItemPicker"); haxe_ui_core_ComponentClassMap.register("link","haxe.ui.components.Link"); haxe_ui_core_ComponentClassMap.register("label","haxe.ui.components.Label"); haxe_ui_core_ComponentClassMap.register("itemrenderer","haxe.ui.core.ItemRenderer"); haxe_ui_core_ComponentClassMap.register("itempicker","haxe.ui.components.pickers.ItemPicker"); haxe_ui_core_ComponentClassMap.register("interactivecomponent","haxe.ui.core.InteractiveComponent"); haxe_ui_core_ComponentClassMap.register("image","haxe.ui.components.Image"); haxe_ui_core_ComponentClassMap.register("iconlink","haxe.ui.components.IconLink"); haxe_ui_core_ComponentClassMap.register("hsvcolorpickerimpl","haxe.ui.components._ColorPicker.HSVColorPickerImpl"); haxe_ui_core_ComponentClassMap.register("horizontalsplitter","haxe.ui.containers.HorizontalSplitter"); haxe_ui_core_ComponentClassMap.register("horizontalslider","haxe.ui.components.HorizontalSlider"); haxe_ui_core_ComponentClassMap.register("horizontalscroll","haxe.ui.components.HorizontalScroll"); haxe_ui_core_ComponentClassMap.register("horizontalrule","haxe.ui.components.HorizontalRule"); haxe_ui_core_ComponentClassMap.register("horizontalrange","haxe.ui.components.HorizontalRange"); haxe_ui_core_ComponentClassMap.register("horizontalprogress","haxe.ui.components.HorizontalProgress"); haxe_ui_core_ComponentClassMap.register("horizontalbuttonbar","haxe.ui.containers.HorizontalButtonBar"); haxe_ui_core_ComponentClassMap.register("header","haxe.ui.containers.Header"); haxe_ui_core_ComponentClassMap.register("hbox","haxe.ui.containers.HBox"); haxe_ui_core_ComponentClassMap.register("group","haxe.ui.containers.Group"); haxe_ui_core_ComponentClassMap.register("grid","haxe.ui.containers.Grid"); haxe_ui_core_ComponentClassMap.register("frame","haxe.ui.containers.Frame"); haxe_ui_core_ComponentClassMap.register("form","haxe.ui.containers.Form"); haxe_ui_core_ComponentClassMap.register("footer","haxe.ui.containers.Footer"); haxe_ui_core_ComponentClassMap.register("dropdown","haxe.ui.components.DropDown"); haxe_ui_core_ComponentClassMap.register("dialogbase","haxe.ui.backend.DialogBase"); haxe_ui_core_ComponentClassMap.register("dialog","haxe.ui.containers.dialogs.Dialog"); haxe_ui_core_ComponentClassMap.register("defaultitempickerrenderer","haxe.ui.components.pickers._ItemPicker.DefaultItemPickerRenderer"); haxe_ui_core_ComponentClassMap.register("decorator","haxe.ui.components.Decorator"); haxe_ui_core_ComponentClassMap.register("continuoushbox","haxe.ui.containers.ContinuousHBox"); haxe_ui_core_ComponentClassMap.register("compounditemrenderer","haxe.ui.containers._TableView.CompoundItemRenderer"); haxe_ui_core_ComponentClassMap.register("componentimpl","haxe.ui.backend.ComponentImpl"); haxe_ui_core_ComponentClassMap.register("componentbase","haxe.ui.backend.ComponentBase"); haxe_ui_core_ComponentClassMap.register("component","haxe.ui.core.Component"); haxe_ui_core_ComponentClassMap.register("column","haxe.ui.components.Column"); haxe_ui_core_ComponentClassMap.register("colorpickerpopupview","haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView"); haxe_ui_core_ComponentClassMap.register("colorpickerpopup","haxe.ui.components.popups.ColorPickerPopup"); haxe_ui_core_ComponentClassMap.register("colorpickerimpl","haxe.ui.components._ColorPicker.ColorPickerImpl"); haxe_ui_core_ComponentClassMap.register("colorpicker","haxe.ui.components.ColorPicker"); haxe_ui_core_ComponentClassMap.register("collapsibledialog","haxe.ui.containers.dialogs.CollapsibleDialog"); haxe_ui_core_ComponentClassMap.register("collapsible","haxe.ui.containers.Collapsible"); haxe_ui_core_ComponentClassMap.register("checkboxvalue","haxe.ui.components.CheckBoxValue"); haxe_ui_core_ComponentClassMap.register("checkbox","haxe.ui.components.CheckBox"); haxe_ui_core_ComponentClassMap.register("charteditorwelcomedialog","funkin.ui.debug.charting.dialogs.ChartEditorWelcomeDialog"); haxe_ui_core_ComponentClassMap.register("charteditoruploadvocalsentry","funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsEntry"); haxe_ui_core_ComponentClassMap.register("charteditoruploadvocalsdialog","funkin.ui.debug.charting.dialogs.ChartEditorUploadVocalsDialog"); haxe_ui_core_ComponentClassMap.register("charteditoruploadchartdialog","funkin.ui.debug.charting.dialogs.ChartEditorUploadChartDialog"); haxe_ui_core_ComponentClassMap.register("charteditorstate","funkin.ui.debug.charting.ChartEditorState"); haxe_ui_core_ComponentClassMap.register("charteditorselectioncontextmenu","funkin.ui.debug.charting.contextmenus.ChartEditorSelectionContextMenu"); haxe_ui_core_ComponentClassMap.register("charteditorplaybarhead","funkin.ui.debug.charting.components.ChartEditorPlaybarHead"); haxe_ui_core_ComponentClassMap.register("charteditoroffsetstoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorOffsetsToolbox"); haxe_ui_core_ComponentClassMap.register("charteditornotedatatoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorNoteDataToolbox"); haxe_ui_core_ComponentClassMap.register("charteditornotecontextmenu","funkin.ui.debug.charting.contextmenus.ChartEditorNoteContextMenu"); haxe_ui_core_ComponentClassMap.register("charteditormetadatatoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorMetadataToolbox"); haxe_ui_core_ComponentClassMap.register("charteditorholdnotecontextmenu","funkin.ui.debug.charting.contextmenus.ChartEditorHoldNoteContextMenu"); haxe_ui_core_ComponentClassMap.register("charteditorfreeplaytoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorFreeplayToolbox"); haxe_ui_core_ComponentClassMap.register("charteditoreventdatatoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorEventDataToolbox"); haxe_ui_core_ComponentClassMap.register("charteditoreventcontextmenu","funkin.ui.debug.charting.contextmenus.ChartEditorEventContextMenu"); haxe_ui_core_ComponentClassMap.register("charteditordifficultytoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorDifficultyToolbox"); haxe_ui_core_ComponentClassMap.register("charteditordefaultcontextmenu","funkin.ui.debug.charting.contextmenus.ChartEditorDefaultContextMenu"); haxe_ui_core_ComponentClassMap.register("charteditorcharactericonselectormenu","funkin.ui.debug.charting.dialogs.ChartEditorCharacterIconSelectorMenu"); haxe_ui_core_ComponentClassMap.register("charteditorbasetoolbox","funkin.ui.debug.charting.toolboxes.ChartEditorBaseToolbox"); haxe_ui_core_ComponentClassMap.register("charteditorbasemenu","funkin.ui.debug.charting.dialogs.ChartEditorBaseMenu"); haxe_ui_core_ComponentClassMap.register("charteditorbasedialog","funkin.ui.debug.charting.dialogs.ChartEditorBaseDialog"); haxe_ui_core_ComponentClassMap.register("charteditorbasecontextmenu","funkin.ui.debug.charting.contextmenus.ChartEditorBaseContextMenu"); haxe_ui_core_ComponentClassMap.register("charteditoraboutdialog","funkin.ui.debug.charting.dialogs.ChartEditorAboutDialog"); haxe_ui_core_ComponentClassMap.register("characterplayer","funkin.ui.haxeui.components.CharacterPlayer"); haxe_ui_core_ComponentClassMap.register("card","haxe.ui.containers.Card"); haxe_ui_core_ComponentClassMap.register("canvas","haxe.ui.components.Canvas"); haxe_ui_core_ComponentClassMap.register("calendarview","haxe.ui.containers.CalendarView"); haxe_ui_core_ComponentClassMap.register("calendar","haxe.ui.components.Calendar"); haxe_ui_core_ComponentClassMap.register("buttonbar","haxe.ui.containers.ButtonBar"); haxe_ui_core_ComponentClassMap.register("button","haxe.ui.components.Button"); haxe_ui_core_ComponentClassMap.register("box","haxe.ui.containers.Box"); haxe_ui_core_ComponentClassMap.register("basicitemrenderer","haxe.ui.core.BasicItemRenderer"); haxe_ui_core_ComponentClassMap.register("atlasplayer","haxe.ui.components.AtlasPlayer"); haxe_ui_core_ComponentClassMap.register("animation","haxe.ui.components.Animation"); haxe_ui_core_ComponentClassMap.register("accordion","haxe.ui.containers.Accordion"); haxe_ui_core_ComponentClassMap.register("absolute","haxe.ui.containers.Absolute"); haxe_ui_Toolkit.buildBackend(); haxe_ui_locale_LocaleManager.get_instance().init(); haxe_ui_Toolkit._built = true; }; haxe_ui_Toolkit.buildBackend = function() { if(haxe_ui_Toolkit._backendBuilt == true) { return; } haxe_ui_util_Defines.set("web","1"); haxe_ui_util_Defines.set("utf16","1"); haxe_ui_util_Defines.set("true","1"); haxe_ui_util_Defines.set("tools","8.0.2"); haxe_ui_util_Defines.set("thx_semver","1"); haxe_ui_util_Defines.set("thx_core","1"); haxe_ui_util_Defines.set("thx.semver","0.2.2"); haxe_ui_util_Defines.set("thx.core","0.44.0"); haxe_ui_util_Defines.set("thx-semver","1"); haxe_ui_util_Defines.set("thx-core","1"); haxe_ui_util_Defines.set("target.utf16","1"); haxe_ui_util_Defines.set("target.unicode","1"); haxe_ui_util_Defines.set("target.name","js"); haxe_ui_util_Defines.set("target.atomics","1"); haxe_ui_util_Defines.set("source_header","Generated by Haxe 4.3.3"); haxe_ui_util_Defines.set("source-header","Generated by Haxe 4.3.3"); haxe_ui_util_Defines.set("safeMode","1"); haxe_ui_util_Defines.set("polymod","1.7.0"); haxe_ui_util_Defines.set("openfl_html5","1"); haxe_ui_util_Defines.set("openfl_enable_handle_error","1"); haxe_ui_util_Defines.set("openfl-html5","1"); haxe_ui_util_Defines.set("openfl-enable-handle-error","1"); haxe_ui_util_Defines.set("openfl","9.2.2"); haxe_ui_util_Defines.set("no_mouse_reset","1"); haxe_ui_util_Defines.set("no_compilation","1"); haxe_ui_util_Defines.set("no-mouse-reset","1"); haxe_ui_util_Defines.set("no-compilation","1"); haxe_ui_util_Defines.set("message.reporting","pretty"); haxe_ui_util_Defines.set("linux","1"); haxe_ui_util_Defines.set("lime_webgl","1"); haxe_ui_util_Defines.set("lime_html5","1"); haxe_ui_util_Defines.set("lime_howlerjs","1"); haxe_ui_util_Defines.set("lime_dom","1"); haxe_ui_util_Defines.set("lime_canvas","1"); haxe_ui_util_Defines.set("lime-webgl","1"); haxe_ui_util_Defines.set("lime-html5","1"); haxe_ui_util_Defines.set("lime-howlerjs","1"); haxe_ui_util_Defines.set("lime-dom","1"); haxe_ui_util_Defines.set("lime-canvas","1"); haxe_ui_util_Defines.set("lime","8.0.2"); haxe_ui_util_Defines.set("json2object","3.11.0"); haxe_ui_util_Defines.set("js_es5","1"); haxe_ui_util_Defines.set("js_es","5"); haxe_ui_util_Defines.set("js-es5","1"); haxe_ui_util_Defines.set("js-es","5"); haxe_ui_util_Defines.set("js","1"); haxe_ui_util_Defines.set("hxjsonast","1.1.0"); haxe_ui_util_Defines.set("html5","1"); haxe_ui_util_Defines.set("hscriptPos","1"); haxe_ui_util_Defines.set("hscript","2.5.0"); haxe_ui_util_Defines.set("howlerjs","1"); haxe_ui_util_Defines.set("haxeui_no_mouse_reset","1"); haxe_ui_util_Defines.set("haxeui_focus_out_on_click","1"); haxe_ui_util_Defines.set("haxeui_flixel","1.7.0"); haxe_ui_util_Defines.set("haxeui_dont_impose_base_class","1"); haxe_ui_util_Defines.set("haxeui_core","1.7.0"); haxe_ui_util_Defines.set("haxeui-no-mouse-reset","1"); haxe_ui_util_Defines.set("haxeui-focus-out-on-click","1"); haxe_ui_util_Defines.set("haxeui-flixel","1.7.0"); haxe_ui_util_Defines.set("haxeui-dont-impose-base-class","1"); haxe_ui_util_Defines.set("haxeui-core","1.7.0"); haxe_ui_util_Defines.set("haxeui","1"); haxe_ui_util_Defines.set("haxe_ver","4.303"); haxe_ui_util_Defines.set("haxe4","1"); haxe_ui_util_Defines.set("haxe3","1"); haxe_ui_util_Defines.set("haxe-ver","4.303"); haxe_ui_util_Defines.set("haxe","4.3.3"); haxe_ui_util_Defines.set("grig.audio","0.0.0"); haxe_ui_util_Defines.set("funkin.vis","0.0.1"); haxe_ui_util_Defines.set("focus_out_on_click","1"); haxe_ui_util_Defines.set("focus-out-on-click","1"); haxe_ui_util_Defines.set("flxanimate","3.0.4"); haxe_ui_util_Defines.set("flixel_ui","2.6.1"); haxe_ui_util_Defines.set("flixel_text_input","1.1.0"); haxe_ui_util_Defines.set("flixel_addons","3.2.3"); haxe_ui_util_Defines.set("flixel-ui","2.6.1"); haxe_ui_util_Defines.set("flixel-text-input","1.1.0"); haxe_ui_util_Defines.set("flixel-addons","3.2.3"); haxe_ui_util_Defines.set("flixel","5.6.2"); haxe_ui_util_Defines.set("dont_impose_base_class","1"); haxe_ui_util_Defines.set("dont-impose-base-class","1"); haxe_ui_util_Defines.set("dce","no"); haxe_ui_util_Defines.set("core","1.7.0"); haxe_ui_util_Defines.set("backend","flixel"); haxe_ui_util_Defines.set("TOUCH_HERE_TO_PLAY","1"); haxe_ui_util_Defines.set("TOUCH-HERE-TO-PLAY","1"); haxe_ui_util_Defines.set("POLYMOD_SCRIPT_LIBRARY","scripts"); haxe_ui_util_Defines.set("POLYMOD_SCRIPT_EXT",".hscript"); haxe_ui_util_Defines.set("POLYMOD_ROOT_PATH","scripts/"); haxe_ui_util_Defines.set("POLYMOD_MOD_METADATA_FILE","_polymod_meta.json"); haxe_ui_util_Defines.set("POLYMOD_MOD_ICON_FILE","_polymod_icon.png"); haxe_ui_util_Defines.set("POLYMOD_MERGE_FOLDER","_merge"); haxe_ui_util_Defines.set("POLYMOD_APPEND_FOLDER","_append"); haxe_ui_util_Defines.set("POLYMOD-SCRIPT-LIBRARY","scripts"); haxe_ui_util_Defines.set("POLYMOD-SCRIPT-EXT",".hscript"); haxe_ui_util_Defines.set("POLYMOD-ROOT-PATH","scripts/"); haxe_ui_util_Defines.set("POLYMOD-MOD-METADATA-FILE","_polymod_meta.json"); haxe_ui_util_Defines.set("POLYMOD-MOD-ICON-FILE","_polymod_icon.png"); haxe_ui_util_Defines.set("POLYMOD-MERGE-FOLDER","_merge"); haxe_ui_util_Defines.set("POLYMOD-APPEND-FOLDER","_append"); haxe_ui_util_Defines.set("NO_PRELOAD_ALL","1"); haxe_ui_util_Defines.set("NO-PRELOAD-ALL","1"); haxe_ui_util_Defines.set("NAPE_RELEASE_BUILD","1"); haxe_ui_util_Defines.set("NAPE-RELEASE-BUILD","1"); haxe_ui_util_Defines.set("HXCPP_STACK_TRACE","1"); haxe_ui_util_Defines.set("HXCPP_STACK_LINE","1"); haxe_ui_util_Defines.set("HXCPP_CHECK_POINTER","1"); haxe_ui_util_Defines.set("HXCPP-STACK-TRACE","1"); haxe_ui_util_Defines.set("HXCPP-STACK-LINE","1"); haxe_ui_util_Defines.set("HXCPP-CHECK-POINTER","1"); haxe_ui_util_Defines.set("HARDCODED_CREDITS","1"); haxe_ui_util_Defines.set("HARDCODED-CREDITS","1"); haxe_ui_util_Defines.set("FlxPartialSound","0.1.0"); haxe_ui_util_Defines.set("FLX_TOUCH","1"); haxe_ui_util_Defines.set("FLX_SOUND_TRAY","1"); haxe_ui_util_Defines.set("FLX_SOUND_SYSTEM","1"); haxe_ui_util_Defines.set("FLX_SAVE","1"); haxe_ui_util_Defines.set("FLX_POINT_POOL","1"); haxe_ui_util_Defines.set("FLX_POINTER_INPUT","1"); haxe_ui_util_Defines.set("FLX_PITCH","1"); haxe_ui_util_Defines.set("FLX_NO_UNIT_TEST","1"); haxe_ui_util_Defines.set("FLX_NO_SWF_VERSION_TEST","1"); haxe_ui_util_Defines.set("FLX_NO_FOCUS_LOST_SCREEN","1"); haxe_ui_util_Defines.set("FLX_NO_DEBUG","1"); haxe_ui_util_Defines.set("FLX_NO_COVERAGE_TEST","1"); haxe_ui_util_Defines.set("FLX_NO_CI","1"); haxe_ui_util_Defines.set("FLX_MOUSE_ADVANCED","1"); haxe_ui_util_Defines.set("FLX_MOUSE","1"); haxe_ui_util_Defines.set("FLX_KEYBOARD","1"); haxe_ui_util_Defines.set("FLX_GAMEPAD","1"); haxe_ui_util_Defines.set("FLX_GAMEINPUT_API","1"); haxe_ui_util_Defines.set("FLX_DRAW_QUADS","1"); haxe_ui_util_Defines.set("FLX_ACCELEROMETER","1"); haxe_ui_util_Defines.set("FLX-TOUCH","1"); haxe_ui_util_Defines.set("FLX-SOUND-TRAY","1"); haxe_ui_util_Defines.set("FLX-SOUND-SYSTEM","1"); haxe_ui_util_Defines.set("FLX-SAVE","1"); haxe_ui_util_Defines.set("FLX-POINTER-INPUT","1"); haxe_ui_util_Defines.set("FLX-POINT-POOL","1"); haxe_ui_util_Defines.set("FLX-PITCH","1"); haxe_ui_util_Defines.set("FLX-NO-UNIT-TEST","1"); haxe_ui_util_Defines.set("FLX-NO-SWF-VERSION-TEST","1"); haxe_ui_util_Defines.set("FLX-NO-FOCUS-LOST-SCREEN","1"); haxe_ui_util_Defines.set("FLX-NO-DEBUG","1"); haxe_ui_util_Defines.set("FLX-NO-COVERAGE-TEST","1"); haxe_ui_util_Defines.set("FLX-NO-CI","1"); haxe_ui_util_Defines.set("FLX-MOUSE-ADVANCED","1"); haxe_ui_util_Defines.set("FLX-MOUSE","1"); haxe_ui_util_Defines.set("FLX-KEYBOARD","1"); haxe_ui_util_Defines.set("FLX-GAMEPAD","1"); haxe_ui_util_Defines.set("FLX-GAMEINPUT-API","1"); haxe_ui_util_Defines.set("FLX-DRAW-QUADS","1"); haxe_ui_util_Defines.set("FLX-ACCELEROMETER","1"); haxe_ui_util_Defines.set("FILE_DROP_SUPPORTED","1"); haxe_ui_util_Defines.set("FILE-DROP-SUPPORTED","1"); haxe_ui_util_Defines.set("CHART_EDITOR_UNSUPPORTED","1"); haxe_ui_util_Defines.set("CHART-EDITOR-UNSUPPORTED","1"); haxe_ui_util_Defines.set("CAN_OPEN_LINKS","1"); haxe_ui_util_Defines.set("CAN-OPEN-LINKS","1"); haxe_ui_Toolkit._backendBuilt = true; }; haxe_ui_Toolkit.initialized = null; haxe_ui_Toolkit.get_initialized = function() { return haxe_ui_Toolkit._initialized; }; haxe_ui_Toolkit.init = function(options) { if(haxe_ui_Toolkit.onBeforeInit != null) { haxe_ui_Toolkit.onBeforeInit(); } haxe_ui_Toolkit.build(); haxe_ui_themes_ThemeManager.get_instance().applyTheme(haxe_ui_Toolkit._theme); if(options != null) { haxe_ui_Toolkit.get_screen().set_options(options); haxe_ui_ToolkitAssets.get_instance().options = options; } haxe_ui_Toolkit.get_screen().registerEvent(haxe_ui_events_KeyboardEvent.KEY_DOWN,haxe_ui_Toolkit.onKeyDown); haxe_ui_Toolkit._initialized = true; if(haxe_ui_Toolkit.onAfterInit != null) { haxe_ui_Toolkit.onAfterInit(); } }; haxe_ui_Toolkit.onKeyDown = function(event) { if(event.keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("tab")) { if(event.shiftKey == false) { haxe_ui_focus_FocusManager.get_instance().focusNext(); } else { haxe_ui_focus_FocusManager.get_instance().focusPrev(); } } }; haxe_ui_Toolkit.assets = null; haxe_ui_Toolkit.get_assets = function() { return haxe_ui_ToolkitAssets.get_instance(); }; haxe_ui_Toolkit.screen = null; haxe_ui_Toolkit.get_screen = function() { return haxe_ui_core_Screen.get_instance(); }; haxe_ui_Toolkit.set_pixelsPerRem = function(value) { if(haxe_ui_Toolkit.pixelsPerRem == value) { return value; } haxe_ui_Toolkit.pixelsPerRem = value; haxe_ui_core_Screen.get_instance().refreshStyleRootComponents(); return value; }; haxe_ui_Toolkit.autoScaleDPIThreshold = null; haxe_ui_Toolkit.get_autoScaleDPIThreshold = function() { if(haxe_ui_core_Screen.get_instance().get_isRetina() == true) { return 192; } return 120; }; haxe_ui_Toolkit.get_scaleX = function() { if(haxe_ui_Toolkit._scaleX == 0) { if(haxe_ui_Toolkit.autoScale == true) { var dpi = haxe_ui_core_Screen.get_instance().get_dpi(); if(dpi > haxe_ui_Toolkit.get_autoScaleDPIThreshold()) { if(haxe_ui_Toolkit.roundScale == true) { haxe_ui_Toolkit._scaleX = Math.round(dpi / haxe_ui_Toolkit.get_autoScaleDPIThreshold()); } else { haxe_ui_Toolkit._scaleX = dpi / haxe_ui_Toolkit.get_autoScaleDPIThreshold(); } } else { haxe_ui_Toolkit._scaleX = 1; } } else { haxe_ui_Toolkit._scaleX = 1; } } return haxe_ui_Toolkit._scaleX; }; haxe_ui_Toolkit.set_scaleX = function(value) { if(haxe_ui_Toolkit._scaleX == value) { return value; } haxe_ui_Toolkit._scaleX = value; haxe_ui_Toolkit.autoScale = false; return value; }; haxe_ui_Toolkit.get_scaleY = function() { if(haxe_ui_Toolkit._scaleY == 0) { if(haxe_ui_Toolkit.autoScale == true) { var dpi = haxe_ui_core_Screen.get_instance().get_dpi(); if(dpi > haxe_ui_Toolkit.get_autoScaleDPIThreshold()) { if(haxe_ui_Toolkit.roundScale == true) { haxe_ui_Toolkit._scaleY = Math.round(dpi / haxe_ui_Toolkit.get_autoScaleDPIThreshold()); } else { haxe_ui_Toolkit._scaleY = dpi / haxe_ui_Toolkit.get_autoScaleDPIThreshold(); } } else { haxe_ui_Toolkit._scaleY = 1; } } else { haxe_ui_Toolkit._scaleY = 1; } } return haxe_ui_Toolkit._scaleY; }; haxe_ui_Toolkit.set_scaleY = function(value) { if(haxe_ui_Toolkit._scaleY == value) { return value; } haxe_ui_Toolkit._scaleY = value; haxe_ui_Toolkit.autoScale = false; return value; }; haxe_ui_Toolkit.get_scale = function() { return Math.max(haxe_ui_Toolkit.get_scaleX(),haxe_ui_Toolkit.get_scaleY()); }; haxe_ui_Toolkit.set_scale = function(value) { haxe_ui_Toolkit.set_scaleX(value); haxe_ui_Toolkit.set_scaleY(value); return value; }; haxe_ui_Toolkit.callLater = function(fn) { new haxe_ui_CallLater(fn); }; var haxe_ui_backend_AssetsBase = function() { }; $hxClasses["haxe.ui.backend.AssetsBase"] = haxe_ui_backend_AssetsBase; haxe_ui_backend_AssetsBase.__name__ = "haxe.ui.backend.AssetsBase"; haxe_ui_backend_AssetsBase.isAbsolutePath = function(path) { if(StringTools.startsWith(path,"/")) { return true; } if(path.charAt(1) == ":") { return true; } if(StringTools.startsWith(path,"\\\\")) { return true; } return false; }; haxe_ui_backend_AssetsBase.prototype = { getTextDelegate: function(resourceId) { return null; } ,getImageInternal: function(resourceId,callback) { callback(null); } ,getImageFromHaxeResource: function(resourceId,callback) { callback(resourceId,null); } ,imageFromBytes: function(bytes,callback) { callback(null); } ,imageFromFile: function(filename,callback) { haxe_Log.trace("WARNING: cant load from file system on non-sys targets [" + filename + "]",{ fileName : "haxe/ui/backend/AssetsBase.hx", lineNumber : 50, className : "haxe.ui.backend.AssetsBase", methodName : "imageFromFile"}); callback(null); } ,getFontInternal: function(resourceId,callback) { callback(null); } ,getFontFromHaxeResource: function(resourceId,callback) { callback(resourceId,null); } ,imageInfoFromImageData: function(imageData) { return { data : imageData, width : 0, height : 0}; } ,__class__: haxe_ui_backend_AssetsBase }; var haxe_ui_backend_AssetsImpl = function() { haxe_ui_backend_AssetsBase.call(this); }; $hxClasses["haxe.ui.backend.AssetsImpl"] = haxe_ui_backend_AssetsImpl; haxe_ui_backend_AssetsImpl.__name__ = "haxe.ui.backend.AssetsImpl"; haxe_ui_backend_AssetsImpl.isEmbeddedFont = function(fontName) { if(fontName != "_sans" && fontName != "_serif") { return fontName != "_typewriter"; } else { return false; } }; haxe_ui_backend_AssetsImpl.__super__ = haxe_ui_backend_AssetsBase; haxe_ui_backend_AssetsImpl.prototype = $extend(haxe_ui_backend_AssetsBase.prototype,{ getImageInternal: function(resourceId,callback) { var graphic = null; var frame = null; if(openfl_utils_Assets.exists(resourceId)) { graphic = flixel_graphics_FlxGraphic.fromAssetKey(resourceId); frame = flixel_graphics_frames_FlxImageFrame.fromGraphic(graphic).get_frame(); } if(frame != null) { frame.parent.persist = true; frame.parent.set_destroyOnNoUse(false); callback({ data : frame, width : frame.sourceSize.x | 0, height : frame.sourceSize.y | 0}); } else { callback(null); } } ,getImageFromHaxeResource: function(resourceId,callback) { if(haxe_Resource.listNames().indexOf(resourceId) == -1) { callback(resourceId,null); } else { var bytes = haxe_Resource.getBytes(resourceId); var _g = callback; var a1 = resourceId; this.imageFromBytes(bytes,function(a2) { _g(a1,a2); }); } } ,imageFromBytes: function(bytes,callback) { var ba = openfl_utils_ByteArray.fromBytes(bytes); var loader = new openfl_display_Loader(); loader.contentLoaderInfo.addEventListener("complete",function(e) { if(loader.content != null) { var frame = flixel_graphics_frames_FlxImageFrame.fromImage((js_Boot.__cast(loader.content , openfl_display_Bitmap)).get_bitmapData()).get_frame(); frame.parent.persist = true; frame.parent.set_destroyOnNoUse(false); callback({ data : frame, width : frame.sourceSize.x | 0, height : frame.sourceSize.y | 0}); } else { callback(null); } }); loader.contentLoaderInfo.addEventListener("ioError",function(e) { haxe_Log.trace(e,{ fileName : "haxe/ui/backend/AssetsImpl.hx", lineNumber : 67, className : "haxe.ui.backend.AssetsImpl", methodName : "imageFromBytes"}); callback(null); }); loader.loadBytes(ba); } ,getFontInternal: function(resourceId,callback) { var fontName = null; if(resourceId != "_sans" && resourceId != "_serif" && resourceId != "_typewriter" && openfl_utils_Assets.exists(resourceId,"FONT")) { fontName = openfl_utils_Assets.getFont(resourceId).name; } else { fontName = resourceId; } callback({ data : fontName}); } ,getTextDelegate: function(resourceId) { if(openfl_utils_Assets.exists(resourceId)) { return openfl_utils_Assets.getText(resourceId); } return null; } ,imageInfoFromImageData: function(imageData) { return { data : imageData, width : imageData.parent.width, height : imageData.parent.height}; } ,__class__: haxe_ui_backend_AssetsImpl }); var haxe_ui_ToolkitAssets = function() { this.options = null; this.preloadList = []; haxe_ui_backend_AssetsImpl.call(this); }; $hxClasses["haxe.ui.ToolkitAssets"] = haxe_ui_ToolkitAssets; haxe_ui_ToolkitAssets.__name__ = "haxe.ui.ToolkitAssets"; haxe_ui_ToolkitAssets.__properties__ = {get_instance:"get_instance"}; haxe_ui_ToolkitAssets._instance = null; haxe_ui_ToolkitAssets.get_instance = function() { if(haxe_ui_ToolkitAssets._instance == null) { haxe_ui_ToolkitAssets._instance = new haxe_ui_ToolkitAssets(); } return haxe_ui_ToolkitAssets._instance; }; haxe_ui_ToolkitAssets.__super__ = haxe_ui_backend_AssetsImpl; haxe_ui_ToolkitAssets.prototype = $extend(haxe_ui_backend_AssetsImpl.prototype,{ preloadList: null ,options: null ,_fontCache: null ,_fontCallbacks: null ,_imageCache: null ,_imageCallbacks: null ,getFont: function(resourceId,callback,useCache) { if(useCache == null) { useCache = true; } var _gthis = this; if(this._fontCache != null && this._fontCache.h[resourceId] != null && useCache == true) { callback(this._fontCache.h[resourceId]); } else { if(this._fontCallbacks == null) { this._fontCallbacks = new haxe_ui_util_CallbackMap(); } this._fontCallbacks.add(resourceId,callback); if(this._fontCallbacks.count(resourceId) == 1) { this.getFontInternal(resourceId,function(font) { if(font != null) { _gthis._onFontLoaded(resourceId,font); } else if(haxe_Resource.listNames().indexOf(resourceId) != -1) { _gthis.getFontFromHaxeResource(resourceId,$bind(_gthis,_gthis._onFontLoaded)); } else { _gthis._fontCallbacks.remove(resourceId,callback); callback(null); } }); } } } ,_onFontLoaded: function(resourceId,font) { if(this._fontCache == null) { this._fontCache = new haxe_ds_StringMap(); } this._fontCache.h[resourceId] = font; this._fontCallbacks.invokeAndRemove(resourceId,font); } ,cacheImage: function(resourceId,imageInfo) { if(this._imageCache == null) { this._imageCache = new haxe_ds_StringMap(); } if(imageInfo == null || resourceId == null) { return; } this._imageCache.h[resourceId] = imageInfo; } ,getCachedImage: function(resourceId) { if(this._imageCache == null) { return null; } return this._imageCache.h[resourceId]; } ,getImage: function(resourceId,callback,useCache) { if(useCache == null) { useCache = true; } var _gthis = this; var orginalResourceId = resourceId; resourceId = this.runPlugins(resourceId); if(this._imageCache != null && this._imageCache.h[resourceId] != null && useCache == true) { callback(this._imageCache.h[resourceId]); } else { if(this._imageCallbacks == null) { this._imageCallbacks = new haxe_ui_util_CallbackMap(); } this._imageCallbacks.add(resourceId,callback); if(this._imageCallbacks.count(resourceId) == 1) { this.getImageInternal(resourceId,function(imageInfo) { if(imageInfo != null) { _gthis._onImageLoaded(resourceId,imageInfo); } else if(haxe_Resource.listNames().indexOf(orginalResourceId) != -1) { _gthis._imageCallbacks.remove(resourceId,callback); _gthis._imageCallbacks.add(orginalResourceId,callback); _gthis.getImageFromHaxeResource(orginalResourceId,$bind(_gthis,_gthis._onImageLoaded)); } else if(haxe_Resource.listNames().indexOf(resourceId) != -1) { _gthis.getImageFromHaxeResource(resourceId,$bind(_gthis,_gthis._onImageLoaded)); } else { _gthis._imageCallbacks.remove(resourceId,callback); callback(null); } }); } } } ,_onImageLoaded: function(resourceId,imageInfo) { if(imageInfo != null && (imageInfo.width == -1 || imageInfo.width == -1)) { haxe_Log.trace("WARNING: imageData.originalWidth == -1 || imageData.originalHeight == -1",{ fileName : "haxe/ui/ToolkitAssets.hx", lineNumber : 123, className : "haxe.ui.ToolkitAssets", methodName : "_onImageLoaded"}); } if(this._imageCache == null) { this._imageCache = new haxe_ds_StringMap(); } this._imageCache.h[resourceId] = imageInfo; this._imageCallbacks.invokeAndRemove(resourceId,imageInfo); } ,getText: function(resourceId) { var s = this.getTextDelegate(resourceId); if(s == null) { s = haxe_Resource.getString(resourceId); } return s; } ,getBytes: function(resourceId) { return haxe_Resource.getBytes(resourceId); } ,_plugins: null ,addPlugin: function(plugin) { if(this._plugins == null) { this._plugins = []; } this._plugins.push(plugin); } ,runPlugins: function(asset) { if(this._plugins == null) { return asset; } var _g = 0; var _g1 = this._plugins; while(_g < _g1.length) { var p = _g1[_g]; ++_g; asset = p.invoke(asset); } return asset; } ,__class__: haxe_ui_ToolkitAssets }); var haxe_ui_actions_ActionManager = function() { this._repeatActions = new haxe_ds_StringMap(); this._inputSources = []; this._events = null; this.navigationMethod = "navigationDesktop"; }; $hxClasses["haxe.ui.actions.ActionManager"] = haxe_ui_actions_ActionManager; haxe_ui_actions_ActionManager.__name__ = "haxe.ui.actions.ActionManager"; haxe_ui_actions_ActionManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_actions_ActionManager._instance = null; haxe_ui_actions_ActionManager.instance = null; haxe_ui_actions_ActionManager.get_instance = function() { if(haxe_ui_actions_ActionManager._instance == null) { haxe_ui_actions_ActionManager._instance = new haxe_ui_actions_ActionManager(); } return haxe_ui_actions_ActionManager._instance; }; haxe_ui_actions_ActionManager.prototype = { navigationMethod: null ,_events: null ,_inputSources: null ,_repeatActions: null ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this._events == null) { this._events = new haxe_ui_util_EventMap(); } this._events.add(type,listener,priority); } ,unregisterEvent: function(type,listener) { if(this._events == null) { return; } this._events.remove(type,listener); } ,dispatch: function(event) { if(this._events == null) { return; } this._events.invoke(event.type,event); } ,registerInputSource: function(source) { source.start(); this._inputSources.push(source); } ,actionStart: function(action,source) { var _gthis = this; var currentFocus = haxe_ui_focus_FocusManager.get_instance().get_focus(); if(currentFocus == null) { return; } if(!((currentFocus) instanceof haxe_ui_core_InteractiveComponent)) { return; } var actionEvent = new haxe_ui_events_ActionEvent(haxe_ui_events_ActionEvent.ACTION_START,action); var c = js_Boot.__cast(currentFocus , haxe_ui_core_InteractiveComponent); c.dispatch(actionEvent); if(actionEvent.canceled == false) { var c1 = js_Boot.getClass(source); this.dispatch(new haxe_ui_events_ActionEvent(haxe_ui_events_ActionEvent.ACTION_START,action,false,c1.__name__)); } if(actionEvent.repeater == true) { if(Object.prototype.hasOwnProperty.call(this._repeatActions.h,action)) { var info = this._repeatActions.h[action]; info.timer.stop(); var _this = this._repeatActions; var key = action; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } var this1 = this._repeatActions; var value = { type : action, timer : new haxe_ui_util_Timer(c.actionRepeatInterval,function() { _gthis.actionStart(action,source); })}; this1.h[action] = value; } } ,actionEnd: function(action,source) { var currentFocus = haxe_ui_focus_FocusManager.get_instance().get_focus(); if(currentFocus == null) { return; } if(!((currentFocus) instanceof haxe_ui_core_InteractiveComponent)) { return; } var actionEvent = new haxe_ui_events_ActionEvent(haxe_ui_events_ActionEvent.ACTION_END,action); var c = js_Boot.__cast(currentFocus , haxe_ui_core_InteractiveComponent); c.dispatch(actionEvent); if(actionEvent.canceled == false) { var c = js_Boot.getClass(source); this.dispatch(new haxe_ui_events_ActionEvent(haxe_ui_events_ActionEvent.ACTION_END,action,false,c.__name__)); } if(Object.prototype.hasOwnProperty.call(this._repeatActions.h,action)) { var info = this._repeatActions.h[action]; info.timer.stop(); var _this = this._repeatActions; var key = action; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } ,__class__: haxe_ui_actions_ActionManager }; var haxe_ui_actions_KeyboardActionInputSource = function() { this._downKeys = new haxe_ds_IntMap(); this._started = false; }; $hxClasses["haxe.ui.actions.KeyboardActionInputSource"] = haxe_ui_actions_KeyboardActionInputSource; haxe_ui_actions_KeyboardActionInputSource.__name__ = "haxe.ui.actions.KeyboardActionInputSource"; haxe_ui_actions_KeyboardActionInputSource.__interfaces__ = [haxe_ui_actions_IActionInputSource]; haxe_ui_actions_KeyboardActionInputSource.prototype = { _started: null ,start: function() { if(this._started == true) { return; } this._started = true; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_KeyboardEvent.KEY_DOWN,$bind(this,this.onKeyDown)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_KeyboardEvent.KEY_UP,$bind(this,this.onKeyUp)); } ,_downKeys: null ,onKeyDown: function(e) { var keyCode = e.keyCode; if(this._downKeys.h.hasOwnProperty(keyCode)) { return; } this._downKeys.h[keyCode] = true; if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("space")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionPress",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("left")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionLeft",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("right")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionRight",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("up")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionUp",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("down")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionDown",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("escape")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionBack",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("enter")) { haxe_ui_actions_ActionManager.get_instance().actionStart("actionConfirm",this); } } ,onKeyUp: function(e) { var keyCode = e.keyCode; if(this._downKeys.h.hasOwnProperty(keyCode) == false) { return; } this._downKeys.remove(keyCode); if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("space")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionPress",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("left")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionLeft",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("right")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionRight",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("up")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionUp",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("down")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionDown",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("escape")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionBack",this); } else if(keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("enter")) { haxe_ui_actions_ActionManager.get_instance().actionEnd("actionConfirm",this); } } ,__class__: haxe_ui_actions_KeyboardActionInputSource }; var haxe_ui_animation_Animation = function(target) { this.target = target; }; $hxClasses["haxe.ui.animation.Animation"] = haxe_ui_animation_Animation; haxe_ui_animation_Animation.__name__ = "haxe.ui.animation.Animation"; haxe_ui_animation_Animation.prototype = { target: null ,build: function(builder) { } ,__class__: haxe_ui_animation_Animation }; var haxe_ui_animation_AnimationBuilder = function(target,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } this.onComplete = null; this._keyFrames = []; this.target = target; this.duration = duration; this.easing = easing; }; $hxClasses["haxe.ui.animation.AnimationBuilder"] = haxe_ui_animation_AnimationBuilder; haxe_ui_animation_AnimationBuilder.__name__ = "haxe.ui.animation.AnimationBuilder"; haxe_ui_animation_AnimationBuilder.prototype = { _keyFrames: null ,target: null ,onComplete: null ,duration: null ,easing: null ,shake: function(direction) { if(direction == null) { direction = "horizontal"; } new haxe_ui_animation_ShakeAnimation(this.target,direction).build(this); return this; } ,flash: function(color) { if(color == null) { color = 16768477; } new haxe_ui_animation_FlashAnimation(this.target,color).build(this); return this; } ,setPosition: function(time,propertyName,value,absolute) { if(absolute == null) { absolute = false; } var kf = this.findKeyFrameAtTime(time); if(kf == null) { kf = new haxe_ui_styles_elements_AnimationKeyFrame(); kf.time = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PERCENT(time)); this._keyFrames.push(kf); } if(kf.directives == null) { kf.directives = []; } if(absolute) { var directive = new haxe_ui_styles_elements_Directive(propertyName,haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(value))); kf.directives.push(directive); } else { var currentValue = Reflect.getProperty(this.target,propertyName); var directive = new haxe_ui_styles_elements_Directive(propertyName,haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(currentValue + value))); kf.directives.push(directive); } return this; } ,setColor: function(time,propertyName,value) { var kf = this.findKeyFrameAtTime(time); if(kf == null) { kf = new haxe_ui_styles_elements_AnimationKeyFrame(); kf.time = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PERCENT(time)); this._keyFrames.push(kf); } if(kf.directives == null) { kf.directives = []; } var directive = new haxe_ui_styles_elements_Directive(propertyName,haxe_ui_styles_Value.VColor(haxe_ui_util_Color.toInt(value))); kf.directives.push(directive); return this; } ,sortFrames: function() { this._keyFrames.sort(function(f1,f2) { var t1 = 0; var _g = f1.time; if(_g._hx_index == 3) { var _g1 = _g.v; if(_g1._hx_index == 0) { var p = _g1.value; t1 = p; } } var t2 = 0; var _g = f2.time; if(_g._hx_index == 3) { var _g1 = _g.v; if(_g1._hx_index == 0) { var p = _g1.value; t2 = p; } } return t1 - t2 | 0; }); } ,play: function() { var _gthis = this; var frames = new haxe_ui_styles_elements_AnimationKeyFrames("builder",this._keyFrames); this.target.registerEvent(haxe_ui_events_AnimationEvent.END,function(e) { _gthis.target._pauseAnimationStyleChanges = false; _gthis.target._componentAnimation = null; _gthis.target.unregisterEvents(haxe_ui_events_AnimationEvent.END); if(_gthis.onComplete != null) { _gthis.onComplete(); } }); this.sortFrames(); this.target._pauseAnimationStyleChanges = true; this.target.applyAnimationKeyFrame(frames,new haxe_ui_styles_animation_AnimationOptions(this.duration,null,null,this.easing,null,null)); } ,findKeyFrameAtTime: function(time) { var _g = 0; var _g1 = this._keyFrames; while(_g < _g1.length) { var kf = _g1[_g]; ++_g; var _g2 = kf.time; if(_g2._hx_index == 3) { var _g3 = _g2.v; if(_g3._hx_index == 0) { var p = _g3.value; if(p == time) { return kf; } } } } return null; } ,__class__: haxe_ui_animation_AnimationBuilder }; var haxe_ui_animation_AnimationSequence = function() { this.builders = []; this.onComplete = null; }; $hxClasses["haxe.ui.animation.AnimationSequence"] = haxe_ui_animation_AnimationSequence; haxe_ui_animation_AnimationSequence.__name__ = "haxe.ui.animation.AnimationSequence"; haxe_ui_animation_AnimationSequence.prototype = { onComplete: null ,builders: null ,_activeBuilders: null ,add: function(builder) { this.builders.push(builder); } ,onAnimationComplete: function() { this._activeBuilders.pop(); if(this._activeBuilders.length == 0) { if(this.onComplete != null) { this.onComplete(); } } } ,play: function() { if(this.builders.length == 0) { if(this.onComplete != null) { this.onComplete(); } return; } this._activeBuilders = this.builders.slice(); var _g = 0; var _g1 = this.builders; while(_g < _g1.length) { var builder = _g1[_g]; ++_g; builder.onComplete = $bind(this,this.onAnimationComplete); } var _g = 0; var _g1 = this.builders; while(_g < _g1.length) { var builder = _g1[_g]; ++_g; builder.play(); } } ,__class__: haxe_ui_animation_AnimationSequence }; var haxe_ui_animation_AnimationTools = function() { }; $hxClasses["haxe.ui.animation.AnimationTools"] = haxe_ui_animation_AnimationTools; haxe_ui_animation_AnimationTools.__name__ = "haxe.ui.animation.AnimationTools"; haxe_ui_animation_AnimationTools.shake = function(c,direction,onComplete,autoPlay) { if(autoPlay == null) { autoPlay = true; } if(direction == null) { direction = "horizontal"; } var builder = new haxe_ui_animation_AnimationBuilder(c); builder.shake(direction); if(autoPlay) { builder.play(); } return builder; }; haxe_ui_animation_AnimationTools.flash = function(c,color,onComplete,autoPlay) { if(autoPlay == null) { autoPlay = true; } if(color == null) { color = 16768477; } var builder = new haxe_ui_animation_AnimationBuilder(c); builder.flash(color); if(autoPlay) { builder.play(); } return builder; }; haxe_ui_animation_AnimationTools.slideFromLeft = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideFromLeft(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentX = 0; if(c.get_parentComponent() != null) { parentX = c.get_parentComponent().get_screenLeft(); } var destX = c.get_screenLeft() - parentX; var originX = 0 - c.get_width() - parentX; c.set_left(originX); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"left",originX | 0,true); builder.setPosition(100,"left",destX | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideToLeft = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideToLeft(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentX = 0; if(c.get_parentComponent() != null) { parentX = c.get_parentComponent().get_screenLeft(); } var destX = c.get_screenLeft() - parentX; var originX = 0 - c.get_width() - parentX; c.set_left(originX); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"left",destX | 0,true); builder.setPosition(100,"left",originX | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideFromTop = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideFromTop(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentY = 0; if(c.get_parentComponent() != null) { parentY = c.get_parentComponent().get_screenTop(); } var destY = c.get_screenTop() - parentY; var originY = 0 - c.get_height() - parentY; c.set_top(originY); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"top",originY | 0,true); builder.setPosition(100,"top",destY | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideToTop = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideToTop(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentY = 0; if(c.get_parentComponent() != null) { parentY = c.get_parentComponent().get_screenTop(); } var destY = c.get_screenTop() - parentY; var originY = 0 - c.get_height() - parentY; c.set_top(originY); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"top",destY | 0,true); builder.setPosition(100,"top",originY | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideFromRight = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideFromRight(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentX = 0; if(c.get_parentComponent() != null) { parentX = c.get_parentComponent().get_screenLeft(); } var destX = c.get_screenLeft() - parentX; var originX = haxe_ui_core_Screen.get_instance().get_width() - parentX; c.set_left(originX); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"left",originX | 0,true); builder.setPosition(100,"left",destX | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideToRight = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideToRight(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentX = 0; if(c.get_parentComponent() != null) { parentX = c.get_parentComponent().get_screenLeft(); } var destX = c.get_screenLeft() - parentX; var originX = haxe_ui_core_Screen.get_instance().get_width() - parentX; c.set_left(originX); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"left",destX | 0,true); builder.setPosition(100,"left",originX | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideFromBottom = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideFromBottom(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentY = 0; if(c.get_parentComponent() != null) { parentY = c.get_parentComponent().get_screenTop(); } var destY = c.get_screenTop() - parentY; var originY = haxe_ui_core_Screen.get_instance().get_height() - parentY; c.set_top(originY); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"top",originY | 0,true); builder.setPosition(100,"top",destY | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; haxe_ui_animation_AnimationTools.slideToBottom = function(c,delayMs,onComplete,duration,easing) { if(easing == null) { easing = "linear"; } if(duration == null) { duration = .2; } if(delayMs == null) { delayMs = 0; } c.set_opacity(0); if(!c.get_isReady()) { c.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { haxe_ui_animation_AnimationTools.slideToBottom(c,delayMs,onComplete,duration,easing); }); return; } if(c.get_parentComponent() != null) { c.get_parentComponent().validateNow(); } c.validateNow(); var parentY = 0; if(c.get_parentComponent() != null) { parentY = c.get_parentComponent().get_screenTop(); } var destY = c.get_screenTop() - parentY; var originY = haxe_ui_core_Screen.get_instance().get_height() - parentY; c.set_top(originY); var builder = new haxe_ui_animation_AnimationBuilder(c,duration,easing); builder.onComplete = onComplete; builder.setPosition(0,"top",destY | 0,true); builder.setPosition(100,"top",originY | 0,true); if(delayMs <= 0) { builder.play(); c.set_opacity(1); } else { haxe_ui_util_Timer.delay(function() { builder.play(); c.set_opacity(1); },delayMs); } }; var haxe_ui_animation_FlashAnimation = function(target,color,borderColor) { if(borderColor == null) { borderColor = 16164770; } if(color == null) { color = 16640488; } haxe_ui_animation_Animation.call(this,target); this.color = color; this.borderColor = borderColor; }; $hxClasses["haxe.ui.animation.FlashAnimation"] = haxe_ui_animation_FlashAnimation; haxe_ui_animation_FlashAnimation.__name__ = "haxe.ui.animation.FlashAnimation"; haxe_ui_animation_FlashAnimation.__super__ = haxe_ui_animation_Animation; haxe_ui_animation_FlashAnimation.prototype = $extend(haxe_ui_animation_Animation.prototype,{ color: null ,borderColor: null ,build: function(builder) { var _gthis = this; builder.target = this.target; var originalColor = this.target.get_backgroundColor(); var originalColorEnd = this.target.get_backgroundColorEnd(); var originalBorderColor = this.target.get_borderColor(); builder.setColor(20,"backgroundColor",this.color).setColor(20,"backgroundColorEnd",this.color).setColor(20,"borderColor",this.borderColor).setColor(80,"backgroundColor",this.color).setColor(80,"backgroundColorEnd",this.color).setColor(80,"borderColor",this.borderColor).setColor(100,"backgroundColor",originalColor).setColor(100,"backgroundColorEnd",originalColorEnd).setColor(100,"borderColor",originalBorderColor).onComplete = function() { _gthis.target.get_customStyle().backgroundColor = null; _gthis.target.get_customStyle().backgroundColorEnd = null; _gthis.target.set_borderColor(null); }; } ,__class__: haxe_ui_animation_FlashAnimation }); var haxe_ui_animation_ShakeAnimation = function(target,direction) { if(direction == null) { direction = "horizontal"; } haxe_ui_animation_Animation.call(this,target); this.direction = direction; }; $hxClasses["haxe.ui.animation.ShakeAnimation"] = haxe_ui_animation_ShakeAnimation; haxe_ui_animation_ShakeAnimation.__name__ = "haxe.ui.animation.ShakeAnimation"; haxe_ui_animation_ShakeAnimation.__super__ = haxe_ui_animation_Animation; haxe_ui_animation_ShakeAnimation.prototype = $extend(haxe_ui_animation_Animation.prototype,{ direction: null ,build: function(builder) { builder.target = this.target; var horizontal = true; var vertical = false; if(this.direction == "both") { horizontal = true; vertical = true; } else if(this.direction == "horizontal") { horizontal = true; vertical = false; } else if(this.direction == "vertical") { horizontal = false; vertical = true; } if(horizontal) { builder.setPosition(0,"left",0).setPosition(20,"left",-5).setPosition(40,"left",5).setPosition(60,"left",-3).setPosition(80,"left",3).setPosition(100,"left",0); } if(vertical) { builder.setPosition(0,"top",0).setPosition(20,"top",-5).setPosition(40,"top",5).setPosition(60,"top",-3).setPosition(80,"top",3).setPosition(100,"top",0); } } ,__class__: haxe_ui_animation_ShakeAnimation }); var haxe_ui_assets_AssetPlugin = function() { }; $hxClasses["haxe.ui.assets.AssetPlugin"] = haxe_ui_assets_AssetPlugin; haxe_ui_assets_AssetPlugin.__name__ = "haxe.ui.assets.AssetPlugin"; haxe_ui_assets_AssetPlugin.prototype = { _props: null ,invoke: function(asset) { return asset; } ,setProperty: function(name,value) { if(this._props == null) { this._props = new haxe_ds_StringMap(); } this._props.h[name] = value; } ,getProperty: function(name,defaultValue) { if(this._props == null) { return defaultValue; } var v = this._props.h[name]; if(v == null) { v = defaultValue; } return v; } ,__class__: haxe_ui_assets_AssetPlugin }; var haxe_ui_behaviours_Behaviour = function(component) { this.config = null; this._component = component; }; $hxClasses["haxe.ui.behaviours.Behaviour"] = haxe_ui_behaviours_Behaviour; haxe_ui_behaviours_Behaviour.__name__ = "haxe.ui.behaviours.Behaviour"; haxe_ui_behaviours_Behaviour.prototype = { config: null ,_component: null ,id: null ,set: function(value) { } ,setDynamic: function(value) { this.set(haxe_ui_util_Variant.fromDynamic(value)); } ,detatch: function() { } ,get: function() { return null; } ,getDynamic: function() { return haxe_ui_util_Variant.toDynamic(this.get()); } ,update: function() { } ,call: function(param) { return null; } ,getConfigValue: function(name,defaultValue) { if(this.config == null) { return defaultValue; } if(Object.prototype.hasOwnProperty.call(this.config.h,name) == false) { return defaultValue; } return this.config.h[name]; } ,getConfigValueBool: function(name,defaultValue) { if(defaultValue == null) { defaultValue = false; } var v = defaultValue; var s = this.getConfigValue(name); if(s != null) { v = s == "true"; } return v; } ,__class__: haxe_ui_behaviours_Behaviour }; var haxe_ui_behaviours_DefaultBehaviour = function(component) { this._value = null; haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.DefaultBehaviour"] = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_behaviours_DefaultBehaviour.__name__ = "haxe.ui.behaviours.DefaultBehaviour"; haxe_ui_behaviours_DefaultBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_behaviours_DefaultBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ _value: null ,get: function() { return this._value; } ,set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } this._value = value; haxe_ui_behaviours_Behaviour.prototype.set.call(this,value); } ,__class__: haxe_ui_behaviours_DefaultBehaviour }); var haxe_ui_backend_ComponentTextBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.backend.ComponentTextBehaviour"] = haxe_ui_backend_ComponentTextBehaviour; haxe_ui_backend_ComponentTextBehaviour.__name__ = "haxe.ui.backend.ComponentTextBehaviour"; haxe_ui_backend_ComponentTextBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_backend_ComponentTextBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } this._value = value; haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); } ,__class__: haxe_ui_backend_ComponentTextBehaviour }); var haxe_ui_backend_ComponentDisabledBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); this._value = haxe_ui_util_Variant.fromBool(false); }; $hxClasses["haxe.ui.backend.ComponentDisabledBehaviour"] = haxe_ui_backend_ComponentDisabledBehaviour; haxe_ui_backend_ComponentDisabledBehaviour.__name__ = "haxe.ui.backend.ComponentDisabledBehaviour"; haxe_ui_backend_ComponentDisabledBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_backend_ComponentDisabledBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } this._value = value; if(value != null && haxe_ui_util_Variant.get_isNull(value) == false) { this._component.disableInteractivity(haxe_ui_util_Variant.toBool(value),true,true); } } ,get: function() { return haxe_ui_util_Variant.fromBool(this._component.classes.indexOf(":disabled") != -1); } ,__class__: haxe_ui_backend_ComponentDisabledBehaviour }); var haxe_ui_behaviours_ValueBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.ValueBehaviour"] = haxe_ui_behaviours_ValueBehaviour; haxe_ui_behaviours_ValueBehaviour.__name__ = "haxe.ui.behaviours.ValueBehaviour"; haxe_ui_behaviours_ValueBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_behaviours_ValueBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ _previousValue: null ,_value: null ,get: function() { return this._value; } ,set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } this._previousValue = this._value; this._value = value; } ,__class__: haxe_ui_behaviours_ValueBehaviour }); var haxe_ui_backend_ComponentValueBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.backend.ComponentValueBehaviour"] = haxe_ui_backend_ComponentValueBehaviour; haxe_ui_backend_ComponentValueBehaviour.__name__ = "haxe.ui.backend.ComponentValueBehaviour"; haxe_ui_backend_ComponentValueBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_backend_ComponentValueBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } this._value = value; this._component.set_text(haxe_ui_util_Variant.toString(value)); } ,get: function() { return this._value; } ,getDynamic: function() { return haxe_ui_util_Variant.toDynamic(this._value); } ,__class__: haxe_ui_backend_ComponentValueBehaviour }); var haxe_ui_behaviours_IValidatingBehaviour = function() { }; $hxClasses["haxe.ui.behaviours.IValidatingBehaviour"] = haxe_ui_behaviours_IValidatingBehaviour; haxe_ui_behaviours_IValidatingBehaviour.__name__ = "haxe.ui.behaviours.IValidatingBehaviour"; haxe_ui_behaviours_IValidatingBehaviour.__isInterface__ = true; haxe_ui_behaviours_IValidatingBehaviour.prototype = { validate: null ,__class__: haxe_ui_behaviours_IValidatingBehaviour }; var haxe_ui_behaviours_DataBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.DataBehaviour"] = haxe_ui_behaviours_DataBehaviour; haxe_ui_behaviours_DataBehaviour.__name__ = "haxe.ui.behaviours.DataBehaviour"; haxe_ui_behaviours_DataBehaviour.__interfaces__ = [haxe_ui_behaviours_IValidatingBehaviour]; haxe_ui_behaviours_DataBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_behaviours_DataBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ _dataInvalid: null ,set: function(value) { if(haxe_ui_util_Variant.eq(value,this.get())) { return; } this._previousValue = this._value; this._value = value; this.invalidateData(); } ,validate: function() { if(this._dataInvalid) { this._dataInvalid = false; this.validateData(); } } ,invalidateData: function() { this._dataInvalid = true; this._component.invalidateComponent("data",false); } ,validateData: function() { } ,__class__: haxe_ui_behaviours_DataBehaviour }); var haxe_ui_backend_ComponentToolTipBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.backend.ComponentToolTipBehaviour"] = haxe_ui_backend_ComponentToolTipBehaviour; haxe_ui_backend_ComponentToolTipBehaviour.__name__ = "haxe.ui.backend.ComponentToolTipBehaviour"; haxe_ui_backend_ComponentToolTipBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_backend_ComponentToolTipBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { haxe_ui_tooltips_ToolTipManager.get_instance().unregisterTooltip(this._component); } else { haxe_ui_tooltips_ToolTipManager.get_instance().registerTooltip(this._component,{ tipData : haxe_ui_util_Variant.toDynamic(this._value), renderer : this._component.get_tooltipRenderer()}); } } ,setDynamic: function(value) { haxe_ui_tooltips_ToolTipManager.get_instance().unregisterTooltip(this._component); if(value != null) { haxe_ui_tooltips_ToolTipManager.get_instance().registerTooltip(this._component,{ tipData : value, renderer : this._component.get_tooltipRenderer()}); } } ,getDynamic: function() { var options = haxe_ui_tooltips_ToolTipManager.get_instance().getTooltipOptions(this._component); if(options == null) { return null; } return options.tipData; } ,__class__: haxe_ui_backend_ComponentToolTipBehaviour }); var haxe_ui_backend_ComponentToolTipRendererBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.backend.ComponentToolTipRendererBehaviour"] = haxe_ui_backend_ComponentToolTipRendererBehaviour; haxe_ui_backend_ComponentToolTipRendererBehaviour.__name__ = "haxe.ui.backend.ComponentToolTipRendererBehaviour"; haxe_ui_backend_ComponentToolTipRendererBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_backend_ComponentToolTipRendererBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { haxe_ui_tooltips_ToolTipManager.get_instance().updateTooltipRenderer(this._component,null); } else { haxe_ui_tooltips_ToolTipManager.get_instance().updateTooltipRenderer(this._component,haxe_ui_util_Variant.toComponent(this._value)); } } ,__class__: haxe_ui_backend_ComponentToolTipRendererBehaviour }); var haxe_ui_backend_ComponentGraphicsBase = function(component) { this._drawCommands = []; this._component = component; }; $hxClasses["haxe.ui.backend.ComponentGraphicsBase"] = haxe_ui_backend_ComponentGraphicsBase; haxe_ui_backend_ComponentGraphicsBase.__name__ = "haxe.ui.backend.ComponentGraphicsBase"; haxe_ui_backend_ComponentGraphicsBase.prototype = { _component: null ,_drawCommands: null ,clear: function() { this._drawCommands = []; this.addDrawCommand(haxe_ui_graphics_DrawCommand.Clear); } ,setPixel: function(x,y,color) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.SetPixel(x,y,color)); } ,setPixels: function(pixels) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.SetPixels(pixels)); } ,moveTo: function(x,y) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.MoveTo(x,y)); } ,lineTo: function(x,y) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.LineTo(x,y)); } ,strokeStyle: function(color,thickness,alpha) { if(alpha == null) { alpha = 1; } if(thickness == null) { thickness = 1; } this.addDrawCommand(haxe_ui_graphics_DrawCommand.StrokeStyle(color,thickness,alpha)); } ,circle: function(x,y,radius) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.Circle(x,y,radius)); } ,fillStyle: function(color,alpha) { if(alpha == null) { alpha = 1; } this.addDrawCommand(haxe_ui_graphics_DrawCommand.FillStyle(color,alpha)); } ,curveTo: function(controlX,controlY,anchorX,anchorY) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.CurveTo(controlX,controlY,anchorX,anchorY)); } ,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.CubicCurveTo(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY)); } ,rectangle: function(x,y,width,height) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.Rectangle(x,y,width,height)); } ,image: function(resource,x,y,width,height) { this.addDrawCommand(haxe_ui_graphics_DrawCommand.Image(resource,x,y,width,height)); } ,beginPath: function() { this.addDrawCommand(haxe_ui_graphics_DrawCommand.BeginPath); } ,closePath: function() { this.addDrawCommand(haxe_ui_graphics_DrawCommand.ClosePath); } ,addDrawCommand: function(command) { this._drawCommands.push(command); } ,resize: function(width,height) { } ,setProperty: function(name,value) { } ,detach: function() { } ,replayDrawCommands: function() { var commands = this._drawCommands.slice(); this._drawCommands = []; var _g = 0; while(_g < commands.length) { var c = commands[_g]; ++_g; switch(c._hx_index) { case 0: this.clear(); break; case 1: var x = c.x; var y = c.y; var color = c.color; this.setPixel(x,y,color); break; case 2: var pixels = c.pixels; this.setPixels(pixels); break; case 3: var x1 = c.x; var y1 = c.y; this.moveTo(x1,y1); break; case 4: var x2 = c.x; var y2 = c.y; this.lineTo(x2,y2); break; case 5: var color1 = c.color; var thickness = c.thickness; var alpha = c.alpha; this.strokeStyle(color1,thickness,alpha); break; case 6: var x3 = c.x; var y3 = c.y; var radius = c.radius; this.circle(x3,y3,radius); break; case 7: var color2 = c.color; var alpha1 = c.alpha; this.fillStyle(color2,alpha1); break; case 8: var controlX = c.controlX; var controlY = c.controlY; var anchorX = c.anchorX; var anchorY = c.anchorY; this.curveTo(controlX,controlY,anchorX,anchorY); break; case 9: var controlX1 = c.controlX1; var controlY1 = c.controlY1; var controlX2 = c.controlX2; var controlY2 = c.controlY2; var anchorX1 = c.anchorX; var anchorY1 = c.anchorY; this.cubicCurveTo(controlX1,controlY1,controlX2,controlY2,anchorX1,anchorY1); break; case 10: var x4 = c.x; var y4 = c.y; var width = c.width; var height = c.height; this.rectangle(x4,y4,width,height); break; case 11: var resource = c.resource; var x5 = c.x; var y5 = c.y; var width1 = c.width; var height1 = c.height; this.image(resource,x5,y5,width1,height1); break; case 12: this.beginPath(); break; case 13: this.closePath(); break; } } } ,__class__: haxe_ui_backend_ComponentGraphicsBase }; var haxe_ui_backend_ComponentGraphicsImpl = function(component) { this.bitmapData = null; this._hasSize = false; haxe_ui_backend_ComponentGraphicsBase.call(this,component); }; $hxClasses["haxe.ui.backend.ComponentGraphicsImpl"] = haxe_ui_backend_ComponentGraphicsImpl; haxe_ui_backend_ComponentGraphicsImpl.__name__ = "haxe.ui.backend.ComponentGraphicsImpl"; haxe_ui_backend_ComponentGraphicsImpl.__super__ = haxe_ui_backend_ComponentGraphicsBase; haxe_ui_backend_ComponentGraphicsImpl.prototype = $extend(haxe_ui_backend_ComponentGraphicsBase.prototype,{ _hasSize: null ,bitmapData: null ,sprite: null ,setPixels: function(pixels) { if(this._hasSize == false) { haxe_ui_backend_ComponentGraphicsBase.prototype.setPixels.call(this,pixels); return; } var w = this._component.get_width() | 0; var h = this._component.get_height() | 0; if(this.bitmapData != null && (this.bitmapData.width != w || this.bitmapData.height != h)) { this.bitmapData.dispose(); this.bitmapData = null; } if(this.bitmapData == null) { this.bitmapData = new openfl_display_BitmapData(w,h,true,0); } var bytesData = pixels.b.bufferValue; var length = pixels.length; var newPixels = new haxe_io_Bytes(new ArrayBuffer(length)); var i = 0; while(i < length) { var r = bytesData.bytes[i]; var g = bytesData.bytes[i + 1]; var b = bytesData.bytes[i + 2]; var a = bytesData.bytes[i + 3]; newPixels.b[i] = b & 255; newPixels.b[i + 1] = g & 255; newPixels.b[i + 2] = r & 255; newPixels.b[i + 3] = a & 255; i += 4; } var byteArray = openfl_utils_ByteArray.fromBytes(newPixels); this.bitmapData.setPixels(new openfl_geom_Rectangle(0,0,this.bitmapData.width,this.bitmapData.height),byteArray); if(this.sprite == null) { this.sprite = new flixel_FlxSprite(0,0); this.sprite.set_active(false); this._component.add(this.sprite); } this.sprite.set_width(w); this.sprite.set_height(h); this.sprite.set_pixels(this.bitmapData); this.sprite.set_visible(w > 0 && h > 0); } ,resize: function(width,height) { if(width > 0 && height > 0) { if(this._hasSize == false) { this._hasSize = true; this.replayDrawCommands(); } } } ,__class__: haxe_ui_backend_ComponentGraphicsImpl }); var haxe_ui_backend_FocusManagerBase = function() { }; $hxClasses["haxe.ui.backend.FocusManagerBase"] = haxe_ui_backend_FocusManagerBase; haxe_ui_backend_FocusManagerBase.__name__ = "haxe.ui.backend.FocusManagerBase"; haxe_ui_backend_FocusManagerBase.prototype = { applyFocus: function(c) { } ,unapplyFocus: function(c) { } ,__class__: haxe_ui_backend_FocusManagerBase }; var haxe_ui_backend_FocusManagerImpl = function() { haxe_ui_backend_FocusManagerBase.call(this); }; $hxClasses["haxe.ui.backend.FocusManagerImpl"] = haxe_ui_backend_FocusManagerImpl; haxe_ui_backend_FocusManagerImpl.__name__ = "haxe.ui.backend.FocusManagerImpl"; haxe_ui_backend_FocusManagerImpl.__super__ = haxe_ui_backend_FocusManagerBase; haxe_ui_backend_FocusManagerImpl.prototype = $extend(haxe_ui_backend_FocusManagerBase.prototype,{ applyFocus: function(c) { haxe_ui_backend_FocusManagerBase.prototype.applyFocus.call(this,c); } ,unapplyFocus: function(c) { haxe_ui_backend_FocusManagerBase.prototype.applyFocus.call(this,c); } ,__class__: haxe_ui_backend_FocusManagerImpl }); var haxe_ui_backend_ImageBase = function(X,Y,SimpleGraphic) { this._imageHeight = 0; this._imageWidth = 0; this._top = 0; this._left = 0; this.aspectRatio = 1; flixel_FlxSprite.call(this,X,Y,SimpleGraphic); }; $hxClasses["haxe.ui.backend.ImageBase"] = haxe_ui_backend_ImageBase; haxe_ui_backend_ImageBase.__name__ = "haxe.ui.backend.ImageBase"; haxe_ui_backend_ImageBase.__super__ = flixel_FlxSprite; haxe_ui_backend_ImageBase.prototype = $extend(flixel_FlxSprite.prototype,{ parentComponent: null ,aspectRatio: null ,_left: null ,_top: null ,_imageWidth: null ,_imageHeight: null ,_imageInfo: null ,_imageClipRect: null ,dispose: function() { if(this.parentComponent != null) { this.parentComponent = null; } } ,validateData: function() { } ,validatePosition: function() { } ,validateDisplay: function() { } ,__class__: haxe_ui_backend_ImageBase }); var haxe_ui_backend_ImageDisplayImpl = function() { haxe_ui_backend_ImageBase.call(this); this.set_pixelPerfectRender(true); this.set_active(false); }; $hxClasses["haxe.ui.backend.ImageDisplayImpl"] = haxe_ui_backend_ImageDisplayImpl; haxe_ui_backend_ImageDisplayImpl.__name__ = "haxe.ui.backend.ImageDisplayImpl"; haxe_ui_backend_ImageDisplayImpl.__super__ = haxe_ui_backend_ImageBase; haxe_ui_backend_ImageDisplayImpl.prototype = $extend(haxe_ui_backend_ImageBase.prototype,{ validateData: function() { if(this._imageInfo != null) { this.set_frames(flixel_graphics_frames_FlxImageFrame.fromFrame(this._imageInfo.data)); this.aspectRatio = this._imageInfo.width / this._imageInfo.height; var this1 = this.origin; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); } } ,validateDisplay: function() { var scaleX = this._imageWidth / (this._imageInfo.width / haxe_ui_Toolkit.get_scaleX()); var scaleY = this._imageHeight / (this._imageInfo.height / haxe_ui_Toolkit.get_scaleY()); var this1 = this.scale; var x = scaleX; var y = scaleY; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); this.set_width(Math.abs(scaleX) * this.frameWidth); this.set_height(Math.abs(scaleY) * this.frameHeight); } ,set_clipRect: function(rect) { if(rect != null) { var X = rect.x / this.scale.x; var Y = rect.y / this.scale.y; var Width = rect.width / this.scale.x; var Height = rect.height / this.scale.y; if(Height == null) { Height = 0; } if(Width == null) { Width = 0; } if(Y == null) { Y = 0; } if(X == null) { X = 0; } var _this = flixel_math_FlxRect._pool.get(); var X1 = X; var Y1 = Y; var Width1 = Width; var Height1 = Height; if(Height1 == null) { Height1 = 0; } if(Width1 == null) { Width1 = 0; } if(Y1 == null) { Y1 = 0; } if(X1 == null) { X1 = 0; } _this.x = X1; _this.y = Y1; _this.width = Width1; _this.height = Height1; var rect = _this; rect._inPool = false; return haxe_ui_backend_ImageBase.prototype.set_clipRect.call(this,rect); } else { return haxe_ui_backend_ImageBase.prototype.set_clipRect.call(this,null); } } ,__class__: haxe_ui_backend_ImageDisplayImpl }); var haxe_ui_backend_MessageBoxBase = function() { this._type = null; haxe_ui_containers_dialogs_Dialog.call(this); var hbox = new haxe_ui_containers_HBox(); hbox.set_percentWidth(100); hbox.set_styleString("spacing:10px;"); this.addComponent(hbox); this.iconImage = new haxe_ui_components_Image(); this.iconImage.set_id("iconImage"); hbox.addComponent(this.iconImage); this.messageLabel = new haxe_ui_components_Label(); this.messageLabel.set_id("messageLabel"); this.messageLabel.set_percentWidth(100); hbox.addComponent(this.messageLabel); }; $hxClasses["haxe.ui.backend.MessageBoxBase"] = haxe_ui_backend_MessageBoxBase; haxe_ui_backend_MessageBoxBase.__name__ = "haxe.ui.backend.MessageBoxBase"; haxe_ui_backend_MessageBoxBase.__super__ = haxe_ui_containers_dialogs_Dialog; haxe_ui_backend_MessageBoxBase.prototype = $extend(haxe_ui_containers_dialogs_Dialog.prototype,{ iconImage: null ,messageLabel: null ,get_message: function() { return this.messageLabel.get_text(); } ,set_message: function(value) { this.messageLabel.set_text(value); return value; } ,get_text: function() { return this.get_message(); } ,set_text: function(value) { this.set_message(value); return value; } ,get_icon: function() { return this.iconImage.get_resource(); } ,set_icon: function(value) { this.iconImage.set_resource(value); return value; } ,_type: null ,get_type: function() { return this._type; } ,set_type: function(value) { this._type = haxe_ui_containers_dialogs_MessageBoxType.toString(value); this.iconImage.addClass(this._type); this.addClass(this._type); return value; } ,registerBehaviours: function() { haxe_ui_containers_dialogs_Dialog.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_dialogs_Dialog.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_backend_MessageBoxBase(); } ,__class__: haxe_ui_backend_MessageBoxBase ,__properties__: $extend(haxe_ui_containers_dialogs_Dialog.prototype.__properties__,{set_type:"set_type",get_type:"get_type",set_message:"set_message",get_message:"get_message"}) }); var haxe_ui_backend_OpenFileDialogBase = function(options,callback) { this._options = null; this.onDialogClosed = null; this.callback = null; this.selectedFiles = null; this.set_options(options); this.callback = callback; }; $hxClasses["haxe.ui.backend.OpenFileDialogBase"] = haxe_ui_backend_OpenFileDialogBase; haxe_ui_backend_OpenFileDialogBase.__name__ = "haxe.ui.backend.OpenFileDialogBase"; haxe_ui_backend_OpenFileDialogBase.prototype = { selectedFiles: null ,callback: null ,onDialogClosed: null ,_options: null ,get_options: function() { return this._options; } ,set_options: function(value) { this._options = value; this.validateOptions(); return value; } ,validateOptions: function() { if(this._options == null) { this.set_options({ }); } if(this._options.readContents == null) { this._options.readContents = false; } if(this._options.readAsBinary == null) { this._options.readAsBinary = false; } if(this._options.multiple == null) { this._options.multiple = false; } } ,show: function() { haxe_ui_containers_dialogs_Dialogs.messageBox("OpenFileDialog has no implementation on this backend","Open File","error"); } ,dialogConfirmed: function(files) { this.selectedFiles = files; if(this.callback != null) { this.callback("{{ok}}",this.selectedFiles); } if(this.onDialogClosed != null) { var event = new haxe_ui_containers_dialogs_DialogEvent("dialogClosed",false,this.selectedFiles); event.button = "{{ok}}"; this.onDialogClosed(event); } } ,dialogCancelled: function() { this.selectedFiles = null; if(this.callback != null) { this.callback("{{cancel}}",this.selectedFiles); } if(this.onDialogClosed != null) { var event = new haxe_ui_containers_dialogs_DialogEvent("dialogClosed",false,this.selectedFiles); event.button = "{{cancel}}"; this.onDialogClosed(event); } } ,__class__: haxe_ui_backend_OpenFileDialogBase ,__properties__: {set_options:"set_options",get_options:"get_options"} }; var haxe_ui_backend_OpenFileDialogImpl = function(options,callback) { this._fileSelector = new haxe_ui_util_html5_FileSelector(); haxe_ui_backend_OpenFileDialogBase.call(this,options,callback); }; $hxClasses["haxe.ui.backend.OpenFileDialogImpl"] = haxe_ui_backend_OpenFileDialogImpl; haxe_ui_backend_OpenFileDialogImpl.__name__ = "haxe.ui.backend.OpenFileDialogImpl"; haxe_ui_backend_OpenFileDialogImpl.__super__ = haxe_ui_backend_OpenFileDialogBase; haxe_ui_backend_OpenFileDialogImpl.prototype = $extend(haxe_ui_backend_OpenFileDialogBase.prototype,{ _fileSelector: null ,show: function() { var readMode = "none"; if(this.get_options().readContents == true) { if(this.get_options().readAsBinary == false) { readMode = "text"; } else { readMode = "binary"; } } this._fileSelector.selectFile($bind(this,this.onFileSelected),readMode,this.get_options().multiple,this.get_options().extensions); } ,onFileSelected: function(cancelled,files) { if(cancelled == false) { this.dialogConfirmed(files); } else { this.dialogCancelled(); } } ,__class__: haxe_ui_backend_OpenFileDialogImpl }); var haxe_ui_backend_PlatformBase = function() { this._isMobile = null; }; $hxClasses["haxe.ui.backend.PlatformBase"] = haxe_ui_backend_PlatformBase; haxe_ui_backend_PlatformBase.__name__ = "haxe.ui.backend.PlatformBase"; haxe_ui_backend_PlatformBase.prototype = { isWindows: null ,get_isWindows: function() { return window.navigator.userAgent.toLowerCase().indexOf("windows") != -1; } ,isLinux: null ,get_isLinux: function() { return window.navigator.userAgent.toLowerCase().indexOf("linux") != -1; } ,isMac: null ,get_isMac: function() { return window.navigator.userAgent.toLowerCase().indexOf("mac") != -1; } ,_isMobile: null ,isMobile: null ,get_isMobile: function() { if(this._isMobile != null) { return this._isMobile; } this._isMobile = false; var ua = $global.navigator.userAgent; this._isMobile = haxe_ui_backend_PlatformBase.MOBILE_REGEXP.match(ua); return this._isMobile; } ,getMetric: function(id) { return 0; } ,getColor: function(id) { return null; } ,getSystemLocale: function() { return null; } ,perf: function() { return new Date().getTime() / 1000 * 1000; } ,KeyTab: null ,get_KeyTab: function() { return this.getKeyCode("tab"); } ,KeyUp: null ,get_KeyUp: function() { return this.getKeyCode("up"); } ,KeyDown: null ,get_KeyDown: function() { return this.getKeyCode("down"); } ,KeyLeft: null ,get_KeyLeft: function() { return this.getKeyCode("left"); } ,KeyRight: null ,get_KeyRight: function() { return this.getKeyCode("right"); } ,KeySpace: null ,get_KeySpace: function() { return this.getKeyCode("space"); } ,KeyEnter: null ,get_KeyEnter: function() { return this.getKeyCode("enter"); } ,KeyEscape: null ,get_KeyEscape: function() { return this.getKeyCode("escape"); } ,getKeyCode: function(keyId) { switch(keyId) { case "down": return 40; case "enter": return 13; case "escape": return 27; case "left": return 37; case "right": return 39; case "space": return 32; case "tab": return 9; case "up": return 38; default: return HxOverrides.cca(keyId,0); } } ,__class__: haxe_ui_backend_PlatformBase ,__properties__: {get_KeyEscape:"get_KeyEscape",get_KeyEnter:"get_KeyEnter",get_KeySpace:"get_KeySpace",get_KeyRight:"get_KeyRight",get_KeyLeft:"get_KeyLeft",get_KeyDown:"get_KeyDown",get_KeyUp:"get_KeyUp",get_KeyTab:"get_KeyTab",get_isMobile:"get_isMobile",get_isMac:"get_isMac",get_isLinux:"get_isLinux",get_isWindows:"get_isWindows"} }; var haxe_ui_backend_PlatformImpl = function() { haxe_ui_backend_PlatformBase.call(this); }; $hxClasses["haxe.ui.backend.PlatformImpl"] = haxe_ui_backend_PlatformImpl; haxe_ui_backend_PlatformImpl.__name__ = "haxe.ui.backend.PlatformImpl"; haxe_ui_backend_PlatformImpl.__super__ = haxe_ui_backend_PlatformBase; haxe_ui_backend_PlatformImpl.prototype = $extend(haxe_ui_backend_PlatformBase.prototype,{ __class__: haxe_ui_backend_PlatformImpl }); var haxe_ui_backend_SaveFileDialogBase = function(options,callback) { this._options = null; this.fileInfo = null; this.onDialogClosed = null; this.callback = null; this.fullPath = null; this.saveResult = false; this.set_options(options); this.callback = callback; }; $hxClasses["haxe.ui.backend.SaveFileDialogBase"] = haxe_ui_backend_SaveFileDialogBase; haxe_ui_backend_SaveFileDialogBase.__name__ = "haxe.ui.backend.SaveFileDialogBase"; haxe_ui_backend_SaveFileDialogBase.prototype = { saveResult: null ,fullPath: null ,callback: null ,onDialogClosed: null ,fileInfo: null ,_options: null ,get_options: function() { return this._options; } ,set_options: function(value) { this._options = value; this.validateOptions(); return value; } ,validateOptions: function() { if(this._options == null) { this.set_options({ }); } } ,show: function() { haxe_ui_containers_dialogs_Dialogs.messageBox("SaveFileDialog has no implementation on this backend","Save File","error"); } ,dialogConfirmed: function() { this.saveResult = true; if(this.callback != null) { this.callback("{{ok}}",this.saveResult,this.fullPath); } if(this.onDialogClosed != null) { var event = new haxe_ui_containers_dialogs_DialogEvent("dialogClosed",false,this.saveResult); event.button = "{{ok}}"; this.onDialogClosed(event); } } ,dialogCancelled: function() { this.saveResult = false; if(this.callback != null) { this.callback("{{cancel}}",this.saveResult,null); } if(this.onDialogClosed != null) { var event = new haxe_ui_containers_dialogs_DialogEvent("dialogClosed",false,this.saveResult); event.button = "{{cancel}}"; this.onDialogClosed(event); } } ,__class__: haxe_ui_backend_SaveFileDialogBase ,__properties__: {set_options:"set_options",get_options:"get_options"} }; var haxe_ui_backend_SaveFileDialogImpl = function(options,callback) { this._fileSaver = new haxe_ui_util_html5_FileSaver(); haxe_ui_backend_SaveFileDialogBase.call(this,options,callback); }; $hxClasses["haxe.ui.backend.SaveFileDialogImpl"] = haxe_ui_backend_SaveFileDialogImpl; haxe_ui_backend_SaveFileDialogImpl.__name__ = "haxe.ui.backend.SaveFileDialogImpl"; haxe_ui_backend_SaveFileDialogImpl.__super__ = haxe_ui_backend_SaveFileDialogBase; haxe_ui_backend_SaveFileDialogImpl.prototype = $extend(haxe_ui_backend_SaveFileDialogBase.prototype,{ _fileSaver: null ,show: function() { if(this.fileInfo == null || this.fileInfo.text == null && this.fileInfo.bytes == null) { throw haxe_Exception.thrown("Nothing to write"); } if(this.fileInfo.text != null) { this._fileSaver.saveText(this.fileInfo.name,this.fileInfo.text,$bind(this,this.onSaveResult)); } else if(this.fileInfo.bytes != null) { this._fileSaver.saveBinary(this.fileInfo.name,this.fileInfo.bytes,$bind(this,this.onSaveResult)); } } ,onSaveResult: function(r) { if(r == true) { this.dialogConfirmed(); } else { this.dialogCancelled(); } } ,__class__: haxe_ui_backend_SaveFileDialogImpl }); var haxe_ui_backend_ScreenBase = function() { this.rootComponents = []; }; $hxClasses["haxe.ui.backend.ScreenBase"] = haxe_ui_backend_ScreenBase; haxe_ui_backend_ScreenBase.__name__ = "haxe.ui.backend.ScreenBase"; haxe_ui_backend_ScreenBase.__interfaces__ = [haxe_ui_core_IComponentContainer]; haxe_ui_backend_ScreenBase.prototype = { rootComponents: null ,_options: null ,get_options: function() { return this._options; } ,set_options: function(value) { this._options = value; return value; } ,dpi: null ,get_dpi: function() { return 72; } ,get_title: function() { return null; } ,set_title: function(s) { return s; } ,width: null ,get_width: function() { return 0; } ,height: null ,get_height: function() { return 0; } ,actualWidth: null ,get_actualWidth: function() { return this.get_width() * haxe_ui_Toolkit.get_scaleX(); } ,actualHeight: null ,get_actualHeight: function() { return this.get_height() * haxe_ui_Toolkit.get_scaleY(); } ,isRetina: null ,get_isRetina: function() { return false; } ,topComponent: null ,get_topComponent: function() { if(this.rootComponents.length == 0) { return null; } var n = this.rootComponents.length - 1; var c = null; while(n >= 0) { c = this.rootComponents[n]; if(c.get_style() == null) { break; } if(c.get_style().pointerEvents != "none") { break; } --n; } return c; } ,addComponent: function(component) { return component; } ,removeComponent: function(component,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return component; } ,containsComponent: function(child) { return false; } ,handleSetComponentIndex: function(child,index) { } ,resizeComponent: function(c) { var cx = null; var cy = null; if(c.get_percentWidth() > 0) { cx = this.get_width() * c.get_percentWidth() / 100; } if(c.get_percentHeight() > 0) { cy = this.get_height() * c.get_percentHeight() / 100; } c.resizeComponent(cx,cy); } ,refreshStyleRootComponents: function() { var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var component = _g1[_g]; ++_g; this._refreshStyleComponent(component); } } ,resizeRootComponents: function() { var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var component = _g1[_g]; ++_g; this.resizeComponent(component); } } ,_refreshStyleComponent: function(component) { var _g = 0; var _g1 = component._children == null ? [] : component._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.invalidateComponent("style",false); child.invalidateComponent("display",false); this._refreshStyleComponent(child); } } ,_onRootComponentResize: function(e) { this._refreshStyleComponent(e.target); } ,invalidateAll: function(flag) { if(flag == null) { flag = "all"; } var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var c = _g1[_g]; ++_g; this.invalidateChildren(c,flag); } } ,invalidateChildren: function(c,flag) { if(flag == null) { flag = "all"; } var _g = 0; var _g1 = c._children == null ? [] : c._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; this.invalidateChildren(child,flag); } c.invalidateComponent(flag); } ,onThemeChanged: function() { var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var c = _g1[_g]; ++_g; this.onThemeChangedChildren(c); } } ,onThemeChangedChildren: function(c) { var _g = 0; var _g1 = c._children == null ? [] : c._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; this.onThemeChangedChildren(child); } c.onThemeChanged(); } ,supportsEvent: function(type) { return false; } ,mapEvent: function(type,listener) { } ,unmapEvent: function(type,listener) { } ,__class__: haxe_ui_backend_ScreenBase ,__properties__: {get_topComponent:"get_topComponent",get_isRetina:"get_isRetina",get_actualHeight:"get_actualHeight",get_actualWidth:"get_actualWidth",get_height:"get_height",get_width:"get_width",set_title:"set_title",get_title:"get_title",get_dpi:"get_dpi",set_options:"set_options",get_options:"get_options"} }; var haxe_ui_backend_ScreenImpl = function() { this._resizeHandlerAdded = false; this._cursor = null; haxe_ui_backend_ScreenBase.call(this); this._mapping = new haxe_ds_StringMap(); haxe_ui_backend_flixel_MouseHelper.init(); haxe_ui_backend_flixel_KeyboardHelper.init(); flixel_FlxG.signals.postGameStart.add($bind(this,this.onPostGameStart)); flixel_FlxG.signals.preStateSwitch.add($bind(this,this.onPreStateSwitch)); flixel_FlxG.signals.postStateSwitch.add($bind(this,this.onPostStateSwitch)); flixel_FlxG.signals.preStateCreate.add($bind(this,this.onPreStateCreate)); this.onPostStateSwitch(); this.addResizeHandler(); }; $hxClasses["haxe.ui.backend.ScreenImpl"] = haxe_ui_backend_ScreenImpl; haxe_ui_backend_ScreenImpl.__name__ = "haxe.ui.backend.ScreenImpl"; haxe_ui_backend_ScreenImpl.__super__ = haxe_ui_backend_ScreenBase; haxe_ui_backend_ScreenImpl.prototype = $extend(haxe_ui_backend_ScreenBase.prototype,{ _mapping: null ,onPreStateCreate: function(state) { if(!state.get_memberAdded().has($bind(this,this.onMemberAdded))) { state.get_memberAdded().add($bind(this,this.onMemberAdded)); } this.checkMembers(state); if(!state.get_memberRemoved().has($bind(this,this.onMemberRemoved))) { state.get_memberRemoved().add($bind(this,this.onMemberRemoved)); } } ,onPostGameStart: function() { this.onPostStateSwitch(); } ,onPreStateSwitch: function() { if(flixel_FlxG.game == null) { return; } haxe_ui_tooltips_ToolTipManager.get_instance().reset(); if(this.rootComponents != null) { while(this.rootComponents.length > 0) { var root = this.rootComponents[this.rootComponents.length - 1]; this.removeComponent(root); } } this.rootComponents = []; } ,onPostStateSwitch: function() { if(flixel_FlxG.game == null) { return; } if(!flixel_FlxG.game._state.get_subStateOpened().has($bind(this,this.onMemberAdded))) { flixel_FlxG.game._state.get_subStateOpened().add($bind(this,this.onMemberAdded)); } if(!flixel_FlxG.game._state.get_memberAdded().has($bind(this,this.onMemberAdded))) { flixel_FlxG.game._state.get_memberAdded().add($bind(this,this.onMemberAdded)); } this.checkMembers(flixel_FlxG.game._state); if(!flixel_FlxG.game._state.get_memberRemoved().has($bind(this,this.onMemberRemoved))) { flixel_FlxG.game._state.get_memberRemoved().add($bind(this,this.onMemberRemoved)); } if(!flixel_FlxG.game._state.get_subStateClosed().has($bind(this,this.onMemberRemoved))) { flixel_FlxG.game._state.get_subStateClosed().add($bind(this,this.onMemberRemoved)); } } ,onMemberAdded: function(m) { if(((m) instanceof haxe_ui_core_Component)) { var c = js_Boot.__cast(m , haxe_ui_core_Component); if(this.rootComponents.indexOf(c) == -1) { this.addComponent(c); } } else if(((m) instanceof flixel_group_FlxTypedGroup)) { var group = m; this.checkMembers(group); } } ,onMemberRemoved: function(m) { if(((m) instanceof haxe_ui_core_Component) && this.rootComponents.indexOf(js_Boot.__cast(m , haxe_ui_core_Component)) != -1) { var isDisposed = (js_Boot.__cast(m , haxe_ui_core_Component))._isDisposed; this.removeComponent(m,isDisposed); } } ,checkMembers: function(state) { if(state == null || !state.exists) { return false; } var found = false; var _g = 0; var _g1 = state.members; while(_g < _g1.length) { var m = _g1[_g]; ++_g; if(((m) instanceof haxe_ui_core_Component)) { var c = js_Boot.__cast(m , haxe_ui_core_Component); if(this.rootComponents.indexOf(c) == -1) { this.addComponent(c); found = true; } } else if(((m) instanceof flixel_group_FlxTypedGroup)) { var group = m; group.get_memberAdded().addOnce($bind(this,this.onMemberAdded)); if(this.checkMembers(group) == true) { found = true; break; } } else if(((m) instanceof flixel_group_FlxTypedSpriteGroup)) { var spriteGroup = m; spriteGroup.group.get_memberAdded().addOnce($bind(this,this.onMemberAdded)); if(this.checkMembers(spriteGroup.group) == true) { found = true; break; } } } return found; } ,get_width: function() { return flixel_FlxG.width / haxe_ui_Toolkit.get_scaleX(); } ,get_height: function() { return flixel_FlxG.height / haxe_ui_Toolkit.get_scaleY(); } ,get_actualWidth: function() { return flixel_FlxG.width; } ,get_actualHeight: function() { return flixel_FlxG.height; } ,get_dpi: function() { return lime_system_System.getDisplay(0).dpi; } ,get_title: function() { return openfl_Lib.get_current().stage.window.__title; } ,set_title: function(s) { openfl_Lib.get_current().stage.window.set_title(s); return s; } ,_cursor: null ,setCursor: function(cursor,offsetX,offsetY) { if(!haxe_ui_backend_flixel_CursorHelper.useCustomCursors) { return; } if(this._cursor == cursor) { return; } this._cursor = cursor; if(haxe_ui_backend_flixel_CursorHelper.hasCursor(this._cursor)) { var cursorInfo = haxe_ui_backend_flixel_CursorHelper.registeredCursors.h[this._cursor]; flixel_FlxG.mouse.load(haxe_ui_backend_flixel_CursorHelper.mouseLoadFunction(cursorInfo.graphic),cursorInfo.scale,cursorInfo.offsetX,cursorInfo.offsetY); } else if(openfl_utils_Assets.exists(this._cursor)) { flixel_FlxG.mouse.load(haxe_ui_backend_flixel_CursorHelper.mouseLoadFunction(this._cursor),1,offsetX,offsetY); } else { flixel_FlxG.mouse.load(null); } } ,addComponent: function(component) { if(this.rootComponents.indexOf(component) != -1 && haxe_ui_backend_flixel_StateHelper.get_currentState().members.indexOf(component) != -1) { return component; } if(this.rootComponents.length > 0) { var cameras = haxe_ui_backend_flixel_StateHelper.findCameras(this.rootComponents[0]); if(cameras != null) { component.set_cameras(cameras); } } if(haxe_ui_backend_flixel_StateHelper.get_currentState().exists == true) { if(this.rootComponents.indexOf(component) == -1) { this.rootComponents.push(component); } haxe_ui_backend_flixel_StateHelper.get_currentState().add(component); component.set_state(haxe_ui_backend_flixel_StateHelper.get_currentState()); this.onContainerResize(); component.recursiveReady(); component.syncComponentValidation(); component.applyAddInternal(); this.checkResetCursor(); } return component; } ,removeComponent: function(component,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(this.rootComponents.indexOf(component) == -1) { if(dispose) { component.disposeComponent(); } return component; } HxOverrides.remove(this.rootComponents,component); if(this.rootComponents.indexOf(component) != -1) { throw haxe_Exception.thrown("component wasnt actually removed from array, or there is a duplicate in the array"); } if(dispose) { component.disposeComponent(); } else { component.applyRemoveInternal(); } if(haxe_ui_backend_flixel_StateHelper.get_currentState().exists == true) { haxe_ui_backend_flixel_StateHelper.get_currentState().remove(component,true); } this.checkResetCursor(); this.onContainerResize(); return component; } ,_resizeHandlerAdded: null ,addResizeHandler: function() { if(this._resizeHandlerAdded == true) { return; } this._resizeHandlerAdded = true; flixel_FlxG.signals.gameResized.add($bind(this,this.onGameResized)); } ,onGameResized: function(width,height) { this.onContainerResize(); } ,onContainerResize: function() { var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var c = _g1[_g]; ++_g; if(c.get_percentWidth() > 0) { c.set_width(this.get_width() * c.get_percentWidth() / 100); } if(c.get_percentHeight() > 0) { c.set_height(this.get_height() * c.get_percentHeight() / 100); } } } ,handleSetComponentIndex: function(child,index) { var offset = 0; var _g = 0; var _g1 = haxe_ui_backend_flixel_StateHelper.get_currentState().length; while(_g < _g1) { var i = _g++; if(((haxe_ui_backend_flixel_StateHelper.get_currentState().members[i]) instanceof haxe_ui_core_Component)) { offset = i; break; } } haxe_ui_backend_flixel_StateHelper.get_currentState().remove(child,true); haxe_ui_backend_flixel_StateHelper.get_currentState().insert(index + offset,child); } ,supportsEvent: function(type) { if(type == haxe_ui_events_MouseEvent.MOUSE_MOVE || type == haxe_ui_events_MouseEvent.MOUSE_OVER || type == haxe_ui_events_MouseEvent.MOUSE_OUT || type == haxe_ui_events_MouseEvent.MOUSE_DOWN || type == haxe_ui_events_MouseEvent.MOUSE_UP || type == haxe_ui_events_MouseEvent.MOUSE_WHEEL || type == haxe_ui_events_MouseEvent.CLICK || type == haxe_ui_events_MouseEvent.DBL_CLICK || type == haxe_ui_events_MouseEvent.RIGHT_CLICK || type == haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN || type == haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP || type == haxe_ui_events_MouseEvent.MIDDLE_CLICK || type == haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN || type == haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP || type == haxe_ui_events_UIEvent.RESIZE || type == haxe_ui_events_KeyboardEvent.KEY_DOWN || type == haxe_ui_events_KeyboardEvent.KEY_UP) { return true; } return false; } ,mapEvent: function(type,listener) { switch(type) { case haxe_ui_events_KeyboardEvent.KEY_DOWN:case haxe_ui_events_KeyboardEvent.KEY_UP: if(Object.prototype.hasOwnProperty.call(this._mapping.h,type) == false) { this._mapping.h[type] = listener; haxe_ui_backend_flixel_KeyboardHelper.notify(type,$bind(this,this.__onKeyEvent),10); } break; case haxe_ui_events_MouseEvent.CLICK:case haxe_ui_events_MouseEvent.DBL_CLICK:case haxe_ui_events_MouseEvent.MIDDLE_CLICK:case haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN:case haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP:case haxe_ui_events_MouseEvent.MOUSE_DOWN:case haxe_ui_events_MouseEvent.MOUSE_MOVE:case haxe_ui_events_MouseEvent.MOUSE_OUT:case haxe_ui_events_MouseEvent.MOUSE_OVER:case haxe_ui_events_MouseEvent.MOUSE_UP:case haxe_ui_events_MouseEvent.MOUSE_WHEEL:case haxe_ui_events_MouseEvent.RIGHT_CLICK:case haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN:case haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP: if(Object.prototype.hasOwnProperty.call(this._mapping.h,type) == false) { this._mapping.h[type] = listener; haxe_ui_backend_flixel_MouseHelper.notify(type,$bind(this,this.__onMouseEvent),10); } break; } } ,__onMouseEvent: function(event) { var fn = this._mapping.h[event.type]; if(fn != null) { fn(event); } } ,__onKeyEvent: function(event) { var fn = this._mapping.h[event.type]; if(fn != null) { fn(event); } } ,containsUnsolicitedMemberAt: function(x,y,state) { if(state == null || !state.exists) { return false; } var _g = 0; var _g1 = state.members; while(_g < _g1.length) { var m = _g1[_g]; ++_g; if(((m) instanceof haxe_ui_core_Component)) { var c = m; if(c.get_hidden()) { continue; } if(!c.hitTest(x,y,true)) { continue; } if(c._unsolicitedMembers != null && c._unsolicitedMembers.length > 0) { var _g2 = 0; var _g3 = c._unsolicitedMembers; while(_g2 < _g3.length) { var um = _g3[_g2]; ++_g2; var umx = um.sprite.x; var umy = um.sprite.y; var umw = um.sprite.get_width(); var umh = um.sprite.get_height(); if(x >= umx && y >= umy && x <= umx + umw && y <= umy + umh) { return true; } } } var spriteGroup = m; if(this.containsUnsolicitedMemberAt(x,y,spriteGroup.group) == true) { return true; } } else if(((m) instanceof flixel_group_FlxTypedSpriteGroup)) { var spriteGroup1 = m; if(!spriteGroup1.visible) { continue; } if(this.containsUnsolicitedMemberAt(x,y,spriteGroup1.group) == true) { return true; } } else if(((m) instanceof flixel_FlxSprite)) { var sprite = m; var umx1 = sprite.x; var umy1 = sprite.y; var umw1 = sprite.get_width(); var umh1 = sprite.get_height(); if(x >= umx1 && y >= umy1 && x <= umx1 + umw1 && y <= umy1 + umh1) { return true; } } } return false; } ,checkResetCursor: function(x,y) { if(x == null) { x = haxe_ui_backend_flixel_MouseHelper.currentWorldX; } if(y == null) { y = haxe_ui_backend_flixel_MouseHelper.currentWorldY; } var components = haxe_ui_core_Screen.get_instance().findComponentsUnderPoint(x,y); components.reverse(); var desiredCursor = "default"; var desiredCursorOffsetX = null; var desiredCursorOffsetY = null; var _g = 0; while(_g < components.length) { var c = components[_g]; ++_g; if(c.get_style() == null) { c.validateNow(); } if(c.get_style().cursor != null) { desiredCursor = c.get_style().cursor; desiredCursorOffsetX = c.get_style().cursorOffsetX; desiredCursorOffsetX = c.get_style().cursorOffsetY; break; } } this.setCursor(desiredCursor,desiredCursorOffsetX,desiredCursorOffsetY); } ,__class__: haxe_ui_backend_ScreenImpl }); var haxe_ui_backend_TextBase = function() { this._textHeight = 0; this._textWidth = 0; this._height = 0; this._width = 0; this._top = 0; this._left = 0; this._htmlText = null; this._inputData = new haxe_ui_core_TextInputData(); this._displayData = new haxe_ui_core_TextDisplayData(); }; $hxClasses["haxe.ui.backend.TextBase"] = haxe_ui_backend_TextBase; haxe_ui_backend_TextBase.__name__ = "haxe.ui.backend.TextBase"; haxe_ui_backend_TextBase.prototype = { parentComponent: null ,_displayData: null ,_inputData: null ,_text: null ,_htmlText: null ,_left: null ,_top: null ,_width: null ,_height: null ,_textWidth: null ,_textHeight: null ,_textStyle: null ,_fontInfo: null ,focus: function() { } ,blur: function() { } ,dispose: function() { if(this.parentComponent != null) { this.parentComponent = null; } } ,_dataSource: null ,get_dataSource: function() { return this._dataSource; } ,set_dataSource: function(value) { this._dataSource = value; return value; } ,supportsHtml: null ,get_supportsHtml: function() { return false; } ,get_caretIndex: function() { return 0; } ,set_caretIndex: function(value) { return value; } ,get_selectionStartIndex: function() { return 0; } ,set_selectionStartIndex: function(value) { return value; } ,get_selectionEndIndex: function() { return 0; } ,set_selectionEndIndex: function(value) { return value; } ,validateData: function() { } ,validateStyle: function() { return false; } ,validatePosition: function() { } ,validateDisplay: function() { } ,measureText: function() { } ,measureTextWidth: function() { var textDisplay = new haxe_ui_core_TextDisplay(); textDisplay._textStyle = this._textStyle; textDisplay._fontInfo = this._fontInfo; textDisplay.validateStyle(); textDisplay._text = this._text; textDisplay.validateData(); textDisplay.measureText(); return textDisplay._textWidth; } ,__class__: haxe_ui_backend_TextBase ,__properties__: {set_selectionEndIndex:"set_selectionEndIndex",get_selectionEndIndex:"get_selectionEndIndex",set_selectionStartIndex:"set_selectionStartIndex",get_selectionStartIndex:"get_selectionStartIndex",set_caretIndex:"set_caretIndex",get_caretIndex:"get_caretIndex",get_supportsHtml:"get_supportsHtml",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource"} }; var haxe_ui_backend_TextDisplayImpl = function() { haxe_ui_backend_TextBase.call(this); this.tf = new flixel_text_FlxText(); this.tf.set_pixelPerfectRender(true); this.tf.set_autoSize(true); this.tf.set_active(false); }; $hxClasses["haxe.ui.backend.TextDisplayImpl"] = haxe_ui_backend_TextDisplayImpl; haxe_ui_backend_TextDisplayImpl.__name__ = "haxe.ui.backend.TextDisplayImpl"; haxe_ui_backend_TextDisplayImpl.processTags = function(s,rules) { var inTag = false; var endTag = false; var tagDetails = ""; var out = ""; var tagStack = []; var colorMap_h = Object.create(null); var _g = 0; var _g1 = s.length; while(_g < _g1) { var i = _g++; var c = s.charAt(i); switch(c) { case "/": if(inTag == true) { endTag = true; } break; case "<": var temp = s.substring(i + 1,i + 6); if(temp == "font " || temp == "/font") { inTag = true; endTag = false; tagDetails = ""; } break; case ">": if(inTag == true) { if(endTag == false) { var n = tagDetails.indexOf("color="); if(n != -1) { var col = tagDetails.substring(n + "color=".length); col = StringTools.replace(col,"'",""); col = StringTools.replace(col,"\"",""); tagStack.push(col); out += "<" + col + ">"; colorMap_h["<" + col + ">"] = haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromString(col)); } else { tagStack.push(tagDetails); out += tagDetails; } } else { var startTagDetails = tagStack.pop(); out += "<" + startTagDetails + ">"; } inTag = false; } break; default: if(inTag == true) { tagDetails += c.toLowerCase(); } else { out += c; } } } var h = colorMap_h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; rules.push(new flixel_text_FlxTextFormatMarkerPair(new flixel_text_FlxTextFormat(colorMap_h[k]),k)); } return out; }; haxe_ui_backend_TextDisplayImpl.__super__ = haxe_ui_backend_TextBase; haxe_ui_backend_TextDisplayImpl.prototype = $extend(haxe_ui_backend_TextBase.prototype,{ tf: null ,validateData: function() { if(this._text != null) { if(this._dataSource == null) { this.tf.set_text(this.normalizeText(this._text)); } } else if(this._htmlText != null) { var rules = []; var outText = haxe_ui_backend_TextDisplayImpl.processTags(this._htmlText,rules); if(rules.length > 0) { this.tf.applyMarkup(outText,rules); } else { this.tf.set_text(this.normalizeText(this._htmlText)); } } } ,validateStyle: function() { var measureTextRequired = false; if(this._textStyle != null) { if(this._textStyle.textAlign != null) { this.tf.set_alignment(this._textStyle.textAlign); measureTextRequired = true; } if(this._textStyle.fontSize != null) { this.tf.set_size(this._textStyle.fontSize * haxe_ui_Toolkit.get_scale() | 0); measureTextRequired = true; } if(this._fontInfo != null) { this.tf.set_font(this._fontInfo.data); measureTextRequired = true; } if(this._textStyle.fontBold != null) { this.tf.set_bold(this._textStyle.fontBold); measureTextRequired = true; } if(this._textStyle.fontItalic != null) { this.tf.set_italic(this._textStyle.fontItalic); measureTextRequired = true; } if(this._textStyle.color != null) { this.tf.set_color(this._textStyle.color); } if(this.tf.textField.get_wordWrap() != this._displayData.wordWrap) { this.tf.set_wordWrap(this._displayData.wordWrap); measureTextRequired = true; } if(this.tf.textField.get_multiline() != this._displayData.multiline) { this.tf.textField.set_multiline(this._displayData.multiline); measureTextRequired = true; } } return measureTextRequired; } ,validateDisplay: function() { if(this.tf.textField.get_width() != this._width) { var width = this._width * haxe_ui_Toolkit.get_scaleX(); this.tf.textField.set_width(width >= 1 ? width : 1); } if(this.tf.textField.get_height() != this._height) { var height = this._height * haxe_ui_Toolkit.get_scaleY(); this.tf.textField.set_height(height >= 1 ? height : 1); } } ,measureText: function() { this._textWidth = (Math.round(this.tf.textField.get_textWidth()) + 2 * haxe_ui_Toolkit.get_scaleX()) / haxe_ui_Toolkit.get_scaleX(); this._textHeight = Math.round(this.tf.textField.get_textHeight()) / haxe_ui_Toolkit.get_scaleY(); if(this._textHeight == 0) { var tmpText = this.tf.text; this.tf.set_text("|"); this._textHeight = this.tf.textField.get_textHeight(); this.tf.set_text(tmpText); } } ,normalizeText: function(text) { text = StringTools.replace(text,"\\n","\n"); return text; } ,get_supportsHtml: function() { return true; } ,__class__: haxe_ui_backend_TextDisplayImpl }); var haxe_ui_backend_TimerImpl = function(delay,callback) { this._callback = callback; this._delay = delay; this._start = new Date().getTime() / 1000 + delay / 1000; haxe_ui_backend_TimerImpl.__timers.push(this); if(haxe_ui_backend_TimerImpl.__timers.length == 1) { openfl_Lib.get_current().stage.addEventListener("enterFrame",haxe_ui_backend_TimerImpl.update); } }; $hxClasses["haxe.ui.backend.TimerImpl"] = haxe_ui_backend_TimerImpl; haxe_ui_backend_TimerImpl.__name__ = "haxe.ui.backend.TimerImpl"; haxe_ui_backend_TimerImpl.update = function(e) { var currentTime = new Date().getTime() / 1000; var count = haxe_ui_backend_TimerImpl.__timers.length; var _g = 0; var _g1 = count; while(_g < _g1) { var i = _g++; var timer = haxe_ui_backend_TimerImpl.__timers[i]; if(timer._start <= currentTime && !timer._stopped) { timer._start = currentTime + timer._delay / 1000; timer._callback(); } } while(--count >= 0) { var timer = haxe_ui_backend_TimerImpl.__timers[count]; if(timer._stopped) { timer._callback = null; HxOverrides.remove(haxe_ui_backend_TimerImpl.__timers,timer); } } if(haxe_ui_backend_TimerImpl.__timers.length == 0) { openfl_Lib.get_current().stage.removeEventListener("enterFrame",haxe_ui_backend_TimerImpl.update); } }; haxe_ui_backend_TimerImpl.prototype = { _callback: null ,_start: null ,_stopped: null ,_delay: null ,stop: function() { this._stopped = true; } ,__class__: haxe_ui_backend_TimerImpl }; var haxe_ui_backend_flixel_CursorHelper = function() { }; $hxClasses["haxe.ui.backend.flixel.CursorHelper"] = haxe_ui_backend_flixel_CursorHelper; haxe_ui_backend_flixel_CursorHelper.__name__ = "haxe.ui.backend.flixel.CursorHelper"; haxe_ui_backend_flixel_CursorHelper.__properties__ = {set_mouseLoadFunction:"set_mouseLoadFunction"}; haxe_ui_backend_flixel_CursorHelper.mouseLoadFunction = function(bmd) { return openfl_utils_Assets.getBitmapData(bmd); }; haxe_ui_backend_flixel_CursorHelper.set_mouseLoadFunction = function(v) { if(v == null) { return haxe_ui_backend_flixel_CursorHelper.mouseLoadFunction; } return haxe_ui_backend_flixel_CursorHelper.mouseLoadFunction = v; }; haxe_ui_backend_flixel_CursorHelper.registerCursor = function(name,graphic,scale,offsetX,offsetY) { if(offsetY == null) { offsetY = 0; } if(offsetX == null) { offsetX = 0; } if(scale == null) { scale = 1; } haxe_ui_backend_flixel_CursorHelper.registeredCursors.h[name] = { name : name, graphic : graphic, scale : scale, offsetX : offsetX, offsetY : offsetY}; }; haxe_ui_backend_flixel_CursorHelper.hasCursor = function(name) { if(!haxe_ui_backend_flixel_CursorHelper.useCustomCursors) { return false; } haxe_ui_backend_flixel_CursorHelper.preregisterCursors(); return Object.prototype.hasOwnProperty.call(haxe_ui_backend_flixel_CursorHelper.registeredCursors.h,name); }; haxe_ui_backend_flixel_CursorHelper.preregisterCursors = function() { if(haxe_ui_backend_flixel_CursorHelper._cursorsPreregistered) { return; } haxe_ui_backend_flixel_CursorHelper._cursorsPreregistered = true; if(!Object.prototype.hasOwnProperty.call(haxe_ui_backend_flixel_CursorHelper.registeredCursors.h,"pointer")) { haxe_ui_backend_flixel_CursorHelper.registerCursor("pointer","haxeui-flixel/styles/default/cursors/pointer.png",1,-10,-1); } }; var haxe_ui_backend_flixel_FlxStyleHelper = function() { }; $hxClasses["haxe.ui.backend.flixel.FlxStyleHelper"] = haxe_ui_backend_flixel_FlxStyleHelper; haxe_ui_backend_flixel_FlxStyleHelper.__name__ = "haxe.ui.backend.flixel.FlxStyleHelper"; haxe_ui_backend_flixel_FlxStyleHelper.applyStyle = function(sprite,style) { if(sprite == null || sprite.get_pixels() == null) { return false; } var pixels = sprite.get_pixels(); var left = 0; var top = 0; var width = sprite.frameWidth; var height = sprite.frameHeight; if(width <= 0 || height <= 0) { return false; } var rc = new openfl_geom_Rectangle(top,left,width,height); pixels.fillRect(rc,0); var useOpenFLDrawing = false; if(width > 1 && height > 1 && style.backgroundImage == null) { if(style.borderRadius != null && style.borderRadius > 0 || style.borderRadiusTopLeft != null && style.borderRadiusTopLeft > 0 || style.borderRadiusTopRight != null && style.borderRadiusTopRight > 0 || style.borderRadiusBottomLeft != null && style.borderRadiusBottomLeft > 0 || style.borderRadiusBottomRight != null && style.borderRadiusBottomRight > 0) { useOpenFLDrawing = true; } } if(useOpenFLDrawing) { var g = flixel_util_FlxSpriteUtil.flashGfx; var painted = haxe_ui_backend_flixel_OpenFLStyleHelper.paintStyleSection(g,style,width,height,left,top); flixel_util_FlxSpriteUtil.updateSpriteGraphic(sprite); return painted; } var painted = false; if(style.borderLeftSize != null && style.borderLeftSize != 0 && style.borderLeftSize == style.borderRightSize && style.borderLeftSize == style.borderBottomSize && style.borderLeftSize == style.borderTopSize && style.borderLeftColor != null && style.borderLeftColor == style.borderRightColor && style.borderLeftColor == style.borderBottomColor && style.borderLeftColor == style.borderTopColor) { var borderSize = style.borderLeftSize * haxe_ui_Toolkit.get_scale(); var opacity = style.borderOpacity == null ? 1 : style.borderOpacity; var color = (opacity * 255 | 0) << 24 | style.borderLeftColor; pixels.fillRect(new openfl_geom_Rectangle(rc.get_left(),rc.get_top(),rc.width,borderSize),color); pixels.fillRect(new openfl_geom_Rectangle(rc.get_right() - borderSize,rc.get_top() + borderSize,borderSize,rc.height - borderSize * 2),color); pixels.fillRect(new openfl_geom_Rectangle(rc.get_left(),rc.height - borderSize,rc.width,borderSize),color); pixels.fillRect(new openfl_geom_Rectangle(rc.get_left(),rc.get_top() + borderSize,borderSize,rc.height - borderSize * 2),color); rc.inflate(-borderSize,-borderSize); painted = true; } else { var org = rc.clone(); var borderTopSize = 0; if(style.borderTopSize != null && style.borderTopSize > 0) { borderTopSize = style.borderTopSize * haxe_ui_Toolkit.get_scale(); } var borderLeftSize = 0; if(style.borderLeftSize != null && style.borderLeftSize > 0) { borderLeftSize = style.borderLeftSize * haxe_ui_Toolkit.get_scale(); } var borderRightSize = 0; if(style.borderRightSize != null && style.borderRightSize > 0) { borderRightSize = style.borderRightSize * haxe_ui_Toolkit.get_scale(); } if(style.borderTopSize != null && style.borderTopSize > 0) { var borderSize = style.borderTopSize * haxe_ui_Toolkit.get_scale(); var opacity = style.borderOpacity == null ? 1 : style.borderOpacity; var color = (opacity * 255 | 0) << 24 | style.borderTopColor; pixels.fillRect(new openfl_geom_Rectangle(rc.get_left() + borderLeftSize,rc.get_top(),org.width - (borderLeftSize + borderRightSize),borderSize),color); rc.set_top(rc.get_top() + borderSize); if(opacity > 0) { painted = true; } } if(style.borderBottomSize != null && style.borderBottomSize > 0) { var borderSize = style.borderBottomSize * haxe_ui_Toolkit.get_scale(); var opacity = style.borderOpacity == null ? 1 : style.borderOpacity; var color = (opacity * 255 | 0) << 24 | style.borderBottomColor; pixels.fillRect(new openfl_geom_Rectangle(rc.get_left(),org.height - borderSize,rc.width,borderSize),color); rc.set_bottom(rc.get_bottom() - borderSize); if(opacity > 0) { painted = true; } } if(style.borderLeftSize != null && style.borderLeftSize > 0) { var borderSize = style.borderLeftSize * haxe_ui_Toolkit.get_scale(); var opacity = style.borderOpacity == null ? 1 : style.borderOpacity; var color = (opacity * 255 | 0) << 24 | style.borderLeftColor; pixels.fillRect(new openfl_geom_Rectangle(rc.get_left(),rc.get_top() - borderTopSize,borderSize,org.height - rc.get_top() + borderTopSize),color); rc.set_left(rc.get_left() + borderSize); if(opacity > 0) { painted = true; } } if(style.borderRightSize != null && style.borderRightSize > 0) { var borderSize = style.borderRightSize * haxe_ui_Toolkit.get_scale(); var opacity = style.borderOpacity == null ? 1 : style.borderOpacity; var color = (opacity * 255 | 0) << 24 | style.borderRightColor; pixels.fillRect(new openfl_geom_Rectangle(org.width - borderSize,rc.get_top() - borderTopSize,borderSize,org.height + borderTopSize),color); rc.set_right(rc.get_right() - borderSize); if(opacity > 0) { painted = true; } } } if(style.backgroundColor != null) { var opacity = style.backgroundOpacity == null ? 1 : style.backgroundOpacity; if(style.backgroundColorEnd != null && style.backgroundColor != style.backgroundColorEnd) { var gradientType = "vertical"; if(style.backgroundGradientStyle != null) { gradientType = style.backgroundGradientStyle; } var arr = null; var n = 0; var rcLine = new openfl_geom_Rectangle(); if(gradientType == "vertical") { arr = haxe_ui_util_ColorUtil.buildColorArray(style.backgroundColor,style.backgroundColorEnd,rc.height | 0); var _g = 0; while(_g < arr.length) { var c = arr[_g]; ++_g; rcLine.setTo(rc.get_left(),rc.get_top() + n,rc.width,1); pixels.fillRect(rcLine,(opacity * 255 | 0) << 24 | c); ++n; } if(opacity > 0 && n > 0) { painted = true; } } else if(gradientType == "horizontal") { arr = haxe_ui_util_ColorUtil.buildColorArray(style.backgroundColor,style.backgroundColorEnd,rc.width | 0); var _g = 0; while(_g < arr.length) { var c = arr[_g]; ++_g; rcLine.setTo(rc.get_left() + n,rc.get_top(),1,rc.height); pixels.fillRect(rcLine,(opacity * 255 | 0) << 24 | c); ++n; } if(opacity > 0 && n > 0) { painted = true; } } } else { var color = (opacity * 255 | 0) << 24 | style.backgroundColor; pixels.fillRect(rc,color); if(opacity > 0) { painted = true; } } } if(style.backgroundImage != null) { haxe_ui_Toolkit.get_assets().getImage(haxe_ui_util_Variant.toString(style.backgroundImage),function(info) { if(info != null && info.data != null) { haxe_ui_backend_flixel_FlxStyleHelper.paintBackroundImage(sprite,info.data,style); painted = true; } }); } return painted; }; haxe_ui_backend_flixel_FlxStyleHelper.paintBackroundImage = function(sprite,data,style) { var bmd = data.parent.bitmap; var _this = data.frame; var FlashRect = null; if(FlashRect == null) { FlashRect = new openfl_geom_Rectangle(); } FlashRect.x = _this.x; FlashRect.y = _this.y; FlashRect.width = _this.width; FlashRect.height = _this.height; var rect = FlashRect; if(!bmd.rect.equals(rect) && (data.angle != 0 || data.flipX || data.flipY)) { bmd = data.paintRotatedAndFlipped(); rect.setTo(0,0,data.sourceSize.x,data.sourceSize.y); } if(style.backgroundImageClipTop != null && style.backgroundImageClipBottom != null && style.backgroundImageClipLeft != null && style.backgroundImageClipRight != null) { rect.x += style.backgroundImageClipLeft; rect.y += style.backgroundImageClipTop; rect.width = Math.min(rect.width,style.backgroundImageClipRight - style.backgroundImageClipLeft); rect.height = Math.min(rect.height,style.backgroundImageClipBottom - style.backgroundImageClipTop); } var slice = null; if(style.backgroundImageSliceTop != null && style.backgroundImageSliceBottom != null && style.backgroundImageSliceLeft != null && style.backgroundImageSliceRight != null) { slice = new haxe_ui_geom_Rectangle(style.backgroundImageSliceLeft,style.backgroundImageSliceTop,style.backgroundImageSliceRight - style.backgroundImageSliceLeft,style.backgroundImageSliceBottom - style.backgroundImageSliceTop); } if(slice == null) { var matrix = null; if(style.backgroundImageRepeat == "stretch") { matrix = new openfl_geom_Matrix(); matrix.translate(-rect.x,-rect.y); matrix.scale(sprite.frameWidth / rect.width,sprite.frameHeight / rect.height); } if(matrix == null) { var blitPt = new openfl_geom_Point(); if(style.backgroundImageRepeat == null) { sprite.get_pixels().copyPixels(bmd,rect,blitPt); } else if(style.backgroundImageRepeat == "repeat") { var repX = Math.ceil(sprite.frameWidth / rect.width); var repY = Math.ceil(sprite.frameHeight / rect.height); var _g = 0; var _g1 = repX; while(_g < _g1) { var i = _g++; blitPt.x = i * rect.width; var _g2 = 0; var _g3 = repY; while(_g2 < _g3) { var j = _g2++; blitPt.y = j * rect.height; sprite.get_pixels().copyPixels(bmd,rect,blitPt); } } } } else { sprite.get_pixels().draw(bmd,matrix,null,null,null); } sprite.dirty = true; } else { var rects = haxe_ui_geom_Slice9.buildRects(sprite.frameWidth,sprite.frameHeight,rect.width,rect.height,slice); var src = null; var _g = 0; var _g1 = rects.src.length; while(_g < _g1) { var i = _g++; src = rects.src[i]; src.left += rect.x; src.top += rect.y; } var srcOpenFL = new openfl_geom_Rectangle(); var dstOpenFL = new openfl_geom_Rectangle(); var dstPt = new openfl_geom_Point(); var mat = new openfl_geom_Matrix(); var pixels = sprite.get_pixels(); pixels.copyPixels(bmd,haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(srcOpenFL,rects.src[0]),haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[0]).get_topLeft(),null,null,true); pixels.copyPixels(bmd,haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(srcOpenFL,rects.src[2]),haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[2]).get_topLeft(),null,null,true); pixels.copyPixels(bmd,haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(srcOpenFL,rects.src[6]),haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[6]).get_topLeft(),null,null,true); pixels.copyPixels(bmd,haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(srcOpenFL,rects.src[8]),haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[8]).get_topLeft(),null,null,true); var tl = rects.src[0]; var center = rects.src[4]; var br = rects.src[8]; var scaleH = rects.dst[4].width / center.width; var scaleV = rects.dst[4].height / center.height; haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[1]); mat.translate(tl.width * (1 / scaleH - 1) - rect.x,-rect.y); mat.scale(scaleH,1); pixels.draw(bmd,mat,null,null,dstOpenFL); mat.identity(); haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[3]); mat.translate(-rect.x,tl.height * (1 / scaleV - 1) - rect.y); mat.scale(1,scaleV); pixels.draw(bmd,mat,null,null,dstOpenFL); mat.identity(); haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[4]); mat.translate(tl.width * (1 / scaleH - 1) - rect.x,tl.height * (1 / scaleV - 1) - rect.y); mat.scale(scaleH,scaleV); pixels.draw(bmd,mat,null,null,dstOpenFL); mat.identity(); haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[5]); mat.translate(sprite.frameWidth - rect.width - rect.x,tl.height * (1 / scaleV - 1) - rect.y); mat.scale(1,scaleV); pixels.draw(bmd,mat,null,null,dstOpenFL); mat.identity(); haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect(dstOpenFL,rects.dst[7]); mat.translate(tl.width * (1 / scaleH - 1) - rect.x,sprite.frameHeight - rect.height - rect.y); mat.scale(scaleH,1); pixels.draw(bmd,mat,null,null,dstOpenFL); } }; haxe_ui_backend_flixel_FlxStyleHelper.setOpenFLRect = function(oflRect,uiRect) { oflRect.setTo(uiRect.left,uiRect.top,uiRect.width,uiRect.height); return oflRect; }; var haxe_ui_backend_flixel_KeyboardCallback = function(fn,priority) { this.fn = fn; this.priority = priority; }; $hxClasses["haxe.ui.backend.flixel.KeyboardCallback"] = haxe_ui_backend_flixel_KeyboardCallback; haxe_ui_backend_flixel_KeyboardCallback.__name__ = "haxe.ui.backend.flixel.KeyboardCallback"; haxe_ui_backend_flixel_KeyboardCallback.prototype = { fn: null ,priority: null ,__class__: haxe_ui_backend_flixel_KeyboardCallback }; var haxe_ui_backend_flixel_KeyboardHelper = function() { }; $hxClasses["haxe.ui.backend.flixel.KeyboardHelper"] = haxe_ui_backend_flixel_KeyboardHelper; haxe_ui_backend_flixel_KeyboardHelper.__name__ = "haxe.ui.backend.flixel.KeyboardHelper"; haxe_ui_backend_flixel_KeyboardHelper.init = function() { if(haxe_ui_backend_flixel_KeyboardHelper._initialized == true) { return; } haxe_ui_backend_flixel_KeyboardHelper._initialized = true; openfl_Lib.get_current().stage.addEventListener("keyDown",haxe_ui_backend_flixel_KeyboardHelper.onKeyDown); openfl_Lib.get_current().stage.addEventListener("keyUp",haxe_ui_backend_flixel_KeyboardHelper.onKeyUp); }; haxe_ui_backend_flixel_KeyboardHelper.notify = function(event,callback,priority) { if(priority == null) { priority = 5; } var list = haxe_ui_backend_flixel_KeyboardHelper._callbacks.h[event]; if(list == null) { list = []; haxe_ui_backend_flixel_KeyboardHelper._callbacks.h[event] = list; } if(!haxe_ui_backend_flixel_KeyboardHelper.hasCallback(list,callback)) { var x = new haxe_ui_backend_flixel_KeyboardCallback(callback,priority); list.splice(0,0,x); list.sort(function(a,b) { return a.priority - b.priority; }); } }; haxe_ui_backend_flixel_KeyboardHelper.remove = function(event,callback) { var list = haxe_ui_backend_flixel_KeyboardHelper._callbacks.h[event]; if(list != null) { haxe_ui_backend_flixel_KeyboardHelper.removeCallback(list,callback); if(list.length == 0) { var _this = haxe_ui_backend_flixel_KeyboardHelper._callbacks; if(Object.prototype.hasOwnProperty.call(_this.h,event)) { delete(_this.h[event]); } } } }; haxe_ui_backend_flixel_KeyboardHelper.onKeyDown = function(e) { haxe_ui_backend_flixel_KeyboardHelper.dispatchEvent(haxe_ui_events_KeyboardEvent.KEY_DOWN,e); }; haxe_ui_backend_flixel_KeyboardHelper.onKeyUp = function(e) { haxe_ui_backend_flixel_KeyboardHelper.dispatchEvent(haxe_ui_events_KeyboardEvent.KEY_UP,e); }; haxe_ui_backend_flixel_KeyboardHelper.dispatchEvent = function(type,e) { var event = new haxe_ui_events_KeyboardEvent(type); event.keyCode = e.keyCode; event.altKey = e.altKey; event.ctrlKey = e.ctrlKey; event.shiftKey = e.shiftKey; var target = haxe_ui_backend_flixel_KeyboardHelper.getTarget(); while(target != null) { if(target.hasEvent(event.type)) { target.dispatch(event); if(event.canceled == true) { return; } } target = target.get_parentComponent(); } var list = haxe_ui_backend_flixel_KeyboardHelper._callbacks.h[type]; if(list == null || list.length == 0) { return; } list = list.slice(); var _g = 0; while(_g < list.length) { var l = list[_g]; ++_g; l.fn(event); if(event.canceled == true) { break; } } }; haxe_ui_backend_flixel_KeyboardHelper.getTarget = function() { var target = haxe_ui_focus_FocusManager.get_instance().get_focus(); if(target != null && target.get_state() == haxe_ui_backend_flixel_StateHelper.get_currentState()) { return target; } return null; }; haxe_ui_backend_flixel_KeyboardHelper.hasCallback = function(list,fn) { var has = false; var _g = 0; while(_g < list.length) { var item = list[_g]; ++_g; if(item.fn == fn) { has = true; break; } } return has; }; haxe_ui_backend_flixel_KeyboardHelper.removeCallback = function(list,fn) { var itemToRemove = null; var _g = 0; while(_g < list.length) { var item = list[_g]; ++_g; if(item.fn == fn) { itemToRemove = item; break; } } if(itemToRemove != null) { HxOverrides.remove(list,itemToRemove); } }; var haxe_ui_backend_flixel_MouseCallback = function(fn,priority) { this.fn = fn; this.priority = priority; }; $hxClasses["haxe.ui.backend.flixel.MouseCallback"] = haxe_ui_backend_flixel_MouseCallback; haxe_ui_backend_flixel_MouseCallback.__name__ = "haxe.ui.backend.flixel.MouseCallback"; haxe_ui_backend_flixel_MouseCallback.prototype = { fn: null ,priority: null ,__class__: haxe_ui_backend_flixel_MouseCallback }; var haxe_ui_backend_flixel_MouseHelper = function() { }; $hxClasses["haxe.ui.backend.flixel.MouseHelper"] = haxe_ui_backend_flixel_MouseHelper; haxe_ui_backend_flixel_MouseHelper.__name__ = "haxe.ui.backend.flixel.MouseHelper"; haxe_ui_backend_flixel_MouseHelper._mouseDownLeft = null; haxe_ui_backend_flixel_MouseHelper._mouseDownMiddle = null; haxe_ui_backend_flixel_MouseHelper._mouseDownRight = null; haxe_ui_backend_flixel_MouseHelper._lastClickTarget = null; haxe_ui_backend_flixel_MouseHelper._lastClickTime = null; haxe_ui_backend_flixel_MouseHelper._mouseOverTarget = null; haxe_ui_backend_flixel_MouseHelper.init = function() { if(haxe_ui_backend_flixel_MouseHelper._initialized == true) { return; } haxe_ui_backend_flixel_MouseHelper._initialized = true; openfl_Lib.get_current().stage.addEventListener("mouseDown",haxe_ui_backend_flixel_MouseHelper.onMouseDown); openfl_Lib.get_current().stage.addEventListener("rightMouseDown",haxe_ui_backend_flixel_MouseHelper.onMouseDown); openfl_Lib.get_current().stage.addEventListener("middleMouseDown",haxe_ui_backend_flixel_MouseHelper.onMouseDown); openfl_Lib.get_current().stage.addEventListener("mouseUp",haxe_ui_backend_flixel_MouseHelper.onMouseUp); openfl_Lib.get_current().stage.addEventListener("rightMouseUp",haxe_ui_backend_flixel_MouseHelper.onMouseUp); openfl_Lib.get_current().stage.addEventListener("middleMouseUp",haxe_ui_backend_flixel_MouseHelper.onMouseUp); openfl_Lib.get_current().stage.addEventListener("mouseMove",haxe_ui_backend_flixel_MouseHelper.onMouseMove); openfl_Lib.get_current().stage.addEventListener("mouseWheel",haxe_ui_backend_flixel_MouseHelper.onMouseWheel); flixel_FlxG.signals.preStateSwitch.add(haxe_ui_backend_flixel_MouseHelper.onPreStateSwitched); }; haxe_ui_backend_flixel_MouseHelper.notify = function(event,callback,priority) { if(priority == null) { priority = 5; } var list = haxe_ui_backend_flixel_MouseHelper._callbacks.h[event]; if(list == null) { list = []; haxe_ui_backend_flixel_MouseHelper._callbacks.h[event] = list; } if(!haxe_ui_backend_flixel_MouseHelper.hasCallback(list,callback)) { var x = new haxe_ui_backend_flixel_MouseCallback(callback,priority); list.splice(0,0,x); list.sort(function(a,b) { return a.priority - b.priority; }); } }; haxe_ui_backend_flixel_MouseHelper.remove = function(event,callback) { var list = haxe_ui_backend_flixel_MouseHelper._callbacks.h[event]; if(list != null) { haxe_ui_backend_flixel_MouseHelper.removeCallback(list,callback); if(list.length == 0) { var _this = haxe_ui_backend_flixel_MouseHelper._callbacks; if(Object.prototype.hasOwnProperty.call(_this.h,event)) { delete(_this.h[event]); } } } }; haxe_ui_backend_flixel_MouseHelper.onPreStateSwitched = function() { haxe_ui_backend_flixel_MouseHelper.onMouse(haxe_ui_events_MouseEvent.MOUSE_UP,haxe_ui_backend_flixel_MouseHelper.currentMouseX,haxe_ui_backend_flixel_MouseHelper.currentMouseY); haxe_ui_backend_flixel_MouseHelper.onMouse(haxe_ui_events_MouseEvent.MOUSE_MOVE,haxe_ui_backend_flixel_MouseHelper.currentMouseX,haxe_ui_backend_flixel_MouseHelper.currentMouseY); }; haxe_ui_backend_flixel_MouseHelper.onMouseDown = function(e) { var type; switch(e.type) { case "middleMouseDown": type = haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN; break; case "rightMouseDown": type = haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN; break; default: type = haxe_ui_events_MouseEvent.MOUSE_DOWN; } haxe_ui_backend_flixel_MouseHelper.onMouse(type,e.stageX,e.stageY,e.buttonDown,e.ctrlKey,e.shiftKey); }; haxe_ui_backend_flixel_MouseHelper.onMouseUp = function(e) { var type; switch(e.type) { case "middleMouseUp": type = haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP; break; case "rightMouseUp": type = haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP; break; default: type = haxe_ui_events_MouseEvent.MOUSE_UP; } haxe_ui_backend_flixel_MouseHelper.onMouse(type,e.stageX,e.stageY,e.buttonDown,e.ctrlKey,e.shiftKey); }; haxe_ui_backend_flixel_MouseHelper.onMouseMove = function(e) { haxe_ui_backend_flixel_MouseHelper.onMouse(haxe_ui_events_MouseEvent.MOUSE_MOVE,e.stageX,e.stageY,e.buttonDown,e.ctrlKey,e.shiftKey); }; haxe_ui_backend_flixel_MouseHelper.onMouseWheel = function(e) { var event = haxe_ui_backend_flixel_MouseHelper.createEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,e.buttonDown,e.ctrlKey,e.shiftKey); event.delta = Math.max(-1,Math.min(1,e.delta)); var target = haxe_ui_backend_flixel_MouseHelper.getTarget(haxe_ui_backend_flixel_MouseHelper.currentWorldX,haxe_ui_backend_flixel_MouseHelper.currentWorldY); haxe_ui_backend_flixel_MouseHelper.dispatchEvent(event,target); }; haxe_ui_backend_flixel_MouseHelper.onMouse = function(type,x,y,buttonDown,ctrlKey,shiftKey) { if(shiftKey == null) { shiftKey = false; } if(ctrlKey == null) { ctrlKey = false; } if(buttonDown == null) { buttonDown = false; } if(haxe_ui_backend_flixel_MouseHelper.currentMouseX != x) { haxe_ui_backend_flixel_MouseHelper.currentMouseX = x; haxe_ui_backend_flixel_MouseHelper.currentWorldX = (haxe_ui_backend_flixel_MouseHelper.currentMouseX - flixel_FlxG.scaleMode.offset.x) / (flixel_FlxG.scaleMode.scale.x * 1) / haxe_ui_Toolkit.get_scaleX(); } if(haxe_ui_backend_flixel_MouseHelper.currentMouseY != y) { haxe_ui_backend_flixel_MouseHelper.currentMouseY = y; haxe_ui_backend_flixel_MouseHelper.currentWorldY = (haxe_ui_backend_flixel_MouseHelper.currentMouseY - flixel_FlxG.scaleMode.offset.y) / (flixel_FlxG.scaleMode.scale.y * 1) / haxe_ui_Toolkit.get_scaleY(); } var target = haxe_ui_backend_flixel_MouseHelper.getTarget(haxe_ui_backend_flixel_MouseHelper.currentWorldX,haxe_ui_backend_flixel_MouseHelper.currentWorldY); if(target != haxe_ui_backend_flixel_MouseHelper._mouseOverTarget) { haxe_ui_core_Screen.get_instance().checkResetCursor(); if(haxe_ui_backend_flixel_MouseHelper._mouseOverTarget != null) { haxe_ui_backend_flixel_MouseHelper.dispatchEventType(haxe_ui_events_MouseEvent.MOUSE_OUT,buttonDown,ctrlKey,shiftKey,haxe_ui_backend_flixel_MouseHelper._mouseOverTarget); } haxe_ui_backend_flixel_MouseHelper.dispatchEventType(haxe_ui_events_MouseEvent.MOUSE_OVER,buttonDown,ctrlKey,shiftKey,target); haxe_ui_backend_flixel_MouseHelper._mouseOverTarget = target; } var clickType = null; switch(type) { case haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN: haxe_ui_backend_flixel_MouseHelper._mouseDownMiddle = target; break; case haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP: if(haxe_ui_backend_flixel_MouseHelper._mouseDownMiddle == target) { clickType = haxe_ui_events_MouseEvent.MIDDLE_CLICK; } haxe_ui_backend_flixel_MouseHelper._mouseDownMiddle = null; break; case haxe_ui_events_MouseEvent.MOUSE_DOWN: haxe_ui_backend_flixel_MouseHelper._mouseDownLeft = target; break; case haxe_ui_events_MouseEvent.MOUSE_UP: if(haxe_ui_backend_flixel_MouseHelper._mouseDownLeft == target) { clickType = haxe_ui_events_MouseEvent.CLICK; } haxe_ui_backend_flixel_MouseHelper._mouseDownLeft = null; break; case haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN: haxe_ui_backend_flixel_MouseHelper._mouseDownRight = target; break; case haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP: if(haxe_ui_backend_flixel_MouseHelper._mouseDownRight == target) { clickType = haxe_ui_events_MouseEvent.RIGHT_CLICK; } haxe_ui_backend_flixel_MouseHelper._mouseDownRight = null; break; } haxe_ui_backend_flixel_MouseHelper.dispatchEventType(type,buttonDown,ctrlKey,shiftKey,target); if(clickType != null) { haxe_ui_backend_flixel_MouseHelper.dispatchEventType(clickType,buttonDown,ctrlKey,shiftKey,target); if(type == haxe_ui_events_MouseEvent.MOUSE_UP) { var currentTime = new Date().getTime() / 1000; if(currentTime - haxe_ui_backend_flixel_MouseHelper._lastClickTime < 0.5 && target == haxe_ui_backend_flixel_MouseHelper._lastClickTarget) { haxe_ui_backend_flixel_MouseHelper.dispatchEventType(haxe_ui_events_MouseEvent.DBL_CLICK,buttonDown,ctrlKey,shiftKey,target); haxe_ui_backend_flixel_MouseHelper._lastClickTime = 0; haxe_ui_backend_flixel_MouseHelper._lastClickTarget = null; } else { haxe_ui_backend_flixel_MouseHelper._lastClickTarget = target; haxe_ui_backend_flixel_MouseHelper._lastClickTime = currentTime; } } } }; haxe_ui_backend_flixel_MouseHelper.dispatchEventType = function(type,buttonDown,ctrlKey,shiftKey,target) { var event = haxe_ui_backend_flixel_MouseHelper.createEvent(type,buttonDown,ctrlKey,shiftKey); haxe_ui_backend_flixel_MouseHelper.dispatchEvent(event,target); }; haxe_ui_backend_flixel_MouseHelper.dispatchEvent = function(event,target) { if(((target) instanceof haxe_ui_core_Component)) { var c = target; while(c != null) { if(c.hasEvent(event.type)) { c.dispatch(event); if(event.canceled == true) { return; } } c = c.get_parentComponent(); } } var list = haxe_ui_backend_flixel_MouseHelper._callbacks.h[event.type]; if(list == null || list.length == 0) { return; } list = list.slice(); var _g = 0; while(_g < list.length) { var l = list[_g]; ++_g; l.fn(event); if(event.canceled == true) { break; } } }; haxe_ui_backend_flixel_MouseHelper.createEvent = function(type,buttonDown,ctrlKey,shiftKey) { var event = new haxe_ui_events_MouseEvent(type); event.screenX = haxe_ui_backend_flixel_MouseHelper.currentWorldX; event.screenY = haxe_ui_backend_flixel_MouseHelper.currentWorldY; event.buttonDown = buttonDown; event.touchEvent = haxe_ui_core_Platform.get_instance().get_isMobile(); event.ctrlKey = ctrlKey; event.shiftKey = shiftKey; return event; }; haxe_ui_backend_flixel_MouseHelper.getTarget = function(x,y) { var components = haxe_ui_core_Screen.get_instance().findComponentsUnderPoint(x,y); components.reverse(); var _g = 0; while(_g < components.length) { var c = components[_g]; ++_g; if(c.get_state() == haxe_ui_backend_flixel_StateHelper.get_currentState()) { return c; } } return haxe_ui_core_Screen.get_instance(); }; haxe_ui_backend_flixel_MouseHelper.initialZoom = function() { return 1; }; haxe_ui_backend_flixel_MouseHelper.hasCallback = function(list,fn) { var has = false; var _g = 0; while(_g < list.length) { var item = list[_g]; ++_g; if(item.fn == fn) { has = true; break; } } return has; }; haxe_ui_backend_flixel_MouseHelper.removeCallback = function(list,fn) { var itemToRemove = null; var _g = 0; while(_g < list.length) { var item = list[_g]; ++_g; if(item.fn == fn) { itemToRemove = item; break; } } if(itemToRemove != null) { HxOverrides.remove(list,itemToRemove); } }; var haxe_ui_backend_flixel_OpenFLStyleHelper = function() { }; $hxClasses["haxe.ui.backend.flixel.OpenFLStyleHelper"] = haxe_ui_backend_flixel_OpenFLStyleHelper; haxe_ui_backend_flixel_OpenFLStyleHelper.__name__ = "haxe.ui.backend.flixel.OpenFLStyleHelper"; haxe_ui_backend_flixel_OpenFLStyleHelper.paintStyleSection = function(graphics,style,width,height,left,top,clear) { if(clear == null) { clear = true; } if(top == null) { top = 0; } if(left == null) { left = 0; } if(clear == true) { graphics.clear(); } if(width <= 0 || height <= 0) { return false; } left = left | 0; top = top | 0; width = width | 0; height = height | 0; var hasFullStyledBorder = false; var borderStyle = style.borderStyle; if(borderStyle == null) { borderStyle = "solid"; } var rc = new openfl_geom_Rectangle(top,left,width,height); var borderRadius = 0; if(style.borderRadius != null) { borderRadius = style.borderRadius * haxe_ui_Toolkit.get_scale(); } var painted = false; if(style.borderLeftSize != null && style.borderLeftSize != 0 && style.borderLeftSize == style.borderRightSize && style.borderLeftSize == style.borderBottomSize && style.borderLeftSize == style.borderTopSize && style.borderLeftColor != null && style.borderLeftColor == style.borderRightColor && style.borderLeftColor == style.borderBottomColor && style.borderLeftColor == style.borderTopColor) { graphics.lineStyle(style.borderLeftSize * haxe_ui_Toolkit.get_scale(),style.borderLeftColor); rc.set_left(rc.get_left() + style.borderLeftSize * haxe_ui_Toolkit.get_scale() / 2); rc.set_top(rc.get_top() + style.borderLeftSize * haxe_ui_Toolkit.get_scale() / 2); rc.set_bottom(rc.get_bottom() - style.borderLeftSize * haxe_ui_Toolkit.get_scale() / 2); rc.set_right(rc.get_right() - style.borderLeftSize * haxe_ui_Toolkit.get_scale() / 2); painted = true; } else if(style.borderTopSize != null && style.borderTopSize > 0 || style.borderBottomSize != null && style.borderBottomSize > 0 || style.borderLeftSize != null && style.borderLeftSize > 0 || style.borderRightSize != null && style.borderRightSize > 0) { var org = rc.clone(); if(style.borderTopSize != null && style.borderTopSize > 0) { graphics.beginFill(style.borderTopColor); graphics.drawRect(0,0,org.width,style.borderTopSize * haxe_ui_Toolkit.get_scale()); graphics.endFill(); rc.set_top(rc.get_top() + style.borderTopSize * haxe_ui_Toolkit.get_scale()); } if(style.borderBottomSize != null && style.borderBottomSize > 0) { graphics.beginFill(style.borderBottomColor); graphics.drawRect(0,org.height - style.borderBottomSize * haxe_ui_Toolkit.get_scale(),org.width,style.borderBottomSize * haxe_ui_Toolkit.get_scale()); graphics.endFill(); rc.set_bottom(rc.get_bottom() - style.borderBottomSize * haxe_ui_Toolkit.get_scale()); } if(style.borderLeftSize != null && style.borderLeftSize > 0) { graphics.beginFill(style.borderLeftColor); graphics.drawRect(0,rc.get_top(),style.borderLeftSize * haxe_ui_Toolkit.get_scale(),org.height - rc.get_top()); graphics.endFill(); rc.set_left(rc.get_left() + style.borderLeftSize * haxe_ui_Toolkit.get_scale()); } if(style.borderRightSize != null && style.borderRightSize > 0) { graphics.beginFill(style.borderRightColor); graphics.drawRect(org.width - style.borderRightSize * haxe_ui_Toolkit.get_scale(),rc.get_top(),style.borderRightSize * haxe_ui_Toolkit.get_scale(),org.height - rc.get_top()); graphics.endFill(); rc.set_right(rc.get_right() - style.borderRightSize * haxe_ui_Toolkit.get_scale()); } painted = true; } var backgroundColor = style.backgroundColor; var backgroundColorEnd = style.backgroundColorEnd; var backgroundOpacity = style.backgroundOpacity; if(backgroundColor != null && backgroundColorEnd == null) { backgroundColorEnd = backgroundColor; } if(backgroundOpacity == null) { backgroundOpacity = 1; } if(backgroundColor != null) { if(backgroundColorEnd != null) { var w = rc.width | 0; var h = rc.height | 0; var colors = [backgroundColor,backgroundColorEnd]; var alphas = [backgroundOpacity,backgroundOpacity]; var ratios = [0,255]; var matrix = new openfl_geom_Matrix(); var gradientType = "vertical"; if(style.backgroundGradientStyle != null) { gradientType = style.backgroundGradientStyle; } if(gradientType == "vertical") { matrix.createGradientBox(w - 2,h - 2,Math.PI / 2,0,0); } else if(gradientType == "horizontal") { matrix.createGradientBox(w - 2,h - 2,0,0,0); } graphics.beginGradientFill(0,colors,alphas,ratios,matrix,0,0,0); } else { graphics.beginFill(backgroundColor,backgroundOpacity); } if(backgroundOpacity > 0) { painted = true; } } if(borderRadius == 0) { if(style.borderRadiusTopLeft != null || style.borderRadiusTopRight != null || style.borderRadiusBottomLeft != null || style.borderRadiusBottomRight != null) { graphics.drawRoundRectComplex(rc.get_left(),rc.get_top(),rc.width,rc.height,style.borderRadiusTopLeft,style.borderRadiusTopRight,style.borderRadiusBottomLeft,style.borderRadiusBottomRight); } else if(hasFullStyledBorder) { graphics.drawRect(rc.get_left(),rc.get_top(),rc.width,rc.height); } else { graphics.drawRect(rc.get_left(),rc.get_top(),rc.width,rc.height); } } else { if(rc.width == rc.height && borderRadius >= rc.width / 2) { borderRadius = rc.width - 1; } graphics.drawRoundRect(rc.get_left(),rc.get_top(),rc.width,rc.height,borderRadius + 1,borderRadius + 1); } graphics.endFill(); return painted; }; haxe_ui_backend_flixel_OpenFLStyleHelper.prototype = { __class__: haxe_ui_backend_flixel_OpenFLStyleHelper }; var haxe_ui_backend_flixel_StateHelper = function() { }; $hxClasses["haxe.ui.backend.flixel.StateHelper"] = haxe_ui_backend_flixel_StateHelper; haxe_ui_backend_flixel_StateHelper.__name__ = "haxe.ui.backend.flixel.StateHelper"; haxe_ui_backend_flixel_StateHelper.__properties__ = {get_currentState:"get_currentState"}; haxe_ui_backend_flixel_StateHelper.currentState = null; haxe_ui_backend_flixel_StateHelper.get_currentState = function() { var s = flixel_FlxG.game._state; if(s != null && s.subState != null) { var r = s.subState; while(r != null) { if(r.subState == null) { break; } r = r.subState; } s = r; } return s; }; haxe_ui_backend_flixel_StateHelper.hasMember = function(member,group) { return true; }; haxe_ui_backend_flixel_StateHelper.groupHasMember = function(member,group) { if(group == null || !group.exists) { return false; } if(member == group) { return true; } var _g = 0; var _g1 = group.group.members; while(_g < _g1.length) { var m = _g1[_g]; ++_g; if(m == member) { return true; } if(((m) instanceof flixel_group_FlxTypedGroup)) { if(haxe_ui_backend_flixel_StateHelper.hasMember(member,m) == true) { return true; } } else if(((m) instanceof flixel_group_FlxTypedSpriteGroup)) { if(haxe_ui_backend_flixel_StateHelper.groupHasMember(member,m) == true) { return true; } } } return false; }; haxe_ui_backend_flixel_StateHelper.findCameras = function(member,group) { if(group == null) { group = haxe_ui_backend_flixel_StateHelper.get_currentState(); } if(group == null || !group.exists) { return null; } var _g = 0; var _g1 = group.members; while(_g < _g1.length) { var m = _g1[_g]; ++_g; if(m != null && m.get_cameras() != null && m.get_cameras().length > 0) { if(m == member || ((m) instanceof flixel_group_FlxTypedGroup) && haxe_ui_backend_flixel_StateHelper.hasMember(member,m)) { return m.get_cameras(); } } } return null; }; var haxe_ui_backend_flixel_UIRTTITools = function() { }; $hxClasses["haxe.ui.backend.flixel.UIRTTITools"] = haxe_ui_backend_flixel_UIRTTITools; haxe_ui_backend_flixel_UIRTTITools.__name__ = "haxe.ui.backend.flixel.UIRTTITools"; haxe_ui_backend_flixel_UIRTTITools.buildViaRTTI = function(rtti) { var root = null; var m = haxe_ui_backend_flixel_UIRTTITools.getMetaWithValueRTTI(rtti.meta,"build","haxe.ui.RuntimeComponentBuilder.build"); if(m != null) { var assetId = StringTools.replace(StringTools.replace(m.params[0],"haxe.ui.RuntimeComponentBuilder.build(",""),")",""); assetId = StringTools.replace(assetId,"\"",""); assetId = StringTools.replace(assetId,"'",""); root = haxe_ui_RuntimeComponentBuilder.fromAsset(assetId); if(root == null) { throw haxe_Exception.thrown("could not loading runtime ui from asset (" + assetId + ")"); } } m = haxe_ui_backend_flixel_UIRTTITools.getMetaRTTI(rtti.meta,"xml"); if(m != null) { var xmlString = StringTools.trim(m.params[0]); if(StringTools.startsWith(xmlString,"")) { xmlString = xmlString.substring(0,xmlString.length - "]]>".length); } if(StringTools.startsWith(xmlString,"\"")) { xmlString = xmlString.substring(1); } if(StringTools.endsWith(xmlString,"\"")) { xmlString = xmlString.substring(0,xmlString.length - 1); } xmlString = StringTools.replace(xmlString,"\\r","\r"); xmlString = StringTools.replace(xmlString,"\\n","\n"); xmlString = StringTools.replace(xmlString,"\\\"","\""); xmlString = StringTools.trim(xmlString); try { root = haxe_ui_RuntimeComponentBuilder.fromString(xmlString); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); haxe_Log.trace("ERROR",{ fileName : "haxe/ui/backend/flixel/UIRTTITools.hx", lineNumber : 45, className : "haxe.ui.backend.flixel.UIRTTITools", methodName : "buildViaRTTI", customParams : [e]}); } } return root; }; haxe_ui_backend_flixel_UIRTTITools.linkViaRTTI = function(rtti,target,root,force) { if(force == null) { force = false; } if(root == null) { return; } var _g = 0; var _g1 = rtti.fields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; var _g2 = f.type; switch(_g2._hx_index) { case 2: var name = _g2.name; var params = _g2.params; if(haxe_ui_core_ComponentClassMap.get_instance().hasClassName(name)) { var candidate = root.findComponent(f.name); if(force) { target[f.name] = null; } if(candidate != null && Reflect.field(target,f.name) == null) { var temp = Object.create($hxClasses[name].prototype); if(js_Boot.__implements(temp,haxe_ui_IComponentDelegate)) { var componentDelegate = Object.create($hxClasses[name].prototype); componentDelegate.set_component(candidate); target[f.name] = componentDelegate; } else { target[f.name] = candidate; } } } break; case 4: var args = _g2.args; var ret = _g2.ret; var m = haxe_ui_backend_flixel_UIRTTITools.getMetaRTTI(f.meta,"bind"); if(m != null) { if(m.params[0] == "this") { if(js_Boot.__implements(target,haxe_ui_IComponentDelegate)) { var componentDelegate1 = target; haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,componentDelegate1.get_component(),f.name,target,m.params[1],true); } else { haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,root,f.name,target,m.params[1]); } } else { var candidate1 = root.findComponent(m.params[0]); if(candidate1 != null) { haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,candidate1,f.name,target,m.params[1]); } else { var parts = m.params[0].split("."); var className = parts.shift(); var c = $hxClasses[className]; if(c == null) { var candidateClass = className; while(parts.length > 0) { var part = parts.shift(); candidateClass += "." + part; var temp1 = $hxClasses[candidateClass]; if(temp1 != null) { c = temp1; break; } } } if(c != null) { var ref = c; var found = parts.length > 0; var _g3 = 0; while(_g3 < parts.length) { var part1 = parts[_g3]; ++_g3; if(!Object.prototype.hasOwnProperty.call(ref,part1)) { found = false; break; } ref = Reflect.field(ref,part1); } if(found) { if(ref != null) { if(((ref) instanceof haxe_ui_backend_flixel_UIRuntimeState)) { var state = ref; haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,state.root,f.name,target,m.params[1]); } else if(((ref) instanceof haxe_ui_backend_flixel_UIRuntimeSubState)) { var subState = ref; haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,subState.root,f.name,target,m.params[1]); } else if(js_Boot.__implements(ref,haxe_ui_IComponentDelegate)) { var componentDelegate2 = ref; haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,componentDelegate2.get_component(),f.name,target,m.params[1]); } else if(((ref) instanceof haxe_ui_core_Component)) { var component = ref; haxe_ui_backend_flixel_UIRTTITools.bindEvent(rtti,component,f.name,target,m.params[1]); } } else { throw haxe_Exception.thrown("bind param resolved, but was null '" + m.params[0] + "'"); } } else { throw haxe_Exception.thrown("could not resolve bind param '" + m.params[0] + "'"); } } else { throw haxe_Exception.thrown("could not resolve class '" + className + "'"); } } } } break; default: } } }; haxe_ui_backend_flixel_UIRTTITools.bindEvent = function(rtti,candidate,fieldName,target,eventClass,isComponentDelegate) { if(isComponentDelegate == null) { isComponentDelegate = false; } if(candidate == null) { return; } var parts = eventClass.split("."); var eventName = parts.pop(); eventClass = parts.join("."); var c = haxe_ui_backend_flixel_UIRTTITools.resolveEventClass(rtti,eventClass); if(c != null) { var eventString = Reflect.field(c,eventName); var fn = Reflect.field(target,fieldName); if(isComponentDelegate) { candidate.unregisterEvents(eventString); } candidate.registerEvent(eventString,fn); } else { throw haxe_Exception.thrown("could not resolve event class '" + eventClass + "' (you may need to use fully qualified class names)"); } }; haxe_ui_backend_flixel_UIRTTITools.resolveEventClass = function(rtti,eventClass) { var candidateEvent = "haxe.ui.events." + eventClass; var event = $hxClasses[candidateEvent]; if(event != null) { return event; } var event = $hxClasses[eventClass]; if(event != null) { return event; } var _g = 0; var _g1 = rtti.fields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; var _g2 = f.type; if(_g2._hx_index == 4) { var args = _g2.args; var ret = _g2.ret; if(haxe_ui_backend_flixel_UIRTTITools.getMetaRTTI(f.meta,"bind") != null) { var _g3 = 0; while(_g3 < args.length) { var arg = args[_g3]; ++_g3; var _g4 = arg.t; if(_g4._hx_index == 2) { var name = _g4.name; var params = _g4.params; if(StringTools.endsWith(name,eventClass)) { var event = $hxClasses[name]; if(event != null) { return event; } } } } } } } return null; }; haxe_ui_backend_flixel_UIRTTITools.getMetaRTTI = function(metadata,name) { var _g = 0; while(_g < metadata.length) { var m = metadata[_g]; ++_g; if(m.name == name || m.name == ":" + name) { return m; } } return null; }; haxe_ui_backend_flixel_UIRTTITools.getMetasRTTI = function(metadata,name) { var metas = []; var _g = 0; while(_g < metadata.length) { var m = metadata[_g]; ++_g; if(m.name == name || m.name == ":" + name) { metas.push(m); } } return metas; }; haxe_ui_backend_flixel_UIRTTITools.getMetaWithValueRTTI = function(metadata,name,value,paramIndex) { if(paramIndex == null) { paramIndex = 0; } var _g = 0; while(_g < metadata.length) { var m = metadata[_g]; ++_g; if(m.name == name || m.name == ":" + name) { if(StringTools.startsWith(m.params[paramIndex],value)) { return m; } } } return null; }; var haxe_ui_backend_flixel_UIRuntimeState = function() { funkin_ui_MusicBeatState.call(this); }; $hxClasses["haxe.ui.backend.flixel.UIRuntimeState"] = haxe_ui_backend_flixel_UIRuntimeState; haxe_ui_backend_flixel_UIRuntimeState.__name__ = "haxe.ui.backend.flixel.UIRuntimeState"; haxe_ui_backend_flixel_UIRuntimeState.__super__ = funkin_ui_MusicBeatState; haxe_ui_backend_flixel_UIRuntimeState.prototype = $extend(funkin_ui_MusicBeatState.prototype,{ root: null ,create: function() { var _gthis = this; var rtti = haxe_rtti_Rtti.getRtti(js_Boot.getClass(this)); this.root = haxe_ui_backend_flixel_UIRTTITools.buildViaRTTI(rtti); haxe_ui_backend_flixel_UIRTTITools.linkViaRTTI(rtti,this,this.root); if(this.root != null) { this.root.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { _gthis.onReady(); }); haxe_ui_core_Screen.get_instance().addComponent(this.root); } funkin_ui_MusicBeatState.prototype.create.call(this); } ,onReady: function() { } ,addComponent: function(child) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.addComponent(child); } ,removeComponent: function(child) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.removeComponent(child); } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findComponent(criteria,type,recursive,searchType); } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findComponents(styleName,type,maxDepth); } ,findAncestor: function(criteria,type,searchType) { if(searchType == null) { searchType = "id"; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findAncestor(criteria,type,searchType); } ,findComponentsUnderPoint: function(screenX,screenY,type) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findComponentsUnderPoint(screenX,screenY,type); } ,dispatch: function(event) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.dispatch(event); } ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.registerEvent(type,listener,priority); } ,show: function() { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.show(); } ,hide: function() { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.hide(); } ,destroy: function() { if(this.root != null) { haxe_ui_core_Screen.get_instance().removeComponent(this.root); } this.root = null; } ,__class__: haxe_ui_backend_flixel_UIRuntimeState }); var haxe_ui_backend_flixel_UIRuntimeSubState = function() { funkin_ui_MusicBeatSubState.call(this); }; $hxClasses["haxe.ui.backend.flixel.UIRuntimeSubState"] = haxe_ui_backend_flixel_UIRuntimeSubState; haxe_ui_backend_flixel_UIRuntimeSubState.__name__ = "haxe.ui.backend.flixel.UIRuntimeSubState"; haxe_ui_backend_flixel_UIRuntimeSubState.__super__ = funkin_ui_MusicBeatSubState; haxe_ui_backend_flixel_UIRuntimeSubState.prototype = $extend(funkin_ui_MusicBeatSubState.prototype,{ root: null ,create: function() { var _gthis = this; var rtti = haxe_rtti_Rtti.getRtti(js_Boot.getClass(this)); this.root = haxe_ui_backend_flixel_UIRTTITools.buildViaRTTI(rtti); haxe_ui_backend_flixel_UIRTTITools.linkViaRTTI(rtti,this,this.root); if(this.root != null) { this.root.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { _gthis.onReady(); }); haxe_ui_core_Screen.get_instance().addComponent(this.root); } funkin_ui_MusicBeatSubState.prototype.create.call(this); } ,onReady: function() { } ,addComponent: function(child) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.addComponent(child); } ,removeComponent: function(child) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.removeComponent(child); } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findComponent(criteria,type,recursive,searchType); } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findComponents(styleName,type,maxDepth); } ,findAncestor: function(criteria,type,searchType) { if(searchType == null) { searchType = "id"; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findAncestor(criteria,type,searchType); } ,findComponentsUnderPoint: function(screenX,screenY,type) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } return this.root.findComponentsUnderPoint(screenX,screenY,type); } ,dispatch: function(event) { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.dispatch(event); } ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.registerEvent(type,listener,priority); } ,show: function() { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.show(); } ,hide: function() { if(this.root == null) { throw haxe_Exception.thrown("no root component"); } this.root.hide(); } ,destroy: function() { if(this.root != null) { haxe_ui_core_Screen.get_instance().removeComponent(this.root); } this.root = null; } ,__class__: haxe_ui_backend_flixel_UIRuntimeSubState }); var haxe_ui_backend_flixel_components_SparrowPlayer = function() { this._animationLoaded = false; this._cachedAnimationPrefixes = []; this._redispatchStart = false; this._redispatchLoaded = false; this._animationName = null; this._cachedAnimationName = null; this._dataSource = null; haxe_ui_containers_Box.call(this); this.sprite = new flixel_FlxSprite(1,1); this.add(this.sprite); }; $hxClasses["haxe.ui.backend.flixel.components.SparrowPlayer"] = haxe_ui_backend_flixel_components_SparrowPlayer; haxe_ui_backend_flixel_components_SparrowPlayer.__name__ = "haxe.ui.backend.flixel.components.SparrowPlayer"; haxe_ui_backend_flixel_components_SparrowPlayer.__interfaces__ = [haxe_ui_core_IDataComponent]; haxe_ui_backend_flixel_components_SparrowPlayer.__super__ = haxe_ui_containers_Box; haxe_ui_backend_flixel_components_SparrowPlayer.prototype = $extend(haxe_ui_containers_Box.prototype,{ sprite: null ,_xmlFile: null ,get_xmlFile: function() { return this._xmlFile; } ,set_xmlFile: function(value) { this._xmlFile = value; this.loadAnimation(this._xmlFile,this._pngFile); return value; } ,_pngFile: null ,get_pngFile: function() { return this._pngFile; } ,set_pngFile: function(value) { this._pngFile = value; this.loadAnimation(this._xmlFile,this._pngFile); return value; } ,_dataSource: null ,get_dataSource: function() { return this._dataSource; } ,set_dataSource: function(value) { this._dataSource = value; var _g = 0; var _g1 = this._dataSource.get_size(); while(_g < _g1) { var i = _g++; var item = this._dataSource.get(i); if(item.frameRate == null) { item.frameRate = 30; } if(item.looped == null) { item.looped = true; } if(item.flipX == null) { item.flipX = false; } if(item.flipY == null) { item.flipY = false; } this.addAnimationByPrefix(item.name,item.prefix,Std.parseInt(item.frameRate),Std.string(item.looped) == "true",Std.string(item.flipX) == "true",Std.string(item.flipY) == "true"); } return value; } ,_cachedAnimationName: null ,_animationName: null ,get_animationName: function() { return this._animationName; } ,set_animationName: function(value) { if(!this._animationLoaded) { this._cachedAnimationName = value; return value; } if(this.sprite.animation._animations.h[value] != null) { this._cachedAnimationName = null; this._animationName = value; this.sprite.animation.play(this._animationName); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } if(this.hasEvent(haxe_ui_events_AnimationEvent.START)) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.START)); } else { this._redispatchStart = true; } } else { this._cachedAnimationName = value; } return value; } ,_redispatchLoaded: null ,_redispatchStart: null ,onReady: function() { haxe_ui_containers_Box.prototype.onReady.call(this); if(this._cachedAnimationName != null) { this.set_animationName(this._cachedAnimationName); } if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } if(this._redispatchLoaded) { this._redispatchLoaded = false; this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.LOADED)); } if(this._redispatchStart) { this._redispatchStart = false; this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.START)); } } ,_cachedAnimationPrefixes: null ,addAnimationByPrefix: function(name,prefix,frameRate,looped,flipX,flipY) { if(flipY == null) { flipY = false; } if(flipX == null) { flipX = false; } if(looped == null) { looped = true; } if(frameRate == null) { frameRate = 30; } if(!this._animationLoaded) { if(this._cachedAnimationPrefixes == null) { this._cachedAnimationPrefixes = []; } this._cachedAnimationPrefixes.push({ name : name, prefix : prefix, frameRate : frameRate, looped : looped, flipX : flipX, flipY : flipY}); return; } this.sprite.animation.addByPrefix(name,prefix,frameRate,looped,flipX,flipY); if(this._cachedAnimationName != null) { this.set_animationName(this._cachedAnimationName); } } ,_animationLoaded: null ,loadAnimation: function(xml,png) { if(xml == null || png == null) { return; } var frames = flixel_graphics_frames_FlxAtlasFrames.fromSparrow(png,openfl_utils_Assets.getText(xml)); this.sprite.set_frames(frames); if(this.sprite.animation.callback == null) { this.sprite.animation.callback = $bind(this,this.onFrame); } if(this.sprite.animation.finishCallback == null) { this.sprite.animation.finishCallback = $bind(this,this.onFinish); } if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } this._animationLoaded = true; if(this._cachedAnimationPrefixes != null) { while(this._cachedAnimationPrefixes.length > 0) { var item = this._cachedAnimationPrefixes.shift(); this.addAnimationByPrefix(item.name,item.prefix,item.frameRate,item.looped,item.flipX,item.flipY); } this._cachedAnimationPrefixes = null; } if(this._cachedAnimationName != null) { this.set_animationName(this._cachedAnimationName); } if(this.hasEvent(haxe_ui_events_AnimationEvent.LOADED)) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.LOADED)); } else { this._redispatchLoaded = true; } } ,currentFrameCount: null ,get_currentFrameCount: function() { if(this.sprite.animation == null || this.sprite.animation._curAnim == null) { return 0; } return this.sprite.animation._curAnim.frames.length; } ,currentFrameNumber: null ,get_currentFrameNumber: function() { if(this.sprite.animation == null || this.sprite.animation._curAnim == null) { return 0; } return this.sprite.animation._curAnim.curFrame; } ,frameNames: null ,get_frameNames: function() { if(this.sprite.animation == null) { return []; } return this.sprite.animation.getNameList(); } ,onFrame: function(name,frameNumber,frameIndex) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.FRAME)); } ,onFinish: function(name) { this.dispatch(new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.END)); } ,repositionChildren: function() { haxe_ui_containers_Box.prototype.repositionChildren.call(this); this.sprite.set_x(this.get_screenX()); this.sprite.set_y(this.get_screenY()); } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_backend_flixel_components_SparrowPlayer(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_backend_flixel_components__$SparrowPlayer_Layout; } ,__class__: haxe_ui_backend_flixel_components_SparrowPlayer ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{get_frameNames:"get_frameNames",get_currentFrameNumber:"get_currentFrameNumber",get_currentFrameCount:"get_currentFrameCount",set_animationName:"set_animationName",get_animationName:"get_animationName",set_pngFile:"set_pngFile",get_pngFile:"get_pngFile",set_xmlFile:"set_xmlFile",get_xmlFile:"get_xmlFile"}) }); var haxe_ui_backend_flixel_components__$SparrowPlayer_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.backend.flixel.components._SparrowPlayer.Layout"] = haxe_ui_backend_flixel_components__$SparrowPlayer_Layout; haxe_ui_backend_flixel_components__$SparrowPlayer_Layout.__name__ = "haxe.ui.backend.flixel.components._SparrowPlayer.Layout"; haxe_ui_backend_flixel_components__$SparrowPlayer_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_backend_flixel_components__$SparrowPlayer_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var player = js_Boot.__cast(this._component , haxe_ui_backend_flixel_components_SparrowPlayer); var sprite = player.sprite; if(sprite == null) { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); return; } var this1 = sprite.origin; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); sprite.setGraphicSize(this.get_innerWidth() | 0,this.get_innerHeight() | 0); } ,calcAutoSize: function(exclusions) { var player = js_Boot.__cast(this._component , haxe_ui_backend_flixel_components_SparrowPlayer); var sprite = player.sprite; if(sprite == null) { return haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); } var size = new haxe_ui_geom_Size(); size.width = sprite.frameWidth + this.get_paddingLeft() + this.get_paddingRight(); size.height = sprite.frameHeight + this.get_paddingTop() + this.get_paddingBottom(); return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_backend_flixel_components__$SparrowPlayer_Layout(); } ,__class__: haxe_ui_backend_flixel_components__$SparrowPlayer_Layout }); var haxe_ui_backend_flixel_components__$SpriteWrapper_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.backend.flixel.components._SpriteWrapper.Layout"] = haxe_ui_backend_flixel_components__$SpriteWrapper_Layout; haxe_ui_backend_flixel_components__$SpriteWrapper_Layout.__name__ = "haxe.ui.backend.flixel.components._SpriteWrapper.Layout"; haxe_ui_backend_flixel_components__$SpriteWrapper_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_backend_flixel_components__$SpriteWrapper_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var wrapper = js_Boot.__cast(this._component , haxe_ui_backend_flixel_components_SpriteWrapper); var sprite = wrapper.get_sprite(); if(sprite == null) { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); return; } var this1 = sprite.origin; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } this1.set_x(x); this1.set_y(y); sprite.setGraphicSize(this.get_innerWidth() | 0,this.get_innerHeight() | 0); } ,calcAutoSize: function(exclusions) { var wrapper = js_Boot.__cast(this._component , haxe_ui_backend_flixel_components_SpriteWrapper); var sprite = wrapper.get_sprite(); if(sprite == null) { return haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); } var size = new haxe_ui_geom_Size(); size.width = sprite.get_width() + this.get_paddingLeft() + this.get_paddingRight(); size.height = sprite.get_height() + this.get_paddingTop() + this.get_paddingBottom(); return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_backend_flixel_components__$SpriteWrapper_Layout(); } ,__class__: haxe_ui_backend_flixel_components__$SpriteWrapper_Layout }); var haxe_ui_backend_flixel_textinputs_FlxTextInput = function() { this._onKeyUp = null; this._onKeyDown = null; this._onChange = null; this._onClick = null; this._onMouseUp = null; this._onMouseDown = null; this.PADDING_Y = 0; this.PADDING_X = 4; haxe_ui_backend_TextBase.call(this); this.tf = new flixel_addons_text_FlxTextInput(); this.tf.onChange.add($bind(this,this.onInternalChange)); this.tf.onScroll.add($bind(this,this.onScroll)); this.tf.set_pixelPerfectRender(true); this.tf.set_moves(false); this._inputData.vscrollPageStep = 1; this._inputData.vscrollNativeWheel = true; }; $hxClasses["haxe.ui.backend.flixel.textinputs.FlxTextInput"] = haxe_ui_backend_flixel_textinputs_FlxTextInput; haxe_ui_backend_flixel_textinputs_FlxTextInput.__name__ = "haxe.ui.backend.flixel.textinputs.FlxTextInput"; haxe_ui_backend_flixel_textinputs_FlxTextInput.__super__ = haxe_ui_backend_TextBase; haxe_ui_backend_flixel_textinputs_FlxTextInput.prototype = $extend(haxe_ui_backend_TextBase.prototype,{ PADDING_X: null ,PADDING_Y: null ,tf: null ,focus: function() { this.tf.set_focus(true); } ,blur: function() { this.tf.set_focus(false); } ,attach: function() { } ,get_visible: function() { return this.tf.visible; } ,set_visible: function(value) { this.tf.set_active(this.tf.set_visible(value)); return value; } ,get_x: function() { return this.tf.x; } ,set_x: function(value) { this.tf.set_x(value); return value; } ,get_y: function() { return this.tf.y; } ,set_y: function(value) { this.tf.set_y(value); return value; } ,get_scaleX: function() { return this.tf.scale.x; } ,set_scaleX: function(value) { return value; } ,get_scaleY: function() { return this.tf.scale.y; } ,set_scaleY: function(value) { return value; } ,get_alpha: function() { return this.tf.alpha; } ,set_alpha: function(value) { this.tf.set_alpha(value); return value; } ,validateData: function() { if(this._text != null) { if(this._dataSource == null) { this.tf.set_text(this.normalizeText(this._text)); } } var hscrollValue = this._inputData.hscrollPos | 0; if(this.tf.get_scrollH() != hscrollValue) { this.tf.set_scrollH(hscrollValue); } var vscrollValue = (this._inputData.vscrollPos | 0) + 1; if(this.tf.get_scrollV() != vscrollValue) { this.tf.set_scrollV(vscrollValue); } } ,normalizeText: function(text) { text = StringTools.replace(text,"\\n","\n"); return text; } ,measureText: function() { this._textHeight = this.tf.textField.get_textHeight(); if(this._textHeight == 0) { var tmpText = this.tf.text; this.tf.set_text("|"); this._textHeight = this.tf.textField.get_textHeight(); this.tf.set_text(tmpText); } this._textWidth = Math.round(this._textWidth) / haxe_ui_Toolkit.get_scaleX(); this._textHeight = Math.round(this._textHeight) / haxe_ui_Toolkit.get_scaleY(); this._inputData.hscrollMax = this.tf.get_maxScrollH(); this._inputData.hscrollPageSize = this._width * this._inputData.hscrollMax / this._textWidth; var tmp = this.tf.get_maxScrollV(); this._inputData.vscrollMax = tmp - 1; this._inputData.vscrollPageSize = this._height * this._inputData.vscrollMax / this._textHeight; } ,validateStyle: function() { var measureTextRequired = false; if(this._textStyle != null) { var textAlign = this._textStyle.textAlign != null ? this._textStyle.textAlign : "left"; if(flixel_text_FlxTextAlign.fromOpenFL(this.tf._defaultFormat.align) != textAlign) { this.tf.set_alignment(textAlign); } var fontSizeValue = this._textStyle.fontSize | 0; if((this.tf._defaultFormat.size | 0) != fontSizeValue) { this.tf.set_size(fontSizeValue * haxe_ui_Toolkit.get_scale() | 0); measureTextRequired = true; } if(this._fontInfo != null && this.tf._font != this._fontInfo.data) { this.tf.set_font(this._fontInfo.data); measureTextRequired = true; } if(this.tf.color != this._textStyle.color) { this.tf.set_color(this._textStyle.color); } var fontBold = this._textStyle.fontBold != null && this._textStyle.fontBold; if(this.tf._defaultFormat.bold != fontBold) { this.tf.set_bold(fontBold); measureTextRequired = true; } var fontItalic = this._textStyle.fontItalic != null && this._textStyle.fontItalic; if(this.tf._defaultFormat.italic != fontItalic) { this.tf.set_italic(fontItalic); measureTextRequired = true; } } if(this.tf.textField.get_wordWrap() != this._displayData.wordWrap) { this.tf.set_wordWrap(this._displayData.wordWrap); measureTextRequired = true; } if(this.tf.get_multiline() != this._displayData.multiline) { this.tf.set_multiline(this._displayData.multiline); measureTextRequired = true; } if(this.tf.get_displayAsPassword() != this._inputData.password) { this.tf.set_displayAsPassword(this._inputData.password); } this.tf.set_type(this.parentComponent.get_disabled() ? 0 : 1); return measureTextRequired; } ,validatePosition: function() { this._left = Math.round(this._left * haxe_ui_Toolkit.get_scaleX()); this._top = Math.round(this._top * haxe_ui_Toolkit.get_scaleY()); } ,validateDisplay: function() { if(this._width <= 0 || this._height <= 0) { return; } if(this.tf.get_width() != this._width * haxe_ui_Toolkit.get_scaleX()) { this.tf.set_width(this._width * haxe_ui_Toolkit.get_scaleX()); this.tf.set_fieldWidth(this.tf.get_width()); } if(this.tf.get_height() != this._height * haxe_ui_Toolkit.get_scaleY()) { this.tf.set_height(this._height * haxe_ui_Toolkit.get_scaleY()); this.tf.set_fieldHeight(this.tf.get_height()); } } ,_onMouseDown: null ,onMouseDown: null ,set_onMouseDown: function(value) { var tmp = this._onMouseDown != null; this._onMouseDown = value; var tmp = this._onMouseDown != null; return value; } ,_onMouseUp: null ,onMouseUp: null ,set_onMouseUp: function(value) { var tmp = this._onMouseUp != null; this._onMouseUp = value; var tmp = this._onMouseUp != null; return value; } ,equals: function(sprite) { return sprite == this.tf; } ,_onClick: null ,onClick: null ,set_onClick: function(value) { var tmp = this._onClick != null; this._onClick = value; var tmp = this._onClick != null; return value; } ,_onChange: null ,onChange: null ,set_onChange: function(value) { if(this._onChange != null) { this.tf.onChange.remove($bind(this,this.__onTextInputChangeEvent)); } this._onChange = value; if(this._onChange != null) { this.tf.onChange.add($bind(this,this.__onTextInputChangeEvent)); } return value; } ,__onTextInputChangeEvent: function() { if(this._onChange != null) { this._onChange({ type : "change", stageX : 0, stageY : 0}); } } ,_onKeyDown: null ,onKeyDown: null ,set_onKeyDown: function(value) { var tmp = this._onKeyDown != null; this._onKeyDown = value; var tmp = this._onKeyDown != null; return value; } ,_onKeyUp: null ,onKeyUp: null ,set_onKeyUp: function(value) { var tmp = this._onKeyUp != null; this._onKeyUp = value; var tmp = this._onKeyUp != null; return value; } ,onInternalChange: function() { this._text = this.tf.text; this.measureText(); if(this._inputData.onChangedCallback != null) { this._inputData.onChangedCallback(); } } ,onScroll: function() { this._inputData.hscrollPos = this.tf.get_scrollH(); var tmp = this.tf.get_scrollV(); this._inputData.vscrollPos = tmp - 1; if(this._inputData.onScrollCallback != null) { this._inputData.onScrollCallback(); } } ,update: function() { } ,addToComponent: function(component) { component.add(this.tf); } ,destroy: function(component) { this.tf.set_visible(false); component.remove(this.tf); this.tf.destroy(); this.tf = null; } ,__class__: haxe_ui_backend_flixel_textinputs_FlxTextInput ,__properties__: $extend(haxe_ui_backend_TextBase.prototype.__properties__,{set_onKeyUp:"set_onKeyUp",set_onKeyDown:"set_onKeyDown",set_onChange:"set_onChange",set_onClick:"set_onClick",set_onMouseUp:"set_onMouseUp",set_onMouseDown:"set_onMouseDown",set_alpha:"set_alpha",get_alpha:"get_alpha",set_scaleY:"set_scaleY",get_scaleY:"get_scaleY",set_scaleX:"set_scaleX",get_scaleX:"get_scaleX",set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",set_visible:"set_visible",get_visible:"get_visible"}) }); var haxe_ui_behaviours_Behaviours = function(component) { this._actualUpdateOrder = null; this._updateOrder = []; this._instances = new haxe_ds_StringMap(); this._registry = new haxe_ds_StringMap(); this._component = component; }; $hxClasses["haxe.ui.behaviours.Behaviours"] = haxe_ui_behaviours_Behaviours; haxe_ui_behaviours_Behaviours.__name__ = "haxe.ui.behaviours.Behaviours"; haxe_ui_behaviours_Behaviours.prototype = { _component: null ,_registry: null ,_instances: null ,register: function(id,cls,defaultValue) { var info = { id : id, cls : cls, defaultValue : defaultValue, isSet : false}; this._registry.h[id] = info; HxOverrides.remove(this._updateOrder,id); this._updateOrder.push(id); this._actualUpdateOrder = null; } ,isRegistered: function(id) { return Object.prototype.hasOwnProperty.call(this._registry.h,id); } ,replaceNative: function() { if(this._component.get_native() == false || this._component.get_hasNativeEntry() == false) { return; } var ids = []; var h = this._registry.h; var id_h = h; var id_keys = Object.keys(h); var id_length = id_keys.length; var id_current = 0; while(id_current < id_length) { var id = id_keys[id_current++]; ids.push(id); } var _g = 0; while(_g < ids.length) { var id = ids[_g]; ++_g; var nativeProps = this._component.getNativeConfigProperties(".behaviour[id=" + id + "]"); if(nativeProps != null && Object.prototype.hasOwnProperty.call(nativeProps.h,"class")) { var registered = this._registry.h[id]; var name = nativeProps.h["class"]; var info = { id : id, cls : $hxClasses[name], defaultValue : registered.defaultValue, config : nativeProps, isSet : false}; this._registry.h[id] = info; } } } ,validateData: function() { if(this._instances == null) { return; } var _g = 0; var _g1 = this.get_actualUpdateOrder(); while(_g < _g1.length) { var key = _g1[_g]; ++_g; if(key == null || this._instances == null || this._instances.h[key] == null) { continue; } var b = this._instances.h[key]; if(js_Boot.__implements(b,haxe_ui_behaviours_IValidatingBehaviour)) { (js_Boot.__cast(b , haxe_ui_behaviours_IValidatingBehaviour)).validate(); } } } ,_updateOrder: null ,get_updateOrder: function() { return this._updateOrder; } ,set_updateOrder: function(value) { this._updateOrder = value; this._actualUpdateOrder = null; return value; } ,_actualUpdateOrder: null ,actualUpdateOrder: null ,get_actualUpdateOrder: function() { if(this._actualUpdateOrder == null) { this._actualUpdateOrder = this._updateOrder.slice(); var h = this._instances.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(this._actualUpdateOrder.indexOf(key) == -1) { this._actualUpdateOrder.push(key); } } } return this._actualUpdateOrder; } ,update: function() { var _g = 0; var _g1 = this.get_actualUpdateOrder(); while(_g < _g1.length) { var key = _g1[_g]; ++_g; var b = this._instances.h[key]; if(b != null) { b.update(); } } } ,find: function(id,create) { if(create == null) { create = true; } var b = this._instances.h[id]; if(b == null && create == true) { var info = this._registry.h[id]; if(info != null) { b = Type.createInstance(info.cls,[this._component]); if(b != null) { b.config = info.config; b.id = id; this._instances.h[id] = b; this._actualUpdateOrder = null; } else { var c = js_Boot.getClass(this._component); haxe_Log.trace("WARNING: problem creating behaviour class '" + Std.string(info.cls) + "' for '" + c.__name__ + ":" + id + "'",{ fileName : "haxe/ui/behaviours/Behaviours.hx", lineNumber : 146, className : "haxe.ui.behaviours.Behaviours", methodName : "find"}); } } } if(b == null) { throw haxe_Exception.thrown("behaviour " + id + " not found"); } return b; } ,_cache: null ,cache: function() { this._cache = new haxe_ds_StringMap(); var h = this._registry.h; var registeredKey_h = h; var registeredKey_keys = Object.keys(h); var registeredKey_length = registeredKey_keys.length; var registeredKey_current = 0; while(registeredKey_current < registeredKey_length) { var registeredKey = registeredKey_keys[registeredKey_current++]; var v = this._registry.h[registeredKey].defaultValue; var instance = this._instances.h[registeredKey]; if(instance != null) { v = instance.get(); } if(v != null) { this._cache.h[registeredKey] = v; } } } ,dispose: function() { this._component = null; this._registry = null; var h = this._instances.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var inst = this._instances.h[key]; inst._component = null; } this._instances = null; this._cache = null; this._actualUpdateOrder = null; this._updateOrder = null; } ,detatch: function() { var h = this._instances.h; var b_h = h; var b_keys = Object.keys(h); var b_length = b_keys.length; var b_current = 0; while(b_current < b_length) { var b = b_h[b_keys[b_current++]]; b.detatch(); } this._instances = new haxe_ds_StringMap(); } ,restore: function() { if(this._cache == null) { return; } var _g = 0; var _g1 = this.get_actualUpdateOrder(); while(_g < _g1.length) { var key = _g1[_g]; ++_g; var v = this._cache.h[key]; if(v != null) { this.set(key,v); } } this._cache = null; } ,lock: function() { } ,unlock: function() { } ,setDynamic: function(id,value) { this.lock(); var b = this.find(id); var changed = null; if(((b) instanceof haxe_ui_behaviours_ValueBehaviour)) { var v = haxe_ui_util_Variant.toDynamic((js_Boot.__cast(b , haxe_ui_behaviours_ValueBehaviour))._value); changed = v != value; } b.setDynamic(value); var info = this._registry.h[id]; info.isSet = true; this.unlock(); this.performAutoDispatch(b,changed); } ,set: function(id,value) { this.lock(); var b = this.find(id); var changed = null; if(((b) instanceof haxe_ui_behaviours_ValueBehaviour)) { var v = (js_Boot.__cast(b , haxe_ui_behaviours_ValueBehaviour))._value; changed = haxe_ui_util_Variant.neq(v,value); } b.set(value); var info = this._registry.h[id]; info.isSet = true; this.unlock(); this.performAutoDispatch(b,changed); } ,softSet: function(id,value) { var b = this.find(id); if(((b) instanceof haxe_ui_behaviours_ValueBehaviour)) { (js_Boot.__cast(b , haxe_ui_behaviours_ValueBehaviour))._value = value; } } ,ready: function() { if(this._autoDispatch == null) { return; } var b = this._autoDispatch.keys(); while(b.hasNext()) { var b1 = b.next(); var changed = this._autoDispatch.h[b1.__id__]; this.performAutoDispatch(b1,changed); } this._autoDispatch = null; } ,_autoDispatch: null ,performAutoDispatch: function(b,changed) { if(this._component.get_isReady() == false) { if(this._autoDispatch == null) { this._autoDispatch = new haxe_ds_ObjectMap(); } this._autoDispatch.set(b,changed); return; } var autoDispatch = b.getConfigValue("autoDispatch",null); if(autoDispatch != null) { var arr = autoDispatch.split("."); var eventName = arr.pop().toLowerCase(); var cls = arr.join("."); var event = Type.createInstance($hxClasses[cls],[eventName]); if(eventName != haxe_ui_events_UIEvent.CHANGE) { b._component.dispatch(event); } else if(changed == true || changed == null) { b._component.dispatch(event); } } } ,get: function(id) { this.lock(); var b = this.find(id); var v = null; if(b != null) { var info = this._registry.h[id]; if(info.isSet == false && info.defaultValue != null && js_Boot.getClass(b) == haxe_ui_behaviours_DefaultBehaviour) { v = info.defaultValue; } else { v = b.get(); } } this.unlock(); return v; } ,getDynamic: function(id) { this.lock(); var b = this.find(id); var v = null; if(b != null) { v = b.getDynamic(); } this.unlock(); return v; } ,call: function(id,param) { return this.find(id).call(param); } ,applyDefaults: function() { var order = this._updateOrder.slice(); var h = this._registry.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(order.indexOf(key) == -1) { order.push(key); } } var _g = 0; while(_g < order.length) { var key = order[_g]; ++_g; var r = this._registry.h[key]; if(r.defaultValue != null) { this.set(key,r.defaultValue); } } } ,__class__: haxe_ui_behaviours_Behaviours ,__properties__: {get_actualUpdateOrder:"get_actualUpdateOrder",set_updateOrder:"set_updateOrder",get_updateOrder:"get_updateOrder"} }; var haxe_ui_behaviours_DynamicBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.DynamicBehaviour"] = haxe_ui_behaviours_DynamicBehaviour; haxe_ui_behaviours_DynamicBehaviour.__name__ = "haxe.ui.behaviours.DynamicBehaviour"; haxe_ui_behaviours_DynamicBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_behaviours_DynamicBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ _value: null ,getDynamic: function() { return this._value; } ,setDynamic: function(value) { if(value == this._value) { return; } this._value = value; } ,set: function(value) { this.setDynamic(haxe_ui_util_Variant.toDynamic(value)); } ,__class__: haxe_ui_behaviours_DynamicBehaviour }); var haxe_ui_behaviours_DynamicDataBehaviour = function(component) { haxe_ui_behaviours_DynamicBehaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.DynamicDataBehaviour"] = haxe_ui_behaviours_DynamicDataBehaviour; haxe_ui_behaviours_DynamicDataBehaviour.__name__ = "haxe.ui.behaviours.DynamicDataBehaviour"; haxe_ui_behaviours_DynamicDataBehaviour.__interfaces__ = [haxe_ui_behaviours_IValidatingBehaviour]; haxe_ui_behaviours_DynamicDataBehaviour.__super__ = haxe_ui_behaviours_DynamicBehaviour; haxe_ui_behaviours_DynamicDataBehaviour.prototype = $extend(haxe_ui_behaviours_DynamicBehaviour.prototype,{ _dataInvalid: null ,setDynamic: function(value) { if(value == this.getDynamic()) { return; } this._value = value; this.invalidateData(); } ,validate: function() { if(this._dataInvalid) { this._dataInvalid = false; this.validateData(); } } ,invalidateData: function() { this._dataInvalid = true; this._component.invalidateComponent("data",false); } ,validateData: function() { } ,__class__: haxe_ui_behaviours_DynamicDataBehaviour }); var haxe_ui_behaviours_InvalidatingBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.InvalidatingBehaviour"] = haxe_ui_behaviours_InvalidatingBehaviour; haxe_ui_behaviours_InvalidatingBehaviour.__name__ = "haxe.ui.behaviours.InvalidatingBehaviour"; haxe_ui_behaviours_InvalidatingBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_behaviours_InvalidatingBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ get: function() { return this._value; } ,set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } haxe_ui_behaviours_ValueBehaviour.prototype.set.call(this,value); this._component.invalidateComponent(); } ,__class__: haxe_ui_behaviours_InvalidatingBehaviour }); var haxe_ui_behaviours_LayoutBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.behaviours.LayoutBehaviour"] = haxe_ui_behaviours_LayoutBehaviour; haxe_ui_behaviours_LayoutBehaviour.__name__ = "haxe.ui.behaviours.LayoutBehaviour"; haxe_ui_behaviours_LayoutBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_behaviours_LayoutBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,this.get())) { return; } haxe_ui_behaviours_ValueBehaviour.prototype.set.call(this,value); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_behaviours_LayoutBehaviour }); var haxe_ui_components_Canvas = function() { haxe_ui_core_Component.call(this); this.componentGraphics = new haxe_ui_graphics_ComponentGraphics(this); }; $hxClasses["haxe.ui.components.Canvas"] = haxe_ui_components_Canvas; haxe_ui_components_Canvas.__name__ = "haxe.ui.components.Canvas"; haxe_ui_components_Canvas.__interfaces__ = [haxe_ui_core_IDataComponent]; haxe_ui_components_Canvas.__super__ = haxe_ui_core_Component; haxe_ui_components_Canvas.prototype = $extend(haxe_ui_core_Component.prototype,{ componentGraphics: null ,validateComponentLayout: function() { var b = haxe_ui_core_Component.prototype.validateComponentLayout.call(this); if(this.get_width() <= 0 || this.get_height() <= 0) { return b; } this.componentGraphics.resize(this.get_width(),this.get_height()); return b; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if(this.get_dataSource() != null) { c.set_dataSource(this.get_dataSource()); } var tmp = this.componentGraphics._drawCommands.slice(); c.componentGraphics._drawCommands = tmp; c.componentGraphics.replayDrawCommands(); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("dataSource",haxe_ui_components__$Canvas_DataSourceBehaviour); } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,self: function() { return new haxe_ui_components_Canvas(); } ,__class__: haxe_ui_components_Canvas ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_dataSource:"set_dataSource",get_dataSource:"get_dataSource"}) }); var haxe_ui_components_Animation = function() { this._frameRate = null; this._player = null; haxe_ui_components_Canvas.call(this); this.componentGraphics.setProperty("html5.graphics.method","canvas"); }; $hxClasses["haxe.ui.components.Animation"] = haxe_ui_components_Animation; haxe_ui_components_Animation.__name__ = "haxe.ui.components.Animation"; haxe_ui_components_Animation.__super__ = haxe_ui_components_Canvas; haxe_ui_components_Animation.prototype = $extend(haxe_ui_components_Canvas.prototype,{ _player: null ,_frameRate: null ,get_frameRate: function() { return this._frameRate; } ,set_frameRate: function(value) { this._frameRate = value; if(this._player != null) { this._player.frameRate(this._frameRate); } return value; } ,_resource: null ,get_resource: function() { return this._resource; } ,set_resource: function(value) { if(this._player != null) { this._player.dispose(); } this._player = null; if(StringTools.endsWith(value,".gif")) { this._player = new haxe_ui_components__$Animation_GifAnimationPlayer(this); } else { haxe_Log.trace("animation type not supported",{ fileName : "haxe/ui/components/Animation.hx", lineNumber : 46, className : "haxe.ui.components.Animation", methodName : "set_resource"}); } this._resource = value; if(this._player != null) { this._player.loadResource(this._resource); if(this._frameRate != null) { this._player.frameRate(this._frameRate); } } return value; } ,registerBehaviours: function() { haxe_ui_components_Canvas.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Canvas.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Animation(); } ,registerComposite: function() { haxe_ui_components_Canvas.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components__$Animation_Layout; } ,__class__: haxe_ui_components_Animation ,__properties__: $extend(haxe_ui_components_Canvas.prototype.__properties__,{set_resource:"set_resource",get_resource:"get_resource",set_frameRate:"set_frameRate",get_frameRate:"get_frameRate"}) }); var haxe_ui_components__$Animation_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._Animation.Layout"] = haxe_ui_components__$Animation_Layout; haxe_ui_components__$Animation_Layout.__name__ = "haxe.ui.components._Animation.Layout"; haxe_ui_components__$Animation_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$Animation_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ calcAutoSize: function(exclusions) { var animation = js_Boot.__cast(this._component , haxe_ui_components_Animation); if(animation._player == null) { return new haxe_ui_geom_Size(0,0); } return animation._player.size(); } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$Animation_Layout(); } ,__class__: haxe_ui_components__$Animation_Layout }); var haxe_ui_components__$Animation_AnimationPlayer = function(canvas) { this._frameRate = null; this._canvas = canvas; }; $hxClasses["haxe.ui.components._Animation.AnimationPlayer"] = haxe_ui_components__$Animation_AnimationPlayer; haxe_ui_components__$Animation_AnimationPlayer.__name__ = "haxe.ui.components._Animation.AnimationPlayer"; haxe_ui_components__$Animation_AnimationPlayer.prototype = { _canvas: null ,dispose: function() { this._canvas = null; } ,loadResource: function(resource) { } ,_frameRate: null ,frameRate: function(value) { this._frameRate = value; } ,size: function() { return new haxe_ui_geom_Size(0,0); } ,__class__: haxe_ui_components__$Animation_AnimationPlayer }; var haxe_ui_components__$Animation_GifAnimationPlayer = function(canvas) { haxe_ui_components__$Animation_AnimationPlayer.call(this,canvas); haxe_Log.trace("format haxelib is required for animated gif decoding",{ fileName : "haxe/ui/components/Animation.hx", lineNumber : 109, className : "haxe.ui.components._Animation.GifAnimationPlayer", methodName : "new"}); }; $hxClasses["haxe.ui.components._Animation.GifAnimationPlayer"] = haxe_ui_components__$Animation_GifAnimationPlayer; haxe_ui_components__$Animation_GifAnimationPlayer.__name__ = "haxe.ui.components._Animation.GifAnimationPlayer"; haxe_ui_components__$Animation_GifAnimationPlayer.__super__ = haxe_ui_components__$Animation_AnimationPlayer; haxe_ui_components__$Animation_GifAnimationPlayer.prototype = $extend(haxe_ui_components__$Animation_AnimationPlayer.prototype,{ __class__: haxe_ui_components__$Animation_GifAnimationPlayer }); var haxe_ui_components_AtlasPlayer = function() { this._currentBounceDirection = "forward"; this._currentFrameIndex = -1; this._nextFrameMS = 0; this._frameInterval = 0; this._targetFrameRate = 60; this._resource = null; this._frames = []; this._playing = false; this.autoPlay = true; this.animationDirection = "forward"; var _gthis = this; haxe_ui_containers_Box.call(this); var c = this; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onHidden)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "this" + ")",{ fileName : "haxe/ui/components/AtlasPlayer.hx", lineNumber : 40, className : "haxe.ui.components.AtlasPlayer", methodName : "new"}); } var c = this; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onShown)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "this" + ")",{ fileName : "haxe/ui/components/AtlasPlayer.hx", lineNumber : 52, className : "haxe.ui.components.AtlasPlayer", methodName : "new"}); } }; $hxClasses["haxe.ui.components.AtlasPlayer"] = haxe_ui_components_AtlasPlayer; haxe_ui_components_AtlasPlayer.__name__ = "haxe.ui.components.AtlasPlayer"; haxe_ui_components_AtlasPlayer.__super__ = haxe_ui_containers_Box; haxe_ui_components_AtlasPlayer.prototype = $extend(haxe_ui_containers_Box.prototype,{ animationDirection: null ,autoPlay: null ,_playing: null ,_frames: null ,_resource: null ,get_resource: function() { return this._resource; } ,set_resource: function(value) { this._resource = value; this.checkAtlas(); return value; } ,_atlas: null ,get_atlas: function() { return this._atlas; } ,set_atlas: function(value) { this._atlas = value; this.checkAtlas(); return value; } ,onHidden: function(_) { if(this._resource == null) { return; } if(this._atlas == null) { return; } this.stop(); } ,onShown: function(_) { if(this._resource == null) { return; } if(this._atlas == null) { return; } if(this.autoPlay) { this.play(); } } ,checkAtlas: function() { if(this._resource == null) { return; } if(this._atlas == null) { return; } var atlasData = haxe_ui_ToolkitAssets.get_instance().getText(this._atlas); if(atlasData == null) { return; } this._frames = []; var atlasJson = JSON.parse(atlasData); var framesJson = atlasJson.frames; var _g = 0; while(_g < framesJson.length) { var frameJson = framesJson[_g]; ++_g; if(frameJson.frame != null) { this._frames.push({ x : frameJson.frame.x, y : frameJson.frame.y, w : frameJson.frame.w, h : frameJson.frame.h}); } } this.showFrame(0); var tmp = haxe_ui_util_Variant.toString(this._resource); this.get_customStyle().backgroundImage = haxe_ui_util_Variant.fromString(tmp); this.get_customStyle().backgroundImageRepeat = "stretch"; if(this.autoPlay && !this.get_hidden()) { this.play(); } } ,_targetFrameRate: null ,get_targetFrameRate: function() { return this._targetFrameRate; } ,set_targetFrameRate: function(value) { this._targetFrameRate = value; this._frameInterval = 1000 / value; return value; } ,_frameInterval: null ,_timer: null ,_nextFrameMS: null ,play: function() { if(this._playing) { return; } if(this._frames == null || this._frames.length <= 1) { return; } if(this._frameInterval == 0) { this._frameInterval = 1000 / this._targetFrameRate; } this._playing = true; this.showFrame(0); this._nextFrameMS = Date.now() + this._frameInterval; haxe_ui_Toolkit.callLater($bind(this,this.onCallLater)); } ,stop: function() { this._playing = false; } ,onCallLater: function() { if(!this._playing) { return; } var current = Date.now(); if(current >= this._nextFrameMS) { this._nextFrameMS = current + this._frameInterval; this.onTimer(); } haxe_ui_Toolkit.callLater($bind(this,this.onCallLater)); } ,timestamp: function() { return Date.now(); } ,onTimer: function() { if(this.animationDirection == "forward") { this.nextFrame(); } else if(this.animationDirection == "reverse") { this.prevFrame(); } else if(this.animationDirection == "bounce") { this.boundFrame(); } else { this.nextFrame(); } } ,_currentFrameIndex: null ,showFrame: function(frameIndex) { if(this._currentFrameIndex == frameIndex) { return; } this._currentFrameIndex = frameIndex; var frame = this._frames[frameIndex]; if(frame == null) { return; } this.get_customStyle().backgroundImageClipLeft = frame.x; this.get_customStyle().backgroundImageClipTop = frame.y; this.get_customStyle().backgroundImageClipBottom = frame.y + frame.h; this.get_customStyle().backgroundImageClipRight = frame.x + frame.w; this.invalidateComponent("style",false); } ,nextFrame: function() { var nextIndex = this._currentFrameIndex + 1; if(nextIndex >= this._frames.length) { nextIndex = 0; } this.showFrame(nextIndex); } ,prevFrame: function() { var nextIndex = this._currentFrameIndex - 1; if(nextIndex < 0) { nextIndex = this._frames.length - 1; } this.showFrame(nextIndex); } ,_currentBounceDirection: null ,boundFrame: function() { if(this._currentBounceDirection == "forward") { var nextIndex = this._currentFrameIndex + 1; if(nextIndex >= this._frames.length) { nextIndex = this._frames.length - 1; this._currentBounceDirection = "reverse"; } this.showFrame(nextIndex); } else { var nextIndex = this._currentFrameIndex - 1; if(nextIndex < 0) { nextIndex = 0; this._currentBounceDirection = "forward"; } this.showFrame(nextIndex); } } ,validateComponentLayout: function() { if(this._currentFrameIndex != -1) { var frame = this._frames[this._currentFrameIndex]; if(this.get_autoWidth()) { this.set_width(frame.w); } if(this.get_autoHeight()) { this.set_height(frame.h); } } return false; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_AtlasPlayer(); } ,__class__: haxe_ui_components_AtlasPlayer ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_targetFrameRate:"set_targetFrameRate",get_targetFrameRate:"get_targetFrameRate",set_atlas:"set_atlas",get_atlas:"get_atlas",set_resource:"set_resource",get_resource:"get_resource"}) }); var haxe_ui_core_IValueComponent = function() { }; $hxClasses["haxe.ui.core.IValueComponent"] = haxe_ui_core_IValueComponent; haxe_ui_core_IValueComponent.__name__ = "haxe.ui.core.IValueComponent"; haxe_ui_core_IValueComponent.__isInterface__ = true; haxe_ui_core_IValueComponent.prototype = { get_value: null ,set_value: null ,__class__: haxe_ui_core_IValueComponent ,__properties__: {set_value:"set_value",get_value:"get_value"} }; var haxe_ui_focus_IFocusable = function() { }; $hxClasses["haxe.ui.focus.IFocusable"] = haxe_ui_focus_IFocusable; haxe_ui_focus_IFocusable.__name__ = "haxe.ui.focus.IFocusable"; haxe_ui_focus_IFocusable.__isInterface__ = true; haxe_ui_focus_IFocusable.prototype = { get_focus: null ,set_focus: null ,get_allowFocus: null ,set_allowFocus: null ,get_autoFocus: null ,set_autoFocus: null ,get_disabled: null ,set_disabled: null ,__class__: haxe_ui_focus_IFocusable ,__properties__: {set_disabled:"set_disabled",get_disabled:"get_disabled",set_autoFocus:"set_autoFocus",get_autoFocus:"get_autoFocus",set_allowFocus:"set_allowFocus",get_allowFocus:"get_allowFocus",set_focus:"set_focus",get_focus:"get_focus"} }; var haxe_ui_core_InteractiveComponent = function() { this._validators = null; this._autoFocus = true; this._allowFocus = true; this._focus = false; this.actionRepeatInterval = 100; haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.core.InteractiveComponent"] = haxe_ui_core_InteractiveComponent; haxe_ui_core_InteractiveComponent.__name__ = "haxe.ui.core.InteractiveComponent"; haxe_ui_core_InteractiveComponent.__interfaces__ = [haxe_ui_core_IValueComponent,haxe_ui_focus_IFocusable]; haxe_ui_core_InteractiveComponent.__super__ = haxe_ui_core_Component; haxe_ui_core_InteractiveComponent.prototype = $extend(haxe_ui_core_Component.prototype,{ actionRepeatInterval: null ,_focus: null ,get_focus: function() { return this._focus; } ,set_focus: function(value) { if(this._focus == value || this.get_allowFocus() == false) { return value; } this._focus = value; var eventType = null; if(this._focus == true) { eventType = haxe_ui_events_FocusEvent.FOCUS_IN; haxe_ui_focus_FocusManager.get_instance().set_focus(js_Boot.__cast(this , haxe_ui_focus_IFocusable)); var scrollview = this.findScroller(); if(scrollview != null) { scrollview.ensureVisible(this); } } else { eventType = haxe_ui_events_FocusEvent.FOCUS_OUT; haxe_ui_focus_FocusManager.get_instance().set_focus(null); } this.invalidateComponent("data",false); this.dispatch(new haxe_ui_events_FocusEvent(eventType)); return value; } ,_allowFocus: null ,get_allowFocus: function() { return this._allowFocus; } ,set_allowFocus: function(value) { if(this._allowFocus == value) { return value; } this._allowFocus = value; var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(js_Boot.__implements(child,haxe_ui_focus_IFocusable)) { (js_Boot.__cast(child , haxe_ui_focus_IFocusable)).set_allowFocus(value); } } return value; } ,_autoFocus: null ,get_autoFocus: function() { return this._autoFocus; } ,set_autoFocus: function(value) { if(this._autoFocus == value) { return value; } this._autoFocus = value; var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(js_Boot.__implements(child,haxe_ui_focus_IFocusable)) { (js_Boot.__cast(child , haxe_ui_focus_IFocusable)).set_autoFocus(value); } } return value; } ,_validators: null ,get_validators: function() { return this._validators; } ,set_validators: function(value) { if(value == null) { this.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this._onInteractiveChange)); } this._validators = value; if(this._validators != null) { this._validators.component = this; this.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this._onInteractiveChange)); this._validators.setup(); this._validators.validate(); } return value; } ,_onInteractiveChange: function(event) { if(this._validators != null) { this._validators.validate(); } } ,onDestroy: function() { if(this._validators != null) { this._validators.component = null; this._validators = null; } haxe_ui_core_Component.prototype.onDestroy.call(this); } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("allowInteraction",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(true)); } ,get_allowInteraction: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("allowInteraction")); } ,set_allowInteraction: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("allowInteraction",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"allowInteraction")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if(this.get_validators() != null) { c.set_validators(this.get_validators()); } c.set_allowInteraction(this.get_allowInteraction()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_core_InteractiveComponent(); } ,__class__: haxe_ui_core_InteractiveComponent ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_allowInteraction:"set_allowInteraction",get_allowInteraction:"get_allowInteraction",set_validators:"set_validators",get_validators:"get_validators",set_autoFocus:"set_autoFocus",get_autoFocus:"get_autoFocus",set_allowFocus:"set_allowFocus",get_allowFocus:"get_allowFocus",set_focus:"set_focus",get_focus:"get_focus"}) }); var haxe_ui_core_ICompositeInteractiveComponent = function() { }; $hxClasses["haxe.ui.core.ICompositeInteractiveComponent"] = haxe_ui_core_ICompositeInteractiveComponent; haxe_ui_core_ICompositeInteractiveComponent.__name__ = "haxe.ui.core.ICompositeInteractiveComponent"; haxe_ui_core_ICompositeInteractiveComponent.__isInterface__ = true; var haxe_ui_components_Button = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.Button"] = haxe_ui_components_Button; haxe_ui_components_Button.__name__ = "haxe.ui.components.Button"; haxe_ui_components_Button.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent]; haxe_ui_components_Button.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_Button.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("repeater",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("repeatInterval",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(100)); this.behaviours.register("easeInRepeater",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("remainPressed",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("toggle",haxe_ui_components__$Button_ToggleBehaviour); this.behaviours.register("selected",haxe_ui_components__$Button_SelectedBehaviour); this.behaviours.register("text",haxe_ui_components__$Button_TextBehaviour); this.behaviours.register("icon",haxe_ui_components__$Button_IconBehaviour); this.behaviours.register("componentGroup",haxe_ui_components__$Button_GroupBehaviour); } ,get_repeater: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("repeater")); } ,set_repeater: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("repeater",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"repeater")); return value; } ,get_repeatInterval: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("repeatInterval")); } ,set_repeatInterval: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("repeatInterval",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"repeatInterval")); return value; } ,get_easeInRepeater: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("easeInRepeater")); } ,set_easeInRepeater: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("easeInRepeater",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"easeInRepeater")); return value; } ,get_remainPressed: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("remainPressed")); } ,set_remainPressed: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("remainPressed",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"remainPressed")); return value; } ,get_toggle: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("toggle")); } ,set_toggle: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("toggle",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"toggle")); return value; } ,get_selected: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("selected")); } ,set_selected: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selected",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selected")); return value; } ,get_icon: function() { if(this.behaviours == null) { return null; } return this.behaviours.get("icon"); } ,set_icon: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("icon",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"icon")); return value; } ,get_componentGroup: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("componentGroup")); } ,set_componentGroup: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"componentGroup",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("componentGroup",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"componentGroup")); return value; } ,get_value: function() { return this.get_text(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2:case 3: this.set_text(Std.string(value)); break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_text(haxe_ui_util_Variant.toString(v)); } else { this.set_text(value); } break; default: this.set_text(value); } return value; } ,get_iconPosition: function() { if(this.get_customStyle().iconPosition != null) { return this.get_customStyle().iconPosition; } if(this.get_style() == null || this.get_style().iconPosition == null) { return null; } return this.get_style().iconPosition; } ,set_iconPosition: function(value) { if(this.get_customStyle().iconPosition == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().iconPosition = null; } else { this.get_customStyle().iconPosition = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_fontSize: function() { if(this.get_customStyle().fontSize != null) { return this.get_customStyle().fontSize; } if(this.get_style() == null || this.get_style().fontSize == null) { return null; } return this.get_style().fontSize; } ,set_fontSize: function(value) { if(this.get_customStyle().fontSize == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().fontSize = null; } else { this.get_customStyle().fontSize = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_textAlign: function() { if(this.get_customStyle().textAlign != null) { return this.get_customStyle().textAlign; } if(this.get_style() == null || this.get_style().textAlign == null) { return null; } return this.get_style().textAlign; } ,set_textAlign: function(value) { if(this.get_customStyle().textAlign == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().textAlign = null; } else { this.get_customStyle().textAlign = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); c.set_repeater(this.get_repeater()); c.set_repeatInterval(this.get_repeatInterval()); c.set_easeInRepeater(this.get_easeInRepeater()); c.set_remainPressed(this.get_remainPressed()); c.set_toggle(this.get_toggle()); c.set_selected(this.get_selected()); if(this.get_icon() != null) { c.set_icon(this.get_icon()); } if(this.get_componentGroup() != null) { c.set_componentGroup(this.get_componentGroup()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Button(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components_ButtonEvents; this._compositeBuilderClass = haxe_ui_components_ButtonBuilder; this._defaultLayoutClass = haxe_ui_components_ButtonLayout; } ,__class__: haxe_ui_components_Button ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_textAlign:"set_textAlign",get_textAlign:"get_textAlign",set_fontSize:"set_fontSize",get_fontSize:"get_fontSize",set_iconPosition:"set_iconPosition",get_iconPosition:"get_iconPosition",set_componentGroup:"set_componentGroup",get_componentGroup:"get_componentGroup",set_icon:"set_icon",get_icon:"get_icon",set_selected:"set_selected",get_selected:"get_selected",set_toggle:"set_toggle",get_toggle:"get_toggle",set_remainPressed:"set_remainPressed",get_remainPressed:"get_remainPressed",set_easeInRepeater:"set_easeInRepeater",get_easeInRepeater:"get_easeInRepeater",set_repeatInterval:"set_repeatInterval",get_repeatInterval:"get_repeatInterval",set_repeater:"set_repeater",get_repeater:"get_repeater"}) }); var haxe_ui_components_ButtonLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components.ButtonLayout"] = haxe_ui_components_ButtonLayout; haxe_ui_components_ButtonLayout.__name__ = "haxe.ui.components.ButtonLayout"; haxe_ui_components_ButtonLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_ButtonLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ iconPosition: null ,get_iconPosition: function() { if(this.get_component().get_style() == null || this.get_component().get_style().iconPosition == null) { return "left"; } return this.get_component().get_style().iconPosition; } ,resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); if(this._component.get_autoWidth() == false) { var label = this.get_component().findComponent(null,haxe_ui_components_Label,false); var ucx = this.get_usableSize().width; if(label != null) { label.set_width(ucx); } var itemRenderer = this.get_component().findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer != null) { itemRenderer.set_width(ucx); } } if(this._component.get_autoHeight() == false) { var icon = this.get_component().findComponent("button-icon",null,false); var ucy = this.get_usableSize().height; if(icon != null) { if(icon.get_height() > 0 && ucy > 0 && icon.get_height() > ucy) { var ratio = icon.get_width() / icon.get_height(); icon.set_height(ucy); icon.set_width(ucy * ratio); } } } } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var icon = this.get_component().findComponent("button-icon",null,false); if(icon != null && (this.get_iconPosition() == "far-right" || this.get_iconPosition() == "far-left" || this.get_iconPosition() == "left" || this.get_iconPosition() == "right")) { size.width -= icon.get_width() + this.get_verticalSpacing(); } return size; } ,calcAutoSize: function(exclusions) { var exclusions = []; var itemRenderer = this.get_component().findComponent(null,haxe_ui_core_ItemRenderer); var icon = this.get_component().findComponent("button-icon",null,false); var tmp; if(itemRenderer != null) { var icon1 = this.get_component().findComponent("button-icon",null,false); tmp = icon1 != null && (this.get_iconPosition() == "far-right" || this.get_iconPosition() == "far-left" || this.get_iconPosition() == "left" || this.get_iconPosition() == "right"); } else { tmp = false; } if(tmp) { exclusions.push(icon); } var size = haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); var tmp; if(itemRenderer != null) { var icon1 = this.get_component().findComponent("button-icon",null,false); tmp = icon1 != null && (this.get_iconPosition() == "far-right" || this.get_iconPosition() == "far-left" || this.get_iconPosition() == "left" || this.get_iconPosition() == "right"); } else { tmp = false; } if(tmp) { size.width += icon.get_width() + this.get_verticalSpacing(); } return size; } ,isIconRelevant: function() { var icon = this.get_component().findComponent("button-icon",null,false); if(icon != null) { if(!(this.get_iconPosition() == "far-right" || this.get_iconPosition() == "far-left" || this.get_iconPosition() == "left")) { return this.get_iconPosition() == "right"; } else { return true; } } else { return false; } } ,repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var label = this.get_component().findComponent(null,haxe_ui_components_Label,false); if(label != null && label.get_hidden() == true) { label = null; } var icon = this.get_component().findComponent("button-icon",null,false); if(icon != null && icon.get_hidden() == true) { icon = null; } switch(this.get_iconPosition()) { case "bottom":case "top": if(label != null && icon != null) { var cy = label.get_componentHeight() + icon.get_componentHeight() + this.get_verticalSpacing(); var y = this.get_component().get_componentHeight() / 2 - cy / 2 | 0; if(this.get_iconPosition() == "bottom") { label.set_top(y + this.marginTop(label) - this.marginBottom(label)); y += this.get_verticalSpacing() + label.get_componentHeight(); icon.set_top(y + this.marginTop(icon) - this.marginBottom(icon)); } else { icon.set_top(y + this.marginTop(icon) - this.marginBottom(icon)); y += this.get_verticalSpacing() + icon.get_componentHeight(); label.set_top(y + this.marginTop(label) - this.marginBottom(label)); } label.set_left(this.getTextAlignPos(label,this.get_component().get_componentWidth())); icon.set_left((this.get_component().get_componentWidth() / 2 - icon.get_componentWidth() / 2 | 0) + this.marginLeft(icon) - this.marginRight(icon)); } else if(label != null) { label.set_left((this.get_component().get_componentWidth() / 2 - label.get_componentWidth() / 2 | 0) + this.marginLeft(label) - this.marginRight(label)); label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); } else if(icon != null) { icon.set_left((this.get_component().get_componentWidth() / 2 - icon.get_componentWidth() / 2 | 0) + this.marginLeft(icon) - this.marginRight(icon)); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } break; case "far-left": if(label != null && icon != null) { var x = this.get_paddingLeft(); if(this.get_iconPosition() == "far-left") { icon.set_left(x + this.marginLeft(icon) - this.marginRight(icon)); x += this.get_horizontalSpacing() + icon.get_componentWidth(); label.set_left(x + this.marginLeft(label) - this.marginRight(label)); } label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } else if(label != null) { label.set_left(this.get_paddingLeft()); label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); } else if(icon != null) { icon.set_left(this.get_component().get_componentWidth() / 2 - icon.get_componentWidth() / 2 | 0); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } break; case "far-right": if(label != null && icon != null) { var cx = label.get_componentWidth() + icon.get_componentWidth() + this.get_horizontalSpacing(); var x = this.get_component().get_componentWidth() / 2 - cx / 2 | 0; if(this.get_iconPosition() == "far-right") { if(cx + this.get_paddingLeft() + this.get_paddingRight() < this.get_component().get_componentWidth()) { label.set_left(this.get_paddingLeft()); x += this.get_horizontalSpacing() + label.get_componentWidth(); icon.set_left(this.get_component().get_componentWidth() - icon.get_componentWidth() - this.get_paddingRight() + this.marginLeft(icon) - this.marginRight(icon)); } else { label.set_left(this.get_paddingLeft()); x += this.get_horizontalSpacing() + label.get_componentWidth(); icon.set_left(x + this.marginLeft(icon) - this.marginRight(icon)); } } label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } else if(label != null) { label.set_left(this.get_paddingLeft()); label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); } else if(icon != null) { icon.set_left(this.get_component().get_componentWidth() - icon.get_componentWidth() - this.get_paddingRight() + this.marginLeft(icon) - this.marginRight(icon)); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } break; case "left":case "right": if(label != null && icon != null) { var cx = label.get_componentWidth() + icon.get_componentWidth() + this.get_horizontalSpacing(); var x = this.get_component().get_componentWidth() / 2 - cx / 2 | 0; if((js_Boot.__cast(this.get_component() , haxe_ui_components_Button)).get_textAlign() == "left") { x = this.get_paddingLeft(); } if(this.get_iconPosition() == "right") { label.set_left(x + this.marginLeft(label) - this.marginRight(label)); x += this.get_horizontalSpacing() + label.get_componentWidth(); icon.set_left(x + this.marginLeft(icon) - this.marginRight(icon)); } else { icon.set_left(x + this.marginLeft(icon) - this.marginRight(icon)); x += this.get_horizontalSpacing() + icon.get_componentWidth(); label.set_left(x + this.marginLeft(label) - this.marginRight(label)); } label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } else if(label != null) { label.set_left(this.getTextAlignPos(label,this.get_component().get_componentWidth())); label.set_top((this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2 | 0) + this.marginTop(label) - this.marginBottom(label)); } else if(icon != null) { icon.set_left(this.get_component().get_componentWidth() / 2 - icon.get_componentWidth() / 2 | 0); icon.set_top((this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2 | 0) + this.marginTop(icon) - this.marginBottom(icon)); } break; } } ,getTextAlignPos: function(label,usableWidth) { switch((js_Boot.__cast(this.get_component() , haxe_ui_components_Button)).get_textAlign()) { case "left": return this.marginLeft(label) + this.get_paddingLeft(); case "right": return usableWidth - label.get_componentWidth() - this.marginRight(label) - this.get_paddingRight(); default: return (usableWidth / 2 - label.get_componentWidth() / 2 | 0) + this.marginLeft(label) - this.marginRight(label); } } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_ButtonLayout(); } ,__class__: haxe_ui_components_ButtonLayout ,__properties__: $extend(haxe_ui_layouts_DefaultLayout.prototype.__properties__,{get_iconPosition:"get_iconPosition"}) }); var haxe_ui_components__$Button_GroupBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Button.GroupBehaviour"] = haxe_ui_components__$Button_GroupBehaviour; haxe_ui_components__$Button_GroupBehaviour.__name__ = "haxe.ui.components._Button.GroupBehaviour"; haxe_ui_components__$Button_GroupBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Button_GroupBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); if(this._previousValue != null && !haxe_ui_util_Variant.get_isNull(this._previousValue) && haxe_ui_util_Variant.toString(this._previousValue) != haxe_ui_util_Variant.toString(this._value)) { haxe_ui_components_ButtonGroups.get_instance().remove(haxe_ui_util_Variant.toString(this._previousValue),this._component); } haxe_ui_components_ButtonGroups.get_instance().add(haxe_ui_util_Variant.toString(value),this._component); } ,validateData: function() { if(this._previousValue != null && !haxe_ui_util_Variant.get_isNull(this._previousValue) && haxe_ui_util_Variant.toString(this._previousValue) != haxe_ui_util_Variant.toString(this._value)) { haxe_ui_components_ButtonGroups.get_instance().remove(haxe_ui_util_Variant.toString(this._previousValue),this._component); } haxe_ui_components_ButtonGroups.get_instance().add(haxe_ui_util_Variant.toString(this._value),this._component); } ,__class__: haxe_ui_components__$Button_GroupBehaviour }); var haxe_ui_components__$Button_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Button.TextBehaviour"] = haxe_ui_components__$Button_TextBehaviour; haxe_ui_components__$Button_TextBehaviour.__name__ = "haxe.ui.components._Button.TextBehaviour"; haxe_ui_components__$Button_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Button_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ get: function() { var itemRenderer = this._component.findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer == null) { return haxe_ui_behaviours_DataBehaviour.prototype.get.call(this); } else if(!this._component.get_isReady()) { return haxe_ui_behaviours_DataBehaviour.prototype.get.call(this); } else { var data = itemRenderer.get_data(); var text = null; if(data != null) { if(Type.typeof(data) == ValueType.TObject) { text = data.text; if(text == null) { text = data.value; } } else { text = Std.string(data); } } return haxe_ui_util_Variant.fromString(text); } } ,validateData: function() { var itemRenderer = this._component.findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer != null) { var data = itemRenderer.get_data(); if(data == null) { data = { }; } else { data = Reflect.copy(data); } data.text = haxe_ui_util_Variant.toString(this._value); itemRenderer.set_data(data); } else { var label = this._component.findComponent(null,haxe_ui_components_Label,false); if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { if(label != null) { this._component.removeComponent(label); } } else { if(label == null) { label = new haxe_ui_components_Label(); label.set_id("button-label"); label.set_scriptAccess(false); this._component.addComponent(label); var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } label.set_text(haxe_ui_util_Variant.toString(this._value)); } } } ,__class__: haxe_ui_components__$Button_TextBehaviour }); var haxe_ui_components__$Button_IconBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Button.IconBehaviour"] = haxe_ui_components__$Button_IconBehaviour; haxe_ui_components__$Button_IconBehaviour.__name__ = "haxe.ui.components._Button.IconBehaviour"; haxe_ui_components__$Button_IconBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Button_IconBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var icon = this._component.findComponent("button-icon",null,false); if((this._value == null || haxe_ui_util_Variant.get_isNull(this._value) || haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromString(""))) && icon != null) { this._component.get_customStyle().icon = null; this._component.removeComponent(icon); return; } if(icon == null) { icon = new haxe_ui_components_Image(); icon.addClass("icon"); icon.set_id("button-icon"); icon.set_scriptAccess(false); this._component.addComponentAt(icon,0); var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } icon.set_resource(this._value); } ,__class__: haxe_ui_components__$Button_IconBehaviour }); var haxe_ui_components__$Button_ToggleBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Button.ToggleBehaviour"] = haxe_ui_components__$Button_ToggleBehaviour; haxe_ui_components__$Button_ToggleBehaviour.__name__ = "haxe.ui.components._Button.ToggleBehaviour"; haxe_ui_components__$Button_ToggleBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Button_ToggleBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ _value: null ,get: function() { return this._value; } ,set: function(value) { if(haxe_ui_util_Variant.eq(this._value,value)) { return; } this._value = value; var button = js_Boot.__cast(this._component , haxe_ui_components_Button); if(haxe_ui_util_Variant.eq(value,haxe_ui_util_Variant.fromBool(false))) { button.set_selected(false); } button.registerInternalEvents(button._internalEventsClass,true); } ,__class__: haxe_ui_components__$Button_ToggleBehaviour }); var haxe_ui_components__$Button_SelectedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Button.SelectedBehaviour"] = haxe_ui_components__$Button_SelectedBehaviour; haxe_ui_components__$Button_SelectedBehaviour.__name__ = "haxe.ui.components._Button.SelectedBehaviour"; haxe_ui_components__$Button_SelectedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Button_SelectedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var button = js_Boot.__cast(this._component , haxe_ui_components_Button); if(button.get_toggle() == false) { return; } haxe_ui_components_ButtonGroups.get_instance().setSelection(button,haxe_ui_util_Variant.toBool(this._value)); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false))) { button.removeClass(":down",true,true); } else { button.addClass(":down",true,true); } var events = js_Boot.__cast(button._internalEvents , haxe_ui_components_ButtonEvents); if(button.hitTest(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY)) { button.addClass(":hover",true,events.recursiveStyling); } else { button.removeClass(":hover",true,events.recursiveStyling); } events.dispatchChanged(); } ,__class__: haxe_ui_components__$Button_SelectedBehaviour }); var haxe_ui_events_Events = function(target) { this._target = target; }; $hxClasses["haxe.ui.events.Events"] = haxe_ui_events_Events; haxe_ui_events_Events.__name__ = "haxe.ui.events.Events"; haxe_ui_events_Events.prototype = { _target: null ,register: function() { } ,unregister: function() { } ,onDispose: function() { } ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this._target == null || this._target._isDisposed) { return; } if(this.hasEvent(type,listener) == false) { this._target.registerEvent(type,listener,priority); } } ,hasEvent: function(type,listener) { if(this._target == null || this._target._isDisposed) { return false; } return this._target.hasEvent(type,listener); } ,unregisterEvent: function(type,listener) { if(this._target == null || this._target._isDisposed) { return; } this._target.unregisterEvent(type,listener); } ,dispatch: function(event) { if(this._target == null || this._target._isDisposed) { return; } this._target.dispatch(event); } ,__class__: haxe_ui_events_Events }; var haxe_ui_components_ButtonEvents = function(button) { this.recursiveStyling = true; this._repeatInterval = 0; this._repeater = false; this._down = false; haxe_ui_events_Events.call(this,button); this._button = button; }; $hxClasses["haxe.ui.components.ButtonEvents"] = haxe_ui_components_ButtonEvents; haxe_ui_components_ButtonEvents.__name__ = "haxe.ui.components.ButtonEvents"; haxe_ui_components_ButtonEvents.__super__ = haxe_ui_events_Events; haxe_ui_components_ButtonEvents.prototype = $extend(haxe_ui_events_Events.prototype,{ _button: null ,_down: null ,_repeatTimer: null ,_repeater: null ,_repeatInterval: null ,recursiveStyling: null ,register: function() { if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } if(this.hasEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this.onMove)) == false) { this.registerEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this.onMove)); } if(this.hasEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)) == false) { this.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } if(this.hasEvent(haxe_ui_events_ActionEvent.ACTION_END,$bind(this,this.onActionEnd)) == false) { this.registerEvent(haxe_ui_events_ActionEvent.ACTION_END,$bind(this,this.onActionEnd)); } if(this._button.get_toggle() == true) { this.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onMouseClick),100); } } ,unregister: function() { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onMouseClick)); this.unregisterEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this.onMove)); this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_END,$bind(this,this.onActionEnd)); } ,onMouseOver: function(event) { if(this._button.get_toggle() == true && this._button.classes.indexOf(":down") != -1) { return; } if(event.buttonDown == false || this._down == false) { this._button.addClass(":hover",true,this.recursiveStyling); } else { this._button.addClass(":down",true,this.recursiveStyling); } } ,onMouseOut: function(event) { if(this._button.get_toggle() == true && this._button.get_selected() == true) { return; } if(this._button.get_remainPressed() == false) { this._button.removeClass(":down",true,this.recursiveStyling); } this._button.removeClass(":hover",true,this.recursiveStyling); } ,onMouseDown: function(event) { var _gthis = this; this._button.set_focus(true); if(this._button.get_repeater() == true && this._repeatInterval == 0) { this._repeatInterval = this._button.get_easeInRepeater() ? this._button.get_repeatInterval() * 2 : this._button.get_repeatInterval(); } this._down = true; this._button.addClass(":down",true,this.recursiveStyling); this._button.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onMouseUp)); if(this._repeater == true && this._repeatInterval == this._button.get_repeatInterval()) { this._repeatTimer = new haxe_ui_util_Timer(this._repeatInterval,$bind(this,this.onRepeatTimer)); } else if(this._button.get_repeater() == true) { if(this._repeatTimer != null) { this._repeatTimer.stop(); this._repeatTimer = null; } haxe_ui_util_Timer.delay(function() { if(_gthis._repeater == true && _gthis._repeatTimer == null) { if(_gthis._button.get_easeInRepeater() == true && _gthis._repeatInterval > _gthis._button.get_repeatInterval()) { var tmp = _gthis._repeatInterval - (_gthis._repeatInterval - _gthis._button.get_repeatInterval()) / 2 | 0; _gthis._repeatInterval = tmp; _gthis.onRepeatTimer(); } _gthis.onMouseDown(event); } },this._repeatInterval); } this._repeater = this._button.get_repeater(); } ,onMouseUp: function(event) { this._down = this._repeater = false; this._repeatInterval = this._button.get_easeInRepeater() ? this._button.get_repeatInterval() * 2 : this._button.get_repeatInterval(); this._button.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onMouseUp)); if(this._button.get_toggle() == true) { return; } this._button.removeClass(":down",true,this.recursiveStyling); var over = this._button.hitTest(event.screenX,event.screenY); if(event.touchEvent == false && over == true) { this._button.addClass(":hover",true,this.recursiveStyling); } else if(over == false) { this._button.removeClass(":hover",true,this.recursiveStyling); } if(this._repeatTimer != null) { this._repeatTimer.stop(); this._repeatTimer = null; } } ,onMove: function(event) { var over = this._button.hitTest(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY); if(over == true) { this._button.addClass(":hover",true,this.recursiveStyling); } else if(over == false) { this._button.removeClass(":hover",true,this.recursiveStyling); } } ,onRepeatTimer: function() { if(this._button.classes.indexOf(":hover") != -1 && this._down == true) { var event = new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.CLICK); this._button.dispatch(event); } } ,onMouseClick: function(event) { this._button.set_selected(!this._button.get_selected()); if(this._button.get_selected() == false) { this._button.removeClass(":down",true,this.recursiveStyling); } if(this._button.hitTest(event.screenX,event.screenY)) { this._button.addClass(":hover",true,this.recursiveStyling); } } ,dispatchChanged: function() { this._button.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,press: function() { this._down = true; if(this._button.get_toggle() == true) { this._button.addClass(":down",true,this.recursiveStyling); } else { this._button.addClass(":down",true,this.recursiveStyling); } } ,release: function() { if(this._down == true) { this._down = false; if(this._button.get_toggle() == true) { this._button.set_selected(!this._button.get_selected()); this._button.dispatch(new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.CLICK)); } else { this._button.removeClass(":down",true,this.recursiveStyling); this._button.dispatch(new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.CLICK)); } } } ,onActionStart: function(event) { switch(event.action) { case "actionConfirm":case "actionPress": if(this._button.get_repeater() == true) { if(this._repeatInterval == 0) { this._repeatInterval = this._button.get_easeInRepeater() ? this._button.get_repeatInterval() * 2 : this._button.get_repeatInterval(); } this._button.actionRepeatInterval = this._repeatInterval; event.repeater = true; } this.press(); if(this._button.get_repeater() == true) { this._button.dispatch(new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.CLICK)); if(this._repeatInterval > this._button.get_repeatInterval()) { this._repeatInterval = this._repeatInterval - (this._repeatInterval - this._button.get_repeatInterval()) / 2 | 0; } } break; default: } } ,onActionEnd: function(event) { switch(event.action) { case "actionConfirm":case "actionPress": this.release(); this._repeatInterval = 0; break; default: } } ,__class__: haxe_ui_components_ButtonEvents }); var haxe_ui_core_CompositeBuilder = function(component) { this._component = component; }; $hxClasses["haxe.ui.core.CompositeBuilder"] = haxe_ui_core_CompositeBuilder; haxe_ui_core_CompositeBuilder.__name__ = "haxe.ui.core.CompositeBuilder"; haxe_ui_core_CompositeBuilder.prototype = { _component: null ,create: function() { } ,destroy: function() { } ,onInitialize: function() { } ,onReady: function() { } ,show: function() { return false; } ,hide: function() { return false; } ,get_numComponents: function() { return null; } ,get_cssName: function() { return null; } ,addComponent: function(child) { return null; } ,addComponentAt: function(child,index) { return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return null; } ,removeComponentAt: function(index,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return null; } ,removeAllComponents: function(dispose) { if(dispose == null) { dispose = true; } return false; } ,getComponentIndex: function(child) { return -2147483648; } ,setComponentIndex: function(child,index) { return null; } ,getComponentAt: function(index) { return null; } ,validateComponentLayout: function() { return false; } ,validateComponentData: function() { } ,applyStyle: function(style) { } ,onComponentAdded: function(child) { } ,onComponentRemoved: function(child) { } ,findComponent: function(criteria,type,recursive,searchType) { var _g = 0; var _g1 = this.get_numComponents(); while(_g < _g1) { var i = _g++; var c = this.getComponentAt(i); var match = c.findComponent(criteria,type,recursive,searchType); if(match != null) { return match; } } return null; } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } return null; } ,isComponentClipped: null ,get_isComponentClipped: function() { return this._component.get_componentClipRect() != null; } ,__class__: haxe_ui_core_CompositeBuilder ,__properties__: {get_isComponentClipped:"get_isComponentClipped",get_cssName:"get_cssName",get_numComponents:"get_numComponents"} }; var haxe_ui_components_ButtonBuilder = function(button) { haxe_ui_core_CompositeBuilder.call(this,button); this._button = button; }; $hxClasses["haxe.ui.components.ButtonBuilder"] = haxe_ui_components_ButtonBuilder; haxe_ui_components_ButtonBuilder.__name__ = "haxe.ui.components.ButtonBuilder"; haxe_ui_components_ButtonBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components_ButtonBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _button: null ,onReady: function() { haxe_ui_core_CompositeBuilder.prototype.onReady.call(this); var renderer = this._button.findComponent(null,haxe_ui_core_ItemRenderer); if(renderer != null) { if(!this._button.get_autoWidth()) { renderer.removeClass("auto-size"); } else { renderer.addClass("auto-size"); } } } ,applyStyle: function(style) { haxe_ui_core_CompositeBuilder.prototype.applyStyle.call(this,style); var c = this._component.findComponent("button-label",haxe_ui_core_Component,false); if(c != null) { var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(style.fontBold != null && c.get_customStyle().fontBold != style.fontBold) { c.get_customStyle().fontBold = style.fontBold; invalidate = true; } if(style.fontUnderline != null && c.get_customStyle().fontUnderline != style.fontUnderline) { c.get_customStyle().fontUnderline = style.fontUnderline; invalidate = true; } if(style.fontItalic != null && c.get_customStyle().fontItalic != style.fontItalic) { c.get_customStyle().fontItalic = style.fontItalic; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } var c = this._component.findComponent("button-icon",haxe_ui_core_Component,false); if(c != null) { var invalidate = false; if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } var list = this._component.findComponents(null,haxe_ui_components_Label,16777215); var _g = 0; while(_g < list.length) { var c = list[_g]; ++_g; var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(style.fontBold != null && c.get_customStyle().fontBold != style.fontBold) { c.get_customStyle().fontBold = style.fontBold; invalidate = true; } if(style.fontUnderline != null && c.get_customStyle().fontUnderline != style.fontUnderline) { c.get_customStyle().fontUnderline = style.fontUnderline; invalidate = true; } if(style.fontItalic != null && c.get_customStyle().fontItalic != style.fontItalic) { c.get_customStyle().fontItalic = style.fontItalic; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } if(style.icon != null) { this._button.set_icon(style.icon); } } ,addComponent: function(child) { if(((child) instanceof haxe_ui_core_ItemRenderer)) { var existingRenderer = this._component.findComponent(null,haxe_ui_core_ItemRenderer); if(existingRenderer != null) { this._component.removeComponent(existingRenderer); } child.addClass("auto-size"); } return null; } ,__class__: haxe_ui_components_ButtonBuilder }); var haxe_ui_components_ButtonGroups = function() { this._groups = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.components.ButtonGroups"] = haxe_ui_components_ButtonGroups; haxe_ui_components_ButtonGroups.__name__ = "haxe.ui.components.ButtonGroups"; haxe_ui_components_ButtonGroups.__properties__ = {get_instance:"get_instance"}; haxe_ui_components_ButtonGroups._instance = null; haxe_ui_components_ButtonGroups.instance = null; haxe_ui_components_ButtonGroups.get_instance = function() { if(haxe_ui_components_ButtonGroups._instance == null) { haxe_ui_components_ButtonGroups._instance = new haxe_ui_components_ButtonGroups(); } return haxe_ui_components_ButtonGroups._instance; }; haxe_ui_components_ButtonGroups.prototype = { _groups: null ,get: function(name) { return this._groups.h[name]; } ,getSelected: function(name) { var list = this.get(name); if(list == null) { return null; } var _g = 0; while(_g < list.length) { var button = list[_g]; ++_g; if(button.get_selected()) { return button; } } return null; } ,set: function(name,buttons) { this._groups.h[name] = buttons; } ,add: function(name,button) { var arr = this.get(name); if(arr == null) { arr = []; } if(arr.indexOf(button) == -1) { arr.push(button); } this.set(name,arr); } ,remove: function(name,button) { var arr = this.get(name); if(arr == null) { return; } HxOverrides.remove(arr,button); if(arr.length == 0) { var _this = this._groups; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } } } ,reset: function(name) { var arr = this.get(name); if(arr == null) { return; } var selection = null; var _g = 0; while(_g < arr.length) { var item = arr[_g]; ++_g; if(item.get_selected() == true) { selection = item; break; } } if(selection == null) { return; } haxe_ui_components_ButtonGroups.get_instance().setSelection(selection,false,true); } ,setSelection: function(button,value,allowDeselection) { if(allowDeselection == null) { allowDeselection = false; } if(button.get_componentGroup() != null && value == false && allowDeselection == false) { var arr = haxe_ui_components_ButtonGroups.get_instance().get(button.get_componentGroup()); var hasSelection = false; if(arr != null) { var _g = 0; while(_g < arr.length) { var b = arr[_g]; ++_g; if(b != button && b.get_selected() == true) { hasSelection = true; break; } } } if(hasSelection == false && allowDeselection == false) { button.behaviours.softSet("selected",haxe_ui_util_Variant.fromBool(true)); return; } } if(button.get_componentGroup() != null && value == true) { var arr = haxe_ui_components_ButtonGroups.get_instance().get(button.get_componentGroup()); if(arr != null) { var _g = 0; while(_g < arr.length) { var b = arr[_g]; ++_g; if(b != button) { b.set_selected(false); } } } } if(allowDeselection == true && value == false) { button.behaviours.softSet("selected",haxe_ui_util_Variant.fromBool(false)); } } ,__class__: haxe_ui_components_ButtonGroups }; var haxe_ui_components_CalendarEvent = function(type,bubble,data) { haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.components.CalendarEvent"] = haxe_ui_components_CalendarEvent; haxe_ui_components_CalendarEvent.__name__ = "haxe.ui.components.CalendarEvent"; haxe_ui_components_CalendarEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_components_CalendarEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ clone: function() { var c = new haxe_ui_components_CalendarEvent(this.type); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; this.postClone(c); return c; } ,__class__: haxe_ui_components_CalendarEvent }); var haxe_ui_containers_Grid = function() { this._columns = -1; haxe_ui_containers_Box.call(this); if(this._columns == -1) { this.set_columns(2); } }; $hxClasses["haxe.ui.containers.Grid"] = haxe_ui_containers_Grid; haxe_ui_containers_Grid.__name__ = "haxe.ui.containers.Grid"; haxe_ui_containers_Grid.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Grid.prototype = $extend(haxe_ui_containers_Box.prototype,{ _columns: null ,get_columns: function() { return (js_Boot.__cast(this._layout , haxe_ui_layouts_VerticalGridLayout)).get_columns(); } ,set_columns: function(value) { if(this._layout == null) { this.set_layout(this.createLayout()); } (js_Boot.__cast(this._layout , haxe_ui_layouts_VerticalGridLayout)).set_columns(value); this._columns = value; return value; } ,createDefaults: function() { haxe_ui_containers_Box.prototype.createDefaults.call(this); this._defaultLayoutClass = haxe_ui_layouts_VerticalGridLayout; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); c.set_columns(this.get_columns()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Grid(); } ,__class__: haxe_ui_containers_Grid ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_columns:"set_columns",get_columns:"get_columns"}) }); var haxe_ui_components_Calendar = function() { haxe_ui_containers_Grid.call(this); }; $hxClasses["haxe.ui.components.Calendar"] = haxe_ui_components_Calendar; haxe_ui_components_Calendar.__name__ = "haxe.ui.components.Calendar"; haxe_ui_components_Calendar.__super__ = haxe_ui_containers_Grid; haxe_ui_components_Calendar.prototype = $extend(haxe_ui_containers_Grid.prototype,{ previousMonth: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("previousMonth",null); } ,nextMonth: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("nextMonth",null); } ,previousYear: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("previousYear",null); } ,nextYear: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("nextYear",null); } ,createDefaults: function() { haxe_ui_containers_Grid.prototype.createDefaults.call(this); this._defaultLayoutClass = haxe_ui_components__$Calendar_Layout; } ,registerComposite: function() { haxe_ui_containers_Grid.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$Calendar_Events; this._compositeBuilderClass = haxe_ui_components__$Calendar_Builder; this._defaultLayoutClass = haxe_ui_components__$Calendar_Layout; } ,registerBehaviours: function() { haxe_ui_containers_Grid.prototype.registerBehaviours.call(this); this.behaviours.register("date",haxe_ui_components__$Calendar_DateBehaviour); this.behaviours.register("selectedDate",haxe_ui_components__$Calendar_SelectedDateBehaviour); this.behaviours.register("previousMonth",haxe_ui_components__$Calendar_PreviousMonthBehaviour); this.behaviours.register("nextMonth",haxe_ui_components__$Calendar_NextMonthBehaviour); this.behaviours.register("previousYear",haxe_ui_components__$Calendar_PreviousYearBehaviour); this.behaviours.register("nextYear",haxe_ui_components__$Calendar_NextYearBehaviour); } ,get_date: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDate(this.behaviours.get("date")); } ,set_date: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("date",haxe_ui_util_Variant.fromDate(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"date")); return value; } ,get_selectedDate: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDate(this.behaviours.get("selectedDate")); } ,set_selectedDate: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedDate",haxe_ui_util_Variant.fromDate(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedDate")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Grid.prototype.cloneComponent.call(this); if(this.get_date() != null) { c.set_date(this.get_date()); } if(this.get_selectedDate() != null) { c.set_selectedDate(this.get_selectedDate()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Calendar(); } ,__class__: haxe_ui_components_Calendar ,__properties__: $extend(haxe_ui_containers_Grid.prototype.__properties__,{set_selectedDate:"set_selectedDate",get_selectedDate:"get_selectedDate",set_date:"set_date",get_date:"get_date"}) }); var haxe_ui_components__$Calendar_PreviousMonthBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Calendar.PreviousMonthBehaviour"] = haxe_ui_components__$Calendar_PreviousMonthBehaviour; haxe_ui_components__$Calendar_PreviousMonthBehaviour.__name__ = "haxe.ui.components._Calendar.PreviousMonthBehaviour"; haxe_ui_components__$Calendar_PreviousMonthBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Calendar_PreviousMonthBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var calendar = js_Boot.__cast(this._component , haxe_ui_components_Calendar); calendar.set_date(haxe_ui_components__$Calendar_DateUtils.previousMonth(calendar.get_date())); return null; } ,__class__: haxe_ui_components__$Calendar_PreviousMonthBehaviour }); var haxe_ui_components__$Calendar_NextMonthBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Calendar.NextMonthBehaviour"] = haxe_ui_components__$Calendar_NextMonthBehaviour; haxe_ui_components__$Calendar_NextMonthBehaviour.__name__ = "haxe.ui.components._Calendar.NextMonthBehaviour"; haxe_ui_components__$Calendar_NextMonthBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Calendar_NextMonthBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var calendar = js_Boot.__cast(this._component , haxe_ui_components_Calendar); calendar.set_date(haxe_ui_components__$Calendar_DateUtils.nextMonth(calendar.get_date())); return null; } ,__class__: haxe_ui_components__$Calendar_NextMonthBehaviour }); var haxe_ui_components__$Calendar_PreviousYearBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Calendar.PreviousYearBehaviour"] = haxe_ui_components__$Calendar_PreviousYearBehaviour; haxe_ui_components__$Calendar_PreviousYearBehaviour.__name__ = "haxe.ui.components._Calendar.PreviousYearBehaviour"; haxe_ui_components__$Calendar_PreviousYearBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Calendar_PreviousYearBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var calendar = js_Boot.__cast(this._component , haxe_ui_components_Calendar); calendar.set_date(haxe_ui_components__$Calendar_DateUtils.previousYear(calendar.get_date())); return null; } ,__class__: haxe_ui_components__$Calendar_PreviousYearBehaviour }); var haxe_ui_components__$Calendar_NextYearBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Calendar.NextYearBehaviour"] = haxe_ui_components__$Calendar_NextYearBehaviour; haxe_ui_components__$Calendar_NextYearBehaviour.__name__ = "haxe.ui.components._Calendar.NextYearBehaviour"; haxe_ui_components__$Calendar_NextYearBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Calendar_NextYearBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var calendar = js_Boot.__cast(this._component , haxe_ui_components_Calendar); calendar.set_date(haxe_ui_components__$Calendar_DateUtils.nextYear(calendar.get_date())); return null; } ,__class__: haxe_ui_components__$Calendar_NextYearBehaviour }); var haxe_ui_components__$Calendar_SelectedDateBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Calendar.SelectedDateBehaviour"] = haxe_ui_components__$Calendar_SelectedDateBehaviour; haxe_ui_components__$Calendar_SelectedDateBehaviour.__name__ = "haxe.ui.components._Calendar.SelectedDateBehaviour"; haxe_ui_components__$Calendar_SelectedDateBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$Calendar_SelectedDateBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); var date = haxe_ui_util_Variant.toDate(value); this._component.invalidateComponent("data",false); var calendar = js_Boot.__cast(this._component , haxe_ui_components_Calendar); calendar.set_date(date); this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_components__$Calendar_SelectedDateBehaviour }); var haxe_ui_components__$Calendar_DateBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Calendar.DateBehaviour"] = haxe_ui_components__$Calendar_DateBehaviour; haxe_ui_components__$Calendar_DateBehaviour.__name__ = "haxe.ui.components._Calendar.DateBehaviour"; haxe_ui_components__$Calendar_DateBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Calendar_DateBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var date = haxe_ui_util_Variant.toDate(this._value); if(date == null) { return; } var year = date.getFullYear(); var month = date.getMonth(); var startDay = new Date(year,month,1,0,0,0).getDay(); var endDay = haxe_ui_components__$Calendar_DateUtils.getEndDay(month,year); var _g = 0; var _this = this._component; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.set_opacity(.3); child.removeClass("calendar-off-day"); child.removeClass("calendar-day"); child.removeClass("calendar-day-selected"); child.removeClass(":hover"); } var prevMonth = haxe_ui_components__$Calendar_DateUtils.previousMonth(date); var last = haxe_ui_components__$Calendar_DateUtils.getEndDay(prevMonth.getMonth(),prevMonth.getFullYear()); var n = startDay - 1; var _g = 0; var _g1 = startDay; while(_g < _g1) { var _ = _g++; var _this = this._component; var item = (_this._children == null ? [] : _this._children)[n]; item.addClass("calendar-off-day"); --n; item.set_text("" + last); --last; } var selectedDate = (js_Boot.__cast(this._component , haxe_ui_components_Calendar)).get_selectedDate(); if(selectedDate == null) { selectedDate = new Date(); } var _g = 0; var _g1 = endDay; while(_g < _g1) { var i = _g++; var _this = this._component; var item = (_this._children == null ? [] : _this._children)[i + startDay]; item.addClass("calendar-day"); item.set_opacity(1); item.set_hidden(false); item.set_text("" + (i + 1)); if(i + 1 == selectedDate.getDate() && month == selectedDate.getMonth() && year == selectedDate.getFullYear()) { item.addClass("calendar-day-selected"); } last = i + startDay; } ++last; var n = 0; var _g = last; var _this = this._component; var _g1 = (_this._children == null ? [] : _this._children).length; while(_g < _g1) { var i = _g++; var _this = this._component; var item = (_this._children == null ? [] : _this._children)[i]; item.addClass("calendar-off-day"); item.set_text("" + (n + 1)); ++n; } this._component.registerInternalEvents(null,true); this._component.dispatch(new haxe_ui_components_CalendarEvent("datechange")); } ,__class__: haxe_ui_components__$Calendar_DateBehaviour }); var haxe_ui_components__$Calendar_DateUtils = function() { }; $hxClasses["haxe.ui.components._Calendar.DateUtils"] = haxe_ui_components__$Calendar_DateUtils; haxe_ui_components__$Calendar_DateUtils.__name__ = "haxe.ui.components._Calendar.DateUtils"; haxe_ui_components__$Calendar_DateUtils.getEndDay = function(month,year) { var endDay = -1; switch(month) { case 1: if(year % 400 == 0 || year % 100 != 0 && year % 4 == 0) { endDay = 29; } else { endDay = 28; } break; case 3:case 5:case 8:case 10: endDay = 30; break; default: endDay = 31; } return endDay; }; haxe_ui_components__$Calendar_DateUtils.previousMonth = function(date) { var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); --month; if(month < 0) { month = 11; --year; } day = js_Boot.__cast(Math.min(day,haxe_ui_components__$Calendar_DateUtils.getEndDay(month,year)) , Int); date = new Date(year,month,day,0,0,0); return date; }; haxe_ui_components__$Calendar_DateUtils.nextMonth = function(date) { var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); ++month; if(month > 11) { month = 0; ++year; } day = js_Boot.__cast(Math.min(day,haxe_ui_components__$Calendar_DateUtils.getEndDay(month,year)) , Int); date = new Date(year,month,day,0,0,0); return date; }; haxe_ui_components__$Calendar_DateUtils.previousYear = function(date) { var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); --year; day = js_Boot.__cast(Math.min(day,haxe_ui_components__$Calendar_DateUtils.getEndDay(month,year)) , Int); date = new Date(year,month,day,0,0,0); return date; }; haxe_ui_components__$Calendar_DateUtils.nextYear = function(date) { var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); ++year; day = js_Boot.__cast(Math.min(day,haxe_ui_components__$Calendar_DateUtils.getEndDay(month,year)) , Int); date = new Date(year,month,day,0,0,0); return date; }; var haxe_ui_components__$Calendar_Events = function(target) { haxe_ui_events_Events.call(this,target); }; $hxClasses["haxe.ui.components._Calendar.Events"] = haxe_ui_components__$Calendar_Events; haxe_ui_components__$Calendar_Events.__name__ = "haxe.ui.components._Calendar.Events"; haxe_ui_components__$Calendar_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$Calendar_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ register: function() { this.unregister(); var _g = 0; var _this = this._target; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDayClicked)) == false && child.classes.indexOf("calendar-day") != -1) { child.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDayClicked)); } } } ,unregister: function() { var _g = 0; var _this = this._target; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDayClicked)); } } ,onDayClicked: function(event) { var calendar = js_Boot.__cast(this._target , haxe_ui_components_Calendar); var day = Std.parseInt(event.target.get_text()); var month = calendar.get_date().getMonth(); var year = calendar.get_date().getFullYear(); calendar.set_selectedDate(new Date(year,month,day,0,0,0)); } ,__class__: haxe_ui_components__$Calendar_Events }); var haxe_ui_components__$Calendar_Builder = function(calendar) { haxe_ui_core_CompositeBuilder.call(this,calendar); this._calendar = calendar; }; $hxClasses["haxe.ui.components._Calendar.Builder"] = haxe_ui_components__$Calendar_Builder; haxe_ui_components__$Calendar_Builder.__name__ = "haxe.ui.components._Calendar.Builder"; haxe_ui_components__$Calendar_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$Calendar_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _calendar: null ,create: function() { this._calendar.set_columns(7); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); var item = new haxe_ui_components_Button(); item.set_scriptAccess(false); this._calendar.addComponent(item); this._calendar.set_date(new Date()); } ,__class__: haxe_ui_components__$Calendar_Builder }); var haxe_ui_layouts_VerticalGridLayout = function() { this._columns = 1; haxe_ui_layouts_Layout.call(this); }; $hxClasses["haxe.ui.layouts.VerticalGridLayout"] = haxe_ui_layouts_VerticalGridLayout; haxe_ui_layouts_VerticalGridLayout.__name__ = "haxe.ui.layouts.VerticalGridLayout"; haxe_ui_layouts_VerticalGridLayout.__super__ = haxe_ui_layouts_Layout; haxe_ui_layouts_VerticalGridLayout.prototype = $extend(haxe_ui_layouts_Layout.prototype,{ applyProperties: function(props) { if(props != null) { if(Object.prototype.hasOwnProperty.call(props.h,"columns") && props.h["columns"] != null) { this.set_columns(props.h["columns"]); } } } ,_columns: null ,get_columns: function() { return this._columns; } ,set_columns: function(value) { if(this._columns == value) { return value; } this._columns = value; if(this._component != null) { var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } return value; } ,get_usableSize: function() { var size = haxe_ui_layouts_Layout.prototype.get_usableSize.call(this); var columnWidths = this.calcColumnWidths(size,false); var rowHeights = this.calcRowHeights(size,false); var _g = 0; while(_g < columnWidths.length) { var columnWidth = columnWidths[_g]; ++_g; size.width -= columnWidth; } var _g = 0; while(_g < rowHeights.length) { var rowHeight = rowHeights[_g]; ++_g; size.height -= rowHeight; } var _this = this.get_component(); if((_this._children == null ? [] : _this._children).length > 1) { var _this = this.get_component(); var rows = Math.ceil((_this._children == null ? [] : _this._children).length / this.get_columns()); var c = this.get_columns(); var _this = this.get_component(); var c1 = Math.min(c,(_this._children == null ? [] : _this._children).length); size.width -= this.get_horizontalSpacing() * (c1 - 1); size.height -= this.get_verticalSpacing() * (rows - 1); } if(size.width < 0) { size.width = 0; } if(size.height < 0) { size.height = 0; } return size; } ,resizeChildren: function() { var size = this.get_usableSize(); var columnWidths = this.calcColumnWidths(size,true); var rowHeights = this.calcRowHeights(size,true); var explicitWidths = this.calcExplicitWidths(); var explicitHeights = this.calcExplicitHeights(); var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var cx = null; var cy = null; if(child.get_percentWidth() != null) { var ucx = columnWidths[columnIndex]; if(explicitWidths[columnIndex] == false) { cx = ucx; } else { cx = ucx * child.get_percentWidth() / 100; } } if(child.get_percentHeight() != null) { var ucy = rowHeights[rowIndex]; if(explicitHeights[rowIndex] == false) { cy = ucy; } else { cy = ucy * child.get_percentHeight() / 100; } } child.resizeComponent(cx,cy); ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } } ,repositionChildren: function() { var size = this.get_usableSize(); var columnWidths = this.calcColumnWidths(size,true); var rowHeights = this.calcRowHeights(size,true); var rowIndex = 0; var columnIndex = 0; var xpos = this.get_paddingLeft(); var ypos = this.get_paddingTop(); var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var halign = this.horizontalAlign(child); var valign = this.verticalAlign(child); var xposChild = 0; var yposChild = 0; switch(halign) { case "center": xposChild = xpos + (columnWidths[columnIndex] - child.get_componentWidth()) * 0.5 + this.marginLeft(child) - this.marginRight(child); break; case "right": xposChild = xpos + (columnWidths[columnIndex] - child.get_componentWidth()) + this.marginLeft(child) - this.marginRight(child); break; default: xposChild = xpos + this.marginLeft(child) - this.marginRight(child); } switch(valign) { case "bottom": yposChild = ypos + (rowHeights[rowIndex] - child.get_componentHeight()) + this.marginTop(child) - this.marginBottom(child); break; case "center": yposChild = ypos + (rowHeights[rowIndex] - child.get_componentHeight()) * 0.5 + this.marginTop(child) - this.marginBottom(child); break; default: yposChild = ypos + this.marginTop(child) - this.marginBottom(child); } child.moveComponent(xposChild,yposChild); xpos += columnWidths[columnIndex] + this.get_horizontalSpacing(); ++columnIndex; if(columnIndex >= this.get_columns()) { xpos = this.get_paddingLeft(); ypos += rowHeights[rowIndex] + this.get_verticalSpacing(); columnIndex = 0; ++rowIndex; } } } ,calcColumnWidths: function(usableSize,includePercentage) { var columnWidths = []; var _g = 0; var _g1 = this._columns; while(_g < _g1) { var _ = _g++; columnWidths.push(0); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() == null) { if(child.get_componentWidth() > columnWidths[columnIndex]) { columnWidths[columnIndex] = child.get_componentWidth(); } } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } if(includePercentage) { rowIndex = 0; columnIndex = 0; var fullWidthsCounts = [0]; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() != null && child.get_percentWidth() == 100) { fullWidthsCounts[rowIndex]++; } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; fullWidthsCounts.push(0); } } rowIndex = 0; columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() != null) { var childPercentWidth = child.get_percentWidth(); if(childPercentWidth == 100 && fullWidthsCounts[rowIndex] != 0) { var f = fullWidthsCounts[rowIndex]; if(rowIndex > 0 && fullWidthsCounts[rowIndex - 1] != 0) { f = fullWidthsCounts[rowIndex - 1]; } childPercentWidth = 100 / f; } var cx = usableSize.width * childPercentWidth / 100; if(cx > columnWidths[columnIndex]) { columnWidths[columnIndex] = cx; } } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } } return columnWidths; } ,calcRowHeights: function(usableSize,includePercentage) { var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; } } var rowCount = visibleChildren / this._columns | 0; if(visibleChildren % this._columns != 0) { ++rowCount; } var rowHeights = []; var _g = 0; var _g1 = rowCount; while(_g < _g1) { var _ = _g++; rowHeights.push(0); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() == null) { if(child.get_height() > rowHeights[rowIndex]) { rowHeights[rowIndex] = child.get_height(); } } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } if(includePercentage) { rowIndex = 0; columnIndex = 0; var newRow = true; var fullHeightRowCount = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() != null && child.get_percentHeight() == 100) { if(newRow == true) { newRow = false; ++fullHeightRowCount; } } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; newRow = true; } } rowIndex = 0; columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() != null) { var childPercentHeight = child.get_percentHeight(); if(childPercentHeight == 100 && fullHeightRowCount > 1) { childPercentHeight = 100 / fullHeightRowCount; } var cy = usableSize.height * childPercentHeight / 100; if(cy > rowHeights[rowIndex]) { rowHeights[rowIndex] = cy; } else { var tmp = usableSize.height > rowHeights[rowIndex]; } } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } } return rowHeights; } ,calcExplicitWidths: function() { var explicitWidths = []; var _g = 0; var _g1 = this._columns; while(_g < _g1) { var _ = _g++; explicitWidths.push(false); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() == null && child.get_componentWidth() > 0) { explicitWidths[columnIndex] = true; } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } return explicitWidths; } ,calcExplicitHeights: function() { var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; } } var rowCount = visibleChildren / this.get_columns() | 0; if(visibleChildren % this._columns != 0) { ++rowCount; } var explicitHeights = []; var _g = 0; var _g1 = rowCount; while(_g < _g1) { var _ = _g++; explicitHeights.push(false); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() == null && child.get_componentHeight() > 0) { explicitHeights[columnIndex % this._columns] = true; } ++columnIndex; if(columnIndex >= this._columns) { columnIndex = 0; ++rowIndex; } } return explicitHeights; } ,cloneLayout: function() { var c = haxe_ui_layouts_Layout.prototype.cloneLayout.call(this); c.set_columns(this.get_columns()); return c; } ,self: function() { return new haxe_ui_layouts_VerticalGridLayout(); } ,__class__: haxe_ui_layouts_VerticalGridLayout ,__properties__: $extend(haxe_ui_layouts_Layout.prototype.__properties__,{set_columns:"set_columns",get_columns:"get_columns"}) }); var haxe_ui_components__$Calendar_Layout = function() { haxe_ui_layouts_VerticalGridLayout.call(this); }; $hxClasses["haxe.ui.components._Calendar.Layout"] = haxe_ui_components__$Calendar_Layout; haxe_ui_components__$Calendar_Layout.__name__ = "haxe.ui.components._Calendar.Layout"; haxe_ui_components__$Calendar_Layout.__super__ = haxe_ui_layouts_VerticalGridLayout; haxe_ui_components__$Calendar_Layout.prototype = $extend(haxe_ui_layouts_VerticalGridLayout.prototype,{ resizeChildren: function() { var max = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_layout() == null) { continue; } if(child.get_width() > child.get_layout().get_paddingLeft() + child.get_layout().get_paddingRight() && child.get_width() > max) { max = child.get_width(); } if(child.get_width() > child.get_layout().get_paddingTop() + child.get_layout().get_paddingBottom() && child.get_height() > max) { max = child.get_height(); } } if(max > 0) { var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.set_width(max); child.set_height(max); } } } ,cloneLayout: function() { var c = haxe_ui_layouts_VerticalGridLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$Calendar_Layout(); } ,__class__: haxe_ui_components__$Calendar_Layout }); var haxe_ui_components__$Canvas_DataSourceBehaviour = function(canvas) { haxe_ui_behaviours_DataBehaviour.call(this,canvas); this._canvas = canvas; }; $hxClasses["haxe.ui.components._Canvas.DataSourceBehaviour"] = haxe_ui_components__$Canvas_DataSourceBehaviour; haxe_ui_components__$Canvas_DataSourceBehaviour.__name__ = "haxe.ui.components._Canvas.DataSourceBehaviour"; haxe_ui_components__$Canvas_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Canvas_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _canvas: null ,validateData: function() { if(this._value != null) { var ds = haxe_ui_util_Variant.toDataSource(this._value); var g = this._canvas.componentGraphics; var _g = 0; var _g1 = ds.get_size(); while(_g < _g1) { var i = _g++; var item = ds.get(i); switch(item.id) { case "begin-path":case "beginPath": g.beginPath(); break; case "circle": var x = parseFloat(item.x); var y = parseFloat(item.y); var radius = parseFloat(item.radius); g.circle(x,y,radius); break; case "clear": g.clear(); break; case "close-path":case "closePath": g.closePath(); break; case "cubic-curve-to":case "cubicCurveTo": var controlX = item.controlX != null ? parseFloat(item.controlX) : 0; var controlY = item.controlY != null ? parseFloat(item.controlY) : 0; var controlX2 = item.controlX2 != null ? parseFloat(item.controlX2) : 0; var controlY2 = item.controlY2 != null ? parseFloat(item.controlY2) : 0; var anchorX = item.anchorX != null ? parseFloat(item.anchorX) : 0; var anchorY = item.anchorY != null ? parseFloat(item.anchorY) : 0; g.cubicCurveTo(controlX,controlY,controlX2,controlY2,anchorX,anchorY); break; case "curve-to":case "curveTo": var controlX1 = item.controlX != null ? parseFloat(item.controlX) : 0; var controlY1 = item.controlY != null ? parseFloat(item.controlY) : 0; var anchorX1 = item.anchorX != null ? parseFloat(item.anchorX) : 0; var anchorY1 = item.anchorY != null ? parseFloat(item.anchorY) : 0; g.curveTo(controlX1,controlY1,anchorX1,anchorY1); break; case "fill-style":case "fillStyle": var color = item.color; var alpha = item.alpha != null ? parseFloat(item.alpha) : 1; g.fillStyle(haxe_ui_util_Color.fromString(color),alpha); break; case "image": var resource = item.resource; var x1 = parseFloat(item.x); var y1 = parseFloat(item.y); var width = parseFloat(item.width); var height = parseFloat(item.height); g.image(haxe_ui_util_Variant.fromString(resource),x1,y1,width,height); break; case "line-to":case "lineTo": var x2 = item.x != null ? parseFloat(item.x) : 0; var y2 = item.y != null ? parseFloat(item.y) : 0; g.lineTo(x2,y2); break; case "move-to":case "moveTo": var x3 = item.x != null ? parseFloat(item.x) : 0; var y3 = item.y != null ? parseFloat(item.y) : 0; g.moveTo(x3,y3); break; case "rectangle": var x4 = item.x != null ? parseFloat(item.x) : 0; var y4 = item.y != null ? parseFloat(item.y) : 0; var width1 = item.width != null ? parseFloat(item.width) : this._canvas.get_width(); var height1 = item.height != null ? parseFloat(item.height) : this._canvas.get_height(); g.rectangle(x4,y4,width1,height1); break; case "stroke-style":case "strokeStyle": var color1 = item.color; var thickness = item.thickness != null ? parseFloat(item.thickness) : 1; var alpha1 = item.alpha != null ? parseFloat(item.alpha) : 1; g.strokeStyle(haxe_ui_util_Color.fromString(color1),thickness,alpha1); break; default: haxe_Log.trace("unrecognised draw command: " + Std.string(item),{ fileName : "haxe/ui/components/Canvas.hx", lineNumber : 111, className : "haxe.ui.components._Canvas.DataSourceBehaviour", methodName : "validateData"}); } } } } ,__class__: haxe_ui_components__$Canvas_DataSourceBehaviour }); var haxe_ui_components_CheckBox = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.CheckBox"] = haxe_ui_components_CheckBox; haxe_ui_components_CheckBox.__name__ = "haxe.ui.components.CheckBox"; haxe_ui_components_CheckBox.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent]; haxe_ui_components_CheckBox.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_CheckBox.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_components__$CheckBox_TextBehaviour); this.behaviours.register("selected",haxe_ui_components__$CheckBox_SelectedBehaviour); } ,get_selected: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("selected")); } ,set_selected: function(value) { this.behaviours.set("selected",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selected")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_value: function() { return this.get_selected(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2: this.set_selected(value == 1); break; case 6: if(_g.c == String) { this.set_selected(value == "true" || value == "1"); } else { this.set_selected(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_selected(haxe_ui_util_Variant.toBool(v)); } else { this.set_selected(value); } break; default: this.set_selected(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); c.set_selected(this.get_selected()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_CheckBox(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$CheckBox_Events; this._compositeBuilderClass = haxe_ui_components_CheckBoxBuilder; this._defaultLayoutClass = haxe_ui_components__$CheckBox_CheckBoxLayout; } ,__class__: haxe_ui_components_CheckBox ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_selected:"set_selected",get_selected:"get_selected"}) }); var haxe_ui_components_CheckBoxValue = function() { this._down = true; haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.CheckBoxValue"] = haxe_ui_components_CheckBoxValue; haxe_ui_components_CheckBoxValue.__name__ = "haxe.ui.components.CheckBoxValue"; haxe_ui_components_CheckBoxValue.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_CheckBoxValue.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ onReady: function() { this.createIcon(); this.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); this.registerEvent(haxe_ui_events_ActionEvent.ACTION_END,$bind(this,this.onActionEnd)); } ,applyStyle: function(style) { haxe_ui_core_InteractiveComponent.prototype.applyStyle.call(this,style); var icon = this.findComponent(null,haxe_ui_components_Image); if(icon != null) { icon.set_resource(style.icon); } } ,createIcon: function() { var icon = this.findComponent(null,haxe_ui_components_Image); if(icon == null && this.get_parentComponent() != null) { icon = new haxe_ui_components_Image(); icon.set_id("" + this.get_parentComponent().get_cssName() + "-icon"); icon.addClass("" + this.get_parentComponent().get_cssName() + "-icon"); if(this.get_style() != null && this.get_style().icon != null) { icon.set_resource(this.get_style().icon); } this.addComponent(icon); } } ,_down: null ,onActionStart: function(event) { switch(event.action) { case "actionConfirm":case "actionPress": this._down = true; break; default: } } ,onActionEnd: function(event) { switch(event.action) { case "actionConfirm":case "actionPress": if(this._down == true) { this._down = false; if(this.get_parentComponent() != null) { var checkbox = js_Boot.__cast(this.get_parentComponent() , haxe_ui_components_CheckBox); checkbox.set_selected(!checkbox.get_selected()); } } break; default: } } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_CheckBoxValue(); } ,__class__: haxe_ui_components_CheckBoxValue }); var haxe_ui_components__$CheckBox_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._CheckBox.TextBehaviour"] = haxe_ui_components__$CheckBox_TextBehaviour; haxe_ui_components__$CheckBox_TextBehaviour.__name__ = "haxe.ui.components._CheckBox.TextBehaviour"; haxe_ui_components__$CheckBox_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$CheckBox_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent(null,haxe_ui_components_Label,false); if(label == null) { label = new haxe_ui_components_Label(); label.set_id("" + this._component.get_cssName() + "-label"); label.addClass("" + this._component.get_cssName() + "-label"); label.set_scriptAccess(false); this._component.addComponent(label); var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } label.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_components__$CheckBox_TextBehaviour }); var haxe_ui_components__$CheckBox_SelectedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._CheckBox.SelectedBehaviour"] = haxe_ui_components__$CheckBox_SelectedBehaviour; haxe_ui_components__$CheckBox_SelectedBehaviour.__name__ = "haxe.ui.components._CheckBox.SelectedBehaviour"; haxe_ui_components__$CheckBox_SelectedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$CheckBox_SelectedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var valueComponent = this._component.findComponent(null,haxe_ui_components_CheckBoxValue); if(valueComponent == null) { return; } valueComponent.createIcon(); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { valueComponent.addClass(":selected"); } else { valueComponent.removeClass(":selected"); } var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); event.previousValue = this._previousValue; event.value = this._value; this._component.dispatch(event); } ,__class__: haxe_ui_components__$CheckBox_SelectedBehaviour }); var haxe_ui_components__$CheckBox_Events = function(checkbox) { haxe_ui_events_Events.call(this,checkbox); this._checkbox = checkbox; }; $hxClasses["haxe.ui.components._CheckBox.Events"] = haxe_ui_components__$CheckBox_Events; haxe_ui_components__$CheckBox_Events.__name__ = "haxe.ui.components._CheckBox.Events"; haxe_ui_components__$CheckBox_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$CheckBox_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _checkbox: null ,register: function() { if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); } if(this.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } } ,unregister: function() { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); this.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } ,onMouseOver: function(event) { this._target.addClass(":hover"); this._target.findComponent(null,haxe_ui_components_CheckBoxValue).addClass(":hover"); } ,onMouseOut: function(event) { this._target.removeClass(":hover"); this._target.findComponent(null,haxe_ui_components_CheckBoxValue).removeClass(":hover"); } ,onClick: function(event) { this._checkbox.set_selected(!this._checkbox.get_selected()); } ,onMouseDown: function(event) { this._checkbox.findComponent(null,haxe_ui_components_CheckBoxValue).set_focus(true); } ,__class__: haxe_ui_components__$CheckBox_Events }); var haxe_ui_components_CheckBoxBuilder = function(checkbox) { haxe_ui_core_CompositeBuilder.call(this,checkbox); this._checkbox = checkbox; this._checkbox.set_allowFocus(false); }; $hxClasses["haxe.ui.components.CheckBoxBuilder"] = haxe_ui_components_CheckBoxBuilder; haxe_ui_components_CheckBoxBuilder.__name__ = "haxe.ui.components.CheckBoxBuilder"; haxe_ui_components_CheckBoxBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components_CheckBoxBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _checkbox: null ,create: function() { if(this._checkbox.findComponent(null,haxe_ui_components_CheckBoxValue) == null) { var value = new haxe_ui_components_CheckBoxValue(); value.set_id("" + this._checkbox.get_cssName() + "-value"); value.addClass("" + this._checkbox.get_cssName() + "-value"); value.set_scriptAccess(false); this._checkbox.addComponent(value); } } ,applyStyle: function(style) { var c = this._component.findComponent("" + this._checkbox.get_cssName() + "-label",haxe_ui_core_Component); if(c != null) { var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(style.fontBold != null && c.get_customStyle().fontBold != style.fontBold) { c.get_customStyle().fontBold = style.fontBold; invalidate = true; } if(style.fontUnderline != null && c.get_customStyle().fontUnderline != style.fontUnderline) { c.get_customStyle().fontUnderline = style.fontUnderline; invalidate = true; } if(style.fontItalic != null && c.get_customStyle().fontItalic != style.fontItalic) { c.get_customStyle().fontItalic = style.fontItalic; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } } ,get_cssName: function() { return "checkbox"; } ,__class__: haxe_ui_components_CheckBoxBuilder }); var haxe_ui_layouts_HorizontalLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); this._calcFullWidths = true; this._roundFullWidths = true; }; $hxClasses["haxe.ui.layouts.HorizontalLayout"] = haxe_ui_layouts_HorizontalLayout; haxe_ui_layouts_HorizontalLayout.__name__ = "haxe.ui.layouts.HorizontalLayout"; haxe_ui_layouts_HorizontalLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_layouts_HorizontalLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { var xpos = this.get_paddingLeft(); var usableSize = this.get_usableSize(); var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; continue; } } var evenlySpace = false; var aroundSpace = false; var betweenSpace = false; if(this.get_component().get_style() != null) { if(this.get_component().get_style().justifyContent == "space-between") { betweenSpace = true; } if(this.get_component().get_style().justifyContent == "space-evenly") { evenlySpace = true; } if(this.get_component().get_style().justifyContent == "space-around") { aroundSpace = true; } } var spacing = this.get_horizontalSpacing(); if(betweenSpace) { spacing = usableSize.width / (visibleChildren - 1) + this.get_horizontalSpacing(); } else if(aroundSpace) { spacing = (usableSize.width + this.get_horizontalSpacing() * (visibleChildren - 1)) / visibleChildren; } else if(evenlySpace) { spacing = (usableSize.width + this.get_horizontalSpacing() * (visibleChildren - 1)) / (visibleChildren + 1); } var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var ypos = 0; switch(this.verticalAlign(child)) { case "bottom": if(child.get_componentHeight() < this.get_component().get_componentHeight()) { ypos = this.get_component().get_componentHeight() - (child.get_componentHeight() + this.get_paddingBottom() + this.marginTop(child)); } break; case "center": ypos = (usableSize.height - child.get_componentHeight()) / 2 + this.get_paddingTop() + this.marginTop(child) - this.marginBottom(child); break; default: ypos = this.get_paddingTop() + this.marginTop(child); } if(aroundSpace) { child.moveComponent(xpos + spacing / 2 + this.marginLeft(child),ypos); } else if(evenlySpace) { child.moveComponent(xpos + spacing + this.marginLeft(child),ypos); } else { child.moveComponent(xpos + this.marginLeft(child),ypos); } xpos += child.get_componentWidth() + spacing; } } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; continue; } if(child.get_componentWidth() > 0 && (child.get_percentWidth() == null || this.fixedMinWidth(child) == true)) { size.width -= child.get_componentWidth() + this.marginLeft(child) + this.marginRight(child); } } if(visibleChildren > 1) { size.width -= this.get_horizontalSpacing() * (visibleChildren - 1); } if(size.width < 0) { size.width = 0; } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_HorizontalLayout(); } ,__class__: haxe_ui_layouts_HorizontalLayout }); var haxe_ui_components__$CheckBox_CheckBoxLayout = function() { haxe_ui_layouts_HorizontalLayout.call(this); }; $hxClasses["haxe.ui.components._CheckBox.CheckBoxLayout"] = haxe_ui_components__$CheckBox_CheckBoxLayout; haxe_ui_components__$CheckBox_CheckBoxLayout.__name__ = "haxe.ui.components._CheckBox.CheckBoxLayout"; haxe_ui_components__$CheckBox_CheckBoxLayout.__super__ = haxe_ui_layouts_HorizontalLayout; haxe_ui_components__$CheckBox_CheckBoxLayout.prototype = $extend(haxe_ui_layouts_HorizontalLayout.prototype,{ repositionChildren: function() { haxe_ui_layouts_HorizontalLayout.prototype.repositionChildren.call(this); var icon = this._component.findComponent(null,haxe_ui_components_Image,true); if(icon != null) { icon.set_left(Math.round(icon.get_left())); icon.set_top(Math.round(icon.get_top())); } } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_HorizontalLayout.prototype.calcAutoSize.call(this,exclusions); if(this._component.get_autoWidth() == false) { var label = this._component.findComponent(null,haxe_ui_components_Label,false); if(label != null) { label.set_percentWidth(100); } } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_HorizontalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$CheckBox_CheckBoxLayout(); } ,__class__: haxe_ui_components__$CheckBox_CheckBoxLayout }); var haxe_ui_components_ColorPicker = function() { this._impl = null; haxe_ui_containers_Box.call(this); this._impl = new haxe_ui_components__$ColorPicker_HSVColorPickerImpl(); this._impl.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onImplValueChanged)); this._impl.picker = this; this.addComponent(this._impl); }; $hxClasses["haxe.ui.components.ColorPicker"] = haxe_ui_components_ColorPicker; haxe_ui_components_ColorPicker.__name__ = "haxe.ui.components.ColorPicker"; haxe_ui_components_ColorPicker.__super__ = haxe_ui_containers_Box; haxe_ui_components_ColorPicker.prototype = $extend(haxe_ui_containers_Box.prototype,{ _impl: null ,get_currentColor: function() { return this._impl.get_currentColor(); } ,set_currentColor: function(value) { this._impl.set_currentColor(value); return value; } ,onImplValueChanged: function(_) { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,addClass: function(name,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } haxe_ui_containers_Box.prototype.addClass.call(this,name,invalidate,recursive); if(this._impl != null) { this._impl.onStyleClassChanged(); } } ,removeClass: function(name,invalidate,recursive) { if(recursive == null) { recursive = false; } if(invalidate == null) { invalidate = true; } haxe_ui_containers_Box.prototype.removeClass.call(this,name,invalidate,recursive); if(this._impl != null) { this._impl.onStyleClassChanged(); } } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_ColorPicker(); } ,__class__: haxe_ui_components_ColorPicker ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_currentColor:"set_currentColor",get_currentColor:"get_currentColor"}) }); var haxe_ui_components__$ColorPicker_ColorPickerImpl = function() { this._currentColor = null; this.picker = null; haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.components._ColorPicker.ColorPickerImpl"] = haxe_ui_components__$ColorPicker_ColorPickerImpl; haxe_ui_components__$ColorPicker_ColorPickerImpl.__name__ = "haxe.ui.components._ColorPicker.ColorPickerImpl"; haxe_ui_components__$ColorPicker_ColorPickerImpl.__super__ = haxe_ui_containers_Box; haxe_ui_components__$ColorPicker_ColorPickerImpl.prototype = $extend(haxe_ui_containers_Box.prototype,{ picker: null ,_currentColor: null ,get_currentColor: function() { return this._currentColor; } ,set_currentColor: function(value) { this._currentColor = value; this.onCurrentColorChanged(); return value; } ,onCurrentColorChanged: function() { } ,onInitialize: function() { haxe_ui_containers_Box.prototype.onInitialize.call(this); if(this._currentColor == null) { this.set_currentColor(16711680); } } ,onStyleClassChanged: function() { } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components__$ColorPicker_ColorPickerImpl(); } ,__class__: haxe_ui_components__$ColorPicker_ColorPickerImpl ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_currentColor:"set_currentColor",get_currentColor:"get_currentColor"}) }); var haxe_ui_components__$ColorPicker_HSVColorPickerImpl = function() { this._trackingHue = false; this._trackingSaturationValue = false; this._sliderTracking = false; this._hueGraphBytes = null; this._saturationValueGraphLastHue = null; this._saturationValueGraphBytes = null; this._lastColor = null; var _gthis = this; haxe_ui_components__$ColorPicker_ColorPickerImpl.call(this); this.applyRootLayout("box"); var c0 = new haxe_ui_containers_VBox(); c0.set_percentWidth(100.); c0.set_percentHeight(100.); var c1 = new haxe_ui_containers_Absolute(); c1.set_id("saturationValueContainer"); c1.set_percentWidth(100.); c1.set_percentHeight(100.); c1.set_styleString("clip:true;padding-right: 3px;padding-bottom:3px;"); var c2 = new haxe_ui_components_Canvas(); c2.set_id("saturationValueGraph"); c2.set_left(2.); c2.set_top(2.); c2.set_percentWidth(100.); c2.set_percentHeight(100.); c2.set_styleString("pointer-events:true"); c1.addComponent(c2); var c3 = new haxe_ui_containers_Box(); c3.set_id("saturationValueIndicator"); c3.set_styleString("pointer-events:none"); c3.set_includeInLayout(false); c1.addComponent(c3); c0.addComponent(c1); var c4 = new haxe_ui_containers_Absolute(); c4.set_id("hueContainer"); c4.set_percentWidth(100.); c4.set_styleString("clip:true;"); var c5 = new haxe_ui_components_Canvas(); c5.set_id("hueGraph"); c5.set_left(2.); c5.set_top(2.); c5.set_height(20.); c5.set_percentWidth(100.); c5.set_styleString("pointer-events:true"); c4.addComponent(c5); var c6 = new haxe_ui_containers_Box(); c6.set_id("hueIndicator"); c6.set_left(10.); c6.set_top(3.); c6.set_width(8.); c6.set_height(18.); c6.set_includeInLayout(false); c4.addComponent(c6); c0.addComponent(c4); var c7 = new haxe_ui_containers_HBox(); c7.set_percentWidth(100.); c7.set_styleNames("controls-preview-container"); var c8 = new haxe_ui_containers_HBox(); c8.set_percentWidth(100.); c8.set_styleNames("controls-container"); var c9 = new haxe_ui_components_Image(); c9.set_id("prevControls"); c9.set_styleString("pointer-events:true"); c9.set_verticalAlign("center"); c8.addComponent(c9); var c10 = new haxe_ui_containers_Stack(); c10.set_id("controlsStack"); c10.set_percentWidth(100.); c10.set_selectedIndex(0); var c11 = new haxe_ui_containers_Grid(); c11.set_id("hsvControls"); c11.set_percentWidth(100.); c11.set_styleString("spacing:0px"); c11.set_columns(4); var c12 = new haxe_ui_components_Label(); c12.set_text("{{hue}}"); c12.set_styleNames("text-tiny"); c11.addComponent(c12); var c13 = new haxe_ui_components_HorizontalSlider(); c13.set_id("sliderHue"); c13.set_styleNames("simple-slider"); c13.set_max(360); c13.set_allowFocus(false); c11.addComponent(c13); var c14 = new haxe_ui_components_Spacer(); c14.set_width(5.); c11.addComponent(c14); var c15 = new haxe_ui_components_TextField(); c15.set_id("inputHue"); c15.set_styleNames("text-tiny"); c15.set_restrictChars("0-9"); c11.addComponent(c15); var c16 = new haxe_ui_components_Label(); c16.set_text("{{saturation}}"); c16.set_styleNames("text-tiny"); c11.addComponent(c16); var c17 = new haxe_ui_components_HorizontalSlider(); c17.set_id("sliderSaturation"); c17.set_styleNames("simple-slider"); c17.set_allowFocus(false); c11.addComponent(c17); var c18 = new haxe_ui_components_Spacer(); c18.set_width(5.); c11.addComponent(c18); var c19 = new haxe_ui_components_TextField(); c19.set_id("inputSaturation"); c19.set_styleNames("text-tiny"); c19.set_restrictChars("0-9"); c11.addComponent(c19); var c20 = new haxe_ui_components_Label(); c20.set_text("{{brightness}}"); c20.set_styleNames("text-tiny"); c11.addComponent(c20); var c21 = new haxe_ui_components_HorizontalSlider(); c21.set_id("sliderValue"); c21.set_styleNames("simple-slider"); c21.set_allowFocus(false); c11.addComponent(c21); var c22 = new haxe_ui_components_Spacer(); c22.set_width(5.); c11.addComponent(c22); var c23 = new haxe_ui_components_TextField(); c23.set_id("inputValue"); c23.set_styleNames("text-tiny"); c23.set_restrictChars("0-9"); c11.addComponent(c23); c10.addComponent(c11); var c24 = new haxe_ui_containers_Grid(); c24.set_id("rgbControls"); c24.set_percentWidth(100.); c24.set_styleString("spacing:0"); c24.set_columns(4); var c25 = new haxe_ui_components_Label(); c25.set_text("{{red}}"); c25.set_styleNames("text-tiny"); c24.addComponent(c25); var c26 = new haxe_ui_components_HorizontalSlider(); c26.set_id("sliderRed"); c26.set_styleNames("simple-slider"); c26.set_max(255); c26.set_allowFocus(false); c24.addComponent(c26); var c27 = new haxe_ui_components_Spacer(); c27.set_width(5.); c24.addComponent(c27); var c28 = new haxe_ui_components_TextField(); c28.set_id("inputRed"); c28.set_styleNames("text-tiny"); c28.set_restrictChars("0-9"); c24.addComponent(c28); var c29 = new haxe_ui_components_Label(); c29.set_text("{{green}}"); c29.set_styleNames("text-tiny"); c24.addComponent(c29); var c30 = new haxe_ui_components_HorizontalSlider(); c30.set_id("sliderGreen"); c30.set_styleNames("simple-slider"); c30.set_max(255); c30.set_allowFocus(false); c24.addComponent(c30); var c31 = new haxe_ui_components_Spacer(); c31.set_width(5.); c24.addComponent(c31); var c32 = new haxe_ui_components_TextField(); c32.set_id("inputGreen"); c32.set_styleNames("text-tiny"); c32.set_restrictChars("0-9"); c24.addComponent(c32); var c33 = new haxe_ui_components_Label(); c33.set_text("{{blue}}"); c33.set_styleNames("text-tiny"); c24.addComponent(c33); var c34 = new haxe_ui_components_HorizontalSlider(); c34.set_id("sliderBlue"); c34.set_styleNames("simple-slider"); c34.set_max(255); c34.set_allowFocus(false); c24.addComponent(c34); var c35 = new haxe_ui_components_Spacer(); c35.set_width(5.); c24.addComponent(c35); var c36 = new haxe_ui_components_TextField(); c36.set_id("inputBlue"); c36.set_styleNames("text-tiny"); c36.set_restrictChars("0-9"); c24.addComponent(c36); c10.addComponent(c24); c8.addComponent(c10); var c37 = new haxe_ui_components_Image(); c37.set_id("nextControls"); c37.set_styleString("pointer-events:true"); c37.set_verticalAlign("center"); c8.addComponent(c37); c7.addComponent(c8); var c38 = new haxe_ui_containers_VBox(); c38.set_percentHeight(100.); c38.set_styleString("spacing: 2px"); var c39 = new haxe_ui_containers_Box(); c39.set_id("colorPreviewContainer"); c39.set_width(64.); c39.set_percentHeight(100.); var c40 = new haxe_ui_containers_Box(); c40.set_id("colorPreview"); c40.set_percentWidth(100.); c40.set_percentHeight(100.); c40.set_styleString("background-color: #ff0000"); c39.addComponent(c40); c38.addComponent(c39); var c41 = new haxe_ui_components_TextField(); c41.set_id("inputHex"); c41.set_text("FF0000"); c41.set_styleNames("text-tiny"); c41.set_horizontalAlign("center"); c38.addComponent(c41); c7.addComponent(c38); c0.addComponent(c7); this.addComponent(c0); c9.registerEvent("click",function(event) { var __this__ = c9; var controlsStack = c10; controlsStack.prevPage(); }); c37.registerEvent("click",function(event) { var __this__ = c37; var controlsStack = c10; controlsStack.nextPage(); }); this.set_percentWidth(100.); this.set_percentHeight(100.); this.bindingRoot = true; this.sliderValue = c21; this.sliderSaturation = c17; this.sliderRed = c26; this.sliderHue = c13; this.sliderGreen = c30; this.sliderBlue = c34; this.saturationValueIndicator = c3; this.saturationValueGraph = c2; this.saturationValueContainer = c1; this.rgbControls = c24; this.prevControls = c9; this.nextControls = c37; this.inputValue = c23; this.inputSaturation = c19; this.inputRed = c28; this.inputHue = c15; this.inputHex = c41; this.inputGreen = c32; this.inputBlue = c36; this.hueIndicator = c6; this.hueGraph = c5; this.hueContainer = c4; this.hsvControls = c11; this.controlsStack = c10; this.colorPreviewContainer = c39; this.colorPreview = c40; c12.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("hue")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c12,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("hue"); }); c16.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("saturation")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c16,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("saturation"); }); c20.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("brightness")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c20,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("brightness"); }); c25.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("red")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c25,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("red"); }); c29.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("green")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c29,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("green"); }); c33.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("blue")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c33,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("blue"); }); this.saturationValueGraph.componentGraphics.setProperty("html5.graphics.method","canvas"); this.hueGraph.componentGraphics.setProperty("html5.graphics.method","canvas"); this.set_currentColor(16711680); var c = this; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this._onShown)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "this" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 223, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.controlsStack; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onControlStackChange)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "controlsStack" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 342, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 358, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 359, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 360, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 361, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 362, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 363, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onInputFocus)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 364, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 373, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 374, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 375, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 373, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 374, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 375, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 373, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 374, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_START,$bind(this,this.onSliderDragStart)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 375, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 380, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 381, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 382, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 380, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 381, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 382, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 380, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 381, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_DragEvent.DRAG_END,$bind(this,this.onSliderDragEnd)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 382, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderHue; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onHueSliderChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 389, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHue; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onHueInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 394, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderSaturation; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onSaturationSliderChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 409, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputSaturation; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onSaturationInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputSaturation" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 414, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderValue; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onValueSliderChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 429, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputValue; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onValueInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputValue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 434, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderRed; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onRedSliderChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 452, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputRed; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onRedInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputRed" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 457, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderGreen; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onGreenSliderChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 472, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputGreen; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onGreenInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputGreen" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 477, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.sliderBlue; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onBlueSliderChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "sliderBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 492, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputBlue; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onBlueInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputBlue" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 497, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.inputHex; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onHexInputChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "inputHex" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 515, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.saturationValueGraph; if(c != null) { c.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onSaturationValueGraphDown)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "saturationValueGraph" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 544, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } var c = this.hueGraph; if(c != null) { c.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onHueGraphDown)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "hueGraph" + ")",{ fileName : "haxe/ui/components/ColorPicker.hx", lineNumber : 556, className : "haxe.ui.components._ColorPicker.HSVColorPickerImpl", methodName : "new"}); } }; $hxClasses["haxe.ui.components._ColorPicker.HSVColorPickerImpl"] = haxe_ui_components__$ColorPicker_HSVColorPickerImpl; haxe_ui_components__$ColorPicker_HSVColorPickerImpl.__name__ = "haxe.ui.components._ColorPicker.HSVColorPickerImpl"; haxe_ui_components__$ColorPicker_HSVColorPickerImpl.__super__ = haxe_ui_components__$ColorPicker_ColorPickerImpl; haxe_ui_components__$ColorPicker_HSVColorPickerImpl.prototype = $extend(haxe_ui_components__$ColorPicker_ColorPickerImpl.prototype,{ _currentColorHSV: null ,_currentColorRGBF: null ,_lastColor: null ,set_currentColor: function(value) { this._currentColorHSV = haxe_ui_util_ColorUtil.toHSV(value); this._currentColorRGBF = haxe_ui_util_ColorUtil.hsvToRGBF(this._currentColorHSV.h,this._currentColorHSV.s,this._currentColorHSV.v); return haxe_ui_components__$ColorPicker_ColorPickerImpl.prototype.set_currentColor.call(this,value); } ,onCurrentColorChanged: function() { this.invalidateComponent("data",false); } ,validateComponentData: function() { haxe_ui_components__$ColorPicker_ColorPickerImpl.prototype.validateComponentData.call(this); this._currentColorRGBF.r = Math.round(this._currentColorRGBF.r); this._currentColorRGBF.g = Math.round(this._currentColorRGBF.g); this._currentColorRGBF.b = Math.round(this._currentColorRGBF.b); this.updateSaturationValueGraph(); this.updateHueGraph(); if(this.isHSV()) { this.sliderHue.set_pos(this._currentColorHSV.h); this.sliderSaturation.set_pos(this._currentColorHSV.s); this.sliderValue.set_pos(this._currentColorHSV.v); this.inputHue.set_text("" + Math.round(this._currentColorHSV.h)); this.inputSaturation.set_text("" + Math.round(this._currentColorHSV.s)); this.inputValue.set_text("" + Math.round(this._currentColorHSV.v)); } else if(this.isRGB()) { this.sliderRed.set_pos(this._currentColorRGBF.r); this.sliderGreen.set_pos(this._currentColorRGBF.g); this.sliderBlue.set_pos(this._currentColorRGBF.b); this.inputRed.set_text("" + Math.round(this._currentColorRGBF.r)); this.inputGreen.set_text("" + Math.round(this._currentColorRGBF.g)); this.inputBlue.set_text("" + Math.round(this._currentColorRGBF.b)); } this.inputHex.set_text(StringTools.hex(this._currentColorRGBF.r | 0,2) + StringTools.hex(this._currentColorRGBF.g | 0,2) + StringTools.hex(this._currentColorRGBF.b | 0,2)); var coord = this.saturationValueCoordFromHSV(this._currentColorHSV.h,this._currentColorHSV.s,this._currentColorHSV.v); this.saturationValueIndicator.set_left(coord.x | 0); this.saturationValueIndicator.set_top((coord.y | 0) - 1); var coord = this.hueCoordFromHSV(this._currentColorHSV.h,this._currentColorHSV.s,this._currentColorHSV.v); this.hueIndicator.set_left(coord.x | 0); this.hueIndicator.set_top(coord.y | 0); this._currentColor = haxe_ui_util_Color.fromComponents(Math.round(this._currentColorRGBF.r),Math.round(this._currentColorRGBF.g),Math.round(this._currentColorRGBF.b),255); this.colorPreview.set_backgroundColor(haxe_ui_util_Color.fromString(haxe_ui_util_Color.toHex(this._currentColor))); if(this._lastColor != this._currentColor) { this._lastColor = this._currentColor; this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } } ,_onShown: function(_) { this._saturationValueGraphLastHue = null; this.updateSaturationValueGraph(); } ,_saturationValueGraphBytes: null ,_saturationValueGraphLastHue: null ,updateSaturationValueGraph: function() { var cx = this.saturationValueGraph.get_width() | 0; var cy = this.saturationValueGraph.get_height() | 0; if(cx <= 0 || cy <= 0) { return; } var requiresRedraw = true; if(this._saturationValueGraphLastHue != null && this._saturationValueGraphLastHue == this._currentColorHSV.h) { requiresRedraw = false; } if(requiresRedraw) { this._saturationValueGraphLastHue = this._currentColorHSV.h; var bytesSize = cx * cy * 4; if(this._saturationValueGraphBytes == null) { this._saturationValueGraphBytes = new haxe_io_Bytes(new ArrayBuffer(bytesSize)); } if(this._saturationValueGraphBytes.length != bytesSize) { this._saturationValueGraphBytes = new haxe_io_Bytes(new ArrayBuffer(bytesSize)); } var isDisabled = this.picker.get_disabled(); var stepX = 100 / cx; var stepY = 100 / cy; var l = cx * 4; var _g = 0; var _g1 = cy; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = cx; while(_g2 < _g3) { var x = _g2++; var i = y * l + x * 4; var pixel = haxe_ui_util_ColorUtil.hsvToRGBF(this._currentColorHSV.h - 1,(x + 1) * stepX,100 - y * stepY); if(isDisabled) { var greypixel = haxe_ui_util_ColorUtil.rgbToGray(Math.round(pixel.r),Math.round(pixel.g),Math.round(pixel.b)); this._saturationValueGraphBytes.b[i] = greypixel & 255; this._saturationValueGraphBytes.b[i + 1] = greypixel & 255; this._saturationValueGraphBytes.b[i + 2] = greypixel & 255; this._saturationValueGraphBytes.b[i + 3] = 255; } else { this._saturationValueGraphBytes.b[i] = (pixel.r | 0) & 255; this._saturationValueGraphBytes.b[i + 1] = (pixel.g | 0) & 255; this._saturationValueGraphBytes.b[i + 2] = (pixel.b | 0) & 255; this._saturationValueGraphBytes.b[i + 3] = 255; } } } this.saturationValueGraph.componentGraphics.clear(); this.saturationValueGraph.componentGraphics.setPixels(this._saturationValueGraphBytes); } } ,_hueGraphBytes: null ,updateHueGraph: function() { var cx = this.hueGraph.get_width() | 0; var cy = this.hueGraph.get_height() | 0; if(cx <= 0 || cy <= 0) { return; } var requiresRedraw = true; if(requiresRedraw) { var bytesSize = cx * cy * 4; if(this._hueGraphBytes == null) { this._hueGraphBytes = new haxe_io_Bytes(new ArrayBuffer(bytesSize)); } if(this._hueGraphBytes.length != bytesSize) { this._hueGraphBytes = new haxe_io_Bytes(new ArrayBuffer(bytesSize)); } var isDisabled = this.picker.get_disabled(); var step = 360 / cx; var l = cx * 4; var _g = 0; var _g1 = cy; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = cx; while(_g2 < _g3) { var x = _g2++; var i = y * l + x * 4; var c = haxe_ui_util_ColorUtil.hsvToRGBF(x * step,100,100); if(isDisabled) { var greypixel = haxe_ui_util_ColorUtil.rgbToGray(Math.round(c.r),Math.round(c.g),Math.round(c.b)); this._hueGraphBytes.b[i] = greypixel & 255; this._hueGraphBytes.b[i + 1] = greypixel & 255; this._hueGraphBytes.b[i + 2] = greypixel & 255; this._hueGraphBytes.b[i + 3] = 255; } else { this._hueGraphBytes.b[i] = (c.r | 0) & 255; this._hueGraphBytes.b[i + 1] = (c.g | 0) & 255; this._hueGraphBytes.b[i + 2] = (c.b | 0) & 255; this._hueGraphBytes.b[i + 3] = 255; } } } this.hueGraph.componentGraphics.clear(); this.hueGraph.componentGraphics.setPixels(this._hueGraphBytes); } } ,onControlStackChange: function(_) { this.onCurrentColorChanged(); } ,isHSV: function() { return this.controlsStack.get_selectedIndex() == 0; } ,isRGB: function() { return this.controlsStack.get_selectedIndex() == 1; } ,onInputFocus: function(e) { } ,_sliderTracking: null ,onSliderDragStart: function(_) { this._sliderTracking = true; } ,onSliderDragEnd: function(_) { this._sliderTracking = false; } ,onHueSliderChanged: function(_) { this.applyHSV(new haxe_ui_util_HSV(this.sliderHue.get_pos(),this._currentColorHSV.s,this._currentColorHSV.v)); } ,onHueInputChanged: function(_) { if(this.inputHue.get_text() == null || this.inputHue.get_text() == "") { return; } var v = parseFloat(this.inputHue.get_text()); if(isNaN(v)) { v = 0; } if(v > 360) { v = 360; } this.sliderHue.set_pos(v); } ,onSaturationSliderChanged: function(_) { this.applyHSV(new haxe_ui_util_HSV(this._currentColorHSV.h,this.sliderSaturation.get_pos(),this._currentColorHSV.v)); } ,onSaturationInputChanged: function(_) { if(this.inputSaturation.get_text() == null || this.inputSaturation.get_text() == "") { return; } var v = parseFloat(this.inputSaturation.get_text()); if(isNaN(v)) { v = 0; } if(v > 100) { v = 100; } this.sliderSaturation.set_pos(v); } ,onValueSliderChanged: function(_) { this.applyHSV(new haxe_ui_util_HSV(this._currentColorHSV.h,this._currentColorHSV.s,this.sliderValue.get_pos())); } ,onValueInputChanged: function(_) { if(this.inputValue.get_text() == null || this.inputValue.get_text() == "") { return; } var v = parseFloat(this.inputValue.get_text()); if(isNaN(v)) { v = 0; } if(v > 100) { v = 100; } this.sliderValue.set_pos(v); } ,onRedSliderChanged: function(_) { this.applyHSV(haxe_ui_util_ColorUtil.rgbfToHSV(this.sliderRed.get_pos(),this._currentColorRGBF.g,this._currentColorRGBF.b)); } ,onRedInputChanged: function(_) { if(this.inputRed.get_text() == null || this.inputRed.get_text() == "") { return; } var v = parseFloat(this.inputRed.get_text()); if(isNaN(v)) { v = 0; } if(v > 255) { v = 255; } this.sliderRed.set_pos(v); } ,onGreenSliderChanged: function(_) { this.applyHSV(haxe_ui_util_ColorUtil.rgbfToHSV(this._currentColorRGBF.r,this.sliderGreen.get_pos(),this._currentColorRGBF.b)); } ,onGreenInputChanged: function(_) { if(this.inputGreen.get_text() == null || this.inputGreen.get_text() == "") { return; } var v = parseFloat(this.inputGreen.get_text()); if(isNaN(v)) { v = 0; } if(v > 255) { v = 255; } this.sliderGreen.set_pos(v); } ,onBlueSliderChanged: function(_) { this.applyHSV(haxe_ui_util_ColorUtil.rgbfToHSV(this._currentColorRGBF.r,this._currentColorRGBF.g,this.sliderBlue.get_pos())); } ,onBlueInputChanged: function(_) { if(this.inputBlue.get_text() == null || this.inputBlue.get_text() == "") { return; } var v = parseFloat(this.inputBlue.get_text()); if(isNaN(v)) { v = 0; } if(v > 255) { v = 255; } this.sliderBlue.set_pos(v); } ,onHexInputChanged: function(_) { if(this.inputHex.get_text() == null || this.inputHex.get_text() == "" || this.inputHex.get_text().length != 6) { return; } var hexR = HxOverrides.substr(this.inputHex.get_text(),0,2); var hexG = HxOverrides.substr(this.inputHex.get_text(),2,2); var hexB = HxOverrides.substr(this.inputHex.get_text(),4,2); var r = Std.parseInt("0x" + hexR); var g = Std.parseInt("0x" + hexG); var b = Std.parseInt("0x" + hexB); if(this._trackingSaturationValue == false && this._sliderTracking == false) { this.applyHSV(haxe_ui_util_ColorUtil.rgbfToHSV(r,g,b)); } } ,applyHSV: function(newHSV) { this._currentColorHSV = newHSV; this._currentColorRGBF = haxe_ui_util_ColorUtil.hsvToRGBF(newHSV.h,newHSV.s,newHSV.v); this.onCurrentColorChanged(); } ,_trackingSaturationValue: null ,onSaturationValueGraphDown: function(e) { e.cancel(); this._trackingSaturationValue = true; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); this.applyHSVFromCoord(e.screenX - this.saturationValueGraph.get_screenLeft(),e.screenY - this.saturationValueGraph.get_screenTop()); } ,_trackingHue: null ,onHueGraphDown: function(e) { e.cancel(); this._trackingHue = true; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); this.applyHueFromCoord(e.screenX - this.hueGraph.get_screenLeft(),e.screenY - this.hueGraph.get_screenTop()); } ,onScreenMouseMove: function(e) { if(this._trackingSaturationValue) { this.applyHSVFromCoord(e.screenX - this.saturationValueGraph.get_screenLeft(),e.screenY - this.saturationValueGraph.get_screenTop()); } else if(this._trackingHue) { this.applyHueFromCoord(e.screenX - this.hueGraph.get_screenLeft(),e.screenY - this.hueGraph.get_screenTop()); } } ,onScreenMouseUp: function(e) { this._trackingSaturationValue = false; this._trackingHue = false; haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); } ,applyHSVFromCoord: function(x,y) { var cx = this.saturationValueGraph.get_width(); var cy = this.saturationValueGraph.get_height(); if(x > cx) { x = cx; } else if(x < 0) { x = 0; } if(y > cy) { y = cy; } else if(y < 0) { y = 0; } var newHSV = this.hsvFromSaturationValueCoord(this._currentColorHSV.h,x,y); this._currentColorHSV = newHSV; this._currentColorRGBF = haxe_ui_util_ColorUtil.hsvToRGBF(newHSV.h,newHSV.s,newHSV.v); this.onCurrentColorChanged(); } ,applyHueFromCoord: function(x,y) { var cx = this.hueGraph.get_width(); var step = 360 / (this.hueGraph.get_width() - 10); var hue = (x - 3) * step; this.applyHSV(new haxe_ui_util_HSV(hue,this._currentColorHSV.s,this._currentColorHSV.v)); } ,hsvFromSaturationValueCoord: function(hue,x,y) { var stepX = 100 / this.saturationValueGraph.get_width(); var stepY = 100 / this.saturationValueGraph.get_height(); var s = x * stepX; var v = 100 - y * stepY; return new haxe_ui_util_HSV(hue,s,v); } ,saturationValueCoordFromHSV: function(hue,saturation,value) { var stepX = 100 / this.saturationValueGraph.get_width(); var stepY = 100 / this.saturationValueGraph.get_height(); var x = (saturation - 1) / stepX; var y = (100 - value) / stepY; return new haxe_ui_geom_Point(x,y); } ,hueCoordFromHSV: function(hue,saturation,value) { var step = 360 / (this.hueGraph.get_width() - 10); var x = hue / step; var y = 3; return new haxe_ui_geom_Point(x + 3,y); } ,onStyleClassChanged: function() { if(this.picker.classes.indexOf("no-sliders") != -1 || this.picker.classes.indexOf("no-text-inputs") != -1) { this.hsvControls.set_columns(3); this.rgbControls.set_columns(3); } else { this.hsvControls.set_columns(4); this.rgbControls.set_columns(4); } } ,sliderValue: null ,sliderSaturation: null ,sliderRed: null ,sliderHue: null ,sliderGreen: null ,sliderBlue: null ,saturationValueIndicator: null ,saturationValueGraph: null ,saturationValueContainer: null ,rgbControls: null ,prevControls: null ,nextControls: null ,inputValue: null ,inputSaturation: null ,inputRed: null ,inputHue: null ,inputHex: null ,inputGreen: null ,inputBlue: null ,hueIndicator: null ,hueGraph: null ,hueContainer: null ,hsvControls: null ,controlsStack: null ,colorPreviewContainer: null ,colorPreview: null ,registerBehaviours: function() { haxe_ui_components__$ColorPicker_ColorPickerImpl.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components__$ColorPicker_ColorPickerImpl.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components__$ColorPicker_HSVColorPickerImpl(); } ,__class__: haxe_ui_components__$ColorPicker_HSVColorPickerImpl }); var haxe_ui_components_Column = function() { this._sortDirection = null; haxe_ui_components_Button.call(this); }; $hxClasses["haxe.ui.components.Column"] = haxe_ui_components_Column; haxe_ui_components_Column.__name__ = "haxe.ui.components.Column"; haxe_ui_components_Column.__super__ = haxe_ui_components_Button; haxe_ui_components_Column.prototype = $extend(haxe_ui_components_Button.prototype,{ sortField: null ,get_sortable: function() { return this.classes.indexOf("sortable") != -1; } ,set_sortable: function(value) { if(value == true) { this.addClass("sortable"); } else { this.removeClass("sortable"); } return value; } ,_sortDirection: null ,get_sortDirection: function() { return this._sortDirection; } ,set_sortDirection: function(value) { if(value == this._sortDirection) { return value; } this._sortDirection = value; this.set_sortable(true); if(this._sortDirection == "asc") { this.swapClass("sort-asc","sort-desc"); } else if(this._sortDirection == "desc") { this.swapClass("sort-desc","sort-asc"); } else if(this.get_sortDirection() == null) { this.removeClasses(["sort-asc","sort-desc"]); } return value; } ,registerComposite: function() { haxe_ui_components_Button.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$Column_Events; } ,registerBehaviours: function() { haxe_ui_components_Button.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Button.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Column(); } ,__class__: haxe_ui_components_Column ,__properties__: $extend(haxe_ui_components_Button.prototype.__properties__,{set_sortDirection:"set_sortDirection",get_sortDirection:"get_sortDirection",set_sortable:"set_sortable",get_sortable:"get_sortable"}) }); var haxe_ui_components__$Column_Events = function(column) { var _gthis = this; haxe_ui_components_ButtonEvents.call(this,column); this._column = column; this._column.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onColumnClick)); this._column.registerEvent(haxe_ui_events_UIEvent.READY,function(_) { if(_gthis._column.get_sortDirection() != null) { var sortEvent = new haxe_ui_events_SortEvent(haxe_ui_events_SortEvent.SORT_CHANGED); sortEvent.direction = _gthis._column.get_sortDirection(); _gthis._column.dispatch(sortEvent); } }); }; $hxClasses["haxe.ui.components._Column.Events"] = haxe_ui_components__$Column_Events; haxe_ui_components__$Column_Events.__name__ = "haxe.ui.components._Column.Events"; haxe_ui_components__$Column_Events.__super__ = haxe_ui_components_ButtonEvents; haxe_ui_components__$Column_Events.prototype = $extend(haxe_ui_components_ButtonEvents.prototype,{ _column: null ,onMouseDown: function(event) { var components = this._column.findComponentsUnderPoint(event.screenX,event.screenY,haxe_ui_core_InteractiveComponent); HxOverrides.remove(components,this._column); if(components.length == 0) { haxe_ui_components_ButtonEvents.prototype.onMouseDown.call(this,event); } } ,onColumnClick: function(event) { if(this._column.get_sortable() == false) { return; } var components = this._column.findComponentsUnderPoint(event.screenX,event.screenY,haxe_ui_core_InteractiveComponent); HxOverrides.remove(components,this._column); if(components.length != 0) { return; } if(this._column.get_sortDirection() == null) { this._column.set_sortDirection("asc"); } else if(this._column.get_sortDirection() == "asc") { this._column.set_sortDirection("desc"); } else if(this._column.get_sortDirection() == "desc") { this._column.set_sortDirection("asc"); } var sortEvent = new haxe_ui_events_SortEvent(haxe_ui_events_SortEvent.SORT_CHANGED); sortEvent.direction = this._column.get_sortDirection(); this._column.dispatch(sortEvent); } ,__class__: haxe_ui_components__$Column_Events }); var haxe_ui_components_Decorator = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.components.Decorator"] = haxe_ui_components_Decorator; haxe_ui_components_Decorator.__name__ = "haxe.ui.components.Decorator"; haxe_ui_components_Decorator.__super__ = haxe_ui_containers_Box; haxe_ui_components_Decorator.prototype = $extend(haxe_ui_containers_Box.prototype,{ set_icon: function(value) { var image = this.findComponent(null,haxe_ui_components_Image); if(image == null) { image = new haxe_ui_components_Image(); this.addComponent(image); } image.set_resource(value); return value; } ,applyStyle: function(style) { haxe_ui_containers_Box.prototype.applyStyle.call(this,style); if(style.icon != null) { this.set_icon(style.icon); } } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Decorator(); } ,__class__: haxe_ui_components_Decorator }); var haxe_ui_components_DropDown = function() { this._itemRenderer = null; haxe_ui_components_Button.call(this); }; $hxClasses["haxe.ui.components.DropDown"] = haxe_ui_components_DropDown; haxe_ui_components_DropDown.__name__ = "haxe.ui.components.DropDown"; haxe_ui_components_DropDown.__interfaces__ = [haxe_ui_core_IDataComponent]; haxe_ui_components_DropDown.__super__ = haxe_ui_components_Button; haxe_ui_components_DropDown.prototype = $extend(haxe_ui_components_Button.prototype,{ hideDropDown: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("hideDropDown",null); } ,showDropDown: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("showDropDown",null); } ,selectItemBy: function(fn,allowUnselection) { if(allowUnselection == null) { allowUnselection = false; } var indexToSelect = -1; var _g = 0; var _g1 = this.get_dataSource().get_size(); while(_g < _g1) { var i = _g++; var item = this.get_dataSource().get(i); if(fn(item)) { indexToSelect = i; break; } } if(allowUnselection) { this.set_selectedIndex(-1); this.set_selectedIndex(indexToSelect); } else if(indexToSelect != -1) { this.set_selectedIndex(-1); this.set_selectedIndex(indexToSelect); } } ,_itemRenderer: null ,get_itemRenderer: function() { return this._itemRenderer; } ,set_itemRenderer: function(value) { this._itemRenderer = value; return value; } ,onThemeChanged: function() { haxe_ui_components_Button.prototype.onThemeChanged.call(this); var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_components_DropDownBuilder); builder.onThemeChanged(); } ,postCloneComponent: function(c) { haxe_ui_components_Button.prototype.postCloneComponent.call(this,c); if(this._itemRenderer != null) { c.addComponent(this._itemRenderer.cloneComponent()); } } ,registerComposite: function() { haxe_ui_components_Button.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components_DropDownEvents; this._compositeBuilderClass = haxe_ui_components_DropDownBuilder; } ,registerBehaviours: function() { haxe_ui_components_Button.prototype.registerBehaviours.call(this); this.behaviours.register("handlerStyleNames",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("dataSource",haxe_ui_components__$DropDown_DataSourceBehaviour); this.behaviours.register("type",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromString("list")); this.behaviours.register("virtual",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("dropdownWidth",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("dropdownHeight",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("dropdownSize",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("dropdownHorizontalPosition",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("dropdownVerticalPosition",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("selectedIndex",haxe_ui_components__$DropDown_SelectedIndexBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedItem",haxe_ui_components__$DropDown_SelectedItemBehaviour); this.behaviours.register("searchable",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("searchPrompt",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromString("{{search}}")); this.behaviours.register("searchField",haxe_ui_components__$DropDown_SearchFieldBehaviour); this.behaviours.register("dropDownOpen",haxe_ui_components__$DropDown_DropDownOpenBehaviour); this.behaviours.register("hideDropDown",haxe_ui_components__$DropDown_HideDropDown); this.behaviours.register("showDropDown",haxe_ui_components__$DropDown_ShowDropDown); } ,get_handlerStyleNames: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("handlerStyleNames")); } ,set_handlerStyleNames: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"handlerStyleNames",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("handlerStyleNames",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"handlerStyleNames")); return value; } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,get_type: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("type")); } ,set_type: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"type",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("type",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"type")); return value; } ,get_virtual: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("virtual")); } ,set_virtual: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("virtual",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"virtual")); return value; } ,get_dropdownWidth: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("dropdownWidth")); } ,set_dropdownWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dropdownWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dropdownWidth")); return value; } ,get_dropdownHeight: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("dropdownHeight")); } ,set_dropdownHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dropdownHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dropdownHeight")); return value; } ,get_dropdownSize: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toInt(this.behaviours.get("dropdownSize")); } ,set_dropdownSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dropdownSize",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dropdownSize")); return value; } ,get_dropdownHorizontalPosition: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("dropdownHorizontalPosition")); } ,set_dropdownHorizontalPosition: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"dropdownHorizontalPosition",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("dropdownHorizontalPosition",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dropdownHorizontalPosition")); return value; } ,get_dropdownVerticalPosition: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("dropdownVerticalPosition")); } ,set_dropdownVerticalPosition: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"dropdownVerticalPosition",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("dropdownVerticalPosition",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dropdownVerticalPosition")); return value; } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); return value; } ,get_selectedItem: function() { if(this.behaviours == null) { return null; } return this.behaviours.getDynamic("selectedItem"); } ,set_selectedItem: function(value) { this.behaviours.setDynamic("selectedItem",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedItem")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_searchable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("searchable")); } ,set_searchable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("searchable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"searchable")); return value; } ,get_searchPrompt: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("searchPrompt")); } ,set_searchPrompt: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"searchPrompt",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("searchPrompt",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"searchPrompt")); return value; } ,get_searchField: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("searchField")); } ,set_searchField: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("searchField",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"searchField")); return value; } ,get_dropDownOpen: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("dropDownOpen")); } ,set_dropDownOpen: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dropDownOpen",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dropDownOpen")); return value; } ,get_value: function() { return this.get_selectedItem(); } ,set_value: function(value) { this.set_selectedItem(value); return value; } ,cloneComponent: function() { var c = haxe_ui_components_Button.prototype.cloneComponent.call(this); if(this.get_itemRenderer() != null) { c.set_itemRenderer(this.get_itemRenderer()); } if(this.get_handlerStyleNames() != null) { c.set_handlerStyleNames(this.get_handlerStyleNames()); } if(this.get_dataSource() != null) { c.set_dataSource(this.get_dataSource()); } if(this.get_type() != null) { c.set_type(this.get_type()); } c.set_virtual(this.get_virtual()); if(this.get_dropdownWidth() != null) { c.set_dropdownWidth(this.get_dropdownWidth()); } if(this.get_dropdownHeight() != null) { c.set_dropdownHeight(this.get_dropdownHeight()); } if(this.get_dropdownSize() != null) { c.set_dropdownSize(this.get_dropdownSize()); } if(this.get_dropdownHorizontalPosition() != null) { c.set_dropdownHorizontalPosition(this.get_dropdownHorizontalPosition()); } if(this.get_dropdownVerticalPosition() != null) { c.set_dropdownVerticalPosition(this.get_dropdownVerticalPosition()); } c.set_selectedIndex(this.get_selectedIndex()); if(this.get_selectedItem() != null) { c.set_selectedItem(this.get_selectedItem()); } c.set_searchable(this.get_searchable()); if(this.get_searchPrompt() != null) { c.set_searchPrompt(this.get_searchPrompt()); } if(this.get_searchField() != null) { c.set_searchField(this.get_searchField()); } c.set_dropDownOpen(this.get_dropDownOpen()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_DropDown(); } ,__class__: haxe_ui_components_DropDown ,__properties__: $extend(haxe_ui_components_Button.prototype.__properties__,{set_dropDownOpen:"set_dropDownOpen",get_dropDownOpen:"get_dropDownOpen",set_searchField:"set_searchField",get_searchField:"get_searchField",set_searchPrompt:"set_searchPrompt",get_searchPrompt:"get_searchPrompt",set_searchable:"set_searchable",get_searchable:"get_searchable",set_selectedItem:"set_selectedItem",get_selectedItem:"get_selectedItem",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",set_dropdownVerticalPosition:"set_dropdownVerticalPosition",get_dropdownVerticalPosition:"get_dropdownVerticalPosition",set_dropdownHorizontalPosition:"set_dropdownHorizontalPosition",get_dropdownHorizontalPosition:"get_dropdownHorizontalPosition",set_dropdownSize:"set_dropdownSize",get_dropdownSize:"get_dropdownSize",set_dropdownHeight:"set_dropdownHeight",get_dropdownHeight:"get_dropdownHeight",set_dropdownWidth:"set_dropdownWidth",get_dropdownWidth:"get_dropdownWidth",set_virtual:"set_virtual",get_virtual:"get_virtual",set_type:"set_type",get_type:"get_type",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource",set_handlerStyleNames:"set_handlerStyleNames",get_handlerStyleNames:"get_handlerStyleNames",set_itemRenderer:"set_itemRenderer",get_itemRenderer:"get_itemRenderer"}) }); var haxe_ui_components__$DropDown_HideDropDown = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.HideDropDown"] = haxe_ui_components__$DropDown_HideDropDown; haxe_ui_components__$DropDown_HideDropDown.__name__ = "haxe.ui.components._DropDown.HideDropDown"; haxe_ui_components__$DropDown_HideDropDown.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$DropDown_HideDropDown.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ call: function(param) { var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_components_DropDownEvents); events.hideDropDown(); return null; } ,__class__: haxe_ui_components__$DropDown_HideDropDown }); var haxe_ui_components__$DropDown_ShowDropDown = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.ShowDropDown"] = haxe_ui_components__$DropDown_ShowDropDown; haxe_ui_components__$DropDown_ShowDropDown.__name__ = "haxe.ui.components._DropDown.ShowDropDown"; haxe_ui_components__$DropDown_ShowDropDown.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$DropDown_ShowDropDown.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ call: function(param) { var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_components_DropDownEvents); events.showDropDown(); return null; } ,__class__: haxe_ui_components__$DropDown_ShowDropDown }); var haxe_ui_components__$DropDown_DataSourceBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.DataSourceBehaviour"] = haxe_ui_components__$DropDown_DataSourceBehaviour; haxe_ui_components__$DropDown_DataSourceBehaviour.__name__ = "haxe.ui.components._DropDown.DataSourceBehaviour"; haxe_ui_components__$DropDown_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$DropDown_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value) == true) { this._value = haxe_ui_util_Variant.fromDataSource(new haxe_ui_data_ArrayDataSource()); } return this._value; } ,set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); if(haxe_ui_util_Variant.eq(value,this._value)) { return; } var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); handler.reset(); if(this._component.get_text() == null && this._component.get_isReady()) { (js_Boot.__cast(this._component , haxe_ui_components_DropDown)).set_selectedIndex(0); } } ,__class__: haxe_ui_components__$DropDown_DataSourceBehaviour }); var haxe_ui_components__$DropDown_SelectedIndexBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.SelectedIndexBehaviour"] = haxe_ui_components__$DropDown_SelectedIndexBehaviour; haxe_ui_components__$DropDown_SelectedIndexBehaviour.__name__ = "haxe.ui.components._DropDown.SelectedIndexBehaviour"; haxe_ui_components__$DropDown_SelectedIndexBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$DropDown_SelectedIndexBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); handler.set_selectedIndex(haxe_ui_util_Variant.toInt(this._value)); } ,get: function() { if(this._component.get_isReady() == false) { return haxe_ui_behaviours_DataBehaviour.prototype.get.call(this); } var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); return haxe_ui_util_Variant.fromInt(handler.get_selectedIndex()); } ,set: function(value) { if(this._component.get_isReady() == false) { haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); return; } if(haxe_ui_util_Variant.eq(value,this.get())) { return; } this._value = value; this.invalidateData(); var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); handler.set_selectedIndex(haxe_ui_util_Variant.toInt(this._value)); } ,__class__: haxe_ui_components__$DropDown_SelectedIndexBehaviour }); var haxe_ui_components__$DropDown_SelectedItemBehaviour = function(component) { haxe_ui_behaviours_DynamicDataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.SelectedItemBehaviour"] = haxe_ui_components__$DropDown_SelectedItemBehaviour; haxe_ui_components__$DropDown_SelectedItemBehaviour.__name__ = "haxe.ui.components._DropDown.SelectedItemBehaviour"; haxe_ui_components__$DropDown_SelectedItemBehaviour.__super__ = haxe_ui_behaviours_DynamicDataBehaviour; haxe_ui_components__$DropDown_SelectedItemBehaviour.prototype = $extend(haxe_ui_behaviours_DynamicDataBehaviour.prototype,{ validateData: function() { var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); handler.set_selectedItem(this._value); } ,getDynamic: function() { if(this._component.get_isReady() == false) { return this._value; } var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); return handler.get_selectedItem(); } ,setDynamic: function(value) { if(this._component.get_isReady() == false) { haxe_ui_behaviours_DynamicDataBehaviour.prototype.setDynamic.call(this,value); return; } this._value = value; this.invalidateData(); var handler = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); handler.set_selectedItem(value); } ,__class__: haxe_ui_components__$DropDown_SelectedItemBehaviour }); var haxe_ui_components__$DropDown_SearchFieldBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.SearchFieldBehaviour"] = haxe_ui_components__$DropDown_SearchFieldBehaviour; haxe_ui_components__$DropDown_SearchFieldBehaviour.__name__ = "haxe.ui.components._DropDown.SearchFieldBehaviour"; haxe_ui_components__$DropDown_SearchFieldBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$DropDown_SearchFieldBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_components_DropDownEvents); return haxe_ui_util_Variant.fromComponent(events.get_searchField()); } ,set: function(value) { var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_components_DropDownEvents); events.set_searchField(haxe_ui_util_Variant.toComponent(value)); } ,__class__: haxe_ui_components__$DropDown_SearchFieldBehaviour }); var haxe_ui_components__$DropDown_DropDownOpenBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._DropDown.DropDownOpenBehaviour"] = haxe_ui_components__$DropDown_DropDownOpenBehaviour; haxe_ui_components__$DropDown_DropDownOpenBehaviour.__name__ = "haxe.ui.components._DropDown.DropDownOpenBehaviour"; haxe_ui_components__$DropDown_DropDownOpenBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$DropDown_DropDownOpenBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_components_DropDownEvents); return haxe_ui_util_Variant.fromBool(events._dropdownOpen); } ,set: function(value) { var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_components_DropDownEvents); if(haxe_ui_util_Variant.eq(value,haxe_ui_util_Variant.fromBool(true))) { events.showDropDown(); } else { events.hideDropDown(); } } ,__class__: haxe_ui_components__$DropDown_DropDownOpenBehaviour }); var haxe_ui_components_IDropDownHandler = function() { }; $hxClasses["haxe.ui.components.IDropDownHandler"] = haxe_ui_components_IDropDownHandler; haxe_ui_components_IDropDownHandler.__name__ = "haxe.ui.components.IDropDownHandler"; haxe_ui_components_IDropDownHandler.__isInterface__ = true; haxe_ui_components_IDropDownHandler.prototype = { get_component: null ,get_selectedIndex: null ,set_selectedIndex: null ,get_selectedItem: null ,set_selectedItem: null ,component: null ,prepare: null ,reset: null ,applyDefault: null ,pauseEvents: null ,resumeEvents: null ,__class__: haxe_ui_components_IDropDownHandler ,__properties__: {set_selectedItem:"set_selectedItem",get_selectedItem:"get_selectedItem",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",get_component:"get_component"} }; var haxe_ui_components_DropDownHandler = function(dropdown) { this.eventsPaused = false; this._dropdown = dropdown; }; $hxClasses["haxe.ui.components.DropDownHandler"] = haxe_ui_components_DropDownHandler; haxe_ui_components_DropDownHandler.__name__ = "haxe.ui.components.DropDownHandler"; haxe_ui_components_DropDownHandler.__interfaces__ = [haxe_ui_components_IDropDownHandler]; haxe_ui_components_DropDownHandler.prototype = { _dropdown: null ,component: null ,get_component: function() { return null; } ,prepare: function(wrapper) { } ,reset: function() { } ,get_selectedIndex: function() { return -1; } ,set_selectedIndex: function(value) { return value; } ,get_selectedItem: function() { return null; } ,set_selectedItem: function(value) { return value; } ,applyDefault: function() { } ,eventsPaused: null ,pauseEvents: function() { this.eventsPaused = true; } ,resumeEvents: function() { var _gthis = this; haxe_ui_Toolkit.callLater(function() { _gthis.eventsPaused = false; }); } ,__class__: haxe_ui_components_DropDownHandler ,__properties__: {set_selectedItem:"set_selectedItem",get_selectedItem:"get_selectedItem",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",get_component:"get_component"} }; var haxe_ui_components__$DropDown_ListDropDownHandler = function(dropdown) { this._cachedSelectedItem = null; this._cachedSelectedIndex = -1; haxe_ui_components_DropDownHandler.call(this,dropdown); }; $hxClasses["haxe.ui.components._DropDown.ListDropDownHandler"] = haxe_ui_components__$DropDown_ListDropDownHandler; haxe_ui_components__$DropDown_ListDropDownHandler.__name__ = "haxe.ui.components._DropDown.ListDropDownHandler"; haxe_ui_components__$DropDown_ListDropDownHandler.__super__ = haxe_ui_components_DropDownHandler; haxe_ui_components__$DropDown_ListDropDownHandler.prototype = $extend(haxe_ui_components_DropDownHandler.prototype,{ _listview: null ,get_component: function() { this.createListView(); return this._listview; } ,reset: function() { if(this._listview != null) { this._listview.set_dataSource(this._dropdown.get_dataSource()); } } ,prepare: function(wrapper) { var itemCount = 4; if(this._dropdown.get_dropdownSize() != null) { itemCount = this._dropdown.get_dropdownSize(); } if(this._listview.get_dataSource() != null && this._listview.get_dataSource().get_size() < itemCount) { itemCount = this._listview.get_dataSource().get_size(); } if(itemCount > 0 && this._dropdown.get_dropdownHeight() == null) { this._listview.set_itemCount(itemCount); } this._listview.syncComponentValidation(); if(this._dropdown.get_dropdownWidth() == null) { wrapper.syncComponentValidation(); var offset = 0; if(wrapper.get_layout() != null) { offset = wrapper.get_layout().get_paddingLeft() + wrapper.get_layout().get_paddingRight(); } this._listview.set_width(this._dropdown.get_width() - offset); } else { this._listview.set_width(this._dropdown.get_dropdownWidth()); } if(this._dropdown.get_dropdownHeight() != null) { this._listview.set_height(this._dropdown.get_dropdownHeight()); } var selectedIndex = this._dropdown.get_selectedIndex(); if(this._dropdown.get_dataSource() != null && this._dropdown.get_text() != null && selectedIndex < 0) { var text = this._dropdown.get_text(); var itemIndex = this.indexOfItem(text); if(itemIndex != -1) { selectedIndex = itemIndex; } } this._listview.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onListChange)); this._listview.set_selectedIndex(selectedIndex); this._listview.syncComponentValidation(); this._listview.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onListChange)); } ,_cachedSelectedIndex: null ,get_selectedIndex: function() { if(this._listview == null) { return this._cachedSelectedIndex; } return this._listview.get_selectedIndex(); } ,set_selectedIndex: function(value) { var data = null; var dispatchChanged = false; if(this._listview != null && this._cachedSelectedIndex != value) { this._cachedSelectedIndex = value; this._listview.set_selectedIndex(value); } else if(this._cachedSelectedIndex != value) { this._cachedSelectedIndex = value; if(this._dropdown.get_dataSource() != null && value >= 0 && value < this._dropdown.get_dataSource().get_size()) { data = this._dropdown.get_dataSource().get(value); } dispatchChanged = true; } if(this._dropdown.get_dataSource() != null && value >= 0 && value < this._dropdown.get_dataSource().get_size()) { var data1 = this._dropdown.get_dataSource().get(value); var itemRenderer = this._dropdown.findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer == null) { var text = null; if(Type.typeof(data1) == ValueType.TObject) { text = data1.text; if(text == null) { text = data1.value; } } else { text = Std.string(data1); } this._dropdown.set_text(text); } else { itemRenderer.set_data(data1); } } if(dispatchChanged) { var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE,false,data); event.value = haxe_ui_util_Variant.fromDynamic(data); this._dropdown.dispatch(event); this._dropdown.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,false,"selectedItem")); } return value; } ,indexOfItem: function(text) { if(text == null) { return -1; } var index = -1; if(this._dropdown.get_dataSource() != null) { var _g = 0; var _g1 = this._dropdown.get_dataSource().get_size(); while(_g < _g1) { var i = _g++; var item = this._dropdown.get_dataSource().get(i); if(item == text || item.value == text || item.text == text) { index = i; } } } if(index == -1 && this._dropdown.get_dataSource() != null) { var expr = haxe_ui_locale_LocaleManager.get_instance().findBindingExpr(this._dropdown,"text"); if(expr != null) { text = expr; var _g = 0; var _g1 = this._dropdown.get_dataSource().get_size(); while(_g < _g1) { var i = _g++; var item = this._dropdown.get_dataSource().get(i); if(item == text || item.value == text || item.text == text) { index = i; } } } } return index; } ,get_selectedItem: function() { if(this._listview == null) { if(this._cachedSelectedIndex >= 0 && this._cachedSelectedIndex < this._dropdown.get_dataSource().get_size()) { var data = this._dropdown.get_dataSource().get(this._cachedSelectedIndex); return data; } else { return this._cachedSelectedItem; } } return this._listview.get_selectedItem(); } ,_cachedSelectedItem: null ,set_selectedItem: function(value) { if(value == null) { return value; } var text = null; if(Type.typeof(value) == ValueType.TObject) { text = value.text; if(text == null) { text = value.value; } } else { text = Std.string(value); } var index = this.indexOfItem(text); this.set_selectedIndex(index); return value; } ,createListView: function() { var _gthis = this; if(this._listview == null) { this._listview = new haxe_ui_containers_ListView(); if(this._dropdown.get_itemRenderer() != null) { this._listview.addComponent(this._dropdown.get_itemRenderer()); } this._listview.componentTabIndex = -1; this._listview.set_virtual(this._dropdown.get_virtual()); this._listview.set_dataSource(this._dropdown.get_dataSource()); if(this._cachedSelectedIndex != -1) { this._listview.set_selectedIndex(this._cachedSelectedIndex); } if(this._dropdown.get_id() != null) { this._listview.addClass(this._dropdown.get_id() + "-listview"); this._listview.set_id(this._dropdown.get_id() + "_listview"); } this._listview.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,function(e) { switch(e.action) { case "actionBack":case "actionCancel": e.cancel(); (js_Boot.__cast(_gthis._dropdown._internalEvents , haxe_ui_components_DropDownEvents)).hideDropDown(); break; case "actionConfirm":case "actionPress": e.cancel(); _gthis.applySelection(); break; default: } }); } } ,onListChange: function(event) { if(((event.relatedEvent) instanceof haxe_ui_events_MouseEvent)) { this.applySelection(); } } ,applySelection: function() { if(this._listview.get_selectedItem() == null) { return; } var currentHover = this._listview.findComponent(":hover",null,true,"css"); if(currentHover != null) { currentHover.removeClass(":hover"); } var selectedItem = this._listview.get_selectedItem(); var itemRenderer = this._dropdown.findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer == null) { var text = null; if(Type.typeof(selectedItem) == ValueType.TObject) { text = this._listview.get_selectedItem().text; if(text == null) { text = this._listview.get_selectedItem().value; } } else { text = Std.string(selectedItem); } this._dropdown.set_text(text); } else { itemRenderer.set_data(selectedItem); } if(this.eventsPaused == false) { (js_Boot.__cast(this._dropdown._internalEvents , haxe_ui_components_DropDownEvents)).hideDropDown(); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE,false,selectedItem); event.value = haxe_ui_util_Variant.fromDynamic(selectedItem); this._dropdown.dispatch(event); this._dropdown.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,false,"selectedItem")); } } ,applyDefault: function() { var indexToSelect = 0; if(this._cachedSelectedItem != null) { var index = this.indexOfItem(this._cachedSelectedItem); if(index != -1) { indexToSelect = index; } } else if(this._cachedSelectedIndex != -1) { indexToSelect = this._cachedSelectedIndex; } this._dropdown.set_selectedIndex(indexToSelect); } ,__class__: haxe_ui_components__$DropDown_ListDropDownHandler }); var haxe_ui_components_CalendarDropDownHandler = function(dropdown) { this._cachedSelectedDate = null; haxe_ui_components_DropDownHandler.call(this,dropdown); }; $hxClasses["haxe.ui.components.CalendarDropDownHandler"] = haxe_ui_components_CalendarDropDownHandler; haxe_ui_components_CalendarDropDownHandler.__name__ = "haxe.ui.components.CalendarDropDownHandler"; haxe_ui_components_CalendarDropDownHandler.__super__ = haxe_ui_components_DropDownHandler; haxe_ui_components_CalendarDropDownHandler.prototype = $extend(haxe_ui_components_DropDownHandler.prototype,{ _calendar: null ,get_component: function() { if(this._calendar == null) { this._calendar = new haxe_ui_containers_CalendarView(); if(this._dropdown.get_id() != null) { this._calendar.addClass(this._dropdown.get_id() + "-calendar"); this._calendar.set_id(this._dropdown.get_id() + "_calendar"); } this._calendar.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onCalendarChange)); } return this._calendar; } ,prepare: function(wrapper) { if(this._dropdown.get_dropdownWidth() != null) { this._calendar.set_width(this._dropdown.get_dropdownWidth()); } if(this._dropdown.get_dropdownHeight() != null) { this._calendar.set_height(this._dropdown.get_dropdownHeight()); } if(this._cachedSelectedDate != null) { this._calendar.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onCalendarChange)); this._calendar.set_selectedDate(this._cachedSelectedDate); this._calendar.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onCalendarChange)); } this._calendar.syncComponentValidation(); } ,_cachedSelectedDate: null ,get_selectedItem: function() { if(this._calendar == null) { return this._cachedSelectedDate; } return this._calendar.get_selectedDate(); } ,set_selectedItem: function(value) { if(value == null) { return value; } var date = null; if(((value) instanceof Date)) { date = js_Boot.__cast(value , Date); } else { date = HxOverrides.strDate(Std.string(value)); } if(this._calendar != null && date != null) { if(HxOverrides.dateStr(date) == HxOverrides.dateStr(this._calendar.get_selectedDate())) { this._dropdown.set_text(DateTools.format(date,haxe_ui_locale_Formats.get_dateFormatShort())); return value; } this._cachedSelectedDate = date; this._calendar.set_selectedDate(date); } else if(date != null) { this._cachedSelectedDate = date; this._dropdown.set_text(DateTools.format(this._cachedSelectedDate,haxe_ui_locale_Formats.get_dateFormatShort())); } return value; } ,onCalendarChange: function(event) { if(this._calendar.get_selectedDate() == null) { return; } this._cachedSelectedDate = this._calendar.get_selectedDate(); this._dropdown.set_text(DateTools.format(this._calendar.get_selectedDate(),haxe_ui_locale_Formats.get_dateFormatShort())); (js_Boot.__cast(this._dropdown._internalEvents , haxe_ui_components_DropDownEvents)).hideDropDown(); this._dropdown.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE,false,this._calendar.get_selectedDate())); this._dropdown.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,false,"selectedItem")); } ,applyDefault: function() { var now = new Date(); this._dropdown.set_selectedItem(now); } ,__class__: haxe_ui_components_CalendarDropDownHandler }); var haxe_ui_components_DropDownEvents = function(dropdown) { this._lastSearchTerm = ""; this._searchField = null; this._dropdownOpen = false; this._wrapper = null; this._overlay = null; haxe_ui_components_ButtonEvents.call(this,dropdown); this._dropdown = dropdown; }; $hxClasses["haxe.ui.components.DropDownEvents"] = haxe_ui_components_DropDownEvents; haxe_ui_components_DropDownEvents.__name__ = "haxe.ui.components.DropDownEvents"; haxe_ui_components_DropDownEvents.__super__ = haxe_ui_components_ButtonEvents; haxe_ui_components_DropDownEvents.prototype = $extend(haxe_ui_components_ButtonEvents.prototype,{ _dropdown: null ,register: function() { haxe_ui_components_ButtonEvents.prototype.register.call(this); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onClick)); this.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onHidden)); } ,unregister: function() { haxe_ui_components_ButtonEvents.prototype.unregister.call(this); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onClick)); this.unregisterEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onHidden)); } ,onClick: function(event) { this._dropdown.set_selected(!this._dropdown.get_selected()); if(this._dropdown.get_selected() == true) { this.showDropDown(); } else { this.hideDropDown(); } } ,onHidden: function(_) { this.hideDropDown(); } ,onMouseClick: function(event) { } ,_overlay: null ,_wrapper: null ,_dropdownOpen: null ,showDropDown: function() { if(this._dropdownOpen) { return; } var handler = (js_Boot.__cast(this._dropdown._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); if(handler == null) { return; } if(this._wrapper == null) { this._wrapper = new haxe_ui_containers_Box(); this._wrapper.addClass("popup"); this._wrapper.addClass("dropdown-popup"); if(this._button.get_id() != null) { this._wrapper.addClass(this._button.get_id() + "-popup"); this._wrapper.set_id(this._button.get_id() + "_popup"); } else { this._wrapper.set_id("dropdown_popup"); } this._wrapper.set_styleNames(this._dropdown.get_handlerStyleNames()); if(this._dropdown.get_searchable() == true) { var searchContainer = new haxe_ui_containers_VBox(); searchContainer.set_id("dropdown-search-container"); searchContainer.addClass("dropdown-search-container"); searchContainer.set_scriptAccess(false); var searchFieldContainer = new haxe_ui_containers_HBox(); searchFieldContainer.set_id("dropdown-search-field-container"); searchFieldContainer.addClass("dropdown-search-field-container"); searchFieldContainer.set_scriptAccess(false); searchFieldContainer.addComponent(this.get_searchField()); var searchFieldSeparator = new haxe_ui_core_Component(); searchFieldSeparator.set_id("dropdown-search-field-separator"); searchFieldSeparator.addClass("dropdown-search-field-separator"); searchFieldSeparator.set_scriptAccess(false); searchContainer.addComponent(searchFieldContainer); searchContainer.addComponent(searchFieldSeparator); searchContainer.addComponent(handler.get_component()); this._wrapper.addComponent(searchContainer); } else { this._wrapper.addComponent(handler.get_component()); } if(this._dropdown.get_style().fontSize != null && handler.get_component().get_customStyle().fontSize != this._dropdown.get_style().fontSize) { handler.get_component().get_customStyle().fontSize = this._dropdown.get_style().fontSize; } var filler = new haxe_ui_core_Component(); filler.set_includeInLayout(false); filler.addClass("dropdown-filler"); filler.set_id("dropdown-filler"); this._wrapper.addComponent(filler); } var componentOffset = this._dropdown.getComponentOffset(); if(this._dropdown.get_style().mode != null && this._dropdown.get_style().mode == "mobile") { if(this._overlay == null) { this._overlay = new haxe_ui_core_Component(); this._overlay.set_id("modal-background"); this._overlay.addClass("modal-background"); this._overlay.set_percentWidth(this._overlay.set_percentHeight(100)); } haxe_ui_core_Screen.get_instance().addComponent(this._overlay); haxe_ui_core_Screen.get_instance().addComponent(this._wrapper); handler.prepare(this._wrapper); this._wrapper.syncComponentValidation(); this._wrapper.validateNow(); this._wrapper.set_left(haxe_ui_core_Screen.get_instance().get_actualWidth() / 2 - this._wrapper.get_actualComponentWidth() / 2); this._wrapper.set_top(haxe_ui_core_Screen.get_instance().get_actualHeight() / 2 - this._wrapper.get_actualComponentHeight() / 2); } else { this._wrapper.set_left(this._dropdown.get_screenLeft() + componentOffset.x); this._wrapper.set_top(this._dropdown.get_screenTop() + (this._dropdown.get_actualComponentHeight() - haxe_ui_Toolkit.get_scaleY()) + componentOffset.y); this._wrapper.hide(); haxe_ui_core_Screen.get_instance().addComponent(this._wrapper); handler.prepare(this._wrapper); this._wrapper.syncComponentValidation(); this._wrapper.validateNow(); var marginTop = 0.0; if(this._wrapper.get_style() != null && this._wrapper.get_style().marginTop != null) { marginTop = this._wrapper.get_style().marginTop; } var fh = this._wrapper; fh.set_top(fh.get_top() + marginTop); this._wrapper.show(); var popupToRight = false; var popupFromBottom = false; if(this._dropdown.get_dropdownHorizontalPosition() == "right" || this._wrapper.get_screenLeft() + this._wrapper.get_actualComponentWidth() > haxe_ui_core_Screen.get_instance().get_actualWidth()) { var left = this._wrapper.get_screenLeft() - this._wrapper.get_actualComponentWidth() + this._dropdown.get_actualComponentWidth(); this._wrapper.set_left(left >= 0 ? left : haxe_ui_core_Screen.get_instance().get_actualWidth() / 2 - this._wrapper.get_actualComponentWidth() / 2); popupToRight = true; } this._wrapper.removeClass("popup-from-bottom"); if(this._dropdown.get_dropdownVerticalPosition() == "bottom" || this._wrapper.get_screenTop() + this._wrapper.get_actualComponentHeight() > haxe_ui_core_Screen.get_instance().get_actualHeight()) { this._wrapper.addClass("popup-from-bottom"); this._wrapper.set_top(this._dropdown.get_screenTop() - this._wrapper.get_actualComponentHeight() + haxe_ui_Toolkit.get_scaleY()); this._wrapper.syncComponentValidation(); this._wrapper.validateNow(); var marginTop = 0.0; if(this._wrapper.get_style() != null && this._wrapper.get_style().marginTop != null) { marginTop = this._wrapper.get_style().marginTop; } var fh = this._wrapper; fh.set_top(fh.get_top() + marginTop); popupFromBottom = true; } var cx = this._wrapper.get_width() - this._dropdown.get_width(); var filler = this._wrapper.findComponent("dropdown-filler",null,false); if(cx > 0 && filler != null) { this._wrapper.addClass("dropdown-popup-expanded"); filler.set_width(cx); if(popupToRight) { cx -= haxe_ui_Toolkit.get_scaleX(); filler.set_left(haxe_ui_Toolkit.get_scaleX()); } else { cx += haxe_ui_Toolkit.get_scaleX(); filler.set_left(this._wrapper.get_width() - cx); } if(popupFromBottom) { filler.set_top(this._wrapper.get_actualComponentHeight() - haxe_ui_Toolkit.get_scaleY()); } else { filler.set_top(0); } if(filler.get_style() != null && (filler.get_style().hidden == null || filler.get_style().hidden == false)) { filler.set_hidden(false); } } else if(filler != null) { filler.set_hidden(true); this._wrapper.removeClass("dropdown-popup-expanded"); } } haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); this.registerEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this.onDropDownMoved)); this._dropdownOpen = true; var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.OPEN); this._dropdown.dispatch(event); } ,onDropDownMoved: function(_) { this.hideDropDown(); } ,createSearchField: function() { var _gthis = this; var searchField = new haxe_ui_components_TextField(); searchField.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,function(e) { if(e.action == "actionDown" || e.action == "actionUp" || e.action == "actionConfirm" || e.action == "actionPress" || e.action == "actionBack" || e.action == "actionCancel") { var builder = js_Boot.__cast(_gthis._dropdown._compositeBuilder , haxe_ui_components_DropDownBuilder); builder.get_handler().get_component().dispatch(e); } }); searchField.set_id("dropdown-search-field"); searchField.addClass("dropdown-search-field"); searchField.set_placeholder(this._dropdown.get_searchPrompt()); searchField.set_scriptAccess(false); searchField.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onSearchChange)); return searchField; } ,_searchField: null ,get_searchField: function() { if(this._searchField == null) { this._searchField = this.createSearchField(); } return this._searchField; } ,set_searchField: function(value) { this._searchField = value; return value; } ,_lastSearchTerm: null ,onSearchChange: function(event) { if(this._wrapper == null) { return; } var searchField = this._wrapper.findComponent("dropdown-search-field",haxe_ui_components_TextField); if(searchField == null) { return; } var selectedItem = this._dropdown.get_selectedItem(); var searchTerm = searchField.get_text(); if(searchTerm == null || StringTools.trim(searchTerm).length == 0) { searchTerm = ""; } if(this._lastSearchTerm == searchTerm) { return; } this._lastSearchTerm = searchTerm; if(searchTerm.length == 0) { this._dropdown.get_dataSource().clearFilter(); } else { this._dropdown.get_dataSource().filter(function(index,data) { var v = data.text; return Std.string(v).toLowerCase().indexOf(searchTerm.toLowerCase()) > -1; }); } var handler = (js_Boot.__cast(this._dropdown._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); if(handler == null) { return; } handler.prepare(this._wrapper); if(selectedItem != null) { handler.pauseEvents(); this._dropdown.set_selectedItem(selectedItem); handler.resumeEvents(); } } ,hideDropDown: function() { if(!this._dropdownOpen) { return; } var handler = (js_Boot.__cast(this._dropdown._compositeBuilder , haxe_ui_components_DropDownBuilder)).get_handler(); if(handler == null) { return; } if(this._wrapper != null) { var searchField = this._wrapper.findComponent("dropdown-search-field",haxe_ui_components_TextField); if(searchField != null) { searchField.set_focus(false); } } if(this._overlay != null) { haxe_ui_core_Screen.get_instance().removeComponent(this._overlay); this._overlay = null; } this._dropdown.set_selected(false); if(this._wrapper != null) { haxe_ui_core_Screen.get_instance().removeComponent(this._wrapper,false); } haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); this.unregisterEvent(haxe_ui_events_UIEvent.MOVE,$bind(this,this.onDropDownMoved)); this._dropdownOpen = false; var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CLOSE); this._dropdown.dispatch(event); } ,onScreenMouseDown: function(event) { if(this._wrapper == null) { return; } if(this._wrapper.hitTest(event.screenX,event.screenY) == true) { return; } var componentOffset = this._dropdown.getComponentOffset(); if(this._dropdown.hitTest(event.screenX - componentOffset.x,event.screenY - componentOffset.y) == true) { return; } this.hideDropDown(); } ,dispatchChanged: function() { } ,release: function() { if(this._down == true) { haxe_ui_components_ButtonEvents.prototype.release.call(this); if(this._dropdown.get_selected() == true) { this.showDropDown(); } else { this.hideDropDown(); } } } ,__class__: haxe_ui_components_DropDownEvents ,__properties__: {set_searchField:"set_searchField",get_searchField:"get_searchField"} }); var haxe_ui_components_DropDownBuilder = function(dropdown) { haxe_ui_components_ButtonBuilder.call(this,dropdown); this._dropdown = dropdown; var this1 = haxe_ui_components_DropDownBuilder.HANDLER_MAP; var value = haxe_ui_components__$DropDown_ListDropDownHandler.__name__; this1.h["list"] = value; var this1 = haxe_ui_components_DropDownBuilder.HANDLER_MAP; var value = haxe_ui_components_CalendarDropDownHandler.__name__; this1.h["date"] = value; }; $hxClasses["haxe.ui.components.DropDownBuilder"] = haxe_ui_components_DropDownBuilder; haxe_ui_components_DropDownBuilder.__name__ = "haxe.ui.components.DropDownBuilder"; haxe_ui_components_DropDownBuilder.__super__ = haxe_ui_components_ButtonBuilder; haxe_ui_components_DropDownBuilder.prototype = $extend(haxe_ui_components_ButtonBuilder.prototype,{ _dropdown: null ,_handler: null ,handler: null ,get_handler: function() { if(this._handler == null) { var this1 = haxe_ui_components_DropDownBuilder.HANDLER_MAP; var key = this._dropdown.get_type(); var handlerClass = this1.h[key]; if(handlerClass == null) { handlerClass = this._dropdown.get_type(); } this._handler = Type.createInstance($hxClasses[handlerClass],[this._dropdown]); } return this._handler; } ,onReady: function() { haxe_ui_components_ButtonBuilder.prototype.onReady.call(this); if(this._dropdown.get_text() == null) { this.get_handler().applyDefault(); } } ,create: function() { this._dropdown.set_toggle(true); if(this._dropdown.findComponent(null,haxe_ui_core_ItemRenderer) == null) { this._dropdown.addComponent(new haxe_ui_core_BasicItemRenderer()); } } ,destroy: function() { var events = js_Boot.__cast(this._dropdown._internalEvents , haxe_ui_components_DropDownEvents); events.hideDropDown(); if(events._wrapper != null) { haxe_ui_core_Screen.get_instance().removeComponent(events._wrapper); events._wrapper = null; } } ,addComponent: function(child) { if(((child) instanceof haxe_ui_core_ItemRenderer)) { this._dropdown.set_itemRenderer(child.cloneComponent()); if(child.get_id() == "dropdown-renderer" || child.get_id() == "dropdownRenderer") { return child; } } return haxe_ui_components_ButtonBuilder.prototype.addComponent.call(this,child); } ,onThemeChanged: function() { if(this._handler != null) { haxe_ui_core_Screen.get_instance().invalidateChildren(this._handler.get_component()); haxe_ui_core_Screen.get_instance().onThemeChangedChildren(this._handler.get_component()); } } ,__class__: haxe_ui_components_DropDownBuilder ,__properties__: $extend(haxe_ui_components_ButtonBuilder.prototype.__properties__,{get_handler:"get_handler"}) }); var haxe_ui_core_IDirectionalComponent = function() { }; $hxClasses["haxe.ui.core.IDirectionalComponent"] = haxe_ui_core_IDirectionalComponent; haxe_ui_core_IDirectionalComponent.__name__ = "haxe.ui.core.IDirectionalComponent"; haxe_ui_core_IDirectionalComponent.__isInterface__ = true; var haxe_ui_components_Range = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.Range"] = haxe_ui_components_Range; haxe_ui_components_Range.__name__ = "haxe.ui.components.Range"; haxe_ui_components_Range.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_core_IDirectionalComponent]; haxe_ui_components_Range.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_Range.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ virtualStart: null ,virtualEnd: null ,posFromCoord: function(coord) { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.call("posFromCoord",coord)); } ,get_cssName: function() { return "range"; } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("min",haxe_ui_components__$Range_RangeMin,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("max",haxe_ui_components__$Range_RangeMax,haxe_ui_util_Variant.fromInt(100)); this.behaviours.register("start",haxe_ui_components__$Range_RangeStart,null); this.behaviours.register("end",haxe_ui_components__$Range_RangeEnd,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("precision",haxe_ui_behaviours_InvalidatingBehaviour); this.behaviours.register("step",haxe_ui_behaviours_InvalidatingBehaviour); this.behaviours.register("allowInteraction",haxe_ui_components__$Range_AllowInteraction,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("posFromCoord",haxe_ui_behaviours_DefaultBehaviour); } ,get_min: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("min")); } ,set_min: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("min",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"min")); return value; } ,get_max: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("max")); } ,set_max: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("max",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"max")); return value; } ,get_start: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("start")); } ,set_start: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("start",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"start")); return value; } ,get_end: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("end")); } ,set_end: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("end",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"end")); return value; } ,get_precision: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("precision")); } ,set_precision: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("precision",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"precision")); return value; } ,get_step: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("step")); } ,set_step: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("step",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"step")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if(this.get_min() != null) { c.set_min(this.get_min()); } if(this.get_max() != null) { c.set_max(this.get_max()); } if(this.get_start() != null) { c.set_start(this.get_start()); } c.set_end(this.get_end()); c.set_precision(this.get_precision()); c.set_step(this.get_step()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Range(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_RangeBuilder; } ,__class__: haxe_ui_components_Range ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_step:"set_step",get_step:"get_step",set_precision:"set_precision",get_precision:"get_precision",set_end:"set_end",get_end:"get_end",set_start:"set_start",get_start:"get_start",set_max:"set_max",get_max:"get_max",set_min:"set_min",get_min:"get_min"}) }); var haxe_ui_components_Progress = function() { haxe_ui_components_Range.call(this); this.behaviours.set_updateOrder(["min","max","pos","indeterminate"]); }; $hxClasses["haxe.ui.components.Progress"] = haxe_ui_components_Progress; haxe_ui_components_Progress.__name__ = "haxe.ui.components.Progress"; haxe_ui_components_Progress.__interfaces__ = [haxe_ui_core_IValueComponent,haxe_ui_core_IDirectionalComponent]; haxe_ui_components_Progress.__super__ = haxe_ui_components_Range; haxe_ui_components_Progress.prototype = $extend(haxe_ui_components_Range.prototype,{ get_cssName: function() { return "progress"; } ,registerComposite: function() { haxe_ui_components_Range.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_ProgressBuilder; } ,registerBehaviours: function() { haxe_ui_components_Range.prototype.registerBehaviours.call(this); this.behaviours.register("indeterminate",haxe_ui_components__$Progress_Indeterminate); this.behaviours.register("pos",haxe_ui_components__$Progress_Pos); this.behaviours.register("min",haxe_ui_components__$Progress_Min); } ,get_indeterminate: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("indeterminate")); } ,set_indeterminate: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("indeterminate",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"indeterminate")); return value; } ,get_pos: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("pos")); } ,set_pos: function(value) { this.behaviours.set("pos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pos")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_value: function() { return this.get_pos(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 3: this.set_pos(value == true ? 1 : 0); break; case 6: if(_g.c == String) { this.set_pos(parseFloat(value)); } else { this.set_pos(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_pos(haxe_ui_util_Variant.toFloat(v)); } else { this.set_pos(value); } break; default: this.set_pos(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_components_Range.prototype.cloneComponent.call(this); c.set_indeterminate(this.get_indeterminate()); c.set_pos(this.get_pos()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Progress(); } ,__class__: haxe_ui_components_Progress ,__properties__: $extend(haxe_ui_components_Range.prototype.__properties__,{set_pos:"set_pos",get_pos:"get_pos",set_indeterminate:"set_indeterminate",get_indeterminate:"get_indeterminate"}) }); var haxe_ui_components_HorizontalProgress = function() { haxe_ui_components_Progress.call(this); }; $hxClasses["haxe.ui.components.HorizontalProgress"] = haxe_ui_components_HorizontalProgress; haxe_ui_components_HorizontalProgress.__name__ = "haxe.ui.components.HorizontalProgress"; haxe_ui_components_HorizontalProgress.__super__ = haxe_ui_components_Progress; haxe_ui_components_HorizontalProgress.prototype = $extend(haxe_ui_components_Progress.prototype,{ posFromCoord: function(coord) { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.call("posFromCoord",coord)); } ,registerBehaviours: function() { haxe_ui_components_Progress.prototype.registerBehaviours.call(this); this.behaviours.register("posFromCoord",haxe_ui_components_HorizontalRangePosFromCoord); } ,cloneComponent: function() { var c = haxe_ui_components_Progress.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_HorizontalProgress(); } ,registerComposite: function() { haxe_ui_components_Progress.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components_HorizontalRangeLayout; this._compositeBuilderClass = haxe_ui_components__$HorizontalProgress_Builder; } ,__class__: haxe_ui_components_HorizontalProgress }); var haxe_ui_components_RangeBuilder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); this.showWarning(); }; $hxClasses["haxe.ui.components.RangeBuilder"] = haxe_ui_components_RangeBuilder; haxe_ui_components_RangeBuilder.__name__ = "haxe.ui.components.RangeBuilder"; haxe_ui_components_RangeBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components_RangeBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ create: function() { haxe_ui_core_CompositeBuilder.prototype.create.call(this); if(this._component.findComponent("${_component.cssName}-value") == null) { var v = new haxe_ui_core_Component(); v.set_id("" + this._component.get_cssName() + "-value"); v.addClass("" + this._component.get_cssName() + "-value",false); this._component.addComponent(v); } } ,showWarning: function() { var name = this._component.get_className().split(".").pop(); haxe_Log.trace("WARNING: trying to create an instance of '" + name + "' directly, use either 'Horizontal" + name + "' or 'Vertical" + name + "'",{ fileName : "haxe/ui/components/Range.hx", lineNumber : 271, className : "haxe.ui.components.RangeBuilder", methodName : "showWarning"}); } ,__class__: haxe_ui_components_RangeBuilder }); var haxe_ui_components_ProgressBuilder = function(component) { haxe_ui_components_RangeBuilder.call(this,component); }; $hxClasses["haxe.ui.components.ProgressBuilder"] = haxe_ui_components_ProgressBuilder; haxe_ui_components_ProgressBuilder.__name__ = "haxe.ui.components.ProgressBuilder"; haxe_ui_components_ProgressBuilder.__super__ = haxe_ui_components_RangeBuilder; haxe_ui_components_ProgressBuilder.prototype = $extend(haxe_ui_components_RangeBuilder.prototype,{ __class__: haxe_ui_components_ProgressBuilder }); var haxe_ui_components__$HorizontalProgress_Builder = function(component) { haxe_ui_components_ProgressBuilder.call(this,component); }; $hxClasses["haxe.ui.components._HorizontalProgress.Builder"] = haxe_ui_components__$HorizontalProgress_Builder; haxe_ui_components__$HorizontalProgress_Builder.__name__ = "haxe.ui.components._HorizontalProgress.Builder"; haxe_ui_components__$HorizontalProgress_Builder.__super__ = haxe_ui_components_ProgressBuilder; haxe_ui_components__$HorizontalProgress_Builder.prototype = $extend(haxe_ui_components_ProgressBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_components__$HorizontalProgress_Builder }); var haxe_ui_components_HorizontalRange = function() { haxe_ui_components_Range.call(this); }; $hxClasses["haxe.ui.components.HorizontalRange"] = haxe_ui_components_HorizontalRange; haxe_ui_components_HorizontalRange.__name__ = "haxe.ui.components.HorizontalRange"; haxe_ui_components_HorizontalRange.__super__ = haxe_ui_components_Range; haxe_ui_components_HorizontalRange.prototype = $extend(haxe_ui_components_Range.prototype,{ posFromCoord: function(coord) { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.call("posFromCoord",coord)); } ,registerComposite: function() { haxe_ui_components_Range.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components_HorizontalRangeLayout; this._compositeBuilderClass = haxe_ui_components__$HorizontalRange_Builder; } ,registerBehaviours: function() { haxe_ui_components_Range.prototype.registerBehaviours.call(this); this.behaviours.register("posFromCoord",haxe_ui_components_HorizontalRangePosFromCoord); } ,cloneComponent: function() { var c = haxe_ui_components_Range.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_HorizontalRange(); } ,__class__: haxe_ui_components_HorizontalRange }); var haxe_ui_components_HorizontalRangePosFromCoord = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components.HorizontalRangePosFromCoord"] = haxe_ui_components_HorizontalRangePosFromCoord; haxe_ui_components_HorizontalRangePosFromCoord.__name__ = "haxe.ui.components.HorizontalRangePosFromCoord"; haxe_ui_components_HorizontalRangePosFromCoord.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components_HorizontalRangePosFromCoord.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(pos) { var range = js_Boot.__cast(this._component , haxe_ui_components_Range); var p = js_Boot.__cast(pos , haxe_ui_geom_Point); p.x -= this._component.getComponentOffset().x; var xpos = p.x - range.get_layout().get_paddingLeft(); var ucx = range.get_layout().get_usableWidth() * haxe_ui_Toolkit.get_scaleX(); if(xpos >= ucx) { xpos = ucx; } var min = range.get_min(); if(min == null) { min = 0; } var m = range.get_max() - min; var d = ucx / m; var v = xpos + range.get_start() * d; var p = v / d; return haxe_ui_util_Variant.fromFloat(p); } ,__class__: haxe_ui_components_HorizontalRangePosFromCoord }); var haxe_ui_components_HorizontalRangeLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components.HorizontalRangeLayout"] = haxe_ui_components_HorizontalRangeLayout; haxe_ui_components_HorizontalRangeLayout.__name__ = "haxe.ui.components.HorizontalRangeLayout"; haxe_ui_components_HorizontalRangeLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_HorizontalRangeLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var range = js_Boot.__cast(this.get_component() , haxe_ui_components_Range); var value = this.findComponent("" + range.get_cssName() + "-value"); if(value != null) { var ucx = this.get_usableWidth(); var start = range.get_start(); if(start == null) { start = 0; } var end = range.get_end(); if(range.virtualStart != null) { start = range.virtualStart; } if(range.virtualEnd != null) { end = range.virtualEnd; } var min = range.get_min(); if(min == null) { min = 0; } var m = range.get_max() - min; var d = ucx / m; var startInPixels = start * d - min * d; var endInPixels = end * d - min * d; var cx = Math.ceil(endInPixels - startInPixels); if(cx < 0) { cx = 0; } else if(cx > ucx) { cx = ucx; } if(cx == 0) { value.set_width(0); value.set_hidden(true); } else { value.set_width(cx); value.set_hidden(false); } } } ,repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var range = js_Boot.__cast(this.get_component() , haxe_ui_components_Range); var value = this.findComponent("" + range.get_cssName() + "-value"); var start = range.get_start(); if(start == null) { start = 0; } if(range.virtualStart != null) { start = range.virtualStart; } var min = range.get_min(); if(min == null) { min = 0; } var ucx = this.get_usableWidth(); var m = range.get_max() - min; var d = ucx / m; var startInPixels = start * d - min * d; value.set_left(Math.floor(this.get_paddingLeft() + startInPixels)); value.set_top(this.get_paddingTop()); } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_HorizontalRangeLayout(); } ,__class__: haxe_ui_components_HorizontalRangeLayout }); var haxe_ui_components__$HorizontalRange_Builder = function(component) { haxe_ui_components_RangeBuilder.call(this,component); }; $hxClasses["haxe.ui.components._HorizontalRange.Builder"] = haxe_ui_components__$HorizontalRange_Builder; haxe_ui_components__$HorizontalRange_Builder.__name__ = "haxe.ui.components._HorizontalRange.Builder"; haxe_ui_components__$HorizontalRange_Builder.__super__ = haxe_ui_components_RangeBuilder; haxe_ui_components__$HorizontalRange_Builder.prototype = $extend(haxe_ui_components_RangeBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_components__$HorizontalRange_Builder }); var haxe_ui_components_Rule = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.components.Rule"] = haxe_ui_components_Rule; haxe_ui_components_Rule.__name__ = "haxe.ui.components.Rule"; haxe_ui_components_Rule.__interfaces__ = [haxe_ui_core_IDirectionalComponent]; haxe_ui_components_Rule.__super__ = haxe_ui_core_Component; haxe_ui_components_Rule.prototype = $extend(haxe_ui_core_Component.prototype,{ registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_RuleBuilder; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Rule(); } ,__class__: haxe_ui_components_Rule }); var haxe_ui_components_HorizontalRule = function() { haxe_ui_components_Rule.call(this); }; $hxClasses["haxe.ui.components.HorizontalRule"] = haxe_ui_components_HorizontalRule; haxe_ui_components_HorizontalRule.__name__ = "haxe.ui.components.HorizontalRule"; haxe_ui_components_HorizontalRule.__super__ = haxe_ui_components_Rule; haxe_ui_components_HorizontalRule.prototype = $extend(haxe_ui_components_Rule.prototype,{ registerBehaviours: function() { haxe_ui_components_Rule.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Rule.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_HorizontalRule(); } ,registerComposite: function() { haxe_ui_components_Rule.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$HorizontalRule_Builder; } ,__class__: haxe_ui_components_HorizontalRule }); var haxe_ui_components_RuleBuilder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); this.showWarning(); }; $hxClasses["haxe.ui.components.RuleBuilder"] = haxe_ui_components_RuleBuilder; haxe_ui_components_RuleBuilder.__name__ = "haxe.ui.components.RuleBuilder"; haxe_ui_components_RuleBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components_RuleBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ showWarning: function() { haxe_Log.trace("WARNING: trying to create an instance of 'Rule' directly, use either 'HorizontalRule' or 'VerticalRule'",{ fileName : "haxe/ui/components/Rule.hx", lineNumber : 35, className : "haxe.ui.components.RuleBuilder", methodName : "showWarning"}); } ,__class__: haxe_ui_components_RuleBuilder }); var haxe_ui_components__$HorizontalRule_Builder = function(component) { haxe_ui_components_RuleBuilder.call(this,component); }; $hxClasses["haxe.ui.components._HorizontalRule.Builder"] = haxe_ui_components__$HorizontalRule_Builder; haxe_ui_components__$HorizontalRule_Builder.__name__ = "haxe.ui.components._HorizontalRule.Builder"; haxe_ui_components__$HorizontalRule_Builder.__super__ = haxe_ui_components_RuleBuilder; haxe_ui_components__$HorizontalRule_Builder.prototype = $extend(haxe_ui_components_RuleBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_components__$HorizontalRule_Builder }); var haxe_ui_components_Scroll = function() { haxe_ui_core_InteractiveComponent.call(this); this.cascadeActive = true; }; $hxClasses["haxe.ui.components.Scroll"] = haxe_ui_components_Scroll; haxe_ui_components_Scroll.__name__ = "haxe.ui.components.Scroll"; haxe_ui_components_Scroll.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_core_IDirectionalComponent]; haxe_ui_components_Scroll.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_Scroll.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ posFromCoord: function(coord) { return haxe_ui_util_Variant.toFloat(this.behaviours.call("posFromCoord",coord)); } ,applyPageFromCoord: function(coord) { return haxe_ui_util_Variant.toFloat(this.behaviours.call("applyPageFromCoord",coord)); } ,createChildren: function() { this.createButton("deinc",true).set_repeater(true); this.createButton("inc",true).set_repeater(true); this.createButton("thumb").set_remainPressed(true); this.registerInternalEvents(haxe_ui_components__$Scroll_Events); } ,createButton: function(type,hidden) { if(hidden == null) { hidden = false; } var b = this.findComponent("scroll-" + type + "-button",haxe_ui_components_Button); if(b == null) { b = new haxe_ui_components_Button(); b.set_hidden(hidden); b.set_scriptAccess(false); b.get_customStyle().native = false; b.set_id("scroll-" + type + "-button"); b.addClass(type); b.set_allowFocus(false); this.addComponent(b); } return b; } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("min",haxe_ui_components__$Scroll_ScrollMinMaxBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("max",haxe_ui_components__$Scroll_ScrollMinMaxBehaviour,haxe_ui_util_Variant.fromInt(100)); this.behaviours.register("pageSize",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("pos",haxe_ui_components__$Scroll_ScrollValueBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("increment",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(20)); this.behaviours.register("thumbSize",haxe_ui_behaviours_DefaultBehaviour,null); } ,get_min: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("min")); } ,set_min: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("min",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"min")); return value; } ,get_max: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("max")); } ,set_max: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("max",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"max")); return value; } ,get_pageSize: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("pageSize")); } ,set_pageSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("pageSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pageSize")); return value; } ,get_pos: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("pos")); } ,set_pos: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("pos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pos")); return value; } ,get_increment: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("increment")); } ,set_increment: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("increment",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"increment")); return value; } ,get_thumbSize: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("thumbSize")); } ,set_thumbSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("thumbSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"thumbSize")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Scroll(); } ,_internal__onDragStart: null ,onDragStart: null ,set_onDragStart: function(value) { if(this._internal__onDragStart != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_START,this._internal__onDragStart); this._internal__onDragStart = null; } if(value != null) { this._internal__onDragStart = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_START,value); } return value; } ,_internal__onDrag: null ,onDrag: null ,set_onDrag: function(value) { if(this._internal__onDrag != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG,this._internal__onDrag); this._internal__onDrag = null; } if(value != null) { this._internal__onDrag = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG,value); } return value; } ,_internal__onDragEnd: null ,onDragEnd: null ,set_onDragEnd: function(value) { if(this._internal__onDragEnd != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_END,this._internal__onDragEnd); this._internal__onDragEnd = null; } if(value != null) { this._internal__onDragEnd = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_END,value); } return value; } ,__class__: haxe_ui_components_Scroll ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_onDragEnd:"set_onDragEnd",set_onDrag:"set_onDrag",set_onDragStart:"set_onDragStart",set_thumbSize:"set_thumbSize",get_thumbSize:"get_thumbSize",set_increment:"set_increment",get_increment:"get_increment",set_pos:"set_pos",get_pos:"get_pos",set_pageSize:"set_pageSize",get_pageSize:"get_pageSize",set_max:"set_max",get_max:"get_max",set_min:"set_min",get_min:"get_min"}) }); var haxe_ui_components_HorizontalScroll = function() { haxe_ui_components_Scroll.call(this); }; $hxClasses["haxe.ui.components.HorizontalScroll"] = haxe_ui_components_HorizontalScroll; haxe_ui_components_HorizontalScroll.__name__ = "haxe.ui.components.HorizontalScroll"; haxe_ui_components_HorizontalScroll.__super__ = haxe_ui_components_Scroll; haxe_ui_components_HorizontalScroll.prototype = $extend(haxe_ui_components_Scroll.prototype,{ registerBehaviours: function() { haxe_ui_components_Scroll.prototype.registerBehaviours.call(this); this.behaviours.register("posFromCoord",haxe_ui_components__$HorizontalScroll_PosFromCoord); this.behaviours.register("applyPageFromCoord",haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord); } ,createChildren: function() { haxe_ui_components_Scroll.prototype.createChildren.call(this); if(this.get_componentWidth() <= 0) { this.set_componentWidth(150); } } ,createDefaults: function() { haxe_ui_components_Scroll.prototype.createDefaults.call(this); this._defaultLayoutClass = haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout; } ,cloneComponent: function() { var c = haxe_ui_components_Scroll.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_HorizontalScroll(); } ,__class__: haxe_ui_components_HorizontalScroll }); var haxe_ui_components__$HorizontalScroll_PosFromCoord = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._HorizontalScroll.PosFromCoord"] = haxe_ui_components__$HorizontalScroll_PosFromCoord; haxe_ui_components__$HorizontalScroll_PosFromCoord.__name__ = "haxe.ui.components._HorizontalScroll.PosFromCoord"; haxe_ui_components__$HorizontalScroll_PosFromCoord.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$HorizontalScroll_PosFromCoord.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(pos) { var p = js_Boot.__cast(pos , haxe_ui_geom_Point); var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var deinc = this._component.findComponent("scroll-deinc-button"); var thumb = this._component.findComponent("scroll-thumb-button"); var xpos = p.x; var minX = 0; if(deinc != null && deinc.get_hidden() == false) { minX = deinc.get_width() + scroll.get_layout().get_horizontalSpacing(); } var maxX = scroll.get_layout().get_usableWidth() - thumb.get_width(); if(deinc != null && deinc.get_hidden() == false) { maxX += deinc.get_width() + scroll.get_layout().get_horizontalSpacing(); } if(xpos < minX) { xpos = minX; } else if(xpos > maxX) { xpos = maxX; } var ucx = scroll.get_layout().get_usableWidth(); ucx -= thumb.get_width(); var m = scroll.get_max() - scroll.get_min() | 0; var v = xpos - minX; var value = scroll.get_min() + v / ucx * m; return haxe_ui_util_Variant.fromFloat(value); } ,__class__: haxe_ui_components__$HorizontalScroll_PosFromCoord }); var haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._HorizontalScroll.ApplyPageFromCoord"] = haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord; haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord.__name__ = "haxe.ui.components._HorizontalScroll.ApplyPageFromCoord"; haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(pos) { var p = js_Boot.__cast(pos , haxe_ui_geom_Point); var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var thumb = this._component.findComponent("scroll-thumb-button"); if(p.x < thumb.get_screenLeft()) { scroll.set_pos(scroll.get_pos() - scroll.get_pageSize()); } else if(p.x > thumb.get_screenLeft() + thumb.get_width()) { scroll.set_pos(scroll.get_pos() + scroll.get_pageSize()); } return null; } ,__class__: haxe_ui_components__$HorizontalScroll_ApplyPageFromCoord }); var haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._HorizontalScroll.HorizontalScrollLayout"] = haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout; haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout.__name__ = "haxe.ui.components._HorizontalScroll.HorizontalScrollLayout"; haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var scroll = js_Boot.__cast(this.get_component() , haxe_ui_components_Scroll); var thumb = this.get_component().findComponent("scroll-thumb-button"); if(thumb != null) { if(scroll.get_min() == scroll.get_max()) { thumb.hide(); } else { var m = scroll.get_max() - scroll.get_min(); var ucx = this.get_usableWidth(); var thumbWidth = scroll.get_pageSize() / m * ucx; if(scroll.get_thumbSize() != null) { thumbWidth = scroll.get_thumbSize(); } if(thumbWidth < this.get_innerHeight()) { thumbWidth = this.get_innerHeight(); } else if(thumbWidth > ucx) { thumbWidth = ucx; } if(thumbWidth > 0 && isNaN(thumbWidth) == false) { thumb.set_width(thumbWidth); } thumb.show(); } } } ,repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var deinc = this.get_component().findComponent("scroll-deinc-button"); var inc = this.get_component().findComponent("scroll-inc-button"); if(inc != null && this.hidden(inc) == false) { inc.set_left(this.get_component().get_width() - inc.get_width() - this.get_paddingRight()); } var scroll = js_Boot.__cast(this.get_component() , haxe_ui_components_Scroll); var thumb = this.get_component().findComponent("scroll-thumb-button"); if(thumb != null) { var m = scroll.get_max() - scroll.get_min(); var u = this.get_usableWidth(); u -= thumb.get_componentWidth(); var x = (scroll.get_pos() - scroll.get_min()) / m * u; x += this.get_paddingLeft(); if(deinc != null && this.hidden(deinc) == false) { x += deinc.get_width() + this.get_horizontalSpacing(); } thumb.set_left(x); thumb.set_top(Math.round(thumb.get_top())); } } ,get_usableWidth: function() { var ucx = this.get_innerWidth(); var deinc = this.get_component().findComponent("scroll-deinc-button"); var inc = this.get_component().findComponent("scroll-inc-button"); if(deinc != null && this.hidden(deinc) == false) { ucx -= deinc.get_width() + this.get_horizontalSpacing(); } if(inc != null && this.hidden(inc) == false) { ucx -= inc.get_width() + this.get_horizontalSpacing(); } return ucx; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout(); } ,__class__: haxe_ui_components__$HorizontalScroll_HorizontalScrollLayout }); var haxe_ui_components_Slider = function() { haxe_ui_core_InteractiveComponent.call(this); this.cascadeActive = true; this.actionRepeatInterval = 160; }; $hxClasses["haxe.ui.components.Slider"] = haxe_ui_components_Slider; haxe_ui_components_Slider.__name__ = "haxe.ui.components.Slider"; haxe_ui_components_Slider.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_core_IDirectionalComponent]; haxe_ui_components_Slider.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_Slider.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ posFromCoord: function(coord) { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.call("posFromCoord",coord)); } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("min",haxe_ui_components__$Slider_MinBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("max",haxe_ui_components__$Slider_MaxBehaviour,haxe_ui_util_Variant.fromInt(100)); this.behaviours.register("precision",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("start",haxe_ui_components__$Slider_StartBehaviour,null); this.behaviours.register("end",haxe_ui_components__$Slider_EndBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("pos",haxe_ui_components__$Slider_PosBehaviour); this.behaviours.register("center",haxe_ui_components__$Slider_CenterBehaviour,null); this.behaviours.register("step",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("minorTicks",haxe_ui_components__$Slider_MinorTicks,null); this.behaviours.register("majorTicks",haxe_ui_components__$Slider_MajorTicks,null); this.behaviours.register("posFromCoord",haxe_ui_components__$Slider_PosFromCoord); } ,get_min: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("min")); } ,set_min: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("min",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"min")); return value; } ,get_max: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("max")); } ,set_max: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("max",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"max")); return value; } ,get_precision: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toInt(this.behaviours.get("precision")); } ,set_precision: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("precision",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"precision")); return value; } ,get_start: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("start")); } ,set_start: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("start",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"start")); return value; } ,get_end: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("end")); } ,set_end: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("end",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"end")); return value; } ,get_pos: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("pos")); } ,set_pos: function(value) { this.behaviours.set("pos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pos")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_center: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("center")); } ,set_center: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("center",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"center")); return value; } ,get_step: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("step")); } ,set_step: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("step",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"step")); return value; } ,get_minorTicks: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("minorTicks")); } ,set_minorTicks: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("minorTicks",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"minorTicks")); return value; } ,get_majorTicks: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("majorTicks")); } ,set_majorTicks: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("majorTicks",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"majorTicks")); return value; } ,get_value: function() { return this.get_pos(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 3: this.set_pos(value == true ? 1 : 0); break; case 6: if(_g.c == String) { this.set_pos(parseFloat(value)); } else { this.set_pos(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_pos(haxe_ui_util_Variant.toFloat(v)); } else { this.set_pos(value); } break; default: this.set_pos(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); c.set_min(this.get_min()); c.set_max(this.get_max()); if(this.get_precision() != null) { c.set_precision(this.get_precision()); } if(this.get_start() != null) { c.set_start(this.get_start()); } c.set_end(this.get_end()); c.set_pos(this.get_pos()); if(this.get_center() != null) { c.set_center(this.get_center()); } if(this.get_step() != null) { c.set_step(this.get_step()); } if(this.get_minorTicks() != null) { c.set_minorTicks(this.get_minorTicks()); } if(this.get_majorTicks() != null) { c.set_majorTicks(this.get_majorTicks()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Slider(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_SliderBuilder; } ,_internal__onDragStart: null ,onDragStart: null ,set_onDragStart: function(value) { if(this._internal__onDragStart != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_START,this._internal__onDragStart); this._internal__onDragStart = null; } if(value != null) { this._internal__onDragStart = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_START,value); } return value; } ,_internal__onDrag: null ,onDrag: null ,set_onDrag: function(value) { if(this._internal__onDrag != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG,this._internal__onDrag); this._internal__onDrag = null; } if(value != null) { this._internal__onDrag = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG,value); } return value; } ,_internal__onDragEnd: null ,onDragEnd: null ,set_onDragEnd: function(value) { if(this._internal__onDragEnd != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_END,this._internal__onDragEnd); this._internal__onDragEnd = null; } if(value != null) { this._internal__onDragEnd = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_END,value); } return value; } ,__class__: haxe_ui_components_Slider ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_onDragEnd:"set_onDragEnd",set_onDrag:"set_onDrag",set_onDragStart:"set_onDragStart",set_majorTicks:"set_majorTicks",get_majorTicks:"get_majorTicks",set_minorTicks:"set_minorTicks",get_minorTicks:"get_minorTicks",set_step:"set_step",get_step:"get_step",set_center:"set_center",get_center:"get_center",set_pos:"set_pos",get_pos:"get_pos",set_end:"set_end",get_end:"get_end",set_start:"set_start",get_start:"get_start",set_precision:"set_precision",get_precision:"get_precision",set_max:"set_max",get_max:"get_max",set_min:"set_min",get_min:"get_min"}) }); var haxe_ui_components_HorizontalSlider = function() { haxe_ui_components_Slider.call(this); }; $hxClasses["haxe.ui.components.HorizontalSlider"] = haxe_ui_components_HorizontalSlider; haxe_ui_components_HorizontalSlider.__name__ = "haxe.ui.components.HorizontalSlider"; haxe_ui_components_HorizontalSlider.__super__ = haxe_ui_components_Slider; haxe_ui_components_HorizontalSlider.prototype = $extend(haxe_ui_components_Slider.prototype,{ registerComposite: function() { haxe_ui_components_Slider.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components_HorizontalSliderLayout; this._compositeBuilderClass = haxe_ui_components__$HorizontalSlider_Builder; } ,registerBehaviours: function() { haxe_ui_components_Slider.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Slider.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_HorizontalSlider(); } ,__class__: haxe_ui_components_HorizontalSlider }); var haxe_ui_components_HorizontalSliderLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components.HorizontalSliderLayout"] = haxe_ui_components_HorizontalSliderLayout; haxe_ui_components_HorizontalSliderLayout.__name__ = "haxe.ui.components.HorizontalSliderLayout"; haxe_ui_components_HorizontalSliderLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_HorizontalSliderLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); var range = this.findComponent(null,haxe_ui_components_Range); var rangeValue = range.findComponent("range-value"); var startThumb = this.findComponent("start-thumb"); var endThumb = this.findComponent("end-thumb"); var padding = 0; if(range != null && range.get_layout() != null) { padding = range.get_layout().get_paddingLeft(); } if(startThumb != null) { startThumb.set_left(range.get_left() + rangeValue.get_left() - startThumb.get_width() / 2); startThumb.set_left(Math.ceil(startThumb.get_left())); if(padding > 1 && startThumb.get_left() % 2 != 0) { startThumb.set_left(startThumb.get_left() + padding / 2); } } var cx = rangeValue.get_width(); if(rangeValue.get_hidden() == true && this._component.get_hidden() == false) { cx = 0; } if(slider.get_center() != null) { if(slider.get_pos() >= slider.get_center()) { endThumb.set_left(range.get_left() + rangeValue.get_left() + cx - endThumb.get_width() / 2); } else { endThumb.set_left(range.get_left() + rangeValue.get_left() - endThumb.get_width() / 2); if(padding > 1 && cx % 2 == 0) { endThumb.set_left(endThumb.get_left() + padding / 2); } } } else { endThumb.set_left(range.get_left() + rangeValue.get_left() + cx - endThumb.get_width() / 2); endThumb.set_left(Math.ceil(endThumb.get_left())); if(startThumb != null && endThumb.get_left() % 2 == 0) { endThumb.set_left(endThumb.get_left() + 1); } } if(slider.get_minorTicks() != null && range != null && range.get_layout() != null) { var minorTicks = this.findComponents("minor-tick",haxe_ui_core_Component,1); if(minorTicks != null && minorTicks.length > 0) { var m = slider.get_max() - slider.get_min(); var v = slider.get_minorTicks(); var n = m / v | 0; var i = 0; var padding = range.get_layout().get_paddingLeft() + this.get_paddingLeft(); var tcx = range.get_layout().get_usableWidth() / n; var _g = 0; while(_g < minorTicks.length) { var tick = minorTicks[_g]; ++_g; tick.set_left(i * tcx + padding); tick.set_left(Math.ceil(tick.get_left())); ++i; } } } if(slider.get_majorTicks() != null && range != null && range.get_layout() != null) { var majorTicks = this.findComponents("major-tick",haxe_ui_core_Component,1); if(majorTicks != null && majorTicks.length > 0) { var m = slider.get_max() - slider.get_min(); var v = slider.get_majorTicks(); var n = m / v | 0; var i = 0; var padding = range.get_layout().get_paddingLeft() + this.get_paddingLeft(); var tcx = range.get_layout().get_usableWidth() / n; var _g = 0; while(_g < majorTicks.length) { var tick = majorTicks[_g]; ++_g; tick.set_left(i * tcx + padding); tick.set_left(Math.ceil(tick.get_left())); ++i; } } } } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_HorizontalSliderLayout(); } ,__class__: haxe_ui_components_HorizontalSliderLayout }); var haxe_ui_components_SliderBuilder = function(slider) { haxe_ui_core_CompositeBuilder.call(this,slider); this._slider = slider; this.showWarning(); }; $hxClasses["haxe.ui.components.SliderBuilder"] = haxe_ui_components_SliderBuilder; haxe_ui_components_SliderBuilder.__name__ = "haxe.ui.components.SliderBuilder"; haxe_ui_components_SliderBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components_SliderBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _slider: null ,create: function() { if(this._component.findComponent("range") == null) { var v = this.createValueComponent(); if(v != null) { v.set_scriptAccess(false); v.set_allowFocus(false); v.set_id("range"); v.addClass("slider-value"); v.set_start(v.set_end(0)); if(this._slider.get_center() != null) { this._slider.set_pos(this._slider.get_center()); v.virtualStart = this._slider.get_center(); } this._component.addComponent(v); } } this.createThumb("end-thumb"); } ,getStartOffset: function() { return 0; } ,createValueComponent: function() { return null; } ,createThumb: function(id) { if(this._component.findComponent(id) != null) { return; } var b = new haxe_ui_components_Button(); b.set_scriptAccess(false); b.set_allowFocus(false); b.set_id(id); b.addClass(id); b.set_remainPressed(true); this._component.addComponent(b); this._component.registerInternalEvents(haxe_ui_components__$Slider_Events,true); } ,showWarning: function() { haxe_Log.trace("WARNING: trying to create an instance of 'Slider' directly, use either 'HorizontalSlider' or 'VerticalSlider'",{ fileName : "haxe/ui/components/Slider.hx", lineNumber : 636, className : "haxe.ui.components.SliderBuilder", methodName : "showWarning"}); } ,__class__: haxe_ui_components_SliderBuilder }); var haxe_ui_components__$HorizontalSlider_Builder = function(slider) { haxe_ui_components_SliderBuilder.call(this,slider); this._slider = slider; }; $hxClasses["haxe.ui.components._HorizontalSlider.Builder"] = haxe_ui_components__$HorizontalSlider_Builder; haxe_ui_components__$HorizontalSlider_Builder.__name__ = "haxe.ui.components._HorizontalSlider.Builder"; haxe_ui_components__$HorizontalSlider_Builder.__super__ = haxe_ui_components_SliderBuilder; haxe_ui_components__$HorizontalSlider_Builder.prototype = $extend(haxe_ui_components_SliderBuilder.prototype,{ createValueComponent: function() { return new haxe_ui_components_HorizontalRange(); } ,getStartOffset: function() { var start = 0; if(this._slider.get_start() != null) { start = this._slider.get_start(); } return start; } ,showWarning: function() { } ,__class__: haxe_ui_components__$HorizontalSlider_Builder }); var haxe_ui_containers_HBox = function() { haxe_ui_containers_Box.call(this); this.set_layout(new haxe_ui_layouts_HorizontalLayout()); }; $hxClasses["haxe.ui.containers.HBox"] = haxe_ui_containers_HBox; haxe_ui_containers_HBox.__name__ = "haxe.ui.containers.HBox"; haxe_ui_containers_HBox.__super__ = haxe_ui_containers_Box; haxe_ui_containers_HBox.prototype = $extend(haxe_ui_containers_Box.prototype,{ get_continuous: function() { return ((this._layout) instanceof haxe_ui_layouts_HorizontalContinuousLayout); } ,set_continuous: function(value) { if(value == true) { this.set_layout(new haxe_ui_layouts_HorizontalContinuousLayout()); } else { this.set_layout(new haxe_ui_layouts_HorizontalLayout()); } return value; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); c.set_continuous(this.get_continuous()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_HBox(); } ,__class__: haxe_ui_containers_HBox ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_continuous:"set_continuous",get_continuous:"get_continuous"}) }); var haxe_ui_components_IconLink = function() { haxe_ui_containers_HBox.call(this); this.applyRootLayout("hbox"); var c0 = new haxe_ui_components_Image(); c0.set_id("linkIcon"); c0.set_verticalAlign("center"); c0.set_hidden(true); this.addComponent(c0); var c1 = new haxe_ui_components_Link(); c1.set_id("link"); c1.set_verticalAlign("center"); c1.set_hidden(true); this.addComponent(c1); this.bindingRoot = true; this.linkIcon = c0; this.link = c1; }; $hxClasses["haxe.ui.components.IconLink"] = haxe_ui_components_IconLink; haxe_ui_components_IconLink.__name__ = "haxe.ui.components.IconLink"; haxe_ui_components_IconLink.__super__ = haxe_ui_containers_HBox; haxe_ui_components_IconLink.prototype = $extend(haxe_ui_containers_HBox.prototype,{ get_text: function() { return this.link.get_text(); } ,set_text: function(value) { this.link.set_text(value); this.link.show(); return value; } ,get_icon: function() { return this.linkIcon.get_resource(); } ,set_icon: function(value) { this.linkIcon.set_resource(value); this.linkIcon.show(); return value; } ,linkIcon: null ,link: null ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_IconLink(); } ,__class__: haxe_ui_components_IconLink }); var haxe_ui_components_Image = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.components.Image"] = haxe_ui_components_Image; haxe_ui_components_Image.__name__ = "haxe.ui.components.Image"; haxe_ui_components_Image.__super__ = haxe_ui_core_Component; haxe_ui_components_Image.prototype = $extend(haxe_ui_core_Component.prototype,{ registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components__$Image_ImageLayout; this._compositeBuilderClass = haxe_ui_components__$Image_Builder; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("resource",haxe_ui_components__$Image_ResourceBehaviour); this.behaviours.register("scaleMode",haxe_ui_behaviours_InvalidatingBehaviour,haxe_ui_util_Variant.fromString("fill")); this.behaviours.register("imageHorizontalAlign",haxe_ui_behaviours_InvalidatingBehaviour,haxe_ui_util_Variant.fromString("center")); this.behaviours.register("imageVerticalAlign",haxe_ui_behaviours_InvalidatingBehaviour,haxe_ui_util_Variant.fromString("center")); this.behaviours.register("originalWidth",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("originalHeight",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("imageScale",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(1)); } ,get_resource: function() { if(this.behaviours == null) { return null; } return this.behaviours.get("resource"); } ,set_resource: function(value) { this.behaviours.set("resource",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"resource")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_scaleMode: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("scaleMode")); } ,set_scaleMode: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("scaleMode",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"scaleMode")); return value; } ,get_imageHorizontalAlign: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("imageHorizontalAlign")); } ,set_imageHorizontalAlign: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("imageHorizontalAlign",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"imageHorizontalAlign")); return value; } ,get_imageVerticalAlign: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("imageVerticalAlign")); } ,set_imageVerticalAlign: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("imageVerticalAlign",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"imageVerticalAlign")); return value; } ,get_originalWidth: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("originalWidth")); } ,set_originalWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("originalWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"originalWidth")); return value; } ,get_originalHeight: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("originalHeight")); } ,set_originalHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("originalHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"originalHeight")); return value; } ,get_imageScale: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("imageScale")); } ,set_imageScale: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("imageScale",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"imageScale")); return value; } ,get_value: function() { return this.get_resource(); } ,set_value: function(value) { this.set_resource(haxe_ui_util_Variant.fromDynamic(value)); return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if(this.get_resource() != null) { c.set_resource(this.get_resource()); } if(this.get_scaleMode() != null) { c.set_scaleMode(this.get_scaleMode()); } if(this.get_imageHorizontalAlign() != null) { c.set_imageHorizontalAlign(this.get_imageHorizontalAlign()); } if(this.get_imageVerticalAlign() != null) { c.set_imageVerticalAlign(this.get_imageVerticalAlign()); } c.set_originalWidth(this.get_originalWidth()); c.set_originalHeight(this.get_originalHeight()); c.set_imageScale(this.get_imageScale()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Image(); } ,__class__: haxe_ui_components_Image ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_imageScale:"set_imageScale",get_imageScale:"get_imageScale",set_originalHeight:"set_originalHeight",get_originalHeight:"get_originalHeight",set_originalWidth:"set_originalWidth",get_originalWidth:"get_originalWidth",set_imageVerticalAlign:"set_imageVerticalAlign",get_imageVerticalAlign:"get_imageVerticalAlign",set_imageHorizontalAlign:"set_imageHorizontalAlign",get_imageHorizontalAlign:"get_imageHorizontalAlign",set_scaleMode:"set_scaleMode",get_scaleMode:"get_scaleMode",set_resource:"set_resource",get_resource:"get_resource"}) }); var haxe_ui_components__$Image_ImageLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._Image.ImageLayout"] = haxe_ui_components__$Image_ImageLayout; haxe_ui_components__$Image_ImageLayout.__name__ = "haxe.ui.components._Image.ImageLayout"; haxe_ui_components__$Image_ImageLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$Image_ImageLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ get_imageScaleMode: function() { return (js_Boot.__cast(this._component , haxe_ui_components_Image)).get_scaleMode(); } ,get_imageHorizontalAlign: function() { return (js_Boot.__cast(this._component , haxe_ui_components_Image)).get_imageHorizontalAlign(); } ,get_imageVerticalAlign: function() { return (js_Boot.__cast(this._component , haxe_ui_components_Image)).get_imageVerticalAlign(); } ,resizeChildren: function() { if(this.get_component().hasImageDisplay()) { var image = js_Boot.__cast(this._component , haxe_ui_components_Image); var imageDisplay = image.getImageDisplay(); var maxWidth = this.get_usableSize().width; var maxHeight = this.get_usableSize().height; if(this.get_component().get_autoWidth() == true) { maxWidth = -1; } if(this._component.get_autoHeight() == true) { maxHeight = -1; } var scaleW = maxWidth != -1 ? maxWidth / image.get_originalWidth() : 1; var scaleH = maxHeight != -1 ? maxHeight / image.get_originalHeight() : 1; scaleW *= image.get_imageScale(); scaleH *= image.get_imageScale(); if(this.get_imageScaleMode() != "fill") { var scale; switch(this.get_imageScaleMode()) { case "fitheight": scale = scaleH; break; case "fitinside": scale = scaleW < scaleH ? scaleW : scaleH; break; case "fitoutside": scale = scaleW > scaleH ? scaleW : scaleH; break; case "fitwidth": scale = scaleW; break; default: scale = 1; } imageDisplay.set_imageWidth(image.get_originalWidth() * scale); imageDisplay.set_imageHeight(image.get_originalHeight() * scale); } else { imageDisplay.set_imageWidth(image.get_originalWidth() * scaleW); imageDisplay.set_imageHeight(image.get_originalHeight() * scaleH); } } } ,repositionChildren: function() { if(this.get_component().hasImageDisplay()) { var image = js_Boot.__cast(this._component , haxe_ui_components_Image); var imageDisplay = this._component.getImageDisplay(); switch(image.get_imageHorizontalAlign()) { case "center": imageDisplay.set_left((this._component.get_componentWidth() - imageDisplay.get_imageWidth()) / 2); break; case "left": imageDisplay.set_left(this.get_paddingLeft()); break; case "right": imageDisplay.set_left(this._component.get_componentWidth() - imageDisplay.get_imageWidth() - this.get_paddingRight()); break; } switch(image.get_imageVerticalAlign()) { case "bottom": imageDisplay.set_top(this._component.get_componentHeight() - imageDisplay.get_imageHeight() - this.get_paddingBottom()); break; case "center": imageDisplay.set_top((this._component.get_componentHeight() - imageDisplay.get_imageHeight()) / 2); break; case "top": imageDisplay.set_top(this.get_paddingTop()); break; } } } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); if(this.get_component().hasImageDisplay()) { size.width += this.get_component().getImageDisplay().get_imageWidth(); size.height += this.get_component().getImageDisplay().get_imageHeight(); } return size; } ,refresh: function() { haxe_ui_layouts_DefaultLayout.prototype.refresh.call(this); this.updateClipRect(); } ,updateClipRect: function() { if(this.get_component().hasImageDisplay()) { if(this.get_component().get_style() != null && this.get_component().get_style().clip == false) { return; } var usz = this.get_usableSize(); var imageDisplay = this.get_component().getImageDisplay(); var rc = imageDisplay.get_imageClipRect(); if(imageDisplay.get_imageWidth() > usz.width || imageDisplay.get_imageHeight() > usz.height) { if(rc == null) { rc = new haxe_ui_geom_Rectangle(); } rc.top = this.get_paddingLeft(); rc.left = this.get_paddingTop(); rc.width = usz.width; rc.height = usz.height; } else { rc = null; } imageDisplay.set_imageClipRect(rc); } } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$Image_ImageLayout(); } ,__class__: haxe_ui_components__$Image_ImageLayout ,__properties__: $extend(haxe_ui_layouts_DefaultLayout.prototype.__properties__,{get_imageVerticalAlign:"get_imageVerticalAlign",get_imageHorizontalAlign:"get_imageHorizontalAlign",get_imageScaleMode:"get_imageScaleMode"}) }); var haxe_ui_components__$Image_ResourceBehaviour = function(component) { this._canvasMap = null; haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Image.ResourceBehaviour"] = haxe_ui_components__$Image_ResourceBehaviour; haxe_ui_components__$Image_ResourceBehaviour.__name__ = "haxe.ui.components._Image.ResourceBehaviour"; haxe_ui_components__$Image_ResourceBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Image_ResourceBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _canvasMap: null ,validateData: function() { var _gthis = this; if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value) || haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromString(""))) { this._component.removeImageDisplay(); this._component.invalidateComponent(); return; } if(haxe_ui_util_Variant.get_isComponent(this._value) && ((haxe_ui_util_Variant.toComponent(this._value)) instanceof haxe_ui_components_Canvas)) { var newCanvas = null; if(this._canvasMap == null) { this._canvasMap = new haxe_ds_StringMap(); } var canvas = haxe_ui_util_Variant.toComponent(this._value); if(canvas.get_id() == null) { canvas.set_id(haxe_ui_util_GUID.uuid()); } var existingCanvas = this._component.findComponent(null,haxe_ui_components_Canvas,false); if(existingCanvas != null && existingCanvas.get_id() == canvas.get_id()) { return; } if(existingCanvas != null) { this._component.removeComponent(existingCanvas,false); } var this1 = this._canvasMap; var key = canvas.get_id(); if(Object.prototype.hasOwnProperty.call(this1.h,key)) { var this1 = this._canvasMap; var key = canvas.get_id(); newCanvas = this1.h[key]; } else { newCanvas = haxe_ui_util_Variant.toComponent(this._value).cloneComponent(); var this1 = this._canvasMap; var key = canvas.get_id(); this1.h[key] = newCanvas; } this._component.addComponent(newCanvas); } else if(haxe_ui_util_Variant.get_isComponent(this._value) && ((haxe_ui_util_Variant.toComponent(this._value)) instanceof haxe_ui_components_Image)) { var image = js_Boot.__cast(haxe_ui_util_Variant.toComponent(this._value) , haxe_ui_components_Image); this._component.addComponent(image); } else { haxe_ui_loaders_image_ImageLoader.get_instance().load(this._value,function(imageInfo) { if(imageInfo != null) { if(_gthis._value == null || haxe_ui_util_Variant.get_isNull(_gthis._value)) { _gthis._component.removeImageDisplay(); _gthis._component.invalidateComponent(); return; } var subImage = _gthis._component.findComponent(null,haxe_ui_components_Image); if(subImage != null) { _gthis._component.removeComponent(subImage,false,false); } var image = js_Boot.__cast(_gthis._component , haxe_ui_components_Image); if(image == null) { return; } var display = image.getImageDisplay(); if(display != null) { if(imageInfo.loader != null) { imageInfo.loader.postProcess(_gthis._value,image); imageInfo.loader = null; } display.set_imageInfo(imageInfo); image.set_originalWidth(imageInfo.width); image.set_originalHeight(imageInfo.height); if(image.autoSize() == true && image.get_parentComponent() != null) { var _this = image.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } image.invalidateComponent(); display.validateComponent(); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); image.dispatch(event); } } }); } } ,__class__: haxe_ui_components__$Image_ResourceBehaviour }); var haxe_ui_components__$Image_Builder = function(image) { var _gthis = this; haxe_ui_core_CompositeBuilder.call(this,image); this._image = image; this._image.registerEvent(haxe_ui_events_UIEvent.SHOWN,function(_) { if(_gthis._image.get_parentComponent() != null) { var _this = _gthis._image.get_parentComponent(); if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } }); }; $hxClasses["haxe.ui.components._Image.Builder"] = haxe_ui_components__$Image_Builder; haxe_ui_components__$Image_Builder.__name__ = "haxe.ui.components._Image.Builder"; haxe_ui_components__$Image_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$Image_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _image: null ,applyStyle: function(style) { if(style.resource != null) { this._image.set_resource(style.resource); } if(style.scaleMode != null) { this._image.set_scaleMode(style.scaleMode); } } ,__class__: haxe_ui_components__$Image_Builder }); var haxe_ui_components_Label = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.components.Label"] = haxe_ui_components_Label; haxe_ui_components_Label.__name__ = "haxe.ui.components.Label"; haxe_ui_components_Label.__super__ = haxe_ui_core_Component; haxe_ui_components_Label.prototype = $extend(haxe_ui_core_Component.prototype,{ registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$Label_Builder; this._defaultLayoutClass = haxe_ui_components__$Label_LabelLayout; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_components__$Label_TextBehaviour); this.behaviours.register("htmlText",haxe_ui_components__$Label_HtmlTextBehaviour); this.behaviours.register("selectable",haxe_ui_components__$Label_SelectableBehaviour); } ,get_htmlText: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("htmlText")); } ,set_htmlText: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"htmlText",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("htmlText",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"htmlText")); return value; } ,get_selectable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("selectable")); } ,set_selectable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectable")); return value; } ,get_value: function() { return this.get_text(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2:case 3: this.set_text(Std.string(value)); break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_text(haxe_ui_util_Variant.toString(v)); } else { this.set_text(value); } break; default: this.set_text(value); } return value; } ,get_textAlign: function() { if(this.get_customStyle().textAlign != null) { return this.get_customStyle().textAlign; } if(this.get_style() == null || this.get_style().textAlign == null) { return null; } return this.get_style().textAlign; } ,set_textAlign: function(value) { if(this.get_customStyle().textAlign == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().textAlign = null; } else { this.get_customStyle().textAlign = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_wordWrap: function() { if(this.get_customStyle().wordWrap != null) { return this.get_customStyle().wordWrap; } if(this.get_style() == null || this.get_style().wordWrap == null) { return null; } return this.get_style().wordWrap; } ,set_wordWrap: function(value) { if(this.get_customStyle().wordWrap == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().wordWrap = null; } else { this.get_customStyle().wordWrap = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,get_fontSize: function() { if(this.get_customStyle().fontSize != null) { return this.get_customStyle().fontSize; } if(this.get_style() == null || this.get_style().fontSize == null) { return null; } return this.get_style().fontSize; } ,set_fontSize: function(value) { if(this.get_customStyle().fontSize == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().fontSize = null; } else { this.get_customStyle().fontSize = value; } this.invalidateComponent("style",false); return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if(this.get_htmlText() != null) { c.set_htmlText(this.get_htmlText()); } c.set_selectable(this.get_selectable()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Label(); } ,__class__: haxe_ui_components_Label ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_fontSize:"set_fontSize",get_fontSize:"get_fontSize",set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_textAlign:"set_textAlign",get_textAlign:"get_textAlign",set_selectable:"set_selectable",get_selectable:"get_selectable",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText"}) }); var haxe_ui_components__$Label_LabelLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._Label.LabelLayout"] = haxe_ui_components__$Label_LabelLayout; haxe_ui_components__$Label_LabelLayout.__name__ = "haxe.ui.components._Label.LabelLayout"; haxe_ui_components__$Label_LabelLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$Label_LabelLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { if(this.get_component().get_autoWidth() == false) { this.get_component().getTextDisplay().set_width(this.get_component().get_componentWidth() - this.get_paddingLeft() - this.get_paddingRight()); var wordWrap = true; if(this._component.get_style() != null && this._component.get_style().wordWrap != null) { wordWrap = this._component.get_style().wordWrap; } this.get_component().getTextDisplay().set_wordWrap(wordWrap); this.get_component().getTextDisplay().tf.set_autoSize(false); } else { this.get_component().getTextDisplay().set_width(this.get_component().getTextDisplay().get_textWidth()); } if(this.get_component().get_autoHeight() == true) { this.get_component().getTextDisplay().set_height(this.get_component().getTextDisplay().get_textHeight()); } else { this.get_component().getTextDisplay().set_height(this.get_component().get_height()); } } ,repositionChildren: function() { if(this.get_component().hasTextDisplay() == true) { this.get_component().getTextDisplay().set_left(this.get_paddingLeft()); this.get_component().getTextDisplay().set_top(this.get_paddingTop()); } } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); if(this.get_component().hasTextDisplay() == true) { size.width += this.get_component().getTextDisplay().get_textWidth(); size.height += this.get_component().getTextDisplay().get_textHeight(); } return size; } ,textAlign: function(child) { if(child == null || child.get_style() == null || child.get_style().textAlign == null) { return "left"; } return child.get_style().textAlign; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$Label_LabelLayout(); } ,__class__: haxe_ui_components__$Label_LabelLayout }); var haxe_ui_components__$Label_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Label.TextBehaviour"] = haxe_ui_components__$Label_TextBehaviour; haxe_ui_components__$Label_TextBehaviour.__name__ = "haxe.ui.components._Label.TextBehaviour"; haxe_ui_components__$Label_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Label_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._component.getTextDisplay().get_textStyle() != this._component.get_style()) { var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } this._component.getTextDisplay().set_text("" + (this._value == null ? "null" : haxe_ui_util_Variant.toString(this._value))); this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_components__$Label_TextBehaviour }); var haxe_ui_components__$Label_HtmlTextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Label.HtmlTextBehaviour"] = haxe_ui_components__$Label_HtmlTextBehaviour; haxe_ui_components__$Label_HtmlTextBehaviour.__name__ = "haxe.ui.components._Label.HtmlTextBehaviour"; haxe_ui_components__$Label_HtmlTextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Label_HtmlTextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._component.getTextDisplay().get_textStyle() != this._component.get_style()) { var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } this._component.getTextDisplay().set_htmlText("" + (this._value == null ? "null" : haxe_ui_util_Variant.toString(this._value))); this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_components__$Label_HtmlTextBehaviour }); var haxe_ui_components__$Label_SelectableBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Label.SelectableBehaviour"] = haxe_ui_components__$Label_SelectableBehaviour; haxe_ui_components__$Label_SelectableBehaviour.__name__ = "haxe.ui.components._Label.SelectableBehaviour"; haxe_ui_components__$Label_SelectableBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Label_SelectableBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { this._component.getTextDisplay().set_selectable(haxe_ui_util_Variant.toBool(this._value)); } ,__class__: haxe_ui_components__$Label_SelectableBehaviour }); var haxe_ui_components__$Label_Builder = function(label) { haxe_ui_core_CompositeBuilder.call(this,label); this._label = label; }; $hxClasses["haxe.ui.components._Label.Builder"] = haxe_ui_components__$Label_Builder; haxe_ui_components__$Label_Builder.__name__ = "haxe.ui.components._Label.Builder"; haxe_ui_components__$Label_Builder.isHtml = function(v) { if(v == null) { return false; } else { return v.indexOf(" componentClipRect.width; } ,__class__: haxe_ui_components__$Label_Builder }); var haxe_ui_components_Link = function() { haxe_ui_components_Label.call(this); }; $hxClasses["haxe.ui.components.Link"] = haxe_ui_components_Link; haxe_ui_components_Link.__name__ = "haxe.ui.components.Link"; haxe_ui_components_Link.__super__ = haxe_ui_components_Label; haxe_ui_components_Link.prototype = $extend(haxe_ui_components_Label.prototype,{ registerBehaviours: function() { haxe_ui_components_Label.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Label.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Link(); } ,__class__: haxe_ui_components_Link }); var haxe_ui_components_OptionStepper = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.OptionStepper"] = haxe_ui_components_OptionStepper; haxe_ui_components_OptionStepper.__name__ = "haxe.ui.components.OptionStepper"; haxe_ui_components_OptionStepper.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_core_IDataComponent]; haxe_ui_components_OptionStepper.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_OptionStepper.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ incrementValue: function() { if(this.behaviours == null) { return; } this.behaviours.call("incrementValue",null); } ,deincrementValue: function() { if(this.behaviours == null) { return; } this.behaviours.call("deincrementValue",null); } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("selectedIndex",haxe_ui_components__$OptionStepper_SelectedIndexBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("selectedItem",haxe_ui_components__$OptionStepper_SelectedItemBehaviour); this.behaviours.register("dataSource",haxe_ui_components__$OptionStepper_DataSourceBehaviour); this.behaviours.register("incrementValue",haxe_ui_components__$OptionStepper_IncrementValue); this.behaviours.register("deincrementValue",haxe_ui_components__$OptionStepper_DeincrementValue); } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); return value; } ,get_selectedItem: function() { if(this.behaviours == null) { return null; } return this.behaviours.getDynamic("selectedItem"); } ,set_selectedItem: function(value) { this.behaviours.setDynamic("selectedItem",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedItem")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,get_value: function() { return this.get_selectedItem(); } ,set_value: function(value) { this.set_selectedItem(value); return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); c.set_selectedIndex(this.get_selectedIndex()); if(this.get_dataSource() != null) { c.set_dataSource(this.get_dataSource()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_OptionStepper(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$OptionStepper_Events; this._compositeBuilderClass = haxe_ui_components__$OptionStepper_Builder; this._defaultLayoutClass = haxe_ui_components__$OptionStepper_Layout; } ,__class__: haxe_ui_components_OptionStepper ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_dataSource:"set_dataSource",get_dataSource:"get_dataSource",set_selectedItem:"set_selectedItem",get_selectedItem:"get_selectedItem",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex"}) }); var haxe_ui_components_MonthStepper = function() { this._selectedYear = null; this._selectedMonth = null; this._allowFutureDates = true; this.minDate = null; this.maxDate = null; haxe_ui_components_OptionStepper.call(this); var now = new Date(); this.set_selectedMonth(now.getMonth()); this.set_selectedYear(now.getFullYear()); }; $hxClasses["haxe.ui.components.MonthStepper"] = haxe_ui_components_MonthStepper; haxe_ui_components_MonthStepper.__name__ = "haxe.ui.components.MonthStepper"; haxe_ui_components_MonthStepper.__super__ = haxe_ui_components_OptionStepper; haxe_ui_components_MonthStepper.prototype = $extend(haxe_ui_components_OptionStepper.prototype,{ incrementValue: function() { if(this.behaviours == null) { return; } this.behaviours.call("incrementValue",null); } ,deincrementValue: function() { if(this.behaviours == null) { return; } this.behaviours.call("deincrementValue",null); } ,maxDate: null ,minDate: null ,_allowFutureDates: null ,get_allowFutureDates: function() { return this._allowFutureDates; } ,set_allowFutureDates: function(value) { this._allowFutureDates = value; if(this._allowFutureDates) { this.maxDate = null; } else { var now = new Date(); this.maxDate = new Date(now.getFullYear(),now.getMonth(),haxe_ui_util_DateUtil.DAYS_IN_MONTH[now.getMonth()],23,59,59); } return value; } ,_selectedMonth: null ,get_selectedMonth: function() { return this._selectedMonth; } ,set_selectedMonth: function(value) { if(this._selectedMonth != value) { this._selectedMonth = value; this.updateSelectedMonth(); } return value; } ,_selectedYear: null ,get_selectedYear: function() { return this._selectedYear; } ,set_selectedYear: function(value) { if(this._selectedYear != value) { this._selectedYear = value; this.updateSelectedMonth(); } return value; } ,create: function() { haxe_ui_components_OptionStepper.prototype.create.call(this); this.updateSelectedMonth(); } ,updateSelectedMonth: function() { if(this._selectedMonth == null || this._selectedYear == null) { return; } var monthName = haxe_ui_util_DateUtil.MONTH_NAMES[this._selectedMonth]; var display = monthName + ", " + this._selectedYear; var value = this.findComponent("value",haxe_ui_components_Label); if(value != null) { value.set_text(display); } } ,registerBehaviours: function() { haxe_ui_components_OptionStepper.prototype.registerBehaviours.call(this); this.behaviours.register("incrementValue",haxe_ui_components__$MonthStepper_IncrementValue); this.behaviours.register("deincrementValue",haxe_ui_components__$MonthStepper_DeincrementValue); } ,cloneComponent: function() { var c = haxe_ui_components_OptionStepper.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_MonthStepper(); } ,__class__: haxe_ui_components_MonthStepper ,__properties__: $extend(haxe_ui_components_OptionStepper.prototype.__properties__,{set_selectedYear:"set_selectedYear",get_selectedYear:"get_selectedYear",set_selectedMonth:"set_selectedMonth",get_selectedMonth:"get_selectedMonth",set_allowFutureDates:"set_allowFutureDates",get_allowFutureDates:"get_allowFutureDates"}) }); var haxe_ui_components__$MonthStepper_IncrementValue = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._MonthStepper.IncrementValue"] = haxe_ui_components__$MonthStepper_IncrementValue; haxe_ui_components__$MonthStepper_IncrementValue.__name__ = "haxe.ui.components._MonthStepper.IncrementValue"; haxe_ui_components__$MonthStepper_IncrementValue.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$MonthStepper_IncrementValue.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var dispatchEvent = true; var stepper = this._component; var selectedMonth = stepper.get_selectedMonth(); var selectedYear = stepper.get_selectedYear(); ++selectedMonth; if(selectedMonth > 11) { selectedMonth = 0; ++selectedYear; } var maxDate = stepper.maxDate; if(maxDate != null) { if(selectedYear > maxDate.getFullYear()) { selectedMonth = stepper.get_selectedMonth(); selectedYear = stepper.get_selectedYear(); dispatchEvent = false; haxe_ui_animation_AnimationTools.shake(stepper); } else if(selectedYear == maxDate.getFullYear() && selectedMonth > maxDate.getMonth()) { selectedMonth = stepper.get_selectedMonth(); selectedYear = stepper.get_selectedYear(); dispatchEvent = false; haxe_ui_animation_AnimationTools.shake(stepper); } } stepper.set_selectedMonth(selectedMonth); stepper.set_selectedYear(selectedYear); if(dispatchEvent == true) { stepper.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } return null; } ,__class__: haxe_ui_components__$MonthStepper_IncrementValue }); var haxe_ui_components__$MonthStepper_DeincrementValue = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._MonthStepper.DeincrementValue"] = haxe_ui_components__$MonthStepper_DeincrementValue; haxe_ui_components__$MonthStepper_DeincrementValue.__name__ = "haxe.ui.components._MonthStepper.DeincrementValue"; haxe_ui_components__$MonthStepper_DeincrementValue.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$MonthStepper_DeincrementValue.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var dispatchEvent = true; var stepper = this._component; var selectedMonth = stepper.get_selectedMonth(); var selectedYear = stepper.get_selectedYear(); --selectedMonth; if(selectedMonth < 0) { selectedMonth = 11; --selectedYear; } stepper.set_selectedMonth(selectedMonth); stepper.set_selectedYear(selectedYear); if(dispatchEvent == true) { stepper.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } return null; } ,__class__: haxe_ui_components__$MonthStepper_DeincrementValue }); var haxe_ui_components_NumberStepper = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.NumberStepper"] = haxe_ui_components_NumberStepper; haxe_ui_components_NumberStepper.__name__ = "haxe.ui.components.NumberStepper"; haxe_ui_components_NumberStepper.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent]; haxe_ui_components_NumberStepper.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_NumberStepper.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("pos",haxe_ui_components__$NumberStepper_PosBehaviour,haxe_ui_util_Variant.fromInt(0)); this.behaviours.register("step",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("max",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("min",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("precision",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("autoCorrect",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("autoCorrectInterval",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(850)); this.behaviours.register("decimalSeparator",haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour); } ,get_pos: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("pos")); } ,set_pos: function(value) { this.behaviours.set("pos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pos")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_step: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("step")); } ,set_step: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("step",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"step")); return value; } ,get_max: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("max")); } ,set_max: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("max",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"max")); return value; } ,get_min: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("min")); } ,set_min: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("min",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"min")); return value; } ,get_precision: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toInt(this.behaviours.get("precision")); } ,set_precision: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("precision",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"precision")); return value; } ,get_autoCorrect: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("autoCorrect")); } ,set_autoCorrect: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("autoCorrect",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"autoCorrect")); return value; } ,get_autoCorrectInterval: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("autoCorrectInterval")); } ,set_autoCorrectInterval: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("autoCorrectInterval",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"autoCorrectInterval")); return value; } ,get_decimalSeparator: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("decimalSeparator")); } ,set_decimalSeparator: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"decimalSeparator",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("decimalSeparator",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"decimalSeparator")); return value; } ,get_value: function() { return this.get_pos(); } ,set_value: function(value) { this.set_pos(value); return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if(this.get_pos() != null) { c.set_pos(this.get_pos()); } if(this.get_step() != null) { c.set_step(this.get_step()); } if(this.get_max() != null) { c.set_max(this.get_max()); } if(this.get_min() != null) { c.set_min(this.get_min()); } if(this.get_precision() != null) { c.set_precision(this.get_precision()); } c.set_autoCorrect(this.get_autoCorrect()); c.set_autoCorrectInterval(this.get_autoCorrectInterval()); if(this.get_decimalSeparator() != null) { c.set_decimalSeparator(this.get_decimalSeparator()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_NumberStepper(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$NumberStepper_Events; this._compositeBuilderClass = haxe_ui_components__$NumberStepper_Builder; } ,__class__: haxe_ui_components_NumberStepper ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_decimalSeparator:"set_decimalSeparator",get_decimalSeparator:"get_decimalSeparator",set_autoCorrectInterval:"set_autoCorrectInterval",get_autoCorrectInterval:"get_autoCorrectInterval",set_autoCorrect:"set_autoCorrect",get_autoCorrect:"get_autoCorrect",set_precision:"set_precision",get_precision:"get_precision",set_min:"set_min",get_min:"get_min",set_max:"set_max",get_max:"get_max",set_step:"set_step",get_step:"get_step",set_pos:"set_pos",get_pos:"get_pos"}) }); var haxe_ui_components__$NumberStepper_PosBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._NumberStepper.PosBehaviour"] = haxe_ui_components__$NumberStepper_PosBehaviour; haxe_ui_components__$NumberStepper_PosBehaviour.__name__ = "haxe.ui.components._NumberStepper.PosBehaviour"; haxe_ui_components__$NumberStepper_PosBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$NumberStepper_PosBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var stepper = js_Boot.__cast(this._component , haxe_ui_components_NumberStepper); var preciseValue = haxe_ui_util_Variant.toFloat(this._value); if(preciseValue == null) { preciseValue = stepper.get_min(); } var v = preciseValue; var min = stepper.get_min(); var max = stepper.get_max(); if(v == null || isNaN(v)) { preciseValue = min; } else { if(min != null && v < min) { v = min; } else if(max != null && v > max) { v = max; } preciseValue = v; } var wasRounded = false; if(stepper.get_precision() != null) { var precision = stepper.get_precision(); if(precision == null) { precision = 0; } var newPreciseValue = Math.round(preciseValue * Math.pow(10,precision)) / Math.pow(10,precision); if(newPreciseValue != preciseValue) { preciseValue = newPreciseValue; wasRounded = true; } } this._value = haxe_ui_util_Variant.fromFloat(preciseValue); var stringValue = haxe_ui_util_StringUtil.padDecimal(preciseValue,stepper.get_precision()); var value = stepper.findComponent("value",haxe_ui_components_TextField); var caretIndex = value.get_caretIndex(); stringValue = StringTools.replace(stringValue,",","."); stringValue = StringTools.replace(stringValue,".",stepper.get_decimalSeparator()); value.set_text(stringValue); if(wasRounded) { value.set_caretIndex(stringValue.length); } else { value.set_caretIndex(caretIndex); } var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); event.previousValue = this._previousValue; event.value = this._value; this._component.dispatch(event); } ,__class__: haxe_ui_components__$NumberStepper_PosBehaviour }); var haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._NumberStepper.DecimalSeparatorBehaviour"] = haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour; haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour.__name__ = "haxe.ui.components._NumberStepper.DecimalSeparatorBehaviour"; haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { if(this._value == null) { return haxe_ui_util_Variant.fromString(haxe_ui_locale_Formats.get_decimalSeparator()); } return this._value; } ,__class__: haxe_ui_components__$NumberStepper_DecimalSeparatorBehaviour }); var haxe_ui_components__$NumberStepper_Builder = function(stepper) { haxe_ui_core_CompositeBuilder.call(this,stepper); this._stepper = stepper; this._stepper.set_layout(new haxe_ui_components__$NumberStepper_StandardLayout()); }; $hxClasses["haxe.ui.components._NumberStepper.Builder"] = haxe_ui_components__$NumberStepper_Builder; haxe_ui_components__$NumberStepper_Builder.__name__ = "haxe.ui.components._NumberStepper.Builder"; haxe_ui_components__$NumberStepper_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$NumberStepper_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _stepper: null ,create: function() { var value = new haxe_ui_components_TextField(); value.set_id("value"); value.addClass("stepper-value"); value.set_scriptAccess(false); value.set_allowFocus(false); value.set_restrictChars("0-9\\-\\.\\,"); this._stepper.addComponent(value); var deinc = new haxe_ui_components_Button(); deinc.set_id("deinc"); deinc.addClass("stepper-deinc"); deinc.set_allowFocus(false); deinc.set_scriptAccess(false); deinc.set_repeater(true); this._stepper.addComponent(deinc); var inc = new haxe_ui_components_Button(); inc.set_id("inc"); inc.addClass("stepper-inc"); inc.set_allowFocus(false); inc.set_scriptAccess(false); inc.set_repeater(true); this._stepper.addComponent(inc); } ,applyStyle: function(style) { if(style.layout == "classic") { this._stepper.set_layout(new haxe_ui_components__$NumberStepper_ClassicLayout()); } else if(style.layout == null && !((this._stepper.get_layout()) instanceof haxe_ui_components__$NumberStepper_StandardLayout)) { this._stepper.set_layout(new haxe_ui_components__$NumberStepper_StandardLayout()); } var value = this._stepper.findComponent("value",haxe_ui_components_TextField); if(value != null && (value.get_customStyle().color != style.color || value.get_customStyle().fontName != style.fontName || value.get_customStyle().fontSize != style.fontSize || value.get_customStyle().cursor != style.cursor || value.get_customStyle().textAlign != style.textAlign)) { value.get_customStyle().color = style.color; value.get_customStyle().fontName = style.fontName; value.get_customStyle().fontSize = style.fontSize; value.get_customStyle().cursor = style.cursor; value.get_customStyle().textAlign = style.textAlign; value.invalidateComponent("style",false); } } ,__class__: haxe_ui_components__$NumberStepper_Builder }); var haxe_ui_components__$NumberStepper_Events = function(stepper) { this._autoCorrectTimer = null; haxe_ui_events_Events.call(this,stepper); this._stepper = stepper; }; $hxClasses["haxe.ui.components._NumberStepper.Events"] = haxe_ui_components__$NumberStepper_Events; haxe_ui_components__$NumberStepper_Events.__name__ = "haxe.ui.components._NumberStepper.Events"; haxe_ui_components__$NumberStepper_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$NumberStepper_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _stepper: null ,register: function() { if(!this._stepper.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick))) { this._stepper.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)); } if(!this._stepper.hasEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusIn))) { this._stepper.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusIn)); } if(!this._stepper.hasEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusOut))) { this._stepper.registerEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusOut)); } if(!this._stepper.hasEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel))) { this._stepper.registerEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel),-100); } if(!haxe_ui_locale_LocaleManager.get_instance().hasEvent("localeChanged",$bind(this,this.onLocaleChanged))) { haxe_ui_locale_LocaleManager.get_instance().registerEvent("localeChanged",$bind(this,this.onLocaleChanged)); } var value = this._stepper.findComponent("value",haxe_ui_components_TextField); if(!value.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onValueFieldChange))) { value.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onValueFieldChange)); } var deinc = this._stepper.findComponent("deinc",haxe_ui_components_Button); if(!deinc.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc))) { deinc.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); } var inc = this._stepper.findComponent("inc",haxe_ui_components_Button); if(!inc.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc))) { inc.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); } if(!this.hasEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart))) { this.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } } ,unregister: function() { this._stepper.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)); this._stepper.unregisterEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusIn)); this._stepper.unregisterEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusOut)); this._stepper.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); haxe_ui_locale_LocaleManager.get_instance().unregisterEvent("localeChanged",$bind(this,this.onLocaleChanged)); var value = this._stepper.findComponent("value",haxe_ui_components_TextField); value.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onValueFieldChange)); var deinc = this._stepper.findComponent("deinc",haxe_ui_components_Button); deinc.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); var inc = this._stepper.findComponent("inc",haxe_ui_components_Button); inc.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } ,_autoCorrectTimer: null ,onValueFieldChange: function(event) { if(this._stepper.get_autoCorrect() == true) { if(this._autoCorrectTimer != null) { this._autoCorrectTimer.stop(); this._autoCorrectTimer = null; } haxe_ui_components__$NumberStepper_ValueHelper.validateValue(this._stepper); this._autoCorrectTimer = new haxe_ui_util_Timer(this._stepper.get_autoCorrectInterval(),$bind(this,this.onAutoCorrectTimer)); } else { var newValue = haxe_ui_components__$NumberStepper_ValueHelper.validateValue(this._stepper); if(newValue != null) { this._stepper.set_pos(newValue); } } } ,onAutoCorrectTimer: function() { this._autoCorrectTimer.stop(); this._autoCorrectTimer = null; if(this._stepper._isDisposed) { return; } var value = this._stepper.findComponent("value",haxe_ui_components_TextField); if(value == null) { return; } var parsedValue = parseFloat(value.get_text()); var v = parsedValue; var min = this._stepper.get_min(); var max = this._stepper.get_max(); if(v == null || isNaN(v)) { parsedValue = min; } else { if(min != null && v < min) { v = min; } else if(max != null && v > max) { v = max; } parsedValue = v; } if(this._stepper.get_step() != null && parsedValue % this._stepper.get_step() != 0) { var n = this._stepper.get_step(); if(!isFinite(parsedValue) || !isFinite(n)) { parsedValue = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(parsedValue * e) / e - parsedValue) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(n * e) / e - n) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / n; var precision = p1; if(precision == null) { precision = 0; } parsedValue = Math.round(Math.round(parsedValue * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } } this._stepper.set_pos(parsedValue); var stringValue = haxe_ui_util_StringUtil.padDecimal(this._stepper.get_pos(),this._stepper.get_precision()); stringValue = StringTools.replace(stringValue,",","."); stringValue = StringTools.replace(stringValue,".",this._stepper.get_decimalSeparator()); value.set_text(stringValue); } ,onDeinc: function(event) { this._stepper.set_focus(true); haxe_ui_components__$NumberStepper_ValueHelper.deincrementValue(this._stepper); } ,onInc: function(event) { this._stepper.set_focus(true); haxe_ui_components__$NumberStepper_ValueHelper.incrementValue(this._stepper); } ,onMouseWheel: function(event) { if(this._target.get_isInScroller() && this._stepper.get_focus() == false) { return; } event.cancel(); this._stepper.set_focus(true); if(event.delta > 0) { haxe_ui_components__$NumberStepper_ValueHelper.incrementValue(this._stepper); } else { haxe_ui_components__$NumberStepper_ValueHelper.deincrementValue(this._stepper); } } ,onClick: function(_) { this._stepper.set_focus(true); } ,onFocusIn: function(event) { var value = this._stepper.findComponent("value",haxe_ui_components_TextField); value.getTextInput().focus(); } ,onFocusOut: function(event) { var value = this._stepper.findComponent("value",haxe_ui_components_TextField); value.getTextInput().blur(); } ,onActionStart: function(event) { switch(event.action) { case "actionDown": haxe_ui_components__$NumberStepper_ValueHelper.deincrementValue(this._stepper); event.repeater = true; break; case "actionUp": haxe_ui_components__$NumberStepper_ValueHelper.incrementValue(this._stepper); event.repeater = true; break; default: } } ,onLocaleChanged: function(event) { var stringValue = haxe_ui_util_StringUtil.padDecimal(this._stepper.get_pos(),this._stepper.get_precision()); var value = this._stepper.findComponent("value",haxe_ui_components_TextField); var caretIndex = value.get_caretIndex(); stringValue = StringTools.replace(stringValue,",","."); stringValue = StringTools.replace(stringValue,".",this._stepper.get_decimalSeparator()); value.set_text(stringValue); value.set_caretIndex(caretIndex); } ,__class__: haxe_ui_components__$NumberStepper_Events }); var haxe_ui_components__$NumberStepper_StandardLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._NumberStepper.StandardLayout"] = haxe_ui_components__$NumberStepper_StandardLayout; haxe_ui_components__$NumberStepper_StandardLayout.__name__ = "haxe.ui.components._NumberStepper.StandardLayout"; haxe_ui_components__$NumberStepper_StandardLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$NumberStepper_StandardLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { var value = this.findComponent("value",haxe_ui_components_TextField); var deinc = this.findComponent("deinc",haxe_ui_components_Button); var inc = this.findComponent("inc",haxe_ui_components_Button); var u = this.get_usableSize(); deinc.set_height(u.height - this.get_borderSize() * 2); value.set_width(u.width - (deinc.get_width() + inc.get_width())); inc.set_height(u.height - this.get_borderSize() * 2); } ,repositionChildren: function() { var value = this.findComponent("value",haxe_ui_components_TextField); var deinc = this.findComponent("deinc",haxe_ui_components_Button); var inc = this.findComponent("inc",haxe_ui_components_Button); deinc.set_left(this.get_paddingLeft() + this.get_borderSize()); deinc.set_top(this.get_paddingTop() + this.get_borderSize()); value.set_left(deinc.get_left() + deinc.get_width()); value.set_top(this.get_paddingTop() + this.marginTop(value)); inc.set_left(value.get_left() + value.get_width() - this.get_borderSize() - this.get_borderSize()); inc.set_top(this.get_paddingTop() + this.get_borderSize()); } ,get_borderSize: function() { if(this._component.get_style() == null) { return 0; } var n = this._component.get_style().get_fullBorderSize(); return n; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$NumberStepper_StandardLayout(); } ,__class__: haxe_ui_components__$NumberStepper_StandardLayout }); var haxe_ui_components__$NumberStepper_ClassicLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._NumberStepper.ClassicLayout"] = haxe_ui_components__$NumberStepper_ClassicLayout; haxe_ui_components__$NumberStepper_ClassicLayout.__name__ = "haxe.ui.components._NumberStepper.ClassicLayout"; haxe_ui_components__$NumberStepper_ClassicLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$NumberStepper_ClassicLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { var value = this.findComponent("value",haxe_ui_components_TextField); var deinc = this.findComponent("deinc",haxe_ui_components_Button); var inc = this.findComponent("inc",haxe_ui_components_Button); var u = this.get_usableSize(); u.height -= this.get_borderSize() * 2; deinc.set_height(u.height / 2); value.set_width(u.width - deinc.get_width()); inc.set_height(u.height / 2); } ,repositionChildren: function() { var value = this.findComponent("value",haxe_ui_components_TextField); var deinc = this.findComponent("deinc",haxe_ui_components_Button); var inc = this.findComponent("inc",haxe_ui_components_Button); var u = this.get_usableSize(); u.height -= this.get_borderSize() * 2; deinc.set_left(u.width - deinc.get_width() - this.get_paddingRight() - this.get_borderSize()); deinc.set_top(u.height - inc.get_height() - this.get_paddingBottom() - this.get_borderSize() + this.marginTop(deinc) + this.get_borderSize() * 2); value.set_left(this.get_paddingLeft()); value.set_top(this.get_paddingTop() + this.marginTop(value)); inc.set_left(u.width - deinc.get_width() - this.get_paddingRight() - this.get_borderSize()); inc.set_top(this.get_paddingTop() + this.get_borderSize()); } ,get_borderSize: function() { var n = haxe_ui_layouts_DefaultLayout.prototype.get_borderSize.call(this); return n; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$NumberStepper_ClassicLayout(); } ,__class__: haxe_ui_components__$NumberStepper_ClassicLayout }); var haxe_ui_components__$NumberStepper_ValueHelper = function() { }; $hxClasses["haxe.ui.components._NumberStepper.ValueHelper"] = haxe_ui_components__$NumberStepper_ValueHelper; haxe_ui_components__$NumberStepper_ValueHelper.__name__ = "haxe.ui.components._NumberStepper.ValueHelper"; haxe_ui_components__$NumberStepper_ValueHelper.validateValue = function(stepper) { var value = stepper.findComponent("value",haxe_ui_components_TextField); var textValue = value.get_text(); var min = stepper.get_min(); var max = stepper.get_max(); var step = stepper.get_step(); if(textValue != null) { textValue = StringTools.replace(textValue,",","."); textValue = StringTools.replace(textValue,stepper.get_decimalSeparator(),"."); } var parsedValue = parseFloat(textValue); var valid = (textValue == null || textValue == "" ? 0 : textValue.split(".").length - 1) <= 1; if(textValue == null || StringTools.trim(textValue) == "") { valid = false; } if(isNaN(parsedValue)) { valid = false; } if(min != null && parsedValue < min) { valid = false; } if(max != null && parsedValue > max) { valid = false; } var tmp; if(step != null) { var tmp1; if(!isFinite(parsedValue) || !isFinite(step)) { tmp1 = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(parsedValue * e) / e - parsedValue) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(step * e) / e - step) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var e = 1; var _g = 0; var _g1 = p1; while(_g < _g1) { var i = _g++; e *= 10; } var i1 = Math.round(parsedValue * e); var i2 = Math.round(step * e); var precision = p1; if(precision == null) { precision = 0; } tmp1 = Math.round(i1 % i2 / e * Math.pow(10,precision)) / Math.pow(10,precision); } tmp = tmp1 != 0; } else { tmp = false; } if(tmp) { valid = false; if(!isFinite(parsedValue) || !isFinite(step)) { parsedValue = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(parsedValue * e) / e - parsedValue) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(step * e) / e - step) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / step; var precision = p1; if(precision == null) { precision = 0; } parsedValue = Math.round(Math.round(parsedValue * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } } if(valid == false) { parsedValue = null; stepper.addClass("invalid-value"); } else { stepper.removeClass("invalid-value"); } return parsedValue; }; haxe_ui_components__$NumberStepper_ValueHelper.incrementValue = function(stepper) { var value = stepper.findComponent("value",haxe_ui_components_TextField); var textValue = value.get_text(); var min = stepper.get_min(); var max = stepper.get_max(); var step = stepper.get_step(); if(step == null) { step = 1; } var newValue = stepper.get_pos(); if(textValue == null || StringTools.trim(textValue) == "") { if(min != null) { newValue = min; } } else { newValue += step; if(!isFinite(newValue) || !isFinite(step)) { newValue = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(newValue * e) / e - newValue) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(step * e) / e - step) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / step; var precision = p1; if(precision == null) { precision = 0; } newValue = Math.round(Math.round(newValue * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } } if(max != null && newValue > max) { newValue = max; } stepper.set_pos(newValue); }; haxe_ui_components__$NumberStepper_ValueHelper.deincrementValue = function(stepper) { var value = stepper.findComponent("value",haxe_ui_components_TextField); var textValue = value.get_text(); var min = stepper.get_min(); var step = stepper.get_step(); if(step == null) { step = 1; } var newValue = stepper.get_pos(); if(textValue == null || StringTools.trim(textValue) == "") { if(min != null) { newValue = min; } } else { newValue -= step; if(!isFinite(newValue) || !isFinite(step)) { newValue = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(newValue * e) / e - newValue) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(step * e) / e - step) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / step; var precision = p1; if(precision == null) { precision = 0; } newValue = Math.round(Math.round(newValue * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } } if(min != null && newValue < min) { newValue = min; } stepper.set_pos(newValue); }; var haxe_ui_components_OptionBox = function() { haxe_ui_components_CheckBox.call(this); }; $hxClasses["haxe.ui.components.OptionBox"] = haxe_ui_components_OptionBox; haxe_ui_components_OptionBox.__name__ = "haxe.ui.components.OptionBox"; haxe_ui_components_OptionBox.__super__ = haxe_ui_components_CheckBox; haxe_ui_components_OptionBox.prototype = $extend(haxe_ui_components_CheckBox.prototype,{ resetGroup: function() { if(this.behaviours == null) { return; } this.behaviours.call("resetGroup",null); } ,registerComposite: function() { haxe_ui_components_CheckBox.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_OptionBoxBuilder; } ,registerBehaviours: function() { haxe_ui_components_CheckBox.prototype.registerBehaviours.call(this); this.behaviours.register("componentGroup",haxe_ui_components__$OptionBox_GroupBehaviour,haxe_ui_util_Variant.fromString("defaultGroup")); this.behaviours.register("selected",haxe_ui_components__$OptionBox_SelectedBehaviour); this.behaviours.register("selectedOption",haxe_ui_components__$OptionBox_SelectedOptionBehaviour); this.behaviours.register("resetGroup",haxe_ui_components__$OptionBox_ResetGroup); } ,get_componentGroup: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("componentGroup")); } ,set_componentGroup: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"componentGroup",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("componentGroup",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"componentGroup")); return value; } ,get_selectedOption: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedOption")); } ,set_selectedOption: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedOption",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedOption")); return value; } ,get_value: function() { return this.get_selected(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2: this.set_selected(value == 1); break; case 6: if(_g.c == String) { this.set_selected(value == "true" || value == "1"); } else { this.set_selected(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_selected(haxe_ui_util_Variant.toBool(v)); } else { this.set_selected(value); } break; default: this.set_selected(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_components_CheckBox.prototype.cloneComponent.call(this); if(this.get_componentGroup() != null) { c.set_componentGroup(this.get_componentGroup()); } if(this.get_selectedOption() != null) { c.set_selectedOption(this.get_selectedOption()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_OptionBox(); } ,__class__: haxe_ui_components_OptionBox ,__properties__: $extend(haxe_ui_components_CheckBox.prototype.__properties__,{set_selectedOption:"set_selectedOption",get_selectedOption:"get_selectedOption",set_componentGroup:"set_componentGroup",get_componentGroup:"get_componentGroup"}) }); var haxe_ui_components__$OptionBox_GroupBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionBox.GroupBehaviour"] = haxe_ui_components__$OptionBox_GroupBehaviour; haxe_ui_components__$OptionBox_GroupBehaviour.__name__ = "haxe.ui.components._OptionBox.GroupBehaviour"; haxe_ui_components__$OptionBox_GroupBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$OptionBox_GroupBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); if(this._previousValue != null && !haxe_ui_util_Variant.get_isNull(this._previousValue) && haxe_ui_util_Variant.toString(this._previousValue) != haxe_ui_util_Variant.toString(this._value)) { haxe_ui_components_OptionBoxGroups.get_instance().remove(haxe_ui_util_Variant.toString(this._previousValue),this._component); } haxe_ui_components_OptionBoxGroups.get_instance().add(haxe_ui_util_Variant.toString(value),this._component); } ,validateData: function() { if(this._previousValue != null && !haxe_ui_util_Variant.get_isNull(this._previousValue) && haxe_ui_util_Variant.toString(this._previousValue) != haxe_ui_util_Variant.toString(this._value)) { haxe_ui_components_OptionBoxGroups.get_instance().remove(haxe_ui_util_Variant.toString(this._previousValue),this._component); } haxe_ui_components_OptionBoxGroups.get_instance().add(haxe_ui_util_Variant.toString(this._value),this._component); } ,__class__: haxe_ui_components__$OptionBox_GroupBehaviour }); var haxe_ui_components__$OptionBox_SelectedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionBox.SelectedBehaviour"] = haxe_ui_components__$OptionBox_SelectedBehaviour; haxe_ui_components__$OptionBox_SelectedBehaviour.__name__ = "haxe.ui.components._OptionBox.SelectedBehaviour"; haxe_ui_components__$OptionBox_SelectedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$OptionBox_SelectedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var optionbox = js_Boot.__cast(this._component , haxe_ui_components_OptionBox); (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_OptionBoxBuilder)).setSelection(optionbox,haxe_ui_util_Variant.toBool(this._value)); } ,__class__: haxe_ui_components__$OptionBox_SelectedBehaviour }); var haxe_ui_components__$OptionBox_SelectedOptionBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionBox.SelectedOptionBehaviour"] = haxe_ui_components__$OptionBox_SelectedOptionBehaviour; haxe_ui_components__$OptionBox_SelectedOptionBehaviour.__name__ = "haxe.ui.components._OptionBox.SelectedOptionBehaviour"; haxe_ui_components__$OptionBox_SelectedOptionBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$OptionBox_SelectedOptionBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ get: function() { var optionbox = js_Boot.__cast(this._component , haxe_ui_components_OptionBox); var arr = haxe_ui_components_OptionBoxGroups.get_instance().get(optionbox.get_componentGroup()); var selectionOption = null; if(arr != null) { var _g = 0; while(_g < arr.length) { var test = arr[_g]; ++_g; if(test.get_selected() == true) { selectionOption = test; break; } } } return haxe_ui_util_Variant.fromComponent(selectionOption); } ,__class__: haxe_ui_components__$OptionBox_SelectedOptionBehaviour }); var haxe_ui_components__$OptionBox_ResetGroup = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionBox.ResetGroup"] = haxe_ui_components__$OptionBox_ResetGroup; haxe_ui_components__$OptionBox_ResetGroup.__name__ = "haxe.ui.components._OptionBox.ResetGroup"; haxe_ui_components__$OptionBox_ResetGroup.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$OptionBox_ResetGroup.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var optionbox = js_Boot.__cast(this._component , haxe_ui_components_OptionBox); haxe_ui_components_OptionBoxGroups.get_instance().reset(optionbox.get_componentGroup()); return null; } ,__class__: haxe_ui_components__$OptionBox_ResetGroup }); var haxe_ui_components_OptionBoxBuilder = function(checkbox) { haxe_ui_components_CheckBoxBuilder.call(this,checkbox); }; $hxClasses["haxe.ui.components.OptionBoxBuilder"] = haxe_ui_components_OptionBoxBuilder; haxe_ui_components_OptionBoxBuilder.__name__ = "haxe.ui.components.OptionBoxBuilder"; haxe_ui_components_OptionBoxBuilder.__super__ = haxe_ui_components_CheckBoxBuilder; haxe_ui_components_OptionBoxBuilder.prototype = $extend(haxe_ui_components_CheckBoxBuilder.prototype,{ get_cssName: function() { return "optionbox"; } ,setSelection: function(optionbox,value,allowDeselection) { if(allowDeselection == null) { allowDeselection = false; } if(optionbox.get_componentGroup() != null && value == false && allowDeselection == false) { var arr = haxe_ui_components_OptionBoxGroups.get_instance().get(optionbox.get_componentGroup()); var hasSelection = false; if(arr != null) { var _g = 0; while(_g < arr.length) { var option = arr[_g]; ++_g; if(option != optionbox && option.get_selected() == true) { hasSelection = true; break; } } } if(hasSelection == false && allowDeselection == false) { optionbox.behaviours.softSet("selected",haxe_ui_util_Variant.fromBool(true)); return; } } if(optionbox.get_componentGroup() != null && value == true) { var arr = haxe_ui_components_OptionBoxGroups.get_instance().get(optionbox.get_componentGroup()); if(arr != null) { var _g = 0; while(_g < arr.length) { var option = arr[_g]; ++_g; if(option != optionbox) { option.set_selected(false); } } } } if(allowDeselection == true && value == false) { optionbox.behaviours.softSet("selected",haxe_ui_util_Variant.fromBool(false)); } var valueComponent = optionbox.findComponent("optionbox-value",haxe_ui_components_CheckBoxValue); if(valueComponent == null) { return; } valueComponent.createIcon(); if(value == true) { valueComponent.addClass(":selected"); optionbox.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } else { valueComponent.removeClass(":selected"); } } ,destroy: function() { haxe_ui_components_CheckBoxBuilder.prototype.destroy.call(this); var optionbox = js_Boot.__cast(this._component , haxe_ui_components_OptionBox); haxe_ui_components_OptionBoxGroups.get_instance().remove(optionbox.get_componentGroup(),optionbox); } ,__class__: haxe_ui_components_OptionBoxBuilder }); var haxe_ui_components_OptionBoxGroups = function() { this._groups = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.components.OptionBoxGroups"] = haxe_ui_components_OptionBoxGroups; haxe_ui_components_OptionBoxGroups.__name__ = "haxe.ui.components.OptionBoxGroups"; haxe_ui_components_OptionBoxGroups.__properties__ = {get_instance:"get_instance"}; haxe_ui_components_OptionBoxGroups._instance = null; haxe_ui_components_OptionBoxGroups.instance = null; haxe_ui_components_OptionBoxGroups.get_instance = function() { if(haxe_ui_components_OptionBoxGroups._instance == null) { haxe_ui_components_OptionBoxGroups._instance = new haxe_ui_components_OptionBoxGroups(); } return haxe_ui_components_OptionBoxGroups._instance; }; haxe_ui_components_OptionBoxGroups.prototype = { _groups: null ,get: function(name) { return this._groups.h[name]; } ,set: function(name,options) { this._groups.h[name] = options; } ,add: function(name,optionbox) { var arr = this.get(name); if(arr == null) { arr = []; } if(arr.indexOf(optionbox) == -1) { arr.push(optionbox); } this.set(name,arr); } ,remove: function(name,optionbox) { var arr = this.get(name); if(arr == null) { return; } HxOverrides.remove(arr,optionbox); if(arr.length == 0) { var _this = this._groups; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } } } ,reset: function(name) { var arr = this.get(name); if(arr == null) { return; } var selection = null; var _g = 0; while(_g < arr.length) { var item = arr[_g]; ++_g; if(item.get_selected() == true) { selection = item; break; } } if(selection == null) { return; } (js_Boot.__cast(selection._compositeBuilder , haxe_ui_components_OptionBoxBuilder)).setSelection(selection,false,true); } ,__class__: haxe_ui_components_OptionBoxGroups }; var haxe_ui_components__$OptionStepper_DataSourceBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionStepper.DataSourceBehaviour"] = haxe_ui_components__$OptionStepper_DataSourceBehaviour; haxe_ui_components__$OptionStepper_DataSourceBehaviour.__name__ = "haxe.ui.components._OptionStepper.DataSourceBehaviour"; haxe_ui_components__$OptionStepper_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$OptionStepper_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ __class__: haxe_ui_components__$OptionStepper_DataSourceBehaviour }); var haxe_ui_components__$OptionStepper_SelectedIndexBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionStepper.SelectedIndexBehaviour"] = haxe_ui_components__$OptionStepper_SelectedIndexBehaviour; haxe_ui_components__$OptionStepper_SelectedIndexBehaviour.__name__ = "haxe.ui.components._OptionStepper.SelectedIndexBehaviour"; haxe_ui_components__$OptionStepper_SelectedIndexBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$OptionStepper_SelectedIndexBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var stepper = js_Boot.__cast(this._component , haxe_ui_components_OptionStepper); var ds = stepper.get_dataSource(); if(ds == null) { return; } var v = ds.get(haxe_ui_util_Variant.toInt(this._value)); if(v == null) { return; } if(v.value != null) { v = Std.string(v.value); } else if(v.text != null) { v = Std.string(v.text); } var value = stepper.findComponent("value",haxe_ui_components_Label); value.set_text(v); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); event.previousValue = this._previousValue; event.value = this._value; this._component.dispatch(event); } ,__class__: haxe_ui_components__$OptionStepper_SelectedIndexBehaviour }); var haxe_ui_components__$OptionStepper_SelectedItemBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionStepper.SelectedItemBehaviour"] = haxe_ui_components__$OptionStepper_SelectedItemBehaviour; haxe_ui_components__$OptionStepper_SelectedItemBehaviour.__name__ = "haxe.ui.components._OptionStepper.SelectedItemBehaviour"; haxe_ui_components__$OptionStepper_SelectedItemBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$OptionStepper_SelectedItemBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ getDynamic: function() { var stepper = js_Boot.__cast(this._component , haxe_ui_components_OptionStepper); var ds = stepper.get_dataSource(); return ds.get(stepper.get_selectedIndex()); } ,validateData: function() { var stepper = js_Boot.__cast(this._component , haxe_ui_components_OptionStepper); var ds = stepper.get_dataSource(); if(ds == null) { return; } var indexToSelect = -1; var _g = 0; var _g1 = ds.get_size(); while(_g < _g1) { var i = _g++; var v = ds.get(i); if(v.value != null) { v = Std.string(v.value); } else if(v.text != null) { v = Std.string(v.text); } if(v == haxe_ui_util_Variant.toString(this._value)) { indexToSelect = i; break; } } if(indexToSelect != -1) { stepper.set_selectedIndex(indexToSelect); } else { var this1 = this._value; var tmp; if(this1._hx_index == 0) { var _g = this1.s; tmp = true; } else { tmp = false; } if(tmp) { stepper.set_selectedIndex(haxe_ui_util_Variant.toInt(this._value)); } } } ,__class__: haxe_ui_components__$OptionStepper_SelectedItemBehaviour }); var haxe_ui_components__$OptionStepper_IncrementValue = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionStepper.IncrementValue"] = haxe_ui_components__$OptionStepper_IncrementValue; haxe_ui_components__$OptionStepper_IncrementValue.__name__ = "haxe.ui.components._OptionStepper.IncrementValue"; haxe_ui_components__$OptionStepper_IncrementValue.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$OptionStepper_IncrementValue.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var stepper = this._component; if(stepper.get_dataSource() == null) { return null; } var n = stepper.get_selectedIndex(); var m = stepper.get_dataSource().get_size(); ++n; if(n > m - 1) { n = 0; } stepper.set_selectedIndex(n); return null; } ,__class__: haxe_ui_components__$OptionStepper_IncrementValue }); var haxe_ui_components__$OptionStepper_DeincrementValue = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._OptionStepper.DeincrementValue"] = haxe_ui_components__$OptionStepper_DeincrementValue; haxe_ui_components__$OptionStepper_DeincrementValue.__name__ = "haxe.ui.components._OptionStepper.DeincrementValue"; haxe_ui_components__$OptionStepper_DeincrementValue.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$OptionStepper_DeincrementValue.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var stepper = this._component; if(stepper.get_dataSource() == null) { return null; } var n = stepper.get_selectedIndex(); var m = stepper.get_dataSource().get_size(); --n; if(n < 0) { n = m - 1; } stepper.set_selectedIndex(n); return null; } ,__class__: haxe_ui_components__$OptionStepper_DeincrementValue }); var haxe_ui_components__$OptionStepper_Builder = function(stepper) { haxe_ui_core_CompositeBuilder.call(this,stepper); this._stepper = stepper; }; $hxClasses["haxe.ui.components._OptionStepper.Builder"] = haxe_ui_components__$OptionStepper_Builder; haxe_ui_components__$OptionStepper_Builder.__name__ = "haxe.ui.components._OptionStepper.Builder"; haxe_ui_components__$OptionStepper_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$OptionStepper_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _stepper: null ,create: function() { var value = new haxe_ui_components_Label(); value.set_id("value"); value.addClass("stepper-value"); value.set_scriptAccess(false); this._stepper.addComponent(value); var deinc = new haxe_ui_components_Button(); deinc.set_id("deinc"); deinc.addClass("stepper-deinc"); deinc.set_allowFocus(false); deinc.set_scriptAccess(false); deinc.set_repeater(true); this._stepper.addComponent(deinc); var inc = new haxe_ui_components_Button(); inc.set_id("inc"); inc.addClass("stepper-inc"); inc.set_allowFocus(false); inc.set_scriptAccess(false); inc.set_repeater(true); this._stepper.addComponent(inc); } ,applyStyle: function(style) { var value = this._stepper.findComponent("value",haxe_ui_components_Label); if(value != null && (value.get_customStyle().color != style.color || value.get_customStyle().fontName != style.fontName || value.get_customStyle().fontSize != style.fontSize || value.get_customStyle().cursor != style.cursor || value.get_customStyle().textAlign != style.textAlign)) { value.get_customStyle().color = style.color; value.get_customStyle().fontName = style.fontName; value.get_customStyle().fontSize = style.fontSize; value.get_customStyle().cursor = style.cursor; value.get_customStyle().textAlign = style.textAlign; value.invalidateComponent("style",false); } } ,__class__: haxe_ui_components__$OptionStepper_Builder }); var haxe_ui_components__$OptionStepper_Events = function(stepper) { haxe_ui_events_Events.call(this,stepper); this._stepper = stepper; }; $hxClasses["haxe.ui.components._OptionStepper.Events"] = haxe_ui_components__$OptionStepper_Events; haxe_ui_components__$OptionStepper_Events.__name__ = "haxe.ui.components._OptionStepper.Events"; haxe_ui_components__$OptionStepper_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$OptionStepper_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _stepper: null ,register: function() { if(!this._stepper.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick))) { this._stepper.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)); } if(!this._stepper.hasEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel))) { this._stepper.registerEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); } var deinc = this._stepper.findComponent("deinc",haxe_ui_components_Button); if(!deinc.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc))) { deinc.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); } var inc = this._stepper.findComponent("inc",haxe_ui_components_Button); if(!inc.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc))) { inc.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); } if(!this.hasEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart))) { this.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } } ,unregister: function() { this._stepper.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onClick)); this._stepper.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); var deinc = this._stepper.findComponent("deinc",haxe_ui_components_Button); deinc.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); var inc = this._stepper.findComponent("inc",haxe_ui_components_Button); inc.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } ,onClick: function(_) { this._stepper.set_focus(true); } ,onDeinc: function(event) { this._stepper.set_focus(true); this.deincrementValue(); } ,onInc: function(event) { this._stepper.set_focus(true); this.incrementValue(); } ,onMouseWheel: function(event) { if(this._target.get_isInScroller() && this._stepper.get_focus() == false) { return; } event.cancel(); this._stepper.set_focus(true); if(event.delta > 0) { this.incrementValue(); } else { this.deincrementValue(); } } ,onActionStart: function(event) { switch(event.action) { case "actionDown": this.deincrementValue(); event.repeater = true; break; case "actionLeft": this.deincrementValue(); event.repeater = true; break; case "actionRight": this.incrementValue(); event.repeater = true; break; case "actionUp": this.incrementValue(); event.repeater = true; break; default: } } ,incrementValue: function() { this._stepper.incrementValue(); } ,deincrementValue: function() { this._stepper.deincrementValue(); } ,__class__: haxe_ui_components__$OptionStepper_Events }); var haxe_ui_components__$OptionStepper_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._OptionStepper.Layout"] = haxe_ui_components__$OptionStepper_Layout; haxe_ui_components__$OptionStepper_Layout.__name__ = "haxe.ui.components._OptionStepper.Layout"; haxe_ui_components__$OptionStepper_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$OptionStepper_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { var value = this.findComponent("value",haxe_ui_components_Label); var deinc = this.findComponent("deinc",haxe_ui_components_Button); var inc = this.findComponent("inc",haxe_ui_components_Button); var u = this.get_usableSize(); deinc.set_height(u.height - this.get_borderSize() * 2); value.set_width(u.width - (deinc.get_width() + inc.get_width())); inc.set_height(u.height - this.get_borderSize() * 2); } ,repositionChildren: function() { var value = this.findComponent("value",haxe_ui_components_Label); var deinc = this.findComponent("deinc",haxe_ui_components_Button); var inc = this.findComponent("inc",haxe_ui_components_Button); deinc.set_left(this.get_paddingLeft() + this.get_borderSize()); deinc.set_top(this.get_paddingTop() + this.get_borderSize()); value.set_left(deinc.get_left() + deinc.get_width()); value.set_top(this.get_paddingTop() + this.marginTop(value)); inc.set_left(value.get_left() + value.get_width() - this.get_borderSize() - this.get_borderSize()); inc.set_top(this.get_paddingTop() + this.get_borderSize()); } ,get_borderSize: function() { if(this._component.get_style() == null) { return 0; } var n = this._component.get_style().get_fullBorderSize(); return n; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$OptionStepper_Layout(); } ,__class__: haxe_ui_components__$OptionStepper_Layout }); var haxe_ui_components__$Progress_Pos = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Progress.Pos"] = haxe_ui_components__$Progress_Pos; haxe_ui_components__$Progress_Pos.__name__ = "haxe.ui.components._Progress.Pos"; haxe_ui_components__$Progress_Pos.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$Progress_Pos.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { var progress = js_Boot.__cast(this._component , haxe_ui_components_Progress); return haxe_ui_util_Variant.fromFloat(progress.get_end()); } ,set: function(value) { var progress = js_Boot.__cast(this._component , haxe_ui_components_Progress); progress.set_end(haxe_ui_util_Variant.toFloat(value)); } ,__class__: haxe_ui_components__$Progress_Pos }); var haxe_ui_components__$Progress_Min = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Progress.Min"] = haxe_ui_components__$Progress_Min; haxe_ui_components__$Progress_Min.__name__ = "haxe.ui.components._Progress.Min"; haxe_ui_components__$Progress_Min.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$Progress_Min.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { var progress = js_Boot.__cast(this._component , haxe_ui_components_Progress); progress.set_start(haxe_ui_util_Variant.toFloat(value)); } ,__class__: haxe_ui_components__$Progress_Min }); var haxe_ui_components__$Progress_Indeterminate = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Progress.Indeterminate"] = haxe_ui_components__$Progress_Indeterminate; haxe_ui_components__$Progress_Indeterminate.__name__ = "haxe.ui.components._Progress.Indeterminate"; haxe_ui_components__$Progress_Indeterminate.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_components__$Progress_Indeterminate.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ get: function() { return this._value; } ,set: function(value) { if(haxe_ui_util_Variant.eq(value,this._value)) { return; } haxe_ui_behaviours_ValueBehaviour.prototype.set.call(this,value); if(haxe_ui_util_Variant.eq(value,haxe_ui_util_Variant.fromBool(false))) { this._component.removeClass(":indeterminate"); } else { this._component.addClass(":indeterminate"); } } ,detatch: function() { haxe_ui_behaviours_ValueBehaviour.prototype.detatch.call(this); this._component.removeClass(":indeterminate"); } ,__class__: haxe_ui_components__$Progress_Indeterminate }); var haxe_ui_components__$Range_RangeMin = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Range.RangeMin"] = haxe_ui_components__$Range_RangeMin; haxe_ui_components__$Range_RangeMin.__name__ = "haxe.ui.components._Range.RangeMin"; haxe_ui_components__$Range_RangeMin.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Range_RangeMin.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = js_Boot.__cast(this._component , haxe_ui_components_Range); range.set_min(haxe_ui_util_Variant.toFloat(this._value)); if(range.get_start() < range.get_min()) { range.set_start(range.get_min()); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_components__$Range_RangeMin }); var haxe_ui_components__$Range_RangeMax = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Range.RangeMax"] = haxe_ui_components__$Range_RangeMax; haxe_ui_components__$Range_RangeMax.__name__ = "haxe.ui.components._Range.RangeMax"; haxe_ui_components__$Range_RangeMax.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Range_RangeMax.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = js_Boot.__cast(this._component , haxe_ui_components_Range); range.set_max(haxe_ui_util_Variant.toFloat(this._value)); if(range.get_end() > range.get_max()) { range.set_end(range.get_max()); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_components__$Range_RangeMax }); var haxe_ui_components__$Range_RangeStart = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Range.RangeStart"] = haxe_ui_components__$Range_RangeStart; haxe_ui_components__$Range_RangeStart.__name__ = "haxe.ui.components._Range.RangeStart"; haxe_ui_components__$Range_RangeStart.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Range_RangeStart.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = js_Boot.__cast(this._component , haxe_ui_components_Range); if(this._value != null && haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromFloat(range.get_min()))) { this._value = haxe_ui_util_Variant.fromFloat(range.get_min()); } else if(this._value != null && haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromFloat(range.get_max()))) { this._value = haxe_ui_util_Variant.fromFloat(range.get_max()); } range.set_start(haxe_ui_util_Variant.toFloat(this._value)); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } var changeEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); changeEvent.previousValue = this._previousValue; changeEvent.value = this._value; this._component.dispatch(changeEvent); } ,__class__: haxe_ui_components__$Range_RangeStart }); var haxe_ui_components__$Range_RangeEnd = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Range.RangeEnd"] = haxe_ui_components__$Range_RangeEnd; haxe_ui_components__$Range_RangeEnd.__name__ = "haxe.ui.components._Range.RangeEnd"; haxe_ui_components__$Range_RangeEnd.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Range_RangeEnd.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = js_Boot.__cast(this._component , haxe_ui_components_Range); if(this._value != null && haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromFloat(range.get_min()))) { this._value = haxe_ui_util_Variant.fromFloat(range.get_min()); } else if(this._value != null && haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromFloat(range.get_max()))) { this._value = haxe_ui_util_Variant.fromFloat(range.get_max()); } range.set_end(haxe_ui_util_Variant.toFloat(this._value)); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } var changeEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); changeEvent.previousValue = this._previousValue; changeEvent.value = this._value; this._component.dispatch(changeEvent); } ,__class__: haxe_ui_components__$Range_RangeEnd }); var haxe_ui_components__$Range_AllowInteraction = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Range.AllowInteraction"] = haxe_ui_components__$Range_AllowInteraction; haxe_ui_components__$Range_AllowInteraction.__name__ = "haxe.ui.components._Range.AllowInteraction"; haxe_ui_components__$Range_AllowInteraction.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$Range_AllowInteraction.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { return haxe_ui_util_Variant.fromBool(this._component._internalEvents != null); } ,set: function(value) { if(this._component.get_native() == true) { return; } if(haxe_ui_util_Variant.eq(value,haxe_ui_util_Variant.fromBool(true))) { this._component.registerInternalEvents(haxe_ui_components__$Range_Events); } else { this._component.unregisterInternalEvents(); } } ,__class__: haxe_ui_components__$Range_AllowInteraction }); var haxe_ui_components__$Range_Events = function(range) { haxe_ui_events_Events.call(this,range); this._range = range; this.register(); }; $hxClasses["haxe.ui.components._Range.Events"] = haxe_ui_components__$Range_Events; haxe_ui_components__$Range_Events.__name__ = "haxe.ui.components._Range.Events"; haxe_ui_components__$Range_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$Range_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _range: null ,register: function() { this._range.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } ,unregister: function() { this._range.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } ,onMouseDown: function(e) { var pt = new haxe_ui_geom_Point(e.get_localX(),e.get_localY()); var pos = this._range.posFromCoord(pt); this.applyPos(pos); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); } ,onScreenMouseUp: function(e) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); } ,onScreenMouseMove: function(e) { var pt = new haxe_ui_geom_Point(e.screenX - this._range.get_screenLeft(),e.screenY - this._range.get_screenTop()); var pos = this._range.posFromCoord(pt); this.applyPos(pos); } ,applyPos: function(pos) { var precision = this._range.get_precision(); if(precision == null) { precision = 0; } pos = Math.round(pos * Math.pow(10,precision)) / Math.pow(10,precision); if(this._range.get_step() > 0) { pos = Math.ceil(pos / this._range.get_step()) * this._range.get_step(); } if(((this._range) instanceof haxe_ui_components_Progress)) { (js_Boot.__cast(this._range , haxe_ui_components_Progress)).set_pos(pos); return; } var d1 = this._range.get_end() - this._range.get_start(); var d2 = pos - this._range.get_start(); if(d2 < d1 / 2) { this._range.set_start(pos); } else if(d2 >= d1 / 2) { this._range.set_end(pos); } else if(pos > this._range.get_start()) { this._range.set_end(pos); } else if(pos < this._range.get_end()) { this._range.set_start(pos); } } ,__class__: haxe_ui_components__$Range_Events }); var haxe_ui_components__$Scroll_Events = function(scroll) { haxe_ui_events_Events.call(this,scroll); this._scroll = scroll; this._deincButton = this._scroll.findComponent("scroll-deinc-button"); this._incButton = this._scroll.findComponent("scroll-inc-button"); this._thumb = this._scroll.findComponent("scroll-thumb-button"); }; $hxClasses["haxe.ui.components._Scroll.Events"] = haxe_ui_components__$Scroll_Events; haxe_ui_components__$Scroll_Events.__name__ = "haxe.ui.components._Scroll.Events"; haxe_ui_components__$Scroll_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$Scroll_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _scroll: null ,_deincButton: null ,_incButton: null ,_thumb: null ,register: function() { if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } if(this._deincButton != null && this._deincButton.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)) == false) { this._deincButton.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); } if(this._incButton != null && this._incButton.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)) == false) { this._incButton.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); } if(this._thumb != null && this._thumb.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)) == false) { this._thumb.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)); } } ,unregister: function() { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); if(this._deincButton != null) { this._deincButton.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); } if(this._incButton != null) { this._incButton.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); } if(this._thumb != null) { this._thumb.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)); } } ,onMouseDown: function(event) { var componentOffset = this._scroll.getComponentOffset(); if(this._deincButton.hitTest(event.screenX - componentOffset.x,event.screenY - componentOffset.y) == false && this._incButton.hitTest(event.screenX - componentOffset.x,event.screenY - componentOffset.y) == false) { this._scroll.applyPageFromCoord(new haxe_ui_geom_Point(event.screenX - componentOffset.x,event.screenY - componentOffset.y)); this._scroll.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_START)); this._scroll.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG)); this._scroll.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_END)); } } ,onDeinc: function(event) { var fh = this._scroll; fh.set_pos(fh.get_pos() - this._scroll.get_increment()); } ,onInc: function(event) { var fh = this._scroll; fh.set_pos(fh.get_pos() + this._scroll.get_increment()); } ,_mouseDownOffset: null ,onThumbMouseDown: function(event) { this._mouseDownOffset = new haxe_ui_geom_Point(); var tmp = event.screenX - this._thumb.get_left(); var tmp1 = this._scroll.get_layout().get_paddingLeft(); this._mouseDownOffset.x = tmp + tmp1; var tmp = event.screenY - this._thumb.get_top(); var tmp1 = this._scroll.get_layout().get_paddingTop(); this._mouseDownOffset.y = tmp + tmp1; this._scroll.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); this._scroll.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); this._scroll.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_START)); } ,onScreenMouseUp: function(event) { this._mouseDownOffset = null; this._scroll.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); this._scroll.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); this._scroll.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_END)); } ,onScreenMouseMove: function(event) { if(this._mouseDownOffset == null) { return; } var coord = new haxe_ui_geom_Point(event.screenX - this._mouseDownOffset.x,event.screenY - this._mouseDownOffset.y); this._scroll.set_pos(this._scroll.posFromCoord(coord)); } ,__class__: haxe_ui_components__$Scroll_Events }); var haxe_ui_components__$Scroll_ScrollValueBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Scroll.ScrollValueBehaviour"] = haxe_ui_components__$Scroll_ScrollValueBehaviour; haxe_ui_components__$Scroll_ScrollValueBehaviour.__name__ = "haxe.ui.components._Scroll.ScrollValueBehaviour"; haxe_ui_components__$Scroll_ScrollValueBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Scroll_ScrollValueBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,this.get())) { return; } var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var min = scroll.get_min(); var max = scroll.get_max(); if(haxe_ui_util_Variant.lt(value,haxe_ui_util_Variant.fromFloat(min))) { value = haxe_ui_util_Variant.fromFloat(min); } else if(haxe_ui_util_Variant.gt(value,haxe_ui_util_Variant.fromFloat(max))) { value = haxe_ui_util_Variant.fromFloat(max); } haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,validateData: function() { var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var changeEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); changeEvent.previousValue = this._previousValue; changeEvent.value = this._value; scroll.dispatch(changeEvent); var scrollEvent = new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.SCROLL); scroll.dispatch(scrollEvent); scroll.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG)); } ,__class__: haxe_ui_components__$Scroll_ScrollValueBehaviour }); var haxe_ui_components__$Scroll_ScrollMinMaxBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Scroll.ScrollMinMaxBehaviour"] = haxe_ui_components__$Scroll_ScrollMinMaxBehaviour; haxe_ui_components__$Scroll_ScrollMinMaxBehaviour.__name__ = "haxe.ui.components._Scroll.ScrollMinMaxBehaviour"; haxe_ui_components__$Scroll_ScrollMinMaxBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Scroll_ScrollMinMaxBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,this.get())) { return; } haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,validateData: function() { var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var pos = scroll.get_pos(); var min = scroll.get_min(); var max = scroll.get_max(); if(pos < min) { scroll.set_pos(min); } else if(pos > max) { scroll.set_pos(max); } var changeEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); scroll.dispatch(changeEvent); } ,__class__: haxe_ui_components__$Scroll_ScrollMinMaxBehaviour }); var haxe_ui_containers_VBox = function() { haxe_ui_containers_Box.call(this); this.set_layout(new haxe_ui_layouts_VerticalLayout()); }; $hxClasses["haxe.ui.containers.VBox"] = haxe_ui_containers_VBox; haxe_ui_containers_VBox.__name__ = "haxe.ui.containers.VBox"; haxe_ui_containers_VBox.__super__ = haxe_ui_containers_Box; haxe_ui_containers_VBox.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_VBox(); } ,__class__: haxe_ui_containers_VBox }); var haxe_ui_components_SectionHeader = function() { haxe_ui_containers_VBox.call(this); }; $hxClasses["haxe.ui.components.SectionHeader"] = haxe_ui_components_SectionHeader; haxe_ui_components_SectionHeader.__name__ = "haxe.ui.components.SectionHeader"; haxe_ui_components_SectionHeader.__super__ = haxe_ui_containers_VBox; haxe_ui_components_SectionHeader.prototype = $extend(haxe_ui_containers_VBox.prototype,{ registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$SectionHeader_Builder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_components__$SectionHeader_TextBehaviour); } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_SectionHeader(); } ,__class__: haxe_ui_components_SectionHeader }); var haxe_ui_components__$SectionHeader_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._SectionHeader.TextBehaviour"] = haxe_ui_components__$SectionHeader_TextBehaviour; haxe_ui_components__$SectionHeader_TextBehaviour.__name__ = "haxe.ui.components._SectionHeader.TextBehaviour"; haxe_ui_components__$SectionHeader_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$SectionHeader_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent(null,haxe_ui_components_Label,false); label.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_components__$SectionHeader_TextBehaviour }); var haxe_ui_components__$SectionHeader_Builder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.components._SectionHeader.Builder"] = haxe_ui_components__$SectionHeader_Builder; haxe_ui_components__$SectionHeader_Builder.__name__ = "haxe.ui.components._SectionHeader.Builder"; haxe_ui_components__$SectionHeader_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$SectionHeader_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ create: function() { haxe_ui_core_CompositeBuilder.prototype.create.call(this); var label = new haxe_ui_components_Label(); label.set_text("Section Header"); label.set_scriptAccess(false); this._component.addComponent(label); var line = new haxe_ui_components_HorizontalRule(); line.addClasses(["section-line","line"]); line.set_scriptAccess(false); this._component.addComponent(line); } ,applyStyle: function(style) { haxe_ui_core_CompositeBuilder.prototype.applyStyle.call(this,style); var list = this._component.findComponents(null,haxe_ui_components_Label,16777215); var _g = 0; while(_g < list.length) { var c = list[_g]; ++_g; var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(style.fontBold != null && c.get_customStyle().fontBold != style.fontBold) { c.get_customStyle().fontBold = style.fontBold; invalidate = true; } if(style.fontUnderline != null && c.get_customStyle().fontUnderline != style.fontUnderline) { c.get_customStyle().fontUnderline = style.fontUnderline; invalidate = true; } if(style.fontItalic != null && c.get_customStyle().fontItalic != style.fontItalic) { c.get_customStyle().fontItalic = style.fontItalic; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } } ,__class__: haxe_ui_components__$SectionHeader_Builder }); var haxe_ui_components__$Slider_StartBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.StartBehaviour"] = haxe_ui_components__$Slider_StartBehaviour; haxe_ui_components__$Slider_StartBehaviour.__name__ = "haxe.ui.components._Slider.StartBehaviour"; haxe_ui_components__$Slider_StartBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_StartBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components_SliderBuilder); if(this._component.findComponent("start-thumb") == null) { builder.createThumb("start-thumb"); } var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); if(this._value != null && haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromFloat(slider.get_min()))) { this._value = haxe_ui_util_Variant.fromFloat(slider.get_min()); } if(this._value != null && haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromFloat(slider.get_max()))) { this._value = haxe_ui_util_Variant.fromFloat(slider.get_max()); } if(slider.get_precision() != null) { var v = haxe_ui_util_Variant.toFloat(this._value); var precision = slider.get_precision(); if(precision == null) { precision = 0; } this._value = haxe_ui_util_Variant.fromFloat(Math.round(v * Math.pow(10,precision)) / Math.pow(10,precision)); } if(slider.get_step() != null) { var v = haxe_ui_util_Variant.toFloat(this._value); var n = slider.get_step(); var tmp; if(!isFinite(v) || !isFinite(n)) { tmp = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(v * e) / e - v) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(n * e) / e - n) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / n; var precision = p1; if(precision == null) { precision = 0; } tmp = Math.round(Math.round(v * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } this._value = haxe_ui_util_Variant.fromFloat(tmp); } this._component.findComponent(null,haxe_ui_components_Range).set_start(haxe_ui_util_Variant.toFloat(this._value)); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_components__$Slider_StartBehaviour }); var haxe_ui_components__$Slider_EndBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.EndBehaviour"] = haxe_ui_components__$Slider_EndBehaviour; haxe_ui_components__$Slider_EndBehaviour.__name__ = "haxe.ui.components._Slider.EndBehaviour"; haxe_ui_components__$Slider_EndBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_EndBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = this._component.findComponent(null,haxe_ui_components_Range); if(range == null) { return; } var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); if(this._value != null && haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromFloat(slider.get_min()))) { this._value = haxe_ui_util_Variant.fromFloat(slider.get_min()); } if(this._value != null && haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromFloat(slider.get_max()))) { this._value = haxe_ui_util_Variant.fromFloat(slider.get_max()); } if(slider.get_precision() != null) { var v = haxe_ui_util_Variant.toFloat(this._value); var precision = slider.get_precision(); if(precision == null) { precision = 0; } this._value = haxe_ui_util_Variant.fromFloat(Math.round(v * Math.pow(10,precision)) / Math.pow(10,precision)); } if(slider.get_step() != null) { var v = haxe_ui_util_Variant.toFloat(this._value); var n = slider.get_step(); var tmp; if(!isFinite(v) || !isFinite(n)) { tmp = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(v * e) / e - v) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(n * e) / e - n) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / n; var precision = p1; if(precision == null) { precision = 0; } tmp = Math.round(Math.round(v * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } this._value = haxe_ui_util_Variant.fromFloat(tmp); } if(slider.get_center() != null) { if(haxe_ui_util_Variant.gte(this._value,haxe_ui_util_Variant.fromFloat(slider.get_center()))) { range.virtualStart = slider.get_center(); range.virtualEnd = haxe_ui_util_Variant.toFloat(this._value); } else if(haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromFloat(slider.get_center()))) { range.virtualStart = haxe_ui_util_Variant.toFloat(this._value); range.virtualEnd = slider.get_center(); } } range.set_end(haxe_ui_util_Variant.toFloat(this._value)); (js_Boot.__cast(this._component , haxe_ui_components_Slider)).set_pos(haxe_ui_util_Variant.toFloat(this._value)); var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_components__$Slider_EndBehaviour }); var haxe_ui_components__$Slider_MinBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.MinBehaviour"] = haxe_ui_components__$Slider_MinBehaviour; haxe_ui_components__$Slider_MinBehaviour.__name__ = "haxe.ui.components._Slider.MinBehaviour"; haxe_ui_components__$Slider_MinBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_MinBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = this._component.findComponent(null,haxe_ui_components_Range); if(range == null) { return; } var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); if(slider.get_start() == null) { range.set_start(haxe_ui_util_Variant.toFloat(this._value)); } range.set_min(haxe_ui_util_Variant.toFloat(this._value)); if(slider.get_minorTicks() != null) { slider.set_minorTicks(slider.get_minorTicks() - 1); slider.set_minorTicks(slider.get_minorTicks() + 1); } if(slider.get_majorTicks() != null) { slider.set_majorTicks(slider.get_majorTicks() - 1); slider.set_majorTicks(slider.get_majorTicks() + 1); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_components__$Slider_MinBehaviour }); var haxe_ui_components__$Slider_MaxBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.MaxBehaviour"] = haxe_ui_components__$Slider_MaxBehaviour; haxe_ui_components__$Slider_MaxBehaviour.__name__ = "haxe.ui.components._Slider.MaxBehaviour"; haxe_ui_components__$Slider_MaxBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_MaxBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var range = this._component.findComponent(null,haxe_ui_components_Range); if(range == null) { return; } var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); range.set_max(haxe_ui_util_Variant.toFloat(this._value)); if(slider.get_minorTicks() != null) { slider.set_minorTicks(slider.get_minorTicks() - 1); slider.set_minorTicks(slider.get_minorTicks() + 1); } if(slider.get_majorTicks() != null) { slider.set_majorTicks(slider.get_majorTicks() - 1); slider.set_majorTicks(slider.get_majorTicks() + 1); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,__class__: haxe_ui_components__$Slider_MaxBehaviour }); var haxe_ui_components__$Slider_PosBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.PosBehaviour"] = haxe_ui_components__$Slider_PosBehaviour; haxe_ui_components__$Slider_PosBehaviour.__name__ = "haxe.ui.components._Slider.PosBehaviour"; haxe_ui_components__$Slider_PosBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_PosBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { if(this._component.get_isReady() == false) { this._value = value; (js_Boot.__cast(this._component , haxe_ui_components_Slider)).set_end(haxe_ui_util_Variant.toFloat(this._value)); this.invalidateData(); return; } haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); } ,validateData: function() { (js_Boot.__cast(this._component , haxe_ui_components_Slider)).set_end(haxe_ui_util_Variant.toFloat(this._value)); } ,__class__: haxe_ui_components__$Slider_PosBehaviour }); var haxe_ui_components__$Slider_CenterBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.CenterBehaviour"] = haxe_ui_components__$Slider_CenterBehaviour; haxe_ui_components__$Slider_CenterBehaviour.__name__ = "haxe.ui.components._Slider.CenterBehaviour"; haxe_ui_components__$Slider_CenterBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_components__$Slider_CenterBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); if(value != null && haxe_ui_util_Variant.get_isNull(value) == false) { var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); slider.set_pos(haxe_ui_util_Variant.toFloat(this._value)); var v = this._component.findComponent(null,haxe_ui_components_Range); if(v != null) { v.virtualStart = haxe_ui_util_Variant.toFloat(this._value); } this._component.addClass("with-center"); } else { this._component.removeClass("with-center"); } } ,__class__: haxe_ui_components__$Slider_CenterBehaviour }); var haxe_ui_components__$Slider_MinorTicks = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.MinorTicks"] = haxe_ui_components__$Slider_MinorTicks; haxe_ui_components__$Slider_MinorTicks.__name__ = "haxe.ui.components._Slider.MinorTicks"; haxe_ui_components__$Slider_MinorTicks.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_MinorTicks.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value != null && haxe_ui_util_Variant.get_isNull(this._value) == false) { var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); slider.addClass("minor-ticks"); var ticks = slider.findComponents("minor-tick",null,1); var v = haxe_ui_util_Variant.toFloat(this._value); var m = slider.get_max() - slider.get_min(); var n = (m / v | 0) + 1; if(ticks == null || ticks.length != n) { var index = slider.getComponentIndex(slider.findComponent(null,haxe_ui_components_Range)); var addN = n - ticks.length | 0; var _g = 0; var _g1 = addN; while(_g < _g1) { var _ = _g++; var tick = new haxe_ui_core_Component(); tick.addClass("minor-tick"); tick.set_scriptAccess(false); slider.addComponent(tick); slider.setComponentIndex(tick,index + 1); } var removeN = ticks.length - n | 0; var _g = 0; var _g1 = removeN; while(_g < _g1) { var _ = _g++; slider.removeComponentAt(index + 1); } } } else { this._component.removeClass("minor-ticks"); } } ,__class__: haxe_ui_components__$Slider_MinorTicks }); var haxe_ui_components__$Slider_MajorTicks = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.MajorTicks"] = haxe_ui_components__$Slider_MajorTicks; haxe_ui_components__$Slider_MajorTicks.__name__ = "haxe.ui.components._Slider.MajorTicks"; haxe_ui_components__$Slider_MajorTicks.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Slider_MajorTicks.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value != null && haxe_ui_util_Variant.get_isNull(this._value) == false) { var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); slider.addClass("major-ticks"); var ticks = slider.findComponents("major-tick",null,1); var v = haxe_ui_util_Variant.toFloat(this._value); var m = slider.get_max() - slider.get_min(); var n = (m / v | 0) + 1; if(ticks == null || ticks.length != n) { var index = slider.getComponentIndex(slider.findComponent(null,haxe_ui_components_Range)); var addN = n - ticks.length | 0; var _g = 0; var _g1 = addN; while(_g < _g1) { var _ = _g++; var tick = new haxe_ui_core_Component(); tick.addClass("major-tick"); tick.set_scriptAccess(false); slider.addComponent(tick); slider.setComponentIndex(tick,index + 1); } var removeN = ticks.length - n | 0; var _g = 0; var _g1 = removeN; while(_g < _g1) { var _ = _g++; slider.removeComponentAt(index + 1); } } } else { this._component.removeClass("major-ticks"); } } ,__class__: haxe_ui_components__$Slider_MajorTicks }); var haxe_ui_components__$Slider_PosFromCoord = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Slider.PosFromCoord"] = haxe_ui_components__$Slider_PosFromCoord; haxe_ui_components__$Slider_PosFromCoord.__name__ = "haxe.ui.components._Slider.PosFromCoord"; haxe_ui_components__$Slider_PosFromCoord.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Slider_PosFromCoord.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(coord) { var range = this._component.findComponent(null,haxe_ui_components_Range); return haxe_ui_util_Variant.fromFloat(range.posFromCoord(coord)); } ,__class__: haxe_ui_components__$Slider_PosFromCoord }); var haxe_ui_components__$Slider_Events = function(slider) { this.repeats = 0; this._offset = null; this._rangeSynced = false; haxe_ui_events_Events.call(this,slider); this._slider = slider; this._range = slider.findComponent(null,haxe_ui_components_Range); }; $hxClasses["haxe.ui.components._Slider.Events"] = haxe_ui_components__$Slider_Events; haxe_ui_components__$Slider_Events.__name__ = "haxe.ui.components._Slider.Events"; haxe_ui_components__$Slider_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$Slider_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _slider: null ,_endThumb: null ,_startThumb: null ,_range: null ,_activeThumb: null ,register: function() { this._startThumb = this._slider.findComponent("start-thumb"); if(this._startThumb != null && this._startThumb.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)) == false) { this._startThumb.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)); } this._endThumb = this._slider.findComponent("end-thumb"); if(this._endThumb != null && this._endThumb.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)) == false) { this._endThumb.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)); } if(this._range != null && this._range.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRangeMouseDown)) == false) { this._range.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRangeMouseDown)); } if(this._range != null && this._range.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onRangeChange)) == false) { this._range.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onRangeChange)); } if(this.hasEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)) == false) { this.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } if(this.hasEvent(haxe_ui_events_ActionEvent.ACTION_END,$bind(this,this.onActionEnd)) == false) { this.registerEvent(haxe_ui_events_ActionEvent.ACTION_END,$bind(this,this.onActionEnd)); } } ,unregister: function() { if(this._startThumb != null) { this._startThumb.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)); } if(this._endThumb != null) { this._endThumb.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onThumbMouseDown)); } if(this._range != null) { this._range.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRangeMouseDown)); this._range.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onRangeChange)); } this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionEnd)); } ,_rangeSynced: null ,onRangeChange: function(e) { if(this._rangeSynced == false && this._range.get_end() == this._slider.get_end()) { this._rangeSynced = true; if(this._slider.get_end() == 0) { return; } } if(this._rangeSynced == false) { return; } var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); event.previousValue = e.previousValue; event.value = e.value; this._slider.dispatch(event); this._slider.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG)); } ,onRangeMouseDown: function(e) { if(this._startThumb != null && this._startThumb.hitTest(e.screenX,e.screenY) == true) { return; } if(this._endThumb != null && this._endThumb.hitTest(e.screenX,e.screenY) == true) { return; } this._slider.set_focus(true); e.screenX *= haxe_ui_Toolkit.get_scaleX(); e.screenY *= haxe_ui_Toolkit.get_scaleY(); e.cancel(); var coord = new haxe_ui_geom_Point(); coord.x = e.screenX - this._slider.get_screenLeft() - this._slider.get_paddingLeft() * haxe_ui_Toolkit.get_scaleX(); coord.y = e.screenY - this._slider.get_screenTop() - this._slider.get_paddingTop() * haxe_ui_Toolkit.get_scaleY(); var pos = this._slider.posFromCoord(coord); if(this._startThumb == null) { this._slider.set_pos(pos); this.startDrag(this._endThumb,this._endThumb.get_actualComponentWidth() / 2,this._endThumb.get_actualComponentHeight() / 2); return; } var builder = js_Boot.__cast(this._slider._compositeBuilder , haxe_ui_components_SliderBuilder); var d1 = this._slider.get_end() - this._slider.get_start(); var d2 = pos - this._slider.get_start(); if(d2 < d1 / 2) { pos -= builder.getStartOffset(); this._slider.set_start(pos); this.startDrag(this._startThumb,this._startThumb.get_actualComponentWidth() / 2,this._startThumb.get_actualComponentHeight() / 2); } else if(d2 >= d1 / 2) { pos -= builder.getStartOffset(); this._slider.set_end(pos); this.startDrag(this._endThumb,this._endThumb.get_actualComponentWidth() / 2,this._endThumb.get_actualComponentHeight() / 2); } else if(pos > this._slider.get_start()) { this._slider.set_end(pos); this.startDrag(this._endThumb,this._endThumb.get_actualComponentWidth() / 2,this._endThumb.get_actualComponentHeight() / 2); } else if(pos < this._slider.get_end()) { this._slider.set_start(pos); this.startDrag(this._startThumb,this._startThumb.get_actualComponentWidth() / 2,this._startThumb.get_actualComponentHeight() / 2); } } ,_offset: null ,onThumbMouseDown: function(e) { e.cancel(); this._slider.set_focus(true); this.startDrag(js_Boot.__cast(e.target , haxe_ui_components_Button),e.get_localX() * haxe_ui_Toolkit.get_scaleX(),e.get_localY() * haxe_ui_Toolkit.get_scaleX()); } ,startDrag: function(thumb,offsetX,offsetY) { this._offset = new haxe_ui_geom_Point(offsetX,offsetY); this._activeThumb = thumb; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); this._slider.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_START)); } ,onScreenMouseUp: function(e) { this._activeThumb = null; haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); this._slider.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_END)); } ,onScreenMouseMove: function(e) { e.screenX *= haxe_ui_Toolkit.get_scaleX(); e.screenY *= haxe_ui_Toolkit.get_scaleY(); var coord = new haxe_ui_geom_Point(); coord.x = e.screenX - this._slider.get_screenLeft() - this._offset.x - this._slider.get_paddingLeft() * haxe_ui_Toolkit.get_scaleX() + this._activeThumb.get_actualComponentWidth() / 2; coord.y = e.screenY - this._slider.get_screenTop() - this._offset.y - this._slider.get_paddingTop() * haxe_ui_Toolkit.get_scaleX() + this._activeThumb.get_actualComponentHeight() / 2; var pos = this._slider.posFromCoord(coord); var builder = js_Boot.__cast(this._slider._compositeBuilder , haxe_ui_components_SliderBuilder); if(this._activeThumb == this._startThumb) { pos -= builder.getStartOffset(); if(pos > this._slider.get_end()) { pos = this._slider.get_end(); } this._slider.set_start(pos); } else if(this._activeThumb == this._endThumb) { pos -= builder.getStartOffset(); this._slider.set_end(pos); } } ,repeats: null ,onActionStart: function(event) { var diff = 1.; switch(event.action) { case "actionDown":case "actionLeft": diff = -1; break; case "actionRight":case "actionUp": break; default: return; } this.repeats++; event.repeater = true; var step = 1.; if(this._slider.get_step() != null) { step = this._slider.get_step(); } var speed = step * this.repeats * this.repeats * this.repeats; var v = (this._slider.get_max() - this._slider.get_min()) / 6; var maxSpeed; if(!isFinite(v) || !isFinite(step)) { maxSpeed = NaN; } else { var e = 1; var p = 0; while(Math.abs(Math.round(v * e) / e - v) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(step * e) / e - step) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / step; var precision = p1; if(precision == null) { precision = 0; } maxSpeed = Math.round(Math.round(v * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); } if(speed > maxSpeed) { speed = maxSpeed; } var fh = this._slider; fh.set_value(fh.get_value() + diff * speed); if(this._slider.get_step() == null) { this._slider.set_value(Math.round(this._slider.get_value())); } } ,onActionEnd: function(event) { switch(event.action) { case "actionDown":case "actionLeft":case "actionRight":case "actionUp": this.repeats = 0; break; default: } } ,__class__: haxe_ui_components__$Slider_Events }); var haxe_ui_components_Spacer = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.components.Spacer"] = haxe_ui_components_Spacer; haxe_ui_components_Spacer.__name__ = "haxe.ui.components.Spacer"; haxe_ui_components_Spacer.__super__ = haxe_ui_core_Component; haxe_ui_components_Spacer.prototype = $extend(haxe_ui_core_Component.prototype,{ registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Spacer(); } ,__class__: haxe_ui_components_Spacer }); var haxe_ui_components_Spinner = function() { haxe_ui_components_AtlasPlayer.call(this); }; $hxClasses["haxe.ui.components.Spinner"] = haxe_ui_components_Spinner; haxe_ui_components_Spinner.__name__ = "haxe.ui.components.Spinner"; haxe_ui_components_Spinner.__super__ = haxe_ui_components_AtlasPlayer; haxe_ui_components_Spinner.prototype = $extend(haxe_ui_components_AtlasPlayer.prototype,{ createDefaults: function() { haxe_ui_components_AtlasPlayer.prototype.createDefaults.call(this); this.set_targetFrameRate(45); this.set_resource(haxe_ui_util_Variant.fromString("haxeui-core/styles/atlases/default-spinner.png")); this.set_atlas("haxeui-core/styles/atlases/default-spinner.json"); } ,registerBehaviours: function() { haxe_ui_components_AtlasPlayer.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_AtlasPlayer.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Spinner(); } ,__class__: haxe_ui_components_Spinner }); var haxe_ui_components_Stepper = function() { haxe_ui_containers_VBox.call(this); }; $hxClasses["haxe.ui.components.Stepper"] = haxe_ui_components_Stepper; haxe_ui_components_Stepper.__name__ = "haxe.ui.components.Stepper"; haxe_ui_components_Stepper.__interfaces__ = [haxe_ui_core_IValueComponent]; haxe_ui_components_Stepper.__super__ = haxe_ui_containers_VBox; haxe_ui_components_Stepper.prototype = $extend(haxe_ui_containers_VBox.prototype,{ increment: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("increment",null); } ,deincrement: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("deincrement",null); } ,registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$Stepper_Events; this._compositeBuilderClass = haxe_ui_components__$Stepper_Builder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("pos",haxe_ui_components__$Stepper_PosBehaviour); this.behaviours.register("step",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(1)); this.behaviours.register("min",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("max",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("precision",haxe_ui_behaviours_DefaultBehaviour,null); this.behaviours.register("repeater",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("repeatInterval",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(100)); this.behaviours.register("increment",haxe_ui_components__$Stepper_IncBehaviour); this.behaviours.register("deincrement",haxe_ui_components__$Stepper_DeincBehaviour); } ,get_pos: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("pos")); } ,set_pos: function(value) { this.behaviours.set("pos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pos")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_step: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("step")); } ,set_step: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("step",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"step")); return value; } ,get_min: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("min")); } ,set_min: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("min",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"min")); return value; } ,get_max: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("max")); } ,set_max: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("max",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"max")); return value; } ,get_precision: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toInt(this.behaviours.get("precision")); } ,set_precision: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("precision",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"precision")); return value; } ,get_repeater: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("repeater")); } ,set_repeater: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("repeater",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"repeater")); return value; } ,get_repeatInterval: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("repeatInterval")); } ,set_repeatInterval: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("repeatInterval",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"repeatInterval")); return value; } ,get_value: function() { return this.get_pos(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 3: this.set_pos(value == true ? 1 : 0); break; case 6: if(_g.c == String) { this.set_pos(parseFloat(value)); } else { this.set_pos(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_pos(haxe_ui_util_Variant.toFloat(v)); } else { this.set_pos(value); } break; default: this.set_pos(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); c.set_pos(this.get_pos()); c.set_step(this.get_step()); if(this.get_min() != null) { c.set_min(this.get_min()); } if(this.get_max() != null) { c.set_max(this.get_max()); } if(this.get_precision() != null) { c.set_precision(this.get_precision()); } c.set_repeater(this.get_repeater()); c.set_repeatInterval(this.get_repeatInterval()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Stepper(); } ,__class__: haxe_ui_components_Stepper ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_repeatInterval:"set_repeatInterval",get_repeatInterval:"get_repeatInterval",set_repeater:"set_repeater",get_repeater:"get_repeater",set_precision:"set_precision",get_precision:"get_precision",set_max:"set_max",get_max:"get_max",set_min:"set_min",get_min:"get_min",set_step:"set_step",get_step:"get_step",set_pos:"set_pos",get_pos:"get_pos"}) }); var haxe_ui_components__$Stepper_PosBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Stepper.PosBehaviour"] = haxe_ui_components__$Stepper_PosBehaviour; haxe_ui_components__$Stepper_PosBehaviour.__name__ = "haxe.ui.components._Stepper.PosBehaviour"; haxe_ui_components__$Stepper_PosBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Stepper_PosBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var stepper = js_Boot.__cast(this._component , haxe_ui_components_Stepper); var v = haxe_ui_util_Variant.toFloat(this._value); var min = stepper.get_min(); var max = stepper.get_max(); var v1; if(v == null || isNaN(v)) { v1 = min; } else { if(min != null && v < min) { v = min; } else if(max != null && v > max) { v = max; } v1 = v; } stepper.set_pos(v1); this._value = haxe_ui_util_Variant.fromFloat(v1); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); this._component.dispatch(event); } ,__class__: haxe_ui_components__$Stepper_PosBehaviour }); var haxe_ui_components__$Stepper_IncBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Stepper.IncBehaviour"] = haxe_ui_components__$Stepper_IncBehaviour; haxe_ui_components__$Stepper_IncBehaviour.__name__ = "haxe.ui.components._Stepper.IncBehaviour"; haxe_ui_components__$Stepper_IncBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Stepper_IncBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var stepper = js_Boot.__cast(this._component , haxe_ui_components_Stepper); var newPos = stepper.get_pos(); newPos += stepper.get_step(); if(stepper.get_max() != null && newPos > stepper.get_max()) { newPos = stepper.get_max(); } if(stepper.get_precision() != null) { var precision = stepper.get_precision(); if(precision == null) { precision = 0; } newPos = Math.round(newPos * Math.pow(10,precision)) / Math.pow(10,precision); } stepper.set_pos(newPos); return null; } ,__class__: haxe_ui_components__$Stepper_IncBehaviour }); var haxe_ui_components__$Stepper_DeincBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._Stepper.DeincBehaviour"] = haxe_ui_components__$Stepper_DeincBehaviour; haxe_ui_components__$Stepper_DeincBehaviour.__name__ = "haxe.ui.components._Stepper.DeincBehaviour"; haxe_ui_components__$Stepper_DeincBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$Stepper_DeincBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var stepper = js_Boot.__cast(this._component , haxe_ui_components_Stepper); var newPos = stepper.get_pos(); newPos -= stepper.get_step(); if(stepper.get_min() != null && newPos < stepper.get_min()) { newPos = stepper.get_min(); } if(stepper.get_precision() != null) { var precision = stepper.get_precision(); if(precision == null) { precision = 0; } newPos = Math.round(newPos * Math.pow(10,precision)) / Math.pow(10,precision); } stepper.set_pos(newPos); return null; } ,__class__: haxe_ui_components__$Stepper_DeincBehaviour }); var haxe_ui_components__$Stepper_Builder = function(stepper) { haxe_ui_core_CompositeBuilder.call(this,stepper); this._stepper = stepper; }; $hxClasses["haxe.ui.components._Stepper.Builder"] = haxe_ui_components__$Stepper_Builder; haxe_ui_components__$Stepper_Builder.__name__ = "haxe.ui.components._Stepper.Builder"; haxe_ui_components__$Stepper_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$Stepper_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _stepper: null ,create: function() { var button = new haxe_ui_components_Button(); button.set_styleNames("stepper-button stepper-inc"); button.set_id("stepper-inc"); button.set_repeater(this._stepper.get_repeater()); button.set_easeInRepeater(true); button.set_allowFocus(false); button.set_repeatInterval(this._stepper.get_repeatInterval()); this._stepper.addComponent(button); var button = new haxe_ui_components_Button(); button.set_styleNames("stepper-button stepper-deinc"); button.set_id("stepper-deinc"); button.set_repeater(this._stepper.get_repeater()); button.set_easeInRepeater(true); button.set_allowFocus(false); button.set_repeatInterval(this._stepper.get_repeatInterval()); this._stepper.addComponent(button); } ,__class__: haxe_ui_components__$Stepper_Builder }); var haxe_ui_components__$Stepper_Events = function(stepper) { haxe_ui_events_Events.call(this,stepper); this._stepper = stepper; }; $hxClasses["haxe.ui.components._Stepper.Events"] = haxe_ui_components__$Stepper_Events; haxe_ui_components__$Stepper_Events.__name__ = "haxe.ui.components._Stepper.Events"; haxe_ui_components__$Stepper_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$Stepper_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _stepper: null ,register: function() { var button = this._stepper.findComponent("stepper-inc",haxe_ui_components_Button); if(!button.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc))) { button.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); } var button = this._stepper.findComponent("stepper-deinc",haxe_ui_components_Button); if(!button.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc))) { button.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); } } ,unregister: function() { var button = this._stepper.findComponent("stepper-inc",haxe_ui_components_Button); button.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onInc)); var button = this._stepper.findComponent("stepper-deinc",haxe_ui_components_Button); button.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onDeinc)); } ,onInc: function(event) { this._stepper.increment(); } ,onDeinc: function(event) { this._stepper.deincrement(); } ,__class__: haxe_ui_components__$Stepper_Events }); var haxe_ui_components_Switch = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.components.Switch"] = haxe_ui_components_Switch; haxe_ui_components_Switch.__name__ = "haxe.ui.components.Switch"; haxe_ui_components_Switch.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_core_IValueComponent]; haxe_ui_components_Switch.__super__ = haxe_ui_core_Component; haxe_ui_components_Switch.prototype = $extend(haxe_ui_core_Component.prototype,{ registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$Switch_Builder; this._defaultLayoutClass = haxe_ui_layouts_HorizontalLayout; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("selected",haxe_ui_components__$Switch_SelectedBehaviour); this.behaviours.register("text",haxe_ui_components__$Switch_TextBehaviour); this.behaviours.register("textOn",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("textOff",haxe_ui_behaviours_DefaultBehaviour); } ,get_selected: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("selected")); } ,set_selected: function(value) { this.behaviours.set("selected",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selected")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_textOn: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("textOn")); } ,set_textOn: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"textOn",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("textOn",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"textOn")); return value; } ,get_textOff: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("textOff")); } ,set_textOff: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"textOff",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("textOff",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"textOff")); return value; } ,get_value: function() { return this.get_selected(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2: this.set_selected(value == 1); break; case 6: if(_g.c == String) { this.set_selected(value == "true" || value == "1"); } else { this.set_selected(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_selected(haxe_ui_util_Variant.toBool(v)); } else { this.set_selected(value); } break; default: this.set_selected(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); c.set_selected(this.get_selected()); if(this.get_textOn() != null) { c.set_textOn(this.get_textOn()); } if(this.get_textOff() != null) { c.set_textOff(this.get_textOff()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Switch(); } ,__class__: haxe_ui_components_Switch ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_textOff:"set_textOff",get_textOff:"get_textOff",set_textOn:"set_textOn",get_textOn:"get_textOn",set_selected:"set_selected",get_selected:"get_selected"}) }); var haxe_ui_components__$Switch_SelectedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Switch.SelectedBehaviour"] = haxe_ui_components__$Switch_SelectedBehaviour; haxe_ui_components__$Switch_SelectedBehaviour.__name__ = "haxe.ui.components._Switch.SelectedBehaviour"; haxe_ui_components__$Switch_SelectedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Switch_SelectedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { this._component.findComponent(null,haxe_ui_components__$Switch_SwitchButtonSub).set_selected(haxe_ui_util_Variant.toBool(this._value)); } ,__class__: haxe_ui_components__$Switch_SelectedBehaviour }); var haxe_ui_components__$Switch_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Switch.TextBehaviour"] = haxe_ui_components__$Switch_TextBehaviour; haxe_ui_components__$Switch_TextBehaviour.__name__ = "haxe.ui.components._Switch.TextBehaviour"; haxe_ui_components__$Switch_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Switch_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent(null,haxe_ui_components_Label,false); if(label == null) { label = new haxe_ui_components_Label(); label.set_styleNames("switch-label"); label.set_id("switch-label"); label.set_scriptAccess(false); this._component.addComponentAt(label,0); var spacer = new haxe_ui_components_Spacer(); spacer.set_percentWidth(100); this._component.addComponentAt(spacer,1); var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } label.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_components__$Switch_TextBehaviour }); var haxe_ui_components__$Switch_Builder = function(s) { haxe_ui_core_CompositeBuilder.call(this,s); this._switch = s; }; $hxClasses["haxe.ui.components._Switch.Builder"] = haxe_ui_components__$Switch_Builder; haxe_ui_components__$Switch_Builder.__name__ = "haxe.ui.components._Switch.Builder"; haxe_ui_components__$Switch_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$Switch_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _switch: null ,_button: null ,_label: null ,create: function() { var _gthis = this; if(this._button == null) { this._button = new haxe_ui_components__$Switch_SwitchButtonSub(); this._button.set_onChange(function(e) { _gthis._switch.set_selected(_gthis._button.get_selected()); _gthis._switch.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); }); this._component.addComponent(this._button); } } ,__class__: haxe_ui_components__$Switch_Builder }); var haxe_ui_components__$Switch_SwitchButtonSub = function() { this._pos = 0; this._unselectedText = ""; this._selectedText = ""; this._selected = false; haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components._Switch.SwitchButtonSub"] = haxe_ui_components__$Switch_SwitchButtonSub; haxe_ui_components__$Switch_SwitchButtonSub.__name__ = "haxe.ui.components._Switch.SwitchButtonSub"; haxe_ui_components__$Switch_SwitchButtonSub.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components__$Switch_SwitchButtonSub.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ _button: null ,_label: null ,createChildren: function() { var _gthis = this; haxe_ui_core_InteractiveComponent.prototype.createChildren.call(this); if(this._button == null) { var component = new haxe_ui_core_Component(); component.addClass("switch-button-sub-extra"); this.addComponent(component); this._label = new haxe_ui_components_Label(); this._label.set_id("switch-label"); this._label.addClass("switch-label"); this._label.set_text(this._unselectedText); this.addComponent(this._label); this._button = new haxe_ui_components_Button(); this._button.set_id("switch-button"); this._button.addClass("switch-button"); this.addComponent(this._button); this.set_onClick(function(e) { _gthis.set_selected(!_gthis.get_selected()); }); } } ,_selected: null ,get_selected: function() { return this._selected; } ,set_selected: function(value) { if(value == this._selected) { return value; } this.invalidateComponent("data",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } this._selected = value; if(this._selected == false) { this._label.set_text(this._unselectedText); this._label.removeClass(":selected"); this.removeClass(":selected",true,true); this.addClass(":unselected",true,true); } else { this._label.set_text(this._selectedText); this._label.addClass(":selected"); this.removeClass(":unselected",true,true); this.addClass(":selected",true,true); } var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); this.dispatch(event); return value; } ,_selectedText: null ,get_selectedText: function() { return this._selectedText; } ,set_selectedText: function(value) { this._selectedText = value; if(this._componentReady && this._selected == true) { this._label.set_text(this._selectedText); } return value; } ,_unselectedText: null ,get_unselectedText: function() { return this._unselectedText; } ,set_unselectedText: function(value) { this._unselectedText = value; if(this._componentReady && this._selected == false) { this._label.set_text(this._unselectedText); } return value; } ,_pos: null ,get_pos: function() { return this._pos; } ,set_pos: function(value) { if(this._pos == value) { return value; } this._pos = value; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); c.set_selected(this.get_selected()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components__$Switch_SwitchButtonSub(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components__$Switch_SwitchButtonLayout; } ,__class__: haxe_ui_components__$Switch_SwitchButtonSub ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_pos:"set_pos",get_pos:"get_pos",set_unselectedText:"set_unselectedText",get_unselectedText:"get_unselectedText",set_selectedText:"set_selectedText",get_selectedText:"get_selectedText",set_selected:"set_selected",get_selected:"get_selected"}) }); var haxe_ui_components__$Switch_SwitchButtonLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._Switch.SwitchButtonLayout"] = haxe_ui_components__$Switch_SwitchButtonLayout; haxe_ui_components__$Switch_SwitchButtonLayout.__name__ = "haxe.ui.components._Switch.SwitchButtonLayout"; haxe_ui_components__$Switch_SwitchButtonLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$Switch_SwitchButtonLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { var switchComp = js_Boot.__cast(this._component , haxe_ui_components__$Switch_SwitchButtonSub); var button = switchComp.findComponent("switch-button"); var label = switchComp.findComponent("switch-label"); if(button == null || label == null) { return; } button.set_top(this.get_paddingTop()); label.set_top(this.get_component().get_componentHeight() / 2 - label.get_componentHeight() / 2); if(switchComp.get_selected() == true) { label.set_left(button.get_componentWidth() / 2 - label.get_componentWidth() / 2); } else { label.set_left(button.get_left() + button.get_componentWidth() + button.get_componentWidth() / 2 - label.get_componentWidth() / 2); } var ucx = this.get_usableWidth() - button.get_width(); var min = 0; var max = 100; var x = (switchComp.get_pos() - min) / (max - min) * ucx; button.set_left(this.get_paddingLeft() + x); var extra = switchComp.findComponent("switch-button-sub-extra",null,null,"css"); if(extra != null) { extra.set_top(this._component.get_height() / 2 - extra.get_height() / 2); } } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$Switch_SwitchButtonLayout(); } ,__class__: haxe_ui_components__$Switch_SwitchButtonLayout }); var haxe_ui_components_TabBar = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.components.TabBar"] = haxe_ui_components_TabBar; haxe_ui_components_TabBar.__name__ = "haxe.ui.components.TabBar"; haxe_ui_components_TabBar.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent]; haxe_ui_components_TabBar.__super__ = haxe_ui_core_Component; haxe_ui_components_TabBar.prototype = $extend(haxe_ui_core_Component.prototype,{ removeTab: function(index) { if(this.behaviours == null) { return null; } return this.behaviours.call("removeTab",index); } ,getTab: function(index) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("getTab",index)); } ,tabButtons: null ,get_tabButtons: function() { var container = this.findComponent("tabbar-contents",null,false); return container.findComponents(null,haxe_ui_components_Button,1); } ,registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$TabBar_Builder; this._internalEventsClass = haxe_ui_components__$TabBar_Events; this._defaultLayoutClass = haxe_ui_components_TabBarLayout; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("selectedIndex",haxe_ui_components__$TabBar_SelectedIndex,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedTab",haxe_ui_components__$TabBar_SelectedTab); this.behaviours.register("tabPosition",haxe_ui_components__$TabBar_TabPosition,haxe_ui_util_Variant.fromString("top")); this.behaviours.register("tabCount",haxe_ui_components__$TabBar_TabCount); this.behaviours.register("closable",haxe_ui_components__$TabBar_Closable,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("buttonWidth",haxe_ui_components__$TabBar_ButtonWidth,null); this.behaviours.register("buttonHeight",haxe_ui_components__$TabBar_ButtonHeight,null); this.behaviours.register("removeTab",haxe_ui_components__$TabBar_RemoveTab); this.behaviours.register("getTab",haxe_ui_components__$TabBar_GetTab); } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); return value; } ,get_selectedTab: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedTab")); } ,set_selectedTab: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedTab",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedTab")); return value; } ,get_tabPosition: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("tabPosition")); } ,set_tabPosition: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"tabPosition",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("tabPosition",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"tabPosition")); return value; } ,get_tabCount: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("tabCount")); } ,set_tabCount: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("tabCount",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"tabCount")); return value; } ,get_closable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("closable")); } ,set_closable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("closable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"closable")); return value; } ,get_buttonWidth: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("buttonWidth")); } ,set_buttonWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("buttonWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"buttonWidth")); return value; } ,get_buttonHeight: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("buttonHeight")); } ,set_buttonHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("buttonHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"buttonHeight")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_TabBar(); } ,__class__: haxe_ui_components_TabBar ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_buttonHeight:"set_buttonHeight",get_buttonHeight:"get_buttonHeight",set_buttonWidth:"set_buttonWidth",get_buttonWidth:"get_buttonWidth",set_closable:"set_closable",get_closable:"get_closable",set_tabCount:"set_tabCount",get_tabCount:"get_tabCount",set_tabPosition:"set_tabPosition",get_tabPosition:"get_tabPosition",set_selectedTab:"set_selectedTab",get_selectedTab:"get_selectedTab",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",get_tabButtons:"get_tabButtons"}) }); var haxe_ui_components_TabBarLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); this._roundFullWidths = true; }; $hxClasses["haxe.ui.components.TabBarLayout"] = haxe_ui_components_TabBarLayout; haxe_ui_components_TabBarLayout.__name__ = "haxe.ui.components.TabBarLayout"; haxe_ui_components_TabBarLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_TabBarLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var filler = this._component.findComponent("tabbar-filler",null,false); var container = this._component.findComponent("tabbar-contents",null,false); if(filler != null) { filler.set_width(this._component.get_width() - container.get_width()); filler.set_height(this._component.get_height()); filler.set_left(container.get_width()); } var leftFiller = this._component.findComponent("tabbar-filler-left",null,false); if(leftFiller != null) { leftFiller.set_height(this._component.get_height()); } var rightFiller = this._component.findComponent("tabbar-filler-right",null,false); if(rightFiller != null) { rightFiller.set_left(this._component.get_width() - rightFiller.get_width()); rightFiller.set_height(this._component.get_height()); } var max = 0; var _g = 0; var _g1 = container._children == null ? [] : container._children; while(_g < _g1.length) { var button = _g1[_g]; ++_g; button.validateNow(); if(button.get_componentHeight() > max) { max = button.get_componentHeight(); } } if(max > 0) { var _g = 0; var _g1 = container._children == null ? [] : container._children; while(_g < _g1.length) { var button = _g1[_g]; ++_g; button.set_componentHeight(max); } } var left = this._component.findComponent("tabbar-scroll-left",null,false); var right = this._component.findComponent("tabbar-scroll-right",null,false); if(left != null && this.hidden(left) == false) { var x = this._component.get_width() - left.get_width(); if(right != null) { x -= right.get_width(); } if(left.get_style() == null) { left.validateNow(); } left.set_left(x - left.get_style().marginLeft); left.set_top(this._component.get_height() / 2 - left.get_height() / 2); } if(right != null && this.hidden(right) == false) { right.set_left(this._component.get_width() - right.get_width() - right.get_marginLeft()); right.set_top(this._component.get_height() / 2 - right.get_height() / 2); } } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this); var max = 0; var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_components__$TabBar_TabBarButton); while(_g < _g1.length) { var b = _g1[_g]; ++_g; if(b.get_height() > max) { max = b.get_height(); } } size.height = max; return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_TabBarLayout(); } ,__class__: haxe_ui_components_TabBarLayout }); var haxe_ui_components__$TabBar_Closable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.Closable"] = haxe_ui_components__$TabBar_Closable; haxe_ui_components__$TabBar_Closable.__name__ = "haxe.ui.components._TabBar.Closable"; haxe_ui_components__$TabBar_Closable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TabBar_Closable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); if(builder._container == null) { return; } var buttons = builder._container.findComponents(null,haxe_ui_components__$TabBar_TabBarButton,1); var _g = 0; while(_g < buttons.length) { var b = buttons[_g]; ++_g; b.set_closable(haxe_ui_util_Variant.toBool(this._value)); } } ,__class__: haxe_ui_components__$TabBar_Closable }); var haxe_ui_components__$TabBar_SelectedIndex = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.SelectedIndex"] = haxe_ui_components__$TabBar_SelectedIndex; haxe_ui_components__$TabBar_SelectedIndex.__name__ = "haxe.ui.components._TabBar.SelectedIndex"; haxe_ui_components__$TabBar_SelectedIndex.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TabBar_SelectedIndex.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); if(builder._container == null) { return; } if(haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromInt(0))) { return; } var _this = builder._container; if(haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromInt((_this._children == null ? [] : _this._children).length - 1))) { var _this = builder._container; this._value = haxe_ui_util_Variant.fromInt((_this._children == null ? [] : _this._children).length - 1); return; } var beforeChangeEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.BEFORE_CHANGE); beforeChangeEvent.value = this._value; this._component.dispatch(beforeChangeEvent); if(beforeChangeEvent.canceled) { this._value = this._previousValue; return; } var tab = js_Boot.__cast(builder._container.getComponentAt(haxe_ui_util_Variant.toInt(this._value)) , haxe_ui_components_Button); if(tab != null) { var selectedTab = (js_Boot.__cast(this._component , haxe_ui_components_TabBar)).get_selectedTab(); if(selectedTab != null) { selectedTab.removeClass("tabbar-button-selected"); var force = false; var recursive = true; if(recursive == null) { recursive = false; } if(force == null) { force = false; } selectedTab.invalidateComponent("style",recursive); if(force == true) { selectedTab._style = null; } var label = selectedTab.findComponent(null,haxe_ui_components_Label); if(label != null) { label.invalidateComponent(); } var icon = selectedTab.findComponent(null,haxe_ui_components_Image); if(icon != null) { icon.invalidateComponent(); } } tab.addClass("tabbar-button-selected"); var force = false; var recursive = true; if(recursive == null) { recursive = false; } if(force == null) { force = false; } tab.invalidateComponent("style",recursive); if(force == true) { tab._style = null; } var label = tab.findComponent(null,haxe_ui_components_Label); if(label != null) { label.invalidateComponent(); } var icon = tab.findComponent(null,haxe_ui_components_Image); if(icon != null) { icon.invalidateComponent(); } var rangeMin = Math.abs(builder._container.get_left()); var rangeMax = rangeMin + this._component.get_width(); var left = this._component.findComponent("tabbar-scroll-left",haxe_ui_components_Button); var right = this._component.findComponent("tabbar-scroll-right",haxe_ui_components_Button); if(left != null && left.get_hidden() == false) { rangeMax -= left.get_width(); rangeMax -= this._component.get_layout().get_horizontalSpacing(); } if(right != null && right.get_hidden() == false) { rangeMax -= right.get_width(); } if(tab.get_left() < rangeMin || tab.get_left() + tab.get_width() > rangeMax) { var max = -(builder._container.get_width() - this._component.get_width()); var x = -tab.get_left() + this._component.get_layout().get_paddingLeft(); if(left != null && left.get_hidden() == false) { max -= left.get_width(); max -= this._component.get_layout().get_horizontalSpacing(); } if(right != null && right.get_hidden() == false) { max -= right.get_width(); } if(x < max) { x = max; } builder._containerPosition = x; builder._container.set_left(x); builder.checkLeftRightFillers(); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } } ,__class__: haxe_ui_components__$TabBar_SelectedIndex }); var haxe_ui_components__$TabBar_SelectedTab = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.SelectedTab"] = haxe_ui_components__$TabBar_SelectedTab; haxe_ui_components__$TabBar_SelectedTab.__name__ = "haxe.ui.components._TabBar.SelectedTab"; haxe_ui_components__$TabBar_SelectedTab.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TabBar_SelectedTab.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ get: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); return haxe_ui_util_Variant.fromComponent(builder._container.findComponent("tabbar-button-selected",null,false,"css")); } ,__class__: haxe_ui_components__$TabBar_SelectedTab }); var haxe_ui_components__$TabBar_TabPosition = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.TabPosition"] = haxe_ui_components__$TabBar_TabPosition; haxe_ui_components__$TabBar_TabPosition.__name__ = "haxe.ui.components._TabBar.TabPosition"; haxe_ui_components__$TabBar_TabPosition.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TabBar_TabPosition.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromString("bottom"))) { this._component.addClass(":bottom"); var _g = 0; var _this = builder._container; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.addClass(":bottom"); } } else { this._component.removeClass(":bottom"); var _g = 0; var _this = builder._container; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClass(":bottom"); } } } ,__class__: haxe_ui_components__$TabBar_TabPosition }); var haxe_ui_components__$TabBar_TabCount = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.TabCount"] = haxe_ui_components__$TabBar_TabCount; haxe_ui_components__$TabBar_TabCount.__name__ = "haxe.ui.components._TabBar.TabCount"; haxe_ui_components__$TabBar_TabCount.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$TabBar_TabCount.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); var _this = builder._container; return haxe_ui_util_Variant.fromInt((_this._children == null ? [] : _this._children).length); } ,__class__: haxe_ui_components__$TabBar_TabCount }); var haxe_ui_components__$TabBar_RemoveTab = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.RemoveTab"] = haxe_ui_components__$TabBar_RemoveTab; haxe_ui_components__$TabBar_RemoveTab.__name__ = "haxe.ui.components._TabBar.RemoveTab"; haxe_ui_components__$TabBar_RemoveTab.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$TabBar_RemoveTab.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); var index = param; var _this = builder._container; if(index < (_this._children == null ? [] : _this._children).length) { var selectedIndex = (js_Boot.__cast(this._component , haxe_ui_components_TabBar)).get_selectedIndex(); var newSelectedIndex = selectedIndex; if(index < selectedIndex) { --newSelectedIndex; } else if(index == selectedIndex) { (js_Boot.__cast(this._component , haxe_ui_components_TabBar)).set_selectedIndex(-1); newSelectedIndex = selectedIndex; var _this = builder._container; if(newSelectedIndex > (_this._children == null ? [] : _this._children).length - 2) { var _this = builder._container; newSelectedIndex = (_this._children == null ? [] : _this._children).length - 2; } } var removedButton = builder._container.removeComponentAt(index); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CLOSE,null,index); event.target = removedButton; this._component.dispatch(event); (js_Boot.__cast(this._component , haxe_ui_components_TabBar)).set_selectedIndex(newSelectedIndex); } return null; } ,__class__: haxe_ui_components__$TabBar_RemoveTab }); var haxe_ui_components__$TabBar_GetTab = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.GetTab"] = haxe_ui_components__$TabBar_GetTab; haxe_ui_components__$TabBar_GetTab.__name__ = "haxe.ui.components._TabBar.GetTab"; haxe_ui_components__$TabBar_GetTab.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$TabBar_GetTab.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_components__$TabBar_Builder); var index = param; var tab = null; var _this = builder._container; if(index < (_this._children == null ? [] : _this._children).length) { var _this = builder._container; tab = (_this._children == null ? [] : _this._children)[index]; } return haxe_ui_util_Variant.fromComponent(tab); } ,__class__: haxe_ui_components__$TabBar_GetTab }); var haxe_ui_components__$TabBar_ButtonWidth = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.ButtonWidth"] = haxe_ui_components__$TabBar_ButtonWidth; haxe_ui_components__$TabBar_ButtonWidth.__name__ = "haxe.ui.components._TabBar.ButtonWidth"; haxe_ui_components__$TabBar_ButtonWidth.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TabBar_ButtonWidth.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { return; } var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_components_Button); while(_g < _g1.length) { var b = _g1[_g]; ++_g; b.set_width(haxe_ui_util_Variant.toFloat(this._value)); } } ,__class__: haxe_ui_components__$TabBar_ButtonWidth }); var haxe_ui_components__$TabBar_ButtonHeight = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TabBar.ButtonHeight"] = haxe_ui_components__$TabBar_ButtonHeight; haxe_ui_components__$TabBar_ButtonHeight.__name__ = "haxe.ui.components._TabBar.ButtonHeight"; haxe_ui_components__$TabBar_ButtonHeight.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TabBar_ButtonHeight.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { return; } var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_components_Button); while(_g < _g1.length) { var b = _g1[_g]; ++_g; b.set_height(haxe_ui_util_Variant.toFloat(this._value)); } } ,__class__: haxe_ui_components__$TabBar_ButtonHeight }); var haxe_ui_components__$TabBar_Events = function(tabbar) { haxe_ui_events_Events.call(this,tabbar); this._tabbar = tabbar; }; $hxClasses["haxe.ui.components._TabBar.Events"] = haxe_ui_components__$TabBar_Events; haxe_ui_components__$TabBar_Events.__name__ = "haxe.ui.components._TabBar.Events"; haxe_ui_components__$TabBar_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$TabBar_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _tabbar: null ,register: function() { var builder = js_Boot.__cast(this._tabbar._compositeBuilder , haxe_ui_components__$TabBar_Builder); var _g = 0; var _this = builder._container; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var t = _g1[_g]; ++_g; if(t.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onTabMouseDown)) == false) { t.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onTabMouseDown)); } } this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); } ,unregister: function() { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); } ,onMouseWheel: function(event) { var builder = js_Boot.__cast(this._tabbar._compositeBuilder , haxe_ui_components__$TabBar_Builder); if(builder._scrollLeft == null || builder._scrollLeft.get_hidden() == true) { return; } if(event.delta < 0) { builder.scrollRight(); } else { builder.scrollLeft(); } event.cancel(); } ,onTabMouseDown: function(event) { var builder = js_Boot.__cast(this._tabbar._compositeBuilder , haxe_ui_components__$TabBar_Builder); var button = event.target; var close = button.findComponent("tab-close-button",haxe_ui_components_Image,false); var select = true; if(close != null) { select = !close.hitTest(event.screenX,event.screenY); } if(select == true) { this._tabbar.set_selectedIndex(builder._container.getComponentIndex(button)); } } ,__class__: haxe_ui_components__$TabBar_Events }); var haxe_ui_components__$TabBar_Builder = function(tabbar) { this._childToButtonMap = new haxe_ds_ObjectMap(); haxe_ui_core_CompositeBuilder.call(this,tabbar); this._tabbar = tabbar; this.createContainer(); }; $hxClasses["haxe.ui.components._TabBar.Builder"] = haxe_ui_components__$TabBar_Builder; haxe_ui_components__$TabBar_Builder.__name__ = "haxe.ui.components._TabBar.Builder"; haxe_ui_components__$TabBar_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$TabBar_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _tabbar: null ,_container: null ,_filler: null ,create: function() { this.createContainer(); } ,createContainer: function() { if(this._filler == null) { this._filler = new haxe_ui_containers_Box(); this._filler.set_id("tabbar-filler"); this._filler.addClass("tabbar-filler"); this._filler.set_scriptAccess(false); this._filler.set_includeInLayout(false); this._tabbar.addComponent(this._filler); } if(this._container == null) { this._container = new haxe_ui_containers_HBox(); this._container.set_id("tabbar-contents"); this._container.addClass("tabbar-contents"); this._tabbar.addComponent(this._container); } } ,addTab: function(child) { var button = this.createTabBarButton(child); var v = this._container.addComponent(button); this._tabbar.registerInternalEvents(haxe_ui_components__$TabBar_Events,true); if(this._tabbar.get_selectedIndex() < 0) { this._tabbar.set_selectedIndex(0); } return v; } ,addTabAt: function(child,index) { var button = this.createTabBarButton(child); var v = this._container.addComponentAt(button,index); this._tabbar.registerInternalEvents(haxe_ui_components__$TabBar_Events,true); if(this._tabbar.get_selectedIndex() < 0) { this._tabbar.set_selectedIndex(0); } else if(index <= this._tabbar.get_selectedIndex()) { var fh = this._tabbar; fh.set_selectedIndex(fh.get_selectedIndex() + 1); } return v; } ,_childToButtonMap: null ,createTabBarButton: function(child) { var button = new haxe_ui_components__$TabBar_TabBarButton(); button.addClass("tabbar-button"); if(this._tabbar.get_tabPosition() == "bottom") { button.addClass(":bottom"); } if(child.get_disabled() == true) { button.set_disabled(child.get_disabled()); } button.set_id(child.get_id()); button.set_text(child.get_text()); button.set_tooltip(child.get_tooltip()); button.userData = child.userData; if(((child) instanceof haxe_ui_components_Button)) { button.set_icon((js_Boot.__cast(child , haxe_ui_components_Button)).get_icon()); } button.set_closable(this._tabbar.get_closable()); if(this._tabbar.get_buttonWidth() != null) { button.set_componentWidth(this._tabbar.get_buttonWidth()); } if(this._tabbar.get_buttonHeight() != null) { button.set_componentHeight(this._tabbar.get_buttonHeight()); } if(child.get_styleNames() != null) { button.set_styleNames(child.get_styleNames()); } this._childToButtonMap.set(child,button); child.registerEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onButtonPropertyChange)); return button; } ,onButtonPropertyChange: function(event) { if(event.data == "text") { var button = this._childToButtonMap.h[event.target.__id__]; if(button != null) { button.set_text(event.target.get_text()); } } } ,get_numComponents: function() { return this._container.get_numComponents(); } ,addComponent: function(child) { if(child != this._container && child != this._scrollLeft && child != this._scrollRight && child != this._filler && child.get_id() != "tabbar-filler-left" && child.get_id() != "tabbar-filler-right") { return this.addTab(child); } return null; } ,addComponentAt: function(child,index) { if(child != this._container && child != this._scrollLeft && child != this._scrollRight && child != this._filler && child.get_id() != "tabbar-filler-left" && child.get_id() != "tabbar-filler-right") { return this.addTabAt(child,index); } return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(child != this._container && child != this._scrollLeft && child != this._scrollRight && child != this._filler && child.get_id() != "tabbar-filler-left" && child.get_id() != "tabbar-filler-right") { var index = this._container.getComponentIndex(child); if(index != -1) { this._tabbar.removeTab(index); return child; } } return null; } ,removeComponentAt: function(index,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } var child = this._container.getComponentAt(index); if(child != null) { this._tabbar.removeTab(index); } return child; } ,getComponentIndex: function(child) { if(child != this._container && child != this._scrollLeft && child != this._scrollRight && child != this._filler && child.get_id() != "tabbar-filler-left" && child.get_id() != "tabbar-filler-right") { return this._container.getComponentIndex(child); } return -1; } ,setComponentIndex: function(child,index) { if(child != this._container && child != this._scrollLeft && child != this._scrollRight && child != this._filler && child.get_id() != "tabbar-filler-left" && child.get_id() != "tabbar-filler-right") { return this._container.setComponentIndex(child,index); } return null; } ,getComponentAt: function(index) { return this._container.getComponentAt(index); } ,validateComponentLayout: function() { if(this._tabbar.get_native() == true || this._container == null) { return false; } if(this._containerPosition == null) { this._containerPosition = this._tabbar.get_layout().get_paddingLeft(); } if(this._container.get_width() > this._tabbar.get_layout().get_usableWidth() && this._tabbar.get_layout().get_usableWidth() > 0) { this.showScrollButtons(); this._container.set_left(this._containerPosition); } else { this.hideScrollButtons(); this._containerPosition = null; } this.checkLeftRightFillers(); return true; } ,_scrollLeft: null ,_scrollRight: null ,showScrollButtons: function() { var _gthis = this; if(this._scrollLeft == null) { this._scrollLeft = new haxe_ui_components_Button(); this._scrollLeft.set_id("tabbar-scroll-left"); this._scrollLeft.addClass("tabbar-scroll-left"); this._scrollLeft.set_includeInLayout(false); this._scrollLeft.set_repeater(true); this._tabbar.addComponent(this._scrollLeft); this._scrollLeft.set_onClick(function(e) { _gthis.scrollLeft(); }); } else { this._scrollLeft.show(); } if(this._scrollRight == null) { this._scrollRight = new haxe_ui_components_Button(); this._scrollRight.set_id("tabbar-scroll-right"); this._scrollRight.addClass("tabbar-scroll-right"); this._scrollRight.set_includeInLayout(false); this._scrollRight.set_repeater(true); this._tabbar.addComponent(this._scrollRight); this._scrollRight.set_onClick(function(e) { _gthis.scrollRight(); }); } else { this._scrollRight.show(); } } ,_containerPosition: null ,scrollLeft: function() { if(this._scrollLeft == null || this._scrollLeft.get_hidden() == true) { return; } var x = this._container.get_left() + 20; if(x > this._tabbar.get_layout().get_paddingLeft()) { x = this._tabbar.get_layout().get_paddingLeft(); } this._containerPosition = x; this._container.set_left(x); this.checkLeftRightFillers(); } ,checkLeftRightFillers: function() { var leftFiller = this._tabbar.findComponent("tabbar-filler-left",null,false); if(this._containerPosition < 0) { if(leftFiller == null) { leftFiller = new haxe_ui_containers_Box(); leftFiller.set_id("tabbar-filler-left"); leftFiller.addClass("tabbar-filler-left"); leftFiller.set_scriptAccess(false); leftFiller.set_includeInLayout(false); this._tabbar.addComponent(leftFiller); } leftFiller.show(); } else if(leftFiller != null) { leftFiller.hide(); } var rightFiller = this._tabbar.findComponent("tabbar-filler-right",null,false); var max = -(this._container.get_width() - this._tabbar.get_width()); if(this._containerPosition > max) { if(rightFiller == null) { rightFiller = new haxe_ui_containers_Box(); rightFiller.set_id("tabbar-filler-right"); rightFiller.addClass("tabbar-filler-right"); rightFiller.set_scriptAccess(false); rightFiller.set_includeInLayout(false); this._tabbar.addComponent(rightFiller); } rightFiller.show(); } else if(rightFiller != null) { rightFiller.hide(); } } ,scrollRight: function() { if(this._scrollLeft == null || this._scrollLeft.get_hidden() == true) { return; } var x = this._container.get_left() - 20; var max = -(this._container.get_width() - this._tabbar.get_width()); var left = this._tabbar.findComponent("tabbar-scroll-left",haxe_ui_components_Button); var right = this._tabbar.findComponent("tabbar-scroll-right",haxe_ui_components_Button); if(left != null && left.get_hidden() == false) { max -= left.get_width(); max -= this._tabbar.get_layout().get_horizontalSpacing(); } if(right != null && right.get_hidden() == false) { max -= right.get_width(); } if(x < max) { x = max; } this._containerPosition = x; this._container.set_left(x); this.checkLeftRightFillers(); } ,hideScrollButtons: function() { if(this._scrollLeft != null) { this._scrollLeft.hide(); } if(this._scrollRight != null) { this._scrollRight.hide(); } } ,applyStyle: function(style) { haxe_ui_core_CompositeBuilder.prototype.applyStyle.call(this,style); var list = this._component.findComponents(null,haxe_ui_components_Button,16777215); var _g = 0; while(_g < list.length) { var c = list[_g]; ++_g; var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(style.fontBold != null && c.get_customStyle().fontBold != style.fontBold) { c.get_customStyle().fontBold = style.fontBold; invalidate = true; } if(style.fontUnderline != null && c.get_customStyle().fontUnderline != style.fontUnderline) { c.get_customStyle().fontUnderline = style.fontUnderline; invalidate = true; } if(style.fontItalic != null && c.get_customStyle().fontItalic != style.fontItalic) { c.get_customStyle().fontItalic = style.fontItalic; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } } ,__class__: haxe_ui_components__$TabBar_Builder }); var haxe_ui_components__$TabBar_TabBarButton = function() { this._closable = false; haxe_ui_components_Button.call(this); }; $hxClasses["haxe.ui.components._TabBar.TabBarButton"] = haxe_ui_components__$TabBar_TabBarButton; haxe_ui_components__$TabBar_TabBarButton.__name__ = "haxe.ui.components._TabBar.TabBarButton"; haxe_ui_components__$TabBar_TabBarButton.__super__ = haxe_ui_components_Button; haxe_ui_components__$TabBar_TabBarButton.prototype = $extend(haxe_ui_components_Button.prototype,{ _closable: null ,get_closable: function() { return this._closable; } ,set_closable: function(value) { if(this._closable == value) { return value; } this._closable = value; var existing = this.findComponent("tab-close-button",haxe_ui_components_Image,false); var events = js_Boot.__cast(this._internalEvents , haxe_ui_components_ButtonEvents); events.recursiveStyling = false; if(this._closable == true && existing == null) { this.set_iconPosition("far-left"); var image = new haxe_ui_components_Image(); image.set_id("tab-close-button"); image.addClass("tab-close-button"); image.set_includeInLayout(false); image.set_scriptAccess(false); image.set_onClick($bind(this,this.onCloseClicked)); this.addComponent(image); } else if(existing != null) { this.removeComponent(existing); } return value; } ,onCloseClicked: function(e) { var tabbar = this.findAncestor(null,haxe_ui_components_TabBar); var builder = js_Boot.__cast(tabbar._compositeBuilder , haxe_ui_components__$TabBar_Builder); var index = builder._container.getComponentIndex(this); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE,null,index); tabbar.dispatch(event); if(event.canceled == false) { if(index != -1) { tabbar.removeTab(index); } } } ,registerComposite: function() { haxe_ui_components_Button.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components__$TabBar_TabBarButtonLayout; } ,registerBehaviours: function() { haxe_ui_components_Button.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Button.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components__$TabBar_TabBarButton(); } ,__class__: haxe_ui_components__$TabBar_TabBarButton ,__properties__: $extend(haxe_ui_components_Button.prototype.__properties__,{set_closable:"set_closable",get_closable:"get_closable"}) }); var haxe_ui_components__$TabBar_TabBarButtonLayout = function() { haxe_ui_components_ButtonLayout.call(this); }; $hxClasses["haxe.ui.components._TabBar.TabBarButtonLayout"] = haxe_ui_components__$TabBar_TabBarButtonLayout; haxe_ui_components__$TabBar_TabBarButtonLayout.__name__ = "haxe.ui.components._TabBar.TabBarButtonLayout"; haxe_ui_components__$TabBar_TabBarButtonLayout.__super__ = haxe_ui_components_ButtonLayout; haxe_ui_components__$TabBar_TabBarButtonLayout.prototype = $extend(haxe_ui_components_ButtonLayout.prototype,{ repositionChildren: function() { haxe_ui_components_ButtonLayout.prototype.repositionChildren.call(this); var image = this._component.findComponent("tab-close-button",haxe_ui_components_Image,false); if(image != null && image.get_hidden() == false && this.get_component().get_componentWidth() > 0) { image.set_top((this.get_component().get_componentHeight() / 2 - image.get_componentHeight() / 2 | 0) + this.marginTop(image) - this.marginBottom(image)); image.set_left(this.get_component().get_componentWidth() - image.get_componentWidth() - this.get_paddingRight() + this.marginLeft(image) - this.marginRight(image)); } } ,calcAutoSize: function(exclusions) { var size = haxe_ui_components_ButtonLayout.prototype.calcAutoSize.call(this,exclusions); var image = this._component.findComponent("tab-close-button",haxe_ui_components_Image,false); if(image != null && image.get_hidden() == false) { size.width += image.get_width() + this.get_horizontalSpacing(); } return size; } ,cloneLayout: function() { var c = haxe_ui_components_ButtonLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$TabBar_TabBarButtonLayout(); } ,__class__: haxe_ui_components__$TabBar_TabBarButtonLayout }); var haxe_ui_components_Tag = function() { haxe_ui_containers_HBox.call(this); }; $hxClasses["haxe.ui.components.Tag"] = haxe_ui_components_Tag; haxe_ui_components_Tag.__name__ = "haxe.ui.components.Tag"; haxe_ui_components_Tag.__super__ = haxe_ui_containers_HBox; haxe_ui_components_Tag.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerComposite: function() { haxe_ui_containers_HBox.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$Tag_Builder; } ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_components__$Tag_TextBehaviour); this.behaviours.register("closable",haxe_ui_components__$Tag_Closable,haxe_ui_util_Variant.fromBool(true)); } ,get_closable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("closable")); } ,set_closable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("closable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"closable")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); c.set_closable(this.get_closable()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_Tag(); } ,__class__: haxe_ui_components_Tag ,__properties__: $extend(haxe_ui_containers_HBox.prototype.__properties__,{set_closable:"set_closable",get_closable:"get_closable"}) }); var haxe_ui_components__$Tag_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Tag.TextBehaviour"] = haxe_ui_components__$Tag_TextBehaviour; haxe_ui_components__$Tag_TextBehaviour.__name__ = "haxe.ui.components._Tag.TextBehaviour"; haxe_ui_components__$Tag_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Tag_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent(null,haxe_ui_components_Label,false); if(label != null) { label.set_text(haxe_ui_util_Variant.toString(this._value)); } } ,__class__: haxe_ui_components__$Tag_TextBehaviour }); var haxe_ui_components__$Tag_Closable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._Tag.Closable"] = haxe_ui_components__$Tag_Closable; haxe_ui_components__$Tag_Closable.__name__ = "haxe.ui.components._Tag.Closable"; haxe_ui_components__$Tag_Closable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$Tag_Closable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var _gthis = this; var image = this._component.findComponent("tag-close",null,false); if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { if(image != null) { this._component.removeComponent(image); } } else if(image == null) { image = new haxe_ui_components_Image(); image.set_id("tag-close"); image.addClass("tag-close"); image.set_scriptAccess(false); this._component.addComponent(image); image.set_onClick(function(_) { _gthis._component.fadeOut(function() { _gthis._component.get_parentComponent().removeComponent(_gthis._component); }); }); } } ,__class__: haxe_ui_components__$Tag_Closable }); var haxe_ui_components__$Tag_Builder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.components._Tag.Builder"] = haxe_ui_components__$Tag_Builder; haxe_ui_components__$Tag_Builder.__name__ = "haxe.ui.components._Tag.Builder"; haxe_ui_components__$Tag_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components__$Tag_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _label: null ,create: function() { haxe_ui_core_CompositeBuilder.prototype.create.call(this); this._label = new haxe_ui_components_Label(); this._label.set_scriptAccess(false); this._label.set_id("tag-label"); this._label.addClass("tag-label"); this._label.set_text("tag"); this._component.addComponent(this._label); } ,__class__: haxe_ui_components__$Tag_Builder }); var haxe_ui_components_TextArea = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.TextArea"] = haxe_ui_components_TextArea; haxe_ui_components_TextArea.__name__ = "haxe.ui.components.TextArea"; haxe_ui_components_TextArea.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_focus_IFocusable]; haxe_ui_components_TextArea.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_TextArea.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ scrollToTop: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("scrollToTop",null); } ,scrollToBottom: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("scrollToBottom",null); } ,isBlank: null ,get_isBlank: function() { if(this.get_text() == null) { return true; } return StringTools.trim(this.get_text()).length == 0; } ,invalidateComponentScroll: function() { this.invalidateComponent("scroll"); } ,validateComponentInternal: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } var dataInvalid = this.isComponentInvalid("data"); var scrollInvalid = this.isComponentInvalid("scroll"); var layoutInvalid = this.isComponentInvalid("layout"); haxe_ui_core_InteractiveComponent.prototype.validateComponentInternal.call(this,nextFrame); if(scrollInvalid || layoutInvalid || dataInvalid) { if(this._compositeBuilder != null) { (js_Boot.__cast(this._compositeBuilder , haxe_ui_components__$TextArea_TextAreaBuilder)).checkScrolls(); } } } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_components__$TextArea_TextBehaviour); this.behaviours.register("htmlText",haxe_ui_components__$TextArea_HtmlTextBehaviour); this.behaviours.register("placeholder",haxe_ui_components__$TextArea_PlaceholderBehaviour); this.behaviours.register("wrap",haxe_ui_components__$TextArea_WrapBehaviour,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("dataSource",haxe_ui_components__$TextArea_DataSourceBehaviour); this.behaviours.register("autoScrollToBottom",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("icon",haxe_ui_components__$TextArea_IconBehaviour); this.behaviours.register("scrollToTop",haxe_ui_components__$TextArea_ScrollToTop); this.behaviours.register("scrollToBottom",haxe_ui_components__$TextArea_ScrollToBottom); } ,get_htmlText: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("htmlText")); } ,set_htmlText: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"htmlText",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("htmlText",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"htmlText")); return value; } ,get_placeholder: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("placeholder")); } ,set_placeholder: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"placeholder",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("placeholder",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"placeholder")); return value; } ,get_wrap: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("wrap")); } ,set_wrap: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("wrap",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"wrap")); return value; } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,get_autoScrollToBottom: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("autoScrollToBottom")); } ,set_autoScrollToBottom: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("autoScrollToBottom",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"autoScrollToBottom")); return value; } ,get_icon: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("icon")); } ,set_icon: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"icon",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("icon",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"icon")); return value; } ,get_value: function() { return this.get_text(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2:case 3: this.set_text(Std.string(value)); break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_text(haxe_ui_util_Variant.toString(v)); } else { this.set_text(value); } break; default: this.set_text(value); } return value; } ,get_iconPosition: function() { if(this.get_customStyle().iconPosition != null) { return this.get_customStyle().iconPosition; } if(this.get_style() == null || this.get_style().iconPosition == null) { return null; } return this.get_style().iconPosition; } ,set_iconPosition: function(value) { if(this.get_customStyle().iconPosition == value) { return value; } if(this._style == null) { this._style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } if(value == null) { this.get_customStyle().iconPosition = null; } else { this.get_customStyle().iconPosition = value; } this.invalidateComponent("style",false); if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if(this.get_icon() != null) { c.set_icon(this.get_icon()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_TextArea(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_components__$TextArea_Events; this._compositeBuilderClass = haxe_ui_components__$TextArea_TextAreaBuilder; this._defaultLayoutClass = haxe_ui_components__$TextArea_TextAreaLayout; } ,__class__: haxe_ui_components_TextArea ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_iconPosition:"set_iconPosition",get_iconPosition:"get_iconPosition",set_icon:"set_icon",get_icon:"get_icon",set_autoScrollToBottom:"set_autoScrollToBottom",get_autoScrollToBottom:"get_autoScrollToBottom",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource",set_wrap:"set_wrap",get_wrap:"get_wrap",set_placeholder:"set_placeholder",get_placeholder:"get_placeholder",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText",get_isBlank:"get_isBlank"}) }); var haxe_ui_components__$TextArea_TextAreaLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._TextArea.TextAreaLayout"] = haxe_ui_components__$TextArea_TextAreaLayout; haxe_ui_components__$TextArea_TextAreaLayout.__name__ = "haxe.ui.components._TextArea.TextAreaLayout"; haxe_ui_components__$TextArea_TextAreaLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$TextArea_TextAreaLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ iconPosition: null ,get_iconPosition: function() { if(this.get_component().get_style().iconPosition == null) { return "left"; } return this.get_component().get_style().iconPosition; } ,repositionChildren: function() { var decorator = this.findComponent(null,haxe_ui_components_Decorator); var decoratorWidth = 0; if(decorator != null) { decorator.set_left(this._component.get_width() - decorator.get_width() - this.get_borderSize()); decorator.set_top(this.get_borderSize()); decoratorWidth = decorator.get_width(); } var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); var ucx = this.get_innerWidth(); var ucy = this.get_innerHeight(); if(hscroll != null && this.hidden(hscroll) == false) { hscroll.set_left(this.get_paddingLeft()); hscroll.set_top(ucy - hscroll.get_componentHeight() + this.get_paddingBottom()); } var vscrollWidth = 0; if(vscroll != null && this.hidden(vscroll) == false) { vscroll.set_left(ucx - vscroll.get_componentWidth() + this.get_paddingRight() + this.get_paddingLeft() - this.get_borderSize() - decoratorWidth); vscroll.set_top(this.get_borderSize()); vscrollWidth = vscroll.get_componentWidth(); } var icon = this.get_component().findComponent(null,haxe_ui_components_Image,false); var xpos = this.get_paddingLeft(); if(icon != null) { switch(this.get_iconPosition()) { case "left": icon.set_left(xpos + 3); icon.set_top(this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2); xpos += icon.get_componentWidth() + this.get_horizontalSpacing(); break; case "right": icon.set_left(this.get_component().get_componentWidth() - icon.get_componentWidth() - this.get_paddingRight() - 3 - vscrollWidth - decoratorWidth); icon.set_top(this.get_component().get_componentHeight() / 2 - icon.get_componentHeight() / 2); break; } } if(this.get_component().hasTextInput() == true) { this.get_component().getTextInput().set_left(xpos + 2); this.get_component().getTextInput().set_top(this.get_paddingTop() + 2); } } ,resizeChildren: function() { var offset = 0; var decorator = this.findComponent(null,haxe_ui_components_Decorator); if(decorator != null) { var cy = this._component.get_height() - this.get_borderSize() * 2; decorator.set_height(cy); offset += decorator.get_width(); } var icon = this.get_component().findComponent(null,haxe_ui_components_Image,false); if(icon != null) { offset += icon.get_width(); } var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); var usableSize = this.get_usableSize(); if(hscroll != null && this.hidden(hscroll) == false) { hscroll.set_width(usableSize.width); } if(vscroll != null && this.hidden(vscroll) == false) { vscroll.set_height(usableSize.height - this.get_borderSize() * 2 + this.get_paddingTop() + this.get_paddingBottom()); offset += vscroll.get_width(); } if(this.get_component().hasTextInput() == true) { var size = usableSize; this.get_component().getTextInput().set_width(size.width - (this.get_borderSize() - 1) * 2 - offset); this.get_component().getTextInput().set_height(size.height - (this.get_borderSize() - 1) * 2); } } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); if(hscroll != null && this.hidden(hscroll) == false) { size.height -= hscroll.get_componentHeight(); } if(vscroll != null && this.hidden(vscroll) == false) { size.width -= vscroll.get_componentWidth(); } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$TextArea_TextAreaLayout(); } ,__class__: haxe_ui_components__$TextArea_TextAreaLayout ,__properties__: $extend(haxe_ui_layouts_DefaultLayout.prototype.__properties__,{get_iconPosition:"get_iconPosition"}) }); var haxe_ui_components__$TextArea_DataSourceBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.DataSourceBehaviour"] = haxe_ui_components__$TextArea_DataSourceBehaviour; haxe_ui_components__$TextArea_DataSourceBehaviour.__name__ = "haxe.ui.components._TextArea.DataSourceBehaviour"; haxe_ui_components__$TextArea_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextArea_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { this._value = value; this._component.getTextInput().set_dataSource(haxe_ui_util_Variant.toDataSource(value)); } ,get: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { this._value = haxe_ui_util_Variant.fromDataSource(new haxe_ui_data_ArrayDataSource()); this.set(this._value); } return this._value; } ,__class__: haxe_ui_components__$TextArea_DataSourceBehaviour }); var haxe_ui_components__$TextArea_PlaceholderBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.PlaceholderBehaviour"] = haxe_ui_components__$TextArea_PlaceholderBehaviour; haxe_ui_components__$TextArea_PlaceholderBehaviour.__name__ = "haxe.ui.components._TextArea.PlaceholderBehaviour"; haxe_ui_components__$TextArea_PlaceholderBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextArea_PlaceholderBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textarea = js_Boot.__cast(this._component , haxe_ui_components_TextArea); haxe_ui_components__$TextArea_TextAreaHelper.validateText(textarea,textarea.get_text()); } ,__class__: haxe_ui_components__$TextArea_PlaceholderBehaviour }); var haxe_ui_components__$TextArea_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.TextBehaviour"] = haxe_ui_components__$TextArea_TextBehaviour; haxe_ui_components__$TextArea_TextBehaviour.__name__ = "haxe.ui.components._TextArea.TextBehaviour"; haxe_ui_components__$TextArea_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextArea_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textarea = js_Boot.__cast(this._component , haxe_ui_components_TextArea); var text = this._value != null ? haxe_ui_util_Variant.toString(this._value) : ""; haxe_ui_components__$TextArea_TextAreaHelper.validateText(textarea,text); if(textarea.get_autoScrollToBottom() == true) { textarea.scrollToBottom(); } } ,__class__: haxe_ui_components__$TextArea_TextBehaviour }); var haxe_ui_components__$TextArea_HtmlTextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.HtmlTextBehaviour"] = haxe_ui_components__$TextArea_HtmlTextBehaviour; haxe_ui_components__$TextArea_HtmlTextBehaviour.__name__ = "haxe.ui.components._TextArea.HtmlTextBehaviour"; haxe_ui_components__$TextArea_HtmlTextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextArea_HtmlTextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textarea = js_Boot.__cast(this._component , haxe_ui_components_TextArea); var htmlText = this._value != null ? haxe_ui_util_Variant.toString(this._value) : ""; haxe_ui_components__$TextArea_TextAreaHelper.validateHtmlText(textarea,htmlText); if(textarea.get_autoScrollToBottom() == true) { textarea.scrollToBottom(); } } ,__class__: haxe_ui_components__$TextArea_HtmlTextBehaviour }); var haxe_ui_components__$TextArea_WrapBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.WrapBehaviour"] = haxe_ui_components__$TextArea_WrapBehaviour; haxe_ui_components__$TextArea_WrapBehaviour.__name__ = "haxe.ui.components._TextArea.WrapBehaviour"; haxe_ui_components__$TextArea_WrapBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextArea_WrapBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textarea = js_Boot.__cast(this._component , haxe_ui_components_TextArea); textarea.getTextInput().set_wordWrap(haxe_ui_util_Variant.toBool(this._value)); } ,__class__: haxe_ui_components__$TextArea_WrapBehaviour }); var haxe_ui_components__$TextArea_ScrollToTop = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.ScrollToTop"] = haxe_ui_components__$TextArea_ScrollToTop; haxe_ui_components__$TextArea_ScrollToTop.__name__ = "haxe.ui.components._TextArea.ScrollToTop"; haxe_ui_components__$TextArea_ScrollToTop.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$TextArea_ScrollToTop.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { vscroll.set_pos(0); } return null; } ,__class__: haxe_ui_components__$TextArea_ScrollToTop }); var haxe_ui_components__$TextArea_ScrollToBottom = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.ScrollToBottom"] = haxe_ui_components__$TextArea_ScrollToBottom; haxe_ui_components__$TextArea_ScrollToBottom.__name__ = "haxe.ui.components._TextArea.ScrollToBottom"; haxe_ui_components__$TextArea_ScrollToBottom.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$TextArea_ScrollToBottom.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { vscroll.set_pos(vscroll.get_max()); } return null; } ,__class__: haxe_ui_components__$TextArea_ScrollToBottom }); var haxe_ui_components__$TextArea_IconBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextArea.IconBehaviour"] = haxe_ui_components__$TextArea_IconBehaviour; haxe_ui_components__$TextArea_IconBehaviour.__name__ = "haxe.ui.components._TextArea.IconBehaviour"; haxe_ui_components__$TextArea_IconBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextArea_IconBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textarea = js_Boot.__cast(this._component , haxe_ui_components_TextArea); var icon = textarea.findComponent(null,haxe_ui_components_Image,false); if((this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) && icon != null) { textarea.removeComponent(icon); } else { if(icon == null) { icon = new haxe_ui_components_Image(); icon.set_id("textarea-icon"); icon.addClass("icon"); icon.set_scriptAccess(false); textarea.addComponentAt(icon,0); } icon.set_resource(haxe_ui_util_Variant.fromString(haxe_ui_util_Variant.toString(this._value))); } } ,__class__: haxe_ui_components__$TextArea_IconBehaviour }); var haxe_ui_components__$TextArea_TextAreaHelper = function() { }; $hxClasses["haxe.ui.components._TextArea.TextAreaHelper"] = haxe_ui_components__$TextArea_TextAreaHelper; haxe_ui_components__$TextArea_TextAreaHelper.__name__ = "haxe.ui.components._TextArea.TextAreaHelper"; haxe_ui_components__$TextArea_TextAreaHelper.validateText = function(textarea,text) { if(text == null) { text = ""; } var placeholderVisible = text.length == 0; if(textarea.get_placeholder() != null) { if(textarea.get_focus() == false) { if(text.length == 0) { text = textarea.get_placeholder(); textarea.addClass(":empty"); } else if(text != textarea.get_placeholder()) { textarea.removeClass(":empty"); } } else { textarea.removeClass(":empty"); if(text == textarea.get_placeholder()) { text = ""; } } } else if(placeholderVisible == true) { textarea.removeClass(":empty"); } textarea.getTextInput().set_text("" + text); textarea.getTextInput().invalidateComponent("measure"); if(!(textarea._layout == null || textarea._layoutLocked == true)) { textarea.invalidateComponent("layout",false); } }; haxe_ui_components__$TextArea_TextAreaHelper.validateHtmlText = function(textarea,htmlText) { if(htmlText == null) { htmlText = ""; } var placeholderVisible = htmlText.length == 0; if(textarea.get_placeholder() != null) { if(textarea.get_focus() == false) { if(htmlText.length == 0) { htmlText = textarea.get_placeholder(); textarea.addClass(":empty"); } else if(htmlText != textarea.get_placeholder()) { textarea.removeClass(":empty"); } } else { textarea.removeClass(":empty"); if(htmlText == textarea.get_placeholder()) { htmlText = ""; } } } else if(placeholderVisible == true) { textarea.removeClass(":empty"); } textarea.getTextInput().set_htmlText("" + htmlText); textarea.getTextInput().invalidateComponent("measure"); if(!(textarea._layout == null || textarea._layoutLocked == true)) { textarea.invalidateComponent("layout",false); } }; var haxe_ui_components__$TextArea_Events = function(textarea) { haxe_ui_events_Events.call(this,textarea); this._textarea = textarea; }; $hxClasses["haxe.ui.components._TextArea.Events"] = haxe_ui_components__$TextArea_Events; haxe_ui_components__$TextArea_Events.__name__ = "haxe.ui.components._TextArea.Events"; haxe_ui_components__$TextArea_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$TextArea_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _textarea: null ,register: function() { var _gthis = this; if(this._textarea.getTextInput().get_data().onChangedCallback == null) { this._textarea.getTextInput().set_multiline(true); this._textarea.getTextInput().get_data().onChangedCallback = function() { if(_gthis._textarea.classes.indexOf(":empty") != -1 == false) { var text = _gthis._textarea.getTextInput().get_text(); if(text == null) { text = ""; } _gthis._textarea.set_text(text); _gthis._textarea.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); if(_gthis._textarea.get_style().autoHeight == true) { var maxHeight = _gthis._textarea.get_style().maxHeight; var newHeight = _gthis._textarea.getTextInput().get_textHeight() + 8; if(maxHeight == null || newHeight < maxHeight) { _gthis._textarea.set_height(newHeight); } } (js_Boot.__cast(_gthis._textarea._compositeBuilder , haxe_ui_components__$TextArea_TextAreaBuilder)).checkScrolls(); } }; } if(this._textarea.getTextInput().get_data().onScrollCallback == null) { this._textarea.getTextInput().get_data().onScrollCallback = function() { var hscroll = _gthis._textarea.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { hscroll.set_pos(_gthis._textarea.getTextInput().get_hscrollPos()); } var vscroll = _gthis._textarea.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { vscroll.set_pos(_gthis._textarea.getTextInput().get_vscrollPos()); } }; } var hscroll = this._textarea.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null && hscroll.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onScrollChange)) == false) { hscroll.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onScrollChange)); } var vscroll = this._textarea.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null && vscroll.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onScrollChange)) == false) { vscroll.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onScrollChange)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); } if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)) == false) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } if(this.hasEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusChange)) == false) { this.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusChange)); } if(this.hasEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusChange)) == false) { this.registerEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusChange)); } } ,unregister: function() { this._textarea.getTextInput().get_data().onChangedCallback = null; this._textarea.getTextInput().get_data().onScrollCallback = null; var hscroll = this._textarea.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { hscroll.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onScrollChange)); } var vscroll = this._textarea.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { vscroll.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onScrollChange)); } this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this.unregisterEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusChange)); this.unregisterEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusChange)); } ,onMouseWheel: function(event) { if(this._textarea.getTextInput().get_data().vscrollNativeWheel == true) { return; } var vscroll = this._textarea.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { event.cancel(); var step = 20; if(this._textarea.getTextInput().get_data().vscrollPageStep != null) { step = this._textarea.getTextInput().get_data().vscrollPageStep; } else { step = Math.ceil((this._textarea.getTextInput().get_textStyle().fontSize + 1) / 10) * 10; } if(event.delta > 0) { vscroll.set_pos(vscroll.get_pos() - step); } else if(event.delta < 0) { vscroll.set_pos(vscroll.get_pos() + step); } } } ,onScrollChange: function(event) { if(this._textarea.get_style().autoHeight == true) { var maxHeight = this._textarea.get_style().maxHeight; var newHeight = this._textarea.getTextInput().get_textHeight() + 8; if(maxHeight == null || newHeight < maxHeight) { this._textarea.set_height(newHeight); } if(maxHeight != null && newHeight > maxHeight) { this._textarea.set_height(maxHeight); } } var hscroll = this._textarea.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { this._textarea.getTextInput().set_hscrollPos(hscroll.get_pos()); } var vscroll = this._textarea.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { this._textarea.getTextInput().set_vscrollPos(vscroll.get_pos()); } } ,onMouseDown: function(event) { this._textarea.set_focus(true); } ,onFocusChange: function(event) { if(this._textarea.get_focus() == true) { this._textarea.getTextInput().focus(); } else { this._textarea.getTextInput().blur(); } haxe_ui_components__$TextArea_TextAreaHelper.validateText(this._textarea,this._textarea.get_text()); } ,__class__: haxe_ui_components__$TextArea_Events }); var haxe_ui_components__$TextArea_TextAreaBuilder = function(textarea) { haxe_ui_core_CompositeBuilder.call(this,textarea); this._textarea = textarea; }; $hxClasses["haxe.ui.components._TextArea.TextAreaBuilder"] = haxe_ui_components__$TextArea_TextAreaBuilder; haxe_ui_components__$TextArea_TextAreaBuilder.__name__ = "haxe.ui.components._TextArea.TextAreaBuilder"; haxe_ui_components__$TextArea_TextAreaBuilder.isHtml = function(v) { if(v == null) { return false; } else { return v.indexOf(" 1) { if(hscroll == null) { hscroll = this.createHScroll(); } hscroll.set_max(textInput.get_hscrollMax()); hscroll.set_pos(textInput.get_hscrollPos()); hscroll.set_pageSize(textInput.get_hscrollPageSize()); } else if(hscroll != null) { this._component.removeComponent(hscroll); } var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); if(textInput.get_textHeight() - textInput.get_height() > 1) { if(vscroll == null) { vscroll = this.createVScroll(); } vscroll.set_max(textInput.get_vscrollMax()); vscroll.set_pos(textInput.get_vscrollPos()); vscroll.set_pageSize(textInput.get_vscrollPageSize()); if(this._textarea.get_autoScrollToBottom() == true) { this._textarea.scrollToBottom(); } } else if(vscroll != null) { this._component.removeComponent(vscroll); } } ,createHScroll: function() { var hscroll = new haxe_ui_components_HorizontalScroll(); hscroll.set_percentWidth(100); hscroll.set_id("textarea-hscroll"); hscroll.set_allowFocus(false); hscroll.set_scriptAccess(false); this._component.addComponent(hscroll); this._component.registerInternalEvents(null,true); return hscroll; } ,createVScroll: function() { var vscroll = new haxe_ui_components_VerticalScroll(); if(this._textarea.getTextInput().get_data().vscrollPageStep != null) { vscroll.set_increment(this._textarea.getTextInput().get_data().vscrollPageStep); } vscroll.set_percentHeight(100); vscroll.set_id("textarea-vscroll"); vscroll.set_allowFocus(false); vscroll.set_scriptAccess(false); this._component.addComponent(vscroll); this._component.registerInternalEvents(null,true); return vscroll; } ,applyStyle: function(style) { haxe_ui_core_CompositeBuilder.prototype.applyStyle.call(this,style); if(this._textarea.hasTextInput() == true) { this._textarea.getTextInput().set_textStyle(style); var tmp; if((style.contentType == "auto" || style.contentType == "html") && this._textarea.getTextInput().get_supportsHtml()) { var v = Std.string(this._textarea.get_text()); tmp = v == null ? false : v.indexOf(" size.width) { size.width = this.get_component().getTextInput().get_textWidth() + this.get_paddingLeft() + this.get_paddingRight(); } if(this.get_component().getTextInput().get_textHeight() + this.get_paddingTop() + this.get_paddingBottom() > size.height) { size.height = this.get_component().getTextInput().get_textHeight() + this.get_paddingTop() + this.get_paddingBottom(); } } return size; } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var icon = this.get_component().findComponent(null,haxe_ui_components_Image,false); if(icon != null) { size.width -= icon.get_componentWidth() + this.get_horizontalSpacing(); } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$TextField_TextFieldLayout(); } ,__class__: haxe_ui_components__$TextField_TextFieldLayout ,__properties__: $extend(haxe_ui_layouts_DefaultLayout.prototype.__properties__,{get_iconPosition:"get_iconPosition"}) }); var haxe_ui_components__$TextField_PasswordBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.PasswordBehaviour"] = haxe_ui_components__$TextField_PasswordBehaviour; haxe_ui_components__$TextField_PasswordBehaviour.__name__ = "haxe.ui.components._TextField.PasswordBehaviour"; haxe_ui_components__$TextField_PasswordBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_PasswordBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ originalValue: null ,validateData: function() { if(this.originalValue == null) { this.originalValue = this._value; } var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); textfield.getTextInput().set_password(haxe_ui_util_Variant.toBool(this._value)); } ,__class__: haxe_ui_components__$TextField_PasswordBehaviour }); var haxe_ui_components__$TextField_MaxCharsBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.MaxCharsBehaviour"] = haxe_ui_components__$TextField_MaxCharsBehaviour; haxe_ui_components__$TextField_MaxCharsBehaviour.__name__ = "haxe.ui.components._TextField.MaxCharsBehaviour"; haxe_ui_components__$TextField_MaxCharsBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_MaxCharsBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); haxe_ui_components__$TextField_TextFieldHelper.validateText(textfield,textfield.get_text()); } ,__class__: haxe_ui_components__$TextField_MaxCharsBehaviour }); var haxe_ui_components__$TextField_RestrictCharsBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.RestrictCharsBehaviour"] = haxe_ui_components__$TextField_RestrictCharsBehaviour; haxe_ui_components__$TextField_RestrictCharsBehaviour.__name__ = "haxe.ui.components._TextField.RestrictCharsBehaviour"; haxe_ui_components__$TextField_RestrictCharsBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_RestrictCharsBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ regexp: null ,validateData: function() { var excludeEReg = new EReg("\\^(.-.|.)","gu"); var excludeChars = ""; var includeChars = excludeEReg.map(haxe_ui_util_Variant.toString(this._value),function(ereg) { excludeChars += ereg.matched(1); return ""; }); var testRegexpParts = []; if(includeChars.length > 0) { testRegexpParts.push("[^" + (this._value == null ? "null" : haxe_ui_util_Variant.toString(this._value)) + "]"); } if(excludeChars.length > 0) { testRegexpParts.push("[" + excludeChars + "]"); } this.regexp = new EReg("(" + testRegexpParts.join(" | ") + ")","g"); var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); haxe_ui_components__$TextField_TextFieldHelper.validateText(textfield,textfield.get_text()); } ,__class__: haxe_ui_components__$TextField_RestrictCharsBehaviour }); var haxe_ui_components__$TextField_PlaceholderBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.PlaceholderBehaviour"] = haxe_ui_components__$TextField_PlaceholderBehaviour; haxe_ui_components__$TextField_PlaceholderBehaviour.__name__ = "haxe.ui.components._TextField.PlaceholderBehaviour"; haxe_ui_components__$TextField_PlaceholderBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_PlaceholderBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); haxe_ui_components__$TextField_TextFieldHelper.validateText(textfield,textfield.get_text()); } ,__class__: haxe_ui_components__$TextField_PlaceholderBehaviour }); var haxe_ui_components__$TextField_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.TextBehaviour"] = haxe_ui_components__$TextField_TextBehaviour; haxe_ui_components__$TextField_TextBehaviour.__name__ = "haxe.ui.components._TextField.TextBehaviour"; haxe_ui_components__$TextField_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); haxe_ui_components__$TextField_TextFieldHelper.validateText(textfield,haxe_ui_util_Variant.toString(this._value)); if(this._value != null && haxe_ui_util_Variant.neq(this._value,haxe_ui_util_Variant.fromString(""))) { this._value = haxe_ui_util_Variant.fromString(textfield.getTextInput().get_text()); } } ,__class__: haxe_ui_components__$TextField_TextBehaviour }); var haxe_ui_components__$TextField_HtmlTextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.HtmlTextBehaviour"] = haxe_ui_components__$TextField_HtmlTextBehaviour; haxe_ui_components__$TextField_HtmlTextBehaviour.__name__ = "haxe.ui.components._TextField.HtmlTextBehaviour"; haxe_ui_components__$TextField_HtmlTextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_HtmlTextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); haxe_ui_components__$TextField_TextFieldHelper.validateHtmlText(textfield,haxe_ui_util_Variant.toString(this._value)); if(this._value != null && haxe_ui_util_Variant.neq(this._value,haxe_ui_util_Variant.fromString(""))) { this._value = haxe_ui_util_Variant.fromString(textfield.getTextInput().get_htmlText()); } } ,__class__: haxe_ui_components__$TextField_HtmlTextBehaviour }); var haxe_ui_components__$TextField_IconBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.IconBehaviour"] = haxe_ui_components__$TextField_IconBehaviour; haxe_ui_components__$TextField_IconBehaviour.__name__ = "haxe.ui.components._TextField.IconBehaviour"; haxe_ui_components__$TextField_IconBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_components__$TextField_IconBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var textfield = js_Boot.__cast(this._component , haxe_ui_components_TextField); var icon = textfield.findComponent(null,haxe_ui_components_Image,false); if((this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) && icon != null) { textfield.removeComponent(icon); } else { if(icon == null) { icon = new haxe_ui_components_Image(); icon.set_id("textfield-icon"); icon.addClass("icon"); icon.set_scriptAccess(false); textfield.addComponentAt(icon,0); } icon.set_resource(haxe_ui_util_Variant.fromString(haxe_ui_util_Variant.toString(this._value))); } } ,__class__: haxe_ui_components__$TextField_IconBehaviour }); var haxe_ui_components__$TextField_CaretIndexBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.CaretIndexBehaviour"] = haxe_ui_components__$TextField_CaretIndexBehaviour; haxe_ui_components__$TextField_CaretIndexBehaviour.__name__ = "haxe.ui.components._TextField.CaretIndexBehaviour"; haxe_ui_components__$TextField_CaretIndexBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_components__$TextField_CaretIndexBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ get: function() { return haxe_ui_util_Variant.fromInt(this._component.getTextInput().get_caretIndex()); } ,set: function(value) { haxe_ui_behaviours_ValueBehaviour.prototype.set.call(this,value); this._component.syncComponentValidation(); this._component.getTextInput().set_caretIndex(haxe_ui_util_Variant.toInt(value)); } ,__class__: haxe_ui_components__$TextField_CaretIndexBehaviour }); var haxe_ui_components__$TextField_SelectionStartIndexBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.SelectionStartIndexBehaviour"] = haxe_ui_components__$TextField_SelectionStartIndexBehaviour; haxe_ui_components__$TextField_SelectionStartIndexBehaviour.__name__ = "haxe.ui.components._TextField.SelectionStartIndexBehaviour"; haxe_ui_components__$TextField_SelectionStartIndexBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_components__$TextField_SelectionStartIndexBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ get: function() { return haxe_ui_util_Variant.fromInt(this._component.getTextInput().get_selectionStartIndex()); } ,set: function(value) { haxe_ui_behaviours_ValueBehaviour.prototype.set.call(this,value); this._component.syncComponentValidation(); this._component.getTextInput().set_selectionStartIndex(haxe_ui_util_Variant.toInt(value)); } ,__class__: haxe_ui_components__$TextField_SelectionStartIndexBehaviour }); var haxe_ui_components__$TextField_SelectionEndIndexBehaviour = function(component) { haxe_ui_behaviours_ValueBehaviour.call(this,component); }; $hxClasses["haxe.ui.components._TextField.SelectionEndIndexBehaviour"] = haxe_ui_components__$TextField_SelectionEndIndexBehaviour; haxe_ui_components__$TextField_SelectionEndIndexBehaviour.__name__ = "haxe.ui.components._TextField.SelectionEndIndexBehaviour"; haxe_ui_components__$TextField_SelectionEndIndexBehaviour.__super__ = haxe_ui_behaviours_ValueBehaviour; haxe_ui_components__$TextField_SelectionEndIndexBehaviour.prototype = $extend(haxe_ui_behaviours_ValueBehaviour.prototype,{ get: function() { return haxe_ui_util_Variant.fromInt(this._component.getTextInput().get_selectionEndIndex()); } ,set: function(value) { haxe_ui_behaviours_ValueBehaviour.prototype.set.call(this,value); this._component.syncComponentValidation(); this._component.getTextInput().set_selectionEndIndex(haxe_ui_util_Variant.toInt(value)); } ,__class__: haxe_ui_components__$TextField_SelectionEndIndexBehaviour }); var haxe_ui_components__$TextField_TextFieldHelper = function() { }; $hxClasses["haxe.ui.components._TextField.TextFieldHelper"] = haxe_ui_components__$TextField_TextFieldHelper; haxe_ui_components__$TextField_TextFieldHelper.__name__ = "haxe.ui.components._TextField.TextFieldHelper"; haxe_ui_components__$TextField_TextFieldHelper.validateText = function(textfield,text) { if(text == null) { text = ""; } var placeholderVisible = text.length == 0; var password = (js_Boot.__cast(textfield.behaviours.find("password") , haxe_ui_components__$TextField_PasswordBehaviour)).originalValue; var regexp = (js_Boot.__cast(textfield.behaviours.find("restrictChars") , haxe_ui_components__$TextField_RestrictCharsBehaviour)).regexp; if(textfield.get_maxChars() > 0 && text.length > textfield.get_maxChars() && placeholderVisible == false) { text = HxOverrides.substr(text,0,textfield.get_maxChars()); } if(regexp != null) { text = text.replace(regexp.r,""); } if(textfield.get_placeholder() != null) { if(textfield.get_focus() == false) { if(text.length == 0) { text = textfield.get_placeholder(); textfield.set_password(false); textfield.addClass(":empty"); } else if(text != textfield.get_placeholder()) { textfield.set_password(haxe_ui_util_Variant.toBool(password)); textfield.removeClass(":empty"); } } else { textfield.removeClass(":empty"); textfield.set_password(haxe_ui_util_Variant.toBool(password)); } } else { textfield.set_password(haxe_ui_util_Variant.toBool(password)); if(placeholderVisible == true) { textfield.removeClass(":empty"); } } textfield.getTextInput().set_text("" + text); if(!(textfield._layout == null || textfield._layoutLocked == true)) { textfield.invalidateComponent("layout",false); } }; haxe_ui_components__$TextField_TextFieldHelper.validateHtmlText = function(textfield,htmlText) { if(htmlText == null) { htmlText = ""; } var placeholderVisible = htmlText.length == 0; var password = (js_Boot.__cast(textfield.behaviours.find("password") , haxe_ui_components__$TextField_PasswordBehaviour)).originalValue; var regexp = (js_Boot.__cast(textfield.behaviours.find("restrictChars") , haxe_ui_components__$TextField_RestrictCharsBehaviour)).regexp; if(textfield.get_maxChars() > 0 && htmlText.length > textfield.get_maxChars() && placeholderVisible == false) { htmlText = HxOverrides.substr(htmlText,0,textfield.get_maxChars()); } if(regexp != null) { htmlText = htmlText.replace(regexp.r,""); } if(textfield.get_placeholder() != null) { if(textfield.get_focus() == false) { if(htmlText.length == 0) { htmlText = textfield.get_placeholder(); textfield.set_password(false); textfield.addClass(":empty"); } else if(htmlText != textfield.get_placeholder()) { textfield.set_password(haxe_ui_util_Variant.toBool(password)); textfield.removeClass(":empty"); } } else { textfield.removeClass(":empty"); textfield.set_password(haxe_ui_util_Variant.toBool(password)); } } else { textfield.set_password(haxe_ui_util_Variant.toBool(password)); if(placeholderVisible == true) { textfield.removeClass(":empty"); } } textfield.getTextInput().set_htmlText("" + htmlText); if(!(textfield._layout == null || textfield._layoutLocked == true)) { textfield.invalidateComponent("layout",false); } }; var haxe_ui_components__$TextField_Events = function(textfield) { haxe_ui_events_Events.call(this,textfield); this._textfield = textfield; }; $hxClasses["haxe.ui.components._TextField.Events"] = haxe_ui_components__$TextField_Events; haxe_ui_components__$TextField_Events.__name__ = "haxe.ui.components._TextField.Events"; haxe_ui_components__$TextField_Events.__super__ = haxe_ui_events_Events; haxe_ui_components__$TextField_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _textfield: null ,register: function() { var _gthis = this; if(this._textfield.getTextInput().get_data().onChangedCallback == null) { this._textfield.getTextInput().set_multiline(false); this._textfield.getTextInput().get_data().onChangedCallback = function() { if(_gthis._textfield.classes.indexOf(":empty") != -1 == false) { _gthis._textfield.set_text(_gthis._textfield.getTextInput().get_text()); _gthis._textfield.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } }; } this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this.registerEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusChange)); this.registerEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusChange)); this.registerEvent(haxe_ui_events_KeyboardEvent.KEY_UP,$bind(this,this.onKeyUp)); } ,unregister: function() { this._textfield.getTextInput().get_data().onChangedCallback = null; this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this.unregisterEvent(haxe_ui_events_FocusEvent.FOCUS_IN,$bind(this,this.onFocusChange)); this.unregisterEvent(haxe_ui_events_FocusEvent.FOCUS_OUT,$bind(this,this.onFocusChange)); this.unregisterEvent(haxe_ui_events_KeyboardEvent.KEY_UP,$bind(this,this.onKeyUp)); } ,onMouseDown: function(event) { this._textfield.set_focus(true); } ,onFocusChange: function(event) { if(this._textfield.get_focus() == true) { this._textfield.getTextInput().focus(); } else { this._textfield.getTextInput().blur(); } haxe_ui_components__$TextField_TextFieldHelper.validateText(this._textfield,this._textfield.get_text()); } ,onKeyUp: function(event) { if(event.keyCode == haxe_ui_core_Platform.get_instance().getKeyCode("enter")) { event.cancel(); this._textfield.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SUBMIT,true)); } } ,__class__: haxe_ui_components__$TextField_Events }); var haxe_ui_components__$TextField_Builder = function(textfield) { haxe_ui_core_CompositeBuilder.call(this,textfield); this._textfield = textfield; }; $hxClasses["haxe.ui.components._TextField.Builder"] = haxe_ui_components__$TextField_Builder; haxe_ui_components__$TextField_Builder.__name__ = "haxe.ui.components._TextField.Builder"; haxe_ui_components__$TextField_Builder.isHtml = function(v) { if(v == null) { return false; } else { return v.indexOf("= ucy) { ypos = ucy; } var min = range.get_min(); if(min == null) { min = 0; } var m = range.get_max() - min; var d = ucy / m; var v = ypos; var p = v / d; return haxe_ui_util_Variant.fromFloat(range.get_max() - p); } ,__class__: haxe_ui_components_VerticalRangePosFromCoord }); var haxe_ui_components_VerticalRangeLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components.VerticalRangeLayout"] = haxe_ui_components_VerticalRangeLayout; haxe_ui_components_VerticalRangeLayout.__name__ = "haxe.ui.components.VerticalRangeLayout"; haxe_ui_components_VerticalRangeLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_VerticalRangeLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var range = js_Boot.__cast(this.get_component() , haxe_ui_components_Range); var value = this.findComponent("" + range.get_cssName() + "-value"); if(value != null) { var ucy = this.get_usableHeight(); var start = range.get_start(); if(start == null) { start = 0; } var end = range.get_end(); if(range.virtualStart != null) { start = range.virtualStart; } if(range.virtualEnd != null) { end = range.virtualEnd; } var min = range.get_min(); if(min == null) { min = 0; } var m = range.get_max() - min; var d = ucy / m; var startInPixels = start * d - min * d; var endInPixels = end * d - min * d; var cy = Math.ceil(endInPixels - startInPixels); if(cy < 0) { cy = 0; } else if(cy > ucy) { cy = ucy; } if(cy == 0) { value.set_height(0); value.set_hidden(true); } else { value.set_height(cy); value.set_hidden(false); } } } ,repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var range = js_Boot.__cast(this.get_component() , haxe_ui_components_Range); var value = this.findComponent("" + range.get_cssName() + "-value"); var start = range.get_start(); if(start == null) { start = 0; } if(range.virtualStart != null) { start = range.virtualStart; } var min = range.get_min(); if(min == null) { min = 0; } var ucy = this.get_usableHeight(); var m = range.get_max() - min; var d = ucy / m; var startInPixels = ucy - value.get_height() - (start * d - min * d); value.set_left(this.get_paddingLeft()); value.set_top(Math.floor(this.get_paddingTop() + startInPixels)); } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_VerticalRangeLayout(); } ,__class__: haxe_ui_components_VerticalRangeLayout }); var haxe_ui_components__$VerticalRange_Builder = function(component) { haxe_ui_components_RangeBuilder.call(this,component); }; $hxClasses["haxe.ui.components._VerticalRange.Builder"] = haxe_ui_components__$VerticalRange_Builder; haxe_ui_components__$VerticalRange_Builder.__name__ = "haxe.ui.components._VerticalRange.Builder"; haxe_ui_components__$VerticalRange_Builder.__super__ = haxe_ui_components_RangeBuilder; haxe_ui_components__$VerticalRange_Builder.prototype = $extend(haxe_ui_components_RangeBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_components__$VerticalRange_Builder }); var haxe_ui_components_VerticalRule = function() { haxe_ui_components_Rule.call(this); }; $hxClasses["haxe.ui.components.VerticalRule"] = haxe_ui_components_VerticalRule; haxe_ui_components_VerticalRule.__name__ = "haxe.ui.components.VerticalRule"; haxe_ui_components_VerticalRule.__super__ = haxe_ui_components_Rule; haxe_ui_components_VerticalRule.prototype = $extend(haxe_ui_components_Rule.prototype,{ registerBehaviours: function() { haxe_ui_components_Rule.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Rule.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_VerticalRule(); } ,registerComposite: function() { haxe_ui_components_Rule.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components__$VerticalRule_Builder; } ,__class__: haxe_ui_components_VerticalRule }); var haxe_ui_components__$VerticalRule_Builder = function(component) { haxe_ui_components_RuleBuilder.call(this,component); }; $hxClasses["haxe.ui.components._VerticalRule.Builder"] = haxe_ui_components__$VerticalRule_Builder; haxe_ui_components__$VerticalRule_Builder.__name__ = "haxe.ui.components._VerticalRule.Builder"; haxe_ui_components__$VerticalRule_Builder.__super__ = haxe_ui_components_RuleBuilder; haxe_ui_components__$VerticalRule_Builder.prototype = $extend(haxe_ui_components_RuleBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_components__$VerticalRule_Builder }); var haxe_ui_components_VerticalScroll = function() { haxe_ui_components_Scroll.call(this); }; $hxClasses["haxe.ui.components.VerticalScroll"] = haxe_ui_components_VerticalScroll; haxe_ui_components_VerticalScroll.__name__ = "haxe.ui.components.VerticalScroll"; haxe_ui_components_VerticalScroll.__super__ = haxe_ui_components_Scroll; haxe_ui_components_VerticalScroll.prototype = $extend(haxe_ui_components_Scroll.prototype,{ registerBehaviours: function() { haxe_ui_components_Scroll.prototype.registerBehaviours.call(this); this.behaviours.register("posFromCoord",haxe_ui_components__$VerticalScroll_PosFromCoord); this.behaviours.register("applyPageFromCoord",haxe_ui_components__$VerticalScroll_ApplyPageFromCoord); } ,createChildren: function() { haxe_ui_components_Scroll.prototype.createChildren.call(this); if(this.get_componentHeight() <= 0) { this.set_componentHeight(150); } } ,createDefaults: function() { haxe_ui_components_Scroll.prototype.createDefaults.call(this); this._defaultLayoutClass = haxe_ui_components__$VerticalScroll_VerticalScrollLayout; } ,cloneComponent: function() { var c = haxe_ui_components_Scroll.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_VerticalScroll(); } ,__class__: haxe_ui_components_VerticalScroll }); var haxe_ui_components__$VerticalScroll_PosFromCoord = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._VerticalScroll.PosFromCoord"] = haxe_ui_components__$VerticalScroll_PosFromCoord; haxe_ui_components__$VerticalScroll_PosFromCoord.__name__ = "haxe.ui.components._VerticalScroll.PosFromCoord"; haxe_ui_components__$VerticalScroll_PosFromCoord.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$VerticalScroll_PosFromCoord.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(pos) { var p = js_Boot.__cast(pos , haxe_ui_geom_Point); var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var deinc = this._component.findComponent("scroll-deinc-button"); var thumb = this._component.findComponent("scroll-thumb-button"); var ypos = p.y; var minY = 0; if(deinc != null && deinc.get_hidden() == false) { minY = deinc.get_height() + scroll.get_layout().get_verticalSpacing(); } var maxY = scroll.get_layout().get_usableHeight() - thumb.get_height(); if(deinc != null && deinc.get_hidden() == false) { maxY += deinc.get_height() + scroll.get_layout().get_verticalSpacing(); } if(ypos < minY) { ypos = minY; } else if(ypos > maxY) { ypos = maxY; } var ucy = scroll.get_layout().get_usableHeight(); ucy -= thumb.get_height(); var m = scroll.get_max() - scroll.get_min() | 0; var v = ypos - minY; var value = scroll.get_min() + v / ucy * m; return haxe_ui_util_Variant.fromFloat(value); } ,__class__: haxe_ui_components__$VerticalScroll_PosFromCoord }); var haxe_ui_components__$VerticalScroll_ApplyPageFromCoord = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.components._VerticalScroll.ApplyPageFromCoord"] = haxe_ui_components__$VerticalScroll_ApplyPageFromCoord; haxe_ui_components__$VerticalScroll_ApplyPageFromCoord.__name__ = "haxe.ui.components._VerticalScroll.ApplyPageFromCoord"; haxe_ui_components__$VerticalScroll_ApplyPageFromCoord.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_components__$VerticalScroll_ApplyPageFromCoord.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(pos) { var p = js_Boot.__cast(pos , haxe_ui_geom_Point); var scroll = js_Boot.__cast(this._component , haxe_ui_components_Scroll); var thumb = this._component.findComponent("scroll-thumb-button"); if(p.y < thumb.get_screenTop()) { scroll.set_pos(scroll.get_pos() - scroll.get_pageSize()); } else if(p.y > thumb.get_screenTop() + thumb.get_height()) { scroll.set_pos(scroll.get_pos() + scroll.get_pageSize()); } return null; } ,__class__: haxe_ui_components__$VerticalScroll_ApplyPageFromCoord }); var haxe_ui_components__$VerticalScroll_VerticalScrollLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components._VerticalScroll.VerticalScrollLayout"] = haxe_ui_components__$VerticalScroll_VerticalScrollLayout; haxe_ui_components__$VerticalScroll_VerticalScrollLayout.__name__ = "haxe.ui.components._VerticalScroll.VerticalScrollLayout"; haxe_ui_components__$VerticalScroll_VerticalScrollLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components__$VerticalScroll_VerticalScrollLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var scroll = js_Boot.__cast(this.get_component() , haxe_ui_components_Scroll); var thumb = this.get_component().findComponent("scroll-thumb-button"); if(thumb != null) { if(scroll.get_min() == scroll.get_max()) { thumb.hide(); } else { var m = scroll.get_max() - scroll.get_min(); var ucy = this.get_usableHeight(); var thumbHeight = scroll.get_pageSize() / m * ucy; if(scroll.get_thumbSize() != null) { thumbHeight = scroll.get_thumbSize(); } if(thumbHeight < this.get_innerWidth()) { thumbHeight = this.get_innerWidth(); } else if(thumbHeight > ucy) { thumbHeight = ucy; } if(thumbHeight > 0 && isNaN(thumbHeight) == false) { thumb.set_height(thumbHeight); } thumb.show(); } } } ,repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var deinc = this.get_component().findComponent("scroll-deinc-button"); var inc = this.get_component().findComponent("scroll-inc-button"); if(inc != null && this.hidden(inc) == false) { inc.set_top(this.get_component().get_height() - inc.get_height() - this.get_paddingBottom()); } var scroll = js_Boot.__cast(this.get_component() , haxe_ui_components_Scroll); var thumb = this.get_component().findComponent("scroll-thumb-button"); if(thumb != null) { var m = scroll.get_max() - scroll.get_min(); var u = this.get_usableHeight(); u -= thumb.get_height(); var y = (scroll.get_pos() - scroll.get_min()) / m * u; y += this.get_paddingTop(); if(deinc != null && this.hidden(deinc) == false) { y += deinc.get_height() + this.get_verticalSpacing(); } thumb.set_left(Math.round(thumb.get_left())); thumb.set_top(y); } } ,get_usableHeight: function() { var ucy = this.get_innerHeight(); var deinc = this.get_component().findComponent("scroll-deinc-button"); var inc = this.get_component().findComponent("scroll-inc-button"); if(deinc != null && this.hidden(deinc) == false) { ucy -= deinc.get_height() + this.get_verticalSpacing(); } if(inc != null && this.hidden(inc) == false) { ucy -= inc.get_height() + this.get_verticalSpacing(); } return ucy; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components__$VerticalScroll_VerticalScrollLayout(); } ,__class__: haxe_ui_components__$VerticalScroll_VerticalScrollLayout }); var haxe_ui_components_VerticalSlider = function() { haxe_ui_components_Slider.call(this); }; $hxClasses["haxe.ui.components.VerticalSlider"] = haxe_ui_components_VerticalSlider; haxe_ui_components_VerticalSlider.__name__ = "haxe.ui.components.VerticalSlider"; haxe_ui_components_VerticalSlider.__super__ = haxe_ui_components_Slider; haxe_ui_components_VerticalSlider.prototype = $extend(haxe_ui_components_Slider.prototype,{ registerComposite: function() { haxe_ui_components_Slider.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_components_VerticalSliderLayout; this._compositeBuilderClass = haxe_ui_components__$VerticalSlider_Builder; } ,registerBehaviours: function() { haxe_ui_components_Slider.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Slider.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_VerticalSlider(); } ,__class__: haxe_ui_components_VerticalSlider }); var haxe_ui_components_VerticalSliderLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components.VerticalSliderLayout"] = haxe_ui_components_VerticalSliderLayout; haxe_ui_components_VerticalSliderLayout.__name__ = "haxe.ui.components.VerticalSliderLayout"; haxe_ui_components_VerticalSliderLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_VerticalSliderLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); var slider = js_Boot.__cast(this._component , haxe_ui_components_Slider); var range = this.findComponent(null,haxe_ui_components_Range); var rangeValue = range.findComponent("range-value"); var startThumb = this.findComponent("start-thumb"); var endThumb = this.findComponent("end-thumb"); var padding = 0; if(range != null && range.get_layout() != null) { padding = range.get_layout().get_paddingTop(); } if(startThumb != null) { var cy = rangeValue.get_height(); if(rangeValue.get_hidden() == true) { cy = 0; } startThumb.set_top(range.get_top() + rangeValue.get_top() + cy - startThumb.get_height() / 2); startThumb.set_top(Math.ceil(startThumb.get_top())); if(padding > 1 && startThumb.get_top() % 2 != 0) { startThumb.set_top(startThumb.get_top() + padding / 2); } } var cy = rangeValue.get_top(); if(rangeValue.get_hidden() == true) { cy = range.get_height(); } if(slider.get_center() != null) { if(slider.get_pos() >= slider.get_center()) { endThumb.set_top(rangeValue.get_top()); endThumb.set_top(Math.ceil(endThumb.get_top())); } else { endThumb.set_top(rangeValue.get_top() + rangeValue.get_height()); } } else { endThumb.set_top(rangeValue.get_top()); endThumb.set_top(Math.ceil(endThumb.get_top())); if(startThumb != null && endThumb.get_top() % 2 == 0) { endThumb.set_top(endThumb.get_top() + 1); } } if(slider.get_minorTicks() != null && range != null && range.get_layout() != null) { var minorTicks = this.findComponents("minor-tick",haxe_ui_core_Component,1); if(minorTicks != null && minorTicks.length > 0) { var m = slider.get_max() - slider.get_min(); var v = slider.get_minorTicks(); var n = m / v | 0; var i = 0; var padding = range.get_layout().get_paddingTop() + this.get_paddingTop(); var tcy = range.get_layout().get_usableHeight() / n; var _g = 0; while(_g < minorTicks.length) { var tick = minorTicks[_g]; ++_g; tick.set_top(i * tcy + padding); tick.set_top(Math.floor(tick.get_top())); ++i; } } } if(slider.get_majorTicks() != null && range != null && range.get_layout() != null) { var majorTicks = this.findComponents("major-tick",haxe_ui_core_Component,1); if(majorTicks != null && majorTicks.length > 0) { var m = slider.get_max() - slider.get_min(); var v = slider.get_majorTicks(); var n = m / v | 0; var i = 0; var padding = range.get_layout().get_paddingTop() + this.get_paddingTop(); var tcy = range.get_layout().get_usableHeight() / n; var _g = 0; while(_g < majorTicks.length) { var tick = majorTicks[_g]; ++_g; tick.set_top(i * tcy + padding); tick.set_top(Math.floor(tick.get_top())); ++i; } } } } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_VerticalSliderLayout(); } ,__class__: haxe_ui_components_VerticalSliderLayout }); var haxe_ui_components__$VerticalSlider_Builder = function(slider) { haxe_ui_components_SliderBuilder.call(this,slider); }; $hxClasses["haxe.ui.components._VerticalSlider.Builder"] = haxe_ui_components__$VerticalSlider_Builder; haxe_ui_components__$VerticalSlider_Builder.__name__ = "haxe.ui.components._VerticalSlider.Builder"; haxe_ui_components__$VerticalSlider_Builder.__super__ = haxe_ui_components_SliderBuilder; haxe_ui_components__$VerticalSlider_Builder.prototype = $extend(haxe_ui_components_SliderBuilder.prototype,{ createValueComponent: function() { return new haxe_ui_components_VerticalRange(); } ,showWarning: function() { } ,__class__: haxe_ui_components__$VerticalSlider_Builder }); var haxe_ui_components_pickers_ItemPicker = function() { this._panelSelectionEvent = haxe_ui_events_UIEvent.CHANGE; this._dataSource = null; this.isPanelOpen = false; this.panelWidth = null; this.panelOrigin = "auto"; this.panelPosition = "auto"; this.selectionType = "dropPanel"; haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.components.pickers.ItemPicker"] = haxe_ui_components_pickers_ItemPicker; haxe_ui_components_pickers_ItemPicker.__name__ = "haxe.ui.components.pickers.ItemPicker"; haxe_ui_components_pickers_ItemPicker.__interfaces__ = [haxe_ui_core_ICompositeInteractiveComponent,haxe_ui_core_IDataComponent]; haxe_ui_components_pickers_ItemPicker.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_components_pickers_ItemPicker.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ selectionType: null ,panelPosition: null ,panelOrigin: null ,panelWidth: null ,isPanelOpen: null ,_dataSource: null ,get_dataSource: function() { if(this._dataSource == null) { this._dataSource = new haxe_ui_data_ArrayDataSource(); var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_components_pickers_ItemPickerBuilder); builder.handler.applyDataSource(this._dataSource); } return this._dataSource; } ,set_dataSource: function(value) { this._dataSource = value; var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_components_pickers_ItemPickerBuilder); builder.handler.applyDataSource(this._dataSource); return value; } ,_panelSelectionEvent: null ,get_panelSelectionEvent: function() { return this._panelSelectionEvent; } ,set_panelSelectionEvent: function(value) { this._panelSelectionEvent = value; var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_components_pickers_ItemPickerBuilder); builder.set_panelSelectionEvent(this._panelSelectionEvent); return value; } ,showPanel: function() { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_components_pickers_ItemPickerBuilder); builder.showPanel(); } ,hidePanel: function() { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_components_pickers_ItemPickerBuilder); builder.hidePanel(); } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_pickers_ItemPicker(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_pickers_ItemPickerBuilder; this._defaultLayoutClass = haxe_ui_components_pickers__$ItemPicker_Layout; } ,__class__: haxe_ui_components_pickers_ItemPicker ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_panelSelectionEvent:"set_panelSelectionEvent",get_panelSelectionEvent:"get_panelSelectionEvent",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource"}) }); var haxe_ui_components_pickers_ItemPickerHandler = function() { }; $hxClasses["haxe.ui.components.pickers.ItemPickerHandler"] = haxe_ui_components_pickers_ItemPickerHandler; haxe_ui_components_pickers_ItemPickerHandler.__name__ = "haxe.ui.components.pickers.ItemPickerHandler"; haxe_ui_components_pickers_ItemPickerHandler.prototype = { builder: null ,picker: null ,renderer: null ,panel: null ,pausePanelEvents: function() { this.builder.pausePanelEvents(); } ,resumePanelEvents: function() { this.builder.resumePanelEvents(); } ,applyDataSource: function(ds) { } ,onPanelShown: function() { } ,onPanelHidden: function() { } ,onPanelSelection: function(event) { } ,__class__: haxe_ui_components_pickers_ItemPickerHandler }; var haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer = function() { this._triggerIcon = new haxe_ui_components_Image(); this._renderer = new haxe_ui_core_BasicItemRenderer(); haxe_ui_containers_HBox.call(this); this.addComponent(this._renderer); this._triggerIcon.set_scriptAccess(false); this._triggerIcon.set_id("itemPickerTriggerIcon"); this._triggerIcon.addClass("item-picker-trigger-icon"); this.addComponent(this._triggerIcon); }; $hxClasses["haxe.ui.components.pickers._ItemPicker.DefaultItemPickerRenderer"] = haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer; haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer.__name__ = "haxe.ui.components.pickers._ItemPicker.DefaultItemPickerRenderer"; haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer.__super__ = haxe_ui_containers_HBox; haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer.prototype = $extend(haxe_ui_containers_HBox.prototype,{ _renderer: null ,_triggerIcon: null ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer(); } ,__class__: haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer }); var haxe_ui_components_pickers_ItemPickerBuilder = function(picker) { this._panelFiller = null; this._panelVisible = false; this._panelSelectionEvent = haxe_ui_events_UIEvent.CHANGE; this.handler = null; this.panelContainer = new haxe_ui_containers_Box(); this.panel = null; this.renderer = null; haxe_ui_core_CompositeBuilder.call(this,picker); this.picker = picker; this.handler = Type.createInstance(this.get_handlerClass(),[]); this.handler.builder = this; this.handler.picker = picker; picker.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onPickerMouseDown)); }; $hxClasses["haxe.ui.components.pickers.ItemPickerBuilder"] = haxe_ui_components_pickers_ItemPickerBuilder; haxe_ui_components_pickers_ItemPickerBuilder.__name__ = "haxe.ui.components.pickers.ItemPickerBuilder"; haxe_ui_components_pickers_ItemPickerBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_components_pickers_ItemPickerBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ picker: null ,renderer: null ,panel: null ,panelContainer: null ,handler: null ,onPickerMouseDown: function(_) { this.picker.set_focus(true); } ,_panelSelectionEvent: null ,get_panelSelectionEvent: function() { return this._panelSelectionEvent; } ,set_panelSelectionEvent: function(value) { if(this.panel != null) { this.panel.unregisterEvent(this._panelSelectionEvent,$bind(this,this.onPanelSelection)); } this._panelSelectionEvent = value; this.registerPanelEvents(); return value; } ,triggerEvent: null ,get_triggerEvent: function() { return haxe_ui_events_MouseEvent.MOUSE_DOWN; } ,triggerTarget: null ,get_triggerTarget: function() { var target = this.renderer.findComponent("itemPickerTrigger",haxe_ui_core_Component); if(target != null) { this.picker.unregisterEvent(this.get_triggerEvent(),$bind(this,this.onTrigger)); this.picker.removeClass("item-picker-trigger"); return target; } return this.picker; } ,handlerClass: null ,get_handlerClass: function() { return haxe_ui_components_pickers_ItemPickerHandler; } ,create: function() { haxe_ui_core_CompositeBuilder.prototype.create.call(this); var defaultRenderer = new haxe_ui_components_pickers__$ItemPicker_DefaultItemPickerRenderer(); defaultRenderer.set_id("itemPickerRenderer"); this.picker.addComponent(defaultRenderer); this.panelContainer.addClass("item-picker-container"); } ,onReady: function() { haxe_ui_core_CompositeBuilder.prototype.onReady.call(this); } ,addComponent: function(child) { if(child.get_id() == "itemPickerRenderer" || child.get_id() == "item-picker-renderer" || child.classes.indexOf("item-picker-renderer") != -1) { if(this.renderer != null) { this.picker.removeComponent(this.renderer); } child.set_id("itemPickerRenderer"); this.renderer = child; this.handler.renderer = this.renderer; this.registerTriggerEvents(); } else { child.addClass("item-picker-data"); this.panel = child; this.handler.panel = this.panel; this.panelContainer.addComponent(this.panel); this.registerPanelEvents(); return child; } return null; } ,registerTriggerEvents: function() { this.get_triggerTarget().addClass("item-picker-trigger"); if(!this.get_triggerTarget().hasEvent(this.get_triggerEvent(),$bind(this,this.onTrigger))) { this.get_triggerTarget().registerEvent(this.get_triggerEvent(),$bind(this,this.onTrigger)); } } ,registerPanelEvents: function() { if(this.panel != null) { this.panel.registerEvent(this.get_panelSelectionEvent(),$bind(this,this.onPanelSelection)); } } ,pausePanelEvents: function() { if(this.panel != null) { this.panel.pauseEvent(this.get_panelSelectionEvent()); } } ,resumePanelEvents: function() { if(this.panel != null) { this.panel.resumeEvent(this.get_panelSelectionEvent(),true); } } ,onPanelSelection: function(event) { this.handler.onPanelSelection(event); if(!event.canceled) { var changeEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); changeEvent.relatedComponent = event.relatedComponent; changeEvent.relatedEvent = event; this.picker.dispatch(changeEvent); } this.hidePanel(); } ,onTrigger: function(event) { if(!this._panelVisible) { this.picker.set_focus(true); this.showPanel(); } else { this.hidePanel(); } } ,_panelVisible: null ,_panelFiller: null ,showPanel: function() { var _gthis = this; if(this.panel == null || this.panelContainer == null) { return; } this.picker.isPanelOpen = true; this.pausePanelEvents(); this.picker.addClass("selected",true,true); if(this.picker.classes.indexOf("rounded") != -1) { this.panelContainer.addClass("rounded"); } this.panelContainer.set_styleNames(this.picker.get_styleNames()); this.handler.onPanelShown(); this.panelContainer.addClass(this.picker.get_cssName() + "-panel",true,true); this.panelContainer.set_opacity(0); haxe_ui_core_Screen.get_instance().addComponent(this.panelContainer); this.panelContainer.syncComponentValidation(); this.panel.validateNow(); this.panelContainer.validateNow(); haxe_ui_Toolkit.callLater(function() { _gthis.positionPanel(); }); this.positionPanel(); if(this.picker.get_animatable()) { this.panelContainer.fadeIn(); } else { this.panelContainer.set_opacity(1); } haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); this._panelVisible = true; this.resumePanelEvents(); } ,positionPanel: function() { var panelPosition = "down"; var panelOrigin = "left"; var panelPosition = this.picker.panelPosition; var panelOrigin = this.picker.panelOrigin; var panelWidth = this.picker.get_width(); var panelHeight = this.panel.get_height(); if(this.picker.panelWidth != null) { panelWidth = this.picker.panelWidth; } if(panelPosition == "auto") { if(this.picker.get_screenTop() + this.picker.get_height() + panelHeight > haxe_ui_core_Screen.get_instance().get_height()) { panelPosition = "up"; } else { panelPosition = "down"; } } if(panelOrigin == "auto") { if(this.picker.get_screenLeft() + panelWidth > haxe_ui_core_Screen.get_instance().get_width()) { panelOrigin = "right"; } else { panelOrigin = "left"; } } if(panelPosition == "down") { this.panelContainer.addClass("position-down"); } else if(panelPosition == "up") { this.panelContainer.addClass("position-up"); } this.panelContainer.syncComponentValidation(); this.panel.validateNow(); this.panelContainer.validateNow(); var marginTop = 0; var marginLeft = 0; var marginBottom = 0; var marginRight = 0; var horizontalPadding = 0; var verticalPadding = 0; var borderSize = 0; if(this.panelContainer.get_style() != null) { marginTop = this.panelContainer.get_style().marginTop; marginLeft = this.panelContainer.get_style().marginLeft; marginBottom = this.panelContainer.get_style().marginBottom; marginRight = this.panelContainer.get_style().marginRight; horizontalPadding = this.panelContainer.get_style().paddingLeft + this.panelContainer.get_style().paddingRight; verticalPadding = this.panelContainer.get_style().paddingTop + this.panelContainer.get_style().paddingBottom; borderSize = this.panelContainer.get_style().borderTopSize; } if(this._panelFiller == null) { this._panelFiller = new haxe_ui_core_Component(); this._panelFiller.addClass("item-picker-panel-filler"); this._panelFiller.set_includeInLayout(false); this._panelFiller.set_height(borderSize); this.panelContainer.addComponent(this._panelFiller); } var offset = 0; if(panelOrigin == "left" && this.panelContainer.get_style() != null && this.panelContainer.get_style().borderRadiusTopRight != null) { offset = this.panelContainer.get_style().borderRadiusTopRight; } else if(panelOrigin == "right" && this.panelContainer.get_style() != null && this.panelContainer.get_style().borderRadiusTopLeft != null) { offset = this.panelContainer.get_style().borderRadiusTopLeft - 1; } this._panelFiller.set_width(panelWidth - this.picker.get_width() - offset + 1); var useFiller = true; if(this._panelFiller.get_style() != null && this._panelFiller.get_style().hidden == true) { useFiller = false; } if(useFiller && this._panelFiller.get_width() > 0) { this._panelFiller.show(); } else { this._panelFiller.hide(); } this.panel.set_width(panelWidth - horizontalPadding); if(panelOrigin == "left") { this.panelContainer.set_left(this.picker.get_screenLeft()); this._panelFiller.set_left(this.picker.get_width() - borderSize); } else if(panelOrigin == "right") { this.panelContainer.set_left(this.picker.get_screenLeft() + this.picker.get_width() - panelWidth); this._panelFiller.set_left(borderSize + offset); } if(panelPosition == "down") { this.panelContainer.set_top(this.picker.get_screenTop() + this.picker.get_height() + marginTop); this._panelFiller.set_top(0); } else if(panelPosition == "up") { this.panelContainer.set_top(this.picker.get_screenTop() - this.panelContainer.get_height() - marginTop); this._panelFiller.set_top(panelHeight + (verticalPadding - borderSize)); } } ,hidePanel: function() { this.picker.isPanelOpen = false; if(this.picker.get_animatable()) { this.handler.onPanelHidden(); this.picker.removeClass("selected",true,true); haxe_ui_core_Screen.get_instance().removeComponent(this.panelContainer,false); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } else { this.handler.onPanelHidden(); this.picker.removeClass("selected",true,true); haxe_ui_core_Screen.get_instance().removeComponent(this.panelContainer,false); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } this._panelVisible = false; } ,onScreenMouseDown: function(event) { if(this.get_triggerTarget().hitTest(event.screenX,event.screenY)) { return; } if(this.panelContainer.hitTest(event.screenX,event.screenY)) { return; } this.hidePanel(); } ,__class__: haxe_ui_components_pickers_ItemPickerBuilder ,__properties__: $extend(haxe_ui_core_CompositeBuilder.prototype.__properties__,{get_handlerClass:"get_handlerClass",get_triggerTarget:"get_triggerTarget",get_triggerEvent:"get_triggerEvent",set_panelSelectionEvent:"set_panelSelectionEvent",get_panelSelectionEvent:"get_panelSelectionEvent"}) }); var haxe_ui_components_pickers__$ItemPicker_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.components.pickers._ItemPicker.Layout"] = haxe_ui_components_pickers__$ItemPicker_Layout; haxe_ui_components_pickers__$ItemPicker_Layout.__name__ = "haxe.ui.components.pickers._ItemPicker.Layout"; haxe_ui_components_pickers__$ItemPicker_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_components_pickers__$ItemPicker_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var usableSize = this.get_usableSize(); var renderer = this.findComponent("itemPickerRenderer",haxe_ui_core_Component); if(renderer == null) { return; } if(!this.get_component().get_autoWidth()) { renderer.set_width(usableSize.width); var itemText = this.findComponent("itemText",haxe_ui_core_Component); if(itemText != null) { itemText.set_percentWidth(100); } } if(!this.get_component().get_autoHeight()) { renderer.set_height(usableSize.height); } } ,repositionChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.repositionChildren.call(this); } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_components_pickers__$ItemPicker_Layout(); } ,__class__: haxe_ui_components_pickers__$ItemPicker_Layout }); var haxe_ui_components_pickers_ListItemPicker = function() { haxe_ui_components_pickers_ItemPicker.call(this); this.applyRootLayout("itempicker"); var c0 = new haxe_ui_containers_ListView(); c0.set_id("listView"); c0.set_styleString("border:none;border-radius: 0px;"); this.addComponent(c0); this.bindingRoot = true; this.listView = c0; }; $hxClasses["haxe.ui.components.pickers.ListItemPicker"] = haxe_ui_components_pickers_ListItemPicker; haxe_ui_components_pickers_ListItemPicker.__name__ = "haxe.ui.components.pickers.ListItemPicker"; haxe_ui_components_pickers_ListItemPicker.__super__ = haxe_ui_components_pickers_ItemPicker; haxe_ui_components_pickers_ListItemPicker.prototype = $extend(haxe_ui_components_pickers_ItemPicker.prototype,{ listView: null ,registerComposite: function() { haxe_ui_components_pickers_ItemPicker.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_pickers__$ListItemPicker_Builder; } ,registerBehaviours: function() { haxe_ui_components_pickers_ItemPicker.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_pickers_ItemPicker.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_pickers_ListItemPicker(); } ,__class__: haxe_ui_components_pickers_ListItemPicker }); var haxe_ui_components_pickers__$ListItemPicker_Builder = function(picker) { haxe_ui_components_pickers_ItemPickerBuilder.call(this,picker); }; $hxClasses["haxe.ui.components.pickers._ListItemPicker.Builder"] = haxe_ui_components_pickers__$ListItemPicker_Builder; haxe_ui_components_pickers__$ListItemPicker_Builder.__name__ = "haxe.ui.components.pickers._ListItemPicker.Builder"; haxe_ui_components_pickers__$ListItemPicker_Builder.__super__ = haxe_ui_components_pickers_ItemPickerBuilder; haxe_ui_components_pickers__$ListItemPicker_Builder.prototype = $extend(haxe_ui_components_pickers_ItemPickerBuilder.prototype,{ get_handlerClass: function() { return haxe_ui_components_pickers__$ListItemPicker_Handler; } ,__class__: haxe_ui_components_pickers__$ListItemPicker_Builder }); var haxe_ui_components_pickers__$ListItemPicker_Handler = function() { }; $hxClasses["haxe.ui.components.pickers._ListItemPicker.Handler"] = haxe_ui_components_pickers__$ListItemPicker_Handler; haxe_ui_components_pickers__$ListItemPicker_Handler.__name__ = "haxe.ui.components.pickers._ListItemPicker.Handler"; haxe_ui_components_pickers__$ListItemPicker_Handler.__super__ = haxe_ui_components_pickers_ItemPickerHandler; haxe_ui_components_pickers__$ListItemPicker_Handler.prototype = $extend(haxe_ui_components_pickers_ItemPickerHandler.prototype,{ applyDataSource: function(ds) { var listItemPicker = this.picker; listItemPicker.listView.set_dataSource(ds); var indexToSelect = 0; if(indexToSelect != -1) { listItemPicker.listView.set_selectedIndex(indexToSelect); var r = this.renderer.findComponent(null,haxe_ui_core_ItemRenderer); r.set_data(listItemPicker.listView.get_selectedItem()); } } ,onPanelSelection: function(event) { var listItemPicker = this.picker; var r = this.renderer.findComponent(null,haxe_ui_core_ItemRenderer); r.set_data(listItemPicker.listView.get_selectedItem()); } ,__class__: haxe_ui_components_pickers__$ListItemPicker_Handler }); var haxe_ui_components_pickers_MenuItemPicker = function() { this._icon = null; this._showText = true; this._showIcon = true; haxe_ui_components_pickers_ItemPicker.call(this); this.applyRootLayout("itempicker"); var c0 = new haxe_ui_containers_HBox(); c0.set_id("itemPickerRenderer"); var c1 = new haxe_ui_components_Image(); c1.set_id("itemIcon"); c1.set_verticalAlign("center"); c0.addComponent(c1); var c2 = new haxe_ui_components_Label(); c2.set_id("itemText"); c2.set_text("Select Item"); c2.set_verticalAlign("center"); c0.addComponent(c2); var c3 = new haxe_ui_containers_Box(); c3.set_percentHeight(100.); c3.set_styleNames("item-picker-trigger-icon-container"); var c4 = new haxe_ui_components_Image(); c4.set_styleNames("item-picker-trigger-icon"); c3.addComponent(c4); c0.addComponent(c3); this.addComponent(c0); this.bindingRoot = true; this.itemText = c2; this.itemPickerRenderer = c0; this.itemIcon = c1; }; $hxClasses["haxe.ui.components.pickers.MenuItemPicker"] = haxe_ui_components_pickers_MenuItemPicker; haxe_ui_components_pickers_MenuItemPicker.__name__ = "haxe.ui.components.pickers.MenuItemPicker"; haxe_ui_components_pickers_MenuItemPicker.__super__ = haxe_ui_components_pickers_ItemPicker; haxe_ui_components_pickers_MenuItemPicker.prototype = $extend(haxe_ui_components_pickers_ItemPicker.prototype,{ _showIcon: null ,get_showIcon: function() { return this._showIcon; } ,set_showIcon: function(value) { this._showIcon = value; this.itemIcon.set_hidden(!this._showIcon); return value; } ,_showText: null ,get_showText: function() { return this._showText; } ,set_showText: function(value) { this._showText = value; if(!this._showText) { this.itemText.set_text(""); } return value; } ,set_text: function(value) { if(this.get_showText()) { this.itemText.set_text(value); this.itemText.show(); } return haxe_ui_components_pickers_ItemPicker.prototype.set_text.call(this,value); } ,_icon: null ,get_icon: function() { return this._icon; } ,set_icon: function(value) { this._icon = value; if(this.get_showIcon() == true) { this.itemIcon.set_resource(value); this.itemIcon.show(); } return value; } ,itemText: null ,itemPickerRenderer: null ,itemIcon: null ,registerComposite: function() { haxe_ui_components_pickers_ItemPicker.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_pickers__$MenuItemPicker_Builder; } ,registerBehaviours: function() { haxe_ui_components_pickers_ItemPicker.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_pickers_ItemPicker.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_pickers_MenuItemPicker(); } ,__class__: haxe_ui_components_pickers_MenuItemPicker ,__properties__: $extend(haxe_ui_components_pickers_ItemPicker.prototype.__properties__,{set_icon:"set_icon",get_icon:"get_icon",set_showText:"set_showText",get_showText:"get_showText",set_showIcon:"set_showIcon",get_showIcon:"get_showIcon"}) }); var haxe_ui_components_pickers__$MenuItemPicker_Builder = function(menuPicker) { this.menu = null; haxe_ui_components_pickers_ItemPickerBuilder.call(this,menuPicker); this.menuPicker = menuPicker; }; $hxClasses["haxe.ui.components.pickers._MenuItemPicker.Builder"] = haxe_ui_components_pickers__$MenuItemPicker_Builder; haxe_ui_components_pickers__$MenuItemPicker_Builder.__name__ = "haxe.ui.components.pickers._MenuItemPicker.Builder"; haxe_ui_components_pickers__$MenuItemPicker_Builder.__super__ = haxe_ui_components_pickers_ItemPickerBuilder; haxe_ui_components_pickers__$MenuItemPicker_Builder.prototype = $extend(haxe_ui_components_pickers_ItemPickerBuilder.prototype,{ menuPicker: null ,menu: null ,create: function() { haxe_ui_components_pickers_ItemPickerBuilder.prototype.create.call(this); this.menu = new haxe_ui_containers_menus_Menu(); this.menu.set_id("primaryPickerMenu"); this.menu.set_styleNames(this.picker.get_styleNames()); this.menuPicker.addComponent(this.menu); } ,addComponent: function(child) { if(child.get_id() != "primaryPickerMenu" && (((child) instanceof haxe_ui_containers_menus_Menu) || ((child) instanceof haxe_ui_containers_menus_MenuItem) || ((child) instanceof haxe_ui_containers_menus_MenuSeparator))) { if(((child) instanceof haxe_ui_containers_menus_Menu)) { child.addClasses(["menuitempicker","secondary-menu"]); child.set_styleNames(this.picker.get_styleNames()); } this.menu.addComponent(child); return child; } return haxe_ui_components_pickers_ItemPickerBuilder.prototype.addComponent.call(this,child); } ,addComponentAt: function(child,index) { if(child.get_id() != "primaryPickerMenu" && (((child) instanceof haxe_ui_containers_menus_Menu) || ((child) instanceof haxe_ui_containers_menus_MenuItem) || ((child) instanceof haxe_ui_containers_menus_MenuSeparator))) { this.menu.addComponentAt(child,index); return child; } return haxe_ui_components_pickers_ItemPickerBuilder.prototype.addComponentAt.call(this,child,index); } ,get_panelSelectionEvent: function() { return haxe_ui_events_MenuEvent.MENU_SELECTED; } ,get_handlerClass: function() { return haxe_ui_components_pickers__$MenuItemPicker_Handler; } ,__class__: haxe_ui_components_pickers__$MenuItemPicker_Builder }); var haxe_ui_components_pickers__$MenuItemPicker_Handler = function() { }; $hxClasses["haxe.ui.components.pickers._MenuItemPicker.Handler"] = haxe_ui_components_pickers__$MenuItemPicker_Handler; haxe_ui_components_pickers__$MenuItemPicker_Handler.__name__ = "haxe.ui.components.pickers._MenuItemPicker.Handler"; haxe_ui_components_pickers__$MenuItemPicker_Handler.__super__ = haxe_ui_components_pickers_ItemPickerHandler; haxe_ui_components_pickers__$MenuItemPicker_Handler.prototype = $extend(haxe_ui_components_pickers_ItemPickerHandler.prototype,{ onPanelSelection: function(event) { var menuPicker = this.picker; var menuEvent = event; event.relatedComponent = menuEvent.menuItem; var useIcon = false; var useText = false; if(menuEvent.menuItem.userData != null) { if(menuEvent.menuItem.userData.useIcon != null) { useIcon = Std.string(menuEvent.menuItem.userData.useIcon) == "true"; } if(menuEvent.menuItem.userData.useText != null) { useText = Std.string(menuEvent.menuItem.userData.useText) == "true"; } } if(useIcon) { menuPicker.set_icon(menuEvent.menuItem.get_icon()); } if(useText) { menuPicker.set_text(menuEvent.menuItem.get_text()); } } ,applyDataSource: function(ds) { if(ds == null) { return; } var builder = js_Boot.__cast(this.picker._compositeBuilder , haxe_ui_components_pickers__$MenuItemPicker_Builder); ds.onChange = $bind(this,this.onDataSourceChanged); var _g = 0; var _g1 = ds.get_size(); while(_g < _g1) { var i = _g++; var existing = builder.menu.getComponentAt(i); var item = ds.get(i); var type = item.type; if(type == null) { type = item.id; } if(existing == null) { if(type == null) { var menuItem = new haxe_ui_containers_menus_MenuItem(); menuItem.set_text(item.text); menuItem.set_icon(haxe_ui_util_Variant.fromString(Std.string(item.icon))); menuItem.set_id(item.id); menuItem.userData = item; this.picker.addComponentAt(menuItem,i); } else { switch(type) { case "menu-separator":case "separator": var menuSeparator = new haxe_ui_containers_menus_MenuSeparator(); this.picker.addComponentAt(menuSeparator,i); break; default: var menuItem1 = new haxe_ui_containers_menus_MenuItem(); menuItem1.set_text(item.text); menuItem1.set_icon(haxe_ui_util_Variant.fromString(Std.string(item.icon))); menuItem1.set_id(item.id); menuItem1.userData = item; this.picker.addComponentAt(menuItem1,i); } } } else if(((existing) instanceof haxe_ui_containers_menus_MenuItem) && type != "separator") { var existingMenuItem = js_Boot.__cast(existing , haxe_ui_containers_menus_MenuItem); existingMenuItem.set_text(item.text); existingMenuItem.set_icon(haxe_ui_util_Variant.fromString(Std.string(item.icon))); existingMenuItem.set_id(item.id); existingMenuItem.userData = item; } } } ,onDataSourceChanged: function() { this.applyDataSource(this.picker.get_dataSource()); } ,__class__: haxe_ui_components_pickers__$MenuItemPicker_Handler }); var haxe_ui_components_pickers_MonthPicker = function() { this.isMonthDisabled = null; var _gthis = this; haxe_ui_components_pickers_ItemPicker.call(this); this.applyRootLayout("itempicker"); var c0 = new haxe_ui_containers_HBox(); c0.set_id("itemPickerRenderer"); c0.set_styleString("spacing:0px"); var c1 = new haxe_ui_components_MonthStepper(); c1.set_id("monthStepper"); c1.set_percentWidth(100.); c1.set_allowFocus(false); c0.addComponent(c1); var c2 = new haxe_ui_containers_Box(); c2.set_id("itemPickerTrigger"); c2.set_percentHeight(100.); var c3 = new haxe_ui_components_Image(); c3.set_styleNames("item-picker-trigger-icon"); c2.addComponent(c3); c0.addComponent(c2); this.addComponent(c0); this.panelWidth = 300; this.bindingRoot = true; this.monthStepper = c1; this.itemPickerTrigger = c2; this.itemPickerRenderer = c0; var c = this.monthStepper; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onMonthStepperChanged)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "monthStepper" + ")",{ fileName : "haxe/ui/components/pickers/MonthPicker.hx", lineNumber : 49, className : "haxe.ui.components.pickers.MonthPicker", methodName : "new"}); } }; $hxClasses["haxe.ui.components.pickers.MonthPicker"] = haxe_ui_components_pickers_MonthPicker; haxe_ui_components_pickers_MonthPicker.__name__ = "haxe.ui.components.pickers.MonthPicker"; haxe_ui_components_pickers_MonthPicker.__super__ = haxe_ui_components_pickers_ItemPicker; haxe_ui_components_pickers_MonthPicker.prototype = $extend(haxe_ui_components_pickers_ItemPicker.prototype,{ get_selectedMonth: function() { return this.monthStepper.get_selectedMonth(); } ,set_selectedMonth: function(value) { this.monthStepper.set_selectedMonth(value); return value; } ,get_selectedYear: function() { return this.monthStepper.get_selectedYear(); } ,set_selectedYear: function(value) { this.monthStepper.set_selectedYear(value); return value; } ,get_allowFutureDates: function() { return this.monthStepper.get_allowFutureDates(); } ,set_allowFutureDates: function(value) { this.monthStepper.set_allowFutureDates(value); return value; } ,isMonthDisabled: null ,onMonthStepperChanged: function(event) { this.dispatch(event); } ,monthStepper: null ,itemPickerTrigger: null ,itemPickerRenderer: null ,registerComposite: function() { haxe_ui_components_pickers_ItemPicker.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_components_pickers__$MonthPicker_Builder; } ,registerBehaviours: function() { haxe_ui_components_pickers_ItemPicker.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_pickers_ItemPicker.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_pickers_MonthPicker(); } ,__class__: haxe_ui_components_pickers_MonthPicker ,__properties__: $extend(haxe_ui_components_pickers_ItemPicker.prototype.__properties__,{set_allowFutureDates:"set_allowFutureDates",get_allowFutureDates:"get_allowFutureDates",set_selectedYear:"set_selectedYear",get_selectedYear:"get_selectedYear",set_selectedMonth:"set_selectedMonth",get_selectedMonth:"get_selectedMonth"}) }); var haxe_ui_components_pickers__$MonthPicker_Builder = function(monthPicker) { haxe_ui_components_pickers_ItemPickerBuilder.call(this,monthPicker); this.monthPicker = monthPicker; }; $hxClasses["haxe.ui.components.pickers._MonthPicker.Builder"] = haxe_ui_components_pickers__$MonthPicker_Builder; haxe_ui_components_pickers__$MonthPicker_Builder.__name__ = "haxe.ui.components.pickers._MonthPicker.Builder"; haxe_ui_components_pickers__$MonthPicker_Builder.__super__ = haxe_ui_components_pickers_ItemPickerBuilder; haxe_ui_components_pickers__$MonthPicker_Builder.prototype = $extend(haxe_ui_components_pickers_ItemPickerBuilder.prototype,{ monthPicker: null ,monthPickerPanel: null ,get_handlerClass: function() { return haxe_ui_components_pickers__$MonthPicker_Handler; } ,create: function() { haxe_ui_components_pickers_ItemPickerBuilder.prototype.create.call(this); this.monthPickerPanel = new haxe_ui_components_pickers_MonthPickerPanel(); this.monthPicker.addComponent(this.monthPickerPanel); } ,onReady: function() { haxe_ui_components_pickers_ItemPickerBuilder.prototype.onReady.call(this); } ,__class__: haxe_ui_components_pickers__$MonthPicker_Builder }); var haxe_ui_components_pickers__$MonthPicker_Handler = function() { }; $hxClasses["haxe.ui.components.pickers._MonthPicker.Handler"] = haxe_ui_components_pickers__$MonthPicker_Handler; haxe_ui_components_pickers__$MonthPicker_Handler.__name__ = "haxe.ui.components.pickers._MonthPicker.Handler"; haxe_ui_components_pickers__$MonthPicker_Handler.__super__ = haxe_ui_components_pickers_ItemPickerHandler; haxe_ui_components_pickers__$MonthPicker_Handler.prototype = $extend(haxe_ui_components_pickers_ItemPickerHandler.prototype,{ onPanelShown: function() { var monthPicker = this.picker; var monthPickerPanel = this.panel; monthPickerPanel.monthPicker = monthPicker; monthPickerPanel.set_selectedYear(monthPicker.get_selectedYear()); monthPickerPanel.set_selectedMonth(monthPicker.get_selectedMonth()); } ,onPanelHidden: function() { } ,onPanelSelection: function(event) { var monthPicker = this.picker; var monthPickerPanel = this.panel; monthPicker.set_selectedYear(monthPickerPanel.get_selectedYear()); monthPicker.set_selectedMonth(monthPickerPanel.get_selectedMonth()); } ,__class__: haxe_ui_components_pickers__$MonthPicker_Handler }); var haxe_ui_components_pickers_MonthPickerPanel = function() { this._selectedYear = null; this._selectedMonth = null; haxe_ui_containers_VBox.call(this); this.applyRootLayout("vbox"); var c0 = new haxe_ui_containers_HBox(); c0.set_percentWidth(100.); c0.set_styleString("padding:10px;padding-top: 15px;padding-bottom:15px;spacing:10px;"); var c1 = new haxe_ui_components_Image(); c1.set_styleNames("month-deinc"); c1.set_verticalAlign("center"); c0.addComponent(c1); var c2 = new haxe_ui_containers_Grid(); c2.set_id("monthButtons"); c2.set_percentWidth(100.); c2.set_columns(4); var c3 = new haxe_ui_components_Button(); c3.set_percentWidth(100.); c3.set_text("{{jan}}"); c3.set_styleNames("month-button"); c2.addComponent(c3); var c4 = new haxe_ui_components_Button(); c4.set_percentWidth(100.); c4.set_text("{{feb}}"); c4.set_styleNames("month-button"); c2.addComponent(c4); var c5 = new haxe_ui_components_Button(); c5.set_percentWidth(100.); c5.set_text("{{mar}}"); c5.set_styleNames("month-button"); c2.addComponent(c5); var c6 = new haxe_ui_components_Button(); c6.set_percentWidth(100.); c6.set_text("{{apr}}"); c6.set_styleNames("month-button"); c2.addComponent(c6); var c7 = new haxe_ui_components_Button(); c7.set_percentWidth(100.); c7.set_text("{{may}}"); c7.set_styleNames("month-button"); c2.addComponent(c7); var c8 = new haxe_ui_components_Button(); c8.set_percentWidth(100.); c8.set_text("{{jun}}"); c8.set_styleNames("month-button"); c2.addComponent(c8); var c9 = new haxe_ui_components_Button(); c9.set_percentWidth(100.); c9.set_text("{{jul}}"); c9.set_styleNames("month-button"); c2.addComponent(c9); var c10 = new haxe_ui_components_Button(); c10.set_percentWidth(100.); c10.set_text("{{aug}}"); c10.set_styleNames("month-button"); c2.addComponent(c10); var c11 = new haxe_ui_components_Button(); c11.set_percentWidth(100.); c11.set_text("{{sep}}"); c11.set_styleNames("month-button"); c2.addComponent(c11); var c12 = new haxe_ui_components_Button(); c12.set_percentWidth(100.); c12.set_text("{{oct}}"); c12.set_styleNames("month-button"); c2.addComponent(c12); var c13 = new haxe_ui_components_Button(); c13.set_percentWidth(100.); c13.set_text("{{nov}}"); c13.set_styleNames("month-button"); c2.addComponent(c13); var c14 = new haxe_ui_components_Button(); c14.set_percentWidth(100.); c14.set_text("{{dec}}"); c14.set_styleNames("month-button"); c2.addComponent(c14); c0.addComponent(c2); var c15 = new haxe_ui_components_Image(); c15.set_styleNames("month-inc"); c15.set_verticalAlign("center"); c0.addComponent(c15); this.addComponent(c0); var c16 = new haxe_ui_components_Label(); c16.set_id("yearLabel"); c16.set_percentWidth(100.); c16.set_styleString("text-align:center;padding: 5px;"); c16.set_horizontalAlign("center"); this.addComponent(c16); this.set_styleString("padding: 0px;spacing:0;"); this.bindingRoot = true; this.yearLabel = c16; this.monthButtons = c2; c3.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("jan")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c3,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("jan"); }); c4.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("feb")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c4,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("feb"); }); c5.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("mar")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c5,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("mar"); }); c6.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("apr")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c6,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("apr"); }); c7.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("may")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c7,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("may"); }); c8.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("jun")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c8,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("jun"); }); c9.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("jul")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c9,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("jul"); }); c10.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("aug")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c10,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("aug"); }); c11.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("sep")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c11,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("sep"); }); c12.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("oct")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c12,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("oct"); }); c13.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("nov")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c13,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("nov"); }); c14.set_text(haxe_ui_locale_LocaleManager.get_instance().lookupString("dec")); haxe_ui_locale_LocaleManager.get_instance().registerComponent(c14,"text",function() { return haxe_ui_locale_LocaleManager.get_instance().lookupString("dec"); }); var _g = 0; var _this = this.monthButtons; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var button = _g1[_g]; ++_g; button.set_onClick($bind(this,this.onMonthClicked)); } }; $hxClasses["haxe.ui.components.pickers.MonthPickerPanel"] = haxe_ui_components_pickers_MonthPickerPanel; haxe_ui_components_pickers_MonthPickerPanel.__name__ = "haxe.ui.components.pickers.MonthPickerPanel"; haxe_ui_components_pickers_MonthPickerPanel.__super__ = haxe_ui_containers_VBox; haxe_ui_components_pickers_MonthPickerPanel.prototype = $extend(haxe_ui_containers_VBox.prototype,{ monthPicker: null ,_selectedMonth: null ,get_selectedMonth: function() { return this._selectedMonth; } ,set_selectedMonth: function(value) { if(this._selectedMonth != value) { this._selectedMonth = value; var index = 0; var maxDate = this.monthPicker.monthStepper.maxDate; var _g = 0; var _this = this.monthButtons; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(index != this._selectedMonth) { button.removeClass("selected"); } else { button.addClass("selected"); } var disabled = false; if(this.monthPicker.isMonthDisabled != null) { disabled = this.monthPicker.isMonthDisabled(index,this._selectedYear); } if(maxDate != null) { if(this._selectedYear > maxDate.getFullYear()) { disabled = true; } else if(this._selectedYear == maxDate.getFullYear() && index > maxDate.getMonth()) { disabled = true; } } button.set_disabled(disabled); ++index; } } return value; } ,_selectedYear: null ,get_selectedYear: function() { return this._selectedYear; } ,set_selectedYear: function(value) { if(this._selectedYear != value) { this._selectedYear = value; this.yearLabel.set_text("" + this._selectedYear); } return value; } ,onMonthClicked: function(event) { var index = this.monthButtons.getComponentIndex(event.target); this.set_selectedMonth(index); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); this.dispatch(event); } ,yearLabel: null ,monthButtons: null ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_pickers_MonthPickerPanel(); } ,__class__: haxe_ui_components_pickers_MonthPickerPanel ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_selectedYear:"set_selectedYear",get_selectedYear:"get_selectedYear",set_selectedMonth:"set_selectedMonth",get_selectedMonth:"get_selectedMonth"}) }); var haxe_ui_components_popups_ColorPickerPopup = function() { this._liveTracking = true; haxe_ui_components_DropDown.call(this); this.applyRootLayout("dropdown"); var c0 = new haxe_ui_core_ItemRenderer(); c0.set_percentWidth(100.); var c1 = new haxe_ui_containers_Box(); c1.set_id("selectedColorPreviewContainer"); c1.set_percentWidth(100.); var c2 = new haxe_ui_containers_Box(); c2.set_id("selectedColorPreview"); c2.set_percentWidth(100.); c2.set_styleString("background-color:#ff0000"); var c3 = new haxe_ui_components_Label(); c3.set_text(""); c2.addComponent(c3); c1.addComponent(c2); c0.addComponent(c1); this.addComponent(c0); this.set_width(65.); this.set_type("color"); this.bindingRoot = true; var this1 = haxe_ui_components_DropDownBuilder.HANDLER_MAP; var value = haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler.__name__; this1.h["color"] = value; }; $hxClasses["haxe.ui.components.popups.ColorPickerPopup"] = haxe_ui_components_popups_ColorPickerPopup; haxe_ui_components_popups_ColorPickerPopup.__name__ = "haxe.ui.components.popups.ColorPickerPopup"; haxe_ui_components_popups_ColorPickerPopup.__super__ = haxe_ui_components_DropDown; haxe_ui_components_popups_ColorPickerPopup.prototype = $extend(haxe_ui_components_DropDown.prototype,{ _liveTracking: null ,get_liveTracking: function() { return this._liveTracking; } ,set_liveTracking: function(value) { this._liveTracking = value; return value; } ,registerBehaviours: function() { haxe_ui_components_DropDown.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_DropDown.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_popups_ColorPickerPopup(); } ,__class__: haxe_ui_components_popups_ColorPickerPopup ,__properties__: $extend(haxe_ui_components_DropDown.prototype.__properties__,{set_liveTracking:"set_liveTracking",get_liveTracking:"get_liveTracking"}) }); var haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler = function(dropdown) { this._cachedSelectedColor = null; this._view = null; haxe_ui_components_DropDownHandler.call(this,dropdown); }; $hxClasses["haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupHandler"] = haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler; haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler.__name__ = "haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupHandler"; haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler.__super__ = haxe_ui_components_DropDownHandler; haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler.prototype = $extend(haxe_ui_components_DropDownHandler.prototype,{ _view: null ,get_component: function() { if(this._view == null) { this._view = new haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView(); this._view.dropdown = this._dropdown; this._view.set_liveTracking((js_Boot.__cast(this._dropdown , haxe_ui_components_popups_ColorPickerPopup)).get_liveTracking()); this._view.set_currentColor(this._cachedSelectedColor); this._view.set_onChange($bind(this,this.onColorChange)); } return this._view; } ,prepare: function(wrapper) { haxe_ui_components_DropDownHandler.prototype.prepare.call(this,wrapper); if(this._cachedSelectedColor != null) { this.set_selectedItem(this._cachedSelectedColor); } } ,_cachedSelectedColor: null ,get_selectedItem: function() { if(this._view != null) { this._cachedSelectedColor = this._view.get_currentColor(); return this._view.get_currentColor(); } return this._cachedSelectedColor; } ,set_selectedItem: function(value) { if(typeof(value) == "string") { this._cachedSelectedColor = haxe_ui_util_Color.fromString(value); } else { this._cachedSelectedColor = value; } if(this._view != null) { this._view.set_currentColor(this._cachedSelectedColor); } this.onColorChange(null); return value; } ,onColorChange: function(e) { if(this._view != null) { this._cachedSelectedColor = this._view.get_currentColor(); } var itemRenderer = this._dropdown.findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer != null) { var preview = itemRenderer.findComponent("selectedColorPreview",haxe_ui_containers_Box); if(preview != null) { preview.set_backgroundColor(haxe_ui_util_Color.fromString(haxe_ui_util_Color.toHex(this._cachedSelectedColor))); var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); event.value = haxe_ui_util_Variant.fromString(haxe_ui_util_Color.toHex(this._cachedSelectedColor)); this._dropdown.dispatch(event); } } } ,__class__: haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupHandler }); var haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView = function() { this._liveTracking = true; this.dropdown = null; var _gthis = this; haxe_ui_containers_VBox.call(this); this.applyRootLayout("vbox"); var c0 = new haxe_ui_components_ColorPicker(); c0.set_id("picker"); this.addComponent(c0); var c1 = new haxe_ui_containers_Box(); c1.set_id("cancelApplyButtons"); c1.set_percentWidth(100.); c1.set_styleString("padding-top: 5px;"); c1.set_hidden(true); var c2 = new haxe_ui_containers_HBox(); c2.set_horizontalAlign("right"); var c3 = new haxe_ui_components_Button(); c3.set_id("cancelButton"); c3.set_text("Cancel"); c3.set_styleNames("text-small"); c3.set_styleString("padding: 4px 8px;"); c2.addComponent(c3); var c4 = new haxe_ui_components_Button(); c4.set_id("applyButton"); c4.set_text("Apply"); c4.set_styleNames("text-small"); c4.set_styleString("padding: 4px 8px;"); c2.addComponent(c4); c1.addComponent(c2); this.addComponent(c1); this.set_styleString("spacing:0;padding:5px;"); this.bindingRoot = true; this.picker = c0; this.cancelButton = c3; this.cancelApplyButtons = c1; this.applyButton = c4; var c = this.picker; if(c != null) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onPickerChange)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "picker" + ")",{ fileName : "haxe/ui/components/popups/ColorPickerPopup.hx", lineNumber : 118, className : "haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView", methodName : "new"}); } var c = this.cancelButton; if(c != null) { c.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onCancel)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "cancelButton" + ")",{ fileName : "haxe/ui/components/popups/ColorPickerPopup.hx", lineNumber : 149, className : "haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView", methodName : "new"}); } var c = this.applyButton; if(c != null) { c.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onApply)); } else { haxe_Log.trace("WARNING: could not find event dispatcher to register event (" + "applyButton" + ")",{ fileName : "haxe/ui/components/popups/ColorPickerPopup.hx", lineNumber : 154, className : "haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView", methodName : "new"}); } }; $hxClasses["haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView"] = haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView; haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView.__name__ = "haxe.ui.components.popups._ColorPickerPopup.ColorPickerPopupView"; haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView.__super__ = haxe_ui_containers_VBox; haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView.prototype = $extend(haxe_ui_containers_VBox.prototype,{ dropdown: null ,onPickerChange: function(_) { if(this._liveTracking == true) { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } } ,get_currentColor: function() { return this.picker.get_currentColor(); } ,set_currentColor: function(value) { this.picker.set_currentColor(value); return value; } ,_liveTracking: null ,get_liveTracking: function() { return this._liveTracking; } ,set_liveTracking: function(value) { this._liveTracking = value; if(this._liveTracking == true) { this.cancelApplyButtons.hide(); } else { this.cancelApplyButtons.show(); } return value; } ,onCancel: function(_) { this.dropdown.hideDropDown(); } ,onApply: function(_) { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); this.dropdown.hideDropDown(); } ,picker: null ,cancelButton: null ,cancelApplyButtons: null ,applyButton: null ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView(); } ,__class__: haxe_ui_components_popups__$ColorPickerPopup_ColorPickerPopupView ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_liveTracking:"set_liveTracking",get_liveTracking:"get_liveTracking",set_currentColor:"set_currentColor",get_currentColor:"get_currentColor"}) }); var haxe_ui_constants_ScrollMode = {}; haxe_ui_constants_ScrollMode.fromString = function(s) { switch(s.toLowerCase()) { case "default": return "default"; case "drag": return "drag"; case "hybrid": return "hybrid"; case "inertial": return "inertial"; case "native": return "native"; case "normal": return "normal"; default: throw haxe_Exception.thrown("invalid ScrollMode enum value '" + s + "'"); } }; haxe_ui_constants_ScrollMode.fromVariant = function(v) { if(v == null || haxe_ui_util_Variant.get_isNull(v)) { return null; } return haxe_ui_constants_ScrollMode.fromString(haxe_ui_util_Variant.toString(v)); }; var haxe_ui_containers_Absolute = function() { haxe_ui_containers_Box.call(this); this.set_layout(new haxe_ui_layouts_AbsoluteLayout()); }; $hxClasses["haxe.ui.containers.Absolute"] = haxe_ui_containers_Absolute; haxe_ui_containers_Absolute.__name__ = "haxe.ui.containers.Absolute"; haxe_ui_containers_Absolute.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Absolute.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Absolute(); } ,__class__: haxe_ui_containers_Absolute }); var haxe_ui_containers_Accordion = function() { haxe_ui_containers_VBox.call(this); }; $hxClasses["haxe.ui.containers.Accordion"] = haxe_ui_containers_Accordion; haxe_ui_containers_Accordion.__name__ = "haxe.ui.containers.Accordion"; haxe_ui_containers_Accordion.__super__ = haxe_ui_containers_VBox; haxe_ui_containers_Accordion.prototype = $extend(haxe_ui_containers_VBox.prototype,{ registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$Accordion_Events; this._compositeBuilderClass = haxe_ui_containers__$Accordion_Builder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("pageIndex",haxe_ui_containers__$Accordion_PageIndex,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedPage",haxe_ui_behaviours_DefaultBehaviour); } ,get_pageIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("pageIndex")); } ,set_pageIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("pageIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pageIndex")); return value; } ,get_selectedPage: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedPage")); } ,set_selectedPage: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedPage",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedPage")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Accordion(); } ,__class__: haxe_ui_containers_Accordion ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_selectedPage:"set_selectedPage",get_selectedPage:"get_selectedPage",set_pageIndex:"set_pageIndex",get_pageIndex:"get_pageIndex"}) }); var haxe_ui_containers__$Accordion_PageIndex = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Accordion.PageIndex"] = haxe_ui_containers__$Accordion_PageIndex; haxe_ui_containers__$Accordion_PageIndex.__name__ = "haxe.ui.containers._Accordion.PageIndex"; haxe_ui_containers__$Accordion_PageIndex.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$Accordion_PageIndex.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { var _gthis = this; if(haxe_ui_util_Variant.eq(value,this._value)) { return; } this._value = value; if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromInt(-1))) { return; } var buttons = this._component.findComponents(null,haxe_ui_components_Button,1); var selectedIndex = haxe_ui_util_Variant.toInt(value); var button = buttons[selectedIndex]; var panel = this._component.getComponentAt(this._component.getComponentIndex(button) + 1); panel.registerEvent(haxe_ui_events_AnimationEvent.START,function(event) { panel.unregisterEvents(haxe_ui_events_AnimationEvent.START); _gthis._component.dispatch(event); }); panel.registerEvent(haxe_ui_events_AnimationEvent.END,function(event) { panel.unregisterEvents(haxe_ui_events_AnimationEvent.END); _gthis._component.dispatch(event); }); panel.swapClass(":expanded",":collapsed"); panel.set_hidden(false); (js_Boot.__cast(this._component , haxe_ui_containers_Accordion)).set_selectedPage(panel); button.set_selected(true); var _g = 0; while(_g < buttons.length) { var b = buttons[_g]; ++_g; if(b != button) { var tempIndex = this._component.getComponentIndex(b); var tempPanel = this._component.getComponentAt(tempIndex + 1); b.set_selected(false); tempPanel.swapClass(":collapsed",":expanded"); } } this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_containers__$Accordion_PageIndex }); var haxe_ui_containers__$Accordion_Events = function(accordion) { haxe_ui_events_Events.call(this,accordion); this._accordion = accordion; }; $hxClasses["haxe.ui.containers._Accordion.Events"] = haxe_ui_containers__$Accordion_Events; haxe_ui_containers__$Accordion_Events.__name__ = "haxe.ui.containers._Accordion.Events"; haxe_ui_containers__$Accordion_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers__$Accordion_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _accordion: null ,register: function() { var buttons = this._target.findComponents(null,haxe_ui_components_Button,1); var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; if(button.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)) == false) { button.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)); } } } ,unregister: function() { var buttons = this._target.findComponents(null,haxe_ui_components_Button,1); var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; button.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)); } } ,onButtonChanged: function(event) { var buttons = this._target.findComponents(null,haxe_ui_components_Button,1); var button = event.target; var index = buttons.indexOf(button); if(button.get_selected() == true) { if(index == this._accordion.get_pageIndex()) { return; } this._accordion.set_pageIndex(index); } else if(index == this._accordion.get_pageIndex()) { button.set_selected(true); } } ,onPageAnimationStart: function(event) { haxe_Log.trace("start",{ fileName : "haxe/ui/containers/Accordion.hx", lineNumber : 115, className : "haxe.ui.containers._Accordion.Events", methodName : "onPageAnimationStart"}); } ,onPageAnimationEnd: function(event) { haxe_Log.trace("end",{ fileName : "haxe/ui/containers/Accordion.hx", lineNumber : 119, className : "haxe.ui.containers._Accordion.Events", methodName : "onPageAnimationEnd"}); } ,__class__: haxe_ui_containers__$Accordion_Events }); var haxe_ui_containers__$Accordion_Builder = function(accordion) { haxe_ui_core_CompositeBuilder.call(this,accordion); this._accordion = accordion; }; $hxClasses["haxe.ui.containers._Accordion.Builder"] = haxe_ui_containers__$Accordion_Builder; haxe_ui_containers__$Accordion_Builder.__name__ = "haxe.ui.containers._Accordion.Builder"; haxe_ui_containers__$Accordion_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Accordion_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _accordion: null ,onReady: function() { haxe_ui_core_CompositeBuilder.prototype.onReady.call(this); var _g = 0; var _this = this._accordion; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_animatable(true); } } ,addComponent: function(child) { if(child.classes.indexOf("accordion-button") == -1 && child.classes.indexOf("accordion-page") == -1) { var button = new haxe_ui_components_Button(); button.set_text(child.get_text()); button.addClass("accordion-button"); button.set_toggle(true); button.set_scriptAccess(false); if(child.get_id() != null) { button.set_id(child.get_id() + "Button"); } this._accordion.addComponent(button); if(child.get_disabled() == true) { button.set_disabled(true); } if(!this._accordion.get_isReady()) { child.set_animatable(false); } else { child.set_animatable(false); haxe_ui_Toolkit.callLater(function() { child.set_animatable(true); }); } child.set_percentWidth(100); child.addClass("accordion-page"); child.registerEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onPagePropertyChanged)); var c = this._accordion.addComponent(child); if(this._accordion.get_pageIndex() == -1) { child.set_percentHeight(100); this._accordion.set_pageIndex(0); } else { child.set_hidden(true); } child.set_onAnimationEnd(function(e) { if(e.target.classes.indexOf(":collapsed") != -1) { e.target.set_hidden(true); } }); this._component.registerInternalEvents(null,true); return c; } return null; } ,onPagePropertyChanged: function(event) { if(event.data == "text") { var index = this._component.getComponentIndex(event.target); var button = this._component.getComponentAt(index - 1); if(button != null && button.get_text() != event.target.get_text()) { button.set_text(event.target.get_text()); } } else if(event.data == "disabled") { var index = this._component.getComponentIndex(event.target); var button = this._component.getComponentAt(index - 1); if(button != null && button.get_disabled() != (js_Boot.__cast(event.target , haxe_ui_containers_Box)).get_disabled()) { button.set_disabled((js_Boot.__cast(event.target , haxe_ui_containers_Box)).get_disabled()); } } } ,__class__: haxe_ui_containers__$Accordion_Builder }); var haxe_ui_containers__$Box_Builder = function(box) { haxe_ui_core_CompositeBuilder.call(this,box); this._box = box; }; $hxClasses["haxe.ui.containers._Box.Builder"] = haxe_ui_containers__$Box_Builder; haxe_ui_containers__$Box_Builder.__name__ = "haxe.ui.containers._Box.Builder"; haxe_ui_containers__$Box_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Box_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _box: null ,hasDataSource: null ,addComponent: function(child) { if(((child) instanceof haxe_ui_core_ItemRenderer) && this._box.get_itemRenderer() == null) { var builder = js_Boot.__cast(this._box._compositeBuilder , haxe_ui_containers__$Box_Builder); if(builder.hasDataSource) { this._box.set_itemRenderer(js_Boot.__cast(child , haxe_ui_core_ItemRenderer)); this._box.get_itemRenderer().ready(); this._box.get_itemRenderer().handleVisibility(false); this._box.invalidateComponent("data",false); return child; } } return haxe_ui_core_CompositeBuilder.prototype.addComponent.call(this,child); } ,validateComponentData: function() { this.syncChildren(); } ,syncChildren: function() { if(!this.hasDataSource) { return; } var dataSource = this._box.get_dataSource(); var itemRenderer = this._box.get_itemRenderer(); if(itemRenderer == null) { itemRenderer = this._box.findComponent(null,haxe_ui_core_ItemRenderer); if(itemRenderer == null) { return; } this._box.set_itemRenderer(itemRenderer); this._box.get_itemRenderer().set_includeInLayout(false); this._box.get_itemRenderer().ready(); this._box.get_itemRenderer().handleVisibility(false); } var _g = 0; var _g1 = dataSource.get_size(); while(_g < _g1) { var i = _g++; var item = dataSource.get(i); var renderer = this.findRenderer(item); if(renderer == null) { renderer = itemRenderer.cloneComponent(); this._box.addComponent(renderer); } renderer.itemIndex = i; this._box.setComponentIndex(renderer,i); renderer.set_data(item); } var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_core_ItemRenderer); while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child == this._box.get_itemRenderer()) { continue; } if(dataSource.indexOf(child.get_data()) == -1) { this._box.removeComponent(child); } } } ,findRenderer: function(data) { var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_core_ItemRenderer); while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_data() == data) { return child; } } return null; } ,__class__: haxe_ui_containers__$Box_Builder }); var haxe_ui_containers__$Box_DataSourceBehaviour = function(box) { haxe_ui_behaviours_DataBehaviour.call(this,box); this._box = box; }; $hxClasses["haxe.ui.containers._Box.DataSourceBehaviour"] = haxe_ui_containers__$Box_DataSourceBehaviour; haxe_ui_containers__$Box_DataSourceBehaviour.__name__ = "haxe.ui.containers._Box.DataSourceBehaviour"; haxe_ui_containers__$Box_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Box_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _box: null ,set: function(value) { var _gthis = this; haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); var dataSource = haxe_ui_util_Variant.toDataSource(this._value); var builder = js_Boot.__cast(this._box._compositeBuilder , haxe_ui_containers__$Box_Builder); if(dataSource != null) { builder.hasDataSource = true; dataSource.onDataSourceChange = function() { _gthis._box.invalidateComponent("data",false); }; } else { builder.hasDataSource = false; this._box.removeAllComponents(); } this._box.invalidateComponent("data",false); } ,get: function() { var _gthis = this; if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { this._value = haxe_ui_util_Variant.fromDataSource(new haxe_ui_data_ArrayDataSource()); var dataSource = haxe_ui_util_Variant.toDataSource(this._value); var builder = js_Boot.__cast(this._box._compositeBuilder , haxe_ui_containers__$Box_Builder); builder.hasDataSource = true; dataSource.onDataSourceChange = function() { _gthis._box.invalidateComponent("data",false); }; } return this._value; } ,__class__: haxe_ui_containers__$Box_DataSourceBehaviour }); var haxe_ui_containers_ButtonBar = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.ButtonBar"] = haxe_ui_containers_ButtonBar; haxe_ui_containers_ButtonBar.__name__ = "haxe.ui.containers.ButtonBar"; haxe_ui_containers_ButtonBar.__interfaces__ = [haxe_ui_core_IDirectionalComponent]; haxe_ui_containers_ButtonBar.__super__ = haxe_ui_containers_Box; haxe_ui_containers_ButtonBar.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("toggle",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("allowUnselection",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("selectedIndex",haxe_ui_containers__$ButtonBar_SelectedIndex); this.behaviours.register("selectedButton",haxe_ui_containers__$ButtonBar_SelectedButton); } ,get_toggle: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("toggle")); } ,set_toggle: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("toggle",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"toggle")); return value; } ,get_allowUnselection: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("allowUnselection")); } ,set_allowUnselection: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("allowUnselection",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"allowUnselection")); return value; } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_selectedButton: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedButton")); } ,set_selectedButton: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedButton",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedButton")); return value; } ,get_value: function() { return this.get_selectedIndex(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 3: this.set_selectedIndex(value == true ? 1 : 0); break; case 6: if(_g.c == String) { this.set_selectedIndex(Std.parseInt(value)); } else { this.set_selectedIndex(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_selectedIndex(haxe_ui_util_Variant.toInt(v)); } else { this.set_selectedIndex(value); } break; default: this.set_selectedIndex(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); c.set_toggle(this.get_toggle()); c.set_allowUnselection(this.get_allowUnselection()); c.set_selectedIndex(this.get_selectedIndex()); if(this.get_selectedButton() != null) { c.set_selectedButton(this.get_selectedButton()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_ButtonBar(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$ButtonBar_Events; this._compositeBuilderClass = haxe_ui_containers_ButtonBarBuilder; } ,__class__: haxe_ui_containers_ButtonBar ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_selectedButton:"set_selectedButton",get_selectedButton:"get_selectedButton",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",set_allowUnselection:"set_allowUnselection",get_allowUnselection:"get_allowUnselection",set_toggle:"set_toggle",get_toggle:"get_toggle"}) }); var haxe_ui_containers__$ButtonBar_SelectedIndex = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ButtonBar.SelectedIndex"] = haxe_ui_containers__$ButtonBar_SelectedIndex; haxe_ui_containers__$ButtonBar_SelectedIndex.__name__ = "haxe.ui.containers._ButtonBar.SelectedIndex"; haxe_ui_containers__$ButtonBar_SelectedIndex.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ButtonBar_SelectedIndex.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_ButtonBarBuilder); var currentButton = builder._currentButton; if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromInt(-1))) { if(currentButton != null) { currentButton.set_selected(false); } builder._currentButton = null; this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); return; } var button = js_Boot.__cast(this._component.getComponentAt(haxe_ui_util_Variant.toInt(this._value)) , haxe_ui_components_Button); if(currentButton == button) { return; } if(currentButton != null && haxe_ui_util_Variant.toInt(this._value) < this._component.get_numComponents()) { builder._currentButton.set_selected(false); } if(button != null) { button.set_selected(true); builder._currentButton = button; } this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_containers__$ButtonBar_SelectedIndex }); var haxe_ui_containers__$ButtonBar_SelectedButton = function(bar) { haxe_ui_behaviours_DataBehaviour.call(this,bar); this._bar = bar; }; $hxClasses["haxe.ui.containers._ButtonBar.SelectedButton"] = haxe_ui_containers__$ButtonBar_SelectedButton; haxe_ui_containers__$ButtonBar_SelectedButton.__name__ = "haxe.ui.containers._ButtonBar.SelectedButton"; haxe_ui_containers__$ButtonBar_SelectedButton.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ButtonBar_SelectedButton.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _bar: null ,get: function() { var _g = 0; var _this = this._component; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(((child) instanceof haxe_ui_components_Button) && (js_Boot.__cast(child , haxe_ui_components_Button)).get_selected() == true) { return haxe_ui_util_Variant.fromComponent(child); } } return null; } ,set: function(value) { this._bar.set_selectedIndex(this._component.getComponentIndex(haxe_ui_util_Variant.toComponent(value))); } ,__class__: haxe_ui_containers__$ButtonBar_SelectedButton }); var haxe_ui_containers__$ButtonBar_Events = function(bar) { haxe_ui_events_Events.call(this,bar); this._bar = bar; }; $hxClasses["haxe.ui.containers._ButtonBar.Events"] = haxe_ui_containers__$ButtonBar_Events; haxe_ui_containers__$ButtonBar_Events.__name__ = "haxe.ui.containers._ButtonBar.Events"; haxe_ui_containers__$ButtonBar_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers__$ButtonBar_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _bar: null ,register: function() { var buttons = this._target.findComponents(null,haxe_ui_components_Button,1); var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; if(button.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)) == false) { button.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)); } } } ,unregister: function() { var buttons = this._target.findComponents(null,haxe_ui_components_Button,1); var _g = 0; while(_g < buttons.length) { var button = buttons[_g]; ++_g; button.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)); } } ,onButtonChanged: function(event) { var button = js_Boot.__cast(event.target , haxe_ui_components_Button); var index = this._bar.getComponentIndex(button); if(this._bar.get_allowUnselection() == false && index == this._bar.get_selectedIndex() && button.get_selected() == false) { button.set_selected(true); return; } if(this._bar.get_allowUnselection() == true && index == this._bar.get_selectedIndex() && button.get_selected() == false) { this._bar.set_selectedIndex(-1); return; } if(button.get_selected() == true) { this._bar.set_selectedIndex(index); } } ,__class__: haxe_ui_containers__$ButtonBar_Events }); var haxe_ui_containers_ButtonBarBuilder = function(bar) { haxe_ui_core_CompositeBuilder.call(this,bar); this._bar = bar; this.showWarning(); }; $hxClasses["haxe.ui.containers.ButtonBarBuilder"] = haxe_ui_containers_ButtonBarBuilder; haxe_ui_containers_ButtonBarBuilder.__name__ = "haxe.ui.containers.ButtonBarBuilder"; haxe_ui_containers_ButtonBarBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_ButtonBarBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _bar: null ,_currentButton: null ,addComponent: function(child) { if(((child) instanceof haxe_ui_components_Button)) { if(this._bar.get_selectedIndex() == this._bar.get_numComponents()) { (js_Boot.__cast(child , haxe_ui_components_Button)).set_selected(true); } (js_Boot.__cast(child , haxe_ui_components_Button)).set_toggle(this._bar.get_toggle()); child.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onButtonShown)); child.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onButtonHidden)); } return null; } ,onButtonShown: function(_) { this._bar.assignPositionClasses(); } ,onButtonHidden: function(_) { this._bar.assignPositionClasses(); } ,onComponentAdded: function(child) { this._component.registerInternalEvents(null,true); } ,onReady: function() { this._component.registerInternalEvents(null,true); } ,applyStyle: function(style) { if(style.direction != null) { var direction = style.direction; if(direction == "vertical") { this._component.swapClass("vertical-button-bar","horizontal-button-bar"); } else if(direction == "horizontal") { this._component.swapClass("horizontal-button-bar","vertical-button-bar"); } this._component.set_layout(haxe_ui_layouts_LayoutFactory.createFromName(direction)); } } ,showWarning: function() { haxe_Log.trace("WARNING: trying to create an instance of 'ButtonBar' directly, use either 'HorizontalButtonBar' or 'VerticalButtonBar'",{ fileName : "haxe/ui/containers/ButtonBar.hx", lineNumber : 194, className : "haxe.ui.containers.ButtonBarBuilder", methodName : "showWarning"}); } ,__class__: haxe_ui_containers_ButtonBarBuilder }); var haxe_ui_containers_CalendarView = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.CalendarView"] = haxe_ui_containers_CalendarView; haxe_ui_containers_CalendarView.__name__ = "haxe.ui.containers.CalendarView"; haxe_ui_containers_CalendarView.__super__ = haxe_ui_containers_Box; haxe_ui_containers_CalendarView.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("selectedDate",haxe_ui_containers__$CalendarView_SelectedDateBehaviour,haxe_ui_util_Variant.fromDate(new Date())); } ,get_selectedDate: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDate(this.behaviours.get("selectedDate")); } ,set_selectedDate: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedDate",haxe_ui_util_Variant.fromDate(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedDate")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_CalendarView(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$CalendarView_Events; this._defaultLayoutClass = haxe_ui_layouts_VerticalLayout; this._compositeBuilderClass = haxe_ui_containers__$CalendarView_Builder; } ,__class__: haxe_ui_containers_CalendarView ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_selectedDate:"set_selectedDate",get_selectedDate:"get_selectedDate"}) }); var haxe_ui_containers__$CalendarView_SelectedDateBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._CalendarView.SelectedDateBehaviour"] = haxe_ui_containers__$CalendarView_SelectedDateBehaviour; haxe_ui_containers__$CalendarView_SelectedDateBehaviour.__name__ = "haxe.ui.containers._CalendarView.SelectedDateBehaviour"; haxe_ui_containers__$CalendarView_SelectedDateBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$CalendarView_SelectedDateBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { return haxe_ui_util_Variant.fromDate(this._component.findComponent(null,haxe_ui_components_Calendar).get_selectedDate()); } ,set: function(value) { this._component.findComponent(null,haxe_ui_components_Calendar).set_selectedDate(haxe_ui_util_Variant.toDate(value)); } ,__class__: haxe_ui_containers__$CalendarView_SelectedDateBehaviour }); var haxe_ui_containers__$CalendarView_Events = function(target) { haxe_ui_events_Events.call(this,target); }; $hxClasses["haxe.ui.containers._CalendarView.Events"] = haxe_ui_containers__$CalendarView_Events; haxe_ui_containers__$CalendarView_Events.__name__ = "haxe.ui.containers._CalendarView.Events"; haxe_ui_containers__$CalendarView_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers__$CalendarView_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ register: function() { var button = this._target.findComponent("prev-month"); if(button != null && button.hasEvent(haxe_ui_events_MouseEvent.CLICK) == false) { button.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onPrevMonth)); } var button = this._target.findComponent("next-month"); if(button != null && button.hasEvent(haxe_ui_events_MouseEvent.CLICK) == false) { button.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onNextMonth)); } var stepper = this._target.findComponent("current-year"); if(stepper != null && stepper.hasEvent(haxe_ui_events_UIEvent.CHANGE) == false) { stepper.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onYearChange)); } if(this._target.findComponent(null,haxe_ui_components_Calendar).hasEvent("datechange",$bind(this,this.onDateChange)) == false) { this._target.findComponent(null,haxe_ui_components_Calendar).registerEvent("datechange",$bind(this,this.onDateChange)); } if(this._target.findComponent(null,haxe_ui_components_Calendar).hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onCalendarChange)) == false) { this._target.findComponent(null,haxe_ui_components_Calendar).registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onCalendarChange)); } this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); } ,onPrevMonth: function(event) { this._target.findComponent(null,haxe_ui_components_Calendar).previousMonth(); } ,onNextMonth: function(event) { this._target.findComponent(null,haxe_ui_components_Calendar).nextMonth(); } ,onYearChange: function(event) { var calendar = this._target.findComponent(null,haxe_ui_components_Calendar); var stepper = this._target.findComponent("current-year"); if(stepper.get_pos() > calendar.get_date().getFullYear()) { calendar.nextYear(); } else if(stepper.get_pos() < calendar.get_date().getFullYear()) { calendar.previousYear(); } } ,onDateChange: function(event) { var calendar = this._target.findComponent(null,haxe_ui_components_Calendar); var monthName = haxe_ui_containers_CalendarView.MONTH_NAMES[calendar.get_date().getMonth()]; this._target.findComponent("current-month",haxe_ui_components_Label).set_text(monthName + " " + calendar.get_date().getFullYear()); } ,onCalendarChange: function(event) { var calendar = this._target.findComponent(null,haxe_ui_components_Calendar); var stepper = this._target.findComponent("current-year"); stepper.set_pos(calendar.get_selectedDate().getFullYear()); this._target.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,onMouseWheel: function(event) { if(event.delta >= 1) { this._target.findComponent(null,haxe_ui_components_Calendar).nextMonth(); } else { this._target.findComponent(null,haxe_ui_components_Calendar).previousMonth(); } } ,__class__: haxe_ui_containers__$CalendarView_Events }); var haxe_ui_containers__$CalendarView_Builder = function(calendarView) { haxe_ui_core_CompositeBuilder.call(this,calendarView); this._calendarView = calendarView; }; $hxClasses["haxe.ui.containers._CalendarView.Builder"] = haxe_ui_containers__$CalendarView_Builder; haxe_ui_containers__$CalendarView_Builder.__name__ = "haxe.ui.containers._CalendarView.Builder"; haxe_ui_containers__$CalendarView_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$CalendarView_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _calendarView: null ,create: function() { var box = new haxe_ui_containers_Box(); box.set_percentWidth(100); var button = new haxe_ui_components_Button(); button.set_id("prev-month"); box.addComponent(button); var hbox = new haxe_ui_containers_HBox(); hbox.set_horizontalAlign("center"); hbox.set_verticalAlign("center"); var label = new haxe_ui_components_Label(); label.set_id("current-month"); var now = new Date(); label.set_text(haxe_ui_containers_CalendarView.MONTH_NAMES[now.getMonth()] + " " + now.getFullYear()); hbox.addComponent(label); var stepper = new haxe_ui_components_Stepper(); stepper.set_id("current-year"); stepper.set_min(0); stepper.set_max(now.getFullYear() + 1000); stepper.set_pos(now.getFullYear()); stepper.set_repeater(false); hbox.addComponent(stepper); box.addComponent(hbox); var button = new haxe_ui_components_Button(); button.set_id("next-month"); button.set_horizontalAlign("right"); box.addComponent(button); this._calendarView.addComponent(box); var calendar = new haxe_ui_components_Calendar(); calendar.set_horizontalAlign("center"); this._calendarView.addComponent(calendar); } ,__class__: haxe_ui_containers__$CalendarView_Builder }); var haxe_ui_containers_Card = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.Card"] = haxe_ui_containers_Card; haxe_ui_containers_Card.__name__ = "haxe.ui.containers.Card"; haxe_ui_containers_Card.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Card.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_containers__$Card_TextBehaviour); } ,get_value: function() { return this.get_text(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2:case 3: this.set_text(Std.string(value)); break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_text(haxe_ui_util_Variant.toString(v)); } else { this.set_text(value); } break; default: this.set_text(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Card(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$Card_Builder; } ,__class__: haxe_ui_containers_Card }); var haxe_ui_containers__$Card_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Card.TextBehaviour"] = haxe_ui_containers__$Card_TextBehaviour; haxe_ui_containers__$Card_TextBehaviour.__name__ = "haxe.ui.containers._Card.TextBehaviour"; haxe_ui_containers__$Card_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Card_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$Card_Builder); builder.getTitleLabel().set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers__$Card_TextBehaviour }); var haxe_ui_containers__$Card_Builder = function(card) { haxe_ui_core_CompositeBuilder.call(this,card); this._card = card; }; $hxClasses["haxe.ui.containers._Card.Builder"] = haxe_ui_containers__$Card_Builder; haxe_ui_containers__$Card_Builder.__name__ = "haxe.ui.containers._Card.Builder"; haxe_ui_containers__$Card_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Card_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _card: null ,getTitleLabel: function() { var titleContainer = this.getTitleContainer(); var titleLabel = titleContainer.findComponent("card-title-label",haxe_ui_components_Label); if(titleLabel == null) { this._card.set_layoutName("vertical"); var hbox = titleContainer.findComponent("card-title-box",haxe_ui_containers_HBox); if(hbox == null) { hbox = new haxe_ui_containers_HBox(); hbox.addClass("card-title-box"); hbox.set_id("card-title-box"); hbox.set_scriptAccess(false); titleContainer.addComponent(hbox); } titleLabel = new haxe_ui_components_Label(); titleLabel.addClass("card-title-label"); titleLabel.set_id("card-title-label"); titleLabel.set_scriptAccess(false); hbox.addComponentAt(titleLabel,0); var line = titleContainer.findComponent("card-title-line",haxe_ui_core_Component); if(line == null) { line = new haxe_ui_core_Component(); line.set_id("card-title-line"); line.addClass("card-title-line"); line.set_scriptAccess(false); titleContainer.addComponent(line); } } return titleLabel; } ,getTitleContainer: function() { var titleContainer = this._component.findComponent("card-title-container",haxe_ui_containers_VBox); if(titleContainer == null) { titleContainer = new haxe_ui_containers_VBox(); titleContainer.addClass("card-title-container"); titleContainer.set_id("card-title-container"); titleContainer.set_scriptAccess(false); this._card.addComponentAt(titleContainer,0); } return titleContainer; } ,__class__: haxe_ui_containers__$Card_Builder }); var haxe_ui_containers_Collapsible = function() { haxe_ui_containers_VBox.call(this); }; $hxClasses["haxe.ui.containers.Collapsible"] = haxe_ui_containers_Collapsible; haxe_ui_containers_Collapsible.__name__ = "haxe.ui.containers.Collapsible"; haxe_ui_containers_Collapsible.__super__ = haxe_ui_containers_VBox; haxe_ui_containers_Collapsible.prototype = $extend(haxe_ui_containers_VBox.prototype,{ registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$Collapsible_Events; this._compositeBuilderClass = haxe_ui_containers__$Collapsible_Builder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_containers__$Collapsible_TextBehaviour); this.behaviours.register("collapsed",haxe_ui_containers__$Collapsible_CollapsedBehaviour,haxe_ui_util_Variant.fromBool(true)); } ,get_collapsed: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("collapsed")); } ,set_collapsed: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("collapsed",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"collapsed")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); c.set_collapsed(this.get_collapsed()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Collapsible(); } ,__class__: haxe_ui_containers_Collapsible ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_collapsed:"set_collapsed",get_collapsed:"get_collapsed"}) }); var haxe_ui_containers__$Collapsible_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Collapsible.TextBehaviour"] = haxe_ui_containers__$Collapsible_TextBehaviour; haxe_ui_containers__$Collapsible_TextBehaviour.__name__ = "haxe.ui.containers._Collapsible.TextBehaviour"; haxe_ui_containers__$Collapsible_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Collapsible_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var button = this._component.findComponent("collapsible-button",haxe_ui_components_Button); if(button != null) { button.set_text(haxe_ui_util_Variant.toString(this._value)); } } ,__class__: haxe_ui_containers__$Collapsible_TextBehaviour }); var haxe_ui_containers__$Collapsible_CollapsedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Collapsible.CollapsedBehaviour"] = haxe_ui_containers__$Collapsible_CollapsedBehaviour; haxe_ui_containers__$Collapsible_CollapsedBehaviour.__name__ = "haxe.ui.containers._Collapsible.CollapsedBehaviour"; haxe_ui_containers__$Collapsible_CollapsedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Collapsible_CollapsedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var button = this._component.findComponent("collapsible-button",haxe_ui_components_Button); if(button != null) { button.set_selected(haxe_ui_util_Variant.toBool(haxe_ui_util_Variant.invert(this._value))); } if(button.get_selected()) { button.swapClass("expanded","collapsed"); } else { button.swapClass("collapsed","expanded"); } var content = this._component.findComponent("collapsible-content",haxe_ui_core_Component); if(content != null) { content.set_hidden(haxe_ui_util_Variant.toBool(this._value)); } this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_containers__$Collapsible_CollapsedBehaviour }); var haxe_ui_containers__$Collapsible_Events = function(collapsible) { haxe_ui_events_Events.call(this,collapsible); this._collapsible = collapsible; }; $hxClasses["haxe.ui.containers._Collapsible.Events"] = haxe_ui_containers__$Collapsible_Events; haxe_ui_containers__$Collapsible_Events.__name__ = "haxe.ui.containers._Collapsible.Events"; haxe_ui_containers__$Collapsible_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers__$Collapsible_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _collapsible: null ,register: function() { var button = this._collapsible.findComponent("collapsible-button",haxe_ui_components_Button); if(button != null && button.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)) == false) { button.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)); } } ,unregister: function() { var button = this._collapsible.findComponent("collapsible-button",haxe_ui_components_Button); if(button != null) { button.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onButtonChanged)); } } ,onButtonChanged: function(event) { var button = this._collapsible.findComponent("collapsible-button",haxe_ui_components_Button); this._collapsible.set_collapsed(!button.get_selected()); } ,__class__: haxe_ui_containers__$Collapsible_Events }); var haxe_ui_containers__$Collapsible_Builder = function(collapsible) { haxe_ui_core_CompositeBuilder.call(this,collapsible); this._collapsible = collapsible; this._header = new haxe_ui_containers_Box(); this._header.set_percentWidth(100); var button = new haxe_ui_components_Button(); button.set_toggle(true); button.set_text("Collapsible"); button.addClass("collapsible-button"); button.set_id("collapsible-button"); button.set_scriptAccess(false); this._header.addComponent(button); this._collapsible.addComponent(this._header); this._content = new haxe_ui_containers_VBox(); this._content.addClass("collapsible-content"); this._content.set_id("collapsible-content"); this._content.set_scriptAccess(false); this._content.hide(); this._collapsible.addComponent(this._content); this._collapsible.registerInternalEvents(null,true); }; $hxClasses["haxe.ui.containers._Collapsible.Builder"] = haxe_ui_containers__$Collapsible_Builder; haxe_ui_containers__$Collapsible_Builder.__name__ = "haxe.ui.containers._Collapsible.Builder"; haxe_ui_containers__$Collapsible_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Collapsible_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _collapsible: null ,_header: null ,_content: null ,addComponent: function(child) { if(child != this._header && child != this._content) { return this._content.addComponent(child); } return null; } ,__class__: haxe_ui_containers__$Collapsible_Builder }); var haxe_ui_containers_ContinuousHBox = function() { haxe_ui_containers_Box.call(this); this.set_layout(new haxe_ui_layouts_HorizontalContinuousLayout()); }; $hxClasses["haxe.ui.containers.ContinuousHBox"] = haxe_ui_containers_ContinuousHBox; haxe_ui_containers_ContinuousHBox.__name__ = "haxe.ui.containers.ContinuousHBox"; haxe_ui_containers_ContinuousHBox.__super__ = haxe_ui_containers_Box; haxe_ui_containers_ContinuousHBox.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_ContinuousHBox(); } ,__class__: haxe_ui_containers_ContinuousHBox }); var haxe_ui_containers_Footer = function() { haxe_ui_containers_HBox.call(this); }; $hxClasses["haxe.ui.containers.Footer"] = haxe_ui_containers_Footer; haxe_ui_containers_Footer.__name__ = "haxe.ui.containers.Footer"; haxe_ui_containers_Footer.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_Footer.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Footer(); } ,__class__: haxe_ui_containers_Footer }); var haxe_ui_containers_Form = function() { this.invalidFieldMessages = new haxe_ds_ObjectMap(); this.invalidFields = []; this._columns = -1; this.highlightInvalidFields = true; haxe_ui_containers_Box.call(this); if(this._columns == -1) { this.set_columns(2); } }; $hxClasses["haxe.ui.containers.Form"] = haxe_ui_containers_Form; haxe_ui_containers_Form.__name__ = "haxe.ui.containers.Form"; haxe_ui_containers_Form.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Form.prototype = $extend(haxe_ui_containers_Box.prototype,{ highlightInvalidFields: null ,_columns: null ,get_columns: function() { if(!((this._layout) instanceof haxe_ui_layouts_VerticalGridLayout)) { return -1; } return (js_Boot.__cast(this._layout , haxe_ui_layouts_VerticalGridLayout)).get_columns(); } ,set_columns: function(value) { if(this._layout == null) { this.set_layout(this.createLayout()); } if(!((this._layout) instanceof haxe_ui_layouts_VerticalGridLayout)) { this.set_layout(new haxe_ui_layouts_VerticalGridLayout()); } (js_Boot.__cast(this._layout , haxe_ui_layouts_VerticalGridLayout)).set_columns(value); this._columns = value; return value; } ,submit: function() { this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SUBMIT,true)); } ,validateForm: function(fn) { fn(true); } ,invalidFields: null ,invalidFieldMessages: null ,validateFormData: function(fn) { this.invalidFields = []; this.invalidFieldMessages = new haxe_ds_ObjectMap(); var interactives = this.findComponents(null,haxe_ui_core_InteractiveComponent,-1); var _g = 0; while(_g < interactives.length) { var i = interactives[_g]; ++_g; if(i.get_validators() != null && i.get_validators().get_length() > 0) { var v = i.get_validators().iterator(); while(v.hasNext()) { var v1 = v.next(); if(v1 == null) { continue; } var valid = v1.validate(i); if(valid == false) { this.invalidFields.push(i); var messageList = this.invalidFieldMessages.h[i.__id__]; if(messageList == null) { messageList = []; this.invalidFieldMessages.set(i,messageList); } messageList.push(v1.invalidMessage); } } } } if(this.invalidFields.length == 0) { fn(true); this.dispatch(new haxe_ui_events_ValidatorEvent(haxe_ui_events_ValidatorEvent.VALID_DATA)); } else { if(this.highlightInvalidFields) { var _g = 0; var _g1 = this.invalidFields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; haxe_ui_animation_AnimationTools.shake(f).flash(); } } this.dispatch(new haxe_ui_events_ValidatorEvent(haxe_ui_events_ValidatorEvent.INVALID_DATA)); fn(false); } } ,createDefaults: function() { haxe_ui_containers_Box.prototype.createDefaults.call(this); this._defaultLayoutClass = haxe_ui_layouts_VerticalGridLayout; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); c.set_columns(this.get_columns()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Form(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$Form_FormEvents; } ,_internal__onSubmitStart: null ,onSubmitStart: null ,set_onSubmitStart: function(value) { if(this._internal__onSubmitStart != null) { this.unregisterEvent(haxe_ui_events_UIEvent.SUBMIT_START,this._internal__onSubmitStart); this._internal__onSubmitStart = null; } if(value != null) { this._internal__onSubmitStart = value; this.registerEvent(haxe_ui_events_UIEvent.SUBMIT_START,value); } return value; } ,_internal__onSubmit: null ,onSubmit: null ,set_onSubmit: function(value) { if(this._internal__onSubmit != null) { this.unregisterEvent(haxe_ui_events_UIEvent.SUBMIT,this._internal__onSubmit); this._internal__onSubmit = null; } if(value != null) { this._internal__onSubmit = value; this.registerEvent(haxe_ui_events_UIEvent.SUBMIT,value); } return value; } ,_internal__onInvalidData: null ,onInvalidData: null ,set_onInvalidData: function(value) { if(this._internal__onInvalidData != null) { this.unregisterEvent(haxe_ui_events_ValidatorEvent.INVALID_DATA,this._internal__onInvalidData); this._internal__onInvalidData = null; } if(value != null) { this._internal__onInvalidData = value; this.registerEvent(haxe_ui_events_ValidatorEvent.INVALID_DATA,value); } return value; } ,_internal__onValidData: null ,onValidData: null ,set_onValidData: function(value) { if(this._internal__onValidData != null) { this.unregisterEvent(haxe_ui_events_ValidatorEvent.VALID_DATA,this._internal__onValidData); this._internal__onValidData = null; } if(value != null) { this._internal__onValidData = value; this.registerEvent(haxe_ui_events_ValidatorEvent.VALID_DATA,value); } return value; } ,__class__: haxe_ui_containers_Form ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_onValidData:"set_onValidData",set_onInvalidData:"set_onInvalidData",set_onSubmit:"set_onSubmit",set_onSubmitStart:"set_onSubmitStart",set_columns:"set_columns",get_columns:"get_columns"}) }); var haxe_ui_containers__$Form_FormEvents = function(form) { haxe_ui_events_Events.call(this,form); this._form = form; }; $hxClasses["haxe.ui.containers._Form.FormEvents"] = haxe_ui_containers__$Form_FormEvents; haxe_ui_containers__$Form_FormEvents.__name__ = "haxe.ui.containers._Form.FormEvents"; haxe_ui_containers__$Form_FormEvents.__super__ = haxe_ui_events_Events; haxe_ui_containers__$Form_FormEvents.prototype = $extend(haxe_ui_events_Events.prototype,{ _form: null ,register: function() { haxe_ui_events_Events.prototype.register.call(this); this.registerEvent(haxe_ui_events_UIEvent.SUBMIT,$bind(this,this.onSubmit)); } ,unregister: function() { haxe_ui_events_Events.prototype.unregister.call(this); this.unregisterEvent(haxe_ui_events_UIEvent.SUBMIT,$bind(this,this.onSubmit)); } ,onSubmit: function(event) { var _gthis = this; this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SUBMIT_START,true)); this._form.validateFormData(function(valid) { if(!valid) { event.cancel(); } else { _gthis._form.validateForm(function(valid) { if(!valid) { event.cancel(); } }); } }); } ,__class__: haxe_ui_containers__$Form_FormEvents }); var haxe_ui_containers_Frame = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.Frame"] = haxe_ui_containers_Frame; haxe_ui_containers_Frame.__name__ = "haxe.ui.containers.Frame"; haxe_ui_containers_Frame.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Frame.prototype = $extend(haxe_ui_containers_Box.prototype,{ set_layout: function(value) { if(((value) instanceof haxe_ui_containers__$Frame_Layout)) { haxe_ui_containers_Box.prototype.set_layout.call(this,value); } else { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers__$Frame_Builder); builder._contents.set_layout(value); } return value; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_containers__$Frame_TextBehaviour); this.behaviours.register("icon",haxe_ui_containers__$Frame_IconBehaviour); this.behaviours.register("collapsible",haxe_ui_containers__$Frame_CollapsibleBehaviour); this.behaviours.register("collapsed",haxe_ui_containers__$Frame_CollapsedBehaviour); } ,get_collapsible: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("collapsible")); } ,set_collapsible: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("collapsible",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"collapsible")); return value; } ,get_collapsed: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("collapsed")); } ,set_collapsed: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("collapsed",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"collapsed")); return value; } ,get_value: function() { return this.get_text(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 1:case 2:case 3: this.set_text(Std.string(value)); break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_text(haxe_ui_util_Variant.toString(v)); } else { this.set_text(value); } break; default: this.set_text(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); c.set_collapsible(this.get_collapsible()); c.set_collapsed(this.get_collapsed()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Frame(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$Frame_Builder; this._defaultLayoutClass = haxe_ui_containers__$Frame_Layout; } ,__class__: haxe_ui_containers_Frame ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_collapsed:"set_collapsed",get_collapsed:"get_collapsed",set_collapsible:"set_collapsible",get_collapsible:"get_collapsible"}) }); var haxe_ui_containers__$Frame_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Frame.TextBehaviour"] = haxe_ui_containers__$Frame_TextBehaviour; haxe_ui_containers__$Frame_TextBehaviour.__name__ = "haxe.ui.containers._Frame.TextBehaviour"; haxe_ui_containers__$Frame_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Frame_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent(null,haxe_ui_components_Label,false); label.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers__$Frame_TextBehaviour }); var haxe_ui_containers__$Frame_IconBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Frame.IconBehaviour"] = haxe_ui_containers__$Frame_IconBehaviour; haxe_ui_containers__$Frame_IconBehaviour.__name__ = "haxe.ui.containers._Frame.IconBehaviour"; haxe_ui_containers__$Frame_IconBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Frame_IconBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var icon = this._component.findComponent("frame-icon",haxe_ui_components_Image,false); if(icon == null) { icon = new haxe_ui_components_Image(); icon.addClass("frame-icon"); icon.set_id("frame-icon"); icon.set_scriptAccess(false); icon.set_includeInLayout(false); this._component.addComponent(icon); } icon.set_resource(this._value); } ,__class__: haxe_ui_containers__$Frame_IconBehaviour }); var haxe_ui_containers__$Frame_CollapsibleBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Frame.CollapsibleBehaviour"] = haxe_ui_containers__$Frame_CollapsibleBehaviour; haxe_ui_containers__$Frame_CollapsibleBehaviour.__name__ = "haxe.ui.containers._Frame.CollapsibleBehaviour"; haxe_ui_containers__$Frame_CollapsibleBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Frame_CollapsibleBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$Frame_Builder); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { builder.addCollapsibleHeader(); } else { builder.removeCollapsibleHeader(); } } ,__class__: haxe_ui_containers__$Frame_CollapsibleBehaviour }); var haxe_ui_containers__$Frame_CollapsedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Frame.CollapsedBehaviour"] = haxe_ui_containers__$Frame_CollapsedBehaviour; haxe_ui_containers__$Frame_CollapsedBehaviour.__name__ = "haxe.ui.containers._Frame.CollapsedBehaviour"; haxe_ui_containers__$Frame_CollapsedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Frame_CollapsedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var frame = js_Boot.__cast(this._component , haxe_ui_containers_Frame); var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$Frame_Builder); builder.addCollapsibleHeader(); frame.set_collapsible(true); var header = this._component.findComponent("frame-header",haxe_ui_containers_Header); var border = this._component.findComponent("frame-border",haxe_ui_containers_Box); var contents = this._component.findComponent("frame-contents",haxe_ui_containers_Box); var collapseExpandIcon = header.findComponent("frame-collapse-expand-icon",haxe_ui_components_Image); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { collapseExpandIcon.swapClass("collapsed","expanded"); border.swapClass("collapsed","expanded"); contents.swapClass("collapsed","expanded"); if(frame.get_percentHeight() != null) { builder.cachedPercentHeight = frame.get_percentHeight(); } else if(frame._height != null) { builder.cachedHeight = frame._height; } frame.set_percentHeight(null); frame._height = null; } else { collapseExpandIcon.swapClass("expanded","collapsed"); border.swapClass("expanded","collapsed"); contents.swapClass("expanded","collapsed"); if(builder.cachedPercentHeight != null) { frame.set_percentHeight(builder.cachedPercentHeight); } else if(builder.cachedHeight != null) { frame.set_height(builder.cachedHeight); } } } ,__class__: haxe_ui_containers__$Frame_CollapsedBehaviour }); var haxe_ui_containers__$Frame_Builder = function(frame) { this.cachedHeight = null; this.cachedPercentHeight = null; haxe_ui_core_CompositeBuilder.call(this,frame); this._frame = frame; }; $hxClasses["haxe.ui.containers._Frame.Builder"] = haxe_ui_containers__$Frame_Builder; haxe_ui_containers__$Frame_Builder.__name__ = "haxe.ui.containers._Frame.Builder"; haxe_ui_containers__$Frame_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Frame_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _frame: null ,_border: null ,_contents: null ,_label: null ,_header: null ,cachedPercentHeight: null ,cachedHeight: null ,create: function() { this._border = new haxe_ui_containers_Box(); this._border.set_id("frame-border"); this._border.addClass("frame-border"); this._border.set_includeInLayout(false); this._border.set_scriptAccess(false); this._frame.addComponent(this._border); this._contents = new haxe_ui_containers_Box(); this._contents.set_id("frame-contents"); this._contents.addClass("frame-contents"); this._contents.set_scriptAccess(false); this._frame.addComponent(this._contents); this._label = new haxe_ui_components_Label(); this._label.set_text(""); this._label.set_id("frame-title"); this._label.addClass("frame-title"); this._label.set_includeInLayout(false); this._label.set_scriptAccess(false); this._frame.addComponent(this._label); var line = new haxe_ui_core_Component(); line.set_id("frame-left-line"); line.addClass("frame-left-line"); line.set_includeInLayout(false); this._label.set_scriptAccess(false); this._frame.addComponent(line); var line = new haxe_ui_core_Component(); line.set_id("frame-right-line"); line.addClass("frame-right-line"); line.set_includeInLayout(false); this._label.set_scriptAccess(false); this._frame.addComponent(line); } ,addCollapsibleHeader: function() { this._component.addClass("collapsible-frame"); var header = this._component.findComponent("frame-header",haxe_ui_containers_Header,false); if(header == null) { header = new haxe_ui_containers_Header(); header.set_id("frame-header"); header.addClass("frame-header"); header.set_includeInLayout(false); this._component.addComponent(header); } var collapseExpandIcon = header.findComponent("frame-collapse-expand-icon",haxe_ui_components_Image); if(collapseExpandIcon == null) { collapseExpandIcon = new haxe_ui_components_Image(); collapseExpandIcon.set_id("frame-collapse-expand-icon"); collapseExpandIcon.addClasses(["frame-collapse-expand-icon","expanded"]); header.addComponent(collapseExpandIcon); collapseExpandIcon.set_onClick($bind(this,this.onExpandCollapseClicked)); } var title = this._component.findComponent("frame-title",haxe_ui_components_Label); if(title != null) { title.set_onClick($bind(this,this.onExpandCollapseClicked)); } var icon = this._component.findComponent("frame-icon",haxe_ui_components_Image); if(icon != null) { icon.set_onClick($bind(this,this.onExpandCollapseClicked)); } } ,removeCollapsibleHeader: function() { this._component.removeClass("collapsible"); var header = this._component.findComponent("frame-header",haxe_ui_containers_Header); if(header != null) { this._component.removeComponent(header); } } ,onExpandCollapseClicked: function(_) { this._frame.set_collapsed(!this._frame.get_collapsed()); } ,addComponent: function(child) { if(((child) instanceof haxe_ui_containers_Header)) { this._header = child; this._header.set_id("frame-header"); this._header.addClass("frame-header"); this._header.set_includeInLayout(false); } else if(child.get_id() != "frame-border" && child.get_id() != "frame-contents" && child.get_id() != "frame-title" && child.get_id() != "frame-icon" && child.get_id() != "frame-left-line" && child.get_id() != "frame-right-line") { return this._contents.addComponent(child); } return haxe_ui_core_CompositeBuilder.prototype.addComponent.call(this,child); } ,applyStyle: function(style) { if(style.icon != null) { this._frame.set_icon(style.icon); } } ,__class__: haxe_ui_containers__$Frame_Builder }); var haxe_ui_containers__$Frame_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.containers._Frame.Layout"] = haxe_ui_containers__$Frame_Layout; haxe_ui_containers__$Frame_Layout.__name__ = "haxe.ui.containers._Frame.Layout"; haxe_ui_containers__$Frame_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_containers__$Frame_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ resizeChildren: function() { var border = this.findComponent("frame-border",haxe_ui_containers_Box,false); var contents = this.findComponent("frame-contents",haxe_ui_containers_Box,false); var label = this.findComponent("frame-title",haxe_ui_components_Label,false); var icon = this.findComponent("frame-icon",haxe_ui_components_Image,false); var line1 = this.findComponent("frame-left-line",haxe_ui_core_Component,false); var line2 = this.findComponent("frame-right-line",haxe_ui_core_Component,false); border.set_width(this._component.get_width() - this.get_paddingLeft() - this.get_paddingRight()); border.set_height(this._component.get_height() - this.get_paddingTop() - this.get_paddingBottom() - label.get_height() / 2); if(this._component.get_autoWidth() == false) { contents.set_width(border.get_width()); } if(this._component.get_autoHeight() == false) { contents.set_height(border.get_height() - label.get_height() / 2); } var labelOffsetLeft = 0; var headerWidth = label.get_width(); var frameHeader = this.findComponent("frame-header",haxe_ui_containers_Header,false); if(frameHeader != null) { headerWidth += frameHeader.get_width(); } if(icon != null) { labelOffsetLeft += this.get_horizontalSpacing(); headerWidth += labelOffsetLeft + icon.get_width() + this.get_horizontalSpacing(); } line2.set_width(this._component.get_width() - this.get_paddingLeft() - this.get_paddingRight() - headerWidth - line1.get_width()); } ,repositionChildren: function() { var border = this.findComponent("frame-border",haxe_ui_containers_Box,false); var contents = this.findComponent("frame-contents",haxe_ui_containers_Box,false); var label = this.findComponent("frame-title",haxe_ui_components_Label,false); var icon = this.findComponent("frame-icon",haxe_ui_components_Image,false); var line1 = this.findComponent("frame-left-line",haxe_ui_core_Component,false); var line2 = this.findComponent("frame-right-line",haxe_ui_core_Component,false); border.set_left(this.get_paddingLeft()); border.set_top(this._component.get_height() - border.get_height() - this.get_paddingBottom()); var labelOffsetLeft = 0; var frameHeader = this.findComponent("frame-header",haxe_ui_containers_Header,false); if(frameHeader != null) { frameHeader.set_left(labelOffsetLeft + border.get_left() + line1.get_width()); frameHeader.set_top(line1.get_top() - frameHeader.get_height() / 2); labelOffsetLeft += frameHeader.get_width() - this.get_horizontalSpacing(); } contents.set_left(border.get_left()); contents.set_top(border.get_top() + label.get_height() / 2); line1.set_left(border.get_left()); line1.set_top(border.get_top()); line2.set_left(border.get_width() - line2.get_width() + border.get_left()); line2.set_top(border.get_top()); if(icon != null) { labelOffsetLeft += this.get_horizontalSpacing(); icon.set_left(labelOffsetLeft + border.get_left() + line1.get_width()); icon.set_top(line1.get_top() - icon.get_height() / 2); labelOffsetLeft += icon.get_width() + this.get_horizontalSpacing(); } label.set_left(labelOffsetLeft + border.get_left() + line1.get_width()); label.set_top(this.get_paddingTop()); } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,exclusions); var label = this.findComponent("frame-title",haxe_ui_components_Label,false); size.height += label.get_height(); if(label != null && label.get_width() > size.width) { var contents = this.findComponent("frame-contents",haxe_ui_containers_Box,false); if(label.get_width() > contents.get_width()) { size.width = label.get_width() + this.get_paddingLeft() + this.get_paddingRight(); var frameHeader = this.findComponent("frame-header",haxe_ui_containers_Header,false); if(frameHeader != null) { size.width += frameHeader.get_width(); } var icon = this.findComponent("frame-icon",haxe_ui_components_Image,false); if(icon != null) { size.width += icon.get_width() + this.get_horizontalSpacing(); } var line1 = this.findComponent("frame-left-line",haxe_ui_core_Component,false); size.width += line1.get_width(); size.width += this.childPaddingLeft(contents) + this.childPaddingRight(contents); } else { size.width = contents.get_width() + this.get_paddingLeft() + this.get_paddingRight(); } } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers__$Frame_Layout(); } ,__class__: haxe_ui_containers__$Frame_Layout }); var haxe_ui_containers_Group = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.Group"] = haxe_ui_containers_Group; haxe_ui_containers_Group.__name__ = "haxe.ui.containers.Group"; haxe_ui_containers_Group.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Group.prototype = $extend(haxe_ui_containers_Box.prototype,{ resetGroup: function() { if(this.behaviours == null) { return; } this.behaviours.call("resetGroup",null); } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("selectedOption",haxe_ui_containers__$Group_SelectedOptionBehaviour); this.behaviours.register("componentGroup",haxe_ui_behaviours_DataBehaviour,haxe_ui_util_Variant.fromString("group" + haxe_ui_util_GUID.uuid())); this.behaviours.register("resetGroup",haxe_ui_containers__$Group_ResetGroup); } ,get_selectedOption: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedOption")); } ,set_selectedOption: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedOption",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedOption")); return value; } ,get_componentGroup: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("componentGroup")); } ,set_componentGroup: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"componentGroup",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("componentGroup",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"componentGroup")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if(this.get_selectedOption() != null) { c.set_selectedOption(this.get_selectedOption()); } if(this.get_componentGroup() != null) { c.set_componentGroup(this.get_componentGroup()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Group(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$Group_Builder; } ,__class__: haxe_ui_containers_Group ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_componentGroup:"set_componentGroup",get_componentGroup:"get_componentGroup",set_selectedOption:"set_selectedOption",get_selectedOption:"get_selectedOption"}) }); var haxe_ui_containers__$Group_SelectedOptionBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Group.SelectedOptionBehaviour"] = haxe_ui_containers__$Group_SelectedOptionBehaviour; haxe_ui_containers__$Group_SelectedOptionBehaviour.__name__ = "haxe.ui.containers._Group.SelectedOptionBehaviour"; haxe_ui_containers__$Group_SelectedOptionBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Group_SelectedOptionBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ get: function() { var optionbox = this._component.findComponent(null,haxe_ui_components_OptionBox,false); var arr = haxe_ui_components_OptionBoxGroups.get_instance().get(optionbox.get_componentGroup()); var selectionOption = null; if(arr != null) { var _g = 0; while(_g < arr.length) { var test = arr[_g]; ++_g; if(test.get_selected() == true) { selectionOption = test; break; } } } return haxe_ui_util_Variant.fromComponent(selectionOption); } ,__class__: haxe_ui_containers__$Group_SelectedOptionBehaviour }); var haxe_ui_containers__$Group_ResetGroup = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Group.ResetGroup"] = haxe_ui_containers__$Group_ResetGroup; haxe_ui_containers__$Group_ResetGroup.__name__ = "haxe.ui.containers._Group.ResetGroup"; haxe_ui_containers__$Group_ResetGroup.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$Group_ResetGroup.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$Group_Builder)).applyInitialValues(); return null; } ,__class__: haxe_ui_containers__$Group_ResetGroup }); var haxe_ui_containers__$Group_Builder = function(group) { this._initialResets = null; this._initialValues = null; haxe_ui_core_CompositeBuilder.call(this,group); this._group = group; this._component.set_layout(new haxe_ui_layouts_HorizontalLayout()); }; $hxClasses["haxe.ui.containers._Group.Builder"] = haxe_ui_containers__$Group_Builder; haxe_ui_containers__$Group_Builder.__name__ = "haxe.ui.containers._Group.Builder"; haxe_ui_containers__$Group_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Group_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _group: null ,addComponent: function(child) { this.childAdd(child); return haxe_ui_core_CompositeBuilder.prototype.addComponent.call(this,child); } ,addComponentAt: function(child,index) { this.childAdd(child); return haxe_ui_core_CompositeBuilder.prototype.addComponentAt.call(this,child,index); } ,childAdd: function(child) { if(((child) instanceof haxe_ui_core_InteractiveComponent)) { this.processGroupChild(child); } else { var interactiveChildren = child.findComponents(null,haxe_ui_core_InteractiveComponent); var _g = 0; while(_g < interactiveChildren.length) { var interactiveChild = interactiveChildren[_g]; ++_g; this.processGroupChild(interactiveChild); } } } ,processGroupChild: function(child) { if(((child) instanceof haxe_ui_components_OptionBox)) { if(this._group.get_componentGroup() == null) { this._group.set_componentGroup("group" + haxe_ui_util_GUID.uuid()); } var optionbox = js_Boot.__cast(child , haxe_ui_components_OptionBox); if(optionbox.get_componentGroup() == null || optionbox.get_componentGroup() == "defaultGroup") { optionbox.set_componentGroup(this._group.get_componentGroup()); } } this.cacheInitalValue(child); if(child.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.childChangeHandler)) == false) { child.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.childChangeHandler)); } } ,_initialValues: null ,_initialResets: null ,cacheInitalValue: function(c) { if(((c) instanceof haxe_ui_components_OptionBox)) { if(this._initialResets == null) { this._initialResets = new haxe_ds_StringMap(); } var optionbox = js_Boot.__cast(c , haxe_ui_components_OptionBox); if(optionbox.get_selected() == true) { var this1 = this._initialResets; var key = optionbox.get_componentGroup(); var _this = this1; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } if(this._initialValues == null) { this._initialValues = new haxe_ds_ObjectMap(); } this._initialValues.set(c,haxe_ui_util_Variant.fromDynamic(c.get_value())); } else { var this1 = this._initialResets; var key = optionbox.get_componentGroup(); this1.h[key] = true; } } else { if(this._initialValues == null) { this._initialValues = new haxe_ds_ObjectMap(); } this._initialValues.set(c,haxe_ui_util_Variant.fromDynamic(c.get_value())); } } ,applyInitialValues: function() { if(this._initialValues != null) { var c = this._initialValues.keys(); while(c.hasNext()) { var c1 = c.next(); var v = this._initialValues.h[c1.__id__]; c1.set_value(v); } } if(this._initialResets != null) { var h = this._initialResets.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; haxe_ui_components_OptionBoxGroups.get_instance().reset(k); } } } ,childChangeHandler: function(e) { this._group.dispatch(e.clone()); this._group.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,false,"selectedOption")); } ,__class__: haxe_ui_containers__$Group_Builder }); var haxe_ui_containers_Header = function() { haxe_ui_containers_HBox.call(this); this.set_layout(new haxe_ui_containers__$Header_Layout()); }; $hxClasses["haxe.ui.containers.Header"] = haxe_ui_containers_Header; haxe_ui_containers_Header.__name__ = "haxe.ui.containers.Header"; haxe_ui_containers_Header.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_Header.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerComposite: function() { haxe_ui_containers_HBox.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_containers__$Header_Layout; this._compositeBuilderClass = haxe_ui_containers__$Header_Builder; } ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Header(); } ,__class__: haxe_ui_containers_Header }); var haxe_ui_containers__$Header_Builder = function(header) { haxe_ui_core_CompositeBuilder.call(this,header); this._header = header; }; $hxClasses["haxe.ui.containers._Header.Builder"] = haxe_ui_containers__$Header_Builder; haxe_ui_containers__$Header_Builder.__name__ = "haxe.ui.containers._Header.Builder"; haxe_ui_containers__$Header_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Header_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _header: null ,addComponent: function(child) { this.addEventListeners(child); return null; } ,addComponentAt: function(child,index) { this.addEventListeners(child); return null; } ,addEventListeners: function(c) { if(!((c) instanceof haxe_ui_components_Column)) { return; } var column = js_Boot.__cast(c , haxe_ui_components_Column); column.registerEvent(haxe_ui_events_SortEvent.SORT_CHANGED,$bind(this,this.onSortChanged)); } ,onSortChanged: function(e) { var _g = 0; var _this = this._header; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; if(e.target == c) { this._header.dispatch(e); } else { (js_Boot.__cast(c , haxe_ui_components_Column)).set_sortDirection(null); } } } ,__class__: haxe_ui_containers__$Header_Builder }); var haxe_ui_containers__$Header_Layout = function() { haxe_ui_layouts_HorizontalLayout.call(this); }; $hxClasses["haxe.ui.containers._Header.Layout"] = haxe_ui_containers__$Header_Layout; haxe_ui_containers__$Header_Layout.__name__ = "haxe.ui.containers._Header.Layout"; haxe_ui_containers__$Header_Layout.__super__ = haxe_ui_layouts_HorizontalLayout; haxe_ui_containers__$Header_Layout.prototype = $extend(haxe_ui_layouts_HorizontalLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_HorizontalLayout.prototype.resizeChildren.call(this); var max = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_height() > max) { max = child.get_height(); } } var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(!((child) instanceof haxe_ui_components_Column)) { continue; } if(child.get_text() == null || child.get_text().length == 0 || child.get_height() < max) { child.set_height(max); } } } ,cloneLayout: function() { var c = haxe_ui_layouts_HorizontalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers__$Header_Layout(); } ,__class__: haxe_ui_containers__$Header_Layout }); var haxe_ui_containers_HorizontalButtonBar = function() { haxe_ui_containers_ButtonBar.call(this); }; $hxClasses["haxe.ui.containers.HorizontalButtonBar"] = haxe_ui_containers_HorizontalButtonBar; haxe_ui_containers_HorizontalButtonBar.__name__ = "haxe.ui.containers.HorizontalButtonBar"; haxe_ui_containers_HorizontalButtonBar.__super__ = haxe_ui_containers_ButtonBar; haxe_ui_containers_HorizontalButtonBar.prototype = $extend(haxe_ui_containers_ButtonBar.prototype,{ registerComposite: function() { haxe_ui_containers_ButtonBar.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_containers__$HorizontalButtonBar_Layout; this._compositeBuilderClass = haxe_ui_containers__$HorizontalButtonBar_Builder; } ,registerBehaviours: function() { haxe_ui_containers_ButtonBar.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_ButtonBar.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_HorizontalButtonBar(); } ,__class__: haxe_ui_containers_HorizontalButtonBar }); var haxe_ui_containers__$HorizontalButtonBar_Layout = function() { haxe_ui_layouts_HorizontalLayout.call(this); }; $hxClasses["haxe.ui.containers._HorizontalButtonBar.Layout"] = haxe_ui_containers__$HorizontalButtonBar_Layout; haxe_ui_containers__$HorizontalButtonBar_Layout.__name__ = "haxe.ui.containers._HorizontalButtonBar.Layout"; haxe_ui_containers__$HorizontalButtonBar_Layout.__super__ = haxe_ui_layouts_HorizontalLayout; haxe_ui_containers__$HorizontalButtonBar_Layout.prototype = $extend(haxe_ui_layouts_HorizontalLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_HorizontalLayout.prototype.resizeChildren.call(this); var max = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_height() > max) { max = child.get_height(); } } var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_text() == null || child.get_text().length == 0 || child.get_height() < max) { child.set_height(max); } } } ,cloneLayout: function() { var c = haxe_ui_layouts_HorizontalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers__$HorizontalButtonBar_Layout(); } ,__class__: haxe_ui_containers__$HorizontalButtonBar_Layout }); var haxe_ui_containers__$HorizontalButtonBar_Builder = function(bar) { haxe_ui_containers_ButtonBarBuilder.call(this,bar); }; $hxClasses["haxe.ui.containers._HorizontalButtonBar.Builder"] = haxe_ui_containers__$HorizontalButtonBar_Builder; haxe_ui_containers__$HorizontalButtonBar_Builder.__name__ = "haxe.ui.containers._HorizontalButtonBar.Builder"; haxe_ui_containers__$HorizontalButtonBar_Builder.__super__ = haxe_ui_containers_ButtonBarBuilder; haxe_ui_containers__$HorizontalButtonBar_Builder.prototype = $extend(haxe_ui_containers_ButtonBarBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_containers__$HorizontalButtonBar_Builder }); var haxe_ui_containers_Splitter = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.Splitter"] = haxe_ui_containers_Splitter; haxe_ui_containers_Splitter.__name__ = "haxe.ui.containers.Splitter"; haxe_ui_containers_Splitter.__interfaces__ = [haxe_ui_core_IDirectionalComponent]; haxe_ui_containers_Splitter.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Splitter.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Splitter(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_SplitterEvents; this._compositeBuilderClass = haxe_ui_containers_SplitterBuilder; } ,__class__: haxe_ui_containers_Splitter }); var haxe_ui_containers_HorizontalSplitter = function() { haxe_ui_containers_Splitter.call(this); this.set_layoutName("horizontal"); }; $hxClasses["haxe.ui.containers.HorizontalSplitter"] = haxe_ui_containers_HorizontalSplitter; haxe_ui_containers_HorizontalSplitter.__name__ = "haxe.ui.containers.HorizontalSplitter"; haxe_ui_containers_HorizontalSplitter.__super__ = haxe_ui_containers_Splitter; haxe_ui_containers_HorizontalSplitter.prototype = $extend(haxe_ui_containers_Splitter.prototype,{ registerComposite: function() { haxe_ui_containers_Splitter.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents; this._compositeBuilderClass = haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder; } ,registerBehaviours: function() { haxe_ui_containers_Splitter.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Splitter.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_HorizontalSplitter(); } ,__class__: haxe_ui_containers_HorizontalSplitter }); var haxe_ui_containers_SplitterEvents = function(splitter) { this._currentOffset = null; this._currentGripper = null; haxe_ui_events_Events.call(this,splitter); this._splitter = splitter; }; $hxClasses["haxe.ui.containers.SplitterEvents"] = haxe_ui_containers_SplitterEvents; haxe_ui_containers_SplitterEvents.__name__ = "haxe.ui.containers.SplitterEvents"; haxe_ui_containers_SplitterEvents.__super__ = haxe_ui_events_Events; haxe_ui_containers_SplitterEvents.prototype = $extend(haxe_ui_events_Events.prototype,{ _splitter: null ,register: function() { var builder = js_Boot.__cast(this._splitter._compositeBuilder , haxe_ui_containers_SplitterBuilder); var grippers = this._splitter.findComponents(builder.getSplitterClass(),haxe_ui_core_Component,1); var _g = 0; while(_g < grippers.length) { var g = grippers[_g]; ++_g; g.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onGripperMouseDown)); } } ,unregister: function() { var builder = js_Boot.__cast(this._splitter._compositeBuilder , haxe_ui_containers_SplitterBuilder); var grippers = this._splitter.findComponents(builder.getSplitterClass(),haxe_ui_core_Component,1); var _g = 0; while(_g < grippers.length) { var g = grippers[_g]; ++_g; g.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onGripperMouseDown)); } } ,_currentGripper: null ,_currentOffset: null ,onGripperMouseDown: function(event) { this._currentGripper = js_Boot.__cast(event.target , haxe_ui_containers__$Splitter_SizerGripper); this._currentOffset = new haxe_ui_geom_Point(event.screenX - this._currentGripper.get_screenLeft(),event.screenY - this._currentGripper.get_screenTop()); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); } ,onScreenMouseMove: function(event) { this._currentGripper.addClass(":down"); var index = this._splitter.getComponentIndex(this._currentGripper); var prev = this._splitter.getComponentAt(index - 1); var next = this._splitter.getComponentAt(index + 1); this.handleResize(prev,next,event); } ,handleResize: function(prev,next,event) { } ,onScreenMouseUp: function(event) { this._currentGripper.removeClass(":down"); if(this._currentGripper.hitTest(event.screenX,event.screenY)) { this._currentGripper.addClass(":hover"); } this._currentGripper = null; haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); } ,__class__: haxe_ui_containers_SplitterEvents }); var haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents = function(splitter) { haxe_ui_containers_SplitterEvents.call(this,splitter); }; $hxClasses["haxe.ui.containers._HorizontalSplitter.HorizontalSplitterEvents"] = haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents; haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents.__name__ = "haxe.ui.containers._HorizontalSplitter.HorizontalSplitterEvents"; haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents.__super__ = haxe_ui_containers_SplitterEvents; haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents.prototype = $extend(haxe_ui_containers_SplitterEvents.prototype,{ onGripperMouseDown: function(event) { haxe_ui_containers_SplitterEvents.prototype.onGripperMouseDown.call(this,event); } ,handleResize: function(prev,next,event) { var screenX = this._splitter.get_screenLeft(); var delta = event.screenX - screenX - this._currentOffset.x; var ucx = this._splitter.get_layout().get_usableWidth(); var prevCX = delta; var nextCX = ucx - delta; var prevMinWidth = 0; var nextMinWidth = 0; var prevMaxWidth = null; var nextMaxWidth = null; if(prevCX <= prevMinWidth) { prevCX = prevMinWidth; nextCX = ucx - prevMinWidth; } if(nextCX <= nextMinWidth) { prevCX = ucx - nextMinWidth; nextCX = nextMinWidth; } if(prevMaxWidth != null && prevCX > prevMaxWidth) { prevCX = prevMaxWidth; nextCX = ucx - prevMaxWidth; } if(nextMaxWidth != null && nextCX > nextMaxWidth) { prevCX = ucx - nextMaxWidth; nextCX = nextMaxWidth; } if(prevCX <= 0) { prev.handleVisibility(false); } else { prev.handleVisibility(true); } if(nextCX <= 0) { next.handleVisibility(false); } else { next.handleVisibility(true); } if(prev.get_percentWidth() != null) { prev.set_percentWidth(prevCX / ucx * 100); } else { prev.set_width(prevCX); } if(next.get_percentWidth() != null) { next.set_percentWidth(nextCX / ucx * 100); } else { next.set_width(nextCX); } } ,__class__: haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterEvents }); var haxe_ui_containers_SplitterBuilder = function(splitter) { haxe_ui_core_CompositeBuilder.call(this,splitter); this._splitter = splitter; }; $hxClasses["haxe.ui.containers.SplitterBuilder"] = haxe_ui_containers_SplitterBuilder; haxe_ui_containers_SplitterBuilder.__name__ = "haxe.ui.containers.SplitterBuilder"; haxe_ui_containers_SplitterBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_SplitterBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _splitter: null ,addComponent: function(child) { var tmp; var _this = this._splitter; if((_this._children == null ? [] : _this._children).length > 0) { var name = this.getSplitterClass(); tmp = child.classes.indexOf(name) != -1 == false; } else { tmp = false; } if(tmp) { var gripper = new haxe_ui_containers__$Splitter_SizerGripper(); gripper.set_id(this.getSplitterClass()); gripper.addClass(this.getSplitterClass()); this._splitter.addComponent(gripper); this._splitter.registerInternalEvents(null,true); } var name = this.getSplitterClass(); if(child.classes.indexOf(name) != -1 == false) { child.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onComponentShown)); child.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onComponentHidden)); } if(child.get_hidden() == true) { this.onComponentHidden(null); } return null; } ,getSplitterClass: function() { return "splitter-gripper"; } ,onComponentShown: function(e) { var _this = this._splitter; var children = (_this._children == null ? [] : _this._children).slice(); var _g = 0; while(_g < children.length) { var c = children[_g]; ++_g; if(c.get_hidden() == true) { if(((c) instanceof haxe_ui_containers__$Splitter_SizerGripper)) { c.show(); } break; } } children.reverse(); var _g = 0; while(_g < children.length) { var c = children[_g]; ++_g; if(c.get_hidden() == true) { if(((c) instanceof haxe_ui_containers__$Splitter_SizerGripper)) { c.show(); } break; } } } ,onComponentHidden: function(e) { var _this = this._splitter; var children = (_this._children == null ? [] : _this._children).slice(); var _g = 0; while(_g < children.length) { var c = children[_g]; ++_g; if(c.get_hidden() == false) { if(((c) instanceof haxe_ui_containers__$Splitter_SizerGripper)) { c.hide(); } break; } } children.reverse(); var _g = 0; while(_g < children.length) { var c = children[_g]; ++_g; if(c.get_hidden() == false) { if(((c) instanceof haxe_ui_containers__$Splitter_SizerGripper)) { c.hide(); } break; } } } ,__class__: haxe_ui_containers_SplitterBuilder }); var haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder = function(splitter) { haxe_ui_containers_SplitterBuilder.call(this,splitter); }; $hxClasses["haxe.ui.containers._HorizontalSplitter.HorizontalSplitterBuilder"] = haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder; haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder.__name__ = "haxe.ui.containers._HorizontalSplitter.HorizontalSplitterBuilder"; haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder.__super__ = haxe_ui_containers_SplitterBuilder; haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder.prototype = $extend(haxe_ui_containers_SplitterBuilder.prototype,{ getSplitterClass: function() { return "horizontal-splitter-gripper"; } ,__class__: haxe_ui_containers__$HorizontalSplitter_HorizontalSplitterBuilder }); var haxe_ui_containers_IVirtualContainer = function() { }; $hxClasses["haxe.ui.containers.IVirtualContainer"] = haxe_ui_containers_IVirtualContainer; haxe_ui_containers_IVirtualContainer.__name__ = "haxe.ui.containers.IVirtualContainer"; haxe_ui_containers_IVirtualContainer.__isInterface__ = true; haxe_ui_containers_IVirtualContainer.prototype = { get_itemWidth: null ,set_itemWidth: null ,get_itemHeight: null ,set_itemHeight: null ,get_itemCount: null ,set_itemCount: null ,get_variableItemSize: null ,set_variableItemSize: null ,get_virtual: null ,set_virtual: null ,get_hscrollPos: null ,set_hscrollPos: null ,get_hscrollMax: null ,set_hscrollMax: null ,get_hscrollPageSize: null ,set_hscrollPageSize: null ,get_vscrollPos: null ,set_vscrollPos: null ,get_vscrollMax: null ,set_vscrollMax: null ,get_vscrollPageSize: null ,set_vscrollPageSize: null ,get_itemRenderer: null ,set_itemRenderer: null ,get_itemRendererClass: null ,set_itemRendererClass: null ,__class__: haxe_ui_containers_IVirtualContainer ,__properties__: {set_itemRendererClass:"set_itemRendererClass",get_itemRendererClass:"get_itemRendererClass",set_itemRenderer:"set_itemRenderer",get_itemRenderer:"get_itemRenderer",set_vscrollPageSize:"set_vscrollPageSize",get_vscrollPageSize:"get_vscrollPageSize",set_vscrollMax:"set_vscrollMax",get_vscrollMax:"get_vscrollMax",set_vscrollPos:"set_vscrollPos",get_vscrollPos:"get_vscrollPos",set_hscrollPageSize:"set_hscrollPageSize",get_hscrollPageSize:"get_hscrollPageSize",set_hscrollMax:"set_hscrollMax",get_hscrollMax:"get_hscrollMax",set_hscrollPos:"set_hscrollPos",get_hscrollPos:"get_hscrollPos",set_virtual:"set_virtual",get_virtual:"get_virtual",set_variableItemSize:"set_variableItemSize",get_variableItemSize:"get_variableItemSize",set_itemCount:"set_itemCount",get_itemCount:"get_itemCount",set_itemHeight:"set_itemHeight",get_itemHeight:"get_itemHeight",set_itemWidth:"set_itemWidth",get_itemWidth:"get_itemWidth"} }; var haxe_ui_core_IScroller = function() { }; $hxClasses["haxe.ui.core.IScroller"] = haxe_ui_core_IScroller; haxe_ui_core_IScroller.__name__ = "haxe.ui.core.IScroller"; haxe_ui_core_IScroller.__isInterface__ = true; haxe_ui_core_IScroller.prototype = { get_isScrollableHorizontally: null ,get_isScrollableVertically: null ,get_isScrollable: null ,get_vscrollPos: null ,set_vscrollPos: null ,get_hscrollPos: null ,set_hscrollPos: null ,get_virtual: null ,set_virtual: null ,get_scrollMode: null ,set_scrollMode: null ,ensureVisible: null ,findHorizontalScrollbar: null ,findVerticalScrollbar: null ,isScrollableHorizontally: null ,isScrollableVertically: null ,isScrollable: null ,__class__: haxe_ui_core_IScroller ,__properties__: {set_scrollMode:"set_scrollMode",get_scrollMode:"get_scrollMode",set_virtual:"set_virtual",get_virtual:"get_virtual",set_hscrollPos:"set_hscrollPos",get_hscrollPos:"get_hscrollPos",set_vscrollPos:"set_vscrollPos",get_vscrollPos:"get_vscrollPos",get_isScrollable:"get_isScrollable",get_isScrollableVertically:"get_isScrollableVertically",get_isScrollableHorizontally:"get_isScrollableHorizontally"} }; var haxe_ui_containers_ScrollView = function() { haxe_ui_core_InteractiveComponent.call(this); }; $hxClasses["haxe.ui.containers.ScrollView"] = haxe_ui_containers_ScrollView; haxe_ui_containers_ScrollView.__name__ = "haxe.ui.containers.ScrollView"; haxe_ui_containers_ScrollView.__interfaces__ = [haxe_ui_core_IScroller]; haxe_ui_containers_ScrollView.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_containers_ScrollView.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ ensureVisible: function(component) { if(this.behaviours == null) { return; } this.behaviours.call("ensureVisible",component); } ,findHorizontalScrollbar: function() { return haxe_ui_util_Variant.toComponent(this.behaviours.call("findHorizontalScrollbar",null)); } ,findVerticalScrollbar: function() { return haxe_ui_util_Variant.toComponent(this.behaviours.call("findVerticalScrollbar",null)); } ,validateComponentInternal: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } if(this.get_native() == true) { haxe_ui_core_InteractiveComponent.prototype.validateComponentInternal.call(this,nextFrame); return; } var scrollInvalid = this.isComponentInvalid("scroll"); var layoutInvalid = this.isComponentInvalid("layout"); haxe_ui_core_InteractiveComponent.prototype.validateComponentInternal.call(this,nextFrame); if(scrollInvalid || layoutInvalid) { (js_Boot.__cast(this._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).checkScrolls(); (js_Boot.__cast(this._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).updateScrollRect(); } } ,registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); this.behaviours.register("virtual",haxe_ui_containers__$ScrollView_Virtual); this.behaviours.register("contentLayoutName",haxe_ui_containers__$ScrollView_ContentLayoutName,haxe_ui_util_Variant.fromString("vertical")); this.behaviours.register("contentWidth",haxe_ui_containers__$ScrollView_ContentWidth); this.behaviours.register("percentContentWidth",haxe_ui_containers__$ScrollView_PercentContentWidth); this.behaviours.register("contentHeight",haxe_ui_containers__$ScrollView_ContentHeight); this.behaviours.register("percentContentHeight",haxe_ui_containers__$ScrollView_PercentContentHeight); this.behaviours.register("hscrollPos",haxe_ui_containers__$ScrollView_HScrollPos); this.behaviours.register("hscrollMax",haxe_ui_containers__$ScrollView_HScrollMax); this.behaviours.register("hscrollPageSize",haxe_ui_containers__$ScrollView_HScrollPageSize); this.behaviours.register("hscrollThumbSize",haxe_ui_containers__$ScrollView_HScrollThumbSize); this.behaviours.register("vscrollPos",haxe_ui_containers__$ScrollView_VScrollPos); this.behaviours.register("vscrollMax",haxe_ui_containers__$ScrollView_VScrollMax); this.behaviours.register("vscrollPageSize",haxe_ui_containers__$ScrollView_VScrollPageSize); this.behaviours.register("vscrollThumbSize",haxe_ui_containers__$ScrollView_VScrollThumbSize); this.behaviours.register("thumbSize",haxe_ui_containers__$ScrollView_ThumbSize); this.behaviours.register("scrollMouseButton",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromString("left")); this.behaviours.register("scrollMode",haxe_ui_containers__$ScrollView_ScrollModeBehaviour,haxe_ui_util_Variant.fromString("default")); this.behaviours.register("scrollPolicy",haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour); this.behaviours.register("horizontalScrollPolicy",haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour); this.behaviours.register("verticalScrollPolicy",haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour); this.behaviours.register("contents",haxe_ui_containers__$ScrollView_GetContents); this.behaviours.register("autoHideScrolls",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("allowAutoScroll",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("isScrollableHorizontally",haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour); this.behaviours.register("isScrollableVertically",haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour); this.behaviours.register("isScrollable",haxe_ui_containers__$ScrollView_IsScrollableBehaviour); this.behaviours.register("emptyContentsComponent",haxe_ui_containers__$ScrollView_EmptyContentsComponent); this.behaviours.register("emptyContentsText",haxe_ui_containers__$ScrollView_EmptyContentsText); this.behaviours.register("ensureVisible",haxe_ui_containers__$ScrollView_EnsureVisible); this.behaviours.register("findHorizontalScrollbar",haxe_ui_containers__$ScrollView_FindHorizontalScrollbar); this.behaviours.register("findVerticalScrollbar",haxe_ui_containers__$ScrollView_FindVerticalScrollbar); } ,get_virtual: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("virtual")); } ,set_virtual: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("virtual",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"virtual")); return value; } ,get_contentLayoutName: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("contentLayoutName")); } ,set_contentLayoutName: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"contentLayoutName",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("contentLayoutName",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"contentLayoutName")); return value; } ,get_contentWidth: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("contentWidth")); } ,set_contentWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("contentWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"contentWidth")); return value; } ,get_percentContentWidth: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("percentContentWidth")); } ,set_percentContentWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("percentContentWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"percentContentWidth")); return value; } ,get_contentHeight: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("contentHeight")); } ,set_contentHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("contentHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"contentHeight")); return value; } ,get_percentContentHeight: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("percentContentHeight")); } ,set_percentContentHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("percentContentHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"percentContentHeight")); return value; } ,get_hscrollPos: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("hscrollPos")); } ,set_hscrollPos: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("hscrollPos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"hscrollPos")); return value; } ,get_hscrollMax: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("hscrollMax")); } ,set_hscrollMax: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("hscrollMax",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"hscrollMax")); return value; } ,get_hscrollPageSize: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("hscrollPageSize")); } ,set_hscrollPageSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("hscrollPageSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"hscrollPageSize")); return value; } ,get_hscrollThumbSize: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("hscrollThumbSize")); } ,set_hscrollThumbSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("hscrollThumbSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"hscrollThumbSize")); return value; } ,get_vscrollPos: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("vscrollPos")); } ,set_vscrollPos: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("vscrollPos",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"vscrollPos")); return value; } ,get_vscrollMax: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("vscrollMax")); } ,set_vscrollMax: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("vscrollMax",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"vscrollMax")); return value; } ,get_vscrollPageSize: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("vscrollPageSize")); } ,set_vscrollPageSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("vscrollPageSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"vscrollPageSize")); return value; } ,get_vscrollThumbSize: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("vscrollThumbSize")); } ,set_vscrollThumbSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("vscrollThumbSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"vscrollThumbSize")); return value; } ,get_thumbSize: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("thumbSize")); } ,set_thumbSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("thumbSize",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"thumbSize")); return value; } ,get_scrollMouseButton: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("scrollMouseButton")); } ,set_scrollMouseButton: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("scrollMouseButton",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"scrollMouseButton")); return value; } ,get_scrollMode: function() { if(this.behaviours == null) { return null; } return haxe_ui_constants_ScrollMode.fromVariant(this.behaviours.get("scrollMode")); } ,set_scrollMode: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("scrollMode",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"scrollMode")); return value; } ,get_scrollPolicy: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("scrollPolicy")); } ,set_scrollPolicy: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("scrollPolicy",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"scrollPolicy")); return value; } ,get_horizontalScrollPolicy: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("horizontalScrollPolicy")); } ,set_horizontalScrollPolicy: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("horizontalScrollPolicy",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"horizontalScrollPolicy")); return value; } ,get_verticalScrollPolicy: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("verticalScrollPolicy")); } ,set_verticalScrollPolicy: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("verticalScrollPolicy",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"verticalScrollPolicy")); return value; } ,get_contents: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("contents")); } ,set_contents: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("contents",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"contents")); return value; } ,get_autoHideScrolls: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("autoHideScrolls")); } ,set_autoHideScrolls: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("autoHideScrolls",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"autoHideScrolls")); return value; } ,get_allowAutoScroll: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("allowAutoScroll")); } ,set_allowAutoScroll: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("allowAutoScroll",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"allowAutoScroll")); return value; } ,get_isScrollableHorizontally: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("isScrollableHorizontally")); } ,set_isScrollableHorizontally: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("isScrollableHorizontally",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"isScrollableHorizontally")); return value; } ,get_isScrollableVertically: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("isScrollableVertically")); } ,set_isScrollableVertically: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("isScrollableVertically",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"isScrollableVertically")); return value; } ,get_isScrollable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("isScrollable")); } ,set_isScrollable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("isScrollable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"isScrollable")); return value; } ,get_emptyContentsComponent: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("emptyContentsComponent")); } ,set_emptyContentsComponent: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("emptyContentsComponent",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"emptyContentsComponent")); return value; } ,get_emptyContentsText: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("emptyContentsText")); } ,set_emptyContentsText: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"emptyContentsText",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("emptyContentsText",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"emptyContentsText")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); c.set_virtual(this.get_virtual()); if(this.get_contentLayoutName() != null) { c.set_contentLayoutName(this.get_contentLayoutName()); } if(this.get_contentWidth() != null) { c.set_contentWidth(this.get_contentWidth()); } if(this.get_percentContentWidth() != null) { c.set_percentContentWidth(this.get_percentContentWidth()); } if(this.get_contentHeight() != null) { c.set_contentHeight(this.get_contentHeight()); } if(this.get_percentContentHeight() != null) { c.set_percentContentHeight(this.get_percentContentHeight()); } c.set_hscrollPos(this.get_hscrollPos()); c.set_hscrollMax(this.get_hscrollMax()); c.set_hscrollPageSize(this.get_hscrollPageSize()); if(this.get_hscrollThumbSize() != null) { c.set_hscrollThumbSize(this.get_hscrollThumbSize()); } c.set_vscrollPos(this.get_vscrollPos()); c.set_vscrollMax(this.get_vscrollMax()); c.set_vscrollPageSize(this.get_vscrollPageSize()); if(this.get_vscrollThumbSize() != null) { c.set_vscrollThumbSize(this.get_vscrollThumbSize()); } if(this.get_thumbSize() != null) { c.set_thumbSize(this.get_thumbSize()); } if(this.get_scrollMouseButton() != null) { c.set_scrollMouseButton(this.get_scrollMouseButton()); } if(this.get_scrollMode() != null) { c.set_scrollMode(this.get_scrollMode()); } if(this.get_scrollPolicy() != null) { c.set_scrollPolicy(this.get_scrollPolicy()); } if(this.get_horizontalScrollPolicy() != null) { c.set_horizontalScrollPolicy(this.get_horizontalScrollPolicy()); } if(this.get_verticalScrollPolicy() != null) { c.set_verticalScrollPolicy(this.get_verticalScrollPolicy()); } if(this.get_contents() != null) { c.set_contents(this.get_contents()); } c.set_autoHideScrolls(this.get_autoHideScrolls()); c.set_allowAutoScroll(this.get_allowAutoScroll()); c.set_isScrollableHorizontally(this.get_isScrollableHorizontally()); c.set_isScrollableVertically(this.get_isScrollableVertically()); c.set_isScrollable(this.get_isScrollable()); if(this.get_emptyContentsComponent() != null) { c.set_emptyContentsComponent(this.get_emptyContentsComponent()); } if(this.get_emptyContentsText() != null) { c.set_emptyContentsText(this.get_emptyContentsText()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_ScrollView(); } ,registerComposite: function() { haxe_ui_core_InteractiveComponent.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_ScrollViewEvents; this._compositeBuilderClass = haxe_ui_containers_ScrollViewBuilder; this._defaultLayoutClass = haxe_ui_layouts_ScrollViewLayout; } ,_internal__onScroll: null ,onScroll: null ,set_onScroll: function(value) { if(this._internal__onScroll != null) { this.unregisterEvent(haxe_ui_events_ScrollEvent.SCROLL,this._internal__onScroll); this._internal__onScroll = null; } if(value != null) { this._internal__onScroll = value; this.registerEvent(haxe_ui_events_ScrollEvent.SCROLL,value); } return value; } ,__class__: haxe_ui_containers_ScrollView ,__properties__: $extend(haxe_ui_core_InteractiveComponent.prototype.__properties__,{set_onScroll:"set_onScroll",set_emptyContentsText:"set_emptyContentsText",get_emptyContentsText:"get_emptyContentsText",set_emptyContentsComponent:"set_emptyContentsComponent",get_emptyContentsComponent:"get_emptyContentsComponent",set_isScrollable:"set_isScrollable",get_isScrollable:"get_isScrollable",set_isScrollableVertically:"set_isScrollableVertically",get_isScrollableVertically:"get_isScrollableVertically",set_isScrollableHorizontally:"set_isScrollableHorizontally",get_isScrollableHorizontally:"get_isScrollableHorizontally",set_allowAutoScroll:"set_allowAutoScroll",get_allowAutoScroll:"get_allowAutoScroll",set_autoHideScrolls:"set_autoHideScrolls",get_autoHideScrolls:"get_autoHideScrolls",set_contents:"set_contents",get_contents:"get_contents",set_verticalScrollPolicy:"set_verticalScrollPolicy",get_verticalScrollPolicy:"get_verticalScrollPolicy",set_horizontalScrollPolicy:"set_horizontalScrollPolicy",get_horizontalScrollPolicy:"get_horizontalScrollPolicy",set_scrollPolicy:"set_scrollPolicy",get_scrollPolicy:"get_scrollPolicy",set_scrollMode:"set_scrollMode",get_scrollMode:"get_scrollMode",set_scrollMouseButton:"set_scrollMouseButton",get_scrollMouseButton:"get_scrollMouseButton",set_thumbSize:"set_thumbSize",get_thumbSize:"get_thumbSize",set_vscrollThumbSize:"set_vscrollThumbSize",get_vscrollThumbSize:"get_vscrollThumbSize",set_vscrollPageSize:"set_vscrollPageSize",get_vscrollPageSize:"get_vscrollPageSize",set_vscrollMax:"set_vscrollMax",get_vscrollMax:"get_vscrollMax",set_vscrollPos:"set_vscrollPos",get_vscrollPos:"get_vscrollPos",set_hscrollThumbSize:"set_hscrollThumbSize",get_hscrollThumbSize:"get_hscrollThumbSize",set_hscrollPageSize:"set_hscrollPageSize",get_hscrollPageSize:"get_hscrollPageSize",set_hscrollMax:"set_hscrollMax",get_hscrollMax:"get_hscrollMax",set_hscrollPos:"set_hscrollPos",get_hscrollPos:"get_hscrollPos",set_percentContentHeight:"set_percentContentHeight",get_percentContentHeight:"get_percentContentHeight",set_contentHeight:"set_contentHeight",get_contentHeight:"get_contentHeight",set_percentContentWidth:"set_percentContentWidth",get_percentContentWidth:"get_percentContentWidth",set_contentWidth:"set_contentWidth",get_contentWidth:"get_contentWidth",set_contentLayoutName:"set_contentLayoutName",get_contentLayoutName:"get_contentLayoutName",set_virtual:"set_virtual",get_virtual:"get_virtual"}) }); var haxe_ui_containers_ListView = function() { haxe_ui_containers_ScrollView.call(this); }; $hxClasses["haxe.ui.containers.ListView"] = haxe_ui_containers_ListView; haxe_ui_containers_ListView.__name__ = "haxe.ui.containers.ListView"; haxe_ui_containers_ListView.__interfaces__ = [haxe_ui_containers_IVirtualContainer,haxe_ui_core_IDataComponent]; haxe_ui_containers_ListView.__super__ = haxe_ui_containers_ScrollView; haxe_ui_containers_ListView.prototype = $extend(haxe_ui_containers_ScrollView.prototype,{ selectItemBy: function(fn,allowUnselection) { if(allowUnselection == null) { allowUnselection = false; } var indexToSelect = -1; var _g = 0; var _g1 = this.get_dataSource().get_size(); while(_g < _g1) { var i = _g++; var item = this.get_dataSource().get(i); if(fn(item)) { indexToSelect = i; break; } } if(allowUnselection && indexToSelect != this.get_selectedIndex()) { this.set_selectedIndex(indexToSelect); } else if(indexToSelect != -1 && indexToSelect != this.get_selectedIndex()) { this.set_selectedIndex(indexToSelect); } } ,_itemRendererClass: null ,get_itemRendererClass: function() { return this._itemRendererClass; } ,set_itemRendererClass: function(value) { if(this._itemRendererClass != value) { this._itemRendererClass = value; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } return value; } ,_itemRenderer: null ,get_itemRenderer: function() { return this._itemRenderer; } ,set_itemRenderer: function(value) { if(this._itemRenderer != value) { this._itemRenderer = value; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } return value; } ,registerComposite: function() { haxe_ui_containers_ScrollView.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_ListViewEvents; this._compositeBuilderClass = haxe_ui_containers__$ListView_ListViewBuilder; this._defaultLayoutClass = haxe_ui_layouts_VerticalVirtualLayout; } ,_internal__onComponentEvent: null ,onComponentEvent: null ,set_onComponentEvent: function(value) { if(this._internal__onComponentEvent != null) { this.unregisterEvent(haxe_ui_events_ItemEvent.COMPONENT_EVENT,this._internal__onComponentEvent); this._internal__onComponentEvent = null; } if(value != null) { this._internal__onComponentEvent = value; this.registerEvent(haxe_ui_events_ItemEvent.COMPONENT_EVENT,value); } return value; } ,registerBehaviours: function() { haxe_ui_containers_ScrollView.prototype.registerBehaviours.call(this); this.behaviours.register("dataSource",haxe_ui_containers__$ListView_DataSourceBehaviour); this.behaviours.register("itemWidth",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("itemHeight",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("itemCount",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("variableItemSize",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("selectedIndex",haxe_ui_containers__$ListView_SelectedIndexBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedItem",haxe_ui_containers__$ListView_SelectedItemBehaviour); this.behaviours.register("selectedIndices",haxe_ui_containers__$ListView_SelectedIndicesBehaviour); this.behaviours.register("selectedItems",haxe_ui_containers__$ListView_SelectedItemsBehaviour); this.behaviours.register("selectionMode",haxe_ui_containers__$ListView_SelectionModeBehaviour,haxe_ui_util_Variant.fromString("one-item")); this.behaviours.register("longPressSelectionTime",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(500)); } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,get_itemWidth: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("itemWidth")); } ,set_itemWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("itemWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"itemWidth")); return value; } ,get_itemHeight: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("itemHeight")); } ,set_itemHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("itemHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"itemHeight")); return value; } ,get_itemCount: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("itemCount")); } ,set_itemCount: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("itemCount",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"itemCount")); return value; } ,get_variableItemSize: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("variableItemSize")); } ,set_variableItemSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("variableItemSize",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"variableItemSize")); return value; } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"value")); return value; } ,get_selectedItem: function() { if(this.behaviours == null) { return null; } return this.behaviours.getDynamic("selectedItem"); } ,set_selectedItem: function(value) { this.behaviours.setDynamic("selectedItem",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedItem")); return value; } ,get_selectedIndices: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toArray(this.behaviours.get("selectedIndices")); } ,set_selectedIndices: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndices",haxe_ui_util_Variant.fromArray(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndices")); return value; } ,get_selectedItems: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toArray(this.behaviours.get("selectedItems")); } ,set_selectedItems: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedItems",haxe_ui_util_Variant.fromArray(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedItems")); return value; } ,get_selectionMode: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("selectionMode")); } ,set_selectionMode: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectionMode",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectionMode")); return value; } ,get_longPressSelectionTime: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("longPressSelectionTime")); } ,set_longPressSelectionTime: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("longPressSelectionTime",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"longPressSelectionTime")); return value; } ,get_value: function() { return this.get_selectedIndex(); } ,set_value: function(value) { var _g = Type.typeof(value); switch(_g._hx_index) { case 3: this.set_selectedIndex(value == true ? 1 : 0); break; case 6: if(_g.c == String) { this.set_selectedIndex(Std.parseInt(value)); } else { this.set_selectedIndex(value); } break; case 7: if(_g.e == haxe_ui_util_VariantType) { var v = value; this.set_selectedIndex(haxe_ui_util_Variant.toInt(v)); } else { this.set_selectedIndex(value); } break; default: this.set_selectedIndex(value); } return value; } ,cloneComponent: function() { var c = haxe_ui_containers_ScrollView.prototype.cloneComponent.call(this); if(this.get_itemRendererClass() != null) { c.set_itemRendererClass(this.get_itemRendererClass()); } if(this.get_itemRenderer() != null) { c.set_itemRenderer(this.get_itemRenderer()); } if(this.get_dataSource() != null) { c.set_dataSource(this.get_dataSource()); } c.set_itemWidth(this.get_itemWidth()); c.set_itemHeight(this.get_itemHeight()); c.set_itemCount(this.get_itemCount()); c.set_variableItemSize(this.get_variableItemSize()); c.set_selectedIndex(this.get_selectedIndex()); if(this.get_selectedItem() != null) { c.set_selectedItem(this.get_selectedItem()); } if(this.get_selectedIndices() != null) { c.set_selectedIndices(this.get_selectedIndices()); } if(this.get_selectedItems() != null) { c.set_selectedItems(this.get_selectedItems()); } if(this.get_selectionMode() != null) { c.set_selectionMode(this.get_selectionMode()); } c.set_longPressSelectionTime(this.get_longPressSelectionTime()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_ListView(); } ,__class__: haxe_ui_containers_ListView ,__properties__: $extend(haxe_ui_containers_ScrollView.prototype.__properties__,{set_longPressSelectionTime:"set_longPressSelectionTime",get_longPressSelectionTime:"get_longPressSelectionTime",set_selectionMode:"set_selectionMode",get_selectionMode:"get_selectionMode",set_selectedItems:"set_selectedItems",get_selectedItems:"get_selectedItems",set_selectedIndices:"set_selectedIndices",get_selectedIndices:"get_selectedIndices",set_selectedItem:"set_selectedItem",get_selectedItem:"get_selectedItem",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",set_variableItemSize:"set_variableItemSize",get_variableItemSize:"get_variableItemSize",set_itemCount:"set_itemCount",get_itemCount:"get_itemCount",set_itemHeight:"set_itemHeight",get_itemHeight:"get_itemHeight",set_itemWidth:"set_itemWidth",get_itemWidth:"get_itemWidth",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource",set_onComponentEvent:"set_onComponentEvent",set_itemRenderer:"set_itemRenderer",get_itemRenderer:"get_itemRenderer",set_itemRendererClass:"set_itemRendererClass",get_itemRendererClass:"get_itemRendererClass"}) }); var haxe_ui_containers_ScrollViewEvents = function(scrollview) { this._fadeTimer = null; this._containerEventsPaused = false; this._lastMousePos = null; this._movementThreshold = 3; this._inertia = null; haxe_ui_events_Events.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers.ScrollViewEvents"] = haxe_ui_containers_ScrollViewEvents; haxe_ui_containers_ScrollViewEvents.__name__ = "haxe.ui.containers.ScrollViewEvents"; haxe_ui_containers_ScrollViewEvents.__super__ = haxe_ui_events_Events; haxe_ui_containers_ScrollViewEvents.prototype = $extend(haxe_ui_events_Events.prototype,{ _scrollview: null ,register: function() { var contents = this._scrollview.findComponent("scrollview-contents",null,false,"css"); if(contents != null && contents.hasEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this.onContentsResized)) == false) { contents.registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this.onContentsResized)); } var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null && hscroll.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onHScroll)) == false) { hscroll.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onHScroll)); } if(hscroll != null && hscroll.hasEvent(haxe_ui_events_ScrollEvent.SCROLL,$bind(this,this.onHScrollScroll)) == false) { hscroll.registerEvent(haxe_ui_events_ScrollEvent.SCROLL,$bind(this,this.onHScrollScroll)); } var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null && vscroll.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onVScroll)) == false) { vscroll.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onVScroll)); } if(vscroll != null && vscroll.hasEvent(haxe_ui_events_ScrollEvent.SCROLL,$bind(this,this.onVScrollScroll)) == false) { vscroll.registerEvent(haxe_ui_events_ScrollEvent.SCROLL,$bind(this,this.onVScrollScroll)); } if(this._scrollview.get_scrollMode() == "default" || this._scrollview.get_scrollMode() == "drag" || this._scrollview.get_scrollMode() == "inertial" || this._scrollview.get_isHybridScroller()) { this.registerEvent(haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN,$bind(this,this.onMiddleMouseDown)); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onLeftMouseDown)); this.registerEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onRightMouseDown)); } else if(this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onLeftMouseDown))) { this.unregisterEvent(haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN,$bind(this,this.onMiddleMouseDown)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onLeftMouseDown)); this.unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onRightMouseDown)); } if(this._scrollview.hasEvent(haxe_ui_events_UIEvent.SHOWN) == false) { this.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onShown)); } if(this._scrollview.hasEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED) == false) { this.registerEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onComponentAdded)); } if(contents != null && contents.hasEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED) == false) { contents.registerEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onContentsComponentAdded)); } if(this._scrollview.hasEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED) == false) { this.registerEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onComponentRemoved)); } if(contents != null && contents.hasEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED) == false) { contents.registerEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onComponentRemoved)); } this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel),-100); this.registerEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart),-100); } ,unregister: function() { var contents = this._scrollview.findComponent("scrollview-contents",null,false,"css"); if(contents != null) { contents.unregisterEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this.onContentsResized)); } var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { hscroll.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onHScroll)); hscroll.unregisterEvent(haxe_ui_events_ScrollEvent.SCROLL,$bind(this,this.onHScrollScroll)); } var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { vscroll.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onVScroll)); vscroll.unregisterEvent(haxe_ui_events_ScrollEvent.SCROLL,$bind(this,this.onVScrollScroll)); } this.unregisterEvent(haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN,$bind(this,this.onMiddleMouseDown)); this.unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onRightMouseDown)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onLeftMouseDown)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_WHEEL,$bind(this,this.onMouseWheel)); this.unregisterEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onShown)); this.unregisterEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onComponentAdded)); if(contents != null) { contents.unregisterEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onContentsComponentAdded)); } this.unregisterEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onComponentRemoved)); if(contents != null) { contents.unregisterEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onContentsComponentRemoved)); } this.unregisterEvent(haxe_ui_events_ActionEvent.ACTION_START,$bind(this,this.onActionStart)); } ,onShown: function(event) { var _this = this._scrollview; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { if(!(hscroll._layout == null || hscroll._layoutLocked == true)) { hscroll.invalidateComponent("layout",false); } } var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { if(!(vscroll._layout == null || vscroll._layoutLocked == true)) { vscroll.invalidateComponent("layout",false); } } } ,onComponentAdded: function(event) { if(((event.relatedComponent) instanceof haxe_ui_components_Scroll)) { event.cancel(); var scrollEvent = new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.CHANGE); this._scrollview.dispatch(scrollEvent); } } ,onContentsComponentAdded: function(event) { this._scrollview.dispatch(event); } ,onComponentRemoved: function(event) { if(((event.relatedComponent) instanceof haxe_ui_components_Scroll)) { event.cancel(); var scrollEvent = new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.CHANGE); this._scrollview.dispatch(scrollEvent); } } ,onContentsComponentRemoved: function(event) { this._scrollview.dispatch(event); } ,onContentsResized: function(event) { this._scrollview.invalidateComponent("scroll"); } ,onHScroll: function(event) { this._scrollview.invalidateComponent("scroll"); this._target.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.CHANGE)); } ,onHScrollScroll: function(event) { this._target.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.SCROLL)); } ,onVScroll: function(event) { this._scrollview.invalidateComponent("scroll"); this._target.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.CHANGE)); } ,onVScrollScroll: function(event) { this._target.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.SCROLL)); } ,onLeftMouseDown: function(event) { if(this._scrollview.get_scrollMouseButton() == "left") { this.onMouseDown(event); } } ,onMiddleMouseDown: function(event) { if(this._scrollview.get_scrollMouseButton() == "middle") { this.onMouseDown(event); } } ,onRightMouseDown: function(event) { if(this._scrollview.get_scrollMouseButton() == "right") { this.onMouseDown(event); } } ,_offset: null ,_inertia: null ,onMouseDown: function(event) { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(hscroll == null && vscroll == null) { return; } this._scrollview.addClass(":down"); this._lastMousePos = new haxe_ui_geom_Point(event.screenX,event.screenY); var componentOffset = this._scrollview.getComponentOffset(); var under = this._scrollview.findComponentsUnderPoint(event.screenX - componentOffset.x,event.screenY - componentOffset.y); var _g = 0; while(_g < under.length) { var c = under[_g]; ++_g; if(c.hasTextInput() || ((c) instanceof haxe_ui_components_Scroll)) { return; } } this._offset = new haxe_ui_geom_Point(); if(hscroll != null) { var tmp = hscroll.get_pos(); this._offset.x = tmp + event.screenX; } if(vscroll != null) { var tmp = vscroll.get_pos(); this._offset.y = tmp + event.screenY; } if(this._scrollview.get_scrollMode() == "inertial") { if(this._inertia == null) { this._inertia = { screen : new haxe_ui_geom_Point(), target : new haxe_ui_geom_Point(), amplitude : new haxe_ui_geom_Point(), direction : new haxe_ui_geom_Point(), timestamp : 0}; } this._inertia.target.x = this._scrollview.get_hscrollPos(); this._inertia.target.y = this._scrollview.get_vscrollPos(); this._inertia.amplitude.x = 0; this._inertia.amplitude.y = 0; this._inertia.screen.x = event.screenX; this._inertia.screen.y = event.screenY; var tmp = new Date().getTime(); this._inertia.timestamp = tmp / 1000; } haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onMouseMove)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP,$bind(this,this.onMouseUp)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP,$bind(this,this.onMouseUp)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onMouseUp)); } ,_movementThreshold: null ,_lastMousePos: null ,onMouseMove: function(event) { event.cancel(); var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { hscroll.set_pos(this._offset.x - event.screenX); var distX = Math.abs(event.screenX - this._lastMousePos.x); if(distX > haxe_ui_Toolkit.get_scaleX()) { this.pauseContainerEvents(); } } var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { vscroll.set_pos(this._offset.y - event.screenY); var distY = Math.abs(event.screenY - this._lastMousePos.y); if(distY > haxe_ui_Toolkit.get_scaleY()) { this.pauseContainerEvents(); } } this._lastMousePos = new haxe_ui_geom_Point(event.screenX,event.screenY); } ,_containerEventsPaused: null ,pauseContainerEvents: function() { if(this._containerEventsPaused == true) { return; } this._containerEventsPaused = true; this.onContainerEventsStatusChanged(); } ,resumeContainerEvents: function() { if(this._containerEventsPaused == false) { return; } this._containerEventsPaused = false; this.onContainerEventsStatusChanged(); } ,onContainerEventsStatusChanged: function() { var scrollViewContents = this._scrollview.findComponent("scrollview-contents",haxe_ui_core_Component,true,"css"); scrollViewContents.disableInteractivity(this._containerEventsPaused); if(this._containerEventsPaused == true) { scrollViewContents.removeClass(":hover",true,true); } else { var components = scrollViewContents.findComponentsUnderPoint(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY); var _g = 0; while(_g < components.length) { var c = components[_g]; ++_g; var mouseEvent = new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.MOUSE_OVER); c.dispatch(mouseEvent); } } var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(hscroll != null || vscroll != null) { if(this._scrollview.get_autoHideScrolls() == true) { if(this._containerEventsPaused == true) { if(hscroll != null) { hscroll.fadeIn(); } if(vscroll != null) { vscroll.fadeIn(); } } else { if(hscroll != null) { hscroll.fadeOut(); } if(vscroll != null) { vscroll.fadeOut(); } } } } } ,onMouseUp: function(event) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onMouseMove)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP,$bind(this,this.onMouseUp)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP,$bind(this,this.onMouseUp)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onMouseUp)); if(this._scrollview.get_scrollMode() == "inertial") { var now = new Date().getTime() / 1000; var elapsed = (now - this._inertia.timestamp) * 1000; var deltaX = Math.abs(this._inertia.screen.x - event.screenX); var deltaY = Math.abs(this._inertia.screen.y - event.screenY); this._inertia.direction.x = this._inertia.screen.x - event.screenX < 0 ? 0 : 1; var velocityX = deltaX / elapsed; var v = 1000 * deltaX / (1 + elapsed); velocityX = 0.8 * v + 0.2 * velocityX; this._inertia.direction.y = this._inertia.screen.y - event.screenY < 0 ? 0 : 1; var velocityY = deltaY / elapsed; var v = 1000 * deltaY / (1 + elapsed); velocityY = 0.8 * v + 0.2 * velocityY; if(velocityX <= 75 && velocityY <= 75) { this.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.STOP)); haxe_ui_Toolkit.callLater($bind(this,this.resumeContainerEvents)); return; } var tmp = new Date().getTime(); this._inertia.timestamp = tmp / 1000; var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { this._inertia.amplitude.x = 0.8 * velocityX; } if(this._inertia.direction.x == 0) { var tmp = this._scrollview.get_hscrollPos() - this._inertia.amplitude.x; this._inertia.target.x = Math.round(tmp); } else { var tmp = this._scrollview.get_hscrollPos() + this._inertia.amplitude.x; this._inertia.target.x = Math.round(tmp); } var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { this._inertia.amplitude.y = 0.8 * velocityY; } if(this._inertia.direction.y == 0) { var tmp = this._scrollview.get_vscrollPos() - this._inertia.amplitude.y; this._inertia.target.y = Math.round(tmp); } else { var tmp = this._scrollview.get_vscrollPos() + this._inertia.amplitude.y; this._inertia.target.y = Math.round(tmp); } if(this._scrollview.get_hscrollPos() == this._inertia.target.x && this._scrollview.get_vscrollPos() == this._inertia.target.y) { this.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.STOP)); haxe_ui_Toolkit.callLater($bind(this,this.resumeContainerEvents)); return; } if(this._scrollview.get_hscrollPos() == this._inertia.target.x) { this._inertia.amplitude.x = 0; } if(this._scrollview.get_vscrollPos() == this._inertia.target.y) { this._inertia.amplitude.y = 0; } haxe_ui_Toolkit.callLater($bind(this,this.inertialScroll)); } else { this._scrollview.removeClass(":down"); this.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.STOP)); haxe_ui_Toolkit.callLater($bind(this,this.resumeContainerEvents)); } } ,inertialScroll: function() { var elapsed = (new Date().getTime() / 1000 - this._inertia.timestamp) * 1000; var finishedX = false; if(this._inertia.amplitude.x != 0) { var deltaX = -this._inertia.amplitude.x * Math.exp(-elapsed / 325); if(deltaX > 0.5 || deltaX < -0.5) { var oldPos = this._scrollview.get_hscrollPos(); var newPos = 0; if(this._inertia.direction.x == 0) { newPos = this._inertia.target.x - deltaX; } else { newPos = this._inertia.target.x + deltaX; } if(newPos < 0) { newPos = 0; } else if(newPos > this._scrollview.get_hscrollMax()) { newPos = this._scrollview.get_hscrollMax(); } this._scrollview.set_hscrollPos(newPos); finishedX = newPos == oldPos || newPos == 0 || newPos == this._scrollview.get_hscrollMax(); } else { finishedX = true; } } else { finishedX = true; } var finishedY = false; if(this._inertia.amplitude.y != 0) { var deltaY = -this._inertia.amplitude.y * Math.exp(-elapsed / 325); if(deltaY > 0.5 || deltaY < -0.5) { var oldPos = this._scrollview.get_vscrollPos(); var newPos = 0; if(this._inertia.direction.y == 0) { newPos = this._inertia.target.y - deltaY; } else { newPos = this._inertia.target.y + deltaY; } if(newPos < 0) { newPos = 0; } else if(newPos > this._scrollview.get_vscrollMax()) { newPos = this._scrollview.get_vscrollMax(); } this._scrollview.set_vscrollPos(newPos); finishedY = newPos == oldPos || newPos == 0 || newPos == this._scrollview.get_vscrollMax(); } else { finishedY = true; } } else { finishedY = true; } if(finishedX == true && finishedY == true) { this.dispatch(new haxe_ui_events_ScrollEvent(haxe_ui_events_ScrollEvent.STOP)); haxe_ui_Toolkit.callLater($bind(this,this.resumeContainerEvents)); } else { haxe_ui_Toolkit.callLater($bind(this,this.inertialScroll)); } } ,_fadeTimer: null ,onMouseWheel: function(event) { var _gthis = this; if(this._scrollview.get_isHybridScroller()) { if(this._scrollview.get_scrollPolicy() == "never") { return; } var primaryType = haxe_ui_components_VerticalScroll; var secondaryType = haxe_ui_components_HorizontalScroll; if(event.shiftKey) { primaryType = haxe_ui_components_HorizontalScroll; secondaryType = haxe_ui_components_VerticalScroll; } var scroll = this._scrollview.findComponent(null,primaryType,false); if(scroll == null) { scroll = this._scrollview.findComponent(null,secondaryType,false); } if(this._scrollview.get_autoHideScrolls() == true && this._fadeTimer == null) { scroll.fadeIn(); } if(this._scrollview.get_autoHideScrolls() == true) { if(this._fadeTimer != null) { this._fadeTimer.stop(); this._fadeTimer = null; } this._fadeTimer = new haxe_ui_util_Timer(300,function() { scroll.fadeOut(); _gthis._fadeTimer.stop(); _gthis._fadeTimer = null; }); } return; } if(this._scrollview.get_scrollPolicy() == "never") { return; } var primaryType = haxe_ui_components_VerticalScroll; var secondaryType = haxe_ui_components_HorizontalScroll; if(event.shiftKey) { primaryType = haxe_ui_components_HorizontalScroll; secondaryType = haxe_ui_components_VerticalScroll; } var scroll1 = this._scrollview.findComponent(null,primaryType,false); if(scroll1 == null) { scroll1 = this._scrollview.findComponent(null,secondaryType,false); } if(scroll1 != null) { var currentScrollPolicy = scroll1.get_id() == "scrollview-vscroll" ? this._scrollview.get_verticalScrollPolicy() : this._scrollview.get_horizontalScrollPolicy(); if(currentScrollPolicy == "never") { return; } if(this._scrollview.get_autoHideScrolls() == true && this._fadeTimer == null) { scroll1.fadeIn(); } event.cancel(); var amount = 50; if(event.delta > 0) { scroll1.set_pos(scroll1.get_pos() - amount); } else if(event.delta < 0) { scroll1.set_pos(scroll1.get_pos() + amount); } if(this._scrollview.get_autoHideScrolls() == true) { if(this._fadeTimer != null) { this._fadeTimer.stop(); this._fadeTimer = null; } this._fadeTimer = new haxe_ui_util_Timer(300,function() { scroll1.fadeOut(); _gthis._fadeTimer.stop(); _gthis._fadeTimer = null; }); } } } ,onActionStart: function(event) { if(this._scrollview.get_scrollPolicy() == "never") { return; } switch(event.action) { case "actionDown": if(this._scrollview.get_verticalScrollPolicy() != "never") { var fh = this._scrollview; fh.set_vscrollPos(fh.get_vscrollPos() + 1); event.repeater = true; } break; case "actionLeft": if(this._scrollview.get_horizontalScrollPolicy() != "never") { var fh = this._scrollview; fh.set_hscrollPos(fh.get_hscrollPos() - 1); event.repeater = true; } break; case "actionRight": if(this._scrollview.get_horizontalScrollPolicy() != "never") { var fh = this._scrollview; fh.set_hscrollPos(fh.get_hscrollPos() + 1); event.repeater = true; } break; case "actionUp": if(this._scrollview.get_verticalScrollPolicy() != "never") { var fh = this._scrollview; fh.set_vscrollPos(fh.get_vscrollPos() - 1); event.repeater = true; } break; default: } } ,__class__: haxe_ui_containers_ScrollViewEvents }); var haxe_ui_containers_ListViewEvents = function(listview) { haxe_ui_containers_ScrollViewEvents.call(this,listview); this._listview = listview; }; $hxClasses["haxe.ui.containers.ListViewEvents"] = haxe_ui_containers_ListViewEvents; haxe_ui_containers_ListViewEvents.__name__ = "haxe.ui.containers.ListViewEvents"; haxe_ui_containers_ListViewEvents.__super__ = haxe_ui_containers_ScrollViewEvents; haxe_ui_containers_ListViewEvents.prototype = $extend(haxe_ui_containers_ScrollViewEvents.prototype,{ _listview: null ,lastEvent: null ,register: function() { haxe_ui_containers_ScrollViewEvents.prototype.register.call(this); this.registerEvent(haxe_ui_events_ScrollEvent.CHANGE,$bind(this,this.onScrollChange)); this.registerEvent(haxe_ui_events_UIEvent.RENDERER_CREATED,$bind(this,this.onRendererCreated)); this.registerEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED,$bind(this,this.onRendererDestroyed)); } ,unregister: function() { haxe_ui_containers_ScrollViewEvents.prototype.unregister.call(this); this.unregisterEvent(haxe_ui_events_ScrollEvent.CHANGE,$bind(this,this.onScrollChange)); this.unregisterEvent(haxe_ui_events_UIEvent.RENDERER_CREATED,$bind(this,this.onRendererCreated)); this.unregisterEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED,$bind(this,this.onRendererDestroyed)); } ,onScrollChange: function(e) { if(this._listview.get_virtual() == true) { var _this = this._listview; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } } ,onRendererCreated: function(e) { var instance = js_Boot.__cast(e.data , haxe_ui_core_ItemRenderer); instance.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRendererMouseDown)); instance.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onRendererClick)); instance.registerEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,$bind(this,this.onRendererClick)); if(this._listview.get_selectedIndices().indexOf(instance.itemIndex) != -1) { var builder = js_Boot.__cast(this._listview._compositeBuilder , haxe_ui_containers__$ListView_ListViewBuilder); builder.addItemRendererClass(instance,":selected"); } } ,onRendererDestroyed: function(e) { var instance = js_Boot.__cast(e.data , haxe_ui_core_ItemRenderer); instance.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRendererMouseDown)); instance.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onRendererClick)); instance.unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,$bind(this,this.onRendererClick)); if(this._listview.get_selectedIndices().indexOf(instance.itemIndex) != -1) { var builder = js_Boot.__cast(this._listview._compositeBuilder , haxe_ui_containers__$ListView_ListViewBuilder); builder.addItemRendererClass(instance,":selected",false); } } ,onRendererMouseDown: function(e) { this._listview.set_focus(true); if(this._listview.get_selectionMode() == "multiple-long-press") { if(this._listview.get_selectedIndices().length == 0) { this.startLongPressSelection(e); } } else if(this._listview.classes.indexOf(":mobile") != -1 == false) { e.target.addClass(":hover"); } } ,startLongPressSelection: function(e) { var _gthis = this; var timerClick = null; var currentMouseX = e.screenX; var currentMouseY = e.screenY; var renderer = js_Boot.__cast(e.target , haxe_ui_core_ItemRenderer); var __onMouseMove = null; var __onMouseUp = null; var __onMouseClick = null; __onMouseMove = function(_e) { currentMouseX = _e.screenX; currentMouseY = _e.screenY; }; __onMouseUp = function(_e) { if(timerClick != null) { timerClick.stop(); timerClick = null; } renderer.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,__onMouseMove); renderer.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,__onMouseUp); }; __onMouseClick = function(_e) { _e.cancel(); renderer.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,__onMouseClick); }; renderer.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,__onMouseMove); renderer.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,__onMouseUp); timerClick = haxe_Timer.delay(function() { if(timerClick != null) { timerClick = null; var timerClick1; if(renderer.hitTest(currentMouseX,currentMouseY)) { var x1 = e.screenX; var y1 = e.screenY; timerClick1 = Math.sqrt((x1 - currentMouseX) * (x1 - currentMouseX) + (y1 - currentMouseY) * (y1 - currentMouseY)) < 2 * haxe_ui_Toolkit.pixelsPerRem; } else { timerClick1 = false; } if(timerClick1) { _gthis.toggleSelection(renderer); renderer.registerEvent(haxe_ui_events_MouseEvent.CLICK,__onMouseClick,1); } } },this._listview.get_longPressSelectionTime()); } ,onContainerEventsStatusChanged: function() { haxe_ui_containers_ScrollViewEvents.prototype.onContainerEventsStatusChanged.call(this); if(this._containerEventsPaused == true) { this._scrollview.findComponent("listview-contents",haxe_ui_core_Component,true,"css").removeClass(":hover",true,true); } else { var tmp = this._lastMousePos != null; } } ,onRendererClick: function(e) { if(this._containerEventsPaused == true) { return; } var components = e.target.findComponentsUnderPoint(e.screenX,e.screenY); var _g = 0; while(_g < components.length) { var component = components[_g]; ++_g; if(component != e.target && ((component) instanceof haxe_ui_core_InteractiveComponent) && (js_Boot.__cast(component , haxe_ui_core_InteractiveComponent)).get_allowInteraction() == true) { return; } } this.lastEvent = e; var renderer = js_Boot.__cast(e.target , haxe_ui_core_ItemRenderer); switch(this._listview.get_selectionMode()) { case "disabled": break; case "multiple":case "multiple-click-modifier-key":case "multiple-modifier-key": if(e.ctrlKey == true) { this.toggleSelection(renderer); } else if(e.shiftKey == true) { var selectedIndices = this._listview.get_selectedIndices(); var fromIndex = selectedIndices.length > 0 ? selectedIndices[selectedIndices.length - 1] : 0; var toIndex = renderer.itemIndex; if(fromIndex < toIndex) { var _g = 0; while(_g < selectedIndices.length) { var i = selectedIndices[_g]; ++_g; if(i < fromIndex) { fromIndex = i; } } } else { var tmp = fromIndex; fromIndex = toIndex; toIndex = tmp; } this.selectRange(fromIndex,toIndex); } else if(this._listview.get_selectionMode() == "multiple" || this._listview.get_selectionMode() == "multiple-click-modifier-key") { this._listview.set_selectedIndex(renderer.itemIndex); } break; case "multiple-long-press": var selectedIndices = this._listview.get_selectedIndices(); if(selectedIndices.length > 0) { this.toggleSelection(renderer); } break; case "one-item": this._listview.set_selectedIndex(renderer.itemIndex); break; case "one-item-repeated": this._listview.set_selectedIndices([renderer.itemIndex]); break; default: } } ,toggleSelection: function(renderer) { var itemIndex = renderer.itemIndex; var selectedIndices = this._listview.get_selectedIndices().slice(); var index = selectedIndices.indexOf(itemIndex); if(index == -1) { selectedIndices.push(itemIndex); } else { selectedIndices.splice(index,1); } this._listview.set_selectedIndices(selectedIndices); } ,selectRange: function(fromIndex,toIndex) { var tmp = this._listview; var _g = []; var _g1 = fromIndex; var _g2 = toIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(i); } tmp.set_selectedIndices(_g); } ,onActionStart: function(event) { this.lastEvent = event; switch(event.action) { case "actionDown": if(this._listview.get_selectedIndex() < 0) { this._listview.set_selectedIndex(0); } else { var n = this._listview.get_selectedIndex(); ++n; if(n > this._listview.get_dataSource().get_size() - 1) { n = 0; } this._listview.set_selectedIndex(n); } event.repeater = true; break; case "actionUp": if(this._listview.get_selectedIndex() < 0) { this._listview.set_selectedIndex(this._listview.get_dataSource().get_size() - 1); } else { var n = this._listview.get_selectedIndex(); --n; if(n < 0) { n = this._listview.set_selectedIndex(this._listview.get_dataSource().get_size() - 1); } this._listview.set_selectedIndex(n); } event.repeater = true; break; default: } } ,__class__: haxe_ui_containers_ListViewEvents }); var haxe_ui_containers_ScrollViewBuilder = function(scrollview) { haxe_ui_core_CompositeBuilder.call(this,scrollview); this._scrollview = scrollview; this._scrollview.cascadeActive = true; }; $hxClasses["haxe.ui.containers.ScrollViewBuilder"] = haxe_ui_containers_ScrollViewBuilder; haxe_ui_containers_ScrollViewBuilder.__name__ = "haxe.ui.containers.ScrollViewBuilder"; haxe_ui_containers_ScrollViewBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_ScrollViewBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _scrollview: null ,_contents: null ,_contentsLayoutName: null ,create: function() { var contentLayoutName = this._scrollview.get_contentLayoutName(); if(contentLayoutName == null) { contentLayoutName = "vertical"; } this.createContentContainer(contentLayoutName); } ,destroy: function() { } ,checkEmptyContentsComponent: function(contentsComponent) { if(this._contents == null) { return; } var emptyContentsComponent = this._scrollview.get_emptyContentsComponent(); if(emptyContentsComponent == null) { return; } if(contentsComponent == null) { contentsComponent = this._contents; } var containsEmptyContentsComponent = this._scrollview.containsChildComponent(emptyContentsComponent); if(contentsComponent.get_numComponents() == 0) { if(!containsEmptyContentsComponent) { emptyContentsComponent.addClass("empty-contents-component"); this._scrollview.addComponent(emptyContentsComponent); } if(this._scrollview.get_emptyContentsText() != null) { if(((emptyContentsComponent) instanceof haxe_ui_components_Label)) { emptyContentsComponent.set_text(this._scrollview.get_emptyContentsText()); } else { var label = emptyContentsComponent.findComponent(null,haxe_ui_components_Label,true); if(label != null) { label.set_text(this._scrollview.get_emptyContentsText()); } } } emptyContentsComponent.show(); } else if(containsEmptyContentsComponent) { emptyContentsComponent.hide(); } } ,get_numComponents: function() { return this._contents.get_numComponents(); } ,addComponent: function(child) { if(this._scrollview.get_emptyContentsComponent() == null && (child.get_id() == "emptyContentsComponent" || child.classes.indexOf("empty-contents-component") != -1)) { this._scrollview.set_emptyContentsComponent(child); return child; } else if(this._scrollview.get_emptyContentsComponent() != null && (child.get_id() == "emptyContentsComponent" || child.classes.indexOf("empty-contents-component") != -1) && child != this._scrollview.get_emptyContentsComponent()) { this._scrollview.removeComponent(this._scrollview.get_emptyContentsComponent()); this._scrollview.set_emptyContentsComponent(child); return child; } if(this._scrollview.get_emptyContentsComponent() != null && child == this._scrollview.get_emptyContentsComponent()) { return null; } if(((child) instanceof haxe_ui_components_HorizontalScroll) == false && ((child) instanceof haxe_ui_components_VerticalScroll) == false && child.classes.indexOf("scrollview-contents") != -1 == false) { var contentsComponent = null; if(((child) instanceof haxe_ui_containers_Box)) { child.registerEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onContentsChanged)); child.registerEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onContentsChanged)); contentsComponent = child; } var r = this._contents.addComponent(child); this.checkEmptyContentsComponent(contentsComponent); return r; } return null; } ,addComponentAt: function(child,index) { if(((child) instanceof haxe_ui_components_HorizontalScroll) == false && ((child) instanceof haxe_ui_components_VerticalScroll) == false && child.classes.indexOf("scrollview-contents") != -1 == false) { var r = this._contents.addComponentAt(child,index); this.checkEmptyContentsComponent(); return r; } return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(this._scrollview.get_emptyContentsComponent() != null && child == this._scrollview.get_emptyContentsComponent()) { return null; } if(((child) instanceof haxe_ui_components_HorizontalScroll) == false && ((child) instanceof haxe_ui_components_VerticalScroll) == false && child.classes.indexOf("scrollview-contents") != -1 == false) { var r = this._contents.removeComponent(child,dispose,invalidate); this.checkEmptyContentsComponent(); return r; } return null; } ,removeComponentAt: function(index,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } var r = this._contents.removeComponentAt(index,dispose,invalidate); this.checkEmptyContentsComponent(); return r; } ,removeAllComponents: function(dispose) { if(dispose == null) { dispose = true; } this._contents.removeAllComponents(dispose); this.checkEmptyContentsComponent(); return true; } ,getComponentIndex: function(child) { return this._contents.getComponentIndex(child); } ,setComponentIndex: function(child,index) { if(((child) instanceof haxe_ui_components_HorizontalScroll) == false && ((child) instanceof haxe_ui_components_VerticalScroll) == false && child.classes.indexOf("scrollview-contents") != -1 == false) { return this._contents.setComponentIndex(child,index); } return null; } ,getComponentAt: function(index) { return this._contents.getComponentAt(index); } ,createContentContainer: function(layoutName) { if(this._contents == null) { this._contents = new haxe_ui_containers_Box(); this._contents.registerEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onContentsChanged)); this._contents.registerEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onContentsChanged)); this._contents.addClass("scrollview-contents"); this._contents.set_id("scrollview-contents"); this._contents.set_layout(haxe_ui_layouts_LayoutFactory.createFromName(layoutName)); this._component.addComponent(this._contents); this._contentsLayoutName = layoutName; } } ,onContentsChanged: function(event) { this.checkEmptyContentsComponent(event.target); } ,horizontalConstraintModifier: function() { return 0; } ,verticalConstraintModifier: function() { return 0; } ,checkScrolls: function() { if(this._component.get_isNativeScroller() == true) { return; } var usableSize = this._component.get_layout().get_usableSize(); if(this.get_virtualHorizontal() == false && usableSize.width > 0) { var horizontalConstraint = this._contents; var hscroll = this._component.findComponent(null,haxe_ui_components_HorizontalScroll,false); var vcw = horizontalConstraint.get_width() + this.horizontalConstraintModifier(); if(vcw > usableSize.width) { if(hscroll == null) { hscroll = this.createHScroll(); } hscroll.set_max(vcw - usableSize.width); if(this._scrollview.get_hscrollThumbSize() == null) { hscroll.set_pageSize(usableSize.width / vcw * hscroll.get_max()); } hscroll.syncComponentValidation(); } else if(this._scrollview.get_horizontalScrollPolicy() == "always") { if(hscroll == null) { hscroll = this.createHScroll(); } hscroll.set_max(0); hscroll.set_pageSize(0); } else if(this._scrollview.get_horizontalScrollPolicy() != "always" && hscroll != null) { this.destroyHScroll(); } } if(this.get_virtualVertical() == false && usableSize.height > 0) { var verticalConstraint = this._contents; var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); var vch = verticalConstraint.get_height() + this.verticalConstraintModifier(); if(vch > usableSize.height) { if(vscroll == null) { vscroll = this.createVScroll(); } vscroll.set_max(vch - usableSize.height); if(this._scrollview.get_vscrollThumbSize() == null) { vscroll.set_pageSize(usableSize.height / vch * vscroll.get_max()); } vscroll.syncComponentValidation(); } else if(this._scrollview.get_verticalScrollPolicy() == "always") { if(vscroll == null) { vscroll = this.createVScroll(); } vscroll.set_max(0); vscroll.set_pageSize(0); } else if(this._scrollview.get_verticalScrollPolicy() != "always" && vscroll != null) { this.destroyVScroll(); } } } ,createHScroll: function() { if(this._component.get_isNativeScroller() == true) { return null; } var usableSize = this._component.get_layout().get_usableSize(); var horizontalConstraint = this._contents; var hscroll = this._component.findComponent(null,haxe_ui_components_HorizontalScroll,false); var vcw = horizontalConstraint.get_width() + this.horizontalConstraintModifier(); if(usableSize.width <= 0) { return hscroll; } if(vcw > usableSize.width && hscroll == null || this._scrollview.get_horizontalScrollPolicy() == "always") { hscroll = new haxe_ui_components_HorizontalScroll(); hscroll.set_scriptAccess(false); hscroll.set_includeInLayout(!this._scrollview.get_autoHideScrolls()); hscroll.set_hidden(this._scrollview.get_autoHideScrolls()); hscroll.set_percentWidth(100); hscroll.set_allowFocus(false); hscroll.set_id("scrollview-hscroll"); if(this._scrollview.get_hscrollThumbSize() != null) { hscroll.set_thumbSize(this._scrollview.get_hscrollThumbSize()); } this._component.addComponent(hscroll); this._component.registerInternalEvents(null,true); } if(this._scrollview.get_horizontalScrollPolicy() == "never") { hscroll.set_includeInLayout(false); hscroll.set_hidden(true); } else if(this._scrollview.get_horizontalScrollPolicy() == "always") { hscroll.set_includeInLayout(true); hscroll.set_hidden(false); } return hscroll; } ,createVScroll: function() { if(this._component.get_isNativeScroller() == true) { return null; } var usableSize = this._component.get_layout().get_usableSize(); var verticalConstraint = this._contents; var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); var vch = verticalConstraint.get_height() + this.verticalConstraintModifier(); if(usableSize.height <= 0) { return vscroll; } if(vch > usableSize.height && vscroll == null || this._scrollview.get_verticalScrollPolicy() == "always") { vscroll = new haxe_ui_components_VerticalScroll(); vscroll.set_scriptAccess(false); vscroll.set_includeInLayout(!this._scrollview.get_autoHideScrolls()); vscroll.set_hidden(this._scrollview.get_autoHideScrolls()); vscroll.set_percentHeight(100); vscroll.set_allowFocus(false); vscroll.set_id("scrollview-vscroll"); if(this._scrollview.get_vscrollThumbSize() != null) { vscroll.set_thumbSize(this._scrollview.get_vscrollThumbSize()); } this._component.addComponent(vscroll); this._component.registerInternalEvents(null,true); } if(this._scrollview.get_verticalScrollPolicy() == "never") { vscroll.set_includeInLayout(false); vscroll.set_hidden(true); } else if(this._scrollview.get_verticalScrollPolicy() == "always") { vscroll.set_includeInLayout(true); vscroll.set_hidden(false); } return vscroll; } ,destroyHScroll: function() { var hscroll = this._component.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { this._component.removeComponent(hscroll); } } ,destroyVScroll: function() { var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { this._component.removeComponent(vscroll); } } ,updateScrollRect: function() { if(this._contents == null) { return; } var usableSize = this._component.get_layout().get_usableSize(); var clipCX = usableSize.width - this.horizontalConstraintModifier(); if(clipCX > this._contents.get_width()) { clipCX = this._contents.get_width() + this.horizontalConstraintModifier(); } var clipCY = usableSize.height - this.verticalConstraintModifier(); if(clipCY > this._contents.get_height()) { clipCY = this._contents.get_height() + this.verticalConstraintModifier(); } var xpos = 0; var ypos = 0; if(this.get_virtualHorizontal() == false) { var hscroll = this._component.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll != null) { xpos = hscroll.get_pos(); } } else if(this._contents.get_componentClipRect() != null) { clipCX = this._contents.get_componentClipRect().width; } if(this.get_virtualVertical() == false) { var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll != null) { ypos = vscroll.get_pos(); } } else if(this._contents.get_componentClipRect() != null) { clipCY = this._contents.get_componentClipRect().height; } var newClipRect = new haxe_ui_geom_Rectangle(Math.round(xpos),Math.round(ypos),Math.round(clipCX),Math.round(clipCY)); this._contents.set_componentClipRect(newClipRect); this._contents.walkComponents(function(c) { if(c.hasEvent(haxe_ui_events_UIEvent.MOVE)) { c.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.MOVE)); } return true; }); } ,virtualHorizontal: null ,get_virtualHorizontal: function() { return this._scrollview.get_virtual(); } ,virtualVertical: null ,get_virtualVertical: function() { return this._scrollview.get_virtual(); } ,onVirtualChanged: function() { } ,applyStyle: function(style) { haxe_ui_core_CompositeBuilder.prototype.applyStyle.call(this,style); if(style.mode == "mobile") { this._scrollview.set_autoHideScrolls(true); } if(style.contentWidth != null && style.contentWidth != this._scrollview.get_contentWidth()) { this._scrollview.set_contentWidth(style.contentWidth); } else if(style.contentWidthPercent != null && style.contentWidthPercent != this._scrollview.get_percentContentWidth()) { this._scrollview.set_percentContentWidth(style.contentWidthPercent); } if(style.contentHeight != null && style.contentHeight != this._scrollview.get_contentHeight()) { this._scrollview.set_contentHeight(style.contentHeight); } else if(style.contentHeightPercent != null && style.contentHeightPercent != this._scrollview.get_percentContentHeight()) { this._scrollview.set_percentContentHeight(style.contentHeightPercent); } } ,__class__: haxe_ui_containers_ScrollViewBuilder ,__properties__: $extend(haxe_ui_core_CompositeBuilder.prototype.__properties__,{get_virtualVertical:"get_virtualVertical",get_virtualHorizontal:"get_virtualHorizontal"}) }); var haxe_ui_containers__$ListView_ListViewBuilder = function(listview) { haxe_ui_containers_ScrollViewBuilder.call(this,listview); this._listview = listview; }; $hxClasses["haxe.ui.containers._ListView.ListViewBuilder"] = haxe_ui_containers__$ListView_ListViewBuilder; haxe_ui_containers__$ListView_ListViewBuilder.__name__ = "haxe.ui.containers._ListView.ListViewBuilder"; haxe_ui_containers__$ListView_ListViewBuilder.__super__ = haxe_ui_containers_ScrollViewBuilder; haxe_ui_containers__$ListView_ListViewBuilder.prototype = $extend(haxe_ui_containers_ScrollViewBuilder.prototype,{ _listview: null ,create: function() { this.createContentContainer(this._listview.get_virtual() ? "absolute" : "vertical"); } ,createContentContainer: function(layoutName) { if(this._contents == null) { haxe_ui_containers_ScrollViewBuilder.prototype.createContentContainer.call(this,layoutName); this._contents.addClass("listview-contents"); } } ,addComponent: function(child) { var r = null; if(((child) instanceof haxe_ui_core_ItemRenderer) && (this._listview.get_itemRenderer() == null && this._listview.get_itemRendererClass() == null)) { this._listview.set_itemRenderer(js_Boot.__cast(child , haxe_ui_core_ItemRenderer)); this._listview.get_itemRenderer().ready(); this._listview.get_itemRenderer().handleVisibility(false); r = child; } else { r = haxe_ui_containers_ScrollViewBuilder.prototype.addComponent.call(this,child); } return r; } ,onVirtualChanged: function() { this._contents.set_layoutName(this._listview.get_virtual() ? "absolute" : "vertical"); } ,addItemRendererClass: function(child,className,add) { if(add == null) { add = true; } var _gthis = this; child.walkComponents(function(c) { if(((c) instanceof haxe_ui_core_ItemRenderer)) { if(add == true) { c.addClass(className); haxe_ui_Toolkit.callLater(function() { _gthis.ensureVisible(js_Boot.__cast(c , haxe_ui_core_ItemRenderer)); }); } else { c.removeClass(className); } } else { c.invalidateComponent("style",false); } return true; }); } ,ensureVisible: function(itemToEnsure) { if(itemToEnsure != null && this._listview.get_virtual() == false) { var vscroll = this._listview.findComponent(null,haxe_ui_components_VerticalScroll); if(vscroll != null) { var vpos = vscroll.get_pos(); var contents = this._listview.findComponent("listview-contents",null,null,"css"); if(itemToEnsure.get_top() + itemToEnsure.get_height() > vpos + contents.get_componentClipRect().height) { vscroll.set_pos(itemToEnsure.get_top() + itemToEnsure.get_height() - contents.get_componentClipRect().height); } else if(itemToEnsure.get_top() < vpos) { vscroll.set_pos(itemToEnsure.get_top()); } } } } ,ensureVirtualItemVisible: function(index) { var vscroll = this._listview.findComponent(null,haxe_ui_components_VerticalScroll); if(vscroll != null) { var layout = js_Boot.__cast(this._listview.get_layout() , haxe_ui_layouts_VerticalVirtualLayout); var itemHeight = layout.get_itemHeight(); var itemTop = index * itemHeight; var vpos = vscroll.get_pos(); var contents = this._listview.findComponent("listview-contents",null,null,"css"); if(itemTop + itemHeight > vpos + contents.get_componentClipRect().height) { vscroll.set_pos(itemTop + itemHeight - contents.get_componentClipRect().height); } else if(itemTop < vpos) { vscroll.set_pos(itemTop); } } } ,applyStyle: function(style) { haxe_ui_containers_ScrollViewBuilder.prototype.applyStyle.call(this,style); var list = this._component.findComponents(null,haxe_ui_components_Label,16777215); var _g = 0; while(_g < list.length) { var c = list[_g]; ++_g; var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } } ,__class__: haxe_ui_containers__$ListView_ListViewBuilder }); var haxe_ui_containers__$ListView_DataSourceBehaviour = function(component) { this._firstPass = true; haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ListView.DataSourceBehaviour"] = haxe_ui_containers__$ListView_DataSourceBehaviour; haxe_ui_containers__$ListView_DataSourceBehaviour.__name__ = "haxe.ui.containers._ListView.DataSourceBehaviour"; haxe_ui_containers__$ListView_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ListView_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _firstPass: null ,set: function(value) { var _gthis = this; haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); var dataSource = haxe_ui_util_Variant.toDataSource(this._value); if(dataSource != null) { dataSource.onDataSourceChange = function() { var _this = _gthis._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } if(_gthis._firstPass == true) { _gthis._firstPass = false; var _this = _gthis._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } _gthis.dispatchChanged(); }; var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } else { var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } this.dispatchChanged(); } ,get: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { this._value = haxe_ui_util_Variant.fromDataSource(new haxe_ui_data_ArrayDataSource()); this.set(this._value); } return this._value; } ,dispatchChanged: function() { var _gthis = this; haxe_ui_Toolkit.callLater(function() { _gthis._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,false,"dataSource")); }); } ,__class__: haxe_ui_containers__$ListView_DataSourceBehaviour }); var haxe_ui_containers__$ListView_SelectedIndexBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ListView.SelectedIndexBehaviour"] = haxe_ui_containers__$ListView_SelectedIndexBehaviour; haxe_ui_containers__$ListView_SelectedIndexBehaviour.__name__ = "haxe.ui.containers._ListView.SelectedIndexBehaviour"; haxe_ui_containers__$ListView_SelectedIndexBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ListView_SelectedIndexBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var selectedIndices = listView.get_selectedIndices(); if(selectedIndices != null && selectedIndices.length > 0) { return haxe_ui_util_Variant.fromInt(selectedIndices[selectedIndices.length - 1]); } else { return haxe_ui_util_Variant.fromInt(-1); } } ,set: function(value) { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); listView.set_selectedIndices(haxe_ui_util_Variant.neq(value,haxe_ui_util_Variant.fromInt(-1)) ? [haxe_ui_util_Variant.toInt(value)] : null); } ,__class__: haxe_ui_containers__$ListView_SelectedIndexBehaviour }); var haxe_ui_containers__$ListView_SelectedItemBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ListView.SelectedItemBehaviour"] = haxe_ui_containers__$ListView_SelectedItemBehaviour; haxe_ui_containers__$ListView_SelectedItemBehaviour.__name__ = "haxe.ui.containers._ListView.SelectedItemBehaviour"; haxe_ui_containers__$ListView_SelectedItemBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ListView_SelectedItemBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ getDynamic: function() { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var selectedIndices = listView.get_selectedIndices(); if(selectedIndices.length > 0) { return listView.get_dataSource().get(selectedIndices[selectedIndices.length - 1]); } else { return null; } } ,set: function(value) { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var index = listView.get_dataSource().indexOf(value); if(index != -1 && listView.get_selectedIndices().indexOf(index) == -1) { listView.set_selectedIndices([index]); } } ,__class__: haxe_ui_containers__$ListView_SelectedItemBehaviour }); var haxe_ui_containers__$ListView_SelectedIndicesBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ListView.SelectedIndicesBehaviour"] = haxe_ui_containers__$ListView_SelectedIndicesBehaviour; haxe_ui_containers__$ListView_SelectedIndicesBehaviour.__name__ = "haxe.ui.containers._ListView.SelectedIndicesBehaviour"; haxe_ui_containers__$ListView_SelectedIndicesBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ListView_SelectedIndicesBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ get: function() { if(haxe_ui_util_Variant.get_isNull(this._value)) { return haxe_ui_util_Variant.fromArray([]); } else { return this._value; } } ,validateData: function() { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var selectedIndices = listView.get_selectedIndices(); var contents = this._component.findComponent("scrollview-contents",null,false,"css"); var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$ListView_ListViewBuilder); var events = js_Boot.__cast(this._component._internalEvents , haxe_ui_containers_ListViewEvents); var _g = 0; var _g1 = contents._children == null ? [] : contents._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(selectedIndices.indexOf((js_Boot.__cast(child , haxe_ui_core_ItemRenderer)).itemIndex) != -1) { builder.addItemRendererClass(child,":selected"); } else { builder.addItemRendererClass(child,":selected",false); } } if(listView.get_virtual() == true) { var _g = 0; while(_g < selectedIndices.length) { var i = selectedIndices[_g]; ++_g; builder.ensureVirtualItemVisible(i); } } if(listView.get_selectedIndex() != -1 && listView.get_selectedIndices().length != 0) { var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); event.relatedEvent = events.lastEvent; this._component.dispatch(event); } } ,__class__: haxe_ui_containers__$ListView_SelectedIndicesBehaviour }); var haxe_ui_containers__$ListView_SelectedItemsBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ListView.SelectedItemsBehaviour"] = haxe_ui_containers__$ListView_SelectedItemsBehaviour; haxe_ui_containers__$ListView_SelectedItemsBehaviour.__name__ = "haxe.ui.containers._ListView.SelectedItemsBehaviour"; haxe_ui_containers__$ListView_SelectedItemsBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ListView_SelectedItemsBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var selectedIndices = listView.get_selectedIndices(); if(selectedIndices != null && selectedIndices.length > 0) { var selectedItems = []; var _g = 0; while(_g < selectedIndices.length) { var i = selectedIndices[_g]; ++_g; if(i < 0 || i >= listView.get_dataSource().get_size()) { continue; } var data = listView.get_dataSource().get(i); selectedItems.push(data); } return haxe_ui_util_Variant.fromArray(selectedItems); } else { return haxe_ui_util_Variant.fromArray([]); } } ,set: function(value) { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var selectedItems = haxe_ui_util_Variant.toArray(value); if(selectedItems != null && selectedItems.length > 0) { var selectedIndices = []; var index; var _g = 0; while(_g < selectedItems.length) { var item = selectedItems[_g]; ++_g; index = listView.get_dataSource().indexOf(item); if(index != -1) { selectedIndices.push(index); } } listView.set_selectedIndices(selectedIndices); } else { listView.set_selectedIndices([]); } } ,__class__: haxe_ui_containers__$ListView_SelectedItemsBehaviour }); var haxe_ui_containers__$ListView_SelectionModeBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ListView.SelectionModeBehaviour"] = haxe_ui_containers__$ListView_SelectionModeBehaviour; haxe_ui_containers__$ListView_SelectionModeBehaviour.__name__ = "haxe.ui.containers._ListView.SelectionModeBehaviour"; haxe_ui_containers__$ListView_SelectionModeBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ListView_SelectionModeBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var listView = js_Boot.__cast(this._component , haxe_ui_containers_ListView); var selectedIndices = listView.get_selectedIndices(); if(selectedIndices == null || selectedIndices.length == 0) { return; } var selectionMode = haxe_ui_util_Variant.toString(this._value); switch(selectionMode) { case "disabled": listView.set_selectedIndices(null); break; case "one-item": if(selectedIndices.length > 1) { listView.set_selectedIndices([selectedIndices[0]]); } break; default: } } ,__class__: haxe_ui_containers__$ListView_SelectionModeBehaviour }); var haxe_ui_containers_Panel = function() { haxe_ui_containers_VBox.call(this); this.applyRootLayout("vbox"); var c0 = new haxe_ui_containers_Box(); c0.set_id("headerContainer"); c0.set_percentWidth(100.); c0.set_hidden(true); this.addComponent(c0); var c1 = new haxe_ui_containers_Box(); c1.set_id("contentContainer"); c1.set_percentWidth(100.); c1.set_styleNames("panel-content"); this.addComponent(c1); var c2 = new haxe_ui_containers_Box(); c2.set_id("footerContainer"); c2.set_percentWidth(100.); c2.set_hidden(true); this.addComponent(c2); this.bindingRoot = true; this.headerContainer = c0; this.footerContainer = c2; this.contentContainer = c1; }; $hxClasses["haxe.ui.containers.Panel"] = haxe_ui_containers_Panel; haxe_ui_containers_Panel.__name__ = "haxe.ui.containers.Panel"; haxe_ui_containers_Panel.__super__ = haxe_ui_containers_VBox; haxe_ui_containers_Panel.prototype = $extend(haxe_ui_containers_VBox.prototype,{ get_text: function() { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers__$Panel_Builder); return builder.get_header().get_text(); } ,set_text: function(value) { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers__$Panel_Builder); builder.get_header().set_text(value); return value; } ,get_icon: function() { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers__$Panel_Builder); return builder.get_header().get_icon(); } ,set_icon: function(value) { var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers__$Panel_Builder); builder.get_header().set_icon(value); return value; } ,set_percentHeight: function(value) { this.contentContainer.set_percentHeight(100); return haxe_ui_containers_VBox.prototype.set_percentHeight.call(this,value); } ,showFooter: function() { this.findComponent(null,haxe_ui_containers__$Panel_PanelFooter,true).show(); } ,hideFooter: function() { this.findComponent(null,haxe_ui_containers__$Panel_PanelFooter,true).hide(); } ,headerContainer: null ,footerContainer: null ,contentContainer: null ,registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$Panel_Builder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Panel(); } ,__class__: haxe_ui_containers_Panel }); var haxe_ui_containers__$Panel_PanelHeader = function() { haxe_ui_containers_HBox.call(this); this.applyRootLayout("hbox"); var c0 = new haxe_ui_components_Image(); c0.set_id("titleIcon"); c0.set_verticalAlign("center"); c0.set_hidden(true); this.addComponent(c0); var c1 = new haxe_ui_components_Label(); c1.set_id("titleLabel"); c1.set_percentWidth(100.); c1.set_verticalAlign("center"); c1.set_hidden(true); this.addComponent(c1); this.set_percentWidth(100.); this.bindingRoot = true; this.titleLabel = c1; this.titleIcon = c0; }; $hxClasses["haxe.ui.containers._Panel.PanelHeader"] = haxe_ui_containers__$Panel_PanelHeader; haxe_ui_containers__$Panel_PanelHeader.__name__ = "haxe.ui.containers._Panel.PanelHeader"; haxe_ui_containers__$Panel_PanelHeader.__super__ = haxe_ui_containers_HBox; haxe_ui_containers__$Panel_PanelHeader.prototype = $extend(haxe_ui_containers_HBox.prototype,{ get_text: function() { return this.titleLabel.get_text(); } ,set_text: function(value) { this.titleLabel.set_text(value); this.titleLabel.show(); return value; } ,get_icon: function() { return this.titleIcon.get_resource(); } ,set_icon: function(value) { this.titleIcon.set_resource(value); this.titleIcon.show(); return value; } ,titleLabel: null ,titleIcon: null ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers__$Panel_PanelHeader(); } ,__class__: haxe_ui_containers__$Panel_PanelHeader }); var haxe_ui_containers__$Panel_PanelFooter = function() { haxe_ui_containers_HBox.call(this); this.applyRootLayout("hbox"); this.set_percentWidth(100.); this.bindingRoot = true; }; $hxClasses["haxe.ui.containers._Panel.PanelFooter"] = haxe_ui_containers__$Panel_PanelFooter; haxe_ui_containers__$Panel_PanelFooter.__name__ = "haxe.ui.containers._Panel.PanelFooter"; haxe_ui_containers__$Panel_PanelFooter.__super__ = haxe_ui_containers_HBox; haxe_ui_containers__$Panel_PanelFooter.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers__$Panel_PanelFooter(); } ,__class__: haxe_ui_containers__$Panel_PanelFooter }); var haxe_ui_containers__$Panel_Builder = function(panel) { this._footer = null; this._header = null; haxe_ui_core_CompositeBuilder.call(this,panel); this.panel = panel; }; $hxClasses["haxe.ui.containers._Panel.Builder"] = haxe_ui_containers__$Panel_Builder; haxe_ui_containers__$Panel_Builder.__name__ = "haxe.ui.containers._Panel.Builder"; haxe_ui_containers__$Panel_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Panel_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ panel: null ,addComponent: function(child) { if(child.get_id() == "headerContainer" || child.get_id() == "contentContainer" || child.get_id() == "footerContainer") { return null; } if(((child) instanceof haxe_ui_containers_Header)) { var _g = 0; var _g1 = child._children == null ? [] : child._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; this.get_header().addComponent(c); } return child; } else if(((child) instanceof haxe_ui_containers_Footer)) { if(child.get_hidden()) { this.get_footer().hide(); } this.get_footer().set_styleString(child.get_styleString()); var _g = 0; var _g1 = child._children == null ? [] : child._children; while(_g < _g1.length) { var c = _g1[_g]; ++_g; this.get_footer().addComponent(c); } return child; } if(child.get_percentHeight() != null) { this.panel.contentContainer.set_percentHeight(100); } return this.panel.contentContainer.addComponent(child); } ,_header: null ,header: null ,get_header: function() { if(this._header == null) { this._header = new haxe_ui_containers__$Panel_PanelHeader(); this.panel.headerContainer.addComponent(this._header); this.panel.headerContainer.show(); } return this._header; } ,_footer: null ,footer: null ,get_footer: function() { if(this._footer == null) { this._footer = new haxe_ui_containers__$Panel_PanelFooter(); this.panel.footerContainer.addComponent(this._footer); this.panel.footerContainer.show(); } return this._footer; } ,__class__: haxe_ui_containers__$Panel_Builder ,__properties__: $extend(haxe_ui_core_CompositeBuilder.prototype.__properties__,{get_footer:"get_footer",get_header:"get_header"}) }); var haxe_ui_containers__$ScrollView_EnsureVisible = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.EnsureVisible"] = haxe_ui_containers__$ScrollView_EnsureVisible; haxe_ui_containers__$ScrollView_EnsureVisible.__name__ = "haxe.ui.containers._ScrollView.EnsureVisible"; haxe_ui_containers__$ScrollView_EnsureVisible.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_EnsureVisible.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ call: function(param) { var scrollview = js_Boot.__cast(this._component , haxe_ui_containers_ScrollView); if(scrollview.get_allowAutoScroll() == false) { return null; } var c = js_Boot.__cast(param , haxe_ui_core_Component); if(c == scrollview) { return null; } var hscroll = scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); var hscrollPos = 0; if(hscroll != null) { hscrollPos = hscroll.get_pos(); } var vscroll = scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); var vscrollPos = 0; if(vscroll != null) { vscrollPos = vscroll.get_pos(); } var componentScreenRect = new haxe_ui_geom_Rectangle(c.get_screenLeft(),c.get_screenTop(),c.get_width(),c.get_height()); var componentRect = new haxe_ui_geom_Rectangle(c.get_screenLeft() + hscrollPos,c.get_screenTop() + vscrollPos,c.get_width(),c.get_height()); var scrollRect = new haxe_ui_geom_Rectangle(scrollview.get_screenLeft(),scrollview.get_screenTop(),scrollview.get_width(),scrollview.get_height()); var scrollRectFixed = scrollRect.copy(); var usableSize = scrollview.get_layout().get_usableSize(); scrollRectFixed.width = usableSize.width; scrollRectFixed.height = usableSize.height; if(scrollRectFixed.containsRect(componentScreenRect)) { return null; } var newHScrollPos = hscrollPos; var newVScrollPos = vscrollPos; var fixedRight = componentRect.get_right() - scrollRect.left; var fixedLeft = componentRect.left - scrollRect.left; var fixedBottom = componentRect.get_bottom() - scrollRect.top; var fixedTop = componentRect.top - scrollRect.top; var offsetLeft = 1; var offsetTop = 1; if(scrollRectFixed.containsPoint(componentScreenRect.get_right(),componentScreenRect.top) == false) { newHScrollPos = fixedRight - usableSize.width + (this.calcOffset(c,"right") - offsetLeft); } else if(scrollRectFixed.containsPoint(componentScreenRect.left,componentScreenRect.top) == false) { newHScrollPos = fixedLeft - (this.calcOffset(c,"left") + offsetLeft); } if(scrollRectFixed.containsPoint(componentScreenRect.left,componentScreenRect.get_bottom()) == false) { newVScrollPos = fixedBottom - usableSize.height + (this.calcOffset(c,"bottom") - offsetTop); } else if(scrollRectFixed.containsPoint(componentScreenRect.left,componentScreenRect.top) == false) { newVScrollPos = fixedTop - (this.calcOffset(c,"top") + offsetTop); } if(hscroll != null) { hscroll.set_pos(newHScrollPos); } if(vscroll != null) { vscroll.set_pos(newVScrollPos); } return null; } ,calcOffset: function(c,which) { var p = 0; var r = c.get_parentComponent(); while(r != null) { if(r.get_style() != null) { switch(which) { case "bottom": if(r.get_paddingBottom() != null) { p += r.get_paddingBottom(); } break; case "left": if(r.get_paddingLeft() != null) { p += r.get_paddingLeft(); } break; case "right": if(r.get_paddingRight() != null) { p += r.get_paddingRight(); } break; case "top": if(r.get_paddingTop() != null) { p += r.get_paddingTop(); } break; } } r = r.get_parentComponent(); if(r == this._component) { break; } } return p; } ,__class__: haxe_ui_containers__$ScrollView_EnsureVisible }); var haxe_ui_containers__$ScrollView_FindHorizontalScrollbar = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.FindHorizontalScrollbar"] = haxe_ui_containers__$ScrollView_FindHorizontalScrollbar; haxe_ui_containers__$ScrollView_FindHorizontalScrollbar.__name__ = "haxe.ui.containers._ScrollView.FindHorizontalScrollbar"; haxe_ui_containers__$ScrollView_FindHorizontalScrollbar.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_FindHorizontalScrollbar.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ call: function(param) { var scrollview = js_Boot.__cast(this._component , haxe_ui_containers_ScrollView); return haxe_ui_util_Variant.fromComponent(scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false)); } ,__class__: haxe_ui_containers__$ScrollView_FindHorizontalScrollbar }); var haxe_ui_containers__$ScrollView_FindVerticalScrollbar = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.FindVerticalScrollbar"] = haxe_ui_containers__$ScrollView_FindVerticalScrollbar; haxe_ui_containers__$ScrollView_FindVerticalScrollbar.__name__ = "haxe.ui.containers._ScrollView.FindVerticalScrollbar"; haxe_ui_containers__$ScrollView_FindVerticalScrollbar.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_FindVerticalScrollbar.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ call: function(param) { var scrollview = js_Boot.__cast(this._component , haxe_ui_containers_ScrollView); return haxe_ui_util_Variant.fromComponent(scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false)); } ,__class__: haxe_ui_containers__$ScrollView_FindVerticalScrollbar }); var haxe_ui_containers__$ScrollView_Virtual = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.Virtual"] = haxe_ui_containers__$ScrollView_Virtual; haxe_ui_containers__$ScrollView_Virtual.__name__ = "haxe.ui.containers._ScrollView.Virtual"; haxe_ui_containers__$ScrollView_Virtual.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_Virtual.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); if(this._component._compositeBuilder != null) { (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).onVirtualChanged(); } } ,__class__: haxe_ui_containers__$ScrollView_Virtual }); var haxe_ui_containers__$ScrollView_ContentLayoutName = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.ContentLayoutName"] = haxe_ui_containers__$ScrollView_ContentLayoutName; haxe_ui_containers__$ScrollView_ContentLayoutName.__name__ = "haxe.ui.containers._ScrollView.ContentLayoutName"; haxe_ui_containers__$ScrollView_ContentLayoutName.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_ContentLayoutName.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_ScrollViewBuilder); if(builder != null && haxe_ui_util_Variant.fromString(builder._contentsLayoutName) != value) { builder._contentsLayoutName = haxe_ui_util_Variant.toString(value); builder._contents.set_layout(haxe_ui_layouts_LayoutFactory.createFromName(haxe_ui_util_Variant.toString(value))); } } ,__class__: haxe_ui_containers__$ScrollView_ContentLayoutName }); var haxe_ui_containers__$ScrollView_ContentWidth = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.ContentWidth"] = haxe_ui_containers__$ScrollView_ContentWidth; haxe_ui_containers__$ScrollView_ContentWidth.__name__ = "haxe.ui.containers._ScrollView.ContentWidth"; haxe_ui_containers__$ScrollView_ContentWidth.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ScrollView_ContentWidth.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents == null) { return null; } return haxe_ui_util_Variant.fromFloat(contents.get_width()); } ,set: function(value) { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents != null) { contents.set_percentWidth(null); contents.set_width(haxe_ui_util_Variant.toFloat(value)); } } ,__class__: haxe_ui_containers__$ScrollView_ContentWidth }); var haxe_ui_containers__$ScrollView_PercentContentWidth = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.PercentContentWidth"] = haxe_ui_containers__$ScrollView_PercentContentWidth; haxe_ui_containers__$ScrollView_PercentContentWidth.__name__ = "haxe.ui.containers._ScrollView.PercentContentWidth"; haxe_ui_containers__$ScrollView_PercentContentWidth.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ScrollView_PercentContentWidth.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents == null) { return null; } return haxe_ui_util_Variant.fromFloat(contents.get_percentWidth()); } ,set: function(value) { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents != null) { contents.set_componentWidth(null); contents.set_percentWidth(haxe_ui_util_Variant.toFloat(value)); } } ,__class__: haxe_ui_containers__$ScrollView_PercentContentWidth }); var haxe_ui_containers__$ScrollView_ContentHeight = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.ContentHeight"] = haxe_ui_containers__$ScrollView_ContentHeight; haxe_ui_containers__$ScrollView_ContentHeight.__name__ = "haxe.ui.containers._ScrollView.ContentHeight"; haxe_ui_containers__$ScrollView_ContentHeight.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ScrollView_ContentHeight.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents == null) { return null; } return haxe_ui_util_Variant.fromFloat(contents.get_height()); } ,set: function(value) { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents != null) { contents.set_percentHeight(null); contents.set_height(haxe_ui_util_Variant.toFloat(value)); } } ,__class__: haxe_ui_containers__$ScrollView_ContentHeight }); var haxe_ui_containers__$ScrollView_PercentContentHeight = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.PercentContentHeight"] = haxe_ui_containers__$ScrollView_PercentContentHeight; haxe_ui_containers__$ScrollView_PercentContentHeight.__name__ = "haxe.ui.containers._ScrollView.PercentContentHeight"; haxe_ui_containers__$ScrollView_PercentContentHeight.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$ScrollView_PercentContentHeight.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents == null) { return null; } return haxe_ui_util_Variant.fromFloat(contents.get_percentHeight()); } ,set: function(value) { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); if(contents != null) { contents.set_componentHeight(null); contents.set_percentHeight(haxe_ui_util_Variant.toFloat(value)); } } ,__class__: haxe_ui_containers__$ScrollView_PercentContentHeight }); var haxe_ui_containers__$ScrollView_HScrollPos = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.HScrollPos"] = haxe_ui_containers__$ScrollView_HScrollPos; haxe_ui_containers__$ScrollView_HScrollPos.__name__ = "haxe.ui.containers._ScrollView.HScrollPos"; haxe_ui_containers__$ScrollView_HScrollPos.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_HScrollPos.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,get: function() { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll == null) { return haxe_ui_util_Variant.fromInt(0); } return haxe_ui_util_Variant.fromFloat(hscroll.get_pos()); } ,validateData: function() { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(this._scrollview.get_virtual() == true) { if(hscroll == null) { hscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createHScroll(); } if(hscroll != null) { hscroll.set_pos(haxe_ui_util_Variant.toFloat(this._value)); } } else if(hscroll != null) { hscroll.set_pos(haxe_ui_util_Variant.toFloat(this._value)); } } ,__class__: haxe_ui_containers__$ScrollView_HScrollPos }); var haxe_ui_containers__$ScrollView_VScrollPos = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.VScrollPos"] = haxe_ui_containers__$ScrollView_VScrollPos; haxe_ui_containers__$ScrollView_VScrollPos.__name__ = "haxe.ui.containers._ScrollView.VScrollPos"; haxe_ui_containers__$ScrollView_VScrollPos.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_VScrollPos.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,get: function() { var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll == null) { return haxe_ui_util_Variant.fromInt(0); } return haxe_ui_util_Variant.fromFloat(vscroll.get_pos()); } ,validateData: function() { var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(this._scrollview.get_virtual() == true) { if(vscroll == null) { vscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createVScroll(); } if(vscroll != null) { vscroll.set_pos(haxe_ui_util_Variant.toFloat(this._value)); } } else if(vscroll != null) { vscroll.set_pos(haxe_ui_util_Variant.toFloat(this._value)); } } ,__class__: haxe_ui_containers__$ScrollView_VScrollPos }); var haxe_ui_containers__$ScrollView_HScrollMax = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.HScrollMax"] = haxe_ui_containers__$ScrollView_HScrollMax; haxe_ui_containers__$ScrollView_HScrollMax.__name__ = "haxe.ui.containers._ScrollView.HScrollMax"; haxe_ui_containers__$ScrollView_HScrollMax.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_HScrollMax.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,get: function() { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll == null) { return haxe_ui_util_Variant.fromInt(0); } return haxe_ui_util_Variant.fromFloat(hscroll.get_max()); } ,validateData: function() { if(this._scrollview.get_virtual() == true) { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromInt(0))) { if(hscroll == null) { hscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createHScroll(); } } else if(hscroll != null) { (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).destroyHScroll(); } if(hscroll != null) { hscroll.set_max(haxe_ui_util_Variant.toFloat(this._value)); } } } ,__class__: haxe_ui_containers__$ScrollView_HScrollMax }); var haxe_ui_containers__$ScrollView_VScrollMax = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.VScrollMax"] = haxe_ui_containers__$ScrollView_VScrollMax; haxe_ui_containers__$ScrollView_VScrollMax.__name__ = "haxe.ui.containers._ScrollView.VScrollMax"; haxe_ui_containers__$ScrollView_VScrollMax.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_VScrollMax.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,get: function() { var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll == null) { return haxe_ui_util_Variant.fromInt(0); } return haxe_ui_util_Variant.fromFloat(vscroll.get_max()); } ,validateData: function() { if(this._scrollview.get_virtual() == true) { var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromInt(0))) { if(vscroll == null) { vscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createVScroll(); } } else if(vscroll != null) { (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).destroyVScroll(); } if(vscroll != null) { vscroll.set_max(haxe_ui_util_Variant.toFloat(this._value)); } } } ,__class__: haxe_ui_containers__$ScrollView_VScrollMax }); var haxe_ui_containers__$ScrollView_HScrollPageSize = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.HScrollPageSize"] = haxe_ui_containers__$ScrollView_HScrollPageSize; haxe_ui_containers__$ScrollView_HScrollPageSize.__name__ = "haxe.ui.containers._ScrollView.HScrollPageSize"; haxe_ui_containers__$ScrollView_HScrollPageSize.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_HScrollPageSize.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,validateData: function() { if(this._scrollview.get_virtual() == true) { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll == null) { hscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createHScroll(); } if(hscroll != null) { hscroll.set_pageSize(haxe_ui_util_Variant.toFloat(this._value)); } } } ,__class__: haxe_ui_containers__$ScrollView_HScrollPageSize }); var haxe_ui_containers__$ScrollView_HScrollThumbSize = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.HScrollThumbSize"] = haxe_ui_containers__$ScrollView_HScrollThumbSize; haxe_ui_containers__$ScrollView_HScrollThumbSize.__name__ = "haxe.ui.containers._ScrollView.HScrollThumbSize"; haxe_ui_containers__$ScrollView_HScrollThumbSize.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_HScrollThumbSize.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,validateData: function() { if(this._scrollview.get_virtual() == true) { var hscroll = this._scrollview.findComponent(null,haxe_ui_components_HorizontalScroll,false); if(hscroll == null) { hscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createHScroll(); } if(hscroll != null) { hscroll.set_thumbSize(haxe_ui_util_Variant.toFloat(this._value)); } } } ,__class__: haxe_ui_containers__$ScrollView_HScrollThumbSize }); var haxe_ui_containers__$ScrollView_VScrollPageSize = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.VScrollPageSize"] = haxe_ui_containers__$ScrollView_VScrollPageSize; haxe_ui_containers__$ScrollView_VScrollPageSize.__name__ = "haxe.ui.containers._ScrollView.VScrollPageSize"; haxe_ui_containers__$ScrollView_VScrollPageSize.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_VScrollPageSize.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,validateData: function() { if(this._scrollview.get_virtual() == true) { var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll == null) { vscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createVScroll(); } if(vscroll != null) { vscroll.set_pageSize(haxe_ui_util_Variant.toFloat(this._value)); } } } ,__class__: haxe_ui_containers__$ScrollView_VScrollPageSize }); var haxe_ui_containers__$ScrollView_VScrollThumbSize = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.VScrollThumbSize"] = haxe_ui_containers__$ScrollView_VScrollThumbSize; haxe_ui_containers__$ScrollView_VScrollThumbSize.__name__ = "haxe.ui.containers._ScrollView.VScrollThumbSize"; haxe_ui_containers__$ScrollView_VScrollThumbSize.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_VScrollThumbSize.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,validateData: function() { if(this._scrollview.get_virtual() == true) { var vscroll = this._scrollview.findComponent(null,haxe_ui_components_VerticalScroll,false); if(vscroll == null) { vscroll = (js_Boot.__cast(this._scrollview._compositeBuilder , haxe_ui_containers_ScrollViewBuilder)).createVScroll(); } if(vscroll != null) { vscroll.set_thumbSize(haxe_ui_util_Variant.toFloat(this._value)); } } } ,__class__: haxe_ui_containers__$ScrollView_VScrollThumbSize }); var haxe_ui_containers__$ScrollView_ThumbSize = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.ThumbSize"] = haxe_ui_containers__$ScrollView_ThumbSize; haxe_ui_containers__$ScrollView_ThumbSize.__name__ = "haxe.ui.containers._ScrollView.ThumbSize"; haxe_ui_containers__$ScrollView_ThumbSize.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_ThumbSize.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,validateData: function() { this._scrollview.set_hscrollThumbSize(haxe_ui_util_Variant.toFloat(this._value)); this._scrollview.set_vscrollThumbSize(haxe_ui_util_Variant.toFloat(this._value)); } ,__class__: haxe_ui_containers__$ScrollView_ThumbSize }); var haxe_ui_containers__$ScrollView_ScrollModeBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.ScrollModeBehaviour"] = haxe_ui_containers__$ScrollView_ScrollModeBehaviour; haxe_ui_containers__$ScrollView_ScrollModeBehaviour.__name__ = "haxe.ui.containers._ScrollView.ScrollModeBehaviour"; haxe_ui_containers__$ScrollView_ScrollModeBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_ScrollModeBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.eq(value,haxe_ui_util_Variant.fromString("hybrid"))) { this._component.set_isHybridScroller(true); } else if(haxe_ui_util_Variant.eq(value,haxe_ui_util_Variant.fromString("native"))) { this._component.set_isNativeScroller(true); } haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); } ,validateData: function() { this._component.registerInternalEvents(null,true); } ,__class__: haxe_ui_containers__$ScrollView_ScrollModeBehaviour }); var haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour = function(scrollview) { haxe_ui_behaviours_DefaultBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.IsScrollableHorizontallyBehaviour"] = haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour; haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour.__name__ = "haxe.ui.containers._ScrollView.IsScrollableHorizontallyBehaviour"; haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ _scrollview: null ,get: function() { var hscroll = this._scrollview.findComponent("scrollview-hscroll",haxe_ui_components_HorizontalScroll); if(hscroll == null) { return haxe_ui_util_Variant.fromBool(false); } return haxe_ui_util_Variant.fromBool(true); } ,__class__: haxe_ui_containers__$ScrollView_IsScrollableHorizontallyBehaviour }); var haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour = function(scrollview) { haxe_ui_behaviours_DefaultBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.IsScrollableVerticallyBehaviour"] = haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour; haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour.__name__ = "haxe.ui.containers._ScrollView.IsScrollableVerticallyBehaviour"; haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ _scrollview: null ,get: function() { var vscroll = this._scrollview.findComponent("scrollview-vscroll",haxe_ui_components_VerticalScroll); if(vscroll == null) { return haxe_ui_util_Variant.fromBool(false); } return haxe_ui_util_Variant.fromBool(true); } ,__class__: haxe_ui_containers__$ScrollView_IsScrollableVerticallyBehaviour }); var haxe_ui_containers__$ScrollView_IsScrollableBehaviour = function(scrollview) { haxe_ui_behaviours_DefaultBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.IsScrollableBehaviour"] = haxe_ui_containers__$ScrollView_IsScrollableBehaviour; haxe_ui_containers__$ScrollView_IsScrollableBehaviour.__name__ = "haxe.ui.containers._ScrollView.IsScrollableBehaviour"; haxe_ui_containers__$ScrollView_IsScrollableBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_IsScrollableBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ _scrollview: null ,get: function() { if(this._scrollview.get_isScrollableVertically()) { return haxe_ui_util_Variant.fromBool(true); } if(this._scrollview.get_isScrollableHorizontally()) { return haxe_ui_util_Variant.fromBool(true); } return haxe_ui_util_Variant.fromBool(false); } ,__class__: haxe_ui_containers__$ScrollView_IsScrollableBehaviour }); var haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour = function(scrollview) { haxe_ui_behaviours_DataBehaviour.call(this,scrollview); this._scrollview = scrollview; }; $hxClasses["haxe.ui.containers._ScrollView.ScrollPolicyBehaviour"] = haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour; haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour.__name__ = "haxe.ui.containers._ScrollView.ScrollPolicyBehaviour"; haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _scrollview: null ,validateData: function() { this._scrollview.set_horizontalScrollPolicy(haxe_ui_util_Variant.toString(this._value)); this._scrollview.set_verticalScrollPolicy(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers__$ScrollView_ScrollPolicyBehaviour }); var haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.HScrollPolicyBehaviour"] = haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour; haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour.__name__ = "haxe.ui.containers._ScrollView.HScrollPolicyBehaviour"; haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ __class__: haxe_ui_containers__$ScrollView_HScrollPolicyBehaviour }); var haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.VScrollPolicyBehaviour"] = haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour; haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour.__name__ = "haxe.ui.containers._ScrollView.VScrollPolicyBehaviour"; haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ __class__: haxe_ui_containers__$ScrollView_VScrollPolicyBehaviour }); var haxe_ui_containers__$ScrollView_GetContents = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.GetContents"] = haxe_ui_containers__$ScrollView_GetContents; haxe_ui_containers__$ScrollView_GetContents.__name__ = "haxe.ui.containers._ScrollView.GetContents"; haxe_ui_containers__$ScrollView_GetContents.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_GetContents.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { var contents = this._component.findComponent("scrollview-contents",null,false,"css"); return haxe_ui_util_Variant.fromComponent(contents); } ,__class__: haxe_ui_containers__$ScrollView_GetContents }); var haxe_ui_containers__$ScrollView_EmptyContentsComponent = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.EmptyContentsComponent"] = haxe_ui_containers__$ScrollView_EmptyContentsComponent; haxe_ui_containers__$ScrollView_EmptyContentsComponent.__name__ = "haxe.ui.containers._ScrollView.EmptyContentsComponent"; haxe_ui_containers__$ScrollView_EmptyContentsComponent.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_EmptyContentsComponent.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_ScrollViewBuilder); builder.checkEmptyContentsComponent(); } ,__class__: haxe_ui_containers__$ScrollView_EmptyContentsComponent }); var haxe_ui_containers__$ScrollView_EmptyContentsText = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._ScrollView.EmptyContentsText"] = haxe_ui_containers__$ScrollView_EmptyContentsText; haxe_ui_containers__$ScrollView_EmptyContentsText.__name__ = "haxe.ui.containers._ScrollView.EmptyContentsText"; haxe_ui_containers__$ScrollView_EmptyContentsText.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$ScrollView_EmptyContentsText.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); var scrollview = js_Boot.__cast(this._component , haxe_ui_containers_ScrollView); var emptyContentsComponent = scrollview.get_emptyContentsComponent(); if(emptyContentsComponent == null) { var emptyContentsComponent1 = scrollview.findComponent("empty-contents-component",null,false,"css"); if(emptyContentsComponent1 == null) { emptyContentsComponent1 = new haxe_ui_components_Label(); emptyContentsComponent1.addClass("empty-contents-component"); emptyContentsComponent1.set_text(haxe_ui_util_Variant.toString(value)); scrollview.set_emptyContentsComponent(emptyContentsComponent1); } } else if(((emptyContentsComponent) instanceof haxe_ui_components_Label)) { emptyContentsComponent.set_text(haxe_ui_util_Variant.toString(value)); } else { var label = emptyContentsComponent.findComponent(null,haxe_ui_components_Label,true); if(label != null) { label.set_text(haxe_ui_util_Variant.toString(value)); } } } ,__class__: haxe_ui_containers__$ScrollView_EmptyContentsText }); var haxe_ui_containers_SideBar = function() { this._position = null; this._modalOverlay = null; this._lastMethod = null; this.modal = false; this.method = "shift"; var _gthis = this; haxe_ui_containers_Box.call(this); haxe_ui_containers_Box.prototype.hide.call(this); this.set_position("left"); this.set_animatable(false); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_UIEvent.RESIZE,function(_) { if(haxe_ui_containers_SideBar.activeSideBar == _gthis) { _gthis.setEndPos(); } }); }; $hxClasses["haxe.ui.containers.SideBar"] = haxe_ui_containers_SideBar; haxe_ui_containers_SideBar.__name__ = "haxe.ui.containers.SideBar"; haxe_ui_containers_SideBar.__super__ = haxe_ui_containers_Box; haxe_ui_containers_SideBar.prototype = $extend(haxe_ui_containers_Box.prototype,{ method: null ,modal: null ,_lastMethod: null ,_modalOverlay: null ,_position: null ,get_position: function() { return this._position; } ,set_position: function(value) { if(this._position == value) { return value; } if(this._position != null) { this.removeClass(":" + this._position); } this._position = value; this.addClass(":" + this._position); return value; } ,onReady: function() { var _gthis = this; haxe_ui_containers_Box.prototype.onReady.call(this); this.set_animatable(true); var closeButton = this.findComponent("closeSideBar",haxe_ui_core_Component); if(closeButton != null) { closeButton.registerEvent(haxe_ui_events_MouseEvent.CLICK,function(_) { _gthis.hide(); }); } haxe_ui_Toolkit.callLater(function() { _gthis.invalidateComponent(null,true); }); } ,showModalOverlay: function() { if(this._modalOverlay == null) { this._modalOverlay = new haxe_ui_core_Component(); this._modalOverlay.set_id("sidebar-modal-background"); this._modalOverlay.addClass("sidebar-modal-background"); this._modalOverlay.set_percentWidth(this._modalOverlay.set_percentHeight(100)); haxe_ui_core_Screen.get_instance().addComponent(this._modalOverlay); this._modalOverlay.set_onClick(function(_) { if(haxe_ui_containers_SideBar.activeSideBar != null) { haxe_ui_containers_SideBar.activeSideBar.hide(); } }); } var i = haxe_ui_core_Screen.get_instance().rootComponents.indexOf(this); if(i != -1) { haxe_ui_core_Screen.get_instance().setComponentIndex(this._modalOverlay,i - 1); } this._modalOverlay.show(); } ,hideModalOverlay: function() { if(this._modalOverlay == null) { return; } this._modalOverlay.hide(); } ,setStartPos: function() { if(this.get_position() == "left") { this.set_left(-this.get_actualComponentWidth()); } else if(this.get_position() == "right") { this.set_left(haxe_ui_core_Screen.get_instance().get_actualWidth()); } else if(this.get_position() == "top") { this.set_top(-this.get_actualComponentHeight()); } else if(this.get_position() == "bottom") { this.set_top(haxe_ui_core_Screen.get_instance().get_actualHeight()); } } ,setEndPos: function() { if(this.get_position() == "left") { this.set_left(0); } else if(this.get_position() == "right") { this.set_left(haxe_ui_core_Screen.get_instance().get_actualWidth() - this.get_actualComponentWidth()); } else if(this.get_position() == "top") { this.set_top(0); } else if(this.get_position() == "bottom") { this.set_top(haxe_ui_core_Screen.get_instance().get_actualHeight() - this.get_actualComponentHeight()); } } ,show: function() { var _gthis = this; if(haxe_ui_containers_SideBar.activeSideBar == this) { return; } if(haxe_ui_core_Screen.get_instance().rootComponents.indexOf(this) == -1) { if(this.modal == true) { this.showModalOverlay(); } haxe_ui_core_Screen.get_instance().addComponent(this); this.validateNow(); haxe_ui_Toolkit.callLater(function() { _gthis.setStartPos(); _gthis.show(); }); return; } else { if(this.modal == true) { this.showModalOverlay(); } this.validateNow(); this.setStartPos(); } var animation = haxe_ui_Toolkit.styleSheet.findAnimation("sideBarModifyContent"); var first = animation.get_keyFrames()[0]; var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; var rootComponent = haxe_ui_core_Screen.get_instance().rootComponents[0]; first.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_left())))); first.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_top())))); first.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_width())))); first.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_height())))); last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_left())))); last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_top())))); last.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_width())))); last.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_height())))); this._lastMethod = this.method; if(haxe_ui_containers_SideBar.activeSideBar != null && haxe_ui_containers_SideBar.activeSideBar != this) { haxe_ui_containers_SideBar.activeSideBar.buildHideContentAnimation(animation); } this.buildContentAnimation(animation); var showSideBarClass = null; var hideSideBarClass = null; if(this.get_position() == "left") { showSideBarClass = "showSideBarLeft"; hideSideBarClass = "hideSideBarLeft"; var animation = haxe_ui_Toolkit.styleSheet.findAnimation("showSideBarLeft"); var first = animation.get_keyFrames()[0]; var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; first.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(-this.get_actualComponentWidth() - this.getAppropriateMargin())))); last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); } else if(this.get_position() == "right") { showSideBarClass = "showSideBarRight"; hideSideBarClass = "hideSideBarRight"; var animation = haxe_ui_Toolkit.styleSheet.findAnimation("showSideBarRight"); var first = animation.get_keyFrames()[0]; var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; first.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_actualWidth() + this.getAppropriateMargin())))); last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_actualWidth() - this.get_actualComponentWidth())))); } else if(this.get_position() == "top") { showSideBarClass = "showSideBarTop"; hideSideBarClass = "hideSideBarTop"; var animation = haxe_ui_Toolkit.styleSheet.findAnimation("showSideBarTop"); var first = animation.get_keyFrames()[0]; var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; first.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(-this.get_actualComponentHeight() - this.getAppropriateMargin())))); last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); } else if(this.get_position() == "bottom") { showSideBarClass = "showSideBarBottom"; hideSideBarClass = "hideSideBarBottom"; var animation = haxe_ui_Toolkit.styleSheet.findAnimation("showSideBarBottom"); var first = animation.get_keyFrames()[0]; var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; first.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_actualHeight() + this.getAppropriateMargin())))); last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_actualHeight() - this.get_actualComponentHeight())))); } this.set_onAnimationEnd(function(_) { _gthis.removeClass(showSideBarClass); _gthis.onShowAnimationEnd(); }); if(haxe_ui_containers_SideBar.activeSideBar != null && haxe_ui_containers_SideBar.activeSideBar != this) { haxe_ui_containers_SideBar.activeSideBar.hideSideBar(); } var _g = 0; var _g1 = haxe_ui_core_Screen.get_instance().rootComponents; while(_g < _g1.length) { var r = [_g1[_g]]; ++_g; if(r[0].get_hidden()) { continue; } if(r[0].get_percentWidth() == null && r[0].get_percentHeight() == null) { continue; } if(r[0].classes.indexOf("sidebar") == -1) { r[0].cachePercentSizes(); r[0].swapClass("sideBarModifyContent","sideBarRestoreContent"); r[0].addClass("sidebarRestorable"); r[0].set_onAnimationEnd((function(r) { return function(_) { r[0].set_onAnimationEnd(null); rootComponent.removeClass("sideBarModifyContent"); }; })(r)); } } this.swapClass(showSideBarClass,hideSideBarClass); haxe_ui_containers_SideBar.activeSideBar = this; haxe_ui_containers_Box.prototype.show.call(this); } ,getAppropriateMargin: function() { return 0; } ,buildHideContentAnimation: function(animation) { var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; if(this._lastMethod == "shift") { if(this.get_position() == "left") { last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); } else if(this.get_position() == "right") { last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); } if(this.get_position() == "top") { last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); } else if(this.get_position() == "bottom") { last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); } } else if(this._lastMethod == "squash") { if(this.get_position() == "left") { last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); last.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_width())))); } else if(this.get_position() == "right") { last.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_width())))); } if(this.get_position() == "top") { last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); last.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_height())))); } else if(this.get_position() == "bottom") { last.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_height())))); } } } ,buildContentAnimation: function(animation) { var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; if(this.method == "shift") { if(this.get_position() == "left") { last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(this.get_actualComponentWidth())))); } else if(this.get_position() == "right") { last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(-this.get_actualComponentWidth())))); } if(this.get_position() == "top") { last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(this.get_actualComponentHeight())))); } else if(this.get_position() == "bottom") { last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(-this.get_actualComponentHeight())))); } } else if(this.method == "squash") { if(this.get_position() == "left") { last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(this.get_actualComponentWidth())))); last.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_width() - this.get_width())))); } else if(this.get_position() == "right") { last.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_width() - this.get_width())))); } if(this.get_position() == "top") { last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(this.get_actualComponentHeight())))); last.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_height() - this.get_height())))); } else if(this.get_position() == "bottom") { last.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_height() - this.get_height())))); } } } ,hideSideBar: function() { var _gthis = this; var showSideBarClass = null; var hideSideBarClass = null; if(this.get_position() == "left") { showSideBarClass = "showSideBarLeft"; hideSideBarClass = "hideSideBarLeft"; } else if(this.get_position() == "right") { showSideBarClass = "showSideBarRight"; hideSideBarClass = "hideSideBarRight"; } else if(this.get_position() == "top") { showSideBarClass = "showSideBarTop"; hideSideBarClass = "hideSideBarTop"; } else if(this.get_position() == "bottom") { showSideBarClass = "showSideBarBottom"; hideSideBarClass = "hideSideBarBottom"; } this.set_onAnimationEnd(function(_) { _gthis.removeClass(hideSideBarClass); _gthis.onHideAnimationEnd(); }); this.swapClass(hideSideBarClass,showSideBarClass); if(this.modal == true) { this.hideModalOverlay(); } } ,onShowAnimationEnd: function() { } ,onHideAnimationEnd: function() { haxe_ui_containers_Box.prototype.hide.call(this); } ,hide: function() { if(haxe_ui_containers_SideBar.activeSideBar != null && haxe_ui_containers_SideBar.activeSideBar != this) { haxe_ui_containers_SideBar.activeSideBar.hide(); return; } var animation = haxe_ui_Toolkit.styleSheet.findAnimation("sideBarRestoreContent"); var first = animation.get_keyFrames()[0]; var last = animation.get_keyFrames()[animation.get_keyFrames().length - 1]; var rootComponent = haxe_ui_core_Screen.get_instance().rootComponents[0]; first.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_left())))); first.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_top())))); first.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_width())))); first.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(rootComponent.get_height())))); last.set(new haxe_ui_styles_elements_Directive("left",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); last.set(new haxe_ui_styles_elements_Directive("top",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(0)))); last.set(new haxe_ui_styles_elements_Directive("width",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_width())))); last.set(new haxe_ui_styles_elements_Directive("height",haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(haxe_ui_core_Screen.get_instance().get_height())))); var _g = 0; var _g1 = haxe_ui_core_Screen.get_instance().rootComponents; while(_g < _g1.length) { var r = [_g1[_g]]; ++_g; if(r[0].get_hidden()) { continue; } if(r[0].classes.indexOf("sidebar") == -1 && r[0].classes.indexOf("sidebarRestorable") != -1) { r[0].swapClass("sideBarRestoreContent","sideBarModifyContent"); r[0].removeClass("sidebarRestorable"); r[0].set_onAnimationEnd((function(r) { return function(_) { r[0].restorePercentSizes(); r[0].set_onAnimationEnd(null); rootComponent.removeClass("sideBarRestoreContent"); }; })(r)); } } this.hideSideBar(); haxe_ui_containers_SideBar.activeSideBar = null; } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_SideBar(); } ,__class__: haxe_ui_containers_SideBar ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_position:"set_position",get_position:"get_position"}) }); var haxe_ui_containers__$Splitter_SizerGripper = function() { haxe_ui_core_InteractiveComponent.call(this); var image = new haxe_ui_components_Image(); this.addComponent(image); }; $hxClasses["haxe.ui.containers._Splitter.SizerGripper"] = haxe_ui_containers__$Splitter_SizerGripper; haxe_ui_containers__$Splitter_SizerGripper.__name__ = "haxe.ui.containers._Splitter.SizerGripper"; haxe_ui_containers__$Splitter_SizerGripper.__super__ = haxe_ui_core_InteractiveComponent; haxe_ui_containers__$Splitter_SizerGripper.prototype = $extend(haxe_ui_core_InteractiveComponent.prototype,{ registerBehaviours: function() { haxe_ui_core_InteractiveComponent.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_InteractiveComponent.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers__$Splitter_SizerGripper(); } ,__class__: haxe_ui_containers__$Splitter_SizerGripper }); var haxe_ui_containers_Stack = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.Stack"] = haxe_ui_containers_Stack; haxe_ui_containers_Stack.__name__ = "haxe.ui.containers.Stack"; haxe_ui_containers_Stack.__super__ = haxe_ui_containers_Box; haxe_ui_containers_Stack.prototype = $extend(haxe_ui_containers_Box.prototype,{ prevPage: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("prevPage",null); } ,nextPage: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("nextPage",null); } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("selectedIndex",haxe_ui_containers__$Stack_SelectedIndex,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedId",haxe_ui_containers__$Stack_SelectedId); this.behaviours.register("prevPage",haxe_ui_containers__$Stack_PrevPage); this.behaviours.register("nextPage",haxe_ui_containers__$Stack_NextPage); } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); return value; } ,get_selectedId: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("selectedId")); } ,set_selectedId: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"selectedId",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("selectedId",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedId")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_Stack(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$Stack_Builder; } ,__class__: haxe_ui_containers_Stack ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_selectedId:"set_selectedId",get_selectedId:"get_selectedId",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex"}) }); var haxe_ui_containers__$Stack_SelectedIndex = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._Stack.SelectedIndex"] = haxe_ui_containers__$Stack_SelectedIndex; haxe_ui_containers__$Stack_SelectedIndex.__name__ = "haxe.ui.containers._Stack.SelectedIndex"; haxe_ui_containers__$Stack_SelectedIndex.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Stack_SelectedIndex.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$Stack_Builder); if(haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromInt(0))) { return; } var _this = this._component; if(haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromInt((_this._children == null ? [] : _this._children).length - 1))) { var _this = this._component; this._value = haxe_ui_util_Variant.fromInt((_this._children == null ? [] : _this._children).length - 1); return; } if(builder._currentPage != null) { builder._currentPage.hide(); } var _this = this._component; builder._currentPage = (_this._children == null ? [] : _this._children)[haxe_ui_util_Variant.toInt(this._value)]; builder._currentPage.show(); this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_containers__$Stack_SelectedIndex }); var haxe_ui_containers__$Stack_SelectedId = function(stack) { haxe_ui_behaviours_DataBehaviour.call(this,stack); this._stack = stack; }; $hxClasses["haxe.ui.containers._Stack.SelectedId"] = haxe_ui_containers__$Stack_SelectedId; haxe_ui_containers__$Stack_SelectedId.__name__ = "haxe.ui.containers._Stack.SelectedId"; haxe_ui_containers__$Stack_SelectedId.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Stack_SelectedId.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _stack: null ,validateData: function() { var item = this._component.findComponent(haxe_ui_util_Variant.toString(this._value),haxe_ui_core_Component,false); if(item != null) { this._stack.set_selectedIndex(this._component.getComponentIndex(item)); } } ,__class__: haxe_ui_containers__$Stack_SelectedId }); var haxe_ui_containers__$Stack_PrevPage = function(stack) { haxe_ui_behaviours_DataBehaviour.call(this,stack); this._stack = stack; }; $hxClasses["haxe.ui.containers._Stack.PrevPage"] = haxe_ui_containers__$Stack_PrevPage; haxe_ui_containers__$Stack_PrevPage.__name__ = "haxe.ui.containers._Stack.PrevPage"; haxe_ui_containers__$Stack_PrevPage.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Stack_PrevPage.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _stack: null ,call: function(param) { var pageCount = this._stack.get_numComponents(); var newIndex = this._stack.get_selectedIndex(); --newIndex; if(newIndex < 0) { newIndex = pageCount - 1; } this._stack.set_selectedIndex(newIndex); return null; } ,__class__: haxe_ui_containers__$Stack_PrevPage }); var haxe_ui_containers__$Stack_NextPage = function(stack) { haxe_ui_behaviours_DataBehaviour.call(this,stack); this._stack = stack; }; $hxClasses["haxe.ui.containers._Stack.NextPage"] = haxe_ui_containers__$Stack_NextPage; haxe_ui_containers__$Stack_NextPage.__name__ = "haxe.ui.containers._Stack.NextPage"; haxe_ui_containers__$Stack_NextPage.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$Stack_NextPage.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _stack: null ,call: function(param) { var pageCount = this._stack.get_numComponents(); var newIndex = this._stack.get_selectedIndex(); ++newIndex; if(newIndex > pageCount - 1) { newIndex = 0; } this._stack.set_selectedIndex(newIndex); return null; } ,__class__: haxe_ui_containers__$Stack_NextPage }); var haxe_ui_containers__$Stack_Builder = function(stack) { this._currentPage = null; haxe_ui_core_CompositeBuilder.call(this,stack); this._stack = stack; }; $hxClasses["haxe.ui.containers._Stack.Builder"] = haxe_ui_containers__$Stack_Builder; haxe_ui_containers__$Stack_Builder.__name__ = "haxe.ui.containers._Stack.Builder"; haxe_ui_containers__$Stack_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$Stack_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _stack: null ,_currentPage: null ,onComponentAdded: function(child) { if(this._stack.get_selectedIndex() < 0) { this._stack.set_selectedIndex(0); } var childIndex = this._stack.getComponentIndex(child); if(childIndex != this._stack.get_selectedIndex()) { child.hide(); } } ,__class__: haxe_ui_containers__$Stack_Builder }); var haxe_ui_containers_TabView = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.containers.TabView"] = haxe_ui_containers_TabView; haxe_ui_containers_TabView.__name__ = "haxe.ui.containers.TabView"; haxe_ui_containers_TabView.__super__ = haxe_ui_core_Component; haxe_ui_containers_TabView.prototype = $extend(haxe_ui_core_Component.prototype,{ removePage: function(index) { if(this.behaviours == null) { return null; } return this.behaviours.call("removePage",index); } ,getPage: function(index) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("getPage",index)); } ,getPageById: function(pageId) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("getPageById",pageId)); } ,removeAllPages: function() { if(this.behaviours == null) { return null; } return this.behaviours.call("removeAllPages",null); } ,registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers__$TabView_Builder; this._internalEventsClass = haxe_ui_containers__$TabView_Events; this._defaultLayoutClass = haxe_ui_containers__$TabView_Layout; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); this.behaviours.register("pageIndex",haxe_ui_containers__$TabView_PageIndex,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedPage",haxe_ui_containers__$TabView_SelectedPage,null); this.behaviours.register("tabPosition",haxe_ui_containers__$TabView_TabPosition); this.behaviours.register("pageCount",haxe_ui_containers__$TabView_PageCount); this.behaviours.register("closable",haxe_ui_containers__$TabView_Closable,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("buttonWidth",haxe_ui_containers__$TabView_ButtonWidth,null); this.behaviours.register("buttonHeight",haxe_ui_containers__$TabView_ButtonHeight,null); this.behaviours.register("removePage",haxe_ui_containers__$TabView_RemovePage); this.behaviours.register("getPage",haxe_ui_containers__$TabView_GetPage); this.behaviours.register("getPageById",haxe_ui_containers__$TabView_GetPageById); this.behaviours.register("removeAllPages",haxe_ui_containers__$TabView_RemoveAllPages); } ,get_pageIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("pageIndex")); } ,set_pageIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("pageIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pageIndex")); return value; } ,get_selectedPage: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedPage")); } ,set_selectedPage: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedPage",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedPage")); return value; } ,get_tabPosition: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("tabPosition")); } ,set_tabPosition: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"tabPosition",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("tabPosition",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"tabPosition")); return value; } ,get_pageCount: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("pageCount")); } ,set_pageCount: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("pageCount",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"pageCount")); return value; } ,get_closable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("closable")); } ,set_closable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("closable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"closable")); return value; } ,get_buttonWidth: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("buttonWidth")); } ,set_buttonWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("buttonWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"buttonWidth")); return value; } ,get_buttonHeight: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("buttonHeight")); } ,set_buttonHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("buttonHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"buttonHeight")); return value; } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_TabView(); } ,__class__: haxe_ui_containers_TabView ,__properties__: $extend(haxe_ui_core_Component.prototype.__properties__,{set_buttonHeight:"set_buttonHeight",get_buttonHeight:"get_buttonHeight",set_buttonWidth:"set_buttonWidth",get_buttonWidth:"get_buttonWidth",set_closable:"set_closable",get_closable:"get_closable",set_pageCount:"set_pageCount",get_pageCount:"get_pageCount",set_tabPosition:"set_tabPosition",get_tabPosition:"get_tabPosition",set_selectedPage:"set_selectedPage",get_selectedPage:"get_selectedPage",set_pageIndex:"set_pageIndex",get_pageIndex:"get_pageIndex"}) }); var haxe_ui_containers__$TabView_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.containers._TabView.Layout"] = haxe_ui_containers__$TabView_Layout; haxe_ui_containers__$TabView_Layout.__name__ = "haxe.ui.containers._TabView.Layout"; haxe_ui_containers__$TabView_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_containers__$TabView_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { var tabs = this.get_component().findComponent(null,haxe_ui_components_TabBar,false); var content = this.get_component().findComponent(null,haxe_ui_containers_Box,false); if(tabs == null || content == null) { return; } if(this.get_component().classes.indexOf(":bottom") != -1) { content.set_left(this.get_paddingLeft()); content.set_top(this.get_paddingTop()); tabs.set_left(this.get_paddingLeft()); if(tabs.get_height() != 0) { tabs.set_top(this.get_component().get_height() - tabs.get_height() - this.get_paddingBottom() + this.marginTop(tabs)); } } else { tabs.set_left(this.get_paddingLeft()); tabs.set_top(this.get_paddingTop() + this.marginTop(tabs)); content.set_left(this.get_paddingLeft()); if(tabs.get_height() != 0) { content.set_top(tabs.get_top() + tabs.get_height() - this.marginTop(tabs) + this.marginTop(content)); } } } ,resizeChildren: function() { var tabs = this.get_component().findComponent(null,haxe_ui_components_TabBar,false); var content = this.get_component().findComponent(null,haxe_ui_containers_Box,false); if(tabs == null || content == null) { return; } var usableSize = this.get_usableSize(); var tabsWidthModifier = 0; if(tabs.get_style() == null) { tabs.validateNow(); } if(tabs.get_marginRight() != null) { tabsWidthModifier = tabs.get_marginRight(); } tabs.set_width(usableSize.width - tabsWidthModifier); if(this.get_component().get_autoHeight() == false) { content.set_height(usableSize.height + 1); } if(this.get_component().get_autoWidth() == false) { content.set_width(this.get_component().get_width()); } } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var tabs = this.get_component().findComponent(null,haxe_ui_components_TabBar,false); if(tabs != null && tabs.get_componentHeight() != null) { size.height -= tabs.get_componentHeight(); } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers__$TabView_Layout(); } ,__class__: haxe_ui_containers__$TabView_Layout }); var haxe_ui_containers__$TabView_Closable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.Closable"] = haxe_ui_containers__$TabView_Closable; haxe_ui_containers__$TabView_Closable.__name__ = "haxe.ui.containers._TabView.Closable"; haxe_ui_containers__$TabView_Closable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TabView_Closable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._component.get_native() == true) { return; } var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); builder._tabs.set_closable(haxe_ui_util_Variant.toBool(this._value)); } ,__class__: haxe_ui_containers__$TabView_Closable }); var haxe_ui_containers__$TabView_PageIndex = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.PageIndex"] = haxe_ui_containers__$TabView_PageIndex; haxe_ui_containers__$TabView_PageIndex.__name__ = "haxe.ui.containers._TabView.PageIndex"; haxe_ui_containers__$TabView_PageIndex.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TabView_PageIndex.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { if(haxe_ui_util_Variant.gt(value,haxe_ui_util_Variant.fromInt(-1))) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); builder._tabs.set_selectedIndex(haxe_ui_util_Variant.toInt(value)); } haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); } ,validateData: function() { if(this._component.get_native() == true) { return; } var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); if(haxe_ui_util_Variant.lt(this._value,haxe_ui_util_Variant.fromInt(0))) { return; } if(haxe_ui_util_Variant.gt(this._value,haxe_ui_util_Variant.fromInt(builder._views.length - 1))) { this._value = haxe_ui_util_Variant.fromInt(builder._views.length - 1); return; } builder._tabs.set_selectedIndex(haxe_ui_util_Variant.toInt(this._value)); var view = builder._views[haxe_ui_util_Variant.toInt(this._value)]; if(view != null) { if(builder._currentView != null) { builder._currentView.hide(); } if(builder._content.getComponentIndex(view) == -1) { builder._content.addComponent(view); } else { view.show(); } builder._currentView = view; } this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } ,__class__: haxe_ui_containers__$TabView_PageIndex }); var haxe_ui_containers__$TabView_SelectedPage = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.SelectedPage"] = haxe_ui_containers__$TabView_SelectedPage; haxe_ui_containers__$TabView_SelectedPage.__name__ = "haxe.ui.containers._TabView.SelectedPage"; haxe_ui_containers__$TabView_SelectedPage.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$TabView_SelectedPage.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { var tabview = js_Boot.__cast(this._component , haxe_ui_containers_TabView); var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); var view = builder._views[tabview.get_pageIndex()]; return haxe_ui_util_Variant.fromComponent(view); } ,set: function(value) { var tabview = js_Boot.__cast(this._component , haxe_ui_containers_TabView); var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); var view = haxe_ui_util_Variant.toComponent(value); var viewIndex = builder._views.indexOf(view); if(viewIndex != -1) { tabview.set_pageIndex(viewIndex); } } ,__class__: haxe_ui_containers__$TabView_SelectedPage }); var haxe_ui_containers__$TabView_TabPosition = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.TabPosition"] = haxe_ui_containers__$TabView_TabPosition; haxe_ui_containers__$TabView_TabPosition.__name__ = "haxe.ui.containers._TabView.TabPosition"; haxe_ui_containers__$TabView_TabPosition.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TabView_TabPosition.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromString("bottom"))) { this._component.addClass(":bottom"); this._component.findComponent(null,haxe_ui_components_TabBar,false).componentTabIndex = 1; this._component.findComponent("tabview-content",haxe_ui_containers_Box,false).componentTabIndex = 0; } else { this._component.removeClass(":bottom"); this._component.findComponent(null,haxe_ui_components_TabBar,false).componentTabIndex = 0; this._component.findComponent("tabview-content",haxe_ui_containers_Box,false).componentTabIndex = 1; } this._component.findComponent(null,haxe_ui_components_TabBar,false).set_tabPosition(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers__$TabView_TabPosition }); var haxe_ui_containers__$TabView_PageCount = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.PageCount"] = haxe_ui_containers__$TabView_PageCount; haxe_ui_containers__$TabView_PageCount.__name__ = "haxe.ui.containers._TabView.PageCount"; haxe_ui_containers__$TabView_PageCount.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TabView_PageCount.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); return haxe_ui_util_Variant.fromInt(builder._tabs.get_tabCount()); } ,__class__: haxe_ui_containers__$TabView_PageCount }); var haxe_ui_containers__$TabView_RemovePage = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.RemovePage"] = haxe_ui_containers__$TabView_RemovePage; haxe_ui_containers__$TabView_RemovePage.__name__ = "haxe.ui.containers._TabView.RemovePage"; haxe_ui_containers__$TabView_RemovePage.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TabView_RemovePage.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); var index = param; if(index < builder._views.length) { builder._tabs.removeTab(index); } return null; } ,__class__: haxe_ui_containers__$TabView_RemovePage }); var haxe_ui_containers__$TabView_GetPage = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.GetPage"] = haxe_ui_containers__$TabView_GetPage; haxe_ui_containers__$TabView_GetPage.__name__ = "haxe.ui.containers._TabView.GetPage"; haxe_ui_containers__$TabView_GetPage.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TabView_GetPage.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); var index = param; var page = null; if(index < builder._views.length) { page = builder._views[index]; } return haxe_ui_util_Variant.fromComponent(page); } ,__class__: haxe_ui_containers__$TabView_GetPage }); var haxe_ui_containers__$TabView_GetPageById = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.GetPageById"] = haxe_ui_containers__$TabView_GetPageById; haxe_ui_containers__$TabView_GetPageById.__name__ = "haxe.ui.containers._TabView.GetPageById"; haxe_ui_containers__$TabView_GetPageById.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TabView_GetPageById.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); var id = param; var page = null; var _g = 0; var _g1 = builder._views; while(_g < _g1.length) { var view = _g1[_g]; ++_g; if(view.get_id() == id) { page = view; break; } } return haxe_ui_util_Variant.fromComponent(page); } ,__class__: haxe_ui_containers__$TabView_GetPageById }); var haxe_ui_containers__$TabView_RemoveAllPages = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.RemoveAllPages"] = haxe_ui_containers__$TabView_RemoveAllPages; haxe_ui_containers__$TabView_RemoveAllPages.__name__ = "haxe.ui.containers._TabView.RemoveAllPages"; haxe_ui_containers__$TabView_RemoveAllPages.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TabView_RemoveAllPages.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TabView_Builder); while(builder._views.length > 0) builder._tabs.removeTab(0); (js_Boot.__cast(this._component , haxe_ui_containers_TabView)).set_pageIndex(-1); builder._tabs.set_selectedIndex(-1); return null; } ,__class__: haxe_ui_containers__$TabView_RemoveAllPages }); var haxe_ui_containers__$TabView_ButtonWidth = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.ButtonWidth"] = haxe_ui_containers__$TabView_ButtonWidth; haxe_ui_containers__$TabView_ButtonWidth.__name__ = "haxe.ui.containers._TabView.ButtonWidth"; haxe_ui_containers__$TabView_ButtonWidth.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TabView_ButtonWidth.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var tabbar = this._component.findComponent("tabview-tabs",haxe_ui_components_TabBar); if(tabbar != null) { tabbar.set_buttonWidth(haxe_ui_util_Variant.toFloat(this._value)); } } ,__class__: haxe_ui_containers__$TabView_ButtonWidth }); var haxe_ui_containers__$TabView_ButtonHeight = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TabView.ButtonHeight"] = haxe_ui_containers__$TabView_ButtonHeight; haxe_ui_containers__$TabView_ButtonHeight.__name__ = "haxe.ui.containers._TabView.ButtonHeight"; haxe_ui_containers__$TabView_ButtonHeight.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TabView_ButtonHeight.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var tabbar = this._component.findComponent("tabview-tabs",haxe_ui_components_TabBar); if(tabbar != null) { tabbar.set_buttonHeight(haxe_ui_util_Variant.toFloat(this._value)); } } ,__class__: haxe_ui_containers__$TabView_ButtonHeight }); var haxe_ui_containers__$TabView_Events = function(tabview) { haxe_ui_events_Events.call(this,tabview); this._tabview = tabview; }; $hxClasses["haxe.ui.containers._TabView.Events"] = haxe_ui_containers__$TabView_Events; haxe_ui_containers__$TabView_Events.__name__ = "haxe.ui.containers._TabView.Events"; haxe_ui_containers__$TabView_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers__$TabView_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _tabview: null ,register: function() { var tabs = this._tabview.findComponent(null,haxe_ui_components_TabBar,false); if(tabs.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onTabChanged)) == false) { tabs.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onTabChanged)); } if(tabs.hasEvent(haxe_ui_events_UIEvent.BEFORE_CHANGE,$bind(this,this.onTabBeforeChanged)) == false) { tabs.registerEvent(haxe_ui_events_UIEvent.BEFORE_CHANGE,$bind(this,this.onTabBeforeChanged)); } if(tabs.hasEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE,$bind(this,this.onBeforeTabClosed)) == false) { tabs.registerEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE,$bind(this,this.onBeforeTabClosed)); } if(tabs.hasEvent(haxe_ui_events_UIEvent.CLOSE,$bind(this,this.onTabClosed)) == false) { tabs.registerEvent(haxe_ui_events_UIEvent.CLOSE,$bind(this,this.onTabClosed)); } } ,unregister: function() { var tabs = this._tabview.findComponent(null,haxe_ui_components_TabBar,false); tabs.unregisterEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onTabChanged)); tabs.unregisterEvent(haxe_ui_events_UIEvent.BEFORE_CHANGE,$bind(this,this.onTabBeforeChanged)); tabs.unregisterEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE,$bind(this,this.onBeforeTabClosed)); tabs.unregisterEvent(haxe_ui_events_UIEvent.CLOSE,$bind(this,this.onTabClosed)); } ,onBeforeTabClosed: function(event) { this._tabview.dispatch(event); } ,onTabClosed: function(event) { var builder = js_Boot.__cast(this._tabview._compositeBuilder , haxe_ui_containers__$TabView_Builder); var view = builder._views[event.data]; HxOverrides.remove(builder._views,view); if(builder._content.getComponentIndex(view) != -1) { builder._content.removeComponent(view); } this._tabview.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CLOSE,event.data)); } ,onTabChanged: function(event) { var tabs = this._tabview.findComponent(null,haxe_ui_components_TabBar,false); this._tabview.set_pageIndex(-1); this._tabview.set_pageIndex(tabs.get_selectedIndex()); } ,onTabBeforeChanged: function(event) { this._tabview.dispatch(event); } ,__class__: haxe_ui_containers__$TabView_Events }); var haxe_ui_containers__$TabView_Builder = function(tabview) { this._views = []; this._currentView = null; haxe_ui_core_CompositeBuilder.call(this,tabview); this._tabview = tabview; }; $hxClasses["haxe.ui.containers._TabView.Builder"] = haxe_ui_containers__$TabView_Builder; haxe_ui_containers__$TabView_Builder.__name__ = "haxe.ui.containers._TabView.Builder"; haxe_ui_containers__$TabView_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$TabView_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _tabview: null ,_tabs: null ,_content: null ,_currentView: null ,_views: null ,create: function() { if(this._content == null) { this._content = new haxe_ui_containers_Box(); this._content.set_id("tabview-content"); this._content.addClass("tabview-content"); this._content.set_layout(haxe_ui_layouts_LayoutFactory.createFromName("vertical")); this._content.componentTabIndex = 1; this._tabview.addComponent(this._content); } if(this._tabs == null) { this._tabs = new haxe_ui_components_TabBar(); this._tabs.set_id("tabview-tabs"); this._tabs.addClass("tabview-tabs"); this._tabs.componentTabIndex = 0; this._tabview.addComponent(this._tabs); } } ,get_numComponents: function() { return this._views.length; } ,addComponent: function(child) { if(child != this._content && child != this._tabs) { var text = child.get_text(); var icon = null; if(((child) instanceof haxe_ui_containers_Box)) { icon = haxe_ui_util_Variant.toString((js_Boot.__cast(child , haxe_ui_containers_Box)).get_icon()); } child.set_parentComponent(this._content); child.registerEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onPagePropertyChanged)); this._views.push(child); var button = new haxe_ui_components_Button(); if(child.get_disabled() == true) { button.set_disabled(true); } button.set_text(text); button.set_icon(haxe_ui_util_Variant.fromString(icon)); button.set_tooltip(child.get_tooltip()); if(child.get_id() != null) { button.set_id(child.get_id() + "TabButton"); } this._tabs.addComponent(button); return child; } return null; } ,addComponentAt: function(child,index) { if(child != this._content && child != this._tabs) { var text = child.get_text(); var icon = null; if(((child) instanceof haxe_ui_containers_Box)) { icon = haxe_ui_util_Variant.toString((js_Boot.__cast(child , haxe_ui_containers_Box)).get_icon()); } child.set_parentComponent(this._content); child.registerEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onPagePropertyChanged)); this._views.splice(index,0,child); var button = new haxe_ui_components_Button(); button.set_text(text); button.set_icon(haxe_ui_util_Variant.fromString(icon)); button.set_tooltip(child.get_tooltip()); if(child.get_id() != null) { button.set_id(child.get_id() + "_button"); } this._tabs.addComponentAt(button,index); return child; } return null; } ,onPagePropertyChanged: function(event) { if(event.data == "text") { var index = this._views.indexOf(event.target); var button = this._tabs.getTab(index); if(button != null && button.get_text() != event.target.get_text()) { button.set_text(event.target.get_text()); } } else if(event.data == "icon") { var index = this._views.indexOf(event.target); var button = js_Boot.__cast(this._tabs.getTab(index) , haxe_ui_components_Button); if(button != null && haxe_ui_util_Variant.neq(button.get_icon(),(js_Boot.__cast(event.target , haxe_ui_containers_Box)).get_icon())) { button.set_icon((js_Boot.__cast(event.target , haxe_ui_containers_Box)).get_icon()); } } else if(event.data == "disabled") { var index = this._views.indexOf(event.target); var button = js_Boot.__cast(this._tabs.getTab(index) , haxe_ui_components_Button); if(button != null && button.get_disabled() != (js_Boot.__cast(event.target , haxe_ui_containers_Box)).get_disabled()) { button.set_disabled((js_Boot.__cast(event.target , haxe_ui_containers_Box)).get_disabled()); } } } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(child != this._content && child != this._tabs) { var _g = this._views.indexOf(child); if(_g != -1) { var i = _g; this._tabs.pauseEvent(haxe_ui_events_UIEvent.CLOSE); this._tabs.pauseEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE); if(this._currentView == child) { this._currentView = null; } child.unregisterEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onPagePropertyChanged)); HxOverrides.remove(this._views,child); if(this._content.getComponentIndex(child) != -1) { this._content.removeComponent(child,dispose,invalidate); } this._tabs.removeTab(i); this._tabs.resumeEvent(haxe_ui_events_UIEvent.CLOSE); this._tabs.resumeEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE); return child; } } return null; } ,removeComponentAt: function(index,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return this._tabs.removeComponentAt(index,dispose,invalidate); } ,getComponentIndex: function(child) { return this._views.indexOf(child); } ,setComponentIndex: function(child,index) { if(child != this._content && child != this._tabs) { var _g = this._views.indexOf(child); if(_g != -1) { var i = _g; this._views.splice(i,1); this._views.splice(index,0,child); this._tabs.setComponentIndex(this._tabs.getComponentAt(i),index); return child; } } return null; } ,getComponentAt: function(index) { return this._views[index]; } ,findComponent: function(criteria,type,recursive,searchType) { var match = haxe_ui_core_CompositeBuilder.prototype.findComponent.call(this,criteria,type,recursive,searchType); if(match == null) { var _g = 0; var _g1 = this._views; while(_g < _g1.length) { var view = _g1[_g]; ++_g; match = view.findComponent(criteria,type,recursive,searchType); if(view.matchesSearch(criteria,type,searchType)) { return view; } else { match = view.findComponent(criteria,type,recursive,searchType); } if(match != null) { break; } } } return match; } ,applyStyle: function(style) { haxe_ui_core_CompositeBuilder.prototype.applyStyle.call(this,style); var c = this._component.findComponent("tabview-tabs",haxe_ui_core_Component,false); if(c != null) { var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(style.fontBold != null && c.get_customStyle().fontBold != style.fontBold) { c.get_customStyle().fontBold = style.fontBold; invalidate = true; } if(style.fontUnderline != null && c.get_customStyle().fontUnderline != style.fontUnderline) { c.get_customStyle().fontUnderline = style.fontUnderline; invalidate = true; } if(style.fontItalic != null && c.get_customStyle().fontItalic != style.fontItalic) { c.get_customStyle().fontItalic = style.fontItalic; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } } ,__class__: haxe_ui_containers__$TabView_Builder }); var haxe_ui_containers_TableView = function() { haxe_ui_containers_ScrollView.call(this); }; $hxClasses["haxe.ui.containers.TableView"] = haxe_ui_containers_TableView; haxe_ui_containers_TableView.__name__ = "haxe.ui.containers.TableView"; haxe_ui_containers_TableView.__interfaces__ = [haxe_ui_containers_IVirtualContainer,haxe_ui_core_IDataComponent]; haxe_ui_containers_TableView.__super__ = haxe_ui_containers_ScrollView; haxe_ui_containers_TableView.prototype = $extend(haxe_ui_containers_ScrollView.prototype,{ clearContents: function(clearHeader) { if(clearHeader == null) { clearHeader = false; } if(this.behaviours == null) { return; } this.behaviours.call("clearContents",clearHeader); } ,addColumn: function(text) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("addColumn",text)); } ,removeColumn: function(text) { if(this.behaviours == null) { return; } this.behaviours.call("removeColumn",text); } ,_itemRendererClass: null ,get_itemRendererClass: function() { return this._itemRendererClass; } ,set_itemRendererClass: function(value) { if(this._itemRendererClass != value) { this._itemRendererClass = value; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } return value; } ,_itemRenderer: null ,get_itemRenderer: function() { return this._itemRenderer; } ,set_itemRenderer: function(value) { if(this._itemRenderer != value) { this._itemRenderer = value; if(!(this._layout == null || this._layoutLocked == true)) { this.invalidateComponent("layout",false); } } return value; } ,get_isNativeScroller: function() { return false; } ,get_isHybridScroller: function() { return false; } ,registerComposite: function() { haxe_ui_containers_ScrollView.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$TableView_Events; this._compositeBuilderClass = haxe_ui_containers__$TableView_Builder; this._defaultLayoutClass = haxe_ui_containers__$TableView_Layout; } ,_internal__onComponentEvent: null ,onComponentEvent: null ,set_onComponentEvent: function(value) { if(this._internal__onComponentEvent != null) { this.unregisterEvent(haxe_ui_events_ItemEvent.COMPONENT_EVENT,this._internal__onComponentEvent); this._internal__onComponentEvent = null; } if(value != null) { this._internal__onComponentEvent = value; this.registerEvent(haxe_ui_events_ItemEvent.COMPONENT_EVENT,value); } return value; } ,_internal__onSortChanged: null ,onSortChanged: null ,set_onSortChanged: function(value) { if(this._internal__onSortChanged != null) { this.unregisterEvent(haxe_ui_events_SortEvent.SORT_CHANGED,this._internal__onSortChanged); this._internal__onSortChanged = null; } if(value != null) { this._internal__onSortChanged = value; this.registerEvent(haxe_ui_events_SortEvent.SORT_CHANGED,value); } return value; } ,registerBehaviours: function() { haxe_ui_containers_ScrollView.prototype.registerBehaviours.call(this); this.behaviours.register("dataSource",haxe_ui_containers__$TableView_DataSourceBehaviour); this.behaviours.register("itemWidth",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("itemHeight",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("itemCount",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("variableItemSize",haxe_ui_behaviours_LayoutBehaviour,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("selectedIndex",haxe_ui_containers__$TableView_SelectedIndexBehaviour,haxe_ui_util_Variant.fromInt(-1)); this.behaviours.register("selectedItem",haxe_ui_containers__$TableView_SelectedItemBehaviour); this.behaviours.register("selectedIndices",haxe_ui_containers__$TableView_SelectedIndicesBehaviour); this.behaviours.register("selectedItems",haxe_ui_containers__$TableView_SelectedItemsBehaviour); this.behaviours.register("selectionMode",haxe_ui_containers__$TableView_SelectionModeBehaviour,haxe_ui_util_Variant.fromString("one-item")); this.behaviours.register("longPressSelectionTime",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromInt(500)); this.behaviours.register("header",haxe_ui_containers__$TableView_GetHeader); this.behaviours.register("clearContents",haxe_ui_containers__$TableView_ClearTable); this.behaviours.register("addColumn",haxe_ui_containers__$TableView_AddColumn); this.behaviours.register("removeColumn",haxe_ui_containers__$TableView_RemoveColumn); } ,get_dataSource: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toDataSource(this.behaviours.get("dataSource")); } ,set_dataSource: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("dataSource",haxe_ui_util_Variant.fromDataSource(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"dataSource")); return value; } ,get_itemWidth: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("itemWidth")); } ,set_itemWidth: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("itemWidth",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"itemWidth")); return value; } ,get_itemHeight: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("itemHeight")); } ,set_itemHeight: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("itemHeight",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"itemHeight")); return value; } ,get_itemCount: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("itemCount")); } ,set_itemCount: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("itemCount",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"itemCount")); return value; } ,get_variableItemSize: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("variableItemSize")); } ,set_variableItemSize: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("variableItemSize",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"variableItemSize")); return value; } ,get_selectedIndex: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("selectedIndex")); } ,set_selectedIndex: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndex",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndex")); return value; } ,get_selectedItem: function() { if(this.behaviours == null) { return null; } return this.behaviours.getDynamic("selectedItem"); } ,set_selectedItem: function(value) { this.behaviours.setDynamic("selectedItem",value); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedItem")); return value; } ,get_selectedIndices: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toArray(this.behaviours.get("selectedIndices")); } ,set_selectedIndices: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedIndices",haxe_ui_util_Variant.fromArray(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedIndices")); return value; } ,get_selectedItems: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toArray(this.behaviours.get("selectedItems")); } ,set_selectedItems: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedItems",haxe_ui_util_Variant.fromArray(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedItems")); return value; } ,get_selectionMode: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("selectionMode")); } ,set_selectionMode: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectionMode",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectionMode")); return value; } ,get_longPressSelectionTime: function() { if(this.behaviours == null) { return 0; } return haxe_ui_util_Variant.toInt(this.behaviours.get("longPressSelectionTime")); } ,set_longPressSelectionTime: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("longPressSelectionTime",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"longPressSelectionTime")); return value; } ,get_header: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("header")); } ,set_header: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("header",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"header")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_ScrollView.prototype.cloneComponent.call(this); if(this.get_itemRendererClass() != null) { c.set_itemRendererClass(this.get_itemRendererClass()); } if(this.get_itemRenderer() != null) { c.set_itemRenderer(this.get_itemRenderer()); } if(this.get_dataSource() != null) { c.set_dataSource(this.get_dataSource()); } c.set_itemWidth(this.get_itemWidth()); c.set_itemHeight(this.get_itemHeight()); c.set_itemCount(this.get_itemCount()); c.set_variableItemSize(this.get_variableItemSize()); c.set_selectedIndex(this.get_selectedIndex()); if(this.get_selectedItem() != null) { c.set_selectedItem(this.get_selectedItem()); } if(this.get_selectedIndices() != null) { c.set_selectedIndices(this.get_selectedIndices()); } if(this.get_selectedItems() != null) { c.set_selectedItems(this.get_selectedItems()); } if(this.get_selectionMode() != null) { c.set_selectionMode(this.get_selectionMode()); } c.set_longPressSelectionTime(this.get_longPressSelectionTime()); if(this.get_header() != null) { c.set_header(this.get_header()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_TableView(); } ,__class__: haxe_ui_containers_TableView ,__properties__: $extend(haxe_ui_containers_ScrollView.prototype.__properties__,{set_header:"set_header",get_header:"get_header",set_longPressSelectionTime:"set_longPressSelectionTime",get_longPressSelectionTime:"get_longPressSelectionTime",set_selectionMode:"set_selectionMode",get_selectionMode:"get_selectionMode",set_selectedItems:"set_selectedItems",get_selectedItems:"get_selectedItems",set_selectedIndices:"set_selectedIndices",get_selectedIndices:"get_selectedIndices",set_selectedItem:"set_selectedItem",get_selectedItem:"get_selectedItem",set_selectedIndex:"set_selectedIndex",get_selectedIndex:"get_selectedIndex",set_variableItemSize:"set_variableItemSize",get_variableItemSize:"get_variableItemSize",set_itemCount:"set_itemCount",get_itemCount:"get_itemCount",set_itemHeight:"set_itemHeight",get_itemHeight:"get_itemHeight",set_itemWidth:"set_itemWidth",get_itemWidth:"get_itemWidth",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource",set_onSortChanged:"set_onSortChanged",set_onComponentEvent:"set_onComponentEvent",set_itemRenderer:"set_itemRenderer",get_itemRenderer:"get_itemRenderer",set_itemRendererClass:"set_itemRendererClass",get_itemRendererClass:"get_itemRendererClass"}) }); var haxe_ui_core_ItemRenderer = function() { this._fieldList = null; this.itemIndex = -1; this._allowHover = true; this.recursiveStyling = false; this.autoRegisterInteractiveEvents = true; haxe_ui_containers_Box.call(this); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this._onItemMouseOver)); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this._onItemMouseOut)); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this._onItemMouseDown)); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this._onItemMouseUp)); }; $hxClasses["haxe.ui.core.ItemRenderer"] = haxe_ui_core_ItemRenderer; haxe_ui_core_ItemRenderer.__name__ = "haxe.ui.core.ItemRenderer"; haxe_ui_core_ItemRenderer.__super__ = haxe_ui_containers_Box; haxe_ui_core_ItemRenderer.prototype = $extend(haxe_ui_containers_Box.prototype,{ autoRegisterInteractiveEvents: null ,recursiveStyling: null ,_onItemMouseOver: function(event) { this.addClass(":hover",true,this.recursiveStyling); if(!this.recursiveStyling) { var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Label); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.addClass(":hover"); } var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Image); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.addClass(":hover"); } } } ,_onItemMouseOut: function(event) { this.removeClass(":hover",true,this.recursiveStyling); if(!this.recursiveStyling) { var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Label); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.removeClass(":hover"); } var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Image); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.removeClass(":hover"); } } } ,_onItemMouseDown: function(event) { this.addClass(":down",true,this.recursiveStyling); if(!this.recursiveStyling) { var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Label); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.addClass(":down"); } var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Image); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.addClass(":down"); } } } ,_onItemMouseUp: function(event) { this.removeClass(":down",true,this.recursiveStyling); if(!this.recursiveStyling) { var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Label); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.removeClass(":down"); } var _g = 0; var _g1 = this.findComponents(null,haxe_ui_components_Image); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.removeClass(":down"); } } } ,_allowHover: null ,get_allowHover: function() { return this._allowHover; } ,set_allowHover: function(value) { if(this._allowHover == value) { return value; } this._allowHover = value; if(this._allowHover == true) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this._onItemMouseOver)); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this._onItemMouseOut)); } else { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this._onItemMouseOver)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this._onItemMouseOut)); } return value; } ,_data: null ,get_data: function() { return this._data; } ,set_data: function(value) { this._data = value; this.invalidateComponent("data",false); return value; } ,itemIndex: null ,_fieldList: null ,validateComponentData: function() { if(this._data != null && (this._fieldList == null || this._fieldList.length == 0)) { var _g = Type.typeof(this._data); switch(_g._hx_index) { case 4: if(typeof(this._data) == "string" == false) { var fieldList = Reflect.fields(this._data); if(js_Boot.getClass(this._data) != null) { var instanceFields = Type.getInstanceFields(js_Boot.getClass(this._data)); var _g1 = 0; while(_g1 < instanceFields.length) { var i = instanceFields[_g1]; ++_g1; if(fieldList.indexOf(i) == -1 && Reflect.isFunction(Reflect.getProperty(this._data,i)) == false) { fieldList.push(i); } else if(StringTools.startsWith(i,"get_") && fieldList.indexOf(HxOverrides.substr(i,4,null)) == -1 && Reflect.isFunction(Reflect.getProperty(this._data,i)) == true) { fieldList.push(HxOverrides.substr(i,4,null)); } } this._fieldList = fieldList; } } else { this._fieldList = ["text"]; } break; case 6: var _g1 = _g.c; if(typeof(this._data) == "string" == false) { var fieldList = Reflect.fields(this._data); if(js_Boot.getClass(this._data) != null) { var instanceFields = Type.getInstanceFields(js_Boot.getClass(this._data)); var _g = 0; while(_g < instanceFields.length) { var i = instanceFields[_g]; ++_g; if(fieldList.indexOf(i) == -1 && Reflect.isFunction(Reflect.getProperty(this._data,i)) == false) { fieldList.push(i); } else if(StringTools.startsWith(i,"get_") && fieldList.indexOf(HxOverrides.substr(i,4,null)) == -1 && Reflect.isFunction(Reflect.getProperty(this._data,i)) == true) { fieldList.push(HxOverrides.substr(i,4,null)); } } this._fieldList = fieldList; } } else { this._fieldList = ["text"]; } break; default: this._fieldList = ["text"]; } } this.updateValues(this._data,this._fieldList); if(this.autoRegisterInteractiveEvents) { var components = this.findComponents(null,haxe_ui_core_InteractiveComponent); var _g = 0; while(_g < components.length) { var c = components[_g]; ++_g; if(c.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick)) == false) { c.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick)); } if(c.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onItemChange)) == false) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onItemChange)); } } } this.onDataChanged(this._data); var event = new haxe_ui_events_ItemRendererEvent(haxe_ui_events_ItemRendererEvent.DATA_CHANGED,this); this.dispatch(event); } ,onDataChanged: function(data) { this._data = data; } ,onItemChange: function(event) { if(this.itemIndex < 0) { return; } var v = event.target.get_value(); if(this._data != null && event.target.get_id() != null) { var item = Reflect.getProperty(this._data,event.target.get_id()); if(Type.typeof(item)._hx_index == 4) { item.value = v; } else { Reflect.setProperty(this._data,event.target.get_id(),v); } } var e = new haxe_ui_events_ItemEvent(haxe_ui_events_ItemEvent.COMPONENT_EVENT); e.bubble = true; e.source = event.target; e.sourceEvent = event; e.itemIndex = this.itemIndex; e.data = this._data; this.dispatch(e); var e2 = new haxe_ui_events_ItemEvent(haxe_ui_events_ItemEvent.COMPONENT_CHANGE_EVENT); e2.bubble = true; e2.source = event.target; e2.sourceEvent = event; e2.itemIndex = this.itemIndex; e2.data = this._data; this.dispatch(e2); } ,onItemClick: function(event) { if(this.itemIndex < 0) { return; } var e = new haxe_ui_events_ItemEvent(haxe_ui_events_ItemEvent.COMPONENT_EVENT); e.bubble = true; e.source = event.target; e.sourceEvent = event; e.itemIndex = this.itemIndex; e.data = this._data; this.dispatch(e); var e2 = new haxe_ui_events_ItemEvent(haxe_ui_events_ItemEvent.COMPONENT_CLICK_EVENT); e2.bubble = true; e2.source = event.target; e2.sourceEvent = event; e2.itemIndex = this.itemIndex; e2.data = this._data; this.dispatch(e2); } ,updateValues: function(value,fieldList) { if(fieldList == null) { fieldList = Reflect.fields(value); } var valueObject = null; var _g = Type.typeof(value); switch(_g._hx_index) { case 4: if(typeof(value) == "string" == false) { valueObject = value; } else { valueObject = { text : value}; } break; case 6: var _g1 = _g.c; if(typeof(value) == "string" == false) { valueObject = value; } else { valueObject = { text : value}; } break; default: valueObject = { text : value}; } var _g = 0; while(_g < fieldList.length) { var f = fieldList[_g]; ++_g; var property = "value"; var v = Reflect.getProperty(valueObject,f); var componentId = f; var n = f.indexOf("."); if(n != -1) { componentId = f.substring(0,n); property = f.substring(n + 1); } var c = this.findComponent(componentId,null,true); if(c != null && v != null) { if(Type.typeof(v)._hx_index == 4) { var _g1 = 0; var _g2 = Reflect.fields(v); while(_g1 < _g2.length) { var valueField = _g2[_g1]; ++_g1; var valueFieldValue = Reflect.field(v,valueField); this.setComponentProperty(c,valueFieldValue,valueField); } } else { this.setComponentProperty(c,v,property); } c.show(); } else if(c != null) { c.hide(); } else if(f != "id" && f != "layout") { try { Reflect.setProperty(this,f,v); } catch( _g3 ) { haxe_NativeStackTrace.lastError = _g3; } } else if(Type.typeof(v) == ValueType.TObject) { this.updateValues(v); } } } ,setComponentProperty: function(c,v,property) { var typeInfo = haxe_ui_core_TypeMap.getTypeInfo(c.get_className(),property); var propValue = haxe_ui_util_TypeConverter.convertTo(v,typeInfo); if(property == "value") { c.set_value(propValue); } else if(typeInfo == "variant") { Reflect.setProperty(c,property,haxe_ui_util_Variant.fromDynamic(propValue)); } else { Reflect.setProperty(c,property,propValue); } if(this.autoRegisterInteractiveEvents) { if(((c) instanceof haxe_ui_core_InteractiveComponent) || ((c) instanceof haxe_ui_core_ItemRenderer)) { if(c.hasEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onItemChange)) == false) { c.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onItemChange)); } if(c.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick)) == false) { c.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick)); } } } } ,registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); c.autoRegisterInteractiveEvents = this.autoRegisterInteractiveEvents; c.recursiveStyling = this.recursiveStyling; c.set_allowHover(this.get_allowHover()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_core_ItemRenderer(); } ,__class__: haxe_ui_core_ItemRenderer ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_data:"set_data",get_data:"get_data",set_allowHover:"set_allowHover",get_allowHover:"get_allowHover"}) }); var haxe_ui_containers__$TableView_CompoundItemRenderer = function() { haxe_ui_core_ItemRenderer.call(this); this.set_layout(haxe_ui_layouts_LayoutFactory.createFromName("horizontal")); this.removeClass("itemrenderer"); }; $hxClasses["haxe.ui.containers._TableView.CompoundItemRenderer"] = haxe_ui_containers__$TableView_CompoundItemRenderer; haxe_ui_containers__$TableView_CompoundItemRenderer.__name__ = "haxe.ui.containers._TableView.CompoundItemRenderer"; haxe_ui_containers__$TableView_CompoundItemRenderer.__super__ = haxe_ui_core_ItemRenderer; haxe_ui_containers__$TableView_CompoundItemRenderer.prototype = $extend(haxe_ui_core_ItemRenderer.prototype,{ onDataChanged: function(data) { var renderers = this.findComponents(null,haxe_ui_core_ItemRenderer); var _g = 0; while(_g < renderers.length) { var r = renderers[_g]; ++_g; r.onDataChanged(data); } } ,_onItemMouseOver: function(event) { this.addClass(":hover"); var _g = 0; var _g1 = this.findComponents(null,haxe_ui_core_ItemRenderer); while(_g < _g1.length) { var i = _g1[_g]; ++_g; i.addClass(":hover"); } } ,_onItemMouseOut: function(event) { this.removeClass(":hover"); var _g = 0; var _g1 = this.findComponents(null,haxe_ui_core_ItemRenderer); while(_g < _g1.length) { var i = _g1[_g]; ++_g; i.removeClass(":hover"); } } ,_onItemMouseDown: function(event) { this.addClass(":down"); var _g = 0; var _g1 = this.findComponents(null,haxe_ui_core_ItemRenderer); while(_g < _g1.length) { var i = _g1[_g]; ++_g; i.addClass(":down"); } } ,_onItemMouseUp: function(event) { this.removeClass(":down"); var _g = 0; var _g1 = this.findComponents(null,haxe_ui_core_ItemRenderer); while(_g < _g1.length) { var i = _g1[_g]; ++_g; i.removeClass(":down"); } } ,registerBehaviours: function() { haxe_ui_core_ItemRenderer.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_ItemRenderer.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers__$TableView_CompoundItemRenderer(); } ,__class__: haxe_ui_containers__$TableView_CompoundItemRenderer }); var haxe_ui_containers__$TableView_Events = function(tableview) { haxe_ui_containers_ScrollViewEvents.call(this,tableview); this._tableview = tableview; }; $hxClasses["haxe.ui.containers._TableView.Events"] = haxe_ui_containers__$TableView_Events; haxe_ui_containers__$TableView_Events.__name__ = "haxe.ui.containers._TableView.Events"; haxe_ui_containers__$TableView_Events.__super__ = haxe_ui_containers_ScrollViewEvents; haxe_ui_containers__$TableView_Events.prototype = $extend(haxe_ui_containers_ScrollViewEvents.prototype,{ _tableview: null ,register: function() { haxe_ui_containers_ScrollViewEvents.prototype.register.call(this); this.registerEvent(haxe_ui_events_ScrollEvent.CHANGE,$bind(this,this.onScrollChange)); this.registerEvent(haxe_ui_events_UIEvent.RENDERER_CREATED,$bind(this,this.onRendererCreated)); this.registerEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED,$bind(this,this.onRendererDestroyed)); } ,unregister: function() { haxe_ui_containers_ScrollViewEvents.prototype.unregister.call(this); this.unregisterEvent(haxe_ui_events_ScrollEvent.CHANGE,$bind(this,this.onScrollChange)); this.unregisterEvent(haxe_ui_events_UIEvent.RENDERER_CREATED,$bind(this,this.onRendererCreated)); this.unregisterEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED,$bind(this,this.onRendererDestroyed)); } ,onScrollChange: function(e) { if(this._tableview.get_virtual()) { var _this = this._tableview; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } var header = this._tableview.findComponent(null,haxe_ui_containers_Header,true); if(header == null) { return; } var vscroll = this._tableview.findComponent(null,haxe_ui_components_VerticalScroll); if(vscroll != null && vscroll.get_hidden() == false) { header.addClass("scrolling"); header.invalidateComponent(null,true); } else { header.removeClass("scrolling"); header.invalidateComponent(null,true); } var usableWidth = this._tableview.get_layout().get_usableWidth(); var rc = new haxe_ui_geom_Rectangle(this._tableview.get_hscrollPos(),1,usableWidth,header.get_height()); header.set_componentClipRect(rc); } ,onRendererCreated: function(e) { var instance = js_Boot.__cast(e.data , haxe_ui_core_ItemRenderer); instance.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRendererMouseDown)); instance.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onRendererClick)); instance.registerEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,$bind(this,this.onRendererClick)); if(this._tableview.get_selectedIndices().indexOf(instance.itemIndex) != -1) { var builder = js_Boot.__cast(this._tableview._compositeBuilder , haxe_ui_containers__$TableView_Builder); builder.addItemRendererClass(instance,":selected"); } } ,onRendererDestroyed: function(e) { var instance = js_Boot.__cast(e.data , haxe_ui_core_ItemRenderer); instance.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onRendererMouseDown)); instance.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onRendererClick)); instance.unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,$bind(this,this.onRendererClick)); if(this._tableview.get_selectedIndices().indexOf(instance.itemIndex) != -1) { var builder = js_Boot.__cast(this._tableview._compositeBuilder , haxe_ui_containers__$TableView_Builder); builder.addItemRendererClass(instance,":selected",false); } } ,onRendererMouseDown: function(e) { this._tableview.set_focus(true); if(this._tableview.get_selectionMode() == "multiple-long-press") { if(this._tableview.get_selectedIndices().length == 0) { this.startLongPressSelection(e); } } } ,startLongPressSelection: function(e) { var _gthis = this; var timerClick = null; var currentMouseX = e.screenX; var currentMouseY = e.screenY; var renderer = js_Boot.__cast(e.target , haxe_ui_core_ItemRenderer); var __onMouseMove = null; var __onMouseUp = null; var __onMouseClick = null; __onMouseMove = function(_e) { currentMouseX = _e.screenX; currentMouseY = _e.screenY; }; __onMouseUp = function(_e) { if(timerClick != null) { timerClick.stop(); timerClick = null; } renderer.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,__onMouseMove); renderer.get_screen().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,__onMouseUp); }; __onMouseClick = function(_e) { _e.cancel(); renderer.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,__onMouseClick); }; renderer.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,__onMouseMove); renderer.get_screen().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,__onMouseUp); timerClick = haxe_Timer.delay(function() { if(timerClick != null) { timerClick = null; var timerClick1; if(renderer.hitTest(currentMouseX,currentMouseY)) { var x1 = e.screenX; var y1 = e.screenY; timerClick1 = Math.sqrt((x1 - currentMouseX) * (x1 - currentMouseX) + (y1 - currentMouseY) * (y1 - currentMouseY)) < 2 * haxe_ui_Toolkit.pixelsPerRem; } else { timerClick1 = false; } if(timerClick1) { _gthis.toggleSelection(renderer); renderer.registerEvent(haxe_ui_events_MouseEvent.CLICK,__onMouseClick,1); } } },this._tableview.get_longPressSelectionTime()); } ,onContainerEventsStatusChanged: function() { haxe_ui_containers_ScrollViewEvents.prototype.onContainerEventsStatusChanged.call(this); if(this._containerEventsPaused == true) { this._tableview.findComponent("tableview-contents",haxe_ui_core_Component,true,"css").removeClass(":hover",true,true); } else { var tmp = this._lastMousePos != null; } } ,onRendererClick: function(e) { if(this._containerEventsPaused == true) { return; } var components = e.target.findComponentsUnderPoint(e.screenX,e.screenY); var _g = 0; while(_g < components.length) { var component = components[_g]; ++_g; if(((component) instanceof haxe_ui_core_InteractiveComponent) && (js_Boot.__cast(component , haxe_ui_core_InteractiveComponent)).get_allowInteraction() == true) { return; } } var renderer = js_Boot.__cast(e.target , haxe_ui_core_ItemRenderer); switch(this._tableview.get_selectionMode()) { case "disabled": break; case "multiple":case "multiple-click-modifier-key":case "multiple-modifier-key": if(e.ctrlKey == true) { this.toggleSelection(renderer); } else if(e.shiftKey == true) { var selectedIndices = this._tableview.get_selectedIndices(); var fromIndex = selectedIndices.length > 0 ? selectedIndices[selectedIndices.length - 1] : 0; var toIndex = renderer.itemIndex; if(fromIndex < toIndex) { var _g = 0; while(_g < selectedIndices.length) { var i = selectedIndices[_g]; ++_g; if(i < fromIndex) { fromIndex = i; } } } else { var tmp = fromIndex; fromIndex = toIndex; toIndex = tmp; } this.selectRange(fromIndex,toIndex); } else if(this._tableview.get_selectionMode() == "multiple" || this._tableview.get_selectionMode() == "multiple-click-modifier-key") { this._tableview.set_selectedIndex(renderer.itemIndex); } break; case "multiple-long-press": var selectedIndices = this._tableview.get_selectedIndices(); if(selectedIndices.length > 0) { this.toggleSelection(renderer); } break; case "one-item": this._tableview.set_selectedIndex(renderer.itemIndex); break; case "one-item-repeated": this._tableview.set_selectedIndices([renderer.itemIndex]); break; default: } } ,toggleSelection: function(renderer) { var itemIndex = renderer.itemIndex; var selectedIndices = this._tableview.get_selectedIndices().slice(); var index = selectedIndices.indexOf(itemIndex); if(index == -1) { selectedIndices.push(itemIndex); } else { selectedIndices.splice(index,1); } this._tableview.set_selectedIndices(selectedIndices); } ,selectRange: function(fromIndex,toIndex) { var tmp = this._tableview; var _g = []; var _g1 = fromIndex; var _g2 = toIndex + 1; while(_g1 < _g2) { var i = _g1++; _g.push(i); } tmp.set_selectedIndices(_g); } ,onActionStart: function(event) { switch(event.action) { case "actionDown": if(this._tableview.get_selectedIndex() < 0) { this._tableview.set_selectedIndex(0); } else { var n = this._tableview.get_selectedIndex(); ++n; if(n > this._tableview.get_dataSource().get_size() - 1) { n = 0; } this._tableview.set_selectedIndex(n); } event.repeater = true; break; case "actionLeft": var fh = this._scrollview; fh.set_hscrollPos(fh.get_hscrollPos() - 10); event.repeater = true; break; case "actionRight": var fh = this._scrollview; fh.set_hscrollPos(fh.get_hscrollPos() + 10); event.repeater = true; break; case "actionUp": if(this._tableview.get_selectedIndex() < 0) { this._tableview.set_selectedIndex(this._tableview.get_dataSource().get_size() - 1); } else { var n = this._tableview.get_selectedIndex(); --n; if(n < 0) { n = this._tableview.set_selectedIndex(this._tableview.get_dataSource().get_size() - 1); } this._tableview.set_selectedIndex(n); } event.repeater = true; break; default: } } ,__class__: haxe_ui_containers__$TableView_Events }); var haxe_ui_containers__$TableView_Builder = function(tableview) { haxe_ui_containers_ScrollViewBuilder.call(this,tableview); this._tableview = tableview; }; $hxClasses["haxe.ui.containers._TableView.Builder"] = haxe_ui_containers__$TableView_Builder; haxe_ui_containers__$TableView_Builder.__name__ = "haxe.ui.containers._TableView.Builder"; haxe_ui_containers__$TableView_Builder.__super__ = haxe_ui_containers_ScrollViewBuilder; haxe_ui_containers__$TableView_Builder.prototype = $extend(haxe_ui_containers_ScrollViewBuilder.prototype,{ _tableview: null ,_header: null ,create: function() { this.createContentContainer(this._tableview.get_virtual() ? "absolute" : "vertical"); } ,onInitialize: function() { if(this._header == null) { return; } if(this._tableview.get_itemRenderer() == null) { this.buildDefaultRenderer(); } else { this.fillExistingRenderer(); } } ,onReady: function() { if(this._header == null) { return; } if(this._tableview.get_itemRenderer() == null) { this.buildDefaultRenderer(); } else { this.fillExistingRenderer(); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,createContentContainer: function(layoutName) { if(this._contents == null) { haxe_ui_containers_ScrollViewBuilder.prototype.createContentContainer.call(this,layoutName); this._contents.addClass("tableview-contents"); } } ,addComponent: function(child) { var r = null; if(((child) instanceof haxe_ui_core_ItemRenderer)) { var itemRenderer = this._tableview.get_itemRenderer(); if(itemRenderer == null) { itemRenderer = new haxe_ui_containers__$TableView_CompoundItemRenderer(); this._tableview.set_itemRenderer(itemRenderer); } itemRenderer.addComponent(child); return child; } else if(((child) instanceof haxe_ui_containers_Header)) { this._header = js_Boot.__cast(child , haxe_ui_containers_Header); this._header.registerEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onColumnAdded)); this._header.registerEvent(haxe_ui_events_SortEvent.SORT_CHANGED,$bind(this,this.onSortChanged)); this._header.registerEvent(haxe_ui_events_UIEvent.READY,$bind(this,this.onHeaderReady)); if(this._header.get_hidden()) { this._header.get_customStyle().height = 0; this._header.show(); } r = null; } else { r = haxe_ui_containers_ScrollViewBuilder.prototype.addComponent.call(this,child); } return r; } ,onColumnAdded: function(e) { if(this._tableview.get_itemRenderer() == null) { this.buildDefaultRenderer(); } else { this.fillExistingRenderer(); } var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } ,onSortChanged: function(e) { this._tableview.dispatch(e); if(e.canceled == false) { var column = js_Boot.__cast(e.target , haxe_ui_components_Column); var field = column.get_id(); if(column.sortField != null) { field = column.sortField; } this._tableview.get_dataSource().sort(field,e.direction); } } ,onHeaderReady: function(_) { if(this._tableview.get_itemRenderer() == null) { this.buildDefaultRenderer(); } else { this.fillExistingRenderer(); } } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(((child) instanceof haxe_ui_containers_Header) == true) { this._header = null; return null; } return haxe_ui_containers_ScrollViewBuilder.prototype.removeComponent.call(this,child,dispose,invalidate); } ,createRenderer: function(column) { var itemRenderer = null; if(this._tableview.get_itemRendererClass() == null) { itemRenderer = new haxe_ui_core_ItemRenderer(); } else { itemRenderer = Type.createInstance(this._tableview.get_itemRendererClass(),[]); } if((itemRenderer._children == null ? [] : itemRenderer._children).length == 0) { var label = new haxe_ui_components_Label(); label.set_id(column.get_id()); label.set_percentWidth(100); label.set_verticalAlign("center"); if(column.get_styleString() != null) { label.set_styleString(column.get_styleString()); } itemRenderer.addComponent(label); } itemRenderer.set_styleNames("column-" + column.get_id()); return itemRenderer; } ,buildDefaultRenderer: function() { var r = new haxe_ui_containers__$TableView_CompoundItemRenderer(); if(this._header != null) { var _g = 0; var _g1 = this._header.findComponents(null,haxe_ui_components_Column); while(_g < _g1.length) { var column = _g1[_g]; ++_g; if(column.get_id() == null) { continue; } var itemRenderer = this.createRenderer(column); if(itemRenderer.get_id() == null) { itemRenderer.set_id(column.get_id() + "Renderer"); } r.addComponent(itemRenderer); } } this._tableview.set_itemRenderer(r); } ,fillExistingRenderer: function() { var i = 0; var _g = 0; var _g1 = this._header.findComponents(null,haxe_ui_components_Column); while(_g < _g1.length) { var column = _g1[_g]; ++_g; if(column.get_id() == null) { continue; } var existing = this._tableview.get_itemRenderer().findComponent(column.get_id(),haxe_ui_core_ItemRenderer,true); if(existing == null) { var temp = this._tableview.get_itemRenderer().findComponent(column.get_id(),haxe_ui_core_Component,true); if(temp != null) { if(((temp) instanceof haxe_ui_core_ItemRenderer)) { existing = js_Boot.__cast(temp , haxe_ui_core_ItemRenderer); } else { existing = temp.findAncestor(null,haxe_ui_core_ItemRenderer); } existing.set_styleNames("column-" + column.get_id()); this._tableview.get_itemRenderer().setComponentIndex(existing,i); } else { var itemRenderer = this.createRenderer(column); itemRenderer.set_styleNames("column-" + column.get_id()); this._tableview.get_itemRenderer().addComponentAt(itemRenderer,i); } } else { existing.set_styleNames("column-" + column.get_id()); this._tableview.get_itemRenderer().setComponentIndex(existing,i); } ++i; } } ,verticalConstraintModifier: function() { if(this._header == null) { return 0; } return this._header.get_height(); } ,onVirtualChanged: function() { this._contents.set_layoutName(this._tableview.get_virtual() ? "absolute" : "vertical"); } ,get_virtualHorizontal: function() { return false; } ,addItemRendererClass: function(child,className,add) { if(add == null) { add = true; } child.walkComponents(function(c) { if(((c) instanceof haxe_ui_core_ItemRenderer)) { if(add == true) { c.addClass(className); } else { c.removeClass(className); } } else { c.invalidateComponent("style",false); } return true; }); } ,ensureVisible: function(itemToEnsure) { if(itemToEnsure != null && this._tableview.get_virtual() == false) { var vscroll = this._tableview.findComponent(null,haxe_ui_components_VerticalScroll); if(vscroll != null) { var vpos = vscroll.get_pos(); var contents = this._tableview.findComponent("tableview-contents",null,null,"css"); if(itemToEnsure.get_top() + itemToEnsure.get_height() > vpos + contents.get_componentClipRect().height) { vscroll.set_pos(itemToEnsure.get_top() + itemToEnsure.get_height() - contents.get_componentClipRect().height); } else if(itemToEnsure.get_top() < vpos) { vscroll.set_pos(itemToEnsure.get_top()); } } } } ,ensureVirtualItemVisible: function(index) { var vscroll = this._tableview.findComponent(null,haxe_ui_components_VerticalScroll); if(vscroll != null) { var layout = js_Boot.__cast(this._tableview.get_layout() , haxe_ui_layouts_VerticalVirtualLayout); var itemHeight = layout.get_itemHeight(); var itemTop = index * itemHeight; var vpos = vscroll.get_pos(); var contents = this._tableview.findComponent("tableview-contents",null,null,"css"); if(itemTop + itemHeight > vpos + contents.get_componentClipRect().height) { vscroll.set_pos(itemTop + itemHeight - contents.get_componentClipRect().height); } else if(itemTop < vpos) { vscroll.set_pos(itemTop); } } } ,__class__: haxe_ui_containers__$TableView_Builder }); var haxe_ui_layouts_ScrollViewLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.layouts.ScrollViewLayout"] = haxe_ui_layouts_ScrollViewLayout; haxe_ui_layouts_ScrollViewLayout.__name__ = "haxe.ui.layouts.ScrollViewLayout"; haxe_ui_layouts_ScrollViewLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_layouts_ScrollViewLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { this.repositionChild(this.get_component().findComponent("empty-contents-component",null,false,"css")); var contents = this.get_component().findComponent("scrollview-contents",null,false,"css"); if(contents == null) { return; } var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); var borderSize = this.get_borderSize(); if(hscroll != null && this.hidden(hscroll) == false) { var offset = 0; if(this._component.get_isHybridScroller()) { offset = borderSize; } var xpos = this.get_paddingLeft() + borderSize - offset; var ypos = this.get_component().get_componentHeight() - hscroll.get_componentHeight() - this.get_paddingBottom() + this.marginTop(hscroll) - borderSize - offset; hscroll.moveComponent(xpos,Math.round(ypos)); } if(vscroll != null && this.hidden(vscroll) == false) { var offset = 0; if(this._component.get_isHybridScroller()) { offset = borderSize; } var xpos = this.get_component().get_componentWidth() - vscroll.get_componentWidth() - this.get_paddingRight() + this.marginLeft(vscroll) - borderSize - offset; var ypos = this.get_paddingTop() + borderSize - offset; vscroll.moveComponent(Math.round(xpos),ypos); } var contents = this.get_component().findComponent("scrollview-contents",null,false,"css"); if(contents != null) { contents.moveComponent(this.get_paddingLeft() + borderSize,this.get_paddingTop() + borderSize); } } ,resizeChildren: function() { haxe_ui_layouts_DefaultLayout.prototype.resizeChildren.call(this); var scrollview = js_Boot.__cast(this._component , haxe_ui_containers_ScrollView); var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); var usableSize = this.get_usableSize(); var percentWidth = 100; var percentHeight = 100; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child != hscroll && child != vscroll) { continue; } var cx = null; var cy = null; if(child.get_percentWidth() != null) { cx = usableSize.width * child.get_percentWidth() / percentWidth - this.marginLeft(child) - this.marginRight(child); } if(child.get_percentHeight() != null) { cy = usableSize.height * child.get_percentHeight() / percentHeight - this.marginTop(child) - this.marginBottom(child); } if(this.fixedMinWidth(child) && child.get_percentWidth() != null) { percentWidth -= child.get_percentWidth(); } if(this.fixedMinHeight(child) && child.get_percentHeight() != null) { percentHeight -= child.get_percentHeight(); } if(scrollview.get_autoHideScrolls() == true) { if(child == hscroll && vscroll != null && vscroll.get_hidden() == false) { cx -= vscroll.get_width(); } else if(child == vscroll && hscroll != null && hscroll.get_hidden() == false) { cy -= hscroll.get_height(); } } child.resizeComponent(cx,cy); } } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); if(hscroll != null && hscroll.get_includeInLayout() == true && this.hidden(hscroll) == false) { size.height -= hscroll.get_componentHeight() - this.marginTop(hscroll); } if(vscroll != null && vscroll.get_includeInLayout() == true && this.hidden(vscroll) == false) { size.width -= vscroll.get_componentWidth() - this.marginLeft(vscroll); } if((js_Boot.__cast(this.get_component() , haxe_ui_containers_ScrollView)).get_native() == true || this._component.get_isNativeScroller() == true) { var contents = this.get_component().findComponent("scrollview-contents",null,false,"css"); if(contents != null) { if(contents.get_componentWidth() > size.width) { size.height -= haxe_ui_core_Platform.get_hscrollHeight(); } if(contents.get_componentHeight() > size.height) { size.width -= haxe_ui_core_Platform.get_vscrollWidth(); } } } var borderSize = this.get_borderSize(); size.width -= borderSize * 2; size.height -= borderSize * 2; return size; } ,calcAutoSize: function(exclusions) { var hscroll = this.get_component().findComponent(null,haxe_ui_components_HorizontalScroll,false); var vscroll = this.get_component().findComponent(null,haxe_ui_components_VerticalScroll,false); var size = haxe_ui_layouts_DefaultLayout.prototype.calcAutoSize.call(this,[hscroll,vscroll]); if(hscroll != null && hscroll.get_hidden() == false) { size.height += hscroll.get_componentHeight(); } if(vscroll != null && vscroll.get_hidden() == false) { size.width += vscroll.get_componentWidth(); } if((js_Boot.__cast(this.get_component() , haxe_ui_containers_ScrollView)).get_native() == true || this._component.get_isNativeScroller() == true) { var contents = this.get_component().findComponent("scrollview-contents",null,false,"css"); if(contents != null) { if(contents.get_width() > this.get_component().get_width()) { size.height += haxe_ui_core_Platform.get_hscrollHeight(); } if(contents.get_height() > this.get_component().get_height()) { size.width += haxe_ui_core_Platform.get_vscrollWidth(); } } } size.width += this.get_borderSize() * 2; size.height += this.get_borderSize() * 2; return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_ScrollViewLayout(); } ,__class__: haxe_ui_layouts_ScrollViewLayout }); var haxe_ui_layouts_VirtualLayout = function() { this._lastItemRenderer = null; this._firstPass = true; this._sizeCache = []; this._rendererPool = []; this._lastIndex = -1; this._firstIndex = -1; haxe_ui_layouts_ScrollViewLayout.call(this); }; $hxClasses["haxe.ui.layouts.VirtualLayout"] = haxe_ui_layouts_VirtualLayout; haxe_ui_layouts_VirtualLayout.__name__ = "haxe.ui.layouts.VirtualLayout"; haxe_ui_layouts_VirtualLayout.__super__ = haxe_ui_layouts_ScrollViewLayout; haxe_ui_layouts_VirtualLayout.prototype = $extend(haxe_ui_layouts_ScrollViewLayout.prototype,{ _firstIndex: null ,_lastIndex: null ,_rendererPool: null ,_sizeCache: null ,contents: null ,get_contents: function() { if(this.contents == null) { this.contents = this.findComponent("scrollview-contents",null,false,"css"); } return this.contents; } ,get_dataSource: function() { return (js_Boot.__cast(this._component , haxe_ui_core_IDataComponent)).get_dataSource(); } ,itemWidth: null ,get_itemWidth: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemWidth() > 0) { return comp.get_itemWidth(); } var _this = this.get_contents(); var childComponents = _this._children == null ? [] : _this._children; var result = 0; if(childComponents.length > 0) { result = childComponents[0].get_width(); if(result <= 0) { childComponents[0].syncComponentValidation(); result = childComponents[0].get_width(); } } if(result > 0) { comp.set_itemWidth(result); } else { result = 1; } return result; } ,_firstPass: null ,itemHeight: null ,get_itemHeight: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemHeight() > 0) { return comp.get_itemHeight(); } var _this = this.get_contents(); var childComponents = _this._children == null ? [] : _this._children; var result = 0; if(childComponents.length > 0) { result = childComponents[0].get_height(); if(result <= 0) { childComponents[0].syncComponentValidation(); result = childComponents[0].get_height(); } } if(result <= 0) { result = 25; } else if(comp.get_virtual() == true) { if(this._firstPass == false) { comp.set_itemHeight(result); } if(this._firstPass == true) { this._firstPass = false; } } return result; } ,itemCount: null ,get_itemCount: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemCount() >= 0) { return comp.get_itemCount(); } else { return 0; } } ,refresh: function() { this.refreshData(); haxe_ui_layouts_ScrollViewLayout.prototype.refresh.call(this); } ,refreshData: function() { if(this.get_dataSource() == null) { return; } var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_virtual() == false) { this.refreshNonVirtualData(); } else { this.refreshVirtualData(); } } ,_lastItemRenderer: null ,refreshNonVirtualData: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemRenderer() != this._lastItemRenderer) { this._lastItemRenderer = comp.get_itemRenderer(); this.get_contents().removeAllComponents(); } var dataSource = this.get_dataSource(); var contents = this.get_contents(); var _g = 0; var _g1 = dataSource.get_size(); while(_g < _g1) { var n = _g++; var data = dataSource.get(n); var item = null; if(n < (contents._children == null ? [] : contents._children).length) { item = js_Boot.__cast((contents._children == null ? [] : contents._children)[n] , haxe_ui_core_ItemRenderer); if(item.get_data() == data) { item.invalidateComponent("data",false); continue; } var cls = this.itemClass(n,data); if(!js_Boot.__instanceof(item,cls)) { this.removeRenderer(item); item = this.getRenderer(cls,n); contents.addComponentAt(item,n); } } else { var cls1 = this.itemClass(n,data); item = this.getRenderer(cls1,n); contents.addComponent(item); } var className = n % 2 == 0 ? "even" : "odd"; if(item.classes.indexOf(className) == -1) { var inverseClassName = n % 2 == 0 ? "odd" : "even"; item.removeClass(inverseClassName); item.addClass(className); } item.itemIndex = n; item.set_data(data); } while(dataSource.get_size() < (contents._children == null ? [] : contents._children).length) { var item = js_Boot.__cast((contents._children == null ? [] : contents._children)[(contents._children == null ? [] : contents._children).length - 1] , haxe_ui_core_ItemRenderer); this.removeRenderer(item); } } ,refreshVirtualData: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemRenderer() != this._lastItemRenderer) { this._lastItemRenderer = comp.get_itemRenderer(); this.get_contents().removeAllComponents(); this._rendererPool = []; } this.removeInvisibleRenderers(); this.calculateRangeVisible(); this.updateScroll(); var dataSource = this.get_dataSource(); var i = 0; var _g = this._firstIndex; var _g1 = this._lastIndex; while(_g < _g1) { var n = _g++; var data = dataSource.get(n); var item = null; var cls = this.itemClass(n,data); var _this = this.get_contents(); if((_this._children == null ? [] : _this._children).length <= i) { item = this.getRenderer(cls,n); this.get_contents().addComponent(item); } else { var _this1 = this.get_contents(); item = js_Boot.__cast((_this1._children == null ? [] : _this1._children)[i] , haxe_ui_core_ItemRenderer); if(!js_Boot.__instanceof(item,cls)) { item = this.getRenderer(cls,n); this.get_contents().addComponentAt(item,i); } else if(item.itemIndex != n) { if(this._component.hasEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED)) { this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED,null,item)); } this._component.setComponentIndex(item,i); item.itemIndex = n; if(this._component.hasEvent(haxe_ui_events_UIEvent.RENDERER_CREATED)) { this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.RENDERER_CREATED,null,item)); } } } var className = n % 2 == 0 ? "even" : "odd"; if(item.classes.indexOf(className) == -1) { var inverseClassName = n % 2 == 0 ? "odd" : "even"; item.removeClass(inverseClassName); item.addClass(className); } item.set_data(data); ++i; } while(true) { var _this = this.get_contents(); if(!((_this._children == null ? [] : _this._children).length > i)) { break; } var _this1 = this.get_contents(); var tmp = _this1._children == null ? [] : _this1._children; var _this2 = this.get_contents(); this.removeRenderer(js_Boot.__cast(tmp[(_this2._children == null ? [] : _this2._children).length - 1] , haxe_ui_core_ItemRenderer),false); } } ,calculateRangeVisible: function() { } ,updateScroll: function() { } ,itemClass: function(index,data) { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemRendererClass() != null) { return comp.get_itemRendererClass(); } else if(comp.get_itemRenderer() != null) { return js_Boot.getClass(comp.get_itemRenderer()); } else { return haxe_ui_core_BasicItemRenderer; } } ,getRenderer: function(cls,index) { var instance = null; var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_virtual() == true) { var _g = 0; var _g1 = this._rendererPool.length; while(_g < _g1) { var i = _g++; var renderer = this._rendererPool[i]; if(js_Boot.__instanceof(renderer,cls)) { this._rendererPool.splice(i,1); instance = renderer; break; } } } if(instance == null) { if(comp.get_itemRenderer() != null && js_Boot.getClass(comp.get_itemRenderer()) == cls) { instance = comp.get_itemRenderer().cloneComponent(); instance.handleVisibility(true); } else { instance = Type.createInstance(cls,[]); } } instance.itemIndex = index; if(this._component.hasEvent(haxe_ui_events_UIEvent.RENDERER_CREATED)) { this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.RENDERER_CREATED,null,instance)); } if(this._component.get_hidden() == false) { instance.handleVisibility(true); } return js_Boot.__cast(instance , haxe_ui_core_ItemRenderer); } ,removeRenderer: function(renderer,dispose) { if(dispose == null) { dispose = true; } this._component.removeComponent(renderer,dispose); var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_virtual() == true) { this._rendererPool.push(js_Boot.__cast(renderer , haxe_ui_core_ItemRenderer)); } if(this._component.hasEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED)) { this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.RENDERER_DESTROYED,null,renderer)); } renderer.itemIndex = -1; } ,removeInvisibleRenderers: function() { var contents = this.get_contents(); if(this._firstIndex >= 0) { while((contents._children == null ? [] : contents._children).length > 0 && !this.isRendererVisible((contents._children == null ? [] : contents._children)[0])) { this.removeRenderer(js_Boot.__cast((contents._children == null ? [] : contents._children)[0] , haxe_ui_core_ItemRenderer),false); ++this._firstIndex; } } if(this._lastIndex >= 0) { while((contents._children == null ? [] : contents._children).length > 0 && !this.isRendererVisible((contents._children == null ? [] : contents._children)[(contents._children == null ? [] : contents._children).length - 1])) { this.removeRenderer(js_Boot.__cast((contents._children == null ? [] : contents._children)[(contents._children == null ? [] : contents._children).length - 1] , haxe_ui_core_ItemRenderer),false); --this._lastIndex; } } } ,isRendererVisible: function(renderer) { if(renderer == null) { return false; } if(renderer.get_top() < this._component.get_componentHeight() && renderer.get_top() + renderer.get_componentHeight() >= 0 && renderer.get_left() < this._component.get_componentWidth()) { return renderer.get_left() + renderer.get_componentWidth() >= 0; } else { return false; } } ,isIndexVisible: function(index) { if(index >= this._firstIndex) { return index <= this._lastIndex; } else { return false; } } ,cloneLayout: function() { var c = haxe_ui_layouts_ScrollViewLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_VirtualLayout(); } ,__class__: haxe_ui_layouts_VirtualLayout ,__properties__: $extend(haxe_ui_layouts_ScrollViewLayout.prototype.__properties__,{get_itemCount:"get_itemCount",get_itemHeight:"get_itemHeight",get_itemWidth:"get_itemWidth",get_dataSource:"get_dataSource",get_contents:"get_contents"}) }); var haxe_ui_layouts_VerticalVirtualLayout = function() { haxe_ui_layouts_VirtualLayout.call(this); }; $hxClasses["haxe.ui.layouts.VerticalVirtualLayout"] = haxe_ui_layouts_VerticalVirtualLayout; haxe_ui_layouts_VerticalVirtualLayout.__name__ = "haxe.ui.layouts.VerticalVirtualLayout"; haxe_ui_layouts_VerticalVirtualLayout.__super__ = haxe_ui_layouts_VirtualLayout; haxe_ui_layouts_VerticalVirtualLayout.prototype = $extend(haxe_ui_layouts_VirtualLayout.prototype,{ repositionChildren: function() { haxe_ui_layouts_VirtualLayout.prototype.repositionChildren.call(this); var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); var itemHeight = this.get_itemHeight(); var contents = this.get_contents(); var verticalSpacing = contents.get_layout().get_verticalSpacing(); if(comp.get_virtual() == true) { var n = this._firstIndex; if(comp.get_variableItemSize() == true) { var pos = -comp.get_vscrollPos(); var _g = 0; var _g1 = this._lastIndex; while(_g < _g1) { var i = _g++; if(i >= this._firstIndex) { var c = contents.getComponentAt(i - this._firstIndex); c.set_top(pos); } var size = this._sizeCache[i]; pos += (size != null && size != 0 ? size : itemHeight) + verticalSpacing; } } else { var _g = 0; var _g1 = contents._children == null ? [] : contents._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.set_top(n * (itemHeight + verticalSpacing) - comp.get_vscrollPos()); ++n; } } } } ,verticalConstraintModifier: function() { return 0; } ,calculateRangeVisible: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); var verticalSpacing = this.get_contents().get_layout().get_verticalSpacing(); var itemHeight = this.get_itemHeight(); var visibleItemsCount = 0; var contentsHeight = 0; if(this.get_contents().get_autoHeight() == true) { var itemCount = this.get_itemCount(); if(itemCount > 0 || this._component.get_autoHeight() == true) { contentsHeight = itemCount * itemHeight - this.verticalConstraintModifier(); } else { contentsHeight = this._component.get_height() - this.verticalConstraintModifier(); } } else { contentsHeight = this.get_contents().get_height() - this.verticalConstraintModifier(); } if(contentsHeight > this._component.get_height() - this.verticalConstraintModifier()) { contentsHeight = this._component.get_height() - this.verticalConstraintModifier(); } if(comp.get_variableItemSize() == true) { var totalSize = 0; var requireInvalidation = false; var newFirstIndex = -1; var _g = 0; var _g1 = this.get_dataSource().get_size(); while(_g < _g1) { var i = _g++; var size = this._sizeCache[i]; if(size == null || size == 0) { if(i >= this._firstIndex && i <= this._lastIndex) { var c = this.get_contents().getComponentAt(i - this._firstIndex); if(c != null && c.get_componentHeight() > 0) { this._sizeCache[i] = c.get_componentHeight(); size = c.get_componentHeight(); } else { requireInvalidation = true; size = itemHeight; } } else { requireInvalidation = true; size = itemHeight; } } size += verticalSpacing; if(newFirstIndex == -1) { if(totalSize + size > comp.get_vscrollPos()) { newFirstIndex = i; totalSize += size - comp.get_vscrollPos(); ++visibleItemsCount; } else { totalSize += size; } } else if(totalSize + size > contentsHeight) { break; } else { ++visibleItemsCount; totalSize += size; } } if(requireInvalidation == true) { var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } this._firstIndex = newFirstIndex; } else { visibleItemsCount = Math.ceil(contentsHeight / (itemHeight + verticalSpacing)); this._firstIndex = comp.get_vscrollPos() / (itemHeight + verticalSpacing) | 0; } if(this._firstIndex < 0) { this._firstIndex = 0; } var rc = new haxe_ui_geom_Rectangle(0,0,this.get_contents().get_width(),contentsHeight - (this.get_paddingTop() + this.get_paddingBottom()) - this.get_borderSize() * 2); this.get_contents().set_componentClipRect(rc); this._lastIndex = this._firstIndex + visibleItemsCount + 1; if(this._lastIndex > this.get_dataSource().get_size()) { this._lastIndex = this.get_dataSource().get_size(); } } ,updateScroll: function() { var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); var usableSize = this.get_usableSize(); var dataSize = this.get_dataSource().get_size(); var verticalSpacing = this.get_contents().get_layout().get_verticalSpacing(); var scrollMax = 0; var itemHeight = this.get_itemHeight(); if(comp.get_variableItemSize() == true) { scrollMax = -usableSize.height; var _g = 0; var _g1 = this.get_dataSource().get_size(); while(_g < _g1) { var i = _g++; var size = this._sizeCache[i]; if(size == null || size == 0) { size = itemHeight; } scrollMax += size + verticalSpacing + this.verticalConstraintModifier(); } } else { scrollMax = dataSize * itemHeight + (dataSize - 1) * verticalSpacing - usableSize.height + this.verticalConstraintModifier(); } if(scrollMax < 0) { scrollMax = 0; } comp.set_vscrollMax(scrollMax); comp.set_vscrollPageSize(usableSize.height / (scrollMax + usableSize.height) * scrollMax); } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_VirtualLayout.prototype.calcAutoSize.call(this,exclusions); var comp = js_Boot.__cast(this._component , haxe_ui_containers_IVirtualContainer); if(comp.get_itemCount() > 0 && this._component.get_autoHeight() == true) { var contents = this._component.findComponent("scrollview-contents",null,false); var contentsPadding = 0; if(contents != null) { var layout = contents.get_layout(); if(layout != null) { contentsPadding = layout.get_paddingTop() + layout.get_paddingBottom(); } } size.height = this.get_itemHeight() * comp.get_itemCount() + this.get_paddingTop() + this.get_paddingBottom() + contentsPadding + this.get_borderSize() * 2; } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_VirtualLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_VerticalVirtualLayout(); } ,__class__: haxe_ui_layouts_VerticalVirtualLayout }); var haxe_ui_containers__$TableView_Layout = function() { haxe_ui_layouts_VerticalVirtualLayout.call(this); }; $hxClasses["haxe.ui.containers._TableView.Layout"] = haxe_ui_containers__$TableView_Layout; haxe_ui_containers__$TableView_Layout.__name__ = "haxe.ui.containers._TableView.Layout"; haxe_ui_containers__$TableView_Layout.__super__ = haxe_ui_layouts_VerticalVirtualLayout; haxe_ui_containers__$TableView_Layout.prototype = $extend(haxe_ui_layouts_VerticalVirtualLayout.prototype,{ itemClass: function(index,data) { return haxe_ui_containers__$TableView_CompoundItemRenderer; } ,repositionChildren: function() { var header = this.findComponent(null,haxe_ui_containers_Header,true); if(header == null) { return; } haxe_ui_layouts_VerticalVirtualLayout.prototype.repositionChildren.call(this); header.set_left(this.get_paddingLeft() + this.get_borderSize()); header.set_top(this.get_paddingTop() + this.get_borderSize()); var vscroll = this._component.findComponent(null,haxe_ui_components_VerticalScroll); if(vscroll != null && vscroll.get_hidden() == false) { header.addClass("scrolling"); header.invalidateComponent(null,true); } else { header.removeClass("scrolling"); header.invalidateComponent(null,true); } var rc = new haxe_ui_geom_Rectangle((js_Boot.__cast(this._component , haxe_ui_containers_ScrollView)).get_hscrollPos(),1,this.get_usableWidth(),header.get_height()); header.set_componentClipRect(rc); var data = this.findComponent("tableview-contents",haxe_ui_containers_Box,true,"css"); if(data != null) { var _g = 0; var _g1 = data._children == null ? [] : data._children; while(_g < _g1.length) { var item = _g1[_g]; ++_g; var headerChildComponents = header.findComponents(null,haxe_ui_components_Column); var _g2 = 0; while(_g2 < headerChildComponents.length) { var column = headerChildComponents[_g2]; ++_g2; if(column.get_id() == null) { continue; } var isLast = headerChildComponents.indexOf(column) == headerChildComponents.length - 1; var itemRenderer = item.findComponent(column.get_id(),haxe_ui_core_Component); if(itemRenderer != null && ((itemRenderer) instanceof haxe_ui_core_ItemRenderer) == false) { itemRenderer = itemRenderer.findAncestor(null,haxe_ui_core_ItemRenderer); } if(itemRenderer != null) { itemRenderer.set_percentWidth(null); if(isLast == false) { itemRenderer.set_width(column.get_width() - item.get_layout().get_horizontalSpacing()); } else { itemRenderer.set_width(column.get_width()); } } } } var modifier = 0; if(header.get_height() > 0) { modifier = 1; } data.set_left(this.get_paddingLeft() + this.get_borderSize()); data.set_top(header.get_top() + header.get_height() - modifier); data.set_componentWidth(header.get_width()); } } ,resizeChildren: function() { var header = this.findComponent(null,haxe_ui_containers_Header,true); if(header == null) { return; } haxe_ui_layouts_VerticalVirtualLayout.prototype.resizeChildren.call(this); } ,verticalConstraintModifier: function() { var header = this.findComponent(null,haxe_ui_containers_Header,true); if(header == null) { return 0; } return header.get_height(); } ,calcAutoSize: function(exclusions) { var size = haxe_ui_layouts_VerticalVirtualLayout.prototype.calcAutoSize.call(this); size.height += 1; return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_VerticalVirtualLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers__$TableView_Layout(); } ,__class__: haxe_ui_containers__$TableView_Layout }); var haxe_ui_containers__$TableView_DataSourceBehaviour = function(component) { this._firstPass = true; haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.DataSourceBehaviour"] = haxe_ui_containers__$TableView_DataSourceBehaviour; haxe_ui_containers__$TableView_DataSourceBehaviour.__name__ = "haxe.ui.containers._TableView.DataSourceBehaviour"; haxe_ui_containers__$TableView_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TableView_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _firstPass: null ,set: function(value) { var _gthis = this; haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); var dataSource = haxe_ui_util_Variant.toDataSource(this._value); if(dataSource != null) { if(dataSource.transformer == null) { dataSource.transformer = new haxe_ui_data_transformation_NativeTypeTransformer(); } dataSource.onDataSourceChange = function() { var _this = _gthis._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } if(_gthis._firstPass == true) { _gthis._firstPass = false; var _this = _gthis._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } }; var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } else { var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } } ,get: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { this._value = haxe_ui_util_Variant.fromDataSource(new haxe_ui_data_ArrayDataSource()); this.set(this._value); } return this._value; } ,__class__: haxe_ui_containers__$TableView_DataSourceBehaviour }); var haxe_ui_containers__$TableView_SelectedIndexBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.SelectedIndexBehaviour"] = haxe_ui_containers__$TableView_SelectedIndexBehaviour; haxe_ui_containers__$TableView_SelectedIndexBehaviour.__name__ = "haxe.ui.containers._TableView.SelectedIndexBehaviour"; haxe_ui_containers__$TableView_SelectedIndexBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TableView_SelectedIndexBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var selectedIndices = tableView.get_selectedIndices(); if(selectedIndices != null && selectedIndices.length > 0) { return haxe_ui_util_Variant.fromInt(selectedIndices[selectedIndices.length - 1]); } else { return haxe_ui_util_Variant.fromInt(-1); } } ,set: function(value) { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); tableView.set_selectedIndices(haxe_ui_util_Variant.neq(value,haxe_ui_util_Variant.fromInt(-1)) ? [haxe_ui_util_Variant.toInt(value)] : null); } ,__class__: haxe_ui_containers__$TableView_SelectedIndexBehaviour }); var haxe_ui_containers__$TableView_SelectedItemBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.SelectedItemBehaviour"] = haxe_ui_containers__$TableView_SelectedItemBehaviour; haxe_ui_containers__$TableView_SelectedItemBehaviour.__name__ = "haxe.ui.containers._TableView.SelectedItemBehaviour"; haxe_ui_containers__$TableView_SelectedItemBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TableView_SelectedItemBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ getDynamic: function() { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var selectedIndices = tableView.get_selectedIndices(); if(selectedIndices.length > 0) { return tableView.get_dataSource().get(selectedIndices[selectedIndices.length - 1]); } else { return null; } } ,set: function(value) { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var index = tableView.get_dataSource().indexOf(value); if(index != -1 && tableView.get_selectedIndices().indexOf(index) == -1) { tableView.set_selectedIndices([index]); } } ,__class__: haxe_ui_containers__$TableView_SelectedItemBehaviour }); var haxe_ui_containers__$TableView_SelectedIndicesBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.SelectedIndicesBehaviour"] = haxe_ui_containers__$TableView_SelectedIndicesBehaviour; haxe_ui_containers__$TableView_SelectedIndicesBehaviour.__name__ = "haxe.ui.containers._TableView.SelectedIndicesBehaviour"; haxe_ui_containers__$TableView_SelectedIndicesBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TableView_SelectedIndicesBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ get: function() { if(haxe_ui_util_Variant.get_isNull(this._value)) { return haxe_ui_util_Variant.fromArray([]); } else { return this._value; } } ,validateData: function() { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var selectedIndices = tableView.get_selectedIndices(); var contents = this._component.findComponent("scrollview-contents",null,false,"css"); var itemToEnsure = null; var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TableView_Builder); var _g = 0; var _g1 = contents._children == null ? [] : contents._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(selectedIndices.indexOf((js_Boot.__cast(child , haxe_ui_core_ItemRenderer)).itemIndex) != -1) { itemToEnsure = js_Boot.__cast(child , haxe_ui_core_ItemRenderer); builder.addItemRendererClass(child,":selected"); } else { builder.addItemRendererClass(child,":selected",false); } } if(tableView.get_virtual()) { var _g = 0; while(_g < selectedIndices.length) { var i = selectedIndices[_g]; ++_g; builder.ensureVirtualItemVisible(i); } } else { builder.ensureVisible(itemToEnsure); } if(tableView.get_selectedIndex() != -1 && tableView.get_selectedIndices().length != 0) { this._component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE)); } } ,__class__: haxe_ui_containers__$TableView_SelectedIndicesBehaviour }); var haxe_ui_containers__$TableView_SelectedItemsBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.SelectedItemsBehaviour"] = haxe_ui_containers__$TableView_SelectedItemsBehaviour; haxe_ui_containers__$TableView_SelectedItemsBehaviour.__name__ = "haxe.ui.containers._TableView.SelectedItemsBehaviour"; haxe_ui_containers__$TableView_SelectedItemsBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TableView_SelectedItemsBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var selectedIndices = tableView.get_selectedIndices(); if(selectedIndices != null && selectedIndices.length > 0) { var selectedItems = []; var _g = 0; while(_g < selectedIndices.length) { var i = selectedIndices[_g]; ++_g; if(i < 0 || i >= tableView.get_dataSource().get_size()) { continue; } var data = tableView.get_dataSource().get(i); selectedItems.push(data); } return haxe_ui_util_Variant.fromArray(selectedItems); } else { return haxe_ui_util_Variant.fromArray([]); } } ,set: function(value) { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var selectedItems = haxe_ui_util_Variant.toArray(value); if(selectedItems != null && selectedItems.length > 0) { var selectedIndices = []; var index; var _g = 0; while(_g < selectedItems.length) { var item = selectedItems[_g]; ++_g; index = tableView.get_dataSource().indexOf(item); if(index != -1) { selectedIndices.push(index); } } tableView.set_selectedIndices(selectedIndices); } else { tableView.set_selectedIndices([]); } } ,__class__: haxe_ui_containers__$TableView_SelectedItemsBehaviour }); var haxe_ui_containers__$TableView_SelectionModeBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.SelectionModeBehaviour"] = haxe_ui_containers__$TableView_SelectionModeBehaviour; haxe_ui_containers__$TableView_SelectionModeBehaviour.__name__ = "haxe.ui.containers._TableView.SelectionModeBehaviour"; haxe_ui_containers__$TableView_SelectionModeBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TableView_SelectionModeBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var tableView = js_Boot.__cast(this._component , haxe_ui_containers_TableView); var selectedIndices = tableView.get_selectedIndices(); if(selectedIndices.length == 0) { return; } var selectionMode = this._value; switch(selectionMode) { case "disabled": tableView.set_selectedIndices(null); break; case "one-item": if(selectedIndices.length > 1) { tableView.set_selectedIndices([selectedIndices[0]]); } break; default: } } ,__class__: haxe_ui_containers__$TableView_SelectionModeBehaviour }); var haxe_ui_containers__$TableView_GetHeader = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.GetHeader"] = haxe_ui_containers__$TableView_GetHeader; haxe_ui_containers__$TableView_GetHeader.__name__ = "haxe.ui.containers._TableView.GetHeader"; haxe_ui_containers__$TableView_GetHeader.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers__$TableView_GetHeader.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ get: function() { var header = this._component.findComponent(null,haxe_ui_containers_Header); return haxe_ui_util_Variant.fromComponent(header); } ,__class__: haxe_ui_containers__$TableView_GetHeader }); var haxe_ui_containers__$TableView_ClearTable = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.ClearTable"] = haxe_ui_containers__$TableView_ClearTable; haxe_ui_containers__$TableView_ClearTable.__name__ = "haxe.ui.containers._TableView.ClearTable"; haxe_ui_containers__$TableView_ClearTable.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TableView_ClearTable.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { if(param == true) { if((js_Boot.__cast(this._component , haxe_ui_containers_TableView)).get_itemRenderer() != null) { (js_Boot.__cast(this._component , haxe_ui_containers_TableView)).get_itemRenderer().removeAllComponents(); (js_Boot.__cast(this._component , haxe_ui_containers_TableView)).set_itemRenderer(null); } var header = this._component.findComponent(null,haxe_ui_containers_Header); if(header != null) { header.removeAllComponents(); this._component.removeComponent(header); } } var contents = this._component.findComponent("tableview-contents",haxe_ui_containers_Box,true,"css"); if(contents != null) { contents.removeAllComponents(); } return null; } ,__class__: haxe_ui_containers__$TableView_ClearTable }); var haxe_ui_containers__$TableView_AddColumn = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.AddColumn"] = haxe_ui_containers__$TableView_AddColumn; haxe_ui_containers__$TableView_AddColumn.__name__ = "haxe.ui.containers._TableView.AddColumn"; haxe_ui_containers__$TableView_AddColumn.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TableView_AddColumn.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var header = this._component.findComponent(null,haxe_ui_containers_Header); if(header == null) { header = new haxe_ui_containers_Header(); this._component.addComponent(header); } var column = new haxe_ui_components_Column(); column.set_text(param); var columnId = param; columnId = StringTools.replace(columnId," ","_"); columnId = StringTools.replace(columnId,"*",""); column.set_id(columnId); header.addComponent(column); return haxe_ui_util_Variant.fromComponent(column); } ,__class__: haxe_ui_containers__$TableView_AddColumn }); var haxe_ui_containers__$TableView_RemoveColumn = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TableView.RemoveColumn"] = haxe_ui_containers__$TableView_RemoveColumn; haxe_ui_containers__$TableView_RemoveColumn.__name__ = "haxe.ui.containers._TableView.RemoveColumn"; haxe_ui_containers__$TableView_RemoveColumn.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TableView_RemoveColumn.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var header = this._component.findComponent(null,haxe_ui_containers_Header); if(header == null) { return null; } var _g = 0; var _g1 = header.findComponents(null,haxe_ui_components_Column); while(_g < _g1.length) { var c = _g1[_g]; ++_g; if(c.get_id() == null) { continue; } if(c.get_text() == param) { header.removeComponent(c); break; } } return null; } ,__class__: haxe_ui_containers__$TableView_RemoveColumn }); var haxe_ui_containers_TagList = function() { haxe_ui_containers_HBox.call(this); this.set_continuous(true); }; $hxClasses["haxe.ui.containers.TagList"] = haxe_ui_containers_TagList; haxe_ui_containers_TagList.__name__ = "haxe.ui.containers.TagList"; haxe_ui_containers_TagList.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_TagList.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_TagList(); } ,__class__: haxe_ui_containers_TagList }); var haxe_ui_containers_TreeView = function() { this._expandableItemRenderer = null; this._itemRenderer = new haxe_ui_core_BasicItemRenderer(); this._dataSource = null; haxe_ui_containers_ScrollView.call(this); }; $hxClasses["haxe.ui.containers.TreeView"] = haxe_ui_containers_TreeView; haxe_ui_containers_TreeView.__name__ = "haxe.ui.containers.TreeView"; haxe_ui_containers_TreeView.__interfaces__ = [haxe_ui_core_IDataComponent]; haxe_ui_containers_TreeView.__super__ = haxe_ui_containers_ScrollView; haxe_ui_containers_TreeView.prototype = $extend(haxe_ui_containers_ScrollView.prototype,{ addNode: function(data) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("addNode",data)); } ,removeNode: function(node) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("removeNode",node)); } ,clearNodes: function() { if(this.behaviours == null) { return; } this.behaviours.call("clearNodes",null); } ,getNodesInternal: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toArray(this.behaviours.call("getNodesInternal",null)); } ,_dataSource: null ,get_dataSource: function() { if(this._dataSource == null) { this._dataSource = new haxe_ui_data_ArrayDataSource(); this._dataSource.onDataSourceChange = $bind(this,this.onDataChanged); } return this._dataSource; } ,set_dataSource: function(value) { var dataSource = value; if(dataSource != null) { this._dataSource = dataSource; this._dataSource.onDataSourceChange = $bind(this,this.onDataChanged); } return value; } ,onDataChanged: function() { } ,getNodes: function() { var nodes = []; var internalNodes = this.getNodesInternal(); var _g = 0; while(_g < internalNodes.length) { var node = internalNodes[_g]; ++_g; nodes.push(node); } return nodes; } ,_itemRenderer: null ,get_itemRenderer: function() { return this._itemRenderer; } ,set_itemRenderer: function(value) { if(this._itemRenderer != value) { this._itemRenderer = value; } return value; } ,_expandableItemRenderer: null ,get_expandableItemRenderer: function() { if(this._expandableItemRenderer == null) { return this._itemRenderer; } return this._expandableItemRenderer; } ,set_expandableItemRenderer: function(value) { if(this._expandableItemRenderer != value) { this._expandableItemRenderer = value; } return value; } ,findNodeByPath: function(path,field) { var foundNode = null; var parts = path.split("/"); var part = parts.shift(); var nodes = this.getNodes(); var _g = 0; while(_g < nodes.length) { var node = nodes[_g]; ++_g; if(node.matchesPathPart(part,field)) { if(parts.length == 0) { foundNode = node; } else { foundNode = node.findNodeByPath(parts.join("/"),field); } break; } } return foundNode; } ,registerComposite: function() { haxe_ui_containers_ScrollView.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$TreeView_TreeViewEvents; this._compositeBuilderClass = haxe_ui_containers__$TreeView_TreeViewBuilder; } ,registerBehaviours: function() { haxe_ui_containers_ScrollView.prototype.registerBehaviours.call(this); this.behaviours.register("selectedNode",haxe_ui_containers__$TreeView_SelectedNode); this.behaviours.register("addNode",haxe_ui_containers__$TreeView_AddNode); this.behaviours.register("removeNode",haxe_ui_containers__$TreeView_RemoveNode); this.behaviours.register("clearNodes",haxe_ui_containers__$TreeView_ClearNodes); this.behaviours.register("getNodesInternal",haxe_ui_containers__$TreeView_GetNodesInternal); } ,get_selectedNode: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedNode")); } ,set_selectedNode: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedNode",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedNode")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_ScrollView.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_TreeView(); } ,__class__: haxe_ui_containers_TreeView ,__properties__: $extend(haxe_ui_containers_ScrollView.prototype.__properties__,{set_selectedNode:"set_selectedNode",get_selectedNode:"get_selectedNode",set_expandableItemRenderer:"set_expandableItemRenderer",get_expandableItemRenderer:"get_expandableItemRenderer",set_itemRenderer:"set_itemRenderer",get_itemRenderer:"get_itemRenderer",set_dataSource:"set_dataSource",get_dataSource:"get_dataSource"}) }); var haxe_ui_containers__$TreeView_AddNode = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeView.AddNode"] = haxe_ui_containers__$TreeView_AddNode; haxe_ui_containers__$TreeView_AddNode.__name__ = "haxe.ui.containers._TreeView.AddNode"; haxe_ui_containers__$TreeView_AddNode.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeView_AddNode.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var node = new haxe_ui_containers_TreeViewNode(); node.set_data(param); this._component.addComponent(node); return haxe_ui_util_Variant.fromComponent(node); } ,__class__: haxe_ui_containers__$TreeView_AddNode }); var haxe_ui_containers__$TreeView_RemoveNode = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeView.RemoveNode"] = haxe_ui_containers__$TreeView_RemoveNode; haxe_ui_containers__$TreeView_RemoveNode.__name__ = "haxe.ui.containers._TreeView.RemoveNode"; haxe_ui_containers__$TreeView_RemoveNode.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeView_RemoveNode.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var node = param; this._component.removeComponent(node); return haxe_ui_util_Variant.fromComponent(node); } ,__class__: haxe_ui_containers__$TreeView_RemoveNode }); var haxe_ui_containers__$TreeView_ClearNodes = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeView.ClearNodes"] = haxe_ui_containers__$TreeView_ClearNodes; haxe_ui_containers__$TreeView_ClearNodes.__name__ = "haxe.ui.containers._TreeView.ClearNodes"; haxe_ui_containers__$TreeView_ClearNodes.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeView_ClearNodes.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var treeview = js_Boot.__cast(this._component , haxe_ui_containers_TreeView); treeview.set_selectedNode(null); var nodes = treeview.findComponents(null,haxe_ui_containers_TreeViewNode,3); var _g = 0; while(_g < nodes.length) { var n = nodes[_g]; ++_g; treeview.removeComponent(n); } return null; } ,__class__: haxe_ui_containers__$TreeView_ClearNodes }); var haxe_ui_containers__$TreeView_SelectedNode = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeView.SelectedNode"] = haxe_ui_containers__$TreeView_SelectedNode; haxe_ui_containers__$TreeView_SelectedNode.__name__ = "haxe.ui.containers._TreeView.SelectedNode"; haxe_ui_containers__$TreeView_SelectedNode.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TreeView_SelectedNode.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { if(this._previousValue != null && !haxe_ui_util_Variant.get_isNull(this._previousValue)) { var previousSelection = js_Boot.__cast(haxe_ui_util_Variant.toComponent(this._previousValue) , haxe_ui_containers_TreeViewNode); var renderer = previousSelection.findComponent(null,haxe_ui_core_ItemRenderer,true); if(renderer != null) { renderer.removeClass(":node-selected",true,true); } } } else { if(this._previousValue != null && !haxe_ui_util_Variant.get_isNull(this._previousValue)) { var previousSelection = js_Boot.__cast(haxe_ui_util_Variant.toComponent(this._previousValue) , haxe_ui_containers_TreeViewNode); var renderer = previousSelection.findComponent(null,haxe_ui_core_ItemRenderer,true); if(renderer != null) { renderer.removeClass(":node-selected",true,true); } } var node = js_Boot.__cast(haxe_ui_util_Variant.toComponent(this._value) , haxe_ui_containers_TreeViewNode); var p = node.parentNode; while(p != null) { p.set_expanded(true); p = p.parentNode; } var renderer = node.findComponent(null,haxe_ui_core_ItemRenderer,true); if(renderer != null) { renderer.addClass(":node-selected",true,true); } (js_Boot.__cast(this._component , haxe_ui_containers_TreeView)).ensureVisible(node.findComponent(null,haxe_ui_core_ItemRenderer,true)); } var event = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); this._component.dispatch(event); } ,__class__: haxe_ui_containers__$TreeView_SelectedNode }); var haxe_ui_containers__$TreeView_GetNodesInternal = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeView.GetNodesInternal"] = haxe_ui_containers__$TreeView_GetNodesInternal; haxe_ui_containers__$TreeView_GetNodesInternal.__name__ = "haxe.ui.containers._TreeView.GetNodesInternal"; haxe_ui_containers__$TreeView_GetNodesInternal.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeView_GetNodesInternal.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var nodes = this._component.findComponents(null,haxe_ui_containers_TreeViewNode,3); return haxe_ui_util_Variant.fromArray(nodes); } ,__class__: haxe_ui_containers__$TreeView_GetNodesInternal }); var haxe_ui_containers__$TreeView_TreeViewEvents = function(treeview) { haxe_ui_containers_ScrollViewEvents.call(this,treeview); this._treeview = treeview; }; $hxClasses["haxe.ui.containers._TreeView.TreeViewEvents"] = haxe_ui_containers__$TreeView_TreeViewEvents; haxe_ui_containers__$TreeView_TreeViewEvents.__name__ = "haxe.ui.containers._TreeView.TreeViewEvents"; haxe_ui_containers__$TreeView_TreeViewEvents.__super__ = haxe_ui_containers_ScrollViewEvents; haxe_ui_containers__$TreeView_TreeViewEvents.prototype = $extend(haxe_ui_containers_ScrollViewEvents.prototype,{ _treeview: null ,__class__: haxe_ui_containers__$TreeView_TreeViewEvents }); var haxe_ui_containers__$TreeView_TreeViewBuilder = function(treeview) { haxe_ui_containers_ScrollViewBuilder.call(this,treeview); this._treeview = treeview; }; $hxClasses["haxe.ui.containers._TreeView.TreeViewBuilder"] = haxe_ui_containers__$TreeView_TreeViewBuilder; haxe_ui_containers__$TreeView_TreeViewBuilder.__name__ = "haxe.ui.containers._TreeView.TreeViewBuilder"; haxe_ui_containers__$TreeView_TreeViewBuilder.__super__ = haxe_ui_containers_ScrollViewBuilder; haxe_ui_containers__$TreeView_TreeViewBuilder.prototype = $extend(haxe_ui_containers_ScrollViewBuilder.prototype,{ _treeview: null ,addComponent: function(child) { if(((child) instanceof haxe_ui_core_ItemRenderer)) { if(child.get_id() == null) { this._treeview._itemRenderer = child; } else if(child.get_id() == "expandable") { this._treeview._expandableItemRenderer = child; } return child; } return haxe_ui_containers_ScrollViewBuilder.prototype.addComponent.call(this,child); } ,__class__: haxe_ui_containers__$TreeView_TreeViewBuilder }); var haxe_ui_containers_TreeViewNode = function() { this._data = null; this.parentNode = null; haxe_ui_containers_VBox.call(this); }; $hxClasses["haxe.ui.containers.TreeViewNode"] = haxe_ui_containers_TreeViewNode; haxe_ui_containers_TreeViewNode.__name__ = "haxe.ui.containers.TreeViewNode"; haxe_ui_containers_TreeViewNode.__super__ = haxe_ui_containers_VBox; haxe_ui_containers_TreeViewNode.prototype = $extend(haxe_ui_containers_VBox.prototype,{ addNode: function(data) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("addNode",data)); } ,removeNode: function(node) { return haxe_ui_util_Variant.toComponent(this.behaviours.call("removeNode",node)); } ,clearNodes: function() { if(this.behaviours == null) { return; } this.behaviours.call("clearNodes",null); } ,getNodesInternal: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toArray(this.behaviours.call("getNodesInternal",null)); } ,parentNode: null ,nodePath: function(field) { if(field == null) { var o = this.get_data(); if(Object.prototype.hasOwnProperty.call(o,"id")) { field = "id"; } else { var o = this.get_data(); if(Object.prototype.hasOwnProperty.call(o,"nodeId")) { field = "nodeId"; } else { field = "text"; } } } var parts = []; var p = this; while(p != null) { parts.push(Reflect.field(p.get_data(),field)); p = p.parentNode; } parts.reverse(); return parts.join("/"); } ,findNodeByPath: function(path,field) { var foundNode = null; var parts = path.split("/"); var part = parts.shift(); var nodes = this.getNodes(); var _g = 0; while(_g < nodes.length) { var node = nodes[_g]; ++_g; if(node.matchesPathPart(part,field)) { if(parts.length == 0) { foundNode = node; } else { foundNode = node.findNodeByPath(parts.join("/"),field); } break; } } return foundNode; } ,matchesPathPart: function(part,field) { if(field == null) { var o = this.get_data(); if(Object.prototype.hasOwnProperty.call(o,"id")) { field = "id"; } else { var o = this.get_data(); if(Object.prototype.hasOwnProperty.call(o,"nodeId")) { field = "nodeId"; } else { field = "text"; } } } var o = this.get_data(); if(Object.prototype.hasOwnProperty.call(o,field) == false) { return false; } return Std.string(Reflect.field(this.get_data(),field)) == part; } ,getNodes: function() { var nodes = []; var internalNodes = this.getNodesInternal(); var _g = 0; while(_g < internalNodes.length) { var node = internalNodes[_g]; ++_g; nodes.push(node); } return nodes; } ,get_selected: function() { var treeview = this.findAncestor(null,haxe_ui_containers_TreeView); return treeview.get_selectedNode() == this; } ,set_selected: function(value) { var treeview = this.findAncestor(null,haxe_ui_containers_TreeView); treeview.set_selectedNode(this); return value; } ,_data: null ,get_data: function() { return this._data; } ,set_data: function(value) { if(value == this._data) { return value; } this._data = value; this.invalidateComponent("data",false); return value; } ,get_text: function() { return this._data.text; } ,set_text: function(value) { if(this._data == null) { this._data = { }; } this._data.text = value; this.set_data(Reflect.copy(this._data)); return value; } ,get_icon: function() { return haxe_ui_util_Variant.fromDynamic(this._data.icon); } ,set_icon: function(value) { if(this._data == null) { this._data = { }; } this._data.icon = value; this.set_data(Reflect.copy(this._data)); return value; } ,registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents; this._compositeBuilderClass = haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("expanded",haxe_ui_containers__$TreeViewNode_Expanded,haxe_ui_util_Variant.fromBool(false)); this.behaviours.register("expandable",haxe_ui_containers__$TreeViewNode_Expandable); this.behaviours.register("addNode",haxe_ui_containers__$TreeViewNode_AddNode); this.behaviours.register("removeNode",haxe_ui_containers__$TreeViewNode_RemoveNode); this.behaviours.register("clearNodes",haxe_ui_containers__$TreeViewNode_ClearNodes); this.behaviours.register("getNodesInternal",haxe_ui_containers__$TreeViewNode_GetNodesInternal); } ,get_expanded: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("expanded")); } ,set_expanded: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("expanded",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"expanded")); return value; } ,get_expandable: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toBool(this.behaviours.get("expandable")); } ,set_expandable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("expandable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"expandable")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_TreeViewNode(); } ,__class__: haxe_ui_containers_TreeViewNode ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_expandable:"set_expandable",get_expandable:"get_expandable",set_expanded:"set_expanded",get_expanded:"get_expanded",set_data:"set_data",get_data:"get_data",set_selected:"set_selected",get_selected:"get_selected"}) }); var haxe_ui_containers__$TreeViewNode_AddNode = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeViewNode.AddNode"] = haxe_ui_containers__$TreeViewNode_AddNode; haxe_ui_containers__$TreeViewNode_AddNode.__name__ = "haxe.ui.containers._TreeViewNode.AddNode"; haxe_ui_containers__$TreeViewNode_AddNode.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeViewNode_AddNode.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var node = new haxe_ui_containers_TreeViewNode(); node.set_data(param); this._component.addComponent(node); return haxe_ui_util_Variant.fromComponent(node); } ,__class__: haxe_ui_containers__$TreeViewNode_AddNode }); var haxe_ui_containers__$TreeViewNode_RemoveNode = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeViewNode.RemoveNode"] = haxe_ui_containers__$TreeViewNode_RemoveNode; haxe_ui_containers__$TreeViewNode_RemoveNode.__name__ = "haxe.ui.containers._TreeViewNode.RemoveNode"; haxe_ui_containers__$TreeViewNode_RemoveNode.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeViewNode_RemoveNode.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var node = param; this._component.removeComponent(node); return haxe_ui_util_Variant.fromComponent(node); } ,__class__: haxe_ui_containers__$TreeViewNode_RemoveNode }); var haxe_ui_containers__$TreeViewNode_ClearNodes = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeViewNode.ClearNodes"] = haxe_ui_containers__$TreeViewNode_ClearNodes; haxe_ui_containers__$TreeViewNode_ClearNodes.__name__ = "haxe.ui.containers._TreeViewNode.ClearNodes"; haxe_ui_containers__$TreeViewNode_ClearNodes.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeViewNode_ClearNodes.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var node = js_Boot.__cast(this._component , haxe_ui_containers_TreeViewNode); var nodes = node.findComponents(null,haxe_ui_containers_TreeViewNode,3); var _g = 0; while(_g < nodes.length) { var n = nodes[_g]; ++_g; node.removeComponent(n); } return null; } ,__class__: haxe_ui_containers__$TreeViewNode_ClearNodes }); var haxe_ui_containers__$TreeViewNode_Expanded = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeViewNode.Expanded"] = haxe_ui_containers__$TreeViewNode_Expanded; haxe_ui_containers__$TreeViewNode_Expanded.__name__ = "haxe.ui.containers._TreeViewNode.Expanded"; haxe_ui_containers__$TreeViewNode_Expanded.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TreeViewNode_Expanded.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var childContainer = this._component.findComponent("treenode-child-container",haxe_ui_containers_Box); if(childContainer != null) { if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { childContainer.show(); } else { childContainer.hide(); } var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder); builder.updateIconClass(); } var eventType = haxe_ui_events_TreeViewEvent.NODE_EXPANDED; if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false))) { eventType = haxe_ui_events_TreeViewEvent.NODE_COLLAPSED; } var event = new haxe_ui_events_TreeViewEvent(eventType); event.node = js_Boot.__cast(this._component , haxe_ui_containers_TreeViewNode); var treeview = this._component.findAncestor(null,haxe_ui_containers_TreeView); treeview.dispatch(event); } ,__class__: haxe_ui_containers__$TreeViewNode_Expanded }); var haxe_ui_containers__$TreeViewNode_Expandable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeViewNode.Expandable"] = haxe_ui_containers__$TreeViewNode_Expandable; haxe_ui_containers__$TreeViewNode_Expandable.__name__ = "haxe.ui.containers._TreeViewNode.Expandable"; haxe_ui_containers__$TreeViewNode_Expandable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers__$TreeViewNode_Expandable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var builder = js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { builder.changeToExpandableRenderer(); } else { builder.changeToNonExpandableRenderer(); } } ,__class__: haxe_ui_containers__$TreeViewNode_Expandable }); var haxe_ui_containers__$TreeViewNode_GetNodesInternal = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers._TreeViewNode.GetNodesInternal"] = haxe_ui_containers__$TreeViewNode_GetNodesInternal; haxe_ui_containers__$TreeViewNode_GetNodesInternal.__name__ = "haxe.ui.containers._TreeViewNode.GetNodesInternal"; haxe_ui_containers__$TreeViewNode_GetNodesInternal.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers__$TreeViewNode_GetNodesInternal.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ call: function(param) { var nodes = this._component.findComponents(null,haxe_ui_containers_TreeViewNode,3); return haxe_ui_util_Variant.fromArray(nodes); } ,__class__: haxe_ui_containers__$TreeViewNode_GetNodesInternal }); var haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents = function(node) { haxe_ui_events_Events.call(this,node); this._node = node; }; $hxClasses["haxe.ui.containers._TreeViewNode.TreeViewNodeEvents"] = haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents; haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents.__name__ = "haxe.ui.containers._TreeViewNode.TreeViewNodeEvents"; haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents.__super__ = haxe_ui_events_Events; haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents.prototype = $extend(haxe_ui_events_Events.prototype,{ _node: null ,__class__: haxe_ui_containers__$TreeViewNode_TreeViewNodeEvents }); var haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder = function(node) { this._isExpandable = false; this._childContainer = null; this._renderer = null; this._expandCollapseIcon = null; this._nodeContainer = null; haxe_ui_core_CompositeBuilder.call(this,node); this._node = node; }; $hxClasses["haxe.ui.containers._TreeViewNode.TreeViewNodeBuilder"] = haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder; haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder.__name__ = "haxe.ui.containers._TreeViewNode.TreeViewNodeBuilder"; haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _node: null ,_nodeContainer: null ,_expandCollapseIcon: null ,_renderer: null ,_childContainer: null ,_isExpandable: null ,onInitialize: function() { var treeview = this._node.findAncestor(null,haxe_ui_containers_TreeView); this._nodeContainer = new haxe_ui_containers_HBox(); this._nodeContainer.addClass("treenode-container"); this._expandCollapseIcon = new haxe_ui_components_Image(); this._expandCollapseIcon.set_scriptAccess(false); this._expandCollapseIcon.addClass("treenode-expand-collapse-icon"); this._expandCollapseIcon.set_id("treenode-expand-collapse-icon"); this._expandCollapseIcon.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onExpandCollapseClicked)); this._nodeContainer.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onContainerClick)); this._nodeContainer.registerEvent(haxe_ui_events_MouseEvent.RIGHT_CLICK,$bind(this,this.onContainerClick)); this._nodeContainer.registerEvent(haxe_ui_events_MouseEvent.DBL_CLICK,$bind(this,this.onContainerDblClick)); this._nodeContainer.addComponent(this._expandCollapseIcon); this._renderer = treeview.get_itemRenderer().cloneComponent(); this._renderer.itemIndex = this._node.get_parentComponent().getComponentIndex(this._node); this._renderer.set_data(this._node.get_data()); this._nodeContainer.addComponent(this._renderer); if(this._isExpandable == true) { this.makeExpandableRendererChanges(); } this._node.addComponentAt(this._nodeContainer,0); } ,onContainerClick: function(event) { if(this._expandCollapseIcon.hitTest(event.screenX,event.screenY)) { return; } var interactives = this._node.findComponentsUnderPoint(event.screenX,event.screenY,haxe_ui_core_InteractiveComponent); if(interactives.length > 0) { return; } var treeview = this._node.findAncestor(null,haxe_ui_containers_TreeView); treeview.set_selectedNode(this._node); } ,onContainerDblClick: function(event) { var interactives = this._node.findComponentsUnderPoint(event.screenX,event.screenY,haxe_ui_core_InteractiveComponent); if(interactives.length > 0) { return; } this.onExpandCollapseClicked(event); } ,onExpandCollapseClicked: function(event) { if(!this._isExpandable) { return; } event.cancel(); this._node.set_expanded(!this._node.get_expanded()); this.updateIconClass(); } ,updateIconClass: function() { if(this._expandCollapseIcon != null) { if(this._node.get_expanded() == true) { this._expandCollapseIcon.swapClass("node-expanded","node-collapsed"); } else { this._expandCollapseIcon.swapClass("node-collapsed","node-expanded"); } } } ,validateComponentData: function() { this._renderer.set_data(this._node.get_data()); } ,changeToExpandableRenderer: function() { if(this._isExpandable == true) { return; } this._isExpandable = true; this.makeExpandableRendererChanges(); } ,changeToNonExpandableRenderer: function() { if(this._isExpandable == false) { return; } this._isExpandable = false; this.makeNonExpandableRendererChanges(); } ,makeNonExpandableRendererChanges: function() { var treeview = this._node.findAncestor(null,haxe_ui_containers_TreeView); if(this._expandCollapseIcon != null) { this._expandCollapseIcon.removeClasses(["node-collapsed","node-expanded"]); } if(this._renderer != null) { var wasSelected = treeview.get_selectedNode() == this._node; var data = this._renderer.get_data(); var newRenderer = treeview.get_itemRenderer().cloneComponent(); newRenderer.set_data(data); this._nodeContainer.removeComponent(this._renderer); this._renderer = newRenderer; this._nodeContainer.addComponent(newRenderer); if(wasSelected == true) { treeview.set_selectedNode(this._node); } } } ,makeExpandableRendererChanges: function() { var treeview = this._node.findAncestor(null,haxe_ui_containers_TreeView); this.updateIconClass(); if(this._renderer != null) { var wasSelected = treeview.get_selectedNode() == this._node; var itemIndex = this._renderer.itemIndex; var data = this._renderer.get_data(); var newRenderer = treeview.get_expandableItemRenderer().cloneComponent(); newRenderer.set_data(data); newRenderer.itemIndex = itemIndex; this._nodeContainer.removeComponent(this._renderer); this._renderer = newRenderer; this._nodeContainer.addComponent(newRenderer); if(wasSelected == true) { treeview.set_selectedNode(this._node); } } } ,addComponent: function(child) { if(child == this._renderer || child == this._childContainer) { return null; } if(((child) instanceof haxe_ui_containers_TreeViewNode)) { (js_Boot.__cast(child , haxe_ui_containers_TreeViewNode)).parentNode = this._node; if(this._childContainer == null) { this._childContainer = new haxe_ui_containers_VBox(); if(this._node.get_expanded() == true) { this._childContainer.show(); } else { this._childContainer.hide(); } this._childContainer.addClass("treenode-child-container"); this._childContainer.set_id("treenode-child-container"); this._node.addComponent(this._childContainer); } this.changeToExpandableRenderer(); return this._childContainer.addComponent(child); } return null; } ,addComponentAt: function(child,index) { if(child == this._renderer || child == this._childContainer) { return null; } if(((child) instanceof haxe_ui_containers_TreeViewNode)) { (js_Boot.__cast(child , haxe_ui_containers_TreeViewNode)).parentNode = this._node; if(this._childContainer == null) { this._childContainer = new haxe_ui_containers_VBox(); if(this._node.get_expanded() == true) { this._childContainer.show(); } else { this._childContainer.hide(); } this._childContainer.addClass("treenode-child-container"); this._childContainer.set_id("treenode-child-container"); this._node.addComponent(this._childContainer); } this.changeToExpandableRenderer(); return this._childContainer.addComponentAt(child,index); } return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(((child) instanceof haxe_ui_containers_TreeViewNode)) { (js_Boot.__cast(child , haxe_ui_containers_TreeViewNode)).parentNode = null; var c = this._childContainer.removeComponent(child,dispose,invalidate); if(this._childContainer.get_numComponents() == 0 && this._node.get_expandable() != true) { this.changeToNonExpandableRenderer(); } return c; } return null; } ,__class__: haxe_ui_containers__$TreeViewNode_TreeViewNodeBuilder }); var haxe_ui_containers_VerticalButtonBar = function() { haxe_ui_containers_ButtonBar.call(this); }; $hxClasses["haxe.ui.containers.VerticalButtonBar"] = haxe_ui_containers_VerticalButtonBar; haxe_ui_containers_VerticalButtonBar.__name__ = "haxe.ui.containers.VerticalButtonBar"; haxe_ui_containers_VerticalButtonBar.__super__ = haxe_ui_containers_ButtonBar; haxe_ui_containers_VerticalButtonBar.prototype = $extend(haxe_ui_containers_ButtonBar.prototype,{ registerComposite: function() { haxe_ui_containers_ButtonBar.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_containers__$VerticalButtonBar_Layout; this._compositeBuilderClass = haxe_ui_containers__$VerticalButtonBar_Builder; } ,registerBehaviours: function() { haxe_ui_containers_ButtonBar.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_ButtonBar.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_VerticalButtonBar(); } ,__class__: haxe_ui_containers_VerticalButtonBar }); var haxe_ui_layouts_VerticalLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); this._calcFullHeights = true; }; $hxClasses["haxe.ui.layouts.VerticalLayout"] = haxe_ui_layouts_VerticalLayout; haxe_ui_layouts_VerticalLayout.__name__ = "haxe.ui.layouts.VerticalLayout"; haxe_ui_layouts_VerticalLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_layouts_VerticalLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { var ypos = this.get_paddingTop(); var usableSize = this.get_usableSize(); var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var xpos = 0; switch(this.horizontalAlign(child)) { case "center": xpos = (usableSize.width - child.get_componentWidth()) / 2 + this.get_paddingLeft() + this.marginLeft(child) - this.marginRight(child); break; case "right": if(child.get_componentWidth() < this.get_component().get_componentWidth()) { xpos = this.get_component().get_componentWidth() - (child.get_componentWidth() + this.get_paddingRight() + this.marginLeft(child)); } break; default: xpos = this.get_paddingLeft() + this.marginLeft(child); } child.moveComponent(xpos,ypos + this.marginTop(child)); ypos += child.get_componentHeight() + this.get_verticalSpacing(); } } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; continue; } if(child.get_componentHeight() > 0 && (child.get_percentHeight() == null || this.fixedMinHeight(child) == true)) { size.height -= child.get_componentHeight() + this.marginTop(child) + this.marginBottom(child); } } if(visibleChildren > 1) { size.height -= this.get_verticalSpacing() * (visibleChildren - 1); } if(size.height < 0) { size.height = 0; } return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_VerticalLayout(); } ,__class__: haxe_ui_layouts_VerticalLayout }); var haxe_ui_containers__$VerticalButtonBar_Layout = function() { haxe_ui_layouts_VerticalLayout.call(this); }; $hxClasses["haxe.ui.containers._VerticalButtonBar.Layout"] = haxe_ui_containers__$VerticalButtonBar_Layout; haxe_ui_containers__$VerticalButtonBar_Layout.__name__ = "haxe.ui.containers._VerticalButtonBar.Layout"; haxe_ui_containers__$VerticalButtonBar_Layout.__super__ = haxe_ui_layouts_VerticalLayout; haxe_ui_containers__$VerticalButtonBar_Layout.prototype = $extend(haxe_ui_layouts_VerticalLayout.prototype,{ resizeChildren: function() { haxe_ui_layouts_VerticalLayout.prototype.resizeChildren.call(this); var max = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_width() > max) { max = child.get_width(); } } var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_text() == null || child.get_text().length == 0 || child.get_width() < max) { child.set_width(max); } } } ,cloneLayout: function() { var c = haxe_ui_layouts_VerticalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers__$VerticalButtonBar_Layout(); } ,__class__: haxe_ui_containers__$VerticalButtonBar_Layout }); var haxe_ui_containers__$VerticalButtonBar_Builder = function(bar) { haxe_ui_containers_ButtonBarBuilder.call(this,bar); }; $hxClasses["haxe.ui.containers._VerticalButtonBar.Builder"] = haxe_ui_containers__$VerticalButtonBar_Builder; haxe_ui_containers__$VerticalButtonBar_Builder.__name__ = "haxe.ui.containers._VerticalButtonBar.Builder"; haxe_ui_containers__$VerticalButtonBar_Builder.__super__ = haxe_ui_containers_ButtonBarBuilder; haxe_ui_containers__$VerticalButtonBar_Builder.prototype = $extend(haxe_ui_containers_ButtonBarBuilder.prototype,{ showWarning: function() { } ,__class__: haxe_ui_containers__$VerticalButtonBar_Builder }); var haxe_ui_containers_VerticalSplitter = function() { haxe_ui_containers_Splitter.call(this); this.set_layoutName("vertical"); }; $hxClasses["haxe.ui.containers.VerticalSplitter"] = haxe_ui_containers_VerticalSplitter; haxe_ui_containers_VerticalSplitter.__name__ = "haxe.ui.containers.VerticalSplitter"; haxe_ui_containers_VerticalSplitter.__super__ = haxe_ui_containers_Splitter; haxe_ui_containers_VerticalSplitter.prototype = $extend(haxe_ui_containers_Splitter.prototype,{ registerComposite: function() { haxe_ui_containers_Splitter.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents; this._compositeBuilderClass = haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder; } ,registerBehaviours: function() { haxe_ui_containers_Splitter.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Splitter.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_VerticalSplitter(); } ,__class__: haxe_ui_containers_VerticalSplitter }); var haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents = function(splitter) { haxe_ui_containers_SplitterEvents.call(this,splitter); }; $hxClasses["haxe.ui.containers._VerticalSplitter.VerticalSplitterEvents"] = haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents; haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents.__name__ = "haxe.ui.containers._VerticalSplitter.VerticalSplitterEvents"; haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents.__super__ = haxe_ui_containers_SplitterEvents; haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents.prototype = $extend(haxe_ui_containers_SplitterEvents.prototype,{ onGripperMouseDown: function(event) { haxe_ui_containers_SplitterEvents.prototype.onGripperMouseDown.call(this,event); } ,handleResize: function(prev,next,event) { var screenY = this._splitter.get_screenTop(); var delta = event.screenY - screenY - this._currentOffset.y; var ucy = this._splitter.get_layout().get_usableHeight(); var prevCY = delta; var nextCY = ucy - delta; var prevMinHeight = 0; var nextMinHeight = 0; var prevMaxHeight = null; var nextMaxHeight = null; if(prevCY <= prevMinHeight) { prevCY = prevMinHeight; nextCY = ucy - prevMinHeight; } if(nextCY <= nextMinHeight) { prevCY = ucy - nextMinHeight; nextCY = nextMinHeight; } if(prevMaxHeight != null && prevCY > prevMaxHeight) { prevCY = prevMaxHeight; nextCY = ucy - prevMaxHeight; } if(nextMaxHeight != null && nextCY > nextMaxHeight) { prevCY = ucy - nextMaxHeight; nextCY = nextMaxHeight; } if(prevCY <= 0) { prev.handleVisibility(false); } else { prev.handleVisibility(true); } if(nextCY <= 0) { next.handleVisibility(false); } else { next.handleVisibility(true); } if(prev.get_percentHeight() != null) { prev.set_percentHeight(prevCY / ucy * 100); } else { prev.set_height(prevCY); } if(next.get_percentHeight() != null) { next.set_percentHeight(nextCY / ucy * 100); } else { next.set_height(nextCY); } } ,__class__: haxe_ui_containers__$VerticalSplitter_VerticalSplitterEvents }); var haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder = function(splitter) { haxe_ui_containers_SplitterBuilder.call(this,splitter); }; $hxClasses["haxe.ui.containers._VerticalSplitter.VerticalSplitterBuilder"] = haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder; haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder.__name__ = "haxe.ui.containers._VerticalSplitter.VerticalSplitterBuilder"; haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder.__super__ = haxe_ui_containers_SplitterBuilder; haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder.prototype = $extend(haxe_ui_containers_SplitterBuilder.prototype,{ getSplitterClass: function() { return "vertical-splitter-gripper"; } ,__class__: haxe_ui_containers__$VerticalSplitter_VerticalSplitterBuilder }); var haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.dialogs._CollapsibleDialog.Minimized"] = haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized; haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized.__name__ = "haxe.ui.containers.dialogs._CollapsibleDialog.Minimized"; haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var dialogContent = this._component.findComponent("dialog-content",haxe_ui_containers_Box); if(dialogContent == null) { return; } var dialogFooterContainer = this._component.findComponent("dialog-footer-container",haxe_ui_containers_Box); if(dialogFooterContainer == null) { return; } var hasFooterComponents = false; var dialogFooter = this._component.findComponent("dialog-footer",haxe_ui_containers_Box); if(dialogFooter != null) { hasFooterComponents = dialogFooter.get_numComponents() > 0; } var dialogMinMaxButton = this._component.findComponent("dialog-minmax-button",haxe_ui_components_Image); if(dialogMinMaxButton == null) { return; } var offset = dialogContent.get_height(); if(hasFooterComponents) { offset += dialogFooterContainer.get_height(); } if(haxe_ui_util_Variant.toBool(this._value)) { dialogMinMaxButton.swapClass("dialog-maximize-button","dialog-minimize-button"); dialogContent.set_hidden(true); dialogFooterContainer.set_hidden(true); var fh = this._component; fh.set_height(fh.get_height() - offset); } else { dialogMinMaxButton.swapClass("dialog-minimize-button","dialog-maximize-button"); dialogContent.set_hidden(false); dialogFooterContainer.set_hidden(!hasFooterComponents); var fh = this._component; fh.set_height(fh.get_height() + offset); } } ,__class__: haxe_ui_containers_dialogs__$CollapsibleDialog_Minimized }); var haxe_ui_containers_dialogs__$CollapsibleDialog_Builder = function(dialog) { haxe_ui_core_CompositeBuilder.call(this,dialog); this._dialog = dialog; }; $hxClasses["haxe.ui.containers.dialogs._CollapsibleDialog.Builder"] = haxe_ui_containers_dialogs__$CollapsibleDialog_Builder; haxe_ui_containers_dialogs__$CollapsibleDialog_Builder.__name__ = "haxe.ui.containers.dialogs._CollapsibleDialog.Builder"; haxe_ui_containers_dialogs__$CollapsibleDialog_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_dialogs__$CollapsibleDialog_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _dialog: null ,_dialogMinMaxButton: null ,onReady: function() { haxe_ui_core_CompositeBuilder.prototype.onReady.call(this); var dialogTitle = this._component.findComponent("dialog-title",haxe_ui_containers_HBox,true); this._dialogMinMaxButton = new haxe_ui_components_Image(); this._dialogMinMaxButton.set_id("dialog-minmax-button"); this._dialogMinMaxButton.set_styleNames("dialog-minimize-button"); this._dialogMinMaxButton.set_scriptAccess(false); this._dialogMinMaxButton.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onMinMaxButton)); dialogTitle.addComponent(this._dialogMinMaxButton); dialogTitle.setComponentIndex(this._dialogMinMaxButton,1); } ,onMinMaxButton: function(_) { this._dialog.set_minimized(!this._dialog.get_minimized()); } ,__class__: haxe_ui_containers_dialogs__$CollapsibleDialog_Builder }); var haxe_ui_containers_dialogs_DialogButton = {}; haxe_ui_containers_dialogs_DialogButton.bitOr = function(lhs,rhs) { var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); var rarr = (rhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(rhs)).split("|"); var _g = 0; while(_g < rarr.length) { var r = rarr[_g]; ++_g; if(larr.indexOf(r) == -1) { larr.push(r); } } return larr.join("|"); }; haxe_ui_containers_dialogs_DialogButton.eq = function(lhs,rhs) { var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); return larr.indexOf(rhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(rhs)) != -1; }; haxe_ui_containers_dialogs_DialogButton.toArray = function(this1) { var a = []; var _g = 0; var _g1 = Std.string(this1).split("|"); while(_g < _g1.length) { var i = _g1[_g]; ++_g; i = StringTools.trim(i); if(i.length == 0 || i == "null") { continue; } a.push(i); } return a; }; haxe_ui_containers_dialogs_DialogButton.toString = function(this1) { return Std.string(this1); }; var haxe_ui_containers_dialogs_DialogEvent = function(type,bubble,data) { haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.containers.dialogs.DialogEvent"] = haxe_ui_containers_dialogs_DialogEvent; haxe_ui_containers_dialogs_DialogEvent.__name__ = "haxe.ui.containers.dialogs.DialogEvent"; haxe_ui_containers_dialogs_DialogEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_containers_dialogs_DialogEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ button: null ,clone: function() { var c = new haxe_ui_containers_dialogs_DialogEvent(this.type); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; c.button = this.button; this.postClone(c); return c; } ,__class__: haxe_ui_containers_dialogs_DialogEvent }); var haxe_ui_containers_dialogs_FileDialogTypes = function() { }; $hxClasses["haxe.ui.containers.dialogs.FileDialogTypes"] = haxe_ui_containers_dialogs_FileDialogTypes; haxe_ui_containers_dialogs_FileDialogTypes.__name__ = "haxe.ui.containers.dialogs.FileDialogTypes"; haxe_ui_containers_dialogs_FileDialogTypes.__properties__ = {get_TEXTS:"get_TEXTS",get_IMAGES:"get_IMAGES"}; haxe_ui_containers_dialogs_FileDialogTypes.IMAGES = null; haxe_ui_containers_dialogs_FileDialogTypes.get_IMAGES = function() { return [{ label : "Image Files", extension : "png, gif, jpeg, jpg, bmp"}]; }; haxe_ui_containers_dialogs_FileDialogTypes.TEXTS = null; haxe_ui_containers_dialogs_FileDialogTypes.get_TEXTS = function() { return [{ label : "Text Files", extension : "txt"}]; }; var haxe_ui_containers_dialogs_Dialogs = function() { }; $hxClasses["haxe.ui.containers.dialogs.Dialogs"] = haxe_ui_containers_dialogs_Dialogs; haxe_ui_containers_dialogs_Dialogs.__name__ = "haxe.ui.containers.dialogs.Dialogs"; haxe_ui_containers_dialogs_Dialogs.messageBox = function(message,title,type,modal,callback) { if(modal == null) { modal = true; } if(type == null) { type = "info"; } else if(type == "info") { type = "info"; } else if(type == "question") { type = "question"; } else if(type == "warning") { type = "warning"; } else if(type == "error") { type = "error"; } else if(type == "yesno") { type = "yesno"; } var messageBox = new haxe_ui_containers_dialogs_MessageBox(); messageBox.set_type(type); messageBox.set_message(message); messageBox.modal = modal; if(title != null) { messageBox.set_title(title); } if(callback != null) { messageBox.registerEvent("dialogClosed",function(e) { callback(e.button); }); } messageBox.show(); return messageBox; }; haxe_ui_containers_dialogs_Dialogs.dialog = function(contents,title,buttons,modal,callback) { if(modal == null) { modal = true; } var dialog = new haxe_ui_containers_dialogs_Dialog(); dialog.modal = modal; if(title != null) { dialog.set_title(title); } if(buttons != null) { dialog.buttons = buttons; } dialog.addComponent(contents); dialog.show(); if(callback != null) { dialog.registerEvent("dialogClosed",function(e) { callback(e.button); }); } return dialog; }; haxe_ui_containers_dialogs_Dialogs.openFile = function(callback,options) { var dialog = new haxe_ui_containers_dialogs_OpenFileDialog(); dialog.callback = callback; dialog.set_options(options); dialog.show(); }; haxe_ui_containers_dialogs_Dialogs.openBinaryFile = function(title,fileTypes,callback) { var options = { readContents : true, readAsBinary : true, multiple : false, extensions : fileTypes, title : title}; haxe_ui_containers_dialogs_Dialogs.openFile(function(button,selectedFiles) { var larr = (button == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(button)).split("|"); if(larr.indexOf("{{ok}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{ok}}")) != -1 && selectedFiles.length > 0) { callback(selectedFiles[0]); } },options); }; haxe_ui_containers_dialogs_Dialogs.openTextFile = function(title,fileTypes,callback) { var options = { readContents : true, readAsBinary : false, multiple : false, extensions : fileTypes, title : title}; haxe_ui_containers_dialogs_Dialogs.openFile(function(button,selectedFiles) { var larr = (button == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(button)).split("|"); if(larr.indexOf("{{ok}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{ok}}")) != -1 && selectedFiles.length > 0) { callback(selectedFiles[0]); } },options); }; haxe_ui_containers_dialogs_Dialogs.saveFile = function(callback,fileInfo,options) { var dialog = new haxe_ui_containers_dialogs_SaveFileDialog(); dialog.callback = callback; dialog.set_options(options); dialog.fileInfo = fileInfo; dialog.show(); }; haxe_ui_containers_dialogs_Dialogs.saveBinaryFile = function(title,fileTypes,fileInfo,callback) { var options = { writeAsBinary : true, extensions : fileTypes, title : title}; haxe_ui_containers_dialogs_Dialogs.saveFile(function(button,result,path) { callback(result,path); },fileInfo,options); }; haxe_ui_containers_dialogs_Dialogs.saveTextFile = function(title,fileTypes,fileInfo,callback) { var options = { writeAsBinary : false, extensions : fileTypes, title : title}; haxe_ui_containers_dialogs_Dialogs.saveFile(function(button,result,path) { callback(result,path); },fileInfo,options); }; var haxe_ui_containers_dialogs_MessageBoxType = {}; haxe_ui_containers_dialogs_MessageBoxType.toString = function(this1) { return Std.string(this1); }; var haxe_ui_containers_dialogs_MessageBox = function() { haxe_ui_backend_MessageBoxBase.call(this); this.set_title("Message"); }; $hxClasses["haxe.ui.containers.dialogs.MessageBox"] = haxe_ui_containers_dialogs_MessageBox; haxe_ui_containers_dialogs_MessageBox.__name__ = "haxe.ui.containers.dialogs.MessageBox"; haxe_ui_containers_dialogs_MessageBox.__super__ = haxe_ui_backend_MessageBoxBase; haxe_ui_containers_dialogs_MessageBox.prototype = $extend(haxe_ui_backend_MessageBoxBase.prototype,{ onInitialize: function() { haxe_ui_backend_MessageBoxBase.prototype.onInitialize.call(this); if(haxe_ui_containers_dialogs_DialogButton.toArray(this.buttons).length == 0) { switch(this.get_type()) { case "error": this.buttons = "{{close}}"; break; case "info": this.buttons = "{{ok}}"; break; case "question": var larr = "{{yes}}".split("|"); var rarr = "{{no}}".split("|"); var _g = 0; while(_g < rarr.length) { var r = rarr[_g]; ++_g; if(larr.indexOf(r) == -1) { larr.push(r); } } var lhs = larr.join("|"); var larr = (lhs == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString(lhs)).split("|"); var rarr = ("{{cancel}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{cancel}}")).split("|"); var _g = 0; while(_g < rarr.length) { var r = rarr[_g]; ++_g; if(larr.indexOf(r) == -1) { larr.push(r); } } this.buttons = larr.join("|"); break; case "warning": this.buttons = "{{close}}"; break; case "yesno": var larr = ("{{yes}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{yes}}")).split("|"); var rarr = ("{{no}}" == null ? "null" : haxe_ui_containers_dialogs_DialogButton.toString("{{no}}")).split("|"); var _g = 0; while(_g < rarr.length) { var r = rarr[_g]; ++_g; if(larr.indexOf(r) == -1) { larr.push(r); } } this.buttons = larr.join("|"); break; } this.createButtons(); } if(this.get_title() == "Message") { switch(this.get_type()) { case "error": this.set_title("{{messagebox.title.error}}"); break; case "info": this.set_title("{{messagebox.title.info}}"); break; case "question": this.set_title("{{messagebox.title.question}}"); break; case "warning": this.set_title("{{messagebox.title.warning}}"); break; case "yesno": this.set_title("{{messagebox.title.question}}"); break; } } } ,registerBehaviours: function() { haxe_ui_backend_MessageBoxBase.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_backend_MessageBoxBase.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_dialogs_MessageBox(); } ,__class__: haxe_ui_containers_dialogs_MessageBox }); var haxe_ui_containers_dialogs_OpenFileDialog = function(options,callback) { haxe_ui_backend_OpenFileDialogImpl.call(this,options,callback); }; $hxClasses["haxe.ui.containers.dialogs.OpenFileDialog"] = haxe_ui_containers_dialogs_OpenFileDialog; haxe_ui_containers_dialogs_OpenFileDialog.__name__ = "haxe.ui.containers.dialogs.OpenFileDialog"; haxe_ui_containers_dialogs_OpenFileDialog.__super__ = haxe_ui_backend_OpenFileDialogImpl; haxe_ui_containers_dialogs_OpenFileDialog.prototype = $extend(haxe_ui_backend_OpenFileDialogImpl.prototype,{ __class__: haxe_ui_containers_dialogs_OpenFileDialog }); var haxe_ui_containers_dialogs_SaveFileDialog = function(options,callback) { haxe_ui_backend_SaveFileDialogImpl.call(this,options,callback); }; $hxClasses["haxe.ui.containers.dialogs.SaveFileDialog"] = haxe_ui_containers_dialogs_SaveFileDialog; haxe_ui_containers_dialogs_SaveFileDialog.__name__ = "haxe.ui.containers.dialogs.SaveFileDialog"; haxe_ui_containers_dialogs_SaveFileDialog.__super__ = haxe_ui_backend_SaveFileDialogImpl; haxe_ui_containers_dialogs_SaveFileDialog.prototype = $extend(haxe_ui_backend_SaveFileDialogImpl.prototype,{ __class__: haxe_ui_containers_dialogs_SaveFileDialog }); var haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._Menu.CurrentIndexBehaviour"] = haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour; haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour.__name__ = "haxe.ui.containers.menus._Menu.CurrentIndexBehaviour"; haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ set: function(value) { var _menu = this._component; var itemsNbr = _menu.findComponents(null,haxe_ui_containers_menus_MenuItem,1).length; if(haxe_ui_util_Variant.gte(value,haxe_ui_util_Variant.fromInt(itemsNbr))) { value = haxe_ui_util_Variant.fromInt(0); } haxe_ui_behaviours_DataBehaviour.prototype.set.call(this,value); } ,validateData: function() { var _menu = this._component; var items = _menu.findComponents(null,haxe_ui_containers_menus_MenuItem,1); var itemNbr = haxe_ui_util_Variant.toInt(this._value); _menu.set_currentItem(items[itemNbr]); } ,__class__: haxe_ui_containers_menus__$Menu_CurrentIndexBehaviour }); var haxe_ui_containers_menus__$Menu_CurrentItemBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._Menu.CurrentItemBehaviour"] = haxe_ui_containers_menus__$Menu_CurrentItemBehaviour; haxe_ui_containers_menus__$Menu_CurrentItemBehaviour.__name__ = "haxe.ui.containers.menus._Menu.CurrentItemBehaviour"; haxe_ui_containers_menus__$Menu_CurrentItemBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$Menu_CurrentItemBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var _menu = this._component; var menuItemC = haxe_ui_util_Variant.toComponent(this._value); var menuItem = menuItemC; var index = _menu.findComponents(null,haxe_ui_containers_menus_MenuItem,1).indexOf(menuItem); _menu.set_currentIndex(index); var _g = 0; var _g1 = _menu._children == null ? [] : _menu._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClass(":hover",true,true); } var item = haxe_ui_util_Variant.toComponent(this._value); if(item != null) { item.addClass(":hover",true,true); } } ,__class__: haxe_ui_containers_menus__$Menu_CurrentItemBehaviour }); var haxe_ui_containers_menus_MenuEvents = function(menu) { this.hasScreenMouseDown = false; this.lastEventSubMenu = null; this._over = false; this.button = null; this._timer = null; this.parentMenu = null; this.currentSubMenu = null; haxe_ui_events_Events.call(this,menu); this._menu = menu; }; $hxClasses["haxe.ui.containers.menus.MenuEvents"] = haxe_ui_containers_menus_MenuEvents; haxe_ui_containers_menus_MenuEvents.__name__ = "haxe.ui.containers.menus.MenuEvents"; haxe_ui_containers_menus_MenuEvents.__super__ = haxe_ui_events_Events; haxe_ui_containers_menus_MenuEvents.prototype = $extend(haxe_ui_events_Events.prototype,{ _menu: null ,currentSubMenu: null ,parentMenu: null ,_timer: null ,button: null ,register: function() { if(!this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver))) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); } if(!this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut))) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); } var _g = 0; var _this = this._menu; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(((child) instanceof haxe_ui_containers_menus_MenuItem)) { var item = js_Boot.__cast(child , haxe_ui_containers_menus_MenuItem); if(!item.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick))) { item.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick)); } if(!item.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onItemMouseOver))) { item.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onItemMouseOver)); } if(!item.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onItemMouseOut))) { item.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onItemMouseOut)); } } } if(!this.hasEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onHidden))) { this.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onHidden)); } if(!this.hasEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onShown))) { this.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onShown)); } } ,unregister: function() { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); var _g = 0; var _this = this._menu; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onItemClick)); child.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onItemMouseOver)); child.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onItemMouseOut)); } this.unregisterEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onHidden)); this.unregisterEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onShown)); } ,onDispose: function() { this.removeScreenMouseDown(); } ,_over: null ,onMouseOver: function(event) { this._over = true; } ,onMouseOut: function(event) { this._over = false; } ,onItemClick: function(event) { var item = js_Boot.__cast(event.target , haxe_ui_containers_menus_MenuItem); if(!item.get_expandable()) { var event = new haxe_ui_events_MenuEvent(haxe_ui_events_MenuEvent.MENU_SELECTED); event.menu = this._menu; event.menuItem = item; this.findRootMenu().dispatch(event); if(this._menu.menuBar == null) { var beforeCloseEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE); beforeCloseEvent.relatedComponent = item; this.findRootMenu().dispatch(beforeCloseEvent); if(beforeCloseEvent.canceled) { return; } this.hideMenu(); this.removeScreenMouseDown(); } this._menu.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CLOSE)); } } ,lastEventSubMenu: null ,onItemMouseOver: function(event) { var _gthis = this; var builder = js_Boot.__cast(this._menu._compositeBuilder , haxe_ui_containers_menus__$Menu_Builder); var subMenus = builder._subMenus; var item = js_Boot.__cast(event.target , haxe_ui_containers_menus_MenuItem); var _g = 0; var _this = this._menu; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child != item) { child.removeClass(":hover",true,true); } } if(this.parentMenu != null) { var menuItem = null; var map = (js_Boot.__cast(this.parentMenu._compositeBuilder , haxe_ui_containers_menus__$Menu_Builder))._subMenus; var _g_map = map; var _g_keys = map.keys(); while(_g_keys.hasNext()) { var key = _g_keys.next(); var _g_value = _g_map.get(key); var _g_key = key; var mi = _g_key; var menu = _g_value; if(this._menu == menu) { menuItem = mi; } } this.parentMenu.set_currentItem(menuItem); } if(this._timer != null) { this._timer.stop(); this._timer = null; } if(subMenus.h[item.__id__] != null) { this._menu.set_currentItem(item); this.lastEventSubMenu = event; var f = function() { _gthis.showSubMenu(js_Boot.__cast(subMenus.h[item.__id__] , haxe_ui_containers_menus_Menu),item); _gthis._timer.stop(); _gthis._timer = null; }; this._timer = new haxe_ui_util_Timer(400,f); } else if(this.currentSubMenu != null) { if(!this.isMouseAimingForSubMenu(event)) { this.hideCurrentSubMenu(); this.lastEventSubMenu = null; } else { var f1 = function() { _gthis.hideCurrentSubMenu(); _gthis._timer.stop(); _gthis._timer = null; }; this._timer = new haxe_ui_util_Timer(400,f1); } this.lastEventSubMenu = event; } } ,isMouseAimingForSubMenu: function(event) { if(this.lastEventSubMenu == null) { return true; } var vX = this.lastEventSubMenu.screenX; var vY = this.lastEventSubMenu.screenY; var v2X = this.currentSubMenu.get_screenLeft(); var v2Y = this.currentSubMenu.get_screenTop(); var v3X = v2X; var v3Y = this.currentSubMenu.get_screenTop() + this.currentSubMenu.get_height(); var d1 = (event.screenX - v2X) * (vY - v2Y) - (vX - v2X) * (event.screenY - v2Y); var d2 = (event.screenX - v3X) * (v2Y - v3Y) - (v2X - v3X) * (event.screenY - v3Y); var d3 = (event.screenX - vX) * (v3Y - vY) - (v3X - vX) * (event.screenY - vY); var hasNeg = d1 < 0 || d2 < 0 || d3 < 0; var hasPos = d1 > 0 || d2 > 0 || d3 > 0; return !(hasNeg && hasPos); } ,onItemMouseOut: function(event) { if(this._timer != null) { this._timer.stop(); this._timer = null; } if(this.currentSubMenu != null) { this._menu.get_currentItem().addClass(":hover",true,true); return; } else { this._menu.set_currentItem(null); } } ,showSubMenu: function(subMenu,source) { this.hideCurrentSubMenu(); subMenu.set_menuStyleNames(this._menu.get_menuStyleNames()); subMenu.addClass(this._menu.get_menuStyleNames()); var componentOffset = source.getComponentOffset(); var left = source.get_screenLeft() + source.get_actualComponentWidth() + componentOffset.x; var top = source.get_screenTop(); haxe_ui_core_Screen.get_instance().addComponent(subMenu); subMenu.validateNow(); if(left + subMenu.get_actualComponentWidth() > haxe_ui_core_Screen.get_instance().get_width()) { left = source.get_screenLeft() - subMenu.get_actualComponentWidth(); } var offsetX = 0; var offsetY = 0; if(subMenu.get_style() != null) { if(subMenu.get_style().paddingLeft > 1) { offsetX = subMenu.get_style().paddingLeft / 2; } else { offsetX = 0; } if(subMenu.get_style().paddingTop > 1) { offsetY = subMenu.get_style().paddingTop - 1; } else { offsetY = 1; } } subMenu.set_left(left + offsetX); subMenu.set_top(top - offsetY); this.currentSubMenu = subMenu; } ,hideMenu: function() { var root = this.findRootMenu(); if(root == null) { return; } var events = js_Boot.__cast(root._internalEvents , haxe_ui_containers_menus_MenuEvents); if(events.button == null) { var _g = 0; var _g1 = root._children == null ? [] : root._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClass(":hover",true,true); } events.hideCurrentSubMenu(); haxe_ui_core_Screen.get_instance().removeComponent(root,false); } } ,hideCurrentSubMenu: function() { if(this.currentSubMenu == null) { return; } if(this.currentSubMenu._isDisposed) { return; } var _g = 0; var _this = this.currentSubMenu; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClass(":hover",true,true); } var subMenuEvents = js_Boot.__cast(this.currentSubMenu._internalEvents , haxe_ui_containers_menus_MenuEvents); subMenuEvents.hideCurrentSubMenu(); haxe_ui_core_Screen.get_instance().removeComponent(this.currentSubMenu,false); this.currentSubMenu = null; } ,onHidden: function(event) { var _g = 0; var _this = this._menu; var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.removeClass(":hover",true,true); } this.hideCurrentSubMenu(); } ,onShown: function(event) { this.addScreenMouseDown(); } ,findRootMenu: function() { var root = null; var ref = this._menu; while(ref != null) { var events = js_Boot.__cast(ref._internalEvents , haxe_ui_containers_menus_MenuEvents); if(events.parentMenu == null) { root = events._menu; break; } ref = events.parentMenu; } return root; } ,hasScreenMouseDown: null ,addScreenMouseDown: function() { var root = this.findRootMenu(); var events = js_Boot.__cast(root._internalEvents , haxe_ui_containers_menus_MenuEvents); if(events.hasScreenMouseDown == false) { events.hasScreenMouseDown = true; haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } } ,removeScreenMouseDown: function() { var root = this.findRootMenu(); var events = js_Boot.__cast(root._internalEvents , haxe_ui_containers_menus_MenuEvents); events.hasScreenMouseDown = false; haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } ,onScreenMouseDown: function(event) { var close = true; if(this._menu.hitTest(event.screenX,event.screenY)) { close = false; } else if(this.button != null && this.button.hitTest(event.screenX,event.screenY)) { close = false; } else { var ref = this._menu; var refEvents = js_Boot.__cast(ref._internalEvents , haxe_ui_containers_menus_MenuEvents); var refSubMenu = refEvents.currentSubMenu; while(refSubMenu != null) { if(refSubMenu.hitTest(event.screenX,event.screenY)) { close = false; break; } ref = refSubMenu; refEvents = js_Boot.__cast(ref._internalEvents , haxe_ui_containers_menus_MenuEvents); refSubMenu = refEvents.currentSubMenu; } } if(close) { this.hideMenu(); this.removeScreenMouseDown(); this._menu.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CLOSE)); } } ,__class__: haxe_ui_containers_menus_MenuEvents }); var haxe_ui_containers_menus__$Menu_Builder = function(menu) { this._subMenus = new haxe_ds_ObjectMap(); haxe_ui_core_CompositeBuilder.call(this,menu); this._menu = menu; }; $hxClasses["haxe.ui.containers.menus._Menu.Builder"] = haxe_ui_containers_menus__$Menu_Builder; haxe_ui_containers_menus__$Menu_Builder.__name__ = "haxe.ui.containers.menus._Menu.Builder"; haxe_ui_containers_menus__$Menu_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_menus__$Menu_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _menu: null ,_subMenus: null ,onThemeChanged: function() { var menuItem = this._subMenus.keys(); while(menuItem.hasNext()) { var menuItem1 = menuItem.next(); var menu = this._subMenus.h[menuItem1.__id__]; haxe_ui_core_Screen.get_instance().invalidateChildren(menu); haxe_ui_core_Screen.get_instance().onThemeChangedChildren(menu); } } ,addComponent: function(child) { if(((child) instanceof haxe_ui_containers_menus_Menu)) { var menu = js_Boot.__cast(child , haxe_ui_containers_menus_Menu); var item = new haxe_ui_containers_menus_MenuItem(); item.set_id(child.get_id() + "Item"); item.set_text(child.get_text()); item.set_icon(menu.get_icon()); item.set_tooltip(child.get_tooltip()); item.set_expandable(true); this._menu.addComponent(item); (js_Boot.__cast(menu._internalEvents , haxe_ui_containers_menus_MenuEvents)).parentMenu = this._menu; menu.registerEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onMenuPropertyChanged)); this._subMenus.set(item,menu); return child; } return null; } ,onMenuPropertyChanged: function(event) { if(event.data == "text") { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var item = this._subMenus.keys(); while(item.hasNext()) { var item1 = item.next(); var subMenu = this._subMenus.h[item1.__id__]; if(subMenu == menu) { item1.set_text(event.target.get_text()); break; } } } } ,onComponentAdded: function(child) { if(((child) instanceof haxe_ui_containers_menus_Menu) || ((child) instanceof haxe_ui_containers_menus_MenuItem)) { this._menu.registerInternalEvents(null,true); } } ,findComponent: function(criteria,type,recursive,searchType) { var match = haxe_ui_core_CompositeBuilder.prototype.findComponent.call(this,criteria,type,recursive,searchType); if(match == null) { var menu = this._subMenus.iterator(); while(menu.hasNext()) { var menu1 = menu.next(); match = menu1.findComponent(criteria,type,recursive,searchType); if(menu1.matchesSearch(criteria,type,searchType)) { return menu1; } else { match = menu1.findComponent(criteria,type,recursive,searchType); } if(match != null) { break; } } } return match; } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } var r = []; var menu = this._subMenus.iterator(); while(menu.hasNext()) { var menu1 = menu.next(); var match = true; if(styleName != null && menu1.classes.indexOf(styleName) != -1 == false) { match = false; } if(type != null && js_Boot.__instanceof(menu1,type) == false) { match = false; } if(match == true) { r.push(menu1); } else { var childArray = menu1.findComponents(styleName,type,maxDepth); var _g = 0; while(_g < childArray.length) { var c = childArray[_g]; ++_g; r.push(c); } } } return r; } ,destroy: function() { haxe_ui_core_CompositeBuilder.prototype.destroy.call(this); if(this._menu != null && this._menu._isDisposed == false) { haxe_ui_core_Screen.get_instance().removeComponent(this._menu); } var subMenu = this._subMenus.iterator(); while(subMenu.hasNext()) { var subMenu1 = subMenu.next(); haxe_ui_core_Screen.get_instance().removeComponent(subMenu1); } } ,hide: function() { haxe_ui_core_Screen.get_instance().removeComponent(this._menu,false); return true; } ,show: function() { haxe_ui_core_Screen.get_instance().addComponent(this._menu); return true; } ,__class__: haxe_ui_containers_menus__$Menu_Builder }); var haxe_ui_containers_menus__$Menu_Layout = function() { haxe_ui_layouts_VerticalLayout.call(this); }; $hxClasses["haxe.ui.containers.menus._Menu.Layout"] = haxe_ui_containers_menus__$Menu_Layout; haxe_ui_containers_menus__$Menu_Layout.__name__ = "haxe.ui.containers.menus._Menu.Layout"; haxe_ui_containers_menus__$Menu_Layout.__super__ = haxe_ui_layouts_VerticalLayout; haxe_ui_containers_menus__$Menu_Layout.prototype = $extend(haxe_ui_layouts_VerticalLayout.prototype,{ resizeChildren: function() { if(!this._component.get_autoWidth()) { var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() == null) { child.set_percentWidth(100); } } haxe_ui_layouts_VerticalLayout.prototype.resizeChildren.call(this); } else { var usableSize = this.get_usableSize(); var biggest = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_width() <= 0) { child.validateNow(); } if(child.get_width() > biggest) { biggest = child.get_width(); } } var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var cx = null; cx = 100; child.set_width(biggest); } } } ,cloneLayout: function() { var c = haxe_ui_layouts_VerticalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers_menus__$Menu_Layout(); } ,__class__: haxe_ui_containers_menus__$Menu_Layout }); var haxe_ui_containers_menus_MenuBar = function() { haxe_ui_containers_HBox.call(this); }; $hxClasses["haxe.ui.containers.menus.MenuBar"] = haxe_ui_containers_menus_MenuBar; haxe_ui_containers_menus_MenuBar.__name__ = "haxe.ui.containers.menus.MenuBar"; haxe_ui_containers_menus_MenuBar.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_menus_MenuBar.prototype = $extend(haxe_ui_containers_HBox.prototype,{ onThemeChanged: function() { haxe_ui_containers_HBox.prototype.onThemeChanged.call(this); var builder = js_Boot.__cast(this._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); builder.onThemeChanged(); } ,registerComposite: function() { haxe_ui_containers_HBox.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_menus__$MenuBar_Events; this._compositeBuilderClass = haxe_ui_containers_menus__$MenuBar_Builder; } ,_internal__onMenuSelected: null ,onMenuSelected: null ,set_onMenuSelected: function(value) { if(this._internal__onMenuSelected != null) { this.unregisterEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,this._internal__onMenuSelected); this._internal__onMenuSelected = null; } if(value != null) { this._internal__onMenuSelected = value; this.registerEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,value); } return value; } ,_internal__onMenuOpened: null ,onMenuOpened: null ,set_onMenuOpened: function(value) { if(this._internal__onMenuOpened != null) { this.unregisterEvent(haxe_ui_events_MenuEvent.MENU_OPENED,this._internal__onMenuOpened); this._internal__onMenuOpened = null; } if(value != null) { this._internal__onMenuOpened = value; this.registerEvent(haxe_ui_events_MenuEvent.MENU_OPENED,value); } return value; } ,_internal__onMenuClosed: null ,onMenuClosed: null ,set_onMenuClosed: function(value) { if(this._internal__onMenuClosed != null) { this.unregisterEvent(haxe_ui_events_MenuEvent.MENU_CLOSED,this._internal__onMenuClosed); this._internal__onMenuClosed = null; } if(value != null) { this._internal__onMenuClosed = value; this.registerEvent(haxe_ui_events_MenuEvent.MENU_CLOSED,value); } return value; } ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); this.behaviours.register("menuStyleNames",haxe_ui_behaviours_DefaultBehaviour); } ,get_menuStyleNames: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("menuStyleNames")); } ,set_menuStyleNames: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"menuStyleNames",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("menuStyleNames",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"menuStyleNames")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_menus_MenuBar(); } ,__class__: haxe_ui_containers_menus_MenuBar ,__properties__: $extend(haxe_ui_containers_HBox.prototype.__properties__,{set_menuStyleNames:"set_menuStyleNames",get_menuStyleNames:"get_menuStyleNames",set_onMenuClosed:"set_onMenuClosed",set_onMenuOpened:"set_onMenuOpened",set_onMenuSelected:"set_onMenuSelected"}) }); var haxe_ui_containers_menus__$MenuBar_Events = function(menubar) { haxe_ui_events_Events.call(this,menubar); this._menubar = menubar; }; $hxClasses["haxe.ui.containers.menus._MenuBar.Events"] = haxe_ui_containers_menus__$MenuBar_Events; haxe_ui_containers_menus__$MenuBar_Events.__name__ = "haxe.ui.containers.menus._MenuBar.Events"; haxe_ui_containers_menus__$MenuBar_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers_menus__$MenuBar_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ _menubar: null ,_currentMenu: null ,_currentButton: null ,register: function() { var builder = js_Boot.__cast(this._menubar._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); var _g = 0; var _g1 = builder._buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(!button.hasEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onButtonClick))) { button.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onButtonClick)); } if(!button.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onButtonOver))) { button.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onButtonOver)); } } } ,unregister: function() { var builder = js_Boot.__cast(this._menubar._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); var _g = 0; var _g1 = builder._buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; button.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onButtonClick)); button.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onButtonOver)); } } ,onCompleteButton: function(event) { var target = js_Boot.__cast(event.target , haxe_ui_components_Button); target.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onCompleteButton)); this.hideCurrentMenu(); } ,onButtonClick: function(event) { var builder = js_Boot.__cast(this._menubar._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); var target = js_Boot.__cast(event.target , haxe_ui_components_Button); var index = builder._buttons.indexOf(target); if(target.get_toggle() == false) { var menu = builder._menus[index]; var newEvent = new haxe_ui_events_MenuEvent(haxe_ui_events_MenuEvent.MENU_SELECTED); newEvent.menu = menu; this._menubar.dispatch(newEvent); target.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onCompleteButton)); menu.dispatch(new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.CLICK)); return; } if(target.get_selected() == true) { this.showMenu(index); } else if(this._currentButton != null) { this.hideCurrentMenu(); } } ,onButtonOver: function(event) { if(this._currentMenu == null) { return; } var builder = js_Boot.__cast(this._menubar._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); var target = js_Boot.__cast(event.target , haxe_ui_components_Button); var index = builder._buttons.indexOf(target); var menu = builder._menus[index]; if(menu != this._currentMenu) { this.showMenu(index,true); } } ,showMenu: function(index,force) { if(force == null) { force = false; } var builder = js_Boot.__cast(this._menubar._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); var menu = builder._menus[index]; menu.addClass("primary-menu"); var hasChildren = (menu._children == null ? [] : menu._children).length > 0; var target = builder._buttons[index]; if(this._currentMenu == menu) { return; } menu.menuBar = this._menubar; var _g = 0; var _g1 = builder._buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button != target) { button.set_selected(false); } } target.set_selected(true); this.hideCurrentMenu(force); (js_Boot.__cast(menu._internalEvents , haxe_ui_containers_menus_MenuEvents)).button = target; if(menu.hasEvent(haxe_ui_events_UIEvent.CLOSE,$bind(this,this.onMenuClose)) == false) { menu.registerEvent(haxe_ui_events_UIEvent.CLOSE,$bind(this,this.onMenuClose)); } var rtl = false; if(hasChildren == true) { var componentOffset = target.getComponentOffset(); var left = target.get_screenLeft() + componentOffset.x; var marginTop = 0; if(menu.get_style() != null && menu.get_style().marginTop != null) { marginTop = menu.get_style().marginTop; } var top = target.get_screenTop() + (target.get_actualComponentHeight() - haxe_ui_Toolkit.get_scaleY()) + componentOffset.y + marginTop; menu.set_menuStyleNames(this._menubar.get_menuStyleNames()); menu.addClasses([this._menubar.get_menuStyleNames(),"expanded"]); if(menu.findComponent("menu-filler",null,false) == null) { var filler = new haxe_ui_core_Component(); filler.set_horizontalAlign("right"); filler.set_includeInLayout(false); filler.addClass("menu-filler"); filler.set_id("menu-filler"); menu.addComponent(filler); } menu.pauseEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,true); menu.show(); menu.syncComponentValidation(); menu.resumeEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,true,true); if(left + menu.get_actualComponentWidth() > haxe_ui_core_Screen.get_instance().get_actualWidth()) { left = target.get_screenLeft() - menu.get_actualComponentWidth() + target.get_actualComponentWidth(); rtl = true; } menu.set_left(left); menu.set_top(top - haxe_ui_Toolkit.get_scaleY()); } this._currentButton = target; this._currentMenu = menu; if(hasChildren == true) { var cx = menu.get_width() - this._currentButton.get_width(); var offset = 0; if(this._currentMenu.get_style() != null && this._currentMenu.get_style().borderRadiusTopRight > 0) { offset = this._currentMenu.get_style().borderRadiusTopRight - 1; } cx -= offset; var filler = menu.findComponent("menu-filler",null,false); if(cx > 0 && filler != null) { ++cx; filler.set_width(cx); if(rtl == false) { filler.set_left(menu.get_width() - cx - offset); } } else if(filler != null) { menu.removeComponent(filler); } if(!this._currentMenu.hasEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,$bind(this,this.onMenuSelected))) { this._currentMenu.registerEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,$bind(this,this.onMenuSelected)); } } if(hasChildren == true) { this._currentMenu.dispatch(new haxe_ui_events_MouseEvent(haxe_ui_events_MouseEvent.CLICK)); var menuEvent = new haxe_ui_events_MenuEvent(haxe_ui_events_MenuEvent.MENU_OPENED); menuEvent.menu = this._currentMenu; this._currentMenu.dispatch(menuEvent); this.dispatch(menuEvent); } } ,hideCurrentMenu: function(force) { if(force == null) { force = false; } if(this._currentMenu != null) { var builder = js_Boot.__cast(this._menubar._compositeBuilder , haxe_ui_containers_menus__$MenuBar_Builder); var _g = 0; var _g1 = builder._buttons; while(_g < _g1.length) { var button = _g1[_g]; ++_g; if(button.classes.indexOf("menubar-button-no-children-active") != -1) { button.swapClass("menubar-button-no-children","menubar-button-no-children-active"); } } if(!force && this._currentMenu.hitTest(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY)) { var beforeCloseEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE); beforeCloseEvent.relatedComponent = this._currentMenu.findComponentsUnderPoint(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY,haxe_ui_containers_menus_MenuItem)[0]; this._currentMenu.dispatch(beforeCloseEvent); if(beforeCloseEvent.canceled) { return; } } if(!force && this._currentMenu.hitTest(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY)) { var beforeCloseEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.BEFORE_CLOSE); beforeCloseEvent.relatedComponent = this._currentMenu.findComponentsUnderPoint(haxe_ui_core_Screen.get_instance().currentMouseX,haxe_ui_core_Screen.get_instance().currentMouseY,haxe_ui_containers_menus_MenuItem)[0]; this._menubar.dispatch(beforeCloseEvent); if(beforeCloseEvent.canceled) { return; } } var menuEvent = new haxe_ui_events_MenuEvent(haxe_ui_events_MenuEvent.MENU_CLOSED); menuEvent.menu = this._currentMenu; this._currentMenu.dispatch(menuEvent); this.dispatch(menuEvent); this._currentMenu.unregisterEvent(haxe_ui_events_MenuEvent.MENU_SELECTED,$bind(this,this.onMenuSelected)); this._currentMenu.hide(); this._currentButton.set_selected(false); this._currentButton = null; this._currentMenu = null; } } ,onMenuClose: function(event) { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); if(this._currentMenu == menu) { this.hideCurrentMenu(); } } ,onMenuSelected: function(event) { var newEvent = new haxe_ui_events_MenuEvent(haxe_ui_events_MenuEvent.MENU_SELECTED); newEvent.menu = event.menu; newEvent.menuItem = event.menuItem; this._menubar.dispatch(newEvent); this.hideCurrentMenu(); } ,__class__: haxe_ui_containers_menus__$MenuBar_Events }); var haxe_ui_containers_menus__$MenuBar_Builder = function(menubar) { this._menus = []; this._buttons = []; haxe_ui_core_CompositeBuilder.call(this,menubar); this._menubar = menubar; }; $hxClasses["haxe.ui.containers.menus._MenuBar.Builder"] = haxe_ui_containers_menus__$MenuBar_Builder; haxe_ui_containers_menus__$MenuBar_Builder.__name__ = "haxe.ui.containers.menus._MenuBar.Builder"; haxe_ui_containers_menus__$MenuBar_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_menus__$MenuBar_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _menubar: null ,_buttons: null ,_menus: null ,onThemeChanged: function() { var _g = 0; var _g1 = this._menus; while(_g < _g1.length) { var menu = _g1[_g]; ++_g; haxe_ui_core_Screen.get_instance().invalidateChildren(menu); haxe_ui_core_Screen.get_instance().onThemeChangedChildren(menu); } } ,create: function() { } ,destroy: function() { haxe_ui_core_CompositeBuilder.prototype.destroy.call(this); var _g = 0; var _g1 = this._menus; while(_g < _g1.length) { var menu = _g1[_g]; ++_g; haxe_ui_core_Screen.get_instance().removeComponent(menu); } this._menus = null; } ,addComponent: function(child) { if(((child) instanceof haxe_ui_containers_menus_Menu)) { var menu = js_Boot.__cast(child , haxe_ui_containers_menus_Menu); var button = new haxe_ui_components_Button(); button.set_text(menu.get_text()); button.set_icon(menu.get_icon()); button.set_tooltip(menu.get_tooltip()); button.set_hidden(child.get_hidden()); button.set_allowFocus(false); button.set_disabled(child.get_disabled()); haxe_ui_locale_LocaleManager.get_instance().cloneForComponent(child,button); this._buttons.push(button); this._menubar.addComponent(button); this._menubar.registerInternalEvents(null,true); this._menus.push(menu); this.styleMenuButton(menu,button); menu.registerEvent(haxe_ui_events_UIEvent.COMPONENT_ADDED,$bind(this,this.onChildAdded)); menu.registerEvent(haxe_ui_events_UIEvent.COMPONENT_REMOVED,$bind(this,this.onChildRemoved)); menu.registerEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,$bind(this,this.onMenuPropertyChanged)); return menu; } return null; } ,onChildAdded: function(event) { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var index = this._menus.indexOf(menu); var button = this._buttons[index]; this.styleMenuButton(menu,button); } ,onChildRemoved: function(event) { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var index = this._menus.indexOf(menu); var button = this._buttons[index]; this.styleMenuButton(menu,button); } ,onMenuPropertyChanged: function(event) { if(event.data == "text") { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var index = this._menus.indexOf(menu); var button = this._buttons[index]; button.set_text(event.target.get_text()); } else if(event.data == "hidden") { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var index = this._menus.indexOf(menu); var button = this._buttons[index]; button.set_hidden(event.target.get_hidden()); } else if(event.data == "disabled") { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var index = this._menus.indexOf(menu); var button = this._buttons[index]; button.set_disabled(event.target.get_disabled()); } else if(event.data == "icon") { var menu = js_Boot.__cast(event.target , haxe_ui_containers_menus_Menu); var index = this._menus.indexOf(menu); var button = this._buttons[index]; button.set_icon(menu.get_icon()); } } ,addComponentAt: function(child,index) { return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } return null; } ,styleMenuButton: function(menu,button) { var hasChildren = (menu._children == null ? [] : menu._children).length > 0; if(hasChildren == true) { button.swapClass("menubar-button","menubar-button-no-children"); } else { button.swapClass("menubar-button-no-children","menubar-button"); } button.set_toggle(hasChildren); this._menubar.registerInternalEvents(null,true); } ,getComponentIndex: function(child) { return -1; } ,setComponentIndex: function(child,index) { return null; } ,getComponentAt: function(index) { return null; } ,findComponent: function(criteria,type,recursive,searchType) { var match = haxe_ui_core_CompositeBuilder.prototype.findComponent.call(this,criteria,type,recursive,searchType); if(match == null) { var _g = 0; var _g1 = this._menus; while(_g < _g1.length) { var menu = _g1[_g]; ++_g; match = menu.findComponent(criteria,type,recursive,searchType); if(menu.matchesSearch(criteria,type,searchType)) { return menu; } else { match = menu.findComponent(criteria,type,recursive,searchType); } if(match != null) { break; } } } return match; } ,findComponents: function(styleName,type,maxDepth) { if(maxDepth == null) { maxDepth = 5; } var r = []; var _g = 0; var _g1 = this._menus; while(_g < _g1.length) { var menu = _g1[_g]; ++_g; var match = true; if(styleName != null && menu.classes.indexOf(styleName) != -1 == false) { match = false; } if(type != null && js_Boot.__instanceof(menu,type) == false) { match = false; } if(match == true) { r.push(menu); } var childArray = menu.findComponents(styleName,type,maxDepth); var _g2 = 0; while(_g2 < childArray.length) { var c = childArray[_g2]; ++_g2; r.push(c); } } return r; } ,__class__: haxe_ui_containers_menus__$MenuBar_Builder }); var haxe_ui_containers_menus_MenuItem = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.containers.menus.MenuItem"] = haxe_ui_containers_menus_MenuItem; haxe_ui_containers_menus_MenuItem.__name__ = "haxe.ui.containers.menus.MenuItem"; haxe_ui_containers_menus_MenuItem.__super__ = haxe_ui_containers_Box; haxe_ui_containers_menus_MenuItem.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_containers_menus__$MenuItem_TextBehaviour); this.behaviours.register("shortcutText",haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour); this.behaviours.register("icon",haxe_ui_containers_menus__$MenuItem_IconBehaviour); this.behaviours.register("expandable",haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour); } ,get_shortcutText: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("shortcutText")); } ,set_shortcutText: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"shortcutText",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("shortcutText",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"shortcutText")); return value; } ,get_expandable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("expandable")); } ,set_expandable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("expandable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"expandable")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if(this.get_shortcutText() != null) { c.set_shortcutText(this.get_shortcutText()); } c.set_expandable(this.get_expandable()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_menus_MenuItem(); } ,registerComposite: function() { haxe_ui_containers_Box.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_menus__$MenuItem_Events; this._compositeBuilderClass = haxe_ui_containers_menus__$MenuItem_Builder; this._defaultLayoutClass = haxe_ui_containers_menus__$MenuItem_Layout; } ,__class__: haxe_ui_containers_menus_MenuItem ,__properties__: $extend(haxe_ui_containers_Box.prototype.__properties__,{set_expandable:"set_expandable",get_expandable:"get_expandable",set_shortcutText:"set_shortcutText",get_shortcutText:"get_shortcutText"}) }); var haxe_ui_containers_menus_MenuCheckBox = function() { haxe_ui_containers_menus_MenuItem.call(this); }; $hxClasses["haxe.ui.containers.menus.MenuCheckBox"] = haxe_ui_containers_menus_MenuCheckBox; haxe_ui_containers_menus_MenuCheckBox.__name__ = "haxe.ui.containers.menus.MenuCheckBox"; haxe_ui_containers_menus_MenuCheckBox.__super__ = haxe_ui_containers_menus_MenuItem; haxe_ui_containers_menus_MenuCheckBox.prototype = $extend(haxe_ui_containers_menus_MenuItem.prototype,{ registerComposite: function() { haxe_ui_containers_menus_MenuItem.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers_menus__$MenuCheckBox_Builder; } ,registerBehaviours: function() { haxe_ui_containers_menus_MenuItem.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour); this.behaviours.register("shortcutText",haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour); this.behaviours.register("selected",haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour); } ,get_selected: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("selected")); } ,set_selected: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selected",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selected")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_menus_MenuItem.prototype.cloneComponent.call(this); c.set_selected(this.get_selected()); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_menus_MenuCheckBox(); } ,__class__: haxe_ui_containers_menus_MenuCheckBox ,__properties__: $extend(haxe_ui_containers_menus_MenuItem.prototype.__properties__,{set_selected:"set_selected",get_selected:"get_selected"}) }); var haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuCheckBox.TextBehaviour"] = haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour; haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour.__name__ = "haxe.ui.containers.menus._MenuCheckBox.TextBehaviour"; haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var checkbox = this._component.findComponent(null,haxe_ui_components_CheckBox,false); if(checkbox == null) { checkbox = new haxe_ui_components_CheckBox(); checkbox.set_styleNames("menuitem-checkbox"); checkbox.set_scriptAccess(false); this._component.addComponent(checkbox); } checkbox.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers_menus__$MenuCheckBox_TextBehaviour }); var haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuCheckBox.ShortcutTextBehaviour"] = haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour; haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour.__name__ = "haxe.ui.containers.menus._MenuCheckBox.ShortcutTextBehaviour"; haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent("menuitem-shortcut-label",null,false); if(label != null) { label.set_text(haxe_ui_util_Variant.toString(this._value)); } } ,__class__: haxe_ui_containers_menus__$MenuCheckBox_ShortcutTextBehaviour }); var haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuCheckBox.SelectedBehaviour"] = haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour; haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour.__name__ = "haxe.ui.containers.menus._MenuCheckBox.SelectedBehaviour"; haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var checkbox = this._component.findComponent(null,haxe_ui_components_CheckBox,false); if(checkbox == null) { checkbox = new haxe_ui_components_CheckBox(); checkbox.set_styleNames("menuitem-checkbox"); checkbox.set_scriptAccess(false); this._component.addComponent(checkbox); } checkbox.set_selected(haxe_ui_util_Variant.toBool(this._value)); } ,get: function() { var checkbox = this._component.findComponent(null,haxe_ui_components_CheckBox,false); if(checkbox == null) { return haxe_ui_util_Variant.fromBool(false); } return haxe_ui_util_Variant.fromBool(checkbox.get_selected()); } ,__class__: haxe_ui_containers_menus__$MenuCheckBox_SelectedBehaviour }); var haxe_ui_containers_menus__$MenuCheckBox_Builder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuCheckBox.Builder"] = haxe_ui_containers_menus__$MenuCheckBox_Builder; haxe_ui_containers_menus__$MenuCheckBox_Builder.__name__ = "haxe.ui.containers.menus._MenuCheckBox.Builder"; haxe_ui_containers_menus__$MenuCheckBox_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_menus__$MenuCheckBox_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _checkbox: null ,create: function() { this._checkbox = new haxe_ui_components_CheckBox(); this._checkbox.set_styleNames("menuitem-checkbox"); this._checkbox.set_percentWidth(100); this._checkbox.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onCheckboxChange)); this._checkbox.set_scriptAccess(false); this._component.addComponent(this._checkbox); var label = new haxe_ui_components_Label(); label.set_id("menuitem-shortcut-label"); label.set_styleNames("menuitem-shortcut-label"); label.set_scriptAccess(false); this._component.addComponent(label); } ,onCheckboxChange: function(event) { this._component.dispatch(event); } ,__class__: haxe_ui_containers_menus__$MenuCheckBox_Builder }); var haxe_ui_containers_menus__$MenuItem_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuItem.TextBehaviour"] = haxe_ui_containers_menus__$MenuItem_TextBehaviour; haxe_ui_containers_menus__$MenuItem_TextBehaviour.__name__ = "haxe.ui.containers.menus._MenuItem.TextBehaviour"; haxe_ui_containers_menus__$MenuItem_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuItem_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent("menuitem-label",null,true); label.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers_menus__$MenuItem_TextBehaviour }); var haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuItem.ShortcutTextBehaviour"] = haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour; haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour.__name__ = "haxe.ui.containers.menus._MenuItem.ShortcutTextBehaviour"; haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent("menuitem-shortcut-label",null,true); if(label != null) { label.set_text(haxe_ui_util_Variant.toString(this._value)); } } ,__class__: haxe_ui_containers_menus__$MenuItem_ShortcutTextBehaviour }); var haxe_ui_containers_menus__$MenuItem_IconBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuItem.IconBehaviour"] = haxe_ui_containers_menus__$MenuItem_IconBehaviour; haxe_ui_containers_menus__$MenuItem_IconBehaviour.__name__ = "haxe.ui.containers.menus._MenuItem.IconBehaviour"; haxe_ui_containers_menus__$MenuItem_IconBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuItem_IconBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { if(this._value == null || haxe_ui_util_Variant.get_isNull(this._value)) { return; } var icon = this._component.findComponent("menuitem-icon",null,true); if(icon == null) { icon = new haxe_ui_components_Image(); icon.set_scriptAccess(false); icon.set_id("menuitem-icon"); icon.addClass("menuitem-icon"); icon.addClass("icon"); this._component.addComponentAt(icon,0); } icon.set_resource(this._value); } ,__class__: haxe_ui_containers_menus__$MenuItem_IconBehaviour }); var haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuItem.ExpandableBehaviour"] = haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour; haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour.__name__ = "haxe.ui.containers.menus._MenuItem.ExpandableBehaviour"; haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var image = this._component.findComponent("menuitem-expandable"); if(image == null && haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { image = new haxe_ui_components_Image(); image.set_id("menuitem-expandable"); image.set_styleNames("menuitem-expandable"); image.set_scriptAccess(false); this._component.addComponent(image); var _this = this._component; var force = true; if(force == null) { force = false; } _this.invalidateComponent("style",false); if(force == true) { _this._style = null; } } else if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false))) { this._component.removeComponent(image); } } ,__class__: haxe_ui_containers_menus__$MenuItem_ExpandableBehaviour }); var haxe_ui_containers_menus__$MenuItem_Events = function(target) { haxe_ui_events_Events.call(this,target); }; $hxClasses["haxe.ui.containers.menus._MenuItem.Events"] = haxe_ui_containers_menus__$MenuItem_Events; haxe_ui_containers_menus__$MenuItem_Events.__name__ = "haxe.ui.containers.menus._MenuItem.Events"; haxe_ui_containers_menus__$MenuItem_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers_menus__$MenuItem_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ register: function() { if(!this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver))) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); } if(!this.hasEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut))) { this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); } } ,unregister: function() { this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onMouseOver)); this.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); } ,onMouseOver: function(event) { this._target.addClass(":hover",true,true); } ,onMouseOut: function(event) { this._target.removeClass(":hover",true,true); } ,__class__: haxe_ui_containers_menus__$MenuItem_Events }); var haxe_ui_containers_menus__$MenuItem_Builder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuItem.Builder"] = haxe_ui_containers_menus__$MenuItem_Builder; haxe_ui_containers_menus__$MenuItem_Builder.__name__ = "haxe.ui.containers.menus._MenuItem.Builder"; haxe_ui_containers_menus__$MenuItem_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_menus__$MenuItem_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ create: function() { haxe_ui_core_CompositeBuilder.prototype.create.call(this); var box = new haxe_ui_containers_HBox(); box.set_id("menuitem-container"); box.set_verticalAlign("center"); var label = new haxe_ui_components_Label(); label.set_id("menuitem-label"); label.set_styleNames("menuitem-label"); label.set_scriptAccess(false); box.addComponent(label); var label = new haxe_ui_components_Label(); label.set_id("menuitem-shortcut-label"); label.set_styleNames("menuitem-shortcut-label"); label.set_scriptAccess(false); box.addComponent(label); this._component.addComponent(box); } ,applyStyle: function(style) { var c = this._component.findComponent("menuitem-label",haxe_ui_core_Component); if(c != null) { var invalidate = false; if(style.color != null && c.get_customStyle().color != style.color) { c.get_customStyle().color = style.color; invalidate = true; } if(style.fontName != null && c.get_customStyle().fontName != style.fontName) { c.get_customStyle().fontName = style.fontName; invalidate = true; } if(style.fontSize != null && c.get_customStyle().fontSize != style.fontSize) { c.get_customStyle().fontSize = style.fontSize; invalidate = true; } if(style.cursor != null && c.get_customStyle().cursor != style.cursor) { c.get_customStyle().cursor = style.cursor; invalidate = true; } if(style.textAlign != null && c.get_customStyle().textAlign != style.textAlign) { c.get_customStyle().textAlign = style.textAlign; invalidate = true; } if(invalidate == true) { c.invalidateComponent("style",false); } } } ,__class__: haxe_ui_containers_menus__$MenuItem_Builder }); var haxe_ui_containers_menus__$MenuItem_Layout = function() { haxe_ui_layouts_HorizontalLayout.call(this); }; $hxClasses["haxe.ui.containers.menus._MenuItem.Layout"] = haxe_ui_containers_menus__$MenuItem_Layout; haxe_ui_containers_menus__$MenuItem_Layout.__name__ = "haxe.ui.containers.menus._MenuItem.Layout"; haxe_ui_containers_menus__$MenuItem_Layout.__super__ = haxe_ui_layouts_HorizontalLayout; haxe_ui_containers_menus__$MenuItem_Layout.prototype = $extend(haxe_ui_layouts_HorizontalLayout.prototype,{ resizeChildren: function() { if(this._component.get_percentWidth() != null) { var container = this._component.findComponent("menuitem-container",haxe_ui_containers_HBox); if(container != null && container.get_percentWidth() != 100) { container.set_percentWidth(100); } var label = this._component.findComponent("menuitem-label",haxe_ui_components_Label); if(label != null && label.get_percentWidth() != 100) { label.set_percentWidth(100); } haxe_ui_layouts_HorizontalLayout.prototype.resizeChildren.call(this); } else { haxe_ui_layouts_HorizontalLayout.prototype.resizeChildren.call(this); } } ,cloneLayout: function() { var c = haxe_ui_layouts_HorizontalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers_menus__$MenuItem_Layout(); } ,__class__: haxe_ui_containers_menus__$MenuItem_Layout }); var haxe_ui_containers_menus_MenuOptionBox = function() { haxe_ui_containers_menus_MenuItem.call(this); }; $hxClasses["haxe.ui.containers.menus.MenuOptionBox"] = haxe_ui_containers_menus_MenuOptionBox; haxe_ui_containers_menus_MenuOptionBox.__name__ = "haxe.ui.containers.menus.MenuOptionBox"; haxe_ui_containers_menus_MenuOptionBox.__super__ = haxe_ui_containers_menus_MenuItem; haxe_ui_containers_menus_MenuOptionBox.prototype = $extend(haxe_ui_containers_menus_MenuItem.prototype,{ registerComposite: function() { haxe_ui_containers_menus_MenuItem.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers_menus__$MenuOptionBox_Builder; } ,registerBehaviours: function() { haxe_ui_containers_menus_MenuItem.prototype.registerBehaviours.call(this); this.behaviours.register("componentGroup",haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour); this.behaviours.register("text",haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour); this.behaviours.register("shortcutText",haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour); this.behaviours.register("selected",haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour); this.behaviours.register("selectedOption",haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour); } ,get_componentGroup: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("componentGroup")); } ,set_componentGroup: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"componentGroup",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("componentGroup",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"componentGroup")); return value; } ,get_selected: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("selected")); } ,set_selected: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selected",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selected")); return value; } ,get_selectedOption: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toComponent(this.behaviours.get("selectedOption")); } ,set_selectedOption: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("selectedOption",haxe_ui_util_Variant.fromComponent(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"selectedOption")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_menus_MenuItem.prototype.cloneComponent.call(this); if(this.get_componentGroup() != null) { c.set_componentGroup(this.get_componentGroup()); } c.set_selected(this.get_selected()); if(this.get_selectedOption() != null) { c.set_selectedOption(this.get_selectedOption()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_menus_MenuOptionBox(); } ,__class__: haxe_ui_containers_menus_MenuOptionBox ,__properties__: $extend(haxe_ui_containers_menus_MenuItem.prototype.__properties__,{set_selectedOption:"set_selectedOption",get_selectedOption:"get_selectedOption",set_selected:"set_selected",get_selected:"get_selected",set_componentGroup:"set_componentGroup",get_componentGroup:"get_componentGroup"}) }); var haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuOptionBox.GroupBehaviour"] = haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour; haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour.__name__ = "haxe.ui.containers.menus._MenuOptionBox.GroupBehaviour"; haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var optionbox = this._component.findComponent(null,haxe_ui_components_OptionBox,false); if(optionbox == null) { optionbox = new haxe_ui_components_OptionBox(); optionbox.set_styleNames("menuitem-optionbox"); optionbox.set_scriptAccess(false); this._component.addComponent(optionbox); } optionbox.set_componentGroup(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers_menus__$MenuOptionBox_GroupBehaviour }); var haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuOptionBox.ShortcutTextBehaviour"] = haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour; haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour.__name__ = "haxe.ui.containers.menus._MenuOptionBox.ShortcutTextBehaviour"; haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent("menuitem-shortcut-label",null,false); if(label != null) { label.set_text(haxe_ui_util_Variant.toString(this._value)); } } ,__class__: haxe_ui_containers_menus__$MenuOptionBox_ShortcutTextBehaviour }); var haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuOptionBox.TextBehaviour"] = haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour; haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour.__name__ = "haxe.ui.containers.menus._MenuOptionBox.TextBehaviour"; haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var optionbox = this._component.findComponent(null,haxe_ui_components_OptionBox,false); if(optionbox == null) { optionbox = new haxe_ui_components_OptionBox(); optionbox.set_styleNames("menuitem-optionbox"); optionbox.set_scriptAccess(false); this._component.addComponent(optionbox); } optionbox.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers_menus__$MenuOptionBox_TextBehaviour }); var haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuOptionBox.SelectedBehaviour"] = haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour; haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour.__name__ = "haxe.ui.containers.menus._MenuOptionBox.SelectedBehaviour"; haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var optionbox = this._component.findComponent(null,haxe_ui_components_OptionBox,false); if(optionbox == null) { optionbox = new haxe_ui_components_OptionBox(); optionbox.set_styleNames("menuitem-optionbox"); optionbox.set_scriptAccess(false); this._component.addComponent(optionbox); } optionbox.set_selected(haxe_ui_util_Variant.toBool(this._value)); } ,get: function() { var optionbox = this._component.findComponent(null,haxe_ui_components_OptionBox,false); if(optionbox == null) { return haxe_ui_util_Variant.fromBool(false); } return haxe_ui_util_Variant.fromBool(optionbox.get_selected()); } ,__class__: haxe_ui_containers_menus__$MenuOptionBox_SelectedBehaviour }); var haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour = function(component) { haxe_ui_behaviours_Behaviour.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuOptionBox.SelectedOptionBehaviour"] = haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour; haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour.__name__ = "haxe.ui.containers.menus._MenuOptionBox.SelectedOptionBehaviour"; haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour.__super__ = haxe_ui_behaviours_Behaviour; haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour.prototype = $extend(haxe_ui_behaviours_Behaviour.prototype,{ get: function() { var optionbox = this._component.findComponent(null,haxe_ui_components_OptionBox,false); if(optionbox == null) { return null; } return haxe_ui_util_Variant.fromComponent(optionbox.get_selectedOption()); } ,__class__: haxe_ui_containers_menus__$MenuOptionBox_SelectedOptionBehaviour }); var haxe_ui_containers_menus__$MenuOptionBox_Builder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuOptionBox.Builder"] = haxe_ui_containers_menus__$MenuOptionBox_Builder; haxe_ui_containers_menus__$MenuOptionBox_Builder.__name__ = "haxe.ui.containers.menus._MenuOptionBox.Builder"; haxe_ui_containers_menus__$MenuOptionBox_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_menus__$MenuOptionBox_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _optionbox: null ,create: function() { this._optionbox = new haxe_ui_components_OptionBox(); this._optionbox.set_styleNames("menuitem-optionbox"); this._optionbox.set_percentWidth(100); this._optionbox.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onOptionboxChange)); this._optionbox.set_scriptAccess(false); this._component.addComponent(this._optionbox); var label = new haxe_ui_components_Label(); label.set_id("menuitem-shortcut-label"); label.set_styleNames("menuitem-shortcut-label"); label.set_scriptAccess(false); this._component.addComponent(label); } ,onOptionboxChange: function(event) { this._component.dispatch(event); } ,__class__: haxe_ui_containers_menus__$MenuOptionBox_Builder }); var haxe_ui_containers_menus_MenuSeparator = function() { haxe_ui_core_Component.call(this); }; $hxClasses["haxe.ui.containers.menus.MenuSeparator"] = haxe_ui_containers_menus_MenuSeparator; haxe_ui_containers_menus_MenuSeparator.__name__ = "haxe.ui.containers.menus.MenuSeparator"; haxe_ui_containers_menus_MenuSeparator.__super__ = haxe_ui_core_Component; haxe_ui_containers_menus_MenuSeparator.prototype = $extend(haxe_ui_core_Component.prototype,{ registerComposite: function() { haxe_ui_core_Component.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers_menus__$MenuSeparator_Builder; this._defaultLayoutClass = haxe_ui_containers_menus__$MenuSeparator_Layout; } ,registerBehaviours: function() { haxe_ui_core_Component.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_Component.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_menus_MenuSeparator(); } ,__class__: haxe_ui_containers_menus_MenuSeparator }); var haxe_ui_containers_menus__$MenuSeparator_Builder = function(component) { haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.containers.menus._MenuSeparator.Builder"] = haxe_ui_containers_menus__$MenuSeparator_Builder; haxe_ui_containers_menus__$MenuSeparator_Builder.__name__ = "haxe.ui.containers.menus._MenuSeparator.Builder"; haxe_ui_containers_menus__$MenuSeparator_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_menus__$MenuSeparator_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ create: function() { haxe_ui_core_CompositeBuilder.prototype.create.call(this); var line = new haxe_ui_core_Component(); line.set_scriptAccess(false); line.addClass("menuseparator-line"); this._component.addComponent(line); } ,__class__: haxe_ui_containers_menus__$MenuSeparator_Builder }); var haxe_ui_containers_menus__$MenuSeparator_Layout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.containers.menus._MenuSeparator.Layout"] = haxe_ui_containers_menus__$MenuSeparator_Layout; haxe_ui_containers_menus__$MenuSeparator_Layout.__name__ = "haxe.ui.containers.menus._MenuSeparator.Layout"; haxe_ui_containers_menus__$MenuSeparator_Layout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_containers_menus__$MenuSeparator_Layout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers_menus__$MenuSeparator_Layout(); } ,__class__: haxe_ui_containers_menus__$MenuSeparator_Layout }); var haxe_ui_containers_properties_Property = function() { haxe_ui_containers_HBox.call(this); }; $hxClasses["haxe.ui.containers.properties.Property"] = haxe_ui_containers_properties_Property; haxe_ui_containers_properties_Property.__name__ = "haxe.ui.containers.properties.Property"; haxe_ui_containers_properties_Property.__interfaces__ = [haxe_ui_core_IDataComponent]; haxe_ui_containers_properties_Property.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_properties_Property.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerComposite: function() { haxe_ui_containers_HBox.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers_properties_PropertyBuilder; } ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); this.behaviours.register("label",haxe_ui_containers_properties__$Property_LabelBehaviour); this.behaviours.register("type",haxe_ui_behaviours_DefaultBehaviour,haxe_ui_util_Variant.fromString("text")); this.behaviours.register("dataSource",haxe_ui_containers_properties__$Property_DataSourceBehaviour); this.behaviours.register("value",haxe_ui_containers_properties__$Property_PropertyValueBehaviour); this.behaviours.register("step",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("min",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("max",haxe_ui_behaviours_DefaultBehaviour); this.behaviours.register("precision",haxe_ui_behaviours_DefaultBehaviour); } ,get_label: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("label")); } ,set_label: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"label",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("label",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"label")); return value; } ,get_type: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("type")); } ,set_type: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"type",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("type",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"type")); return value; } ,get_step: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("step")); } ,set_step: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("step",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"step")); return value; } ,get_min: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("min")); } ,set_min: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("min",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"min")); return value; } ,get_max: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toFloat(this.behaviours.get("max")); } ,set_max: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("max",haxe_ui_util_Variant.fromFloat(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"max")); return value; } ,get_precision: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toInt(this.behaviours.get("precision")); } ,set_precision: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("precision",haxe_ui_util_Variant.fromInt(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"precision")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if(this.get_label() != null) { c.set_label(this.get_label()); } if(this.get_type() != null) { c.set_type(this.get_type()); } if(this.get_step() != null) { c.set_step(this.get_step()); } if(this.get_min() != null) { c.set_min(this.get_min()); } if(this.get_max() != null) { c.set_max(this.get_max()); } if(this.get_precision() != null) { c.set_precision(this.get_precision()); } if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_properties_Property(); } ,__class__: haxe_ui_containers_properties_Property ,__properties__: $extend(haxe_ui_containers_HBox.prototype.__properties__,{set_precision:"set_precision",get_precision:"get_precision",set_max:"set_max",get_max:"get_max",set_min:"set_min",get_min:"get_min",set_step:"set_step",get_step:"get_step",set_type:"set_type",get_type:"get_type",set_label:"set_label",get_label:"get_label"}) }); var haxe_ui_containers_properties__$Property_LabelBehaviour = function(property) { haxe_ui_behaviours_DefaultBehaviour.call(this,property); this._property = property; }; $hxClasses["haxe.ui.containers.properties._Property.LabelBehaviour"] = haxe_ui_containers_properties__$Property_LabelBehaviour; haxe_ui_containers_properties__$Property_LabelBehaviour.__name__ = "haxe.ui.containers.properties._Property.LabelBehaviour"; haxe_ui_containers_properties__$Property_LabelBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers_properties__$Property_LabelBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ _property: null ,set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); var builder = js_Boot.__cast(this._property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder); if(builder.label != null) { builder.label.set_text(haxe_ui_util_Variant.toString(value)); } } ,__class__: haxe_ui_containers_properties__$Property_LabelBehaviour }); var haxe_ui_containers_properties__$Property_DataSourceBehaviour = function(property) { haxe_ui_behaviours_DefaultBehaviour.call(this,property); this._property = property; }; $hxClasses["haxe.ui.containers.properties._Property.DataSourceBehaviour"] = haxe_ui_containers_properties__$Property_DataSourceBehaviour; haxe_ui_containers_properties__$Property_DataSourceBehaviour.__name__ = "haxe.ui.containers.properties._Property.DataSourceBehaviour"; haxe_ui_containers_properties__$Property_DataSourceBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers_properties__$Property_DataSourceBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ _property: null ,get: function() { if(this._value == null) { this._value = haxe_ui_util_Variant.fromDataSource(new haxe_ui_data_ArrayDataSource()); } return this._value; } ,set: function(value) { haxe_ui_behaviours_DefaultBehaviour.prototype.set.call(this,value); var builder = js_Boot.__cast(this._property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder); if(builder.editor != null && js_Boot.__implements(builder.editor,haxe_ui_core_IDataComponent)) { (js_Boot.__cast(builder.editor , haxe_ui_core_IDataComponent)).set_dataSource(haxe_ui_util_Variant.toDataSource(value)); } } ,__class__: haxe_ui_containers_properties__$Property_DataSourceBehaviour }); var haxe_ui_containers_properties__$Property_PropertyValueBehaviour = function(property) { haxe_ui_behaviours_DataBehaviour.call(this,property); this._property = property; }; $hxClasses["haxe.ui.containers.properties._Property.PropertyValueBehaviour"] = haxe_ui_containers_properties__$Property_PropertyValueBehaviour; haxe_ui_containers_properties__$Property_PropertyValueBehaviour.__name__ = "haxe.ui.containers.properties._Property.PropertyValueBehaviour"; haxe_ui_containers_properties__$Property_PropertyValueBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_properties__$Property_PropertyValueBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _property: null ,set: function(value) { var builder = js_Boot.__cast(this._property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder); this._value = value; if(builder.get_actualEditor() != null) { builder.get_actualEditor().set_value(haxe_ui_util_Variant.toDynamic(this._value)); } this.invalidateData(); } ,get: function() { var builder = js_Boot.__cast(this._property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder); if(builder.get_actualEditor() != null) { return builder.get_actualEditor().get_value(); } return this._value; } ,getDynamic: function() { var builder = js_Boot.__cast(this._property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder); if(builder.get_actualEditor() != null) { return builder.get_actualEditor().get_value(); } return haxe_ui_util_Variant.toDynamic(this._value); } ,validateData: function() { var builder = js_Boot.__cast(this._property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder); if(builder.get_actualEditor() != null) { builder.get_actualEditor().set_value(haxe_ui_util_Variant.toDynamic(this._value)); } } ,__class__: haxe_ui_containers_properties__$Property_PropertyValueBehaviour }); var haxe_ui_containers_properties_PropertyBuilder = function(component) { this.label = null; this.editor = null; haxe_ui_core_CompositeBuilder.call(this,component); }; $hxClasses["haxe.ui.containers.properties.PropertyBuilder"] = haxe_ui_containers_properties_PropertyBuilder; haxe_ui_containers_properties_PropertyBuilder.__name__ = "haxe.ui.containers.properties.PropertyBuilder"; haxe_ui_containers_properties_PropertyBuilder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_properties_PropertyBuilder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ editor: null ,label: null ,addComponent: function(child) { var _gthis = this; var v = (js_Boot.__cast(this._component , haxe_ui_containers_properties_Property)).get_value(); if(js_Boot.__implements(child,haxe_ui_core_IValueComponent)) { this.editor = child; this.editor.set_value(v); } else { child.walkComponents(function(c) { if(js_Boot.__implements(c,haxe_ui_core_IValueComponent)) { _gthis.editor = child; c.set_value(v); } return _gthis.editor == null; }); } return child; } ,actualEditor: null ,get_actualEditor: function() { if(this.editor == null) { return null; } var r = null; if(js_Boot.__implements(this.editor,haxe_ui_core_IValueComponent)) { r = this.editor; } else { this.editor.walkComponents(function(c) { if(js_Boot.__implements(c,haxe_ui_core_IValueComponent)) { r = c; } return r == null; }); } return r; } ,__class__: haxe_ui_containers_properties_PropertyBuilder ,__properties__: $extend(haxe_ui_core_CompositeBuilder.prototype.__properties__,{get_actualEditor:"get_actualEditor"}) }); var haxe_ui_containers_properties_PropertyGrid = function() { haxe_ui_containers_ScrollView.call(this); }; $hxClasses["haxe.ui.containers.properties.PropertyGrid"] = haxe_ui_containers_properties_PropertyGrid; haxe_ui_containers_properties_PropertyGrid.__name__ = "haxe.ui.containers.properties.PropertyGrid"; haxe_ui_containers_properties_PropertyGrid.__super__ = haxe_ui_containers_ScrollView; haxe_ui_containers_properties_PropertyGrid.prototype = $extend(haxe_ui_containers_ScrollView.prototype,{ registerComposite: function() { haxe_ui_containers_ScrollView.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_properties__$PropertyGrid_Events; this._compositeBuilderClass = haxe_ui_containers_properties__$PropertyGrid_Builder; } ,registerBehaviours: function() { haxe_ui_containers_ScrollView.prototype.registerBehaviours.call(this); this.behaviours.register("popupStyleNames",haxe_ui_behaviours_DefaultBehaviour); } ,get_popupStyleNames: function() { if(this.behaviours == null) { return null; } return haxe_ui_util_Variant.toString(this.behaviours.get("popupStyleNames")); } ,set_popupStyleNames: function(value) { var _g = Type.typeof(value); if(_g._hx_index == 6) { if(_g.c == String) { if(value != null && value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { haxe_ui_locale_LocaleManager.get_instance().registerComponent(this,"popupStyleNames",null,value); return value; } } } if(this.behaviours == null) { this.behaviours = new haxe_ui_behaviours_Behaviours(this); this.registerBehaviours(); } this.behaviours.set("popupStyleNames",haxe_ui_util_Variant.fromString(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"popupStyleNames")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_ScrollView.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_properties_PropertyGrid(); } ,__class__: haxe_ui_containers_properties_PropertyGrid ,__properties__: $extend(haxe_ui_containers_ScrollView.prototype.__properties__,{set_popupStyleNames:"set_popupStyleNames",get_popupStyleNames:"get_popupStyleNames"}) }); var haxe_ui_containers_properties__$PropertyGrid_Events = function(scrollview) { haxe_ui_containers_ScrollViewEvents.call(this,scrollview); }; $hxClasses["haxe.ui.containers.properties._PropertyGrid.Events"] = haxe_ui_containers_properties__$PropertyGrid_Events; haxe_ui_containers_properties__$PropertyGrid_Events.__name__ = "haxe.ui.containers.properties._PropertyGrid.Events"; haxe_ui_containers_properties__$PropertyGrid_Events.__super__ = haxe_ui_containers_ScrollViewEvents; haxe_ui_containers_properties__$PropertyGrid_Events.prototype = $extend(haxe_ui_containers_ScrollViewEvents.prototype,{ __class__: haxe_ui_containers_properties__$PropertyGrid_Events }); var haxe_ui_containers_properties__$PropertyGrid_Builder = function(scrollview) { haxe_ui_containers_ScrollViewBuilder.call(this,scrollview); }; $hxClasses["haxe.ui.containers.properties._PropertyGrid.Builder"] = haxe_ui_containers_properties__$PropertyGrid_Builder; haxe_ui_containers_properties__$PropertyGrid_Builder.__name__ = "haxe.ui.containers.properties._PropertyGrid.Builder"; haxe_ui_containers_properties__$PropertyGrid_Builder.__super__ = haxe_ui_containers_ScrollViewBuilder; haxe_ui_containers_properties__$PropertyGrid_Builder.prototype = $extend(haxe_ui_containers_ScrollViewBuilder.prototype,{ createVScroll: function() { var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_containers_properties_PropertyGroup); while(_g < _g1.length) { var g = _g1[_g]; ++_g; g.findComponent("property-group-header",haxe_ui_core_Component).addClass("scrolling"); g.findComponent("property-group-contents",haxe_ui_core_Component).addClass("scrolling"); } return haxe_ui_containers_ScrollViewBuilder.prototype.createVScroll.call(this); } ,destroyVScroll: function() { var _g = 0; var _g1 = this._component.findComponents(null,haxe_ui_containers_properties_PropertyGroup); while(_g < _g1.length) { var g = _g1[_g]; ++_g; g.findComponent("property-group-header",haxe_ui_core_Component).removeClass("scrolling"); g.findComponent("property-group-contents",haxe_ui_core_Component).removeClass("scrolling"); } haxe_ui_containers_ScrollViewBuilder.prototype.destroyVScroll.call(this); } ,__class__: haxe_ui_containers_properties__$PropertyGrid_Builder }); var haxe_ui_containers_properties_PropertyGroup = function() { haxe_ui_containers_VBox.call(this); }; $hxClasses["haxe.ui.containers.properties.PropertyGroup"] = haxe_ui_containers_properties_PropertyGroup; haxe_ui_containers_properties_PropertyGroup.__name__ = "haxe.ui.containers.properties.PropertyGroup"; haxe_ui_containers_properties_PropertyGroup.__super__ = haxe_ui_containers_VBox; haxe_ui_containers_properties_PropertyGroup.prototype = $extend(haxe_ui_containers_VBox.prototype,{ registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._internalEventsClass = haxe_ui_containers_properties__$PropertyGroup_Events; this._compositeBuilderClass = haxe_ui_containers_properties__$PropertyGroup_Builder; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("text",haxe_ui_containers_properties__$PropertyGroup_TextBehaviour); this.behaviours.register("disabled",haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour); } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_properties_PropertyGroup(); } ,__class__: haxe_ui_containers_properties_PropertyGroup }); var haxe_ui_containers_properties__$PropertyGroup_TextBehaviour = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.properties._PropertyGroup.TextBehaviour"] = haxe_ui_containers_properties__$PropertyGroup_TextBehaviour; haxe_ui_containers_properties__$PropertyGroup_TextBehaviour.__name__ = "haxe.ui.containers.properties._PropertyGroup.TextBehaviour"; haxe_ui_containers_properties__$PropertyGroup_TextBehaviour.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_properties__$PropertyGroup_TextBehaviour.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var label = this._component.findComponent("property-group-header-label"); label.set_text(haxe_ui_util_Variant.toString(this._value)); } ,__class__: haxe_ui_containers_properties__$PropertyGroup_TextBehaviour }); var haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour = function(component) { haxe_ui_behaviours_DefaultBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.properties._PropertyGroup.DisabledBehaviour"] = haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour; haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour.__name__ = "haxe.ui.containers.properties._PropertyGroup.DisabledBehaviour"; haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour.__super__ = haxe_ui_behaviours_DefaultBehaviour; haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour.prototype = $extend(haxe_ui_behaviours_DefaultBehaviour.prototype,{ set: function(value) { var contents = this._component.findComponent("property-group-contents",haxe_ui_core_Component); if(contents != null) { contents.set_disabled(haxe_ui_util_Variant.toBool(value)); } var label = this._component.findComponent("property-group-header-label"); if(label != null) { label.set_disabled(haxe_ui_util_Variant.toBool(value)); } } ,get: function() { var contents = this._component.findComponent("property-group-contents",haxe_ui_core_Component); if(contents != null) { return haxe_ui_util_Variant.fromBool(contents.get_disabled()); } return haxe_ui_util_Variant.fromBool(false); } ,__class__: haxe_ui_containers_properties__$PropertyGroup_DisabledBehaviour }); var haxe_ui_containers_properties__$PropertyGroup_Events = function(target) { haxe_ui_events_Events.call(this,target); }; $hxClasses["haxe.ui.containers.properties._PropertyGroup.Events"] = haxe_ui_containers_properties__$PropertyGroup_Events; haxe_ui_containers_properties__$PropertyGroup_Events.__name__ = "haxe.ui.containers.properties._PropertyGroup.Events"; haxe_ui_containers_properties__$PropertyGroup_Events.__super__ = haxe_ui_events_Events; haxe_ui_containers_properties__$PropertyGroup_Events.prototype = $extend(haxe_ui_events_Events.prototype,{ register: function() { var header = this._target.findComponent("property-group-header",haxe_ui_core_Component); if(header.hasEvent(haxe_ui_events_MouseEvent.CLICK) == false) { header.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onHeaderClicked)); } } ,unregister: function() { var header = this._target.findComponent("property-group-header",haxe_ui_core_Component); header.unregisterEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onHeaderClicked)); } ,onHeaderClicked: function(event) { var interactives = this._target.findComponentsUnderPoint(event.screenX,event.screenY,haxe_ui_core_InteractiveComponent); if(interactives.length > 0) { return; } var header = this._target.findComponent("property-group-header",haxe_ui_core_Component); var contents = this._target.findComponent("property-group-contents",haxe_ui_core_Component); if(header.classes.indexOf(":expanded") != -1) { header.swapClass(":collapsed",":expanded",true,true); contents.hideInternal(); } else { header.swapClass(":expanded",":collapsed",true,true); contents.showInternal(); } } ,__class__: haxe_ui_containers_properties__$PropertyGroup_Events }); var haxe_ui_containers_properties__$PropertyGroup_Builder = function(propertyGroup) { this._editorMap = new haxe_ds_ObjectMap(); haxe_ui_core_CompositeBuilder.call(this,propertyGroup); this._propertyGroup = propertyGroup; }; $hxClasses["haxe.ui.containers.properties._PropertyGroup.Builder"] = haxe_ui_containers_properties__$PropertyGroup_Builder; haxe_ui_containers_properties__$PropertyGroup_Builder.__name__ = "haxe.ui.containers.properties._PropertyGroup.Builder"; haxe_ui_containers_properties__$PropertyGroup_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_properties__$PropertyGroup_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _propertyGroup: null ,_propertyGroupHeader: null ,_propertyGroupContents: null ,_editorMap: null ,onReady: function() { var propGrid = this._component.findAncestor(null,haxe_ui_containers_properties_PropertyGrid); var _g = 0; var _g1 = this._propertyGroupContents.findComponents(null,haxe_ui_components_DropDown); while(_g < _g1.length) { var c = _g1[_g]; ++_g; c.set_handlerStyleNames(propGrid.get_popupStyleNames()); } var editor = this._editorMap.keys(); while(editor.hasNext()) { var editor1 = editor.next(); var prop = this._editorMap.h[editor1.__id__]; if(prop.get_hidden()) { this.applyForPropertyRow(prop,function(label,container) { if(label != null) { label.hide(); } if(container != null) { container.hide(); } }); } editor1.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onPropertyShown)); editor1.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onPropertyHidden)); editor1.registerEvent(haxe_ui_events_UIEvent.ENABLED,$bind(this,this.onPropertyEnabled)); editor1.registerEvent(haxe_ui_events_UIEvent.DISABLED,$bind(this,this.onPropertyDisabled)); prop.registerEvent(haxe_ui_events_UIEvent.SHOWN,$bind(this,this.onPropertyShown)); prop.registerEvent(haxe_ui_events_UIEvent.HIDDEN,$bind(this,this.onPropertyHidden)); prop.registerEvent(haxe_ui_events_UIEvent.ENABLED,$bind(this,this.onPropertyEnabled)); prop.registerEvent(haxe_ui_events_UIEvent.DISABLED,$bind(this,this.onPropertyDisabled)); } } ,create: function() { this._propertyGroupHeader = new haxe_ui_containers_HBox(); this._propertyGroupHeader.set_scriptAccess(false); this._propertyGroupHeader.addClass("property-group-header"); this._propertyGroupHeader.addClass(":expanded"); this._propertyGroupHeader.set_id("property-group-header"); var image = new haxe_ui_components_Image(); image.addClass("property-group-header-icon"); image.set_scriptAccess(false); this._propertyGroupHeader.addComponent(image); var label = new haxe_ui_components_Label(); label.addClass("property-group-header-label"); label.set_id("property-group-header-label"); label.set_scriptAccess(false); this._propertyGroupHeader.addComponent(label); this._propertyGroup.addComponent(this._propertyGroupHeader); this._propertyGroupContents = new haxe_ui_containers_Grid(); this._propertyGroupContents.set_scriptAccess(false); this._propertyGroupContents.addClass("property-group-contents"); this._propertyGroupContents.set_id("property-group-contents"); this._propertyGroup.addComponent(this._propertyGroupContents); } ,addComponent: function(child) { if(((child) instanceof haxe_ui_containers_properties_Property)) { var prop = js_Boot.__cast(child , haxe_ui_containers_properties_Property); var labelContainer = new haxe_ui_containers_Box(); labelContainer.set_scriptAccess(false); labelContainer.addClass("property-group-item-label-container"); this._propertyGroupContents.addComponent(labelContainer); var label = new haxe_ui_components_Label(); label.set_scriptAccess(false); label.set_text(prop.get_label()); label.addClass("property-group-item-label"); labelContainer.addComponent(label); labelContainer.set_hidden(prop.get_hidden()); if(prop.get_disabled()) { labelContainer.set_disabled(prop.get_disabled()); } (js_Boot.__cast(prop._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder)).label = label; var editorContainer = new haxe_ui_containers_Box(); editorContainer.set_scriptAccess(false); editorContainer.addClass("property-group-item-editor-container"); this._propertyGroupContents.addComponent(editorContainer); var editor = this.buildEditor(prop); editor.set_disabled(prop.get_disabled()); editor.set_scriptAccess(false); editor.set_id(child.get_id()); editor.addClass("property-group-item-editor"); editorContainer.addComponent(editor); editorContainer.set_hidden(prop.get_hidden()); editor.registerEvent(haxe_ui_events_UIEvent.CHANGE,$bind(this,this.onPropertyEditorChange)); if(((editor) instanceof haxe_ui_components_Button)) { var b = js_Boot.__cast(editor , haxe_ui_components_Button); if(b.get_toggle() == false) { editor.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onPropertyEditorClick)); } } (js_Boot.__cast(prop._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder)).editor = editor; this._propertyGroup.registerInternalEvents(haxe_ui_containers_properties__$PropertyGroup_Events,true); this._editorMap.set(editor,prop); return editor; } else if(child != this._propertyGroupHeader && child != this._propertyGroupContents) { this._propertyGroupHeader.addComponent(child); return child; } return null; } ,removeComponent: function(child,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(((child) instanceof haxe_ui_containers_properties_Property)) { var target = (js_Boot.__cast(child._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder)).get_actualEditor(); var container = target.findAncestor("property-group-item-editor-container",haxe_ui_containers_Box,"css"); var index = this._propertyGroupContents.getComponentIndex(container); var label = this._propertyGroupContents.getComponentAt(index - 1); this._propertyGroupContents.removeComponent(label,dispose,invalidate); this._propertyGroupContents.removeComponent(container,dispose,invalidate); this._editorMap.remove(target); return child; } return null; } ,onPropertyShown: function(event) { this.applyForPropertyRow(event.target,function(label,container) { if(label != null) { label.show(); } if(container != null) { container.show(); } }); } ,onPropertyHidden: function(event) { this.applyForPropertyRow(event.target,function(label,container) { if(label != null) { label.hide(); } if(container != null) { container.hide(); } }); } ,onPropertyEnabled: function(event) { this.applyForPropertyRow(event.target,function(label,container) { if(label != null) { label.set_disabled(false); } }); } ,onPropertyDisabled: function(event) { this.applyForPropertyRow(event.target,function(label,container) { if(label != null) { label.set_disabled(true); } }); } ,applyForPropertyRow: function(target,cb) { if(((target) instanceof haxe_ui_containers_properties_Property)) { target = (js_Boot.__cast(target._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder)).get_actualEditor(); } var container = target.findAncestor("property-group-item-editor-container",haxe_ui_containers_Box,"css"); var index = this._propertyGroupContents.getComponentIndex(container); var label = this._propertyGroupContents.getComponentAt(index - 1); cb(label,container); } ,onPropertyEditorChange: function(event) { var newEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); newEvent.target = event.target; newEvent.data = event.data; var prop = this._editorMap.h[event.target.__id__]; if(prop != null) { if(((event.target) instanceof haxe_ui_components_Button)) { newEvent.data = (js_Boot.__cast(event.target , haxe_ui_components_Button)).get_selected(); } else { newEvent.data = prop.get_value(); } prop.dispatch(newEvent); } this._component.dispatch(newEvent); var pg = this._component.findAncestor(null,haxe_ui_containers_properties_PropertyGrid); pg.dispatch(newEvent); } ,onPropertyEditorClick: function(event) { var newEvent = new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.CHANGE); newEvent.target = event.target; newEvent.data = event.data; var prop = this._editorMap.h[event.target.__id__]; if(prop != null) { newEvent.data = prop.get_value(); prop.dispatch(newEvent); } this._component.dispatch(newEvent); var pg = this._component.findAncestor(null,haxe_ui_containers_properties_PropertyGrid); pg.dispatch(newEvent); } ,buildEditor: function(property) { if((js_Boot.__cast(property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder)).editor != null) { var editor = (js_Boot.__cast(property._compositeBuilder , haxe_ui_containers_properties_PropertyBuilder)).editor; editor.set_value(property.get_value()); return editor; } var c = null; if(c == null) { var type = property.get_type(); switch(type) { case "action": c = new haxe_ui_components_Button(); c.set_value(property.get_value()); break; case "boolean": c = new haxe_ui_components_CheckBox(); c.set_value(property.get_value()); break; case "date": c = new haxe_ui_components_DropDown(); (js_Boot.__cast(c , haxe_ui_components_DropDown)).set_type("date"); break; case "list": c = new haxe_ui_components_DropDown(); (js_Boot.__cast(c , haxe_ui_components_DropDown)).set_dataSource(property.get_dataSource()); if(Type.typeof(property.get_value())._hx_index == 1) { (js_Boot.__cast(c , haxe_ui_components_DropDown)).set_selectedIndex(property.get_value()); } else { c.set_value(property.get_value()); } break; case "float":case "int":case "number": var stepper = new haxe_ui_components_NumberStepper(); c = stepper; c.set_value(property.get_value()); if(property.get_min() != null) { stepper.set_min(property.get_min()); } if(property.get_max() != null) { stepper.set_max(property.get_max()); } if(property.get_step() != null) { stepper.set_step(property.get_step()); } if(property.get_precision() != null) { stepper.set_precision(property.get_precision()); } break; case "text": c = new haxe_ui_components_TextField(); c.set_value(property.get_value()); break; case "toggle": c = new haxe_ui_components_Button(); (js_Boot.__cast(c , haxe_ui_components_Button)).set_toggle(true); c.set_value(property.get_value()); break; default: c = new haxe_ui_components_TextField(); c.set_value(property.get_value()); } } return c; } ,__class__: haxe_ui_containers_properties__$PropertyGroup_Builder }); var haxe_ui_containers_windows_Window = function() { this._dragOptions = null; this._dragInitiator = null; this._windowManager = null; haxe_ui_containers_VBox.call(this); this.applyRootLayout("vbox"); this.set_styleString("spacing:0;"); this.bindingRoot = true; }; $hxClasses["haxe.ui.containers.windows.Window"] = haxe_ui_containers_windows_Window; haxe_ui_containers_windows_Window.__name__ = "haxe.ui.containers.windows.Window"; haxe_ui_containers_windows_Window.__interfaces__ = [haxe_ui_extensions_Draggable]; haxe_ui_containers_windows_Window.__super__ = haxe_ui_containers_VBox; haxe_ui_containers_windows_Window.prototype = $extend(haxe_ui_containers_VBox.prototype,{ _windowManager: null ,get_windowManager: function() { if(this._windowManager == null) { haxe_Log.trace("WARNING: this window doesnt have a window manager associated with it, make sure it was added via WindowManager.instance.addWindow",{ fileName : "haxe/ui/containers/windows/Window.hx", lineNumber : 39, className : "haxe.ui.containers.windows.Window", methodName : "get_windowManager"}); } return this._windowManager; } ,set_windowManager: function(value) { this._windowManager = value; return value; } ,get_title: function() { var label = this.findComponent("windowTitleLabel",haxe_ui_components_Label); if(label != null) { return label.get_text(); } return null; } ,set_title: function(value) { var label = this.findComponent("windowTitleLabel",haxe_ui_components_Label); if(label != null) { label.set_text(value); this.dispatch(new haxe_ui_containers_windows_WindowEvent("windowtitlechanged")); } return value; } ,get_icon: function() { var image = this.findComponent("windowTitleIcon",haxe_ui_components_Image); if(image != null) { return image.get_resource(); } return null; } ,set_icon: function(value) { var image = this.findComponent("windowTitleIcon",haxe_ui_components_Image); if(image != null) { image.set_resource(value); image.show(); } return value; } ,validateWindow: function(fn) { fn(true); } ,set_width: function(value) { var wrapper = this.findComponent("windowWrapper",haxe_ui_containers_VBox); if(wrapper != null) { wrapper.set_percentWidth(100); } var content = this.findComponent("windowContent",haxe_ui_containers_VBox); if(content != null) { content.set_percentWidth(100); } return haxe_ui_containers_VBox.prototype.set_width.call(this,value); } ,set_height: function(value) { var wrapper = this.findComponent("windowWrapper",haxe_ui_containers_VBox); if(wrapper != null) { wrapper.set_percentHeight(100); } var content = this.findComponent("windowContent",haxe_ui_containers_VBox); if(content != null) { content.set_percentHeight(100); } return haxe_ui_containers_VBox.prototype.set_height.call(this,value); } ,messageBox: function(message,title,type,modal,callback) { if(modal == null) { modal = true; } if(type == null) { type = "info"; } else if(type == "info") { type = "info"; } else if(type == "question") { type = "question"; } else if(type == "warning") { type = "warning"; } else if(type == "error") { type = "error"; } else if(type == "yesno") { type = "yesno"; } var messageBox = new haxe_ui_containers_dialogs_MessageBox(); messageBox.set_dialogParent(this.findComponent("windowContent",haxe_ui_containers_VBox)); messageBox.set_type(type); messageBox.set_message(message); messageBox.modal = modal; if(title != null) { messageBox.set_title(title); } messageBox.show(); if(callback != null) { messageBox.registerEvent("dialogClosed",function(e) { callback(e.button); }); } return messageBox; } ,get_draggable: function() { return haxe_ui_dragdrop_DragManager.get_instance().isRegisteredDraggable(this); } ,set_draggable: function(value) { if(value == true) { haxe_ui_dragdrop_DragManager.get_instance().registerDraggable(this,this.get_dragOptions()); } else { haxe_ui_dragdrop_DragManager.get_instance().unregisterDraggable(this); } return value; } ,_dragInitiator: null ,get_dragInitiator: function() { return this._dragInitiator; } ,set_dragInitiator: function(value) { this._dragInitiator = value; if(value != null) { if(this._dragOptions != null) { this._dragOptions.mouseTarget = value; } this.set_draggable(true); } else { this.set_draggable(false); } return value; } ,_dragOptions: null ,get_dragOptions: function() { if(this._dragOptions == null) { this._dragOptions = { mouseTarget : this._dragInitiator}; } return this._dragOptions; } ,set_dragOptions: function(value) { this._dragOptions = value; this.set_draggable(true); return value; } ,registerComposite: function() { haxe_ui_containers_VBox.prototype.registerComposite.call(this); this._compositeBuilderClass = haxe_ui_containers_windows__$Window_Builder; } ,_internal__onDragStart: null ,onDragStart: null ,set_onDragStart: function(value) { if(this._internal__onDragStart != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_START,this._internal__onDragStart); this._internal__onDragStart = null; } if(value != null) { this._internal__onDragStart = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_START,value); } return value; } ,_internal__onDrag: null ,onDrag: null ,set_onDrag: function(value) { if(this._internal__onDrag != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG,this._internal__onDrag); this._internal__onDrag = null; } if(value != null) { this._internal__onDrag = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG,value); } return value; } ,_internal__onDragEnd: null ,onDragEnd: null ,set_onDragEnd: function(value) { if(this._internal__onDragEnd != null) { this.unregisterEvent(haxe_ui_events_DragEvent.DRAG_END,this._internal__onDragEnd); this._internal__onDragEnd = null; } if(value != null) { this._internal__onDragEnd = value; this.registerEvent(haxe_ui_events_DragEvent.DRAG_END,value); } return value; } ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); this.behaviours.register("minimizable",haxe_ui_containers_windows__$Window_Minimizable,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("collapsable",haxe_ui_containers_windows__$Window_Collapsable,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("maximizable",haxe_ui_containers_windows__$Window_Maximizable,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("closable",haxe_ui_containers_windows__$Window_Closable,haxe_ui_util_Variant.fromBool(true)); this.behaviours.register("maximized",haxe_ui_containers_windows__$Window_Maximized); this.behaviours.register("minimized",haxe_ui_containers_windows__$Window_Minimized); } ,get_minimizable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("minimizable")); } ,set_minimizable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("minimizable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"minimizable")); return value; } ,get_collapsable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("collapsable")); } ,set_collapsable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("collapsable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"collapsable")); return value; } ,get_maximizable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("maximizable")); } ,set_maximizable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("maximizable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"maximizable")); return value; } ,get_closable: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("closable")); } ,set_closable: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("closable",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"closable")); return value; } ,get_maximized: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("maximized")); } ,set_maximized: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("maximized",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"maximized")); return value; } ,get_minimized: function() { if(this.behaviours == null) { return false; } return haxe_ui_util_Variant.toBool(this.behaviours.get("minimized")); } ,set_minimized: function(value) { if(this.behaviours == null) { return value; } this.behaviours.set("minimized",haxe_ui_util_Variant.fromBool(value)); this.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.PROPERTY_CHANGE,null,"minimized")); return value; } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_windows_Window(); } ,__class__: haxe_ui_containers_windows_Window ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_minimized:"set_minimized",get_minimized:"get_minimized",set_maximized:"set_maximized",get_maximized:"get_maximized",set_closable:"set_closable",get_closable:"get_closable",set_maximizable:"set_maximizable",get_maximizable:"get_maximizable",set_collapsable:"set_collapsable",get_collapsable:"get_collapsable",set_minimizable:"set_minimizable",get_minimizable:"get_minimizable",set_onDragEnd:"set_onDragEnd",set_onDrag:"set_onDrag",set_onDragStart:"set_onDragStart",set_dragOptions:"set_dragOptions",get_dragOptions:"get_dragOptions",set_dragInitiator:"set_dragInitiator",get_dragInitiator:"get_dragInitiator",set_draggable:"set_draggable",get_draggable:"get_draggable",set_title:"set_title",get_title:"get_title",set_windowManager:"set_windowManager",get_windowManager:"get_windowManager"}) }); var haxe_ui_containers_windows__$Window_Closable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.windows._Window.Closable"] = haxe_ui_containers_windows__$Window_Closable; haxe_ui_containers_windows__$Window_Closable.__name__ = "haxe.ui.containers.windows._Window.Closable"; haxe_ui_containers_windows__$Window_Closable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_windows__$Window_Closable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var _gthis = this; var title = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_windows__$Window_Builder)).title; if(title != null) { var existing = title.findComponent("windowCloseButton",haxe_ui_components_Image); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true)) && existing == null) { existing = new haxe_ui_components_Image(); existing.set_id("windowCloseButton"); title.addComponent(existing); existing.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(event) { event.cancel(); var $window = js_Boot.__cast(_gthis._component , haxe_ui_containers_windows_Window); if($window.get_windowManager() != null && $window.get_windowManager().closeWindow($window)) { existing.removeClass(":hover"); } }); } else if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false)) && existing != null) { title.removeComponent(existing); } } } ,__class__: haxe_ui_containers_windows__$Window_Closable }); var haxe_ui_containers_windows__$Window_Collapsable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.windows._Window.Collapsable"] = haxe_ui_containers_windows__$Window_Collapsable; haxe_ui_containers_windows__$Window_Collapsable.__name__ = "haxe.ui.containers.windows._Window.Collapsable"; haxe_ui_containers_windows__$Window_Collapsable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_windows__$Window_Collapsable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var title = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_windows__$Window_Builder)).title; if(title != null) { var existing = title.findComponent("windowCollapseButton",haxe_ui_components_Image); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true)) && existing == null) { existing = new haxe_ui_components_Image(); existing.set_id("windowCollapseButton"); title.addComponent(existing); } else if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false)) && existing != null) { title.removeComponent(existing); } } } ,__class__: haxe_ui_containers_windows__$Window_Collapsable }); var haxe_ui_containers_windows__$Window_Minimizable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.windows._Window.Minimizable"] = haxe_ui_containers_windows__$Window_Minimizable; haxe_ui_containers_windows__$Window_Minimizable.__name__ = "haxe.ui.containers.windows._Window.Minimizable"; haxe_ui_containers_windows__$Window_Minimizable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_windows__$Window_Minimizable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var _gthis = this; var title = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_windows__$Window_Builder)).title; if(title != null) { var existing = title.findComponent("windowMinimizeButton",haxe_ui_components_Image); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true)) && existing == null) { existing = new haxe_ui_components_Image(); existing.set_id("windowMinimizeButton"); title.addComponent(existing); existing.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(event) { event.cancel(); var $window = js_Boot.__cast(_gthis._component , haxe_ui_containers_windows_Window); existing.removeClass(":hover"); if($window.get_windowManager() != null) { $window.get_windowManager().minimizeWindow($window); } }); } else if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false)) && existing != null) { title.removeComponent(existing); } } } ,__class__: haxe_ui_containers_windows__$Window_Minimizable }); var haxe_ui_containers_windows__$Window_Maximizable = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.windows._Window.Maximizable"] = haxe_ui_containers_windows__$Window_Maximizable; haxe_ui_containers_windows__$Window_Maximizable.__name__ = "haxe.ui.containers.windows._Window.Maximizable"; haxe_ui_containers_windows__$Window_Maximizable.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_windows__$Window_Maximizable.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { var _gthis = this; var title = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_windows__$Window_Builder)).title; if(title != null) { var existing = title.findComponent("windowMaximizeButton",haxe_ui_components_Image); if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true)) && existing == null) { existing = new haxe_ui_components_Image(); existing.set_id("windowMaximizeButton"); title.addComponent(existing); existing.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(_) { var $window = js_Boot.__cast(_gthis._component , haxe_ui_containers_windows_Window); existing.removeClass(":hover"); if($window.get_windowManager() != null) { if($window.get_maximized()) { $window.get_windowManager().restoreWindow($window); } else { $window.get_windowManager().maximizeWindow($window); } } }); } else if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(false)) && existing != null) { title.removeComponent(existing); } } } ,__class__: haxe_ui_containers_windows__$Window_Maximizable }); var haxe_ui_containers_windows__$Window_Maximized = function($window) { haxe_ui_behaviours_DataBehaviour.call(this,$window); this._window = $window; }; $hxClasses["haxe.ui.containers.windows._Window.Maximized"] = haxe_ui_containers_windows__$Window_Maximized; haxe_ui_containers_windows__$Window_Maximized.__name__ = "haxe.ui.containers.windows._Window.Maximized"; haxe_ui_containers_windows__$Window_Maximized.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_windows__$Window_Maximized.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ _window: null ,validateData: function() { var title = (js_Boot.__cast(this._component._compositeBuilder , haxe_ui_containers_windows__$Window_Builder)).title; if(title != null) { var existing = title.findComponent("windowMaximizeButton",haxe_ui_components_Image); if(existing != null) { if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { this._window.set_dragInitiator(null); existing.addClass("restore"); } else { this._window.set_dragInitiator(title); existing.removeClass("restore"); } } var existing = title.findComponent("windowCollapseButton",haxe_ui_components_Image); if(existing != null) { if(haxe_ui_util_Variant.eq(this._value,haxe_ui_util_Variant.fromBool(true))) { existing.hide(); } else { existing.show(); } } } } ,__class__: haxe_ui_containers_windows__$Window_Maximized }); var haxe_ui_containers_windows__$Window_Minimized = function(component) { haxe_ui_behaviours_DataBehaviour.call(this,component); }; $hxClasses["haxe.ui.containers.windows._Window.Minimized"] = haxe_ui_containers_windows__$Window_Minimized; haxe_ui_containers_windows__$Window_Minimized.__name__ = "haxe.ui.containers.windows._Window.Minimized"; haxe_ui_containers_windows__$Window_Minimized.__super__ = haxe_ui_behaviours_DataBehaviour; haxe_ui_containers_windows__$Window_Minimized.prototype = $extend(haxe_ui_behaviours_DataBehaviour.prototype,{ validateData: function() { } ,__class__: haxe_ui_containers_windows__$Window_Minimized }); var haxe_ui_containers_windows__$Window_Builder = function($window) { this._downPoint = new haxe_ui_geom_Point(); this._tolerance = 10; this._resizeW = false; this._resizeS = false; this._resizeE = false; this._resizeN = false; this.title = null; haxe_ui_core_CompositeBuilder.call(this,$window); this._window = $window; }; $hxClasses["haxe.ui.containers.windows._Window.Builder"] = haxe_ui_containers_windows__$Window_Builder; haxe_ui_containers_windows__$Window_Builder.__name__ = "haxe.ui.containers.windows._Window.Builder"; haxe_ui_containers_windows__$Window_Builder.__super__ = haxe_ui_core_CompositeBuilder; haxe_ui_containers_windows__$Window_Builder.prototype = $extend(haxe_ui_core_CompositeBuilder.prototype,{ _window: null ,_windowWrapper: null ,title: null ,_content: null ,_footer: null ,create: function() { var _gthis = this; haxe_ui_core_CompositeBuilder.prototype.create.call(this); this._window.removeClass("window"); this._window.addClass("window-container"); this._windowWrapper = new haxe_ui_containers_VBox(); this._windowWrapper.addClass("window"); this._windowWrapper.addClass("window-wrapper"); this._windowWrapper.set_id("windowWrapper"); this._window.addComponent(this._windowWrapper); if(this.title == null) { this.title = new haxe_ui_containers_windows_WindowTitle(); this.title.registerEvent(haxe_ui_events_MouseEvent.DBL_CLICK,function(_) { if(_gthis._window.get_windowManager() != null) { if(_gthis._window.get_maximized()) { _gthis._window.get_windowManager().restoreWindow(_gthis._window); } else { _gthis._window.get_windowManager().maximizeWindow(_gthis._window); } } }); this._window.addComponent(this.title); this._window.set_dragInitiator(this.title); } this._content = new haxe_ui_containers_VBox(); this._content.addClass("window-content"); this._content.set_id("windowContent"); this._window.addComponent(this._content); this._window.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this._window.registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onMouseMove)); this._window.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); } ,_resizeN: null ,_resizeE: null ,_resizeS: null ,_resizeW: null ,_tolerance: null ,_downPoint: null ,onMouseDown: function(e) { if(this._window.get_windowManager() == null) { return; } this._downPoint.x = e.screenX; this._downPoint.y = e.screenY; this._window.get_windowManager().bringToFront(this._window); if(this._resizeN || this._resizeE || this._resizeS || this._resizeW) { e.cancel(); var _g = 0; var _g1 = this._window.get_windowManager().get_windows(); while(_g < _g1.length) { var w = _g1[_g]; ++_g; w.disableInteractivity(true); } this._window.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this._window.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onMouseMove)); this._window.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); } } ,onScreenMouseMove: function(e) { var dx = e.screenX - this._downPoint.x; var dy = e.screenY - this._downPoint.y; var prevWidth = this._window.get_width(); if(this._resizeE) { this._window.set_width(Math.max(this._window.get_width() + dx,1)); this._window.syncComponentValidation(); this._downPoint.x -= prevWidth - this._window.get_width(); } else if(this._resizeW) { this._window.set_width(Math.max(this._window.get_width() - dx,1)); this._window.syncComponentValidation(); var fh = this._window; fh.set_left(fh.get_left() + (prevWidth - this._window.get_width())); this._downPoint.x += prevWidth - this._window.get_width(); } var prevHeight = this._window.get_height(); if(this._resizeS) { this._window.set_height(Math.max(this._window.get_height() + dy,1)); this._window.syncComponentValidation(); this._downPoint.y -= prevHeight - this._window.get_height(); } else if(this._resizeN) { this._window.set_height(Math.max(this._window.get_height() - dy,1)); this._window.syncComponentValidation(); var fh = this._window; fh.set_top(fh.get_top() + (prevHeight - this._window.get_height())); this._downPoint.y += prevHeight - this._window.get_height(); } } ,onScreenMouseUp: function(e) { if(this._window.get_windowManager() == null) { return; } var _g = 0; var _g1 = this._window.get_windowManager().get_windows(); while(_g < _g1.length) { var w = _g1[_g]; ++_g; w.disableInteractivity(false); } this._resizeN = false; this._resizeE = false; this._resizeS = false; this._resizeW = false; this._windowWrapper.removeClasses(["size-nw","size-n","size-ne","size-w","size-e","size-sw","size-s","size-se"]); if(this._window.get_dragInitiator() != null && !this._window.get_draggable()) { this._window.set_draggable(true); } this._window.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this._window.registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onMouseMove)); this._window.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onMouseOut)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); } ,onMouseOut: function(e) { this._resizeN = false; this._resizeE = false; this._resizeS = false; this._resizeW = false; this._windowWrapper.removeClasses(["size-nw","size-n","size-ne","size-w","size-e","size-sw","size-s","size-se"]); if(this._window.get_dragInitiator() != null && !this._window.get_draggable()) { this._window.set_draggable(true); } } ,onMouseMove: function(e) { if(this._window.get_maximized()) { return; } this._resizeN = false; this._resizeE = false; this._resizeS = false; this._resizeW = false; this._windowWrapper.removeClasses(["size-nw","size-n","size-ne","size-w","size-e","size-sw","size-s","size-se"]); var x = e.get_localX(); var y = e.get_localY(); var w = this._window.get_width(); var h = this._window.get_height(); var classToAdd = null; var cursor = null; var rects = haxe_ui_geom_Slice9.buildSrcRects(w,h,new haxe_ui_geom_Rectangle(this._tolerance,this._tolerance,w - this._tolerance * 2,h - this._tolerance * 2)); if(rects[0].containsPoint(x,y)) { this._resizeN = true; this._resizeW = true; classToAdd = "size-nw"; cursor = "nwse-resize"; } else if(rects[1].containsPoint(x,y)) { this._resizeN = true; classToAdd = "size-n"; cursor = "ns-resize"; } else if(rects[2].containsPoint(x,y)) { this._resizeN = true; this._resizeE = true; classToAdd = "size-ne"; cursor = "nesw-resize"; } else if(rects[3].containsPoint(x,y)) { this._resizeW = true; classToAdd = "size-w"; cursor = "ew-resize"; } else if(rects[5].containsPoint(x,y)) { this._resizeE = true; classToAdd = "size-e"; cursor = "ew-resize"; } else if(rects[6].containsPoint(x,y)) { this._resizeS = true; this._resizeW = true; classToAdd = "size-sw"; cursor = "nesw-resize"; } else if(rects[7].containsPoint(x,y)) { this._resizeS = true; classToAdd = "size-s"; cursor = "ns-resize"; } else if(rects[8].containsPoint(x,y)) { this._resizeS = true; this._resizeE = true; classToAdd = "size-se"; cursor = "nwse-resize"; } if(classToAdd != null) { this._windowWrapper.addClass(classToAdd); if(this._window.get_dragInitiator() != null && this._window.get_draggable()) { this._window.set_draggable(false); } } else if(this._window.get_dragInitiator() != null && !this._window.get_draggable()) { this._window.set_draggable(true); } this._window.get_customStyle().cursor = cursor; this.title.get_customStyle().cursor = cursor; var _this = this._window; _this.invalidateComponent("style",false); var _this = this.title; _this.invalidateComponent("style",false); } ,addComponent: function(child) { var _gthis = this; if(((child) instanceof haxe_ui_containers_windows_WindowTitle)) { if(this.title != child) { if(this.title != null) { this._windowWrapper.removeComponent(this.title); this._window.set_dragInitiator(null); } this.title = child; this._window.set_dragInitiator(this.title); this.title.registerEvent(haxe_ui_events_MouseEvent.DBL_CLICK,function(_) { if(_gthis._window.get_windowManager() != null) { if(_gthis._window.get_maximized()) { _gthis._window.get_windowManager().restoreWindow(_gthis._window); } else { _gthis._window.get_windowManager().maximizeWindow(_gthis._window); } } }); return this._windowWrapper.addComponentAt(child,0); } } if(((child) instanceof haxe_ui_containers_windows_WindowFooter)) { this._footer = child; return this._windowWrapper.addComponent(child); } if(child == this.title || child == this._content || child == this._footer) { return this._windowWrapper.addComponent(child); } if(child != this._windowWrapper) { return this._content.addComponent(child); } return haxe_ui_core_CompositeBuilder.prototype.addComponent.call(this,child); } ,addComponentAt: function(child,index) { if(child != this.title && child != this._content && child != this._footer) { return this._content.addComponentAt(child,index); } return null; } ,__class__: haxe_ui_containers_windows__$Window_Builder }); var haxe_ui_containers_windows_WindowEvent = function(type,bubble,data) { haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.containers.windows.WindowEvent"] = haxe_ui_containers_windows_WindowEvent; haxe_ui_containers_windows_WindowEvent.__name__ = "haxe.ui.containers.windows.WindowEvent"; haxe_ui_containers_windows_WindowEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_containers_windows_WindowEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ window: null ,get_window: function() { return this.target; } ,clone: function() { var c = new haxe_ui_containers_windows_WindowEvent(this.type); c.window = this.get_window(); this.postClone(c); return c; } ,__class__: haxe_ui_containers_windows_WindowEvent ,__properties__: {get_window:"get_window"} }); var haxe_ui_containers_windows_WindowFooter = function() { haxe_ui_containers_HBox.call(this); }; $hxClasses["haxe.ui.containers.windows.WindowFooter"] = haxe_ui_containers_windows_WindowFooter; haxe_ui_containers_windows_WindowFooter.__name__ = "haxe.ui.containers.windows.WindowFooter"; haxe_ui_containers_windows_WindowFooter.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_windows_WindowFooter.prototype = $extend(haxe_ui_containers_HBox.prototype,{ registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_windows_WindowFooter(); } ,__class__: haxe_ui_containers_windows_WindowFooter }); var haxe_ui_containers_windows_WindowList = function() { this._windowToItemMap = new haxe_ds_ObjectMap(); this.windowManager = null; haxe_ui_containers_HBox.call(this); this.applyRootLayout("hbox"); var c0 = new haxe_ui_containers_HBox(); c0.set_id("openWindows"); c0.set_percentWidth(100.); c0.set_percentHeight(100.); c0.set_styleString("spacing:0"); this.addComponent(c0); this.set_percentWidth(100.); this.bindingRoot = true; this.openWindows = c0; }; $hxClasses["haxe.ui.containers.windows.WindowList"] = haxe_ui_containers_windows_WindowList; haxe_ui_containers_windows_WindowList.__name__ = "haxe.ui.containers.windows.WindowList"; haxe_ui_containers_windows_WindowList.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_windows_WindowList.prototype = $extend(haxe_ui_containers_HBox.prototype,{ windowManager: null ,_windowToItemMap: null ,onReady: function() { haxe_ui_containers_HBox.prototype.onReady.call(this); if(this.windowManager == null) { this.windowManager = haxe_ui_containers_windows_WindowManager.get_instance(); } this.windowManager.registerEvent("windowadded",$bind(this,this.onWindowAdded)); this.windowManager.registerEvent("windowclosed",$bind(this,this.onWindowClosed)); this.windowManager.registerEvent("windowactivated",$bind(this,this.onWindowActivated)); } ,onWindowAdded: function(event) { var item = new haxe_ui_containers_windows__$WindowList_WindowListItem(); var $window = js_Boot.__cast(event.target , haxe_ui_containers_windows_Window); $window.registerEvent("windowtitlechanged",$bind(this,this.onWindowTitleChanged)); item.set_text($window.get_title()); item.set_icon($window.get_icon()); item.relatedWindow = $window; this.openWindows.addComponent(item); this._windowToItemMap.set($window,item); } ,onWindowClosed: function(event) { var $window = js_Boot.__cast(event.target , haxe_ui_containers_windows_Window); $window.unregisterEvent("windowtitlechanged",$bind(this,this.onWindowTitleChanged)); var item = this._windowToItemMap.h[$window.__id__]; this.openWindows.removeComponent(item); this._windowToItemMap.remove($window); } ,onWindowActivated: function(event) { var $window = js_Boot.__cast(event.target , haxe_ui_containers_windows_Window); var item = this._windowToItemMap.h[$window.__id__]; if(item != null) { item.set_selected(true); } } ,onWindowTitleChanged: function(event) { var $window = js_Boot.__cast(event.target , haxe_ui_containers_windows_Window); var item = this._windowToItemMap.h[$window.__id__]; if(item != null) { item.set_text($window.get_title()); } } ,openWindows: null ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_windows_WindowList(); } ,__class__: haxe_ui_containers_windows_WindowList }); var haxe_ui_containers_windows__$WindowList_WindowListItem = function() { var _gthis = this; haxe_ui_components_Button.call(this); this.set_toggle(true); this.set_componentGroup("windowlist"); this.set_selected(true); this.set_iconPosition("far-left"); var image = new haxe_ui_components_Image(); image.set_id("window-list-close-button"); image.addClass("window-list-close-button"); image.set_includeInLayout(false); image.set_scriptAccess(false); image.set_onClick($bind(this,this.onCloseClicked)); image.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,function(event) { event.cancel(); }); this.addComponent(image); this.set_onChange(function(_) { if(_gthis.get_selected() == true) { var windowList = _gthis.findAncestor(null,haxe_ui_containers_windows_WindowList); if(_gthis.relatedWindow.get_minimized()) { windowList.windowManager.restoreWindow(_gthis.relatedWindow); } windowList.windowManager.bringToFront(_gthis.relatedWindow); } }); var events = js_Boot.__cast(this._internalEvents , haxe_ui_components_ButtonEvents); events.recursiveStyling = false; }; $hxClasses["haxe.ui.containers.windows._WindowList.WindowListItem"] = haxe_ui_containers_windows__$WindowList_WindowListItem; haxe_ui_containers_windows__$WindowList_WindowListItem.__name__ = "haxe.ui.containers.windows._WindowList.WindowListItem"; haxe_ui_containers_windows__$WindowList_WindowListItem.__super__ = haxe_ui_components_Button; haxe_ui_containers_windows__$WindowList_WindowListItem.prototype = $extend(haxe_ui_components_Button.prototype,{ relatedWindow: null ,onCloseClicked: function(event) { event.cancel(); var windowList = this.findAncestor(null,haxe_ui_containers_windows_WindowList); windowList.windowManager.closeWindow(this.relatedWindow); } ,registerComposite: function() { haxe_ui_components_Button.prototype.registerComposite.call(this); this._defaultLayoutClass = haxe_ui_containers_windows__$WindowList_WindowListItemLayout; } ,registerBehaviours: function() { haxe_ui_components_Button.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_components_Button.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_windows__$WindowList_WindowListItem(); } ,__class__: haxe_ui_containers_windows__$WindowList_WindowListItem }); var haxe_ui_containers_windows__$WindowList_WindowListItemLayout = function() { haxe_ui_components_ButtonLayout.call(this); }; $hxClasses["haxe.ui.containers.windows._WindowList.WindowListItemLayout"] = haxe_ui_containers_windows__$WindowList_WindowListItemLayout; haxe_ui_containers_windows__$WindowList_WindowListItemLayout.__name__ = "haxe.ui.containers.windows._WindowList.WindowListItemLayout"; haxe_ui_containers_windows__$WindowList_WindowListItemLayout.__super__ = haxe_ui_components_ButtonLayout; haxe_ui_containers_windows__$WindowList_WindowListItemLayout.prototype = $extend(haxe_ui_components_ButtonLayout.prototype,{ repositionChildren: function() { haxe_ui_components_ButtonLayout.prototype.repositionChildren.call(this); var image = this._component.findComponent("window-list-close-button",haxe_ui_components_Image,false); if(image != null && image.get_hidden() == false && this.get_component().get_componentWidth() > 0) { image.set_top((this.get_component().get_componentHeight() / 2 - image.get_componentHeight() / 2 | 0) + this.marginTop(image) - this.marginBottom(image)); image.set_left(this.get_component().get_componentWidth() - image.get_componentWidth() - this.get_paddingRight() + this.marginLeft(image) - this.marginRight(image)); } } ,calcAutoSize: function(exclusions) { var size = haxe_ui_components_ButtonLayout.prototype.calcAutoSize.call(this,exclusions); var image = this._component.findComponent("window-list-close-button",haxe_ui_components_Image,false); if(image != null && image.get_hidden() == false) { size.width += image.get_width() + this.get_horizontalSpacing(); } return size; } ,cloneLayout: function() { var c = haxe_ui_components_ButtonLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_containers_windows__$WindowList_WindowListItemLayout(); } ,__class__: haxe_ui_containers_windows__$WindowList_WindowListItemLayout }); var haxe_ui_util_EventDispatcher = function() { this._eventMap = new haxe_ui_util_EventMap(); }; $hxClasses["haxe.ui.util.EventDispatcher"] = haxe_ui_util_EventDispatcher; haxe_ui_util_EventDispatcher.__name__ = "haxe.ui.util.EventDispatcher"; haxe_ui_util_EventDispatcher.__interfaces__ = [haxe_ui_core_IEventDispatcher]; haxe_ui_util_EventDispatcher.prototype = { _eventMap: null ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } this._eventMap.add(type,listener,priority); } ,hasEvent: function(type,listener) { return this._eventMap.contains(type,listener); } ,unregisterEvent: function(type,listener) { this._eventMap.remove(type,listener); } ,dispatch: function(event,target) { this._eventMap.invoke(event.type,event,target); } ,removeAllListeners: function() { this._eventMap.removeAll(); } ,__class__: haxe_ui_util_EventDispatcher }; var haxe_ui_containers_windows_WindowManager = function() { this._originalWindowBounds = new haxe_ds_ObjectMap(); this._nextWindowPos = new haxe_ui_geom_Point(0,0); this._container = null; this.openMaximized = false; this.topMostWindow = null; haxe_ui_util_EventDispatcher.call(this); }; $hxClasses["haxe.ui.containers.windows.WindowManager"] = haxe_ui_containers_windows_WindowManager; haxe_ui_containers_windows_WindowManager.__name__ = "haxe.ui.containers.windows.WindowManager"; haxe_ui_containers_windows_WindowManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_containers_windows_WindowManager._instance = null; haxe_ui_containers_windows_WindowManager.instance = null; haxe_ui_containers_windows_WindowManager.get_instance = function() { if(haxe_ui_containers_windows_WindowManager._instance == null) { haxe_ui_containers_windows_WindowManager._instance = new haxe_ui_containers_windows_WindowManager(); } return haxe_ui_containers_windows_WindowManager._instance; }; haxe_ui_containers_windows_WindowManager.__super__ = haxe_ui_util_EventDispatcher; haxe_ui_containers_windows_WindowManager.prototype = $extend(haxe_ui_util_EventDispatcher.prototype,{ topMostWindow: null ,openMaximized: null ,windows: null ,get_windows: function() { if(this._container == null) { var array = []; var _g = 0; var _g1 = haxe_ui_core_Screen.get_instance().rootComponents; while(_g < _g1.length) { var c = _g1[_g]; ++_g; if(((c) instanceof haxe_ui_containers_windows_Window)) { array.push(c); } } return array; } return this._container.findComponents(null,haxe_ui_containers_windows_Window,1); } ,_container: null ,get_container: function() { return this._container; } ,set_container: function(value) { this._container = value; this._container.set_layout(new haxe_ui_layouts_AbsoluteLayout()); this._container.registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this.onContainerResized)); return value; } ,onContainerResized: function(event) { var _g = 0; var _g1 = this.get_windows(); while(_g < _g1.length) { var $window = _g1[_g]; ++_g; if($window.get_maximized()) { var cx = 0; var cy = 0; if(this._container == null) { cx = haxe_ui_core_Screen.get_instance().get_width(); cy = haxe_ui_core_Screen.get_instance().get_height(); } else { cx = this._container.get_width(); cy = this._container.get_height(); } $window.set_left(0); $window.set_top(0); $window.set_width(cx); $window.set_height(cy); } } } ,_nextWindowPos: null ,addWindow: function($window) { if($window.get_left() == 0) { $window.set_left(this._nextWindowPos.x); this._nextWindowPos.x += 30; } if($window.get_top() == 0) { $window.set_top(this._nextWindowPos.y); this._nextWindowPos.y += 30; } $window.set_windowManager(this); $window.set_opacity(0); if(this._container == null) { haxe_ui_core_Screen.get_instance().addComponent($window); } else { this._container.addComponent($window); } var e = new haxe_ui_containers_windows_WindowEvent("windowadded"); this.dispatch(e,$window); this.bringToFront($window); if(this.openMaximized) { this.maximizeWindow($window); } $window.fadeIn(); } ,bringToFront: function($window) { if(this.topMostWindow == $window) { if(!$window.get_maximized()) { this.topMostWindow.addClass("window-active",true,true); } return; } if(this.topMostWindow != null) { var e = new haxe_ui_containers_windows_WindowEvent("windowdeactivated"); this.topMostWindow.removeClass("window-active",true,true); this.dispatch(e,this.topMostWindow); } if(this._container == null) { haxe_ui_core_Screen.get_instance().setComponentIndex($window,haxe_ui_core_Screen.get_instance().rootComponents.length - 1); } else { this._container.setComponentIndex($window,this._container.get_numComponents() - 1); } this.topMostWindow = $window; if(!$window.get_maximized()) { this.topMostWindow.addClass("window-active",true,true); } var e = new haxe_ui_containers_windows_WindowEvent("windowactivated"); this.dispatch(e,this.topMostWindow); } ,activatePrevWindow: function($window) { if($window == null) { return; } var e = new haxe_ui_containers_windows_WindowEvent("windowdeactivated"); this.dispatch(e,$window); var prevWindow = this.findPrevActivableWindow($window); if(prevWindow != null) { this.bringToFront(prevWindow); } } ,findPrevActivableWindow: function($window) { var windowList = this.get_windows(); var index = windowList.indexOf($window); var prevWindow = null; if(index != -1) { --index; while(index >= 0) { if(windowList[index].get_minimized() == false) { prevWindow = windowList[index]; break; } --index; } if(prevWindow != null) { this.bringToFront(prevWindow); } } return prevWindow; } ,_originalWindowBounds: null ,maximizeWindow: function($window,activate) { if(activate == null) { activate = true; } if($window.get_maximized() == true) { return; } this.openMaximized = true; this._originalWindowBounds.set($window,new haxe_ui_geom_Rectangle($window.get_left(),$window.get_top(),$window.get_width(),$window.get_height())); var cx = 0; var cy = 0; if(this._container == null) { cx = haxe_ui_core_Screen.get_instance().get_width(); cy = haxe_ui_core_Screen.get_instance().get_height(); } else { cx = this._container.get_width(); cy = this._container.get_height(); } $window.set_left(0); $window.set_top(0); $window.set_width(cx); $window.set_height(cy); $window.set_maximized(true); $window.addClass("window-maximized"); $window.removeClass("window-active",true,true); $window.findComponent("windowWrapper",haxe_ui_core_Component).addClass("window-maximized"); var e = new haxe_ui_containers_windows_WindowEvent("windowmaximized"); this.dispatch(e,$window); if(activate) { this.bringToFront($window); } this.maximizeAllWindows(); } ,minimizeWindow: function($window) { if($window.get_minimized() == true) { return; } $window.hide(); $window.set_minimized(true); var e = new haxe_ui_containers_windows_WindowEvent("windowminimized"); this.dispatch(e,$window); if(this.topMostWindow == $window) { this.activatePrevWindow($window); } } ,restoreWindow: function($window) { if($window.get_minimized()) { $window.set_minimized(false); $window.show(); } else if($window.get_maximized()) { this.openMaximized = false; if(this._originalWindowBounds.h.__keys__[$window.__id__] == null) { return; } var bounds = this._originalWindowBounds.h[$window.__id__]; $window.set_left(bounds.left); $window.set_top(bounds.top); $window.set_width(bounds.width); $window.set_height(bounds.height); $window.set_maximized(false); $window.removeClass("window-maximized"); $window.findComponent("windowWrapper",haxe_ui_core_Component).removeClass("window-maximized"); if($window == this.topMostWindow) { $window.addClass("window-active",true,true); } this._originalWindowBounds.remove($window); this.restoreAllWindows(); } var e = new haxe_ui_containers_windows_WindowEvent("windowrestored"); this.dispatch(e,$window); } ,restoreAllWindows: function() { var _g = 0; var _g1 = this.get_windows(); while(_g < _g1.length) { var w = _g1[_g]; ++_g; if(w.get_maximized() && !w.get_minimized()) { this.restoreWindow(w); } } } ,maximizeAllWindows: function() { var _g = 0; var _g1 = this.get_windows(); while(_g < _g1.length) { var w = _g1[_g]; ++_g; if(!w.get_maximized()) { this.maximizeWindow(w,false); } } } ,closeWindow: function($window) { var _gthis = this; var e = new haxe_ui_containers_windows_WindowEvent("windowbeforeclosed"); this.dispatch(e,$window); if(e.canceled) { return false; } var e = new haxe_ui_containers_windows_WindowEvent("windowbeforeclosed"); $window.dispatch(e); if(e.canceled) { return false; } $window.validateWindow(function(validated) { if(validated) { var existing = $window.findComponent("windowCloseButton",haxe_ui_components_Image); if(existing != null) { existing.removeClass(":hover"); } $window.fadeOut(function() { var prevWindow = _gthis.findPrevActivableWindow($window); var e = new haxe_ui_containers_windows_WindowEvent("windowclosed"); $window.dispatch(e); if(_gthis._container == null) { haxe_ui_core_Screen.get_instance().removeComponent($window); } else { _gthis._container.removeComponent($window); } var e = new haxe_ui_containers_windows_WindowEvent("windowclosed"); _gthis.dispatch(e,$window); if(_gthis.topMostWindow == $window) { if(prevWindow != null) { _gthis.bringToFront(prevWindow); } } }); } }); return true; } ,reset: function() { var _g = 0; var _g1 = this.get_windows(); while(_g < _g1.length) { var $window = _g1[_g]; ++_g; if(this._container == null) { haxe_ui_core_Screen.get_instance().removeComponent($window); } else { this._container.removeComponent($window); } } this._container = null; this.topMostWindow = null; this.openMaximized = false; this.removeAllListeners(); } ,__class__: haxe_ui_containers_windows_WindowManager ,__properties__: {set_container:"set_container",get_container:"get_container",get_windows:"get_windows"} }); var haxe_ui_containers_windows_WindowTitle = function() { haxe_ui_containers_HBox.call(this); this.applyRootLayout("hbox"); var c0 = new haxe_ui_components_Image(); c0.set_id("windowTitleIcon"); c0.set_verticalAlign("center"); c0.set_hidden(true); this.addComponent(c0); var c1 = new haxe_ui_components_Label(); c1.set_id("windowTitleLabel"); c1.set_text("Window"); c1.set_verticalAlign("center"); this.addComponent(c1); var c2 = new haxe_ui_containers_HBox(); c2.set_id("controlsContainer"); c2.set_styleString("cursor: default"); c2.set_verticalAlign("center"); c2.set_hidden(true); this.addComponent(c2); this.set_percentWidth(100.); this.bindingRoot = true; this.windowTitleLabel = c1; this.windowTitleIcon = c0; this.controlsContainer = c2; }; $hxClasses["haxe.ui.containers.windows.WindowTitle"] = haxe_ui_containers_windows_WindowTitle; haxe_ui_containers_windows_WindowTitle.__name__ = "haxe.ui.containers.windows.WindowTitle"; haxe_ui_containers_windows_WindowTitle.__super__ = haxe_ui_containers_HBox; haxe_ui_containers_windows_WindowTitle.prototype = $extend(haxe_ui_containers_HBox.prototype,{ addComponent: function(child) { if(this.controlsContainer != null && child != this.windowTitleLabel && child != this.controlsContainer) { this.controlsContainer.show(); return this.controlsContainer.addComponent(child); } return haxe_ui_containers_HBox.prototype.addComponent.call(this,child); } ,windowTitleLabel: null ,windowTitleIcon: null ,controlsContainer: null ,registerBehaviours: function() { haxe_ui_containers_HBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_HBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_containers_windows_WindowTitle(); } ,__class__: haxe_ui_containers_windows_WindowTitle }); var haxe_ui_core_BasicItemRenderer = function() { haxe_ui_core_ItemRenderer.call(this); var hbox = new haxe_ui_containers_HBox(); hbox.addClass("basic-renderer-container"); this._icon = new haxe_ui_components_Image(); this._icon.set_id("icon"); this._icon.addClass("basic-renderer-icon"); this._icon.set_verticalAlign("center"); this._icon.hide(); hbox.addComponent(this._icon); this._label = new haxe_ui_components_Label(); this._label.set_id("text"); this._label.addClass("basic-renderer-label"); this._label.set_verticalAlign("center"); this._label.hide(); hbox.addComponent(this._label); this.addComponent(hbox); }; $hxClasses["haxe.ui.core.BasicItemRenderer"] = haxe_ui_core_BasicItemRenderer; haxe_ui_core_BasicItemRenderer.__name__ = "haxe.ui.core.BasicItemRenderer"; haxe_ui_core_BasicItemRenderer.__super__ = haxe_ui_core_ItemRenderer; haxe_ui_core_BasicItemRenderer.prototype = $extend(haxe_ui_core_ItemRenderer.prototype,{ _icon: null ,_label: null ,updateValues: function(value,fieldList) { haxe_ui_core_ItemRenderer.prototype.updateValues.call(this,value,fieldList); if(value != null) { if(value.color != null) { var tmp = haxe_ui_util_Color.fromString(value.color); this._label.get_customStyle().color = haxe_ui_util_Color.toInt(tmp); } if(value.bold != null) { var tmp = Std.string(value.bold); this._label.get_customStyle().fontBold = tmp == "true"; } if(value.italic != null) { var tmp = Std.string(value.italic); this._label.get_customStyle().fontItalic = tmp == "true"; } if(value.underline != null) { var tmp = Std.string(value.underline); this._label.get_customStyle().fontUnderline = tmp == "true"; } } } ,registerBehaviours: function() { haxe_ui_core_ItemRenderer.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_core_ItemRenderer.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_core_BasicItemRenderer(); } ,__class__: haxe_ui_core_BasicItemRenderer }); var haxe_ui_core_ClassFactory = function(generator,properties) { this.generator = generator; this.properties = properties; }; $hxClasses["haxe.ui.core.ClassFactory"] = haxe_ui_core_ClassFactory; haxe_ui_core_ClassFactory.__name__ = "haxe.ui.core.ClassFactory"; haxe_ui_core_ClassFactory.prototype = { generator: null ,properties: null ,newInstance: function() { var instance = Type.createInstance(this.generator,[]); if(this.properties != null) { var h = this.properties.h; var property_h = h; var property_keys = Object.keys(h); var property_length = property_keys.length; var property_current = 0; while(property_current < property_length) { var property = property_keys[property_current++]; Reflect.setProperty(instance,property,this.properties.h[property]); } } return instance; } ,__class__: haxe_ui_core_ClassFactory }; var haxe_ui_core_ComponentClassMap = function() { this._map = null; }; $hxClasses["haxe.ui.core.ComponentClassMap"] = haxe_ui_core_ComponentClassMap; haxe_ui_core_ComponentClassMap.__name__ = "haxe.ui.core.ComponentClassMap"; haxe_ui_core_ComponentClassMap.__properties__ = {get_instance:"get_instance"}; haxe_ui_core_ComponentClassMap._instance = null; haxe_ui_core_ComponentClassMap.get_instance = function() { if(haxe_ui_core_ComponentClassMap._instance == null) { haxe_ui_core_ComponentClassMap._instance = new haxe_ui_core_ComponentClassMap(); } return haxe_ui_core_ComponentClassMap._instance; }; haxe_ui_core_ComponentClassMap.get = function(alias) { alias = StringTools.replace(alias,"-","").toLowerCase(); return haxe_ui_core_ComponentClassMap.get_instance().getClassName(alias); }; haxe_ui_core_ComponentClassMap.register = function(alias,className) { haxe_ui_core_ComponentClassMap.get_instance().registerClassName(alias.toLowerCase(),className); }; haxe_ui_core_ComponentClassMap.registerClass = function(cls,alias) { var className = cls.__name__; if(alias == null) { alias = className.split(".").pop().toLowerCase(); } haxe_ui_core_ComponentClassMap.get_instance().registerClassName(alias.toLowerCase(),className); }; haxe_ui_core_ComponentClassMap.list = function() { haxe_ui_core_ComponentClassMap.get_instance().load(); return new haxe_ds__$StringMap_StringMapKeyIterator(haxe_ui_core_ComponentClassMap.get_instance()._map.h); }; haxe_ui_core_ComponentClassMap.clear = function() { haxe_ui_core_ComponentClassMap.get_instance()._map = new haxe_ds_StringMap(); }; haxe_ui_core_ComponentClassMap.hasClass = function(className) { return haxe_ui_core_ComponentClassMap.get_instance().hasClassName(className); }; haxe_ui_core_ComponentClassMap.prototype = { _map: null ,getClassName: function(alias) { this.load(); alias = alias.toLowerCase(); return this._map.h[alias]; } ,registerClassName: function(alias,className) { this.load(); alias = alias.toLowerCase(); if(Object.prototype.hasOwnProperty.call(this._map.h,alias) == false) { this._map.h[alias] = className; } this.save(); } ,hasClassName: function(className) { this.load(); var h = this._map.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; if(this._map.h[k] == className) { return true; } } return false; } ,load: function() { if(this._map != null) { return; } var s = haxe_Resource.getString("haxeui_classmap"); if(s == null) { return; } var unserializer = new haxe_Unserializer(s); this._map = unserializer.unserialize(); } ,save: function() { } ,__class__: haxe_ui_core_ComponentClassMap }; var haxe_ui_core_ComponentFieldMap = function() { }; $hxClasses["haxe.ui.core.ComponentFieldMap"] = haxe_ui_core_ComponentFieldMap; haxe_ui_core_ComponentFieldMap.__name__ = "haxe.ui.core.ComponentFieldMap"; haxe_ui_core_ComponentFieldMap.mapField = function(name) { if(Object.prototype.hasOwnProperty.call(haxe_ui_core_ComponentFieldMap.MAP.h,name)) { return haxe_ui_core_ComponentFieldMap.MAP.h[name]; } return name; }; var haxe_ui_core_ImageDisplay = function() { this._isValidating = false; this._isAllInvalid = false; this._invalidationFlags = new haxe_ds_StringMap(); haxe_ui_backend_ImageDisplayImpl.call(this); }; $hxClasses["haxe.ui.core.ImageDisplay"] = haxe_ui_core_ImageDisplay; haxe_ui_core_ImageDisplay.__name__ = "haxe.ui.core.ImageDisplay"; haxe_ui_core_ImageDisplay.__super__ = haxe_ui_backend_ImageDisplayImpl; haxe_ui_core_ImageDisplay.prototype = $extend(haxe_ui_backend_ImageDisplayImpl.prototype,{ _invalidationFlags: null ,_isAllInvalid: null ,_isValidating: null ,get_left: function() { return this._left; } ,set_left: function(value) { if(value == this._left) { return value; } this._left = value; this.invalidateComponent("position"); return value; } ,get_top: function() { return this._top; } ,set_top: function(value) { if(value == this._top) { return value; } this._top = value; this.invalidateComponent("position"); return value; } ,set_imageWidth: function(value) { if(this._imageWidth == value || value <= 0) { return value; } this._imageWidth = value; this.invalidateComponent("display"); return value; } ,get_imageWidth: function() { return this._imageWidth; } ,set_imageHeight: function(value) { if(this._imageHeight == value || value <= 0) { return value; } this._imageHeight = value; this.invalidateComponent("display"); return value; } ,get_imageHeight: function() { return this._imageHeight; } ,get_imageInfo: function() { return this._imageInfo; } ,set_imageInfo: function(value) { if(value == this._imageInfo) { return value; } this._imageInfo = value; this._imageWidth = this._imageInfo.width; this._imageHeight = this._imageInfo.height; this.invalidateComponent("data"); this.invalidateComponent("display"); return value; } ,get_imageClipRect: function() { return this._imageClipRect; } ,set_imageClipRect: function(value) { this._imageClipRect = value; this.invalidateComponent("display"); return value; } ,isComponentInvalid: function(flag) { if(flag == null) { flag = "all"; } if(this._isAllInvalid == true) { return true; } if(flag == "all") { var h = this._invalidationFlags.h; var value_h = h; var value_keys = Object.keys(h); var value_length = value_keys.length; var value_current = 0; while(value_current < value_length) { var value = value_h[value_keys[value_current++]]; return true; } return false; } return Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag); } ,invalidateComponent: function(flag) { if(flag == null) { flag = "all"; } if(this.parentComponent == null) { return; } if(flag == "all") { this._isAllInvalid = true; this.parentComponent.invalidateComponent("imageDisplay"); } else if(!Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag)) { this._invalidationFlags.h[flag] = true; this.parentComponent.invalidateComponent("imageDisplay"); } } ,validateComponent: function() { if(this._isValidating == true || this.isComponentInvalid() == false) { return; } this._isValidating = true; this.handleValidate(); var h = this._invalidationFlags.h; var flag_h = h; var flag_keys = Object.keys(h); var flag_length = flag_keys.length; var flag_current = 0; while(flag_current < flag_length) { var flag = flag_keys[flag_current++]; var _this = this._invalidationFlags; if(Object.prototype.hasOwnProperty.call(_this.h,flag)) { delete(_this.h[flag]); } } this._isAllInvalid = false; this._isValidating = false; } ,handleValidate: function() { var dataInvalid = this.isComponentInvalid("data"); var positionInvalid = this.isComponentInvalid("position"); var displayInvalid = this.isComponentInvalid("display"); if(dataInvalid) { this.validateData(); } if(positionInvalid) { this.validatePosition(); } if(displayInvalid) { this.validateDisplay(); } } ,__class__: haxe_ui_core_ImageDisplay ,__properties__: $extend(haxe_ui_backend_ImageDisplayImpl.prototype.__properties__,{set_imageClipRect:"set_imageClipRect",get_imageClipRect:"get_imageClipRect",set_imageInfo:"set_imageInfo",get_imageInfo:"get_imageInfo",set_imageHeight:"set_imageHeight",get_imageHeight:"get_imageHeight",set_imageWidth:"set_imageWidth",get_imageWidth:"get_imageWidth",set_top:"set_top",get_top:"get_top",set_left:"set_left",get_left:"get_left"}) }); var haxe_ui_core_Platform = function() { haxe_ui_backend_PlatformImpl.call(this); }; $hxClasses["haxe.ui.core.Platform"] = haxe_ui_core_Platform; haxe_ui_core_Platform.__name__ = "haxe.ui.core.Platform"; haxe_ui_core_Platform.__properties__ = {get_instance:"get_instance",get_hscrollHeight:"get_hscrollHeight",get_vscrollWidth:"get_vscrollWidth"}; haxe_ui_core_Platform.vscrollWidth = null; haxe_ui_core_Platform.get_vscrollWidth = function() { return haxe_ui_core_Platform.get_instance().getMetric("patform.metrics.vscroll.width"); }; haxe_ui_core_Platform.hscrollHeight = null; haxe_ui_core_Platform.get_hscrollHeight = function() { return haxe_ui_core_Platform.get_instance().getMetric("patform.metrics.hscroll.height"); }; haxe_ui_core_Platform._instance = null; haxe_ui_core_Platform.instance = null; haxe_ui_core_Platform.get_instance = function() { if(haxe_ui_core_Platform._instance == null) { haxe_ui_core_Platform._instance = new haxe_ui_core_Platform(); } return haxe_ui_core_Platform._instance; }; haxe_ui_core_Platform.__super__ = haxe_ui_backend_PlatformImpl; haxe_ui_core_Platform.prototype = $extend(haxe_ui_backend_PlatformImpl.prototype,{ getMetric: function(id) { return haxe_ui_backend_PlatformImpl.prototype.getMetric.call(this,id); } ,__class__: haxe_ui_core_Platform }); var haxe_ui_core_Screen = function() { this.currentMouseY = null; this.currentMouseX = null; this._eventMap = new haxe_ui_util_EventMap(); var _gthis = this; haxe_ui_backend_ScreenImpl.call(this); this.registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,function(e) { _gthis.currentMouseX = e.screenX; _gthis.currentMouseY = e.screenY; }); }; $hxClasses["haxe.ui.core.Screen"] = haxe_ui_core_Screen; haxe_ui_core_Screen.__name__ = "haxe.ui.core.Screen"; haxe_ui_core_Screen.__properties__ = {get_instance:"get_instance"}; haxe_ui_core_Screen._instance = null; haxe_ui_core_Screen.get_instance = function() { if(haxe_ui_core_Screen._instance == null) { haxe_ui_core_Screen._instance = new haxe_ui_core_Screen(); } return haxe_ui_core_Screen._instance; }; haxe_ui_core_Screen.__super__ = haxe_ui_backend_ScreenImpl; haxe_ui_core_Screen.prototype = $extend(haxe_ui_backend_ScreenImpl.prototype,{ _eventMap: null ,currentMouseX: null ,currentMouseY: null ,addComponent: function(component) { var wasReady = component.get_isReady(); component._hasScreen = true; haxe_ui_backend_ScreenImpl.prototype.addComponent.call(this,component); component.ready(); if(this.rootComponents.indexOf(component) == -1) { this.rootComponents.push(component); } haxe_ui_focus_FocusManager.get_instance().pushView(component); if(component.hasEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this._onRootComponentResize)) == false) { component.registerEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this._onRootComponentResize)); } if(wasReady && component.get_hidden() == false) { component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.SHOWN)); } return component; } ,removeComponent: function(component,dispose,invalidate) { if(invalidate == null) { invalidate = true; } if(dispose == null) { dispose = true; } if(this.rootComponents.indexOf(component) == -1) { if(dispose) { component.disposeComponent(); } return component; } component._hasScreen = false; haxe_ui_backend_ScreenImpl.prototype.removeComponent.call(this,component,dispose); component.set_depth(-1); HxOverrides.remove(this.rootComponents,component); haxe_ui_focus_FocusManager.get_instance().removeView(component); component.unregisterEvent(haxe_ui_events_UIEvent.RESIZE,$bind(this,this._onRootComponentResize)); if(dispose) { component.disposeComponent(); } else { component.dispatch(new haxe_ui_events_UIEvent(haxe_ui_events_UIEvent.HIDDEN)); component.removeClass(":hover",false,true); } return component; } ,containsComponent: function(child) { if(child == null) { return false; } var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var rootComponent = _g1[_g]; ++_g; if(rootComponent == child) { return true; } } return false; } ,setComponentIndex: function(child,index) { if(index >= 0 && index <= this.rootComponents.length) { this.handleSetComponentIndex(child,index); HxOverrides.remove(this.rootComponents,child); this.rootComponents.splice(index,0,child); } return child; } ,moveComponentToFront: function(child) { if(this.rootComponents.indexOf(child) != -1) { this.setComponentIndex(child,this.rootComponents.length - 1); } } ,findComponent: function(criteria,type,recursive,searchType) { if(searchType == null) { searchType = "id"; } var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var rootComponent = _g1[_g]; ++_g; var result = rootComponent.findComponent(criteria,type,recursive,searchType); if(result != null) { return result; } } return null; } ,findComponentsUnderPoint: function(screenX,screenY,type) { if(screenX == null || screenY == null) { return []; } var c = []; var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var r = _g1[_g]; ++_g; if(r.hitTest(screenX,screenY)) { var match = true; if(type != null && js_Boot.__instanceof(r,type) == false) { match = false; } if(match == true) { c.push(r); } } c = c.concat(r.findComponentsUnderPoint(screenX,screenY,type)); } return c; } ,hasComponentUnderPoint: function(screenX,screenY,type) { if(screenX == null || screenY == null) { return false; } var _g = 0; var _g1 = this.rootComponents; while(_g < _g1.length) { var r = _g1[_g]; ++_g; if(r.hasComponentUnderPoint(screenX,screenY,type) == true) { return true; } } return false; } ,findSolidComponentUnderPoint: function(screenX,screenY,type) { if(screenX == null || screenY == null) { return []; } var solidComponents = []; var components = this.findComponentsUnderPoint(screenX,screenY,type); var _g = 0; while(_g < components.length) { var c = components[_g]; ++_g; if(c.get_isComponentSolid()) { solidComponents.push(c); } } return solidComponents; } ,hasSolidComponentUnderPoint: function(screenX,screenY,type) { if(screenX == null || screenY == null) { return false; } return this.findSolidComponentUnderPoint(screenX,screenY,type).length > 0; } ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this.supportsEvent(type) == true) { if(this._eventMap.add(type,listener,priority) == true) { this.mapEvent(type,$bind(this,this._onMappedEvent)); } } } ,hasEvent: function(type,listener) { return this._eventMap.contains(type,listener); } ,unregisterEvent: function(type,listener) { if(this._eventMap.remove(type,listener) == true) { this.unmapEvent(type,$bind(this,this._onMappedEvent)); } } ,_onMappedEvent: function(event) { this._eventMap.invoke(event.type,event); } ,__class__: haxe_ui_core_Screen }); var haxe_ui_core_SettingsManager = function() { this._persister = null; }; $hxClasses["haxe.ui.core.SettingsManager"] = haxe_ui_core_SettingsManager; haxe_ui_core_SettingsManager.__name__ = "haxe.ui.core.SettingsManager"; haxe_ui_core_SettingsManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_core_SettingsManager._instance = null; haxe_ui_core_SettingsManager.instance = null; haxe_ui_core_SettingsManager.get_instance = function() { if(haxe_ui_core_SettingsManager._instance == null) { haxe_ui_core_SettingsManager._instance = new haxe_ui_core_SettingsManager(); } return haxe_ui_core_SettingsManager._instance; }; haxe_ui_core_SettingsManager.prototype = { _persister: null ,set: function(name,value) { var serializer = new haxe_Serializer(); serializer.serialize(value); var s = serializer.toString(); this.getPersister().set(name,s); } ,get: function(name,defaultValue) { var s = this.getPersister().get(name); if(s == null) { return defaultValue; } var unserializer = new haxe_Unserializer(s); var v = unserializer.unserialize(); return v; } ,getPersister: function() { if(this._persister != null) { return this._persister; } this._persister = new haxe_ui_core_LocalStorageSettingsPersister(); return this._persister; } ,__class__: haxe_ui_core_SettingsManager }; var haxe_ui_core_ISettingsPersister = function() { }; $hxClasses["haxe.ui.core.ISettingsPersister"] = haxe_ui_core_ISettingsPersister; haxe_ui_core_ISettingsPersister.__name__ = "haxe.ui.core.ISettingsPersister"; haxe_ui_core_ISettingsPersister.__isInterface__ = true; haxe_ui_core_ISettingsPersister.prototype = { set: null ,get: null ,__class__: haxe_ui_core_ISettingsPersister }; var haxe_ui_core_LocalStorageSettingsPersister = function() { }; $hxClasses["haxe.ui.core.LocalStorageSettingsPersister"] = haxe_ui_core_LocalStorageSettingsPersister; haxe_ui_core_LocalStorageSettingsPersister.__name__ = "haxe.ui.core.LocalStorageSettingsPersister"; haxe_ui_core_LocalStorageSettingsPersister.__interfaces__ = [haxe_ui_core_ISettingsPersister]; haxe_ui_core_LocalStorageSettingsPersister.prototype = { set: function(name,value) { var localStorage = window.localStorage; localStorage.setItem(name,value); } ,get: function(name) { var localStorage = window.localStorage; return localStorage.getItem(name); } ,__class__: haxe_ui_core_LocalStorageSettingsPersister }; var haxe_ui_core_NoOpSettingsPersister = function() { }; $hxClasses["haxe.ui.core.NoOpSettingsPersister"] = haxe_ui_core_NoOpSettingsPersister; haxe_ui_core_NoOpSettingsPersister.__name__ = "haxe.ui.core.NoOpSettingsPersister"; haxe_ui_core_NoOpSettingsPersister.__interfaces__ = [haxe_ui_core_ISettingsPersister]; haxe_ui_core_NoOpSettingsPersister.prototype = { set: function(name,value) { } ,get: function(name) { return null; } ,__class__: haxe_ui_core_NoOpSettingsPersister }; var haxe_ui_core_TextDisplayData = function() { this.selectable = false; this.wordWrap = false; this.multiline = false; }; $hxClasses["haxe.ui.core.TextDisplayData"] = haxe_ui_core_TextDisplayData; haxe_ui_core_TextDisplayData.__name__ = "haxe.ui.core.TextDisplayData"; haxe_ui_core_TextDisplayData.prototype = { multiline: null ,wordWrap: null ,selectable: null ,__class__: haxe_ui_core_TextDisplayData }; var haxe_ui_core_TextDisplay = function() { this._depth = -1; this._isValidating = false; this._isAllInvalid = false; this._invalidationFlags = new haxe_ds_StringMap(); haxe_ui_backend_TextDisplayImpl.call(this); }; $hxClasses["haxe.ui.core.TextDisplay"] = haxe_ui_core_TextDisplay; haxe_ui_core_TextDisplay.__name__ = "haxe.ui.core.TextDisplay"; haxe_ui_core_TextDisplay.__interfaces__ = [haxe_ui_validation_IValidating]; haxe_ui_core_TextDisplay.__super__ = haxe_ui_backend_TextDisplayImpl; haxe_ui_core_TextDisplay.prototype = $extend(haxe_ui_backend_TextDisplayImpl.prototype,{ _invalidationFlags: null ,_isAllInvalid: null ,_isValidating: null ,get_id: function() { if(this.parentComponent == null) { return null; } return this.parentComponent.get_id() + "_textdisplay"; } ,set_id: function(value) { return value; } ,isComponentOffscreen: null ,get_isComponentOffscreen: function() { return false; } ,get_textStyle: function() { return this._textStyle; } ,set_textStyle: function(value) { var _gthis = this; if(value == null) { return value; } if(value.fontName != null && this._textStyle == null || this._textStyle != null && value.fontName != this._textStyle.fontName) { haxe_ui_ToolkitAssets.get_instance().getFont(value.fontName,function(fontInfo) { _gthis._fontInfo = fontInfo; _gthis.invalidateComponent("style"); _gthis.parentComponent.invalidateComponent("style"); }); } else { this.invalidateComponent("style"); } this._textStyle = value; return value; } ,get_text: function() { return this._text; } ,set_text: function(value) { if(value == this._text) { return value; } this._text = value; this._htmlText = null; this.invalidateComponent("data"); return value; } ,get_htmlText: function() { return this._htmlText; } ,set_htmlText: function(value) { if(value == this._htmlText) { return value; } this._htmlText = value; this._text = null; this.invalidateComponent("data"); return value; } ,get_left: function() { return this._left; } ,set_left: function(value) { if(value == this._left) { return value; } this.invalidateComponent("position"); this._left = value; return value; } ,get_top: function() { return this._top; } ,set_top: function(value) { if(value == this._top) { return value; } this.invalidateComponent("position"); this._top = value; return value; } ,set_width: function(value) { if(this._width == value) { return value; } this.invalidateComponent("display"); this._width = value; return value; } ,get_width: function() { return this._width; } ,set_height: function(value) { if(this._height == value) { return value; } this.invalidateComponent("display"); this._height = value; return value; } ,get_height: function() { return this._height; } ,textWidth: null ,get_textWidth: function() { if(this._text == null && this._htmlText == null) { return 0; } if(this._text != null && this._text.length == 0) { return 0; } if(this._htmlText != null && this._htmlText.length == 0) { return 0; } if(this.isComponentInvalid() == true) { this.validateComponent(); } return this._textWidth; } ,textHeight: null ,get_textHeight: function() { if(this.isComponentInvalid() == true) { this.validateComponent(); } return this._textHeight; } ,get_multiline: function() { return this._displayData.multiline; } ,set_multiline: function(value) { if(value == this._displayData.multiline) { return value; } this.invalidateComponent("style"); this._displayData.multiline = value; return value; } ,get_wordWrap: function() { return this._displayData.wordWrap; } ,set_wordWrap: function(value) { if(value == this._displayData.wordWrap) { return value; } this.invalidateComponent("style"); this._displayData.wordWrap = value; return value; } ,get_selectable: function() { return this._displayData.selectable; } ,set_selectable: function(value) { if(value == this._displayData.selectable) { return value; } this._displayData.selectable = value; this.invalidateComponent("style"); return value; } ,isComponentInvalid: function(flag) { if(flag == null) { flag = "all"; } if(this._isAllInvalid == true) { return true; } if(flag == "all") { var h = this._invalidationFlags.h; var value_h = h; var value_keys = Object.keys(h); var value_length = value_keys.length; var value_current = 0; while(value_current < value_length) { var value = value_h[value_keys[value_current++]]; return true; } return false; } return Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag); } ,invalidateComponent: function(flag) { if(flag == null) { flag = "all"; } if(flag == "all") { this._isAllInvalid = true; this.parentComponent.invalidateComponent("textDisplay"); } else if(!Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag)) { this._invalidationFlags.h[flag] = true; this.parentComponent.invalidateComponent("textDisplay"); } } ,_depth: null ,get_depth: function() { return this._depth; } ,set_depth: function(value) { if(this._depth == value) { return value; } this._depth = value; return value; } ,updateComponentDisplay: function() { } ,validateComponent: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } if(this._isValidating == true || this.isComponentInvalid() == false) { return; } this._isValidating = true; this.validateComponentInternal(); this._invalidationFlags.h = Object.create(null); this._isAllInvalid = false; this._isValidating = false; } ,validateComponentInternal: function() { var dataInvalid = this.isComponentInvalid("data"); var styleInvalid = this.isComponentInvalid("style"); var positionInvalid = this.isComponentInvalid("position"); var displayInvalid = this.isComponentInvalid("display"); var measureInvalid = this.isComponentInvalid("measure"); if(dataInvalid) { this.validateData(); } if(styleInvalid) { if(this.validateStyle()) { measureInvalid = true; } } if(positionInvalid || styleInvalid) { this.validatePosition(); } if(displayInvalid) { this.validateDisplay(); } if(dataInvalid || displayInvalid || measureInvalid) { var oldTextWidth = this.get_textWidth(); var oldTextHeight = this.get_textHeight(); this.measureText(); if(this.get_textWidth() != oldTextWidth || this.get_textHeight() != oldTextHeight) { this.parentComponent.invalidateComponent("layout"); } } } ,__class__: haxe_ui_core_TextDisplay ,__properties__: $extend(haxe_ui_backend_TextDisplayImpl.prototype.__properties__,{set_depth:"set_depth",get_depth:"get_depth",set_selectable:"set_selectable",get_selectable:"get_selectable",set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_multiline:"set_multiline",get_multiline:"get_multiline",get_textHeight:"get_textHeight",get_textWidth:"get_textWidth",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_top:"set_top",get_top:"get_top",set_left:"set_left",get_left:"get_left",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText",set_text:"set_text",get_text:"get_text",set_textStyle:"set_textStyle",get_textStyle:"get_textStyle",get_isComponentOffscreen:"get_isComponentOffscreen",set_id:"set_id",get_id:"get_id"}) }); var haxe_ui_core_TextInputData = function() { this.onChangedCallback = null; this.onScrollCallback = null; this.vscrollNativeWheel = false; this.vscrollPageStep = null; this.vscrollPageSize = 0; this.vscrollMax = 0; this.vscrollPos = 0; this.hscrollPageSize = 0; this.hscrollMax = 0; this.hscrollPos = 0; this.password = false; }; $hxClasses["haxe.ui.core.TextInputData"] = haxe_ui_core_TextInputData; haxe_ui_core_TextInputData.__name__ = "haxe.ui.core.TextInputData"; haxe_ui_core_TextInputData.prototype = { password: null ,hscrollPos: null ,hscrollMax: null ,hscrollPageSize: null ,vscrollPos: null ,vscrollMax: null ,vscrollPageSize: null ,vscrollPageStep: null ,vscrollNativeWheel: null ,onScrollCallback: null ,onChangedCallback: null ,__class__: haxe_ui_core_TextInputData }; var haxe_ui_core_TextInput = function() { this._depth = -1; this._isValidating = false; this._isAllInvalid = false; this._invalidationFlags = new haxe_ds_StringMap(); haxe_ui_backend_flixel_textinputs_FlxTextInput.call(this); this._isAllInvalid = true; }; $hxClasses["haxe.ui.core.TextInput"] = haxe_ui_core_TextInput; haxe_ui_core_TextInput.__name__ = "haxe.ui.core.TextInput"; haxe_ui_core_TextInput.__interfaces__ = [haxe_ui_validation_IValidating]; haxe_ui_core_TextInput.__super__ = haxe_ui_backend_flixel_textinputs_FlxTextInput; haxe_ui_core_TextInput.prototype = $extend(haxe_ui_backend_flixel_textinputs_FlxTextInput.prototype,{ _invalidationFlags: null ,_isAllInvalid: null ,_isValidating: null ,get_id: function() { if(this.parentComponent == null) { return null; } return this.parentComponent.get_id() + "_textinput"; } ,set_id: function(value) { return value; } ,isComponentOffscreen: null ,get_isComponentOffscreen: function() { return false; } ,focus: function() { haxe_ui_backend_flixel_textinputs_FlxTextInput.prototype.focus.call(this); } ,blur: function() { haxe_ui_backend_flixel_textinputs_FlxTextInput.prototype.blur.call(this); } ,get_textStyle: function() { return this._textStyle; } ,set_textStyle: function(value) { var _gthis = this; if(value == null) { return value; } if(value.fontName != null && this._textStyle == null || this._textStyle != null && value.fontName != this._textStyle.fontName) { haxe_ui_ToolkitAssets.get_instance().getFont(value.fontName,function(fontInfo) { _gthis._fontInfo = fontInfo; _gthis.invalidateComponent("style"); }); } else { this.invalidateComponent("style"); } this._textStyle = value; return value; } ,data: null ,get_data: function() { return this._inputData; } ,get_text: function() { return this._text; } ,set_text: function(value) { if(value == this._text) { return value; } this._text = value; this.invalidateComponent("data"); return value; } ,get_htmlText: function() { return this._htmlText; } ,set_htmlText: function(value) { if(value == this._htmlText) { return value; } this._htmlText = value; this._text = null; this.invalidateComponent("data"); return value; } ,get_password: function() { return this._inputData.password; } ,set_password: function(value) { if(value == this._inputData.password) { return value; } this._inputData.password = value; this.invalidateComponent("style"); return value; } ,get_left: function() { return this._left; } ,set_left: function(value) { if(value == this._left) { return value; } this._left = value; this.invalidateComponent("position"); return value; } ,get_top: function() { return this._top; } ,set_top: function(value) { if(value == this._top) { return value; } this._top = value; this.invalidateComponent("position"); return value; } ,set_width: function(value) { if(this._width == value) { return value; } this._width = value; this.invalidateComponent("display"); return value; } ,get_width: function() { return this._width; } ,set_height: function(value) { if(this._height == value) { return value; } this._height = value; this.invalidateComponent("display"); return value; } ,get_height: function() { return this._height; } ,textWidth: null ,get_textWidth: function() { if(this._text == null || this._text.length == 0) { return 0; } if(this.isComponentInvalid() == true) { this.validateComponent(); } return this._textWidth; } ,textHeight: null ,get_textHeight: function() { var tmp = this._text == null || this._text.length == 0; if(this.isComponentInvalid() == true) { this.validateComponent(); } return this._textHeight; } ,get_multiline: function() { return this._displayData.multiline; } ,set_multiline: function(value) { if(value == this._displayData.multiline) { return value; } this._displayData.multiline = value; this.invalidateComponent("style"); return value; } ,get_wordWrap: function() { return this._displayData.wordWrap; } ,set_wordWrap: function(value) { if(value == this._displayData.wordWrap) { return value; } this._displayData.wordWrap = value; this.invalidateComponent("style"); return value; } ,get_hscrollPos: function() { return this._inputData.hscrollPos; } ,set_hscrollPos: function(value) { if(value == this._inputData.hscrollPos) { return value; } this._inputData.hscrollPos = value; this.invalidateComponent("data"); return value; } ,hscrollMax: null ,get_hscrollMax: function() { return this._inputData.hscrollMax; } ,hscrollPageSize: null ,get_hscrollPageSize: function() { return this._inputData.hscrollPageSize; } ,get_vscrollPos: function() { return this._inputData.vscrollPos; } ,set_vscrollPos: function(value) { if(value == this._inputData.vscrollPos) { return value; } this._inputData.vscrollPos = value; this.invalidateComponent("data"); return value; } ,vscrollMax: null ,get_vscrollMax: function() { return this._inputData.vscrollMax; } ,vscrollPageSize: null ,get_vscrollPageSize: function() { return this._inputData.vscrollPageSize; } ,isComponentInvalid: function(flag) { if(flag == null) { flag = "all"; } if(this._isAllInvalid == true) { return true; } if(flag == "all") { var h = this._invalidationFlags.h; var value_h = h; var value_keys = Object.keys(h); var value_length = value_keys.length; var value_current = 0; while(value_current < value_length) { var value = value_h[value_keys[value_current++]]; return true; } return false; } return Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag); } ,invalidateComponent: function(flag) { if(flag == null) { flag = "all"; } if(flag == "all") { this._isAllInvalid = true; this.parentComponent.invalidateComponent("textInput"); } else if(!Object.prototype.hasOwnProperty.call(this._invalidationFlags.h,flag)) { this._invalidationFlags.h[flag] = true; this.parentComponent.invalidateComponent("textInput"); } } ,_depth: null ,get_depth: function() { return this._depth; } ,set_depth: function(value) { if(this._depth == value) { return value; } this._depth = value; return value; } ,updateComponentDisplay: function() { } ,validateComponent: function(nextFrame) { if(nextFrame == null) { nextFrame = true; } if(this._isValidating == true || this.isComponentInvalid() == false) { return; } this._isValidating = true; this.validateComponentInternal(); var h = this._invalidationFlags.h; var flag_h = h; var flag_keys = Object.keys(h); var flag_length = flag_keys.length; var flag_current = 0; while(flag_current < flag_length) { var flag = flag_keys[flag_current++]; var _this = this._invalidationFlags; if(Object.prototype.hasOwnProperty.call(_this.h,flag)) { delete(_this.h[flag]); } } this._isAllInvalid = false; this._isValidating = false; } ,validateComponentInternal: function() { var dataInvalid = this.isComponentInvalid("data"); var styleInvalid = this.isComponentInvalid("style"); var positionInvalid = this.isComponentInvalid("position"); var displayInvalid = this.isComponentInvalid("display"); var measureInvalid = this.isComponentInvalid("measure"); if(dataInvalid) { this.validateData(); } if(styleInvalid) { if(this.validateStyle()) { measureInvalid = true; } } if(positionInvalid) { this.validatePosition(); } if(displayInvalid) { this.validateDisplay(); } if(dataInvalid || displayInvalid || measureInvalid) { this.measureText(); } if(dataInvalid) { if(this._inputData.onChangedCallback != null) { this._inputData.onChangedCallback(); } } } ,__class__: haxe_ui_core_TextInput ,__properties__: $extend(haxe_ui_backend_flixel_textinputs_FlxTextInput.prototype.__properties__,{set_depth:"set_depth",get_depth:"get_depth",get_vscrollPageSize:"get_vscrollPageSize",get_vscrollMax:"get_vscrollMax",set_vscrollPos:"set_vscrollPos",get_vscrollPos:"get_vscrollPos",get_hscrollPageSize:"get_hscrollPageSize",get_hscrollMax:"get_hscrollMax",set_hscrollPos:"set_hscrollPos",get_hscrollPos:"get_hscrollPos",set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_multiline:"set_multiline",get_multiline:"get_multiline",get_textHeight:"get_textHeight",get_textWidth:"get_textWidth",set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width",set_top:"set_top",get_top:"get_top",set_left:"set_left",get_left:"get_left",set_password:"set_password",get_password:"get_password",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText",set_text:"set_text",get_text:"get_text",get_data:"get_data",set_textStyle:"set_textStyle",get_textStyle:"get_textStyle",get_isComponentOffscreen:"get_isComponentOffscreen",set_id:"set_id",get_id:"get_id"}) }); var haxe_ui_core_TypeMap = function() { }; $hxClasses["haxe.ui.core.TypeMap"] = haxe_ui_core_TypeMap; haxe_ui_core_TypeMap.__name__ = "haxe.ui.core.TypeMap"; haxe_ui_core_TypeMap.getTypeInfo = function(className,property) { var propInfo = haxe_ui_util_RTTI.getClassProperty(className,property); if(propInfo == null) { return null; } return propInfo.propertyType; }; var haxe_ui_data_DataSource = function(transformer) { this._currentSortDirection = null; this._currentSortFn = null; this._filterFn = null; this.onChange = null; this.onClear = null; this.onRemove = null; this.onUpdate = null; this.onInsert = null; this.onAdd = null; this.transformer = transformer; this._allowCallbacks = true; this._changed = false; }; $hxClasses["haxe.ui.data.DataSource"] = haxe_ui_data_DataSource; haxe_ui_data_DataSource.__name__ = "haxe.ui.data.DataSource"; haxe_ui_data_DataSource.fromString = function(data,type) { return null; }; haxe_ui_data_DataSource.prototype = { onDataSourceChange: null ,transformer: null ,_changed: null ,onAdd: null ,onInsert: null ,onUpdate: null ,onRemove: null ,onClear: null ,onChange: null ,_allowCallbacks: null ,get_allowCallbacks: function() { return this._allowCallbacks; } ,set_allowCallbacks: function(value) { this._allowCallbacks = value; if(this._allowCallbacks == true && this._changed == true) { this._changed = false; this.onInternalChange(); } return value; } ,get_data: function() { return this.handleGetData(); } ,set_data: function(value) { this.handleSetData(value); this.handleChanged(); return value; } ,size: null ,get_size: function() { return this.handleGetSize(); } ,get: function(index) { var r = this.handleGetItem(index); if(js_Boot.__implements(r,haxe_ui_data_IDataItem)) { (js_Boot.__cast(r , haxe_ui_data_IDataItem)).onDataSourceChanged = $bind(this,this.onDataItemChange); } if(this.transformer != null) { r = this.transformer.transformFrom(r); } return r; } ,indexOf: function(item) { if(this.transformer != null) { item = this.transformer.transformFrom(item); } return this.handleIndexOf(item); } ,add: function(item) { var index = this.handleAddItem(item); this.handleChanged(); if(this._allowCallbacks == true && this.onAdd != null) { this.onAdd(item); } return index; } ,insert: function(index,item) { var r = this.handleInsert(index,item); this.handleChanged(); if(this._allowCallbacks == true && this.onInsert != null) { this.onInsert(index,r); } return r; } ,remove: function(item) { var r = this.handleRemoveItem(item); this.handleChanged(); if(this._allowCallbacks == true && this.onRemove != null) { this.onRemove(r); } return r; } ,removeAt: function(index) { var item = this.get(index); return this.remove(item); } ,removeAll: function() { var originalAllowCallbacks = this._allowCallbacks; this._allowCallbacks = false; while(this.get_size() > 0) this.removeAt(0); this._allowCallbacks = originalAllowCallbacks; this.handleChanged(); } ,update: function(index,item) { var r = this.handleUpdateItem(index,item); this.handleChanged(); if(this._allowCallbacks == true && this.onUpdate != null) { this.onUpdate(index,r); } return r; } ,clear: function() { var o = this._allowCallbacks; this._allowCallbacks = false; this.handleClear(); this._allowCallbacks = o; this.handleChanged(); if(this._allowCallbacks == true && this.onClear != null) { this.onClear(); } } ,_filterFn: null ,clearFilter: function() { this._filterFn = null; this.handleClearFilter(); } ,filter: function(fn) { this._filterFn = fn; this.handleFilter(fn); } ,isFiltered: null ,get_isFiltered: function() { return this._filterFn != null; } ,handleClearFilter: function() { } ,handleFilter: function(fn) { } ,handleChanged: function() { this._changed = true; if(this._currentSortFn != null) { this.handleSort(this._currentSortFn,this._currentSortDirection); } if(this._allowCallbacks == true) { this._changed = false; this.onInternalChange(); } } ,handleSort: function(fn,direction) { } ,_currentSortFn: null ,_currentSortDirection: null ,sortCustom: function(fn,direction) { this._currentSortFn = fn; this._currentSortDirection = direction; this.handleSort(fn,direction); this.handleChanged(); } ,sort: function(field,direction) { var _g = this; var field1 = field; this.sortCustom(function(o1,o2,direction) { return _g.sortByFn(o1,o2,direction,field1); },direction); } ,sortByFn: function(o1,o2,direction,field) { var f1 = o1; var f2 = o2; if(field != null) { f1 = Reflect.field(o1,field); f2 = Reflect.field(o2,field); } if(f1 == null || f2 == null) { return 0; } f1 = Std.string(f1); f2 = Std.string(f2); if(direction == null) { direction = "asc"; } var high = 1; var low = -1; if(direction == "desc") { high = -1; low = 1; } var alpha1 = f1.replace(haxe_ui_data_DataSource.regexAlpha.r,""); var alpha2 = f2.replace(haxe_ui_data_DataSource.regexAlpha.r,""); if(alpha1 == alpha2) { var numeric1 = Std.parseInt(f1.replace(haxe_ui_data_DataSource.regexNumeric.r,"")); var numeric2 = Std.parseInt(f2.replace(haxe_ui_data_DataSource.regexNumeric.r,"")); if(numeric1 == numeric2) { return 0; } else if(numeric1 > numeric2) { return high; } else { return low; } } if(alpha1 > alpha2) { return high; } else { return low; } } ,handleGetSize: function() { return 0; } ,handleGetItem: function(index) { return null; } ,handleIndexOf: function(item) { return 0; } ,handleAddItem: function(item) { return -1; } ,handleInsert: function(index,item) { return null; } ,handleRemoveItem: function(item) { return null; } ,handleGetData: function() { return null; } ,handleSetData: function(v) { } ,handleClear: function() { var cachedTransformer = this.transformer; this.transformer = null; while(this.get_size() > 0) this.remove(this.get(0)); this.transformer = cachedTransformer; } ,handleUpdateItem: function(index,item) { return null; } ,clone: function() { var c = new haxe_ui_data_DataSource(); return c; } ,onDataItemChange: function() { if(this._filterFn != null) { this.handleFilter(this._filterFn); } else { this.onInternalChange(); } } ,onInternalChange: function() { if(this.onDataSourceChange != null) { this.onDataSourceChange(); } if(this.onChange != null) { this.onChange(); } } ,__class__: haxe_ui_data_DataSource ,__properties__: {get_isFiltered:"get_isFiltered",get_size:"get_size",set_data:"set_data",get_data:"get_data",set_allowCallbacks:"set_allowCallbacks",get_allowCallbacks:"get_allowCallbacks"} }; var haxe_ui_data_ArrayDataSource = function(transformer) { this._filteredArray = null; haxe_ui_data_DataSource.call(this,transformer); this._array = []; }; $hxClasses["haxe.ui.data.ArrayDataSource"] = haxe_ui_data_ArrayDataSource; haxe_ui_data_ArrayDataSource.__name__ = "haxe.ui.data.ArrayDataSource"; haxe_ui_data_ArrayDataSource.fromArray = function(source,transformer) { var ds = new haxe_ui_data_ArrayDataSource(transformer); ds._array = source; return ds; }; haxe_ui_data_ArrayDataSource.__super__ = haxe_ui_data_DataSource; haxe_ui_data_ArrayDataSource.prototype = $extend(haxe_ui_data_DataSource.prototype,{ _array: null ,_filteredArray: null ,handleClearFilter: function() { if(this._filteredArray == null) { return; } this._filteredArray = null; this.handleChanged(); } ,handleFilter: function(fn) { this._filteredArray = []; var index = 0; var _g = 0; var _g1 = this._array; while(_g < _g1.length) { var item = _g1[_g]; ++_g; if(fn(index,item) == true) { this._filteredArray.push(item); } ++index; } this.handleChanged(); } ,handleSort: function(fn,direction) { var _g = fn; var a3 = direction; var tmp = function(a1,a2) { return _g(a1,a2,a3); }; this._array.sort(tmp); if(this._filteredArray != null) { var _g1 = fn; var a31 = direction; var tmp = function(a1,a2) { return _g1(a1,a2,a31); }; this._filteredArray.sort(tmp); } } ,handleGetSize: function() { if(this._filteredArray != null) { return this._filteredArray.length; } return this._array.length; } ,handleGetItem: function(index) { if(this._filteredArray != null) { return this._filteredArray[index]; } return this._array[index]; } ,handleIndexOf: function(item) { if(this._filteredArray != null) { return this._filteredArray.indexOf(item); } return this._array.indexOf(item); } ,handleAddItem: function(item) { var index = this._array.push(item) - 1; if(this._filteredArray != null && this._filterFn != null) { if(this._filterFn(this._array.length - 1,item) == true) { this._filteredArray.push(item); } } return index; } ,handleInsert: function(index,item) { this._array.splice(index,0,item); if(this._filteredArray != null && this._filterFn != null) { if(this._filterFn(index,item) == true) { this._filteredArray.push(item); } } return item; } ,handleRemoveItem: function(item) { HxOverrides.remove(this._array,item); if(this._filteredArray != null) { HxOverrides.remove(this._filteredArray,item); } return item; } ,handleClear: function() { while(this._array.length > 0) this._array.pop(); if(this._filteredArray != null) { while(this._filteredArray.length > 0) this._filteredArray.pop(); } } ,handleGetData: function() { if(this._filteredArray != null) { return this._filteredArray; } return this._array; } ,handleSetData: function(v) { this._array = v; if(this._filterFn != null) { this.filter(this._filterFn); } } ,handleUpdateItem: function(index,item) { if(this._filteredArray != null) { return this._filteredArray[index] = item; } return this._array[index] = item; } ,clone: function() { var c = new haxe_ui_data_ArrayDataSource(this.transformer); c._array = this._array.slice(); if(this._filteredArray != null) { c._filteredArray = this._filteredArray.slice(); } if(this._filterFn != null) { c._filterFn = this._filterFn; } return c; } ,__class__: haxe_ui_data_ArrayDataSource }); var haxe_ui_data_DataSourceFactory = function() { }; $hxClasses["haxe.ui.data.DataSourceFactory"] = haxe_ui_data_DataSourceFactory; haxe_ui_data_DataSourceFactory.__name__ = "haxe.ui.data.DataSourceFactory"; haxe_ui_data_DataSourceFactory.prototype = { create: function(type) { var ds = Type.createInstance(type,[]); return ds; } ,fromString: function(data,type) { var ds = this.create(type); if(StringTools.startsWith(data,"<")) { var xml = Xml.parse(data).firstElement(); var el = xml.elements(); while(el.hasNext()) { var el1 = el.next(); var o = this.xml2Object(el1); ds.add(o); } } else if(StringTools.startsWith(data,"[")) { var json = JSON.parse(StringTools.replace(data,"'","\"")); var _g = 0; while(_g < json.length) { var o = json[_g]; ++_g; ds.add(o); } } return ds; } ,fromStringToArray: function(data) { var array = []; if(StringTools.startsWith(data,"<")) { var xml = Xml.parse(data).firstElement(); var el = xml.elements(); while(el.hasNext()) { var el1 = el.next(); var o = this.xml2Object(el1); array.push(o); } } else if(StringTools.startsWith(data,"[")) { var json = JSON.parse(StringTools.replace(data,"'","\"")); var _g = 0; while(_g < json.length) { var o = json[_g]; ++_g; array.push(o); } } return array; } ,xml2Object: function(el,addId) { if(addId == null) { addId = true; } var o = { }; if(addId == true) { if(el.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el.nodeType == null ? "null" : XmlType.toString(el.nodeType))); } o["id"] = el.nodeName; } var attr = el.attributes(); while(attr.hasNext()) { var attr1 = attr.next(); o[attr1] = el.get(attr1); } var childEl = el.elements(); while(childEl.hasNext()) { var childEl1 = childEl.next(); var childObject = this.xml2Object(childEl1,false); if(childEl1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (childEl1.nodeType == null ? "null" : XmlType.toString(childEl1.nodeType))); } o[childEl1.nodeName] = childObject; } return o; } ,__class__: haxe_ui_data_DataSourceFactory }; var haxe_ui_data_IDataItem = function() { }; $hxClasses["haxe.ui.data.IDataItem"] = haxe_ui_data_IDataItem; haxe_ui_data_IDataItem.__name__ = "haxe.ui.data.IDataItem"; haxe_ui_data_IDataItem.__isInterface__ = true; haxe_ui_data_IDataItem.prototype = { onDataSourceChanged: null ,__class__: haxe_ui_data_IDataItem }; var haxe_ui_data_transformation_IItemTransformer = function() { }; $hxClasses["haxe.ui.data.transformation.IItemTransformer"] = haxe_ui_data_transformation_IItemTransformer; haxe_ui_data_transformation_IItemTransformer.__name__ = "haxe.ui.data.transformation.IItemTransformer"; haxe_ui_data_transformation_IItemTransformer.__isInterface__ = true; haxe_ui_data_transformation_IItemTransformer.prototype = { transformFrom: null ,__class__: haxe_ui_data_transformation_IItemTransformer }; var haxe_ui_data_transformation_NativeTypeTransformer = function() { }; $hxClasses["haxe.ui.data.transformation.NativeTypeTransformer"] = haxe_ui_data_transformation_NativeTypeTransformer; haxe_ui_data_transformation_NativeTypeTransformer.__name__ = "haxe.ui.data.transformation.NativeTypeTransformer"; haxe_ui_data_transformation_NativeTypeTransformer.__interfaces__ = [haxe_ui_data_transformation_IItemTransformer]; haxe_ui_data_transformation_NativeTypeTransformer.prototype = { transformFrom: function(i) { var o = null; if(typeof(i) == "string") { o = { text : i, value : i}; } else if(typeof(i) == "number" && ((i | 0) === i) || typeof(i) == "number" || typeof(i) == "boolean") { o = { value : i}; } else { o = i; } return o; } ,__class__: haxe_ui_data_transformation_NativeTypeTransformer }; var haxe_ui_dragdrop_DragManager = function() { this._dragComponents = new haxe_ds_ObjectMap(); this._mouseTargetToDragTarget = new haxe_ds_ObjectMap(); }; $hxClasses["haxe.ui.dragdrop.DragManager"] = haxe_ui_dragdrop_DragManager; haxe_ui_dragdrop_DragManager.__name__ = "haxe.ui.dragdrop.DragManager"; haxe_ui_dragdrop_DragManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_dragdrop_DragManager._instance = null; haxe_ui_dragdrop_DragManager.instance = null; haxe_ui_dragdrop_DragManager.get_instance = function() { if(haxe_ui_dragdrop_DragManager._instance == null) { haxe_ui_dragdrop_DragManager._instance = new haxe_ui_dragdrop_DragManager(); } return haxe_ui_dragdrop_DragManager._instance; }; haxe_ui_dragdrop_DragManager.prototype = { get_isDragging: function() { return this._currentComponent != null; } ,_dragComponents: null ,_mouseTargetToDragTarget: null ,_currentComponent: null ,_currentOptions: null ,_mouseOffset: null ,getDragOptions: function(component) { var dragOptions = this._dragComponents.h[component.__id__]; return dragOptions; } ,registerDraggable: function(component,dragOptions) { if(this.isRegisteredDraggable(component)) { return null; } if(dragOptions == null) { dragOptions = { }; } if(dragOptions.mouseTarget == null) { dragOptions.mouseTarget = component; } if(dragOptions.dragOffsetX == null) { dragOptions.dragOffsetX = 0; } if(dragOptions.dragOffsetY == null) { dragOptions.dragOffsetY = 0; } if(dragOptions.dragTolerance == null) { dragOptions.dragTolerance = haxe_ui_Toolkit.get_scale() | 0; } if(dragOptions.draggableStyleName == null) { dragOptions.draggableStyleName = "draggable"; } if(dragOptions.draggingStyleName == null) { dragOptions.draggingStyleName = "dragging"; } this._dragComponents.set(component,dragOptions); this._mouseTargetToDragTarget.set(dragOptions.mouseTarget,component); if(!dragOptions.mouseTarget.hasEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown))) { dragOptions.mouseTarget.registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); } if(dragOptions.draggableStyleName != null) { dragOptions.mouseTarget.addClass(dragOptions.draggableStyleName); } return dragOptions; } ,unregisterDraggable: function(component) { if(!this.isRegisteredDraggable(component)) { return; } var dragOptions = this.getDragOptions(component); if(dragOptions != null && dragOptions.mouseTarget != null) { dragOptions.mouseTarget.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onMouseDown)); this._mouseTargetToDragTarget.remove(dragOptions.mouseTarget); if(dragOptions.draggableStyleName != null) { dragOptions.mouseTarget.removeClass(dragOptions.draggableStyleName); } } haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenCheckForDrag)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenDrag)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); this._dragComponents.remove(component); } ,isRegisteredDraggable: function(component) { return this._dragComponents.h.__keys__[component.__id__] != null; } ,onMouseDown: function(e) { this._currentComponent = this._mouseTargetToDragTarget.h[e.target.__id__]; if(this._currentComponent.get_parentComponent() == null) { e.screenX *= haxe_ui_Toolkit.get_scaleX(); e.screenY *= haxe_ui_Toolkit.get_scaleY(); } this._currentOptions = this.getDragOptions(this._currentComponent); this._mouseOffset = new haxe_ui_geom_Point(e.screenX - this._currentComponent.get_left(),e.screenY - this._currentComponent.get_top()); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenCheckForDrag)); } ,onScreenCheckForDrag: function(e) { if(this._currentComponent.get_parentComponent() == null) { e.screenX *= haxe_ui_Toolkit.get_scaleX(); e.screenY *= haxe_ui_Toolkit.get_scaleY(); } var x1 = e.screenX - this._currentComponent.get_left(); var y1 = e.screenY - this._currentComponent.get_top(); var x2 = this._mouseOffset.x; var y2 = this._mouseOffset.y; if(Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) > this._currentOptions.dragTolerance) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenCheckForDrag)); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenDrag)); this._mouseOffset.x -= this._currentOptions.dragOffsetX; this._mouseOffset.y -= this._currentOptions.dragOffsetY; if(this._currentOptions.draggingStyleName != null) { this._currentComponent.addClass(this._currentOptions.draggingStyleName); } this._currentComponent.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_START)); } } ,onScreenDrag: function(e) { if(this._currentComponent.get_parentComponent() == null) { e.screenX *= haxe_ui_Toolkit.get_scaleX(); e.screenY *= haxe_ui_Toolkit.get_scaleY(); } var event = new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG); if(this._currentOptions.dragBounds != null) { var v = e.screenX; var min = this._currentOptions.dragBounds.left + this._mouseOffset.x; var max = this._currentOptions.dragBounds.get_right() - this._currentComponent.get_width() + this._mouseOffset.x; var boundX; if(v == null || isNaN(v)) { boundX = min; } else { if(min != null && v < min) { v = min; } else if(max != null && v > max) { v = max; } boundX = v; } var v = e.screenY; var min = this._currentOptions.dragBounds.top + this._mouseOffset.y; var max = this._currentOptions.dragBounds.get_bottom() - this._currentComponent.get_height() + this._mouseOffset.y; var boundY; if(v == null || isNaN(v)) { boundY = min; } else { if(min != null && v < min) { v = min; } else if(max != null && v > max) { v = max; } boundY = v; } event.left = boundX - this._mouseOffset.x; event.top = boundY - this._mouseOffset.y; } else { var xpos = e.screenX; var ypos = e.screenY; event.left = xpos - this._mouseOffset.x; event.top = ypos - this._mouseOffset.y; } this._currentComponent.dispatch(event); if(event.canceled == true) { return; } this._currentComponent.moveComponent(event.left,event.top); } ,onScreenMouseUp: function(e) { if(this._currentOptions.draggingStyleName != null) { this._currentComponent.removeClass(this._currentOptions.draggingStyleName); } this._currentComponent.dispatch(new haxe_ui_events_DragEvent(haxe_ui_events_DragEvent.DRAG_END)); this._currentComponent = null; this._currentOptions = null; this._mouseOffset.x = 0; this._mouseOffset.y = 0; haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_UP,$bind(this,this.onScreenMouseUp)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenCheckForDrag)); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenDrag)); } ,__class__: haxe_ui_dragdrop_DragManager ,__properties__: {get_isDragging:"get_isDragging"} }; var haxe_ui_events_ActionEvent = function(type,action,bubble,data) { if(bubble == null) { bubble = false; } this.repeater = false; haxe_ui_events_UIEvent.call(this,type,bubble,data); this.action = action; }; $hxClasses["haxe.ui.events.ActionEvent"] = haxe_ui_events_ActionEvent; haxe_ui_events_ActionEvent.__name__ = "haxe.ui.events.ActionEvent"; haxe_ui_events_ActionEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ActionEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ action: null ,repeater: null ,clone: function() { var c = new haxe_ui_events_ActionEvent(this.type,this.action); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; c.relatedEvent = this.relatedEvent; c.action = this.action; c.repeater = this.repeater; this.postClone(c); return c; } ,copyFrom: function(e) { var ae = js_Boot.__cast(e , haxe_ui_events_ActionEvent); this.action = ae.action; this.repeater = ae.repeater; } ,__class__: haxe_ui_events_ActionEvent }); var haxe_ui_events_AnimationEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.events.AnimationEvent"] = haxe_ui_events_AnimationEvent; haxe_ui_events_AnimationEvent.__name__ = "haxe.ui.events.AnimationEvent"; haxe_ui_events_AnimationEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_AnimationEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ currentTime: null ,delta: null ,position: null ,clone: function() { var c = new haxe_ui_events_AnimationEvent(this.type); c.currentTime = this.currentTime; c.delta = this.delta; c.position = this.position; return c; } ,__class__: haxe_ui_events_AnimationEvent }); var haxe_ui_events_DragEvent = function(type,bubble,data) { this.top = 0; this.left = 0; haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.DragEvent"] = haxe_ui_events_DragEvent; haxe_ui_events_DragEvent.__name__ = "haxe.ui.events.DragEvent"; haxe_ui_events_DragEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_DragEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ left: null ,top: null ,clone: function() { var c = new haxe_ui_events_DragEvent(this.type); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; c.left = this.left; c.top = this.top; this.postClone(c); return c; } ,copyFrom: function(c) { var d = js_Boot.__cast(c , haxe_ui_events_DragEvent); this.left = d.left; this.top = d.top; } ,__class__: haxe_ui_events_DragEvent }); var haxe_ui_events_FocusEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.events.FocusEvent"] = haxe_ui_events_FocusEvent; haxe_ui_events_FocusEvent.__name__ = "haxe.ui.events.FocusEvent"; haxe_ui_events_FocusEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_FocusEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ clone: function() { var c = new haxe_ui_events_FocusEvent(this.type); c.type = this.type; c.target = this.target; this.postClone(c); return c; } ,__class__: haxe_ui_events_FocusEvent }); var haxe_ui_events_ItemEvent = function(type,bubble,data) { this.itemIndex = -1; this.sourceEvent = null; this.source = null; haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.ItemEvent"] = haxe_ui_events_ItemEvent; haxe_ui_events_ItemEvent.__name__ = "haxe.ui.events.ItemEvent"; haxe_ui_events_ItemEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ItemEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ source: null ,sourceEvent: null ,itemIndex: null ,clone: function() { var c = new haxe_ui_events_ItemEvent(this.type); c.source = this.source; c.sourceEvent = this.sourceEvent; c.itemIndex = this.itemIndex; c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; this.postClone(c); return c; } ,__class__: haxe_ui_events_ItemEvent }); var haxe_ui_events_ItemRendererEvent = function(type,itemRenderer) { haxe_ui_events_UIEvent.call(this,type,true); this.itemRenderer = itemRenderer; if(this.itemRenderer != null) { this.data = this.itemRenderer.get_data(); } }; $hxClasses["haxe.ui.events.ItemRendererEvent"] = haxe_ui_events_ItemRendererEvent; haxe_ui_events_ItemRendererEvent.__name__ = "haxe.ui.events.ItemRendererEvent"; haxe_ui_events_ItemRendererEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ItemRendererEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ itemRenderer: null ,clone: function() { var c = new haxe_ui_events_ItemRendererEvent(this.type,this.itemRenderer); this.postClone(c); return c; } ,copyFrom: function(e) { var ire = js_Boot.__cast(e , haxe_ui_events_ItemRendererEvent); this.itemRenderer = ire.itemRenderer; if(this.itemRenderer != null) { this.data = this.itemRenderer.get_data(); } } ,__class__: haxe_ui_events_ItemRendererEvent }); var haxe_ui_events_MenuEvent = function(type,bubble,data) { if(bubble == null) { bubble = false; } this.menuItem = null; this.menu = null; haxe_ui_events_UIEvent.call(this,type,true,data); }; $hxClasses["haxe.ui.events.MenuEvent"] = haxe_ui_events_MenuEvent; haxe_ui_events_MenuEvent.__name__ = "haxe.ui.events.MenuEvent"; haxe_ui_events_MenuEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_MenuEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ menu: null ,menuItem: null ,clone: function() { var c = new haxe_ui_events_MenuEvent(this.type); c.menu = this.menu; c.menuItem = this.menuItem; c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; this.postClone(c); return c; } ,__class__: haxe_ui_events_MenuEvent }); var haxe_ui_events_NotificationEvent = function(type,bubble,data) { this.actionData = null; this.notification = null; haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.NotificationEvent"] = haxe_ui_events_NotificationEvent; haxe_ui_events_NotificationEvent.__name__ = "haxe.ui.events.NotificationEvent"; haxe_ui_events_NotificationEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_NotificationEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ notification: null ,actionData: null ,clone: function() { var c = new haxe_ui_events_NotificationEvent(this.type); c.notification = this.notification; c.actionData = this.actionData; c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; this.postClone(c); return c; } ,__class__: haxe_ui_events_NotificationEvent }); var haxe_ui_events_ScrollEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.events.ScrollEvent"] = haxe_ui_events_ScrollEvent; haxe_ui_events_ScrollEvent.__name__ = "haxe.ui.events.ScrollEvent"; haxe_ui_events_ScrollEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ScrollEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ clone: function() { var c = new haxe_ui_events_ScrollEvent(this.type); c.type = this.type; c.target = this.target; this.postClone(c); return c; } ,__class__: haxe_ui_events_ScrollEvent }); var haxe_ui_events_SortEvent = function(type,bubble,data) { haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.SortEvent"] = haxe_ui_events_SortEvent; haxe_ui_events_SortEvent.__name__ = "haxe.ui.events.SortEvent"; haxe_ui_events_SortEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_SortEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ direction: null ,clone: function() { var c = new haxe_ui_events_SortEvent(this.type); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; c.direction = this.direction; this.postClone(c); return c; } ,__class__: haxe_ui_events_SortEvent }); var haxe_ui_events_ThemeEvent = function(type,bubble,data) { haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.ThemeEvent"] = haxe_ui_events_ThemeEvent; haxe_ui_events_ThemeEvent.__name__ = "haxe.ui.events.ThemeEvent"; haxe_ui_events_ThemeEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ThemeEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ __class__: haxe_ui_events_ThemeEvent }); var haxe_ui_events_TreeViewEvent = function(type,bubble,data) { this.node = null; haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.TreeViewEvent"] = haxe_ui_events_TreeViewEvent; haxe_ui_events_TreeViewEvent.__name__ = "haxe.ui.events.TreeViewEvent"; haxe_ui_events_TreeViewEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_TreeViewEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ node: null ,clone: function() { var c = new haxe_ui_events_TreeViewEvent(this.type); c.node = this.node; c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; this.postClone(c); return c; } ,__class__: haxe_ui_events_TreeViewEvent }); var haxe_ui_events_ValidationEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.events.ValidationEvent"] = haxe_ui_events_ValidationEvent; haxe_ui_events_ValidationEvent.__name__ = "haxe.ui.events.ValidationEvent"; haxe_ui_events_ValidationEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ValidationEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ clone: function() { var c = new haxe_ui_events_ValidationEvent(this.type); c.type = this.type; c.target = this.target; this.postClone(c); return c; } ,__class__: haxe_ui_events_ValidationEvent }); var haxe_ui_events_ValidatorEvent = function(type,bubble,data) { haxe_ui_events_UIEvent.call(this,type,bubble,data); }; $hxClasses["haxe.ui.events.ValidatorEvent"] = haxe_ui_events_ValidatorEvent; haxe_ui_events_ValidatorEvent.__name__ = "haxe.ui.events.ValidatorEvent"; haxe_ui_events_ValidatorEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_events_ValidatorEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ validator: null ,valid: null ,clone: function() { var c = new haxe_ui_events_ValidatorEvent(this.type); c.type = this.type; c.bubble = this.bubble; c.target = this.target; c.data = this.data; c.canceled = this.canceled; c.validator = this.validator; c.valid = this.valid; this.postClone(c); return c; } ,__class__: haxe_ui_events_ValidatorEvent }); var haxe_ui_filters_Filter = function() { }; $hxClasses["haxe.ui.filters.Filter"] = haxe_ui_filters_Filter; haxe_ui_filters_Filter.__name__ = "haxe.ui.filters.Filter"; haxe_ui_filters_Filter.applyDefaults = function(params,defaults) { var copy = []; if(defaults != null) { var _g = 0; while(_g < defaults.length) { var p = defaults[_g]; ++_g; copy.push(p); } } if(params != null) { var n = 0; var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; copy[n] = p; ++n; } } return copy; }; haxe_ui_filters_Filter.prototype = { parse: function(filterDetails) { var c = js_Boot.getClass(this); haxe_Log.trace("WARNING: css filter '" + c.__name__ + "' has not implemented parse function",{ fileName : "haxe/ui/filters/Filter.hx", lineNumber : 8, className : "haxe.ui.filters.Filter", methodName : "parse"}); } ,__class__: haxe_ui_filters_Filter }; var haxe_ui_filters_Blur = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.Blur"] = haxe_ui_filters_Blur; haxe_ui_filters_Blur.__name__ = "haxe.ui.filters.Blur"; haxe_ui_filters_Blur.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_Blur.prototype = $extend(haxe_ui_filters_Filter.prototype,{ amount: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_Blur.DEFAULTS); this.amount = copy[0]; } ,__class__: haxe_ui_filters_Blur }); var haxe_ui_filters_BoxShadow = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.BoxShadow"] = haxe_ui_filters_BoxShadow; haxe_ui_filters_BoxShadow.__name__ = "haxe.ui.filters.BoxShadow"; haxe_ui_filters_BoxShadow.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_BoxShadow.prototype = $extend(haxe_ui_filters_Filter.prototype,{ offsetX: null ,offsetY: null ,color: null ,alpha: null ,blurRadius: null ,spreadRadius: null ,inset: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_BoxShadow.DEFAULTS); this.offsetX = copy[0]; this.offsetY = copy[1]; this.color = copy[2]; this.alpha = copy[3]; this.blurRadius = copy[4]; this.spreadRadius = copy[5]; this.inset = copy[6]; } ,__class__: haxe_ui_filters_BoxShadow }); var haxe_ui_filters_Contrast = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.Contrast"] = haxe_ui_filters_Contrast; haxe_ui_filters_Contrast.__name__ = "haxe.ui.filters.Contrast"; haxe_ui_filters_Contrast.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_Contrast.prototype = $extend(haxe_ui_filters_Filter.prototype,{ multiplier: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_Contrast.DEFAULTS); this.multiplier = copy[0]; if(this.multiplier < 0) { this.multiplier = 0; } } ,__class__: haxe_ui_filters_Contrast }); var haxe_ui_filters_DropShadow = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.DropShadow"] = haxe_ui_filters_DropShadow; haxe_ui_filters_DropShadow.__name__ = "haxe.ui.filters.DropShadow"; haxe_ui_filters_DropShadow.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_DropShadow.prototype = $extend(haxe_ui_filters_Filter.prototype,{ distance: null ,angle: null ,color: null ,alpha: null ,blurX: null ,blurY: null ,strength: null ,quality: null ,inner: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_DropShadow.DEFAULTS); this.distance = copy[0]; this.angle = copy[1]; this.color = copy[2]; this.alpha = copy[3]; this.blurX = copy[4]; this.blurY = copy[5]; this.strength = copy[6]; this.quality = copy[7]; this.inner = copy[8]; } ,__class__: haxe_ui_filters_DropShadow }); var haxe_ui_filters_FilterParser = function() { }; $hxClasses["haxe.ui.filters.FilterParser"] = haxe_ui_filters_FilterParser; haxe_ui_filters_FilterParser.__name__ = "haxe.ui.filters.FilterParser"; haxe_ui_filters_FilterParser.parseFilter = function(filterDetails) { var filterName = filterDetails.shift(); if(!Object.prototype.hasOwnProperty.call(haxe_ui_styles_CssFilters._cssFilters.h,filterName)) { return null; } var ctor = haxe_ui_styles_CssFilters._cssFilters.h[filterName]; var filter = ctor(); filter.parse(filterDetails); return filter; }; var haxe_ui_filters_Grayscale = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.Grayscale"] = haxe_ui_filters_Grayscale; haxe_ui_filters_Grayscale.__name__ = "haxe.ui.filters.Grayscale"; haxe_ui_filters_Grayscale.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_Grayscale.prototype = $extend(haxe_ui_filters_Filter.prototype,{ amount: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_Grayscale.DEFAULTS); this.amount = copy[0]; } ,__class__: haxe_ui_filters_Grayscale }); var haxe_ui_filters_HueRotate = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.HueRotate"] = haxe_ui_filters_HueRotate; haxe_ui_filters_HueRotate.__name__ = "haxe.ui.filters.HueRotate"; haxe_ui_filters_HueRotate.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_HueRotate.prototype = $extend(haxe_ui_filters_Filter.prototype,{ angleDegree: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_HueRotate.DEFAULTS); this.angleDegree = copy[0]; } ,__class__: haxe_ui_filters_HueRotate }); var haxe_ui_filters_Outline = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.Outline"] = haxe_ui_filters_Outline; haxe_ui_filters_Outline.__name__ = "haxe.ui.filters.Outline"; haxe_ui_filters_Outline.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_Outline.prototype = $extend(haxe_ui_filters_Filter.prototype,{ color: null ,size: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_Outline.DEFAULTS); this.color = copy[0]; this.size = copy[1]; } ,__class__: haxe_ui_filters_Outline }); var haxe_ui_filters_Saturate = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.Saturate"] = haxe_ui_filters_Saturate; haxe_ui_filters_Saturate.__name__ = "haxe.ui.filters.Saturate"; haxe_ui_filters_Saturate.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_Saturate.prototype = $extend(haxe_ui_filters_Filter.prototype,{ multiplier: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_Saturate.DEFAULTS); this.multiplier = copy[0]; if(this.multiplier < 0) { this.multiplier = 0; } } ,__class__: haxe_ui_filters_Saturate }); var haxe_ui_filters_Tint = function() { haxe_ui_filters_Filter.call(this); }; $hxClasses["haxe.ui.filters.Tint"] = haxe_ui_filters_Tint; haxe_ui_filters_Tint.__name__ = "haxe.ui.filters.Tint"; haxe_ui_filters_Tint.__super__ = haxe_ui_filters_Filter; haxe_ui_filters_Tint.prototype = $extend(haxe_ui_filters_Filter.prototype,{ color: null ,amount: null ,parse: function(filterDetails) { var copy = haxe_ui_filters_Filter.applyDefaults(filterDetails,haxe_ui_filters_Tint.DEFAULTS); this.color = copy[0]; this.amount = copy[1]; if(this.amount < 0) { this.amount = 0; } else if(this.amount > 1) { this.amount = 1; } } ,__class__: haxe_ui_filters_Tint }); var haxe_ui_focus_IFocusApplicator = function() { }; $hxClasses["haxe.ui.focus.IFocusApplicator"] = haxe_ui_focus_IFocusApplicator; haxe_ui_focus_IFocusApplicator.__name__ = "haxe.ui.focus.IFocusApplicator"; haxe_ui_focus_IFocusApplicator.__isInterface__ = true; haxe_ui_focus_IFocusApplicator.prototype = { get_enabled: null ,set_enabled: null ,apply: null ,unapply: null ,__class__: haxe_ui_focus_IFocusApplicator ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"} }; var haxe_ui_focus_FocusApplicator = function() { this._enabled = true; }; $hxClasses["haxe.ui.focus.FocusApplicator"] = haxe_ui_focus_FocusApplicator; haxe_ui_focus_FocusApplicator.__name__ = "haxe.ui.focus.FocusApplicator"; haxe_ui_focus_FocusApplicator.__interfaces__ = [haxe_ui_focus_IFocusApplicator]; haxe_ui_focus_FocusApplicator.prototype = { apply: function(target) { } ,unapply: function(target) { } ,_enabled: null ,set_enabled: function(value) { this._enabled = value; return value; } ,get_enabled: function() { return this._enabled; } ,__class__: haxe_ui_focus_FocusApplicator ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"} }; var haxe_ui_focus_FocusManager = function() { this._lastFocuses = new haxe_ds_ObjectMap(); this._applicators = []; this.enabled = true; this.autoFocus = true; haxe_ui_backend_FocusManagerImpl.call(this); this._applicators.push(new haxe_ui_focus_StyleFocusApplicator()); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); }; $hxClasses["haxe.ui.focus.FocusManager"] = haxe_ui_focus_FocusManager; haxe_ui_focus_FocusManager.__name__ = "haxe.ui.focus.FocusManager"; haxe_ui_focus_FocusManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_focus_FocusManager._instance = null; haxe_ui_focus_FocusManager.instance = null; haxe_ui_focus_FocusManager.get_instance = function() { if(haxe_ui_focus_FocusManager._instance == null) { haxe_ui_focus_FocusManager._instance = new haxe_ui_focus_FocusManager(); } return haxe_ui_focus_FocusManager._instance; }; haxe_ui_focus_FocusManager.__super__ = haxe_ui_backend_FocusManagerImpl; haxe_ui_focus_FocusManager.prototype = $extend(haxe_ui_backend_FocusManagerImpl.prototype,{ autoFocus: null ,enabled: null ,_applicators: null ,onScreenMouseDown: function(event) { var list = haxe_ui_core_Screen.get_instance().findComponentsUnderPoint(event.screenX,event.screenY); var _g = 0; while(_g < list.length) { var l = list[_g]; ++_g; if(js_Boot.__implements(l,haxe_ui_focus_IFocusable)) { return; } } this.set_focus(null); } ,pushView: function(view) { if(this.hasFocusableItem(view)) { var k = this._lastFocuses.keys(); while(k.hasNext()) { var k1 = k.next(); this._lastFocuses.h[k1.__id__].set_focus(false); this.unapplyFocus(this._lastFocuses.h[k1.__id__]); } } if(this.autoFocus == true) { this.focusOnFirstInteractive(view); view.registerEvent(haxe_ui_events_UIEvent.READY,$bind(this,this.onViewReady)); } } ,onViewReady: function(e) { e.target.unregisterEvent(haxe_ui_events_UIEvent.READY,$bind(this,this.onViewReady)); if(this.hasFocusableItem(e.target)) { var k = this._lastFocuses.keys(); while(k.hasNext()) { var k1 = k.next(); this._lastFocuses.h[k1.__id__].set_focus(false); this.unapplyFocus(this._lastFocuses.h[k1.__id__]); } this.focusOnFirstInteractive(e.target); } } ,hasFocusableItem: function(view) { var list = []; this.buildFocusableList(view,list); return list.length != 0; } ,focusOnFirstInteractive: function(view) { var list = []; this.buildFocusableList(view,list,true); if(list.length > 0) { list[0].set_focus(true); return list[0]; } return null; } ,removeView: function(view) { this._lastFocuses.remove(view); var top = haxe_ui_core_Screen.get_instance().get_topComponent(); if(top == null) { return; } if(this._lastFocuses.h.__keys__[top.__id__] != null) { this.set_focus(this._lastFocuses.h[top.__id__]); } } ,get_focus: function() { var top = haxe_ui_core_Screen.get_instance().get_topComponent(); if(top == null) { return null; } return this.buildFocusableList(top,null); } ,_lastFocuses: null ,set_focus: function(value) { if(value != null) { var c = js_Boot.__cast(value , haxe_ui_core_Component); var root = c.get_rootComponent(); var currentFocus = this.buildFocusableList(root,null); if(currentFocus != null && currentFocus != value) { this.unapplyFocus(currentFocus); currentFocus.set_focus(false); } if(this._lastFocuses.h.__keys__[root.__id__] != null && this._lastFocuses.h[root.__id__] != value) { this._lastFocuses.h[root.__id__].set_focus(false); this.unapplyFocus(this._lastFocuses.h[root.__id__]); } this._lastFocuses.set(root,value); this.applyFocus(value); } else { var top = haxe_ui_core_Screen.get_instance().get_topComponent(); if(top == null) { return null; } if(this._lastFocuses.h.__keys__[top.__id__] != null) { this._lastFocuses.h[top.__id__].set_focus(false); this.unapplyFocus(this._lastFocuses.h[top.__id__]); } } return value; } ,focusNext: function() { var top = haxe_ui_core_Screen.get_instance().get_topComponent(); var list = []; var currentFocus = this.buildFocusableList(top,list); var index = -1; if(currentFocus != null) { index = list.indexOf(currentFocus); } var nextIndex = index + 1; if(nextIndex > list.length - 1) { nextIndex = 0; } var nextFocus = list[nextIndex]; this.set_focus(nextFocus); return nextFocus; } ,focusPrev: function() { var top = haxe_ui_core_Screen.get_instance().get_topComponent(); var list = []; var currentFocus = this.buildFocusableList(top,list); var index = -1; if(currentFocus != null) { index = list.indexOf(currentFocus); } var prevIndex = index - 1; if(prevIndex < 0) { prevIndex = list.length - 1; } var prevFocus = list[prevIndex]; this.set_focus(prevFocus); return prevFocus; } ,buildFocusableList: function(c,list,considerAutoFocus) { if(considerAutoFocus == null) { considerAutoFocus = false; } if(!this.enabled) { return null; } var currentFocus = null; if(c == null || c._isDisposed == true) { return null; } if(c.get_hidden() == true) { return null; } if(js_Boot.__implements(c,haxe_ui_focus_IFocusable)) { var f = c; if(considerAutoFocus == true && f.get_autoFocus() == false) { return null; } if(f.get_allowFocus() == true && f.get_disabled() == false) { if(f.get_focus() == true) { currentFocus = f; } if(list != null) { list.push(f); } } } var childList = (c._children == null ? [] : c._children).slice(); childList.sort(function(c1,c2) { return c1.componentTabIndex - c2.componentTabIndex; }); var _g = 0; while(_g < childList.length) { var child = childList[_g]; ++_g; var f = this.buildFocusableList(child,list,considerAutoFocus); if(f != null) { currentFocus = f; } } return currentFocus; } ,applyFocus: function(c) { haxe_ui_backend_FocusManagerImpl.prototype.applyFocus.call(this,c); (js_Boot.__cast(c , haxe_ui_focus_IFocusable)).set_focus(true); var _g = 0; var _g1 = this._applicators; while(_g < _g1.length) { var a = _g1[_g]; ++_g; if(a.get_enabled() == true) { a.apply(c); } } } ,unapplyFocus: function(c) { haxe_ui_backend_FocusManagerImpl.prototype.unapplyFocus.call(this,c); (js_Boot.__cast(c , haxe_ui_focus_IFocusable)).set_focus(false); var _g = 0; var _g1 = this._applicators; while(_g < _g1.length) { var a = _g1[_g]; ++_g; if(a.get_enabled() == true) { a.unapply(c); } } } ,__class__: haxe_ui_focus_FocusManager ,__properties__: {set_focus:"set_focus",get_focus:"get_focus"} }); var haxe_ui_focus_StyleFocusApplicator = function() { haxe_ui_focus_FocusApplicator.call(this); }; $hxClasses["haxe.ui.focus.StyleFocusApplicator"] = haxe_ui_focus_StyleFocusApplicator; haxe_ui_focus_StyleFocusApplicator.__name__ = "haxe.ui.focus.StyleFocusApplicator"; haxe_ui_focus_StyleFocusApplicator.__super__ = haxe_ui_focus_FocusApplicator; haxe_ui_focus_StyleFocusApplicator.prototype = $extend(haxe_ui_focus_FocusApplicator.prototype,{ apply: function(target) { target.addClass(":active"); } ,unapply: function(target) { target.removeClass(":active"); } ,__class__: haxe_ui_focus_StyleFocusApplicator }); var haxe_ui_geom_Point = function(x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this.x = x; this.y = y; }; $hxClasses["haxe.ui.geom.Point"] = haxe_ui_geom_Point; haxe_ui_geom_Point.__name__ = "haxe.ui.geom.Point"; haxe_ui_geom_Point.prototype = { x: null ,y: null ,add: function(point) { this.x += point.x; this.y += point.y; } ,subtract: function(point) { this.x -= point.x; this.y -= point.y; } ,addCoords: function(dx,dy) { this.x += dx; this.y += dy; } ,subtractCoords: function(dx,dy) { this.x -= dx; this.y -= dy; } ,sum: function(point) { return new haxe_ui_geom_Point(this.x + point.x,this.y + point.y); } ,diff: function(point) { return new haxe_ui_geom_Point(this.x - point.x,this.y - point.y); } ,orthogonalCW: function() { return new haxe_ui_geom_Point(this.y,-this.x); } ,orthogonalCCW: function() { return new haxe_ui_geom_Point(-this.y,this.x); } ,opposite: function() { return new haxe_ui_geom_Point(-this.x,-this.y); } ,revert: function() { this.x = -this.x; this.y = -this.y; } ,rotate: function(radians) { var cos = Math.cos(radians); var sin = Math.sin(radians); var newX = cos * this.x - sin * this.y; var newY = sin * this.x + cos * this.y; this.x = newX; this.y = newY; } ,rotated: function(radians) { var cos = Math.cos(radians); var sin = Math.sin(radians); var newX = cos * this.x - sin * this.y; var newY = sin * this.x + cos * this.y; return new haxe_ui_geom_Point(newX,newY); } ,length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); } ,multiply: function(factor) { this.x *= factor; this.y *= factor; } ,product: function(factor) { return new haxe_ui_geom_Point(this.x * factor,this.y * factor); } ,normalize: function(targetLength) { if(this.x == 0 && this.y == 0) { return; } var norm = targetLength / this.length(); this.multiply(norm); } ,normalized: function(targetLength) { if(this.x == 0 && this.y == 0) { return new haxe_ui_geom_Point(); } var norm = targetLength / this.length(); return this.product(norm); } ,orth: function() { return this.normalized(1); } ,copy: function() { return new haxe_ui_geom_Point(this.x,this.y); } ,__class__: haxe_ui_geom_Point }; var haxe_ui_geom_Rectangle = function(left,top,width,height) { if(height == null) { height = 0; } if(width == null) { width = 0; } if(top == null) { top = 0; } if(left == null) { left = 0; } this._intersectionCache = null; this.left = left; this.top = top; this.width = width; this.height = height; }; $hxClasses["haxe.ui.geom.Rectangle"] = haxe_ui_geom_Rectangle; haxe_ui_geom_Rectangle.__name__ = "haxe.ui.geom.Rectangle"; haxe_ui_geom_Rectangle.prototype = { left: null ,top: null ,width: null ,height: null ,set: function(left,top,width,height) { if(height == null) { height = 0; } if(width == null) { width = 0; } if(top == null) { top = 0; } if(left == null) { left = 0; } this.left = left; this.top = top; this.width = width; this.height = height; } ,get_right: function() { return this.left + this.width; } ,set_right: function(value) { this.width = value - this.left; return value; } ,get_bottom: function() { return this.top + this.height; } ,set_bottom: function(value) { this.height = value - this.top; return value; } ,inflate: function(dx,dy) { this.left -= dx; this.width += dx * 2; this.top -= dy; this.height += dy * 2; } ,equals: function(rc) { if(rc == null) { return false; } if(rc.left == this.left && rc.top == this.top && rc.width == this.width) { return rc.height == this.height; } else { return false; } } ,containsPoint: function(x,y) { if(x >= this.left && x < this.left + this.width && y >= this.top && y < this.top + this.height) { return true; } return false; } ,containsRect: function(rect) { if(rect.width <= 0 || rect.height <= 0) { if(rect.left > this.left && rect.top > this.top && rect.get_right() < this.get_right()) { return rect.get_bottom() < this.get_bottom(); } else { return false; } } else if(rect.left >= this.left && rect.top >= this.top && rect.get_right() <= this.get_right()) { return rect.get_bottom() <= this.get_bottom(); } else { return false; } } ,intersects: function(rect) { var x0 = this.left < rect.left ? rect.left : this.left; var x1 = this.get_right() > rect.get_right() ? rect.get_right() : this.get_right(); if(x1 <= x0) { return false; } var y0 = this.top < rect.top ? rect.top : this.top; var y1 = this.get_bottom() > rect.get_bottom() ? rect.get_bottom() : this.get_bottom(); return y1 > y0; } ,_intersectionCache: null ,intersection: function(rect,noAlloc) { if(noAlloc == null) { noAlloc = true; } if(noAlloc == true && this._intersectionCache == null) { this._intersectionCache = new haxe_ui_geom_Rectangle(); } var x0 = this.left < rect.left ? rect.left : this.left; var x1 = this.get_right() > rect.get_right() ? rect.get_right() : this.get_right(); if(x1 <= x0) { if(noAlloc == true) { this._intersectionCache.set(); return this._intersectionCache; } else { return new haxe_ui_geom_Rectangle(); } } var y0 = this.top < rect.top ? rect.top : this.top; var y1 = this.get_bottom() > rect.get_bottom() ? rect.get_bottom() : this.get_bottom(); if(y1 <= y0) { if(noAlloc == true) { this._intersectionCache.set(); return this._intersectionCache; } else { return new haxe_ui_geom_Rectangle(); } } var r = null; if(noAlloc == true) { r = this._intersectionCache; } else { r = new haxe_ui_geom_Rectangle(); } r.set(x0,y0,x1 - x0,y1 - y0); return r; } ,toInts: function() { this.left = this.left | 0; this.top = this.top | 0; this.width = this.width | 0; this.height = this.height | 0; } ,copy: function() { return new haxe_ui_geom_Rectangle(this.left,this.top,this.width,this.height); } ,toString: function() { return "{left: " + this.left + ", top: " + this.top + ", bottom: " + this.get_bottom() + ", right: " + this.get_right() + ", width: " + this.width + ", height: " + this.height + "}"; } ,__class__: haxe_ui_geom_Rectangle ,__properties__: {set_bottom:"set_bottom",get_bottom:"get_bottom",set_right:"set_right",get_right:"get_right"} }; var haxe_ui_geom_Size = function(width,height) { if(height == null) { height = 0; } if(width == null) { width = 0; } this.width = width; this.height = height; }; $hxClasses["haxe.ui.geom.Size"] = haxe_ui_geom_Size; haxe_ui_geom_Size.__name__ = "haxe.ui.geom.Size"; haxe_ui_geom_Size.prototype = { width: null ,height: null ,round: function() { this.width = Math.round(this.width); this.height = Math.round(this.height); } ,toString: function() { return "[" + this.width + "x" + this.height + "]"; } ,__class__: haxe_ui_geom_Size }; var haxe_ui_geom_Slice9 = function() { }; $hxClasses["haxe.ui.geom.Slice9"] = haxe_ui_geom_Slice9; haxe_ui_geom_Slice9.__name__ = "haxe.ui.geom.Slice9"; haxe_ui_geom_Slice9.buildRects = function(w,h,bitmapWidth,bitmapHeight,slice) { var srcRects = haxe_ui_geom_Slice9.buildSrcRects(bitmapWidth,bitmapHeight,slice); var dstRects = haxe_ui_geom_Slice9.buildDstRects(w,h,srcRects); return { src : srcRects, dst : dstRects}; }; haxe_ui_geom_Slice9.buildSrcRects = function(bitmapWidth,bitmapHeight,slice) { var x1 = slice.left; var y1 = slice.top; var x2 = slice.get_right(); var y2 = slice.get_bottom(); var srcRects = []; srcRects.push(new haxe_ui_geom_Rectangle(0,0,x1,y1)); srcRects.push(new haxe_ui_geom_Rectangle(x1,0,x2 - x1,y1)); srcRects.push(new haxe_ui_geom_Rectangle(x2,0,bitmapWidth - x2,y1)); srcRects.push(new haxe_ui_geom_Rectangle(0,y1,x1,y2 - y1)); srcRects.push(new haxe_ui_geom_Rectangle(x1,y1,x2 - x1,y2 - y1)); srcRects.push(new haxe_ui_geom_Rectangle(x2,y1,bitmapWidth - x2,y2 - y1)); srcRects.push(new haxe_ui_geom_Rectangle(0,y2,x1,bitmapHeight - y2)); srcRects.push(new haxe_ui_geom_Rectangle(x1,y2,x2 - x1,bitmapHeight - y2)); srcRects.push(new haxe_ui_geom_Rectangle(x2,y2,bitmapWidth - x2,bitmapHeight - y2)); return srcRects; }; haxe_ui_geom_Slice9.buildDstRects = function(w,h,srcRects) { var dstRects = []; dstRects.push(new haxe_ui_geom_Rectangle(0,0,srcRects[0].width,srcRects[0].height)); dstRects.push(new haxe_ui_geom_Rectangle(srcRects[0].width,0,w - srcRects[0].width - srcRects[2].width,srcRects[1].height)); dstRects.push(new haxe_ui_geom_Rectangle(w - srcRects[2].width,0,srcRects[2].width,srcRects[2].height)); dstRects.push(new haxe_ui_geom_Rectangle(0,srcRects[0].height,srcRects[3].width,h - srcRects[0].height - srcRects[6].height)); dstRects.push(new haxe_ui_geom_Rectangle(srcRects[3].width,srcRects[0].height,w - srcRects[3].width - srcRects[5].width,h - srcRects[1].height - srcRects[7].height)); dstRects.push(new haxe_ui_geom_Rectangle(w - srcRects[5].width,srcRects[2].height,srcRects[5].width,h - srcRects[2].height - srcRects[8].height)); dstRects.push(new haxe_ui_geom_Rectangle(0,h - srcRects[6].height,srcRects[6].width,srcRects[6].height)); dstRects.push(new haxe_ui_geom_Rectangle(srcRects[6].width,h - srcRects[7].height,w - srcRects[6].width - srcRects[8].width,srcRects[7].height)); dstRects.push(new haxe_ui_geom_Rectangle(w - srcRects[8].width,h - srcRects[8].height,srcRects[8].width,srcRects[8].height)); return dstRects; }; var haxe_ui_graphics_ComponentGraphics = function(component) { haxe_ui_backend_ComponentGraphicsImpl.call(this,component); }; $hxClasses["haxe.ui.graphics.ComponentGraphics"] = haxe_ui_graphics_ComponentGraphics; haxe_ui_graphics_ComponentGraphics.__name__ = "haxe.ui.graphics.ComponentGraphics"; haxe_ui_graphics_ComponentGraphics.__super__ = haxe_ui_backend_ComponentGraphicsImpl; haxe_ui_graphics_ComponentGraphics.prototype = $extend(haxe_ui_backend_ComponentGraphicsImpl.prototype,{ __class__: haxe_ui_graphics_ComponentGraphics }); var haxe_ui_graphics_DrawCommand = $hxEnums["haxe.ui.graphics.DrawCommand"] = { __ename__:"haxe.ui.graphics.DrawCommand",__constructs__:null ,Clear: {_hx_name:"Clear",_hx_index:0,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr} ,SetPixel: ($_=function(x,y,color) { return {_hx_index:1,x:x,y:y,color:color,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="SetPixel",$_.__params__ = ["x","y","color"],$_) ,SetPixels: ($_=function(pixels) { return {_hx_index:2,pixels:pixels,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="SetPixels",$_.__params__ = ["pixels"],$_) ,MoveTo: ($_=function(x,y) { return {_hx_index:3,x:x,y:y,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="MoveTo",$_.__params__ = ["x","y"],$_) ,LineTo: ($_=function(x,y) { return {_hx_index:4,x:x,y:y,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="LineTo",$_.__params__ = ["x","y"],$_) ,StrokeStyle: ($_=function(color,thickness,alpha) { return {_hx_index:5,color:color,thickness:thickness,alpha:alpha,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="StrokeStyle",$_.__params__ = ["color","thickness","alpha"],$_) ,Circle: ($_=function(x,y,radius) { return {_hx_index:6,x:x,y:y,radius:radius,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="Circle",$_.__params__ = ["x","y","radius"],$_) ,FillStyle: ($_=function(color,alpha) { return {_hx_index:7,color:color,alpha:alpha,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="FillStyle",$_.__params__ = ["color","alpha"],$_) ,CurveTo: ($_=function(controlX,controlY,anchorX,anchorY) { return {_hx_index:8,controlX:controlX,controlY:controlY,anchorX:anchorX,anchorY:anchorY,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="CurveTo",$_.__params__ = ["controlX","controlY","anchorX","anchorY"],$_) ,CubicCurveTo: ($_=function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { return {_hx_index:9,controlX1:controlX1,controlY1:controlY1,controlX2:controlX2,controlY2:controlY2,anchorX:anchorX,anchorY:anchorY,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="CubicCurveTo",$_.__params__ = ["controlX1","controlY1","controlX2","controlY2","anchorX","anchorY"],$_) ,Rectangle: ($_=function(x,y,width,height) { return {_hx_index:10,x:x,y:y,width:width,height:height,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="Rectangle",$_.__params__ = ["x","y","width","height"],$_) ,Image: ($_=function(resource,x,y,width,height) { return {_hx_index:11,resource:resource,x:x,y:y,width:width,height:height,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr}; },$_._hx_name="Image",$_.__params__ = ["resource","x","y","width","height"],$_) ,BeginPath: {_hx_name:"BeginPath",_hx_index:12,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr} ,ClosePath: {_hx_name:"ClosePath",_hx_index:13,__enum__:"haxe.ui.graphics.DrawCommand",toString:$estr} }; haxe_ui_graphics_DrawCommand.__constructs__ = [haxe_ui_graphics_DrawCommand.Clear,haxe_ui_graphics_DrawCommand.SetPixel,haxe_ui_graphics_DrawCommand.SetPixels,haxe_ui_graphics_DrawCommand.MoveTo,haxe_ui_graphics_DrawCommand.LineTo,haxe_ui_graphics_DrawCommand.StrokeStyle,haxe_ui_graphics_DrawCommand.Circle,haxe_ui_graphics_DrawCommand.FillStyle,haxe_ui_graphics_DrawCommand.CurveTo,haxe_ui_graphics_DrawCommand.CubicCurveTo,haxe_ui_graphics_DrawCommand.Rectangle,haxe_ui_graphics_DrawCommand.Image,haxe_ui_graphics_DrawCommand.BeginPath,haxe_ui_graphics_DrawCommand.ClosePath]; haxe_ui_graphics_DrawCommand.__empty_constructs__ = [haxe_ui_graphics_DrawCommand.Clear,haxe_ui_graphics_DrawCommand.BeginPath,haxe_ui_graphics_DrawCommand.ClosePath]; var haxe_ui_layouts_AbsoluteLayout = function() { haxe_ui_layouts_DefaultLayout.call(this); }; $hxClasses["haxe.ui.layouts.AbsoluteLayout"] = haxe_ui_layouts_AbsoluteLayout; haxe_ui_layouts_AbsoluteLayout.__name__ = "haxe.ui.layouts.AbsoluteLayout"; haxe_ui_layouts_AbsoluteLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_layouts_AbsoluteLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ repositionChildren: function() { } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_AbsoluteLayout(); } ,__class__: haxe_ui_layouts_AbsoluteLayout }); var haxe_ui_layouts_DelegateLayout = function(size) { haxe_ui_layouts_DefaultLayout.call(this); this._size = size; }; $hxClasses["haxe.ui.layouts.DelegateLayout"] = haxe_ui_layouts_DelegateLayout; haxe_ui_layouts_DelegateLayout.__name__ = "haxe.ui.layouts.DelegateLayout"; haxe_ui_layouts_DelegateLayout.__super__ = haxe_ui_layouts_DefaultLayout; haxe_ui_layouts_DelegateLayout.prototype = $extend(haxe_ui_layouts_DefaultLayout.prototype,{ _size: null ,calcAutoSize: function(exclusions) { this._size.component = this.get_component(); var cx = this._size.get_width(); var cy = this._size.get_height(); if(this._size.getBool("includePadding",false) == true) { cx += this.get_paddingLeft() + this.get_paddingRight(); cy += this.get_paddingTop() + this.get_paddingBottom(); } var size = new haxe_ui_geom_Size(cx,cy); return size; } ,get_usableSize: function() { var size = haxe_ui_layouts_DefaultLayout.prototype.get_usableSize.call(this); this._size.component = this.get_component(); size.width -= this._size.get_usableWidthModifier(); size.height -= this._size.get_usableHeightModifier(); return size; } ,cloneLayout: function() { var c = haxe_ui_layouts_DefaultLayout.prototype.cloneLayout.call(this); if(this._size != null) { c._size = this._size; } return c; } ,self: function() { return new haxe_ui_layouts_DelegateLayout(); } ,__class__: haxe_ui_layouts_DelegateLayout }); var haxe_ui_layouts_DelegateLayoutSize = function() { }; $hxClasses["haxe.ui.layouts.DelegateLayoutSize"] = haxe_ui_layouts_DelegateLayoutSize; haxe_ui_layouts_DelegateLayoutSize.__name__ = "haxe.ui.layouts.DelegateLayoutSize"; haxe_ui_layouts_DelegateLayoutSize.prototype = { component: null ,config: null ,width: null ,get_width: function() { return 0; } ,height: null ,get_height: function() { return 0; } ,usableWidthModifier: null ,get_usableWidthModifier: function() { return 0; } ,usableHeightModifier: null ,get_usableHeightModifier: function() { return 0; } ,getString: function(name,defaultValue) { if(this.config == null) { return defaultValue; } if(Object.prototype.hasOwnProperty.call(this.config.h,name) == false) { return defaultValue; } return this.config.h[name]; } ,getInt: function(name,defaultValue) { if(defaultValue == null) { defaultValue = 0; } var v = this.getString(name); if(v == null) { return defaultValue; } return Std.parseInt(v); } ,getBool: function(name,defaultValue) { if(defaultValue == null) { defaultValue = false; } var v = this.getString(name); if(v == null) { return defaultValue; } return v == "true"; } ,__class__: haxe_ui_layouts_DelegateLayoutSize ,__properties__: {get_usableHeightModifier:"get_usableHeightModifier",get_usableWidthModifier:"get_usableWidthModifier",get_height:"get_height",get_width:"get_width"} }; var haxe_ui_layouts_HorizontalContinuousLayout = function() { haxe_ui_layouts_HorizontalLayout.call(this); }; $hxClasses["haxe.ui.layouts.HorizontalContinuousLayout"] = haxe_ui_layouts_HorizontalContinuousLayout; haxe_ui_layouts_HorizontalContinuousLayout.__name__ = "haxe.ui.layouts.HorizontalContinuousLayout"; haxe_ui_layouts_HorizontalContinuousLayout.__super__ = haxe_ui_layouts_HorizontalLayout; haxe_ui_layouts_HorizontalContinuousLayout.prototype = $extend(haxe_ui_layouts_HorizontalLayout.prototype,{ resizeChildren: function() { } ,repositionChildren: function() { if(this.get_component().get_autoWidth() == true) { haxe_ui_layouts_HorizontalLayout.prototype.repositionChildren.call(this); return; } var ucx = this.get_usableWidth(); if(ucx <= 0) { return; } var ucx = this.get_component().get_componentWidth() - (this.get_paddingLeft() + this.get_paddingRight()); var ucy = this.get_component().get_componentHeight() - (this.get_paddingTop() + this.get_paddingBottom()); var dimensions = []; var heights = []; var horizontalSpacing = this.get_horizontalSpacing(); var row = 0; var usedCX = 0; var xpos = this.get_paddingLeft(); var ypos = this.get_paddingTop(); var rowCY = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var rc = new haxe_ui_layouts_ComponentRectangle(child.get_left(),child.get_top(),child.get_componentWidth(),child.get_componentHeight()); if(child.get_percentWidth() != null) { rc.width = ucx * child.get_percentWidth() / 100; } else { usedCX += horizontalSpacing; } if(child.get_percentHeight() != null) { rc.height = ucy * child.get_percentHeight() / 100; } rc.component = child; usedCX += rc.width; if(usedCX - horizontalSpacing > ucx) { heights.push(rowCY); ypos += rowCY + this.get_verticalSpacing(); xpos = this.get_paddingLeft(); usedCX = rc.width + horizontalSpacing; rowCY = 0; ++row; } if(dimensions.length <= row) { dimensions.push([]); } if(dimensions[row] == null) { ypos -= this.get_verticalSpacing(); --row; dimensions[row].pop(); } rc.left = xpos; rc.top = ypos; dimensions[row].push(rc); xpos += rc.width; if(rc.height > rowCY) { rowCY = rc.height; } } if(rowCY > 0) { heights.push(rowCY); } var additionalSpacing = []; var varyingWidths = null; var evenlySpace = false; if(this.get_component().get_style() != null && (this.get_component().get_style().justifyContent == "space-evenly" || this.get_component().get_style().justifyContent == "space-around" || this.get_component().get_style().justifyContent == "space-between")) { evenlySpace = true; } if(evenlySpace) { var x = 0; var lastWidth = null; var _g = 0; while(_g < dimensions.length) { var r = dimensions[_g]; ++_g; var isLastRow = x == dimensions.length - 1; var total = 0; var _g1 = 0; while(_g1 < r.length) { var c = r[_g1]; ++_g1; total += c.width; if(lastWidth == null) { lastWidth = c.width; varyingWidths = false; } else if(lastWidth != c.width) { varyingWidths = true; } } total += horizontalSpacing * (r.length - 1); if(isLastRow) { if(ucx - total <= total) { additionalSpacing.push((ucx - total) / (r.length - 1)); } else if(additionalSpacing[x - 1] != null) { additionalSpacing.push(additionalSpacing[x - 1]); } } else { additionalSpacing.push((ucx - total) / (r.length - 1)); } ++x; } if(x <= 1) { if(varyingWidths == false) { var max = Math.floor((ucx + horizontalSpacing) / (lastWidth + horizontalSpacing)); var total = max * lastWidth + horizontalSpacing * (max - 1); additionalSpacing = [(ucx - total) / (max - 1)]; } else { additionalSpacing = []; } } } var x = 0; var _g = 0; while(_g < dimensions.length) { var r = dimensions[_g]; ++_g; var height = heights[x]; var rowSpacing = horizontalSpacing; if(varyingWidths) { if(additionalSpacing[x] != null) { rowSpacing += additionalSpacing[x]; } } else if(additionalSpacing[0] != null) { rowSpacing += additionalSpacing[0]; } var spaceX = (r.length - 1) / r.length * rowSpacing; var n = 0; var _g1 = 0; while(_g1 < r.length) { var c = r[_g1]; ++_g1; switch(this.verticalAlign(c.component)) { case "bottom": c.top += height - c.height; break; case "center": c.top += height / 2 - c.height / 2; break; default: } if(c.component.get_percentWidth() != null) { c.left += n * (rowSpacing - spaceX); c.width -= spaceX; } else { c.left += n * rowSpacing; } c.apply(); ++n; } ++x; } } ,get_usableSize: function() { if(this.get_component().get_autoWidth() == true) { return haxe_ui_layouts_HorizontalLayout.prototype.get_usableSize.call(this); } var ucx = 0; if(this._component.get_componentWidth() != null) { ucx = this._component.get_componentWidth(); ucx -= this.get_paddingLeft() + this.get_paddingRight(); } var ucy = 0; if(this._component.get_componentHeight() != null) { ucy = this._component.get_componentHeight(); ucy -= this.get_paddingTop() + this.get_paddingBottom(); } return new haxe_ui_geom_Size(ucx,ucy); } ,cloneLayout: function() { var c = haxe_ui_layouts_HorizontalLayout.prototype.cloneLayout.call(this); return c; } ,self: function() { return new haxe_ui_layouts_HorizontalContinuousLayout(); } ,__class__: haxe_ui_layouts_HorizontalContinuousLayout }); var haxe_ui_layouts_ComponentRectangle = function(left,top,width,height) { haxe_ui_geom_Rectangle.call(this,left,top,width,height); }; $hxClasses["haxe.ui.layouts.ComponentRectangle"] = haxe_ui_layouts_ComponentRectangle; haxe_ui_layouts_ComponentRectangle.__name__ = "haxe.ui.layouts.ComponentRectangle"; haxe_ui_layouts_ComponentRectangle.__super__ = haxe_ui_geom_Rectangle; haxe_ui_layouts_ComponentRectangle.prototype = $extend(haxe_ui_geom_Rectangle.prototype,{ component: null ,apply: function() { this.component.moveComponent(this.left,this.top); this.component.resizeComponent(this.width,this.height); } ,__class__: haxe_ui_layouts_ComponentRectangle }); var haxe_ui_layouts_HorizontalGridLayout = function() { this._rows = 1; haxe_ui_layouts_Layout.call(this); }; $hxClasses["haxe.ui.layouts.HorizontalGridLayout"] = haxe_ui_layouts_HorizontalGridLayout; haxe_ui_layouts_HorizontalGridLayout.__name__ = "haxe.ui.layouts.HorizontalGridLayout"; haxe_ui_layouts_HorizontalGridLayout.__super__ = haxe_ui_layouts_Layout; haxe_ui_layouts_HorizontalGridLayout.prototype = $extend(haxe_ui_layouts_Layout.prototype,{ _rows: null ,get_rows: function() { return this._rows; } ,set_rows: function(value) { if(this._rows == value) { return value; } this._rows = value; if(this._component != null) { var _this = this._component; if(!(_this._layout == null || _this._layoutLocked == true)) { _this.invalidateComponent("layout",false); } } return value; } ,applyProperties: function(props) { if(props != null) { if(Object.prototype.hasOwnProperty.call(props.h,"rows") && props.h["rows"] != null) { this.set_rows(props.h["rows"]); } } } ,get_usableSize: function() { var size = haxe_ui_layouts_Layout.prototype.get_usableSize.call(this); var columnWidths = this.calcColumnWidths(size,false); var rowHeights = this.calcRowHeights(size,false); var _g = 0; while(_g < columnWidths.length) { var columnWidth = columnWidths[_g]; ++_g; size.width -= columnWidth; } var _g = 0; while(_g < rowHeights.length) { var rowHeight = rowHeights[_g]; ++_g; size.height -= rowHeight; } var _this = this.get_component(); if((_this._children == null ? [] : _this._children).length > 1) { var _this = this.get_component(); var columns = Math.ceil((_this._children == null ? [] : _this._children).length / this._rows); size.width -= this.get_horizontalSpacing() * (columns - 1); size.height -= this.get_verticalSpacing() * (this.get_rows() - 1); } if(size.width < 0) { size.width = 0; } if(size.height < 0) { size.height = 0; } return size; } ,resizeChildren: function() { var size = this.get_usableSize(); var columnWidths = this.calcColumnWidths(size,true); var rowHeights = this.calcRowHeights(size,true); var explicitWidths = this.calcExplicitWidths(); var explicitHeights = this.calcExplicitHeights(); var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var cx = null; var cy = null; if(child.get_percentWidth() != null) { var ucx = columnWidths[columnIndex]; if(explicitWidths[columnIndex] == false) { cx = ucx; } else { cx = ucx * child.get_percentWidth() / 100; } } if(child.get_percentHeight() != null) { var ucy = rowHeights[rowIndex]; if(explicitHeights[rowIndex] == false) { cy = ucy; } else { cy = ucy * child.get_percentHeight() / 100; } } child.resizeComponent(cx,cy); ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } } ,repositionChildren: function() { var size = this.get_usableSize(); var columnWidths = this.calcColumnWidths(size,true); var rowHeights = this.calcRowHeights(size,true); var rowIndex = 0; var columnIndex = 0; var xpos = this.get_paddingLeft(); var ypos = this.get_paddingTop(); var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } var halign = this.horizontalAlign(child); var valign = this.verticalAlign(child); var xposChild = 0; var yposChild = 0; switch(halign) { case "center": xposChild = xpos + (columnWidths[columnIndex] - child.get_componentWidth()) * 0.5 + this.marginLeft(child) - this.marginRight(child); break; case "right": xposChild = xpos + (columnWidths[columnIndex] - child.get_componentWidth()) + this.marginLeft(child) - this.marginRight(child); break; default: xposChild = xpos + this.marginLeft(child) - this.marginRight(child); } switch(valign) { case "bottom": yposChild = ypos + (rowHeights[rowIndex] - child.get_componentHeight()) + this.marginTop(child) - this.marginBottom(child); break; case "center": yposChild = ypos + (rowHeights[rowIndex] - child.get_componentHeight()) * 0.5 + this.marginTop(child) - this.marginBottom(child); break; default: yposChild = ypos + this.marginTop(child) - this.marginBottom(child); } child.moveComponent(xposChild,yposChild); ypos += rowHeights[rowIndex] + this.get_verticalSpacing(); ++rowIndex; if(rowIndex >= this._rows) { ypos = this.get_paddingTop(); xpos += columnWidths[columnIndex] + this.get_horizontalSpacing(); rowIndex = 0; ++columnIndex; } } } ,calcColumnWidths: function(usableSize,includePercentage) { var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; } } var columnCount = visibleChildren / this._rows | 0; if(visibleChildren % this._rows != 0) { ++columnCount; } var columnWidths = []; var _g = 0; var _g1 = columnCount; while(_g < _g1) { var _ = _g++; columnWidths.push(0); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() == null) { if(child.get_componentWidth() > columnWidths[columnIndex]) { columnWidths[columnIndex] = child.get_componentWidth(); } } ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } if(includePercentage) { rowIndex = 0; columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() != null) { var cx = usableSize.width * child.get_percentWidth() / 100; if(cx > columnWidths[rowIndex] && this._rows == 1) { columnWidths[columnIndex] = cx; } else if(usableSize.width > columnWidths[columnIndex]) { columnWidths[columnIndex] = usableSize.width; } } ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } } return columnWidths; } ,calcRowHeights: function(usableSize,includePercentage) { var rowHeights = []; var _g = 0; var _g1 = this._rows; while(_g < _g1) { var _ = _g++; rowHeights.push(0); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() == null) { if(child.get_componentHeight() > rowHeights[rowIndex]) { rowHeights[rowIndex] = child.get_componentHeight(); } } ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } if(includePercentage) { rowIndex = 0; columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() != null) { var cy = usableSize.height * child.get_percentHeight() / 100; if(cy > rowHeights[rowIndex]) { rowHeights[rowIndex] = cy; } } ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } } return rowHeights; } ,calcExplicitWidths: function() { var _this = this.get_component(); var visibleChildren = (_this._children == null ? [] : _this._children).length; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { --visibleChildren; } } var columnCount = visibleChildren / this._rows | 0; if(visibleChildren % this._rows != 0) { ++columnCount; } var explicitWidths = []; var _g = 0; var _g1 = columnCount; while(_g < _g1) { var _ = _g++; explicitWidths.push(false); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentWidth() == null && child.get_componentWidth() > 0) { explicitWidths[rowIndex % this._rows] = true; } ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } return explicitWidths; } ,calcExplicitHeights: function() { var explicitHeights = []; var _g = 0; var _g1 = this._rows; while(_g < _g1) { var _ = _g++; explicitHeights.push(false); } var rowIndex = 0; var columnIndex = 0; var _g = 0; var _this = this.get_component(); var _g1 = _this._children == null ? [] : _this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_includeInLayout() == false) { continue; } if(child.get_percentHeight() == null && child.get_componentHeight() > 0) { explicitHeights[rowIndex] = true; } ++rowIndex; if(rowIndex >= this._rows) { rowIndex = 0; ++columnIndex; } } return explicitHeights; } ,cloneLayout: function() { var c = haxe_ui_layouts_Layout.prototype.cloneLayout.call(this); c.set_rows(this.get_rows()); return c; } ,self: function() { return new haxe_ui_layouts_HorizontalGridLayout(); } ,__class__: haxe_ui_layouts_HorizontalGridLayout ,__properties__: $extend(haxe_ui_layouts_Layout.prototype.__properties__,{set_rows:"set_rows",get_rows:"get_rows"}) }); var haxe_ui_layouts_LayoutFactory = function() { }; $hxClasses["haxe.ui.layouts.LayoutFactory"] = haxe_ui_layouts_LayoutFactory; haxe_ui_layouts_LayoutFactory.__name__ = "haxe.ui.layouts.LayoutFactory"; haxe_ui_layouts_LayoutFactory.createFromName = function(name) { var className = haxe_ui_layouts_LayoutFactory._map.h[name.toLowerCase()]; if(className == null) { haxe_Log.trace("WARNING: layout '" + name + "' not found",{ fileName : "haxe/ui/layouts/LayoutFactory.hx", lineNumber : 10, className : "haxe.ui.layouts.LayoutFactory", methodName : "createFromName"}); return new haxe_ui_layouts_DefaultLayout(); } var cls = $hxClasses[className]; if(cls == null) { haxe_Log.trace("WARNING: layout '" + name + "' not found",{ fileName : "haxe/ui/layouts/LayoutFactory.hx", lineNumber : 16, className : "haxe.ui.layouts.LayoutFactory", methodName : "createFromName"}); return new haxe_ui_layouts_DefaultLayout(); } var instance = Type.createInstance(cls,[]); return instance; }; haxe_ui_layouts_LayoutFactory.register = function(name,className) { haxe_ui_layouts_LayoutFactory._map.h[name.toLowerCase()] = className; }; haxe_ui_layouts_LayoutFactory.lookupClass = function(name) { return haxe_ui_layouts_LayoutFactory._map.h[name.toLowerCase()]; }; var haxe_ui_loaders_image_ImageLoaderBase = function() { }; $hxClasses["haxe.ui.loaders.image.ImageLoaderBase"] = haxe_ui_loaders_image_ImageLoaderBase; haxe_ui_loaders_image_ImageLoaderBase.__name__ = "haxe.ui.loaders.image.ImageLoaderBase"; haxe_ui_loaders_image_ImageLoaderBase.prototype = { load: function(resource,callback) { } ,postProcess: function(resource,image) { } ,__class__: haxe_ui_loaders_image_ImageLoaderBase }; var haxe_ui_loaders_image_AssetImageLoader = function() { haxe_ui_loaders_image_ImageLoaderBase.call(this); }; $hxClasses["haxe.ui.loaders.image.AssetImageLoader"] = haxe_ui_loaders_image_AssetImageLoader; haxe_ui_loaders_image_AssetImageLoader.__name__ = "haxe.ui.loaders.image.AssetImageLoader"; haxe_ui_loaders_image_AssetImageLoader.__super__ = haxe_ui_loaders_image_ImageLoaderBase; haxe_ui_loaders_image_AssetImageLoader.prototype = $extend(haxe_ui_loaders_image_ImageLoaderBase.prototype,{ load: function(resource,callback) { haxe_ui_Toolkit.get_assets().getImage(haxe_ui_util_Variant.toString(resource),callback); } ,__class__: haxe_ui_loaders_image_AssetImageLoader }); var haxe_ui_loaders_image_FileImageLoader = function() { haxe_ui_loaders_image_ImageLoaderBase.call(this); }; $hxClasses["haxe.ui.loaders.image.FileImageLoader"] = haxe_ui_loaders_image_FileImageLoader; haxe_ui_loaders_image_FileImageLoader.__name__ = "haxe.ui.loaders.image.FileImageLoader"; haxe_ui_loaders_image_FileImageLoader.__super__ = haxe_ui_loaders_image_ImageLoaderBase; haxe_ui_loaders_image_FileImageLoader.prototype = $extend(haxe_ui_loaders_image_ImageLoaderBase.prototype,{ load: function(resource,callback) { var stringResource = haxe_ui_util_Variant.toString(resource); var tmp = HxOverrides.substr(stringResource,7,null); haxe_ui_Toolkit.get_assets().imageFromFile(tmp,function(imageInfo) { haxe_ui_ToolkitAssets.get_instance().cacheImage(stringResource,imageInfo); callback(imageInfo); }); } ,__class__: haxe_ui_loaders_image_FileImageLoader }); var haxe_ui_loaders_image_HttpImageLoader = function() { haxe_ui_loaders_image_ImageLoaderBase.call(this); }; $hxClasses["haxe.ui.loaders.image.HttpImageLoader"] = haxe_ui_loaders_image_HttpImageLoader; haxe_ui_loaders_image_HttpImageLoader.__name__ = "haxe.ui.loaders.image.HttpImageLoader"; haxe_ui_loaders_image_HttpImageLoader.__super__ = haxe_ui_loaders_image_ImageLoaderBase; haxe_ui_loaders_image_HttpImageLoader.prototype = $extend(haxe_ui_loaders_image_ImageLoaderBase.prototype,{ load: function(resource,callback) { var stringResource = haxe_ui_util_Variant.toString(resource); this.loadFromHttp(stringResource,function(imageInfo) { haxe_ui_ToolkitAssets.get_instance().cacheImage(stringResource,imageInfo); callback(imageInfo); }); } ,loadFromHttp: function(url,callback) { var request = new XMLHttpRequest(); request.open("GET",url); request.responseType = "arraybuffer"; request.onreadystatechange = function(_) { if(request.readyState != 4) { return; } var s; try { s = request.status; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; s = null; } if(s == undefined) { s = null; } if(s != null && s >= 200 && s < 400) { haxe_ui_Toolkit.get_assets().imageFromBytes(haxe_io_Bytes.ofData(request.response),callback); } else if(s == null) { callback(null); } else { if(s == 0) { haxe_ui_Toolkit.get_assets().getImage(url,callback); return; } callback(null); } }; request.onerror = function(x) { }; request.send(); } ,__class__: haxe_ui_loaders_image_HttpImageLoader }); var haxe_ui_loaders_image_ImageLoader = function() { this._defaultLoader = null; this._registeredLoaders = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.loaders.image.ImageLoader"] = haxe_ui_loaders_image_ImageLoader; haxe_ui_loaders_image_ImageLoader.__name__ = "haxe.ui.loaders.image.ImageLoader"; haxe_ui_loaders_image_ImageLoader.__properties__ = {get_instance:"get_instance"}; haxe_ui_loaders_image_ImageLoader._instance = null; haxe_ui_loaders_image_ImageLoader.instance = null; haxe_ui_loaders_image_ImageLoader.get_instance = function() { if(haxe_ui_loaders_image_ImageLoader._instance == null) { haxe_ui_loaders_image_ImageLoader._instance = new haxe_ui_loaders_image_ImageLoader(); } return haxe_ui_loaders_image_ImageLoader._instance; }; haxe_ui_loaders_image_ImageLoader.prototype = { _registeredLoaders: null ,_defaultLoader: null ,load: function(resource,callback,useCache) { if(useCache == null) { useCache = true; } if(haxe_ui_util_Variant.get_isString(resource)) { var stringResource = haxe_ui_util_Variant.toString(resource); if(stringResource == "null") { callback(null); return; } if(useCache == true) { var cachedImage = haxe_ui_ToolkitAssets.get_instance().getCachedImage(stringResource); if(cachedImage != null) { callback(cachedImage); return; } } stringResource = StringTools.trim(stringResource); var prefix = ""; var n = stringResource.indexOf("://"); if(n != -1) { prefix = stringResource.substring(0,n); } var loader = this.get(prefix,stringResource); if(loader == null) { haxe_Log.trace("WARNING: no image loader could be found for '" + prefix + "'",{ fileName : "haxe/ui/loaders/image/ImageLoader.hx", lineNumber : 51, className : "haxe.ui.loaders.image.ImageLoader", methodName : "load"}); callback(null); return; } loader.load(resource,function(imageInfo) { if(callback != null) { if(imageInfo != null) { imageInfo.loader = loader; } callback(imageInfo); } }); } else if(haxe_ui_util_Variant.get_isImageData(resource)) { var imageData = haxe_ui_util_Variant.toImageData(resource); if(callback != null) { callback(haxe_ui_ToolkitAssets.get_instance().imageInfoFromImageData(imageData)); } } } ,register: function(prefix,ctor,pattern,isDefault,singleInstance) { if(singleInstance == null) { singleInstance = false; } if(isDefault == null) { isDefault = false; } var info = { prefix : prefix, pattern : pattern, ctor : ctor, isDefault : isDefault, singleInstance : singleInstance}; this._registeredLoaders.h[prefix] = info; if(isDefault) { this._defaultLoader = info; } } ,get: function(prefix,stringResource) { var info = null; if(Object.prototype.hasOwnProperty.call(this._registeredLoaders.h,prefix)) { info = this._registeredLoaders.h[prefix]; } else if(stringResource != null) { info = this.findByPattern(stringResource); } if(info == null) { info = this._defaultLoader; } var instance = null; if(info.singleInstance) { instance = info.instance; } if(instance == null) { instance = info.ctor(); if(instance == null) { return null; } if(info.singleInstance) { info.instance = instance; } } return instance; } ,findByPattern: function(stringResource) { var h = this._registeredLoaders.h; var prefix_h = h; var prefix_keys = Object.keys(h); var prefix_length = prefix_keys.length; var prefix_current = 0; while(prefix_current < prefix_length) { var prefix = prefix_keys[prefix_current++]; var info = this._registeredLoaders.h[prefix]; if(info.pattern == null) { continue; } var regexp = new EReg(info.pattern,"gm"); if(regexp.match(stringResource)) { return info; } } return null; } ,__class__: haxe_ui_loaders_image_ImageLoader }; var haxe_ui_locale_Formats = function() { }; $hxClasses["haxe.ui.locale.Formats"] = haxe_ui_locale_Formats; haxe_ui_locale_Formats.__name__ = "haxe.ui.locale.Formats"; haxe_ui_locale_Formats.__properties__ = {set_thousandsSeparator:"set_thousandsSeparator",get_thousandsSeparator:"get_thousandsSeparator",set_decimalSeparator:"set_decimalSeparator",get_decimalSeparator:"get_decimalSeparator",set_dateFormatShort:"set_dateFormatShort",get_dateFormatShort:"get_dateFormatShort"}; haxe_ui_locale_Formats.get_dateFormatShort = function() { if(haxe_ui_locale_Formats._dateFormatShort == null) { return haxe_ui_locale_Formats.getLocaleString("formats.date.short","%d/%m/%Y"); } return haxe_ui_locale_Formats._dateFormatShort; }; haxe_ui_locale_Formats.set_dateFormatShort = function(value) { haxe_ui_locale_Formats._dateFormatShort = value; return value; }; haxe_ui_locale_Formats.get_decimalSeparator = function() { if(haxe_ui_locale_Formats._decimalSeparator == null) { return haxe_ui_locale_Formats.getLocaleString("formats.decimal.separator","."); } return haxe_ui_locale_Formats._decimalSeparator; }; haxe_ui_locale_Formats.set_decimalSeparator = function(value) { haxe_ui_locale_Formats._decimalSeparator = value; return value; }; haxe_ui_locale_Formats.get_thousandsSeparator = function() { if(haxe_ui_locale_Formats._thousandsSeparator == null) { return haxe_ui_locale_Formats.getLocaleString("formats.thousands.separator",","); } return haxe_ui_locale_Formats._thousandsSeparator; }; haxe_ui_locale_Formats.set_thousandsSeparator = function(value) { haxe_ui_locale_Formats._thousandsSeparator = value; return value; }; haxe_ui_locale_Formats.getLocaleString = function(id,defaultString) { var localeString = haxe_ui_locale_LocaleManager.get_instance().lookupString(id); if(localeString == id && defaultString != null) { return defaultString; } return localeString; }; var haxe_ui_locale_LocaleEvent = function(type) { haxe_ui_events_UIEvent.call(this,type); }; $hxClasses["haxe.ui.locale.LocaleEvent"] = haxe_ui_locale_LocaleEvent; haxe_ui_locale_LocaleEvent.__name__ = "haxe.ui.locale.LocaleEvent"; haxe_ui_locale_LocaleEvent.__super__ = haxe_ui_events_UIEvent; haxe_ui_locale_LocaleEvent.prototype = $extend(haxe_ui_events_UIEvent.prototype,{ clone: function() { var c = new haxe_ui_locale_LocaleEvent(this.type); return c; } ,__class__: haxe_ui_locale_LocaleEvent }); var haxe_ui_locale_LocaleManager = function() { this._localeStringMap = new haxe_ds_StringMap(); this._localeMap = new haxe_ds_StringMap(); this._language = "en"; this._localeSet = false; this.autoSetLocale = true; this._eventMap = null; }; $hxClasses["haxe.ui.locale.LocaleManager"] = haxe_ui_locale_LocaleManager; haxe_ui_locale_LocaleManager.__name__ = "haxe.ui.locale.LocaleManager"; haxe_ui_locale_LocaleManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_locale_LocaleManager._instance = null; haxe_ui_locale_LocaleManager.get_instance = function() { if(haxe_ui_locale_LocaleManager._instance == null) { haxe_ui_locale_LocaleManager._instance = new haxe_ui_locale_LocaleManager(); } return haxe_ui_locale_LocaleManager._instance; }; haxe_ui_locale_LocaleManager.prototype = { _eventMap: null ,init: function() { var autoDetectedLocale = haxe_ui_core_Platform.get_instance().getSystemLocale(); if(!this._localeSet && this.autoSetLocale && autoDetectedLocale != null && this.hasLocale(autoDetectedLocale)) { this._language = autoDetectedLocale; this.applyLocale(this._language); } } ,registerComponent: function(component,prop,callback,expr,fix) { if(fix == null) { fix = true; } if(callback == null && expr == null) { return; } var fixedExpr = null; if(fix == true) { if(expr != null) { fixedExpr = haxe_ui_util_ExpressionUtil.stringToLanguageExpression(expr,"LocaleManager"); if(StringTools.endsWith(fixedExpr,";") == true) { fixedExpr = HxOverrides.substr(fixedExpr,0,fixedExpr.length - 1); } } } else { fixedExpr = expr; } var propMap = haxe_ui_locale_LocaleManager._registeredComponents.h[component.__id__]; if(propMap == null) { propMap = new haxe_ds_StringMap(); haxe_ui_locale_LocaleManager._registeredComponents.set(component,propMap); } propMap.h[prop] = { callback : callback, expr : fixedExpr}; this.refreshFor(component); } ,unregisterComponent: function(component) { haxe_ui_locale_LocaleManager._registeredComponents.remove(component); } ,findBindingExpr: function(component,prop) { var propMap = haxe_ui_locale_LocaleManager._registeredComponents.h[component.__id__]; if(propMap == null) { return null; } var entry = propMap.h[prop]; if(entry == null) { return null; } return entry.expr; } ,cloneForComponent: function(from,to) { var propMap = haxe_ui_locale_LocaleManager._registeredComponents.h[from.__id__]; if(propMap == null) { return; } var h = propMap.h; var prop_h = h; var prop_keys = Object.keys(h); var prop_length = prop_keys.length; var prop_current = 0; while(prop_current < prop_length) { var prop = prop_keys[prop_current++]; var entry = propMap.h[prop]; this.registerComponent(to,prop,entry.callback,entry.expr,false); } } ,onComponentReady: function(e) { e.target.unregisterEvent(haxe_ui_events_UIEvent.READY,$bind(this,this.onComponentReady)); this.refreshFor(e.target); } ,refreshFor: function(component) { if(component.get_isReady() == false) { component.registerEvent(haxe_ui_events_UIEvent.READY,$bind(this,this.onComponentReady)); return; } var propMap = haxe_ui_locale_LocaleManager._registeredComponents.h[component.__id__]; if(propMap == null) { return; } var context = { LocaleManager : haxe_ui_locale_LocaleManager, MathUtil : haxe_ui_util_MathUtil}; var root = this.findRoot(component); var _g = 0; var _g1 = root.get_namedComponents(); while(_g < _g1.length) { var k = _g1[_g]; ++_g; if(k.get_scriptAccess() == false) { continue; } context[k.get_id()] = k; } var h = propMap.h; var prop_h = h; var prop_keys = Object.keys(h); var prop_length = prop_keys.length; var prop_current = 0; while(prop_current < prop_length) { var prop = prop_keys[prop_current++]; var entry = propMap.h[prop]; if(entry.callback != null) { var value = entry.callback(); Reflect.setProperty(component,prop,value); } else if(entry.expr != null) { var value1 = haxe_ui_util_SimpleExpressionEvaluator.eval(entry.expr,context); Reflect.setProperty(component,prop,value1); } } } ,refreshAll: function() { var c = haxe_ui_locale_LocaleManager._registeredComponents.keys(); while(c.hasNext()) { var c1 = c.next(); this.refreshFor(c1); } } ,autoSetLocale: null ,_localeSet: null ,_language: null ,get_language: function() { return this._language; } ,set_language: function(value) { if(value == null) { return value; } if(this._language == value) { return value; } this._localeSet = true; this._language = value; this.applyLocale(this._language); return value; } ,applyLocale: function(locale) { var tmp = this.getStrings(locale) == null; this.refreshAll(); if(this._eventMap != null) { var event = new haxe_ui_locale_LocaleEvent("localeChanged"); this._eventMap.invoke("localeChanged",event); } } ,hasLocale: function(localeId) { localeId = StringTools.replace(localeId,"-","_"); if(Object.prototype.hasOwnProperty.call(this._localeMap.h,localeId)) { return true; } var parts = localeId.split("_"); return Object.prototype.hasOwnProperty.call(this._localeMap.h,parts[0]); } ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this._eventMap == null) { this._eventMap = new haxe_ui_util_EventMap(); } this._eventMap.add(type,listener,priority); } ,hasEvent: function(type,listener) { if(this._eventMap == null) { return false; } return this._eventMap.contains(type,listener); } ,unregisterEvent: function(type,listener) { if(this._eventMap != null) { this._eventMap.remove(type,listener); } } ,parseResource: function(localeId,resourceId) { var content = haxe_ui_ToolkitAssets.get_instance().getText(resourceId); if(content != null) { var parts = resourceId.split("."); var extension = parts.pop(); var filename = parts.join("."); var n = filename.lastIndexOf("/"); if(n != -1) { filename = HxOverrides.substr(filename,n + 1,null); } var parser = haxe_ui_parsers_locale_LocaleParser.get(extension); var map = parser.parse(content); this.addStrings(localeId,map,filename); } } ,_localeMap: null ,addStrings: function(localeId,map,filename) { localeId = StringTools.replace(localeId,"-","_"); var stringMap = this._localeMap.h[localeId]; if(stringMap == null) { stringMap = new haxe_ds_StringMap(); this._localeMap.h[localeId] = stringMap; } var h = map.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; var v = map.h[k]; if(filename != null && filename != localeId && StringTools.startsWith(k,filename) == false) { var altKey = filename + "." + k; stringMap.h[altKey] = v; } stringMap.h[k] = v; } localeId = StringTools.replace(localeId,"-","_"); var parts = localeId.split("_"); if(parts.length > 1) { var parent = this._localeMap.h[parts[0]]; if(parent != null) { var h = parent.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; if(Object.prototype.hasOwnProperty.call(stringMap.h,k) == false) { stringMap.h[k] = parent.h[k]; } } } } } ,getStrings: function(localeId) { var strings = this._localeMap.h[localeId]; if(strings != null) { return strings; } localeId = StringTools.replace(localeId,"-","_"); var parts = localeId.split("_"); if(!Object.prototype.hasOwnProperty.call(this._localeMap.h,parts[0])) { return this._localeMap.h["en"]; } return this._localeMap.h[parts[0]]; } ,hasString: function(id) { var strings = this.getStrings(this.get_language()); if(strings == null) { return false; } return Object.prototype.hasOwnProperty.call(strings.h,id); } ,lookupString: function(id,param0,param1,param2,param3) { return this.translateTo(this.get_language(),id,param0,param1,param2,param3); } ,_localeStringMap: null ,translateTo: function(lang,id,param0,param1,param2,param3) { lang = StringTools.replace(lang,"-","_"); var map = this._localeStringMap.h[lang]; var localeString = null; if(map != null) { localeString = map.h[id]; } if(localeString == null) { var strings = this.getStrings(lang); if(strings == null) { return id; } var value = strings.h[id]; if(value == null) { return id; } var isCompound = false; if(value.indexOf("{{") != -1 && value.indexOf("}}") != -1) { isCompound = true; var n1 = value.indexOf("{{"); while(n1 != -1) { var n2 = value.indexOf("}}",n1); var before = value.substring(0,n1); var part = value.substring(n1 + 2,n2); var after = value.substring(n2 + 2); var partValue = this.translateTo(lang,part,param0,param1,param2,param3); value = before + partValue + after; n1 = value.indexOf("{{",n1); } } localeString = new haxe_ui_locale_LocaleString(); localeString.parse(id + "=" + value); if(!isCompound) { if(map == null) { map = new haxe_ds_StringMap(); this._localeStringMap.h[lang] = map; } map.h[id] = localeString; } } var result = localeString.build(param0,param1,param2,param3); return result; } ,findRoot: function(c) { var root = c; var ref = c; while(ref != null) { root = ref; if(root.bindingRoot) { break; } ref = ref.get_parentComponent(); } return root; } ,__class__: haxe_ui_locale_LocaleManager ,__properties__: {set_language:"set_language",get_language:"get_language"} }; var haxe_ui_locale_LocaleString = function() { this._cachedValue = null; this._isSimple = true; this.parts = []; }; $hxClasses["haxe.ui.locale.LocaleString"] = haxe_ui_locale_LocaleString; haxe_ui_locale_LocaleString.__name__ = "haxe.ui.locale.LocaleString"; haxe_ui_locale_LocaleString.prototype = { id: null ,parts: null ,_isSimple: null ,_cachedValue: null ,build: function(param0,param1,param2,param3) { if(this._isSimple == true && this._cachedValue != null) { return this._cachedValue; } var result = null; if(Type.typeof(param0)._hx_index == 4) { if(param0 != null && param0.text != null) { param0 = param0.text; } if(param1 != null && param1.text != null) { param1 = param1.text; } if(param2 != null && param2.text != null) { param2 = param2.text; } if(param3 != null && param3.text != null) { param3 = param3.text; } } var _g = 0; var _g1 = this.parts; while(_g < _g1.length) { var part = _g1[_g]; ++_g; switch(part._hx_index) { case 0: var s = part.s; if(result == null) { result = ""; } result += s; break; case 1: var expr = part.block; if(result == null) { result = ""; } result += expr.evaluate(param0,param1,param2,param3); break; } } if(result == null) { result = this.id; } if(result != null) { if(this._isSimple == true) { if(result.indexOf("[0]") != -1) { this._isSimple = false; } if(result.indexOf("[1]") != -1) { this._isSimple = false; } if(result.indexOf("[2]") != -1) { this._isSimple = false; } if(result.indexOf("[3]") != -1) { this._isSimple = false; } if(result.indexOf("{{") != -1 && result.indexOf("}}") != -1) { this._isSimple = false; } } if(param0 != null) { result = StringTools.replace(result,"[0]",this.formatParam(param0)); } if(param1 != null) { result = StringTools.replace(result,"[1]",this.formatParam(param1)); } if(param2 != null) { result = StringTools.replace(result,"[2]",this.formatParam(param2)); } if(param3 != null) { result = StringTools.replace(result,"[3]",this.formatParam(param3)); } var n1 = result.indexOf("{{"); var beforePos = 0; while(n1 != -1) { var before = result.substring(beforePos,n1); var n2 = result.indexOf("}}",n1); var code = result.substring(n1 + 2,n2); var after = result.substring(n2 + 2); var subResult = haxe_ui_locale_LocaleManager.get_instance().lookupString(code); if(subResult != null) { result = before + subResult + after; } n1 = result.indexOf("{{",n2); beforePos = n2 + 2; } if(this._isSimple) { this._cachedValue = result; } } return result; } ,parse: function(s) { this.parts = []; var n = s.indexOf("="); if(n == -1) { return; } this.id = StringTools.trim(s.substring(0,n)); s = StringTools.trim(HxOverrides.substr(s,n + 1,null)); var inExpression = false; var part = ""; var _g = 0; var _g1 = s.length; while(_g < _g1) { var i = _g++; var ch = s.charAt(i); switch(ch) { case "{": if(part.length > 0) { this.parts.push(haxe_ui_locale__$LocaleString_LocaleStringPart.Literal(part)); } inExpression = true; part = ""; break; case "}": if(part.length > 0) { var block = new haxe_ui_locale_LocaleStringExpressionBlock(); block.parse(part); this.parts.push(haxe_ui_locale__$LocaleString_LocaleStringPart.ExpressionBlock(block)); } inExpression = false; part = ""; break; default: part += ch; } } if(part.length > 0) { this.parts.push(haxe_ui_locale__$LocaleString_LocaleStringPart.Literal(part)); } var _g = 0; var _g1 = this.parts; _hx_loop2: while(_g < _g1.length) { var part = _g1[_g]; ++_g; switch(part._hx_index) { case 0: var s = part.s; break; case 1: var block = part.block; if(block.expressions != null && block.expressions.length > 0) { this._isSimple = false; break _hx_loop2; } break; } } } ,formatParam: function(param) { if(typeof(param) == "number") { return StringTools.replace(Std.string(param),".",haxe_ui_locale_Formats.get_decimalSeparator()); } else if(((param) instanceof Array)) { var arr = param; var _g = []; var _g1 = 0; while(_g1 < arr.length) { var x = arr[_g1]; ++_g1; _g.push(this.formatParam(x)); } return Std.string(_g); } return Std.string(param); } ,__class__: haxe_ui_locale_LocaleString }; var haxe_ui_locale__$LocaleString_LocaleStringPart = $hxEnums["haxe.ui.locale._LocaleString.LocaleStringPart"] = { __ename__:"haxe.ui.locale._LocaleString.LocaleStringPart",__constructs__:null ,Literal: ($_=function(s) { return {_hx_index:0,s:s,__enum__:"haxe.ui.locale._LocaleString.LocaleStringPart",toString:$estr}; },$_._hx_name="Literal",$_.__params__ = ["s"],$_) ,ExpressionBlock: ($_=function(block) { return {_hx_index:1,block:block,__enum__:"haxe.ui.locale._LocaleString.LocaleStringPart",toString:$estr}; },$_._hx_name="ExpressionBlock",$_.__params__ = ["block"],$_) }; haxe_ui_locale__$LocaleString_LocaleStringPart.__constructs__ = [haxe_ui_locale__$LocaleString_LocaleStringPart.Literal,haxe_ui_locale__$LocaleString_LocaleStringPart.ExpressionBlock]; haxe_ui_locale__$LocaleString_LocaleStringPart.__empty_constructs__ = []; var haxe_ui_locale_LocaleStringExpression = function() { this.isDefault = false; }; $hxClasses["haxe.ui.locale.LocaleStringExpression"] = haxe_ui_locale_LocaleStringExpression; haxe_ui_locale_LocaleStringExpression.__name__ = "haxe.ui.locale.LocaleStringExpression"; haxe_ui_locale_LocaleStringExpression.prototype = { isDefault: null ,varName: null ,expression: null ,expressionResult: null ,evaluate: function(param0,param1,param2,param3) { if(this.expression == null) { return false; } var varValue = param0; if(this.varName == "[0]") { varValue = param0; } if(this.varName == "[1]") { varValue = param1; } if(this.varName == "[2]") { varValue = param2; } if(this.varName == "[3]") { varValue = param3; } var result = this.eval(varValue,this.expression); return result; } ,'eval': function(varValue,expr) { switch(expr._hx_index) { case 0: var expr1 = expr.expr; var r = false; if(Type.typeof(varValue) == ValueType.TFloat) { var floatValue = varValue; var floatResult = parseFloat((this.eval(floatValue,expr1) == null ? "null" : Std.string(this.eval(floatValue,expr1)))); r = floatValue == floatResult; } else if(Type.typeof(varValue) == ValueType.TInt) { var intValue = varValue; var intResult = Std.parseInt(this.eval(intValue,expr1) == null ? "null" : Std.string(this.eval(intValue,expr1))); r = intValue == intResult; } else { var stringValue = Std.string(varValue); var stringResult = this.eval(stringValue,expr1) == null ? "null" : Std.string(this.eval(stringValue,expr1)); r = stringValue == stringResult; } return r; case 1: var expr1 = expr.expr; var r = false; if(Type.typeof(varValue) == ValueType.TFloat) { var floatValue = varValue; var floatResult = parseFloat((this.eval(floatValue,expr1) == null ? "null" : Std.string(this.eval(floatValue,expr1)))); r = floatValue < floatResult; } else if(Type.typeof(varValue) == ValueType.TInt) { var intValue = varValue; var intResult = Std.parseInt(this.eval(intValue,expr1) == null ? "null" : Std.string(this.eval(intValue,expr1))); r = intValue < intResult; } return r; case 2: var expr1 = expr.expr; var r = false; if(Type.typeof(varValue) == ValueType.TFloat) { var floatValue = varValue; var floatResult = parseFloat((this.eval(floatValue,expr1) == null ? "null" : Std.string(this.eval(floatValue,expr1)))); r = floatValue > floatResult; } else if(Type.typeof(varValue) == ValueType.TInt) { var intValue = varValue; var intResult = Std.parseInt(this.eval(intValue,expr1) == null ? "null" : Std.string(this.eval(intValue,expr1))); r = intValue > intResult; } return r; case 3: var expr1 = expr.expr; var r = false; if(Type.typeof(varValue) == ValueType.TFloat) { var floatValue = varValue; var floatResult = parseFloat((this.eval(floatValue,expr1) == null ? "null" : Std.string(this.eval(floatValue,expr1)))); r = floatValue <= floatResult; } else if(Type.typeof(varValue) == ValueType.TInt) { var intValue = varValue; var intResult = Std.parseInt(this.eval(intValue,expr1) == null ? "null" : Std.string(this.eval(intValue,expr1))); r = intValue <= intResult; } return r; case 4: var expr1 = expr.expr; var r = false; if(Type.typeof(varValue) == ValueType.TFloat) { var floatValue = varValue; var floatResult = parseFloat((this.eval(floatValue,expr1) == null ? "null" : Std.string(this.eval(floatValue,expr1)))); r = floatValue >= floatResult; } else if(Type.typeof(varValue) == ValueType.TInt) { var intValue = varValue; var intResult = Std.parseInt(this.eval(intValue,expr1) == null ? "null" : Std.string(this.eval(intValue,expr1))); r = intValue >= intResult; } return r; case 5: var start = expr.start; var end = expr.end; if(varValue >= start) { return varValue <= end; } else { return false; } break; case 6: var modulus = expr.modulus; var expr1 = expr.expr; var r = varValue % modulus; return this.eval(r,expr1); case 7: var values = expr.values; var found = null; var _g = 0; while(_g < values.length) { var v = values[_g]; ++_g; if(v == varValue) { found = v; break; } } return found; case 8: var value = expr.value; return value; } } ,parse: function(s) { s = StringTools.trim(s); var n = s.indexOf(":"); if(n == -1) { return; } var expr = StringTools.trim(s.substring(0,n)); this.expressionResult = StringTools.trim(s.substring(n + 1)); if(expr == "_") { this.isDefault = true; return; } this.expression = this.extractExpression(expr); if(this.expression == null) { var replacement = haxe_ui_locale_LocaleManager.get_instance().lookupString(expr); if(replacement != null) { this.expression = this.extractExpression(replacement); } } } ,extractExpression: function(expr) { var n = -1; var _g = 0; var _g1 = expr.length; _hx_loop1: while(_g < _g1) { var i = _g++; var ch = expr.charAt(i); switch(ch) { case " ":case "%":case "<":case "=":case ">": n = i; break _hx_loop1; default: } } if(n == -1) { return null; } this.varName = StringTools.trim(expr.substring(0,n)); expr = StringTools.trim(expr.substring(n)); var expression = this.parseExpression(expr); return expression; } ,parseExpression: function(s) { var expression = null; s = StringTools.trim(s); if(StringTools.startsWith(s,">=")) { expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.GreaterThanOrEquals(this.parseExpression(s.substring(2))); } else if(StringTools.startsWith(s,"<=")) { expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.LessThanOrEquals(this.parseExpression(s.substring(2))); } else if(StringTools.startsWith(s,">")) { expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.GreaterThan(this.parseExpression(s.substring(1))); } else if(StringTools.startsWith(s,"<")) { expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.LessThan(this.parseExpression(s.substring(1))); } else if(StringTools.startsWith(s,"=")) { expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Equals(this.parseExpression(s.substring(1))); } else if(StringTools.startsWith(s,"mod ")) { var mod = StringTools.trim(s.substring(3)); var n = -1; var _g = 0; var _g1 = mod.length; _hx_loop1: while(_g < _g1) { var i = _g++; var ch = mod.charAt(i); switch(ch) { case " ":case "%":case "<":case "=":case ">": n = i; break _hx_loop1; default: } } if(n != -1) { var rest = mod.substring(n); var mod1 = StringTools.trim(mod.substring(0,n)); expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Modulus(parseFloat(mod1),this.parseExpression(rest)); } } else if(StringTools.startsWith(s,"in ")) { var range = StringTools.trim(HxOverrides.substr(s,2,null)).split("..."); expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Range(parseFloat(range[0]),parseFloat(range[1])); } else if(s.indexOf("|") != -1) { var valueParts = s.split("|"); var values = []; var _g = 0; while(_g < valueParts.length) { var p = valueParts[_g]; ++_g; p = StringTools.trim(p); if(p.length == 0) { continue; } values.push(parseFloat(p)); } expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.List(values); } else { expression = haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Value(s); } return expression; } ,__class__: haxe_ui_locale_LocaleStringExpression }; var haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation = $hxEnums["haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation"] = { __ename__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",__constructs__:null ,Equals: ($_=function(expr) { return {_hx_index:0,expr:expr,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="Equals",$_.__params__ = ["expr"],$_) ,LessThan: ($_=function(expr) { return {_hx_index:1,expr:expr,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="LessThan",$_.__params__ = ["expr"],$_) ,GreaterThan: ($_=function(expr) { return {_hx_index:2,expr:expr,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="GreaterThan",$_.__params__ = ["expr"],$_) ,LessThanOrEquals: ($_=function(expr) { return {_hx_index:3,expr:expr,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="LessThanOrEquals",$_.__params__ = ["expr"],$_) ,GreaterThanOrEquals: ($_=function(expr) { return {_hx_index:4,expr:expr,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="GreaterThanOrEquals",$_.__params__ = ["expr"],$_) ,Range: ($_=function(start,end) { return {_hx_index:5,start:start,end:end,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="Range",$_.__params__ = ["start","end"],$_) ,Modulus: ($_=function(modulus,expr) { return {_hx_index:6,modulus:modulus,expr:expr,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="Modulus",$_.__params__ = ["modulus","expr"],$_) ,List: ($_=function(values) { return {_hx_index:7,values:values,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="List",$_.__params__ = ["values"],$_) ,Value: ($_=function(value) { return {_hx_index:8,value:value,__enum__:"haxe.ui.locale._LocaleStringExpression.LocalStringExpressionOperation",toString:$estr}; },$_._hx_name="Value",$_.__params__ = ["value"],$_) }; haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.__constructs__ = [haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Equals,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.LessThan,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.GreaterThan,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.LessThanOrEquals,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.GreaterThanOrEquals,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Range,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Modulus,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.List,haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.Value]; haxe_ui_locale__$LocaleStringExpression_LocalStringExpressionOperation.__empty_constructs__ = []; var haxe_ui_locale_LocaleStringExpressionBlock = function() { this.expressions = []; }; $hxClasses["haxe.ui.locale.LocaleStringExpressionBlock"] = haxe_ui_locale_LocaleStringExpressionBlock; haxe_ui_locale_LocaleStringExpressionBlock.__name__ = "haxe.ui.locale.LocaleStringExpressionBlock"; haxe_ui_locale_LocaleStringExpressionBlock.prototype = { expressions: null ,evaluate: function(param0,param1,param2,param3) { var result = null; var _g = 0; var _g1 = this.expressions; while(_g < _g1.length) { var expr = _g1[_g]; ++_g; if(expr.isDefault) { continue; } if(expr.evaluate(param0,param1,param2,param3) == true) { result = expr.expressionResult; break; } } if(result == null) { var defaultExpression = this.findDefaultExpression(); if(defaultExpression != null) { result = defaultExpression.expressionResult; } } return result; } ,findDefaultExpression: function() { var _g = 0; var _g1 = this.expressions; while(_g < _g1.length) { var expr = _g1[_g]; ++_g; if(expr.isDefault) { return expr; } } return null; } ,parse: function(s) { this.expressions = []; s = StringTools.trim(s); var lines = s.split("\n"); var _g = 0; while(_g < lines.length) { var l = lines[_g]; ++_g; var expr = new haxe_ui_locale_LocaleStringExpression(); expr.parse(l); this.expressions.push(expr); } } ,__class__: haxe_ui_locale_LocaleStringExpressionBlock }; var haxe_ui_macros_BackendMacros = function() { }; $hxClasses["haxe.ui.macros.BackendMacros"] = haxe_ui_macros_BackendMacros; haxe_ui_macros_BackendMacros.__name__ = "haxe.ui.macros.BackendMacros"; var haxe_ui_macros_ComponentMacros = function() { }; $hxClasses["haxe.ui.macros.ComponentMacros"] = haxe_ui_macros_ComponentMacros; haxe_ui_macros_ComponentMacros.__name__ = "haxe.ui.macros.ComponentMacros"; var haxe_ui_macros_ModuleMacros = function() { }; $hxClasses["haxe.ui.macros.ModuleMacros"] = haxe_ui_macros_ModuleMacros; haxe_ui_macros_ModuleMacros.__name__ = "haxe.ui.macros.ModuleMacros"; var haxe_ui_macros_NativeMacros = function() { }; $hxClasses["haxe.ui.macros.NativeMacros"] = haxe_ui_macros_NativeMacros; haxe_ui_macros_NativeMacros.__name__ = "haxe.ui.macros.NativeMacros"; haxe_ui_macros_NativeMacros._nativeProcessed = null; var haxe_ui_notifications_Notification = function() { this._notificationData = null; var _gthis = this; haxe_ui_containers_VBox.call(this); this.applyRootLayout("vbox"); var c0 = new haxe_ui_containers_HBox(); c0.set_percentWidth(100.); var c1 = new haxe_ui_components_Label(); c1.set_id("title"); c1.set_percentWidth(100.); c1.set_text("Title"); c0.addComponent(c1); var c2 = new haxe_ui_components_Image(); c2.set_id("closeButton"); c2.set_styleNames("notification-close-button"); c0.addComponent(c2); this.addComponent(c0); var c3 = new haxe_ui_components_HorizontalRule(); this.addComponent(c3); var c4 = new haxe_ui_containers_HBox(); c4.set_id("contentContainer"); c4.set_percentWidth(100.); var c5 = new haxe_ui_components_Image(); c5.set_id("notificationIcon"); c5.set_resource(haxe_ui_util_Variant.fromString("haxeui-core/styles/shared/info-large.png")); c4.addComponent(c5); var c6 = new haxe_ui_containers_ScrollView(); c6.set_id("bodyContainer"); c6.set_percentWidth(100.); c6.set_percentContentWidth(100.); c6.set_autoFocus(false); c6.set_allowFocus(false); var c7 = new haxe_ui_containers_VBox(); c7.set_percentWidth(100.); var c8 = new haxe_ui_components_Label(); c8.set_id("body"); c8.set_percentWidth(100.); c8.set_text("This is the body"); c7.addComponent(c8); c6.addComponent(c7); c4.addComponent(c6); this.addComponent(c4); var c9 = new haxe_ui_containers_HBox(); c9.set_id("actionsFooter"); c9.set_percentWidth(100.); var c10 = new haxe_ui_components_Spacer(); c10.set_percentWidth(100.); c9.addComponent(c10); var c11 = new haxe_ui_containers_HBox(); c11.set_id("actionsContainer"); c9.addComponent(c11); this.addComponent(c9); this.bindingRoot = true; this.title = c1; this.notificationIcon = c5; this.contentContainer = c4; this.closeButton = c2; this.bodyContainer = c6; this.body = c8; this.actionsFooter = c9; this.actionsContainer = c11; this.closeButton.set_onClick(function(_) { _gthis.hide(); }); }; $hxClasses["haxe.ui.notifications.Notification"] = haxe_ui_notifications_Notification; haxe_ui_notifications_Notification.__name__ = "haxe.ui.notifications.Notification"; haxe_ui_notifications_Notification.__super__ = haxe_ui_containers_VBox; haxe_ui_notifications_Notification.prototype = $extend(haxe_ui_containers_VBox.prototype,{ hide: function() { haxe_ui_notifications_NotificationManager.get_instance().removeNotification(this); } ,_notificationData: null ,get_notificationData: function() { return this._notificationData; } ,set_notificationData: function(value) { this._notificationData = value; this.title.set_text(this._notificationData.title); this.body.set_text(this._notificationData.body); if(this._notificationData.icon != null) { this.notificationIcon.set_resource(haxe_ui_util_Variant.fromString(this._notificationData.icon)); } else if(this._notificationData.type != null) { switch(this._notificationData.type._hx_index) { case 0: break; case 1: this.addClass("info"); this.addClass("blue-notification"); break; case 2: this.addClass("warning"); this.addClass("yellow-notification"); break; case 3: this.addClass("error"); this.addClass("red-notification"); break; case 4: this.addClass("success"); this.addClass("green-notification"); break; } } if(this._notificationData.styleNames != null) { this.set_styleNames(this._notificationData.styleNames); this.invalidateComponent("style",false); } if(this._notificationData.actions == null || this._notificationData.actions.length == 0) { this.actionsFooter.hide(); } else { this.actionsContainer.removeAllComponents(); var _g = 0; var _g1 = this._notificationData.actions; while(_g < _g1.length) { var actionData = _g1[_g]; ++_g; var button = new haxe_ui_components_Button(); button.set_text(actionData.text); button.set_icon(actionData.icon); button.userData = actionData; button.registerEvent(haxe_ui_events_MouseEvent.CLICK,$bind(this,this.onActionButton)); this.actionsContainer.addComponent(button); } this.actionsFooter.show(); } return value; } ,onActionButton: function(event) { var closeNotification = true; var actionData = event.target.userData; if(actionData.callback == null) { var notificationEvent = new haxe_ui_events_NotificationEvent(haxe_ui_events_NotificationEvent.ACTION); notificationEvent.notification = this; notificationEvent.actionData = actionData; this.dispatch(notificationEvent); if(notificationEvent.canceled) { closeNotification = false; } haxe_ui_notifications_NotificationManager.get_instance().dispatch(notificationEvent,this); if(notificationEvent.canceled) { closeNotification = false; } } if(actionData.callback != null) { closeNotification = actionData.callback(actionData); } if(closeNotification) { this.hide(); } } ,title: null ,notificationIcon: null ,contentContainer: null ,closeButton: null ,bodyContainer: null ,body: null ,actionsFooter: null ,actionsContainer: null ,registerBehaviours: function() { haxe_ui_containers_VBox.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_VBox.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_notifications_Notification(); } ,__class__: haxe_ui_notifications_Notification ,__properties__: $extend(haxe_ui_containers_VBox.prototype.__properties__,{set_notificationData:"set_notificationData",get_notificationData:"get_notificationData"}) }); var haxe_ui_notifications_NotificationManager = function() { this._isAnimating = false; this._removeQueue = []; this._addQueue = []; this._timer = null; this.animationFn = haxe_ui_notifications_NotificationManager.AnimateFromBottom; this.maxNotifications = -1; this._currentNotifications = []; haxe_ui_util_EventDispatcher.call(this); }; $hxClasses["haxe.ui.notifications.NotificationManager"] = haxe_ui_notifications_NotificationManager; haxe_ui_notifications_NotificationManager.__name__ = "haxe.ui.notifications.NotificationManager"; haxe_ui_notifications_NotificationManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_notifications_NotificationManager._instance = null; haxe_ui_notifications_NotificationManager.instance = null; haxe_ui_notifications_NotificationManager.get_instance = function() { if(haxe_ui_notifications_NotificationManager._instance == null) { haxe_ui_notifications_NotificationManager._instance = new haxe_ui_notifications_NotificationManager(); } return haxe_ui_notifications_NotificationManager._instance; }; haxe_ui_notifications_NotificationManager.AnimateFromBottom = function(notifications) { var builders = []; var scy = haxe_ui_core_Screen.get_instance().get_height(); var baselineY = scy - haxe_ui_notifications_NotificationManager.GUTTER_SIZE; var _g = 0; while(_g < notifications.length) { var notification = notifications[_g]; ++_g; var builder = new haxe_ui_animation_AnimationBuilder(notification); builder.setPosition(0,"top",notification.get_top() | 0,true); builder.setPosition(100,"top",baselineY - notification.get_height() | 0,true); if(notification.get_opacity() == 0) { builder.setPosition(0,"opacity",0,true); builder.setPosition(100,"opacity",1,true); } builders.push(builder); baselineY -= notification.get_height() + haxe_ui_notifications_NotificationManager.SPACING; } return builders; }; haxe_ui_notifications_NotificationManager.__super__ = haxe_ui_util_EventDispatcher; haxe_ui_notifications_NotificationManager.prototype = $extend(haxe_ui_util_EventDispatcher.prototype,{ _currentNotifications: null ,maxNotifications: null ,animationFn: null ,_timer: null ,startTimer: function() { if(this._timer != null) { return; } this._timer = new haxe_ui_util_Timer(100,$bind(this,this.onTimer)); } ,stopTimer: function() { if(this._timer == null) { return; } this._timer.stop(); this._timer = null; } ,onTimer: function() { if(this._isAnimating) { return; } if(this._addQueue.length > 0) { this.pushNotification(this._addQueue.shift()); } else if(this._removeQueue.length > 0) { this.popNotification(this._removeQueue.shift()); } if(this._addQueue.length == 0 && this._removeQueue.length == 0) { this.stopTimer(); } } ,_addQueue: null ,addNotification: function(notificationData) { if(notificationData.title == null) { notificationData.title = "Notification"; } if(notificationData.actions == null || notificationData.actions.length == 0) { if(notificationData.expiryMs == null) { notificationData.expiryMs = haxe_ui_notifications_NotificationManager.DEFAULT_EXPIRY; } } else if(notificationData.expiryMs == null) { notificationData.expiryMs = -1; } var notification = new haxe_ui_notifications_Notification(); notification.registerEvent(haxe_ui_events_UIEvent.DESTROY,$bind(this,this.onNotificationDestroyed)); notification.set_notificationData(notificationData); if(!this._isAnimating) { this.pushNotification(notification); } else { this._addQueue.push(notification); this.startTimer(); } return notification; } ,_removeQueue: null ,removeNotification: function(notification) { if(this._currentNotifications.indexOf(notification) == -1) { return; } if(this._isAnimating) { this._removeQueue.push(notification); this.startTimer(); return; } this.popNotification(notification); } ,onNotificationDestroyed: function(event) { HxOverrides.remove(this._currentNotifications,event.target); if(this._currentNotifications.length == 0) { this._isAnimating = false; } } ,clearNotifications: function() { var _g = 0; var _g1 = this._currentNotifications; while(_g < _g1.length) { var notification = _g1[_g]; ++_g; this.removeNotification(notification); } } ,popNotification: function(notification) { var _gthis = this; if(this._currentNotifications.indexOf(notification) == -1) { return; } this._isAnimating = true; notification.fadeOut(function() { var event = new haxe_ui_events_NotificationEvent(haxe_ui_events_NotificationEvent.HIDDEN); event.notification = notification; notification.dispatch(event); _gthis.dispatch(event,notification); _gthis._isAnimating = false; HxOverrides.remove(_gthis._currentNotifications,notification); haxe_ui_core_Screen.get_instance().removeComponent(notification); _gthis.positionNotifications(); }); } ,pushNotification: function(notification) { var _gthis = this; if(this.maxNotifications > 0) { while(this._currentNotifications.length > this.maxNotifications - 1) { var n = [this._currentNotifications.pop()]; n[0].fadeOut((function(n) { return function() { haxe_ui_core_Screen.get_instance().removeComponent(n[0]); }; })(n)); } } notification.set_opacity(0); haxe_ui_core_Screen.get_instance().addComponent(notification); haxe_ui_Toolkit.callLater(function() { notification.validateNow(); var scx = haxe_ui_core_Screen.get_instance().get_width(); var scy = haxe_ui_core_Screen.get_instance().get_height(); if(notification.get_height() > 300) { notification.set_height(300); notification.contentContainer.set_percentHeight(100); notification.bodyContainer.set_percentHeight(100); } var baseline = scy - haxe_ui_notifications_NotificationManager.GUTTER_SIZE; notification.set_left(scx - notification.get_width() - haxe_ui_notifications_NotificationManager.GUTTER_SIZE); notification.set_top(baseline - notification.get_height()); var event = new haxe_ui_events_NotificationEvent(haxe_ui_events_NotificationEvent.SHOWN); event.notification = notification; notification.dispatch(event); _gthis.dispatch(event,notification); _gthis._currentNotifications.splice(0,0,notification); _gthis.positionNotifications(); }); if(notification.get_notificationData().expiryMs > 0) { haxe_ui_util_Timer.delay(function() { _gthis.removeNotification(notification); },notification.get_notificationData().expiryMs); } } ,_isAnimating: null ,positionNotifications: function() { var _gthis = this; if(this._isAnimating == true) { return; } this._isAnimating = true; var sequence = new haxe_ui_animation_AnimationSequence(); var builders = this.animationFn(this._currentNotifications); var _g = 0; while(_g < builders.length) { var builder = builders[_g]; ++_g; sequence.add(builder); } sequence.onComplete = function() { _gthis._isAnimating = false; if(_gthis._removeQueue.length > 0) { _gthis.popNotification(_gthis._removeQueue.shift()); } else if(_gthis._addQueue.length > 0) { _gthis.pushNotification(_gthis._addQueue.shift()); } }; sequence.play(); } ,__class__: haxe_ui_notifications_NotificationManager }); var haxe_ui_notifications_NotificationType = $hxEnums["haxe.ui.notifications.NotificationType"] = { __ename__:"haxe.ui.notifications.NotificationType",__constructs__:null ,Default: {_hx_name:"Default",_hx_index:0,__enum__:"haxe.ui.notifications.NotificationType",toString:$estr} ,Info: {_hx_name:"Info",_hx_index:1,__enum__:"haxe.ui.notifications.NotificationType",toString:$estr} ,Warning: {_hx_name:"Warning",_hx_index:2,__enum__:"haxe.ui.notifications.NotificationType",toString:$estr} ,Error: {_hx_name:"Error",_hx_index:3,__enum__:"haxe.ui.notifications.NotificationType",toString:$estr} ,Success: {_hx_name:"Success",_hx_index:4,__enum__:"haxe.ui.notifications.NotificationType",toString:$estr} }; haxe_ui_notifications_NotificationType.__constructs__ = [haxe_ui_notifications_NotificationType.Default,haxe_ui_notifications_NotificationType.Info,haxe_ui_notifications_NotificationType.Warning,haxe_ui_notifications_NotificationType.Error,haxe_ui_notifications_NotificationType.Success]; haxe_ui_notifications_NotificationType.__empty_constructs__ = [haxe_ui_notifications_NotificationType.Default,haxe_ui_notifications_NotificationType.Info,haxe_ui_notifications_NotificationType.Warning,haxe_ui_notifications_NotificationType.Error,haxe_ui_notifications_NotificationType.Success]; var haxe_ui_parsers_locale_LocaleParser = function() { }; $hxClasses["haxe.ui.parsers.locale.LocaleParser"] = haxe_ui_parsers_locale_LocaleParser; haxe_ui_parsers_locale_LocaleParser.__name__ = "haxe.ui.parsers.locale.LocaleParser"; haxe_ui_parsers_locale_LocaleParser._parsers = null; haxe_ui_parsers_locale_LocaleParser.get = function(extension) { haxe_ui_parsers_locale_LocaleParser.defaultParsers(); var cls = haxe_ui_parsers_locale_LocaleParser._parsers.h[extension]; if(cls == null) { throw haxe_Exception.thrown("No locale parser found for \"" + extension + "\""); } var instance = Type.createInstance(cls,[]); if(instance == null) { throw haxe_Exception.thrown("Could not create locale parser instance \"" + Std.string(cls) + "\""); } return instance; }; haxe_ui_parsers_locale_LocaleParser.defaultParsers = function() { haxe_ui_parsers_locale_LocaleParser.register("properties",haxe_ui_parsers_locale_PropertiesParser); }; haxe_ui_parsers_locale_LocaleParser.register = function(extension,cls) { if(haxe_ui_parsers_locale_LocaleParser._parsers == null) { haxe_ui_parsers_locale_LocaleParser._parsers = new haxe_ds_StringMap(); } haxe_ui_parsers_locale_LocaleParser._parsers.h[extension] = cls; }; haxe_ui_parsers_locale_LocaleParser.prototype = { parse: function(data) { throw haxe_Exception.thrown("Locale parser not implemented!"); } ,__class__: haxe_ui_parsers_locale_LocaleParser }; var haxe_ui_parsers_locale_PropertiesParser = function() { haxe_ui_parsers_locale_LocaleParser.call(this); }; $hxClasses["haxe.ui.parsers.locale.PropertiesParser"] = haxe_ui_parsers_locale_PropertiesParser; haxe_ui_parsers_locale_PropertiesParser.__name__ = "haxe.ui.parsers.locale.PropertiesParser"; haxe_ui_parsers_locale_PropertiesParser.__super__ = haxe_ui_parsers_locale_LocaleParser; haxe_ui_parsers_locale_PropertiesParser.prototype = $extend(haxe_ui_parsers_locale_LocaleParser.prototype,{ parse: function(data) { var result = new haxe_ds_StringMap(); var lines = data.split("\n"); var newLines = []; var _g = 0; while(_g < lines.length) { var line = lines[_g]; ++_g; if(StringTools.trim(line).length == 0 || StringTools.startsWith(StringTools.trim(line),"#")) { continue; } newLines.push(line); } data = newLines.join("\n"); var inValue = false; var propName = ""; var propValue = ""; var _g = 0; var _g1 = data.length; while(_g < _g1) { var i = _g++; var ch = data.charAt(i); switch(ch) { case "\n": var hasSpace = false; var hasEquals = false; var _g2 = i + 1; var _g3 = data.length; while(_g2 < _g3) { var j = _g2++; var ch2 = data.charAt(j); if(ch2 == "=") { hasEquals = true; break; } else if(ch2 == " ") { hasSpace = true; } else if(ch2 == "\n") { break; } } if(hasEquals == true && hasSpace == false) { inValue = false; result.h[propName] = propValue; propName = ""; propValue = ""; } else { propValue += ch; } break; case "=": if(inValue == true) { propValue += ch; } inValue = true; break; default: if(inValue) { propValue += ch; } else { propName += ch; } } } if(propName.length > 0 && propValue.length > 0) { result.h[propName] = propValue; } return result; } ,__class__: haxe_ui_parsers_locale_PropertiesParser }); var haxe_ui_parsers_ui_ComponentInfo = function() { this.properties = new haxe_ds_StringMap(); this.children = []; this.scriptlets = []; this.styles = []; this.validators = []; }; $hxClasses["haxe.ui.parsers.ui.ComponentInfo"] = haxe_ui_parsers_ui_ComponentInfo; haxe_ui_parsers_ui_ComponentInfo.__name__ = "haxe.ui.parsers.ui.ComponentInfo"; haxe_ui_parsers_ui_ComponentInfo.prototype = { filename: null ,namespace: null ,type: null ,id: null ,left: null ,top: null ,width: null ,height: null ,percentWidth: null ,percentHeight: null ,contentWidth: null ,contentHeight: null ,percentContentWidth: null ,percentContentHeight: null ,text: null ,style: null ,styleNames: null ,composite: null ,layoutName: null ,direction: null ,validators: null ,properties: null ,parent: null ,children: null ,layout: null ,scriptlets: null ,styles: null ,data: null ,condition: null ,resolvedClassName: null ,get_styleString: function() { if(this.style == null) { return null; } return StringTools.replace(this.style,"\"","'"); } ,get_dataString: function() { if(this.data == null) { return null; } return StringTools.replace(this.data,"\"","'"); } ,findRootComponent: function() { var r = this; while(r.parent != null) r = r.parent; return r; } ,validate: function() { var propsToRemove = []; if(this.layoutName != null && this.layout == null) { this.layout = new haxe_ui_parsers_ui_LayoutInfo(); this.layout.type = this.layoutName; var h = this.properties.h; var propName_h = h; var propName_keys = Object.keys(h); var propName_length = propName_keys.length; var propName_current = 0; while(propName_current < propName_length) { var propName = propName_keys[propName_current++]; if(StringTools.startsWith(propName,"layout")) { var propValue = this.properties.h[propName]; propsToRemove.push(propName); propName = StringTools.replace(propName,"layout",""); propName = haxe_ui_util_StringUtil.uncapitalizeFirstLetter(propName); this.layout.properties.h[propName] = propValue; } } } var _g = 0; while(_g < propsToRemove.length) { var propName = propsToRemove[_g]; ++_g; var _this = this.properties; if(Object.prototype.hasOwnProperty.call(_this.h,propName)) { delete(_this.h[propName]); } } } ,__class__: haxe_ui_parsers_ui_ComponentInfo ,__properties__: {get_dataString:"get_dataString",get_styleString:"get_styleString"} }; var haxe_ui_parsers_ui_ComponentParserException = function(message,fileName,original,previous,native) { haxe_Exception.call(this,message,previous,native); this.fileName = fileName; this.original = original; this.__skipStack++; }; $hxClasses["haxe.ui.parsers.ui.ComponentParserException"] = haxe_ui_parsers_ui_ComponentParserException; haxe_ui_parsers_ui_ComponentParserException.__name__ = "haxe.ui.parsers.ui.ComponentParserException"; haxe_ui_parsers_ui_ComponentParserException.__super__ = haxe_Exception; haxe_ui_parsers_ui_ComponentParserException.prototype = $extend(haxe_Exception.prototype,{ fileName: null ,original: null ,__class__: haxe_ui_parsers_ui_ComponentParserException }); var haxe_ui_parsers_ui_ComponentParser = function() { }; $hxClasses["haxe.ui.parsers.ui.ComponentParser"] = haxe_ui_parsers_ui_ComponentParser; haxe_ui_parsers_ui_ComponentParser.__name__ = "haxe.ui.parsers.ui.ComponentParser"; haxe_ui_parsers_ui_ComponentParser._parsers = null; haxe_ui_parsers_ui_ComponentParser.get = function(extension) { haxe_ui_parsers_ui_ComponentParser.defaultParsers(); var cls = haxe_ui_parsers_ui_ComponentParser._parsers.h[extension]; if(cls == null) { throw haxe_Exception.thrown("No component parser found for \"" + extension + "\""); } var instance = Type.createInstance(cls,[]); if(instance == null) { throw haxe_Exception.thrown("Could not create component parser instance \"" + Std.string(cls) + "\""); } return instance; }; haxe_ui_parsers_ui_ComponentParser.defaultParsers = function() { if(haxe_ui_parsers_ui_ComponentParser._parsers == null) { haxe_ui_parsers_ui_ComponentParser.register("xml",haxe_ui_parsers_ui_XMLParser); } }; haxe_ui_parsers_ui_ComponentParser.register = function(extension,cls) { if(haxe_ui_parsers_ui_ComponentParser._parsers == null) { haxe_ui_parsers_ui_ComponentParser._parsers = new haxe_ds_StringMap(); } haxe_ui_parsers_ui_ComponentParser._parsers.h[extension] = cls; }; haxe_ui_parsers_ui_ComponentParser.nextId = function(prefix) { if(prefix == null) { prefix = "component"; } var s = prefix + haxe_ui_parsers_ui_ComponentParser._nextId; haxe_ui_parsers_ui_ComponentParser._nextId++; return s; }; haxe_ui_parsers_ui_ComponentParser.float = function(value) { var f = parseFloat(value); if(isNaN(f)) { return 0; } return f; }; haxe_ui_parsers_ui_ComponentParser.isPercentage = function(value) { if(value.indexOf("%") == value.length - 1) { return true; } return false; }; haxe_ui_parsers_ui_ComponentParser.prototype = { _resourceResolver: null ,parse: function(data,resourceResolver,fileName) { throw haxe_Exception.thrown("Component parser not implemented!"); } ,__class__: haxe_ui_parsers_ui_ComponentParser }; var haxe_ui_parsers_ui_ComponentStyleInfo = function(style,scope) { if(scope == null) { scope = "global"; } this.style = null; this.scope = "global"; this.style = style; this.scope = scope; }; $hxClasses["haxe.ui.parsers.ui.ComponentStyleInfo"] = haxe_ui_parsers_ui_ComponentStyleInfo; haxe_ui_parsers_ui_ComponentStyleInfo.__name__ = "haxe.ui.parsers.ui.ComponentStyleInfo"; haxe_ui_parsers_ui_ComponentStyleInfo.prototype = { scope: null ,style: null ,__class__: haxe_ui_parsers_ui_ComponentStyleInfo }; var haxe_ui_parsers_ui_LayoutInfo = function() { this.properties = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.parsers.ui.LayoutInfo"] = haxe_ui_parsers_ui_LayoutInfo; haxe_ui_parsers_ui_LayoutInfo.__name__ = "haxe.ui.parsers.ui.LayoutInfo"; haxe_ui_parsers_ui_LayoutInfo.prototype = { type: null ,properties: null ,__class__: haxe_ui_parsers_ui_LayoutInfo }; var haxe_ui_parsers_ui_ValidatorInfo = function() { this.properties = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.parsers.ui.ValidatorInfo"] = haxe_ui_parsers_ui_ValidatorInfo; haxe_ui_parsers_ui_ValidatorInfo.__name__ = "haxe.ui.parsers.ui.ValidatorInfo"; haxe_ui_parsers_ui_ValidatorInfo.prototype = { type: null ,properties: null ,__class__: haxe_ui_parsers_ui_ValidatorInfo }; var haxe_ui_parsers_ui_XMLParser = function() { this._defaultNamespace = null; this._namespaces = new haxe_ds_StringMap(); haxe_ui_parsers_ui_ComponentParser.call(this); }; $hxClasses["haxe.ui.parsers.ui.XMLParser"] = haxe_ui_parsers_ui_XMLParser; haxe_ui_parsers_ui_XMLParser.__name__ = "haxe.ui.parsers.ui.XMLParser"; haxe_ui_parsers_ui_XMLParser.__super__ = haxe_ui_parsers_ui_ComponentParser; haxe_ui_parsers_ui_XMLParser.prototype = $extend(haxe_ui_parsers_ui_ComponentParser.prototype,{ parse: function(data,resourceResolver,fileName) { this._resourceResolver = resourceResolver; var component = new haxe_ui_parsers_ui_ComponentInfo(); component.filename = fileName; try { data = this.preprocess(data); var xml = Xml.parse(data).firstElement(); this.parseComponent(component,xml,resourceResolver); } catch( _g ) { var _g1 = haxe_Exception.caught(_g); if(((_g1) instanceof haxe_ui_parsers_ui_ComponentParserException)) { var e = _g1; throw new haxe_ui_parsers_ui_ComponentParserException("while parsing \"" + e.fileName + "\": " + e.original.get_message(),e.fileName,e.original,e); } else { var e = _g1; throw new haxe_ui_parsers_ui_ComponentParserException("while parsing \"" + fileName + "\": " + e.get_message(),fileName,e,e); } } return component; } ,_namespaces: null ,_defaultNamespace: null ,preprocess: function(data) { data = StringTools.replace(data,"","]]>"); return data; } ,extractNamespaces: function(xml) { var attrName = xml.attributes(); while(attrName.hasNext()) { var attrName1 = attrName.next(); var attrValue = xml.get(attrName1); if(StringTools.startsWith(attrName1,"xmlns")) { if(attrName1 == "xmlns") { this._defaultNamespace = attrValue; } else if(attrName1.indexOf(":") != -1) { var prefix = StringTools.trim(HxOverrides.substr(attrName1,attrName1.indexOf(":") + 1,null)); this._namespaces.h[prefix] = attrValue; } } } } ,parseComponent: function(component,xml,resourceResolver) { this.extractNamespaces(xml); var isComponent = false; if(xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var nodeName = xml.nodeName; var nodeNamespacePrefix = null; if(nodeName.indexOf(":") != -1) { var n = nodeName.indexOf(":"); nodeNamespacePrefix = HxOverrides.substr(nodeName,0,n); nodeName = HxOverrides.substr(nodeName,n + 1,null); } if(nodeName == "import") { this.parseImportNode(component.parent,xml,resourceResolver); } else if(nodeName == "script") { this.parseScriptNode(component,xml,resourceResolver); } else if(nodeName == "style") { this.parseStyleNode(component,xml,resourceResolver); } else if(nodeName == "data") { if(xml.firstElement() != null) { var tmp = haxe_xml_Printer.print(xml); component.parent.data = StringTools.trim(tmp); } else { var tmp; if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } if(xml.children[0] != null) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var _this = xml.children[0]; if(_this.nodeType == Xml.Document || _this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } tmp = StringTools.startsWith(StringTools.trim(_this.nodeValue),"["); } else { tmp = false; } if(tmp) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var _this = xml.children[0]; if(_this.nodeType == Xml.Document || _this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } component.parent.data = StringTools.trim(_this.nodeValue); } else { component.parent.data = ""; } } } else if(nodeName == "validator") { this.parseValidatorNode(component.parent,xml); } else { this.parseDetails(component,xml); this.parseAttributes(component,xml); var childXml = xml.elements(); while(childXml.hasNext()) { var childXml1 = childXml.next(); var child = new haxe_ui_parsers_ui_ComponentInfo(); child.filename = component.filename; child.parent = component; if(this.parseComponent(child,childXml1,resourceResolver) == true) { component.children.push(child); } } if(component.type == "itemrenderer" && component.parent != null && component.parent.type.toLowerCase() == "listview") { component.parent.properties.h["native"] = "false"; } component.validate(); isComponent = true; } return isComponent; } ,parseImportNode: function(component,xml,resourceResolver) { this.extractNamespaces(xml); if(xml.get("source") != null || xml.get("resource") != null) { var source = xml.get("source"); if(source == null) { source = xml.get("resource"); } var omitRoot = xml.get("omitRoot") == "true"; var sourceData = resourceResolver.getResourceData(source); if(sourceData != null) { var extension = resourceResolver.extension(source); var c = haxe_ui_parsers_ui_ComponentParser.get(extension).parse(sourceData,resourceResolver,source); component.findRootComponent().styles = component.findRootComponent().styles.concat(c.styles); c.styles = []; component.findRootComponent().scriptlets = component.findRootComponent().scriptlets.concat(c.scriptlets); c.scriptlets = []; if(omitRoot == false) { c.parent = component; component.children.push(c); } else { var _g = 0; var _g1 = c.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.parent = component; component.children.push(child); } } } } } ,parseScriptNode: function(component,xml,resourceResolver) { this.extractNamespaces(xml); var scriptText = null; if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } if(xml.children[0] != null) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var _this = xml.children[0]; if(_this.nodeType == Xml.Document || _this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } scriptText = _this.nodeValue; } if(xml.get("source") != null) { var source = xml.get("source"); var sourceData = resourceResolver.getResourceData(source); if(sourceData != null) { if(scriptText == null) { scriptText = ""; } scriptText += "\n" + sourceData; } } if(scriptText != null) { var scope = "global"; if(scope == "global") { component.findRootComponent().scriptlets.push(scriptText); } } } ,parseStyleNode: function(component,xml,resourceResolver) { this.extractNamespaces(xml); var styleText = null; if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } if(xml.children[0] != null) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var _this = xml.children[0]; if(_this.nodeType == Xml.Document || _this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } styleText = _this.nodeValue; } if(xml.get("source") != null) { var source = xml.get("source"); var sourceData = resourceResolver.getResourceData(source); if(sourceData != null) { if(styleText == null) { styleText = ""; } styleText += "\n" + sourceData; } } if(styleText != null) { var scope = xml.get("scope"); if(scope == null) { scope = "global"; } if(scope == "global") { component.findRootComponent().styles.push(new haxe_ui_parsers_ui_ComponentStyleInfo(styleText,scope)); } else if(scope == "local" && component.parent != null) { component.parent.styles.push(new haxe_ui_parsers_ui_ComponentStyleInfo(styleText,scope)); } } } ,parseValidatorNode: function(component,xml) { this.extractNamespaces(xml); var validatorXml = xml; var validator = new haxe_ui_parsers_ui_ValidatorInfo(); validator.type = validatorXml.get("type"); var attrName = validatorXml.attributes(); while(attrName.hasNext()) { var attrName1 = attrName.next(); if(attrName1 == "type") { continue; } var attrValue = validatorXml.get(attrName1); validator.properties.h[attrName1] = attrValue; } if(validator.type != null) { component.validators.push(validator); } } ,parseDetails: function(component,xml) { this.extractNamespaces(xml); var tmp; if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } if(xml.children[0] != null) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var tmp1 = xml.children[0].nodeType; tmp = "" + (tmp1 == null ? "null" : XmlType.toString(tmp1)) == "1"; } else { tmp = false; } if(tmp) { if(xml.nodeType != Xml.Document && xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var _this = xml.children[0]; if(_this.nodeType == Xml.Document || _this.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (_this.nodeType == null ? "null" : XmlType.toString(_this.nodeType))); } var value = StringTools.trim(_this.nodeValue); if(value != null && value.length > 0) { component.text = value; } } if(xml.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (xml.nodeType == null ? "null" : XmlType.toString(xml.nodeType))); } var nodeName = xml.nodeName; var nodeNamespacePrefix = null; var nodeNamespace = this._defaultNamespace; if(nodeName.indexOf(":") != -1) { var n = nodeName.indexOf(":"); nodeNamespacePrefix = HxOverrides.substr(nodeName,0,n); nodeName = HxOverrides.substr(nodeName,n + 1,null); if(Object.prototype.hasOwnProperty.call(this._namespaces.h,nodeNamespacePrefix)) { nodeNamespace = this._namespaces.h[nodeNamespacePrefix]; } } component.type = StringTools.replace(nodeName.toLowerCase(),"-",""); component.namespace = nodeNamespace; } ,parseAttributes: function(component,xml) { var attrName = xml.attributes(); while(attrName.hasNext()) { var attrName1 = attrName.next(); var attrValue = xml.get(attrName1); switch(attrName1) { case "composite": component.composite = attrValue == "true"; break; case "condition": component.condition = attrValue; break; case "contentHeight": if(haxe_ui_parsers_ui_ComponentParser.isPercentage(attrValue) == true) { component.percentContentHeight = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } else { component.contentHeight = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } break; case "contentWidth": if(haxe_ui_parsers_ui_ComponentParser.isPercentage(attrValue) == true) { component.percentContentWidth = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } else { component.contentWidth = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } break; case "direction": component.direction = attrValue; break; case "height": if(haxe_ui_parsers_ui_ComponentParser.isPercentage(attrValue) == true) { component.percentHeight = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } else { component.height = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } break; case "id": component.id = attrValue; break; case "if": var condition = []; var _g = 0; var _g1 = attrValue.split(","); while(_g < _g1.length) { var t = _g1[_g]; ++_g; condition.push("defined(\"" + StringTools.trim(t) + "\") == true"); } component.condition = condition.join(" || "); break; case "layout":case "layoutName": if(attrName1 == "layoutName") { haxe_Log.trace("WARNING: 'layoutName'xml attribute is deprecated, use 'layout' instead (file: " + component.filename + ")",{ fileName : "haxe/ui/parsers/ui/XMLParser.hx", lineNumber : 318, className : "haxe.ui.parsers.ui.XMLParser", methodName : "parseAttributes"}); } component.layoutName = attrValue; break; case "left": component.left = haxe_ui_parsers_ui_ComponentParser.float(attrValue); break; case "style": component.style = attrValue; break; case "styleName":case "styleNames": component.styleNames = attrValue; break; case "text": component.text = attrValue; break; case "top": component.top = haxe_ui_parsers_ui_ComponentParser.float(attrValue); break; case "unless": var condition1 = []; var _g2 = 0; var _g3 = attrValue.split(","); while(_g2 < _g3.length) { var t1 = _g3[_g2]; ++_g2; condition1.push("defined(\"" + StringTools.trim(t1) + "\") == false"); } component.condition = condition1.join(" && "); break; case "validator":case "validators": var parts = attrValue.split(","); var _g4 = 0; while(_g4 < parts.length) { var part = parts[_g4]; ++_g4; part = StringTools.trim(part); if(part.length == 0) { continue; } var validator = new haxe_ui_parsers_ui_ValidatorInfo(); validator.type = part; component.validators.push(validator); } break; case "width": if(haxe_ui_parsers_ui_ComponentParser.isPercentage(attrValue) == true) { component.percentWidth = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } else { component.width = haxe_ui_parsers_ui_ComponentParser.float(attrValue); } break; default: if(StringTools.startsWith(attrName1,"xmlns") == false) { component.properties.h[attrName1] = attrValue; } } } } ,__class__: haxe_ui_parsers_ui_XMLParser }); var haxe_ui_parsers_ui_resolvers_ResourceResolver = function(params) { this._params = params; }; $hxClasses["haxe.ui.parsers.ui.resolvers.ResourceResolver"] = haxe_ui_parsers_ui_resolvers_ResourceResolver; haxe_ui_parsers_ui_resolvers_ResourceResolver.__name__ = "haxe.ui.parsers.ui.resolvers.ResourceResolver"; haxe_ui_parsers_ui_resolvers_ResourceResolver.prototype = { _params: null ,getResourceData: function(r) { return null; } ,extension: function(path) { if(path.indexOf(".") == -1) { return null; } var arr = path.split("."); var extension = arr[arr.length - 1]; return extension; } ,__class__: haxe_ui_parsers_ui_resolvers_ResourceResolver }; var haxe_ui_parsers_ui_resolvers_AssetResourceResolver = function(rootFile,params) { haxe_ui_parsers_ui_resolvers_ResourceResolver.call(this,params); this._rootFile = rootFile; var arr = this._rootFile.split("/"); arr.pop(); this._rootDir = arr.join("/"); if(arr.length > 1) { this._rootDir += "/"; } }; $hxClasses["haxe.ui.parsers.ui.resolvers.AssetResourceResolver"] = haxe_ui_parsers_ui_resolvers_AssetResourceResolver; haxe_ui_parsers_ui_resolvers_AssetResourceResolver.__name__ = "haxe.ui.parsers.ui.resolvers.AssetResourceResolver"; haxe_ui_parsers_ui_resolvers_AssetResourceResolver.__super__ = haxe_ui_parsers_ui_resolvers_ResourceResolver; haxe_ui_parsers_ui_resolvers_AssetResourceResolver.prototype = $extend(haxe_ui_parsers_ui_resolvers_ResourceResolver.prototype,{ _rootFile: null ,_rootDir: null ,getResourceData: function(r) { var f = haxe_io_Path.normalize(this._rootDir + r); return haxe_ui_ToolkitAssets.get_instance().getText(f); } ,__class__: haxe_ui_parsers_ui_resolvers_AssetResourceResolver }); var haxe_ui_styles_CssFilters = function() { }; $hxClasses["haxe.ui.styles.CssFilters"] = haxe_ui_styles_CssFilters; haxe_ui_styles_CssFilters.__name__ = "haxe.ui.styles.CssFilters"; haxe_ui_styles_CssFilters.registerCssFilter = function(name,ctor) { haxe_ui_styles_CssFilters._cssFilters.h[name] = ctor; }; haxe_ui_styles_CssFilters.hasCssFilter = function(name) { return Object.prototype.hasOwnProperty.call(haxe_ui_styles_CssFilters._cssFilters.h,name); }; haxe_ui_styles_CssFilters.getCssFilter = function(name) { return haxe_ui_styles_CssFilters._cssFilters.h[name]; }; var haxe_ui_styles_CssFunctions = function() { }; $hxClasses["haxe.ui.styles.CssFunctions"] = haxe_ui_styles_CssFunctions; haxe_ui_styles_CssFunctions.__name__ = "haxe.ui.styles.CssFunctions"; haxe_ui_styles_CssFunctions.registerCssFunction = function(name,fn) { haxe_ui_styles_CssFunctions._cssFunctions.h[name] = fn; }; haxe_ui_styles_CssFunctions.hasCssFunction = function(name) { return Object.prototype.hasOwnProperty.call(haxe_ui_styles_CssFunctions._cssFunctions.h,name); }; haxe_ui_styles_CssFunctions.getCssFunction = function(name) { return haxe_ui_styles_CssFunctions._cssFunctions.h[name]; }; haxe_ui_styles_CssFunctions.calc = function(vl) { var parser = new hscript_Parser(); var program = parser.parseString(haxe_ui_styles_ValueTools.string(vl[0])); var interp = new hscript_Interp(); return interp.expr(program); }; haxe_ui_styles_CssFunctions.min = function(vl) { var minv = Infinity; var _g = 0; while(_g < vl.length) { var val = vl[_g]; ++_g; var num = haxe_ui_styles_ValueTools.calcDimension(val); if(num == null) { return null; } else if(num < minv) { minv = num; } } return minv; }; haxe_ui_styles_CssFunctions.max = function(vl) { var maxv = -Infinity; var _g = 0; while(_g < vl.length) { var val = vl[_g]; ++_g; var num = haxe_ui_styles_ValueTools.calcDimension(val); if(num == null) { return null; } else if(num > maxv) { maxv = num; } } return maxv; }; haxe_ui_styles_CssFunctions.clamp = function(vl) { var valNum = haxe_ui_styles_ValueTools.calcDimension(vl[0]); var minNum = haxe_ui_styles_ValueTools.calcDimension(vl[1]); var maxNum = haxe_ui_styles_ValueTools.calcDimension(vl[2]); if(valNum == null || minNum == null || maxNum == null) { return null; } else if(valNum < minNum) { return minNum; } else if(valNum > maxNum) { return maxNum; } else { return valNum; } }; haxe_ui_styles_CssFunctions.platformColor = function(vl) { return haxe_ui_core_Platform.get_instance().getColor(haxe_ui_styles_ValueTools.string(vl[0])); }; haxe_ui_styles_CssFunctions.themeIcon = function(vl) { return haxe_ui_themes_ThemeManager.get_instance().image(haxe_ui_styles_ValueTools.string(vl[0])); }; haxe_ui_styles_CssFunctions.rgb = function(vl) { return haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromComponents(haxe_ui_styles_ValueTools.int(vl[0]),haxe_ui_styles_ValueTools.int(vl[1]),haxe_ui_styles_ValueTools.int(vl[2]),0)); }; haxe_ui_styles_CssFunctions.lookup = function(vl) { return haxe_ui_util_Variant.toDynamic(haxe_ui_styles_StyleLookupMap.get_instance().get(haxe_ui_styles_ValueTools.string(vl[0]))); }; haxe_ui_styles_CssFunctions.lighten = function(vl) { var color = haxe_ui_styles_ValueTools.int(vl[0]); var amount = haxe_ui_styles_ValueTools.int(vl[1]); var hsl = haxe_ui_util_ColorUtil.toHSL(color); var diffL = (100 - hsl.l) * amount / 100; var newColor = haxe_ui_util_ColorUtil.fromHSL(hsl.h,hsl.s,hsl.l + diffL); return newColor; }; haxe_ui_styles_CssFunctions.darken = function(vl) { var color = haxe_ui_styles_ValueTools.int(vl[0]); var amount = haxe_ui_styles_ValueTools.int(vl[1]); var hsl = haxe_ui_util_ColorUtil.toHSL(color); var diffL = hsl.l * amount / 100; var newColor = haxe_ui_util_ColorUtil.fromHSL(hsl.h,hsl.s,hsl.l - diffL); return newColor; }; var haxe_ui_styles_Dimension = $hxEnums["haxe.ui.styles.Dimension"] = { __ename__:"haxe.ui.styles.Dimension",__constructs__:null ,PERCENT: ($_=function(value) { return {_hx_index:0,value:value,__enum__:"haxe.ui.styles.Dimension",toString:$estr}; },$_._hx_name="PERCENT",$_.__params__ = ["value"],$_) ,PX: ($_=function(value) { return {_hx_index:1,value:value,__enum__:"haxe.ui.styles.Dimension",toString:$estr}; },$_._hx_name="PX",$_.__params__ = ["value"],$_) ,VW: ($_=function(value) { return {_hx_index:2,value:value,__enum__:"haxe.ui.styles.Dimension",toString:$estr}; },$_._hx_name="VW",$_.__params__ = ["value"],$_) ,VH: ($_=function(value) { return {_hx_index:3,value:value,__enum__:"haxe.ui.styles.Dimension",toString:$estr}; },$_._hx_name="VH",$_.__params__ = ["value"],$_) ,REM: ($_=function(value) { return {_hx_index:4,value:value,__enum__:"haxe.ui.styles.Dimension",toString:$estr}; },$_._hx_name="REM",$_.__params__ = ["value"],$_) ,CALC: ($_=function(s) { return {_hx_index:5,s:s,__enum__:"haxe.ui.styles.Dimension",toString:$estr}; },$_._hx_name="CALC",$_.__params__ = ["s"],$_) }; haxe_ui_styles_Dimension.__constructs__ = [haxe_ui_styles_Dimension.PERCENT,haxe_ui_styles_Dimension.PX,haxe_ui_styles_Dimension.VW,haxe_ui_styles_Dimension.VH,haxe_ui_styles_Dimension.REM,haxe_ui_styles_Dimension.CALC]; haxe_ui_styles_Dimension.__empty_constructs__ = []; var haxe_ui_styles_DirectiveHandler = function() { }; $hxClasses["haxe.ui.styles.DirectiveHandler"] = haxe_ui_styles_DirectiveHandler; haxe_ui_styles_DirectiveHandler.__name__ = "haxe.ui.styles.DirectiveHandler"; haxe_ui_styles_DirectiveHandler.registerDirectiveHandler = function(name,ctor) { haxe_ui_styles_DirectiveHandler._directiveHandlers.h[name] = ctor; }; haxe_ui_styles_DirectiveHandler.hasDirectiveHandler = function(name) { return Object.prototype.hasOwnProperty.call(haxe_ui_styles_DirectiveHandler._directiveHandlers.h,name); }; haxe_ui_styles_DirectiveHandler.getDirectiveHandler = function(name) { var instance = haxe_ui_styles_DirectiveHandler._directiveHandlerInstances.h[name]; if(instance != null) { return instance; } var ctor = haxe_ui_styles_DirectiveHandler._directiveHandlers.h[name]; if(ctor == null) { return null; } instance = ctor(); haxe_ui_styles_DirectiveHandler._directiveHandlerInstances.h[name] = instance; return instance; }; haxe_ui_styles_DirectiveHandler.prototype = { apply: function(component,directive) { } ,__class__: haxe_ui_styles_DirectiveHandler }; var haxe_ui_styles_Parser = function() { }; $hxClasses["haxe.ui.styles.Parser"] = haxe_ui_styles_Parser; haxe_ui_styles_Parser.__name__ = "haxe.ui.styles.Parser"; haxe_ui_styles_Parser.prototype = { parse: function(source) { var _gthis = this; source = source.replace(haxe_ui_styles_Parser.cssCommentsRegex.r,""); if(source.indexOf("$") != -1) { var n1 = source.indexOf("$"); while(n1 != -1) { var n2 = n1; while(n2 <= source.length - 1) { var c = source.charAt(n2); if(c == " " || c == ";" || c == "\n" || c == ",") { break; } ++n2; } if(n2 != source.length - 1) { var key = source.substring(n1 + 1,n2); var value = haxe_ui_themes_ThemeManager.get_instance().currentThemeVars.h[key]; if(value != null) { var before = source.substring(0,n1); var after = source.substring(n2); source = before + value + after; n2 = n1 + value.length; } else { haxe_Log.trace("WARNING: css variable '" + key + "' not defined",{ fileName : "haxe/ui/styles/Parser.hx", lineNumber : 50, className : "haxe.ui.styles.Parser", methodName : "parse"}); } } n1 = source.indexOf("$",n2); } } var styleSheet = new haxe_ui_styles_StyleSheet(); source = haxe_ui_styles_Parser.cssImportStatementRegex.map(source,function(e) { var i = e.matched(0); i = HxOverrides.substr(i,7,null); var _this_r = new RegExp("\"|'|;","g".split("u").join("")); i = i.replace(_this_r,""); i = StringTools.trim(i); styleSheet.addImport(new haxe_ui_styles_elements_ImportElement(i)); return ""; }); source = haxe_ui_styles_Parser.cssKeyframesRegex.map(source,function(e) { var id = e.matched(1); var data = e.matched(2); var keyframes = []; haxe_ui_styles_Parser.cssKeyframeSelectorRegex.map(data,function(e) { var selector = e.matched(1); var directives = e.matched(2); if(selector == "from") { selector = "0%"; } else if(selector == "to") { selector = "100%"; } var keyframe = new haxe_ui_styles_elements_AnimationKeyFrame(); keyframe.time = haxe_ui_styles_ValueTools.parse(selector); keyframe.directives = _gthis.parseDirectives(directives); keyframes.push(keyframe); return null; }); var animation = new haxe_ui_styles_elements_AnimationKeyFrames(id,keyframes); styleSheet.addAnimation(animation); return ""; }); haxe_ui_styles_Parser.combinedCSSMediaRegex.map(source,function(e) { var selector = ""; if(e.matched(2) == null) { selector = StringTools.trim(e.matched(5).split("\r\n").join("\n")); } else { selector = StringTools.trim(e.matched(2).split("\r\n").join("\n")); } selector = selector.replace(haxe_ui_styles_Parser.newlineRegex.r,"\n"); if(selector.indexOf("@media") != -1) { var n1 = selector.indexOf("("); var n2 = selector.lastIndexOf(")"); var mediaQuery = selector.substring(n1 + 1,n2); var mediaStyleSheet = new haxe_ui_styles_Parser().parse(e.matched(3) + "\n}"); var mq = new haxe_ui_styles_elements_MediaQuery(_gthis.parseDirectives(mediaQuery),mediaStyleSheet); styleSheet.addMediaQuery(mq); } else { var directives = _gthis.parseDirectives(e.matched(6)); var selectors = selector.split(","); var _g = 0; while(_g < selectors.length) { var s = selectors[_g]; ++_g; s = StringTools.trim(s); if(s.length > 0) { styleSheet.addRule(new haxe_ui_styles_elements_RuleElement(s,directives)); } } } return null; }); return styleSheet; } ,parseDirectives: function(rulesString) { rulesString = rulesString.split("\r\n").join("\n"); var ret = []; var rules = rulesString.split(";"); var _g = 0; while(_g < rules.length) { var line = rules[_g]; ++_g; var d = this.parseDirective(line); if(d != null) { ret.push(d); } } return ret; } ,parseDirective: function(line) { var d = null; line = StringTools.trim(line); if(line.length == 0) { return null; } if(line.indexOf(":") != -1) { var parts = line.split(":"); var cssDirective = StringTools.trim(parts[0]); var cssValue = StringTools.trim(parts.slice(1).join(":")); if(cssDirective.length < 1 || cssValue.length < 1) { return null; } d = new haxe_ui_styles_elements_Directive(cssDirective,haxe_ui_styles_ValueTools.parse(cssValue)); } else { d = new haxe_ui_styles_elements_Directive("",haxe_ui_styles_ValueTools.parse(line),true); } return d; } ,__class__: haxe_ui_styles_Parser }; var haxe_ui_styles_StyleBorderType = $hxEnums["haxe.ui.styles.StyleBorderType"] = { __ename__:"haxe.ui.styles.StyleBorderType",__constructs__:null ,None: {_hx_name:"None",_hx_index:0,__enum__:"haxe.ui.styles.StyleBorderType",toString:$estr} ,Full: {_hx_name:"Full",_hx_index:1,__enum__:"haxe.ui.styles.StyleBorderType",toString:$estr} ,Compound: {_hx_name:"Compound",_hx_index:2,__enum__:"haxe.ui.styles.StyleBorderType",toString:$estr} }; haxe_ui_styles_StyleBorderType.__constructs__ = [haxe_ui_styles_StyleBorderType.None,haxe_ui_styles_StyleBorderType.Full,haxe_ui_styles_StyleBorderType.Compound]; haxe_ui_styles_StyleBorderType.__empty_constructs__ = [haxe_ui_styles_StyleBorderType.None,haxe_ui_styles_StyleBorderType.Full,haxe_ui_styles_StyleBorderType.Compound]; var haxe_ui_styles_Style = function(left,top,autoWidth,width,percentWidth,minWidth,minPercentWidth,maxWidth,maxPercentWidth,initialWidth,initialPercentWidth,autoHeight,height,percentHeight,minHeight,minPercentHeight,maxHeight,maxPercentHeight,initialHeight,initialPercentHeight,padding,paddingTop,paddingLeft,paddingRight,paddingBottom,marginTop,marginLeft,marginRight,marginBottom,horizontalSpacing,verticalSpacing,color,backgroundColor,backgroundOpacity,backgroundColorEnd,backgroundGradientStyle,backgroundImage,backgroundImageRepeat,backgroundPositionX,backgroundPositionY,backgroundImageClipTop,backgroundImageClipLeft,backgroundImageClipBottom,backgroundImageClipRight,backgroundImageSliceTop,backgroundImageSliceLeft,backgroundImageSliceBottom,backgroundImageSliceRight,borderColor,borderTopColor,borderLeftColor,borderBottomColor,borderRightColor,borderSize,borderTopSize,borderLeftSize,borderBottomSize,borderRightSize,borderRadius,borderRadiusTopLeft,borderRadiusTopRight,borderRadiusBottomLeft,borderRadiusBottomRight,borderOpacity,borderStyle,icon,iconPosition,horizontalAlign,verticalAlign,textAlign,opacity,clip,native,fontName,fontSize,fontBold,fontUnderline,fontItalic,fontStrikeThrough,cursor,cursorOffsetX,cursorOffsetY,hidden,filter,backdropFilter,resource,animationName,animationOptions,mode,pointerEvents,contentType,direction,scaleMode,contentWidth,contentWidthPercent,contentHeight,contentHeightPercent,wordWrap,imageRendering,backgroundWidth,backgroundWidthPercent,backgroundHeight,backgroundHeightPercent,layout,includeInLayout,justifyContent,borderType,hasBorder,fullBorderSize,layoutProperties,customDirectives) { this.customDirectives = null; this.layoutProperties = null; this.left = left; this.top = top; this.autoWidth = autoWidth; this.width = width; this.percentWidth = percentWidth; this.minWidth = minWidth; this.minPercentWidth = minPercentWidth; this.maxWidth = maxWidth; this.maxPercentWidth = maxPercentWidth; this.initialWidth = initialWidth; this.initialPercentWidth = initialPercentWidth; this.autoHeight = autoHeight; this.height = height; this.percentHeight = percentHeight; this.minHeight = minHeight; this.minPercentHeight = minPercentHeight; this.maxHeight = maxHeight; this.maxPercentHeight = maxPercentHeight; this.initialHeight = initialHeight; this.initialPercentHeight = initialPercentHeight; this.padding = padding; this.paddingTop = paddingTop; this.paddingLeft = paddingLeft; this.paddingRight = paddingRight; this.paddingBottom = paddingBottom; this.marginTop = marginTop; this.marginLeft = marginLeft; this.marginRight = marginRight; this.marginBottom = marginBottom; this.horizontalSpacing = horizontalSpacing; this.verticalSpacing = verticalSpacing; this.color = color; this.backgroundColor = backgroundColor; this.backgroundOpacity = backgroundOpacity; this.backgroundColorEnd = backgroundColorEnd; this.backgroundGradientStyle = backgroundGradientStyle; this.backgroundImage = backgroundImage; this.backgroundImageRepeat = backgroundImageRepeat; this.backgroundPositionX = backgroundPositionX; this.backgroundPositionY = backgroundPositionY; this.backgroundImageClipTop = backgroundImageClipTop; this.backgroundImageClipLeft = backgroundImageClipLeft; this.backgroundImageClipBottom = backgroundImageClipBottom; this.backgroundImageClipRight = backgroundImageClipRight; this.backgroundImageSliceTop = backgroundImageSliceTop; this.backgroundImageSliceLeft = backgroundImageSliceLeft; this.backgroundImageSliceBottom = backgroundImageSliceBottom; this.backgroundImageSliceRight = backgroundImageSliceRight; this.borderColor = borderColor; this.borderTopColor = borderTopColor; this.borderLeftColor = borderLeftColor; this.borderBottomColor = borderBottomColor; this.borderRightColor = borderRightColor; this.borderSize = borderSize; this.borderTopSize = borderTopSize; this.borderLeftSize = borderLeftSize; this.borderBottomSize = borderBottomSize; this.borderRightSize = borderRightSize; this.borderRadius = borderRadius; this.borderRadiusTopLeft = borderRadiusTopLeft; this.borderRadiusTopRight = borderRadiusTopRight; this.borderRadiusBottomLeft = borderRadiusBottomLeft; this.borderRadiusBottomRight = borderRadiusBottomRight; this.borderOpacity = borderOpacity; this.borderStyle = borderStyle; this.icon = icon; this.iconPosition = iconPosition; this.horizontalAlign = horizontalAlign; this.verticalAlign = verticalAlign; this.textAlign = textAlign; this.opacity = opacity; this.clip = clip; this.native = native; this.fontName = fontName; this.fontSize = fontSize; this.fontBold = fontBold; this.fontUnderline = fontUnderline; this.fontItalic = fontItalic; this.fontStrikeThrough = fontStrikeThrough; this.cursor = cursor; this.cursorOffsetX = cursorOffsetX; this.cursorOffsetY = cursorOffsetY; this.hidden = hidden; this.filter = filter; this.backdropFilter = backdropFilter; this.resource = resource; this.animationName = animationName; this.animationOptions = animationOptions; this.mode = mode; this.pointerEvents = pointerEvents; this.contentType = contentType; this.direction = direction; this.scaleMode = scaleMode; this.contentWidth = contentWidth; this.contentWidthPercent = contentWidthPercent; this.contentHeight = contentHeight; this.contentHeightPercent = contentHeightPercent; this.wordWrap = wordWrap; this.imageRendering = imageRendering; this.backgroundWidth = backgroundWidth; this.backgroundWidthPercent = backgroundWidthPercent; this.backgroundHeight = backgroundHeight; this.backgroundHeightPercent = backgroundHeightPercent; this.layout = layout; this.includeInLayout = includeInLayout; this.justifyContent = justifyContent; this.borderType = borderType; this.hasBorder = hasBorder; this.fullBorderSize = fullBorderSize; if(layoutProperties != null) { this.layoutProperties = layoutProperties; } if(customDirectives != null) { this.customDirectives = customDirectives; } }; $hxClasses["haxe.ui.styles.Style"] = haxe_ui_styles_Style; haxe_ui_styles_Style.__name__ = "haxe.ui.styles.Style"; haxe_ui_styles_Style.prototype = { left: null ,top: null ,autoWidth: null ,width: null ,percentWidth: null ,minWidth: null ,minPercentWidth: null ,maxWidth: null ,maxPercentWidth: null ,initialWidth: null ,initialPercentWidth: null ,autoHeight: null ,height: null ,percentHeight: null ,minHeight: null ,minPercentHeight: null ,maxHeight: null ,maxPercentHeight: null ,initialHeight: null ,initialPercentHeight: null ,padding: null ,paddingTop: null ,paddingLeft: null ,paddingRight: null ,paddingBottom: null ,set_padding: function(value) { this.paddingTop = value; this.paddingLeft = value; this.paddingRight = value; this.paddingBottom = value; return value; } ,marginTop: null ,marginLeft: null ,marginRight: null ,marginBottom: null ,horizontalSpacing: null ,verticalSpacing: null ,color: null ,backgroundColor: null ,backgroundOpacity: null ,backgroundColorEnd: null ,backgroundGradientStyle: null ,backgroundImage: null ,backgroundImageRepeat: null ,backgroundPositionX: null ,backgroundPositionY: null ,backgroundImageClipTop: null ,backgroundImageClipLeft: null ,backgroundImageClipBottom: null ,backgroundImageClipRight: null ,backgroundImageSliceTop: null ,backgroundImageSliceLeft: null ,backgroundImageSliceBottom: null ,backgroundImageSliceRight: null ,borderColor: null ,borderTopColor: null ,borderLeftColor: null ,borderBottomColor: null ,borderRightColor: null ,borderSize: null ,borderTopSize: null ,borderLeftSize: null ,borderBottomSize: null ,borderRightSize: null ,borderRadius: null ,borderRadiusTopLeft: null ,borderRadiusTopRight: null ,borderRadiusBottomLeft: null ,borderRadiusBottomRight: null ,borderOpacity: null ,borderStyle: null ,icon: null ,iconPosition: null ,horizontalAlign: null ,verticalAlign: null ,textAlign: null ,opacity: null ,clip: null ,native: null ,fontName: null ,fontSize: null ,fontBold: null ,fontUnderline: null ,fontItalic: null ,fontStrikeThrough: null ,cursor: null ,cursorOffsetX: null ,cursorOffsetY: null ,hidden: null ,filter: null ,backdropFilter: null ,resource: null ,animationName: null ,animationOptions: null ,mode: null ,pointerEvents: null ,contentType: null ,direction: null ,scaleMode: null ,contentWidth: null ,contentWidthPercent: null ,contentHeight: null ,contentHeightPercent: null ,wordWrap: null ,imageRendering: null ,backgroundWidth: null ,backgroundWidthPercent: null ,backgroundHeight: null ,backgroundHeightPercent: null ,layout: null ,includeInLayout: null ,justifyContent: null ,borderType: null ,get_borderType: function() { var t = haxe_ui_styles_StyleBorderType.Compound; var hasLeftBorder = this.borderLeftSize != null && this.borderLeftSize > 0; var hasRightBorder = this.borderRightSize != null && this.borderRightSize > 0; var hasTopBorder = this.borderTopSize != null && this.borderTopSize > 0; var hasBottomBorder = this.borderBottomSize != null && this.borderBottomSize > 0; var borderColoursEqual = this.borderLeftColor == this.borderRightColor && this.borderLeftColor == this.borderTopColor && this.borderLeftColor == this.borderBottomColor; if(!hasLeftBorder && !hasRightBorder && !hasTopBorder && !hasBottomBorder) { t = haxe_ui_styles_StyleBorderType.None; } else if(hasLeftBorder && hasRightBorder && hasTopBorder && hasBottomBorder && borderColoursEqual) { this.borderSize = this.borderLeftSize; this.borderColor = this.borderLeftColor; t = haxe_ui_styles_StyleBorderType.Full; } return t; } ,hasBorder: null ,get_hasBorder: function() { return this.get_borderType() != haxe_ui_styles_StyleBorderType.None; } ,fullBorderSize: null ,get_fullBorderSize: function() { if(this.get_borderType() == haxe_ui_styles_StyleBorderType.Full) { return this.borderLeftSize; } return 0; } ,layoutProperties: null ,customDirectives: null ,mergeDirectives: function(map) { var h = map.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var v = map.h[key]; switch(key) { case "animation-delay": if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } this.animationOptions.delay = haxe_ui_styles_ValueTools.time(v.value); break; case "animation-direction": if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } this.animationOptions.direction = haxe_ui_styles_ValueTools.string(v.value); break; case "animation-duration": if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } this.animationOptions.duration = haxe_ui_styles_ValueTools.time(v.value); break; case "animation-fill-mode": if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } this.animationOptions.fillMode = haxe_ui_styles_ValueTools.string(v.value); break; case "animation-iteration-count": if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } var _g = v.value; var tmp; if(_g._hx_index == 6) { var val = _g.v; tmp = val == "infinite" ? -1 : 0; } else { tmp = haxe_ui_styles_ValueTools.int(v.value); } this.animationOptions.iterationCount = tmp; break; case "animation-name": this.animationName = haxe_ui_styles_ValueTools.string(v.value); break; case "animation-timing-function": if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } this.animationOptions.easingFunction = haxe_ui_styles_ValueTools.calcEasing(v.value); break; case "backdrop-filter": this.backdropFilter = this.parseFilter(v.value); break; case "background-color": var _g1 = v.value; this.backgroundColor = haxe_ui_styles_ValueTools.int(v.value); if(Object.prototype.hasOwnProperty.call(map.h,"background-color-end")) { this.backgroundColorEnd = haxe_ui_styles_ValueTools.int(map.h["background-color-end"].value); } else { this.backgroundColorEnd = null; } break; case "background-color-end": this.backgroundColorEnd = haxe_ui_styles_ValueTools.int(v.value); break; case "background-gradient-style": this.backgroundGradientStyle = haxe_ui_styles_ValueTools.string(v.value); break; case "background-height": this.backgroundHeight = haxe_ui_styles_ValueTools.calcDimension(v.value); this.backgroundHeightPercent = haxe_ui_styles_ValueTools.percent(v.value); break; case "background-image": this.backgroundImage = haxe_ui_styles_ValueTools.variant(v.value); break; case "background-image-clip-bottom": this.backgroundImageClipBottom = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-clip-left": this.backgroundImageClipLeft = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-clip-right": this.backgroundImageClipRight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-clip-top": this.backgroundImageClipTop = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-repeat": this.backgroundImageRepeat = haxe_ui_styles_ValueTools.string(v.value); break; case "background-image-slice-bottom": this.backgroundImageSliceBottom = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-slice-left": this.backgroundImageSliceLeft = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-slice-right": this.backgroundImageSliceRight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-image-slice-top": this.backgroundImageSliceTop = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-opacity": this.backgroundOpacity = haxe_ui_styles_ValueTools.float(v.value); break; case "background-position-x": this.backgroundPositionX = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-position-y": this.backgroundPositionY = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "background-width": this.backgroundWidth = haxe_ui_styles_ValueTools.calcDimension(v.value); this.backgroundWidthPercent = haxe_ui_styles_ValueTools.percent(v.value); break; case "border-bottom-color": this.borderBottomColor = haxe_ui_styles_ValueTools.int(v.value); break; case "border-bottom-left-radius": this.borderRadiusBottomLeft = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "border-bottom-right-radius": this.borderRadiusBottomRight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "border-bottom-size":case "border-bottom-width": if(v.value == haxe_ui_styles_Value.VNone) { this.borderBottomSize = 0; } else { this.borderBottomSize = haxe_ui_styles_ValueTools.calcDimension(v.value); } break; case "border-color": this.borderColor = haxe_ui_styles_ValueTools.int(v.value); break; case "border-left-color": this.borderLeftColor = haxe_ui_styles_ValueTools.int(v.value); break; case "border-left-size":case "border-left-width": if(v.value == haxe_ui_styles_Value.VNone) { this.borderLeftSize = 0; } else { this.borderLeftSize = haxe_ui_styles_ValueTools.calcDimension(v.value); } break; case "border-opacity": this.borderOpacity = haxe_ui_styles_ValueTools.float(v.value); break; case "border-radius": this.borderRadius = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "border-right-color": this.borderRightColor = haxe_ui_styles_ValueTools.int(v.value); break; case "border-right-size":case "border-right-width": if(v.value == haxe_ui_styles_Value.VNone) { this.borderRightSize = 0; } else { this.borderRightSize = haxe_ui_styles_ValueTools.calcDimension(v.value); } break; case "border-style": this.borderStyle = haxe_ui_styles_ValueTools.string(v.value); break; case "border-top-color": this.borderTopColor = haxe_ui_styles_ValueTools.int(v.value); break; case "border-top-left-radius": this.borderRadiusTopLeft = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "border-top-right-radius": this.borderRadiusTopRight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "border-top-size":case "border-top-width": if(v.value == haxe_ui_styles_Value.VNone) { this.borderTopSize = 0; } else { this.borderTopSize = haxe_ui_styles_ValueTools.calcDimension(v.value); } break; case "border-size":case "border-width": if(v.value == haxe_ui_styles_Value.VNone) { this.borderSize = 0; this.borderTopSize = 0; this.borderLeftSize = 0; this.borderBottomSize = 0; this.borderRightSize = 0; } else { this.borderSize = haxe_ui_styles_ValueTools.calcDimension(v.value); this.borderTopSize = haxe_ui_styles_ValueTools.calcDimension(v.value); this.borderLeftSize = haxe_ui_styles_ValueTools.calcDimension(v.value); this.borderBottomSize = haxe_ui_styles_ValueTools.calcDimension(v.value); this.borderRightSize = haxe_ui_styles_ValueTools.calcDimension(v.value); } break; case "clip": this.clip = haxe_ui_styles_ValueTools.bool(v.value); break; case "color": this.color = haxe_ui_styles_ValueTools.int(v.value); break; case "content-height": this.contentHeight = haxe_ui_styles_ValueTools.calcDimension(v.value); this.contentHeightPercent = haxe_ui_styles_ValueTools.percent(v.value); break; case "content-type": this.contentType = haxe_ui_styles_ValueTools.string(v.value); break; case "content-width": this.contentWidth = haxe_ui_styles_ValueTools.calcDimension(v.value); this.contentWidthPercent = haxe_ui_styles_ValueTools.percent(v.value); break; case "cursor-name": this.cursorOffsetX = null; this.cursorOffsetY = null; this.cursor = haxe_ui_styles_ValueTools.string(v.value); break; case "cursor-offset-x": this.cursorOffsetX = haxe_ui_styles_ValueTools.int(v.value); break; case "cursor-offset-y": this.cursorOffsetY = haxe_ui_styles_ValueTools.int(v.value); break; case "direction": this.direction = haxe_ui_styles_ValueTools.string(v.value); break; case "display": this.hidden = haxe_ui_styles_ValueTools.none(v.value); break; case "filter": this.filter = this.parseFilter(v.value); break; case "font-bold": this.fontBold = haxe_ui_styles_ValueTools.bool(v.value); break; case "font-family":case "font-name": this.fontName = haxe_ui_styles_ValueTools.string(v.value); break; case "font-italic": this.fontItalic = haxe_ui_styles_ValueTools.bool(v.value); break; case "font-size": this.fontSize = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "font-style": if(haxe_ui_styles_ValueTools.string(v.value) != null) { this.fontItalic = haxe_ui_styles_ValueTools.string(v.value).toLowerCase() == "italic"; } break; case "font-underline": this.fontUnderline = haxe_ui_styles_ValueTools.bool(v.value); break; case "font-weight": if(haxe_ui_styles_ValueTools.string(v.value) != null) { this.fontBold = haxe_ui_styles_ValueTools.string(v.value).toLowerCase() == "bold"; } break; case "height": this.autoHeight = haxe_ui_styles_ValueTools.constant(v.value,"auto"); this.height = haxe_ui_styles_ValueTools.calcDimension(v.value); this.percentHeight = haxe_ui_styles_ValueTools.percent(v.value); break; case "hidden": this.hidden = haxe_ui_styles_ValueTools.bool(v.value); break; case "horizontal-align": this.horizontalAlign = haxe_ui_styles_ValueTools.string(v.value); break; case "horizontal-spacing": this.horizontalSpacing = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "icon": if(v.value._hx_index == 9) { this.icon = haxe_ui_util_Variant.fromString(""); } else { this.icon = haxe_ui_styles_ValueTools.variant(v.value); } break; case "icon-position": this.iconPosition = haxe_ui_styles_ValueTools.string(v.value); break; case "image-rendering": if(v.value._hx_index == 9) { this.imageRendering = null; } else { this.imageRendering = haxe_ui_styles_ValueTools.string(v.value); } break; case "include-in-layout": this.includeInLayout = haxe_ui_styles_ValueTools.bool(v.value); break; case "initial-height": this.initialHeight = haxe_ui_styles_ValueTools.calcDimension(v.value); this.initialPercentHeight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "initial-width": this.initialWidth = haxe_ui_styles_ValueTools.calcDimension(v.value); this.initialPercentWidth = haxe_ui_styles_ValueTools.percent(v.value); break; case "justify-content": this.justifyContent = haxe_ui_styles_ValueTools.string(v.value); break; case "layout": if(v.value._hx_index == 9) { this.layout = null; } else { this.layout = haxe_ui_styles_ValueTools.string(v.value); } break; case "left": this.left = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "margin-bottom": this.marginBottom = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "margin-left": this.marginLeft = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "margin-right": this.marginRight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "margin-top": this.marginTop = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "max-height": this.maxHeight = haxe_ui_styles_ValueTools.calcDimension(v.value); this.maxPercentHeight = haxe_ui_styles_ValueTools.percent(v.value); break; case "max-width": this.maxWidth = haxe_ui_styles_ValueTools.calcDimension(v.value); this.maxPercentWidth = haxe_ui_styles_ValueTools.percent(v.value); break; case "min-height": this.minHeight = haxe_ui_styles_ValueTools.calcDimension(v.value); this.minPercentHeight = haxe_ui_styles_ValueTools.percent(v.value); break; case "min-width": this.minWidth = haxe_ui_styles_ValueTools.calcDimension(v.value); this.minPercentWidth = haxe_ui_styles_ValueTools.percent(v.value); break; case "mode": this.mode = haxe_ui_styles_ValueTools.string(v.value); break; case "native": this.native = haxe_ui_styles_ValueTools.bool(v.value); break; case "opacity": this.opacity = haxe_ui_styles_ValueTools.float(v.value); break; case "padding-bottom": this.paddingBottom = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "padding-left": this.paddingLeft = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "padding-right": this.paddingRight = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "padding-top": this.paddingTop = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "pointer-events": if(v.value._hx_index == 9) { this.pointerEvents = "none"; } else { this.pointerEvents = haxe_ui_styles_ValueTools.string(v.value); } break; case "resource": this.resource = haxe_ui_styles_ValueTools.variant(v.value); break; case "scale-mode": if(haxe_ui_styles_ValueTools.none(v.value)) { this.scaleMode = "none"; } else { this.scaleMode = haxe_ui_styles_ValueTools.string(v.value); } break; case "text-align": this.textAlign = haxe_ui_styles_ValueTools.string(v.value); break; case "text-decoration": if(haxe_ui_styles_ValueTools.string(v.value) != null) { this.fontUnderline = haxe_ui_styles_ValueTools.string(v.value).toLowerCase() == "underline"; this.fontStrikeThrough = haxe_ui_styles_ValueTools.string(v.value).toLowerCase() == "line-through"; } break; case "top": this.top = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "vertical-align": this.verticalAlign = haxe_ui_styles_ValueTools.string(v.value); break; case "vertical-spacing": this.verticalSpacing = haxe_ui_styles_ValueTools.calcDimension(v.value); break; case "width": this.autoWidth = haxe_ui_styles_ValueTools.constant(v.value,"auto"); this.width = haxe_ui_styles_ValueTools.calcDimension(v.value); this.percentWidth = haxe_ui_styles_ValueTools.percent(v.value); break; case "word-wrap": this.wordWrap = haxe_ui_styles_ValueTools.bool(v.value); break; default: if(StringTools.startsWith(key,"layout-")) { var layoutPropName = key.substring("layout-".length); if(this.layoutProperties == null) { this.layoutProperties = new haxe_ds_StringMap(); } var this1 = this.layoutProperties; var value = haxe_ui_styles_ValueTools.any(v.value); this1.h[layoutPropName] = value; } else { var use = Object.prototype.hasOwnProperty.call(haxe_ui_styles_DirectiveHandler._directiveHandlers.h,v.directive); if(use) { if(this.customDirectives == null) { this.customDirectives = new haxe_ds_StringMap(); } if(v.value == null || v.value == haxe_ui_styles_Value.VNone) { var key1 = v.directive; var _this = this.customDirectives; if(Object.prototype.hasOwnProperty.call(_this.h,key1)) { delete(_this.h[key1]); } } else { this.customDirectives.h[v.directive] = v; } } } } } } ,apply: function(s) { if(s.cursor != null) { this.cursor = s.cursor; } if(s.cursorOffsetX != null) { this.cursorOffsetX = s.cursorOffsetX; } if(s.cursorOffsetY != null) { this.cursorOffsetY = s.cursorOffsetY; } if(s.hidden != null) { this.hidden = s.hidden; } if(s.left != null) { this.left = s.left; } if(s.top != null) { this.top = s.top; } if(s.autoWidth != null) { this.autoWidth = s.autoWidth; } if(s.autoHeight != null) { this.autoHeight = s.autoHeight; } if(s.verticalSpacing != null) { this.verticalSpacing = s.verticalSpacing; } if(s.horizontalSpacing != null) { this.horizontalSpacing = s.horizontalSpacing; } if(s.width != null) { this.width = s.width; this.autoWidth = false; } if(s.initialWidth != null) { this.initialWidth = s.initialWidth; } if(s.initialPercentWidth != null) { this.initialPercentWidth = s.initialPercentWidth; } if(s.minWidth != null) { this.minWidth = s.minWidth; } if(s.minPercentWidth != null) { this.minPercentWidth = s.minPercentWidth; } if(s.maxWidth != null) { this.maxWidth = s.maxWidth; } if(s.maxPercentWidth != null) { this.maxPercentWidth = s.maxPercentWidth; } if(s.height != null) { this.height = s.height; this.autoHeight = false; } if(s.initialHeight != null) { this.initialHeight = s.initialHeight; } if(s.initialPercentHeight != null) { this.initialPercentHeight = s.initialPercentHeight; } if(s.minHeight != null) { this.minHeight = s.minHeight; } if(s.minPercentHeight != null) { this.minPercentHeight = s.minPercentHeight; } if(s.maxHeight != null) { this.maxHeight = s.maxHeight; } if(s.maxPercentHeight != null) { this.maxPercentHeight = s.maxPercentHeight; } if(s.percentWidth != null) { this.percentWidth = s.percentWidth; this.autoWidth = false; } if(s.percentHeight != null) { this.percentHeight = s.percentHeight; this.autoHeight = false; } if(s.paddingTop != null) { this.paddingTop = s.paddingTop; } if(s.paddingLeft != null) { this.paddingLeft = s.paddingLeft; } if(s.paddingRight != null) { this.paddingRight = s.paddingRight; } if(s.paddingBottom != null) { this.paddingBottom = s.paddingBottom; } if(s.marginTop != null) { this.marginTop = s.marginTop; } if(s.marginLeft != null) { this.marginLeft = s.marginLeft; } if(s.marginRight != null) { this.marginRight = s.marginRight; } if(s.marginBottom != null) { this.marginBottom = s.marginBottom; } if(s.color != null) { this.color = s.color; } if(s.backgroundColor != null) { this.backgroundColor = s.backgroundColor; this.backgroundColorEnd = null; } if(s.backgroundColorEnd != null) { this.backgroundColorEnd = s.backgroundColorEnd; } if(s.backgroundGradientStyle != null) { this.backgroundGradientStyle = s.backgroundGradientStyle; } if(s.backgroundOpacity != null) { this.backgroundOpacity = s.backgroundOpacity; } if(s.backgroundImage != null) { this.backgroundImage = s.backgroundImage; } if(s.backgroundImageRepeat != null) { this.backgroundImageRepeat = s.backgroundImageRepeat; } if(s.backgroundImageClipTop != null) { this.backgroundImageClipTop = s.backgroundImageClipTop; } if(s.backgroundImageClipLeft != null) { this.backgroundImageClipLeft = s.backgroundImageClipLeft; } if(s.backgroundImageClipBottom != null) { this.backgroundImageClipBottom = s.backgroundImageClipBottom; } if(s.backgroundImageClipRight != null) { this.backgroundImageClipRight = s.backgroundImageClipRight; } if(s.backgroundImageSliceTop != null) { this.backgroundImageSliceTop = s.backgroundImageSliceTop; } if(s.backgroundImageSliceLeft != null) { this.backgroundImageSliceLeft = s.backgroundImageSliceLeft; } if(s.backgroundImageSliceBottom != null) { this.backgroundImageSliceBottom = s.backgroundImageSliceBottom; } if(s.backgroundImageSliceRight != null) { this.backgroundImageSliceRight = s.backgroundImageSliceRight; } if(s.borderColor != null) { this.borderColor = s.borderColor; } if(s.borderTopColor != null) { this.borderTopColor = s.borderTopColor; } if(s.borderLeftColor != null) { this.borderLeftColor = s.borderLeftColor; } if(s.borderBottomColor != null) { this.borderBottomColor = s.borderBottomColor; } if(s.borderRightColor != null) { this.borderRightColor = s.borderRightColor; } if(s.borderSize != null) { this.borderSize = s.borderSize; } if(s.borderTopSize != null) { this.borderTopSize = s.borderTopSize; } if(s.borderLeftSize != null) { this.borderLeftSize = s.borderLeftSize; } if(s.borderBottomSize != null) { this.borderBottomSize = s.borderBottomSize; } if(s.borderRightSize != null) { this.borderRightSize = s.borderRightSize; } if(s.borderRadius != null) { this.borderRadius = s.borderRadius; } if(s.borderRadiusTopLeft != null) { this.borderRadiusTopLeft = s.borderRadiusTopLeft; } if(s.borderRadiusTopRight != null) { this.borderRadiusTopRight = s.borderRadiusTopRight; } if(s.borderRadiusBottomLeft != null) { this.borderRadiusBottomLeft = s.borderRadiusBottomLeft; } if(s.borderRadiusBottomRight != null) { this.borderRadiusBottomRight = s.borderRadiusBottomRight; } if(s.borderOpacity != null) { this.borderOpacity = s.borderOpacity; } if(s.borderStyle != null) { this.borderStyle = s.borderStyle; } if(s.filter != null) { this.filter = s.filter.slice(); } if(s.backdropFilter != null) { this.backdropFilter = s.backdropFilter.slice(); } if(s.resource != null) { this.resource = s.resource; } if(s.icon != null) { this.icon = s.icon; } if(s.iconPosition != null) { this.iconPosition = s.iconPosition; } if(s.horizontalAlign != null) { this.horizontalAlign = s.horizontalAlign; } if(s.verticalAlign != null) { this.verticalAlign = s.verticalAlign; } if(s.textAlign != null) { this.textAlign = s.textAlign; } if(s.opacity != null) { this.opacity = s.opacity; } if(s.clip != null) { this.clip = s.clip; } if(s.native != null) { this.native = s.native; } if(s.fontName != null) { this.fontName = s.fontName; } if(s.fontSize != null) { this.fontSize = s.fontSize; } if(s.fontBold != null) { this.fontBold = s.fontBold; } if(s.fontUnderline != null) { this.fontUnderline = s.fontUnderline; } if(s.fontStrikeThrough != null) { this.fontStrikeThrough = s.fontStrikeThrough; } if(s.fontItalic != null) { this.fontItalic = s.fontItalic; } if(s.animationName != null) { this.animationName = s.animationName; } if(s.animationOptions != null) { if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } if(s.animationOptions.duration != null) { this.animationOptions.duration = s.animationOptions.duration; } if(s.animationOptions.delay != null) { this.animationOptions.delay = s.animationOptions.delay; } if(s.animationOptions.iterationCount != null) { this.animationOptions.iterationCount = s.animationOptions.iterationCount; } if(s.animationOptions.easingFunction != null) { this.animationOptions.easingFunction = s.animationOptions.easingFunction; } if(s.animationOptions.direction != null) { this.animationOptions.direction = s.animationOptions.direction; } if(s.animationOptions.fillMode != null) { this.animationOptions.fillMode = s.animationOptions.fillMode; } } if(s.mode != null) { this.mode = s.mode; } if(s.pointerEvents != null) { this.pointerEvents = s.pointerEvents; } if(s.contentType != null) { this.contentType = s.contentType; } if(s.direction != null) { this.direction = s.direction; } if(s.scaleMode != null) { this.scaleMode = s.scaleMode; } if(s.contentWidth != null) { this.contentWidth = s.contentWidth; } if(s.contentWidthPercent != null) { this.contentWidthPercent = s.contentWidthPercent; } if(s.contentHeight != null) { this.contentHeight = s.contentHeight; } if(s.contentHeightPercent != null) { this.contentHeightPercent = s.contentHeightPercent; } if(s.wordWrap != null) { this.wordWrap = s.wordWrap; } if(s.imageRendering != null) { this.imageRendering = s.imageRendering; } if(s.backgroundWidth != null) { this.backgroundWidth = s.backgroundWidth; } if(s.backgroundWidthPercent != null) { this.backgroundWidthPercent = s.backgroundWidthPercent; } if(s.backgroundHeight != null) { this.backgroundHeight = s.backgroundHeight; } if(s.backgroundHeightPercent != null) { this.backgroundHeightPercent = s.backgroundHeightPercent; } if(s.layout != null) { this.layout = s.layout; } if(s.includeInLayout != null) { this.includeInLayout = s.includeInLayout; } if(s.justifyContent != null) { this.justifyContent = s.justifyContent; } if(s.layoutProperties != null) { if(this.layoutProperties == null) { this.layoutProperties = new haxe_ds_StringMap(); } var h = s.layoutProperties.h; var layoutPropName_h = h; var layoutPropName_keys = Object.keys(h); var layoutPropName_length = layoutPropName_keys.length; var layoutPropName_current = 0; while(layoutPropName_current < layoutPropName_length) { var layoutPropName = layoutPropName_keys[layoutPropName_current++]; var v = s.layoutProperties.h[layoutPropName]; this.layoutProperties.h[layoutPropName] = v; } } if(s.customDirectives != null) { if(this.customDirectives == null) { this.customDirectives = new haxe_ds_StringMap(); } var h = s.customDirectives.h; var directive_h = h; var directive_keys = Object.keys(h); var directive_length = directive_keys.length; var directive_current = 0; while(directive_current < directive_length) { var directive = directive_keys[directive_current++]; var v = s.customDirectives.h[directive]; if(v.value == null || v.value == haxe_ui_styles_Value.VNone) { var _this = this.customDirectives; if(Object.prototype.hasOwnProperty.call(_this.h,directive)) { delete(_this.h[directive]); } } else { this.customDirectives.h[directive] = v; } } } } ,equalTo: function(s) { if(s.backgroundColor != this.backgroundColor) { return false; } if(s.backgroundColorEnd != this.backgroundColorEnd) { return false; } if(s.backgroundGradientStyle != this.backgroundGradientStyle) { return false; } if(s.backgroundOpacity != this.backgroundOpacity) { return false; } if(s.borderColor != this.borderColor) { return false; } if(s.borderTopColor != this.borderTopColor) { return false; } if(s.borderLeftColor != this.borderLeftColor) { return false; } if(s.borderBottomColor != this.borderBottomColor) { return false; } if(s.borderRightColor != this.borderRightColor) { return false; } if(s.borderSize != this.borderSize) { return false; } if(s.borderTopSize != this.borderTopSize) { return false; } if(s.borderLeftSize != this.borderLeftSize) { return false; } if(s.borderBottomSize != this.borderBottomSize) { return false; } if(s.borderRightSize != this.borderRightSize) { return false; } if(s.borderRadius != this.borderRadius) { return false; } if(s.borderRadiusTopLeft != this.borderRadiusTopLeft) { return false; } if(s.borderRadiusTopRight != this.borderRadiusTopRight) { return false; } if(s.borderRadiusBottomLeft != this.borderRadiusBottomLeft) { return false; } if(s.borderRadiusBottomRight != this.borderRadiusBottomRight) { return false; } if(s.borderOpacity != this.borderOpacity) { return false; } if(s.borderStyle != this.borderStyle) { return false; } if(s.color != this.color) { return false; } if(s.cursor != this.cursor) { return false; } if(s.cursorOffsetX != this.cursorOffsetX) { return false; } if(s.cursorOffsetY != this.cursorOffsetY) { return false; } if(s.hidden != this.hidden) { return false; } if(s.left != this.left) { return false; } if(s.top != this.top) { return false; } if(s.autoWidth != this.autoWidth) { return false; } if(s.autoHeight != this.autoHeight) { return false; } if(s.verticalSpacing != this.verticalSpacing) { return false; } if(s.horizontalSpacing != this.horizontalSpacing) { return false; } if(s.width != this.width) { return false; } if(s.initialWidth != this.initialWidth) { return false; } if(s.initialPercentWidth != this.initialPercentWidth) { return false; } if(s.minWidth != this.minWidth) { return false; } if(s.minPercentWidth != this.minPercentWidth) { return false; } if(s.maxWidth != this.maxWidth) { return false; } if(s.maxPercentWidth != this.maxPercentWidth) { return false; } if(s.height != this.height) { return false; } if(s.initialHeight != this.initialHeight) { return false; } if(s.initialPercentHeight != this.initialPercentHeight) { return false; } if(s.minHeight != this.minHeight) { return false; } if(s.minPercentHeight != this.minPercentHeight) { return false; } if(s.maxHeight != this.maxHeight) { return false; } if(s.maxPercentHeight != this.maxPercentHeight) { return false; } if(s.percentWidth != this.percentWidth) { return false; } if(s.percentHeight != this.percentHeight) { return false; } if(s.paddingTop != this.paddingTop) { return false; } if(s.paddingLeft != this.paddingLeft) { return false; } if(s.paddingRight != this.paddingRight) { return false; } if(s.paddingBottom != this.paddingBottom) { return false; } if(s.marginTop != this.marginTop) { return false; } if(s.marginLeft != this.marginLeft) { return false; } if(s.marginRight != this.marginRight) { return false; } if(s.marginBottom != this.marginBottom) { return false; } if(haxe_ui_util_Variant.neq(s.backgroundImage,this.backgroundImage)) { return false; } if(s.backgroundImageRepeat != this.backgroundImageRepeat) { return false; } if(s.backgroundImageClipTop != this.backgroundImageClipTop) { return false; } if(s.backgroundImageClipLeft != this.backgroundImageClipLeft) { return false; } if(s.backgroundImageClipBottom != this.backgroundImageClipBottom) { return false; } if(s.backgroundImageClipRight != this.backgroundImageClipRight) { return false; } if(s.backgroundImageSliceTop != this.backgroundImageSliceTop) { return false; } if(s.backgroundImageSliceLeft != this.backgroundImageSliceLeft) { return false; } if(s.backgroundImageSliceBottom != this.backgroundImageSliceBottom) { return false; } if(s.backgroundImageSliceRight != this.backgroundImageSliceRight) { return false; } if(s.filter != this.filter) { return false; } if(s.backdropFilter != this.backdropFilter) { return false; } if(haxe_ui_util_Variant.neq(s.resource,this.resource)) { return false; } if(haxe_ui_util_Variant.neq(s.icon,this.icon)) { return false; } if(s.iconPosition != this.iconPosition) { return false; } if(s.horizontalAlign != this.horizontalAlign) { return false; } if(s.verticalAlign != this.verticalAlign) { return false; } if(s.textAlign != this.textAlign) { return false; } if(s.opacity != this.opacity) { return false; } if(s.clip != this.clip) { return false; } if(s.native != this.native) { return false; } if(s.fontName != this.fontName) { return false; } if(s.fontSize != this.fontSize) { return false; } if(s.fontBold != this.fontBold) { return false; } if(s.fontUnderline != this.fontUnderline) { return false; } if(s.fontStrikeThrough != this.fontStrikeThrough) { return false; } if(s.fontItalic != this.fontItalic) { return false; } if(haxe_ui_util_Variant.neq(s.resource,this.resource)) { return false; } if(s.animationName != this.animationName) { return false; } if(this.animationOptions != null && this.animationOptions.compareTo(s.animationOptions) == false) { return false; } if(s.mode != this.mode) { return false; } if(s.pointerEvents != this.pointerEvents) { return false; } if(s.contentType != this.contentType) { return false; } if(s.direction != this.direction) { return false; } if(s.scaleMode != this.scaleMode) { return false; } if(s.contentWidth != this.contentWidth) { return false; } if(s.contentWidthPercent != this.contentWidthPercent) { return false; } if(s.contentHeight != this.contentHeight) { return false; } if(s.contentHeightPercent != this.contentHeightPercent) { return false; } if(s.wordWrap != this.wordWrap) { return false; } if(s.imageRendering != this.imageRendering) { return false; } if(s.backgroundWidth != this.backgroundWidth) { return false; } if(s.backgroundWidthPercent != this.backgroundWidthPercent) { return false; } if(s.backgroundHeight != this.backgroundHeight) { return false; } if(s.backgroundHeightPercent != this.backgroundHeightPercent) { return false; } if(s.layout != this.layout) { return false; } if(s.includeInLayout != this.includeInLayout) { return false; } if(s.justifyContent != this.justifyContent) { return false; } if(s.layoutProperties != null && s.layoutProperties != null) { var h = s.layoutProperties.h; var layoutPropName_h = h; var layoutPropName_keys = Object.keys(h); var layoutPropName_length = layoutPropName_keys.length; var layoutPropName_current = 0; while(layoutPropName_current < layoutPropName_length) { var layoutPropName = layoutPropName_h[layoutPropName_keys[layoutPropName_current++]]; if(!Object.prototype.hasOwnProperty.call(this.layoutProperties.h,layoutPropName)) { return false; } } var h = this.layoutProperties.h; var layoutPropName_h = h; var layoutPropName_keys = Object.keys(h); var layoutPropName_length = layoutPropName_keys.length; var layoutPropName_current = 0; while(layoutPropName_current < layoutPropName_length) { var layoutPropName = layoutPropName_h[layoutPropName_keys[layoutPropName_current++]]; if(!Object.prototype.hasOwnProperty.call(s.layoutProperties.h,layoutPropName)) { return false; } } } if(s.customDirectives != null && this.customDirectives != null) { var h = s.customDirectives.h; var directive_h = h; var directive_keys = Object.keys(h); var directive_length = directive_keys.length; var directive_current = 0; while(directive_current < directive_length) { var directive = directive_keys[directive_current++]; if(!Object.prototype.hasOwnProperty.call(this.customDirectives.h,directive)) { return false; } } var h = this.customDirectives.h; var directive_h = h; var directive_keys = Object.keys(h); var directive_length = directive_keys.length; var directive_current = 0; while(directive_current < directive_length) { var directive = directive_keys[directive_current++]; if(!Object.prototype.hasOwnProperty.call(s.customDirectives.h,directive)) { return false; } } } return true; } ,createAnimationOptions: function() { if(this.animationOptions == null) { this.animationOptions = new haxe_ui_styles_animation_AnimationOptions(null,null,null,null,null,null); } } ,parseFilter: function(value,filters) { if(filters == null) { filters = []; } switch(value._hx_index) { case 5: var f = value.f; var vl = value.vl; var arr = haxe_ui_styles_ValueTools.array(vl); arr.splice(0,0,f); var filter = haxe_ui_filters_FilterParser.parseFilter(arr); if(filter != null) { filters.push(filter); } break; case 6: var f = value.v; var filter = haxe_ui_filters_FilterParser.parseFilter([f]); if(filter != null) { filters.push(filter); } break; case 7: var vl = value.vl; var _g = 0; while(_g < vl.length) { var v = vl[_g]; ++_g; this.parseFilter(v,filters); } break; case 9: filters = null; break; default: } return filters; } ,clone: function() { var c = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); c.apply(this); return c; } ,__class__: haxe_ui_styles_Style ,__properties__: {get_fullBorderSize:"get_fullBorderSize",get_hasBorder:"get_hasBorder",get_borderType:"get_borderType",set_padding:"set_padding"} }; var haxe_ui_styles_StyleLookupMap = function() { this._valueMap = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.styles.StyleLookupMap"] = haxe_ui_styles_StyleLookupMap; haxe_ui_styles_StyleLookupMap.__name__ = "haxe.ui.styles.StyleLookupMap"; haxe_ui_styles_StyleLookupMap.__properties__ = {get_instance:"get_instance"}; haxe_ui_styles_StyleLookupMap._instance = null; haxe_ui_styles_StyleLookupMap.instance = null; haxe_ui_styles_StyleLookupMap.get_instance = function() { if(haxe_ui_styles_StyleLookupMap._instance == null) { haxe_ui_styles_StyleLookupMap._instance = new haxe_ui_styles_StyleLookupMap(); } return haxe_ui_styles_StyleLookupMap._instance; }; haxe_ui_styles_StyleLookupMap.prototype = { _valueMap: null ,set: function(name,value) { this._valueMap.h[name] = value; } ,get: function(name) { return this._valueMap.h[name]; } ,remove: function(name) { var _this = this._valueMap; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } } ,__class__: haxe_ui_styles_StyleLookupMap }; var haxe_ui_styles_StyleSheet = function() { this._animations = new haxe_ds_StringMap(); this._mediaQueries = []; this._rules = []; this._imports = []; }; $hxClasses["haxe.ui.styles.StyleSheet"] = haxe_ui_styles_StyleSheet; haxe_ui_styles_StyleSheet.__name__ = "haxe.ui.styles.StyleSheet"; haxe_ui_styles_StyleSheet.prototype = { name: null ,_imports: null ,_rules: null ,_mediaQueries: null ,_animations: null ,get_animations: function() { return this._animations; } ,addImport: function(el) { this._imports.push(el); } ,imports: null ,get_imports: function() { return this._imports; } ,rules: null ,get_rules: function() { var r = this._rules.slice(); var _g = 0; var _g1 = this._mediaQueries; while(_g < _g1.length) { var mq = _g1[_g]; ++_g; if(mq.get_relevant()) { r = r.concat(mq.get_styleSheet().get_rules()); } } return r; } ,hasMediaQueries: null ,get_hasMediaQueries: function() { return this._mediaQueries.length > 0; } ,findRule: function(selector) { var _g = 0; var _g1 = this.get_rules(); while(_g < _g1.length) { var r = _g1[_g]; ++_g; if(r.selector.toString() == selector) { return r; } } return null; } ,findMatchingRules: function(selector) { var m = []; var _g = 0; var _g1 = this.get_rules(); while(_g < _g1.length) { var r = _g1[_g]; ++_g; if(r.selector.toString() == selector) { m.push(r); } } return m; } ,removeRule: function(selector) { var r = this.findRule(selector); if(r != null) { HxOverrides.remove(this._rules,r); } } ,removeAllRules: function() { this._rules = []; } ,clear: function() { this.removeAllRules(); this._imports = []; this._mediaQueries = []; this._animations = new haxe_ds_StringMap(); } ,addRule: function(el) { if(el.directiveCount == 0) { return; } this._rules.push(el); } ,addMediaQuery: function(el) { this._mediaQueries.push(el); } ,addAnimation: function(el) { this._animations.h[el.id] = el; } ,parse: function(css) { var parser = new haxe_ui_styles_Parser(); var ss = parser.parse(css); var f = new haxe_ui_styles_StyleSheet(); var _g = 0; var _g1 = ss.get_imports(); while(_g < _g1.length) { var i = _g1[_g]; ++_g; var importCss = haxe_ui_ToolkitAssets.get_instance().getText(i.url); var importStyleSheet = new haxe_ui_styles_Parser().parse(importCss); f.merge(importStyleSheet); } f.merge(ss); this.merge(f); } ,merge: function(styleSheet) { this._imports = this._imports.concat(styleSheet._imports); this._rules = this._rules.concat(styleSheet._rules); this._mediaQueries = this._mediaQueries.concat(styleSheet._mediaQueries); var h = styleSheet._animations.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; this._animations.h[k] = styleSheet._animations.h[k]; } } ,buildStyleFor: function(c,style) { if(style == null) { style = new haxe_ui_styles_Style(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null); } var _g = 0; var _g1 = this.get_rules(); while(_g < _g1.length) { var r = _g1[_g]; ++_g; if(!r.match(c)) { continue; } style.mergeDirectives(r.directives); } return style; } ,__class__: haxe_ui_styles_StyleSheet ,__properties__: {get_hasMediaQueries:"get_hasMediaQueries",get_rules:"get_rules",get_imports:"get_imports",get_animations:"get_animations"} }; var haxe_ui_styles_Value = $hxEnums["haxe.ui.styles.Value"] = { __ename__:"haxe.ui.styles.Value",__constructs__:null ,VString: ($_=function(v) { return {_hx_index:0,v:v,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VString",$_.__params__ = ["v"],$_) ,VNumber: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VNumber",$_.__params__ = ["v"],$_) ,VBool: ($_=function(v) { return {_hx_index:2,v:v,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VBool",$_.__params__ = ["v"],$_) ,VDimension: ($_=function(v) { return {_hx_index:3,v:v,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VDimension",$_.__params__ = ["v"],$_) ,VColor: ($_=function(v) { return {_hx_index:4,v:v,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VColor",$_.__params__ = ["v"],$_) ,VCall: ($_=function(f,vl) { return {_hx_index:5,f:f,vl:vl,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VCall",$_.__params__ = ["f","vl"],$_) ,VConstant: ($_=function(v) { return {_hx_index:6,v:v,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VConstant",$_.__params__ = ["v"],$_) ,VComposite: ($_=function(vl) { return {_hx_index:7,vl:vl,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VComposite",$_.__params__ = ["vl"],$_) ,VTime: ($_=function(v,unit) { return {_hx_index:8,v:v,unit:unit,__enum__:"haxe.ui.styles.Value",toString:$estr}; },$_._hx_name="VTime",$_.__params__ = ["v","unit"],$_) ,VNone: {_hx_name:"VNone",_hx_index:9,__enum__:"haxe.ui.styles.Value",toString:$estr} }; haxe_ui_styles_Value.__constructs__ = [haxe_ui_styles_Value.VString,haxe_ui_styles_Value.VNumber,haxe_ui_styles_Value.VBool,haxe_ui_styles_Value.VDimension,haxe_ui_styles_Value.VColor,haxe_ui_styles_Value.VCall,haxe_ui_styles_Value.VConstant,haxe_ui_styles_Value.VComposite,haxe_ui_styles_Value.VTime,haxe_ui_styles_Value.VNone]; haxe_ui_styles_Value.__empty_constructs__ = [haxe_ui_styles_Value.VNone]; var haxe_ui_styles_ValueTools = function() { }; $hxClasses["haxe.ui.styles.ValueTools"] = haxe_ui_styles_ValueTools; haxe_ui_styles_ValueTools.__name__ = "haxe.ui.styles.ValueTools"; haxe_ui_styles_ValueTools.parse = function(s) { var v = null; var hasSpace = s.indexOf(" ") != -1; if(StringTools.endsWith(s,"%") == true && hasSpace == false) { v = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PERCENT(parseFloat(s))); } else if(StringTools.endsWith(s,"px") == true && hasSpace == false) { v = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.PX(parseFloat(s))); } else if(StringTools.endsWith(s,"vw") == true && hasSpace == false) { v = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.VW(parseFloat(s))); } else if(StringTools.endsWith(s,"vh") == true && hasSpace == false) { v = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.VH(parseFloat(s))); } else if(StringTools.endsWith(s,"rem") == true && hasSpace == false) { v = haxe_ui_styles_Value.VDimension(haxe_ui_styles_Dimension.REM(parseFloat(s))); } else if(haxe_ui_util_Color.isValidColor(s)) { v = haxe_ui_styles_Value.VColor(haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromString(s))); } else if(s == "none") { v = haxe_ui_styles_Value.VNone; } else if(StringTools.startsWith(s,"\"") && StringTools.endsWith(s,"\"")) { v = haxe_ui_styles_Value.VString(HxOverrides.substr(s,1,s.length - 2)); } else if(StringTools.startsWith(s,"'") && StringTools.endsWith(s,"'")) { v = haxe_ui_styles_Value.VString(HxOverrides.substr(s,1,s.length - 2)); } else if(haxe_ui_styles_ValueTools.isNum(s) == true) { v = haxe_ui_styles_Value.VNumber(parseFloat(s)); } else if(s == "true" || s == "false") { v = haxe_ui_styles_Value.VBool(s == "true"); } else if(haxe_ui_styles_ValueTools.timeEReg.match(s)) { v = haxe_ui_styles_Value.VTime(parseFloat(haxe_ui_styles_ValueTools.timeEReg.matched(1)),haxe_ui_styles_ValueTools.timeEReg.matched(2)); } else if(s.indexOf("(") != -1) { var calls = haxe_ui_styles_ValueTools.extractCalls(s); if(calls.length == 1) { var n = s.indexOf("("); var f = HxOverrides.substr(s,0,n); var params = HxOverrides.substr(s,n + 1,s.length - n - 2); if(f == "calc") { params = "'" + params + "'"; } var vl = []; var _g = 0; var _g1 = haxe_ui_styles_ValueTools.paramsSplitter(params); while(_g < _g1.length) { var p = _g1[_g]; ++_g; p = StringTools.trim(p); vl.push(haxe_ui_styles_ValueTools.parse(p)); } v = haxe_ui_styles_Value.VCall(f,vl); } else { var vl = []; var _g = 0; while(_g < calls.length) { var a = calls[_g]; ++_g; a = StringTools.trim(a); vl.push(haxe_ui_styles_ValueTools.parse(a)); } v = haxe_ui_styles_Value.VComposite(vl); } } else { var arr = s.split(" "); if(arr.length == 1) { v = haxe_ui_styles_Value.VConstant(s); } else { var vl = []; var _g = 0; while(_g < arr.length) { var a = arr[_g]; ++_g; a = StringTools.trim(a); vl.push(haxe_ui_styles_ValueTools.parse(a)); } v = haxe_ui_styles_Value.VComposite(vl); } } return v; }; haxe_ui_styles_ValueTools.paramsSplitter = function(s) { var params = []; var counter = 0; var i = 0; var startParameter = 0; while(i < s.length) { var char = s.charAt(i); if(char == "," && counter == 0) { params.push(s.substring(startParameter,i)); startParameter = i + 1; } if(char == "(") { --counter; } else if(char == ")") { ++counter; } ++i; } params.push(s.substring(startParameter,s.length)); return params; }; haxe_ui_styles_ValueTools.extractCalls = function(s) { var calls = []; var counter = 0; var i = 0; var startCall = 0; var startParams = -1; while(i < s.length) { var char = s.charAt(i); if(char == "(") { if(startParams == -1) { startParams = i; } --counter; } else if(char == ")") { ++counter; } if(startParams != -1 && counter == 0) { var preParams = s.substring(startCall,startParams); var words = preParams.split(" "); var _g = 0; var _g1 = words.length; while(_g < _g1) { var j = _g++; var word = StringTools.trim(words[j]); if(j == words.length - 1) { var func_params = s.substring(startParams,i + 1); calls.push(word + func_params); } else if(word != "") { calls.push(word); } } startCall = i + 1; startParams = -1; } ++i; } return calls; }; haxe_ui_styles_ValueTools.compositeParts = function(value) { if(value == null) { return 0; } if(value._hx_index == 7) { var vl = value.vl; return vl.length; } else { return 0; } }; haxe_ui_styles_ValueTools.composite = function(value) { if(value == null) { return null; } switch(value._hx_index) { case 0: var _g = value.v; return [value]; case 1: var _g = value.v; return [value]; case 3: var _g = value.v; return [value]; case 6: var _g = value.v; return [value]; case 7: var vl = value.vl; return vl; case 9: return []; default: return null; } }; haxe_ui_styles_ValueTools.isNum = function(s) { var b = true; var _g = 0; var _g1 = s.length; while(_g < _g1) { var i = _g++; var c = HxOverrides.cca(s,i); if(!(c >= 48 && c <= 57 || c == 46 || c == 45)) { b = false; break; } } return b; }; haxe_ui_styles_ValueTools.parseColor = function(s) { return haxe_ui_styles_Value.VColor(haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromString(s))); }; haxe_ui_styles_ValueTools.validColor = function(s) { return haxe_ui_util_Color.isValidColor(s); }; haxe_ui_styles_ValueTools.time = function(value) { if(value == null) { return null; } if(value._hx_index == 8) { var v = value.v; var unit = value.unit; switch(unit) { case "ms": return v / 1000; case "s": return v; default: return null; } } else { return null; } }; haxe_ui_styles_ValueTools.variant = function(value) { if(value == null) { return null; } switch(value._hx_index) { case 0: var v = value.v; return haxe_ui_util_Variant.fromDynamic(v); case 1: var v = value.v; return haxe_ui_util_Variant.fromDynamic(v); case 2: var v = value.v; return haxe_ui_util_Variant.fromDynamic(v); case 5: var f = value.f; var vl = value.vl; return haxe_ui_util_Variant.fromDynamic(haxe_ui_styles_ValueTools.call(f,vl)); case 6: var v = value.v; return haxe_ui_util_Variant.fromDynamic(v); default: return null; } }; haxe_ui_styles_ValueTools.string = function(value) { if(value == null) { return null; } switch(value._hx_index) { case 0: var v = value.v; return v; case 2: var v = value.v; if(v == null) { return "null"; } else { return "" + v; } break; case 5: var f = value.f; var vl = value.vl; return haxe_ui_styles_ValueTools.call(f,vl); case 6: var v = value.v; return v; default: return null; } }; haxe_ui_styles_ValueTools.bool = function(value) { if(value == null) { return null; } if(value._hx_index == 2) { var v = value.v; return v; } else { return null; } }; haxe_ui_styles_ValueTools.none = function(value) { if(value == null) { return null; } if(value._hx_index == 9) { return true; } else { return null; } }; haxe_ui_styles_ValueTools.int = function(value) { if(value == null) { return null; } switch(value._hx_index) { case 1: var v = value.v; return v | 0; case 4: var v = value.v; return v; case 5: var f = value.f; var vl = value.vl; return haxe_ui_styles_ValueTools.call(f,vl); case 9: return null; default: return null; } }; haxe_ui_styles_ValueTools.float = function(value) { if(value == null) { return null; } switch(value._hx_index) { case 1: var v = value.v; return v; case 4: var v = value.v; return v; case 9: return null; default: return null; } }; haxe_ui_styles_ValueTools.any = function(v) { if(v == null) { return null; } switch(v._hx_index) { case 0: var v1 = v.v; return v1; case 1: var v1 = v.v; return v1; case 2: var v1 = v.v; return v1; case 3: var _g = v.v; if(_g._hx_index == 1) { var v1 = _g.value; return v1; } else { return null; } break; case 4: var v1 = v.v; return v1; case 5: var f = v.f; var vl = v.vl; return haxe_ui_styles_ValueTools.call(f,vl); case 6: var v1 = v.v; return v1; default: return null; } }; haxe_ui_styles_ValueTools.array = function(vl) { var arr = []; var _g = 0; while(_g < vl.length) { var v = vl[_g]; ++_g; var a = haxe_ui_styles_ValueTools.any(v); if(a != null) { arr.push(a); } } return arr; }; haxe_ui_styles_ValueTools.percent = function(value) { if(value == null) { return null; } if(value._hx_index == 3) { var v = value.v; if(v._hx_index == 0) { var d = v.value; return d; } else { return null; } } else { return null; } }; haxe_ui_styles_ValueTools.constant = function(value,required) { if(value == null) { return false; } if(value._hx_index == 6) { var v = value.v; return v == required; } else { return false; } }; haxe_ui_styles_ValueTools.calcDimension = function(value) { if(value == null) { return null; } switch(value._hx_index) { case 1: var v = value.v; return v; case 3: var v = value.v; switch(v._hx_index) { case 1: var d = v.value; return d; case 2: var d = v.value; return d / 100 * haxe_ui_core_Screen.get_instance().get_width(); case 3: var d = v.value; return d / 100 * haxe_ui_core_Screen.get_instance().get_height(); case 4: var d = v.value; return d * haxe_ui_Toolkit.pixelsPerRem; default: return null; } break; case 5: var f = value.f; var vl = value.vl; return haxe_ui_styles_ValueTools.call(f,vl); case 9: return null; default: return null; } }; haxe_ui_styles_ValueTools.calcEasing = function(value) { switch(value._hx_index) { case 0: var v = value.v; switch(v) { case "ease": return "ease"; case "ease-in": return "easeIn"; case "ease-in-out": return "easeInOut"; case "ease-out": return "easeOut"; case "linear": return "linear"; default: return null; } break; case 6: var v = value.v; switch(v) { case "ease": return "ease"; case "ease-in": return "easeIn"; case "ease-in-out": return "easeInOut"; case "ease-out": return "easeOut"; case "linear": return "linear"; default: return null; } break; default: return null; } }; haxe_ui_styles_ValueTools.call = function(f,vl) { if(!Object.prototype.hasOwnProperty.call(haxe_ui_styles_CssFunctions._cssFunctions.h,f)) { haxe_Log.trace("unknown css function: " + f,{ fileName : "haxe/ui/styles/ValueTools.hx", lineNumber : 443, className : "haxe.ui.styles.ValueTools", methodName : "call"}); return null; } return haxe_ui_styles_CssFunctions._cssFunctions.h[f](vl); }; var haxe_ui_styles_animation_AnimationOptions = function(duration,delay,iterationCount,easingFunction,direction,fillMode) { this.duration = duration; this.delay = delay; this.iterationCount = iterationCount; this.easingFunction = easingFunction; this.direction = direction; this.fillMode = fillMode; }; $hxClasses["haxe.ui.styles.animation.AnimationOptions"] = haxe_ui_styles_animation_AnimationOptions; haxe_ui_styles_animation_AnimationOptions.__name__ = "haxe.ui.styles.animation.AnimationOptions"; haxe_ui_styles_animation_AnimationOptions.prototype = { duration: null ,delay: null ,iterationCount: null ,easingFunction: null ,direction: null ,fillMode: null ,compareTo: function(op) { if(op != null && op.duration == this.duration && op.delay == this.delay && op.iterationCount == this.iterationCount && op.easingFunction == this.easingFunction && op.direction == this.direction) { return op.fillMode == this.fillMode; } else { return false; } } ,compareToAnimation: function(anim) { if((this.duration == null && anim.duration == 0 || this.duration != null && anim.duration == this.duration) && (this.delay == null && anim.delay == 0 || this.delay != null && anim.delay == this.delay) && (this.iterationCount == null && anim.iterationCount == 1 || this.iterationCount != null && anim.iterationCount == this.iterationCount) && (this.easingFunction == null && anim.easingFunction == haxe_ui_styles_animation_AnimationOptions.DEFAULT_EASING_FUNCTION || this.easingFunction != null && anim.easingFunction == this.easingFunction) && (this.direction == null && anim.direction == "normal" || this.direction != null && anim.direction == this.direction)) { if(!(this.fillMode == null && anim.fillMode == "forwards")) { if(this.fillMode != null) { return anim.fillMode == this.fillMode; } else { return false; } } else { return true; } } else { return false; } } ,__class__: haxe_ui_styles_animation_AnimationOptions }; var haxe_ui_styles_animation_Animation = function(target,options) { this._initialized = false; this._currentIterationCount = -1; this._currentKeyFrameIndex = -1; this.iterationCount = 1; this.fillMode = "forwards"; this.easingFunction = haxe_ui_styles_animation_AnimationOptions.DEFAULT_EASING_FUNCTION; this.duration = 0; this.direction = "normal"; this.delay = 0; this.target = target; if(options != null) { if(options.duration != null) { this.duration = options.duration; } if(options.easingFunction != null) { this.easingFunction = options.easingFunction; } if(options.delay != null) { this.delay = options.delay; } if(options.iterationCount != null) { this.iterationCount = options.iterationCount; } if(options.direction != null) { this.direction = options.direction; } if(options.fillMode != null) { this.fillMode = options.fillMode; } } }; $hxClasses["haxe.ui.styles.animation.Animation"] = haxe_ui_styles_animation_Animation; haxe_ui_styles_animation_Animation.__name__ = "haxe.ui.styles.animation.Animation"; haxe_ui_styles_animation_Animation.createWithKeyFrames = function(animationKeyFrames,target,options) { var animation = new haxe_ui_styles_animation_Animation(target,options); animation.name = animationKeyFrames.id; if(animation._keyframes == null) { animation._keyframes = []; } var _g = 0; var _g1 = animationKeyFrames.get_keyFrames(); while(_g < _g1.length) { var keyFrame = _g1[_g]; ++_g; var kf = new haxe_ui_styles_animation_KeyFrame(); var _g2 = keyFrame.time; if(_g2._hx_index == 3) { var v = _g2.v; if(v._hx_index == 0) { var p = v.value; kf.time = p / 100; kf.easingFunction = animation.easingFunction; kf.directives = keyFrame.directives; animation._keyframes.push(kf); } } } return animation; }; haxe_ui_styles_animation_Animation.prototype = { delay: null ,direction: null ,duration: null ,easingFunction: null ,fillMode: null ,iterationCount: null ,name: null ,running: null ,target: null ,run: function(onFinish) { if(this.get_keyframeCount() == 0 || this.running) { return; } if(!this._initialized) { this._initialize(); } this._currentKeyFrameIndex = -1; this._currentIterationCount = 0; this.running = true; this._saveState(); this._runNextKeyframe(onFinish); } ,stop: function() { if(this.running == false) { return; } this.running = false; var currentKF = this.get_currentKeyFrame(); if(currentKF != null) { currentKF.stop(); this._currentKeyFrameIndex = -1; } this._keyframes = null; this._restoreState(); } ,_currentKeyFrameIndex: null ,_currentIterationCount: null ,_initialState: null ,_initialized: null ,_keyframes: null ,get_keyframeCount: function() { if(this._keyframes == null) { return 0; } else { return this._keyframes.length; } } ,get_currentKeyFrame: function() { if(this._currentKeyFrameIndex >= 0) { return this._keyframes[this._currentKeyFrameIndex]; } else { return null; } } ,_initialize: function() { switch(this.direction) { case "alternate": this._addAlternateKeyframes(); break; case "alternate-reverse": this._reverseCurrentKeyframes(); this._addAlternateKeyframes(); break; case "normal": break; case "reverse": this._reverseCurrentKeyframes(); break; } var currentTime = 0; var _g = 0; var _g1 = this._keyframes; while(_g < _g1.length) { var keyframe = _g1[_g]; ++_g; switch(this.direction) { case "alternate":case "normal": break; case "alternate-reverse":case "reverse": keyframe.time = 1 - keyframe.time; break; } keyframe.time = this.duration * keyframe.time - currentTime; currentTime += keyframe.time; } if(this.delay > 0) { var keyframe = new haxe_ui_styles_animation_KeyFrame(); keyframe.time = this.delay; keyframe.easingFunction = this.easingFunction; this._keyframes.unshift(keyframe); } else if(this.delay < 0) { currentTime = 0; var lastKeyframe = null; while(this._keyframes.length > 0) { var keyframe = this._keyframes[0]; currentTime -= keyframe.time; if(currentTime >= this.delay) { lastKeyframe = keyframe; this._keyframes.splice(0,1); } else { keyframe.delay = -(currentTime - this.delay + keyframe.time); if(lastKeyframe != null) { lastKeyframe.time = 0; this._keyframes.unshift(lastKeyframe); } break; } } } this._initialized = true; } ,_runNextKeyframe: function(onFinish) { if(this.running == false) { return; } if(++this._currentKeyFrameIndex >= this._keyframes.length) { this._currentKeyFrameIndex = -1; this._restoreState(); if(this.iterationCount == -1 || ++this._currentIterationCount < this.iterationCount) { this._saveState(); this._runNextKeyframe(onFinish); } else { this.running = false; if(onFinish != null) { onFinish(); } } return; } else { var _g = this; var onFinish1 = onFinish; var tmp = function() { _g._runNextKeyframe(onFinish1); }; this.get_currentKeyFrame().run(this.target,tmp); } } ,_addAlternateKeyframes: function() { var i = this._keyframes.length; while(--i >= 0) { var keyframe = this._keyframes[i]; var newKeyframe = new haxe_ui_styles_animation_KeyFrame(); newKeyframe.time = 1 - keyframe.time; newKeyframe.easingFunction = this._getReverseEasingFunction(keyframe.easingFunction); newKeyframe.directives = keyframe.directives; this._keyframes.push(newKeyframe); } } ,_reverseCurrentKeyframes: function() { this._keyframes.reverse(); var func = this._getReverseEasingFunction(this.easingFunction); var _g = 0; var _g1 = this._keyframes; while(_g < _g1.length) { var keyframe = _g1[_g]; ++_g; keyframe.easingFunction = func; } } ,_getReverseEasingFunction: function(easingFunction) { switch(easingFunction) { case "easeIn": return "easeOut"; case "easeOut": return "easeIn"; default: return easingFunction; } } ,_saveState: function() { if(!this._shouldRestoreState()) { return; } if(this._initialState == null) { this._initialState = new haxe_ds_StringMap(); } var _g = 0; var _g1 = this._keyframes; while(_g < _g1.length) { var keyframe = _g1[_g]; ++_g; var _g2 = 0; var _g3 = keyframe.directives; while(_g2 < _g3.length) { var directive = _g3[_g2]; ++_g2; var property = haxe_ui_util_StyleUtil.styleProperty2ComponentProperty(directive.directive); if(!Object.prototype.hasOwnProperty.call(this._initialState.h,property)) { var this1 = this._initialState; var value = Reflect.getProperty(this.target,property); this1.h[property] = value; } } } } ,_restoreState: function() { if(!this._shouldRestoreState()) { return; } if(this._initialState != null) { var h = this._initialState.h; var property_h = h; var property_keys = Object.keys(h); var property_length = property_keys.length; var property_current = 0; while(property_current < property_length) { var property = property_keys[property_current++]; Reflect.setProperty(this.target,property,this._initialState.h[property]); } this._initialState = null; } } ,_shouldRestoreState: function() { if(!(this.fillMode == "none" || this.fillMode == "forwards" && this.direction != "normal" && this.direction != "alternate")) { if(this.fillMode == "backwards" && this.direction != "reverse") { return this.direction != "alternate-reverse"; } else { return false; } } else { return true; } } ,__class__: haxe_ui_styles_animation_Animation ,__properties__: {get_keyframeCount:"get_keyframeCount",get_currentKeyFrame:"get_currentKeyFrame"} }; var haxe_ui_styles_animation_KeyFrame = function() { this.delay = 0; this.time = 0; this.directives = []; }; $hxClasses["haxe.ui.styles.animation.KeyFrame"] = haxe_ui_styles_animation_KeyFrame; haxe_ui_styles_animation_KeyFrame.__name__ = "haxe.ui.styles.animation.KeyFrame"; haxe_ui_styles_animation_KeyFrame.prototype = { directives: null ,time: null ,delay: null ,easingFunction: null ,_actuator: null ,stop: function() { if(this._actuator != null) { this._actuator.stop(); this._actuator = null; } } ,run: function(target,cb) { var _gthis = this; if(this._actuator != null) { return; } var properties = { }; var _g = 0; var _g1 = this.directives; while(_g < _g1.length) { var d = _g1[_g]; ++_g; properties[d.directive] = d.value; } var hasFrameEvent = target.hasEvent(haxe_ui_events_AnimationEvent.FRAME); this._actuator = new haxe_ui_styles_animation_util_Actuator(target,properties,this.time,new haxe_ui_styles_animation_util_ActuatorOptions(this.delay,this.easingFunction,function() { _gthis._actuator = null; cb(); },function(time,delta,position) { if(hasFrameEvent) { var event = new haxe_ui_events_AnimationEvent(haxe_ui_events_AnimationEvent.FRAME); event.currentTime = time; event.delta = delta; event.position = position; target.dispatch(event); } })); this._actuator.run(); } ,__class__: haxe_ui_styles_animation_KeyFrame }; var haxe_ui_styles_animation_util_ActuatorOptions = function(delay,easingFunction,onComplete,onUpdate) { this.delay = delay; this.easingFunction = easingFunction; this.onComplete = onComplete; this.onUpdate = onUpdate; }; $hxClasses["haxe.ui.styles.animation.util.ActuatorOptions"] = haxe_ui_styles_animation_util_ActuatorOptions; haxe_ui_styles_animation_util_ActuatorOptions.__name__ = "haxe.ui.styles.animation.util.ActuatorOptions"; haxe_ui_styles_animation_util_ActuatorOptions.prototype = { delay: null ,easingFunction: null ,onComplete: null ,onUpdate: null ,__class__: haxe_ui_styles_animation_util_ActuatorOptions }; var haxe_ui_styles_animation_util_Actuator = function(target,properties,duration,options) { this.delay = 0; this.duration = 0; this.target = target; this.properties = properties; this.duration = duration; if(options != null) { this._easeFunc = haxe_ui_styles_animation_util__$Actuator_Ease.get(options.easingFunction != null ? options.easingFunction : "ease"); if(options.delay != null) { this.delay = options.delay; } if(options.onComplete != null) { this._onComplete = options.onComplete; } if(options.onUpdate != null) { this._onUpdate = options.onUpdate; } } }; $hxClasses["haxe.ui.styles.animation.util.Actuator"] = haxe_ui_styles_animation_util_Actuator; haxe_ui_styles_animation_util_Actuator.__name__ = "haxe.ui.styles.animation.util.Actuator"; haxe_ui_styles_animation_util_Actuator.tween = function(target,properties,duration,options) { var actuator = new haxe_ui_styles_animation_util_Actuator(target,properties,duration,options); actuator.run(); return actuator; }; haxe_ui_styles_animation_util_Actuator.registerFrameCallback = function(fn) { haxe_ui_styles_animation_util_Actuator.frameCallbacks.push(fn); if(haxe_ui_styles_animation_util_Actuator.dispatchingFrameCallbacks == false) { haxe_ui_styles_animation_util_Actuator.dispatchingFrameCallbacks = true; haxe_ui_styles_animation_util_Actuator.processCallbacks(); } }; haxe_ui_styles_animation_util_Actuator.unregisterFrameCallback = function(fn) { new haxe_ui_CallLater(function() { HxOverrides.remove(haxe_ui_styles_animation_util_Actuator.frameCallbacks,fn); if(haxe_ui_styles_animation_util_Actuator.frameCallbacks.length == 0) { haxe_ui_styles_animation_util_Actuator.dispatchingFrameCallbacks = false; } }); }; haxe_ui_styles_animation_util_Actuator.processCallbacks = function() { if(haxe_ui_styles_animation_util_Actuator.dispatchingFrameCallbacks == false) { return; } new haxe_ui_CallLater(function() { var stamp = new Date().getTime() / 1000; var _g = 0; var _g1 = haxe_ui_styles_animation_util_Actuator.frameCallbacks; while(_g < _g1.length) { var cb = _g1[_g]; ++_g; cb(stamp); } haxe_ui_styles_animation_util_Actuator.processCallbacks(); }); }; haxe_ui_styles_animation_util_Actuator.prototype = { target: null ,properties: null ,duration: null ,delay: null ,stop: function() { this._stopped = true; this.target = null; } ,run: function() { var _gthis = this; this._initialize(); this._stopped = false; if(((this.target) instanceof haxe_ui_core_Component) && (js_Boot.__cast(this.target , haxe_ui_core_Component)).get_animatable() == false) { this.duration = 0; } if(this.duration == 0) { this._apply(1); this._finish(); } else { var v = new Date().getTime() / 1000; var precision = 2; if(precision == null) { precision = 0; } this._currentTime = Math.round(v * Math.pow(10,precision)) / Math.pow(10,precision); if(this.delay > 0) { haxe_ui_util_Timer.delay(function() { haxe_ui_styles_animation_util_Actuator.registerFrameCallback($bind(_gthis,_gthis._nextFrame)); },this.delay * 1000 | 0); } else { haxe_ui_styles_animation_util_Actuator.registerFrameCallback($bind(this,this._nextFrame)); } } } ,_currentTime: null ,_easeFunc: null ,_onComplete: null ,_onUpdate: null ,_stopped: null ,_propertyDetails: null ,_colorPropertyDetails: null ,_stringPropertyDetails: null ,_initialize: function() { if(this._isValid() == false) { this.stop(); return; } this._propertyDetails = []; this._colorPropertyDetails = []; this._stringPropertyDetails = []; var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var p = _g1[_g]; ++_g; var componentProperty = haxe_ui_util_StyleUtil.styleProperty2ComponentProperty(p); var end = Reflect.getProperty(this.properties,p); if(end._hx_index == 3) { var _g2 = end.v; if(_g2._hx_index == 0) { var v = _g2.value; componentProperty = "percent" + haxe_ui_util_StringUtil.capitalizeFirstLetter(componentProperty); } } var start = Reflect.getProperty(this.target,componentProperty); if(start == null) { switch(end._hx_index) { case 0: var v1 = end.v; start = v1; break; case 1: var v2 = end.v; start = 0; break; case 3: var _g3 = end.v; if(_g3._hx_index == 0) { var v3 = _g3.value; start = 0; } break; default: } } var isVariant = false; if(start != null) { try { if(start._hx_index == 2) { var v4 = start.s; start = v4; isVariant = true; } } catch( _g4 ) { haxe_NativeStackTrace.lastError = _g4; } } if(end != null) { try { if(end._hx_index == 2) { var v5 = end.s; end = v5; isVariant = true; } } catch( _g5 ) { haxe_NativeStackTrace.lastError = _g5; } } if(start == null || end == null) { continue; } switch(end._hx_index) { case 0: var v6 = end.v; var startVal = start; var endVal = haxe_ui_styles_ValueTools.string(end); if(endVal.indexOf("[[") != -1) { var n1 = endVal.indexOf("[["); var n2 = endVal.indexOf("]]") + 2; var before = HxOverrides.substr(endVal,0,n1); var after = HxOverrides.substr(endVal,n2,null); var s = StringTools.replace(startVal,before,""); s = StringTools.replace(s,after,""); var startInt = Std.parseInt(s); var s1 = StringTools.replace(endVal,before + "[[",""); s1 = StringTools.replace(s1,"]]" + after,""); var endInt = Std.parseInt(s1); var details = new haxe_ui_styles_animation_util_StringPropertyDetails(this.target,componentProperty,startVal,endVal); details.pattern = before + "[[n]]" + after; details.startInt = startInt; details.changeInt = endInt - startInt; var c = js_Boot.getClass(this.target); var typeInfo = haxe_ui_core_TypeMap.getTypeInfo(c.__name__,componentProperty); if(typeInfo != null && isVariant == false && typeInfo == "Variant") { isVariant = true; } details.isVariant = isVariant; this._stringPropertyDetails.push(details); } else { var details1 = new haxe_ui_styles_animation_util_StringPropertyDetails(this.target,componentProperty,startVal,endVal); this._stringPropertyDetails.push(details1); } break; case 3: var _g6 = end.v; if(_g6._hx_index == 0) { var v7 = _g6.value; var val = v7; if(val != null) { var details2 = new haxe_ui_styles_animation_util_PropertyDetails(this.target,componentProperty,start,val - start); this._propertyDetails.push(details2); } } else { var val1 = haxe_ui_styles_ValueTools.calcDimension(end); if(val1 != null) { var details3 = new haxe_ui_styles_animation_util_PropertyDetails(this.target,componentProperty,start,val1 - start); this._propertyDetails.push(details3); } else { var details4 = new haxe_ui_styles_animation_util_PropertyDetails(this.target,componentProperty,start,end - start); this._propertyDetails.push(details4); } } break; case 4: var v8 = end.v; var startColor = js_Boot.__cast(start , Int); var endColor = v8; var details5 = new haxe_ui_styles_animation_util_ColorPropertyDetails(this.target,componentProperty,startColor,(endColor >> 16 & 255) - (startColor >> 16 & 255),(endColor >> 8 & 255) - (startColor >> 8 & 255),(endColor & 255) - (startColor & 255),(endColor >> 24 & 255) - (startColor >> 24 & 255)); if(this._colorPropertyDetails == null) { this._colorPropertyDetails = []; } this._colorPropertyDetails.push(details5); break; default: var val2 = haxe_ui_styles_ValueTools.calcDimension(end); if(val2 != null) { var details6 = new haxe_ui_styles_animation_util_PropertyDetails(this.target,componentProperty,start,val2 - start); this._propertyDetails.push(details6); } else { var details7 = new haxe_ui_styles_animation_util_PropertyDetails(this.target,componentProperty,start,end - start); this._propertyDetails.push(details7); } } } } ,_nextFrame: function(stamp) { if(this._stopped == true) { return; } var currentTime = stamp; var delta = currentTime - this._currentTime; if(this.delay < 0) { delta += -this.delay; } var tweenPosition = delta / this.duration; if(tweenPosition > 1) { tweenPosition = 1; } this._apply(tweenPosition); if(this._onUpdate != null) { this._onUpdate(currentTime,delta,tweenPosition); } if(delta >= this.duration) { this._finish(); } } ,_isValid: function() { if(this.target == null) { return false; } if(((this.target) instanceof haxe_ui_core_Component)) { var c = this.target; if(c._isDisposed == true) { return false; } } return true; } ,_apply: function(position) { if(this._isValid() == false) { this.stop(); return; } position = this._easeFunc(position); var _g = 0; var _g1 = this._propertyDetails; while(_g < _g1.length) { var details = _g1[_g]; ++_g; var newPos = details.start + details.change * position; Reflect.setProperty(this.target,details.propertyName,newPos); details.lastValue = newPos; } var _g = 0; var _g1 = this._stringPropertyDetails; while(_g < _g1.length) { var details = _g1[_g]; ++_g; if(details.pattern != null) { var newInt = details.startInt + position * details.changeInt | 0; var newString = StringTools.replace(details.pattern,"[[n]]","" + newInt); if(details.isVariant) { var v = haxe_ui_util_Variant.fromString(newString); Reflect.setProperty(this.target,details.propertyName,v); } else { Reflect.setProperty(this.target,details.propertyName,newString); } } else if(position != 1) { Reflect.setProperty(this.target,details.propertyName,details.start); } else { Reflect.setProperty(this.target,details.propertyName,details.end); } } var _g = 0; var _g1 = this._colorPropertyDetails; while(_g < _g1.length) { var details = _g1[_g]; ++_g; var currentColor = haxe_ui_util_Color.fromComponents((details.start >> 16 & 255) + details.changeR * position | 0,(details.start >> 8 & 255) + details.changeG * position | 0,(details.start & 255) + details.changeB * position | 0,(details.start >> 24 & 255) + details.changeA * position | 0); Reflect.setProperty(details.target,details.propertyName,currentColor); } } ,_finish: function() { this._stopped = true; this.target = null; haxe_ui_styles_animation_util_Actuator.unregisterFrameCallback($bind(this,this._nextFrame)); if(this._onComplete != null) { this._onComplete(); } } ,__class__: haxe_ui_styles_animation_util_Actuator }; var haxe_ui_styles_animation_util__$Actuator_Ease = function() { }; $hxClasses["haxe.ui.styles.animation.util._Actuator.Ease"] = haxe_ui_styles_animation_util__$Actuator_Ease; haxe_ui_styles_animation_util__$Actuator_Ease.__name__ = "haxe.ui.styles.animation.util._Actuator.Ease"; haxe_ui_styles_animation_util__$Actuator_Ease.get = function(easingFunction) { switch(easingFunction) { case "easeIn": return haxe_ui_styles_animation_util__$Actuator_Ease.easeIn; case "ease":case "easeInOut": return haxe_ui_styles_animation_util__$Actuator_Ease.easeInOut; case "easeOut": return haxe_ui_styles_animation_util__$Actuator_Ease.easeOut; case "linear": return haxe_ui_styles_animation_util__$Actuator_Ease.linear; } }; haxe_ui_styles_animation_util__$Actuator_Ease.linear = function(k) { return k; }; haxe_ui_styles_animation_util__$Actuator_Ease.easeIn = function(k) { return k * k * k; }; haxe_ui_styles_animation_util__$Actuator_Ease.easeOut = function(k) { return --k * k * k + 1; }; haxe_ui_styles_animation_util__$Actuator_Ease.easeInOut = function(k) { if((k /= 0.5) < 1) { return 0.5 * k * k * k; } else { return 0.5 * ((k -= 2) * k * k + 2); } }; var haxe_ui_styles_animation_util_ColorPropertyDetails = function(target,propertyName,start,changeR,changeG,changeB,changeA) { this.target = target; this.propertyName = propertyName; this.start = start; this.changeR = changeR; this.changeG = changeG; this.changeB = changeB; this.changeA = changeA; }; $hxClasses["haxe.ui.styles.animation.util.ColorPropertyDetails"] = haxe_ui_styles_animation_util_ColorPropertyDetails; haxe_ui_styles_animation_util_ColorPropertyDetails.__name__ = "haxe.ui.styles.animation.util.ColorPropertyDetails"; haxe_ui_styles_animation_util_ColorPropertyDetails.prototype = { changeR: null ,changeG: null ,changeB: null ,changeA: null ,propertyName: null ,start: null ,target: null ,__class__: haxe_ui_styles_animation_util_ColorPropertyDetails }; var haxe_ui_styles_animation_util_PropertyDetails = function(target,propertyName,start,change) { this.lastValue = null; this.target = target; this.propertyName = propertyName; this.start = start; this.change = change; }; $hxClasses["haxe.ui.styles.animation.util.PropertyDetails"] = haxe_ui_styles_animation_util_PropertyDetails; haxe_ui_styles_animation_util_PropertyDetails.__name__ = "haxe.ui.styles.animation.util.PropertyDetails"; haxe_ui_styles_animation_util_PropertyDetails.prototype = { change: null ,propertyName: null ,start: null ,target: null ,lastValue: null ,__class__: haxe_ui_styles_animation_util_PropertyDetails }; var haxe_ui_styles_animation_util_StringPropertyDetails = function(target,propertyName,start,end) { this.isVariant = false; this.pattern = null; this.target = target; this.propertyName = propertyName; this.start = start; this.end = end; }; $hxClasses["haxe.ui.styles.animation.util.StringPropertyDetails"] = haxe_ui_styles_animation_util_StringPropertyDetails; haxe_ui_styles_animation_util_StringPropertyDetails.__name__ = "haxe.ui.styles.animation.util.StringPropertyDetails"; haxe_ui_styles_animation_util_StringPropertyDetails.prototype = { propertyName: null ,start: null ,end: null ,target: null ,startInt: null ,changeInt: null ,pattern: null ,isVariant: null ,__class__: haxe_ui_styles_animation_util_StringPropertyDetails }; var haxe_ui_styles_elements_AnimationKeyFrame = function() { }; $hxClasses["haxe.ui.styles.elements.AnimationKeyFrame"] = haxe_ui_styles_elements_AnimationKeyFrame; haxe_ui_styles_elements_AnimationKeyFrame.__name__ = "haxe.ui.styles.elements.AnimationKeyFrame"; haxe_ui_styles_elements_AnimationKeyFrame.prototype = { time: null ,directives: null ,set: function(directive) { var found = false; var _g = 0; var _g1 = this.directives; while(_g < _g1.length) { var d = _g1[_g]; ++_g; if(d.directive == directive.directive) { d.value = directive.value; found = true; } } if(found == false) { this.directives.push(directive); } } ,find: function(id) { var _g = 0; var _g1 = this.directives; while(_g < _g1.length) { var d = _g1[_g]; ++_g; if(d.directive == id) { return d; } } return null; } ,clear: function() { this.directives = []; } ,__class__: haxe_ui_styles_elements_AnimationKeyFrame }; var haxe_ui_styles_elements_AnimationKeyFrames = function(id,keyframes) { this._keyframes = []; this.id = id; this._keyframes = keyframes; }; $hxClasses["haxe.ui.styles.elements.AnimationKeyFrames"] = haxe_ui_styles_elements_AnimationKeyFrames; haxe_ui_styles_elements_AnimationKeyFrames.__name__ = "haxe.ui.styles.elements.AnimationKeyFrames"; haxe_ui_styles_elements_AnimationKeyFrames.prototype = { id: null ,_keyframes: null ,keyFrames: null ,get_keyFrames: function() { return this._keyframes; } ,__class__: haxe_ui_styles_elements_AnimationKeyFrames ,__properties__: {get_keyFrames:"get_keyFrames"} }; var haxe_ui_styles_elements_Directive = function(directive,value,defective) { if(defective == null) { defective = false; } this.defective = false; this.value = null; this.directive = null; this.directive = directive; this.value = value; this.defective = defective; }; $hxClasses["haxe.ui.styles.elements.Directive"] = haxe_ui_styles_elements_Directive; haxe_ui_styles_elements_Directive.__name__ = "haxe.ui.styles.elements.Directive"; haxe_ui_styles_elements_Directive.prototype = { directive: null ,value: null ,defective: null ,__class__: haxe_ui_styles_elements_Directive }; var haxe_ui_styles_elements_ImportElement = function(url) { this.url = url; }; $hxClasses["haxe.ui.styles.elements.ImportElement"] = haxe_ui_styles_elements_ImportElement; haxe_ui_styles_elements_ImportElement.__name__ = "haxe.ui.styles.elements.ImportElement"; haxe_ui_styles_elements_ImportElement.prototype = { url: null ,__class__: haxe_ui_styles_elements_ImportElement }; var haxe_ui_styles_elements_MediaQuery = function(directives,styleSheet) { this._directives = []; this._directives = directives; this._styleSheet = styleSheet; }; $hxClasses["haxe.ui.styles.elements.MediaQuery"] = haxe_ui_styles_elements_MediaQuery; haxe_ui_styles_elements_MediaQuery.__name__ = "haxe.ui.styles.elements.MediaQuery"; haxe_ui_styles_elements_MediaQuery.prototype = { _directives: null ,_styleSheet: null ,addDirective: function(el) { this._directives.push(el); } ,relevant: null ,get_relevant: function() { var b = true; var _g = 0; var _g1 = this._directives; while(_g < _g1.length) { var d = _g1[_g]; ++_g; switch(d.directive) { case "backend": b = b && haxe_ui_Backend.get_id() == haxe_ui_styles_ValueTools.string(d.value); break; case "max-aspect-ratio": var sr = haxe_ui_core_Screen.get_instance().get_width() / haxe_ui_core_Screen.get_instance().get_height(); b = b && sr < this.buildRatio(haxe_ui_styles_ValueTools.string(d.value)); break; case "max-height": b = b && haxe_ui_core_Screen.get_instance().get_height() < haxe_ui_styles_ValueTools.calcDimension(d.value); break; case "max-width": b = b && haxe_ui_core_Screen.get_instance().get_width() < haxe_ui_styles_ValueTools.calcDimension(d.value); break; case "min-aspect-ratio": var sr1 = haxe_ui_core_Screen.get_instance().get_width() / haxe_ui_core_Screen.get_instance().get_height(); b = b && sr1 >= this.buildRatio(haxe_ui_styles_ValueTools.string(d.value)); break; case "min-height": b = b && haxe_ui_core_Screen.get_instance().get_height() >= haxe_ui_styles_ValueTools.calcDimension(d.value); break; case "min-width": b = b && haxe_ui_core_Screen.get_instance().get_width() >= haxe_ui_styles_ValueTools.calcDimension(d.value); break; case "orientation": var v = haxe_ui_styles_ValueTools.string(d.value); if(v == "landscape") { b = b && haxe_ui_core_Screen.get_instance().get_width() > haxe_ui_core_Screen.get_instance().get_height(); } else if(v == "portrait") { b = b && haxe_ui_core_Screen.get_instance().get_height() > haxe_ui_core_Screen.get_instance().get_width(); } break; default: } } return b; } ,buildRatio: function(s) { var p = s.split("/"); var w = Std.parseInt(StringTools.trim(p[0])); var h = Std.parseInt(StringTools.trim(p[1])); return w / h; } ,styleSheet: null ,get_styleSheet: function() { return this._styleSheet; } ,__class__: haxe_ui_styles_elements_MediaQuery ,__properties__: {get_styleSheet:"get_styleSheet",get_relevant:"get_relevant"} }; var haxe_ui_styles_elements_RuleElement = function(selector,directives) { this.directiveCount = 0; this.directives = new haxe_ds_StringMap(); this.selector = new haxe_ui_styles_elements_Selector(selector); var _g = 0; while(_g < directives.length) { var d = directives[_g]; ++_g; this.processDirective(d); this.directiveCount++; } }; $hxClasses["haxe.ui.styles.elements.RuleElement"] = haxe_ui_styles_elements_RuleElement; haxe_ui_styles_elements_RuleElement.__name__ = "haxe.ui.styles.elements.RuleElement"; haxe_ui_styles_elements_RuleElement.ruleMatch = function(c,d) { if(c.nodeName == "*") { return true; } if(c.id != null && c.id != d.get_id()) { return false; } if(c.className != null) { var _g = 0; var _g1 = c.get_classNameParts(); while(_g < _g1.length) { var p = _g1[_g]; ++_g; if(d.classes.indexOf(p) != -1 == false) { return false; } } } if(c.pseudoClass != null) { var pc = ":" + c.pseudoClass; if(d.classes.indexOf(pc) != -1 == false) { return false; } } if(c.nodeName != null) { var classNodeName = d.get_nodeName(); if(c.nodeName != classNodeName) { return false; } } if(c.parent != null) { if(c.direct == true) { var p = d.get_parentComponent(); if(p == null) { return false; } if(!haxe_ui_styles_elements_RuleElement.ruleMatch(c.parent,p)) { return false; } } else { var p = d.get_parentComponent(); while(p != null) { if(haxe_ui_styles_elements_RuleElement.ruleMatch(c.parent,p)) { break; } p = p.get_parentComponent(); } if(p == null) { return false; } } } return true; }; haxe_ui_styles_elements_RuleElement.prototype = { selector: null ,directives: null ,directiveCount: null ,addDirective: function(directive,value) { var d = new haxe_ui_styles_elements_Directive(directive,value); this.processDirective(d); } ,match: function(d) { return haxe_ui_styles_elements_RuleElement.ruleMatch(this.selector.parts[this.selector.parts.length - 1],d); } ,processDirective: function(d) { switch(d.directive) { case "animation": this.processComposite(d,["animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode"]); break; case "background": this.processComposite(d,["background-color","background-color-end","background-gradient-style"]); break; case "background-image-clip": this.processComposite(d,["background-image-clip-top","background-image-clip-left","background-image-clip-bottom","background-image-clip-right"]); break; case "background-image-slice": this.processComposite(d,["background-image-slice-top","background-image-slice-left","background-image-slice-bottom","background-image-slice-right"]); break; case "background-position": this.processComposite(d,["background-position-x","background-position-y"]); break; case "background-size": var vl = haxe_ui_styles_ValueTools.composite(d.value); if(vl.length == 1) { this.processComposite(new haxe_ui_styles_elements_Directive("",vl[0]),["background-width","background-height"]); } else if(vl.length == 2) { this.processComposite(d,["background-width","background-height"]); } break; case "border": this.processComposite(d,["border-size","border-style","border-color"]); break; case "border-bottom": this.processComposite(d,["border-bottom-size","border-style","border-bottom-color"]); break; case "border-color": this.processComposite(d,["border-top-color","border-left-color","border-right-color","border-bottom-color"],true); break; case "border-left": this.processComposite(d,["border-left-size","border-style","border-left-color"]); break; case "border-right": this.processComposite(d,["border-right-size","border-style","border-right-color"]); break; case "border-size": this.processComposite(d,["border-top-size","border-left-size","border-right-size","border-bottom-size"]); break; case "border-top": this.processComposite(d,["border-top-size","border-style","border-top-color"]); break; case "cursor": var vl = haxe_ui_styles_ValueTools.composite(d.value); if(vl.length == 1) { this.processComposite(new haxe_ui_styles_elements_Directive("",haxe_ui_styles_Value.VComposite([vl[0],haxe_ui_styles_Value.VNumber(0),haxe_ui_styles_Value.VNumber(0)])),["cursor-name","cursor-offset-x","cursor-offset-y"]); } else if(vl.length == 3) { this.processComposite(d,["cursor-name","cursor-offset-x","cursor-offset-y"]); } break; case "font-style": var v1 = haxe_ui_styles_ValueTools.composite(d.value); if(v1 == null) { v1 = [d.value]; } var _g = 0; while(_g < v1.length) { var v = v1[_g]; ++_g; var s = haxe_ui_styles_ValueTools.string(v).toLowerCase(); if(s == "bold") { var this1 = this.directives; var value = new haxe_ui_styles_elements_Directive("font-bold",haxe_ui_styles_Value.VBool(true)); this1.h["font-bold"] = value; } else if(s == "italic") { var this2 = this.directives; var value1 = new haxe_ui_styles_elements_Directive("font-italic",haxe_ui_styles_Value.VBool(true)); this2.h["font-italic"] = value1; } else if(s == "underline") { var this3 = this.directives; var value2 = new haxe_ui_styles_elements_Directive("font-underline",haxe_ui_styles_Value.VBool(true)); this3.h["font-underline"] = value2; } } break; case "margin": var vl = haxe_ui_styles_ValueTools.composite(d.value); if(vl.length == 4 || vl.length == 1) { this.processComposite(d,["margin-top","margin-left","margin-right","margin-bottom"]); } else if(vl.length == 2) { this.processComposite(new haxe_ui_styles_elements_Directive("",vl[0]),["margin-top","margin-bottom"]); this.processComposite(new haxe_ui_styles_elements_Directive("",vl[1]),["margin-left","margin-right"]); } break; case "padding": var vl = haxe_ui_styles_ValueTools.composite(d.value); if(vl.length == 4 || vl.length == 1) { this.processComposite(d,["padding-top","padding-left","padding-right","padding-bottom"]); } else if(vl.length == 2) { this.processComposite(new haxe_ui_styles_elements_Directive("",vl[0]),["padding-top","padding-bottom"]); this.processComposite(new haxe_ui_styles_elements_Directive("",vl[1]),["padding-left","padding-right"]); } else if(vl.length == 0) { this.processComposite(d,["padding-top","padding-left","padding-right","padding-bottom"]); } break; case "spacing": this.processComposite(d,["horizontal-spacing","vertical-spacing"]); break; default: this.directives.h[d.directive] = d; } } ,processComposite: function(d,parts,duplicate) { if(duplicate == null) { duplicate = false; } var _g = 0; while(_g < parts.length) { var p = parts[_g]; ++_g; var _this = this.directives; if(Object.prototype.hasOwnProperty.call(_this.h,p)) { delete(_this.h[p]); } } var _g = d.value; switch(_g._hx_index) { case 1: var _g1 = _g.v; var _g1 = 0; while(_g1 < parts.length) { var p = parts[_g1]; ++_g1; var this1 = this.directives; var value = new haxe_ui_styles_elements_Directive(p,d.value); this1.h[p] = value; } break; case 3: var v = _g.v; var _g1 = 0; while(_g1 < parts.length) { var p = parts[_g1]; ++_g1; var this1 = this.directives; var value = new haxe_ui_styles_elements_Directive(p,haxe_ui_styles_Value.VDimension(v)); this1.h[p] = value; } break; case 4: var _g1 = _g.v; if(duplicate == false) { var this1 = this.directives; var value = new haxe_ui_styles_elements_Directive(parts[0],d.value); this1.h[parts[0]] = value; } else { var _g1 = 0; while(_g1 < parts.length) { var p = parts[_g1]; ++_g1; var this1 = this.directives; var value = new haxe_ui_styles_elements_Directive(p,d.value); this1.h[p] = value; } } break; case 5: var f = _g.f; var vl = _g.vl; var _g1 = 0; while(_g1 < parts.length) { var p = parts[_g1]; ++_g1; var this1 = this.directives; var value = new haxe_ui_styles_elements_Directive(p,d.value); this1.h[p] = value; } break; case 6: var _g1 = _g.v; break; case 7: var vl = _g.vl; var n = 0; var _g = 0; while(_g < parts.length) { var p = parts[_g]; ++_g; if(vl[n] != null) { var nd = new haxe_ui_styles_elements_Directive(p,vl[n]); this.processDirective(nd); this.directives.h[p] = nd; } ++n; } break; case 9: var _g = 0; while(_g < parts.length) { var p = parts[_g]; ++_g; var nd = new haxe_ui_styles_elements_Directive(p,d.value); this.processDirective(nd); this.directives.h[p] = nd; } break; default: haxe_Log.trace("unknown value type",{ fileName : "haxe/ui/styles/elements/RuleElement.hx", lineNumber : 212, className : "haxe.ui.styles.elements.RuleElement", methodName : "processComposite", customParams : [d.value]}); } } ,__class__: haxe_ui_styles_elements_RuleElement }; var haxe_ui_styles_elements_Selector = function(s) { this.parts = []; s = StringTools.replace(s,">"," > "); var p = s.split(" "); var parent = null; var nextDirect = false; var _g = 0; while(_g < p.length) { var i = p[_g]; ++_g; i = StringTools.trim(i); if(i.length == 0) { continue; } if(i == ">") { nextDirect = true; continue; } var current = new haxe_ui_styles_elements_SelectorPart(); if(nextDirect == true) { current.direct = true; nextDirect = false; } current.parent = parent; var p1 = i.split(":"); current.pseudoClass = p1[1]; var main = p1[0]; if(main.charAt(0) == ".") { current.className = main.substring(1); } else { var p2 = main.split("."); if(p2[0].charAt(0) == "#") { current.id = p2[0].substring(1); } else { current.nodeName = p2[0].toLowerCase(); } current.className = p2[1]; } this.parts.push(current); parent = current; } }; $hxClasses["haxe.ui.styles.elements.Selector"] = haxe_ui_styles_elements_Selector; haxe_ui_styles_elements_Selector.__name__ = "haxe.ui.styles.elements.Selector"; haxe_ui_styles_elements_Selector.prototype = { parts: null ,toString: function() { return this.parts.join(" "); } ,__class__: haxe_ui_styles_elements_Selector }; var haxe_ui_styles_elements_SelectorPart = function() { this._parts = null; this.direct = false; this.nodeName = null; this.id = null; this.className = null; this.pseudoClass = null; this.parent = null; }; $hxClasses["haxe.ui.styles.elements.SelectorPart"] = haxe_ui_styles_elements_SelectorPart; haxe_ui_styles_elements_SelectorPart.__name__ = "haxe.ui.styles.elements.SelectorPart"; haxe_ui_styles_elements_SelectorPart.prototype = { parent: null ,pseudoClass: null ,className: null ,id: null ,nodeName: null ,direct: null ,_parts: null ,classNameParts: null ,get_classNameParts: function() { if(this.className == null) { return null; } if(this._parts == null) { this._parts = this.className.split("."); } return this._parts; } ,toString: function() { var sb_b = ""; if(this.id != null) { sb_b += Std.string("#" + this.id); } if(this.nodeName != null) { sb_b += Std.string(this.nodeName); } if(this.className != null) { sb_b += Std.string("." + this.className); } if(this.pseudoClass != null) { sb_b += Std.string(":" + this.pseudoClass); } return sb_b; } ,__class__: haxe_ui_styles_elements_SelectorPart ,__properties__: {get_classNameParts:"get_classNameParts"} }; var haxe_ui_themes_Theme = function() { this.styles = []; this.images = []; this.vars = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.themes.Theme"] = haxe_ui_themes_Theme; haxe_ui_themes_Theme.__name__ = "haxe.ui.themes.Theme"; haxe_ui_themes_Theme.prototype = { parent: null ,styles: null ,images: null ,vars: null ,__class__: haxe_ui_themes_Theme }; var haxe_ui_themes_ThemeManager = function() { this.currentThemeVars = new haxe_ds_StringMap(); this._eventMap = null; this._themes = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.themes.ThemeManager"] = haxe_ui_themes_ThemeManager; haxe_ui_themes_ThemeManager.__name__ = "haxe.ui.themes.ThemeManager"; haxe_ui_themes_ThemeManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_themes_ThemeManager._instance = null; haxe_ui_themes_ThemeManager.instance = null; haxe_ui_themes_ThemeManager.get_instance = function() { if(haxe_ui_themes_ThemeManager._instance == null) { haxe_ui_themes_ThemeManager._instance = new haxe_ui_themes_ThemeManager(); } return haxe_ui_themes_ThemeManager._instance; }; haxe_ui_themes_ThemeManager.prototype = { _themes: null ,_themeImages: null ,_eventMap: null ,registerEvent: function(type,listener,priority) { if(priority == null) { priority = 0; } if(this._eventMap == null) { this._eventMap = new haxe_ui_util_EventMap(); } this._eventMap.add(type,listener); } ,unregisterEvent: function(type,listener) { if(this._eventMap == null) { return; } this._eventMap.remove(type,listener); } ,dispatch: function(event) { if(this._eventMap == null) { return; } this._eventMap.invoke(event.type,new haxe_ui_events_ThemeEvent(haxe_ui_events_ThemeEvent.THEME_CHANGED)); } ,getTheme: function(themeName) { var theme = this.findTheme(themeName); if(theme == null) { theme = new haxe_ui_themes_Theme(); this._themes.h[themeName] = theme; } return theme; } ,findTheme: function(themeName) { var t = null; var h = this._themes.h; var name_h = h; var name_keys = Object.keys(h); var name_length = name_keys.length; var name_current = 0; while(name_current < name_length) { var name = name_keys[name_current++]; if(name.toLowerCase() == themeName.toLowerCase()) { t = this._themes.h[name]; break; } } return t; } ,addStyleResource: function(themeName,resourceId,priority,styleData) { if(priority == null) { priority = 0; } this.getTheme(themeName).styles.push({ resourceId : resourceId, priority : priority, styleData : styleData}); } ,setThemeVar: function(themeName,varName,varValue) { var theme = this.getTheme(themeName); if(theme == null) { return; } theme.vars.h[varName] = varValue; } ,setCurrentThemeVar: function(varName,varValue) { this.setThemeVar(haxe_ui_Toolkit.get_theme(),varName,varValue); } ,addImageResource: function(themeName,id,resourceId,priority) { if(priority == null) { priority = 0; } this.getTheme(themeName).images.push({ id : id, resourceId : resourceId, priority : priority}); } ,currentThemeVars: null ,applyTheme: function(themeName) { if(this.findTheme(themeName) == null) { haxe_Log.trace("WARNING: theme '" + themeName + "' not found, falling back to default theme",{ fileName : "haxe/ui/themes/ThemeManager.hx", lineNumber : 105, className : "haxe.ui.themes.ThemeManager", methodName : "applyTheme"}); themeName = "default"; } haxe_ui_Toolkit.styleSheet.clear("default"); var finalVars = new haxe_ds_StringMap(); this.buildThemeVars("global",finalVars); this.buildThemeVars(themeName,finalVars); this.currentThemeVars = new haxe_ds_StringMap(); var h = finalVars.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; this.currentThemeVars.h[k] = finalVars.h[k]; } var entries = []; this.buildThemeEntries("global",entries); this.buildThemeEntries(themeName,entries); haxe_ds_ArraySort.sort(entries,function(a,b) { if(a.priority < b.priority) { return -1; } else if(a.priority > b.priority) { return 1; } return 0; }); var _g = 0; while(_g < entries.length) { var e = entries[_g]; ++_g; this.applyResource(e.resourceId,e.styleData); } var images = []; this.buildThemeImages("global",images); this.buildThemeImages(themeName,images); haxe_ds_ArraySort.sort(images,function(a,b) { if(a.priority < b.priority) { return -1; } else if(a.priority > b.priority) { return 1; } return 0; }); var _g = 0; while(_g < images.length) { var i = images[_g]; ++_g; if(this._themeImages == null) { this._themeImages = new haxe_ds_StringMap(); } this._themeImages.h[i.id] = i; } this.dispatch(new haxe_ui_events_ThemeEvent(haxe_ui_events_ThemeEvent.THEME_CHANGED)); } ,applyResource: function(resourceId,styleData) { var style = ""; if(resourceId != null) { style = haxe_ui_Toolkit.get_assets().getText(resourceId); } if(styleData != null) { if(style == null) { style = ""; } style += "\n" + styleData; } if(style != null) { this.addStyleString(style); } } ,addStyleString: function(style) { haxe_ui_Toolkit.styleSheet.parse(style); } ,buildThemeVars: function(themeName,vars) { var theme = this.findTheme(themeName); if(theme == null) { return; } if(theme.parent != null) { this.buildThemeVars(theme.parent,vars); } var h = theme.vars.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; var v = theme.vars.h[k]; vars.h[k] = v; } } ,buildThemeEntries: function(themeName,arr) { var theme = this.findTheme(themeName); if(theme == null) { return; } if(theme.parent != null) { this.buildThemeEntries(theme.parent,arr); } var _g = 0; var _g1 = theme.styles; while(_g < _g1.length) { var s = _g1[_g]; ++_g; arr.push(s); } } ,buildThemeImages: function(themeName,arr) { var theme = this.findTheme(themeName); if(theme == null) { return; } if(theme.parent != null) { this.buildThemeImages(theme.parent,arr); } var _g = 0; var _g1 = theme.images; while(_g < _g1.length) { var s = _g1[_g]; ++_g; arr.push(s); } } ,image: function(id) { var image = this._themeImages.h[id]; if(image == null) { return null; } return image.resourceId; } ,icon: function(id) { return this.image(id); } ,__class__: haxe_ui_themes_ThemeManager }; var haxe_ui_tooltips_ToolTip = function() { haxe_ui_containers_Box.call(this); }; $hxClasses["haxe.ui.tooltips.ToolTip"] = haxe_ui_tooltips_ToolTip; haxe_ui_tooltips_ToolTip.__name__ = "haxe.ui.tooltips.ToolTip"; haxe_ui_tooltips_ToolTip.__super__ = haxe_ui_containers_Box; haxe_ui_tooltips_ToolTip.prototype = $extend(haxe_ui_containers_Box.prototype,{ registerBehaviours: function() { haxe_ui_containers_Box.prototype.registerBehaviours.call(this); } ,cloneComponent: function() { var c = haxe_ui_containers_Box.prototype.cloneComponent.call(this); if((this._children == null ? [] : this._children).length != (c._children == null ? [] : c._children).length) { var _g = 0; var _g1 = this._children == null ? [] : this._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; c.addComponent(child.cloneComponent()); } } this.postCloneComponent(c); return c; } ,self: function() { return new haxe_ui_tooltips_ToolTip(); } ,__class__: haxe_ui_tooltips_ToolTip }); var haxe_ui_tooltips_ToolTipManager = function() { this._toolTipContents = null; this._toolTip = null; this._timer = null; this._currentComponent = null; this._currentRegion = null; this._toolTipRegions = []; this._lastMouseEvent = null; this._toolTipOptions = new haxe_ds_ObjectMap(); }; $hxClasses["haxe.ui.tooltips.ToolTipManager"] = haxe_ui_tooltips_ToolTipManager; haxe_ui_tooltips_ToolTipManager.__name__ = "haxe.ui.tooltips.ToolTipManager"; haxe_ui_tooltips_ToolTipManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_tooltips_ToolTipManager._instance = null; haxe_ui_tooltips_ToolTipManager.instance = null; haxe_ui_tooltips_ToolTipManager.get_instance = function() { if(haxe_ui_tooltips_ToolTipManager._instance == null) { haxe_ui_tooltips_ToolTipManager._instance = new haxe_ui_tooltips_ToolTipManager(); } return haxe_ui_tooltips_ToolTipManager._instance; }; haxe_ui_tooltips_ToolTipManager.prototype = { _lastMouseEvent: null ,_toolTipOptions: null ,_toolTipRegions: null ,registerTooltipRegion: function(options) { if(this._toolTipRegions.indexOf(options) == -1) { this._toolTipRegions.splice(0,0,options); } if(this._toolTipRegions.length > 0 && !haxe_ui_core_Screen.get_instance().hasEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMoveRegion))) { haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMoveRegion),-1000); } return options; } ,unregisterTooltipRegion: function(options) { HxOverrides.remove(this._toolTipRegions,options); if(this._toolTipRegions.length == 0) { haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMoveRegion)); } } ,registerTooltip: function(target,options) { if(this._toolTipOptions.h.__keys__[target.__id__] != null) { return; } if(options == null) { options = { }; } if(options.tipData == null) { options.tipData = { text : target.get_tooltip()}; } this._toolTipOptions.set(target,options); target.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onTargetMouseOver),-100); } ,unregisterTooltip: function(target) { target.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OVER,$bind(this,this.onTargetMouseOver)); target.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onTargetMouseOut)); target.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onTargetMouseMove)); this._toolTipOptions.remove(target); } ,getTooltipOptions: function(target) { return this._toolTipOptions.h[target.__id__]; } ,updateTooltipRenderer: function(target,renderer) { if(this._toolTipOptions.h.__keys__[target.__id__] == null) { return; } var options = this._toolTipOptions.h[target.__id__]; options.renderer = renderer; } ,_currentRegion: null ,onScreenMouseMoveRegion: function(event) { this._lastMouseEvent = event; var found = false; var _g = 0; var _g1 = this._toolTipRegions; while(_g < _g1.length) { var region = _g1[_g]; ++_g; haxe_ui_tooltips_ToolTipManager.calcRect.set(region.left,region.top,region.width,region.height); if(haxe_ui_tooltips_ToolTipManager.calcRect.containsPoint(event.screenX,event.screenY)) { found = true; if(this._currentRegion != region) { if(this._currentRegion != null) { this.hideCurrentToolTip(); } this._currentRegion = region; this.stopTimer(); this.startTimer(); } else if(this._toolTip != null && haxe_ui_tooltips_ToolTipManager.followMouse) { this.positionToolTip(this._lastMouseEvent.screenX,this._lastMouseEvent.screenY); } break; } } if(!found) { if(this._currentRegion != null) { this.stopTimer(); this.hideCurrentToolTip(); } this._currentRegion = null; } } ,_currentComponent: null ,_timer: null ,onTargetMouseOver: function(event) { if(this._currentComponent != null && this._currentComponent.get_style() != null && this._currentComponent.get_style().pointerEvents != null && this._currentComponent.get_style().pointerEvents != "none") { if(this._currentComponent == event.target || this._currentComponent.containsChildComponent(event.target,true)) { return; } } if(this._toolTip != null) { this._toolTip.hide(); } event.cancel(); this.stopCurrent(); this._lastMouseEvent = event; this._currentComponent = event.target; event.target.registerEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onTargetMouseOut),-100); event.target.registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onTargetMouseMove),-100); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove),-100); this.startTimer(); } ,onTargetMouseMove: function(event) { if(this._toolTip != null && this._toolTip.get_hidden() == false) { if(haxe_ui_tooltips_ToolTipManager.followMouse) { this.positionToolTip(); } return; } this.stopTimer(); this.startTimer(); } ,onTargetMouseOut: function(event) { if(this._currentComponent != null && this._currentComponent.get_style() != null && this._currentComponent.get_style().pointerEvents != null && this._currentComponent.get_style().pointerEvents != "none") { if(event.target.hitTest(event.screenX,event.screenY)) { return; } } this.stopCurrent(); this.hideCurrentToolTip(); } ,onDelayTimer: function() { this._timer.stop(); this._timer = null; if(this._currentRegion != null) { this.showToolTipForRegion(this._currentRegion); } else if(this._currentComponent != null) { this.showToolTipForComponent(this._currentComponent); } } ,onScreenMouseMove: function(event) { this._lastMouseEvent = event; } ,onScreenMouseDown: function(event) { this.hideCurrentToolTip(); } ,startTimer: function() { this._timer = new haxe_ui_util_Timer(haxe_ui_tooltips_ToolTipManager.defaultDelay,$bind(this,this.onDelayTimer)); } ,stopTimer: function() { if(this._timer != null) { this._timer.stop(); this._timer = null; } } ,stopCurrent: function() { if(this._currentComponent != null) { this._currentComponent.unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_OUT,$bind(this,this.onTargetMouseOut)); this._currentComponent = null; } this.stopTimer(); haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_MOVE,$bind(this,this.onScreenMouseMove)); } ,_toolTip: null ,_toolTipContents: null ,createToolTip: function() { if(this._toolTip != null) { return; } this._toolTip = new haxe_ui_tooltips_ToolTip(); } ,reset: function() { if(this._toolTip != null) { haxe_ui_core_Screen.get_instance().removeComponent(this._toolTip); } this._toolTip = null; this._toolTipContents = null; } ,showToolTipAt: function(left,top,options) { var _gthis = this; this.createToolTip(); this._toolTip.hide(); var renderer = this.createToolTipRenderer(options); var _this = this._toolTip; if((_this._children == null ? [] : _this._children)[0] != renderer) { var _this = this._toolTip; if((_this._children == null ? [] : _this._children).length > 0) { this._toolTip.removeComponentAt(0,false); } this._toolTip.addComponent(renderer); } renderer.set_data(options.tipData); haxe_ui_core_Screen.get_instance().addComponent(this._toolTip); haxe_ui_core_Screen.get_instance().setComponentIndex(this._toolTip,haxe_ui_core_Screen.get_instance().rootComponents.length - 1); this._toolTip.validateNow(); this.positionToolTip(left,top); haxe_ui_Toolkit.callLater(function() { if(haxe_ui_tooltips_ToolTipManager.fade == true) { _gthis._toolTip.fadeIn(); } else { _gthis._toolTip.show(); } }); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } ,showToolTipForComponent: function(component) { var _gthis = this; if(component == null) { return; } if(component.get_disabled() == true || component.get_hidden() == true) { this.stopCurrent(); return; } this.createToolTip(); this._toolTip.hide(); var options = this._toolTipOptions.h[component.__id__]; var renderer = this.createToolTipRenderer(options); var _this = this._toolTip; if((_this._children == null ? [] : _this._children)[0] != renderer) { var _this = this._toolTip; if((_this._children == null ? [] : _this._children).length > 0) { this._toolTip.removeComponentAt(0,false); } this._toolTip.addComponent(renderer); } renderer.set_data(options.tipData); haxe_ui_core_Screen.get_instance().addComponent(this._toolTip); haxe_ui_core_Screen.get_instance().setComponentIndex(this._toolTip,haxe_ui_core_Screen.get_instance().rootComponents.length - 1); this._toolTip.validateNow(); this.positionToolTip(); haxe_ui_Toolkit.callLater(function() { if(haxe_ui_tooltips_ToolTipManager.fade == true) { _gthis._toolTip.fadeIn(); } else { _gthis._toolTip.show(); } }); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } ,showToolTipForRegion: function(region) { var _gthis = this; this.createToolTip(); this._toolTip.hide(); var options = region; var renderer = this.createToolTipRenderer(options); var _this = this._toolTip; if((_this._children == null ? [] : _this._children)[0] != renderer) { var _this = this._toolTip; if((_this._children == null ? [] : _this._children).length > 0) { this._toolTip.removeComponentAt(0,false); } this._toolTip.addComponent(renderer); } renderer.set_data(options.tipData); haxe_ui_core_Screen.get_instance().addComponent(this._toolTip); haxe_ui_core_Screen.get_instance().setComponentIndex(this._toolTip,haxe_ui_core_Screen.get_instance().rootComponents.length - 1); this._toolTip.validateNow(); this.positionToolTip(this._lastMouseEvent.screenX,this._lastMouseEvent.screenY); haxe_ui_Toolkit.callLater(function() { if(haxe_ui_tooltips_ToolTipManager.fade == true) { _gthis._toolTip.fadeIn(); } else { _gthis._toolTip.show(); } }); haxe_ui_core_Screen.get_instance().registerEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } ,positionToolTip: function(left,top) { var x = this._toolTip.get_marginLeft(); var y = this._toolTip.get_marginTop(); if(left == null) { x += this._lastMouseEvent.screenX; } else { x += left; } if(top == null) { y += this._lastMouseEvent.screenY; } else { y += top; } var w = this._toolTip.get_width(); var h = this._toolTip.get_height(); var maxX = haxe_ui_core_Screen.get_instance().get_width(); var maxY = haxe_ui_core_Screen.get_instance().get_height(); if(x + w > maxX) { x -= w; } if(y + h > maxY) { y = this._lastMouseEvent.screenY - h - this._toolTip.get_marginTop() / 2; } this._toolTip.set_left(x * haxe_ui_Toolkit.get_scale()); this._toolTip.set_top(y * haxe_ui_Toolkit.get_scale()); } ,hideCurrentToolTip: function() { if(this._toolTip != null) { if(haxe_ui_tooltips_ToolTipManager.fade == true) { this._toolTip.fadeOut(); } else { this._toolTip.hide(); } } haxe_ui_core_Screen.get_instance().unregisterEvent(haxe_ui_events_MouseEvent.MOUSE_DOWN,$bind(this,this.onScreenMouseDown)); } ,createToolTipRenderer: function(options) { if(options.renderer != null) { return options.renderer; } if(haxe_ui_tooltips_ToolTipManager.defaultRenderer != null) { return haxe_ui_tooltips_ToolTipManager.defaultRenderer; } if(this._toolTipContents != null) { return this._toolTipContents; } this._toolTipContents = new haxe_ui_core_ItemRenderer(); var label = new haxe_ui_components_Label(); label.set_id("text"); this._toolTipContents.addComponent(label); return this._toolTipContents; } ,__class__: haxe_ui_tooltips_ToolTipManager }; var haxe_ui_util_CallbackMap = function() { this._map = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.util.CallbackMap"] = haxe_ui_util_CallbackMap; haxe_ui_util_CallbackMap.__name__ = "haxe.ui.util.CallbackMap"; haxe_ui_util_CallbackMap.prototype = { _map: null ,add: function(key,callback,priority) { if(priority == null) { priority = 0; } if(callback == null) { return false; } var b = false; var arr = this._map.h[key]; if(arr == null) { arr = new haxe_ui_util_FunctionArray(); arr.push(callback,priority); this._map.h[key] = arr; b = true; } else if(arr.contains(callback) == false) { arr.push(callback,priority); } return b; } ,remove: function(key,callback) { var b = false; var arr = this._map.h[key]; if(arr != null) { arr.remove(callback); if(arr.get_length() == 0) { var _this = this._map; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } b = true; } } return b; } ,removeAll: function(key) { var arr = this._map.h[key]; if(arr != null) { while(arr.get_length() > 0) arr.remove(arr.get(0)); var _this = this._map; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } ,invoke: function(key,param) { var arr = this._map.h[key]; if(arr != null) { arr = arr.copy(); var listener = arr.iterator(); while(listener.hasNext()) { var listener1 = listener.next(); listener1.callback(param); } } } ,invokeAndRemove: function(key,param) { var arr = this._map.h[key]; if(arr != null) { arr = arr.copy(); this.removeAll(key); var listener = arr.iterator(); while(listener.hasNext()) { var listener1 = listener.next(); listener1.callback(param); } } } ,count: function(key) { var n = 0; var arr = this._map.h[key]; if(arr != null) { n = arr.get_length(); } return n; } ,__class__: haxe_ui_util_CallbackMap }; var haxe_ui_util_Color = {}; haxe_ui_util_Color.__properties__ = {set_a:"set_a",get_a:"get_a",set_b:"set_b",get_b:"get_b",set_g:"set_g",get_g:"get_g",set_r:"set_r",get_r:"get_r"}; haxe_ui_util_Color.isValidColor = function(s) { if(StringTools.startsWith(s,"#") && (s.length == 7 || s.length == 4)) { return true; } else if(StringTools.startsWith(s,"0x") && s.length == 8) { return true; } return Object.prototype.hasOwnProperty.call(haxe_ui_util_Color.colors.h,s); }; haxe_ui_util_Color.fromString = function(s) { if(StringTools.startsWith(s,"0x") || StringTools.startsWith(s,"#")) { return Std.parseInt("0x" + s.substring(s.length - 6)); } if(StringTools.startsWith(s,"#") && s.length == 4) { return Std.parseInt("0x" + s.substring(s.length - 3)); } if(Object.prototype.hasOwnProperty.call(haxe_ui_util_Color.colors.h,s)) { return haxe_ui_util_Color.colors.h[s]; } return Std.parseInt(s); }; haxe_ui_util_Color.fromComponents = function(r,g,b,a) { var result = 0; result = (r & 255) << 16 | (g & 255) << 8 | b & 255; return result; }; haxe_ui_util_Color.get_r = function(this1) { return this1 >> 16 & 255; }; haxe_ui_util_Color.set_r = function(this1,value) { this1 = (value & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return this1; }; haxe_ui_util_Color.get_g = function(this1) { return this1 >> 8 & 255; }; haxe_ui_util_Color.set_g = function(this1,value) { this1 = (this1 >> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255; return this1; }; haxe_ui_util_Color.get_b = function(this1) { return this1 & 255; }; haxe_ui_util_Color.set_b = function(this1,value) { this1 = (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | value & 255; return this1; }; haxe_ui_util_Color.get_a = function(this1) { return this1 >> 24 & 255; }; haxe_ui_util_Color.set_a = function(this1,value) { this1 = (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return this1; }; haxe_ui_util_Color.set = function(this1,r,g,b,a) { this1 = (r & 255) << 16 | (g & 255) << 8 | b & 255; return this1; }; haxe_ui_util_Color.toInt = function(this1) { return this1; }; haxe_ui_util_Color.toHex = function(this1) { return "#" + StringTools.hex(this1 >> 16 & 255,2) + StringTools.hex(this1 >> 8 & 255,2) + StringTools.hex(this1 & 255,2); }; haxe_ui_util_Color.or = function(a,b) { return haxe_ui_util_Color.toInt(a) | haxe_ui_util_Color.toInt(b); }; haxe_ui_util_Color.sumColor = function(a,b) { return haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromComponents((a >> 16 & 255) + (b >> 16 & 255),(a >> 8 & 255) + (b >> 8 & 255),(a & 255) + (b & 255),(a >> 24 & 255) + (b >> 24 & 255))); }; haxe_ui_util_Color.restColor = function(a,b) { return haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromComponents((a >> 16 & 255) - (b >> 16 & 255),(a >> 8 & 255) - (b >> 8 & 255),(a & 255) - (b & 255),(a >> 24 & 255) - (b >> 24 & 255))); }; haxe_ui_util_Color.sumFloat = function(a,b) { var bInt = b | 0; return haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromComponents((a >> 16 & 255) - bInt,(a >> 8 & 255) - bInt,(a & 255) - bInt,(a >> 24 & 255) - bInt)); }; haxe_ui_util_Color.mulFloat = function(a,b) { return haxe_ui_util_Color.toInt(haxe_ui_util_Color.fromComponents((a >> 16 & 255) * b | 0,(a >> 8 & 255) * b | 0,(a & 255) * b | 0,(a >> 24 & 255) * b | 0)); }; var haxe_ui_util_HSL = function(h,s,l) { this.h = h; this.s = s; this.l = l; }; $hxClasses["haxe.ui.util.HSL"] = haxe_ui_util_HSL; haxe_ui_util_HSL.__name__ = "haxe.ui.util.HSL"; haxe_ui_util_HSL.prototype = { h: null ,s: null ,l: null ,__class__: haxe_ui_util_HSL }; var haxe_ui_util_HSV = function(h,s,v) { this.h = h; this.s = s; this.v = v; }; $hxClasses["haxe.ui.util.HSV"] = haxe_ui_util_HSV; haxe_ui_util_HSV.__name__ = "haxe.ui.util.HSV"; haxe_ui_util_HSV.prototype = { h: null ,s: null ,v: null ,__class__: haxe_ui_util_HSV }; var haxe_ui_util_RGBF = function(r,g,b) { this.r = r; this.g = g; this.b = b; }; $hxClasses["haxe.ui.util.RGBF"] = haxe_ui_util_RGBF; haxe_ui_util_RGBF.__name__ = "haxe.ui.util.RGBF"; haxe_ui_util_RGBF.prototype = { r: null ,g: null ,b: null ,__class__: haxe_ui_util_RGBF }; var haxe_ui_util_ColorUtil = function() { }; $hxClasses["haxe.ui.util.ColorUtil"] = haxe_ui_util_ColorUtil; haxe_ui_util_ColorUtil.__name__ = "haxe.ui.util.ColorUtil"; haxe_ui_util_ColorUtil.toHSL = function(color) { var r = (color >> 16 & 255) / 255; var g = (color >> 8 & 255) / 255; var b = (color & 255) / 255; var numbers = [r,g,b]; var r1 = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n < r1) { r1 = n; } } var min = r1; var numbers = [r,g,b]; var r1 = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n > r1) { r1 = n; } } var max = r1; var delta = max - min; var h = 0; var s = 0; var l = (max + min) / 2; if(delta == 0.0) { h = 0.0; s = h; } else { s = l < 0.5 ? delta / (max + min) : delta / (2 - max - min); if(r == max) { h = (g - b) / delta + (g < b ? 6 : 0); } else if(g == max) { h = (b - r) / delta + 2; } else { h = (r - g) / delta + 4; } h *= 60; } return new haxe_ui_util_HSL(Math.round(h),s * 100,l * 100); }; haxe_ui_util_ColorUtil.fromHSL = function(hue,saturation,luminosity) { saturation /= 100; luminosity /= 100; var _c = function(d,s,l) { var m2 = l <= 0.5 ? l * (1 + s) : l + s - l * s; var m1 = 2 * l - m2; var v = d; v %= 360; if(v < 0) { v += 360; } d = v; if(d < 60) { return m1 + (m2 - m1) * d / 60; } else if(d < 180) { return m2; } else if(d < 240) { return m1 + (m2 - m1) * (240 - d) / 60; } return m1; }; return haxe_ui_util_Color.fromComponents(Math.round(_c(hue + 120,saturation,luminosity) * 255),Math.round(_c(hue,saturation,luminosity) * 255),Math.round(_c(hue - 120,saturation,luminosity) * 255),255); }; haxe_ui_util_ColorUtil.toHSV = function(color) { var r = (color >> 16 & 255) / 255; var g = (color >> 8 & 255) / 255; var b = (color & 255) / 255; var numbers = [r,g,b]; var r1 = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n < r1) { r1 = n; } } var min = r1; var numbers = [r,g,b]; var r1 = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n > r1) { r1 = n; } } var max = r1; var delta = max - min; var h = 0; var s = 0; var v = max; if(delta != 0) { s = delta / max; } else { s = 0; h = 0; return new haxe_ui_util_HSV(Math.round(h),s * 100,v * 100); } if(r == max) { h = (g - b) / delta; } else if(g == max) { h = 2 + (b - r) / delta; } else { h = 4 + (r - g) / delta; } h *= 60; if(h < 0) { h += 360; } return new haxe_ui_util_HSV(Math.round(h),s * 100,v * 100); }; haxe_ui_util_ColorUtil.fromHSV = function(hue,saturation,value) { if(saturation == 0) { return haxe_ui_util_Color.fromComponents(value | 0,value | 0,value | 0,255); } saturation /= 100; value /= 100; var r; var g; var b; var h = hue / 60; var i = Math.floor(h); var f = h - i; var p = value * (1 - saturation); var q = value * (1 - f * saturation); var t = value * (1 - (1 - f) * saturation); switch(i) { case 0: r = value; g = t; b = p; break; case 1: r = q; g = value; b = p; break; case 2: r = p; g = value; b = t; break; case 3: r = p; g = q; b = value; break; case 4: r = t; g = p; b = value; break; default: r = value; g = p; b = q; } return haxe_ui_util_Color.fromComponents(Math.round(r * 255),Math.round(g * 255),Math.round(b * 255),255); }; haxe_ui_util_ColorUtil.hsvToRGBF = function(hue,saturation,value) { var tmp = hue == 0 && saturation == 0 && value == 100; var tmp = saturation == 0; saturation /= 100; value /= 100; var r; var g; var b; var h = hue / 60; var i = Math.floor(h); var f = h - i; var p = value * (1 - saturation); var q = value * (1 - f * saturation); var t = value * (1 - (1 - f) * saturation); switch(i) { case 0: r = value; g = t; b = p; break; case 1: r = q; g = value; b = p; break; case 2: r = p; g = value; b = t; break; case 3: r = p; g = q; b = value; break; case 4: r = t; g = p; b = value; break; default: r = value; g = p; b = q; } return new haxe_ui_util_RGBF(r * 255,g * 255,b * 255); }; haxe_ui_util_ColorUtil.rgbToGray = function(r,g,b) { var g1 = 0.3 * r + 0.59 * g + 0.11 * b; return Math.round(g1); }; haxe_ui_util_ColorUtil.rgbfToHSV = function(r,g,b) { var tmp = Math.round(r) == 255 && Math.round(g) == 255 && Math.round(b) == 255; var r1 = r / 255; var g1 = g / 255; var b1 = b / 255; var numbers = [r1,g1,b1]; var r = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n < r) { r = n; } } var min = r; var numbers = [r1,g1,b1]; var r = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n > r) { r = n; } } var max = r; var delta = max - min; var h = 0; var s = 0; var v = max; if(delta != 0) { s = delta / max; } else { s = 0; h = 0; return new haxe_ui_util_HSV(h,s * 100,v * 100); } if(r1 == max) { h = (g1 - b1) / delta; } else if(g1 == max) { h = 2 + (b1 - r1) / delta; } else { h = 4 + (r1 - g1) / delta; } h *= 60; if(h < 0) { h += 360; } if(Math.round(r1) == 255 && Math.round(g1) == 255 && Math.round(b1) == 255) { return new haxe_ui_util_HSV(h,0,100); } return new haxe_ui_util_HSV(h,s * 100,v * 100); }; haxe_ui_util_ColorUtil.buildColorArray = function(startColor,endColor,size) { var array = []; var r1 = startColor >> 16 & 255; var g1 = startColor >> 8 & 255; var b1 = startColor & 255; var r2 = endColor >> 16 & 255; var g2 = endColor >> 8 & 255; var b2 = endColor & 255; var rd = r2 - r1; var gd = g2 - g1; var bd = b2 - b1; var ri = rd / (size - 1); var gi = gd / (size - 1); var bi = bd / (size - 1); var r = r1; var g = g1; var b = b1; var c = 0; var _g = 0; var _g1 = size; while(_g < _g1) { var n = _g++; c = (Math.round(r) & 255) << 16 | (Math.round(g) & 255) << 8 | Math.round(b) & 255; array.push(haxe_ui_util_Color.toInt(c)); r += ri; g += gi; b += bi; } return array; }; haxe_ui_util_ColorUtil.parseColor = function(s) { if(StringTools.startsWith(s,"#")) { s = s.substring(1,s.length); } else if(StringTools.startsWith(s,"0x")) { s = s.substring(2,s.length); } return Std.parseInt("0x" + s); }; var haxe_ui_util_ComponentUtil = function() { }; $hxClasses["haxe.ui.util.ComponentUtil"] = haxe_ui_util_ComponentUtil; haxe_ui_util_ComponentUtil.__name__ = "haxe.ui.util.ComponentUtil"; haxe_ui_util_ComponentUtil.getDepth = function(target) { var count = 0; while(target.get_parentComponent() != null) { target = target.get_parentComponent(); ++count; } return count; }; haxe_ui_util_ComponentUtil.dumpComponentTree = function(from,verbose) { if(verbose == null) { verbose = false; } haxe_ui_util_ComponentUtil.recurseTreeGrouped(from,verbose); }; haxe_ui_util_ComponentUtil.walkComponentTree = function(from,cb) { haxe_ui_util_ComponentUtil.recurseTree(0,from,cb); }; haxe_ui_util_ComponentUtil.recurseTree = function(depth,c,cb) { cb(depth,c); var _g = 0; var _g1 = c._children == null ? [] : c._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; haxe_ui_util_ComponentUtil.recurseTree(depth + 1,child,cb); } }; haxe_ui_util_ComponentUtil.recurseTreeTrace = function(c,level,verbose) { var display = c.get_className(); if(c.get_id() != null) { display += "#" + c.get_id(); } var space = StringTools.lpad(""," ",level * 4); display = space + display; haxe_Log.trace(display,{ fileName : "haxe/ui/util/ComponentUtil.hx", lineNumber : 42, className : "haxe.ui.util.ComponentUtil", methodName : "recurseTreeTrace"}); var _g = 0; var _g1 = c._children == null ? [] : c._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; haxe_ui_util_ComponentUtil.recurseTreeTrace(child,level + 1,verbose); } }; haxe_ui_util_ComponentUtil.recurseTreeGrouped = function(c,verbose) { var display = c.get_className(); if(c.get_id() != null) { display += "#" + c.get_id(); } $global.console.groupCollapsed(display); if(verbose == true) { $global.console.groupCollapsed("Component Details"); $global.console.groupEnd(); } var _g = 0; var _g1 = c._children == null ? [] : c._children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; haxe_ui_util_ComponentUtil.recurseTreeGrouped(child,verbose); } $global.console.groupEnd(); }; var haxe_ui_util_DateUtil = function() { }; $hxClasses["haxe.ui.util.DateUtil"] = haxe_ui_util_DateUtil; haxe_ui_util_DateUtil.__name__ = "haxe.ui.util.DateUtil"; var haxe_ui_util_Defines = function() { }; $hxClasses["haxe.ui.util.Defines"] = haxe_ui_util_Defines; haxe_ui_util_Defines.__name__ = "haxe.ui.util.Defines"; haxe_ui_util_Defines.getAll = function() { haxe_ui_util_Defines.popuplate(); return haxe_ui_util_Defines._map; }; haxe_ui_util_Defines.set = function(name,value,overwrite) { if(overwrite == null) { overwrite = false; } haxe_ui_util_Defines.popuplate(); if(overwrite == false && Object.prototype.hasOwnProperty.call(haxe_ui_util_Defines._map.h,name)) { return; } haxe_ui_util_Defines._map.h[name] = value; }; haxe_ui_util_Defines.popuplate = function() { if(haxe_ui_util_Defines._map != null) { return; } haxe_ui_util_Defines._map = new haxe_ds_StringMap(); if(haxe_ui_core_Platform.get_instance().get_isWindows()) { haxe_ui_util_Defines.set("windows","1"); } else if(haxe_ui_core_Platform.get_instance().get_isLinux()) { haxe_ui_util_Defines.set("linux","1"); } else if(haxe_ui_core_Platform.get_instance().get_isMac()) { haxe_ui_util_Defines.set("mac","1"); } }; haxe_ui_util_Defines.toObject = function() { haxe_ui_util_Defines.popuplate(); var o = { }; var h = haxe_ui_util_Defines._map.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; var v = haxe_ui_util_Defines._map.h[k]; o[k] = v; } return o; }; var haxe_ui_util_EventMap = function() { this._map = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.util.EventMap"] = haxe_ui_util_EventMap; haxe_ui_util_EventMap.__name__ = "haxe.ui.util.EventMap"; haxe_ui_util_EventMap.prototype = { _map: null ,keys: function() { return new haxe_ds__$StringMap_StringMapKeyIterator(this._map.h); } ,removeAll: function(type) { if(type != null) { if(Object.prototype.hasOwnProperty.call(this._map.h,type)) { this._map.h[type].removeAll(); var _this = this._map; var key = type; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } else { var h = this._map.h; var type_h = h; var type_keys = Object.keys(h); var type_length = type_keys.length; var type_current = 0; while(type_current < type_length) { var type = type_keys[type_current++]; this._map.h[type].removeAll(); } } } ,add: function(type,listener,priority) { if(priority == null) { priority = 0; } if(listener == null) { return false; } var b = false; var arr = this._map.h[type]; if(arr == null) { arr = new haxe_ui_util_FunctionArray(); arr.push(listener,priority); this._map.h[type] = arr; b = true; } else if(arr.contains(listener) == false) { arr.push(listener,priority); } return b; } ,remove: function(type,listener) { if(listener == null) { return false; } var b = false; var arr = this._map.h[type]; if(arr != null) { arr.remove(listener); if(arr.get_length() == 0) { var _this = this._map; var key = type; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } b = true; } } return b; } ,contains: function(type,listener) { var b = false; var arr = this._map.h[type]; if(arr != null) { b = listener != null ? arr.contains(listener) : true; } return b; } ,invoke: function(type,event,target) { if(event.bubble && event.target == null) { event.target = target; } var arr = this._map.h[type]; if(arr != null && arr.get_length() > 0) { arr = arr.copy(); var listener = arr.iterator(); while(listener.hasNext()) { var listener1 = listener.next(); if(event.canceled) { break; } var c = event.clone(); if(c.target == null) { c.target = target; } listener1.callback(c); event.copyFrom(c); event.canceled = c.canceled; } } } ,listenerCount: function(type) { var n = 0; var arr = this._map.h[type]; if(arr != null) { n = arr.get_length(); } return n; } ,listeners: function(type) { var arr = this._map.h[type]; if(arr == null) { return null; } return arr; } ,__class__: haxe_ui_util_EventMap }; var haxe_ui_util_ExpressionUtil = function() { }; $hxClasses["haxe.ui.util.ExpressionUtil"] = haxe_ui_util_ExpressionUtil; haxe_ui_util_ExpressionUtil.__name__ = "haxe.ui.util.ExpressionUtil"; haxe_ui_util_ExpressionUtil.stringToLanguageExpression = function(s,localeManager) { if(localeManager == null) { localeManager = "haxe.ui.locale.LocaleManager"; } var fixedParts = []; var beforePos = 0; var n1 = s.indexOf("{{"); while(n1 != -1) { var before = s.substring(beforePos,n1); if(before.length > 0) { fixedParts.push("'" + before + "'"); } var n2 = s.indexOf("}}",n1); var code = s.substring(n1 + 2,n2); var parts = code.split(","); var stringId = parts.shift(); var callString = localeManager + ".instance.lookupString('"; callString += stringId; callString += "'"; if(parts.length > 0) { callString += ", "; callString += parts.join(", "); } callString += ")"; fixedParts.push(callString); n1 = s.indexOf("{{",n2); beforePos = n2 + 2; } if(beforePos < s.length) { var before = s.substring(beforePos,s.length); if(before.length > 0) { fixedParts.push("'" + before + "'"); } } var fixedCode = fixedParts.join(" + "); return fixedCode; }; var haxe_ui_util_FunctionArray = function() { this._array = []; }; $hxClasses["haxe.ui.util.FunctionArray"] = haxe_ui_util_FunctionArray; haxe_ui_util_FunctionArray.__name__ = "haxe.ui.util.FunctionArray"; haxe_ui_util_FunctionArray.prototype = { _array: null ,get: function(index) { return this._array[index].callback; } ,length: null ,get_length: function() { return this._array.length; } ,push: function(x,priority) { if(priority == null) { priority = 0; } var listener = new haxe_ui_util__$Listener_ListenerInternal(x,priority); var _g = 0; var _g1 = this._array.length; while(_g < _g1) { var i = _g++; if(this._array[i].priority < priority) { this._array.splice(i,0,listener); return i; } } return this._array.push(listener); } ,pop: function() { return this._array.pop().callback; } ,indexOf: function(x,fromIndex) { if(fromIndex == null) { fromIndex = 0; } var _g = fromIndex; var _g1 = this._array.length; while(_g < _g1) { var i = _g++; if(this._array[i].callback == x) { return i; } } return -1; } ,remove: function(x) { var index = this.indexOf(x); if(index != -1) { this._array.splice(index,1); } return index != -1; } ,contains: function(x) { return this.indexOf(x) != -1; } ,iterator: function() { return new haxe_iterators_ArrayIterator(this._array); } ,copy: function() { var fa = new haxe_ui_util_FunctionArray(); fa._array = this._array.slice(); return fa; } ,toString: function() { var s = "["; var iter = this.iterator(); while(iter.hasNext()) { s += Std.string(iter.next()); if(iter.hasNext()) { s += ", "; } } s += "]"; return s; } ,removeAll: function() { this._array = []; } ,__class__: haxe_ui_util_FunctionArray ,__properties__: {get_length:"get_length"} }; var haxe_ui_util_GUID = function() { }; $hxClasses["haxe.ui.util.GUID"] = haxe_ui_util_GUID; haxe_ui_util_GUID.__name__ = "haxe.ui.util.GUID"; haxe_ui_util_GUID.randomIntegerWithinRange = function(min,max) { return Math.floor(Math.random() * (1 + max - min) + min); }; haxe_ui_util_GUID.createRandomIdentifier = function(length,radix) { if(radix == null) { radix = 61; } var characters = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; var id = []; if(radix > 61) { radix = 61; } while(length-- > 0) id.push(characters[Math.floor(Math.random() * (1 + radix))]); return id.join(""); }; haxe_ui_util_GUID.uuid = function() { var specialChars = ["8","9","A","B"]; return haxe_ui_util_GUID.createRandomIdentifier(8,15) + "-" + haxe_ui_util_GUID.createRandomIdentifier(4,15) + "-4" + haxe_ui_util_GUID.createRandomIdentifier(3,15) + "-" + specialChars[Math.floor(Math.random() * 4)] + haxe_ui_util_GUID.createRandomIdentifier(3,15) + "-" + haxe_ui_util_GUID.createRandomIdentifier(12,15); }; var haxe_ui_util_Listener = {}; haxe_ui_util_Listener._new = function(callback,priority) { return new haxe_ui_util__$Listener_ListenerInternal(callback,priority); }; haxe_ui_util_Listener.compareListener = function(a,b) { return a.callback == b.callback; }; haxe_ui_util_Listener.compareFunction = function(a,b) { return a.callback == b; }; haxe_ui_util_Listener.toFunc = function(this1) { return this1.callback; }; var haxe_ui_util__$Listener_ListenerInternal = function(callback,priority) { this.callback = callback; this.priority = priority; }; $hxClasses["haxe.ui.util._Listener.ListenerInternal"] = haxe_ui_util__$Listener_ListenerInternal; haxe_ui_util__$Listener_ListenerInternal.__name__ = "haxe.ui.util._Listener.ListenerInternal"; haxe_ui_util__$Listener_ListenerInternal.prototype = { callback: null ,priority: null ,__class__: haxe_ui_util__$Listener_ListenerInternal }; var haxe_ui_util_MathUtil = function() { }; $hxClasses["haxe.ui.util.MathUtil"] = haxe_ui_util_MathUtil; haxe_ui_util_MathUtil.__name__ = "haxe.ui.util.MathUtil"; haxe_ui_util_MathUtil.distance = function(x1,y1,x2,y2) { return Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); }; haxe_ui_util_MathUtil.precision = function(v) { var e = 1; var p = 0; while(Math.abs(Math.round(v * e) / e - v) > 0.0000001) { e *= 10; ++p; } return p; }; haxe_ui_util_MathUtil.fmodulo = function(v1,v2) { if(!isFinite(v1) || !isFinite(v2)) { return NaN; } var e = 1; var p = 0; while(Math.abs(Math.round(v1 * e) / e - v1) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(v2 * e) / e - v2) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var e = 1; var _g = 0; var _g1 = p1; while(_g < _g1) { var i = _g++; e *= 10; } var i1 = Math.round(v1 * e); var i2 = Math.round(v2 * e); var precision = p1; if(precision == null) { precision = 0; } return Math.round(i1 % i2 / e * Math.pow(10,precision)) / Math.pow(10,precision); }; haxe_ui_util_MathUtil.round = function(v,precision) { if(precision == null) { precision = 0; } return Math.round(v * Math.pow(10,precision)) / Math.pow(10,precision); }; haxe_ui_util_MathUtil.roundToNearest = function(v,n) { if(!isFinite(v) || !isFinite(n)) { return NaN; } var e = 1; var p = 0; while(Math.abs(Math.round(v * e) / e - v) > 0.0000001) { e *= 10; ++p; } var x = p; var e = 1; var p = 0; while(Math.abs(Math.round(n * e) / e - n) > 0.0000001) { e *= 10; ++p; } var p1 = Math.max(x,p) | 0; var inv = 1.0 / n; var precision = p1; if(precision == null) { precision = 0; } return Math.round(Math.round(v * inv) / inv * Math.pow(10,precision)) / Math.pow(10,precision); }; haxe_ui_util_MathUtil.clamp = function(v,min,max) { if(v == null || isNaN(v)) { return min; } if(min != null && v < min) { v = min; } else if(max != null && v > max) { v = max; } return v; }; haxe_ui_util_MathUtil.min = function(numbers) { var r = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n < r) { r = n; } } return r; }; haxe_ui_util_MathUtil.max = function(numbers) { var r = numbers[0]; var _g = 0; while(_g < numbers.length) { var n = numbers[_g]; ++_g; if(n > r) { r = n; } } return r; }; haxe_ui_util_MathUtil.wrapCircular = function(v,max) { v %= max; if(v < 0) { v += max; } return v; }; var haxe_ui_util_RTTI = function() { }; $hxClasses["haxe.ui.util.RTTI"] = haxe_ui_util_RTTI; haxe_ui_util_RTTI.__name__ = "haxe.ui.util.RTTI"; haxe_ui_util_RTTI.addClassProperty = function(className,propertyName,propertyType) { className = className.toLowerCase(); propertyName = propertyName.toLowerCase(); propertyType = propertyType.toLowerCase(); if(propertyType == "null") { propertyType = "bool"; } if(propertyType == "null") { propertyType = "int"; } if(propertyType == "null") { propertyType = "float"; } if(propertyType == "null") { propertyType = "color"; } if(haxe_ui_util_RTTI.classInfo == null) { haxe_ui_util_RTTI.classInfo = new haxe_ds_StringMap(); } var entry = haxe_ui_util_RTTI.classInfo.h[className]; if(entry == null) { entry = { }; haxe_ui_util_RTTI.classInfo.h[className] = entry; } if(entry.properties == null) { entry.properties = new haxe_ds_StringMap(); } entry.properties.h[propertyName] = { propertyName : propertyName, propertyType : propertyType}; }; haxe_ui_util_RTTI.setSuperClass = function(className,superClassName) { if(haxe_ui_util_RTTI.classInfo == null) { haxe_ui_util_RTTI.classInfo = new haxe_ds_StringMap(); } className = className.toLowerCase(); superClassName = superClassName.toLowerCase(); if(StringTools.startsWith(superClassName,".")) { superClassName = HxOverrides.substr(superClassName,1,null); } var entry = haxe_ui_util_RTTI.classInfo.h[className]; if(entry == null) { entry = { properties : new haxe_ds_StringMap()}; haxe_ui_util_RTTI.classInfo.h[className] = entry; } entry.superClass = superClassName; }; haxe_ui_util_RTTI.hasSuperClass = function(className,superClassName) { haxe_ui_util_RTTI.load(); className = className.toLowerCase(); superClassName = superClassName.toLowerCase(); if(StringTools.startsWith(superClassName,".")) { superClassName = HxOverrides.substr(superClassName,1,null); } var entry = haxe_ui_util_RTTI.classInfo.h[className]; if(entry == null) { return false; } if(className == superClassName) { return true; } var testSuper = entry.superClass; while(testSuper != null) { if(testSuper == superClassName) { return true; } entry = haxe_ui_util_RTTI.classInfo.h[testSuper]; if(entry == null) { return false; } testSuper = entry.superClass; } return false; }; haxe_ui_util_RTTI.hasClassProperty = function(className,propertyName) { return haxe_ui_util_RTTI.getClassProperty(className,propertyName) != null; }; haxe_ui_util_RTTI.load = function() { if(haxe_ui_util_RTTI.classInfo != null) { return; } var s = haxe_Resource.getString("haxeui_rtti"); if(s == null) { return; } var unserializer = new haxe_Unserializer(s); haxe_ui_util_RTTI.classInfo = unserializer.unserialize(); }; haxe_ui_util_RTTI.getClassInfo = function(className) { haxe_ui_util_RTTI.load(); if(haxe_ui_util_RTTI.classInfo == null) { return null; } className = className.toLowerCase(); var entry = haxe_ui_util_RTTI.classInfo.h[className]; return entry; }; haxe_ui_util_RTTI.getClassProperty = function(className,propertyName) { if(className == null || propertyName == null) { return null; } className = className.toLowerCase(); propertyName = propertyName.toLowerCase(); var entry = haxe_ui_util_RTTI.getClassInfo(className); if(entry == null) { return null; } var propInfo = null; if(entry.properties != null && Object.prototype.hasOwnProperty.call(entry.properties.h,propertyName)) { propInfo = entry.properties.h[propertyName]; } if(propInfo == null && entry.superClass != null) { propInfo = haxe_ui_util_RTTI.getClassProperty(entry.superClass,propertyName); } return propInfo; }; haxe_ui_util_RTTI.save = function() { }; var haxe_ui_util_SimpleExpressionEvaluatorOperation = $hxEnums["haxe.ui.util.SimpleExpressionEvaluatorOperation"] = { __ename__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",__constructs__:null ,Add: {_hx_name:"Add",_hx_index:0,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,Subtract: {_hx_name:"Subtract",_hx_index:1,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,Multiply: {_hx_name:"Multiply",_hx_index:2,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,Divide: {_hx_name:"Divide",_hx_index:3,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,Equals: {_hx_name:"Equals",_hx_index:4,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,NotEquals: {_hx_name:"NotEquals",_hx_index:5,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,GreaterThan: {_hx_name:"GreaterThan",_hx_index:6,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,GreaterThanOrEquals: {_hx_name:"GreaterThanOrEquals",_hx_index:7,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,LessThan: {_hx_name:"LessThan",_hx_index:8,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,LessThanOrEquals: {_hx_name:"LessThanOrEquals",_hx_index:9,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,LogicalAnd: {_hx_name:"LogicalAnd",_hx_index:10,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} ,LogicalOr: {_hx_name:"LogicalOr",_hx_index:11,__enum__:"haxe.ui.util.SimpleExpressionEvaluatorOperation",toString:$estr} }; haxe_ui_util_SimpleExpressionEvaluatorOperation.__constructs__ = [haxe_ui_util_SimpleExpressionEvaluatorOperation.Add,haxe_ui_util_SimpleExpressionEvaluatorOperation.Subtract,haxe_ui_util_SimpleExpressionEvaluatorOperation.Multiply,haxe_ui_util_SimpleExpressionEvaluatorOperation.Divide,haxe_ui_util_SimpleExpressionEvaluatorOperation.Equals,haxe_ui_util_SimpleExpressionEvaluatorOperation.NotEquals,haxe_ui_util_SimpleExpressionEvaluatorOperation.GreaterThan,haxe_ui_util_SimpleExpressionEvaluatorOperation.GreaterThanOrEquals,haxe_ui_util_SimpleExpressionEvaluatorOperation.LessThan,haxe_ui_util_SimpleExpressionEvaluatorOperation.LessThanOrEquals,haxe_ui_util_SimpleExpressionEvaluatorOperation.LogicalAnd,haxe_ui_util_SimpleExpressionEvaluatorOperation.LogicalOr]; haxe_ui_util_SimpleExpressionEvaluatorOperation.__empty_constructs__ = [haxe_ui_util_SimpleExpressionEvaluatorOperation.Add,haxe_ui_util_SimpleExpressionEvaluatorOperation.Subtract,haxe_ui_util_SimpleExpressionEvaluatorOperation.Multiply,haxe_ui_util_SimpleExpressionEvaluatorOperation.Divide,haxe_ui_util_SimpleExpressionEvaluatorOperation.Equals,haxe_ui_util_SimpleExpressionEvaluatorOperation.NotEquals,haxe_ui_util_SimpleExpressionEvaluatorOperation.GreaterThan,haxe_ui_util_SimpleExpressionEvaluatorOperation.GreaterThanOrEquals,haxe_ui_util_SimpleExpressionEvaluatorOperation.LessThan,haxe_ui_util_SimpleExpressionEvaluatorOperation.LessThanOrEquals,haxe_ui_util_SimpleExpressionEvaluatorOperation.LogicalAnd,haxe_ui_util_SimpleExpressionEvaluatorOperation.LogicalOr]; var haxe_ui_util_SimpleExpressionEvaluator = function() { }; $hxClasses["haxe.ui.util.SimpleExpressionEvaluator"] = haxe_ui_util_SimpleExpressionEvaluator; haxe_ui_util_SimpleExpressionEvaluator.__name__ = "haxe.ui.util.SimpleExpressionEvaluator"; haxe_ui_util_SimpleExpressionEvaluator.evalCondition = function(condition) { return haxe_ui_util_SimpleExpressionEvaluator.eval(condition,{ Backend : haxe_ui_Backend, backend : haxe_ui_Backend.get_id(), defined : haxe_ui_util_SimpleExpressionEvaluator.defined}); }; haxe_ui_util_SimpleExpressionEvaluator.defined = function(key) { var this1 = haxe_ui_util_Defines.getAll(); return Object.prototype.hasOwnProperty.call(this1.h,key); }; haxe_ui_util_SimpleExpressionEvaluator.eval = function(s,context) { var r = null; if(s.indexOf("||") != -1) { var parts = s.split("||"); var _g = 0; while(_g < parts.length) { var p = parts[_g]; ++_g; if(r == null) { r = haxe_ui_util_SimpleExpressionEvaluator.evalSingle(StringTools.trim(p),context); } else { r = r || haxe_ui_util_SimpleExpressionEvaluator.evalSingle(StringTools.trim(p),context); } } } else if(s.indexOf("&&") != -1) { var parts = s.split("&&"); var _g = 0; while(_g < parts.length) { var p = parts[_g]; ++_g; if(r == null) { r = haxe_ui_util_SimpleExpressionEvaluator.evalSingle(StringTools.trim(p),context); } else { r = r && haxe_ui_util_SimpleExpressionEvaluator.evalSingle(StringTools.trim(p),context); } } } else { r = haxe_ui_util_SimpleExpressionEvaluator.evalSingle(s,context); } return r; }; haxe_ui_util_SimpleExpressionEvaluator.evalSingle = function(s,context) { var result = null; var operation = null; var token = ""; var inString = false; var _g = 0; var _g1 = s.length; while(_g < _g1) { var i = _g++; var ch = s.charAt(i); var next = s.charAt(i + 1); if(ch == "'" || ch == "\"") { inString = !inString; } if(inString == false) { if(ch == "+") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.Add; s = HxOverrides.substr(s,i + 1,null); break; } else if(ch == "-") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.Subtract; s = HxOverrides.substr(s,i + 1,null); break; } else if(ch == "*") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.Multiply; s = HxOverrides.substr(s,i + 1,null); break; } else if(ch == "/") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.Divide; s = HxOverrides.substr(s,i + 1,null); break; } else if(ch == ">" && next != "=") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.GreaterThan; s = HxOverrides.substr(s,i + 1,null); break; } else if(ch == "<" && next != "=") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.LessThan; s = HxOverrides.substr(s,i + 1,null); break; } else if(ch == "=" && next == "=") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.Equals; s = HxOverrides.substr(s,i + 2,null); break; } else if(ch == "!" && next == "=") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.NotEquals; s = HxOverrides.substr(s,i + 2,null); break; } else if(ch == ">" && next == "=") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.GreaterThanOrEquals; s = HxOverrides.substr(s,i + 2,null); break; } else if(ch == "<" && next == "=") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.LessThanOrEquals; s = HxOverrides.substr(s,i + 2,null); break; } else if(ch == "&" && next == "&") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.LogicalAnd; s = HxOverrides.substr(s,i + 2,null); break; } else if(ch == "|" && next == "|") { operation = haxe_ui_util_SimpleExpressionEvaluatorOperation.LogicalOr; s = HxOverrides.substr(s,i + 2,null); break; } } token += ch; if(i == s.length - 1) { s = ""; break; } } var r = null; if(s.length > 0) { r = haxe_ui_util_SimpleExpressionEvaluator.evalSingle(s,context); } var trimmedToken = StringTools.trim(token); var v = parseFloat(trimmedToken); if(!isNaN(v) && isFinite(v)) { result = parseFloat(trimmedToken); } else { var value = trimmedToken; value = value.toLowerCase(); if(value == "true" || value == "false") { result = trimmedToken.toLowerCase() == "true"; } else if(StringTools.startsWith(trimmedToken,"'") && StringTools.endsWith(trimmedToken,"'") ? true : StringTools.startsWith(trimmedToken,"\"") && StringTools.endsWith(trimmedToken,"\"")) { result = HxOverrides.substr(trimmedToken,1,trimmedToken.length - 2); } else { var token = ""; var bracketsOpen = 0; var call = null; var callParams = null; var _g = 0; var _g1 = trimmedToken.length; while(_g < _g1) { var i = _g++; var ch = trimmedToken.charAt(i); if(ch == "(") { ++bracketsOpen; if(bracketsOpen == 1) { call = token; token = ""; } else { token += ch; } } else if(ch == ")") { --bracketsOpen; if(bracketsOpen == 0) { callParams = token; } else { token += ")"; } } else { token += ch; } } var prop = null; if(call == null) { prop = token; } var parsedCallParams = []; if(callParams != null) { bracketsOpen = 0; token = ""; var _g = 0; var _g1 = callParams.length; while(_g < _g1) { var i = _g++; var ch = callParams.charAt(i); if(ch == "(") { ++bracketsOpen; } else if(ch == ")") { --bracketsOpen; } if(ch == ",") { if(bracketsOpen == 0) { parsedCallParams.push(token); token = ""; } else { token += ch; } } else { token += ch; } } if(token.length != 0) { parsedCallParams.push(token); } } if(call != null) { var trimmedCall = StringTools.trim(call); if(trimmedCall.length > 0) { var callParts = trimmedCall.split("."); var ref = context; var prevRef = null; var _g = 0; while(_g < callParts.length) { var callPart = callParts[_g]; ++_g; prevRef = ref; if(Object.prototype.hasOwnProperty.call(ref,callPart)) { ref = Reflect.field(ref,callPart); } else { ref = Reflect.getProperty(ref,callPart); } if(ref == null) { throw haxe_Exception.thrown(callPart + " not found"); } } if(ref != null && Reflect.isFunction(ref)) { var paramValues = []; var _g = 0; while(_g < parsedCallParams.length) { var param = parsedCallParams[_g]; ++_g; var paramResult = haxe_ui_util_SimpleExpressionEvaluator.evalSingle(param,context); paramValues.push(paramResult); } result = ref.apply(prevRef,paramValues); } } } else if(prop != null) { var trimmedProp = StringTools.trim(prop); if(trimmedProp.length > 0) { var propParts = trimmedProp.split("."); var propName = propParts.pop(); var ref = context; var _g = 0; while(_g < propParts.length) { var propPart = propParts[_g]; ++_g; ref = Reflect.field(ref,propPart); } if(Object.prototype.hasOwnProperty.call(ref,propName)) { result = Reflect.field(ref,propName); } else { result = Reflect.getProperty(ref,propName); } } } } } if(r != null) { switch(operation._hx_index) { case 0: result += r; break; case 1: result -= r; break; case 2: result *= r; break; case 3: result /= r; break; case 4: result = result == r; break; case 5: result = result != r; break; case 6: result = result > r; break; case 7: result = result >= r; break; case 8: result = result < r; break; case 9: result = result <= r; break; case 10: result = result && r; break; case 11: result = result || r; break; } } return result; }; haxe_ui_util_SimpleExpressionEvaluator.isNum = function(value) { var v = parseFloat(value); if(!isNaN(v)) { return isFinite(v); } else { return false; } }; haxe_ui_util_SimpleExpressionEvaluator.isString = function(value) { if(StringTools.startsWith(value,"'") && StringTools.endsWith(value,"'")) { return true; } if(StringTools.startsWith(value,"\"") && StringTools.endsWith(value,"\"")) { return true; } return false; }; haxe_ui_util_SimpleExpressionEvaluator.isBool = function(value) { value = value.toLowerCase(); if(value != "true") { return value == "false"; } else { return true; } }; var haxe_ui_util_StringUtil = function() { }; $hxClasses["haxe.ui.util.StringUtil"] = haxe_ui_util_StringUtil; haxe_ui_util_StringUtil.__name__ = "haxe.ui.util.StringUtil"; haxe_ui_util_StringUtil.uncapitalizeFirstLetter = function(s) { s = HxOverrides.substr(s,0,1).toLowerCase() + HxOverrides.substr(s,1,s.length); return s; }; haxe_ui_util_StringUtil.capitalizeFirstLetter = function(s) { s = HxOverrides.substr(s,0,1).toUpperCase() + HxOverrides.substr(s,1,s.length); return s; }; haxe_ui_util_StringUtil.capitalizeHyphens = function(s) { return haxe_ui_util_StringUtil.capitalizeDelim(s,"-"); }; haxe_ui_util_StringUtil.capitalizeDelim = function(s,d) { var r = s; var n = r.indexOf(d); while(n != -1) { var before = HxOverrides.substr(r,0,n); var after = HxOverrides.substr(r,n + 1,r.length); r = before + haxe_ui_util_StringUtil.capitalizeFirstLetter(after); n = r.indexOf(d,n + 1); } return r; }; haxe_ui_util_StringUtil.toDashes = function(s,toLower) { if(toLower == null) { toLower = true; } var s1 = new EReg("([a-zA-Z])(?=[A-Z])","g").map(s,function(re) { return "" + re.matched(1) + "-"; }); if(toLower == true) { s1 = s1.toLowerCase(); } return s1; }; haxe_ui_util_StringUtil.splitOnCapitals = function(s,toLower) { if(toLower == null) { toLower = true; } return haxe_ui_util_StringUtil.toDashes(s,toLower).split("-"); }; haxe_ui_util_StringUtil.replaceVars = function(s,params) { if(params != null) { var h = params.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; s = StringTools.replace(s,"${" + k + "}",params.h[k]); } } return s; }; haxe_ui_util_StringUtil.rpad = function(s,count,c) { if(c == null) { c = " "; } var _g = 0; var _g1 = count; while(_g < _g1) { var i = _g++; s += c; } return s; }; haxe_ui_util_StringUtil.padDecimal = function(v,precision) { var s = v == null ? "null" : "" + v; if(precision == null || precision <= 0) { return s; } var n = s.indexOf("."); if(n == -1) { n = s.length; s += "."; } var delta = precision - (s.length - n - 1); return haxe_ui_util_StringUtil.rpad(s,delta,"0"); }; haxe_ui_util_StringUtil.countTokens = function(s,token) { if(s == null || s == "") { return 0; } return s.split(token).length - 1; }; haxe_ui_util_StringUtil.formatNumber = function(n,precision,standardNotation,includeSpace) { if(includeSpace == null) { includeSpace = false; } if(standardNotation == null) { standardNotation = true; } if(precision == null) { precision = 0; } var s = n == null ? "null" : "" + n; if(standardNotation) { var a = Math.abs(n); var i = n; var suffix = ""; if(a >= 0 && a < 1000) { suffix = ""; i = n; } else if(a >= 1000 && a < 1000000) { suffix = "K"; i = n / 1000; } else if(a >= 1000000 && a < 1000000000) { suffix = "M"; i = n / 1000000; } else { suffix = "B"; i = n / 1000000000; } if(suffix.length != 0 && includeSpace) { suffix = " " + suffix; } if(suffix.length != 0) { var precision1 = precision; if(precision1 == null) { precision1 = 0; } i = Math.round(i * Math.pow(10,precision1)) / Math.pow(10,precision1); s = i == null ? "null" : "" + i; var p = s.indexOf("."); if(p == -1 && precision > 0) { p = s.length; s += "."; } s = StringTools.rpad(s,"0",p + precision + 1); } s += suffix; } else { var _this = haxe_ui_util_StringUtil.humanReadableRegex; var by = haxe_ui_locale_Formats.get_thousandsSeparator(); s = s.replace(_this.r,by); } return s; }; var haxe_ui_util_StyleUtil = function() { }; $hxClasses["haxe.ui.util.StyleUtil"] = haxe_ui_util_StyleUtil; haxe_ui_util_StyleUtil.__name__ = "haxe.ui.util.StyleUtil"; haxe_ui_util_StyleUtil.styleProperty2ComponentProperty = function(property) { return haxe_ui_util_StyleUtil.style2ComponentEReg.map(property,function(re) { return re.matched(1).toUpperCase(); }); }; haxe_ui_util_StyleUtil.componentProperty2StyleProperty = function(property) { return haxe_ui_util_StyleUtil.component2StyleEReg.map(property,function(re) { return "-" + re.matched(1).toLowerCase(); }); }; var haxe_ui_util_Timer = function(delay,callback) { haxe_ui_backend_TimerImpl.call(this,delay,callback); }; $hxClasses["haxe.ui.util.Timer"] = haxe_ui_util_Timer; haxe_ui_util_Timer.__name__ = "haxe.ui.util.Timer"; haxe_ui_util_Timer.delay = function(f,timeMs) { var t = null; t = new haxe_ui_util_Timer(timeMs,function() { t.stop(); f(); }); return t; }; haxe_ui_util_Timer.__super__ = haxe_ui_backend_TimerImpl; haxe_ui_util_Timer.prototype = $extend(haxe_ui_backend_TimerImpl.prototype,{ stop: function() { haxe_ui_backend_TimerImpl.prototype.stop.call(this); } ,__class__: haxe_ui_util_Timer }); var haxe_ui_util_TypeConverter = function() { }; $hxClasses["haxe.ui.util.TypeConverter"] = haxe_ui_util_TypeConverter; haxe_ui_util_TypeConverter.__name__ = "haxe.ui.util.TypeConverter"; haxe_ui_util_TypeConverter.convertFrom = function(input) { var output = input; var _g = Type.typeof(input); if(_g._hx_index == 6) { if(_g.c == String) { var s = input == null ? "null" : Std.string(input); if(s == "true" || s == "false") { output = s == "true"; } else if(new EReg("^-?[0-9]*$","i").match(s == null ? "null" : "" + s)) { output = Std.parseInt(s); } else if(new EReg("^-?[0-9]*\\.[0-9]*$","i").match(s == null ? "null" : "" + s)) { output = parseFloat(s); } } } return output; }; haxe_ui_util_TypeConverter.convertTo = function(input,type) { if(type == null) { return input; } switch(type.toLowerCase()) { case "bool": return (input == null ? "null" : Std.string(input)) == "true"; case "color": return haxe_ui_util_Color.fromString(input == null ? "null" : Std.string(input)); case "float": if(input == null) { return 0; } var r = parseFloat((input == null ? "null" : Std.string(input))); if(isNaN(r)) { return 0; } return r; case "int": if(input == null) { return 0; } var r = Std.parseInt(input == null ? "null" : Std.string(input)); if(r == null) { return 0; } return r; case "dynamic":case "scalemode":case "scrollmode":case "scrollpolicy":case "selectionmode":case "variant": return input; case "string": if(input == null) { return "null"; } else { return Std.string(input); } break; default: } return input; }; var haxe_ui_util_VariantType = $hxEnums["haxe.ui.util.VariantType"] = { __ename__:"haxe.ui.util.VariantType",__constructs__:null ,VT_Int: ($_=function(s) { return {_hx_index:0,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_Int",$_.__params__ = ["s"],$_) ,VT_Float: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_Float",$_.__params__ = ["s"],$_) ,VT_String: ($_=function(s) { return {_hx_index:2,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_String",$_.__params__ = ["s"],$_) ,VT_Bool: ($_=function(s) { return {_hx_index:3,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_Bool",$_.__params__ = ["s"],$_) ,VT_Array: ($_=function(s) { return {_hx_index:4,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_Array",$_.__params__ = ["s"],$_) ,VT_DataSource: ($_=function(s) { return {_hx_index:5,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_DataSource",$_.__params__ = ["s"],$_) ,VT_Component: ($_=function(s) { return {_hx_index:6,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_Component",$_.__params__ = ["s"],$_) ,VT_Date: ($_=function(s) { return {_hx_index:7,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_Date",$_.__params__ = ["s"],$_) ,VT_ImageData: ($_=function(s) { return {_hx_index:8,s:s,__enum__:"haxe.ui.util.VariantType",toString:$estr}; },$_._hx_name="VT_ImageData",$_.__params__ = ["s"],$_) }; haxe_ui_util_VariantType.__constructs__ = [haxe_ui_util_VariantType.VT_Int,haxe_ui_util_VariantType.VT_Float,haxe_ui_util_VariantType.VT_String,haxe_ui_util_VariantType.VT_Bool,haxe_ui_util_VariantType.VT_Array,haxe_ui_util_VariantType.VT_DataSource,haxe_ui_util_VariantType.VT_Component,haxe_ui_util_VariantType.VT_Date,haxe_ui_util_VariantType.VT_ImageData]; haxe_ui_util_VariantType.__empty_constructs__ = []; var haxe_ui_util_Variant = {}; haxe_ui_util_Variant.__properties__ = {get_isNull:"get_isNull",get_isDataSource:"get_isDataSource",get_isImageData:"get_isImageData",get_isComponent:"get_isComponent",get_isDate:"get_isDate",get_isArray:"get_isArray",get_isBool:"get_isBool",get_isNumber:"get_isNumber",get_isInt:"get_isInt",get_isFloat:"get_isFloat",get_isString:"get_isString"}; haxe_ui_util_Variant.fromString = function(s) { return haxe_ui_util_VariantType.VT_String(s); }; haxe_ui_util_Variant.toString = function(this1) { if(this1 == null) { return null; } switch(this1._hx_index) { case 0: var s = this1.s; if(s == null) { return "null"; } else { return "" + s; } break; case 1: var s = this1.s; if(s == null) { return "null"; } else { return "" + s; } break; case 2: var s = this1.s; return s; case 3: var s = this1.s; if(s == null) { return "null"; } else { return "" + s; } break; case 4: var s = this1.s; return Std.string(s); case 5: var s = this1.s; if(s == null) { return null; } else { return ""; } break; case 6: var s = this1.s; if(s == null) { return null; } else { return ""; } break; case 7: var s = this1.s; return Std.string(s); case 8: var s = this1.s; if(s == null) { return null; } else { return ""; } break; } }; haxe_ui_util_Variant.get_isString = function(this1) { if(this1._hx_index == 2) { var _g = this1.s; return true; } else { return false; } }; haxe_ui_util_Variant.fromFloat = function(s) { return haxe_ui_util_VariantType.VT_Float(s); }; haxe_ui_util_Variant.toFloat = function(this1) { if(haxe_ui_util_Variant.get_isNull(this1)) { return null; } switch(this1._hx_index) { case 0: var s = this1.s; return s; case 1: var s = this1.s; return s; default: throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isFloat = function(this1) { if(this1._hx_index == 1) { var _g = this1.s; return true; } else { return false; } }; haxe_ui_util_Variant.fromInt = function(s) { return haxe_ui_util_VariantType.VT_Int(s); }; haxe_ui_util_Variant.toInt = function(this1) { if(haxe_ui_util_Variant.get_isNull(this1)) { return null; } switch(this1._hx_index) { case 0: var s = this1.s; return s; case 1: var s = this1.s; return s | 0; default: throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isInt = function(this1) { if(this1._hx_index == 0) { var _g = this1.s; return true; } else { return false; } }; haxe_ui_util_Variant.get_isNumber = function(this1) { switch(this1._hx_index) { case 0: var _g = this1.s; return true; case 1: var _g = this1.s; return true; default: return false; } }; haxe_ui_util_Variant.toNumber = function(this1) { switch(this1._hx_index) { case 0: var s = this1.s; return s; case 1: var s = this1.s; return s; default: throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.fromBool = function(s) { return haxe_ui_util_VariantType.VT_Bool(s); }; haxe_ui_util_Variant.toBool = function(this1) { if(this1 == null) { return false; } switch(this1._hx_index) { case 2: var s = this1.s; return s == "true"; case 3: var s = this1.s; return s; default: throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isBool = function(this1) { if(this1._hx_index == 3) { var _g = this1.s; return true; } return false; }; haxe_ui_util_Variant.fromArray = function(s) { if(s == null) { return null; } else { return haxe_ui_util_VariantType.VT_Array(s); } }; haxe_ui_util_Variant.toArray = function(this1) { if(this1 == null) { return null; } if(this1._hx_index == 4) { var s = this1.s; return s; } else { throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isArray = function(this1) { if(this1._hx_index == 4) { var _g = this1.s; return true; } return false; }; haxe_ui_util_Variant.fromDate = function(s) { return haxe_ui_util_VariantType.VT_Date(s); }; haxe_ui_util_Variant.toDate = function(this1) { if(this1 == null) { return null; } if(this1._hx_index == 7) { var s = this1.s; return s; } else { throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isDate = function(this1) { if(this1._hx_index == 7) { var _g = this1.s; return true; } return false; }; haxe_ui_util_Variant.fromComponent = function(s) { return haxe_ui_util_VariantType.VT_Component(s); }; haxe_ui_util_Variant.toComponent = function(this1) { if(this1 == null) { return null; } if(this1._hx_index == 6) { var s = this1.s; return s; } else { throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isComponent = function(this1) { if(this1._hx_index == 6) { var _g = this1.s; return true; } return false; }; haxe_ui_util_Variant.fromImageData = function(s) { return haxe_ui_util_VariantType.VT_ImageData(s); }; haxe_ui_util_Variant.toImageData = function(this1) { if(this1 == null) { return null; } if(this1._hx_index == 8) { var s = this1.s; return s; } else { throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isImageData = function(this1) { if(this1._hx_index == 8) { var _g = this1.s; return true; } return false; }; haxe_ui_util_Variant.fromDataSource = function(s) { return haxe_ui_util_VariantType.VT_DataSource(s); }; haxe_ui_util_Variant.toDataSource = function(this1) { if(this1 == null) { return null; } if(this1._hx_index == 5) { var s = this1.s; return s; } else { throw haxe_Exception.thrown("Variant Type Error (" + Std.string(this1) + ")"); } }; haxe_ui_util_Variant.get_isDataSource = function(this1) { if(this1._hx_index == 5) { var _g = this1.s; return true; } return false; }; haxe_ui_util_Variant.addFloat = function(lhs,rhs) { return lhs + haxe_ui_util_Variant.toNumber(rhs); }; haxe_ui_util_Variant.addInt = function(lhs,rhs) { return lhs + haxe_ui_util_Variant.toInt(rhs); }; haxe_ui_util_Variant.subtractFloat = function(lhs,rhs) { return lhs - haxe_ui_util_Variant.toNumber(rhs); }; haxe_ui_util_Variant.subtractInt = function(lhs,rhs) { return lhs - haxe_ui_util_Variant.toInt(rhs); }; haxe_ui_util_Variant.add = function(this1,rhs) { var tmp; var tmp1; switch(this1._hx_index) { case 0: var _g = this1.s; tmp1 = true; break; case 1: var _g = this1.s; tmp1 = true; break; default: tmp1 = false; } if(tmp1) { switch(rhs._hx_index) { case 0: var _g = rhs.s; tmp = true; break; case 1: var _g = rhs.s; tmp = true; break; default: tmp = false; } } else { tmp = false; } if(tmp) { return haxe_ui_util_Variant.fromFloat(haxe_ui_util_Variant.toNumber(this1) + haxe_ui_util_Variant.toNumber(rhs)); } else if(haxe_ui_util_Variant.get_isString(this1) && haxe_ui_util_Variant.get_isString(rhs)) { return haxe_ui_util_Variant.fromString(haxe_ui_util_Variant.toString(this1) + haxe_ui_util_Variant.toString(rhs)); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.postInc = function(this1) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { var old = this1; this1 = haxe_ui_util_VariantType.VT_Float(haxe_ui_util_Variant.toNumber(this1) + 1); return old; } else { throw haxe_Exception.thrown("Variant operation error"); } }; haxe_ui_util_Variant.preInc = function(this1) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { this1 = haxe_ui_util_VariantType.VT_Float(haxe_ui_util_Variant.toNumber(this1) + 1); return this1; } else { throw haxe_Exception.thrown("Variant operation error"); } }; haxe_ui_util_Variant.subtract = function(this1,rhs) { var tmp; var tmp1; switch(this1._hx_index) { case 0: var _g = this1.s; tmp1 = true; break; case 1: var _g = this1.s; tmp1 = true; break; default: tmp1 = false; } if(tmp1) { switch(rhs._hx_index) { case 0: var _g = rhs.s; tmp = true; break; case 1: var _g = rhs.s; tmp = true; break; default: tmp = false; } } else { tmp = false; } if(tmp) { return haxe_ui_util_Variant.fromFloat(haxe_ui_util_Variant.toNumber(this1) - haxe_ui_util_Variant.toNumber(rhs)); } else if(haxe_ui_util_Variant.get_isString(this1) && haxe_ui_util_Variant.get_isString(rhs)) { return haxe_ui_util_Variant.fromString(StringTools.replace(haxe_ui_util_Variant.toString(this1),haxe_ui_util_Variant.toString(rhs),"")); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.postDeinc = function(this1) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { var old = this1; this1 = haxe_ui_util_VariantType.VT_Float(haxe_ui_util_Variant.toNumber(this1) - 1); return old; } else { throw haxe_Exception.thrown("Variant operation error"); } }; haxe_ui_util_Variant.preDeinc = function(this1) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { this1 = haxe_ui_util_VariantType.VT_Float(haxe_ui_util_Variant.toNumber(this1) - 1); return this1; } else { throw haxe_Exception.thrown("Variant operation error"); } }; haxe_ui_util_Variant.multiply = function(this1,rhs) { var tmp; var tmp1; switch(this1._hx_index) { case 0: var _g = this1.s; tmp1 = true; break; case 1: var _g = this1.s; tmp1 = true; break; default: tmp1 = false; } if(tmp1) { switch(rhs._hx_index) { case 0: var _g = rhs.s; tmp = true; break; case 1: var _g = rhs.s; tmp = true; break; default: tmp = false; } } else { tmp = false; } if(tmp) { return haxe_ui_util_Variant.fromFloat(haxe_ui_util_Variant.toNumber(this1) * haxe_ui_util_Variant.toNumber(rhs)); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.divide = function(this1,rhs) { var tmp; var tmp1; switch(this1._hx_index) { case 0: var _g = this1.s; tmp1 = true; break; case 1: var _g = this1.s; tmp1 = true; break; default: tmp1 = false; } if(tmp1) { switch(rhs._hx_index) { case 0: var _g = rhs.s; tmp = true; break; case 1: var _g = rhs.s; tmp = true; break; default: tmp = false; } } else { tmp = false; } if(tmp) { return haxe_ui_util_Variant.fromFloat(haxe_ui_util_Variant.toNumber(this1) / haxe_ui_util_Variant.toNumber(rhs)); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.gt = function(this1,rhs) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { return haxe_ui_util_Variant.toNumber(this1) > haxe_ui_util_Variant.toNumber(rhs); } else if(haxe_ui_util_Variant.get_isString(this1)) { return haxe_ui_util_Variant.toString(this1) > haxe_ui_util_Variant.toString(rhs); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.gte = function(this1,rhs) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { return haxe_ui_util_Variant.toNumber(this1) >= haxe_ui_util_Variant.toNumber(rhs); } else if(haxe_ui_util_Variant.get_isString(this1)) { return haxe_ui_util_Variant.toString(this1) >= haxe_ui_util_Variant.toString(rhs); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.lt = function(this1,rhs) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { return haxe_ui_util_Variant.toNumber(this1) < haxe_ui_util_Variant.toNumber(rhs); } else if(haxe_ui_util_Variant.get_isString(this1)) { return haxe_ui_util_Variant.toString(this1) < haxe_ui_util_Variant.toString(rhs); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.lte = function(this1,rhs) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { return haxe_ui_util_Variant.toNumber(this1) <= haxe_ui_util_Variant.toNumber(rhs); } else if(haxe_ui_util_Variant.get_isString(this1)) { return haxe_ui_util_Variant.toString(this1) <= haxe_ui_util_Variant.toString(rhs); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.negate = function(this1) { var tmp; switch(this1._hx_index) { case 0: var _g = this1.s; tmp = true; break; case 1: var _g = this1.s; tmp = true; break; default: tmp = false; } if(tmp) { return haxe_ui_util_Variant.fromFloat(-haxe_ui_util_Variant.toNumber(this1)); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.invert = function(this1) { if(haxe_ui_util_Variant.get_isBool(this1)) { var v = haxe_ui_util_Variant.toBool(this1); v = !v; return haxe_ui_util_Variant.fromBool(v); } throw haxe_Exception.thrown("Variant operation error"); }; haxe_ui_util_Variant.eq = function(this1,rhs) { if(haxe_ui_util_Variant.get_isNull(this1) && haxe_ui_util_Variant.get_isNull(rhs)) { return true; } if(haxe_ui_util_Variant.get_isNull(this1) && !haxe_ui_util_Variant.get_isNull(rhs)) { return false; } if(!haxe_ui_util_Variant.get_isNull(this1) && haxe_ui_util_Variant.get_isNull(rhs)) { return false; } var tmp; var tmp1; switch(this1._hx_index) { case 0: var _g = this1.s; tmp1 = true; break; case 1: var _g = this1.s; tmp1 = true; break; default: tmp1 = false; } if(tmp1) { switch(rhs._hx_index) { case 0: var _g = rhs.s; tmp = true; break; case 1: var _g = rhs.s; tmp = true; break; default: tmp = false; } } else { tmp = false; } if(tmp) { return haxe_ui_util_Variant.toNumber(this1) == haxe_ui_util_Variant.toNumber(rhs); } else if(haxe_ui_util_Variant.get_isBool(this1) && haxe_ui_util_Variant.get_isBool(rhs)) { return haxe_ui_util_Variant.toBool(this1) == haxe_ui_util_Variant.toBool(rhs); } else if(haxe_ui_util_Variant.get_isString(this1) && haxe_ui_util_Variant.get_isString(rhs)) { return haxe_ui_util_Variant.toString(this1) == haxe_ui_util_Variant.toString(rhs); } return false; }; haxe_ui_util_Variant.neq = function(this1,rhs) { return !haxe_ui_util_Variant.eq(this1,rhs); }; haxe_ui_util_Variant.get_isNull = function(this1) { if(this1 == null) { return true; } return haxe_ui_util_Variant.toString(this1) == null; }; haxe_ui_util_Variant.fromDynamic = function(r) { var v = null; if(r != null) { var unstringable = ((r) instanceof haxe_ui_core_Component) || ((r) instanceof flixel_graphics_frames_FlxFrame) || ((r) instanceof Array) || ((r) instanceof haxe_ui_data_DataSource); if(unstringable == false) { var tmp; if(haxe_ui_util_Variant.containsOnlyDigits(r)) { var f = parseFloat(("" + Std.string(r))); tmp = isNaN(f) == false; } else { tmp = false; } if(tmp) { if(Std.string(r).indexOf(".") != -1) { v = haxe_ui_util_Variant.fromFloat(parseFloat(("" + Std.string(r)))); } else { v = haxe_ui_util_Variant.fromInt(Std.parseInt("" + Std.string(r))); } } else if("" + Std.string(r) == "true" || Std.string(r) + "" == "false") { v = haxe_ui_util_Variant.fromBool("" + Std.string(r) == "true"); } else if(typeof(r) == "string") { v = haxe_ui_util_Variant.fromString(js_Boot.__cast(r , String)); } else { v = r; } } else if(((r) instanceof haxe_ui_core_Component)) { v = haxe_ui_util_Variant.fromComponent(js_Boot.__cast(r , haxe_ui_core_Component)); } else if(((r) instanceof haxe_ui_data_DataSource)) { v = r; } else if(((r) instanceof Array)) { v = r; } else if(((r) instanceof Date)) { v = haxe_ui_util_Variant.fromDate(js_Boot.__cast(r , Date)); } else if(((r) instanceof flixel_graphics_frames_FlxFrame)) { v = haxe_ui_util_Variant.fromImageData(js_Boot.__cast(r , flixel_graphics_frames_FlxFrame)); } else { v = r; } } return v; }; haxe_ui_util_Variant.containsOnlyDigits = function(s) { if(((s) instanceof haxe_ui_core_Component) || ((s) instanceof flixel_graphics_frames_FlxFrame) || ((s) instanceof Array) || ((s) instanceof haxe_ui_data_DataSource)) { return false; } if(typeof(s) == "number" && ((s | 0) === s) || typeof(s) == "number") { return true; } var t = Std.string(s); var _g = 0; var _g1 = t.length; while(_g < _g1) { var i = _g++; var c = t.charAt(i); if(c != "0" && c != "1" && c != "2" && c != "3" && c != "4" && c != "5" && c != "6" && c != "7" && c != "8" && c != "9" && c != "." && c != "-") { return false; } } return true; }; haxe_ui_util_Variant.toDynamic = function(v) { var d = v; if(v != null) { switch(v._hx_index) { case 0: var y = v.s; d = y; break; case 1: var y = v.s; d = y; break; case 2: var y = v.s; d = y; break; case 3: var y = v.s; d = y; break; case 4: var y = v.s; d = y; break; case 5: var y = v.s; d = y; break; case 6: var y = v.s; d = y; break; case 7: var y = v.s; d = y; break; case 8: var y = v.s; d = y; break; } } return d; }; var haxe_ui_util_html5_FileSaver = function() { this._callback = null; this._link = null; }; $hxClasses["haxe.ui.util.html5.FileSaver"] = haxe_ui_util_html5_FileSaver; haxe_ui_util_html5_FileSaver.__name__ = "haxe.ui.util.html5.FileSaver"; haxe_ui_util_html5_FileSaver.prototype = { _link: null ,_callback: null ,saveText: function(fileName,text,callback) { if(fileName == null) { fileName = ""; } this._callback = callback; var file = new Blob([text],{ type : "text/plain"}); this._link = window.document.createElement("a"); this._link.setAttribute("href",URL.createObjectURL(file)); this._link.setAttribute("download",fileName); this._link.style.display = "none"; window.document.body.appendChild(this._link); this._link.click(); window.addEventListener("focus",$bind(this,this.onWindowFocus)); } ,saveBinary: function(fileName,bytes,callback) { if(fileName == null) { fileName = ""; } this._callback = callback; var file = new Blob([bytes.b.bufferValue]); this._link = window.document.createElement("a"); this._link.setAttribute("href",URL.createObjectURL(file)); this._link.setAttribute("download",fileName); this._link.style.display = "none"; window.document.body.appendChild(this._link); this._link.click(); window.addEventListener("focus",$bind(this,this.onWindowFocus)); } ,onWindowFocus: function() { this.destroy(); if(this._callback != null) { this._callback(true); } } ,destroy: function() { if(this._link != null) { window.document.body.removeChild(this._link); URL.revokeObjectURL(this._link.href); this._link = null; } window.removeEventListener("focus",$bind(this,this.onWindowFocus)); } ,__class__: haxe_ui_util_html5_FileSaver }; var haxe_ui_util_html5_ReadMode = function() { }; $hxClasses["haxe.ui.util.html5.ReadMode"] = haxe_ui_util_html5_ReadMode; haxe_ui_util_html5_ReadMode.__name__ = "haxe.ui.util.html5.ReadMode"; var haxe_ui_util_html5_FileSelector = function() { this._hasChanged = false; this._readMode = "none"; }; $hxClasses["haxe.ui.util.html5.FileSelector"] = haxe_ui_util_html5_FileSelector; haxe_ui_util_html5_FileSelector.__name__ = "haxe.ui.util.html5.FileSelector"; haxe_ui_util_html5_FileSelector.prototype = { _fileInput: null ,_readMode: null ,_callback: null ,selectFile: function(callback,readMode,multiple,extensions) { if(multiple == null) { multiple = false; } if(readMode == null) { readMode = "none"; } this._callback = callback; this._readMode = readMode; this.createFileInput(multiple,extensions); this._fileInput.click(); } ,_hasChanged: null ,onFileInputChanged: function(e) { var _gthis = this; this._hasChanged = true; var infos = []; var files = []; var selectedFiles = e.target.files; var _g = 0; var _g1 = selectedFiles.length; while(_g < _g1) { var i = _g++; var selectedFile = selectedFiles[i]; var info = { name : selectedFile.name, isBinary : false}; infos.push(info); files.push(selectedFile); } if(this._readMode == "none") { if(this._callback != null) { this._callback(false,infos); } } else { this.readFileContents(infos.slice(),files,function() { _gthis._callback(false,infos); }); } this.destroyFileInput(); } ,createFileInput: function(multiple,extensions) { if(multiple == null) { multiple = false; } this._hasChanged = false; window.addEventListener("focus",$bind(this,this.onWindowFocus)); this._fileInput = window.document.createElement("input"); this._fileInput.type = "file"; var tmp = StringTools.replace(StringTools.replace(StringTools.replace(HxOverrides.dateStr(new Date()),"-","_"),":","_")," ","_"); this._fileInput.id = "fileInput_" + tmp; this._fileInput.style.display = "none"; this._fileInput.accept = this.buildAcceptString(extensions); if(multiple == true) { this._fileInput.multiple = true; } this._fileInput.onchange = $bind(this,this.onFileInputChanged); window.document.body.appendChild(this._fileInput); } ,buildAcceptString: function(extensions) { var s = null; if(extensions != null && extensions.length > 0) { var arr = []; var _g = 0; while(_g < extensions.length) { var e = extensions[_g]; ++_g; var ext = e.extension; ext = StringTools.trim(ext); if(ext.length == 0) { continue; } var parts = ext.split(","); var _g1 = 0; while(_g1 < parts.length) { var p = parts[_g1]; ++_g1; p = StringTools.trim(p); if(p.length == 0) { continue; } arr.push("." + p); } } s = arr.join(","); } return s; } ,readFileContents: function(infos,files,callback) { var _gthis = this; if(infos.length == 0) { callback(); return; } var info = infos.shift(); var file = files.shift(); var reader = new FileReader(); if(this._readMode == "text") { reader.readAsText(file,"UTF-8"); } else if(this._readMode == "binary") { reader.readAsArrayBuffer(file); } reader.onload = function(readerEvent) { var result = readerEvent.target.result; if(_gthis._readMode == "text") { info.isBinary = false; info.text = result; } else if(_gthis._readMode == "binary") { info.isBinary = true; info.bytes = haxe_io_Bytes.ofData(result); } _gthis.readFileContents(infos,files,callback); }; } ,onWindowFocus: function(e) { var _gthis = this; haxe_ui_util_Timer.delay(function() { _gthis.destroyFileInput(); if(_gthis._hasChanged == false) { if(_gthis._callback != null) { _gthis._callback(true,null); } } },200); } ,destroyFileInput: function() { if(this._fileInput == null) { return; } window.removeEventListener("focus",$bind(this,this.onWindowFocus)); this._fileInput.onchange = null; window.document.body.removeChild(this._fileInput); this._fileInput = null; } ,__class__: haxe_ui_util_html5_FileSelector }; var haxe_ui_validation_ValidationManager = function() { this._displayQueue = []; this._queue = []; this.isValidating = false; this.isPending = false; }; $hxClasses["haxe.ui.validation.ValidationManager"] = haxe_ui_validation_ValidationManager; haxe_ui_validation_ValidationManager.__name__ = "haxe.ui.validation.ValidationManager"; haxe_ui_validation_ValidationManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_validation_ValidationManager.instance = null; haxe_ui_validation_ValidationManager.get_instance = function() { if(haxe_ui_validation_ValidationManager.instance == null) { haxe_ui_validation_ValidationManager.instance = new haxe_ui_validation_ValidationManager(); } return haxe_ui_validation_ValidationManager.instance; }; haxe_ui_validation_ValidationManager.prototype = { isValidating: null ,isPending: null ,_queue: null ,_displayQueue: null ,_events: null ,registerEvent: function(type,listener) { if(this._events == null) { this._events = new haxe_ui_util_EventMap(); } this._events.add(type,listener); } ,unregisterEvent: function(type,listener) { if(this._events != null) { this._events.remove(type,listener); } } ,dispatch: function(event) { if(this._events != null) { this._events.invoke(event.type,event); } } ,dispose: function() { this.isValidating = false; this._queue.splice(0,this._queue.length); } ,add: function(object) { if(this._queue.indexOf(object) != -1) { return; } var queueLength = this._queue.length; if(this.isValidating == true) { var depth = object.get_depth(); var min = 0; var max = queueLength; var i = 0; var otherDepth = 0; while(max > min) { i = min + max >>> 1; otherDepth = this._queue[i].get_depth(); if(otherDepth == depth) { break; } else if(otherDepth < depth) { max = i; } else { min = i + 1; } } if(otherDepth >= depth) { ++i; } this._queue.splice(i,0,object); } else { this._queue[queueLength] = object; if(this.isPending == false) { this.isPending = true; haxe_ui_Toolkit.callLater($bind(this,this.process)); } } } ,addDisplay: function(item,nextFrame) { if(nextFrame == null) { nextFrame = true; } if(this._displayQueue.indexOf(item) == -1) { this._displayQueue.push(item); } if(nextFrame == false) { this.process(); } } ,process: function() { if(this.isValidating == true || this.isPending == false) { return; } var queueLength = this._queue.length; if(queueLength == 0) { this.isPending = false; return; } this.isValidating = true; if(queueLength > 1) { this._queue.sort($bind(this,this.queueSortFunction)); } this.dispatch(new haxe_ui_events_ValidationEvent(haxe_ui_events_ValidationEvent.START)); while(this._queue.length > 0) { var item = this._queue.shift(); if(item.get_depth() < 0) { continue; } item.validateComponent(); } var _g = 0; var _g1 = this._displayQueue.length; while(_g < _g1) { var i = _g++; var item = this._displayQueue[i]; item.updateComponentDisplay(); } this._displayQueue.splice(0,this._displayQueue.length); this.isValidating = false; if(this._queue.length > 0) { this.isPending = true; haxe_ui_Toolkit.callLater($bind(this,this.process)); } else { this.isPending = false; } this.dispatch(new haxe_ui_events_ValidationEvent(haxe_ui_events_ValidationEvent.STOP)); } ,queueSortFunction: function(first,second) { var difference = second.get_depth() - first.get_depth(); if(difference > 0) { return 1; } else if(difference < 0) { return -1; } else { return 0; } } ,__class__: haxe_ui_validation_ValidationManager }; var haxe_ui_validators_IValidator = function() { }; $hxClasses["haxe.ui.validators.IValidator"] = haxe_ui_validators_IValidator; haxe_ui_validators_IValidator.__name__ = "haxe.ui.validators.IValidator"; haxe_ui_validators_IValidator.__isInterface__ = true; haxe_ui_validators_IValidator.prototype = { invalidMessage: null ,setup: null ,validate: null ,setProperty: null ,__class__: haxe_ui_validators_IValidator }; var haxe_ui_validators_Validator = function() { this.invalidStyleName = "invalid-value"; this.validStyleName = "valid-value"; this.applyInvalid = true; this.applyValid = true; }; $hxClasses["haxe.ui.validators.Validator"] = haxe_ui_validators_Validator; haxe_ui_validators_Validator.__name__ = "haxe.ui.validators.Validator"; haxe_ui_validators_Validator.__interfaces__ = [haxe_ui_validators_IValidator]; haxe_ui_validators_Validator.prototype = { invalidMessage: null ,applyValid: null ,applyInvalid: null ,validStyleName: null ,invalidStyleName: null ,setup: function(component) { } ,validate: function(component) { return this.validateInternal(component); } ,validateInternal: function(component) { var valid = null; var _g = Type.typeof(component.get_value()); switch(_g._hx_index) { case 0: valid = this.validateString(null); break; case 4: valid = this.validateString(component.get_text()); break; case 6: if(_g.c == String) { var stringValue = null; if(component.get_value() != null) { stringValue = Std.string(component.get_value()); } valid = this.validateString(stringValue); } else { haxe_Log.trace("unsupported",{ fileName : "haxe/ui/validators/Validator.hx", lineNumber : 38, className : "haxe.ui.validators.Validator", methodName : "validateInternal", customParams : [Type.typeof(component.get_value()),component.get_id(),component.get_className(),component.get_value()]}); } break; default: haxe_Log.trace("unsupported",{ fileName : "haxe/ui/validators/Validator.hx", lineNumber : 38, className : "haxe.ui.validators.Validator", methodName : "validateInternal", customParams : [Type.typeof(component.get_value()),component.get_id(),component.get_className(),component.get_value()]}); } if(valid == null) { this.onReset(component); return valid; } if(valid) { if(this.applyValid) { this.onValid(component); } else { this.onReset(component); } } else if(this.applyInvalid) { this.onInvalid(component); } else { this.onReset(component); } return valid; } ,onReset: function(component) { component.removeClasses([this.validStyleName,this.invalidStyleName],true,true); } ,onValid: function(component) { component.swapClass(this.validStyleName,this.invalidStyleName,true,true); } ,onInvalid: function(component) { component.swapClass(this.invalidStyleName,this.validStyleName,true,true); } ,validateString: function(s) { return null; } ,setProperty: function(name,value) { switch(name) { case "applyInvalid": this.applyInvalid = value; break; case "applyValid": this.applyValid = value; break; case "invalidMessage": this.invalidMessage = value; break; } } ,__class__: haxe_ui_validators_Validator }; var haxe_ui_validators_PatternValidator = function() { this.pattern = null; haxe_ui_validators_Validator.call(this); }; $hxClasses["haxe.ui.validators.PatternValidator"] = haxe_ui_validators_PatternValidator; haxe_ui_validators_PatternValidator.__name__ = "haxe.ui.validators.PatternValidator"; haxe_ui_validators_PatternValidator.__super__ = haxe_ui_validators_Validator; haxe_ui_validators_PatternValidator.prototype = $extend(haxe_ui_validators_Validator.prototype,{ pattern: null ,validateString: function(s) { if(this.pattern == null) { return null; } var valid = null; if(s != null && s.length > 0) { valid = this.pattern.match(s); } return valid; } ,setProperty: function(name,value) { if(name == "pattern") { this.pattern = new EReg(value == null ? "null" : Std.string(value),"gm"); } else { haxe_ui_validators_Validator.prototype.setProperty.call(this,name,value); } } ,__class__: haxe_ui_validators_PatternValidator }); var haxe_ui_validators_EmailValidator = function() { haxe_ui_validators_PatternValidator.call(this); this.invalidMessage = "Invalid email address"; this.pattern = new EReg("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$","gm"); }; $hxClasses["haxe.ui.validators.EmailValidator"] = haxe_ui_validators_EmailValidator; haxe_ui_validators_EmailValidator.__name__ = "haxe.ui.validators.EmailValidator"; haxe_ui_validators_EmailValidator.__super__ = haxe_ui_validators_PatternValidator; haxe_ui_validators_EmailValidator.prototype = $extend(haxe_ui_validators_PatternValidator.prototype,{ __class__: haxe_ui_validators_EmailValidator }); var haxe_ui_validators_RequiredValidator = function() { haxe_ui_validators_Validator.call(this); this.invalidMessage = "{{form.field.required}}"; this.invalidStyleName = "required-value"; }; $hxClasses["haxe.ui.validators.RequiredValidator"] = haxe_ui_validators_RequiredValidator; haxe_ui_validators_RequiredValidator.__name__ = "haxe.ui.validators.RequiredValidator"; haxe_ui_validators_RequiredValidator.__super__ = haxe_ui_validators_Validator; haxe_ui_validators_RequiredValidator.prototype = $extend(haxe_ui_validators_Validator.prototype,{ setup: function(component) { component.addClass("required"); } ,validateString: function(s) { var valid = null; if(s == null) { valid = false; } else { valid = s.length > 0; } return valid; } ,onValid: function(component) { component.removeClass(this.invalidStyleName,true,true); } ,onInvalid: function(component) { component.addClass(this.invalidStyleName,true,true); } ,__class__: haxe_ui_validators_RequiredValidator }); var haxe_ui_validators_ValidatorManager = function() { this._registeredValidators = new haxe_ds_StringMap(); }; $hxClasses["haxe.ui.validators.ValidatorManager"] = haxe_ui_validators_ValidatorManager; haxe_ui_validators_ValidatorManager.__name__ = "haxe.ui.validators.ValidatorManager"; haxe_ui_validators_ValidatorManager.__properties__ = {get_instance:"get_instance"}; haxe_ui_validators_ValidatorManager.instance = null; haxe_ui_validators_ValidatorManager.get_instance = function() { if(haxe_ui_validators_ValidatorManager.instance == null) { haxe_ui_validators_ValidatorManager.instance = new haxe_ui_validators_ValidatorManager(); } return haxe_ui_validators_ValidatorManager.instance; }; haxe_ui_validators_ValidatorManager.prototype = { _registeredValidators: null ,registerValidator: function(id,ctor,defaultProperties) { this._registeredValidators.h[id] = { ctor : ctor, defaultProperties : defaultProperties}; } ,createValidator: function(id,config) { var item = this._registeredValidators.h[id]; if(item == null) { return null; } var v = item.ctor(); if(item.defaultProperties != null) { var h = item.defaultProperties.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; v.setProperty(k,item.defaultProperties.h[k]); } } return v; } ,__class__: haxe_ui_validators_ValidatorManager }; var haxe_ui_validators_Validators = {}; haxe_ui_validators_Validators.get = function(this1,index) { return this1.list[index]; }; haxe_ui_validators_Validators.fromArray = function(list) { var ret = new haxe_ui_validators__$Validators_ValidatorsImpl(); ret.list = list; return ret; }; var haxe_ui_validators__$Validators_ValidatorsImpl = function(component) { this._areValid = true; this.list = []; this.component = component; }; $hxClasses["haxe.ui.validators._Validators.ValidatorsImpl"] = haxe_ui_validators__$Validators_ValidatorsImpl; haxe_ui_validators__$Validators_ValidatorsImpl.__name__ = "haxe.ui.validators._Validators.ValidatorsImpl"; haxe_ui_validators__$Validators_ValidatorsImpl.prototype = { list: null ,component: null ,length: null ,get_length: function() { if(this.list == null) { return 0; } return this.list.length; } ,setup: function() { var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var item = _g1[_g]; ++_g; if(item == null) { continue; } item.setup(this.component); } } ,_areValid: null ,areValid: null ,get_areValid: function() { return this._areValid; } ,validate: function() { this._areValid = true; var _g = 0; var _g1 = this.list; while(_g < _g1.length) { var item = _g1[_g]; ++_g; if(item == null) { continue; } var r = item.validate(this.component); if(r != null && r == false) { this._areValid = false; } } return this._areValid; } ,iterator: function() { return new haxe_ui_validators__$Validators_ValidatorsIterator(this.list); } ,__class__: haxe_ui_validators__$Validators_ValidatorsImpl ,__properties__: {get_areValid:"get_areValid",get_length:"get_length"} }; var haxe_ui_validators__$Validators_ValidatorsIterator = function(list) { this.list = list; this.i = 0; }; $hxClasses["haxe.ui.validators._Validators.ValidatorsIterator"] = haxe_ui_validators__$Validators_ValidatorsIterator; haxe_ui_validators__$Validators_ValidatorsIterator.__name__ = "haxe.ui.validators._Validators.ValidatorsIterator"; haxe_ui_validators__$Validators_ValidatorsIterator.prototype = { i: null ,list: null ,hasNext: function() { if(this.list == null) { return false; } return this.i < this.list.length; } ,next: function() { return this.list[this.i++]; } ,__class__: haxe_ui_validators__$Validators_ValidatorsIterator }; var haxe_xml__$Access_NodeAccess = {}; haxe_xml__$Access_NodeAccess.resolve = function(this1,name) { var x = this1.elementsNamed(name).next(); if(x == null) { var xname; if(this1.nodeType == Xml.Document) { xname = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } xname = this1.nodeName; } throw haxe_Exception.thrown(xname + " is missing element " + name); } if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } return x; }; var haxe_xml__$Access_AttribAccess = {}; haxe_xml__$Access_AttribAccess.resolve = function(this1,name) { if(this1.nodeType == Xml.Document) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } var v = this1.get(name); if(v == null) { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } throw haxe_Exception.thrown(this1.nodeName + " is missing attribute " + name); } return v; }; haxe_xml__$Access_AttribAccess._hx_set = function(this1,name,value) { if(this1.nodeType == Xml.Document) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } this1.set(name,value); return value; }; var haxe_xml__$Access_HasAttribAccess = {}; haxe_xml__$Access_HasAttribAccess.resolve = function(this1,name) { if(this1.nodeType == Xml.Document) { throw haxe_Exception.thrown("Cannot access document attribute " + name); } return this1.exists(name); }; var haxe_xml__$Access_HasNodeAccess = {}; haxe_xml__$Access_HasNodeAccess.resolve = function(this1,name) { return this1.elementsNamed(name).hasNext(); }; var haxe_xml__$Access_NodeListAccess = {}; haxe_xml__$Access_NodeListAccess.resolve = function(this1,name) { var l = []; var x = this1.elementsNamed(name); while(x.hasNext()) { var x1 = x.next(); if(x1.nodeType != Xml.Document && x1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x1.nodeType == null ? "null" : XmlType.toString(x1.nodeType))); } l.push(x1); } return l; }; var haxe_xml_Access = {}; haxe_xml_Access.__properties__ = {get_elements:"get_elements",get_hasNode:"get_hasNode",get_has:"get_has",get_att:"get_att",get_nodes:"get_nodes",get_node:"get_node",get_innerHTML:"get_innerHTML",get_innerData:"get_innerData",get_name:"get_name",get_x:"get_x"}; haxe_xml_Access.get_x = function(this1) { return this1; }; haxe_xml_Access.get_name = function(this1) { if(this1.nodeType == Xml.Document) { return "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } return this1.nodeName; } }; haxe_xml_Access.get_node = function(this1) { return this1; }; haxe_xml_Access.get_nodes = function(this1) { return this1; }; haxe_xml_Access.get_att = function(this1) { return this1; }; haxe_xml_Access.get_has = function(this1) { return this1; }; haxe_xml_Access.get_hasNode = function(this1) { return this1; }; haxe_xml_Access.get_elements = function(this1) { return this1.elements(); }; haxe_xml_Access._new = function(x) { if(x.nodeType != Xml.Document && x.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (x.nodeType == null ? "null" : XmlType.toString(x.nodeType))); } return x; }; haxe_xml_Access.get_innerData = function(this1) { if(this1.nodeType != Xml.Document && this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } var it_current = 0; var it_array = this1.children; if(it_current >= it_array.length) { var tmp; if(this1.nodeType == Xml.Document) { tmp = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } tmp = this1.nodeName; } throw haxe_Exception.thrown(tmp + " does not have data"); } var v = it_array[it_current++]; if(it_current < it_array.length) { var n = it_array[it_current++]; var tmp; if(v.nodeType == Xml.PCData && n.nodeType == Xml.CData) { if(v.nodeType == Xml.Document || v.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (v.nodeType == null ? "null" : XmlType.toString(v.nodeType))); } tmp = StringTools.trim(v.nodeValue) == ""; } else { tmp = false; } if(tmp) { if(it_current >= it_array.length) { if(n.nodeType == Xml.Document || n.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (n.nodeType == null ? "null" : XmlType.toString(n.nodeType))); } return n.nodeValue; } var n2 = it_array[it_current++]; var tmp; if(n2.nodeType == Xml.PCData) { if(n2.nodeType == Xml.Document || n2.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (n2.nodeType == null ? "null" : XmlType.toString(n2.nodeType))); } tmp = StringTools.trim(n2.nodeValue) == ""; } else { tmp = false; } if(tmp && it_current >= it_array.length) { if(n.nodeType == Xml.Document || n.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (n.nodeType == null ? "null" : XmlType.toString(n.nodeType))); } return n.nodeValue; } } var tmp; if(this1.nodeType == Xml.Document) { tmp = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } tmp = this1.nodeName; } throw haxe_Exception.thrown(tmp + " does not only have data"); } if(v.nodeType != Xml.PCData && v.nodeType != Xml.CData) { var tmp; if(this1.nodeType == Xml.Document) { tmp = "Document"; } else { if(this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } tmp = this1.nodeName; } throw haxe_Exception.thrown(tmp + " does not have data"); } if(v.nodeType == Xml.Document || v.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (v.nodeType == null ? "null" : XmlType.toString(v.nodeType))); } return v.nodeValue; }; haxe_xml_Access.get_innerHTML = function(this1) { var s_b = ""; if(this1.nodeType != Xml.Document && this1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (this1.nodeType == null ? "null" : XmlType.toString(this1.nodeType))); } var _g_current = 0; var _g_array = this1.children; while(_g_current < _g_array.length) { var x = _g_array[_g_current++]; s_b += Std.string(haxe_xml_Printer.print(x)); } return s_b; }; var haxe_xml_XmlParserException = function(message,xml,position) { this.xml = xml; this.message = message; this.position = position; this.lineNumber = 1; this.positionAtLine = 0; var _g = 0; var _g1 = position; while(_g < _g1) { var i = _g++; var c = xml.charCodeAt(i); if(c == 10) { this.lineNumber++; this.positionAtLine = 0; } else if(c != 13) { this.positionAtLine++; } } }; $hxClasses["haxe.xml.XmlParserException"] = haxe_xml_XmlParserException; haxe_xml_XmlParserException.__name__ = "haxe.xml.XmlParserException"; haxe_xml_XmlParserException.prototype = { message: null ,lineNumber: null ,positionAtLine: null ,position: null ,xml: null ,toString: function() { var c = js_Boot.getClass(this); return c.__name__ + ": " + this.message + " at line " + this.lineNumber + " char " + this.positionAtLine; } ,__class__: haxe_xml_XmlParserException }; 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 buf = new StringBuf(); var escapeNext = 1; var attrValQuote = -1; while(p < str.length) { var c = str.charCodeAt(p); switch(state) { case 0: switch(c) { case 9:case 10:case 13:case 32: break; default: state = next; continue; } break; case 1: if(c == 60) { state = 0; next = 2; } else { start = p; state = 13; continue; } break; case 2: switch(c) { case 33: if(str.charCodeAt(p + 1) == 91) { p += 2; if(HxOverrides.substr(str,p,6).toUpperCase() != "CDATA[") { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected = 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) { if(p == start) { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected node name",str,p)); } 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)) { if(start == p) { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected attribute name",str,p)); } var tmp = HxOverrides.substr(str,start,p - start); aname = tmp; if(xml.exists(aname)) { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Duplicate attribute [" + aname + "]",str,p)); } state = 0; next = 6; continue; } break; case 6: if(c == 61) { state = 0; next = 7; } else { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected =",str,p)); } break; case 7: switch(c) { case 34:case 39: buf = new StringBuf(); state = 8; start = p + 1; attrValQuote = c; break; default: throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected \"",str,p)); } break; case 8: switch(c) { case 38: var len = p - start; buf.b += len == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len); state = 18; escapeNext = 8; start = p + 1; break; case 60:case 62: if(strict) { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Invalid unescaped " + String.fromCodePoint(c) + " in attribute value",str,p)); } else if(c == attrValQuote) { var len1 = p - start; buf.b += len1 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len1); var val = buf.b; buf = new StringBuf(); xml.set(aname,val); state = 0; next = 4; } break; default: if(c == attrValQuote) { var len2 = p - start; buf.b += len2 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len2); var val1 = buf.b; buf = new StringBuf(); xml.set(aname,val1); state = 0; next = 4; } } break; case 9: p = haxe_xml_Parser.doParse(str,strict,p,xml); start = p; state = 1; 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 haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected node name",str,p)); } var v = HxOverrides.substr(str,start,p - start); if(parent == null || parent.nodeType != 0) { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Unexpected , tag is not open",str,p)); } if(parent.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType))); } if(v != parent.nodeName) { if(parent.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType))); } throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected ",str,p)); } state = 0; next = 12; continue; } break; case 11: if(c == 62) { state = 1; } else { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected >",str,p)); } break; case 12: if(c == 62) { if(nsubs == 0) { parent.addChild(Xml.createPCData("")); } return p; } else { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Expected >",str,p)); } break; case 13: if(c == 60) { var len3 = p - start; buf.b += len3 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len3); var child = Xml.createPCData(buf.b); buf = new StringBuf(); parent.addChild(child); ++nsubs; state = 0; next = 2; } else if(c == 38) { var len4 = p - start; buf.b += len4 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len4); state = 18; escapeNext = 13; start = p + 1; } break; case 14: if(c == 63 && str.charCodeAt(p + 1) == 62) { ++p; var str1 = HxOverrides.substr(str,start + 1,p - start - 2); parent.addChild(Xml.createProcessingInstruction(str1)); ++nsubs; state = 1; } break; case 15: if(c == 45 && str.charCodeAt(p + 1) == 45 && str.charCodeAt(p + 2) == 62) { parent.addChild(Xml.createComment(HxOverrides.substr(str,start,p - start))); ++nsubs; p += 2; state = 1; } break; case 16: if(c == 91) { ++nbrackets; } else if(c == 93) { --nbrackets; } else if(c == 62 && nbrackets == 0) { parent.addChild(Xml.createDocType(HxOverrides.substr(str,start,p - start))); ++nsubs; state = 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 18: if(c == 59) { var s = HxOverrides.substr(str,start,p - start); if(s.charCodeAt(0) == 35) { var c1 = s.charCodeAt(1) == 120 ? Std.parseInt("0" + HxOverrides.substr(s,1,s.length - 1)) : Std.parseInt(HxOverrides.substr(s,1,s.length - 1)); buf.b += String.fromCodePoint(c1); } else if(!Object.prototype.hasOwnProperty.call(haxe_xml_Parser.escapes.h,s)) { if(strict) { throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Undefined entity: " + s,str,p)); } buf.b += Std.string("&" + s + ";"); } else { buf.b += Std.string(haxe_xml_Parser.escapes.h[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 haxe_Exception.thrown(new haxe_xml_XmlParserException("Invalid character in entity: " + String.fromCodePoint(c),str,p)); } buf.b += String.fromCodePoint(38); var len5 = p - start; buf.b += len5 == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len5); --p; start = p + 1; state = escapeNext; } break; } ++p; } if(state == 1) { start = p; state = 13; } if(state == 13) { if(parent.nodeType == 0) { if(parent.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType))); } throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Unclosed node <" + parent.nodeName + ">",str,p)); } if(p != start || nsubs == 0) { var len = p - start; buf.b += len == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len); parent.addChild(Xml.createPCData(buf.b)); ++nsubs; } return p; } if(!strict && state == 18 && escapeNext == 13) { buf.b += String.fromCodePoint(38); var len = p - start; buf.b += len == null ? HxOverrides.substr(str,start,null) : HxOverrides.substr(str,start,len); parent.addChild(Xml.createPCData(buf.b)); ++nsubs; return p; } throw haxe_Exception.thrown(new haxe_xml_XmlParserException("Unexpected end",str,p)); }; haxe_xml_Parser.isValidChar = function(c) { if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95)) { return c == 45; } else { return true; } }; var haxe_xml_Printer = function(pretty) { this.output = new StringBuf(); this.pretty = pretty; }; $hxClasses["haxe.xml.Printer"] = haxe_xml_Printer; haxe_xml_Printer.__name__ = "haxe.xml.Printer"; haxe_xml_Printer.print = function(xml,pretty) { if(pretty == null) { pretty = false; } var printer = new haxe_xml_Printer(pretty); printer.writeNode(xml,""); return printer.output.b; }; haxe_xml_Printer.prototype = { output: null ,pretty: null ,writeNode: function(value,tabs) { switch(value.nodeType) { case 0: this.output.b += Std.string(tabs + "<"); if(value.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } this.output.b += Std.string(value.nodeName); var attribute = value.attributes(); while(attribute.hasNext()) { var attribute1 = attribute.next(); this.output.b += Std.string(" " + attribute1 + "=\""); var input = StringTools.htmlEscape(value.get(attribute1),true); this.output.b += Std.string(input); this.output.b += "\""; } if(this.hasChildren(value)) { this.output.b += ">"; if(this.pretty) { this.output.b += "\n"; } if(value.nodeType != Xml.Document && value.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } var _g_current = 0; var _g_array = value.children; while(_g_current < _g_array.length) { var child = _g_array[_g_current++]; this.writeNode(child,this.pretty ? tabs + "\t" : tabs); } this.output.b += Std.string(tabs + ""; if(this.pretty) { this.output.b += "\n"; } } else { this.output.b += "/>"; if(this.pretty) { this.output.b += "\n"; } } break; case 1: if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } var nodeValue = value.nodeValue; if(nodeValue.length != 0) { var input = tabs + StringTools.htmlEscape(nodeValue); this.output.b += Std.string(input); if(this.pretty) { this.output.b += "\n"; } } break; case 2: this.output.b += Std.string(tabs + ""; if(this.pretty) { this.output.b += "\n"; } break; case 3: if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } var commentContent = value.nodeValue; var _this_r = new RegExp("[\n\r\t]+","g".split("u").join("")); commentContent = commentContent.replace(_this_r,""); commentContent = ""; this.output.b += tabs == null ? "null" : "" + tabs; var input = StringTools.trim(commentContent); this.output.b += Std.string(input); if(this.pretty) { this.output.b += "\n"; } break; case 4: if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } this.output.b += Std.string(""); if(this.pretty) { this.output.b += "\n"; } break; case 5: if(value.nodeType == Xml.Document || value.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } this.output.b += Std.string(""); if(this.pretty) { this.output.b += "\n"; } break; case 6: if(value.nodeType != Xml.Document && value.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } var _g_current = 0; var _g_array = value.children; while(_g_current < _g_array.length) { var child = _g_array[_g_current++]; this.writeNode(child,tabs); } break; } } ,write: function(input) { this.output.b += input == null ? "null" : "" + input; } ,newline: function() { if(this.pretty) { this.output.b += "\n"; } } ,hasChildren: function(value) { if(value.nodeType != Xml.Document && value.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element or Document but found " + (value.nodeType == null ? "null" : XmlType.toString(value.nodeType))); } var _g_current = 0; var _g_array = value.children; while(_g_current < _g_array.length) { var child = _g_array[_g_current++]; switch(child.nodeType) { case 0:case 1: return true; case 2:case 3: if(child.nodeType == Xml.Document || child.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (child.nodeType == null ? "null" : XmlType.toString(child.nodeType))); } if(StringTools.ltrim(child.nodeValue).length != 0) { return true; } break; default: } } return false; } ,__class__: haxe_xml_Printer }; var haxe_zip_ExtraField = $hxEnums["haxe.zip.ExtraField"] = { __ename__:"haxe.zip.ExtraField",__constructs__:null ,FUnknown: ($_=function(tag,bytes) { return {_hx_index:0,tag:tag,bytes:bytes,__enum__:"haxe.zip.ExtraField",toString:$estr}; },$_._hx_name="FUnknown",$_.__params__ = ["tag","bytes"],$_) ,FInfoZipUnicodePath: ($_=function(name,crc) { return {_hx_index:1,name:name,crc:crc,__enum__:"haxe.zip.ExtraField",toString:$estr}; },$_._hx_name="FInfoZipUnicodePath",$_.__params__ = ["name","crc"],$_) ,FUtf8: {_hx_name:"FUtf8",_hx_index:2,__enum__:"haxe.zip.ExtraField",toString:$estr} }; haxe_zip_ExtraField.__constructs__ = [haxe_zip_ExtraField.FUnknown,haxe_zip_ExtraField.FInfoZipUnicodePath,haxe_zip_ExtraField.FUtf8]; haxe_zip_ExtraField.__empty_constructs__ = [haxe_zip_ExtraField.FUtf8]; var haxe_zip_FlushMode = $hxEnums["haxe.zip.FlushMode"] = { __ename__:"haxe.zip.FlushMode",__constructs__:null ,NO: {_hx_name:"NO",_hx_index:0,__enum__:"haxe.zip.FlushMode",toString:$estr} ,SYNC: {_hx_name:"SYNC",_hx_index:1,__enum__:"haxe.zip.FlushMode",toString:$estr} ,FULL: {_hx_name:"FULL",_hx_index:2,__enum__:"haxe.zip.FlushMode",toString:$estr} ,FINISH: {_hx_name:"FINISH",_hx_index:3,__enum__:"haxe.zip.FlushMode",toString:$estr} ,BLOCK: {_hx_name:"BLOCK",_hx_index:4,__enum__:"haxe.zip.FlushMode",toString:$estr} }; haxe_zip_FlushMode.__constructs__ = [haxe_zip_FlushMode.NO,haxe_zip_FlushMode.SYNC,haxe_zip_FlushMode.FULL,haxe_zip_FlushMode.FINISH,haxe_zip_FlushMode.BLOCK]; haxe_zip_FlushMode.__empty_constructs__ = [haxe_zip_FlushMode.NO,haxe_zip_FlushMode.SYNC,haxe_zip_FlushMode.FULL,haxe_zip_FlushMode.FINISH,haxe_zip_FlushMode.BLOCK]; var haxe_zip_Huffman = $hxEnums["haxe.zip.Huffman"] = { __ename__:"haxe.zip.Huffman",__constructs__:null ,Found: ($_=function(i) { return {_hx_index:0,i:i,__enum__:"haxe.zip.Huffman",toString:$estr}; },$_._hx_name="Found",$_.__params__ = ["i"],$_) ,NeedBit: ($_=function(left,right) { return {_hx_index:1,left:left,right:right,__enum__:"haxe.zip.Huffman",toString:$estr}; },$_._hx_name="NeedBit",$_.__params__ = ["left","right"],$_) ,NeedBits: ($_=function(n,table) { return {_hx_index:2,n:n,table:table,__enum__:"haxe.zip.Huffman",toString:$estr}; },$_._hx_name="NeedBits",$_.__params__ = ["n","table"],$_) }; haxe_zip_Huffman.__constructs__ = [haxe_zip_Huffman.Found,haxe_zip_Huffman.NeedBit,haxe_zip_Huffman.NeedBits]; haxe_zip_Huffman.__empty_constructs__ = []; var haxe_zip_HuffTools = function() { }; $hxClasses["haxe.zip.HuffTools"] = haxe_zip_HuffTools; haxe_zip_HuffTools.__name__ = "haxe.zip.HuffTools"; haxe_zip_HuffTools.prototype = { treeDepth: function(t) { switch(t._hx_index) { case 0: var _g = t.i; return 0; case 1: var a = t.left; var b = t.right; var da = this.treeDepth(a); var db = this.treeDepth(b); return 1 + (da < db ? da : db); case 2: var _g = t.n; var _g = t.table; throw haxe_Exception.thrown("assert"); } } ,treeCompress: function(t) { var d = this.treeDepth(t); if(d == 0) { return t; } if(d == 1) { if(t._hx_index == 1) { var a = t.left; var b = t.right; return haxe_zip_Huffman.NeedBit(this.treeCompress(a),this.treeCompress(b)); } else { throw haxe_Exception.thrown("assert"); } } var size = 1 << d; var table = []; var _g = 0; var _g1 = size; while(_g < _g1) { var i = _g++; table.push(haxe_zip_Huffman.Found(-1)); } this.treeWalk(table,0,0,d,t); return haxe_zip_Huffman.NeedBits(d,table); } ,treeWalk: function(table,p,cd,d,t) { if(t._hx_index == 1) { var a = t.left; var b = t.right; if(d > 0) { this.treeWalk(table,p,cd + 1,d - 1,a); this.treeWalk(table,p | 1 << cd,cd + 1,d - 1,b); } else { table[p] = this.treeCompress(t); } } else { table[p] = this.treeCompress(t); } } ,treeMake: function(bits,maxbits,v,len) { if(len > maxbits) { throw haxe_Exception.thrown("Invalid huffman"); } var idx = v << 5 | len; if(bits.h.hasOwnProperty(idx)) { return haxe_zip_Huffman.Found(bits.h[idx]); } v <<= 1; ++len; return haxe_zip_Huffman.NeedBit(this.treeMake(bits,maxbits,v,len),this.treeMake(bits,maxbits,v | 1,len)); } ,make: function(lengths,pos,nlengths,maxbits) { if(nlengths == 1) { return haxe_zip_Huffman.NeedBit(haxe_zip_Huffman.Found(0),haxe_zip_Huffman.Found(0)); } var counts = []; var tmp = []; if(maxbits > 32) { throw haxe_Exception.thrown("Invalid huffman"); } var _g = 0; var _g1 = maxbits; while(_g < _g1) { var i = _g++; counts.push(0); tmp.push(0); } var _g = 0; var _g1 = nlengths; while(_g < _g1) { var i = _g++; var p = lengths[i + pos]; if(p >= maxbits) { throw haxe_Exception.thrown("Invalid huffman"); } counts[p]++; } var code = 0; var _g = 1; var _g1 = maxbits - 1; while(_g < _g1) { var i = _g++; code = code + counts[i] << 1; tmp[i] = code; } var bits = new haxe_ds_IntMap(); var _g = 0; var _g1 = nlengths; while(_g < _g1) { var i = _g++; var l = lengths[i + pos]; if(l != 0) { var n = tmp[l - 1]; tmp[l - 1] = n + 1; bits.h[n << 5 | l] = i; } } return this.treeCompress(haxe_zip_Huffman.NeedBit(this.treeMake(bits,maxbits,0,1),this.treeMake(bits,maxbits,1,1))); } ,__class__: haxe_zip_HuffTools }; var haxe_zip__$InflateImpl_Window = function(hasCrc) { this.buffer = new haxe_io_Bytes(new ArrayBuffer(65536)); this.pos = 0; if(hasCrc) { this.crc = new haxe_crypto_Adler32(); } }; $hxClasses["haxe.zip._InflateImpl.Window"] = haxe_zip__$InflateImpl_Window; haxe_zip__$InflateImpl_Window.__name__ = "haxe.zip._InflateImpl.Window"; haxe_zip__$InflateImpl_Window.prototype = { buffer: null ,pos: null ,crc: null ,slide: function() { if(this.crc != null) { this.crc.update(this.buffer,0,32768); } var b = new haxe_io_Bytes(new ArrayBuffer(65536)); this.pos -= 32768; b.blit(0,this.buffer,32768,this.pos); this.buffer = b; } ,addBytes: function(b,p,len) { if(this.pos + len > 65536) { this.slide(); } this.buffer.blit(this.pos,b,p,len); this.pos += len; } ,addByte: function(c) { if(this.pos == 65536) { this.slide(); } this.buffer.b[this.pos] = c & 255; this.pos++; } ,getLastChar: function() { return this.buffer.b[this.pos - 1]; } ,available: function() { return this.pos; } ,checksum: function() { if(this.crc != null) { this.crc.update(this.buffer,0,this.pos); } return this.crc; } ,__class__: haxe_zip__$InflateImpl_Window }; var haxe_zip__$InflateImpl_State = $hxEnums["haxe.zip._InflateImpl.State"] = { __ename__:"haxe.zip._InflateImpl.State",__constructs__:null ,Head: {_hx_name:"Head",_hx_index:0,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,Block: {_hx_name:"Block",_hx_index:1,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,CData: {_hx_name:"CData",_hx_index:2,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,Flat: {_hx_name:"Flat",_hx_index:3,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,Crc: {_hx_name:"Crc",_hx_index:4,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,Dist: {_hx_name:"Dist",_hx_index:5,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,DistOne: {_hx_name:"DistOne",_hx_index:6,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} ,Done: {_hx_name:"Done",_hx_index:7,__enum__:"haxe.zip._InflateImpl.State",toString:$estr} }; haxe_zip__$InflateImpl_State.__constructs__ = [haxe_zip__$InflateImpl_State.Head,haxe_zip__$InflateImpl_State.Block,haxe_zip__$InflateImpl_State.CData,haxe_zip__$InflateImpl_State.Flat,haxe_zip__$InflateImpl_State.Crc,haxe_zip__$InflateImpl_State.Dist,haxe_zip__$InflateImpl_State.DistOne,haxe_zip__$InflateImpl_State.Done]; haxe_zip__$InflateImpl_State.__empty_constructs__ = [haxe_zip__$InflateImpl_State.Head,haxe_zip__$InflateImpl_State.Block,haxe_zip__$InflateImpl_State.CData,haxe_zip__$InflateImpl_State.Flat,haxe_zip__$InflateImpl_State.Crc,haxe_zip__$InflateImpl_State.Dist,haxe_zip__$InflateImpl_State.DistOne,haxe_zip__$InflateImpl_State.Done]; var haxe_zip_InflateImpl = function(i,header,crc) { if(crc == null) { crc = true; } if(header == null) { header = true; } this.isFinal = false; this.htools = new haxe_zip_HuffTools(); this.huffman = this.buildFixedHuffman(); this.huffdist = null; this.len = 0; this.dist = 0; this.state = header ? haxe_zip__$InflateImpl_State.Head : haxe_zip__$InflateImpl_State.Block; this.input = i; this.bits = 0; this.nbits = 0; this.needed = 0; this.output = null; this.outpos = 0; this.lengths = []; this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.window = new haxe_zip__$InflateImpl_Window(crc); }; $hxClasses["haxe.zip.InflateImpl"] = haxe_zip_InflateImpl; haxe_zip_InflateImpl.__name__ = "haxe.zip.InflateImpl"; haxe_zip_InflateImpl.run = function(i,bufsize) { if(bufsize == null) { bufsize = 65536; } var buf = new haxe_io_Bytes(new ArrayBuffer(bufsize)); var output = new haxe_io_BytesBuffer(); var inflate = new haxe_zip_InflateImpl(i); while(true) { var len = inflate.readBytes(buf,0,bufsize); output.addBytes(buf,0,len); if(len < bufsize) { break; } } return output.getBytes(); }; haxe_zip_InflateImpl.prototype = { nbits: null ,bits: null ,state: null ,isFinal: null ,huffman: null ,huffdist: null ,htools: null ,len: null ,dist: null ,needed: null ,output: null ,outpos: null ,input: null ,lengths: null ,window: null ,buildFixedHuffman: function() { if(haxe_zip_InflateImpl.FIXED_HUFFMAN != null) { return haxe_zip_InflateImpl.FIXED_HUFFMAN; } var a = []; var _g = 0; while(_g < 288) { var n = _g++; a.push(n <= 143 ? 8 : n <= 255 ? 9 : n <= 279 ? 7 : 8); } haxe_zip_InflateImpl.FIXED_HUFFMAN = this.htools.make(a,0,288,10); return haxe_zip_InflateImpl.FIXED_HUFFMAN; } ,readBytes: function(b,pos,len) { this.needed = len; this.outpos = pos; this.output = b; if(len > 0) { while(this.inflateLoop()) { } } return len - this.needed; } ,getBits: function(n) { while(this.nbits < n) { this.bits |= this.input.readByte() << this.nbits; this.nbits += 8; } var b = this.bits & (1 << n) - 1; this.nbits -= n; this.bits >>= n; return b; } ,getBit: function() { if(this.nbits == 0) { this.nbits = 8; this.bits = this.input.readByte(); } var b = (this.bits & 1) == 1; this.nbits--; this.bits >>= 1; return b; } ,getRevBits: function(n) { if(n == 0) { return 0; } else if(this.getBit()) { return 1 << n - 1 | this.getRevBits(n - 1); } else { return this.getRevBits(n - 1); } } ,resetBits: function() { this.bits = 0; this.nbits = 0; } ,addBytes: function(b,p,len) { this.window.addBytes(b,p,len); this.output.blit(this.outpos,b,p,len); this.needed -= len; this.outpos += len; } ,addByte: function(b) { this.window.addByte(b); this.output.b[this.outpos] = b & 255; this.needed--; this.outpos++; } ,addDistOne: function(n) { var c = this.window.getLastChar(); var _g = 0; var _g1 = n; while(_g < _g1) { var i = _g++; this.addByte(c); } } ,addDist: function(d,len) { this.addBytes(this.window.buffer,this.window.pos - d,len); } ,applyHuffman: function(h) { switch(h._hx_index) { case 0: var n = h.i; return n; case 1: var a = h.left; var b = h.right; return this.applyHuffman(this.getBit() ? b : a); case 2: var n = h.n; var tbl = h.table; return this.applyHuffman(tbl[this.getBits(n)]); } } ,inflateLengths: function(a,max) { var i = 0; var prev = 0; while(i < max) { var n = this.applyHuffman(this.huffman); switch(n) { case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15: prev = n; a[i] = n; ++i; break; case 16: var end = i + 3 + this.getBits(2); if(end > max) { throw haxe_Exception.thrown("Invalid data"); } while(i < end) { a[i] = prev; ++i; } break; case 17: i += 3 + this.getBits(3); if(i > max) { throw haxe_Exception.thrown("Invalid data"); } break; case 18: i += 11 + this.getBits(7); if(i > max) { throw haxe_Exception.thrown("Invalid data"); } break; default: throw haxe_Exception.thrown("Invalid data"); } } } ,inflateLoop: function() { switch(this.state._hx_index) { case 0: var cmf = this.input.readByte(); var cm = cmf & 15; var cinfo = cmf >> 4; if(cm != 8) { throw haxe_Exception.thrown("Invalid data"); } var flg = this.input.readByte(); var fdict = (flg & 32) != 0; if(((cmf << 8) + flg) % 31 != 0) { throw haxe_Exception.thrown("Invalid data"); } if(fdict) { throw haxe_Exception.thrown("Unsupported dictionary"); } this.state = haxe_zip__$InflateImpl_State.Block; return true; case 1: this.isFinal = this.getBit(); switch(this.getBits(2)) { case 0: this.len = this.input.readUInt16(); var nlen = this.input.readUInt16(); if(nlen != 65535 - this.len) { throw haxe_Exception.thrown("Invalid data"); } this.state = haxe_zip__$InflateImpl_State.Flat; var r = this.inflateLoop(); this.resetBits(); return r; case 1: this.huffman = this.buildFixedHuffman(); this.huffdist = null; this.state = haxe_zip__$InflateImpl_State.CData; return true; case 2: var hlit = this.getBits(5) + 257; var hdist = this.getBits(5) + 1; var hclen = this.getBits(4) + 4; var _g = 0; var _g1 = hclen; while(_g < _g1) { var i = _g++; this.lengths[haxe_zip_InflateImpl.CODE_LENGTHS_POS[i]] = this.getBits(3); } var _g = hclen; var _g1 = 19; while(_g < _g1) { var i = _g++; this.lengths[haxe_zip_InflateImpl.CODE_LENGTHS_POS[i]] = 0; } this.huffman = this.htools.make(this.lengths,0,19,8); var lengths = []; var _g = 0; var _g1 = hlit + hdist; while(_g < _g1) { var i = _g++; lengths.push(0); } this.inflateLengths(lengths,hlit + hdist); this.huffdist = this.htools.make(lengths,hlit,hdist,16); this.huffman = this.htools.make(lengths,0,hlit,16); this.state = haxe_zip__$InflateImpl_State.CData; return true; default: throw haxe_Exception.thrown("Invalid data"); } break; case 2: var n = this.applyHuffman(this.huffman); if(n < 256) { this.addByte(n); return this.needed > 0; } else if(n == 256) { this.state = this.isFinal ? haxe_zip__$InflateImpl_State.Crc : haxe_zip__$InflateImpl_State.Block; return true; } else { n -= 257; var extra_bits = haxe_zip_InflateImpl.LEN_EXTRA_BITS_TBL[n]; if(extra_bits == -1) { throw haxe_Exception.thrown("Invalid data"); } this.len = haxe_zip_InflateImpl.LEN_BASE_VAL_TBL[n] + this.getBits(extra_bits); var dist_code = this.huffdist == null ? this.getRevBits(5) : this.applyHuffman(this.huffdist); extra_bits = haxe_zip_InflateImpl.DIST_EXTRA_BITS_TBL[dist_code]; if(extra_bits == -1) { throw haxe_Exception.thrown("Invalid data"); } this.dist = haxe_zip_InflateImpl.DIST_BASE_VAL_TBL[dist_code] + this.getBits(extra_bits); if(this.dist > this.window.available()) { throw haxe_Exception.thrown("Invalid data"); } this.state = this.dist == 1 ? haxe_zip__$InflateImpl_State.DistOne : haxe_zip__$InflateImpl_State.Dist; return true; } break; case 3: var rlen = this.len < this.needed ? this.len : this.needed; var bytes = this.input.read(rlen); this.len -= rlen; this.addBytes(bytes,0,rlen); if(this.len == 0) { this.state = this.isFinal ? haxe_zip__$InflateImpl_State.Crc : haxe_zip__$InflateImpl_State.Block; } return this.needed > 0; case 4: var calc = this.window.checksum(); if(calc == null) { this.state = haxe_zip__$InflateImpl_State.Done; return true; } var crc = haxe_crypto_Adler32.read(this.input); if(!calc.equals(crc)) { throw haxe_Exception.thrown("Invalid CRC"); } this.state = haxe_zip__$InflateImpl_State.Done; return true; case 5: while(this.len > 0 && this.needed > 0) { var rdist = this.len < this.dist ? this.len : this.dist; var rlen = this.needed < rdist ? this.needed : rdist; this.addDist(this.dist,rlen); this.len -= rlen; } if(this.len == 0) { this.state = haxe_zip__$InflateImpl_State.CData; } return this.needed > 0; case 6: var rlen = this.len < this.needed ? this.len : this.needed; this.addDistOne(rlen); this.len -= rlen; if(this.len == 0) { this.state = haxe_zip__$InflateImpl_State.CData; } return this.needed > 0; case 7: return false; } } ,__class__: haxe_zip_InflateImpl }; var haxe_zip_Reader = function(i) { this.i = i; }; $hxClasses["haxe.zip.Reader"] = haxe_zip_Reader; haxe_zip_Reader.__name__ = "haxe.zip.Reader"; haxe_zip_Reader.readZip = function(i) { var r = new haxe_zip_Reader(i); return r.read(); }; haxe_zip_Reader.unzip = function(f) { if(!f.compressed) { return f.data; } var c = new haxe_zip_Uncompress(-15); var s = new haxe_io_Bytes(new ArrayBuffer(f.fileSize)); var r = c.execute(f.data,0,s,0); c.close(); if(!r.done || r.read != f.data.length || r.write != f.fileSize) { throw haxe_Exception.thrown("Invalid compressed data for " + f.fileName); } f.compressed = false; f.dataSize = f.fileSize; f.data = s; return f.data; }; haxe_zip_Reader.prototype = { i: null ,readZipDate: function() { var t = this.i.readUInt16(); var hour = t >> 11 & 31; var min = t >> 5 & 63; var sec = t & 31; var d = this.i.readUInt16(); var year = d >> 9; var month = d >> 5 & 15; var day = d & 31; return new Date(year + 1980,month - 1,day,hour,min,sec << 1); } ,readExtraFields: function(length) { var fields = new haxe_ds_List(); while(length > 0) { if(length < 4) { throw haxe_Exception.thrown("Invalid extra fields data"); } var tag = this.i.readUInt16(); var len = this.i.readUInt16(); if(length < len) { throw haxe_Exception.thrown("Invalid extra fields data"); } if(tag == 28789) { var version = this.i.readByte(); if(version != 1) { var data = new haxe_io_BytesBuffer(); data.addByte(version); data.add(this.i.read(len - 1)); fields.add(haxe_zip_ExtraField.FUnknown(tag,data.getBytes())); } else { var crc = this.i.readInt32(); var name = this.i.read(len - 5).toString(); fields.add(haxe_zip_ExtraField.FInfoZipUnicodePath(name,crc)); } } else { fields.add(haxe_zip_ExtraField.FUnknown(tag,this.i.read(len))); } length -= 4 + len; } return fields; } ,readEntryHeader: function() { var i = this.i; var h = i.readInt32(); if(h == 33639248 || h == 101010256) { return null; } if(h != 67324752) { throw haxe_Exception.thrown("Invalid Zip Data"); } var version = i.readUInt16(); var flags = i.readUInt16(); var utf8 = (flags & 2048) != 0; if((flags & 63473) != 0) { throw haxe_Exception.thrown("Unsupported flags " + flags); } var compression = i.readUInt16(); var compressed = compression != 0; if(compressed && compression != 8) { throw haxe_Exception.thrown("Unsupported compression " + compression); } var mtime = this.readZipDate(); var crc32 = i.readInt32(); var csize = i.readInt32(); var usize = i.readInt32(); var fnamelen = i.readInt16(); var elen = i.readInt16(); var fname = i.readString(fnamelen); var fields = this.readExtraFields(elen); if(utf8) { fields.push(haxe_zip_ExtraField.FUtf8); } var data = null; if((flags & 8) != 0) { crc32 = null; } return { fileName : fname, fileSize : usize, fileTime : mtime, compressed : compressed, dataSize : csize, data : data, crc32 : crc32, extraFields : fields}; } ,read: function() { var l = new haxe_ds_List(); var buf = null; var tmp = null; while(true) { var e = this.readEntryHeader(); if(e == null) { break; } if(e.crc32 == null) { if(e.compressed) { var bufSize = 65536; if(tmp == null) { tmp = new haxe_io_Bytes(new ArrayBuffer(bufSize)); } var out = new haxe_io_BytesBuffer(); var z = new haxe_zip_InflateImpl(this.i,false,false); while(true) { var n = z.readBytes(tmp,0,bufSize); out.addBytes(tmp,0,n); if(n < bufSize) { break; } } e.data = out.getBytes(); } else { e.data = this.i.read(e.dataSize); } e.crc32 = this.i.readInt32(); if(e.crc32 == 134695760) { e.crc32 = this.i.readInt32(); } e.dataSize = this.i.readInt32(); e.fileSize = this.i.readInt32(); e.dataSize = e.fileSize; e.compressed = false; } else { e.data = this.i.read(e.dataSize); } l.add(e); } return l; } ,__class__: haxe_zip_Reader }; var haxe_zip_Uncompress = function(windowBits) { throw new haxe_exceptions_NotImplementedException("Not implemented for this platform",null,{ fileName : "haxe/zip/Uncompress.hx", lineNumber : 27, className : "haxe.zip.Uncompress", methodName : "new"}); }; $hxClasses["haxe.zip.Uncompress"] = haxe_zip_Uncompress; haxe_zip_Uncompress.__name__ = "haxe.zip.Uncompress"; haxe_zip_Uncompress.run = function(src,bufsize) { return haxe_zip_InflateImpl.run(new haxe_io_BytesInput(src),bufsize); }; haxe_zip_Uncompress.prototype = { execute: function(src,srcPos,dst,dstPos) { return null; } ,setFlushMode: function(f) { } ,close: function() { } ,__class__: haxe_zip_Uncompress }; var haxe_zip_Writer = function(o) { this.o = o; this.files = new haxe_ds_List(); }; $hxClasses["haxe.zip.Writer"] = haxe_zip_Writer; haxe_zip_Writer.__name__ = "haxe.zip.Writer"; haxe_zip_Writer.prototype = { o: null ,files: null ,writeZipDate: function(date) { var hour = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds() >> 1; this.o.writeUInt16(hour << 11 | min << 5 | sec); var year = date.getFullYear() - 1980; var month = date.getMonth() + 1; var day = date.getDate(); this.o.writeUInt16(year << 9 | month << 5 | day); } ,writeEntryHeader: function(f) { var o = this.o; var flags = 0; if(f.extraFields != null) { var _g_head = f.extraFields.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var e = val; if(e._hx_index == 2) { flags |= 2048; } } } o.writeInt32(67324752); o.writeUInt16(20); o.writeUInt16(flags); if(f.data == null) { f.fileSize = 0; f.dataSize = 0; f.crc32 = 0; f.compressed = false; f.data = new haxe_io_Bytes(new ArrayBuffer(0)); } else { if(f.crc32 == null) { if(f.compressed) { throw haxe_Exception.thrown("CRC32 must be processed before compression"); } f.crc32 = haxe_crypto_Crc32.make(f.data); } if(!f.compressed) { f.fileSize = f.data.length; } f.dataSize = f.data.length; } o.writeUInt16(f.compressed ? 8 : 0); this.writeZipDate(f.fileTime); o.writeInt32(f.crc32); o.writeInt32(f.dataSize); o.writeInt32(f.fileSize); o.writeUInt16(f.fileName.length); var e = new haxe_io_BytesOutput(); if(f.extraFields != null) { var _g_head = f.extraFields.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var f1 = val; switch(f1._hx_index) { case 0: var tag = f1.tag; var bytes = f1.bytes; e.writeUInt16(tag); e.writeUInt16(bytes.length); e.write(bytes); break; case 1: var name = f1.name; var crc = f1.crc; var namebytes = haxe_io_Bytes.ofString(name); e.writeUInt16(28789); e.writeUInt16(namebytes.length + 5); e.writeByte(1); e.writeInt32(crc); e.write(namebytes); break; case 2: break; } } } var ebytes = e.getBytes(); o.writeUInt16(ebytes.length); o.writeString(f.fileName); o.write(ebytes); this.files.add({ name : f.fileName, compressed : f.compressed, clen : f.data.length, size : f.fileSize, crc : f.crc32, date : f.fileTime, fields : ebytes}); } ,write: function(files) { var _g_head = files.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var f = val; this.writeEntryHeader(f); this.o.writeFullBytes(f.data,0,f.data.length); } this.writeCDR(); } ,writeCDR: function() { var cdr_size = 0; var cdr_offset = 0; var _g_head = this.files.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var f = val; var namelen = f.name.length; var extraFieldsLength = f.fields.length; this.o.writeInt32(33639248); this.o.writeUInt16(20); this.o.writeUInt16(20); this.o.writeUInt16(0); this.o.writeUInt16(f.compressed ? 8 : 0); this.writeZipDate(f.date); this.o.writeInt32(f.crc); this.o.writeInt32(f.clen); this.o.writeInt32(f.size); this.o.writeUInt16(namelen); this.o.writeUInt16(extraFieldsLength); this.o.writeUInt16(0); this.o.writeUInt16(0); this.o.writeUInt16(0); this.o.writeInt32(0); this.o.writeInt32(cdr_offset); this.o.writeString(f.name); this.o.write(f.fields); cdr_size += 46 + namelen + extraFieldsLength; cdr_offset += 30 + namelen + extraFieldsLength + f.clen; } this.o.writeInt32(101010256); this.o.writeUInt16(0); this.o.writeUInt16(0); this.o.writeUInt16(this.files.length); this.o.writeUInt16(this.files.length); this.o.writeInt32(cdr_size); this.o.writeInt32(cdr_offset); this.o.writeUInt16(0); } ,__class__: haxe_zip_Writer }; var hscript_Const = $hxEnums["hscript.Const"] = { __ename__:"hscript.Const",__constructs__:null ,CInt: ($_=function(v) { return {_hx_index:0,v:v,__enum__:"hscript.Const",toString:$estr}; },$_._hx_name="CInt",$_.__params__ = ["v"],$_) ,CFloat: ($_=function(f) { return {_hx_index:1,f:f,__enum__:"hscript.Const",toString:$estr}; },$_._hx_name="CFloat",$_.__params__ = ["f"],$_) ,CString: ($_=function(s) { return {_hx_index:2,s:s,__enum__:"hscript.Const",toString:$estr}; },$_._hx_name="CString",$_.__params__ = ["s"],$_) }; hscript_Const.__constructs__ = [hscript_Const.CInt,hscript_Const.CFloat,hscript_Const.CString]; hscript_Const.__empty_constructs__ = []; var hscript_ExprDef = $hxEnums["hscript.ExprDef"] = { __ename__:"hscript.ExprDef",__constructs__:null ,EConst: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EConst",$_.__params__ = ["c"],$_) ,EIdent: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EIdent",$_.__params__ = ["v"],$_) ,EVar: ($_=function(n,t,e) { return {_hx_index:2,n:n,t:t,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EVar",$_.__params__ = ["n","t","e"],$_) ,EParent: ($_=function(e) { return {_hx_index:3,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EParent",$_.__params__ = ["e"],$_) ,EBlock: ($_=function(e) { return {_hx_index:4,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EBlock",$_.__params__ = ["e"],$_) ,EField: ($_=function(e,f) { return {_hx_index:5,e:e,f:f,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EField",$_.__params__ = ["e","f"],$_) ,EBinop: ($_=function(op,e1,e2) { return {_hx_index:6,op:op,e1:e1,e2:e2,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EBinop",$_.__params__ = ["op","e1","e2"],$_) ,EUnop: ($_=function(op,prefix,e) { return {_hx_index:7,op:op,prefix:prefix,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EUnop",$_.__params__ = ["op","prefix","e"],$_) ,ECall: ($_=function(e,params) { return {_hx_index:8,e:e,params:params,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="ECall",$_.__params__ = ["e","params"],$_) ,EIf: ($_=function(cond,e1,e2) { return {_hx_index:9,cond:cond,e1:e1,e2:e2,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EIf",$_.__params__ = ["cond","e1","e2"],$_) ,EWhile: ($_=function(cond,e) { return {_hx_index:10,cond:cond,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EWhile",$_.__params__ = ["cond","e"],$_) ,EFor: ($_=function(v,it,e) { return {_hx_index:11,v:v,it:it,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EFor",$_.__params__ = ["v","it","e"],$_) ,EBreak: {_hx_name:"EBreak",_hx_index:12,__enum__:"hscript.ExprDef",toString:$estr} ,EContinue: {_hx_name:"EContinue",_hx_index:13,__enum__:"hscript.ExprDef",toString:$estr} ,EFunction: ($_=function(args,e,name,ret) { return {_hx_index:14,args:args,e:e,name:name,ret:ret,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EFunction",$_.__params__ = ["args","e","name","ret"],$_) ,EReturn: ($_=function(e) { return {_hx_index:15,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EReturn",$_.__params__ = ["e"],$_) ,EArray: ($_=function(e,index) { return {_hx_index:16,e:e,index:index,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EArray",$_.__params__ = ["e","index"],$_) ,EArrayDecl: ($_=function(e) { return {_hx_index:17,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EArrayDecl",$_.__params__ = ["e"],$_) ,ENew: ($_=function(cl,params) { return {_hx_index:18,cl:cl,params:params,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="ENew",$_.__params__ = ["cl","params"],$_) ,EThrow: ($_=function(e) { return {_hx_index:19,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EThrow",$_.__params__ = ["e"],$_) ,ETry: ($_=function(e,v,t,ecatch) { return {_hx_index:20,e:e,v:v,t:t,ecatch:ecatch,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="ETry",$_.__params__ = ["e","v","t","ecatch"],$_) ,EObject: ($_=function(fl) { return {_hx_index:21,fl:fl,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EObject",$_.__params__ = ["fl"],$_) ,ETernary: ($_=function(cond,e1,e2) { return {_hx_index:22,cond:cond,e1:e1,e2:e2,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="ETernary",$_.__params__ = ["cond","e1","e2"],$_) ,ESwitch: ($_=function(e,cases,defaultExpr) { return {_hx_index:23,e:e,cases:cases,defaultExpr:defaultExpr,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="ESwitch",$_.__params__ = ["e","cases","defaultExpr"],$_) ,EDoWhile: ($_=function(cond,e) { return {_hx_index:24,cond:cond,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EDoWhile",$_.__params__ = ["cond","e"],$_) ,EMeta: ($_=function(name,args,e) { return {_hx_index:25,name:name,args:args,e:e,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="EMeta",$_.__params__ = ["name","args","e"],$_) ,ECheckType: ($_=function(e,t) { return {_hx_index:26,e:e,t:t,__enum__:"hscript.ExprDef",toString:$estr}; },$_._hx_name="ECheckType",$_.__params__ = ["e","t"],$_) }; hscript_ExprDef.__constructs__ = [hscript_ExprDef.EConst,hscript_ExprDef.EIdent,hscript_ExprDef.EVar,hscript_ExprDef.EParent,hscript_ExprDef.EBlock,hscript_ExprDef.EField,hscript_ExprDef.EBinop,hscript_ExprDef.EUnop,hscript_ExprDef.ECall,hscript_ExprDef.EIf,hscript_ExprDef.EWhile,hscript_ExprDef.EFor,hscript_ExprDef.EBreak,hscript_ExprDef.EContinue,hscript_ExprDef.EFunction,hscript_ExprDef.EReturn,hscript_ExprDef.EArray,hscript_ExprDef.EArrayDecl,hscript_ExprDef.ENew,hscript_ExprDef.EThrow,hscript_ExprDef.ETry,hscript_ExprDef.EObject,hscript_ExprDef.ETernary,hscript_ExprDef.ESwitch,hscript_ExprDef.EDoWhile,hscript_ExprDef.EMeta,hscript_ExprDef.ECheckType]; hscript_ExprDef.__empty_constructs__ = [hscript_ExprDef.EBreak,hscript_ExprDef.EContinue]; var hscript_CType = $hxEnums["hscript.CType"] = { __ename__:"hscript.CType",__constructs__:null ,CTPath: ($_=function(path,params) { return {_hx_index:0,path:path,params:params,__enum__:"hscript.CType",toString:$estr}; },$_._hx_name="CTPath",$_.__params__ = ["path","params"],$_) ,CTFun: ($_=function(args,ret) { return {_hx_index:1,args:args,ret:ret,__enum__:"hscript.CType",toString:$estr}; },$_._hx_name="CTFun",$_.__params__ = ["args","ret"],$_) ,CTAnon: ($_=function(fields) { return {_hx_index:2,fields:fields,__enum__:"hscript.CType",toString:$estr}; },$_._hx_name="CTAnon",$_.__params__ = ["fields"],$_) ,CTParent: ($_=function(t) { return {_hx_index:3,t:t,__enum__:"hscript.CType",toString:$estr}; },$_._hx_name="CTParent",$_.__params__ = ["t"],$_) ,CTOpt: ($_=function(t) { return {_hx_index:4,t:t,__enum__:"hscript.CType",toString:$estr}; },$_._hx_name="CTOpt",$_.__params__ = ["t"],$_) ,CTNamed: ($_=function(n,t) { return {_hx_index:5,n:n,t:t,__enum__:"hscript.CType",toString:$estr}; },$_._hx_name="CTNamed",$_.__params__ = ["n","t"],$_) }; hscript_CType.__constructs__ = [hscript_CType.CTPath,hscript_CType.CTFun,hscript_CType.CTAnon,hscript_CType.CTParent,hscript_CType.CTOpt,hscript_CType.CTNamed]; hscript_CType.__empty_constructs__ = []; var hscript_Error = function(e,pmin,pmax,origin,line) { this.e = e; this.pmin = pmin; this.pmax = pmax; this.origin = origin; this.line = line; }; $hxClasses["hscript.Error"] = hscript_Error; hscript_Error.__name__ = "hscript.Error"; hscript_Error.prototype = { e: null ,pmin: null ,pmax: null ,origin: null ,line: null ,toString: function() { return hscript_Printer.errorToString(this); } ,__class__: hscript_Error }; var hscript_ErrorDef = $hxEnums["hscript.ErrorDef"] = { __ename__:"hscript.ErrorDef",__constructs__:null ,EInvalidChar: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EInvalidChar",$_.__params__ = ["c"],$_) ,EUnexpected: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EUnexpected",$_.__params__ = ["s"],$_) ,EUnterminatedString: {_hx_name:"EUnterminatedString",_hx_index:2,__enum__:"hscript.ErrorDef",toString:$estr} ,EUnterminatedComment: {_hx_name:"EUnterminatedComment",_hx_index:3,__enum__:"hscript.ErrorDef",toString:$estr} ,EInvalidPreprocessor: ($_=function(msg) { return {_hx_index:4,msg:msg,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EInvalidPreprocessor",$_.__params__ = ["msg"],$_) ,EUnknownVariable: ($_=function(v) { return {_hx_index:5,v:v,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EUnknownVariable",$_.__params__ = ["v"],$_) ,EInvalidIterator: ($_=function(v) { return {_hx_index:6,v:v,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EInvalidIterator",$_.__params__ = ["v"],$_) ,EInvalidOp: ($_=function(op) { return {_hx_index:7,op:op,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EInvalidOp",$_.__params__ = ["op"],$_) ,EInvalidAccess: ($_=function(f) { return {_hx_index:8,f:f,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="EInvalidAccess",$_.__params__ = ["f"],$_) ,ECustom: ($_=function(msg) { return {_hx_index:9,msg:msg,__enum__:"hscript.ErrorDef",toString:$estr}; },$_._hx_name="ECustom",$_.__params__ = ["msg"],$_) }; hscript_ErrorDef.__constructs__ = [hscript_ErrorDef.EInvalidChar,hscript_ErrorDef.EUnexpected,hscript_ErrorDef.EUnterminatedString,hscript_ErrorDef.EUnterminatedComment,hscript_ErrorDef.EInvalidPreprocessor,hscript_ErrorDef.EUnknownVariable,hscript_ErrorDef.EInvalidIterator,hscript_ErrorDef.EInvalidOp,hscript_ErrorDef.EInvalidAccess,hscript_ErrorDef.ECustom]; hscript_ErrorDef.__empty_constructs__ = [hscript_ErrorDef.EUnterminatedString,hscript_ErrorDef.EUnterminatedComment]; var hscript_ModuleDecl = $hxEnums["hscript.ModuleDecl"] = { __ename__:"hscript.ModuleDecl",__constructs__:null ,DPackage: ($_=function(path) { return {_hx_index:0,path:path,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_._hx_name="DPackage",$_.__params__ = ["path"],$_) ,DImport: ($_=function(path,everything) { return {_hx_index:1,path:path,everything:everything,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_._hx_name="DImport",$_.__params__ = ["path","everything"],$_) ,DClass: ($_=function(c) { return {_hx_index:2,c:c,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_._hx_name="DClass",$_.__params__ = ["c"],$_) ,DTypedef: ($_=function(c) { return {_hx_index:3,c:c,__enum__:"hscript.ModuleDecl",toString:$estr}; },$_._hx_name="DTypedef",$_.__params__ = ["c"],$_) }; hscript_ModuleDecl.__constructs__ = [hscript_ModuleDecl.DPackage,hscript_ModuleDecl.DImport,hscript_ModuleDecl.DClass,hscript_ModuleDecl.DTypedef]; hscript_ModuleDecl.__empty_constructs__ = []; var hscript_FieldAccess = $hxEnums["hscript.FieldAccess"] = { __ename__:"hscript.FieldAccess",__constructs__:null ,APublic: {_hx_name:"APublic",_hx_index:0,__enum__:"hscript.FieldAccess",toString:$estr} ,APrivate: {_hx_name:"APrivate",_hx_index:1,__enum__:"hscript.FieldAccess",toString:$estr} ,AInline: {_hx_name:"AInline",_hx_index:2,__enum__:"hscript.FieldAccess",toString:$estr} ,AOverride: {_hx_name:"AOverride",_hx_index:3,__enum__:"hscript.FieldAccess",toString:$estr} ,AStatic: {_hx_name:"AStatic",_hx_index:4,__enum__:"hscript.FieldAccess",toString:$estr} ,AMacro: {_hx_name:"AMacro",_hx_index:5,__enum__:"hscript.FieldAccess",toString:$estr} }; hscript_FieldAccess.__constructs__ = [hscript_FieldAccess.APublic,hscript_FieldAccess.APrivate,hscript_FieldAccess.AInline,hscript_FieldAccess.AOverride,hscript_FieldAccess.AStatic,hscript_FieldAccess.AMacro]; hscript_FieldAccess.__empty_constructs__ = [hscript_FieldAccess.APublic,hscript_FieldAccess.APrivate,hscript_FieldAccess.AInline,hscript_FieldAccess.AOverride,hscript_FieldAccess.AStatic,hscript_FieldAccess.AMacro]; var hscript_FieldKind = $hxEnums["hscript.FieldKind"] = { __ename__:"hscript.FieldKind",__constructs__:null ,KFunction: ($_=function(f) { return {_hx_index:0,f:f,__enum__:"hscript.FieldKind",toString:$estr}; },$_._hx_name="KFunction",$_.__params__ = ["f"],$_) ,KVar: ($_=function(v) { return {_hx_index:1,v:v,__enum__:"hscript.FieldKind",toString:$estr}; },$_._hx_name="KVar",$_.__params__ = ["v"],$_) }; hscript_FieldKind.__constructs__ = [hscript_FieldKind.KFunction,hscript_FieldKind.KVar]; hscript_FieldKind.__empty_constructs__ = []; var hscript__$Interp_Stop = $hxEnums["hscript._Interp.Stop"] = { __ename__:"hscript._Interp.Stop",__constructs__:null ,SBreak: {_hx_name:"SBreak",_hx_index:0,__enum__:"hscript._Interp.Stop",toString:$estr} ,SContinue: {_hx_name:"SContinue",_hx_index:1,__enum__:"hscript._Interp.Stop",toString:$estr} ,SReturn: {_hx_name:"SReturn",_hx_index:2,__enum__:"hscript._Interp.Stop",toString:$estr} }; hscript__$Interp_Stop.__constructs__ = [hscript__$Interp_Stop.SBreak,hscript__$Interp_Stop.SContinue,hscript__$Interp_Stop.SReturn]; hscript__$Interp_Stop.__empty_constructs__ = [hscript__$Interp_Stop.SBreak,hscript__$Interp_Stop.SContinue,hscript__$Interp_Stop.SReturn]; var hscript_Token = $hxEnums["hscript.Token"] = { __ename__:"hscript.Token",__constructs__:null ,TEof: {_hx_name:"TEof",_hx_index:0,__enum__:"hscript.Token",toString:$estr} ,TConst: ($_=function(c) { return {_hx_index:1,c:c,__enum__:"hscript.Token",toString:$estr}; },$_._hx_name="TConst",$_.__params__ = ["c"],$_) ,TId: ($_=function(s) { return {_hx_index:2,s:s,__enum__:"hscript.Token",toString:$estr}; },$_._hx_name="TId",$_.__params__ = ["s"],$_) ,TOp: ($_=function(s) { return {_hx_index:3,s:s,__enum__:"hscript.Token",toString:$estr}; },$_._hx_name="TOp",$_.__params__ = ["s"],$_) ,TPOpen: {_hx_name:"TPOpen",_hx_index:4,__enum__:"hscript.Token",toString:$estr} ,TPClose: {_hx_name:"TPClose",_hx_index:5,__enum__:"hscript.Token",toString:$estr} ,TBrOpen: {_hx_name:"TBrOpen",_hx_index:6,__enum__:"hscript.Token",toString:$estr} ,TBrClose: {_hx_name:"TBrClose",_hx_index:7,__enum__:"hscript.Token",toString:$estr} ,TDot: {_hx_name:"TDot",_hx_index:8,__enum__:"hscript.Token",toString:$estr} ,TComma: {_hx_name:"TComma",_hx_index:9,__enum__:"hscript.Token",toString:$estr} ,TSemicolon: {_hx_name:"TSemicolon",_hx_index:10,__enum__:"hscript.Token",toString:$estr} ,TBkOpen: {_hx_name:"TBkOpen",_hx_index:11,__enum__:"hscript.Token",toString:$estr} ,TBkClose: {_hx_name:"TBkClose",_hx_index:12,__enum__:"hscript.Token",toString:$estr} ,TQuestion: {_hx_name:"TQuestion",_hx_index:13,__enum__:"hscript.Token",toString:$estr} ,TDoubleDot: {_hx_name:"TDoubleDot",_hx_index:14,__enum__:"hscript.Token",toString:$estr} ,TMeta: ($_=function(s) { return {_hx_index:15,s:s,__enum__:"hscript.Token",toString:$estr}; },$_._hx_name="TMeta",$_.__params__ = ["s"],$_) ,TPrepro: ($_=function(s) { return {_hx_index:16,s:s,__enum__:"hscript.Token",toString:$estr}; },$_._hx_name="TPrepro",$_.__params__ = ["s"],$_) }; hscript_Token.__constructs__ = [hscript_Token.TEof,hscript_Token.TConst,hscript_Token.TId,hscript_Token.TOp,hscript_Token.TPOpen,hscript_Token.TPClose,hscript_Token.TBrOpen,hscript_Token.TBrClose,hscript_Token.TDot,hscript_Token.TComma,hscript_Token.TSemicolon,hscript_Token.TBkOpen,hscript_Token.TBkClose,hscript_Token.TQuestion,hscript_Token.TDoubleDot,hscript_Token.TMeta,hscript_Token.TPrepro]; hscript_Token.__empty_constructs__ = [hscript_Token.TEof,hscript_Token.TPOpen,hscript_Token.TPClose,hscript_Token.TBrOpen,hscript_Token.TBrClose,hscript_Token.TDot,hscript_Token.TComma,hscript_Token.TSemicolon,hscript_Token.TBkOpen,hscript_Token.TBkClose,hscript_Token.TQuestion,hscript_Token.TDoubleDot]; var hscript_Parser = function() { this.uid = 0; this.preprocesorValues = new haxe_ds_StringMap(); this.line = 1; this.opChars = "+*/-=!><&|^%~"; this.identChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"; var priorities = [["%"],["*","/"],["+","-"],["<<",">>",">>>"],["|","&","^"],["==","!=",">","<",">=","<="],["..."],["&&"],["||"],["=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","&=","^=","=>"],["->"]]; this.opPriority = new haxe_ds_StringMap(); this.opRightAssoc = new haxe_ds_StringMap(); var _g = 0; var _g1 = priorities.length; while(_g < _g1) { var i = _g++; var _g2 = 0; var _g3 = priorities[i]; while(_g2 < _g3.length) { var x = _g3[_g2]; ++_g2; this.opPriority.h[x] = i; if(i == 9) { this.opRightAssoc.h[x] = true; } } } var x = "!"; this.opPriority.h[x] = x == "++" || x == "--" ? -1 : -2; var x = "++"; this.opPriority.h[x] = x == "++" || x == "--" ? -1 : -2; var x = "--"; this.opPriority.h[x] = x == "++" || x == "--" ? -1 : -2; var x = "~"; this.opPriority.h[x] = x == "++" || x == "--" ? -1 : -2; }; $hxClasses["hscript.Parser"] = hscript_Parser; hscript_Parser.__name__ = "hscript.Parser"; hscript_Parser.prototype = { line: null ,opChars: null ,identChars: null ,opPriority: null ,opRightAssoc: null ,preprocesorValues: null ,allowJSON: null ,allowTypes: null ,allowMetadata: null ,resumeErrors: null ,input: null ,readPos: null ,char: null ,ops: null ,idents: null ,uid: null ,origin: null ,tokenMin: null ,tokenMax: null ,oldTokenMin: null ,oldTokenMax: null ,tokens: null ,error: function(err,pmin,pmax) { if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(err,pmin,pmax,this.origin,this.line)); } } ,invalidChar: function(c) { if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EInvalidChar(c),this.readPos - 1,this.readPos - 1,this.origin,this.line)); } } ,initParser: function(origin) { this.preprocStack = []; this.origin = origin; this.readPos = 0; this.tokenMin = this.oldTokenMin = 0; this.tokenMax = this.oldTokenMax = 0; this.tokens = new haxe_ds_List(); this.char = -1; this.ops = []; this.idents = []; this.uid = 0; var _g = 0; var _g1 = this.opChars.length; while(_g < _g1) { var i = _g++; this.ops[HxOverrides.cca(this.opChars,i)] = true; } var _g = 0; var _g1 = this.identChars.length; while(_g < _g1) { var i = _g++; this.idents[HxOverrides.cca(this.identChars,i)] = true; } } ,parseString: function(s,origin) { if(origin == null) { origin = "hscript"; } this.initParser(origin); this.input = s; this.readPos = 0; var a = []; while(true) { var tk = this.token(); if(tk == hscript_Token.TEof) { break; } this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; this.parseFullExpr(a); } if(a.length == 1) { return a[0]; } else { var e = hscript_ExprDef.EBlock(a); var pmin = 0; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } } ,unexpected: function(tk) { var err = hscript_ErrorDef.EUnexpected(this.tokenString(tk)); if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(err,this.tokenMin,this.tokenMax,this.origin,this.line)); } return null; } ,push: function(tk) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } ,ensure: function(tk) { var t = this.token(); if(t != tk) { this.unexpected(t); } } ,ensureToken: function(tk) { var t = this.token(); if(!Type.enumEq(t,tk)) { this.unexpected(t); } } ,maybe: function(tk) { var t = this.token(); if(Type.enumEq(t,tk)) { return true; } this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return false; } ,getIdent: function() { var tk = this.token(); if(tk._hx_index == 2) { var id = tk.s; return id; } else { this.unexpected(tk); return null; } } ,expr: function(e) { return e.e; } ,pmin: function(e) { if(e == null) { return 0; } else { return e.pmin; } } ,pmax: function(e) { if(e == null) { return 0; } else { return e.pmax; } } ,mk: function(e,pmin,pmax) { if(e == null) { return null; } if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } ,isBlock: function(e) { if(e == null) { return false; } var _g = e.e; switch(_g._hx_index) { case 2: var _g1 = _g.n; var t = _g.t; var e = _g.e; if(e != null) { return this.isBlock(e); } else if(t != null) { if(t == null) { return false; } else if(t._hx_index == 2) { var _g1 = t.fields; return true; } else { return false; } } else { return false; } break; case 4: var _g1 = _g.e; return true; case 6: var _g1 = _g.op; var _g1 = _g.e1; var e = _g.e2; return this.isBlock(e); case 7: var _g1 = _g.op; var prefix = _g.prefix; var e = _g.e; if(!prefix) { return this.isBlock(e); } else { return false; } break; case 9: var _g1 = _g.cond; var e1 = _g.e1; var e2 = _g.e2; if(e2 != null) { return this.isBlock(e2); } else { return this.isBlock(e1); } break; case 10: var _g1 = _g.cond; var e = _g.e; return this.isBlock(e); case 11: var _g1 = _g.v; var _g1 = _g.it; var e = _g.e; return this.isBlock(e); case 14: var _g1 = _g.args; var _g1 = _g.name; var _g1 = _g.ret; var e = _g.e; return this.isBlock(e); case 15: var e = _g.e; if(e != null) { return this.isBlock(e); } else { return false; } break; case 20: var _g1 = _g.e; var _g1 = _g.v; var _g1 = _g.t; var e = _g.ecatch; return this.isBlock(e); case 21: var _g1 = _g.fl; return true; case 23: var _g1 = _g.e; var _g1 = _g.cases; var _g1 = _g.defaultExpr; return true; case 24: var _g1 = _g.cond; var e = _g.e; return this.isBlock(e); case 25: var _g1 = _g.name; var _g1 = _g.args; var e = _g.e; return this.isBlock(e); default: return false; } } ,parseFullExpr: function(exprs) { var e = this.parseExpr(); exprs.push(e); var tk = this.token(); while(true) { var tmp; if(tk == hscript_Token.TComma && e != null) { var _g = e.e; if(_g._hx_index == 2) { var _g1 = _g.n; var _g2 = _g.t; var _g3 = _g.e; tmp = true; } else { tmp = false; } } else { tmp = false; } if(!tmp) { break; } e = this.parseStructure("var"); exprs.push(e); tk = this.token(); } if(tk != hscript_Token.TSemicolon && tk != hscript_Token.TEof) { if(this.isBlock(e)) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } else { this.unexpected(tk); } } } ,parseObject: function(p1) { var fl = []; _hx_loop1: while(true) { var tk = this.token(); var id = null; switch(tk._hx_index) { case 1: var c = tk.c; if(!this.allowJSON) { this.unexpected(tk); } if(c._hx_index == 2) { var s = c.s; id = s; } else { this.unexpected(tk); } break; case 2: var i = tk.s; id = i; break; case 7: break _hx_loop1; default: this.unexpected(tk); break _hx_loop1; } var t = this.token(); if(t != hscript_Token.TDoubleDot) { this.unexpected(t); } fl.push({ name : id, e : this.parseExpr()}); tk = this.token(); switch(tk._hx_index) { case 7: break _hx_loop1; case 9: break; default: this.unexpected(tk); } } var e = hscript_ExprDef.EObject(fl); var pmin = p1; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); } ,parseExpr: function() { var tk = this.token(); var p1 = this.tokenMin; switch(tk._hx_index) { case 1: var c = tk.c; var e = hscript_ExprDef.EConst(c); var pmin = null; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 2: var id = tk.s; var e = this.parseStructure(id); if(e == null) { var e1 = hscript_ExprDef.EIdent(id); var pmin = null; var pmax = null; if(e1 == null) { e = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } return this.parseExprNext(e); case 3: var op = tk.s; if(op == "-") { var start = this.tokenMin; var e = this.parseExpr(); if(e == null) { return this.makeUnop(op,e); } var _g = e.e; if(_g._hx_index == 0) { var _g1 = _g.c; switch(_g1._hx_index) { case 0: var i = _g1.v; var e1 = hscript_ExprDef.EConst(hscript_Const.CInt(-i)); var pmin = start; var pmax = e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case 1: var f = _g1.f; var e1 = hscript_ExprDef.EConst(hscript_Const.CFloat(-f)); var pmin = start; var pmax = e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; default: return this.makeUnop(op,e); } } else { return this.makeUnop(op,e); } } if(this.opPriority.h[op] < 0) { return this.makeUnop(op,this.parseExpr()); } return this.unexpected(tk); case 4: tk = this.token(); if(tk == hscript_Token.TPClose) { var t = this.token(); if(!Type.enumEq(t,hscript_Token.TOp("->"))) { this.unexpected(t); } var eret = this.parseExpr(); var e = hscript_ExprDef.EReturn(eret); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EFunction([],e1); var pmin = p1; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; var e = this.parseExpr(); tk = this.token(); switch(tk._hx_index) { case 5: var e1 = hscript_ExprDef.EParent(e); var pmin = p1; var pmax = this.tokenMax; var tmp; if(e1 == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 9: var _g = e.e; if(_g._hx_index == 1) { var v = _g.v; return this.parseLambda([{ name : v}],e == null ? 0 : e.pmin); } break; case 14: var t = this.parseType(); tk = this.token(); switch(tk._hx_index) { case 5: var e1 = hscript_ExprDef.ECheckType(e,t); var pmin = p1; var pmax = this.tokenMax; var tmp; if(e1 == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 9: var _g = e.e; if(_g._hx_index == 1) { var v = _g.v; return this.parseLambda([{ name : v, t : t}],e == null ? 0 : e.pmin); } break; default: } break; default: } return this.unexpected(tk); case 6: tk = this.token(); switch(tk._hx_index) { case 1: var c = tk.c; if(this.allowJSON) { if(c._hx_index == 2) { var _g = c.s; var tk2 = this.token(); this.tokens.push({ t : tk2, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; if(tk2._hx_index == 14) { return this.parseExprNext(this.parseObject(p1)); } } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } break; case 2: var _g = tk.s; var tk2 = this.token(); this.tokens.push({ t : tk2, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; if(tk2._hx_index == 14) { return this.parseExprNext(this.parseObject(p1)); } break; case 7: var e = hscript_ExprDef.EObject([]); var pmin = p1; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); default: this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } var a = []; while(true) { this.parseFullExpr(a); tk = this.token(); if(tk == hscript_Token.TBrClose || this.resumeErrors && tk == hscript_Token.TEof) { break; } this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } var e = hscript_ExprDef.EBlock(a); var pmin = p1; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case 11: var a = []; tk = this.token(); while(tk != hscript_Token.TBkClose && (!this.resumeErrors || tk != hscript_Token.TEof)) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; a.push(this.parseExpr()); tk = this.token(); if(tk == hscript_Token.TComma) { tk = this.token(); } } if(a.length == 1 && a[0] != null) { var _g = a[0].e; switch(_g._hx_index) { case 10: var _g1 = _g.cond; var _g1 = _g.e; var tmp = "__a_" + this.uid++; var e = hscript_ExprDef.EArrayDecl([]); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EVar(tmp,null,e1); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = this.mapCompr(tmp,a[0]); var e2 = hscript_ExprDef.EIdent(tmp); var pmin = p1; var pmax = null; var e3; if(e2 == null) { e3 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e3 = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e2 = hscript_ExprDef.EBlock([e1,e,e3]); var pmin = p1; var pmax = null; var e; if(e2 == null) { e = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(e); case 11: var _g1 = _g.v; var _g1 = _g.it; var _g1 = _g.e; var tmp = "__a_" + this.uid++; var e = hscript_ExprDef.EArrayDecl([]); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EVar(tmp,null,e1); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = this.mapCompr(tmp,a[0]); var e2 = hscript_ExprDef.EIdent(tmp); var pmin = p1; var pmax = null; var e3; if(e2 == null) { e3 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e3 = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e2 = hscript_ExprDef.EBlock([e1,e,e3]); var pmin = p1; var pmax = null; var e; if(e2 == null) { e = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(e); case 24: var _g1 = _g.cond; var _g1 = _g.e; var tmp = "__a_" + this.uid++; var e = hscript_ExprDef.EArrayDecl([]); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EVar(tmp,null,e1); var pmin = p1; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = this.mapCompr(tmp,a[0]); var e2 = hscript_ExprDef.EIdent(tmp); var pmin = p1; var pmax = null; var e3; if(e2 == null) { e3 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e3 = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e2 = hscript_ExprDef.EBlock([e1,e,e3]); var pmin = p1; var pmax = null; var e; if(e2 == null) { e = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(e); default: } } var e = hscript_ExprDef.EArrayDecl(a); var pmin = p1; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 15: var id = tk.s; if(this.allowMetadata) { var args = this.parseMetaArgs(); var e = hscript_ExprDef.EMeta(id,args,this.parseExpr()); var pmin = p1; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } else { return this.unexpected(tk); } break; default: return this.unexpected(tk); } } ,parseLambda: function(args,pmin) { _hx_loop1: while(true) { var id = this.getIdent(); var t = this.maybe(hscript_Token.TDoubleDot) ? this.parseType() : null; args.push({ name : id, t : t}); var tk = this.token(); switch(tk._hx_index) { case 5: break _hx_loop1; case 9: break; default: this.unexpected(tk); break _hx_loop1; } } var t = this.token(); if(!Type.enumEq(t,hscript_Token.TOp("->"))) { this.unexpected(t); } var eret = this.parseExpr(); var e = hscript_ExprDef.EReturn(eret); var pmin1 = pmin; var pmax = null; var e1; if(e == null) { e1 = null; } else { if(pmin1 == null) { pmin1 = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e1 = { e : e, pmin : pmin1, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EFunction(args,e1); var pmin1 = pmin; var pmax = null; if(e == null) { return null; } else { if(pmin1 == null) { pmin1 = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin1, pmax : pmax, origin : this.origin, line : this.line}; } } ,parseMetaArgs: function() { var tk = this.token(); if(tk != hscript_Token.TPOpen) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return null; } var args = []; tk = this.token(); if(tk != hscript_Token.TPClose) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; _hx_loop1: while(true) { args.push(this.parseExpr()); var _g = this.token(); switch(_g._hx_index) { case 5: break _hx_loop1; case 9: break; default: var tk = _g; this.unexpected(tk); } } } return args; } ,mapCompr: function(tmp,e) { if(e == null) { return null; } var edef; var _g = e.e; switch(_g._hx_index) { case 3: var e2 = _g.e; edef = hscript_ExprDef.EParent(this.mapCompr(tmp,e2)); break; case 4: var _g1 = _g.e; if(_g1.length == 1) { var e1 = _g1[0]; edef = hscript_ExprDef.EBlock([this.mapCompr(tmp,e1)]); } else { var e1 = hscript_ExprDef.EIdent(tmp); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; var e2; if(e1 == null) { e2 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e2 = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e1 = hscript_ExprDef.EField(e2,"push"); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; var edef1; if(e1 == null) { edef1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } edef1 = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } edef = hscript_ExprDef.ECall(edef1,[e]); } break; case 9: var cond = _g.cond; var e1 = _g.e1; var e2 = _g.e2; if(e2 == null) { edef = hscript_ExprDef.EIf(cond,this.mapCompr(tmp,e1),null); } else { var e1 = hscript_ExprDef.EIdent(tmp); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; var e2; if(e1 == null) { e2 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e2 = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e1 = hscript_ExprDef.EField(e2,"push"); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; var edef1; if(e1 == null) { edef1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } edef1 = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } edef = hscript_ExprDef.ECall(edef1,[e]); } break; case 10: var cond = _g.cond; var e2 = _g.e; edef = hscript_ExprDef.EWhile(cond,this.mapCompr(tmp,e2)); break; case 11: var v = _g.v; var it = _g.it; var e2 = _g.e; edef = hscript_ExprDef.EFor(v,it,this.mapCompr(tmp,e2)); break; case 24: var cond = _g.cond; var e2 = _g.e; edef = hscript_ExprDef.EDoWhile(cond,this.mapCompr(tmp,e2)); break; default: var e1 = hscript_ExprDef.EIdent(tmp); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; var e2; if(e1 == null) { e2 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e2 = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e1 = hscript_ExprDef.EField(e2,"push"); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; var edef1; if(e1 == null) { edef1 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } edef1 = { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } edef = hscript_ExprDef.ECall(edef1,[e]); } var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; if(edef == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : edef, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } ,makeUnop: function(op,e) { if(e == null && this.resumeErrors) { return null; } var _g = e.e; switch(_g._hx_index) { case 6: var bop = _g.op; var e1 = _g.e1; var e2 = _g.e2; var e3 = hscript_ExprDef.EBinop(bop,this.makeUnop(op,e1),e2); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e2 == null ? 0 : e2.pmax; if(e3 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e3, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case 22: var e1 = _g.cond; var e2 = _g.e1; var e3 = _g.e2; var e4 = hscript_ExprDef.ETernary(this.makeUnop(op,e1),e2,e3); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e3 == null ? 0 : e3.pmax; if(e4 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e4, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; default: var e1 = hscript_ExprDef.EUnop(op,true,e); var pmin = e == null ? 0 : e.pmin; var pmax = e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } } ,makeBinop: function(op,e1,e) { if(e == null && this.resumeErrors) { var e2 = hscript_ExprDef.EBinop(op,e1,e); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e1 == null ? 0 : e1.pmax; if(e2 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } var _g = e.e; switch(_g._hx_index) { case 6: var op2 = _g.op; var e2 = _g.e1; var e3 = _g.e2; if(this.opPriority.h[op] <= this.opPriority.h[op2] && !Object.prototype.hasOwnProperty.call(this.opRightAssoc.h,op)) { var e4 = hscript_ExprDef.EBinop(op2,this.makeBinop(op,e1,e2),e3); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e3 == null ? 0 : e3.pmax; if(e4 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e4, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } else { var e2 = hscript_ExprDef.EBinop(op,e1,e); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e == null ? 0 : e.pmax; if(e2 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } break; case 22: var e2 = _g.cond; var e3 = _g.e1; var e4 = _g.e2; if(Object.prototype.hasOwnProperty.call(this.opRightAssoc.h,op)) { var e5 = hscript_ExprDef.EBinop(op,e1,e); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e == null ? 0 : e.pmax; if(e5 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e5, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } else { var e5 = hscript_ExprDef.ETernary(this.makeBinop(op,e1,e2),e3,e4); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e == null ? 0 : e.pmax; if(e5 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e5, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } break; default: var e2 = hscript_ExprDef.EBinop(op,e1,e); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e == null ? 0 : e.pmax; if(e2 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } } ,parseStructure: function(id) { var p1 = this.tokenMin; switch(id) { case "break": var e = hscript_ExprDef.EBreak; var pmin = null; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "continue": var e = hscript_ExprDef.EContinue; var pmin = null; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "do": var e = this.parseExpr(); var tk = this.token(); if(tk._hx_index == 2) { if(tk.s != "while") { this.unexpected(tk); } } else { this.unexpected(tk); } var econd = this.parseExpr(); var e1 = hscript_ExprDef.EDoWhile(econd,e); var pmin = p1; var pmax = econd == null ? 0 : econd.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "else": return this.unexpected(hscript_Token.TId(id)); case "for": var t = this.token(); if(t != hscript_Token.TPOpen) { this.unexpected(t); } var vname = this.getIdent(); var t = this.token(); if(!Type.enumEq(t,hscript_Token.TId("in"))) { this.unexpected(t); } var eiter = this.parseExpr(); var t = this.token(); if(t != hscript_Token.TPClose) { this.unexpected(t); } var e = this.parseExpr(); var e1 = hscript_ExprDef.EFor(vname,eiter,e); var pmin = p1; var pmax = e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "function": var tk = this.token(); var name = null; if(tk._hx_index == 2) { var id = tk.s; name = id; } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } var inf = this.parseFunctionDecl(); var e = hscript_ExprDef.EFunction(inf.args,inf.body,name,inf.ret); var pmin = p1; var e1 = inf.body; var pmax = e1 == null ? 0 : e1.pmax; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "if": var t = this.token(); if(t != hscript_Token.TPOpen) { this.unexpected(t); } var cond = this.parseExpr(); var t = this.token(); if(t != hscript_Token.TPClose) { this.unexpected(t); } var e1 = this.parseExpr(); var e2 = null; var semic = false; var tk = this.token(); if(tk == hscript_Token.TSemicolon) { semic = true; tk = this.token(); } if(Type.enumEq(tk,hscript_Token.TId("else"))) { e2 = this.parseExpr(); } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; if(semic) { this.tokens.push({ t : hscript_Token.TSemicolon, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } } var e = hscript_ExprDef.EIf(cond,e1,e2); var pmin = p1; var pmax = e2 == null ? this.tokenMax : e2 == null ? 0 : e2.pmax; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "inline": if(!this.maybe(hscript_Token.TId("function"))) { this.unexpected(hscript_Token.TId("inline")); } return this.parseStructure("function"); case "new": var a = []; a.push(this.getIdent()); _hx_loop1: while(true) { var tk = this.token(); switch(tk._hx_index) { case 4: break _hx_loop1; case 8: a.push(this.getIdent()); break; default: this.unexpected(tk); break _hx_loop1; } } var args = this.parseExprList(hscript_Token.TPClose); var e = hscript_ExprDef.ENew(a.join("."),args); var pmin = p1; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "return": var tk = this.token(); this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; var e = tk == hscript_Token.TSemicolon ? null : this.parseExpr(); var e1 = hscript_ExprDef.EReturn(e); var pmin = p1; var pmax = e == null ? this.tokenMax : e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "switch": var e = this.parseExpr(); var def = null; var cases = []; var t = this.token(); if(t != hscript_Token.TBrOpen) { this.unexpected(t); } _hx_loop2: while(true) { var tk = this.token(); switch(tk._hx_index) { case 2: switch(tk.s) { case "case": var c = { values : [], expr : null}; cases.push(c); _hx_loop3: while(true) { var e1 = this.parseExpr(); c.values.push(e1); tk = this.token(); switch(tk._hx_index) { case 9: break; case 14: break _hx_loop3; default: this.unexpected(tk); break _hx_loop3; } } var exprs = []; _hx_loop4: while(true) { tk = this.token(); this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; switch(tk._hx_index) { case 0: if(this.resumeErrors) { break _hx_loop4; } else { this.parseFullExpr(exprs); } break; case 2: switch(tk.s) { case "case":case "default": break _hx_loop4; default: this.parseFullExpr(exprs); } break; case 7: break _hx_loop4; default: this.parseFullExpr(exprs); } } var tmp; if(exprs.length == 1) { tmp = exprs[0]; } else if(exprs.length == 0) { var e2 = hscript_ExprDef.EBlock([]); var pmin = this.tokenMin; var pmax = this.tokenMin; if(e2 == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e2, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } else { var e3 = hscript_ExprDef.EBlock(exprs); var e4 = exprs[0]; var pmin1 = e4 == null ? 0 : e4.pmin; var e5 = exprs[exprs.length - 1]; var pmax1 = e5 == null ? 0 : e5.pmax; if(e3 == null) { tmp = null; } else { if(pmin1 == null) { pmin1 = this.tokenMin; } if(pmax1 == null) { pmax1 = this.tokenMax; } tmp = { e : e3, pmin : pmin1, pmax : pmax1, origin : this.origin, line : this.line}; } } c.expr = tmp; break; case "default": if(def != null) { this.unexpected(tk); } var t = this.token(); if(t != hscript_Token.TDoubleDot) { this.unexpected(t); } var exprs1 = []; _hx_loop5: while(true) { tk = this.token(); this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; switch(tk._hx_index) { case 0: if(this.resumeErrors) { break _hx_loop5; } else { this.parseFullExpr(exprs1); } break; case 2: switch(tk.s) { case "case":case "default": break _hx_loop5; default: this.parseFullExpr(exprs1); } break; case 7: break _hx_loop5; default: this.parseFullExpr(exprs1); } } if(exprs1.length == 1) { def = exprs1[0]; } else if(exprs1.length == 0) { var e6 = hscript_ExprDef.EBlock([]); var pmin2 = this.tokenMin; var pmax2 = this.tokenMin; if(e6 == null) { def = null; } else { if(pmin2 == null) { pmin2 = this.tokenMin; } if(pmax2 == null) { pmax2 = this.tokenMax; } def = { e : e6, pmin : pmin2, pmax : pmax2, origin : this.origin, line : this.line}; } } else { var e7 = hscript_ExprDef.EBlock(exprs1); var e8 = exprs1[0]; var pmin3 = e8 == null ? 0 : e8.pmin; var e9 = exprs1[exprs1.length - 1]; var pmax3 = e9 == null ? 0 : e9.pmax; if(e7 == null) { def = null; } else { if(pmin3 == null) { pmin3 = this.tokenMin; } if(pmax3 == null) { pmax3 = this.tokenMax; } def = { e : e7, pmin : pmin3, pmax : pmax3, origin : this.origin, line : this.line}; } } break; default: this.unexpected(tk); break _hx_loop2; } break; case 7: break _hx_loop2; default: this.unexpected(tk); break _hx_loop2; } } var e1 = hscript_ExprDef.ESwitch(e,cases,def); var pmin = p1; var pmax = this.tokenMax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "throw": var e = this.parseExpr(); var e1 = hscript_ExprDef.EThrow(e); var pmin = p1; var pmax = e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "try": var e = this.parseExpr(); var t = this.token(); if(!Type.enumEq(t,hscript_Token.TId("catch"))) { this.unexpected(t); } var t = this.token(); if(t != hscript_Token.TPOpen) { this.unexpected(t); } var vname = this.getIdent(); var t = this.token(); if(t != hscript_Token.TDoubleDot) { this.unexpected(t); } var t = null; if(this.allowTypes) { t = this.parseType(); } else { var t1 = this.token(); if(!Type.enumEq(t1,hscript_Token.TId("Dynamic"))) { this.unexpected(t1); } } var t1 = this.token(); if(t1 != hscript_Token.TPClose) { this.unexpected(t1); } var ec = this.parseExpr(); var e1 = hscript_ExprDef.ETry(e,vname,t,ec); var pmin = p1; var pmax = ec == null ? 0 : ec.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "var": var ident = this.getIdent(); var tk = this.token(); var t = null; if(tk == hscript_Token.TDoubleDot && this.allowTypes) { t = this.parseType(); tk = this.token(); } var e = null; if(Type.enumEq(tk,hscript_Token.TOp("="))) { e = this.parseExpr(); } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } var e1 = hscript_ExprDef.EVar(ident,t,e); var pmin = p1; var pmax = e == null ? this.tokenMax : e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case "while": var econd = this.parseExpr(); var e = this.parseExpr(); var e1 = hscript_ExprDef.EWhile(econd,e); var pmin = p1; var pmax = e == null ? 0 : e.pmax; if(e1 == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e1, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; default: return null; } } ,parseExprNext: function(e1) { var tk = this.token(); switch(tk._hx_index) { case 3: var op = tk.s; if(op == "->") { var _g = e1.e; switch(_g._hx_index) { case 1: var i = _g.v; var eret = this.parseExpr(); var e = hscript_ExprDef.EReturn(eret); var pmin = eret == null ? 0 : eret.pmin; var pmax = null; var e2; if(e == null) { e2 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e2 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EFunction([{ name : i}],e2); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case 3: var _hx_tmp = _g.e.e; if(_hx_tmp._hx_index == 1) { var i = _hx_tmp.v; var eret = this.parseExpr(); var e = hscript_ExprDef.EReturn(eret); var pmin = eret == null ? 0 : eret.pmin; var pmax = null; var e2; if(e == null) { e2 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e2 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EFunction([{ name : i}],e2); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } break; case 26: var _hx_tmp = _g.e.e; if(_hx_tmp._hx_index == 1) { var i = _hx_tmp.v; var t = _g.t; var eret = this.parseExpr(); var e = hscript_ExprDef.EReturn(eret); var pmin = eret == null ? 0 : eret.pmin; var pmax = null; var e2; if(e == null) { e2 = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } e2 = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } var e = hscript_ExprDef.EFunction([{ name : i, t : t}],e2); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } break; default: } this.unexpected(tk); } if(this.opPriority.h[op] == -1) { var tmp; if(!this.isBlock(e1)) { var _g = e1.e; if(_g._hx_index == 3) { var _g1 = _g.e; tmp = true; } else { tmp = false; } } else { tmp = true; } if(tmp) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return e1; } var e = hscript_ExprDef.EUnop(op,false,e1); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); } return this.makeBinop(op,e1,this.parseExpr()); case 4: var e = hscript_ExprDef.ECall(e1,this.parseExprList(hscript_Token.TPClose)); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 8: var field = this.getIdent(); var e = hscript_ExprDef.EField(e1,field); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 11: var e2 = this.parseExpr(); var t = this.token(); if(t != hscript_Token.TBkClose) { this.unexpected(t); } var e = hscript_ExprDef.EArray(e1,e2); var pmin = e1 == null ? 0 : e1.pmin; var pmax = null; var tmp; if(e == null) { tmp = null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } tmp = { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } return this.parseExprNext(tmp); case 13: var e2 = this.parseExpr(); var t = this.token(); if(t != hscript_Token.TDoubleDot) { this.unexpected(t); } var e3 = this.parseExpr(); var e = hscript_ExprDef.ETernary(e1,e2,e3); var pmin = e1 == null ? 0 : e1.pmin; var pmax = e3 == null ? 0 : e3.pmax; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; default: this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return e1; } } ,parseFunctionArgs: function() { var args = []; var tk = this.token(); if(tk != hscript_Token.TPClose) { var done = false; while(!done) { var name = null; var opt = false; if(tk._hx_index == 13) { opt = true; tk = this.token(); } if(tk._hx_index == 2) { var id = tk.s; name = id; } else { this.unexpected(tk); break; } var arg = { name : name}; args.push(arg); if(opt) { arg.opt = true; } if(this.allowTypes) { if(this.maybe(hscript_Token.TDoubleDot)) { arg.t = this.parseType(); } if(this.maybe(hscript_Token.TOp("="))) { arg.value = this.parseExpr(); } } tk = this.token(); switch(tk._hx_index) { case 5: done = true; break; case 9: tk = this.token(); break; default: this.unexpected(tk); } } } return args; } ,parseFunctionDecl: function() { var t = this.token(); if(t != hscript_Token.TPOpen) { this.unexpected(t); } var args = this.parseFunctionArgs(); var ret = null; if(this.allowTypes) { var tk = this.token(); if(tk != hscript_Token.TDoubleDot) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } else { ret = this.parseType(); } } return { args : args, ret : ret, body : this.parseExpr()}; } ,parsePath: function() { var path = [this.getIdent()]; while(true) { var t = this.token(); if(t != hscript_Token.TDot) { this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; break; } path.push(this.getIdent()); } return path; } ,parseType: function() { var _gthis = this; var t = this.token(); switch(t._hx_index) { case 2: var v = t.s; this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; var path = this.parsePath(); var params = null; t = this.token(); if(t._hx_index == 3) { var op = t.s; if(op == "<") { params = []; _hx_loop1: while(true) { params.push(this.parseType()); t = this.token(); switch(t._hx_index) { case 3: var op = t.s; if(op == ">") { break _hx_loop1; } if(HxOverrides.cca(op,0) == 62) { this.tokens.add({ t : hscript_Token.TOp(HxOverrides.substr(op,1,null)), min : this.tokenMax - op.length - 1, max : this.tokenMax}); break _hx_loop1; } break; case 9: continue; default: } this.unexpected(t); break; } } else { this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } } else { this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } return this.parseTypeNext(hscript_CType.CTPath(path,params)); case 4: var a = this.token(); var b = this.token(); this.tokens.push({ t : b, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; this.tokens.push({ t : a, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; var withReturn = function(args) { var _g = _gthis.token(); if(_g._hx_index == 3) { if(_g.s != "->") { var t = _g; _gthis.unexpected(t); } } else { var t = _g; _gthis.unexpected(t); } return hscript_CType.CTFun(args,_gthis.parseType()); }; switch(a._hx_index) { case 2: var _g = a.s; if(b._hx_index == 14) { var _g = []; var _g1 = 0; var _g2 = this.parseFunctionArgs(); while(_g1 < _g2.length) { var arg = _g2[_g1]; ++_g1; var _g3 = arg.value; if(_g3 != null) { var v = _g3; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.ECustom("Default values not allowed in function types"),v.pmin,v.pmax,this.origin,this.line)); } } _g.push(hscript_CType.CTNamed(arg.name,arg.opt ? hscript_CType.CTOpt(arg.t) : arg.t)); } var args = _g; return withReturn(args); } else { var t1 = this.parseType(); var _g = this.token(); switch(_g._hx_index) { case 5: return this.parseTypeNext(hscript_CType.CTParent(t1)); case 9: var args = [t1]; do args.push(this.parseType()); while(this.maybe(hscript_Token.TComma)); var t1 = this.token(); if(t1 != hscript_Token.TPClose) { this.unexpected(t1); } return withReturn(args); default: var t1 = _g; return this.unexpected(t1); } } break; case 5: var _g = []; var _g1 = 0; var _g2 = this.parseFunctionArgs(); while(_g1 < _g2.length) { var arg = _g2[_g1]; ++_g1; var _g3 = arg.value; if(_g3 != null) { var v = _g3; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.ECustom("Default values not allowed in function types"),v.pmin,v.pmax,this.origin,this.line)); } } _g.push(hscript_CType.CTNamed(arg.name,arg.opt ? hscript_CType.CTOpt(arg.t) : arg.t)); } var args = _g; return withReturn(args); default: var t1 = this.parseType(); var _g = this.token(); switch(_g._hx_index) { case 5: return this.parseTypeNext(hscript_CType.CTParent(t1)); case 9: var args = [t1]; do args.push(this.parseType()); while(this.maybe(hscript_Token.TComma)); var t1 = this.token(); if(t1 != hscript_Token.TPClose) { this.unexpected(t1); } return withReturn(args); default: var t1 = _g; return this.unexpected(t1); } } break; case 6: var fields = []; var meta = null; _hx_loop6: while(true) { t = this.token(); switch(t._hx_index) { case 2: var _g = t.s; if(_g == "var") { var name = this.getIdent(); var t1 = this.token(); if(t1 != hscript_Token.TDoubleDot) { this.unexpected(t1); } fields.push({ name : name, t : this.parseType(), meta : meta}); meta = null; var t2 = this.token(); if(t2 != hscript_Token.TSemicolon) { this.unexpected(t2); } } else { var name1 = _g; var t3 = this.token(); if(t3 != hscript_Token.TDoubleDot) { this.unexpected(t3); } fields.push({ name : name1, t : this.parseType(), meta : meta}); t = this.token(); switch(t._hx_index) { case 7: break _hx_loop6; case 9: break; default: this.unexpected(t); } } break; case 7: break _hx_loop6; case 15: var name2 = t.s; if(meta == null) { meta = []; } meta.push({ name : name2, params : this.parseMetaArgs()}); break; default: this.unexpected(t); break _hx_loop6; } } return this.parseTypeNext(hscript_CType.CTAnon(fields)); default: return this.unexpected(t); } } ,parseTypeNext: function(t) { var tk = this.token(); if(tk._hx_index == 3) { var op = tk.s; if(op != "->") { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return t; } } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return t; } var t2 = this.parseType(); if(t2._hx_index == 1) { var _g = t2.ret; var args = t2.args; args.unshift(t); return t2; } else { return hscript_CType.CTFun([t],t2); } } ,parseExprList: function(etk) { var args = []; var tk = this.token(); if(tk == etk) { return args; } this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; while(true) { args.push(this.parseExpr()); tk = this.token(); if(tk._hx_index != 9) { if(tk == etk) { break; } this.unexpected(tk); break; } } return args; } ,parseModule: function(content,origin) { if(origin == null) { origin = "hscript"; } this.initParser(origin); this.input = content; this.readPos = 0; this.allowTypes = true; this.allowMetadata = true; var decls = []; while(true) { var tk = this.token(); if(tk == hscript_Token.TEof) { break; } this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; decls.push(this.parseModuleDecl()); } return decls; } ,parseMetadata: function() { var meta = []; while(true) { var tk = this.token(); if(tk._hx_index == 15) { var name = tk.s; meta.push({ name : name, params : this.parseMetaArgs()}); } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; break; } } return meta; } ,parseParams: function() { if(this.maybe(hscript_Token.TOp("<"))) { if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EInvalidOp("Unsupported class type parameters"),this.readPos,this.readPos,this.origin,this.line)); } } return { }; } ,parseModuleDecl: function() { var meta = this.parseMetadata(); var ident = this.getIdent(); var isPrivate = false; var isExtern = false; _hx_loop1: while(true) { switch(ident) { case "extern": isExtern = true; break; case "private": isPrivate = true; break; default: break _hx_loop1; } ident = this.getIdent(); } switch(ident) { case "class": var name = this.getIdent(); var params = this.parseParams(); var extend = null; var implement = []; _hx_loop2: while(true) { var t = this.token(); if(t._hx_index == 2) { switch(t.s) { case "extends": extend = this.parseType(); break; case "implements": implement.push(this.parseType()); break; default: this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; break _hx_loop2; } } else { this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; break; } } var fields = []; var t = this.token(); if(t != hscript_Token.TBrOpen) { this.unexpected(t); } while(!this.maybe(hscript_Token.TBrClose)) fields.push(this.parseField()); return hscript_ModuleDecl.DClass({ name : name, meta : meta, params : params, extend : extend, implement : implement, fields : fields, isPrivate : isPrivate, isExtern : isExtern}); case "import": var path = [this.getIdent()]; var star = false; while(true) { var t = this.token(); if(t != hscript_Token.TDot) { this.tokens.push({ t : t, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; break; } t = this.token(); switch(t._hx_index) { case 2: var id = t.s; path.push(id); break; case 3: if(t.s == "*") { star = true; } else { this.unexpected(t); } break; default: this.unexpected(t); } } var t = this.token(); if(t != hscript_Token.TSemicolon) { this.unexpected(t); } return hscript_ModuleDecl.DImport(path,star); case "package": var path = this.parsePath(); var t = this.token(); if(t != hscript_Token.TSemicolon) { this.unexpected(t); } return hscript_ModuleDecl.DPackage(path); case "typedef": var name = this.getIdent(); var params = this.parseParams(); var t = this.token(); if(!Type.enumEq(t,hscript_Token.TOp("="))) { this.unexpected(t); } var t = this.parseType(); return hscript_ModuleDecl.DTypedef({ name : name, meta : meta, params : params, isPrivate : isPrivate, t : t}); default: this.unexpected(hscript_Token.TId(ident)); } return null; } ,parseField: function() { var meta = this.parseMetadata(); var access = []; _hx_loop1: while(true) { var id = this.getIdent(); switch(id) { case "function": var name = this.getIdent(); var inf = this.parseFunctionDecl(); return { name : name, meta : meta, access : access, kind : hscript_FieldKind.KFunction({ args : inf.args, expr : inf.body, ret : inf.ret})}; case "inline": access.push(hscript_FieldAccess.AInline); break; case "macro": access.push(hscript_FieldAccess.AMacro); break; case "override": access.push(hscript_FieldAccess.AOverride); break; case "private": access.push(hscript_FieldAccess.APrivate); break; case "public": access.push(hscript_FieldAccess.APublic); break; case "static": access.push(hscript_FieldAccess.AStatic); break; case "var": var name1 = this.getIdent(); var get = null; var set = null; if(this.maybe(hscript_Token.TPOpen)) { get = this.getIdent(); var t = this.token(); if(t != hscript_Token.TComma) { this.unexpected(t); } set = this.getIdent(); var t1 = this.token(); if(t1 != hscript_Token.TPClose) { this.unexpected(t1); } } var type = this.maybe(hscript_Token.TDoubleDot) ? this.parseType() : null; var expr = this.maybe(hscript_Token.TOp("=")) ? this.parseExpr() : null; if(expr != null) { if(this.isBlock(expr)) { this.maybe(hscript_Token.TSemicolon); } else { var t2 = this.token(); if(t2 != hscript_Token.TSemicolon) { this.unexpected(t2); } } } else { var tmp; if(type != null) { if(type == null) { tmp = false; } else if(type._hx_index == 2) { var _g = type.fields; tmp = true; } else { tmp = false; } } else { tmp = false; } if(tmp) { this.maybe(hscript_Token.TSemicolon); } else { var t3 = this.token(); if(t3 != hscript_Token.TSemicolon) { this.unexpected(t3); } } } return { name : name1, meta : meta, access : access, kind : hscript_FieldKind.KVar({ get : get, set : set, type : type, expr : expr})}; default: this.unexpected(hscript_Token.TId(id)); break _hx_loop1; } } return null; } ,readChar: function() { return this.input.charCodeAt(this.readPos++); } ,readString: function(until) { var c = 0; var b_b = ""; var esc = false; var old = this.line; var s = this.input; var p1 = this.readPos - 1; while(true) { var c = this.input.charCodeAt(this.readPos++); if(c != c) { this.line = old; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EUnterminatedString,p1,p1,this.origin,this.line)); } break; } if(esc) { esc = false; switch(c) { case 47: if(this.allowJSON) { b_b += String.fromCodePoint(c); } else { this.invalidChar(c); } break; case 34:case 39:case 92: b_b += String.fromCodePoint(c); break; case 110: b_b += String.fromCodePoint(10); break; case 114: b_b += String.fromCodePoint(13); break; case 116: b_b += String.fromCodePoint(9); break; case 117: if(!this.allowJSON) { this.invalidChar(c); } var k = 0; var _g = 0; while(_g < 4) { var i = _g++; k <<= 4; var char = this.input.charCodeAt(this.readPos++); switch(char) { case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: k += char - 48; break; case 65:case 66:case 67:case 68:case 69:case 70: k += char - 55; break; case 97:case 98:case 99:case 100:case 101:case 102: k += char - 87; break; default: if(char != char) { this.line = old; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EUnterminatedString,p1,p1,this.origin,this.line)); } } this.invalidChar(char); } } b_b += String.fromCodePoint(k); break; default: this.invalidChar(c); } } else if(c == 92) { esc = true; } else if(c == until) { break; } else { if(c == 10) { this.line++; } b_b += String.fromCodePoint(c); } } return b_b; } ,token: function() { var t = this.tokens.pop(); if(t != null) { this.tokenMin = t.min; this.tokenMax = t.max; return t.t; } this.oldTokenMin = this.tokenMin; this.oldTokenMax = this.tokenMax; this.tokenMin = this.char < 0 ? this.readPos : this.readPos - 1; var t = this._token(); this.tokenMax = this.char < 0 ? this.readPos - 1 : this.readPos - 2; return t; } ,_token: function() { var char; if(this.char < 0) { char = this.input.charCodeAt(this.readPos++); } else { char = this.char; this.char = -1; } while(true) { if(char != char) { this.char = char; return hscript_Token.TEof; } switch(char) { case 0: return hscript_Token.TEof; case 10: this.line++; this.tokenMin++; break; case 9:case 13:case 32: this.tokenMin++; break; case 34:case 39: return hscript_Token.TConst(hscript_Const.CString(this.readString(char))); case 35: char = this.input.charCodeAt(this.readPos++); if(this.idents[char]) { var id = String.fromCodePoint(char); while(true) { char = this.input.charCodeAt(this.readPos++); if(!this.idents[char]) { this.char = char; return this.preprocess(id); } id += String.fromCodePoint(char); } } this.invalidChar(char); break; case 40: return hscript_Token.TPOpen; case 41: return hscript_Token.TPClose; case 44: return hscript_Token.TComma; case 46: char = this.input.charCodeAt(this.readPos++); switch(char) { case 46: char = this.input.charCodeAt(this.readPos++); if(char != 46) { this.invalidChar(char); } return hscript_Token.TOp("..."); case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: var n = char - 48; var exp = 1; while(true) { char = this.input.charCodeAt(this.readPos++); exp *= 10; switch(char) { case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: n = n * 10 + (char - 48); break; default: this.char = char; return hscript_Token.TConst(hscript_Const.CFloat(n / exp)); } } break; default: this.char = char; return hscript_Token.TDot; } break; case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: var n1 = (char - 48) * 1.0; var exp1 = 0.; while(true) { char = this.input.charCodeAt(this.readPos++); exp1 *= 10; switch(char) { case 46: if(exp1 > 0) { if(exp1 == 10 && this.input.charCodeAt(this.readPos++) == 46) { this.tokens.push({ t : hscript_Token.TOp("..."), min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; var i = n1 | 0; return hscript_Token.TConst(i == n1 ? hscript_Const.CInt(i) : hscript_Const.CFloat(n1)); } this.invalidChar(char); } exp1 = 1.; break; case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: n1 = n1 * 10 + (char - 48); break; case 69:case 101: var tk = this.token(); var pow = null; switch(tk._hx_index) { case 1: var _g = tk.c; if(_g._hx_index == 0) { var e = _g.v; pow = e; } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } break; case 3: if(tk.s == "-") { tk = this.token(); if(tk._hx_index == 1) { var _g1 = tk.c; if(_g1._hx_index == 0) { var e1 = _g1.v; pow = -e1; } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } } else { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } break; default: this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; } if(pow == null) { this.invalidChar(char); } return hscript_Token.TConst(hscript_Const.CFloat(Math.pow(10,pow) / exp1 * n1 * 10)); case 120: if(n1 > 0 || exp1 > 0) { this.invalidChar(char); } var n2 = 0; while(true) { char = this.input.charCodeAt(this.readPos++); switch(char) { case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: n2 = (n2 << 4) + char - 48; break; case 65:case 66:case 67:case 68:case 69:case 70: n2 = (n2 << 4) + (char - 55); break; case 97:case 98:case 99:case 100:case 101:case 102: n2 = (n2 << 4) + (char - 87); break; default: this.char = char; return hscript_Token.TConst(hscript_Const.CInt(n2)); } } break; default: this.char = char; var i1 = n1 | 0; return hscript_Token.TConst(exp1 > 0 ? hscript_Const.CFloat(n1 * 10 / exp1) : i1 == n1 ? hscript_Const.CInt(i1) : hscript_Const.CFloat(n1)); } } break; case 58: return hscript_Token.TDoubleDot; case 59: return hscript_Token.TSemicolon; case 61: char = this.input.charCodeAt(this.readPos++); if(char == 61) { return hscript_Token.TOp("=="); } else if(char == 62) { return hscript_Token.TOp("=>"); } this.char = char; return hscript_Token.TOp("="); case 63: return hscript_Token.TQuestion; case 64: char = this.input.charCodeAt(this.readPos++); if(this.idents[char] || char == 58) { var id1 = String.fromCodePoint(char); while(true) { char = this.input.charCodeAt(this.readPos++); if(!this.idents[char]) { this.char = char; return hscript_Token.TMeta(id1); } id1 += String.fromCodePoint(char); } } this.invalidChar(char); break; case 91: return hscript_Token.TBkOpen; case 93: return hscript_Token.TBkClose; case 123: return hscript_Token.TBrOpen; case 125: return hscript_Token.TBrClose; default: if(this.ops[char]) { var op = String.fromCodePoint(char); while(true) { char = this.input.charCodeAt(this.readPos++); if(char != char) { char = 0; } if(!this.ops[char]) { this.char = char; return hscript_Token.TOp(op); } var pop = op; op += String.fromCodePoint(char); if(!Object.prototype.hasOwnProperty.call(this.opPriority.h,op) && Object.prototype.hasOwnProperty.call(this.opPriority.h,pop)) { if(op == "//" || op == "/*") { return this.tokenComment(op,char); } this.char = char; return hscript_Token.TOp(pop); } } } if(this.idents[char]) { var id2 = String.fromCodePoint(char); while(true) { char = this.input.charCodeAt(this.readPos++); if(char != char) { char = 0; } if(!this.idents[char]) { this.char = char; return hscript_Token.TId(id2); } id2 += String.fromCodePoint(char); } } this.invalidChar(char); } char = this.input.charCodeAt(this.readPos++); } } ,preprocValue: function(id) { return this.preprocesorValues.h[id]; } ,preprocStack: null ,parsePreproCond: function() { var tk = this.token(); switch(tk._hx_index) { case 2: var id = tk.s; var e = hscript_ExprDef.EIdent(id); var pmin = this.tokenMin; var pmax = this.tokenMax; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } break; case 3: if(tk.s == "!") { var e = hscript_ExprDef.EUnop("!",true,this.parsePreproCond()); var pmin = this.tokenMin; var pmax = this.tokenMax; if(e == null) { return null; } else { if(pmin == null) { pmin = this.tokenMin; } if(pmax == null) { pmax = this.tokenMax; } return { e : e, pmin : pmin, pmax : pmax, origin : this.origin, line : this.line}; } } else { return this.unexpected(tk); } break; case 4: this.tokens.push({ t : hscript_Token.TPOpen, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; return this.parseExpr(); default: return this.unexpected(tk); } } ,evalPreproCond: function(e) { var _g = e.e; switch(_g._hx_index) { case 1: var id = _g.v; return this.preprocValue(id) != null; case 3: var e1 = _g.e; return this.evalPreproCond(e1); case 6: var _g1 = _g.e1; var _g2 = _g.e2; switch(_g.op) { case "&&": var e1 = _g1; var e2 = _g2; if(this.evalPreproCond(e1)) { return this.evalPreproCond(e2); } else { return false; } break; case "||": var e1 = _g1; var e2 = _g2; if(!this.evalPreproCond(e1)) { return this.evalPreproCond(e2); } else { return true; } break; default: var e1 = e.e; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EInvalidPreprocessor("Can't eval " + $hxEnums[e1.__enum__].__constructs__[e1._hx_index]._hx_name),this.readPos,this.readPos,this.origin,this.line)); } return false; } break; case 7: var _g1 = _g.prefix; if(_g.op == "!") { var e1 = _g.e; return !this.evalPreproCond(e1); } else { var e1 = e.e; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EInvalidPreprocessor("Can't eval " + $hxEnums[e1.__enum__].__constructs__[e1._hx_index]._hx_name),this.readPos,this.readPos,this.origin,this.line)); } return false; } break; default: var e1 = e.e; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EInvalidPreprocessor("Can't eval " + $hxEnums[e1.__enum__].__constructs__[e1._hx_index]._hx_name),this.readPos,this.readPos,this.origin,this.line)); } return false; } } ,preprocess: function(id) { switch(id) { case "else":case "elseif": if(this.preprocStack.length > 0) { if(this.preprocStack[this.preprocStack.length - 1].r) { this.preprocStack[this.preprocStack.length - 1].r = false; this.skipTokens(); return this.token(); } else if(id == "else") { this.preprocStack.pop(); this.preprocStack.push({ r : true}); return this.token(); } else { this.preprocStack.pop(); return this.preprocess("if"); } } else { return hscript_Token.TPrepro(id); } break; case "end": if(this.preprocStack.length > 0) { this.preprocStack.pop(); return this.token(); } else { return hscript_Token.TPrepro(id); } break; case "if": var e = this.parsePreproCond(); if(this.evalPreproCond(e)) { this.preprocStack.push({ r : true}); return this.token(); } this.preprocStack.push({ r : false}); this.skipTokens(); return this.token(); default: return hscript_Token.TPrepro(id); } } ,skipTokens: function() { var spos = this.preprocStack.length - 1; var obj = this.preprocStack[spos]; var pos = this.readPos; while(true) { var tk = this.token(); if(tk == hscript_Token.TEof) { if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EInvalidPreprocessor("Unclosed"),pos,pos,this.origin,this.line)); } } if(this.preprocStack[spos] != obj) { this.tokens.push({ t : tk, min : this.tokenMin, max : this.tokenMax}); this.tokenMin = this.oldTokenMin; this.tokenMax = this.oldTokenMax; break; } } } ,tokenComment: function(op,char) { var c = HxOverrides.cca(op,1); var s = this.input; if(c == 47) { while(char != 13 && char != 10) { char = this.input.charCodeAt(this.readPos++); if(char != char) { break; } } this.char = char; return this.token(); } if(c == 42) { var old = this.line; if(op == "/**/") { this.char = char; return this.token(); } do { while(char != 42) { if(char == 10) { this.line++; } char = this.input.charCodeAt(this.readPos++); if(char != char) { this.line = old; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EUnterminatedComment,this.tokenMin,this.tokenMin,this.origin,this.line)); } break; } } char = this.input.charCodeAt(this.readPos++); if(char != char) { this.line = old; if(!this.resumeErrors) { throw haxe_Exception.thrown(new hscript_Error(hscript_ErrorDef.EUnterminatedComment,this.tokenMin,this.tokenMin,this.origin,this.line)); } break; } } while(char != 47); return this.token(); } this.char = char; return hscript_Token.TOp(op); } ,constString: function(c) { switch(c._hx_index) { case 0: var v = c.v; if(v == null) { return "null"; } else { return "" + v; } break; case 1: var f = c.f; if(f == null) { return "null"; } else { return "" + f; } break; case 2: var s = c.s; return s; } } ,tokenString: function(t) { switch(t._hx_index) { case 0: return ""; case 1: var c = t.c; return this.constString(c); case 2: var s = t.s; return s; case 3: var s = t.s; return s; case 4: return "("; case 5: return ")"; case 6: return "{"; case 7: return "}"; case 8: return "."; case 9: return ","; case 10: return ";"; case 11: return "["; case 12: return "]"; case 13: return "?"; case 14: return ":"; case 15: var id = t.s; return "@" + id; case 16: var id = t.s; return "#" + id; } } ,__class__: hscript_Parser }; var hscript_Printer = function() { }; $hxClasses["hscript.Printer"] = hscript_Printer; hscript_Printer.__name__ = "hscript.Printer"; hscript_Printer.toString = function(e) { return new hscript_Printer().exprToString(e); }; hscript_Printer.errorToString = function(e) { var message; var _g = e.e; switch(_g._hx_index) { case 0: var c = _g.c; message = "Invalid character: '" + (c != c ? "EOF" : String.fromCodePoint(c)) + "' (" + c + ")"; break; case 1: var s = _g.s; message = "Unexpected token: \"" + s + "\""; break; case 2: message = "Unterminated string"; break; case 3: message = "Unterminated comment"; break; case 4: var str = _g.msg; message = "Invalid preprocessor (" + str + ")"; break; case 5: var v = _g.v; message = "Unknown variable: " + v; break; case 6: var v = _g.v; message = "Invalid iterator: " + v; break; case 7: var op = _g.op; message = "Invalid operator: " + op; break; case 8: var f = _g.f; message = "Invalid access to field " + f; break; case 9: var msg = _g.msg; message = msg; break; } return e.origin + ":" + e.line + ": " + message; }; hscript_Printer.prototype = { buf: null ,tabs: null ,exprToString: function(e) { this.buf = new StringBuf(); this.tabs = ""; this.expr(e); return this.buf.b; } ,typeToString: function(t) { this.buf = new StringBuf(); this.tabs = ""; this.type(t); return this.buf.b; } ,add: function(s) { this.buf.b += Std.string(s); } ,type: function(t) { switch(t._hx_index) { case 0: var path = t.path; var params = t.params; var s = path.join("."); this.buf.b += Std.string(s); if(params != null) { this.buf.b += "<"; var first = true; var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; if(first) { first = false; } else { this.buf.b += ", "; } this.type(p); } this.buf.b += ">"; } break; case 1: var _g = t.args; var _g1 = t.ret; var args = _g; var ret = _g1; if(Lambda.exists(args,function(a) { if(a._hx_index == 5) { var _g = a.n; var _g = a.t; return true; } else { return false; } })) { this.buf.b += "("; var _g2 = 0; while(_g2 < args.length) { var a = args[_g2]; ++_g2; if(a._hx_index == 5) { var _g3 = a.n; var _g4 = a.t; this.type(a); } else { this.type(hscript_CType.CTNamed("_",a)); } } this.buf.b += ")->"; this.type(ret); } else { var args = _g; var ret = _g1; if(args.length == 0) { this.buf.b += "Void -> "; } else { var _g = 0; while(_g < args.length) { var a = args[_g]; ++_g; this.type(a); this.buf.b += " -> "; } } this.type(ret); } break; case 2: var fields = t.fields; this.buf.b += "{"; var first = true; var _g = 0; while(_g < fields.length) { var f = fields[_g]; ++_g; if(first) { first = false; this.buf.b += " "; } else { this.buf.b += ", "; } this.buf.b += Std.string(f.name + " : "); this.type(f.t); } this.buf.b += first ? "}" : " }"; break; case 3: var t1 = t.t; this.buf.b += "("; this.type(t1); this.buf.b += ")"; break; case 4: var t1 = t.t; this.buf.b += "?"; this.type(t1); break; case 5: var name = t.n; var t1 = t.t; this.buf.b += name == null ? "null" : "" + name; this.buf.b += ":"; this.type(t1); break; } } ,addType: function(t) { if(t != null) { this.buf.b += " : "; this.type(t); } } ,expr: function(e) { if(e == null) { this.buf.b += "??NULL??"; return; } var _g = e.e; switch(_g._hx_index) { case 0: var c = _g.c; switch(c._hx_index) { case 0: var i = c.v; this.buf.b += i == null ? "null" : "" + i; break; case 1: var f = c.f; this.buf.b += f == null ? "null" : "" + f; break; case 2: var s = c.s; this.buf.b += "\""; var s1 = s.split("\"").join("\\\"").split("\n").join("\\n").split("\r").join("\\r").split("\t").join("\\t"); this.buf.b += Std.string(s1); this.buf.b += "\""; break; } break; case 1: var v = _g.v; this.buf.b += v == null ? "null" : "" + v; break; case 2: var n = _g.n; var t = _g.t; var e = _g.e; this.buf.b += Std.string("var " + n); this.addType(t); if(e != null) { this.buf.b += " = "; this.expr(e); } break; case 3: var e = _g.e; this.buf.b += "("; this.expr(e); this.buf.b += ")"; break; case 4: var el = _g.e; if(el.length == 0) { this.buf.b += "{}"; } else { this.tabs += "\t"; this.buf.b += "{\n"; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; this.buf.b += Std.string(this.tabs); this.expr(e); this.buf.b += ";\n"; } this.tabs = HxOverrides.substr(this.tabs,1,null); this.buf.b += "}"; } break; case 5: var e = _g.e; var f = _g.f; this.expr(e); this.buf.b += Std.string("." + f); break; case 6: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; this.expr(e1); this.buf.b += Std.string(" " + op + " "); this.expr(e2); break; case 7: var op = _g.op; var pre = _g.prefix; var e = _g.e; if(pre) { this.buf.b += op == null ? "null" : "" + op; this.expr(e); } else { this.expr(e); this.buf.b += op == null ? "null" : "" + op; } break; case 8: var e = _g.e; var args = _g.params; if(e == null) { this.expr(e); } else { var _g1 = e.e; switch(_g1._hx_index) { case 0: var _g2 = _g1.c; this.expr(e); break; case 1: var _g2 = _g1.v; this.expr(e); break; case 5: var _g2 = _g1.e; var _g2 = _g1.f; this.expr(e); break; default: this.buf.b += "("; this.expr(e); this.buf.b += ")"; } } this.buf.b += "("; var first = true; var _g1 = 0; while(_g1 < args.length) { var a = args[_g1]; ++_g1; if(first) { first = false; } else { this.buf.b += ", "; } this.expr(a); } this.buf.b += ")"; break; case 9: var cond = _g.cond; var e1 = _g.e1; var e2 = _g.e2; this.buf.b += "if( "; this.expr(cond); this.buf.b += " ) "; this.expr(e1); if(e2 != null) { this.buf.b += " else "; this.expr(e2); } break; case 10: var cond = _g.cond; var e = _g.e; this.buf.b += "while( "; this.expr(cond); this.buf.b += " ) "; this.expr(e); break; case 11: var v = _g.v; var it = _g.it; var e = _g.e; this.buf.b += Std.string("for( " + v + " in "); this.expr(it); this.buf.b += " ) "; this.expr(e); break; case 12: this.buf.b += "break"; break; case 13: this.buf.b += "continue"; break; case 14: var params = _g.args; var e = _g.e; var name = _g.name; var ret = _g.ret; this.buf.b += "function"; if(name != null) { this.buf.b += Std.string(" " + name); } this.buf.b += "("; var first = true; var _g1 = 0; while(_g1 < params.length) { var a = params[_g1]; ++_g1; if(first) { first = false; } else { this.buf.b += ", "; } if(a.opt) { this.buf.b += "?"; } this.buf.b += Std.string(a.name); this.addType(a.t); } this.buf.b += ")"; this.addType(ret); this.buf.b += " "; this.expr(e); break; case 15: var e = _g.e; this.buf.b += "return"; if(e != null) { this.buf.b += " "; this.expr(e); } break; case 16: var e = _g.e; var index = _g.index; this.expr(e); this.buf.b += "["; this.expr(index); this.buf.b += "]"; break; case 17: var el = _g.e; this.buf.b += "["; var first = true; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; if(first) { first = false; } else { this.buf.b += ", "; } this.expr(e); } this.buf.b += "]"; break; case 18: var cl = _g.cl; var args = _g.params; this.buf.b += Std.string("new " + cl + "("); var first = true; var _g1 = 0; while(_g1 < args.length) { var e = args[_g1]; ++_g1; if(first) { first = false; } else { this.buf.b += ", "; } this.expr(e); } this.buf.b += ")"; break; case 19: var e = _g.e; this.buf.b += "throw "; this.expr(e); break; case 20: var e = _g.e; var v = _g.v; var t = _g.t; var ecatch = _g.ecatch; this.buf.b += "try "; this.expr(e); this.buf.b += Std.string(" catch( " + v); this.addType(t); this.buf.b += ") "; this.expr(ecatch); break; case 21: var fl = _g.fl; if(fl.length == 0) { this.buf.b += "{}"; } else { this.tabs += "\t"; this.buf.b += "{\n"; var _g1 = 0; while(_g1 < fl.length) { var f = fl[_g1]; ++_g1; this.buf.b += Std.string(this.tabs); this.buf.b += Std.string(f.name + " : "); this.expr(f.e); this.buf.b += ",\n"; } this.tabs = HxOverrides.substr(this.tabs,1,null); this.buf.b += "}"; } break; case 22: var c = _g.cond; var e1 = _g.e1; var e2 = _g.e2; this.expr(c); this.buf.b += " ? "; this.expr(e1); this.buf.b += " : "; this.expr(e2); break; case 23: var e = _g.e; var cases = _g.cases; var def = _g.defaultExpr; this.buf.b += "switch( "; this.expr(e); this.buf.b += ") {"; var _g1 = 0; while(_g1 < cases.length) { var c = cases[_g1]; ++_g1; this.buf.b += "case "; var first = true; var _g2 = 0; var _g3 = c.values; while(_g2 < _g3.length) { var v = _g3[_g2]; ++_g2; if(first) { first = false; } else { this.buf.b += ", "; } this.expr(v); } this.buf.b += ": "; this.expr(c.expr); this.buf.b += ";\n"; } if(def != null) { this.buf.b += "default: "; this.expr(def); this.buf.b += ";\n"; } this.buf.b += "}"; break; case 24: var cond = _g.cond; var e = _g.e; this.buf.b += "do "; this.expr(e); this.buf.b += " while ( "; this.expr(cond); this.buf.b += " )"; break; case 25: var name = _g.name; var args = _g.args; var e = _g.e; this.buf.b += "@"; this.buf.b += name == null ? "null" : "" + name; if(args != null && args.length > 0) { this.buf.b += "("; var first = true; var _g1 = 0; while(_g1 < args.length) { var a = args[_g1]; ++_g1; if(first) { first = false; } else { this.buf.b += ", "; } this.expr(e); } this.buf.b += ")"; } this.buf.b += " "; this.expr(e); break; case 26: var e = _g.e; var t = _g.t; this.buf.b += "("; this.expr(e); this.buf.b += " : "; this.addType(t); this.buf.b += ")"; break; } } ,__class__: hscript_Printer }; var hscript_Tools = function() { }; $hxClasses["hscript.Tools"] = hscript_Tools; hscript_Tools.__name__ = "hscript.Tools"; hscript_Tools.iter = function(e,f) { var _g = e.e; switch(_g._hx_index) { case 0: var _g1 = _g.c; break; case 1: var _g1 = _g.v; break; case 2: var _g1 = _g.n; var _g1 = _g.t; var e = _g.e; if(e != null) { f(e); } break; case 3: var e = _g.e; f(e); break; case 4: var el = _g.e; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 5: var _g1 = _g.f; var e = _g.e; f(e); break; case 6: var _g1 = _g.op; var e1 = _g.e1; var e2 = _g.e2; f(e1); f(e2); break; case 7: var _g1 = _g.op; var _g1 = _g.prefix; var e = _g.e; f(e); break; case 8: var e = _g.e; var args = _g.params; f(e); var _g1 = 0; while(_g1 < args.length) { var a = args[_g1]; ++_g1; f(a); } break; case 9: var c = _g.cond; var e1 = _g.e1; var e2 = _g.e2; f(c); f(e1); if(e2 != null) { f(e2); } break; case 10: var c = _g.cond; var e = _g.e; f(c); f(e); break; case 11: var _g1 = _g.v; var it = _g.it; var e = _g.e; f(it); f(e); break; case 12:case 13: break; case 14: var _g1 = _g.args; var _g1 = _g.name; var _g1 = _g.ret; var e = _g.e; f(e); break; case 15: var e = _g.e; if(e != null) { f(e); } break; case 16: var e = _g.e; var i = _g.index; f(e); f(i); break; case 17: var el = _g.e; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 18: var _g1 = _g.cl; var el = _g.params; var _g1 = 0; while(_g1 < el.length) { var e = el[_g1]; ++_g1; f(e); } break; case 19: var e = _g.e; f(e); break; case 20: var _g1 = _g.v; var _g1 = _g.t; var e = _g.e; var c = _g.ecatch; f(e); f(c); break; case 21: var fl = _g.fl; var _g1 = 0; while(_g1 < fl.length) { var fi = fl[_g1]; ++_g1; f(fi.e); } break; case 22: var c = _g.cond; var e1 = _g.e1; var e2 = _g.e2; f(c); f(e1); f(e2); break; case 23: var e = _g.e; var cases = _g.cases; var def = _g.defaultExpr; f(e); var _g1 = 0; while(_g1 < cases.length) { var c = cases[_g1]; ++_g1; var _g2 = 0; var _g3 = c.values; while(_g2 < _g3.length) { var v = _g3[_g2]; ++_g2; f(v); } f(c.expr); } if(def != null) { f(def); } break; case 24: var c = _g.cond; var e = _g.e; f(c); f(e); break; case 25: var name = _g.name; var args = _g.args; var e = _g.e; if(args != null) { var _g1 = 0; while(_g1 < args.length) { var a = args[_g1]; ++_g1; f(a); } } f(e); break; case 26: var _g1 = _g.t; var e = _g.e; f(e); break; } }; hscript_Tools.map = function(e,f) { var edef; var _g = e.e; switch(_g._hx_index) { case 0: var _g1 = _g.c; edef = e.e; break; case 1: var _g1 = _g.v; edef = e.e; break; case 2: var n = _g.n; var t = _g.t; var e1 = _g.e; edef = hscript_ExprDef.EVar(n,t,e1 != null ? f(e1) : null); break; case 3: var e1 = _g.e; edef = hscript_ExprDef.EParent(f(e1)); break; case 4: var el = _g.e; var _g1 = []; var _g2 = 0; while(_g2 < el.length) { var e1 = el[_g2]; ++_g2; _g1.push(f(e1)); } edef = hscript_ExprDef.EBlock(_g1); break; case 5: var e1 = _g.e; var fi = _g.f; edef = hscript_ExprDef.EField(f(e1),fi); break; case 6: var op = _g.op; var e1 = _g.e1; var e2 = _g.e2; edef = hscript_ExprDef.EBinop(op,f(e1),f(e2)); break; case 7: var op = _g.op; var pre = _g.prefix; var e1 = _g.e; edef = hscript_ExprDef.EUnop(op,pre,f(e1)); break; case 8: var e1 = _g.e; var args = _g.params; var edef1 = f(e1); var _g1 = []; var _g2 = 0; while(_g2 < args.length) { var a = args[_g2]; ++_g2; _g1.push(f(a)); } edef = hscript_ExprDef.ECall(edef1,_g1); break; case 9: var c = _g.cond; var e1 = _g.e1; var e2 = _g.e2; edef = hscript_ExprDef.EIf(f(c),f(e1),e2 != null ? f(e2) : null); break; case 10: var c = _g.cond; var e1 = _g.e; edef = hscript_ExprDef.EWhile(f(c),f(e1)); break; case 11: var v = _g.v; var it = _g.it; var e1 = _g.e; edef = hscript_ExprDef.EFor(v,f(it),f(e1)); break; case 12:case 13: edef = e.e; break; case 14: var args = _g.args; var e1 = _g.e; var name = _g.name; var t = _g.ret; edef = hscript_ExprDef.EFunction(args,f(e1),name,t); break; case 15: var e1 = _g.e; edef = hscript_ExprDef.EReturn(e1 != null ? f(e1) : null); break; case 16: var e1 = _g.e; var i = _g.index; edef = hscript_ExprDef.EArray(f(e1),f(i)); break; case 17: var el = _g.e; var _g1 = []; var _g2 = 0; while(_g2 < el.length) { var e1 = el[_g2]; ++_g2; _g1.push(f(e1)); } edef = hscript_ExprDef.EArrayDecl(_g1); break; case 18: var cl = _g.cl; var el = _g.params; var _g1 = []; var _g2 = 0; while(_g2 < el.length) { var e1 = el[_g2]; ++_g2; _g1.push(f(e1)); } edef = hscript_ExprDef.ENew(cl,_g1); break; case 19: var e1 = _g.e; edef = hscript_ExprDef.EThrow(f(e1)); break; case 20: var e1 = _g.e; var v = _g.v; var t = _g.t; var c = _g.ecatch; edef = hscript_ExprDef.ETry(f(e1),v,t,f(c)); break; case 21: var fl = _g.fl; var _g1 = []; var _g2 = 0; while(_g2 < fl.length) { var fi = fl[_g2]; ++_g2; _g1.push({ name : fi.name, e : f(fi.e)}); } edef = hscript_ExprDef.EObject(_g1); break; case 22: var c = _g.cond; var e1 = _g.e1; var e2 = _g.e2; edef = hscript_ExprDef.ETernary(f(c),f(e1),f(e2)); break; case 23: var e1 = _g.e; var cases = _g.cases; var def = _g.defaultExpr; var edef1 = f(e1); var _g1 = []; var _g2 = 0; while(_g2 < cases.length) { var c = cases[_g2]; ++_g2; var _g3 = []; var _g4 = 0; var _g5 = c.values; while(_g4 < _g5.length) { var v = _g5[_g4]; ++_g4; _g3.push(f(v)); } _g1.push({ values : _g3, expr : f(c.expr)}); } edef = hscript_ExprDef.ESwitch(edef1,_g1,def == null ? null : f(def)); break; case 24: var c = _g.cond; var e1 = _g.e; edef = hscript_ExprDef.EDoWhile(f(c),f(e1)); break; case 25: var name = _g.name; var args = _g.args; var e1 = _g.e; var edef1; if(args == null) { edef1 = null; } else { var _g1 = []; var _g2 = 0; while(_g2 < args.length) { var a = args[_g2]; ++_g2; _g1.push(f(a)); } edef1 = _g1; } edef = hscript_ExprDef.EMeta(name,edef1,f(e1)); break; case 26: var e1 = _g.e; var t = _g.t; edef = hscript_ExprDef.ECheckType(f(e1),t); break; } return { e : edef, pmin : e.pmin, pmax : e.pmax, origin : e.origin, line : e.line}; }; hscript_Tools.expr = function(e) { return e.e; }; hscript_Tools.mk = function(e,p) { return { e : e, pmin : p.pmin, pmax : p.pmax, origin : p.origin, line : p.line}; }; var hxjsonast_Error = function(message,pos) { this.message = message; this.pos = pos; }; $hxClasses["hxjsonast.Error"] = hxjsonast_Error; hxjsonast_Error.__name__ = "hxjsonast.Error"; hxjsonast_Error.prototype = { message: null ,pos: null ,__class__: hxjsonast_Error }; var hxjsonast_Json = function(value,pos) { this.value = value; this.pos = pos; }; $hxClasses["hxjsonast.Json"] = hxjsonast_Json; hxjsonast_Json.__name__ = "hxjsonast.Json"; hxjsonast_Json.prototype = { value: null ,pos: null ,__class__: hxjsonast_Json }; var hxjsonast_JsonValue = $hxEnums["hxjsonast.JsonValue"] = { __ename__:"hxjsonast.JsonValue",__constructs__:null ,JString: ($_=function(s) { return {_hx_index:0,s:s,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_._hx_name="JString",$_.__params__ = ["s"],$_) ,JNumber: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_._hx_name="JNumber",$_.__params__ = ["s"],$_) ,JObject: ($_=function(fields) { return {_hx_index:2,fields:fields,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_._hx_name="JObject",$_.__params__ = ["fields"],$_) ,JArray: ($_=function(values) { return {_hx_index:3,values:values,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_._hx_name="JArray",$_.__params__ = ["values"],$_) ,JBool: ($_=function(b) { return {_hx_index:4,b:b,__enum__:"hxjsonast.JsonValue",toString:$estr}; },$_._hx_name="JBool",$_.__params__ = ["b"],$_) ,JNull: {_hx_name:"JNull",_hx_index:5,__enum__:"hxjsonast.JsonValue",toString:$estr} }; hxjsonast_JsonValue.__constructs__ = [hxjsonast_JsonValue.JString,hxjsonast_JsonValue.JNumber,hxjsonast_JsonValue.JObject,hxjsonast_JsonValue.JArray,hxjsonast_JsonValue.JBool,hxjsonast_JsonValue.JNull]; hxjsonast_JsonValue.__empty_constructs__ = [hxjsonast_JsonValue.JNull]; var hxjsonast_JObjectField = function(name,namePos,value) { this.name = name; this.namePos = namePos; this.value = value; }; $hxClasses["hxjsonast.JObjectField"] = hxjsonast_JObjectField; hxjsonast_JObjectField.__name__ = "hxjsonast.JObjectField"; hxjsonast_JObjectField.prototype = { name: null ,namePos: null ,value: null ,__class__: hxjsonast_JObjectField }; var hxjsonast_Parser = function(source,filename) { this.source = source; this.filename = filename; this.pos = 0; }; $hxClasses["hxjsonast.Parser"] = hxjsonast_Parser; hxjsonast_Parser.__name__ = "hxjsonast.Parser"; hxjsonast_Parser.parse = function(source,filename) { return new hxjsonast_Parser(source,filename).doParse(); }; hxjsonast_Parser.prototype = { source: null ,filename: null ,pos: null ,doParse: function() { var result = this.parseRec(); var c; while(true) { c = this.source.charCodeAt(this.pos++); var c1 = c; if(!(c1 == c1)) { break; } switch(c) { case 9:case 10:case 13:case 32: break; default: this.invalidChar(); } } return result; } ,parseRec: function() { while(true) { var c = this.source.charCodeAt(this.pos++); switch(c) { case 9:case 10:case 13:case 32: break; case 34: var save = this.pos; var s = this.parseString(); return new hxjsonast_Json(hxjsonast_JsonValue.JString(s),new hxjsonast_Position(this.filename,save - 1,this.pos)); case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: var start = this.pos - 1; var minus = c == 45; var digit = !minus; var zero = c == 48; var point = false; var e = false; var pm = false; var end = false; do switch(this.source.charCodeAt(this.pos++)) { case 43:case 45: if(!e || pm) { this.invalidNumber(start); } digit = false; pm = true; break; case 46: if(minus || point || e) { this.invalidNumber(start); } digit = false; point = true; break; case 48: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; zero = true; } digit = true; break; case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; } digit = true; zero = false; break; case 69:case 101: if(minus || zero || e) { this.invalidNumber(start); } digit = false; e = true; break; default: if(!digit) { this.invalidNumber(start); } this.pos--; end = true; } while(!end); var s1 = HxOverrides.substr(this.source,start,this.pos - start); return new hxjsonast_Json(hxjsonast_JsonValue.JNumber(s1),new hxjsonast_Position(this.filename,start,this.pos)); case 91: var values = []; var comma = null; var startPos = this.pos - 1; while(true) switch(this.source.charCodeAt(this.pos++)) { case 9:case 10:case 13:case 32: break; case 44: if(comma) { comma = false; } else { this.invalidChar(); } break; case 93: if(comma == false) { this.invalidChar(); } return new hxjsonast_Json(hxjsonast_JsonValue.JArray(values),new hxjsonast_Position(this.filename,startPos,this.pos)); default: if(comma) { this.invalidChar(); } this.pos--; values.push(this.parseRec()); comma = true; } break; case 102: var save1 = this.pos; if(this.source.charCodeAt(this.pos++) != 97 || this.source.charCodeAt(this.pos++) != 108 || this.source.charCodeAt(this.pos++) != 115 || this.source.charCodeAt(this.pos++) != 101) { this.pos = save1; this.invalidChar(); } return new hxjsonast_Json(hxjsonast_JsonValue.JBool(false),new hxjsonast_Position(this.filename,save1 - 1,this.pos)); case 110: var save2 = this.pos; if(this.source.charCodeAt(this.pos++) != 117 || this.source.charCodeAt(this.pos++) != 108 || this.source.charCodeAt(this.pos++) != 108) { this.pos = save2; this.invalidChar(); } return new hxjsonast_Json(hxjsonast_JsonValue.JNull,new hxjsonast_Position(this.filename,save2 - 1,this.pos)); case 116: var save3 = this.pos; if(this.source.charCodeAt(this.pos++) != 114 || this.source.charCodeAt(this.pos++) != 117 || this.source.charCodeAt(this.pos++) != 101) { this.pos = save3; this.invalidChar(); } return new hxjsonast_Json(hxjsonast_JsonValue.JBool(true),new hxjsonast_Position(this.filename,save3 - 1,this.pos)); case 123: var fields = []; var names_h = Object.create(null); var field = null; var fieldPos = null; var comma1 = null; var startPos1 = this.pos - 1; while(true) switch(this.source.charCodeAt(this.pos++)) { case 9:case 10:case 13:case 32: break; case 34: if(field != null || comma1) { this.invalidChar(); } var fieldStartPos = this.pos - 1; field = this.parseString(); fieldPos = new hxjsonast_Position(this.filename,fieldStartPos,this.pos); if(Object.prototype.hasOwnProperty.call(names_h,field)) { throw haxe_Exception.thrown(new hxjsonast_Error("Duplicate field name \"" + field + "\"",fieldPos)); } else { names_h[field] = true; } break; case 44: if(comma1) { comma1 = false; } else { this.invalidChar(); } break; case 58: if(field == null) { this.invalidChar(); } fields.push(new hxjsonast_JObjectField(field,fieldPos,this.parseRec())); field = null; fieldPos = null; comma1 = true; break; case 125: if(field != null || comma1 == false) { this.invalidChar(); } return new hxjsonast_Json(hxjsonast_JsonValue.JObject(fields),new hxjsonast_Position(this.filename,startPos1,this.pos)); default: this.invalidChar(); } break; default: this.invalidChar(); } } } ,parseString: function() { var start = this.pos; var buf = null; while(true) { var c = this.source.charCodeAt(this.pos++); if(c == 34) { break; } if(c == 92) { if(buf == null) { buf = new StringBuf(); } var s = this.source; var len = this.pos - start - 1; buf.b += len == null ? HxOverrides.substr(s,start,null) : HxOverrides.substr(s,start,len); c = this.source.charCodeAt(this.pos++); switch(c) { case 34:case 47:case 92: buf.b += String.fromCodePoint(c); break; case 98: buf.b += String.fromCodePoint(8); break; case 102: buf.b += String.fromCodePoint(12); break; case 110: buf.b += String.fromCodePoint(10); break; case 114: buf.b += String.fromCodePoint(13); break; case 116: buf.b += String.fromCodePoint(9); break; case 117: var uc = Std.parseInt("0x" + HxOverrides.substr(this.source,this.pos,4)); this.pos += 4; buf.b += String.fromCodePoint(uc); break; default: throw haxe_Exception.thrown(new hxjsonast_Error("Invalid escape sequence \\" + String.fromCodePoint(c),new hxjsonast_Position(this.filename,this.pos - 2,this.pos))); } start = this.pos; } else if(c != c) { this.pos--; throw haxe_Exception.thrown(new hxjsonast_Error("Unclosed string",new hxjsonast_Position(this.filename,start - 1,this.pos))); } } if(buf == null) { return HxOverrides.substr(this.source,start,this.pos - start - 1); } else { var s = this.source; var len = this.pos - start - 1; buf.b += len == null ? HxOverrides.substr(s,start,null) : HxOverrides.substr(s,start,len); return buf.b; } } ,parseNumber: function(c) { var start = this.pos - 1; var minus = c == 45; var digit = !minus; var zero = c == 48; var point = false; var e = false; var pm = false; var end = false; do switch(this.source.charCodeAt(this.pos++)) { case 43:case 45: if(!e || pm) { this.invalidNumber(start); } digit = false; pm = true; break; case 46: if(minus || point || e) { this.invalidNumber(start); } digit = false; point = true; break; case 48: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; zero = true; } digit = true; break; case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57: if(zero && !point) { this.invalidNumber(start); } if(minus) { minus = false; } digit = true; zero = false; break; case 69:case 101: if(minus || zero || e) { this.invalidNumber(start); } digit = false; e = true; break; default: if(!digit) { this.invalidNumber(start); } this.pos--; end = true; } while(!end); var s = HxOverrides.substr(this.source,start,this.pos - start); return new hxjsonast_Json(hxjsonast_JsonValue.JNumber(s),new hxjsonast_Position(this.filename,start,this.pos)); } ,nextChar: function() { return this.source.charCodeAt(this.pos++); } ,mk: function(pos,value) { return new hxjsonast_Json(value,pos); } ,mkPos: function(min,max) { return new hxjsonast_Position(this.filename,min,max); } ,invalidChar: function() { this.pos--; throw haxe_Exception.thrown(new hxjsonast_Error("Invalid character: " + this.source.charAt(this.pos),new hxjsonast_Position(this.filename,this.pos,this.pos + 1))); } ,invalidNumber: function(start) { throw haxe_Exception.thrown(new hxjsonast_Error("Invalid number: " + this.source.substring(start,this.pos),new hxjsonast_Position(this.filename,start,this.pos))); } ,__class__: hxjsonast_Parser }; var hxjsonast_Position = function(file,min,max) { this.file = file; this.min = min; this.max = max; }; $hxClasses["hxjsonast.Position"] = hxjsonast_Position; hxjsonast_Position.__name__ = "hxjsonast.Position"; hxjsonast_Position.prototype = { file: null ,min: null ,max: null ,__class__: hxjsonast_Position }; var hxjsonast_Tools = function() { }; $hxClasses["hxjsonast.Tools"] = hxjsonast_Tools; hxjsonast_Tools.__name__ = "hxjsonast.Tools"; hxjsonast_Tools.getValue = function(json) { var _g = json.value; switch(_g._hx_index) { case 0: var string = _g.s; return string; case 1: var s = _g.s; return parseFloat(s); case 2: var fields = _g.fields; var result = { }; var _g1 = 0; while(_g1 < fields.length) { var field = fields[_g1]; ++_g1; result[field.name] = hxjsonast_Tools.getValue(field.value); } return result; case 3: var values = _g.values; var _g1 = []; var _g2 = 0; while(_g2 < values.length) { var json = values[_g2]; ++_g2; _g1.push(hxjsonast_Tools.getValue(json)); } return _g1; case 4: var bool = _g.b; return bool; case 5: return null; } }; hxjsonast_Tools.getField = function(json,name) { var _g = json.value; if(_g._hx_index == 2) { var fields = _g.fields; var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; if(field.name == name) { return field; } } return null; } else { throw haxe_Exception.thrown(new hxjsonast_Error("Not an object",json.pos)); } }; var js_Browser = function() { }; $hxClasses["js.Browser"] = js_Browser; js_Browser.__name__ = "js.Browser"; js_Browser.__properties__ = {get_supported:"get_supported",get_self:"get_self"}; js_Browser.get_self = function() { return $global; }; js_Browser.get_supported = function() { if(typeof(window) != "undefined" && typeof(window.location) != "undefined") { return typeof(window.location.protocol) == "string"; } else { return false; } }; js_Browser.getLocalStorage = function() { try { var s = window.localStorage; s.getItem(""); if(s.length == 0) { var key = "_hx_" + Math.random(); s.setItem(key,key); s.removeItem(key); } return s; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return null; } }; js_Browser.getSessionStorage = function() { try { var s = window.sessionStorage; s.getItem(""); if(s.length == 0) { var key = "_hx_" + Math.random(); s.setItem(key,key); s.removeItem(key); } return s; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return null; } }; js_Browser.createXMLHttpRequest = function() { if(typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } if(typeof ActiveXObject != "undefined") { return new ActiveXObject("Microsoft.XMLHTTP"); } throw haxe_Exception.thrown("Unable to create XMLHttpRequest object."); }; js_Browser.alert = function(v) { window.alert(Std.string(v)); }; var js_Lib = function() { }; $hxClasses["js.Lib"] = js_Lib; js_Lib.__name__ = "js.Lib"; js_Lib.__properties__ = {get_undefined:"get_undefined"}; js_Lib.debug = function() { debugger; }; js_Lib.dynamicImport = function(module) { return import(module); }; js_Lib.alert = function(v) { alert(js_Boot.__string_rec(v,"")); }; js_Lib.eval = function(code) { return eval(code); }; js_Lib.get_undefined = function() { return undefined; }; js_Lib.rethrow = function() { }; js_Lib.getOriginalException = function() { return null; }; js_Lib.getNextHaxeUID = function() { return $global.$haxeUID++; }; var js_html__$CanvasElement_CanvasUtil = function() { }; $hxClasses["js.html._CanvasElement.CanvasUtil"] = js_html__$CanvasElement_CanvasUtil; js_html__$CanvasElement_CanvasUtil.__name__ = "js.html._CanvasElement.CanvasUtil"; js_html__$CanvasElement_CanvasUtil.getContextWebGL = function(canvas,attribs) { var name = "webgl"; var ctx = canvas.getContext(name,attribs); if(ctx != null) { return ctx; } var name = "experimental-webgl"; var ctx = canvas.getContext(name,attribs); if(ctx != null) { return ctx; } return null; }; var js_lib__$ArrayBuffer_ArrayBufferCompat = function() { }; $hxClasses["js.lib._ArrayBuffer.ArrayBufferCompat"] = js_lib__$ArrayBuffer_ArrayBufferCompat; js_lib__$ArrayBuffer_ArrayBufferCompat.__name__ = "js.lib._ArrayBuffer.ArrayBufferCompat"; js_lib__$ArrayBuffer_ArrayBufferCompat.sliceImpl = function(begin,end) { var u = new Uint8Array(this,begin,end == null ? null : end - begin); var resultArray = new Uint8Array(u.byteLength); resultArray.set(u); return resultArray.buffer; }; var js_lib_KeyValue = {}; js_lib_KeyValue.__properties__ = {get_value:"get_value",get_key:"get_key"}; js_lib_KeyValue.get_key = function(this1) { return this1[0]; }; js_lib_KeyValue.get_value = function(this1) { return this1[1]; }; var js_lib_ObjectEntry = {}; js_lib_ObjectEntry.__properties__ = {get_value:"get_value",get_key:"get_key"}; js_lib_ObjectEntry.get_key = function(this1) { return this1[0]; }; js_lib_ObjectEntry.get_value = function(this1) { return this1[1]; }; var json2object_Error = $hxEnums["json2object.Error"] = { __ename__:"json2object.Error",__constructs__:null ,IncorrectType: ($_=function(variable,expected,pos) { return {_hx_index:0,variable:variable,expected:expected,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="IncorrectType",$_.__params__ = ["variable","expected","pos"],$_) ,IncorrectEnumValue: ($_=function(value,expected,pos) { return {_hx_index:1,value:value,expected:expected,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="IncorrectEnumValue",$_.__params__ = ["value","expected","pos"],$_) ,InvalidEnumConstructor: ($_=function(value,expected,pos) { return {_hx_index:2,value:value,expected:expected,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="InvalidEnumConstructor",$_.__params__ = ["value","expected","pos"],$_) ,UninitializedVariable: ($_=function(variable,pos) { return {_hx_index:3,variable:variable,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="UninitializedVariable",$_.__params__ = ["variable","pos"],$_) ,UnknownVariable: ($_=function(variable,pos) { return {_hx_index:4,variable:variable,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="UnknownVariable",$_.__params__ = ["variable","pos"],$_) ,ParserError: ($_=function(message,pos) { return {_hx_index:5,message:message,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="ParserError",$_.__params__ = ["message","pos"],$_) ,CustomFunctionException: ($_=function(e,pos) { return {_hx_index:6,e:e,pos:pos,__enum__:"json2object.Error",toString:$estr}; },$_._hx_name="CustomFunctionException",$_.__params__ = ["e","pos"],$_) }; json2object_Error.__constructs__ = [json2object_Error.IncorrectType,json2object_Error.IncorrectEnumValue,json2object_Error.InvalidEnumConstructor,json2object_Error.UninitializedVariable,json2object_Error.UnknownVariable,json2object_Error.ParserError,json2object_Error.CustomFunctionException]; json2object_Error.__empty_constructs__ = []; var json2object_InternalError = $hxEnums["json2object.InternalError"] = { __ename__:"json2object.InternalError",__constructs__:null ,AbstractNoJsonRepresentation: ($_=function(name) { return {_hx_index:0,name:name,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="AbstractNoJsonRepresentation",$_.__params__ = ["name"],$_) ,CannotGenerateSchema: ($_=function(name) { return {_hx_index:1,name:name,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="CannotGenerateSchema",$_.__params__ = ["name"],$_) ,HandleExpr: {_hx_name:"HandleExpr",_hx_index:2,__enum__:"json2object.InternalError",toString:$estr} ,ParsingThrow: {_hx_name:"ParsingThrow",_hx_index:3,__enum__:"json2object.InternalError",toString:$estr} ,UnsupportedAbstractEnumType: ($_=function(name) { return {_hx_index:4,name:name,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="UnsupportedAbstractEnumType",$_.__params__ = ["name"],$_) ,UnsupportedEnumAbstractValue: ($_=function(name) { return {_hx_index:5,name:name,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="UnsupportedEnumAbstractValue",$_.__params__ = ["name"],$_) ,UnsupportedMapKeyType: ($_=function(name) { return {_hx_index:6,name:name,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="UnsupportedMapKeyType",$_.__params__ = ["name"],$_) ,UnsupportedSchemaObjectType: ($_=function(name) { return {_hx_index:7,name:name,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="UnsupportedSchemaObjectType",$_.__params__ = ["name"],$_) ,UnsupportedSchemaType: ($_=function(type) { return {_hx_index:8,type:type,__enum__:"json2object.InternalError",toString:$estr}; },$_._hx_name="UnsupportedSchemaType",$_.__params__ = ["type"],$_) }; json2object_InternalError.__constructs__ = [json2object_InternalError.AbstractNoJsonRepresentation,json2object_InternalError.CannotGenerateSchema,json2object_InternalError.HandleExpr,json2object_InternalError.ParsingThrow,json2object_InternalError.UnsupportedAbstractEnumType,json2object_InternalError.UnsupportedEnumAbstractValue,json2object_InternalError.UnsupportedMapKeyType,json2object_InternalError.UnsupportedSchemaObjectType,json2object_InternalError.UnsupportedSchemaType]; json2object_InternalError.__empty_constructs__ = [json2object_InternalError.HandleExpr,json2object_InternalError.ParsingThrow]; var json2object_CustomFunctionError = function(message) { this.message = message; }; $hxClasses["json2object.CustomFunctionError"] = json2object_CustomFunctionError; json2object_CustomFunctionError.__name__ = "json2object.CustomFunctionError"; json2object_CustomFunctionError.prototype = { message: null ,__class__: json2object_CustomFunctionError }; var json2object_JsonParser = function() { }; $hxClasses["json2object.JsonParser"] = json2object_JsonParser; json2object_JsonParser.__name__ = "json2object.JsonParser"; var json2object_JsonWriter = function() { }; $hxClasses["json2object.JsonWriter"] = json2object_JsonWriter; json2object_JsonWriter.__name__ = "json2object.JsonWriter"; var json2object_PositionUtils = function(content) { this.linesInfo = []; var s = 0; var e = 0; var i = 0; var lineCount = 0; while(i < content.length) switch(content.charAt(i)) { case "\n": e = i; this.linesInfo.push({ number : lineCount, start : s, end : e}); ++lineCount; ++i; s = i; break; case "\r": e = i; if(content.charAt(i + 1) == "\n") { ++e; } this.linesInfo.push({ number : lineCount, start : s, end : e}); ++lineCount; i = e + 1; s = i; break; default: ++i; } this.linesInfo.push({ number : lineCount, start : s, end : i}); }; $hxClasses["json2object.PositionUtils"] = json2object_PositionUtils; json2object_PositionUtils.__name__ = "json2object.PositionUtils"; json2object_PositionUtils.prototype = { linesInfo: null ,convertPosition: function(position) { var file = position.file; var min = position.min; var max = position.max; var pos = { file : file, min : min + 1, max : max + 1, lines : []}; var lastLine = this.linesInfo.length - 1; var bounds_min = 0; var bounds_max = lastLine; if(min > this.linesInfo[0].end) { while(bounds_max > bounds_min) { var i = (bounds_min + bounds_max) / 2 | 0; var line = this.linesInfo[i]; if(line.start == min) { bounds_min = i; bounds_max = i; } if(line.end < min) { bounds_min = i + 1; } if(line.start > min || line.end >= min && line.start < min) { bounds_max = i; } } } var _g = bounds_min; var _g1 = this.linesInfo.length; while(_g < _g1) { var i = _g++; var line = this.linesInfo[i]; if(line.start <= min && line.end >= max) { pos.lines.push({ number : line.number + 1, start : min - line.start + 1, end : max - line.start + 1}); break; } if(line.start <= min && min <= line.end) { pos.lines.push({ number : line.number + 1, start : min - line.start + 1, end : line.end + 1}); } if(line.start <= max && max <= line.end) { pos.lines.push({ number : line.number + 1, start : line.start + 1, end : max - line.start + 1}); } if(line.start >= max || line.end >= max) { break; } } return pos; } ,revert: function(position) { return new hxjsonast_Position(position.file,position.min - 1,position.max - 1); } ,__class__: json2object_PositionUtils }; var json2object_writer_StringUtils = function() { }; $hxClasses["json2object.writer.StringUtils"] = json2object_writer_StringUtils; json2object_writer_StringUtils.__name__ = "json2object.writer.StringUtils"; json2object_writer_StringUtils.quote = function(s) { var buf_b = ""; buf_b += String.fromCodePoint(34); var i = 0; while(true) { var c = s.charCodeAt(i++); if(c != c) { break; } switch(c) { case 8: buf_b += "\\b"; break; case 9: buf_b += "\\t"; break; case 10: buf_b += "\\n"; break; case 12: buf_b += "\\f"; break; case 13: buf_b += "\\r"; break; case 34: buf_b += "\\\""; break; case 92: buf_b += "\\\\"; break; default: buf_b += String.fromCodePoint(c); } } buf_b += String.fromCodePoint(34); return buf_b; }; var lime__$internal_backend_html5_GameDeviceData = function() { this.connected = true; this.buttons = []; this.axes = []; }; $hxClasses["lime._internal.backend.html5.GameDeviceData"] = lime__$internal_backend_html5_GameDeviceData; lime__$internal_backend_html5_GameDeviceData.__name__ = "lime._internal.backend.html5.GameDeviceData"; lime__$internal_backend_html5_GameDeviceData.prototype = { connected: null ,id: null ,isGamepad: null ,buttons: null ,axes: null ,__class__: lime__$internal_backend_html5_GameDeviceData }; var lime__$internal_backend_html5_HTML5AudioSource = function(parent) { this.parent = parent; this.id = -1; this.gain = 1; this.position = new lime_math_Vector4(); }; $hxClasses["lime._internal.backend.html5.HTML5AudioSource"] = lime__$internal_backend_html5_HTML5AudioSource; lime__$internal_backend_html5_HTML5AudioSource.__name__ = "lime._internal.backend.html5.HTML5AudioSource"; lime__$internal_backend_html5_HTML5AudioSource.prototype = { completed: null ,gain: null ,id: null ,length: null ,loops: null ,parent: null ,playing: null ,position: null ,dispose: function() { } ,init: function() { } ,play: function() { if(this.playing || this.parent.buffer == null || this.parent.buffer.__srcHowl == null) { return; } this.playing = true; var time = this.getCurrentTime(); this.completed = false; var cacheVolume = this.parent.buffer.__srcHowl._volume; this.parent.buffer.__srcHowl._volume = this.parent.get_gain(); this.id = this.parent.buffer.__srcHowl.play(); this.parent.buffer.__srcHowl._volume = cacheVolume; this.parent.buffer.__srcHowl.on("end",$bind(this,this.howl_onEnd),this.id); this.setCurrentTime(time); } ,pause: function() { this.playing = false; if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) { this.parent.buffer.__srcHowl.pause(this.id); } } ,stop: function() { this.playing = false; if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) { this.parent.buffer.__srcHowl.stop(this.id); this.parent.buffer.__srcHowl.off("end",$bind(this,this.howl_onEnd),this.id); } } ,howl_onEnd: function() { this.playing = false; if(this.loops > 0) { this.loops--; this.stop(); this.play(); return; } else if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) { this.parent.buffer.__srcHowl.stop(this.id); this.parent.buffer.__srcHowl.off("end",$bind(this,this.howl_onEnd),this.id); } this.completed = true; this.parent.onComplete.dispatch(); } ,getCurrentTime: function() { if(this.id == -1) { return 0; } if(this.completed) { return this.getLength(); } else if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) { var time = (this.parent.buffer.__srcHowl.seek(this.id) * 1000 | 0) - this.parent.offset; if(time < 0) { return 0; } return time; } return 0; } ,setCurrentTime: function(value) { if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) { var pos = (value + this.parent.offset) / 1000; if(pos < 0) { pos = 0; } this.parent.buffer.__srcHowl.seek(pos,this.id); } return value; } ,getGain: function() { return this.gain; } ,setGain: function(value) { if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null && this.id != -1) { this.parent.buffer.__srcHowl.volume(value,this.id); } return this.gain = value; } ,getLength: function() { if(this.length != 0) { return this.length; } if(this.parent.buffer != null && this.parent.buffer.__srcHowl != null) { return this.parent.buffer.__srcHowl.duration() * 1000 | 0; } return 0; } ,setLength: function(value) { return this.length = value; } ,getLoops: function() { return this.loops; } ,setLoops: function(value) { return this.loops = value; } ,getPitch: function() { return this.parent.buffer.__srcHowl.rate(); } ,setPitch: function(value) { this.parent.buffer.__srcHowl.rate(value); return this.getPitch(); } ,getPosition: function() { return this.position; } ,setPosition: function(value) { this.position.x = value.x; this.position.y = value.y; this.position.z = value.z; this.position.w = value.w; return this.position; } ,__class__: lime__$internal_backend_html5_HTML5AudioSource }; var lime__$internal_backend_html5_HTML5HTTPRequest = function() { this.validStatus0 = new EReg("Tizen","gi").match(window.navigator.userAgent); }; $hxClasses["lime._internal.backend.html5.HTML5HTTPRequest"] = lime__$internal_backend_html5_HTML5HTTPRequest; lime__$internal_backend_html5_HTML5HTTPRequest.__name__ = "lime._internal.backend.html5.HTML5HTTPRequest"; lime__$internal_backend_html5_HTML5HTTPRequest.originElement = null; lime__$internal_backend_html5_HTML5HTTPRequest.originHostname = null; lime__$internal_backend_html5_HTML5HTTPRequest.originPort = null; lime__$internal_backend_html5_HTML5HTTPRequest.originProtocol = null; lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress = null; lime__$internal_backend_html5_HTML5HTTPRequest.loadImage = function(uri) { var promise = new lime_app_Promise(); if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) { lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++; lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage(uri,promise,0); } else { lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : null, uri : uri, promise : promise, type : "IMAGE", options : 0}); } return promise.future; }; lime__$internal_backend_html5_HTML5HTTPRequest.loadImageFromBytes = function(bytes,type) { var uri = URL.createObjectURL(new Blob([bytes.b.bufferValue],{ type : type})); if(uri != null) { var promise = new lime_app_Promise(); if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) { lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++; lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage(uri,promise,1); } else { lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : null, uri : uri, promise : promise, type : "IMAGE", options : 1}); } return promise.future; } else { return lime__$internal_backend_html5_HTML5HTTPRequest.loadImage("data:" + type + ";base64," + lime__$internal_format_Base64.encode(bytes)); } }; lime__$internal_backend_html5_HTML5HTTPRequest.processQueue = function() { if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit && lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.length > 0) { lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++; var queueItem = lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.pop(); switch(queueItem.type) { case "BINARY": queueItem.instance.__loadData(queueItem.uri,queueItem.promise); break; case "IMAGE": lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage(queueItem.uri,queueItem.promise,queueItem.options); break; case "TEXT": queueItem.instance.__loadText(queueItem.uri,queueItem.promise); break; default: lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--; } } }; lime__$internal_backend_html5_HTML5HTTPRequest.__createBlobURIFromBytes = function(bytes,type) { return URL.createObjectURL(new Blob([bytes.b.bufferValue],{ type : type})); }; lime__$internal_backend_html5_HTML5HTTPRequest.__fixHostname = function(hostname) { if(hostname == null) { return ""; } else { return hostname; } }; lime__$internal_backend_html5_HTML5HTTPRequest.__fixPort = function(port,protocol) { if(port == null || port == "") { switch(protocol) { case "ftp:": return "21"; case "gopher:": return "70"; case "http:": return "80"; case "https:": return "443"; case "ws:": return "80"; case "wss:": return "443"; default: return ""; } } return port; }; lime__$internal_backend_html5_HTML5HTTPRequest.__fixProtocol = function(protocol) { if(protocol == null || protocol == "") { return "http:"; } else { return protocol; } }; lime__$internal_backend_html5_HTML5HTTPRequest.__isInMemoryURI = function(uri) { if(!StringTools.startsWith(uri,"data:")) { return StringTools.startsWith(uri,"blob:"); } else { return true; } }; lime__$internal_backend_html5_HTML5HTTPRequest.__isSameOrigin = function(path) { if(path == null || path == "") { return true; } if(lime__$internal_backend_html5_HTML5HTTPRequest.__isInMemoryURI(path)) { return true; } if(lime__$internal_backend_html5_HTML5HTTPRequest.originElement == null) { lime__$internal_backend_html5_HTML5HTTPRequest.originElement = window.document.createElement("a"); lime__$internal_backend_html5_HTML5HTTPRequest.originHostname = lime__$internal_backend_html5_HTML5HTTPRequest.__fixHostname($global.location.hostname); lime__$internal_backend_html5_HTML5HTTPRequest.originProtocol = lime__$internal_backend_html5_HTML5HTTPRequest.__fixProtocol($global.location.protocol); lime__$internal_backend_html5_HTML5HTTPRequest.originPort = lime__$internal_backend_html5_HTML5HTTPRequest.__fixPort($global.location.port,lime__$internal_backend_html5_HTML5HTTPRequest.originProtocol); } var a = lime__$internal_backend_html5_HTML5HTTPRequest.originElement; a.href = path; if(a.hostname == "") { a.href = a.href; } var hostname = lime__$internal_backend_html5_HTML5HTTPRequest.__fixHostname(a.hostname); var protocol = lime__$internal_backend_html5_HTML5HTTPRequest.__fixProtocol(a.protocol); var port = lime__$internal_backend_html5_HTML5HTTPRequest.__fixPort(a.port,protocol); var sameHost = hostname == "" || hostname == lime__$internal_backend_html5_HTML5HTTPRequest.originHostname; var samePort = port == "" || port == lime__$internal_backend_html5_HTML5HTTPRequest.originPort; if(protocol != "file:" && sameHost) { return samePort; } else { return false; } }; lime__$internal_backend_html5_HTML5HTTPRequest.__loadImage = function(uri,promise,options) { var image = new window.Image (); if(!lime__$internal_backend_html5_HTML5HTTPRequest.__isSameOrigin(uri)) { image.crossOrigin = "Anonymous"; } if(lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress == null) { lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress = 'onprogress' in image; } if(lime__$internal_backend_html5_HTML5HTTPRequest.supportsImageProgress || lime__$internal_backend_html5_HTML5HTTPRequest.__isInMemoryURI(uri)) { image.addEventListener("load",function(event) { lime__$internal_backend_html5_HTML5HTTPRequest.__revokeBlobURI(uri,options); var buffer = new lime_graphics_ImageBuffer(null,image.width,image.height); buffer.__srcImage = image; lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--; lime__$internal_backend_html5_HTML5HTTPRequest.processQueue(); promise.complete(new lime_graphics_Image(buffer)); },false); image.addEventListener("progress",function(event) { promise.progress(event.loaded,event.total); },false); image.addEventListener("error",function(event) { lime__$internal_backend_html5_HTML5HTTPRequest.__revokeBlobURI(uri,options); lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--; lime__$internal_backend_html5_HTML5HTTPRequest.processQueue(); promise.error(event.detail); },false); image.src = uri; } else { var request = new XMLHttpRequest(); request.onload = function(_) { lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--; lime__$internal_backend_html5_HTML5HTTPRequest.processQueue(); var img = new lime_graphics_Image(); img.__fromBytes(haxe_io_Bytes.ofData(request.response),function(img) { promise.complete(img); }); }; request.onerror = function(event) { promise.error(event.message); }; request.onprogress = function(event) { if(event.lengthComputable) { promise.progress(event.loaded,event.total); } }; request.open("GET",uri,true); request.responseType = "arraybuffer"; request.overrideMimeType("text/plain; charset=x-user-defined"); request.send(null); } }; lime__$internal_backend_html5_HTML5HTTPRequest.__revokeBlobURI = function(uri,options) { if((options & 1) != 0) { URL.revokeObjectURL(uri); } }; lime__$internal_backend_html5_HTML5HTTPRequest.prototype = { binary: null ,parent: null ,request: null ,validStatus0: null ,cancel: function() { if(this.request != null) { this.request.abort(); } } ,init: function(parent) { this.parent = parent; } ,load: function(uri,progress,readyStateChange) { this.request = new XMLHttpRequest(); if(this.parent.method == "POST") { this.request.upload.addEventListener("progress",progress,false); } else { this.request.addEventListener("progress",progress,false); } this.request.onreadystatechange = readyStateChange; var query = ""; if(this.parent.data == null) { var h = this.parent.formData.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(query.length > 0) { query += "&"; } var value = this.parent.formData.h[key]; if(key.indexOf("[]") > -1 && ((value) instanceof Array)) { var _g = []; var x = $getIterator(value); while(x.hasNext()) { var x1 = x.next(); _g.push(encodeURIComponent(x1)); } var arrayValue = _g.join("&" + key + "="); query += encodeURIComponent(key) + "=" + arrayValue; } else { var query1 = encodeURIComponent(key) + "="; var s = Std.string(value); query += query1 + encodeURIComponent(s); } } if(this.parent.method == "GET" && query != "") { if(uri.indexOf("?") > -1) { uri += "&" + query; } else { uri += "?" + query; } query = ""; } } this.request.open(Std.string(this.parent.method),uri,true); if(this.parent.timeout > 0) { this.request.timeout = this.parent.timeout; } if(this.binary) { this.request.responseType = "arraybuffer"; } var contentType = null; var _g = 0; var _g1 = this.parent.headers; while(_g < _g1.length) { var header = _g1[_g]; ++_g; if(header.name == "Content-Type") { contentType = header.value; } else { this.request.setRequestHeader(header.name,header.value); } } if(this.parent.contentType != null) { contentType = this.parent.contentType; } if(contentType == null) { if(this.parent.data != null) { contentType = "application/octet-stream"; } else if(query != "") { contentType = "application/x-www-form-urlencoded"; } } if(contentType != null) { this.request.setRequestHeader("Content-Type",contentType); } if(this.parent.withCredentials) { this.request.withCredentials = true; } if(this.parent.data != null) { this.request.send(this.parent.data.b.bufferValue); } else { this.request.send(query); } } ,loadData: function(uri) { var promise = new lime_app_Promise(); if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) { lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++; this.__loadData(uri,promise); } else { lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : this, uri : uri, promise : promise, type : "BINARY", options : 0}); } return promise.future; } ,loadText: function(uri) { var promise = new lime_app_Promise(); if(lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests < lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit) { lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests++; this.__loadText(uri,promise); } else { lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue.add({ instance : this, uri : uri, promise : promise, type : "TEXT", options : 0}); } return promise.future; } ,processResponse: function() { if(this.parent.enableResponseHeaders) { this.parent.responseHeaders = []; var name; var value; var _g = 0; var _g1 = this.request.getAllResponseHeaders().split("\n"); while(_g < _g1.length) { var line = _g1[_g]; ++_g; name = StringTools.trim(HxOverrides.substr(line,0,line.indexOf(":"))); value = StringTools.trim(HxOverrides.substr(line,line.indexOf(":") + 1,null)); if(name != "") { this.parent.responseHeaders.push(new lime_net_HTTPRequestHeader(name,value)); } } } this.parent.responseStatus = this.request.status; } ,__loadData: function(uri,promise) { var _gthis = this; var progress = function(event) { promise.progress(event.loaded,event.total); }; var readyStateChange = function(event) { if(_gthis.request.readyState != 4) { return; } if(_gthis.request.status != null && (_gthis.request.status >= 200 && _gthis.request.status < 400 || _gthis.validStatus0 && _gthis.request.status == 0)) { var bytes = null; if(_gthis.request.responseType == "") { if(_gthis.request.responseText != null) { bytes = haxe_io_Bytes.ofString(_gthis.request.responseText); } } else if(_gthis.request.response != null) { bytes = haxe_io_Bytes.ofData(_gthis.request.response); } _gthis.processResponse(); promise.complete(bytes); } else { _gthis.processResponse(); promise.error(_gthis.request.status); } _gthis.request = null; lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--; lime__$internal_backend_html5_HTML5HTTPRequest.processQueue(); }; this.binary = true; this.load(uri,progress,readyStateChange); } ,__loadText: function(uri,promise) { var _gthis = this; var progress = function(event) { promise.progress(event.loaded,event.total); }; var readyStateChange = function(event) { if(_gthis.request.readyState != 4) { return; } if(_gthis.request.status != null && (_gthis.request.status >= 200 && _gthis.request.status < 400 || _gthis.validStatus0 && _gthis.request.status == 0)) { _gthis.processResponse(); promise.complete(_gthis.request.responseText); } else { _gthis.processResponse(); promise.error(_gthis.request.status); } _gthis.request = null; lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests--; lime__$internal_backend_html5_HTML5HTTPRequest.processQueue(); }; this.binary = false; this.load(uri,progress,readyStateChange); } ,__class__: lime__$internal_backend_html5_HTML5HTTPRequest }; var lime__$internal_backend_html5_HTML5Window = function(parent) { this.imeCompositionActive = false; this.unusedTouchesPool = new haxe_ds_List(); this.scale = 1.0; this.currentTouches = new haxe_ds_IntMap(); this.parent = parent; this.cursor = lime_ui_MouseCursor.DEFAULT; this.cacheMouseX = 0; this.cacheMouseY = 0; var attributes = parent.__attributes; if(!Object.prototype.hasOwnProperty.call(attributes,"context")) { attributes.context = { }; } this.renderType = attributes.context.type; if(Object.prototype.hasOwnProperty.call(attributes,"element")) { parent.element = attributes.element; } var element = parent.element; if(Object.prototype.hasOwnProperty.call(attributes,"allowHighDPI") && attributes.allowHighDPI && this.renderType != "dom") { this.scale = window.devicePixelRatio; } parent.__scale = this.scale; this.setWidth = Object.prototype.hasOwnProperty.call(attributes,"width") ? attributes.width : 0; this.setHeight = Object.prototype.hasOwnProperty.call(attributes,"height") ? attributes.height : 0; parent.__width = this.setWidth; parent.__height = this.setHeight; parent.id = lime__$internal_backend_html5_HTML5Window.windowID++; if(((element) instanceof HTMLCanvasElement)) { this.canvas = element; } else if(this.renderType == "dom") { this.div = window.document.createElement("div"); } 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 style = this.div.style; style.setProperty("-webkit-transform","translate3D(0,0,0)",null); style.setProperty("transform","translate3D(0,0,0)",null); style.position = "relative"; style.overflow = "hidden"; style.setProperty("-webkit-user-select","none",null); style.setProperty("-moz-user-select","none",null); style.setProperty("-ms-user-select","none",null); style.setProperty("-o-user-select","none",null); } if(parent.__width == 0 && parent.__height == 0) { if(element != null) { parent.__width = element.clientWidth; parent.__height = element.clientHeight; } else { parent.__width = window.innerWidth; parent.__height = window.innerHeight; } this.cacheElementWidth = parent.__width; this.cacheElementHeight = parent.__height; this.resizeElement = true; } if(this.canvas != null) { this.canvas.width = Math.round(parent.__width * this.scale); this.canvas.height = Math.round(parent.__height * this.scale); this.canvas.style.width = parent.__width + "px"; this.canvas.style.height = parent.__height + "px"; } else { this.div.style.width = parent.__width + "px"; this.div.style.height = parent.__height + "px"; } if(Object.prototype.hasOwnProperty.call(attributes,"resizable") && attributes.resizable || !Object.prototype.hasOwnProperty.call(attributes,"width") && this.setWidth == 0 && this.setHeight == 0) { parent.__resizable = true; } this.updateSize(); if(element != null) { if(this.canvas != null) { if(element != this.canvas) { element.appendChild(this.canvas); } } else { element.appendChild(this.div); } var events = ["mousedown","mouseenter","mouseleave","mousemove","mouseup","wheel"]; var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; element.addEventListener(event,$bind(this,this.handleMouseEvent),true); } element.addEventListener("contextmenu",$bind(this,this.handleContextMenuEvent),true); element.addEventListener("dragstart",$bind(this,this.handleDragEvent),true); element.addEventListener("dragover",$bind(this,this.handleDragEvent),true); element.addEventListener("drop",$bind(this,this.handleDragEvent),true); element.addEventListener("touchstart",$bind(this,this.handleTouchEvent),true); element.addEventListener("touchmove",$bind(this,this.handleTouchEvent),true); element.addEventListener("touchend",$bind(this,this.handleTouchEvent),true); element.addEventListener("touchcancel",$bind(this,this.handleTouchEvent),true); element.addEventListener("gamepadconnected",$bind(this,this.handleGamepadEvent),true); element.addEventListener("gamepaddisconnected",$bind(this,this.handleGamepadEvent),true); } this.createContext(); if(parent.context.type == "webgl") { this.canvas.addEventListener("webglcontextlost",$bind(this,this.handleContextEvent),false); this.canvas.addEventListener("webglcontextrestored",$bind(this,this.handleContextEvent),false); } }; $hxClasses["lime._internal.backend.html5.HTML5Window"] = lime__$internal_backend_html5_HTML5Window; lime__$internal_backend_html5_HTML5Window.__name__ = "lime._internal.backend.html5.HTML5Window"; lime__$internal_backend_html5_HTML5Window.textArea = null; lime__$internal_backend_html5_HTML5Window.textInput = null; lime__$internal_backend_html5_HTML5Window.prototype = { canvas: null ,div: null ,cacheElementHeight: null ,cacheElementWidth: null ,cacheMouseX: null ,cacheMouseY: null ,cursor: null ,currentTouches: null ,isFullscreen: null ,parent: null ,primaryTouch: null ,renderType: null ,requestedFullscreen: null ,resizeElement: null ,scale: null ,setHeight: null ,setWidth: null ,textInputEnabled: null ,textInputRect: null ,unusedTouchesPool: null ,__focusPending: null ,alert: function(message,title) { if(message != null) { window.alert(Std.string(message)); } } ,close: function() { this.parent.application.__removeWindow(this.parent); } ,createContext: function() { var context = new lime_graphics_RenderContext(); var contextAttributes = this.parent.__attributes.context; context.window = this.parent; context.attributes = contextAttributes; if(this.div != null) { context.dom = this.div; context.type = "dom"; context.version = ""; } else if(this.canvas != null) { var webgl = null; var forceCanvas = this.renderType == "canvas"; var forceWebGL = this.renderType == "opengl" || this.renderType == "opengles" || this.renderType == "webgl"; var allowWebGL2 = !Object.prototype.hasOwnProperty.call(contextAttributes,"version") || contextAttributes.version != "1"; var isWebGL2 = false; if(forceWebGL || !forceCanvas && (!Object.prototype.hasOwnProperty.call(contextAttributes,"hardware") || contextAttributes.hardware)) { var transparentBackground = Object.prototype.hasOwnProperty.call(contextAttributes,"background") && contextAttributes.background == null; var colorDepth = Object.prototype.hasOwnProperty.call(contextAttributes,"colorDepth") ? contextAttributes.colorDepth : 16; var options = Object.prototype.hasOwnProperty.call(contextAttributes,"antialiasing") && contextAttributes.antialiasing > 0; var options1 = Object.prototype.hasOwnProperty.call(contextAttributes,"depth") ? contextAttributes.depth : true; var options2 = Object.prototype.hasOwnProperty.call(contextAttributes,"stencil") && contextAttributes.stencil; var options3 = { alpha : transparentBackground || colorDepth > 16, antialias : options, depth : options1, premultipliedAlpha : true, stencil : options2, preserveDrawingBuffer : false, failIfMajorPerformanceCaveat : false}; var glContextType = ["webgl","experimental-webgl"]; if(allowWebGL2) { glContextType.unshift("webgl2"); } var _g = 0; while(_g < glContextType.length) { var name = glContextType[_g]; ++_g; webgl = this.canvas.getContext(name,options3); if(webgl != null && name == "webgl2") { isWebGL2 = true; } if(webgl != null) { break; } } } if(webgl == null) { context.canvas2D = this.canvas.getContext("2d"); context.type = "canvas"; context.version = ""; } else { context.webgl = lime_graphics_WebGLRenderContext.fromWebGL2RenderContext(webgl); if(isWebGL2) { context.webgl2 = webgl; } if(lime_graphics_opengl_GL.context == null) { lime_graphics_opengl_GL.context = webgl; lime_graphics_opengl_GL.type = "webgl"; lime_graphics_opengl_GL.version = isWebGL2 ? 2 : 1; } context.type = "webgl"; context.version = isWebGL2 ? "2" : "1"; } } this.parent.context = context; } ,focus: function() { } ,focusTextInput: function() { var _gthis = this; if(this.__focusPending) { return; } this.__focusPending = true; haxe_Timer.delay(function() { _gthis.__focusPending = false; if(_gthis.textInputEnabled) { lime__$internal_backend_html5_HTML5Window.textInput.focus(); } },20); } ,getCursor: function() { return this.cursor; } ,getDisplay: function() { return lime_system_System.getDisplay(0); } ,getDisplayMode: function() { return lime_system_System.getDisplay(0).currentMode; } ,getFrameRate: function() { if(this.parent.application == null) { return 0; } if(this.parent.application.__backend.framePeriod < 0) { return 60; } else if(this.parent.application.__backend.framePeriod == 1000) { return 0; } else { return 1000 / this.parent.application.__backend.framePeriod; } } ,getMouseLock: function() { return false; } ,getTextInputEnabled: function() { return this.textInputEnabled; } ,handleContextEvent: function(event) { switch(event.type) { case "webglcontextlost": if(event.cancelable) { event.preventDefault(); } var tmp = lime_graphics_opengl_GL.context != null; this.parent.context = null; this.parent.onRenderContextLost.dispatch(); break; case "webglcontextrestored": this.createContext(); this.parent.onRenderContextRestored.dispatch(this.parent.context); break; default: } } ,handleContextMenuEvent: function(event) { if((this.parent.onMouseUp.canceled || this.parent.onMouseDown.canceled) && event.cancelable) { event.preventDefault(); } } ,handleCutOrCopyEvent: function(event) { var text = lime_system_Clipboard.get_text(); if(text == null) { text = ""; } event.clipboardData.setData("text/plain",text); if(event.cancelable) { event.preventDefault(); } } ,handleDragEvent: function(event) { switch(event.type) { case "dragover": event.preventDefault(); return false; case "dragstart": if((js_Boot.__cast(event.target , HTMLElement)).nodeName.toLowerCase() == "img" && event.cancelable) { event.preventDefault(); return false; } break; case "drop": if(event.dataTransfer != null && event.dataTransfer.files.length > 0) { this.parent.onDropFile.dispatch(event.dataTransfer.files); event.preventDefault(); return false; } break; } return true; } ,handleFocusEvent: function(event) { if(this.textInputEnabled) { if(event.relatedTarget == null || this.isDescendent(event.relatedTarget)) { this.focusTextInput(); } } } ,handleFullscreenEvent: function(event) { var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; if(fullscreenElement != null) { this.isFullscreen = true; this.parent.__fullscreen = true; if(this.requestedFullscreen) { this.requestedFullscreen = false; this.parent.onFullscreen.dispatch(); } } else { this.isFullscreen = false; this.parent.__fullscreen = false; this.parent.onRestore.dispatch(); var changeEvents = ["fullscreenchange","mozfullscreenchange","webkitfullscreenchange","MSFullscreenChange"]; var errorEvents = ["fullscreenerror","mozfullscreenerror","webkitfullscreenerror","MSFullscreenError"]; var _g = 0; var _g1 = changeEvents.length; while(_g < _g1) { var i = _g++; window.document.removeEventListener(changeEvents[i],$bind(this,this.handleFullscreenEvent),false); window.document.removeEventListener(errorEvents[i],$bind(this,this.handleFullscreenEvent),false); } } } ,handleGamepadEvent: function(event) { switch(event.type) { 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(this.imeCompositionActive) { return; } if(lime__$internal_backend_html5_HTML5Window.textInput.value != lime__$internal_backend_html5_HTML5Window.dummyCharacter) { var value = StringTools.replace(lime__$internal_backend_html5_HTML5Window.textInput.value,lime__$internal_backend_html5_HTML5Window.dummyCharacter,""); if(value.length > 0) { this.parent.onTextInput.dispatch(value); } lime__$internal_backend_html5_HTML5Window.textInput.value = lime__$internal_backend_html5_HTML5Window.dummyCharacter; } } ,handleMouseEvent: function(event) { var x = 0.0; var y = 0.0; if(event.type != "wheel") { if(this.parent.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 rect = this.div.getBoundingClientRect(); x = event.clientX - rect.left; y = event.clientY - rect.top; } else { var rect = this.parent.element.getBoundingClientRect(); x = (event.clientX - rect.left) * (this.parent.__width / rect.width); y = (event.clientY - rect.top) * (this.parent.__height / rect.height); } } else { x = event.clientX; y = event.clientY; } switch(event.type) { case "mousedown": if(event.currentTarget == this.parent.element) { window.addEventListener("mouseup",$bind(this,this.handleMouseEvent)); } this.parent.onMouseDown.dispatch(x,y,event.button); if(this.parent.onMouseDown.canceled && event.cancelable) { event.preventDefault(); } break; case "mouseenter": if(event.target == this.parent.element) { this.parent.onEnter.dispatch(); if(this.parent.onEnter.canceled && event.cancelable) { event.preventDefault(); } } break; case "mouseleave": if(event.target == this.parent.element) { this.parent.onLeave.dispatch(); if(this.parent.onLeave.canceled && event.cancelable) { event.preventDefault(); } } break; case "mousemove": if(x != this.cacheMouseX || y != this.cacheMouseY) { this.parent.onMouseMove.dispatch(x,y); this.parent.onMouseMoveRelative.dispatch(x - this.cacheMouseX,y - this.cacheMouseY); if((this.parent.onMouseMove.canceled || this.parent.onMouseMoveRelative.canceled) && event.cancelable) { event.preventDefault(); } } break; case "mouseup": window.removeEventListener("mouseup",$bind(this,this.handleMouseEvent)); if(event.currentTarget == this.parent.element) { event.stopPropagation(); } this.parent.onMouseUp.dispatch(x,y,event.button); if(this.parent.onMouseUp.canceled && event.cancelable) { event.preventDefault(); } break; default: } this.cacheMouseX = x; this.cacheMouseY = y; } else { var deltaMode; switch(event.deltaMode) { case 0: deltaMode = lime_ui_MouseWheelMode.PIXELS; break; case 1: deltaMode = lime_ui_MouseWheelMode.LINES; break; case 2: deltaMode = lime_ui_MouseWheelMode.PAGES; break; default: deltaMode = lime_ui_MouseWheelMode.UNKNOWN; } this.parent.onMouseWheel.dispatch(event.deltaX,-event.deltaY,deltaMode); if(this.parent.onMouseWheel.canceled && event.cancelable) { event.preventDefault(); } } } ,handlePasteEvent: function(event) { if(event.clipboardData.types.indexOf("text/plain") > -1) { var text = event.clipboardData.getData("text/plain"); lime_system_Clipboard.set_text(text); if(this.textInputEnabled) { this.parent.onTextInput.dispatch(text); } if(event.cancelable) { event.preventDefault(); } } } ,handleResizeEvent: function(event) { this.primaryTouch = null; this.updateSize(); } ,handleTouchEvent: function(event) { if(event.cancelable) { event.preventDefault(); } var rect = null; if(this.parent.element != null) { if(this.canvas != null) { rect = this.canvas.getBoundingClientRect(); } else if(this.div != null) { rect = this.div.getBoundingClientRect(); } else { rect = this.parent.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 touch; var x; var y; var cacheX; var cacheY; var _g = 0; var _g1 = event.changedTouches; while(_g < _g1.length) { var data = _g1[_g]; ++_g; x = 0.0; 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; } if(event.type == "touchstart") { 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); } } else { touch = this.currentTouches.h[data.identifier]; if(touch != null) { cacheX = touch.x; cacheY = touch.y; touch.x = x / windowWidth; touch.y = y / windowHeight; touch.dx = touch.x - cacheX; touch.dy = touch.y - cacheY; touch.pressure = data.force; switch(event.type) { case "touchcancel": lime_ui_Touch.onCancel.dispatch(touch); this.currentTouches.remove(data.identifier); this.unusedTouchesPool.add(touch); if(touch == this.primaryTouch) { this.primaryTouch = null; } break; case "touchend": lime_ui_Touch.onEnd.dispatch(touch); this.currentTouches.remove(data.identifier); this.unusedTouchesPool.add(touch); if(touch == this.primaryTouch) { this.parent.onMouseUp.dispatch(x,y,0); this.primaryTouch = null; } break; case "touchmove": lime_ui_Touch.onMove.dispatch(touch); if(touch == this.primaryTouch) { this.parent.onMouseMove.dispatch(x,y); } break; default: } } } } } ,isDescendent: function(node) { if(node == this.parent.element) { return true; } while(node != null) { if(node.parentNode == this.parent.element) { return true; } node = node.parentNode; } return false; } ,move: function(x,y) { } ,readPixels: function(rect) { if(this.canvas != null) { var stageRect = new lime_math_Rectangle(0,0,this.canvas.width,this.canvas.height); if(rect == null) { rect = stageRect; } else { rect.intersection(stageRect,rect); } if(rect.width > 0 && rect.height > 0) { var canvas2 = window.document.createElement("canvas"); canvas2.width = rect.width | 0; canvas2.height = rect.height | 0; var context = canvas2.getContext("2d"); context.drawImage(this.canvas,-rect.x,-rect.y); return lime_graphics_Image.fromCanvas(canvas2); } } return null; } ,resize: function(width,height) { } ,setBorderless: function(value) { return value; } ,setClipboard: function(value) { if(lime__$internal_backend_html5_HTML5Window.textArea == null) { lime__$internal_backend_html5_HTML5Window.textArea = window.document.createElement("textarea"); lime__$internal_backend_html5_HTML5Window.textArea.style.height = "0px"; lime__$internal_backend_html5_HTML5Window.textArea.style.left = "-100px"; lime__$internal_backend_html5_HTML5Window.textArea.style.opacity = "0"; lime__$internal_backend_html5_HTML5Window.textArea.style.position = "fixed"; lime__$internal_backend_html5_HTML5Window.textArea.style.top = "-100px"; lime__$internal_backend_html5_HTML5Window.textArea.style.width = "0px"; window.document.body.appendChild(lime__$internal_backend_html5_HTML5Window.textArea); } lime__$internal_backend_html5_HTML5Window.textArea.value = value; lime__$internal_backend_html5_HTML5Window.textArea.focus(); lime__$internal_backend_html5_HTML5Window.textArea.select(); if(window.document.queryCommandEnabled("copy")) { window.document.execCommand("copy"); } if(this.textInputEnabled) { this.focusTextInput(); } } ,setCursor: function(value) { if(this.cursor != value) { if(value == null) { this.parent.element.style.cursor = "none"; } else { var tmp; switch(value._hx_index) { case 0: tmp = "default"; break; case 1: tmp = "crosshair"; break; case 3: tmp = "move"; break; case 4: tmp = "pointer"; break; case 5: tmp = "nesw-resize"; break; case 6: tmp = "ns-resize"; break; case 7: tmp = "nwse-resize"; break; case 8: tmp = "ew-resize"; break; case 9: tmp = "text"; break; case 10: tmp = "wait"; break; case 11: tmp = "wait"; break; default: tmp = "auto"; } this.parent.element.style.cursor = tmp; } this.cursor = value; } return this.cursor; } ,setDisplayMode: function(value) { return value; } ,setFrameRate: function(value) { if(this.parent.application != null) { if(value >= 60) { if(this.parent == this.parent.application.__window) { this.parent.application.__backend.framePeriod = -1; } } else if(value > 0) { if(this.parent == this.parent.application.__window) { this.parent.application.__backend.framePeriod = 1000 / value; } } else if(this.parent == this.parent.application.__window) { this.parent.application.__backend.framePeriod = 1000; } } return value; } ,setFullscreen: function(value) { if(value) { if(!this.requestedFullscreen && !this.isFullscreen) { this.requestedFullscreen = true; if(($_=this.parent.element,$bind($_,$_.requestFullscreen))) { document.addEventListener("fullscreenchange",$bind(this,this.handleFullscreenEvent),false); document.addEventListener("fullscreenerror",$bind(this,this.handleFullscreenEvent),false); this.parent.element.requestFullscreen(); } else if(this.parent.element.mozRequestFullScreen) { document.addEventListener("mozfullscreenchange",$bind(this,this.handleFullscreenEvent),false); document.addEventListener("mozfullscreenerror",$bind(this,this.handleFullscreenEvent),false); this.parent.element.mozRequestFullScreen(); } else if(this.parent.element.webkitRequestFullscreen) { document.addEventListener("webkitfullscreenchange",$bind(this,this.handleFullscreenEvent),false); document.addEventListener("webkitfullscreenerror",$bind(this,this.handleFullscreenEvent),false); this.parent.element.webkitRequestFullscreen(); } else if(this.parent.element.msRequestFullscreen) { document.addEventListener("MSFullscreenChange",$bind(this,this.handleFullscreenEvent),false); document.addEventListener("MSFullscreenError",$bind(this,this.handleFullscreenEvent),false); this.parent.element.msRequestFullscreen(); } } } else if(this.isFullscreen) { this.requestedFullscreen = false; if(document.exitFullscreen) { document.exitFullscreen(); } else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if(document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if(document.msExitFullscreen) { document.msExitFullscreen(); } } return value; } ,setIcon: function(image) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image); var link = window.document.querySelector("link[rel*='icon']"); if(link == null) { link = window.document.createElement("link"); } link.type = "image/x-icon"; link.rel = "shortcut icon"; link.href = image.buffer.get_src().toDataURL("image/x-icon"); window.document.getElementsByTagName("head")[0].appendChild(link); } ,setMaximized: function(value) { return false; } ,setMinimized: function(value) { return false; } ,setMouseLock: function(value) { } ,setResizable: function(value) { return value; } ,setTextInputEnabled: function(value) { if(value) { if(lime__$internal_backend_html5_HTML5Window.textInput == null) { lime__$internal_backend_html5_HTML5Window.textInput = window.document.createElement("input"); var tmp = $global.navigator.userAgent.indexOf("Android") >= 0 ? "password" : "text"; lime__$internal_backend_html5_HTML5Window.textInput.type = tmp; lime__$internal_backend_html5_HTML5Window.textInput.style.position = "absolute"; lime__$internal_backend_html5_HTML5Window.textInput.style.opacity = "0"; lime__$internal_backend_html5_HTML5Window.textInput.style.color = "transparent"; lime__$internal_backend_html5_HTML5Window.textInput.value = lime__$internal_backend_html5_HTML5Window.dummyCharacter; lime__$internal_backend_html5_HTML5Window.textInput.autocapitalize = "off"; lime__$internal_backend_html5_HTML5Window.textInput.autocorrect = "off"; lime__$internal_backend_html5_HTML5Window.textInput.autocomplete = "off"; lime__$internal_backend_html5_HTML5Window.textInput.style.left = "0px"; lime__$internal_backend_html5_HTML5Window.textInput.style.top = "50%"; if(new EReg("(iPad|iPhone|iPod).*OS 8_","gi").match(window.navigator.userAgent)) { lime__$internal_backend_html5_HTML5Window.textInput.style.fontSize = "0px"; lime__$internal_backend_html5_HTML5Window.textInput.style.width = "0px"; lime__$internal_backend_html5_HTML5Window.textInput.style.height = "0px"; } else { lime__$internal_backend_html5_HTML5Window.textInput.style.width = "1px"; lime__$internal_backend_html5_HTML5Window.textInput.style.height = "1px"; } lime__$internal_backend_html5_HTML5Window.textInput.style.pointerEvents = "none"; lime__$internal_backend_html5_HTML5Window.textInput.style.zIndex = "-10000000"; } if(lime__$internal_backend_html5_HTML5Window.textInput.parentNode == null) { this.parent.element.appendChild(lime__$internal_backend_html5_HTML5Window.textInput); } if(!this.textInputEnabled) { lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("input",$bind(this,this.handleInputEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("blur",$bind(this,this.handleFocusEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("cut",$bind(this,this.handleCutOrCopyEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("copy",$bind(this,this.handleCutOrCopyEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("paste",$bind(this,this.handlePasteEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("compositionstart",$bind(this,this.handleCompositionstartEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.addEventListener("compositionend",$bind(this,this.handleCompositionendEvent),true); } lime__$internal_backend_html5_HTML5Window.textInput.focus(); lime__$internal_backend_html5_HTML5Window.textInput.select(); } else if(lime__$internal_backend_html5_HTML5Window.textInput != null) { lime__$internal_backend_html5_HTML5Window.textInput.blur(); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("input",$bind(this,this.handleInputEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("blur",$bind(this,this.handleFocusEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("cut",$bind(this,this.handleCutOrCopyEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("copy",$bind(this,this.handleCutOrCopyEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("paste",$bind(this,this.handlePasteEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("compositionstart",$bind(this,this.handleCompositionstartEvent),true); lime__$internal_backend_html5_HTML5Window.textInput.removeEventListener("compositionend",$bind(this,this.handleCompositionendEvent),true); } return this.textInputEnabled = value; } ,setTextInputRect: function(value) { return this.textInputRect = value; } ,imeCompositionActive: null ,handleCompositionstartEvent: function(e) { this.imeCompositionActive = true; } ,handleCompositionendEvent: function(e) { this.imeCompositionActive = false; this.handleInputEvent(e); } ,setTitle: function(value) { if(value != null) { window.document.title = value; } return value; } ,updateSize: function() { if(!this.parent.__resizable) { return; } var elementWidth; var elementHeight; if(this.parent.element != null) { elementWidth = this.parent.element.clientWidth; elementHeight = this.parent.element.clientHeight; } else { elementWidth = window.innerWidth; elementHeight = window.innerHeight; } if(elementWidth != this.cacheElementWidth || elementHeight != this.cacheElementHeight) { this.cacheElementWidth = elementWidth; this.cacheElementHeight = elementHeight; var stretch = this.resizeElement || this.setWidth == 0 && this.setHeight == 0; if(this.parent.element != null && (this.div == null || this.div != null && stretch)) { if(stretch) { if(this.parent.__width != elementWidth || this.parent.__height != elementHeight) { this.parent.__width = elementWidth; this.parent.__height = elementHeight; if(this.canvas != null) { if(this.parent.element != this.canvas) { this.canvas.width = Math.round(elementWidth * this.scale); this.canvas.height = Math.round(elementHeight * this.scale); this.canvas.style.width = elementWidth + "px"; this.canvas.style.height = elementHeight + "px"; } } else { this.div.style.width = elementWidth + "px"; this.div.style.height = elementHeight + "px"; } this.parent.onResize.dispatch(elementWidth,elementHeight); } } else { var scaleX = this.setWidth != 0 ? elementWidth / this.setWidth : 1; var scaleY = this.setHeight != 0 ? elementHeight / this.setHeight : 1; var targetWidth = elementWidth; var targetHeight = elementHeight; var marginLeft = 0; var marginTop = 0; if(scaleX < scaleY) { targetHeight = Math.floor(this.setHeight * scaleX); marginTop = Math.floor((elementHeight - targetHeight) / 2); } else { targetWidth = Math.floor(this.setWidth * scaleY); marginLeft = Math.floor((elementWidth - targetWidth) / 2); } if(this.canvas != null) { if(this.parent.element != this.canvas) { this.canvas.style.width = targetWidth + "px"; this.canvas.style.height = targetHeight + "px"; this.canvas.style.marginLeft = marginLeft + "px"; this.canvas.style.marginTop = marginTop + "px"; } } else { this.div.style.width = targetWidth + "px"; this.div.style.height = targetHeight + "px"; this.div.style.marginLeft = marginLeft + "px"; this.div.style.marginTop = marginTop + "px"; } } } } } ,warpMouse: function(x,y) { } ,__class__: lime__$internal_backend_html5_HTML5Window }; var lime__$internal_backend_native_NativeCFFI = function() { }; $hxClasses["lime._internal.backend.native.NativeCFFI"] = lime__$internal_backend_native_NativeCFFI; lime__$internal_backend_native_NativeCFFI.__name__ = "lime._internal.backend.native.NativeCFFI"; var lime__$internal_format_BMP = function() { }; $hxClasses["lime._internal.format.BMP"] = lime__$internal_format_BMP; lime__$internal_format_BMP.__name__ = "lime._internal.format.BMP"; lime__$internal_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__$internal_format_BMPType.RGB; } var fileHeaderLength = 14; var infoHeaderLength = 40; var pixelValuesLength = image.width * image.height * 4; if(type != null) { switch(type._hx_index) { case 0: pixelValuesLength = (image.width * 3 + image.width * 3 % 4) * image.height; break; case 1: infoHeaderLength = 108; break; case 2: fileHeaderLength = 0; pixelValuesLength += image.width * image.height; break; } } var data = new haxe_io_Bytes(new ArrayBuffer(fileHeaderLength + infoHeaderLength + pixelValuesLength)); var position = 0; if(fileHeaderLength > 0) { data.b[position++] = 66; data.b[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__$internal_format_BMPType.ICO ? image.height * 2 : image.height); position += 4; data.setUInt16(position,1); position += 2; data.setUInt16(position,type == lime__$internal_format_BMPType.RGB ? 24 : 32); position += 2; data.setInt32(position,type == lime__$internal_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__$internal_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.b[position++] = 32; data.b[position++] = 110; data.b[position++] = 105; data.b[position++] = 87; var _g = 0; while(_g < 48) { var i = _g++; data.b[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._hx_index) { case 0: var _g = 0; var _g1 = image.height; while(_g < _g1) { var y = _g++; readPosition = (image.height - 1 - y) * 4 * image.width; var _g2 = 0; var _g3 = image.width; while(_g2 < _g3) { var x = _g2++; a = pixels.b[readPosition++]; r = pixels.b[readPosition++]; g = pixels.b[readPosition++]; b = pixels.b[readPosition++]; data.b[position++] = b & 255; data.b[position++] = g & 255; data.b[position++] = r & 255; } var _g4 = 0; var _g5 = image.width * 3 % 4; while(_g4 < _g5) { var i = _g4++; data.b[position++] = 0; } } break; case 1: var _g = 0; var _g1 = image.height; while(_g < _g1) { var y = _g++; readPosition = (image.height - 1 - y) * 4 * image.width; var _g2 = 0; var _g3 = image.width; while(_g2 < _g3) { var x = _g2++; a = pixels.b[readPosition++]; r = pixels.b[readPosition++]; g = pixels.b[readPosition++]; b = pixels.b[readPosition++]; data.b[position++] = b & 255; data.b[position++] = g & 255; data.b[position++] = r & 255; data.b[position++] = a & 255; } } break; case 2: var andMask = new haxe_io_Bytes(new ArrayBuffer(image.width * image.height)); var maskPosition = 0; var _g = 0; var _g1 = image.height; while(_g < _g1) { var y = _g++; readPosition = (image.height - 1 - y) * 4 * image.width; var _g2 = 0; var _g3 = image.width; while(_g2 < _g3) { var x = _g2++; a = pixels.b[readPosition++]; r = pixels.b[readPosition++]; g = pixels.b[readPosition++]; b = pixels.b[readPosition++]; data.b[position++] = b & 255; data.b[position++] = g & 255; data.b[position++] = r & 255; data.b[position++] = a & 255; andMask.b[maskPosition++] = 0; } } data.blit(position,andMask,0,image.width * image.height); break; } } return data; }; var lime__$internal_format_BMPType = $hxEnums["lime._internal.format.BMPType"] = { __ename__:"lime._internal.format.BMPType",__constructs__:null ,RGB: {_hx_name:"RGB",_hx_index:0,__enum__:"lime._internal.format.BMPType",toString:$estr} ,BITFIELD: {_hx_name:"BITFIELD",_hx_index:1,__enum__:"lime._internal.format.BMPType",toString:$estr} ,ICO: {_hx_name:"ICO",_hx_index:2,__enum__:"lime._internal.format.BMPType",toString:$estr} }; lime__$internal_format_BMPType.__constructs__ = [lime__$internal_format_BMPType.RGB,lime__$internal_format_BMPType.BITFIELD,lime__$internal_format_BMPType.ICO]; lime__$internal_format_BMPType.__empty_constructs__ = [lime__$internal_format_BMPType.RGB,lime__$internal_format_BMPType.BITFIELD,lime__$internal_format_BMPType.ICO]; var lime__$internal_format_Base64 = function() { }; $hxClasses["lime._internal.format.Base64"] = lime__$internal_format_Base64; lime__$internal_format_Base64.__name__ = "lime._internal.format.Base64"; lime__$internal_format_Base64.decode = function(source) { return haxe_crypto_Base64.decode(source); }; lime__$internal_format_Base64.encode = function(source) { var result = []; var dictionary = lime__$internal_format_Base64.DICTIONARY; var extendedDictionary = lime__$internal_format_Base64.EXTENDED_DICTIONARY; var numBytes = source.length; var numInputTriplets = Math.floor(numBytes / 3); var numChunksToWrite = numInputTriplets * 2; result.length = Math.ceil(numBytes / 3) * 2; var numBytesRead = 0; var numChunksWritten = 0; var inputTriplet; while(numChunksWritten < numChunksToWrite) { inputTriplet = source.b[numBytesRead] << 16 | source.b[numBytesRead + 1] << 8 | source.b[numBytesRead + 2]; result[numChunksWritten] = extendedDictionary[inputTriplet >> 12 & 4095]; result[numChunksWritten + 1] = extendedDictionary[inputTriplet & 4095]; numBytesRead += 3; numChunksWritten += 2; } switch(numBytes - numInputTriplets * 3) { case 1: inputTriplet = source.b[numBytesRead] << 16; result[numChunksWritten] = extendedDictionary[inputTriplet >> 12 & 4095]; result[numChunksWritten + 1] = "=="; break; case 2: inputTriplet = source.b[numBytesRead] << 16 | source.b[numBytesRead + 1] << 8; result[numChunksWritten] = extendedDictionary[inputTriplet >> 12 & 4095]; result[numChunksWritten + 1] = dictionary[inputTriplet >> 6 & 63] + "="; break; default: } return result.join(""); }; var lime__$internal_format_Deflate = function() { }; $hxClasses["lime._internal.format.Deflate"] = lime__$internal_format_Deflate; lime__$internal_format_Deflate.__name__ = "lime._internal.format.Deflate"; lime__$internal_format_Deflate.compress = function(bytes) { var data = pako.deflateRaw(bytes.b.bufferValue); return haxe_io_Bytes.ofData(data); }; lime__$internal_format_Deflate.decompress = function(bytes) { var data = pako.inflateRaw(bytes.b.bufferValue); return haxe_io_Bytes.ofData(data); }; var lime__$internal_format_GZip = function() { }; $hxClasses["lime._internal.format.GZip"] = lime__$internal_format_GZip; lime__$internal_format_GZip.__name__ = "lime._internal.format.GZip"; lime__$internal_format_GZip.compress = function(bytes) { var data = pako.gzip(bytes.b.bufferValue); return haxe_io_Bytes.ofData(data); }; lime__$internal_format_GZip.decompress = function(bytes) { var data = pako.ungzip(bytes.b.bufferValue); return haxe_io_Bytes.ofData(data); }; var lime__$internal_format_JPEG = function() { }; $hxClasses["lime._internal.format.JPEG"] = lime__$internal_format_JPEG; lime__$internal_format_JPEG.__name__ = "lime._internal.format.JPEG"; lime__$internal_format_JPEG.decodeBytes = function(bytes,decodeData) { if(decodeData == null) { decodeData = true; } return null; }; lime__$internal_format_JPEG.decodeFile = function(path,decodeData) { if(decodeData == null) { decodeData = true; } return null; }; lime__$internal_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__$internal_graphics_ImageCanvasUtil.convertToCanvas(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 = new haxe_io_Bytes(new ArrayBuffer(buffer.length)); var _g = 0; var _g1 = buffer.length; while(_g < _g1) { var i = _g++; bytes.b[i] = HxOverrides.cca(buffer,i) & 255; } return bytes; } return null; }; var lime__$internal_format_LZMA = function() { }; $hxClasses["lime._internal.format.LZMA"] = lime__$internal_format_LZMA; lime__$internal_format_LZMA.__name__ = "lime._internal.format.LZMA"; lime__$internal_format_LZMA.compress = function(bytes) { return null; }; lime__$internal_format_LZMA.decompress = function(bytes) { return null; }; var lime__$internal_format_PNG = function() { }; $hxClasses["lime._internal.format.PNG"] = lime__$internal_format_PNG; lime__$internal_format_PNG.__name__ = "lime._internal.format.PNG"; lime__$internal_format_PNG.decodeBytes = function(bytes,decodeData) { if(decodeData == null) { decodeData = true; } return null; }; lime__$internal_format_PNG.decodeFile = function(path,decodeData) { if(decodeData == null) { decodeData = true; } return null; }; lime__$internal_format_PNG.encode = function(image) { if(image.get_premultiplied() || image.get_format() != 0) { image = image.clone(); image.set_premultiplied(false); image.set_format(0); } lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,false); if(image.buffer.__srcCanvas != null) { var data = image.buffer.__srcCanvas.toDataURL("image/png"); var buffer = window.atob(data.split(";base64,")[1]); var bytes = new haxe_io_Bytes(new ArrayBuffer(buffer.length)); var _g = 0; var _g1 = buffer.length; while(_g < _g1) { var i = _g++; bytes.b[i] = HxOverrides.cca(buffer,i) & 255; } return bytes; } return null; }; var lime__$internal_format_Zlib = function() { }; $hxClasses["lime._internal.format.Zlib"] = lime__$internal_format_Zlib; lime__$internal_format_Zlib.__name__ = "lime._internal.format.Zlib"; lime__$internal_format_Zlib.compress = function(bytes) { var data = pako.deflate(bytes.b.bufferValue); return haxe_io_Bytes.ofData(data); }; lime__$internal_format_Zlib.decompress = function(bytes) { var data = pako.inflate(bytes.b.bufferValue); return haxe_io_Bytes.ofData(data); }; var lime__$internal_graphics_ImageCanvasUtil = function() { }; $hxClasses["lime._internal.graphics.ImageCanvasUtil"] = lime__$internal_graphics_ImageCanvasUtil; lime__$internal_graphics_ImageCanvasUtil.__name__ = "lime._internal.graphics.ImageCanvasUtil"; lime__$internal_graphics_ImageCanvasUtil.colorTransform = function(image,rect,colorMatrix) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.colorTransform(image,rect,colorMatrix); }; lime__$internal_graphics_ImageCanvasUtil.convertToCanvas = function(image,clear) { if(clear == null) { clear = false; } var buffer = image.buffer; if(buffer.__srcImage != null) { if(buffer.__srcCanvas == null) { lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,buffer.__srcImage.width,buffer.__srcImage.height); buffer.__srcContext.drawImage(buffer.__srcImage,0,0); } buffer.__srcImage = null; } else if(buffer.__srcCanvas == null && buffer.data != null) { image.set_transparent(true); lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,buffer.width,buffer.height); lime__$internal_graphics_ImageCanvasUtil.createImageData(image); buffer.__srcContext.putImageData(buffer.__srcImageData,0,0); } else if(image.type == lime_graphics_ImageType.DATA && buffer.__srcImageData != null && image.dirty) { buffer.__srcContext.putImageData(buffer.__srcImageData,0,0); image.dirty = false; } if(clear) { buffer.data = null; buffer.__srcImageData = null; } else if(buffer.data == null && buffer.__srcImageData != null) { buffer.data = buffer.__srcImageData.data; } image.type = lime_graphics_ImageType.CANVAS; }; lime__$internal_graphics_ImageCanvasUtil.convertToData = function(image,clear) { if(clear == null) { clear = false; } var buffer = image.buffer; if(buffer.__srcImage != null) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image); } if(buffer.__srcCanvas != null && buffer.data == null) { lime__$internal_graphics_ImageCanvasUtil.createImageData(image); if(image.type == lime_graphics_ImageType.CANVAS) { image.dirty = false; } } else if(image.type == lime_graphics_ImageType.CANVAS && buffer.__srcCanvas != null && image.dirty) { if(buffer.__srcImageData == null) { lime__$internal_graphics_ImageCanvasUtil.createImageData(image); } else { buffer.__srcImageData = buffer.__srcContext.getImageData(0,0,buffer.width,buffer.height); var elements = buffer.__srcImageData.data.buffer; var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } buffer.data = this1; } image.dirty = false; } if(clear) { image.buffer.__srcCanvas = null; image.buffer.__srcContext = null; } image.type = lime_graphics_ImageType.DATA; }; lime__$internal_graphics_ImageCanvasUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) { lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.copyChannel(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel); }; lime__$internal_graphics_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 = sourceImage.clone(); tempData.copyChannel(alphaImage,new lime_math_Rectangle(sourceRect.x + alphaPoint.x,sourceRect.y + 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__$internal_graphics_ImageCanvasUtil.convertToCanvas(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__$internal_graphics_ImageCanvasUtil.convertToCanvas(sourceImage); if(sourceImage.buffer.get_src() != null) { image.buffer.__srcContext.globalCompositeOperation = "source-over"; 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); } image.dirty = true; image.version++; }; lime__$internal_graphics_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"); } } }; lime__$internal_graphics_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 array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } buffer.data = this1; } }; lime__$internal_graphics_ImageCanvasUtil.fillRect = function(image,rect,color,format) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image); var r; var g; var b; var a; if(format == 1) { r = color >> 16 & 255; g = color >> 8 & 255; b = color & 255; a = image.get_transparent() ? color >> 24 & 255 : 255; } else { r = color >> 24 & 255; g = color >> 16 & 255; b = color >> 8 & 255; a = image.get_transparent() ? color & 255 : 255; } if(rect.x == 0 && rect.y == 0 && rect.width == image.width && rect.height == image.height) { if(image.get_transparent() && a == 0) { image.buffer.__srcCanvas.width = image.buffer.width; return; } } if(a < 255) { image.buffer.__srcContext.clearRect(rect.x + image.offsetX,rect.y + image.offsetY,rect.width + image.offsetX,rect.height + image.offsetY); } if(a > 0) { 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); } image.dirty = true; image.version++; }; lime__$internal_graphics_ImageCanvasUtil.floodFill = function(image,x,y,color,format) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.floodFill(image,x,y,color,format); }; lime__$internal_graphics_ImageCanvasUtil.getPixel = function(image,x,y,format) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); return lime__$internal_graphics_ImageDataUtil.getPixel(image,x,y,format); }; lime__$internal_graphics_ImageCanvasUtil.getPixel32 = function(image,x,y,format) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); return lime__$internal_graphics_ImageDataUtil.getPixel32(image,x,y,format); }; lime__$internal_graphics_ImageCanvasUtil.getPixels = function(image,rect,format) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); return lime__$internal_graphics_ImageDataUtil.getPixels(image,rect,format); }; lime__$internal_graphics_ImageCanvasUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.merge(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); }; lime__$internal_graphics_ImageCanvasUtil.resize = function(image,newWidth,newHeight) { var buffer = image.buffer; if(buffer.__srcCanvas == null) { lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,newWidth,newHeight); buffer.__srcContext.drawImage(buffer.get_src(),0,0,newWidth,newHeight); } else { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,true); var sourceCanvas = buffer.__srcCanvas; buffer.__srcCanvas = null; lime__$internal_graphics_ImageCanvasUtil.createCanvas(image,newWidth,newHeight); buffer.__srcContext.drawImage(sourceCanvas,0,0,newWidth,newHeight); } buffer.__srcImageData = null; buffer.data = null; image.dirty = true; image.version++; }; lime__$internal_graphics_ImageCanvasUtil.scroll = function(image,x,y) { if(x % image.width == 0 && y % image.height == 0) { return; } var copy = image.clone(); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,true); image.buffer.__srcContext.clearRect(x,y,image.width,image.height); image.buffer.__srcContext.drawImage(copy.get_src(),x,y); image.dirty = true; image.version++; }; lime__$internal_graphics_ImageCanvasUtil.setPixel = function(image,x,y,color,format) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.setPixel(image,x,y,color,format); }; lime__$internal_graphics_ImageCanvasUtil.setPixel32 = function(image,x,y,color,format) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.setPixel32(image,x,y,color,format); }; lime__$internal_graphics_ImageCanvasUtil.setPixels = function(image,rect,bytePointer,format,endian) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image); lime__$internal_graphics_ImageDataUtil.setPixels(image,rect,bytePointer,format,endian); }; lime__$internal_graphics_ImageCanvasUtil.sync = function(image,clear) { if(image == null) { return; } if(image.type == lime_graphics_ImageType.CANVAS && (image.buffer.__srcCanvas != null || image.buffer.data != null)) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image,clear); } else if(image.type == lime_graphics_ImageType.DATA) { lime__$internal_graphics_ImageCanvasUtil.convertToData(image,clear); } }; var lime__$internal_graphics_ImageDataUtil = function() { }; $hxClasses["lime._internal.graphics.ImageDataUtil"] = lime__$internal_graphics_ImageDataUtil; lime__$internal_graphics_ImageDataUtil.__name__ = "lime._internal.graphics.ImageDataUtil"; lime__$internal_graphics_ImageDataUtil.displaceMap = function(target,source,map,mapPoint,componentX,componentY,smooth) { var targetData = target.buffer.data; var sourceData = source.buffer.data; var mapData = map.buffer.data; var targetFormat = target.buffer.format; var sourceFormat = source.buffer.format; var mapFormat = map.buffer.format; var targetPremultiplied = target.get_premultiplied(); var sourcePremultiplied = source.get_premultiplied(); var mapPremultiplied = map.get_premultiplied(); var sourceView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(source); var mapView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(map); var row; var sourceOffset; var sourcePixel = 0; var mapPixel = 0; var targetPixel = 0; var mapPixelX; var mapPixelY; var mapPixelA; var s1 = 0; var s2 = 0; var s3 = 0; var s4 = 0; var mPointXFloor; var mPointYFloor; var disOffsetXFloor; var disOffsetYFloor; var disX; var disY; var _g = 0; var _g1 = sourceView.height; while(_g < _g1) { var y = _g++; row = sourceView.byteOffset + sourceView.stride * y; var _g2 = 0; var _g3 = sourceView.width; while(_g2 < _g3) { var x = _g2++; sourceOffset = row + x * 4; mPointXFloor = mapPoint.x | 0; mPointYFloor = mapPoint.y | 0; if(smooth) { var offset = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor + 1) + (x - mPointXFloor) * 4; var format = mapFormat; var premultiplied = mapPremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { case 0: s1 = (mapData[offset] & 255) << 24 | (mapData[offset + 1] & 255) << 16 | (mapData[offset + 2] & 255) << 8 | mapData[offset + 3] & 255; break; case 1: s1 = (mapData[offset + 1] & 255) << 24 | (mapData[offset + 2] & 255) << 16 | (mapData[offset + 3] & 255) << 8 | mapData[offset] & 255; break; case 2: s1 = (mapData[offset + 2] & 255) << 24 | (mapData[offset + 1] & 255) << 16 | (mapData[offset] & 255) << 8 | mapData[offset + 3] & 255; break; } if(premultiplied) { if((s1 & 255) != 0 && (s1 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s1 & 255); s1 = (lime_math_RGBA.__clamp[Math.round((s1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s1 & 255 & 255; } } var offset1 = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor) + (x - mPointXFloor + 1) * 4; var format1 = mapFormat; var premultiplied1 = mapPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { case 0: s2 = (mapData[offset1] & 255) << 24 | (mapData[offset1 + 1] & 255) << 16 | (mapData[offset1 + 2] & 255) << 8 | mapData[offset1 + 3] & 255; break; case 1: s2 = (mapData[offset1 + 1] & 255) << 24 | (mapData[offset1 + 2] & 255) << 16 | (mapData[offset1 + 3] & 255) << 8 | mapData[offset1] & 255; break; case 2: s2 = (mapData[offset1 + 2] & 255) << 24 | (mapData[offset1 + 1] & 255) << 16 | (mapData[offset1] & 255) << 8 | mapData[offset1 + 3] & 255; break; } if(premultiplied1) { if((s2 & 255) != 0 && (s2 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s2 & 255); s2 = (lime_math_RGBA.__clamp[Math.round((s2 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s2 & 255 & 255; } } var offset2 = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor + 1) + (x - mPointXFloor + 1) * 4; var format2 = mapFormat; var premultiplied2 = mapPremultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } switch(format2) { case 0: s3 = (mapData[offset2] & 255) << 24 | (mapData[offset2 + 1] & 255) << 16 | (mapData[offset2 + 2] & 255) << 8 | mapData[offset2 + 3] & 255; break; case 1: s3 = (mapData[offset2 + 1] & 255) << 24 | (mapData[offset2 + 2] & 255) << 16 | (mapData[offset2 + 3] & 255) << 8 | mapData[offset2] & 255; break; case 2: s3 = (mapData[offset2 + 2] & 255) << 24 | (mapData[offset2 + 1] & 255) << 16 | (mapData[offset2] & 255) << 8 | mapData[offset2 + 3] & 255; break; } if(premultiplied2) { if((s3 & 255) != 0 && (s3 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s3 & 255); s3 = (lime_math_RGBA.__clamp[Math.round((s3 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s3 & 255 & 255; } } var offset3 = sourceView.byteOffset + sourceView.stride * (y - mPointYFloor) + (x - mPointXFloor) * 4; var format3 = mapFormat; var premultiplied3 = mapPremultiplied; if(premultiplied3 == null) { premultiplied3 = false; } if(format3 == null) { format3 = 0; } switch(format3) { case 0: s4 = (mapData[offset3] & 255) << 24 | (mapData[offset3 + 1] & 255) << 16 | (mapData[offset3 + 2] & 255) << 8 | mapData[offset3 + 3] & 255; break; case 1: s4 = (mapData[offset3 + 1] & 255) << 24 | (mapData[offset3 + 2] & 255) << 16 | (mapData[offset3 + 3] & 255) << 8 | mapData[offset3] & 255; break; case 2: s4 = (mapData[offset3 + 2] & 255) << 24 | (mapData[offset3 + 1] & 255) << 16 | (mapData[offset3] & 255) << 8 | mapData[offset3 + 3] & 255; break; } if(premultiplied3) { if((s4 & 255) != 0 && (s4 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s4 & 255); s4 = (lime_math_RGBA.__clamp[Math.round((s4 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s4 & 255 & 255; } } mapPixel = lime__$internal_graphics_ImageDataUtil.bilinear(s1,s2,s3,s4,mapPoint.x - mPointXFloor,mapPoint.y - mPointYFloor); } else { var offset4 = mapView.byteOffset + mapView.stride * (y - mPointYFloor) + (x - mPointXFloor) * 4; var format4 = mapFormat; var premultiplied4 = mapPremultiplied; if(premultiplied4 == null) { premultiplied4 = false; } if(format4 == null) { format4 = 0; } switch(format4) { case 0: mapPixel = (mapData[offset4] & 255) << 24 | (mapData[offset4 + 1] & 255) << 16 | (mapData[offset4 + 2] & 255) << 8 | mapData[offset4 + 3] & 255; break; case 1: mapPixel = (mapData[offset4 + 1] & 255) << 24 | (mapData[offset4 + 2] & 255) << 16 | (mapData[offset4 + 3] & 255) << 8 | mapData[offset4] & 255; break; case 2: mapPixel = (mapData[offset4 + 2] & 255) << 24 | (mapData[offset4 + 1] & 255) << 16 | (mapData[offset4] & 255) << 8 | mapData[offset4 + 3] & 255; break; } if(premultiplied4) { if((mapPixel & 255) != 0 && (mapPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (mapPixel & 255); mapPixel = (lime_math_RGBA.__clamp[Math.round((mapPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((mapPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((mapPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | mapPixel & 255 & 255; } } } mapPixelA = (mapPixel & 255) / 255.0; mapPixelX = ((mapPixel >>> 24 & 255) - 128) / 255.0 * mapPixelA; mapPixelY = ((mapPixel >>> 16 & 255) - 128) / 255.0 * mapPixelA; disX = mapPixelX * componentX.x + mapPixelY * componentY.x; disY = mapPixelX * componentX.y + mapPixelY * componentY.y; disOffsetXFloor = Math.floor(disX * sourceView.width); disOffsetYFloor = Math.floor(disY * sourceView.height); if(smooth) { var offset5 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor + 1) + (x + disOffsetXFloor) * 4; var format5 = sourceFormat; var premultiplied5 = sourcePremultiplied; if(premultiplied5 == null) { premultiplied5 = false; } if(format5 == null) { format5 = 0; } switch(format5) { case 0: s1 = (sourceData[offset5] & 255) << 24 | (sourceData[offset5 + 1] & 255) << 16 | (sourceData[offset5 + 2] & 255) << 8 | sourceData[offset5 + 3] & 255; break; case 1: s1 = (sourceData[offset5 + 1] & 255) << 24 | (sourceData[offset5 + 2] & 255) << 16 | (sourceData[offset5 + 3] & 255) << 8 | sourceData[offset5] & 255; break; case 2: s1 = (sourceData[offset5 + 2] & 255) << 24 | (sourceData[offset5 + 1] & 255) << 16 | (sourceData[offset5] & 255) << 8 | sourceData[offset5 + 3] & 255; break; } if(premultiplied5) { if((s1 & 255) != 0 && (s1 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s1 & 255); s1 = (lime_math_RGBA.__clamp[Math.round((s1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s1 & 255 & 255; } } var offset6 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor) + (x + disOffsetXFloor + 1) * 4; var format6 = sourceFormat; var premultiplied6 = sourcePremultiplied; if(premultiplied6 == null) { premultiplied6 = false; } if(format6 == null) { format6 = 0; } switch(format6) { case 0: s2 = (sourceData[offset6] & 255) << 24 | (sourceData[offset6 + 1] & 255) << 16 | (sourceData[offset6 + 2] & 255) << 8 | sourceData[offset6 + 3] & 255; break; case 1: s2 = (sourceData[offset6 + 1] & 255) << 24 | (sourceData[offset6 + 2] & 255) << 16 | (sourceData[offset6 + 3] & 255) << 8 | sourceData[offset6] & 255; break; case 2: s2 = (sourceData[offset6 + 2] & 255) << 24 | (sourceData[offset6 + 1] & 255) << 16 | (sourceData[offset6] & 255) << 8 | sourceData[offset6 + 3] & 255; break; } if(premultiplied6) { if((s2 & 255) != 0 && (s2 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s2 & 255); s2 = (lime_math_RGBA.__clamp[Math.round((s2 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s2 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s2 & 255 & 255; } } var offset7 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor + 1) + (x + disOffsetXFloor + 1) * 4; var format7 = sourceFormat; var premultiplied7 = sourcePremultiplied; if(premultiplied7 == null) { premultiplied7 = false; } if(format7 == null) { format7 = 0; } switch(format7) { case 0: s3 = (sourceData[offset7] & 255) << 24 | (sourceData[offset7 + 1] & 255) << 16 | (sourceData[offset7 + 2] & 255) << 8 | sourceData[offset7 + 3] & 255; break; case 1: s3 = (sourceData[offset7 + 1] & 255) << 24 | (sourceData[offset7 + 2] & 255) << 16 | (sourceData[offset7 + 3] & 255) << 8 | sourceData[offset7] & 255; break; case 2: s3 = (sourceData[offset7 + 2] & 255) << 24 | (sourceData[offset7 + 1] & 255) << 16 | (sourceData[offset7] & 255) << 8 | sourceData[offset7 + 3] & 255; break; } if(premultiplied7) { if((s3 & 255) != 0 && (s3 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s3 & 255); s3 = (lime_math_RGBA.__clamp[Math.round((s3 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s3 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s3 & 255 & 255; } } var offset8 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor) + (x + disOffsetXFloor) * 4; var format8 = sourceFormat; var premultiplied8 = sourcePremultiplied; if(premultiplied8 == null) { premultiplied8 = false; } if(format8 == null) { format8 = 0; } switch(format8) { case 0: s4 = (sourceData[offset8] & 255) << 24 | (sourceData[offset8 + 1] & 255) << 16 | (sourceData[offset8 + 2] & 255) << 8 | sourceData[offset8 + 3] & 255; break; case 1: s4 = (sourceData[offset8 + 1] & 255) << 24 | (sourceData[offset8 + 2] & 255) << 16 | (sourceData[offset8 + 3] & 255) << 8 | sourceData[offset8] & 255; break; case 2: s4 = (sourceData[offset8 + 2] & 255) << 24 | (sourceData[offset8 + 1] & 255) << 16 | (sourceData[offset8] & 255) << 8 | sourceData[offset8 + 3] & 255; break; } if(premultiplied8) { if((s4 & 255) != 0 && (s4 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (s4 & 255); s4 = (lime_math_RGBA.__clamp[Math.round((s4 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((s4 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | s4 & 255 & 255; } } sourcePixel = lime__$internal_graphics_ImageDataUtil.bilinear(s1,s2,s3,s4,disX * sourceView.width - disOffsetXFloor,disY * sourceView.height - disOffsetYFloor); } else { var offset9 = sourceView.byteOffset + sourceView.stride * (y + disOffsetYFloor) + (x + disOffsetXFloor) * 4; var format9 = sourceFormat; var premultiplied9 = sourcePremultiplied; if(premultiplied9 == null) { premultiplied9 = false; } if(format9 == null) { format9 = 0; } switch(format9) { case 0: sourcePixel = (sourceData[offset9] & 255) << 24 | (sourceData[offset9 + 1] & 255) << 16 | (sourceData[offset9 + 2] & 255) << 8 | sourceData[offset9 + 3] & 255; break; case 1: sourcePixel = (sourceData[offset9 + 1] & 255) << 24 | (sourceData[offset9 + 2] & 255) << 16 | (sourceData[offset9 + 3] & 255) << 8 | sourceData[offset9] & 255; break; case 2: sourcePixel = (sourceData[offset9 + 2] & 255) << 24 | (sourceData[offset9 + 1] & 255) << 16 | (sourceData[offset9] & 255) << 8 | sourceData[offset9 + 3] & 255; break; } if(premultiplied9) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255); sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255; } } } var format10 = targetFormat; var premultiplied10 = targetPremultiplied; if(premultiplied10 == null) { premultiplied10 = false; } if(format10 == null) { format10 = 0; } if(premultiplied10) { if((sourcePixel & 255) == 0) { if(sourcePixel != 0) { sourcePixel = 0; } } else if((sourcePixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[sourcePixel & 255]; sourcePixel = ((sourcePixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255; } } switch(format10) { case 0: targetData[sourceOffset] = sourcePixel >>> 24 & 255; targetData[sourceOffset + 1] = sourcePixel >>> 16 & 255; targetData[sourceOffset + 2] = sourcePixel >>> 8 & 255; targetData[sourceOffset + 3] = sourcePixel & 255; break; case 1: targetData[sourceOffset] = sourcePixel & 255; targetData[sourceOffset + 1] = sourcePixel >>> 24 & 255; targetData[sourceOffset + 2] = sourcePixel >>> 16 & 255; targetData[sourceOffset + 3] = sourcePixel >>> 8 & 255; break; case 2: targetData[sourceOffset] = sourcePixel >>> 8 & 255; targetData[sourceOffset + 1] = sourcePixel >>> 16 & 255; targetData[sourceOffset + 2] = sourcePixel >>> 24 & 255; targetData[sourceOffset + 3] = sourcePixel & 255; break; } } } target.dirty = true; target.version++; }; lime__$internal_graphics_ImageDataUtil.bilinear = function(s1,s2,s3,s4,su,sv) { return lime__$internal_graphics_ImageDataUtil.lerpRGBA(lime__$internal_graphics_ImageDataUtil.lerpRGBA(s4,s2,su),lime__$internal_graphics_ImageDataUtil.lerpRGBA(s1,s3,su),sv); }; lime__$internal_graphics_ImageDataUtil.lerpRGBA = function(v0,v1,x) { var result = 0; var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 >>> 24 & 255,v1 >>> 24 & 255,x)); result = (value & 255) << 24 | (result >>> 16 & 255 & 255) << 16 | (result >>> 8 & 255 & 255) << 8 | result & 255 & 255; var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 >>> 16 & 255,v1 >>> 16 & 255,x)); result = (result >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (result >>> 8 & 255 & 255) << 8 | result & 255 & 255; var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 >>> 8 & 255,v1 >>> 8 & 255,x)); result = (result >>> 24 & 255 & 255) << 24 | (result >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | result & 255 & 255; var value = Math.floor(lime__$internal_graphics_ImageDataUtil.lerp(v0 & 255,v1 & 255,x)); result = (result >>> 24 & 255 & 255) << 24 | (result >>> 16 & 255 & 255) << 16 | (result >>> 8 & 255 & 255) << 8 | value & 255; return result; }; lime__$internal_graphics_ImageDataUtil.lerp4f = function(v0,v1,x) { return new lime_math_Vector4(lime__$internal_graphics_ImageDataUtil.lerp(v0.x,v1.x,x),lime__$internal_graphics_ImageDataUtil.lerp(v0.y,v1.y,x),lime__$internal_graphics_ImageDataUtil.lerp(v0.z,v1.z,x),lime__$internal_graphics_ImageDataUtil.lerp(v0.w,v1.w,x)); }; lime__$internal_graphics_ImageDataUtil.lerp = function(v0,v1,x) { return (1.0 - x) * v0 + x * v1; }; lime__$internal_graphics_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__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect); var alphaTable = lime_math_ColorMatrix.getAlphaTable(colorMatrix); var redTable = lime_math_ColorMatrix.getRedTable(colorMatrix); var greenTable = lime_math_ColorMatrix.getGreenTable(colorMatrix); var blueTable = lime_math_ColorMatrix.getBlueTable(colorMatrix); var row; var offset; var pixel = 0; var _g = 0; var _g1 = dataView.height; while(_g < _g1) { var y = _g++; row = dataView.byteOffset + dataView.stride * y; var _g2 = 0; var _g3 = dataView.width; while(_g2 < _g3) { var x = _g2++; offset = row + x * 4; var format1 = format; var premultiplied1 = premultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied1) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (pixel & 255); pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 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; var format2 = format; var premultiplied2 = premultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((pixel & 255) == 0) { if(pixel != 0) { pixel = 0; } } else if((pixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255]; pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format2) { 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; 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; } } } image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) { var destIdx; switch(destChannel._hx_index) { case 0: destIdx = 0; break; case 1: destIdx = 1; break; case 2: destIdx = 2; break; case 3: destIdx = 3; break; } var srcIdx; switch(sourceChannel._hx_index) { 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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime__$internal_graphics__$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 = 0; var destPixel = 0; var value = 0; var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; srcPosition = srcView.byteOffset + srcView.stride * y; destPosition = destView.byteOffset + destView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = srcFormat; var premultiplied = srcPremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: srcPixel = (srcData[srcPosition + 2] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition] & 255) << 8 | srcData[srcPosition + 3] & 255; break; } if(premultiplied) { if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (srcPixel & 255); srcPixel = (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | srcPixel & 255 & 255; } } var format1 = destFormat; var premultiplied1 = destPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; } if(premultiplied1) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (destPixel & 255); destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 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; break; case 1: destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255; break; case 2: destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | destPixel & 255 & 255; break; case 3: destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value & 255; break; } var format2 = destFormat; var premultiplied2 = destPremultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((destPixel & 255) == 0) { if(destPixel != 0) { destPixel = 0; } } else if((destPixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255]; destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(format2) { 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; 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; } srcPosition += 4; destPosition += 4; } } image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) { if(mergeAlpha == null) { mergeAlpha = false; } if(image.width == sourceImage.width && image.height == sourceImage.height && sourceRect.width == sourceImage.width && sourceRect.height == sourceImage.height && sourceRect.x == 0 && sourceRect.y == 0 && destPoint.x == 0 && destPoint.y == 0 && alphaImage == null && alphaPoint == null && mergeAlpha == false && image.get_format() == sourceImage.get_format()) { image.buffer.data.set(sourceImage.buffer.data); } else { var sourceData = sourceImage.buffer.data; var destData = image.buffer.data; if(sourceData == null || destData == null) { return; } var sourceView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destRect = new lime_math_Rectangle(destPoint.x,destPoint.y,sourceView.width,sourceView.height); var destView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,destRect); var sourceFormat = sourceImage.buffer.format; var destFormat = image.buffer.format; var sourcePosition; var destPosition; var sourceAlpha; var destAlpha; var oneMinusSourceAlpha; var blendAlpha; var sourcePixel = 0; var destPixel = 0; var sourcePremultiplied = sourceImage.buffer.premultiplied; var destPremultiplied = image.buffer.premultiplied; var sourceBytesPerPixel = sourceImage.buffer.bitsPerPixel / 8 | 0; var destBytesPerPixel = image.buffer.bitsPerPixel / 8 | 0; var useAlphaImage = alphaImage != null && alphaImage.get_transparent(); var blend = mergeAlpha || useAlphaImage && !image.get_transparent() || !mergeAlpha && !image.get_transparent() && sourceImage.get_transparent(); if(!useAlphaImage) { if(blend) { var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; sourcePosition = sourceView.byteOffset + sourceView.stride * y; destPosition = destView.byteOffset + destView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = sourceFormat; var premultiplied = sourcePremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; } if(premultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255); sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255; } } var format1 = destFormat; var premultiplied1 = destPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; } if(premultiplied1) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (destPixel & 255); destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 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 = lime_math_RGBA.__clamp[Math.round(((sourcePixel >>> 24 & 255) * sourceAlpha + (destPixel >>> 24 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)]; destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255; var value1 = lime_math_RGBA.__clamp[Math.round(((sourcePixel >>> 16 & 255) * sourceAlpha + (destPixel >>> 16 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)]; destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255; var value2 = lime_math_RGBA.__clamp[Math.round(((sourcePixel >>> 8 & 255) * sourceAlpha + (destPixel >>> 8 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)]; destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255; var value3 = lime_math_RGBA.__clamp[Math.round(blendAlpha * 255.0)]; destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255; } var format2 = destFormat; var premultiplied2 = destPremultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((destPixel & 255) == 0) { if(destPixel != 0) { destPixel = 0; } } else if((destPixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255]; destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(format2) { 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; 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; } sourcePosition += 4; destPosition += 4; } } } else if(sourceFormat == destFormat && sourcePremultiplied == destPremultiplied && sourceBytesPerPixel == destBytesPerPixel) { var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; sourcePosition = sourceView.byteOffset + sourceView.stride * y; destPosition = destView.byteOffset + destView.stride * y; destData.set(sourceData.subarray(sourcePosition,sourcePosition + destView.width * destBytesPerPixel),destPosition); } } else { var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; sourcePosition = sourceView.byteOffset + sourceView.stride * y; destPosition = destView.byteOffset + destView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = sourceFormat; var premultiplied = sourcePremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; } if(premultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255); sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255; } } var format1 = destFormat; var premultiplied1 = destPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } if(premultiplied1) { if((sourcePixel & 255) == 0) { if(sourcePixel != 0) { sourcePixel = 0; } } else if((sourcePixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[sourcePixel & 255]; sourcePixel = ((sourcePixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255; } } switch(format1) { 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; 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; } sourcePosition += 4; destPosition += 4; } } } } else { var alphaData = alphaImage.buffer.data; var alphaFormat = alphaImage.buffer.format; var alphaPosition; var alphaPixel = 0; var alphaView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(alphaImage,new lime_math_Rectangle(sourceView.x + (alphaPoint == null ? 0 : alphaPoint.x),sourceView.y + (alphaPoint == null ? 0 : alphaPoint.y),sourceView.width,sourceView.height)); destView.clip(destPoint.x | 0,destPoint.y | 0,alphaView.width,alphaView.height); if(blend) { var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; sourcePosition = sourceView.byteOffset + sourceView.stride * y; destPosition = destView.byteOffset + destView.stride * y; alphaPosition = alphaView.byteOffset + alphaView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = sourceFormat; var premultiplied = sourcePremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; } if(premultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255); sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255; } } var format1 = destFormat; var premultiplied1 = destPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; } if(premultiplied1) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (destPixel & 255); destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | destPixel & 255 & 255; } } var format2 = alphaFormat; var premultiplied2 = false; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } switch(format2) { 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; case 2: alphaPixel = (alphaData[alphaPosition + 2] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition] & 255) << 8 | alphaData[alphaPosition + 3] & 255; break; } if(premultiplied2) { if((alphaPixel & 255) != 0 && (alphaPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (alphaPixel & 255); alphaPixel = (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | alphaPixel & 255 & 255; } } sourceAlpha = (alphaPixel & 255) / 255.0 * ((sourcePixel & 255) / 255.0); if(sourceAlpha > 0) { destAlpha = (destPixel & 255) / 255.0; oneMinusSourceAlpha = 1 - sourceAlpha; blendAlpha = sourceAlpha + destAlpha * oneMinusSourceAlpha; var value = lime_math_RGBA.__clamp[Math.round(((sourcePixel >>> 24 & 255) * sourceAlpha + (destPixel >>> 24 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)]; destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255; var value1 = lime_math_RGBA.__clamp[Math.round(((sourcePixel >>> 16 & 255) * sourceAlpha + (destPixel >>> 16 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)]; destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255; var value2 = lime_math_RGBA.__clamp[Math.round(((sourcePixel >>> 8 & 255) * sourceAlpha + (destPixel >>> 8 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)]; destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255; var value3 = lime_math_RGBA.__clamp[Math.round(blendAlpha * 255.0)]; destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255; var format3 = destFormat; var premultiplied3 = destPremultiplied; if(premultiplied3 == null) { premultiplied3 = false; } if(format3 == null) { format3 = 0; } if(premultiplied3) { if((destPixel & 255) == 0) { if(destPixel != 0) { destPixel = 0; } } else if((destPixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255]; destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(format3) { 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; 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; } } sourcePosition += 4; destPosition += 4; alphaPosition += 4; } } } else { var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; sourcePosition = sourceView.byteOffset + sourceView.stride * y; destPosition = destView.byteOffset + destView.stride * y; alphaPosition = alphaView.byteOffset + alphaView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = sourceFormat; var premultiplied = sourcePremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; } if(premultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255); sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255; } } var format1 = alphaFormat; var premultiplied1 = false; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: alphaPixel = (alphaData[alphaPosition + 2] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition] & 255) << 8 | alphaData[alphaPosition + 3] & 255; break; } if(premultiplied1) { if((alphaPixel & 255) != 0 && (alphaPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (alphaPixel & 255); alphaPixel = (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((alphaPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | alphaPixel & 255 & 255; } } var value = Math.round((sourcePixel & 255) * ((alphaPixel & 255) / 255)); sourcePixel = (sourcePixel >>> 24 & 255 & 255) << 24 | (sourcePixel >>> 16 & 255 & 255) << 16 | (sourcePixel >>> 8 & 255 & 255) << 8 | value & 255; var format2 = destFormat; var premultiplied2 = destPremultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((sourcePixel & 255) == 0) { if(sourcePixel != 0) { sourcePixel = 0; } } else if((sourcePixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[sourcePixel & 255]; sourcePixel = ((sourcePixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255; } } switch(format2) { 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; 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; } sourcePosition += 4; destPosition += 4; alphaPosition += 4; } } } } } image.dirty = true; image.version++; }; lime__$internal_graphics_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 rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; fillColor = rgba; 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; } var data = image.buffer.data; if(data == null) { return; } var format = image.buffer.format; var premultiplied = image.buffer.premultiplied; if(premultiplied) { if((fillColor & 255) == 0) { if(fillColor != 0) { fillColor = 0; } } else if((fillColor & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255]; fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255; } } var dataView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect); var row; var _g = 0; var _g1 = dataView.height; while(_g < _g1) { var y = _g++; row = dataView.byteOffset + dataView.stride * y; var _g2 = 0; var _g3 = dataView.width; while(_g2 < _g3) { var x = _g2++; var offset = row + x * 4; var format1 = format; var premultiplied = false; if(premultiplied == null) { premultiplied = false; } if(format1 == null) { format1 = 0; } if(premultiplied) { if((fillColor & 255) == 0) { if(fillColor != 0) { fillColor = 0; } } else if((fillColor & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255]; fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255; } } switch(format1) { 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; 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; } } } image.dirty = true; image.version++; }; lime__$internal_graphics_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 format = image.buffer.format; var premultiplied = image.buffer.premultiplied; var fillColor = color; var hitColor = 0; var offset = (y + image.offsetY) * (image.buffer.width * 4) + (x + image.offsetX) * 4; var format1 = format; var premultiplied1 = premultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: hitColor = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied1) { if((hitColor & 255) != 0 && (hitColor & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (hitColor & 255); hitColor = (lime_math_RGBA.__clamp[Math.round((hitColor >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((hitColor >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((hitColor >>> 8 & 255) * lime_math_RGBA.unmult)] & 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; hitColor = (hitColor >>> 24 & 255 & 255) << 24 | (hitColor >>> 16 & 255 & 255) << 16 | (hitColor >>> 8 & 255 & 255) << 8 | 255; } if(fillColor == hitColor) { return; } if(premultiplied) { if((fillColor & 255) == 0) { if(fillColor != 0) { fillColor = 0; } } else if((fillColor & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255]; fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255; } } 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 = 0; 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; var format1 = format; var premultiplied1 = premultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: readColor = (data[nextPointOffset + 2] & 255) << 24 | (data[nextPointOffset + 1] & 255) << 16 | (data[nextPointOffset] & 255) << 8 | data[nextPointOffset + 3] & 255; break; } if(premultiplied1) { if((readColor & 255) != 0 && (readColor & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (readColor & 255); readColor = (lime_math_RGBA.__clamp[Math.round((readColor >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((readColor >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((readColor >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | readColor & 255 & 255; } } if(readColor == hitColor) { var format2 = format; var premultiplied2 = false; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((fillColor & 255) == 0) { if(fillColor != 0) { fillColor = 0; } } else if((fillColor & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[fillColor & 255]; fillColor = ((fillColor >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | fillColor & 255 & 255; } } switch(format2) { 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; 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; } queue.push(nextPointX); queue.push(nextPointY); } } } image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.gaussianBlur = function(image,sourceImage,sourceRect,destPoint,blurX,blurY,quality,strength,color) { if(strength == null) { strength = 1; } if(quality == null) { quality = 1; } if(blurY == null) { blurY = 4; } if(blurX == null) { blurX = 4; } var imagePremultiplied = image.get_premultiplied(); if(imagePremultiplied) { image.set_premultiplied(false); } lime__$internal_graphics_StackBlur.blur(image,sourceImage,sourceRect,destPoint,blurX,blurY,quality); image.dirty = true; image.version++; if(imagePremultiplied) { image.set_premultiplied(true); } return image; }; lime__$internal_graphics_ImageDataUtil.getColorBoundsRect = function(image,mask,color,findColor,format) { 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 argb = mask; var rgba = 0; rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255; _mask = rgba; break; case 2: var bgra = color; var rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; _color = rgba; var bgra = mask; var rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; _mask = rgba; 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; _mask = (_mask >>> 24 & 255 & 255) << 24 | (_mask >>> 16 & 255 & 255) << 16 | (_mask >>> 8 & 255 & 255) << 8 | 255; } var pixel; var hit; var _g = 0; var _g1 = image.width; while(_g < _g1) { var x = _g++; hit = false; var _g2 = 0; var _g3 = image.height; while(_g2 < _g3) { var y = _g2++; pixel = image.getPixel32(x,y,0); hit = findColor ? (pixel & _mask) == _color : (pixel & _mask) != _color; if(hit) { if(x < left) { left = x; } break; } } if(hit) { break; } } var ix; var _g = 0; var _g1 = image.width; while(_g < _g1) { var x = _g++; ix = image.width - 1 - x; hit = false; var _g2 = 0; var _g3 = image.height; while(_g2 < _g3) { var y = _g2++; pixel = image.getPixel32(ix,y,0); hit = findColor ? (pixel & _mask) == _color : (pixel & _mask) != _color; if(hit) { if(ix > right) { right = ix; } break; } } if(hit) { break; } } var _g = 0; var _g1 = image.height; while(_g < _g1) { var y = _g++; hit = false; var _g2 = 0; var _g3 = image.width; while(_g2 < _g3) { var x = _g2++; pixel = image.getPixel32(x,y,0); hit = findColor ? (pixel & _mask) == _color : (pixel & _mask) != _color; if(hit) { if(y < top) { top = y; } break; } } if(hit) { break; } } var iy; var _g = 0; var _g1 = image.height; while(_g < _g1) { var y = _g++; iy = image.height - 1 - y; hit = false; var _g2 = 0; var _g3 = image.width; while(_g2 < _g3) { var x = _g2++; pixel = image.getPixel32(x,iy,0); hit = findColor ? (pixel & _mask) == _color : (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__$internal_graphics_ImageDataUtil.getPixel = function(image,x,y,format) { var pixel = 0; var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; var format1 = image.buffer.format; var premultiplied = image.buffer.premultiplied; if(premultiplied == null) { premultiplied = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (pixel & 255); pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | pixel & 255 & 255; } } pixel = (pixel >>> 24 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 8 & 255 & 255) << 8 | 0; switch(format) { case 1: var argb = 0; argb = (pixel & 255 & 255) << 24 | (pixel >>> 24 & 255 & 255) << 16 | (pixel >>> 16 & 255 & 255) << 8 | pixel >>> 8 & 255 & 255; return argb; case 2: var bgra = 0; bgra = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255; return bgra; default: return pixel; } }; lime__$internal_graphics_ImageDataUtil.getPixel32 = function(image,x,y,format) { var pixel = 0; var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; var format1 = image.buffer.format; var premultiplied = image.buffer.premultiplied; if(premultiplied == null) { premultiplied = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (pixel & 255); pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | pixel & 255 & 255; } } switch(format) { case 1: var argb = 0; argb = (pixel & 255 & 255) << 24 | (pixel >>> 24 & 255 & 255) << 16 | (pixel >>> 16 & 255 & 255) << 8 | pixel >>> 8 & 255 & 255; return argb; case 2: var bgra = 0; bgra = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255; return bgra; default: return pixel; } }; lime__$internal_graphics_ImageDataUtil.getPixels = function(image,rect,format) { if(image.buffer.data == null) { return null; } var length = rect.width * rect.height | 0; var bytes = new haxe_io_Bytes(new ArrayBuffer(length * 4)); var data = image.buffer.data; var sourceFormat = image.buffer.format; var premultiplied = image.buffer.premultiplied; var dataView = new lime__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect); var position; var argb = 0; var bgra = 0; var pixel = 0; var destPosition = 0; var _g = 0; var _g1 = dataView.height; while(_g < _g1) { var y = _g++; position = dataView.byteOffset + dataView.stride * y; var _g2 = 0; var _g3 = dataView.width; while(_g2 < _g3) { var x = _g2++; var format1 = sourceFormat; var premultiplied1 = premultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: pixel = (data[position + 2] & 255) << 24 | (data[position + 1] & 255) << 16 | (data[position] & 255) << 8 | data[position + 3] & 255; break; } if(premultiplied1) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (pixel & 255); pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 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.b[destPosition++] = pixel >>> 24 & 255 & 255; bytes.b[destPosition++] = pixel >>> 16 & 255 & 255; bytes.b[destPosition++] = pixel >>> 8 & 255 & 255; bytes.b[destPosition++] = pixel & 255 & 255; position += 4; } } return bytes; }; lime__$internal_graphics_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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime__$internal_graphics__$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 = 0; var destPixel = 0; var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; sourcePosition = sourceView.byteOffset + sourceView.stride * y; destPosition = destView.byteOffset + destView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = sourceFormat; var premultiplied = sourcePremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; } if(premultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (sourcePixel & 255); sourcePixel = (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((sourcePixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | sourcePixel & 255 & 255; } } var format1 = destFormat; var premultiplied1 = destPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; } if(premultiplied1) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (destPixel & 255); destPixel = (lime_math_RGBA.__clamp[Math.round((destPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((destPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 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; 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; 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; 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; var format2 = destFormat; var premultiplied2 = destPremultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((destPixel & 255) == 0) { if(destPixel != 0) { destPixel = 0; } } else if((destPixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[destPixel & 255]; destPixel = ((destPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(format2) { 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; 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; } sourcePosition += 4; destPosition += 4; } } image.dirty = true; image.version++; }; lime__$internal_graphics_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 = 0; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; var offset = i * 4; var format1 = format; var premultiplied = false; if(premultiplied == null) { premultiplied = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (pixel & 255); pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | pixel & 255 & 255; } } var offset1 = i * 4; var format2 = format; var premultiplied1 = true; if(premultiplied1 == null) { premultiplied1 = false; } if(format2 == null) { format2 = 0; } if(premultiplied1) { if((pixel & 255) == 0) { if(pixel != 0) { pixel = 0; } } else if((pixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255]; pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format2) { 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; 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; } } image.buffer.premultiplied = true; image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.resize = function(image,newWidth,newHeight) { var buffer = image.buffer; if(buffer.width == newWidth && buffer.height == newHeight) { return; } var elements = newWidth * newHeight * 4; var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } var newBuffer = new lime_graphics_ImageBuffer(this1,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; var _g1 = newHeight; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = newWidth; while(_g2 < _g3) { var x = _g2++; 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; sourceIndexX = sourceX < imageWidth - 1 ? sourceIndex + 4 : sourceIndex; sourceIndexY = sourceY < imageHeight - 1 ? sourceIndex + imageWidth * 4 : sourceIndex; sourceIndexXY = sourceIndexX != sourceIndex ? sourceIndexY + 4 : sourceIndexY; index = (y * newWidth + x) * 4; uRatio = u - sourceX; vRatio = v - sourceY; uOpposite = 1 - uRatio; vOpposite = 1 - vRatio; newData[index] = (UInt.toFloat(data[sourceIndex]) * uOpposite + UInt.toFloat(data[sourceIndexX]) * uRatio) * vOpposite + (UInt.toFloat(data[sourceIndexY]) * uOpposite + UInt.toFloat(data[sourceIndexXY]) * uRatio) * vRatio | 0; newData[index + 1] = (UInt.toFloat(data[sourceIndex + 1]) * uOpposite + UInt.toFloat(data[sourceIndexX + 1]) * uRatio) * vOpposite + (UInt.toFloat(data[sourceIndexY + 1]) * uOpposite + UInt.toFloat(data[sourceIndexXY + 1]) * uRatio) * vRatio | 0; newData[index + 2] = (UInt.toFloat(data[sourceIndex + 2]) * uOpposite + UInt.toFloat(data[sourceIndexX + 2]) * uRatio) * vOpposite + (UInt.toFloat(data[sourceIndexY + 2]) * uOpposite + UInt.toFloat(data[sourceIndexXY + 2]) * uRatio) * vRatio | 0; 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; buffer.__srcImage = null; buffer.__srcImageData = null; buffer.__srcCanvas = null; buffer.__srcContext = null; image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.resizeBuffer = function(image,newWidth,newHeight) { var buffer = image.buffer; var data = image.get_data(); var elements = newWidth * newHeight * 4; var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } var newData = this1; var sourceIndex; var index; var _g = 0; var _g1 = buffer.height; while(_g < _g1) { var y = _g++; var _g2 = 0; var _g3 = buffer.width; while(_g2 < _g3) { var x = _g2++; 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; buffer.__srcImage = null; buffer.__srcImageData = null; buffer.__srcCanvas = null; buffer.__srcContext = null; image.dirty = true; image.version++; }; lime__$internal_graphics_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; switch(image.get_format()) { 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 _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; 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; image.version++; }; lime__$internal_graphics_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 rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; pixel = rgba; 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; var format = image.buffer.format; var premultiplied = image.buffer.premultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: source = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((source & 255) != 0 && (source & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (source & 255); source = (lime_math_RGBA.__clamp[Math.round((source >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((source >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((source >>> 8 & 255) * lime_math_RGBA.unmult)] & 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; var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; var format = image.buffer.format; var premultiplied = image.buffer.premultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } if(premultiplied) { if((pixel & 255) == 0) { if(pixel != 0) { pixel = 0; } } else if((pixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255]; pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format) { 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; 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; } image.dirty = true; image.version++; }; lime__$internal_graphics_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 rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; pixel = rgba; 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; } var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; var format = image.buffer.format; var premultiplied = image.buffer.premultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } if(premultiplied) { if((pixel & 255) == 0) { if(pixel != 0) { pixel = 0; } } else if((pixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255]; pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format) { 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; 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; } image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.setPixels = function(image,rect,bytePointer,format,endian) { 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__$internal_graphics__$ImageDataUtil_ImageDataView(image,rect); var row; var color; var pixel; var transparent = image.get_transparent(); var bytes = bytePointer.bytes; var dataPosition = bytePointer.offset; var littleEndian = endian != lime_system_Endian.BIG_ENDIAN; var _g = 0; var _g1 = dataView.height; while(_g < _g1) { var y = _g++; row = dataView.byteOffset + dataView.stride * y; var _g2 = 0; var _g3 = dataView.width; while(_g2 < _g3) { var x = _g2++; if(littleEndian) { color = bytes.getInt32(dataPosition); } else { 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; } var offset = row + x * 4; var format1 = sourceFormat; var premultiplied1 = premultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } if(premultiplied1) { if((pixel & 255) == 0) { if(pixel != 0) { pixel = 0; } } else if((pixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255]; pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format1) { 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; 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; } } } image.dirty = true; image.version++; }; lime__$internal_graphics_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 argb = mask; var rgba = 0; rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255; _mask = rgba; var argb = threshold; var rgba = 0; rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255; _threshold = rgba; break; case 2: var bgra = color; var rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; _color = rgba; var bgra = mask; var rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; _mask = rgba; var bgra = threshold; var rgba = 0; rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255; _threshold = rgba; break; default: _color = color; _mask = mask; _threshold = threshold; } var _operation; switch(operation) { case "!=": _operation = 0; break; case "<": _operation = 2; break; case "<=": _operation = 3; break; case "==": _operation = 1; 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__$internal_graphics__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime__$internal_graphics__$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 = 0; var destPixel = 0; var pixelMask; var test; var value; var _g = 0; var _g1 = destView.height; while(_g < _g1) { var y = _g++; srcPosition = srcView.byteOffset + srcView.stride * y; destPosition = destView.byteOffset + destView.stride * y; var _g2 = 0; var _g3 = destView.width; while(_g2 < _g3) { var x = _g2++; var format = srcFormat; var premultiplied = srcPremultiplied; if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: srcPixel = (srcData[srcPosition + 2] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition] & 255) << 8 | srcData[srcPosition + 3] & 255; break; } if(premultiplied) { if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (srcPixel & 255); srcPixel = (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((srcPixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | srcPixel & 255 & 255; } } pixelMask = srcPixel & _mask; var tmp1 = pixelMask >>> 24 & 255; var tmp2 = _threshold >>> 24 & 255; if(tmp1 != tmp2) { value = UInt.gt(tmp1,tmp2) ? 1 : -1; } else { tmp1 = pixelMask >>> 16 & 255; tmp2 = _threshold >>> 16 & 255; if(tmp1 != tmp2) { value = UInt.gt(tmp1,tmp2) ? 1 : -1; } else { tmp1 = pixelMask >>> 8 & 255; tmp2 = _threshold >>> 8 & 255; if(tmp1 != tmp2) { value = UInt.gt(tmp1,tmp2) ? 1 : -1; } else { tmp1 = pixelMask & 255; tmp2 = _threshold & 255; value = tmp1 != tmp2 ? UInt.gt(tmp1,tmp2) ? 1 : -1 : 0; } } } 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) { var format1 = destFormat; var premultiplied1 = destPremultiplied; if(premultiplied1 == null) { premultiplied1 = false; } if(format1 == null) { format1 = 0; } if(premultiplied1) { if((_color & 255) == 0) { if(_color != 0) { _color = 0; } } else if((_color & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[_color & 255]; _color = ((_color >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((_color >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((_color >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | _color & 255 & 255; } } switch(format1) { 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; 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; } ++hits; } else if(copySource) { var format2 = destFormat; var premultiplied2 = destPremultiplied; if(premultiplied2 == null) { premultiplied2 = false; } if(format2 == null) { format2 = 0; } if(premultiplied2) { if((srcPixel & 255) == 0) { if(srcPixel != 0) { srcPixel = 0; } } else if((srcPixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[srcPixel & 255]; srcPixel = ((srcPixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((srcPixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((srcPixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | srcPixel & 255 & 255; } } switch(format2) { 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; 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; } } srcPosition += 4; destPosition += 4; } } if(hits > 0) { image.dirty = true; image.version++; } return hits; }; lime__$internal_graphics_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 = 0; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; var offset = i * 4; var format1 = format; var premultiplied = true; if(premultiplied == null) { premultiplied = false; } if(format1 == null) { format1 = 0; } switch(format1) { 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; case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (pixel & 255); pixel = (lime_math_RGBA.__clamp[Math.round((pixel >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((pixel >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | pixel & 255 & 255; } } var offset1 = i * 4; var format2 = format; var premultiplied1 = false; if(premultiplied1 == null) { premultiplied1 = false; } if(format2 == null) { format2 = 0; } if(premultiplied1) { if((pixel & 255) == 0) { if(pixel != 0) { pixel = 0; } } else if((pixel & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[pixel & 255]; pixel = ((pixel >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format2) { 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; 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; } } image.buffer.premultiplied = false; image.dirty = true; image.version++; }; lime__$internal_graphics_ImageDataUtil.__boxBlur = function(imgA,imgB,w,h,bx,by) { imgB.set(imgA); var bx1 = bx | 0; var by1 = by | 0; lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,0); lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,1); lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,2); lime__$internal_graphics_ImageDataUtil.__boxBlurH(imgB,imgA,w,h,bx1,3); var iarr = 1 / (by1 + by1 + 1); var ws = w * 4; var ti; var li; var ri; var fv; var lv; var val; var _g = 0; var _g1 = w; while(_g < _g1) { var i = _g++; ti = i * 4; li = ti; ri = ti + by1 * ws; fv = imgA[ti]; lv = imgA[ti + ws * (h - 1)]; val = (by1 + 1) * fv; var _g2 = 0; var _g3 = by1; while(_g2 < _g3) { var j = _g2++; val = val + imgA[ti + j * ws]; } var _g4 = 0; var _g5 = by1 + 1; while(_g4 < _g5) { var j1 = _g4++; val = val + (imgA[ri] - fv); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); ri += ws; ti += ws; } var _g6 = by1 + 1; var _g7 = h - by1; while(_g6 < _g7) { var j2 = _g6++; val = val + (imgA[ri] - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ri += ws; ti += ws; } var _g8 = h - by1; var _g9 = h; while(_g8 < _g9) { var j3 = _g8++; val = val + (lv - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ti += ws; } } var iarr = 1 / (by1 + by1 + 1); var ws = w * 4; var ti; var li; var ri; var fv; var lv; var val; var _g = 0; var _g1 = w; while(_g < _g1) { var i = _g++; ti = i * 4 + 1; li = ti; ri = ti + by1 * ws; fv = imgA[ti]; lv = imgA[ti + ws * (h - 1)]; val = (by1 + 1) * fv; var _g2 = 0; var _g3 = by1; while(_g2 < _g3) { var j = _g2++; val = val + imgA[ti + j * ws]; } var _g4 = 0; var _g5 = by1 + 1; while(_g4 < _g5) { var j1 = _g4++; val = val + (imgA[ri] - fv); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); ri += ws; ti += ws; } var _g6 = by1 + 1; var _g7 = h - by1; while(_g6 < _g7) { var j2 = _g6++; val = val + (imgA[ri] - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ri += ws; ti += ws; } var _g8 = h - by1; var _g9 = h; while(_g8 < _g9) { var j3 = _g8++; val = val + (lv - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ti += ws; } } var iarr = 1 / (by1 + by1 + 1); var ws = w * 4; var ti; var li; var ri; var fv; var lv; var val; var _g = 0; var _g1 = w; while(_g < _g1) { var i = _g++; ti = i * 4 + 2; li = ti; ri = ti + by1 * ws; fv = imgA[ti]; lv = imgA[ti + ws * (h - 1)]; val = (by1 + 1) * fv; var _g2 = 0; var _g3 = by1; while(_g2 < _g3) { var j = _g2++; val = val + imgA[ti + j * ws]; } var _g4 = 0; var _g5 = by1 + 1; while(_g4 < _g5) { var j1 = _g4++; val = val + (imgA[ri] - fv); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); ri += ws; ti += ws; } var _g6 = by1 + 1; var _g7 = h - by1; while(_g6 < _g7) { var j2 = _g6++; val = val + (imgA[ri] - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ri += ws; ti += ws; } var _g8 = h - by1; var _g9 = h; while(_g8 < _g9) { var j3 = _g8++; val = val + (lv - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ti += ws; } } var iarr = 1 / (by1 + by1 + 1); var ws = w * 4; var ti; var li; var ri; var fv; var lv; var val; var _g = 0; var _g1 = w; while(_g < _g1) { var i = _g++; ti = i * 4 + 3; li = ti; ri = ti + by1 * ws; fv = imgA[ti]; lv = imgA[ti + ws * (h - 1)]; val = (by1 + 1) * fv; var _g2 = 0; var _g3 = by1; while(_g2 < _g3) { var j = _g2++; val = val + imgA[ti + j * ws]; } var _g4 = 0; var _g5 = by1 + 1; while(_g4 < _g5) { var j1 = _g4++; val = val + (imgA[ri] - fv); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); ri += ws; ti += ws; } var _g6 = by1 + 1; var _g7 = h - by1; while(_g6 < _g7) { var j2 = _g6++; val = val + (imgA[ri] - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ri += ws; ti += ws; } var _g8 = h - by1; var _g9 = h; while(_g8 < _g9) { var j3 = _g8++; val = val + (lv - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ti += ws; } } }; lime__$internal_graphics_ImageDataUtil.__boxBlurH = function(imgA,imgB,w,h,r,off) { var iarr = 1 / (r + r + 1); var ti; var li; var ri; var fv; var lv; var val; var _g = 0; var _g1 = h; while(_g < _g1) { var i = _g++; ti = i * w; li = ti; ri = ti + r; fv = imgA[ti * 4 + off]; lv = imgA[(ti + w - 1) * 4 + off]; val = (r + 1) * fv; var _g2 = 0; var _g3 = r; while(_g2 < _g3) { var j = _g2++; val = val + imgA[(ti + j) * 4 + off]; } var _g4 = 0; var _g5 = r + 1; while(_g4 < _g5) { var j1 = _g4++; val = val + (imgA[ri * 4 + off] - fv); imgB[ti * 4 + off] = Math.round(UInt.toFloat(val) * iarr); ++ri; ++ti; } var _g6 = r + 1; var _g7 = w - r; while(_g6 < _g7) { var j2 = _g6++; val = val + (imgA[ri * 4 + off] - imgA[li * 4 + off]); imgB[ti * 4 + off] = Math.round(UInt.toFloat(val) * iarr); ++ri; ++li; ++ti; } var _g8 = w - r; var _g9 = w; while(_g8 < _g9) { var j3 = _g8++; val = val + (lv - imgA[li * 4 + off]); imgB[ti * 4 + off] = Math.round(UInt.toFloat(val) * iarr); ++li; ++ti; } } }; lime__$internal_graphics_ImageDataUtil.__boxBlurT = function(imgA,imgB,w,h,r,off) { var iarr = 1 / (r + r + 1); var ws = w * 4; var ti; var li; var ri; var fv; var lv; var val; var _g = 0; var _g1 = w; while(_g < _g1) { var i = _g++; ti = i * 4 + off; li = ti; ri = ti + r * ws; fv = imgA[ti]; lv = imgA[ti + ws * (h - 1)]; val = (r + 1) * fv; var _g2 = 0; var _g3 = r; while(_g2 < _g3) { var j = _g2++; val = val + imgA[ti + j * ws]; } var _g4 = 0; var _g5 = r + 1; while(_g4 < _g5) { var j1 = _g4++; val = val + (imgA[ri] - fv); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); ri += ws; ti += ws; } var _g6 = r + 1; var _g7 = h - r; while(_g6 < _g7) { var j2 = _g6++; val = val + (imgA[ri] - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ri += ws; ti += ws; } var _g8 = h - r; var _g9 = h; while(_g8 < _g9) { var j3 = _g8++; val = val + (lv - imgA[li]); imgB[ti] = Math.round(UInt.toFloat(val) * iarr); li += ws; ti += ws; } } }; lime__$internal_graphics_ImageDataUtil.__calculateSourceOffset = function(sourceRect,destPoint,destX,destY) { var sourceX = destX - (destPoint.x | 0); var sourceY = destY - (destPoint.y | 0); var offset = 0; if(sourceX < 0 || sourceY < 0 || sourceX >= sourceRect.width || sourceY >= sourceRect.height) { offset = -1; } else { offset = 4 * (sourceY * (sourceRect.width | 0) + sourceX); } return offset; }; lime__$internal_graphics_ImageDataUtil.__getBoxesForGaussianBlur = function(sigma,n) { var wIdeal = Math.sqrt(12 * sigma * sigma / n + 1); var wl = Math.floor(wIdeal); if(wl % 2 == 0) { --wl; } var wu = wl + 2; var mIdeal = (12 * sigma * sigma - n * wl * wl - 4 * n * wl - 3 * n) / (-4 * wl - 4); var m = Math.round(mIdeal); var sizes = []; var _g = 0; var _g1 = n; while(_g < _g1) { var i = _g++; sizes.push(i < m ? wl : wu); } return sizes; }; lime__$internal_graphics_ImageDataUtil.__pixelCompare = function(n1,n2) { var tmp1 = n1 >>> 24 & 255; var tmp2 = n2 >>> 24 & 255; if(tmp1 != tmp2) { if(UInt.gt(tmp1,tmp2)) { return 1; } else { return -1; } } else { tmp1 = n1 >>> 16 & 255; tmp2 = n2 >>> 16 & 255; if(tmp1 != tmp2) { if(UInt.gt(tmp1,tmp2)) { return 1; } else { return -1; } } else { tmp1 = n1 >>> 8 & 255; tmp2 = n2 >>> 8 & 255; if(tmp1 != tmp2) { if(UInt.gt(tmp1,tmp2)) { return 1; } else { return -1; } } else { tmp1 = n1 & 255; tmp2 = n2 & 255; if(tmp1 != tmp2) { if(UInt.gt(tmp1,tmp2)) { return 1; } else { return -1; } } else { return 0; } } } } }; lime__$internal_graphics_ImageDataUtil.__translatePixel = function(imgB,sourceRect,destRect,destPoint,destX,destY,strength) { var d = 4 * (destY * (destRect.width | 0) + destX); var s = lime__$internal_graphics_ImageDataUtil.__calculateSourceOffset(sourceRect,destPoint,destX,destY); if(s < 0) { imgB[d] = imgB[d + 1] = imgB[d + 2] = imgB[d + 3] = 0; } else { imgB[d] = imgB[s]; imgB[d + 1] = imgB[s + 1]; imgB[d + 2] = imgB[s + 2]; var a = UInt.toFloat(imgB[s + 3]) * strength | 0; imgB[d + 3] = a < 0 ? 0 : a > 255 ? 255 : a; } }; var lime__$internal_graphics__$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.__update(); }; $hxClasses["lime._internal.graphics._ImageDataUtil.ImageDataView"] = lime__$internal_graphics__$ImageDataUtil_ImageDataView; lime__$internal_graphics__$ImageDataUtil_ImageDataView.__name__ = "lime._internal.graphics._ImageDataUtil.ImageDataView"; lime__$internal_graphics__$ImageDataUtil_ImageDataView.prototype = { x: null ,y: null ,height: null ,width: null ,byteOffset: null ,image: null ,rect: null ,stride: null ,tempRect: null ,clip: function(x,y,width,height) { if(this.tempRect == null) { this.tempRect = new lime_math_Rectangle(); } this.tempRect.setTo(x,y,width,height); this.rect.intersection(this.tempRect,this.rect); this.__update(); } ,hasRow: function(y) { if(y >= 0) { return y < this.height; } else { return false; } } ,offset: function(x,y) { if(x < 0) { this.rect.x += x; if(this.rect.x < 0) { this.rect.x = 0; } } else { this.rect.x += x; this.rect.width -= x; } if(y < 0) { this.rect.y += y; if(this.rect.y < 0) { this.rect.y = 0; } } else { this.rect.y += y; this.rect.height -= y; } this.__update(); } ,row: function(y) { return this.byteOffset + this.stride * y; } ,__update: function() { 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.byteOffset = this.stride * (this.y + this.image.offsetY) + (this.x + this.image.offsetX) * 4; } ,__class__: lime__$internal_graphics__$ImageDataUtil_ImageDataView }; var lime__$internal_graphics_StackBlur = function() { }; $hxClasses["lime._internal.graphics.StackBlur"] = lime__$internal_graphics_StackBlur; lime__$internal_graphics_StackBlur.__name__ = "lime._internal.graphics.StackBlur"; lime__$internal_graphics_StackBlur.blur = function(dest,source,sourceRect,destPoint,blurX,blurY,quality) { dest.copyPixels(source,sourceRect,destPoint); lime__$internal_graphics_StackBlur.__stackBlurCanvasRGBA(dest,sourceRect.width | 0,sourceRect.height | 0,blurX,blurY,quality); }; lime__$internal_graphics_StackBlur.__stackBlurCanvasRGBA = function(image,width,height,blurX,blurY,quality) { var radiusX = Math.round(blurX) >> 1; var radiusY = Math.round(blurY) >> 1; if(lime__$internal_graphics_StackBlur.MUL_TABLE == null) { return; } if(radiusX >= lime__$internal_graphics_StackBlur.MUL_TABLE.length) { radiusX = lime__$internal_graphics_StackBlur.MUL_TABLE.length - 1; } if(radiusY >= lime__$internal_graphics_StackBlur.MUL_TABLE.length) { radiusY = lime__$internal_graphics_StackBlur.MUL_TABLE.length - 1; } if(radiusX < 0 || radiusY < 0) { return; } var iterations = quality; if(iterations < 1) { iterations = 1; } if(iterations > 3) { iterations = 3; } var px = image.get_data(); var x; var y; var i; var p; var yp; var yi; var yw; var r; var g; var b; var a; var pr; var pg; var pb; var pa; var f; var divx = radiusX + radiusX + 1; var divy = radiusY + radiusY + 1; var w = width; var h = height; var w1 = w - 1; var h1 = h - 1; var rxp1 = radiusX + 1; var ryp1 = radiusY + 1; var ssx = new lime__$internal_graphics_BlurStack(); var sx = ssx; var _g = 1; var _g1 = divx; while(_g < _g1) { var i1 = _g++; sx = sx.n = new lime__$internal_graphics_BlurStack(); } sx.n = ssx; var ssy = new lime__$internal_graphics_BlurStack(); var sy = ssy; var _g = 1; var _g1 = divy; while(_g < _g1) { var i1 = _g++; sy = sy.n = new lime__$internal_graphics_BlurStack(); } sy.n = ssy; var si = null; var mtx = lime__$internal_graphics_StackBlur.MUL_TABLE[radiusX]; var stx = lime__$internal_graphics_StackBlur.SHG_TABLE[radiusX]; var mty = lime__$internal_graphics_StackBlur.MUL_TABLE[radiusY]; var sty = lime__$internal_graphics_StackBlur.SHG_TABLE[radiusY]; while(iterations > 0) { --iterations; yi = 0; yw = yi; var ms = mtx; var ss = stx; y = h; do { pr = px[yi]; r = rxp1 * pr; pg = px[yi + 1]; g = rxp1 * pg; pb = px[yi + 2]; b = rxp1 * pb; pa = px[yi + 3]; a = rxp1 * pa; sx = ssx; i = rxp1; do { sx.r = pr; sx.g = pg; sx.b = pb; sx.a = pa; sx = sx.n; } while(--i > -1); var _g = 1; var _g1 = rxp1; while(_g < _g1) { var i1 = _g++; p = yi + ((w1 < i1 ? w1 : i1) << 2); r += sx.r = px[p]; g += sx.g = px[p + 1]; b += sx.b = px[p + 2]; a += sx.a = px[p + 3]; sx = sx.n; } si = ssx; var _g2 = 0; var _g3 = w; while(_g2 < _g3) { var x = _g2++; px[yi++] = r * ms >>> ss; px[yi++] = g * ms >>> ss; px[yi++] = b * ms >>> ss; px[yi++] = a * ms >>> ss; p = x + radiusX + 1; p = yw + (p < w1 ? p : w1) << 2; r -= si.r - (si.r = px[p]); g -= si.g - (si.g = px[p + 1]); b -= si.b - (si.b = px[p + 2]); a -= si.a - (si.a = px[p + 3]); si = si.n; } yw += w; } while(--y > 0); ms = mty; ss = sty; var _g4 = 0; var _g5 = w; while(_g4 < _g5) { var x1 = _g4++; yi = x1 << 2; pr = px[yi]; r = ryp1 * pr; pg = px[yi + 1]; g = ryp1 * pg; pb = px[yi + 2]; b = ryp1 * pb; pa = px[yi + 3]; a = ryp1 * pa; sy = ssy; var _g6 = 0; var _g7 = ryp1; while(_g6 < _g7) { var i2 = _g6++; sy.r = pr; sy.g = pg; sy.b = pb; sy.a = pa; sy = sy.n; } yp = w; var _g8 = 1; var _g9 = radiusY + 1; while(_g8 < _g9) { var i3 = _g8++; yi = yp + x1 << 2; r += sy.r = px[yi]; g += sy.g = px[yi + 1]; b += sy.b = px[yi + 2]; a += sy.a = px[yi + 3]; sy = sy.n; if(i3 < h1) { yp += w; } } yi = x1; si = ssy; if(iterations > 0) { var _g10 = 0; var _g11 = h; while(_g10 < _g11) { var y1 = _g10++; p = yi << 2; pa = a * ms >>> ss; px[p + 3] = pa; if(pa > 0) { px[p] = r * ms >>> ss; px[p + 1] = g * ms >>> ss; px[p + 2] = b * ms >>> ss; } else { px[p] = px[p + 1] = px[p + 2] = 0; } p = y1 + ryp1; p = x1 + (p < h1 ? p : h1) * w << 2; r -= si.r - (si.r = px[p]); g -= si.g - (si.g = px[p + 1]); b -= si.b - (si.b = px[p + 2]); a -= si.a - (si.a = px[p + 3]); si = si.n; yi += w; } } else { var _g12 = 0; var _g13 = h; while(_g12 < _g13) { var y2 = _g12++; p = yi << 2; pa = a * ms >>> ss; px[p + 3] = pa; if(pa > 0) { f = 255 / pa; pr = (r * ms >>> ss) * f | 0; pg = (g * ms >>> ss) * f | 0; pb = (b * ms >>> ss) * f | 0; px[p] = pr > 255 ? 255 : pr; px[p + 1] = pg > 255 ? 255 : pg; px[p + 2] = pb > 255 ? 255 : pb; } else { px[p] = px[p + 1] = px[p + 2] = 0; } p = y2 + ryp1; p = x1 + (p < h1 ? p : h1) * w << 2; r -= si.r - (si.r = px[p]); g -= si.g - (si.g = px[p + 1]); b -= si.b - (si.b = px[p + 2]); a -= si.a - (si.a = px[p + 3]); si = si.n; yi += w; } } } } }; var lime__$internal_graphics_BlurStack = function() { this.r = 0; this.g = 0; this.b = 0; this.a = 0; this.n = null; }; $hxClasses["lime._internal.graphics.BlurStack"] = lime__$internal_graphics_BlurStack; lime__$internal_graphics_BlurStack.__name__ = "lime._internal.graphics.BlurStack"; lime__$internal_graphics_BlurStack.prototype = { r: null ,g: null ,b: null ,a: null ,n: null ,__class__: lime__$internal_graphics_BlurStack }; var lime__$internal_macros_AssetsMacro = function() { }; $hxClasses["lime._internal.macros.AssetsMacro"] = lime__$internal_macros_AssetsMacro; lime__$internal_macros_AssetsMacro.__name__ = "lime._internal.macros.AssetsMacro"; 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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__class__: lime_app_Event }; var lime_app_Future = function(work,async) { if(async == null) { async = false; } if(work != null) { if(async) { var promise = new lime_app_Promise(); promise.future = this; lime_app__$Future_FutureWork.queue({ promise : promise, work : work}); } else { try { this.value = work(); this.isComplete = true; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.error = e; this.isError = true; } } } }; $hxClasses["lime.app.Future"] = lime_app_Future; lime_app_Future.__name__ = "lime.app.Future"; lime_app_Future.ofEvents = function(onComplete,onError,onProgress) { var promise = new lime_app_Promise(); onComplete.add(function(data) { promise.complete(data); },true); if(onError != null) { onError.add(function(error) { promise.error(error); },true); } if(onProgress != null) { onProgress.add(function(progress,total) { promise.progress(progress,total); },true); } return promise.future; }; lime_app_Future.withError = function(error) { var future = new lime_app_Future(); future.isError = true; future.error = error; return future; }; lime_app_Future.withValue = function(value) { var future = new lime_app_Future(); future.isComplete = true; future.value = value; return future; }; lime_app_Future.prototype = { error: null ,isComplete: null ,isError: null ,value: null ,__completeListeners: null ,__errorListeners: null ,__progressListeners: null ,onComplete: function(listener) { if(listener != null) { if(this.isComplete) { listener(this.value); } else if(!this.isError) { if(this.__completeListeners == null) { this.__completeListeners = []; } this.__completeListeners.push(listener); } } return this; } ,onError: function(listener) { if(listener != null) { if(this.isError) { listener(this.error); } else if(!this.isComplete) { 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; } ,ready: function(waitTime) { if(waitTime == null) { waitTime = -1; } if(this.isComplete || this.isError) { return this; } else { lime_utils_Log.warn("Cannot block thread in JavaScript",{ fileName : "lime/app/Future.hx", lineNumber : 208, className : "lime.app.Future", methodName : "ready"}); return this; } } ,result: function(waitTime) { if(waitTime == null) { waitTime = -1; } this.ready(waitTime); if(this.isComplete) { return this.value; } else { return null; } } ,then: function(next) { if(this.isComplete) { return next(this.value); } else if(this.isError) { var future = new lime_app_Future(); future.isError = true; future.error = this.error; 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 future = next(val); future.onError($bind(promise,promise.error)); future.onComplete($bind(promise,promise.complete)); }); return promise.future; } } ,__class__: lime_app_Future }; var lime_app__$Future_FutureWork = function() { }; $hxClasses["lime.app._Future.FutureWork"] = lime_app__$Future_FutureWork; lime_app__$Future_FutureWork.__name__ = "lime.app._Future.FutureWork"; lime_app__$Future_FutureWork.threadPool = null; lime_app__$Future_FutureWork.queue = function(state) { if(lime_app__$Future_FutureWork.threadPool == null) { lime_app__$Future_FutureWork.threadPool = new lime_system_ThreadPool(); lime_app__$Future_FutureWork.threadPool.doWork.add(lime_app__$Future_FutureWork.threadPool_doWork); lime_app__$Future_FutureWork.threadPool.onComplete.add(lime_app__$Future_FutureWork.threadPool_onComplete); lime_app__$Future_FutureWork.threadPool.onError.add(lime_app__$Future_FutureWork.threadPool_onError); } lime_app__$Future_FutureWork.threadPool.queue(state); }; lime_app__$Future_FutureWork.threadPool_doWork = function(state) { try { var result = state.work(); lime_app__$Future_FutureWork.threadPool.sendComplete({ promise : state.promise, result : result}); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); lime_app__$Future_FutureWork.threadPool.sendError({ promise : state.promise, error : e}); } }; lime_app__$Future_FutureWork.threadPool_onComplete = function(state) { state.promise.complete(state.result); }; lime_app__$Future_FutureWork.threadPool_onError = function(state) { state.promise.error(state.error); }; 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 ,isComplete: null ,isError: null ,complete: function(data) { if(!this.future.isError) { this.future.isComplete = 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.isComplete) { this.future.isError = true; this.future.error = 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,total) { if(!this.future.isError && !this.future.isComplete) { if(this.future.__progressListeners != null) { var _g = 0; var _g1 = this.future.__progressListeners; while(_g < _g1.length) { var listener = _g1[_g]; ++_g; listener(progress,total); } } } return this; } ,get_isComplete: function() { return this.future.isComplete; } ,get_isError: function() { return this.future.isError; } ,__class__: lime_app_Promise ,__properties__: {get_isError:"get_isError",get_isComplete:"get_isComplete"} }; var lime_app__$Event_$Array_$String_$_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_Array_String__Void"] = lime_app__$Event_$Array_$String_$_$Void; lime_app__$Event_$Array_$String_$_$Void.__name__ = "lime.app._Event_Array_String__Void"; lime_app__$Event_$Array_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$Array_$String_$_$Void }; 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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$Float_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_Float_Float_Float_Void"] = lime_app__$Event_$Float_$Float_$Float_$Void; lime_app__$Event_$Float_$Float_$Float_$Void.__name__ = "lime.app._Event_Float_Float_Float_Void"; lime_app__$Event_$Float_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$Float_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$Float_$Float_$lime_$ui_$MouseButton_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_Float_Float_lime_ui_MouseButton_Void"] = lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void; lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void.__name__ = "lime.app._Event_Float_Float_lime_ui_MouseButton_Void"; lime_app__$Event_$Float_$Float_$lime_$ui_$MouseButton_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$lime_$ui_$MouseButton_$Void }; var lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void"] = lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void; lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void.__name__ = "lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void"; lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$lime_$ui_$MouseWheelMode_$Void }; var lime_app__$Event_$Int_$Float_$Float_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_Int_Float_Float_Void"] = lime_app__$Event_$Int_$Float_$Float_$Void; lime_app__$Event_$Int_$Float_$Float_$Void.__name__ = "lime.app._Event_Int_Float_Float_Void"; lime_app__$Event_$Int_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$Int_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$GamepadButton_$haxe_$Int64_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_lime_ui_GamepadButton_haxe_Int64_Void"] = lime_app__$Event_$lime_$ui_$GamepadButton_$haxe_$Int64_$Void; lime_app__$Event_$lime_$ui_$GamepadButton_$haxe_$Int64_$Void.__name__ = "lime.app._Event_lime_ui_GamepadButton_haxe_Int64_Void"; lime_app__$Event_$lime_$ui_$GamepadButton_$haxe_$Int64_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$GamepadButton_$haxe_$Int64_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_haxe_Int64_Void"] = lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$Void; lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$Void.__name__ = "lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_haxe_Int64_Void"; lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$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 _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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__$Event_$lime_$ui_$Window_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_lime_ui_Window_Void"] = lime_app__$Event_$lime_$ui_$Window_$Void; lime_app__$Event_$lime_$ui_$Window_$Void.__name__ = "lime.app._Event_lime_ui_Window_Void"; lime_app__$Event_$lime_$ui_$Window_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$Window_$Void }; var lime_app__$Event_$lime_$utils_$Resource_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_lime_utils_Resource_Void"] = lime_app__$Event_$lime_$utils_$Resource_$Void; lime_app__$Event_$lime_$utils_$Resource_$Void.__name__ = "lime.app._Event_lime_utils_Resource_Void"; lime_app__$Event_$lime_$utils_$Resource_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$utils_$Resource_$Void }; var lime_app__$Event_$ofEvents_$T_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app._Event_ofEvents_T_Void"] = lime_app__$Event_$ofEvents_$T_$Void; lime_app__$Event_$ofEvents_$T_$Void.__name__ = "lime.app._Event_ofEvents_T_Void"; lime_app__$Event_$ofEvents_$T_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) { priority = 0; } if(once == null) { once = false; } var _g = 0; var _g1 = this.__priorities.length; while(_g < _g1) { var i = _g++; 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(l == listener) { return true; } } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(this.__listeners[i] == listener) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,removeAll: function() { var len = this.__listeners.length; this.__listeners.splice(0,len); this.__priorities.splice(0,len); this.__repeat.splice(0,len); } ,__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_$ofEvents_$T_$Void }; var lime_graphics_CairoRenderContext = {}; lime_graphics_CairoRenderContext.fromRenderContext = function(context) { return context.cairo; }; var lime_graphics_Canvas2DRenderContext = {}; lime_graphics_Canvas2DRenderContext.fromRenderContext = function(context) { return context.canvas2D; }; var lime_graphics_DOMRenderContext = {}; lime_graphics_DOMRenderContext.fromRenderContext = function(context) { return context.dom; }; var lime_graphics_FlashRenderContext = {}; lime_graphics_FlashRenderContext.fromRenderContext = function(context) { return null; }; 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; this.version = 0; if(type == null) { type = lime_graphics_ImageType.CANVAS; } this.type = type; if(buffer == null) { if(width > 0 && height > 0) { switch(this.type._hx_index) { case 0: this.buffer = new lime_graphics_ImageBuffer(null,width,height); lime__$internal_graphics_ImageCanvasUtil.createCanvas(this,width,height); if(color != null && color != 0) { this.fillRect(new lime_math_Rectangle(0,0,width,height),color); } break; case 1: var elements = width * height * 4; var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } this.buffer = new lime_graphics_ImageBuffer(this1,width,height); if(color != null && color != 0) { 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.fromBase64 = function(base64,type) { if(base64 == null) { return null; } var image = new lime_graphics_Image(); image.__fromBase64(base64,type); return image; }; lime_graphics_Image.fromBitmapData = function(bitmapData) { if(bitmapData == null) { return null; } return bitmapData.image; }; lime_graphics_Image.fromBytes = function(bytes) { if(bytes == null) { return null; } var image = new lime_graphics_Image(); if(image.__fromBytes(bytes)) { return image; } else { return null; } }; 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); var image = new lime_graphics_Image(buffer); image.type = lime_graphics_ImageType.CANVAS; return image; }; lime_graphics_Image.fromFile = function(path) { if(path == null) { return null; } var image = new lime_graphics_Image(); if(image.__fromFile(path)) { return image; } else { return null; } }; 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); var _image = new lime_graphics_Image(buffer); _image.type = lime_graphics_ImageType.CANVAS; return _image; }; lime_graphics_Image.loadFromBase64 = function(base64,type) { if(base64 == null || type == null) { return lime_app_Future.withValue(null); } return lime__$internal_backend_html5_HTML5HTTPRequest.loadImage("data:" + type + ";base64," + base64); }; lime_graphics_Image.loadFromBytes = function(bytes) { if(bytes == null) { return lime_app_Future.withValue(null); } 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 if(lime_graphics_Image.__isWebP(bytes)) { type = "image/webp"; } else { return lime_app_Future.withValue(null); } return lime__$internal_backend_html5_HTML5HTTPRequest.loadImageFromBytes(bytes,type); }; lime_graphics_Image.loadFromFile = function(path) { if(path == null) { return lime_app_Future.withValue(null); } return lime__$internal_backend_html5_HTML5HTTPRequest.loadImage(path); }; lime_graphics_Image.__isGIF = function(bytes) { if(bytes == null || bytes.length < 6) { return false; } var header = bytes.getString(0,6); if(header != "GIF87a") { return header == "GIF89a"; } else { return true; } }; lime_graphics_Image.__isJPG = function(bytes) { if(bytes == null || bytes.length < 4) { return false; } if(bytes.b[0] == 255 && bytes.b[1] == 216 && bytes.b[bytes.length - 2] == 255) { return bytes.b[bytes.length - 1] == 217; } else { return false; } }; lime_graphics_Image.__isPNG = function(bytes) { if(bytes == null || bytes.length < 8) { return false; } if(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) { return bytes.b[7] == 10; } else { return false; } }; lime_graphics_Image.__isWebP = function(bytes) { if(bytes == null || bytes.length < 16) { return false; } if(bytes.getString(0,4) == "RIFF") { return bytes.getString(8,4) == "WEBP"; } else { return false; } }; lime_graphics_Image.prototype = { buffer: null ,dirty: null ,height: null ,offsetX: null ,offsetY: null ,rect: null ,type: null ,version: null ,width: null ,x: null ,y: null ,clone: function() { if(this.buffer != null) { if(this.type == lime_graphics_ImageType.CANVAS) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this); } else { lime__$internal_graphics_ImageCanvasUtil.convertToData(this); } var image = new lime_graphics_Image(this.buffer.clone(),this.offsetX,this.offsetY,this.width,this.height,null,this.type); image.version = this.version; 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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.colorTransform(this,rect,colorMatrix); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.colorTransform(this,rect,colorMatrix); break; case 2: rect.offset(this.offsetX,this.offsetY); this.buffer.__srcBitmapData.colorTransform(rect.__toFlashRectangle(),lime_math_ColorMatrix.__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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); lime__$internal_graphics_ImageDataUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel); break; case 2: var srcChannel; switch(sourceChannel._hx_index) { case 0: srcChannel = 1; break; case 1: srcChannel = 2; break; case 2: srcChannel = 4; break; case 3: srcChannel = 8; break; } var dstChannel; switch(destChannel._hx_index) { 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; } if(sourceImage == this && destPoint.x < sourceRect.get_right() && destPoint.y < sourceRect.get_bottom()) { sourceImage = this.clone(); } if(alphaImage == sourceImage && (alphaPoint == null || alphaPoint.x == 0 && alphaPoint.y == 0)) { alphaImage = null; alphaPoint = null; } switch(this.type._hx_index) { case 0: if(alphaImage != null) { lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); if(alphaImage != null) { lime__$internal_graphics_ImageCanvasUtil.convertToData(alphaImage); } lime__$internal_graphics_ImageDataUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha); } else { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(sourceImage); lime__$internal_graphics_ImageCanvasUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha); } break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); if(alphaImage != null) { lime__$internal_graphics_ImageCanvasUtil.convertToData(alphaImage); } lime__$internal_graphics_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) { return lime__$internal_format_PNG.encode(this); } else { switch(format._hx_index) { case 0: return lime__$internal_format_BMP.encode(this); case 1: return lime__$internal_format_JPEG.encode(this,quality); case 2: return lime__$internal_format_PNG.encode(this); } } } ,fillRect: function(rect,color,format) { rect = this.__clipRect(rect); if(this.buffer == null || rect == null) { return; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.fillRect(this,rect,color,format); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); if(this.buffer.data.length == 0) { return; } lime__$internal_graphics_ImageDataUtil.fillRect(this,rect,color,format); break; case 2: rect.offset(this.offsetX,this.offsetY); var argb; if(format == null) { 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; argb = argb1; } else { 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 argb1 = 0; argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; argb = argb1; } } this.buffer.__srcBitmapData.fillRect(rect.__toFlashRectangle(),argb); break; default: } } ,floodFill: function(x,y,color,format) { if(this.buffer == null) { return; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.floodFill(this,x,y,color,format); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.floodFill(this,x,y,color,format); break; case 2: var argb; if(format == null) { 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; argb = argb1; } else { 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 argb1 = 0; argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; argb = argb1; } } 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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); return lime__$internal_graphics_ImageDataUtil.getColorBoundsRect(this,mask,color,findColor,format); case 1: return lime__$internal_graphics_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; } switch(this.type._hx_index) { case 0: return lime__$internal_graphics_ImageCanvasUtil.getPixel(this,x,y,format); case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); return lime__$internal_graphics_ImageDataUtil.getPixel(this,x,y,format); case 2: var color = this.buffer.__srcBitmapData.getPixel(x + this.offsetX,y + this.offsetY); if(format == null) { var rgba = 0; rgba = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255; var rgba1 = rgba; return rgba1; } else { switch(format) { case 1: return color; case 2: var bgra = 0; bgra = (color & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color >>> 16 & 255 & 255) << 8 | color >>> 24 & 255 & 255; var bgra1 = bgra; return bgra1; default: var rgba = 0; rgba = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255; var rgba1 = rgba; return rgba1; } } 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; } switch(this.type._hx_index) { case 0: return lime__$internal_graphics_ImageCanvasUtil.getPixel32(this,x,y,format); case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); return lime__$internal_graphics_ImageDataUtil.getPixel32(this,x,y,format); case 2: var color = this.buffer.__srcBitmapData.getPixel32(x + this.offsetX,y + this.offsetY); if(format == null) { var rgba = 0; rgba = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255; var rgba1 = rgba; return rgba1; } else { switch(format) { case 1: return color; case 2: var bgra = 0; bgra = (color & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color >>> 16 & 255 & 255) << 8 | color >>> 24 & 255 & 255; var bgra1 = bgra; return bgra1; default: var rgba = 0; rgba = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255; var rgba1 = rgba; return rgba1; } } break; default: return 0; } } ,getPixels: function(rect,format) { if(this.buffer == null) { return null; } switch(this.type._hx_index) { case 0: return lime__$internal_graphics_ImageCanvasUtil.getPixels(this,rect,format); case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); return lime__$internal_graphics_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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(this); lime__$internal_graphics_ImageCanvasUtil.merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); lime__$internal_graphics_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; } } ,resize: function(newWidth,newHeight) { switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.resize(this,newWidth,newHeight); break; case 1: lime__$internal_graphics_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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.setPixel(this,x,y,color,format); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.setPixel(this,x,y,color,format); break; case 2: var argb; if(format == null) { 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; argb = argb1; } else { 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 argb1 = 0; argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; argb = argb1; } } 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; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.setPixel32(this,x,y,color,format); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.setPixel32(this,x,y,color,format); break; case 2: var argb; if(format == null) { 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; argb = argb1; } else { 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 argb1 = 0; argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; argb = argb1; } } this.buffer.__srcBitmapData.setPixel32(x + this.offsetX,y + this.offsetY,argb); break; default: } } ,setPixels: function(rect,bytePointer,format,endian) { rect = this.__clipRect(rect); if(this.buffer == null || rect == null) { return; } if(endian == null) { endian = lime_system_Endian.BIG_ENDIAN; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.setPixels(this,rect,bytePointer,format,endian); break; case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.setPixels(this,rect,bytePointer,format,endian); 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; } switch(this.type._hx_index) { case 0:case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageCanvasUtil.convertToData(sourceImage); return lime__$internal_graphics_ImageDataUtil.threshold(this,sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format); case 2: var _color; if(format == null) { var rgba = color; var argb = 0; argb = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; _color = argb; } else { 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 argb = 0; argb = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; _color = argb; } } var _mask; if(format == null) { var rgba = mask; var argb = 0; argb = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; _mask = argb; } else { switch(format) { case 1: _mask = mask; break; case 2: var bgra = mask; var argb = 0; argb = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255; _mask = argb; break; default: var rgba = mask; var argb = 0; argb = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255; _mask = argb; } } 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 _gthis = this; var image = new window.Image (); var image_onLoaded = function(event) { _gthis.buffer = new lime_graphics_ImageBuffer(null,image.width,image.height); _gthis.buffer.__srcImage = image; _gthis.offsetX = 0; _gthis.offsetY = 0; _gthis.width = _gthis.buffer.width; _gthis.height = _gthis.buffer.height; if(onload != null) { onload(_gthis); } }; 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 { return false; } this.__fromBase64(lime__$internal_format_Base64.encode(bytes),type,onload); return true; } ,__fromFile: function(path,onload,onerror) { var _gthis = this; var image = new window.Image (); if(!lime__$internal_backend_html5_HTML5HTTPRequest.__isSameOrigin(path)) { image.crossOrigin = "Anonymous"; } image.onload = function(_) { _gthis.buffer = new lime_graphics_ImageBuffer(null,image.width,image.height); _gthis.buffer.__srcImage = image; _gthis.width = image.width; _gthis.height = image.height; if(onload != null) { onload(_gthis); } }; image.onerror = function(_) { if(onerror != null) { onerror(); } }; image.src = path; var image1 = image.complete; return true; } ,__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__$internal_graphics_ImageCanvasUtil.convertToData(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) { if(this.type._hx_index == 1) { lime__$internal_graphics_ImageDataUtil.setFormat(this,value); } } return this.buffer.format = value; } ,get_powerOfTwo: function() { if(this.buffer.width != 0 && (this.buffer.width & ~this.buffer.width + 1) == this.buffer.width) { if(this.buffer.height != 0) { return (this.buffer.height & ~this.buffer.height + 1) == this.buffer.height; } else { return false; } } else { return false; } } ,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; if(newWidth == this.buffer.width && newHeight == this.buffer.height) { return value; } switch(this.type._hx_index) { case 0: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.resizeBuffer(this,newWidth,newHeight); break; case 1: lime__$internal_graphics_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) { switch(this.type._hx_index) { case 0:case 1: lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.multiplyAlpha(this); break; default: } } else if(!value && this.buffer.premultiplied) { if(this.type._hx_index == 1) { lime__$internal_graphics_ImageCanvasUtil.convertToData(this); lime__$internal_graphics_ImageDataUtil.unmultiplyAlpha(this); } } return value; } ,get_rect: function() { return new lime_math_Rectangle(0,0,this.width,this.height); } ,get_src: function() { if(this.buffer.__srcCanvas == null && (this.buffer.data != null || this.type == lime_graphics_ImageType.DATA)) { lime__$internal_graphics_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; this.format = format == null ? 0 : format; this.premultiplied = false; 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 array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } buffer.data = this1; var elements = null; var array = null; var vector = null; var view = this.data; var buffer1 = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint8Array(buffer1,0); } else { this1 = new Uint8Array(buffer1,0,len); } } else { this1 = null; } var copy = this1; 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 copy = new Uint8ClampedArray(this.__srcImageData.data); buffer.__srcImageData.data.set(copy); } 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(((value) instanceof Image)) { this.__srcImage = value; } else if(((value) instanceof HTMLCanvasElement)) { this.__srcCanvas = value; this.__srcContext = this.__srcCanvas.getContext("2d"); } return value; } ,get_stride: function() { return this.width * (this.bitsPerPixel / 8 | 0); } ,__class__: lime_graphics_ImageBuffer ,__properties__: {get_stride:"get_stride",set_src:"set_src",get_src:"get_src"} }; var lime_graphics_ImageChannel = $hxEnums["lime.graphics.ImageChannel"] = { __ename__:"lime.graphics.ImageChannel",__constructs__:null ,RED: {_hx_name:"RED",_hx_index:0,__enum__:"lime.graphics.ImageChannel",toString:$estr} ,GREEN: {_hx_name:"GREEN",_hx_index:1,__enum__:"lime.graphics.ImageChannel",toString:$estr} ,BLUE: {_hx_name:"BLUE",_hx_index:2,__enum__:"lime.graphics.ImageChannel",toString:$estr} ,ALPHA: {_hx_name:"ALPHA",_hx_index:3,__enum__:"lime.graphics.ImageChannel",toString:$estr} }; lime_graphics_ImageChannel.__constructs__ = [lime_graphics_ImageChannel.RED,lime_graphics_ImageChannel.GREEN,lime_graphics_ImageChannel.BLUE,lime_graphics_ImageChannel.ALPHA]; lime_graphics_ImageChannel.__empty_constructs__ = [lime_graphics_ImageChannel.RED,lime_graphics_ImageChannel.GREEN,lime_graphics_ImageChannel.BLUE,lime_graphics_ImageChannel.ALPHA]; var lime_graphics_ImageFileFormat = $hxEnums["lime.graphics.ImageFileFormat"] = { __ename__:"lime.graphics.ImageFileFormat",__constructs__:null ,BMP: {_hx_name:"BMP",_hx_index:0,__enum__:"lime.graphics.ImageFileFormat",toString:$estr} ,JPEG: {_hx_name:"JPEG",_hx_index:1,__enum__:"lime.graphics.ImageFileFormat",toString:$estr} ,PNG: {_hx_name:"PNG",_hx_index:2,__enum__:"lime.graphics.ImageFileFormat",toString:$estr} }; lime_graphics_ImageFileFormat.__constructs__ = [lime_graphics_ImageFileFormat.BMP,lime_graphics_ImageFileFormat.JPEG,lime_graphics_ImageFileFormat.PNG]; lime_graphics_ImageFileFormat.__empty_constructs__ = [lime_graphics_ImageFileFormat.BMP,lime_graphics_ImageFileFormat.JPEG,lime_graphics_ImageFileFormat.PNG]; var lime_graphics_ImageType = $hxEnums["lime.graphics.ImageType"] = { __ename__:"lime.graphics.ImageType",__constructs__:null ,CANVAS: {_hx_name:"CANVAS",_hx_index:0,__enum__:"lime.graphics.ImageType",toString:$estr} ,DATA: {_hx_name:"DATA",_hx_index:1,__enum__:"lime.graphics.ImageType",toString:$estr} ,FLASH: {_hx_name:"FLASH",_hx_index:2,__enum__:"lime.graphics.ImageType",toString:$estr} ,CUSTOM: {_hx_name:"CUSTOM",_hx_index:3,__enum__:"lime.graphics.ImageType",toString:$estr} }; lime_graphics_ImageType.__constructs__ = [lime_graphics_ImageType.CANVAS,lime_graphics_ImageType.DATA,lime_graphics_ImageType.FLASH,lime_graphics_ImageType.CUSTOM]; lime_graphics_ImageType.__empty_constructs__ = [lime_graphics_ImageType.CANVAS,lime_graphics_ImageType.DATA,lime_graphics_ImageType.FLASH,lime_graphics_ImageType.CUSTOM]; var lime_graphics_OpenGLES2RenderContext = {}; lime_graphics_OpenGLES2RenderContext.fromGL = function(gl) { return null; }; lime_graphics_OpenGLES2RenderContext.fromOpenGLES3RenderContext = function(gl) { return null; }; lime_graphics_OpenGLES2RenderContext.fromRenderContext = function(context) { return null; }; lime_graphics_OpenGLES2RenderContext.fromWebGLRenderContext = function(gl) { return null; }; var lime_graphics_OpenGLES3RenderContext = {}; lime_graphics_OpenGLES3RenderContext.fromRenderContext = function(context) { return null; }; lime_graphics_OpenGLES3RenderContext.fromGL = function(gl) { return null; }; lime_graphics_OpenGLES3RenderContext.fromOpenGLES2RenderContext = function(context) { return null; }; lime_graphics_OpenGLES3RenderContext.fromWebGLRenderContext = function(context) { return null; }; lime_graphics_OpenGLES3RenderContext.fromWebGL2RenderContext = function(context) { return null; }; var lime_graphics_OpenGLRenderContext = {}; lime_graphics_OpenGLRenderContext.fromRenderContext = function(context) { return null; }; var lime_graphics_RenderContext = function() { }; $hxClasses["lime.graphics.RenderContext"] = lime_graphics_RenderContext; lime_graphics_RenderContext.__name__ = "lime.graphics.RenderContext"; lime_graphics_RenderContext.prototype = { attributes: null ,cairo: null ,canvas2D: null ,dom: null ,flash: null ,gl: null ,gles2: null ,gles3: null ,type: null ,version: null ,webgl: null ,webgl2: null ,window: null ,__class__: lime_graphics_RenderContext }; var lime_graphics_WebGL2RenderContext = {}; lime_graphics_WebGL2RenderContext.bufferData = function(this1,target,srcData,usage,srcOffset,length) { if(srcOffset != null) { this1.bufferData(target,srcData,usage,srcOffset,length); } else { this1.bufferData(target,srcData,usage); } }; lime_graphics_WebGL2RenderContext.bufferSubData = function(this1,target,dstByteOffset,srcData,srcOffset,length) { if(srcOffset != null) { this1.bufferSubData(target,dstByteOffset,srcData,srcOffset,length); } else { this1.bufferSubData(target,dstByteOffset,srcData); } }; lime_graphics_WebGL2RenderContext.compressedTexImage2D = function(this1,target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride) { if(srcOffset != null) { this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride); } else { this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData); } }; lime_graphics_WebGL2RenderContext.compressedTexSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride) { if(srcOffset != null) { this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride); } else { this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData); } }; lime_graphics_WebGL2RenderContext.getBufferSubData = function(this1,target,srcByteOffset,dstData,srcOffset,length) { if(srcOffset != null) { this1.getBufferSubData(target,srcByteOffset,dstData,srcOffset,length); } else { this1.getBufferSubData(target,srcByteOffset,dstData); } }; lime_graphics_WebGL2RenderContext.readPixels = function(this1,x,y,width,height,format,type,pixels,dstOffset) { if(dstOffset != null) { this1.readPixels(x,y,width,height,format,type,pixels,dstOffset); } else { this1.readPixels(x,y,width,height,format,type,pixels); } }; lime_graphics_WebGL2RenderContext.texImage2D = function(this1,target,level,internalformat,width,height,border,format,type,srcData,srcOffset) { if(srcOffset != null) { this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset); } else if(format != null) { this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData); } else { this1.texImage2D(target,level,internalformat,width,height,border); } }; lime_graphics_WebGL2RenderContext.texSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset) { if(srcOffset != null) { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset); } else if(type != null) { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData); } else { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format); } }; lime_graphics_WebGL2RenderContext.uniform1fv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform1fv(location,data,srcOffset,srcLength); } else { this1.uniform1fv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform1iv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform1iv(location,data,srcOffset,srcLength); } else { this1.uniform1iv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform2fv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform2fv(location,data,srcOffset,srcLength); } else { this1.uniform2fv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform2iv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform2iv(location,data,srcOffset,srcLength); } else { this1.uniform2iv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform3fv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform3fv(location,data,srcOffset,srcLength); } else { this1.uniform3fv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform3iv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform3iv(location,data,srcOffset,srcLength); } else { this1.uniform3iv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform4fv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform4fv(location,data,srcOffset,srcLength); } else { this1.uniform4fv(location,data); } }; lime_graphics_WebGL2RenderContext.uniform4iv = function(this1,location,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniform4iv(location,data,srcOffset,srcLength); } else { this1.uniform4iv(location,data); } }; lime_graphics_WebGL2RenderContext.uniformMatrix2fv = function(this1,location,transpose,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniformMatrix2fv(location,transpose,data,srcOffset,srcLength); } else { this1.uniformMatrix2fv(location,transpose,data); } }; lime_graphics_WebGL2RenderContext.uniformMatrix3fv = function(this1,location,transpose,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniformMatrix3fv(location,transpose,data,srcOffset,srcLength); } else { this1.uniformMatrix3fv(location,transpose,data); } }; lime_graphics_WebGL2RenderContext.uniformMatrix4fv = function(this1,location,transpose,data,srcOffset,srcLength) { if(srcOffset != null) { this1.uniformMatrix4fv(location,transpose,data,srcOffset,srcLength); } else { this1.uniformMatrix4fv(location,transpose,data); } }; lime_graphics_WebGL2RenderContext.fromGL = function(gl) { return null; }; lime_graphics_WebGL2RenderContext.fromRenderContext = function(context) { return context.webgl2; }; lime_graphics_WebGL2RenderContext.toWebGLRenderContext = function(gl) { return gl; }; var lime_graphics_WebGLRenderContext = {}; lime_graphics_WebGLRenderContext.bufferData = function(this1,target,srcData,usage) { var srcOffset = null; if(srcOffset != null) { this1.bufferData(target,srcData,usage,srcOffset,null); } else { this1.bufferData(target,srcData,usage); } }; lime_graphics_WebGLRenderContext.bufferSubData = function(this1,target,offset,srcData) { var srcOffset = null; if(srcOffset != null) { this1.bufferSubData(target,offset,srcData,srcOffset,null); } else { this1.bufferSubData(target,offset,srcData); } }; lime_graphics_WebGLRenderContext.compressedTexImage2D = function(this1,target,level,internalformat,width,height,border,srcData) { var srcOffset = null; if(srcOffset != null) { this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,null); } else { this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData); } }; lime_graphics_WebGLRenderContext.compressedTexSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,srcData) { var srcOffset = null; if(srcOffset != null) { this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,null); } else { this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData); } }; lime_graphics_WebGLRenderContext.readPixels = function(this1,x,y,width,height,format,type,pixels) { var dstOffset = null; if(dstOffset != null) { this1.readPixels(x,y,width,height,format,type,pixels,dstOffset); } else { this1.readPixels(x,y,width,height,format,type,pixels); } }; lime_graphics_WebGLRenderContext.texImage2D = function(this1,target,level,internalformat,width,height,border,format,type,srcData) { var srcOffset = null; if(srcOffset != null) { this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset); } else if(format != null) { this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData); } else { this1.texImage2D(target,level,internalformat,width,height,border); } }; lime_graphics_WebGLRenderContext.texSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,type,srcData) { var srcOffset = null; if(srcOffset != null) { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset); } else if(type != null) { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData); } else { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format); } }; lime_graphics_WebGLRenderContext.uniformMatrix2fv = function(this1,location,transpose,v) { var data = v; var srcOffset = null; if(srcOffset != null) { this1.uniformMatrix2fv(location,transpose,data,srcOffset,null); } else { this1.uniformMatrix2fv(location,transpose,data); } }; lime_graphics_WebGLRenderContext.uniformMatrix3fv = function(this1,location,transpose,v) { var data = v; var srcOffset = null; if(srcOffset != null) { this1.uniformMatrix3fv(location,transpose,data,srcOffset,null); } else { this1.uniformMatrix3fv(location,transpose,data); } }; lime_graphics_WebGLRenderContext.uniformMatrix4fv = function(this1,location,transpose,v) { var data = v; var srcOffset = null; if(srcOffset != null) { this1.uniformMatrix4fv(location,transpose,data,srcOffset,null); } else { this1.uniformMatrix4fv(location,transpose,data); } }; lime_graphics_WebGLRenderContext.fromWebGL2RenderContext = function(gl) { return gl; }; lime_graphics_WebGLRenderContext.fromRenderContext = function(context) { return context.webgl; }; lime_graphics_WebGLRenderContext.fromGL = function(gl) { return lime_graphics_opengl_GL.context; }; var lime_graphics_cairo_Cairo = function(surface) { var tmp = 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() { } ,getOperator: function() { return 0; } ,identityMatrix: function() { } ,inClip: function(x,y) { return false; } ,inFill: function(x,y) { return false; } ,inStroke: function(x,y) { return false; } ,lineTo: function(x,y) { } ,mask: function(pattern) { } ,maskSurface: function(surface,x,y) { } ,moveTo: function(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() { } ,rotate: function(amount) { } ,save: function() { } ,scale: function(x,y) { } ,setFontSize: function(size) { } ,setOperator: function(value) { return value; } ,setSourceRGB: function(r,g,b) { } ,setSourceRGBA: function(r,g,b,a) { } ,setSourceSurface: function(surface,x,y) { } ,showGlyphs: function(glyphs) { } ,showPage: function() { } ,showText: function(utf8) { } ,status: function() { return 0; } ,stroke: function() { } ,strokeExtents: function(x1,y1,x2,y2) { } ,strokePreserve: function() { } ,textPath: function(utf8) { } ,transform: function(matrix) { } ,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_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_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 = {}; lime_graphics_cairo_CairoFTFontFace._new = function() { return 0; }; lime_graphics_cairo_CairoFTFontFace.create = function(face,loadFlags) { return 0; }; var lime_graphics_cairo_CairoFontFace = {}; lime_graphics_cairo_CairoFontFace._new = function() { return null; }; lime_graphics_cairo_CairoFontFace.status = function(this1) { return 0; }; var lime_graphics_cairo_CairoFontOptions = {}; lime_graphics_cairo_CairoFontOptions.__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._new = function() { return null; }; lime_graphics_cairo_CairoFontOptions.get_antialias = function(this1) { return 0; }; lime_graphics_cairo_CairoFontOptions.set_antialias = function(this1,value) { return value; }; lime_graphics_cairo_CairoFontOptions.get_hintMetrics = function(this1) { return 0; }; lime_graphics_cairo_CairoFontOptions.set_hintMetrics = function(this1,value) { return value; }; lime_graphics_cairo_CairoFontOptions.get_hintStyle = function(this1) { return 0; }; lime_graphics_cairo_CairoFontOptions.set_hintStyle = function(this1,value) { return value; }; lime_graphics_cairo_CairoFontOptions.get_subpixelOrder = function(this1) { return 0; }; lime_graphics_cairo_CairoFontOptions.set_subpixelOrder = function(this1,value) { return value; }; var lime_graphics_cairo_CairoGlyph = function(index,x,y) { if(y == null) { y = 0; } if(x == null) { x = 0; } this.index = index; this.x = x; this.y = y; }; $hxClasses["lime.graphics.cairo.CairoGlyph"] = lime_graphics_cairo_CairoGlyph; lime_graphics_cairo_CairoGlyph.__name__ = "lime.graphics.cairo.CairoGlyph"; lime_graphics_cairo_CairoGlyph.prototype = { index: null ,x: null ,y: null ,__class__: lime_graphics_cairo_CairoGlyph }; var lime_graphics_cairo_CairoImageSurface = {}; lime_graphics_cairo_CairoImageSurface.__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._new = function(format,width,height) { return 0; }; lime_graphics_cairo_CairoImageSurface.create = function(data,format,width,height,stride) { return 0; }; lime_graphics_cairo_CairoImageSurface.fromImage = function(image) { return null; }; lime_graphics_cairo_CairoImageSurface.get_data = function(this1) { return lime_utils_DataPointer.fromFloat(0); }; lime_graphics_cairo_CairoImageSurface.get_format = function(this1) { return 0; }; lime_graphics_cairo_CairoImageSurface.get_height = function(this1) { return 0; }; lime_graphics_cairo_CairoImageSurface.get_stride = function(this1) { return 0; }; lime_graphics_cairo_CairoImageSurface.get_width = function(this1) { return 0; }; var lime_graphics_cairo_CairoPattern = {}; lime_graphics_cairo_CairoPattern.__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._new = function(handle) { return handle; }; lime_graphics_cairo_CairoPattern.addColorStopRGB = function(this1,offset,r,g,b) { }; lime_graphics_cairo_CairoPattern.addColorStopRGBA = function(this1,offset,r,g,b,a) { }; lime_graphics_cairo_CairoPattern.createForSurface = function(surface) { return 0; }; lime_graphics_cairo_CairoPattern.createLinear = function(x0,y0,x1,y1) { return 0; }; lime_graphics_cairo_CairoPattern.createRadial = function(cx0,cy0,radius0,cx1,cy1,radius1) { return 0; }; lime_graphics_cairo_CairoPattern.createRGB = function(r,g,b) { return 0; }; lime_graphics_cairo_CairoPattern.createRGBA = function(r,g,b,a) { return 0; }; lime_graphics_cairo_CairoPattern.get_colorStopCount = function(this1) { return 0; }; lime_graphics_cairo_CairoPattern.get_extend = function(this1) { return 0; }; lime_graphics_cairo_CairoPattern.set_extend = function(this1,value) { return value; }; lime_graphics_cairo_CairoPattern.get_filter = function(this1) { return 0; }; lime_graphics_cairo_CairoPattern.set_filter = function(this1,value) { return value; }; lime_graphics_cairo_CairoPattern.get_matrix = function(this1) { return null; }; lime_graphics_cairo_CairoPattern.set_matrix = function(this1,value) { return value; }; var lime_graphics_cairo_CairoSurface = {}; lime_graphics_cairo_CairoSurface.flush = function(this1) { }; 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.context = null; lime_graphics_opengl_GL.type = null; lime_graphics_opengl_GL.version = 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.beginQuery = function(target,query) { lime_graphics_opengl_GL.context.beginQuery(target,query); }; lime_graphics_opengl_GL.beginTransformFeedback = function(primitiveNode) { lime_graphics_opengl_GL.context.beginTransformFeedback(primitiveNode); }; 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.bindBufferBase = function(target,index,buffer) { lime_graphics_opengl_GL.context.bindBufferBase(target,index,buffer); }; lime_graphics_opengl_GL.bindBufferRange = function(target,index,buffer,offset,size) { lime_graphics_opengl_GL.context.bindBufferRange(target,index,buffer,offset,lime_utils_DataPointer.fromFloat(size)); }; 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.bindSampler = function(unit,sampler) { lime_graphics_opengl_GL.context.bindSampler(unit,sampler); }; lime_graphics_opengl_GL.bindTexture = function(target,texture) { lime_graphics_opengl_GL.context.bindTexture(target,texture); }; lime_graphics_opengl_GL.bindTransformFeedback = function(target,transformFeedback) { lime_graphics_opengl_GL.context.bindTransformFeedback(target,transformFeedback); }; lime_graphics_opengl_GL.bindVertexArray = function(vertexArray) { lime_graphics_opengl_GL.context.bindVertexArray(vertexArray); }; lime_graphics_opengl_GL.blitFramebuffer = function(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter) { lime_graphics_opengl_GL.context.blitFramebuffer(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter); }; 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.bufferDataWEBGL = function(target,srcData,usage,srcOffset,length) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.bufferData(target,srcData,usage,srcOffset,length); } else { this1.bufferData(target,srcData,usage); } }; lime_graphics_opengl_GL.bufferSubDataWEBGL = function(target,dstByteOffset,srcData,srcOffset,length) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.bufferSubData(target,dstByteOffset,srcData,srcOffset,length); } else { this1.bufferSubData(target,dstByteOffset,srcData); } }; 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.clearBufferfi = function(buffer,drawbuffer,depth,stencil) { lime_graphics_opengl_GL.context.clearBufferfi(buffer,drawbuffer,depth,stencil); }; lime_graphics_opengl_GL.clearBufferfvWEBGL = function(buffer,drawbuffer,values,srcOffset) { lime_graphics_opengl_GL.context.clearBufferfv(buffer,drawbuffer,values,srcOffset); }; lime_graphics_opengl_GL.clearBufferivWEBGL = function(buffer,drawbuffer,values,srcOffset) { lime_graphics_opengl_GL.context.clearBufferiv(buffer,drawbuffer,values,srcOffset); }; lime_graphics_opengl_GL.clearBufferuivWEBGL = function(buffer,drawbuffer,values,srcOffset) { lime_graphics_opengl_GL.context.clearBufferuiv(buffer,drawbuffer,values,srcOffset); }; 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.clientWaitSync = function(sync,flags,timeout) { return lime_graphics_opengl_GL.context.clientWaitSync(sync,flags,timeout); }; 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.compressedTexImage2DWEBGL = function(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride); } else { this1.compressedTexImage2D(target,level,internalformat,width,height,border,srcData); } }; lime_graphics_opengl_GL.compressedTexImage3DWEBGL = function(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride) { lime_graphics_opengl_GL.context.compressedTexImage3D(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride); }; lime_graphics_opengl_GL.compressedTexSubImage2DWEBGL = function(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride); } else { this1.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData); } }; lime_graphics_opengl_GL.compressedTexSubImage3DWEBGL = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride) { lime_graphics_opengl_GL.context.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride); }; 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.copyTexSubImage3D = function(target,level,xoffset,yoffset,zoffset,x,y,width,height) { lime_graphics_opengl_GL.context.copyTexSubImage3D(target,level,xoffset,yoffset,zoffset,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.createQuery = function() { return lime_graphics_opengl_GL.context.createQuery(); }; lime_graphics_opengl_GL.createRenderbuffer = function() { return lime_graphics_opengl_GL.context.createRenderbuffer(); }; lime_graphics_opengl_GL.createSampler = function() { return lime_graphics_opengl_GL.context.createSampler(); }; 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.createTransformFeedback = function() { return lime_graphics_opengl_GL.context.createTransformFeedback(); }; lime_graphics_opengl_GL.createVertexArray = function() { return lime_graphics_opengl_GL.context.createVertexArray(); }; 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.deleteQuery = function(query) { lime_graphics_opengl_GL.context.deleteQuery(query); }; lime_graphics_opengl_GL.deleteRenderbuffer = function(renderbuffer) { lime_graphics_opengl_GL.context.deleteRenderbuffer(renderbuffer); }; lime_graphics_opengl_GL.deleteSampler = function(sampler) { lime_graphics_opengl_GL.context.deleteSampler(sampler); }; lime_graphics_opengl_GL.deleteShader = function(shader) { lime_graphics_opengl_GL.context.deleteShader(shader); }; lime_graphics_opengl_GL.deleteSync = function(sync) { lime_graphics_opengl_GL.context.deleteSync(sync); }; lime_graphics_opengl_GL.deleteTexture = function(texture) { lime_graphics_opengl_GL.context.deleteTexture(texture); }; lime_graphics_opengl_GL.deleteTransformFeedback = function(transformFeedback) { lime_graphics_opengl_GL.context.deleteTransformFeedback(transformFeedback); }; lime_graphics_opengl_GL.deleteVertexArray = function(vertexArray) { lime_graphics_opengl_GL.context.deleteVertexArray(vertexArray); }; 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.drawArraysInstanced = function(mode,first,count,instanceCount) { lime_graphics_opengl_GL.context.drawArraysInstanced(mode,first,count,instanceCount); }; lime_graphics_opengl_GL.drawBuffers = function(buffers) { lime_graphics_opengl_GL.context.drawBuffers(buffers); }; lime_graphics_opengl_GL.drawElements = function(mode,count,type,offset) { lime_graphics_opengl_GL.context.drawElements(mode,count,type,offset); }; lime_graphics_opengl_GL.drawElementsInstanced = function(mode,count,type,offset,instanceCount) { lime_graphics_opengl_GL.context.drawElementsInstanced(mode,count,type,offset,instanceCount); }; lime_graphics_opengl_GL.drawRangeElements = function(mode,start,end,count,type,offset) { lime_graphics_opengl_GL.context.drawRangeElements(mode,start,end,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.endQuery = function(target) { lime_graphics_opengl_GL.context.endQuery(target); }; lime_graphics_opengl_GL.endTransformFeedback = function() { lime_graphics_opengl_GL.context.endTransformFeedback(); }; lime_graphics_opengl_GL.fenceSync = function(condition,flags) { return lime_graphics_opengl_GL.context.fenceSync(condition,flags); }; 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.framebufferTextureLayer = function(target,attachment,texture,level,layer) { lime_graphics_opengl_GL.context.framebufferTextureLayer(target,attachment,texture,level,layer); }; 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.getActiveUniformBlockName = function(program,uniformBlockIndex) { return lime_graphics_opengl_GL.context.getActiveUniformBlockName(program,uniformBlockIndex); }; lime_graphics_opengl_GL.getActiveUniformBlockParameter = function(program,uniformBlockIndex,pname) { return lime_graphics_opengl_GL.context.getActiveUniformBlockParameter(program,uniformBlockIndex,pname); }; lime_graphics_opengl_GL.getActiveUniforms = function(program,uniformIndices,pname) { return lime_graphics_opengl_GL.context.getActiveUniforms(program,uniformIndices,pname); }; 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.getBufferSubDataWEBGL = function(target,srcByteOffset,dstData,srcOffset,length) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.getBufferSubData(target,srcByteOffset,dstData,srcOffset,length); } else { this1.getBufferSubData(target,srcByteOffset,dstData); } }; 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.getFragDataLocation = function(program,name) { return lime_graphics_opengl_GL.context.getFragDataLocation(program,name); }; lime_graphics_opengl_GL.getFramebufferAttachmentParameter = function(target,attachment,pname) { return lime_graphics_opengl_GL.context.getFramebufferAttachmentParameter(target,attachment,pname); }; lime_graphics_opengl_GL.getIndexedParameter = function(target,index) { return lime_graphics_opengl_GL.context.getIndexedParameter(target,index); }; lime_graphics_opengl_GL.getInternalformatParameter = function(target,internalformat,pname) { return lime_graphics_opengl_GL.context.getInternalformatParameter(target,internalformat,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.getQuery = function(target,pname) { return lime_graphics_opengl_GL.context.getQuery(target,pname); }; lime_graphics_opengl_GL.getQueryParameter = function(query,pname) { return lime_graphics_opengl_GL.context.getQueryParameter(query,pname); }; lime_graphics_opengl_GL.getRenderbufferParameter = function(target,pname) { return lime_graphics_opengl_GL.context.getRenderbufferParameter(target,pname); }; lime_graphics_opengl_GL.getSamplerParameter = function(sampler,pname) { return lime_graphics_opengl_GL.context.getSamplerParameter(sampler,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.getSyncParameter = function(sync,pname) { return lime_graphics_opengl_GL.context.getSyncParameter(sync,pname); }; lime_graphics_opengl_GL.getTexParameter = function(target,pname) { return lime_graphics_opengl_GL.context.getTexParameter(target,pname); }; lime_graphics_opengl_GL.getTransformFeedbackVarying = function(program,index) { return lime_graphics_opengl_GL.context.getTransformFeedbackVarying(program,index); }; lime_graphics_opengl_GL.getUniform = function(program,location) { return lime_graphics_opengl_GL.context.getUniform(program,location); }; lime_graphics_opengl_GL.getUniformBlockIndex = function(program,uniformBlockName) { return lime_graphics_opengl_GL.context.getUniformBlockIndex(program,uniformBlockName); }; lime_graphics_opengl_GL.getUniformIndices = function(program,uniformNames) { return lime_graphics_opengl_GL.context.getUniformIndices(program,uniformNames); }; 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_utils_DataPointer.fromFloat(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.invalidateFramebuffer = function(target,attachments) { lime_graphics_opengl_GL.context.invalidateFramebuffer(target,attachments); }; lime_graphics_opengl_GL.invalidateSubFramebuffer = function(target,attachments,x,y,width,height) { lime_graphics_opengl_GL.context.invalidateSubFramebuffer(target,attachments,x,y,width,height); }; 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.isQuery = function(query) { return lime_graphics_opengl_GL.context.isQuery(query); }; lime_graphics_opengl_GL.isRenderbuffer = function(renderbuffer) { return lime_graphics_opengl_GL.context.isRenderbuffer(renderbuffer); }; lime_graphics_opengl_GL.isSampler = function(sampler) { return lime_graphics_opengl_GL.context.isSampler(sampler); }; lime_graphics_opengl_GL.isShader = function(shader) { return lime_graphics_opengl_GL.context.isShader(shader); }; lime_graphics_opengl_GL.isSync = function(sync) { return lime_graphics_opengl_GL.context.isSync(sync); }; lime_graphics_opengl_GL.isTexture = function(texture) { return lime_graphics_opengl_GL.context.isTexture(texture); }; lime_graphics_opengl_GL.isTransformFeedback = function(transformFeedback) { return lime_graphics_opengl_GL.context.isTransformFeedback(transformFeedback); }; lime_graphics_opengl_GL.isVertexArray = function(vertexArray) { return lime_graphics_opengl_GL.context.isVertexArray(vertexArray); }; 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.pauseTransformFeedback = function() { lime_graphics_opengl_GL.context.pauseTransformFeedback(); }; 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.readBuffer = function(src) { lime_graphics_opengl_GL.context.readBuffer(src); }; lime_graphics_opengl_GL.readPixelsWEBGL = function(x,y,width,height,format,type,pixels,dstOffset) { var this1 = lime_graphics_opengl_GL.context; if(dstOffset != null) { this1.readPixels(x,y,width,height,format,type,pixels,dstOffset); } else { this1.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.renderbufferStorageMultisample = function(target,samples,internalformat,width,height) { lime_graphics_opengl_GL.context.renderbufferStorageMultisample(target,samples,internalformat,width,height); }; lime_graphics_opengl_GL.resumeTransformFeedback = function() { lime_graphics_opengl_GL.context.resumeTransformFeedback(); }; lime_graphics_opengl_GL.sampleCoverage = function(value,invert) { lime_graphics_opengl_GL.context.sampleCoverage(value,invert); }; lime_graphics_opengl_GL.samplerParameterf = function(sampler,pname,param) { lime_graphics_opengl_GL.context.samplerParameterf(sampler,pname,param); }; lime_graphics_opengl_GL.samplerParameteri = function(sampler,pname,param) { lime_graphics_opengl_GL.context.samplerParameteri(sampler,pname,param); }; 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.texImage2DWEBGL = function(target,level,internalformat,width,height,border,format,type,srcData,srcOffset) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset); } else if(format != null) { this1.texImage2D(target,level,internalformat,width,height,border,format,type,srcData); } else { this1.texImage2D(target,level,internalformat,width,height,border); } }; lime_graphics_opengl_GL.texImage3DWEBGL = function(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset) { lime_graphics_opengl_GL.context.texImage3D(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset); }; lime_graphics_opengl_GL.texStorage2D = function(target,level,internalformat,width,height) { lime_graphics_opengl_GL.context.texStorage2D(target,level,internalformat,width,height); }; lime_graphics_opengl_GL.texStorage3D = function(target,level,internalformat,width,height,depth) { lime_graphics_opengl_GL.context.texStorage3D(target,level,internalformat,width,height,depth); }; 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.texSubImage2DWEBGL = function(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset); } else if(type != null) { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData); } else { this1.texSubImage2D(target,level,xoffset,yoffset,width,height,format); } }; lime_graphics_opengl_GL.texSubImage3DWEBGL = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset) { lime_graphics_opengl_GL.context.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset); }; lime_graphics_opengl_GL.transformFeedbackVaryings = function(program,varyings,bufferMode) { lime_graphics_opengl_GL.context.transformFeedbackVaryings(program,varyings,bufferMode); }; lime_graphics_opengl_GL.uniform1f = function(location,v0) { lime_graphics_opengl_GL.context.uniform1f(location,v0); }; lime_graphics_opengl_GL.uniform1fvWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform1fv(location,data,srcOffset,srcLength); } else { this1.uniform1fv(location,data); } }; lime_graphics_opengl_GL.uniform1i = function(location,v0) { lime_graphics_opengl_GL.context.uniform1i(location,v0); }; lime_graphics_opengl_GL.uniform1ivWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform1iv(location,data,srcOffset,srcLength); } else { this1.uniform1iv(location,data); } }; lime_graphics_opengl_GL.uniform1ui = function(location,v0) { lime_graphics_opengl_GL.context.uniform1ui(location,v0); }; lime_graphics_opengl_GL.uniform1uivWEBGL = function(location,data,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniform1uiv(location,data,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniform2f = function(location,v0,v1) { lime_graphics_opengl_GL.context.uniform2f(location,v0,v1); }; lime_graphics_opengl_GL.uniform2fvWEBGL = function(location,data,srcOffset,srcLength) { lime_graphics_WebGL2RenderContext.uniform2fv(lime_graphics_opengl_GL.context,location,data,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniform2i = function(location,x,y) { lime_graphics_opengl_GL.context.uniform2i(location,x,y); }; lime_graphics_opengl_GL.uniform2ivWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform2iv(location,data,srcOffset,srcLength); } else { this1.uniform2iv(location,data); } }; lime_graphics_opengl_GL.uniform2ui = function(location,x,y) { lime_graphics_opengl_GL.context.uniform2ui(location,x,y); }; lime_graphics_opengl_GL.uniform2uivWEBGL = function(location,data,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniform2uiv(location,data,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniform3f = function(location,v0,v1,v2) { lime_graphics_opengl_GL.context.uniform3f(location,v0,v1,v2); }; lime_graphics_opengl_GL.uniform3fvWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform3fv(location,data,srcOffset,srcLength); } else { this1.uniform3fv(location,data); } }; lime_graphics_opengl_GL.uniform3i = function(location,v0,v1,v2) { lime_graphics_opengl_GL.context.uniform3i(location,v0,v1,v2); }; lime_graphics_opengl_GL.uniform3ivWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform3iv(location,data,srcOffset,srcLength); } else { this1.uniform3iv(location,data); } }; lime_graphics_opengl_GL.uniform3ui = function(location,v0,v1,v2) { lime_graphics_opengl_GL.context.uniform3ui(location,v0,v1,v2); }; lime_graphics_opengl_GL.uniform3uivWEBGL = function(location,data,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniform3uiv(location,data,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniform4f = function(location,v0,v1,v2,v3) { lime_graphics_opengl_GL.context.uniform4f(location,v0,v1,v2,v3); }; lime_graphics_opengl_GL.uniform4fvWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform4fv(location,data,srcOffset,srcLength); } else { this1.uniform4fv(location,data); } }; lime_graphics_opengl_GL.uniform4i = function(location,v0,v1,v2,v3) { lime_graphics_opengl_GL.context.uniform4i(location,v0,v1,v2,v3); }; lime_graphics_opengl_GL.uniform4ivWEBGL = function(location,data,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniform4iv(location,data,srcOffset,srcLength); } else { this1.uniform4iv(location,data); } }; lime_graphics_opengl_GL.uniform4ui = function(location,v0,v1,v2,v3) { lime_graphics_opengl_GL.context.uniform4ui(location,v0,v1,v2,v3); }; lime_graphics_opengl_GL.uniform4uivWEBGL = function(location,data,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniform4uiv(location,data,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniformBlockBinding = function(program,uniformBlockIndex,uniformBlockBinding) { lime_graphics_opengl_GL.context.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding); }; lime_graphics_opengl_GL.uniformMatrix2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniformMatrix2fv(location,transpose,v,srcOffset,srcLength); } else { this1.uniformMatrix2fv(location,transpose,v); } }; lime_graphics_opengl_GL.uniformMatrix2x3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniformMatrix2x3fv(location,transpose,v,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniformMatrix2x4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniformMatrix2x4fv(location,transpose,v,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniformMatrix3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniformMatrix3fv(location,transpose,v,srcOffset,srcLength); } else { this1.uniformMatrix3fv(location,transpose,v); } }; lime_graphics_opengl_GL.uniformMatrix3x2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniformMatrix3x2fv(location,transpose,v,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniformMatrix3x4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniformMatrix3x4fv(location,transpose,v,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniformMatrix4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { var this1 = lime_graphics_opengl_GL.context; if(srcOffset != null) { this1.uniformMatrix4fv(location,transpose,v,srcOffset,srcLength); } else { this1.uniformMatrix4fv(location,transpose,v); } }; lime_graphics_opengl_GL.uniformMatrix4x2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniformMatrix4x2fv(location,transpose,v,srcOffset,srcLength); }; lime_graphics_opengl_GL.uniformMatrix4x3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) { lime_graphics_opengl_GL.context.uniformMatrix4x3fv(location,transpose,v,srcOffset,srcLength); }; 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(index,v0) { lime_graphics_opengl_GL.context.vertexAttrib1f(index,v0); }; lime_graphics_opengl_GL.vertexAttrib1fv = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib1fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib1fvWEBGL = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib1fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib2f = function(index,v0,v1) { lime_graphics_opengl_GL.context.vertexAttrib2f(index,v0,v1); }; lime_graphics_opengl_GL.vertexAttrib2fv = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib2fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib2fvWEBGL = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib2fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib3f = function(index,v0,v1,v2) { lime_graphics_opengl_GL.context.vertexAttrib3f(index,v0,v1,v2); }; lime_graphics_opengl_GL.vertexAttrib3fv = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib3fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib3fvWEBGL = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib3fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib4f = function(index,v0,v1,v2,v3) { lime_graphics_opengl_GL.context.vertexAttrib4f(index,v0,v1,v2,v3); }; lime_graphics_opengl_GL.vertexAttrib4fv = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib4fv(index,v); }; lime_graphics_opengl_GL.vertexAttrib4fvWEBGL = function(index,v) { lime_graphics_opengl_GL.context.vertexAttrib4fv(index,v); }; lime_graphics_opengl_GL.vertexAttribDivisor = function(index,divisor) { lime_graphics_opengl_GL.context.vertexAttribDivisor(index,divisor); }; lime_graphics_opengl_GL.vertexAttribI4i = function(index,v0,v1,v2,v3) { lime_graphics_opengl_GL.context.vertexAttribI4i(index,v0,v1,v2,v3); }; lime_graphics_opengl_GL.vertexAttribI4iv = function(index,v) { lime_graphics_opengl_GL.context.vertexAttribI4iv(index,v); }; lime_graphics_opengl_GL.vertexAttribI4ivWEBGL = function(index,v) { lime_graphics_opengl_GL.context.vertexAttribI4iv(index,v); }; lime_graphics_opengl_GL.vertexAttribI4ui = function(index,v0,v1,v2,v3) { lime_graphics_opengl_GL.context.vertexAttribI4ui(index,v0,v1,v2,v3); }; lime_graphics_opengl_GL.vertexAttribI4uiv = function(index,v) { lime_graphics_opengl_GL.context.vertexAttribI4uiv(index,v); }; lime_graphics_opengl_GL.vertexAttribI4uivWEBGL = function(index,v) { lime_graphics_opengl_GL.context.vertexAttribI4uiv(index,v); }; lime_graphics_opengl_GL.vertexAttribIPointer = function(index,size,type,stride,offset) { lime_graphics_opengl_GL.context.vertexAttribIPointer(index,size,type,stride,offset); }; lime_graphics_opengl_GL.vertexAttribPointer = function(index,size,type,normalized,stride,offset) { lime_graphics_opengl_GL.context.vertexAttribPointer(index,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.waitSync = function(sync,flags,timeout) { lime_graphics_opengl_GL.context.waitSync(sync,flags,timeout); }; lime_graphics_opengl_GL.__getObjectID = function(object) { if(object == null) { return 0; } else { return object.id; } }; var lime_graphics_opengl_GLProgram = {}; lime_graphics_opengl_GLProgram.fromSources = function(gl,vertexSource,fragmentSource) { var vertexShader = lime_graphics_opengl_GLShader.fromSource(gl,vertexSource,gl.VERTEX_SHADER); var fragmentShader = lime_graphics_opengl_GLShader.fromSource(gl,fragmentSource,gl.FRAGMENT_SHADER); var program = gl.createProgram(); gl.attachShader(program,vertexShader); gl.attachShader(program,fragmentShader); gl.linkProgram(program); if(gl.getProgramParameter(program,35714) == 0) { var message = "Unable to initialize the shader program"; message += "\n" + lime_graphics_opengl_GL.context.getProgramInfoLog(program); lime_utils_Log.error(message,{ fileName : "lime/graphics/opengl/GLProgram.hx", lineNumber : 39, className : "lime.graphics.opengl._GLProgram.GLProgram_Impl_", methodName : "fromSources"}); } return program; }; var lime_graphics_opengl_GLShader = {}; lime_graphics_opengl_GLShader.fromSource = function(gl,source,type) { var shader = gl.createShader(type); gl.shaderSource(shader,source); gl.compileShader(shader); var shaderInfoLog = gl.getShaderInfoLog(shader); var compileStatus = gl.getShaderParameter(shader,gl.COMPILE_STATUS); if(shaderInfoLog != null || compileStatus == 0) { var message; if(compileStatus == 0) { message = "Error "; } else { message = "Info "; } if(type == gl.VERTEX_SHADER) { message = "compiling vertex shader"; } else if(type == gl.FRAGMENT_SHADER) { message = "compiling fragment shader"; } else { message = "compiling unknown shader type"; } message += "\n" + shaderInfoLog; if(compileStatus == 0) { lime_utils_Log.error(message,{ fileName : "lime/graphics/opengl/GLShader.hx", lineNumber : 47, className : "lime.graphics.opengl._GLShader.GLShader_Impl_", methodName : "fromSource"}); } else if(shaderInfoLog != null) { lime_utils_Log.debug(message,{ fileName : "lime/graphics/opengl/GLShader.hx", lineNumber : 48, className : "lime.graphics.opengl._GLShader.GLShader_Impl_", methodName : "fromSource"}); } } return shader; }; var lime_graphics_opengl_ext_KHR_$debug = function() { this.STACK_UNDERFLOW = 1284; this.STACK_OVERFLOW = 1283; this.CONTEXT_FLAG_DEBUG_BIT = 2; this.DEBUG_OUTPUT = 37600; this.DEBUG_SEVERITY_LOW = 37192; this.DEBUG_SEVERITY_MEDIUM = 37191; this.DEBUG_SEVERITY_HIGH = 37190; this.DEBUG_LOGGED_MESSAGES = 37189; this.MAX_DEBUG_LOGGED_MESSAGES = 37188; this.MAX_DEBUG_MESSAGE_LENGTH = 37187; this.MAX_LABEL_LENGTH = 33512; this.SAMPLER = 33510; this.QUERY = 33507; this.PROGRAM = 33506; this.SHADER = 33505; this.BUFFER = 33504; this.DEBUG_GROUP_STACK_DEPTH = 33389; this.MAX_DEBUG_GROUP_STACK_DEPTH = 33388; this.DEBUG_SEVERITY_NOTIFICATION = 33387; this.DEBUG_TYPE_POP_GROUP = 33386; this.DEBUG_TYPE_PUSH_GROUP = 33385; this.DEBUG_TYPE_MARKER = 33384; this.DEBUG_TYPE_OTHER = 33361; this.DEBUG_TYPE_PERFORMANCE = 33360; this.DEBUG_TYPE_PORTABILITY = 33359; this.DEBUG_TYPE_UNDEFINED_BEHAVIOR = 33358; this.DEBUG_TYPE_DEPRECATED_BEHAVIOR = 33357; this.DEBUG_TYPE_ERROR = 33356; this.DEBUG_SOURCE_OTHER = 33355; this.DEBUG_SOURCE_APPLICATION = 33354; this.DEBUG_SOURCE_THIRD_PARTY = 33353; this.DEBUG_SOURCE_SHADER_COMPILER = 33352; this.DEBUG_SOURCE_WINDOW_SYSTEM = 33351; this.DEBUG_SOURCE_API = 33350; this.DEBUG_CALLBACK_USER_PARAM = 33349; this.DEBUG_CALLBACK_FUNCTION = 33348; this.DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 33347; this.DEBUG_OUTPUT_SYNCHRONOUS = 33346; }; $hxClasses["lime.graphics.opengl.ext.KHR_debug"] = lime_graphics_opengl_ext_KHR_$debug; lime_graphics_opengl_ext_KHR_$debug.__name__ = "lime.graphics.opengl.ext.KHR_debug"; lime_graphics_opengl_ext_KHR_$debug.prototype = { DEBUG_OUTPUT_SYNCHRONOUS: null ,DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: null ,DEBUG_CALLBACK_FUNCTION: null ,DEBUG_CALLBACK_USER_PARAM: null ,DEBUG_SOURCE_API: null ,DEBUG_SOURCE_WINDOW_SYSTEM: null ,DEBUG_SOURCE_SHADER_COMPILER: null ,DEBUG_SOURCE_THIRD_PARTY: null ,DEBUG_SOURCE_APPLICATION: null ,DEBUG_SOURCE_OTHER: null ,DEBUG_TYPE_ERROR: null ,DEBUG_TYPE_DEPRECATED_BEHAVIOR: null ,DEBUG_TYPE_UNDEFINED_BEHAVIOR: null ,DEBUG_TYPE_PORTABILITY: null ,DEBUG_TYPE_PERFORMANCE: null ,DEBUG_TYPE_OTHER: null ,DEBUG_TYPE_MARKER: null ,DEBUG_TYPE_PUSH_GROUP: null ,DEBUG_TYPE_POP_GROUP: null ,DEBUG_SEVERITY_NOTIFICATION: null ,MAX_DEBUG_GROUP_STACK_DEPTH: null ,DEBUG_GROUP_STACK_DEPTH: null ,BUFFER: null ,SHADER: null ,PROGRAM: null ,QUERY: null ,SAMPLER: null ,MAX_LABEL_LENGTH: null ,MAX_DEBUG_MESSAGE_LENGTH: null ,MAX_DEBUG_LOGGED_MESSAGES: null ,DEBUG_LOGGED_MESSAGES: null ,DEBUG_SEVERITY_HIGH: null ,DEBUG_SEVERITY_MEDIUM: null ,DEBUG_SEVERITY_LOW: null ,DEBUG_OUTPUT: null ,CONTEXT_FLAG_DEBUG_BIT: null ,STACK_OVERFLOW: null ,STACK_UNDERFLOW: null ,__class__: lime_graphics_opengl_ext_KHR_$debug }; var lime_math_ARGB = {}; lime_math_ARGB.__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_ARGB.a16 = null; lime_math_ARGB.unmult = null; lime_math_ARGB._new = function(argb) { if(argb == null) { argb = 0; } return argb; }; lime_math_ARGB.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_ARGB.multiplyAlpha = function(this1) { if((this1 >>> 24 & 255) == 0) { this1 = 0; } else if((this1 >>> 24 & 255) != 255) { lime_math_ARGB.a16 = lime_math_RGBA.__alpha16[this1 >>> 24 & 255]; this1 = (this1 >>> 24 & 255 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 8 | (this1 & 255) * lime_math_ARGB.a16 >> 16 & 255; } }; lime_math_ARGB.readUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: this1 = (data[offset + 1] & 255) << 24 | (data[offset] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset + 2] & 255; break; } if(premultiplied) { if((this1 >>> 24 & 255) != 0 && (this1 >>> 24 & 255) != 255) { lime_math_ARGB.unmult = 255.0 / (this1 >>> 24 & 255); this1 = (this1 >>> 24 & 255 & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_ARGB.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_ARGB.unmult)] & 255) << 8 | lime_math_RGBA.__clamp[Math.floor((this1 & 255) * lime_math_ARGB.unmult)] & 255; } } }; lime_math_ARGB.set = function(this1,a,r,g,b) { this1 = (a & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255; }; lime_math_ARGB.unmultiplyAlpha = function(this1) { if((this1 >>> 24 & 255) != 0 && (this1 >>> 24 & 255) != 255) { lime_math_ARGB.unmult = 255.0 / (this1 >>> 24 & 255); this1 = (this1 >>> 24 & 255 & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_ARGB.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_ARGB.unmult)] & 255) << 8 | lime_math_RGBA.__clamp[Math.floor((this1 & 255) * lime_math_ARGB.unmult)] & 255; } }; lime_math_ARGB.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_ARGB.a16 = lime_math_RGBA.__alpha16[this1 >>> 24 & 255]; this1 = (this1 >>> 24 & 255 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_ARGB.a16 >> 16 & 255) << 8 | (this1 & 255) * lime_math_ARGB.a16 >> 16 & 255; } } switch(format) { 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; 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; } }; lime_math_ARGB.__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_ARGB.__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_ARGB.get_a = function(this1) { return this1 >>> 24 & 255; }; lime_math_ARGB.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_ARGB.get_b = function(this1) { return this1 & 255; }; lime_math_ARGB.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_ARGB.get_g = function(this1) { return this1 >>> 8 & 255; }; lime_math_ARGB.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_ARGB.get_r = function(this1) { return this1 >>> 16 & 255; }; lime_math_ARGB.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_BGRA = {}; lime_math_BGRA.__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_BGRA.a16 = null; lime_math_BGRA.unmult = null; lime_math_BGRA._new = function(bgra) { if(bgra == null) { bgra = 0; } return bgra; }; lime_math_BGRA.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_BGRA.multiplyAlpha = function(this1) { if((this1 & 255) == 0) { this1 = 0; } else if((this1 & 255) != 255) { lime_math_BGRA.a16 = lime_math_RGBA.__alpha16[this1 & 255]; this1 = ((this1 >>> 24 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } }; lime_math_BGRA.readUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: this1 = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_BGRA.unmult = 255.0 / (this1 & 255); this1 = (lime_math_RGBA.__clamp[Math.floor((this1 >>> 24 & 255) * lime_math_BGRA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_BGRA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_BGRA.unmult)] & 255) << 8 | this1 & 255 & 255; } } }; lime_math_BGRA.set = function(this1,b,g,r,a) { this1 = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | a & 255; }; lime_math_BGRA.unmultiplyAlpha = function(this1) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_BGRA.unmult = 255.0 / (this1 & 255); this1 = (lime_math_RGBA.__clamp[Math.floor((this1 >>> 24 & 255) * lime_math_BGRA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 16 & 255) * lime_math_BGRA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.floor((this1 >>> 8 & 255) * lime_math_BGRA.unmult)] & 255) << 8 | this1 & 255 & 255; } }; lime_math_BGRA.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_BGRA.a16 = lime_math_RGBA.__alpha16[this1 & 255]; this1 = ((this1 >>> 24 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_BGRA.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } } switch(format) { 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; 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; } }; lime_math_BGRA.__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_BGRA.__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_BGRA.get_a = function(this1) { return this1 & 255; }; lime_math_BGRA.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_BGRA.get_b = function(this1) { return this1 >>> 24 & 255; }; lime_math_BGRA.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_BGRA.get_g = function(this1) { return this1 >>> 16 & 255; }; lime_math_BGRA.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_BGRA.get_r = function(this1) { return this1 >>> 8 & 255; }; lime_math_BGRA.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_ColorMatrix = {}; lime_math_ColorMatrix.__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.__alphaTable = null; lime_math_ColorMatrix.__blueTable = null; lime_math_ColorMatrix.__greenTable = null; lime_math_ColorMatrix.__redTable = null; lime_math_ColorMatrix._new = function(data) { var this1; if(data != null && data.length == 20) { this1 = data; } else { var elements = null; var array = lime_math_ColorMatrix.__identity; var vector = null; var view = null; var buffer = null; var len = null; var this2; if(elements != null) { this2 = new Float32Array(elements); } else if(array != null) { this2 = new Float32Array(array); } else if(vector != null) { this2 = new Float32Array(vector.__array); } else if(view != null) { this2 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this2 = new Float32Array(buffer,0); } else { this2 = new Float32Array(buffer,0,len); } } else { this2 = null; } this1 = this2; } return this1; }; lime_math_ColorMatrix.clone = function(this1) { var elements = null; var array = null; var vector = null; var view = lime_utils_Float32Array.toArrayBufferView(this1); var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } return lime_math_ColorMatrix._new(this1); }; lime_math_ColorMatrix.concat = function(this1,second) { this1[0] += second[0]; this1[6] += second[6]; this1[12] += second[12]; this1[18] += second[18]; }; lime_math_ColorMatrix.copyFrom = function(this1,other) { this1.set(other); }; lime_math_ColorMatrix.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.getAlphaTable = function(this1) { if(lime_math_ColorMatrix.__alphaTable == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; lime_math_ColorMatrix.__alphaTable = new Uint8Array(256); } var value; lime_math_ColorMatrix.__alphaTable[0] = 0; var _g = 1; while(_g < 256) { var i = _g++; value = Math.floor(i * this1[18] + this1[19] * 255); if(value > 255) { value = 255; } if(value < 0) { value = 0; } lime_math_ColorMatrix.__alphaTable[i] = value; } return lime_math_ColorMatrix.__alphaTable; }; lime_math_ColorMatrix.getBlueTable = function(this1) { if(lime_math_ColorMatrix.__blueTable == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; lime_math_ColorMatrix.__blueTable = new Uint8Array(256); } var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * this1[12] + this1[14] * 255); if(value > 255) { value = 255; } if(value < 0) { value = 0; } lime_math_ColorMatrix.__blueTable[i] = value; } return lime_math_ColorMatrix.__blueTable; }; lime_math_ColorMatrix.getGreenTable = function(this1) { if(lime_math_ColorMatrix.__greenTable == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; lime_math_ColorMatrix.__greenTable = new Uint8Array(256); } var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * this1[6] + this1[9] * 255); if(value > 255) { value = 255; } if(value < 0) { value = 0; } lime_math_ColorMatrix.__greenTable[i] = value; } return lime_math_ColorMatrix.__greenTable; }; lime_math_ColorMatrix.getRedTable = function(this1) { if(lime_math_ColorMatrix.__redTable == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; lime_math_ColorMatrix.__redTable = new Uint8Array(256); } var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * this1[0] + this1[4] * 255); if(value > 255) { value = 255; } if(value < 0) { value = 0; } lime_math_ColorMatrix.__redTable[i] = value; } return lime_math_ColorMatrix.__redTable; }; lime_math_ColorMatrix.__toFlashColorTransform = function(this1) { return null; }; lime_math_ColorMatrix.get_alphaMultiplier = function(this1) { return this1[18]; }; lime_math_ColorMatrix.set_alphaMultiplier = function(this1,value) { return this1[18] = value; }; lime_math_ColorMatrix.get_alphaOffset = function(this1) { return this1[19] * 255; }; lime_math_ColorMatrix.set_alphaOffset = function(this1,value) { return this1[19] = value / 255; }; lime_math_ColorMatrix.get_blueMultiplier = function(this1) { return this1[12]; }; lime_math_ColorMatrix.set_blueMultiplier = function(this1,value) { return this1[12] = value; }; lime_math_ColorMatrix.get_blueOffset = function(this1) { return this1[14] * 255; }; lime_math_ColorMatrix.set_blueOffset = function(this1,value) { return this1[14] = value / 255; }; lime_math_ColorMatrix.get_color = function(this1) { return (this1[4] * 255 | 0) << 16 | (this1[9] * 255 | 0) << 8 | (this1[14] * 255 | 0); }; lime_math_ColorMatrix.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.get_color(this1); }; lime_math_ColorMatrix.get_greenMultiplier = function(this1) { return this1[6]; }; lime_math_ColorMatrix.set_greenMultiplier = function(this1,value) { return this1[6] = value; }; lime_math_ColorMatrix.get_greenOffset = function(this1) { return this1[9] * 255; }; lime_math_ColorMatrix.set_greenOffset = function(this1,value) { return this1[9] = value / 255; }; lime_math_ColorMatrix.get_redMultiplier = function(this1) { return this1[0]; }; lime_math_ColorMatrix.set_redMultiplier = function(this1,value) { return this1[0] = value; }; lime_math_ColorMatrix.get_redOffset = function(this1) { return this1[4] * 255; }; lime_math_ColorMatrix.set_redOffset = function(this1,value) { return this1[4] = value / 255; }; lime_math_ColorMatrix.get = function(this1,index) { return this1[index]; }; lime_math_ColorMatrix.set = function(this1,index,value) { return this1[index] = value; }; var lime_math_Matrix4 = {}; lime_math_Matrix4.__properties__ = {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"}; lime_math_Matrix4._new = function(data) { var this1; if(data != null && data.length == 16) { this1 = data; } else { var elements = null; var array = lime_math_Matrix4.__identity; var vector = null; var view = null; var buffer = null; var len = null; var this2; if(elements != null) { this2 = new Float32Array(elements); } else if(array != null) { this2 = new Float32Array(array); } else if(vector != null) { this2 = new Float32Array(vector.__array); } else if(view != null) { this2 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this2 = new Float32Array(buffer,0); } else { this2 = new Float32Array(buffer,0,len); } } else { this2 = null; } this1 = this2; } return this1; }; lime_math_Matrix4.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.get(lhs,0); var m221 = lime_math_Matrix4.get(lhs,4); var m231 = lime_math_Matrix4.get(lhs,8); var m241 = lime_math_Matrix4.get(lhs,12); var m212 = lime_math_Matrix4.get(lhs,1); var m222 = lime_math_Matrix4.get(lhs,5); var m232 = lime_math_Matrix4.get(lhs,9); var m242 = lime_math_Matrix4.get(lhs,13); var m213 = lime_math_Matrix4.get(lhs,2); var m223 = lime_math_Matrix4.get(lhs,6); var m233 = lime_math_Matrix4.get(lhs,10); var m243 = lime_math_Matrix4.get(lhs,14); var m214 = lime_math_Matrix4.get(lhs,3); var m224 = lime_math_Matrix4.get(lhs,7); var m234 = lime_math_Matrix4.get(lhs,11); var m244 = lime_math_Matrix4.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.appendRotation = function(this1,degrees,axis,pivotPoint) { var m = lime_math_Matrix4.__getAxisRotation(this1,axis.x,axis.y,axis.z,degrees); if(pivotPoint != null) { var p = pivotPoint; lime_math_Matrix4.appendTranslation(m,p.x,p.y,p.z); } lime_math_Matrix4.append(this1,m); }; lime_math_Matrix4.appendScale = function(this1,xScale,yScale,zScale) { var elements = null; 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 vector = null; var view = null; var buffer = null; var len = null; var this2; if(elements != null) { this2 = new Float32Array(elements); } else if(array != null) { this2 = new Float32Array(array); } else if(vector != null) { this2 = new Float32Array(vector.__array); } else if(view != null) { this2 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this2 = new Float32Array(buffer,0); } else { this2 = new Float32Array(buffer,0,len); } } else { this2 = null; } lime_math_Matrix4.append(this1,lime_math_Matrix4._new(this2)); }; lime_math_Matrix4.appendTranslation = function(this1,x,y,z) { this1[12] += x; this1[13] += y; this1[14] += z; }; lime_math_Matrix4.clone = function(this1) { var elements = null; var array = null; var vector = null; var view = lime_utils_Float32Array.toArrayBufferView(this1); var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } return lime_math_Matrix4._new(this1); }; lime_math_Matrix4.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: lime_utils_Log.error("Column " + column + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 187, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyColumnFrom"}); } }; lime_math_Matrix4.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: lime_utils_Log.error("Column " + column + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 225, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyColumnTo"}); } }; lime_math_Matrix4.copyFrom = function(this1,other) { this1.set(other); }; lime_math_Matrix4.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: lime_utils_Log.error("Row " + row + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 272, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyRowFrom"}); } }; lime_math_Matrix4.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: lime_utils_Log.error("Row " + row + " out of bounds [0, ..., 3]",{ fileName : "lime/math/Matrix4.hx", lineNumber : 310, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyRowTo"}); } }; lime_math_Matrix4.create2D = function(this1,a,b,c,d,tx,ty) { if(ty == null) { ty = 0; } if(tx == null) { tx = 0; } this1[0] = a; this1[1] = b; this1[2] = 0; this1[3] = 0; this1[4] = c; this1[5] = d; this1[6] = 0; this1[7] = 0; this1[8] = 0; this1[9] = 0; this1[10] = 1; this1[11] = 0; this1[12] = tx; this1[13] = ty; this1[14] = 0; this1[15] = 1; }; lime_math_Matrix4.createOrtho = function(this1,left,right,bottom,top,zNear,zFar) { var sx = 1.0 / (right - left); var sy = 1.0 / (top - bottom); var sz = 1.0 / (zFar - zNear); this1[0] = 2 * sx; this1[1] = 0; this1[2] = 0; this1[3] = 0; this1[4] = 0; this1[5] = 2 * sy; this1[6] = 0; this1[7] = 0; this1[8] = 0; this1[9] = 0; this1[10] = -2 * sz; this1[11] = 0; this1[12] = -(left + right) * sx; this1[13] = -(bottom + top) * sy; this1[14] = -(zNear + zFar) * sz; this1[15] = 1; }; lime_math_Matrix4.deltaTransformVector = function(this1,v,result) { if(result == null) { result = new lime_math_Vector4(); } var x = v.x; var y = v.y; var z = v.z; result.x = x * this1[0] + y * this1[4] + z * this1[8] + this1[3]; result.y = x * this1[1] + y * this1[5] + z * this1[9] + this1[7]; result.z = x * this1[2] + y * this1[6] + z * this1[10] + this1[11]; return result; }; lime_math_Matrix4.fromMatrix3 = function(matrix3) { var mat = lime_math_Matrix4._new(); lime_math_Matrix4.create2D(mat,matrix3.a,matrix3.b,matrix3.c,matrix3.d,matrix3.tx,matrix3.ty); return mat; }; lime_math_Matrix4.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.interpolate = function(thisMat,toMat,percent,result) { if(result == null) { result = lime_math_Matrix4._new(); } var _g = 0; while(_g < 16) { var i = _g++; lime_math_Matrix4.set(result,i,lime_math_Matrix4.get(thisMat,i) + (lime_math_Matrix4.get(toMat,i) - lime_math_Matrix4.get(thisMat,i)) * percent); } return result; }; lime_math_Matrix4.interpolateTo = function(this1,toMat,percent) { var _g = 0; while(_g < 16) { var i = _g++; this1[i] += (lime_math_Matrix4.get(toMat,i) - this1[i]) * percent; } }; lime_math_Matrix4.invert = function(this1) { var d = lime_math_Matrix4.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.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 result = null; if(result == null) { result = new lime_math_Vector4(); } result.x = pos.x - at.x; result.y = pos.y - at.y; result.z = pos.z - at.z; var dir = result; var vup = new lime_math_Vector4(up.x,up.y,up.z,up.w); var l = Math.sqrt(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z); if(l != 0) { dir.x /= l; dir.y /= l; dir.z /= l; } var l = Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z); if(l != 0) { vup.x /= l; vup.y /= l; vup.z /= l; } var dir2 = new lime_math_Vector4(dir.x,dir.y,dir.z,dir.w); var s = vup.x * dir.x + vup.y * dir.y + vup.z * dir.z; dir2.x *= s; dir2.y *= s; dir2.z *= s; var result = null; if(result == null) { result = new lime_math_Vector4(); } result.x = vup.x - dir2.x; result.y = vup.y - dir2.y; result.z = vup.z - dir2.z; vup = result; if(Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z) > 0) { var l = Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z); if(l != 0) { vup.x /= l; vup.y /= l; vup.z /= l; } } else if(dir.x != 0) { vup = new lime_math_Vector4(-dir.y,dir.x,0); } else { vup = new lime_math_Vector4(1,0,0); } var result = null; if(result == null) { result = new lime_math_Vector4(); } var ya = vup.z * dir.x - vup.x * dir.z; var za = vup.x * dir.y - vup.y * dir.x; result.x = vup.y * dir.z - vup.z * dir.y; result.y = ya; result.z = za; result.w = 1; var right = result; var l = Math.sqrt(right.x * right.x + right.y * right.y + right.z * right.z); if(l != 0) { right.x /= l; right.y /= l; right.z /= l; } 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.prepend = function(this1,rhs) { var m111 = lime_math_Matrix4.get(rhs,0); var m121 = lime_math_Matrix4.get(rhs,4); var m131 = lime_math_Matrix4.get(rhs,8); var m141 = lime_math_Matrix4.get(rhs,12); var m112 = lime_math_Matrix4.get(rhs,1); var m122 = lime_math_Matrix4.get(rhs,5); var m132 = lime_math_Matrix4.get(rhs,9); var m142 = lime_math_Matrix4.get(rhs,13); var m113 = lime_math_Matrix4.get(rhs,2); var m123 = lime_math_Matrix4.get(rhs,6); var m133 = lime_math_Matrix4.get(rhs,10); var m143 = lime_math_Matrix4.get(rhs,14); var m114 = lime_math_Matrix4.get(rhs,3); var m124 = lime_math_Matrix4.get(rhs,7); var m134 = lime_math_Matrix4.get(rhs,11); var m144 = lime_math_Matrix4.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.prependRotation = function(this1,degrees,axis,pivotPoint) { var m = lime_math_Matrix4.__getAxisRotation(this1,axis.x,axis.y,axis.z,degrees); if(pivotPoint != null) { var p = pivotPoint; lime_math_Matrix4.appendTranslation(m,p.x,p.y,p.z); } lime_math_Matrix4.prepend(this1,m); }; lime_math_Matrix4.prependScale = function(this1,xScale,yScale,zScale) { var elements = null; 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 vector = null; var view = null; var buffer = null; var len = null; var this2; if(elements != null) { this2 = new Float32Array(elements); } else if(array != null) { this2 = new Float32Array(array); } else if(vector != null) { this2 = new Float32Array(vector.__array); } else if(view != null) { this2 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this2 = new Float32Array(buffer,0); } else { this2 = new Float32Array(buffer,0,len); } } else { this2 = null; } lime_math_Matrix4.prepend(this1,lime_math_Matrix4._new(this2)); }; lime_math_Matrix4.prependTranslation = function(this1,x,y,z) { var m = lime_math_Matrix4._new(); lime_math_Matrix4.set_position(m,new lime_math_Vector4(x,y,z)); lime_math_Matrix4.prepend(this1,m); }; lime_math_Matrix4.transformVector = function(this1,v,result) { if(result == null) { result = new lime_math_Vector4(); } var x = v.x; var y = v.y; var z = v.z; result.x = x * this1[0] + y * this1[4] + z * this1[8] + this1[12]; result.y = x * this1[1] + y * this1[5] + z * this1[9] + this1[13]; result.z = x * this1[2] + y * this1[6] + z * this1[10] + this1[14]; result.w = x * this1[3] + y * this1[7] + z * this1[11] + this1[15]; return result; }; lime_math_Matrix4.transformVectors = function(this1,ain,aout) { var i = 0; var x; var y; var z; while(i + 3 <= ain.length) { x = ain[i]; y = ain[i + 1]; 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.transpose = function(this1) { var temp = this1[1]; this1[1] = this1[4]; this1[4] = temp; var temp = this1[2]; this1[2] = this1[8]; this1[8] = temp; var temp = this1[3]; this1[3] = this1[12]; this1[12] = temp; var temp = this1[6]; this1[6] = this1[9]; this1[9] = temp; var temp = this1[7]; this1[7] = this1[13]; this1[13] = temp; var temp = this1[11]; this1[11] = this1[14]; this1[14] = temp; }; lime_math_Matrix4.__getAxisRotation = function(this1,x,y,z,degrees) { var m = lime_math_Matrix4._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.set(m,0,c + a1.x * a1.x * t); lime_math_Matrix4.set(m,5,c + a1.y * a1.y * t); lime_math_Matrix4.set(m,10,c + a1.z * a1.z * t); var tmp1 = a1.x * a1.y * t; var tmp2 = a1.z * s; lime_math_Matrix4.set(m,4,tmp1 + tmp2); lime_math_Matrix4.set(m,1,tmp1 - tmp2); tmp1 = a1.x * a1.z * t; tmp2 = a1.y * s; lime_math_Matrix4.set(m,8,tmp1 - tmp2); lime_math_Matrix4.set(m,2,tmp1 + tmp2); tmp1 = a1.y * a1.z * t; tmp2 = a1.x * s; lime_math_Matrix4.set(m,9,tmp1 + tmp2); lime_math_Matrix4.set(m,6,tmp1 - tmp2); return m; }; lime_math_Matrix4.__swap = function(this1,a,b) { var temp = this1[a]; this1[a] = this1[b]; this1[b] = temp; }; lime_math_Matrix4.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.get_position = function(this1) { return new lime_math_Vector4(this1[12],this1[13],this1[14]); }; lime_math_Matrix4.set_position = function(this1,val) { this1[12] = val.x; this1[13] = val.y; this1[14] = val.z; return val; }; lime_math_Matrix4.get = function(this1,index) { return this1[index]; }; lime_math_Matrix4.set = function(this1,index,value) { this1[index] = value; return value; }; var lime_math_RGBA = {}; lime_math_RGBA.__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_RGBA.__alpha16 = null; lime_math_RGBA.__clamp = null; lime_math_RGBA.a16 = null; lime_math_RGBA.unmult = null; lime_math_RGBA._new = function(rgba) { if(rgba == null) { rgba = 0; } return rgba; }; lime_math_RGBA.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_RGBA.multiplyAlpha = function(this1) { if((this1 & 255) == 0) { if(this1 != 0) { this1 = 0; } } else if((this1 & 255) != 255) { lime_math_RGBA.a16 = lime_math_RGBA.__alpha16[this1 & 255]; this1 = ((this1 >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } }; lime_math_RGBA.readUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) { premultiplied = false; } if(format == null) { format = 0; } switch(format) { 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; case 2: this1 = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; } if(premultiplied) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (this1 & 255); this1 = (lime_math_RGBA.__clamp[Math.round((this1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | this1 & 255 & 255; } } }; lime_math_RGBA.set = function(this1,r,g,b,a) { this1 = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | a & 255; }; lime_math_RGBA.unmultiplyAlpha = function(this1) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_RGBA.unmult = 255.0 / (this1 & 255); this1 = (lime_math_RGBA.__clamp[Math.round((this1 >>> 24 & 255) * lime_math_RGBA.unmult)] & 255) << 24 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 16 & 255) * lime_math_RGBA.unmult)] & 255) << 16 | (lime_math_RGBA.__clamp[Math.round((this1 >>> 8 & 255) * lime_math_RGBA.unmult)] & 255) << 8 | this1 & 255 & 255; } }; lime_math_RGBA.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_RGBA.a16 = lime_math_RGBA.__alpha16[this1 & 255]; this1 = ((this1 >>> 24 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * lime_math_RGBA.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } } switch(format) { 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; 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; } }; lime_math_RGBA.__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_RGBA.__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_RGBA.get_a = function(this1) { return this1 & 255; }; lime_math_RGBA.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_RGBA.get_b = function(this1) { return this1 >>> 8 & 255; }; lime_math_RGBA.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_RGBA.get_g = function(this1) { return this1 >>> 16 & 255; }; lime_math_RGBA.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_RGBA.get_r = function(this1) { return this1 >>> 24 & 255; }; lime_math_RGBA.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_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) { if(x >= this.x && y >= this.y && x < this.get_right()) { return y < this.get_bottom(); } else { return false; } } ,containsPoint: function(point) { return this.containsVector(point); } ,containsRect: function(rect) { if(rect.width <= 0 || rect.height <= 0) { if(rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right()) { return rect.get_bottom() < this.get_bottom(); } else { return false; } } else if(rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right()) { return rect.get_bottom() <= this.get_bottom(); } else { return false; } } ,containsVector: function(vector) { return this.contains(vector.x,vector.y); } ,copyFrom: function(sourceRect) { this.x = sourceRect.x; this.y = sourceRect.y; this.width = sourceRect.width; this.height = sourceRect.height; } ,equals: function(toCompare) { if(toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width) { return this.height == toCompare.height; } else { return false; } } ,inflate: function(dx,dy) { this.x -= dx; this.width += dx * 2; this.y -= dy; this.height += dy * 2; } ,inflateVector: function(vector) { this.inflate(vector.x,vector.y); } ,intersection: function(toIntersect,result) { if(result == null) { result = new lime_math_Rectangle(); } var x0 = this.x < toIntersect.x ? toIntersect.x : this.x; var x1 = this.get_right() > toIntersect.get_right() ? toIntersect.get_right() : this.get_right(); if(x1 <= x0) { result.setEmpty(); return result; } var y0 = this.y < toIntersect.y ? toIntersect.y : this.y; var y1 = this.get_bottom() > toIntersect.get_bottom() ? toIntersect.get_bottom() : this.get_bottom(); if(y1 <= y0) { result.setEmpty(); return result; } result.x = x0; result.y = y0; result.width = x1 - x0; result.height = y1 - y0; return result; } ,intersects: function(toIntersect) { var x0 = this.x < toIntersect.x ? toIntersect.x : this.x; var x1 = this.get_right() > toIntersect.get_right() ? toIntersect.get_right() : this.get_right(); if(x1 <= x0) { return false; } var y0 = this.y < toIntersect.y ? toIntersect.y : this.y; var y1 = this.get_bottom() > toIntersect.get_bottom() ? toIntersect.get_bottom() : this.get_bottom(); return y1 > y0; } ,isEmpty: function() { if(!(this.width <= 0)) { return this.height <= 0; } else { return true; } } ,offset: function(dx,dy) { this.x += dx; this.y += dy; } ,offsetVector: function(vector) { this.x += vector.x; this.y += vector.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; } ,union: function(toUnion,result) { if(result == null) { result = new lime_math_Rectangle(); } if(this.width == 0 || this.height == 0) { result.copyFrom(toUnion); } else if(toUnion.width == 0 || toUnion.height == 0) { result.copyFrom(this); } else { var x0 = this.x > toUnion.x ? toUnion.x : this.x; var x1 = this.get_right() < toUnion.get_right() ? toUnion.get_right() : this.get_right(); var y0 = this.y > toUnion.y ? toUnion.y : this.y; var y1 = this.get_bottom() < toUnion.get_bottom() ? toUnion.get_bottom() : this.get_bottom(); result.setTo(x0,y0,x1 - x0,y1 - y0); } return result; } ,__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_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.angleBetween = function(a,b) { var a0 = new lime_math_Vector4(a.x,a.y,a.z,a.w); var l = Math.sqrt(a0.x * a0.x + a0.y * a0.y + a0.z * a0.z); if(l != 0) { a0.x /= l; a0.y /= l; a0.z /= l; } var b0 = new lime_math_Vector4(b.x,b.y,b.z,b.w); var l = Math.sqrt(b0.x * b0.x + b0.y * b0.y + b0.z * b0.z); if(l != 0) { b0.x /= l; b0.y /= l; b0.z /= l; } 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.distanceSquared = function(pt1,pt2) { var x = pt2.x - pt1.x; var y = pt2.y - pt1.y; var z = pt2.z - pt1.z; return 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 = { w: null ,x: null ,y: null ,z: null ,add: function(a,result) { if(result == null) { result = new lime_math_Vector4(); } result.x = this.x + a.x; result.y = this.y + a.y; result.z = this.z + a.z; return result; } ,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,result) { if(result == null) { result = new lime_math_Vector4(); } var ya = this.z * a.x - this.x * a.z; var za = this.x * a.y - this.y * a.x; result.x = this.y * a.z - this.z * a.y; result.y = ya; result.z = za; result.w = 1; return result; } ,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; } if(this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z) { if(!(!allFour)) { return this.w == toCompare.w; } else { return true; } } else { return false; } } ,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; } if(Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance) { if(!(!allFour)) { return Math.abs(this.w - toCompare.w) < tolerance; } else { return true; } } else { return false; } } ,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,result) { if(result == null) { result = new lime_math_Vector4(); } result.x = this.x - a.x; result.y = this.y - a.y; result.z = this.z - a.z; return result; } ,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_media_AudioBuffer = function() { }; $hxClasses["lime.media.AudioBuffer"] = lime_media_AudioBuffer; lime_media_AudioBuffer.__name__ = "lime.media.AudioBuffer"; lime_media_AudioBuffer.fromBase64 = function(base64String) { if(base64String == null) { return null; } if(base64String.indexOf(",") == -1) { base64String = "data:" + lime_media_AudioBuffer.__getCodec(lime__$internal_format_Base64.decode(base64String)) + ";base64," + base64String; } var audioBuffer = new lime_media_AudioBuffer(); audioBuffer.set_src(new Howl({ src : [base64String], html5 : true, preload : false})); return audioBuffer; }; lime_media_AudioBuffer.fromBytes = function(bytes) { if(bytes == null) { return null; } var audioBuffer = new lime_media_AudioBuffer(); audioBuffer.set_src(new Howl({ src : ["data:" + lime_media_AudioBuffer.__getCodec(bytes) + ";base64," + lime__$internal_format_Base64.encode(bytes)], html5 : true, preload : false})); return audioBuffer; }; lime_media_AudioBuffer.fromFile = function(path) { if(path == null) { return null; } var audioBuffer = new lime_media_AudioBuffer(); audioBuffer.__srcHowl = new Howl({ src : [path], preload : false}); return audioBuffer; }; lime_media_AudioBuffer.fromFiles = function(paths) { var audioBuffer = new lime_media_AudioBuffer(); audioBuffer.__srcHowl = new Howl({ src : paths, preload : false}); return audioBuffer; }; lime_media_AudioBuffer.fromVorbisFile = function(vorbisFile) { return null; }; lime_media_AudioBuffer.loadFromFile = function(path) { var promise = new lime_app_Promise(); var audioBuffer = lime_media_AudioBuffer.fromFile(path); if(audioBuffer != null) { if(audioBuffer != null) { audioBuffer.__srcHowl.on("load",function() { promise.complete(audioBuffer); }); audioBuffer.__srcHowl.on("loaderror",function(id,msg) { promise.error(msg); }); audioBuffer.__srcHowl.load(); } } else { promise.error(null); } return promise.future; }; lime_media_AudioBuffer.loadFromFiles = function(paths) { var promise = new lime_app_Promise(); var audioBuffer = lime_media_AudioBuffer.fromFiles(paths); if(audioBuffer != null) { audioBuffer.__srcHowl.on("load",function() { promise.complete(audioBuffer); }); audioBuffer.__srcHowl.on("loaderror",function() { promise.error(null); }); audioBuffer.__srcHowl.load(); } else { promise.error(null); } return promise.future; }; lime_media_AudioBuffer.__getCodec = function(bytes) { var signature = bytes.getString(0,4); switch(signature) { case "OggS": return "audio/ogg"; case "RIFF": if(bytes.getString(8,4) == "WAVE") { return "audio/wav"; } else { var _g = bytes.b[1]; var _g1 = bytes.b[2]; switch(bytes.b[0]) { case 73: if(_g == 68) { if(_g1 == 51) { return "audio/mp3"; } } break; case 255: switch(_g) { case 243:case 250:case 251: return "audio/mp3"; default: } break; default: } } break; case "fLaC": return "audio/flac"; default: var _g = bytes.b[1]; var _g1 = bytes.b[2]; switch(bytes.b[0]) { case 73: if(_g == 68) { if(_g1 == 51) { return "audio/mp3"; } } break; case 255: switch(_g) { case 243:case 250:case 251: return "audio/mp3"; default: } break; default: } } lime_utils_Log.error("Unsupported sound format",{ fileName : "lime/media/AudioBuffer.hx", lineNumber : 362, className : "lime.media.AudioBuffer", methodName : "__getCodec"}); return null; }; lime_media_AudioBuffer.prototype = { bitsPerSample: null ,channels: null ,data: null ,sampleRate: null ,__srcAudio: null ,__srcBuffer: null ,__srcCustom: null ,__srcHowl: null ,__srcSound: null ,__srcVorbisFile: null ,dispose: function() { this.__srcHowl.unload(); } ,get_src: function() { return this.__srcHowl; } ,set_src: function(value) { return this.__srcHowl = value; } ,__class__: lime_media_AudioBuffer ,__properties__: {set_src:"set_src",get_src:"get_src"} }; var lime_media_AudioContext = function(type) { if(type != "custom") { if(type == null || type == "web") { try { window.AudioContext = window.AudioContext || window.webkitAudioContext; this.web = new window.AudioContext (); this.type = "web"; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } if(this.web == null && type != "web") { this.html5 = new lime_media_HTML5AudioContext(); this.type = "html5"; } } else { this.type = "custom"; } }; $hxClasses["lime.media.AudioContext"] = lime_media_AudioContext; lime_media_AudioContext.__name__ = "lime.media.AudioContext"; lime_media_AudioContext.prototype = { custom: null ,flash: null ,html5: null ,openal: null ,type: null ,web: null ,__class__: lime_media_AudioContext }; var lime_media_AudioManager = function() { }; $hxClasses["lime.media.AudioManager"] = lime_media_AudioManager; lime_media_AudioManager.__name__ = "lime.media.AudioManager"; lime_media_AudioManager.context = null; lime_media_AudioManager.init = function(context) { if(lime_media_AudioManager.context == null) { if(context == null) { lime_media_AudioManager.context = new lime_media_AudioContext(); context = lime_media_AudioManager.context; if(context.type == "openal") { var alc = context.openal; var device = alc.openDevice(); var ctx = alc.createContext(device); alc.makeContextCurrent(ctx); alc.processContext(ctx); } } lime_media_AudioManager.context = context; } }; lime_media_AudioManager.resume = function() { if(lime_media_AudioManager.context != null && lime_media_AudioManager.context.type == "openal") { var alc = lime_media_AudioManager.context.openal; var currentContext = alc.getCurrentContext(); if(currentContext != null) { var device = alc.getContextsDevice(currentContext); alc.resumeDevice(device); alc.processContext(currentContext); } } }; lime_media_AudioManager.shutdown = function() { if(lime_media_AudioManager.context != null && lime_media_AudioManager.context.type == "openal") { var alc = lime_media_AudioManager.context.openal; var currentContext = alc.getCurrentContext(); if(currentContext != null) { var device = alc.getContextsDevice(currentContext); alc.makeContextCurrent(null); alc.destroyContext(currentContext); if(device != null) { alc.closeDevice(device); } } } lime_media_AudioManager.context = null; }; lime_media_AudioManager.suspend = function() { if(lime_media_AudioManager.context != null && lime_media_AudioManager.context.type == "openal") { var alc = lime_media_AudioManager.context.openal; var currentContext = alc.getCurrentContext(); if(currentContext != null) { alc.suspendContext(currentContext); var device = alc.getContextsDevice(currentContext); if(device != null) { alc.pauseDevice(device); } } } }; var lime_media_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; this.__backend = new lime__$internal_backend_html5_HTML5AudioSource(this); if(length != null && length != 0) { this.set_length(length); } this.set_loops(loops); if(buffer != null) { this.init(); } }; $hxClasses["lime.media.AudioSource"] = lime_media_AudioSource; lime_media_AudioSource.__name__ = "lime.media.AudioSource"; lime_media_AudioSource.prototype = { onComplete: null ,buffer: null ,offset: null ,__backend: null ,dispose: function() { this.__backend.dispose(); } ,init: function() { this.__backend.init(); } ,play: function() { this.__backend.play(); } ,pause: function() { this.__backend.pause(); } ,stop: function() { this.__backend.stop(); } ,get_currentTime: function() { return this.__backend.getCurrentTime(); } ,set_currentTime: function(value) { return this.__backend.setCurrentTime(value); } ,get_gain: function() { return this.__backend.getGain(); } ,set_gain: function(value) { return this.__backend.setGain(value); } ,get_length: function() { return this.__backend.getLength(); } ,set_length: function(value) { return this.__backend.setLength(value); } ,get_loops: function() { return this.__backend.getLoops(); } ,set_loops: function(value) { return this.__backend.setLoops(value); } ,get_pitch: function() { return this.__backend.getPitch(); } ,set_pitch: function(value) { return this.__backend.setPitch(value); } ,get_position: function() { return this.__backend.getPosition(); } ,set_position: function(value) { return this.__backend.setPosition(value); } ,__class__: lime_media_AudioSource ,__properties__: {set_position:"set_position",get_position:"get_position",set_pitch:"set_pitch",get_pitch:"get_pitch",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_media_FlashAudioContext = function() { }; $hxClasses["lime.media.FlashAudioContext"] = lime_media_FlashAudioContext; lime_media_FlashAudioContext.__name__ = "lime.media.FlashAudioContext"; lime_media_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_media_FlashAudioContext }; var lime_media_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.media.HTML5AudioContext"] = lime_media_HTML5AudioContext; lime_media_HTML5AudioContext.__name__ = "lime.media.HTML5AudioContext"; lime_media_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.__srcAudio != null) { return buffer.__srcAudio.canPlayType(type); } return null; } ,createBuffer: function(urlString) { var buffer = new lime_media_AudioBuffer(); buffer.__srcAudio = new Audio(); buffer.__srcAudio.src = urlString; return buffer; } ,getAutoplay: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.autoplay; } return false; } ,getBuffered: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.buffered; } return null; } ,getCurrentSrc: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.currentSrc; } return null; } ,getCurrentTime: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.currentTime; } return 0; } ,getDefaultPlaybackRate: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.defaultPlaybackRate; } return 1; } ,getDuration: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.duration; } return 0; } ,getEnded: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.ended; } return false; } ,getError: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.error; } return null; } ,getLoop: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.loop; } return false; } ,getMuted: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.muted; } return false; } ,getNetworkState: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.networkState; } return 0; } ,getPaused: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.paused; } return false; } ,getPlaybackRate: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.playbackRate; } return 1; } ,getPlayed: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.played; } return null; } ,getPreload: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.preload; } return null; } ,getReadyState: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.readyState; } return 0; } ,getSeekable: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.seekable; } return null; } ,getSeeking: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.seeking; } return false; } ,getSrc: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.src; } return null; } ,getStartTime: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.playbackRate; } return 0; } ,getVolume: function(buffer) { if(buffer.__srcAudio != null) { return buffer.__srcAudio.volume; } return 1; } ,load: function(buffer) { if(buffer.__srcAudio != null) { buffer.__srcAudio.load(); } } ,pause: function(buffer) { if(buffer.__srcAudio != null) { buffer.__srcAudio.pause(); } } ,play: function(buffer) { if(buffer.__srcAudio != null) { buffer.__srcAudio.play(); } } ,setAutoplay: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.autoplay = value; } } ,setCurrentTime: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.currentTime = value; } } ,setDefaultPlaybackRate: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.defaultPlaybackRate = value; } } ,setLoop: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.loop = value; } } ,setMuted: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.muted = value; } } ,setPlaybackRate: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.playbackRate = value; } } ,setPreload: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.preload = value; } } ,setSrc: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.src = value; } } ,setVolume: function(buffer,value) { if(buffer.__srcAudio != null) { buffer.__srcAudio.volume = value; } } ,__class__: lime_media_HTML5AudioContext }; var lime_media_OpenALAudioContext = function() { this.ALL_DEVICES_SPECIFIER = 4115; this.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; this.ENUMERATE_ALL_EXT = 1; this.DEVICE_SPECIFIER = 4101; this.DEFAULT_DEVICE_SPECIFIER = 4100; this.ALL_ATTRIBUTES = 4099; this.ATTRIBUTES_SIZE = 4098; this.INVALID_CONTEXT = 40962; this.INVALID_DEVICE = 40961; this.STEREO_SOURCES = 4113; this.MONO_SOURCES = 4112; this.SYNC = 4105; this.REFRESH = 4104; 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.media.OpenALAudioContext"] = lime_media_OpenALAudioContext; lime_media_OpenALAudioContext.__name__ = "lime.media.OpenALAudioContext"; lime_media_OpenALAudioContext.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 ,REFRESH: null ,SYNC: null ,MONO_SOURCES: null ,STEREO_SOURCES: null ,INVALID_DEVICE: null ,INVALID_CONTEXT: null ,ATTRIBUTES_SIZE: null ,ALL_ATTRIBUTES: null ,DEFAULT_DEVICE_SPECIFIER: null ,DEVICE_SPECIFIER: null ,ENUMERATE_ALL_EXT: null ,DEFAULT_ALL_DEVICES_SPECIFIER: null ,ALL_DEVICES_SPECIFIER: null ,bufferData: function(buffer,format,data,size,freq) { lime_media_openal_AL.bufferData(buffer,format,data,size,freq); } ,buffer3f: function(buffer,param,value1,value2,value3) { lime_media_openal_AL.buffer3f(buffer,param,value1,value2,value3); } ,buffer3i: function(buffer,param,value1,value2,value3) { lime_media_openal_AL.buffer3i(buffer,param,value1,value2,value3); } ,bufferf: function(buffer,param,value) { lime_media_openal_AL.bufferf(buffer,param,value); } ,bufferfv: function(buffer,param,values) { lime_media_openal_AL.bufferfv(buffer,param,values); } ,bufferi: function(buffer,param,value) { lime_media_openal_AL.bufferi(buffer,param,value); } ,bufferiv: function(buffer,param,values) { lime_media_openal_AL.bufferiv(buffer,param,values); } ,closeDevice: function(device) { return lime_media_openal_ALC.closeDevice(device); } ,createContext: function(device,attrlist) { return lime_media_openal_ALC.createContext(device,attrlist); } ,createBuffer: function() { return lime_media_openal_AL.createBuffer(); } ,createSource: function() { return lime_media_openal_AL.createSource(); } ,deleteBuffer: function(buffer) { lime_media_openal_AL.deleteBuffer(buffer); } ,deleteBuffers: function(buffers) { lime_media_openal_AL.deleteBuffers(buffers); } ,deleteSource: function(source) { lime_media_openal_AL.deleteSource(source); } ,deleteSources: function(sources) { lime_media_openal_AL.deleteSources(sources); } ,destroyContext: function(context) { if(context == null) { return; } lime_media_openal_ALC.destroyContext(context); } ,disable: function(capability) { lime_media_openal_AL.disable(capability); } ,distanceModel: function(distanceModel) { lime_media_openal_AL.distanceModel(distanceModel); } ,dopplerFactor: function(value) { lime_media_openal_AL.dopplerFactor(value); } ,dopplerVelocity: function(value) { lime_media_openal_AL.dopplerVelocity(value); } ,enable: function(capability) { lime_media_openal_AL.enable(capability); } ,genSource: function() { return this.createSource(); } ,genSources: function(n) { return lime_media_openal_AL.genSources(n); } ,genBuffer: function() { return this.createBuffer(); } ,genBuffers: function(n) { return lime_media_openal_AL.genBuffers(n); } ,getBoolean: function(param) { return lime_media_openal_AL.getBoolean(param); } ,getBooleanv: function(param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getBooleanv(param,count); } ,getBuffer3f: function(buffer,param) { return lime_media_openal_AL.getBuffer3f(buffer,param); } ,getBuffer3i: function(buffer,param) { return lime_media_openal_AL.getBuffer3i(buffer,param); } ,getBufferf: function(buffer,param) { return lime_media_openal_AL.getBufferf(buffer,param); } ,getBufferfv: function(buffer,param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getBufferfv(buffer,param,count); } ,getBufferi: function(buffer,param) { return lime_media_openal_AL.getBufferi(buffer,param); } ,getBufferiv: function(buffer,param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getBufferiv(buffer,param,count); } ,getContextsDevice: function(context) { if(context == null) { return null; } return lime_media_openal_ALC.getContextsDevice(context); } ,getCurrentContext: function() { return lime_media_openal_ALC.getCurrentContext(); } ,getDouble: function(param) { return lime_media_openal_AL.getDouble(param); } ,getDoublev: function(param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getDoublev(param,count); } ,getEnumValue: function(ename) { return lime_media_openal_AL.getEnumValue(ename); } ,getError: function(device) { if(device == null) { return lime_media_openal_AL.getError(); } else { return lime_media_openal_ALC.getError(device); } } ,getErrorString: function(device) { if(device == null) { return lime_media_openal_AL.getErrorString(); } else { return lime_media_openal_ALC.getErrorString(device); } } ,getFloat: function(param) { return lime_media_openal_AL.getFloat(param); } ,getFloatv: function(param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getFloatv(param,count); } ,getInteger: function(param) { return lime_media_openal_AL.getInteger(param); } ,getIntegerv: function(param,count,device) { if(count == null) { count = 1; } if(device == null) { return lime_media_openal_AL.getIntegerv(param,count); } else { return lime_media_openal_ALC.getIntegerv(device,param,count); } } ,getListener3f: function(param) { return lime_media_openal_AL.getListener3f(param); } ,getListener3i: function(param) { return lime_media_openal_AL.getListener3i(param); } ,getListenerf: function(param) { return lime_media_openal_AL.getListenerf(param); } ,getListenerfv: function(param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getListenerfv(param,count); } ,getListeneri: function(param) { return lime_media_openal_AL.getListeneri(param); } ,getListeneriv: function(param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getListeneriv(param,count); } ,getProcAddress: function(fname) { return lime_media_openal_AL.getProcAddress(fname); } ,getSourcedvSOFT: function(source,param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getSourcedvSOFT(source,param,count); } ,getSource3f: function(source,param) { return lime_media_openal_AL.getSource3f(source,param); } ,getSourcef: function(source,param) { return lime_media_openal_AL.getSourcef(source,param); } ,getSource3i: function(source,param) { return lime_media_openal_AL.getSource3i(source,param); } ,getSourcefv: function(source,param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getSourcefv(source,param); } ,getSourcei: function(source,param) { return lime_media_openal_AL.getSourcei(source,param); } ,getSourceiv: function(source,param,count) { if(count == null) { count = 1; } return lime_media_openal_AL.getSourceiv(source,param,count); } ,getString: function(param,device) { if(device == null) { return lime_media_openal_AL.getString(param); } else { return lime_media_openal_ALC.getString(device,param); } } ,isBuffer: function(buffer) { return lime_media_openal_AL.isBuffer(buffer); } ,isEnabled: function(capability) { return lime_media_openal_AL.isEnabled(capability); } ,isExtensionPresent: function(extname) { return lime_media_openal_AL.isExtensionPresent(extname); } ,isSource: function(source) { return lime_media_openal_AL.isSource(source); } ,listener3f: function(param,value1,value2,value3) { lime_media_openal_AL.listener3f(param,value1,value2,value3); } ,listener3i: function(param,value1,value2,value3) { lime_media_openal_AL.listener3i(param,value1,value2,value3); } ,listenerf: function(param,value) { lime_media_openal_AL.listenerf(param,value); } ,listenerfv: function(param,values) { lime_media_openal_AL.listenerfv(param,values); } ,listeneri: function(param,value) { lime_media_openal_AL.listeneri(param,value); } ,listeneriv: function(param,values) { lime_media_openal_AL.listeneriv(param,values); } ,makeContextCurrent: function(context) { return lime_media_openal_ALC.makeContextCurrent(context); } ,openDevice: function(deviceName) { return lime_media_openal_ALC.openDevice(deviceName); } ,pauseDevice: function(device) { lime_media_openal_ALC.pauseDevice(device); } ,processContext: function(context) { lime_media_openal_ALC.processContext(context); } ,resumeDevice: function(device) { lime_media_openal_ALC.resumeDevice(device); } ,source3f: function(source,param,value1,value2,value3) { lime_media_openal_AL.source3f(source,param,value1,value2,value3); } ,source3i: function(source,param,value1,value2,value3) { lime_media_openal_AL.source3i(source,param,value1,value2,value3); } ,sourcef: function(source,param,value) { lime_media_openal_AL.sourcef(source,param,value); } ,sourcefv: function(source,param,values) { lime_media_openal_AL.sourcefv(source,param,values); } ,sourcei: function(source,param,value) { lime_media_openal_AL.sourcei(source,param,value); } ,sourceiv: function(source,param,values) { lime_media_openal_AL.sourceiv(source,param,values); } ,sourcePlay: function(source) { lime_media_openal_AL.sourcePlay(source); } ,sourcePlayv: function(sources) { lime_media_openal_AL.sourcePlayv(sources); } ,sourceStop: function(source) { lime_media_openal_AL.sourceStop(source); } ,sourceStopv: function(sources) { lime_media_openal_AL.sourceStopv(sources); } ,sourceRewind: function(source) { lime_media_openal_AL.sourceRewind(source); } ,sourceRewindv: function(sources) { lime_media_openal_AL.sourceRewindv(sources); } ,sourcePause: function(source) { lime_media_openal_AL.sourcePause(source); } ,sourcePausev: function(sources) { lime_media_openal_AL.sourcePausev(sources); } ,sourceQueueBuffer: function(source,buffer) { lime_media_openal_AL.sourceQueueBuffer(source,buffer); } ,sourceQueueBuffers: function(source,nb,buffers) { lime_media_openal_AL.sourceQueueBuffers(source,nb,buffers); } ,sourceUnqueueBuffer: function(source) { return lime_media_openal_AL.sourceUnqueueBuffer(source); } ,sourceUnqueueBuffers: function(source,nb) { return lime_media_openal_AL.sourceUnqueueBuffers(source,nb); } ,speedOfSound: function(value) { lime_media_openal_AL.speedOfSound(value); } ,suspendContext: function(context) { lime_media_openal_ALC.suspendContext(context); } ,__class__: lime_media_OpenALAudioContext }; var lime_media_openal_AL = function() { }; $hxClasses["lime.media.openal.AL"] = lime_media_openal_AL; lime_media_openal_AL.__name__ = "lime.media.openal.AL"; lime_media_openal_AL.removeDirectFilter = function(source) { }; lime_media_openal_AL.removeSend = function(source,index) { }; lime_media_openal_AL.auxf = function(aux,param,value) { }; lime_media_openal_AL.auxfv = function(aux,param,values) { }; lime_media_openal_AL.auxi = function(aux,param,value) { }; lime_media_openal_AL.auxiv = function(aux,param,values) { }; lime_media_openal_AL.bufferData = function(buffer,format,data,size,freq) { }; lime_media_openal_AL.buffer3f = function(buffer,param,value1,value2,value3) { }; lime_media_openal_AL.buffer3i = function(buffer,param,value1,value2,value3) { }; lime_media_openal_AL.bufferf = function(buffer,param,value) { }; lime_media_openal_AL.bufferfv = function(buffer,param,values) { }; lime_media_openal_AL.bufferi = function(buffer,param,value) { }; lime_media_openal_AL.bufferiv = function(buffer,param,values) { }; lime_media_openal_AL.createAux = function() { return null; }; lime_media_openal_AL.createBuffer = function() { return null; }; lime_media_openal_AL.createEffect = function() { return null; }; lime_media_openal_AL.createFilter = function() { return null; }; lime_media_openal_AL.createSource = function() { return null; }; lime_media_openal_AL.deleteBuffer = function(buffer) { }; lime_media_openal_AL.deleteBuffers = function(buffers) { }; lime_media_openal_AL.deleteSource = function(source) { }; lime_media_openal_AL.deleteSources = function(sources) { }; lime_media_openal_AL.disable = function(capability) { }; lime_media_openal_AL.distanceModel = function(distanceModel) { }; lime_media_openal_AL.dopplerFactor = function(value) { }; lime_media_openal_AL.dopplerVelocity = function(value) { }; lime_media_openal_AL.effectf = function(effect,param,value) { }; lime_media_openal_AL.effectfv = function(effect,param,values) { }; lime_media_openal_AL.effecti = function(effect,param,value) { }; lime_media_openal_AL.effectiv = function(effect,param,values) { }; lime_media_openal_AL.enable = function(capability) { }; lime_media_openal_AL.genSource = function() { return null; }; lime_media_openal_AL.genSources = function(n) { return null; }; lime_media_openal_AL.genBuffer = function() { return null; }; lime_media_openal_AL.genBuffers = function(n) { return null; }; lime_media_openal_AL.getBoolean = function(param) { return false; }; lime_media_openal_AL.getBooleanv = function(param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getBuffer3f = function(buffer,param) { return null; }; lime_media_openal_AL.getBuffer3i = function(buffer,param) { return null; }; lime_media_openal_AL.getBufferf = function(buffer,param) { return 0; }; lime_media_openal_AL.getBufferfv = function(buffer,param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getBufferi = function(buffer,param) { return 0; }; lime_media_openal_AL.getBufferiv = function(buffer,param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getDouble = function(param) { return 0; }; lime_media_openal_AL.getDoublev = function(param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getEnumValue = function(ename) { return 0; }; lime_media_openal_AL.getError = function() { return 0; }; lime_media_openal_AL.getErrorString = function() { switch(lime_media_openal_AL.getError()) { 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_media_openal_AL.getFilteri = function(filter,param) { return 0; }; lime_media_openal_AL.getFloat = function(param) { return 0; }; lime_media_openal_AL.getFloatv = function(param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getInteger = function(param) { return 0; }; lime_media_openal_AL.getIntegerv = function(param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getListener3f = function(param) { return null; }; lime_media_openal_AL.getListener3i = function(param) { return null; }; lime_media_openal_AL.getListenerf = function(param) { return 0; }; lime_media_openal_AL.getListenerfv = function(param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getListeneri = function(param) { return 0; }; lime_media_openal_AL.getListeneriv = function(param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getParameter = function(param) { return null; }; lime_media_openal_AL.getProcAddress = function(fname) { return null; }; lime_media_openal_AL.getSource3f = function(source,param) { return null; }; lime_media_openal_AL.getSourcef = function(source,param) { return 0; }; lime_media_openal_AL.getSource3i = function(source,param) { return null; }; lime_media_openal_AL.getSourcefv = function(source,param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getSourcedvSOFT = function(source,param,count) { if(count == null) { count = 2; } return null; }; lime_media_openal_AL.getSourcei = function(source,param) { return 0; }; lime_media_openal_AL.getSourceiv = function(source,param,count) { if(count == null) { count = 1; } return null; }; lime_media_openal_AL.getString = function(param) { return null; }; lime_media_openal_AL.isBuffer = function(buffer) { return false; }; lime_media_openal_AL.isEnabled = function(capability) { return false; }; lime_media_openal_AL.isExtensionPresent = function(extname) { return false; }; lime_media_openal_AL.isAux = function(aux) { return false; }; lime_media_openal_AL.isEffect = function(effect) { return false; }; lime_media_openal_AL.isFilter = function(filter) { return false; }; lime_media_openal_AL.isSource = function(source) { return false; }; lime_media_openal_AL.listener3f = function(param,value1,value2,value3) { }; lime_media_openal_AL.listener3i = function(param,value1,value2,value3) { }; lime_media_openal_AL.listenerf = function(param,value) { }; lime_media_openal_AL.listenerfv = function(param,values) { }; lime_media_openal_AL.listeneri = function(param,value) { }; lime_media_openal_AL.listeneriv = function(param,values) { }; lime_media_openal_AL.source3f = function(source,param,value1,value2,value3) { }; lime_media_openal_AL.source3i = function(source,param,value1,value2,value3) { }; lime_media_openal_AL.sourcef = function(source,param,value) { }; lime_media_openal_AL.sourcefv = function(source,param,values) { }; lime_media_openal_AL.sourcei = function(source,param,value) { }; lime_media_openal_AL.filteri = function(filter,param,value) { }; lime_media_openal_AL.filterf = function(filter,param,value) { }; lime_media_openal_AL.sourceiv = function(source,param,values) { }; lime_media_openal_AL.sourcePlay = function(source) { }; lime_media_openal_AL.sourcePlayv = function(sources) { }; lime_media_openal_AL.sourceStop = function(source) { }; lime_media_openal_AL.sourceStopv = function(sources) { }; lime_media_openal_AL.sourceRewind = function(source) { }; lime_media_openal_AL.sourceRewindv = function(sources) { }; lime_media_openal_AL.sourcePause = function(source) { }; lime_media_openal_AL.sourcePausev = function(sources) { }; lime_media_openal_AL.sourceQueueBuffer = function(source,buffer) { }; lime_media_openal_AL.sourceQueueBuffers = function(source,nb,buffers) { }; lime_media_openal_AL.sourceUnqueueBuffer = function(source) { return 0; }; lime_media_openal_AL.sourceUnqueueBuffers = function(source,nb) { return null; }; lime_media_openal_AL.speedOfSound = function(value) { }; var lime_media_openal_ALAuxiliaryEffectSlot = {}; lime_media_openal_ALAuxiliaryEffectSlot._new = function(handle) { return handle; }; var lime_media_openal_ALBuffer = {}; lime_media_openal_ALBuffer._new = function(handle) { return handle; }; var lime_media_openal_ALC = function() { }; $hxClasses["lime.media.openal.ALC"] = lime_media_openal_ALC; lime_media_openal_ALC.__name__ = "lime.media.openal.ALC"; lime_media_openal_ALC.closeDevice = function(device) { return false; }; lime_media_openal_ALC.createContext = function(device,attrlist) { return null; }; lime_media_openal_ALC.destroyContext = function(context) { }; lime_media_openal_ALC.getContextsDevice = function(context) { return null; }; lime_media_openal_ALC.getCurrentContext = function() { return null; }; lime_media_openal_ALC.getError = function(device) { return 0; }; lime_media_openal_ALC.getErrorString = function(device) { switch(lime_media_openal_ALC.getError(device)) { 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_media_openal_ALC.getIntegerv = function(device,param,size) { return null; }; lime_media_openal_ALC.getString = function(device,param) { return null; }; lime_media_openal_ALC.makeContextCurrent = function(context) { return false; }; lime_media_openal_ALC.openDevice = function(deviceName) { return null; }; lime_media_openal_ALC.pauseDevice = function(device) { }; lime_media_openal_ALC.processContext = function(context) { }; lime_media_openal_ALC.resumeDevice = function(device) { }; lime_media_openal_ALC.suspendContext = function(context) { }; var lime_media_openal_ALContext = {}; lime_media_openal_ALContext._new = function(handle) { return handle; }; var lime_media_openal_ALDevice = {}; lime_media_openal_ALDevice._new = function(handle) { return handle; }; var lime_media_openal_ALEffect = {}; lime_media_openal_ALEffect._new = function(handle) { return handle; }; var lime_media_openal_ALFilter = {}; lime_media_openal_ALFilter._new = function(handle) { return handle; }; var lime_media_openal_ALSource = {}; lime_media_openal_ALSource._new = function(handle) { return handle; }; var lime_media_vorbis_VorbisComment = function() { }; $hxClasses["lime.media.vorbis.VorbisComment"] = lime_media_vorbis_VorbisComment; lime_media_vorbis_VorbisComment.__name__ = "lime.media.vorbis.VorbisComment"; lime_media_vorbis_VorbisComment.prototype = { userComments: null ,vendor: null ,__class__: lime_media_vorbis_VorbisComment }; var lime_media_vorbis_VorbisFile = function(handle) { this.handle = handle; }; $hxClasses["lime.media.vorbis.VorbisFile"] = lime_media_vorbis_VorbisFile; lime_media_vorbis_VorbisFile.__name__ = "lime.media.vorbis.VorbisFile"; lime_media_vorbis_VorbisFile.fromBytes = function(bytes) { return null; }; lime_media_vorbis_VorbisFile.fromFile = function(path) { return null; }; lime_media_vorbis_VorbisFile.prototype = { bitstream: null ,handle: null ,bitrate: function(bitstream) { if(bitstream == null) { bitstream = -1; } return 0; } ,bitrateInstant: function() { return 0; } ,clear: function() { } ,comment: function(bitstream) { if(bitstream == null) { bitstream = -1; } return null; } ,crosslap: function(other) { return 0; } ,info: function(bitstream) { if(bitstream == null) { bitstream = -1; } return null; } ,pcmSeek: function(pos) { return 0; } ,pcmSeekLap: function(pos) { return 0; } ,pcmSeekPage: function(pos) { return 0; } ,pcmSeekPageLap: function(pos) { return 0; } ,pcmTell: function() { return new haxe__$Int64__$_$_$Int64(0,0); } ,pcmTotal: function(bitstream) { if(bitstream == null) { bitstream = -1; } return new haxe__$Int64__$_$_$Int64(0,0); } ,rawSeek: function(pos) { return 0; } ,rawSeekLap: function(pos) { return 0; } ,rawTell: function() { return new haxe__$Int64__$_$_$Int64(0,0); } ,rawTotal: function(bitstream) { if(bitstream == null) { bitstream = -1; } return new haxe__$Int64__$_$_$Int64(0,0); } ,read: function(buffer,position,length,bigEndianPacking,wordSize,signed) { if(signed == null) { signed = true; } if(wordSize == null) { wordSize = 2; } if(bigEndianPacking == null) { bigEndianPacking = false; } if(length == null) { length = 4096; } return 0; } ,readFloat: function(pcmChannels,samples) { return 0; } ,seekable: function() { return false; } ,serialNumber: function(bitstream) { if(bitstream == null) { bitstream = -1; } return 0; } ,streams: function() { return 0; } ,timeSeek: function(s) { return 0; } ,timeSeekLap: function(s) { return 0; } ,timeSeekPage: function(s) { return 0; } ,timeSeekPageLap: function(s) { return 0; } ,timeTell: function() { return 0; } ,timeTotal: function(bitstream) { if(bitstream == null) { bitstream = -1; } return 0; } ,__class__: lime_media_vorbis_VorbisFile }; var lime_media_vorbis_VorbisInfo = function() { }; $hxClasses["lime.media.vorbis.VorbisInfo"] = lime_media_vorbis_VorbisInfo; lime_media_vorbis_VorbisInfo.__name__ = "lime.media.vorbis.VorbisInfo"; lime_media_vorbis_VorbisInfo.prototype = { bitrateLower: null ,bitrateNominal: null ,bitrateUpper: null ,channels: null ,rate: null ,version: null ,__class__: lime_media_vorbis_VorbisInfo }; var lime_net__$IHTTPRequest = function() { }; $hxClasses["lime.net._IHTTPRequest"] = lime_net__$IHTTPRequest; lime_net__$IHTTPRequest.__name__ = "lime.net._IHTTPRequest"; lime_net__$IHTTPRequest.__isInterface__ = true; lime_net__$IHTTPRequest.prototype = { contentType: null ,data: null ,enableResponseHeaders: null ,followRedirects: null ,formData: null ,headers: null ,method: null ,responseHeaders: null ,responseStatus: null ,timeout: null ,uri: null ,userAgent: null ,withCredentials: null ,manageCookies: null ,cancel: null ,__class__: lime_net__$IHTTPRequest }; var lime_net__$HTTPRequest_AbstractHTTPRequest = function(uri) { this.uri = uri; this.contentType = "application/x-www-form-urlencoded"; this.followRedirects = true; this.enableResponseHeaders = false; this.formData = new haxe_ds_StringMap(); this.headers = []; this.method = "GET"; this.timeout = 30000; this.withCredentials = false; this.manageCookies = true; this.__backend = new lime__$internal_backend_html5_HTML5HTTPRequest(); this.__backend.init(this); }; $hxClasses["lime.net._HTTPRequest.AbstractHTTPRequest"] = lime_net__$HTTPRequest_AbstractHTTPRequest; lime_net__$HTTPRequest_AbstractHTTPRequest.__name__ = "lime.net._HTTPRequest.AbstractHTTPRequest"; lime_net__$HTTPRequest_AbstractHTTPRequest.__interfaces__ = [lime_net__$IHTTPRequest]; lime_net__$HTTPRequest_AbstractHTTPRequest.prototype = { contentType: null ,data: null ,enableResponseHeaders: null ,followRedirects: null ,formData: null ,headers: null ,method: null ,responseData: null ,responseHeaders: null ,responseStatus: null ,timeout: null ,uri: null ,userAgent: null ,withCredentials: null ,manageCookies: null ,__backend: null ,cancel: function() { this.__backend.cancel(); } ,load: function(uri) { return null; } ,__class__: lime_net__$HTTPRequest_AbstractHTTPRequest }; var lime_net_HTTPRequest = function(uri) { lime_net__$HTTPRequest_AbstractHTTPRequest.call(this,uri); }; $hxClasses["lime.net.HTTPRequest"] = lime_net_HTTPRequest; lime_net_HTTPRequest.__name__ = "lime.net.HTTPRequest"; lime_net_HTTPRequest.__super__ = lime_net__$HTTPRequest_AbstractHTTPRequest; lime_net_HTTPRequest.prototype = $extend(lime_net__$HTTPRequest_AbstractHTTPRequest.prototype,{ __class__: lime_net_HTTPRequest }); var lime_net__$HTTPRequest_$Bytes = function(uri) { lime_net__$HTTPRequest_AbstractHTTPRequest.call(this,uri); }; $hxClasses["lime.net._HTTPRequest_Bytes"] = lime_net__$HTTPRequest_$Bytes; lime_net__$HTTPRequest_$Bytes.__name__ = "lime.net._HTTPRequest_Bytes"; lime_net__$HTTPRequest_$Bytes.__super__ = lime_net__$HTTPRequest_AbstractHTTPRequest; lime_net__$HTTPRequest_$Bytes.prototype = $extend(lime_net__$HTTPRequest_AbstractHTTPRequest.prototype,{ fromBytes: function(bytes) { return bytes; } ,load: function(uri) { var _gthis = this; if(uri != null) { this.uri = uri; } var promise = new lime_app_Promise(); var future = this.__backend.loadData(this.uri); future.onProgress($bind(promise,promise.progress)); future.onError($bind(promise,promise.error)); future.onComplete(function(bytes) { _gthis.responseData = _gthis.fromBytes(bytes); promise.complete(_gthis.responseData); }); return promise.future; } ,__class__: lime_net__$HTTPRequest_$Bytes }); var lime_net__$HTTPRequest_$String = function(uri) { lime_net__$HTTPRequest_AbstractHTTPRequest.call(this,uri); }; $hxClasses["lime.net._HTTPRequest_String"] = lime_net__$HTTPRequest_$String; lime_net__$HTTPRequest_$String.__name__ = "lime.net._HTTPRequest_String"; lime_net__$HTTPRequest_$String.__super__ = lime_net__$HTTPRequest_AbstractHTTPRequest; lime_net__$HTTPRequest_$String.prototype = $extend(lime_net__$HTTPRequest_AbstractHTTPRequest.prototype,{ load: function(uri) { var _gthis = this; if(uri != null) { this.uri = uri; } var promise = new lime_app_Promise(); var future = this.__backend.loadText(this.uri); future.onProgress($bind(promise,promise.progress)); future.onError($bind(promise,promise.error)); future.onComplete(function(text) { _gthis.responseData = text; promise.complete(_gthis.responseData); }); return promise.future; } ,__class__: lime_net__$HTTPRequest_$String }); var lime_net_HTTPRequestHeader = function(name,value) { if(value == null) { value = ""; } this.name = name; this.value = value; }; $hxClasses["lime.net.HTTPRequestHeader"] = lime_net_HTTPRequestHeader; lime_net_HTTPRequestHeader.__name__ = "lime.net.HTTPRequestHeader"; lime_net_HTTPRequestHeader.prototype = { name: null ,value: null ,__class__: lime_net_HTTPRequestHeader }; var lime_net__$HTTPRequest_$lime_$text_$Font = function(uri) { lime_net__$HTTPRequest_$Bytes.call(this,uri); }; $hxClasses["lime.net._HTTPRequest_lime_text_Font"] = lime_net__$HTTPRequest_$lime_$text_$Font; lime_net__$HTTPRequest_$lime_$text_$Font.__name__ = "lime.net._HTTPRequest_lime_text_Font"; lime_net__$HTTPRequest_$lime_$text_$Font.__super__ = lime_net__$HTTPRequest_$Bytes; lime_net__$HTTPRequest_$lime_$text_$Font.prototype = $extend(lime_net__$HTTPRequest_$Bytes.prototype,{ fromBytes: function(bytes) { return lime_text_Font.fromBytes(bytes); } ,__class__: lime_net__$HTTPRequest_$lime_$text_$Font }); var lime_net__$HTTPRequest_$lime_$utils_$Bytes = function(uri) { lime_net__$HTTPRequest_$Bytes.call(this,uri); }; $hxClasses["lime.net._HTTPRequest_lime_utils_Bytes"] = lime_net__$HTTPRequest_$lime_$utils_$Bytes; lime_net__$HTTPRequest_$lime_$utils_$Bytes.__name__ = "lime.net._HTTPRequest_lime_utils_Bytes"; lime_net__$HTTPRequest_$lime_$utils_$Bytes.__super__ = lime_net__$HTTPRequest_$Bytes; lime_net__$HTTPRequest_$lime_$utils_$Bytes.prototype = $extend(lime_net__$HTTPRequest_$Bytes.prototype,{ fromBytes: function(bytes) { return lime_utils_Bytes.fromBytes(bytes); } ,__class__: lime_net__$HTTPRequest_$lime_$utils_$Bytes }); var lime_net__$HTTPRequest_$openfl_$utils_$ByteArray = function(uri) { lime_net__$HTTPRequest_$Bytes.call(this,uri); }; $hxClasses["lime.net._HTTPRequest_openfl_utils_ByteArray"] = lime_net__$HTTPRequest_$openfl_$utils_$ByteArray; lime_net__$HTTPRequest_$openfl_$utils_$ByteArray.__name__ = "lime.net._HTTPRequest_openfl_utils_ByteArray"; lime_net__$HTTPRequest_$openfl_$utils_$ByteArray.__super__ = lime_net__$HTTPRequest_$Bytes; lime_net__$HTTPRequest_$openfl_$utils_$ByteArray.prototype = $extend(lime_net__$HTTPRequest_$Bytes.prototype,{ fromBytes: function(bytes) { return openfl_utils_ByteArray.fromBytes(bytes); } ,__class__: lime_net__$HTTPRequest_$openfl_$utils_$ByteArray }); 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 ,completed: null ,doWork: null ,onComplete: null ,onError: null ,onProgress: null ,__runMessage: null ,cancel: function() { this.canceled = true; } ,run: function(message) { this.canceled = false; this.completed = false; this.__runMessage = message; this.__doWork(); } ,sendComplete: function(message) { this.completed = true; 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 = {}; lime_system_CFFIPointer._new = function(handle) { return handle; }; lime_system_CFFIPointer.get = function(this1) { var tmp = this1 != null; return 0; }; lime_system_CFFIPointer.equals = function(a,b) { return lime_system_CFFIPointer.get(a) == b; }; lime_system_CFFIPointer.equalsPointer = function(a,b) { return lime_system_CFFIPointer.get(a) == lime_system_CFFIPointer.get(b); }; lime_system_CFFIPointer.greaterThan = function(a,b) { return lime_system_CFFIPointer.get(a) > b; }; lime_system_CFFIPointer.greaterThanPointer = function(a,b) { return lime_system_CFFIPointer.get(a) > lime_system_CFFIPointer.get(b); }; lime_system_CFFIPointer.greaterThanOrEqual = function(a,b) { return lime_system_CFFIPointer.get(a) >= b; }; lime_system_CFFIPointer.greaterThanOrEqualPointer = function(a,b) { return lime_system_CFFIPointer.get(a) >= lime_system_CFFIPointer.get(b); }; lime_system_CFFIPointer.lessThan = function(a,b) { return lime_system_CFFIPointer.get(a) < b; }; lime_system_CFFIPointer.lessThanPointer = function(a,b) { return lime_system_CFFIPointer.get(a) < lime_system_CFFIPointer.get(b); }; lime_system_CFFIPointer.lessThanOrEqual = function(a,b) { return lime_system_CFFIPointer.get(a) <= b; }; lime_system_CFFIPointer.lessThanOrEqualPointer = function(a,b) { return lime_system_CFFIPointer.get(a) <= lime_system_CFFIPointer.get(b); }; lime_system_CFFIPointer.notEquals = function(a,b) { return lime_system_CFFIPointer.get(a) != b; }; lime_system_CFFIPointer.notEqualsPointer = function(a,b) { return lime_system_CFFIPointer.get(a) != lime_system_CFFIPointer.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._text = null; lime_system_Clipboard.__update = function() { var cacheText = lime_system_Clipboard._text; lime_system_Clipboard._text = null; lime_system_Clipboard.__updated = true; if(lime_system_Clipboard._text != cacheText) { lime_system_Clipboard.onUpdate.dispatch(); } }; lime_system_Clipboard.get_text = function() { lime_system_Clipboard.__update(); return lime_system_Clipboard._text; }; lime_system_Clipboard.set_text = function(value) { var cacheText = lime_system_Clipboard._text; lime_system_Clipboard._text = value; var $window = lime_app_Application.current.__window; if($window != null) { $window.__backend.setClipboard(value); } if(lime_system_Clipboard._text != cacheText) { lime_system_Clipboard.onUpdate.dispatch(); } return value; }; 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 = $hxEnums["lime.system.Endian"] = { __ename__:"lime.system.Endian",__constructs__:null ,LITTLE_ENDIAN: {_hx_name:"LITTLE_ENDIAN",_hx_index:0,__enum__:"lime.system.Endian",toString:$estr} ,BIG_ENDIAN: {_hx_name:"BIG_ENDIAN",_hx_index:1,__enum__:"lime.system.Endian",toString:$estr} }; lime_system_Endian.__constructs__ = [lime_system_Endian.LITTLE_ENDIAN,lime_system_Endian.BIG_ENDIAN]; lime_system_Endian.__empty_constructs__ = [lime_system_Endian.LITTLE_ENDIAN,lime_system_Endian.BIG_ENDIAN]; var lime_system_JNI = function() { }; $hxClasses["lime.system.JNI"] = lime_system_JNI; lime_system_JNI.__name__ = "lime.system.JNI"; lime_system_JNI.callMember = function(method,jobject,a) { return method.apply(null,[jobject].concat(a)); }; lime_system_JNI.callStatic = function(method,a) { return method.apply(null,a); }; lime_system_JNI.createMemberField = function(className,memberName,signature) { lime_system_JNI.init(); return new lime_system_JNIMemberField(null); }; lime_system_JNI.createMemberMethod = function(className,memberName,signature,useArray,quietFail) { if(quietFail == null) { quietFail = false; } if(useArray == null) { useArray = false; } lime_system_JNI.init(); return null; }; lime_system_JNI.createStaticField = function(className,memberName,signature) { lime_system_JNI.init(); return new lime_system_JNIStaticField(null); }; lime_system_JNI.createStaticMethod = function(className,memberName,signature,useArray,quietFail) { if(quietFail == null) { quietFail = false; } if(useArray == null) { useArray = false; } lime_system_JNI.init(); return null; }; lime_system_JNI.getEnv = function() { lime_system_JNI.init(); return null; }; lime_system_JNI.init = function() { if(!lime_system_JNI.initialized) { lime_system_JNI.initialized = true; } }; lime_system_JNI.onCallback = function(object,method,args) { var field = Reflect.field(object,method); if(field != null) { if(args == null) { args = []; } return field.apply(object,args); } haxe_Log.trace("onCallback - unknown field " + method,{ fileName : "lime/system/JNI.hx", lineNumber : 166, className : "lime.system.JNI", methodName : "onCallback"}); return null; }; lime_system_JNI.postUICallback = function(callback) { callback(); }; var lime_system_JNIMemberField = function(field) { this.field = field; }; $hxClasses["lime.system.JNIMemberField"] = lime_system_JNIMemberField; lime_system_JNIMemberField.__name__ = "lime.system.JNIMemberField"; lime_system_JNIMemberField.prototype = { field: null ,get: function(jobject) { return null; } ,set: function(jobject,value) { return value; } ,__class__: lime_system_JNIMemberField }; var lime_system_JNIStaticField = function(field) { this.field = field; }; $hxClasses["lime.system.JNIStaticField"] = lime_system_JNIStaticField; lime_system_JNIStaticField.__name__ = "lime.system.JNIStaticField"; lime_system_JNIStaticField.prototype = { field: null ,get: function() { return null; } ,set: function(value) { return value; } ,__class__: lime_system_JNIStaticField }; var lime_system_JNIMethod = function(method) { this.method = method; }; $hxClasses["lime.system.JNIMethod"] = lime_system_JNIMethod; lime_system_JNIMethod.__name__ = "lime.system.JNIMethod"; lime_system_JNIMethod.prototype = { method: null ,callMember: function(args) { return null; } ,callStatic: function(args) { return null; } ,getMemberMethod: function(useArray) { if(useArray) { return $bind(this,this.callMember); } else { return Reflect.makeVarArgs($bind(this,this.callMember)); } } ,getStaticMethod: function(useArray) { if(useArray) { return $bind(this,this.callStatic); } else { return Reflect.makeVarArgs($bind(this,this.callStatic)); } } ,__class__: lime_system_JNIMethod }; var lime_system_JNISafety = function() { }; $hxClasses["lime.system.JNISafety"] = lime_system_JNISafety; lime_system_JNISafety.__name__ = "lime.system.JNISafety"; lime_system_JNISafety.__isInterface__ = true; var lime_system_JNISafetyTools = function() { }; $hxClasses["lime.system.JNISafetyTools"] = lime_system_JNISafetyTools; lime_system_JNISafetyTools.__name__ = "lime.system.JNISafetyTools"; lime_system_JNISafetyTools.onMainThread = function() { return true; }; var lime_system_Sensor = function(type,id) { this.onUpdate = new lime_app__$Event_$Float_$Float_$Float_$Void(); this.type = type; this.id = id; }; $hxClasses["lime.system.Sensor"] = lime_system_Sensor; lime_system_Sensor.__name__ = "lime.system.Sensor"; lime_system_Sensor.getSensors = function(type) { if(type == null) { return lime_system_Sensor.sensors.slice(); } else { var result = []; var _g = 0; var _g1 = lime_system_Sensor.sensors; while(_g < _g1.length) { var sensor = _g1[_g]; ++_g; if(sensor.type == type) { result.push(sensor); } } return result; } }; lime_system_Sensor.registerSensor = function(type,id) { var sensor = new lime_system_Sensor(type,id); lime_system_Sensor.sensors.push(sensor); lime_system_Sensor.sensorByID.h[id] = sensor; return sensor; }; lime_system_Sensor.prototype = { id: null ,onUpdate: null ,type: null ,__class__: lime_system_Sensor }; var lime_system_SensorType = $hxEnums["lime.system.SensorType"] = { __ename__:"lime.system.SensorType",__constructs__:null ,ACCELEROMETER: {_hx_name:"ACCELEROMETER",_hx_index:0,__enum__:"lime.system.SensorType",toString:$estr} }; lime_system_SensorType.__constructs__ = [lime_system_SensorType.ACCELEROMETER]; lime_system_SensorType.__empty_constructs__ = [lime_system_SensorType.ACCELEROMETER]; 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_platformVersion:"get_platformVersion",get_platformName:"get_platformName",get_platformLabel:"get_platformLabel",get_numDisplays:"get_numDisplays",get_fontsDirectory:"get_fontsDirectory",get_endianness:"get_endianness",get_documentsDirectory:"get_documentsDirectory",get_deviceVendor:"get_deviceVendor",get_deviceModel:"get_deviceModel",get_desktopDirectory:"get_desktopDirectory",get_applicationStorageDirectory:"get_applicationStorageDirectory",get_applicationDirectory:"get_applicationDirectory",set_allowScreenTimeout:"set_allowScreenTimeout",get_allowScreenTimeout:"get_allowScreenTimeout"}; lime_system_System.disableCFFI = null; lime_system_System.__applicationDirectory = null; lime_system_System.__applicationEntryPoint = null; lime_system_System.__applicationStorageDirectory = null; lime_system_System.__desktopDirectory = null; lime_system_System.__deviceModel = null; lime_system_System.__deviceVendor = null; lime_system_System.__documentsDirectory = null; lime_system_System.__endianness = null; lime_system_System.__fontsDirectory = null; lime_system_System.__platformLabel = null; lime_system_System.__platformName = null; lime_system_System.__platformVersion = null; lime_system_System.__userDirectory = null; lime_system_System.embed = $hx_exports["lime"]["embed"] = function(projectName,element,width,height,config) { if(lime_system_System.__applicationEntryPoint == null) { return; } if(Object.prototype.hasOwnProperty.call(lime_system_System.__applicationEntryPoint.h,projectName)) { var htmlElement = null; if(typeof(element) == "string") { htmlElement = window.document.getElementById(element); } else if(element == null) { htmlElement = window.document.createElement("div"); } else { htmlElement = element; } if(htmlElement == null) { window.console.log("[lime.embed] ERROR: Cannot find target element: " + Std.string(element)); return; } if(width == null) { width = 0; } if(height == null) { height = 0; } if(config == null) { config = { }; } if(Object.prototype.hasOwnProperty.call(config,"background") && typeof(config.background) == "string") { var background = StringTools.replace(Std.string(config.background),"#",""); if(background.indexOf("0x") > -1) { config.background = Std.parseInt(background); } else { config.background = Std.parseInt("0x" + background); } } config.element = htmlElement; config.width = width; config.height = height; lime_system_System.__applicationEntryPoint.h[projectName](config); } }; 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 * window.devicePixelRatio; 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 window.performance.now() | 0; }; 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.openFile = function(path) { if(path != null) { window.open(path,"_blank"); } }; lime_system_System.openURL = function(url,target) { if(target == null) { target = "_blank"; } if(url != null) { window.open(url,target); } }; lime_system_System.__copyMissingFields = function(target,source) { if(source == null || target == null) { return; } var _g = 0; var _g1 = Reflect.fields(source); while(_g < _g1.length) { var field = _g1[_g]; ++_g; if(!Object.prototype.hasOwnProperty.call(target,field)) { target[field] = Reflect.field(source,field); } } }; lime_system_System.__getDirectory = function(type) { return null; }; lime_system_System.__parseBool = function(value) { return value == "true"; }; lime_system_System.__registerEntryPoint = function(projectName,entryPoint) { if(lime_system_System.__applicationEntryPoint == null) { lime_system_System.__applicationEntryPoint = new haxe_ds_StringMap(); } lime_system_System.__applicationEntryPoint.h[projectName] = entryPoint; }; lime_system_System.__runProcess = function(command,args) { return null; }; lime_system_System.get_allowScreenTimeout = function() { return true; }; lime_system_System.set_allowScreenTimeout = function(value) { return true; }; lime_system_System.get_applicationDirectory = function() { if(lime_system_System.__applicationDirectory == null) { lime_system_System.__applicationDirectory = lime_system_System.__getDirectory(0); } return lime_system_System.__applicationDirectory; }; lime_system_System.get_applicationStorageDirectory = function() { if(lime_system_System.__applicationStorageDirectory == null) { lime_system_System.__applicationStorageDirectory = lime_system_System.__getDirectory(1); } return lime_system_System.__applicationStorageDirectory; }; lime_system_System.get_deviceModel = function() { var tmp = lime_system_System.__deviceModel == null; return lime_system_System.__deviceModel; }; lime_system_System.get_deviceVendor = function() { var tmp = lime_system_System.__deviceVendor == null; return lime_system_System.__deviceVendor; }; lime_system_System.get_desktopDirectory = function() { if(lime_system_System.__desktopDirectory == null) { lime_system_System.__desktopDirectory = lime_system_System.__getDirectory(2); } return lime_system_System.__desktopDirectory; }; lime_system_System.get_documentsDirectory = function() { if(lime_system_System.__documentsDirectory == null) { lime_system_System.__documentsDirectory = lime_system_System.__getDirectory(3); } return lime_system_System.__documentsDirectory; }; lime_system_System.get_endianness = function() { if(lime_system_System.__endianness == null) { var arrayBuffer = new ArrayBuffer(2); var elements = null; var array = null; var vector = null; var view = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(arrayBuffer != null) { if(len == null) { this1 = new Uint8Array(arrayBuffer,0); } else { this1 = new Uint8Array(arrayBuffer,0,len); } } else { this1 = null; } var uint8Array = this1; var elements = null; var array = null; var vector = null; var view = null; var len = null; var this1; if(elements != null) { this1 = new Uint16Array(elements); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(arrayBuffer != null) { if(len == null) { this1 = new Uint16Array(arrayBuffer,0); } else { this1 = new Uint16Array(arrayBuffer,0,len); } } else { this1 = null; } var uint16array = this1; uint8Array[0] = 170; uint8Array[1] = 187; if(uint16array[0] == 43707) { lime_system_System.__endianness = lime_system_Endian.BIG_ENDIAN; } else { lime_system_System.__endianness = lime_system_Endian.LITTLE_ENDIAN; } } return lime_system_System.__endianness; }; lime_system_System.get_fontsDirectory = function() { if(lime_system_System.__fontsDirectory == null) { lime_system_System.__fontsDirectory = lime_system_System.__getDirectory(4); } return lime_system_System.__fontsDirectory; }; lime_system_System.get_numDisplays = function() { return 1; }; lime_system_System.get_platformLabel = function() { if(lime_system_System.__platformLabel == null) { var name = lime_system_System.get_platformName(); var version = lime_system_System.get_platformVersion(); if(name != null && version != null) { lime_system_System.__platformLabel = name + " " + version; } else if(name != null) { lime_system_System.__platformLabel = name; } } return lime_system_System.__platformLabel; }; lime_system_System.get_platformName = function() { if(lime_system_System.__platformName == null) { lime_system_System.__platformName = "HTML5"; } return lime_system_System.__platformName; }; lime_system_System.get_platformVersion = function() { var tmp = lime_system_System.__platformVersion == null; return lime_system_System.__platformVersion; }; lime_system_System.get_userDirectory = function() { if(lime_system_System.__userDirectory == null) { lime_system_System.__userDirectory = lime_system_System.__getDirectory(5); } return lime_system_System.__userDirectory; }; var lime_system_ThreadPool = function(minThreads,maxThreads) { if(maxThreads == null) { maxThreads = 1; } if(minThreads == null) { minThreads = 0; } this.onRun = new lime_app__$Event_$Dynamic_$Void(); 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 ,onRun: null ,queue: function(state) { this.runWork(state); } ,sendComplete: function(state) { this.onComplete.dispatch(state); } ,sendError: function(state) { this.onError.dispatch(state); } ,sendProgress: function(state) { this.onProgress.dispatch(state); } ,runWork: function(state) { this.onRun.dispatch(state); this.doWork.dispatch(state); } ,__class__: lime_system_ThreadPool }; var lime_system__$ThreadPool_ThreadPoolMessageType = $hxEnums["lime.system._ThreadPool.ThreadPoolMessageType"] = { __ename__:"lime.system._ThreadPool.ThreadPoolMessageType",__constructs__:null ,COMPLETE: {_hx_name:"COMPLETE",_hx_index:0,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr} ,ERROR: {_hx_name:"ERROR",_hx_index:1,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr} ,EXIT: {_hx_name:"EXIT",_hx_index:2,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr} ,PROGRESS: {_hx_name:"PROGRESS",_hx_index:3,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr} ,WORK: {_hx_name:"WORK",_hx_index:4,__enum__:"lime.system._ThreadPool.ThreadPoolMessageType",toString:$estr} }; lime_system__$ThreadPool_ThreadPoolMessageType.__constructs__ = [lime_system__$ThreadPool_ThreadPoolMessageType.COMPLETE,lime_system__$ThreadPool_ThreadPoolMessageType.ERROR,lime_system__$ThreadPool_ThreadPoolMessageType.EXIT,lime_system__$ThreadPool_ThreadPoolMessageType.PROGRESS,lime_system__$ThreadPool_ThreadPoolMessageType.WORK]; lime_system__$ThreadPool_ThreadPoolMessageType.__empty_constructs__ = [lime_system__$ThreadPool_ThreadPoolMessageType.COMPLETE,lime_system__$ThreadPool_ThreadPoolMessageType.ERROR,lime_system__$ThreadPool_ThreadPoolMessageType.EXIT,lime_system__$ThreadPool_ThreadPoolMessageType.PROGRESS,lime_system__$ThreadPool_ThreadPoolMessageType.WORK]; 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 = {}; lime_text_Glyph._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_harfbuzz_HB = function() { }; $hxClasses["lime.text.harfbuzz.HB"] = lime_text_harfbuzz_HB; lime_text_harfbuzz_HB.__name__ = "lime.text.harfbuzz.HB"; lime_text_harfbuzz_HB.shape = function(font,buffer,features) { }; var lime_text_harfbuzz_HBBlob = {}; lime_text_harfbuzz_HBBlob.__properties__ = {get_length:"get_length",get_immutable:"get_immutable",get_dataWritable:"get_dataWritable",get_data:"get_data",get_empty:"get_empty"}; lime_text_harfbuzz_HBBlob._new = function(data,length,memoryMode) { return null; }; lime_text_harfbuzz_HBBlob.createSubBlob = function(this1,offset,length) { return null; }; lime_text_harfbuzz_HBBlob.makeImmutable = function(this1) { }; lime_text_harfbuzz_HBBlob.get_data = function(this1) { return 0; }; lime_text_harfbuzz_HBBlob.get_dataWritable = function(this1) { return 0; }; lime_text_harfbuzz_HBBlob.get_empty = function() { return null; }; lime_text_harfbuzz_HBBlob.get_immutable = function(this1) { return false; }; lime_text_harfbuzz_HBBlob.get_length = function(this1) { return 0; }; var lime_text_harfbuzz_HBBuffer = {}; lime_text_harfbuzz_HBBuffer.__properties__ = {set_segmentProperties:"set_segmentProperties",get_segmentProperties:"get_segmentProperties",set_script:"set_script",get_script:"get_script",set_replacementCodepoint:"set_replacementCodepoint",get_replacementCodepoint:"get_replacementCodepoint",set_length:"set_length",get_length:"get_length",set_language:"set_language",get_language:"get_language",set_flags:"set_flags",get_flags:"get_flags",set_direction:"set_direction",get_direction:"get_direction",set_contentType:"set_contentType",get_contentType:"get_contentType",set_clusterLevel:"set_clusterLevel",get_clusterLevel:"get_clusterLevel",get_allocationSuccessful:"get_allocationSuccessful"}; lime_text_harfbuzz_HBBuffer._new = function() { return null; }; lime_text_harfbuzz_HBBuffer.add = function(this1,codepoint,cluster) { }; lime_text_harfbuzz_HBBuffer.addCodepoints = function(this1,text,textLength,itemOffset,itemLength) { }; lime_text_harfbuzz_HBBuffer.addUTF8 = function(this1,text,itemOffset,itemLength) { }; lime_text_harfbuzz_HBBuffer.addUTF16 = function(this1,text,textLength,itemOffset,itemLength) { }; lime_text_harfbuzz_HBBuffer.addUTF32 = function(this1,text,textLength,itemOffset,itemLength) { }; lime_text_harfbuzz_HBBuffer.clearContents = function(this1) { }; lime_text_harfbuzz_HBBuffer.getGlyphInfo = function(this1) { return null; }; lime_text_harfbuzz_HBBuffer.getGlyphPositions = function(this1) { return null; }; lime_text_harfbuzz_HBBuffer.guessSegmentProperties = function(this1) { }; lime_text_harfbuzz_HBBuffer.normalizeGlyphs = function(this1) { }; lime_text_harfbuzz_HBBuffer.preallocate = function(this1,size) { return false; }; lime_text_harfbuzz_HBBuffer.reset = function(this1) { }; lime_text_harfbuzz_HBBuffer.reverse = function(this1) { }; lime_text_harfbuzz_HBBuffer.reverseClusters = function(this1) { }; lime_text_harfbuzz_HBBuffer.get_allocationSuccessful = function(this1) { return false; }; lime_text_harfbuzz_HBBuffer.get_clusterLevel = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_clusterLevel = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_contentType = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_contentType = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_direction = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_direction = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_empty = function() { return null; }; lime_text_harfbuzz_HBBuffer.get_flags = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_flags = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_language = function(this1) { return null; }; lime_text_harfbuzz_HBBuffer.set_language = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_length = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_length = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_replacementCodepoint = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_replacementCodepoint = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_script = function(this1) { return 0; }; lime_text_harfbuzz_HBBuffer.set_script = function(this1,value) { return value; }; lime_text_harfbuzz_HBBuffer.get_segmentProperties = function(this1) { return null; }; lime_text_harfbuzz_HBBuffer.set_segmentProperties = function(this1,value) { return value; }; var lime_text_harfbuzz_HBFTFont = {}; lime_text_harfbuzz_HBFTFont.__properties__ = {set_loadFlags:"set_loadFlags",get_loadFlags:"get_loadFlags"}; lime_text_harfbuzz_HBFTFont._new = function(font) { var this1; if(font.src != null) { this1 = null; } else { this1 = null; } return this1; }; lime_text_harfbuzz_HBFTFont.get_loadFlags = function(this1) { return 0; }; lime_text_harfbuzz_HBFTFont.set_loadFlags = function(this1,value) { return value; }; var lime_text_harfbuzz_HBFace = {}; lime_text_harfbuzz_HBFace.__properties__ = {set_upem:"set_upem",get_upem:"get_upem",set_index:"set_index",get_index:"get_index",get_immutable:"get_immutable",set_glyphCount:"set_glyphCount",get_glyphCount:"get_glyphCount",get_empty:"get_empty"}; lime_text_harfbuzz_HBFace._new = function(blob,index) { return null; }; lime_text_harfbuzz_HBFace.get_empty = function() { return null; }; lime_text_harfbuzz_HBFace.get_glyphCount = function(this1) { return 0; }; lime_text_harfbuzz_HBFace.set_glyphCount = function(this1,value) { return value; }; lime_text_harfbuzz_HBFace.get_immutable = function(this1) { return false; }; lime_text_harfbuzz_HBFace.get_index = function(this1) { return 0; }; lime_text_harfbuzz_HBFace.set_index = function(this1,value) { return value; }; lime_text_harfbuzz_HBFace.get_upem = function(this1) { return 0; }; lime_text_harfbuzz_HBFace.set_upem = function(this1,value) { return value; }; var lime_text_harfbuzz_HBFeature = function() { }; $hxClasses["lime.text.harfbuzz.HBFeature"] = lime_text_harfbuzz_HBFeature; lime_text_harfbuzz_HBFeature.__name__ = "lime.text.harfbuzz.HBFeature"; lime_text_harfbuzz_HBFeature.prototype = { __class__: lime_text_harfbuzz_HBFeature }; var lime_text_harfbuzz_HBFont = {}; lime_text_harfbuzz_HBFont.__properties__ = {set_scale:"set_scale",get_scale:"get_scale",set_ppem:"set_ppem",get_ppem:"get_ppem",get_parent:"get_parent",get_immutable:"get_immutable",get_face:"get_face",get_empty:"get_empty"}; lime_text_harfbuzz_HBFont._new = function(face) { return null; }; lime_text_harfbuzz_HBFont.addGlyphOriginForDirection = function(this1,glyph,direction,x,y) { }; lime_text_harfbuzz_HBFont.createSubFont = function(this1) { return null; }; lime_text_harfbuzz_HBFont.getGlyphAdvanceForDirection = function(this1,glyph,direction) { return null; }; lime_text_harfbuzz_HBFont.getGlyphKerningForDirection = function(this1,glyph,firstGlyph,secondGlyph,direction) { return null; }; lime_text_harfbuzz_HBFont.getGlyphOriginForDirection = function(this1,glyph,direction) { return null; }; lime_text_harfbuzz_HBFont.glyphFromString = function(this1,s) { return 0; }; lime_text_harfbuzz_HBFont.glyphToString = function(this1,codepoint) { return null; }; lime_text_harfbuzz_HBFont.makeImmutable = function(this1) { }; lime_text_harfbuzz_HBFont.subtractGlyphOriginForDirection = function(this1,glyph,direction,x,y) { }; lime_text_harfbuzz_HBFont.get_empty = function() { return null; }; lime_text_harfbuzz_HBFont.get_face = function(this1) { return null; }; lime_text_harfbuzz_HBFont.get_immutable = function(this1) { return false; }; lime_text_harfbuzz_HBFont.get_parent = function(this1) { return null; }; lime_text_harfbuzz_HBFont.get_ppem = function(this1) { return null; }; lime_text_harfbuzz_HBFont.set_ppem = function(this1,value) { return value; }; lime_text_harfbuzz_HBFont.get_scale = function(this1) { return null; }; lime_text_harfbuzz_HBFont.set_scale = function(this1,value) { return value; }; var lime_text_harfbuzz_HBGlyphInfo = function() { }; $hxClasses["lime.text.harfbuzz.HBGlyphInfo"] = lime_text_harfbuzz_HBGlyphInfo; lime_text_harfbuzz_HBGlyphInfo.__name__ = "lime.text.harfbuzz.HBGlyphInfo"; lime_text_harfbuzz_HBGlyphInfo.prototype = { codepoint: null ,mask: null ,cluster: null ,__class__: lime_text_harfbuzz_HBGlyphInfo }; var lime_text_harfbuzz_HBGlyphPosition = function() { }; $hxClasses["lime.text.harfbuzz.HBGlyphPosition"] = lime_text_harfbuzz_HBGlyphPosition; lime_text_harfbuzz_HBGlyphPosition.__name__ = "lime.text.harfbuzz.HBGlyphPosition"; lime_text_harfbuzz_HBGlyphPosition.prototype = { xAdvance: null ,xOffset: null ,yAdvance: null ,yOffset: null ,__class__: lime_text_harfbuzz_HBGlyphPosition }; var lime_text_harfbuzz_HBLanguage = {}; lime_text_harfbuzz_HBLanguage._new = function(language) { return null; }; lime_text_harfbuzz_HBLanguage.toString = function(this1) { return null; }; lime_text_harfbuzz_HBLanguage.fromString = function(value) { return lime_text_harfbuzz_HBLanguage._new(value); }; var lime_text_harfbuzz_HBSegmentProperties = function() { }; $hxClasses["lime.text.harfbuzz.HBSegmentProperties"] = lime_text_harfbuzz_HBSegmentProperties; lime_text_harfbuzz_HBSegmentProperties.__name__ = "lime.text.harfbuzz.HBSegmentProperties"; lime_text_harfbuzz_HBSegmentProperties.prototype = { __class__: lime_text_harfbuzz_HBSegmentProperties }; var lime_ui_FileDialog = function() { this.onSelectMultiple = new lime_app__$Event_$Array_$String_$_$Void(); this.onSelect = new lime_app__$Event_$String_$Void(); this.onSave = new lime_app__$Event_$String_$Void(); this.onOpen = new lime_app__$Event_$lime_$utils_$Resource_$Void(); this.onCancel = new lime_app__$Event_$Void_$Void(); }; $hxClasses["lime.ui.FileDialog"] = lime_ui_FileDialog; lime_ui_FileDialog.__name__ = "lime.ui.FileDialog"; lime_ui_FileDialog.prototype = { onCancel: null ,onOpen: null ,onSave: null ,onSelect: null ,onSelectMultiple: null ,browse: function(type,filter,defaultPath,title) { if(type == null) { type = lime_ui_FileDialogType.OPEN; } this.onCancel.dispatch(); return false; } ,open: function(filter,defaultPath,title) { this.onCancel.dispatch(); return false; } ,save: function(data,filter,defaultPath,title,type) { if(type == null) { type = "application/octet-stream"; } if(data == null) { this.onCancel.dispatch(); return false; } var defaultExtension = ""; if(lime_graphics_Image.__isPNG(data)) { type = "image/png"; defaultExtension = ".png"; } else if(lime_graphics_Image.__isJPG(data)) { type = "image/jpeg"; defaultExtension = ".jpg"; } else if(lime_graphics_Image.__isGIF(data)) { type = "image/gif"; defaultExtension = ".gif"; } else if(lime_graphics_Image.__isWebP(data)) { type = "image/webp"; defaultExtension = ".webp"; } var path = defaultPath != null ? haxe_io_Path.withoutDirectory(defaultPath) : "download" + defaultExtension; var buffer = data.b.bufferValue; buffer = buffer.slice(0,data.length); window.saveAs(new Blob([buffer],{ type : type}),path,true); this.onSave.dispatch(path); return true; } ,__class__: lime_ui_FileDialog }; var lime_ui_FileDialogType = $hxEnums["lime.ui.FileDialogType"] = { __ename__:"lime.ui.FileDialogType",__constructs__:null ,OPEN: {_hx_name:"OPEN",_hx_index:0,__enum__:"lime.ui.FileDialogType",toString:$estr} ,OPEN_MULTIPLE: {_hx_name:"OPEN_MULTIPLE",_hx_index:1,__enum__:"lime.ui.FileDialogType",toString:$estr} ,SAVE: {_hx_name:"SAVE",_hx_index:2,__enum__:"lime.ui.FileDialogType",toString:$estr} ,OPEN_DIRECTORY: {_hx_name:"OPEN_DIRECTORY",_hx_index:3,__enum__:"lime.ui.FileDialogType",toString:$estr} }; lime_ui_FileDialogType.__constructs__ = [lime_ui_FileDialogType.OPEN,lime_ui_FileDialogType.OPEN_MULTIPLE,lime_ui_FileDialogType.SAVE,lime_ui_FileDialogType.OPEN_DIRECTORY]; lime_ui_FileDialogType.__empty_constructs__ = [lime_ui_FileDialogType.OPEN,lime_ui_FileDialogType.OPEN_MULTIPLE,lime_ui_FileDialogType.SAVE,lime_ui_FileDialogType.OPEN_DIRECTORY]; var lime_ui_Gamepad = function(id) { this.onDisconnect = new lime_app__$Event_$Void_$Void(); this.onButtonUpPrecise = new lime_app__$Event_$lime_$ui_$GamepadButton_$haxe_$Int64_$Void(); this.onButtonDownPrecise = new lime_app__$Event_$lime_$ui_$GamepadButton_$haxe_$Int64_$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 ,onButtonDownPrecise: null ,onButtonUpPrecise: 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 = {}; lime_ui_GamepadAxis.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 = {}; lime_ui_GamepadButton.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_Haptic = function() { }; $hxClasses["lime.ui.Haptic"] = lime_ui_Haptic; lime_ui_Haptic.__name__ = "lime.ui.Haptic"; lime_ui_Haptic.vibrate = function(period,duration) { var pattern = []; if(period == 0) { pattern = [duration]; } else { var periodMS = Math.ceil(period / 2) | 0; var count = Math.ceil(duration / period * 2) | 0; pattern = [0]; var _g = 0; var _g1 = count; while(_g < _g1) { var i = _g++; pattern.push(periodMS); } } try { if(!$global.navigator.vibrate(pattern)) { lime_utils_Log.verbose("Navigator.vibrate() returned false.",{ fileName : "lime/ui/Haptic.hx", lineNumber : 57, className : "lime.ui.Haptic", methodName : "vibrate"}); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; lime_utils_Log.verbose("Navigator.vibrate() threw an error (it might be Internet Explorer or Edge not supporting the feature)",{ fileName : "lime/ui/Haptic.hx", lineNumber : 62, className : "lime.ui.Haptic", methodName : "vibrate"}); } }; var lime_ui_Joystick = function(id) { this.onTrackballMove = new lime_app__$Event_$Int_$Float_$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 = {}; lime_ui_JoystickHatPosition.__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._new = function(value) { return value; }; lime_ui_JoystickHatPosition.get_center = function(this1) { return this1 == 0; }; lime_ui_JoystickHatPosition.set_center = function(this1,value) { if(value) { this1 = 0; } return value; }; lime_ui_JoystickHatPosition.get_down = function(this1) { return (this1 & 4) > 0; }; lime_ui_JoystickHatPosition.set_down = function(this1,value) { if(value) { this1 |= 4; } else { this1 &= 268435455 - 4; } return value; }; lime_ui_JoystickHatPosition.get_left = function(this1) { return (this1 & 8) > 0; }; lime_ui_JoystickHatPosition.set_left = function(this1,value) { if(value) { this1 |= 8; } else { this1 &= 268435455 - 8; } return value; }; lime_ui_JoystickHatPosition.get_right = function(this1) { return (this1 & 2) > 0; }; lime_ui_JoystickHatPosition.set_right = function(this1,value) { if(value) { this1 |= 2; } else { this1 &= 268435455 - 2; } return value; }; lime_ui_JoystickHatPosition.get_up = function(this1) { return (this1 & 1) > 0; }; lime_ui_JoystickHatPosition.set_up = function(this1,value) { if(value) { this1 |= 1; } else { this1 &= 268435455 - 1; } return value; }; var lime_ui_KeyCode = {}; lime_ui_KeyCode.fromScanCode = function(scanCode) { return 0; }; lime_ui_KeyCode.toScanCode = function(keyCode) { return 0; }; lime_ui_KeyCode.gt = function(a,b) { return a > b; }; lime_ui_KeyCode.gte = function(a,b) { return a >= b; }; lime_ui_KeyCode.lt = function(a,b) { return a < b; }; lime_ui_KeyCode.lte = function(a,b) { return a <= b; }; lime_ui_KeyCode.plus = function(a,b) { return a + b; }; var lime_ui_KeyModifier = {}; lime_ui_KeyModifier.__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.get_altKey = function(this1) { if((this1 & 256) <= 0) { return (this1 & 512) > 0; } else { return true; } }; lime_ui_KeyModifier.set_altKey = function(this1,value) { if(value) { this1 |= 768; } else { this1 &= 268435455 - 768; } return value; }; lime_ui_KeyModifier.get_capsLock = function(this1) { if((this1 & 8192) <= 0) { return (this1 & 8192) > 0; } else { return true; } }; lime_ui_KeyModifier.set_capsLock = function(this1,value) { if(value) { this1 |= 8192; } else { this1 &= 268435455 - 8192; } return value; }; lime_ui_KeyModifier.get_ctrlKey = function(this1) { if((this1 & 64) <= 0) { return (this1 & 128) > 0; } else { return true; } }; lime_ui_KeyModifier.set_ctrlKey = function(this1,value) { if(value) { this1 |= 192; } else { this1 &= 268435455 - 192; } return value; }; lime_ui_KeyModifier.get_metaKey = function(this1) { if((this1 & 1024) <= 0) { return (this1 & 2048) > 0; } else { return true; } }; lime_ui_KeyModifier.set_metaKey = function(this1,value) { if(value) { this1 |= 3072; } else { this1 &= 268435455 - 3072; } return value; }; lime_ui_KeyModifier.get_numLock = function(this1) { if((this1 & 4096) <= 0) { return (this1 & 4096) > 0; } else { return true; } }; lime_ui_KeyModifier.set_numLock = function(this1,value) { if(value) { this1 |= 4096; } else { this1 &= 268435455 - 4096; } return value; }; lime_ui_KeyModifier.get_shiftKey = function(this1) { if((this1 & 1) <= 0) { return (this1 & 2) > 0; } else { return true; } }; lime_ui_KeyModifier.set_shiftKey = function(this1,value) { if(value) { this1 |= 3; } else { this1 &= 268435455 - 3; } return value; }; var lime_ui_MouseCursor = $hxEnums["lime.ui.MouseCursor"] = { __ename__:"lime.ui.MouseCursor",__constructs__:null ,ARROW: {_hx_name:"ARROW",_hx_index:0,__enum__:"lime.ui.MouseCursor",toString:$estr} ,CROSSHAIR: {_hx_name:"CROSSHAIR",_hx_index:1,__enum__:"lime.ui.MouseCursor",toString:$estr} ,DEFAULT: {_hx_name:"DEFAULT",_hx_index:2,__enum__:"lime.ui.MouseCursor",toString:$estr} ,MOVE: {_hx_name:"MOVE",_hx_index:3,__enum__:"lime.ui.MouseCursor",toString:$estr} ,POINTER: {_hx_name:"POINTER",_hx_index:4,__enum__:"lime.ui.MouseCursor",toString:$estr} ,RESIZE_NESW: {_hx_name:"RESIZE_NESW",_hx_index:5,__enum__:"lime.ui.MouseCursor",toString:$estr} ,RESIZE_NS: {_hx_name:"RESIZE_NS",_hx_index:6,__enum__:"lime.ui.MouseCursor",toString:$estr} ,RESIZE_NWSE: {_hx_name:"RESIZE_NWSE",_hx_index:7,__enum__:"lime.ui.MouseCursor",toString:$estr} ,RESIZE_WE: {_hx_name:"RESIZE_WE",_hx_index:8,__enum__:"lime.ui.MouseCursor",toString:$estr} ,TEXT: {_hx_name:"TEXT",_hx_index:9,__enum__:"lime.ui.MouseCursor",toString:$estr} ,WAIT: {_hx_name:"WAIT",_hx_index:10,__enum__:"lime.ui.MouseCursor",toString:$estr} ,WAIT_ARROW: {_hx_name:"WAIT_ARROW",_hx_index:11,__enum__:"lime.ui.MouseCursor",toString:$estr} ,CUSTOM: {_hx_name:"CUSTOM",_hx_index:12,__enum__:"lime.ui.MouseCursor",toString:$estr} }; lime_ui_MouseCursor.__constructs__ = [lime_ui_MouseCursor.ARROW,lime_ui_MouseCursor.CROSSHAIR,lime_ui_MouseCursor.DEFAULT,lime_ui_MouseCursor.MOVE,lime_ui_MouseCursor.POINTER,lime_ui_MouseCursor.RESIZE_NESW,lime_ui_MouseCursor.RESIZE_NS,lime_ui_MouseCursor.RESIZE_NWSE,lime_ui_MouseCursor.RESIZE_WE,lime_ui_MouseCursor.TEXT,lime_ui_MouseCursor.WAIT,lime_ui_MouseCursor.WAIT_ARROW,lime_ui_MouseCursor.CUSTOM]; lime_ui_MouseCursor.__empty_constructs__ = [lime_ui_MouseCursor.ARROW,lime_ui_MouseCursor.CROSSHAIR,lime_ui_MouseCursor.DEFAULT,lime_ui_MouseCursor.MOVE,lime_ui_MouseCursor.POINTER,lime_ui_MouseCursor.RESIZE_NESW,lime_ui_MouseCursor.RESIZE_NS,lime_ui_MouseCursor.RESIZE_NWSE,lime_ui_MouseCursor.RESIZE_WE,lime_ui_MouseCursor.TEXT,lime_ui_MouseCursor.WAIT,lime_ui_MouseCursor.WAIT_ARROW,lime_ui_MouseCursor.CUSTOM]; var lime_ui_MouseWheelMode = $hxEnums["lime.ui.MouseWheelMode"] = { __ename__:"lime.ui.MouseWheelMode",__constructs__:null ,PIXELS: {_hx_name:"PIXELS",_hx_index:0,__enum__:"lime.ui.MouseWheelMode",toString:$estr} ,LINES: {_hx_name:"LINES",_hx_index:1,__enum__:"lime.ui.MouseWheelMode",toString:$estr} ,PAGES: {_hx_name:"PAGES",_hx_index:2,__enum__:"lime.ui.MouseWheelMode",toString:$estr} ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:3,__enum__:"lime.ui.MouseWheelMode",toString:$estr} }; lime_ui_MouseWheelMode.__constructs__ = [lime_ui_MouseWheelMode.PIXELS,lime_ui_MouseWheelMode.LINES,lime_ui_MouseWheelMode.PAGES,lime_ui_MouseWheelMode.UNKNOWN]; lime_ui_MouseWheelMode.__empty_constructs__ = [lime_ui_MouseWheelMode.PIXELS,lime_ui_MouseWheelMode.LINES,lime_ui_MouseWheelMode.PAGES,lime_ui_MouseWheelMode.UNKNOWN]; var lime_ui_ScanCode = {}; lime_ui_ScanCode.fromKeyCode = function(keyCode) { return lime_ui_KeyCode.toScanCode(keyCode); }; lime_ui_ScanCode.toKeyCode = function(scanCode) { return lime_ui_KeyCode.fromScanCode(scanCode); }; lime_ui_ScanCode.gt = function(a,b) { return a > b; }; lime_ui_ScanCode.gte = function(a,b) { return a >= b; }; lime_ui_ScanCode.lt = function(a,b) { return a < b; }; lime_ui_ScanCode.lte = function(a,b) { return a <= b; }; lime_ui_ScanCode.plus = function(a,b) { return a + b; }; 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(application,attributes) { this.onTextInput = new lime_app__$Event_$String_$Void(); this.onTextEdit = new lime_app__$Event_$String_$Int_$Int_$Void(); this.onShow = new lime_app__$Event_$Void_$Void(); this.onRestore = new lime_app__$Event_$Void_$Void(); this.onResize = new lime_app__$Event_$Int_$Int_$Void(); this.onRenderContextRestored = new lime_app__$Event_$lime_$graphics_$RenderContext_$Void(); this.onRenderContextLost = new lime_app__$Event_$Void_$Void(); this.onRender = new lime_app__$Event_$lime_$graphics_$RenderContext_$Void(); this.onMove = new lime_app__$Event_$Float_$Float_$Void(); this.onMouseWheel = new lime_app__$Event_$Float_$Float_$lime_$ui_$MouseWheelMode_$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_$lime_$ui_$MouseButton_$Void(); this.onMinimize = new lime_app__$Event_$Void_$Void(); this.onMaximize = new lime_app__$Event_$Void_$Void(); this.onLeave = new lime_app__$Event_$Void_$Void(); this.onKeyUpPrecise = new lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$Void(); this.onKeyDownPrecise = new lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$haxe_$Int64_$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.onHide = new lime_app__$Event_$Void_$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.onExpose = 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.onClose = new lime_app__$Event_$Void_$Void(); this.onActivate = new lime_app__$Event_$Void_$Void(); this.application = application; this.__attributes = attributes != null ? attributes : { }; if(Object.prototype.hasOwnProperty.call(this.__attributes,"parameters")) { this.parameters = this.__attributes.parameters; } this.__width = 0; this.__height = 0; this.__fullscreen = false; this.__scale = 1; this.__x = 0; this.__y = 0; this.__title = ""; this.id = -1; this.__backend = new lime__$internal_backend_html5_HTML5Window(this); }; $hxClasses["lime.ui.Window"] = lime_ui_Window; lime_ui_Window.__name__ = "lime.ui.Window"; lime_ui_Window.prototype = { application: null ,context: null ,display: null ,element: null ,hidden: null ,id: null ,onActivate: null ,onClose: null ,onDeactivate: null ,onDropFile: null ,onEnter: null ,onExpose: null ,onFocusIn: null ,onFocusOut: null ,onFullscreen: null ,onHide: null ,onKeyDown: null ,onKeyUp: null ,onKeyDownPrecise: null ,onKeyUpPrecise: null ,onLeave: null ,onMaximize: null ,onMinimize: null ,onMouseDown: null ,onMouseMove: null ,onMouseMoveRelative: null ,onMouseUp: null ,onMouseWheel: null ,onMove: null ,onRender: null ,onRenderContextLost: null ,onRenderContextRestored: null ,onResize: null ,onRestore: null ,onShow: null ,onTextEdit: null ,onTextInput: null ,parameters: null ,scale: null ,stage: null ,__attributes: null ,__backend: null ,__borderless: null ,__fullscreen: null ,__height: null ,__hidden: 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(); } ,focus: function() { this.__backend.focus(); } ,move: function(x,y) { this.__backend.move(x,y); this.__x = x; this.__y = y; } ,readPixels: function(rect) { return this.__backend.readPixels(rect); } ,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]"; } ,warpMouse: function(x,y) { this.__backend.warpMouse(x,y); } ,get_cursor: function() { return this.__backend.getCursor(); } ,set_cursor: function(value) { return this.__backend.setCursor(value); } ,get_display: function() { return this.__backend.getDisplay(); } ,get_displayMode: function() { return this.__backend.getDisplayMode(); } ,set_displayMode: function(value) { return this.__backend.setDisplayMode(value); } ,get_borderless: function() { return this.__borderless; } ,set_borderless: function(value) { return this.__borderless = this.__backend.setBorderless(value); } ,get_frameRate: function() { return this.__backend.getFrameRate(); } ,set_frameRate: function(value) { return this.__backend.setFrameRate(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_hidden: function() { return this.__hidden; } ,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_mouseLock: function() { return this.__backend.getMouseLock(); } ,set_mouseLock: function(value) { this.__backend.setMouseLock(value); return 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_textInputEnabled: function() { return this.__backend.getTextInputEnabled(); } ,set_textInputEnabled: function(value) { return this.__backend.setTextInputEnabled(value); } ,setTextInputRect: function(value) { return this.__backend.setTextInputRect(value); } ,get_title: function() { return this.__title; } ,set_title: function(value) { return this.__title = this.__backend.setTitle(value); } ,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",set_textInputEnabled:"set_textInputEnabled",get_textInputEnabled:"get_textInputEnabled",get_scale:"get_scale",set_resizable:"set_resizable",get_resizable:"get_resizable",set_mouseLock:"set_mouseLock",get_mouseLock:"get_mouseLock",set_minimized:"set_minimized",get_minimized:"get_minimized",set_maximized:"set_maximized",get_maximized:"get_maximized",get_hidden:"get_hidden",set_height:"set_height",get_height:"get_height",set_fullscreen:"set_fullscreen",get_fullscreen:"get_fullscreen",set_frameRate:"set_frameRate",get_frameRate:"get_frameRate",set_displayMode:"set_displayMode",get_displayMode:"get_displayMode",get_display:"get_display",set_cursor:"set_cursor",get_cursor:"get_cursor",set_borderless:"set_borderless",get_borderless:"get_borderless"} }; var lime_utils_TAError = $hxEnums["lime.utils.TAError"] = { __ename__:"lime.utils.TAError",__constructs__:null ,RangeError: {_hx_name:"RangeError",_hx_index:0,__enum__:"lime.utils.TAError",toString:$estr} }; lime_utils_TAError.__constructs__ = [lime_utils_TAError.RangeError]; lime_utils_TAError.__empty_constructs__ = [lime_utils_TAError.RangeError]; var lime_utils_AssetBundle = function() { this.data = new haxe_ds_StringMap(); this.paths = []; }; $hxClasses["lime.utils.AssetBundle"] = lime_utils_AssetBundle; lime_utils_AssetBundle.__name__ = "lime.utils.AssetBundle"; lime_utils_AssetBundle.fromBytes = function(bytes) { var input = new haxe_io_BytesInput(bytes); return lime_utils_AssetBundle.__extractBundle(input); }; lime_utils_AssetBundle.fromFile = function(path) { return null; }; lime_utils_AssetBundle.loadFromBytes = function(bytes) { return lime_app_Future.withValue(lime_utils_AssetBundle.fromBytes(bytes)); }; lime_utils_AssetBundle.loadFromFile = function(path) { return lime_utils_Bytes.loadFromFile(path).then(lime_utils_AssetBundle.loadFromBytes); }; lime_utils_AssetBundle.__extractBundle = function(input) { var entries = haxe_zip_Reader.readZip(input); var bundle = new lime_utils_AssetBundle(); var _g_head = entries.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var entry = val; if(entry.compressed) { var bytes = entry.data; var this1 = bundle.data; var key = entry.fileName; var value = lime_utils_Bytes.decompress(bytes,lime_utils_CompressionAlgorithm.DEFLATE); this1.h[key] = value; } else { bundle.data.h[entry.fileName] = entry.data; } bundle.paths.push(entry.fileName); } return bundle; }; lime_utils_AssetBundle.prototype = { data: null ,paths: null ,__class__: lime_utils_AssetBundle }; var lime_utils_AssetLibrary = function() { this.types = new haxe_ds_StringMap(); this.sizes = new haxe_ds_StringMap(); this.preload = new haxe_ds_StringMap(); this.paths = new haxe_ds_StringMap(); this.pathGroups = new haxe_ds_StringMap(); this.classTypes = new haxe_ds_StringMap(); this.cachedText = new haxe_ds_StringMap(); this.cachedImages = new haxe_ds_StringMap(); this.cachedFonts = new haxe_ds_StringMap(); this.cachedBytes = new haxe_ds_StringMap(); this.cachedAudioBuffers = new haxe_ds_StringMap(); this.onChange = new lime_app__$Event_$Void_$Void(); this.bytesLoaded = 0; this.bytesTotal = 0; }; $hxClasses["lime.utils.AssetLibrary"] = lime_utils_AssetLibrary; lime_utils_AssetLibrary.__name__ = "lime.utils.AssetLibrary"; lime_utils_AssetLibrary.fromBytes = function(bytes,rootPath) { return lime_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromBytes(bytes,rootPath)); }; lime_utils_AssetLibrary.fromFile = function(path,rootPath) { return lime_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromFile(path,rootPath)); }; lime_utils_AssetLibrary.fromBundle = function(bundle) { if(Object.prototype.hasOwnProperty.call(bundle.data.h,"library.json")) { var manifest = lime_utils_AssetManifest.fromBytes(bundle.data.h["library.json"]); if(manifest != null) { var library = null; if(manifest.libraryType == null) { library = new lime_utils_AssetLibrary(); } else { var name = manifest.libraryType; var libraryClass = $hxClasses[name]; if(libraryClass != null) { library = Type.createInstance(libraryClass,manifest.libraryArgs); } else { lime_utils_Log.warn("Could not find library type: " + manifest.libraryType,{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 122, className : "lime.utils.AssetLibrary", methodName : "fromBundle"}); return null; } } library.__fromBundle(bundle,manifest); return library; } } else { var library = new lime_utils_AssetLibrary(); library.__fromBundle(bundle); return library; } return null; }; lime_utils_AssetLibrary.fromManifest = function(manifest) { if(manifest == null) { return null; } var library = null; if(manifest.libraryType == null) { library = new lime_utils_AssetLibrary(); } else { var name = manifest.libraryType; var libraryClass = $hxClasses[name]; if(libraryClass != null) { library = Type.createInstance(libraryClass,manifest.libraryArgs); } else { lime_utils_Log.warn("Could not find library type: " + manifest.libraryType,{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 160, className : "lime.utils.AssetLibrary", methodName : "fromManifest"}); return null; } } library.__fromManifest(manifest); return library; }; lime_utils_AssetLibrary.loadFromBytes = function(bytes,rootPath) { return lime_utils_AssetManifest.loadFromBytes(bytes,rootPath).then(function(manifest) { return lime_utils_AssetLibrary.loadFromManifest(manifest); }); }; lime_utils_AssetLibrary.loadFromFile = function(path,rootPath) { return lime_utils_AssetManifest.loadFromFile(path,rootPath).then(function(manifest) { return lime_utils_AssetLibrary.loadFromManifest(manifest); }); }; lime_utils_AssetLibrary.loadFromManifest = function(manifest) { var library = lime_utils_AssetLibrary.fromManifest(manifest); if(library != null) { return library.load(); } else { return lime_app_Future.withError("Could not load asset manifest"); } }; lime_utils_AssetLibrary.prototype = { onChange: null ,assetsLoaded: null ,assetsTotal: null ,bytesLoaded: null ,bytesLoadedCache: null ,bytesTotal: null ,cachedAudioBuffers: null ,cachedBytes: null ,cachedFonts: null ,cachedImages: null ,cachedText: null ,classTypes: null ,loaded: null ,pathGroups: null ,paths: null ,preload: null ,promise: null ,sizes: null ,types: null ,exists: function(id,type) { var requestedType = type != null ? js_Boot.__cast(type , String) : null; var assetType = this.types.h[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; } ,getAsset: function(id,type) { switch(type) { case "BINARY": return this.getBytes(id); case "FONT": return this.getFont(id); case "IMAGE": return this.getImage(id); case "MUSIC":case "SOUND": return this.getAudioBuffer(id); case "TEMPLATE": throw haxe_Exception.thrown("Not sure how to get template: " + id); case "TEXT": return this.getText(id); default: throw haxe_Exception.thrown("Unknown asset type: " + type); } } ,getAudioBuffer: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id)) { return this.cachedAudioBuffers.h[id]; } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return lime_media_AudioBuffer.fromBytes(js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , haxe_io_Bytes)); } else { return lime_media_AudioBuffer.fromFile(this.getPath(id)); } } ,getBytes: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) { return this.cachedBytes.h[id]; } else if(Object.prototype.hasOwnProperty.call(this.cachedText.h,id)) { var bytes = lime_utils_Bytes.ofString(this.cachedText.h[id]); this.cachedBytes.h[id] = bytes; return bytes; } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , haxe_io_Bytes); } else { return lime_utils_Bytes.fromFile(this.getPath(id)); } } ,getFont: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id)) { return this.cachedFonts.h[id]; } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , lime_text_Font); } else { return lime_text_Font.fromFile(this.getPath(id)); } } ,getImage: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedImages.h,id)) { return this.cachedImages.h[id]; } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , lime_graphics_Image); } else { return lime_graphics_Image.fromFile(this.getPath(id)); } } ,getPath: function(id) { if(Object.prototype.hasOwnProperty.call(this.paths.h,id)) { return this.paths.h[id]; } else if(Object.prototype.hasOwnProperty.call(this.pathGroups.h,id)) { return this.pathGroups.h[id][0]; } else { return null; } } ,getText: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedText.h,id)) { return this.cachedText.h[id]; } else { var bytes = this.getBytes(id); if(bytes == null) { return null; } else { return bytes.getString(0,bytes.length); } } } ,isLocal: function(id,type) { if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return true; } var _g = js_Boot.__cast(type , String); if(_g == null) { if(!(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id) || Object.prototype.hasOwnProperty.call(this.cachedText.h,id) || Object.prototype.hasOwnProperty.call(this.cachedImages.h,id) || Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id))) { return Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id); } else { return true; } } else { switch(_g) { case "FONT": return Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id); case "IMAGE": return Object.prototype.hasOwnProperty.call(this.cachedImages.h,id); case "MUSIC":case "SOUND": return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id); default: if(!Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) { return Object.prototype.hasOwnProperty.call(this.cachedText.h,id); } else { return true; } } } } ,list: function(type) { var requestedType = type != null ? js_Boot.__cast(type , String) : null; var items = []; var h = this.types.h; var id_h = h; var id_keys = Object.keys(h); var id_length = id_keys.length; var id_current = 0; while(id_current < id_length) { var id = id_keys[id_current++]; if(requestedType == null || this.exists(id,type)) { items.push(id); } } return items; } ,loadAsset: function(id,type) { switch(type) { case "BINARY": return this.loadBytes(id); case "FONT": return this.loadFont(id); case "IMAGE": return this.loadImage(id); case "MUSIC":case "SOUND": return this.loadAudioBuffer(id); case "TEMPLATE": throw haxe_Exception.thrown("Not sure how to load template: " + id); case "TEXT": return this.loadText(id); default: throw haxe_Exception.thrown("Unknown asset type: " + type); } } ,load: function() { if(this.loaded) { return lime_app_Future.withValue(this); } if(this.promise == null) { this.promise = new lime_app_Promise(); this.bytesLoadedCache = new haxe_ds_StringMap(); this.assetsLoaded = 0; this.assetsTotal = 1; var h = this.preload.h; var id_h = h; var id_keys = Object.keys(h); var id_length = id_keys.length; var id_current = 0; while(id_current < id_length) { var id = id_keys[id_current++]; if(!this.preload.h[id]) { continue; } lime_utils_Log.verbose("Preloading asset: " + id + " [" + this.types.h[id] + "]",{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 408, className : "lime.utils.AssetLibrary", methodName : "load"}); var _g = this.types.h[id]; if(_g != null) { switch(_g) { case "BINARY": this.assetsTotal++; var future = this.loadBytes(id); future.onProgress((function(id,_g) { return function(bytesLoaded,bytesTotal) { _g[0].load_onProgress(id[0],bytesLoaded,bytesTotal); }; })([id],[this])); future.onError((function(id,_g) { return function(message) { _g[0].load_onError(id[0],message); }; })([id],[this])); future.onComplete((function(id,_g) { return function(bytes) { _g[0].loadBytes_onComplete(id[0],bytes); }; })([id],[this])); break; case "FONT": this.assetsTotal++; var future1 = this.loadFont(id); future1.onProgress((function(id,_g) { return function(bytesLoaded,bytesTotal) { _g[0].load_onProgress(id[0],bytesLoaded,bytesTotal); }; })([id],[this])); future1.onError((function(id,_g) { return function(message) { _g[0].load_onError(id[0],message); }; })([id],[this])); future1.onComplete((function(id,_g) { return function(font) { _g[0].loadFont_onComplete(id[0],font); }; })([id],[this])); break; case "IMAGE": this.assetsTotal++; var future2 = this.loadImage(id); future2.onProgress((function(id,_g) { return function(bytesLoaded,bytesTotal) { _g[0].load_onProgress(id[0],bytesLoaded,bytesTotal); }; })([id],[this])); future2.onError((function(id,_g) { return function(message) { _g[0].load_onError(id[0],message); }; })([id],[this])); future2.onComplete((function(id,_g) { return function(image) { _g[0].loadImage_onComplete(id[0],image); }; })([id],[this])); break; case "MUSIC":case "SOUND": this.assetsTotal++; var future3 = this.loadAudioBuffer(id); future3.onProgress((function(id,_g) { return function(bytesLoaded,bytesTotal) { _g[0].load_onProgress(id[0],bytesLoaded,bytesTotal); }; })([id],[this])); future3.onError((function(id,_g) { return function(message) { _g[0].loadAudioBuffer_onError(id[0],message); }; })([id],[this])); future3.onComplete((function(id,_g) { return function(audioBuffer) { _g[0].loadAudioBuffer_onComplete(id[0],audioBuffer); }; })([id],[this])); break; case "TEXT": this.assetsTotal++; var future4 = this.loadText(id); future4.onProgress((function(id,_g) { return function(bytesLoaded,bytesTotal) { _g[0].load_onProgress(id[0],bytesLoaded,bytesTotal); }; })([id],[this])); future4.onError((function(id,_g) { return function(message) { _g[0].load_onError(id[0],message); }; })([id],[this])); future4.onComplete((function(id,_g) { return function(text) { _g[0].loadText_onComplete(id[0],text); }; })([id],[this])); break; default: } } } this.__assetLoaded(null); } return this.promise.future; } ,loadAudioBuffer: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h,id)) { return lime_app_Future.withValue(this.cachedAudioBuffers.h[id]); } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return lime_app_Future.withValue(lime_media_AudioBuffer.fromBytes(js_Boot.__cast(Type.createInstance(this.classTypes.h[id],[]) , haxe_io_Bytes))); } else if(Object.prototype.hasOwnProperty.call(this.pathGroups.h,id)) { return lime_media_AudioBuffer.loadFromFiles(this.pathGroups.h[id]); } else { return lime_media_AudioBuffer.loadFromFile(this.getPath(id)); } } ,loadBytes: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) { return lime_app_Future.withValue(this.cachedBytes.h[id]); } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return lime_app_Future.withValue(Type.createInstance(this.classTypes.h[id],[])); } else { return lime_utils_Bytes.loadFromFile(this.getPath(id)); } } ,loadFont: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedFonts.h,id)) { return lime_app_Future.withValue(this.cachedFonts.h[id]); } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { var font = Type.createInstance(this.classTypes.h[id],[]); return font.__loadFromName(font.name); } else { return lime_text_Font.loadFromName(this.getPath(id)); } } ,loadImage: function(id) { var _gthis = this; if(Object.prototype.hasOwnProperty.call(this.cachedImages.h,id)) { return lime_app_Future.withValue(this.cachedImages.h[id]); } else if(Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { return lime_app_Future.withValue(Type.createInstance(this.classTypes.h[id],[])); } else if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id)) { return lime_graphics_Image.loadFromBytes(this.cachedBytes.h[id]).then(function(image) { var _this = _gthis.cachedBytes; if(Object.prototype.hasOwnProperty.call(_this.h,id)) { delete(_this.h[id]); } _gthis.cachedImages.h[id] = image; return lime_app_Future.withValue(image); }); } else { return lime_graphics_Image.loadFromFile(this.getPath(id)); } } ,loadText: function(id) { if(Object.prototype.hasOwnProperty.call(this.cachedText.h,id)) { return lime_app_Future.withValue(this.cachedText.h[id]); } else if(Object.prototype.hasOwnProperty.call(this.cachedBytes.h,id) || Object.prototype.hasOwnProperty.call(this.classTypes.h,id)) { var bytes = this.getBytes(id); if(bytes == null) { return lime_app_Future.withValue(null); } else { var text = bytes.getString(0,bytes.length); this.cachedText.h[id] = text; return lime_app_Future.withValue(text); } } else { var request = new lime_net__$HTTPRequest_$String(); return request.load(this.getPath(id)); } } ,unload: function() { this.cachedBytes.h = Object.create(null); this.cachedFonts.h = Object.create(null); this.cachedImages.h = Object.create(null); this.cachedAudioBuffers.h = Object.create(null); this.cachedText.h = Object.create(null); } ,__assetLoaded: function(id) { this.assetsLoaded++; if(id != null) { lime_utils_Log.verbose("Loaded asset: " + id + " [" + this.types.h[id] + "] (" + (this.assetsLoaded - 1) + "/" + (this.assetsTotal - 1) + ")",{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 637, className : "lime.utils.AssetLibrary", methodName : "__assetLoaded"}); } if(id != null) { var size = Object.prototype.hasOwnProperty.call(this.sizes.h,id) ? this.sizes.h[id] : 0; if(!Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h,id)) { this.bytesLoaded += size; } else { var cache = this.bytesLoadedCache.h[id]; if(cache < size) { this.bytesLoaded += size - cache; } } this.bytesLoadedCache.h[id] = size; } if(this.assetsLoaded < this.assetsTotal) { this.promise.progress(this.bytesLoaded,this.bytesTotal); } else { this.loaded = true; this.promise.progress(this.bytesTotal,this.bytesTotal); this.promise.complete(this); } } ,__cacheBreak: function(path) { return lime_utils_Assets.__cacheBreak(path); } ,__fromBundle: function(bundle,manifest) { if(manifest != null) { var id; var data; var type; var _g = 0; var _g1 = manifest.assets; while(_g < _g1.length) { var asset = _g1[_g]; ++_g; id = Object.prototype.hasOwnProperty.call(asset,"id") ? asset.id : asset.path; data = bundle.data.h[asset.path]; if(Object.prototype.hasOwnProperty.call(asset,"type")) { type = asset.type; if(type == "TEXT") { this.cachedText.h[id] = data != null ? Std.string(data) : null; } else { this.cachedBytes.h[id] = data; } this.types.h[id] = asset.type; } else { this.cachedBytes.h[id] = data; this.types.h[id] = "BINARY"; } } } else { var _g = 0; var _g1 = bundle.paths; while(_g < _g1.length) { var path = _g1[_g]; ++_g; this.cachedBytes.h[path] = bundle.data.h[path]; this.types.h[path] = "BINARY"; } } } ,__fromManifest: function(manifest) { var hasSize = manifest.version >= 2; var size; var id; var pathGroup; var classRef; var basePath = manifest.rootPath; if(basePath == null) { basePath = ""; } if(basePath != "") { basePath += "/"; } var _g = 0; var _g1 = manifest.assets; while(_g < _g1.length) { var asset = _g1[_g]; ++_g; size = hasSize && Object.prototype.hasOwnProperty.call(asset,"size") ? asset.size : 100; id = Object.prototype.hasOwnProperty.call(asset,"id") ? asset.id : asset.path; if(Object.prototype.hasOwnProperty.call(asset,"path")) { var this1 = this.paths; var value = this.__cacheBreak(this.__resolvePath(basePath + Std.string(Reflect.field(asset,"path")))); this1.h[id] = value; } if(Object.prototype.hasOwnProperty.call(asset,"pathGroup")) { pathGroup = Reflect.field(asset,"pathGroup"); var _g2 = 0; var _g3 = pathGroup.length; while(_g2 < _g3) { var i = _g2++; pathGroup[i] = this.__cacheBreak(this.__resolvePath(basePath + pathGroup[i])); } this.pathGroups.h[id] = pathGroup; } this.sizes.h[id] = size; this.types.h[id] = asset.type; if(Object.prototype.hasOwnProperty.call(asset,"preload")) { this.preload.h[id] = Reflect.field(asset,"preload"); } if(Object.prototype.hasOwnProperty.call(asset,"className")) { var name = Reflect.field(asset,"className"); classRef = $hxClasses[name]; this.classTypes.h[id] = classRef; } } this.bytesTotal = 0; var _g = 0; var _g1 = manifest.assets; while(_g < _g1.length) { var asset = _g1[_g]; ++_g; id = Object.prototype.hasOwnProperty.call(asset,"id") ? asset.id : asset.path; if(Object.prototype.hasOwnProperty.call(this.preload.h,id) && this.preload.h[id] && Object.prototype.hasOwnProperty.call(this.sizes.h,id)) { this.bytesTotal += this.sizes.h[id]; } } } ,__resolvePath: function(path) { path = StringTools.replace(path,"\\","/"); var colonIdx = path.indexOf(":"); if(StringTools.startsWith(path,"http") && colonIdx > 0) { var lastSlashIdx = colonIdx + 3; var httpSection = HxOverrides.substr(path,0,lastSlashIdx); path = httpSection + StringTools.replace(HxOverrides.substr(path,lastSlashIdx,null),"//","/"); } else { path = StringTools.replace(path,"//","/"); } if(path.indexOf("./") > -1) { var split = path.split("/"); var newPath = []; var _g = 0; var _g1 = split.length; while(_g < _g1) { var i = _g++; if(split[i] == "..") { if(i == 0 || newPath[i - 1] == "..") { newPath.push(".."); } else { newPath.pop(); } } else if(split[i] == ".") { if(i == 0) { newPath.push("."); } } else { newPath.push(split[i]); } } path = newPath.join("/"); } return path; } ,loadAudioBuffer_onComplete: function(id,audioBuffer) { this.cachedAudioBuffers.h[id] = audioBuffer; if(Object.prototype.hasOwnProperty.call(this.pathGroups.h,id)) { var pathGroup = this.pathGroups.h[id]; var h = this.pathGroups.h; var otherID_h = h; var otherID_keys = Object.keys(h); var otherID_length = otherID_keys.length; var otherID_current = 0; while(otherID_current < otherID_length) { var otherID = otherID_keys[otherID_current++]; if(otherID == id) { continue; } var _g = 0; while(_g < pathGroup.length) { var path = pathGroup[_g]; ++_g; if(this.pathGroups.h[otherID].indexOf(path) > -1) { this.cachedAudioBuffers.h[otherID] = audioBuffer; break; } } } } this.__assetLoaded(id); } ,loadAudioBuffer_onError: function(id,message) { if(message != null && message != "") { lime_utils_Log.warn("Could not load \"" + id + "\": " + Std.string(message),{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 883, className : "lime.utils.AssetLibrary", methodName : "loadAudioBuffer_onError"}); } else { lime_utils_Log.warn("Could not load \"" + id + "\"",{ fileName : "lime/utils/AssetLibrary.hx", lineNumber : 887, className : "lime.utils.AssetLibrary", methodName : "loadAudioBuffer_onError"}); } this.loadAudioBuffer_onComplete(id,new lime_media_AudioBuffer()); } ,loadBytes_onComplete: function(id,bytes) { this.cachedBytes.h[id] = bytes; this.__assetLoaded(id); } ,loadFont_onComplete: function(id,font) { this.cachedFonts.h[id] = font; this.__assetLoaded(id); } ,loadImage_onComplete: function(id,image) { this.cachedImages.h[id] = image; this.__assetLoaded(id); } ,loadText_onComplete: function(id,text) { this.cachedText.h[id] = text; this.__assetLoaded(id); } ,load_onError: function(id,message) { if(message != null && message != "") { this.promise.error("Error loading asset \"" + id + "\": " + Std.string(message)); } else { this.promise.error("Error loading asset \"" + id + "\""); } } ,load_onProgress: function(id,bytesLoaded,bytesTotal) { if(bytesLoaded > 0) { var size = this.sizes.h[id]; var percent; if(bytesTotal > 0) { percent = bytesLoaded / bytesTotal; if(percent > 1) { percent = 1; } bytesLoaded = Math.floor(percent * size); } else if(bytesLoaded > size) { bytesLoaded = size; } if(Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h,id)) { var cache = this.bytesLoadedCache.h[id]; if(bytesLoaded != cache) { this.bytesLoaded += bytesLoaded - cache; } } else { this.bytesLoaded += bytesLoaded; } this.bytesLoadedCache.h[id] = bytesLoaded; this.promise.progress(this.bytesLoaded,this.bytesTotal); } } ,__class__: lime_utils_AssetLibrary }; var lime_utils_AssetManifest = function() { this.assets = []; this.libraryArgs = []; this.version = 2; }; $hxClasses["lime.utils.AssetManifest"] = lime_utils_AssetManifest; lime_utils_AssetManifest.__name__ = "lime.utils.AssetManifest"; lime_utils_AssetManifest.fromBytes = function(bytes,rootPath) { if(bytes != null) { return lime_utils_AssetManifest.parse(bytes.getString(0,bytes.length),rootPath); } else { return null; } }; lime_utils_AssetManifest.fromFile = function(path,rootPath) { path = lime_utils_AssetManifest.__resolvePath(path); rootPath = lime_utils_AssetManifest.__resolveRootPath(rootPath,path); if(path == null) { return null; } return lime_utils_AssetManifest.fromBytes(lime_utils_Bytes.fromFile(path),rootPath); }; lime_utils_AssetManifest.loadFromBytes = function(bytes,rootPath) { return lime_app_Future.withValue(lime_utils_AssetManifest.fromBytes(bytes,rootPath)); }; lime_utils_AssetManifest.loadFromFile = function(path,rootPath) { path = lime_utils_AssetManifest.__resolvePath(path); rootPath = lime_utils_AssetManifest.__resolveRootPath(rootPath,path); if(path == null) { return null; } return lime_utils_Bytes.loadFromFile(path).then(function(bytes) { return lime_app_Future.withValue(lime_utils_AssetManifest.fromBytes(bytes,rootPath)); }); }; lime_utils_AssetManifest.parse = function(data,rootPath) { if(data == null || data == "") { return null; } var manifestData = JSON.parse(data); var manifest = new lime_utils_AssetManifest(); if(Object.prototype.hasOwnProperty.call(manifestData,"name")) { manifest.name = manifestData.name; } if(Object.prototype.hasOwnProperty.call(manifestData,"libraryType")) { manifest.libraryType = manifestData.libraryType; } if(Object.prototype.hasOwnProperty.call(manifestData,"libraryArgs")) { manifest.libraryArgs = manifestData.libraryArgs; } if(Object.prototype.hasOwnProperty.call(manifestData,"assets")) { var assets = manifestData.assets; if(Object.prototype.hasOwnProperty.call(manifestData,"version") && manifestData.version <= 2) { manifest.assets = haxe_Unserializer.run(assets); } else { manifest.assets = assets; } } if(Object.prototype.hasOwnProperty.call(manifestData,"rootPath")) { manifest.rootPath = manifestData.rootPath; } if(rootPath != null && rootPath != "") { if(manifest.rootPath == null || manifest.rootPath == "") { manifest.rootPath = rootPath; } else { manifest.rootPath = rootPath + "/" + manifest.rootPath; } } return manifest; }; lime_utils_AssetManifest.__resolvePath = function(path) { if(path == null) { return null; } var queryIndex = path.indexOf("?"); var basePath; if(queryIndex > -1) { basePath = HxOverrides.substr(path,0,queryIndex); } else { basePath = path; } basePath = StringTools.replace(basePath,"\\","/"); while(StringTools.endsWith(basePath,"/")) basePath = HxOverrides.substr(basePath,0,basePath.length - 1); if(StringTools.endsWith(basePath,".bundle")) { if(queryIndex > -1) { return basePath + "/library.json" + HxOverrides.substr(path,queryIndex,null); } else { return basePath + "/library.json"; } } else { return path; } }; lime_utils_AssetManifest.__resolveRootPath = function(rootPath,path) { if(rootPath != null) { return rootPath; } var queryIndex = path.indexOf("?"); if(queryIndex > -1) { rootPath = HxOverrides.substr(path,0,queryIndex); } else { rootPath = path; } rootPath = StringTools.replace(rootPath,"\\","/"); while(StringTools.endsWith(rootPath,"/")) { if(rootPath == "/") { return rootPath; } rootPath = HxOverrides.substr(rootPath,0,rootPath.length - 1); } if(StringTools.endsWith(rootPath,".bundle")) { return rootPath; } else { return haxe_io_Path.directory(rootPath); } }; lime_utils_AssetManifest.prototype = { assets: null ,libraryArgs: null ,libraryType: null ,name: null ,rootPath: null ,version: null ,serialize: function() { var manifestData = { }; manifestData.version = this.version; manifestData.libraryType = this.libraryType; manifestData.libraryArgs = this.libraryArgs; manifestData.name = this.name; manifestData.assets = haxe_Serializer.run(this.assets); manifestData.rootPath = this.rootPath; return JSON.stringify(manifestData); } ,__class__: lime_utils_AssetManifest }; var lime_utils_BytePointer = {}; lime_utils_BytePointer._new = function(bytes,offset) { if(offset == null) { offset = 0; } return new lime_utils_BytePointerData(bytes,offset); }; lime_utils_BytePointer.set = function(this1,bytes,bufferView,buffer,offset) { if(buffer != null) { bytes = haxe_io_Bytes.ofData(buffer); } if(bytes != null || bufferView == null) { this1.bytes = bytes; this1.offset = offset != null ? offset : 0; } else { this1.bytes = haxe_io_Bytes.ofData(bufferView.buffer); this1.offset = offset != null ? bufferView.byteOffset + offset : bufferView.byteOffset; } }; lime_utils_BytePointer.__arrayGet = function(this1,index) { if(this1.bytes != null) { return this1.bytes.b[index + this1.offset]; } else { return 0; } }; lime_utils_BytePointer.__arraySet = function(this1,index,value) { if(this1.bytes == null) { this1.bytes.b[index + this1.offset] = value & 255; } return value; }; lime_utils_BytePointer.fromArrayBufferView = function(arrayBufferView) { if(arrayBufferView == null) { return null; } return new lime_utils_BytePointerData(haxe_io_Bytes.ofData(arrayBufferView.buffer),arrayBufferView.byteOffset); }; lime_utils_BytePointer.fromArrayBuffer = function(buffer) { if(buffer == null) { return null; } return new lime_utils_BytePointerData(haxe_io_Bytes.ofData(buffer),0); }; lime_utils_BytePointer.fromBytes = function(bytes) { return new lime_utils_BytePointerData(bytes,0); }; lime_utils_BytePointer.fromBytesData = function(bytesData) { if(bytesData == null) { return new lime_utils_BytePointerData(null,0); } else { return new lime_utils_BytePointerData(haxe_io_Bytes.ofData(bytesData),0); } }; lime_utils_BytePointer.fromFile = function(path) { return new lime_utils_BytePointerData(lime_utils_Bytes.fromFile(path),0); }; lime_utils_BytePointer.fromLimeBytes = function(bytes) { return new lime_utils_BytePointerData(bytes,0); }; lime_utils_BytePointer.toUInt8Array = function(bytePointer) { var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 8 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toUInt8ClampedArray = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 8 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8ClampedArray(elements); } else if(array != null) { this1 = new Uint8ClampedArray(array); } else if(vector != null) { this1 = new Uint8ClampedArray(vector.__array); } else if(view != null) { this1 = new Uint8ClampedArray(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8ClampedArray(buffer,byteoffset); } else { this1 = new Uint8ClampedArray(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toInt8Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 8 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Int8Array(elements); } else if(array != null) { this1 = new Int8Array(array); } else if(vector != null) { this1 = new Int8Array(vector.__array); } else if(view != null) { this1 = new Int8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Int8Array(buffer,byteoffset); } else { this1 = new Int8Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toUInt16Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 16 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint16Array(elements); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint16Array(buffer,byteoffset); } else { this1 = new Uint16Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toInt16Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 16 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Int16Array(elements); } else if(array != null) { this1 = new Int16Array(array); } else if(vector != null) { this1 = new Int16Array(vector.__array); } else if(view != null) { this1 = new Int16Array(view); } else if(buffer != null) { if(len == null) { this1 = new Int16Array(buffer,byteoffset); } else { this1 = new Int16Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toUInt32Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 32 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint32Array(elements); } else if(array != null) { this1 = new Uint32Array(array); } else if(vector != null) { this1 = new Uint32Array(vector.__array); } else if(view != null) { this1 = new Uint32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint32Array(buffer,byteoffset); } else { this1 = new Uint32Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toInt32Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 32 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Int32Array(elements); } else if(array != null) { this1 = new Int32Array(array); } else if(vector != null) { this1 = new Int32Array(vector.__array); } else if(view != null) { this1 = new Int32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Int32Array(buffer,byteoffset); } else { this1 = new Int32Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toFloat32Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 32 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,byteoffset); } else { this1 = new Float32Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; lime_utils_BytePointer.toFloat64Array = function(bytePointer) { if(bytePointer == null || bytePointer.bytes == null) { return null; } var elements = null; var array = null; var vector = null; var view = null; var buffer = bytePointer.bytes.b.bufferValue; var byteoffset = bytePointer.offset / 64 | 0; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Float64Array(elements); } else if(array != null) { this1 = new Float64Array(array); } else if(vector != null) { this1 = new Float64Array(vector.__array); } else if(view != null) { this1 = new Float64Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float64Array(buffer,byteoffset); } else { this1 = new Float64Array(buffer,byteoffset,len); } } else { this1 = null; } return this1; }; var lime_utils_BytePointerData = function(bytes,offset) { this.bytes = bytes; this.offset = offset; }; $hxClasses["lime.utils.BytePointerData"] = lime_utils_BytePointerData; lime_utils_BytePointerData.__name__ = "lime.utils.BytePointerData"; lime_utils_BytePointerData.prototype = { bytes: null ,offset: null ,__class__: lime_utils_BytePointerData }; var lime_utils_Bytes = {}; lime_utils_Bytes._new = function(length,bytesData) { return new haxe_io_Bytes(bytesData); }; lime_utils_Bytes.alloc = function(length) { return new haxe_io_Bytes(new ArrayBuffer(length)); }; lime_utils_Bytes.compress = function(this1,algorithm) { switch(algorithm._hx_index) { case 0: return lime__$internal_format_Deflate.compress(this1); case 1: return lime__$internal_format_GZip.compress(this1); case 2: return lime__$internal_format_LZMA.compress(this1); case 3: return lime__$internal_format_Zlib.compress(this1); } }; lime_utils_Bytes.decompress = function(this1,algorithm) { switch(algorithm._hx_index) { case 0: return lime__$internal_format_Deflate.decompress(this1); case 1: return lime__$internal_format_GZip.decompress(this1); case 2: return lime__$internal_format_LZMA.decompress(this1); case 3: return lime__$internal_format_Zlib.decompress(this1); } }; lime_utils_Bytes.fastGet = function(b,pos) { return b.bytes[pos]; }; lime_utils_Bytes.fromBytes = function(bytes) { if(bytes == null) { return null; } return lime_utils_Bytes._new(bytes.length,bytes.b.bufferValue); }; lime_utils_Bytes.fromFile = function(path) { return null; }; lime_utils_Bytes.loadFromBytes = function(bytes) { return lime_app_Future.withValue(lime_utils_Bytes.fromBytes(bytes)); }; lime_utils_Bytes.loadFromFile = function(path) { var request = new lime_net__$HTTPRequest_$lime_$utils_$Bytes(); return request.load(path); }; lime_utils_Bytes.ofData = function(b) { var bytes = haxe_io_Bytes.ofData(b); return lime_utils_Bytes._new(bytes.length,bytes.b.bufferValue); }; lime_utils_Bytes.ofString = function(s) { var bytes = haxe_io_Bytes.ofString(s); return lime_utils_Bytes._new(bytes.length,bytes.b.bufferValue); }; var lime_utils_CompressionAlgorithm = $hxEnums["lime.utils.CompressionAlgorithm"] = { __ename__:"lime.utils.CompressionAlgorithm",__constructs__:null ,DEFLATE: {_hx_name:"DEFLATE",_hx_index:0,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr} ,GZIP: {_hx_name:"GZIP",_hx_index:1,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr} ,LZMA: {_hx_name:"LZMA",_hx_index:2,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr} ,ZLIB: {_hx_name:"ZLIB",_hx_index:3,__enum__:"lime.utils.CompressionAlgorithm",toString:$estr} }; lime_utils_CompressionAlgorithm.__constructs__ = [lime_utils_CompressionAlgorithm.DEFLATE,lime_utils_CompressionAlgorithm.GZIP,lime_utils_CompressionAlgorithm.LZMA,lime_utils_CompressionAlgorithm.ZLIB]; lime_utils_CompressionAlgorithm.__empty_constructs__ = [lime_utils_CompressionAlgorithm.DEFLATE,lime_utils_CompressionAlgorithm.GZIP,lime_utils_CompressionAlgorithm.LZMA,lime_utils_CompressionAlgorithm.ZLIB]; var lime_utils_DataPointer = {}; lime_utils_DataPointer._new = function(data) { return data; }; lime_utils_DataPointer.fromFloat = function(value) { return value; }; lime_utils_DataPointer.fromBytesPointer = function(pointer) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.fromArrayBufferView = function(arrayBufferView) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.fromArrayBuffer = function(buffer) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.fromBytes = function(bytes) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.fromBytesData = function(bytesData) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.fromLimeBytes = function(bytes) { return lime_utils_DataPointer.fromBytes(bytes); }; lime_utils_DataPointer.fromCFFIPointer = function(pointer) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.fromFile = function(path) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.__withOffset = function(data,offset) { return lime_utils_DataPointer.fromFloat(0); }; lime_utils_DataPointer.equals = function(a,b) { return a == b; }; lime_utils_DataPointer.equalsPointer = function(a,b) { return a == b; }; lime_utils_DataPointer.greaterThan = function(a,b) { return a > b; }; lime_utils_DataPointer.greaterThanPointer = function(a,b) { return lime_system_CFFIPointer.get(a) > lime_system_CFFIPointer.get(b); }; lime_utils_DataPointer.greaterThanOrEqual = function(a,b) { return a >= b; }; lime_utils_DataPointer.greaterThanOrEqualPointer = function(a,b) { return lime_system_CFFIPointer.get(a) >= lime_system_CFFIPointer.get(b); }; lime_utils_DataPointer.lessThan = function(a,b) { return a < b; }; lime_utils_DataPointer.lessThanPointer = function(a,b) { return lime_system_CFFIPointer.get(a) < lime_system_CFFIPointer.get(b); }; lime_utils_DataPointer.lessThanOrEqual = function(a,b) { return a <= b; }; lime_utils_DataPointer.lessThanOrEqualPointer = function(a,b) { return lime_system_CFFIPointer.get(a) <= lime_system_CFFIPointer.get(b); }; lime_utils_DataPointer.notEquals = function(a,b) { return a != b; }; lime_utils_DataPointer.notEqualsPointer = function(a,b) { return a != b; }; lime_utils_DataPointer.plus = function(a,b) { return lime_utils_DataPointer.__withOffset(a,b); }; lime_utils_DataPointer.plusPointer = function(a,b) { return lime_utils_DataPointer.__withOffset(a,b | 0); }; lime_utils_DataPointer.minus = function(a,b) { return lime_utils_DataPointer.__withOffset(a,-b); }; lime_utils_DataPointer.minusPointer = function(a,b) { return lime_utils_DataPointer.__withOffset(a,-(b | 0)); }; var lime_utils_Float32Array = {}; lime_utils_Float32Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_Float32Array.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.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_Float32Array.toString = function(this1) { if(this1 != null) { return "Float32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_Float64Array = {}; lime_utils_Float64Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_Float64Array.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) { byteOffset = 0; } if(byteOffset == null) { return new Float64Array(bytes.b.bufferValue); } if(len == null) { return new Float64Array(bytes.b.bufferValue,byteOffset); } return new Float64Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils_Float64Array.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_Float64Array.toString = function(this1) { if(this1 != null) { return "Float64Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_Int16Array = {}; lime_utils_Int16Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_Int16Array.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.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_Int16Array.toString = function(this1) { if(this1 != null) { return "Int16Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_Int32Array = {}; lime_utils_Int32Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_Int32Array.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.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_Int32Array.toString = function(this1) { if(this1 != null) { return "Int32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_Int8Array = {}; lime_utils_Int8Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_Int8Array.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) { byteOffset = 0; } return new Int8Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils_Int8Array.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_Int8Array.toString = function(this1) { if(this1 != null) { return "Int8Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_Log = function() { }; $hxClasses["lime.utils.Log"] = lime_utils_Log; lime_utils_Log.__name__ = "lime.utils.Log"; lime_utils_Log.level = null; lime_utils_Log.debug = function(message,info) { if(lime_utils_Log.level >= 4) { console.debug("[" + info.className + "] " + Std.string(message)); } }; lime_utils_Log.error = function(message,info) { if(lime_utils_Log.level >= 1) { var message1 = "[" + info.className + "] ERROR: " + Std.string(message); if(lime_utils_Log.throwErrors) { throw haxe_Exception.thrown(message1); } else { console.error(message1); } } }; lime_utils_Log.info = function(message,info) { if(lime_utils_Log.level >= 3) { console.info("[" + info.className + "] " + Std.string(message)); } }; lime_utils_Log.print = function(message) { console.log(message); }; lime_utils_Log.println = function(message) { console.log(message); }; lime_utils_Log.verbose = function(message,info) { if(lime_utils_Log.level >= 5) { var message1 = "[" + info.className + "] " + Std.string(message); console.log(message1); } }; lime_utils_Log.warn = function(message,info) { if(lime_utils_Log.level >= 2) { console.warn("[" + info.className + "] WARNING: " + Std.string(message)); } }; var lime_utils_LogLevel = {}; lime_utils_LogLevel.gt = function(a,b) { return a > b; }; lime_utils_LogLevel.gte = function(a,b) { return a >= b; }; lime_utils_LogLevel.lt = function(a,b) { return a < b; }; lime_utils_LogLevel.lte = function(a,b) { return a <= b; }; var lime_utils_Preloader = function() { this.bytesTotalCache = new haxe_ds_StringMap(); this.bytesLoadedCache2 = new haxe_ds_StringMap(); this.bytesLoadedCache = new haxe_ds_ObjectMap(); this.onProgress = new lime_app__$Event_$Int_$Int_$Void(); this.onComplete = new lime_app__$Event_$Void_$Void(); this.bytesLoaded = 0; this.bytesTotal = 0; this.libraries = []; this.libraryNames = []; this.onProgress.add($bind(this,this.update)); }; $hxClasses["lime.utils.Preloader"] = lime_utils_Preloader; lime_utils_Preloader.__name__ = "lime.utils.Preloader"; lime_utils_Preloader.prototype = { complete: null ,onComplete: null ,onProgress: null ,bytesLoaded: null ,bytesLoadedCache: null ,bytesLoadedCache2: null ,bytesTotal: null ,bytesTotalCache: null ,initLibraryNames: null ,libraries: null ,libraryNames: null ,loadedLibraries: null ,loadedStage: null ,preloadComplete: null ,preloadStarted: null ,simulateProgress: null ,addLibrary: function(library) { this.libraries.push(library); } ,addLibraryName: function(name) { if(this.libraryNames.indexOf(name) == -1) { this.libraryNames.push(name); } } ,load: function() { var _gthis = this; var _g = 0; var _g1 = this.libraries; while(_g < _g1.length) { var library = _g1[_g]; ++_g; this.bytesTotal += library.bytesTotal; } this.loadedLibraries = -1; this.preloadStarted = false; var _g = 0; var _g1 = this.libraries; while(_g < _g1.length) { var library = [_g1[_g]]; ++_g; lime_utils_Log.verbose("Preloading asset library",{ fileName : "lime/utils/Preloader.hx", lineNumber : 134, className : "lime.utils.Preloader", methodName : "load"}); library[0].load().onProgress((function(library) { return function(loaded,total) { if(_gthis.bytesLoadedCache.h.__keys__[library[0].__id__] == null) { _gthis.bytesLoaded += loaded; } else { _gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache.h[library[0].__id__]; } _gthis.bytesLoadedCache.set(library[0],loaded); if(!_gthis.simulateProgress) { _gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal); } }; })(library)).onComplete((function(library) { return function(_) { if(_gthis.bytesLoadedCache.h.__keys__[library[0].__id__] == null) { _gthis.bytesLoaded += library[0].bytesTotal; } else { _gthis.bytesLoaded += (library[0].bytesTotal | 0) - _gthis.bytesLoadedCache.h[library[0].__id__]; } _gthis.loadedAssetLibrary(); }; })(library)).onError((function() { return function(e) { lime_utils_Log.error(e,{ fileName : "lime/utils/Preloader.hx", lineNumber : 170, className : "lime.utils.Preloader", methodName : "load"}); }; })()); } var _g = 0; var _g1 = this.libraryNames; while(_g < _g1.length) { var name = _g1[_g]; ++_g; this.bytesTotal += 200; } this.loadedLibraries++; this.preloadStarted = true; this.updateProgress(); } ,loadedAssetLibrary: function(name) { this.loadedLibraries++; var current = this.loadedLibraries; if(!this.preloadStarted) { ++current; } var totalLibraries = this.libraries.length + this.libraryNames.length; if(name != null) { lime_utils_Log.verbose("Loaded asset library: " + name + " [" + current + "/" + totalLibraries + "]",{ fileName : "lime/utils/Preloader.hx", lineNumber : 197, className : "lime.utils.Preloader", methodName : "loadedAssetLibrary"}); } else { lime_utils_Log.verbose("Loaded asset library [" + current + "/" + totalLibraries + "]",{ fileName : "lime/utils/Preloader.hx", lineNumber : 201, className : "lime.utils.Preloader", methodName : "loadedAssetLibrary"}); } this.updateProgress(); } ,start: function() { if(this.complete || this.simulateProgress || !this.preloadComplete) { return; } this.complete = true; this.onComplete.dispatch(); } ,update: function(loaded,total) { } ,updateProgress: function() { var _gthis = this; if(!this.simulateProgress) { this.onProgress.dispatch(this.bytesLoaded,this.bytesTotal); } if(this.loadedLibraries == this.libraries.length && !this.initLibraryNames) { this.initLibraryNames = true; var _g = 0; var _g1 = this.libraryNames; while(_g < _g1.length) { var name = [_g1[_g]]; ++_g; lime_utils_Log.verbose("Preloading asset library: " + name[0],{ fileName : "lime/utils/Preloader.hx", lineNumber : 239, className : "lime.utils.Preloader", methodName : "updateProgress"}); lime_utils_Assets.loadLibrary(name[0]).onProgress((function(name) { return function(loaded,total) { if(total > 0) { if(!Object.prototype.hasOwnProperty.call(_gthis.bytesTotalCache.h,name[0])) { _gthis.bytesTotalCache.h[name[0]] = total; _gthis.bytesTotal += total - 200; } if(loaded > total) { loaded = total; } if(!Object.prototype.hasOwnProperty.call(_gthis.bytesLoadedCache2.h,name[0])) { _gthis.bytesLoaded += loaded; } else { _gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache2.h[name[0]]; } _gthis.bytesLoadedCache2.h[name[0]] = loaded; if(!_gthis.simulateProgress) { _gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal); } } }; })(name)).onComplete((function(name) { return function(library) { var total = 200; if(Object.prototype.hasOwnProperty.call(_gthis.bytesTotalCache.h,name[0])) { total = _gthis.bytesTotalCache.h[name[0]]; } if(!Object.prototype.hasOwnProperty.call(_gthis.bytesLoadedCache2.h,name[0])) { _gthis.bytesLoaded += total; } else { _gthis.bytesLoaded += total - _gthis.bytesLoadedCache2.h[name[0]]; } _gthis.loadedAssetLibrary(name[0]); }; })(name)).onError((function() { return function(e) { lime_utils_Log.error(e,{ fileName : "lime/utils/Preloader.hx", lineNumber : 293, className : "lime.utils.Preloader", methodName : "updateProgress"}); }; })()); } } if(!this.simulateProgress && this.loadedLibraries == this.libraries.length + this.libraryNames.length) { if(!this.preloadComplete) { this.preloadComplete = true; lime_utils_Log.verbose("Preload complete",{ fileName : "lime/utils/Preloader.hx", lineNumber : 306, className : "lime.utils.Preloader", methodName : "updateProgress"}); } this.start(); } } ,__class__: lime_utils_Preloader }; var lime_utils_Resource = {}; lime_utils_Resource._new = function(size) { if(size == null) { size = 0; } return new haxe_io_Bytes(new ArrayBuffer(size)); }; lime_utils_Resource.__fromString = function(value) { return haxe_io_Bytes.ofString(value); }; lime_utils_Resource.__toString = function(value) { return value.toString(); }; var lime_utils_UInt16Array = {}; lime_utils_UInt16Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_UInt16Array.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.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_UInt16Array.toString = function(this1) { if(this1 != null) { return "UInt16Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_UInt32Array = {}; lime_utils_UInt32Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_UInt32Array.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.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_UInt32Array.toString = function(this1) { if(this1 != null) { return "UInt32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_UInt8Array = {}; lime_utils_UInt8Array.toArrayBufferView = function(this1) { return this1; }; lime_utils_UInt8Array.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.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_UInt8Array.toString = function(this1) { if(this1 != null) { return "UInt8Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; var lime_utils_UInt8ClampedArray = {}; lime_utils_UInt8ClampedArray.toArrayBufferView = function(this1) { return this1; }; lime_utils_UInt8ClampedArray.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) { byteOffset = 0; } if(byteOffset == null) { return new Uint8ClampedArray(bytes.b.bufferValue); } if(len == null) { return new Uint8ClampedArray(bytes.b.bufferValue,byteOffset); } return new Uint8ClampedArray(bytes.b.bufferValue,byteOffset,len); }; lime_utils_UInt8ClampedArray.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils_UInt8ClampedArray.toString = function(this1) { if(this1 != null) { return "UInt8ClampedArray [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; } else { return null; } }; lime_utils_UInt8ClampedArray._clamp = function(_in) { var _out = _in | 0; if(_out > 255) { _out = 255; } if(_out < 0) { return 0; } else { return _out; } }; var openfl_Lib = function() { }; $hxClasses["openfl.Lib"] = openfl_Lib; openfl_Lib.__name__ = "openfl.Lib"; openfl_Lib.__properties__ = {get_current:"get_current",get_application:"get_application"}; 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.clearInterval = function(id) { if(openfl_Lib.__timers.h.hasOwnProperty(id)) { var timer = openfl_Lib.__timers.h[id]; timer.stop(); openfl_Lib.__timers.remove(id); } }; openfl_Lib.clearTimeout = function(id) { if(openfl_Lib.__timers.h.hasOwnProperty(id)) { var timer = openfl_Lib.__timers.h[id]; timer.stop(); openfl_Lib.__timers.remove(id); } }; openfl_Lib.getDefinitionByName = function(name) { if(name == null) { return null; } return $hxClasses[name]; }; openfl_Lib.getQualifiedClassName = function(value) { if(value == null) { return null; } var ref = js_Boot.__instanceof(value,Class) ? value : js_Boot.getClass(value); if(ref == null) { if(typeof(value) == "boolean" || value == Bool) { return "Bool"; } else if(typeof(value) == "number" && ((value | 0) === value) || value == Int) { return "Int"; } else if(typeof(value) == "number" || value == Float) { return "Float"; } else { return null; } } return ref.__name__; }; openfl_Lib.getQualifiedSuperclassName = function(value) { if(value == null) { return null; } var ref = js_Boot.__instanceof(value,Class) ? value : js_Boot.getClass(value); if(ref == null) { return null; } var parentRef = ref.__super__; if(parentRef == null) { return null; } return parentRef.__name__; }; openfl_Lib.getTimer = function() { return lime_system_System.getTimer(); }; openfl_Lib.getURL = function(request,target) { openfl_Lib.navigateToURL(request,target); }; openfl_Lib.navigateToURL = function(request,$window) { if($window == null) { $window = "_blank"; } var uri = request.url; if(Type.typeof(request.data) == ValueType.TObject) { var query = ""; var fields = Reflect.fields(request.data); var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; if(query.length > 0) { query += "&"; } var query1 = encodeURIComponent(field) + "="; var s = Std.string(Reflect.field(request.data,field)); query += query1 + encodeURIComponent(s); } if(uri.indexOf("?") > -1) { uri += "&" + query; } else { uri += "?" + query; } } lime_system_System.openURL(uri,$window); }; openfl_Lib.notImplemented = function(posInfo) { var api = posInfo.className + "." + posInfo.methodName; if(!Object.prototype.hasOwnProperty.call(openfl_Lib.__sentWarnings.h,api)) { openfl_Lib.__sentWarnings.h[api] = true; lime_utils_Log.warn(posInfo.methodName + " is not implemented",posInfo); } }; openfl_Lib.preventDefaultTouchMove = function() { window.document.addEventListener("touchmove",function(evt) { evt.preventDefault(); },false); }; openfl_Lib.sendToURL = function(request) { var urlLoader = new openfl_net_URLLoader(); urlLoader.load(request); }; openfl_Lib.setInterval = function(closure,delay,args) { var id = ++openfl_Lib.__lastTimerID; var timer = new haxe_Timer(delay); openfl_Lib.__timers.h[id] = timer; timer.run = function() { closure.apply(closure,args == null ? [] : args); }; return id; }; openfl_Lib.setTimeout = function(closure,delay,args) { var id = ++openfl_Lib.__lastTimerID; var this1 = openfl_Lib.__timers; var v = haxe_Timer.delay(function() { openfl_Lib.__timers.remove(id); closure.apply(closure,args == null ? [] : args); },delay); this1.h[id] = v; return id; }; openfl_Lib.trace = function(arg) { haxe_Log.trace(arg,{ fileName : "openfl/Lib.hx", lineNumber : 569, className : "openfl.Lib", methodName : "trace"}); }; openfl_Lib.isXMLName = function(name) { if(name == null) { return false; } if(!new EReg("^[a-zA-Z_]","").match(name)) { return false; } if(new EReg("^[xX][mM][lL]","").match(name)) { return false; } if(!new EReg("^[a-zA-Z0-9_\\-\\.]+$","").match(name)) { return false; } return true; }; openfl_Lib.getClassByAlias = function(aliasName) { if(!Object.prototype.hasOwnProperty.call(openfl_Lib.__registeredClassAliases.h,aliasName)) { throw new openfl_errors_Error("Class " + aliasName + " could not be found."); } return openfl_Lib.__registeredClassAliases.h[aliasName]; }; openfl_Lib.registerClassAlias = function(aliasName,classObject) { if(classObject == null) { throw new openfl_errors_TypeError("Parameter classObject must be non-null"); } if(aliasName == null) { throw new openfl_errors_TypeError("Parameter aliasName must be non-null"); } openfl_Lib.__registeredClassAliases.h[aliasName] = classObject; }; openfl_Lib.get_application = function() { return openfl_utils__$internal_Lib.application; }; openfl_Lib.get_current = function() { if(openfl_utils__$internal_Lib.current == null) { openfl_utils__$internal_Lib.current = new openfl_display_MovieClip(); } return openfl_utils__$internal_Lib.current; }; var openfl__$Vector_IVector = function() { }; $hxClasses["openfl._Vector.IVector"] = openfl__$Vector_IVector; openfl__$Vector_IVector.__name__ = "openfl._Vector.IVector"; openfl__$Vector_IVector.__isInterface__ = true; openfl__$Vector_IVector.prototype = { get_length: null ,set_length: null ,fixed: null ,concat: null ,copy: null ,filter: null ,get: null ,indexOf: null ,insertAt: null ,iterator: null ,join: null ,lastIndexOf: null ,pop: null ,push: null ,removeAt: null ,reverse: null ,set: null ,shift: null ,slice: null ,sort: null ,splice: null ,toString: null ,unshift: null ,__tempIndex: null ,__class__: openfl__$Vector_IVector ,__properties__: {set_length:"set_length",get_length:"get_length"} }; var openfl__$Vector_BoolVector = function(length,fixed,array) { if(fixed == null) { fixed = false; } if(length == null) { length = 0; } if(array == null) { array = []; } this.__array = array; if(length > 0) { this.set_length(length); } this.fixed = fixed; }; $hxClasses["openfl._Vector.BoolVector"] = openfl__$Vector_BoolVector; openfl__$Vector_BoolVector.__name__ = "openfl._Vector.BoolVector"; openfl__$Vector_BoolVector.__interfaces__ = [openfl__$Vector_IVector]; openfl__$Vector_BoolVector.prototype = { fixed: null ,__array: null ,__tempIndex: null ,concat: function(a) { if(a == null) { return new openfl__$Vector_BoolVector(0,false,this.__array.slice()); } else { var other = a; if(other.__array.length > 0) { return new openfl__$Vector_BoolVector(0,false,this.__array.concat(other.__array)); } else { return new openfl__$Vector_BoolVector(0,false,this.__array.slice()); } } } ,copy: function() { return new openfl__$Vector_BoolVector(0,this.fixed,this.__array.slice()); } ,filter: function(callback) { var tmp = this.fixed; var _g = []; var _g1 = 0; var _g2 = this.__array; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(callback(v)) { _g.push(v); } } return new openfl__$Vector_BoolVector(0,tmp,_g); } ,get: function(index) { if(index >= this.__array.length) { return false; } else { return this.__array[index]; } } ,indexOf: function(x,from) { if(from == null) { from = 0; } var _g = from; var _g1 = this.__array.length; while(_g < _g1) { var i = _g++; if(this.__array[i] == x) { return i; } } return -1; } ,insertAt: function(index,element) { if(!this.fixed || index < this.__array.length) { this.__array.splice(index,0,element); } } ,iterator: function() { return new haxe_iterators_ArrayIterator(this.__array); } ,join: function(sep) { if(sep == null) { sep = ","; } return this.__array.join(sep); } ,lastIndexOf: function(x,from) { var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from; while(i >= 0) { if(this.__array[i] == x) { return i; } --i; } return -1; } ,pop: function() { if(!this.fixed) { return this.__array.pop(); } else { return null; } } ,push: function(x) { if(!this.fixed) { return this.__array.push(x); } else { return this.__array.length; } } ,removeAt: function(index) { if(!this.fixed || index < this.__array.length) { return this.__array.splice(index,1)[0]; } return false; } ,reverse: function() { this.__array.reverse(); return this; } ,set: function(index,value) { if(!this.fixed || index < this.__array.length) { return this.__array[index] = value; } else { return value; } } ,shift: function() { if(!this.fixed) { return this.__array.shift(); } else { return null; } } ,slice: function(startIndex,endIndex) { if(startIndex == null) { startIndex = 0; } if(endIndex == null) { endIndex = 16777215; } return new openfl__$Vector_BoolVector(0,false,this.__array.slice(startIndex,endIndex)); } ,sort: function(f) { this.__array.sort(f); } ,splice: function(pos,len) { return new openfl__$Vector_BoolVector(0,false,this.__array.splice(pos,len)); } ,toJSON: function() { return this.__array; } ,toString: function() { if(this.__array != null) { return this.__array.toString(); } else { return null; } } ,unshift: function(x) { if(!this.fixed) { this.__array.unshift(x); } } ,get_length: function() { return this.__array.length; } ,set_length: function(value) { if(!this.fixed) { var currentLength = this.__array.length; if(value < 0) { value = 0; } if(value > currentLength) { var _g = currentLength; var _g1 = value; while(_g < _g1) { var i = _g++; this.__array[i] = false; } } else { while(this.__array.length > value) this.__array.pop(); } } return this.__array.length; } ,__class__: openfl__$Vector_BoolVector ,__properties__: {set_length:"set_length",get_length:"get_length"} }; var openfl__$Vector_FloatVector = function(length,fixed,array,forceCopy) { if(forceCopy == null) { forceCopy = false; } if(fixed == null) { fixed = false; } if(length == null) { length = 0; } if(forceCopy) { this.__array = []; if(array != null) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; this.__array[i] = array[i]; } } } else { if(array == null) { array = []; } this.__array = array; } if(length > 0) { this.set_length(length); } this.fixed = fixed; }; $hxClasses["openfl._Vector.FloatVector"] = openfl__$Vector_FloatVector; openfl__$Vector_FloatVector.__name__ = "openfl._Vector.FloatVector"; openfl__$Vector_FloatVector.__interfaces__ = [openfl__$Vector_IVector]; openfl__$Vector_FloatVector.prototype = { fixed: null ,__array: null ,__tempIndex: null ,concat: function(a) { if(a == null) { return new openfl__$Vector_FloatVector(0,false,this.__array.slice()); } else { var other = a; if(other.__array.length > 0) { return new openfl__$Vector_FloatVector(0,false,this.__array.concat(other.__array)); } else { return new openfl__$Vector_FloatVector(0,false,this.__array.slice()); } } } ,copy: function() { return new openfl__$Vector_FloatVector(0,this.fixed,this.__array.slice()); } ,filter: function(callback) { var tmp = this.fixed; var _g = []; var _g1 = 0; var _g2 = this.__array; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(callback(v)) { _g.push(v); } } return new openfl__$Vector_FloatVector(0,tmp,_g); } ,get: function(index) { return this.__array[index]; } ,indexOf: function(x,from) { if(from == null) { from = 0; } var _g = from; var _g1 = this.__array.length; while(_g < _g1) { var i = _g++; if(this.__array[i] == x) { return i; } } return -1; } ,insertAt: function(index,element) { if(!this.fixed || index < this.__array.length) { this.__array.splice(index,0,element); } } ,iterator: function() { return new haxe_iterators_ArrayIterator(this.__array); } ,join: function(sep) { if(sep == null) { sep = ","; } return this.__array.join(sep); } ,lastIndexOf: function(x,from) { var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from; while(i >= 0) { if(this.__array[i] == x) { return i; } --i; } return -1; } ,pop: function() { if(!this.fixed) { return this.__array.pop(); } else { return null; } } ,push: function(x) { if(!this.fixed) { return this.__array.push(x); } else { return this.__array.length; } } ,removeAt: function(index) { if(!this.fixed || index < this.__array.length) { return this.__array.splice(index,1)[0]; } return 0; } ,reverse: function() { this.__array.reverse(); return this; } ,set: function(index,value) { if(!this.fixed || index < this.__array.length) { return this.__array[index] = value; } else { return value; } } ,shift: function() { if(!this.fixed) { return this.__array.shift(); } else { return null; } } ,slice: function(startIndex,endIndex) { if(startIndex == null) { startIndex = 0; } if(endIndex == null) { endIndex = 16777215; } return new openfl__$Vector_FloatVector(0,false,this.__array.slice(startIndex,endIndex)); } ,sort: function(f) { this.__array.sort(f); } ,splice: function(pos,len) { return new openfl__$Vector_FloatVector(0,false,this.__array.splice(pos,len)); } ,toJSON: function() { return this.__array; } ,toString: function() { if(this.__array != null) { return this.__array.toString(); } else { return null; } } ,unshift: function(x) { if(!this.fixed) { this.__array.unshift(x); } } ,get_length: function() { return this.__array.length; } ,set_length: function(value) { if(value != this.__array.length && !this.fixed) { var currentLength = this.__array.length; if(value < 0) { value = 0; } if(value > currentLength) { var _g = currentLength; var _g1 = value; while(_g < _g1) { var i = _g++; this.__array[i] = 0; } } else { while(this.__array.length > value) this.__array.pop(); } } return this.__array.length; } ,__class__: openfl__$Vector_FloatVector ,__properties__: {set_length:"set_length",get_length:"get_length"} }; var openfl__$Vector_FunctionVector = function(length,fixed,array) { if(fixed == null) { fixed = false; } if(length == null) { length = 0; } if(array == null) { array = []; } this.__array = array; if(length > 0) { this.set_length(length); } this.fixed = fixed; }; $hxClasses["openfl._Vector.FunctionVector"] = openfl__$Vector_FunctionVector; openfl__$Vector_FunctionVector.__name__ = "openfl._Vector.FunctionVector"; openfl__$Vector_FunctionVector.__interfaces__ = [openfl__$Vector_IVector]; openfl__$Vector_FunctionVector.prototype = { fixed: null ,__array: null ,__tempIndex: null ,concat: function(a) { if(a == null) { return new openfl__$Vector_FunctionVector(0,false,this.__array.slice()); } else { var other = a; if(other.__array.length > 0) { return new openfl__$Vector_FunctionVector(0,false,this.__array.concat(other.__array)); } else { return new openfl__$Vector_FunctionVector(0,false,this.__array.slice()); } } } ,copy: function() { return new openfl__$Vector_FunctionVector(0,this.fixed,this.__array.slice()); } ,filter: function(callback) { var tmp = this.fixed; var _g = []; var _g1 = 0; var _g2 = this.__array; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(callback(v)) { _g.push(v); } } return new openfl__$Vector_FunctionVector(0,tmp,_g); } ,get: function(index) { if(index >= this.__array.length) { return null; } else { return this.__array[index]; } } ,indexOf: function(x,from) { if(from == null) { from = 0; } var _g = from; var _g1 = this.__array.length; while(_g < _g1) { var i = _g++; if(this.__array[i] == x) { return i; } } return -1; } ,insertAt: function(index,element) { if(!this.fixed || index < this.__array.length) { this.__array.splice(index,0,element); } } ,iterator: function() { return new haxe_iterators_ArrayIterator(this.__array); } ,join: function(sep) { if(sep == null) { sep = ","; } return this.__array.join(sep); } ,lastIndexOf: function(x,from) { var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from; while(i >= 0) { if(this.__array[i] == x) { return i; } --i; } return -1; } ,pop: function() { if(!this.fixed) { return this.__array.pop(); } else { return null; } } ,push: function(x) { if(!this.fixed) { return this.__array.push(x); } else { return this.__array.length; } } ,removeAt: function(index) { if(!this.fixed || index < this.__array.length) { return this.__array.splice(index,1)[0]; } return null; } ,reverse: function() { this.__array.reverse(); return this; } ,set: function(index,value) { if(!this.fixed || index < this.__array.length) { return this.__array[index] = value; } else { return value; } } ,shift: function() { if(!this.fixed) { return this.__array.shift(); } else { return null; } } ,slice: function(startIndex,endIndex) { if(startIndex == null) { startIndex = 0; } if(endIndex == null) { endIndex = 16777215; } return new openfl__$Vector_FunctionVector(0,false,this.__array.slice(startIndex,endIndex)); } ,sort: function(f) { this.__array.sort(f); } ,splice: function(pos,len) { return new openfl__$Vector_FunctionVector(0,false,this.__array.splice(pos,len)); } ,toJSON: function() { return this.__array; } ,toString: function() { if(this.__array != null) { return this.__array.toString(); } else { return null; } } ,unshift: function(x) { if(!this.fixed) { this.__array.unshift(x); } } ,get_length: function() { return this.__array.length; } ,set_length: function(value) { if(!this.fixed) { var currentLength = this.__array.length; if(value < 0) { value = 0; } if(value > currentLength) { var _g = currentLength; var _g1 = value; while(_g < _g1) { var i = _g++; this.__array[i] = null; } } else { while(this.__array.length > value) this.__array.pop(); } } return this.__array.length; } ,__class__: openfl__$Vector_FunctionVector ,__properties__: {set_length:"set_length",get_length:"get_length"} }; var openfl__$Vector_IntVector = function(length,fixed,array) { if(fixed == null) { fixed = false; } if(length == null) { length = 0; } if(array == null) { array = []; } this.__array = array; if(length > 0) { this.set_length(length); } this.fixed = fixed; }; $hxClasses["openfl._Vector.IntVector"] = openfl__$Vector_IntVector; openfl__$Vector_IntVector.__name__ = "openfl._Vector.IntVector"; openfl__$Vector_IntVector.__interfaces__ = [openfl__$Vector_IVector]; openfl__$Vector_IntVector.prototype = { fixed: null ,__array: null ,__tempIndex: null ,concat: function(a) { if(a == null) { return new openfl__$Vector_IntVector(0,false,this.__array.slice()); } else { var other = a; if(other.__array.length > 0) { return new openfl__$Vector_IntVector(0,false,this.__array.concat(other.__array)); } else { return new openfl__$Vector_IntVector(0,false,this.__array.slice()); } } } ,copy: function() { return new openfl__$Vector_IntVector(0,this.fixed,this.__array.slice()); } ,filter: function(callback) { var tmp = this.fixed; var _g = []; var _g1 = 0; var _g2 = this.__array; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(callback(v)) { _g.push(v); } } return new openfl__$Vector_IntVector(0,tmp,_g); } ,get: function(index) { return this.__array[index]; } ,indexOf: function(x,from) { if(from == null) { from = 0; } var _g = from; var _g1 = this.__array.length; while(_g < _g1) { var i = _g++; if(this.__array[i] == x) { return i; } } return -1; } ,insertAt: function(index,element) { if(!this.fixed || index < this.__array.length) { this.__array.splice(index,0,element); } } ,iterator: function() { return new haxe_iterators_ArrayIterator(this.__array); } ,join: function(sep) { if(sep == null) { sep = ","; } return this.__array.join(sep); } ,lastIndexOf: function(x,from) { var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from; while(i >= 0) { if(this.__array[i] == x) { return i; } --i; } return -1; } ,pop: function() { if(!this.fixed) { return this.__array.pop(); } else { return null; } } ,push: function(x) { if(!this.fixed) { return this.__array.push(x); } else { return this.__array.length; } } ,removeAt: function(index) { if(!this.fixed || index < this.__array.length) { return this.__array.splice(index,1)[0]; } return 0; } ,reverse: function() { this.__array.reverse(); return this; } ,set: function(index,value) { if(!this.fixed || index < this.__array.length) { return this.__array[index] = value; } else { return value; } } ,shift: function() { if(!this.fixed) { return this.__array.shift(); } else { return null; } } ,slice: function(startIndex,endIndex) { if(startIndex == null) { startIndex = 0; } if(endIndex == null) { endIndex = 16777215; } return new openfl__$Vector_IntVector(0,false,this.__array.slice(startIndex,endIndex)); } ,sort: function(f) { this.__array.sort(f); } ,splice: function(pos,len) { return new openfl__$Vector_IntVector(0,false,this.__array.splice(pos,len)); } ,toJSON: function() { return this.__array; } ,toString: function() { if(this.__array != null) { return this.__array.toString(); } else { return null; } } ,unshift: function(x) { if(!this.fixed) { this.__array.unshift(x); } } ,get_length: function() { return this.__array.length; } ,set_length: function(value) { if(!this.fixed) { var currentLength = this.__array.length; if(value < 0) { value = 0; } if(value > currentLength) { var _g = currentLength; var _g1 = value; while(_g < _g1) { var i = _g++; this.__array[i] = 0; } } else { while(this.__array.length > value) this.__array.pop(); } } return this.__array.length; } ,__class__: openfl__$Vector_IntVector ,__properties__: {set_length:"set_length",get_length:"get_length"} }; var openfl__$Vector_ObjectVector = function(length,fixed,array,forceCopy) { if(forceCopy == null) { forceCopy = false; } if(fixed == null) { fixed = false; } if(length == null) { length = 0; } if(forceCopy) { this.__array = []; if(array != null) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; this.__array[i] = array[i]; } } } else { if(array == null) { array = []; } this.__array = array; } if(length > 0) { this.set_length(length); } this.fixed = fixed; }; $hxClasses["openfl._Vector.ObjectVector"] = openfl__$Vector_ObjectVector; openfl__$Vector_ObjectVector.__name__ = "openfl._Vector.ObjectVector"; openfl__$Vector_ObjectVector.__interfaces__ = [openfl__$Vector_IVector]; openfl__$Vector_ObjectVector.prototype = { fixed: null ,__array: null ,__tempIndex: null ,concat: function(a) { if(a == null) { return new openfl__$Vector_ObjectVector(0,false,this.__array.slice()); } else { var other = a; if(other.__array.length > 0) { return new openfl__$Vector_ObjectVector(0,false,this.__array.concat(other.__array)); } else { return new openfl__$Vector_ObjectVector(0,false,this.__array.slice()); } } } ,copy: function() { return new openfl__$Vector_ObjectVector(0,this.fixed,this.__array.slice()); } ,filter: function(callback) { var tmp = this.fixed; var _g = []; var _g1 = 0; var _g2 = this.__array; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(callback(v)) { _g.push(v); } } return new openfl__$Vector_ObjectVector(0,tmp,_g); } ,get: function(index) { return this.__array[index]; } ,indexOf: function(x,from) { if(from == null) { from = 0; } var _g = from; var _g1 = this.__array.length; while(_g < _g1) { var i = _g++; if(this.__array[i] == x) { return i; } } return -1; } ,insertAt: function(index,element) { if(!this.fixed || index < this.__array.length) { this.__array.splice(index,0,element); } } ,iterator: function() { return new haxe_iterators_ArrayIterator(this.__array); } ,join: function(sep) { if(sep == null) { sep = ","; } return this.__array.join(sep); } ,lastIndexOf: function(x,from) { var i = from == null || from >= this.__array.length ? this.__array.length - 1 : from; while(i >= 0) { if(this.__array[i] == x) { return i; } --i; } return -1; } ,pop: function() { if(!this.fixed) { return this.__array.pop(); } else { return null; } } ,push: function(x) { if(!this.fixed) { return this.__array.push(x); } else { return this.__array.length; } } ,removeAt: function(index) { if(!this.fixed || index < this.__array.length) { return this.__array.splice(index,1)[0]; } return null; } ,reverse: function() { this.__array.reverse(); return this; } ,set: function(index,value) { if(!this.fixed || index < this.__array.length) { return this.__array[index] = value; } else { return value; } } ,shift: function() { if(!this.fixed) { return this.__array.shift(); } else { return null; } } ,slice: function(startIndex,endIndex) { if(startIndex == null) { startIndex = 0; } if(endIndex == null) { endIndex = 16777215; } return new openfl__$Vector_ObjectVector(0,false,this.__array.slice(startIndex,endIndex)); } ,sort: function(f) { this.__array.sort(f); } ,splice: function(pos,len) { return new openfl__$Vector_ObjectVector(0,false,this.__array.splice(pos,len)); } ,toJSON: function() { return this.__array; } ,toString: function() { if(this.__array != null) { return this.__array.toString(); } else { return null; } } ,unshift: function(x) { if(!this.fixed) { this.__array.unshift(x); } } ,get_length: function() { return this.__array.length; } ,set_length: function(value) { if(!this.fixed) { var currentLength = this.__array.length; if(value < 0) { value = 0; } if(value > currentLength) { var _g = currentLength; var _g1 = value; while(_g < _g1) { var i = _g++; this.__array.push(null); } } else { while(this.__array.length > value) this.__array.pop(); } } return this.__array.length; } ,__class__: openfl__$Vector_ObjectVector ,__properties__: {set_length:"set_length",get_length:"get_length"} }; var openfl_display_Application = function() { lime_app_Application.call(this); if(openfl_utils__$internal_Lib.application == null) { openfl_utils__$internal_Lib.application = this; } if(openfl_utils__$internal_Lib.current == null) { openfl_utils__$internal_Lib.current = new openfl_display_MovieClip(); } openfl_utils__$internal_Lib.current.__loaderInfo = openfl_display_LoaderInfo.create(null); openfl_utils__$internal_Lib.current.__loaderInfo.content = openfl_utils__$internal_Lib.current; }; $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,{ createWindow: function(attributes) { var $window = new openfl_display_Window(this,attributes); this.__windows.push($window); this.__windowByID.h[$window.id] = $window; var _g = this; var window1 = $window; var tmp = function() { _g.__onWindowClose(window1); }; $window.onClose.add(tmp,false,-10000); if(this.__window == null) { this.__window = $window; $window.onActivate.add($bind(this,this.onWindowActivate)); $window.onRenderContextLost.add($bind(this,this.onRenderContextLost)); $window.onRenderContextRestored.add($bind(this,this.onRenderContextRestored)); $window.onDeactivate.add($bind(this,this.onWindowDeactivate)); $window.onDropFile.add($bind(this,this.onWindowDropFile)); $window.onEnter.add($bind(this,this.onWindowEnter)); $window.onExpose.add($bind(this,this.onWindowExpose)); $window.onFocusIn.add($bind(this,this.onWindowFocusIn)); $window.onFocusOut.add($bind(this,this.onWindowFocusOut)); $window.onFullscreen.add($bind(this,this.onWindowFullscreen)); $window.onKeyDown.add($bind(this,this.onKeyDown)); $window.onKeyUp.add($bind(this,this.onKeyUp)); $window.onLeave.add($bind(this,this.onWindowLeave)); $window.onMinimize.add($bind(this,this.onWindowMinimize)); $window.onMouseDown.add($bind(this,this.onMouseDown)); $window.onMouseMove.add($bind(this,this.onMouseMove)); $window.onMouseMoveRelative.add($bind(this,this.onMouseMoveRelative)); $window.onMouseUp.add($bind(this,this.onMouseUp)); $window.onMouseWheel.add($bind(this,this.onMouseWheel)); $window.onMove.add($bind(this,this.onWindowMove)); $window.onRender.add($bind(this,this.render)); $window.onResize.add($bind(this,this.onWindowResize)); $window.onRestore.add($bind(this,this.onWindowRestore)); $window.onTextEdit.add($bind(this,this.onTextEdit)); $window.onTextInput.add($bind(this,this.onTextInput)); this.onWindowCreate(); } this.onCreateWindow.dispatch($window); return $window; } ,__class__: openfl_display_Application }); var openfl_display_Bitmap = function(bitmapData,pixelSnapping,smoothing) { if(smoothing == null) { smoothing = false; } openfl_display_DisplayObject.call(this); this.__drawableType = 2; 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,{ pixelSnapping: null ,smoothing: null ,__image: null ,__bitmapData: null ,__imageVersion: null ,__enterFrame: function(deltaTime) { if(this.__bitmapData != null && this.__bitmapData.image != null && this.__bitmapData.image.version != this.__imageVersion) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,__getBounds: function(rect,matrix) { var bounds = openfl_geom_Rectangle.__pool.get(); if(this.__bitmapData != null) { bounds.setTo(0,0,this.__bitmapData.width,this.__bitmapData.height); } else { bounds.setTo(0,0,0,0); } bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); openfl_geom_Rectangle.__pool.release(bounds); } ,__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.__getRenderTransform(); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x)); if(px > 0 && py > 0 && px <= this.__bitmapData.width && py <= this.__bitmapData.height) { if(this.__scrollRect != null && !this.__scrollRect.contains(px,py)) { return false; } if(stack != null && !interactiveOnly) { stack.push(hitObject); } return true; } return false; } ,__hitTestMask: function(x,y) { if(this.__bitmapData == null) { return false; } this.__getRenderTransform(); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x)); if(px > 0 && py > 0 && px <= this.__bitmapData.width && py <= this.__bitmapData.height) { return true; } return false; } ,get_bitmapData: function() { return this.__bitmapData; } ,set_bitmapData: function(value) { this.__bitmapData = value; this.smoothing = false; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } var tmp = this.__filters != null; this.__imageVersion = -1; return this.__bitmapData; } ,set_height: function(value) { if(this.__bitmapData != null) { this.set_scaleY(value / this.__bitmapData.height); } else { this.set_scaleY(0); } return value; } ,set_width: function(value) { if(this.__bitmapData != null) { this.set_scaleX(value / this.__bitmapData.width); } else { this.set_scaleX(0); } return value; } ,__class__: openfl_display_Bitmap ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_bitmapData:"set_bitmapData",get_bitmapData:"get_bitmapData"}) }); var openfl_display_BlendMode = {}; openfl_display_BlendMode.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.toString = function(this1) { switch(this1) { 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_DisplayObjectRenderer = function() { openfl_events_EventDispatcher.call(this); this.__allowSmoothing = true; this.__pixelRatio = 1; this.__tempColorTransform = new openfl_geom_ColorTransform(); this.__worldAlpha = 1; }; $hxClasses["openfl.display.DisplayObjectRenderer"] = openfl_display_DisplayObjectRenderer; openfl_display_DisplayObjectRenderer.__name__ = "openfl.display.DisplayObjectRenderer"; openfl_display_DisplayObjectRenderer.__super__ = openfl_events_EventDispatcher; openfl_display_DisplayObjectRenderer.prototype = $extend(openfl_events_EventDispatcher.prototype,{ __allowSmoothing: null ,__blendMode: null ,__cleared: null ,__context: null ,__overrideBlendMode: null ,__pixelRatio: null ,__roundPixels: null ,__stage: null ,__tempColorTransform: null ,__transparent: null ,__type: null ,__worldAlpha: null ,__worldColorTransform: null ,__worldTransform: null ,__clear: function() { } ,__getAlpha: function(value) { return value * this.__worldAlpha; } ,__getColorTransform: function(value) { if(this.__worldColorTransform != null) { this.__tempColorTransform.__copyFrom(this.__worldColorTransform); this.__tempColorTransform.__combine(value); return this.__tempColorTransform; } else { return value; } } ,__popMask: function() { } ,__popMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } } ,__popMaskRect: function() { } ,__pushMask: function(mask) { } ,__pushMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } } ,__pushMaskRect: function(rect,transform) { } ,__render: function(object) { } ,__renderEvent: function(displayObject) { var renderer = this; if(displayObject.__customRenderEvent != null && displayObject.__renderable) { displayObject.__customRenderEvent.allowSmoothing = renderer.__allowSmoothing; displayObject.__customRenderEvent.objectMatrix.copyFrom(displayObject.__renderTransform); displayObject.__customRenderEvent.objectColorTransform.__copyFrom(displayObject.__worldColorTransform); displayObject.__customRenderEvent.renderer = renderer; switch(renderer.__type) { case "cairo": displayObject.__customRenderEvent.type = "renderCairo"; break; case "canvas": displayObject.__customRenderEvent.type = "renderCanvas"; break; case "dom": if(displayObject.stage != null && displayObject.__worldVisible) { displayObject.__customRenderEvent.type = "renderDOM"; } else { displayObject.__customRenderEvent.type = "clearDOM"; } break; case "opengl": if(!renderer.__cleared) { renderer.__clear(); } var renderer1 = renderer; renderer1.setShader(displayObject.__worldShader); renderer1.__context3D.__flushGL(); displayObject.__customRenderEvent.type = "renderOpenGL"; break; default: return; } renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); displayObject.dispatchEvent(displayObject.__customRenderEvent); renderer.__popMaskObject(displayObject); if(renderer.__type == "opengl") { var renderer1 = renderer; renderer1.setViewport(); } } } ,__resize: function(width,height) { } ,__setBlendMode: function(value) { } ,__shouldCacheHardware: function(displayObject,value) { if(displayObject == null) { return null; } switch(displayObject.__drawableType) { case 4:case 5: if(value == true) { return true; } value = this.__shouldCacheHardware_DisplayObject(displayObject,value); if(value == true) { return true; } if(displayObject.__children != null) { var _g = 0; var _g1 = displayObject.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; value = this.__shouldCacheHardware_DisplayObject(child,value); if(value == true) { return true; } } } return value; case 7: if(value == true) { return true; } else { return false; } break; case 9: return true; default: return this.__shouldCacheHardware_DisplayObject(displayObject,value); } } ,__shouldCacheHardware_DisplayObject: function(displayObject,value) { if(value == true || displayObject.__filters != null) { return true; } if(value == false || displayObject.__graphics != null && !openfl_display__$internal_Context3DGraphics.isCompatible(displayObject.__graphics)) { return false; } return null; } ,__updateCacheBitmap: function(displayObject,force) { if(displayObject == null) { return false; } var renderer = this; switch(displayObject.__drawableType) { case 2: var bitmap = displayObject; if(bitmap.__bitmapData == null || bitmap.__filters == null && renderer.__type == "opengl" && bitmap.__cacheBitmap == null) { return false; } force = bitmap.__bitmapData.image != null && bitmap.__bitmapData.image.version != bitmap.__imageVersion; break; case 7: var textField = displayObject; if(textField.__filters == null && renderer.__type == "opengl" && textField.__cacheBitmap == null && !textField.__domRender) { return false; } if(force) { textField.__renderDirty = true; } force = force || textField.__dirty; break; case 9: var tilemap = displayObject; if(tilemap.__filters == null && renderer.__type == "opengl" && tilemap.__cacheBitmap == null) { return false; } break; default: } if(displayObject.__isCacheBitmapRender) { return false; } var colorTransform = openfl_geom_ColorTransform.__pool.get(); colorTransform.__copyFrom(displayObject.__worldColorTransform); if(renderer.__worldColorTransform != null) { colorTransform.__combine(renderer.__worldColorTransform); } var updated = false; if(displayObject.get_cacheAsBitmap() || renderer.__type != "opengl" && !colorTransform.__isDefault(true) || renderer.__type == "opengl" && displayObject.get_scale9Grid() != null) { var rect = null; var needRender = displayObject.__cacheBitmap == null || displayObject.__renderDirty && (force || displayObject.__children != null && displayObject.__children.length > 0) || displayObject.opaqueBackground != displayObject.__cacheBitmapBackground; var softwareDirty = needRender || displayObject.__graphics != null && displayObject.__graphics.__softwareDirty || !displayObject.__cacheBitmapColorTransform.__equals(colorTransform,true); var hardwareDirty = needRender || displayObject.__graphics != null && displayObject.__graphics.__hardwareDirty; var renderType = renderer.__type; if(softwareDirty || hardwareDirty) { if(renderType == "opengl") { if(this.__shouldCacheHardware(displayObject,null) == false) { renderType = "canvas"; } } if(softwareDirty && (renderType == "canvas" || renderType == "cairo")) { needRender = true; } if(hardwareDirty && renderType == "opengl") { needRender = true; } } var updateTransform = needRender || !displayObject.__cacheBitmap.__worldTransform.equals(displayObject.__worldTransform); var hasFilters = displayObject.__filters != null; if(renderer.__type == "dom" && !hasFilters) { return false; } if(hasFilters && !needRender) { var _g = 0; var _g1 = displayObject.__filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; if(filter.__renderDirty) { needRender = true; break; } } } if(displayObject.__cacheBitmapMatrix == null) { displayObject.__cacheBitmapMatrix = new openfl_geom_Matrix(); } var bitmapMatrix = displayObject.__cacheAsBitmapMatrix != null ? displayObject.__cacheAsBitmapMatrix : displayObject.__renderTransform; if(!needRender && (bitmapMatrix.a != displayObject.__cacheBitmapMatrix.a || bitmapMatrix.b != displayObject.__cacheBitmapMatrix.b || bitmapMatrix.c != displayObject.__cacheBitmapMatrix.c || bitmapMatrix.d != displayObject.__cacheBitmapMatrix.d)) { needRender = true; } if(!needRender && renderer.__type != "opengl" && displayObject.__cacheBitmapData != null && displayObject.__cacheBitmapData.image != null && displayObject.__cacheBitmapData.image.version < displayObject.__cacheBitmapData.__textureVersion) { needRender = true; } if(!needRender) { var current = displayObject; while(current != null) { if(current.get_scrollRect() != null) { updateTransform = true; break; } current = current.parent; } } displayObject.__cacheBitmapMatrix.copyFrom(bitmapMatrix); displayObject.__cacheBitmapMatrix.tx = 0; displayObject.__cacheBitmapMatrix.ty = 0; var bitmapWidth = 0; var bitmapHeight = 0; var filterWidth = 0; var filterHeight = 0; var offsetX = 0.; var offsetY = 0.; var pixelRatio = this.__pixelRatio; if(updateTransform || needRender) { rect = openfl_geom_Rectangle.__pool.get(); displayObject.__getFilterBounds(rect,displayObject.__cacheBitmapMatrix); filterWidth = rect.width > 0 ? Math.ceil((rect.width + 1) * pixelRatio) : 0; filterHeight = rect.height > 0 ? Math.ceil((rect.height + 1) * pixelRatio) : 0; offsetX = rect.x > 0 ? Math.ceil(rect.x) : Math.floor(rect.x); offsetY = rect.y > 0 ? Math.ceil(rect.y) : Math.floor(rect.y); if(displayObject.__cacheBitmapData != null) { if(filterWidth > displayObject.__cacheBitmapData.width || filterHeight > displayObject.__cacheBitmapData.height) { bitmapWidth = Math.ceil(Math.max(filterWidth * 1.25,displayObject.__cacheBitmapData.width)); bitmapHeight = Math.ceil(Math.max(filterHeight * 1.25,displayObject.__cacheBitmapData.height)); needRender = true; } else { bitmapWidth = displayObject.__cacheBitmapData.width; bitmapHeight = displayObject.__cacheBitmapData.height; } } else { bitmapWidth = filterWidth; bitmapHeight = filterHeight; } } if(needRender) { updateTransform = true; displayObject.__cacheBitmapBackground = displayObject.opaqueBackground; if(filterWidth >= 0.5 && filterHeight >= 0.5) { var needsFill = displayObject.opaqueBackground != null && (bitmapWidth != filterWidth || bitmapHeight != filterHeight); var fillColor = displayObject.opaqueBackground != null ? -16777216 | displayObject.opaqueBackground : 0; var bitmapColor = needsFill ? 0 : fillColor; var allowFramebuffer = renderer.__type == "opengl"; if(displayObject.__cacheBitmapData == null || bitmapWidth > displayObject.__cacheBitmapData.width || bitmapHeight > displayObject.__cacheBitmapData.height) { displayObject.__cacheBitmapData = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,bitmapColor); if(displayObject.__cacheBitmap == null) { displayObject.__cacheBitmap = new openfl_display_Bitmap(); } displayObject.__cacheBitmap.__bitmapData = displayObject.__cacheBitmapData; displayObject.__cacheBitmapRenderer = null; } else { displayObject.__cacheBitmapData.__fillRect(displayObject.__cacheBitmapData.rect,bitmapColor,allowFramebuffer); } if(needsFill) { rect.setTo(0,0,filterWidth,filterHeight); displayObject.__cacheBitmapData.__fillRect(rect,fillColor,allowFramebuffer); } } else { openfl_geom_ColorTransform.__pool.release(colorTransform); displayObject.__cacheBitmap = null; displayObject.__cacheBitmapData = null; displayObject.__cacheBitmapData2 = null; displayObject.__cacheBitmapData3 = null; displayObject.__cacheBitmapRenderer = null; if(displayObject.__drawableType == 7) { var textField = displayObject; if(textField.__cacheBitmap != null) { textField.__cacheBitmap.__renderTransform.tx -= textField.__offsetX * pixelRatio; textField.__cacheBitmap.__renderTransform.ty -= textField.__offsetY * pixelRatio; } } return true; } } else { displayObject.__cacheBitmapData = displayObject.__cacheBitmap.get_bitmapData(); displayObject.__cacheBitmapData2 = null; displayObject.__cacheBitmapData3 = null; } if(updateTransform || needRender) { displayObject.__cacheBitmap.__worldTransform.copyFrom(displayObject.__worldTransform); if(bitmapMatrix == displayObject.__renderTransform) { displayObject.__cacheBitmap.__renderTransform.identity(); displayObject.__cacheBitmap.__renderTransform.scale(1 / pixelRatio,1 / pixelRatio); displayObject.__cacheBitmap.__renderTransform.tx = displayObject.__renderTransform.tx + offsetX; displayObject.__cacheBitmap.__renderTransform.ty = displayObject.__renderTransform.ty + offsetY; } else { displayObject.__cacheBitmap.__renderTransform.copyFrom(displayObject.__cacheBitmapMatrix); displayObject.__cacheBitmap.__renderTransform.invert(); displayObject.__cacheBitmap.__renderTransform.concat(displayObject.__renderTransform); displayObject.__cacheBitmap.__renderTransform.a *= 1 / pixelRatio; displayObject.__cacheBitmap.__renderTransform.d *= 1 / pixelRatio; displayObject.__cacheBitmap.__renderTransform.tx += offsetX; displayObject.__cacheBitmap.__renderTransform.ty += offsetY; } } displayObject.__cacheBitmap.smoothing = renderer.__allowSmoothing; displayObject.__cacheBitmap.__renderable = displayObject.__renderable; displayObject.__cacheBitmap.__worldAlpha = displayObject.__worldAlpha; displayObject.__cacheBitmap.__worldBlendMode = displayObject.__worldBlendMode; displayObject.__cacheBitmap.__worldShader = displayObject.__worldShader; displayObject.__cacheBitmap.set_mask(displayObject.__mask); if(needRender) { if(displayObject.__cacheBitmapRenderer == null || renderType != displayObject.__cacheBitmapRenderer.__type) { if(renderType == "opengl") { displayObject.__cacheBitmapRenderer = new openfl_display_OpenGLRenderer((js_Boot.__cast(renderer , openfl_display_OpenGLRenderer)).__context3D,displayObject.__cacheBitmapData); } else { if(displayObject.__cacheBitmapData.image == null) { var color = displayObject.opaqueBackground != null ? -16777216 | displayObject.opaqueBackground : 0; displayObject.__cacheBitmapData = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,color); displayObject.__cacheBitmap.__bitmapData = displayObject.__cacheBitmapData; } lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(displayObject.__cacheBitmapData.image); displayObject.__cacheBitmapRenderer = new openfl_display_CanvasRenderer(displayObject.__cacheBitmapData.image.buffer.__srcContext); } displayObject.__cacheBitmapRenderer.__worldTransform = new openfl_geom_Matrix(); displayObject.__cacheBitmapRenderer.__worldColorTransform = new openfl_geom_ColorTransform(); } if(displayObject.__cacheBitmapColorTransform == null) { displayObject.__cacheBitmapColorTransform = new openfl_geom_ColorTransform(); } displayObject.__cacheBitmapRenderer.__stage = displayObject.stage; displayObject.__cacheBitmapRenderer.__allowSmoothing = renderer.__allowSmoothing; displayObject.__cacheBitmapRenderer.__setBlendMode(10); displayObject.__cacheBitmapRenderer.__worldAlpha = 1 / displayObject.__worldAlpha; displayObject.__cacheBitmapRenderer.__worldTransform.copyFrom(displayObject.__renderTransform); displayObject.__cacheBitmapRenderer.__worldTransform.invert(); displayObject.__cacheBitmapRenderer.__worldTransform.concat(displayObject.__cacheBitmapMatrix); displayObject.__cacheBitmapRenderer.__worldTransform.tx -= offsetX; displayObject.__cacheBitmapRenderer.__worldTransform.ty -= offsetY; displayObject.__cacheBitmapRenderer.__worldTransform.scale(pixelRatio,pixelRatio); displayObject.__cacheBitmapRenderer.__pixelRatio = pixelRatio; displayObject.__cacheBitmapRenderer.__worldColorTransform.__copyFrom(colorTransform); displayObject.__cacheBitmapRenderer.__worldColorTransform.__invert(); displayObject.__isCacheBitmapRender = true; if(displayObject.__cacheBitmapRenderer.__type == "opengl") { var parentRenderer = renderer; var childRenderer = displayObject.__cacheBitmapRenderer; var context = childRenderer.__context3D; var cacheRTT = context.__state.renderToTexture; var cacheRTTDepthStencil = context.__state.renderToTextureDepthStencil; var cacheRTTAntiAlias = context.__state.renderToTextureAntiAlias; var cacheRTTSurfaceSelector = context.__state.renderToTextureSurfaceSelector; var cacheBlendMode = parentRenderer.__blendMode; parentRenderer.__suspendClipAndMask(); childRenderer.__copyShader(parentRenderer); displayObject.__cacheBitmapData.__setUVRect(context,0,0,filterWidth,filterHeight); childRenderer.__setRenderTarget(displayObject.__cacheBitmapData); if(displayObject.__cacheBitmapData.image != null) { displayObject.__cacheBitmapData.__textureVersion = displayObject.__cacheBitmapData.image.version + 1; } displayObject.__cacheBitmapData.__drawGL(displayObject,childRenderer); if(hasFilters) { var needSecondBitmapData = true; var needCopyOfOriginal = false; var _g = 0; var _g1 = displayObject.__filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; if(filter.__preserveObject) { needCopyOfOriginal = true; } } var bitmap = displayObject.__cacheBitmapData; var bitmap2 = null; var bitmap3 = null; if(displayObject.__cacheBitmapData2 == null || bitmapWidth > displayObject.__cacheBitmapData2.width || bitmapHeight > displayObject.__cacheBitmapData2.height) { displayObject.__cacheBitmapData2 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0); } else { displayObject.__cacheBitmapData2.fillRect(displayObject.__cacheBitmapData2.rect,0); if(displayObject.__cacheBitmapData2.image != null) { displayObject.__cacheBitmapData2.__textureVersion = displayObject.__cacheBitmapData2.image.version + 1; } } displayObject.__cacheBitmapData2.__setUVRect(context,0,0,filterWidth,filterHeight); bitmap2 = displayObject.__cacheBitmapData2; if(needCopyOfOriginal) { if(displayObject.__cacheBitmapData3 == null || bitmapWidth > displayObject.__cacheBitmapData3.width || bitmapHeight > displayObject.__cacheBitmapData3.height) { displayObject.__cacheBitmapData3 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0); } else { displayObject.__cacheBitmapData3.fillRect(displayObject.__cacheBitmapData3.rect,0); if(displayObject.__cacheBitmapData3.image != null) { displayObject.__cacheBitmapData3.__textureVersion = displayObject.__cacheBitmapData3.image.version + 1; } } displayObject.__cacheBitmapData3.__setUVRect(context,0,0,filterWidth,filterHeight); bitmap3 = displayObject.__cacheBitmapData3; } childRenderer.__setBlendMode(10); childRenderer.__worldAlpha = 1; childRenderer.__worldTransform.identity(); childRenderer.__worldColorTransform.__identity(); var shader; var cacheBitmap; var _g = 0; var _g1 = displayObject.__filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; if(filter.__preserveObject) { childRenderer.__setRenderTarget(bitmap3); childRenderer.__renderFilterPass(bitmap,childRenderer.__defaultDisplayShader,filter.__smooth); } var _g2 = 0; var _g3 = filter.__numShaderPasses; while(_g2 < _g3) { var i = _g2++; shader = filter.__initShader(childRenderer,i,filter.__preserveObject ? bitmap3 : null); childRenderer.__setBlendMode(filter.__shaderBlendMode); childRenderer.__setRenderTarget(bitmap2); childRenderer.__renderFilterPass(bitmap,shader,filter.__smooth); cacheBitmap = bitmap; bitmap = bitmap2; bitmap2 = cacheBitmap; } filter.__renderDirty = false; } displayObject.__cacheBitmap.__bitmapData = bitmap; } parentRenderer.__blendMode = 10; parentRenderer.__setBlendMode(cacheBlendMode); parentRenderer.__copyShader(childRenderer); if(cacheRTT != null) { context.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector); } else { context.setRenderToBackBuffer(); } parentRenderer.__resumeClipAndMask(childRenderer); parentRenderer.setViewport(); displayObject.__cacheBitmapColorTransform.__copyFrom(colorTransform); } else { displayObject.__cacheBitmapData.__drawCanvas(displayObject,displayObject.__cacheBitmapRenderer); if(hasFilters) { var needSecondBitmapData = false; var needCopyOfOriginal = false; var _g = 0; var _g1 = displayObject.__filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; if(filter.__needSecondBitmapData) { needSecondBitmapData = true; } if(filter.__preserveObject) { needCopyOfOriginal = true; } } var bitmap = displayObject.__cacheBitmapData; var bitmap2 = null; var bitmap3 = null; if(needSecondBitmapData) { if(displayObject.__cacheBitmapData2 == null || displayObject.__cacheBitmapData2.image == null || bitmapWidth > displayObject.__cacheBitmapData2.width || bitmapHeight > displayObject.__cacheBitmapData2.height) { displayObject.__cacheBitmapData2 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0); } else { displayObject.__cacheBitmapData2.fillRect(displayObject.__cacheBitmapData2.rect,0); } bitmap2 = displayObject.__cacheBitmapData2; } else { bitmap2 = bitmap; } if(needCopyOfOriginal) { if(displayObject.__cacheBitmapData3 == null || displayObject.__cacheBitmapData3.image == null || bitmapWidth > displayObject.__cacheBitmapData3.width || bitmapHeight > displayObject.__cacheBitmapData3.height) { displayObject.__cacheBitmapData3 = new openfl_display_BitmapData(bitmapWidth,bitmapHeight,true,0); } else { displayObject.__cacheBitmapData3.fillRect(displayObject.__cacheBitmapData3.rect,0); } bitmap3 = displayObject.__cacheBitmapData3; } if(displayObject.__tempPoint == null) { displayObject.__tempPoint = new openfl_geom_Point(); } var destPoint = displayObject.__tempPoint; var cacheBitmap; var lastBitmap; var _g = 0; var _g1 = displayObject.__filters; while(_g < _g1.length) { var filter = _g1[_g]; ++_g; if(filter.__preserveObject) { bitmap3.copyPixels(bitmap,bitmap.rect,destPoint); } lastBitmap = filter.__applyFilter(bitmap2,bitmap,bitmap.rect,destPoint); if(filter.__preserveObject) { lastBitmap.draw(bitmap3,null,displayObject.__objectTransform != null ? displayObject.__objectTransform.__colorTransform : null); } filter.__renderDirty = false; if(needSecondBitmapData && lastBitmap == bitmap2) { cacheBitmap = bitmap; bitmap = bitmap2; bitmap2 = cacheBitmap; } } if(displayObject.__cacheBitmapData != bitmap) { cacheBitmap = displayObject.__cacheBitmapData; displayObject.__cacheBitmapData = bitmap; displayObject.__cacheBitmapData2 = cacheBitmap; displayObject.__cacheBitmap.__bitmapData = displayObject.__cacheBitmapData; displayObject.__cacheBitmapRenderer = null; } displayObject.__cacheBitmap.__imageVersion = displayObject.__cacheBitmapData.__textureVersion; } displayObject.__cacheBitmapColorTransform.__copyFrom(colorTransform); if(!displayObject.__cacheBitmapColorTransform.__isDefault(true)) { displayObject.__cacheBitmapColorTransform.alphaMultiplier = 1; displayObject.__cacheBitmapData.colorTransform(displayObject.__cacheBitmapData.rect,displayObject.__cacheBitmapColorTransform); } } displayObject.__isCacheBitmapRender = false; } if(updateTransform || needRender) { openfl_geom_Rectangle.__pool.release(rect); } updated = updateTransform; } else if(displayObject.__cacheBitmap != null) { if(renderer.__type == "dom") { var domRenderer = renderer; domRenderer.__renderDrawableClear(displayObject.__cacheBitmap); } displayObject.__cacheBitmap = null; displayObject.__cacheBitmapData = null; displayObject.__cacheBitmapData2 = null; displayObject.__cacheBitmapData3 = null; displayObject.__cacheBitmapColorTransform = null; displayObject.__cacheBitmapRenderer = null; updated = true; } openfl_geom_ColorTransform.__pool.release(colorTransform); if(updated && displayObject.__drawableType == 7) { var textField = displayObject; if(textField.__cacheBitmap != null) { textField.__cacheBitmap.__renderTransform.tx -= textField.__offsetX; textField.__cacheBitmap.__renderTransform.ty -= textField.__offsetY; } } return updated; } ,__class__: openfl_display_DisplayObjectRenderer }); var openfl_display_CairoRenderer = function(cairo) { openfl_display_DisplayObjectRenderer.call(this); }; $hxClasses["openfl.display.CairoRenderer"] = openfl_display_CairoRenderer; openfl_display_CairoRenderer.__name__ = "openfl.display.CairoRenderer"; openfl_display_CairoRenderer.__super__ = openfl_display_DisplayObjectRenderer; openfl_display_CairoRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{ cairo: null ,__matrix: null ,__matrix3: null ,applyMatrix: function(transform,cairo) { if(cairo == null) { cairo = this.cairo; } this.__matrix.copyFrom(transform); if(this.cairo == cairo && this.__worldTransform != null) { this.__matrix.concat(this.__worldTransform); } this.__matrix3.a = this.__matrix.a; this.__matrix3.b = this.__matrix.b; this.__matrix3.c = this.__matrix.c; this.__matrix3.d = this.__matrix.d; if(this.__roundPixels) { this.__matrix3.tx = Math.round(this.__matrix.tx); this.__matrix3.ty = Math.round(this.__matrix.ty); } else { this.__matrix3.tx = this.__matrix.tx; this.__matrix3.ty = this.__matrix.ty; } cairo.set_matrix(this.__matrix3); } ,__clear: function() { if(this.cairo == null) { return; } this.cairo.identityMatrix(); if(this.__stage != null && this.__stage.__clearBeforeRender) { var cacheBlendMode = this.__blendMode; this.__setBlendMode(10); this.cairo.setSourceRGB(this.__stage.__colorSplit[0],this.__stage.__colorSplit[1],this.__stage.__colorSplit[2]); this.cairo.paint(); this.__setBlendMode(cacheBlendMode); } } ,__popMask: function() { this.cairo.restore(); } ,__popMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(!object.__isCacheBitmapRender && object.__mask != null) { this.__popMask(); } if(handleScrollRect && object.__scrollRect != null) { this.__popMaskRect(); } } ,__popMaskRect: function() { this.cairo.restore(); } ,__pushMask: function(mask) { this.cairo.save(); this.applyMatrix(mask.__renderTransform,this.cairo); this.cairo.newPath(); this.__renderDrawableMask(mask); this.cairo.clip(); } ,__pushMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(handleScrollRect && object.__scrollRect != null) { this.__pushMaskRect(object.__scrollRect,object.__renderTransform); } if(!object.__isCacheBitmapRender && object.__mask != null) { this.__pushMask(object.__mask); } } ,__pushMaskRect: function(rect,transform) { this.cairo.save(); this.applyMatrix(transform,this.cairo); this.cairo.newPath(); this.cairo.rectangle(rect.x,rect.y,rect.width,rect.height); this.cairo.clip(); } ,__render: function(object) { if(this.cairo == null) { return; } this.__renderDrawable(object); } ,__renderDrawable: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: break; case 2: break; case 3: break; case 4:case 5: break; case 6: var simpleButton = object; if(!(!simpleButton.__renderable || simpleButton.__worldAlpha <= 0 || simpleButton.__currentState == null)) { this.__pushMaskObject(simpleButton); this.__renderDrawable(simpleButton.__currentState); this.__popMaskObject(simpleButton); this.__renderEvent(simpleButton); } break; case 7: break; case 8: break; case 9: break; default: } } ,__renderDrawableMask: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: break; case 2: var bitmap = object; this.cairo.rectangle(0,0,bitmap.get_width(),bitmap.get_height()); break; case 3: break; case 4:case 5: break; case 6: this.__renderDrawableMask(object.__currentState); break; case 7: break; case 8: break; case 9: break; default: } } ,__setBlendMode: function(value) { if(this.__overrideBlendMode != null) { value = this.__overrideBlendMode; } if(this.__blendMode == value) { return; } this.__blendMode = value; this.__setBlendModeCairo(this.cairo,value); } ,__setBlendModeCairo: function(cairo,value) { switch(value) { case 0: cairo.setOperator(12); break; case 2: cairo.setOperator(17); break; case 3: cairo.setOperator(23); break; case 5: cairo.setOperator(21); break; case 7: cairo.setOperator(2); break; case 8: cairo.setOperator(18); break; case 9: cairo.setOperator(14); break; case 11: cairo.setOperator(16); break; case 12: cairo.setOperator(15); break; default: cairo.setOperator(2); } } ,__class__: openfl_display_CairoRenderer }); var openfl_display_CanvasRenderer = function(context) { openfl_display_DisplayObjectRenderer.call(this); this.context = context; this.__tempMatrix = new openfl_geom_Matrix(); this.__type = "canvas"; }; $hxClasses["openfl.display.CanvasRenderer"] = openfl_display_CanvasRenderer; openfl_display_CanvasRenderer.__name__ = "openfl.display.CanvasRenderer"; openfl_display_CanvasRenderer.__super__ = openfl_display_DisplayObjectRenderer; openfl_display_CanvasRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{ context: null ,__isDOM: null ,__tempMatrix: null ,applySmoothing: function(context,value) { context.imageSmoothingEnabled = value; } ,setTransform: function(transform,context) { if(context == null) { context = this.context; } else if(this.context == context && this.__worldTransform != null) { this.__tempMatrix.copyFrom(transform); this.__tempMatrix.concat(this.__worldTransform); transform = this.__tempMatrix; } if(this.__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); } } ,__clear: function() { if(this.__stage != null) { var cacheBlendMode = this.__blendMode; this.__blendMode = null; this.__setBlendMode(10); this.context.setTransform(1,0,0,1,0,0); this.context.globalAlpha = 1; if(!this.__stage.__transparent && this.__stage.__clearBeforeRender) { this.context.fillStyle = this.__stage.__colorString; this.context.fillRect(0,0,this.__stage.stageWidth * this.__stage.window.__scale,this.__stage.stageHeight * this.__stage.window.__scale); } else if(this.__stage.__transparent && this.__stage.__clearBeforeRender) { this.context.clearRect(0,0,this.__stage.stageWidth * this.__stage.window.__scale,this.__stage.stageHeight * this.__stage.window.__scale); } this.__setBlendMode(cacheBlendMode); } } ,__popMask: function() { this.context.restore(); } ,__popMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(!object.__isCacheBitmapRender && object.__mask != null) { this.__popMask(); } if(handleScrollRect && object.__scrollRect != null) { this.__popMaskRect(); } } ,__popMaskRect: function() { this.context.restore(); } ,__pushMask: function(mask) { this.context.save(); this.setTransform(mask.__renderTransform,this.context); this.context.beginPath(); this.__renderDrawableMask(mask); this.context.closePath(); this.context.clip(); } ,__pushMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(handleScrollRect && object.__scrollRect != null) { this.__pushMaskRect(object.__scrollRect,object.__renderTransform); } if(!object.__isCacheBitmapRender && object.__mask != null) { this.__pushMask(object.__mask); } } ,__pushMaskRect: function(rect,transform) { this.context.save(); this.setTransform(transform,this.context); this.context.beginPath(); this.context.rect(rect.x,rect.y,rect.width,rect.height); this.context.clip(); } ,__render: function(object) { this.__renderDrawable(object); } ,__renderDrawable: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: openfl_display__$internal_CanvasBitmapData.renderDrawable(object,this); break; case 2: openfl_display__$internal_CanvasBitmap.renderDrawable(object,this); break; case 3: openfl_display__$internal_CanvasDisplayObject.renderDrawable(object,this); break; case 4:case 5: openfl_display__$internal_CanvasDisplayObjectContainer.renderDrawable(object,this); break; case 6: openfl_display__$internal_CanvasSimpleButton.renderDrawable(object,this); break; case 7: openfl_display__$internal_CanvasTextField.renderDrawable(object,this); break; case 8: openfl_display__$internal_CanvasVideo.renderDrawable(object,this); break; case 9: openfl_display__$internal_CanvasTilemap.renderDrawable(object,this); break; default: } } ,__renderDrawableMask: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: openfl_display__$internal_CanvasBitmapData.renderDrawableMask(object,this); break; case 2: openfl_display__$internal_CanvasBitmap.renderDrawableMask(object,this); break; case 3: openfl_display__$internal_CanvasDisplayObject.renderDrawableMask(object,this); break; case 4:case 5: openfl_display__$internal_CanvasDisplayObjectContainer.renderDrawableMask(object,this); break; case 6: openfl_display__$internal_CanvasSimpleButton.renderDrawableMask(object,this); break; case 7: openfl_display__$internal_CanvasTextField.renderDrawableMask(object,this); break; case 8: openfl_display__$internal_CanvasVideo.renderDrawableMask(object,this); break; case 9: openfl_display__$internal_CanvasTilemap.renderDrawableMask(object,this); break; default: } } ,__setBlendMode: function(value) { if(this.__overrideBlendMode != null) { value = this.__overrideBlendMode; } if(this.__blendMode == value) { return; } this.__blendMode = value; this.__setBlendModeContext(this.context,value); } ,__setBlendModeContext: function(context,value) { switch(value) { case 0: context.globalCompositeOperation = "lighter"; break; case 2: context.globalCompositeOperation = "darken"; break; case 3: context.globalCompositeOperation = "difference"; break; case 5: context.globalCompositeOperation = "hard-light"; break; case 8: context.globalCompositeOperation = "lighten"; break; case 9: context.globalCompositeOperation = "multiply"; break; case 11: context.globalCompositeOperation = "overlay"; break; case 12: context.globalCompositeOperation = "screen"; break; default: context.globalCompositeOperation = "source-over"; } } ,__class__: openfl_display_CanvasRenderer }); var openfl_display_CapsStyle = {}; openfl_display_CapsStyle.fromInt = function(value) { return value; }; openfl_display_CapsStyle.fromString = function(value) { switch(value) { case "none": return 0; case "round": return 1; case "square": return 2; default: return null; } }; openfl_display_CapsStyle.toInt = function(this1) { return this1; }; openfl_display_CapsStyle.toString = function(this1) { switch(this1) { case 0: return "none"; case 1: return "round"; case 2: return "square"; default: return null; } }; var openfl_display_DOMElement = function(element) { openfl_display_DisplayObject.call(this); this.__drawableType = 10; this.__element = element; }; $hxClasses["openfl.display.DOMElement"] = openfl_display_DOMElement; openfl_display_DOMElement.__name__ = "openfl.display.DOMElement"; openfl_display_DOMElement.__super__ = openfl_display_DisplayObject; openfl_display_DOMElement.prototype = $extend(openfl_display_DisplayObject.prototype,{ __active: null ,__element: null ,__class__: openfl_display_DOMElement }); var openfl_display_DOMRenderer = function(element) { openfl_display_DisplayObjectRenderer.call(this); this.element = element; openfl_display_DisplayObject.__supportDOM = 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.__vendorPrefix = prefix.lowercase; this.__transformProperty = prefix.lowercase == "webkit" ? "-webkit-transform" : "transform"; this.__transformOriginProperty = prefix.lowercase == "webkit" ? "-webkit-transform-origin" : "transform-origin"; this.__clipRects = []; this.__numClipRects = 0; this.__z = 0; this.__type = "dom"; this.__canvasRenderer = new openfl_display_CanvasRenderer(null); this.__canvasRenderer.__isDOM = true; }; $hxClasses["openfl.display.DOMRenderer"] = openfl_display_DOMRenderer; openfl_display_DOMRenderer.__name__ = "openfl.display.DOMRenderer"; openfl_display_DOMRenderer.__super__ = openfl_display_DisplayObjectRenderer; openfl_display_DOMRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{ element: null ,__canvasRenderer: null ,__clipRects: null ,__currentClipRect: null ,__numClipRects: null ,__transformOriginProperty: null ,__transformProperty: null ,__vendorPrefix: null ,__z: null ,applyStyle: function(parent,childElement) { if(parent != null && childElement != null) { if(parent.__style == null || childElement.parentElement != this.element) { this.__initializeElement(parent,childElement); } parent.__style = childElement.style; this.__updateClip(parent); this.__applyStyle(parent,true,true,true); } } ,clearStyle: function(childElement) { if(childElement != null && childElement.parentElement == this.element) { this.element.removeChild(childElement); } } ,__applyStyle: function(displayObject,setTransform,setAlpha,setClip) { var style = displayObject.__style; if(setTransform && displayObject.__renderTransformChanged) { var _this = displayObject.__renderTransform; var roundPixels = this.__roundPixels; if(roundPixels == null) { roundPixels = false; } style.setProperty(this.__transformProperty,roundPixels ? "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)" : "matrix3d(" + _this.a + ", " + _this.b + ", 0, 0, " + _this.c + ", " + _this.d + ", 0, 0, 0, 0, 1, 0, " + _this.tx + ", " + _this.ty + ", 0, 1)",null); } if(displayObject.__worldZ != ++this.__z) { displayObject.__worldZ = this.__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 = displayObject.__worldClip; style.setProperty("clip","rect(" + clip.y + "px, " + clip.get_right() + "px, " + clip.get_bottom() + "px, " + clip.x + "px)",null); } } } ,__initializeElement: function(displayObject,element) { var style = displayObject.__style = element.style; style.setProperty("position","absolute",null); style.setProperty("top","0",null); style.setProperty("left","0",null); style.setProperty(this.__transformOriginProperty,"0 0 0",null); this.element.appendChild(element); displayObject.__worldAlphaChanged = true; displayObject.__renderTransformChanged = true; displayObject.__worldVisibleChanged = true; displayObject.__worldClipChanged = true; displayObject.__worldClip = null; displayObject.__worldZ = -1; } ,__popMask: function() { this.__popMaskRect(); } ,__popMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(object.__mask != null) { this.__popMask(); } if(handleScrollRect && object.__scrollRect != null) { this.__popMaskRect(); } } ,__popMaskRect: function() { if(this.__numClipRects > 0) { this.__numClipRects--; if(this.__numClipRects > 0) { this.__currentClipRect = this.__clipRects[this.__numClipRects - 1]; } else { this.__currentClipRect = null; } } } ,__pushMask: function(mask) { this.__pushMaskRect(mask.getBounds(mask),mask.__renderTransform); } ,__pushMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(handleScrollRect && object.__scrollRect != null) { this.__pushMaskRect(object.__scrollRect,object.__renderTransform); } if(object.__mask != null) { this.__pushMask(object.__mask); } } ,__pushMaskRect: function(rect,transform) { if(this.__numClipRects == this.__clipRects.length) { this.__clipRects[this.__numClipRects] = new openfl_geom_Rectangle(); } var clipRect = this.__clipRects[this.__numClipRects]; rect.__transform(clipRect,transform); if(this.__numClipRects > 0) { var parentClipRect = this.__clipRects[this.__numClipRects - 1]; clipRect.__contract(parentClipRect.x,parentClipRect.y,parentClipRect.width,parentClipRect.height); } if(clipRect.height < 0) { clipRect.height = 0; } if(clipRect.width < 0) { clipRect.width = 0; } this.__currentClipRect = clipRect; this.__numClipRects++; } ,__render: function(object) { if(!this.__stage.__transparent) { this.element.style.background = this.__stage.__colorString; } else { this.element.style.background = "none"; } this.__z = 1; this.__renderDrawable(object); } ,__renderDrawable: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: break; case 2: openfl_display__$internal_DOMBitmap.renderDrawable(object,this); break; case 3: openfl_display__$internal_DOMDisplayObject.renderDrawable(object,this); break; case 4:case 5: openfl_display__$internal_DOMDisplayObjectContainer.renderDrawable(object,this); break; case 6: openfl_display__$internal_DOMSimpleButton.renderDrawable(object,this); break; case 7: openfl_display__$internal_DOMTextField.renderDrawable(object,this); break; case 8: openfl_display__$internal_DOMVideo.renderDrawable(object,this); break; case 9: openfl_display__$internal_DOMTilemap.renderDrawable(object,this); break; case 10: var domElement = object; if(domElement.stage != null && domElement.__worldVisible && domElement.__renderable) { if(!domElement.__active) { this.__initializeElement(domElement,domElement.__element); domElement.__active = true; } this.__updateClip(domElement); this.__applyStyle(domElement,true,true,true); } else if(domElement.__active) { this.element.removeChild(domElement.__element); domElement.__active = false; } openfl_display__$internal_DOMDisplayObject.renderDrawable(domElement,this); break; default: } } ,__renderDrawableClear: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: break; case 2: openfl_display__$internal_DOMBitmap.renderDrawableClear(object,this); break; case 3: openfl_display__$internal_DOMDisplayObject.renderDrawableClear(object,this); break; case 4:case 5: openfl_display__$internal_DOMDisplayObjectContainer.renderDrawableClear(object,this); break; case 6: openfl_display__$internal_DOMSimpleButton.renderDrawableClear(object,this); break; case 7: openfl_display__$internal_DOMTextField.renderDrawableClear(object,this); break; case 8: openfl_display__$internal_DOMVideo.renderDrawableClear(object,this); break; case 9: openfl_display__$internal_DOMTilemap.renderDrawableClear(object,this); break; default: } } ,__setBlendMode: function(value) { if(this.__overrideBlendMode != null) { value = this.__overrideBlendMode; } if(this.__blendMode == value) { return; } this.__blendMode = value; } ,__updateClip: function(displayObject) { if(this.__currentClipRect == null) { displayObject.__worldClipChanged = displayObject.__worldClip != null; displayObject.__worldClip = null; } else { if(displayObject.__worldClip == null) { displayObject.__worldClip = new openfl_geom_Rectangle(); } var clip = openfl_geom_Rectangle.__pool.get(); var matrix = openfl_geom_Matrix.__pool.get(); matrix.copyFrom(displayObject.__renderTransform); matrix.invert(); this.__currentClipRect.__transform(clip,matrix); if(clip.equals(displayObject.__worldClip)) { displayObject.__worldClipChanged = false; } else { displayObject.__worldClip.copyFrom(clip); displayObject.__worldClipChanged = true; } openfl_geom_Rectangle.__pool.release(clip); openfl_geom_Matrix.__pool.release(matrix); } } ,__class__: openfl_display_DOMRenderer }); var openfl_display_DisplayObjectShader = function(code) { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "vec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"; } this.__isGenerated = true; openfl_display_Shader.call(this,code); this.__initGL(); }; $hxClasses["openfl.display.DisplayObjectShader"] = openfl_display_DisplayObjectShader; openfl_display_DisplayObjectShader.__name__ = "openfl.display.DisplayObjectShader"; openfl_display_DisplayObjectShader.__super__ = openfl_display_Shader; openfl_display_DisplayObjectShader.prototype = $extend(openfl_display_Shader.prototype,{ openfl_Alpha: null ,openfl_ColorMultiplier: null ,openfl_ColorOffset: null ,openfl_Position: null ,openfl_TextureCoord: null ,openfl_Matrix: null ,openfl_HasColorTransform: null ,openfl_TextureSize: null ,openfl_Texture: null ,__class__: openfl_display_DisplayObjectShader }); 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.currentTime = 0; this.times = []; }; $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 ,currentTime: null ,times: null ,__enterFrame: function(deltaTime) { this.currentTime += deltaTime; this.times.push(this.currentTime); while(this.times[0] < this.currentTime - 1000) 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 ,__class__: openfl_display_FrameLabel }); var openfl_display_FrameScript = function(script,frame) { this.script = script; this.frame = frame; }; $hxClasses["openfl.display.FrameScript"] = openfl_display_FrameScript; openfl_display_FrameScript.__name__ = "openfl.display.FrameScript"; openfl_display_FrameScript.prototype = { frame: null ,script: null ,__class__: openfl_display_FrameScript }; var openfl_display_GradientType = {}; openfl_display_GradientType.fromInt = function(value) { return value; }; openfl_display_GradientType.fromString = function(value) { switch(value) { case "linear": return 0; case "radial": return 1; default: return null; } }; openfl_display_GradientType.toInt = function(this1) { return this1; }; openfl_display_GradientType.toString = function(this1) { switch(this1) { case 0: return "linear"; case 1: return "radial"; default: return null; } }; var openfl_display_Graphics = function(owner) { this.__dirty = true; this.__owner = owner; this.__commands = new openfl_display__$internal_DrawCommandBuffer(); this.__strokePadding = 0; this.__positionX = 0; this.__positionY = 0; this.__renderTransform = new openfl_geom_Matrix(); this.__usedShaderBuffers = new haxe_ds_List(); this.__worldTransform = new openfl_geom_Matrix(); this.__width = 0; this.__height = 0; this.__bitmapScale = 1; this.__shaderBufferPool = new lime_utils_ObjectPool(function() { return new openfl_display__$internal_ShaderBuffer(); }); this.moveTo(0,0); }; $hxClasses["openfl.display.Graphics"] = openfl_display_Graphics; openfl_display_Graphics.__name__ = "openfl.display.Graphics"; openfl_display_Graphics.prototype = { __bounds: null ,__commands: null ,__dirty: null ,__hardwareDirty: null ,__height: null ,__managed: null ,__positionX: null ,__positionY: null ,__quadBuffer: null ,__renderTransform: null ,__shaderBufferPool: null ,__softwareDirty: null ,__strokePadding: null ,__transformDirty: null ,__triangleIndexBuffer: null ,__triangleIndexBufferCount: null ,__triangleIndexBufferData: null ,__usedShaderBuffers: null ,__vertexBuffer: null ,__vertexBufferCount: null ,__vertexBufferCountUVT: null ,__vertexBufferData: null ,__vertexBufferDataUVT: null ,__vertexBufferUVT: null ,__visible: null ,__owner: null ,__width: null ,__worldTransform: null ,__canvas: null ,__context: null ,__bitmap: null ,__bitmapScale: 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; } if(colors == null || colors.length == 0) { return; } if(alphas == null) { alphas = []; var _g = 0; var _g1 = colors.length; while(_g < _g1) { var i = _g++; alphas.push(1); } } if(ratios == null) { ratios = []; var _g = 0; var _g1 = colors.length; while(_g < _g1) { var i = _g++; ratios.push(Math.ceil(i / colors.length * 255)); } } if(alphas.length < colors.length || ratios.length < colors.length) { return; } this.__commands.beginGradientFill(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio); var _g = 0; while(_g < alphas.length) { var alpha = alphas[_g]; ++_g; if(alpha > 0) { this.__visible = true; break; } } } ,beginShaderFill: function(shader,matrix) { if(shader != null) { var shaderBuffer = this.__shaderBufferPool.get(); this.__usedShaderBuffers.add(shaderBuffer); shaderBuffer.update(shader); this.__commands.beginShaderFill(shaderBuffer); } } ,clear: function() { var _g_head = this.__usedShaderBuffers.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var shaderBuffer = val; this.__shaderBufferPool.release(shaderBuffer); } this.__usedShaderBuffers.clear(); this.__commands.clear(); this.__strokePadding = 0; if(this.__bounds != null) { this.set___dirty(true); this.__transformDirty = true; this.__bounds = null; } this.__visible = false; this.__positionX = 0; this.__positionY = 0; this.moveTo(0,0); } ,copyFrom: function(sourceGraphics) { this.__bounds = sourceGraphics.__bounds != null ? sourceGraphics.__bounds.clone() : 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) { var xs = this.__findExtrema(this.__positionX,controlX1,controlX2,anchorX); var ys = this.__findExtrema(this.__positionY,controlY1,controlY2,anchorY); this.__inflateBounds(xs.min - this.__strokePadding,ys.min - this.__strokePadding); this.__inflateBounds(xs.max + this.__strokePadding,ys.max + this.__strokePadding); this.__positionX = anchorX; this.__positionY = anchorY; this.__commands.cubicCurveTo(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY); 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.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding); this.__commands.curveTo(controlX,controlY,anchorX,anchorY); 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.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.set___dirty(true); } ,drawGraphicsData: function(graphicsData) { var fill; var bitmapFill; var gradientFill; var shaderFill; var stroke; var path; var trianglePath; var quadPath; var graphics = graphicsData.iterator(); while(graphics.hasNext()) { var graphics1 = graphics.next(); switch(graphics1.__graphicsDataType) { case 0: stroke = graphics1; if(stroke.fill != null) { var thickness = stroke.thickness; if(isNaN(thickness)) { thickness = null; } switch(stroke.fill.__graphicsFillType) { case 0: fill = stroke.fill; this.lineStyle(thickness,fill.color,fill.alpha,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit); break; case 1: gradientFill = stroke.fill; this.lineStyle(thickness,0,1,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit); this.lineGradientStyle(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio); break; case 2: bitmapFill = stroke.fill; this.lineStyle(thickness,0,1,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit); this.lineBitmapStyle(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth); break; default: } } else { this.lineStyle(); } break; case 1: fill = graphics1; this.beginFill(fill.color,fill.alpha); break; case 2: gradientFill = graphics1; this.beginGradientFill(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio); break; case 3: path = graphics1; this.drawPath(path.commands,path.data,path.winding); break; case 4: bitmapFill = graphics1; this.beginBitmapFill(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth); break; case 5: this.endFill(); break; case 6: quadPath = graphics1; this.drawQuads(quadPath.rects,quadPath.indices,quadPath.transforms); break; case 7: trianglePath = graphics1; this.drawTriangles(trianglePath.vertices,trianglePath.indices,trianglePath.uvtData,trianglePath.culling); break; case 8: shaderFill = graphics1; this.beginShaderFill(shaderFill.shader,shaderFill.matrix); break; } } } ,drawPath: function(commands,data,winding) { if(winding == null) { winding = 0; } var dataIndex = 0; if(winding == 1) { this.__commands.windingNonZero(); } var command = commands.iterator(); _hx_loop1: while(command.hasNext()) { var command1 = command.next(); switch(command1) { case 1: this.moveTo(data.get(dataIndex),data.get(dataIndex + 1)); dataIndex += 2; break; case 2: this.lineTo(data.get(dataIndex),data.get(dataIndex + 1)); dataIndex += 2; break; case 3: this.curveTo(data.get(dataIndex),data.get(dataIndex + 1),data.get(dataIndex + 2),data.get(dataIndex + 3)); dataIndex += 4; break; case 4: this.moveTo(data.get(dataIndex + 2),data.get(dataIndex + 3)); break _hx_loop1; case 5: this.lineTo(data.get(dataIndex + 2),data.get(dataIndex + 3)); break _hx_loop1; case 6: this.cubicCurveTo(data.get(dataIndex),data.get(dataIndex + 1),data.get(dataIndex + 2),data.get(dataIndex + 3),data.get(dataIndex + 4),data.get(dataIndex + 5)); dataIndex += 6; break; default: } } } ,drawQuads: function(rects,indices,transforms) { if(rects == null) { return; } var hasIndices = indices != null; var transformABCD = false; var transformXY = false; var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4); if(length == 0) { return; } if(transforms != null) { if(transforms.get_length() >= length * 6) { transformABCD = true; transformXY = true; } else if(transforms.get_length() >= length * 4) { transformABCD = true; } else if(transforms.get_length() >= length * 2) { transformXY = true; } } var tileRect = openfl_geom_Rectangle.__pool.get(); var tileTransform = openfl_geom_Matrix.__pool.get(); var minX = Infinity; var minY = Infinity; var maxX = -Infinity; var maxY = -Infinity; var ri; var ti; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; ri = hasIndices ? indices.get(i) * 4 : i * 4; if(ri < 0) { continue; } tileRect.setTo(0,0,rects.get(ri + 2),rects.get(ri + 3)); if(tileRect.width <= 0 || tileRect.height <= 0) { continue; } if(transformABCD && transformXY) { ti = i * 6; tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),transforms.get(ti + 4),transforms.get(ti + 5)); } else if(transformABCD) { ti = i * 4; tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),tileRect.x,tileRect.y); } else if(transformXY) { ti = i * 2; tileTransform.tx = transforms.get(ti); tileTransform.ty = transforms.get(ti + 1); } else { tileTransform.tx = tileRect.x; tileTransform.ty = tileRect.y; } tileRect.__transform(tileRect,tileTransform); if(minX > tileRect.x) { minX = tileRect.x; } if(minY > tileRect.y) { minY = tileRect.y; } if(maxX < tileRect.get_right()) { maxX = tileRect.get_right(); } if(maxY < tileRect.get_bottom()) { maxY = tileRect.get_bottom(); } } this.__inflateBounds(minX,minY); this.__inflateBounds(maxX,maxY); this.__commands.drawQuads(rects,indices,transforms); this.set___dirty(true); this.__visible = true; openfl_geom_Rectangle.__pool.release(tileRect); openfl_geom_Matrix.__pool.release(tileTransform); } ,drawRect: function(x,y,width,height) { if(width == 0 && height == 0) { return; } var xSign = width < 0 ? -1 : 1; var ySign = height < 0 ? -1 : 1; this.__inflateBounds(x - this.__strokePadding * xSign,y - this.__strokePadding * ySign); this.__inflateBounds(x + width + this.__strokePadding * xSign,y + height + this.__strokePadding * ySign); 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; } var xSign = width < 0 ? -1 : 1; var ySign = height < 0 ? -1 : 1; this.__inflateBounds(x - this.__strokePadding * xSign,y - this.__strokePadding * ySign); this.__inflateBounds(x + width + this.__strokePadding * xSign,y + height + this.__strokePadding * ySign); this.__commands.drawRoundRect(x,y,width,height,ellipseWidth,ellipseHeight); this.set___dirty(true); } ,drawRoundRectComplex: function(x,y,width,height,topLeftRadius,topRightRadius,bottomLeftRadius,bottomRightRadius) { if(width <= 0 || height <= 0) { return; } this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding); this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding); var xw = x + width; var yh = y + height; var minSize = width < height ? width * 2 : height * 2; if(!(topLeftRadius < minSize)) { topLeftRadius = minSize; } if(!(topRightRadius < minSize)) { topRightRadius = minSize; } if(!(bottomLeftRadius < minSize)) { bottomLeftRadius = minSize; } if(!(bottomRightRadius < minSize)) { bottomRightRadius = minSize; } var anchor = 1 - Math.sin(45 * (Math.PI / 180)); var control = 1 - Math.tan(22.5 * (Math.PI / 180)); var a = bottomRightRadius * anchor; var s = bottomRightRadius * control; this.moveTo(xw,yh - bottomRightRadius); this.curveTo(xw,yh - s,xw - a,yh - a); this.curveTo(xw - s,yh,xw - bottomRightRadius,yh); a = bottomLeftRadius * anchor; s = bottomLeftRadius * control; this.lineTo(x + bottomLeftRadius,yh); this.curveTo(x + s,yh,x + a,yh - a); this.curveTo(x,yh - s,x,yh - bottomLeftRadius); a = topLeftRadius * anchor; s = topLeftRadius * control; this.lineTo(x,y + topLeftRadius); this.curveTo(x,y + s,x + a,y + a); this.curveTo(x + s,y,x + topLeftRadius,y); a = topRightRadius * anchor; s = topRightRadius * control; this.lineTo(xw - topRightRadius,y); this.curveTo(xw - s,y,xw - a,y + a); this.curveTo(xw,y + s,xw,y + topRightRadius); this.lineTo(xw,yh - bottomRightRadius); this.set___dirty(true); } ,drawTriangles: function(vertices,indices,uvtData,culling) { if(culling == null) { culling = 1; } if(vertices == null || vertices.get_length() == 0) { return; } var vertLength = vertices.get_length() / 2 | 0; if(indices == null) { if(vertLength % 3 != 0) { throw new openfl_errors_ArgumentError("Not enough vertices to close a triangle."); } indices = openfl_Vector.toIntVector(null); var _g = 0; var _g1 = vertLength; while(_g < _g1) { var i = _g++; indices.push(i); } } if(culling == null) { culling = 1; } var x; var y; var minX = Infinity; var minY = Infinity; var maxX = -Infinity; var maxY = -Infinity; var _g = 0; var _g1 = vertLength; while(_g < _g1) { var i = _g++; x = vertices.get(i * 2); y = vertices.get(i * 2 + 1); if(minX > x) { minX = x; } if(minY > y) { minY = y; } if(maxX < x) { maxX = x; } if(maxY < y) { maxY = y; } } this.__inflateBounds(minX,minY); 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 = Math.ceil(thickness); } } else if(thickness / 2 > this.__strokePadding) { this.__strokePadding = Math.ceil(thickness / 2); } } this.__commands.lineStyle(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit); if(thickness != null) { this.__visible = true; } } ,lineTo: function(x,y) { if(!isFinite(x) || !isFinite(y)) { return; } 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.set___dirty(true); } ,moveTo: function(x,y) { this.__positionX = x; this.__positionY = y; this.__commands.moveTo(x,y); } ,overrideBlendMode: function(blendMode) { if(blendMode == null) { blendMode = 10; } this.__commands.overrideBlendMode(blendMode); } ,readGraphicsData: function(recurse) { if(recurse == null) { recurse = true; } var graphicsData = openfl_Vector.toObjectVector(null); this.__owner.__readGraphicsData(graphicsData,recurse); return graphicsData; } ,__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; } ,__cleanup: function() { if(this.__bounds != null && this.__canvas != null) { this.set___dirty(true); this.__transformDirty = true; } this.__bitmap = null; this.__canvas = null; this.__context = null; } ,__getBounds: function(rect,matrix) { if(this.__bounds == null) { return; } var bounds = openfl_geom_Rectangle.__pool.get(); this.__bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); openfl_geom_Rectangle.__pool.release(bounds); } ,__hitTest: function(x,y,shapeFlag,matrix) { if(this.__bounds == null) { return false; } var norm = matrix.a * matrix.d - matrix.b * matrix.c; var px = norm == 0 ? -matrix.tx : 1.0 / norm * (matrix.c * (matrix.ty - y) + matrix.d * (x - matrix.tx)); var norm = matrix.a * matrix.d - matrix.b * matrix.c; var py = norm == 0 ? -matrix.ty : 1.0 / norm * (matrix.a * (y - matrix.ty) + matrix.b * (matrix.tx - x)); if(px > this.__bounds.x && py > this.__bounds.y && this.__bounds.contains(px,py)) { if(shapeFlag) { return openfl_display__$internal_CanvasGraphics.hitTest(this,px,py); } return true; } return false; } ,__findExtrema: function(p1,p2,p3,p4) { var solutions = []; if(!((p2 < p4 && p2 > p1 || p2 > p4 && p2 < p1) && (p3 < p4 && p3 > p1 || p3 > p4 && p3 < p1))) { var a = -p1 + 3 * p2 + p4 - 3 * p3; var b = 2 * p1 - 4 * p2 + 2 * p3; var c = p2 - p1; var d = b * b - 4 * a * c; if(a == 0) { var t = -c / b; if(t > 0 && t < 1) { solutions.push(this.__calculateBezierCubicPoint(t,p1,p2,p3,p4)); } } else if(d >= 0) { var t1 = (-b + Math.sqrt(d)) / (2 * a); var t2 = (-b - Math.sqrt(d)) / (2 * a); if(t1 > 0 && t1 < 1) { solutions.push(this.__calculateBezierCubicPoint(t1,p1,p2,p3,p4)); } if(t2 > 0 && t2 < 1) { solutions.push(this.__calculateBezierCubicPoint(t2,p1,p2,p3,p4)); } } } var min = p1; var max = p1; solutions.push(p4); var _g = 0; while(_g < solutions.length) { var val = solutions[_g]; ++_g; if(val < min) { min = val; } if(val > max) { max = val; } } return { min : min, max : max}; } ,__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; } } ,__readGraphicsData: function(graphicsData) { var data = new openfl_display__$internal_DrawCommandReader(this.__commands); var path = null; var stroke; var _g = 0; var _g1 = this.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 4:case 5:case 6:case 7:case 9:case 10:case 17:case 18: if(path == null) { path = new openfl_display_GraphicsPath(); } break; default: if(path != null) { graphicsData.push(path); path = null; } } switch(type._hx_index) { case 0: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; graphicsData.push(new openfl_display_GraphicsBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1])); break; case 1: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; var c1 = data; graphicsData.push(new openfl_display_GraphicsSolidFill(c1.buffer.i[c1.iPos],1)); break; case 2: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL; var c2 = data; graphicsData.push(new openfl_display_GraphicsGradientFill(c2.buffer.o[c2.oPos],c2.buffer.ii[c2.iiPos],c2.buffer.ff[c2.ffPos],c2.buffer.ii[c2.iiPos + 1],c2.buffer.o[c2.oPos + 1],c2.buffer.o[c2.oPos + 2],c2.buffer.o[c2.oPos + 3],c2.buffer.f[c2.fPos])); break; case 3: break; case 4: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; var c3 = data; path.cubicCurveTo(c3.buffer.f[c3.fPos],c3.buffer.f[c3.fPos + 1],c3.buffer.f[c3.fPos + 2],c3.buffer.f[c3.fPos + 3],c3.buffer.f[c3.fPos + 4],c3.buffer.f[c3.fPos + 5]); break; case 5: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; var c4 = data; path.curveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3]); break; case 6: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; var c5 = data; path.__drawCircle(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2]); break; case 7: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; var c6 = data; path.__drawEllipse(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2],c6.buffer.f[c6.fPos + 3]); break; case 9: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c7 = data; path.__drawRect(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]); break; case 10: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; var c8 = data; path.__drawRoundRect(c8.buffer.f[c8.fPos],c8.buffer.f[c8.fPos + 1],c8.buffer.f[c8.fPos + 2],c8.buffer.f[c8.fPos + 3],c8.buffer.f[c8.fPos + 4],c8.buffer.o[c8.oPos] != null ? c8.buffer.o[c8.oPos] : c8.buffer.f[c8.fPos + 4]); break; case 13: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.END_FILL; var this1 = data; graphicsData.push(new openfl_display_GraphicsEndFill()); break; case 14: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE; var c9 = data; path = null; break; case 15: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE; var c10 = data; break; case 16: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE; var c11 = data; stroke = new openfl_display_GraphicsStroke(c11.buffer.o[c11.oPos],c11.buffer.b[c11.bPos],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3],c11.buffer.f[c11.fPos + 1]); stroke.fill = new openfl_display_GraphicsSolidFill(c11.buffer.i[c11.iPos],c11.buffer.f[c11.fPos]); graphicsData.push(stroke); break; case 17: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_TO; var c12 = data; path.lineTo(c12.buffer.f[c12.fPos],c12.buffer.f[c12.fPos + 1]); break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c13 = data; path.moveTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]); break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } if(path != null) { graphicsData.push(path); } } ,__update: function(displayMatrix,pixelRatio) { if(this.__bounds == null || this.__bounds.width <= 0 || this.__bounds.height <= 0) { return; } var parentTransform = this.__owner.__renderTransform; if(parentTransform == null) { return; } var scaleX = pixelRatio; var scaleY = pixelRatio; if(this.__owner.__worldScale9Grid == null) { if(parentTransform.b == 0) { scaleX = Math.abs(parentTransform.a); } else { scaleX = Math.sqrt(parentTransform.a * parentTransform.a + parentTransform.b * parentTransform.b); } if(parentTransform.c == 0) { scaleY = Math.abs(parentTransform.d); } else { scaleY = Math.sqrt(parentTransform.c * parentTransform.c + parentTransform.d * parentTransform.d); } if(displayMatrix != null) { if(displayMatrix.b == 0) { scaleX *= displayMatrix.a; } else { scaleX *= Math.sqrt(displayMatrix.a * displayMatrix.a + displayMatrix.b * displayMatrix.b); } if(displayMatrix.c == 0) { scaleY *= displayMatrix.d; } else { scaleY *= Math.sqrt(displayMatrix.c * displayMatrix.c + displayMatrix.d * displayMatrix.d); } } } var width = this.__bounds.width * scaleX; var height = this.__bounds.height * scaleY; if(width < 1 || height < 1) { if(this.__width >= 1 || this.__height >= 1) { this.set___dirty(true); } this.__width = 0; this.__height = 0; return; } if(openfl_display_Graphics.maxTextureWidth != null && width > openfl_display_Graphics.maxTextureWidth) { width = openfl_display_Graphics.maxTextureWidth; scaleX = openfl_display_Graphics.maxTextureWidth / this.__bounds.width; } if(openfl_display_Graphics.maxTextureWidth != null && height > openfl_display_Graphics.maxTextureHeight) { height = openfl_display_Graphics.maxTextureHeight; scaleY = openfl_display_Graphics.maxTextureHeight / this.__bounds.height; } var inverseA; var inverseD; if(this.__owner.__worldScale9Grid != null) { this.__renderTransform.a = pixelRatio; this.__renderTransform.d = pixelRatio; inverseA = 1 / pixelRatio; inverseD = 1 / pixelRatio; } else { this.__renderTransform.a = width / this.__bounds.width; this.__renderTransform.d = height / this.__bounds.height; inverseA = 1 / this.__renderTransform.a; inverseD = 1 / this.__renderTransform.d; } this.__worldTransform.a = inverseA * parentTransform.a; this.__worldTransform.b = inverseA * parentTransform.b; this.__worldTransform.c = inverseD * parentTransform.c; this.__worldTransform.d = inverseD * parentTransform.d; var x = this.__bounds.x; var y = this.__bounds.y; var tx = x * parentTransform.a + y * parentTransform.c + parentTransform.tx; var ty = x * parentTransform.b + y * parentTransform.d + parentTransform.ty; this.__worldTransform.tx = Math.round(tx); this.__worldTransform.ty = Math.round(ty); var _this = this.__worldTransform; var norm = _this.a * _this.d - _this.b * _this.c; this.__renderTransform.tx = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - ty) + _this.d * (tx - _this.tx)); var _this = this.__worldTransform; var norm = _this.a * _this.d - _this.b * _this.c; this.__renderTransform.ty = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (ty - _this.ty) + _this.b * (_this.tx - tx)); var newWidth = Math.ceil(width + 1.0); var newHeight = Math.ceil(height + 1.0); if(newWidth != this.__width || newHeight != this.__height) { this.set___dirty(true); } this.__width = newWidth; this.__height = newHeight; } ,set___dirty: function(value) { if(value && this.__owner != null) { var _this = this.__owner; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } } if(value) { this.__softwareDirty = true; this.__hardwareDirty = true; } 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.__isInterface__ = true; 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.__isInterface__ = true; 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 = 4; this.__graphicsFillType = 2; }; $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 = 5; this.__graphicsFillType = 3; }; $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 = 2; this.__graphicsFillType = 1; }; $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"; openfl_display_IGraphicsPath.__isInterface__ = true; var openfl_display_GraphicsPath = function(commands,data,winding) { if(winding == null) { winding = 0; } this.commands = commands; this.data = data; this.winding = winding; this.__graphicsDataType = 3; }; $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 ,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { if(this.commands == null) { this.commands = openfl_Vector.toIntVector(null); } if(this.data == null) { this.data = openfl_Vector.toFloatVector(null); } this.commands.push(6); this.data.push(controlX1); this.data.push(controlY1); this.data.push(controlX2); this.data.push(controlY2); this.data.push(anchorX); this.data.push(anchorY); } ,curveTo: function(controlX,controlY,anchorX,anchorY) { if(this.commands == null) { this.commands = openfl_Vector.toIntVector(null); } if(this.data == null) { this.data = openfl_Vector.toFloatVector(null); } this.commands.push(3); this.data.push(controlX); this.data.push(controlY); this.data.push(anchorX); this.data.push(anchorY); } ,lineTo: function(x,y) { if(this.commands == null) { this.commands = openfl_Vector.toIntVector(null); } if(this.data == null) { this.data = openfl_Vector.toFloatVector(null); } this.commands.push(2); this.data.push(x); this.data.push(y); } ,moveTo: function(x,y) { if(this.commands == null) { this.commands = openfl_Vector.toIntVector(null); } if(this.data == null) { this.data = openfl_Vector.toFloatVector(null); } this.commands.push(1); this.data.push(x); this.data.push(y); } ,wideLineTo: function(x,y) { if(this.commands == null) { this.commands = openfl_Vector.toIntVector(null); } if(this.data == null) { this.data = openfl_Vector.toFloatVector(null); } this.commands.push(2); this.data.push(x); this.data.push(y); } ,wideMoveTo: function(x,y) { if(this.commands == null) { this.commands = openfl_Vector.toIntVector(null); } if(this.data == null) { this.data = openfl_Vector.toFloatVector(null); } this.commands.push(1); this.data.push(x); this.data.push(y); } ,__drawCircle: function(x,y,radius) { this.__drawRoundRect(x - radius,y - radius,radius * 2,radius * 2,radius * 2,radius * 2); } ,__drawEllipse: function(x,y,width,height) { this.__drawRoundRect(x,y,width,height,width,height); } ,__drawRect: function(x,y,width,height) { this.moveTo(x,y); this.lineTo(x + width,y); this.lineTo(x + width,y + height); this.lineTo(x,y + height); this.lineTo(x,y); } ,__drawRoundRect: function(x,y,width,height,ellipseWidth,ellipseHeight) { 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 * 0.70710678118654752440084436210485; var cx2 = -ellipseWidth + ellipseWidth * 0.4142135623730950488016887242097; var cy1 = -ellipseHeight + ellipseHeight * 0.70710678118654752440084436210485; var cy2 = -ellipseHeight + ellipseHeight * 0.4142135623730950488016887242097; this.moveTo(xe,ye - ellipseHeight); this.curveTo(xe,ye + cy2,xe + cx1,ye + cy1); this.curveTo(xe + cx2,ye,xe - ellipseWidth,ye); this.lineTo(x + ellipseWidth,ye); this.curveTo(x - cx2,ye,x - cx1,ye + cy1); this.curveTo(x,ye + cy2,x,ye - ellipseHeight); this.lineTo(x,y + ellipseHeight); this.curveTo(x,y - cy2,x - cx1,y - cy1); this.curveTo(x - cx2,y,x + ellipseWidth,y); this.lineTo(xe - ellipseWidth,y); this.curveTo(xe + cx2,y,xe + cx1,y - cy1); this.curveTo(xe,y - cy2,xe,y + ellipseHeight); this.lineTo(xe,ye - ellipseHeight); } ,__class__: openfl_display_GraphicsPath }; var openfl_display_GraphicsPathWinding = {}; openfl_display_GraphicsPathWinding.fromString = function(value) { switch(value) { case "evenOdd": return 0; case "nonZero": return 1; default: return null; } }; openfl_display_GraphicsPathWinding.toString = function(this1) { switch(this1) { case 0: return "evenOdd"; case 1: return "nonZero"; default: return null; } }; var openfl_display_GraphicsQuadPath = function(rects,indices,transforms) { this.rects = rects; this.indices = indices; this.transforms = transforms; this.__graphicsDataType = 6; }; $hxClasses["openfl.display.GraphicsQuadPath"] = openfl_display_GraphicsQuadPath; openfl_display_GraphicsQuadPath.__name__ = "openfl.display.GraphicsQuadPath"; openfl_display_GraphicsQuadPath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData]; openfl_display_GraphicsQuadPath.prototype = { indices: null ,rects: null ,transforms: null ,__graphicsDataType: null ,__class__: openfl_display_GraphicsQuadPath }; var openfl_display_GraphicsShaderFill = function(shader,matrix) { this.shader = shader; this.matrix = matrix; this.__graphicsDataType = 8; this.__graphicsFillType = 4; }; $hxClasses["openfl.display.GraphicsShaderFill"] = openfl_display_GraphicsShaderFill; openfl_display_GraphicsShaderFill.__name__ = "openfl.display.GraphicsShaderFill"; openfl_display_GraphicsShaderFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData]; openfl_display_GraphicsShaderFill.prototype = { matrix: null ,shader: null ,__graphicsDataType: null ,__graphicsFillType: null ,__class__: openfl_display_GraphicsShaderFill }; 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 = 1; this.__graphicsFillType = 0; }; $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"; openfl_display_IGraphicsStroke.__isInterface__ = true; var openfl_display_GraphicsStroke = function(thickness,pixelHinting,scaleMode,caps,joints,miterLimit,fill) { if(miterLimit == null) { miterLimit = 3; } if(joints == null) { joints = 2; } if(caps == null) { caps = 0; } if(scaleMode == null) { scaleMode = 2; } if(pixelHinting == null) { pixelHinting = false; } if(thickness == null) { thickness = NaN; } this.caps = caps; this.fill = fill; this.joints = joints; this.miterLimit = miterLimit; this.pixelHinting = pixelHinting; this.scaleMode = scaleMode; this.thickness = thickness; this.__graphicsDataType = 0; }; $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_GraphicsTrianglePath = function(vertices,indices,uvtData,culling) { if(culling == null) { culling = 1; } this.vertices = vertices; this.indices = indices; this.uvtData = uvtData; this.culling = culling; this.__graphicsDataType = 7; }; $hxClasses["openfl.display.GraphicsTrianglePath"] = openfl_display_GraphicsTrianglePath; openfl_display_GraphicsTrianglePath.__name__ = "openfl.display.GraphicsTrianglePath"; openfl_display_GraphicsTrianglePath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData]; openfl_display_GraphicsTrianglePath.prototype = { culling: null ,indices: null ,uvtData: null ,vertices: null ,__graphicsDataType: null ,__class__: openfl_display_GraphicsTrianglePath }; var openfl_display_ITileContainer = function() { }; $hxClasses["openfl.display.ITileContainer"] = openfl_display_ITileContainer; openfl_display_ITileContainer.__name__ = "openfl.display.ITileContainer"; openfl_display_ITileContainer.__isInterface__ = true; openfl_display_ITileContainer.prototype = { get_numTiles: null ,addTile: null ,addTileAt: null ,addTiles: null ,contains: null ,getTileAt: null ,getTileIndex: null ,removeTile: null ,removeTileAt: null ,removeTiles: null ,setTileIndex: null ,sortTiles: null ,swapTiles: null ,swapTilesAt: null ,__class__: openfl_display_ITileContainer ,__properties__: {get_numTiles:"get_numTiles"} }; var openfl_display_InterpolationMethod = {}; openfl_display_InterpolationMethod.fromInt = function(value) { return value; }; openfl_display_InterpolationMethod.fromString = function(value) { switch(value) { case "linearRGB": return 0; case "rgb": return 1; default: return null; } }; openfl_display_InterpolationMethod.toInt = function(this1) { return this1; }; openfl_display_InterpolationMethod.toString = function(this1) { switch(this1) { 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 = {}; openfl_display_JointStyle.fromInt = function(value) { return value; }; openfl_display_JointStyle.fromString = function(value) { switch(value) { case "bevel": return 0; case "miter": return 1; case "round": return 2; default: return null; } }; openfl_display_JointStyle.toInt = function(this1) { return this1; }; openfl_display_JointStyle.toString = function(this1) { switch(this1) { case 0: return "bevel"; case 1: return "miter"; case 2: return "round"; default: return null; } }; var openfl_display_LineScaleMode = {}; openfl_display_LineScaleMode.fromInt = function(value) { return value; }; openfl_display_LineScaleMode.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.toInt = function(this1) { return this1; }; openfl_display_LineScaleMode.toString = function(this1) { switch(this1) { 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.__drawableType = 4; this.contentLoaderInfo = openfl_display_LoaderInfo.create(this); this.uncaughtErrorEvents = this.contentLoaderInfo.uncaughtErrorEvents; this.__unloaded = true; }; $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 ,uncaughtErrorEvents: null ,__library: null ,__path: null ,__unloaded: null ,addChild: function(child) { throw new openfl_errors_Error("Error #2069: The Loader class does not implement this method.",2069); } ,addChildAt: function(child,index) { throw new openfl_errors_Error("Error #2069: The Loader class does not implement this method.",2069); } ,close: function() { openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/display/Loader.hx", lineNumber : 228, className : "openfl.display.Loader", methodName : "close"}); } ,load: function(request,context) { this.unload(); var openEvent = new openfl_events_Event("open"); this.contentLoaderInfo.dispatchEvent(openEvent); this.contentLoaderInfo.loaderURL = openfl_Lib.get_current().get_loaderInfo().url; this.contentLoaderInfo.url = request.url; this.__unloaded = false; if(request.contentType == null || request.contentType == "") { var extension = ""; this.__path = request.url; var queryIndex = this.__path.indexOf("?"); if(queryIndex > -1) { this.__path = this.__path.substring(0,queryIndex); } while(StringTools.endsWith(this.__path,"/")) this.__path = this.__path.substring(0,this.__path.length - 1); if(StringTools.endsWith(this.__path,".bundle")) { this.__path += "/library.json"; if(queryIndex > -1) { request.url = this.__path + request.url.substring(queryIndex); } else { request.url = this.__path; } } var extIndex = this.__path.lastIndexOf("."); if(extIndex > -1) { extension = this.__path.substring(extIndex + 1); } var tmp; switch(extension) { case "gif": tmp = "image/gif"; break; case "jpeg":case "jpg": tmp = "image/jpeg"; break; case "js": tmp = "application/javascript"; break; case "json": tmp = "application/json"; break; case "png": tmp = "image/png"; break; case "swf": tmp = "application/x-shockwave-flash"; break; default: tmp = "application/x-www-form-urlencoded"; } this.contentLoaderInfo.contentType = tmp; } else { this.contentLoaderInfo.contentType = request.contentType; } if(this.contentLoaderInfo.contentType.indexOf("image/") > -1 && request.method == "GET" && (request.requestHeaders == null || request.requestHeaders.length == 0) && request.userAgent == null) { openfl_display_BitmapData.loadFromFile(request.url).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError)).onProgress($bind(this,this.BitmapData_onProgress)); return; } var loader = new openfl_net_URLLoader(); loader.dataFormat = 0; if(this.contentLoaderInfo.contentType.indexOf("/json") > -1 || this.contentLoaderInfo.contentType.indexOf("/javascript") > -1 || this.contentLoaderInfo.contentType.indexOf("/ecmascript") > -1) { loader.dataFormat = 1; } loader.addEventListener("complete",$bind(this,this.loader_onComplete)); loader.addEventListener("ioError",$bind(this,this.loader_onError)); loader.addEventListener("progress",$bind(this,this.loader_onProgress)); loader.load(request); } ,loadBytes: function(buffer,context) { openfl_display_BitmapData.loadFromBytes(buffer).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError)); } ,removeChild: function(child) { if(child == this.content) { return openfl_display_DisplayObjectContainer.prototype.removeChild.call(this,this.content); } else { throw new openfl_errors_Error("Error #2069: The Loader class does not implement this method.",2069); } } ,removeChildAt: function(index) { throw new openfl_errors_Error("Error #2069: The Loader class does not implement this method.",2069); } ,setChildIndex: function(child,index) { throw new openfl_errors_Error("Error #2069: The Loader class does not implement this method.",2069); } ,unload: function() { if(!this.__unloaded) { if(this.content != null && this.content.parent == this) { openfl_display_DisplayObjectContainer.prototype.removeChild.call(this,this.content); } if(this.__library != null) { openfl_utils_Assets.unloadLibrary(this.contentLoaderInfo.url); this.__library = null; } 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; this.__unloaded = true; this.contentLoaderInfo.dispatchEvent(new openfl_events_Event("unload")); } } ,unloadAndStop: function(gc) { if(gc == null) { gc = true; } if(this.content != null) { this.content.__stopAllMovieClips(); } var _g = 0; var _g1 = this.get_numChildren(); while(_g < _g1) { var i = _g++; this.getChildAt(i).__stopAllMovieClips(); } this.unload(); var gc1 = gc; } ,__dispatchError: function(text) { var event = new openfl_events_IOErrorEvent("ioError"); event.text = text; this.contentLoaderInfo.dispatchEvent(event); } ,__setContent: function(content,width,height) { this.content = content; this.contentLoaderInfo.content = content; this.contentLoaderInfo.width = width; this.contentLoaderInfo.height = height; if(content != null) { openfl_display_DisplayObjectContainer.prototype.addChildAt.call(this,content,0); } } ,BitmapData_onError: function(error) { this.__dispatchError(Std.string(error)); } ,BitmapData_onLoad: function(bitmapData) { if(bitmapData == null) { this.__dispatchError("Unknown error"); return; } this.__setContent(new openfl_display_Bitmap(bitmapData),bitmapData.width,bitmapData.height); this.contentLoaderInfo.dispatchEvent(new openfl_events_Event("complete")); } ,BitmapData_onProgress: function(bytesLoaded,bytesTotal) { var event = new openfl_events_ProgressEvent("progress"); event.bytesLoaded = bytesLoaded; event.bytesTotal = bytesTotal; this.contentLoaderInfo.dispatchEvent(event); } ,loader_onComplete: function(event) { var _gthis = this; var loader = event.target; if(this.contentLoaderInfo.contentType != null && this.contentLoaderInfo.contentType.indexOf("/json") > -1) { var manifest = lime_utils_AssetManifest.parse(loader.data,haxe_io_Path.directory(this.__path)); if(manifest == null) { this.__dispatchError("Cannot parse asset manifest"); return; } var library = lime_utils_AssetLibrary.fromManifest(manifest); if(library == null) { this.__dispatchError("Cannot open library"); return; } if(((library) instanceof openfl_utils_AssetLibrary)) { library.load().onComplete(function(_) { _gthis.__library = library; openfl_utils_Assets.registerLibrary(_gthis.contentLoaderInfo.url,_gthis.__library); if(manifest.name != null && !openfl_utils_Assets.hasLibrary(manifest.name)) { openfl_utils_Assets.registerLibrary(manifest.name,_gthis.__library); } var clip = _gthis.__library.getMovieClip(""); _gthis.__setContent(clip,clip.get_width() | 0,clip.get_height() | 0); _gthis.contentLoaderInfo.dispatchEvent(new openfl_events_Event("complete")); }).onError(function(e) { _gthis.__dispatchError(e); }); } } else if(this.contentLoaderInfo.contentType != null && (this.contentLoaderInfo.contentType.indexOf("/javascript") > -1 || this.contentLoaderInfo.contentType.indexOf("/ecmascript") > -1)) { this.__setContent(new openfl_display_Sprite(),0,0); eval("(function () {" + Std.string(loader.data) + "})()"); this.contentLoaderInfo.dispatchEvent(new openfl_events_Event("complete")); } else { this.contentLoaderInfo.bytes = loader.data; openfl_display_BitmapData.loadFromBytes(loader.data).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError)); } } ,loader_onError: function(event) { event.target = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(event); } ,loader_onProgress: function(event) { event.target = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(event); } ,__class__: openfl_display_Loader }); 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 ,__completed: null ,__complete: function() { if(!this.__completed) { if(this.bytesLoaded < this.bytesTotal) { this.bytesLoaded = this.bytesTotal; } this.__update(this.bytesLoaded,this.bytesTotal); this.__completed = true; this.dispatchEvent(new openfl_events_Event("complete")); } } ,__update: function(bytesLoaded,bytesTotal) { this.bytesLoaded = bytesLoaded; this.bytesTotal = bytesTotal; this.dispatchEvent(new openfl_events_ProgressEvent("progress",false,false,bytesLoaded,bytesTotal)); } ,__class__: openfl_display_LoaderInfo }); var openfl_display_MovieClip = function() { openfl_display_Sprite.call(this); this.__enabled = true; }; $hxClasses["openfl.display.MovieClip"] = openfl_display_MovieClip; openfl_display_MovieClip.__name__ = "openfl.display.MovieClip"; openfl_display_MovieClip.fromTimeline = function(timeline) { var movieClip = new openfl_display_MovieClip(); movieClip.attachTimeline(timeline); return movieClip; }; openfl_display_MovieClip.__super__ = openfl_display_Sprite; openfl_display_MovieClip.prototype = $extend(openfl_display_Sprite.prototype,{ __enabled: null ,__hasDown: null ,__hasOver: null ,__hasUp: null ,__mouseIsDown: null ,__scene: null ,__timeline: null ,addFrameScript: function(index,method) { if(this.__timeline != null) { this.__timeline.__addFrameScript(index,method); } } ,attachTimeline: function(timeline) { this.__timeline = timeline; if(timeline != null) { timeline.__attachMovieClip(this); this.play(); } } ,gotoAndPlay: function(frame,scene) { if(this.__timeline != null) { this.__timeline.__gotoAndPlay(frame,scene); } } ,gotoAndStop: function(frame,scene) { if(this.__timeline != null) { this.__timeline.__gotoAndStop(frame,scene); } } ,nextFrame: function() { if(this.__timeline != null) { this.__timeline.__nextFrame(); } } ,nextScene: function() { if(this.__timeline != null) { this.__timeline.__nextScene(); } } ,play: function() { if(this.__timeline != null) { this.__timeline.__play(); } } ,prevFrame: function() { if(this.__timeline != null) { this.__timeline.__prevFrame(); } } ,prevScene: function() { if(this.__timeline != null) { this.__timeline.__prevScene(); } } ,stop: function() { if(this.__timeline != null) { this.__timeline.__stop(); } } ,__enterFrame: function(deltaTime) { if(this.__timeline != null) { this.__timeline.__enterFrame(deltaTime); } var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__enterFrame(deltaTime); } } ,__stopAllMovieClips: function() { openfl_display_Sprite.prototype.__stopAllMovieClips.call(this); this.stop(); } ,__tabTest: function(stack) { if(!this.__enabled) { return; } openfl_display_Sprite.prototype.__tabTest.call(this,stack); } ,__onMouseDown: function(event) { if(this.__enabled && this.__hasDown) { this.gotoAndStop("_down"); } this.__mouseIsDown = true; if(this.stage != null) { this.stage.addEventListener("mouseUp",$bind(this,this.__onMouseUp),true); } } ,__onMouseUp: function(event) { this.__mouseIsDown = false; if(this.stage != null) { this.stage.removeEventListener("mouseUp",$bind(this,this.__onMouseUp)); } if(!this.__buttonMode) { return; } if(openfl_utils_Object.__eq(event.target,this) && this.__enabled && this.__hasOver) { this.gotoAndStop("_over"); } else if(this.__enabled && this.__hasUp) { this.gotoAndStop("_up"); } } ,__onRollOut: function(event) { if(!this.__enabled) { return; } if(this.__mouseIsDown && this.__hasOver) { this.gotoAndStop("_over"); } else if(this.__hasUp) { this.gotoAndStop("_up"); } } ,__onRollOver: function(event) { if(this.__enabled && this.__hasOver) { this.gotoAndStop("_over"); } } ,set_buttonMode: function(value) { if(this.__buttonMode != value) { if(value) { this.__hasDown = false; this.__hasOver = false; this.__hasUp = false; var _g = 0; var _g1 = this.get_currentLabels(); while(_g < _g1.length) { var frameLabel = _g1[_g]; ++_g; switch(frameLabel.name) { case "_down": this.__hasDown = true; break; case "_over": this.__hasOver = true; break; case "_up": this.__hasUp = true; break; default: } } if(this.__hasDown || this.__hasOver || this.__hasUp) { this.addEventListener("rollOver",$bind(this,this.__onRollOver)); this.addEventListener("rollOut",$bind(this,this.__onRollOut)); this.addEventListener("mouseDown",$bind(this,this.__onMouseDown)); } } else { this.removeEventListener("rollOver",$bind(this,this.__onRollOver)); this.removeEventListener("rollOut",$bind(this,this.__onRollOut)); this.removeEventListener("mouseDown",$bind(this,this.__onMouseDown)); } this.__buttonMode = value; } return value; } ,get_currentFrame: function() { if(this.__timeline != null) { return this.__timeline.__currentFrame; } else { return 1; } } ,get_currentFrameLabel: function() { if(this.__timeline != null) { return this.__timeline.__currentFrameLabel; } else { return null; } } ,get_currentLabel: function() { if(this.__timeline != null) { return this.__timeline.__currentLabel; } else { return null; } } ,get_currentLabels: function() { if(this.__timeline != null) { return this.__timeline.__currentLabels.slice(); } else { return []; } } ,get_currentScene: function() { if(this.__timeline != null) { return this.__timeline.__currentScene; } else { if(this.__scene == null) { this.__scene = new openfl_display_Scene("",[],1); } return this.__scene; } } ,get_enabled: function() { return this.__enabled; } ,set_enabled: function(value) { return this.__enabled = value; } ,get_framesLoaded: function() { if(this.__timeline != null) { return this.__timeline.__framesLoaded; } else { return 1; } } ,get_isPlaying: function() { if(this.__timeline != null) { return this.__timeline.__isPlaying; } else { return false; } } ,get_scenes: function() { if(this.__timeline != null) { return this.__timeline.scenes.slice(); } else { return [this.get_currentScene()]; } } ,get_totalFrames: function() { if(this.__timeline != null) { return this.__timeline.__totalFrames; } else { return 1; } } ,__class__: openfl_display_MovieClip ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{get_totalFrames:"get_totalFrames",get_scenes:"get_scenes",get_isPlaying:"get_isPlaying",get_framesLoaded:"get_framesLoaded",set_enabled:"set_enabled",get_enabled:"get_enabled",get_currentScene:"get_currentScene",get_currentLabels:"get_currentLabels",get_currentLabel:"get_currentLabel",get_currentFrameLabel:"get_currentFrameLabel",get_currentFrame:"get_currentFrame"}) }); var openfl_display_OpenGLRenderer = function(context,defaultRenderTarget) { openfl_display_DisplayObjectRenderer.call(this); this.__context3D = context; this.__context = context.__context; this.gl = context.__context.webgl; this.__gl = this.gl; this.__defaultRenderTarget = defaultRenderTarget; this.__flipped = this.__defaultRenderTarget == null; if(openfl_display_Graphics.maxTextureWidth == null) { openfl_display_Graphics.maxTextureWidth = openfl_display_Graphics.maxTextureHeight = this.__gl.getParameter(this.__gl.MAX_TEXTURE_SIZE); } this.__matrix = lime_math_Matrix4._new(); this.__values = []; this.__softwareRenderer = new openfl_display_CanvasRenderer(null); this.__type = "opengl"; this.__setBlendMode(10); this.__context3D.__setGLBlend(true); this.__clipRects = []; this.__maskObjects = []; this.__numClipRects = 0; this.__projection = lime_math_Matrix4._new(); this.__projectionFlipped = lime_math_Matrix4._new(); this.__stencilReference = 0; this.__tempRect = new openfl_geom_Rectangle(); this.__defaultDisplayShader = new openfl_display_DisplayObjectShader(); this.__defaultGraphicsShader = new openfl_display_GraphicsShader(); this.__defaultShader = this.__defaultDisplayShader; this.__initShader(this.__defaultShader); this.__scrollRectMasks = new lime_utils_ObjectPool(function() { return new openfl_display_Shape(); }); this.__maskShader = new openfl_display__$internal_Context3DMaskShader(); }; $hxClasses["openfl.display.OpenGLRenderer"] = openfl_display_OpenGLRenderer; openfl_display_OpenGLRenderer.__name__ = "openfl.display.OpenGLRenderer"; openfl_display_OpenGLRenderer.__super__ = openfl_display_DisplayObjectRenderer; openfl_display_OpenGLRenderer.prototype = $extend(openfl_display_DisplayObjectRenderer.prototype,{ gl: null ,__context3D: null ,__clipRects: null ,__currentDisplayShader: null ,__currentGraphicsShader: null ,__currentRenderTarget: null ,__currentShader: null ,__currentShaderBuffer: null ,__defaultDisplayShader: null ,__defaultGraphicsShader: null ,__defaultRenderTarget: null ,__defaultShader: null ,__displayHeight: null ,__displayWidth: null ,__flipped: null ,__gl: null ,__height: null ,__maskShader: null ,__matrix: null ,__maskObjects: null ,__numClipRects: null ,__offsetX: null ,__offsetY: null ,__projection: null ,__projectionFlipped: null ,__scrollRectMasks: null ,__softwareRenderer: null ,__stencilReference: null ,__tempRect: null ,__updatedStencil: null ,__upscaled: null ,__values: null ,__width: null ,applyAlpha: function(alpha) { openfl_display_OpenGLRenderer.__alphaValue[0] = alpha * this.__worldAlpha; if(this.__currentShaderBuffer != null) { this.__currentShaderBuffer.addFloatOverride("openfl_Alpha",openfl_display_OpenGLRenderer.__alphaValue); } else if(this.__currentShader != null) { if(this.__currentShader.__alpha != null) { this.__currentShader.__alpha.value = openfl_display_OpenGLRenderer.__alphaValue; } } } ,applyBitmapData: function(bitmapData,smooth,repeat) { if(repeat == null) { repeat = false; } if(this.__currentShaderBuffer != null) { if(bitmapData != null) { openfl_display_OpenGLRenderer.__textureSizeValue[0] = bitmapData.__textureWidth; openfl_display_OpenGLRenderer.__textureSizeValue[1] = bitmapData.__textureHeight; this.__currentShaderBuffer.addFloatOverride("openfl_TextureSize",openfl_display_OpenGLRenderer.__textureSizeValue); } } else if(this.__currentShader != null) { if(this.__currentShader.__bitmap != null) { this.__currentShader.__bitmap.input = bitmapData; this.__currentShader.__bitmap.filter = smooth && this.__allowSmoothing ? 4 : 5; this.__currentShader.__bitmap.mipFilter = 2; this.__currentShader.__bitmap.wrap = repeat ? 2 : 0; } if(this.__currentShader.__texture != null) { this.__currentShader.__texture.input = bitmapData; this.__currentShader.__texture.filter = smooth && this.__allowSmoothing ? 4 : 5; this.__currentShader.__texture.mipFilter = 2; this.__currentShader.__texture.wrap = repeat ? 2 : 0; } if(this.__currentShader.__textureSize != null) { if(bitmapData != null) { openfl_display_OpenGLRenderer.__textureSizeValue[0] = bitmapData.__textureWidth; openfl_display_OpenGLRenderer.__textureSizeValue[1] = bitmapData.__textureHeight; this.__currentShader.__textureSize.value = openfl_display_OpenGLRenderer.__textureSizeValue; } else { this.__currentShader.__textureSize.value = null; } } } } ,applyColorTransform: function(colorTransform) { var enabled = colorTransform != null && !colorTransform.__isDefault(true); this.applyHasColorTransform(enabled); if(enabled) { colorTransform.__setArrays(openfl_display_OpenGLRenderer.__colorMultipliersValue,openfl_display_OpenGLRenderer.__colorOffsetsValue); if(this.__currentShaderBuffer != null) { this.__currentShaderBuffer.addFloatOverride("openfl_ColorMultiplier",openfl_display_OpenGLRenderer.__colorMultipliersValue); this.__currentShaderBuffer.addFloatOverride("openfl_ColorOffset",openfl_display_OpenGLRenderer.__colorOffsetsValue); } else if(this.__currentShader != null) { if(this.__currentShader.__colorMultiplier != null) { this.__currentShader.__colorMultiplier.value = openfl_display_OpenGLRenderer.__colorMultipliersValue; } if(this.__currentShader.__colorOffset != null) { this.__currentShader.__colorOffset.value = openfl_display_OpenGLRenderer.__colorOffsetsValue; } } } else if(this.__currentShaderBuffer != null) { this.__currentShaderBuffer.addFloatOverride("openfl_ColorMultiplier",openfl_display_OpenGLRenderer.__emptyColorValue); this.__currentShaderBuffer.addFloatOverride("openfl_ColorOffset",openfl_display_OpenGLRenderer.__emptyColorValue); } else if(this.__currentShader != null) { if(this.__currentShader.__colorMultiplier != null) { this.__currentShader.__colorMultiplier.value = openfl_display_OpenGLRenderer.__emptyColorValue; } if(this.__currentShader.__colorOffset != null) { this.__currentShader.__colorOffset.value = openfl_display_OpenGLRenderer.__emptyColorValue; } } } ,applyHasColorTransform: function(enabled) { openfl_display_OpenGLRenderer.__hasColorTransformValue[0] = enabled; if(this.__currentShaderBuffer != null) { this.__currentShaderBuffer.addBoolOverride("openfl_HasColorTransform",openfl_display_OpenGLRenderer.__hasColorTransformValue); } else if(this.__currentShader != null) { if(this.__currentShader.__hasColorTransform != null) { this.__currentShader.__hasColorTransform.value = openfl_display_OpenGLRenderer.__hasColorTransformValue; } } } ,applyMatrix: function(matrix) { if(this.__currentShaderBuffer != null) { this.__currentShaderBuffer.addFloatOverride("openfl_Matrix",matrix); } else if(this.__currentShader != null) { if(this.__currentShader.__matrix != null) { this.__currentShader.__matrix.value = matrix; } } } ,getMatrix: function(transform) { if(this.gl != null) { var values = this.__getMatrix(transform,1); lime_math_Matrix4.set(this.__matrix,0,values[0]); lime_math_Matrix4.set(this.__matrix,1,values[1]); lime_math_Matrix4.set(this.__matrix,2,values[2]); lime_math_Matrix4.set(this.__matrix,3,values[3]); lime_math_Matrix4.set(this.__matrix,4,values[4]); lime_math_Matrix4.set(this.__matrix,5,values[5]); lime_math_Matrix4.set(this.__matrix,6,values[6]); lime_math_Matrix4.set(this.__matrix,7,values[7]); lime_math_Matrix4.set(this.__matrix,8,values[8]); lime_math_Matrix4.set(this.__matrix,9,values[9]); lime_math_Matrix4.set(this.__matrix,10,values[10]); lime_math_Matrix4.set(this.__matrix,11,values[11]); lime_math_Matrix4.set(this.__matrix,12,values[12]); lime_math_Matrix4.set(this.__matrix,13,values[13]); lime_math_Matrix4.set(this.__matrix,14,values[14]); lime_math_Matrix4.set(this.__matrix,15,values[15]); return this.__matrix; } else { lime_math_Matrix4.identity(this.__matrix); lime_math_Matrix4.set(this.__matrix,0,transform.a); lime_math_Matrix4.set(this.__matrix,1,transform.b); lime_math_Matrix4.set(this.__matrix,4,transform.c); lime_math_Matrix4.set(this.__matrix,5,transform.d); lime_math_Matrix4.set(this.__matrix,12,transform.tx); lime_math_Matrix4.set(this.__matrix,13,transform.ty); return this.__matrix; } } ,setShader: function(shader) { this.__currentShaderBuffer = null; if(this.__currentShader == shader) { return; } var tmp = this.__currentShader != null; if(shader == null) { this.__currentShader = null; this.__context3D.setProgram(null); return; } else { this.__currentShader = shader; this.__initShader(shader); this.__context3D.setProgram(shader.program); this.__context3D.__flushGLProgram(); this.__currentShader.__enable(); this.__context3D.__state.shader = shader; } } ,setViewport: function() { this.__gl.viewport(this.__offsetX,this.__offsetY,this.__displayWidth,this.__displayHeight); } ,updateShader: function() { if(this.__currentShader != null) { if(this.__currentShader.__position != null) { this.__currentShader.__position.__useArray = true; } if(this.__currentShader.__textureCoord != null) { this.__currentShader.__textureCoord.__useArray = true; } this.__context3D.setProgram(this.__currentShader.program); this.__context3D.__flushGLProgram(); this.__context3D.__flushGLTextures(); this.__currentShader.__update(); } } ,useAlphaArray: function() { if(this.__currentShader != null) { if(this.__currentShader.__alpha != null) { this.__currentShader.__alpha.__useArray = true; } } } ,useColorTransformArray: function() { if(this.__currentShader != null) { if(this.__currentShader.__colorMultiplier != null) { this.__currentShader.__colorMultiplier.__useArray = true; } if(this.__currentShader.__colorOffset != null) { this.__currentShader.__colorOffset.__useArray = true; } } } ,__cleanup: function() { if(this.__stencilReference > 0) { this.__stencilReference = 0; this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0,0,0); } if(this.__numClipRects > 0) { this.__numClipRects = 0; this.__scissorRect(); } } ,__clear: function() { if(this.__stage == null || this.__stage.__transparent) { this.__context3D.clear(0,0,0,0,0,0,1); } else { this.__context3D.clear(this.__stage.__colorSplit[0],this.__stage.__colorSplit[1],this.__stage.__colorSplit[2],1,0,0,1); } this.__cleared = true; } ,__clearShader: function() { if(this.__currentShader != null) { if(this.__currentShaderBuffer == null) { if(this.__currentShader.__bitmap != null) { this.__currentShader.__bitmap.input = null; } } else { this.__currentShaderBuffer.clearOverride(); } if(this.__currentShader.__texture != null) { this.__currentShader.__texture.input = null; } if(this.__currentShader.__textureSize != null) { this.__currentShader.__textureSize.value = null; } if(this.__currentShader.__hasColorTransform != null) { this.__currentShader.__hasColorTransform.value = null; } if(this.__currentShader.__position != null) { this.__currentShader.__position.value = null; } if(this.__currentShader.__matrix != null) { this.__currentShader.__matrix.value = null; } this.__currentShader.__clearUseArray(); } } ,__copyShader: function(other) { this.__currentShader = other.__currentShader; this.__currentShaderBuffer = other.__currentShaderBuffer; this.__currentDisplayShader = other.__currentDisplayShader; this.__currentGraphicsShader = other.__currentGraphicsShader; } ,__getMatrix: function(transform,pixelSnapping) { var _matrix = openfl_geom_Matrix.__pool.get(); _matrix.copyFrom(transform); _matrix.concat(this.__worldTransform); if(pixelSnapping == 0 || pixelSnapping == 1 && _matrix.b == 0 && _matrix.c == 0 && (_matrix.a < 1.001 && _matrix.a > 0.999) && (_matrix.d < 1.001 && _matrix.d > 0.999)) { _matrix.tx = Math.round(_matrix.tx); _matrix.ty = Math.round(_matrix.ty); } lime_math_Matrix4.identity(this.__matrix); lime_math_Matrix4.set(this.__matrix,0,_matrix.a); lime_math_Matrix4.set(this.__matrix,1,_matrix.b); lime_math_Matrix4.set(this.__matrix,4,_matrix.c); lime_math_Matrix4.set(this.__matrix,5,_matrix.d); lime_math_Matrix4.set(this.__matrix,12,_matrix.tx); lime_math_Matrix4.set(this.__matrix,13,_matrix.ty); lime_math_Matrix4.append(this.__matrix,this.__flipped ? this.__projectionFlipped : this.__projection); this.__values[0] = lime_math_Matrix4.get(this.__matrix,0); this.__values[1] = lime_math_Matrix4.get(this.__matrix,1); this.__values[2] = lime_math_Matrix4.get(this.__matrix,2); this.__values[3] = lime_math_Matrix4.get(this.__matrix,3); this.__values[4] = lime_math_Matrix4.get(this.__matrix,4); this.__values[5] = lime_math_Matrix4.get(this.__matrix,5); this.__values[6] = lime_math_Matrix4.get(this.__matrix,6); this.__values[7] = lime_math_Matrix4.get(this.__matrix,7); this.__values[8] = lime_math_Matrix4.get(this.__matrix,8); this.__values[9] = lime_math_Matrix4.get(this.__matrix,9); this.__values[10] = lime_math_Matrix4.get(this.__matrix,10); this.__values[11] = lime_math_Matrix4.get(this.__matrix,11); this.__values[12] = lime_math_Matrix4.get(this.__matrix,12); this.__values[13] = lime_math_Matrix4.get(this.__matrix,13); this.__values[14] = lime_math_Matrix4.get(this.__matrix,14); this.__values[15] = lime_math_Matrix4.get(this.__matrix,15); openfl_geom_Matrix.__pool.release(_matrix); return this.__values; } ,__initShader: function(shader) { if(shader != null) { if(shader.__context == null) { shader.__context = this.__context3D; shader.__init(); } return shader; } return this.__defaultShader; } ,__initDisplayShader: function(shader) { if(shader != null) { if(shader.__context == null) { shader.__context = this.__context3D; shader.__init(); } return shader; } return this.__defaultDisplayShader; } ,__initGraphicsShader: function(shader) { if(shader != null) { if(shader.__context == null) { shader.__context = this.__context3D; shader.__init(); } return shader; } return this.__defaultGraphicsShader; } ,__initShaderBuffer: function(shaderBuffer) { if(shaderBuffer != null) { return this.__initGraphicsShader(shaderBuffer.shader); } return this.__defaultGraphicsShader; } ,__popMask: function() { if(this.__stencilReference == 0) { return; } var mask = this.__maskObjects.pop(); if(this.__stencilReference > 1) { this.__context3D.setStencilActions(2,1,0,0,5); this.__context3D.setStencilReferenceValue(this.__stencilReference,255,255); this.__context3D.setColorMask(false,false,false,false); this.__renderDrawableMask(mask); this.__stencilReference--; this.__context3D.setStencilActions(2,1,5,5,5); this.__context3D.setStencilReferenceValue(this.__stencilReference,255,0); this.__context3D.setColorMask(true,true,true,true); } else { this.__stencilReference = 0; this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0,0,0); } } ,__popMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(object.__mask != null) { this.__popMask(); } if(handleScrollRect && object.__scrollRect != null) { if(object.__renderTransform.b != 0 || object.__renderTransform.c != 0) { this.__scrollRectMasks.release(this.__maskObjects[this.__maskObjects.length - 1]); this.__popMask(); } else { this.__popMaskRect(); } } } ,__popMaskRect: function() { if(this.__numClipRects > 0) { this.__numClipRects--; if(this.__numClipRects > 0) { this.__scissorRect(this.__clipRects[this.__numClipRects - 1]); } else { this.__scissorRect(); } } } ,__pushMask: function(mask) { if(this.__stencilReference == 0) { this.__context3D.clear(0,0,0,0,0,0,4); this.__updatedStencil = true; } this.__context3D.setStencilActions(2,1,2,5,5); this.__context3D.setStencilReferenceValue(this.__stencilReference,255,255); this.__context3D.setColorMask(false,false,false,false); this.__renderDrawableMask(mask); this.__maskObjects.push(mask); this.__stencilReference++; this.__context3D.setStencilActions(2,1,5,5,5); this.__context3D.setStencilReferenceValue(this.__stencilReference,255,0); this.__context3D.setColorMask(true,true,true,true); } ,__pushMaskObject: function(object,handleScrollRect) { if(handleScrollRect == null) { handleScrollRect = true; } if(handleScrollRect && object.__scrollRect != null) { if(object.__renderTransform.b != 0 || object.__renderTransform.c != 0) { var shape = this.__scrollRectMasks.get(); shape.get_graphics().clear(); shape.get_graphics().beginFill(65280); shape.get_graphics().drawRect(object.__scrollRect.x,object.__scrollRect.y,object.__scrollRect.width,object.__scrollRect.height); shape.__renderTransform.copyFrom(object.__renderTransform); this.__pushMask(shape); } else { this.__pushMaskRect(object.__scrollRect,object.__renderTransform); } } if(object.__mask != null) { this.__pushMask(object.__mask); } } ,__pushMaskRect: function(rect,transform) { if(this.__numClipRects == this.__clipRects.length) { this.__clipRects[this.__numClipRects] = new openfl_geom_Rectangle(); } var _matrix = openfl_geom_Matrix.__pool.get(); _matrix.copyFrom(transform); _matrix.concat(this.__worldTransform); var clipRect = this.__clipRects[this.__numClipRects]; rect.__transform(clipRect,_matrix); if(this.__numClipRects > 0) { var parentClipRect = this.__clipRects[this.__numClipRects - 1]; clipRect.__contract(parentClipRect.x,parentClipRect.y,parentClipRect.width,parentClipRect.height); } if(clipRect.height < 0) { clipRect.height = 0; } if(clipRect.width < 0) { clipRect.width = 0; } openfl_geom_Matrix.__pool.release(_matrix); this.__scissorRect(clipRect); this.__numClipRects++; } ,__render: function(object) { this.__context3D.setColorMask(true,true,true,true); this.__context3D.setCulling(3); this.__context3D.setDepthTest(false,0); this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0,0,0); this.__context3D.setScissorRectangle(null); this.__blendMode = null; this.__setBlendMode(10); if(this.__defaultRenderTarget == null) { openfl_display_OpenGLRenderer.__scissorRectangle.setTo(this.__offsetX,this.__offsetY,this.__displayWidth,this.__displayHeight); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); this.__upscaled = this.__worldTransform.a != 1 || this.__worldTransform.d != 1; this.__renderDrawable(object); if(this.__offsetX > 0 || this.__offsetY > 0) { if(this.__offsetX > 0) { openfl_display_OpenGLRenderer.__scissorRectangle.setTo(0,0,this.__offsetX,this.__height); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); this.__context3D.__flushGL(); this.__gl.clearColor(0,0,0,1); this.__gl.clear(this.__gl.COLOR_BUFFER_BIT); openfl_display_OpenGLRenderer.__scissorRectangle.setTo(this.__offsetX + this.__displayWidth,0,this.__width,this.__height); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); this.__context3D.__flushGL(); this.__gl.clearColor(0,0,0,1); this.__gl.clear(this.__gl.COLOR_BUFFER_BIT); } if(this.__offsetY > 0) { openfl_display_OpenGLRenderer.__scissorRectangle.setTo(0,0,this.__width,this.__offsetY); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); this.__context3D.__flushGL(); this.__gl.clearColor(0,0,0,1); this.__gl.clear(this.__gl.COLOR_BUFFER_BIT); openfl_display_OpenGLRenderer.__scissorRectangle.setTo(0,this.__offsetY + this.__displayHeight,this.__width,this.__height); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); this.__context3D.__flushGL(); this.__gl.clearColor(0,0,0,1); this.__gl.clear(this.__gl.COLOR_BUFFER_BIT); } this.__context3D.setScissorRectangle(null); } } else { openfl_display_OpenGLRenderer.__scissorRectangle.setTo(this.__offsetX,this.__offsetY,this.__displayWidth,this.__displayHeight); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); var cacheMask = object.__mask; var cacheScrollRect = object.__scrollRect; object.__mask = null; object.__scrollRect = null; this.__renderDrawable(object); object.__mask = cacheMask; object.__scrollRect = cacheScrollRect; } this.__context3D.present(); } ,__renderDrawable: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: openfl_display__$internal_Context3DBitmapData.renderDrawable(object,this); break; case 2: openfl_display__$internal_Context3DBitmap.renderDrawable(object,this); break; case 3: openfl_display__$internal_Context3DDisplayObject.renderDrawable(object,this); break; case 4:case 5: openfl_display__$internal_Context3DDisplayObjectContainer.renderDrawable(object,this); break; case 6: openfl_display__$internal_Context3DSimpleButton.renderDrawable(object,this); break; case 7: openfl_display__$internal_Context3DTextField.renderDrawable(object,this); break; case 8: openfl_display__$internal_Context3DVideo.renderDrawable(object,this); break; case 9: openfl_display__$internal_Context3DTilemap.renderDrawable(object,this); break; default: } } ,__renderDrawableMask: function(object) { if(object == null) { return; } switch(object.__drawableType) { case 0: openfl_display__$internal_Context3DBitmapData.renderDrawableMask(object,this); break; case 2: openfl_display__$internal_Context3DBitmap.renderDrawableMask(object,this); break; case 3: openfl_display__$internal_Context3DDisplayObject.renderDrawableMask(object,this); break; case 4:case 5: openfl_display__$internal_Context3DDisplayObjectContainer.renderDrawableMask(object,this); break; case 6: openfl_display__$internal_Context3DSimpleButton.renderDrawableMask(object,this); break; case 7: openfl_display__$internal_Context3DTextField.renderDrawableMask(object,this); break; case 8: openfl_display__$internal_Context3DVideo.renderDrawableMask(object,this); break; case 9: openfl_display__$internal_Context3DTilemap.renderDrawableMask(object,this); break; default: } } ,__renderFilterPass: function(source,shader,smooth,clear) { if(clear == null) { clear = true; } if(source == null || shader == null) { return; } if(this.__defaultRenderTarget == null) { return; } var cacheRTT = this.__context3D.__state.renderToTexture; var cacheRTTDepthStencil = this.__context3D.__state.renderToTextureDepthStencil; var cacheRTTAntiAlias = this.__context3D.__state.renderToTextureAntiAlias; var cacheRTTSurfaceSelector = this.__context3D.__state.renderToTextureSurfaceSelector; this.__context3D.setRenderToTexture(this.__defaultRenderTarget.getTexture(this.__context3D),false); if(clear) { this.__context3D.clear(0,0,0,0,0,0,1); } var shader1 = this.__initShader(shader); this.setShader(shader1); this.applyAlpha(1); this.applyBitmapData(source,smooth); this.applyColorTransform(null); this.applyMatrix(this.__getMatrix(source.__renderTransform,1)); this.updateShader(); var vertexBuffer = source.getVertexBuffer(this.__context3D); if(shader1.__position != null) { this.__context3D.setVertexBufferAt(shader1.__position.index,vertexBuffer,0,3); } if(shader1.__textureCoord != null) { this.__context3D.setVertexBufferAt(shader1.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = source.getIndexBuffer(this.__context3D); this.__context3D.drawTriangles(indexBuffer); if(cacheRTT != null) { this.__context3D.setRenderToTexture(cacheRTT,cacheRTTDepthStencil,cacheRTTAntiAlias,cacheRTTSurfaceSelector); } else { this.__context3D.setRenderToBackBuffer(); } this.__clearShader(); } ,__resize: function(width,height) { this.__width = width; this.__height = height; var w = this.__defaultRenderTarget == null ? this.__stage.stageWidth : this.__defaultRenderTarget.width; var h = this.__defaultRenderTarget == null ? this.__stage.stageHeight : this.__defaultRenderTarget.height; var tmp; if(this.__defaultRenderTarget == null) { var _this = this.__worldTransform; tmp = Math.round(0 * _this.a + 0 * _this.c + _this.tx); } else { tmp = 0; } this.__offsetX = tmp; var tmp; if(this.__defaultRenderTarget == null) { var _this = this.__worldTransform; tmp = Math.round(0 * _this.b + 0 * _this.d + _this.ty); } else { tmp = 0; } this.__offsetY = tmp; var tmp; if(this.__defaultRenderTarget == null) { var _this = this.__worldTransform; tmp = Math.round(w * _this.a + 0 * _this.c + _this.tx - this.__offsetX); } else { tmp = w; } this.__displayWidth = tmp; var tmp; if(this.__defaultRenderTarget == null) { var _this = this.__worldTransform; tmp = Math.round(0 * _this.b + h * _this.d + _this.ty - this.__offsetY); } else { tmp = h; } this.__displayHeight = tmp; lime_math_Matrix4.createOrtho(this.__projection,0,this.__displayWidth + this.__offsetX * 2,0,this.__displayHeight + this.__offsetY * 2,-1000,1000); lime_math_Matrix4.createOrtho(this.__projectionFlipped,0,this.__displayWidth + this.__offsetX * 2,this.__displayHeight + this.__offsetY * 2,0,-1000,1000); } ,__resumeClipAndMask: function(childRenderer) { if(this.__stencilReference > 0) { this.__context3D.setStencilActions(2,1,5,5,5); this.__context3D.setStencilReferenceValue(this.__stencilReference,255,0); } else { this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0,0,0); } if(this.__numClipRects > 0) { this.__scissorRect(this.__clipRects[this.__numClipRects - 1]); } else { this.__scissorRect(); } } ,__scissorRect: function(clipRect) { if(clipRect != null) { var x = Math.floor(clipRect.x); var y = Math.floor(clipRect.y); var width = clipRect.width > 0 ? Math.ceil(clipRect.get_right()) - x : 0; var height = clipRect.height > 0 ? Math.ceil(clipRect.get_bottom()) - y : 0; if(this.__context3D.__backBufferWantsBestResolution) { x = Math.floor(clipRect.x / this.__stage.window.__scale); y = Math.floor(clipRect.y / this.__stage.window.__scale); width = clipRect.width > 0 ? Math.ceil(clipRect.get_right() / this.__stage.window.__scale) - x : 0; height = clipRect.height > 0 ? Math.ceil(clipRect.get_bottom() / this.__stage.window.__scale) - y : 0; } if(width < 0) { width = 0; } if(height < 0) { height = 0; } openfl_display_OpenGLRenderer.__scissorRectangle.setTo(x,y,width,height); this.__context3D.setScissorRectangle(openfl_display_OpenGLRenderer.__scissorRectangle); } else { this.__context3D.setScissorRectangle(null); } } ,__setBlendMode: function(value) { if(this.__overrideBlendMode != null) { value = this.__overrideBlendMode; } if(this.__blendMode == value) { return; } this.__blendMode = value; switch(value) { case 0: this.__context3D.setBlendFactors(2,2); break; case 9: this.__context3D.setBlendFactors(1,5); break; case 12: this.__context3D.setBlendFactors(2,6); break; case 14: this.__context3D.setBlendFactors(2,2); this.__context3D.__setGLBlendEquation(this.__gl.FUNC_REVERSE_SUBTRACT); break; default: this.__context3D.setBlendFactors(2,5); } } ,__setRenderTarget: function(renderTarget) { this.__defaultRenderTarget = renderTarget; this.__flipped = renderTarget == null; if(renderTarget != null) { this.__resize(renderTarget.width,renderTarget.height); } } ,__setShaderBuffer: function(shaderBuffer) { this.setShader(shaderBuffer.shader); this.__currentShaderBuffer = shaderBuffer; } ,__suspendClipAndMask: function() { if(this.__stencilReference > 0) { this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0,0,0); } if(this.__numClipRects > 0) { this.__scissorRect(); } } ,__updateShaderBuffer: function(bufferOffset) { if(this.__currentShader != null && this.__currentShaderBuffer != null) { this.__currentShader.__updateFromBuffer(this.__currentShaderBuffer,bufferOffset); } } ,__class__: openfl_display_OpenGLRenderer }); 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 = {}; openfl_display_PixelSnapping.fromString = function(value) { switch(value) { case "always": return 0; case "auto": return 1; case "never": return 2; default: return null; } }; openfl_display_PixelSnapping.toString = function(this1) { switch(this1) { case 0: return "always"; case 1: return "auto"; case 2: return "never"; default: return null; } }; var openfl_display_Preloader = function(display) { this.onComplete = new lime_app__$Event_$Void_$Void(); this.display = display; if(display != null) { display.addEventListener("unload",$bind(this,this.display_onUnload)); openfl_Lib.get_current().addChild(display); } }; $hxClasses["openfl.display.Preloader"] = openfl_display_Preloader; openfl_display_Preloader.__name__ = "openfl.display.Preloader"; openfl_display_Preloader.prototype = { onComplete: null ,complete: null ,display: null ,ready: null ,start: function() { this.ready = true; openfl_Lib.get_current().get_loaderInfo().__complete(); if(this.display != null) { var complete = new openfl_events_Event("complete",true,true); this.display.dispatchEvent(complete); if(!complete.isDefaultPrevented()) { this.display.dispatchEvent(new openfl_events_Event("unload")); } } else if(!this.complete) { this.complete = true; this.onComplete.dispatch(); } } ,update: function(loaded,total) { openfl_Lib.get_current().get_loaderInfo().__update(loaded,total); if(this.display != null) { this.display.dispatchEvent(new openfl_events_ProgressEvent("progress",true,true,loaded,total)); } } ,display_onUnload: function(event) { if(this.display != null) { this.display.removeEventListener("unload",$bind(this,this.display_onUnload)); if(this.display.parent == openfl_Lib.get_current()) { openfl_Lib.get_current().removeChild(this.display); } openfl_Lib.get_current().stage.set_focus(null); this.display = null; } if(this.ready) { if(!this.complete) { this.complete = true; this.onComplete.dispatch(); } } } ,__class__: openfl_display_Preloader }; var openfl_display_DefaultPreloader = 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_Shape(); 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.outline.set_alpha(0); this.addChild(this.outline); this.progress = new openfl_display_Shape(); 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.progress.set_alpha(0); this.addChild(this.progress); this.startAnimation = openfl_Lib.getTimer() + 100; this.endAnimation = this.startAnimation + 1000; this.addEventListener("addedToStage",$bind(this,this.this_onAddedToStage)); }; $hxClasses["openfl.display.DefaultPreloader"] = openfl_display_DefaultPreloader; openfl_display_DefaultPreloader.__name__ = "openfl.display.DefaultPreloader"; openfl_display_DefaultPreloader.__super__ = openfl_display_Sprite; openfl_display_DefaultPreloader.prototype = $extend(openfl_display_Sprite.prototype,{ endAnimation: null ,outline: null ,progress: null ,startAnimation: null ,getBackgroundColor: function() { var attributes = openfl_Lib.get_current().stage.window.context.attributes; if(Object.prototype.hasOwnProperty.call(attributes,"background") && attributes.background != null) { return attributes.background; } else { return 0; } } ,getHeight: function() { var height = openfl_Lib.get_current().stage.window.__height; if(height > 0) { return height; } else { return openfl_Lib.get_current().stage.stageHeight; } } ,getWidth: function() { var width = openfl_Lib.get_current().stage.window.__width; if(width > 0) { return width; } else { return openfl_Lib.get_current().stage.stageWidth; } } ,onInit: function() { this.addEventListener("enterFrame",$bind(this,this.this_onEnterFrame)); } ,onLoaded: function() { this.removeEventListener("enterFrame",$bind(this,this.this_onEnterFrame)); this.dispatchEvent(new openfl_events_Event("unload")); } ,onUpdate: function(bytesLoaded,bytesTotal) { var percentLoaded = 0.0; if(bytesTotal > 0) { percentLoaded = bytesLoaded / bytesTotal; if(percentLoaded > 1) { percentLoaded = 1; } } this.progress.set_scaleX(percentLoaded); } ,this_onAddedToStage: function(event) { this.removeEventListener("addedToStage",$bind(this,this.this_onAddedToStage)); this.onInit(); this.onUpdate(this.get_loaderInfo().bytesLoaded,this.get_loaderInfo().bytesTotal); this.addEventListener("progress",$bind(this,this.this_onProgress)); this.addEventListener("complete",$bind(this,this.this_onComplete)); } ,this_onComplete: function(event) { event.preventDefault(); this.removeEventListener("progress",$bind(this,this.this_onProgress)); this.removeEventListener("complete",$bind(this,this.this_onComplete)); this.onLoaded(); } ,this_onEnterFrame: function(event) { var elapsed = openfl_Lib.getTimer() - this.startAnimation; var total = this.endAnimation - this.startAnimation; var percent = elapsed / total; if(percent < 0) { percent = 0; } if(percent > 1) { percent = 1; } this.outline.set_alpha(this.progress.set_alpha(percent)); } ,this_onProgress: function(event) { this.onUpdate(event.bytesLoaded | 0,event.bytesTotal | 0); } ,__class__: openfl_display_DefaultPreloader }); var openfl_display_Scene = function(name,labels,numFrames) { this.name = name; this.labels = labels; this.numFrames = numFrames; }; $hxClasses["openfl.display.Scene"] = openfl_display_Scene; openfl_display_Scene.__name__ = "openfl.display.Scene"; openfl_display_Scene.prototype = { labels: null ,name: null ,numFrames: null ,__class__: openfl_display_Scene }; var openfl_display_ShaderData = {}; openfl_display_ShaderData._new = function(byteArray) { return { }; }; var openfl_display_ShaderInput = function() { this.channels = 0; this.filter = 5; this.height = 0; this.index = 0; this.mipFilter = 2; this.width = 0; this.wrap = 0; }; $hxClasses["openfl.display.ShaderInput"] = openfl_display_ShaderInput; openfl_display_ShaderInput.__name__ = "openfl.display.ShaderInput"; openfl_display_ShaderInput.prototype = { channels: null ,filter: null ,height: null ,index: null ,input: null ,mipFilter: null ,name: null ,width: null ,wrap: null ,__isUniform: null ,__disableGL: function(context,id) { if(id < 0) { return; } var gl = context.gl; context.setTextureAt(id,null); } ,__updateGL: function(context,id,overrideInput,overrideFilter,overrideMipFilter,overrideWrap) { var gl = context.gl; var input = overrideInput != null ? overrideInput : this.input; var filter = overrideFilter != null ? overrideFilter : this.filter; var mipFilter = overrideMipFilter != null ? overrideMipFilter : this.mipFilter; var wrap = overrideWrap != null ? overrideWrap : this.wrap; if(input != null) { var bitmapData = input; context.setTextureAt(id,bitmapData.getTexture(context)); context.setSamplerStateAt(id,wrap,filter,mipFilter); } else { context.setTextureAt(id,null); } } ,__class__: openfl_display_ShaderInput }; var openfl_display_ShaderParameter = function() { this.index = 0; }; $hxClasses["openfl.display.ShaderParameter"] = openfl_display_ShaderParameter; openfl_display_ShaderParameter.__name__ = "openfl.display.ShaderParameter"; openfl_display_ShaderParameter.prototype = { index: null ,name: null ,type: null ,value: null ,__arrayLength: null ,__internal: null ,__isBool: null ,__isFloat: null ,__isInt: null ,__isUniform: null ,__length: null ,__uniformMatrix: null ,__useArray: null ,__disableGL: function(context) { if(this.index < 0) { return; } var gl = context.gl; if(!this.__isUniform) { var _g = 0; var _g1 = this.__arrayLength; while(_g < _g1) { var i = _g++; gl.disableVertexAttribArray(this.index + i); } } } ,__updateGL: function(context,overrideValue) { if(this.index < 0) { return; } var gl = context.gl; var value = overrideValue != null ? overrideValue : this.value; var boolValue = this.__isBool ? value : null; var floatValue = this.__isFloat ? value : null; var intValue = this.__isInt ? value : null; if(this.__isUniform) { if(value != null && value.length >= this.__length) { switch(this.type) { case 0: gl.uniform1i(this.index,boolValue[0] ? 1 : 0); break; case 1: gl.uniform2i(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0); break; case 2: gl.uniform3i(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0); break; case 3: gl.uniform4i(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0,boolValue[3] ? 1 : 0); break; case 4: gl.uniform1f(this.index,floatValue[0]); break; case 5: gl.uniform2f(this.index,floatValue[0],floatValue[1]); break; case 6: gl.uniform3f(this.index,floatValue[0],floatValue[1],floatValue[2]); break; case 7: gl.uniform4f(this.index,floatValue[0],floatValue[1],floatValue[2],floatValue[3]); break; case 8: gl.uniform1i(this.index,intValue[0]); break; case 9: gl.uniform2i(this.index,intValue[0],intValue[1]); break; case 10: gl.uniform3i(this.index,intValue[0],intValue[1],intValue[2]); break; case 11: gl.uniform4i(this.index,intValue[0],intValue[1],intValue[2],intValue[3]); break; case 12: this.__uniformMatrix[0] = floatValue[0]; this.__uniformMatrix[1] = floatValue[1]; this.__uniformMatrix[2] = floatValue[2]; this.__uniformMatrix[3] = floatValue[3]; lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = floatValue[0]; this.__uniformMatrix[1] = floatValue[1]; this.__uniformMatrix[2] = floatValue[2]; this.__uniformMatrix[3] = floatValue[3]; this.__uniformMatrix[4] = floatValue[4]; this.__uniformMatrix[5] = floatValue[5]; this.__uniformMatrix[6] = floatValue[6]; this.__uniformMatrix[7] = floatValue[7]; this.__uniformMatrix[8] = floatValue[8]; lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix); break; case 20: this.__uniformMatrix[0] = floatValue[0]; this.__uniformMatrix[1] = floatValue[1]; this.__uniformMatrix[2] = floatValue[2]; this.__uniformMatrix[3] = floatValue[3]; this.__uniformMatrix[4] = floatValue[4]; this.__uniformMatrix[5] = floatValue[5]; this.__uniformMatrix[6] = floatValue[6]; this.__uniformMatrix[7] = floatValue[7]; this.__uniformMatrix[8] = floatValue[8]; this.__uniformMatrix[9] = floatValue[9]; this.__uniformMatrix[10] = floatValue[10]; this.__uniformMatrix[11] = floatValue[11]; this.__uniformMatrix[12] = floatValue[12]; this.__uniformMatrix[13] = floatValue[13]; this.__uniformMatrix[14] = floatValue[14]; this.__uniformMatrix[15] = floatValue[15]; lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix); break; default: } } else { switch(this.type) { case 4: gl.uniform1f(this.index,0); break; case 5: gl.uniform2f(this.index,0,0); break; case 6: gl.uniform3f(this.index,0,0,0); break; case 7: gl.uniform4f(this.index,0,0,0,0); break; case 0:case 8: gl.uniform1i(this.index,0); break; case 1:case 9: gl.uniform2i(this.index,0,0); break; case 2:case 10: gl.uniform3i(this.index,0,0,0); break; case 3:case 11: gl.uniform4i(this.index,0,0,0,0); break; case 12: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; this.__uniformMatrix[4] = 0; this.__uniformMatrix[5] = 0; this.__uniformMatrix[6] = 0; this.__uniformMatrix[7] = 0; this.__uniformMatrix[8] = 0; lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix); break; case 20: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; this.__uniformMatrix[4] = 0; this.__uniformMatrix[5] = 0; this.__uniformMatrix[6] = 0; this.__uniformMatrix[7] = 0; this.__uniformMatrix[8] = 0; this.__uniformMatrix[9] = 0; this.__uniformMatrix[10] = 0; this.__uniformMatrix[11] = 0; this.__uniformMatrix[12] = 0; this.__uniformMatrix[13] = 0; this.__uniformMatrix[14] = 0; this.__uniformMatrix[15] = 0; lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix); break; default: } } } else if(!this.__useArray && (value == null || value.length == this.__length)) { var _g = 0; var _g1 = this.__arrayLength; while(_g < _g1) { var i = _g++; gl.disableVertexAttribArray(this.index + i); } if(value != null) { switch(this.type) { case 0: gl.vertexAttrib1f(this.index,boolValue[0] ? 1 : 0); break; case 1: gl.vertexAttrib2f(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0); break; case 2: gl.vertexAttrib3f(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0); break; case 3: gl.vertexAttrib4f(this.index,boolValue[0] ? 1 : 0,boolValue[1] ? 1 : 0,boolValue[2] ? 1 : 0,boolValue[3] ? 1 : 0); break; case 4: gl.vertexAttrib1f(this.index,floatValue[0]); break; case 5: gl.vertexAttrib2f(this.index,floatValue[0],floatValue[1]); break; case 6: gl.vertexAttrib3f(this.index,floatValue[0],floatValue[1],floatValue[2]); break; case 7: gl.vertexAttrib4f(this.index,floatValue[0],floatValue[1],floatValue[2],floatValue[3]); break; case 8: gl.vertexAttrib1f(this.index,intValue[0]); break; case 9: gl.vertexAttrib2f(this.index,intValue[0],intValue[1]); break; case 10: gl.vertexAttrib3f(this.index,intValue[0],intValue[1],intValue[2]); break; case 11: gl.vertexAttrib4f(this.index,intValue[0],intValue[1],intValue[2],intValue[3]); break; case 12: gl.vertexAttrib2f(this.index + 0,floatValue[0],floatValue[1]); gl.vertexAttrib2f(this.index + 1,floatValue[2],floatValue[3]); break; case 16: gl.vertexAttrib3f(this.index + 0,floatValue[0],floatValue[1],floatValue[2]); gl.vertexAttrib3f(this.index + 1,floatValue[3],floatValue[4],floatValue[5]); gl.vertexAttrib3f(this.index + 2,floatValue[6],floatValue[7],floatValue[8]); break; case 20: gl.vertexAttrib4f(this.index + 0,floatValue[0],floatValue[1],floatValue[2],floatValue[3]); gl.vertexAttrib4f(this.index + 1,floatValue[4],floatValue[5],floatValue[6],floatValue[7]); gl.vertexAttrib4f(this.index + 2,floatValue[8],floatValue[9],floatValue[10],floatValue[11]); gl.vertexAttrib4f(this.index + 3,floatValue[12],floatValue[13],floatValue[14],floatValue[15]); break; default: } } else { switch(this.type) { case 0:case 4:case 8: gl.vertexAttrib1f(this.index,0); break; case 1:case 5:case 9: gl.vertexAttrib2f(this.index,0,0); break; case 2:case 6:case 10: gl.vertexAttrib3f(this.index,0,0,0); break; case 3:case 7:case 11: gl.vertexAttrib4f(this.index,0,0,0,0); break; case 12: gl.vertexAttrib2f(this.index + 0,0,0); gl.vertexAttrib2f(this.index + 1,0,0); break; case 16: gl.vertexAttrib3f(this.index + 0,0,0,0); gl.vertexAttrib3f(this.index + 1,0,0,0); gl.vertexAttrib3f(this.index + 2,0,0,0); break; case 20: gl.vertexAttrib4f(this.index + 0,0,0,0,0); gl.vertexAttrib4f(this.index + 1,0,0,0,0); gl.vertexAttrib4f(this.index + 2,0,0,0,0); gl.vertexAttrib4f(this.index + 3,0,0,0,0); break; default: } } } else { var _g = 0; var _g1 = this.__arrayLength; while(_g < _g1) { var i = _g++; gl.enableVertexAttribArray(this.index + i); } } } ,__updateGLFromBuffer: function(context,buffer,position,length,bufferOffset) { if(this.index < 0) { return; } var gl = context.gl; if(this.__isUniform) { if(length >= this.__length) { switch(this.type) { case 4: gl.uniform1f(this.index,buffer[position]); break; case 5: gl.uniform2f(this.index,buffer[position],buffer[position + 1]); break; case 6: gl.uniform3f(this.index,buffer[position],buffer[position + 1],buffer[position + 2]); break; case 7: gl.uniform4f(this.index,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]); break; case 0:case 8: gl.uniform1i(this.index,buffer[position] | 0); break; case 1:case 9: gl.uniform2i(this.index,buffer[position] | 0,buffer[position + 1] | 0); break; case 2:case 10: gl.uniform3i(this.index,buffer[position] | 0,buffer[position + 1] | 0,buffer[position + 2] | 0); break; case 3:case 11: gl.uniform4i(this.index,buffer[position] | 0,buffer[position + 1] | 0,buffer[position + 2] | 0,buffer[position + 3] | 0); break; case 12: this.__uniformMatrix[0] = buffer[position]; this.__uniformMatrix[1] = buffer[position + 1]; this.__uniformMatrix[2] = buffer[position + 2]; this.__uniformMatrix[3] = buffer[position + 3]; lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.index,false,this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = buffer[position]; this.__uniformMatrix[1] = buffer[position + 1]; this.__uniformMatrix[2] = buffer[position + 2]; this.__uniformMatrix[3] = buffer[position + 3]; this.__uniformMatrix[4] = buffer[position + 4]; this.__uniformMatrix[5] = buffer[position + 5]; this.__uniformMatrix[6] = buffer[position + 6]; this.__uniformMatrix[7] = buffer[position + 7]; this.__uniformMatrix[8] = buffer[position + 8]; lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.index,false,this.__uniformMatrix); break; case 20: this.__uniformMatrix[0] = buffer[position]; this.__uniformMatrix[1] = buffer[position + 1]; this.__uniformMatrix[2] = buffer[position + 2]; this.__uniformMatrix[3] = buffer[position + 3]; this.__uniformMatrix[4] = buffer[position + 4]; this.__uniformMatrix[5] = buffer[position + 5]; this.__uniformMatrix[6] = buffer[position + 6]; this.__uniformMatrix[7] = buffer[position + 7]; this.__uniformMatrix[8] = buffer[position + 8]; this.__uniformMatrix[9] = buffer[position + 9]; this.__uniformMatrix[10] = buffer[position + 10]; this.__uniformMatrix[11] = buffer[position + 11]; this.__uniformMatrix[12] = buffer[position + 12]; this.__uniformMatrix[13] = buffer[position + 13]; this.__uniformMatrix[14] = buffer[position + 14]; this.__uniformMatrix[15] = buffer[position + 15]; lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.index,false,this.__uniformMatrix); break; default: } } } else if(!this.__internal && (length == 0 || length == this.__length)) { var _g = 0; var _g1 = this.__arrayLength; while(_g < _g1) { var i = _g++; gl.disableVertexAttribArray(this.index + i); } if(length > 0) { switch(this.type) { case 0:case 4:case 8: gl.vertexAttrib1f(this.index,buffer[position]); break; case 1:case 5:case 9: gl.vertexAttrib2f(this.index,buffer[position],buffer[position + 1]); break; case 2:case 6:case 10: gl.vertexAttrib3f(this.index,buffer[position],buffer[position + 1],buffer[position + 2]); break; case 3:case 7:case 11: gl.vertexAttrib4f(this.index,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]); break; case 12: gl.vertexAttrib2f(this.index + 0,buffer[position],buffer[position + 1]); gl.vertexAttrib2f(this.index + 1,buffer[position + 2],buffer[position + 2 + 1]); break; case 16: gl.vertexAttrib3f(this.index + 0,buffer[position],buffer[position + 1],buffer[position + 2]); gl.vertexAttrib3f(this.index + 1,buffer[position + 3],buffer[position + 3 + 1],buffer[position + 3 + 2]); gl.vertexAttrib3f(this.index + 2,buffer[position + 6],buffer[position + 6 + 1],buffer[position + 6 + 2]); break; case 20: gl.vertexAttrib4f(this.index + 0,buffer[position],buffer[position + 1],buffer[position + 2],buffer[position + 3]); gl.vertexAttrib4f(this.index + 1,buffer[position + 4],buffer[position + 4 + 1],buffer[position + 4 + 2],buffer[position + 4 + 3]); gl.vertexAttrib4f(this.index + 2,buffer[position + 8],buffer[position + 8 + 1],buffer[position + 8 + 2],buffer[position + 8 + 3]); gl.vertexAttrib4f(this.index + 3,buffer[position + 12],buffer[position + 12 + 1],buffer[position + 12 + 2],buffer[position + 12 + 3]); break; default: } } else { switch(this.type) { case 0:case 4:case 8: gl.vertexAttrib1f(this.index,0); break; case 1:case 5:case 9: gl.vertexAttrib2f(this.index,0,0); break; case 2:case 6:case 10: gl.vertexAttrib3f(this.index,0,0,0); break; case 3:case 7:case 11: gl.vertexAttrib4f(this.index,0,0,0,0); break; case 12: gl.vertexAttrib2f(this.index + 0,0,0); gl.vertexAttrib2f(this.index + 1,0,0); break; case 16: gl.vertexAttrib3f(this.index + 0,0,0,0); gl.vertexAttrib3f(this.index + 1,0,0,0); gl.vertexAttrib3f(this.index + 2,0,0,0); break; case 20: gl.vertexAttrib4f(this.index + 0,0,0,0,0); gl.vertexAttrib4f(this.index + 1,0,0,0,0); gl.vertexAttrib4f(this.index + 2,0,0,0,0); gl.vertexAttrib4f(this.index + 3,0,0,0,0); break; default: } } } else { var type = gl.FLOAT; if(this.__isBool) { type = gl.INT; } else if(this.__isInt) { type = gl.INT; } var _g = 0; var _g1 = this.__arrayLength; while(_g < _g1) { var i = _g++; gl.enableVertexAttribArray(this.index + i); } if(length > 0) { var _g = 0; var _g1 = this.__arrayLength; while(_g < _g1) { var i = _g++; gl.vertexAttribPointer(this.index + i,this.__length,type,false,this.__length * 4,(position + bufferOffset * this.__length + i * this.__arrayLength) * 4); } } } } ,set_name: function(value) { this.__internal = StringTools.startsWith(value,"openfl_"); return this.name = value; } ,__class__: openfl_display_ShaderParameter ,__properties__: {set_name:"set_name"} }; var openfl_display_ShaderParameterType = {}; openfl_display_ShaderParameterType.fromString = function(value) { switch(value) { case "bool": return 0; case "bool2": return 1; case "bool3": return 1; case "bool4": return 1; case "float": return 4; case "float2": return 5; case "float3": return 6; case "float4": return 7; case "int": return 8; case "int2": return 9; case "int3": return 10; case "int4": return 11; case "matrix2x2": return 12; case "matrix2x3": return 13; case "matrix2x4": return 14; case "matrix3x2": return 15; case "matrix3x3": return 16; case "matrix3x4": return 17; case "matrix4x2": return 18; case "matrix4x3": return 19; case "matrix4x4": return 20; default: return null; } }; openfl_display_ShaderParameterType.toString = function(this1) { switch(this1) { case 0: return "bool"; case 1: return "bool2"; case 2: return "bool3"; case 3: return "bool4"; case 4: return "float"; case 5: return "float2"; case 6: return "float3"; case 7: return "float4"; case 8: return "int"; case 9: return "int2"; case 10: return "int3"; case 11: return "int4"; case 12: return "matrix2x2"; case 13: return "matrix2x3"; case 14: return "matrix2x4"; case 15: return "matrix3x2"; case 16: return "matrix3x3"; case 17: return "matrix3x4"; case 18: return "matrix4x2"; case 19: return "matrix4x3"; case 20: return "matrix4x4"; default: return null; } }; var openfl_display_ShaderPrecision = {}; openfl_display_ShaderPrecision.fromString = function(value) { switch(value) { case "fast": return 0; case "full": return 1; default: return null; } }; openfl_display_ShaderPrecision.toString = function(this1) { switch(this1) { case 0: return "fast"; case 1: return "full"; default: return null; } }; var openfl_display_Shape = function() { openfl_display_DisplayObject.call(this); this.__drawableType = 3; }; $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,{ get_graphics: function() { if(this.__graphics == null) { this.__graphics = new openfl_display_Graphics(this); } return this.__graphics; } ,__class__: openfl_display_Shape ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{get_graphics:"get_graphics"}) }); var openfl_display_SimpleButton = function(upState,overState,downState,hitTestState) { openfl_display_InteractiveObject.call(this); this.__drawableType = 6; this.enabled = true; this.trackAsMenu = false; this.useHandCursor = true; this.__upState = upState != null ? upState : new openfl_display_DisplayObject(); this.__overState = overState; this.__downState = downState; this.set_hitTestState(hitTestState != null ? hitTestState : new openfl_display_DisplayObject()); this.addEventListener("mouseDown",$bind(this,this.__this_onMouseDown)); this.addEventListener("mouseOut",$bind(this,this.__this_onMouseOut)); this.addEventListener("mouseOver",$bind(this,this.__this_onMouseOver)); this.addEventListener("mouseUp",$bind(this,this.__this_onMouseUp)); this.__tabEnabled = true; this.set___currentState(this.__upState); if(openfl_display_SimpleButton.__constructor != null) { var method = openfl_display_SimpleButton.__constructor; openfl_display_SimpleButton.__constructor = null; method(this); } }; $hxClasses["openfl.display.SimpleButton"] = openfl_display_SimpleButton; openfl_display_SimpleButton.__name__ = "openfl.display.SimpleButton"; openfl_display_SimpleButton.__constructor = null; openfl_display_SimpleButton.__super__ = openfl_display_InteractiveObject; openfl_display_SimpleButton.prototype = $extend(openfl_display_InteractiveObject.prototype,{ enabled: null ,trackAsMenu: null ,useHandCursor: null ,__currentState: null ,__downState: null ,__hitTestState: null ,__ignoreEvent: null ,__overState: null ,__previousStates: null ,__soundTransform: null ,__upState: null ,__getBounds: function(rect,matrix) { openfl_display_InteractiveObject.prototype.__getBounds.call(this,rect,matrix); var childWorldTransform = openfl_geom_Matrix.__pool.get(); var local = this.__currentState.__transform; childWorldTransform.a = local.a * matrix.a + local.b * matrix.c; childWorldTransform.b = local.a * matrix.b + local.b * matrix.d; childWorldTransform.c = local.c * matrix.a + local.d * matrix.c; childWorldTransform.d = local.c * matrix.b + local.d * matrix.d; childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx; childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty; this.__currentState.__getBounds(rect,childWorldTransform); openfl_geom_Matrix.__pool.release(childWorldTransform); } ,__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); } var childWorldTransform = openfl_geom_Matrix.__pool.get(); var local = this.__currentState.__transform; childWorldTransform.a = local.a * matrix.a + local.b * matrix.c; childWorldTransform.b = local.a * matrix.b + local.b * matrix.d; childWorldTransform.c = local.c * matrix.a + local.d * matrix.c; childWorldTransform.d = local.c * matrix.b + local.d * matrix.d; childWorldTransform.tx = local.tx * matrix.a + local.ty * matrix.c + matrix.tx; childWorldTransform.ty = local.tx * matrix.b + local.ty * matrix.d + matrix.ty; this.__currentState.__getRenderBounds(rect,childWorldTransform); openfl_geom_Matrix.__pool.release(childWorldTransform); } ,__getCursor: function() { if(this.useHandCursor && !this.__ignoreEvent && this.enabled) { return "button"; } else { return null; } } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { var hitTest = false; if(this.get_hitTestState() != null) { if(this.get_hitTestState().__hitTest(x,y,shapeFlag,stack,interactiveOnly,hitObject)) { if(stack != null) { if(stack.length == 0) { stack[0] = hitObject; } else { stack[stack.length - 1] = hitObject; } } hitTest = !interactiveOnly || this.mouseEnabled; } } else if(this.__currentState != null) { if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled || this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) { hitTest = false; } else if(this.__currentState.__hitTest(x,y,shapeFlag,stack,interactiveOnly,hitObject)) { hitTest = interactiveOnly; } } if(stack != null) { while(stack.length > 1 && stack[stack.length - 1] == stack[stack.length - 2]) stack.pop(); } return hitTest; } ,__hitTestMask: function(x,y) { var hitTest = false; if(this.__currentState.__hitTestMask(x,y)) { hitTest = true; } return hitTest; } ,__setStageReference: function(stage) { openfl_display_InteractiveObject.prototype.__setStageReference.call(this,stage); if(this.__currentState != null) { this.__currentState.__setStageReference(stage); } if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) { this.get_hitTestState().__setStageReference(stage); } } ,__setTransformDirty: function() { openfl_display_InteractiveObject.prototype.__setTransformDirty.call(this); if(this.__currentState != null) { this.__currentState.__setTransformDirty(); } if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) { this.get_hitTestState().__setTransformDirty(); } } ,__update: function(transformOnly,updateChildren) { openfl_display_InteractiveObject.prototype.__update.call(this,transformOnly,updateChildren); if(updateChildren) { if(this.__currentState != null) { this.__currentState.__update(transformOnly,true); } if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) { this.get_hitTestState().__update(transformOnly,true); } } } ,__updateTransforms: function(overrideTransform) { openfl_display_InteractiveObject.prototype.__updateTransforms.call(this,overrideTransform); if(this.__currentState != null) { this.__currentState.__updateTransforms(); } if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) { this.get_hitTestState().__updateTransforms(); } } ,get_downState: function() { return this.__downState; } ,set_downState: function(downState) { if(this.__downState != null && this.__currentState == this.__downState) { this.set___currentState(this.__downState); } return this.__downState = downState; } ,get_hitTestState: function() { return this.__hitTestState; } ,set_hitTestState: function(hitTestState) { if(this.__hitTestState != null && this.__hitTestState != hitTestState) { if(this.__hitTestState != this.get_downState() && this.__hitTestState != this.get_upState() && this.__hitTestState != this.get_overState()) { this.__hitTestState.__renderParent = null; } } if(hitTestState != null) { hitTestState.__renderParent = this; if(!hitTestState.__renderDirty) { hitTestState.__renderDirty = true; hitTestState.__setParentRenderDirty(); } } return this.__hitTestState = hitTestState; } ,get_overState: function() { return this.__overState; } ,set_overState: function(overState) { if(this.__overState != null && this.__currentState == this.__overState) { this.set___currentState(overState); } return this.__overState = overState; } ,get_soundTransform: function() { if(this.__soundTransform == null) { this.__soundTransform = new openfl_media_SoundTransform(); } return new openfl_media_SoundTransform(this.__soundTransform.volume,this.__soundTransform.pan); } ,set_soundTransform: function(value) { this.__soundTransform = new openfl_media_SoundTransform(value.volume,value.pan); return value; } ,get_upState: function() { return this.__upState; } ,set_upState: function(upState) { if(this.__upState != null && this.__currentState == this.__upState) { this.set___currentState(upState); } return this.__upState = upState; } ,set___currentState: function(value) { if(this.__currentState != null && this.__currentState != this.get_hitTestState()) { this.__currentState.__renderParent = null; } if(value != null && value.parent != null) { value.parent.removeChild(value); } if(openfl_display_DisplayObject.__supportDOM && this.__previousStates == null) { this.__previousStates = openfl_Vector.toObjectVector(null); } if(value != this.__currentState) { if(openfl_display_DisplayObject.__supportDOM) { if(this.__currentState != null) { this.__currentState.__setStageReference(null); this.__previousStates.push(this.__currentState); } var index = this.__previousStates.indexOf(value,0); if(index > -1) { var this1 = this.__previousStates; this1.__tempIndex = index; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; this1.insertAt(this1.__tempIndex,item); this1.__tempIndex++; } this1.splice(this1.__tempIndex,1); } } if(value != null) { value.__renderParent = this; if(!value.__renderDirty) { value.__renderDirty = true; value.__setParentRenderDirty(); } } if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } this.__currentState = value; return value; } ,__this_onMouseDown: function(event) { if(this.enabled) { this.set___currentState(this.get_downState()); } } ,__this_onMouseOut: function(event) { this.__ignoreEvent = false; if(this.get_upState() != this.__currentState) { this.set___currentState(this.get_upState()); } } ,__this_onMouseOver: function(event) { if(event.buttonDown) { this.__ignoreEvent = true; } if(this.get_overState() != this.__currentState && this.get_overState() != null && !this.__ignoreEvent && this.enabled) { this.set___currentState(this.get_overState()); } } ,__this_onMouseUp: function(event) { this.__ignoreEvent = false; if(this.enabled && this.get_overState() != null) { this.set___currentState(this.get_overState()); } else { this.set___currentState(this.get_upState()); } } ,__class__: openfl_display_SimpleButton ,__properties__: $extend(openfl_display_InteractiveObject.prototype.__properties__,{set___currentState:"set___currentState",set_upState:"set_upState",get_upState:"get_upState",set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform",set_overState:"set_overState",get_overState:"get_overState",set_hitTestState:"set_hitTestState",get_hitTestState:"get_hitTestState",set_downState:"set_downState",get_downState:"get_downState"}) }); var openfl_display_SpreadMethod = {}; openfl_display_SpreadMethod.fromInt = function(value) { return value; }; openfl_display_SpreadMethod.fromString = function(value) { switch(value) { case "pad": return 0; case "reflect": return 1; case "repeat": return 2; default: return null; } }; openfl_display_SpreadMethod.toInt = function(this1) { return this1; }; openfl_display_SpreadMethod.toString = function(this1) { switch(this1) { 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.__drawableType = 5; this.set_name(null); this.__color = -1; this.__colorSplit = [255,255,255]; this.__colorString = "#FFFFFF"; this.__contentsScaleFactor = 1; this.__currentTabOrderIndex = 0; this.__deltaTime = 0; this.__displayState = 2; this.__mouseX = 0; this.__mouseY = 0; this.__lastClickTime = 0; this.__logicalWidth = 0; this.__logicalHeight = 0; this.__displayMatrix = new openfl_geom_Matrix(); this.__displayRect = new openfl_geom_Rectangle(); this.__renderDirty = true; this.stage3Ds = openfl_Vector.toObjectVector(null); this.stage3Ds.push(new openfl_display_Stage3D(this)); this.stage3Ds.push(new openfl_display_Stage3D(this)); this.stage3Ds.push(new openfl_display_Stage3D(this)); this.stage3Ds.push(new openfl_display_Stage3D(this)); this.stage = this; this.align = 6; this.allowsFullScreen = true; this.allowsFullScreenInteractive = true; this.__quality = 1; this.__scaleMode = 2; this.showDefaultContextMenu = true; this.softKeyboardRect = new openfl_geom_Rectangle(); this.stageFocusRect = true; this.__macKeyboard = /AppleWebKit/.test (navigator.userAgent) && /Mobile\/\w+/.test (navigator.userAgent) || /Mac/.test (navigator.platform); this.__clearBeforeRender = true; this.__forceRender = false; this.__stack = []; this.__rollOutStack = []; this.__mouseOutStack = []; this.__touchData = new haxe_ds_IntMap(); if(openfl_Lib.get_current().__loaderInfo == null) { openfl_Lib.get_current().__loaderInfo = openfl_display_LoaderInfo.create(null); openfl_Lib.get_current().__loaderInfo.content = openfl_Lib.get_current(); } this.__uncaughtErrorEvents = openfl_Lib.get_current().__loaderInfo.uncaughtErrorEvents; this.application = $window.application; this.window = $window; this.set_color(color); this.__contentsScaleFactor = $window.__scale; this.__wasFullscreen = $window.__fullscreen; this.__resize(); if(openfl_Lib.get_current().stage == null) { this.stage.addChild(openfl_Lib.get_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 ,context3D: null ,showDefaultContextMenu: null ,softKeyboardRect: null ,stage3Ds: null ,stageFocusRect: null ,stageHeight: null ,stageWidth: null ,window: null ,__cacheFocus: null ,__clearBeforeRender: null ,__color: null ,__colorSplit: null ,__colorString: null ,__contentsScaleFactor: null ,__currentTabOrderIndex: null ,__deltaTime: null ,__dirty: null ,__displayMatrix: null ,__displayRect: null ,__displayState: null ,__dragBounds: null ,__dragObject: null ,__dragOffsetX: null ,__dragOffsetY: null ,__focus: null ,__forceRender: null ,__fullscreen: null ,__fullScreenSourceRect: null ,__invalidated: null ,__lastClickTime: null ,__lastClickTarget: null ,__logicalWidth: null ,__logicalHeight: null ,__macKeyboard: null ,__mouseDownLeft: null ,__mouseDownMiddle: null ,__mouseDownRight: null ,__mouseOutStack: null ,__mouseOverTarget: null ,__mouseX: null ,__mouseY: null ,__pendingMouseEvent: null ,__pendingMouseX: null ,__pendingMouseY: null ,__quality: null ,__renderer: null ,__rendering: null ,__rollOutStack: null ,__scaleMode: null ,__stack: null ,__touchData: null ,__transparent: null ,__uncaughtErrorEvents: null ,__wasDirty: null ,__wasFullscreen: null ,__primaryTouch: null ,invalidate: function() { this.__invalidated = true; this.__renderDirty = true; } ,localToGlobal: function(pos) { return pos.clone(); } ,__broadcastEvent: function(event) { if(Object.prototype.hasOwnProperty.call(openfl_display_DisplayObject.__broadcastEvents.h,event.type)) { var dispatchers = openfl_display_DisplayObject.__broadcastEvents.h[event.type]; var _g = 0; while(_g < dispatchers.length) { var dispatcher = dispatchers[_g]; ++_g; if(dispatcher.stage == this || dispatcher.stage == null) { if(this.__uncaughtErrorEvents.__enabled) { try { dispatcher.__dispatch(event); } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var e = haxe_Exception.caught(_g1).unwrap(); this.__handleError(e); } } else { dispatcher.__dispatch(event); } } } } } ,__createRenderer: function() { var windowWidth = this.window.__width * this.window.__scale | 0; var windowHeight = this.window.__height * this.window.__scale | 0; switch(this.window.context.type) { case "cairo": break; case "canvas": this.__renderer = new openfl_display_CanvasRenderer(this.window.context.canvas2D); break; case "dom": this.__renderer = new openfl_display_DOMRenderer(this.window.context.dom); break; case "opengl":case "opengles":case "webgl": this.context3D = new openfl_display3D_Context3D(this); this.context3D.configureBackBuffer(this.stageWidth,this.stageHeight,0,true,true,true); this.context3D.present(); this.__renderer = new openfl_display_OpenGLRenderer(this.context3D); break; default: } if(this.__renderer != null) { var tmp = this.get_quality(); this.__renderer.__allowSmoothing = tmp != 2; this.__renderer.__pixelRatio = this.window.__scale; this.__renderer.__worldTransform = this.__displayMatrix; this.__renderer.__stage = this; this.__renderer.__resize(windowWidth,windowHeight); } } ,__dispatchEvent: function(event) { var result; if(this.__uncaughtErrorEvents.__enabled) { try { result = openfl_display_DisplayObjectContainer.prototype.__dispatchEvent.call(this,event); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); result = false; } } else { result = openfl_display_DisplayObjectContainer.prototype.__dispatchEvent.call(this,event); } return result; } ,__dispatchPendingMouseEvent: function() { if(this.__pendingMouseEvent) { this.__onMouse("mouseMove",this.__pendingMouseX,this.__pendingMouseY,0); this.__pendingMouseEvent = false; } } ,__dispatchStack: function(event,stack) { if(this.__uncaughtErrorEvents.__enabled) { try { var target; var length = stack.length; if(length == 0) { event.eventPhase = 2; target = event.target; target.__dispatch(event); } else { event.eventPhase = 1; event.target = stack[stack.length - 1]; var _g = 0; var _g1 = length - 1; while(_g < _g1) { var i = _g++; stack[i].__dispatch(event); if(event.__isCanceled) { return; } } event.eventPhase = 2; target = event.target; target.__dispatch(event); if(event.__isCanceled) { return; } if(event.bubbles) { event.eventPhase = 3; var i = length - 2; while(i >= 0) { stack[i].__dispatch(event); if(event.__isCanceled) { return; } --i; } } } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); } } else { var target; var length = stack.length; if(length == 0) { event.eventPhase = 2; target = event.target; target.__dispatch(event); } else { event.eventPhase = 1; event.target = stack[stack.length - 1]; var _g = 0; var _g1 = length - 1; while(_g < _g1) { var i = _g++; stack[i].__dispatch(event); if(event.__isCanceled) { return; } } event.eventPhase = 2; target = event.target; target.__dispatch(event); if(event.__isCanceled) { return; } if(event.bubbles) { event.eventPhase = 3; var i = length - 2; while(i >= 0) { stack[i].__dispatch(event); if(event.__isCanceled) { return; } --i; } } } } } ,__dispatchTarget: function(target,event) { if(this.__uncaughtErrorEvents.__enabled) { try { return target.__dispatchEvent(event); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); return false; } } else { return target.__dispatchEvent(event); } } ,__drag: function(mouse) { var parent = this.__dragObject.parent; if(parent != null) { var _this = parent.__getWorldTransform(); var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { mouse.x = -_this.tx; mouse.y = -_this.ty; } else { var px = 1.0 / norm * (_this.c * (_this.ty - mouse.y) + _this.d * (mouse.x - _this.tx)); mouse.y = 1.0 / norm * (_this.a * (mouse.y - _this.ty) + _this.b * (_this.tx - mouse.x)); mouse.x = px; } } 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); } ,__getInteractive: function(stack) { if(stack != null) { stack.push(this); } return true; } ,__globalToLocal: function(global,local) { if(global != local) { local.copyFrom(global); } return local; } ,__handleError: function(e) { var event = new openfl_events_UncaughtErrorEvent("uncaughtError",true,true,e); try { openfl_Lib.get_current().__loaderInfo.uncaughtErrorEvents.dispatchEvent(event); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } if(!event.__preventDefault) { var message = haxe_CallStack.toString(haxe_CallStack.exceptionStack()); console.log(message); var message = Std.string(e); console.log(message); try { var exc = e; if(exc != null && Object.prototype.hasOwnProperty.call(exc,"stack") && exc.stack != null && exc.stack != "") { console.log(exc.stack); e.stack = exc.stack; } else { var msg = haxe_CallStack.toString(haxe_CallStack.callStack()); console.log(msg); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } throw e; } } ,__onKey: function(type,keyCode,modifier) { this.__dispatchPendingMouseEvent(); openfl_events_MouseEvent.__altKey = lime_ui_KeyModifier.get_altKey(modifier); openfl_events_MouseEvent.__commandKey = lime_ui_KeyModifier.get_metaKey(modifier); openfl_events_MouseEvent.__ctrlKey = lime_ui_KeyModifier.get_ctrlKey(modifier); openfl_events_MouseEvent.__shiftKey = lime_ui_KeyModifier.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 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; case 1073742048:case 1073742049:case 1073742050:case 1073742051: keyLocation = 1; break; case 1073742052:case 1073742053:case 1073742054:case 1073742055: keyLocation = 2; 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 = 13; 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.get_shiftKey(modifier)); if(type == "keyUp" && (keyCode1 == 32 || keyCode1 == 13) && ((this.__focus) instanceof openfl_display_Sprite)) { var sprite = js_Boot.__cast(this.__focus , openfl_display_Sprite); if(sprite.get_buttonMode() && sprite.focusRect == true) { var localPoint = openfl_geom_Point.__pool.get(); var targetPoint = openfl_geom_Point.__pool.get(); targetPoint.x = this.__mouseX; targetPoint.y = this.__mouseY; var clickEvent = openfl_events_MouseEvent.__create("click",0,this.__mouseX,this.__mouseY,sprite.__globalToLocal(targetPoint,localPoint),sprite); this.__dispatchStack(clickEvent,stack); openfl_geom_Point.__pool.release(targetPoint); openfl_geom_Point.__pool.release(localPoint); } } var event = new openfl_events_KeyboardEvent(type,true,true,charCode,keyCode1,keyLocation,this.__macKeyboard ? lime_ui_KeyModifier.get_ctrlKey(modifier) || lime_ui_KeyModifier.get_metaKey(modifier) : lime_ui_KeyModifier.get_ctrlKey(modifier),lime_ui_KeyModifier.get_altKey(modifier),lime_ui_KeyModifier.get_shiftKey(modifier),lime_ui_KeyModifier.get_ctrlKey(modifier),lime_ui_KeyModifier.get_metaKey(modifier)); stack.reverse(); this.__dispatchStack(event,stack); if(event.__preventDefault) { if(type == "keyDown") { this.window.onKeyDown.cancel(); } else { this.window.onKeyUp.cancel(); } } else if(type == "keyDown" && keyCode1 == 9) { var tabStack = []; this.__tabTest(tabStack); var nextIndex = -1; var nextObject = null; var nextOffset = lime_ui_KeyModifier.get_shiftKey(modifier) ? -1 : 1; if(tabStack.length > 1) { haxe_ds_ArraySort.sort(tabStack,function(a,b) { return a.get_tabIndex() - b.get_tabIndex(); }); if(tabStack[tabStack.length - 1].get_tabIndex() != -1) { var i = 0; while(i < tabStack.length) { if(tabStack[i].get_tabIndex() > -1) { if(i > 0) { tabStack.splice(0,i); } break; } ++i; } } if(this.get_focus() != null) { var current = this.get_focus(); var index = tabStack.indexOf(current); while(index == -1 && current != null) { var currentParent = current.parent; if(currentParent != null && currentParent.get_tabChildren()) { var currentIndex = currentParent.getChildIndex(current); if(currentIndex == -1) { current = currentParent; continue; } var i = currentIndex + nextOffset; while(lime_ui_KeyModifier.get_shiftKey(modifier) ? i >= 0 : i < currentParent.get_numChildren()) { var sibling = currentParent.getChildAt(i); if(((sibling) instanceof openfl_display_InteractiveObject)) { var interactiveSibling = js_Boot.__cast(sibling , openfl_display_InteractiveObject); index = tabStack.indexOf(interactiveSibling); if(index != -1) { nextOffset = 0; break; } } i += nextOffset; } } else if(lime_ui_KeyModifier.get_shiftKey(modifier)) { index = tabStack.indexOf(currentParent); if(index != -1) { nextOffset = 0; } } current = currentParent; } if(index < 0) { nextIndex = 0; } else { nextIndex = index + nextOffset; } } else { nextIndex = this.__currentTabOrderIndex; } } else if(tabStack.length == 1) { nextObject = tabStack[0]; if(this.get_focus() == nextObject) { nextObject = null; } } var cancelTab = nextIndex >= 0 && nextIndex < tabStack.length; if(tabStack.length == 1 || tabStack.length == 0 && this.get_focus() != null) { nextIndex = 0; } else if(tabStack.length > 1) { if(nextIndex < 0) { nextIndex += tabStack.length; } nextIndex %= tabStack.length; nextObject = tabStack[nextIndex]; if(nextObject == this.get_focus()) { nextIndex += nextOffset; if(nextIndex < 0) { nextIndex += tabStack.length; } nextIndex %= tabStack.length; nextObject = tabStack[nextIndex]; } } var focusEvent = null; if(this.get_focus() != null) { focusEvent = new openfl_events_FocusEvent("keyFocusChange",true,true,nextObject,lime_ui_KeyModifier.get_shiftKey(modifier),0); stack = []; this.get_focus().__getInteractive(stack); stack.reverse(); this.__dispatchStack(focusEvent,stack); if(focusEvent.isDefaultPrevented()) { this.window.onKeyDown.cancel(); } } if(focusEvent == null || !focusEvent.isDefaultPrevented()) { this.__currentTabOrderIndex = nextIndex; if(nextObject != null) { this.set_focus(nextObject); } if(cancelTab) { this.window.onKeyDown.cancel(); } } } } } ,__onLimeCreateWindow: function($window) { if(this.window != $window) { return; } var _g = this; var window1 = $window; var tmp = function() { _g.__onLimeWindowActivate(window1); }; $window.onActivate.add(tmp); var _g1 = this; var window2 = $window; var tmp = function() { _g1.__onLimeWindowClose(window2); }; $window.onClose.add(tmp,false,-9000); var _g2 = this; var window3 = $window; var tmp = function() { _g2.__onLimeWindowDeactivate(window3); }; $window.onDeactivate.add(tmp); var _g3 = this; var window4 = $window; var tmp = function(file) { _g3.__onLimeWindowDropFile(window4,file); }; $window.onDropFile.add(tmp); var _g4 = this; var window5 = $window; var tmp = function() { _g4.__onLimeWindowEnter(window5); }; $window.onEnter.add(tmp); var _g5 = this; var window6 = $window; var tmp = function() { _g5.__onLimeWindowExpose(window6); }; $window.onExpose.add(tmp); var _g6 = this; var window7 = $window; var tmp = function() { _g6.__onLimeWindowFocusIn(window7); }; $window.onFocusIn.add(tmp); var _g7 = this; var window8 = $window; var tmp = function() { _g7.__onLimeWindowFocusOut(window8); }; $window.onFocusOut.add(tmp); var _g8 = this; var window9 = $window; var tmp = function() { _g8.__onLimeWindowFullscreen(window9); }; $window.onFullscreen.add(tmp); var _g9 = this; var window10 = $window; var tmp = function(keyCode,modifier) { _g9.__onLimeKeyDown(window10,keyCode,modifier); }; $window.onKeyDown.add(tmp); var _g10 = this; var window11 = $window; var tmp = function(keyCode,modifier) { _g10.__onLimeKeyUp(window11,keyCode,modifier); }; $window.onKeyUp.add(tmp); var _g11 = this; var window12 = $window; var tmp = function() { _g11.__onLimeWindowLeave(window12); }; $window.onLeave.add(tmp); var _g12 = this; var window13 = $window; var tmp = function() { _g12.__onLimeWindowMinimize(window13); }; $window.onMinimize.add(tmp); var _g13 = this; var window14 = $window; var tmp = function(x,y,button) { _g13.__onLimeMouseDown(window14,x,y,button); }; $window.onMouseDown.add(tmp); var _g14 = this; var window15 = $window; var tmp = function(x,y) { _g14.__onLimeMouseMove(window15,x,y); }; $window.onMouseMove.add(tmp); var _g15 = this; var window16 = $window; var tmp = function(x,y) { _g15.__onLimeMouseMoveRelative(window16,x,y); }; $window.onMouseMoveRelative.add(tmp); var _g16 = this; var window17 = $window; var tmp = function(x,y,button) { _g16.__onLimeMouseUp(window17,x,y,button); }; $window.onMouseUp.add(tmp); var _g17 = this; var window18 = $window; var tmp = function(deltaX,deltaY,deltaMode) { _g17.__onLimeMouseWheel(window18,deltaX,deltaY,deltaMode); }; $window.onMouseWheel.add(tmp); var _g18 = this; var window19 = $window; var tmp = function(x,y) { _g18.__onLimeWindowMove(window19,x,y); }; $window.onMove.add(tmp); $window.onRender.add($bind(this,this.__onLimeRender)); $window.onRenderContextLost.add($bind(this,this.__onLimeRenderContextLost)); $window.onRenderContextRestored.add($bind(this,this.__onLimeRenderContextRestored)); var _g19 = this; var window20 = $window; var tmp = function(width,height) { _g19.__onLimeWindowResize(window20,width,height); }; $window.onResize.add(tmp); var _g20 = this; var window21 = $window; var tmp = function() { _g20.__onLimeWindowRestore(window21); }; $window.onRestore.add(tmp); var _g21 = this; var window22 = $window; var tmp = function(text,start,length) { _g21.__onLimeTextEdit(window22,text,start,length); }; $window.onTextEdit.add(tmp); var _g22 = this; var window23 = $window; var tmp = function(text) { _g22.__onLimeTextInput(window23,text); }; $window.onTextInput.add(tmp); this.__onLimeWindowCreate($window); } ,__onLimeGamepadAxisMove: function(gamepad,axis,value) { if(this.__uncaughtErrorEvents.__enabled) { try { openfl_ui_GameInput.__onGamepadAxisMove(gamepad,axis,value); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); } } else { openfl_ui_GameInput.__onGamepadAxisMove(gamepad,axis,value); } } ,__onLimeGamepadButtonDown: function(gamepad,button) { if(this.__uncaughtErrorEvents.__enabled) { try { openfl_ui_GameInput.__onGamepadButtonDown(gamepad,button); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); } } else { openfl_ui_GameInput.__onGamepadButtonDown(gamepad,button); } } ,__onLimeGamepadButtonUp: function(gamepad,button) { if(this.__uncaughtErrorEvents.__enabled) { try { openfl_ui_GameInput.__onGamepadButtonUp(gamepad,button); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); } } else { openfl_ui_GameInput.__onGamepadButtonUp(gamepad,button); } } ,__onLimeGamepadConnect: function(gamepad) { if(this.__uncaughtErrorEvents.__enabled) { try { openfl_ui_GameInput.__onGamepadConnect(gamepad); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); } } else { openfl_ui_GameInput.__onGamepadConnect(gamepad); } var _g = this; var gamepad1 = gamepad; var tmp = function(axis,value) { _g.__onLimeGamepadAxisMove(gamepad1,axis,value); }; gamepad.onAxisMove.add(tmp); var _g1 = this; var gamepad2 = gamepad; var tmp = function(button) { _g1.__onLimeGamepadButtonDown(gamepad2,button); }; gamepad.onButtonDown.add(tmp); var _g2 = this; var gamepad3 = gamepad; var tmp = function(button) { _g2.__onLimeGamepadButtonUp(gamepad3,button); }; gamepad.onButtonUp.add(tmp); var _g3 = this; var gamepad4 = gamepad; var tmp = function() { _g3.__onLimeGamepadDisconnect(gamepad4); }; gamepad.onDisconnect.add(tmp); } ,__onLimeGamepadDisconnect: function(gamepad) { if(this.__uncaughtErrorEvents.__enabled) { try { openfl_ui_GameInput.__onGamepadDisconnect(gamepad); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); this.__handleError(e); } } else { openfl_ui_GameInput.__onGamepadDisconnect(gamepad); } } ,__onLimeKeyDown: function($window,keyCode,modifier) { if(this.window == null || this.window != $window) { return; } this.__onKey("keyDown",keyCode,modifier); } ,__onLimeKeyUp: function($window,keyCode,modifier) { if(this.window == null || this.window != $window) { return; } this.__onKey("keyUp",keyCode,modifier); } ,__onLimeModuleExit: function(code) { if(this.window != null) { var event = null; event = new openfl_events_Event("deactivate"); this.__broadcastEvent(event); } } ,__onLimeMouseDown: function($window,x,y,button) { if(this.window == null || this.window != $window) { return; } this.__dispatchPendingMouseEvent(); 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); if(!this.showDefaultContextMenu && button == 2) { $window.onMouseDown.cancel(); } } ,__onLimeMouseMove: function($window,x,y) { if(this.window == null || this.window != $window) { return; } this.__pendingMouseEvent = true; this.__pendingMouseX = x * $window.__scale | 0; this.__pendingMouseY = y * $window.__scale | 0; } ,__onLimeMouseMoveRelative: function($window,x,y) { } ,__onLimeMouseUp: function($window,x,y,button) { if(this.window == null || this.window != $window) { return; } this.__dispatchPendingMouseEvent(); 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); if(!this.showDefaultContextMenu && button == 2) { $window.onMouseUp.cancel(); } } ,__onLimeMouseWheel: function($window,deltaX,deltaY,deltaMode) { if(this.window == null || this.window != $window) { return; } this.__dispatchPendingMouseEvent(); if(deltaMode == lime_ui_MouseWheelMode.PIXELS) { this.__onMouseWheel(deltaX * $window.__scale | 0,deltaY * $window.__scale | 0,deltaMode); } else { this.__onMouseWheel(deltaX | 0,deltaY | 0,deltaMode); } } ,__onLimeRender: function(context) { if(this.__rendering) { return; } this.__rendering = true; var event = null; this.__broadcastEvent(new openfl_events_Event("enterFrame")); this.__broadcastEvent(new openfl_events_Event("frameConstructed")); this.__broadcastEvent(new openfl_events_Event("exitFrame")); this.__renderable = true; this.__enterFrame(this.__deltaTime); this.__deltaTime = 0; var shouldRender = this.__renderer != null && (this.__renderDirty || this.__forceRender); if(this.__invalidated && shouldRender) { this.__invalidated = false; event = new openfl_events_Event("render"); this.__broadcastEvent(event); } this.__update(false,true); if(this.__renderer != null) { if(this.context3D != null) { var stage3D = this.stage3Ds.iterator(); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); this.context3D.__renderStage3D(stage3D1); } if(this.context3D.__present) { shouldRender = true; } } if(shouldRender) { var tmp = this.__renderer.__type == "cairo"; if(this.context3D == null) { this.__renderer.__clear(); } this.__renderer.__render(this); } else if(this.context3D == null) { this.window.onRender.cancel(); } if(this.context3D != null) { if(!this.context3D.__present) { this.window.onRender.cancel(); } else { if(!this.__renderer.__cleared) { this.__renderer.__clear(); } this.context3D.__present = false; this.context3D.__cleared = false; } } this.__renderer.__cleared = false; } this.__rendering = false; } ,__onLimeRenderContextLost: function() { this.__renderer = null; this.context3D = null; var stage3D = this.stage3Ds.iterator(); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); stage3D1.__lostContext(); } } ,__onLimeRenderContextRestored: function(context) { this.__createRenderer(); var stage3D = this.stage3Ds.iterator(); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); stage3D1.__restoreContext(); } } ,__onLimeTextEdit: function($window,text,start,length) { } ,__onLimeTextInput: 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,true,text); if(stack.length > 0) { stack.reverse(); this.__dispatchStack(event,stack); } else { this.__dispatchEvent(event); } if(event.isDefaultPrevented()) { $window.onTextInput.cancel(); } } ,__onLimeTouchCancel: function(touch) { var isPrimaryTouchPoint = this.__primaryTouch == touch; if(isPrimaryTouchPoint) { this.__primaryTouch = null; } this.__onTouch("touchEnd",touch,isPrimaryTouchPoint); } ,__onLimeTouchMove: function(touch) { this.__onTouch("touchMove",touch,this.__primaryTouch == touch); } ,__onLimeTouchEnd: function(touch) { var isPrimaryTouchPoint = this.__primaryTouch == touch; if(isPrimaryTouchPoint) { this.__primaryTouch = null; } this.__onTouch("touchEnd",touch,isPrimaryTouchPoint); } ,__onLimeTouchStart: function(touch) { if(this.__primaryTouch == null) { this.__primaryTouch = touch; } this.__onTouch("touchBegin",touch,this.__primaryTouch == touch); } ,__onLimeUpdate: function(deltaTime) { this.__deltaTime = deltaTime; this.__dispatchPendingMouseEvent(); } ,__onLimeWindowActivate: function($window) { if(this.window == null || this.window != $window) { return; } } ,__onLimeWindowClose: function($window) { if(this.window == $window) { this.window = null; } this.__primaryTouch = null; var event = null; event = new openfl_events_Event("deactivate"); this.__broadcastEvent(event); } ,__onLimeWindowCreate: function($window) { if(this.window == null || this.window != $window) { return; } if($window.context != null) { this.__createRenderer(); } } ,__onLimeWindowDeactivate: function($window) { if(this.window == null || this.window != $window) { return; } } ,__onLimeWindowDropFile: function($window,file) { } ,__onLimeWindowEnter: function($window) { } ,__onLimeWindowExpose: function($window) { if(this.window == null || this.window != $window) { return; } this.__renderDirty = true; } ,__onLimeWindowFocusIn: function($window) { if(this.window == null || this.window != $window) { return; } this.__renderDirty = true; var event = null; event = new openfl_events_Event("activate"); this.__broadcastEvent(event); this.set_focus(this.__cacheFocus); } ,__onLimeWindowFocusOut: function($window) { if(this.window == null || this.window != $window) { return; } this.__primaryTouch = null; var event = null; event = new openfl_events_Event("deactivate"); this.__broadcastEvent(event); var currentFocus = this.get_focus(); this.set_focus(null); this.__cacheFocus = currentFocus; openfl_events_MouseEvent.__altKey = false; openfl_events_MouseEvent.__commandKey = false; openfl_events_MouseEvent.__ctrlKey = false; openfl_events_MouseEvent.__shiftKey = false; } ,__onLimeWindowFullscreen: function($window) { if(this.window == null || this.window != $window) { return; } this.__resize(); if(!this.__wasFullscreen) { this.__wasFullscreen = true; if(this.__displayState == 2) { this.__displayState = 1; } this.__dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true)); } } ,__onLimeWindowLeave: function($window) { if(this.window == null || this.window != $window || openfl_events_MouseEvent.__buttonDown) { return; } this.__dispatchPendingMouseEvent(); var event = null; event = new openfl_events_Event("mouseLeave"); this.__dispatchEvent(event); } ,__onLimeWindowMinimize: function($window) { if(this.window == null || this.window != $window) { return; } } ,__onLimeWindowMove: function($window,x,y) { } ,__onLimeWindowResize: function($window,width,height) { if(this.window == null || this.window != $window) { return; } this.__resize(); if(this.__wasFullscreen && !$window.__fullscreen) { this.__wasFullscreen = false; this.__displayState = 2; this.__dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,false,true)); } } ,__onLimeWindowRestore: function($window) { if(this.window == null || this.window != $window) { return; } if(this.__wasFullscreen && !$window.__fullscreen) { this.__wasFullscreen = false; this.__displayState = 2; this.__dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,false,true)); } } ,__onMouse: function(type,x,y,button) { if(button > 2) { return; } var targetPoint = openfl_geom_Point.__pool.get(); targetPoint.setTo(x,y); var _this = this.__displayMatrix; var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { targetPoint.x = -_this.tx; targetPoint.y = -_this.ty; } else { var px = 1.0 / norm * (_this.c * (_this.ty - targetPoint.y) + _this.d * (targetPoint.x - _this.tx)); targetPoint.y = 1.0 / norm * (_this.a * (targetPoint.y - _this.ty) + _this.b * (_this.tx - targetPoint.x)); targetPoint.x = px; } this.__mouseX = targetPoint.x; this.__mouseY = targetPoint.y; var stack = []; var target = null; if(this.__hitTest(this.__mouseX,this.__mouseY,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 "middleMouseDown": this.__mouseDownMiddle = target; break; case "middleMouseUp": if(this.__mouseDownMiddle == target) { clickType = "middleClick"; } this.__mouseDownMiddle = null; break; case "mouseDown": if(this.get_focus() != null) { if(this.get_focus() != target) { var focusEvent = new openfl_events_FocusEvent("mouseFocusChange",true,true,target,false,0); this.get_focus().dispatchEvent(focusEvent); if(!focusEvent.isDefaultPrevented()) { if(target.__allowMouseFocus()) { this.set_focus(target); } else { this.set_focus(null); } } } } else if(target.__allowMouseFocus()) { this.set_focus(target); } else { this.set_focus(null); } this.__mouseDownLeft = target; openfl_events_MouseEvent.__buttonDown = true; break; case "mouseUp": if(this.__mouseDownLeft != null) { openfl_events_MouseEvent.__buttonDown = false; if(this.__mouseDownLeft == target) { clickType = "click"; } else { var event = null; event = openfl_events_MouseEvent.__create("releaseOutside",1,this.__mouseX,this.__mouseY,new openfl_geom_Point(this.__mouseX,this.__mouseY),this); this.__mouseDownLeft.dispatchEvent(event); } this.__mouseDownLeft = null; } break; case "rightMouseDown": this.__mouseDownRight = target; break; case "rightMouseUp": if(this.__mouseDownRight == target) { clickType = "rightClick"; } this.__mouseDownRight = null; break; default: } var localPoint = openfl_geom_Point.__pool.get(); var event = null; event = openfl_events_MouseEvent.__create(type,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event,stack); if(clickType != null) { event = openfl_events_MouseEvent.__create(clickType,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event,stack); if(type == "mouseUp" && target.doubleClickEnabled) { var currentTime = openfl_Lib.getTimer(); if(currentTime - this.__lastClickTime < 500 && target == this.__lastClickTarget) { event = openfl_events_MouseEvent.__create("doubleClick",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event,stack); this.__lastClickTime = 0; this.__lastClickTarget = null; } else { this.__lastClickTarget = target; this.__lastClickTime = currentTime; } } } if(openfl_ui_Mouse.__cursor == "auto" && !openfl_ui_Mouse.__hidden) { var cursor = null; if(this.__mouseDownLeft != null) { cursor = this.__mouseDownLeft.__getCursor(); } else { var _g = 0; while(_g < stack.length) { var target1 = stack[_g]; ++_g; cursor = target1.__getCursor(); if(cursor != null && this.window != null) { this.window.set_cursor(openfl_ui_MouseCursor.toLimeCursor(cursor)); break; } } } if(cursor == null && this.window != null) { this.window.set_cursor(lime_ui_MouseCursor.ARROW); } } var event; if(target != this.__mouseOverTarget) { if(this.__mouseOverTarget != null) { event = openfl_events_MouseEvent.__create("mouseOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget); this.__dispatchStack(event,this.__mouseOutStack); } } var item; var i = 0; while(i < this.__rollOutStack.length) { item = this.__rollOutStack[i]; if(stack.indexOf(item) == -1) { HxOverrides.remove(this.__rollOutStack,item); event = openfl_events_MouseEvent.__create("rollOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),item); event.bubbles = false; this.__dispatchTarget(item,event); } else { ++i; } } var _g = 0; while(_g < stack.length) { var item = stack[_g]; ++_g; if(this.__rollOutStack.indexOf(item) == -1 && this.__mouseOverTarget != null) { if(item.hasEventListener("rollOver")) { event = openfl_events_MouseEvent.__create("rollOver",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),item); event.bubbles = false; this.__dispatchTarget(item,event); } if(item.hasEventListener("rollOut") || item.hasEventListener("rollOver")) { this.__rollOutStack.push(item); } } } if(target != this.__mouseOverTarget) { if(target != null) { event = openfl_events_MouseEvent.__create("mouseOver",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target); this.__dispatchStack(event,stack); } this.__mouseOverTarget = target; this.__mouseOutStack = stack; } if(this.__dragObject != null) { this.__drag(targetPoint); var dropTarget = null; if(this.__mouseOverTarget == this.__dragObject) { var cacheMouseEnabled = this.__dragObject.mouseEnabled; var cacheMouseChildren = this.__dragObject.mouseChildren; this.__dragObject.mouseEnabled = false; this.__dragObject.mouseChildren = false; var stack = []; if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) { dropTarget = stack[stack.length - 1]; } this.__dragObject.mouseEnabled = cacheMouseEnabled; this.__dragObject.mouseChildren = cacheMouseChildren; } else if(this.__mouseOverTarget != this) { dropTarget = this.__mouseOverTarget; } this.__dragObject.dropTarget = dropTarget; } openfl_geom_Point.__pool.release(targetPoint); openfl_geom_Point.__pool.release(localPoint); } ,__onMouseWheel: function(deltaX,deltaY,deltaMode) { var x = this.__mouseX; var y = this.__mouseY; var stack = []; var target = null; if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) { target = stack[stack.length - 1]; } else { target = this; stack = [this]; } if(target == null) { target = this; } var targetPoint = openfl_geom_Point.__pool.get(); targetPoint.setTo(x,y); var _this = this.__displayMatrix; var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { targetPoint.x = -_this.tx; targetPoint.y = -_this.ty; } else { var px = 1.0 / norm * (_this.c * (_this.ty - targetPoint.y) + _this.d * (targetPoint.x - _this.tx)); targetPoint.y = 1.0 / norm * (_this.a * (targetPoint.y - _this.ty) + _this.b * (_this.tx - targetPoint.x)); targetPoint.x = px; } var delta = deltaY | 0; var event = openfl_events_MouseEvent.__create("mouseWheel",0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,targetPoint),target,delta); event.cancelable = true; this.__dispatchStack(event,stack); if(event.isDefaultPrevented()) { this.window.onMouseWheel.cancel(); } openfl_geom_Point.__pool.release(targetPoint); } ,__onTouch: function(type,touch,isPrimaryTouchPoint) { var targetPoint = openfl_geom_Point.__pool.get(); targetPoint.setTo(Math.round(touch.x * this.window.__width * this.window.__scale),Math.round(touch.y * this.window.__height * this.window.__scale)); var _this = this.__displayMatrix; var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { targetPoint.x = -_this.tx; targetPoint.y = -_this.ty; } else { var px = 1.0 / norm * (_this.c * (_this.ty - targetPoint.y) + _this.d * (targetPoint.x - _this.tx)); targetPoint.y = 1.0 / norm * (_this.a * (targetPoint.y - _this.ty) + _this.b * (_this.tx - targetPoint.x)); targetPoint.x = px; } var touchX = targetPoint.x; var touchY = targetPoint.y; var stack = []; var target = null; if(this.__hitTest(touchX,touchY,false,stack,true,this)) { target = stack[stack.length - 1]; } else { target = this; stack = [this]; } if(target == null) { target = this; } var touchId = touch.id; var touchData = null; if(this.__touchData.h.hasOwnProperty(touchId)) { touchData = this.__touchData.h[touchId]; } else { touchData = openfl_utils__$internal_TouchData.__pool.get(); touchData.reset(); touchData.touch = touch; this.__touchData.h[touchId] = touchData; } var touchType = null; var releaseTouchData = false; switch(type) { case "touchBegin": touchData.touchDownTarget = target; break; case "touchEnd": if(touchData.touchDownTarget == target) { touchType = "touchTap"; } touchData.touchDownTarget = null; releaseTouchData = true; break; default: } var localPoint = openfl_geom_Point.__pool.get(); var touchEvent = openfl_events_TouchEvent.__create(type,null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target); touchEvent.touchPointID = touchId; touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint; touchEvent.pressure = touch.pressure; this.__dispatchStack(touchEvent,stack); if(touchType != null) { touchEvent = openfl_events_TouchEvent.__create(touchType,null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target); touchEvent.touchPointID = touchId; touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint; touchEvent.pressure = touch.pressure; this.__dispatchStack(touchEvent,stack); } var touchOverTarget = touchData.touchOverTarget; if(target != touchOverTarget && touchOverTarget != null) { touchEvent = openfl_events_TouchEvent.__create("touchOut",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),touchOverTarget); touchEvent.touchPointID = touchId; touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint; touchEvent.pressure = touch.pressure; this.__dispatchTarget(touchOverTarget,touchEvent); } var touchOutStack = touchData.rollOutStack; var item; var i = 0; while(i < touchOutStack.length) { item = touchOutStack[i]; if(stack.indexOf(item) == -1) { HxOverrides.remove(touchOutStack,item); touchEvent = openfl_events_TouchEvent.__create("touchRollOut",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),touchOverTarget); touchEvent.touchPointID = touchId; touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint; touchEvent.bubbles = false; touchEvent.pressure = touch.pressure; this.__dispatchTarget(item,touchEvent); } else { ++i; } } var _g = 0; while(_g < stack.length) { var item = stack[_g]; ++_g; if(touchOutStack.indexOf(item) == -1) { if(item.hasEventListener("touchRollOver")) { touchEvent = openfl_events_TouchEvent.__create("touchRollOver",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),item); touchEvent.touchPointID = touchId; touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint; touchEvent.bubbles = false; touchEvent.pressure = touch.pressure; this.__dispatchTarget(item,touchEvent); } if(item.hasEventListener("touchRollOut")) { touchOutStack.push(item); } } } if(target != touchOverTarget) { if(target != null) { touchEvent = openfl_events_TouchEvent.__create("touchOver",null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target); touchEvent.touchPointID = touchId; touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint; touchEvent.bubbles = true; touchEvent.pressure = touch.pressure; this.__dispatchTarget(target,touchEvent); } touchData.touchOverTarget = target; } openfl_geom_Point.__pool.release(targetPoint); openfl_geom_Point.__pool.release(localPoint); if(releaseTouchData) { this.__touchData.remove(touchId); touchData.reset(); openfl_utils__$internal_TouchData.__pool.release(touchData); } } ,__registerLimeModule: function(application) { application.onCreateWindow.add($bind(this,this.__onLimeCreateWindow)); application.onUpdate.add($bind(this,this.__onLimeUpdate)); application.onExit.add($bind(this,this.__onLimeModuleExit),false,0); var gamepad = lime_ui_Gamepad.devices.iterator(); while(gamepad.hasNext()) { var gamepad1 = gamepad.next(); this.__onLimeGamepadConnect(gamepad1); } lime_ui_Gamepad.onConnect.add($bind(this,this.__onLimeGamepadConnect)); lime_ui_Touch.onStart.add($bind(this,this.__onLimeTouchStart)); lime_ui_Touch.onMove.add($bind(this,this.__onLimeTouchMove)); lime_ui_Touch.onEnd.add($bind(this,this.__onLimeTouchEnd)); lime_ui_Touch.onCancel.add($bind(this,this.__onLimeTouchCancel)); } ,__resize: function() { var cacheWidth = this.stageWidth; var cacheHeight = this.stageHeight; var windowWidth = this.window.__width * this.window.__scale | 0; var windowHeight = this.window.__height * this.window.__scale | 0; this.__displayMatrix.identity(); if(this.get_fullScreenSourceRect() != null && this.window.__fullscreen) { this.stageWidth = this.get_fullScreenSourceRect().width | 0; this.stageHeight = this.get_fullScreenSourceRect().height | 0; var displayScaleX = windowWidth / this.stageWidth; var displayScaleY = windowHeight / this.stageHeight; this.__displayMatrix.translate(-this.get_fullScreenSourceRect().x,-this.get_fullScreenSourceRect().y); this.__displayMatrix.scale(displayScaleX,displayScaleY); this.__displayRect.setTo(this.get_fullScreenSourceRect().get_left(),this.get_fullScreenSourceRect().get_right(),this.get_fullScreenSourceRect().get_top(),this.get_fullScreenSourceRect().get_bottom()); } else if(this.__logicalWidth == 0 || this.__logicalHeight == 0 || this.get_scaleMode() == 2 || windowWidth == 0 || windowHeight == 0) { this.stageWidth = Math.round(windowWidth / this.window.__scale); this.stageHeight = Math.round(windowHeight / this.window.__scale); this.__displayMatrix.scale(this.window.__scale,this.window.__scale); this.__displayRect.setTo(0,0,this.stageWidth,this.stageHeight); } else { this.stageWidth = this.__logicalWidth; this.stageHeight = this.__logicalHeight; switch(this.get_scaleMode()) { case 0: var displayScaleX = windowWidth / this.stageWidth; var displayScaleY = windowHeight / this.stageHeight; this.__displayMatrix.scale(displayScaleX,displayScaleY); this.__displayRect.setTo(0,0,this.stageWidth,this.stageHeight); break; case 1: var scaleX = windowWidth / this.stageWidth; var scaleY = windowHeight / this.stageHeight; var scale = Math.max(scaleX,scaleY); var scaledWidth = this.stageWidth * scale; var scaledHeight = this.stageHeight * scale; var visibleWidth = this.stageWidth - Math.round((scaledWidth - windowWidth) / scale); var visibleHeight = this.stageHeight - Math.round((scaledHeight - windowHeight) / scale); var visibleX = Math.round((this.stageWidth - visibleWidth) / 2); var visibleY = Math.round((this.stageHeight - visibleHeight) / 2); this.__displayMatrix.translate(-visibleX,-visibleY); this.__displayMatrix.scale(scale,scale); this.__displayRect.setTo(visibleX,visibleY,visibleWidth,visibleHeight); break; default: var scaleX = windowWidth / this.stageWidth; var scaleY = windowHeight / this.stageHeight; var scale = Math.min(scaleX,scaleY); var scaledWidth = this.stageWidth * scale; var scaledHeight = this.stageHeight * scale; var visibleWidth = this.stageWidth - Math.round((scaledWidth - windowWidth) / scale); var visibleHeight = this.stageHeight - Math.round((scaledHeight - windowHeight) / scale); var visibleX = Math.round((this.stageWidth - visibleWidth) / 2); var visibleY = Math.round((this.stageHeight - visibleHeight) / 2); this.__displayMatrix.translate(-visibleX,-visibleY); this.__displayMatrix.scale(scale,scale); this.__displayRect.setTo(visibleX,visibleY,visibleWidth,visibleHeight); } } if(this.context3D != null) { this.context3D.configureBackBuffer(this.stageWidth,this.stageHeight,0,true,true,true); } var stage3D = this.stage3Ds.iterator(); while(stage3D.hasNext()) { var stage3D1 = stage3D.next(); stage3D1.__resize(windowWidth,windowHeight); } if(this.__renderer != null) { this.__renderer.__resize(windowWidth,windowHeight); } this.__renderDirty = true; if(this.stageWidth != cacheWidth || this.stageHeight != cacheHeight) { this.__setTransformDirty(); var event = null; event = new openfl_events_Event("resize"); this.__dispatchEvent(event); } } ,__setLogicalSize: function(width,height) { this.__logicalWidth = width; this.__logicalHeight = height; this.__resize(); } ,__startDrag: function(sprite,lockCenter,bounds) { if(bounds == null) { this.__dragBounds = null; } else { this.__dragBounds = new openfl_geom_Rectangle(); var right = bounds.get_right(); var bottom = bounds.get_bottom(); this.__dragBounds.x = right < bounds.x ? right : bounds.x; this.__dragBounds.y = bottom < bounds.y ? bottom : bounds.y; this.__dragBounds.width = Math.abs(bounds.width); this.__dragBounds.height = Math.abs(bounds.height); } this.__dragObject = sprite; if(this.__dragObject != null) { if(lockCenter) { this.__dragOffsetX = 0; this.__dragOffsetY = 0; } else { var mouse = openfl_geom_Point.__pool.get(); mouse.setTo(this.get_mouseX(),this.get_mouseY()); var parent = this.__dragObject.parent; if(parent != null) { var _this = parent.__getWorldTransform(); var norm = _this.a * _this.d - _this.b * _this.c; if(norm == 0) { mouse.x = -_this.tx; mouse.y = -_this.ty; } else { var px = 1.0 / norm * (_this.c * (_this.ty - mouse.y) + _this.d * (mouse.x - _this.tx)); mouse.y = 1.0 / norm * (_this.a * (mouse.y - _this.ty) + _this.b * (_this.tx - mouse.x)); mouse.x = px; } } this.__dragOffsetX = this.__dragObject.get_x() - mouse.x; this.__dragOffsetY = this.__dragObject.get_y() - mouse.y; openfl_geom_Point.__pool.release(mouse); } } } ,__stopDrag: function(sprite) { this.__dragBounds = null; this.__dragObject = null; } ,__unregisterLimeModule: function(application) { application.onCreateWindow.remove($bind(this,this.__onLimeCreateWindow)); application.onUpdate.remove($bind(this,this.__onLimeUpdate)); application.onExit.remove($bind(this,this.__onLimeModuleExit)); lime_ui_Gamepad.onConnect.remove($bind(this,this.__onLimeGamepadConnect)); lime_ui_Touch.onStart.remove($bind(this,this.__onLimeTouchStart)); lime_ui_Touch.onMove.remove($bind(this,this.__onLimeTouchMove)); lime_ui_Touch.onEnd.remove($bind(this,this.__onLimeTouchEnd)); lime_ui_Touch.onCancel.remove($bind(this,this.__onLimeTouchCancel)); } ,__update: function(transformOnly,updateChildren) { if(transformOnly) { if(this.__transformDirty) { openfl_display_DisplayObjectContainer.prototype.__update.call(this,true,updateChildren); if(updateChildren) { this.__transformDirty = false; } } } else if(this.__transformDirty || this.__renderDirty) { openfl_display_DisplayObjectContainer.prototype.__update.call(this,false,updateChildren); if(updateChildren) { if(openfl_display_DisplayObject.__supportDOM) { this.__wasDirty = true; } } } else if(!this.__renderDirty && this.__wasDirty) { openfl_display_DisplayObjectContainer.prototype.__update.call(this,false,updateChildren); if(updateChildren) { this.__wasDirty = false; } } } ,get_color: function() { return this.__color; } ,set_color: function(value) { if(value == null) { this.__transparent = true; value = 0; } else { this.__transparent = false; } if(this.__color != value) { var r = (value & 16711680) >>> 16; var g = (value & 65280) >>> 8; var b = value & 255; this.__colorSplit[0] = r / 255; this.__colorSplit[1] = g / 255; this.__colorSplit[2] = b / 255; this.__colorString = "#" + StringTools.hex(value & 16777215,6); this.__renderDirty = true; this.__color = -16777216 | value & 16777215; } return value; } ,get_contentsScaleFactor: function() { return this.__contentsScaleFactor; } ,get_displayState: function() { return this.__displayState; } ,set_displayState: function(value) { if(this.window != null) { if(value == 2) { if(this.window.__fullscreen) { this.window.set_fullscreen(false); } } else if(!this.window.__fullscreen) { this.window.set_fullscreen(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; this.__cacheFocus = value; if(oldFocus != null) { var event = new openfl_events_FocusEvent("focusOut",true,false,value,false,0); var stack = []; oldFocus.__getInteractive(stack); stack.reverse(); this.__dispatchStack(event,stack); } if(value != null) { var event = new openfl_events_FocusEvent("focusIn",true,false,oldFocus,false,0); var stack = []; value.__getInteractive(stack); stack.reverse(); this.__dispatchStack(event,stack); } } return value; } ,get_frameRate: function() { if(this.window != null) { return this.window.__backend.getFrameRate(); } return 0; } ,set_frameRate: function(value) { if(this.window != null) { return this.window.__backend.setFrameRate(value); } return value; } ,get_fullScreenHeight: function() { return Math.ceil(this.window.get_display().currentMode.height * this.window.__scale); } ,get_fullScreenSourceRect: function() { if(this.__fullScreenSourceRect == null) { return null; } else { return this.__fullScreenSourceRect.clone(); } } ,set_fullScreenSourceRect: function(value) { if(value == null) { if(this.__fullScreenSourceRect != null) { this.__fullScreenSourceRect = null; this.__resize(); } } else if(!value.equals(this.__fullScreenSourceRect)) { this.__fullScreenSourceRect = value.clone(); this.__resize(); } return value; } ,get_fullScreenWidth: function() { return Math.ceil(this.window.get_display().currentMode.width * this.window.__scale); } ,set_height: function(value) { return this.get_height(); } ,get_mouseX: function() { return this.__mouseX; } ,get_mouseY: function() { return this.__mouseY; } ,get_quality: function() { return this.__quality; } ,set_quality: function(value) { this.__quality = value; if(this.__renderer != null) { var tmp = this.get_quality(); this.__renderer.__allowSmoothing = tmp != 2; } return value; } ,set_rotation: function(value) { return 0; } ,get_scaleMode: function() { return this.__scaleMode; } ,set_scaleMode: function(value) { if(value != this.__scaleMode) { this.__scaleMode = value; this.__resize(); } return value; } ,set_scaleX: function(value) { return 0; } ,set_scaleY: function(value) { return 0; } ,get_tabEnabled: function() { return false; } ,set_tabEnabled: function(value) { throw new openfl_errors_IllegalOperationError("Error: The Stage class does not implement this property or method."); } ,get_tabIndex: function() { return -1; } ,set_tabIndex: function(value) { throw new openfl_errors_IllegalOperationError("Error: The Stage class does not implement this property or method."); } ,set_transform: function(value) { return this.get_transform(); } ,set_width: function(value) { return this.get_width(); } ,set_x: function(value) { return 0; } ,set_y: function(value) { return 0; } ,__class__: openfl_display_Stage ,__properties__: $extend(openfl_display_DisplayObjectContainer.prototype.__properties__,{set_scaleMode:"set_scaleMode",get_scaleMode:"get_scaleMode",set_quality:"set_quality",get_quality:"get_quality",get_fullScreenWidth:"get_fullScreenWidth",set_fullScreenSourceRect:"set_fullScreenSourceRect",get_fullScreenSourceRect:"get_fullScreenSourceRect",get_fullScreenHeight:"get_fullScreenHeight",set_frameRate:"set_frameRate",get_frameRate:"get_frameRate",set_focus:"set_focus",get_focus:"get_focus",set_displayState:"set_displayState",get_displayState:"get_displayState",get_contentsScaleFactor:"get_contentsScaleFactor",set_color:"set_color",get_color:"get_color"}) }); var openfl_display_Stage3D = function(stage) { openfl_events_EventDispatcher.call(this); this.__stage = stage; this.__height = 0; this.__projectionTransform = new openfl_geom_Matrix3D(); this.__renderTransform = new openfl_geom_Matrix3D(); this.__width = 0; this.__x = 0; this.__y = 0; this.visible = true; if(stage.stageWidth > 0 && stage.stageHeight > 0) { this.__resize(stage.stageWidth,stage.stageHeight); } }; $hxClasses["openfl.display.Stage3D"] = openfl_display_Stage3D; openfl_display_Stage3D.__name__ = "openfl.display.Stage3D"; openfl_display_Stage3D.__active = null; openfl_display_Stage3D.__super__ = openfl_events_EventDispatcher; openfl_display_Stage3D.prototype = $extend(openfl_events_EventDispatcher.prototype,{ context3D: null ,visible: null ,__contextLost: null ,__contextRequested: null ,__height: null ,__indexBuffer: null ,__projectionTransform: null ,__renderTransform: null ,__stage: null ,__vertexBuffer: null ,__width: null ,__x: null ,__y: null ,__canvas: null ,__renderContext: null ,__style: null ,__webgl: null ,requestContext3D: function(context3DRenderMode,profile) { if(profile == null) { profile = 0; } if(context3DRenderMode == null) { context3DRenderMode = 0; } if(this.__contextLost) { this.__contextRequested = true; return; } if(this.context3D != null) { this.__contextRequested = true; haxe_Timer.delay($bind(this,this.__dispatchCreate),1); } else if(!this.__contextRequested) { this.__contextRequested = true; haxe_Timer.delay($bind(this,this.__createContext),1); } } ,requestContext3DMatchingProfiles: function(profiles) { this.requestContext3D(); } ,__createContext: function() { var stage = this.__stage; var renderer = stage.__renderer; if(renderer.__type == "cairo" || renderer.__type == "canvas") { this.__dispatchError(); return; } if(renderer.__type == "opengl") { this.context3D = new openfl_display3D_Context3D(stage,stage.context3D.__contextState,this); this.__dispatchCreate(); } else if(renderer.__type == "dom") { if(stage.context3D == null) { this.__canvas = window.document.createElement("canvas"); this.__canvas.width = stage.stageWidth; this.__canvas.height = stage.stageHeight; var $window = stage.window; var attributes = stage.window.context.attributes; var transparentBackground = Object.prototype.hasOwnProperty.call(attributes,"background") && attributes.background == null; var colorDepth = Object.prototype.hasOwnProperty.call(attributes,"colorDepth") ? attributes.colorDepth : 32; var options = Object.prototype.hasOwnProperty.call(attributes,"antialiasing") && attributes.antialiasing > 0; var options1 = { alpha : transparentBackground || colorDepth > 16, antialias : options, depth : true, premultipliedAlpha : true, stencil : true, preserveDrawingBuffer : false}; this.__webgl = js_html__$CanvasElement_CanvasUtil.getContextWebGL(this.__canvas,options1); if(this.__webgl != null) { if(lime_graphics_opengl_GL.context == null) { lime_graphics_opengl_GL.context = this.__webgl; lime_graphics_opengl_GL.type = "webgl"; lime_graphics_opengl_GL.version = 1; } stage.context3D = new openfl_display3D_Context3D(stage); stage.context3D.configureBackBuffer(stage.window.__width,stage.window.__height,0,true,true,true); stage.context3D.present(); var renderer1 = renderer; renderer1.element.appendChild(this.__canvas); this.__style = this.__canvas.style; this.__style.setProperty("position","absolute",null); this.__style.setProperty("top","0",null); this.__style.setProperty("left","0",null); this.__style.setProperty(renderer1.__transformOriginProperty,"0 0 0",null); this.__style.setProperty("z-index","-1",null); } if(stage.context3D != null) { this.context3D = new openfl_display3D_Context3D(stage,stage.context3D.__contextState,this); } this.__dispatchCreate(); } else { this.__dispatchError(); } } } ,__dispatchError: function() { this.__contextRequested = false; this.dispatchEvent(new openfl_events_ErrorEvent("error",false,false,"Context3D not available")); } ,__dispatchCreate: function() { if(this.__contextRequested) { this.__contextRequested = false; this.dispatchEvent(new openfl_events_Event("context3DCreate")); } } ,__lostContext: function() { this.__contextLost = true; if(this.context3D != null) { this.context3D.__dispose(); this.__contextRequested = true; } } ,__resize: function(width,height) { if(width != this.__width || height != this.__height) { if(this.__canvas != null) { this.__canvas.width = width; this.__canvas.height = height; } this.__projectionTransform.copyRawDataFrom(openfl_Vector.toFloatVector(null,null,null,[2.0 / (width > 0 ? width : 1),0.0,0.0,0.0,0.0,-2.0 / (height > 0 ? height : 1),0.0,0.0,0.0,0.0,-0.001,0.0,-1.0,1.0,0.0,1.0])); this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x,this.__y,0); this.__renderTransform.append(this.__projectionTransform); this.__width = width; this.__height = height; } } ,__restoreContext: function() { this.__contextLost = false; this.__createContext(); } ,get_x: function() { return this.__x; } ,set_x: function(value) { if(this.__x == value) { return value; } this.__x = value; this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x,this.__y,0); this.__renderTransform.append(this.__projectionTransform); return value; } ,get_y: function() { return this.__y; } ,set_y: function(value) { if(this.__y == value) { return value; } this.__y = value; this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x,this.__y,0); this.__renderTransform.append(this.__projectionTransform); return value; } ,__class__: openfl_display_Stage3D ,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x"} }); var openfl_display_StageAlign = {}; openfl_display_StageAlign.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.toString = function(this1) { switch(this1) { 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 = {}; openfl_display_StageDisplayState.fromString = function(value) { switch(value) { case "fullScreen": return 0; case "fullScreenInteractive": return 1; case "normal": return 2; default: return null; } }; openfl_display_StageDisplayState.toString = function(this1) { switch(this1) { case 0: return "fullScreen"; case 1: return "fullScreenInteractive"; case 2: return "normal"; default: return null; } }; var openfl_display_StageQuality = {}; openfl_display_StageQuality.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.toString = function(this1) { switch(this1) { case 0: return "best"; case 1: return "high"; case 2: return "low"; case 3: return "medium"; default: return null; } }; var openfl_display_StageScaleMode = {}; openfl_display_StageScaleMode.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.toString = function(this1) { switch(this1) { case 0: return "exactFit"; case 1: return "noBorder"; case 2: return "noScale"; case 3: return "showAll"; default: return null; } }; var openfl_display_Tile = function(id,x,y,scaleX,scaleY,rotation,originX,originY) { if(originY == null) { originY = 0; } if(originX == null) { originX = 0; } if(rotation == null) { rotation = 0; } if(scaleY == null) { scaleY = 1; } if(scaleX == null) { scaleX = 1; } if(y == null) { y = 0; } if(x == null) { x = 0; } if(id == null) { id = 0; } this.__id = id; this.__matrix = new openfl_geom_Matrix(); if(x != 0) { this.set_x(x); } if(y != 0) { this.set_y(y); } if(scaleX != 1) { this.set_scaleX(scaleX); } if(scaleY != 1) { this.set_scaleY(scaleY); } if(rotation != 0) { this.set_rotation(rotation); } this.__dirty = true; this.__length = 0; this.__originX = originX; this.__originY = originY; this.__alpha = 1; this.__blendMode = null; this.__visible = true; }; $hxClasses["openfl.display.Tile"] = openfl_display_Tile; openfl_display_Tile.__name__ = "openfl.display.Tile"; openfl_display_Tile.prototype = { data: null ,parent: null ,__alpha: null ,__blendMode: null ,__colorTransform: null ,__dirty: null ,__id: null ,__length: null ,__matrix: null ,__originX: null ,__originY: null ,__rect: null ,__rotation: null ,__rotationCosine: null ,__rotationSine: null ,__scaleX: null ,__scaleY: null ,__shader: null ,__tileset: null ,__visible: null ,clone: function() { var tile = new openfl_display_Tile(this.__id); tile.__alpha = this.__alpha; tile.__blendMode = this.__blendMode; tile.__originX = this.__originX; tile.__originY = this.__originY; if(this.__rect != null) { tile.__rect = this.__rect.clone(); } tile.set_matrix(this.__matrix.clone()); tile.__shader = this.__shader; tile.set_tileset(this.__tileset); if(this.__colorTransform != null) { tile.__colorTransform = this.__colorTransform.__clone(); } return tile; } ,getBounds: function(targetCoordinateSpace) { var result = new openfl_geom_Rectangle(); this.__findTileRect(result); var matrix = openfl_geom_Matrix.__pool.get(); if(targetCoordinateSpace != null && targetCoordinateSpace != this) { matrix.copyFrom(this.__getWorldTransform()); var targetMatrix = openfl_geom_Matrix.__pool.get(); targetMatrix.copyFrom(targetCoordinateSpace.__getWorldTransform()); targetMatrix.invert(); matrix.concat(targetMatrix); openfl_geom_Matrix.__pool.release(targetMatrix); } else { matrix.identity(); } this.__getBounds(result,matrix); openfl_geom_Matrix.__pool.release(matrix); return result; } ,__getBounds: function(result,matrix) { result.__transform(result,matrix); } ,hitTestTile: 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; } ,invalidate: function() { this.__setRenderDirty(); } ,__findTileRect: function(result) { if(this.get_tileset() == null) { if(this.parent != null) { var parentTileset = this.parent.__findTileset(); if(parentTileset == null) { result.setTo(0,0,0,0); } else { var _g = parentTileset.getRect(this.get_id()); if(_g == null) { result.setTo(0,0,0,0); } else { var not_null = _g; result.copyFrom(not_null); } } } else { result.setTo(0,0,0,0); } } else { result.copyFrom(this.get_tileset().getRect(this.get_id())); } result.x = 0; result.y = 0; } ,__findTileset: function() { if(this.get_tileset() != null) { return this.get_tileset(); } if(((this.parent) instanceof openfl_display_Tilemap)) { return this.parent.get_tileset(); } if(this.parent == null) { return null; } return this.parent.__findTileset(); } ,__getWorldTransform: function() { var retval = this.get_matrix().clone(); if(this.parent != null) { retval.concat(this.parent.__getWorldTransform()); } return retval; } ,__setRenderDirty: function() { if(!this.__dirty) { this.__dirty = true; if(this.parent != null) { this.parent.__setRenderDirty(); } } } ,get_alpha: function() { return this.__alpha; } ,set_alpha: function(value) { if(value != this.__alpha) { this.__alpha = value; this.__setRenderDirty(); } return value; } ,get_blendMode: function() { return this.__blendMode; } ,set_blendMode: function(value) { if(value != this.__blendMode) { this.__blendMode = value; this.__setRenderDirty(); } return value; } ,get_colorTransform: function() { return this.__colorTransform; } ,set_colorTransform: function(value) { if(value != this.__colorTransform) { this.__colorTransform = value; this.__setRenderDirty(); } return value; } ,get_height: function() { var result = openfl_geom_Rectangle.__pool.get(); this.__findTileRect(result); this.__getBounds(result,this.get_matrix()); var h = result.height; openfl_geom_Rectangle.__pool.release(result); return h; } ,set_height: function(value) { var result = openfl_geom_Rectangle.__pool.get(); this.__findTileRect(result); if(result.height != 0) { this.set_scaleY(value / result.height); } openfl_geom_Rectangle.__pool.release(result); return value; } ,get_id: function() { return this.__id; } ,set_id: function(value) { if(value != this.__id) { this.__id = value; this.__setRenderDirty(); } return value; } ,get_matrix: function() { return this.__matrix; } ,set_matrix: function(value) { if(value != this.__matrix) { this.__rotation = null; this.__scaleX = null; this.__scaleY = null; this.__matrix = value; this.__setRenderDirty(); } return value; } ,get_originX: function() { return this.__originX; } ,set_originX: function(value) { if(value != this.__originX) { this.__originX = value; this.__setRenderDirty(); } return value; } ,get_originY: function() { return this.__originY; } ,set_originY: function(value) { if(value != this.__originY) { this.__originY = value; this.__setRenderDirty(); } return value; } ,get_rect: function() { return this.__rect; } ,set_rect: function(value) { if(value != this.__rect) { this.__rect = value; this.__setRenderDirty(); } return value; } ,get_rotation: function() { if(this.__rotation == null) { if(this.__matrix.b == 0 && this.__matrix.c == 0) { this.__rotation = 0; this.__rotationSine = 0; this.__rotationCosine = 1; } else { var radians = Math.atan2(this.__matrix.d,this.__matrix.c) - Math.PI / 2; this.__rotation = radians * (180 / Math.PI); this.__rotationSine = Math.sin(radians); this.__rotationCosine = Math.cos(radians); } } return this.__rotation; } ,set_rotation: function(value) { if(value != this.__rotation) { this.__rotation = value; var radians = value * (Math.PI / 180); this.__rotationSine = Math.sin(radians); this.__rotationCosine = Math.cos(radians); var __scaleX = this.get_scaleX(); var __scaleY = this.get_scaleY(); this.__matrix.a = this.__rotationCosine * __scaleX; this.__matrix.b = this.__rotationSine * __scaleX; this.__matrix.c = -this.__rotationSine * __scaleY; this.__matrix.d = this.__rotationCosine * __scaleY; this.__setRenderDirty(); } return value; } ,get_scaleX: function() { if(this.__scaleX == null) { if(this.get_matrix().b == 0) { this.__scaleX = this.__matrix.a; } else { this.__scaleX = Math.sqrt(this.__matrix.a * this.__matrix.a + this.__matrix.b * this.__matrix.b); } } return this.__scaleX; } ,set_scaleX: function(value) { if(value != this.__scaleX) { this.__scaleX = value; if(this.__matrix.b == 0) { this.__matrix.a = value; } else { var rotation = this.get_rotation(); var a = this.__rotationCosine * value; var b = this.__rotationSine * value; this.__matrix.a = a; this.__matrix.b = b; } this.__setRenderDirty(); } return value; } ,get_scaleY: function() { if(this.__scaleY == null) { if(this.__matrix.c == 0) { this.__scaleY = this.get_matrix().d; } else { this.__scaleY = Math.sqrt(this.__matrix.c * this.__matrix.c + this.__matrix.d * this.__matrix.d); } } return this.__scaleY; } ,set_scaleY: function(value) { if(value != this.__scaleY) { this.__scaleY = value; if(this.__matrix.c == 0) { this.__matrix.d = value; } else { var rotation = this.get_rotation(); var c = -this.__rotationSine * value; var d = this.__rotationCosine * value; this.__matrix.c = c; this.__matrix.d = d; } this.__setRenderDirty(); } return value; } ,get_shader: function() { return this.__shader; } ,set_shader: function(value) { if(value != this.__shader) { this.__shader = value; this.__setRenderDirty(); } return value; } ,get_tileset: function() { return this.__tileset; } ,set_tileset: function(value) { if(value != this.__tileset) { this.__tileset = value; this.__setRenderDirty(); } return value; } ,get_visible: function() { return this.__visible; } ,set_visible: function(value) { if(value != this.__visible) { this.__visible = value; this.__setRenderDirty(); } return value; } ,get_width: function() { var result = openfl_geom_Rectangle.__pool.get(); this.__findTileRect(result); this.__getBounds(result,this.get_matrix()); var w = result.width; openfl_geom_Rectangle.__pool.release(result); return w; } ,set_width: function(value) { var result = openfl_geom_Rectangle.__pool.get(); this.__findTileRect(result); if(result.width != 0) { this.set_scaleX(value / result.width); } openfl_geom_Rectangle.__pool.release(result); return value; } ,get_x: function() { return this.__matrix.tx; } ,set_x: function(value) { if(value != this.__matrix.tx) { this.__matrix.tx = value; this.__setRenderDirty(); } return value; } ,get_y: function() { return this.__matrix.ty; } ,set_y: function(value) { if(value != this.__matrix.ty) { this.__matrix.ty = value; this.__setRenderDirty(); } return value; } ,__class__: openfl_display_Tile ,__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_tileset:"set_tileset",get_tileset:"get_tileset",set_shader:"set_shader",get_shader:"get_shader",set_scaleY:"set_scaleY",get_scaleY:"get_scaleY",set_scaleX:"set_scaleX",get_scaleX:"get_scaleX",set_rotation:"set_rotation",get_rotation:"get_rotation",set_rect:"set_rect",get_rect:"get_rect",set_originY:"set_originY",get_originY:"get_originY",set_originX:"set_originX",get_originX:"get_originX",set_matrix:"set_matrix",get_matrix:"get_matrix",set_id:"set_id",get_id:"get_id",set_height:"set_height",get_height:"get_height",set_colorTransform:"set_colorTransform",get_colorTransform:"get_colorTransform",set_blendMode:"set_blendMode",get_blendMode:"get_blendMode",set_alpha:"set_alpha",get_alpha:"get_alpha"} }; var openfl_display_TileContainer = function(x,y,scaleX,scaleY,rotation,originX,originY) { if(originY == null) { originY = 0; } if(originX == null) { originX = 0; } if(rotation == null) { rotation = 0; } if(scaleY == null) { scaleY = 1; } if(scaleX == null) { scaleX = 1; } if(y == null) { y = 0; } if(x == null) { x = 0; } openfl_display_Tile.call(this,-1,x,y,scaleX,scaleY,rotation,originX,originY); this.__tiles = []; this.__length = 0; }; $hxClasses["openfl.display.TileContainer"] = openfl_display_TileContainer; openfl_display_TileContainer.__name__ = "openfl.display.TileContainer"; openfl_display_TileContainer.__interfaces__ = [openfl_display_ITileContainer]; openfl_display_TileContainer.__super__ = openfl_display_Tile; openfl_display_TileContainer.prototype = $extend(openfl_display_Tile.prototype,{ __tiles: null ,addTile: function(tile) { if(tile == null) { return null; } if(tile.parent == this) { HxOverrides.remove(this.__tiles,tile); this.__length--; } this.__tiles[this.get_numTiles()] = tile; tile.parent = this; this.__length++; this.__setRenderDirty(); return tile; } ,addTileAt: function(tile,index) { if(tile == null) { return null; } if(tile.parent == this) { HxOverrides.remove(this.__tiles,tile); this.__length--; } this.__tiles.splice(index,0,tile); tile.parent = this; this.__length++; this.__setRenderDirty(); return tile; } ,addTiles: function(tiles) { var _g = 0; while(_g < tiles.length) { var tile = tiles[_g]; ++_g; this.addTile(tile); } return tiles; } ,clone: function() { var group = new openfl_display_TileContainer(); var _g = 0; var _g1 = this.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; group.addTile(tile.clone()); } return group; } ,contains: function(tile) { return this.__tiles.indexOf(tile) > -1; } ,getBounds: function(targetCoordinateSpace) { var result = new openfl_geom_Rectangle(); var rect = null; var _g = 0; var _g1 = this.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; rect = tile.getBounds(targetCoordinateSpace); result.__expand(rect.x,rect.y,rect.width,rect.height); } return result; } ,getTileAt: function(index) { if(index >= 0 && index < this.get_numTiles()) { return this.__tiles[index]; } return null; } ,getTileIndex: function(tile) { var _g = 0; var _g1 = this.__tiles.length; while(_g < _g1) { var i = _g++; if(this.__tiles[i] == tile) { return i; } } return -1; } ,removeTile: function(tile) { if(tile != null && tile.parent == this) { tile.parent = null; HxOverrides.remove(this.__tiles,tile); this.__length--; this.__setRenderDirty(); } return tile; } ,removeTileAt: function(index) { if(index >= 0 && index < this.get_numTiles()) { return this.removeTile(this.__tiles[index]); } return null; } ,removeTiles: function(beginIndex,endIndex) { if(endIndex == null) { endIndex = 2147483647; } if(beginIndex == null) { beginIndex = 0; } if(beginIndex < 0) { beginIndex = 0; } if(endIndex > this.__tiles.length - 1) { endIndex = this.__tiles.length - 1; } var removed = this.__tiles.splice(beginIndex,endIndex - beginIndex + 1); var _g = 0; while(_g < removed.length) { var tile = removed[_g]; ++_g; tile.parent = null; } this.__length = this.__tiles.length; this.__setRenderDirty(); } ,setTileIndex: function(tile,index) { if(index >= 0 && index <= this.get_numTiles() && tile.parent == this) { HxOverrides.remove(this.__tiles,tile); this.__tiles.splice(index,0,tile); this.__setRenderDirty(); } } ,sortTiles: function(compareFunction) { this.__tiles.sort(compareFunction); this.__setRenderDirty(); } ,swapTiles: function(tile1,tile2) { if(tile1.parent == this && tile2.parent == this) { var index1 = this.__tiles.indexOf(tile1); var index2 = this.__tiles.indexOf(tile2); this.__tiles[index1] = tile2; this.__tiles[index2] = tile1; this.__setRenderDirty(); } } ,swapTilesAt: function(index1,index2) { var swap = this.__tiles[index1]; this.__tiles[index1] = this.__tiles[index2]; this.__tiles[index2] = swap; swap = null; this.__setRenderDirty(); } ,get_numTiles: function() { return this.__length; } ,get_height: function() { var result = openfl_geom_Rectangle.__pool.get(); var rect = null; var _g = 0; var _g1 = this.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; rect = tile.getBounds(this); result.__expand(rect.x,rect.y,rect.width,rect.height); } this.__getBounds(result,this.get_matrix()); var h = result.height; openfl_geom_Rectangle.__pool.release(result); return h; } ,set_height: function(value) { var result = openfl_geom_Rectangle.__pool.get(); var rect = null; var _g = 0; var _g1 = this.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; rect = tile.getBounds(this); result.__expand(rect.x,rect.y,rect.width,rect.height); } if(result.height != 0) { this.set_scaleY(value / result.height); } openfl_geom_Rectangle.__pool.release(result); return value; } ,get_width: function() { var result = openfl_geom_Rectangle.__pool.get(); var rect = null; var _g = 0; var _g1 = this.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; rect = tile.getBounds(this); result.__expand(rect.x,rect.y,rect.width,rect.height); } this.__getBounds(result,this.get_matrix()); var w = result.width; openfl_geom_Rectangle.__pool.release(result); return w; } ,set_width: function(value) { var result = openfl_geom_Rectangle.__pool.get(); var rect = null; var _g = 0; var _g1 = this.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; rect = tile.getBounds(this); result.__expand(rect.x,rect.y,rect.width,rect.height); } if(result.width != 0) { this.set_scaleX(value / result.width); } openfl_geom_Rectangle.__pool.release(result); return value; } ,__class__: openfl_display_TileContainer ,__properties__: $extend(openfl_display_Tile.prototype.__properties__,{get_numTiles:"get_numTiles"}) }); var openfl_display_Tilemap = function(width,height,tileset,smoothing) { if(smoothing == null) { smoothing = true; } openfl_display_DisplayObject.call(this); this.__drawableType = 9; this.__tileset = tileset; this.smoothing = smoothing; this.tileAlphaEnabled = true; this.tileBlendModeEnabled = true; this.tileColorTransformEnabled = true; this.__group = new openfl_display_TileContainer(); this.__group.set_tileset(tileset); this.__width = width; this.__height = height; }; $hxClasses["openfl.display.Tilemap"] = openfl_display_Tilemap; openfl_display_Tilemap.__name__ = "openfl.display.Tilemap"; openfl_display_Tilemap.__interfaces__ = [openfl_display_ITileContainer]; openfl_display_Tilemap.__super__ = openfl_display_DisplayObject; openfl_display_Tilemap.prototype = $extend(openfl_display_DisplayObject.prototype,{ tileAlphaEnabled: null ,tileBlendModeEnabled: null ,tileColorTransformEnabled: null ,smoothing: null ,__group: null ,__tileset: null ,__buffer: null ,__bufferDirty: null ,__height: null ,__width: null ,addTile: function(tile) { return this.__group.addTile(tile); } ,addTileAt: function(tile,index) { return this.__group.addTileAt(tile,index); } ,addTiles: function(tiles) { return this.__group.addTiles(tiles); } ,contains: function(tile) { return this.__group.contains(tile); } ,getTileAt: function(index) { return this.__group.getTileAt(index); } ,getTileIndex: function(tile) { return this.__group.getTileIndex(tile); } ,getTiles: function() { return this.__group.clone(); } ,removeTile: function(tile) { return this.__group.removeTile(tile); } ,removeTileAt: function(index) { return this.__group.removeTileAt(index); } ,removeTiles: function(beginIndex,endIndex) { if(endIndex == null) { endIndex = 2147483647; } if(beginIndex == null) { beginIndex = 0; } this.__group.removeTiles(beginIndex,endIndex); } ,setTileIndex: function(tile,index) { this.__group.setTileIndex(tile,index); } ,setTiles: function(group) { var _g = 0; var _g1 = this.__group.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this.removeTile(tile); } var _g = 0; var _g1 = group.__tiles; while(_g < _g1.length) { var tile = _g1[_g]; ++_g; this.addTile(tile); } } ,sortTiles: function(compareFunction) { this.__group.sortTiles(compareFunction); } ,swapTiles: function(tile1,tile2) { this.__group.swapTiles(tile1,tile2); } ,swapTilesAt: function(index1,index2) { this.__group.swapTilesAt(index1,index2); } ,__enterFrame: function(deltaTime) { if(this.__group.__dirty) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,__getBounds: function(rect,matrix) { var bounds = openfl_geom_Rectangle.__pool.get(); bounds.setTo(0,0,this.__width,this.__height); bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); openfl_geom_Rectangle.__pool.release(bounds); } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(!hitObject.get_visible() || this.__isMask) { return false; } if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) { return false; } this.__getRenderTransform(); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x)); if(px > 0 && py > 0 && px <= this.__width && py <= this.__height) { if(stack != null && !interactiveOnly) { stack.push(hitObject); } return true; } return false; } ,__renderFlash: function() { } ,get_height: function() { return this.__height * Math.abs(this.get_scaleY()); } ,set_height: function(value) { this.__height = value | 0; return this.__height * Math.abs(this.get_scaleY()); } ,get_numTiles: function() { return this.__group.__length; } ,get_tileset: function() { return this.__tileset; } ,set_tileset: function(value) { if(value != this.__tileset) { this.__tileset = value; this.__group.set_tileset(value); this.__group.__dirty = true; if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } return value; } ,get_width: function() { return this.__width * Math.abs(this.__scaleX); } ,set_width: function(value) { this.__width = value | 0; return this.__width * Math.abs(this.__scaleX); } ,__class__: openfl_display_Tilemap ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_tileset:"set_tileset",get_tileset:"get_tileset",get_numTiles:"get_numTiles"}) }); var openfl_display_Tileset = function(bitmapData,rects) { this.__bitmapData = bitmapData; this.rectData = openfl_Vector.toFloatVector(null); this.__data = []; if(rects != null) { var _g = 0; while(_g < rects.length) { var rect = rects[_g]; ++_g; this.addRect(rect); } } }; $hxClasses["openfl.display.Tileset"] = openfl_display_Tileset; openfl_display_Tileset.__name__ = "openfl.display.Tileset"; openfl_display_Tileset.prototype = { rectData: null ,__bitmapData: null ,__data: null ,addRect: function(rect) { if(rect == null) { return -1; } this.rectData.push(rect.x); this.rectData.push(rect.y); this.rectData.push(rect.width); this.rectData.push(rect.height); var tileData = new openfl_display__$Tileset_TileData(rect); tileData.__update(this.__bitmapData); this.__data.push(tileData); return this.__data.length - 1; } ,clone: function() { var tileset = new openfl_display_Tileset(this.__bitmapData,null); var rect = openfl_geom_Rectangle.__pool.get(); var _g = 0; var _g1 = this.__data; while(_g < _g1.length) { var tileData = _g1[_g]; ++_g; rect.setTo(tileData.x,tileData.y,tileData.width,tileData.height); tileset.addRect(rect); } openfl_geom_Rectangle.__pool.release(rect); return tileset; } ,hasRect: function(rect) { var _g = 0; var _g1 = this.__data; while(_g < _g1.length) { var tileData = _g1[_g]; ++_g; if(rect.x == tileData.x && rect.y == tileData.y && rect.width == tileData.width && rect.height == tileData.height) { return true; } } return false; } ,getRect: function(id) { if(id < this.__data.length && id >= 0) { return new openfl_geom_Rectangle(this.__data[id].x,this.__data[id].y,this.__data[id].width,this.__data[id].height); } return null; } ,getRectID: function(rect) { var tileData; var _g = 0; var _g1 = this.__data.length; while(_g < _g1) { var i = _g++; tileData = this.__data[i]; if(rect.x == tileData.x && rect.y == tileData.y && rect.width == tileData.width && rect.height == tileData.height) { return i; } } return null; } ,get_bitmapData: function() { return this.__bitmapData; } ,set_bitmapData: function(value) { this.__bitmapData = value; var _g = 0; var _g1 = this.__data; while(_g < _g1.length) { var data = _g1[_g]; ++_g; data.__update(this.__bitmapData); } return value; } ,get_numRects: function() { return this.__data.length; } ,__class__: openfl_display_Tileset ,__properties__: {get_numRects:"get_numRects",set_bitmapData:"set_bitmapData",get_bitmapData:"get_bitmapData"} }; var openfl_display__$Tileset_TileData = function(rect) { if(rect != null) { this.x = rect.x | 0; this.y = rect.y | 0; this.width = rect.width | 0; this.height = rect.height | 0; } }; $hxClasses["openfl.display._Tileset.TileData"] = openfl_display__$Tileset_TileData; openfl_display__$Tileset_TileData.__name__ = "openfl.display._Tileset.TileData"; openfl_display__$Tileset_TileData.prototype = { height: null ,width: null ,x: null ,y: null ,__bitmapData: null ,__uvHeight: null ,__uvWidth: null ,__uvX: null ,__uvY: null ,__update: function(bitmapData) { if(bitmapData != null) { var bitmapWidth = bitmapData.width; var bitmapHeight = bitmapData.height; this.__uvX = this.x / bitmapWidth; this.__uvY = this.y / bitmapHeight; this.__uvWidth = (this.x + this.width) / bitmapWidth; this.__uvHeight = (this.y + this.height) / bitmapHeight; } } ,__class__: openfl_display__$Tileset_TileData }; var openfl_display_Timeline = function() { this.__framesLoaded = 1; this.__totalFrames = 1; this.__currentLabels = []; this.__currentFrame = 1; this.__lastFrameScriptEval = -1; this.__lastFrameUpdate = -1; }; $hxClasses["openfl.display.Timeline"] = openfl_display_Timeline; openfl_display_Timeline.__name__ = "openfl.display.Timeline"; openfl_display_Timeline.prototype = { frameRate: null ,scenes: null ,scripts: null ,__currentFrame: null ,__currentFrameLabel: null ,__currentLabel: null ,__currentLabels: null ,__currentScene: null ,__frameScripts: null ,__framesLoaded: null ,__frameTime: null ,__isPlaying: null ,__lastFrameScriptEval: null ,__lastFrameUpdate: null ,__scope: null ,__timeElapsed: null ,__totalFrames: null ,attachMovieClip: function(movieClip) { } ,enterFrame: function(frame) { } ,initializeSprite: function(sprite) { } ,__addFrameScript: function(index,method) { if(index < 0) { return; } var frame = index + 1; if(method != null) { if(this.__frameScripts == null) { this.__frameScripts = new haxe_ds_IntMap(); } this.__frameScripts.h[frame] = function(scope) { method(); }; } else if(this.__frameScripts != null) { this.__frameScripts.remove(frame); } } ,__attachMovieClip: function(movieClip) { this.__scope = movieClip; this.__totalFrames = 0; this.__framesLoaded = 0; if(this.scenes != null && this.scenes.length > 0) { var _g = 0; var _g1 = this.scenes; while(_g < _g1.length) { var scene = _g1[_g]; ++_g; this.__totalFrames += scene.numFrames; this.__framesLoaded += scene.numFrames; if(scene.labels != null) { this.__currentLabels = this.__currentLabels.concat(scene.labels); } } this.__currentScene = this.scenes[0]; } if(this.scripts != null && this.scripts.length > 0) { this.__frameScripts = new haxe_ds_IntMap(); var _g = 0; var _g1 = this.scripts; while(_g < _g1.length) { var script = _g1[_g]; ++_g; if(this.__frameScripts.h.hasOwnProperty(script.frame)) { var existing = [this.__frameScripts.h[script.frame]]; var append = [script.script]; this.__frameScripts.h[script.frame] = (function(append,existing) { return function(clip) { existing[0](clip); append[0](clip); }; })(append,existing); } else { this.__frameScripts.h[script.frame] = script.script; } } } this.attachMovieClip(movieClip); } ,__enterFrame: function(deltaTime) { if(this.__isPlaying) { var nextFrame = this.__getNextFrame(deltaTime); if(this.__lastFrameScriptEval == nextFrame) { return; } if(this.__frameScripts != null) { if(nextFrame < this.__currentFrame) { if(!this.__evaluateFrameScripts(this.__totalFrames)) { return; } this.__currentFrame = 1; } if(!this.__evaluateFrameScripts(nextFrame)) { return; } } else { this.__currentFrame = nextFrame; } } this.__updateSymbol(this.__currentFrame); } ,__evaluateFrameScripts: function(advanceToFrame) { if(this.__frameScripts == null) { return true; } var _g = this.__currentFrame; var _g1 = advanceToFrame + 1; while(_g < _g1) { var frame = _g++; if(frame == this.__lastFrameScriptEval) { continue; } this.__lastFrameScriptEval = frame; this.__currentFrame = frame; if(this.__frameScripts.h.hasOwnProperty(frame)) { this.__updateSymbol(frame); var script = this.__frameScripts.h[frame]; script(this.__scope); if(this.__currentFrame != frame) { return false; } } if(!this.__isPlaying) { return false; } } return true; } ,__getNextFrame: function(deltaTime) { var nextFrame = 0; if(this.frameRate != null) { this.__timeElapsed += deltaTime; nextFrame = this.__currentFrame + Math.floor(this.__timeElapsed / this.__frameTime); if(nextFrame < 1) { nextFrame = 1; } if(nextFrame > this.__totalFrames) { nextFrame = Math.floor((nextFrame - 1) % this.__totalFrames) + 1; } this.__timeElapsed %= this.__frameTime; } else { nextFrame = this.__currentFrame + 1; if(nextFrame > this.__totalFrames) { nextFrame = 1; } } return nextFrame; } ,__goto: function(frame) { if(frame < 1) { frame = 1; } else if(frame > this.__totalFrames) { frame = this.__totalFrames; } this.__lastFrameScriptEval = -1; this.__currentFrame = frame; this.__updateSymbol(this.__currentFrame); this.__evaluateFrameScripts(this.__currentFrame); } ,__gotoAndPlay: function(frame,scene) { this.__play(); this.__goto(this.__resolveFrameReference(frame)); } ,__gotoAndStop: function(frame,scene) { this.__stop(); this.__goto(this.__resolveFrameReference(frame)); } ,__nextFrame: function() { this.__stop(); this.__goto(this.__currentFrame + 1); } ,__nextScene: function() { } ,__play: function() { if(this.__isPlaying || this.__totalFrames < 2) { return; } this.__isPlaying = true; if(this.frameRate != null) { this.__frameTime = 1000 / this.frameRate | 0; this.__timeElapsed = 0; } } ,__prevFrame: function() { this.__stop(); this.__goto(this.__currentFrame - 1); } ,__prevScene: function() { } ,__stop: function() { this.__isPlaying = false; } ,__resolveFrameReference: function(frame) { if(typeof(frame) == "number" && ((frame | 0) === frame)) { return frame; } else if(typeof(frame) == "string") { var label = frame; var _g = 0; var _g1 = this.__currentLabels; while(_g < _g1.length) { var frameLabel = _g1[_g]; ++_g; if(frameLabel.name == label) { return frameLabel.frame; } } throw new openfl_errors_ArgumentError("Error #2109: Frame label " + label + " not found in scene."); } else { throw haxe_Exception.thrown("Invalid type for frame " + frame.__name__); } } ,__updateFrameLabel: function() { this.__currentLabel = null; this.__currentFrameLabel = null; var _g = 0; var _g1 = this.__currentLabels; while(_g < _g1.length) { var label = _g1[_g]; ++_g; if(label.frame < this.__currentFrame) { this.__currentLabel = label.name; } else if(label.frame == this.__currentFrame) { this.__currentLabel = label.name; this.__currentFrameLabel = label.name; } else { break; } } } ,__updateSymbol: function(targetFrame) { if(this.__currentFrame != this.__lastFrameUpdate) { this.__updateFrameLabel(); this.enterFrame(targetFrame); this.__lastFrameUpdate = this.__currentFrame; } } ,__class__: openfl_display_Timeline }; var openfl_display_TriangleCulling = {}; openfl_display_TriangleCulling.fromString = function(value) { switch(value) { case "negative": return 0; case "none": return 1; case "positive": return 2; default: return null; } }; openfl_display_TriangleCulling.toString = function(this1) { switch(this1) { case 0: return "negative"; case 1: return "none"; case 2: return "positive"; default: return null; } }; var openfl_display_Window = function(application,attributes) { lime_ui_Window.call(this,application,attributes); this.stage = new openfl_display_Stage(this,Object.prototype.hasOwnProperty.call(attributes.context,"background") ? attributes.context.background : 16777215); if(Object.prototype.hasOwnProperty.call(attributes,"parameters")) { try { this.stage.get_loaderInfo().parameters = attributes.parameters; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } this.stage.__setLogicalSize(attributes.width,attributes.height); if(Object.prototype.hasOwnProperty.call(attributes,"resizable") && !attributes.resizable) { this.stage.set_scaleMode(3); } application.addModule(this.stage); }; $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,{ __class__: openfl_display_Window }); var openfl_display__$internal_AbstractNoise = function(seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold) { if(stitch_threshold == null) { stitch_threshold = 0.05; } if(stitch == null) { stitch = false; } this.stitch = stitch; this.stitch_threshold = stitch_threshold; this.octaves = octaves; this.channels = channels; this.grayscale = grayScale; this.calculateOctaves(falloff); }; $hxClasses["openfl.display._internal.AbstractNoise"] = openfl_display__$internal_AbstractNoise; openfl_display__$internal_AbstractNoise.__name__ = "openfl.display._internal.AbstractNoise"; openfl_display__$internal_AbstractNoise.prototype = { octaves: null ,stitch: null ,stitch_threshold: null ,channels: null ,grayscale: null ,octaves_frequencies: null ,octaves_persistences: null ,persistence_max: null ,fill: function(bitmap,_scale_x,_scale_y,_scale_z) { } ,stitching: function(bitmap,color,px,py,stitch_w,stitch_h,width,height) { var r = color >> 16 & 255; var g = color >> 8 & 255; var b = color & 255; if(width - stitch_w < px) { var dest = bitmap.getPixel32(width - px,py); var dest_r = dest >> 16 & 255; var dest_g = dest >> 8 & 255; var dest_b = dest & 255; var u = (width - px) / stitch_w; var uu = u * u; r = this.mixI(dest_r,r,u); g = this.mixI(dest_g,g,u); b = this.mixI(dest_b,b,u); } if(height - stitch_h < py) { var dest = bitmap.getPixel32(px,height - py); var dest_r = dest >> 16 & 255; var dest_g = dest >> 8 & 255; var dest_b = dest & 255; var u = (height - py) / stitch_h; var uu = u * u; r = this.mixI(dest_r,r,u); g = this.mixI(dest_g,g,u); b = this.mixI(dest_b,b,u); } return -16777216 | r << 16 | g << 8 | b; } ,color: function(r_noise,g_noise,b_noise) { var color_r = 0; var color_g = 0; var color_b = 0; if(null != r_noise) { color_r = this.noiseToColor(r_noise); } if(null != g_noise) { color_g = this.noiseToColor(g_noise); } if(null != b_noise) { color_b = this.noiseToColor(b_noise); } return -16777216 | color_r << 16 | color_g << 8 | color_b; } ,noiseToColor: function(noise) { return (noise * this.persistence_max + 1.0) * 128 | 0; } ,fade: function(t) { return t * t * t * (t * (t * 6.0 - 15.0) + 10.0); } ,mixI: function(x,y,t) { return (1.0 - t) * x + t * y | 0; } ,mix: function(x,y,t) { return (1.0 - t) * x + t * y; } ,fastfloor: function(x) { if(x > 0) { return x | 0; } else { return x - 1 | 0; } } ,dot2d: function(grad,x,y) { return grad[0] * x + grad[1] * y; } ,dot: function(grad,x,y,z) { return grad[0] * x + grad[1] * y + grad[2] * z; } ,calculateOctaves: function(fPersistence) { var fFreq; var fPers; this.octaves_frequencies = []; this.octaves_persistences = []; this.persistence_max = 0; var _g = 0; var _g1 = this.octaves; while(_g < _g1) { var i = _g++; fFreq = Math.pow(2.0,i); fPers = Math.pow(fPersistence,i); this.persistence_max += fPers; this.octaves_frequencies.push(fFreq); this.octaves_persistences.push(fPers); } this.persistence_max = 1.0 / this.persistence_max; } ,__class__: openfl_display__$internal_AbstractNoise }; var openfl_display__$internal_CairoBitmap = function() { }; $hxClasses["openfl.display._internal.CairoBitmap"] = openfl_display__$internal_CairoBitmap; openfl_display__$internal_CairoBitmap.__name__ = "openfl.display._internal.CairoBitmap"; openfl_display__$internal_CairoBitmap.render = function(bitmap,renderer) { if(!bitmap.__renderable) { return; } var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) { var cairo = renderer.cairo; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap); renderer.applyMatrix(bitmap.__renderTransform,cairo); var surface = bitmap.__bitmapData.getSurface(); if(surface != null) { var pattern = lime_graphics_cairo_CairoPattern.createForSurface(surface); lime_graphics_cairo_CairoPattern.set_filter(pattern,renderer.__allowSmoothing && bitmap.smoothing ? 1 : 3); cairo.set_source(pattern); if(alpha == 1) { cairo.paint(); } else { cairo.paintWithAlpha(alpha); } } renderer.__popMaskObject(bitmap); renderer.__setBlendMode(10); } }; openfl_display__$internal_CairoBitmap.renderDrawable = function(bitmap,renderer) { }; openfl_display__$internal_CairoBitmap.renderDrawableMask = function(bitmap,renderer) { renderer.cairo.rectangle(0,0,bitmap.get_width(),bitmap.get_height()); }; var openfl_display__$internal_CairoBitmapData = function() { }; $hxClasses["openfl.display._internal.CairoBitmapData"] = openfl_display__$internal_CairoBitmapData; openfl_display__$internal_CairoBitmapData.__name__ = "openfl.display._internal.CairoBitmapData"; openfl_display__$internal_CairoBitmapData.renderDrawable = function(bitmapData,renderer) { }; openfl_display__$internal_CairoBitmapData.renderDrawableMask = function(tilemap,renderer) { }; var openfl_display__$internal_CairoDisplayObject = function() { }; $hxClasses["openfl.display._internal.CairoDisplayObject"] = openfl_display__$internal_CairoDisplayObject; openfl_display__$internal_CairoDisplayObject.__name__ = "openfl.display._internal.CairoDisplayObject"; openfl_display__$internal_CairoDisplayObject.render = function(displayObject,renderer) { }; openfl_display__$internal_CairoDisplayObject.renderDrawable = function(displayObject,renderer) { }; openfl_display__$internal_CairoDisplayObject.renderDrawableMask = function(displayObject,renderer) { }; var openfl_display__$internal_CairoDisplayObjectContainer = function() { }; $hxClasses["openfl.display._internal.CairoDisplayObjectContainer"] = openfl_display__$internal_CairoDisplayObjectContainer; openfl_display__$internal_CairoDisplayObjectContainer.__name__ = "openfl.display._internal.CairoDisplayObjectContainer"; openfl_display__$internal_CairoDisplayObjectContainer.renderDrawable = function(displayObjectContainer,renderer) { }; openfl_display__$internal_CairoDisplayObjectContainer.renderDrawableMask = function(displayObjectContainer,renderer) { }; var openfl_display__$internal_CairoGraphics = function() { }; $hxClasses["openfl.display._internal.CairoGraphics"] = openfl_display__$internal_CairoGraphics; openfl_display__$internal_CairoGraphics.__name__ = "openfl.display._internal.CairoGraphics"; openfl_display__$internal_CairoGraphics.hitTest = function(graphics,x,y) { return false; }; openfl_display__$internal_CairoGraphics.render = function(graphics,renderer) { }; openfl_display__$internal_CairoGraphics.renderMask = function(graphics,renderer) { }; var openfl_display__$internal_CairoShape = function() { }; $hxClasses["openfl.display._internal.CairoShape"] = openfl_display__$internal_CairoShape; openfl_display__$internal_CairoShape.__name__ = "openfl.display._internal.CairoShape"; openfl_display__$internal_CairoShape.render = function(shape,renderer) { }; openfl_display__$internal_CairoShape.renderDrawable = function(shape,renderer) { }; openfl_display__$internal_CairoShape.renderDrawableMask = function(shape,renderer) { }; var openfl_display__$internal_CairoSimpleButton = function() { }; $hxClasses["openfl.display._internal.CairoSimpleButton"] = openfl_display__$internal_CairoSimpleButton; openfl_display__$internal_CairoSimpleButton.__name__ = "openfl.display._internal.CairoSimpleButton"; openfl_display__$internal_CairoSimpleButton.renderDrawable = function(simpleButton,renderer) { if(!simpleButton.__renderable || simpleButton.__worldAlpha <= 0 || simpleButton.__currentState == null) { return; } renderer.__pushMaskObject(simpleButton); renderer.__renderDrawable(simpleButton.__currentState); renderer.__popMaskObject(simpleButton); renderer.__renderEvent(simpleButton); }; openfl_display__$internal_CairoSimpleButton.renderDrawableMask = function(simpleButton,renderer) { renderer.__renderDrawableMask(simpleButton.__currentState); }; var openfl_display__$internal_CairoTextField = function() { }; $hxClasses["openfl.display._internal.CairoTextField"] = openfl_display__$internal_CairoTextField; openfl_display__$internal_CairoTextField.__name__ = "openfl.display._internal.CairoTextField"; openfl_display__$internal_CairoTextField.render = function(textField,renderer,transform) { }; openfl_display__$internal_CairoTextField.renderDrawable = function(textField,renderer) { }; openfl_display__$internal_CairoTextField.renderDrawableMask = function(textField,renderer) { }; var openfl_display__$internal_CairoTilemap = function() { }; $hxClasses["openfl.display._internal.CairoTilemap"] = openfl_display__$internal_CairoTilemap; openfl_display__$internal_CairoTilemap.__name__ = "openfl.display._internal.CairoTilemap"; openfl_display__$internal_CairoTilemap.render = function(tilemap,renderer) { if(!tilemap.__renderable || tilemap.__group.__tiles.length == 0) { return; } var alpha = renderer.__getAlpha(tilemap.__worldAlpha); if(alpha <= 0) { return; } renderer.__setBlendMode(tilemap.__worldBlendMode); renderer.__pushMaskObject(tilemap); var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.__width,tilemap.__height); renderer.__pushMaskRect(rect,tilemap.__renderTransform); openfl_display__$internal_CairoTilemap.renderTileContainer(tilemap.__group,renderer,tilemap.__renderTransform,tilemap.__tileset,renderer.__allowSmoothing && tilemap.smoothing,tilemap.tileAlphaEnabled,alpha,tilemap.tileBlendModeEnabled,tilemap.__worldBlendMode,null,null,null,rect,new lime_math_Matrix3()); renderer.__popMaskRect(); renderer.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); }; openfl_display__$internal_CairoTilemap.renderTileContainer = function(group,renderer,parentTransform,defaultTileset,smooth,alphaEnabled,worldAlpha,blendModeEnabled,defaultBlendMode,cacheBitmapData,surface,pattern,rect,matrix) { var cairo = renderer.cairo; var tileTransform = openfl_geom_Matrix.__pool.get(); var tiles = group.__tiles; var tile; var tileset; var alpha; var visible; var blendMode = null; var id; var tileData; var tileRect; var bitmapData; var _g = 0; while(_g < tiles.length) { var tile = tiles[_g]; ++_g; tileTransform.setTo(1,0,0,1,-tile.get_originX(),-tile.get_originY()); tileTransform.concat(tile.get_matrix()); tileTransform.concat(parentTransform); tileset = tile.get_tileset() != null ? tile.get_tileset() : defaultTileset; alpha = tile.get_alpha() * worldAlpha; visible = tile.get_visible(); if(!visible || alpha <= 0) { continue; } if(!alphaEnabled) { alpha = 1; } if(blendModeEnabled) { blendMode = tile.__blendMode != null ? tile.__blendMode : defaultBlendMode; } if(tile.__length > 0) { openfl_display__$internal_CairoTilemap.renderTileContainer(tile,renderer,tileTransform,tileset,smooth,alphaEnabled,alpha,blendModeEnabled,blendMode,cacheBitmapData,surface,pattern,rect,matrix); } else { if(tileset == null) { continue; } id = tile.get_id(); if(id == -1) { tileRect = tile.__rect; if(tileRect == null || tileRect.width <= 0 || tileRect.height <= 0) { continue; } } else { tileData = tileset.__data[id]; if(tileData == null) { continue; } rect.setTo(tileData.x,tileData.y,tileData.width,tileData.height); tileRect = rect; } bitmapData = tileset.__bitmapData; if(bitmapData == null) { continue; } if(bitmapData != cacheBitmapData) { surface = bitmapData.getSurface(); pattern = lime_graphics_cairo_CairoPattern.createForSurface(surface); lime_graphics_cairo_CairoPattern.set_filter(pattern,smooth ? 1 : 3); cairo.set_source(pattern); cacheBitmapData = bitmapData; } if(blendModeEnabled) { renderer.__setBlendMode(blendMode); } renderer.applyMatrix(tileTransform,cairo); matrix.tx = tileRect.x; matrix.ty = tileRect.y; lime_graphics_cairo_CairoPattern.set_matrix(pattern,matrix); cairo.set_source(pattern); cairo.save(); cairo.newPath(); cairo.rectangle(0,0,tileRect.width,tileRect.height); cairo.clip(); if(alpha == 1) { cairo.paint(); } else { cairo.paintWithAlpha(alpha); } cairo.restore(); } } openfl_geom_Matrix.__pool.release(tileTransform); }; openfl_display__$internal_CairoTilemap.renderDrawable = function(tilemap,renderer) { }; openfl_display__$internal_CairoTilemap.renderDrawableMask = function(tilemap,renderer) { }; var openfl_display__$internal_CanvasBitmap = function() { }; $hxClasses["openfl.display._internal.CanvasBitmap"] = openfl_display__$internal_CanvasBitmap; openfl_display__$internal_CanvasBitmap.__name__ = "openfl.display._internal.CanvasBitmap"; openfl_display__$internal_CanvasBitmap.render = function(bitmap,renderer) { if(!bitmap.__renderable) { return; } var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { var context = renderer.context; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap,false); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image); context.globalAlpha = alpha; var scrollRect = bitmap.__scrollRect; renderer.setTransform(bitmap.__renderTransform,context); if(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height); } 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(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(bitmap,false); } }; openfl_display__$internal_CanvasBitmap.renderDrawable = function(bitmap,renderer) { renderer.__updateCacheBitmap(bitmap,false); if(bitmap.__bitmapData != null && bitmap.__bitmapData.image != null) { bitmap.__imageVersion = bitmap.__bitmapData.image.version; } if(bitmap.__cacheBitmap != null && !bitmap.__isCacheBitmapRender) { var bitmap1 = bitmap.__cacheBitmap; if(bitmap1.__renderable) { var alpha = renderer.__getAlpha(bitmap1.__worldAlpha); if(alpha > 0 && bitmap1.__bitmapData != null && bitmap1.__bitmapData.__isValid && bitmap1.__bitmapData.readable) { var context = renderer.context; renderer.__setBlendMode(bitmap1.__worldBlendMode); renderer.__pushMaskObject(bitmap1,false); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap1.__bitmapData.image); context.globalAlpha = alpha; var scrollRect = bitmap1.__scrollRect; renderer.setTransform(bitmap1.__renderTransform,context); if(!renderer.__allowSmoothing || !bitmap1.smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(bitmap1.__bitmapData.image.get_src(),0,0,bitmap1.__bitmapData.image.width,bitmap1.__bitmapData.image.height); } else { context.drawImage(bitmap1.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height); } if(!renderer.__allowSmoothing || !bitmap1.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(bitmap1,false); } } } else { if(!(bitmap.opaqueBackground == null && bitmap.__graphics == null)) { if(bitmap.__renderable) { var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(!(alpha <= 0)) { if(bitmap.opaqueBackground != null && !bitmap.__isCacheBitmapRender && bitmap.get_width() > 0 && bitmap.get_height() > 0) { renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap); var context = renderer.context; renderer.setTransform(bitmap.__renderTransform,context); var color = bitmap.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,bitmap.get_width(),bitmap.get_height()); renderer.__popMaskObject(bitmap); } if(bitmap.__graphics != null) { if(bitmap.__renderable) { var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(!(alpha <= 0)) { var graphics = bitmap.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer.context; var scrollRect = bitmap.__scrollRect; var scale9Grid = bitmap.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer.__popMaskObject(bitmap); } } } } } } } } } if(bitmap.__renderable) { var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { var context = renderer.context; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap,false); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image); context.globalAlpha = alpha; var scrollRect = bitmap.__scrollRect; renderer.setTransform(bitmap.__renderTransform,context); if(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height); } 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(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(bitmap,false); } } } renderer.__renderEvent(bitmap); }; openfl_display__$internal_CanvasBitmap.renderDrawableMask = function(bitmap,renderer) { renderer.context.rect(0,0,bitmap.get_width(),bitmap.get_height()); }; var openfl_display__$internal_CanvasBitmapData = function() { }; $hxClasses["openfl.display._internal.CanvasBitmapData"] = openfl_display__$internal_CanvasBitmapData; openfl_display__$internal_CanvasBitmapData.__name__ = "openfl.display._internal.CanvasBitmapData"; openfl_display__$internal_CanvasBitmapData.renderDrawable = function(bitmapData,renderer) { if(!bitmapData.readable) { return; } var image = bitmapData.image; if(image.type == lime_graphics_ImageType.DATA) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(image); } var context = renderer.context; context.globalAlpha = 1; renderer.setTransform(bitmapData.__renderTransform,context); context.drawImage(image.get_src(),0,0,image.width,image.height); }; openfl_display__$internal_CanvasBitmapData.renderDrawableMask = function(bitmapData,renderer) { }; var openfl_display__$internal_CanvasDisplayObject = function() { }; $hxClasses["openfl.display._internal.CanvasDisplayObject"] = openfl_display__$internal_CanvasDisplayObject; openfl_display__$internal_CanvasDisplayObject.__name__ = "openfl.display._internal.CanvasDisplayObject"; openfl_display__$internal_CanvasDisplayObject.render = function(displayObject,renderer) { if(displayObject.opaqueBackground == null && displayObject.__graphics == null) { return; } if(!displayObject.__renderable) { return; } var alpha = renderer.__getAlpha(displayObject.__worldAlpha); if(alpha <= 0) { return; } if(displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) { renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); var context = renderer.context; renderer.setTransform(displayObject.__renderTransform,context); var color = displayObject.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,displayObject.get_width(),displayObject.get_height()); renderer.__popMaskObject(displayObject); } if(displayObject.__graphics != null) { if(displayObject.__renderable) { var alpha = renderer.__getAlpha(displayObject.__worldAlpha); if(!(alpha <= 0)) { var graphics = displayObject.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer.context; var scrollRect = displayObject.__scrollRect; var scale9Grid = displayObject.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer.__popMaskObject(displayObject); } } } } } } }; openfl_display__$internal_CanvasDisplayObject.renderDrawable = function(displayObject,renderer) { if(displayObject.get_mask() == null || displayObject.get_mask().get_width() > 0 && displayObject.get_mask().get_height() > 0) { renderer.__updateCacheBitmap(displayObject,false); if(displayObject.__cacheBitmap != null && !displayObject.__isCacheBitmapRender) { var bitmap = displayObject.__cacheBitmap; if(bitmap.__renderable) { var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { var context = renderer.context; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap,false); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image); context.globalAlpha = alpha; var scrollRect = bitmap.__scrollRect; renderer.setTransform(bitmap.__renderTransform,context); if(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height); } 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(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(bitmap,false); } } } else if(!(displayObject.opaqueBackground == null && displayObject.__graphics == null)) { if(displayObject.__renderable) { var alpha = renderer.__getAlpha(displayObject.__worldAlpha); if(!(alpha <= 0)) { if(displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) { renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); var context = renderer.context; renderer.setTransform(displayObject.__renderTransform,context); var color = displayObject.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,displayObject.get_width(),displayObject.get_height()); renderer.__popMaskObject(displayObject); } if(displayObject.__graphics != null) { if(displayObject.__renderable) { var alpha = renderer.__getAlpha(displayObject.__worldAlpha); if(!(alpha <= 0)) { var graphics = displayObject.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer.context; var scrollRect = displayObject.__scrollRect; var scale9Grid = displayObject.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer.__popMaskObject(displayObject); } } } } } } } } } } renderer.__renderEvent(displayObject); }; openfl_display__$internal_CanvasDisplayObject.renderDrawableMask = function(displayObject,renderer) { if(displayObject.__graphics != null) { openfl_display__$internal_CanvasGraphics.renderMask(displayObject.__graphics,renderer); } }; var openfl_display__$internal_CanvasDisplayObjectContainer = function() { }; $hxClasses["openfl.display._internal.CanvasDisplayObjectContainer"] = openfl_display__$internal_CanvasDisplayObjectContainer; openfl_display__$internal_CanvasDisplayObjectContainer.__name__ = "openfl.display._internal.CanvasDisplayObjectContainer"; openfl_display__$internal_CanvasDisplayObjectContainer.renderDrawable = function(displayObjectContainer,renderer) { var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } displayObjectContainer.__removedChildren.set_length(0); if(!displayObjectContainer.__renderable || displayObjectContainer.__worldAlpha <= 0 || displayObjectContainer.get_mask() != null && (displayObjectContainer.get_mask().get_width() <= 0 || displayObjectContainer.get_mask().get_height() <= 0)) { return; } openfl_display__$internal_CanvasDisplayObject.renderDrawable(displayObjectContainer,renderer); if(displayObjectContainer.__cacheBitmap != null && !displayObjectContainer.__isCacheBitmapRender) { return; } renderer.__pushMaskObject(displayObjectContainer); if(renderer.__stage != null) { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawable(child); child.__renderDirty = false; } displayObjectContainer.__renderDirty = false; } else { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawable(child); } } renderer.__popMaskObject(displayObjectContainer); }; openfl_display__$internal_CanvasDisplayObjectContainer.renderDrawableMask = function(displayObjectContainer,renderer) { var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } displayObjectContainer.__removedChildren.set_length(0); if(displayObjectContainer.__graphics != null) { openfl_display__$internal_CanvasGraphics.renderMask(displayObjectContainer.__graphics,renderer); } var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawableMask(child); } }; var openfl_display__$internal_DrawCommandBuffer = function() { if(openfl_display__$internal_DrawCommandBuffer.empty == null) { this.types = []; this.b = []; this.i = []; this.f = []; this.o = []; this.ff = []; this.ii = []; this.copyOnWrite = true; } else { this.clear(); } }; $hxClasses["openfl.display._internal.DrawCommandBuffer"] = openfl_display__$internal_DrawCommandBuffer; openfl_display__$internal_DrawCommandBuffer.__name__ = "openfl.display._internal.DrawCommandBuffer"; openfl_display__$internal_DrawCommandBuffer.prototype = { types: null ,b: null ,copyOnWrite: null ,f: null ,ff: null ,i: null ,ii: null ,o: null ,append: function(other) { if(this.get_length() == 0) { this.types = other.types; this.b = other.b; this.i = other.i; this.f = other.f; this.o = other.o; this.ff = other.ff; this.ii = other.ii; this.copyOnWrite = other.copyOnWrite = true; return other; } var data = new openfl_display__$internal_DrawCommandReader(other); var _g = 0; var _g1 = other.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; this.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]); break; case 1: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; var c1 = data; this.beginFill(c1.buffer.i[c1.iPos],c1.buffer.f[c1.fPos]); break; case 2: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL; var c2 = data; this.beginGradientFill(c2.buffer.o[c2.oPos],c2.buffer.ii[c2.iiPos],c2.buffer.ff[c2.ffPos],c2.buffer.ii[c2.iiPos + 1],c2.buffer.o[c2.oPos + 1],c2.buffer.o[c2.oPos + 2],c2.buffer.o[c2.oPos + 3],c2.buffer.f[c2.fPos]); break; case 3: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; var c3 = data; this.beginShaderFill(c3.buffer.o[c3.oPos]); break; case 4: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; var c4 = data; this.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]); break; case 5: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; var c5 = data; this.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]); break; case 6: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; var c6 = data; this.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]); break; case 7: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; var c7 = data; this.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]); break; case 8: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS; var c8 = data; this.drawQuads(c8.buffer.o[c8.oPos],c8.buffer.o[c8.oPos + 1],c8.buffer.o[c8.oPos + 2]); break; case 9: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c9 = data; this.drawRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]); break; case 10: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; var c10 = data; this.drawRoundRect(c10.buffer.f[c10.fPos],c10.buffer.f[c10.fPos + 1],c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]); break; case 12: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES; var c11 = data; this.drawTriangles(c11.buffer.o[c11.oPos],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3]); break; case 13: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.END_FILL; var c12 = data; this.endFill(); break; case 14: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE; var c13 = data; this.lineBitmapStyle(c13.buffer.o[c13.oPos],c13.buffer.o[c13.oPos + 1],c13.buffer.b[c13.bPos],c13.buffer.b[c13.bPos + 1]); break; case 15: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE; var c14 = data; this.lineGradientStyle(c14.buffer.o[c14.oPos],c14.buffer.ii[c14.iiPos],c14.buffer.ff[c14.ffPos],c14.buffer.ii[c14.iiPos + 1],c14.buffer.o[c14.oPos + 1],c14.buffer.o[c14.oPos + 2],c14.buffer.o[c14.oPos + 3],c14.buffer.f[c14.fPos]); break; case 16: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE; var c15 = data; this.lineStyle(c15.buffer.o[c15.oPos],c15.buffer.i[c15.iPos],c15.buffer.f[c15.fPos],c15.buffer.b[c15.bPos],c15.buffer.o[c15.oPos + 1],c15.buffer.o[c15.oPos + 2],c15.buffer.o[c15.oPos + 3],c15.buffer.f[c15.fPos + 1]); break; case 17: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_TO; var c16 = data; this.lineTo(c16.buffer.f[c16.fPos],c16.buffer.f[c16.fPos + 1]); break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c17 = data; this.moveTo(c17.buffer.f[c17.fPos],c17.buffer.f[c17.fPos + 1]); break; case 20: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX; var c18 = data; this.overrideMatrix(c18.buffer.o[c18.oPos]); break; case 21: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD; var c19 = data; this.windingEvenOdd(); break; case 22: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO; var c20 = data; this.windingNonZero(); break; default: } } data.destroy(); return other; } ,beginBitmapFill: function(bitmap,matrix,repeat,smooth) { this.prepareWrite(); this.types.push(openfl_display__$internal_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.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.BEGIN_FILL); this.i.push(color); this.f.push(alpha); } ,beginGradientFill: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { this.prepareWrite(); this.types.push(openfl_display__$internal_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); } ,beginShaderFill: function(shaderBuffer) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL); this.o.push(shaderBuffer); } ,clear: function() { this.types = openfl_display__$internal_DrawCommandBuffer.empty.types; this.b = openfl_display__$internal_DrawCommandBuffer.empty.b; this.i = openfl_display__$internal_DrawCommandBuffer.empty.i; this.f = openfl_display__$internal_DrawCommandBuffer.empty.f; this.o = openfl_display__$internal_DrawCommandBuffer.empty.o; this.ff = openfl_display__$internal_DrawCommandBuffer.empty.ff; this.ii = openfl_display__$internal_DrawCommandBuffer.empty.ii; this.copyOnWrite = true; } ,copy: function() { var copy = new openfl_display__$internal_DrawCommandBuffer(); copy.append(this); return copy; } ,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { this.prepareWrite(); this.types.push(openfl_display__$internal_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.prepareWrite(); this.types.push(openfl_display__$internal_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; } ,drawCircle: function(x,y,radius) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.DRAW_CIRCLE); this.f.push(x); this.f.push(y); this.f.push(radius); } ,drawEllipse: function(x,y,width,height) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE); this.f.push(x); this.f.push(y); this.f.push(width); this.f.push(height); } ,drawQuads: function(rects,indices,transforms) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.DRAW_QUADS); this.o.push(rects); this.o.push(indices); this.o.push(transforms); } ,drawRect: function(x,y,width,height) { this.prepareWrite(); this.types.push(openfl_display__$internal_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.prepareWrite(); this.types.push(openfl_display__$internal_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); } ,drawTriangles: function(vertices,indices,uvtData,culling) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES); this.o.push(vertices); this.o.push(indices); this.o.push(uvtData); this.o.push(culling); } ,endFill: function() { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.END_FILL); } ,lineBitmapStyle: function(bitmap,matrix,repeat,smooth) { this.prepareWrite(); this.types.push(openfl_display__$internal_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.prepareWrite(); this.types.push(openfl_display__$internal_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.prepareWrite(); this.types.push(openfl_display__$internal_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.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.LINE_TO); this.f.push(x); this.f.push(y); } ,moveTo: function(x,y) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.MOVE_TO); this.f.push(x); this.f.push(y); } ,prepareWrite: function() { if(this.copyOnWrite) { this.types = this.types.slice(); this.b = this.b.slice(); this.i = this.i.slice(); this.f = this.f.slice(); this.o = this.o.slice(); this.ff = this.ff.slice(); this.ii = this.ii.slice(); this.copyOnWrite = false; } } ,overrideBlendMode: function(blendMode) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE); this.o.push(blendMode); } ,overrideMatrix: function(matrix) { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX); this.o.push(matrix); } ,windingEvenOdd: function() { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD); } ,windingNonZero: function() { this.prepareWrite(); this.types.push(openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO); } ,get_length: function() { return this.types.length; } ,__class__: openfl_display__$internal_DrawCommandBuffer ,__properties__: {get_length:"get_length"} }; var openfl_display__$internal_CanvasGraphics = function() { }; $hxClasses["openfl.display._internal.CanvasGraphics"] = openfl_display__$internal_CanvasGraphics; openfl_display__$internal_CanvasGraphics.__name__ = "openfl.display._internal.CanvasGraphics"; openfl_display__$internal_CanvasGraphics.allowSmoothing = null; openfl_display__$internal_CanvasGraphics.bitmapFill = null; openfl_display__$internal_CanvasGraphics.bitmapStroke = null; openfl_display__$internal_CanvasGraphics.bitmapRepeat = null; openfl_display__$internal_CanvasGraphics.bounds = null; openfl_display__$internal_CanvasGraphics.graphics = null; openfl_display__$internal_CanvasGraphics.hasFill = null; openfl_display__$internal_CanvasGraphics.hasStroke = null; openfl_display__$internal_CanvasGraphics.hitTesting = null; openfl_display__$internal_CanvasGraphics.inversePendingMatrix = null; openfl_display__$internal_CanvasGraphics.pendingMatrix = null; openfl_display__$internal_CanvasGraphics.windingRule = null; openfl_display__$internal_CanvasGraphics.worldAlpha = null; openfl_display__$internal_CanvasGraphics.context = null; openfl_display__$internal_CanvasGraphics.hitTestCanvas = null; openfl_display__$internal_CanvasGraphics.hitTestContext = null; openfl_display__$internal_CanvasGraphics.closePath = function(strokeBefore) { if(strokeBefore == null) { strokeBefore = false; } if(openfl_display__$internal_CanvasGraphics.context.strokeStyle == null) { return; } if(!strokeBefore) { openfl_display__$internal_CanvasGraphics.context.closePath(); } openfl_display__$internal_CanvasGraphics.context.stroke(); if(strokeBefore) { openfl_display__$internal_CanvasGraphics.context.closePath(); } openfl_display__$internal_CanvasGraphics.context.beginPath(); }; openfl_display__$internal_CanvasGraphics.createBitmapFill = function(bitmap,bitmapRepeat,smooth) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.image); openfl_display__$internal_CanvasGraphics.setSmoothing(smooth); return openfl_display__$internal_CanvasGraphics.context.createPattern(bitmap.image.get_src(),bitmapRepeat ? "repeat" : "no-repeat"); }; openfl_display__$internal_CanvasGraphics.createGradientPattern = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { var gradientFill = null; var point = null; var point2 = null; var releaseMatrix = false; if(matrix == null) { matrix = openfl_geom_Matrix.__pool.get(); matrix.identity(); releaseMatrix = true; } switch(type) { case 0: gradientFill = openfl_display__$internal_CanvasGraphics.context.createLinearGradient(-819.2,0,819.2,0); openfl_display__$internal_CanvasGraphics.pendingMatrix = matrix.clone(); openfl_display__$internal_CanvasGraphics.inversePendingMatrix = matrix.clone(); openfl_display__$internal_CanvasGraphics.inversePendingMatrix.invert(); break; case 1: var radius = 819.2; if(focalPointRatio > 1.0) { focalPointRatio = 1.0; } else if(focalPointRatio < -1.0) { focalPointRatio = -1.0; } gradientFill = openfl_display__$internal_CanvasGraphics.context.createRadialGradient(radius * focalPointRatio,0,0,0,0,radius); openfl_display__$internal_CanvasGraphics.pendingMatrix = matrix.clone(); openfl_display__$internal_CanvasGraphics.inversePendingMatrix = matrix.clone(); openfl_display__$internal_CanvasGraphics.inversePendingMatrix.invert(); break; } var rgb; var alpha; var r; var g; var b; var ratio; var _g = 0; var _g1 = colors.length; while(_g < _g1) { var i = _g++; rgb = colors[i]; alpha = alphas[i]; r = (rgb & 16711680) >>> 16; g = (rgb & 65280) >>> 8; b = rgb & 255; ratio = ratios[i] / 255; if(ratio < 0) { ratio = 0; } if(ratio > 1) { ratio = 1; } gradientFill.addColorStop(ratio,"rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")"); } if(point != null) { openfl_geom_Point.__pool.release(point); } if(point2 != null) { openfl_geom_Point.__pool.release(point2); } if(releaseMatrix) { openfl_geom_Matrix.__pool.release(matrix); } return gradientFill; }; openfl_display__$internal_CanvasGraphics.createTempPatternCanvas = function(bitmap,repeat,width,height) { var canvas = window.document.createElement("canvas"); var context = canvas.getContext("2d"); canvas.width = width; canvas.height = height; var tmp = bitmap.image.get_src(); context.fillStyle = context.createPattern(tmp,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_display__$internal_CanvasGraphics.hitTesting) { context.fill(openfl_display__$internal_CanvasGraphics.windingRule); } return canvas; }; openfl_display__$internal_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 * 0.70710678118654752440084436210485; var cx2 = -ellipseWidth + ellipseWidth * 0.4142135623730950488016887242097; var cy1 = -ellipseHeight + ellipseHeight * 0.70710678118654752440084436210485; var cy2 = -ellipseHeight + ellipseHeight * 0.4142135623730950488016887242097; openfl_display__$internal_CanvasGraphics.context.moveTo(xe,ye - ellipseHeight); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe,ye + cy2,xe + cx1,ye + cy1); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe + cx2,ye,xe - ellipseWidth,ye); openfl_display__$internal_CanvasGraphics.context.lineTo(x + ellipseWidth,ye); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x - cx2,ye,x - cx1,ye + cy1); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x,ye + cy2,x,ye - ellipseHeight); openfl_display__$internal_CanvasGraphics.context.lineTo(x,y + ellipseHeight); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x,y - cy2,x - cx1,y - cy1); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(x - cx2,y,x + ellipseWidth,y); openfl_display__$internal_CanvasGraphics.context.lineTo(xe - ellipseWidth,y); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe + cx2,y,xe + cx1,y - cy1); openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(xe,y - cy2,xe,y + ellipseHeight); openfl_display__$internal_CanvasGraphics.context.lineTo(xe,ye - ellipseHeight); }; openfl_display__$internal_CanvasGraphics.endFill = function() { openfl_display__$internal_CanvasGraphics.context.beginPath(); openfl_display__$internal_CanvasGraphics.playCommands(openfl_display__$internal_CanvasGraphics.fillCommands,false); openfl_display__$internal_CanvasGraphics.fillCommands.clear(); }; openfl_display__$internal_CanvasGraphics.endStroke = function() { openfl_display__$internal_CanvasGraphics.context.beginPath(); openfl_display__$internal_CanvasGraphics.playCommands(openfl_display__$internal_CanvasGraphics.strokeCommands,true); openfl_display__$internal_CanvasGraphics.context.closePath(); openfl_display__$internal_CanvasGraphics.strokeCommands.clear(); }; openfl_display__$internal_CanvasGraphics.hitTest = function(graphics,x,y) { openfl_display__$internal_CanvasGraphics.bounds = graphics.__bounds; openfl_display__$internal_CanvasGraphics.graphics = graphics; if(graphics.__commands.get_length() == 0 || openfl_display__$internal_CanvasGraphics.bounds == null || openfl_display__$internal_CanvasGraphics.bounds.width <= 0 || openfl_display__$internal_CanvasGraphics.bounds.height <= 0) { return false; } else { openfl_display__$internal_CanvasGraphics.hitTesting = true; var transform = graphics.__renderTransform; var px = x * transform.a + y * transform.c + transform.tx; var py = x * transform.b + y * transform.d + transform.ty; x = px; y = py; x -= openfl_display__$internal_CanvasGraphics.bounds.x * transform.a + openfl_display__$internal_CanvasGraphics.bounds.y * transform.c + transform.tx; y -= openfl_display__$internal_CanvasGraphics.bounds.x * transform.b + openfl_display__$internal_CanvasGraphics.bounds.y * transform.d + transform.ty; var cacheCanvas = graphics.__canvas; var cacheContext = graphics.__context; graphics.__canvas = openfl_display__$internal_CanvasGraphics.hitTestCanvas; graphics.__context = openfl_display__$internal_CanvasGraphics.hitTestContext; openfl_display__$internal_CanvasGraphics.context = graphics.__context; openfl_display__$internal_CanvasGraphics.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); openfl_display__$internal_CanvasGraphics.fillCommands.clear(); openfl_display__$internal_CanvasGraphics.strokeCommands.clear(); openfl_display__$internal_CanvasGraphics.hasFill = false; openfl_display__$internal_CanvasGraphics.hasStroke = false; openfl_display__$internal_CanvasGraphics.bitmapFill = null; openfl_display__$internal_CanvasGraphics.bitmapRepeat = false; openfl_display__$internal_CanvasGraphics.windingRule = "evenodd"; var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0:case 1:case 2:case 3: openfl_display__$internal_CanvasGraphics.endFill(); if(openfl_display__$internal_CanvasGraphics.hasFill && openfl_display__$internal_CanvasGraphics.context.isPointInPath(x,y,openfl_display__$internal_CanvasGraphics.windingRule)) { data.destroy(); graphics.__canvas = cacheCanvas; graphics.__context = cacheContext; return true; } openfl_display__$internal_CanvasGraphics.endStroke(); if(openfl_display__$internal_CanvasGraphics.hasStroke && openfl_display__$internal_CanvasGraphics.context.isPointInStroke(x,y)) { data.destroy(); graphics.__canvas = cacheCanvas; graphics.__context = cacheContext; return true; } if(type == openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]); } else if(type == openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL; var c1 = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]); } else if(type == openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; var c2 = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginShaderFill(c2.buffer.o[c2.oPos]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginShaderFill(c2.buffer.o[c2.oPos]); } else { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; var c3 = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginFill(c3.buffer.i[c3.iPos],1); openfl_display__$internal_CanvasGraphics.strokeCommands.beginFill(c3.buffer.i[c3.iPos],1); } break; case 4: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; var c4 = data; openfl_display__$internal_CanvasGraphics.fillCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]); openfl_display__$internal_CanvasGraphics.strokeCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]); break; case 5: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; var c5 = data; openfl_display__$internal_CanvasGraphics.fillCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]); openfl_display__$internal_CanvasGraphics.strokeCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]); break; case 6: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; var c6 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]); openfl_display__$internal_CanvasGraphics.strokeCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]); break; case 7: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; var c7 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]); openfl_display__$internal_CanvasGraphics.strokeCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]); break; case 9: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c8 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawRect(c8.buffer.f[c8.fPos],c8.buffer.f[c8.fPos + 1],c8.buffer.f[c8.fPos + 2],c8.buffer.f[c8.fPos + 3]); openfl_display__$internal_CanvasGraphics.strokeCommands.drawRect(c8.buffer.f[c8.fPos],c8.buffer.f[c8.fPos + 1],c8.buffer.f[c8.fPos + 2],c8.buffer.f[c8.fPos + 3]); break; case 10: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; var c9 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawRoundRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3],c9.buffer.f[c9.fPos + 4],c9.buffer.o[c9.oPos]); openfl_display__$internal_CanvasGraphics.strokeCommands.drawRoundRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3],c9.buffer.f[c9.fPos + 4],c9.buffer.o[c9.oPos]); break; case 13: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.END_FILL; var this1 = data; openfl_display__$internal_CanvasGraphics.endFill(); if(openfl_display__$internal_CanvasGraphics.hasFill && openfl_display__$internal_CanvasGraphics.context.isPointInPath(x,y,openfl_display__$internal_CanvasGraphics.windingRule)) { data.destroy(); graphics.__canvas = cacheCanvas; graphics.__context = cacheContext; return true; } openfl_display__$internal_CanvasGraphics.endStroke(); if(openfl_display__$internal_CanvasGraphics.hasStroke && openfl_display__$internal_CanvasGraphics.context.isPointInStroke(x,y)) { data.destroy(); graphics.__canvas = cacheCanvas; graphics.__context = cacheContext; return true; } openfl_display__$internal_CanvasGraphics.hasFill = false; openfl_display__$internal_CanvasGraphics.bitmapFill = null; break; case 14: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE; var c10 = data; openfl_display__$internal_CanvasGraphics.strokeCommands.lineBitmapStyle(c10.buffer.o[c10.oPos],c10.buffer.o[c10.oPos + 1],c10.buffer.b[c10.bPos],c10.buffer.b[c10.bPos + 1]); break; case 15: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE; var c11 = data; openfl_display__$internal_CanvasGraphics.strokeCommands.lineGradientStyle(c11.buffer.o[c11.oPos],c11.buffer.ii[c11.iiPos],c11.buffer.ff[c11.ffPos],c11.buffer.ii[c11.iiPos + 1],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3],c11.buffer.f[c11.fPos]); break; case 16: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE; var c12 = data; openfl_display__$internal_CanvasGraphics.strokeCommands.lineStyle(c12.buffer.o[c12.oPos],c12.buffer.i[c12.iPos],1,c12.buffer.b[c12.bPos],c12.buffer.o[c12.oPos + 1],c12.buffer.o[c12.oPos + 2],c12.buffer.o[c12.oPos + 3],c12.buffer.f[c12.fPos + 1]); break; case 17: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_TO; var c13 = data; openfl_display__$internal_CanvasGraphics.fillCommands.lineTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]); openfl_display__$internal_CanvasGraphics.strokeCommands.lineTo(c13.buffer.f[c13.fPos],c13.buffer.f[c13.fPos + 1]); break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c14 = data; openfl_display__$internal_CanvasGraphics.fillCommands.moveTo(c14.buffer.f[c14.fPos],c14.buffer.f[c14.fPos + 1]); openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(c14.buffer.f[c14.fPos],c14.buffer.f[c14.fPos + 1]); break; case 21: openfl_display__$internal_CanvasGraphics.windingRule = "evenodd"; break; case 22: openfl_display__$internal_CanvasGraphics.windingRule = "nonzero"; break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } var hitTest = false; if(openfl_display__$internal_CanvasGraphics.fillCommands.get_length() > 0) { openfl_display__$internal_CanvasGraphics.endFill(); } if(openfl_display__$internal_CanvasGraphics.hasFill && openfl_display__$internal_CanvasGraphics.context.isPointInPath(x,y,openfl_display__$internal_CanvasGraphics.windingRule)) { hitTest = true; } if(openfl_display__$internal_CanvasGraphics.strokeCommands.get_length() > 0) { openfl_display__$internal_CanvasGraphics.endStroke(); } if(openfl_display__$internal_CanvasGraphics.hasStroke && openfl_display__$internal_CanvasGraphics.context.isPointInStroke(x,y)) { hitTest = true; } data.destroy(); graphics.__canvas = cacheCanvas; graphics.__context = cacheContext; return hitTest; } }; openfl_display__$internal_CanvasGraphics.isCCW = function(x1,y1,x2,y2,x3,y3) { return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0; }; openfl_display__$internal_CanvasGraphics.normalizeUVT = function(uvt,skipT) { if(skipT == null) { skipT = false; } var max = -Infinity; var tmp = -Infinity; var len = uvt.get_length(); var _g = 1; var _g1 = len + 1; while(_g < _g1) { var t = _g++; if(skipT && t % 3 == 0) { continue; } tmp = uvt.get(t - 1); if(max < tmp) { max = tmp; } } if(!skipT) { return { max : max, uvt : uvt}; } var result = openfl_Vector.toFloatVector(null); var _g = 1; var _g1 = len + 1; while(_g < _g1) { var t = _g++; if(skipT && t % 3 == 0) { continue; } result.push(uvt.get(t - 1)); } return { max : max, uvt : result}; }; openfl_display__$internal_CanvasGraphics.playCommands = function(commands,stroke) { if(stroke == null) { stroke = false; } openfl_display__$internal_CanvasGraphics.bounds = openfl_display__$internal_CanvasGraphics.graphics.__bounds; var offsetX = openfl_display__$internal_CanvasGraphics.bounds.x; var offsetY = openfl_display__$internal_CanvasGraphics.bounds.y; var positionX = 0.0; var positionY = 0.0; var closeGap = false; var startX = 0.0; var startY = 0.0; var setStart = false; openfl_display__$internal_CanvasGraphics.windingRule = "evenodd"; openfl_display__$internal_CanvasGraphics.setSmoothing(true); var hasPath = false; var data = new openfl_display__$internal_DrawCommandReader(commands); var x; var y; var width; var height; var kappa = .5522848; var ox; var oy; var xe; var ye; var xm; var ym; var r; var g; var b; var optimizationUsed; var canOptimizeMatrix; var st; var sr; var sb; var sl; var stl = null; var sbr = null; var _g = 0; var _g1 = commands.types; _hx_loop1: while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; openfl_display__$internal_CanvasGraphics.bitmapFill = c.buffer.o[c.oPos]; openfl_display__$internal_CanvasGraphics.context.fillStyle = openfl_display__$internal_CanvasGraphics.createBitmapFill(c.buffer.o[c.oPos],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]); openfl_display__$internal_CanvasGraphics.hasFill = true; if(c.buffer.o[c.oPos + 1] != null) { openfl_display__$internal_CanvasGraphics.pendingMatrix = c.buffer.o[c.oPos + 1]; openfl_display__$internal_CanvasGraphics.inversePendingMatrix = c.buffer.o[c.oPos + 1].clone(); openfl_display__$internal_CanvasGraphics.inversePendingMatrix.invert(); } else { openfl_display__$internal_CanvasGraphics.pendingMatrix = null; openfl_display__$internal_CanvasGraphics.inversePendingMatrix = null; } break; case 1: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; var c1 = data; if(c1.buffer.f[c1.fPos] < 0.005) { openfl_display__$internal_CanvasGraphics.hasFill = false; } else { if(c1.buffer.f[c1.fPos] == 1) { var tmp = StringTools.hex(c1.buffer.i[c1.iPos] & 16777215,6); openfl_display__$internal_CanvasGraphics.context.fillStyle = "#" + tmp; } else { r = (c1.buffer.i[c1.iPos] & 16711680) >>> 16; g = (c1.buffer.i[c1.iPos] & 65280) >>> 8; b = c1.buffer.i[c1.iPos] & 255; openfl_display__$internal_CanvasGraphics.context.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + c1.buffer.f[c1.fPos] + ")"; } openfl_display__$internal_CanvasGraphics.bitmapFill = null; openfl_display__$internal_CanvasGraphics.setSmoothing(true); openfl_display__$internal_CanvasGraphics.hasFill = true; } break; case 2: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL; var c2 = data; openfl_display__$internal_CanvasGraphics.context.fillStyle = openfl_display__$internal_CanvasGraphics.createGradientPattern(c2.buffer.o[c2.oPos],c2.buffer.ii[c2.iiPos],c2.buffer.ff[c2.ffPos],c2.buffer.ii[c2.iiPos + 1],c2.buffer.o[c2.oPos + 1],c2.buffer.o[c2.oPos + 2],c2.buffer.o[c2.oPos + 3],c2.buffer.f[c2.fPos]); openfl_display__$internal_CanvasGraphics.bitmapFill = null; openfl_display__$internal_CanvasGraphics.setSmoothing(true); openfl_display__$internal_CanvasGraphics.hasFill = true; break; case 3: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; var c3 = data; var shaderBuffer = c3.buffer.o[c3.oPos]; if(shaderBuffer.inputCount > 0) { openfl_display__$internal_CanvasGraphics.bitmapFill = shaderBuffer.inputs[0]; openfl_display__$internal_CanvasGraphics.context.fillStyle = openfl_display__$internal_CanvasGraphics.createBitmapFill(openfl_display__$internal_CanvasGraphics.bitmapFill,shaderBuffer.inputWrap[0] != 0,shaderBuffer.inputFilter[0] != 5); openfl_display__$internal_CanvasGraphics.hasFill = true; openfl_display__$internal_CanvasGraphics.pendingMatrix = null; openfl_display__$internal_CanvasGraphics.inversePendingMatrix = null; } break; case 4: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; var c4 = data; hasPath = true; openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(c4.buffer.f[c4.fPos] - offsetX,c4.buffer.f[c4.fPos + 1] - offsetY,c4.buffer.f[c4.fPos + 2] - offsetX,c4.buffer.f[c4.fPos + 3] - offsetY,c4.buffer.f[c4.fPos + 4] - offsetX,c4.buffer.f[c4.fPos + 5] - offsetY); break; case 5: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; var c5 = data; hasPath = true; openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(c5.buffer.f[c5.fPos] - offsetX,c5.buffer.f[c5.fPos + 1] - offsetY,c5.buffer.f[c5.fPos + 2] - offsetX,c5.buffer.f[c5.fPos + 3] - offsetY); break; case 6: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; var c6 = data; hasPath = true; openfl_display__$internal_CanvasGraphics.context.moveTo(c6.buffer.f[c6.fPos] - offsetX + c6.buffer.f[c6.fPos + 2],c6.buffer.f[c6.fPos + 1] - offsetY); openfl_display__$internal_CanvasGraphics.context.arc(c6.buffer.f[c6.fPos] - offsetX,c6.buffer.f[c6.fPos + 1] - offsetY,c6.buffer.f[c6.fPos + 2],0,Math.PI * 2,true); break; case 7: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; var c7 = data; hasPath = true; x = c7.buffer.f[c7.fPos]; y = c7.buffer.f[c7.fPos + 1]; width = c7.buffer.f[c7.fPos + 2]; height = c7.buffer.f[c7.fPos + 3]; x -= offsetX; y -= offsetY; ox = width / 2 * kappa; oy = height / 2 * kappa; xe = x + width; ye = y + height; xm = x + width / 2; ym = y + height / 2; openfl_display__$internal_CanvasGraphics.context.moveTo(x,ym); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym); break; case 8: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS; var c8 = data; var rects = c8.buffer.o[c8.oPos]; var indices = c8.buffer.o[c8.oPos + 1]; var transforms = c8.buffer.o[c8.oPos + 2]; var hasIndices = indices != null; var transformABCD = false; var transformXY = false; var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4); if(length == 0) { return; } if(transforms != null) { if(transforms.get_length() >= length * 6) { transformABCD = true; transformXY = true; } else if(transforms.get_length() >= length * 4) { transformABCD = true; } else if(transforms.get_length() >= length * 2) { transformXY = true; } } var tileRect = openfl_geom_Rectangle.__pool.get(); var tileTransform = openfl_geom_Matrix.__pool.get(); var transform = openfl_display__$internal_CanvasGraphics.graphics.__renderTransform; var alpha = openfl_display__$internal_CanvasGraphics.worldAlpha; var ri; var ti; openfl_display__$internal_CanvasGraphics.context.save(); var _g2 = 0; var _g3 = length; while(_g2 < _g3) { var i = _g2++; ri = hasIndices ? indices.get(i) * 4 : i * 4; if(ri < 0) { continue; } tileRect.setTo(rects.get(ri),rects.get(ri + 1),rects.get(ri + 2),rects.get(ri + 3)); if(tileRect.width <= 0 || tileRect.height <= 0) { continue; } if(transformABCD && transformXY) { ti = i * 6; tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),transforms.get(ti + 4),transforms.get(ti + 5)); } else if(transformABCD) { ti = i * 4; tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),tileRect.x,tileRect.y); } else if(transformXY) { ti = i * 2; tileTransform.tx = transforms.get(ti); tileTransform.ty = transforms.get(ti + 1); } else { tileTransform.tx = tileRect.x; tileTransform.ty = tileRect.y; } tileTransform.tx += positionX - offsetX; tileTransform.ty += positionY - offsetY; tileTransform.concat(transform); openfl_display__$internal_CanvasGraphics.context.setTransform(tileTransform.a,tileTransform.b,tileTransform.c,tileTransform.d,tileTransform.tx,tileTransform.ty); if(openfl_display__$internal_CanvasGraphics.bitmapFill != null) { openfl_display__$internal_CanvasGraphics.context.drawImage(openfl_display__$internal_CanvasGraphics.bitmapFill.image.get_src(),tileRect.x,tileRect.y,tileRect.width,tileRect.height,0,0,tileRect.width,tileRect.height); } else { openfl_display__$internal_CanvasGraphics.context.fillRect(0,0,tileRect.width,tileRect.height); } } openfl_geom_Rectangle.__pool.release(tileRect); openfl_geom_Matrix.__pool.release(tileTransform); openfl_display__$internal_CanvasGraphics.context.restore(); break; case 9: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c9 = data; optimizationUsed = false; if(openfl_display__$internal_CanvasGraphics.bitmapFill != null && !openfl_display__$internal_CanvasGraphics.hitTesting) { st = 0; sr = 0; sb = 0; sl = 0; canOptimizeMatrix = true; if(openfl_display__$internal_CanvasGraphics.pendingMatrix != null) { if(openfl_display__$internal_CanvasGraphics.pendingMatrix.b != 0 || openfl_display__$internal_CanvasGraphics.pendingMatrix.c != 0) { canOptimizeMatrix = false; } else { if(stl == null) { stl = openfl_geom_Point.__pool.get(); } if(sbr == null) { sbr = openfl_geom_Point.__pool.get(); } stl.setTo(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1]); var _this = openfl_display__$internal_CanvasGraphics.inversePendingMatrix; var px = stl.x; var py = stl.y; stl.x = px * _this.a + py * _this.c + _this.tx; stl.y = px * _this.b + py * _this.d + _this.ty; sbr.setTo(c9.buffer.f[c9.fPos] + c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 1] + c9.buffer.f[c9.fPos + 3]); var _this1 = openfl_display__$internal_CanvasGraphics.inversePendingMatrix; var px1 = sbr.x; var py1 = sbr.y; sbr.x = px1 * _this1.a + py1 * _this1.c + _this1.tx; sbr.y = px1 * _this1.b + py1 * _this1.d + _this1.ty; st = stl.y; sl = stl.x; sb = sbr.y; sr = sbr.x; } } else { st = c9.buffer.f[c9.fPos + 1]; sl = c9.buffer.f[c9.fPos]; sb = c9.buffer.f[c9.fPos + 1] + c9.buffer.f[c9.fPos + 3]; sr = c9.buffer.f[c9.fPos] + c9.buffer.f[c9.fPos + 2]; } if(canOptimizeMatrix && st >= 0 && sl >= 0 && sr <= openfl_display__$internal_CanvasGraphics.bitmapFill.width && sb <= openfl_display__$internal_CanvasGraphics.bitmapFill.height) { optimizationUsed = true; if(!openfl_display__$internal_CanvasGraphics.hitTesting) { openfl_display__$internal_CanvasGraphics.context.drawImage(openfl_display__$internal_CanvasGraphics.bitmapFill.image.get_src(),sl,st,sr - sl,sb - st,c9.buffer.f[c9.fPos] - offsetX,c9.buffer.f[c9.fPos + 1] - offsetY,c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]); } } } if(!optimizationUsed) { hasPath = true; openfl_display__$internal_CanvasGraphics.context.rect(c9.buffer.f[c9.fPos] - offsetX,c9.buffer.f[c9.fPos + 1] - offsetY,c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]); } break; case 10: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; var c10 = data; hasPath = true; openfl_display__$internal_CanvasGraphics.drawRoundRect(c10.buffer.f[c10.fPos] - offsetX,c10.buffer.f[c10.fPos + 1] - offsetY,c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]); break; case 12: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES; var c11 = data; var v = c11.buffer.o[c11.oPos]; var ind = c11.buffer.o[c11.oPos + 1]; var uvt = c11.buffer.o[c11.oPos + 2]; var pattern = null; var colorFill = openfl_display__$internal_CanvasGraphics.bitmapFill == null; if(colorFill && uvt != null) { break _hx_loop1; } if(!colorFill) { if(uvt == null) { uvt = openfl_Vector.toFloatVector(null); var _g4 = 0; var _g5 = v.get_length() / 2 | 0; while(_g4 < _g5) { var i1 = _g4++; uvt.push(v.get(i1 * 2) - offsetX / openfl_display__$internal_CanvasGraphics.bitmapFill.width); uvt.push(v.get(i1 * 2 + 1) - offsetY / openfl_display__$internal_CanvasGraphics.bitmapFill.height); } } var skipT = uvt.get_length() != v.get_length(); var normalizedUVT = openfl_display__$internal_CanvasGraphics.normalizeUVT(uvt,skipT); var maxUVT = normalizedUVT.max; uvt = normalizedUVT.uvt; if(maxUVT > 1) { pattern = openfl_display__$internal_CanvasGraphics.createTempPatternCanvas(openfl_display__$internal_CanvasGraphics.bitmapFill,openfl_display__$internal_CanvasGraphics.bitmapRepeat,openfl_display__$internal_CanvasGraphics.bounds.width | 0,openfl_display__$internal_CanvasGraphics.bounds.height | 0); } else { pattern = openfl_display__$internal_CanvasGraphics.createTempPatternCanvas(openfl_display__$internal_CanvasGraphics.bitmapFill,openfl_display__$internal_CanvasGraphics.bitmapRepeat,openfl_display__$internal_CanvasGraphics.bitmapFill.width,openfl_display__$internal_CanvasGraphics.bitmapFill.height); } } var i2 = 0; var l = ind.get_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(i2 < l) { a_ = i2; b_ = i2 + 1; c_ = i2 + 2; iax = ind.get(a_) * 2; iay = ind.get(a_) * 2 + 1; ibx = ind.get(b_) * 2; iby = ind.get(b_) * 2 + 1; icx = ind.get(c_) * 2; icy = ind.get(c_) * 2 + 1; x1 = v.get(iax) - offsetX; y1 = v.get(iay) - offsetY; x2 = v.get(ibx) - offsetX; y2 = v.get(iby) - offsetY; x3 = v.get(icx) - offsetX; y3 = v.get(icy) - offsetY; switch(c11.buffer.o[c11.oPos + 3]) { case 0: if((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0) { i2 += 3; continue; } break; case 2: if(!((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0)) { i2 += 3; continue; } break; default: } if(colorFill) { openfl_display__$internal_CanvasGraphics.context.beginPath(); openfl_display__$internal_CanvasGraphics.context.moveTo(x1,y1); openfl_display__$internal_CanvasGraphics.context.lineTo(x2,y2); openfl_display__$internal_CanvasGraphics.context.lineTo(x3,y3); openfl_display__$internal_CanvasGraphics.context.closePath(); if(!openfl_display__$internal_CanvasGraphics.hitTesting) { openfl_display__$internal_CanvasGraphics.context.fill(openfl_display__$internal_CanvasGraphics.windingRule); } i2 += 3; continue; } uvx1 = uvt.get(iax) * pattern.width; uvx2 = uvt.get(ibx) * pattern.width; uvx3 = uvt.get(icx) * pattern.width; uvy1 = uvt.get(iay) * pattern.height; uvy2 = uvt.get(iby) * pattern.height; uvy3 = uvt.get(icy) * pattern.height; denom = uvx1 * (uvy3 - uvy2) - uvx2 * uvy3 + uvx3 * uvy2 + (uvx2 - uvx3) * uvy1; if(denom == 0) { i2 += 3; openfl_display__$internal_CanvasGraphics.context.restore(); continue; } openfl_display__$internal_CanvasGraphics.context.save(); openfl_display__$internal_CanvasGraphics.context.beginPath(); openfl_display__$internal_CanvasGraphics.context.moveTo(x1,y1); openfl_display__$internal_CanvasGraphics.context.lineTo(x2,y2); openfl_display__$internal_CanvasGraphics.context.lineTo(x3,y3); openfl_display__$internal_CanvasGraphics.context.closePath(); openfl_display__$internal_CanvasGraphics.context.clip(); 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_display__$internal_CanvasGraphics.context.transform(t1,t2,t3,t4,dx,dy); openfl_display__$internal_CanvasGraphics.context.drawImage(pattern,0,0,pattern.width,pattern.height); openfl_display__$internal_CanvasGraphics.context.restore(); i2 += 3; } break; case 14: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE; var c12 = data; if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) { openfl_display__$internal_CanvasGraphics.closePath(true); } openfl_display__$internal_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY); openfl_display__$internal_CanvasGraphics.context.strokeStyle = openfl_display__$internal_CanvasGraphics.createBitmapFill(c12.buffer.o[c12.oPos],c12.buffer.b[c12.bPos],c12.buffer.b[c12.bPos + 1]); openfl_display__$internal_CanvasGraphics.hasStroke = true; break; case 15: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE; var c13 = data; if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) { openfl_display__$internal_CanvasGraphics.closePath(true); } openfl_display__$internal_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY); openfl_display__$internal_CanvasGraphics.context.strokeStyle = openfl_display__$internal_CanvasGraphics.createGradientPattern(c13.buffer.o[c13.oPos],c13.buffer.ii[c13.iiPos],c13.buffer.ff[c13.ffPos],c13.buffer.ii[c13.iiPos + 1],c13.buffer.o[c13.oPos + 1],c13.buffer.o[c13.oPos + 2],c13.buffer.o[c13.oPos + 3],c13.buffer.f[c13.fPos]); openfl_display__$internal_CanvasGraphics.setSmoothing(true); openfl_display__$internal_CanvasGraphics.hasStroke = true; break; case 16: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE; var c14 = data; if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) { openfl_display__$internal_CanvasGraphics.closePath(true); } openfl_display__$internal_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY); if(c14.buffer.o[c14.oPos] == null) { openfl_display__$internal_CanvasGraphics.hasStroke = false; } else { openfl_display__$internal_CanvasGraphics.context.lineWidth = c14.buffer.o[c14.oPos] > 0 ? c14.buffer.o[c14.oPos] : 1; var tmp1 = c14.buffer.o[c14.oPos + 3] == null ? "round" : (c14.buffer.o[c14.oPos + 3] == null ? "null" : openfl_display_JointStyle.toString(c14.buffer.o[c14.oPos + 3])).toLowerCase(); openfl_display__$internal_CanvasGraphics.context.lineJoin = tmp1; var tmp2 = c14.buffer.o[c14.oPos + 2] == null ? "round" : c14.buffer.o[c14.oPos + 2] == 0 ? "butt" : (c14.buffer.o[c14.oPos + 2] == null ? "null" : openfl_display_CapsStyle.toString(c14.buffer.o[c14.oPos + 2])).toLowerCase(); openfl_display__$internal_CanvasGraphics.context.lineCap = tmp2; openfl_display__$internal_CanvasGraphics.context.miterLimit = c14.buffer.f[c14.fPos + 1]; if(c14.buffer.f[c14.fPos] == 1) { var tmp3 = StringTools.hex(c14.buffer.i[c14.iPos] & 16777215,6); openfl_display__$internal_CanvasGraphics.context.strokeStyle = "#" + tmp3; } else { r = (c14.buffer.i[c14.iPos] & 16711680) >>> 16; g = (c14.buffer.i[c14.iPos] & 65280) >>> 8; b = c14.buffer.i[c14.iPos] & 255; openfl_display__$internal_CanvasGraphics.context.strokeStyle = "rgba(" + r + ", " + g + ", " + b + ", " + c14.buffer.f[c14.fPos] + ")"; } openfl_display__$internal_CanvasGraphics.setSmoothing(true); openfl_display__$internal_CanvasGraphics.hasStroke = true; } break; case 17: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_TO; var c15 = data; hasPath = true; openfl_display__$internal_CanvasGraphics.context.lineTo(c15.buffer.f[c15.fPos] - offsetX,c15.buffer.f[c15.fPos + 1] - offsetY); positionX = c15.buffer.f[c15.fPos]; positionY = c15.buffer.f[c15.fPos + 1]; if(positionX == startX && positionY == startY) { closeGap = true; } break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c16 = data; openfl_display__$internal_CanvasGraphics.context.moveTo(c16.buffer.f[c16.fPos] - offsetX,c16.buffer.f[c16.fPos + 1] - offsetY); positionX = c16.buffer.f[c16.fPos]; positionY = c16.buffer.f[c16.fPos + 1]; if(setStart && c16.buffer.f[c16.fPos] != startX && c16.buffer.f[c16.fPos + 1] != startY) { closeGap = true; } startX = c16.buffer.f[c16.fPos]; startY = c16.buffer.f[c16.fPos + 1]; setStart = true; break; case 21: openfl_display__$internal_CanvasGraphics.windingRule = "evenodd"; break; case 22: openfl_display__$internal_CanvasGraphics.windingRule = "nonzero"; break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } if(stl != null) { openfl_geom_Point.__pool.release(stl); } if(sbr != null) { openfl_geom_Point.__pool.release(sbr); } data.destroy(); if(hasPath) { if(stroke && openfl_display__$internal_CanvasGraphics.hasStroke) { if(openfl_display__$internal_CanvasGraphics.hasFill) { if(positionX != startX || positionY != startY) { openfl_display__$internal_CanvasGraphics.context.lineTo(startX - offsetX,startY - offsetY); closeGap = true; } if(closeGap) { openfl_display__$internal_CanvasGraphics.closePath(true); } } else if(closeGap && positionX == startX && positionY == startY) { openfl_display__$internal_CanvasGraphics.closePath(true); } if(!openfl_display__$internal_CanvasGraphics.hitTesting) { openfl_display__$internal_CanvasGraphics.context.stroke(); } } if(!stroke) { if(openfl_display__$internal_CanvasGraphics.hasFill || openfl_display__$internal_CanvasGraphics.bitmapFill != null) { openfl_display__$internal_CanvasGraphics.context.translate(-openfl_display__$internal_CanvasGraphics.bounds.x,-openfl_display__$internal_CanvasGraphics.bounds.y); if(openfl_display__$internal_CanvasGraphics.pendingMatrix != null) { openfl_display__$internal_CanvasGraphics.context.transform(openfl_display__$internal_CanvasGraphics.pendingMatrix.a,openfl_display__$internal_CanvasGraphics.pendingMatrix.b,openfl_display__$internal_CanvasGraphics.pendingMatrix.c,openfl_display__$internal_CanvasGraphics.pendingMatrix.d,openfl_display__$internal_CanvasGraphics.pendingMatrix.tx,openfl_display__$internal_CanvasGraphics.pendingMatrix.ty); if(!openfl_display__$internal_CanvasGraphics.hitTesting) { openfl_display__$internal_CanvasGraphics.context.fill(openfl_display__$internal_CanvasGraphics.windingRule); } openfl_display__$internal_CanvasGraphics.context.transform(openfl_display__$internal_CanvasGraphics.inversePendingMatrix.a,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.b,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.c,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.d,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.tx,openfl_display__$internal_CanvasGraphics.inversePendingMatrix.ty); } else if(!openfl_display__$internal_CanvasGraphics.hitTesting) { openfl_display__$internal_CanvasGraphics.context.fill(openfl_display__$internal_CanvasGraphics.windingRule); } openfl_display__$internal_CanvasGraphics.context.translate(openfl_display__$internal_CanvasGraphics.bounds.x,openfl_display__$internal_CanvasGraphics.bounds.y); openfl_display__$internal_CanvasGraphics.context.closePath(); } } } }; openfl_display__$internal_CanvasGraphics.render = function(graphics,renderer) { var pixelRatio = renderer.__pixelRatio; graphics.__update(renderer.__worldTransform,pixelRatio); if(graphics.__softwareDirty) { openfl_display__$internal_CanvasGraphics.hitTesting = false; openfl_display__$internal_CanvasGraphics.graphics = graphics; openfl_display__$internal_CanvasGraphics.allowSmoothing = renderer.__allowSmoothing; openfl_display__$internal_CanvasGraphics.worldAlpha = renderer.__getAlpha(graphics.__owner.__worldAlpha); openfl_display__$internal_CanvasGraphics.bounds = graphics.__bounds; var width = graphics.__width; var height = graphics.__height; if(!graphics.__visible || graphics.__commands.get_length() == 0 || openfl_display__$internal_CanvasGraphics.bounds == null || width < 1 || height < 1) { graphics.__canvas = null; graphics.__context = null; graphics.__bitmap = null; } else { if(graphics.__canvas == null) { graphics.__canvas = window.document.createElement("canvas"); graphics.__context = graphics.__canvas.getContext("2d"); } openfl_display__$internal_CanvasGraphics.context = graphics.__context; var transform = graphics.__renderTransform; var canvas = graphics.__canvas; var scale = renderer.__pixelRatio; var scaledWidth = width * scale | 0; var scaledHeight = height * scale | 0; renderer.__setBlendModeContext(openfl_display__$internal_CanvasGraphics.context,10); if(renderer.__isDOM) { if(canvas.width == scaledWidth && canvas.height == scaledHeight) { openfl_display__$internal_CanvasGraphics.context.clearRect(0,0,scaledWidth,scaledHeight); } else { canvas.width = scaledWidth; canvas.height = scaledHeight; canvas.style.width = width + "px"; canvas.style.height = height + "px"; } var transform1 = graphics.__renderTransform; openfl_display__$internal_CanvasGraphics.context.setTransform(transform1.a * scale,transform1.b * scale,transform1.c * scale,transform1.d * scale,transform1.tx * scale,transform1.ty * scale); } else { if(canvas.width == scaledWidth && canvas.height == scaledHeight) { openfl_display__$internal_CanvasGraphics.context.closePath(); openfl_display__$internal_CanvasGraphics.context.setTransform(1,0,0,1,0,0); openfl_display__$internal_CanvasGraphics.context.clearRect(0,0,scaledWidth,scaledHeight); } else { canvas.width = width; canvas.height = height; } openfl_display__$internal_CanvasGraphics.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); } openfl_display__$internal_CanvasGraphics.fillCommands.clear(); openfl_display__$internal_CanvasGraphics.strokeCommands.clear(); openfl_display__$internal_CanvasGraphics.hasFill = false; openfl_display__$internal_CanvasGraphics.hasStroke = false; openfl_display__$internal_CanvasGraphics.bitmapFill = null; openfl_display__$internal_CanvasGraphics.bitmapRepeat = false; var hasLineStyle = false; var initStrokeX = 0.0; var initStrokeY = 0.0; openfl_display__$internal_CanvasGraphics.windingRule = "evenodd"; var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0:case 1:case 2:case 3: openfl_display__$internal_CanvasGraphics.endFill(); openfl_display__$internal_CanvasGraphics.endStroke(); if(type == openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginBitmapFill(c.buffer.o[c.oPos],c.buffer.o[c.oPos + 1],c.buffer.b[c.bPos],c.buffer.b[c.bPos + 1]); } else if(type == openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL; var c1 = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginGradientFill(c1.buffer.o[c1.oPos],c1.buffer.ii[c1.iiPos],c1.buffer.ff[c1.ffPos],c1.buffer.ii[c1.iiPos + 1],c1.buffer.o[c1.oPos + 1],c1.buffer.o[c1.oPos + 2],c1.buffer.o[c1.oPos + 3],c1.buffer.f[c1.fPos]); } else if(type == openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; var c2 = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginShaderFill(c2.buffer.o[c2.oPos]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginShaderFill(c2.buffer.o[c2.oPos]); } else { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; var c3 = data; openfl_display__$internal_CanvasGraphics.fillCommands.beginFill(c3.buffer.i[c3.iPos],c3.buffer.f[c3.fPos]); openfl_display__$internal_CanvasGraphics.strokeCommands.beginFill(c3.buffer.i[c3.iPos],c3.buffer.f[c3.fPos]); } break; case 4: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; var c4 = data; openfl_display__$internal_CanvasGraphics.fillCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.cubicCurveTo(c4.buffer.f[c4.fPos],c4.buffer.f[c4.fPos + 1],c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3],c4.buffer.f[c4.fPos + 4],c4.buffer.f[c4.fPos + 5]); } else { initStrokeX = c4.buffer.f[c4.fPos + 4]; initStrokeY = c4.buffer.f[c4.fPos + 5]; } break; case 5: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; var c5 = data; openfl_display__$internal_CanvasGraphics.fillCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.curveTo(c5.buffer.f[c5.fPos],c5.buffer.f[c5.fPos + 1],c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3]); } else { initStrokeX = c5.buffer.f[c5.fPos + 2]; initStrokeY = c5.buffer.f[c5.fPos + 3]; } break; case 6: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; var c6 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.drawCircle(c6.buffer.f[c6.fPos],c6.buffer.f[c6.fPos + 1],c6.buffer.f[c6.fPos + 2]); } break; case 7: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; var c7 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.drawEllipse(c7.buffer.f[c7.fPos],c7.buffer.f[c7.fPos + 1],c7.buffer.f[c7.fPos + 2],c7.buffer.f[c7.fPos + 3]); } break; case 8: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS; var c8 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawQuads(c8.buffer.o[c8.oPos],c8.buffer.o[c8.oPos + 1],c8.buffer.o[c8.oPos + 2]); break; case 9: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c9 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.drawRect(c9.buffer.f[c9.fPos],c9.buffer.f[c9.fPos + 1],c9.buffer.f[c9.fPos + 2],c9.buffer.f[c9.fPos + 3]); } break; case 10: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; var c10 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawRoundRect(c10.buffer.f[c10.fPos],c10.buffer.f[c10.fPos + 1],c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.drawRoundRect(c10.buffer.f[c10.fPos],c10.buffer.f[c10.fPos + 1],c10.buffer.f[c10.fPos + 2],c10.buffer.f[c10.fPos + 3],c10.buffer.f[c10.fPos + 4],c10.buffer.o[c10.oPos]); } break; case 12: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES; var c11 = data; openfl_display__$internal_CanvasGraphics.fillCommands.drawTriangles(c11.buffer.o[c11.oPos],c11.buffer.o[c11.oPos + 1],c11.buffer.o[c11.oPos + 2],c11.buffer.o[c11.oPos + 3]); break; case 13: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.END_FILL; var this1 = data; openfl_display__$internal_CanvasGraphics.endFill(); openfl_display__$internal_CanvasGraphics.endStroke(); openfl_display__$internal_CanvasGraphics.hasFill = false; hasLineStyle = false; openfl_display__$internal_CanvasGraphics.bitmapFill = null; initStrokeX = 0; initStrokeY = 0; break; case 14: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE; var c12 = data; if(!hasLineStyle && (initStrokeX != 0 || initStrokeY != 0)) { openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY); initStrokeX = 0; initStrokeY = 0; } hasLineStyle = true; openfl_display__$internal_CanvasGraphics.strokeCommands.lineBitmapStyle(c12.buffer.o[c12.oPos],c12.buffer.o[c12.oPos + 1],c12.buffer.b[c12.bPos],c12.buffer.b[c12.bPos + 1]); break; case 15: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE; var c13 = data; if(!hasLineStyle && (initStrokeX != 0 || initStrokeY != 0)) { openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY); initStrokeX = 0; initStrokeY = 0; } hasLineStyle = true; openfl_display__$internal_CanvasGraphics.strokeCommands.lineGradientStyle(c13.buffer.o[c13.oPos],c13.buffer.ii[c13.iiPos],c13.buffer.ff[c13.ffPos],c13.buffer.ii[c13.iiPos + 1],c13.buffer.o[c13.oPos + 1],c13.buffer.o[c13.oPos + 2],c13.buffer.o[c13.oPos + 3],c13.buffer.f[c13.fPos]); break; case 16: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE; var c14 = data; if(!hasLineStyle && c14.buffer.o[c14.oPos] != null) { if(initStrokeX != 0 || initStrokeY != 0) { openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY); initStrokeX = 0; initStrokeY = 0; } } hasLineStyle = c14.buffer.o[c14.oPos] != null; openfl_display__$internal_CanvasGraphics.strokeCommands.lineStyle(c14.buffer.o[c14.oPos],c14.buffer.i[c14.iPos],c14.buffer.f[c14.fPos],c14.buffer.b[c14.bPos],c14.buffer.o[c14.oPos + 1],c14.buffer.o[c14.oPos + 2],c14.buffer.o[c14.oPos + 3],c14.buffer.f[c14.fPos + 1]); break; case 17: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_TO; var c15 = data; openfl_display__$internal_CanvasGraphics.fillCommands.lineTo(c15.buffer.f[c15.fPos],c15.buffer.f[c15.fPos + 1]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.lineTo(c15.buffer.f[c15.fPos],c15.buffer.f[c15.fPos + 1]); } else { initStrokeX = c15.buffer.f[c15.fPos]; initStrokeY = c15.buffer.f[c15.fPos + 1]; } break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c16 = data; openfl_display__$internal_CanvasGraphics.fillCommands.moveTo(c16.buffer.f[c16.fPos],c16.buffer.f[c16.fPos + 1]); if(hasLineStyle) { openfl_display__$internal_CanvasGraphics.strokeCommands.moveTo(c16.buffer.f[c16.fPos],c16.buffer.f[c16.fPos + 1]); } else { initStrokeX = c16.buffer.f[c16.fPos]; initStrokeY = c16.buffer.f[c16.fPos + 1]; } break; case 19: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE; var c17 = data; renderer.__setBlendModeContext(openfl_display__$internal_CanvasGraphics.context,c17.buffer.o[c17.oPos]); break; case 21: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD; var this2 = data; openfl_display__$internal_CanvasGraphics.fillCommands.windingEvenOdd(); openfl_display__$internal_CanvasGraphics.windingRule = "evenodd"; break; case 22: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO; var this3 = data; openfl_display__$internal_CanvasGraphics.fillCommands.windingNonZero(); openfl_display__$internal_CanvasGraphics.windingRule = "nonzero"; break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } if(openfl_display__$internal_CanvasGraphics.fillCommands.get_length() > 0) { openfl_display__$internal_CanvasGraphics.endFill(); } if(openfl_display__$internal_CanvasGraphics.strokeCommands.get_length() > 0) { openfl_display__$internal_CanvasGraphics.endStroke(); } data.destroy(); graphics.__bitmap = openfl_display_BitmapData.fromCanvas(graphics.__canvas); } graphics.__softwareDirty = false; graphics.set___dirty(false); } }; openfl_display__$internal_CanvasGraphics.renderMask = function(graphics,renderer) { if(graphics.__commands.get_length() != 0) { openfl_display__$internal_CanvasGraphics.context = renderer.context; var positionX = 0.0; var positionY = 0.0; var offsetX = 0; var offsetY = 0; var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands); var x; var y; var width; var height; var kappa = .5522848; var ox; var oy; var xe; var ye; var xm; var ym; var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 4: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; var c = data; openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(c.buffer.f[c.fPos] - offsetX,c.buffer.f[c.fPos + 1] - offsetY,c.buffer.f[c.fPos + 2] - offsetX,c.buffer.f[c.fPos + 3] - offsetY,c.buffer.f[c.fPos + 4] - offsetX,c.buffer.f[c.fPos + 5] - offsetY); positionX = c.buffer.f[c.fPos + 4]; positionY = c.buffer.f[c.fPos + 5]; break; case 5: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; var c1 = data; openfl_display__$internal_CanvasGraphics.context.quadraticCurveTo(c1.buffer.f[c1.fPos] - offsetX,c1.buffer.f[c1.fPos + 1] - offsetY,c1.buffer.f[c1.fPos + 2] - offsetX,c1.buffer.f[c1.fPos + 3] - offsetY); positionX = c1.buffer.f[c1.fPos + 2]; positionY = c1.buffer.f[c1.fPos + 3]; break; case 6: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; var c2 = data; openfl_display__$internal_CanvasGraphics.context.arc(c2.buffer.f[c2.fPos] - offsetX,c2.buffer.f[c2.fPos + 1] - offsetY,c2.buffer.f[c2.fPos + 2],0,Math.PI * 2,true); break; case 7: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; var c3 = data; x = c3.buffer.f[c3.fPos]; y = c3.buffer.f[c3.fPos + 1]; width = c3.buffer.f[c3.fPos + 2]; height = c3.buffer.f[c3.fPos + 3]; x -= offsetX; y -= offsetY; ox = width / 2 * kappa; oy = height / 2 * kappa; xe = x + width; ye = y + height; xm = x + width / 2; ym = y + height / 2; openfl_display__$internal_CanvasGraphics.context.moveTo(x,ym); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye); openfl_display__$internal_CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym); break; case 9: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c4 = data; openfl_display__$internal_CanvasGraphics.context.beginPath(); openfl_display__$internal_CanvasGraphics.context.rect(c4.buffer.f[c4.fPos] - offsetX,c4.buffer.f[c4.fPos + 1] - offsetY,c4.buffer.f[c4.fPos + 2],c4.buffer.f[c4.fPos + 3]); openfl_display__$internal_CanvasGraphics.context.closePath(); break; case 10: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; var c5 = data; openfl_display__$internal_CanvasGraphics.drawRoundRect(c5.buffer.f[c5.fPos] - offsetX,c5.buffer.f[c5.fPos + 1] - offsetY,c5.buffer.f[c5.fPos + 2],c5.buffer.f[c5.fPos + 3],c5.buffer.f[c5.fPos + 4],c5.buffer.o[c5.oPos]); break; case 17: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.LINE_TO; var c6 = data; openfl_display__$internal_CanvasGraphics.context.lineTo(c6.buffer.f[c6.fPos] - offsetX,c6.buffer.f[c6.fPos + 1] - offsetY); positionX = c6.buffer.f[c6.fPos]; positionY = c6.buffer.f[c6.fPos + 1]; break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c7 = data; openfl_display__$internal_CanvasGraphics.context.moveTo(c7.buffer.f[c7.fPos] - offsetX,c7.buffer.f[c7.fPos + 1] - offsetY); positionX = c7.buffer.f[c7.fPos]; positionY = c7.buffer.f[c7.fPos + 1]; break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } data.destroy(); } }; openfl_display__$internal_CanvasGraphics.setSmoothing = function(smooth) { if(!openfl_display__$internal_CanvasGraphics.allowSmoothing) { smooth = false; } if(openfl_display__$internal_CanvasGraphics.context.imageSmoothingEnabled != smooth) { openfl_display__$internal_CanvasGraphics.context.imageSmoothingEnabled = smooth; } }; var openfl_display__$internal_CanvasShape = function() { }; $hxClasses["openfl.display._internal.CanvasShape"] = openfl_display__$internal_CanvasShape; openfl_display__$internal_CanvasShape.__name__ = "openfl.display._internal.CanvasShape"; openfl_display__$internal_CanvasShape.render = function(shape,renderer) { if(!shape.__renderable) { return; } var alpha = renderer.__getAlpha(shape.__worldAlpha); if(alpha <= 0) { return; } var graphics = shape.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer.context; var scrollRect = shape.__scrollRect; var scale9Grid = shape.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer.__setBlendMode(shape.__worldBlendMode); renderer.__pushMaskObject(shape); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer.__popMaskObject(shape); } } } }; var openfl_display__$internal_CanvasSimpleButton = function() { }; $hxClasses["openfl.display._internal.CanvasSimpleButton"] = openfl_display__$internal_CanvasSimpleButton; openfl_display__$internal_CanvasSimpleButton.__name__ = "openfl.display._internal.CanvasSimpleButton"; openfl_display__$internal_CanvasSimpleButton.renderDrawable = function(simpleButton,renderer) { if(!simpleButton.__renderable || simpleButton.__worldAlpha <= 0 || simpleButton.__currentState == null) { return; } renderer.__pushMaskObject(simpleButton); renderer.__renderDrawable(simpleButton.__currentState); renderer.__popMaskObject(simpleButton); renderer.__renderEvent(simpleButton); }; openfl_display__$internal_CanvasSimpleButton.renderDrawableMask = function(simpleButton,renderer) { renderer.__renderDrawableMask(simpleButton.__currentState); }; var openfl_display__$internal_CanvasTextField = function() { }; $hxClasses["openfl.display._internal.CanvasTextField"] = openfl_display__$internal_CanvasTextField; openfl_display__$internal_CanvasTextField.__name__ = "openfl.display._internal.CanvasTextField"; openfl_display__$internal_CanvasTextField.context = null; openfl_display__$internal_CanvasTextField.clearRect = null; openfl_display__$internal_CanvasTextField.render = function(textField,renderer,transform) { var textEngine = textField.__textEngine; var useTextBounds = !(textEngine.background || textEngine.border); var bounds = useTextBounds ? textEngine.textBounds : textEngine.bounds; var graphics = textField.__graphics; var cursorOffsetX = 0.0; if(textField.__dirty) { textField.__updateLayout(); if(graphics.__bounds == null) { graphics.__bounds = new openfl_geom_Rectangle(); } if(textField.get_text().length == 0) { var boundsWidth = textEngine.bounds.width - 4; var align = textField.get_defaultTextFormat().align; cursorOffsetX = align == 3 ? 0 : align == 4 ? boundsWidth : boundsWidth / 2; switch(align) { case 0: cursorOffsetX += textField.get_defaultTextFormat().leftMargin / 2; cursorOffsetX -= textField.get_defaultTextFormat().rightMargin / 2; cursorOffsetX += textField.get_defaultTextFormat().indent / 2; cursorOffsetX += textField.get_defaultTextFormat().blockIndent / 2; break; case 1: break; case 2: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 3: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 4: cursorOffsetX -= textField.get_defaultTextFormat().rightMargin; break; case 5: break; } if(useTextBounds) { bounds.y = textEngine.bounds.y; bounds.x = cursorOffsetX; } } graphics.__bounds.copyFrom(bounds); } var pixelRatio = renderer.__pixelRatio; graphics.__update(renderer.__worldTransform,pixelRatio); if(textField.__dirty || graphics.__softwareDirty) { var width = Math.round(graphics.__width * pixelRatio); var height = Math.round(graphics.__height * pixelRatio); if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) { textField.__graphics.__canvas = null; textField.__graphics.__context = null; textField.__graphics.__bitmap = null; textField.__graphics.__softwareDirty = false; textField.__graphics.set___dirty(false); textField.__dirty = false; } else { if(textField.__graphics.__canvas == null) { textField.__graphics.__canvas = window.document.createElement("canvas"); textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d"); } openfl_display__$internal_CanvasTextField.context = graphics.__context; graphics.__canvas.width = width; graphics.__canvas.height = height; if(renderer.__isDOM) { graphics.__canvas.style.width = Math.round(width / pixelRatio) + "px"; graphics.__canvas.style.height = Math.round(height / pixelRatio) + "px"; } var matrix = openfl_geom_Matrix.__pool.get(); matrix.scale(pixelRatio,pixelRatio); matrix.concat(graphics.__renderTransform); openfl_display__$internal_CanvasTextField.context.setTransform(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty); openfl_geom_Matrix.__pool.release(matrix); if(openfl_display__$internal_CanvasTextField.clearRect == null) { openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined'); } if(openfl_display__$internal_CanvasTextField.clearRect) { openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height); } if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) { var text = textEngine.text; if(!renderer.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) { graphics.__context.imageSmoothingEnabled = false; } else { graphics.__context.imageSmoothingEnabled = true; } if(textEngine.border || textEngine.background) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic"; openfl_display__$internal_CanvasTextField.context.textAlign = "start"; var scrollX = -textField.get_scrollH(); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY -= textEngine.lineHeights.get(i); } var advance; var group = textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex < textField.get_scrollV() - 1) { continue; } if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) { break; } var color = "#" + StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format); openfl_display__$internal_CanvasTextField.context.fillStyle = color; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y); if(textField.__caretIndex > -1 && textEngine.selectable) { if(textField.__selectionIndex == textField.__caretIndex) { if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) { advance = 0.0; var _g = 0; var _g1 = textField.__caretIndex - group1.startIndex; while(_g < _g1) { var i = _g++; if(group1.positions.length <= i) { break; } advance += group1.positions[i]; } var scrollY1 = 0.0; var _g2 = textField.get_scrollV(); var _g3 = group1.lineIndex + 1; while(_g2 < _g3) { var i1 = _g2++; scrollY1 += textEngine.lineHeights.get(i1 - 1); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) { var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0; var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0; if(group1.startIndex > selectionStart) { selectionStart = group1.startIndex; } if(group1.endIndex < selectionEnd) { selectionEnd = group1.endIndex; } var end; var start = textField.getCharBoundaries(selectionStart); if(selectionEnd >= group1.endIndex) { end = textField.getCharBoundaries(group1.endIndex - 1); if(end != null) { end.x += end.width + 2; } } else { end = textField.getCharBoundaries(selectionEnd); } if(start != null && end != null) { openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000"; openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX - bounds.x,start.y + scrollY,end.x - start.x,group1.height); openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF"; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x - bounds.x,group1.offsetY + group1.ascent + scrollY); } } } if(group1.format.underline) { openfl_display__$internal_CanvasTextField.context.beginPath(); openfl_display__$internal_CanvasTextField.context.strokeStyle = color; openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var descent = Math.floor(group1.ascent * 0.185); var x = group1.offsetX + scrollX - bounds.x; var y = Math.ceil(group1.offsetY + scrollY + group1.ascent - bounds.y) + descent + 0.5; openfl_display__$internal_CanvasTextField.context.moveTo(x,y); openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } } else { if(textEngine.border || textEngine.background) { if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); } else { openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height); } if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineCap = "square"; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) { var scrollX = -textField.get_scrollH() + (useTextBounds ? 0 : cursorOffsetX); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY += textEngine.lineHeights.get(i); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas); graphics.__bitmapScale = pixelRatio; graphics.__visible = true; textField.__dirty = false; graphics.__softwareDirty = false; graphics.set___dirty(false); } } }; openfl_display__$internal_CanvasTextField.renderDrawable = function(textField,renderer) { if(renderer.__isDOM && !textField.__renderedOnCanvasWhileOnDOM) { textField.__renderedOnCanvasWhileOnDOM = true; if(textField.get_type() == 1) { textField.replaceText(0,textField.__text.length,textField.__text); } if(textField.__isHTML) { textField.__updateText(openfl_text__$internal_HTMLParser.parse(textField.__text,textField.get_multiline(),textField.__styleSheet,textField.__textFormat,textField.__textEngine.textFormatRanges)); } textField.__dirty = true; textField.__layoutDirty = true; if(!textField.__renderDirty) { textField.__renderDirty = true; textField.__setParentRenderDirty(); } } if(textField.get_mask() == null || textField.get_mask().get_width() > 0 && textField.get_mask().get_height() > 0) { renderer.__updateCacheBitmap(textField,textField.__dirty); if(textField.__cacheBitmap != null && !textField.__isCacheBitmapRender) { var bitmap = textField.__cacheBitmap; if(bitmap.__renderable) { var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { var context = renderer.context; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap,false); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image); context.globalAlpha = alpha; var scrollRect = bitmap.__scrollRect; renderer.setTransform(bitmap.__renderTransform,context); if(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height); } 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(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(bitmap,false); } } } else { var transform = textField.__worldTransform; var textEngine = textField.__textEngine; var useTextBounds = !(textEngine.background || textEngine.border); var bounds = useTextBounds ? textEngine.textBounds : textEngine.bounds; var graphics = textField.__graphics; var cursorOffsetX = 0.0; if(textField.__dirty) { textField.__updateLayout(); if(graphics.__bounds == null) { graphics.__bounds = new openfl_geom_Rectangle(); } if(textField.get_text().length == 0) { var boundsWidth = textEngine.bounds.width - 4; var align = textField.get_defaultTextFormat().align; cursorOffsetX = align == 3 ? 0 : align == 4 ? boundsWidth : boundsWidth / 2; switch(align) { case 0: cursorOffsetX += textField.get_defaultTextFormat().leftMargin / 2; cursorOffsetX -= textField.get_defaultTextFormat().rightMargin / 2; cursorOffsetX += textField.get_defaultTextFormat().indent / 2; cursorOffsetX += textField.get_defaultTextFormat().blockIndent / 2; break; case 1: break; case 2: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 3: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 4: cursorOffsetX -= textField.get_defaultTextFormat().rightMargin; break; case 5: break; } if(useTextBounds) { bounds.y = textEngine.bounds.y; bounds.x = cursorOffsetX; } } graphics.__bounds.copyFrom(bounds); } var pixelRatio = renderer.__pixelRatio; graphics.__update(renderer.__worldTransform,pixelRatio); if(textField.__dirty || graphics.__softwareDirty) { var width = Math.round(graphics.__width * pixelRatio); var height = Math.round(graphics.__height * pixelRatio); if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) { textField.__graphics.__canvas = null; textField.__graphics.__context = null; textField.__graphics.__bitmap = null; textField.__graphics.__softwareDirty = false; textField.__graphics.set___dirty(false); textField.__dirty = false; } else { if(textField.__graphics.__canvas == null) { textField.__graphics.__canvas = window.document.createElement("canvas"); textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d"); } openfl_display__$internal_CanvasTextField.context = graphics.__context; graphics.__canvas.width = width; graphics.__canvas.height = height; if(renderer.__isDOM) { graphics.__canvas.style.width = Math.round(width / pixelRatio) + "px"; graphics.__canvas.style.height = Math.round(height / pixelRatio) + "px"; } var matrix = openfl_geom_Matrix.__pool.get(); matrix.scale(pixelRatio,pixelRatio); matrix.concat(graphics.__renderTransform); openfl_display__$internal_CanvasTextField.context.setTransform(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty); openfl_geom_Matrix.__pool.release(matrix); if(openfl_display__$internal_CanvasTextField.clearRect == null) { openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined'); } if(openfl_display__$internal_CanvasTextField.clearRect) { openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height); } if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) { var text = textEngine.text; if(!renderer.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) { graphics.__context.imageSmoothingEnabled = false; } else { graphics.__context.imageSmoothingEnabled = true; } if(textEngine.border || textEngine.background) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic"; openfl_display__$internal_CanvasTextField.context.textAlign = "start"; var scrollX = -textField.get_scrollH(); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY -= textEngine.lineHeights.get(i); } var advance; var group = textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex < textField.get_scrollV() - 1) { continue; } if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) { break; } var color = "#" + StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format); openfl_display__$internal_CanvasTextField.context.fillStyle = color; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y); if(textField.__caretIndex > -1 && textEngine.selectable) { if(textField.__selectionIndex == textField.__caretIndex) { if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) { advance = 0.0; var _g = 0; var _g1 = textField.__caretIndex - group1.startIndex; while(_g < _g1) { var i = _g++; if(group1.positions.length <= i) { break; } advance += group1.positions[i]; } var scrollY1 = 0.0; var _g2 = textField.get_scrollV(); var _g3 = group1.lineIndex + 1; while(_g2 < _g3) { var i1 = _g2++; scrollY1 += textEngine.lineHeights.get(i1 - 1); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) { var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0; var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0; if(group1.startIndex > selectionStart) { selectionStart = group1.startIndex; } if(group1.endIndex < selectionEnd) { selectionEnd = group1.endIndex; } var end; var start = textField.getCharBoundaries(selectionStart); if(selectionEnd >= group1.endIndex) { end = textField.getCharBoundaries(group1.endIndex - 1); if(end != null) { end.x += end.width + 2; } } else { end = textField.getCharBoundaries(selectionEnd); } if(start != null && end != null) { openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000"; openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX - bounds.x,start.y + scrollY,end.x - start.x,group1.height); openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF"; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x - bounds.x,group1.offsetY + group1.ascent + scrollY); } } } if(group1.format.underline) { openfl_display__$internal_CanvasTextField.context.beginPath(); openfl_display__$internal_CanvasTextField.context.strokeStyle = color; openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var descent = Math.floor(group1.ascent * 0.185); var x = group1.offsetX + scrollX - bounds.x; var y = Math.ceil(group1.offsetY + scrollY + group1.ascent - bounds.y) + descent + 0.5; openfl_display__$internal_CanvasTextField.context.moveTo(x,y); openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } } else { if(textEngine.border || textEngine.background) { if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); } else { openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height); } if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineCap = "square"; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) { var scrollX = -textField.get_scrollH() + (useTextBounds ? 0 : cursorOffsetX); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY += textEngine.lineHeights.get(i); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas); graphics.__bitmapScale = pixelRatio; graphics.__visible = true; textField.__dirty = false; graphics.__softwareDirty = false; graphics.set___dirty(false); } } var smoothingEnabled = false; if(textField.__textEngine.antiAliasType == 0 && textField.__textEngine.gridFitType == 1) { smoothingEnabled = renderer.context.imageSmoothingEnabled; if(smoothingEnabled) { renderer.context.imageSmoothingEnabled = false; } } if(!(textField.opaqueBackground == null && textField.__graphics == null)) { if(textField.__renderable) { var alpha = renderer.__getAlpha(textField.__worldAlpha); if(!(alpha <= 0)) { if(textField.opaqueBackground != null && !textField.__isCacheBitmapRender && textField.get_width() > 0 && textField.get_height() > 0) { renderer.__setBlendMode(textField.__worldBlendMode); renderer.__pushMaskObject(textField); var context = renderer.context; renderer.setTransform(textField.__renderTransform,context); var color = textField.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,textField.get_width(),textField.get_height()); renderer.__popMaskObject(textField); } if(textField.__graphics != null) { if(textField.__renderable) { var alpha = renderer.__getAlpha(textField.__worldAlpha); if(!(alpha <= 0)) { var graphics = textField.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer.context; var scrollRect = textField.__scrollRect; var scale9Grid = textField.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer.__setBlendMode(textField.__worldBlendMode); renderer.__pushMaskObject(textField); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer.__popMaskObject(textField); } } } } } } } } } if(smoothingEnabled) { renderer.context.imageSmoothingEnabled = true; } } } }; openfl_display__$internal_CanvasTextField.renderDrawableMask = function(textField,renderer) { openfl_display__$internal_CanvasDisplayObject.renderDrawableMask(textField,renderer); }; var openfl_display__$internal_CanvasTilemap = function() { }; $hxClasses["openfl.display._internal.CanvasTilemap"] = openfl_display__$internal_CanvasTilemap; openfl_display__$internal_CanvasTilemap.__name__ = "openfl.display._internal.CanvasTilemap"; openfl_display__$internal_CanvasTilemap.render = function(tilemap,renderer) { if(!tilemap.__renderable || tilemap.__group.__tiles.length == 0) { return; } var alpha = renderer.__getAlpha(tilemap.__worldAlpha); if(alpha <= 0) { return; } var context = renderer.context; renderer.__setBlendMode(tilemap.__worldBlendMode); renderer.__pushMaskObject(tilemap); var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.__width,tilemap.__height); renderer.__pushMaskRect(rect,tilemap.__renderTransform); if(!renderer.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = false; } openfl_display__$internal_CanvasTilemap.renderTileContainer(tilemap.__group,renderer,tilemap.__renderTransform,tilemap.__tileset,renderer.__allowSmoothing && tilemap.smoothing,tilemap.tileAlphaEnabled,alpha,tilemap.tileBlendModeEnabled,tilemap.__worldBlendMode,null,null,rect); if(!renderer.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskRect(); renderer.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); }; openfl_display__$internal_CanvasTilemap.renderTileContainer = function(group,renderer,parentTransform,defaultTileset,smooth,alphaEnabled,worldAlpha,blendModeEnabled,defaultBlendMode,cacheBitmapData,source,rect) { var context = renderer.context; var roundPixels = renderer.__roundPixels; var tileTransform = openfl_geom_Matrix.__pool.get(); var tiles = group.__tiles; var length = group.__length; var tile; var tileset; var alpha; var visible; var blendMode = null; var id; var tileData; var tileRect; var bitmapData; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; tile = tiles[i]; tileTransform.setTo(1,0,0,1,-tile.get_originX(),-tile.get_originY()); tileTransform.concat(tile.get_matrix()); tileTransform.concat(parentTransform); if(roundPixels) { tileTransform.tx = Math.round(tileTransform.tx); tileTransform.ty = Math.round(tileTransform.ty); } tileset = tile.get_tileset() != null ? tile.get_tileset() : defaultTileset; alpha = tile.get_alpha() * worldAlpha; visible = tile.get_visible(); if(!visible || alpha <= 0) { continue; } if(!alphaEnabled) { alpha = 1; } if(blendModeEnabled) { blendMode = tile.__blendMode != null ? tile.__blendMode : defaultBlendMode; } if(tile.__length > 0) { openfl_display__$internal_CanvasTilemap.renderTileContainer(tile,renderer,tileTransform,tileset,smooth,alphaEnabled,alpha,blendModeEnabled,blendMode,cacheBitmapData,source,rect); } else { if(tileset == null) { continue; } id = tile.get_id(); if(id == -1) { tileRect = tile.__rect; if(tileRect == null || tileRect.width <= 0 || tileRect.height <= 0) { continue; } } else { tileData = tileset.__data[id]; if(tileData == null) { continue; } rect.setTo(tileData.x,tileData.y,tileData.width,tileData.height); tileRect = rect; } bitmapData = tileset.__bitmapData; if(bitmapData == null) { continue; } if(bitmapData != cacheBitmapData) { if(bitmapData.image.buffer.__srcImage == null) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmapData.image); } source = bitmapData.image.get_src(); cacheBitmapData = bitmapData; } context.globalAlpha = alpha; if(blendModeEnabled) { renderer.__setBlendMode(blendMode); } renderer.setTransform(tileTransform,context); context.drawImage(source,tileRect.x,tileRect.y,tileRect.width,tileRect.height,0,0,tileRect.width,tileRect.height); } } openfl_geom_Matrix.__pool.release(tileTransform); }; openfl_display__$internal_CanvasTilemap.renderDrawable = function(tilemap,renderer) { renderer.__updateCacheBitmap(tilemap,false); if(tilemap.__cacheBitmap != null && !tilemap.__isCacheBitmapRender) { var bitmap = tilemap.__cacheBitmap; if(bitmap.__renderable) { var alpha = renderer.__getAlpha(bitmap.__worldAlpha); if(alpha > 0 && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { var context = renderer.context; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap,false); lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image); context.globalAlpha = alpha; var scrollRect = bitmap.__scrollRect; renderer.setTransform(bitmap.__renderTransform,context); if(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(bitmap.__bitmapData.image.get_src(),0,0,bitmap.__bitmapData.image.width,bitmap.__bitmapData.image.height); } 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(!renderer.__allowSmoothing || !bitmap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(bitmap,false); } } } else { if(!(tilemap.opaqueBackground == null && tilemap.__graphics == null)) { if(tilemap.__renderable) { var alpha = renderer.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { if(tilemap.opaqueBackground != null && !tilemap.__isCacheBitmapRender && tilemap.get_width() > 0 && tilemap.get_height() > 0) { renderer.__setBlendMode(tilemap.__worldBlendMode); renderer.__pushMaskObject(tilemap); var context = renderer.context; renderer.setTransform(tilemap.__renderTransform,context); var color = tilemap.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,tilemap.get_width(),tilemap.get_height()); renderer.__popMaskObject(tilemap); } if(tilemap.__graphics != null) { if(tilemap.__renderable) { var alpha = renderer.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { var graphics = tilemap.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer.context; var scrollRect = tilemap.__scrollRect; var scale9Grid = tilemap.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer.__setBlendMode(tilemap.__worldBlendMode); renderer.__pushMaskObject(tilemap); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer.__popMaskObject(tilemap); } } } } } } } } } if(!(!tilemap.__renderable || tilemap.__group.__tiles.length == 0)) { var alpha = renderer.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { var context = renderer.context; renderer.__setBlendMode(tilemap.__worldBlendMode); renderer.__pushMaskObject(tilemap); var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.__width,tilemap.__height); renderer.__pushMaskRect(rect,tilemap.__renderTransform); if(!renderer.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = false; } openfl_display__$internal_CanvasTilemap.renderTileContainer(tilemap.__group,renderer,tilemap.__renderTransform,tilemap.__tileset,renderer.__allowSmoothing && tilemap.smoothing,tilemap.tileAlphaEnabled,alpha,tilemap.tileBlendModeEnabled,tilemap.__worldBlendMode,null,null,rect); if(!renderer.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskRect(); renderer.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); } } } renderer.__renderEvent(tilemap); }; openfl_display__$internal_CanvasTilemap.renderDrawableMask = function(tilemap,renderer) { }; var openfl_display__$internal_CanvasVideo = function() { }; $hxClasses["openfl.display._internal.CanvasVideo"] = openfl_display__$internal_CanvasVideo; openfl_display__$internal_CanvasVideo.__name__ = "openfl.display._internal.CanvasVideo"; openfl_display__$internal_CanvasVideo.render = function(video,renderer) { if(!video.__renderable || video.__stream == null) { return; } var alpha = renderer.__getAlpha(video.__worldAlpha); if(alpha <= 0) { return; } var context = renderer.context; if(video.__stream.__video != null) { renderer.__setBlendMode(video.__worldBlendMode); renderer.__pushMaskObject(video); context.globalAlpha = alpha; var scrollRect = video.__scrollRect; var smoothing = video.smoothing; renderer.setTransform(video.__worldTransform,context); if(!smoothing) { context.imageSmoothingEnabled = false; } if(scrollRect == null) { context.drawImage(video.__stream.__video,0,0,video.get_width(),video.get_height()); } else { context.drawImage(video.__stream.__video,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height); } if(!smoothing) { context.imageSmoothingEnabled = true; } renderer.__popMaskObject(video); } }; openfl_display__$internal_CanvasVideo.renderDrawable = function(video,renderer) { openfl_display__$internal_CanvasVideo.render(video,renderer); renderer.__renderEvent(video); }; openfl_display__$internal_CanvasVideo.renderDrawableMask = function(video,renderer) { }; var openfl_display__$internal_Context3DBitmap = function() { }; $hxClasses["openfl.display._internal.Context3DBitmap"] = openfl_display__$internal_Context3DBitmap; openfl_display__$internal_Context3DBitmap.__name__ = "openfl.display._internal.Context3DBitmap"; openfl_display__$internal_Context3DBitmap.render = function(bitmap,renderer) { if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) { return; } if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) { var context = renderer.__context3D; renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap); var shader = renderer.__initDisplayShader(bitmap.__worldShader); renderer.setShader(shader); renderer.applyBitmapData(bitmap.__bitmapData,renderer.__allowSmoothing && (bitmap.smoothing || renderer.__upscaled)); renderer.applyMatrix(renderer.__getMatrix(bitmap.__renderTransform,bitmap.pixelSnapping)); renderer.applyAlpha(bitmap.__worldAlpha); renderer.applyColorTransform(bitmap.__worldColorTransform); renderer.updateShader(); var vertexBuffer = bitmap.__bitmapData.getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = bitmap.__bitmapData.getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); renderer.__popMaskObject(bitmap); } }; openfl_display__$internal_Context3DBitmap.renderDrawable = function(bitmap,renderer) { renderer.__updateCacheBitmap(bitmap,false); if(bitmap.__bitmapData != null && bitmap.__bitmapData.image != null) { bitmap.__imageVersion = bitmap.__bitmapData.image.version; } if(bitmap.__cacheBitmap != null && !bitmap.__isCacheBitmapRender) { openfl_display__$internal_Context3DBitmap.render(bitmap.__cacheBitmap,renderer); } else { if(!(bitmap.opaqueBackground == null && bitmap.__graphics == null)) { if(!(!bitmap.__renderable || bitmap.__worldAlpha <= 0)) { if(bitmap.opaqueBackground != null && !bitmap.__isCacheBitmapRender && bitmap.get_width() > 0 && bitmap.get_height() > 0) { renderer.__setBlendMode(bitmap.__worldBlendMode); renderer.__pushMaskObject(bitmap); var context = renderer.__context3D; var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,bitmap.get_width(),bitmap.get_height()); renderer.__pushMaskRect(rect,bitmap.__renderTransform); var color = bitmap.opaqueBackground; context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1); renderer.__popMaskRect(); renderer.__popMaskObject(bitmap); openfl_geom_Rectangle.__pool.release(rect); } if(bitmap.__graphics != null) { openfl_display__$internal_Context3DShape.render(bitmap,renderer); } } } openfl_display__$internal_Context3DBitmap.render(bitmap,renderer); } renderer.__renderEvent(bitmap); }; openfl_display__$internal_Context3DBitmap.renderDrawableMask = function(bitmap,renderer) { openfl_display__$internal_Context3DBitmap.renderMask(bitmap,renderer); }; openfl_display__$internal_Context3DBitmap.renderMask = function(bitmap,renderer) { if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) { var context = renderer.__context3D; var shader = renderer.__maskShader; renderer.setShader(shader); renderer.applyBitmapData(openfl_display__$internal_Context3DMaskShader.opaqueBitmapData,true); renderer.applyMatrix(renderer.__getMatrix(bitmap.__renderTransform,bitmap.pixelSnapping)); renderer.updateShader(); var vertexBuffer = bitmap.__bitmapData.getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = bitmap.__bitmapData.getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); } }; var openfl_display__$internal_Context3DBitmapData = function() { }; $hxClasses["openfl.display._internal.Context3DBitmapData"] = openfl_display__$internal_Context3DBitmapData; openfl_display__$internal_Context3DBitmapData.__name__ = "openfl.display._internal.Context3DBitmapData"; openfl_display__$internal_Context3DBitmapData.renderDrawable = function(bitmapData,renderer) { var context = renderer.__context3D; var gl = context.gl; renderer.__setBlendMode(10); var shader = renderer.__defaultDisplayShader; renderer.setShader(shader); renderer.applyBitmapData(bitmapData,renderer.__upscaled); renderer.applyMatrix(renderer.__getMatrix(bitmapData.__worldTransform,1)); renderer.applyAlpha(bitmapData.__worldAlpha); renderer.applyColorTransform(bitmapData.__worldColorTransform); renderer.updateShader(); var vertexBuffer = bitmapData.getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = bitmapData.getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); }; openfl_display__$internal_Context3DBitmapData.renderDrawableMask = function(bitmapData,renderer) { var context = renderer.__context3D; var gl = context.gl; var shader = renderer.__maskShader; renderer.setShader(shader); renderer.applyBitmapData(bitmapData,renderer.__upscaled); renderer.applyMatrix(renderer.__getMatrix(bitmapData.__worldTransform,1)); renderer.updateShader(); var vertexBuffer = bitmapData.getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = bitmapData.getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); }; var openfl_display__$internal_Context3DBuffer = function(context3D,elementType,elementCount,dataPerVertex) { this.context3D = context3D; this.elementType = elementType; this.dataPerVertex = dataPerVertex; this.indexCount = 0; this.vertexCount = 0; this.resize(elementCount); }; $hxClasses["openfl.display._internal.Context3DBuffer"] = openfl_display__$internal_Context3DBuffer; openfl_display__$internal_Context3DBuffer.__name__ = "openfl.display._internal.Context3DBuffer"; openfl_display__$internal_Context3DBuffer.prototype = { dataPerVertex: null ,elementCount: null ,elementType: null ,indexBufferData: null ,indexBuffers: null ,indexCount: null ,vertexBuffer: null ,vertexBufferData: null ,vertexCount: null ,context3D: null ,drawElements: function(start,length) { if(length == null) { length = -1; } if(this.indexCount == 0 || this.vertexCount == 0) { return; } if(this.elementType._hx_index == 0) { if(length == -1) { length = this.elementCount * 2; } if(start < 10922 && length - start < 10922) { this.context3D.drawTriangles(this.indexBuffers[0],start,length * 2); } else { var end = start + length; while(start < end) { var arrayBufferIndex = Math.floor(start / 10922); length = Math.min(end - start,10922) | 0; if(length <= 0) { break; } this.context3D.drawTriangles(this.indexBuffers[arrayBufferIndex],(start - arrayBufferIndex * 10922) * 3,length * 2); start += length; } } } } ,flushVertexBufferData: function() { if(this.vertexBufferData.length > this.vertexCount) { this.vertexCount = this.vertexBufferData.length; this.vertexBuffer = this.context3D.createVertexBuffer(this.vertexCount,this.dataPerVertex,0); } this.vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.vertexBufferData)); } ,resize: function(elementCount,dataPerVertex) { if(dataPerVertex == null) { dataPerVertex = -1; } this.elementCount = elementCount; if(dataPerVertex == -1) { dataPerVertex = this.dataPerVertex; } if(dataPerVertex != this.dataPerVertex) { this.vertexBuffer = null; this.vertexCount = 0; this.dataPerVertex = dataPerVertex; } var numVertices = 0; switch(this.elementType._hx_index) { case 0: numVertices = elementCount * 4; break; case 1: numVertices = elementCount * 3; break; case 2: numVertices = elementCount * 3; break; } var vertexLength = numVertices * dataPerVertex; if(this.vertexBufferData == null) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(vertexLength != null) { this1 = new Float32Array(vertexLength); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } this.vertexBufferData = this1; } else if(vertexLength > this.vertexBufferData.length) { var cacheBufferData = this.vertexBufferData; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(vertexLength != null) { this1 = new Float32Array(vertexLength); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } this.vertexBufferData = this1; this.vertexBufferData.set(cacheBufferData); } } ,__class__: openfl_display__$internal_Context3DBuffer }; var openfl_display__$internal_Context3DElementType = $hxEnums["openfl.display._internal.Context3DElementType"] = { __ename__:"openfl.display._internal.Context3DElementType",__constructs__:null ,QUADS: {_hx_name:"QUADS",_hx_index:0,__enum__:"openfl.display._internal.Context3DElementType",toString:$estr} ,TRIANGLES: {_hx_name:"TRIANGLES",_hx_index:1,__enum__:"openfl.display._internal.Context3DElementType",toString:$estr} ,TRIANGLE_INDICES: {_hx_name:"TRIANGLE_INDICES",_hx_index:2,__enum__:"openfl.display._internal.Context3DElementType",toString:$estr} }; openfl_display__$internal_Context3DElementType.__constructs__ = [openfl_display__$internal_Context3DElementType.QUADS,openfl_display__$internal_Context3DElementType.TRIANGLES,openfl_display__$internal_Context3DElementType.TRIANGLE_INDICES]; openfl_display__$internal_Context3DElementType.__empty_constructs__ = [openfl_display__$internal_Context3DElementType.QUADS,openfl_display__$internal_Context3DElementType.TRIANGLES,openfl_display__$internal_Context3DElementType.TRIANGLE_INDICES]; var openfl_display__$internal_Context3DDisplayObject = function() { }; $hxClasses["openfl.display._internal.Context3DDisplayObject"] = openfl_display__$internal_Context3DDisplayObject; openfl_display__$internal_Context3DDisplayObject.__name__ = "openfl.display._internal.Context3DDisplayObject"; openfl_display__$internal_Context3DDisplayObject.render = function(displayObject,renderer) { if(displayObject.opaqueBackground == null && displayObject.__graphics == null) { return; } if(!displayObject.__renderable || displayObject.__worldAlpha <= 0) { return; } if(displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) { renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); var context = renderer.__context3D; var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,displayObject.get_width(),displayObject.get_height()); renderer.__pushMaskRect(rect,displayObject.__renderTransform); var color = displayObject.opaqueBackground; context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1); renderer.__popMaskRect(); renderer.__popMaskObject(displayObject); openfl_geom_Rectangle.__pool.release(rect); } if(displayObject.__graphics != null) { openfl_display__$internal_Context3DShape.render(displayObject,renderer); } }; openfl_display__$internal_Context3DDisplayObject.renderDrawable = function(displayObject,renderer) { renderer.__updateCacheBitmap(displayObject,false); if(displayObject.__cacheBitmap != null && !displayObject.__isCacheBitmapRender) { openfl_display__$internal_Context3DBitmap.render(displayObject.__cacheBitmap,renderer); } else if(!(displayObject.opaqueBackground == null && displayObject.__graphics == null)) { if(!(!displayObject.__renderable || displayObject.__worldAlpha <= 0)) { if(displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) { renderer.__setBlendMode(displayObject.__worldBlendMode); renderer.__pushMaskObject(displayObject); var context = renderer.__context3D; var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,displayObject.get_width(),displayObject.get_height()); renderer.__pushMaskRect(rect,displayObject.__renderTransform); var color = displayObject.opaqueBackground; context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1); renderer.__popMaskRect(); renderer.__popMaskObject(displayObject); openfl_geom_Rectangle.__pool.release(rect); } if(displayObject.__graphics != null) { openfl_display__$internal_Context3DShape.render(displayObject,renderer); } } } renderer.__renderEvent(displayObject); }; openfl_display__$internal_Context3DDisplayObject.renderDrawableMask = function(displayObject,renderer) { if(displayObject.__graphics != null) { openfl_display__$internal_Context3DShape.renderMask(displayObject,renderer); } }; openfl_display__$internal_Context3DDisplayObject.renderMask = function(displayObject,renderer) { if(displayObject.opaqueBackground == null && displayObject.__graphics == null) { return; } var tmp = displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0; if(displayObject.__graphics != null) { openfl_display__$internal_Context3DShape.renderMask(displayObject,renderer); } }; var openfl_display__$internal_Context3DDisplayObjectContainer = function() { }; $hxClasses["openfl.display._internal.Context3DDisplayObjectContainer"] = openfl_display__$internal_Context3DDisplayObjectContainer; openfl_display__$internal_Context3DDisplayObjectContainer.__name__ = "openfl.display._internal.Context3DDisplayObjectContainer"; openfl_display__$internal_Context3DDisplayObjectContainer.renderDrawable = function(displayObjectContainer,renderer) { var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } displayObjectContainer.__removedChildren.set_length(0); if(!displayObjectContainer.__renderable || displayObjectContainer.__worldAlpha <= 0) { return; } openfl_display__$internal_Context3DDisplayObject.renderDrawable(displayObjectContainer,renderer); if(displayObjectContainer.__cacheBitmap != null && !displayObjectContainer.__isCacheBitmapRender) { return; } if(displayObjectContainer.__children.length > 0) { renderer.__pushMaskObject(displayObjectContainer); if(renderer.__stage != null) { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawable(child); child.__renderDirty = false; } displayObjectContainer.__renderDirty = false; } else { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawable(child); } } } if(displayObjectContainer.__children.length > 0) { renderer.__popMaskObject(displayObjectContainer); } }; openfl_display__$internal_Context3DDisplayObjectContainer.renderDrawableMask = function(displayObjectContainer,renderer) { var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } displayObjectContainer.__removedChildren.set_length(0); if(displayObjectContainer.__graphics != null) { openfl_display__$internal_Context3DShape.renderMask(displayObjectContainer,renderer); } var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawableMask(child); } }; var openfl_display__$internal_Context3DGraphics = function() { }; $hxClasses["openfl.display._internal.Context3DGraphics"] = openfl_display__$internal_Context3DGraphics; openfl_display__$internal_Context3DGraphics.__name__ = "openfl.display._internal.Context3DGraphics"; openfl_display__$internal_Context3DGraphics.maskRender = null; openfl_display__$internal_Context3DGraphics.buildBuffer = function(graphics,renderer) { var quadBufferPosition = 0; var triangleIndexBufferPosition = 0; var vertexBufferPosition = 0; var vertexBufferPositionUVT = 0; var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands); var context = renderer.__context3D; var tileRect = openfl_geom_Rectangle.__pool.get(); var tileTransform = openfl_geom_Matrix.__pool.get(); var bitmap = null; var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; bitmap = c.buffer.o[c.oPos]; break; case 1: bitmap = null; switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; case 3: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; var c1 = data; var shaderBuffer = c1.buffer.o[c1.oPos]; bitmap = null; if(shaderBuffer != null) { var _g2 = 0; var _g3 = shaderBuffer.inputCount; while(_g2 < _g3) { var i = _g2++; if(shaderBuffer.inputRefs[i].name == "bitmap") { bitmap = shaderBuffer.inputs[i]; break; } } } break; case 8: if(bitmap != null) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS; var c2 = data; var rects = c2.buffer.o[c2.oPos]; var indices = c2.buffer.o[c2.oPos + 1]; var transforms = c2.buffer.o[c2.oPos + 2]; var hasIndices = indices != null; var transformABCD = false; var transformXY = false; var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4); if(length == 0) { return; } if(transforms != null) { if(transforms.get_length() >= length * 6) { transformABCD = true; transformXY = true; } else if(transforms.get_length() >= length * 4) { transformABCD = true; } else if(transforms.get_length() >= length * 2) { transformXY = true; } } var dataPerVertex = 4; var stride = dataPerVertex * 4; if(graphics.__quadBuffer == null) { graphics.__quadBuffer = new openfl_display__$internal_Context3DBuffer(context,openfl_display__$internal_Context3DElementType.QUADS,length,dataPerVertex); } else { graphics.__quadBuffer.resize(quadBufferPosition + length,dataPerVertex); } var vertexOffset; var alpha = 1.0; var tileData; var id; var tileWidth; var tileHeight; var uvX; var uvY; var uvWidth; var uvHeight; var x; var y; var x2; var y2; var x3; var y3; var x4; var y4; var ri; var ti; var vertexBufferData = graphics.__quadBuffer.vertexBufferData; var bitmapWidth = bitmap.width; var bitmapHeight = bitmap.height; var sourceRect = bitmap.rect; var _g4 = 0; var _g5 = length; while(_g4 < _g5) { var i1 = _g4++; vertexOffset = (quadBufferPosition + i1) * stride; ri = hasIndices ? indices.get(i1) * 4 : i1 * 4; if(ri < 0) { continue; } tileRect.setTo(rects.get(ri),rects.get(ri + 1),rects.get(ri + 2),rects.get(ri + 3)); tileWidth = tileRect.width; tileHeight = tileRect.height; if(tileWidth <= 0 || tileHeight <= 0) { continue; } if(transformABCD && transformXY) { ti = i1 * 6; tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),transforms.get(ti + 4),transforms.get(ti + 5)); } else if(transformABCD) { ti = i1 * 4; tileTransform.setTo(transforms.get(ti),transforms.get(ti + 1),transforms.get(ti + 2),transforms.get(ti + 3),tileRect.x,tileRect.y); } else if(transformXY) { ti = i1 * 2; tileTransform.tx = transforms.get(ti); tileTransform.ty = transforms.get(ti + 1); } else { tileTransform.tx = tileRect.x; tileTransform.ty = tileRect.y; } uvX = tileRect.x / bitmapWidth; uvY = tileRect.y / bitmapHeight; uvWidth = tileRect.get_right() / bitmapWidth; uvHeight = tileRect.get_bottom() / bitmapHeight; x = 0 * tileTransform.a + 0 * tileTransform.c + tileTransform.tx; y = 0 * tileTransform.b + 0 * tileTransform.d + tileTransform.ty; x2 = tileWidth * tileTransform.a + 0 * tileTransform.c + tileTransform.tx; y2 = tileWidth * tileTransform.b + 0 * tileTransform.d + tileTransform.ty; x3 = 0 * tileTransform.a + tileHeight * tileTransform.c + tileTransform.tx; y3 = 0 * tileTransform.b + tileHeight * tileTransform.d + tileTransform.ty; x4 = tileWidth * tileTransform.a + tileHeight * tileTransform.c + tileTransform.tx; y4 = tileWidth * tileTransform.b + tileHeight * tileTransform.d + tileTransform.ty; vertexBufferData[vertexOffset] = x; vertexBufferData[vertexOffset + 1] = y; vertexBufferData[vertexOffset + 2] = uvX; vertexBufferData[vertexOffset + 3] = uvY; vertexBufferData[vertexOffset + dataPerVertex] = x2; vertexBufferData[vertexOffset + dataPerVertex + 1] = y2; vertexBufferData[vertexOffset + dataPerVertex + 2] = uvWidth; vertexBufferData[vertexOffset + dataPerVertex + 3] = uvY; vertexBufferData[vertexOffset + dataPerVertex * 2] = x3; vertexBufferData[vertexOffset + dataPerVertex * 2 + 1] = y3; vertexBufferData[vertexOffset + dataPerVertex * 2 + 2] = uvX; vertexBufferData[vertexOffset + dataPerVertex * 2 + 3] = uvHeight; vertexBufferData[vertexOffset + dataPerVertex * 3] = x4; vertexBufferData[vertexOffset + dataPerVertex * 3 + 1] = y4; vertexBufferData[vertexOffset + dataPerVertex * 3 + 2] = uvWidth; vertexBufferData[vertexOffset + dataPerVertex * 3 + 3] = uvHeight; } quadBufferPosition += length; } break; case 12: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES; var c3 = data; var vertices = c3.buffer.o[c3.oPos]; var indices1 = c3.buffer.o[c3.oPos + 1]; var uvtData = c3.buffer.o[c3.oPos + 2]; var culling = c3.buffer.o[c3.oPos + 3]; var hasIndices1 = indices1 != null; var numVertices = Math.floor(vertices.get_length() / 2); var length1 = hasIndices1 ? indices1.get_length() : numVertices; var hasUVData = uvtData != null; var hasUVTData = hasUVData && uvtData.get_length() >= numVertices * 3; var vertLength = hasUVTData ? 4 : 2; var uvStride = hasUVTData ? 3 : 2; var dataPerVertex1 = vertLength + 2; var vertexOffset1 = hasUVTData ? vertexBufferPositionUVT : vertexBufferPosition; openfl_display__$internal_Context3DGraphics.resizeVertexBuffer(graphics,hasUVTData,vertexOffset1 + length1 * dataPerVertex1); var vertexBufferData1 = hasUVTData ? graphics.__vertexBufferDataUVT : graphics.__vertexBufferData; var offset; var vertOffset; var uvOffset; var t; var _g6 = 0; var _g7 = length1; while(_g6 < _g7) { var i2 = _g6++; offset = vertexOffset1 + i2 * dataPerVertex1; vertOffset = hasIndices1 ? indices1.get(i2) * 2 : i2 * 2; uvOffset = hasIndices1 ? indices1.get(i2) * uvStride : i2 * uvStride; if(hasUVTData) { t = uvtData.get(uvOffset + 2); vertexBufferData1[offset] = vertices.get(vertOffset) / t; vertexBufferData1[offset + 1] = vertices.get(vertOffset + 1) / t; vertexBufferData1[offset + 2] = 0; vertexBufferData1[offset + 3] = 1 / t; } else { vertexBufferData1[offset] = vertices.get(vertOffset); vertexBufferData1[offset + 1] = vertices.get(vertOffset + 1); } vertexBufferData1[offset + vertLength] = hasUVData ? uvtData.get(uvOffset) : 0; vertexBufferData1[offset + vertLength + 1] = hasUVData ? uvtData.get(uvOffset + 1) : 0; } if(hasUVTData) { vertexBufferPositionUVT += length1 * dataPerVertex1; } else { vertexBufferPosition += length1 * dataPerVertex1; } break; case 13: bitmap = null; break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } if(quadBufferPosition > 0) { graphics.__quadBuffer.flushVertexBufferData(); } if(triangleIndexBufferPosition > 0) { var buffer = graphics.__triangleIndexBuffer; if(buffer == null || triangleIndexBufferPosition > graphics.__triangleIndexBufferCount) { buffer = context.createIndexBuffer(triangleIndexBufferPosition,0); graphics.__triangleIndexBuffer = buffer; graphics.__triangleIndexBufferCount = triangleIndexBufferPosition; } buffer.uploadFromTypedArray(graphics.__triangleIndexBufferData); } if(vertexBufferPosition > 0) { var buffer = graphics.__vertexBuffer; if(buffer == null || vertexBufferPosition > graphics.__vertexBufferCount) { buffer = context.createVertexBuffer(vertexBufferPosition,4,0); graphics.__vertexBuffer = buffer; graphics.__vertexBufferCount = vertexBufferPosition; } buffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(graphics.__vertexBufferData)); } if(vertexBufferPositionUVT > 0) { var buffer = graphics.__vertexBufferUVT; if(buffer == null || vertexBufferPositionUVT > graphics.__vertexBufferCountUVT) { buffer = context.createVertexBuffer(vertexBufferPositionUVT,6,0); graphics.__vertexBufferUVT = buffer; graphics.__vertexBufferCountUVT = vertexBufferPositionUVT; } buffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(graphics.__vertexBufferDataUVT)); } openfl_geom_Rectangle.__pool.release(tileRect); openfl_geom_Matrix.__pool.release(tileTransform); }; openfl_display__$internal_Context3DGraphics.isCompatible = function(graphics) { if(graphics.__owner.__worldScale9Grid != null) { return false; } var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands); var hasColorFill = false; var hasBitmapFill = false; var hasShaderFill = false; var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0: hasBitmapFill = true; hasColorFill = false; hasShaderFill = false; switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; case 1: hasBitmapFill = false; hasColorFill = true; hasShaderFill = false; switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; case 3: hasBitmapFill = false; hasColorFill = false; hasShaderFill = true; switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; case 8: if(hasBitmapFill || hasShaderFill) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } else { data.destroy(); return false; } break; case 9: if(hasColorFill) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } else { data.destroy(); return false; } break; case 12: if(hasBitmapFill || hasShaderFill) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } else { data.destroy(); return false; } break; case 13: hasBitmapFill = false; hasColorFill = false; hasShaderFill = false; switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; case 19: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; break; default: data.destroy(); return false; } } data.destroy(); return true; }; openfl_display__$internal_Context3DGraphics.render = function(graphics,renderer) { if(!graphics.__visible || graphics.__commands.get_length() == 0) { return; } if(graphics.__bitmap != null && !graphics.__dirty || !openfl_display__$internal_Context3DGraphics.isCompatible(graphics)) { renderer.__softwareRenderer.__pixelRatio = renderer.__pixelRatio; var cacheTransform = renderer.__softwareRenderer.__worldTransform; if(graphics.__owner.__drawableType == 7) { renderer.__softwareRenderer.__worldTransform = openfl_geom_Matrix.__identity; } else { renderer.__softwareRenderer.__worldTransform = renderer.__worldTransform; } openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__softwareRenderer); renderer.__softwareRenderer.__worldTransform = cacheTransform; } else { graphics.__bitmap = null; var pixelRatio = renderer.__pixelRatio; graphics.__update(renderer.__worldTransform,pixelRatio); var bounds = graphics.__bounds; var width = graphics.__width; var height = graphics.__height; if(bounds != null && width >= 1 && height >= 1) { if(graphics.__hardwareDirty || graphics.__quadBuffer == null && graphics.__vertexBuffer == null && graphics.__vertexBufferUVT == null) { openfl_display__$internal_Context3DGraphics.buildBuffer(graphics,renderer); } var data = new openfl_display__$internal_DrawCommandReader(graphics.__commands); var context = renderer.__context3D; var gl = context.gl; var matrix = openfl_geom_Matrix.__pool.get(); var shaderBuffer = null; var bitmap = null; var repeat = false; var smooth = false; var fill = null; var positionX = 0.0; var positionY = 0.0; var quadBufferPosition = 0; var shaderBufferOffset = 0; var triangleIndexBufferPosition = 0; var vertexBufferPosition = 0; var vertexBufferPositionUVT = 0; var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type._hx_index) { case 0: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; var c = data; bitmap = c.buffer.o[c.oPos]; repeat = c.buffer.b[c.bPos]; smooth = c.buffer.b[c.bPos + 1]; shaderBuffer = null; fill = null; break; case 1: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; var c1 = data; var color = c1.buffer.i[c1.iPos] | 0; var alpha = c1.buffer.f[c1.fPos] * 255 | 0; fill = color & 16777215 | alpha << 24; shaderBuffer = null; bitmap = null; break; case 3: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; var c2 = data; shaderBuffer = c2.buffer.o[c2.oPos]; shaderBufferOffset = 0; if(shaderBuffer == null || shaderBuffer.shader == null || shaderBuffer.shader.__bitmap == null) { bitmap = null; } else { bitmap = shaderBuffer.shader.__bitmap.input; } fill = null; break; case 8: if(bitmap != null) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS; var c3 = data; var rects = c3.buffer.o[c3.oPos]; var indices = c3.buffer.o[c3.oPos + 1]; var transforms = c3.buffer.o[c3.oPos + 2]; var hasIndices = indices != null; var length = hasIndices ? indices.get_length() : Math.floor(rects.get_length() / 4); var uMatrix = renderer.__getMatrix(graphics.__owner.__renderTransform,1); var shader; if(shaderBuffer != null && !openfl_display__$internal_Context3DGraphics.maskRender) { shader = renderer.__initShaderBuffer(shaderBuffer); renderer.__setShaderBuffer(shaderBuffer); renderer.applyMatrix(uMatrix); renderer.applyBitmapData(bitmap,false,repeat); renderer.applyAlpha(graphics.__owner.__worldAlpha); renderer.applyColorTransform(graphics.__owner.__worldColorTransform); } else { shader = openfl_display__$internal_Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null); renderer.setShader(shader); renderer.applyMatrix(uMatrix); renderer.applyBitmapData(bitmap,smooth,repeat); renderer.applyAlpha(graphics.__owner.__worldAlpha); renderer.applyColorTransform(graphics.__owner.__worldColorTransform); renderer.updateShader(); } var end = quadBufferPosition + length; while(quadBufferPosition < end) { length = Math.min(end - quadBufferPosition,context.__quadIndexBufferElements) | 0; if(length <= 0) { break; } if(shaderBuffer != null && !openfl_display__$internal_Context3DGraphics.maskRender) { renderer.__updateShaderBuffer(shaderBufferOffset); } if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,graphics.__quadBuffer.vertexBuffer,quadBufferPosition * 16,2); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,graphics.__quadBuffer.vertexBuffer,quadBufferPosition * 16 + 2,2); } context.drawTriangles(context.__quadIndexBuffer,0,length * 2); shaderBufferOffset += length * 4; quadBufferPosition += length; } renderer.__clearShader(); } break; case 9: if(fill != null) { switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; var c4 = data; var x = c4.buffer.f[c4.fPos]; var y = c4.buffer.f[c4.fPos + 1]; var width = c4.buffer.f[c4.fPos + 2]; var height = c4.buffer.f[c4.fPos + 3]; var color1 = fill; openfl_display__$internal_Context3DGraphics.tempColorTransform.redOffset = color1 >>> 16 & 255; openfl_display__$internal_Context3DGraphics.tempColorTransform.greenOffset = color1 >>> 8 & 255; openfl_display__$internal_Context3DGraphics.tempColorTransform.blueOffset = color1 & 255; openfl_display__$internal_Context3DGraphics.tempColorTransform.__combine(graphics.__owner.__worldColorTransform); matrix.identity(); matrix.scale(width,height); matrix.tx = x; matrix.ty = y; matrix.concat(graphics.__owner.__renderTransform); var shader1 = openfl_display__$internal_Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null); renderer.setShader(shader1); renderer.applyMatrix(renderer.__getMatrix(matrix,1)); renderer.applyBitmapData(openfl_display__$internal_Context3DGraphics.blankBitmapData,true,repeat); renderer.applyAlpha((color1 >>> 24 & 255) / 255 * graphics.__owner.__worldAlpha); renderer.applyColorTransform(openfl_display__$internal_Context3DGraphics.tempColorTransform); renderer.updateShader(); var vertexBuffer = openfl_display__$internal_Context3DGraphics.blankBitmapData.getVertexBuffer(context); if(shader1.__position != null) { context.setVertexBufferAt(shader1.__position.index,vertexBuffer,0,3); } if(shader1.__textureCoord != null) { context.setVertexBufferAt(shader1.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = openfl_display__$internal_Context3DGraphics.blankBitmapData.getIndexBuffer(context); context.drawTriangles(indexBuffer); shaderBufferOffset += 4; renderer.__clearShader(); } break; case 12: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES; var c5 = data; var vertices = c5.buffer.o[c5.oPos]; var indices1 = c5.buffer.o[c5.oPos + 1]; var uvtData = c5.buffer.o[c5.oPos + 2]; var culling = c5.buffer.o[c5.oPos + 3]; var hasIndices1 = indices1 != null; var numVertices = Math.floor(vertices.get_length() / 2); var length1 = hasIndices1 ? indices1.get_length() : numVertices; var hasUVData = uvtData != null; var hasUVTData = hasUVData && uvtData.get_length() >= numVertices * 3; var vertLength = hasUVTData ? 4 : 2; var uvStride = hasUVTData ? 3 : 2; var dataPerVertex = vertLength + 2; var vertexBuffer1 = hasUVTData ? graphics.__vertexBufferUVT : graphics.__vertexBuffer; var bufferPosition = hasUVTData ? vertexBufferPositionUVT : vertexBufferPosition; var uMatrix1 = renderer.__getMatrix(graphics.__owner.__renderTransform,1); var shader2; if(shaderBuffer != null && !openfl_display__$internal_Context3DGraphics.maskRender) { shader2 = renderer.__initShaderBuffer(shaderBuffer); renderer.__setShaderBuffer(shaderBuffer); renderer.applyMatrix(uMatrix1); renderer.applyBitmapData(bitmap,false,repeat); renderer.applyAlpha(1); renderer.applyColorTransform(null); renderer.__updateShaderBuffer(shaderBufferOffset); } else { shader2 = openfl_display__$internal_Context3DGraphics.maskRender ? renderer.__maskShader : renderer.__initGraphicsShader(null); renderer.setShader(shader2); renderer.applyMatrix(uMatrix1); renderer.applyBitmapData(bitmap,smooth,repeat); renderer.applyAlpha(graphics.__owner.__worldAlpha); renderer.applyColorTransform(graphics.__owner.__worldColorTransform); renderer.updateShader(); } if(shader2.__position != null) { context.setVertexBufferAt(shader2.__position.index,vertexBuffer1,bufferPosition,hasUVTData ? 4 : 2); } if(shader2.__textureCoord != null) { context.setVertexBufferAt(shader2.__textureCoord.index,vertexBuffer1,bufferPosition + vertLength,2); } switch(culling) { case 0: context.setCulling(0); break; case 1: context.setCulling(3); break; case 2: context.setCulling(1); break; default: } context.__drawTriangles(0,length1); shaderBufferOffset += length1; if(hasUVTData) { vertexBufferPositionUVT += dataPerVertex * length1; } else { vertexBufferPosition += dataPerVertex * length1; } switch(culling) { case 1:case 2: context.setCulling(0); break; default: } renderer.__clearShader(); break; case 13: bitmap = null; fill = null; shaderBuffer = null; switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; context.setCulling(3); break; case 18: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; var c6 = data; positionX = c6.buffer.f[c6.fPos]; positionY = c6.buffer.f[c6.fPos + 1]; break; case 19: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE; var c7 = data; renderer.__setBlendMode(c7.buffer.o[c7.oPos]); break; default: switch(data.prev._hx_index) { case 0: data.oPos += 2; data.bPos += 2; break; case 1: data.iPos += 1; data.fPos += 1; break; case 2: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 3: data.oPos += 1; break; case 4: data.fPos += 6; break; case 5: data.fPos += 4; break; case 6: data.fPos += 3; break; case 7: data.fPos += 4; break; case 8: data.oPos += 3; break; case 9: data.fPos += 4; break; case 10: data.fPos += 5; data.oPos += 1; break; case 12: data.oPos += 4; break; case 13: break; case 14: data.oPos += 2; data.bPos += 2; break; case 15: data.oPos += 4; data.iiPos += 2; data.ffPos += 1; data.fPos += 1; break; case 16: data.oPos += 4; data.iPos += 1; data.fPos += 2; data.bPos += 1; break; case 17: data.fPos += 2; break; case 18: data.fPos += 2; break; case 19: data.oPos += 1; break; case 20: data.oPos += 1; break; case 21:case 22: break; default: } data.prev = type; } } openfl_geom_Matrix.__pool.release(matrix); } graphics.__hardwareDirty = false; graphics.set___dirty(false); } }; openfl_display__$internal_Context3DGraphics.renderMask = function(graphics,renderer) { openfl_display__$internal_Context3DGraphics.maskRender = true; openfl_display__$internal_Context3DGraphics.render(graphics,renderer); openfl_display__$internal_Context3DGraphics.maskRender = false; }; openfl_display__$internal_Context3DGraphics.resizeIndexBuffer = function(graphics,isQuad,length) { if(isQuad) { return; } var buffer = isQuad ? null : graphics.__triangleIndexBufferData; var position = 0; var newBuffer = null; if(buffer == null) { var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(length != null) { this1 = new Uint16Array(length); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint16Array(buffer1,0); } else { this1 = new Uint16Array(buffer1,0,len); } } else { this1 = null; } newBuffer = this1; } else if(length > buffer.length) { var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(length != null) { this1 = new Uint16Array(length); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Uint16Array(buffer1,0); } else { this1 = new Uint16Array(buffer1,0,len); } } else { this1 = null; } newBuffer = this1; newBuffer.set(buffer); position = buffer.length; } if(newBuffer != null) { if(!isQuad) { graphics.__triangleIndexBufferData = newBuffer; } } }; openfl_display__$internal_Context3DGraphics.resizeVertexBuffer = function(graphics,hasUVTData,length) { var buffer = hasUVTData ? graphics.__vertexBufferDataUVT : graphics.__vertexBufferData; var newBuffer = null; if(buffer == null) { var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(length != null) { this1 = new Float32Array(length); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Float32Array(buffer1,0); } else { this1 = new Float32Array(buffer1,0,len); } } else { this1 = null; } newBuffer = this1; } else if(length > buffer.length) { var array = null; var vector = null; var view = null; var buffer1 = null; var len = null; var this1; if(length != null) { this1 = new Float32Array(length); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer1 != null) { if(len == null) { this1 = new Float32Array(buffer1,0); } else { this1 = new Float32Array(buffer1,0,len); } } else { this1 = null; } newBuffer = this1; newBuffer.set(buffer); } if(newBuffer != null) { if(hasUVTData) { graphics.__vertexBufferDataUVT = newBuffer; } else { graphics.__vertexBufferData = newBuffer; } } }; var openfl_display__$internal_Context3DMaskShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = ""; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = ""; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = ""; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = ""; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tdiscard;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = color;\n\n\t\t\t}\n\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tdiscard;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = color;\n\n\t\t\t}\n\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"; } this.__isGenerated = true; openfl_display_Shader.call(this); this.__initGL(); }; $hxClasses["openfl.display._internal.Context3DMaskShader"] = openfl_display__$internal_Context3DMaskShader; openfl_display__$internal_Context3DMaskShader.__name__ = "openfl.display._internal.Context3DMaskShader"; openfl_display__$internal_Context3DMaskShader.__super__ = openfl_display_Shader; openfl_display__$internal_Context3DMaskShader.prototype = $extend(openfl_display_Shader.prototype,{ openfl_Position: null ,openfl_TextureCoord: null ,openfl_Matrix: null ,openfl_Texture: null ,__class__: openfl_display__$internal_Context3DMaskShader }); var openfl_display__$internal_Context3DShape = function() { }; $hxClasses["openfl.display._internal.Context3DShape"] = openfl_display__$internal_Context3DShape; openfl_display__$internal_Context3DShape.__name__ = "openfl.display._internal.Context3DShape"; openfl_display__$internal_Context3DShape.render = function(shape,renderer) { if(!shape.__renderable || shape.__worldAlpha <= 0) { return; } var graphics = shape.__graphics; if(graphics != null) { renderer.__setBlendMode(shape.__worldBlendMode); renderer.__pushMaskObject(shape); openfl_display__$internal_Context3DGraphics.render(graphics,renderer); if(graphics.__bitmap != null && graphics.__visible) { var context = renderer.__context3D; var scale9Grid = shape.__worldScale9Grid; var shader = renderer.__initDisplayShader(shape.__worldShader); renderer.setShader(shader); renderer.applyBitmapData(graphics.__bitmap,true); var matrix = openfl_geom_Matrix.__pool.get(); matrix.scale(1 / graphics.__bitmapScale,1 / graphics.__bitmapScale); matrix.concat(graphics.__worldTransform); renderer.applyMatrix(renderer.__getMatrix(matrix,1)); openfl_geom_Matrix.__pool.release(matrix); renderer.applyAlpha(shape.__worldAlpha); renderer.applyColorTransform(shape.__worldColorTransform); renderer.updateShader(); var vertexBuffer = graphics.__bitmap.getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = graphics.__bitmap.getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); } renderer.__popMaskObject(shape); } }; openfl_display__$internal_Context3DShape.renderMask = function(shape,renderer) { var graphics = shape.__graphics; if(graphics != null) { openfl_display__$internal_Context3DGraphics.renderMask(graphics,renderer); if(graphics.__bitmap != null) { var context = renderer.__context3D; var shader = renderer.__maskShader; renderer.setShader(shader); renderer.applyBitmapData(graphics.__bitmap,true); renderer.applyMatrix(renderer.__getMatrix(graphics.__worldTransform,1)); renderer.updateShader(); var vertexBuffer = graphics.__bitmap.getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = graphics.__bitmap.getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); } } }; var openfl_display__$internal_Context3DSimpleButton = function() { }; $hxClasses["openfl.display._internal.Context3DSimpleButton"] = openfl_display__$internal_Context3DSimpleButton; openfl_display__$internal_Context3DSimpleButton.__name__ = "openfl.display._internal.Context3DSimpleButton"; openfl_display__$internal_Context3DSimpleButton.renderDrawable = function(simpleButton,renderer) { if(!simpleButton.__renderable || simpleButton.__worldAlpha <= 0 || simpleButton.__currentState == null) { return; } renderer.__pushMaskObject(simpleButton); renderer.__renderDrawable(simpleButton.__currentState); renderer.__popMaskObject(simpleButton); renderer.__renderEvent(simpleButton); }; openfl_display__$internal_Context3DSimpleButton.renderDrawableMask = function(simpleButton,renderer) { if(simpleButton.__currentState == null) { return; } renderer.__renderDrawableMask(simpleButton.__currentState); }; var openfl_display__$internal_Context3DTextField = function() { }; $hxClasses["openfl.display._internal.Context3DTextField"] = openfl_display__$internal_Context3DTextField; openfl_display__$internal_Context3DTextField.__name__ = "openfl.display._internal.Context3DTextField"; openfl_display__$internal_Context3DTextField.render = function(textField,renderer) { renderer.__softwareRenderer.__pixelRatio = renderer.__pixelRatio; var renderer1 = renderer.__softwareRenderer; var transform = textField.__worldTransform; var textEngine = textField.__textEngine; var useTextBounds = !(textEngine.background || textEngine.border); var bounds = useTextBounds ? textEngine.textBounds : textEngine.bounds; var graphics = textField.__graphics; var cursorOffsetX = 0.0; if(textField.__dirty) { textField.__updateLayout(); if(graphics.__bounds == null) { graphics.__bounds = new openfl_geom_Rectangle(); } if(textField.get_text().length == 0) { var boundsWidth = textEngine.bounds.width - 4; var align = textField.get_defaultTextFormat().align; cursorOffsetX = align == 3 ? 0 : align == 4 ? boundsWidth : boundsWidth / 2; switch(align) { case 0: cursorOffsetX += textField.get_defaultTextFormat().leftMargin / 2; cursorOffsetX -= textField.get_defaultTextFormat().rightMargin / 2; cursorOffsetX += textField.get_defaultTextFormat().indent / 2; cursorOffsetX += textField.get_defaultTextFormat().blockIndent / 2; break; case 1: break; case 2: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 3: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 4: cursorOffsetX -= textField.get_defaultTextFormat().rightMargin; break; case 5: break; } if(useTextBounds) { bounds.y = textEngine.bounds.y; bounds.x = cursorOffsetX; } } graphics.__bounds.copyFrom(bounds); } var pixelRatio = renderer1.__pixelRatio; graphics.__update(renderer1.__worldTransform,pixelRatio); if(textField.__dirty || graphics.__softwareDirty) { var width = Math.round(graphics.__width * pixelRatio); var height = Math.round(graphics.__height * pixelRatio); if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) { textField.__graphics.__canvas = null; textField.__graphics.__context = null; textField.__graphics.__bitmap = null; textField.__graphics.__softwareDirty = false; textField.__graphics.set___dirty(false); textField.__dirty = false; } else { if(textField.__graphics.__canvas == null) { textField.__graphics.__canvas = window.document.createElement("canvas"); textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d"); } openfl_display__$internal_CanvasTextField.context = graphics.__context; graphics.__canvas.width = width; graphics.__canvas.height = height; if(renderer1.__isDOM) { graphics.__canvas.style.width = Math.round(width / pixelRatio) + "px"; graphics.__canvas.style.height = Math.round(height / pixelRatio) + "px"; } var matrix = openfl_geom_Matrix.__pool.get(); matrix.scale(pixelRatio,pixelRatio); matrix.concat(graphics.__renderTransform); openfl_display__$internal_CanvasTextField.context.setTransform(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty); openfl_geom_Matrix.__pool.release(matrix); if(openfl_display__$internal_CanvasTextField.clearRect == null) { openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined'); } if(openfl_display__$internal_CanvasTextField.clearRect) { openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height); } if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) { var text = textEngine.text; if(!renderer1.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) { graphics.__context.imageSmoothingEnabled = false; } else { graphics.__context.imageSmoothingEnabled = true; } if(textEngine.border || textEngine.background) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic"; openfl_display__$internal_CanvasTextField.context.textAlign = "start"; var scrollX = -textField.get_scrollH(); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY -= textEngine.lineHeights.get(i); } var advance; var group = textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex < textField.get_scrollV() - 1) { continue; } if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) { break; } var color = "#" + StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format); openfl_display__$internal_CanvasTextField.context.fillStyle = color; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y); if(textField.__caretIndex > -1 && textEngine.selectable) { if(textField.__selectionIndex == textField.__caretIndex) { if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) { advance = 0.0; var _g = 0; var _g1 = textField.__caretIndex - group1.startIndex; while(_g < _g1) { var i = _g++; if(group1.positions.length <= i) { break; } advance += group1.positions[i]; } var scrollY1 = 0.0; var _g2 = textField.get_scrollV(); var _g3 = group1.lineIndex + 1; while(_g2 < _g3) { var i1 = _g2++; scrollY1 += textEngine.lineHeights.get(i1 - 1); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) { var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0; var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0; if(group1.startIndex > selectionStart) { selectionStart = group1.startIndex; } if(group1.endIndex < selectionEnd) { selectionEnd = group1.endIndex; } var end; var start = textField.getCharBoundaries(selectionStart); if(selectionEnd >= group1.endIndex) { end = textField.getCharBoundaries(group1.endIndex - 1); if(end != null) { end.x += end.width + 2; } } else { end = textField.getCharBoundaries(selectionEnd); } if(start != null && end != null) { openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000"; openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX - bounds.x,start.y + scrollY,end.x - start.x,group1.height); openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF"; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x - bounds.x,group1.offsetY + group1.ascent + scrollY); } } } if(group1.format.underline) { openfl_display__$internal_CanvasTextField.context.beginPath(); openfl_display__$internal_CanvasTextField.context.strokeStyle = color; openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var descent = Math.floor(group1.ascent * 0.185); var x = group1.offsetX + scrollX - bounds.x; var y = Math.ceil(group1.offsetY + scrollY + group1.ascent - bounds.y) + descent + 0.5; openfl_display__$internal_CanvasTextField.context.moveTo(x,y); openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } } else { if(textEngine.border || textEngine.background) { if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); } else { openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height); } if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineCap = "square"; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) { var scrollX = -textField.get_scrollH() + (useTextBounds ? 0 : cursorOffsetX); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY += textEngine.lineHeights.get(i); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas); graphics.__bitmapScale = pixelRatio; graphics.__visible = true; textField.__dirty = false; graphics.__softwareDirty = false; graphics.set___dirty(false); } } textField.__graphics.__hardwareDirty = false; }; openfl_display__$internal_Context3DTextField.renderDrawable = function(textField,renderer) { renderer.__updateCacheBitmap(textField,false); if(textField.__cacheBitmap != null && !textField.__isCacheBitmapRender) { openfl_display__$internal_Context3DBitmap.render(textField.__cacheBitmap,renderer); } else { openfl_display__$internal_Context3DTextField.render(textField,renderer); if(!(textField.opaqueBackground == null && textField.__graphics == null)) { if(!(!textField.__renderable || textField.__worldAlpha <= 0)) { if(textField.opaqueBackground != null && !textField.__isCacheBitmapRender && textField.get_width() > 0 && textField.get_height() > 0) { renderer.__setBlendMode(textField.__worldBlendMode); renderer.__pushMaskObject(textField); var context = renderer.__context3D; var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,textField.get_width(),textField.get_height()); renderer.__pushMaskRect(rect,textField.__renderTransform); var color = textField.opaqueBackground; context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1); renderer.__popMaskRect(); renderer.__popMaskObject(textField); openfl_geom_Rectangle.__pool.release(rect); } if(textField.__graphics != null) { openfl_display__$internal_Context3DShape.render(textField,renderer); } } } } renderer.__renderEvent(textField); }; openfl_display__$internal_Context3DTextField.renderDrawableMask = function(textField,renderer) { openfl_display__$internal_Context3DTextField.renderMask(textField,renderer); openfl_display__$internal_Context3DDisplayObject.renderDrawableMask(textField,renderer); }; openfl_display__$internal_Context3DTextField.renderMask = function(textField,renderer) { var renderer1 = renderer.__softwareRenderer; var transform = textField.__worldTransform; var textEngine = textField.__textEngine; var useTextBounds = !(textEngine.background || textEngine.border); var bounds = useTextBounds ? textEngine.textBounds : textEngine.bounds; var graphics = textField.__graphics; var cursorOffsetX = 0.0; if(textField.__dirty) { textField.__updateLayout(); if(graphics.__bounds == null) { graphics.__bounds = new openfl_geom_Rectangle(); } if(textField.get_text().length == 0) { var boundsWidth = textEngine.bounds.width - 4; var align = textField.get_defaultTextFormat().align; cursorOffsetX = align == 3 ? 0 : align == 4 ? boundsWidth : boundsWidth / 2; switch(align) { case 0: cursorOffsetX += textField.get_defaultTextFormat().leftMargin / 2; cursorOffsetX -= textField.get_defaultTextFormat().rightMargin / 2; cursorOffsetX += textField.get_defaultTextFormat().indent / 2; cursorOffsetX += textField.get_defaultTextFormat().blockIndent / 2; break; case 1: break; case 2: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 3: cursorOffsetX += textField.get_defaultTextFormat().leftMargin; cursorOffsetX += textField.get_defaultTextFormat().indent; cursorOffsetX += textField.get_defaultTextFormat().blockIndent; break; case 4: cursorOffsetX -= textField.get_defaultTextFormat().rightMargin; break; case 5: break; } if(useTextBounds) { bounds.y = textEngine.bounds.y; bounds.x = cursorOffsetX; } } graphics.__bounds.copyFrom(bounds); } var pixelRatio = renderer1.__pixelRatio; graphics.__update(renderer1.__worldTransform,pixelRatio); if(textField.__dirty || graphics.__softwareDirty) { var width = Math.round(graphics.__width * pixelRatio); var height = Math.round(graphics.__height * pixelRatio); if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != 1 || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) { textField.__graphics.__canvas = null; textField.__graphics.__context = null; textField.__graphics.__bitmap = null; textField.__graphics.__softwareDirty = false; textField.__graphics.set___dirty(false); textField.__dirty = false; } else { if(textField.__graphics.__canvas == null) { textField.__graphics.__canvas = window.document.createElement("canvas"); textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d"); } openfl_display__$internal_CanvasTextField.context = graphics.__context; graphics.__canvas.width = width; graphics.__canvas.height = height; if(renderer1.__isDOM) { graphics.__canvas.style.width = Math.round(width / pixelRatio) + "px"; graphics.__canvas.style.height = Math.round(height / pixelRatio) + "px"; } var matrix = openfl_geom_Matrix.__pool.get(); matrix.scale(pixelRatio,pixelRatio); matrix.concat(graphics.__renderTransform); openfl_display__$internal_CanvasTextField.context.setTransform(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty); openfl_geom_Matrix.__pool.release(matrix); if(openfl_display__$internal_CanvasTextField.clearRect == null) { openfl_display__$internal_CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined'); } if(openfl_display__$internal_CanvasTextField.clearRect) { openfl_display__$internal_CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height); } if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) { var text = textEngine.text; if(!renderer1.__allowSmoothing || textEngine.antiAliasType == 0 && textEngine.sharpness == 400) { graphics.__context.imageSmoothingEnabled = false; } else { graphics.__context.imageSmoothingEnabled = true; } if(textEngine.border || textEngine.background) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } openfl_display__$internal_CanvasTextField.context.textBaseline = "alphabetic"; openfl_display__$internal_CanvasTextField.context.textAlign = "start"; var scrollX = -textField.get_scrollH(); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY -= textEngine.lineHeights.get(i); } var advance; var group = textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex < textField.get_scrollV() - 1) { continue; } if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) { break; } var color = "#" + StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.font = openfl_text__$internal_TextEngine.getFont(group1.format); openfl_display__$internal_CanvasTextField.context.fillStyle = color; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(group1.startIndex,group1.endIndex),group1.offsetX + scrollX - bounds.x,group1.offsetY + group1.ascent + scrollY - bounds.y); if(textField.__caretIndex > -1 && textEngine.selectable) { if(textField.__selectionIndex == textField.__caretIndex) { if(textField.__showCursor && group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex) { advance = 0.0; var _g = 0; var _g1 = textField.__caretIndex - group1.startIndex; while(_g < _g1) { var i = _g++; if(group1.positions.length <= i) { break; } advance += group1.positions[i]; } var scrollY1 = 0.0; var _g2 = textField.get_scrollV(); var _g3 = group1.lineIndex + 1; while(_g2 < _g3) { var i1 = _g2++; scrollY1 += textEngine.lineHeights.get(i1 - 1); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(group1.format.color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + 2 - bounds.y); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(group1.offsetX + advance - textField.get_scrollH() - bounds.x,scrollY1 + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1 - bounds.y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } else if(group1.startIndex <= textField.__caretIndex && group1.endIndex >= textField.__caretIndex || group1.startIndex <= textField.__selectionIndex && group1.endIndex >= textField.__selectionIndex || group1.startIndex > textField.__caretIndex && group1.endIndex < textField.__selectionIndex || group1.startIndex > textField.__selectionIndex && group1.endIndex < textField.__caretIndex) { var selectionStart = Math.min(textField.__selectionIndex,textField.__caretIndex) | 0; var selectionEnd = Math.max(textField.__selectionIndex,textField.__caretIndex) | 0; if(group1.startIndex > selectionStart) { selectionStart = group1.startIndex; } if(group1.endIndex < selectionEnd) { selectionEnd = group1.endIndex; } var end; var start = textField.getCharBoundaries(selectionStart); if(selectionEnd >= group1.endIndex) { end = textField.getCharBoundaries(group1.endIndex - 1); if(end != null) { end.x += end.width + 2; } } else { end = textField.getCharBoundaries(selectionEnd); } if(start != null && end != null) { openfl_display__$internal_CanvasTextField.context.fillStyle = "#000000"; openfl_display__$internal_CanvasTextField.context.fillRect(start.x + scrollX - bounds.x,start.y + scrollY,end.x - start.x,group1.height); openfl_display__$internal_CanvasTextField.context.fillStyle = "#FFFFFF"; openfl_display__$internal_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x - bounds.x,group1.offsetY + group1.ascent + scrollY); } } } if(group1.format.underline) { openfl_display__$internal_CanvasTextField.context.beginPath(); openfl_display__$internal_CanvasTextField.context.strokeStyle = color; openfl_display__$internal_CanvasTextField.context.lineWidth = 1; var descent = Math.floor(group1.ascent * 0.185); var x = group1.offsetX + scrollX - bounds.x; var y = Math.ceil(group1.offsetY + scrollY + group1.ascent - bounds.y) + descent + 0.5; openfl_display__$internal_CanvasTextField.context.moveTo(x,y); openfl_display__$internal_CanvasTextField.context.lineTo(x + group1.width,y); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } } else { if(textEngine.border || textEngine.background) { if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); } else { openfl_display__$internal_CanvasTextField.context.rect(0,0,bounds.width,bounds.height); } if(textEngine.background) { var tmp = StringTools.hex(textEngine.backgroundColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.fillStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.fill(); } if(textEngine.border) { openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineCap = "square"; var tmp = StringTools.hex(textEngine.borderColor & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.stroke(); } } if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) { var scrollX = -textField.get_scrollH() + (useTextBounds ? 0 : cursorOffsetX); var scrollY = 0.0; var _g = 0; var _g1 = textField.get_scrollV() - 1; while(_g < _g1) { var i = _g++; scrollY += textEngine.lineHeights.get(i); } openfl_display__$internal_CanvasTextField.context.beginPath(); var tmp = StringTools.hex(textField.get_defaultTextFormat().color & 16777215,6); openfl_display__$internal_CanvasTextField.context.strokeStyle = "#" + tmp; openfl_display__$internal_CanvasTextField.context.moveTo(scrollX + 2.5,scrollY + 2.5); openfl_display__$internal_CanvasTextField.context.lineWidth = 1; openfl_display__$internal_CanvasTextField.context.lineTo(scrollX + 2.5,scrollY + openfl_text__$internal_TextEngine.getFormatHeight(textField.get_defaultTextFormat()) - 1); openfl_display__$internal_CanvasTextField.context.stroke(); openfl_display__$internal_CanvasTextField.context.closePath(); } } graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas); graphics.__bitmapScale = pixelRatio; graphics.__visible = true; textField.__dirty = false; graphics.__softwareDirty = false; graphics.set___dirty(false); } } textField.__graphics.__hardwareDirty = false; }; var openfl_display__$internal_Context3DTilemap = function() { }; $hxClasses["openfl.display._internal.Context3DTilemap"] = openfl_display__$internal_Context3DTilemap; openfl_display__$internal_Context3DTilemap.__name__ = "openfl.display._internal.Context3DTilemap"; openfl_display__$internal_Context3DTilemap.cacheColorTransform = null; openfl_display__$internal_Context3DTilemap.context = null; openfl_display__$internal_Context3DTilemap.dataPerVertex = null; openfl_display__$internal_Context3DTilemap.currentBitmapData = null; openfl_display__$internal_Context3DTilemap.currentBlendMode = null; openfl_display__$internal_Context3DTilemap.currentShader = null; openfl_display__$internal_Context3DTilemap.bufferPosition = null; openfl_display__$internal_Context3DTilemap.lastFlushedPosition = null; openfl_display__$internal_Context3DTilemap.lastUsedBitmapData = null; openfl_display__$internal_Context3DTilemap.lastUsedShader = null; openfl_display__$internal_Context3DTilemap.numTiles = null; openfl_display__$internal_Context3DTilemap.vertexBufferData = null; openfl_display__$internal_Context3DTilemap.vertexDataPosition = null; openfl_display__$internal_Context3DTilemap.buildBuffer = function(tilemap,renderer) { if(!tilemap.__renderable || tilemap.__group.__tiles.length == 0 || tilemap.__worldAlpha <= 0) { tilemap.__group.__dirty = false; return; } openfl_display__$internal_Context3DTilemap.numTiles = 0; openfl_display__$internal_Context3DTilemap.vertexBufferData = tilemap.__buffer != null ? tilemap.__buffer.vertexBufferData : null; openfl_display__$internal_Context3DTilemap.vertexDataPosition = 0; var rect = openfl_geom_Rectangle.__pool.get(); var matrix = openfl_geom_Matrix.__pool.get(); var parentTransform = openfl_geom_Matrix.__pool.get(); openfl_display__$internal_Context3DTilemap.dataPerVertex = 4; if(tilemap.tileAlphaEnabled) { openfl_display__$internal_Context3DTilemap.dataPerVertex++; } if(tilemap.tileColorTransformEnabled) { openfl_display__$internal_Context3DTilemap.dataPerVertex += 8; } openfl_display__$internal_Context3DTilemap.buildBufferTileContainer(tilemap,tilemap.__group,renderer,parentTransform,tilemap.__tileset,tilemap.tileAlphaEnabled,tilemap.__worldAlpha,tilemap.tileColorTransformEnabled,tilemap.__worldColorTransform,null,rect,matrix); tilemap.__buffer.flushVertexBufferData(); openfl_geom_Rectangle.__pool.release(rect); openfl_geom_Matrix.__pool.release(matrix); openfl_geom_Matrix.__pool.release(parentTransform); }; openfl_display__$internal_Context3DTilemap.buildBufferTileContainer = function(tilemap,group,renderer,parentTransform,defaultTileset,alphaEnabled,worldAlpha,colorTransformEnabled,defaultColorTransform,cacheBitmapData,rect,matrix,isTopLevel) { if(isTopLevel == null) { isTopLevel = true; } var tileTransform = openfl_geom_Matrix.__pool.get(); var roundPixels = renderer.__roundPixels; var tiles = group.__tiles; var length = group.__length; var getLength = null; getLength = function(_group) { var _tiles = _group.__tiles; var totalLength = 0; var _g = 0; while(_g < _tiles.length) { var tile = _tiles[_g]; ++_g; if(tile.__length > 0) { totalLength += getLength(tile); } else { ++totalLength; } } return totalLength; }; if(isTopLevel) { openfl_display__$internal_Context3DTilemap.resizeBuffer(tilemap,openfl_display__$internal_Context3DTilemap.numTiles + getLength(group)); } var tile; var tileset; var alpha; var visible; var colorTransform = null; var id; var tileData; var tileRect; var bitmapData; var tileWidth; var tileHeight; var uvX; var uvY; var uvHeight; var uvWidth; var vertexOffset; var x; var y; var x2; var y2; var x3; var y3; var x4; var y4; var alphaPosition = 4; var ctPosition = alphaEnabled ? 5 : 4; var _g = 0; while(_g < tiles.length) { var tile = tiles[_g]; ++_g; tileTransform.setTo(1,0,0,1,-tile.get_originX(),-tile.get_originY()); tileTransform.concat(tile.get_matrix()); tileTransform.concat(parentTransform); if(roundPixels) { tileTransform.tx = Math.round(tileTransform.tx); tileTransform.ty = Math.round(tileTransform.ty); } tileset = tile.get_tileset() != null ? tile.get_tileset() : defaultTileset; alpha = tile.get_alpha() * worldAlpha; visible = tile.get_visible(); tile.__dirty = false; if(!visible || alpha <= 0) { continue; } if(colorTransformEnabled) { if(tile.get_colorTransform() != null) { if(defaultColorTransform == null) { colorTransform = tile.get_colorTransform(); } else { if(openfl_display__$internal_Context3DTilemap.cacheColorTransform == null) { openfl_display__$internal_Context3DTilemap.cacheColorTransform = new openfl_geom_ColorTransform(); } colorTransform = openfl_display__$internal_Context3DTilemap.cacheColorTransform; colorTransform.redMultiplier = defaultColorTransform.redMultiplier * tile.get_colorTransform().redMultiplier; colorTransform.greenMultiplier = defaultColorTransform.greenMultiplier * tile.get_colorTransform().greenMultiplier; colorTransform.blueMultiplier = defaultColorTransform.blueMultiplier * tile.get_colorTransform().blueMultiplier; colorTransform.alphaMultiplier = defaultColorTransform.alphaMultiplier * tile.get_colorTransform().alphaMultiplier; colorTransform.redOffset = defaultColorTransform.redOffset + tile.get_colorTransform().redOffset; colorTransform.greenOffset = defaultColorTransform.greenOffset + tile.get_colorTransform().greenOffset; colorTransform.blueOffset = defaultColorTransform.blueOffset + tile.get_colorTransform().blueOffset; colorTransform.alphaOffset = defaultColorTransform.alphaOffset + tile.get_colorTransform().alphaOffset; } } else { colorTransform = defaultColorTransform; } } if(!alphaEnabled) { alpha = 1; } if(tile.__length > 0) { openfl_display__$internal_Context3DTilemap.buildBufferTileContainer(tilemap,tile,renderer,tileTransform,tileset,alphaEnabled,alpha,colorTransformEnabled,colorTransform,cacheBitmapData,rect,matrix,false); } else { if(tileset == null) { continue; } id = tile.get_id(); bitmapData = tileset.__bitmapData; if(bitmapData == null) { continue; } if(id == -1) { tileRect = tile.__rect; if(tileRect == null || tileRect.width <= 0 || tileRect.height <= 0) { continue; } uvX = tileRect.x / bitmapData.width; uvY = tileRect.y / bitmapData.height; uvWidth = tileRect.get_right() / bitmapData.width; uvHeight = tileRect.get_bottom() / bitmapData.height; } else { tileData = tileset.__data[id]; if(tileData == null) { continue; } rect.setTo(tileData.x,tileData.y,tileData.width,tileData.height); tileRect = rect; uvX = tileData.__uvX; uvY = tileData.__uvY; uvWidth = tileData.__uvWidth; uvHeight = tileData.__uvHeight; } tileWidth = tileRect.width; tileHeight = tileRect.height; x = 0 * tileTransform.a + 0 * tileTransform.c + tileTransform.tx; y = 0 * tileTransform.b + 0 * tileTransform.d + tileTransform.ty; x2 = tileWidth * tileTransform.a + 0 * tileTransform.c + tileTransform.tx; y2 = tileWidth * tileTransform.b + 0 * tileTransform.d + tileTransform.ty; x3 = 0 * tileTransform.a + tileHeight * tileTransform.c + tileTransform.tx; y3 = 0 * tileTransform.b + tileHeight * tileTransform.d + tileTransform.ty; x4 = tileWidth * tileTransform.a + tileHeight * tileTransform.c + tileTransform.tx; y4 = tileWidth * tileTransform.b + tileHeight * tileTransform.d + tileTransform.ty; vertexOffset = openfl_display__$internal_Context3DTilemap.vertexDataPosition; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset] = x; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + 1] = y; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + 2] = uvX; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + 3] = uvY; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex] = x2; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex + 1] = y2; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex + 2] = uvWidth; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex + 3] = uvY; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 2] = x3; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 2 + 1] = y3; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 2 + 2] = uvX; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 2 + 3] = uvHeight; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 3] = x4; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 3 + 1] = y4; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 3 + 2] = uvWidth; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 3 + 3] = uvHeight; if(alphaEnabled) { openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 0 + alphaPosition] = alpha; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex + alphaPosition] = alpha; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 2 + alphaPosition] = alpha; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * 3 + alphaPosition] = alpha; } if(colorTransformEnabled) { if(colorTransform != null) { var _g1 = 0; while(_g1 < 4) { var i = _g1++; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition] = colorTransform.redMultiplier; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 1] = colorTransform.greenMultiplier; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 2] = colorTransform.blueMultiplier; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 3] = colorTransform.alphaMultiplier; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 4] = colorTransform.redOffset; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 5] = colorTransform.greenOffset; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 6] = colorTransform.blueOffset; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i + ctPosition + 7] = colorTransform.alphaOffset; } } else { var _g2 = 0; while(_g2 < 4) { var i1 = _g2++; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition] = 1; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 1] = 1; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 2] = 1; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 3] = 1; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 4] = 0; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 5] = 0; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 6] = 0; openfl_display__$internal_Context3DTilemap.vertexBufferData[vertexOffset + openfl_display__$internal_Context3DTilemap.dataPerVertex * i1 + ctPosition + 7] = 0; } } } openfl_display__$internal_Context3DTilemap.vertexDataPosition += openfl_display__$internal_Context3DTilemap.dataPerVertex * 4; } } group.__dirty = false; openfl_geom_Matrix.__pool.release(tileTransform); }; openfl_display__$internal_Context3DTilemap.flush = function(tilemap,renderer,blendMode) { if(openfl_display__$internal_Context3DTilemap.currentShader == null) { openfl_display__$internal_Context3DTilemap.currentShader = renderer.__defaultDisplayShader; } if(openfl_display__$internal_Context3DTilemap.bufferPosition > openfl_display__$internal_Context3DTilemap.lastFlushedPosition && openfl_display__$internal_Context3DTilemap.currentBitmapData != null && openfl_display__$internal_Context3DTilemap.currentShader != null) { var shader = renderer.__initDisplayShader(openfl_display__$internal_Context3DTilemap.currentShader); renderer.setShader(shader); renderer.applyBitmapData(openfl_display__$internal_Context3DTilemap.currentBitmapData,tilemap.smoothing); renderer.applyMatrix(renderer.__getMatrix(tilemap.__renderTransform,1)); if(tilemap.tileAlphaEnabled) { renderer.useAlphaArray(); } else { renderer.applyAlpha(tilemap.__worldAlpha); } if(tilemap.tileBlendModeEnabled) { renderer.__setBlendMode(blendMode); } if(tilemap.tileColorTransformEnabled) { renderer.applyHasColorTransform(true); renderer.useColorTransformArray(); } else { renderer.applyColorTransform(tilemap.__worldColorTransform); } renderer.updateShader(); var vertexBuffer = tilemap.__buffer.vertexBuffer; var vertexBufferPosition = openfl_display__$internal_Context3DTilemap.lastFlushedPosition * openfl_display__$internal_Context3DTilemap.dataPerVertex * 4; var length = openfl_display__$internal_Context3DTilemap.bufferPosition - openfl_display__$internal_Context3DTilemap.lastFlushedPosition; while(openfl_display__$internal_Context3DTilemap.lastFlushedPosition < openfl_display__$internal_Context3DTilemap.bufferPosition) { length = Math.min(openfl_display__$internal_Context3DTilemap.bufferPosition - openfl_display__$internal_Context3DTilemap.lastFlushedPosition,openfl_display__$internal_Context3DTilemap.context.__quadIndexBufferElements) | 0; if(length <= 0) { break; } if(shader.__position != null) { openfl_display__$internal_Context3DTilemap.context.setVertexBufferAt(shader.__position.index,vertexBuffer,vertexBufferPosition,2); } if(shader.__textureCoord != null) { openfl_display__$internal_Context3DTilemap.context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,vertexBufferPosition + 2,2); } if(tilemap.tileAlphaEnabled) { if(shader.__alpha != null) { openfl_display__$internal_Context3DTilemap.context.setVertexBufferAt(shader.__alpha.index,vertexBuffer,vertexBufferPosition + 4,1); } } if(tilemap.tileColorTransformEnabled) { var position = tilemap.tileAlphaEnabled ? 5 : 4; if(shader.__colorMultiplier != null) { openfl_display__$internal_Context3DTilemap.context.setVertexBufferAt(shader.__colorMultiplier.index,vertexBuffer,vertexBufferPosition + position,4); } if(shader.__colorOffset != null) { openfl_display__$internal_Context3DTilemap.context.setVertexBufferAt(shader.__colorOffset.index,vertexBuffer,vertexBufferPosition + position + 4,4); } } openfl_display__$internal_Context3DTilemap.context.drawTriangles(openfl_display__$internal_Context3DTilemap.context.__quadIndexBuffer,0,length * 2); openfl_display__$internal_Context3DTilemap.lastFlushedPosition += length; } renderer.__clearShader(); } openfl_display__$internal_Context3DTilemap.lastUsedBitmapData = openfl_display__$internal_Context3DTilemap.currentBitmapData; openfl_display__$internal_Context3DTilemap.lastUsedShader = openfl_display__$internal_Context3DTilemap.currentShader; }; openfl_display__$internal_Context3DTilemap.render = function(tilemap,renderer) { if(!tilemap.__renderable || tilemap.__worldAlpha <= 0) { return; } openfl_display__$internal_Context3DTilemap.context = renderer.__context3D; openfl_display__$internal_Context3DTilemap.buildBuffer(tilemap,renderer); if(openfl_display__$internal_Context3DTilemap.numTiles == 0) { return; } openfl_display__$internal_Context3DTilemap.bufferPosition = 0; openfl_display__$internal_Context3DTilemap.lastFlushedPosition = 0; openfl_display__$internal_Context3DTilemap.lastUsedBitmapData = null; openfl_display__$internal_Context3DTilemap.lastUsedShader = null; openfl_display__$internal_Context3DTilemap.currentBitmapData = null; openfl_display__$internal_Context3DTilemap.currentShader = null; openfl_display__$internal_Context3DTilemap.currentBlendMode = tilemap.__worldBlendMode; if(!tilemap.tileBlendModeEnabled) { renderer.__setBlendMode(openfl_display__$internal_Context3DTilemap.currentBlendMode); } renderer.__pushMaskObject(tilemap); var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.__width,tilemap.__height); renderer.__pushMaskRect(rect,tilemap.__renderTransform); openfl_display__$internal_Context3DTilemap.renderTileContainer(tilemap,renderer,tilemap.__group,tilemap.__worldShader,tilemap.__tileset,tilemap.__worldAlpha,tilemap.tileBlendModeEnabled,openfl_display__$internal_Context3DTilemap.currentBlendMode,null); openfl_display__$internal_Context3DTilemap.flush(tilemap,renderer,openfl_display__$internal_Context3DTilemap.currentBlendMode); renderer.__popMaskRect(); renderer.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); }; openfl_display__$internal_Context3DTilemap.renderDrawable = function(tilemap,renderer) { renderer.__updateCacheBitmap(tilemap,false); if(tilemap.__cacheBitmap != null && !tilemap.__isCacheBitmapRender) { openfl_display__$internal_Context3DBitmap.render(tilemap.__cacheBitmap,renderer); } else { if(!(tilemap.opaqueBackground == null && tilemap.__graphics == null)) { if(!(!tilemap.__renderable || tilemap.__worldAlpha <= 0)) { if(tilemap.opaqueBackground != null && !tilemap.__isCacheBitmapRender && tilemap.get_width() > 0 && tilemap.get_height() > 0) { renderer.__setBlendMode(tilemap.__worldBlendMode); renderer.__pushMaskObject(tilemap); var context = renderer.__context3D; var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.get_width(),tilemap.get_height()); renderer.__pushMaskRect(rect,tilemap.__renderTransform); var color = tilemap.opaqueBackground; context.clear((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1,0,0,1); renderer.__popMaskRect(); renderer.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); } if(tilemap.__graphics != null) { openfl_display__$internal_Context3DShape.render(tilemap,renderer); } } } openfl_display__$internal_Context3DTilemap.render(tilemap,renderer); } renderer.__renderEvent(tilemap); }; openfl_display__$internal_Context3DTilemap.renderDrawableMask = function(tilemap,renderer) { if(!(tilemap.opaqueBackground == null && tilemap.__graphics == null)) { var tmp = tilemap.opaqueBackground != null && !tilemap.__isCacheBitmapRender && tilemap.get_width() > 0 && tilemap.get_height() > 0; if(tilemap.__graphics != null) { openfl_display__$internal_Context3DShape.renderMask(tilemap,renderer); } } openfl_display__$internal_Context3DTilemap.renderMask(tilemap,renderer); }; openfl_display__$internal_Context3DTilemap.renderTileContainer = function(tilemap,renderer,group,defaultShader,defaultTileset,worldAlpha,blendModeEnabled,defaultBlendMode,cacheBitmapData) { var tiles = group.__tiles; var tile; var tileset; var alpha; var visible; var blendMode = null; var id; var tileData; var tileRect; var shader; var bitmapData; var _g = 0; while(_g < tiles.length) { var tile = tiles[_g]; ++_g; tileset = tile.get_tileset() != null ? tile.get_tileset() : defaultTileset; alpha = tile.get_alpha() * worldAlpha; visible = tile.get_visible(); if(!visible || alpha <= 0) { continue; } shader = tile.get_shader() != null ? tile.get_shader() : defaultShader; if(blendModeEnabled) { blendMode = tile.__blendMode != null ? tile.__blendMode : defaultBlendMode; } if(tile.__length > 0) { openfl_display__$internal_Context3DTilemap.renderTileContainer(tilemap,renderer,tile,shader,tileset,alpha,blendModeEnabled,blendMode,cacheBitmapData); } else { if(tileset == null) { continue; } id = tile.get_id(); bitmapData = tileset.__bitmapData; if(bitmapData == null) { continue; } if(id == -1) { tileRect = tile.__rect; if(tileRect == null || tileRect.width <= 0 || tileRect.height <= 0) { continue; } } else { tileData = tileset.__data[id]; if(tileData == null) { continue; } } if(shader != openfl_display__$internal_Context3DTilemap.currentShader || bitmapData != openfl_display__$internal_Context3DTilemap.currentBitmapData && openfl_display__$internal_Context3DTilemap.currentBitmapData != null || openfl_display__$internal_Context3DTilemap.currentBlendMode != blendMode) { openfl_display__$internal_Context3DTilemap.flush(tilemap,renderer,openfl_display__$internal_Context3DTilemap.currentBlendMode); } openfl_display__$internal_Context3DTilemap.currentBitmapData = bitmapData; openfl_display__$internal_Context3DTilemap.currentShader = shader; openfl_display__$internal_Context3DTilemap.currentBlendMode = blendMode; openfl_display__$internal_Context3DTilemap.bufferPosition++; } } }; openfl_display__$internal_Context3DTilemap.renderMask = function(tilemap,renderer) { }; openfl_display__$internal_Context3DTilemap.resizeBuffer = function(tilemap,count) { openfl_display__$internal_Context3DTilemap.numTiles = count; if(tilemap.__buffer == null) { tilemap.__buffer = new openfl_display__$internal_Context3DBuffer(openfl_display__$internal_Context3DTilemap.context,openfl_display__$internal_Context3DElementType.QUADS,openfl_display__$internal_Context3DTilemap.numTiles,openfl_display__$internal_Context3DTilemap.dataPerVertex); } else { tilemap.__buffer.resize(openfl_display__$internal_Context3DTilemap.numTiles,openfl_display__$internal_Context3DTilemap.dataPerVertex); } openfl_display__$internal_Context3DTilemap.vertexBufferData = tilemap.__buffer.vertexBufferData; }; var openfl_display__$internal_Context3DVideo = function() { }; $hxClasses["openfl.display._internal.Context3DVideo"] = openfl_display__$internal_Context3DVideo; openfl_display__$internal_Context3DVideo.__name__ = "openfl.display._internal.Context3DVideo"; openfl_display__$internal_Context3DVideo.render = function(video,renderer) { if(!video.__renderable || video.__worldAlpha <= 0 || video.__stream == null) { return; } if(video.__stream.__video != null) { var context = renderer.__context3D; var gl = context.gl; var texture = video.__getTexture(context); if(texture == null) { return; } renderer.__setBlendMode(video.__worldBlendMode); renderer.__pushMaskObject(video); var shader = renderer.__initDisplayShader(video.__worldShader); renderer.setShader(shader); renderer.applyBitmapData(null,true,false); renderer.applyMatrix(renderer.__getMatrix(video.__renderTransform,1)); renderer.applyAlpha(video.__worldAlpha); renderer.applyColorTransform(video.__worldColorTransform); if(shader.__textureSize != null) { openfl_display__$internal_Context3DVideo.__textureSizeValue[0] = video.__stream != null ? video.__stream.__video.videoWidth : 0; openfl_display__$internal_Context3DVideo.__textureSizeValue[1] = video.__stream != null ? video.__stream.__video.videoHeight : 0; shader.__textureSize.value = openfl_display__$internal_Context3DVideo.__textureSizeValue; } renderer.updateShader(); context.setTextureAt(0,video.__getTexture(context)); context.__flushGLTextures(); gl.uniform1i(shader.__texture.index,0); if(video.smoothing) { 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); } var vertexBuffer = video.__getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = video.__getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); renderer.__popMaskObject(video); } }; openfl_display__$internal_Context3DVideo.renderDrawable = function(video,renderer) { openfl_display__$internal_Context3DVideo.render(video,renderer); renderer.__renderEvent(video); }; openfl_display__$internal_Context3DVideo.renderDrawableMask = function(video,renderer) { openfl_display__$internal_Context3DVideo.renderMask(video,renderer); }; openfl_display__$internal_Context3DVideo.renderMask = function(video,renderer) { if(video.__stream == null) { return; } if(video.__stream.__video != null) { var context = renderer.__context3D; var gl = context.gl; var shader = renderer.__maskShader; renderer.setShader(shader); renderer.applyBitmapData(openfl_display__$internal_Context3DMaskShader.opaqueBitmapData,true); renderer.applyMatrix(renderer.__getMatrix(video.__renderTransform,1)); renderer.updateShader(); var vertexBuffer = video.__getVertexBuffer(context); if(shader.__position != null) { context.setVertexBufferAt(shader.__position.index,vertexBuffer,0,3); } if(shader.__textureCoord != null) { context.setVertexBufferAt(shader.__textureCoord.index,vertexBuffer,3,2); } var indexBuffer = video.__getIndexBuffer(context); context.drawTriangles(indexBuffer); renderer.__clearShader(); } }; var openfl_display__$internal_DOMBitmap = function() { }; $hxClasses["openfl.display._internal.DOMBitmap"] = openfl_display__$internal_DOMBitmap; openfl_display__$internal_DOMBitmap.__name__ = "openfl.display._internal.DOMBitmap"; openfl_display__$internal_DOMBitmap.clear = function(bitmap,renderer) { openfl_display__$internal_DOMDisplayObject.clear(bitmap,renderer); if(bitmap.__image != null) { renderer.element.removeChild(bitmap.__image); bitmap.__image = null; bitmap.__style = null; } if(bitmap.__canvas != null) { renderer.element.removeChild(bitmap.__canvas); bitmap.__canvas = null; bitmap.__style = null; } }; openfl_display__$internal_DOMBitmap.render = function(bitmap,renderer) { if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { renderer.__pushMaskObject(bitmap); if(bitmap.__bitmapData.image.buffer.__srcImage != null) { var src = bitmap.__bitmapData.image.buffer.__srcImage.src; if(StringTools.startsWith(src,"data:") || StringTools.startsWith(src,"blob:")) { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } else { openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer); } } else { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } renderer.__popMaskObject(bitmap); } else { openfl_display__$internal_DOMBitmap.clear(bitmap,renderer); } }; openfl_display__$internal_DOMBitmap.renderCanvas = function(bitmap,renderer) { if(bitmap.__image != null) { renderer.element.removeChild(bitmap.__image); bitmap.__image = null; } if(bitmap.__canvas == null) { bitmap.__canvas = window.document.createElement("canvas"); bitmap.__context = bitmap.__canvas.getContext("2d"); bitmap.__imageVersion = -1; if(!renderer.__allowSmoothing || !bitmap.smoothing) { bitmap.__context.imageSmoothingEnabled = false; } renderer.__initializeElement(bitmap,bitmap.__canvas); } if(bitmap.__imageVersion != bitmap.__bitmapData.image.version) { lime__$internal_graphics_ImageCanvasUtil.convertToCanvas(bitmap.__bitmapData.image); bitmap.__canvas.width = bitmap.__bitmapData.width + 1; bitmap.__canvas.width = bitmap.__bitmapData.width; bitmap.__canvas.height = bitmap.__bitmapData.height; bitmap.__context.drawImage(bitmap.__bitmapData.image.buffer.__srcCanvas,0,0); bitmap.__imageVersion = bitmap.__bitmapData.image.version; } renderer.__updateClip(bitmap); renderer.__applyStyle(bitmap,true,true,true); }; openfl_display__$internal_DOMBitmap.renderDrawable = function(bitmap,renderer) { renderer.__updateCacheBitmap(bitmap,false); if(bitmap.__cacheBitmap != null && !bitmap.__isCacheBitmapRender) { renderer.__renderDrawableClear(bitmap); bitmap.__cacheBitmap.stage = bitmap.stage; var bitmap1 = bitmap.__cacheBitmap; if(bitmap1.stage != null && bitmap1.__worldVisible && bitmap1.__renderable && bitmap1.__bitmapData != null && bitmap1.__bitmapData.__isValid && bitmap1.__bitmapData.readable) { renderer.__pushMaskObject(bitmap1); if(bitmap1.__bitmapData.image.buffer.__srcImage != null) { var src = bitmap1.__bitmapData.image.buffer.__srcImage.src; if(StringTools.startsWith(src,"data:") || StringTools.startsWith(src,"blob:")) { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap1,renderer); } else { openfl_display__$internal_DOMBitmap.renderImage(bitmap1,renderer); } } else { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap1,renderer); } renderer.__popMaskObject(bitmap1); } else { openfl_display__$internal_DOMBitmap.clear(bitmap1,renderer); } } else { var tmp = bitmap.opaqueBackground != null && !bitmap.__isCacheBitmapRender && bitmap.get_width() > 0 && bitmap.get_height() > 0; var graphics = bitmap.__graphics; if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer); if(graphics.__softwareDirty || bitmap.__worldAlphaChanged || bitmap.__canvas != graphics.__canvas) { if(graphics.__canvas != null) { if(bitmap.__canvas != graphics.__canvas) { if(bitmap.__canvas != null) { renderer.element.removeChild(bitmap.__canvas); } bitmap.__canvas = graphics.__canvas; bitmap.__context = graphics.__context; renderer.__initializeElement(bitmap,bitmap.__canvas); } } else { openfl_display__$internal_DOMShape.clear(bitmap,renderer); } } if(bitmap.__canvas != null) { renderer.__pushMaskObject(bitmap); var cacheTransform = bitmap.__renderTransform; bitmap.__renderTransform = graphics.__worldTransform; if(graphics.__transformDirty) { graphics.__transformDirty = false; bitmap.__renderTransformChanged = true; } renderer.__updateClip(bitmap); renderer.__applyStyle(bitmap,true,true,true); bitmap.__renderTransform = cacheTransform; renderer.__popMaskObject(bitmap); } } else { openfl_display__$internal_DOMShape.clear(bitmap,renderer); } if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { renderer.__pushMaskObject(bitmap); if(bitmap.__bitmapData.image.buffer.__srcImage != null) { var src = bitmap.__bitmapData.image.buffer.__srcImage.src; if(StringTools.startsWith(src,"data:") || StringTools.startsWith(src,"blob:")) { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } else { openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer); } } else { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } renderer.__popMaskObject(bitmap); } else { openfl_display__$internal_DOMBitmap.clear(bitmap,renderer); } } renderer.__renderEvent(bitmap); }; openfl_display__$internal_DOMBitmap.renderDrawableClear = function(bitmap,renderer) { openfl_display__$internal_DOMBitmap.clear(bitmap,renderer); }; openfl_display__$internal_DOMBitmap.renderImage = function(bitmap,renderer) { if(bitmap.__canvas != null) { renderer.element.removeChild(bitmap.__canvas); bitmap.__canvas = null; } if(bitmap.__image == null) { bitmap.__image = window.document.createElement("img"); bitmap.__image.crossOrigin = "Anonymous"; bitmap.__image.src = bitmap.__bitmapData.image.buffer.__srcImage.src; renderer.__initializeElement(bitmap,bitmap.__image); } renderer.__updateClip(bitmap); renderer.__applyStyle(bitmap,true,true,true); }; var openfl_display__$internal_DOMDisplayObject = function() { }; $hxClasses["openfl.display._internal.DOMDisplayObject"] = openfl_display__$internal_DOMDisplayObject; openfl_display__$internal_DOMDisplayObject.__name__ = "openfl.display._internal.DOMDisplayObject"; openfl_display__$internal_DOMDisplayObject.clear = function(displayObject,renderer) { if(displayObject.__cacheBitmap != null) { openfl_display__$internal_DOMBitmap.clear(displayObject.__cacheBitmap,renderer); } openfl_display__$internal_DOMShape.clear(displayObject,renderer); }; openfl_display__$internal_DOMDisplayObject.render = function(displayObject,renderer) { var tmp = displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0; var graphics = displayObject.__graphics; if(displayObject.stage != null && displayObject.__worldVisible && displayObject.__renderable && graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer); if(graphics.__softwareDirty || displayObject.__worldAlphaChanged || displayObject.__canvas != graphics.__canvas) { if(graphics.__canvas != null) { if(displayObject.__canvas != graphics.__canvas) { if(displayObject.__canvas != null) { renderer.element.removeChild(displayObject.__canvas); } displayObject.__canvas = graphics.__canvas; displayObject.__context = graphics.__context; renderer.__initializeElement(displayObject,displayObject.__canvas); } } else { openfl_display__$internal_DOMShape.clear(displayObject,renderer); } } if(displayObject.__canvas != null) { renderer.__pushMaskObject(displayObject); var cacheTransform = displayObject.__renderTransform; displayObject.__renderTransform = graphics.__worldTransform; if(graphics.__transformDirty) { graphics.__transformDirty = false; displayObject.__renderTransformChanged = true; } renderer.__updateClip(displayObject); renderer.__applyStyle(displayObject,true,true,true); displayObject.__renderTransform = cacheTransform; renderer.__popMaskObject(displayObject); } } else { openfl_display__$internal_DOMShape.clear(displayObject,renderer); } }; openfl_display__$internal_DOMDisplayObject.renderDrawable = function(displayObject,renderer) { renderer.__updateCacheBitmap(displayObject,false); if(displayObject.__cacheBitmap != null && !displayObject.__isCacheBitmapRender) { renderer.__renderDrawableClear(displayObject); displayObject.__cacheBitmap.stage = displayObject.stage; var bitmap = displayObject.__cacheBitmap; if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { renderer.__pushMaskObject(bitmap); if(bitmap.__bitmapData.image.buffer.__srcImage != null) { var src = bitmap.__bitmapData.image.buffer.__srcImage.src; if(StringTools.startsWith(src,"data:") || StringTools.startsWith(src,"blob:")) { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } else { openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer); } } else { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } renderer.__popMaskObject(bitmap); } else { openfl_display__$internal_DOMBitmap.clear(bitmap,renderer); } } else { var tmp = displayObject.opaqueBackground != null && !displayObject.__isCacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0; var graphics = displayObject.__graphics; if(displayObject.stage != null && displayObject.__worldVisible && displayObject.__renderable && graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer); if(graphics.__softwareDirty || displayObject.__worldAlphaChanged || displayObject.__canvas != graphics.__canvas) { if(graphics.__canvas != null) { if(displayObject.__canvas != graphics.__canvas) { if(displayObject.__canvas != null) { renderer.element.removeChild(displayObject.__canvas); } displayObject.__canvas = graphics.__canvas; displayObject.__context = graphics.__context; renderer.__initializeElement(displayObject,displayObject.__canvas); } } else { openfl_display__$internal_DOMShape.clear(displayObject,renderer); } } if(displayObject.__canvas != null) { renderer.__pushMaskObject(displayObject); var cacheTransform = displayObject.__renderTransform; displayObject.__renderTransform = graphics.__worldTransform; if(graphics.__transformDirty) { graphics.__transformDirty = false; displayObject.__renderTransformChanged = true; } renderer.__updateClip(displayObject); renderer.__applyStyle(displayObject,true,true,true); displayObject.__renderTransform = cacheTransform; renderer.__popMaskObject(displayObject); } } else { openfl_display__$internal_DOMShape.clear(displayObject,renderer); } } renderer.__renderEvent(displayObject); }; openfl_display__$internal_DOMDisplayObject.renderDrawableClear = function(displayObject,renderer) { openfl_display__$internal_DOMDisplayObject.clear(displayObject,renderer); }; var openfl_display__$internal_DOMDisplayObjectContainer = function() { }; $hxClasses["openfl.display._internal.DOMDisplayObjectContainer"] = openfl_display__$internal_DOMDisplayObjectContainer; openfl_display__$internal_DOMDisplayObjectContainer.__name__ = "openfl.display._internal.DOMDisplayObjectContainer"; openfl_display__$internal_DOMDisplayObjectContainer.renderDrawable = function(displayObjectContainer,renderer) { var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { renderer.__renderDrawable(orphan1); } } var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } displayObjectContainer.__removedChildren.set_length(0); openfl_display__$internal_DOMDisplayObject.renderDrawable(displayObjectContainer,renderer); if(displayObjectContainer.__cacheBitmap != null && !displayObjectContainer.__isCacheBitmapRender) { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawableClear(child); } openfl_display__$internal_DOMShape.clear(displayObjectContainer,renderer); displayObjectContainer.__cacheBitmap.stage = displayObjectContainer.stage; return; } renderer.__pushMaskObject(displayObjectContainer); if(renderer.__stage != null) { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawable(child); child.__renderDirty = false; } displayObjectContainer.__renderDirty = false; } else { var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawable(child); } } renderer.__popMaskObject(displayObjectContainer); }; openfl_display__$internal_DOMDisplayObjectContainer.renderDrawableClear = function(displayObjectContainer,renderer) { var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { renderer.__renderDrawableClear(orphan1); } } var orphan = displayObjectContainer.__removedChildren.iterator(); while(orphan.hasNext()) { var orphan1 = orphan.next(); if(orphan1.stage == null) { orphan1.__cleanup(); } } displayObjectContainer.__removedChildren.set_length(0); var _g = 0; var _g1 = displayObjectContainer.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; renderer.__renderDrawableClear(child); } openfl_display__$internal_DOMDisplayObject.clear(displayObjectContainer,renderer); }; var openfl_display__$internal_DOMShape = function() { }; $hxClasses["openfl.display._internal.DOMShape"] = openfl_display__$internal_DOMShape; openfl_display__$internal_DOMShape.__name__ = "openfl.display._internal.DOMShape"; openfl_display__$internal_DOMShape.clear = function(shape,renderer) { if(shape.__canvas != null) { renderer.element.removeChild(shape.__canvas); shape.__canvas = null; shape.__style = null; } }; openfl_display__$internal_DOMShape.render = function(shape,renderer) { var graphics = shape.__graphics; if(shape.stage != null && shape.__worldVisible && shape.__renderable && graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer.__canvasRenderer); if(graphics.__softwareDirty || shape.__worldAlphaChanged || shape.__canvas != graphics.__canvas) { if(graphics.__canvas != null) { if(shape.__canvas != graphics.__canvas) { if(shape.__canvas != null) { renderer.element.removeChild(shape.__canvas); } shape.__canvas = graphics.__canvas; shape.__context = graphics.__context; renderer.__initializeElement(shape,shape.__canvas); } } else { openfl_display__$internal_DOMShape.clear(shape,renderer); } } if(shape.__canvas != null) { renderer.__pushMaskObject(shape); var cacheTransform = shape.__renderTransform; shape.__renderTransform = graphics.__worldTransform; if(graphics.__transformDirty) { graphics.__transformDirty = false; shape.__renderTransformChanged = true; } renderer.__updateClip(shape); renderer.__applyStyle(shape,true,true,true); shape.__renderTransform = cacheTransform; renderer.__popMaskObject(shape); } } else { openfl_display__$internal_DOMShape.clear(shape,renderer); } }; var openfl_display__$internal_DOMSimpleButton = function() { }; $hxClasses["openfl.display._internal.DOMSimpleButton"] = openfl_display__$internal_DOMSimpleButton; openfl_display__$internal_DOMSimpleButton.__name__ = "openfl.display._internal.DOMSimpleButton"; openfl_display__$internal_DOMSimpleButton.renderDrawable = function(simpleButton,renderer) { renderer.__pushMaskObject(simpleButton); var previousState = simpleButton.__previousStates.iterator(); while(previousState.hasNext()) { var previousState1 = previousState.next(); renderer.__renderDrawable(previousState1); } simpleButton.__previousStates.set_length(0); if(simpleButton.__currentState != null) { if(simpleButton.__currentState.stage != simpleButton.stage) { simpleButton.__currentState.__setStageReference(simpleButton.stage); } renderer.__renderDrawable(simpleButton.__currentState); } renderer.__popMaskObject(simpleButton); renderer.__renderEvent(simpleButton); }; openfl_display__$internal_DOMSimpleButton.renderDrawableClear = function(simpleButton,renderer) { openfl_display__$internal_DOMDisplayObject.renderDrawableClear(simpleButton,renderer); }; var openfl_display__$internal_DOMTextField = function() { }; $hxClasses["openfl.display._internal.DOMTextField"] = openfl_display__$internal_DOMTextField; openfl_display__$internal_DOMTextField.__name__ = "openfl.display._internal.DOMTextField"; openfl_display__$internal_DOMTextField.clear = function(textField,renderer) { openfl_display__$internal_DOMDisplayObject.clear(textField,renderer); if(textField.__div != null) { renderer.element.removeChild(textField.__div); textField.__div = null; textField.__style = null; } }; openfl_display__$internal_DOMTextField.measureText = function(textField) { var textEngine = textField.__textEngine; var div = textField.__div; if(div == null) { div = window.document.createElement("div"); var _this_r = new RegExp("\n","g".split("u").join("")); div.innerHTML = textEngine.text.replace(_this_r,"
"); div.style.setProperty("font",openfl_text__$internal_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_display__$internal_DOMTextField.render = function(textField,renderer) { var textEngine = textField.__textEngine; if(textField.stage != null && textField.__worldVisible && textField.__renderable) { if(textField.__dirty || textField.__renderTransformChanged || textField.__div == null) { if(textEngine.text != "" || textEngine.background || textEngine.border || textEngine.type == 1) { textField.__updateLayout(); if(textField.__div == null) { textField.__div = window.document.createElement("div"); renderer.__initializeElement(textField,textField.__div); 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); var textField1 = textField.__displayAsPassword; textField.__dirty = false; textField.dispatchEvent(new openfl_events_TextEvent("textInput",false,false,textField.get_htmlText())); } },true); } if(!textEngine.wordWrap) { textField.__style.setProperty("white-space","nowrap",null); } else { textField.__style.setProperty("word-wrap","break-word",null); } textField.__style.setProperty("overflow","hidden",null); if(textEngine.selectable) { textField.__style.setProperty("cursor","text",null); textField.__style.setProperty("-webkit-user-select","text",null); textField.__style.setProperty("-moz-user-select","text",null); textField.__style.setProperty("-ms-user-select","text",null); textField.__style.setProperty("-o-user-select","text",null); } else { textField.__style.setProperty("cursor","inherit",null); } var div = textField.__div; div.contentEditable = textEngine.type == 1; var style = textField.__style; if(textEngine.background) { style.setProperty("background-color","#" + StringTools.hex(textEngine.backgroundColor & 16777215,6),null); } else { style.removeProperty("background-color"); } var w = textEngine.width; var h = textEngine.height; var scale = 1; var text = ""; if(textField.__isHTML) { textField.__updateText(openfl_text__$internal_HTMLParser.parse(textField.__text,textField.get_multiline(),textField.__styleSheet,textField.__textFormat,textField.__textEngine.textFormatRanges)); } var useTextBounds = !(textEngine.background || textEngine.border); var bounds = useTextBounds ? textEngine.textBounds : textEngine.bounds; var scrollX = -textField.get_scrollH(); var scrollY = 0.0; var group = textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex < textField.get_scrollV() - 1) { continue; } if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) { break; } text += "
"; if(group1.format.url != null && group1.format.url != "") { var anchorStyle = "text-decoration: underline; "; if(group1.format.color != null) { anchorStyle += "color: #" + StringTools.hex(group1.format.color & 16777215,6) + "; "; } text += ""; } if(!textField.__isHTML) { text += StringTools.replace(StringTools.htmlEscape(textEngine.text.substring(group1.startIndex,group1.endIndex))," "," "); } else { text += StringTools.replace(textEngine.text.substring(group1.startIndex,group1.endIndex)," "," "); } if(group1.format.url != null && group1.format.url != "") { text += ""; } text += "
"; } if(textEngine.border) { style.setProperty("border","solid 1px #" + StringTools.hex(textEngine.borderColor & 16777215,6),null); textField.__renderTransform.translate(-1,-1); textField.__renderTransformChanged = true; textField.__transformDirty = true; } else if(style.border != "") { style.removeProperty("border"); textField.__renderTransformChanged = true; } style.setProperty("width",w + "px",null); style.setProperty("height",h + "px",null); textField.__div.innerHTML = text; textField.__dirty = false; } else if(textField.__div != null) { renderer.element.removeChild(textField.__div); textField.__div = null; } } if(textField.__div != null) { var old = renderer.__roundPixels; renderer.__roundPixels = true; renderer.__updateClip(textField); renderer.__applyStyle(textField,true,true,true); renderer.__roundPixels = old; } } else { openfl_display__$internal_DOMTextField.clear(textField,renderer); } }; openfl_display__$internal_DOMTextField.renderDrawable = function(textField,renderer) { textField.__domRender = true; renderer.__updateCacheBitmap(textField,textField.__forceCachedBitmapUpdate); textField.__forceCachedBitmapUpdate = false; textField.__domRender = false; if(textField.__cacheBitmap != null && !textField.__isCacheBitmapRender) { renderer.__renderDrawableClear(textField); textField.__cacheBitmap.stage = textField.stage; var bitmap = textField.__cacheBitmap; if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { renderer.__pushMaskObject(bitmap); if(bitmap.__bitmapData.image.buffer.__srcImage != null) { var src = bitmap.__bitmapData.image.buffer.__srcImage.src; if(StringTools.startsWith(src,"data:") || StringTools.startsWith(src,"blob:")) { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } else { openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer); } } else { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } renderer.__popMaskObject(bitmap); } else { openfl_display__$internal_DOMBitmap.clear(bitmap,renderer); } } else { if(textField.__renderedOnCanvasWhileOnDOM) { textField.__renderedOnCanvasWhileOnDOM = false; if(textField.__isHTML && textField.__htmlText != null) { textField.__updateText(textField.__htmlText); textField.__dirty = true; textField.__layoutDirty = true; if(!textField.__renderDirty) { textField.__renderDirty = true; textField.__setParentRenderDirty(); } } } var textField1 = textField; var textEngine = textField1.__textEngine; if(textField1.stage != null && textField1.__worldVisible && textField1.__renderable) { if(textField1.__dirty || textField1.__renderTransformChanged || textField1.__div == null) { if(textEngine.text != "" || textEngine.background || textEngine.border || textEngine.type == 1) { textField1.__updateLayout(); if(textField1.__div == null) { textField1.__div = window.document.createElement("div"); renderer.__initializeElement(textField1,textField1.__div); textField1.__style.setProperty("outline","none",null); textField1.__div.addEventListener("input",function(event) { event.preventDefault(); if(textField1.get_htmlText() != textField1.__div.innerHTML) { textField1.set_htmlText(textField1.__div.innerHTML); var textField = textField1.__displayAsPassword; textField1.__dirty = false; textField1.dispatchEvent(new openfl_events_TextEvent("textInput",false,false,textField1.get_htmlText())); } },true); } if(!textEngine.wordWrap) { textField1.__style.setProperty("white-space","nowrap",null); } else { textField1.__style.setProperty("word-wrap","break-word",null); } textField1.__style.setProperty("overflow","hidden",null); if(textEngine.selectable) { textField1.__style.setProperty("cursor","text",null); textField1.__style.setProperty("-webkit-user-select","text",null); textField1.__style.setProperty("-moz-user-select","text",null); textField1.__style.setProperty("-ms-user-select","text",null); textField1.__style.setProperty("-o-user-select","text",null); } else { textField1.__style.setProperty("cursor","inherit",null); } var div = textField1.__div; div.contentEditable = textEngine.type == 1; var style = textField1.__style; if(textEngine.background) { style.setProperty("background-color","#" + StringTools.hex(textEngine.backgroundColor & 16777215,6),null); } else { style.removeProperty("background-color"); } var w = textEngine.width; var h = textEngine.height; var scale = 1; var text = ""; if(textField1.__isHTML) { textField1.__updateText(openfl_text__$internal_HTMLParser.parse(textField1.__text,textField1.get_multiline(),textField1.__styleSheet,textField1.__textFormat,textField1.__textEngine.textFormatRanges)); } var useTextBounds = !(textEngine.background || textEngine.border); var bounds = useTextBounds ? textEngine.textBounds : textEngine.bounds; var scrollX = -textField1.get_scrollH(); var scrollY = 0.0; var group = textEngine.layoutGroups.iterator(); while(group.hasNext()) { var group1 = group.next(); if(group1.lineIndex < textField1.get_scrollV() - 1) { continue; } if(group1.lineIndex > textEngine.get_bottomScrollV() - 1) { break; } text += "
"; if(group1.format.url != null && group1.format.url != "") { var anchorStyle = "text-decoration: underline; "; if(group1.format.color != null) { anchorStyle += "color: #" + StringTools.hex(group1.format.color & 16777215,6) + "; "; } text += ""; } if(!textField1.__isHTML) { text += StringTools.replace(StringTools.htmlEscape(textEngine.text.substring(group1.startIndex,group1.endIndex))," "," "); } else { text += StringTools.replace(textEngine.text.substring(group1.startIndex,group1.endIndex)," "," "); } if(group1.format.url != null && group1.format.url != "") { text += ""; } text += "
"; } if(textEngine.border) { style.setProperty("border","solid 1px #" + StringTools.hex(textEngine.borderColor & 16777215,6),null); textField1.__renderTransform.translate(-1,-1); textField1.__renderTransformChanged = true; textField1.__transformDirty = true; } else if(style.border != "") { style.removeProperty("border"); textField1.__renderTransformChanged = true; } style.setProperty("width",w + "px",null); style.setProperty("height",h + "px",null); textField1.__div.innerHTML = text; textField1.__dirty = false; } else if(textField1.__div != null) { renderer.element.removeChild(textField1.__div); textField1.__div = null; } } if(textField1.__div != null) { var old = renderer.__roundPixels; renderer.__roundPixels = true; renderer.__updateClip(textField1); renderer.__applyStyle(textField1,true,true,true); renderer.__roundPixels = old; } } else { openfl_display__$internal_DOMTextField.clear(textField1,renderer); } } renderer.__renderEvent(textField); }; openfl_display__$internal_DOMTextField.renderDrawableClear = function(textField,renderer) { openfl_display__$internal_DOMTextField.clear(textField,renderer); }; openfl_display__$internal_DOMTextField.__getAttributeMatch = function(regex) { if(regex.matched(2) != null) { return regex.matched(2); } else { return regex.matched(3); } }; var openfl_display__$internal_DOMTilemap = function() { }; $hxClasses["openfl.display._internal.DOMTilemap"] = openfl_display__$internal_DOMTilemap; openfl_display__$internal_DOMTilemap.__name__ = "openfl.display._internal.DOMTilemap"; openfl_display__$internal_DOMTilemap.clear = function(tilemap,renderer) { openfl_display__$internal_DOMDisplayObject.clear(tilemap,renderer); if(tilemap.__canvas != null) { renderer.element.removeChild(tilemap.__canvas); tilemap.__canvas = null; tilemap.__style = null; } }; openfl_display__$internal_DOMTilemap.render = function(tilemap,renderer) { if(tilemap.stage != null && tilemap.__worldVisible && tilemap.__renderable && tilemap.__group.__tiles.length > 0) { if(tilemap.__canvas == null) { tilemap.__canvas = window.document.createElement("canvas"); tilemap.__context = tilemap.__canvas.getContext("2d"); renderer.__initializeElement(tilemap,tilemap.__canvas); } tilemap.__canvas.width = tilemap.__width; tilemap.__canvas.height = tilemap.__height; renderer.__canvasRenderer.context = tilemap.__context; var cacheRenderTransform = tilemap.__renderTransform; tilemap.__renderTransform = openfl_geom_Matrix.__identity; var renderer1 = renderer.__canvasRenderer; if(!(tilemap.opaqueBackground == null && tilemap.__graphics == null)) { if(tilemap.__renderable) { var alpha = renderer1.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { if(tilemap.opaqueBackground != null && !tilemap.__isCacheBitmapRender && tilemap.get_width() > 0 && tilemap.get_height() > 0) { renderer1.__setBlendMode(tilemap.__worldBlendMode); renderer1.__pushMaskObject(tilemap); var context = renderer1.context; renderer1.setTransform(tilemap.__renderTransform,context); var color = tilemap.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,tilemap.get_width(),tilemap.get_height()); renderer1.__popMaskObject(tilemap); } if(tilemap.__graphics != null) { if(tilemap.__renderable) { var alpha = renderer1.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { var graphics = tilemap.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer1); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer1.context; var scrollRect = tilemap.__scrollRect; var scale9Grid = tilemap.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer1.__setBlendMode(tilemap.__worldBlendMode); renderer1.__pushMaskObject(tilemap); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer1.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer1.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer1.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer1.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer1.__popMaskObject(tilemap); } } } } } } } } } var renderer1 = renderer.__canvasRenderer; if(!(!tilemap.__renderable || tilemap.__group.__tiles.length == 0)) { var alpha = renderer1.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { var context = renderer1.context; renderer1.__setBlendMode(tilemap.__worldBlendMode); renderer1.__pushMaskObject(tilemap); var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.__width,tilemap.__height); renderer1.__pushMaskRect(rect,tilemap.__renderTransform); if(!renderer1.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = false; } openfl_display__$internal_CanvasTilemap.renderTileContainer(tilemap.__group,renderer1,tilemap.__renderTransform,tilemap.__tileset,renderer1.__allowSmoothing && tilemap.smoothing,tilemap.tileAlphaEnabled,alpha,tilemap.tileBlendModeEnabled,tilemap.__worldBlendMode,null,null,rect); if(!renderer1.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = true; } renderer1.__popMaskRect(); renderer1.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); } } tilemap.__renderTransform = cacheRenderTransform; renderer.__canvasRenderer.context = null; renderer.__updateClip(tilemap); renderer.__applyStyle(tilemap,true,false,true); } else { openfl_display__$internal_DOMTilemap.clear(tilemap,renderer); } }; openfl_display__$internal_DOMTilemap.renderDrawable = function(tilemap,renderer) { renderer.__updateCacheBitmap(tilemap,false); if(tilemap.__cacheBitmap != null && !tilemap.__isCacheBitmapRender) { renderer.__renderDrawableClear(tilemap); tilemap.__cacheBitmap.stage = tilemap.stage; var bitmap = tilemap.__cacheBitmap; if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) { renderer.__pushMaskObject(bitmap); if(bitmap.__bitmapData.image.buffer.__srcImage != null) { var src = bitmap.__bitmapData.image.buffer.__srcImage.src; if(StringTools.startsWith(src,"data:") || StringTools.startsWith(src,"blob:")) { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } else { openfl_display__$internal_DOMBitmap.renderImage(bitmap,renderer); } } else { openfl_display__$internal_DOMBitmap.renderCanvas(bitmap,renderer); } renderer.__popMaskObject(bitmap); } else { openfl_display__$internal_DOMBitmap.clear(bitmap,renderer); } } else if(tilemap.stage != null && tilemap.__worldVisible && tilemap.__renderable && tilemap.__group.__tiles.length > 0) { if(tilemap.__canvas == null) { tilemap.__canvas = window.document.createElement("canvas"); tilemap.__context = tilemap.__canvas.getContext("2d"); renderer.__initializeElement(tilemap,tilemap.__canvas); } tilemap.__canvas.width = tilemap.__width; tilemap.__canvas.height = tilemap.__height; renderer.__canvasRenderer.context = tilemap.__context; var cacheRenderTransform = tilemap.__renderTransform; tilemap.__renderTransform = openfl_geom_Matrix.__identity; var renderer1 = renderer.__canvasRenderer; if(!(tilemap.opaqueBackground == null && tilemap.__graphics == null)) { if(tilemap.__renderable) { var alpha = renderer1.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { if(tilemap.opaqueBackground != null && !tilemap.__isCacheBitmapRender && tilemap.get_width() > 0 && tilemap.get_height() > 0) { renderer1.__setBlendMode(tilemap.__worldBlendMode); renderer1.__pushMaskObject(tilemap); var context = renderer1.context; renderer1.setTransform(tilemap.__renderTransform,context); var color = tilemap.opaqueBackground; context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")"; context.fillRect(0,0,tilemap.get_width(),tilemap.get_height()); renderer1.__popMaskObject(tilemap); } if(tilemap.__graphics != null) { if(tilemap.__renderable) { var alpha = renderer1.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { var graphics = tilemap.__graphics; if(graphics != null) { openfl_display__$internal_CanvasGraphics.render(graphics,renderer1); var width = graphics.__width; var height = graphics.__height; var canvas = graphics.__canvas; if(canvas != null && graphics.__visible && width >= 1 && height >= 1) { var transform = graphics.__worldTransform; var context = renderer1.context; var scrollRect = tilemap.__scrollRect; var scale9Grid = tilemap.__worldScale9Grid; if(scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0) { renderer1.__setBlendMode(tilemap.__worldBlendMode); renderer1.__pushMaskObject(tilemap); context.globalAlpha = alpha; if(scale9Grid != null && transform.b == 0 && transform.c == 0) { var pixelRatio = renderer1.__pixelRatio; var matrix = openfl_geom_Matrix.__pool.get(); matrix.translate(transform.tx,transform.ty); renderer1.setTransform(matrix,context); openfl_geom_Matrix.__pool.release(matrix); var bounds = graphics.__bounds; var scaleX = graphics.__renderTransform.a / graphics.__bitmapScale; var scaleY = graphics.__renderTransform.d / graphics.__bitmapScale; var renderScaleX = scaleX * transform.a; var renderScaleY = scaleY * transform.d; var left = Math.max(1,Math.round(scale9Grid.x * scaleX)); var top = Math.round(scale9Grid.y * scaleY); var right = Math.max(1,Math.round((bounds.get_right() - scale9Grid.get_right()) * scaleX)); var bottom = Math.round((bounds.get_bottom() - scale9Grid.get_bottom()) * scaleY); var centerWidth = Math.round(scale9Grid.width * scaleX); var centerHeight = Math.round(scale9Grid.height * scaleY); var renderLeft = Math.round(left / pixelRatio); var renderTop = Math.round(top / pixelRatio); var renderRight = Math.round(right / pixelRatio); var renderBottom = Math.round(bottom / pixelRatio); var renderCenterWidth = bounds.width * renderScaleX - renderLeft - renderRight; var renderCenterHeight = bounds.height * renderScaleY - renderTop - renderBottom; renderer1.applySmoothing(context,false); if(centerWidth != 0 && centerHeight != 0) { context.drawImage(canvas,0,0,left,top,0,0,renderLeft,renderTop); context.drawImage(canvas,left,0,centerWidth,top,renderLeft,0,renderCenterWidth,renderTop); context.drawImage(canvas,left + centerWidth,0,right,top,renderLeft + renderCenterWidth,0,renderRight,renderTop); context.drawImage(canvas,0,top,left,centerHeight,0,renderTop,renderLeft,renderCenterHeight); context.drawImage(canvas,left,top,centerWidth,centerHeight,renderLeft,renderTop,renderCenterWidth,renderCenterHeight); context.drawImage(canvas,left + centerWidth,top,right,centerHeight,renderLeft + renderCenterWidth,renderTop,renderRight,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,left,bottom,0,renderTop + renderCenterHeight,renderLeft,renderBottom); context.drawImage(canvas,left,top + centerHeight,centerWidth,bottom,renderLeft,renderTop + renderCenterHeight,renderCenterWidth,renderBottom); context.drawImage(canvas,left + centerWidth,top + centerHeight,right,bottom,renderLeft + renderCenterWidth,renderTop + renderCenterHeight,renderRight,renderBottom); } else if(centerWidth == 0 && centerHeight != 0) { var renderWidth = renderLeft + renderCenterWidth + renderRight; context.drawImage(canvas,0,0,width,top,0,0,renderWidth,renderTop); context.drawImage(canvas,0,top,width,centerHeight,0,renderTop,renderWidth,renderCenterHeight); context.drawImage(canvas,0,top + centerHeight,width,bottom,0,renderTop + renderCenterHeight,renderWidth,renderBottom); } else if(centerHeight == 0 && centerWidth != 0) { var renderHeight = renderTop + renderCenterHeight + renderBottom; context.drawImage(canvas,0,0,left,height,0,0,renderLeft,renderHeight); context.drawImage(canvas,left,0,centerWidth,height,renderLeft,0,renderCenterWidth,renderHeight); context.drawImage(canvas,left + centerWidth,0,right,height,renderLeft + renderCenterWidth,0,renderRight,renderHeight); } } else { renderer1.setTransform(transform,context); context.drawImage(canvas,0,0,width,height); } renderer1.__popMaskObject(tilemap); } } } } } } } } } var renderer1 = renderer.__canvasRenderer; if(!(!tilemap.__renderable || tilemap.__group.__tiles.length == 0)) { var alpha = renderer1.__getAlpha(tilemap.__worldAlpha); if(!(alpha <= 0)) { var context = renderer1.context; renderer1.__setBlendMode(tilemap.__worldBlendMode); renderer1.__pushMaskObject(tilemap); var rect = openfl_geom_Rectangle.__pool.get(); rect.setTo(0,0,tilemap.__width,tilemap.__height); renderer1.__pushMaskRect(rect,tilemap.__renderTransform); if(!renderer1.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = false; } openfl_display__$internal_CanvasTilemap.renderTileContainer(tilemap.__group,renderer1,tilemap.__renderTransform,tilemap.__tileset,renderer1.__allowSmoothing && tilemap.smoothing,tilemap.tileAlphaEnabled,alpha,tilemap.tileBlendModeEnabled,tilemap.__worldBlendMode,null,null,rect); if(!renderer1.__allowSmoothing || !tilemap.smoothing) { context.imageSmoothingEnabled = true; } renderer1.__popMaskRect(); renderer1.__popMaskObject(tilemap); openfl_geom_Rectangle.__pool.release(rect); } } tilemap.__renderTransform = cacheRenderTransform; renderer.__canvasRenderer.context = null; renderer.__updateClip(tilemap); renderer.__applyStyle(tilemap,true,false,true); } else { openfl_display__$internal_DOMTilemap.clear(tilemap,renderer); } renderer.__renderEvent(tilemap); }; openfl_display__$internal_DOMTilemap.renderDrawableClear = function(tilemap,renderer) { openfl_display__$internal_DOMTilemap.clear(tilemap,renderer); }; var openfl_display__$internal_DOMVideo = function() { }; $hxClasses["openfl.display._internal.DOMVideo"] = openfl_display__$internal_DOMVideo; openfl_display__$internal_DOMVideo.__name__ = "openfl.display._internal.DOMVideo"; openfl_display__$internal_DOMVideo.clear = function(video,renderer) { openfl_display__$internal_DOMDisplayObject.clear(video,renderer); if(video.__active) { renderer.element.removeChild(video.__stream.__video); video.__active = false; } }; openfl_display__$internal_DOMVideo.render = function(video,renderer) { if(video.stage != null && video.__stream != null && video.__worldVisible && video.__renderable) { if(!video.__active) { renderer.__initializeElement(video,video.__stream.__video); video.__active = true; video.__dirty = true; } if(video.__dirty) { video.__stream.__video.width = video.__width | 0; video.__stream.__video.height = video.__height | 0; video.__dirty = false; } renderer.__updateClip(video); renderer.__applyStyle(video,true,true,true); } else { openfl_display__$internal_DOMVideo.clear(video,renderer); } }; openfl_display__$internal_DOMVideo.renderDrawable = function(video,renderer) { openfl_display__$internal_DOMVideo.render(video,renderer); renderer.__renderEvent(video); }; openfl_display__$internal_DOMVideo.renderDrawableClear = function(video,renderer) { openfl_display__$internal_DOMDisplayObject.renderDrawableClear(video,renderer); }; var openfl_display__$internal_DrawCommandReader = function(buffer) { this.buffer = buffer; this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; this.prev = openfl_display__$internal_DrawCommandType.UNKNOWN; }; $hxClasses["openfl.display._internal.DrawCommandReader"] = openfl_display__$internal_DrawCommandReader; openfl_display__$internal_DrawCommandReader.__name__ = "openfl.display._internal.DrawCommandReader"; openfl_display__$internal_DrawCommandReader.prototype = { buffer: null ,bPos: null ,iiPos: null ,iPos: null ,ffPos: null ,fPos: null ,oPos: null ,prev: null ,tsPos: null ,advance: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: 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() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL; return this; } ,readBeginFill: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.BEGIN_FILL; return this; } ,readBeginGradientFill: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL; return this; } ,readBeginShaderFill: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL; return this; } ,readCubicCurveTo: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO; return this; } ,readCurveTo: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.CURVE_TO; return this; } ,readDrawCircle: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.DRAW_CIRCLE; return this; } ,readDrawEllipse: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE; return this; } ,readDrawQuads: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.DRAW_QUADS; return this; } ,readDrawRect: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.DRAW_RECT; return this; } ,readDrawRoundRect: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT; return this; } ,readDrawTriangles: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES; return this; } ,readEndFill: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.END_FILL; return this; } ,readLineBitmapStyle: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE; return this; } ,readLineGradientStyle: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE; return this; } ,readLineStyle: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.LINE_STYLE; return this; } ,readLineTo: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.LINE_TO; return this; } ,readMoveTo: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.MOVE_TO; return this; } ,readOverrideBlendMode: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE; return this; } ,readOverrideMatrix: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX; return this; } ,readWindingEvenOdd: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD; return this; } ,readWindingNonZero: function() { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO; return this; } ,reset: function() { this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; } ,skip: function(type) { switch(this.prev._hx_index) { 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.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 13: break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1; break; case 21:case 22: break; default: } this.prev = type; } ,__class__: openfl_display__$internal_DrawCommandReader }; var openfl_display__$internal_BeginBitmapFillView = {}; openfl_display__$internal_BeginBitmapFillView.__properties__ = {get_smooth:"get_smooth",get_repeat:"get_repeat",get_matrix:"get_matrix",get_bitmap:"get_bitmap"}; openfl_display__$internal_BeginBitmapFillView._new = function(d) { return d; }; openfl_display__$internal_BeginBitmapFillView.get_bitmap = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_BeginBitmapFillView.get_matrix = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_BeginBitmapFillView.get_repeat = function(this1) { return this1.buffer.b[this1.bPos]; }; openfl_display__$internal_BeginBitmapFillView.get_smooth = function(this1) { return this1.buffer.b[this1.bPos + 1]; }; var openfl_display__$internal_BeginFillView = {}; openfl_display__$internal_BeginFillView.__properties__ = {get_alpha:"get_alpha",get_color:"get_color"}; openfl_display__$internal_BeginFillView._new = function(d) { return d; }; openfl_display__$internal_BeginFillView.get_color = function(this1) { return this1.buffer.i[this1.iPos]; }; openfl_display__$internal_BeginFillView.get_alpha = function(this1) { return this1.buffer.f[this1.fPos]; }; var openfl_display__$internal_BeginGradientFillView = {}; openfl_display__$internal_BeginGradientFillView.__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_display__$internal_BeginGradientFillView._new = function(d) { return d; }; openfl_display__$internal_BeginGradientFillView.get_type = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_BeginGradientFillView.get_colors = function(this1) { return this1.buffer.ii[this1.iiPos]; }; openfl_display__$internal_BeginGradientFillView.get_alphas = function(this1) { return this1.buffer.ff[this1.ffPos]; }; openfl_display__$internal_BeginGradientFillView.get_ratios = function(this1) { return this1.buffer.ii[this1.iiPos + 1]; }; openfl_display__$internal_BeginGradientFillView.get_matrix = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_BeginGradientFillView.get_spreadMethod = function(this1) { return this1.buffer.o[this1.oPos + 2]; }; openfl_display__$internal_BeginGradientFillView.get_interpolationMethod = function(this1) { return this1.buffer.o[this1.oPos + 3]; }; openfl_display__$internal_BeginGradientFillView.get_focalPointRatio = function(this1) { return this1.buffer.f[this1.fPos]; }; var openfl_display__$internal_BeginShaderFillView = {}; openfl_display__$internal_BeginShaderFillView.__properties__ = {get_shaderBuffer:"get_shaderBuffer"}; openfl_display__$internal_BeginShaderFillView._new = function(d) { return d; }; openfl_display__$internal_BeginShaderFillView.get_shaderBuffer = function(this1) { return this1.buffer.o[this1.oPos]; }; var openfl_display__$internal_CubicCurveToView = {}; openfl_display__$internal_CubicCurveToView.__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_display__$internal_CubicCurveToView._new = function(d) { return d; }; openfl_display__$internal_CubicCurveToView.get_controlX1 = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_CubicCurveToView.get_controlY1 = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; openfl_display__$internal_CubicCurveToView.get_controlX2 = function(this1) { return this1.buffer.f[this1.fPos + 2]; }; openfl_display__$internal_CubicCurveToView.get_controlY2 = function(this1) { return this1.buffer.f[this1.fPos + 3]; }; openfl_display__$internal_CubicCurveToView.get_anchorX = function(this1) { return this1.buffer.f[this1.fPos + 4]; }; openfl_display__$internal_CubicCurveToView.get_anchorY = function(this1) { return this1.buffer.f[this1.fPos + 5]; }; var openfl_display__$internal_CurveToView = {}; openfl_display__$internal_CurveToView.__properties__ = {get_anchorY:"get_anchorY",get_anchorX:"get_anchorX",get_controlY:"get_controlY",get_controlX:"get_controlX"}; openfl_display__$internal_CurveToView._new = function(d) { return d; }; openfl_display__$internal_CurveToView.get_controlX = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_CurveToView.get_controlY = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; openfl_display__$internal_CurveToView.get_anchorX = function(this1) { return this1.buffer.f[this1.fPos + 2]; }; openfl_display__$internal_CurveToView.get_anchorY = function(this1) { return this1.buffer.f[this1.fPos + 3]; }; var openfl_display__$internal_DrawCircleView = {}; openfl_display__$internal_DrawCircleView.__properties__ = {get_radius:"get_radius",get_y:"get_y",get_x:"get_x"}; openfl_display__$internal_DrawCircleView._new = function(d) { return d; }; openfl_display__$internal_DrawCircleView.get_x = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_DrawCircleView.get_y = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; openfl_display__$internal_DrawCircleView.get_radius = function(this1) { return this1.buffer.f[this1.fPos + 2]; }; var openfl_display__$internal_DrawEllipseView = {}; openfl_display__$internal_DrawEllipseView.__properties__ = {get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"}; openfl_display__$internal_DrawEllipseView._new = function(d) { return d; }; openfl_display__$internal_DrawEllipseView.get_x = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_DrawEllipseView.get_y = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; openfl_display__$internal_DrawEllipseView.get_width = function(this1) { return this1.buffer.f[this1.fPos + 2]; }; openfl_display__$internal_DrawEllipseView.get_height = function(this1) { return this1.buffer.f[this1.fPos + 3]; }; var openfl_display__$internal_DrawQuadsView = {}; openfl_display__$internal_DrawQuadsView.__properties__ = {get_transforms:"get_transforms",get_indices:"get_indices",get_rects:"get_rects"}; openfl_display__$internal_DrawQuadsView._new = function(d) { return d; }; openfl_display__$internal_DrawQuadsView.get_rects = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_DrawQuadsView.get_indices = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_DrawQuadsView.get_transforms = function(this1) { return this1.buffer.o[this1.oPos + 2]; }; var openfl_display__$internal_DrawRectView = {}; openfl_display__$internal_DrawRectView.__properties__ = {get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"}; openfl_display__$internal_DrawRectView._new = function(d) { return d; }; openfl_display__$internal_DrawRectView.get_x = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_DrawRectView.get_y = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; openfl_display__$internal_DrawRectView.get_width = function(this1) { return this1.buffer.f[this1.fPos + 2]; }; openfl_display__$internal_DrawRectView.get_height = function(this1) { return this1.buffer.f[this1.fPos + 3]; }; var openfl_display__$internal_DrawRoundRectView = {}; openfl_display__$internal_DrawRoundRectView.__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_display__$internal_DrawRoundRectView._new = function(d) { return d; }; openfl_display__$internal_DrawRoundRectView.get_x = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_DrawRoundRectView.get_y = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; openfl_display__$internal_DrawRoundRectView.get_width = function(this1) { return this1.buffer.f[this1.fPos + 2]; }; openfl_display__$internal_DrawRoundRectView.get_height = function(this1) { return this1.buffer.f[this1.fPos + 3]; }; openfl_display__$internal_DrawRoundRectView.get_ellipseWidth = function(this1) { return this1.buffer.f[this1.fPos + 4]; }; openfl_display__$internal_DrawRoundRectView.get_ellipseHeight = function(this1) { return this1.buffer.o[this1.oPos]; }; var openfl_display__$internal_DrawTrianglesView = {}; openfl_display__$internal_DrawTrianglesView.__properties__ = {get_culling:"get_culling",get_uvtData:"get_uvtData",get_indices:"get_indices",get_vertices:"get_vertices"}; openfl_display__$internal_DrawTrianglesView._new = function(d) { return d; }; openfl_display__$internal_DrawTrianglesView.get_vertices = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_DrawTrianglesView.get_indices = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_DrawTrianglesView.get_uvtData = function(this1) { return this1.buffer.o[this1.oPos + 2]; }; openfl_display__$internal_DrawTrianglesView.get_culling = function(this1) { return this1.buffer.o[this1.oPos + 3]; }; var openfl_display__$internal_EndFillView = {}; openfl_display__$internal_EndFillView._new = function(d) { return d; }; var openfl_display__$internal_LineBitmapStyleView = {}; openfl_display__$internal_LineBitmapStyleView.__properties__ = {get_smooth:"get_smooth",get_repeat:"get_repeat",get_matrix:"get_matrix",get_bitmap:"get_bitmap"}; openfl_display__$internal_LineBitmapStyleView._new = function(d) { return d; }; openfl_display__$internal_LineBitmapStyleView.get_bitmap = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_LineBitmapStyleView.get_matrix = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_LineBitmapStyleView.get_repeat = function(this1) { return this1.buffer.b[this1.bPos]; }; openfl_display__$internal_LineBitmapStyleView.get_smooth = function(this1) { return this1.buffer.b[this1.bPos + 1]; }; var openfl_display__$internal_LineGradientStyleView = {}; openfl_display__$internal_LineGradientStyleView.__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_display__$internal_LineGradientStyleView._new = function(d) { return d; }; openfl_display__$internal_LineGradientStyleView.get_type = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_LineGradientStyleView.get_colors = function(this1) { return this1.buffer.ii[this1.iiPos]; }; openfl_display__$internal_LineGradientStyleView.get_alphas = function(this1) { return this1.buffer.ff[this1.ffPos]; }; openfl_display__$internal_LineGradientStyleView.get_ratios = function(this1) { return this1.buffer.ii[this1.iiPos + 1]; }; openfl_display__$internal_LineGradientStyleView.get_matrix = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_LineGradientStyleView.get_spreadMethod = function(this1) { return this1.buffer.o[this1.oPos + 2]; }; openfl_display__$internal_LineGradientStyleView.get_interpolationMethod = function(this1) { return this1.buffer.o[this1.oPos + 3]; }; openfl_display__$internal_LineGradientStyleView.get_focalPointRatio = function(this1) { return this1.buffer.f[this1.fPos]; }; var openfl_display__$internal_LineStyleView = {}; openfl_display__$internal_LineStyleView.__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_display__$internal_LineStyleView._new = function(d) { return d; }; openfl_display__$internal_LineStyleView.get_thickness = function(this1) { return this1.buffer.o[this1.oPos]; }; openfl_display__$internal_LineStyleView.get_color = function(this1) { return this1.buffer.i[this1.iPos]; }; openfl_display__$internal_LineStyleView.get_alpha = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_LineStyleView.get_pixelHinting = function(this1) { return this1.buffer.b[this1.bPos]; }; openfl_display__$internal_LineStyleView.get_scaleMode = function(this1) { return this1.buffer.o[this1.oPos + 1]; }; openfl_display__$internal_LineStyleView.get_caps = function(this1) { return this1.buffer.o[this1.oPos + 2]; }; openfl_display__$internal_LineStyleView.get_joints = function(this1) { return this1.buffer.o[this1.oPos + 3]; }; openfl_display__$internal_LineStyleView.get_miterLimit = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; var openfl_display__$internal_LineToView = {}; openfl_display__$internal_LineToView.__properties__ = {get_y:"get_y",get_x:"get_x"}; openfl_display__$internal_LineToView._new = function(d) { return d; }; openfl_display__$internal_LineToView.get_x = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_LineToView.get_y = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; var openfl_display__$internal_MoveToView = {}; openfl_display__$internal_MoveToView.__properties__ = {get_y:"get_y",get_x:"get_x"}; openfl_display__$internal_MoveToView._new = function(d) { return d; }; openfl_display__$internal_MoveToView.get_x = function(this1) { return this1.buffer.f[this1.fPos]; }; openfl_display__$internal_MoveToView.get_y = function(this1) { return this1.buffer.f[this1.fPos + 1]; }; var openfl_display__$internal_OverrideBlendModeView = {}; openfl_display__$internal_OverrideBlendModeView.__properties__ = {get_blendMode:"get_blendMode"}; openfl_display__$internal_OverrideBlendModeView._new = function(d) { return d; }; openfl_display__$internal_OverrideBlendModeView.get_blendMode = function(this1) { return this1.buffer.o[this1.oPos]; }; var openfl_display__$internal_OverrideMatrixView = {}; openfl_display__$internal_OverrideMatrixView.__properties__ = {get_matrix:"get_matrix"}; openfl_display__$internal_OverrideMatrixView._new = function(d) { return d; }; openfl_display__$internal_OverrideMatrixView.get_matrix = function(this1) { return this1.buffer.o[this1.oPos]; }; var openfl_display__$internal_WindingEvenOddView = {}; openfl_display__$internal_WindingEvenOddView._new = function(d) { return d; }; var openfl_display__$internal_WindingNonZeroView = {}; openfl_display__$internal_WindingNonZeroView._new = function(d) { return d; }; var openfl_display__$internal_DrawCommandType = $hxEnums["openfl.display._internal.DrawCommandType"] = { __ename__:"openfl.display._internal.DrawCommandType",__constructs__:null ,BEGIN_BITMAP_FILL: {_hx_name:"BEGIN_BITMAP_FILL",_hx_index:0,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,BEGIN_FILL: {_hx_name:"BEGIN_FILL",_hx_index:1,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,BEGIN_GRADIENT_FILL: {_hx_name:"BEGIN_GRADIENT_FILL",_hx_index:2,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,BEGIN_SHADER_FILL: {_hx_name:"BEGIN_SHADER_FILL",_hx_index:3,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,CUBIC_CURVE_TO: {_hx_name:"CUBIC_CURVE_TO",_hx_index:4,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,CURVE_TO: {_hx_name:"CURVE_TO",_hx_index:5,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_CIRCLE: {_hx_name:"DRAW_CIRCLE",_hx_index:6,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_ELLIPSE: {_hx_name:"DRAW_ELLIPSE",_hx_index:7,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_QUADS: {_hx_name:"DRAW_QUADS",_hx_index:8,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_RECT: {_hx_name:"DRAW_RECT",_hx_index:9,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_ROUND_RECT: {_hx_name:"DRAW_ROUND_RECT",_hx_index:10,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_TILES: {_hx_name:"DRAW_TILES",_hx_index:11,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,DRAW_TRIANGLES: {_hx_name:"DRAW_TRIANGLES",_hx_index:12,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,END_FILL: {_hx_name:"END_FILL",_hx_index:13,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,LINE_BITMAP_STYLE: {_hx_name:"LINE_BITMAP_STYLE",_hx_index:14,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,LINE_GRADIENT_STYLE: {_hx_name:"LINE_GRADIENT_STYLE",_hx_index:15,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,LINE_STYLE: {_hx_name:"LINE_STYLE",_hx_index:16,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,LINE_TO: {_hx_name:"LINE_TO",_hx_index:17,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,MOVE_TO: {_hx_name:"MOVE_TO",_hx_index:18,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,OVERRIDE_BLEND_MODE: {_hx_name:"OVERRIDE_BLEND_MODE",_hx_index:19,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,OVERRIDE_MATRIX: {_hx_name:"OVERRIDE_MATRIX",_hx_index:20,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,WINDING_EVEN_ODD: {_hx_name:"WINDING_EVEN_ODD",_hx_index:21,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,WINDING_NON_ZERO: {_hx_name:"WINDING_NON_ZERO",_hx_index:22,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:23,__enum__:"openfl.display._internal.DrawCommandType",toString:$estr} }; openfl_display__$internal_DrawCommandType.__constructs__ = [openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL,openfl_display__$internal_DrawCommandType.BEGIN_FILL,openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL,openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL,openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO,openfl_display__$internal_DrawCommandType.CURVE_TO,openfl_display__$internal_DrawCommandType.DRAW_CIRCLE,openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE,openfl_display__$internal_DrawCommandType.DRAW_QUADS,openfl_display__$internal_DrawCommandType.DRAW_RECT,openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT,openfl_display__$internal_DrawCommandType.DRAW_TILES,openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES,openfl_display__$internal_DrawCommandType.END_FILL,openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE,openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE,openfl_display__$internal_DrawCommandType.LINE_STYLE,openfl_display__$internal_DrawCommandType.LINE_TO,openfl_display__$internal_DrawCommandType.MOVE_TO,openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE,openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX,openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD,openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO,openfl_display__$internal_DrawCommandType.UNKNOWN]; openfl_display__$internal_DrawCommandType.__empty_constructs__ = [openfl_display__$internal_DrawCommandType.BEGIN_BITMAP_FILL,openfl_display__$internal_DrawCommandType.BEGIN_FILL,openfl_display__$internal_DrawCommandType.BEGIN_GRADIENT_FILL,openfl_display__$internal_DrawCommandType.BEGIN_SHADER_FILL,openfl_display__$internal_DrawCommandType.CUBIC_CURVE_TO,openfl_display__$internal_DrawCommandType.CURVE_TO,openfl_display__$internal_DrawCommandType.DRAW_CIRCLE,openfl_display__$internal_DrawCommandType.DRAW_ELLIPSE,openfl_display__$internal_DrawCommandType.DRAW_QUADS,openfl_display__$internal_DrawCommandType.DRAW_RECT,openfl_display__$internal_DrawCommandType.DRAW_ROUND_RECT,openfl_display__$internal_DrawCommandType.DRAW_TILES,openfl_display__$internal_DrawCommandType.DRAW_TRIANGLES,openfl_display__$internal_DrawCommandType.END_FILL,openfl_display__$internal_DrawCommandType.LINE_BITMAP_STYLE,openfl_display__$internal_DrawCommandType.LINE_GRADIENT_STYLE,openfl_display__$internal_DrawCommandType.LINE_STYLE,openfl_display__$internal_DrawCommandType.LINE_TO,openfl_display__$internal_DrawCommandType.MOVE_TO,openfl_display__$internal_DrawCommandType.OVERRIDE_BLEND_MODE,openfl_display__$internal_DrawCommandType.OVERRIDE_MATRIX,openfl_display__$internal_DrawCommandType.WINDING_EVEN_ODD,openfl_display__$internal_DrawCommandType.WINDING_NON_ZERO,openfl_display__$internal_DrawCommandType.UNKNOWN]; var openfl_display__$internal_FlashRenderer = function() { }; $hxClasses["openfl.display._internal.FlashRenderer"] = openfl_display__$internal_FlashRenderer; openfl_display__$internal_FlashRenderer.__name__ = "openfl.display._internal.FlashRenderer"; openfl_display__$internal_FlashRenderer.instances = null; openfl_display__$internal_FlashRenderer.register = function(renderObject) { if(openfl_display__$internal_FlashRenderer.instances == null) { openfl_display__$internal_FlashRenderer.instances = openfl_utils_Dictionary.toObjectMap(null,true); openfl_Lib.get_current().stage.addEventListener("enterFrame",openfl_display__$internal_FlashRenderer.render,false,-2147483648); } openfl_display__$internal_FlashRenderer.instances.set(renderObject,true); }; openfl_display__$internal_FlashRenderer.render = function(_) { var instance = openfl_display__$internal_FlashRenderer.instances.keys(); while(instance.hasNext()) { var instance1 = instance.next(); instance1.__renderFlash(); } }; var openfl_display__$internal_IDisplayObject = function() { }; $hxClasses["openfl.display._internal.IDisplayObject"] = openfl_display__$internal_IDisplayObject; openfl_display__$internal_IDisplayObject.__name__ = "openfl.display._internal.IDisplayObject"; openfl_display__$internal_IDisplayObject.__isInterface__ = true; openfl_display__$internal_IDisplayObject.prototype = { __renderFlash: null ,__class__: openfl_display__$internal_IDisplayObject }; var openfl_display__$internal_FlashTilemap = function() { }; $hxClasses["openfl.display._internal.FlashTilemap"] = openfl_display__$internal_FlashTilemap; openfl_display__$internal_FlashTilemap.__name__ = "openfl.display._internal.FlashTilemap"; openfl_display__$internal_FlashTilemap.render = function(tilemap) { }; openfl_display__$internal_FlashTilemap.renderTileContainer = function(group,bitmapData,parentTransform,defaultTileset,smooth,alphaEnabled,worldAlpha,colorTransformEnabled,defaultColorTransform,blendModeEnabled,defaultBlendMode,cacheBitmapData) { }; var openfl_display__$internal_PerlinNoise = function(seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold) { if(stitch_threshold == null) { stitch_threshold = 0.05; } if(stitch == null) { stitch = false; } openfl_display__$internal_AbstractNoise.call(this,seed,octaves,channels,grayScale,falloff,stitch,stitch_threshold); this.p_perm = []; var _g = 0; while(_g < 512) { var i = _g++; this.p_perm[i] = openfl_display__$internal_PerlinNoise.P[i & 255]; } this.base_factor = 0.03125; this.setSeed(seed); }; $hxClasses["openfl.display._internal.PerlinNoise"] = openfl_display__$internal_PerlinNoise; openfl_display__$internal_PerlinNoise.__name__ = "openfl.display._internal.PerlinNoise"; openfl_display__$internal_PerlinNoise.__super__ = openfl_display__$internal_AbstractNoise; openfl_display__$internal_PerlinNoise.prototype = $extend(openfl_display__$internal_AbstractNoise.prototype,{ p_perm: null ,x_offset: null ,y_offset: null ,z_offset: null ,base_factor: null ,fill: function(bitmap,_scale_x,_scale_y,_scale_z) { var width = bitmap.width; var height = bitmap.height; var octaves = this.octaves; var octaves_frequencies = this.octaves_frequencies; var octaves_persistences = this.octaves_persistences; var isRed = (1 & this.channels) == 1; var isGreen = (2 & this.channels) == 2; var isBlue = (4 & this.channels) == 4; var channels = 0; if(isRed) { ++channels; } if(isGreen) { ++channels; } if(isBlue) { ++channels; } var grayscale = this.grayscale; var stitch_w = this.stitch_threshold * width | 0; var stitch_h = this.stitch_threshold * height | 0; var base_x = _scale_x * this.base_factor + this.x_offset; _scale_y = _scale_y * this.base_factor + this.y_offset; _scale_z = _scale_z * this.base_factor + this.z_offset; var g_offset = 1.0; var b_offset = 2.0; var _g = 0; var _g1 = height; while(_g < _g1) { var py = _g++; _scale_x = base_x; var _g2 = 0; var _g3 = width; while(_g2 < _g3) { var px = _g2++; var color1 = 0.0; var color2 = 0.0; var color3 = 0.0; var _g4 = 0; var _g5 = octaves; while(_g4 < _g5) { var i = _g4++; var frequency = octaves_frequencies[i]; var persistence = octaves_persistences[i]; color1 += this.noise(_scale_x * frequency,_scale_y * frequency,_scale_z * frequency) * persistence; if(!grayscale) { if(1 < channels) { color2 += this.noise((_scale_x + g_offset) * frequency,(_scale_y + g_offset) * frequency,_scale_z * frequency) * persistence; } if(2 < channels) { color3 += this.noise((_scale_x + b_offset) * frequency,(_scale_y + b_offset) * frequency,_scale_z * frequency) * persistence; } } } var color = 0; if(grayscale) { color = this.color(color1,color1,color1); } else if(isRed && isGreen && isBlue) { color = this.color(color1,color2,color3); } else if(isRed && isGreen) { color = this.color(color1,color2,null); } else if(isRed && isBlue) { color = this.color(color1,null,color2); } else if(isGreen && isBlue) { color = this.color(null,color1,color2); } else if(isRed) { color = this.color(color1,null,null); } else if(isGreen) { color = this.color(null,color1,null); } else if(isBlue) { color = this.color(null,null,color1); } if(this.stitch) { color = this.stitching(bitmap,color,px,py,stitch_w,stitch_h,width,height); } bitmap.setPixel32(px,py,color); _scale_x += this.base_factor; } _scale_y += this.base_factor; } } ,noise: function(x,y,z) { var xf = x - x % 1; var yf = y - y % 1; var zf = z - z % 1; x -= xf; y -= yf; z -= zf; var X = (xf | 0) & 255; var Y = (yf | 0) & 255; var Z = (zf | 0) & 255; var u = this.fade(x); var v = this.fade(y); var w = this.fade(z); var A = this.p_perm[X] + Y; var AA = this.p_perm[A] + Z; var AB = this.p_perm[A + 1] + Z; var B = this.p_perm[X + 1] + Y; var BA = this.p_perm[B] + Z; var BB = this.p_perm[B + 1] + Z; var x1 = x - 1; var y1 = y - 1; var z1 = z - 1; var hash = this.p_perm[BB + 1] & 15; var g1 = ((hash & 1) == 0 ? hash < 8 ? x1 : y1 : hash < 8 ? -x1 : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x1 : z1 : hash < 4 ? -y1 : hash == 14 ? -x1 : -z1); hash = this.p_perm[AB + 1] & 15; var g2 = ((hash & 1) == 0 ? hash < 8 ? x : y1 : hash < 8 ? -x : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x : z1 : hash < 4 ? -y1 : hash == 14 ? -x : -z1); hash = this.p_perm[BA + 1] & 15; var g3 = ((hash & 1) == 0 ? hash < 8 ? x1 : y : hash < 8 ? -x1 : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x1 : z1 : hash < 4 ? -y : hash == 14 ? -x1 : -z1); hash = this.p_perm[AA + 1] & 15; var g4 = ((hash & 1) == 0 ? hash < 8 ? x : y : hash < 8 ? -x : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x : z1 : hash < 4 ? -y : hash == 14 ? -x : -z1); hash = this.p_perm[BB] & 15; var g5 = ((hash & 1) == 0 ? hash < 8 ? x1 : y1 : hash < 8 ? -x1 : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x1 : z : hash < 4 ? -y1 : hash == 14 ? -x1 : -z); hash = this.p_perm[AB] & 15; var g6 = ((hash & 1) == 0 ? hash < 8 ? x : y1 : hash < 8 ? -x : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x : z : hash < 4 ? -y1 : hash == 14 ? -x : -z); hash = this.p_perm[BA] & 15; var g7 = ((hash & 1) == 0 ? hash < 8 ? x1 : y : hash < 8 ? -x1 : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x1 : z : hash < 4 ? -y : hash == 14 ? -x1 : -z); hash = this.p_perm[AA] & 15; var g8 = ((hash & 1) == 0 ? hash < 8 ? x : y : hash < 8 ? -x : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x : z : hash < 4 ? -y : hash == 14 ? -x : -z); g2 += u * (g1 - g2); g4 += u * (g3 - g4); g6 += u * (g5 - g6); g8 += u * (g7 - g8); g4 += v * (g2 - g4); g8 += v * (g6 - g8); return g8 + w * (g4 - g8); } ,setSeed: function(seed) { seed = seed * 16807.0 % 2147483647 | 0; this.x_offset = seed; seed = seed * 16807.0 % 2147483647 | 0; this.y_offset = seed; seed = seed * 16807.0 % 2147483647 | 0; this.z_offset = seed; } ,__class__: openfl_display__$internal_PerlinNoise }); var openfl_display__$internal_SamplerState = function(wrap,filter,mipfilter,lodBias,ignoreSampler,centroid,textureAlpha) { if(textureAlpha == null) { textureAlpha = false; } if(centroid == null) { centroid = false; } if(ignoreSampler == null) { ignoreSampler = false; } if(lodBias == null) { lodBias = 0.0; } if(mipfilter == null) { mipfilter = 2; } if(filter == null) { filter = 5; } if(wrap == null) { wrap = 0; } this.wrap = wrap; this.filter = filter; this.mipfilter = mipfilter; this.lodBias = lodBias; this.ignoreSampler = ignoreSampler; this.centroid = centroid; this.textureAlpha = textureAlpha; }; $hxClasses["openfl.display._internal.SamplerState"] = openfl_display__$internal_SamplerState; openfl_display__$internal_SamplerState.__name__ = "openfl.display._internal.SamplerState"; openfl_display__$internal_SamplerState.prototype = { centroid: null ,filter: null ,ignoreSampler: null ,lodBias: null ,mipfilter: null ,mipmapGenerated: null ,textureAlpha: null ,wrap: null ,clone: function() { var copy = new openfl_display__$internal_SamplerState(this.wrap,this.filter,this.mipfilter,this.lodBias,this.ignoreSampler,this.centroid,this.textureAlpha); copy.mipmapGenerated = this.mipmapGenerated; return copy; } ,copyFrom: function(other) { if(other == null || other.ignoreSampler) { return; } this.wrap = other.wrap; this.filter = other.filter; this.mipfilter = other.mipfilter; this.lodBias = other.lodBias; this.centroid = other.centroid; this.textureAlpha = other.textureAlpha; } ,equals: function(other) { if(other == null) { return false; } if(this.wrap == other.wrap && this.filter == other.filter && this.mipfilter == other.mipfilter && this.lodBias == other.lodBias) { return this.textureAlpha == other.textureAlpha; } else { return false; } } ,__class__: openfl_display__$internal_SamplerState }; var openfl_display__$internal_ShaderBuffer = function() { this.inputRefs = []; this.inputFilter = []; this.inputMipFilter = []; this.inputs = []; this.inputWrap = []; this.overrideIntNames = []; this.overrideIntValues = []; this.overrideFloatNames = []; this.overrideFloatValues = []; this.overrideBoolNames = []; this.overrideBoolValues = []; this.paramLengths = []; this.paramPositions = []; this.paramRefs_Bool = []; this.paramRefs_Float = []; this.paramRefs_Int = []; this.paramTypes = []; }; $hxClasses["openfl.display._internal.ShaderBuffer"] = openfl_display__$internal_ShaderBuffer; openfl_display__$internal_ShaderBuffer.__name__ = "openfl.display._internal.ShaderBuffer"; openfl_display__$internal_ShaderBuffer.prototype = { inputCount: null ,inputRefs: null ,inputFilter: null ,inputMipFilter: null ,inputs: null ,inputWrap: null ,overrideBoolCount: null ,overrideBoolNames: null ,overrideBoolValues: null ,overrideFloatCount: null ,overrideFloatNames: null ,overrideFloatValues: null ,overrideIntCount: null ,overrideIntNames: null ,overrideIntValues: null ,paramBoolCount: null ,paramCount: null ,paramData: null ,paramDataBuffer: null ,paramDataLength: null ,paramFloatCount: null ,paramIntCount: null ,paramLengths: null ,paramPositions: null ,paramRefs_Bool: null ,paramRefs_Float: null ,paramRefs_Int: null ,paramTypes: null ,shader: null ,addBoolOverride: function(name,values) { this.overrideBoolNames[this.overrideBoolCount] = name; this.overrideBoolValues[this.overrideBoolCount] = values; this.overrideBoolCount++; } ,addFloatOverride: function(name,values) { this.overrideFloatNames[this.overrideFloatCount] = name; this.overrideFloatValues[this.overrideFloatCount] = values; this.overrideFloatCount++; } ,addIntOverride: function(name,values) { this.overrideIntNames[this.overrideIntCount] = name; this.overrideIntValues[this.overrideIntCount] = values; this.overrideIntCount++; } ,clearOverride: function() { this.overrideIntCount = 0; this.overrideFloatCount = 0; this.overrideBoolCount = 0; } ,update: function(shader) { this.inputCount = 0; this.overrideIntCount = 0; this.overrideFloatCount = 0; this.overrideBoolCount = 0; this.paramBoolCount = 0; this.paramCount = 0; this.paramDataLength = 0; this.paramFloatCount = 0; this.paramIntCount = 0; this.shader = null; if(shader == null) { return; } shader.__init(); this.inputCount = shader.__inputBitmapData.length; var input; var _g = 0; var _g1 = this.inputCount; while(_g < _g1) { var i = _g++; input = shader.__inputBitmapData[i]; this.inputs[i] = input.input; this.inputFilter[i] = input.filter; this.inputMipFilter[i] = input.mipFilter; this.inputRefs[i] = input; this.inputWrap[i] = input.wrap; } var boolCount = shader.__paramBool.length; var floatCount = shader.__paramFloat.length; var intCount = shader.__paramInt.length; this.paramCount = boolCount + floatCount + intCount; this.paramBoolCount = boolCount; this.paramFloatCount = floatCount; this.paramIntCount = intCount; var length = 0; var p = 0; var param; var _g = 0; var _g1 = boolCount; while(_g < _g1) { var i = _g++; param = shader.__paramBool[i]; this.paramPositions[p] = this.paramDataLength; length = param.value != null ? param.value.length : 0; this.paramLengths[p] = length; this.paramDataLength += length; this.paramTypes[p] = 0; this.paramRefs_Bool[i] = param; ++p; } var param; var _g = 0; var _g1 = floatCount; while(_g < _g1) { var i = _g++; param = shader.__paramFloat[i]; this.paramPositions[p] = this.paramDataLength; length = param.value != null ? param.value.length : 0; this.paramLengths[p] = length; this.paramDataLength += length; this.paramTypes[p] = 1; this.paramRefs_Float[i] = param; ++p; } var param; var _g = 0; var _g1 = intCount; while(_g < _g1) { var i = _g++; param = shader.__paramInt[i]; this.paramPositions[p] = this.paramDataLength; length = param.value != null ? param.value.length : 0; this.paramLengths[p] = length; this.paramDataLength += length; this.paramTypes[p] = 2; this.paramRefs_Int[i] = param; ++p; } if(this.paramDataLength > 0) { if(this.paramData == null) { var elements = this.paramDataLength; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } this.paramData = this1; } else if(this.paramDataLength > this.paramData.length) { var elements = this.paramDataLength; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } var data = this1; data.set(this.paramData); this.paramData = data; } } var boolIndex = 0; var floatIndex = 0; var intIndex = 0; var paramPosition = 0; var boolParam; var floatParam; var intParam; var length; var _g = 0; var _g1 = this.paramCount; while(_g < _g1) { var i = _g++; length = this.paramLengths[i]; if(i < boolCount) { boolParam = this.paramRefs_Bool[boolIndex]; ++boolIndex; var _g2 = 0; var _g3 = length; while(_g2 < _g3) { var j = _g2++; this.paramData[paramPosition] = boolParam.value[j] ? 1 : 0; ++paramPosition; } } else if(i < boolCount + floatCount) { floatParam = this.paramRefs_Float[floatIndex]; ++floatIndex; var _g4 = 0; var _g5 = length; while(_g4 < _g5) { var j1 = _g4++; this.paramData[paramPosition] = floatParam.value[j1]; ++paramPosition; } } else { intParam = this.paramRefs_Int[intIndex]; ++intIndex; var _g6 = 0; var _g7 = length; while(_g6 < _g7) { var j2 = _g6++; this.paramData[paramPosition] = intParam.value[j2]; ++paramPosition; } } } this.shader = shader; } ,__class__: openfl_display__$internal_ShaderBuffer }; var openfl_display3D_Context3D = function(stage,contextState,stage3D) { this.profile = 3; this.driverInfo = "OpenGL (Direct blitting)"; this.backBufferWidth = 0; this.backBufferHeight = 0; openfl_events_EventDispatcher.call(this); this.__stage = stage; this.__contextState = contextState; this.__stage3D = stage3D; this.__context = stage.window.context; this.gl = this.__context.webgl; if(this.__contextState == null) { this.__contextState = new openfl_display3D__$internal_Context3DState(); } this.__state = new openfl_display3D__$internal_Context3DState(); var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__vertexConstants = new Float32Array(512); var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__fragmentConstants = new Float32Array(512); var elements = null; var array = [1.0,1.0,1.0,1.0]; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } this.__positionScale = this1; this.__programs = new haxe_ds_StringMap(); if(openfl_display3D_Context3D.__glMaxViewportDims == -1) { openfl_display3D_Context3D.__glMaxViewportDims = this.gl.getParameter(this.gl.MAX_VIEWPORT_DIMS); } this.maxBackBufferWidth = openfl_display3D_Context3D.__glMaxViewportDims; this.maxBackBufferHeight = openfl_display3D_Context3D.__glMaxViewportDims; if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy == -1) { var extension = this.gl.getExtension("EXT_texture_filter_anisotropic"); if(extension == null || !Object.prototype.hasOwnProperty.call(extension,"MAX_TEXTURE_MAX_ANISOTROPY_EXT")) { extension = this.gl.getExtension("MOZ_EXT_texture_filter_anisotropic"); } if(extension == null || !Object.prototype.hasOwnProperty.call(extension,"MAX_TEXTURE_MAX_ANISOTROPY_EXT")) { extension = this.gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic"); } if(extension != null) { openfl_display3D_Context3D.__glTextureMaxAnisotropy = extension.TEXTURE_MAX_ANISOTROPY_EXT; openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy = this.gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT); } else { openfl_display3D_Context3D.__glTextureMaxAnisotropy = 0; openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy = 0; } } if(openfl_display3D_Context3D.__glDepthStencil == -1) { openfl_display3D_Context3D.__glDepthStencil = this.gl.DEPTH_STENCIL; } if(openfl_display3D_Context3D.__glMemoryTotalAvailable == -1) { var extension = this.gl.getExtension("NVX_gpu_memory_info"); if(extension != null) { openfl_display3D_Context3D.__glMemoryTotalAvailable = extension.GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX; openfl_display3D_Context3D.__glMemoryCurrentAvailable = extension.GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX; } } if(openfl_display3D_Context3D.__driverInfo == null) { var vendor = this.gl.getParameter(this.gl.VENDOR); var version = this.gl.getParameter(this.gl.VERSION); var renderer = this.gl.getParameter(this.gl.RENDERER); var glslVersion = this.gl.getParameter(this.gl.SHADING_LANGUAGE_VERSION); openfl_display3D_Context3D.__driverInfo = "OpenGL Vendor=" + vendor + " Version=" + version + " Renderer=" + renderer + " GLSL=" + glslVersion; } this.driverInfo = openfl_display3D_Context3D.__driverInfo; this.__quadIndexBufferElements = 16383; this.__quadIndexBufferCount = this.__quadIndexBufferElements * 6; var elements = this.__quadIndexBufferCount; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint16Array(elements); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint16Array(buffer,0); } else { this1 = new Uint16Array(buffer,0,len); } } else { this1 = null; } var data = this1; var index = 0; var vertex = 0; var _g = 0; var _g1 = this.__quadIndexBufferElements; while(_g < _g1) { var i = _g++; data[index] = vertex; data[index + 1] = vertex + 1; data[index + 2] = vertex + 2; data[index + 3] = vertex + 2; data[index + 4] = vertex + 1; data[index + 5] = vertex + 3; index = index + 6; vertex = vertex + 4; } this.__quadIndexBuffer = this.createIndexBuffer(this.__quadIndexBufferCount); this.__quadIndexBuffer.uploadFromTypedArray(data); }; $hxClasses["openfl.display3D.Context3D"] = openfl_display3D_Context3D; openfl_display3D_Context3D.__name__ = "openfl.display3D.Context3D"; openfl_display3D_Context3D.__driverInfo = null; openfl_display3D_Context3D.__super__ = openfl_events_EventDispatcher; openfl_display3D_Context3D.prototype = $extend(openfl_events_EventDispatcher.prototype,{ backBufferHeight: null ,backBufferWidth: null ,driverInfo: null ,maxBackBufferHeight: null ,maxBackBufferWidth: null ,profile: null ,gl: null ,__backBufferAntiAlias: null ,__backBufferTexture: null ,__backBufferWantsBestResolution: null ,__backBufferWantsBestResolutionOnBrowserZoom: null ,__cleared: null ,__context: null ,__contextState: null ,__renderStage3DProgram: null ,__enableErrorChecking: null ,__fragmentConstants: null ,__frontBufferTexture: null ,__positionScale: null ,__present: null ,__programs: null ,__quadIndexBuffer: null ,__quadIndexBufferCount: null ,__quadIndexBufferElements: null ,__stage: null ,__stage3D: null ,__state: null ,__vertexConstants: null ,clear: function(red,green,blue,alpha,depth,stencil,mask) { if(mask == null) { mask = 7; } 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; } this.__flushGLFramebuffer(); this.__flushGLViewport(); var clearMask = 0; if((mask & 1) != 0) { if(this.__state.renderToTexture == null) { if(this.__stage.context3D == this && !this.__stage.__renderer.__cleared) { this.__stage.__renderer.__cleared = true; } this.__cleared = true; } clearMask |= this.gl.COLOR_BUFFER_BIT; if(this.__contextState.colorMaskRed != true || this.__contextState.colorMaskGreen != true || this.__contextState.colorMaskBlue != true || this.__contextState.colorMaskAlpha != true) { this.gl.colorMask(true,true,true,true); this.__contextState.colorMaskRed = true; this.__contextState.colorMaskGreen = true; this.__contextState.colorMaskBlue = true; this.__contextState.colorMaskAlpha = true; } this.gl.clearColor(red,green,blue,alpha); } if((mask & 2) != 0) { clearMask |= this.gl.DEPTH_BUFFER_BIT; if(this.__contextState.depthMask != true) { this.gl.depthMask(true); this.__contextState.depthMask = true; } this.gl.clearDepth(depth); } if((mask & 4) != 0) { clearMask |= this.gl.STENCIL_BUFFER_BIT; if(this.__contextState.stencilWriteMask != 255) { this.gl.stencilMask(255); this.__contextState.stencilWriteMask = 255; } this.gl.clearStencil(stencil); this.__contextState.stencilWriteMask = 255; } if(clearMask == 0) { return; } this.__setGLScissorTest(false); this.gl.clear(clearMask); } ,configureBackBuffer: function(width,height,antiAlias,enableDepthAndStencil,wantsBestResolution,wantsBestResolutionOnBrowserZoom) { if(wantsBestResolutionOnBrowserZoom == null) { wantsBestResolutionOnBrowserZoom = false; } if(wantsBestResolution == null) { wantsBestResolution = false; } if(enableDepthAndStencil == null) { enableDepthAndStencil = true; } if(wantsBestResolution) { width = width * this.__stage.window.__scale | 0; height = height * this.__stage.window.__scale | 0; } if(this.__stage3D == null) { this.backBufferWidth = width; this.backBufferHeight = height; this.__backBufferAntiAlias = antiAlias; this.__state.backBufferEnableDepthAndStencil = enableDepthAndStencil; this.__backBufferWantsBestResolution = wantsBestResolution; this.__backBufferWantsBestResolutionOnBrowserZoom = wantsBestResolutionOnBrowserZoom; } else { if(this.__backBufferTexture == null || this.backBufferWidth != width || this.backBufferHeight != height) { if(this.__backBufferTexture != null) { this.__backBufferTexture.dispose(); } if(this.__frontBufferTexture != null) { this.__frontBufferTexture.dispose(); } this.__backBufferTexture = this.createRectangleTexture(width,height,1,true); this.__frontBufferTexture = this.createRectangleTexture(width,height,1,true); if(this.__stage3D.__vertexBuffer == null) { this.__stage3D.__vertexBuffer = this.createVertexBuffer(4,5); } var scaledWidth = wantsBestResolution ? width : width * this.__stage.window.__scale | 0; var scaledHeight = wantsBestResolution ? height : height * this.__stage.window.__scale | 0; var vertexData = openfl_Vector.toFloatVector(null,null,null,[scaledWidth,scaledHeight,0,1,1,0,scaledHeight,0,0,1,scaledWidth,0,0,1,0,0,0,0,0,0.0]); this.__stage3D.__vertexBuffer.uploadFromVector(vertexData,0,20); if(this.__stage3D.__indexBuffer == null) { this.__stage3D.__indexBuffer = this.createIndexBuffer(6); var indexData = openfl_Vector.toIntVector(null,null,null,[0,1,2,2,1,3]); this.__stage3D.__indexBuffer.uploadFromVector(indexData,0,6); } } this.backBufferWidth = width; this.backBufferHeight = height; this.__backBufferAntiAlias = antiAlias; this.__state.backBufferEnableDepthAndStencil = enableDepthAndStencil; this.__backBufferWantsBestResolution = wantsBestResolution; this.__backBufferWantsBestResolutionOnBrowserZoom = wantsBestResolutionOnBrowserZoom; this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer(enableDepthAndStencil,antiAlias,0); this.__frontBufferTexture.__getGLFramebuffer(enableDepthAndStencil,antiAlias,0); } } ,createCubeTexture: function(size,format,optimizeForRenderToTexture,streamingLevels) { if(streamingLevels == null) { streamingLevels = 0; } return new openfl_display3D_textures_CubeTexture(this,size,format,optimizeForRenderToTexture,streamingLevels); } ,createIndexBuffer: function(numIndices,bufferUsage) { if(bufferUsage == null) { bufferUsage = 1; } return new openfl_display3D_IndexBuffer3D(this,numIndices,bufferUsage); } ,createProgram: function(format) { if(format == null) { format = 0; } return new openfl_display3D_Program3D(this,format); } ,createRectangleTexture: function(width,height,format,optimizeForRenderToTexture) { return new openfl_display3D_textures_RectangleTexture(this,width,height,openfl_display3D_Context3DTextureFormat.toString(format),optimizeForRenderToTexture); } ,createTexture: function(width,height,format,optimizeForRenderToTexture,streamingLevels) { if(streamingLevels == null) { streamingLevels = 0; } return new openfl_display3D_textures_Texture(this,width,height,format,optimizeForRenderToTexture,streamingLevels); } ,createVertexBuffer: function(numVertices,data32PerVertex,bufferUsage) { if(bufferUsage == null) { bufferUsage = 1; } return new openfl_display3D_VertexBuffer3D(this,numVertices,data32PerVertex,openfl_display3D_Context3DBufferUsage.toString(bufferUsage)); } ,createVideoTexture: function() { return new openfl_display3D_textures_VideoTexture(this); } ,dispose: function(recreate) { if(recreate == null) { recreate = true; } this.gl = null; this.__dispose(); } ,drawToBitmapData: function(destination,srcRect,destPoint) { if(destination == null) { return; } var sourceRect = srcRect != null ? srcRect.__toLimeRectangle() : new lime_math_Rectangle(0,0,this.backBufferWidth,this.backBufferHeight); var destVector = destPoint != null ? destPoint.__toLimeVector2() : new lime_math_Vector2(); if(this.__stage.context3D == this) { if(this.__stage.window != null) { if(this.__stage3D != null) { var xa = -this.__stage3D.get_x() | 0; var ya = -this.__stage3D.get_y() | 0; destVector.x = xa; destVector.y = ya; } var image = this.__stage.window.readPixels(); destination.image.copyPixels(image,sourceRect,destVector); } } else if(this.__backBufferTexture != null) { var cacheRenderToTexture = this.__state.renderToTexture; this.setRenderToBackBuffer(); this.__flushGLFramebuffer(); this.__flushGLViewport(); var elements = this.backBufferWidth * this.backBufferHeight * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; var this1 = this.gl; var width = this.backBufferWidth; var height = this.backBufferHeight; var format = this.__backBufferTexture.__format; var type = this.gl.UNSIGNED_BYTE; var pixels = data; var dstOffset = null; if(dstOffset != null) { this1.readPixels(0,0,width,height,format,type,pixels,dstOffset); } else { this1.readPixels(0,0,width,height,format,type,pixels); } var image = new lime_graphics_Image(new lime_graphics_ImageBuffer(data,this.backBufferWidth,this.backBufferHeight,32,2)); destination.image.copyPixels(image,sourceRect,destVector); if(cacheRenderToTexture != null) { this.setRenderToTexture(cacheRenderToTexture,this.__state.renderToTextureDepthStencil,this.__state.renderToTextureAntiAlias,this.__state.renderToTextureSurfaceSelector); } } } ,drawTriangles: function(indexBuffer,firstIndex,numTriangles) { if(numTriangles == null) { numTriangles = -1; } if(firstIndex == null) { firstIndex = 0; } if(this.__state.renderToTexture == null) { if(this.__stage.context3D == this && !this.__stage.__renderer.__cleared) { this.__stage.__renderer.__clear(); } else if(!this.__cleared) { this.clear(0,0,0,0,1,0,1); } } this.__flushGL(); if(this.__state.program != null) { this.__state.program.__flush(); } var count = numTriangles == -1 ? indexBuffer.__numIndices : numTriangles * 3; this.__bindGLElementArrayBuffer(indexBuffer.__id); this.gl.drawElements(this.gl.TRIANGLES,count,this.gl.UNSIGNED_SHORT,firstIndex * 2); } ,present: function() { this.setRenderToBackBuffer(); if(this.__stage3D != null && this.__backBufferTexture != null) { if(!this.__cleared) { this.clear(0,0,0,0,1,0,1); } var cacheBuffer = this.__backBufferTexture; this.__backBufferTexture = this.__frontBufferTexture; this.__frontBufferTexture = cacheBuffer; this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer(this.__state.backBufferEnableDepthAndStencil,this.__backBufferAntiAlias,0); this.__cleared = false; } this.__present = true; } ,setBlendFactors: function(sourceFactor,destinationFactor) { this.setBlendFactorsSeparate(sourceFactor,destinationFactor,sourceFactor,destinationFactor); } ,setBlendFactorsSeparate: function(sourceRGBFactor,destinationRGBFactor,sourceAlphaFactor,destinationAlphaFactor) { this.__state.blendSourceRGBFactor = sourceRGBFactor; this.__state.blendDestinationRGBFactor = destinationRGBFactor; this.__state.blendSourceAlphaFactor = sourceAlphaFactor; this.__state.blendDestinationAlphaFactor = destinationAlphaFactor; this.__setGLBlendEquation(this.gl.FUNC_ADD); } ,setColorMask: function(red,green,blue,alpha) { this.__state.colorMaskRed = red; this.__state.colorMaskGreen = green; this.__state.colorMaskBlue = blue; this.__state.colorMaskAlpha = alpha; } ,setCulling: function(triangleFaceToCull) { this.__state.culling = triangleFaceToCull; } ,setDepthTest: function(depthMask,passCompareMode) { this.__state.depthMask = depthMask; this.__state.depthCompareMode = passCompareMode; } ,setProgram: function(program) { this.__state.program = program; this.__state.shader = null; if(program != null) { var _g = 0; var _g1 = program.__samplerStates.length; while(_g < _g1) { var i = _g++; if(this.__state.samplerStates[i] == null) { this.__state.samplerStates[i] = program.__samplerStates[i].clone(); } else { this.__state.samplerStates[i].copyFrom(program.__samplerStates[i]); } } } } ,setProgramConstantsFromByteArray: function(programType,firstRegister,numRegisters,data,byteArrayOffset) { if(numRegisters == 0 || this.__state.program == null) { return; } if(!(this.__state.program != null && this.__state.program.__format == 1)) { if(numRegisters == -1) { numRegisters = (openfl_utils_ByteArray.get_length(data) >>> 2) - byteArrayOffset; } var isVertex = programType == 1; var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants; var bytes = openfl_utils_ByteArray.toBytes(data); var byteOffset = 0; var len = null; if(byteOffset == null) { byteOffset = 0; } var floatData = byteOffset == null ? new Float32Array(bytes.b.bufferValue) : len == null ? new Float32Array(bytes.b.bufferValue,byteOffset) : new Float32Array(bytes.b.bufferValue,byteOffset,len); var outOffset = firstRegister * 4; var inOffset = UInt.toFloat(byteArrayOffset) / UInt.toFloat(4) | 0; var _g = 0; var _g1 = numRegisters * 4; while(_g < _g1) { var i = _g++; dest[outOffset + i] = floatData[inOffset + i]; } if(this.__state.program != null) { this.__state.program.__markDirty(isVertex,firstRegister,numRegisters); } } } ,setProgramConstantsFromMatrix: function(programType,firstRegister,matrix,transposedMatrix) { if(transposedMatrix == null) { transposedMatrix = false; } if(this.__state.program != null && this.__state.program.__format == 1) { this.__flushGLProgram(); var array = null; var vector = null; var view = null; var buffer = null; var len = null; var data = new Float32Array(16); data[0] = matrix.rawData.get(0); data[1] = matrix.rawData.get(1); data[2] = matrix.rawData.get(2); data[3] = matrix.rawData.get(3); data[4] = matrix.rawData.get(4); data[5] = matrix.rawData.get(5); data[6] = matrix.rawData.get(6); data[7] = matrix.rawData.get(7); data[8] = matrix.rawData.get(8); data[9] = matrix.rawData.get(9); data[10] = matrix.rawData.get(10); data[11] = matrix.rawData.get(11); data[12] = matrix.rawData.get(12); data[13] = matrix.rawData.get(13); data[14] = matrix.rawData.get(14); data[15] = matrix.rawData.get(15); lime_graphics_WebGLRenderContext.uniformMatrix4fv(this.gl,firstRegister,transposedMatrix,data); } else { var isVertex = programType == 1; var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants; var source = matrix.rawData; var i = firstRegister * 4; if(transposedMatrix) { dest[i++] = source.get(0); dest[i++] = source.get(4); dest[i++] = source.get(8); dest[i++] = source.get(12); dest[i++] = source.get(1); dest[i++] = source.get(5); dest[i++] = source.get(9); dest[i++] = source.get(13); dest[i++] = source.get(2); dest[i++] = source.get(6); dest[i++] = source.get(10); dest[i++] = source.get(14); dest[i++] = source.get(3); dest[i++] = source.get(7); dest[i++] = source.get(11); dest[i++] = source.get(15); } else { dest[i++] = source.get(0); dest[i++] = source.get(1); dest[i++] = source.get(2); dest[i++] = source.get(3); dest[i++] = source.get(4); dest[i++] = source.get(5); dest[i++] = source.get(6); dest[i++] = source.get(7); dest[i++] = source.get(8); dest[i++] = source.get(9); dest[i++] = source.get(10); dest[i++] = source.get(11); dest[i++] = source.get(12); dest[i++] = source.get(13); dest[i++] = source.get(14); dest[i++] = source.get(15); } if(this.__state.program != null) { this.__state.program.__markDirty(isVertex,firstRegister,4); } } } ,setProgramConstantsFromVector: function(programType,firstRegister,data,numRegisters) { if(numRegisters == null) { numRegisters = -1; } if(numRegisters == 0) { return; } if(!(this.__state.program != null && this.__state.program.__format == 1)) { if(numRegisters == -1) { numRegisters = data.get_length() >> 2; } var isVertex = programType == 1; var dest = isVertex ? this.__vertexConstants : this.__fragmentConstants; var source = data; var sourceIndex = 0; var destIndex = firstRegister * 4; var _g = 0; var _g1 = numRegisters; while(_g < _g1) { var i = _g++; dest[destIndex++] = source.get(sourceIndex++); dest[destIndex++] = source.get(sourceIndex++); dest[destIndex++] = source.get(sourceIndex++); dest[destIndex++] = source.get(sourceIndex++); } if(this.__state.program != null) { this.__state.program.__markDirty(isVertex,firstRegister,numRegisters); } } } ,setRenderToBackBuffer: function() { this.__state.renderToTexture = null; } ,setRenderToTexture: function(texture,enableDepthAndStencil,antiAlias,surfaceSelector) { if(surfaceSelector == null) { surfaceSelector = 0; } if(antiAlias == null) { antiAlias = 0; } if(enableDepthAndStencil == null) { enableDepthAndStencil = false; } this.__state.renderToTexture = texture; this.__state.renderToTextureDepthStencil = enableDepthAndStencil; this.__state.renderToTextureAntiAlias = antiAlias; this.__state.renderToTextureSurfaceSelector = surfaceSelector; } ,setSamplerStateAt: function(sampler,wrap,filter,mipfilter) { if(this.__state.samplerStates[sampler] == null) { this.__state.samplerStates[sampler] = new openfl_display__$internal_SamplerState(); } var state = this.__state.samplerStates[sampler]; state.wrap = wrap; state.filter = filter; state.mipfilter = mipfilter; } ,setScissorRectangle: function(rectangle) { if(rectangle != null) { this.__state.scissorEnabled = true; this.__state.scissorRectangle.copyFrom(rectangle); } else { this.__state.scissorEnabled = false; } } ,setStencilActions: function(triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail) { if(actionOnDepthPassStencilFail == null) { actionOnDepthPassStencilFail = 5; } if(actionOnDepthFail == null) { actionOnDepthFail = 5; } if(actionOnBothPass == null) { actionOnBothPass = 5; } if(compareMode == null) { compareMode = 0; } if(triangleFace == null) { triangleFace = 2; } this.__state.stencilTriangleFace = triangleFace; this.__state.stencilCompareMode = compareMode; this.__state.stencilPass = actionOnBothPass; this.__state.stencilDepthFail = actionOnDepthFail; this.__state.stencilFail = actionOnDepthPassStencilFail; } ,setStencilReferenceValue: function(referenceValue,readMask,writeMask) { if(writeMask == null) { writeMask = 255; } if(readMask == null) { readMask = 255; } this.__state.stencilReferenceValue = referenceValue; this.__state.stencilReadMask = readMask; this.__state.stencilWriteMask = writeMask; } ,setTextureAt: function(sampler,texture) { this.__state.textures[sampler] = texture; } ,setVertexBufferAt: function(index,buffer,bufferOffset,format) { if(format == null) { format = 4; } if(bufferOffset == null) { bufferOffset = 0; } if(index < 0) { return; } if(buffer == null) { this.gl.disableVertexAttribArray(index); this.__bindGLArrayBuffer(null); return; } this.__bindGLArrayBuffer(buffer.__id); this.gl.enableVertexAttribArray(index); var byteOffset = bufferOffset * 4; switch(format) { case 0: this.gl.vertexAttribPointer(index,4,this.gl.UNSIGNED_BYTE,true,buffer.__stride,byteOffset); break; case 1: this.gl.vertexAttribPointer(index,1,this.gl.FLOAT,false,buffer.__stride,byteOffset); break; case 2: this.gl.vertexAttribPointer(index,2,this.gl.FLOAT,false,buffer.__stride,byteOffset); break; case 3: this.gl.vertexAttribPointer(index,3,this.gl.FLOAT,false,buffer.__stride,byteOffset); break; case 4: this.gl.vertexAttribPointer(index,4,this.gl.FLOAT,false,buffer.__stride,byteOffset); break; default: throw new openfl_errors_IllegalOperationError(); } } ,__bindGLArrayBuffer: function(buffer) { if(this.__contextState.__currentGLArrayBuffer != buffer) { this.gl.bindBuffer(this.gl.ARRAY_BUFFER,buffer); this.__contextState.__currentGLArrayBuffer = buffer; } } ,__bindGLElementArrayBuffer: function(buffer) { if(this.__contextState.__currentGLElementArrayBuffer != buffer) { this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,buffer); this.__contextState.__currentGLElementArrayBuffer = buffer; } } ,__bindGLFramebuffer: function(framebuffer) { if(this.__contextState.__currentGLFramebuffer != framebuffer) { this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,framebuffer); this.__contextState.__currentGLFramebuffer = framebuffer; } } ,__bindGLTexture2D: function(texture) { this.gl.bindTexture(this.gl.TEXTURE_2D,texture); this.__contextState.__currentGLTexture2D = texture; } ,__bindGLTextureCubeMap: function(texture) { this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP,texture); this.__contextState.__currentGLTextureCubeMap = texture; } ,__dispose: function() { this.driverInfo += " (Disposed)"; if(this.__stage3D != null) { this.__stage3D.__indexBuffer = null; this.__stage3D.__vertexBuffer = null; this.__stage3D.context3D = null; this.__stage3D = null; } this.__backBufferTexture = null; this.__context = null; this.__renderStage3DProgram = null; this.__fragmentConstants = null; this.__frontBufferTexture = null; this.__positionScale = null; this.__present = false; this.__quadIndexBuffer = null; this.__stage = null; this.__vertexConstants = null; } ,__drawTriangles: function(firstIndex,count) { if(firstIndex == null) { firstIndex = 0; } if(this.__state.renderToTexture == null) { if(this.__stage.context3D == this && !this.__stage.__renderer.__cleared) { this.__stage.__renderer.__clear(); } else if(!this.__cleared) { this.clear(0,0,0,0,1,0,1); } } this.__flushGL(); if(this.__state.program != null) { this.__state.program.__flush(); } this.gl.drawArrays(this.gl.TRIANGLES,firstIndex,count); } ,__flushGL: function() { this.__flushGLProgram(); this.__flushGLFramebuffer(); this.__flushGLViewport(); this.__flushGLBlend(); if(this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha) { this.gl.colorMask(this.__state.colorMaskRed,this.__state.colorMaskGreen,this.__state.colorMaskBlue,this.__state.colorMaskAlpha); this.__contextState.colorMaskRed = this.__state.colorMaskRed; this.__contextState.colorMaskGreen = this.__state.colorMaskGreen; this.__contextState.colorMaskBlue = this.__state.colorMaskBlue; this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha; } this.__flushGLCulling(); this.__flushGLDepth(); this.__flushGLScissor(); this.__flushGLStencil(); this.__flushGLTextures(); } ,__flushGLBlend: function() { if(this.__contextState.blendDestinationRGBFactor != this.__state.blendDestinationRGBFactor || this.__contextState.blendSourceRGBFactor != this.__state.blendSourceRGBFactor || this.__contextState.blendDestinationAlphaFactor != this.__state.blendDestinationAlphaFactor || this.__contextState.blendSourceAlphaFactor != this.__state.blendSourceAlphaFactor) { this.__setGLBlend(true); if(this.__state.blendDestinationRGBFactor == this.__state.blendDestinationAlphaFactor && this.__state.blendSourceRGBFactor == this.__state.blendSourceAlphaFactor) { this.gl.blendFunc(this.__getGLBlend(this.__state.blendSourceRGBFactor),this.__getGLBlend(this.__state.blendDestinationRGBFactor)); } else { this.gl.blendFuncSeparate(this.__getGLBlend(this.__state.blendSourceRGBFactor),this.__getGLBlend(this.__state.blendDestinationRGBFactor),this.__getGLBlend(this.__state.blendSourceAlphaFactor),this.__getGLBlend(this.__state.blendDestinationAlphaFactor)); } this.__contextState.blendDestinationRGBFactor = this.__state.blendDestinationRGBFactor; this.__contextState.blendSourceRGBFactor = this.__state.blendSourceRGBFactor; this.__contextState.blendDestinationAlphaFactor = this.__state.blendDestinationAlphaFactor; this.__contextState.blendSourceAlphaFactor = this.__state.blendSourceAlphaFactor; } } ,__flushGLColor: function() { if(this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha) { this.gl.colorMask(this.__state.colorMaskRed,this.__state.colorMaskGreen,this.__state.colorMaskBlue,this.__state.colorMaskAlpha); this.__contextState.colorMaskRed = this.__state.colorMaskRed; this.__contextState.colorMaskGreen = this.__state.colorMaskGreen; this.__contextState.colorMaskBlue = this.__state.colorMaskBlue; this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha; } } ,__flushGLCulling: function() { if(this.__contextState.culling != this.__state.culling) { if(this.__state.culling == 3) { this.__setGLCullFace(false); } else { this.__setGLCullFace(true); switch(this.__state.culling) { case 0: this.gl.cullFace(this.gl.BACK); break; case 1: this.gl.cullFace(this.gl.FRONT); break; case 2: this.gl.cullFace(this.gl.FRONT_AND_BACK); break; case 3: break; default: throw new openfl_errors_IllegalOperationError(); } } this.__contextState.culling = this.__state.culling; } } ,__flushGLDepth: function() { var depthMask = this.__state.depthMask && (this.__state.renderToTexture != null ? this.__state.renderToTextureDepthStencil : this.__state.backBufferEnableDepthAndStencil); if(this.__contextState.depthMask != depthMask) { this.gl.depthMask(depthMask); this.__contextState.depthMask = depthMask; } if(this.__contextState.depthCompareMode != this.__state.depthCompareMode) { switch(this.__state.depthCompareMode) { case 0: this.gl.depthFunc(this.gl.ALWAYS); break; case 1: this.gl.depthFunc(this.gl.EQUAL); break; case 2: this.gl.depthFunc(this.gl.GREATER); break; case 3: this.gl.depthFunc(this.gl.GEQUAL); break; case 4: this.gl.depthFunc(this.gl.LESS); break; case 5: this.gl.depthFunc(this.gl.LEQUAL); break; case 6: this.gl.depthFunc(this.gl.NEVER); break; case 7: this.gl.depthFunc(this.gl.NOTEQUAL); break; default: throw new openfl_errors_IllegalOperationError(); } this.__contextState.depthCompareMode = this.__state.depthCompareMode; } } ,__flushGLFramebuffer: function() { if(this.__state.renderToTexture != null) { if(this.__contextState.renderToTexture != this.__state.renderToTexture || this.__contextState.renderToTextureSurfaceSelector != this.__state.renderToTextureSurfaceSelector) { var framebuffer = this.__state.renderToTexture.__getGLFramebuffer(this.__state.renderToTextureDepthStencil,this.__state.renderToTextureAntiAlias,this.__state.renderToTextureSurfaceSelector); this.__bindGLFramebuffer(framebuffer); this.__contextState.renderToTexture = this.__state.renderToTexture; this.__contextState.renderToTextureAntiAlias = this.__state.renderToTextureAntiAlias; this.__contextState.renderToTextureDepthStencil = this.__state.renderToTextureDepthStencil; this.__contextState.renderToTextureSurfaceSelector = this.__state.renderToTextureSurfaceSelector; } this.__setGLDepthTest(this.__state.renderToTextureDepthStencil); this.__setGLStencilTest(this.__state.renderToTextureDepthStencil); this.__setGLFrontFace(true); } else { if(this.__stage == null && this.backBufferWidth == 0 && this.backBufferHeight == 0) { throw new openfl_errors_Error("Context3D backbuffer has not been configured"); } if(this.__contextState.renderToTexture != null || this.__contextState.__currentGLFramebuffer != this.__state.__primaryGLFramebuffer || this.__contextState.backBufferEnableDepthAndStencil != this.__state.backBufferEnableDepthAndStencil) { this.__bindGLFramebuffer(this.__state.__primaryGLFramebuffer); this.__contextState.renderToTexture = null; this.__contextState.backBufferEnableDepthAndStencil = this.__state.backBufferEnableDepthAndStencil; } this.__setGLDepthTest(this.__state.backBufferEnableDepthAndStencil); this.__setGLStencilTest(this.__state.backBufferEnableDepthAndStencil); this.__setGLFrontFace(this.__stage.context3D != this); } } ,__flushGLProgram: function() { var shader = this.__state.shader; var program = this.__state.program; if(this.__contextState.shader != shader) { if(this.__contextState.shader != null) { this.__contextState.shader.__disable(); } if(shader != null) { shader.__enable(); } this.__contextState.shader = shader; } if(this.__contextState.program != program) { if(this.__contextState.program != null) { this.__contextState.program.__disable(); } if(program != null) { program.__enable(); } this.__contextState.program = program; } if(program != null && program.__format == 0) { this.__positionScale[1] = this.__stage.context3D == this && this.__state.renderToTexture == null ? 1.0 : -1.0; program.__setPositionScale(this.__positionScale); } } ,__flushGLScissor: function() { if(!this.__state.scissorEnabled) { if(this.__contextState.scissorEnabled != this.__state.scissorEnabled) { this.__setGLScissorTest(false); this.__contextState.scissorEnabled = false; } } else { this.__setGLScissorTest(true); this.__contextState.scissorEnabled = true; var scissorX = this.__state.scissorRectangle.x | 0; var scissorY = this.__state.scissorRectangle.y | 0; var scissorWidth = this.__state.scissorRectangle.width | 0; var scissorHeight = this.__state.scissorRectangle.height | 0; if(this.__backBufferWantsBestResolution) { scissorX = this.__state.scissorRectangle.x * this.__stage.window.__scale | 0; scissorY = this.__state.scissorRectangle.y * this.__stage.window.__scale | 0; scissorWidth = this.__state.scissorRectangle.width * this.__stage.window.__scale | 0; scissorHeight = this.__state.scissorRectangle.height * this.__stage.window.__scale | 0; } if(this.__state.renderToTexture == null && this.__stage3D == null) { var contextHeight = this.__stage.window.__height * this.__stage.window.__scale | 0; scissorY = contextHeight - scissorHeight - scissorY; } if(this.__contextState.scissorRectangle.x != scissorX || this.__contextState.scissorRectangle.y != scissorY || this.__contextState.scissorRectangle.width != scissorWidth || this.__contextState.scissorRectangle.height != scissorHeight) { this.gl.scissor(scissorX,scissorY,scissorWidth,scissorHeight); this.__contextState.scissorRectangle.setTo(scissorX,scissorY,scissorWidth,scissorHeight); } } } ,__flushGLStencil: function() { if(this.__contextState.stencilTriangleFace != this.__state.stencilTriangleFace || this.__contextState.stencilPass != this.__state.stencilPass || this.__contextState.stencilDepthFail != this.__state.stencilDepthFail || this.__contextState.stencilFail != this.__state.stencilFail) { this.gl.stencilOpSeparate(this.__getGLTriangleFace(this.__state.stencilTriangleFace),this.__getGLStencilAction(this.__state.stencilFail),this.__getGLStencilAction(this.__state.stencilDepthFail),this.__getGLStencilAction(this.__state.stencilPass)); this.__contextState.stencilTriangleFace = this.__state.stencilTriangleFace; this.__contextState.stencilPass = this.__state.stencilPass; this.__contextState.stencilDepthFail = this.__state.stencilDepthFail; this.__contextState.stencilFail = this.__state.stencilFail; } if(this.__contextState.stencilWriteMask != this.__state.stencilWriteMask) { this.gl.stencilMask(this.__state.stencilWriteMask); this.__contextState.stencilWriteMask = this.__state.stencilWriteMask; } if(this.__contextState.stencilCompareMode != this.__state.stencilCompareMode || this.__contextState.stencilReferenceValue != this.__state.stencilReferenceValue || this.__contextState.stencilReadMask != this.__state.stencilReadMask) { this.gl.stencilFunc(this.__getGLCompareMode(this.__state.stencilCompareMode),this.__state.stencilReferenceValue,this.__state.stencilReadMask); this.__contextState.stencilCompareMode = this.__state.stencilCompareMode; this.__contextState.stencilReferenceValue = this.__state.stencilReferenceValue; this.__contextState.stencilReadMask = this.__state.stencilReadMask; } } ,__flushGLTextures: function() { var sampler = 0; var texture; var samplerState; var _g = 0; var _g1 = this.__state.textures.length; while(_g < _g1) { var i = _g++; texture = this.__state.textures[i]; samplerState = this.__state.samplerStates[i]; if(samplerState == null) { this.__state.samplerStates[i] = new openfl_display__$internal_SamplerState(); samplerState = this.__state.samplerStates[i]; } this.gl.activeTexture(this.gl.TEXTURE0 + sampler); if(texture != null) { if(texture.__textureTarget == this.gl.TEXTURE_2D) { this.__bindGLTexture2D(texture.__getTexture()); } else { this.__bindGLTextureCubeMap(texture.__getTexture()); } this.__contextState.textures[i] = texture; texture.__setSamplerState(samplerState); } else { this.__bindGLTexture2D(null); } if(this.__state.program != null && this.__state.program.__format == 0 && samplerState.textureAlpha) { this.gl.activeTexture(this.gl.TEXTURE0 + sampler + 4); if(texture != null && texture.__alphaTexture != null) { if(texture.__alphaTexture.__textureTarget == this.gl.TEXTURE_2D) { this.__bindGLTexture2D(texture.__alphaTexture.__getTexture()); } else { this.__bindGLTextureCubeMap(texture.__alphaTexture.__getTexture()); } texture.__alphaTexture.__setSamplerState(samplerState); this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[sampler].location,1); } else { this.__bindGLTexture2D(null); if(this.__state.program.__agalAlphaSamplerEnabled[sampler] != null) { this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[sampler].location,0); } } } ++sampler; } } ,__flushGLViewport: function() { if(this.__state.renderToTexture == null) { if(this.__stage.context3D == this) { var scaledBackBufferWidth = this.backBufferWidth; var scaledBackBufferHeight = this.backBufferHeight; if(this.__stage3D == null && !this.__backBufferWantsBestResolution) { scaledBackBufferWidth = this.backBufferWidth * this.__stage.window.__scale | 0; scaledBackBufferHeight = this.backBufferHeight * this.__stage.window.__scale | 0; } var x = this.__stage3D == null ? 0 : this.__stage3D.get_x() | 0; var y = this.__stage.window.__height * this.__stage.window.__scale - scaledBackBufferHeight - (this.__stage3D == null ? 0 : this.__stage3D.get_y()) | 0; this.gl.viewport(x,y,scaledBackBufferWidth,scaledBackBufferHeight); } else { this.gl.viewport(0,0,this.backBufferWidth,this.backBufferHeight); } } else { var width = 0; var height = 0; if(((this.__state.renderToTexture) instanceof openfl_display3D_textures_Texture)) { var texture2D = this.__state.renderToTexture; width = texture2D.__width; height = texture2D.__height; } else if(((this.__state.renderToTexture) instanceof openfl_display3D_textures_RectangleTexture)) { var rectTexture = this.__state.renderToTexture; width = rectTexture.__width; height = rectTexture.__height; } else if(((this.__state.renderToTexture) instanceof openfl_display3D_textures_CubeTexture)) { var cubeTexture = this.__state.renderToTexture; width = cubeTexture.__size; height = cubeTexture.__size; } this.gl.viewport(0,0,width,height); } } ,__getGLBlend: function(blendFactor) { switch(blendFactor) { case 0: return this.gl.DST_ALPHA; case 1: return this.gl.DST_COLOR; case 2: return this.gl.ONE; case 3: return this.gl.ONE_MINUS_DST_ALPHA; case 4: return this.gl.ONE_MINUS_DST_COLOR; case 5: return this.gl.ONE_MINUS_SRC_ALPHA; case 6: return this.gl.ONE_MINUS_SRC_COLOR; case 7: return this.gl.SRC_ALPHA; case 8: return this.gl.SRC_COLOR; case 9: return this.gl.ZERO; default: throw new openfl_errors_IllegalOperationError(); } } ,__getGLCompareMode: function(mode) { switch(mode) { case 0: return this.gl.ALWAYS; case 1: return this.gl.EQUAL; case 2: return this.gl.GREATER; case 3: return this.gl.GEQUAL; case 4: return this.gl.LESS; case 5: return this.gl.LEQUAL; case 6: return this.gl.NEVER; case 7: return this.gl.NOTEQUAL; default: return this.gl.EQUAL; } } ,__getGLStencilAction: function(action) { switch(action) { case 0: return this.gl.DECR; case 1: return this.gl.DECR_WRAP; case 2: return this.gl.INCR; case 3: return this.gl.INCR_WRAP; case 4: return this.gl.INVERT; case 5: return this.gl.KEEP; case 6: return this.gl.REPLACE; case 7: return this.gl.ZERO; default: return this.gl.KEEP; } } ,__getGLTriangleFace: function(face) { switch(face) { case 0: return this.gl.BACK; case 1: return this.gl.FRONT; case 2: return this.gl.FRONT_AND_BACK; case 3: return this.gl.NONE; default: return this.gl.FRONT_AND_BACK; } } ,__renderStage3D: function(stage3D) { var context = stage3D.context3D; if(context != null && context != this && context.__frontBufferTexture != null && stage3D.visible && this.backBufferHeight > 0 && this.backBufferWidth > 0) { if(this.__renderStage3DProgram == null) { var vertexAssembler = new openfl_utils_AGALMiniAssembler(); vertexAssembler.assemble(openfl_display3D_Context3DProgramType.toString(1),"m44 op, va0, vc0\n" + "mov v0, va1"); var fragmentAssembler = new openfl_utils_AGALMiniAssembler(); fragmentAssembler.assemble(openfl_display3D_Context3DProgramType.toString(0),"tex ft1, v0, fs0 <2d,nearest,nomip>\n" + "mov oc, ft1"); this.__renderStage3DProgram = this.createProgram(); this.__renderStage3DProgram.upload(vertexAssembler.agalcode,fragmentAssembler.agalcode); } this.setProgram(this.__renderStage3DProgram); this.setBlendFactors(2,9); this.setColorMask(true,true,true,true); this.setCulling(3); this.setDepthTest(false,0); this.setStencilActions(); this.setStencilReferenceValue(0,0,0); this.setScissorRectangle(null); this.setTextureAt(0,context.__frontBufferTexture); this.setVertexBufferAt(0,stage3D.__vertexBuffer,0,3); this.setVertexBufferAt(1,stage3D.__vertexBuffer,3,2); this.setProgramConstantsFromMatrix(1,0,stage3D.__renderTransform,true); this.drawTriangles(stage3D.__indexBuffer); this.__present = true; } } ,__setGLBlend: function(enable) { if(this.__contextState.__enableGLBlend != enable) { if(enable) { this.gl.enable(this.gl.BLEND); } else { this.gl.disable(this.gl.BLEND); } this.__contextState.__enableGLBlend = enable; } } ,__setGLBlendEquation: function(value) { if(this.__contextState.__glBlendEquation != value) { this.gl.blendEquation(value); this.__contextState.__glBlendEquation = value; } } ,__setGLCullFace: function(enable) { if(this.__contextState.__enableGLCullFace != enable) { if(enable) { this.gl.enable(this.gl.CULL_FACE); } else { this.gl.disable(this.gl.CULL_FACE); } this.__contextState.__enableGLCullFace = enable; } } ,__setGLDepthTest: function(enable) { if(this.__contextState.__enableGLDepthTest != enable) { if(enable) { this.gl.enable(this.gl.DEPTH_TEST); } else { this.gl.disable(this.gl.DEPTH_TEST); } this.__contextState.__enableGLDepthTest = enable; } } ,__setGLFrontFace: function(counterClockWise) { if(this.__contextState.__frontFaceGLCCW != counterClockWise) { this.gl.frontFace(counterClockWise ? this.gl.CCW : this.gl.CW); this.__contextState.__frontFaceGLCCW = counterClockWise; } } ,__setGLScissorTest: function(enable) { if(this.__contextState.__enableGLScissorTest != enable) { if(enable) { this.gl.enable(this.gl.SCISSOR_TEST); } else { this.gl.disable(this.gl.SCISSOR_TEST); } this.__contextState.__enableGLScissorTest = enable; } } ,__setGLStencilTest: function(enable) { if(this.__contextState.__enableGLStencilTest != enable) { if(enable) { this.gl.enable(this.gl.STENCIL_TEST); } else { this.gl.disable(this.gl.STENCIL_TEST); } this.__contextState.__enableGLStencilTest = enable; } } ,get_enableErrorChecking: function() { return this.__enableErrorChecking; } ,set_enableErrorChecking: function(value) { return this.__enableErrorChecking = value; } ,get_totalGPUMemory: function() { if(openfl_display3D_Context3D.__glMemoryCurrentAvailable != -1) { var current = this.gl.getParameter(openfl_display3D_Context3D.__glMemoryCurrentAvailable); var total = this.gl.getParameter(openfl_display3D_Context3D.__glMemoryTotalAvailable); if(total > 0) { return (total - current) * 1024; } } return 0; } ,__class__: openfl_display3D_Context3D ,__properties__: {get_totalGPUMemory:"get_totalGPUMemory",set_enableErrorChecking:"set_enableErrorChecking",get_enableErrorChecking:"get_enableErrorChecking"} }); var openfl_display3D_Context3DBlendFactor = {}; openfl_display3D_Context3DBlendFactor.fromString = function(value) { switch(value) { case "destinationAlpha": return 0; case "destinationColor": return 1; case "one": return 2; case "oneMinusDestinationAlpha": return 3; case "oneMinusDestinationColor": return 4; case "oneMinusSourceAlpha": return 5; case "oneMinusSourceColor": return 6; case "sourceAlpha": return 7; case "sourceColor": return 8; case "zero": return 9; default: return null; } }; openfl_display3D_Context3DBlendFactor.toString = function(this1) { switch(this1) { case 0: return "destinationAlpha"; case 1: return "destinationColor"; case 2: return "one"; case 3: return "oneMinusDestinationAlpha"; case 4: return "oneMinusDestinationColor"; case 5: return "oneMinusSourceAlpha"; case 6: return "oneMinusSourceColor"; case 7: return "sourceAlpha"; case 8: return "sourceColor"; case 9: return "zero"; default: return null; } }; var openfl_display3D_Context3DBufferUsage = {}; openfl_display3D_Context3DBufferUsage.fromString = function(value) { switch(value) { case "dynamicDraw": return 0; case "staticDraw": return 1; default: return null; } }; openfl_display3D_Context3DBufferUsage.toString = function(this1) { switch(this1) { case 0: return "dynamicDraw"; case 1: return "staticDraw"; default: return null; } }; var openfl_display3D_Context3DCompareMode = {}; openfl_display3D_Context3DCompareMode.fromString = function(value) { switch(value) { case "always": return 0; case "equal": return 1; case "greater": return 2; case "greaterEqual": return 3; case "less": return 4; case "lessEqual": return 5; case "never": return 6; case "notEqual": return 7; default: return null; } }; openfl_display3D_Context3DCompareMode.toString = function(this1) { switch(this1) { case 0: return "always"; case 1: return "equal"; case 2: return "greater"; case 3: return "greaterEqual"; case 4: return "less"; case 5: return "lessEqual"; case 6: return "never"; case 7: return "notEqual"; default: return null; } }; var openfl_display3D_Context3DMipFilter = {}; openfl_display3D_Context3DMipFilter.fromString = function(value) { switch(value) { case "miplinear": return 0; case "mipnearest": return 1; case "mipnone": return 2; default: return null; } }; openfl_display3D_Context3DMipFilter.toString = function(this1) { switch(this1) { case 0: return "miplinear"; case 1: return "mipnearest"; case 2: return "mipnone"; default: return null; } }; var openfl_display3D_Context3DProfile = {}; openfl_display3D_Context3DProfile.fromString = function(value) { switch(value) { case "baseline": return 0; case "baselineConstrained": return 1; case "baselineExtended": return 2; case "standard": return 3; case "standardConstrained": return 4; case "standardExtended": return 5; default: return null; } }; openfl_display3D_Context3DProfile.toString = function(this1) { switch(this1) { case 0: return "baseline"; case 1: return "baselineConstrained"; case 2: return "baselineExtended"; case 3: return "standard"; case 4: return "standardConstrained"; case 5: return "standardExtended"; default: return null; } }; var openfl_display3D_Context3DProgramFormat = {}; openfl_display3D_Context3DProgramFormat.fromString = function(value) { switch(value) { case "agal": return 0; case "glsl": return 1; default: return null; } }; openfl_display3D_Context3DProgramFormat.toString = function(this1) { switch(this1) { case 0: return "agal"; case 1: return "glsl"; default: return null; } }; var openfl_display3D_Context3DProgramType = {}; openfl_display3D_Context3DProgramType.fromString = function(value) { switch(value) { case "fragment": return 0; case "vertex": return 1; default: return null; } }; openfl_display3D_Context3DProgramType.toString = function(this1) { switch(this1) { case 0: return "fragment"; case 1: return "vertex"; default: return null; } }; var openfl_display3D_Context3DRenderMode = {}; openfl_display3D_Context3DRenderMode.fromString = function(value) { switch(value) { case "auto": return 0; case "software": return 1; default: return null; } }; openfl_display3D_Context3DRenderMode.toString = function(this1) { switch(this1) { case 0: return "auto"; case 1: return "software"; default: return null; } }; var openfl_display3D_Context3DStencilAction = {}; openfl_display3D_Context3DStencilAction.fromString = function(value) { switch(value) { case "decrementSaturate": return 0; case "decrementWrap": return 1; case "incrementSaturate": return 2; case "incrementWrap": return 3; case "invert": return 4; case "keep": return 5; case "set": return 6; case "zero": return 7; default: return null; } }; openfl_display3D_Context3DStencilAction.toString = function(this1) { switch(this1) { case 0: return "decrementSaturate"; case 1: return "decrementWrap"; case 2: return "incrementSaturate"; case 3: return "incrementWrap"; case 4: return "invert"; case 5: return "keep"; case 6: return "set"; case 7: return "zero"; default: return null; } }; var openfl_display3D_Context3DTextureFilter = {}; openfl_display3D_Context3DTextureFilter.fromString = function(value) { switch(value) { case "anisotropic16x": return 0; case "anisotropic2x": return 1; case "anisotropic4x": return 2; case "anisotropic8x": return 3; case "linear": return 4; case "nearest": return 5; default: return null; } }; openfl_display3D_Context3DTextureFilter.toString = function(this1) { switch(this1) { case 0: return "anisotropic16x"; case 1: return "anisotropic2x"; case 2: return "anisotropic4x"; case 3: return "anisotropic8x"; case 4: return "linear"; case 5: return "nearest"; default: return null; } }; var openfl_display3D_Context3DTextureFormat = {}; openfl_display3D_Context3DTextureFormat.fromString = function(value) { switch(value) { case "bgrPacked565": return 0; case "bgra": return 1; case "bgraPacked4444": return 2; case "compressed": return 3; case "compressedAlpha": return 4; case "rgbaHalfFloat": return 5; default: return null; } }; openfl_display3D_Context3DTextureFormat.toString = function(this1) { switch(this1) { case 0: return "bgrPacked565"; case 1: return "bgra"; case 2: return "bgraPacked4444"; case 3: return "compressed"; case 4: return "compressedAlpha"; case 5: return "rgbaHalfFloat"; default: return null; } }; var openfl_display3D_Context3DTriangleFace = {}; openfl_display3D_Context3DTriangleFace.fromString = function(value) { switch(value) { case "back": return 0; case "front": return 1; case "frontAndBack": return 2; case "none": return 3; default: return null; } }; openfl_display3D_Context3DTriangleFace.toString = function(this1) { switch(this1) { case 0: return "back"; case 1: return "front"; case 2: return "frontAndBack"; case 3: return "none"; default: return null; } }; var openfl_display3D_Context3DVertexBufferFormat = {}; openfl_display3D_Context3DVertexBufferFormat.fromString = function(value) { switch(value) { case "bytes4": return 0; case "float1": return 1; case "float2": return 2; case "float3": return 3; case "float4": return 4; default: return null; } }; openfl_display3D_Context3DVertexBufferFormat.toString = function(this1) { switch(this1) { case 0: return "bytes4"; case 1: return "float1"; case 2: return "float2"; case 3: return "float3"; case 4: return "float4"; default: return null; } }; var openfl_display3D_Context3DWrapMode = {}; openfl_display3D_Context3DWrapMode.fromString = function(value) { switch(value) { case "clamp": return 0; case "clamp_u_repeat_v": return 1; case "repeat": return 2; case "repeat_u_clamp_v": return 3; default: return null; } }; openfl_display3D_Context3DWrapMode.toString = function(this1) { switch(this1) { case 0: return "clamp"; case 1: return "clamp_u_repeat_v"; case 2: return "repeat"; case 3: return "repeat_u_clamp_v"; default: return null; } }; var openfl_display3D_IndexBuffer3D = function(context3D,numIndices,bufferUsage) { this.__context = context3D; this.__numIndices = numIndices; var gl = this.__context.gl; this.__id = gl.createBuffer(); this.__usage = bufferUsage == 0 ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW; }; $hxClasses["openfl.display3D.IndexBuffer3D"] = openfl_display3D_IndexBuffer3D; openfl_display3D_IndexBuffer3D.__name__ = "openfl.display3D.IndexBuffer3D"; openfl_display3D_IndexBuffer3D.prototype = { __context: null ,__id: null ,__memoryUsage: null ,__numIndices: null ,__tempUInt16Array: null ,__usage: null ,dispose: function() { var gl = this.__context.gl; gl.deleteBuffer(this.__id); } ,uploadFromByteArray: function(data,byteArrayOffset,startOffset,count) { var offset = byteArrayOffset + startOffset * 2; var elements = null; var array = null; var vector = null; var view = null; var buffer = openfl_utils_ByteArray.toArrayBuffer(data); var byteoffset = offset; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint16Array(elements); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer != null) { if(count == null) { this1 = new Uint16Array(buffer,byteoffset); } else { this1 = new Uint16Array(buffer,byteoffset,count); } } else { this1 = null; } this.uploadFromTypedArray(this1); } ,uploadFromTypedArray: function(data,byteLength) { if(byteLength == null) { byteLength = -1; } if(data == null) { return; } var gl = this.__context.gl; this.__context.__bindGLElementArrayBuffer(this.__id); lime_graphics_WebGLRenderContext.bufferData(gl,gl.ELEMENT_ARRAY_BUFFER,data,this.__usage); } ,uploadFromVector: function(data,startOffset,count) { if(data == null) { return; } var gl = this.__context.gl; var length = startOffset + count; var existingUInt16Array = this.__tempUInt16Array; if(this.__tempUInt16Array == null || this.__tempUInt16Array.length < count) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(count != null) { this1 = new Uint16Array(count); } else if(array != null) { this1 = new Uint16Array(array); } else if(vector != null) { this1 = new Uint16Array(vector.__array); } else if(view != null) { this1 = new Uint16Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint16Array(buffer,0); } else { this1 = new Uint16Array(buffer,0,len); } } else { this1 = null; } this.__tempUInt16Array = this1; if(existingUInt16Array != null) { this.__tempUInt16Array.set(existingUInt16Array); } } var _g = startOffset; var _g1 = length; while(_g < _g1) { var i = _g++; this.__tempUInt16Array[i - startOffset] = data.get(i); } this.uploadFromTypedArray(this.__tempUInt16Array); } ,__class__: openfl_display3D_IndexBuffer3D }; var openfl_display3D_Program3D = function(context3D,format) { this.__context = context3D; this.__format = format; if(this.__format == 0) { this.__agalSamplerUsageMask = 0; this.__agalUniforms = new haxe_ds_List(); this.__agalSamplerUniforms = new haxe_ds_List(); this.__agalAlphaSamplerUniforms = new haxe_ds_List(); this.__agalAlphaSamplerEnabled = []; } else { this.__glslAttribNames = []; this.__glslAttribTypes = []; this.__glslSamplerNames = []; this.__glslUniformLocations = []; this.__glslUniformNames = []; this.__glslUniformTypes = []; } this.__samplerStates = []; }; $hxClasses["openfl.display3D.Program3D"] = openfl_display3D_Program3D; openfl_display3D_Program3D.__name__ = "openfl.display3D.Program3D"; openfl_display3D_Program3D.prototype = { __agalAlphaSamplerEnabled: null ,__agalAlphaSamplerUniforms: null ,__agalFragmentUniformMap: null ,__agalPositionScale: null ,__agalSamplerUniforms: null ,__agalSamplerUsageMask: null ,__agalUniforms: null ,__agalVertexUniformMap: null ,__context: null ,__format: null ,__glFragmentShader: null ,__glFragmentSource: null ,__glProgram: null ,__glslAttribNames: null ,__glslAttribTypes: null ,__glslSamplerNames: null ,__glslUniformLocations: null ,__glslUniformNames: null ,__glslUniformTypes: null ,__glVertexShader: null ,__glVertexSource: null ,__samplerStates: null ,dispose: function() { this.__deleteShaders(); } ,getAttributeIndex: function(name) { if(this.__format == 0) { if(StringTools.startsWith(name,"va")) { return Std.parseInt(name.substring(2)); } else { return -1; } } else { var _g = 0; var _g1 = this.__glslAttribNames.length; while(_g < _g1) { var i = _g++; if(this.__glslAttribNames[i] == name) { return i; } } return -1; } } ,getConstantIndex: function(name) { if(this.__format == 0) { if(StringTools.startsWith(name,"vc")) { return Std.parseInt(name.substring(2)); } else if(StringTools.startsWith(name,"fc")) { return Std.parseInt(name.substring(2)); } else { return -1; } } else { var _g = 0; var _g1 = this.__glslUniformNames.length; while(_g < _g1) { var i = _g++; if(this.__glslUniformNames[i] == name) { return this.__glslUniformLocations[i]; } } return -1; } } ,upload: function(vertexProgram,fragmentProgram) { if(this.__format != 0) { return; } var samplerStates = []; var glslVertex = openfl_display3D__$internal_AGALConverter.convertToGLSL(vertexProgram,null); var glslFragment = openfl_display3D__$internal_AGALConverter.convertToGLSL(fragmentProgram,samplerStates); if(lime_utils_Log.level == 5) { lime_utils_Log.info(glslVertex,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 399, className : "openfl.display3D.Program3D", methodName : "upload"}); lime_utils_Log.info(glslFragment,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 400, className : "openfl.display3D.Program3D", methodName : "upload"}); } this.__deleteShaders(); this.__uploadFromGLSL(glslVertex,glslFragment); this.__buildAGALUniformList(); var _g = 0; var _g1 = samplerStates.length; while(_g < _g1) { var i = _g++; this.__samplerStates[i] = samplerStates[i]; } } ,uploadSources: function(vertexSource,fragmentSource) { if(this.__format != 1) { return; } var prefix = "#ifdef GL_ES\n\t\t\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\tprecision highp float;\n\t\t\t#else\n\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t#endif\n\t\t\t"; var vertex = prefix + vertexSource; var fragment = prefix + fragmentSource; if(vertex == this.__glVertexSource && fragment == this.__glFragmentSource) { return; } this.__processGLSLData(vertexSource,"attribute"); this.__processGLSLData(vertexSource,"uniform"); this.__processGLSLData(fragmentSource,"uniform"); this.__deleteShaders(); this.__uploadFromGLSL(vertex,fragment); var samplerNames = this.__glslSamplerNames; var attribNames = this.__glslAttribNames; var attribTypes = this.__glslAttribTypes; var uniformNames = this.__glslUniformNames; this.__glslSamplerNames = []; this.__glslAttribNames = []; this.__glslAttribTypes = []; this.__glslUniformLocations = []; var gl = this.__context.gl; var index; var location; var _g = 0; while(_g < samplerNames.length) { var name = samplerNames[_g]; ++_g; index = gl.getUniformLocation(this.__glProgram,name); this.__glslSamplerNames[index] = name; } var _g = 0; var _g1 = attribNames.length; while(_g < _g1) { var i = _g++; index = gl.getAttribLocation(this.__glProgram,attribNames[i]); this.__glslAttribNames[index] = attribNames[i]; this.__glslAttribTypes[index] = attribTypes[i]; } var _g = 0; var _g1 = uniformNames.length; while(_g < _g1) { var i = _g++; location = gl.getUniformLocation(this.__glProgram,uniformNames[i]); this.__glslUniformLocations[i] = location; } } ,__buildAGALUniformList: function() { if(this.__format == 1) { return; } var gl = this.__context.gl; this.__agalUniforms.clear(); this.__agalSamplerUniforms.clear(); this.__agalAlphaSamplerUniforms.clear(); this.__agalAlphaSamplerEnabled = []; this.__agalSamplerUsageMask = 0; var numActive = 0; numActive = gl.getProgramParameter(this.__glProgram,gl.ACTIVE_UNIFORMS); var vertexUniforms = new haxe_ds_List(); var fragmentUniforms = new haxe_ds_List(); var _g = 0; var _g1 = numActive; while(_g < _g1) { var i = _g++; var info = gl.getActiveUniform(this.__glProgram,i); var name = info.name; var size = info.size; var uniformType = info.type; var uniform = new openfl_display3D_Uniform(this.__context); uniform.name = name; uniform.size = size; uniform.type = uniformType; uniform.location = gl.getUniformLocation(this.__glProgram,uniform.name); var indexBracket = uniform.name.indexOf("["); if(indexBracket >= 0) { uniform.name = uniform.name.substring(0,indexBracket); } switch(uniform.type) { case 35674: uniform.regCount = 2; break; case 35675: uniform.regCount = 3; break; case 35676: uniform.regCount = 4; break; default: uniform.regCount = 1; } uniform.regCount *= uniform.size; this.__agalUniforms.add(uniform); if(uniform.name == "vcPositionScale") { this.__agalPositionScale = uniform; } else if(StringTools.startsWith(uniform.name,"vc")) { uniform.regIndex = Std.parseInt(uniform.name.substring(2)); uniform.regData = this.__context.__vertexConstants; vertexUniforms.add(uniform); } else if(StringTools.startsWith(uniform.name,"fc")) { uniform.regIndex = Std.parseInt(uniform.name.substring(2)); uniform.regData = this.__context.__fragmentConstants; fragmentUniforms.add(uniform); } else if(StringTools.startsWith(uniform.name,"sampler") && uniform.name.indexOf("alpha") == -1) { uniform.regIndex = Std.parseInt(uniform.name.substring(7)); this.__agalSamplerUniforms.add(uniform); var _g2 = 0; var _g3 = uniform.regCount; while(_g2 < _g3) { var reg = _g2++; this.__agalSamplerUsageMask |= 1 << uniform.regIndex + reg; } } else if(StringTools.startsWith(uniform.name,"sampler") && StringTools.endsWith(uniform.name,"_alpha")) { var len = uniform.name.indexOf("_") - 7; uniform.regIndex = Std.parseInt(uniform.name.substring(7,7 + len)) + 4; this.__agalAlphaSamplerUniforms.add(uniform); } else if(StringTools.startsWith(uniform.name,"sampler") && StringTools.endsWith(uniform.name,"_alphaEnabled")) { uniform.regIndex = Std.parseInt(uniform.name.substring(7)); this.__agalAlphaSamplerEnabled[uniform.regIndex] = uniform; } if(lime_utils_Log.level == 5) { lime_utils_Log.verbose("" + i + " name:" + uniform.name + " type:" + uniform.type + " size:" + uniform.size + " location:" + Std.string(uniform.location),{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 577, className : "openfl.display3D.Program3D", methodName : "__buildAGALUniformList"}); } } this.__agalVertexUniformMap = new openfl_display3D_UniformMap(Lambda.array(vertexUniforms)); this.__agalFragmentUniformMap = new openfl_display3D_UniformMap(Lambda.array(fragmentUniforms)); } ,__deleteShaders: function() { var gl = this.__context.gl; if(this.__glProgram != null) { this.__glProgram = null; } if(this.__glVertexShader != null) { gl.deleteShader(this.__glVertexShader); this.__glVertexShader = null; } if(this.__glFragmentShader != null) { gl.deleteShader(this.__glFragmentShader); this.__glFragmentShader = null; } } ,__disable: function() { var tmp = this.__format == 1; } ,__enable: function() { var gl = this.__context.gl; gl.useProgram(this.__glProgram); if(this.__format == 0) { this.__agalVertexUniformMap.markAllDirty(); this.__agalFragmentUniformMap.markAllDirty(); var _g_head = this.__agalSamplerUniforms.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var sampler = val; if(sampler.regCount == 1) { gl.uniform1i(sampler.location,sampler.regIndex); } else { throw new openfl_errors_IllegalOperationError("!!! TODO: uniform location on webgl"); } } var _g_head = this.__agalAlphaSamplerUniforms.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var sampler = val; if(sampler.regCount == 1) { gl.uniform1i(sampler.location,sampler.regIndex); } else { throw new openfl_errors_IllegalOperationError("!!! TODO: uniform location on webgl"); } } } } ,__flush: function() { if(this.__format == 0) { this.__agalVertexUniformMap.flush(); this.__agalFragmentUniformMap.flush(); } else { return; } } ,__getSamplerState: function(sampler) { return this.__samplerStates[sampler]; } ,__markDirty: function(isVertex,index,count) { if(this.__format == 1) { return; } if(isVertex) { this.__agalVertexUniformMap.markDirty(index,count); } else { this.__agalFragmentUniformMap.markDirty(index,count); } } ,__processGLSLData: function(source,storageType) { var lastMatch = 0; var position; var regex; var name; var type; if(storageType == "uniform") { regex = new EReg("uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)",""); } else { regex = new EReg("attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)",""); } while(regex.matchSub(source,lastMatch)) { type = regex.matched(1); name = regex.matched(2); if(StringTools.startsWith(name,"gl_")) { continue; } if(StringTools.startsWith(type,"sampler")) { this.__glslSamplerNames.push(name); } else { var parameterType; switch(type) { case "bool": parameterType = 0; break; case "bvec2": parameterType = 1; break; case "bvec3": parameterType = 2; break; case "bvec4": parameterType = 3; break; case "dvec2":case "vec2": parameterType = 5; break; case "dvec3":case "vec3": parameterType = 6; break; case "dvec4":case "vec4": parameterType = 7; break; case "double":case "float": parameterType = 4; break; case "mat2":case "mat2x2": parameterType = 12; break; case "mat2x3": parameterType = 13; break; case "mat2x4": parameterType = 14; break; case "mat3x2": parameterType = 15; break; case "mat3":case "mat3x3": parameterType = 16; break; case "mat3x4": parameterType = 17; break; case "mat4x2": parameterType = 18; break; case "mat4x3": parameterType = 19; break; case "mat4":case "mat4x4": parameterType = 20; break; case "int":case "uint": parameterType = 8; break; case "ivec2":case "uvec2": parameterType = 9; break; case "ivec3":case "uvec3": parameterType = 10; break; case "ivec4":case "uvec4": parameterType = 11; break; default: parameterType = null; } if(storageType == "uniform") { this.__glslUniformNames.push(name); this.__glslUniformTypes.push(parameterType); } else { this.__glslAttribNames.push(name); this.__glslAttribTypes.push(parameterType); } } position = regex.matchedPos(); lastMatch = position.pos + position.len; } } ,__setPositionScale: function(positionScale) { if(this.__format == 1) { return; } if(this.__agalPositionScale != null) { var gl = this.__context.gl; var location = this.__agalPositionScale.location; var data = positionScale; var srcOffset = null; if(srcOffset != null) { gl.uniform4fv(location,data,srcOffset,null); } else { gl.uniform4fv(location,data); } } } ,__setSamplerState: function(sampler,state) { this.__samplerStates[sampler] = state; } ,__uploadFromGLSL: function(vertexShaderSource,fragmentShaderSource) { var gl = this.__context.gl; this.__glVertexSource = vertexShaderSource; this.__glFragmentSource = fragmentShaderSource; this.__glVertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(this.__glVertexShader,vertexShaderSource); gl.compileShader(this.__glVertexShader); if(gl.getShaderParameter(this.__glVertexShader,gl.COMPILE_STATUS) == 0) { var message = "Error compiling vertex shader"; message += "\n" + gl.getShaderInfoLog(this.__glVertexShader); message += "\n" + vertexShaderSource; lime_utils_Log.error(message,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 869, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"}); } this.__glFragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(this.__glFragmentShader,fragmentShaderSource); gl.compileShader(this.__glFragmentShader); if(gl.getShaderParameter(this.__glFragmentShader,gl.COMPILE_STATUS) == 0) { var message = "Error compiling fragment shader"; message += "\n" + gl.getShaderInfoLog(this.__glFragmentShader); message += "\n" + fragmentShaderSource; lime_utils_Log.error(message,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 881, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"}); } this.__glProgram = gl.createProgram(); if(this.__format == 0) { var _g = 0; while(_g < 16) { var i = _g++; var name = "va" + i; if(vertexShaderSource.indexOf(" " + name) != -1) { gl.bindAttribLocation(this.__glProgram,i,name); } } } else { var _g = 0; var _g1 = this.__glslAttribNames; while(_g < _g1.length) { var name = _g1[_g]; ++_g; if(name.indexOf("Position") > -1 && StringTools.startsWith(name,"openfl_")) { gl.bindAttribLocation(this.__glProgram,0,name); break; } } } gl.attachShader(this.__glProgram,this.__glVertexShader); gl.attachShader(this.__glProgram,this.__glFragmentShader); gl.linkProgram(this.__glProgram); if(gl.getProgramParameter(this.__glProgram,gl.LINK_STATUS) == 0) { var message = "Unable to initialize the shader program"; message += "\n" + gl.getProgramInfoLog(this.__glProgram); lime_utils_Log.error(message,{ fileName : "openfl/display3D/Program3D.hx", lineNumber : 922, className : "openfl.display3D.Program3D", methodName : "__uploadFromGLSL"}); } } ,__class__: openfl_display3D_Program3D }; var openfl_display3D_Uniform = function(context) { this.context = context; this.isDirty = true; this.regDataPointer = new lime_utils_BytePointerData(null,0); }; $hxClasses["openfl.display3D.Uniform"] = openfl_display3D_Uniform; openfl_display3D_Uniform.__name__ = "openfl.display3D.Uniform"; openfl_display3D_Uniform.prototype = { name: null ,location: null ,type: null ,size: null ,regData: null ,regIndex: null ,regCount: null ,isDirty: null ,context: null ,regDataPointer: null ,flush: function() { var gl = this.context.gl; var index = this.regIndex * 4; switch(this.type) { case 35664: lime_graphics_WebGL2RenderContext.uniform2fv(gl,this.location,this.regData.subarray(index,index + this.regCount * 2)); break; case 35665: var location = this.location; var data = this.regData.subarray(index,index + this.regCount * 3); var srcOffset = null; if(srcOffset != null) { gl.uniform3fv(location,data,srcOffset,null); } else { gl.uniform3fv(location,data); } break; case 35666: var location = this.location; var data = this.regData.subarray(index,index + this.regCount * 4); var srcOffset = null; if(srcOffset != null) { gl.uniform4fv(location,data,srcOffset,null); } else { gl.uniform4fv(location,data); } break; case 35674: lime_graphics_WebGLRenderContext.uniformMatrix2fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 2 * 2)); break; case 35675: lime_graphics_WebGLRenderContext.uniformMatrix3fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 3 * 3)); break; case 35676: lime_graphics_WebGLRenderContext.uniformMatrix4fv(gl,this.location,false,this.regData.subarray(index,index + this.size * 4 * 4)); break; default: var location = this.location; var data = this.regData.subarray(index,index + this.regCount * 4); var srcOffset = null; if(srcOffset != null) { gl.uniform4fv(location,data,srcOffset,null); } else { gl.uniform4fv(location,data); } } } ,__getUniformRegisters: function(index,size) { return this.regData.subarray(index,index + size); } ,__class__: openfl_display3D_Uniform }; var openfl_display3D_UniformMap = function(list) { this.__uniforms = list; this.__uniforms.sort(function(a,b) { return Reflect.compare(a.regIndex,b.regIndex); }); var total = 0; var _g = 0; var _g1 = this.__uniforms; while(_g < _g1.length) { var uniform = _g1[_g]; ++_g; if(uniform.regIndex + uniform.regCount > total) { total = uniform.regIndex + uniform.regCount; } } this.__registerLookup = openfl_Vector.toObjectVector(null,total); var _g = 0; var _g1 = this.__uniforms; while(_g < _g1.length) { var uniform = _g1[_g]; ++_g; var _g2 = 0; var _g3 = uniform.regCount; while(_g2 < _g3) { var i = _g2++; this.__registerLookup.set(uniform.regIndex + i,uniform); } } this.__anyDirty = this.__allDirty = true; }; $hxClasses["openfl.display3D.UniformMap"] = openfl_display3D_UniformMap; openfl_display3D_UniformMap.__name__ = "openfl.display3D.UniformMap"; openfl_display3D_UniformMap.prototype = { __allDirty: null ,__anyDirty: null ,__registerLookup: null ,__uniforms: null ,flush: function() { if(this.__anyDirty) { var _g = 0; var _g1 = this.__uniforms; while(_g < _g1.length) { var uniform = _g1[_g]; ++_g; if(this.__allDirty || uniform.isDirty) { uniform.flush(); uniform.isDirty = false; } } this.__anyDirty = this.__allDirty = false; } } ,markAllDirty: function() { this.__allDirty = true; this.__anyDirty = true; } ,markDirty: function(start,count) { if(this.__allDirty) { return; } var end = start + count; if(end > this.__registerLookup.get_length()) { end = this.__registerLookup.get_length(); } var index = start; while(index < end) { var uniform = this.__registerLookup.get(index); if(uniform != null) { uniform.isDirty = true; this.__anyDirty = true; index = uniform.regIndex + uniform.regCount; } else { ++index; } } } ,__class__: openfl_display3D_UniformMap }; var openfl_display3D_VertexBuffer3D = function(context3D,numVertices,dataPerVertex,bufferUsage) { this.__context = context3D; this.__numVertices = numVertices; this.__vertexSize = dataPerVertex; var gl = this.__context.gl; this.__id = gl.createBuffer(); this.__stride = this.__vertexSize * 4; this.__usage = openfl_display3D_Context3DBufferUsage.fromString(bufferUsage) == 0 ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW; }; $hxClasses["openfl.display3D.VertexBuffer3D"] = openfl_display3D_VertexBuffer3D; openfl_display3D_VertexBuffer3D.__name__ = "openfl.display3D.VertexBuffer3D"; openfl_display3D_VertexBuffer3D.prototype = { __context: null ,__data: null ,__id: null ,__memoryUsage: null ,__numVertices: null ,__stride: null ,__tempFloat32Array: null ,__usage: null ,__vertexSize: null ,dispose: function() { var gl = this.__context.gl; gl.deleteBuffer(this.__id); } ,uploadFromByteArray: function(data,byteArrayOffset,startVertex,numVertices) { var offset = byteArrayOffset + startVertex * this.__stride; var length = numVertices * this.__vertexSize; var elements = null; var array = null; var vector = null; var view = null; var buffer = openfl_utils_ByteArray.toArrayBuffer(data); var byteoffset = offset; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Float32Array(elements); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(length == null) { this1 = new Float32Array(buffer,byteoffset); } else { this1 = new Float32Array(buffer,byteoffset,length); } } else { this1 = null; } this.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this1)); } ,uploadFromTypedArray: function(data,byteLength) { if(byteLength == null) { byteLength = -1; } if(data == null) { return; } var gl = this.__context.gl; this.__context.__bindGLArrayBuffer(this.__id); lime_graphics_WebGLRenderContext.bufferData(gl,gl.ARRAY_BUFFER,data,this.__usage); } ,uploadFromVector: function(data,startVertex,numVertices) { if(data == null) { return; } var gl = this.__context.gl; var start = startVertex * this.__vertexSize; var count = numVertices * this.__vertexSize; var length = start + count; var existingFloat32Array = this.__tempFloat32Array; if(this.__tempFloat32Array == null || this.__tempFloat32Array.length < count) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(count != null) { this1 = new Float32Array(count); } else if(array != null) { this1 = new Float32Array(array); } else if(vector != null) { this1 = new Float32Array(vector.__array); } else if(view != null) { this1 = new Float32Array(view); } else if(buffer != null) { if(len == null) { this1 = new Float32Array(buffer,0); } else { this1 = new Float32Array(buffer,0,len); } } else { this1 = null; } this.__tempFloat32Array = this1; if(existingFloat32Array != null) { this.__tempFloat32Array.set(existingFloat32Array); } } var _g = start; var _g1 = length; while(_g < _g1) { var i = _g++; this.__tempFloat32Array[i - start] = data.get(i); } this.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__tempFloat32Array)); } ,__class__: openfl_display3D_VertexBuffer3D }; var openfl_display3D__$internal_AGALConverter = function() { }; $hxClasses["openfl.display3D._internal.AGALConverter"] = openfl_display3D__$internal_AGALConverter; openfl_display3D__$internal_AGALConverter.__name__ = "openfl.display3D._internal.AGALConverter"; openfl_display3D__$internal_AGALConverter.prefixFromType = function(regType,programType) { switch(regType) { case 0: return "va"; case 1: if(programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX) { return "vc"; } else { return "fc"; } break; case 2: if(programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX) { return "vt"; } else { return "ft"; } break; case 3: return "output_"; case 4: return "v"; case 5: return "sampler"; default: throw new openfl_errors_IllegalOperationError("Invalid data!"); } }; openfl_display3D__$internal_AGALConverter.readUInt64 = function(byteArray) { var low = byteArray.readInt(); var high = byteArray.readInt(); return new haxe__$Int64__$_$_$Int64(high,low); }; openfl_display3D__$internal_AGALConverter.convertToGLSL = function(agal,samplerState) { agal.position = 0; agal.__endian = 1; var magic = agal.readByte() & 255; if(magic == 176) { return agal.readUTF(); } if(magic != 160) { throw new openfl_errors_IllegalOperationError("Magic value must be 0xA0, may not be AGAL"); } var version = agal.readInt(); if(version != 1) { throw new openfl_errors_IllegalOperationError("Version must be 1"); } var shaderTypeID = agal.readByte() & 255; if(shaderTypeID != 161) { throw new openfl_errors_IllegalOperationError("Shader type ID must be 0xA1"); } var programType = (agal.readByte() & 255) == 0 ? openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX : openfl_display3D__$internal__$AGALConverter_ProgramType.FRAGMENT; var map = new openfl_display3D__$internal_RegisterMap(); var sb_b = ""; while(true) { var a = agal.position; if(!UInt.gt(openfl_utils_ByteArray.get_length(agal),a)) { break; } var opcode = agal.readInt(); var dest = agal.readUnsignedInt(); var source1 = openfl_display3D__$internal_AGALConverter.readUInt64(agal); var source2 = openfl_display3D__$internal_AGALConverter.readUInt64(agal); var dr = openfl_display3D__$internal__$AGALConverter_DestRegister.parse(dest,programType); var sr1 = openfl_display3D__$internal__$AGALConverter_SourceRegister.parse(source1,programType,dr.mask); var sr2 = openfl_display3D__$internal__$AGALConverter_SourceRegister.parse(source2,programType,dr.mask); sb_b += "\t"; switch(opcode) { case 0: sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + "; // mov"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 1: sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " + " + sr2.toGLSL() + "; // add"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 2: sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " - " + sr2.toGLSL() + "; // sub"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 3: sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL() + "; // mul"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 4: sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " / " + sr2.toGLSL() + "; // div"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 5: var sr = sr1.toGLSL(); if(sr.indexOf(".") > -1) { sb_b += Std.string(dr.toGLSL() + " = 1.0 / " + sr1.toGLSL() + "; // rcp"); } else { sb_b += Std.string(dr.toGLSL() + " = vec4(1) / " + sr1.toGLSL() + "; // rcp"); } map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 6: sb_b += Std.string(dr.toGLSL() + " = min(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // min"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 7: sb_b += Std.string(dr.toGLSL() + " = max(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // max"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 8: sb_b += Std.string(dr.toGLSL() + " = fract(" + sr1.toGLSL() + "); // frc"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 9: sb_b += Std.string(dr.toGLSL() + " = sqrt(" + sr1.toGLSL() + "); // sqrt"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 10: sb_b += Std.string(dr.toGLSL() + " = inversesqrt(" + sr1.toGLSL() + "); // rsq"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 11: sb_b += Std.string(dr.toGLSL() + " = pow(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // pow"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 12: sb_b += Std.string(dr.toGLSL() + " = log2(" + sr1.toGLSL() + "); // log"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 13: sb_b += Std.string(dr.toGLSL() + " = exp2(" + sr1.toGLSL() + "); // exp"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 14: sb_b += Std.string(dr.toGLSL() + " = normalize(" + sr1.toGLSL() + "); // normalize"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 15: sb_b += Std.string(dr.toGLSL() + " = sin(" + sr1.toGLSL() + "); // sin"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 16: sb_b += Std.string(dr.toGLSL() + " = cos(" + sr1.toGLSL() + "); // cos"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 17: sr1.sourceMask = sr2.sourceMask = 7; sb_b += Std.string(dr.toGLSL() + " = cross(vec3(" + sr1.toGLSL() + "), vec3(" + sr2.toGLSL() + ")); // crs"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 18: sr1.sourceMask = sr2.sourceMask = 7; sb_b += Std.string(dr.toGLSL() + " = vec4(dot(vec3(" + sr1.toGLSL() + "), vec3(" + sr2.toGLSL() + ")))" + dr.getWriteMask() + "; // dp3"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 19: sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec4(dot(vec4(" + sr1.toGLSL() + "), vec4(" + sr2.toGLSL() + ")))" + dr.getWriteMask() + "; // dp4"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 20: sb_b += Std.string(dr.toGLSL() + " = abs(" + sr1.toGLSL() + "); // abs"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 21: sb_b += Std.string(dr.toGLSL() + " = -" + sr1.toGLSL() + "; // neg"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 22: sb_b += Std.string(dr.toGLSL() + " = clamp(" + sr1.toGLSL() + ", 0.0, 1.0); // saturate"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 23: var existingUsage = map.getRegisterUsage(sr2); if(existingUsage != openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4 && existingUsage != openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) { sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * mat3(" + sr2.toGLSL(false) + "); // m33"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.MATRIX_4_4); } else { sr1.sourceMask = sr2.sourceMask = 7; sb_b += Std.string(dr.toGLSL() + " = vec3(" + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,0) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,1) + ")," + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,2) + ")); // m33"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,0); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,1); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,2); } break; case 24: var existingUsage1 = map.getRegisterUsage(sr2); if(existingUsage1 != openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4 && existingUsage1 != openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) { sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL(false) + "; // m44"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.MATRIX_4_4); } else { sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec4(" + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,0) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,1) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,2) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,3) + ")); // m44"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,0); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,1); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,2); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,3); } break; case 25: dr.mask &= 7; var existingUsage2 = map.getRegisterUsage(sr2); if(existingUsage2 != openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4 && existingUsage2 != openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) { sb_b += Std.string(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL(false) + "; // m34"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.MATRIX_4_4); } else { sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec3(" + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,0) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,1) + ")," + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,2) + ")); // m34"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,0); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,1); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,2); } break; case 39: sr1.sourceMask = 15; sb_b += Std.string("if (any(lessThan(" + sr1.toGLSL() + ", vec4(0)))) discard;"); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 40: var sampler = openfl_display3D__$internal__$AGALConverter_SamplerRegister.parse(source2,programType); switch(sampler.d) { case 0: if(sampler.t == 2) { sr1.sourceMask = 3; map.addSaR(sampler,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D_ALPHA); sb_b += Std.string("if (" + sampler.toGLSL() + "_alphaEnabled) {\n"); sb_b += Std.string("\t\t" + dr.toGLSL() + " = vec4(texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + ").xyz, texture2D(" + sampler.toGLSL() + "_alpha, " + sr1.toGLSL() + ").x); // tex + alpha\n"); sb_b += "\t} else {\n"; sb_b += Std.string("\t\t" + dr.toGLSL() + " = texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex\n"); sb_b += "\t}"; } else { sr1.sourceMask = 3; map.addSaR(sampler,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D); sb_b += Std.string(dr.toGLSL() + " = texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex"); } break; case 1: if(sampler.t == 2) { sr1.sourceMask = 7; map.addSaR(sampler,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE_ALPHA); sb_b += Std.string("if (" + sampler.toGLSL() + "_alphaEnabled) {\n"); sb_b += Std.string("\t\t" + dr.toGLSL() + " = vec4(textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + ").xyz, textureCube(" + sampler.toGLSL() + "_alpha, " + sr1.toGLSL() + ").x); // tex + alpha\n"); sb_b += "\t} else {\n"; sb_b += Std.string("\t\t" + dr.toGLSL() + " = textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex"); sb_b += "\t}"; } else { sr1.sourceMask = 7; sb_b += Std.string(dr.toGLSL() + " = textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex"); map.addSaR(sampler,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE); } break; } map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); if(samplerState != null) { samplerState[sampler.n] = sampler.toSamplerState(); } break; case 41: sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec4(greaterThanEqual(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // ste"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 42: sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec4(lessThan(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // slt"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 44: sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec4(equal(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // seq"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; case 45: sr1.sourceMask = sr2.sourceMask = 15; sb_b += Std.string(dr.toGLSL() + " = vec4(notEqual(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // sne"); map.addDR(dr,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr1,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); map.addSR(sr2,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); break; default: throw new openfl_errors_IllegalOperationError("Opcode " + opcode); } sb_b += "\n"; } if(openfl_display3D__$internal_AGALConverter.limitedProfile == null) { var version = lime_graphics_opengl_GL.context.getParameter(7938); openfl_display3D__$internal_AGALConverter.limitedProfile = version.indexOf("OpenGL ES") > -1 || version.indexOf("WebGL") > -1; } var glsl_b = ""; glsl_b += Std.string("// AGAL " + (programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX ? "vertex" : "fragment") + " shader\n"); if(openfl_display3D__$internal_AGALConverter.limitedProfile) { glsl_b += "#version 100\n"; glsl_b += "#ifdef GL_FRAGMENT_PRECISION_HIGH\n"; glsl_b += "precision highp float;\n"; glsl_b += "#else\n"; glsl_b += "precision mediump float;\n"; glsl_b += "#endif\n"; } else { glsl_b += "#version 120\n"; } glsl_b += Std.string(map.toGLSL(false)); if(programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX) { glsl_b += "uniform vec4 vcPositionScale;\n"; } glsl_b += "void main() {\n"; glsl_b += Std.string(map.toGLSL(true)); glsl_b += Std.string(sb_b); if(programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX) { glsl_b += "\tgl_Position *= vcPositionScale;\n"; } glsl_b += "}\n"; return glsl_b; }; var openfl_display3D__$internal__$AGALConverter_DestRegister = function() { }; $hxClasses["openfl.display3D._internal._AGALConverter.DestRegister"] = openfl_display3D__$internal__$AGALConverter_DestRegister; openfl_display3D__$internal__$AGALConverter_DestRegister.__name__ = "openfl.display3D._internal._AGALConverter.DestRegister"; openfl_display3D__$internal__$AGALConverter_DestRegister.parse = function(v,programType) { var dr = new openfl_display3D__$internal__$AGALConverter_DestRegister(); dr.programType = programType; dr.type = v >>> 24 & 15; dr.mask = v >>> 16 & 15; dr.n = v & 65535; return dr; }; openfl_display3D__$internal__$AGALConverter_DestRegister.prototype = { mask: null ,n: null ,programType: null ,type: null ,getWriteMask: function() { var str = "."; if((this.mask & 1) != 0) { str += "x"; } if((this.mask & 2) != 0) { str += "y"; } if((this.mask & 4) != 0) { str += "z"; } if((this.mask & 8) != 0) { str += "w"; } return str; } ,toGLSL: function(useMask) { if(useMask == null) { useMask = true; } var str; if(this.type == 3) { str = this.programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX ? "gl_Position" : "gl_FragColor"; } else { str = openfl_display3D__$internal_AGALConverter.prefixFromType(this.type,this.programType) + this.n; } if(useMask && this.mask != 15) { str += this.getWriteMask(); } return str; } ,__class__: openfl_display3D__$internal__$AGALConverter_DestRegister }; var openfl_display3D__$internal__$AGALConverter_ProgramType = $hxEnums["openfl.display3D._internal._AGALConverter.ProgramType"] = { __ename__:"openfl.display3D._internal._AGALConverter.ProgramType",__constructs__:null ,VERTEX: {_hx_name:"VERTEX",_hx_index:0,__enum__:"openfl.display3D._internal._AGALConverter.ProgramType",toString:$estr} ,FRAGMENT: {_hx_name:"FRAGMENT",_hx_index:1,__enum__:"openfl.display3D._internal._AGALConverter.ProgramType",toString:$estr} }; openfl_display3D__$internal__$AGALConverter_ProgramType.__constructs__ = [openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX,openfl_display3D__$internal__$AGALConverter_ProgramType.FRAGMENT]; openfl_display3D__$internal__$AGALConverter_ProgramType.__empty_constructs__ = [openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX,openfl_display3D__$internal__$AGALConverter_ProgramType.FRAGMENT]; var openfl_display3D__$internal_RegisterMap = function() { this.mEntries = []; }; $hxClasses["openfl.display3D._internal.RegisterMap"] = openfl_display3D__$internal_RegisterMap; openfl_display3D__$internal_RegisterMap.__name__ = "openfl.display3D._internal.RegisterMap"; openfl_display3D__$internal_RegisterMap.prototype = { mEntries: null ,add: function(type,name,number,usage) { var _g = 0; var _g1 = this.mEntries; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; if(entry.type == type && entry.name == name && entry.number == number) { if(entry.usage != usage) { throw new openfl_errors_IllegalOperationError("Cannot use register in multiple ways yet (mat4/vec4)"); } return; } } var entry = new openfl_display3D__$internal__$AGALConverter_RegisterMapEntry(); entry.type = type; entry.name = name; entry.number = number; entry.usage = usage; this.mEntries.push(entry); } ,addDR: function(dr,usage) { this.add(dr.type,dr.toGLSL(false),dr.n,usage); } ,addSaR: function(sr,usage) { this.add(sr.type,sr.toGLSL(),sr.n,usage); } ,addSR: function(sr,usage,offset) { if(offset == null) { offset = 0; } if(sr.d != 0) { this.add(sr.itype,openfl_display3D__$internal_AGALConverter.prefixFromType(sr.itype,sr.programType) + sr.n,sr.n,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4); this.add(sr.type,openfl_display3D__$internal_AGALConverter.prefixFromType(sr.type,sr.programType) + sr.o,sr.o,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY); return; } this.add(sr.type,sr.toGLSL(false,offset),sr.n + offset,usage); } ,getRegisterUsage: function(sr) { if(sr.d != 0) { return openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY; } return this.getUsage(sr.type,sr.toGLSL(false),sr.n); } ,getUsage: function(type,name,number) { var _g = 0; var _g1 = this.mEntries; while(_g < _g1.length) { var entry = _g1[_g]; ++_g; if(entry.type == type && entry.name == name && entry.number == number) { return entry.usage; } } return openfl_display3D__$internal__$AGALConverter_RegisterUsage.UNUSED; } ,toGLSL: function(tempRegistersOnly) { this.mEntries.sort(function(a,b) { return a.number - b.number; }); var entry; this.mEntries.sort(function(a,b) { return js_Boot.__cast(a.type , Int) - js_Boot.__cast(b.type , Int); }); var sb_b = ""; var _g = 0; var _g1 = this.mEntries.length; while(_g < _g1) { var i = _g++; entry = this.mEntries[i]; if(tempRegistersOnly && entry.type != 2 || !tempRegistersOnly && entry.type == 2) { continue; } if(entry.type == 3) { continue; } switch(entry.type) { case 0: sb_b += "attribute "; break; case 1: sb_b += "uniform "; break; case 2: sb_b += "\t"; break; case 3: break; case 4: sb_b += "varying "; break; case 5: sb_b += "uniform "; break; default: throw new openfl_errors_IllegalOperationError(); } switch(entry.usage._hx_index) { case 0: lime_utils_Log.info("Missing switch patten: RegisterUsage.UNUSED",{ fileName : "openfl/display3D/_internal/AGALConverter.hx", lineNumber : 750, className : "openfl.display3D._internal.RegisterMap", methodName : "toGLSL"}); break; case 1: sb_b += "vec4 "; break; case 2: sb_b += "mat4 "; break; case 3: sb_b += "sampler2D "; break; case 4: break; case 5: sb_b += "samplerCube "; break; case 6: break; case 7: sb_b += "vec4 "; break; } if(entry.usage == openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D_ALPHA) { sb_b += "sampler2D "; sb_b += Std.string(entry.name); sb_b += ";\n"; sb_b += "uniform "; sb_b += "sampler2D "; sb_b += Std.string(entry.name + "_alpha"); sb_b += ";\n"; sb_b += "uniform "; sb_b += "bool "; sb_b += Std.string(entry.name + "_alphaEnabled"); sb_b += ";\n"; } else if(entry.usage == openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE_ALPHA) { sb_b += "samplerCube "; sb_b += Std.string(entry.name); sb_b += ";\n"; sb_b += "uniform "; sb_b += "samplerCube "; sb_b += Std.string(entry.name + "_alpha"); sb_b += ";\n"; sb_b += "uniform "; sb_b += "bool "; sb_b += Std.string(entry.name + "_alphaEnabled"); sb_b += ";\n"; } else if(entry.usage == openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY) { sb_b += Std.string(entry.name + "[128]"); sb_b += ";\n"; } else { sb_b += Std.string(entry.name); sb_b += ";\n"; } } return sb_b; } ,__class__: openfl_display3D__$internal_RegisterMap }; var openfl_display3D__$internal__$AGALConverter_RegisterMapEntry = function() { }; $hxClasses["openfl.display3D._internal._AGALConverter.RegisterMapEntry"] = openfl_display3D__$internal__$AGALConverter_RegisterMapEntry; openfl_display3D__$internal__$AGALConverter_RegisterMapEntry.__name__ = "openfl.display3D._internal._AGALConverter.RegisterMapEntry"; openfl_display3D__$internal__$AGALConverter_RegisterMapEntry.prototype = { name: null ,number: null ,type: null ,usage: null ,__class__: openfl_display3D__$internal__$AGALConverter_RegisterMapEntry }; var openfl_display3D__$internal__$AGALConverter_RegisterUsage = $hxEnums["openfl.display3D._internal._AGALConverter.RegisterUsage"] = { __ename__:"openfl.display3D._internal._AGALConverter.RegisterUsage",__constructs__:null ,UNUSED: {_hx_name:"UNUSED",_hx_index:0,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,VECTOR_4: {_hx_name:"VECTOR_4",_hx_index:1,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,MATRIX_4_4: {_hx_name:"MATRIX_4_4",_hx_index:2,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,SAMPLER_2D: {_hx_name:"SAMPLER_2D",_hx_index:3,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,SAMPLER_2D_ALPHA: {_hx_name:"SAMPLER_2D_ALPHA",_hx_index:4,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,SAMPLER_CUBE: {_hx_name:"SAMPLER_CUBE",_hx_index:5,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,SAMPLER_CUBE_ALPHA: {_hx_name:"SAMPLER_CUBE_ALPHA",_hx_index:6,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} ,VECTOR_4_ARRAY: {_hx_name:"VECTOR_4_ARRAY",_hx_index:7,__enum__:"openfl.display3D._internal._AGALConverter.RegisterUsage",toString:$estr} }; openfl_display3D__$internal__$AGALConverter_RegisterUsage.__constructs__ = [openfl_display3D__$internal__$AGALConverter_RegisterUsage.UNUSED,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,openfl_display3D__$internal__$AGALConverter_RegisterUsage.MATRIX_4_4,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D_ALPHA,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE_ALPHA,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY]; openfl_display3D__$internal__$AGALConverter_RegisterUsage.__empty_constructs__ = [openfl_display3D__$internal__$AGALConverter_RegisterUsage.UNUSED,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4,openfl_display3D__$internal__$AGALConverter_RegisterUsage.MATRIX_4_4,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_2D_ALPHA,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE,openfl_display3D__$internal__$AGALConverter_RegisterUsage.SAMPLER_CUBE_ALPHA,openfl_display3D__$internal__$AGALConverter_RegisterUsage.VECTOR_4_ARRAY]; var openfl_display3D__$internal__$AGALConverter_SamplerRegister = function() { }; $hxClasses["openfl.display3D._internal._AGALConverter.SamplerRegister"] = openfl_display3D__$internal__$AGALConverter_SamplerRegister; openfl_display3D__$internal__$AGALConverter_SamplerRegister.__name__ = "openfl.display3D._internal._AGALConverter.SamplerRegister"; openfl_display3D__$internal__$AGALConverter_SamplerRegister.parse = function(v,programType) { var sr = new openfl_display3D__$internal__$AGALConverter_SamplerRegister(); sr.programType = programType; var b = 60; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.f = this_low; var b = 56; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.m = this_low; var b = 52; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.w = this_low; var b = 48; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.s = this_low; var b = 44; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.d = this_low; var b = 40; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.t = this_low; var b = 32; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.type = this_low; var b = 16; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 255; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.b = this_low; var b_high = 0; var b_low = 65535; var this_high = v.high & b_high; var this_low = v.low & b_low; sr.n = this_low; return sr; }; openfl_display3D__$internal__$AGALConverter_SamplerRegister.prototype = { b: null ,d: null ,f: null ,m: null ,n: null ,programType: null ,s: null ,t: null ,type: null ,w: null ,toGLSL: function() { var str = openfl_display3D__$internal_AGALConverter.prefixFromType(this.type,this.programType) + this.n; return str; } ,toSamplerState: function() { var wrap; var filter; var mipfilter; switch(this.f) { case 0: filter = 5; break; case 1: filter = 4; break; default: throw new openfl_errors_IllegalOperationError(); } switch(this.m) { case 0: mipfilter = 2; break; case 1: mipfilter = 1; break; case 2: mipfilter = 0; break; default: throw new openfl_errors_IllegalOperationError(); } switch(this.w) { case 0: wrap = 0; break; case 1: wrap = 2; break; default: throw new openfl_errors_IllegalOperationError(); } var ignoreSampler = (this.s & 4) == 4; var centroid = (this.s & 1) == 1; var textureAlpha = this.t == 2; var lodBias = (this.b << 24 >> 24) / 8.0; return new openfl_display__$internal_SamplerState(wrap,filter,mipfilter,lodBias,ignoreSampler,centroid,textureAlpha); } ,__class__: openfl_display3D__$internal__$AGALConverter_SamplerRegister }; var openfl_display3D__$internal__$AGALConverter_SourceRegister = function() { }; $hxClasses["openfl.display3D._internal._AGALConverter.SourceRegister"] = openfl_display3D__$internal__$AGALConverter_SourceRegister; openfl_display3D__$internal__$AGALConverter_SourceRegister.__name__ = "openfl.display3D._internal._AGALConverter.SourceRegister"; openfl_display3D__$internal__$AGALConverter_SourceRegister.parse = function(v,programType,sourceMask) { var sr = new openfl_display3D__$internal__$AGALConverter_SourceRegister(); sr.programType = programType; var b = 63; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 1; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.d = this_low; var b = 48; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 3; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.q = this_low; var b = 40; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.itype = this_low; var b = 32; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 15; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.type = this_low; var b = 24; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 255; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.s = this_low; var b = 16; b &= 63; var a = b == 0 ? new haxe__$Int64__$_$_$Int64(v.high,v.low) : b < 32 ? new haxe__$Int64__$_$_$Int64(v.high >> b,v.high << 32 - b | v.low >>> b) : new haxe__$Int64__$_$_$Int64(v.high >> 31,v.high >> b - 32); var b_high = 0; var b_low = 255; var this_high = a.high & b_high; var this_low = a.low & b_low; sr.o = this_low; var b_high = 0; var b_low = 65535; var this_high = v.high & b_high; var this_low = v.low & b_low; sr.n = this_low; sr.sourceMask = sourceMask; return sr; }; openfl_display3D__$internal__$AGALConverter_SourceRegister.prototype = { d: null ,itype: null ,n: null ,o: null ,programType: null ,q: null ,s: null ,sourceMask: null ,type: null ,toGLSL: function(emitSwizzle,offset) { if(offset == null) { offset = 0; } if(emitSwizzle == null) { emitSwizzle = true; } if(this.type == 3) { if(this.programType == openfl_display3D__$internal__$AGALConverter_ProgramType.VERTEX) { return "gl_Position"; } else { return "gl_FragColor"; } } var fullxyzw = this.s == 228 && this.sourceMask == 15; var swizzle = ""; if(this.type != 5 && !fullxyzw) { if((this.sourceMask & 1) != 0) { switch(this.s & 3) { case 0: swizzle += "x"; break; case 1: swizzle += "y"; break; case 2: swizzle += "z"; break; case 3: swizzle += "w"; break; } } if((this.sourceMask & 2) != 0) { switch(this.s >> 2 & 3) { case 0: swizzle += "x"; break; case 1: swizzle += "y"; break; case 2: swizzle += "z"; break; case 3: swizzle += "w"; break; } } if((this.sourceMask & 4) != 0) { switch(this.s >> 4 & 3) { case 0: swizzle += "x"; break; case 1: swizzle += "y"; break; case 2: swizzle += "z"; break; case 3: swizzle += "w"; break; } } if((this.sourceMask & 8) != 0) { switch(this.s >> 6 & 3) { case 0: swizzle += "x"; break; case 1: swizzle += "y"; break; case 2: swizzle += "z"; break; case 3: swizzle += "w"; break; } } } var str = openfl_display3D__$internal_AGALConverter.prefixFromType(this.type,this.programType); if(this.d == 0) { str += this.n + offset; } else { str += this.o; var indexComponent = ""; switch(this.q) { case 0: indexComponent = "x"; break; case 1: indexComponent = "y"; break; case 2: indexComponent = "z"; break; case 3: indexComponent = "w"; break; } var indexRegister = openfl_display3D__$internal_AGALConverter.prefixFromType(this.itype,this.programType) + this.n + "." + indexComponent; str += "[ int(" + indexRegister + ") +" + offset + "]"; } if(emitSwizzle && swizzle != "") { str += "." + swizzle; } return str; } ,__class__: openfl_display3D__$internal__$AGALConverter_SourceRegister }; var openfl_display3D__$internal_ATFReader = function(data,byteArrayOffset) { this.version = 0; data.position = byteArrayOffset; var signature = data.readUTFBytes(3); data.position = byteArrayOffset; if(signature != "ATF") { throw new openfl_errors_IllegalOperationError("ATF signature not found"); } var length = 0; if(data.b[byteArrayOffset + 6] == 255) { this.version = data.b[byteArrayOffset + 7]; data.position = byteArrayOffset + 8; length = this.__readUInt32(data); } else { this.version = 0; data.position = byteArrayOffset + 3; length = this.__readUInt24(data); } if(UInt.gt(js_Boot.__cast(byteArrayOffset + length , Int),openfl_utils_ByteArray.get_length(data))) { throw new openfl_errors_IllegalOperationError("ATF length exceeds byte array length"); } this.data = data; }; $hxClasses["openfl.display3D._internal.ATFReader"] = openfl_display3D__$internal_ATFReader; openfl_display3D__$internal_ATFReader.__name__ = "openfl.display3D._internal.ATFReader"; openfl_display3D__$internal_ATFReader.prototype = { atfFormat: null ,cubeMap: null ,data: null ,height: null ,mipCount: null ,version: null ,width: null ,readHeader: function(__width,__height,cubeMap) { var tdata = this.data.readUnsignedByte(); var type = tdata >>> 7; if(!cubeMap && type != 0) { throw new openfl_errors_IllegalOperationError("ATF Cube map not expected"); } if(cubeMap && type != 1) { throw new openfl_errors_IllegalOperationError("ATF Cube map expected"); } this.cubeMap = cubeMap; this.atfFormat = tdata & 127; if(this.atfFormat != 3 && this.atfFormat != 5) { lime_utils_Log.warn("Only ATF block compressed textures without JPEG-XR+LZMA are supported",{ fileName : "openfl/display3D/_internal/ATFReader.hx", lineNumber : 96, className : "openfl.display3D._internal.ATFReader", methodName : "readHeader"}); } this.width = 1 << this.data.readUnsignedByte(); this.height = 1 << this.data.readUnsignedByte(); if(this.width != __width || this.height != __height) { throw new openfl_errors_IllegalOperationError("ATF width and height dont match"); } this.mipCount = this.data.readUnsignedByte(); return this.atfFormat == 5; } ,readTextures: function(uploadCallback) { var gpuFormats = this.version < 3 ? 3 : 4; var sideCount = this.cubeMap ? 6 : 1; var _g = 0; var _g1 = sideCount; while(_g < _g1) { var side = _g++; var _g2 = 0; var _g3 = this.mipCount; while(_g2 < _g3) { var level = _g2++; var _g4 = 0; var _g5 = gpuFormats; while(_g4 < _g5) { var gpuFormat = _g4++; var blockLength = this.version == 0 ? this.__readUInt24(this.data) : this.__readUInt32(this.data); if(UInt.gt(this.data.position + blockLength,openfl_utils_ByteArray.get_length(this.data))) { throw new openfl_errors_IllegalOperationError("Block length exceeds ATF file length"); } if(UInt.gt(blockLength,0)) { var bytes = new haxe_io_Bytes(new ArrayBuffer(blockLength)); var this1 = this.data; var bytes1 = openfl_utils_ByteArray.fromBytes(bytes); var offset = 0; var length = blockLength; if(length == null) { length = 0; } if(offset == null) { offset = 0; } this1.readBytes(bytes1,offset,length); uploadCallback(side,level,gpuFormat,this.width >> level,this.height >> level,blockLength,bytes); } } } } } ,__readUInt24: function(data) { var value = data.readUnsignedByte() << 16; value = value | data.readUnsignedByte() << 8; value = value | data.readUnsignedByte(); return value; } ,__readUInt32: function(data) { var value = data.readUnsignedByte() << 24; value = value | data.readUnsignedByte() << 16; value = value | data.readUnsignedByte() << 8; value = value | data.readUnsignedByte(); return value; } ,__class__: openfl_display3D__$internal_ATFReader }; var openfl_display3D__$internal_Context3DState = function() { this.backBufferEnableDepthAndStencil = false; this.blendDestinationAlphaFactor = 9; this.blendSourceAlphaFactor = 2; this.blendDestinationRGBFactor = 9; this.blendSourceRGBFactor = 2; this.colorMaskRed = true; this.colorMaskGreen = true; this.colorMaskBlue = true; this.colorMaskAlpha = true; this.culling = 3; this.depthCompareMode = 4; this.depthMask = true; this.samplerStates = []; this.scissorRectangle = new openfl_geom_Rectangle(); this.stencilCompareMode = 0; this.stencilDepthFail = 5; this.stencilFail = 5; this.stencilPass = 5; this.stencilReadMask = 255; this.stencilReferenceValue = 0; this.stencilTriangleFace = 2; this.stencilWriteMask = 255; this.textures = []; this.__frontFaceGLCCW = true; this.__glBlendEquation = 32774; }; $hxClasses["openfl.display3D._internal.Context3DState"] = openfl_display3D__$internal_Context3DState; openfl_display3D__$internal_Context3DState.__name__ = "openfl.display3D._internal.Context3DState"; openfl_display3D__$internal_Context3DState.prototype = { backBufferEnableDepthAndStencil: null ,blendDestinationAlphaFactor: null ,blendSourceAlphaFactor: null ,blendDestinationRGBFactor: null ,blendSourceRGBFactor: null ,colorMaskRed: null ,colorMaskGreen: null ,colorMaskBlue: null ,colorMaskAlpha: null ,culling: null ,depthCompareMode: null ,depthMask: null ,program: null ,renderToTexture: null ,renderToTextureAntiAlias: null ,renderToTextureDepthStencil: null ,renderToTextureSurfaceSelector: null ,samplerStates: null ,scissorEnabled: null ,scissorRectangle: null ,stencilCompareMode: null ,stencilDepthFail: null ,stencilFail: null ,stencilPass: null ,stencilReadMask: null ,stencilReferenceValue: null ,stencilTriangleFace: null ,stencilWriteMask: null ,textures: null ,shader: null ,__currentGLArrayBuffer: null ,__currentGLElementArrayBuffer: null ,__currentGLFramebuffer: null ,__currentGLTexture2D: null ,__currentGLTextureCubeMap: null ,__enableGLBlend: null ,__enableGLCullFace: null ,__enableGLDepthTest: null ,__enableGLScissorTest: null ,__enableGLStencilTest: null ,__frontFaceGLCCW: null ,__glBlendEquation: null ,__primaryGLFramebuffer: null ,__rttDepthGLRenderbuffer: null ,__rttGLFramebuffer: null ,__rttGLRenderbuffer: null ,__rttStencilGLRenderbuffer: null ,__class__: openfl_display3D__$internal_Context3DState }; var openfl_display3D_textures_TextureBase = function(context) { openfl_events_EventDispatcher.call(this); this.__context = context; var gl = this.__context.gl; this.__textureID = gl.createTexture(); this.__textureContext = this.__context.__context; if(openfl_display3D_textures_TextureBase.__supportsBGRA == null) { openfl_display3D_textures_TextureBase.__textureInternalFormat = gl.RGBA; var bgraExtension = null; if(bgraExtension != null) { openfl_display3D_textures_TextureBase.__supportsBGRA = true; openfl_display3D_textures_TextureBase.__textureFormat = bgraExtension.BGRA_EXT; if(context.__context.type == "opengles") { openfl_display3D_textures_TextureBase.__textureInternalFormat = bgraExtension.BGRA_EXT; } } else { openfl_display3D_textures_TextureBase.__supportsBGRA = false; openfl_display3D_textures_TextureBase.__textureFormat = gl.RGBA; } openfl_display3D_textures_TextureBase.__compressedFormats = new haxe_ds_IntMap(); openfl_display3D_textures_TextureBase.__compressedFormatsAlpha = new haxe_ds_IntMap(); var dxtExtension = gl.getExtension("WEBGL_compressed_texture_s3tc"); var etc1Extension = gl.getExtension("WEBGL_compressed_texture_etc1"); var pvrtcExtension = gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"); if(dxtExtension != null) { var v = dxtExtension.COMPRESSED_RGBA_S3TC_DXT1_EXT; openfl_display3D_textures_TextureBase.__compressedFormats.h[0] = v; var v = dxtExtension.COMPRESSED_RGBA_S3TC_DXT5_EXT; openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[0] = v; } if(etc1Extension != null) { var v = etc1Extension.COMPRESSED_RGB_ETC1_WEBGL; openfl_display3D_textures_TextureBase.__compressedFormats.h[2] = v; var v = etc1Extension.COMPRESSED_RGB_ETC1_WEBGL; openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[2] = v; } if(pvrtcExtension != null) { var v = pvrtcExtension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; openfl_display3D_textures_TextureBase.__compressedFormats.h[1] = v; var v = pvrtcExtension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[1] = v; } } this.__internalFormat = openfl_display3D_textures_TextureBase.__textureInternalFormat; this.__format = openfl_display3D_textures_TextureBase.__textureFormat; }; $hxClasses["openfl.display3D.textures.TextureBase"] = openfl_display3D_textures_TextureBase; openfl_display3D_textures_TextureBase.__name__ = "openfl.display3D.textures.TextureBase"; openfl_display3D_textures_TextureBase.__compressedFormats = null; openfl_display3D_textures_TextureBase.__compressedFormatsAlpha = null; openfl_display3D_textures_TextureBase.__textureFormat = null; openfl_display3D_textures_TextureBase.__textureInternalFormat = null; openfl_display3D_textures_TextureBase.__super__ = openfl_events_EventDispatcher; openfl_display3D_textures_TextureBase.prototype = $extend(openfl_events_EventDispatcher.prototype,{ __alphaTexture: null ,__context: null ,__format: null ,__glDepthRenderbuffer: null ,__glFramebuffer: null ,__glStencilRenderbuffer: null ,__height: null ,__internalFormat: null ,__optimizeForRenderToTexture: null ,__samplerState: null ,__streamingLevels: null ,__textureContext: null ,__textureID: null ,__textureTarget: null ,__width: null ,dispose: function() { var gl = this.__context.gl; if(this.__alphaTexture != null) { this.__alphaTexture.dispose(); this.__alphaTexture = null; } if(this.__textureID != null) { gl.deleteTexture(this.__textureID); this.__textureID = null; } if(this.__glFramebuffer != null) { gl.deleteFramebuffer(this.__glFramebuffer); this.__glFramebuffer = null; } if(this.__glDepthRenderbuffer != null) { gl.deleteRenderbuffer(this.__glDepthRenderbuffer); this.__glDepthRenderbuffer = null; } if(this.__glStencilRenderbuffer != null) { gl.deleteRenderbuffer(this.__glStencilRenderbuffer); this.__glStencilRenderbuffer = null; } } ,__getGLFramebuffer: function(enableDepthAndStencil,antiAlias,surfaceSelector) { var gl = this.__context.gl; if(this.__glFramebuffer == null) { this.__glFramebuffer = gl.createFramebuffer(); this.__context.__bindGLFramebuffer(this.__glFramebuffer); gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,this.__textureID,0); if(this.__context.__enableErrorChecking) { var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER); if(code != gl.FRAMEBUFFER_COMPLETE) { lime_utils_Log.warn("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "openfl/display3D/textures/TextureBase.hx", lineNumber : 201, className : "openfl.display3D.textures.TextureBase", methodName : "__getGLFramebuffer"}); } } } if(enableDepthAndStencil && this.__glDepthRenderbuffer == null) { this.__context.__bindGLFramebuffer(this.__glFramebuffer); if(openfl_display3D_Context3D.__glDepthStencil != 0) { this.__glDepthRenderbuffer = gl.createRenderbuffer(); this.__glStencilRenderbuffer = this.__glDepthRenderbuffer; gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glDepthRenderbuffer); gl.renderbufferStorage(gl.RENDERBUFFER,openfl_display3D_Context3D.__glDepthStencil,this.__width,this.__height); gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_STENCIL_ATTACHMENT,gl.RENDERBUFFER,this.__glDepthRenderbuffer); } else { this.__glDepthRenderbuffer = gl.createRenderbuffer(); this.__glStencilRenderbuffer = gl.createRenderbuffer(); gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glDepthRenderbuffer); gl.renderbufferStorage(gl.RENDERBUFFER,gl.DEPTH_COMPONENT16,this.__width,this.__height); gl.bindRenderbuffer(gl.RENDERBUFFER,this.__glStencilRenderbuffer); gl.renderbufferStorage(gl.RENDERBUFFER,gl.STENCIL_INDEX8,this.__width,this.__height); gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_ATTACHMENT,gl.RENDERBUFFER,this.__glDepthRenderbuffer); gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.STENCIL_ATTACHMENT,gl.RENDERBUFFER,this.__glStencilRenderbuffer); } if(this.__context.__enableErrorChecking) { var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER); if(code != gl.FRAMEBUFFER_COMPLETE) { lime_utils_Log.warn("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "openfl/display3D/textures/TextureBase.hx", lineNumber : 239, className : "openfl.display3D.textures.TextureBase", methodName : "__getGLFramebuffer"}); } } gl.bindRenderbuffer(gl.RENDERBUFFER,null); } return this.__glFramebuffer; } ,__getImage: function(bitmapData) { var image = bitmapData.image; if(!bitmapData.__isValid || image == null) { return null; } lime__$internal_graphics_ImageCanvasUtil.sync(image,false); var gl = this.__context.gl; if(image.type != lime_graphics_ImageType.DATA && !image.get_premultiplied()) { gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1); } else if(!image.get_premultiplied() && image.get_transparent()) { gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0); image = image.clone(); image.set_premultiplied(true); } if(image.get_format() != 0) { image = image.clone(); image.set_format(0); image.buffer.premultiplied = true; } return image; } ,__getTexture: function() { return this.__textureID; } ,__setSamplerState: function(state) { if(!state.equals(this.__samplerState)) { var gl = this.__context.gl; if(this.__textureTarget == this.__context.gl.TEXTURE_CUBE_MAP) { this.__context.__bindGLTextureCubeMap(this.__textureID); } else { this.__context.__bindGLTexture2D(this.__textureID); } var wrapModeS = 0; var wrapModeT = 0; switch(state.wrap) { case 0: wrapModeS = gl.CLAMP_TO_EDGE; wrapModeT = gl.CLAMP_TO_EDGE; break; case 1: wrapModeS = gl.CLAMP_TO_EDGE; wrapModeT = gl.REPEAT; break; case 2: wrapModeS = gl.REPEAT; wrapModeT = gl.REPEAT; break; case 3: wrapModeS = gl.REPEAT; wrapModeT = gl.CLAMP_TO_EDGE; break; default: throw new openfl_errors_Error("wrap bad enum"); } var magFilter = 0; var minFilter = 0; if(state.filter == 5) { magFilter = gl.NEAREST; } else { magFilter = gl.LINEAR; } switch(state.mipfilter) { case 0: minFilter = state.filter == 5 ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR_MIPMAP_LINEAR; break; case 1: minFilter = state.filter == 5 ? gl.NEAREST_MIPMAP_NEAREST : gl.LINEAR_MIPMAP_NEAREST; break; case 2: minFilter = state.filter == 5 ? gl.NEAREST : gl.LINEAR; break; default: throw new openfl_errors_Error("mipfiter bad enum"); } gl.texParameteri(this.__textureTarget,gl.TEXTURE_MIN_FILTER,minFilter); gl.texParameteri(this.__textureTarget,gl.TEXTURE_MAG_FILTER,magFilter); gl.texParameteri(this.__textureTarget,gl.TEXTURE_WRAP_S,wrapModeS); gl.texParameteri(this.__textureTarget,gl.TEXTURE_WRAP_T,wrapModeT); var tmp = state.lodBias != 0.0; if(this.__samplerState == null) { this.__samplerState = state.clone(); } this.__samplerState.copyFrom(state); return true; } return false; } ,__uploadFromImage: function(image) { var gl = this.__context.gl; var internalFormat; var format; if(this.__textureTarget != gl.TEXTURE_2D) { return; } if(image.buffer.bitsPerPixel == 1) { internalFormat = gl.ALPHA; format = gl.ALPHA; } else { internalFormat = openfl_display3D_textures_TextureBase.__textureInternalFormat; format = openfl_display3D_textures_TextureBase.__textureFormat; } this.__context.__bindGLTexture2D(this.__textureID); if(image.type != lime_graphics_ImageType.DATA && !image.get_premultiplied()) { gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1); } else if(!image.get_premultiplied() && image.get_transparent()) { gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1); } if(image.type == lime_graphics_ImageType.DATA) { lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,image.buffer.width,image.buffer.height,0,format,gl.UNSIGNED_BYTE,image.get_data()); } else { lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,format,gl.UNSIGNED_BYTE,image.get_src()); } this.__context.__bindGLTexture2D(null); } ,__class__: openfl_display3D_textures_TextureBase }); var openfl_display3D_textures_CubeTexture = function(context,size,format,optimizeForRenderToTexture,streamingLevels) { openfl_display3D_textures_TextureBase.call(this,context); this.__size = size; this.__width = this.__height = this.__size; this.__optimizeForRenderToTexture = optimizeForRenderToTexture; this.__streamingLevels = streamingLevels; this.__textureTarget = this.__context.gl.TEXTURE_CUBE_MAP; this.__uploadedSides = 0; }; $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,{ __framebufferSurface: null ,__size: null ,__uploadedSides: null ,uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) { if(async == null) { async = false; } var _gthis = this; if(!async) { this.__uploadCompressedTextureFromByteArray(data,byteArrayOffset); } else { haxe_Timer.delay(function() { _gthis.__uploadCompressedTextureFromByteArray(data,byteArrayOffset); var event = null; event = new openfl_events_Event("textureReady"); _gthis.dispatchEvent(event); },1); } } ,uploadFromBitmapData: function(source,side,miplevel,generateMipmap) { if(generateMipmap == null) { generateMipmap = false; } if(miplevel == null) { miplevel = 0; } if(source == null) { return; } var size = this.__size >> miplevel; if(size == 0) { return; } var image = this.__getImage(source); if(image == null) { return; } if(miplevel == 0 && image.buffer != null && image.buffer.data == null && image.buffer.get_src() != null) { var gl = this.__context.gl; var size = this.__size >> miplevel; if(size == 0) { return; } var target = this.__sideToTarget(side); this.__context.__bindGLTextureCubeMap(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,target,miplevel,this.__internalFormat,this.__format,gl.UNSIGNED_BYTE,image.buffer.get_src()); this.__context.__bindGLTextureCubeMap(null); this.__uploadedSides |= 1 << side; return; } this.uploadFromTypedArray(image.get_data(),side,miplevel); } ,uploadFromByteArray: function(data,byteArrayOffset,side,miplevel) { if(miplevel == null) { miplevel = 0; } if(byteArrayOffset == 0) { this.uploadFromTypedArray(data.b,side,miplevel); return; } var elements = null; var array = null; var vector = null; var view = null; var buffer = openfl_utils_ByteArray.toArrayBuffer(data); var byteoffset = byteArrayOffset; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,len); } } else { this1 = null; } this.uploadFromTypedArray(this1,side,miplevel); } ,uploadFromTypedArray: function(data,side,miplevel) { if(miplevel == null) { miplevel = 0; } if(data == null) { return; } var gl = this.__context.gl; var size = this.__size >> miplevel; if(size == 0) { return; } var target = this.__sideToTarget(side); this.__context.__bindGLTextureCubeMap(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,target,miplevel,this.__internalFormat,size,size,0,this.__format,gl.UNSIGNED_BYTE,data); this.__context.__bindGLTextureCubeMap(null); this.__uploadedSides |= 1 << side; } ,__getGLFramebuffer: function(enableDepthAndStencil,antiAlias,surfaceSelector) { var gl = this.__context.gl; if(this.__glFramebuffer == null) { this.__glFramebuffer = gl.createFramebuffer(); this.__framebufferSurface = -1; } if(this.__framebufferSurface != surfaceSelector) { this.__framebufferSurface = surfaceSelector; this.__context.__bindGLFramebuffer(this.__glFramebuffer); gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_CUBE_MAP_POSITIVE_X + surfaceSelector,this.__textureID,0); if(this.__context.__enableErrorChecking) { var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER); if(code != gl.FRAMEBUFFER_COMPLETE) { lime_utils_Log.error("Error: Context3D.setRenderToTexture status:" + code + " width:" + this.__width + " height:" + this.__height,{ fileName : "openfl/display3D/textures/CubeTexture.hx", lineNumber : 279, className : "openfl.display3D.textures.CubeTexture", methodName : "__getGLFramebuffer"}); } } } return openfl_display3D_textures_TextureBase.prototype.__getGLFramebuffer.call(this,enableDepthAndStencil,antiAlias,surfaceSelector); } ,__setSamplerState: function(state) { if(openfl_display3D_textures_TextureBase.prototype.__setSamplerState.call(this,state)) { var gl = this.__context.gl; if(state.mipfilter != 2 && !this.__samplerState.mipmapGenerated) { gl.generateMipmap(gl.TEXTURE_CUBE_MAP); this.__samplerState.mipmapGenerated = true; } if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy != 0) { var aniso; switch(state.filter) { case 0: aniso = 16; break; case 1: aniso = 2; break; case 2: aniso = 4; break; case 3: aniso = 8; break; default: aniso = 1; } if(aniso > openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy) { aniso = openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy; } gl.texParameterf(gl.TEXTURE_CUBE_MAP,openfl_display3D_Context3D.__glTextureMaxAnisotropy,aniso); } return true; } return false; } ,__sideToTarget: function(side) { var gl = this.__context.gl; switch(side) { case 0: return gl.TEXTURE_CUBE_MAP_POSITIVE_X; case 1: return gl.TEXTURE_CUBE_MAP_NEGATIVE_X; case 2: return gl.TEXTURE_CUBE_MAP_POSITIVE_Y; case 3: return gl.TEXTURE_CUBE_MAP_NEGATIVE_Y; case 4: return gl.TEXTURE_CUBE_MAP_POSITIVE_Z; case 5: return gl.TEXTURE_CUBE_MAP_NEGATIVE_Z; default: throw new openfl_errors_IllegalOperationError(); } } ,__uploadCompressedTextureFromByteArray: function(data,byteArrayOffset) { var _gthis = this; var reader = new openfl_display3D__$internal_ATFReader(data,byteArrayOffset); var alpha = reader.readHeader(this.__size,this.__size,true); var gl = this.__context.gl; this.__context.__bindGLTextureCubeMap(this.__textureID); var hasTexture = false; reader.readTextures(function(side,level,gpuFormat,width,height,blockLength,bytes) { var format = alpha ? openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[gpuFormat] : openfl_display3D_textures_TextureBase.__compressedFormats.h[gpuFormat]; if(format == 0) { return; } hasTexture = true; var target = _gthis.__sideToTarget(side); _gthis.__format = format; _gthis.__internalFormat = format; if(alpha && gpuFormat == 2) { var size = blockLength / 2 | 0; var elements = null; var array = null; var vector = null; var view = null; var buffer = bytes.b.buffer; var byteoffset = 0; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(size == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,size); } } else { this1 = null; } lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,target,level,_gthis.__internalFormat,width,height,0,this1); var alphaTexture = new openfl_display3D_textures_CubeTexture(_gthis.__context,_gthis.__size,3,_gthis.__optimizeForRenderToTexture,_gthis.__streamingLevels); alphaTexture.__format = format; alphaTexture.__internalFormat = format; _gthis.__context.__bindGLTextureCubeMap(alphaTexture.__textureID); var elements = null; var array = null; var vector = null; var view = null; var buffer = bytes.b.buffer; var byteoffset = size; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(size == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,size); } } else { this1 = null; } lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,target,level,alphaTexture.__internalFormat,width,height,0,this1); _gthis.__alphaTexture = alphaTexture; } else { var elements = null; var array = null; var vector = null; var view = null; var buffer = bytes.b.buffer; var byteoffset = 0; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(blockLength == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,blockLength); } } else { this1 = null; } lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,target,level,_gthis.__internalFormat,width,height,0,this1); } }); if(!hasTexture) { var elements = this.__size * this.__size * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(0),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data); var elements = this.__size * this.__size * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(1),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data); var elements = this.__size * this.__size * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(2),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data); var elements = this.__size * this.__size * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(3),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data); var elements = this.__size * this.__size * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(4),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data); var elements = this.__size * this.__size * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__sideToTarget(5),0,this.__internalFormat,this.__size,this.__size,0,this.__format,gl.UNSIGNED_BYTE,data); } this.__context.__bindGLTextureCubeMap(null); } ,__class__: openfl_display3D_textures_CubeTexture }); var openfl_display3D_textures_RectangleTexture = function(context,width,height,format,optimizeForRenderToTexture) { openfl_display3D_textures_TextureBase.call(this,context); this.__width = width; this.__height = height; this.__optimizeForRenderToTexture = optimizeForRenderToTexture; this.__textureTarget = this.__context.gl.TEXTURE_2D; this.uploadFromTypedArray(null); if(optimizeForRenderToTexture) { this.__getGLFramebuffer(true,0,0); } }; $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,{ uploadFromBitmapData: function(source) { if(source == null) { return; } var image = this.__getImage(source); if(image == null) { return; } if(image.buffer != null && image.buffer.data == null && image.buffer.get_src() != null) { var gl = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__format,gl.UNSIGNED_BYTE,image.buffer.get_src()); this.__context.__bindGLTexture2D(null); return; } this.uploadFromTypedArray(image.get_data()); } ,uploadFromByteArray: function(data,byteArrayOffset) { if(byteArrayOffset == 0) { this.uploadFromTypedArray(data.b); return; } var elements = null; var array = null; var vector = null; var view = null; var buffer = openfl_utils_ByteArray.toArrayBuffer(data); var byteoffset = byteArrayOffset; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,len); } } else { this1 = null; } this.uploadFromTypedArray(this1); } ,uploadFromTypedArray: function(data) { var gl = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,data); this.__context.__bindGLTexture2D(null); } ,__setSamplerState: function(state) { if(openfl_display3D_textures_TextureBase.prototype.__setSamplerState.call(this,state)) { var gl = this.__context.gl; if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy != 0) { var aniso; switch(state.filter) { case 0: aniso = 16; break; case 1: aniso = 2; break; case 2: aniso = 4; break; case 3: aniso = 8; break; default: aniso = 1; } if(aniso > openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy) { aniso = openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy; } gl.texParameterf(gl.TEXTURE_2D,openfl_display3D_Context3D.__glTextureMaxAnisotropy,aniso); } return true; } return false; } ,__class__: openfl_display3D_textures_RectangleTexture }); var openfl_display3D_textures_Texture = function(context,width,height,format,optimizeForRenderToTexture,streamingLevels) { openfl_display3D_textures_TextureBase.call(this,context); this.__width = width; this.__height = height; this.__optimizeForRenderToTexture = optimizeForRenderToTexture; this.__streamingLevels = streamingLevels; var gl = this.__context.gl; this.__textureTarget = gl.TEXTURE_2D; this.__context.__bindGLTexture2D(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,null); this.__context.__bindGLTexture2D(null); if(optimizeForRenderToTexture) { this.__getGLFramebuffer(true,0,0); } }; $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,{ uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) { if(async == null) { async = false; } var _gthis = this; if(!async) { this.__uploadCompressedTextureFromByteArray(data,byteArrayOffset); } else { haxe_Timer.delay(function() { _gthis.__uploadCompressedTextureFromByteArray(data,byteArrayOffset); var event = null; event = new openfl_events_Event("textureReady"); _gthis.dispatchEvent(event); },1); } } ,uploadFromBitmapData: function(source,miplevel,generateMipmap) { if(generateMipmap == null) { generateMipmap = false; } if(miplevel == null) { miplevel = 0; } if(source == null) { return; } var width = this.__width >> miplevel; var height = this.__height >> miplevel; if(width == 0 && height == 0) { return; } if(width == 0) { width = 1; } if(height == 0) { height = 1; } if(source.width != width || source.height != height) { var copy = new openfl_display_BitmapData(width,height,true,0); copy.draw(source); source = copy; } var image = this.__getImage(source); if(image == null) { return; } if(miplevel == 0 && image.buffer != null && image.buffer.data == null && image.buffer.get_src() != null) { var gl = this.__context.gl; var width = this.__width >> miplevel; var height = this.__height >> miplevel; if(width == 0 && height == 0) { return; } if(width == 0) { width = 1; } if(height == 0) { height = 1; } this.__context.__bindGLTexture2D(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,miplevel,this.__internalFormat,this.__format,gl.UNSIGNED_BYTE,image.buffer.get_src()); this.__context.__bindGLTexture2D(null); return; } this.uploadFromTypedArray(image.get_data(),miplevel); } ,uploadFromByteArray: function(data,byteArrayOffset,miplevel) { if(miplevel == null) { miplevel = 0; } if(byteArrayOffset == 0) { this.uploadFromTypedArray(data.b,miplevel); return; } var elements = null; var array = null; var vector = null; var view = null; var buffer = openfl_utils_ByteArray.toArrayBuffer(data); var byteoffset = byteArrayOffset; var len = null; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,len); } } else { this1 = null; } this.uploadFromTypedArray(this1,miplevel); } ,uploadFromTypedArray: function(data,miplevel) { if(miplevel == null) { miplevel = 0; } if(data == null) { return; } var gl = this.__context.gl; var width = this.__width >> miplevel; var height = this.__height >> miplevel; if(width == 0 && height == 0) { return; } if(width == 0) { width = 1; } if(height == 0) { height = 1; } this.__context.__bindGLTexture2D(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,miplevel,this.__internalFormat,width,height,0,this.__format,gl.UNSIGNED_BYTE,data); this.__context.__bindGLTexture2D(null); } ,__setSamplerState: function(state) { if(openfl_display3D_textures_TextureBase.prototype.__setSamplerState.call(this,state)) { var gl = this.__context.gl; if(state.mipfilter != 2 && !this.__samplerState.mipmapGenerated) { gl.generateMipmap(gl.TEXTURE_2D); this.__samplerState.mipmapGenerated = true; } if(openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy != 0) { var aniso; switch(state.filter) { case 0: aniso = 16; break; case 1: aniso = 2; break; case 2: aniso = 4; break; case 3: aniso = 8; break; default: aniso = 1; } if(aniso > openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy) { aniso = openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy; } gl.texParameterf(gl.TEXTURE_2D,openfl_display3D_Context3D.__glTextureMaxAnisotropy,aniso); } return true; } return false; } ,__uploadCompressedTextureFromByteArray: function(data,byteArrayOffset) { var _gthis = this; var reader = new openfl_display3D__$internal_ATFReader(data,byteArrayOffset); var alpha = reader.readHeader(this.__width,this.__height,false); var context = this.__context; var gl = context.gl; this.__context.__bindGLTexture2D(this.__textureID); var hasTexture = false; reader.readTextures(function(target,level,gpuFormat,width,height,blockLength,bytes) { var format = alpha ? openfl_display3D_textures_TextureBase.__compressedFormatsAlpha.h[gpuFormat] : openfl_display3D_textures_TextureBase.__compressedFormats.h[gpuFormat]; if(format == 0) { return; } hasTexture = true; _gthis.__format = format; _gthis.__internalFormat = format; if(alpha && gpuFormat == 2) { var size = blockLength / 2 | 0; var elements = null; var array = null; var vector = null; var view = null; var buffer = bytes.b.buffer; var byteoffset = 0; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(size == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,size); } } else { this1 = null; } lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,_gthis.__textureTarget,level,_gthis.__internalFormat,width,height,0,this1); var alphaTexture = new openfl_display3D_textures_Texture(_gthis.__context,_gthis.__width,_gthis.__height,3,_gthis.__optimizeForRenderToTexture,_gthis.__streamingLevels); alphaTexture.__format = format; alphaTexture.__internalFormat = format; _gthis.__context.__bindGLTexture2D(alphaTexture.__textureID); var elements = null; var array = null; var vector = null; var view = null; var buffer = bytes.b.buffer; var byteoffset = size; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(size == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,size); } } else { this1 = null; } lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,alphaTexture.__textureTarget,level,alphaTexture.__internalFormat,width,height,0,this1); _gthis.__alphaTexture = alphaTexture; } else { var elements = null; var array = null; var vector = null; var view = null; var buffer = bytes.b.buffer; var byteoffset = 0; if(byteoffset == null) { byteoffset = 0; } var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(blockLength == null) { this1 = new Uint8Array(buffer,byteoffset); } else { this1 = new Uint8Array(buffer,byteoffset,blockLength); } } else { this1 = null; } lime_graphics_WebGLRenderContext.compressedTexImage2D(gl,_gthis.__textureTarget,level,_gthis.__internalFormat,width,height,0,this1); } }); if(!hasTexture) { var elements = this.__width * this.__height * 4; var array = null; var vector = null; var view = null; var buffer = null; var len = null; var this1; if(elements != null) { this1 = new Uint8Array(elements); } else if(array != null) { this1 = new Uint8Array(array); } else if(vector != null) { this1 = new Uint8Array(vector.__array); } else if(view != null) { this1 = new Uint8Array(view); } else if(buffer != null) { if(len == null) { this1 = new Uint8Array(buffer,0); } else { this1 = new Uint8Array(buffer,0,len); } } else { this1 = null; } var data = this1; lime_graphics_WebGLRenderContext.texImage2D(gl,this.__textureTarget,0,this.__internalFormat,this.__width,this.__height,0,this.__format,gl.UNSIGNED_BYTE,data); } this.__context.__bindGLTexture2D(null); } ,__class__: openfl_display3D_textures_Texture }); var openfl_display3D_textures_VideoTexture = function(context) { openfl_display3D_textures_TextureBase.call(this,context); this.__textureTarget = this.__context.gl.TEXTURE_2D; }; $hxClasses["openfl.display3D.textures.VideoTexture"] = openfl_display3D_textures_VideoTexture; openfl_display3D_textures_VideoTexture.__name__ = "openfl.display3D.textures.VideoTexture"; openfl_display3D_textures_VideoTexture.__super__ = openfl_display3D_textures_TextureBase; openfl_display3D_textures_VideoTexture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{ videoHeight: null ,videoWidth: null ,__cacheTime: null ,__netStream: null ,attachNetStream: function(netStream) { var _gthis = this; if(this.__netStream != null) { this.__netStream.__video.removeEventListener("canplay",$bind(this,this.__onCanPlay),false); } this.__cacheTime = -1; this.__netStream = netStream; if(this.__netStream != null) { if(this.__netStream.__video.readyState >= 2) { haxe_Timer.delay(function() { _gthis.__textureReady(); },0); } else { this.__netStream.__video.addEventListener("canplay",$bind(this,this.__onCanPlay),false); } } } ,dispose: function() { if(this.__netStream != null && this.__netStream.__video != null) { this.__netStream.__video.removeEventListener("timeupdate",$bind(this,this.__onTimeUpdate)); } openfl_display3D_textures_TextureBase.prototype.dispose.call(this); } ,__onCanPlay: function(_) { this.__netStream.__video.addEventListener("timeupdate",$bind(this,this.__onTimeUpdate)); this.__textureReady(); } ,__onTimeUpdate: function(_) { if(this.__netStream != null && this.__netStream.__video.currentTime != this.__cacheTime && this.__netStream.__video.readyState >= 2) { this.__textureReady(); } } ,__getTexture: function() { if(this.__netStream.__video.currentTime != this.__cacheTime && this.__netStream.__video.readyState >= 2) { var gl = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,this.__netStream.__video); this.__cacheTime = this.__netStream.__video.currentTime; } return this.__textureID; } ,__textureReady: function() { this.videoWidth = this.__netStream.__video.videoWidth; this.videoHeight = this.__netStream.__video.videoHeight; var event = null; event = new openfl_events_Event("textureReady"); this.dispatchEvent(event); } ,__class__: openfl_display3D_textures_VideoTexture }); var openfl_errors_Error = function(message,id) { if(id == null) { id = 0; } if(message == null) { message = ""; } haxe_Exception.call(this,message); this.errorID = id; this.name = "Error"; this.__skipStack++; }; $hxClasses["openfl.errors.Error"] = openfl_errors_Error; openfl_errors_Error.__name__ = "openfl.errors.Error"; openfl_errors_Error.__super__ = haxe_Exception; openfl_errors_Error.prototype = $extend(haxe_Exception.prototype,{ errorID: null ,name: null ,getStackTrace: function() { return haxe_CallStack.toString(haxe_CallStack.exceptionStack()); } ,toString: function() { if(this.get_message() != null) { return this.get_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"; this.__skipStack++; }; $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"; this.__skipStack++; }; $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(message,id) { if(id == null) { id = 0; } openfl_errors_IOError.call(this,"End of file was encountered"); this.name = "EOFError"; this.errorID = 2030; this.__skipStack++; }; $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_IllegalOperationError = function(message) { if(message == null) { message = ""; } openfl_errors_Error.call(this,message,0); this.name = "IllegalOperationError"; this.__skipStack++; }; $hxClasses["openfl.errors.IllegalOperationError"] = openfl_errors_IllegalOperationError; openfl_errors_IllegalOperationError.__name__ = "openfl.errors.IllegalOperationError"; openfl_errors_IllegalOperationError.__super__ = openfl_errors_Error; openfl_errors_IllegalOperationError.prototype = $extend(openfl_errors_Error.prototype,{ __class__: openfl_errors_IllegalOperationError }); var openfl_errors_RangeError = function(message) { if(message == null) { message = ""; } openfl_errors_Error.call(this,message,0); this.name = "RangeError"; this.__skipStack++; }; $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"; this.__skipStack++; }; $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; } ,__init: function() { this.target = null; this.currentTarget = null; this.bubbles = false; this.cancelable = false; this.eventPhase = 2; this.__isCanceled = false; this.__isCanceledNow = false; this.__preventDefault = false; } ,__class__: openfl_events_Event }; var openfl_events_AccelerometerEvent = function(type,bubbles,cancelable,timestamp,accelerationX,accelerationY,accelerationZ) { if(accelerationZ == null) { accelerationZ = 0; } if(accelerationY == null) { accelerationY = 0; } if(accelerationX == null) { accelerationX = 0; } if(timestamp == null) { timestamp = 0; } if(cancelable == null) { cancelable = false; } if(bubbles == null) { bubbles = false; } openfl_events_Event.call(this,type,bubbles,cancelable); this.timestamp = timestamp; this.accelerationX = accelerationX; this.accelerationY = accelerationY; this.accelerationZ = accelerationZ; }; $hxClasses["openfl.events.AccelerometerEvent"] = openfl_events_AccelerometerEvent; openfl_events_AccelerometerEvent.__name__ = "openfl.events.AccelerometerEvent"; openfl_events_AccelerometerEvent.__super__ = openfl_events_Event; openfl_events_AccelerometerEvent.prototype = $extend(openfl_events_Event.prototype,{ accelerationX: null ,accelerationY: null ,accelerationZ: null ,timestamp: null ,clone: function() { var event = new openfl_events_AccelerometerEvent(this.type,this.bubbles,this.cancelable,this.timestamp,this.accelerationX,this.accelerationY,this.accelerationZ); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("AccelerometerEvent",["type","bubbles","cancelable","timestamp","accelerationX","accelerationY","accelerationZ"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.timestamp = 0; this.accelerationX = 0; this.accelerationY = 0; this.accelerationZ = 0; } ,__class__: openfl_events_AccelerometerEvent }); 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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.activating = false; } ,__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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.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"]); } ,__init: function() { openfl_events_TextEvent.prototype.__init.call(this); this.errorID = 0; } ,__class__: openfl_events_ErrorEvent }); var openfl_events_AsyncErrorEvent = function(type,bubbles,cancelable,text,error) { if(text == null) { text = ""; } if(cancelable == null) { cancelable = false; } if(bubbles == null) { bubbles = false; } openfl_events_ErrorEvent.call(this,type,bubbles,cancelable); this.text = text; this.error = error; }; $hxClasses["openfl.events.AsyncErrorEvent"] = openfl_events_AsyncErrorEvent; openfl_events_AsyncErrorEvent.__name__ = "openfl.events.AsyncErrorEvent"; openfl_events_AsyncErrorEvent.__super__ = openfl_events_ErrorEvent; openfl_events_AsyncErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{ error: null ,clone: function() { var event = new openfl_events_AsyncErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.error); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("AsyncErrorEvent",["type","bubbles","cancelable","text","error"]); } ,__init: function() { openfl_events_ErrorEvent.prototype.__init.call(this); this.text = ""; this.error = null; } ,__class__: openfl_events_AsyncErrorEvent }); var openfl_events__$EventDispatcher_DispatchIterator = function(list) { this.active = false; this.reset(list); }; $hxClasses["openfl.events._EventDispatcher.DispatchIterator"] = openfl_events__$EventDispatcher_DispatchIterator; openfl_events__$EventDispatcher_DispatchIterator.__name__ = "openfl.events._EventDispatcher.DispatchIterator"; openfl_events__$EventDispatcher_DispatchIterator.prototype = { active: null ,index: null ,isCopy: null ,list: null ,copy: function() { if(!this.isCopy) { this.list = this.list.slice(); this.isCopy = true; } } ,hasNext: function() { return this.index < this.list.length; } ,next: function() { return this.list[this.index++]; } ,remove: function(listener,listIndex) { if(this.active) { if(!this.isCopy) { if(listIndex < this.index) { this.index--; } } else { var _g = this.index; var _g1 = this.list.length; while(_g < _g1) { var i = _g++; if(this.list[i] == listener) { this.list.splice(i,1); break; } } } } } ,reset: function(list) { this.list = list; this.isCopy = false; this.index = 0; } ,start: function() { this.active = true; } ,stop: function() { this.active = false; } ,__class__: openfl_events__$EventDispatcher_DispatchIterator }; 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) { if(this.callback == callback) { return this.useCapture == useCapture; } else { return false; } } ,__class__: openfl_events__$EventDispatcher_Listener }; var openfl_events_EventType = {}; openfl_events_EventType.equals = function(a,b) { return a == b; }; openfl_events_EventType.notEquals = function(a,b) { return a != b; }; 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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.keyCode = 0; this.shiftKey = false; this.relatedObject = null; } ,__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"]); } ,__init: function() { openfl_events_ActivityEvent.prototype.__init.call(this); this.fullScreen = false; this.interactive = false; } ,__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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.device = null; } ,__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,this.cancelable,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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.status = 0; this.redirected = false; } ,__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; this.keyLocation = keyLocationValue != null ? keyLocationValue : 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 ,commandKey: null ,controlKey: null ,ctrlKey: 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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.charCode = 0; this.keyCode = 0; this.keyLocation = 0; this.ctrlKey = false; this.altKey = false; this.shiftKey = false; this.controlKey = false; this.commandKey = false; } ,__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; this.isRelatedObjectInaccessible = false; this.stageX = NaN; this.stageY = NaN; }; $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; } 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 ,isRelatedObjectInaccessible: 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() { } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.shiftKey = false; this.altKey = false; this.ctrlKey = false; this.bubbles = false; this.relatedObject = null; this.delta = 0; this.localX = 0; this.localY = 0; this.buttonDown = false; this.commandKey = false; this.clickCount = 0; this.isRelatedObjectInaccessible = false; this.stageX = NaN; this.stageY = NaN; } ,__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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.info = null; } ,__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"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.bytesLoaded = 0; this.bytesTotal = 0; } ,__class__: openfl_events_ProgressEvent }); var openfl_events_RenderEvent = function(type,bubbles,cancelable,objectMatrix,objectColorTransform,allowSmoothing) { if(allowSmoothing == null) { allowSmoothing = true; } if(cancelable == null) { cancelable = false; } if(bubbles == null) { bubbles = false; } openfl_events_Event.call(this,type,bubbles,cancelable); this.objectMatrix = objectMatrix; this.objectColorTransform = objectColorTransform; this.allowSmoothing = allowSmoothing; }; $hxClasses["openfl.events.RenderEvent"] = openfl_events_RenderEvent; openfl_events_RenderEvent.__name__ = "openfl.events.RenderEvent"; openfl_events_RenderEvent.__super__ = openfl_events_Event; openfl_events_RenderEvent.prototype = $extend(openfl_events_Event.prototype,{ allowSmoothing: null ,objectColorTransform: null ,objectMatrix: null ,renderer: null ,clone: function() { var event = new openfl_events_RenderEvent(this.type,this.bubbles,this.cancelable,this.objectMatrix.clone(),this.objectColorTransform.__clone(),this.allowSmoothing); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("RenderEvent",["type","bubbles","cancelable"]); } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.objectMatrix = null; this.objectColorTransform = null; this.allowSmoothing = false; this.renderer = null; } ,__class__: openfl_events_RenderEvent }); 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; this.stageX = NaN; this.stageY = NaN; }; $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() { } ,__init: function() { openfl_events_Event.prototype.__init.call(this); this.touchPointID = 0; this.isPrimaryTouchPoint = false; this.localX = 0; this.localY = 0; this.sizeX = 0; this.sizeY = 0; this.pressure = 0; this.relatedObject = null; this.ctrlKey = false; this.altKey = false; this.shiftKey = false; this.commandKey = false; this.controlKey = false; this.stageX = NaN; this.stageY = NaN; } ,__class__: openfl_events_TouchEvent }); var openfl_events_UncaughtErrorEvent = function(type,bubbles,cancelable,error) { if(cancelable == null) { cancelable = true; } if(bubbles == null) { bubbles = true; } openfl_events_ErrorEvent.call(this,type,bubbles,cancelable); this.error = error; }; $hxClasses["openfl.events.UncaughtErrorEvent"] = openfl_events_UncaughtErrorEvent; openfl_events_UncaughtErrorEvent.__name__ = "openfl.events.UncaughtErrorEvent"; openfl_events_UncaughtErrorEvent.__super__ = openfl_events_ErrorEvent; openfl_events_UncaughtErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{ error: null ,clone: function() { var event = new openfl_events_UncaughtErrorEvent(this.type,this.bubbles,this.cancelable,this.error); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("UncaughtErrorEvent",["type","bubbles","cancelable","error"]); } ,__init: function() { openfl_events_ErrorEvent.prototype.__init.call(this); this.error = null; } ,__class__: openfl_events_UncaughtErrorEvent }); var openfl_events_UncaughtErrorEvents = function() { this.__enabled = true; 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,{ __enabled: null ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) { useWeakReference = false; } if(priority == null) { priority = 0; } if(useCapture == null) { useCapture = false; } openfl_events_EventDispatcher.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference); if(Object.prototype.hasOwnProperty.call(this.__eventMap.h,"uncaughtError")) { this.__enabled = true; } } ,removeEventListener: function(type,listener,useCapture) { if(useCapture == null) { useCapture = false; } openfl_events_EventDispatcher.prototype.removeEventListener.call(this,type,listener,useCapture); if(!Object.prototype.hasOwnProperty.call(this.__eventMap.h,"uncaughtError")) { this.__enabled = false; } } ,__class__: openfl_events_UncaughtErrorEvents }); var openfl_filters_BitmapFilter = function() { this.__bottomExtension = 0; this.__leftExtension = 0; this.__needSecondBitmapData = true; this.__numShaderPasses = 0; this.__preserveObject = false; this.__rightExtension = 0; this.__shaderBlendMode = 10; this.__topExtension = 0; this.__smooth = true; }; $hxClasses["openfl.filters.BitmapFilter"] = openfl_filters_BitmapFilter; openfl_filters_BitmapFilter.__name__ = "openfl.filters.BitmapFilter"; openfl_filters_BitmapFilter.prototype = { __bottomExtension: null ,__leftExtension: null ,__needSecondBitmapData: null ,__numShaderPasses: null ,__preserveObject: null ,__renderDirty: null ,__rightExtension: null ,__shaderBlendMode: null ,__smooth: null ,__topExtension: null ,clone: function() { return new openfl_filters_BitmapFilter(); } ,__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) { return sourceBitmapData; } ,__initShader: function(renderer,pass,sourceBitmapData) { return null; } ,__class__: openfl_filters_BitmapFilter }; var openfl_filters_BitmapFilterShader = function(code) { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "#pragma header\n\n\t\tvoid main(void) {\n\n\t\t\t#pragma body\n\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tgl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"; } this.__isGenerated = true; openfl_display_Shader.call(this,code); this.__initGL(); }; $hxClasses["openfl.filters.BitmapFilterShader"] = openfl_filters_BitmapFilterShader; openfl_filters_BitmapFilterShader.__name__ = "openfl.filters.BitmapFilterShader"; openfl_filters_BitmapFilterShader.__super__ = openfl_display_Shader; openfl_filters_BitmapFilterShader.prototype = $extend(openfl_display_Shader.prototype,{ openfl_Position: null ,openfl_TextureCoord: null ,openfl_Matrix: null ,openfl_TextureSize: null ,openfl_Texture: null ,__class__: openfl_filters_BitmapFilterShader }); var openfl_filters__$BlurFilter_BlurShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "uniform sampler2D openfl_Texture;\n\n\t\tvarying vec2 vBlurCoords[7];\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 sum = vec4(0.0);\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[0]) * 0.00443;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[1]) * 0.05399;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[2]) * 0.24197;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[3]) * 0.39894;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[4]) * 0.24197;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[5]) * 0.05399;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[6]) * 0.00443;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tuniform vec2 uRadius;\n\t\tvarying vec2 vBlurCoords[7];\n\t\tuniform vec2 uTextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\tvec2 r = uRadius / uTextureSize;\n\t\t\tvBlurCoords[0] = openfl_TextureCoord - r;\n\t\t\tvBlurCoords[1] = openfl_TextureCoord - r * 0.75;\n\t\t\tvBlurCoords[2] = openfl_TextureCoord - r * 0.5;\n\t\t\tvBlurCoords[3] = openfl_TextureCoord;\n\t\t\tvBlurCoords[4] = openfl_TextureCoord + r * 0.5;\n\t\t\tvBlurCoords[5] = openfl_TextureCoord + r * 0.75;\n\t\t\tvBlurCoords[6] = openfl_TextureCoord + r;\n\n\t\t}"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "uniform sampler2D openfl_Texture;\n\n\t\tvarying vec2 vBlurCoords[7];\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 sum = vec4(0.0);\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[0]) * 0.00443;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[1]) * 0.05399;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[2]) * 0.24197;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[3]) * 0.39894;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[4]) * 0.24197;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[5]) * 0.05399;\n\t\t\tsum += texture2D(openfl_Texture, vBlurCoords[6]) * 0.00443;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tuniform vec2 uRadius;\n\t\tvarying vec2 vBlurCoords[7];\n\t\tuniform vec2 uTextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t\tvec2 r = uRadius / uTextureSize;\n\t\t\tvBlurCoords[0] = openfl_TextureCoord - r;\n\t\t\tvBlurCoords[1] = openfl_TextureCoord - r * 0.75;\n\t\t\tvBlurCoords[2] = openfl_TextureCoord - r * 0.5;\n\t\t\tvBlurCoords[3] = openfl_TextureCoord;\n\t\t\tvBlurCoords[4] = openfl_TextureCoord + r * 0.5;\n\t\t\tvBlurCoords[5] = openfl_TextureCoord + r * 0.75;\n\t\t\tvBlurCoords[6] = openfl_TextureCoord + r;\n\n\t\t}"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.uRadius.value = [0,0]; this.__initGL(); }; $hxClasses["openfl.filters._BlurFilter.BlurShader"] = openfl_filters__$BlurFilter_BlurShader; openfl_filters__$BlurFilter_BlurShader.__name__ = "openfl.filters._BlurFilter.BlurShader"; openfl_filters__$BlurFilter_BlurShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$BlurFilter_BlurShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ __update: function() { this.uTextureSize.value = [this.__texture.input.width,this.__texture.input.height]; openfl_filters_BitmapFilterShader.prototype.__update.call(this); } ,uRadius: null ,uTextureSize: null ,__class__: openfl_filters__$BlurFilter_BlurShader }); 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.set_blurX(blurX); this.set_blurY(blurY); this.set_quality(quality); this.__needSecondBitmapData = true; this.__preserveObject = false; this.__renderDirty = 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 ,__horizontalPasses: null ,__quality: null ,__verticalPasses: null ,clone: function() { return new openfl_filters_BlurFilter(this.__blurX,this.__blurY,this.__quality); } ,__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) { var time = new Date().getTime() / 1000; var finalImage = lime__$internal_graphics_ImageDataUtil.gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),this.__blurX,this.__blurY,this.__quality); var elapsed = new Date().getTime() / 1000 - time; if(finalImage == bitmapData.image) { return bitmapData; } return sourceBitmapData; } ,__initShader: function(renderer,pass,sourceBitmapData) { if(pass < this.__horizontalPasses) { var scale = Math.pow(0.5,pass >> 1); openfl_filters_BlurFilter.__blurShader.uRadius.value[0] = this.get_blurX() * scale; openfl_filters_BlurFilter.__blurShader.uRadius.value[1] = 0; } else { var scale = Math.pow(0.5,pass - this.__horizontalPasses >> 1); openfl_filters_BlurFilter.__blurShader.uRadius.value[0] = 0; openfl_filters_BlurFilter.__blurShader.uRadius.value[1] = this.get_blurY() * scale; } return openfl_filters_BlurFilter.__blurShader; } ,get_blurX: function() { return this.__blurX; } ,set_blurX: function(value) { if(value != this.__blurX) { this.__blurX = value; this.__renderDirty = true; this.__leftExtension = value > 0 ? Math.ceil(value) : 0; this.__rightExtension = this.__leftExtension; } return value; } ,get_blurY: function() { return this.__blurY; } ,set_blurY: function(value) { if(value != this.__blurY) { this.__blurY = value; this.__renderDirty = true; this.__topExtension = value > 0 ? Math.ceil(value) : 0; this.__bottomExtension = this.__topExtension; } return value; } ,get_quality: function() { return this.__quality; } ,set_quality: function(value) { this.__horizontalPasses = this.__blurX <= 0 ? 0 : Math.round(this.__blurX * (value / 4)) + 1; this.__verticalPasses = this.__blurY <= 0 ? 0 : Math.round(this.__blurY * (value / 4)) + 1; this.__numShaderPasses = this.__horizontalPasses + this.__verticalPasses; if(value != this.__quality) { this.__renderDirty = true; } return this.__quality = value; } ,__class__: openfl_filters_BlurFilter ,__properties__: {set_quality:"set_quality",get_quality:"get_quality",set_blurY:"set_blurY",get_blurY:"get_blurY",set_blurX:"set_blurX",get_blurX:"get_blurX"} }); var openfl_filters__$GlowFilter_BlurAlphaShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec4 uColor;\n\t\tuniform float uStrength;\n\t\tvarying vec2 vTexCoord;\n\t\tvarying vec2 vBlurCoords[6];\n\n\t\tvoid main(void)\n\t\t{\n vec4 texel = texture2D(openfl_Texture, vTexCoord);\n\n vec3 contributions = vec3(0.00443, 0.05399, 0.24197);\n vec3 top = vec3(\n texture2D(openfl_Texture, vBlurCoords[0]).a,\n texture2D(openfl_Texture, vBlurCoords[1]).a,\n texture2D(openfl_Texture, vBlurCoords[2]).a\n );\n vec3 bottom = vec3(\n texture2D(openfl_Texture, vBlurCoords[3]).a,\n texture2D(openfl_Texture, vBlurCoords[4]).a,\n texture2D(openfl_Texture, vBlurCoords[5]).a\n );\n\n float a = texel.a * 0.39894;\n\t\t\ta += dot(top, contributions.xyz);\n a += dot(bottom, contributions.zyx);\n\n\t\t\tgl_FragColor = uColor * clamp(a * uStrength, 0.0, 1.0);\n\t\t}\n\t"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tuniform vec2 uRadius;\n\t\tvarying vec2 vTexCoord;\n\t\tvarying vec2 vBlurCoords[6];\n\n\t\tvoid main(void) {\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\tvTexCoord = openfl_TextureCoord;\n\n\t\t\tvec3 offset = vec3(0.5, 0.75, 1.0);\n\t\t\tvec2 r = uRadius / openfl_TextureSize;\n\t\t\tvBlurCoords[0] = openfl_TextureCoord - r * offset.z;\n\t\t\tvBlurCoords[1] = openfl_TextureCoord - r * offset.y;\n\t\t\tvBlurCoords[2] = openfl_TextureCoord - r * offset.x;\n\t\t\tvBlurCoords[3] = openfl_TextureCoord + r * offset.x;\n\t\t\tvBlurCoords[4] = openfl_TextureCoord + r * offset.y;\n\t\t\tvBlurCoords[5] = openfl_TextureCoord + r * offset.z;\n\t\t}\n\t"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec4 uColor;\n\t\tuniform float uStrength;\n\t\tvarying vec2 vTexCoord;\n\t\tvarying vec2 vBlurCoords[6];\n\n\t\tvoid main(void)\n\t\t{\n vec4 texel = texture2D(openfl_Texture, vTexCoord);\n\n vec3 contributions = vec3(0.00443, 0.05399, 0.24197);\n vec3 top = vec3(\n texture2D(openfl_Texture, vBlurCoords[0]).a,\n texture2D(openfl_Texture, vBlurCoords[1]).a,\n texture2D(openfl_Texture, vBlurCoords[2]).a\n );\n vec3 bottom = vec3(\n texture2D(openfl_Texture, vBlurCoords[3]).a,\n texture2D(openfl_Texture, vBlurCoords[4]).a,\n texture2D(openfl_Texture, vBlurCoords[5]).a\n );\n\n float a = texel.a * 0.39894;\n\t\t\ta += dot(top, contributions.xyz);\n a += dot(bottom, contributions.zyx);\n\n\t\t\tgl_FragColor = uColor * clamp(a * uStrength, 0.0, 1.0);\n\t\t}\n\t"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tuniform vec2 uRadius;\n\t\tvarying vec2 vTexCoord;\n\t\tvarying vec2 vBlurCoords[6];\n\n\t\tvoid main(void) {\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\tvTexCoord = openfl_TextureCoord;\n\n\t\t\tvec3 offset = vec3(0.5, 0.75, 1.0);\n\t\t\tvec2 r = uRadius / openfl_TextureSize;\n\t\t\tvBlurCoords[0] = openfl_TextureCoord - r * offset.z;\n\t\t\tvBlurCoords[1] = openfl_TextureCoord - r * offset.y;\n\t\t\tvBlurCoords[2] = openfl_TextureCoord - r * offset.x;\n\t\t\tvBlurCoords[3] = openfl_TextureCoord + r * offset.x;\n\t\t\tvBlurCoords[4] = openfl_TextureCoord + r * offset.y;\n\t\t\tvBlurCoords[5] = openfl_TextureCoord + r * offset.z;\n\t\t}\n\t"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.uRadius.value = [0,0]; this.uColor.value = [0,0,0,0]; this.uStrength.value = [1]; this.__initGL(); }; $hxClasses["openfl.filters._GlowFilter.BlurAlphaShader"] = openfl_filters__$GlowFilter_BlurAlphaShader; openfl_filters__$GlowFilter_BlurAlphaShader.__name__ = "openfl.filters._GlowFilter.BlurAlphaShader"; openfl_filters__$GlowFilter_BlurAlphaShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$GlowFilter_BlurAlphaShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ uRadius: null ,uColor: null ,uStrength: null ,__class__: openfl_filters__$GlowFilter_BlurAlphaShader }); var openfl_filters__$GlowFilter_CombineKnockoutShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = glow * (1.0 - src.a);\n\t\t}\n\t"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = glow * (1.0 - src.a);\n\t\t}\n\t"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.offset.value = [0,0]; this.__initGL(); }; $hxClasses["openfl.filters._GlowFilter.CombineKnockoutShader"] = openfl_filters__$GlowFilter_CombineKnockoutShader; openfl_filters__$GlowFilter_CombineKnockoutShader.__name__ = "openfl.filters._GlowFilter.CombineKnockoutShader"; openfl_filters__$GlowFilter_CombineKnockoutShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$GlowFilter_CombineKnockoutShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ offset: null ,sourceBitmap: null ,__class__: openfl_filters__$GlowFilter_CombineKnockoutShader }); var openfl_filters__$GlowFilter_CombineShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = src + glow * (1.0 - src.a);\n\t\t}\n\t"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = src + glow * (1.0 - src.a);\n\t\t}\n\t"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.offset.value = [0,0]; this.__initGL(); }; $hxClasses["openfl.filters._GlowFilter.CombineShader"] = openfl_filters__$GlowFilter_CombineShader; openfl_filters__$GlowFilter_CombineShader.__name__ = "openfl.filters._GlowFilter.CombineShader"; openfl_filters__$GlowFilter_CombineShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$GlowFilter_CombineShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ offset: null ,sourceBitmap: null ,__class__: openfl_filters__$GlowFilter_CombineShader }); var openfl_filters__$GlowFilter_InnerCombineKnockoutShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = glow * src.a;\n\t\t}\n\t"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = glow * src.a;\n\t\t}\n\t"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.offset.value = [0,0]; this.__initGL(); }; $hxClasses["openfl.filters._GlowFilter.InnerCombineKnockoutShader"] = openfl_filters__$GlowFilter_InnerCombineKnockoutShader; openfl_filters__$GlowFilter_InnerCombineKnockoutShader.__name__ = "openfl.filters._GlowFilter.InnerCombineKnockoutShader"; openfl_filters__$GlowFilter_InnerCombineKnockoutShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$GlowFilter_InnerCombineKnockoutShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ offset: null ,sourceBitmap: null ,__class__: openfl_filters__$GlowFilter_InnerCombineKnockoutShader }); var openfl_filters__$GlowFilter_InnerCombineShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = vec4((src.rgb * (1.0 - glow.a)) + (glow.rgb * src.a), src.a);\n\t\t}\n\t"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform sampler2D sourceBitmap;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tvec4 src = texture2D(sourceBitmap, textureCoords.xy);\n\t\t\tvec4 glow = texture2D(openfl_Texture, textureCoords.zw);\n\n\t\t\tgl_FragColor = vec4((src.rgb * (1.0 - glow.a)) + (glow.rgb * src.a), src.a);\n\t\t}\n\t"; } if(this.__glVertexSource == null) { this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform vec2 offset;\n\t\tvarying vec4 textureCoords;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\ttextureCoords = vec4(openfl_TextureCoord, openfl_TextureCoord - offset / openfl_TextureSize);\n\t\t}\n\t"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.offset.value = [0,0]; this.__initGL(); }; $hxClasses["openfl.filters._GlowFilter.InnerCombineShader"] = openfl_filters__$GlowFilter_InnerCombineShader; openfl_filters__$GlowFilter_InnerCombineShader.__name__ = "openfl.filters._GlowFilter.InnerCombineShader"; openfl_filters__$GlowFilter_InnerCombineShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$GlowFilter_InnerCombineShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ offset: null ,sourceBitmap: null ,__class__: openfl_filters__$GlowFilter_InnerCombineShader }); var openfl_filters__$GlowFilter_InvertAlphaShader = function() { if(this.__glVersion == null) { this.__glVersion = "100"; } if(this.__glFragmentExtensions == null) { this.__glFragmentExtensions = []; } if(this.__glVertexExtensions == null) { this.__glVertexExtensions = []; } if(this.__glFragmentHeaderRaw == null) { this.__glFragmentHeaderRaw = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glVertexHeaderRaw == null) { this.__glVertexHeaderRaw = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n"; } if(this.__glFragmentBodyRaw == null) { this.__glFragmentBodyRaw = "gl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n"; } if(this.__glVertexBodyRaw == null) { this.__glVertexBodyRaw = "openfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n"; } if(this.__glFragmentSourceRaw == null) { this.__glFragmentSourceRaw = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tvarying vec2 vTexCoord;\n\n\t\tvoid main(void) {\n\t\t\tvec4 texel = texture2D(openfl_Texture, vTexCoord);\n\t\t\tgl_FragColor = vec4(texel.rgb, 1.0 - texel.a);\n\t\t}\n\t"; } if(this.__glVertexSourceRaw == null) { this.__glVertexSourceRaw = "\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tvarying vec2 vTexCoord;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\tvTexCoord = openfl_TextureCoord;\n\t\t}\n\t"; } if(this.__glFragmentSource == null) { this.__glFragmentSource = "\n\t\tuniform sampler2D openfl_Texture;\n\t\tvarying vec2 vTexCoord;\n\n\t\tvoid main(void) {\n\t\t\tvec4 texel = texture2D(openfl_Texture, vTexCoord);\n\t\t\tgl_FragColor = vec4(texel.rgb, 1.0 - texel.a);\n\t\t}\n\t"; } if(this.__glVertexSource == null) { this.__glVertexSource = "\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tuniform mat4 openfl_Matrix;\n\t\tvarying vec2 vTexCoord;\n\n\t\tvoid main(void) {\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\t\t\tvTexCoord = openfl_TextureCoord;\n\t\t}\n\t"; } this.__isGenerated = true; openfl_filters_BitmapFilterShader.call(this); this.__initGL(); }; $hxClasses["openfl.filters._GlowFilter.InvertAlphaShader"] = openfl_filters__$GlowFilter_InvertAlphaShader; openfl_filters__$GlowFilter_InvertAlphaShader.__name__ = "openfl.filters._GlowFilter.InvertAlphaShader"; openfl_filters__$GlowFilter_InvertAlphaShader.__super__ = openfl_filters_BitmapFilterShader; openfl_filters__$GlowFilter_InvertAlphaShader.prototype = $extend(openfl_filters_BitmapFilterShader.prototype,{ __class__: openfl_filters__$GlowFilter_InvertAlphaShader }); 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.__inner = inner; this.__knockout = knockout; this.__quality = quality; this.__updateSize(); this.__needSecondBitmapData = true; this.__preserveObject = true; this.__renderDirty = 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 ,__horizontalPasses: null ,__inner: null ,__knockout: null ,__quality: null ,__strength: null ,__verticalPasses: null ,clone: function() { return new openfl_filters_GlowFilter(this.__color,this.__alpha,this.__blurX,this.__blurY,this.__strength,this.__quality,this.__inner,this.__knockout); } ,__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) { var r = this.__color >> 16 & 255; var g = this.__color >> 8 & 255; var b = this.__color & 255; var finalImage = lime__$internal_graphics_ImageDataUtil.gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),this.__blurX,this.__blurY,this.__quality,this.__strength); finalImage.colorTransform(finalImage.get_rect(),new openfl_geom_ColorTransform(0,0,0,this.__alpha,r,g,b,0).__toLimeColorMatrix()); if(finalImage == bitmapData.image) { return bitmapData; } return sourceBitmapData; } ,__initShader: function(renderer,pass,sourceBitmapData) { if(this.__inner && pass == 0) { return openfl_filters_GlowFilter.__invertAlphaShader; } var blurPass = pass - (this.__inner ? 1 : 0); var numBlurPasses = this.__horizontalPasses + this.__verticalPasses; if(blurPass < numBlurPasses) { var shader = openfl_filters_GlowFilter.__blurAlphaShader; if(blurPass < this.__horizontalPasses) { var scale = Math.pow(0.5,blurPass >> 1) * 0.5; shader.uRadius.value[0] = this.get_blurX() * scale; shader.uRadius.value[1] = 0; } else { var scale = Math.pow(0.5,blurPass - this.__horizontalPasses >> 1) * 0.5; shader.uRadius.value[0] = 0; shader.uRadius.value[1] = this.get_blurY() * scale; } shader.uColor.value[0] = (this.get_color() >> 16 & 255) / 255; shader.uColor.value[1] = (this.get_color() >> 8 & 255) / 255; shader.uColor.value[2] = (this.get_color() & 255) / 255; shader.uColor.value[3] = this.get_alpha(); shader.uStrength.value[0] = blurPass == numBlurPasses - 1 ? this.__strength : 1.0; return shader; } if(this.__inner) { if(this.__knockout) { var shader = openfl_filters_GlowFilter.__innerCombineKnockoutShader; shader.sourceBitmap.input = sourceBitmapData; shader.offset.value[0] = 0.0; shader.offset.value[1] = 0.0; return shader; } var shader = openfl_filters_GlowFilter.__innerCombineShader; shader.sourceBitmap.input = sourceBitmapData; shader.offset.value[0] = 0.0; shader.offset.value[1] = 0.0; return shader; } else { if(this.__knockout) { var shader = openfl_filters_GlowFilter.__combineKnockoutShader; shader.sourceBitmap.input = sourceBitmapData; shader.offset.value[0] = 0.0; shader.offset.value[1] = 0.0; return shader; } var shader = openfl_filters_GlowFilter.__combineShader; shader.sourceBitmap.input = sourceBitmapData; shader.offset.value[0] = 0.0; shader.offset.value[1] = 0.0; return shader; } } ,__updateSize: function() { this.__leftExtension = this.__blurX > 0 ? Math.ceil(this.__blurX * 1.5) : 0; this.__rightExtension = this.__leftExtension; this.__topExtension = this.__blurY > 0 ? Math.ceil(this.__blurY * 1.5) : 0; this.__bottomExtension = this.__topExtension; this.__calculateNumShaderPasses(); } ,__calculateNumShaderPasses: function() { this.__horizontalPasses = this.__blurX <= 0 ? 0 : Math.round(this.__blurX * (this.__quality / 4)) + 1; this.__verticalPasses = this.__blurY <= 0 ? 0 : Math.round(this.__blurY * (this.__quality / 4)) + 1; this.__numShaderPasses = this.__horizontalPasses + this.__verticalPasses + (this.__inner ? 2 : 1); } ,get_alpha: function() { return this.__alpha; } ,set_alpha: function(value) { if(value != this.__alpha) { this.__renderDirty = true; } return this.__alpha = value; } ,get_blurX: function() { return this.__blurX; } ,set_blurX: function(value) { if(value != this.__blurX) { this.__blurX = value; this.__renderDirty = true; this.__updateSize(); } return value; } ,get_blurY: function() { return this.__blurY; } ,set_blurY: function(value) { if(value != this.__blurY) { this.__blurY = value; this.__renderDirty = true; this.__updateSize(); } return value; } ,get_color: function() { return this.__color; } ,set_color: function(value) { if(value != this.__color) { this.__renderDirty = true; } return this.__color = value; } ,get_inner: function() { return this.__inner; } ,set_inner: function(value) { if(value != this.__inner) { this.__renderDirty = true; this.__calculateNumShaderPasses(); } return this.__inner = value; } ,get_knockout: function() { return this.__knockout; } ,set_knockout: function(value) { if(value != this.__knockout) { this.__renderDirty = true; this.__calculateNumShaderPasses(); } return this.__knockout = value; } ,get_quality: function() { return this.__quality; } ,set_quality: function(value) { if(value != this.__quality) { this.__renderDirty = true; this.__calculateNumShaderPasses(); } return this.__quality = value; } ,get_strength: function() { return this.__strength; } ,set_strength: function(value) { if(value != this.__strength) { this.__renderDirty = true; } return this.__strength = value; } ,__class__: openfl_filters_GlowFilter ,__properties__: {set_strength:"set_strength",get_strength:"get_strength",set_quality:"set_quality",get_quality:"get_quality",set_knockout:"set_knockout",get_knockout:"get_knockout",set_inner:"set_inner",get_inner:"get_inner",set_color:"set_color",get_color:"get_color",set_blurY:"set_blurY",get_blurY:"get_blurY",set_blurX:"set_blurX",get_blurX:"get_blurX",set_alpha:"set_alpha",get_alpha:"get_alpha"} }); var openfl_filters_ShaderFilter = function(shader) { this.blendMode = 10; openfl_filters_BitmapFilter.call(this); this.shader = shader; this.__numShaderPasses = 1; }; $hxClasses["openfl.filters.ShaderFilter"] = openfl_filters_ShaderFilter; openfl_filters_ShaderFilter.__name__ = "openfl.filters.ShaderFilter"; openfl_filters_ShaderFilter.__super__ = openfl_filters_BitmapFilter; openfl_filters_ShaderFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{ blendMode: null ,shader: null ,clone: function() { var filter = new openfl_filters_ShaderFilter(this.shader); filter.set_bottomExtension(this.get_bottomExtension()); filter.set_leftExtension(this.get_leftExtension()); filter.set_rightExtension(this.get_rightExtension()); filter.set_topExtension(this.get_topExtension()); filter.blendMode = this.blendMode; return filter; } ,invalidate: function() { this.__renderDirty = true; } ,get_topExtension: function() { return this.__topExtension; } ,set_topExtension: function(value) { this.__topExtension = value; return this.__topExtension; } ,get_bottomExtension: function() { return this.__bottomExtension; } ,set_bottomExtension: function(value) { this.__bottomExtension = value; return this.__bottomExtension; } ,get_leftExtension: function() { return this.__leftExtension; } ,set_leftExtension: function(value) { this.__leftExtension = value; return this.__leftExtension; } ,get_rightExtension: function() { return this.__rightExtension; } ,set_rightExtension: function(value) { this.__rightExtension = value; return this.__rightExtension; } ,__initShader: function(renderer,pass,sourceBitmapData) { this.__shaderBlendMode = this.blendMode; return this.shader; } ,__class__: openfl_filters_ShaderFilter ,__properties__: {set_topExtension:"set_topExtension",get_topExtension:"get_topExtension",set_rightExtension:"set_rightExtension",get_rightExtension:"get_rightExtension",set_leftExtension:"set_leftExtension",get_leftExtension:"get_leftExtension",set_bottomExtension:"set_bottomExtension",get_bottomExtension:"get_bottomExtension"} }); var openfl_geom_Matrix3D = function(v) { if(v != null && v.get_length() == 16) { this.rawData = v.concat(null); } else { this.rawData = openfl_Vector.toFloatVector(null,null,null,[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]); } }; $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(openfl_Vector.toFloatVector(null,null,null,[c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1])); }; openfl_geom_Matrix3D.createABCD = function(a,b,c,d,tx,ty) { return new openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1])); }; 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(openfl_Vector.toFloatVector(null,null,null,[2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2.0 * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1])); }; openfl_geom_Matrix3D.interpolate = function(thisMat,toMat,percent) { var m = new openfl_geom_Matrix3D(); var _g = 0; while(_g < 16) { var i = _g++; m.rawData.set(i,thisMat.rawData.get(i) + (toMat.rawData.get(i) - thisMat.rawData.get(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; m.rawData.set(0,c + a1.x * a1.x * t); m.rawData.set(5,c + a1.y * a1.y * t); m.rawData.set(10,c + a1.z * a1.z * t); var tmp1 = a1.x * a1.y * t; var tmp2 = a1.z * s; m.rawData.set(4,tmp1 + tmp2); m.rawData.set(1,tmp1 - tmp2); tmp1 = a1.x * a1.z * t; tmp2 = a1.y * s; m.rawData.set(8,tmp1 - tmp2); m.rawData.set(2,tmp1 + tmp2); tmp1 = a1.y * a1.z * t; tmp2 = a1.x * s; m.rawData.set(9,tmp1 + tmp2); m.rawData.set(6,tmp1 - tmp2); return m; }; openfl_geom_Matrix3D.prototype = { rawData: null ,append: function(lhs) { var m111 = this.rawData.get(0); var m121 = this.rawData.get(4); var m131 = this.rawData.get(8); var m141 = this.rawData.get(12); var m112 = this.rawData.get(1); var m122 = this.rawData.get(5); var m132 = this.rawData.get(9); var m142 = this.rawData.get(13); var m113 = this.rawData.get(2); var m123 = this.rawData.get(6); var m133 = this.rawData.get(10); var m143 = this.rawData.get(14); var m114 = this.rawData.get(3); var m124 = this.rawData.get(7); var m134 = this.rawData.get(11); var m144 = this.rawData.get(15); var m211 = lhs.rawData.get(0); var m221 = lhs.rawData.get(4); var m231 = lhs.rawData.get(8); var m241 = lhs.rawData.get(12); var m212 = lhs.rawData.get(1); var m222 = lhs.rawData.get(5); var m232 = lhs.rawData.get(9); var m242 = lhs.rawData.get(13); var m213 = lhs.rawData.get(2); var m223 = lhs.rawData.get(6); var m233 = lhs.rawData.get(10); var m243 = lhs.rawData.get(14); var m214 = lhs.rawData.get(3); var m224 = lhs.rawData.get(7); var m234 = lhs.rawData.get(11); var m244 = lhs.rawData.get(15); this.rawData.set(0,m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241); this.rawData.set(1,m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242); this.rawData.set(2,m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243); this.rawData.set(3,m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244); this.rawData.set(4,m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241); this.rawData.set(5,m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242); this.rawData.set(6,m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243); this.rawData.set(7,m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244); this.rawData.set(8,m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241); this.rawData.set(9,m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242); this.rawData.set(10,m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243); this.rawData.set(11,m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244); this.rawData.set(12,m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241); this.rawData.set(13,m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242); this.rawData.set(14,m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243); this.rawData.set(15,m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244); } ,appendRotation: function(degrees,axis,pivotPoint) { var tz = 0; var ty = tz; var tx = ty; if(pivotPoint != null) { tx = pivotPoint.x; ty = pivotPoint.y; tz = pivotPoint.z; } var radian = degrees * Math.PI / 180; var cos = Math.cos(radian); var sin = Math.sin(radian); var x = axis.x; var y = axis.y; var z = axis.z; var x2 = x * x; var y2 = y * y; var z2 = z * z; var ls = x2 + y2 + z2; if(ls != 0) { var l = Math.sqrt(ls); x /= l; y /= l; z /= l; x2 /= ls; y2 /= ls; z2 /= ls; } var ccos = 1 - cos; var m = new openfl_geom_Matrix3D(); var d = m.rawData; d.set(0,x2 + (y2 + z2) * cos); d.set(1,x * y * ccos + z * sin); d.set(2,x * z * ccos - y * sin); d.set(4,x * y * ccos - z * sin); d.set(5,y2 + (x2 + z2) * cos); d.set(6,y * z * ccos + x * sin); d.set(8,x * z * ccos + y * sin); d.set(9,y * z * ccos - x * sin); d.set(10,z2 + (x2 + y2) * cos); d.set(12,(tx * (y2 + z2) - x * (ty * y + tz * z)) * ccos + (ty * z - tz * y) * sin); d.set(13,(ty * (x2 + z2) - y * (tx * x + tz * z)) * ccos + (tz * x - tx * z) * sin); d.set(14,(tz * (x2 + y2) - z * (tx * x + ty * y)) * ccos + (tx * y - ty * x) * sin); this.append(m); } ,appendScale: function(xScale,yScale,zScale) { this.append(new openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[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]))); } ,appendTranslation: function(x,y,z) { var _g = this.rawData; _g.set(12,_g.get(12) + x); var _g = this.rawData; _g.set(13,_g.get(13) + y); var _g = this.rawData; _g.set(14,_g.get(14) + z); } ,clone: function() { return new openfl_geom_Matrix3D(this.rawData.copy()); } ,copyColumnFrom: function(column,vector3D) { switch(column) { case 0: this.rawData.set(0,vector3D.x); this.rawData.set(1,vector3D.y); this.rawData.set(2,vector3D.z); this.rawData.set(3,vector3D.w); break; case 1: this.rawData.set(4,vector3D.x); this.rawData.set(5,vector3D.y); this.rawData.set(6,vector3D.z); this.rawData.set(7,vector3D.w); break; case 2: this.rawData.set(8,vector3D.x); this.rawData.set(9,vector3D.y); this.rawData.set(10,vector3D.z); this.rawData.set(11,vector3D.w); break; case 3: this.rawData.set(12,vector3D.x); this.rawData.set(13,vector3D.y); this.rawData.set(14,vector3D.z); this.rawData.set(15,vector3D.w); break; default: } } ,copyColumnTo: function(column,vector3D) { switch(column) { case 0: vector3D.x = this.rawData.get(0); vector3D.y = this.rawData.get(1); vector3D.z = this.rawData.get(2); vector3D.w = this.rawData.get(3); break; case 1: vector3D.x = this.rawData.get(4); vector3D.y = this.rawData.get(5); vector3D.z = this.rawData.get(6); vector3D.w = this.rawData.get(7); break; case 2: vector3D.x = this.rawData.get(8); vector3D.y = this.rawData.get(9); vector3D.z = this.rawData.get(10); vector3D.w = this.rawData.get(11); break; case 3: vector3D.x = this.rawData.get(12); vector3D.y = this.rawData.get(13); vector3D.z = this.rawData.get(14); vector3D.w = this.rawData.get(15); break; default: } } ,copyFrom: function(other) { this.rawData = other.rawData.copy(); } ,copyRawDataFrom: function(vector,index,transpose) { if(transpose == null) { transpose = false; } if(index == null) { index = 0; } if(transpose) { this.transpose(); } var length = vector.get_length() - index; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; this.rawData.set(i,vector.get(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 _g = 0; var _g1 = this.rawData.get_length(); while(_g < _g1) { var i = _g++; vector.set(i + index,this.rawData.get(i)); } if(transpose) { this.transpose(); } } ,copyRowFrom: function(row,vector3D) { switch(row) { case 0: this.rawData.set(0,vector3D.x); this.rawData.set(4,vector3D.y); this.rawData.set(8,vector3D.z); this.rawData.set(12,vector3D.w); break; case 1: this.rawData.set(1,vector3D.x); this.rawData.set(5,vector3D.y); this.rawData.set(9,vector3D.z); this.rawData.set(13,vector3D.w); break; case 2: this.rawData.set(2,vector3D.x); this.rawData.set(6,vector3D.y); this.rawData.set(10,vector3D.z); this.rawData.set(14,vector3D.w); break; case 3: this.rawData.set(3,vector3D.x); this.rawData.set(7,vector3D.y); this.rawData.set(11,vector3D.z); this.rawData.set(15,vector3D.w); break; default: } } ,copyRowTo: function(row,vector3D) { switch(row) { case 0: vector3D.x = this.rawData.get(0); vector3D.y = this.rawData.get(4); vector3D.z = this.rawData.get(8); vector3D.w = this.rawData.get(12); break; case 1: vector3D.x = this.rawData.get(1); vector3D.y = this.rawData.get(5); vector3D.z = this.rawData.get(9); vector3D.w = this.rawData.get(13); break; case 2: vector3D.x = this.rawData.get(2); vector3D.y = this.rawData.get(6); vector3D.z = this.rawData.get(10); vector3D.w = this.rawData.get(14); break; case 3: vector3D.x = this.rawData.get(3); vector3D.y = this.rawData.get(7); vector3D.z = this.rawData.get(11); vector3D.w = this.rawData.get(15); break; default: } } ,copyToMatrix3D: function(other) { other.rawData = this.rawData.copy(); } ,decompose: function(orientationStyle) { if(orientationStyle == null) { orientationStyle = 1; } var vec = openfl_Vector.toObjectVector(null); var m = this.clone(); var mr = m.rawData.copy(); var pos = new openfl_geom_Vector3D(mr.get(12),mr.get(13),mr.get(14)); mr.set(12,0); mr.set(13,0); mr.set(14,0); var scale = new openfl_geom_Vector3D(); scale.x = Math.sqrt(mr.get(0) * mr.get(0) + mr.get(1) * mr.get(1) + mr.get(2) * mr.get(2)); scale.y = Math.sqrt(mr.get(4) * mr.get(4) + mr.get(5) * mr.get(5) + mr.get(6) * mr.get(6)); scale.z = Math.sqrt(mr.get(8) * mr.get(8) + mr.get(9) * mr.get(9) + mr.get(10) * mr.get(10)); if(mr.get(0) * (mr.get(5) * mr.get(10) - mr.get(6) * mr.get(9)) - mr.get(1) * (mr.get(4) * mr.get(10) - mr.get(6) * mr.get(8)) + mr.get(2) * (mr.get(4) * mr.get(9) - mr.get(5) * mr.get(8)) < 0) { scale.z = -scale.z; } var _g = mr; _g.set(0,_g.get(0) / scale.x); var _g = mr; _g.set(1,_g.get(1) / scale.x); var _g = mr; _g.set(2,_g.get(2) / scale.x); var _g = mr; _g.set(4,_g.get(4) / scale.y); var _g = mr; _g.set(5,_g.get(5) / scale.y); var _g = mr; _g.set(6,_g.get(6) / scale.y); var _g = mr; _g.set(8,_g.get(8) / scale.z); var _g = mr; _g.set(9,_g.get(9) / scale.z); var _g = mr; _g.set(10,_g.get(10) / scale.z); var rot = new openfl_geom_Vector3D(); switch(orientationStyle) { case 0: rot.w = Math.acos((mr.get(0) + mr.get(5) + mr.get(10) - 1) / 2); var len = Math.sqrt((mr.get(6) - mr.get(9)) * (mr.get(6) - mr.get(9)) + (mr.get(8) - mr.get(2)) * (mr.get(8) - mr.get(2)) + (mr.get(1) - mr.get(4)) * (mr.get(1) - mr.get(4))); if(len != 0) { rot.x = (mr.get(6) - mr.get(9)) / len; rot.y = (mr.get(8) - mr.get(2)) / len; rot.z = (mr.get(1) - mr.get(4)) / len; } else { rot.x = rot.y = rot.z = 0; } break; case 1: rot.y = Math.asin(-mr.get(2)); if(mr.get(2) != 1 && mr.get(2) != -1) { rot.x = Math.atan2(mr.get(6),mr.get(10)); rot.z = Math.atan2(mr.get(1),mr.get(0)); } else { rot.z = 0; rot.x = Math.atan2(mr.get(4),mr.get(5)); } break; case 2: var tr = mr.get(0) + mr.get(5) + mr.get(10); if(tr > 0) { rot.w = Math.sqrt(1 + tr) / 2; rot.x = (mr.get(6) - mr.get(9)) / (4 * rot.w); rot.y = (mr.get(8) - mr.get(2)) / (4 * rot.w); rot.z = (mr.get(1) - mr.get(4)) / (4 * rot.w); } else if(mr.get(0) > mr.get(5) && mr.get(0) > mr.get(10)) { rot.x = Math.sqrt(1 + mr.get(0) - mr.get(5) - mr.get(10)) / 2; rot.w = (mr.get(6) - mr.get(9)) / (4 * rot.x); rot.y = (mr.get(1) + mr.get(4)) / (4 * rot.x); rot.z = (mr.get(8) + mr.get(2)) / (4 * rot.x); } else if(mr.get(5) > mr.get(10)) { rot.y = Math.sqrt(1 + mr.get(5) - mr.get(0) - mr.get(10)) / 2; rot.x = (mr.get(1) + mr.get(4)) / (4 * rot.y); rot.w = (mr.get(8) - mr.get(2)) / (4 * rot.y); rot.z = (mr.get(6) + mr.get(9)) / (4 * rot.y); } else { rot.z = Math.sqrt(1 + mr.get(10) - mr.get(0) - mr.get(5)) / 2; rot.x = (mr.get(8) + mr.get(2)) / (4 * rot.z); rot.y = (mr.get(6) + mr.get(9)) / (4 * rot.z); rot.w = (mr.get(1) - mr.get(4)) / (4 * rot.z); } break; } vec.push(pos); vec.push(rot); vec.push(scale); 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.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8),x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9),x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10),x * this.rawData.get(3) + y * this.rawData.get(7) + z * this.rawData.get(11)); } ,identity: function() { this.rawData = openfl_Vector.toFloatVector(null,null,null,[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]); } ,interpolateTo: function(toMat,percent) { var _g = 0; while(_g < 16) { var i = _g++; this.rawData.set(i,this.rawData.get(i) + (toMat.rawData.get(i) - this.rawData.get(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.get(0); var m21 = this.rawData.get(4); var m31 = this.rawData.get(8); var m41 = this.rawData.get(12); var m12 = this.rawData.get(1); var m22 = this.rawData.get(5); var m32 = this.rawData.get(9); var m42 = this.rawData.get(13); var m13 = this.rawData.get(2); var m23 = this.rawData.get(6); var m33 = this.rawData.get(10); var m43 = this.rawData.get(14); var m14 = this.rawData.get(3); var m24 = this.rawData.get(7); var m34 = this.rawData.get(11); var m44 = this.rawData.get(15); this.rawData.set(0,d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24))); this.rawData.set(1,-d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14))); this.rawData.set(2,d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14))); this.rawData.set(3,-d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14))); this.rawData.set(4,-d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24))); this.rawData.set(5,d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14))); this.rawData.set(6,-d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14))); this.rawData.set(7,d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14))); this.rawData.set(8,d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24))); this.rawData.set(9,-d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14))); this.rawData.set(10,d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14))); this.rawData.set(11,-d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14))); this.rawData.set(12,-d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23))); this.rawData.set(13,d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13))); this.rawData.set(14,-d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13))); this.rawData.set(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(); 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); } var right = vup.crossProduct(dir); right.normalize(); this.rawData.set(0,right.x); this.rawData.set(4,right.y); this.rawData.set(8,right.z); this.rawData.set(12,0.0); this.rawData.set(1,vup.x); this.rawData.set(5,vup.y); this.rawData.set(9,vup.z); this.rawData.set(13,0.0); this.rawData.set(2,dir.x); this.rawData.set(6,dir.y); this.rawData.set(10,dir.z); this.rawData.set(14,0.0); this.rawData.set(3,pos.x); this.rawData.set(7,pos.y); this.rawData.set(11,pos.z); this.rawData.set(15,1.0); } ,prepend: function(rhs) { var m111 = rhs.rawData.get(0); var m121 = rhs.rawData.get(4); var m131 = rhs.rawData.get(8); var m141 = rhs.rawData.get(12); var m112 = rhs.rawData.get(1); var m122 = rhs.rawData.get(5); var m132 = rhs.rawData.get(9); var m142 = rhs.rawData.get(13); var m113 = rhs.rawData.get(2); var m123 = rhs.rawData.get(6); var m133 = rhs.rawData.get(10); var m143 = rhs.rawData.get(14); var m114 = rhs.rawData.get(3); var m124 = rhs.rawData.get(7); var m134 = rhs.rawData.get(11); var m144 = rhs.rawData.get(15); var m211 = this.rawData.get(0); var m221 = this.rawData.get(4); var m231 = this.rawData.get(8); var m241 = this.rawData.get(12); var m212 = this.rawData.get(1); var m222 = this.rawData.get(5); var m232 = this.rawData.get(9); var m242 = this.rawData.get(13); var m213 = this.rawData.get(2); var m223 = this.rawData.get(6); var m233 = this.rawData.get(10); var m243 = this.rawData.get(14); var m214 = this.rawData.get(3); var m224 = this.rawData.get(7); var m234 = this.rawData.get(11); var m244 = this.rawData.get(15); this.rawData.set(0,m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241); this.rawData.set(1,m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242); this.rawData.set(2,m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243); this.rawData.set(3,m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244); this.rawData.set(4,m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241); this.rawData.set(5,m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242); this.rawData.set(6,m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243); this.rawData.set(7,m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244); this.rawData.set(8,m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241); this.rawData.set(9,m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242); this.rawData.set(10,m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243); this.rawData.set(11,m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244); this.rawData.set(12,m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241); this.rawData.set(13,m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242); this.rawData.set(14,m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243); this.rawData.set(15,m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244); } ,prependRotation: function(degrees,axis,pivotPoint) { var tz = 0; var ty = tz; var tx = ty; if(pivotPoint != null) { tx = pivotPoint.x; ty = pivotPoint.y; tz = pivotPoint.z; } var radian = degrees * Math.PI / 180; var cos = Math.cos(radian); var sin = Math.sin(radian); var x = axis.x; var y = axis.y; var z = axis.z; var x2 = x * x; var y2 = y * y; var z2 = z * z; var ls = x2 + y2 + z2; if(ls != 0) { var l = Math.sqrt(ls); x /= l; y /= l; z /= l; x2 /= ls; y2 /= ls; z2 /= ls; } var ccos = 1 - cos; var m = new openfl_geom_Matrix3D(); var d = m.rawData; d.set(0,x2 + (y2 + z2) * cos); d.set(1,x * y * ccos + z * sin); d.set(2,x * z * ccos - y * sin); d.set(4,x * y * ccos - z * sin); d.set(5,y2 + (x2 + z2) * cos); d.set(6,y * z * ccos + x * sin); d.set(8,x * z * ccos + y * sin); d.set(9,y * z * ccos - x * sin); d.set(10,z2 + (x2 + y2) * cos); d.set(12,(tx * (y2 + z2) - x * (ty * y + tz * z)) * ccos + (ty * z - tz * y) * sin); d.set(13,(ty * (x2 + z2) - y * (tx * x + tz * z)) * ccos + (tz * x - tx * z) * sin); d.set(14,(tz * (x2 + y2) - z * (tx * x + ty * y)) * ccos + (tx * y - ty * x) * sin); this.prepend(m); } ,prependScale: function(xScale,yScale,zScale) { this.prepend(new openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[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]))); } ,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(orientationStyle == null) { orientationStyle = 1; } if(components.get_length() < 3 || components.get(2).x == 0 || components.get(2).y == 0 || components.get(2).z == 0) { return false; } this.identity(); var scale = []; scale[0] = scale[1] = scale[2] = components.get(2).x; scale[4] = scale[5] = scale[6] = components.get(2).y; scale[8] = scale[9] = scale[10] = components.get(2).z; if(orientationStyle == 1) { var cx = Math.cos(components.get(1).x); var cy = Math.cos(components.get(1).y); var cz = Math.cos(components.get(1).z); var sx = Math.sin(components.get(1).x); var sy = Math.sin(components.get(1).y); var sz = Math.sin(components.get(1).z); this.rawData.set(0,cy * cz * scale[0]); this.rawData.set(1,cy * sz * scale[1]); this.rawData.set(2,-sy * scale[2]); this.rawData.set(3,0); this.rawData.set(4,(sx * sy * cz - cx * sz) * scale[4]); this.rawData.set(5,(sx * sy * sz + cx * cz) * scale[5]); this.rawData.set(6,sx * cy * scale[6]); this.rawData.set(7,0); this.rawData.set(8,(cx * sy * cz + sx * sz) * scale[8]); this.rawData.set(9,(cx * sy * sz - sx * cz) * scale[9]); this.rawData.set(10,cx * cy * scale[10]); this.rawData.set(11,0); this.rawData.set(12,components.get(0).x); this.rawData.set(13,components.get(0).y); this.rawData.set(14,components.get(0).z); this.rawData.set(15,1); } else { var x = components.get(1).x; var y = components.get(1).y; var z = components.get(1).z; var w = components.get(1).w; if(orientationStyle == 0) { x *= Math.sin(w / 2); y *= Math.sin(w / 2); z *= Math.sin(w / 2); w = Math.cos(w / 2); } this.rawData.set(0,(1 - 2 * y * y - 2 * z * z) * scale[0]); this.rawData.set(1,(2 * x * y + 2 * w * z) * scale[1]); this.rawData.set(2,(2 * x * z - 2 * w * y) * scale[2]); this.rawData.set(3,0); this.rawData.set(4,(2 * x * y - 2 * w * z) * scale[4]); this.rawData.set(5,(1 - 2 * x * x - 2 * z * z) * scale[5]); this.rawData.set(6,(2 * y * z + 2 * w * x) * scale[6]); this.rawData.set(7,0); this.rawData.set(8,(2 * x * z + 2 * w * y) * scale[8]); this.rawData.set(9,(2 * y * z - 2 * w * x) * scale[9]); this.rawData.set(10,(1 - 2 * x * x - 2 * y * y) * scale[10]); this.rawData.set(11,0); this.rawData.set(12,components.get(0).x); this.rawData.set(13,components.get(0).y); this.rawData.set(14,components.get(0).z); this.rawData.set(15,1); } if(components.get(2).x == 0) { this.rawData.set(0,1e-15); } if(components.get(2).y == 0) { this.rawData.set(5,1e-15); } if(components.get(2).z == 0) { this.rawData.set(10,1e-15); } return !(components.get(2).x == 0 || components.get(2).y == 0 || components.get(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.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8) + this.rawData.get(12),x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9) + this.rawData.get(13),x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10) + this.rawData.get(14),x * this.rawData.get(3) + y * this.rawData.get(7) + z * this.rawData.get(11) + this.rawData.get(15)); } ,transformVectors: function(vin,vout) { var i = 0; var x; var y; var z; while(i + 3 <= vin.get_length()) { x = vin.get(i); y = vin.get(i + 1); z = vin.get(i + 2); vout.set(i,x * this.rawData.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8) + this.rawData.get(12)); vout.set(i + 1,x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9) + this.rawData.get(13)); vout.set(i + 2,x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10) + this.rawData.get(14)); i += 3; } } ,transpose: function() { var oRawData = this.rawData.copy(); this.rawData.set(1,oRawData.get(4)); this.rawData.set(2,oRawData.get(8)); this.rawData.set(3,oRawData.get(12)); this.rawData.set(4,oRawData.get(1)); this.rawData.set(6,oRawData.get(9)); this.rawData.set(7,oRawData.get(13)); this.rawData.set(8,oRawData.get(2)); this.rawData.set(9,oRawData.get(6)); this.rawData.set(11,oRawData.get(14)); this.rawData.set(12,oRawData.get(3)); this.rawData.set(13,oRawData.get(7)); this.rawData.set(14,oRawData.get(11)); } ,get_determinant: function() { return (this.rawData.get(0) * this.rawData.get(5) - this.rawData.get(4) * this.rawData.get(1)) * (this.rawData.get(10) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(11)) - (this.rawData.get(0) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(7)) + (this.rawData.get(0) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(7)) + (this.rawData.get(4) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(3)) - (this.rawData.get(4) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(3)) + (this.rawData.get(8) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(9)) * (this.rawData.get(2) * this.rawData.get(7) - this.rawData.get(6) * this.rawData.get(3)); } ,get_position: function() { return new openfl_geom_Vector3D(this.rawData.get(12),this.rawData.get(13),this.rawData.get(14)); } ,set_position: function(val) { this.rawData.set(12,val.x); this.rawData.set(13,val.y); this.rawData.set(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 = {}; openfl_geom_Orientation3D.fromString = function(value) { switch(value) { case "axisAngle": return 0; case "eulerAngles": return 1; case "quaternion": return 2; default: return null; } }; openfl_geom_Orientation3D.toString = function(this1) { switch(this1) { 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.__clone(); } ,set_colorTransform: function(value) { if(!this.__colorTransform.__equals(value,false)) { this.__colorTransform.__copyFrom(value); if(value != null) { this.__displayObject.set_alpha(value.alphaMultiplier); } var _this = this.__displayObject; if(!_this.__renderDirty) { _this.__renderDirty = true; _this.__setParentRenderDirty(); } } return this.__colorTransform; } ,get_concatenatedMatrix: function() { if(this.__hasMatrix) { return this.__displayObject.__getWorldTransform().clone(); } return null; } ,get_matrix: function() { if(this.__hasMatrix) { return this.__displayObject.__transform.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) { this.__setTransform(value.a,value.b,value.c,value.d,value.tx,value.ty); } return value; } ,get_matrix3D: function() { if(this.__hasMatrix3D) { var matrix = this.__displayObject.__transform; return new openfl_geom_Matrix3D(openfl_Vector.toFloatVector(null,null,null,[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])); } return null; } ,set_matrix3D: function(value) { if(value == null) { this.__hasMatrix3D = false; return null; } this.__hasMatrix = false; this.__hasMatrix3D = true; this.__setTransform(value.rawData.get(0),value.rawData.get(1),value.rawData.get(4),value.rawData.get(5),value.rawData.get(12),value.rawData.get(13)); return value; } ,__setTransform: function(a,b,c,d,tx,ty) { if(this.__displayObject != null) { var transform = this.__displayObject.__transform; if(transform.a == a && transform.b == b && transform.c == c && transform.d == d && transform.tx == tx && transform.ty == ty) { return; } var scaleX = 0.0; var scaleY = 0.0; if(b == 0) { scaleX = a; } else { scaleX = Math.sqrt(a * a + b * b); } if(c == 0) { scaleY = d; } else { scaleY = Math.sqrt(c * c + d * d); } this.__displayObject.__scaleX = scaleX; this.__displayObject.__scaleY = scaleY; var rotation = 180 / Math.PI * Math.atan2(d,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); } transform.a = a; transform.b = b; transform.c = c; transform.d = d; transform.tx = tx; transform.ty = ty; this.__displayObject.__setTransformDirty(); } } ,__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.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 = { 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; } if(this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z) { if(allFour) { return this.w == toCompare.w; } else { return true; } } else { return false; } } ,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; } if(Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance) { if(!(!allFour)) { return Math.abs(this.w - toCompare.w) < tolerance; } else { return true; } } else { return false; } } ,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_SoundChannel = function(source,soundTransform) { openfl_events_EventDispatcher.call(this,this); this.leftPeak = 1; this.rightPeak = 1; if(soundTransform != null) { this.__soundTransform = soundTransform; } else { this.__soundTransform = new openfl_media_SoundTransform(); } if(source != null) { this.__source = source; this.__source.onComplete.add($bind(this,this.source_onComplete)); this.__isValid = true; this.__source.play(); } openfl_media_SoundMixer.__registerSoundChannel(this); }; $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 ,__soundTransform: null ,__source: null ,stop: function() { openfl_media_SoundMixer.__unregisterSoundChannel(this); if(!this.__isValid) { return; } this.__source.stop(); this.__dispose(); } ,__dispose: function() { if(!this.__isValid) { return; } this.__source.onComplete.remove($bind(this,this.source_onComplete)); this.__source.dispose(); this.__source = null; this.__isValid = false; } ,__updateTransform: function() { this.set_soundTransform(this.get_soundTransform()); } ,get_position: function() { if(!this.__isValid) { return 0; } return this.__source.get_currentTime() + this.__source.offset; } ,set_position: function(value) { if(!this.__isValid) { return 0; } this.__source.set_currentTime((value | 0) - this.__source.offset); return value; } ,get_soundTransform: function() { return this.__soundTransform.clone(); } ,set_soundTransform: function(value) { if(value != null) { this.__soundTransform.pan = value.pan; this.__soundTransform.volume = value.volume; var pan = openfl_media_SoundMixer.__soundTransform.pan + this.__soundTransform.pan; if(pan < -1) { pan = -1; } if(pan > 1) { pan = 1; } var volume = openfl_media_SoundMixer.__soundTransform.volume * this.__soundTransform.volume; if(this.__isValid) { this.__source.set_gain(volume); var position = this.__source.get_position(); position.x = pan; position.z = -1 * Math.sqrt(1 - Math.pow(pan,2)); this.__source.set_position(position); return value; } } return value; } ,source_onComplete: function() { openfl_media_SoundMixer.__unregisterSoundChannel(this); 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_media_SoundMixer = function() { }; $hxClasses["openfl.media.SoundMixer"] = openfl_media_SoundMixer; openfl_media_SoundMixer.__name__ = "openfl.media.SoundMixer"; openfl_media_SoundMixer.__properties__ = {set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform"}; openfl_media_SoundMixer.bufferTime = null; openfl_media_SoundMixer.areSoundsInaccessible = function() { return false; }; openfl_media_SoundMixer.stopAll = function() { var _g = 0; var _g1 = openfl_media_SoundMixer.__soundChannels; while(_g < _g1.length) { var channel = _g1[_g]; ++_g; channel.stop(); } }; openfl_media_SoundMixer.__registerSoundChannel = function(soundChannel) { openfl_media_SoundMixer.__soundChannels.push(soundChannel); }; openfl_media_SoundMixer.__unregisterSoundChannel = function(soundChannel) { HxOverrides.remove(openfl_media_SoundMixer.__soundChannels,soundChannel); }; openfl_media_SoundMixer.get_soundTransform = function() { return openfl_media_SoundMixer.__soundTransform; }; openfl_media_SoundMixer.set_soundTransform = function(value) { openfl_media_SoundMixer.__soundTransform = value.clone(); var _g = 0; var _g1 = openfl_media_SoundMixer.__soundChannels; while(_g < _g1.length) { var channel = _g1[_g]; ++_g; channel.__updateTransform(); } return value; }; var openfl_media_Video = function(width,height) { if(height == null) { height = 240; } if(width == null) { width = 320; } openfl_display_DisplayObject.call(this); this.__drawableType = 8; this.__width = width; this.__height = height; this.__textureTime = -1; this.smoothing = false; this.deblocking = 0; }; $hxClasses["openfl.media.Video"] = openfl_media_Video; openfl_media_Video.__name__ = "openfl.media.Video"; openfl_media_Video.__super__ = openfl_display_DisplayObject; openfl_media_Video.prototype = $extend(openfl_display_DisplayObject.prototype,{ deblocking: null ,smoothing: null ,__active: null ,__buffer: null ,__bufferAlpha: null ,__bufferColorTransform: null ,__bufferContext: null ,__bufferData: null ,__currentWidth: null ,__currentHeight: null ,__dirty: null ,__height: null ,__indexBuffer: null ,__indexBufferContext: null ,__indexBufferData: null ,__stream: null ,__texture: null ,__textureTime: null ,__uvRect: null ,__vertexBuffer: null ,__vertexBufferContext: null ,__vertexBufferData: null ,__width: null ,attachNetStream: function(netStream) { this.__stream = netStream; if(this.__stream != null && this.__stream.__video != null && !this.__stream.__closed) { this.__stream.__video.play(); } } ,clear: function() { } ,__enterFrame: function(deltaTime) { if(this.__renderable && this.__stream != null) { if(!this.__renderDirty) { this.__renderDirty = true; this.__setParentRenderDirty(); } } } ,__getBounds: function(rect,matrix) { var bounds = openfl_geom_Rectangle.__pool.get(); bounds.setTo(0,0,this.__width,this.__height); bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); openfl_geom_Rectangle.__pool.release(bounds); } ,__getIndexBuffer: function(context) { var gl = context.gl; if(this.__indexBuffer == null || this.__indexBufferContext != context.__context) { var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__indexBufferData = new Uint16Array(6); this.__indexBufferData[0] = 0; this.__indexBufferData[1] = 1; this.__indexBufferData[2] = 2; this.__indexBufferData[3] = 2; this.__indexBufferData[4] = 1; this.__indexBufferData[5] = 3; this.__indexBufferContext = context.__context; this.__indexBuffer = context.createIndexBuffer(6); this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData); } return this.__indexBuffer; } ,__getTexture: function(context) { if(this.__stream == null || this.__stream.__video == null) { return null; } var gl = context.__context.webgl; var internalFormat = gl.RGBA; var format = gl.RGBA; if(!this.__stream.__closed && this.__stream.__video.currentTime != this.__textureTime) { if(this.__texture == null) { this.__texture = context.createRectangleTexture(this.__stream.__video.videoWidth,this.__stream.__video.videoHeight,1,false); } context.__bindGLTexture2D(this.__texture.__textureID); lime_graphics_WebGLRenderContext.texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,format,gl.UNSIGNED_BYTE,this.__stream.__video); this.__textureTime = this.__stream.__video.currentTime; } return this.__texture; } ,__getVertexBuffer: function(context) { var gl = context.gl; if(this.__vertexBuffer == null || this.__vertexBufferContext != context.__context || this.__currentWidth != this.get_width() || this.__currentHeight != this.get_height()) { this.__currentWidth = this.get_width(); this.__currentHeight = this.get_height(); var uvWidth = 1; var uvHeight = 1; var array = null; var vector = null; var view = null; var buffer = null; var len = null; this.__vertexBufferData = new Float32Array(20); this.__vertexBufferData[0] = this.get_width(); this.__vertexBufferData[1] = this.get_height(); this.__vertexBufferData[3] = uvWidth; this.__vertexBufferData[4] = uvHeight; this.__vertexBufferData[6] = this.get_height(); this.__vertexBufferData[9] = uvHeight; this.__vertexBufferData[10] = this.get_width(); this.__vertexBufferData[13] = uvWidth; this.__vertexBufferContext = context.__context; this.__vertexBuffer = context.createVertexBuffer(3,5); this.__vertexBuffer.uploadFromTypedArray(lime_utils_Float32Array.toArrayBufferView(this.__vertexBufferData)); } return this.__vertexBuffer; } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(!hitObject.get_visible() || this.__isMask) { return false; } if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) { return false; } this.__getRenderTransform(); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var px = norm == 0 ? -_this.tx : 1.0 / norm * (_this.c * (_this.ty - y) + _this.d * (x - _this.tx)); var _this = this.__renderTransform; var norm = _this.a * _this.d - _this.b * _this.c; var py = norm == 0 ? -_this.ty : 1.0 / norm * (_this.a * (y - _this.ty) + _this.b * (_this.tx - x)); if(px > 0 && py > 0 && px <= this.__width && py <= this.__height) { if(stack != null && !interactiveOnly) { stack.push(hitObject); } return true; } return false; } ,__hitTestMask: function(x,y) { var point = openfl_geom_Point.__pool.get(); point.setTo(x,y); this.__globalToLocal(point,point); var hit = point.x > 0 && point.y > 0 && point.x <= this.__width && point.y <= this.__height; openfl_geom_Point.__pool.release(point); return hit; } ,get_height: function() { return this.__height * this.get_scaleY(); } ,set_height: function(value) { if(this.get_scaleY() != 1 || value != this.__height) { this.__setTransformDirty(); this.__dirty = true; } this.set_scaleY(1); return this.__height = value; } ,get_videoHeight: function() { if(this.__stream != null && this.__stream.__video != null) { return this.__stream.__video.videoHeight | 0; } return 0; } ,get_videoWidth: function() { if(this.__stream != null && this.__stream.__video != null) { return this.__stream.__video.videoWidth | 0; } return 0; } ,get_width: function() { return this.__width * this.__scaleX; } ,set_width: function(value) { if(this.__scaleX != 1 || this.__width != value) { this.__setTransformDirty(); this.__dirty = true; } this.set_scaleX(1); return this.__width = value; } ,__class__: openfl_media_Video ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{get_videoWidth:"get_videoWidth",get_videoHeight:"get_videoHeight"}) }); var openfl_net_FileReference = function() { openfl_events_EventDispatcher.call(this); this.__inputControl = window.document.createElement("input"); this.__inputControl.setAttribute("type","file"); this.__inputControl.onclick = function(e) { e.cancelBubble = true; e.stopPropagation(); }; }; $hxClasses["openfl.net.FileReference"] = openfl_net_FileReference; openfl_net_FileReference.__name__ = "openfl.net.FileReference"; openfl_net_FileReference.__super__ = openfl_events_EventDispatcher; openfl_net_FileReference.prototype = $extend(openfl_events_EventDispatcher.prototype,{ creationDate: null ,creator: null ,data: null ,modificationDate: null ,name: null ,size: null ,type: null ,extension: null ,__data: null ,__path: null ,__urlLoader: null ,__inputControl: null ,browse: function(typeFilter) { var _gthis = this; this.__data = null; this.__path = null; var filter = null; if(typeFilter != null) { var filters = []; var _g = 0; while(_g < typeFilter.length) { var type = typeFilter[_g]; ++_g; filters.push(StringTools.replace(StringTools.replace(type.extension,"*.","."),";",",")); } filter = filters.join(","); } if(filter != null) { this.__inputControl.setAttribute("accept",filter); } else { this.__inputControl.removeAttribute("accept"); } this.__inputControl.onchange = function() { if(_gthis.__inputControl.files.length == 0) { _gthis.dispatchEvent(new openfl_events_Event("cancel")); return; } var file = _gthis.__inputControl.files[0]; var tmp = new Date(file.lastModified); _gthis.modificationDate = tmp; _gthis.creationDate = _gthis.get_modificationDate(); _gthis.size = file.size; var tmp = haxe_io_Path.extension(file.name); _gthis.type = "." + tmp; _gthis.name = haxe_io_Path.withoutDirectory(file.name); _gthis.__path = file.name; _gthis.dispatchEvent(new openfl_events_Event("select")); }; this.__inputControl.click(); return true; } ,cancel: function() { if(this.__urlLoader != null) { this.__urlLoader.close(); } } ,download: function(request,defaultFileName) { this.__data = null; this.__path = null; this.__urlLoader = new openfl_net_URLLoader(); this.__urlLoader.addEventListener("complete",$bind(this,this.urlLoader_onComplete)); this.__urlLoader.addEventListener("ioError",$bind(this,this.urlLoader_onIOError)); this.__urlLoader.addEventListener("progress",$bind(this,this.urlLoader_onProgress)); this.__urlLoader.load(request); var saveFileDialog = new lime_ui_FileDialog(); saveFileDialog.onCancel.add($bind(this,this.saveFileDialog_onCancel)); saveFileDialog.onSelect.add($bind(this,this.saveFileDialog_onSelect)); saveFileDialog.browse(lime_ui_FileDialogType.SAVE,defaultFileName != null ? haxe_io_Path.extension(defaultFileName) : null,defaultFileName); } ,load: function() { var _gthis = this; var file = this.__inputControl.files[0]; var reader = new FileReader(); reader.onload = function(evt) { _gthis.data = openfl_utils_ByteArray.fromArrayBuffer(evt.target.result); _gthis.openFileDialog_onComplete(); }; reader.readAsArrayBuffer(file); } ,save: function(data,defaultFileName) { this.__data = null; this.__path = null; if(data == null) { return; } if(((data) instanceof openfl_utils_ByteArrayData)) { this.__data = data; } else { this.__data = new openfl_utils_ByteArrayData(0); this.__data.writeUTFBytes(Std.string(data)); } var saveFileDialog = new lime_ui_FileDialog(); saveFileDialog.onCancel.add($bind(this,this.saveFileDialog_onCancel)); saveFileDialog.onSave.add($bind(this,this.saveFileDialog_onSave)); saveFileDialog.save(this.__data,defaultFileName != null ? haxe_io_Path.extension(defaultFileName) : null,defaultFileName); } ,upload: function(request,uploadDataFieldName,testUpload) { if(testUpload == null) { testUpload = false; } if(uploadDataFieldName == null) { uploadDataFieldName = "Filedata"; } openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/net/FileReference.hx", lineNumber : 1311, className : "openfl.net.FileReference", methodName : "upload"}); } ,openFileDialog_onCancel: function() { this.dispatchEvent(new openfl_events_Event("cancel")); } ,openFileDialog_onComplete: function() { this.dispatchEvent(new openfl_events_Event("complete")); } ,openFileDialog_onSelect: function(path) { this.name = haxe_io_Path.withoutDirectory(path); this.__path = path; this.dispatchEvent(new openfl_events_Event("select")); } ,saveFileDialog_onCancel: function() { this.dispatchEvent(new openfl_events_Event("cancel")); } ,saveFileDialog_onSave: function(path) { var _gthis = this; haxe_Timer.delay(function() { _gthis.dispatchEvent(new openfl_events_Event("complete")); },1); } ,saveFileDialog_onSelect: function(path) { this.dispatchEvent(new openfl_events_Event("select")); } ,urlLoader_onComplete: function(event) { this.dispatchEvent(event); } ,urlLoader_onIOError: function(event) { this.dispatchEvent(event); } ,urlLoader_onProgress: function(event) { this.dispatchEvent(event); } ,get_creationDate: function() { return this.creationDate; } ,get_modificationDate: function() { return this.modificationDate; } ,get_name: function() { return this.name; } ,get_size: function() { return this.size; } ,get_type: function() { return this.type; } ,get_extension: function() { return this.extension; } ,__class__: openfl_net_FileReference ,__properties__: {get_extension:"get_extension",get_type:"get_type",get_size:"get_size",get_name:"get_name",get_modificationDate:"get_modificationDate",get_creationDate:"get_creationDate"} }); var openfl_net_IDynamicPropertyOutput = function() { }; $hxClasses["openfl.net.IDynamicPropertyOutput"] = openfl_net_IDynamicPropertyOutput; openfl_net_IDynamicPropertyOutput.__name__ = "openfl.net.IDynamicPropertyOutput"; openfl_net_IDynamicPropertyOutput.__isInterface__ = true; openfl_net_IDynamicPropertyOutput.prototype = { writeDynamicProperty: null ,__class__: openfl_net_IDynamicPropertyOutput }; var openfl_net_IDynamicPropertyWriter = function() { }; $hxClasses["openfl.net.IDynamicPropertyWriter"] = openfl_net_IDynamicPropertyWriter; openfl_net_IDynamicPropertyWriter.__name__ = "openfl.net.IDynamicPropertyWriter"; openfl_net_IDynamicPropertyWriter.__isInterface__ = true; openfl_net_IDynamicPropertyWriter.prototype = { writeDynamicProperties: null ,__class__: openfl_net_IDynamicPropertyWriter }; 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,p1,p2,p3,p4,p5) { if(command != null) { throw haxe_Exception.thrown("Error: Can only connect in \"HTTP streaming\" mode"); } this.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,true,{ code : "NetConnection.Connect.Success"})); } ,__class__: openfl_net_NetConnection }); var openfl_net_NetStream = function(connection,peerID) { openfl_events_EventDispatcher.call(this); this.__connection = connection; this.__soundTransform = new openfl_media_SoundTransform(); this.__video = window.document.createElement("video"); this.__video.setAttribute("playsinline",""); this.__video.setAttribute("webkit-playsinline",""); this.__video.setAttribute("crossorigin","anonymous"); this.__video.addEventListener("error",$bind(this,this.video_onError),false); this.__video.addEventListener("waiting",$bind(this,this.video_onWaiting),false); this.__video.addEventListener("ended",$bind(this,this.video_onEnd),false); this.__video.addEventListener("pause",$bind(this,this.video_onPause),false); this.__video.addEventListener("seeking",$bind(this,this.video_onSeeking),false); this.__video.addEventListener("playing",$bind(this,this.video_onPlaying),false); this.__video.addEventListener("timeupdate",$bind(this,this.video_onTimeUpdate),false); this.__video.addEventListener("loadstart",$bind(this,this.video_onLoadStart),false); this.__video.addEventListener("stalled",$bind(this,this.video_onStalled),false); this.__video.addEventListener("durationchanged",$bind(this,this.video_onDurationChanged),false); this.__video.addEventListener("canplay",$bind(this,this.video_onCanPlay),false); this.__video.addEventListener("canplaythrough",$bind(this,this.video_onCanPlayThrough),false); this.__video.addEventListener("loadedmetadata",$bind(this,this.video_onLoadMetaData),false); }; $hxClasses["openfl.net.NetStream"] = openfl_net_NetStream; openfl_net_NetStream.__name__ = "openfl.net.NetStream"; openfl_net_NetStream.__super__ = openfl_events_EventDispatcher; openfl_net_NetStream.prototype = $extend(openfl_events_EventDispatcher.prototype,{ audioCodec: null ,bufferLength: null ,bufferTime: null ,bytesLoaded: null ,bytesTotal: null ,checkPolicyFile: null ,client: null ,currentFPS: null ,decodedFrames: null ,liveDelay: null ,objectEncoding: null ,time: null ,videoCode: null ,__closed: null ,__connection: null ,__soundTransform: null ,__timer: null ,__video: null ,close: function() { if(this.__video == null) { return; } this.__closed = true; this.__video.pause(); this.__video.src = ""; this.time = 0; } ,dispose: function() { this.close(); this.__video = null; } ,pause: function() { if(this.__video != null) { this.__video.pause(); } } ,play: function(url,p1,p2,p3,p4,p5) { if(this.__video == null) { return; } this.__video.volume = openfl_media_SoundMixer.__soundTransform.volume * this.__soundTransform.volume; if(typeof(url) == "string") { this.__video.src = url; } else { this.__video.srcObject = url; } this.__video.play(); } ,requestVideoStatus: function() { var _gthis = this; if(this.__video == null) { return; } if(this.__timer == null) { this.__timer = new haxe_Timer(1); } this.__timer.run = function() { if(_gthis.__video.paused) { _gthis.__playStatus("NetStream.Play.pause"); } else { _gthis.__playStatus("NetStream.Play.playing"); } _gthis.__timer.stop(); }; } ,resume: function() { if(this.__video != null) { this.__video.play(); } } ,seek: function(time) { if(this.__video == null) { return; } if(time < 0) { time = 0; } else if(time > this.__video.duration) { time = this.__video.duration; } this.__dispatchStatus("NetStream.SeekStart.Notify"); this.__video.currentTime = time; } ,togglePause: function() { if(this.__video == null) { return; } if(this.__video.paused) { this.__video.play(); } else { this.__video.pause(); } } ,__dispatchStatus: function(code) { var event = new openfl_events_NetStatusEvent("netStatus",false,false,{ code : code}); this.__connection.dispatchEvent(event); this.dispatchEvent(event); } ,__playStatus: function(code) { if(this.__video == null) { return; } if(this.client != null) { try { var handler = this.client.onPlayStatus; handler({ code : code, duration : this.__video.duration, position : this.__video.currentTime, speed : this.__video.playbackRate, start : this.__video.startTime}); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } } ,video_onCanPlay: function(event) { this.__playStatus("NetStream.Play.canplay"); } ,video_onCanPlayThrough: function(event) { this.__playStatus("NetStream.Play.canplaythrough"); } ,video_onDurationChanged: function(event) { this.__playStatus("NetStream.Play.durationchanged"); } ,video_onEnd: function(event) { this.__dispatchStatus("NetStream.Play.Stop"); this.__dispatchStatus("NetStream.Play.Complete"); this.__playStatus("NetStream.Play.Complete"); } ,video_onError: function(event) { this.__dispatchStatus("NetStream.Play.Stop"); this.__playStatus("NetStream.Play.error"); } ,video_onLoadMetaData: function(event) { if(this.__video == null) { return; } if(this.client != null) { try { var handler = this.client.onMetaData; handler({ width : this.__video.videoWidth, height : this.__video.videoHeight, duration : this.__video.duration}); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } } ,video_onLoadStart: function(event) { this.__playStatus("NetStream.Play.loadstart"); } ,video_onPause: function(event) { this.__playStatus("NetStream.Play.pause"); } ,video_onPlaying: function(event) { this.__dispatchStatus("NetStream.Play.Start"); this.__playStatus("NetStream.Play.playing"); } ,video_onSeeking: function(event) { this.__playStatus("NetStream.Play.seeking"); this.__dispatchStatus("NetStream.Seek.Complete"); } ,video_onStalled: function(event) { this.__playStatus("NetStream.Play.stalled"); } ,video_onTimeUpdate: function(event) { if(this.__video == null) { return; } this.time = this.__video.currentTime; this.__playStatus("NetStream.Play.timeupdate"); } ,video_onWaiting: function(event) { this.__playStatus("NetStream.Play.waiting"); } ,get_soundTransform: function() { return this.__soundTransform.clone(); } ,set_soundTransform: function(value) { if(value != null) { this.__soundTransform.pan = value.pan; this.__soundTransform.volume = value.volume; if(this.__video != null) { this.__video.volume = openfl_media_SoundMixer.__soundTransform.volume * this.__soundTransform.volume; } } return value; } ,get_speed: function() { if(this.__video != null) { return this.__video.playbackRate; } else { return 1; } } ,set_speed: function(value) { if(this.__video != null) { return this.__video.playbackRate = value; } else { return value; } } ,__class__: openfl_net_NetStream ,__properties__: {set_speed:"set_speed",get_speed:"get_speed",set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform"} }); var openfl_net_ObjectEncoding = {}; openfl_net_ObjectEncoding.dynamicPropertyWriter = null; var openfl_net_SharedObjectFlushStatus = {}; openfl_net_SharedObjectFlushStatus.fromString = function(value) { switch(value) { case "flushed": return 0; case "pending": return 1; default: return null; } }; openfl_net_SharedObjectFlushStatus.toString = function(this1) { switch(this1) { 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.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 ,__httpRequest: null ,close: function() { if(this.__httpRequest != null) { this.__httpRequest.cancel(); } } ,load: function(request) { var _gthis = this; var openEvent = new openfl_events_Event("open"); this.dispatchEvent(openEvent); if(this.dataFormat == 0) { var httpRequest = new lime_net__$HTTPRequest_$openfl_$utils_$ByteArray(); this.__prepareRequest(httpRequest,request); httpRequest.load().onProgress($bind(this,this.httpRequest_onProgress)).onError($bind(this,this.httpRequest_onError)).onComplete(function(data) { _gthis.__dispatchStatus(); _gthis.data = data; var event = new openfl_events_Event("complete"); _gthis.dispatchEvent(event); }); } else { var httpRequest = new lime_net__$HTTPRequest_$String(); this.__prepareRequest(httpRequest,request); httpRequest.load().onProgress($bind(this,this.httpRequest_onProgress)).onError($bind(this,this.httpRequest_onError)).onComplete(function(data) { _gthis.__dispatchStatus(); _gthis.data = data; var event = new openfl_events_Event("complete"); _gthis.dispatchEvent(event); }); } } ,__dispatchStatus: function() { var event = new openfl_events_HTTPStatusEvent("httpStatus",false,false,this.__httpRequest.responseStatus); event.responseURL = this.__httpRequest.uri; var headers = []; if(this.__httpRequest.enableResponseHeaders && this.__httpRequest.responseHeaders != null) { var _g = 0; var _g1 = this.__httpRequest.responseHeaders; while(_g < _g1.length) { var header = _g1[_g]; ++_g; headers.push(new openfl_net_URLRequestHeader(header.name,header.value)); } } event.responseHeaders = headers; this.dispatchEvent(event); } ,__prepareRequest: function(httpRequest,request) { this.__httpRequest = httpRequest; this.__httpRequest.uri = request.url; this.__httpRequest.method = request.method; if(request.data != null) { if(Type.typeof(request.data) == ValueType.TObject) { var fields = Reflect.fields(request.data); var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; this.__httpRequest.formData.h[field] = Reflect.field(request.data,field); } } else if(((request.data) instanceof haxe_io_Bytes)) { this.__httpRequest.data = request.data; } else { this.__httpRequest.data = haxe_io_Bytes.ofString(Std.string(request.data)); } } this.__httpRequest.contentType = request.contentType; if(request.requestHeaders != null) { var _g = 0; var _g1 = request.requestHeaders; while(_g < _g1.length) { var header = _g1[_g]; ++_g; this.__httpRequest.headers.push(new lime_net_HTTPRequestHeader(header.name,header.value)); } } this.__httpRequest.followRedirects = request.followRedirects; this.__httpRequest.timeout = request.idleTimeout | 0; this.__httpRequest.manageCookies = request.manageCookies; var userAgent = request.userAgent; if(userAgent == null) { userAgent = "Mozilla/5.0 (Windows; U; en) AppleWebKit/420+ (KHTML, like Gecko) OpenFL/1.0"; } this.__httpRequest.userAgent = request.userAgent; this.__httpRequest.enableResponseHeaders = true; } ,httpRequest_onError: function(error) { this.__dispatchStatus(); if(error == 403) { var event = new openfl_events_SecurityErrorEvent("securityError"); event.text = Std.string(error); this.dispatchEvent(event); } else { var event = new openfl_events_IOErrorEvent("ioError"); event.text = Std.string(error); this.dispatchEvent(event); } } ,httpRequest_onProgress: function(bytesLoaded,bytesTotal) { var event = new openfl_events_ProgressEvent("progress"); event.bytesLoaded = bytesLoaded; event.bytesTotal = bytesTotal; this.dispatchEvent(event); } ,__class__: openfl_net_URLLoader }); var openfl_net_URLLoaderDataFormat = {}; openfl_net_URLLoaderDataFormat.fromString = function(value) { switch(value) { case "binary": return 0; case "text": return 1; case "variables": return 2; default: return null; } }; openfl_net_URLLoaderDataFormat.toString = function(this1) { switch(this1) { case 0: return "binary"; case 1: return "text"; case 2: return "variables"; default: return null; } }; var openfl_net_URLRequest = function(url) { if(url != null) { this.url = url; } this.contentType = null; this.followRedirects = openfl_net_URLRequestDefaults.followRedirects; if(openfl_net_URLRequestDefaults.idleTimeout > 0) { this.idleTimeout = openfl_net_URLRequestDefaults.idleTimeout; } else { this.idleTimeout = 30000; } this.manageCookies = openfl_net_URLRequestDefaults.manageCookies; this.method = "GET"; this.requestHeaders = []; this.userAgent = openfl_net_URLRequestDefaults.userAgent; }; $hxClasses["openfl.net.URLRequest"] = openfl_net_URLRequest; openfl_net_URLRequest.__name__ = "openfl.net.URLRequest"; openfl_net_URLRequest.prototype = { contentType: null ,data: null ,followRedirects: null ,idleTimeout: null ,manageCookies: null ,method: null ,requestHeaders: null ,url: null ,userAgent: null ,__class__: openfl_net_URLRequest }; var openfl_net_URLRequestDefaults = function() { }; $hxClasses["openfl.net.URLRequestDefaults"] = openfl_net_URLRequestDefaults; openfl_net_URLRequestDefaults.__name__ = "openfl.net.URLRequestDefaults"; openfl_net_URLRequestDefaults.userAgent = null; 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_sensors_Accelerometer = function() { openfl_events_EventDispatcher.call(this); openfl_sensors_Accelerometer.initialize(); this.__interval = 0; this.__muted = false; this.setRequestedUpdateInterval(openfl_sensors_Accelerometer.defaultInterval); }; $hxClasses["openfl.sensors.Accelerometer"] = openfl_sensors_Accelerometer; openfl_sensors_Accelerometer.__name__ = "openfl.sensors.Accelerometer"; openfl_sensors_Accelerometer.__properties__ = {get_isSupported:"get_isSupported"}; openfl_sensors_Accelerometer.initialize = function() { if(!openfl_sensors_Accelerometer.initialized) { var sensors = lime_system_Sensor.getSensors(lime_system_SensorType.ACCELEROMETER); if(sensors.length > 0) { sensors[0].onUpdate.add(openfl_sensors_Accelerometer.accelerometer_onUpdate); openfl_sensors_Accelerometer.supported = true; } openfl_sensors_Accelerometer.initialized = true; } }; openfl_sensors_Accelerometer.accelerometer_onUpdate = function(x,y,z) { openfl_sensors_Accelerometer.currentX = x; openfl_sensors_Accelerometer.currentY = y; openfl_sensors_Accelerometer.currentZ = z; }; openfl_sensors_Accelerometer.get_isSupported = function() { openfl_sensors_Accelerometer.initialize(); return openfl_sensors_Accelerometer.supported; }; openfl_sensors_Accelerometer.__super__ = openfl_events_EventDispatcher; openfl_sensors_Accelerometer.prototype = $extend(openfl_events_EventDispatcher.prototype,{ __interval: null ,__muted: null ,__timer: null ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) { useWeakReference = false; } if(priority == null) { priority = 0; } if(useCapture == null) { useCapture = false; } openfl_events_EventDispatcher.prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference); this.update(); } ,setRequestedUpdateInterval: function(interval) { this.__interval = interval; if(this.__interval < 0) { throw new openfl_errors_ArgumentError(); } else if(this.__interval == 0) { this.__interval = openfl_sensors_Accelerometer.defaultInterval; } if(this.__timer != null) { this.__timer.stop(); this.__timer = null; } if(openfl_sensors_Accelerometer.supported && !this.get_muted()) { this.__timer = new haxe_Timer(this.__interval); this.__timer.run = $bind(this,this.update); } } ,update: function() { var event = new openfl_events_AccelerometerEvent("update"); event.timestamp = new Date().getTime() / 1000; event.accelerationX = openfl_sensors_Accelerometer.currentX; event.accelerationY = openfl_sensors_Accelerometer.currentY; event.accelerationZ = openfl_sensors_Accelerometer.currentZ; this.dispatchEvent(event); } ,get_muted: function() { return this.__muted; } ,set_muted: function(value) { this.__muted = value; this.setRequestedUpdateInterval(this.__interval); return value; } ,__class__: openfl_sensors_Accelerometer ,__properties__: {set_muted:"set_muted",get_muted:"get_muted"} }); 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 $hxClasses[name]; } ,hasDefinition: function(name) { return $hxClasses[name] != null; } ,__class__: openfl_system_ApplicationDomain }; 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.disposeXML = function(node) { }; openfl_system_System.exit = function(code) { lime_system_System.exit(code); }; openfl_system_System.gc = function() { }; openfl_system_System.pause = function() { openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/system/System.hx", lineNumber : 213, className : "openfl.system.System", methodName : "pause"}); }; openfl_system_System.resume = function() { openfl_utils__$internal_Lib.notImplemented({ fileName : "openfl/system/System.hx", lineNumber : 229, className : "openfl.system.System", methodName : "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 = {}; openfl_text_AntiAliasType.fromString = function(value) { switch(value) { case "advanced": return 0; case "normal": return 1; default: return null; } }; openfl_text_AntiAliasType.toString = function(this1) { switch(this1) { case 0: return "advanced"; case 1: return "normal"; default: return null; } }; var openfl_text_FontStyle = {}; openfl_text_FontStyle.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.toString = function(this1) { switch(this1) { case 0: return "bold"; case 1: return "boldItalic"; case 2: return "italic"; case 3: return "regular"; default: return null; } }; var openfl_text_FontType = {}; openfl_text_FontType.fromString = function(value) { switch(value) { case "device": return 0; case "embedded": return 1; case "embeddedCFF": return 2; default: return null; } }; openfl_text_FontType.toString = function(this1) { switch(this1) { case 0: return "device"; case 1: return "embedded"; case 2: return "embeddedCFF"; default: return null; } }; var openfl_text_GridFitType = {}; openfl_text_GridFitType.fromString = function(value) { switch(value) { case "none": return 0; case "pixel": return 1; case "subpixel": return 2; default: return null; } }; openfl_text_GridFitType.toString = function(this1) { switch(this1) { case 0: return "none"; case 1: return "pixel"; case 2: return "subpixel"; default: return null; } }; var openfl_text_StyleSheet = function() { openfl_events_EventDispatcher.call(this); this.clear(); }; $hxClasses["openfl.text.StyleSheet"] = openfl_text_StyleSheet; openfl_text_StyleSheet.__name__ = "openfl.text.StyleSheet"; openfl_text_StyleSheet.__super__ = openfl_events_EventDispatcher; openfl_text_StyleSheet.prototype = $extend(openfl_events_EventDispatcher.prototype,{ __styleNames: null ,__styleNamesDirty: null ,__styles: null ,clear: function() { this.__styleNamesDirty = false; this.__styleNames = null; this.__styles = new haxe_ds_StringMap(); } ,getStyle: function(styleName) { styleName = styleName.toLowerCase(); if(Object.prototype.hasOwnProperty.call(this.__styles.h,styleName)) { return this.__styles.h[styleName]; } else { return null; } } ,parseCSS: function(CSSText) { var _g = new haxe_ds_StringMap(); _g.h["silent"] = true; var parser = new openfl_text__$internal_CSSParser(_g); var ast = parser.parse(CSSText); if(ast != null) { var rules = ast.h["rules"]; var _g = 0; while(_g < rules.length) { var rule = rules[_g]; ++_g; var styleName = Object.prototype.hasOwnProperty.call(rule.h,"selectors") ? rule.h["selectors"] : null; if(styleName != null) { styleName = styleName.toLowerCase(); if(!Object.prototype.hasOwnProperty.call(this.__styles.h,styleName)) { this.__styles.h[styleName] = { }; this.__styleNamesDirty = true; } var object = this.__styles.h[styleName]; var declarations = rule.h["declarations"]; if(declarations != null) { var _g1 = 0; while(_g1 < declarations.length) { var declaration = declarations[_g1]; ++_g1; var property = declaration.h["property"]; var value = Std.string(declaration.h["value"]); if(property != null) { if(property == null) { object[property] = value; } else { switch(property) { case "font-family": var value1 = StringTools.replace(value,"\"",""); var this1 = object; if(this1 != null) { Reflect.setProperty(this1,"fontFamily",value1); } break; case "font-size": var this2 = object; if(this2 != null) { Reflect.setProperty(this2,"fontSize",value); } break; case "font-style": var this3 = object; if(this3 != null) { Reflect.setProperty(this3,"fontStyle",value); } break; case "font-weight": var this4 = object; if(this4 != null) { Reflect.setProperty(this4,"fontWeight",value); } break; case "letter-spacing": var this5 = object; if(this5 != null) { Reflect.setProperty(this5,"letterSpacing",value); } break; case "margin-left": var this6 = object; if(this6 != null) { Reflect.setProperty(this6,"marginLeft",value); } break; case "text-align": var this7 = object; if(this7 != null) { Reflect.setProperty(this7,"textAlign",value); } break; case "text-decoration": var this8 = object; if(this8 != null) { Reflect.setProperty(this8,"textDecoration",value); } break; case "text-indent": var this9 = object; if(this9 != null) { Reflect.setProperty(this9,"textIndent",value); } break; default: object[property] = value; } } } } } } } } } ,setStyle: function(styleName,styleObject) { styleName = styleName.toLowerCase(); if(styleObject == null) { if(Object.prototype.hasOwnProperty.call(this.__styles.h,styleName)) { var _this = this.__styles; if(Object.prototype.hasOwnProperty.call(_this.h,styleName)) { delete(_this.h[styleName]); } } } else { var object = { }; var _g = 0; var _g1 = Reflect.fields(styleObject); while(_g < _g1.length) { var field = _g1[_g]; ++_g; object[field] = Reflect.field(styleObject,field); } this.__styles.h[styleName] = object; } } ,transform: function(formatObject) { var format = new openfl_text_TextFormat(); this.__applyStyleObject(formatObject,format); return format; } ,__applyStyle: function(styleName,textFormat) { styleName = styleName.toLowerCase(); if(Object.prototype.hasOwnProperty.call(this.__styles.h,styleName)) { var style = this.__styles.h[styleName]; this.__applyStyleObject(style,textFormat); } } ,__applyStyleObject: function(styleObject,textFormat) { if(styleObject != null) { var hex = new EReg("[0-9A-Fa-f]+",""); var numeric = new EReg("[0-9]+",""); var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"color")) { var this1 = openfl_utils_Object.__get(styleObject,"color"); tmp = hex.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.color = Std.parseInt("0x" + hex.matched(0)); } var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"fontFamily")) { var this1 = openfl_utils_Object.__get(styleObject,"fontFamily"); textFormat.font = this.__parseFont(this1 == null ? null : Std.string(this1)); } var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"fontSize")) { var this1 = openfl_utils_Object.__get(styleObject,"fontSize"); tmp = numeric.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.size = Std.parseInt(numeric.matched(0)); } var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"fontStyle")) { switch(openfl_utils_Object.__get(styleObject,"fontStyle")) { case "italic": textFormat.italic = true; break; case "normal": textFormat.italic = false; break; default: } } var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"fontWeight")) { switch(openfl_utils_Object.__get(styleObject,"fontWeight")) { case "bold": textFormat.bold = true; break; case "normal": textFormat.bold = false; break; default: } } var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"leading")) { var this1 = openfl_utils_Object.__get(styleObject,"leading"); tmp = numeric.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.leading = Std.parseInt(numeric.matched(0)); } var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"letterSpacing")) { var this1 = openfl_utils_Object.__get(styleObject,"letterSpacing"); tmp = numeric.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.letterSpacing = parseFloat(numeric.matched(0)); } var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"marginLeft")) { var this1 = openfl_utils_Object.__get(styleObject,"marginLeft"); tmp = numeric.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.leftMargin = Std.parseInt(numeric.matched(0)); } var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"marginRight")) { var this1 = openfl_utils_Object.__get(styleObject,"marginRight"); tmp = numeric.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.rightMargin = Std.parseInt(numeric.matched(0)); } var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"textAlign")) { switch(openfl_utils_Object.__get(styleObject,"textAlign")) { case "center": textFormat.align = 0; break; case "justify": textFormat.align = 2; break; case "left": textFormat.align = 3; break; case "right": textFormat.align = 4; break; default: } } var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"textDecoration")) { switch(openfl_utils_Object.__get(styleObject,"textDecoration")) { case "none": textFormat.underline = false; break; case "underline": textFormat.underline = true; break; default: } } var tmp; var this1 = styleObject; if(this1 != null && Object.prototype.hasOwnProperty.call(this1,"textIndent")) { var this1 = openfl_utils_Object.__get(styleObject,"textIndent"); tmp = numeric.match(this1 == null ? null : Std.string(this1)); } else { tmp = false; } if(tmp) { textFormat.blockIndent = Std.parseInt(numeric.matched(0)); } } } ,__parseFont: function(fontFamily) { if(fontFamily == null) { return null; } if(fontFamily.indexOf(",") > -1) { fontFamily = HxOverrides.substr(fontFamily,0,fontFamily.indexOf(",")); } switch(fontFamily) { case "mono": return "_typewriter"; case "sans-serif": return "_sans"; case "serif": return "_serif"; default: return fontFamily; } } ,get_styleNames: function() { if(this.__styleNames == null || this.__styleNamesDirty) { this.__styleNames = []; var h = this.__styles.h; var style_h = h; var style_keys = Object.keys(h); var style_length = style_keys.length; var style_current = 0; while(style_current < style_length) { var style = style_keys[style_current++]; this.__styleNames.push(style); } this.__styleNamesDirty = false; } return this.__styleNames; } ,__class__: openfl_text_StyleSheet ,__properties__: {get_styleNames:"get_styleNames"} }); var openfl_text_TextFieldAutoSize = {}; openfl_text_TextFieldAutoSize.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.toString = function(this1) { switch(this1) { case 0: return "center"; case 1: return "left"; case 2: return "none"; case 3: return "right"; default: return null; } }; var openfl_text_TextFieldType = {}; openfl_text_TextFieldType.fromString = function(value) { switch(value) { case "dynamic": return 0; case "input": return 1; default: return null; } }; openfl_text_TextFieldType.toString = function(this1) { switch(this1) { 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 ,__ascent: null ,__descent: null ,__cacheKey: 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; newFormat.__ascent = this.__ascent; newFormat.__descent = this.__descent; newFormat.__cacheKey = this.__toCacheKey(); 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; } if(format.__ascent != null) { this.__ascent = format.__ascent; } if(format.__descent != null) { this.__descent = format.__descent; } this.__toCacheKey(); } ,__toCacheKey: function() { return this.__cacheKey = "" + this.font + this.size + Std.string(this.bold) + Std.string(this.italic); } ,__class__: openfl_text_TextFormat }; var openfl_text_TextFormatAlign = {}; openfl_text_TextFormatAlign.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.toString = function(this1) { switch(this1) { 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_text__$internal_CSSParser = function(options) { this.importRegex = new EReg("@import .*?;","ig"); this.commentRegex = "(\\/\\*[\\s\\S]*?\\*\\/)"; this.combinedCSSRegex = "((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)*?})"; this.keyframeRegex = "((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})"; this.mediaQueryRegex = "((@media [\\s\\S]*?){([\\s\\S]*?}\\s*?)})"; this.cssRegex = new EReg("([\\s\\S]*?){([\\s\\S]*?)*}","ig"); this.keyframeStatements = []; this.importStatements = []; }; $hxClasses["openfl.text._internal.CSSParser"] = openfl_text__$internal_CSSParser; openfl_text__$internal_CSSParser.__name__ = "openfl.text._internal.CSSParser"; openfl_text__$internal_CSSParser.prototype = { source: null ,options: null ,importStatements: null ,keyframeStatements: null ,cssRegex: null ,mediaQueryRegex: null ,keyframeRegex: null ,combinedCSSRegex: null ,commentRegex: null ,importRegex: null ,stripComments: function(css) { var regex_r = new RegExp(this.commentRegex,"ig".split("u").join("")); return css.replace(regex_r,""); } ,parseRules: function(rules) { var rulesReg = new EReg("(\\*?[-#/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)+((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)","g"); var arr = this.getMatches(rulesReg,rules); var ret = []; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; if(!rulesReg.match(arr[i])) { return null; } rules = rulesReg.matched(0).split("\r\n").join("\n"); var line = rules; line = StringTools.trim(line); if(line.indexOf(":") != -1) { var directive = StringTools.trim(line.split(":")[0]); var value = StringTools.trim(line.split(":")[1]); if(directive.length < 1 || value.length < 1) { continue; } var _g2 = new haxe_ds_StringMap(); _g2.h["type"] = "declaration"; _g2.h["property"] = directive; _g2.h["value"] = value; ret.push(_g2); } else if(HxOverrides.substr(StringTools.trim(line),0,7) == "base64,") { var _line = line + StringTools.trim(line); ret[ret.length - 1].h["value"] = _line; } else if(line.length > 0) { var _g3 = new haxe_ds_StringMap(); _g3.h["type"] = "declaration"; _g3.h["property"] = ""; _g3.h["value"] = line; _g3.h["defective"] = true; ret.push(_g3); } } return ret; } ,findCorrespondingRule: function(rules,directive,value) { var ret = null; var _g = 0; var _g1 = rules.length; while(_g < _g1) { var i = _g++; if(rules[i].h["directive"] == directive) { ret = rules[i]; if(value == rules[i].h["value"]) { break; } } } return ret; } ,findBySelector: function(objectArray,selector,contains) { if(contains == null) { contains = false; } var found = []; var _g = 0; var _g1 = objectArray.length; while(_g < _g1) { var i = _g++; if(contains == false) { if(objectArray[i].h["selector"] == selector) { found.push(objectArray[i]); } } else if((js_Boot.__cast(objectArray[i].h["selector"] , String)).indexOf(selector) != -1) { found.push(objectArray[i]); } } if(selector == "@imports" || found.length < 2) { return found; } else { var base = found[0]; var _g = 0; var _g1 = found.length; while(_g < _g1) { var i = _g++; this.intelligentCSSPush([base],found[i]); } return [base]; } } ,deleteBySelector: function(objectArray,selector) { var ret = []; var _g = 0; var _g1 = objectArray.length; while(_g < _g1) { var i = _g++; if(objectArray[i].h["selector"] != selector) { ret.push(objectArray[i]); } } return ret; } ,compress: function(objectArray) { var compressed = []; var done_h = Object.create(null); var _g = 0; var _g1 = objectArray.length; while(_g < _g1) { var i = _g++; var obj = objectArray[i]; if(done_h[obj.h["selector"]] == true) { continue; } var found = this.findBySelector(objectArray,obj.h["selector"]); if(found.length != 0) { compressed = compressed.concat(found); done_h["selector"] = true; } } return compressed; } ,diff: function(object1,object2) { if(object1.h["selector"] == object2.h["selector"]) { return null; } if(object1.h["type"] == "media" || object2.h["type"] == "media") { return null; } var _g = new haxe_ds_StringMap(); _g.h["selector"] = object1.h["selector"]; var value = []; _g.h["rules"] = value; var diff = _g; var rule1 = new haxe_ds_StringMap(); var rule2 = new haxe_ds_StringMap(); var _length = (js_Boot.__cast(object1.h["rules"] , Array)).length; var _length2 = (js_Boot.__cast(object2.h["rules"] , Array)).length; var _g = 0; var _g1 = _length; while(_g < _g1) { var i = _g++; rule1 = (js_Boot.__cast(object1.h["rules"] , Array))[1]; rule2 = this.findCorrespondingRule(object2.h["rules"],object1.h["directive"],object1.h["value"]); if(rule2 == null) { (js_Boot.__cast(diff.h["rules"] , Array)).push(rule1); } else if(rule1.h["value"] != rule2.h["value"]) { (js_Boot.__cast(diff.h["rules"] , Array)).push(rule1); } } var _g = 0; var _g1 = _length2; while(_g < _g1) { var i = _g++; rule2 = (js_Boot.__cast(object1.h["rules"] , Array))[1]; rule1 = this.findCorrespondingRule(object1.h["rules"],object2.h["directive"]); if(rule1 == null) { rule2.h["type"] = "DELETED"; (js_Boot.__cast(diff.h["rules"] , Array)).push(rule2); } } if((js_Boot.__cast(diff.h["rules"] , Array)).length == 0) { return null; } return diff; } ,intelligentMerge: function(objectArray,newArray,reverse) { if(reverse == null) { reverse = false; } var _g = 0; var _g1 = newArray.length; while(_g < _g1) { var i = _g++; this.intelligentCSSPush(objectArray,newArray[i],reverse); } var _g = 0; var _g1 = objectArray.length; while(_g < _g1) { var i = _g++; var cobj = objectArray[i]; if(cobj.h["type"] == "media" || cobj.h["type"] == "keyframes") { continue; } var value = this.compactRules(cobj.h["rules"]); cobj.h["rules"] = value; } } ,intelligentCSSPush: function(objectArray,minimalObject,reverse) { if(reverse == null) { reverse = false; } var pushSelector = minimalObject.h["selector"]; var cssObject = null; if(reverse == false) { var _g = 0; var _g1 = objectArray.length; while(_g < _g1) { var i = _g++; if(objectArray[i].h["selector"] == minimalObject.h["selector"]) { cssObject = objectArray[i]; break; } } } else { var j = objectArray.length - 1; while(j > -1) { if(objectArray[j].h["selector"] == minimalObject.h["selector"]) { cssObject = objectArray[j]; break; } --j; } } if(cssObject == null) { objectArray.push(minimalObject); } else if(minimalObject.h["type"] != "media") { var mRules = minimalObject.h["rules"]; var _g = 0; var _g1 = mRules.length; while(_g < _g1) { var i = _g++; var rule = mRules[i]; var oldRule = this.findCorrespondingRule(cssObject.h["rules"],rule.h["directive"]); if(oldRule == null) { var cRules = cssObject.h["rules"]; cRules.push(rule); } else if(rule.h["type"] == "DELETED") { oldRule.h["type"] = "DELETED"; } else { oldRule.h["value"] = rule.h["value"]; } } } else { var value = (js_Boot.__cast(cssObject.h["subStyles"] , Array)).concat(minimalObject.h["subStyles"]); cssObject.h["value"] = value; } } ,compactRules: function(rules) { var newRules = []; var _g = 0; var _g1 = rules.length; while(_g < _g1) { var i = _g++; if(rules[i].h["type"] != "DELETED") { newRules.push(rules[i]); } } return newRules; } ,getImports: function(objectArray) { var imps = []; var _g = 0; var _g1 = objectArray.length; while(_g < _g1) { var i = _g++; if(objectArray[i].h["type"] == "imports") { imps.push(objectArray[i].h["styles"]); } } return imps; } ,parse: function(source) { if(source == null) { return null; } var _this_r = new RegExp("^\\s+|\\s+$","g".split("u").join("")); source = source.replace(_this_r,""); var css = []; var m = this.importRegex.match(source); while(m) { var imports = this.importRegex.matched(0); if(imports != null) { this.importStatements.push(imports); var _g = new haxe_ds_StringMap(); _g.h["selector"] = "@imports"; _g.h["type"] = "imports"; _g.h["styles"] = imports; css.push(_g); } else { break; } } source = source.replace(this.importRegex.r,""); var keyframesRegex = new EReg(this.keyframeRegex,"gi"); var arr = null; while(keyframesRegex.match(source)) { arr = this.getMatches(keyframesRegex,source); if(arr == null) { break; } var _g = new haxe_ds_StringMap(); _g.h["selectors"] = "@keyframes"; _g.h["type"] = "keyframes"; var value = keyframesRegex.matchedRight(); _g.h["styles"] = value; css.push(_g); } source = source.replace(keyframesRegex.r,""); var unified = new EReg(this.combinedCSSRegex,"gi"); while(unified.match(source)) { arr = this.getMatches(unified,source); if(arr == null) { break; } var selector = ""; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var selReg = new EReg("^([^{]+)",""); if(selReg.match(arr[i])) { if(selReg.matched(0) != null) { selector = StringTools.trim(selReg.matched(0).split("\r\n").join("\n")); } var commentsRegex = new EReg(this.commentRegex,"gi"); var comments = this.getMatches(commentsRegex,selector); if(comments != null) { selector = StringTools.trim(selector.replace(commentsRegex.r,"")); } var _this_r = new RegExp("\n+","".split("u").join("")); selector = selector.replace(_this_r,"\n"); if(selector.indexOf("@media") != -1) { var _g2 = new haxe_ds_StringMap(); _g2.h["selectors"] = selector; _g2.h["type"] = "media"; var value = this.parse(selReg.matchedRight() + "\n}"); _g2.h["subStyles"] = value; var object = _g2; if(comments != null) { object.h["comments"] = comments[0]; } css.push(object); } else if(selReg.matchedRight() != null) { var rules = this.parseRules(selReg.matchedRight()); var _g3 = new haxe_ds_StringMap(); _g3.h["selectors"] = selector; _g3.h["type"] = "rule"; _g3.h["declarations"] = rules; var styleObject = _g3; if(selector == "@font-face") { styleObject.h["type"] = "font-face"; } if(comments != null) { styleObject.h["comments"] = comments[0]; } css.push(styleObject); } } else { break; } } break; } var _g = new haxe_ds_StringMap(); _g.h["type"] = "stylesheet"; _g.h["rules"] = css; _g.h["parsingErrors"] = []; var ret = _g; return ret; } ,getMatches: function(ereg,input,index) { if(index == null) { index = 0; } var matches = []; while(ereg.match(input)) { var match = StringTools.trim(ereg.matched(index)); matches.push(match); input = StringTools.trim(ereg.matchedRight()); } if(matches.length == 0) { return null; } return matches; } ,__class__: openfl_text__$internal_CSSParser }; var openfl_text__$internal_CacheMeasurement = function(wordKey,positions) { this.__collisions = []; this.__wordMap = new haxe_ds_IntMap(); this.set(wordKey,positions); }; $hxClasses["openfl.text._internal.CacheMeasurement"] = openfl_text__$internal_CacheMeasurement; openfl_text__$internal_CacheMeasurement.__name__ = "openfl.text._internal.CacheMeasurement"; openfl_text__$internal_CacheMeasurement.prototype = { __collisions: null ,__wordMap: null ,hash: null ,set: function(wordKey,positions) { this.__addCollision(wordKey,positions); } ,get: function(wordKey) { if(this.__collisions.length > 1) { return this.__wordMap.h[this.__collisions.indexOf(wordKey)]; } return this.__wordMap.h[0]; } ,__addCollision: function(wordKey,positions) { if(!this.exists(wordKey)) { var _this = this.__wordMap; var key = this.__collisions.push(wordKey) - 1; _this.h[key] = positions; } } ,exists: function(wordKey) { if(this.__collisions.length == 0) { return false; } return this.__collisions.indexOf(wordKey) > -1; } ,__class__: openfl_text__$internal_CacheMeasurement }; var openfl_text__$internal_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["openfl.text._internal.GlyphPosition"] = openfl_text__$internal_GlyphPosition; openfl_text__$internal_GlyphPosition.__name__ = "openfl.text._internal.GlyphPosition"; openfl_text__$internal_GlyphPosition.prototype = { advance: null ,glyph: null ,offset: null ,__class__: openfl_text__$internal_GlyphPosition }; var openfl_text__$internal_HTMLParser = function() { }; $hxClasses["openfl.text._internal.HTMLParser"] = openfl_text__$internal_HTMLParser; openfl_text__$internal_HTMLParser.__name__ = "openfl.text._internal.HTMLParser"; openfl_text__$internal_HTMLParser.parse = function(value,multiline,styleSheet,textFormat,textFormatRanges) { if(multiline) { value = value.replace(openfl_text__$internal_HTMLParser.__regexBreakTag.r,"\n"); } else { value = value.replace(openfl_text__$internal_HTMLParser.__regexBreakTag.r,""); } value = value.replace(openfl_text__$internal_HTMLParser.__regexEntities[5].r," "); value = openfl_text__$internal_HTMLParser.__regexCharEntity.map(value,function(ereg) { var decimalStr = ereg.matched(1); var hexStr = ereg.matched(2); if(decimalStr != null) { var decimal = Std.parseInt(decimalStr); if(decimal != null) { return String.fromCodePoint(decimal); } } if(hexStr != null) { var hex = Std.parseInt("0" + hexStr); if(hex != null) { return String.fromCodePoint(hex); } } return ereg.matched(0); }); var segments = value.split("<"); if(segments.length == 1) { value = StringTools.htmlUnescape(value.replace(openfl_text__$internal_HTMLParser.__regexHTMLTag.r,"")); if(textFormatRanges.get_length() > 1) { var deleteCount = textFormatRanges.get_length() - 1; textFormatRanges.__tempIndex = 1; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; textFormatRanges.insertAt(textFormatRanges.__tempIndex,item); textFormatRanges.__tempIndex++; } textFormatRanges.splice(textFormatRanges.__tempIndex,deleteCount); } var range = textFormatRanges.get(0); range.format = textFormat; range.start = 0; range.end = value.length; return value; } else { var deleteCount = textFormatRanges.get_length(); textFormatRanges.__tempIndex = 0; var _g_current = 0; var _g_args = []; while(_g_current < _g_args.length) { var item = _g_args[_g_current++]; textFormatRanges.insertAt(textFormatRanges.__tempIndex,item); textFormatRanges.__tempIndex++; } textFormatRanges.splice(textFormatRanges.__tempIndex,deleteCount); value = ""; var formatStack = [textFormat.clone()]; var tagStack = []; var sub; var noLineBreak = false; var _g = 0; while(_g < segments.length) { var segment = segments[_g]; ++_g; if(segment == "") { continue; } var isClosingTag = HxOverrides.substr(segment,0,1) == "/"; var tagEndIndex = segment.indexOf(">"); var start = tagEndIndex + 1; var spaceIndex = segment.indexOf(" "); var tagName = segment.substring(isClosingTag ? 1 : 0,spaceIndex > -1 && spaceIndex < tagEndIndex ? spaceIndex : tagEndIndex).toLowerCase(); var format; if(isClosingTag) { if(tagStack.length == 0 || tagName != tagStack[tagStack.length - 1]) { continue; } tagStack.pop(); formatStack.pop(); format = formatStack[formatStack.length - 1].clone(); if((tagName == "p" || tagName == "li") && textFormatRanges.get_length() > 0) { if(multiline) { value += "\n"; } noLineBreak = true; } if(start < segment.length) { sub = StringTools.htmlUnescape(HxOverrides.substr(segment,start,null)); textFormatRanges.push(new openfl_text__$internal_TextFormatRange(format,value.length,value.length + sub.length)); value += sub; noLineBreak = false; } } else { format = formatStack[formatStack.length - 1].clone(); if(tagEndIndex > -1) { if(styleSheet != null) { styleSheet.__applyStyle(tagName,format); if(openfl_text__$internal_HTMLParser.__regexClass.match(segment)) { styleSheet.__applyStyle("." + openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexClass),format); styleSheet.__applyStyle(tagName + "." + openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexClass),format); } } switch(tagName) { case "a": if(styleSheet != null) { styleSheet.__applyStyle("a:link",format); } if(openfl_text__$internal_HTMLParser.__regexHref.match(segment)) { format.url = openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexHref); } break; case "b": format.bold = true; break; case "em":case "i": format.italic = true; break; case "font": if(openfl_text__$internal_HTMLParser.__regexFace.match(segment)) { format.font = openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexFace); } if(openfl_text__$internal_HTMLParser.__regexColor.match(segment)) { format.color = Std.parseInt("0x" + openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexColor)); } if(openfl_text__$internal_HTMLParser.__regexSize.match(segment)) { var sizeAttr = openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexSize); var firstChar = HxOverrides.cca(sizeAttr,0); if(firstChar == 43 || firstChar == 45) { var parentFormat = formatStack.length >= 2 ? formatStack[formatStack.length - 2] : textFormat; format.size = parentFormat.size + Std.parseInt(sizeAttr); } else { format.size = Std.parseInt(sizeAttr); } } break; case "li": if(textFormatRanges.get_length() > 0 && !noLineBreak) { value += "\n"; } var bullet = "• "; var bulletFormat = format.clone(); bulletFormat.underline = false; textFormatRanges.push(new openfl_text__$internal_TextFormatRange(bulletFormat,value.length,value.length + bullet.length)); value += bullet; break; case "p": if(textFormatRanges.get_length() > 0 && !noLineBreak) { value += "\n"; } if(openfl_text__$internal_HTMLParser.__regexAlign.match(segment)) { var align = openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexAlign).toLowerCase(); format.align = openfl_text_TextFormatAlign.fromString(align); } break; case "textformat": if(openfl_text__$internal_HTMLParser.__regexBlockIndent.match(segment)) { format.blockIndent = Std.parseInt(openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexBlockIndent)); } if(openfl_text__$internal_HTMLParser.__regexIndent.match(segment)) { format.indent = Std.parseInt(openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexIndent)); } if(openfl_text__$internal_HTMLParser.__regexLeading.match(segment)) { format.leading = Std.parseInt(openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexLeading)); } if(openfl_text__$internal_HTMLParser.__regexLeftMargin.match(segment)) { format.leftMargin = Std.parseInt(openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexLeftMargin)); } if(openfl_text__$internal_HTMLParser.__regexRightMargin.match(segment)) { format.rightMargin = Std.parseInt(openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexRightMargin)); } if(openfl_text__$internal_HTMLParser.__regexTabStops.match(segment)) { var values = openfl_text__$internal_HTMLParser.__getAttributeMatch(openfl_text__$internal_HTMLParser.__regexTabStops).split(" "); var tabStops = []; var _g1 = 0; while(_g1 < values.length) { var stop = values[_g1]; ++_g1; tabStops.push(Std.parseInt(stop)); } format.tabStops = tabStops; } break; case "u": format.underline = true; break; } formatStack.push(format); tagStack.push(tagName); if(start < segment.length) { sub = StringTools.htmlUnescape(segment.substring(start)); textFormatRanges.push(new openfl_text__$internal_TextFormatRange(format,value.length,value.length + sub.length)); value += sub; noLineBreak = false; } } else { sub = StringTools.htmlUnescape(segment); textFormatRanges.push(new openfl_text__$internal_TextFormatRange(format,value.length,value.length + sub.length)); value += sub; noLineBreak = false; } } } if(textFormatRanges.get_length() == 0) { textFormatRanges.push(new openfl_text__$internal_TextFormatRange(formatStack[0],0,0)); } } return value; }; openfl_text__$internal_HTMLParser.__getAttributeMatch = function(regex) { if(regex.matched(2) != null) { return regex.matched(2); } else { return regex.matched(3); } }; var openfl_text__$internal_ShapeCache = function() { this.__shortWordMap = new haxe_ds_StringMap(); this.__longWordMap = new haxe_ds_StringMap(); }; $hxClasses["openfl.text._internal.ShapeCache"] = openfl_text__$internal_ShapeCache; openfl_text__$internal_ShapeCache.__name__ = "openfl.text._internal.ShapeCache"; openfl_text__$internal_ShapeCache.hashFunction = function(key) { var hash = 0; var i; var chr; var _g = 0; var _g1 = key.length; while(_g < _g1) { var i = _g++; chr = HxOverrides.cca(key,i); hash = (hash << 5) - hash + chr; hash |= 0; } return hash; }; openfl_text__$internal_ShapeCache.prototype = { __shortWordMap: null ,__longWordMap: null ,cache: function(formatRange,getPositions,wordKey) { var formatKey = formatRange.format.__cacheKey; if(wordKey.length > 15) { return this.__cacheLongWord(wordKey,formatKey,getPositions); } else { return this.__cacheShortWord(wordKey,formatKey,getPositions); } } ,__cacheShortWord: function(wordKey,formatKey,getPositions) { if(Object.prototype.hasOwnProperty.call(this.__shortWordMap.h,formatKey)) { var formatMap = this.__shortWordMap.h[formatKey]; if(Object.prototype.hasOwnProperty.call(formatMap.h,wordKey)) { return formatMap.h[wordKey]; } else { var value = getPositions(); formatMap.h[wordKey] = value; } } else { var formatMap = new haxe_ds_StringMap(); var value = getPositions(); formatMap.h[wordKey] = value; this.__shortWordMap.h[formatKey] = formatMap; } return getPositions(); } ,__cacheLongWord: function(wordKey,formatKey,getPositions) { var hash = openfl_text__$internal_ShapeCache.hashFunction(wordKey); if(Object.prototype.hasOwnProperty.call(this.__longWordMap.h,formatKey)) { var formatMap = this.__longWordMap.h[formatKey]; if(formatMap.h.hasOwnProperty(hash)) { var measurement = formatMap.h[hash]; if(measurement.exists(wordKey)) { return measurement.get(wordKey); } else { measurement.set(wordKey,getPositions()); } } else { var measurement = new openfl_text__$internal_CacheMeasurement(wordKey,getPositions()); formatMap.h[hash] = measurement; } } else { var formatMap = new haxe_ds_IntMap(); var measurement = new openfl_text__$internal_CacheMeasurement(wordKey,getPositions()); measurement.hash = hash; formatMap.h[hash] = measurement; this.__longWordMap.h[formatKey] = formatMap; } return getPositions(); } ,__class__: openfl_text__$internal_ShapeCache }; var openfl_text__$internal_TextEngine = function(textField) { this.__shapeCache = new openfl_text__$internal_ShapeCache(); this.textField = textField; this.width = 100; this.height = 100; this.set_text(""); this.bounds = new openfl_geom_Rectangle(0,0,0,0); this.textBounds = new openfl_geom_Rectangle(0,0,0,0); this.type = 0; this.autoSize = 2; 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.numLines = 1; this.sharpness = 0; this.scrollH = 0; this.set_scrollV(1); this.wordWrap = false; this.lineAscents = openfl_Vector.toFloatVector(null); this.lineBreaks = openfl_Vector.toIntVector(null); this.lineDescents = openfl_Vector.toFloatVector(null); this.lineLeadings = openfl_Vector.toFloatVector(null); this.lineHeights = openfl_Vector.toFloatVector(null); this.lineWidths = openfl_Vector.toFloatVector(null); this.layoutGroups = openfl_Vector.toObjectVector(null); this.textFormatRanges = openfl_Vector.toObjectVector(null); if(openfl_text__$internal_TextEngine.__context == null) { openfl_text__$internal_TextEngine.__context = window.document.createElement("canvas").getContext("2d"); } }; $hxClasses["openfl.text._internal.TextEngine"] = openfl_text__$internal_TextEngine; openfl_text__$internal_TextEngine.__name__ = "openfl.text._internal.TextEngine"; openfl_text__$internal_TextEngine.__defaultFonts = null; openfl_text__$internal_TextEngine.__context = null; openfl_text__$internal_TextEngine.__div = null; openfl_text__$internal_TextEngine.findFont = function(name) { return openfl_text_Font.__fontByName.h[name]; }; openfl_text__$internal_TextEngine.findFontVariant = function(format) { var fontName = format.font; var bold = format.bold; var italic = format.italic; if(fontName == null) { fontName = "_serif"; } var fontNamePrefix = StringTools.replace(StringTools.replace(fontName," Normal","")," Regular",""); if(bold && italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold Italic")) { return openfl_text__$internal_TextEngine.findFont(fontNamePrefix + " Bold Italic"); } else if(bold && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold")) { return openfl_text__$internal_TextEngine.findFont(fontNamePrefix + " Bold"); } else if(italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Italic")) { return openfl_text__$internal_TextEngine.findFont(fontNamePrefix + " Italic"); } return openfl_text__$internal_TextEngine.findFont(fontName); }; openfl_text__$internal_TextEngine.getDefaultFont = function(name,bold,italic) { if(openfl_text__$internal_TextEngine.__defaultFonts == null) { openfl_text__$internal_TextEngine.__defaultFonts = new haxe_ds_StringMap(); } var fontSet = openfl_text__$internal_TextEngine.__defaultFonts.h[name]; if(fontSet == null) { return null; } if(bold && italic && fontSet.boldItalic != null) { return fontSet.boldItalic; } else if(italic && fontSet.italic != null) { return fontSet.italic; } else if(bold && fontSet.bold != null) { return fontSet.bold; } else { return fontSet.normal; } }; openfl_text__$internal_TextEngine.getFormatHeight = function(format) { var ascent; var descent; var font = openfl_text__$internal_TextEngine.getFont(format); openfl_text__$internal_TextEngine.__context.font = font; var font = openfl_text__$internal_TextEngine.getFontInstance(format); if(format.__ascent != null) { ascent = format.size * format.__ascent; descent = format.size * format.__descent; } else if(font != null && font.unitsPerEM != 0) { ascent = font.ascender / font.unitsPerEM * format.size; descent = Math.abs(font.descender / font.unitsPerEM * format.size); } else { ascent = format.size; descent = format.size * 0.185; } var leading = format.leading; return ascent + descent + leading; }; openfl_text__$internal_TextEngine.getFont = function(format) { var fontName = format.font; var bold = format.bold; var italic = format.italic; if(fontName == null) { fontName = "_serif"; } var fontNamePrefix = StringTools.replace(StringTools.replace(fontName," Normal","")," Regular",""); if(bold && italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold Italic")) { fontName = fontNamePrefix + " Bold Italic"; bold = false; italic = false; } else if(bold && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Bold")) { fontName = fontNamePrefix + " Bold"; bold = false; } else if(italic && Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,fontNamePrefix + " Italic")) { fontName = fontNamePrefix + " Italic"; italic = false; } else { if(bold && (fontName.indexOf(" Bold ") > -1 || StringTools.endsWith(fontName," Bold"))) { bold = false; } if(italic && (fontName.indexOf(" Italic ") > -1 || StringTools.endsWith(fontName," Italic"))) { italic = false; } } var font = italic ? "italic " : "normal "; font += "normal "; font += bold ? "bold " : "normal "; font += format.size + "px"; font += "/" + (format.size + 3) + "px "; var font1; switch(fontName) { case "_sans": font1 = "sans-serif"; break; case "_serif": font1 = "serif"; break; case "_typewriter": font1 = "monospace"; break; default: var _this_r = new RegExp("^[\\s'\"]+(.*)[\\s'\"]+$","".split("u").join("")); font1 = "'" + fontName.replace(_this_r,"$1") + "'"; } font += "" + font1; return font; }; openfl_text__$internal_TextEngine.getFontInstance = function(format) { return openfl_text__$internal_TextEngine.findFontVariant(format); }; openfl_text__$internal_TextEngine.prototype = { antiAliasType: null ,autoSize: null ,background: null ,backgroundColor: null ,border: null ,borderColor: null ,bottomScrollV: null ,bounds: null ,caretIndex: 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 ,textBounds: null ,textHeight: null ,textFormatRanges: null ,textWidth: null ,type: null ,width: null ,wordWrap: null ,textField: null ,__cursorTimer: null ,__hasFocus: null ,__isKeyDown: null ,__measuredHeight: null ,__measuredWidth: null ,__restrictRegexp: null ,__selectionStart: null ,__shapeCache: null ,__showCursor: null ,__textFormat: null ,__textLayout: null ,__texture: null ,__useIntAdvances: null ,__cairoFont: null ,__font: null ,createRestrictRegexp: function(restrict) { var declinedRange = new EReg("\\^([^\\^]+)","gu"); var declined = ""; var accepting = false; var accepted = declinedRange.map(restrict,function(ereg) { if(accepting) { accepting = !accepting; return ereg.matched(1); } declined += ereg.matched(1); accepting = !accepting; return ""; }); var testRegexpParts = []; if(accepted.length > 0) { testRegexpParts.push("[^" + accepted + "]"); } if(declined.length > 0) { testRegexpParts.push("[" + declined + "]"); } return new EReg("(" + testRegexpParts.join("|") + ")","g"); } ,getBounds: function() { var padding = this.border ? 1 : 0; this.bounds.width = this.width + padding; this.bounds.height = this.height + padding; var x = this.width; var y = this.height; var lastIndex = this.layoutGroups.get_length() - 1; var _g = 0; var _g1 = this.layoutGroups.get_length(); while(_g < _g1) { var i = _g++; var group = this.layoutGroups.get(i); if(i == lastIndex && group.startIndex == group.endIndex && this.type != 1) { continue; } if(group.offsetX < x) { x = group.offsetX; } if(group.offsetY < y) { y = group.offsetY; } } if(x >= this.width) { x = 2; } if(y >= this.height) { y = 2; } var textHeight = this.textHeight * 1.185; this.textBounds.setTo(Math.max(x - 2,0),Math.max(y - 2,0),Math.min(this.textWidth + 4,this.bounds.width + 4),Math.min(textHeight + 4,this.bounds.height + 4)); } ,getLine: function(index) { if(index < 0 || index > this.lineBreaks.get_length() + 1) { return null; } if(this.lineBreaks.get_length() == 0) { return this.text; } else { return this.text.substring(index > 0 ? this.lineBreaks.get(index - 1) : 0,this.lineBreaks.get(index)); } } ,getLineBreaks: function() { this.lineBreaks.set_length(0); var index = -1; var cr = -1; var lf = -1; while(index < this.text.length) { lf = this.text.indexOf("\n",index + 1); cr = this.text.indexOf("\r",index + 1); index = cr == -1 ? lf : lf == -1 ? cr : cr < lf ? cr : lf; if(index > -1) { this.lineBreaks.push(index); } else { break; } } } ,getLineBreakIndex: function(startIndex) { if(startIndex == null) { startIndex = 0; } var lineBreak = this.lineBreaks.iterator(); while(lineBreak.hasNext()) { var lineBreak1 = lineBreak.next(); if(lineBreak1 >= startIndex) { return lineBreak1; } } return -1; } ,getLineMeasurements: function() { this.lineAscents.set_length(0); this.lineDescents.set_length(0); this.lineLeadings.set_length(0); this.lineHeights.set_length(0); this.lineWidths.set_length(0); var currentLineAscent = 0.0; var currentLineDescent = 0.0; var currentLineLeading = null; var currentLineHeight = 0.0; var currentLineWidth = 0.0; var currentTextHeight = 0.0; this.textWidth = 0; this.textHeight = 0; this.numLines = 1; this.maxScrollH = 0; var lastIndex = this.layoutGroups.get_length() - 1; var _g = 0; var _g1 = this.layoutGroups.get_length(); while(_g < _g1) { var i = _g++; var group = this.layoutGroups.get(i); if(i == lastIndex && group.startIndex == group.endIndex && this.type != 1) { continue; } 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++; } currentLineAscent = Math.max(currentLineAscent,group.ascent); currentLineDescent = Math.max(currentLineDescent,group.descent); if(currentLineLeading == null) { currentLineLeading = group.leading; } else { currentLineLeading = Math.max(currentLineLeading,group.leading) | 0; } currentLineHeight = Math.max(currentLineHeight,group.height); currentLineWidth = group.offsetX - 2 + group.width; if(currentLineWidth > this.textWidth) { this.textWidth = currentLineWidth; } currentTextHeight = Math.ceil(group.offsetY - 2 + group.ascent + group.descent); if(currentTextHeight > this.textHeight) { this.textHeight = currentTextHeight; } } if(this.textHeight == 0 && this.textField != null && this.type == 1) { var currentFormat = this.textField.__textFormat; var ascent; var descent; var font = openfl_text__$internal_TextEngine.getFontInstance(currentFormat); if(currentFormat.__ascent != null) { ascent = currentFormat.size * currentFormat.__ascent; descent = currentFormat.size * currentFormat.__descent; } else if(font != null && font.unitsPerEM != 0) { ascent = font.ascender / font.unitsPerEM * currentFormat.size; descent = Math.abs(font.descender / font.unitsPerEM * currentFormat.size); } else { ascent = currentFormat.size; descent = currentFormat.size * 0.185; } var leading = currentFormat.leading; var heightValue = Math.ceil(ascent + descent + leading); currentLineAscent = ascent; currentLineDescent = descent; currentLineLeading = leading; currentTextHeight = Math.ceil(ascent + descent); this.textHeight = currentTextHeight; } 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) { if(currentLineLeading > 0) { this.textHeight += currentLineLeading; } } if(this.autoSize != 2) { switch(this.autoSize) { case 0:case 1:case 3: if(!this.wordWrap) { this.width = this.textWidth + 4; } this.height = this.textHeight + 4; this.bottomScrollV = this.numLines; break; default: } } if(this.textWidth > this.width - 4) { this.maxScrollH = this.textWidth - this.width + 4 | 0; } else { this.maxScrollH = 0; } if(this.scrollH > this.maxScrollH) { this.scrollH = this.maxScrollH; } } ,getLayoutGroups: function() { var _gthis = this; this.layoutGroups.set_length(0); if(this.text == null || this.text == "") { return; } var rangeIndex = -1; var formatRange = null; var font = null; var currentFormat = openfl_text_TextField.__defaultTextFormat.clone(); var leading = 0; var ascent = 0.0; var maxAscent = 0.0; var descent = 0.0; var align = 3; var blockIndent = 0; var bullet = false; var indent = 0; var leftMargin = 0; var rightMargin = 0; var firstLineOfParagraph = true; var tabStops = null; var layoutGroup = null; var positions = null; var widthValue = 0.0; var heightValue = 0; var maxHeightValue = 0; var previousSpaceIndex = -2; var previousBreakIndex = -1; var spaceIndex = this.text.indexOf(" "); var breakCount = 0; var breakIndex = breakCount < this.lineBreaks.get_length() ? this.lineBreaks.get(breakCount) : -1; var offsetX = 0.0; var offsetY = 0.0; var textIndex = 0; var lineIndex = 0; var getPositions = function(text,startIndex,endIndex) { var letterSpacing = 0.0; if(formatRange.format.letterSpacing != null) { letterSpacing = formatRange.format.letterSpacing; } var html5Positions = function() { var positions = []; if(_gthis.__useIntAdvances == null) { var html5Positions = new EReg("Trident/7.0",""); _gthis.__useIntAdvances = html5Positions.match($global.navigator.userAgent); } if(_gthis.__useIntAdvances) { var previousWidth = 0.0; var width; var _g = startIndex; var _g1 = endIndex; while(_g < _g1) { var i = _g++; width = _gthis.measureText(text.substring(startIndex,i + 1)); positions.push(width - previousWidth); previousWidth = width; } } else { var _g = startIndex; var _g1 = endIndex; while(_g < _g1) { var i = _g++; var advance; if(i < text.length - 1) { var nextWidth = _gthis.measureText(text.charAt(i + 1)); var twoWidths = _gthis.measureText(HxOverrides.substr(text,i,2)); advance = twoWidths - nextWidth; } else { advance = openfl_text__$internal_TextEngine.__context.measureText(text.charAt(i)).width; } positions.push(advance); } } return positions; }; if(currentFormat.align == 2) { return html5Positions(); } return _gthis.__shapeCache.cache(formatRange,html5Positions,text.substring(startIndex,endIndex)); }; var getPositionsWidth = function(positions) { var width = 0.0; var _g = 0; while(_g < positions.length) { var position = positions[_g]; ++_g; width += position; } return width; }; var getTextWidth = function(text) { return _gthis.measureText(text); }; var getBaseX = function() { return 2 + leftMargin + blockIndent + (firstLineOfParagraph ? indent : 0); }; var getWrapWidth = function() { return _gthis.width - 2 - rightMargin - getBaseX(); }; var nextLayoutGroup = function(startIndex,endIndex) { if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) { layoutGroup = new openfl_text__$internal_TextLayoutGroup(formatRange.format,startIndex,endIndex); _gthis.layoutGroups.push(layoutGroup); } else { layoutGroup.format = formatRange.format; layoutGroup.startIndex = startIndex; layoutGroup.endIndex = endIndex; } }; var setLineMetrics = function() { if(currentFormat.__ascent != null) { ascent = currentFormat.size * currentFormat.__ascent; descent = currentFormat.size * currentFormat.__descent; } else if(font != null && font.unitsPerEM != 0) { ascent = font.ascender / font.unitsPerEM * currentFormat.size; descent = Math.abs(font.descender / font.unitsPerEM * currentFormat.size); } else { ascent = currentFormat.size; descent = currentFormat.size * 0.185; } leading = currentFormat.leading; heightValue = Math.ceil(ascent + descent + leading); if(heightValue > maxHeightValue) { maxHeightValue = heightValue; } if(ascent > maxAscent) { maxAscent = ascent; } }; var setParagraphMetrics = function() { firstLineOfParagraph = true; align = currentFormat.align != null ? currentFormat.align : 3; blockIndent = currentFormat.blockIndent != null ? currentFormat.blockIndent : 0; indent = currentFormat.indent != null ? currentFormat.indent : 0; leftMargin = currentFormat.leftMargin != null ? currentFormat.leftMargin : 0; rightMargin = currentFormat.rightMargin != null ? currentFormat.rightMargin : 0; var setParagraphMetrics = currentFormat.bullet != null; var setParagraphMetrics = currentFormat.tabStops != null; }; var nextFormatRange = function() { if(rangeIndex < _gthis.textFormatRanges.get_length() - 1) { rangeIndex += 1; formatRange = _gthis.textFormatRanges.get(rangeIndex); currentFormat.__merge(formatRange.format); var fontString = openfl_text__$internal_TextEngine.getFont(currentFormat); openfl_text__$internal_TextEngine.__context.font = fontString; font = openfl_text__$internal_TextEngine.getFontInstance(currentFormat); return true; } return false; }; var setFormattedPositions = function(startIndex,endIndex) { if(startIndex >= endIndex) { positions = []; widthValue = 0; } else if(endIndex <= formatRange.end) { positions = getPositions(_gthis.text,startIndex,endIndex); widthValue = getPositionsWidth(positions); } else { var tempIndex = startIndex; var tempRangeEnd = formatRange.end; var countRanges = 0; positions = []; widthValue = 0; while(true) { if(tempIndex != tempRangeEnd) { var tempPositions = getPositions(_gthis.text,tempIndex,tempRangeEnd); positions = positions.concat(tempPositions); } if(tempRangeEnd != endIndex) { if(!nextFormatRange()) { lime_utils_Log.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.",{ fileName : "openfl/text/_internal/TextEngine.hx", lineNumber : 1104, className : "openfl.text._internal.TextEngine", methodName : "getLayoutGroups"}); break; } tempIndex = tempRangeEnd; tempRangeEnd = endIndex < formatRange.end ? endIndex : formatRange.end; ++countRanges; } else { widthValue = getPositionsWidth(positions); break; } } rangeIndex -= countRanges + 1; nextFormatRange(); } }; var placeFormattedText = function(endIndex) { if(endIndex <= formatRange.end) { positions = getPositions(_gthis.text,textIndex,endIndex); widthValue = getPositionsWidth(positions); nextLayoutGroup(textIndex,endIndex); layoutGroup.positions = positions; var offsetX1 = offsetX; var placeFormattedText = getBaseX(); layoutGroup.offsetX = offsetX1 + placeFormattedText; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetY = offsetY + 2; layoutGroup.width = widthValue; layoutGroup.height = heightValue; offsetX += widthValue; if(endIndex == formatRange.end) { layoutGroup = null; nextFormatRange(); setLineMetrics(); } } else { while(true) { var tempRangeEnd = endIndex < formatRange.end ? endIndex : formatRange.end; if(textIndex != tempRangeEnd) { positions = getPositions(_gthis.text,textIndex,tempRangeEnd); widthValue = getPositionsWidth(positions); nextLayoutGroup(textIndex,tempRangeEnd); layoutGroup.positions = positions; var offsetX1 = offsetX; var placeFormattedText = getBaseX(); layoutGroup.offsetX = offsetX1 + placeFormattedText; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetY = offsetY + 2; layoutGroup.width = widthValue; layoutGroup.height = heightValue; offsetX += widthValue; textIndex = tempRangeEnd; } if(tempRangeEnd == formatRange.end) { layoutGroup = null; } if(tempRangeEnd == endIndex) { break; } if(!nextFormatRange()) { lime_utils_Log.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.",{ fileName : "openfl/text/_internal/TextEngine.hx", lineNumber : 1192, className : "openfl.text._internal.TextEngine", methodName : "getLayoutGroups"}); break; } setLineMetrics(); } } textIndex = endIndex; }; var alignBaseline = function() { setLineMetrics(); var i = _gthis.layoutGroups.get_length(); while(--i > -1) { var lg = _gthis.layoutGroups.get(i); if(lg.lineIndex < lineIndex) { break; } if(lg.lineIndex > lineIndex) { continue; } lg.ascent = maxAscent; lg.height = maxHeightValue; } offsetY += maxHeightValue; maxAscent = 0.0; maxHeightValue = 0; lineIndex += 1; offsetX = 0; firstLineOfParagraph = false; }; var breakLongWords = function(endIndex) { var remainingPositions = positions; var bufferCount; var placeIndex; var positionWidth; var currentPosition; var tempWidth = getPositionsWidth(remainingPositions); var i = remainingPositions.length - 1; while(i >= 0) { var currentCharCode = HxOverrides.cca(_gthis.text,textIndex + i); if(currentCharCode != 32 && currentCharCode != 9) { break; } var position = remainingPositions[i]; tempWidth -= position; --i; } while(remainingPositions.length > 0 && offsetX + tempWidth > getWrapWidth()) { bufferCount = 0; i = bufferCount; positionWidth = 0.0; while(offsetX + positionWidth < getWrapWidth()) { currentPosition = remainingPositions[i]; if(currentPosition == 0.0) { ++i; ++bufferCount; } else { positionWidth += currentPosition; ++i; } } if(i == bufferCount) { i = bufferCount + 1; } else { while(i > 1 && offsetX + positionWidth > getWrapWidth()) { --i; if(i - bufferCount > 0) { setFormattedPositions(textIndex,textIndex + i - bufferCount); positionWidth = widthValue; } else { i = 1; bufferCount = 0; setFormattedPositions(textIndex,textIndex + 1); positionWidth = 0; } } } placeIndex = textIndex + i - bufferCount; placeFormattedText(placeIndex); alignBaseline(); setFormattedPositions(placeIndex,endIndex); remainingPositions = positions; tempWidth = widthValue; } }; var placeText = function(endIndex) { if(_gthis.width >= 4 && _gthis.wordWrap) { breakLongWords(endIndex); } placeFormattedText(endIndex); }; nextFormatRange(); setParagraphMetrics(); setLineMetrics(); var wrap; var maxLoops = this.text.length + 1; while(textIndex < maxLoops) if(breakIndex > -1 && (spaceIndex == -1 || breakIndex < spaceIndex)) { if(textIndex <= breakIndex) { setFormattedPositions(textIndex,breakIndex); placeText(breakIndex); layoutGroup = null; } else if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) { if(layoutGroup.endIndex == spaceIndex) { layoutGroup.width -= layoutGroup.positions[layoutGroup.positions.length - 1]; } layoutGroup = null; } alignBaseline(); if(formatRange.end == breakIndex) { nextFormatRange(); setLineMetrics(); } textIndex = breakIndex + 1; previousBreakIndex = breakIndex; ++breakCount; breakIndex = breakCount < this.lineBreaks.get_length() ? this.lineBreaks.get(breakCount) : -1; setParagraphMetrics(); } else if(spaceIndex > -1) { if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) { layoutGroup = null; } wrap = false; while(textIndex < this.text.length) { var endIndex = -1; if(spaceIndex == -1) { endIndex = breakIndex; } else { endIndex = spaceIndex + 1; if(breakIndex > -1 && breakIndex < endIndex) { endIndex = breakIndex; } } if(endIndex == -1) { endIndex = this.text.length; } setFormattedPositions(textIndex,endIndex); if(align == 2) { if(positions.length > 0 && textIndex == previousSpaceIndex) { textIndex += 1; var spaceWidth = positions.shift(); widthValue -= spaceWidth; offsetX += spaceWidth; } if(positions.length > 0 && endIndex == spaceIndex + 1) { --endIndex; var spaceWidth1 = positions.pop(); widthValue -= spaceWidth1; } } if(this.wordWrap) { if(offsetX + widthValue > getWrapWidth()) { wrap = true; if(positions.length > 0 && endIndex == spaceIndex + 1) { var lastPosition = positions[positions.length - 1]; var spaceWidth2 = lastPosition; if(offsetX + widthValue - spaceWidth2 <= getWrapWidth()) { wrap = false; } } } } if(wrap) { if(align != 2 && (layoutGroup != null || this.layoutGroups.get_length() > 0)) { var previous = layoutGroup; if(previous == null) { previous = this.layoutGroups.get(this.layoutGroups.get_length() - 1); } previous.width -= previous.positions[previous.positions.length - 1]; previous.endIndex--; } var i = this.layoutGroups.get_length() - 1; var offsetCount = 0; while(i >= 0) { layoutGroup = this.layoutGroups.get(i); if(i > 0 && layoutGroup.startIndex > previousSpaceIndex) { ++offsetCount; } else { break; } --i; } if(textIndex == previousSpaceIndex + 1) { alignBaseline(); } offsetX = 0; if(offsetCount > 0) { var bumpX = this.layoutGroups.get(this.layoutGroups.get_length() - offsetCount).offsetX; var _g = this.layoutGroups.get_length() - offsetCount; var _g1 = this.layoutGroups.get_length(); while(_g < _g1) { var i1 = _g++; layoutGroup = this.layoutGroups.get(i1); layoutGroup.offsetX -= bumpX; layoutGroup.offsetY = offsetY + 2; layoutGroup.lineIndex = lineIndex; offsetX += layoutGroup.width; } } placeText(endIndex); wrap = false; } else if(layoutGroup != null && textIndex == spaceIndex && previousSpaceIndex != spaceIndex - 1) { if(align != 2) { layoutGroup.endIndex = spaceIndex; layoutGroup.positions = layoutGroup.positions.concat(positions); layoutGroup.width += widthValue; } offsetX += widthValue; textIndex = endIndex; } else if(layoutGroup == null || align == 2) { placeText(endIndex); if(endIndex == this.text.length) { alignBaseline(); } } else { var tempRangeEnd = endIndex < formatRange.end ? endIndex : formatRange.end; if(tempRangeEnd < endIndex) { positions = getPositions(this.text,textIndex,tempRangeEnd); widthValue = getPositionsWidth(positions); } layoutGroup.endIndex = tempRangeEnd; layoutGroup.positions = layoutGroup.positions.concat(positions); layoutGroup.width += widthValue; offsetX += widthValue; if(tempRangeEnd == formatRange.end) { layoutGroup = null; nextFormatRange(); setLineMetrics(); textIndex = tempRangeEnd; if(tempRangeEnd != endIndex) { placeFormattedText(endIndex); } } if(breakIndex == endIndex) { ++endIndex; } textIndex = endIndex; if(endIndex == this.text.length) { alignBaseline(); if(breakIndex != -1) { previousBreakIndex = breakIndex; ++breakCount; breakIndex = breakCount < this.lineBreaks.get_length() ? this.lineBreaks.get(breakCount) : -1; } } } var nextSpaceIndex = this.text.indexOf(" ",textIndex); if(breakIndex == previousSpaceIndex) { layoutGroup.endIndex = breakIndex; if(breakIndex - layoutGroup.startIndex - layoutGroup.positions.length < 0) { layoutGroup.positions.push(0.0); } textIndex = breakIndex + 1; } previousSpaceIndex = spaceIndex; spaceIndex = nextSpaceIndex; if(breakIndex > -1 && breakIndex <= textIndex && (spaceIndex > breakIndex || spaceIndex == -1) || textIndex > this.text.length) { break; } } } else { if(textIndex < this.text.length) { setFormattedPositions(textIndex,this.text.length); placeText(this.text.length); alignBaseline(); } textIndex += 1; } if(previousBreakIndex == textIndex - 2 && previousBreakIndex > -1) { nextLayoutGroup(textIndex - 1,textIndex - 1); layoutGroup.positions = []; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetX = getBaseX(); layoutGroup.offsetY = offsetY + 2; layoutGroup.width = 0; layoutGroup.height = heightValue; } } ,measureText: function(text) { return openfl_text__$internal_TextEngine.__context.measureText(text).width; } ,restrictText: function(value) { if(value == null) { return value; } if(this.__restrictRegexp != null) { value = this.__restrictRegexp.split(value).join(""); } return value; } ,setTextAlignment: function() { var lineIndex = -1; var offsetX = 0.0; var totalWidth = this.width - 4; var group; var lineLength; var lineMeasurementsDirty = false; var _g = 0; var _g1 = this.layoutGroups.get_length(); while(_g < _g1) { var i = _g++; group = this.layoutGroups.get(i); if(group.lineIndex != lineIndex) { lineIndex = group.lineIndex; totalWidth = this.width - 4 - group.format.rightMargin; switch(group.format.align) { case 0: if(this.lineWidths.get(lineIndex) < totalWidth) { offsetX = Math.round((totalWidth - this.lineWidths.get(lineIndex)) / 2); } else { offsetX = 0; } break; case 2: if(this.lineWidths.get(lineIndex) < totalWidth) { lineLength = 1; var _g2 = i + 1; var _g3 = this.layoutGroups.get_length(); while(_g2 < _g3) { var j = _g2++; if(this.layoutGroups.get(j).lineIndex == lineIndex) { if(j == 0 || HxOverrides.cca(this.text,this.layoutGroups.get(j).startIndex - 1) == 32) { ++lineLength; } } else { break; } } if(lineLength > 1) { group = this.layoutGroups.get(i + lineLength - 1); var endChar = HxOverrides.cca(this.text,group.endIndex); if(group.endIndex < this.text.length && endChar != 10 && endChar != 13) { offsetX = (totalWidth - this.lineWidths.get(lineIndex)) / (lineLength - 1); lineMeasurementsDirty = true; var j1 = 1; do this.layoutGroups.get(i + j1).offsetX += offsetX * j1; while(++j1 < lineLength); } } } offsetX = 0; break; case 4: if(this.lineWidths.get(lineIndex) < totalWidth) { offsetX = Math.round(totalWidth - this.lineWidths.get(lineIndex)); } else { offsetX = 0; } break; default: offsetX = 0; } } if(offsetX > 0) { group.offsetX += offsetX; } } if(lineMeasurementsDirty) { this.getLineMeasurements(); } } ,trimText: function(value) { if(value == null) { return value; } if(this.maxChars > 0 && value.length > this.maxChars) { value = HxOverrides.substr(value,0,this.maxChars); } return value; } ,update: function() { if(this.text == null || this.textFormatRanges.get_length() == 0) { this.lineAscents.set_length(0); this.lineBreaks.set_length(0); this.lineDescents.set_length(0); this.lineLeadings.set_length(0); this.lineHeights.set_length(0); this.lineWidths.set_length(0); this.layoutGroups.set_length(0); this.textWidth = 0; this.textHeight = 0; this.numLines = 1; this.maxScrollH = 0; this.maxScrollV = 1; this.bottomScrollV = 1; } else { this.getLineBreaks(); this.getLayoutGroups(); this.getLineMeasurements(); this.setTextAlignment(); } this.getBounds(); } ,get_bottomScrollV: function() { if(this.numLines == 1 || this.lineHeights == null) { return 1; } else { var ret = this.lineHeights.get_length(); var tempHeight = this.lineLeadings.get_length() == ret ? -this.lineLeadings.get(ret - 1) : 0.0; var _g = (this.get_scrollV() > 0 ? this.get_scrollV() : 1) - 1; var _g1 = this.lineHeights.get_length(); while(_g < _g1) { var i = _g++; var lineHeight = this.lineHeights.get(i); tempHeight += lineHeight; if(tempHeight > this.height - 4) { ret = i + (tempHeight - this.height >= 0 ? 0 : 1); break; } } if(ret < this.get_scrollV()) { return this.get_scrollV(); } return ret; } } ,get_maxScrollV: function() { if(this.numLines == 1 || this.lineHeights == null) { return 1; } else { var i = this.numLines - 1; var tempHeight = 0.0; var j = i; while(i >= 0) { tempHeight += this.lineHeights.get(i); if(tempHeight > this.height - 4) { i += tempHeight - this.height < 0 ? 1 : 2; break; } --i; } if(i < 1) { return 1; } return i; } } ,set_restrict: function(value) { if(this.restrict == value) { return this.restrict; } this.restrict = value; if(this.restrict == null || this.restrict.length == 0) { this.__restrictRegexp = null; } else { this.__restrictRegexp = this.createRestrictRegexp(value); } return this.restrict; } ,get_scrollV: function() { if(this.numLines == 1 || this.lineHeights == null) { return 1; } var max = this.get_maxScrollV(); if(this.scrollV > max) { return max; } return this.scrollV; } ,set_scrollV: function(value) { if(value < 1) { value = 1; } else if(value > this.get_maxScrollV()) { value = this.get_maxScrollV(); } return this.scrollV = value; } ,set_text: function(value) { return this.text = value; } ,__class__: openfl_text__$internal_TextEngine ,__properties__: {set_text:"set_text",set_scrollV:"set_scrollV",get_scrollV:"get_scrollV",set_restrict:"set_restrict",get_maxScrollV:"get_maxScrollV",get_bottomScrollV:"get_bottomScrollV"} }; var openfl_text__$internal__$TextEngine_DefaultFontSet = function(normal,bold,italic,boldItalic) { this.normal = normal; this.bold = bold; this.italic = italic; this.boldItalic = boldItalic; }; $hxClasses["openfl.text._internal._TextEngine.DefaultFontSet"] = openfl_text__$internal__$TextEngine_DefaultFontSet; openfl_text__$internal__$TextEngine_DefaultFontSet.__name__ = "openfl.text._internal._TextEngine.DefaultFontSet"; openfl_text__$internal__$TextEngine_DefaultFontSet.prototype = { bold: null ,boldItalic: null ,italic: null ,normal: null ,getFont: function(isBold,isItalic) { if(isBold && isItalic && this.boldItalic != null) { return this.boldItalic; } if(isItalic && this.italic != null) { return this.italic; } if(isBold && this.bold != null) { return this.bold; } return this.normal; } ,__class__: openfl_text__$internal__$TextEngine_DefaultFontSet }; var openfl_text__$internal_TextFormatRange = function(format,start,end) { this.format = format; this.start = start; this.end = end; }; $hxClasses["openfl.text._internal.TextFormatRange"] = openfl_text__$internal_TextFormatRange; openfl_text__$internal_TextFormatRange.__name__ = "openfl.text._internal.TextFormatRange"; openfl_text__$internal_TextFormatRange.prototype = { end: null ,format: null ,start: null ,__class__: openfl_text__$internal_TextFormatRange }; var openfl_text__$internal_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.letterSpacing = 0; 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; this.__create(this.__direction,this.__script,this.__language); }; $hxClasses["openfl.text._internal.TextLayout"] = openfl_text__$internal_TextLayout; openfl_text__$internal_TextLayout.__name__ = "openfl.text._internal.TextLayout"; openfl_text__$internal_TextLayout.prototype = { autoHint: null ,font: null ,glyphs: null ,letterSpacing: null ,positions: null ,size: null ,text: null ,__buffer: null ,__direction: null ,__dirty: null ,__handle: null ,__language: null ,__script: null ,__font: null ,__hbBuffer: null ,__hbFont: null ,__create: function(direction,script,language) { if(language.length != 4) { return; } this.__hbBuffer = lime_text_harfbuzz_HBBuffer._new(); var direction1 = direction; var this1 = this.__hbBuffer; var value = lime_text_harfbuzz_HBLanguage._new(language); } ,__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__: openfl_text__$internal_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 openfl_text__$internal_TextDirection = {}; openfl_text__$internal_TextDirection.__properties__ = {get_vertical:"get_vertical",get_horizontal:"get_horizontal",get_forward:"get_forward",get_backward:"get_backward"}; openfl_text__$internal_TextDirection.reverse = function(this1) { this1 ^= 1; }; openfl_text__$internal_TextDirection.toString = function(this1) { switch(this1) { case 4: return "leftToRight"; case 5: return "rightToLeft"; case 6: return "topToBottom"; case 7: return "bottomToTop"; default: return ""; } }; openfl_text__$internal_TextDirection.toHBDirection = function(this1) { switch(this1) { case 4: return 4; case 5: return 5; case 6: return 6; case 7: return 7; default: return 0; } }; openfl_text__$internal_TextDirection.get_backward = function(this1) { return (this1 & -3) == 5; }; openfl_text__$internal_TextDirection.get_forward = function(this1) { return (this1 & -3) == 4; }; openfl_text__$internal_TextDirection.get_horizontal = function(this1) { return (this1 & -2) == 4; }; openfl_text__$internal_TextDirection.get_vertical = function(this1) { return (this1 & -2) == 6; }; var openfl_text__$internal_TextScript = {}; openfl_text__$internal_TextScript.__properties__ = {get_rightToLeft:"get_rightToLeft"}; openfl_text__$internal_TextScript.toHBScript = function(this1) { return 1517910393; }; openfl_text__$internal_TextScript.get_rightToLeft = function(this1) { switch(this1) { case "Arab":case "Armi":case "Avst":case "Cprt":case "Hebr":case "Khar":case "Lydi":case "Mand":case "Nkoo":case "Orkh":case "Phli":case "Phlp":case "Phnx":case "Samr":case "Sarb":case "Syrc":case "Thaa": return true; default: return false; } }; var openfl_text__$internal_TextLayoutGroup = function(format,startIndex,endIndex) { this.format = format; this.startIndex = startIndex; this.endIndex = endIndex; }; $hxClasses["openfl.text._internal.TextLayoutGroup"] = openfl_text__$internal_TextLayoutGroup; openfl_text__$internal_TextLayoutGroup.__name__ = "openfl.text._internal.TextLayoutGroup"; openfl_text__$internal_TextLayoutGroup.prototype = { ascent: null ,descent: null ,endIndex: null ,format: null ,height: null ,leading: null ,lineIndex: null ,offsetX: null ,offsetY: null ,positions: null ,startIndex: null ,width: null ,getAdvance: function(index) { return this.positions[index]; } ,__class__: openfl_text__$internal_TextLayoutGroup }; 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(gamepad) { this.__controls = []; this.__button = new haxe_ds_IntMap(); this.__axis = new haxe_ds_IntMap(); this.__gamepad = gamepad; var devices = lime_ui_Joystick.__getDeviceData(); this.id = devices[gamepad.id].id; var devices = lime_ui_Joystick.__getDeviceData(); this.name = devices[gamepad.id].id; var control; control = new openfl_ui_GameInputControl(this,"AXIS_" + 0,-1,1); this.__axis.h[0] = control; this.__controls.push(control); control = new openfl_ui_GameInputControl(this,"AXIS_" + 1,-1,1); this.__axis.h[1] = control; this.__controls.push(control); control = new openfl_ui_GameInputControl(this,"AXIS_" + 2,-1,1); this.__axis.h[2] = control; this.__controls.push(control); control = new openfl_ui_GameInputControl(this,"AXIS_" + 3,-1,1); this.__axis.h[3] = control; this.__controls.push(control); control = new openfl_ui_GameInputControl(this,"AXIS_" + 4,-1,1); this.__axis.h[4] = control; this.__controls.push(control); control = new openfl_ui_GameInputControl(this,"AXIS_" + 5,-1,1); this.__axis.h[5] = control; this.__controls.push(control); var _g = 0; while(_g < 15) { var i = _g++; control = new openfl_ui_GameInputControl(this,"BUTTON_" + i,0,1); this.__button.h[i] = 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; } ,getLimeGamepad: function() { return this.__gamepad; } ,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 13; 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 8: return 8; case 13: return 13; case 46: return 127; case 106: return 42; case 107: return 43; case 108: return 44; case 110: return 45; case 111: return 46; } return 0; }; openfl_ui_Keyboard.__getKeyLocation = function(key) { switch(key) { 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; case 1073742048:case 1073742049:case 1073742050:case 1073742051: return 1; case 1073742052:case 1073742053:case 1073742054:case 1073742055: return 2; 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.__properties__ = {set_cursor:"set_cursor",get_cursor:"get_cursor"}; openfl_ui_Mouse.__hidden = null; openfl_ui_Mouse.hide = function() { openfl_ui_Mouse.__hidden = true; var _g = 0; var _g1 = lime_app_Application.current.__windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; $window.set_cursor(null); } }; openfl_ui_Mouse.show = function() { openfl_ui_Mouse.__hidden = false; var cacheCursor = openfl_ui_Mouse.__cursor; openfl_ui_Mouse.__cursor = null; openfl_ui_Mouse.set_cursor(cacheCursor); }; openfl_ui_Mouse.get_cursor = function() { return openfl_ui_Mouse.__cursor; }; openfl_ui_Mouse.set_cursor = function(value) { if(value == null) { value = "auto"; } var setCursor = null; switch(value) { case "arrow": setCursor = lime_ui_MouseCursor.ARROW; break; case "button": setCursor = lime_ui_MouseCursor.POINTER; break; case "crosshair": setCursor = lime_ui_MouseCursor.CROSSHAIR; break; case "custom": setCursor = lime_ui_MouseCursor.CUSTOM; break; case "hand": setCursor = lime_ui_MouseCursor.MOVE; break; case "ibeam": setCursor = lime_ui_MouseCursor.TEXT; break; case "resize_nesw": setCursor = lime_ui_MouseCursor.RESIZE_NESW; break; case "resize_ns": setCursor = lime_ui_MouseCursor.RESIZE_NS; break; case "resize_nwse": setCursor = lime_ui_MouseCursor.RESIZE_NWSE; break; case "resize_we": setCursor = lime_ui_MouseCursor.RESIZE_WE; break; case "wait": setCursor = lime_ui_MouseCursor.WAIT; break; case "waitarrow": setCursor = lime_ui_MouseCursor.WAIT_ARROW; break; default: } if(setCursor != null && !openfl_ui_Mouse.__hidden) { var _g = 0; var _g1 = lime_app_Application.current.__windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; $window.set_cursor(setCursor); } } return openfl_ui_Mouse.__cursor = value; }; var openfl_ui_MouseCursor = {}; openfl_ui_MouseCursor.fromLimeCursor = function(cursor) { switch(cursor._hx_index) { case 0: return "arrow"; case 1: return "crosshair"; case 2: return "auto"; case 3: return "hand"; case 4: return "button"; case 5: return "resize_nesw"; case 6: return "resize_ns"; case 7: return "resize_nwse"; case 8: return "resize_we"; case 9: return "ibeam"; case 10: return "wait"; case 11: return "waitarrow"; case 12: return "custom"; } }; openfl_ui_MouseCursor.toLimeCursor = function(this1) { switch(this1) { case "arrow": return lime_ui_MouseCursor.ARROW; case "auto": return lime_ui_MouseCursor.DEFAULT; case "button": return lime_ui_MouseCursor.POINTER; case "crosshair": return lime_ui_MouseCursor.CROSSHAIR; case "custom": return lime_ui_MouseCursor.CUSTOM; case "hand": return lime_ui_MouseCursor.MOVE; case "ibeam": return lime_ui_MouseCursor.TEXT; case "resize_nesw": return lime_ui_MouseCursor.RESIZE_NESW; case "resize_ns": return lime_ui_MouseCursor.RESIZE_NS; case "resize_nwse": return lime_ui_MouseCursor.RESIZE_NWSE; case "resize_we": return lime_ui_MouseCursor.RESIZE_WE; case "wait": return lime_ui_MouseCursor.WAIT; case "waitarrow": return lime_ui_MouseCursor.WAIT_ARROW; default: return lime_ui_MouseCursor.DEFAULT; } }; var openfl_ui_Multitouch = function() { }; $hxClasses["openfl.ui.Multitouch"] = openfl_ui_Multitouch; openfl_ui_Multitouch.__name__ = "openfl.ui.Multitouch"; openfl_ui_Multitouch.__properties__ = {get_supportsTouchEvents:"get_supportsTouchEvents"}; openfl_ui_Multitouch.inputMode = null; openfl_ui_Multitouch.maxTouchPoints = null; openfl_ui_Multitouch.supportedGestures = null; openfl_ui_Multitouch.supportsGestureEvents = null; openfl_ui_Multitouch.get_supportsTouchEvents = function() { if(('ontouchstart' in document.documentElement) || (window.DocumentTouch && document instanceof DocumentTouch)) { return true; } return false; }; var openfl_ui_MultitouchInputMode = {}; openfl_ui_MultitouchInputMode.fromString = function(value) { switch(value) { case "gesture": return 0; case "none": return 1; case "touchPoint": return 2; default: return null; } }; openfl_ui_MultitouchInputMode.toString = function(this1) { switch(this1) { case 0: return "gesture"; case 1: return "none"; case 2: return "touchPoint"; default: return null; } }; var openfl_utils_AGALMiniAssembler = function(debugging) { if(debugging == null) { debugging = false; } this.debugEnabled = false; this.debugEnabled = debugging; if(!openfl_utils_AGALMiniAssembler.initialized) { openfl_utils_AGALMiniAssembler.init(); } }; $hxClasses["openfl.utils.AGALMiniAssembler"] = openfl_utils_AGALMiniAssembler; openfl_utils_AGALMiniAssembler.__name__ = "openfl.utils.AGALMiniAssembler"; openfl_utils_AGALMiniAssembler.init = function() { openfl_utils_AGALMiniAssembler.initialized = true; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("mov",2,0,0); this1.h["mov"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("add",3,1,0); this1.h["add"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sub",3,2,0); this1.h["sub"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("mul",3,3,0); this1.h["mul"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("div",3,4,0); this1.h["div"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("rcp",2,5,0); this1.h["rcp"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("min",3,6,0); this1.h["min"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("max",3,7,0); this1.h["max"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("frc",2,8,0); this1.h["frc"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sqt",2,9,0); this1.h["sqt"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("rsq",2,10,0); this1.h["rsq"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("pow",3,11,0); this1.h["pow"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("log",2,12,0); this1.h["log"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("exp",2,13,0); this1.h["exp"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("nrm",2,14,0); this1.h["nrm"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sin",2,15,0); this1.h["sin"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("cos",2,16,0); this1.h["cos"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("crs",3,17,0); this1.h["crs"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("dp3",3,18,0); this1.h["dp3"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("dp4",3,19,0); this1.h["dp4"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("abs",2,20,0); this1.h["abs"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("neg",2,21,0); this1.h["neg"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sat",2,22,0); this1.h["sat"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("m33",3,23,16); this1.h["m33"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("m44",3,24,16); this1.h["m44"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("m34",3,25,16); this1.h["m34"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("ddx",2,26,288); this1.h["ddx"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("ddy",2,27,288); this1.h["ddy"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("ife",2,28,897); this1.h["ife"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("ine",2,29,897); this1.h["ine"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("ifg",2,30,897); this1.h["ifg"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("ifl",2,31,897); this1.h["ifl"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("els",0,32,1921); this1.h["els"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("eif",0,33,1409); this1.h["eif"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("kil",1,39,160); this1.h["kil"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("tex",3,40,40); this1.h["tex"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sge",3,41,0); this1.h["sge"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("slt",3,42,0); this1.h["slt"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sgn",2,43,0); this1.h["sgn"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("seq",3,44,0); this1.h["seq"] = v; var this1 = openfl_utils_AGALMiniAssembler.OPMAP; var v = new openfl_utils__$AGALMiniAssembler_OpCode("sne",3,45,0); this1.h["sne"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("rgba",8,0); this1.h["rgba"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("compressed",8,1); this1.h["compressed"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("compressedalpha",8,2); this1.h["compressedalpha"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("dxt1",8,1); this1.h["dxt1"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("dxt5",8,2); this1.h["dxt5"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("video",8,3); this1.h["video"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("2d",12,0); this1.h["2d"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("3d",12,2); this1.h["3d"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("cube",12,1); this1.h["cube"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("mipnearest",24,1); this1.h["mipnearest"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("miplinear",24,2); this1.h["miplinear"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("mipnone",24,0); this1.h["mipnone"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("nomip",24,0); this1.h["nomip"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("nearest",28,0); this1.h["nearest"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("linear",28,1); this1.h["linear"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic2x",28,2); this1.h["anisotropic2x"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic4x",28,3); this1.h["anisotropic4x"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic8x",28,4); this1.h["anisotropic8x"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("anisotropic16x",28,5); this1.h["anisotropic16x"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("centroid",16,1); this1.h["centroid"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("single",16,2); this1.h["single"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("ignoresampler",16,4); this1.h["ignoresampler"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("repeat",20,1); this1.h["repeat"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("wrap",20,1); this1.h["wrap"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("clamp",20,0); this1.h["clamp"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("clamp_u_repeat_v",20,2); this1.h["clamp_u_repeat_v"] = v; var this1 = openfl_utils_AGALMiniAssembler.SAMPLEMAP; var v = new openfl_utils__$AGALMiniAssembler_Sampler("repeat_u_clamp_v",20,3); this1.h["repeat_u_clamp_v"] = v; }; openfl_utils_AGALMiniAssembler.prototype = { agalcode: null ,error: null ,verbose: null ,debugEnabled: null ,assemble2: function(context3D,version,vertexSource,fragmentSource) { var agalVertex = this.assemble("vertex",vertexSource,version); var agalFragment = this.assemble("fragment",fragmentSource,version); var program = context3D.createProgram(); program.upload(agalVertex,agalFragment); return program; } ,assemble: function(mode,source,version,ignoreLimits) { if(ignoreLimits == null) { ignoreLimits = false; } if(version == null) { version = 1; } var start = openfl_Lib.getTimer(); this.agalcode = new openfl_utils_ByteArrayData(0); this.error = ""; var isFrag = false; if(mode == "fragment") { isFrag = true; } else if(mode != "vertex") { this.error = "ERROR: mode needs to be \"" + "fragment" + "\" or \"" + "vertex" + "\" but is \"" + mode + "\"."; } this.agalcode.__endian = 1; this.agalcode.writeByte(160); this.agalcode.writeUnsignedInt(version); this.agalcode.writeByte(161); this.agalcode.writeByte(isFrag ? 1 : 0); this.initregmap(version,ignoreLimits); var lines = StringTools.replace(source,"\r","\n").split("\n"); var nops = 0; var lng = lines.length; var reg1 = new EReg("<.*>","g"); var reg2 = new EReg("([\\w\\.\\-\\+]+)","gi"); var reg3 = new EReg("^\\w{3}","ig"); var reg4 = new EReg("vc\\[([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw](\\+\\d{1,3})?)?\\](\\.[xyzw]{1,4})?|([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw]{1,4})?","gi"); var reg5 = new EReg("\\[.*\\]","ig"); var reg6 = new EReg("^\\b[A-Za-z]{1,3}","ig"); var reg7 = new EReg("\\d+",""); var reg8 = new EReg("(\\.[xyzw]{1,4})",""); var reg9 = new EReg("[A-Za-z]{1,3}","ig"); var reg10 = new EReg("(\\.[xyzw]{1,1})",""); var reg11 = new EReg("\\+\\d{1,3}","ig"); var i = 0; while(i < lng && this.error == "") { var line = StringTools.trim(lines[i]); var startcomment = line.indexOf("//"); if(startcomment != -1) { line = HxOverrides.substr(line,0,startcomment); } var optsi = reg1.match(line) ? reg1.matchedPos().pos : -1; var opts = null; if(optsi != -1) { opts = this.match(HxOverrides.substr(line,optsi,null),reg2); line = HxOverrides.substr(line,0,optsi); } var opCode = null; var opFound = null; if(reg3.match(line)) { opCode = reg3.matched(0); opFound = openfl_utils_AGALMiniAssembler.OPMAP.h[opCode]; } if(opFound == null) { if(line.length >= 3) { lime_utils_Log.warn("warning: bad line " + i + ": " + lines[i],{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 262, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } ++i; continue; } if(this.debugEnabled) { lime_utils_Log.info(opFound,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 272, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } if(opFound == null) { if(line.length >= 3) { lime_utils_Log.warn("warning: bad line " + i + ": " + lines[i],{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 279, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } ++i; continue; } line = HxOverrides.substr(line,line.indexOf(opFound.name) + opFound.name.length,null); if((opFound.flags & 256) != 0 && version < 2) { this.error = "error: opcode requires version 2."; break; } if((opFound.flags & 64) != 0 && isFrag) { this.error = "error: opcode is only allowed in vertex programs."; break; } if((opFound.flags & 32) != 0 && !isFrag) { this.error = "error: opcode is only allowed in fragment programs."; break; } if(this.verbose) { lime_utils_Log.info("emit opcode=" + Std.string(opFound),{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 308, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } this.agalcode.writeUnsignedInt(opFound.emitCode); ++nops; if(nops > 4096) { this.error = "error: too many opcodes. maximum is " + 4096 + "."; break; } var regs = this.match(line,reg4); if(regs.length != opFound.numRegister) { this.error = "error: wrong number of operands. found " + regs.length + " but expected " + opFound.numRegister + "."; break; } var badreg = false; var pad = 160; var regLength = regs.length; var _g = 0; var _g1 = regLength; while(_g < _g1) { var j = _g++; var isRelative = false; var relreg = this.match(regs[j],reg5); if(relreg.length > 0) { regs[j] = StringTools.replace(regs[j],relreg[0],"0"); if(this.verbose) { lime_utils_Log.info("IS REL",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 344, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } isRelative = true; } var res = this.match(regs[j],reg6); if(res.length == 0) { this.error = "error: could not parse operand " + j + " (" + regs[j] + ")."; badreg = true; break; } var regFound = openfl_utils_AGALMiniAssembler.REGMAP.h[res[0]]; if(this.debugEnabled) { lime_utils_Log.info(regFound,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 363, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } if(regFound == null) { this.error = "error: could not find register name for operand " + j + " (" + regs[j] + ")."; badreg = true; break; } if(isFrag) { if((regFound.flags & 32) == 0) { this.error = "error: register operand " + j + " (" + regs[j] + ") only allowed in vertex programs."; badreg = true; break; } if(isRelative) { this.error = "error: register operand " + j + " (" + regs[j] + ") relative adressing not allowed in fragment programs."; badreg = true; break; } } else if((regFound.flags & 64) == 0) { this.error = "error: register operand " + j + " (" + regs[j] + ") only allowed in fragment programs."; badreg = true; break; } regs[j] = HxOverrides.substr(regs[j],regs[j].indexOf(regFound.name) + regFound.name.length,null); var idxmatch = isRelative ? this.match(relreg[0],reg7) : this.match(regs[j],reg7); var regidx = 0; if(idxmatch.length > 0) { regidx = Std.parseInt(idxmatch[0]); } if(UInt.gt(regidx,regFound.range)) { var tmp = regFound.range + 1; this.error = "error: register operand " + j + " (" + regs[j] + ") index exceeds limit of " + (tmp == null ? "null" : Std.string(UInt.toFloat(tmp))) + "."; badreg = true; break; } var regmask = 0; var maskmatch = this.match(regs[j],reg8); var isDest = j == 0 && (opFound.flags & 128) == 0; var isSampler = j == 2 && (opFound.flags & 8) != 0; var reltype = 0; var relsel = 0; var reloffset = 0; if(isDest && isRelative) { this.error = "error: relative can not be destination"; badreg = true; break; } if(maskmatch.length > 0) { regmask = 0; var cv = 0; var maskLength = maskmatch[0].length; var k = 1; while(k < maskLength) { cv = HxOverrides.cca(maskmatch[0],k) - 120; if(UInt.gt(cv,2)) { cv = 3; } if(isDest) { regmask |= 1 << cv; } else { regmask = regmask | cv << (k - 1 << 1); } ++k; } if(!isDest) { while(k <= 4) { regmask = regmask | cv << (k - 1 << 1); ++k; } } } else { regmask = isDest ? 15 : 228; } if(isRelative) { var relname = this.match(relreg[0],reg9); var regFoundRel = openfl_utils_AGALMiniAssembler.REGMAP.h[relname[0]]; if(regFoundRel == null) { this.error = "error: bad index register"; badreg = true; break; } reltype = regFoundRel.emitCode; var selmatch = this.match(relreg[0],reg10); if(selmatch.length == 0) { this.error = "error: bad index register select"; badreg = true; break; } relsel = HxOverrides.cca(selmatch[0],1) - 120; if(UInt.gt(relsel,2)) { relsel = 3; } var relofs = this.match(relreg[0],reg11); if(relofs.length > 0) { reloffset = Std.parseInt(relofs[0]); } if(reloffset < 0 || reloffset > 255) { this.error = "error: index offset " + reloffset + " out of bounds. [0..255]"; badreg = true; break; } if(this.verbose) { lime_utils_Log.info("RELATIVE: type=" + reltype + "==" + relname[0] + " sel=" + (relsel == null ? "null" : Std.string(UInt.toFloat(relsel))) + "==" + selmatch[0] + " idx=" + (regidx == null ? "null" : Std.string(UInt.toFloat(regidx))) + " offset=" + reloffset,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 518, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } } if(this.verbose) { lime_utils_Log.info(" emit argcode=" + Std.string(regFound) + "[" + (regidx == null ? "null" : Std.string(UInt.toFloat(regidx))) + "][" + regmask + "]",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 525, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } if(isDest) { this.agalcode.writeShort(regidx); this.agalcode.writeByte(regmask); this.agalcode.writeByte(regFound.emitCode); pad -= 32; } else if(isSampler) { if(this.verbose) { lime_utils_Log.info(" emit sampler",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 541, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } var samplerbits = 5; var optsLength = opts == null ? 0 : opts.length; var bias = 0.0; var _g2 = 0; var _g3 = optsLength; while(_g2 < _g3) { var k1 = _g2++; if(this.verbose) { lime_utils_Log.info(" opt: " + opts[k1],{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 552, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } var optfound = openfl_utils_AGALMiniAssembler.SAMPLEMAP.h[opts[k1]]; if(optfound == null) { bias = parseFloat(opts[k1]); if(this.verbose) { lime_utils_Log.info(" bias: " + bias,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 565, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } } else { if(optfound.flag != 16) { samplerbits &= ~(15 << optfound.flag); } samplerbits = samplerbits | optfound.mask << optfound.flag; } } this.agalcode.writeShort(regidx); this.agalcode.writeByte(bias * 8.0 | 0); this.agalcode.writeByte(0); this.agalcode.writeUnsignedInt(samplerbits); if(this.verbose) { lime_utils_Log.info(" bits: " + (samplerbits - 5),{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 586, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } pad -= 64; } else { if(j == 0) { this.agalcode.writeUnsignedInt(0); pad -= 32; } this.agalcode.writeShort(regidx); this.agalcode.writeByte(reloffset); this.agalcode.writeByte(regmask); this.agalcode.writeByte(regFound.emitCode); this.agalcode.writeByte(reltype); this.agalcode.writeShort(isRelative ? relsel | 32768 : 0); pad -= 64; } } var j1 = 0; while(j1 < pad) { this.agalcode.writeByte(0); j1 += 8; } if(badreg) { break; } ++i; } if(this.error != "") { this.error += "\n at line " + i + " " + lines[i]; openfl_utils_ByteArray.set_length(this.agalcode,0); lime_utils_Log.info(this.error,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 631, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } if(this.debugEnabled) { var dbgLine = "generated bytecode:"; var agalLength = openfl_utils_ByteArray.get_length(this.agalcode); var _g = 0; var _g1 = agalLength; while(_g < _g1) { var index = _g++; if(index % 16 == 0) { dbgLine += "\n"; } if(index % 4 == 0) { dbgLine += " "; } var byteStr = StringTools.hex(this.agalcode.b[index],2); if(byteStr.length < 2) { byteStr = "0" + byteStr; } dbgLine += byteStr; } lime_utils_Log.info(dbgLine,{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 662, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } if(this.verbose) { lime_utils_Log.info("AGALMiniAssembler.assemble time: " + (openfl_Lib.getTimer() - start) / 1000 + "s",{ fileName : "openfl/utils/AGALMiniAssembler.hx", lineNumber : 667, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"}); } return this.agalcode; } ,initregmap: function(version,ignorelimits) { var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("va","vertex attribute",0,ignorelimits ? 1024 : version == 1 || version == 2 ? 7 : 15,66); this1.h["va"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("vc","vertex constant",1,ignorelimits ? 1024 : version == 1 ? 127 : 249,66); this1.h["vc"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("vt","vertex temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,67); this1.h["vt"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("vo","vertex output",3,ignorelimits ? 1024 : 0,65); this1.h["vo"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("vi","varying",4,ignorelimits ? 1024 : version == 1 ? 7 : 9,99); this1.h["vi"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("fc","fragment constant",1,ignorelimits ? 1024 : version == 1 ? 27 : version == 2 ? 63 : 199,34); this1.h["fc"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("ft","fragment temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,35); this1.h["ft"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("fs","texture sampler",5,ignorelimits ? 1024 : 7,34); this1.h["fs"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("fo","fragment output",3,ignorelimits ? 1024 : version == 1 ? 0 : 3,33); this1.h["fo"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("fd","fragment depth output",6,ignorelimits ? 1024 : version == 1 ? -1 : 0,33); this1.h["fd"] = v; var this1 = openfl_utils_AGALMiniAssembler.REGMAP; var v = new openfl_utils__$AGALMiniAssembler_Register("iid","instance id",7,ignorelimits ? 1024 : 0,66); this1.h["iid"] = v; var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vo"]; openfl_utils_AGALMiniAssembler.REGMAP.h["op"] = v; var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vi"]; openfl_utils_AGALMiniAssembler.REGMAP.h["i"] = v; var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vi"]; openfl_utils_AGALMiniAssembler.REGMAP.h["v"] = v; var v = openfl_utils_AGALMiniAssembler.REGMAP.h["fo"]; openfl_utils_AGALMiniAssembler.REGMAP.h["oc"] = v; var v = openfl_utils_AGALMiniAssembler.REGMAP.h["fd"]; openfl_utils_AGALMiniAssembler.REGMAP.h["od"] = v; var v = openfl_utils_AGALMiniAssembler.REGMAP.h["vi"]; openfl_utils_AGALMiniAssembler.REGMAP.h["fi"] = v; } ,match: function(value,reg) { var matches = []; var index = 0; var match; while(reg.matchSub(value,index)) { match = reg.matched(0); matches.push(match); index = reg.matchedPos().pos + match.length; } return matches; } ,__class__: openfl_utils_AGALMiniAssembler }; var openfl_utils__$AGALMiniAssembler_OpCode = function(name,numRegister,emitCode,flags) { this.name = name; this.numRegister = numRegister; this.emitCode = emitCode; this.flags = flags; }; $hxClasses["openfl.utils._AGALMiniAssembler.OpCode"] = openfl_utils__$AGALMiniAssembler_OpCode; openfl_utils__$AGALMiniAssembler_OpCode.__name__ = "openfl.utils._AGALMiniAssembler.OpCode"; openfl_utils__$AGALMiniAssembler_OpCode.prototype = { emitCode: null ,flags: null ,name: null ,numRegister: null ,toString: function() { return "[OpCode name=\"" + this.name + "\", numRegister=" + this.numRegister + ", emitCode=" + this.emitCode + ", flags=" + this.flags + "]"; } ,__class__: openfl_utils__$AGALMiniAssembler_OpCode }; var openfl_utils__$AGALMiniAssembler_Register = function(name,longName,emitCode,range,flags) { this.name = name; this.longName = longName; this.emitCode = emitCode; this.range = range; this.flags = flags; }; $hxClasses["openfl.utils._AGALMiniAssembler.Register"] = openfl_utils__$AGALMiniAssembler_Register; openfl_utils__$AGALMiniAssembler_Register.__name__ = "openfl.utils._AGALMiniAssembler.Register"; openfl_utils__$AGALMiniAssembler_Register.prototype = { emitCode: null ,name: null ,longName: null ,flags: null ,range: null ,toString: function() { return "[Register name=\"" + this.name + "\", longName=\"" + this.longName + "\", emitCode=" + (this.emitCode == null ? "null" : Std.string(UInt.toFloat(this.emitCode))) + ", range=" + (this.range == null ? "null" : Std.string(UInt.toFloat(this.range))) + ", flags=" + (this.flags == null ? "null" : Std.string(UInt.toFloat(this.flags))) + "]"; } ,__class__: openfl_utils__$AGALMiniAssembler_Register }; var openfl_utils__$AGALMiniAssembler_Sampler = function(name,flag,mask) { this.name = name; this.flag = flag; this.mask = mask; }; $hxClasses["openfl.utils._AGALMiniAssembler.Sampler"] = openfl_utils__$AGALMiniAssembler_Sampler; openfl_utils__$AGALMiniAssembler_Sampler.__name__ = "openfl.utils._AGALMiniAssembler.Sampler"; openfl_utils__$AGALMiniAssembler_Sampler.prototype = { flag: null ,mask: null ,name: null ,toString: function() { return "[Sampler name=\"" + this.name + "\", flag=\"" + (this.flag == null ? "null" : Std.string(UInt.toFloat(this.flag))) + "\", mask=" + (this.mask == null ? "null" : Std.string(UInt.toFloat(this.mask))) + "]"; } ,__class__: openfl_utils__$AGALMiniAssembler_Sampler }; var openfl_utils_AssetLibrary = function() { lime_utils_AssetLibrary.call(this); }; $hxClasses["openfl.utils.AssetLibrary"] = openfl_utils_AssetLibrary; openfl_utils_AssetLibrary.__name__ = "openfl.utils.AssetLibrary"; openfl_utils_AssetLibrary.fromBundle = function(bundle) { var library = lime_utils_AssetLibrary.fromBundle(bundle); if(library != null) { if(((library) instanceof openfl_utils_AssetLibrary)) { return library; } else { var _library = new openfl_utils_AssetLibrary(); _library.__proxy = library; return _library; } } else { return null; } }; openfl_utils_AssetLibrary.fromBytes = function(bytes,rootPath) { return openfl_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromBytes(openfl_utils_ByteArray.toLimeBytes(bytes),rootPath)); }; openfl_utils_AssetLibrary.fromFile = function(path,rootPath) { return openfl_utils_AssetLibrary.fromManifest(lime_utils_AssetManifest.fromFile(path,rootPath)); }; openfl_utils_AssetLibrary.fromManifest = function(manifest) { var library = lime_utils_AssetLibrary.fromManifest(manifest); if(library != null) { if(((library) instanceof openfl_utils_AssetLibrary)) { return library; } else { var _library = new openfl_utils_AssetLibrary(); _library.__proxy = library; return _library; } } else { return null; } }; openfl_utils_AssetLibrary.loadFromBytes = function(bytes,rootPath) { return lime_utils_AssetManifest.loadFromBytes(openfl_utils_ByteArray.toLimeBytes(bytes),rootPath).then(function(manifest) { return openfl_utils_AssetLibrary.loadFromManifest(manifest); }); }; openfl_utils_AssetLibrary.loadFromFile = function(path,rootPath) { return lime_utils_AssetManifest.loadFromFile(path,rootPath).then(function(manifest) { return openfl_utils_AssetLibrary.loadFromManifest(manifest); }); }; openfl_utils_AssetLibrary.loadFromManifest = function(manifest) { var library = openfl_utils_AssetLibrary.fromManifest(manifest); if(library != null) { return library.load().then(function(library) { return lime_app_Future.withValue(library); }); } else { return lime_app_Future.withError("Could not load asset manifest"); } }; openfl_utils_AssetLibrary.__super__ = lime_utils_AssetLibrary; openfl_utils_AssetLibrary.prototype = $extend(lime_utils_AssetLibrary.prototype,{ __proxy: null ,bind: function(className,instance) { return false; } ,exists: function(id,type) { if(this.__proxy != null) { return this.__proxy.exists(id,type); } else { return lime_utils_AssetLibrary.prototype.exists.call(this,id,type); } } ,getAsset: function(id,type) { if(this.__proxy != null) { return this.__proxy.getAsset(id,type); } else { return lime_utils_AssetLibrary.prototype.getAsset.call(this,id,type); } } ,getAudioBuffer: function(id) { if(this.__proxy != null) { return this.__proxy.getAudioBuffer(id); } else { return lime_utils_AssetLibrary.prototype.getAudioBuffer.call(this,id); } } ,getBytes: function(id) { if(this.__proxy != null) { return this.__proxy.getBytes(id); } else { return lime_utils_AssetLibrary.prototype.getBytes.call(this,id); } } ,getFont: function(id) { if(this.__proxy != null) { return this.__proxy.getFont(id); } else { return lime_utils_AssetLibrary.prototype.getFont.call(this,id); } } ,getImage: function(id) { if(this.__proxy != null) { return this.__proxy.getImage(id); } else { return lime_utils_AssetLibrary.prototype.getImage.call(this,id); } } ,getMovieClip: function(id) { return null; } ,getPath: function(id) { if(this.__proxy != null) { return this.__proxy.getPath(id); } else { return lime_utils_AssetLibrary.prototype.getPath.call(this,id); } } ,getText: function(id) { if(this.__proxy != null) { return this.__proxy.getText(id); } else { return lime_utils_AssetLibrary.prototype.getText.call(this,id); } } ,isLocal: function(id,type) { if(this.__proxy != null) { return this.__proxy.isLocal(id,type); } else { return lime_utils_AssetLibrary.prototype.isLocal.call(this,id,type); } } ,list: function(type) { if(this.__proxy != null) { return this.__proxy.list(type); } else { return lime_utils_AssetLibrary.prototype.list.call(this,type); } } ,loadAsset: function(id,type) { if(this.__proxy != null) { return this.__proxy.loadAsset(id,type); } else { return lime_utils_AssetLibrary.prototype.loadAsset.call(this,id,type); } } ,load: function() { if(this.__proxy != null) { return this.__proxy.load(); } else { return lime_utils_AssetLibrary.prototype.load.call(this); } } ,loadAudioBuffer: function(id) { if(this.__proxy != null) { return this.__proxy.loadAudioBuffer(id); } else { return lime_utils_AssetLibrary.prototype.loadAudioBuffer.call(this,id); } } ,loadBytes: function(id) { if(this.__proxy != null) { return this.__proxy.loadBytes(id); } else { return lime_utils_AssetLibrary.prototype.loadBytes.call(this,id); } } ,loadFont: function(id) { if(this.__proxy != null) { return this.__proxy.loadFont(id); } else { return lime_utils_AssetLibrary.prototype.loadFont.call(this,id); } } ,loadImage: function(id) { if(this.__proxy != null) { return this.__proxy.loadImage(id); } else { return lime_utils_AssetLibrary.prototype.loadImage.call(this,id); } } ,loadMovieClip: function(id) { return lime_app_Future.withValue(this.getMovieClip(id)); } ,loadText: function(id) { if(this.__proxy != null) { return this.__proxy.loadText(id); } else { return lime_utils_AssetLibrary.prototype.loadText.call(this,id); } } ,unload: function() { if(this.__proxy != null) { this.__proxy.unload(); return; } else { lime_utils_AssetLibrary.prototype.unload.call(this); return; } } ,__class__: openfl_utils_AssetLibrary }); var openfl_utils_ByteArray = {}; openfl_utils_ByteArray.__properties__ = {set_position:"set_position",get_position:"get_position",set_length:"set_length",get_length:"get_length",get_bytesAvailable:"get_bytesAvailable",set_defaultObjectEncoding:"set_defaultObjectEncoding",get_defaultObjectEncoding:"get_defaultObjectEncoding",set_defaultEndian:"set_defaultEndian",get_defaultEndian:"get_defaultEndian"}; openfl_utils_ByteArray._new = function(length) { if(length == null) { length = 0; } return new openfl_utils_ByteArrayData(length); }; openfl_utils_ByteArray.clear = function(this1) { this1.clear(); }; openfl_utils_ByteArray.compress = function(this1,algorithm) { this1.compress(algorithm); }; openfl_utils_ByteArray.deflate = function(this1) { this1.deflate(); }; openfl_utils_ByteArray.fromArrayBuffer = function(buffer) { if(buffer == null) { return null; } return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(buffer)); }; openfl_utils_ByteArray.fromBytes = function(bytes) { if(bytes == null) { return null; } if(((bytes) instanceof openfl_utils_ByteArrayData)) { return bytes; } else { return openfl_utils_ByteArrayData.fromBytes(bytes); } }; openfl_utils_ByteArray.fromBytesData = function(bytesData) { if(bytesData == null) { return null; } return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(bytesData)); }; openfl_utils_ByteArray.fromFile = function(path) { return openfl_utils_ByteArray.fromLimeBytes(lime_utils_Bytes.fromFile(path)); }; openfl_utils_ByteArray.fromLimeBytes = function(bytes) { return openfl_utils_ByteArray.fromBytes(bytes); }; openfl_utils_ByteArray.get = function(this1,index) { return this1.b[index]; }; openfl_utils_ByteArray.inflate = function(this1) { this1.inflate(); }; openfl_utils_ByteArray.loadFromBytes = function(bytes) { return lime_utils_Bytes.loadFromBytes(bytes).then(function(limeBytes) { var byteArray = openfl_utils_ByteArray.fromLimeBytes(limeBytes); return lime_app_Future.withValue(byteArray); }); }; openfl_utils_ByteArray.loadFromFile = function(path) { return lime_utils_Bytes.loadFromFile(path).then(function(limeBytes) { var byteArray = openfl_utils_ByteArray.fromLimeBytes(limeBytes); return lime_app_Future.withValue(byteArray); }); }; openfl_utils_ByteArray.readBoolean = function(this1) { return this1.readBoolean(); }; openfl_utils_ByteArray.readByte = function(this1) { return this1.readByte(); }; openfl_utils_ByteArray.readBytes = function(this1,bytes,offset,length) { if(length == null) { length = 0; } if(offset == null) { offset = 0; } this1.readBytes(bytes,offset,length); }; openfl_utils_ByteArray.readDouble = function(this1) { return this1.readDouble(); }; openfl_utils_ByteArray.readFloat = function(this1) { return this1.readFloat(); }; openfl_utils_ByteArray.readInt = function(this1) { return this1.readInt(); }; openfl_utils_ByteArray.readMultiByte = function(this1,length,charSet) { return this1.readMultiByte(length,charSet); }; openfl_utils_ByteArray.readObject = function(this1) { return this1.readObject(); }; openfl_utils_ByteArray.readShort = function(this1) { return this1.readShort(); }; openfl_utils_ByteArray.readUTF = function(this1) { return this1.readUTF(); }; openfl_utils_ByteArray.readUTFBytes = function(this1,length) { return this1.readUTFBytes(length); }; openfl_utils_ByteArray.readUnsignedByte = function(this1) { return this1.readUnsignedByte(); }; openfl_utils_ByteArray.readUnsignedInt = function(this1) { return this1.readUnsignedInt(); }; openfl_utils_ByteArray.readUnsignedShort = function(this1) { return this1.readUnsignedShort(); }; openfl_utils_ByteArray.set = function(this1,index,value) { this1.__resize(index + 1); this1.b[index] = value & 255; return value; }; openfl_utils_ByteArray.toArrayBuffer = function(byteArray) { return byteArray.b.bufferValue; }; openfl_utils_ByteArray.toBytePointer = function(byteArray) { lime_utils_BytePointer.set(openfl_utils_ByteArray.__bytePointer,byteArray,null,null,byteArray.position); return openfl_utils_ByteArray.__bytePointer; }; openfl_utils_ByteArray.toBytes = function(byteArray) { return byteArray; }; openfl_utils_ByteArray.toBytesData = function(byteArray) { return byteArray.b.bufferValue; }; openfl_utils_ByteArray.toLimeBytes = function(byteArray) { return byteArray; }; openfl_utils_ByteArray.toString = function(this1) { return this1.toString(); }; openfl_utils_ByteArray.uncompress = function(this1,algorithm) { this1.uncompress(algorithm); }; openfl_utils_ByteArray.writeBoolean = function(this1,value) { this1.writeBoolean(value); }; openfl_utils_ByteArray.writeByte = function(this1,value) { this1.writeByte(value); }; openfl_utils_ByteArray.writeBytes = function(this1,bytes,offset,length) { if(length == null) { length = 0; } if(offset == null) { offset = 0; } this1.writeBytes(bytes,offset,length); }; openfl_utils_ByteArray.writeDouble = function(this1,value) { this1.writeDouble(value); }; openfl_utils_ByteArray.writeFloat = function(this1,value) { this1.writeFloat(value); }; openfl_utils_ByteArray.writeInt = function(this1,value) { this1.writeInt(value); }; openfl_utils_ByteArray.writeMultiByte = function(this1,value,charSet) { this1.writeMultiByte(value,charSet); }; openfl_utils_ByteArray.writeObject = function(this1,object) { this1.writeObject(object); }; openfl_utils_ByteArray.writeShort = function(this1,value) { this1.writeShort(value); }; openfl_utils_ByteArray.writeUTF = function(this1,value) { this1.writeUTF(value); }; openfl_utils_ByteArray.writeUTFBytes = function(this1,value) { this1.writeUTFBytes(value); }; openfl_utils_ByteArray.writeUnsignedInt = function(this1,value) { this1.writeUnsignedInt(value); }; openfl_utils_ByteArray.get_bytesAvailable = function(this1) { return this1.length - this1.position; }; openfl_utils_ByteArray.get_defaultEndian = function() { if(openfl_utils_ByteArrayData.__defaultEndian == null) { if(lime_system_System.get_endianness() == lime_system_Endian.LITTLE_ENDIAN) { openfl_utils_ByteArrayData.__defaultEndian = 1; } else { openfl_utils_ByteArrayData.__defaultEndian = 0; } } return openfl_utils_ByteArrayData.__defaultEndian; }; openfl_utils_ByteArray.set_defaultEndian = function(value) { return openfl_utils_ByteArrayData.__defaultEndian = value; }; openfl_utils_ByteArray.get_defaultObjectEncoding = function() { return openfl_utils_ByteArrayData.defaultObjectEncoding; }; openfl_utils_ByteArray.set_defaultObjectEncoding = function(value) { return openfl_utils_ByteArrayData.defaultObjectEncoding = value; }; openfl_utils_ByteArray.get_endian = function(this1) { return this1.__endian; }; openfl_utils_ByteArray.set_endian = function(this1,value) { return this1.__endian = value; }; openfl_utils_ByteArray.get_length = function(this1) { if(this1 == null) { return 0; } else { return this1.length; } }; openfl_utils_ByteArray.set_length = function(this1,value) { if(value >= 0) { this1.__resize(value); if(value < this1.position) { this1.position = value; } } this1.length = value; return value; }; openfl_utils_ByteArray.get_objectEncoding = function(this1) { return this1.objectEncoding; }; openfl_utils_ByteArray.set_objectEncoding = function(this1,value) { return this1.objectEncoding = value; }; openfl_utils_ByteArray.get_position = function(this1) { return this1.position; }; openfl_utils_ByteArray.set_position = function(this1,value) { return this1.position = value; }; var openfl_utils_CompressionAlgorithm = {}; openfl_utils_CompressionAlgorithm.fromString = function(value) { switch(value) { case "deflate": return 0; case "lzma": return 1; case "zlib": return 2; default: return null; } }; openfl_utils_CompressionAlgorithm.toString = function(this1) { switch(this1) { case 0: return "deflate"; case 1: return "lzma"; case 2: return "zlib"; default: return null; } }; var openfl_utils_Dictionary = {}; openfl_utils_Dictionary.exists = function(this1,key) { return this1.exists(key); }; openfl_utils_Dictionary.get = function(this1,key) { return this1.get(key); }; openfl_utils_Dictionary.keyValueIterator = function(this1) { return this1.keyValueIterator(); }; openfl_utils_Dictionary.remove = function(this1,key) { return this1.remove(key); }; openfl_utils_Dictionary.set = function(this1,key,value) { this1.set(key,value); return value; }; openfl_utils_Dictionary.iterator = function(this1) { return this1.keys(); }; openfl_utils_Dictionary.each = function(this1) { return this1.iterator(); }; openfl_utils_Dictionary.toStringMap = function(t,weakKeys) { return new haxe_ds_StringMap(); }; openfl_utils_Dictionary.toIntMap = function(t,weakKeys) { return new haxe_ds_IntMap(); }; openfl_utils_Dictionary.toFloatMap = function(t,weakKeys) { return new openfl_utils__$Dictionary_FloatMap(); }; openfl_utils_Dictionary.toEnumValueMapMap = function(t,weakKeys) { return new haxe_ds_EnumValueMap(); }; openfl_utils_Dictionary.toObjectMap = function(t,weakKeys) { return new haxe_ds_ObjectMap(); }; openfl_utils_Dictionary.toUtilsObjectMap = function(t,weakKeys) { return new openfl_utils__$Dictionary_UtilsObjectMap(); }; openfl_utils_Dictionary.toClassMap = function(t,weakKeys) { return new openfl_utils__$Dictionary_ClassMap(); }; openfl_utils_Dictionary.fromStringMap = function(map) { return map; }; openfl_utils_Dictionary.fromIntMap = function(map) { return map; }; openfl_utils_Dictionary.fromFloatMap = function(map) { return map; }; openfl_utils_Dictionary.fromObjectMap = function(map) { return map; }; openfl_utils_Dictionary.fromUtilsObjectMap = function(map) { return map; }; openfl_utils_Dictionary.fromClassMap = function(map) { return map; }; var openfl_utils__$Dictionary_ClassMap = function() { this.types = new haxe_ds_StringMap(); this.values = new haxe_ds_StringMap(); }; $hxClasses["openfl.utils._Dictionary.ClassMap"] = openfl_utils__$Dictionary_ClassMap; openfl_utils__$Dictionary_ClassMap.__name__ = "openfl.utils._Dictionary.ClassMap"; openfl_utils__$Dictionary_ClassMap.__interfaces__ = [haxe_IMap]; openfl_utils__$Dictionary_ClassMap.prototype = { types: null ,values: null ,clear: function() { this.types.h = Object.create(null); this.values.h = Object.create(null); } ,copy: function() { var copied = new openfl_utils__$Dictionary_ClassMap(); var key = this.keys(); while(key.hasNext()) { var key1 = key.next(); copied.set(key1,this.get(key1)); } return copied; } ,exists: function(key) { var this1 = this.types; var key1 = key.__name__; return Object.prototype.hasOwnProperty.call(this1.h,key1); } ,get: function(key) { var this1 = this.values; var key1 = key.__name__; return this1.h[key1]; } ,keyValueIterator: function() { return new haxe_iterators_MapKeyValueIterator(this); } ,keys: function() { return new haxe_ds__$StringMap_StringMapValueIterator(this.types.h); } ,iterator: function() { return new haxe_ds__$StringMap_StringMapValueIterator(this.values.h); } ,remove: function(key) { var name = key.__name__; var _this = this.types; var tmp; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); tmp = true; } else { tmp = false; } if(!tmp) { var _this = this.values; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); return true; } else { return false; } } else { return true; } } ,set: function(key,value) { var name = key.__name__; this.types.h[name] = key; this.values.h[name] = value; } ,toString: function() { return haxe_ds_StringMap.stringify(this.values.h); } ,__class__: openfl_utils__$Dictionary_ClassMap }; var openfl_utils__$Dictionary_FloatMap = function() { this.floatKeys = []; this.values = []; }; $hxClasses["openfl.utils._Dictionary.FloatMap"] = openfl_utils__$Dictionary_FloatMap; openfl_utils__$Dictionary_FloatMap.__name__ = "openfl.utils._Dictionary.FloatMap"; openfl_utils__$Dictionary_FloatMap.__interfaces__ = [haxe_IMap]; openfl_utils__$Dictionary_FloatMap.prototype = { floatKeys: null ,values: null ,clear: function() { this.floatKeys = []; this.values = []; } ,copy: function() { var copied = new openfl_utils__$Dictionary_FloatMap(); var key = this.keys(); while(key.hasNext()) { var key1 = key.next(); copied.set(key1,this.get(key1)); } return copied; } ,exists: function(key) { return this.indexOf(key) > -1; } ,get: function(key) { var ind = this.indexOf(key); if(ind > -1) { return this.values[ind]; } else { return null; } } ,keyValueIterator: function() { return new haxe_iterators_MapKeyValueIterator(this); } ,keys: function() { return new haxe_iterators_ArrayIterator(this.floatKeys.slice()); } ,iterator: function() { return new haxe_iterators_ArrayIterator(this.values.slice()); } ,remove: function(key) { var ind = this.indexOf(key); if(ind > -1) { this.floatKeys.splice(ind,1); this.values.splice(ind,1); return true; } return false; } ,set: function(key,value) { this.insertSorted(key,value); } ,indexOf: function(key) { var len = this.floatKeys.length; var startIndex = 0; var endIndex = len - 1; if(len == 0) { return -1; } var midIndex = 0; while(startIndex < endIndex) { midIndex = Math.floor((startIndex + endIndex) / 2); if(this.floatKeys[midIndex] == key) { return midIndex; } else if(this.floatKeys[midIndex] > key) { endIndex = midIndex - 1; } else { startIndex = midIndex + 1; } } if(this.floatKeys[startIndex] == key) { return startIndex; } else { return -1; } } ,insertSorted: function(key,value) { var len = this.floatKeys.length; var startIndex = 0; var endIndex = len - 1; if(len == 0) { this.floatKeys.push(key); this.values.push(value); return; } var midIndex = 0; while(startIndex < endIndex) { midIndex = Math.floor((startIndex + endIndex) / 2); if(this.floatKeys[midIndex] == key) { this.values[midIndex] = value; return; } else if(this.floatKeys[midIndex] > key) { endIndex = midIndex - 1; } else { startIndex = midIndex + 1; } } if(this.floatKeys[startIndex] > key) { this.floatKeys.splice(startIndex,0,key); this.values.splice(startIndex,0,value); } else if(this.floatKeys[startIndex] < key) { this.floatKeys.splice(startIndex + 1,0,key); this.values.splice(startIndex + 1,0,value); } else { this.values[startIndex] = value; } } ,toString: function() { return this.values.toString(); } ,__class__: openfl_utils__$Dictionary_FloatMap }; var openfl_utils__$Dictionary_UtilsObjectMap = function() { this.map = new haxe_ds_ObjectMap(); }; $hxClasses["openfl.utils._Dictionary.UtilsObjectMap"] = openfl_utils__$Dictionary_UtilsObjectMap; openfl_utils__$Dictionary_UtilsObjectMap.__name__ = "openfl.utils._Dictionary.UtilsObjectMap"; openfl_utils__$Dictionary_UtilsObjectMap.__interfaces__ = [haxe_IMap]; openfl_utils__$Dictionary_UtilsObjectMap.prototype = { map: null ,clear: function() { this.map.h = { __keys__ : { }}; } ,copy: function() { var copied = new openfl_utils__$Dictionary_UtilsObjectMap(); var key = this.keys(); while(key.hasNext()) { var key1 = key.next(); copied.set(key1,this.get(key1)); } return copied; } ,exists: function(key) { return this.map.h.__keys__[key.__id__] != null; } ,get: function(key) { return this.map.h[key.__id__]; } ,keyValueIterator: function() { return new haxe_iterators_MapKeyValueIterator(this); } ,keys: function() { return this.map.keys(); } ,iterator: function() { return this.map.iterator(); } ,remove: function(key) { return this.map.remove(key); } ,set: function(key,value) { this.map.set(key,value); } ,toString: function() { return this.map.toString(); } ,__class__: openfl_utils__$Dictionary_UtilsObjectMap }; var openfl_utils_Endian = {}; openfl_utils_Endian.fromLimeEndian = function(value) { switch(value._hx_index) { case 0: return 1; case 1: return 0; } }; openfl_utils_Endian.fromString = function(value) { switch(value) { case "bigEndian": return 0; case "littleEndian": return 1; default: return null; } }; openfl_utils_Endian.toLimeEndian = function(this1) { switch(this1) { case 0: return lime_system_Endian.BIG_ENDIAN; case 1: return lime_system_Endian.LITTLE_ENDIAN; default: return null; } }; openfl_utils_Endian.toString = function(this1) { switch(this1) { case 0: return "bigEndian"; case 1: return "littleEndian"; default: return null; } }; var openfl_utils_Object = {}; openfl_utils_Object._new = function() { return { }; }; openfl_utils_Object.hasOwnProperty = function(this1,name) { if(this1 != null) { return Object.prototype.hasOwnProperty.call(this1,name); } else { return false; } }; openfl_utils_Object.isPrototypeOf = function(this1,theClass) { if(this1 != null) { var c = js_Boot.getClass(this1); while(c != null) { if(c == theClass) { return true; } c = c.__super__; } } return false; }; openfl_utils_Object.iterator = function(this1) { if(((this1) instanceof Array)) { var arr = this1; return new haxe_iterators_ArrayIterator(arr); } else { var fields = Reflect.fields(this1); if(fields == null) { fields = []; } if(((this1) instanceof openfl_display_DisplayObjectContainer)) { var container = this1; var _g = 0; var _g1 = container.get_numChildren(); while(_g < _g1) { var i = _g++; var child = container.getChildAt(i); var name = child.get_name(); if(name != null && fields.indexOf(name) == -1) { fields.push(name); } } } return new haxe_iterators_ArrayIterator(fields); } }; openfl_utils_Object.propertyIsEnumerable = function(this1,name) { if(this1 != null && Object.prototype.hasOwnProperty.call(this1,name)) { return js_Boot.__implements(Reflect.field(this1,name),haxe_lang_Iterable); } else { return false; } }; openfl_utils_Object.toLocaleString = function(this1) { if(this1 == null) { return null; } else { return Std.string(this1); } }; openfl_utils_Object.toString = function(this1) { if(this1 == null) { return null; } else { return Std.string(this1); } }; openfl_utils_Object.valueOf = function(this1) { return this1; }; openfl_utils_Object.__fieldRead = function(this1,name) { return openfl_utils_Object.__get(this1,name); }; openfl_utils_Object.__fieldWrite = function(this1,name,value) { var this2 = this1; if(this2 != null) { Reflect.setProperty(this2,name,value); } return value; }; openfl_utils_Object.__get = function(this1,key) { if(this1 == null || key == null) { return null; } if(Object.prototype.hasOwnProperty.call(this1,key)) { return Reflect.field(this1,key); } else if(((this1) instanceof openfl_display_DisplayObjectContainer)) { var container = this1; var child = container.getChildByName(key); if(child != null) { return child; } } return Reflect.getProperty(this1,key); }; openfl_utils_Object.__set = function(this1,key,value) { if(this1 != null) { Reflect.setProperty(this1,key,value); } return value; }; openfl_utils_Object.__getArray = function(this1,index) { if(this1 == null) { return null; } var arr = js_Boot.__cast(this1 , Array); return arr[index]; }; openfl_utils_Object.__setArray = function(this1,index,value) { if(this1 == null) { return value; } var arr = js_Boot.__cast(this1 , Array); return arr[index] = value; }; openfl_utils_Object.toFunction = function(this1) { return this1; }; openfl_utils_Object.toFloat = function(this1) { if(typeof(this1) == "number") { return this1; } else { return NaN; } }; openfl_utils_Object.toInt = function(this1) { return this1; }; openfl_utils_Object.toBool = function(this1) { if(typeof(this1) == "boolean") { return this1; } else if(typeof(this1) == "number") { return this1 != 0; } else { return this1 != null; } }; openfl_utils_Object.__negate = function(this1) { var float = this1; return -float; }; openfl_utils_Object.__preIncrement = function(this1) { var float = this1; return ++float; }; openfl_utils_Object.__postIncrement = function(this1) { var float = this1; return float++; }; openfl_utils_Object.__preDecrement = function(this1) { var float = this1; return --float; }; openfl_utils_Object.__postDecrement = function(this1) { var float = this1; return float--; }; openfl_utils_Object.__add = function(a,b) { if(typeof(a) == "string" || typeof(b) == "string") { var tmp; if(a == null) { tmp = "null"; } else { var this1 = a; tmp = this1 == null ? null : Std.string(this1); } var tmp1; if(b == null) { tmp1 = "null"; } else { var this1 = b; tmp1 = this1 == null ? null : Std.string(this1); } return tmp + tmp1; } else { var floatA = a; var floatB = b; return floatA + floatB; } }; openfl_utils_Object.__addString = function(a,b) { var stringA; if(a == null) { stringA = "null"; } else { var this1 = a; stringA = this1 == null ? null : Std.string(this1); } return stringA + b; }; openfl_utils_Object.__addInt = function(a,b) { var floatA = a; return floatA + b; }; openfl_utils_Object.__addFloat = function(a,b) { var floatA = a; return floatA + b; }; openfl_utils_Object.__sub = function(a,b) { var floatA = a; var floatB = b; return floatA - floatB; }; openfl_utils_Object.__subInt = function(a,b) { var floatA = a; return floatA - b; }; openfl_utils_Object.__intSub = function(a,b) { var floatB = b; return a - floatB; }; openfl_utils_Object.__subFloat = function(a,b) { var floatA = a; return floatA - b; }; openfl_utils_Object.__floatSub = function(a,b) { var floatB = b; return a - floatB; }; openfl_utils_Object.__mul = function(a,b) { var floatA = a; var floatB = b; return floatA * floatB; }; openfl_utils_Object.__mulInt = function(a,b) { var floatA = a; return floatA * b; }; openfl_utils_Object.__mulFloat = function(a,b) { var floatA = a; return floatA * b; }; openfl_utils_Object.__div = function(a,b) { var floatA = a; var floatB = b; return floatA / floatB; }; openfl_utils_Object.__divInt = function(a,b) { var floatA = a; return floatA / b; }; openfl_utils_Object.__intDiv = function(a,b) { var floatB = b; return a / floatB; }; openfl_utils_Object.__divFloat = function(a,b) { var floatA = a; return floatA / b; }; openfl_utils_Object.__floatDiv = function(a,b) { var floatB = b; return a / floatB; }; openfl_utils_Object.__mod = function(a,b) { var floatA = a; var floatB = b; return floatA % floatB; }; openfl_utils_Object.__modInt = function(a,b) { var floatA = a; return floatA % b; }; openfl_utils_Object.__intMod = function(a,b) { var floatB = b; return a % floatB; }; openfl_utils_Object.__modFloat = function(a,b) { var floatA = a; return floatA % b; }; openfl_utils_Object.__floatMod = function(a,b) { var floatB = b; return a % floatB; }; openfl_utils_Object.__eq = function(a,b) { var dynamicA = a; var dynamicB = b; return dynamicA == dynamicB; }; openfl_utils_Object.__eqDynamic = function(a,b) { var dynamicA = a; return dynamicA == b; }; openfl_utils_Object.__neq = function(a,b) { var dynamicA = a; var dynamicB = b; return dynamicA != dynamicB; }; openfl_utils_Object.__neqDynamic = function(a,b) { var dynamicA = a; return dynamicA != b; }; openfl_utils_Object.__lt = function(a,b) { var floatA = a; var floatB = b; return floatA < floatB; }; openfl_utils_Object.__ltInt = function(a,b) { var floatA = a; return floatA < b; }; openfl_utils_Object.__intLt = function(a,b) { var floatB = b; return a < floatB; }; openfl_utils_Object.__ltFloat = function(a,b) { var floatA = a; return floatA < b; }; openfl_utils_Object.__floatLt = function(a,b) { var floatB = b; return a < floatB; }; openfl_utils_Object.__lte = function(a,b) { var floatA = a; var floatB = b; return floatA <= floatB; }; openfl_utils_Object.__lteInt = function(a,b) { var floatB = b; return openfl_utils_Object.__lte(a,floatB); }; openfl_utils_Object.__intLte = function(a,b) { var floatA = a; return openfl_utils_Object.__lte(floatA,b); }; openfl_utils_Object.__lteFloat = function(a,b) { var floatB = b; return openfl_utils_Object.__lte(a,floatB); }; openfl_utils_Object.__floatLte = function(a,b) { var floatA = a; return openfl_utils_Object.__lte(floatA,b); }; openfl_utils_Object.__gt = function(a,b) { var floatA = a; var floatB = b; return floatA > floatB; }; openfl_utils_Object.__gtInt = function(a,b) { var floatB = b; return openfl_utils_Object.__gt(a,floatB); }; openfl_utils_Object.__intGt = function(a,b) { var floatB = b; return a > floatB; }; openfl_utils_Object.__gtFloat = function(a,b) { var floatB = b; return openfl_utils_Object.__gt(a,floatB); }; openfl_utils_Object.__floatGt = function(a,b) { var floatB = b; return a > floatB; }; openfl_utils_Object.__gte = function(a,b) { var floatA = a; var floatB = b; return floatA >= floatB; }; openfl_utils_Object.__gteInt = function(a,b) { var floatB = b; return openfl_utils_Object.__gte(a,floatB); }; openfl_utils_Object.__intGte = function(a,b) { var floatB = b; return a >= floatB; }; openfl_utils_Object.__gteFloat = function(a,b) { var floatB = b; return openfl_utils_Object.__gte(a,floatB); }; openfl_utils_Object.__floatGte = function(a,b) { var floatB = b; return a >= floatB; }; openfl_utils_Object.__complement = function(this1) { var int = this1; return ~int; }; openfl_utils_Object.__and = function(a,b) { var intA = a; var intB = b; return intA & intB; }; openfl_utils_Object.__andInt = function(a,b) { var intA = a; return intA & b; }; openfl_utils_Object.__or = function(a,b) { var intA = a; var intB = b; return intA | intB; }; openfl_utils_Object.__orInt = function(a,b) { var intA = a; return intA | b; }; openfl_utils_Object.__xor = function(a,b) { var intA = a; var intB = b; return intA ^ intB; }; openfl_utils_Object.__xorInt = function(a,b) { var intA = a; return intA ^ b; }; openfl_utils_Object.__shr = function(a,b) { var intA = a; var intB = b; return intA >> intB; }; openfl_utils_Object.__shrInt = function(a,b) { var intA = a; return intA >> b; }; openfl_utils_Object.__intShr = function(a,b) { var intB = b; return a >> intB; }; openfl_utils_Object.__ushr = function(a,b) { var intA = a; var intB = b; return intA >>> intB; }; openfl_utils_Object.__ushrInt = function(a,b) { var intA = a; return intA >>> b; }; openfl_utils_Object.__intUshr = function(a,b) { var intB = b; return a >>> intB; }; openfl_utils_Object.__shl = function(a,b) { var intA = a; var intB = b; return intA << intB; }; openfl_utils_Object.__shlInt = function(a,b) { var intA = a; return intA << b; }; openfl_utils_Object.__intShl = function(a,b) { var intB = b; return a << intB; }; var haxe_lang_Iterator = function() { }; $hxClasses["haxe.lang.Iterator"] = haxe_lang_Iterator; haxe_lang_Iterator.__name__ = "haxe.lang.Iterator"; haxe_lang_Iterator.__isInterface__ = true; 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.__isInterface__ = true; haxe_lang_Iterable.prototype = { iterator: null ,__class__: haxe_lang_Iterable }; var openfl_utils__$internal_Lib = function() { }; $hxClasses["openfl.utils._internal.Lib"] = openfl_utils__$internal_Lib; openfl_utils__$internal_Lib.__name__ = "openfl.utils._internal.Lib"; openfl_utils__$internal_Lib.application = null; openfl_utils__$internal_Lib.current = null; openfl_utils__$internal_Lib.notImplemented = function(posInfo) { var api = posInfo.className + "." + posInfo.methodName; if(!Object.prototype.hasOwnProperty.call(openfl_utils__$internal_Lib.__sentWarnings.h,api)) { openfl_utils__$internal_Lib.__sentWarnings.h[api] = true; lime_utils_Log.warn(posInfo.methodName + " is not implemented",posInfo); } }; var openfl_utils__$internal_TouchData = function() { this.rollOutStack = []; }; $hxClasses["openfl.utils._internal.TouchData"] = openfl_utils__$internal_TouchData; openfl_utils__$internal_TouchData.__name__ = "openfl.utils._internal.TouchData"; openfl_utils__$internal_TouchData.prototype = { rollOutStack: null ,touch: null ,touchDownTarget: null ,touchOverTarget: null ,reset: function() { this.touch = null; this.touchDownTarget = null; this.touchOverTarget = null; this.rollOutStack.splice(0,this.rollOutStack.length); } ,__class__: openfl_utils__$internal_TouchData }; var polymod_Framework = $hxEnums["polymod.Framework"] = { __ename__:"polymod.Framework",__constructs__:null ,CASTLE: {_hx_name:"CASTLE",_hx_index:0,__enum__:"polymod.Framework",toString:$estr} ,NME: {_hx_name:"NME",_hx_index:1,__enum__:"polymod.Framework",toString:$estr} ,LIME: {_hx_name:"LIME",_hx_index:2,__enum__:"polymod.Framework",toString:$estr} ,OPENFL: {_hx_name:"OPENFL",_hx_index:3,__enum__:"polymod.Framework",toString:$estr} ,OPENFL_WITH_NODE: {_hx_name:"OPENFL_WITH_NODE",_hx_index:4,__enum__:"polymod.Framework",toString:$estr} ,FLIXEL: {_hx_name:"FLIXEL",_hx_index:5,__enum__:"polymod.Framework",toString:$estr} ,HEAPS: {_hx_name:"HEAPS",_hx_index:6,__enum__:"polymod.Framework",toString:$estr} ,KHA: {_hx_name:"KHA",_hx_index:7,__enum__:"polymod.Framework",toString:$estr} ,CERAMIC: {_hx_name:"CERAMIC",_hx_index:8,__enum__:"polymod.Framework",toString:$estr} ,CUSTOM: {_hx_name:"CUSTOM",_hx_index:9,__enum__:"polymod.Framework",toString:$estr} ,UNKNOWN: {_hx_name:"UNKNOWN",_hx_index:10,__enum__:"polymod.Framework",toString:$estr} }; polymod_Framework.__constructs__ = [polymod_Framework.CASTLE,polymod_Framework.NME,polymod_Framework.LIME,polymod_Framework.OPENFL,polymod_Framework.OPENFL_WITH_NODE,polymod_Framework.FLIXEL,polymod_Framework.HEAPS,polymod_Framework.KHA,polymod_Framework.CERAMIC,polymod_Framework.CUSTOM,polymod_Framework.UNKNOWN]; polymod_Framework.__empty_constructs__ = [polymod_Framework.CASTLE,polymod_Framework.NME,polymod_Framework.LIME,polymod_Framework.OPENFL,polymod_Framework.OPENFL_WITH_NODE,polymod_Framework.FLIXEL,polymod_Framework.HEAPS,polymod_Framework.KHA,polymod_Framework.CERAMIC,polymod_Framework.CUSTOM,polymod_Framework.UNKNOWN]; var polymod_Polymod = function() { }; $hxClasses["polymod.Polymod"] = polymod_Polymod; polymod_Polymod.__name__ = "polymod.Polymod"; polymod_Polymod.init = function(params) { if(params.errorCallback != null) { polymod_Polymod.onError = params.errorCallback; } var modRoot = params.modRoot; if(modRoot == null) { if(params.fileSystemParams.modRoot != null) { modRoot = params.fileSystemParams.modRoot; } else { modRoot = "./mods"; } } var dirs = params.dirs == null ? [] : params.dirs; if(params.fileSystemParams == null) { params.fileSystemParams = { modRoot : modRoot}; } if(params.fileSystemParams.modRoot == null) { params.fileSystemParams.modRoot = modRoot; } if(params.apiVersionRule == null) { params.apiVersionRule = polymod_util_VersionUtil.DEFAULT_VERSION_RULE; } var fileSystem = polymod_fs_PolymodFileSystem.makeFileSystem(params.customFilesystem,params.fileSystemParams); var modsToLoad = []; var _g = 0; var _g1 = dirs.length; while(_g < _g1) { var i = _g++; if(dirs[i] != null) { var modId = dirs[i]; var meta = fileSystem.getMetadata(modId); if(meta != null) { var version = meta.apiVersion; var rule = params.apiVersionRule; if(!(version == null || rule == null ? false : thx_semver_VersionRule.isSatisfiedBy(rule,thx_semver_Version.stringToVersion("" + version.version[0] + "." + version.version[1] + "." + version.version[2])))) { polymod_Polymod.error("version_conflict_api","Mod \"" + modId + "\" was built for incompatible API version " + thx_semver_Version.toString(meta.apiVersion) + ", expected \"" + thx_semver_VersionRule.toString(params.apiVersionRule) + "\"","init"); } modsToLoad.push(meta); } } } var sortedModsToLoad = modsToLoad; if(!params.skipDependencyChecks) { sortedModsToLoad = polymod_util_DependencyUtil.sortByDependencies(modsToLoad,params.skipDependencyErrors); if(sortedModsToLoad == null) { sortedModsToLoad = []; } } else { polymod_Polymod.warning("dependency_check_skipped","Dependency checks were skipped."); } var result = new Array(sortedModsToLoad.length); var _g = 0; var _g1 = sortedModsToLoad.length; while(_g < _g1) { var i = _g++; result[i] = sortedModsToLoad[i].modPath; } var sortedModPaths = result; polymod_Polymod.assetLibrary = polymod_backends_PolymodAssets.init({ framework : params.framework, dirs : sortedModPaths, parseRules : params.parseRules, ignoredFiles : params.ignoredFiles, customBackend : params.customBackend, extensionMap : params.extensionMap, frameworkParams : params.frameworkParams, fileSystem : fileSystem, assetPrefix : params.assetPrefix}); if(polymod_Polymod.assetLibrary == null) { return null; } polymod_Polymod.prevParams = params; if(params.useScriptedClasses) { polymod_Polymod.notice("script_parsing","Parsing script classes..."); if(params.loadScriptsAsync) { polymod_Polymod.registerAllScriptClassesAsync(); } else { polymod_Polymod.registerAllScriptClasses(); var classList = polymod_hscript__$internal_PolymodScriptClass.listScriptClasses(); polymod_Polymod.notice("script_parsed","Parsed and registered " + classList.length + " scripted classes."); } } return sortedModsToLoad; }; polymod_Polymod.getLoadedModIds = function() { return polymod_Polymod.assetLibrary.dirs; }; polymod_Polymod.getFileSystem = function() { if(polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot return file system.","init"); return null; } return polymod_Polymod.assetLibrary.fileSystem; }; polymod_Polymod.loadMod = function(modId) { if(polymod_Polymod.prevParams == null || polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot load mod \"" + modId + "\".","init"); return []; } var newParams = Reflect.copy(polymod_Polymod.prevParams); newParams.dirs = newParams.dirs.concat([modId]); newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; return polymod_Polymod.init(newParams); }; polymod_Polymod.loadMods = function(modIds) { if(polymod_Polymod.prevParams == null || polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot load mod \"" + Std.string(modIds) + "\".","init"); return []; } var newParams = Reflect.copy(polymod_Polymod.prevParams); newParams.dirs = newParams.dirs.concat(modIds); newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; return polymod_Polymod.init(newParams); }; polymod_Polymod.loadOnlyMods = function(modIds) { if(polymod_Polymod.prevParams == null || polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot load mod \"" + Std.string(modIds) + "\".","init"); return []; } var newParams = Reflect.copy(polymod_Polymod.prevParams); newParams.dirs = modIds; newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; return polymod_Polymod.init(newParams); }; polymod_Polymod.reload = function() { var newParams = Reflect.copy(polymod_Polymod.prevParams); newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; return polymod_Polymod.init(newParams); }; polymod_Polymod.unloadMod = function(modId) { if(polymod_Polymod.prevParams == null || polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot load mod \"" + modId + "\".","init"); return []; } var newParams = Reflect.copy(polymod_Polymod.prevParams); HxOverrides.remove(newParams.dirs,modId); newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; return polymod_Polymod.init(newParams); }; polymod_Polymod.unloadMods = function(modIds) { if(polymod_Polymod.prevParams == null || polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot load mod \"" + Std.string(modIds) + "\".","init"); return []; } var newParams = Reflect.copy(polymod_Polymod.prevParams); var _g = 0; while(_g < modIds.length) { var modId = modIds[_g]; ++_g; HxOverrides.remove(newParams.dirs,modId); } newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; return polymod_Polymod.init(newParams); }; polymod_Polymod.unloadAllMods = function() { if(polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot clear mods.","init"); return; } var newParams = Reflect.copy(polymod_Polymod.prevParams); newParams.dirs = []; newParams.customFilesystem = polymod_Polymod.assetLibrary.fileSystem; polymod_Polymod.init(newParams); }; polymod_Polymod.disable = function() { if(polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot clear mods.","init"); return; } polymod_Polymod.assetLibrary.destroy(); polymod_Polymod.assetLibrary = null; }; polymod_Polymod.getDefaultIgnoreList = function() { return polymod_PolymodConfig.get_modIgnoreFiles().concat([polymod_PolymodConfig.get_modMetadataFile(),polymod_PolymodConfig.get_modIconFile()]); }; polymod_Polymod.scan = function(scanParams) { if(scanParams == null) { if(polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot scan for mods.","init"); return []; } return polymod_Polymod.assetLibrary.fileSystem.scanMods(polymod_Polymod.prevParams.apiVersionRule); } else { if(scanParams.modRoot == null) { scanParams.modRoot = "./mods"; } if(scanParams.apiVersionRule == null) { scanParams.apiVersionRule = polymod_util_VersionUtil.DEFAULT_VERSION_RULE; } if(scanParams.fileSystem == null) { if(polymod_Polymod.assetLibrary != null) { scanParams.fileSystem = polymod_Polymod.assetLibrary.fileSystem; } else { scanParams.fileSystem = polymod_fs_PolymodFileSystem.makeFileSystem(null,{ modRoot : scanParams.modRoot}); } } return scanParams.fileSystem.scanMods(scanParams.apiVersionRule); } }; polymod_Polymod.clearCache = function() { if(polymod_Polymod.assetLibrary == null) { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot clear cache."); return; } polymod_Polymod.debug("Clearing backend asset cache...",{ fileName : "polymod/Polymod.hx", lineNumber : 643, className : "polymod.Polymod", methodName : "clearCache"}); polymod_Polymod.assetLibrary.clearCache(); }; polymod_Polymod.clearScripts = function() { polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h = Object.create(null); polymod_hscript_ScriptRunner.clearScripts(); }; polymod_Polymod.registerAllScriptClasses = function() { var potentialScripts = polymod_Polymod.assetLibrary.list("TEXT"); var _g = 0; while(_g < potentialScripts.length) { var textPath = potentialScripts[_g]; ++_g; if(StringTools.endsWith(textPath,polymod_PolymodConfig.get_scriptClassExt())) { polymod_Polymod.debug("Registering script class \"" + textPath + "\"",{ fileName : "polymod/Polymod.hx", lineNumber : 674, className : "polymod.Polymod", methodName : "registerAllScriptClasses"}); polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByPath(textPath); } } }; polymod_Polymod.registerAllScriptClassesAsync = function() { var potentialScripts = polymod_Polymod.assetLibrary.list("TEXT"); var _g = 0; while(_g < potentialScripts.length) { var textPath = potentialScripts[_g]; ++_g; if(StringTools.endsWith(textPath,polymod_PolymodConfig.get_scriptClassExt())) { polymod_Polymod.debug("Registering script class \"" + textPath + "\"",{ fileName : "polymod/Polymod.hx", lineNumber : 697, className : "polymod.Polymod", methodName : "registerAllScriptClassesAsync"}); polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByPathAsync(textPath); } } }; polymod_Polymod.error = function(code,message,origin) { if(origin == null) { origin = "unknown"; } if(polymod_Polymod.onError != null) { polymod_Polymod.onError(new polymod_PolymodError(polymod_PolymodErrorType.ERROR,code,message,origin)); } }; polymod_Polymod.warning = function(code,message,origin) { if(origin == null) { origin = "unknown"; } if(polymod_Polymod.onError != null) { polymod_Polymod.onError(new polymod_PolymodError(polymod_PolymodErrorType.WARNING,code,message,origin)); } }; polymod_Polymod.notice = function(code,message,origin) { if(origin == null) { origin = "unknown"; } if(polymod_Polymod.onError != null) { polymod_Polymod.onError(new polymod_PolymodError(polymod_PolymodErrorType.NOTICE,code,message,origin)); } }; polymod_Polymod.debug = function(message,posInfo) { if(polymod_PolymodConfig.get_debug()) { if(posInfo != null) { haxe_Log.trace("[POLYMOD] (" + posInfo.fileName + "#" + posInfo.lineNumber + "): " + message,{ fileName : "polymod/Polymod.hx", lineNumber : 736, className : "polymod.Polymod", methodName : "debug"}); } else { haxe_Log.trace("[POLYMOD] " + message,{ fileName : "polymod/Polymod.hx", lineNumber : 738, className : "polymod.Polymod", methodName : "debug"}); } } }; polymod_Polymod.listModFiles = function(type) { if(polymod_Polymod.assetLibrary != null) { return polymod_Polymod.assetLibrary.listModFiles(type); } else { polymod_Polymod.warning("polymod_not_loaded","Polymod is not loaded yet, cannot list files."); return []; } }; polymod_Polymod.addImportAlias = function(importAlias,importClass) { polymod_hscript__$internal_PolymodScriptClass.importOverrides.h[importAlias] = importClass; }; polymod_Polymod.removeImportAlias = function(importAlias) { var _this = polymod_hscript__$internal_PolymodScriptClass.importOverrides; if(Object.prototype.hasOwnProperty.call(_this.h,importAlias)) { delete(_this.h[importAlias]); } }; polymod_Polymod.addDefaultImport = function(importClass,importAlias) { var key = importAlias == null ? importClass.__name__ : importAlias; polymod_hscript__$internal_PolymodScriptClass.defaultImports.h[key] = importClass; }; polymod_Polymod.blacklistImport = function(importPath) { polymod_Polymod.addImportAlias(importPath,null); }; var polymod_ModMetadata = function() { this.icon = null; }; $hxClasses["polymod.ModMetadata"] = polymod_ModMetadata; polymod_ModMetadata.__name__ = "polymod.ModMetadata"; polymod_ModMetadata.fromJsonStr = function(str) { if(str == null || str == "") { polymod_Polymod.error("parse_mod_meta","Error parsing mod metadata file, was null or empty."); return null; } var json = null; try { json = JSON.parse(str); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("parse_mod_meta","Error parsing mod metadata file: (" + Std.string(msg) + ")"); return null; } var m = new polymod_ModMetadata(); m.title = polymod_format_JsonHelp.str(json,"title"); m.description = polymod_format_JsonHelp.str(json,"description"); m._author = polymod_format_JsonHelp.str(json,"author"); m.contributors = polymod_format_JsonHelp.arrType(json,"contributors"); m.homepage = polymod_format_JsonHelp.str(json,"homepage"); var apiVersionStr = polymod_format_JsonHelp.str(json,"api_version"); var modVersionStr = polymod_format_JsonHelp.str(json,"mod_version"); try { m.apiVersion = thx_semver_Version.stringToVersion(apiVersionStr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("parse_mod_api_version","Error parsing API version: (" + Std.string(msg) + ") " + polymod_PolymodConfig.get_modMetadataFile() + " was " + str); return null; } try { m.modVersion = thx_semver_Version.stringToVersion(modVersionStr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("parse_mod_version","Error parsing mod version: (" + Std.string(msg) + ") " + polymod_PolymodConfig.get_modMetadataFile() + " was " + str); return null; } m.license = polymod_format_JsonHelp.str(json,"license"); m.metadata = polymod_format_JsonHelp.mapStr(json,"metadata"); m.dependencies = polymod_format_JsonHelp.mapVersionRule(json,"dependencies"); m.optionalDependencies = polymod_format_JsonHelp.mapVersionRule(json,"optionalDependencies"); return m; }; polymod_ModMetadata.prototype = { id: null ,title: null ,description: null ,homepage: null ,apiVersion: null ,modVersion: null ,license: null ,icon: null ,iconPath: null ,modPath: null ,metadata: null ,dependencies: null ,optionalDependencies: null ,_author: null ,get_author: function() { if(this.contributors.length > 0) { return this.contributors[0].name; } return this._author; } ,set_author: function(v) { if(this.contributors.length == 0) { this.contributors.push({ name : v}); } else { this.contributors[0].name = v; } return v; } ,contributors: null ,toJsonStr: function() { var json = { }; json["title"] = this.title; json["description"] = this.description; json["contributors"] = this.contributors; json["homepage"] = this.homepage; json["api_version"] = thx_semver_Version.toString(this.apiVersion); json["mod_version"] = thx_semver_Version.toString(this.modVersion); json["license"] = this.license; var meta = { }; var h = this.metadata.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; meta[key] = this.metadata.h[key]; } json["metadata"] = meta; return JSON.stringify(json,null," "); } ,__class__: polymod_ModMetadata ,__properties__: {set_author:"set_author",get_author:"get_author"} }; var polymod_PolymodError = function(severity,code,message,origin) { if(origin == null) { origin = "unknown"; } this.severity = severity; this.code = code; this.message = message; this.origin = origin; }; $hxClasses["polymod.PolymodError"] = polymod_PolymodError; polymod_PolymodError.__name__ = "polymod.PolymodError"; polymod_PolymodError.prototype = { severity: null ,code: null ,message: null ,origin: null ,__class__: polymod_PolymodError }; var polymod_PolymodErrorType = $hxEnums["polymod.PolymodErrorType"] = { __ename__:"polymod.PolymodErrorType",__constructs__:null ,NOTICE: {_hx_name:"NOTICE",_hx_index:0,__enum__:"polymod.PolymodErrorType",toString:$estr} ,WARNING: {_hx_name:"WARNING",_hx_index:1,__enum__:"polymod.PolymodErrorType",toString:$estr} ,ERROR: {_hx_name:"ERROR",_hx_index:2,__enum__:"polymod.PolymodErrorType",toString:$estr} }; polymod_PolymodErrorType.__constructs__ = [polymod_PolymodErrorType.NOTICE,polymod_PolymodErrorType.WARNING,polymod_PolymodErrorType.ERROR]; polymod_PolymodErrorType.__empty_constructs__ = [polymod_PolymodErrorType.NOTICE,polymod_PolymodErrorType.WARNING,polymod_PolymodErrorType.ERROR]; var polymod_PolymodConfig = function() { }; $hxClasses["polymod.PolymodConfig"] = polymod_PolymodConfig; polymod_PolymodConfig.__name__ = "polymod.PolymodConfig"; polymod_PolymodConfig.__properties__ = {get_modIgnoreFiles:"get_modIgnoreFiles",get_modIconFile:"get_modIconFile",get_modMetadataFile:"get_modMetadataFile",get_modPackFile:"get_modPackFile",get_mergeFolder:"get_mergeFolder",get_appendFolder:"get_appendFolder",get_scriptLibrary:"get_scriptLibrary",get_scriptClassExt:"get_scriptClassExt",get_scriptExt:"get_scriptExt",get_useNamespaceInPaths:"get_useNamespaceInPaths",get_rootPath:"get_rootPath",get_debug:"get_debug"}; polymod_PolymodConfig.debug = null; polymod_PolymodConfig.get_debug = function() { if(polymod_PolymodConfig.debug == null) { polymod_PolymodConfig.debug = false; } return polymod_PolymodConfig.debug; }; polymod_PolymodConfig.rootPath = null; polymod_PolymodConfig.get_rootPath = function() { if(polymod_PolymodConfig.rootPath == null) { polymod_PolymodConfig.rootPath = "scripts/"; } return polymod_PolymodConfig.rootPath; }; polymod_PolymodConfig.useNamespaceInPaths = null; polymod_PolymodConfig.get_useNamespaceInPaths = function() { if(polymod_PolymodConfig.useNamespaceInPaths == null) { polymod_PolymodConfig.useNamespaceInPaths = false; } return polymod_PolymodConfig.useNamespaceInPaths; }; polymod_PolymodConfig.scriptExt = null; polymod_PolymodConfig.get_scriptExt = function() { if(polymod_PolymodConfig.scriptExt == null) { polymod_PolymodConfig.scriptExt = ".hscript"; } return polymod_PolymodConfig.scriptExt; }; polymod_PolymodConfig.scriptClassExt = null; polymod_PolymodConfig.get_scriptClassExt = function() { if(polymod_PolymodConfig.scriptClassExt == null) { polymod_PolymodConfig.scriptClassExt = ".hxc"; } return polymod_PolymodConfig.scriptClassExt; }; polymod_PolymodConfig.scriptLibrary = null; polymod_PolymodConfig.get_scriptLibrary = function() { if(polymod_PolymodConfig.scriptLibrary == null) { polymod_PolymodConfig.scriptLibrary = "scripts"; } return polymod_PolymodConfig.scriptLibrary; }; polymod_PolymodConfig.appendFolder = null; polymod_PolymodConfig.get_appendFolder = function() { if(polymod_PolymodConfig.appendFolder == null) { polymod_PolymodConfig.appendFolder = "_append"; } return polymod_PolymodConfig.appendFolder; }; polymod_PolymodConfig.mergeFolder = null; polymod_PolymodConfig.get_mergeFolder = function() { if(polymod_PolymodConfig.mergeFolder == null) { polymod_PolymodConfig.mergeFolder = "_merge"; } return polymod_PolymodConfig.mergeFolder; }; polymod_PolymodConfig.modPackFile = null; polymod_PolymodConfig.get_modPackFile = function() { if(polymod_PolymodConfig.modPackFile == null) { polymod_PolymodConfig.modPackFile = "_polymod_pack.txt"; } return polymod_PolymodConfig.modPackFile; }; polymod_PolymodConfig.modMetadataFile = null; polymod_PolymodConfig.get_modMetadataFile = function() { if(polymod_PolymodConfig.modMetadataFile == null) { polymod_PolymodConfig.modMetadataFile = "_polymod_meta.json"; } return polymod_PolymodConfig.modMetadataFile; }; polymod_PolymodConfig.modIconFile = null; polymod_PolymodConfig.get_modIconFile = function() { if(polymod_PolymodConfig.modIconFile == null) { polymod_PolymodConfig.modIconFile = "_polymod_icon.png"; } return polymod_PolymodConfig.modIconFile; }; polymod_PolymodConfig.modIgnoreFiles = null; polymod_PolymodConfig.get_modIgnoreFiles = function() { if(polymod_PolymodConfig.modIgnoreFiles == null) { polymod_PolymodConfig.modIgnoreFiles = ["LICENSE.txt","ASSET_LICENSE.txt","CODE_LICENSE.txt"]; } return polymod_PolymodConfig.modIgnoreFiles; }; var polymod_backends_IBackend = function() { }; $hxClasses["polymod.backends.IBackend"] = polymod_backends_IBackend; polymod_backends_IBackend.__name__ = "polymod.backends.IBackend"; polymod_backends_IBackend.__isInterface__ = true; polymod_backends_IBackend.prototype = { polymodLibrary: null ,init: null ,destroy: null ,clearCache: null ,exists: null ,getBytes: null ,getText: null ,loadBytes: null ,loadText: null ,getPath: null ,list: null ,__class__: polymod_backends_IBackend }; var polymod_backends_StubBackend = function() { }; $hxClasses["polymod.backends.StubBackend"] = polymod_backends_StubBackend; polymod_backends_StubBackend.__name__ = "polymod.backends.StubBackend"; polymod_backends_StubBackend.__interfaces__ = [polymod_backends_IBackend]; polymod_backends_StubBackend.prototype = { polymodLibrary: null ,init: function(params) { return false; } ,destroy: function() { } ,clearCache: function() { } ,exists: function(id) { return false; } ,getBytes: function(id) { return null; } ,getText: function(id) { return null; } ,loadBytes: function(id) { return null; } ,loadText: function(id) { return null; } ,getPath: function(id) { return null; } ,list: function(type) { return []; } ,stripAssetsPrefix: function(id) { return id; } ,__class__: polymod_backends_StubBackend }; var polymod_backends_CastleBackend = function() { polymod_backends_StubBackend.call(this); polymod_Polymod.error("functionality_not_implemented","CastleDB support in Polymod has not been implemented yet"); }; $hxClasses["polymod.backends.CastleBackend"] = polymod_backends_CastleBackend; polymod_backends_CastleBackend.__name__ = "polymod.backends.CastleBackend"; polymod_backends_CastleBackend.__super__ = polymod_backends_StubBackend; polymod_backends_CastleBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{ __class__: polymod_backends_CastleBackend }); var polymod_backends_CeramicBackend = function() { polymod_backends_StubBackend.call(this); polymod_Polymod.error("functionality_not_implemented","CeramicBackend requires the ceramic library, did you forget to install it?"); }; $hxClasses["polymod.backends.CeramicBackend"] = polymod_backends_CeramicBackend; polymod_backends_CeramicBackend.__name__ = "polymod.backends.CeramicBackend"; polymod_backends_CeramicBackend.__super__ = polymod_backends_StubBackend; polymod_backends_CeramicBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{ __class__: polymod_backends_CeramicBackend }); var polymod_backends_LimeBackend = function() { }; $hxClasses["polymod.backends.LimeBackend"] = polymod_backends_LimeBackend; polymod_backends_LimeBackend.__name__ = "polymod.backends.LimeBackend"; polymod_backends_LimeBackend.__interfaces__ = [polymod_backends_IBackend]; polymod_backends_LimeBackend.defaultAssetLibraries = null; polymod_backends_LimeBackend.getDefaultAssetLibraries = function() { if(polymod_backends_LimeBackend.defaultAssetLibraries == null) { polymod_backends_LimeBackend.defaultAssetLibraries = new haxe_ds_StringMap(); var libraries = lime_utils_Assets.libraries; var h = libraries.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var this1 = polymod_backends_LimeBackend.defaultAssetLibraries; var value = lime_utils_Assets.getLibrary(key); this1.h[key] = value; } } return polymod_backends_LimeBackend.defaultAssetLibraries; }; polymod_backends_LimeBackend.restoreDefaultAssetLibraries = function() { if(polymod_backends_LimeBackend.defaultAssetLibraries != null) { var h = polymod_backends_LimeBackend.defaultAssetLibraries.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; lime_utils_Assets.registerLibrary(key,polymod_backends_LimeBackend.defaultAssetLibraries.h[key]); } } }; polymod_backends_LimeBackend.prototype = { polymodLibrary: null ,modLibraries: null ,init: function(params) { var defaultLibraries = polymod_backends_LimeBackend.getDefaultAssetLibraries(); this.modLibraries = new haxe_ds_StringMap(); var hasMoreThanDefault = false; var h = defaultLibraries.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; if(key != "default") { hasMoreThanDefault = true; break; } } if(params == null) { params = { }; } if(hasMoreThanDefault && params.assetLibraryPaths == null) { polymod_Polymod.error("lime_missing_asset_library_info","Your Lime/OpenFL configuration is using custom asset libraries, but you have not provided the frameworkParams.assetLibraryPaths parameter in Polymod.init() that tells Polymod which asset libraries to expect and what their mod sub-directory prefixes should be.","init"); return false; } var h = defaultLibraries.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var pathPrefix = ""; if(hasMoreThanDefault) { if(!Object.prototype.hasOwnProperty.call(params.assetLibraryPaths.h,key) && key != "default") { polymod_Polymod.error("lime_missing_asset_library_reference","Your Lime/OpenFL configuration is using custom asset libraries, and you provided frameworkParams in Polymod.init(), but we couldn't find a match for this asset library: (" + key + ")","init"); return false; } else { var tmp = params.assetLibraryPaths.h[key]; pathPrefix = tmp != null ? tmp : ""; } } var fallbackLibrary = defaultLibraries.h[key]; while(((fallbackLibrary) instanceof polymod_backends_LimeModLibrary)) fallbackLibrary = (js_Boot.__cast(fallbackLibrary , polymod_backends_LimeModLibrary)).getFallbackLibrary(); if(params.coreAssetRedirect != null) { fallbackLibrary = new polymod_backends_LimeCoreLibrary(this,fallbackLibrary,params.coreAssetRedirect,pathPrefix,key); } var modLibrary = this.buildModLibrary(fallbackLibrary,pathPrefix,key); this.modLibraries.h[key] = modLibrary; } var h = this.modLibraries.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; this.registerLibrary(key,this.modLibraries.h[key]); } return true; } ,buildModLibrary: function(fallbackLibrary,pathPrefix,libraryId) { return new polymod_backends_LimeModLibrary(this,fallbackLibrary,pathPrefix,libraryId); } ,registerLibrary: function(name,library) { if(name == null || name == "") { name = "default"; } if(Object.prototype.hasOwnProperty.call(lime_utils_Assets.libraries.h,name)) { if(lime_utils_Assets.libraries.h[name] == library) { return; } else { this.unloadLibrary(name); } } if(library != null) { library.onChange.add(lime_utils_Assets.library_onChange); } lime_utils_Assets.libraries.h[name] = library; } ,unloadLibrary: function(name) { if(name == null || name == "") { name = "default"; } var library = lime_utils_Assets.libraries.h[name]; if(library != null) { library.onChange.remove(lime_utils_Assets.library_onChange); } var _this = lime_utils_Assets.libraries; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } } ,destroy: function() { this.polymodLibrary = null; polymod_backends_LimeBackend.restoreDefaultAssetLibraries(); var h = this.modLibraries.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var modLibrary = this.modLibraries.h[key]; modLibrary.destroy(); var _this = this.modLibraries; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } this.modLibraries = null; } ,exists: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = this.modLibraries; var l = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); if(l != null) { symbol_library = l; } else if(libs != null) { if(symbol_lib == "" || symbol_lib == null) { symbol_lib = "default"; } symbol_library = libs.h[symbol_lib]; } if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var e = symbol_library.exists(symbol_modId,null); return e; } ,getBytes: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = this.modLibraries; var l = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); if(l != null) { symbol_library = l; } else if(libs != null) { if(symbol_lib == "" || symbol_lib == null) { symbol_lib = "default"; } symbol_library = libs.h[symbol_lib]; } if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var bytes = symbol_library.getBytes(symbol_modId); return bytes; } ,getText: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = this.modLibraries; var l = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); if(l != null) { symbol_library = l; } else if(libs != null) { if(symbol_lib == "" || symbol_lib == null) { symbol_lib = "default"; } symbol_library = libs.h[symbol_lib]; } if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var text = symbol_library.getText(symbol_modId); return text; } ,loadBytes: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = this.modLibraries; var l = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); if(l != null) { symbol_library = l; } else if(libs != null) { if(symbol_lib == "" || symbol_lib == null) { symbol_lib = "default"; } symbol_library = libs.h[symbol_lib]; } if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var bytesFuture = symbol_library.loadBytes(symbol_modId); return bytesFuture; } ,loadText: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = this.modLibraries; var l = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); if(l != null) { symbol_library = l; } else if(libs != null) { if(symbol_lib == "" || symbol_lib == null) { symbol_lib = "default"; } symbol_library = libs.h[symbol_lib]; } if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var textFuture = symbol_library.loadText(symbol_modId); return textFuture; } ,getPath: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = this.modLibraries; var l = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); if(l != null) { symbol_library = l; } else if(libs != null) { if(symbol_lib == "" || symbol_lib == null) { symbol_lib = "default"; } symbol_library = libs.h[symbol_lib]; } if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var path = symbol_library.getPath(symbol_modId); return path; } ,list: function(type) { if(this.modLibraries == null) { return []; } var arr = []; var h = this.modLibraries.h; var modLibrary_h = h; var modLibrary_keys = Object.keys(h); var modLibrary_length = modLibrary_keys.length; var modLibrary_current = 0; while(modLibrary_current < modLibrary_length) { var modLibrary = modLibrary_h[modLibrary_keys[modLibrary_current++]]; var items = modLibrary.list(null); var _g = []; var _g1 = 0; var _g2 = items; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(modLibrary.existsPoly(v,type)) { _g.push(v); } } items = _g; arr = arr.concat(items); } return arr; } ,clearCache: function() { if(polymod_backends_LimeBackend.defaultAssetLibraries != null) { var h = lime_utils_Assets.cache.audio.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = lime_utils_Assets.cache.audio; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } var h = lime_utils_Assets.cache.font.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = lime_utils_Assets.cache.font; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } var h = lime_utils_Assets.cache.image.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = lime_utils_Assets.cache.image; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } } ,preloadImagesToCache: function() { var h = this.modLibraries.h; var modLibrary_h = h; var modLibrary_keys = Object.keys(h); var modLibrary_length = modLibrary_keys.length; var modLibrary_current = 0; while(modLibrary_current < modLibrary_length) { var modLibrary = modLibrary_h[modLibrary_keys[modLibrary_current++]]; modLibrary.preloadImagesToCache(); } } ,__class__: polymod_backends_LimeBackend }; var polymod_backends_OpenFLBackend = function() { polymod_backends_LimeBackend.call(this); }; $hxClasses["polymod.backends.OpenFLBackend"] = polymod_backends_OpenFLBackend; polymod_backends_OpenFLBackend.__name__ = "polymod.backends.OpenFLBackend"; polymod_backends_OpenFLBackend.clearBitmapCache = function() { var cache = openfl_utils_Assets.cache; var h = cache.bitmapData.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = cache.bitmapData; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } }; polymod_backends_OpenFLBackend.clearFontCache = function() { var cache = openfl_utils_Assets.cache; var h = cache.font.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = cache.font; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } }; polymod_backends_OpenFLBackend.clearSoundCache = function() { var cache = openfl_utils_Assets.cache; var h = cache.sound.h; var key_h = h; var key_keys = Object.keys(h); var key_length = key_keys.length; var key_current = 0; while(key_current < key_length) { var key = key_keys[key_current++]; var _this = cache.sound; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } }; polymod_backends_OpenFLBackend.__super__ = polymod_backends_LimeBackend; polymod_backends_OpenFLBackend.prototype = $extend(polymod_backends_LimeBackend.prototype,{ clearCache: function() { polymod_backends_LimeBackend.prototype.clearCache.call(this); polymod_backends_OpenFLBackend.clearBitmapCache(); polymod_backends_OpenFLBackend.clearFontCache(); polymod_backends_OpenFLBackend.clearSoundCache(); } ,__class__: polymod_backends_OpenFLBackend }); var polymod_backends_FlixelBackend = function() { polymod_backends_OpenFLBackend.call(this); polymod_Polymod.debug("Initialized Flixel backend.",{ fileName : "polymod/backends/FlixelBackend.hx", lineNumber : 28, className : "polymod.backends.FlixelBackend", methodName : "new"}); }; $hxClasses["polymod.backends.FlixelBackend"] = polymod_backends_FlixelBackend; polymod_backends_FlixelBackend.__name__ = "polymod.backends.FlixelBackend"; polymod_backends_FlixelBackend.__super__ = polymod_backends_OpenFLBackend; polymod_backends_FlixelBackend.prototype = $extend(polymod_backends_OpenFLBackend.prototype,{ clearCache: function() { polymod_Polymod.notice("functionality_not_implemented","Watch out, the Flixel backend's clearCache function kinda sucks. " + "Ideally you should just disable Flixel's caching and manage everything yourself."); var bitmapsToClear = openfl_utils_Assets.list("IMAGE"); polymod_Polymod.debug("Known image keys: " + bitmapsToClear.length,{ fileName : "polymod/backends/FlixelBackend.hx", lineNumber : 61, className : "polymod.backends.FlixelBackend", methodName : "clearCache"}); var count = 0; var _g = 0; while(_g < bitmapsToClear.length) { var key = bitmapsToClear[_g]; ++_g; flixel_FlxG.bitmap.removeByKey(key); openfl_utils_Assets.cache.removeBitmapData(key); } polymod_Polymod.debug("Cleared " + count + " items from Flixel bitmap cache.",{ fileName : "polymod/backends/FlixelBackend.hx", lineNumber : 70, className : "polymod.backends.FlixelBackend", methodName : "clearCache"}); polymod_backends_OpenFLBackend.prototype.clearCache.call(this); } ,destroy: function() { this.clearCache(); polymod_backends_OpenFLBackend.prototype.destroy.call(this); } ,__class__: polymod_backends_FlixelBackend }); var polymod_backends_HEAPSBackend = function() { polymod_backends_StubBackend.call(this); polymod_Polymod.error("failed_create_backend","HEAPSBackend requires the heaps library, did you forget to install it?"); }; $hxClasses["polymod.backends.HEAPSBackend"] = polymod_backends_HEAPSBackend; polymod_backends_HEAPSBackend.__name__ = "polymod.backends.HEAPSBackend"; polymod_backends_HEAPSBackend.__super__ = polymod_backends_StubBackend; polymod_backends_HEAPSBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{ __class__: polymod_backends_HEAPSBackend }); var polymod_backends_KhaBackend = function() { polymod_backends_StubBackend.call(this); polymod_Polymod.error("functionality_not_implemented","KhaBackend requires the kha library, did you forget to install it?"); }; $hxClasses["polymod.backends.KhaBackend"] = polymod_backends_KhaBackend; polymod_backends_KhaBackend.__name__ = "polymod.backends.KhaBackend"; polymod_backends_KhaBackend.__super__ = polymod_backends_StubBackend; polymod_backends_KhaBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{ __class__: polymod_backends_KhaBackend }); var polymod_backends_LimeModLibrary = function(backend,fallback,pathPrefix,libraryId) { if(libraryId == null) { libraryId = "default"; } if(pathPrefix == null) { pathPrefix = ""; } this.b = backend; this.p = this.b.polymodLibrary; this.pathPrefix = pathPrefix; this.libraryId = libraryId; this.fallback = fallback; this.imageCache = new haxe_ds_StringMap(); this.preloadImagesToCache(); lime_utils_AssetLibrary.call(this); }; $hxClasses["polymod.backends.LimeModLibrary"] = polymod_backends_LimeModLibrary; polymod_backends_LimeModLibrary.__name__ = "polymod.backends.LimeModLibrary"; polymod_backends_LimeModLibrary.LimeToPoly = function(type) { if(type == null) { return null; } switch(type) { case "BINARY": return "BYTES"; case "FONT": return "FONT"; case "IMAGE": return "IMAGE"; case "MANIFEST": return "MANIFEST"; case "MUSIC": return "AUDIO_MUSIC"; case "SOUND": return "AUDIO_SOUND"; case "TEMPLATE": return "TEMPLATE"; case "TEXT": return "TEXT"; default: return "UNKNOWN"; } }; polymod_backends_LimeModLibrary.PolyToLime = function(type) { if(type == null) { return null; } switch(type) { case "AUDIO_GENERIC": return "SOUND"; case "AUDIO_MUSIC": return "MUSIC"; case "AUDIO_SOUND": return "SOUND"; case "BYTES": return "BINARY"; case "FONT": return "FONT"; case "IMAGE": return "IMAGE"; case "MANIFEST": return "MANIFEST"; case "TEMPLATE": return "TEMPLATE"; case "TEXT": return "TEXT"; default: return "BINARY"; } }; polymod_backends_LimeModLibrary.__super__ = lime_utils_AssetLibrary; polymod_backends_LimeModLibrary.prototype = $extend(lime_utils_AssetLibrary.prototype,{ pathPrefix: null ,libraryId: null ,b: null ,p: null ,fallback: null ,type: null ,hasFallback: null ,get_hasFallback: function() { return this.fallback != null; } ,imageCache: null ,destroy: function() { this.b = null; this.p = null; this.fallback = null; this.type = null; } ,getFallbackLibrary: function() { return this.fallback; } ,preloadImagesToCache: function() { var _g = 0; var _g1 = this.list("IMAGE"); while(_g < _g1.length) { var imageAsset = _g1[_g]; ++_g; var symbol_modId; var symbol_library; var id = imageAsset; var libs = null; var symbol_fallbackId = id; var colonIndex = id.indexOf(":"); var symbol_lib = id.substring(0,colonIndex); var symbol_nakedId = id.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var filePath = this.p.file(symbol_modId); if(Object.prototype.hasOwnProperty.call(this.imageCache.h,filePath)) { continue; } this.loadImage(imageAsset); } } ,getAsset: function(id,type) { if(type == "TEXT") { return this.getText(id); } var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId,polymod_backends_LimeModLibrary.LimeToPoly(type))) { return lime_utils_AssetLibrary.prototype.getAsset.call(this,id,type); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.getAsset(localePath,type); } else { return this.fallback.getAsset(id,type); } } return null; } ,exists: function(id,type) { if(id == null) { return false; } var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId,polymod_backends_LimeModLibrary.LimeToPoly(type))) { return true; } else if(this.get_hasFallback()) { return this.existsDefault(id,type); } return false; } ,existsPoly: function(id,type) { if(id == null) { return false; } var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId,type)) { return true; } else if(this.get_hasFallback()) { return this.existsDefault(id,type); } return false; } ,existsDefault: function(id,type) { return this.fallback.exists(id,type); } ,getAudioBuffer: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { return lime_media_AudioBuffer.fromBytes(this.p.fileSystem.getFileBytes(this.p.file(symbol_modId))); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.getAudioBuffer(localePath); } else { return this.fallback.getAudioBuffer(id); } } return null; } ,getBytes: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var file = this.p.file(symbol_modId); if(this.p.check(symbol_modId)) { return this.p.fileSystem.getFileBytes(this.p.file(symbol_modId)); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.getBytes(localePath); } else { return this.fallback.getBytes(id); } } return null; } ,getFont: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { var font = openfl_text_Font.fromBytes(openfl_utils_ByteArray.fromBytes(this.p.fileSystem.getFileBytes(this.p.file(symbol_modId)))); if(!Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,font.name)) { openfl_text_Font.registerFont(font); } return font; } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.getFont(localePath); } else { return this.fallback.getFont(id); } } return null; } ,getImage: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { var filePath = this.p.file(symbol_modId); if(Object.prototype.hasOwnProperty.call(this.imageCache.h,filePath)) { return this.imageCache.h[filePath]; } else { return null; } } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.getImage(localePath); } else { return this.fallback.getImage(id); } } return null; } ,getPath: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { return this.p.file(symbol_modId); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.getPath(localePath); } else { return this.fallback.getPath(id); } } return null; } ,getText: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; var modText = null; if(this.p.check(symbol_modId)) { modText = lime_utils_AssetLibrary.prototype.getText.call(this,symbol_modId); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { modText = this.fallback.getText(localePath); } else { modText = this.fallback.getText(id); } } if(modText != null) { modText = this.p.mergeAndAppendText(id,modText); } return modText; } ,loadBytes: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { return lime_utils_Bytes.loadFromFile(this.p.file(symbol_modId)); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.loadBytes(localePath); } else { return this.fallback.loadBytes(id); } } return lime_utils_Bytes.loadFromFile(""); } ,loadFont: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { return lime_text_Font.loadFromName(this.getPath(this.p.file(symbol_modId))); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.loadFont(localePath); } else { return this.fallback.loadFont(id); } } return lime_text_Font.loadFromName(this.getPath("")); } ,loadImage: function(id) { var _gthis = this; var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { var filePath = this.p.file(symbol_modId); var dabytes = this.p.fileSystem.getFileBytes(filePath); var imageFuture = lime_graphics_Image.loadFromBytes(dabytes); imageFuture.onComplete(function(result) { if(result != null) { _gthis.imageCache.h[filePath] = result; } }); return imageFuture; } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.loadImage(localePath); } else { return this.fallback.loadImage(id); } } return lime_graphics_Image.loadFromFile(""); } ,loadAudioBuffer: function(id) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { var this1 = this.pathGroups; var key = this.p.file(symbol_modId); if(Object.prototype.hasOwnProperty.call(this1.h,key)) { var this1 = this.pathGroups; var key = this.p.file(symbol_modId); return lime_media_AudioBuffer.loadFromFiles(this1.h[key]); } else { return lime_media_AudioBuffer.loadFromFile(this.getPath(this.p.file(symbol_modId))); } } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.loadAudioBuffer(localePath); } else { return this.fallback.loadAudioBuffer(id); } } return lime_media_AudioBuffer.loadFromFile(""); } ,loadText: function(id) { var _gthis = this; var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { var request = new lime_net__$HTTPRequest_$String(); var this1 = this.paths; var key = this.p.file(symbol_modId); return request.load(this1.h[key]).then(function(modText) { if(modText != null) { modText = _gthis.p.mergeAndAppendText(id,modText); } return lime_app_Future.withValue(modText); }); } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.loadText(localePath); } else { return this.fallback.loadText(id); } } var request = new lime_net__$HTTPRequest_$String(); return request.load(""); } ,isLocal: function(id,type) { var symbol_modId; var symbol_library; var id1 = id; var libs = null; var symbol_fallbackId = id1; var colonIndex = id1.indexOf(":"); var symbol_lib = id1.substring(0,colonIndex); var symbol_nakedId = id1.substring(colonIndex + 1); symbol_library = this; if(symbol_library != null && symbol_library.pathPrefix != null && symbol_library.pathPrefix != "") { symbol_modId = "" + symbol_library.pathPrefix + "/" + symbol_nakedId; } symbol_modId = symbol_nakedId; if(this.p.check(symbol_modId)) { return true; } else if(this.get_hasFallback()) { var localePath = this.p.fileLocale(id); if(this.fallback.exists(localePath,null)) { return this.fallback.isLocal(localePath,type); } else { return this.fallback.isLocal(id,type); } } return false; } ,list: function(requestedType) { var polyType = polymod_backends_LimeModLibrary.LimeToPoly(requestedType); var fallbackList = this.get_hasFallback() ? this.fallback.list(requestedType) : []; var limeType = requestedType != null ? js_Boot.__cast(requestedType , String) : null; var items = []; var addItem = function(path) { if(items.indexOf(path) == -1) { items.push(path); } }; var tmp = this.p.typeLibraries.h[this.libraryId]; var libraryItems = tmp != null ? tmp : []; var _g = 0; while(_g < libraryItems.length) { var id = libraryItems[_g]; ++_g; if(StringTools.startsWith(id,polymod_PolymodConfig.get_appendFolder()) || StringTools.startsWith(id,polymod_PolymodConfig.get_mergeFolder())) { continue; } if(limeType == null || this.p.type.h[id] == polyType) { addItem(this.p.prependAssetsPrefix(id)); } } var _g = 0; while(_g < fallbackList.length) { var fallbackId = fallbackList[_g]; ++_g; var assetId = fallbackId; addItem(assetId); } items = polymod_util_Util.filterUnique_String(items); return items; } ,load: function() { return lime_utils_AssetLibrary.prototype.load.call(this); } ,__class__: polymod_backends_LimeModLibrary ,__properties__: {get_hasFallback:"get_hasFallback"} }); var polymod_backends_LimeCoreLibrary = function(backend,fallback,redirectPath,pathPrefix,libraryId) { lime_utils_AssetLibrary.call(this); this.backend = backend; this.fallback = fallback; this.redirectPath = redirectPath; this.pathPrefix = pathPrefix; this.libraryId = libraryId; this.get_polymodLibrary().initRedirectPath(libraryId,redirectPath,pathPrefix); }; $hxClasses["polymod.backends.LimeCoreLibrary"] = polymod_backends_LimeCoreLibrary; polymod_backends_LimeCoreLibrary.__name__ = "polymod.backends.LimeCoreLibrary"; polymod_backends_LimeCoreLibrary.__super__ = lime_utils_AssetLibrary; polymod_backends_LimeCoreLibrary.prototype = $extend(lime_utils_AssetLibrary.prototype,{ redirectPath: null ,backend: null ,polymodLibrary: null ,get_polymodLibrary: function() { return this.backend.polymodLibrary; } ,fallback: null ,hasFallback: null ,get_hasFallback: function() { return this.fallback != null; } ,pathPrefix: null ,libraryId: null ,imageCache: null ,buildRedirectId: function(id) { var baseId; if(this.pathPrefix == "") { baseId = this.libraryId != "default" ? polymod_util_Util.pathJoin(this.libraryId,this.get_polymodLibrary().stripAssetsPrefix(id)) : this.get_polymodLibrary().stripAssetsPrefix(id); } else { var strippedId = polymod_util_Util.stripPathPrefix(this.get_polymodLibrary().stripAssetsPrefix(id),this.pathPrefix); baseId = polymod_util_Util.pathJoin(this.pathPrefix,strippedId); } return polymod_util_Util.pathJoin(this.redirectPath,baseId); } ,exists: function(id,type) { if(id == null) { return false; } var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return true; } return this.fallback.exists(id,type); } ,getAsset: function(id,type) { return lime_utils_AssetLibrary.prototype.getAsset.call(this,id,type); } ,getAudioBuffer: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return lime_media_AudioBuffer.fromBytes(this.get_polymodLibrary().fileSystem.getFileBytes(redirectId)); } return this.fallback.getAudioBuffer(id); } ,getBytes: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return this.get_polymodLibrary().fileSystem.getFileBytes(redirectId); } return this.fallback.getBytes(id); } ,getFont: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { var font = openfl_text_Font.fromBytes(openfl_utils_ByteArray.fromBytes(this.get_polymodLibrary().fileSystem.getFileBytes(redirectId))); if(!Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,font.name)) { openfl_text_Font.registerFont(font); } } return this.fallback.getFont(id); } ,getImage: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return lime_graphics_Image.fromBytes(this.get_polymodLibrary().fileSystem.getFileBytes(redirectId)); } return this.fallback.getImage(id); } ,getText: function(id) { return lime_utils_AssetLibrary.prototype.getText.call(this,id); } ,getPath: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return redirectId; } return this.fallback.getPath(id); } ,isLocal: function(id,type) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return true; } return this.fallback.isLocal(id,type); } ,loadBytes: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return lime_utils_Bytes.loadFromFile(redirectId); } return this.fallback.loadBytes(id); } ,loadFont: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return lime_text_Font.loadFromName(this.getPath(redirectId)); } return this.fallback.loadFont(id); } ,loadImage: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { var filePath = this.get_polymodLibrary().file(redirectId); var dabytes = this.get_polymodLibrary().fileSystem.getFileBytes(filePath); var imageFuture = lime_graphics_Image.loadFromBytes(dabytes); return imageFuture; } return this.fallback.loadImage(id); } ,loadAudioBuffer: function(id) { var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { return lime_media_AudioBuffer.loadFromFile(redirectId); } return this.fallback.loadAudioBuffer(id); } ,loadText: function(id) { var _gthis = this; var redirectId = this.buildRedirectId(id); if(this.get_polymodLibrary().fileSystem.exists(redirectId)) { var request = new lime_net__$HTTPRequest_$String(); return request.load(redirectId).then(function(modText) { if(modText != null) { modText = _gthis.get_polymodLibrary().mergeAndAppendText(id,modText); } return lime_app_Future.withValue(modText); }); } return this.fallback.loadText(id); } ,list: function(type) { var fallbackList = this.get_hasFallback() ? this.fallback.list(type) : []; var requestedType = type != null ? js_Boot.__cast(type , String) : null; var items = []; var addItem = function(path) { if(items.indexOf(path) == -1) { items.push(path); } }; var _g = 0; while(_g < fallbackList.length) { var id = fallbackList[_g]; ++_g; addItem(id); } var fileList = this.get_polymodLibrary().fileSystem.readDirectoryRecursive(polymod_util_Util.pathJoin(this.redirectPath,this.pathPrefix)); var _g = 0; while(_g < fileList.length) { var id = fileList[_g]; ++_g; var basePath = this.libraryId != "default" ? polymod_util_Util.pathJoin(this.libraryId,this.get_polymodLibrary().stripAssetsPrefix(id)) : this.get_polymodLibrary().stripAssetsPrefix(id); var fullId = this.get_polymodLibrary().prependAssetsPrefix(basePath); addItem(fullId); } return polymod_util_Util.filterUnique_String(items); } ,load: function() { return lime_utils_AssetLibrary.prototype.load.call(this); } ,__class__: polymod_backends_LimeCoreLibrary ,__properties__: {get_hasFallback:"get_hasFallback",get_polymodLibrary:"get_polymodLibrary"} }); var polymod_backends__$LimeBackend_IdAndLibrary = function(id,libs,l) { this.fallbackId = id; var colonIndex = id.indexOf(":"); this.lib = id.substring(0,colonIndex); this.nakedId = id.substring(colonIndex + 1); if(l != null) { this.library = l; } else if(libs != null) { if(this.lib == "" || this.lib == null) { this.lib = "default"; } this.library = libs.h[this.lib]; } if(this.library != null && this.library.pathPrefix != null && this.library.pathPrefix != "") { this.modId = "" + this.library.pathPrefix + "/" + this.nakedId; } this.modId = this.nakedId; }; $hxClasses["polymod.backends._LimeBackend.IdAndLibrary"] = polymod_backends__$LimeBackend_IdAndLibrary; polymod_backends__$LimeBackend_IdAndLibrary.__name__ = "polymod.backends._LimeBackend.IdAndLibrary"; polymod_backends__$LimeBackend_IdAndLibrary.prototype = { library: null ,lib: null ,modId: null ,nakedId: null ,fallbackId: null ,__class__: polymod_backends__$LimeBackend_IdAndLibrary }; var polymod_backends_NMEBackend = function() { polymod_backends_StubBackend.call(this); polymod_Polymod.error("failed_create_backend","NMEBackend requires the nme library, did you forget to install it?"); }; $hxClasses["polymod.backends.NMEBackend"] = polymod_backends_NMEBackend; polymod_backends_NMEBackend.__name__ = "polymod.backends.NMEBackend"; polymod_backends_NMEBackend.__super__ = polymod_backends_StubBackend; polymod_backends_NMEBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{ __class__: polymod_backends_NMEBackend }); var polymod_backends_OpenFLWithNodeBackend = function() { polymod_backends_StubBackend.call(this); polymod_Polymod.error("failed_create_backend","OpenFLWithNodeBackend requires the nodefs flag to be defined."); }; $hxClasses["polymod.backends.OpenFLWithNodeBackend"] = polymod_backends_OpenFLWithNodeBackend; polymod_backends_OpenFLWithNodeBackend.__name__ = "polymod.backends.OpenFLWithNodeBackend"; polymod_backends_OpenFLWithNodeBackend.__super__ = polymod_backends_StubBackend; polymod_backends_OpenFLWithNodeBackend.prototype = $extend(polymod_backends_StubBackend.prototype,{ __class__: polymod_backends_OpenFLWithNodeBackend }); var polymod_backends_PolymodAssetLibrary = function(params) { this.parseRules = null; this.ignoredFiles = null; this.dirs = null; this.assetPrefix = "assets/"; this.backend = params.backend; this.fileSystem = params.fileSystem; this.backend.polymodLibrary = this; this.dirs = params.dirs; this.parseRules = params.parseRules; this.ignoredFiles = params.ignoredFiles != null ? params.ignoredFiles.slice() : []; this.extensions = params.extensionMap; if(params.assetPrefix != null) { this.assetPrefix = params.assetPrefix; } this.backend.clearCache(); this.init(); }; $hxClasses["polymod.backends.PolymodAssetLibrary"] = polymod_backends_PolymodAssetLibrary; polymod_backends_PolymodAssetLibrary.__name__ = "polymod.backends.PolymodAssetLibrary"; polymod_backends_PolymodAssetLibrary.prototype = { backend: null ,fileSystem: null ,type: null ,typeLibraries: null ,assetPrefix: null ,dirs: null ,ignoredFiles: null ,parseRules: null ,extensions: null ,destroy: function() { if(this.backend != null) { this.backend.destroy(); } polymod_Polymod.clearScripts(); } ,mergeAndAppendText: function(id,modText) { modText = polymod_util_Util.mergeAndAppendText(modText,id,this.dirs,$bind(this,this.getTextDirectly),this.fileSystem,this.parseRules); return modText; } ,getExtensionType: function(ext) { ext = ext.toLowerCase(); if(Object.prototype.hasOwnProperty.call(this.extensions.h,ext) == false) { return "BYTES"; } return this.extensions.h[ext]; } ,getTextDirectly: function(id,directory) { if(directory == null) { directory = ""; } var bytes = null; if(this.checkDirectly(id,directory)) { bytes = this.fileSystem.getFileBytes(this.file(id,directory)); } else { bytes = this.backend.getBytes(id); } if(bytes == null) { return null; } else { return bytes.getString(0,bytes.length); } } ,exists: function(id) { return this.backend.exists(id); } ,getText: function(id) { return this.backend.getText(id); } ,loadText: function(id) { return this.backend.loadText(id); } ,getBytes: function(id) { return this.backend.getBytes(id); } ,loadBytes: function(id) { return this.backend.loadBytes(id); } ,getPath: function(id) { return this.backend.getPath(id); } ,clearCache: function() { this.backend.clearCache(); } ,list: function(type) { return this.backend.list(type); } ,listModFiles: function(type) { var items = []; var h = this.type.h; var id_h = h; var id_keys = Object.keys(h); var id_length = id_keys.length; var id_current = 0; while(id_current < id_length) { var id = id_keys[id_current++]; if(items.indexOf(id) != -1) { continue; } if(id.indexOf("_append") == 0 || id.indexOf("_merge") == 0) { continue; } if(type == null || type == "BYTES" || this.check(id,type)) { items.push(id); } } return items; } ,check: function(id,type) { var exists = this._checkExists(id); if(exists && type != null && type != "BYTES") { var otherType = this.type.h[id]; exists = otherType == type || otherType == "BYTES" || otherType == null || otherType == ""; } return exists; } ,getType: function(id) { var exists = this._checkExists(id); if(exists) { return this.type.h[id]; } return null; } ,checkDirectly: function(id,dir) { if(dir == null) { dir = ""; } id = this.stripAssetsPrefix(id); if(dir == null || dir == "") { return this.fileSystem.exists(id); } else { var thePath = polymod_util_Util.uCombine([dir,polymod_util_Util.sl(),id]); if(this.fileSystem.exists(thePath)) { return true; } } return false; } ,file: function(id,theDir) { if(theDir == null) { theDir = ""; } var idStripped = this.stripAssetsPrefix(id); if(theDir != "") { if(StringTools.startsWith(idStripped,theDir)) { return idStripped; } return polymod_util_Util.pathJoin(theDir,idStripped); } var result = ""; var resultLocalized = false; var _g = 0; var _g1 = this.dirs; while(_g < _g1.length) { var modDir = _g1[_g]; ++_g; if(resultLocalized) { continue; } if(!resultLocalized) { var filePath = polymod_util_Util.pathJoin(modDir,idStripped); if(this.fileSystem.exists(filePath)) { result = filePath; } } } return result; } ,fileLocale: function(id) { return null; } ,_checkExists: function(id) { if(this.ignoredFiles.length > 0 && this.ignoredFiles.indexOf(id) != -1) { return false; } id = this.stripAssetsPrefix(id); var _g = 0; var _g1 = this.dirs; while(_g < _g1.length) { var d = _g1[_g]; ++_g; var filePath = polymod_util_Util.pathJoin(d,id); if(this.fileSystem.exists(filePath)) { return true; } } return false; } ,init: function() { this.type = new haxe_ds_StringMap(); var _g = new haxe_ds_StringMap(); _g.h["default"] = []; this.typeLibraries = _g; this.initExtensions(); if(this.parseRules == null) { this.parseRules = polymod_format_ParseRules.getDefault(); } if(this.dirs != null) { var _g = 0; var _g1 = this.dirs; while(_g < _g1.length) { var d = _g1[_g]; ++_g; this.initMod(d); } } } ,initExtensions: function() { if(this.extensions == null) { this.extensions = new haxe_ds_StringMap(); } this._extensionSet("mp3","AUDIO_SOUND"); this._extensionSet("ogg","AUDIO_SOUND"); this._extensionSet("wav","AUDIO_SOUND"); this._extensionSet("otf","FONT"); this._extensionSet("ttf","FONT"); this._extensionSet("bmp","IMAGE"); this._extensionSet("gif","IMAGE"); this._extensionSet("jpg","IMAGE"); this._extensionSet("png","IMAGE"); this._extensionSet("tga","IMAGE"); this._extensionSet("tif","IMAGE"); this._extensionSet("tiff","IMAGE"); this._extensionSet("csv","TEXT"); this._extensionSet("hx","TEXT"); this._extensionSet("hxc","TEXT"); this._extensionSet("hxs","TEXT"); this._extensionSet("json","TEXT"); this._extensionSet("md","TEXT"); this._extensionSet("mpf","TEXT"); this._extensionSet("tmx","TEXT"); this._extensionSet("tsv","TEXT"); this._extensionSet("tsx","TEXT"); this._extensionSet("txt","TEXT"); this._extensionSet("vdf","TEXT"); this._extensionSet("xml","TEXT"); this._extensionSet("avi","VIDEO"); this._extensionSet("mkv","VIDEO"); this._extensionSet("mov","VIDEO"); this._extensionSet("mp4","VIDEO"); this._extensionSet("webm","VIDEO"); } ,_extensionSet: function(str,type) { if(Object.prototype.hasOwnProperty.call(this.extensions.h,str) == false) { this.extensions.h[str] = type; } } ,initMod: function(d) { polymod_Polymod.notice("mod_load_prepare","Preparing to load mod " + d); if(d == null) { return; } var all = null; if(d == "") { all = []; } try { if(this.fileSystem.exists(d)) { all = this.fileSystem.readDirectoryRecursive(d); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("mod_load_failed","Failed to load mod " + d + " : " + Std.string(msg)); throw haxe_Exception.thrown("ModAssetLibrary._initMod(\"" + d + "\") failed: " + Std.string(msg)); } var _g = 0; while(_g < all.length) { var f = all[_g]; ++_g; var doti = polymod_util_Util.uLastIndexOf(f,"."); var ext = doti != -1 ? f.substring(doti + 1) : ""; ext = ext.toLowerCase(); var assetType = this.getExtensionType(ext); this.type.h[f] = assetType; this.typeLibraries.h["default"].push(f); if(assetType == "FONT") { var font = openfl_text_Font.fromBytes(openfl_utils_ByteArray.fromBytes(this.fileSystem.getFileBytes(this.file(f,d)))); if(!Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,font.name)) { openfl_text_Font.registerFont(font); } } } polymod_Polymod.notice("mod_load_done","Done loading mod " + d); } ,initRedirectPath: function(libraryId,redirectPath,pathPrefix) { if(pathPrefix == null) { pathPrefix = ""; } if(redirectPath == null || redirectPath == "") { return; } redirectPath = polymod_util_Util.pathJoin(redirectPath,pathPrefix); var all = []; try { if(this.fileSystem.exists(redirectPath)) { all = this.fileSystem.readDirectoryRecursive(redirectPath); } else { polymod_Polymod.error("mod_load_failed","Failed to load core asset redirect " + redirectPath + " : Directory does not exist!"); throw haxe_Exception.thrown("ModAssetLibrary.initRedirectPath(\"" + redirectPath + "\") failed: Directory does not exist!"); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("mod_load_failed","Failed to load core asset redirect " + redirectPath + " : " + Std.string(msg)); throw haxe_Exception.thrown("ModAssetLibrary.initRedirectPath(\"" + redirectPath + "\") failed: " + Std.string(msg)); } if(!Object.prototype.hasOwnProperty.call(this.typeLibraries.h,libraryId)) { this.typeLibraries.h[libraryId] = []; } var _g = 0; while(_g < all.length) { var f = all[_g]; ++_g; var doti = polymod_util_Util.uLastIndexOf(f,"."); var ext = doti != -1 ? f.substring(doti + 1) : ""; ext = ext.toLowerCase(); var assetType = this.getExtensionType(ext); this.type.h[f] = assetType; if(!Object.prototype.hasOwnProperty.call(this.typeLibraries.h,libraryId)) { this.typeLibraries.h[libraryId] = []; } this.typeLibraries.h[libraryId].push(f); if(assetType == "FONT") { var font = openfl_text_Font.fromBytes(openfl_utils_ByteArray.fromBytes(this.fileSystem.getFileBytes(this.file(f,redirectPath)))); if(!Object.prototype.hasOwnProperty.call(openfl_text_Font.__fontByName.h,font.name)) { openfl_text_Font.registerFont(font); } } } var keyCount = this.typeLibraries.h[libraryId].length; polymod_Polymod.notice("mod_load_done","Done loading core asset redirect " + redirectPath + " (" + keyCount + " keys)"); } ,stripAssetsPrefix: function(id) { if(polymod_util_Util.uIndexOf(id,this.assetPrefix) == 0) { id = polymod_util_Util.uSubstring(id,this.assetPrefix.length); } return id; } ,prependAssetsPrefix: function(id) { if(polymod_util_Util.uIndexOf(id,this.assetPrefix) == 0) { return id; } return "" + this.assetPrefix + id; } ,__class__: polymod_backends_PolymodAssetLibrary }; var polymod_backends_PolymodAssets = function() { }; $hxClasses["polymod.backends.PolymodAssets"] = polymod_backends_PolymodAssets; polymod_backends_PolymodAssets.__name__ = "polymod.backends.PolymodAssets"; polymod_backends_PolymodAssets.init = function(params) { var framework = params.framework; if(framework == null) { framework = polymod_backends_PolymodAssets.autoDetectFramework(); polymod_Polymod.notice("framework_autodetect","Framework: Autodetect, going with " + Std.string(framework)); } else { polymod_Polymod.notice("framework_init","Framework: User specified " + Std.string(framework)); } var backend = null; switch(framework._hx_index) { case 0: backend = new polymod_backends_CastleBackend(); break; case 1: backend = new polymod_backends_NMEBackend(); break; case 2: backend = new polymod_backends_LimeBackend(); break; case 3: backend = new polymod_backends_OpenFLBackend(); break; case 4: backend = new polymod_backends_OpenFLWithNodeBackend(); break; case 5: backend = new polymod_backends_FlixelBackend(); break; case 6: backend = new polymod_backends_HEAPSBackend(); break; case 7: backend = new polymod_backends_KhaBackend(); break; case 8: backend = new polymod_backends_CeramicBackend(); break; case 9: if(params.customBackend != null) { backend = Type.createInstance(params.customBackend,[]); } else { polymod_Polymod.error("undefined_custom_backend","params.customBackend was not defined!"); backend = null; } break; default: backend = null; } if(backend == null) { polymod_Polymod.error("failed_create_backend","Could not create a backend for framework: " + Std.string(framework)); return null; } if(polymod_backends_PolymodAssets.library != null) { polymod_backends_PolymodAssets.library.destroy(); } polymod_backends_PolymodAssets.library = new polymod_backends_PolymodAssetLibrary({ backend : backend, dirs : params.dirs, parseRules : params.parseRules, ignoredFiles : params.ignoredFiles, extensionMap : params.extensionMap, fileSystem : params.fileSystem, assetPrefix : params.assetPrefix}); if(backend.init(params.frameworkParams)) { return polymod_backends_PolymodAssets.library; } else { return null; } }; polymod_backends_PolymodAssets.exists = function(id) { return polymod_backends_PolymodAssets.library.exists(id); }; polymod_backends_PolymodAssets.getBytes = function(id) { return polymod_backends_PolymodAssets.library.getBytes(id); }; polymod_backends_PolymodAssets.getText = function(id) { return polymod_backends_PolymodAssets.library.getText(id); }; polymod_backends_PolymodAssets.getPath = function(id) { return polymod_backends_PolymodAssets.library.getPath(id); }; polymod_backends_PolymodAssets.list = function(type) { return polymod_backends_PolymodAssets.library.list(type); }; polymod_backends_PolymodAssets.library = null; polymod_backends_PolymodAssets.autoDetectFramework = function() { return polymod_Framework.FLIXEL; }; var polymod_backends_PolymodAssetType = {}; polymod_backends_PolymodAssetType.fromString = function(str) { str = str.toUpperCase(); switch(str) { case "AUDIO_GENERIC":case "AUDIO_MUSIC":case "AUDIO_SOUND":case "BYTES":case "FONT":case "IMAGE":case "MANIFEST":case "TEMPLATE":case "TEXT":case "UNKNOWN":case "VIDEO": return str; default: return "UNKNOWN"; } }; var polymod_format_BaseParseFormat = function() { }; $hxClasses["polymod.format.BaseParseFormat"] = polymod_format_BaseParseFormat; polymod_format_BaseParseFormat.__name__ = "polymod.format.BaseParseFormat"; polymod_format_BaseParseFormat.__isInterface__ = true; polymod_format_BaseParseFormat.prototype = { format: null ,append: null ,merge: null ,__class__: polymod_format_BaseParseFormat }; var polymod_format_CSV = function() { this._quoted = false; this._delimeter = ""; this._rgx = null; }; $hxClasses["polymod.format.CSV"] = polymod_format_CSV; polymod_format_CSV.__name__ = "polymod.format.CSV"; polymod_format_CSV.parse = function(input,delimeter,quotedCells) { if(quotedCells == null) { quotedCells = true; } if(delimeter == null) { delimeter = ","; } var csv = new polymod_format_CSV(); csv._parse(input,delimeter,quotedCells); return csv; }; polymod_format_CSV.parseWithFormat = function(input,format) { if(format.get_isSimpleMode()) { return polymod_format_CSV.parseSimple(input); } else { return polymod_format_CSV.parse(input,format.delimeter,format.quotedCells); } }; polymod_format_CSV.parseSimple = function(input) { var endline = "\n"; if(input.indexOf("\r\n") != -1) { endline = "\r\n"; } var lines = input.split(endline); var fieldLine = lines.shift(); var fields = fieldLine.split(","); var grid = []; var _g = 0; while(_g < lines.length) { var line = lines[_g]; ++_g; var cells = line.split(","); grid.push(cells); } var csv = new polymod_format_CSV(); csv.fields = fields; csv.grid = grid; return csv; }; polymod_format_CSV.prototype = { fields: null ,grid: null ,destroy: function() { this.clearArray(this.grid); this.clearArray(this.fields); this.grid = null; this.fields = null; } ,_rgx: null ,_delimeter: null ,_quoted: null ,_parse: function(input,delimeter,quoted) { if(quoted == null) { quoted = true; } if(delimeter == null) { delimeter = ","; } this._delimeter = delimeter; this._quoted = quoted; if(input != "") { this.processRows(this.getRows(input)); } } ,clearArray: function(array) { if(array == null) { return; } var i = array.length - 1; while(i >= 0) { this.destroyThing(array[i]); array[i] = null; array.splice(i,1); --i; } array = null; } ,destroyThing: function(thing) { if(thing == null) { return; } if(((thing) instanceof Array)) { this.clearArray(thing); } thing = null; } ,getCells: function(row) { if(this._rgx == null) { if(row.charAt(row.length - 1) == this._delimeter) { row = HxOverrides.substr(row,0,row.length - 1); } if(this._delimeter == ",") { this._rgx = new EReg(",(?=(?:[^\\x22]*\\x22[^\\x22]*\\x22)*(?![^\\x22]*\\x22))","gm"); } else { this._rgx = new EReg(this._delimeter + "(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))","gm"); } } return this._rgx.split(row); } ,getRows: function(input) { var endl = "\r\n"; if(input.indexOf("\r\n") == -1) { endl = "\n"; } return input.split(endl); } ,processCells: function(cells,row) { if(row == null) { row = 0; } var col = 0; var newline = false; var row_array = null; if(this.grid == null) { this.grid = []; this.fields = []; } row_array = []; var _g = 0; var _g1 = cells.length; while(_g < _g1) { var i = _g++; var cell = ""; if(this._quoted) { cell = HxOverrides.substr(cells[i],1,cells[i].length - 2); } else { cell = cells[i]; } if(row == 0) { this.fields.push(cell); } else { row_array.push(cell); } } this.grid.push(row_array); this.clearArray(cells); cells = null; } ,processRows: function(rows) { var _g = 0; var _g1 = rows.length; while(_g < _g1) { var i = _g++; this.processCells(this.getCells(rows[i]),i); } } ,__class__: polymod_format_CSV }; var polymod_format_JsonHelp = function() { }; $hxClasses["polymod.format.JsonHelp"] = polymod_format_JsonHelp; polymod_format_JsonHelp.__name__ = "polymod.format.JsonHelp"; polymod_format_JsonHelp.bool = function(json,field,defaultValue) { if(defaultValue == null) { defaultValue = false; } var str = ""; if(Object.prototype.hasOwnProperty.call(json,field)) { str = Reflect.field(json,field); } if(str == null || str == "") { return defaultValue; } str = str.toLowerCase(); if(str == "true") { return true; } return false; }; polymod_format_JsonHelp.int = function(json,field,defaultValue) { if(defaultValue == null) { defaultValue = 0; } var str = ""; if(Object.prototype.hasOwnProperty.call(json,field)) { str = Reflect.field(json,field); } if(str == null || str == "") { return defaultValue; } var i = Std.parseInt(str); if(i == null) { return defaultValue; } return i; }; polymod_format_JsonHelp.float = function(json,field,defaultValue) { if(defaultValue == null) { defaultValue = 0; } var str = ""; if(Object.prototype.hasOwnProperty.call(json,field)) { str = Reflect.field(json,field); } if(str == null || str == "") { return defaultValue; } var f = NaN; try { f = parseFloat(str); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; f = NaN; } if(isNaN(f)) { return defaultValue; } return f; }; polymod_format_JsonHelp.mapStr = function(json,field) { var map = new haxe_ds_StringMap(); if(json == null || field == "" || field == null) { return map; } var val = null; if(Object.prototype.hasOwnProperty.call(json,field)) { val = Reflect.field(json,field); } if(val != null) { var _g = 0; var _g1 = Reflect.fields(val); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var fieldVal = Reflect.field(val,field); map.h[field] = Std.string(fieldVal); } } return map; }; polymod_format_JsonHelp.mapVersionRule = function(json,field) { var map = new haxe_ds_StringMap(); if(json == null || field == "" || field == null) { return map; } var val = null; if(Object.prototype.hasOwnProperty.call(json,field)) { val = Reflect.field(json,field); } if(val != null) { var _g = 0; var _g1 = Reflect.fields(val); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var fieldVal = Reflect.field(val,field); var value = thx_semver_VersionRule.stringToVersionRule(fieldVal); map.h[field] = value; } } return map; }; polymod_format_JsonHelp.str = function(json,field,defaultValue) { if(defaultValue == null) { defaultValue = ""; } var str = ""; if(Object.prototype.hasOwnProperty.call(json,field)) { str = Reflect.field(json,field); } if(str == null || str == "") { return defaultValue; } return str; }; polymod_format_JsonHelp.type = function(json,field,defaultValue) { var value = null; if(Object.prototype.hasOwnProperty.call(json,field)) { value = Reflect.field(json,field); } if(value == null) { return defaultValue; } return value; }; polymod_format_JsonHelp.arrType = function(json,field,defaultValue) { var val = null; if(Object.prototype.hasOwnProperty.call(json,field)) { val = Reflect.field(json,field); } if(val != null && ((val) instanceof Array)) { return val; } return defaultValue; }; polymod_format_JsonHelp.arrStr = function(json,field,defaultValue) { var val = null; if(Object.prototype.hasOwnProperty.call(json,field)) { val = Reflect.field(json,field); } if(val != null && ((val) instanceof Array)) { return val; } return defaultValue; }; var polymod_format_ParseRules = function() { this.formats = new haxe_ds_StringMap(); }; $hxClasses["polymod.format.ParseRules"] = polymod_format_ParseRules; polymod_format_ParseRules.__name__ = "polymod.format.ParseRules"; polymod_format_ParseRules.getDefault = function() { var rules = new polymod_format_ParseRules(); rules.addFormat("csv",new polymod_format_CSVParseFormat(",",true)); rules.addFormat("tsv",new polymod_format_TSVParseFormat()); rules.addFormat("xml",new polymod_format_XMLParseFormat()); rules.addFormat("json",new polymod_format_JSONParseFormat()); rules.addFormat("txt",new polymod_format_PlainTextParseFormat()); return rules; }; polymod_format_ParseRules.prototype = { formats: null ,addType: function(extension,type) { var format; switch(type._hx_index) { case 0: format = new polymod_format_PlainTextParseFormat(); break; case 1: format = new polymod_format_LinesParseFormat(polymod_format_EndLineType.LF); break; case 2: format = new polymod_format_CSVParseFormat(",",true); break; case 3: format = new polymod_format_TSVParseFormat(); break; case 4: format = new polymod_format_XMLParseFormat(); break; case 5: format = new polymod_format_JSONParseFormat(); break; } this.formats.h[extension] = format; } ,get: function(extension) { return this.formats.h[extension]; } ,addFormat: function(extension,format) { this.formats.h[extension] = format; } ,addFile: function(path,format) { this.formats.h[path] = format; } ,__class__: polymod_format_ParseRules }; var polymod_format_CSVParseFormat = function(delimeter,quotedCells) { this.format = polymod_format_TextFileFormat.CSV; this.delimeter = delimeter; this.quotedCells = quotedCells; }; $hxClasses["polymod.format.CSVParseFormat"] = polymod_format_CSVParseFormat; polymod_format_CSVParseFormat.__name__ = "polymod.format.CSVParseFormat"; polymod_format_CSVParseFormat.__interfaces__ = [polymod_format_BaseParseFormat]; polymod_format_CSVParseFormat.prototype = { format: null ,isSimpleMode: null ,delimeter: null ,quotedCells: null ,lookForHeaders: null ,get_isSimpleMode: function() { if(this.delimeter == ",") { return this.quotedCells == false; } else { return false; } } ,parse: function(str) { return polymod_format_CSV.parse(str,this.delimeter,this.quotedCells); } ,append: function(baseText,appendText,id) { var endLine = "\n"; if(baseText.indexOf("\r\n") != -1) { endLine = "\r\n"; } if(this.lookForHeaders) { var baseCSV; var appendCSV; var appendEndLine = "\n"; if(appendText.indexOf("\r\n") != -1) { appendEndLine = "\r\n"; } var appendLength = polymod_util_Util.uLength(appendText); var appendLast = polymod_util_Util.uLastIndexOf(appendText,appendEndLine); if(appendLast == appendLength - 1 || appendLast == appendLength - 2) { appendText = polymod_util_Util.uSubstr(appendText,0,appendLength - polymod_util_Util.uLength(appendEndLine)); } try { baseCSV = polymod_format_CSV.parseWithFormat(baseText,this); appendCSV = polymod_format_CSV.parseWithFormat(appendText,this); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("append_error","CSV append error (" + id + "): " + Std.string(msg)); return baseText; } var finalText = baseText; var finalLength = polymod_util_Util.uLength(finalText); var lastEndLine = polymod_util_Util.uLastIndexOf(finalText,endLine); var addFinalEndline = false; if(lastEndLine == finalLength - 1 || lastEndLine == finalLength - 2) { finalText = polymod_util_Util.uSubstr(finalText,0,finalLength - polymod_util_Util.uLength(endLine)); addFinalEndline = true; } var compareFields = 0; var _g = 0; var _g1 = baseCSV.fields.length; while(_g < _g1) { var i = _g++; var baseField = baseCSV.fields[i]; var appendFieldExists = appendCSV.fields.indexOf(baseField) != -1; if(appendFieldExists) { ++compareFields; } } if(this.lookForHeaders) { if(compareFields < (baseCSV.fields.length / 2 | 0)) { polymod_Polymod.error("append_error","Mod file (" + id + ") is missing most or all of the expected header fields","init"); } } var missingFields = []; var _g = 0; var _g1 = appendCSV.grid.length; while(_g < _g1) { var r = _g++; var line = ""; var _g2 = 0; var _g3 = baseCSV.fields.length; while(_g2 < _g3) { var bi = _g2++; var baseField = baseCSV.fields[bi]; var appendField = appendCSV.fields.indexOf(baseField); if(appendField != -1) { var appendValue = appendCSV.grid[r][appendField]; if(appendValue == null) { appendValue = ""; } line += appendValue; } else if(missingFields.indexOf(baseField) == -1) { missingFields.push(baseField); } if(bi != baseCSV.fields.length - 1) { line += this.delimeter; } } finalText += endLine + line; } if(addFinalEndline) { finalText += endLine; } var _g = 0; while(_g < missingFields.length) { var baseField = missingFields[_g]; ++_g; polymod_Polymod.warning("append_error","Mod file (" + id + ") is missing expected field \"" + baseField + "\", values will default to empty string.","init"); } return finalText; } return polymod_util_Util.appendCSVOrTSV(baseText,appendText,id); } ,merge: function(baseText,mergeText,id) { var baseCSV; var mergeCSV; try { baseCSV = polymod_format_CSV.parseWithFormat(baseText,this); mergeCSV = polymod_format_CSV.parseWithFormat(mergeText,this); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("merge_error","CSV merge error (" + id + "): " + Std.string(msg)); return baseText; } var _g = 0; var _g1 = mergeCSV.grid; while(_g < _g1.length) { var row = _g1[_g]; ++_g; var flag = row.length > 0 ? row[0] : ""; if(flag != "") { var _g2 = 0; var _g3 = baseCSV.grid.length; while(_g2 < _g3) { var i = _g2++; var otherRow = baseCSV.grid[i]; var otherFlag = otherRow[0]; if(flag == otherFlag) { var _g4 = 0; var _g5 = row.length; while(_g4 < _g5) { var j = _g4++; if(j < otherRow.length) { otherRow[j] = row[j]; } } } } } } var result = this.print(baseCSV); return result; } ,print: function(csv) { var buf_b = ""; var lf = 10; var dq = 34; var _g = 0; var _g1 = csv.fields.length; while(_g < _g1) { var i = _g++; buf_b += Std.string(csv.fields[i]); if(i != csv.fields.length - 1) { buf_b += Std.string(this.delimeter); } } var strSoFar = buf_b; if(strSoFar.indexOf("\n") == -1) { buf_b += "\r\n"; } var grid = csv.grid; var _g = 0; var _g1 = grid.length; while(_g < _g1) { var iy = _g++; var row = grid[iy]; var _g2 = 0; var _g3 = row.length; while(_g2 < _g3) { var ix = _g2++; var cell = row[ix]; if(this.quotedCells) { buf_b += String.fromCodePoint(dq); } buf_b += cell == null ? "null" : "" + cell; if(this.quotedCells) { buf_b += String.fromCodePoint(dq); } if(ix != row.length - 1) { buf_b += Std.string(this.delimeter); } } if(iy != grid.length - 1) { buf_b += "\r\n"; } } return buf_b; } ,__class__: polymod_format_CSVParseFormat ,__properties__: {get_isSimpleMode:"get_isSimpleMode"} }; var polymod_format_TSVParseFormat = function() { this.format = polymod_format_TextFileFormat.TSV; }; $hxClasses["polymod.format.TSVParseFormat"] = polymod_format_TSVParseFormat; polymod_format_TSVParseFormat.__name__ = "polymod.format.TSVParseFormat"; polymod_format_TSVParseFormat.__interfaces__ = [polymod_format_BaseParseFormat]; polymod_format_TSVParseFormat.prototype = { format: null ,parse: function(str) { return polymod_format_TSV.parse(str); } ,append: function(baseText,appendText,id) { return polymod_util_Util.appendCSVOrTSV(baseText,appendText,id); } ,merge: function(baseText,mergeText,id) { var baseTSV = polymod_format_TSV.parse(baseText); var mergeTSV = polymod_format_TSV.parse(mergeText); var _g = 0; var _g1 = mergeTSV.grid; while(_g < _g1.length) { var row = _g1[_g]; ++_g; var flag = row.length > 0 ? row[0] : ""; if(flag != "") { var _g2 = 0; var _g3 = baseTSV.grid.length; while(_g2 < _g3) { var i = _g2++; var otherRow = baseTSV.grid[i]; var otherFlag = otherRow[0]; if(flag == otherFlag) { var _g4 = 0; var _g5 = row.length; while(_g4 < _g5) { var j = _g4++; if(j < otherRow.length) { otherRow[j] = row[j]; } } } } } } var result = this.print(baseTSV); return result; } ,print: function(tsv) { var buf_b = ""; var tab = 9; var lf = 10; var _g = 0; var _g1 = tsv.fields.length; while(_g < _g1) { var i = _g++; buf_b += Std.string(tsv.fields[i]); if(i != tsv.fields.length - 1) { buf_b += String.fromCodePoint(tab); } } var strSoFar = buf_b; if(strSoFar.indexOf("\n") == -1) { buf_b += "\r\n"; } var grid = tsv.grid; var _g = 0; var _g1 = grid.length; while(_g < _g1) { var iy = _g++; var row = grid[iy]; var _g2 = 0; var _g3 = row.length; while(_g2 < _g3) { var ix = _g2++; var cell = row[ix]; buf_b += cell == null ? "null" : "" + cell; if(ix != row.length - 1) { buf_b += String.fromCodePoint(tab); } } if(iy != grid.length - 1) { buf_b += "\r\n"; } } return buf_b; } ,__class__: polymod_format_TSVParseFormat }; var polymod_format_LinesParseFormat = function(endline) { this.format = polymod_format_TextFileFormat.LINES; this.endline = endline; }; $hxClasses["polymod.format.LinesParseFormat"] = polymod_format_LinesParseFormat; polymod_format_LinesParseFormat.__name__ = "polymod.format.LinesParseFormat"; polymod_format_LinesParseFormat.__interfaces__ = [polymod_format_BaseParseFormat]; polymod_format_LinesParseFormat.prototype = { format: null ,endline: null ,parse: function(str) { if(str == null || str == "") { return []; } var other = ""; var endl = ""; switch(this.endline._hx_index) { case 0: endl = "\n"; break; case 1: endl = "\r"; break; case 2: endl = "\r\n"; break; default: endl = "\r"; other = "\n"; } if(other == "") { return str.split(endl); } else { str = StringTools.replace(str,other,endl); return str.split(endl); } } ,append: function(baseText,appendText,id) { return polymod_util_Util.uCombine([baseText,this.getEndl(),appendText]); } ,merge: function(baseText,mergeText,id) { if(baseText == null || mergeText == "") { return baseText; } var lines = this.parse(baseText); if(lines == null || lines.length <= 0) { return baseText; } var mergeLines = this.parse(mergeText); if(mergeLines == null || mergeLines.length <= 1) { return baseText; } var pattern = mergeLines[0]; var newLines = []; var _g = 0; while(_g < lines.length) { var line = lines[_g]; ++_g; if(line.indexOf(pattern) == 0) { newLines = newLines.concat(mergeLines); } else { newLines.push(line); } } return polymod_util_Util.uJoin(newLines,this.getEndl()); } ,print: function(lines) { return lines.join(this.getEndl()); } ,getEndl: function() { switch(this.endline._hx_index) { case 0: return "\n"; case 1: return "\r"; case 2: return "\r\n"; default: return "\n"; } } ,__class__: polymod_format_LinesParseFormat }; var polymod_format_XMLParseFormat = function(prettyPrint,headers,footers) { if(prettyPrint == null) { prettyPrint = false; } this.prettyPrint = false; if(headers == null) { headers = []; } if(footers == null) { footers = []; } this.stripHeaders = headers; this.stripFooters = footers; this.prettyPrint = prettyPrint; this.format = polymod_format_TextFileFormat.XML; }; $hxClasses["polymod.format.XMLParseFormat"] = polymod_format_XMLParseFormat; polymod_format_XMLParseFormat.__name__ = "polymod.format.XMLParseFormat"; polymod_format_XMLParseFormat.__interfaces__ = [polymod_format_BaseParseFormat]; polymod_format_XMLParseFormat.prototype = { format: null ,prettyPrint: null ,stripHeaders: null ,stripFooters: null ,parse: function(str) { return Xml.parse(str); } ,append: function(baseText,appendText,id) { if(this.stripHeaders != null && this.stripFooters != null) { return polymod_util_Util.appendSpecialXML(baseText,appendText,this.stripHeaders,this.stripFooters); } else { return polymod_util_Util.appendXML(baseText,appendText); } } ,merge: function(baseText,mergeText,id) { var basex = null; var mergex = null; try { basex = Xml.parse(baseText); mergex = Xml.parse(mergeText); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); throw haxe_Exception.thrown("Error parsing XML files during merge (" + id + "): " + Std.string(msg)); } try { polymod_format_XMLMerge.mergeXMLNodes(basex,mergex); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); throw haxe_Exception.thrown("Error combining XML files during merge (" + id + "): " + Std.string(msg)); } return this.print(basex); } ,print: function(xml) { return haxe_xml_Printer.print(xml,this.prettyPrint); } ,__class__: polymod_format_XMLParseFormat }; var polymod_format_JSONParseFormat = function(space,replacer) { this.replacer = replacer; this.space = space; this.format = polymod_format_TextFileFormat.JSON; }; $hxClasses["polymod.format.JSONParseFormat"] = polymod_format_JSONParseFormat; polymod_format_JSONParseFormat.__name__ = "polymod.format.JSONParseFormat"; polymod_format_JSONParseFormat.__interfaces__ = [polymod_format_BaseParseFormat]; polymod_format_JSONParseFormat.prototype = { format: null ,space: null ,replacer: null ,parse: function(str) { var _this_r = new RegExp("(\r|\n|\t)","g".split("u").join("")); var result = JSON.parse(str.replace(_this_r,"")); return result; } ,append: function(baseText,appendText,id) { var lastBracket = polymod_util_Util.uLastIndexOf(baseText,"}"); var baseFirst = polymod_util_Util.uSubstr(baseText,0,lastBracket); var baseEnd = polymod_util_Util.uSubstr(baseText,lastBracket,baseText.length); var firstAppendBracket = polymod_util_Util.uIndexOf(appendText,"{"); var lastAppendBracket = polymod_util_Util.uLastIndexOf(appendText,"}"); var injectText = polymod_util_Util.uSubstring(appendText,firstAppendBracket + 1,lastAppendBracket); if(injectText == null || injectText == "") { return baseText; } baseFirst = polymod_util_Util.uTrimFinalEndlines(baseFirst); injectText = polymod_util_Util.uTrimFinalEndlines(injectText); injectText = polymod_util_Util.uTrimFirstEndlines(injectText); baseEnd = polymod_util_Util.uTrimFinalEndlines(baseEnd); return "" + baseFirst + ",\n" + injectText + baseEnd; } ,merge: function(baseText,mergeText,id) { var base = null; var merge = null; try { base = this.parse(baseText); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("merge_error","JSON merge error (" + id + "): couldn't parse base text! : " + Std.string(msg)); } try { merge = this.parse(mergeText); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var msg = haxe_Exception.caught(_g).unwrap(); polymod_Polymod.error("merge_error","JSON merge error (" + id + "): couldn't parse merge text! : " + Std.string(msg)); return baseText; } if(Object.prototype.hasOwnProperty.call(merge,"merge")) { if(((merge.merge) instanceof Array)) { var merge1 = merge.merge; var _g = 0; while(_g < merge1.length) { var entry = merge1[_g]; ++_g; var target = null; var payload = null; target = entry.target; payload = entry.payload; try { base = this._mergeJson(base,entry,id); } catch( _g1 ) { haxe_NativeStackTrace.lastError = _g1; var msg = haxe_Exception.caught(_g1).unwrap(); polymod_Polymod.error("merge_error","JSON merge error (" + id + "): could not merge payload \"" + JSON.stringify(payload) + "\" into target : " + Std.string(msg)); } } } else { polymod_Polymod.error("merge_error","JSON merge error (" + id + "): merge file must contain a single top-level array named \"merge\" (expected an array, found an object)"); } } else { polymod_Polymod.error("merge_error","JSON merge error (" + id + "): merge file must contain a single top-level array named \"merge\""); } return this.print(base); } ,_mergeJson: function(base,entry,id) { var sig = this._getTargetSignature(entry.target); var obj = base; var currTarget = sig[0]; if(currTarget == null) { polymod_Polymod.warning("merge_error","JSON merge failed (" + id + "), sig was " + Std.string(sig)); return obj; } var done = false; var last = obj; var i = 0; var signatureSoFar = ""; var struct = { next : null, parent : null, arrIndex : -1, target : null}; var next = null; while(!done) { struct = this._descend(last,currTarget,signatureSoFar,struct); if(struct == null) { next = null; } else { next = struct.next; } if(signatureSoFar != "") { signatureSoFar += "."; } signatureSoFar += this._targSigElementToString(currTarget); ++i; if(next == null) { polymod_Polymod.warning("merge_error","JSON merge failed (" + id + "), could not find object \"" + signatureSoFar + "\""); done = true; } else if(i < sig.length) { currTarget = sig[i]; } else { this._inject(struct.parent,struct.target,struct.arrIndex,entry.payload,signatureSoFar); done = true; } last = next; } return obj; } ,_targSigElementToString: function(target) { var str = target.value; if(target.arrayIndeces != null && target.arrayIndeces.length > 0) { var _g = 0; var _g1 = target.arrayIndeces; while(_g < _g1.length) { var arri = _g1[_g]; ++_g; if(arri >= 0) { str += "[" + arri + "]"; } } } return str; } ,_inject: function(obj,target,arrIndex,payload,signatureSoFar) { if(signatureSoFar == null) { signatureSoFar = ""; } if(arrIndex == -1) { if(Object.prototype.hasOwnProperty.call(obj,target)) { var baseObject = Reflect.field(obj,target); var mergedValue = this._mergeObjects(baseObject,payload,signatureSoFar); obj[target] = mergedValue; } else { obj[target] = payload; } } else if(((obj) instanceof Array)) { var arr = obj; if(arr.length > arrIndex) { var baseObject = arr[arrIndex]; var mergedValue = this._mergeObjects(baseObject,payload,signatureSoFar); } else { polymod_Polymod.warning("merge_error","JSON merge failed, array index (" + arrIndex + ") out of bounds for array of length (" + arr.length + ") at " + signatureSoFar); } } } ,_mergeObjects: function(a,b,signatureSoFar) { if(signatureSoFar == null) { signatureSoFar = ""; } if(((a) instanceof Array) && ((b) instanceof Array)) { return b; } else if(!((a) instanceof Array) && !((b) instanceof Array)) { var aPrimitive = this.isPrimitive(a); var bPrimitive = this.isPrimitive(b); if(aPrimitive && bPrimitive) { return b; } else if(aPrimitive != bPrimitive) { return a; } else { var _g = 0; var _g1 = Reflect.fields(b); while(_g < _g1.length) { var field = _g1[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(a,field)) { var aValue = Reflect.field(a,field); var bValue = Reflect.field(b,field); var mergedValue = this.copyVal(this._mergeObjects(aValue,bValue,"" + signatureSoFar + "." + field)); a[field] = mergedValue; } else { a[field] = Reflect.field(b,field); } } } } else { var aArr = ((a) instanceof Array) ? "array" : "object"; var bArr = ((b) instanceof Array) ? "array" : "object"; polymod_Polymod.warning("merge_error","JSON can't merge @ (" + signatureSoFar + ") because base is (" + aArr + ") but payload is (" + bArr + ")"); } return a; } ,copyVal: function(a) { var b = null; if(typeof(a) == "number" && ((a | 0) === a)) { b = a | 0; } if(typeof(a) == "number") { b = js_Boot.__cast(a , Float); } if(typeof(a) == "string") { b = Std.string(b); } if(typeof(a) == "boolean") { b = a == true; } else { b = Std.string(a); } return b; } ,isPrimitive: function(a) { if(typeof(a) == "string") { return true; } if(typeof(a) == "number") { return true; } if(typeof(a) == "number" && ((a | 0) === a)) { return true; } if(typeof(a) == "boolean") { return true; } return false; } ,_descend: function(obj,target,signatureSoFar,struct) { if(signatureSoFar == null) { signatureSoFar = ""; } if(struct == null) { struct = { next : null, parent : null, arrIndex : -1, target : null}; } if(obj == null) { return null; } if(target == null) { return null; } if(Object.prototype.hasOwnProperty.call(obj,target.value) == false) { polymod_Polymod.warning("merge_error","JSON merge error : object (" + signatureSoFar + ") has no field (" + target.value + ")"); return null; } var next = Reflect.field(obj,target.value); struct.next = next; struct.parent = obj; struct.target = target.value; if(next == null) { return struct; } if(target.arrayIndeces.length > 0) { struct.next = next; if(((next) instanceof Array)) { var arr = next; var arrIndeces = target.arrayIndeces.slice(); var done = false; signatureSoFar += "." + target.value; while(arrIndeces.length > 0) { var arrIndex = arrIndeces.shift(); if(arrIndex < arr.length) { struct.parent = next; next = arr[arrIndex]; struct.next = next; struct.arrIndex = arrIndex; if(((next) instanceof Array)) { arr = next; } else { polymod_Polymod.warning("merge_error","JSON merge error : invalid array access [" + arrIndex + "] on target \"" + signatureSoFar + "\""); done = true; } } else { polymod_Polymod.warning("merge_error","JSON merge error : array index (" + arrIndex + ") out of bounds on target \"" + signatureSoFar + "\" with length " + arr.length); done = true; } signatureSoFar += "[" + arrIndex + "]"; } } else { return null; } } return struct; } ,_getTargetSignature: function(str) { if(str == null) { return []; } var result = []; var arr = str.split("."); var _g = 0; while(_g < arr.length) { var bit = arr[_g]; ++_g; if(bit.indexOf("[") != -1) { var arr2 = bit.split("["); var value = arr2.shift(); var arrayIndeces = []; while(arr2.length > 0) { var value2 = arr2.shift(); value2 = polymod_util_Util.uTrimFinalCharIf(value2,"]"); var arrIndex = Std.parseInt(value2); if(arrIndex != null && arrIndex >= 0) { arrayIndeces.push(arrIndex); } else { polymod_Polymod.warning("merge_error","JSON merge error: found invalid array index (" + value2 + ") in signature (" + str + ")"); break; } } result.push({ value : value, arrayIndeces : arrayIndeces}); } else { result.push({ value : bit, arrayIndeces : []}); } } return result; } ,print: function(data) { return JSON.stringify(data,this.replacer,this.space); } ,__class__: polymod_format_JSONParseFormat }; var polymod_format_PlainTextParseFormat = function() { this.format = polymod_format_TextFileFormat.PLAINTEXT; }; $hxClasses["polymod.format.PlainTextParseFormat"] = polymod_format_PlainTextParseFormat; polymod_format_PlainTextParseFormat.__name__ = "polymod.format.PlainTextParseFormat"; polymod_format_PlainTextParseFormat.__interfaces__ = [polymod_format_BaseParseFormat]; polymod_format_PlainTextParseFormat.prototype = { format: null ,parse: function(str) { return str; } ,append: function(baseText,appendText,id) { var lastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1); var lastLastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1); var joiner = ""; var endLine = "\n"; var crIndex = polymod_util_Util.uIndexOf(baseText,"\r"); var lfIndex = polymod_util_Util.uIndexOf(baseText,"\n"); if(crIndex != -1) { if(lfIndex == crIndex + 1) { endLine = "\r\n"; } } if(lastChar != "\n") { joiner = endLine; } return polymod_util_Util.uCombine([baseText,joiner,appendText]); } ,merge: function(baseText,mergeText,id) { polymod_Polymod.warning("merge_error","(" + id + ") Plain text files do not support merge functionality!"); return baseText; } ,print: function(str) { return str; } ,__class__: polymod_format_PlainTextParseFormat }; var polymod_format_TextFileFormat = $hxEnums["polymod.format.TextFileFormat"] = { __ename__:"polymod.format.TextFileFormat",__constructs__:null ,PLAINTEXT: {_hx_name:"PLAINTEXT",_hx_index:0,__enum__:"polymod.format.TextFileFormat",toString:$estr} ,LINES: {_hx_name:"LINES",_hx_index:1,__enum__:"polymod.format.TextFileFormat",toString:$estr} ,CSV: {_hx_name:"CSV",_hx_index:2,__enum__:"polymod.format.TextFileFormat",toString:$estr} ,TSV: {_hx_name:"TSV",_hx_index:3,__enum__:"polymod.format.TextFileFormat",toString:$estr} ,XML: {_hx_name:"XML",_hx_index:4,__enum__:"polymod.format.TextFileFormat",toString:$estr} ,JSON: {_hx_name:"JSON",_hx_index:5,__enum__:"polymod.format.TextFileFormat",toString:$estr} }; polymod_format_TextFileFormat.__constructs__ = [polymod_format_TextFileFormat.PLAINTEXT,polymod_format_TextFileFormat.LINES,polymod_format_TextFileFormat.CSV,polymod_format_TextFileFormat.TSV,polymod_format_TextFileFormat.XML,polymod_format_TextFileFormat.JSON]; polymod_format_TextFileFormat.__empty_constructs__ = [polymod_format_TextFileFormat.PLAINTEXT,polymod_format_TextFileFormat.LINES,polymod_format_TextFileFormat.CSV,polymod_format_TextFileFormat.TSV,polymod_format_TextFileFormat.XML,polymod_format_TextFileFormat.JSON]; var polymod_format_EndLineType = $hxEnums["polymod.format.EndLineType"] = { __ename__:"polymod.format.EndLineType",__constructs__:null ,LF: {_hx_name:"LF",_hx_index:0,__enum__:"polymod.format.EndLineType",toString:$estr} ,CR: {_hx_name:"CR",_hx_index:1,__enum__:"polymod.format.EndLineType",toString:$estr} ,CRLF: {_hx_name:"CRLF",_hx_index:2,__enum__:"polymod.format.EndLineType",toString:$estr} ,ANY: {_hx_name:"ANY",_hx_index:3,__enum__:"polymod.format.EndLineType",toString:$estr} }; polymod_format_EndLineType.__constructs__ = [polymod_format_EndLineType.LF,polymod_format_EndLineType.CR,polymod_format_EndLineType.CRLF,polymod_format_EndLineType.ANY]; polymod_format_EndLineType.__empty_constructs__ = [polymod_format_EndLineType.LF,polymod_format_EndLineType.CR,polymod_format_EndLineType.CRLF,polymod_format_EndLineType.ANY]; var polymod_format_TSV = function() { polymod_format_CSV.call(this); }; $hxClasses["polymod.format.TSV"] = polymod_format_TSV; polymod_format_TSV.__name__ = "polymod.format.TSV"; polymod_format_TSV.parse = function(input) { var endline = "\n"; if(input.indexOf("\r\n") != -1) { endline = "\r\n"; } var lines = input.split(endline); var fieldLine = lines.shift(); var fields = fieldLine.split("\t"); var grid = []; var _g = 0; while(_g < lines.length) { var line = lines[_g]; ++_g; while(line.charAt(line.length - 1) == "\t") line = HxOverrides.substr(line,0,line.length - 1); var cells = line.split("\t"); grid.push(cells); } var tsv = new polymod_format_TSV(); tsv.fields = fields; tsv.grid = grid; return tsv; }; polymod_format_TSV.__super__ = polymod_format_CSV; polymod_format_TSV.prototype = $extend(polymod_format_CSV.prototype,{ __class__: polymod_format_TSV }); var polymod_format_XMLMerge = function() { }; $hxClasses["polymod.format.XMLMerge"] = polymod_format_XMLMerge; polymod_format_XMLMerge.__name__ = "polymod.format.XMLMerge"; polymod_format_XMLMerge.mergeXMLWork = function(a,b,children,attributes) { if(attributes == null) { attributes = true; } if(children == null) { children = true; } if(a == null || b == null) { return; } if(a.nodeType == 6) { a = a.firstElement(); } if(b.nodeType == 6) { b = b.firstElement(); } if(a.nodeType != 0 || b.nodeType != 0) { return; } var tmp; if(a.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (a.nodeType == null ? "null" : XmlType.toString(a.nodeType))); } if(a.nodeName != "merge") { if(b.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (b.nodeType == null ? "null" : XmlType.toString(b.nodeType))); } tmp = b.nodeName == "merge"; } else { tmp = true; } if(tmp) { return; } if(children) { var el = b.elements(); while(el.hasNext()) { var el1 = el.next(); if(el1 == null) { continue; } if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } if(el1.nodeName == "merge") { continue; } if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } var aCount = polymod_format_XMLMerge.countNodes(a,el1.nodeName); if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } var bCount = polymod_format_XMLMerge.countNodes(b,el1.nodeName); if(aCount == 0 && bCount > 0) { var parent = null; var c = null; if(el1.nodeType == Xml.Element) { if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c = Xml.createElement(el1.nodeName); var att = el1.attributes(); while(att.hasNext()) { var att1 = att.next(); c.set(att1,el1.get(att1)); } var el2 = el1.elements(); while(el2.hasNext()) { var el3 = el2.next(); var c1 = null; if(el3.nodeType == Xml.Element) { if(el3.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType))); } c1 = Xml.createElement(el3.nodeName); var att2 = el3.attributes(); while(att2.hasNext()) { var att3 = att2.next(); c1.set(att3,el3.get(att3)); } var el4 = el3.elements(); while(el4.hasNext()) { var el5 = el4.next(); c1.addChild(polymod_util_Util.copyXml(el5,c1)); } } else if(el3.nodeType == Xml.PCData) { if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType))); } c1 = Xml.createPCData(el3.nodeValue); } else if(el3.nodeType == Xml.CData) { if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType))); } c1 = Xml.createCData(el3.nodeValue); } else if(el3.nodeType == Xml.Comment) { if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType))); } c1 = Xml.createComment(el3.nodeValue); } else if(el3.nodeType == Xml.DocType) { if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType))); } c1 = Xml.createDocType(el3.nodeValue); } else if(el3.nodeType == Xml.ProcessingInstruction) { if(el3.nodeType == Xml.Document || el3.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el3.nodeType == null ? "null" : XmlType.toString(el3.nodeType))); } c1 = Xml.createProcessingInstruction(el3.nodeValue); } else if(el3.nodeType == Xml.Document) { c1 = Xml.createDocument(); var el6 = el3.elements(); while(el6.hasNext()) { var el7 = el6.next(); c1.addChild(polymod_util_Util.copyXml(el7,c1)); } } c1.parent = c; c.addChild(c1); } } else if(el1.nodeType == Xml.PCData) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c = Xml.createPCData(el1.nodeValue); } else if(el1.nodeType == Xml.CData) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c = Xml.createCData(el1.nodeValue); } else if(el1.nodeType == Xml.Comment) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c = Xml.createComment(el1.nodeValue); } else if(el1.nodeType == Xml.DocType) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c = Xml.createDocType(el1.nodeValue); } else if(el1.nodeType == Xml.ProcessingInstruction) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c = Xml.createProcessingInstruction(el1.nodeValue); } else if(el1.nodeType == Xml.Document) { c = Xml.createDocument(); var el8 = el1.elements(); while(el8.hasNext()) { var el9 = el8.next(); var c2 = null; if(el9.nodeType == Xml.Element) { if(el9.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType))); } c2 = Xml.createElement(el9.nodeName); var att4 = el9.attributes(); while(att4.hasNext()) { var att5 = att4.next(); c2.set(att5,el9.get(att5)); } var el10 = el9.elements(); while(el10.hasNext()) { var el11 = el10.next(); c2.addChild(polymod_util_Util.copyXml(el11,c2)); } } else if(el9.nodeType == Xml.PCData) { if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType))); } c2 = Xml.createPCData(el9.nodeValue); } else if(el9.nodeType == Xml.CData) { if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType))); } c2 = Xml.createCData(el9.nodeValue); } else if(el9.nodeType == Xml.Comment) { if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType))); } c2 = Xml.createComment(el9.nodeValue); } else if(el9.nodeType == Xml.DocType) { if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType))); } c2 = Xml.createDocType(el9.nodeValue); } else if(el9.nodeType == Xml.ProcessingInstruction) { if(el9.nodeType == Xml.Document || el9.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el9.nodeType == null ? "null" : XmlType.toString(el9.nodeType))); } c2 = Xml.createProcessingInstruction(el9.nodeValue); } else if(el9.nodeType == Xml.Document) { c2 = Xml.createDocument(); var el12 = el9.elements(); while(el12.hasNext()) { var el13 = el12.next(); c2.addChild(polymod_util_Util.copyXml(el13,c2)); } } c2.parent = c; c.addChild(c2); } } c.parent = parent; a.addChild(c); } else { var tmp; if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } if(polymod_format_XMLMerge.countNodes(a,el1.nodeName) == 1) { if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } tmp = polymod_format_XMLMerge.countNodes(b,el1.nodeName) == 1; } else { tmp = false; } if(tmp) { if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } polymod_format_XMLMerge.mergeXMLWork(a.elementsNamed(el1.nodeName).next(),el1); } else { var parent1 = null; var c3 = null; if(el1.nodeType == Xml.Element) { if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c3 = Xml.createElement(el1.nodeName); var att6 = el1.attributes(); while(att6.hasNext()) { var att7 = att6.next(); c3.set(att7,el1.get(att7)); } var el14 = el1.elements(); while(el14.hasNext()) { var el15 = el14.next(); var c4 = null; if(el15.nodeType == Xml.Element) { if(el15.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType))); } c4 = Xml.createElement(el15.nodeName); var att8 = el15.attributes(); while(att8.hasNext()) { var att9 = att8.next(); c4.set(att9,el15.get(att9)); } var el16 = el15.elements(); while(el16.hasNext()) { var el17 = el16.next(); c4.addChild(polymod_util_Util.copyXml(el17,c4)); } } else if(el15.nodeType == Xml.PCData) { if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType))); } c4 = Xml.createPCData(el15.nodeValue); } else if(el15.nodeType == Xml.CData) { if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType))); } c4 = Xml.createCData(el15.nodeValue); } else if(el15.nodeType == Xml.Comment) { if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType))); } c4 = Xml.createComment(el15.nodeValue); } else if(el15.nodeType == Xml.DocType) { if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType))); } c4 = Xml.createDocType(el15.nodeValue); } else if(el15.nodeType == Xml.ProcessingInstruction) { if(el15.nodeType == Xml.Document || el15.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el15.nodeType == null ? "null" : XmlType.toString(el15.nodeType))); } c4 = Xml.createProcessingInstruction(el15.nodeValue); } else if(el15.nodeType == Xml.Document) { c4 = Xml.createDocument(); var el18 = el15.elements(); while(el18.hasNext()) { var el19 = el18.next(); c4.addChild(polymod_util_Util.copyXml(el19,c4)); } } c4.parent = c3; c3.addChild(c4); } } else if(el1.nodeType == Xml.PCData) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c3 = Xml.createPCData(el1.nodeValue); } else if(el1.nodeType == Xml.CData) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c3 = Xml.createCData(el1.nodeValue); } else if(el1.nodeType == Xml.Comment) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c3 = Xml.createComment(el1.nodeValue); } else if(el1.nodeType == Xml.DocType) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c3 = Xml.createDocType(el1.nodeValue); } else if(el1.nodeType == Xml.ProcessingInstruction) { if(el1.nodeType == Xml.Document || el1.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } c3 = Xml.createProcessingInstruction(el1.nodeValue); } else if(el1.nodeType == Xml.Document) { c3 = Xml.createDocument(); var el20 = el1.elements(); while(el20.hasNext()) { var el21 = el20.next(); var c5 = null; if(el21.nodeType == Xml.Element) { if(el21.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType))); } c5 = Xml.createElement(el21.nodeName); var att10 = el21.attributes(); while(att10.hasNext()) { var att11 = att10.next(); c5.set(att11,el21.get(att11)); } var el22 = el21.elements(); while(el22.hasNext()) { var el23 = el22.next(); c5.addChild(polymod_util_Util.copyXml(el23,c5)); } } else if(el21.nodeType == Xml.PCData) { if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType))); } c5 = Xml.createPCData(el21.nodeValue); } else if(el21.nodeType == Xml.CData) { if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType))); } c5 = Xml.createCData(el21.nodeValue); } else if(el21.nodeType == Xml.Comment) { if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType))); } c5 = Xml.createComment(el21.nodeValue); } else if(el21.nodeType == Xml.DocType) { if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType))); } c5 = Xml.createDocType(el21.nodeValue); } else if(el21.nodeType == Xml.ProcessingInstruction) { if(el21.nodeType == Xml.Document || el21.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (el21.nodeType == null ? "null" : XmlType.toString(el21.nodeType))); } c5 = Xml.createProcessingInstruction(el21.nodeValue); } else if(el21.nodeType == Xml.Document) { c5 = Xml.createDocument(); var el24 = el21.elements(); while(el24.hasNext()) { var el25 = el24.next(); c5.addChild(polymod_util_Util.copyXml(el25,c5)); } } c5.parent = c3; c3.addChild(c5); } } c3.parent = parent1; a.addChild(c3); } } } } if(attributes) { var att = b.attributes(); while(att.hasNext()) { var att1 = att.next(); a.set(att1,b.get(att1)); } } }; polymod_format_XMLMerge.countNodes = function(xml,nodeName) { var i = 0; var el = xml.elementsNamed(nodeName); while(el.hasNext()) { var el1 = el.next(); ++i; } return i; }; polymod_format_XMLMerge.mergeXML = function(a,b,allSigs,mergeMap) { var aName; if(a.nodeType == 6) { aName = ""; } else { if(a.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (a.nodeType == null ? "null" : XmlType.toString(a.nodeType))); } aName = a.nodeName; } var bName; if(b.nodeType == 6) { bName = ""; } else { if(b.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (b.nodeType == null ? "null" : XmlType.toString(b.nodeType))); } bName = b.nodeName; } if(aName != bName) { return; } var aSig = polymod_format_XMLMerge.getNodeSignature(a); var bSig = polymod_format_XMLMerge.getNodeSignature(b); if(aSig != bSig) { return; } var _g = 0; while(_g < allSigs.length) { var sig = allSigs[_g]; ++_g; if(sig.indexOf(aSig) == 0) { if(sig == aSig) { var keyValues = mergeMap.h[sig]; if(keyValues == null) { if(sig == "" && aSig == "") { if(a.nodeType == 6 && b.nodeType == 6) { var a1 = a.firstElement(); var b1 = b.firstElement(); polymod_format_XMLMerge.mergeXML(a1,b1,allSigs,mergeMap); } else { return; } } } if(keyValues != null && keyValues.length % 2 == 0 && keyValues.length >= 2) { var _g1 = 0; var _g2 = keyValues.length / 2 | 0; while(_g1 < _g2) { var i = _g1++; var key = keyValues[i * 2]; var value = keyValues[i * 2 + 1]; var aValue = a.get(key); if(aValue == value) { var bValue = b.get(key); polymod_format_XMLMerge.mergeXMLWork(a,b); } } } } else { var aEl = a.elements(); while(aEl.hasNext()) { var aEl1 = aEl.next(); var bEl = b.elements(); while(bEl.hasNext()) { var bEl1 = bEl.next(); polymod_format_XMLMerge.mergeXML(aEl1,bEl1,allSigs,mergeMap); } } } } } }; polymod_format_XMLMerge.mergeXMLNodes = function(a,b) { if(b == null) { return; } var allSigs = [""]; var bMap = polymod_format_XMLMerge.getNodeMergeMap(b,allSigs); polymod_format_XMLMerge.mergeXML(a,b,allSigs,bMap); }; polymod_format_XMLMerge.getNodeMergeMap = function(xml,addToArray) { var map = new haxe_ds_StringMap(); if(xml == null) { return map; } var el = xml.elements(); while(el.hasNext()) { var el1 = el.next(); if(el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } if(el1.nodeName == "merge") { continue; } var subMap = polymod_format_XMLMerge.getNodeMergeMap(el1,addToArray); map = polymod_format_XMLMerge.mergeMapsDestructively(map,subMap); var sig = polymod_format_XMLMerge.getNodeSignature(el1); if(el1.nodeType != Xml.Document && el1.nodeType != Xml.Element) { throw haxe_Exception.thrown("Invalid nodeType " + (el1.nodeType == null ? "null" : XmlType.toString(el1.nodeType))); } var f = el1; if(haxe_xml__$Access_HasNodeAccess.resolve(f,"merge")) { if(Object.prototype.hasOwnProperty.call(map.h,sig) == false) { map.h[sig] = []; } var arr = map.h[sig]; var mergeKey = haxe_xml__$Access_HasAttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(f,"merge"),"key") ? haxe_xml__$Access_AttribAccess.resolve(haxe_xml__$Access_NodeAccess.resolve(f,"merge"),"key") : ""; var mergeKeyValue = haxe_xml__$Access_NodeAccess.resolve(f,"merge").get(mergeKey); arr.push(mergeKey); arr.push(mergeKeyValue); if(addToArray.indexOf(sig) == -1) { addToArray.push(sig); } } } return map; }; polymod_format_XMLMerge.getNodeSignature = function(xml) { var arr = []; var parent = xml; while(parent != null && parent.nodeType == 0) { if(parent.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (parent.nodeType == null ? "null" : XmlType.toString(parent.nodeType))); } arr.push(parent.nodeName); if(parent.nodeType == 0) { parent = parent.parent; } else { parent = null; } } var str = ""; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var j = arr.length - 1 - i; str += arr[j]; if(i != arr.length - 1) { str += "."; } } return str; }; polymod_format_XMLMerge.mergeMapsDestructively = function(a,b) { if(a == null) { a = new haxe_ds_StringMap(); } if(b == null) { return a; } var h = b.h; var bkey_h = h; var bkey_keys = Object.keys(h); var bkey_length = bkey_keys.length; var bkey_current = 0; while(bkey_current < bkey_length) { var bkey = bkey_keys[bkey_current++]; if(Object.prototype.hasOwnProperty.call(a.h,bkey)) { var aArr = a.h[bkey]; var bArr = b.h[bkey]; var _g = 0; while(_g < bArr.length) { var bVal = bArr[_g]; ++_g; aArr.push(bVal); } } else { var bArr1 = b.h[bkey]; a.h[bkey] = bArr1; if(Object.prototype.hasOwnProperty.call(b.h,bkey)) { delete(b.h[bkey]); } } } return a; }; var polymod_fs_IFileSystem = function() { }; $hxClasses["polymod.fs.IFileSystem"] = polymod_fs_IFileSystem; polymod_fs_IFileSystem.__name__ = "polymod.fs.IFileSystem"; polymod_fs_IFileSystem.__isInterface__ = true; polymod_fs_IFileSystem.prototype = { exists: null ,isDirectory: null ,readDirectory: null ,readDirectoryRecursive: null ,getFileContent: null ,getFileBytes: null ,scanMods: null ,getMetadata: null ,__class__: polymod_fs_IFileSystem }; var polymod_fs_MemoryFileSystem = function(params) { this.modRoot = ""; this.directories = []; this.files = new haxe_ds_StringMap(); this.modRoot = params.modRoot == null ? "" : params.modRoot; }; $hxClasses["polymod.fs.MemoryFileSystem"] = polymod_fs_MemoryFileSystem; polymod_fs_MemoryFileSystem.__name__ = "polymod.fs.MemoryFileSystem"; polymod_fs_MemoryFileSystem.__interfaces__ = [polymod_fs_IFileSystem]; polymod_fs_MemoryFileSystem.prototype = { files: null ,directories: null ,modRoot: null ,addFileBytes: function(path,data) { path = haxe_io_Path.removeTrailingSlashes(path); this.files.h[path] = data; var parentDirs = polymod_util_Util.listAllParentDirs(haxe_io_Path.directory(path)); HxOverrides.remove(parentDirs,path); this.directories = this.directories.concat(parentDirs); this.directories = polymod_util_Util.filterUnique_String(this.directories); } ,removeFile: function(path) { var _this = this.files; if(Object.prototype.hasOwnProperty.call(_this.h,path)) { delete(_this.h[path]); } } ,clear: function() { this.files = new haxe_ds_StringMap(); this.directories = []; } ,exists: function(path) { path = haxe_io_Path.removeTrailingSlashes(path); if(!Object.prototype.hasOwnProperty.call(this.files.h,path)) { return this.directories.indexOf(path) != -1; } else { return true; } } ,isDirectory: function(path) { path = haxe_io_Path.removeTrailingSlashes(path); return this.directories.indexOf(path) != -1; } ,readDirectory: function(path) { path = haxe_io_Path.removeTrailingSlashes(path); var result = []; var h = this.files.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var key1 = _g_key; var _v = _g_value; if(haxe_io_Path.directory(key1) == path) { var parts = key1.split("/"); result.push(parts[parts.length - 1]); } } var _g = 0; var _g1 = this.directories; while(_g < _g1.length) { var dir = _g1[_g]; ++_g; if(haxe_io_Path.directory(dir) == path && result.indexOf(dir) == -1) { var d = haxe_io_Path.directory(dir); var actualdir = dir.substring(d.length); if(actualdir.charAt(0) == "/") { actualdir = actualdir.substring(1); } result.push(actualdir); } } return result; } ,getFileContent: function(path) { var fileBytes = this.getFileBytes(path); if(fileBytes == null) { return null; } return fileBytes.toString(); } ,getFileBytes: function(path) { return this.files.h[path]; } ,readDirectoryRecursive: function(path) { path = haxe_io_Path.removeTrailingSlashes(path); var result = []; var h = this.files.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var key1 = _g_key; var _v = _g_value; if(key1.indexOf(path) == 0) { result.push(key1.substring(path.length + 1)); } } return result; } ,scanMods: function(apiVersionRule) { if(apiVersionRule == null) { apiVersionRule = polymod_util_VersionUtil.DEFAULT_VERSION_RULE; } var dirs = this.readDirectory(this.modRoot); var result = []; var _g = 0; while(_g < dirs.length) { var dir = dirs[_g]; ++_g; var testDir = polymod_util_Util.pathJoin(this.modRoot,dir); if(!this.exists(testDir)) { continue; } if(!this.isDirectory(testDir)) { continue; } var meta = this.getMetadata(dir); if(meta == null) { continue; } var version = meta.apiVersion; if(!(version == null || apiVersionRule == null ? false : thx_semver_VersionRule.isSatisfiedBy(apiVersionRule,thx_semver_Version.stringToVersion("" + version.version[0] + "." + version.version[1] + "." + version.version[2])))) { continue; } result.push(meta); } return result; } ,getMetadata: function(modId) { var modpath = polymod_util_Util.pathJoin(this.modRoot,modId); if(this.exists(modpath)) { var meta = null; var metaFile = polymod_util_Util.pathJoin(modpath,polymod_PolymodConfig.get_modMetadataFile()); var iconFile = polymod_util_Util.pathJoin(modpath,polymod_PolymodConfig.get_modIconFile()); if(!this.exists(metaFile)) { polymod_Polymod.warning("missing_meta","Could not find mod metadata file: " + metaFile); return null; } else { var metaText = this.getFileContent(metaFile); meta = polymod_ModMetadata.fromJsonStr(metaText); if(meta == null) { return null; } meta.id = modId; meta.modPath = modpath; } if(!this.exists(iconFile)) { polymod_Polymod.warning("missing_icon","Could not find mod icon file: " + iconFile); } else { var iconBytes = this.getFileBytes(iconFile); meta.icon = iconBytes; meta.iconPath = iconFile; } return meta; } else { polymod_Polymod.error("missing_mod","Could not find mod directory: " + modpath); } return null; } ,__class__: polymod_fs_MemoryFileSystem }; var polymod_fs_MemoryZipFileSystem = function(params) { polymod_fs_MemoryFileSystem.call(this,params); this.pathIsCompressed = new haxe_ds_StringMap(); }; $hxClasses["polymod.fs.MemoryZipFileSystem"] = polymod_fs_MemoryZipFileSystem; polymod_fs_MemoryZipFileSystem.__name__ = "polymod.fs.MemoryZipFileSystem"; polymod_fs_MemoryZipFileSystem.__super__ = polymod_fs_MemoryFileSystem; polymod_fs_MemoryZipFileSystem.prototype = $extend(polymod_fs_MemoryFileSystem.prototype,{ pathIsCompressed: null ,addZipFile: function(zipName,zipBytes) { var bytesInput = new haxe_io_BytesInput(zipBytes); var reader = new haxe_zip_Reader(bytesInput); var modId = haxe_io_Path.withoutExtension(zipName); var entries = reader.read(); var _g_head = entries.h; while(_g_head != null) { var val = _g_head.item; _g_head = _g_head.next; var zipEntry = val; var entryData = zipEntry.data; if(!(zipEntry.fileName.substring(zipEntry.fileName.lastIndexOf("/") + 1) == "" && zipEntry.data.toString() == "")) { var filePath = haxe_io_Path.join([this.modRoot,modId,zipEntry.fileName]); this.addFileBytes(filePath,entryData); this.pathIsCompressed.h[filePath] = zipEntry.compressed; } } } ,getFileBytes: function(path) { var compressedBytes = polymod_fs_MemoryFileSystem.prototype.getFileBytes.call(this,path); if(this.pathIsCompressed.h[path] != null && this.pathIsCompressed.h[path]) { return polymod_util_Util.unzipBytes(compressedBytes); } return compressedBytes; } ,getMetadata: function(modId) { return polymod_fs_MemoryFileSystem.prototype.getMetadata.call(this,modId); } ,__class__: polymod_fs_MemoryZipFileSystem }); var polymod_fs_PolymodFileSystem = function() { }; $hxClasses["polymod.fs.PolymodFileSystem"] = polymod_fs_PolymodFileSystem; polymod_fs_PolymodFileSystem.__name__ = "polymod.fs.PolymodFileSystem"; polymod_fs_PolymodFileSystem.makeFileSystem = function(cls,params) { if(cls == null) { return polymod_fs_PolymodFileSystem._detectFileSystem(params); } else if(js_Boot.__implements(cls,polymod_fs_IFileSystem)) { return cls; } else if(js_Boot.__instanceof(cls,Class)) { return Type.createInstance(cls,[params]); } else { polymod_Polymod.error("bad_custom_filesystem","Passed an unknown type for a custom filesystem. Reverting to default..."); return polymod_fs_PolymodFileSystem.makeFileSystem(null,params); } }; polymod_fs_PolymodFileSystem._detectFileSystem = function(params) { return new polymod_fs_StubFileSystem(params); }; var polymod_fs_StubFileSystem = function(params) { }; $hxClasses["polymod.fs.StubFileSystem"] = polymod_fs_StubFileSystem; polymod_fs_StubFileSystem.__name__ = "polymod.fs.StubFileSystem"; polymod_fs_StubFileSystem.__interfaces__ = [polymod_fs_IFileSystem]; polymod_fs_StubFileSystem.prototype = { exists: function(path) { return false; } ,isDirectory: function(path) { return false; } ,readDirectory: function(path) { return []; } ,getFileContent: function(path) { return null; } ,getFileBytes: function(path) { return null; } ,readDirectoryRecursive: function(path) { return []; } ,scanMods: function(apiVersionRule) { return []; } ,getMetadata: function(modId) { return null; } ,__class__: polymod_fs_StubFileSystem }; var polymod_hscript_HScriptable = function() { }; $hxClasses["polymod.hscript.HScriptable"] = polymod_hscript_HScriptable; polymod_hscript_HScriptable.__name__ = "polymod.hscript.HScriptable"; polymod_hscript_HScriptable.__isInterface__ = true; var polymod_hscript_HScriptParams = function() { this.pathNameDynId = null; this.pathName = null; this.optional = null; this.runBefore = null; this.cancellable = null; this.context = []; }; $hxClasses["polymod.hscript.HScriptParams"] = polymod_hscript_HScriptParams; polymod_hscript_HScriptParams.__name__ = "polymod.hscript.HScriptParams"; polymod_hscript_HScriptParams.prototype = { context: null ,cancellable: null ,runBefore: null ,optional: null ,pathName: null ,set_pathName: function(newValue) { if(this.pathNameDynId != null) { return null; } this.pathName = newValue; return this.pathName; } ,pathNameDynId: null ,set_pathNameDynId: function(newValue) { this.set_pathName(null); this.pathNameDynId = newValue; return this.pathNameDynId; } ,mergeContext: function(newValues) { this.context = this.context.concat(newValues); return this; } ,mergeCancellable: function(newValue) { if(newValue != null) { this.cancellable = newValue; } return this; } ,mergeRunBefore: function(newValue) { if(newValue != null) { this.runBefore = newValue; } return this; } ,mergeOptional: function(newValue) { if(newValue != null) { this.optional = newValue; } return this; } ,mergePathName: function(newValue,newDynValue) { if(newDynValue != null) { this.set_pathNameDynId(newDynValue); this.set_pathName(null); } else if(this.pathNameDynId == null && newValue != null) { this.set_pathName(newValue); } return this; } ,copy: function() { var result = new polymod_hscript_HScriptParams(); result.cancellable = this.cancellable; result.context = this.context; result.optional = this.optional; result.set_pathName(this.pathName); result.set_pathNameDynId(this.pathNameDynId); result.runBefore = this.runBefore; return result; } ,merge: function(newValue) { return this.mergeCancellable(newValue.cancellable).mergeContext(newValue.context).mergeOptional(newValue.optional).mergePathName(newValue.pathName,newValue.pathNameDynId).mergeRunBefore(newValue.runBefore); } ,toString: function() { return JSON.stringify(this); } ,__class__: polymod_hscript_HScriptParams ,__properties__: {set_pathNameDynId:"set_pathNameDynId",set_pathName:"set_pathName"} }; var polymod_hscript_ScriptRunner = function() { }; $hxClasses["polymod.hscript.ScriptRunner"] = polymod_hscript_ScriptRunner; polymod_hscript_ScriptRunner.__name__ = "polymod.hscript.ScriptRunner"; polymod_hscript_ScriptRunner.clearScripts = function() { polymod_hscript_ScriptRunner.scripts.h = Object.create(null); }; polymod_hscript_ScriptRunner.scriptPath = function(pathName) { return polymod_util_Util.pathJoin("" + polymod_PolymodConfig.get_scriptLibrary() + ":" + polymod_PolymodConfig.get_rootPath(),"" + pathName + polymod_PolymodConfig.get_scriptExt()); }; polymod_hscript_ScriptRunner.prototype = { load: function(name,assetHandler) { if(assetHandler == null) { polymod_Polymod.error("script_no_asset_handler","Class does not import an Assets class for Polymod to fetch scripts with!"); return null; } var scriptPath = polymod_util_Util.pathJoin("" + polymod_PolymodConfig.get_scriptLibrary() + ":" + polymod_PolymodConfig.get_rootPath(),"" + name + polymod_PolymodConfig.get_scriptExt()); polymod_Polymod.debug("Fetching script \"" + scriptPath + "\"...",{ fileName : "polymod/hscript/HScriptable.hx", lineNumber : 222, className : "polymod.hscript.ScriptRunner", methodName : "load"}); if(!assetHandler.exists(scriptPath)) { polymod_Polymod.debug("Note: Script at path \"" + scriptPath + "\" not found! This may cause problems if it is not optional...",{ fileName : "polymod/hscript/HScriptable.hx", lineNumber : 226, className : "polymod.hscript.ScriptRunner", methodName : "load"}); return null; } var script = new polymod_hscript_Script(assetHandler.getText(scriptPath)); polymod_hscript_ScriptRunner.scripts.h[name] = script; polymod_Polymod.debug("Script " + name + " loaded successfully.",{ fileName : "polymod/hscript/HScriptable.hx", lineNumber : 232, className : "polymod.hscript.ScriptRunner", methodName : "load"}); return script; } ,get: function(name,assetHandler) { if(!Object.prototype.hasOwnProperty.call(polymod_hscript_ScriptRunner.scripts.h,name)) { polymod_Polymod.debug("Note: Late script load (" + name + "). This is normal for dynamic pathNames.",{ fileName : "polymod/hscript/HScriptable.hx", lineNumber : 246, className : "polymod.hscript.ScriptRunner", methodName : "get"}); this.load(name,assetHandler); } var result = polymod_hscript_ScriptRunner.scripts.h[name]; if(result == null) { return null; } return polymod_hscript_ScriptRunner.scripts.h[name]; } ,execute: function(name,assetHandler) { var script = this.get(name,assetHandler); if(script == null) { polymod_Polymod.error("script_not_found","Could not load script " + name + " for execution."); } return script.execute(); } ,__class__: polymod_hscript_ScriptRunner }; var polymod_hscript_Script = function(script,origin) { if(polymod_hscript_Script.parser == null) { polymod_hscript_Script.parser = polymod_hscript_Script.buildParser(); polymod_hscript_Script.parser.allowTypes = true; } this.program = polymod_hscript_Script.parser.parseString(script,origin); this.interp = polymod_hscript_Script.buildInterp(); }; $hxClasses["polymod.hscript.Script"] = polymod_hscript_Script; polymod_hscript_Script.__name__ = "polymod.hscript.Script"; polymod_hscript_Script.parser = null; polymod_hscript_Script.buildParser = function() { return new polymod_hscript__$internal_PolymodParserEx(); }; polymod_hscript_Script.buildInterp = function() { return new polymod_hscript__$internal_PolymodInterpEx(null,null); }; polymod_hscript_Script.prototype = { program: null ,interp: null ,set: function(key,value) { this.interp.variables.h[key] = value; } ,execute: function() { var result = this.interp.execute(this.program); return { script_result : result, script_variables : this.interp.variables}; } ,__class__: polymod_hscript_Script }; var polymod_hscript__$internal_PolymodAbstractScriptClass = {}; polymod_hscript__$internal_PolymodAbstractScriptClass.resolveField = function(this1,name) { switch(name) { case "callFunction": return $bind(this1,this1.callFunction); case "createSuperClass": return $bind(this1,this1.createSuperClass); case "findFunction": return $bind(this1,this1.findFunction); case "superClass": return this1.superClass; default: if(this1.findFunction(name) != null) { var fn = this1.findFunction(name); var nargs = 0; if(fn.args != null) { nargs = fn.args.length; } switch(nargs) { case 0: var _g = this1; var name1 = name; return function() { return _g.callFunction(name1); }; case 1: var _g1 = this1; var name2 = name; return function(arg0) { return _g1.callFunction(name2,[arg0]); }; case 2: var _g2 = this1; var name3 = name; return function(arg0,arg1) { return _g2.callFunction(name3,[arg0,arg1]); }; case 3: var _g3 = this1; var name4 = name; return function(arg0,arg1,arg2) { return _g3.callFunction(name4,[arg0,arg1,arg2]); }; case 4: var _g4 = this1; var name5 = name; return function(arg0,arg1,arg2,arg3) { return _g4.callFunction(name5,[arg0,arg1,arg2,arg3]); }; case 5: var _g5 = this1; var name6 = name; return function(arg0,arg1,arg2,arg3,arg4) { return _g5.callFunction(name6,[arg0,arg1,arg2,arg3,arg4]); }; case 6: var _g6 = this1; var name7 = name; return function(arg0,arg1,arg2,arg3,arg4,arg5) { return _g6.callFunction(name7,[arg0,arg1,arg2,arg3,arg4,arg5]); }; case 7: var _g7 = this1; var name8 = name; return function(arg0,arg1,arg2,arg3,arg4,arg5,arg6) { return _g7.callFunction(name8,[arg0,arg1,arg2,arg3,arg4,arg5,arg6]); }; case 8: var _g8 = this1; var name9 = name; return function(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) { return _g8.callFunction(name9,[arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7]); }; default: var _this = this1._interp; var e = new hscript_Error(hscript_ErrorDef.ECustom("only 8 params allowed in script class functions (.bind limitation)"),_this.curExpr.pmin,_this.curExpr.pmax,_this.curExpr.origin,_this.curExpr.line); throw haxe_Exception.thrown(e); } } else if(this1.findVar(name) != null) { var v = this1.findVar(name); var varValue = null; if(Object.prototype.hasOwnProperty.call(this1._interp.variables.h,name) == false) { if(v.expr != null) { varValue = this1._interp.expr(v.expr); this1._interp.variables.h[name] = varValue; } } else { varValue = this1._interp.variables.h[name]; } return varValue; } else if(this1.superClass == null) { throw haxe_Exception.thrown("field '" + name + "' does not exist in script class '" + this1.get_className() + "'"); } else if(js_Boot.getClass(this1.superClass) == null) { if(Object.prototype.hasOwnProperty.call(this1.superClass,name)) { return Reflect.field(this1.superClass,name); } else { var tmp = "field '" + name + "' does not exist in script class '" + this1.get_className() + "' or super class '"; var c = js_Boot.getClass(this1.superClass); throw haxe_Exception.thrown(tmp + c.__name__ + "'"); } } else if(((this1.superClass) instanceof polymod_hscript__$internal_PolymodScriptClass)) { var superScriptClass = js_Boot.__cast(this1.superClass , polymod_hscript__$internal_PolymodScriptClass); try { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead(superScriptClass,name); } catch( _g9 ) { haxe_NativeStackTrace.lastError = _g9; } } else { var fields = Type.getInstanceFields(js_Boot.getClass(this1.superClass)); if(fields.indexOf(name) != -1 || fields.indexOf("get_" + name) != -1) { return Reflect.getProperty(this1.superClass,name); } else { var tmp = "field '" + name + "' does not exist in script class '" + this1.get_className() + "' or super class '"; var c = js_Boot.getClass(this1.superClass); throw haxe_Exception.thrown(tmp + c.__name__ + "'"); } } } if(this1.superClass == null) { throw haxe_Exception.thrown("field '" + name + "' does not exist in script class '" + this1.get_className() + "'"); } else { var tmp = "field '" + name + "' does not exist in script class '" + this1.get_className() + "' or super class '"; var c = js_Boot.getClass(this1.superClass); throw haxe_Exception.thrown(tmp + c.__name__ + "'"); } }; polymod_hscript__$internal_PolymodAbstractScriptClass.fieldRead = function(this1,name) { return polymod_hscript__$internal_PolymodAbstractScriptClass.resolveField(this1,name); }; polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite = function(this1,name,value) { if(this1.findVar(name) != null) { this1._interp.variables.h[name] = value; return value; } else if(Object.prototype.hasOwnProperty.call(this1.superClass,name)) { Reflect.setProperty(this1.superClass,name,value); return value; } else if(this1.superClass != null && ((this1.superClass) instanceof polymod_hscript__$internal_PolymodScriptClass)) { var superScriptClass = js_Boot.__cast(this1.superClass , polymod_hscript__$internal_PolymodScriptClass); try { return polymod_hscript__$internal_PolymodAbstractScriptClass.fieldWrite(superScriptClass,name,value); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } if(this1.superClass == null) { throw haxe_Exception.thrown("field '" + name + "' does not exist in script class '" + this1.get_className() + "'"); } else { var tmp = "field '" + name + "' does not exist in script class '" + this1.get_className() + "' or super class '"; var c = js_Boot.getClass(this1.superClass); throw haxe_Exception.thrown(tmp + c.__name__ + "'"); } }; var polymod_hscript__$internal_ErrorEx = function(e,pmin,pmax,origin,line) { this.e = e; this.pmin = pmin; this.pmax = pmax; this.origin = origin; this.line = line; }; $hxClasses["polymod.hscript._internal.ErrorEx"] = polymod_hscript__$internal_ErrorEx; polymod_hscript__$internal_ErrorEx.__name__ = "polymod.hscript._internal.ErrorEx"; polymod_hscript__$internal_ErrorEx.prototype = { line: null ,e: null ,pmin: null ,pmax: null ,origin: null ,toString: function() { return polymod_hscript__$internal_PolymodPrinterEx.errorExToString(this); } ,__class__: polymod_hscript__$internal_ErrorEx }; var polymod_hscript__$internal_ErrorDefEx = $hxEnums["polymod.hscript._internal.ErrorDefEx"] = { __ename__:"polymod.hscript._internal.ErrorDefEx",__constructs__:null ,EInvalidChar: ($_=function(c) { return {_hx_index:0,c:c,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidChar",$_.__params__ = ["c"],$_) ,EUnexpected: ($_=function(s) { return {_hx_index:1,s:s,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EUnexpected",$_.__params__ = ["s"],$_) ,EUnterminatedString: {_hx_name:"EUnterminatedString",_hx_index:2,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr} ,EUnterminatedComment: {_hx_name:"EUnterminatedComment",_hx_index:3,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr} ,EInvalidPreprocessor: ($_=function(msg) { return {_hx_index:4,msg:msg,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidPreprocessor",$_.__params__ = ["msg"],$_) ,EUnknownVariable: ($_=function(v) { return {_hx_index:5,v:v,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EUnknownVariable",$_.__params__ = ["v"],$_) ,EInvalidIterator: ($_=function(v) { return {_hx_index:6,v:v,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidIterator",$_.__params__ = ["v"],$_) ,EInvalidOp: ($_=function(op) { return {_hx_index:7,op:op,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidOp",$_.__params__ = ["op"],$_) ,EInvalidAccess: ($_=function(f) { return {_hx_index:8,f:f,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidAccess",$_.__params__ = ["f"],$_) ,EInvalidModule: ($_=function(m) { return {_hx_index:9,m:m,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidModule",$_.__params__ = ["m"],$_) ,EBlacklistedModule: ($_=function(m) { return {_hx_index:10,m:m,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EBlacklistedModule",$_.__params__ = ["m"],$_) ,EInvalidScriptedFnAccess: ($_=function(f) { return {_hx_index:11,f:f,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidScriptedFnAccess",$_.__params__ = ["f"],$_) ,EInvalidScriptedVarGet: ($_=function(v) { return {_hx_index:12,v:v,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidScriptedVarGet",$_.__params__ = ["v"],$_) ,EInvalidScriptedVarSet: ($_=function(v) { return {_hx_index:13,v:v,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EInvalidScriptedVarSet",$_.__params__ = ["v"],$_) ,EClassSuperNotCalled: {_hx_name:"EClassSuperNotCalled",_hx_index:14,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr} ,EClassUnresolvedSuperclass: ($_=function(c,r) { return {_hx_index:15,c:c,r:r,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EClassUnresolvedSuperclass",$_.__params__ = ["c","r"],$_) ,EScriptThrow: ($_=function(v) { return {_hx_index:16,v:v,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EScriptThrow",$_.__params__ = ["v"],$_) ,EScriptCallThrow: ($_=function(v) { return {_hx_index:17,v:v,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="EScriptCallThrow",$_.__params__ = ["v"],$_) ,ECustom: ($_=function(msg) { return {_hx_index:18,msg:msg,__enum__:"polymod.hscript._internal.ErrorDefEx",toString:$estr}; },$_._hx_name="ECustom",$_.__params__ = ["msg"],$_) }; polymod_hscript__$internal_ErrorDefEx.__constructs__ = [polymod_hscript__$internal_ErrorDefEx.EInvalidChar,polymod_hscript__$internal_ErrorDefEx.EUnexpected,polymod_hscript__$internal_ErrorDefEx.EUnterminatedString,polymod_hscript__$internal_ErrorDefEx.EUnterminatedComment,polymod_hscript__$internal_ErrorDefEx.EInvalidPreprocessor,polymod_hscript__$internal_ErrorDefEx.EUnknownVariable,polymod_hscript__$internal_ErrorDefEx.EInvalidIterator,polymod_hscript__$internal_ErrorDefEx.EInvalidOp,polymod_hscript__$internal_ErrorDefEx.EInvalidAccess,polymod_hscript__$internal_ErrorDefEx.EInvalidModule,polymod_hscript__$internal_ErrorDefEx.EBlacklistedModule,polymod_hscript__$internal_ErrorDefEx.EInvalidScriptedFnAccess,polymod_hscript__$internal_ErrorDefEx.EInvalidScriptedVarGet,polymod_hscript__$internal_ErrorDefEx.EInvalidScriptedVarSet,polymod_hscript__$internal_ErrorDefEx.EClassSuperNotCalled,polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass,polymod_hscript__$internal_ErrorDefEx.EScriptThrow,polymod_hscript__$internal_ErrorDefEx.EScriptCallThrow,polymod_hscript__$internal_ErrorDefEx.ECustom]; polymod_hscript__$internal_ErrorDefEx.__empty_constructs__ = [polymod_hscript__$internal_ErrorDefEx.EUnterminatedString,polymod_hscript__$internal_ErrorDefEx.EUnterminatedComment,polymod_hscript__$internal_ErrorDefEx.EClassSuperNotCalled]; var polymod_hscript__$internal_ErrorExUtil = function() { }; $hxClasses["polymod.hscript._internal.ErrorExUtil"] = polymod_hscript__$internal_ErrorExUtil; polymod_hscript__$internal_ErrorExUtil.__name__ = "polymod.hscript._internal.ErrorExUtil"; polymod_hscript__$internal_ErrorExUtil.toErrorEx = function(err) { var _g = err.e; switch(_g._hx_index) { case 0: var c = _g.c; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidChar(c),err.pmin,err.pmax,err.origin,err.line); case 1: var s = _g.s; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EUnexpected(s),err.pmin,err.pmax,err.origin,err.line); case 2: return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EUnterminatedString,err.pmin,err.pmax,err.origin,err.line); case 3: return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EUnterminatedComment,err.pmin,err.pmax,err.origin,err.line); case 4: var msg = _g.msg; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidPreprocessor(msg),err.pmin,err.pmax,err.origin,err.line); case 5: var v = _g.v; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EUnknownVariable(v),err.pmin,err.pmax,err.origin,err.line); case 6: var v = _g.v; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidIterator(v),err.pmin,err.pmax,err.origin,err.line); case 7: var op = _g.op; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidOp(op),err.pmin,err.pmax,err.origin,err.line); case 8: var f = _g.f; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidAccess(f),err.pmin,err.pmax,err.origin,err.line); case 9: var msg = _g.msg; return new polymod_hscript__$internal_ErrorEx(polymod_hscript__$internal_ErrorDefEx.ECustom(msg),err.pmin,err.pmax,err.origin,err.line); } }; var polymod_hscript__$internal_PolymodInterpEx = function(targetCls,proxy) { this._nextCallObject = null; this._proxy = null; hscript_Interp.call(this); this._proxy = proxy; this.variables.h["Math"] = Math; this.variables.h["Std"] = Std; this.targetCls = targetCls; }; $hxClasses["polymod.hscript._internal.PolymodInterpEx"] = polymod_hscript__$internal_PolymodInterpEx; polymod_hscript__$internal_PolymodInterpEx.__name__ = "polymod.hscript._internal.PolymodInterpEx"; polymod_hscript__$internal_PolymodInterpEx.registerScriptClass = function(c) { var name = c.name; if(c.pkg != null) { name = c.pkg.join(".") + "." + name; } polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h[name] = c; }; polymod_hscript__$internal_PolymodInterpEx.findScriptClassDescriptor = function(name) { return polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h[name]; }; polymod_hscript__$internal_PolymodInterpEx.__super__ = hscript_Interp; polymod_hscript__$internal_PolymodInterpEx.prototype = $extend(hscript_Interp.prototype,{ targetCls: null ,errorEx: function(e,rethrow) { if(rethrow == null) { rethrow = false; } var tmp = this.curExpr; var tmp1 = tmp != null ? tmp.pmin : null; var tmp = this.curExpr; var tmp2 = tmp != null ? tmp.pmax : null; var tmp = this.curExpr; var tmp3 = tmp != null ? tmp.origin : null; var tmp = this.curExpr; var tmp4 = tmp != null ? tmp.line : null; var e1 = new polymod_hscript__$internal_ErrorEx(e,tmp1 != null ? tmp1 : 0,tmp2 != null ? tmp2 : 0,tmp3 != null ? tmp3 : "unknown",tmp4 != null ? tmp4 : 0); if(rethrow) { throw haxe_Exception.thrown(e1); } else { throw haxe_Exception.thrown(e1); } } ,cnew: function(cl,args) { if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h,cl)) { var proxy = new polymod_hscript__$internal_PolymodScriptClass(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h[cl],args); return proxy; } else if(this._proxy != null) { if(this._proxy._c.pkg != null) { var packagedClass = this._proxy._c.pkg.join(".") + "." + cl; if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h,packagedClass)) { var proxy = new polymod_hscript__$internal_PolymodScriptClass(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h[packagedClass],args); return proxy; } } if(this._proxy._c.imports != null && Object.prototype.hasOwnProperty.call(this._proxy._c.imports.h,cl)) { var importedClass = this._proxy._c.imports.h[cl]; if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h,importedClass.fullPath)) { var proxy = new polymod_hscript__$internal_PolymodScriptClass(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h[importedClass.fullPath],args); return proxy; } var c = importedClass.cls; if(c == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EBlacklistedModule(importedClass.fullPath)); } else { return Type.createInstance(c,args); } } } var cls = $hxClasses[cl]; if(cls == null) { cls = this.resolve(cl); } if(cls == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidModule(cl)); } return Type.createInstance(cls,args); } ,fcall: function(o,f,args) { if(this._proxy != null && o == this._proxy.superClass) { return hscript_Interp.prototype.fcall.call(this,o,"__super_" + f,args); } else if(((o) instanceof polymod_hscript__$internal_PolymodScriptClass)) { this._nextCallObject = null; var proxy = js_Boot.__cast(o , polymod_hscript__$internal_PolymodScriptClass); return proxy.callFunction(f,args); } var func = this.get(o,f); if(func == null && f == "contains") { func = this.get(o,"includes"); } if(func == null) { if(js_Boot.__implements(o,polymod_hscript_HScriptedClass)) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidScriptedFnAccess(f)); } else { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidAccess(f)); } } return this.call(o,func,args); } ,_proxy: null ,setVar: function(id,v) { if(this._proxy != null && this._proxy.superClass != null) { if(this._proxy.superHasField(id)) { Reflect.setProperty(this._proxy.superClass,id,v); return; } } hscript_Interp.prototype.setVar.call(this,id,v); } ,assign: function(e1,e2) { var _g = e1.e; switch(_g._hx_index) { case 1: var id = _g.v; if(this._proxy != null && this._proxy.superClass != null) { if(this._proxy.superHasField(id)) { var v = this.expr(e2); Reflect.setProperty(this._proxy.superClass,id,v); return v; } } break; case 5: var e0 = _g.e; var id = _g.f; var _g = e0.e; if(_g._hx_index == 1) { var id0 = _g.v; if(id0 == "this") { if(this._proxy != null && this._proxy.superClass != null) { if(this._proxy.superHasField(id)) { var v = this.expr(e2); Reflect.setProperty(this._proxy.superClass,id,v); return v; } } } } break; default: } return hscript_Interp.prototype.assign.call(this,e1,e2); } ,expr: function(e) { var _gthis = this; this.curExpr = e; var _g = e.e; switch(_g._hx_index) { case 2: var _g1 = _g.t; var n = _g.n; var e1 = _g.e; this.declared.push({ n : n, old : this.locals.h[n]}); var result = e1 == null ? null : this.expr(e1); this.locals.h[n] = { r : result}; return null; case 14: var _g1 = _g.ret; var params = _g.args; var fexpr = _g.e; var name = _g.name; var capturedLocals = this.duplicate(this.locals); var me = this; var hasOpt = false; var minParams = 0; var _g1 = 0; while(_g1 < params.length) { var p = params[_g1]; ++_g1; if(p.opt) { hasOpt = true; } else { minParams += 1; } } var newFun = function(args) { if((args == null ? 0 : args.length) != params.length) { if(args.length < minParams) { var str = "Invalid number of parameters. Got " + args.length + ", required " + minParams; if(name != null) { str += " for function '" + name + "'"; } _gthis.errorEx(polymod_hscript__$internal_ErrorDefEx.ECustom(str)); } var args2 = []; var extraParams = args.length - minParams; var pos = 0; var _g = 0; while(_g < params.length) { var p = params[_g]; ++_g; if(p.opt) { if(extraParams > 0) { args2.push(args[pos++]); --extraParams; } else { args2.push(null); } } else { args2.push(args[pos++]); } } args = args2; } var old = me.locals; var depth = me.depth; me.depth++; me.locals = me.duplicate(capturedLocals); var _g = 0; var _g1 = params.length; while(_g < _g1) { var i = _g++; me.locals.h[params[i].name] = { r : args[i]}; } var r = null; var oldDecl = _gthis.declared.length; if(_gthis.inTry) { try { r = me.exprReturn(fexpr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var e = haxe_Exception.caught(_g).unwrap(); me.locals = old; me.depth = depth; throw haxe_Exception.thrown(e); } } else { try { r = me.exprReturn(fexpr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof polymod_hscript__$internal_ErrorEx)) { var err = _g1; _gthis._proxy.reportErrorEx(err,"anonymous"); r = null; } else if(((_g1) instanceof hscript_Error)) { var err = _g1; _gthis._proxy.reportError(err,"anonymous"); r = null; } else { var err = _g1; throw haxe_Exception.thrown(err); } } } _gthis.restore(oldDecl); me.locals = old; me.depth = depth; return r; }; newFun = Reflect.makeVarArgs(newFun); if(name != null) { if(this.depth == 0) { this.variables.h[name] = newFun; } else { this.declared.push({ n : name, old : this.locals.h[name]}); var ref = { r : newFun}; this.locals.h[name] = ref; capturedLocals.h[name] = ref; } } return newFun; case 19: var e1 = _g.e; var str = "Script Error: " + Std.string(this.expr(e1)); this.errorEx(polymod_hscript__$internal_ErrorDefEx.EScriptThrow(str)); break; case 20: var _g1 = _g.t; var e1 = _g.e; var n = _g.v; var ecatch = _g.ecatch; var old = this.declared.length; var oldTry = this.inTry; try { this.inTry = true; var v = this.expr(e1); this.restore(old); this.inTry = oldTry; return v; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof polymod_hscript__$internal_ErrorEx)) { var error = _g1; var err = error.e; if(err._hx_index == 16) { var errValue = err.v; this.restore(old); this.inTry = oldTry; this.declared.push({ n : n, old : this.locals.h[n]}); this.locals.h[n] = { r : errValue}; var v = this.expr(ecatch); this.restore(old); return v; } else { throw haxe_Exception.thrown(err); } } else { var err = _g1; if(err.__ename__ == "hscript.Interp.Stop") { this.inTry = oldTry; throw haxe_Exception.thrown(err); } this.restore(old); this.inTry = oldTry; this.declared.push({ n : n, old : this.locals.h[n]}); this.locals.h[n] = { r : err}; var v = this.expr(ecatch); this.restore(old); return v; } } break; default: } return hscript_Interp.prototype.expr.call(this,e); } ,makeIterator: function(v) { if(v.iterator != null) { try { v = $getIterator(v); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } } if(((v) instanceof Array)) { v = new polymod_hscript__$internal__$PolymodInterpEx_ArrayIterator(v); } if(v.hasNext == null || v.next == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidIterator(v)); } return v; } ,call: function(target,fun,args) { if(target == null && this._nextCallObject != null) { target = this._nextCallObject; } if(fun == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidAccess(fun)); } if(target == this._proxy) { return this.callThis(fun,args); } else { try { var result = fun.apply(target,args); this._nextCallObject = null; return result; } catch( _g ) { var e = haxe_Exception.caught(_g); this.errorEx(polymod_hscript__$internal_ErrorDefEx.EScriptCallThrow(e)); this._nextCallObject = null; return null; } } } ,callThis: function(fun,args) { var capturedLocals = this.duplicate(this.locals); var capturedDeclared = this.declared; var capturedDepth = this.depth; this.depth++; try { var result = fun.apply(this._proxy,args); this.locals = capturedLocals; this.declared = capturedDeclared; this.depth = capturedDepth; return result; } catch( _g ) { var e = haxe_Exception.caught(_g); this.errorEx(polymod_hscript__$internal_ErrorDefEx.EScriptCallThrow(e)); this.locals = capturedLocals; this.declared = capturedDeclared; this.depth = capturedDepth; return null; } } ,execute: function(expr) { try { return hscript_Interp.prototype.execute.call(this,expr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof polymod_hscript__$internal_ErrorEx)) { var err = _g1; this._proxy.reportErrorEx(err,"anonymous"); return null; } else if(((_g1) instanceof hscript_Error)) { var err = _g1; this._proxy.reportError(err,"anonymous"); return null; } else { var err = _g1; throw haxe_Exception.thrown(err); } } } ,executeEx: function(expr) { return hscript_Interp.prototype.execute.call(this,expr); } ,get: function(o,f) { if(o == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidAccess(f)); } if(((o) instanceof polymod_hscript__$internal_PolymodScriptClass)) { var proxy = js_Boot.__cast(o , polymod_hscript__$internal_PolymodScriptClass); if(Object.prototype.hasOwnProperty.call(proxy._interp.variables.h,f)) { return proxy._interp.variables.h[f]; } else if(proxy.superClass != null && proxy.superHasField(f)) { return Reflect.getProperty(proxy.superClass,f); } else { try { return polymod_hscript__$internal_PolymodAbstractScriptClass.resolveField(proxy,f); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } this.errorEx(polymod_hscript__$internal_ErrorDefEx.EUnknownVariable(f)); } } else if(js_Boot.__implements(o,polymod_hscript_HScriptedClass)) { try { var result = Reflect.getProperty(o,f); if(result == null) { return result; } return result; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidScriptedVarGet(f)); } } return hscript_Interp.prototype.get.call(this,o,f); } ,set: function(o,f,v) { if(o == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidAccess(f)); } if(((o) instanceof polymod_hscript__$internal_PolymodScriptClass)) { var proxy = js_Boot.__cast(o , polymod_hscript__$internal_PolymodScriptClass); if(Object.prototype.hasOwnProperty.call(proxy._interp.variables.h,f)) { proxy._interp.variables.h[f] = v; } else if(proxy.superClass != null && Object.prototype.hasOwnProperty.call(proxy.superClass,f)) { Reflect.setProperty(proxy.superClass,f,v); } else if(proxy.superClass != null && Type.getInstanceFields(js_Boot.getClass(this._proxy.superClass)).indexOf(f) != -1) { Reflect.setProperty(proxy.superClass,f,v); } else { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EUnknownVariable(f)); } return v; } else if(js_Boot.__implements(o,polymod_hscript_HScriptedClass)) { try { Reflect.setProperty(o,f,v); } catch( _g ) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidScriptedVarSet(f)); } return v; } try { Reflect.setProperty(o,f,v); } catch( _g ) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EInvalidAccess(f)); } return v; } ,_nextCallObject: null ,exprReturn: function(expr) { return hscript_Interp.prototype.exprReturn.call(this,expr); } ,resolve: function(id) { this._nextCallObject = null; if(id == "super" && this._proxy != null) { if(this._proxy.superClass == null) { return ($_=this._proxy,$bind($_,$_.superConstructor)); } else { return this._proxy.superClass; } } else if(id == "this" && this._proxy != null) { return this._proxy; } else if(id == "null") { return null; } if(Object.prototype.hasOwnProperty.call(this.locals.h,id)) { return this.locals.h[id].r; } if(Object.prototype.hasOwnProperty.call(this.variables.h,id)) { return this.variables.h[id]; } var importedClass = this._proxy._c.imports.h[id]; if(this._proxy != null && importedClass != null) { if(importedClass.cls != null) { return importedClass.cls; } if(importedClass.enm != null) { return importedClass.enm; } } var prop; if(this._proxy != null && this._proxy.findFunction(id,true) != null) { this._nextCallObject = this._proxy; return polymod_hscript__$internal_PolymodAbstractScriptClass.resolveField(this._proxy,id); } else if(this._proxy != null && this._proxy.superHasField(id)) { this._nextCallObject = this._proxy.superClass; return Reflect.getProperty(this._proxy.superClass,id); } else if(this._proxy != null) { try { var r = polymod_hscript__$internal_PolymodAbstractScriptClass.resolveField(this._proxy,id); this._nextCallObject = this._proxy; return r; } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } this.errorEx(polymod_hscript__$internal_ErrorDefEx.EUnknownVariable(id)); } else { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EUnknownVariable(id)); } return null; } ,addModule: function(moduleContents,origin) { if(origin == null) { origin = "hscript"; } var parser = new polymod_hscript__$internal_PolymodParserEx(); var decls = parser.parseModule(moduleContents,origin); this.registerModule(decls,origin); } ,createScriptClassInstance: function(className,args) { if(args == null) { args = []; } if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h,className)) { var proxy = new polymod_hscript__$internal_PolymodScriptClass(polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h[className],args); return proxy; } else { polymod_Polymod.error("script_class_not_registered","Scripted class " + className + " has not been defined."); } return null; } ,registerModule: function(module,origin) { if(origin == null) { origin = "hscript"; } var pkg = null; var imports = new haxe_ds_StringMap(); var h = polymod_hscript__$internal_PolymodScriptClass.defaultImports.h; var importPath_h = h; var importPath_keys = Object.keys(h); var importPath_length = importPath_keys.length; var importPath_current = 0; while(importPath_current < importPath_length) { var importPath = importPath_keys[importPath_current++]; var splitPath = importPath.split("."); var clsName = splitPath[splitPath.length - 1]; var value = splitPath.slice(0,splitPath.length - 1); imports.h[clsName] = { name : clsName, pkg : value, fullPath : importPath, cls : polymod_hscript__$internal_PolymodScriptClass.defaultImports.h[importPath]}; } var _g = 0; while(_g < module.length) { var decl = module[_g]; ++_g; switch(decl._hx_index) { case 0: var path = decl.path; pkg = path; break; case 1: var _g1 = decl.everything; var path1 = decl.path; var clsName = path1[path1.length - 1]; if(Object.prototype.hasOwnProperty.call(imports.h,clsName)) { if(imports.h[clsName] == null) { polymod_Polymod.error("script_class_module_blacklisted","Scripted class " + clsName + " is blacklisted and cannot be used in scripts.",origin); } else { polymod_Polymod.warning("script_class_module_already_imported","Scripted class " + clsName + " has already been imported.",origin); } continue; } var importedClass = { name : clsName, pkg : path1.slice(0,path1.length - 1), fullPath : path1.join("."), cls : null, enm : null}; if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodScriptClass.importOverrides.h,importedClass.fullPath)) { importedClass.cls = polymod_hscript__$internal_PolymodScriptClass.importOverrides.h[importedClass.fullPath]; } else { var name = importedClass.fullPath; var resultCls = $hxClasses[name]; var resultEnm = null; if(resultCls == null) { var name1 = importedClass.fullPath; resultEnm = $hxEnums[name1]; } if(resultCls == null && resultEnm == null) { polymod_Polymod.error("script_class_module_not_found","Could not import class " + importedClass.fullPath,origin); continue; } else if(resultCls != null) { importedClass.cls = resultCls; } else if(resultEnm != null) { importedClass.enm = resultEnm; } } imports.h[importedClass.name] = importedClass; break; case 2: var c = decl.c; var extend = c.extend; if(extend != null) { var superClassPath = new hscript_Printer().typeToString(extend); if(!Object.prototype.hasOwnProperty.call(imports.h,superClassPath)) { if(extend != null) { if(extend._hx_index == 0) { var path2 = extend.path; var params = extend.params; if(params.length > 0) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass(superClassPath,"do not include type parameters in super class name")); } } } this.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass(superClassPath,"not recognized, is the type imported?")); } if(Object.prototype.hasOwnProperty.call(imports.h,superClassPath)) { var extendImport = imports.h[superClassPath]; if(extendImport.cls == null) { this.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass(superClassPath,"expected a class")); } if(extend != null) { if(extend._hx_index == 0) { var _g2 = extend.path; var params1 = extend.params; extend = hscript_CType.CTPath(imports.h[superClassPath].fullPath.split("."),params1); } } } } var classDecl = { imports : imports, pkg : pkg, name : c.name, params : c.params, meta : c.meta, isPrivate : c.isPrivate, extend : extend, implement : c.implement, fields : c.fields, isExtern : c.isExtern}; polymod_hscript__$internal_PolymodInterpEx.registerScriptClass(classDecl); break; case 3: var _g3 = decl.c; break; } } } ,__class__: polymod_hscript__$internal_PolymodInterpEx }); var polymod_hscript__$internal__$PolymodInterpEx_ArrayIterator = function(a) { this.a = a; this.pos = 0; }; $hxClasses["polymod.hscript._internal._PolymodInterpEx.ArrayIterator"] = polymod_hscript__$internal__$PolymodInterpEx_ArrayIterator; polymod_hscript__$internal__$PolymodInterpEx_ArrayIterator.__name__ = "polymod.hscript._internal._PolymodInterpEx.ArrayIterator"; polymod_hscript__$internal__$PolymodInterpEx_ArrayIterator.prototype = { a: null ,pos: null ,hasNext: function() { return this.pos < this.a.length; } ,next: function() { return this.a[this.pos++]; } ,__class__: polymod_hscript__$internal__$PolymodInterpEx_ArrayIterator }; var polymod_hscript__$internal_PolymodParserEx = function() { hscript_Parser.call(this); }; $hxClasses["polymod.hscript._internal.PolymodParserEx"] = polymod_hscript__$internal_PolymodParserEx; polymod_hscript__$internal_PolymodParserEx.__name__ = "polymod.hscript._internal.PolymodParserEx"; polymod_hscript__$internal_PolymodParserEx.__super__ = hscript_Parser; polymod_hscript__$internal_PolymodParserEx.prototype = $extend(hscript_Parser.prototype,{ parseModule: function(content,origin) { if(origin == null) { origin = "hscript"; } return hscript_Parser.prototype.parseModule.call(this,content,origin); } ,__class__: polymod_hscript__$internal_PolymodParserEx }); var polymod_hscript__$internal_PolymodPrinterEx = function() { hscript_Printer.call(this); }; $hxClasses["polymod.hscript._internal.PolymodPrinterEx"] = polymod_hscript__$internal_PolymodPrinterEx; polymod_hscript__$internal_PolymodPrinterEx.__name__ = "polymod.hscript._internal.PolymodPrinterEx"; polymod_hscript__$internal_PolymodPrinterEx.errorExToString = function(e) { var message; var _g = e.e; switch(_g._hx_index) { case 0: var c = _g.c; message = "Invalid character: '" + (c != c ? "EOF" : String.fromCodePoint(c)) + "' (" + c + ")"; break; case 1: var s = _g.s; message = "Unexpected token: \"" + s + "\""; break; case 2: message = "Unterminated string"; break; case 3: message = "Unterminated comment"; break; case 4: var str = _g.msg; message = "Invalid preprocessor (" + str + ")"; break; case 5: var v = _g.v; message = "Unknown variable: " + v; break; case 6: var v = _g.v; message = "Invalid iterator: " + v; break; case 7: var op = _g.op; message = "Invalid operator: " + op; break; case 8: var f = _g.f; message = "Invalid access to field " + f; break; case 9: var m = _g.m; message = "Invalid module: " + m; break; case 10: var m = _g.m; message = "Blacklisted module: " + m; break; case 11: var f = _g.f; message = "Invalid function access to scripted class: " + f; break; case 12: var v = _g.v; message = "Invalid variable retrieval to scripted class: " + v; break; case 13: var v = _g.v; message = "Invalid variable assignment to scripted class: " + v; break; case 14: message = "Super constructor not called"; break; case 15: var c = _g.c; var r = _g.r; message = "Unresolved superclass " + c + " (reason: " + r + ")"; break; case 16: var v = _g.v; message = "Script threw an exception: \n" + Std.string(v); break; case 17: var v = _g.v; message = "Script threw an exception: \n" + Std.string(v); break; case 18: var msg = _g.msg; message = msg; break; } return e.origin + ":" + e.line + ": " + message; }; polymod_hscript__$internal_PolymodPrinterEx.__super__ = hscript_Printer; polymod_hscript__$internal_PolymodPrinterEx.prototype = $extend(hscript_Printer.prototype,{ __class__: polymod_hscript__$internal_PolymodPrinterEx }); var polymod_hscript__$internal_Param = $hxEnums["polymod.hscript._internal.Param"] = { __ename__:"polymod.hscript._internal.Param",__constructs__:null ,Unused: {_hx_name:"Unused",_hx_index:0,__enum__:"polymod.hscript._internal.Param",toString:$estr} }; polymod_hscript__$internal_Param.__constructs__ = [polymod_hscript__$internal_Param.Unused]; polymod_hscript__$internal_Param.__empty_constructs__ = [polymod_hscript__$internal_Param.Unused]; var polymod_hscript__$internal_PolymodScriptClass = function(c,args) { this._cachedVarDecls = null; this._cachedFunctionDecls = null; this._cachedFieldDecls = null; this.superClass = null; this.__superClassFieldList = null; var targetClass = null; var _g = c.extend; if(_g == null) { polymod_Polymod.error("script_parse_error","Could not determine target class for \"" + Std.string(c.extend) + "\" (unknown type?)"); } else if(_g._hx_index == 0) { var pth = _g.path; var params = _g.params; var clsPath = pth.join("."); var clsName = pth[pth.length - 1]; if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h,clsPath)) { targetClass = polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h[clsPath]; } else if(Object.prototype.hasOwnProperty.call(c.imports.h,clsName)) { var importedClass = c.imports.h[clsName]; if(importedClass != null && importedClass.cls != null) { targetClass = importedClass.cls; } else if(importedClass != null && importedClass.cls == null) { polymod_Polymod.error("script_parse_error","Could not determine target class for \"" + pth.join(".") + "\" (blacklisted type?)"); } else { polymod_Polymod.error("script_parse_error","Could not determine target class for \"" + pth.join(".") + "\" (unregistered type?)"); } } else { polymod_Polymod.error("script_parse_error","Could not determine target class for \"" + pth.join(".") + "\" (unregistered type?)"); } } else { polymod_Polymod.error("script_parse_error","Could not determine target class for \"" + Std.string(c.extend) + "\" (unknown type?)"); } this._interp = new polymod_hscript__$internal_PolymodInterpEx(targetClass,this); this._c = c; this.buildCaches(); var ctorField = this.findField("new"); if(ctorField != null) { this.callFunction("new",args); if(this.superClass == null && this._c.extend != null) { this._interp.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassSuperNotCalled); } } else if(this._c.extend != null) { this.createSuperClass(args); } }; $hxClasses["polymod.hscript._internal.PolymodScriptClass"] = polymod_hscript__$internal_PolymodScriptClass; polymod_hscript__$internal_PolymodScriptClass.__name__ = "polymod.hscript._internal.PolymodScriptClass"; polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByString = function(body,path) { polymod_hscript__$internal_PolymodScriptClass.scriptInterp.addModule(body,path == null ? "hscriptClass" : "hscriptClass(" + path + ")"); }; polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByPath = function(path) { var scriptBody = polymod_Polymod.assetLibrary.getText(path); if(scriptBody == null) { polymod_Polymod.error("script_parse_error","Error while loading script \"" + path + "\", could not retrieve script contents!"); return; } try { polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByString(scriptBody,path); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof polymod_hscript__$internal_ErrorEx)) { var err = _g1; var errLine = "" + err.line; var _g2 = err.e; if(_g2._hx_index == 1) { var s = _g2.s; polymod_Polymod.error("script_parse_error","Error while parsing function " + path + "#" + errLine + ": EUnexpected" + "\n" + ("Unexpected error: Unexpected token \"" + s + "\", is there invalid syntax on this line?")); } else { polymod_Polymod.error("script_parse_error","Error while executing function " + path + "#" + errLine + ": " + "\n" + ("An unknown error occurred: " + Std.string(err))); } } else if(((_g1) instanceof hscript_Error)) { var err = _g1; var errLine = "" + err.line; var _g1 = err.e; if(_g1._hx_index == 1) { var s = _g1.s; polymod_Polymod.error("script_parse_error","Error while parsing function " + path + "#" + errLine + ": EUnexpected" + "\n" + ("Unexpected error: Unexpected token \"" + s + "\", is there invalid syntax on this line?")); } else { polymod_Polymod.error("script_parse_error","Error while executing function " + path + "#" + errLine + ": " + "\n" + ("An unknown error occurred: " + Std.string(err))); } } else { throw _g; } } }; polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByPathAsync = function(path) { var promise = new lime_app_Promise(); polymod_Polymod.assetLibrary.loadText(path).onComplete(function(text) { try { polymod_hscript__$internal_PolymodScriptClass.registerScriptClassByString(text); promise.complete(true); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof polymod_hscript__$internal_ErrorEx)) { var err = _g1; var errLine = "" + err.line; var _g1 = err.e; if(_g1._hx_index == 1) { var s = _g1.s; polymod_Polymod.error("script_parse_error","Error while parsing function " + path + "#" + errLine + ": EUnexpected" + "\n" + ("Unexpected error: Unexpected token \"" + s + "\", is there invalid syntax on this line?")); } else { polymod_Polymod.error("script_parse_error","Error while executing function " + path + "#" + errLine + ": " + "\n" + ("An unknown error occurred: " + Std.string(err))); } promise.error(err); } else { throw _g; } } }).onError(function(err) { polymod_Polymod.error("script_parse_error","Error while parsing function " + path + ": " + "\n" + ("An unknown error occurred: " + err)); promise.error(err); }); return promise.future.result(); }; polymod_hscript__$internal_PolymodScriptClass.listScriptClasses = function() { var result = []; var h = polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var key1 = _g_key; var _value = _g_value; result.push(key1); } return result; }; polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending = function(clsPath) { var result = []; var h = polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors.h; var _g_h = h; var _g_keys = Object.keys(h); var _g_length = _g_keys.length; var _g_current = 0; while(_g_current < _g_length) { var key = _g_keys[_g_current++]; var _g_key = key; var _g_value = _g_h[key]; var key1 = _g_key; var value = _g_value; var superClasses = polymod_hscript__$internal_PolymodScriptClass.getSuperClasses(value); if(superClasses.indexOf(clsPath) != -1) { result.push(key1); } } return result; }; polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtendingClass = function(cls) { return polymod_hscript__$internal_PolymodScriptClass.listScriptClassesExtending(cls.__name__); }; polymod_hscript__$internal_PolymodScriptClass.getSuperClasses = function(classDecl) { if(classDecl.extend == null) { return []; } var extendString = new hscript_Printer().typeToString(classDecl.extend); if(classDecl.pkg != null && extendString.indexOf(".") == -1) { var extendPkg = classDecl.pkg.join("."); extendString = "" + extendPkg + "." + extendString; } var classDescriptor = polymod_hscript__$internal_PolymodInterpEx.findScriptClassDescriptor(extendString); if(classDescriptor != null) { var result = [extendString]; return result.concat(polymod_hscript__$internal_PolymodScriptClass.getSuperClasses(classDescriptor)); } else { if(extendString.indexOf("<") != -1) { extendString = extendString.split("<")[0]; } var superCls = null; if(Object.prototype.hasOwnProperty.call(classDecl.imports.h,extendString)) { var importedClass = classDecl.imports.h[extendString]; if(importedClass != null && importedClass.cls == null) { var clsName = classDecl.pkg != null ? "" + classDecl.pkg.join(".") + "." + classDecl.name : classDecl.name; polymod_Polymod.error("script_parse_error","Could not parse superclass \"" + classDecl.name + "\" of scripted class \"" + clsName + "\". The superclass may be blacklisted."); return []; } else if(importedClass != null) { superCls = importedClass.cls; } } if(superCls == null) { superCls = $hxClasses[extendString]; } if(superCls != null) { var result = []; while(superCls != null) { result.push(superCls.__name__); superCls = superCls.__super__; } return result; } else { var clsName = classDecl.pkg != null ? "" + classDecl.pkg.join(".") + "." + classDecl.name : classDecl.name; polymod_Polymod.error("script_parse_error","Could not parse superclass \"" + extendString + "\" of scripted class \"" + clsName + "\". Are you sure that the superclass exists?"); return []; } } }; polymod_hscript__$internal_PolymodScriptClass.createScriptClassInstance = function(name,args) { return polymod_hscript__$internal_PolymodScriptClass.scriptInterp.createScriptClassInstance(name,args); }; polymod_hscript__$internal_PolymodScriptClass.prototype = { __superClassFieldList: null ,superHasField: function(name) { if(this.superClass == null) { return false; } if(this.__superClassFieldList == null) { this.__superClassFieldList = Reflect.fields(this.superClass).concat(Type.getInstanceFields(js_Boot.getClass(this.superClass))); } return this.__superClassFieldList.indexOf(name) != -1; } ,createSuperClass: function(args) { if(args == null) { args = []; } var fullExtendString = new hscript_Printer().typeToString(this._c.extend); if(fullExtendString.indexOf("<") != -1) { fullExtendString = fullExtendString.split("<")[0]; } var fullExtendStringParts = fullExtendString.split("."); var extendString = fullExtendStringParts[fullExtendStringParts.length - 1]; var classDescriptor = polymod_hscript__$internal_PolymodInterpEx.findScriptClassDescriptor(extendString); if(classDescriptor != null) { var abstractSuperClass = new polymod_hscript__$internal_PolymodScriptClass(classDescriptor,args); this.superClass = abstractSuperClass; } else { var clsToCreate = null; if(Object.prototype.hasOwnProperty.call(polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h,fullExtendString)) { clsToCreate = polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides.h[fullExtendString]; if(clsToCreate == null) { this._interp.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass(fullExtendString,"WHY?")); } } else if(Object.prototype.hasOwnProperty.call(this._c.imports.h,extendString)) { clsToCreate = this._c.imports.h[extendString].cls; if(clsToCreate == null) { this._interp.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass(extendString,"target class blacklisted")); } } else { this._interp.errorEx(polymod_hscript__$internal_ErrorDefEx.EClassUnresolvedSuperclass(extendString,"missing import")); } this.superClass = Type.createInstance(clsToCreate,args); } } ,reportError: function(err,fnName) { var errEx = polymod_hscript__$internal_ErrorExUtil.toErrorEx(err); this.reportErrorEx(errEx,fnName); } ,reportErrorEx: function(err,fnName) { var errLine = "" + err.line; var _g = err.e; switch(_g._hx_index) { case 5: var v = _g.v; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": EUnknownVariable" + "\n" + ("UnknownVariable error: Tried to access \"" + v + "\", an unknown variable or identifier.")); break; case 8: var f = _g.f; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": EInvalidAccess" + "\n" + ("InvalidAccess error: Tried to access \"" + f + "\", but it is not a valid field or method. Is the target object null?")); break; case 9: var m = _g.m; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("Could not resolve imported module type \"" + m + "\".")); break; case 10: var m = _g.m; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("Imported module \"" + m + "\" has been blacklisted.")); break; case 11: var f = _g.f; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("Could not call function \"" + f + "\" on scripted class. Did you try obj.scriptCall(\"" + f + "\", [...])?")); break; case 12: var v = _g.v; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("Could not retrieve variable \"" + v + "\" on scripted class. Did you try obj.scriptGet(\"" + v + "\")?")); break; case 13: var v = _g.v; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("Could not assign variable \"" + v + "\" on scripted class. Did you try obj.scriptSet(\"" + v + "\", value)?")); break; case 14: polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + "Custom constructor does not call \"super()\"."); break; case 15: var c = _g.c; var r = _g.r; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("Could not resolve super class type \"" + c + "\" (" + r + ")")); break; case 16: var v = _g.v; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": EScriptThrow" + "\n" + ("User script threw an error: " + Std.string(v))); break; case 18: var msg = _g.msg; polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("An unknown error occurred: " + msg)); break; default: polymod_Polymod.error("script_runtime_exception","Error while executing function " + this.get_className() + "." + fnName + "()#" + errLine + ": " + "\n" + ("An unknown error occurred: " + Std.string(err))); } } ,callFunction: function(fnName,args) { var field = this.findField(fnName); var r = null; var fn = field != null ? this.findFunction(fnName,true) : null; if(fn != null) { var fn = this.findFunction(fnName); var previousValues_h = Object.create(null); var i = 0; var _g = 0; var _g1 = fn.args; while(_g < _g1.length) { var a = _g1[_g]; ++_g; var value = null; if(args != null && i < args.length) { value = args[i]; } else if(a.value != null) { value = this._interp.expr(a.value); } if(Object.prototype.hasOwnProperty.call(this._interp.variables.h,a.name)) { previousValues_h[a.name] = this._interp.variables.h[a.name]; } this._interp.variables.h[a.name] = value; ++i; } try { r = this._interp.executeEx(fn.expr); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; var _g1 = haxe_Exception.caught(_g).unwrap(); if(((_g1) instanceof polymod_hscript__$internal_ErrorEx)) { var err = _g1; this.reportErrorEx(err,fnName); this.purgeFunction(fnName); return null; } else if(((_g1) instanceof hscript_Error)) { var err = _g1; this.reportError(err,fnName); this.purgeFunction(fnName); return null; } else { throw _g; } } var _g = 0; var _g1 = fn.args; while(_g < _g1.length) { var a = _g1[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(previousValues_h,a.name)) { this._interp.variables.h[a.name] = previousValues_h[a.name]; } else { var key = a.name; var _this = this._interp.variables; if(Object.prototype.hasOwnProperty.call(_this.h,key)) { delete(_this.h[key]); } } } } else { var fixedArgs = []; var fixedName = "__super_" + fnName; var _g = 0; while(_g < args.length) { var a = args[_g]; ++_g; if(((a) instanceof polymod_hscript__$internal_PolymodScriptClass)) { fixedArgs.push((js_Boot.__cast(a , polymod_hscript__$internal_PolymodScriptClass)).superClass); } else { fixedArgs.push(a); } } var fn = Reflect.field(this.superClass,fixedName); if(fn == null) { polymod_Polymod.error("script_runtime_exception","Error while calling function super." + fnName + "(): EInvalidAccess" + "\n" + ("InvalidAccess error: Super function \"" + fnName + "\" does not exist! Define it or call the correct superclass function.")); } r = fn.apply(this.superClass,fixedArgs); } return r; } ,_c: null ,_interp: null ,superClass: null ,className: null ,get_className: function() { var name = ""; if(this._c.pkg != null) { name += this._c.pkg.join("."); } name += this._c.name; return name; } ,superConstructor: function(arg0,arg1,arg2,arg3) { if(arg3 == null) { arg3 = polymod_hscript__$internal_Param.Unused; } if(arg2 == null) { arg2 = polymod_hscript__$internal_Param.Unused; } if(arg1 == null) { arg1 = polymod_hscript__$internal_Param.Unused; } if(arg0 == null) { arg0 = polymod_hscript__$internal_Param.Unused; } var args = []; if(arg0 != polymod_hscript__$internal_Param.Unused) { args.push(arg0); } if(arg1 != polymod_hscript__$internal_Param.Unused) { args.push(arg1); } if(arg2 != polymod_hscript__$internal_Param.Unused) { args.push(arg2); } if(arg3 != polymod_hscript__$internal_Param.Unused) { args.push(arg3); } this.createSuperClass(args); } ,callFunction0: function(name) { return this.callFunction(name); } ,callFunction1: function(name,arg0) { return this.callFunction(name,[arg0]); } ,callFunction2: function(name,arg0,arg1) { return this.callFunction(name,[arg0,arg1]); } ,callFunction3: function(name,arg0,arg1,arg2) { return this.callFunction(name,[arg0,arg1,arg2]); } ,callFunction4: function(name,arg0,arg1,arg2,arg3) { return this.callFunction(name,[arg0,arg1,arg2,arg3]); } ,callFunction5: function(name,arg0,arg1,arg2,arg3,arg4) { return this.callFunction(name,[arg0,arg1,arg2,arg3,arg4]); } ,callFunction6: function(name,arg0,arg1,arg2,arg3,arg4,arg5) { return this.callFunction(name,[arg0,arg1,arg2,arg3,arg4,arg5]); } ,callFunction7: function(name,arg0,arg1,arg2,arg3,arg4,arg5,arg6) { return this.callFunction(name,[arg0,arg1,arg2,arg3,arg4,arg5,arg6]); } ,callFunction8: function(name,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) { return this.callFunction(name,[arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7]); } ,findFunction: function(name,cacheOnly) { if(cacheOnly == null) { cacheOnly = true; } if(this._cachedFunctionDecls != null) { return this._cachedFunctionDecls.h[name]; } if(cacheOnly) { return null; } var _g = 0; var _g1 = this._c.fields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; if(f.name == name) { var _g2 = f.kind; if(_g2._hx_index == 0) { var fn = _g2.f; return fn; } } } return null; } ,purgeFunction: function(name) { if(this._cachedFunctionDecls != null) { var _this = this._cachedFunctionDecls; if(Object.prototype.hasOwnProperty.call(_this.h,name)) { delete(_this.h[name]); } } } ,findVar: function(name,cacheOnly) { if(cacheOnly == null) { cacheOnly = false; } var tmp = this._cachedVarDecls != null; if(cacheOnly) { return null; } var _g = 0; var _g1 = this._c.fields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; if(f.name == name) { var _g2 = f.kind; if(_g2._hx_index == 1) { var v = _g2.v; return v; } } } return null; } ,findField: function(name,cacheOnly) { if(cacheOnly == null) { cacheOnly = true; } if(this._cachedFieldDecls != null) { return this._cachedFieldDecls.h[name]; } if(cacheOnly) { return null; } var _g = 0; var _g1 = this._c.fields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; if(f.name == name) { return f; } } return null; } ,listFunctions: function() { return this._cachedFunctionDecls; } ,_cachedFieldDecls: null ,_cachedFunctionDecls: null ,_cachedVarDecls: null ,buildCaches: function() { this._cachedFieldDecls = new haxe_ds_StringMap(); this._cachedFunctionDecls = new haxe_ds_StringMap(); this._cachedVarDecls = new haxe_ds_StringMap(); var _g = 0; var _g1 = this._c.fields; while(_g < _g1.length) { var f = _g1[_g]; ++_g; this._cachedFieldDecls.h[f.name] = f; var _g2 = f.kind; switch(_g2._hx_index) { case 0: var fn = _g2.f; this._cachedFunctionDecls.h[f.name] = fn; break; case 1: var v = _g2.v; this._cachedVarDecls.h[f.name] = v; if(v.expr != null) { var varValue = this._interp.expr(v.expr); this._interp.variables.h[f.name] = varValue; } break; } } } ,__class__: polymod_hscript__$internal_PolymodScriptClass ,__properties__: {get_className:"get_className"} }; var polymod_util_DefineUtil = function() { }; $hxClasses["polymod.util.DefineUtil"] = polymod_util_DefineUtil; polymod_util_DefineUtil.__name__ = "polymod.util.DefineUtil"; var polymod_util_DependencyUtil = function() { }; $hxClasses["polymod.util.DependencyUtil"] = polymod_util_DependencyUtil; polymod_util_DependencyUtil.__name__ = "polymod.util.DependencyUtil"; polymod_util_DependencyUtil.sortByDependencies = function(modList,skipErrors) { if(skipErrors == null) { skipErrors = false; } if(skipErrors) { var filteredMods = polymod_util_DependencyUtil.filterDependencies(modList); var result = new Array(filteredMods.length); var _g = 0; var _g1 = filteredMods.length; while(_g < _g1) { var i = _g++; result[i] = filteredMods[i].id; } var test = result; return polymod_util_DependencyUtil.buildTopologyForDependencies(filteredMods,true); } else { if(!polymod_util_DependencyUtil.validateDependencies(modList)) { return []; } return polymod_util_DependencyUtil.buildTopologyForDependencies(modList,false); } }; polymod_util_DependencyUtil.filterDependencies = function(modList) { var result = []; var deps = polymod_util_DependencyUtil.compileDependencies(modList); var relevantMods = []; var _g = 0; while(_g < modList.length) { var mod = modList[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(deps.h,mod.id)) { relevantMods.push(mod); } } var h = deps.h; var dep_h = h; var dep_keys = Object.keys(h); var dep_length = dep_keys.length; var dep_current = 0; while(dep_current < dep_length) { var dep = dep_keys[dep_current++]; var depRule = deps.h[dep]; var depMod = null; var _g = 0; while(_g < relevantMods.length) { var mod = relevantMods[_g]; ++_g; if(mod.id == dep) { depMod = mod; break; } } if(depMod == null) { polymod_Polymod.warning("dependency_unmet","Dependency \"" + dep + "\" not found."); continue; } var version = depMod.modVersion; if(version == null || depRule == null ? false : thx_semver_VersionRule.isSatisfiedBy(depRule,thx_semver_Version.stringToVersion("" + version.version[0] + "." + version.version[1] + "." + version.version[2]))) { result.push(depMod); } else { polymod_Polymod.warning("dependency_version_mismatch","Dependency \"" + dep + "\" has version \"" + (depMod.modVersion == null ? "null" : thx_semver_Version.toString(depMod.modVersion)) + "\" but requires \"" + (depRule == null ? "null" : thx_semver_VersionRule.toString(depRule)) + "\"."); continue; } } return result; }; polymod_util_DependencyUtil.validateDependencies = function(modList) { var deps = polymod_util_DependencyUtil.compileDependencies(modList); var relevantMods = []; var _g = 0; while(_g < modList.length) { var mod = modList[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(deps.h,mod.id)) { relevantMods.push(mod); } } var h = deps.h; var dep_h = h; var dep_keys = Object.keys(h); var dep_length = dep_keys.length; var dep_current = 0; while(dep_current < dep_length) { var dep = dep_keys[dep_current++]; var depRule = deps.h[dep]; var depMod = null; var _g = 0; while(_g < relevantMods.length) { var mod = relevantMods[_g]; ++_g; if(mod.id == dep) { depMod = mod; break; } } if(depMod == null) { polymod_Polymod.error("dependency_unmet","Dependency \"" + dep + "\" not found."); return false; } var version = depMod.modVersion; if(version == null || depRule == null ? false : thx_semver_VersionRule.isSatisfiedBy(depRule,thx_semver_Version.stringToVersion("" + version.version[0] + "." + version.version[1] + "." + version.version[2]))) { continue; } else { polymod_Polymod.error("dependency_version_mismatch","Dependency \"" + dep + "\" has version \"" + (depMod.modVersion == null ? "null" : thx_semver_Version.toString(depMod.modVersion)) + "\" but requires \"" + (depRule == null ? "null" : thx_semver_VersionRule.toString(depRule)) + "\"."); return false; } } return true; }; polymod_util_DependencyUtil.buildTopologyForDependencies = function(modList,skipErrors) { if(skipErrors == null) { skipErrors = false; } var dependencies = new haxe_ds_StringMap(); var _g = 0; while(_g < modList.length) { var mod = modList[_g]; ++_g; if(!Object.prototype.hasOwnProperty.call(dependencies.h,mod.id)) { dependencies.h[mod.id] = []; } var deps = mod.dependencies; if(deps != null) { var h = deps.h; var depKey_h = h; var depKey_keys = Object.keys(h); var depKey_length = depKey_keys.length; var depKey_current = 0; while(depKey_current < depKey_length) { var depKey = depKey_keys[depKey_current++]; if(Object.prototype.hasOwnProperty.call(dependencies.h,mod.id)) { dependencies.h[mod.id].push(depKey); } else { dependencies.h[mod.id] = [depKey]; } } } } var _g = 0; while(_g < modList.length) { var mod = modList[_g]; ++_g; var optDeps = mod.optionalDependencies; if(optDeps != null) { var h = optDeps.h; var depKey_h = h; var depKey_keys = Object.keys(h); var depKey_length = depKey_keys.length; var depKey_current = 0; while(depKey_current < depKey_length) { var depKey = depKey_keys[depKey_current++]; if(Object.prototype.hasOwnProperty.call(dependencies.h,depKey)) { dependencies.h[mod.id].push(depKey); } } } } return polymod_util_DependencyUtil.buildTopology_Recursive(modList,dependencies,skipErrors); }; polymod_util_DependencyUtil.buildTopology_Recursive = function(modList,dependencies,skipErrors) { if(skipErrors == null) { skipErrors = false; } if(modList.length == 0) { return []; } var result = []; var rootLevelMods = []; var _g = 0; while(_g < modList.length) { var mod = modList[_g]; ++_g; if(!Object.prototype.hasOwnProperty.call(dependencies.h,mod.id) || dependencies.h[mod.id].length == 0) { rootLevelMods.push(mod.id); } } if(rootLevelMods.length == 0) { var result1 = new Array(modList.length); var _g = 0; var _g1 = modList.length; while(_g < _g1) { var i = _g++; result1[i] = modList[i].id; } var modList1 = result1.join(", "); if(skipErrors) { polymod_Polymod.warning("dependency_cyclical","Circular dependency detected between mods: " + modList1); return []; } else { polymod_Polymod.error("dependency_cyclical","Circular dependency detected between mods: " + modList1); return null; } } var childLevelMods = []; var _g = 0; while(_g < modList.length) { var modData = modList[_g]; ++_g; if(rootLevelMods.indexOf(modData.id) != -1) { result.push(modData); var key = modData.id; if(Object.prototype.hasOwnProperty.call(dependencies.h,key)) { delete(dependencies.h[key]); } var h = dependencies.h; var depKey_h = h; var depKey_keys = Object.keys(h); var depKey_length = depKey_keys.length; var depKey_current = 0; while(depKey_current < depKey_length) { var depKey = depKey_keys[depKey_current++]; var depList = dependencies.h[depKey]; var index = depList.indexOf(modData.id); if(index != -1) { depList.splice(index,1); } } } else { childLevelMods.push(modData); } } var innerResult = polymod_util_DependencyUtil.buildTopology_Recursive(childLevelMods,dependencies,skipErrors); if(innerResult == null) { return null; } return result.concat(innerResult); }; polymod_util_DependencyUtil.compileDependencies = function(modList) { var result = new haxe_ds_StringMap(); var _g = 0; while(_g < modList.length) { var mod = modList[_g]; ++_g; if(result.h[mod.id] == null) { var v = polymod_util_VersionUtil.DEFAULT_VERSION_RULE; result.h[mod.id] = v; } if(mod.dependencies != null) { var h = mod.dependencies.h; var dependencyId_h = h; var dependencyId_keys = Object.keys(h); var dependencyId_length = dependencyId_keys.length; var dependencyId_current = 0; while(dependencyId_current < dependencyId_length) { var dependencyId = dependencyId_keys[dependencyId_current++]; var dependencyRule = mod.dependencies.h[dependencyId]; if(result.h[dependencyId] != null) { var v1 = thx_semver_VersionComparator.AndRule(result.h[dependencyId],dependencyRule); result.h[dependencyId] = v1; } else { result.h[dependencyId] = dependencyRule; } } } } return result; }; var polymod_util_Util = function() { }; $hxClasses["polymod.util.Util"] = polymod_util_Util; polymod_util_Util.__name__ = "polymod.util.Util"; polymod_util_Util.filterUnique_String = function(input) { var output = []; var _g = 0; while(_g < input.length) { var item = input[_g]; ++_g; if(output.indexOf(item) == -1) { output.push(item); } } return output; }; polymod_util_Util.listAllParentDirs = function(filePath) { var parentDirs = []; var parentDir = filePath; while(parentDir != null && parentDir != "") { parentDirs.push(parentDir); parentDir = haxe_io_Path.directory(parentDir); if(parentDirs.indexOf(parentDir) != -1) { parentDir = null; } } return parentDirs; }; polymod_util_Util.mergeAndAppendText = function(baseText,id,dirs,getModText,fileSystem,parseRules) { var text = baseText; var _g = 0; while(_g < dirs.length) { var d = dirs[_g]; ++_g; var theDir = d; if(theDir == null) { theDir = ""; } if(fileSystem.exists(polymod_util_Util.pathSpecial(id,polymod_PolymodConfig.get_mergeFolder(),theDir))) { text = polymod_util_Util.mergeText(text,id,d,getModText,parseRules); } var theDir1 = d; if(theDir1 == null) { theDir1 = ""; } if(fileSystem.exists(polymod_util_Util.pathSpecial(id,polymod_PolymodConfig.get_appendFolder(),theDir1))) { text = polymod_util_Util.appendText(text,id,d,getModText,parseRules); } } return text; }; polymod_util_Util.filterASCII = function(str) { var filtered = ""; var _g = 0; var _g1 = str.length; while(_g < _g1) { var i = _g++; var c = HxOverrides.cca(str,i); if(c >= 32 && c <= 126) { filtered += str.charAt(i); } } return filtered; }; polymod_util_Util.mergeText = function(baseText,id,theDir,getModText,parseRules) { if(theDir == null) { theDir = ""; } var extension = polymod_util_Util.uExtension(id,true); var id1 = id; if(polymod_util_Util.uIndexOf(id1,"assets/") == 0) { id1 = polymod_util_Util.uSubstring(id1,7); } id = id1; var mergeFile = polymod_PolymodConfig.get_mergeFolder() + polymod_util_Util.sl() + id; var format = parseRules.get(id); if(format == null) { format = parseRules.get(extension); } if(format != null) { var mergeText = getModText(mergeFile,theDir); return format.merge(baseText,mergeText,id); } else { polymod_Polymod.error("merge_error","Could not merge file (" + id + "), no parse format was specified for extension (" + extension + ")."); return baseText; } }; polymod_util_Util.appendText = function(baseText,id,theDir,getModText,parseRules) { var extension = polymod_util_Util.uExtension(id,true); var id1 = id; if(polymod_util_Util.uIndexOf(id1,"assets/") == 0) { id1 = polymod_util_Util.uSubstring(id1,7); } id = id1; var format = parseRules.get(id); if(format == null) { format = parseRules.get(extension); } if(format != null) { var appendText = getModText(polymod_util_Util.pathJoin(polymod_PolymodConfig.get_appendFolder(),id),theDir); return format.append(baseText,appendText,id); } return baseText; }; polymod_util_Util.appendCSVOrTSV = function(baseText,appendText,id) { var lastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1); var lastLastChar = polymod_util_Util.uCharAt(baseText,polymod_util_Util.uLength(baseText) - 1); var joiner = ""; var endLine = "\n"; var crIndex = polymod_util_Util.uIndexOf(baseText,"\r"); var lfIndex = polymod_util_Util.uIndexOf(baseText,"\n"); if(crIndex != -1 && lfIndex == crIndex + 1) { endLine = "\r\n"; } if(lastChar != "\n") { joiner = endLine; } var otherEndline = endLine == "\n" ? "\r\n" : "\n"; appendText = polymod_util_Util.uSplitReplace(appendText,otherEndline,endLine); return polymod_util_Util.uCombine([baseText,joiner,appendText]); }; polymod_util_Util.appendSpecialXML = function(a,b,headers,footers) { a = polymod_util_Util.stripXML(a,true,true,headers,footers); b = polymod_util_Util.stripXML(b,true,true,headers,footers); var txt = ""; txt = polymod_util_Util.uCat(txt,""); txt = polymod_util_Util.uCat(txt,a); txt = polymod_util_Util.uCat(txt,b); txt = polymod_util_Util.uCat(txt,""); return txt; }; polymod_util_Util.appendXML = function(a,b) { a = polymod_util_Util.stripXML(a,false,true); b = polymod_util_Util.stripXML(b,true,false); var txt = polymod_util_Util.uCat(a,b); return txt; }; polymod_util_Util.stripComments = function(txt) { var start = polymod_util_Util.uIndexOf(txt,""); while(start != -1 && end != -1) { var len = polymod_util_Util.uLength(txt); var before = polymod_util_Util.uSubstr(txt,0,start); var after = polymod_util_Util.uSubstr(txt,end + 3,len - (end + 3)); txt = polymod_util_Util.uCat(before,after); start = polymod_util_Util.uIndexOf(txt,""); } return txt; }; polymod_util_Util.stripPathPrefix = function(value,prefix) { var result = value; if(result.indexOf(prefix) == 0) { result = HxOverrides.substr(result,prefix.length,null); } if(result.indexOf("/") == 0) { result = HxOverrides.substr(result,1,null); } return result; }; polymod_util_Util.trimLeadingWhiteSpace = function(txt) { var white = ["\r","\n"," ","\t"]; var len = polymod_util_Util.uLength(txt); var _g = 0; while(_g < white.length) { var w = white[_g]; ++_g; while(polymod_util_Util.uIndexOf(txt,w) == 0) { txt = polymod_util_Util.uSubstr(txt,1,len - 1); --len; } } return txt; }; polymod_util_Util.trimTrailingWhiteSpace = function(txt) { var white = ["\r","\n"," ","\t"]; var len = polymod_util_Util.uLength(txt); var _g = 0; while(_g < white.length) { var w = white[_g]; ++_g; while(polymod_util_Util.uCharAt(txt,len - 1) == w) { txt = polymod_util_Util.uSubstr(txt,0,len - 1); --len; } } return txt; }; polymod_util_Util.stripXML = function(txt,stripHeader,stripFooter,headers,footers) { if(stripFooter == null) { stripFooter = true; } if(stripHeader == null) { stripHeader = true; } txt = polymod_util_Util.stripComments(txt); if(stripHeader) { if(polymod_util_Util.uIndexOf(txt,""); txt = polymod_util_Util.uSubstr(txt,i + 1,polymod_util_Util.uLength(txt) - (i + 1)); txt = polymod_util_Util.trimLeadingWhiteSpace(txt); } if(polymod_util_Util.uIndexOf(txt,""); txt = polymod_util_Util.uSubstr(txt,i + 1,polymod_util_Util.uLength(txt) - (i + 1)); txt = polymod_util_Util.trimLeadingWhiteSpace(txt); } if(headers != null) { var _g = 0; while(_g < headers.length) { var header = headers[_g]; ++_g; if(polymod_util_Util.uIndexOf(txt,header) == 0) { var i = polymod_util_Util.uIndexOf(txt,">"); txt = polymod_util_Util.uSubstr(txt,i + 1,polymod_util_Util.uLength(txt) - (i + 1)); txt = polymod_util_Util.trimLeadingWhiteSpace(txt); } } } } if(stripFooter) { txt = polymod_util_Util.trimTrailingWhiteSpace(txt); var ulen = polymod_util_Util.uLength(txt); if(polymod_util_Util.uLastIndexOf(txt,"
") == ulen - 7) { txt = polymod_util_Util.uSubstr(txt,0,ulen - 7); } if(footers != null) { var _g = 0; while(_g < footers.length) { var footer = footers[_g]; ++_g; txt = polymod_util_Util.trimTrailingWhiteSpace(txt); var ulen = polymod_util_Util.uLength(txt); var footerlen = polymod_util_Util.uLength(footer); if(polymod_util_Util.uLastIndexOf(txt,footer) == ulen - footerlen) { txt = polymod_util_Util.uSubstr(txt,0,ulen - footerlen); } } } } return txt; }; polymod_util_Util.pathMerge = function(id,theDir) { if(theDir == null) { theDir = ""; } return polymod_util_Util.pathSpecial(id,polymod_PolymodConfig.get_mergeFolder(),theDir); }; polymod_util_Util.pathAppend = function(id,theDir) { if(theDir == null) { theDir = ""; } return polymod_util_Util.pathSpecial(id,polymod_PolymodConfig.get_appendFolder(),theDir); }; polymod_util_Util.stripAssetsPrefix = function(id) { if(polymod_util_Util.uIndexOf(id,"assets/") == 0) { id = polymod_util_Util.uSubstring(id,7); } return id; }; polymod_util_Util.pathSpecial = function(id,special,theDir) { if(theDir == null) { theDir = ""; } if(special == null) { special = ""; } var id1 = id; if(polymod_util_Util.uIndexOf(id1,"assets/") == 0) { id1 = polymod_util_Util.uSubstring(id1,7); } id = id1; var thePath = polymod_util_Util.uCombine([theDir,polymod_util_Util.sl(),special,polymod_util_Util.sl(),id]); return thePath; }; polymod_util_Util.pathJoin = function(a,b) { var aSlash = polymod_util_Util.uLastIndexOf(a,"/") == polymod_util_Util.uLength(a) - 1 || polymod_util_Util.uLastIndexOf(a,"\\") == polymod_util_Util.uLength(a) - 1; var bSlash = polymod_util_Util.uIndexOf(b,"/") == 0 || polymod_util_Util.uIndexOf(b,"\\") == 0; var str = ""; if(aSlash || bSlash) { str = polymod_util_Util.uCombine([a,b]); } else { str = polymod_util_Util.uCombine([a,polymod_util_Util.sl(),b]); } str = polymod_util_Util.cleanSlashes(str); return str; }; polymod_util_Util.cleanSlashes = function(str) { str = polymod_util_Util.uSplitReplace(str,"\\","/"); str = polymod_util_Util.uSplitReplace(str,"//","/"); return str; }; polymod_util_Util.sl = function() { return "/"; }; polymod_util_Util.copyXml = function(data,parent) { var c = null; if(data.nodeType == Xml.Element) { if(data.nodeType != Xml.Element) { throw haxe_Exception.thrown("Bad node type, expected Element but found " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } c = Xml.createElement(data.nodeName); var att = data.attributes(); while(att.hasNext()) { var att1 = att.next(); c.set(att1,data.get(att1)); } var el = data.elements(); while(el.hasNext()) { var el1 = el.next(); c.addChild(polymod_util_Util.copyXml(el1,c)); } } else if(data.nodeType == Xml.PCData) { if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } c = Xml.createPCData(data.nodeValue); } else if(data.nodeType == Xml.CData) { if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } c = Xml.createCData(data.nodeValue); } else if(data.nodeType == Xml.Comment) { if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } c = Xml.createComment(data.nodeValue); } else if(data.nodeType == Xml.DocType) { if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } c = Xml.createDocType(data.nodeValue); } else if(data.nodeType == Xml.ProcessingInstruction) { if(data.nodeType == Xml.Document || data.nodeType == Xml.Element) { throw haxe_Exception.thrown("Bad node type, unexpected " + (data.nodeType == null ? "null" : XmlType.toString(data.nodeType))); } c = Xml.createProcessingInstruction(data.nodeValue); } else if(data.nodeType == Xml.Document) { c = Xml.createDocument(); var el = data.elements(); while(el.hasNext()) { var el1 = el.next(); c.addChild(polymod_util_Util.copyXml(el1,c)); } } c.parent = parent; return c; }; polymod_util_Util.unzipBytes = function(compressedBytes) { var returnBuf = new haxe_io_BytesBuffer(); var bytesInput = new haxe_io_BytesInput(compressedBytes); var inflater = new haxe_zip_InflateImpl(bytesInput,false,false); var unzipBuf = new haxe_io_Bytes(new ArrayBuffer(65535)); var bytesRead = inflater.readBytes(unzipBuf,0,unzipBuf.length); while(bytesRead == unzipBuf.length) { returnBuf.addBytes(unzipBuf,0,bytesRead); bytesRead = inflater.readBytes(unzipBuf,0,unzipBuf.length); } returnBuf.addBytes(unzipBuf,0,bytesRead); return returnBuf.getBytes(); }; polymod_util_Util.uCat = function(a,b) { var sb_b = ""; sb_b += Std.string(a == null ? "null" : "" + a); sb_b += Std.string(b == null ? "null" : "" + b); return sb_b; }; polymod_util_Util.uCharAt = function(str,index) { return str.charAt(index); }; polymod_util_Util.uJoin = function(arr,token) { var sb_b = ""; var i = 0; var _g = 0; while(_g < arr.length) { var str = arr[_g]; ++_g; sb_b += str == null ? "null" : "" + str; if(i != arr.length - 1) { sb_b += token == null ? "null" : "" + token; } ++i; } return sb_b; }; polymod_util_Util.uCombine = function(arr) { var sb_b = ""; var _g = 0; while(_g < arr.length) { var str = arr[_g]; ++_g; sb_b += str == null ? "null" : "" + str; } return sb_b; }; polymod_util_Util.uExtension = function(str,lowerCase) { if(lowerCase == null) { lowerCase = false; } var i = polymod_util_Util.uLastIndexOf(str,"."); var extension = polymod_util_Util.uSubstr(str,i + 1,polymod_util_Util.uLength(str) - (i + 1)); if(lowerCase) { extension = extension.toLowerCase(); } return extension; }; polymod_util_Util.uIndexOf = function(str,substr,startIndex) { return str.indexOf(substr,startIndex); }; polymod_util_Util.uLastIndexOf = function(str,value,startIndex) { return str.lastIndexOf(value,startIndex); }; polymod_util_Util.uLength = function(str) { return str.length; }; polymod_util_Util.uPathPop = function(str) { var path = str.split("/"); path.pop(); return path.join("/"); }; polymod_util_Util.uTrimFinalCharIf = function(str,match) { var uLength = polymod_util_Util.uLength(str); var last = polymod_util_Util.uLastIndexOf(str,match); if(last == uLength - 1) { str = polymod_util_Util.uSubstr(str,0,uLength - 1); uLength = polymod_util_Util.uLength(str); } return str; }; polymod_util_Util.uTrimFinalEndlines = function(str) { var done = false; var fix = ""; var last = ""; while(!done) { var fix = polymod_util_Util.uTrimFinalCharIf(str,"\n"); fix = polymod_util_Util.uTrimFinalCharIf(fix,"\r"); if(fix == str) { done = true; } else { str = fix; } } return str; }; polymod_util_Util.uTrimFirstCharIf = function(str,match) { var uLength = polymod_util_Util.uLength(str); var first = polymod_util_Util.uIndexOf(str,match); if(first == 0) { str = polymod_util_Util.uSubstr(str,1,uLength); uLength = polymod_util_Util.uLength(str); } return str; }; polymod_util_Util.uTrimFirstEndlines = function(str) { var done = false; var fix = ""; var last = ""; while(!done) { var fix = polymod_util_Util.uTrimFirstCharIf(str,"\n"); fix = polymod_util_Util.uTrimFirstCharIf(fix,"\r"); if(fix == str) { done = true; } else { str = fix; } } return str; }; polymod_util_Util.uSplit = function(str,substr) { return str.split(substr); }; polymod_util_Util.uSplitReplace = function(s,substr,by) { if(polymod_util_Util.uIndexOf(s,substr) == -1) { return s; } var arr = polymod_util_Util.uSplit(s,substr); if(arr == null || arr.length < 2) { return s; } var sb_b = ""; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var bit = arr[i]; sb_b += bit == null ? "null" : "" + bit; if(i != arr.length - 1) { sb_b += by == null ? "null" : "" + by; } } return sb_b; }; polymod_util_Util.uSubstr = function(str,pos,len) { return HxOverrides.substr(str,pos,len); }; polymod_util_Util.uSubstring = function(str,startIndex,endIndex) { return str.substring(startIndex,endIndex); }; var polymod_util_VersionUtil = function() { }; $hxClasses["polymod.util.VersionUtil"] = polymod_util_VersionUtil; polymod_util_VersionUtil.__name__ = "polymod.util.VersionUtil"; polymod_util_VersionUtil.match = function(version,rule) { if(version == null || rule == null) { return false; } return thx_semver_VersionRule.isSatisfiedBy(rule,thx_semver_Version.stringToVersion("" + version.version[0] + "." + version.version[1] + "." + version.version[2])); }; polymod_util_VersionUtil.stripPre = function(version) { return thx_semver_Version.stringToVersion("" + version.version[0] + "." + version.version[1] + "." + version.version[2]); }; polymod_util_VersionUtil.anyPatch = function(version) { return thx_semver_VersionRule.stringToVersionRule("" + version.version[0] + "." + version.version[1] + ".*"); }; polymod_util_VersionUtil.anyMinor = function(version) { return thx_semver_VersionRule.stringToVersionRule("" + version.version[0] + ".*.*"); }; polymod_util_VersionUtil.combineRulesAnd = function(ruleA,ruleB) { return thx_semver_VersionComparator.AndRule(ruleA,ruleB); }; polymod_util_VersionUtil.combineRulesOr = function(ruleA,ruleB) { return thx_semver_VersionComparator.OrRule(ruleA,ruleB); }; polymod_util_VersionUtil.combineMultipleRulesAnd = function(rules) { if(rules == null || rules.length == 0) { return polymod_util_VersionUtil.DEFAULT_VERSION_RULE; } if(rules.length == 1) { return rules[0]; } return Lambda.fold(rules.slice(1),function(a,b) { return thx_semver_VersionComparator.AndRule(a,b); },rules[0]); }; polymod_util_VersionUtil.combineMultipleRulesOr = function(rules) { if(rules == null || rules.length == 0) { return polymod_util_VersionUtil.DEFAULT_VERSION_RULE; } if(rules.length == 1) { return rules[0]; } return Lambda.fold(rules.slice(1),function(a,b) { return thx_semver_VersionComparator.OrRule(a,b); },rules[0]); }; var thx_Arrays = function() { }; $hxClasses["thx.Arrays"] = thx_Arrays; thx_Arrays.__name__ = "thx.Arrays"; thx_Arrays.append = function(array,element) { array.push(element); return array; }; thx_Arrays.appendIf = function(array,cond,element) { if(cond) { array.push(element); } return array; }; thx_Arrays.applyIndexes = function(array,indexes,incrementDuplicates) { if(incrementDuplicates == null) { incrementDuplicates = false; } if(indexes.length != array.length) { throw new thx_Error("`Arrays.applyIndexes` can only be applied to two arrays with the same length",null,{ fileName : "thx/Arrays.hx", lineNumber : 55, className : "thx.Arrays", methodName : "applyIndexes"}); } var result = []; if(incrementDuplicates) { var usedIndexes = thx_Set.createInt(); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; var index = indexes[i]; while(usedIndexes.h.hasOwnProperty(index)) ++index; thx_Set.add(usedIndexes,index); result[index] = array[i]; } } else { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; result[indexes[i]] = array[i]; } } return result; }; thx_Arrays.monoid = function() { return { zero : [], append : function(a,b) { return a.concat(b); }}; }; thx_Arrays.after = function(array,element) { return array.slice(thx_ReadonlyArray.indexOf(array,element) + 1); }; thx_Arrays.atIndex = function(array,i) { if(i >= 0 && i < array.length) { return haxe_ds_Option.Some(array[i]); } else { return haxe_ds_Option.None; } }; thx_Arrays.getOption = function(array,i) { var value = array[i]; if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Arrays.each = function(arr,effect) { var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; effect(arr[i]); } }; thx_Arrays.eachi = function(arr,effect) { var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; effect(arr[i],i); } }; thx_Arrays.all = function(arr,predicate) { var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; if(!predicate(arr[i])) { return false; } } return true; }; thx_Arrays.any = function(arr,predicate) { var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; if(predicate(arr[i])) { return true; } } return false; }; thx_Arrays.at = function(arr,indexes) { var result = new Array(indexes.length); var _g = 0; var _g1 = indexes.length; while(_g < _g1) { var i = _g++; result[i] = arr[indexes[i]]; } return result; }; thx_Arrays.before = function(array,element) { return array.slice(0,thx_ReadonlyArray.indexOf(array,element)); }; thx_Arrays.commonsFromStart = function(self,other,equality) { if(null == equality) { equality = thx_Functions.equality; } var count = 0; var _g = 0; var _g1 = thx_Arrays.zip(self,other); while(_g < _g1.length) { var pair = _g1[_g]; ++_g; if(equality(pair._0,pair._1)) { ++count; } else { break; } } return self.slice(0,count); }; thx_Arrays.compact = function(arr) { var _g = []; var _g1 = 0; var _g2 = arr; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(null != v) { _g.push(v); } } return _g; }; thx_Arrays.compare = function(a,b) { var v = thx_Ints.compare(a.length,b.length); if(v != 0) { return v; } var _g = 0; var _g1 = a.length; while(_g < _g1) { var i = _g++; v = thx_Dynamics.compare(a[i],b[i]); if(v != 0) { return v; } } return 0; }; thx_Arrays.containsExact = function(array,element,eq) { if(null == eq) { return thx_ReadonlyArray.indexOf(array,element) >= 0; } else { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; if(eq(array[i],element)) { return true; } } return false; } }; thx_Arrays.containsEq = function(array,element,eq) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; if(eq(array[i],element)) { return true; } } return false; }; thx_Arrays.containsAllExact = function(array,elements,eq) { var el = $getIterator(elements); while(el.hasNext()) { var el1 = el.next(); if(!thx_Arrays.containsExact(array,el1,eq)) { return false; } } return true; }; thx_Arrays.containsAllEq = function(array,elements,eq) { var el = $getIterator(elements); while(el.hasNext()) { var el1 = el.next(); if(!thx_Arrays.containsEq(array,el1,eq)) { return false; } } return true; }; thx_Arrays.containsAnyExact = function(array,elements,eq) { var el = $getIterator(elements); while(el.hasNext()) { var el1 = el.next(); if(thx_Arrays.containsExact(array,el1,eq)) { return true; } } return false; }; thx_Arrays.containsAnyEq = function(array,elements,eq) { var el = $getIterator(elements); while(el.hasNext()) { var el1 = el.next(); if(thx_Arrays.containsEq(array,el1,eq)) { return true; } } return false; }; thx_Arrays.create = function(length,fillWith) { var arr = length > 0 ? new Array(length) : []; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; arr[i] = fillWith; } return arr; }; thx_Arrays.fromItem = function(t) { return [t]; }; thx_Arrays.cross = function(a,b) { var r = []; var _g_current = 0; var _g_array = a; while(_g_current < _g_array.length) { var va = _g_array[_g_current++]; var _g_current1 = 0; var _g_array1 = b; while(_g_current1 < _g_array1.length) { var vb = _g_array1[_g_current1++]; r.push([va,vb]); } } return r; }; thx_Arrays.crossMulti = function(array) { var acopy = array.slice(); var _this = acopy.shift(); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = [_this[i]]; } var result1 = result; while(acopy.length > 0) { var array = acopy.shift(); var tresult = result1; result1 = []; var _g_current = 0; var _g_array = array; while(_g_current < _g_array.length) { var v = _g_array[_g_current++]; var _g = 0; while(_g < tresult.length) { var ar = tresult[_g]; ++_g; var t = ar.slice(); t.push(v); result1.push(t); } } } return result1; }; thx_Arrays.distinct = function(array,predicate) { var result = []; if(array.length <= 1) { return array.slice(); } if(null == predicate) { predicate = thx_Functions.equality; } var _g_current = 0; var _g_array = array; while(_g_current < _g_array.length) { var v = [_g_array[_g_current++]]; var keep = !thx_Arrays.any(result,(function(v) { return function(r) { return predicate(r,v[0]); }; })(v)); if(keep) { result.push(v[0]); } } return result; }; thx_Arrays.eachPair = function(array,callback) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; var _g2 = i; var _g3 = array.length; while(_g2 < _g3) { var j = _g2++; if(!callback(array[i],array[j])) { return; } } } }; thx_Arrays.equals = function(a,b,equality) { if(a == null || b == null || a.length != b.length) { return false; } if(null == equality) { equality = thx_Functions.equality; } var _g = 0; var _g1 = a.length; while(_g < _g1) { var i = _g++; if(!equality(a[i],b[i])) { return false; } } return true; }; thx_Arrays.extract = function(a,predicate) { var _g = 0; var _g1 = a.length; while(_g < _g1) { var i = _g++; if(predicate(a[i])) { return a.splice(i,1)[0]; } } return null; }; thx_Arrays.filterNull = function(a) { var arr = []; var _g_current = 0; var _g_array = a; while(_g_current < _g_array.length) { var v = _g_array[_g_current++]; if(null != v) { arr.push(v); } } return arr; }; thx_Arrays.filterOption = function(a) { return thx_Arrays.reduce(a,function(acc,maybeV) { switch(maybeV._hx_index) { case 0: var v = maybeV.v; acc.push(v); break; case 1: break; } return acc; },[]); }; thx_Arrays.flattenOptions = function(a) { var acc = []; var _g_current = 0; var _g_array = a; while(_g_current < _g_array.length) { var e = _g_array[_g_current++]; switch(e._hx_index) { case 0: var v = e.v; acc.push(v); break; case 1: return haxe_ds_Option.None; } } return haxe_ds_Option.Some(acc); }; thx_Arrays.find = function(array,predicate) { var _g_current = 0; var _g_array = array; while(_g_current < _g_array.length) { var element = _g_array[_g_current++]; if(predicate(element)) { return element; } } return null; }; thx_Arrays.findi = function(array,predicate) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; if(predicate(array[i],i)) { return array[i]; } } return null; }; thx_Arrays.findiOption = function(array,predicate) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; if(predicate(array[i],i)) { return haxe_ds_Option.Some(array[i]); } } return haxe_ds_Option.None; }; thx_Arrays.findOption = function(array,predicate) { var _g_current = 0; var _g_array = array; while(_g_current < _g_array.length) { var element = _g_array[_g_current++]; if(predicate(element)) { return haxe_ds_Option.Some(element); } } return haxe_ds_Option.None; }; thx_Arrays.findMap = function(values,f) { var _g_current = 0; var _g_array = values; while(_g_current < _g_array.length) { var value = _g_array[_g_current++]; var opt = f(value); if(!thx_Options.isNone(opt)) { return opt; } } return haxe_ds_Option.None; }; thx_Arrays.filterMap = function(values,f) { var acc = []; var _g_current = 0; var _g_array = values; while(_g_current < _g_array.length) { var value = _g_array[_g_current++]; var _g = f(value); switch(_g._hx_index) { case 0: var v = _g.v; acc.push(v); break; case 1: break; } } return acc; }; thx_Arrays.findSome = function(options) { var _g_current = 0; var _g_array = options; while(_g_current < _g_array.length) { var option = _g_array[_g_current++]; if(!thx_Options.isNone(option)) { return option; } } return haxe_ds_Option.None; }; thx_Arrays.findIndex = function(array,predicate) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; if(predicate(array[i])) { return i; } } return -1; }; thx_Arrays.findLast = function(array,predicate) { var len = array.length; var j; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; j = len - i - 1; if(predicate(array[j])) { return array[j]; } } return null; }; thx_Arrays.first = function(array) { return array[0]; }; thx_Arrays.firstOption = function(array) { var value = array[0]; if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Arrays.flatMap = function(array,callback) { var result = new Array(array.length); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; result[i] = callback(array[i]); } return Array.prototype.concat.apply([],result); }; thx_Arrays.flatten = function(array) { return Array.prototype.concat.apply([],array); }; thx_Arrays.from = function(array,element) { return array.slice(thx_ReadonlyArray.indexOf(array,element)); }; thx_Arrays.groupByAppend = function(arr,resolver,map) { var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var v = arr[i]; var key = resolver(v); var acc = map.get(key); if(null == acc) { map.set(key,[v]); } else { acc.push(v); } } return map; }; thx_Arrays.spanByIndex = function(arr,spanKey) { var acc = []; var cur = null; var j = -1; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var k = spanKey(i); if(k == null) { throw new thx_Error("spanKey function returned null for index " + i,null,{ fileName : "thx/Arrays.hx", lineNumber : 675, className : "thx.Arrays", methodName : "spanByIndex"}); } if(cur == k) { acc[j].push(arr[i]); } else { cur = k; ++j; acc.push([arr[i]]); } } return acc; }; thx_Arrays.hasElements = function(array) { if(null != array) { return array.length > 0; } else { return false; } }; thx_Arrays.head = function(array) { return array[0]; }; thx_Arrays.ifEmpty = function(array,alt) { if(null != array && 0 != array.length) { return array; } else { return alt; } }; thx_Arrays.initial = function(array) { return array.slice(0,array.length - 1); }; thx_Arrays.intersperse = function(array,value) { return thx_Arrays.reducei(array,function(acc,v,i) { acc[i * 2] = v; return acc; },thx_Arrays.create(array.length * 2 - 1,value)); }; thx_Arrays.interspersef = function(array,f) { if(array.length == 0) { return []; } var acc = [array[0]]; var _g = 1; var _g1 = array.length; while(_g < _g1) { var i = _g++; acc.push(f()); acc.push(array[i]); } return acc; }; thx_Arrays.isEmpty = function(array) { if(null != array) { return array.length == 0; } else { return true; } }; thx_Arrays.last = function(array) { return array[array.length - 1]; }; thx_Arrays.lastOption = function(array) { var value = array[array.length - 1]; if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Arrays.map = function(array,callback) { var r = []; var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; r.push(callback(array[i])); } return r; }; thx_Arrays.mapi = function(array,callback) { var r = []; var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; r.push(callback(array[i],i)); } return r; }; thx_Arrays.mapRight = function(array,callback) { var i = array.length; var result = []; while(--i >= 0) result.push(callback(array[i])); return result; }; thx_Arrays.order = function(array,sort) { var n = array.slice(); n.sort(sort); return n; }; thx_Arrays.pull = function(array,toRemove,equality) { var _g_current = 0; var _g_array = toRemove; while(_g_current < _g_array.length) { var element = _g_array[_g_current++]; thx_Arrays.removeAll(array,element,equality); } }; thx_Arrays.pushIf = function(array,condition,value) { if(condition) { array.push(value); } return array; }; thx_Arrays.rank = function(array,compare,incrementDuplicates) { if(incrementDuplicates == null) { incrementDuplicates = true; } var r = []; var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; r.push({ _0 : array[i], _1 : i}); } var arr = r; arr.sort(function(a,b) { return compare(a._0,b._0); }); if(incrementDuplicates) { var usedIndexes = thx_Set.createInt(); return thx_Arrays.reducei(arr,function(acc,x,i) { var index = i > 0 && compare(arr[i - 1]._0,x._0) == 0 ? acc[arr[i - 1]._1] : i; while(usedIndexes.h.hasOwnProperty(index)) ++index; thx_Set.add(usedIndexes,index); acc[x._1] = index; return acc; },[]); } else { return thx_Arrays.reducei(arr,function(acc,x,i) { acc[x._1] = i > 0 && compare(arr[i - 1]._0,x._0) == 0 ? acc[arr[i - 1]._1] : i; return acc; },[]); } }; thx_Arrays.reduce = function(array,f,initial) { var _g_current = 0; var _g_array = array; while(_g_current < _g_array.length) { var v = _g_array[_g_current++]; initial = f(initial,v); } return initial; }; thx_Arrays.foldLeft = function(array,init,f) { return thx_Arrays.reduce(array,f,init); }; thx_Arrays.foldLeft1 = function(array,f) { var tail = thx_Arrays.dropLeft(array,1); var head = array[0]; if(head == null) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(thx_Arrays.reduce(tail,f,head)); } }; thx_Arrays.foldLeftEither = function(array,init,f) { var acc = thx_Either.Right(init); var _g_current = 0; var _g_array = array; while(_g_current < _g_array.length) { var a = _g_array[_g_current++]; switch(acc._hx_index) { case 0: var error = acc.value; return acc; case 1: var b = acc.value; acc = f(b,a); break; } } return acc; }; thx_Arrays.foldMap = function(array,f,m) { var result = new Array(array.length); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; result[i] = f(array[i]); } var _e = m; return thx_Arrays.reduce(result,function(a0,a1) { return thx_Monoid.append(_e,a0,a1); },thx_Monoid.get_zero(m)); }; thx_Arrays.fold = function(array,m) { return thx_Arrays.foldMap(array,thx_Functions.identity,m); }; thx_Arrays.nel = function(array) { return thx_Nel.fromArray(array); }; thx_Arrays.foldS = function(array,s) { return thx_Options.map(thx_Arrays.nel(array),function(x) { return thx_Nel.fold(x,s); }); }; thx_Arrays.resize = function(array,length,fill) { while(array.length < length) array.push(fill); array.splice(length,array.length - length); return array; }; thx_Arrays.resized = function(array,length,fill) { array = array.slice(); return thx_Arrays.resize(array,length,fill); }; thx_Arrays.reducei = function(array,f,initial) { var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; initial = f(initial,array[i],i); } return initial; }; thx_Arrays.reduceRight = function(array,f,initial) { var i = array.length; while(--i >= 0) initial = f(initial,array[i]); return initial; }; thx_Arrays.removeAll = function(array,element,equality) { if(null == equality) { equality = thx_Functions.equality; } var i = array.length; while(--i >= 0) if(equality(array[i],element)) { array.splice(i,1); } }; thx_Arrays.rest = function(array) { return array.slice(1); }; thx_Arrays.reversed = function(array) { var result = array.slice(); result.reverse(); return result; }; thx_Arrays.sample = function(array,n) { var b = array.length; if(n >= b) { n = b; } var copy = array.slice(); var result = []; var _g = 0; var _g1 = n; while(_g < _g1) { var i = _g++; result.push(copy.splice(Std.random(copy.length),1)[0]); } return result; }; thx_Arrays.sampleOne = function(array) { return array[Std.random(array.length)]; }; thx_Arrays.string = function(arr) { var f = thx_Dynamics.string; var result = new Array(arr.length); var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; result[i] = f(arr[i]); } var strings = result; return "[" + strings.join(", ") + "]"; }; thx_Arrays.shuffle = function(a) { var t = thx_Ints.range(a.length); var array = []; while(t.length > 0) { var pos = Std.random(t.length); var index = t[pos]; t.splice(pos,1); array.push(a[index]); } return array; }; thx_Arrays.split = function(array,parts) { var len = Math.ceil(array.length / parts); return thx_Arrays.splitBy(array,len); }; thx_Arrays.splitBy = function(array,len) { var res = []; var b = array.length; if(len >= b) { len = b; } var _g = 0; var _g1 = Math.ceil(array.length / len); while(_g < _g1) { var p = _g++; res.push(array.slice(p * len,(p + 1) * len)); } return res; }; thx_Arrays.splitByPad = function(arr,len,pad) { var res = thx_Arrays.splitBy(arr,len); while(res[res.length - 1].length < len) res[res.length - 1].push(pad); return res; }; thx_Arrays.tail = function(array) { return array.slice(1); }; thx_Arrays.take = function(arr,n) { return arr.slice(0,n); }; thx_Arrays.takeLast = function(arr,n) { return arr.slice(arr.length - n); }; thx_Arrays.traverseOption = function(arr,f) { return thx_Arrays.reduce(arr,function(acc,t) { return thx_Options.ap(f(t),thx_Options.map(acc,function(ux) { return function(u) { ux.push(u); return ux; }; })); },haxe_ds_Option.Some([])); }; thx_Arrays.traverseEither = function(arr,f) { return thx_Arrays.reduce(arr,function(acc,t) { return thx_Eithers.ap(f(t),thx_Eithers.map(acc,function(ux) { return function(u) { ux.push(u); return ux; }; })); },thx_Either.Right([])); }; thx_Arrays.traverseValidation = function(arr,f,s) { return thx_Arrays.reduce(arr,function(acc,t) { return thx_Validation.ap(f(t),thx_Validation.map(acc,function(ux) { return function(u) { ux.push(u); return ux; }; }),s); },thx_Either.Right([])); }; thx_Arrays.traverseValidationIndexed = function(arr,f,s) { return thx_Arrays.reducei(arr,function(acc,t,i) { return thx_Validation.ap(f(t,i),thx_Validation.map(acc,function(ux) { return function(u) { ux.push(u); return ux; }; }),s); },thx_Either.Right([])); }; thx_Arrays.rotate = function(arr) { var result = []; var _g = 0; var _g1 = arr[0].length; while(_g < _g1) { var i = _g++; var row = []; result.push(row); var _g2 = 0; var _g3 = arr.length; while(_g2 < _g3) { var j = _g2++; row.push(arr[j][i]); } } return result; }; thx_Arrays.sliding2 = function(arr,f) { if(arr.length < 2) { return []; } else { var result = []; var _g = 0; var _g1 = arr.length - 1; while(_g < _g1) { var i = _g++; result.push(f(arr[i],arr[i + 1])); } return result; } }; thx_Arrays.unzip = function(array) { var a1 = []; var a2 = []; var result = new Array(array.length); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; var t = array[i]; a1.push(t._0); a2.push(t._1); result[i] = null; } return { _0 : a1, _1 : a2}; }; thx_Arrays.unzip3 = function(array) { var a1 = []; var a2 = []; var a3 = []; var result = new Array(array.length); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; var t = array[i]; a1.push(t._0); a2.push(t._1); a3.push(t._2); result[i] = null; } return { _0 : a1, _1 : a2, _2 : a3}; }; thx_Arrays.unzip4 = function(array) { var a1 = []; var a2 = []; var a3 = []; var a4 = []; var result = new Array(array.length); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; var t = array[i]; a1.push(t._0); a2.push(t._1); a3.push(t._2); a4.push(t._3); result[i] = null; } return { _0 : a1, _1 : a2, _2 : a3, _3 : a4}; }; thx_Arrays.unzip5 = function(array) { var a1 = []; var a2 = []; var a3 = []; var a4 = []; var a5 = []; var result = new Array(array.length); var _g = 0; var _g1 = array.length; while(_g < _g1) { var i = _g++; var t = array[i]; a1.push(t._0); a2.push(t._1); a3.push(t._2); a4.push(t._3); a5.push(t._4); result[i] = null; } return { _0 : a1, _1 : a2, _2 : a3, _3 : a4, _4 : a5}; }; thx_Arrays.zip = function(array1,array2) { var a = array1.length; var b = array2.length; var length = a < b ? a : b; var array = []; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; array.push({ _0 : array1[i], _1 : array2[i]}); } return array; }; thx_Arrays.zip3 = function(array1,array2,array3) { var length = thx_ArrayInts.min([array1.length,array2.length,array3.length]); var array = []; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; array.push({ _0 : array1[i], _1 : array2[i], _2 : array3[i]}); } return array; }; thx_Arrays.zip4 = function(array1,array2,array3,array4) { var length = thx_ArrayInts.min([array1.length,array2.length,array3.length,array4.length]); var array = []; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; array.push({ _0 : array1[i], _1 : array2[i], _2 : array3[i], _3 : array4[i]}); } return array; }; thx_Arrays.zip5 = function(array1,array2,array3,array4,array5) { var length = thx_ArrayInts.min([array1.length,array2.length,array3.length,array4.length,array5.length]); var array = []; var _g = 0; var _g1 = length; while(_g < _g1) { var i = _g++; array.push({ _0 : array1[i], _1 : array2[i], _2 : array3[i], _3 : array4[i], _4 : array5[i]}); } return array; }; thx_Arrays.zipAp = function(ax,fx) { var result = []; var _g = 0; var a = ax.length; var b = fx.length; var _g1 = a < b ? a : b; while(_g < _g1) { var i = _g++; result.push(fx[i](ax[i])); } return result; }; thx_Arrays.zip2Ap = function(f,ax,bx) { var f1 = thx_Functions2.curry(f); var result = new Array(ax.length); var _g = 0; var _g1 = ax.length; while(_g < _g1) { var i = _g++; result[i] = f1(ax[i]); } return thx_Arrays.zipAp(bx,result); }; thx_Arrays.zip3Ap = function(f,ax,bx,cx) { var f1 = f; return thx_Arrays.zipAp(cx,thx_Arrays.zip2Ap(function(a,b) { return function(c) { return f1(a,b,c); }; },ax,bx)); }; thx_Arrays.zip4Ap = function(f,ax,bx,cx,dx) { var f1 = f; return thx_Arrays.zipAp(dx,thx_Arrays.zip3Ap(function(a,b,c) { return function(d) { return f1(a,b,c,d); }; },ax,bx,cx)); }; thx_Arrays.zip5Ap = function(f,ax,bx,cx,dx,ex) { var f1 = f; return thx_Arrays.zipAp(ex,thx_Arrays.zip4Ap(function(a,b,c,d) { return function(e) { return f1(a,b,c,d,e); }; },ax,bx,cx,dx)); }; thx_Arrays.withPrepend = function(arr,el) { return [el].concat(arr); }; thx_Arrays.with = function(arr,el) { return arr.concat([el]); }; thx_Arrays.withSlice = function(arr,other,start,length) { if(length == null) { length = 0; } return arr.slice(0,start).concat(other).concat(arr.slice(start + length)); }; thx_Arrays.withInsert = function(arr,el,pos) { return arr.slice(0,pos).concat([el]).concat(arr.slice(pos)); }; thx_Arrays.maxBy = function(arr,ord) { if(arr.length == 0) { return haxe_ds_Option.None; } else { var _e = ord; return haxe_ds_Option.Some(thx_Arrays.reduce(arr,function(a0,a1) { return thx_Ord.max(_e,a0,a1); },arr[0])); } }; thx_Arrays.minBy = function(arr,ord) { if(arr.length == 0) { return haxe_ds_Option.None; } else { var _e = ord; return haxe_ds_Option.Some(thx_Arrays.reduce(arr,function(a0,a1) { return thx_Ord.min(_e,a0,a1); },arr[0])); } }; thx_Arrays.toMap = function(arr,keyOrder) { var m = thx_fp_MapImpl.Tip; var collisions = []; var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var tuple = arr[i]; if(thx_Options.isNone(thx_fp_Map.lookup(m,tuple._0,keyOrder))) { m = thx_fp_Map.insert(m,tuple._0,tuple._1,keyOrder); } else { collisions.push(tuple._0); } } return thx_Options.toFailure(thx_Nel.fromArray(collisions),m); }; thx_Arrays.toStringMap = function(arr) { return thx_Arrays.reduce(arr,function(acc,t) { acc.h[t._0] = t._1; return acc; },new haxe_ds_StringMap()); }; thx_Arrays.partition = function(arr,f) { return thx_Arrays.reduce(arr,function(a,b) { if(f(b)) { a._0.push(b); } else { a._1.push(b); } return a; },{ _0 : [], _1 : []}); }; thx_Arrays.partitionWhile = function(arr,f) { var partitioning = true; return thx_Arrays.reduce(arr,function(a,b) { if(partitioning) { if(f(b)) { a._0.push(b); } else { partitioning = false; a._1.push(b); } } else { a._1.push(b); } return a; },{ _0 : [], _1 : []}); }; thx_Arrays.dropLeft = function(a,n) { if(n >= a.length) { return []; } else { return a.slice(n); } }; thx_Arrays.dropRight = function(a,n) { if(n >= a.length) { return []; } else { return a.slice(0,a.length - n); } }; thx_Arrays.dropWhile = function(a,p) { var r = [].concat(a); var _g_current = 0; var _g_array = a; while(_g_current < _g_array.length) { var e = _g_array[_g_current++]; if(p(e)) { r.shift(); } else { break; } } return r; }; thx_Arrays.pad = function(arr,len,def) { var len0 = len - arr.length; var arr0 = []; var _g = 0; var _g1 = len0; while(_g < _g1) { var i = _g++; arr0.push(def); } return arr.concat(arr0); }; thx_Arrays.fill = function(arr,def) { var result = new Array(arr.length); var _g = 0; var _g1 = arr.length; while(_g < _g1) { var i = _g++; var x = arr[i]; result[i] = x == null ? def : x; } return result; }; var thx_ArrayFloats = function() { }; $hxClasses["thx.ArrayFloats"] = thx_ArrayFloats; thx_ArrayFloats.__name__ = "thx.ArrayFloats"; thx_ArrayFloats.average = function(arr) { return thx_ArrayFloats.sum(arr) / arr.length; }; thx_ArrayFloats.compact = function(arr) { var _g = []; var _g1 = 0; var _g2 = arr; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(null != v && isFinite(v)) { _g.push(v); } } return _g; }; thx_ArrayFloats.max = function(arr) { return thx_Options.get(thx_Arrays.maxBy(arr,thx_Floats.order)); }; thx_ArrayFloats.min = function(arr) { return thx_Options.get(thx_Arrays.minBy(arr,thx_Floats.order)); }; thx_ArrayFloats.resize = function(array,length,fill) { if(fill == null) { fill = 0.0; } while(array.length < length) array.push(fill); array.splice(length,array.length - length); return array; }; thx_ArrayFloats.resized = function(array,length,fill) { if(fill == null) { fill = 0.0; } array = array.slice(); return thx_ArrayFloats.resize(array,length,fill); }; thx_ArrayFloats.standardDeviation = function(array) { if(array.length < 2) { return 0.0; } var mean = thx_ArrayFloats.average(array); var variance = thx_Arrays.reduce(array,function(acc,val) { return acc + Math.pow(val - mean,2); },0) / (array.length - 1); return Math.sqrt(variance); }; thx_ArrayFloats.sum = function(arr) { return thx_Arrays.reduce(arr,function(tot,v) { return tot + v; },0.0); }; var thx_ArrayInts = function() { }; $hxClasses["thx.ArrayInts"] = thx_ArrayInts; thx_ArrayInts.__name__ = "thx.ArrayInts"; thx_ArrayInts.average = function(arr) { return thx_ArrayInts.sum(arr) / arr.length; }; thx_ArrayInts.max = function(arr) { return thx_Options.get(thx_Arrays.maxBy(arr,thx_Ints.order)); }; thx_ArrayInts.min = function(arr) { return thx_Options.get(thx_Arrays.minBy(arr,thx_Ints.order)); }; thx_ArrayInts.resize = function(array,length,fill) { if(fill == null) { fill = 0; } while(array.length < length) array.push(fill); array.splice(length,array.length - length); return array; }; thx_ArrayInts.resized = function(array,length,fill) { if(fill == null) { fill = 0; } array = array.slice(); return thx_ArrayInts.resize(array,length,fill); }; thx_ArrayInts.sum = function(arr) { return thx_Arrays.reduce(arr,function(tot,v) { return tot + v; },0); }; var thx_ArrayStrings = function() { }; $hxClasses["thx.ArrayStrings"] = thx_ArrayStrings; thx_ArrayStrings.__name__ = "thx.ArrayStrings"; thx_ArrayStrings.compact = function(arr) { var _g = []; var _g1 = 0; var _g2 = arr; while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(!thx_Strings.isEmpty(v)) { _g.push(v); } } return _g; }; thx_ArrayStrings.max = function(arr) { return thx_Options.getOrElse(thx_Arrays.maxBy(arr,thx_Strings.order),null); }; thx_ArrayStrings.min = function(arr) { return thx_Options.getOrElse(thx_Arrays.minBy(arr,thx_Strings.order),null); }; var thx_Bools = function() { }; $hxClasses["thx.Bools"] = thx_Bools; thx_Bools.__name__ = "thx.Bools"; thx_Bools.compare = function(a,b) { if(a == b) { return 0; } else if(a) { return -1; } else { return 1; } }; thx_Bools.toInt = function(v) { if(v) { return 1; } else { return 0; } }; thx_Bools.canParse = function(v) { var _g = v.toLowerCase(); if(_g == null) { return true; } else { switch(_g) { case "0":case "1":case "false":case "off":case "on":case "true": return true; default: return false; } } }; thx_Bools.parse = function(v) { var _g = v.toLowerCase(); if(_g == null) { return false; } else { switch(_g) { case "0":case "false":case "off": return false; case "1":case "on":case "true": return true; default: var v = _g; throw haxe_Exception.thrown("unable to parse \"" + v + "\""); } } }; thx_Bools.xor = function(a,b) { return a != b; }; thx_Bools.option = function(cond,a) { if(cond) { return haxe_ds_Option.Some(a); } else { return haxe_ds_Option.None; } }; var thx_Ord = {}; thx_Ord.order = function(this1,a0,a1) { return this1(a0,a1); }; thx_Ord.max = function(this1,a0,a1) { switch(this1(a0,a1)._hx_index) { case 1: return a0; case 0:case 2: return a1; } }; thx_Ord.min = function(this1,a0,a1) { switch(this1(a0,a1)._hx_index) { case 1: return a1; case 0:case 2: return a0; } }; thx_Ord.equal = function(this1,a0,a1) { return this1(a0,a1) == thx_OrderingImpl.EQ; }; thx_Ord.contramap = function(this1,f) { return function(b0,b1) { return this1(f(b0),f(b1)); }; }; thx_Ord.inverse = function(this1) { return function(a0,a1) { return this1(a1,a0); }; }; thx_Ord.intComparison = function(this1,a0,a1) { switch(this1(a0,a1)._hx_index) { case 0: return -1; case 1: return 1; case 2: return 0; } }; thx_Ord.fromIntComparison = function(f) { return function(a,b) { return thx_Ordering.fromInt(f(a,b)); }; }; thx_Ord.forComparable = function() { return function(a,b) { return thx_Ordering.fromInt(a.compareTo(b)); }; }; thx_Ord.forComparableOrd = function() { return function(a,b) { return a.compareTo(b); }; }; var thx_Ordering = {}; thx_Ordering.fromInt = function(value) { if(value < 0) { return thx_OrderingImpl.LT; } else if(value > 0) { return thx_OrderingImpl.GT; } else { return thx_OrderingImpl.EQ; } }; thx_Ordering.fromFloat = function(value) { if(value < 0) { return thx_OrderingImpl.LT; } else if(value > 0) { return thx_OrderingImpl.GT; } else { return thx_OrderingImpl.EQ; } }; thx_Ordering.toInt = function(this1) { switch(this1._hx_index) { case 0: return -1; case 1: return 1; case 2: return 0; } }; var thx_OrderingImpl = $hxEnums["thx.OrderingImpl"] = { __ename__:"thx.OrderingImpl",__constructs__:null ,LT: {_hx_name:"LT",_hx_index:0,__enum__:"thx.OrderingImpl",toString:$estr} ,GT: {_hx_name:"GT",_hx_index:1,__enum__:"thx.OrderingImpl",toString:$estr} ,EQ: {_hx_name:"EQ",_hx_index:2,__enum__:"thx.OrderingImpl",toString:$estr} }; thx_OrderingImpl.__constructs__ = [thx_OrderingImpl.LT,thx_OrderingImpl.GT,thx_OrderingImpl.EQ]; thx_OrderingImpl.__empty_constructs__ = [thx_OrderingImpl.LT,thx_OrderingImpl.GT,thx_OrderingImpl.EQ]; var thx_Dates = function() { }; $hxClasses["thx.Dates"] = thx_Dates; thx_Dates.__name__ = "thx.Dates"; thx_Dates.compare = function(a,b) { var a1 = a.getTime(); var b1 = b.getTime(); if(a1 < b1) { return -1; } else if(a1 > b1) { return 1; } else { return 0; } }; thx_Dates.create = function(year,month,day,hour,minute,second) { if(second == null) { second = 0; } if(minute == null) { minute = 0; } if(hour == null) { hour = 0; } if(day == null) { day = 1; } if(month == null) { month = 0; } minute += Math.floor(second / 60); second %= 60; if(second < 0) { second += 60; } hour += Math.floor(minute / 60); minute %= 60; if(minute < 0) { minute += 60; } day += Math.floor(hour / 24); hour %= 24; if(hour < 0) { hour += 24; } year += Math.floor(month / 12); month %= 12; if(month < 0) { month += 12; } while(day < 1) { --month; if(month < 0) { month = 11; --year; } var days = thx_Dates.daysInMonth(year,month); day += days; } var days = thx_Dates.daysInMonth(year,month); while(day > days) { if(day > days) { day -= days; ++month; } if(month > 11) { month -= 12; ++year; } days = thx_Dates.daysInMonth(year,month); } return new Date(year,month,day,hour,minute,second); }; thx_Dates.daysRange = function(start,end) { if(thx_Dates.compare(end,start) < 0) { return []; } var days = []; while(!thx_Dates.sameDay(start,end)) { days.push(start); start = thx_Dates.jump(start,thx_TimePeriod.Day,1); } days.push(end); return days; }; thx_Dates.equals = function(self,other) { return self.getTime() == other.getTime(); }; thx_Dates.nearEquals = function(self,other,units,period) { if(units == null) { units = 1; } if(null == period) { period = thx_TimePeriod.Second; } if(units < 0) { units = -units; } var min = thx_Dates.jump(self,period,-units); var max = thx_Dates.jump(self,period,units); if(thx_Dates.compare(min,other) <= 0) { return thx_Dates.compare(max,other) >= 0; } else { return false; } }; thx_Dates.greater = function(self,other) { return thx_Dates.compare(self,other) > 0; }; thx_Dates.more = function(self,other) { return thx_Dates.compare(self,other) > 0; }; thx_Dates.less = function(self,other) { return thx_Dates.compare(self,other) < 0; }; thx_Dates.greaterEquals = function(self,other) { return thx_Dates.compare(self,other) >= 0; }; thx_Dates.moreEqual = function(self,other) { return thx_Dates.compare(self,other) >= 0; }; thx_Dates.lessEquals = function(self,other) { return thx_Dates.compare(self,other) <= 0; }; thx_Dates.lessEqual = function(self,other) { return thx_Dates.compare(self,other) <= 0; }; thx_Dates.isLeapYear = function(year) { if(year % 4 != 0) { return false; } if(year % 100 == 0) { return year % 400 == 0; } return true; }; thx_Dates.isInLeapYear = function(d) { return thx_Dates.isLeapYear(d.getFullYear()); }; thx_Dates.daysInMonth = function(year,month) { switch(month) { case 1: if(thx_Dates.isLeapYear(year)) { return 29; } else { return 28; } break; case 3:case 5:case 8:case 10: return 30; case 0:case 2:case 4:case 6:case 7:case 9:case 11: return 31; default: throw haxe_Exception.thrown("Invalid month \"" + month + "\". Month should be a number, Jan=0, Dec=11"); } }; thx_Dates.numDaysInMonth = function(month,year) { return thx_Dates.daysInMonth(year,month); }; thx_Dates.daysInThisMonth = function(d) { return thx_Dates.daysInMonth(d.getFullYear(),d.getMonth()); }; thx_Dates.numDaysInThisMonth = function(d) { return thx_Dates.daysInThisMonth(d); }; thx_Dates.sameYear = function(self,other) { return self.getFullYear() == other.getFullYear(); }; thx_Dates.sameMonth = function(self,other) { if(thx_Dates.sameYear(self,other)) { return self.getMonth() == other.getMonth(); } else { return false; } }; thx_Dates.sameDay = function(self,other) { if(thx_Dates.sameMonth(self,other)) { return self.getDate() == other.getDate(); } else { return false; } }; thx_Dates.sameHour = function(self,other) { if(thx_Dates.sameDay(self,other)) { return self.getHours() == other.getHours(); } else { return false; } }; thx_Dates.sameMinute = function(self,other) { if(thx_Dates.sameHour(self,other)) { return self.getMinutes() == other.getMinutes(); } else { return false; } }; thx_Dates.snapNext = function(date,period) { return new Date(thx_Timestamp.snapNext(date.getTime(),period)); }; thx_Dates.snapPrev = function(date,period) { return new Date(thx_Timestamp.snapPrev(date.getTime(),period)); }; thx_Dates.snapTo = function(date,period) { return new Date(thx_Timestamp.snapTo(date.getTime(),period)); }; thx_Dates.jump = function(date,period,amount) { var sec = date.getSeconds(); var min = date.getMinutes(); var hour = date.getHours(); var day = date.getDate(); var month = date.getMonth(); var year = date.getFullYear(); switch(period._hx_index) { case 0: sec += amount; break; case 1: min += amount; break; case 2: hour += amount; break; case 3: day += amount; break; case 4: day += amount * 7; break; case 5: month += amount; break; case 6: year += amount; break; } return thx_Dates.create(year,month,day,hour,min,sec); }; thx_Dates.max = function(self,other) { if(self.getTime() > other.getTime()) { return self; } else { return other; } }; thx_Dates.min = function(self,other) { if(self.getTime() < other.getTime()) { return self; } else { return other; } }; thx_Dates.snapToWeekDay = function(date,day,firstDayOfWk) { if(firstDayOfWk == null) { firstDayOfWk = 0; } var d = date.getDay(); var s = day; if(s < firstDayOfWk) { s += 7; } if(d < firstDayOfWk) { d += 7; } return thx_Dates.jump(date,thx_TimePeriod.Day,s - d); }; thx_Dates.snapNextWeekDay = function(date,day) { var d = date.getDay(); var s = day; if(s < d) { s += 7; } return thx_Dates.jump(date,thx_TimePeriod.Day,s - d); }; thx_Dates.snapPrevWeekDay = function(date,day) { var d = date.getDay(); var s = day; if(s > d) { s -= 7; } return thx_Dates.jump(date,thx_TimePeriod.Day,s - d); }; thx_Dates.prevYear = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Year,-1); }; thx_Dates.nextYear = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Year,1); }; thx_Dates.prevMonth = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Month,-1); }; thx_Dates.nextMonth = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Month,1); }; thx_Dates.prevWeek = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Week,-1); }; thx_Dates.nextWeek = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Week,1); }; thx_Dates.prevDay = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Day,-1); }; thx_Dates.nextDay = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Day,1); }; thx_Dates.prevHour = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Hour,-1); }; thx_Dates.nextHour = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Hour,1); }; thx_Dates.prevMinute = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Minute,-1); }; thx_Dates.nextMinute = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Minute,1); }; thx_Dates.prevSecond = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Second,-1); }; thx_Dates.nextSecond = function(d) { return thx_Dates.jump(d,thx_TimePeriod.Second,1); }; thx_Dates.withYear = function(date,year) { return thx_Dates.create(year,date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds()); }; thx_Dates.withMonth = function(date,month) { return thx_Dates.create(date.getFullYear(),month,date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds()); }; thx_Dates.withDay = function(date,day) { return thx_Dates.create(date.getFullYear(),date.getMonth(),day,date.getHours(),date.getMinutes(),date.getSeconds()); }; thx_Dates.withHour = function(date,hour) { return thx_Dates.create(date.getFullYear(),date.getMonth(),date.getDate(),hour,date.getMinutes(),date.getSeconds()); }; thx_Dates.withMinute = function(date,minute) { return thx_Dates.create(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),minute,date.getSeconds()); }; thx_Dates.withSecond = function(date,second) { return thx_Dates.create(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),second); }; thx_Dates.parseDate = function(s) { try { return thx_Either.Right(HxOverrides.strDate(s)); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; return thx_Either.Left("" + s + " could not be parsed to a valid Date value."); } }; var thx_Dynamics = function() { }; $hxClasses["thx.Dynamics"] = thx_Dynamics; thx_Dynamics.__name__ = "thx.Dynamics"; thx_Dynamics.equals = function(a,b) { if(!thx_Types.sameType(a,b)) { return false; } if(a == b) { return true; } var _g = Type.typeof(a); switch(_g._hx_index) { case 0:case 1:case 2:case 3: return false; case 4: var fa = Reflect.fields(a); var fb = Reflect.fields(b); var _g1 = 0; while(_g1 < fa.length) { var field = fa[_g1]; ++_g1; HxOverrides.remove(fb,field); if(!Object.prototype.hasOwnProperty.call(b,field)) { return false; } var va = Reflect.field(a,field); if(Reflect.isFunction(va)) { continue; } var vb = Reflect.field(b,field); if(!thx_Dynamics.equals(va,vb)) { return false; } } if(fb.length > 0) { return false; } var t = false; t = thx_Iterators.isIterator(a); if(t || thx_Iterables.isIterable(a)) { if(t && !thx_Iterators.isIterator(b)) { return false; } if(!t && !thx_Iterables.isIterable(b)) { return false; } var aa = t ? thx_Iterators.toArray(a) : thx_Iterators.toArray($getIterator(a)); var ab = t ? thx_Iterators.toArray(b) : thx_Iterators.toArray($getIterator(b)); if(aa.length != ab.length) { return false; } var _g1 = 0; var _g2 = aa.length; while(_g1 < _g2) { var i = _g1++; if(!thx_Dynamics.equals(aa[i],ab[i])) { return false; } } return true; } return true; case 5: return a == b; case 6: var c = _g.c; var ca = c.__name__; var c = js_Boot.getClass(b); var cb = c.__name__; if(ca != cb) { return false; } if(typeof(a) == "string") { return false; } if(((a) instanceof Array)) { var aa = a; var ab = b; if(aa.length != ab.length) { return false; } var _g1 = 0; var _g2 = aa.length; while(_g1 < _g2) { var i = _g1++; if(!thx_Dynamics.equals(aa[i],ab[i])) { return false; } } return true; } if(((a) instanceof Date)) { return a.getTime() == b.getTime(); } if(js_Boot.__implements(a,haxe_IMap)) { var ha = a; var hb = b; var ka = thx_Iterators.toArray(new haxe_ds__$StringMap_StringMapKeyIterator(ha.h)); var kb = thx_Iterators.toArray(new haxe_ds__$StringMap_StringMapKeyIterator(hb.h)); if(ka.length != kb.length) { return false; } var _g1 = 0; while(_g1 < ka.length) { var key = ka[_g1]; ++_g1; if(!Object.prototype.hasOwnProperty.call(hb.h,key) || !thx_Dynamics.equals(ha.h[key],hb.h[key])) { return false; } } return true; } var t = false; t = thx_Iterators.isIterator(a); if(t || thx_Iterables.isIterable(a)) { var va = t ? thx_Iterators.toArray(a) : thx_Iterators.toArray($getIterator(a)); var vb = t ? thx_Iterators.toArray(b) : thx_Iterators.toArray($getIterator(b)); if(va.length != vb.length) { return false; } var _g1 = 0; var _g2 = va.length; while(_g1 < _g2) { var i = _g1++; if(!thx_Dynamics.equals(va[i],vb[i])) { return false; } } return true; } var f = null; var tmp; if(Object.prototype.hasOwnProperty.call(a,"equals")) { f = Reflect.field(a,"equals"); tmp = Reflect.isFunction(f); } else { tmp = false; } if(tmp) { return f.apply(a,[b]); } var fields = Type.getInstanceFields(js_Boot.getClass(a)); var _g1 = 0; while(_g1 < fields.length) { var field = fields[_g1]; ++_g1; var va = Reflect.field(a,field); if(Reflect.isFunction(va)) { continue; } var vb = Reflect.field(b,field); if(!thx_Dynamics.equals(va,vb)) { return false; } } return true; case 7: var e = _g.e; var ea = e.__ename__; var teb = Type.getEnum(b); var eb = teb.__ename__; if(ea != eb) { return false; } if(a._hx_index != b._hx_index) { return false; } var pa = Type.enumParameters(a); var pb = Type.enumParameters(b); var _g = 0; var _g1 = pa.length; while(_g < _g1) { var i = _g++; if(!thx_Dynamics.equals(pa[i],pb[i])) { return false; } } return true; case 8: throw haxe_Exception.thrown("Unable to compare two unknown types"); } }; thx_Dynamics.clone = function(v,cloneInstances) { if(cloneInstances == null) { cloneInstances = false; } var _g = Type.typeof(v); switch(_g._hx_index) { case 0: return null; case 4: return thx_Objects.copyTo(v,{ }); case 1:case 2:case 3:case 5:case 8: return v; case 6: var c = _g.c; var name = c.__name__; switch(name) { case "Array": var _this = v; var result = new Array(_this.length); var _g1 = 0; var _g2 = _this.length; while(_g1 < _g2) { var i = _g1++; result[i] = thx_Dynamics.clone(_this[i],cloneInstances); } return result; case "Date":case "String": return v; default: if(cloneInstances) { var o = Object.create(c.prototype); var _g1 = 0; var _g2 = Type.getInstanceFields(c); while(_g1 < _g2.length) { var field = _g2[_g1]; ++_g1; o[field] = thx_Dynamics.clone(Reflect.field(v,field),cloneInstances); } return o; } else { return v; } } break; case 7: var _g1 = _g.e; return v; } }; thx_Dynamics.compare = function(a,b) { if(null == a && null == b) { return 0; } if(null == a) { return -1; } if(null == b) { return 1; } if(!thx_Types.sameType(a,b)) { var a1 = thx_Types.toString(Type.typeof(a)); var b1 = thx_Types.toString(Type.typeof(b)); if(a1 < b1) { return -1; } else if(a1 > b1) { return 1; } else { return 0; } } var _g = Type.typeof(a); switch(_g._hx_index) { case 1: return thx_Ints.compare(a,b); case 2: var a1 = a; var b1 = b; if(a1 < b1) { return -1; } else if(a1 > b1) { return 1; } else { return 0; } break; case 3: return thx_Bools.compare(a,b); case 4: return thx_Objects.compare(a,b); case 6: var c = _g.c; var name = c.__name__; switch(name) { case "Array": return thx_Arrays.compare(a,b); case "Date": return thx_Dates.compare(a,b); case "String": var a1 = a; var b1 = b; if(a1 < b1) { return -1; } else if(a1 > b1) { return 1; } else { return 0; } break; default: if(Object.prototype.hasOwnProperty.call(a,"compare")) { return Reflect.field(a,"compare").apply(a,[b]); } else { var a1 = Std.string(a); var b1 = Std.string(b); if(a1 < b1) { return -1; } else if(a1 > b1) { return 1; } else { return 0; } } } break; case 7: var e = _g.e; return thx_Enums.compare(a,b); default: return 0; } }; thx_Dynamics.string = function(v) { var _g = Type.typeof(v); switch(_g._hx_index) { case 0: return "null"; case 1:case 2:case 3: return "" + Std.string(v); case 4: return thx_Objects.string(v); case 5: return ""; case 6: var c = _g.c; switch(c.__name__) { case "Array": return thx_Arrays.string(v); case "Date": return HxOverrides.dateStr(v); case "String": return v; default: if(js_Boot.__implements(v,haxe_IMap)) { return thx_Maps.string(v); } else { return Std.string(v); } } break; case 7: var e = _g.e; return thx_Enums.string(v); case 8: return ""; } }; var thx_DynamicsT = function() { }; $hxClasses["thx.DynamicsT"] = thx_DynamicsT; thx_DynamicsT.__name__ = "thx.DynamicsT"; thx_DynamicsT.isEmpty = function(o) { return Reflect.fields(o).length == 0; }; thx_DynamicsT.exists = function(o,name) { return Object.prototype.hasOwnProperty.call(o,name); }; thx_DynamicsT.fields = function(o) { return Reflect.fields(o); }; thx_DynamicsT.merge = function(to,from,replacef) { if(null == replacef) { replacef = function(field,oldv,newv) { return newv; }; } var _g = 0; var _g1 = Reflect.fields(from); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var newv = Reflect.field(from,field); if(Object.prototype.hasOwnProperty.call(to,field)) { to[field] = replacef(field,Reflect.field(to,field),newv); } else { to[field] = newv; } } return to; }; thx_DynamicsT.size = function(o) { return Reflect.fields(o).length; }; thx_DynamicsT.values = function(o) { var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = Reflect.field(o,_this[i]); } return result; }; thx_DynamicsT.tuples = function(o) { var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var key = _this[i]; result[i] = { _0 : key, _1 : Reflect.field(o,key)}; } return result; }; var thx_Either = $hxEnums["thx.Either"] = { __ename__:"thx.Either",__constructs__:null ,Left: ($_=function(value) { return {_hx_index:0,value:value,__enum__:"thx.Either",toString:$estr}; },$_._hx_name="Left",$_.__params__ = ["value"],$_) ,Right: ($_=function(value) { return {_hx_index:1,value:value,__enum__:"thx.Either",toString:$estr}; },$_._hx_name="Right",$_.__params__ = ["value"],$_) }; thx_Either.__constructs__ = [thx_Either.Left,thx_Either.Right]; thx_Either.__empty_constructs__ = []; var thx_Eithers = function() { }; $hxClasses["thx.Eithers"] = thx_Eithers; thx_Eithers.__name__ = "thx.Eithers"; thx_Eithers.isLeft = function(either) { switch(either._hx_index) { case 0: var _g = either.value; return true; case 1: var _g = either.value; return false; } }; thx_Eithers.isRight = function(either) { switch(either._hx_index) { case 0: var _g = either.value; return false; case 1: var _g = either.value; return true; } }; thx_Eithers.toLeft = function(either) { switch(either._hx_index) { case 0: var v = either.value; return haxe_ds_Option.Some(v); case 1: var _g = either.value; return haxe_ds_Option.None; } }; thx_Eithers.toRight = function(either) { switch(either._hx_index) { case 0: var _g = either.value; return haxe_ds_Option.None; case 1: var v = either.value; return haxe_ds_Option.Some(v); } }; thx_Eithers.toLeftUnsafe = function(either) { switch(either._hx_index) { case 0: var v = either.value; return v; case 1: var _g = either.value; return null; } }; thx_Eithers.toRightUnsafe = function(either) { switch(either._hx_index) { case 0: var _g = either.value; return null; case 1: var v = either.value; return v; } }; thx_Eithers.map = function(either,f) { switch(either._hx_index) { case 0: var v = either.value; return thx_Either.Left(v); case 1: var v = either.value; return thx_Either.Right(f(v)); } }; thx_Eithers.ap = function(either,fa) { switch(either._hx_index) { case 0: var l = either.value; return thx_Either.Left(l); case 1: var v = either.value; return thx_Eithers.map(fa,function(f) { return f(v); }); } }; thx_Eithers.flatMap = function(either,f) { switch(either._hx_index) { case 0: var v = either.value; return thx_Either.Left(v); case 1: var v = either.value; return f(v); } }; thx_Eithers.leftMap = function(either,f) { switch(either._hx_index) { case 0: var v = either.value; return thx_Either.Left(f(v)); case 1: var v = either.value; return thx_Either.Right(v); } }; thx_Eithers.orThrow = function(either,message) { switch(either._hx_index) { case 0: var v = either.value; throw new thx_Error("" + message + ": " + Std.string(v),null,{ fileName : "thx/Eithers.hx", lineNumber : 105, className : "thx.Eithers", methodName : "orThrow"}); case 1: var v = either.value; return v; } }; thx_Eithers.toValidation = function(either) { return either; }; thx_Eithers.toVNel = function(either) { return thx_Eithers.leftMap(either,thx_Nel.pure); }; thx_Eithers.cata = function(either,l,r) { switch(either._hx_index) { case 0: var l0 = either.value; return l(l0); case 1: var r0 = either.value; return r(r0); } }; thx_Eithers.bimap = function(either,l,r) { switch(either._hx_index) { case 0: var l0 = either.value; return thx_Either.Left(l(l0)); case 1: var r0 = either.value; return thx_Either.Right(r(r0)); } }; thx_Eithers.foldLeft = function(either,a,f) { switch(either._hx_index) { case 0: var l0 = either.value; return a; case 1: var r0 = either.value; return f(a,r0); } }; thx_Eithers.foldMap = function(either,f,m) { var _e = m; var tmp = function(a0,a1) { return thx_Monoid.append(_e,a0,a1); }; return thx_Eithers.foldLeft(thx_Eithers.map(either,f),thx_Monoid.get_zero(m),tmp); }; thx_Eithers.getOrElse = function(e0,v) { switch(e0._hx_index) { case 0: var _g = e0.value; return v; case 1: var v = e0.value; return v; } }; thx_Eithers.getOrElseF = function(e0,f) { switch(e0._hx_index) { case 0: var _g = e0.value; return f(); case 1: var v = e0.value; return v; } }; thx_Eithers.orElse = function(e0,e1) { if(e0._hx_index == 0) { var e = e0.value; return e1; } else { var r = e0; return r; } }; thx_Eithers.orElseF = function(e0,f) { if(e0._hx_index == 0) { var e = e0.value; return f(); } else { var r = e0; return r; } }; thx_Eithers.each = function(either,f) { switch(either._hx_index) { case 0: var l = either.value; break; case 1: var r = either.value; f(r); break; } }; thx_Eithers.eachLeft = function(either,f) { switch(either._hx_index) { case 0: var l = either.value; f(l); break; case 1: var r = either.value; break; } }; thx_Eithers.ensure = function(either,p,error) { if(either._hx_index == 1) { var a = either.value; if(p(a)) { return either; } else { return thx_Either.Left(error); } } else { return either; } }; thx_Eithers.exists = function(either,p) { if(either._hx_index == 1) { var a = either.value; return p(a); } else { return false; } }; thx_Eithers.forall = function(either,p) { if(either._hx_index == 1) { var a = either.value; return p(a); } else { return true; } }; var thx_EitherK = {}; thx_EitherK.apply = function(this1,a) { return this1(a); }; thx_EitherK.compose = function(this1,f) { return function(a0) { return thx_Eithers.flatMap(thx_EitherK.apply(f,a0),this1); }; }; thx_EitherK.andThen = function(this1,f) { return function(a) { var tmp = this1(a); var _e = f; return thx_Eithers.flatMap(tmp,function(a) { return thx_EitherK.apply(_e,a); }); }; }; thx_EitherK.pure = function(r) { return function(a) { return thx_Either.Right(r); }; }; thx_EitherK.map = function(this1,f) { var fb = f; return thx_EitherK.flatMap(this1,function(v) { return thx_EitherK.pure(fb(v)); }); }; thx_EitherK.ap = function(this1,e) { return thx_EitherK.flatMap(this1,function(r) { return thx_EitherK.map(e,function(f) { return f(r); }); }); }; thx_EitherK.flatMap = function(this1,f) { return function(a) { return thx_Eithers.flatMap(this1(a),function(r) { return thx_EitherK.apply(f(r),a); }); }; }; thx_EitherK.monoid = function() { return { zero : function(r) { return thx_Either.Right(r); }, append : function(f0,f1) { return function(r) { var tmp = thx_EitherK.apply(f0,r); var _e = f1; return thx_Eithers.flatMap(tmp,function(a) { return thx_EitherK.apply(_e,a); }); }; }}; }; var thx_Enums = function() { }; $hxClasses["thx.Enums"] = thx_Enums; thx_Enums.__name__ = "thx.Enums"; thx_Enums.string = function(e) { var cons = $hxEnums[e.__enum__].__constructs__[e._hx_index]._hx_name; var params = []; var _g = 0; var _g1 = Type.enumParameters(e); while(_g < _g1.length) { var param = _g1[_g]; ++_g; params.push(thx_Dynamics.string(param)); } return cons + (params.length == 0 ? "" : "(" + params.join(", ") + ")"); }; thx_Enums.compare = function(a,b) { var v = thx_Ints.compare(a._hx_index,b._hx_index); if(v != 0) { return v; } return thx_Arrays.compare(Type.enumParameters(a),Type.enumParameters(b)); }; thx_Enums.sameConstructor = function(a,b) { return a._hx_index == b._hx_index; }; thx_Enums.min = function(a,b) { if(thx_Enums.compare(a,b) < 0) { return a; } else { return b; } }; thx_Enums.max = function(a,b) { if(thx_Enums.compare(a,b) > 0) { return a; } else { return b; } }; var thx_Error = function(message,stack,pos) { Error.call(this,message); this.message = message; if(null == stack) { try { stack = haxe_CallStack.exceptionStack(); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; stack = []; } if(stack.length == 0) { try { stack = haxe_CallStack.callStack(); } catch( _g ) { haxe_NativeStackTrace.lastError = _g; stack = []; } } } this.stackItems = stack; this.pos = pos; }; $hxClasses["thx.Error"] = thx_Error; thx_Error.__name__ = "thx.Error"; thx_Error.fromDynamic = function(err,pos) { if(((err) instanceof thx_Error)) { return err; } return new thx_error_ErrorWrapper("" + Std.string(err),err,null,pos); }; thx_Error.__super__ = Error; thx_Error.prototype = $extend(Error.prototype,{ pos: null ,stackItems: null ,toString: function() { return this.message + "\nfrom: " + this.getPosition() + "\n\n" + this.stackToString(); } ,getPosition: function() { return this.pos.className + "." + this.pos.methodName + "() at " + this.pos.lineNumber; } ,stackToString: function() { return haxe_CallStack.toString(this.stackItems); } ,__class__: thx_Error }); var thx_Floats = function() { }; $hxClasses["thx.Floats"] = thx_Floats; thx_Floats.__name__ = "thx.Floats"; thx_Floats.angleDifference = function(a,b,turn) { if(turn == null) { turn = 360.0; } var r = (b - a) % turn; if(r < 0) { r += turn; } if(r > turn / 2) { r -= turn; } return r; }; thx_Floats.ceilTo = function(f,decimals) { var p = Math.pow(10,decimals); return Math.ceil(f * p) / p; }; thx_Floats.canParse = function(s) { if(!(thx_Floats.pattern_parse.match(s) || thx_Floats.pattern_inf.match(s))) { return thx_Floats.pattern_neg_inf.match(s); } else { return true; } }; thx_Floats.clamp = function(v,min,max) { if(v < min) { return min; } else if(v > max) { return max; } else { return v; } }; thx_Floats.clampSym = function(v,max) { var min = -max; if(v < min) { return min; } else if(v > max) { return max; } else { return v; } }; thx_Floats.compare = function(a,b) { if(a < b) { return -1; } else if(a > b) { return 1; } else { return 0; } }; thx_Floats.floorTo = function(f,decimals) { var p = Math.pow(10,decimals); return Math.floor(f * p) / p; }; thx_Floats.interpolate = function(f,a,b) { return (b - a) * f + a; }; thx_Floats.interpolateAngle = function(f,a,b,turn) { if(turn == null) { turn = 360; } return thx_Floats.wrapCircular(thx_Floats.interpolate(f,a,a + thx_Floats.angleDifference(a,b,turn)),turn); }; thx_Floats.interpolateAngleWidest = function(f,a,b,turn) { if(turn == null) { turn = 360; } return thx_Floats.wrapCircular(thx_Floats.interpolateAngle(f,a,b,turn) - turn / 2,turn); }; thx_Floats.interpolateAngleCW = function(f,a,b,turn) { if(turn == null) { turn = 360; } a = thx_Floats.wrapCircular(a,turn); b = thx_Floats.wrapCircular(b,turn); if(b < a) { b += turn; } return thx_Floats.wrapCircular(thx_Floats.interpolate(f,a,b),turn); }; thx_Floats.interpolateAngleCCW = function(f,a,b,turn) { if(turn == null) { turn = 360; } a = thx_Floats.wrapCircular(a,turn); b = thx_Floats.wrapCircular(b,turn); if(b > a) { b -= turn; } return thx_Floats.wrapCircular(thx_Floats.interpolate(f,a,b),turn); }; thx_Floats.max = function(a,b) { if(a > b) { return a; } else { return b; } }; thx_Floats.min = function(a,b) { if(a < b) { return a; } else { return b; } }; thx_Floats.nearEquals = function(a,b,tollerance) { if(tollerance == null) { tollerance = 1e-9; } if(isFinite(a)) { return Math.abs(a - b) <= tollerance; } if(isNaN(a)) { return isNaN(b); } if(isNaN(b)) { return false; } if(!isFinite(b)) { return a > 0 == b > 0; } return false; }; thx_Floats.nearEqualAngles = function(a,b,turn,tollerance) { if(tollerance == null) { tollerance = 1e-9; } if(turn == null) { turn = 360.0; } return Math.abs(thx_Floats.angleDifference(a,b,turn)) <= tollerance; }; thx_Floats.nearZero = function(n,tollerance) { if(tollerance == null) { tollerance = 1e-9; } return Math.abs(n) <= tollerance; }; thx_Floats.normalize = function(v) { if(v < 0) { return 0; } else if(v > 1) { return 1; } else { return v; } }; thx_Floats.parse = function(s) { if(s.substring(0,1) == "+") { s = s.substring(1); } if(thx_Floats.pattern_inf.match(s)) { return Infinity; } else if(thx_Floats.pattern_neg_inf.match(s)) { return -Infinity; } else { return parseFloat(s); } }; thx_Floats.root = function(base,index) { return Math.pow(base,1 / index); }; thx_Floats.roundTo = function(f,decimals) { var p = Math.pow(10,decimals); return Math.round(f * p) / p; }; thx_Floats.sign = function(value) { if(value < 0) { return -1; } else { return 1; } }; thx_Floats.toString = function(v) { return "" + v; }; thx_Floats.toFloat = function(s) { return thx_Floats.parse(s); }; thx_Floats.trunc = function(value) { if(value < 0.0) { return Math.ceil(value); } else { return Math.floor(value); } }; thx_Floats.ftrunc = function(value) { if(value < 0.0) { return Math.ceil(value); } else { return Math.floor(value); } }; thx_Floats.wrap = function(v,min,max) { var range = max - min + 1; if(v < min) { v += range * ((min - v) / range + 1); } return min + (v - min) % range; }; thx_Floats.wrapCircular = function(v,max) { v %= max; if(v < 0) { v += max; } return v; }; var thx_Functions0 = function() { }; $hxClasses["thx.Functions0"] = thx_Functions0; thx_Functions0.__name__ = "thx.Functions0"; thx_Functions0.after = function(callback,n) { return function() { if((n -= 1) == 0) { callback(); } }; }; thx_Functions0.join = function(fa,fb) { return function() { fa(); fb(); }; }; thx_Functions0.memoize = function(callback) { var result = null; return function() { if(result == null) { result = callback(); } return result; }; }; thx_Functions0.once = function(f) { return function() { var t = f; f = thx_Functions.noop; t(); }; }; thx_Functions0.negate = function(callback) { return function() { return !callback(); }; }; thx_Functions0.times = function(n,callback) { return function() { var _this = thx_Ints.range(n); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = callback(); } return result; }; }; thx_Functions0.timesi = function(n,callback) { return function() { var _this = thx_Ints.range(n); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = callback(_this[i]); } return result; }; }; var thx_Functions1 = function() { }; $hxClasses["thx.Functions1"] = thx_Functions1; thx_Functions1.__name__ = "thx.Functions1"; thx_Functions1.compose = function(fa,fb) { return function(v) { return fa(fb(v)); }; }; thx_Functions1.map = function(fab,fbc) { return function(a) { return fbc(fab(a)); }; }; thx_Functions1.contramap = function(fbc,fab) { return function(a) { return fbc(fab(a)); }; }; thx_Functions1.join = function(fa,fb) { return function(v) { fa(v); fb(v); }; }; thx_Functions1.memoize = function(callback,resolver) { if(null == resolver) { resolver = function(v) { return "" + Std.string(v); }; } var map_h = Object.create(null); return function(v) { var key = resolver(v); if(Object.prototype.hasOwnProperty.call(map_h,key)) { return map_h[key]; } var result = callback(v); map_h[key] = result; return result; }; }; thx_Functions1.negate = function(callback) { return function(v) { return !callback(v); }; }; thx_Functions1.noop = function(_) { }; thx_Functions1.times = function(n,callback) { return function(value) { var _this = thx_Ints.range(n); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = callback(value); } return result; }; }; thx_Functions1.timesi = function(n,callback) { return function(value) { var _this = thx_Ints.range(n); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = callback(value,_this[i]); } return result; }; }; thx_Functions1.swapArguments = function(callback) { return function(a2,a1) { return callback(a1,a2); }; }; var thx_Functions2 = function() { }; $hxClasses["thx.Functions2"] = thx_Functions2; thx_Functions2.__name__ = "thx.Functions2"; thx_Functions2.memoize = function(callback,resolver) { if(null == resolver) { resolver = function(v1,v2) { return "" + Std.string(v1) + ":" + Std.string(v2); }; } var map_h = Object.create(null); return function(v1,v2) { var key = resolver(v1,v2); if(Object.prototype.hasOwnProperty.call(map_h,key)) { return map_h[key]; } var result = callback(v1,v2); map_h[key] = result; return result; }; }; thx_Functions2.curry = function(f) { return function(a) { return function(b) { return f(a,b); }; }; }; thx_Functions2.join = function(fa,fb) { return function(v1,v2) { fa(v1,v2); fb(v1,v2); }; }; thx_Functions2.negate = function(callback) { return function(v1,v2) { return !callback(v1,v2); }; }; var thx_Functions3 = function() { }; $hxClasses["thx.Functions3"] = thx_Functions3; thx_Functions3.__name__ = "thx.Functions3"; thx_Functions3.memoize = function(callback,resolver) { if(null == resolver) { resolver = function(v1,v2,v3) { return "" + Std.string(v1) + ":" + Std.string(v2) + ":" + Std.string(v3); }; } var map_h = Object.create(null); return function(v1,v2,v3) { var key = resolver(v1,v2,v3); if(Object.prototype.hasOwnProperty.call(map_h,key)) { return map_h[key]; } var result = callback(v1,v2,v3); map_h[key] = result; return result; }; }; thx_Functions3.negate = function(callback) { return function(v1,v2,v3) { return !callback(v1,v2,v3); }; }; thx_Functions3.curry = function(f) { return function(a,b) { return function(c) { return f(a,b,c); }; }; }; var thx_Functions4 = function() { }; $hxClasses["thx.Functions4"] = thx_Functions4; thx_Functions4.__name__ = "thx.Functions4"; thx_Functions4.curry = function(f) { return function(a,b,c) { return function(d) { return f(a,b,c,d); }; }; }; var thx_Functions5 = function() { }; $hxClasses["thx.Functions5"] = thx_Functions5; thx_Functions5.__name__ = "thx.Functions5"; thx_Functions5.curry = function(f) { return function(a,b,c,d) { return function(e) { return f(a,b,c,d,e); }; }; }; var thx_Functions6 = function() { }; $hxClasses["thx.Functions6"] = thx_Functions6; thx_Functions6.__name__ = "thx.Functions6"; thx_Functions6.curry = function(f) { return function(a,b,c,d,e) { return function(f0) { return f(a,b,c,d,e,f0); }; }; }; var thx_Functions7 = function() { }; $hxClasses["thx.Functions7"] = thx_Functions7; thx_Functions7.__name__ = "thx.Functions7"; thx_Functions7.curry = function(f) { return function(a,b,c,d,e,f0) { return function(g) { return f(a,b,c,d,e,f0,g); }; }; }; var thx_Functions8 = function() { }; $hxClasses["thx.Functions8"] = thx_Functions8; thx_Functions8.__name__ = "thx.Functions8"; thx_Functions8.curry = function(f) { return function(a,b,c,d,e,f0,g) { return function(h) { return f(a,b,c,d,e,f0,g,h); }; }; }; var thx_Functions9 = function() { }; $hxClasses["thx.Functions9"] = thx_Functions9; thx_Functions9.__name__ = "thx.Functions9"; thx_Functions9.curry = function(f) { return function(a,b,c,d,e,f0,g,h) { return function(i) { return f(a,b,c,d,e,f0,g,h,i); }; }; }; var thx_Functions10 = function() { }; $hxClasses["thx.Functions10"] = thx_Functions10; thx_Functions10.__name__ = "thx.Functions10"; thx_Functions10.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f(a,b,c,d,e,f0,g,h,i,j); }; }; }; var thx_Functions11 = function() { }; $hxClasses["thx.Functions11"] = thx_Functions11; thx_Functions11.__name__ = "thx.Functions11"; thx_Functions11.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f(a,b,c,d,e,f0,g,h,i,j,k); }; }; }; var thx_Functions12 = function() { }; $hxClasses["thx.Functions12"] = thx_Functions12; thx_Functions12.__name__ = "thx.Functions12"; thx_Functions12.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; }; var thx_Functions13 = function() { }; $hxClasses["thx.Functions13"] = thx_Functions13; thx_Functions13.__name__ = "thx.Functions13"; thx_Functions13.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; }; var thx_Functions14 = function() { }; $hxClasses["thx.Functions14"] = thx_Functions14; thx_Functions14.__name__ = "thx.Functions14"; thx_Functions14.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; }; var thx_Functions15 = function() { }; $hxClasses["thx.Functions15"] = thx_Functions15; thx_Functions15.__name__ = "thx.Functions15"; thx_Functions15.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; }; var thx_Functions16 = function() { }; $hxClasses["thx.Functions16"] = thx_Functions16; thx_Functions16.__name__ = "thx.Functions16"; thx_Functions16.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o) { return function(p) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p); }; }; }; var thx_Functions17 = function() { }; $hxClasses["thx.Functions17"] = thx_Functions17; thx_Functions17.__name__ = "thx.Functions17"; thx_Functions17.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p) { return function(q) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q); }; }; }; var thx_Functions18 = function() { }; $hxClasses["thx.Functions18"] = thx_Functions18; thx_Functions18.__name__ = "thx.Functions18"; thx_Functions18.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q) { return function(r) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r); }; }; }; var thx_Functions19 = function() { }; $hxClasses["thx.Functions19"] = thx_Functions19; thx_Functions19.__name__ = "thx.Functions19"; thx_Functions19.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r) { return function(s) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s); }; }; }; var thx_Functions20 = function() { }; $hxClasses["thx.Functions20"] = thx_Functions20; thx_Functions20.__name__ = "thx.Functions20"; thx_Functions20.curry = function(f) { return function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s) { return function(t) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s,t); }; }; }; var thx_Reader = {}; thx_Reader.flatMap = function(this1,f) { return function(a) { return (f(this1(a)))(a); }; }; var thx_Functions = function() { }; $hxClasses["thx.Functions"] = thx_Functions; thx_Functions.__name__ = "thx.Functions"; thx_Functions.equality = function(a,b) { return a == b; }; thx_Functions.identity = function(value) { return value; }; thx_Functions.noop = function() { }; thx_Functions.passTo = function(a,f) { return f(a); }; thx_Functions.applyTo = function(f,a) { return f(a); }; var thx_Ints = function() { }; $hxClasses["thx.Ints"] = thx_Ints; thx_Ints.__name__ = "thx.Ints"; thx_Ints.abs = function(v) { if(v < 0) { return -v; } else { return v; } }; thx_Ints.canParse = function(s) { return thx_Ints.pattern_parse.match(s); }; thx_Ints.clamp = function(v,min,max) { if(v < min) { return min; } else if(v > max) { return max; } else { return v; } }; thx_Ints.clampSym = function(v,max) { var min = -max; if(v < min) { return min; } else if(v > max) { return max; } else { return v; } }; thx_Ints.compare = function(a,b) { return a - b; }; thx_Ints.gcd = function(m,n) { if(m < 0) { m = -m; } if(n < 0) { n = -n; } var t; while(true) { if(n == 0) { return m; } t = m; m = n; n = t % m; } }; thx_Ints.interpolate = function(f,a,b) { return Math.round(a + (b - a) * f); }; thx_Ints.isEven = function(v) { return v % 2 == 0; }; thx_Ints.isOdd = function(v) { return v % 2 != 0; }; thx_Ints.lpad = function(v,pad,len) { if(pad == null) { pad = "0"; } var neg = false; if(v < 0) { neg = true; v = -v; } return (neg ? "-" : "") + StringTools.lpad("" + v,pad,len); }; thx_Ints.lcm = function(m,n) { if(m < 0) { m = -m; } if(n < 0) { n = -n; } if(n == 0) { return m; } return m * (n / thx_Ints.gcd(m,n) | 0); }; thx_Ints.rpad = function(v,pad,len) { if(pad == null) { pad = "0"; } return StringTools.rpad("" + v,pad,len); }; thx_Ints.max = function(a,b) { if(a > b) { return a; } else { return b; } }; thx_Ints.min = function(a,b) { if(a < b) { return a; } else { return b; } }; thx_Ints.parse = function(s,base) { if(null == base) { if(s.substring(0,2) == "0x") { base = 16; } else { base = 10; } } var v = parseInt(s,base); if(isNaN(v)) { return null; } else { return v; } }; thx_Ints.random = function(min,max) { if(min == null) { min = 0; } return Std.random(max - min + 1) + min; }; thx_Ints.range = function(start,stop,step) { if(step == null) { step = 1; } if(null == stop) { stop = start; start = 0; } if((stop - start) / step == Infinity) { throw haxe_Exception.thrown("infinite range"); } var range = []; var i = -1; var j; if(step < 0) { while(true) { j = start + step * ++i; if(!(j > stop)) { break; } range.push(j); } } else { while(true) { j = start + step * ++i; if(!(j < stop)) { break; } range.push(j); } } return range; }; thx_Ints.rangeIter = function(start,stop,step) { if(step == null) { step = 1; } return new thx_RangeIterator(start,stop,step); }; thx_Ints.toString = function(value,base) { return value.toString(base); }; thx_Ints.toBase = function(value,base) { return value.toString(base); }; thx_Ints.toBool = function(v) { return v != 0; }; thx_Ints.toInt = function(s,base) { return thx_Ints.parse(s,base); }; thx_Ints.sign = function(value) { if(value < 0) { return -1; } else { return 1; } }; thx_Ints.wrapCircular = function(v,max) { v %= max; if(v < 0) { v += max; } return v; }; var thx_RangeIterator = function(start,stop,step) { if(step == null) { step = 1; } this.current = start; this.stop = stop; this.step = step; }; $hxClasses["thx.RangeIterator"] = thx_RangeIterator; thx_RangeIterator.__name__ = "thx.RangeIterator"; thx_RangeIterator.prototype = { current: null ,stop: null ,step: null ,hasNext: function() { if(!(this.stop == null || this.step >= 0 && this.current < this.stop)) { if(this.step < 0) { return this.current > this.stop; } else { return false; } } else { return true; } } ,next: function() { var result = this.current; this.current += this.step; return result; } ,__class__: thx_RangeIterator }; var thx_Iterables = function() { }; $hxClasses["thx.Iterables"] = thx_Iterables; thx_Iterables.__name__ = "thx.Iterables"; thx_Iterables.all = function(it,predicate) { return thx_Iterators.all($getIterator(it),predicate); }; thx_Iterables.any = function(it,predicate) { return thx_Iterators.any($getIterator(it),predicate); }; thx_Iterables.eachPair = function(it,handler) { thx_Iterators.eachPair($getIterator(it),handler); }; thx_Iterables.equals = function(a,b,equality) { return thx_Iterators.equals($getIterator(a),$getIterator(b),equality); }; thx_Iterables.filter = function(it,predicate) { return thx_Iterators.filter($getIterator(it),predicate); }; thx_Iterables.find = function(it,predicate) { return thx_Iterators.find($getIterator(it),predicate); }; thx_Iterables.findOption = function(it,predicate) { var value = thx_Iterators.find($getIterator(it),predicate); if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Iterables.first = function(it) { return thx_Iterators.first($getIterator(it)); }; thx_Iterables.get = function(it,index) { return thx_Iterators.get($getIterator(it),index); }; thx_Iterables.getOption = function(it,index) { var value = thx_Iterators.get($getIterator(it),index); if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Iterables.last = function(it) { return thx_Iterators.last($getIterator(it)); }; thx_Iterables.hasElements = function(it) { return $getIterator(it).hasNext(); }; thx_Iterables.indexOf = function(it,element) { return thx_Iterators.indexOf($getIterator(it),element); }; thx_Iterables.isEmpty = function(it) { return !$getIterator(it).hasNext(); }; thx_Iterables.isIterable = function(v) { var fields = Reflect.isObject(v) && null == js_Boot.getClass(v) ? Reflect.fields(v) : Type.getInstanceFields(js_Boot.getClass(v)); if(!Lambda.has(fields,"iterator")) { return false; } return Reflect.isFunction(Reflect.field(v,"iterator")); }; thx_Iterables.map = function(it,f) { return thx_Iterators.map($getIterator(it),f); }; thx_Iterables.fmap = function(it,f) { return { iterator : function() { return thx_Iterators.fmap($getIterator(it),f); }}; }; thx_Iterables.mapi = function(it,f) { return thx_Iterators.mapi($getIterator(it),f); }; thx_Iterables.fmapi = function(it,f) { return { iterator : function() { return thx_Iterators.fmapi($getIterator(it),f); }}; }; thx_Iterables.order = function(it,sort) { return thx_Iterators.order($getIterator(it),sort); }; thx_Iterables.reduce = function(it,callback,initial) { return thx_Iterators.reduce($getIterator(it),callback,initial); }; thx_Iterables.reducei = function(it,callback,initial) { return thx_Iterators.reducei($getIterator(it),callback,initial); }; thx_Iterables.toArray = function(it) { return thx_Iterators.toArray($getIterator(it)); }; thx_Iterables.minBy = function(it,f,ord) { var found = haxe_ds_Option.None; var a = $getIterator(it); while(a.hasNext()) { var a1 = [a.next()]; if(!thx_Options.any(found,(function(a) { return function(a0) { return ord(f(a0),f(a[0])) == thx_OrderingImpl.LT; }; })(a1))) { found = haxe_ds_Option.Some(a1[0]); } } return found; }; thx_Iterables.maxBy = function(it,f,ord) { return thx_Iterables.minBy(it,f,thx_Ord.inverse(ord)); }; thx_Iterables.min = function(it,ord) { return thx_Iterables.minBy(it,thx_Functions.identity,ord); }; thx_Iterables.max = function(it,ord) { return thx_Iterables.minBy(it,thx_Functions.identity,thx_Ord.inverse(ord)); }; thx_Iterables.extremaBy = function(it,f,ord) { var found = haxe_ds_Option.None; var a = $getIterator(it); while(a.hasNext()) { var a1 = a.next(); switch(found._hx_index) { case 0: var _g = found.v; var t = _g; if(ord(f(a1),f(t._0)) == thx_OrderingImpl.LT) { found = haxe_ds_Option.Some({ _0 : a1, _1 : t._1}); } else { var t1 = _g; if(ord(f(a1),f(t1._1)) == thx_OrderingImpl.GT) { found = haxe_ds_Option.Some({ _0 : t1._0, _1 : a1}); } } break; case 1: found = haxe_ds_Option.Some({ _0 : a1, _1 : a1}); break; default: } } return found; }; thx_Iterables.extrema = function(it,ord) { return thx_Iterables.extremaBy(it,thx_Functions.identity,ord); }; thx_Iterables.takeUntil = function(it,fn) { return thx_Iterators.takeUntil($getIterator(it),fn); }; thx_Iterables.dropLeft = function(itr,n) { return { iterator : function() { var itr1 = $getIterator(itr); var count = n; while(count > 0) if(itr1.hasNext()) { itr1.next(); } return { next : $bind(itr1,itr1.next), hasNext : $bind(itr1,itr1.hasNext)}; }}; }; thx_Iterables.dropUntil = function(it,fn) { return thx_Iterators.dropUntil($getIterator(it),fn); }; thx_Iterables.unionBy = function(a,b,eq) { var res = []; var e = $getIterator(a); while(e.hasNext()) { var e1 = e.next(); res.push(e1); } var e = $getIterator(b); while(e.hasNext()) { var e1 = [e.next()]; if(!thx_Iterables.any(res,(function(e) { return function(x) { return eq(x,e[0]); }; })(e1))) { res.push(e1[0]); } } return res; }; thx_Iterables.differenceBy = function(a,b,eq) { var res = []; var e = $getIterator(a); while(e.hasNext()) { var e1 = [e.next()]; if(!thx_Iterables.any(b,(function(e) { return function(x) { return eq(x,e[0]); }; })(e1))) { res.push(e1[0]); } } return res; }; thx_Iterables.unzip = function(it) { return thx_Iterators.unzip($getIterator(it)); }; thx_Iterables.unzip3 = function(it) { return thx_Iterators.unzip3($getIterator(it)); }; thx_Iterables.unzip4 = function(it) { return thx_Iterators.unzip4($getIterator(it)); }; thx_Iterables.unzip5 = function(it) { return thx_Iterators.unzip5($getIterator(it)); }; thx_Iterables.zip = function(it1,it2) { return thx_Iterators.zip($getIterator(it1),$getIterator(it2)); }; thx_Iterables.zip3 = function(it1,it2,it3) { return thx_Iterators.zip3($getIterator(it1),$getIterator(it2),$getIterator(it3)); }; thx_Iterables.zip4 = function(it1,it2,it3,it4) { return thx_Iterators.zip4($getIterator(it1),$getIterator(it2),$getIterator(it3),$getIterator(it4)); }; thx_Iterables.zip5 = function(it1,it2,it3,it4,it5) { return thx_Iterators.zip5($getIterator(it1),$getIterator(it2),$getIterator(it3),$getIterator(it4),$getIterator(it5)); }; var thx_Iterators = function() { }; $hxClasses["thx.Iterators"] = thx_Iterators; thx_Iterators.__name__ = "thx.Iterators"; thx_Iterators.all = function(it,predicate) { var element = it; while(element.hasNext()) { var element1 = element.next(); if(!predicate(element1)) { return false; } } return true; }; thx_Iterators.any = function(it,predicate) { var element = it; while(element.hasNext()) { var element1 = element.next(); if(predicate(element1)) { return true; } } return false; }; thx_Iterators.equals = function(a,b,equality) { if(null == equality) { equality = thx_Functions.equality; } var ae; var be; var an; var bn; while(true) { an = a.hasNext(); bn = b.hasNext(); if(!an && !bn) { return true; } if(!an || !bn) { return false; } if(!equality(a.next(),b.next())) { return false; } } }; thx_Iterators.get = function(it,index) { var pos = 0; var i = it; while(i.hasNext()) { var i1 = i.next(); if(pos++ == index) { return i1; } } return null; }; thx_Iterators.getOption = function(it,index) { var value = thx_Iterators.get(it,index); if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Iterators.eachPair = function(it,handler) { thx_Arrays.eachPair(thx_Iterators.toArray(it),handler); }; thx_Iterators.filter = function(it,predicate) { return thx_Iterators.reduce(it,function(acc,element) { if(predicate(element)) { acc.push(element); } return acc; },[]); }; thx_Iterators.find = function(it,f) { var element = it; while(element.hasNext()) { var element1 = element.next(); if(f(element1)) { return element1; } } return null; }; thx_Iterators.findOption = function(it,f) { var value = thx_Iterators.find(it,f); if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Iterators.first = function(it) { if(it.hasNext()) { return it.next(); } else { return null; } }; thx_Iterators.hasElements = function(it) { return it.hasNext(); }; thx_Iterators.indexOf = function(it,element) { var pos = 0; var v = it; while(v.hasNext()) { var v1 = v.next(); if(element == v1) { return pos; } ++pos; } return -1; }; thx_Iterators.isEmpty = function(it) { return !it.hasNext(); }; thx_Iterators.isIterator = function(v) { var fields = Reflect.isObject(v) && null == js_Boot.getClass(v) ? Reflect.fields(v) : Type.getInstanceFields(js_Boot.getClass(v)); if(!Lambda.has(fields,"next") || !Lambda.has(fields,"hasNext")) { return false; } if(Reflect.isFunction(Reflect.field(v,"next"))) { return Reflect.isFunction(Reflect.field(v,"hasNext")); } else { return false; } }; thx_Iterators.last = function(it) { var buf = null; while(it.hasNext()) buf = it.next(); return buf; }; thx_Iterators.forEach = function(it,proc) { while(it.hasNext()) proc(it.next()); }; thx_Iterators.map = function(it,f) { var acc = []; var v = it; while(v.hasNext()) { var v1 = v.next(); acc.push(f(v1)); } return acc; }; thx_Iterators.fmap = function(it,f) { return new thx_MapIterator(it,f); }; thx_Iterators.mapi = function(it,f) { var acc = []; var i = 0; var v = it; while(v.hasNext()) { var v1 = v.next(); acc.push(f(v1,i++)); } return acc; }; thx_Iterators.fmapi = function(it,f) { return new thx_MapIIterator(it,f); }; thx_Iterators.order = function(it,sort) { var n = thx_Iterators.toArray(it); n.sort(sort); return n; }; thx_Iterators.reduce = function(it,callback,initial) { var result = initial; while(it.hasNext()) result = callback(result,it.next()); return result; }; thx_Iterators.reducei = function(it,callback,initial) { thx_Iterators.mapi(it,function(v,i) { initial = callback(initial,v,i); }); return initial; }; thx_Iterators.foldLeft = function(it,zero,f) { return thx_Iterators.reduce(it,f,zero); }; thx_Iterators.foldMap = function(it,f,m) { var _e = m; var tmp = function(a0,a1) { return thx_Monoid.append(_e,a0,a1); }; return thx_Iterators.foldLeft(thx_Iterators.fmap(it,f),thx_Monoid.get_zero(m),tmp); }; thx_Iterators.takeUntil = function(it,f) { var out = []; var v = it; while(v.hasNext()) { var v1 = v.next(); if(f(v1)) { out.push(v1); } else { break; } } return out; }; thx_Iterators.dropUntil = function(it,f) { var done = false; var out = []; var v = it; while(v.hasNext()) { var v1 = v.next(); if(!done) { if(!f(v1)) { done = true; out.push(v1); } } else { out.push(v1); } } return out; }; thx_Iterators.toArray = function(it) { var elements = []; var element = it; while(element.hasNext()) { var element1 = element.next(); elements.push(element1); } return elements; }; thx_Iterators.unzip = function(it) { var a1 = []; var a2 = []; thx_Iterators.forEach(it,function(t) { a1.push(t._0); a2.push(t._1); }); return { _0 : a1, _1 : a2}; }; thx_Iterators.unzip3 = function(it) { var a1 = []; var a2 = []; var a3 = []; thx_Iterators.forEach(it,function(t) { a1.push(t._0); a2.push(t._1); a3.push(t._2); }); return { _0 : a1, _1 : a2, _2 : a3}; }; thx_Iterators.unzip4 = function(it) { var a1 = []; var a2 = []; var a3 = []; var a4 = []; thx_Iterators.forEach(it,function(t) { a1.push(t._0); a2.push(t._1); a3.push(t._2); a4.push(t._3); }); return { _0 : a1, _1 : a2, _2 : a3, _3 : a4}; }; thx_Iterators.unzip5 = function(it) { var a1 = []; var a2 = []; var a3 = []; var a4 = []; var a5 = []; thx_Iterators.forEach(it,function(t) { a1.push(t._0); a2.push(t._1); a3.push(t._2); a4.push(t._3); a5.push(t._4); }); return { _0 : a1, _1 : a2, _2 : a3, _3 : a4, _4 : a5}; }; thx_Iterators.zip = function(it1,it2) { var array = []; while(it1.hasNext() && it2.hasNext()) array.push({ _0 : it1.next(), _1 : it2.next()}); return array; }; thx_Iterators.zip3 = function(it1,it2,it3) { var array = []; while(it1.hasNext() && it2.hasNext() && it3.hasNext()) array.push({ _0 : it1.next(), _1 : it2.next(), _2 : it3.next()}); return array; }; thx_Iterators.zip4 = function(it1,it2,it3,it4) { var array = []; while(it1.hasNext() && it2.hasNext() && it3.hasNext() && it4.hasNext()) array.push({ _0 : it1.next(), _1 : it2.next(), _2 : it3.next(), _3 : it4.next()}); return array; }; thx_Iterators.zip5 = function(it1,it2,it3,it4,it5) { var array = []; while(it1.hasNext() && it2.hasNext() && it3.hasNext() && it4.hasNext() && it5.hasNext()) array.push({ _0 : it1.next(), _1 : it2.next(), _2 : it3.next(), _3 : it4.next(), _4 : it5.next()}); return array; }; var thx_MapIterator = function(base,f) { this.base = base; this.f = f; }; $hxClasses["thx.MapIterator"] = thx_MapIterator; thx_MapIterator.__name__ = "thx.MapIterator"; thx_MapIterator.prototype = { base: null ,f: null ,next: function() { return this.f(this.base.next()); } ,hasNext: function() { return this.base.hasNext(); } ,__class__: thx_MapIterator }; var thx_MapIIterator = function(base,f) { this.i = 0; this.base = base; this.f = f; }; $hxClasses["thx.MapIIterator"] = thx_MapIIterator; thx_MapIIterator.__name__ = "thx.MapIIterator"; thx_MapIIterator.prototype = { base: null ,f: null ,i: null ,next: function() { var result = this.f(this.base.next(),this.i); this.i++; return result; } ,hasNext: function() { return this.base.hasNext(); } ,__class__: thx_MapIIterator }; var thx_Maps = function() { }; $hxClasses["thx.Maps"] = thx_Maps; thx_Maps.__name__ = "thx.Maps"; thx_Maps.copyTo = function(src,dst) { var key = src.keys(); while(key.hasNext()) { var key1 = key.next(); dst.set(key1,src.get(key1)); } return dst; }; thx_Maps.tuples = function(map) { return thx_Iterators.map(map.keys(),function(key) { return { _0 : key, _1 : map.get(key)}; }); }; thx_Maps.mapValues = function(map,f,acc) { return thx_Maps.reduce(map,function(m,t) { m.set(t._0,f(t._1)); return m; },acc); }; thx_Maps.reduce = function(map,f,acc) { return thx_Arrays.reduce(thx_Maps.tuples(map),f,acc); }; thx_Maps.values = function(map) { return thx_Iterators.map(map.keys(),function(key) { return map.get(key); }); }; thx_Maps.fromArray = function(array,toKey,toVal) { return thx_Arrays.reduce(array,function(acc,curr) { var key = toKey(curr); var value = toVal(curr); acc.h[key] = value; return acc; },new haxe_ds_StringMap()); }; thx_Maps.foldLeftWithKeys = function(map,f,acc) { return thx_Iterators.reduce(map.keys(),function(acc,k) { return f(acc,k,map.get(k)); },acc); }; thx_Maps.getOption = function(map,key) { var value = map.get(key); if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Maps.toObject = function(map) { return thx_Arrays.reduce(thx_Maps.tuples(map),function(o,t) { o[t._0] = t._1; return o; },{ }); }; thx_Maps.getAlt = function(map,key,alt) { var v = map.get(key); if(null == v) { return alt; } else { return v; } }; thx_Maps.getAltSet = function(map,key,alt) { var v = map.get(key); if(v != null) { return v; } else { map.set(key,alt); return alt; } }; thx_Maps.isEmpty = function(map) { return !map.iterator().hasNext(); }; thx_Maps.isMap = function(v) { return js_Boot.__implements(v,haxe_IMap); }; thx_Maps.string = function(m) { var _this = thx_Maps.tuples(m); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var t = _this[i]; result[i] = thx_Dynamics.string(t._0) + " => " + thx_Dynamics.string(t._1); } return "[" + result.join(", ") + "]"; }; thx_Maps.merge = function(dest,sources) { return thx_Arrays.reduce(sources,function(result,source) { return thx_Iterators.reduce(source.keys(),function(result,key) { result.set(key,source.get(key)); return result; },result); },dest); }; var thx_Monoid = {}; thx_Monoid.__properties__ = {get_zero:"get_zero",get_semigroup:"get_semigroup"}; thx_Monoid.get_semigroup = function(this1) { return this1.append; }; thx_Monoid.get_zero = function(this1) { return this1.zero; }; thx_Monoid.append = function(this1,a0,a1) { return this1.append(a0,a1); }; var thx_Nel = {}; thx_Nel.nel = function(hd,tl) { var _g = thx_Nel.fromArray(tl); switch(_g._hx_index) { case 0: var nel = _g.v; return thx_Nel.cons(hd,nel); case 1: return thx_Nel.pure(hd); } }; thx_Nel.pure = function(a) { return thx_NonEmptyList.Single(a); }; thx_Nel.cons = function(a,nl) { return thx_NonEmptyList.ConsNel(a,nl); }; thx_Nel.fromArray = function(arr) { if(arr.length == 0) { return haxe_ds_Option.None; } else { var res = thx_NonEmptyList.Single(arr[arr.length - 1]); var i = thx_Ints.rangeIter(arr.length - 2,-1,-1); while(i.hasNext()) { var i1 = i.next(); res = thx_NonEmptyList.ConsNel(arr[i1],res); } return haxe_ds_Option.Some(res); } }; thx_Nel.map = function(this1,f) { var fb = f; return thx_Nel.flatMap(this1,function(v) { return thx_Nel.pure(fb(v)); }); }; thx_Nel.flatMap = function(this1,f) { switch(this1._hx_index) { case 0: var x = this1.x; return f(x); case 1: var x = this1.x; var xs = this1.xs; return thx_Nel.append(f(x),thx_Nel.flatMap(xs,f)); } }; thx_Nel.fold = function(this1,f) { switch(this1._hx_index) { case 0: var x = this1.x; return x; case 1: var x = this1.x; var xs = this1.xs; return f(x,thx_Nel.fold(xs,f)); } }; thx_Nel.append = function(this1,nel) { switch(this1._hx_index) { case 0: var x = this1.x; return thx_NonEmptyList.ConsNel(x,nel); case 1: var x = this1.x; var xs = this1.xs; return thx_NonEmptyList.ConsNel(x,thx_Nel.append(xs,nel)); } }; thx_Nel.concat = function(this1,xs) { var _g = thx_Nel.fromArray(xs); switch(_g._hx_index) { case 0: var other = _g.v; return thx_Nel.append(this1,other); case 1: return this1; } }; thx_Nel.head = function(this1) { switch(this1._hx_index) { case 0: var x = this1.x; return x; case 1: var x = this1.x; var xs = this1.xs; return x; } }; thx_Nel.tail = function(this1) { switch(this1._hx_index) { case 0: var x = this1.x; return []; case 1: var x = this1.x; var xs = this1.xs; return thx_Nel.toArray(xs); } }; thx_Nel.init = function(this1) { switch(this1._hx_index) { case 0: var x = this1.x; return []; case 1: var x = this1.x; var xs = this1.xs; return [x].concat(thx_Nel.init(xs)); } }; thx_Nel.last = function(this1) { switch(this1._hx_index) { case 0: var x = this1.x; return x; case 1: var x = this1.x; var xs = this1.xs; return thx_Nel.last(xs); } }; thx_Nel.push = function(this1,a) { return thx_Nel.append(this1,thx_NonEmptyList.Single(a)); }; thx_Nel.pop = function(this1) { return { _0 : thx_Nel.last(this1), _1 : thx_Nel.init(this1)}; }; thx_Nel.unshift = function(this1,a) { return thx_NonEmptyList.ConsNel(a,this1); }; thx_Nel.shift = function(this1) { return { _0 : thx_Nel.head(this1), _1 : thx_Nel.tail(this1)}; }; thx_Nel.toArray = function(this1) { var go = null; go = function(acc,xs) { switch(xs._hx_index) { case 0: var x = xs.x; return thx_Arrays.append(acc,x); case 1: var x = xs.x; var xs1 = xs.xs; return go(thx_Arrays.append(acc,x),xs1); } }; return go([],this1); }; thx_Nel.intersperse = function(this1,a) { switch(this1._hx_index) { case 0: var x = this1.x; return thx_NonEmptyList.Single(x); case 1: var x = this1.x; var xs = this1.xs; return thx_NonEmptyList.ConsNel(x,thx_NonEmptyList.ConsNel(a,thx_Nel.intersperse(xs,a))); } }; thx_Nel.semigroup = function() { return function(nl,nr) { return thx_Nel.append(nl,nr); }; }; var thx_NonEmptyList = $hxEnums["thx.NonEmptyList"] = { __ename__:"thx.NonEmptyList",__constructs__:null ,Single: ($_=function(x) { return {_hx_index:0,x:x,__enum__:"thx.NonEmptyList",toString:$estr}; },$_._hx_name="Single",$_.__params__ = ["x"],$_) ,ConsNel: ($_=function(x,xs) { return {_hx_index:1,x:x,xs:xs,__enum__:"thx.NonEmptyList",toString:$estr}; },$_._hx_name="ConsNel",$_.__params__ = ["x","xs"],$_) }; thx_NonEmptyList.__constructs__ = [thx_NonEmptyList.Single,thx_NonEmptyList.ConsNel]; thx_NonEmptyList.__empty_constructs__ = []; var thx_Nil = $hxEnums["thx.Nil"] = { __ename__:"thx.Nil",__constructs__:null ,nil: {_hx_name:"nil",_hx_index:0,__enum__:"thx.Nil",toString:$estr} }; thx_Nil.__constructs__ = [thx_Nil.nil]; thx_Nil.__empty_constructs__ = [thx_Nil.nil]; var thx_Objects = function() { }; $hxClasses["thx.Objects"] = thx_Objects; thx_Objects.__name__ = "thx.Objects"; thx_Objects.compare = function(a,b) { var fields = Reflect.fields(a); var v = thx_Arrays.compare(fields,Reflect.fields(b)); if(v != 0) { return v; } var _g = 0; while(_g < fields.length) { var field = fields[_g]; ++_g; v = thx_Dynamics.compare(Reflect.field(a,field),Reflect.field(b,field)); if(v != 0) { return v; } } return 0; }; thx_Objects.isEmpty = function(o) { return Reflect.fields(o).length == 0; }; thx_Objects.exists = function(o,name) { return Object.prototype.hasOwnProperty.call(o,name); }; thx_Objects.fields = function(o) { return Reflect.fields(o); }; thx_Objects.deflate = function(o,flattenArrays) { if(flattenArrays == null) { flattenArrays = true; } var f = null; f = function(v) { if(((v) instanceof Array)) { if(flattenArrays) { if(v.length == 0) { return thx_Either.Left([]); } else { var a = v; return thx_Either.Right(thx_Arrays.reducei(a,function(map,value,i) { var _g = f(value); switch(_g._hx_index) { case 0: var v = _g.value; map.h["" + i] = v; break; case 1: var m = _g.value; var h = m.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; map.h["" + i + "." + k] = m.h[k]; } break; } return map; },new haxe_ds_StringMap())); } } else { return thx_Either.Left(v); } } else if(Reflect.isObject(v) && null == js_Boot.getClass(v)) { return thx_Either.Right(thx_Arrays.reduce(Reflect.fields(v),function(map,key) { var _g = f(Reflect.field(v,key)); switch(_g._hx_index) { case 0: var v1 = _g.value; map.h["" + key] = v1; break; case 1: var m = _g.value; var h = m.h; var inlStringMapValueIterator_h = h; var inlStringMapValueIterator_keys = Object.keys(h); var inlStringMapValueIterator_length = inlStringMapValueIterator_keys.length; var inlStringMapValueIterator_current = 0; if(inlStringMapValueIterator_current >= inlStringMapValueIterator_length) { map.h["" + key] = { }; } else { var h = m.h; var k_h = h; var k_keys = Object.keys(h); var k_length = k_keys.length; var k_current = 0; while(k_current < k_length) { var k = k_keys[k_current++]; map.h["" + key + "." + k] = m.h[k]; } } break; } return map; },new haxe_ds_StringMap())); } else { return thx_Either.Left(v); } }; var _g = f(o); switch(_g._hx_index) { case 0: var v = _g.value; return v; case 1: var m = _g.value; return thx_Maps.toObject(m); } }; thx_Objects.inflate = function(o) { return thx_Arrays.reduce(Reflect.fields(o),function(acc,field) { return thx_Objects.setPath(acc,field,Reflect.field(o,field)); },{ }); }; thx_Objects.combine = function(first,second) { return thx_Objects.shallowCombine(first,second); }; thx_Objects.shallowCombine = function(first,second) { var to = { }; var _g = 0; var _g1 = Reflect.fields(first); while(_g < _g1.length) { var field = _g1[_g]; ++_g; to[field] = Reflect.field(first,field); } var _g = 0; var _g1 = Reflect.fields(second); while(_g < _g1.length) { var field = _g1[_g]; ++_g; to[field] = Reflect.field(second,field); } return to; }; thx_Objects.deepCombine = function(first,second) { return thx_Objects.copyTo(second,first,true); }; thx_Objects.assign = function(to,from,replacef) { if(null == replacef) { replacef = function(field,oldv,newv) { return newv; }; } var _g = 0; var _g1 = Reflect.fields(from); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var newv = Reflect.field(from,field); if(Object.prototype.hasOwnProperty.call(to,field)) { to[field] = replacef(field,Reflect.field(to,field),newv); } else { to[field] = newv; } } return to; }; thx_Objects.copyTo = function(src,dst,cloneInstances) { if(cloneInstances == null) { cloneInstances = false; } var _g = 0; var _g1 = Reflect.fields(src); while(_g < _g1.length) { var field = _g1[_g]; ++_g; var sv = thx_Dynamics.clone(Reflect.field(src,field),cloneInstances); var dv = Reflect.field(dst,field); var tmp; var v = sv; if(Reflect.isObject(v) && null == js_Boot.getClass(v)) { var v1 = dv; tmp = Reflect.isObject(v1) && null == js_Boot.getClass(v1); } else { tmp = false; } if(tmp) { thx_Objects.copyTo(sv,dv); } else { dst[field] = sv; } } return dst; }; thx_Objects.clone = function(src,cloneInstances) { if(cloneInstances == null) { cloneInstances = false; } return thx_Dynamics.clone(src,cloneInstances); }; thx_Objects.toMap = function(o) { return thx_Arrays.reduce(thx_Objects.tuples(o),function(map,t) { map.h[t._0] = t._1; return map; },new haxe_ds_StringMap()); }; thx_Objects.size = function(o) { return Reflect.fields(o).length; }; thx_Objects.string = function(o) { var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var key = _this[i]; var v = Reflect.field(o,key); var s = typeof(v) == "string" ? thx_Strings.quote(v) : thx_Dynamics.string(v); result[i] = "" + key + " : " + s; } return "{" + result.join(", ") + "}"; }; thx_Objects.stringImpl = function(o,cache) { }; thx_Objects.values = function(o) { var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = Reflect.field(o,_this[i]); } return result; }; thx_Objects.tuples = function(o) { var _this = Reflect.fields(o); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; var key = _this[i]; result[i] = { _0 : key, _1 : Reflect.field(o,key)}; } return result; }; thx_Objects.hasPath = function(o,path) { var _this_r = new RegExp("\\[(\\d+)\\]","g".split("u").join("")); path = path.replace(_this_r,".$1"); var paths = path.split("."); var current = o; var _g = 0; while(_g < paths.length) { var currentPath = paths[_g]; ++_g; if(thx_Strings.DIGITS.match(currentPath)) { var index = Std.parseInt(currentPath); var value = current; var arr = ((value) instanceof Array) ? value : null; if(null == arr || arr.length <= index) { return false; } current = arr[index]; } else if(Object.prototype.hasOwnProperty.call(current,currentPath)) { current = Reflect.field(current,currentPath); } else { return false; } } return true; }; thx_Objects.hasPathValue = function(o,path) { return thx_Objects.getPath(o,path) != null; }; thx_Objects.getPath = function(o,path) { var _this_r = new RegExp("\\[(\\d+)\\]","g".split("u").join("")); path = path.replace(_this_r,".$1"); var paths = path.split("."); var current = o; var _g = 0; while(_g < paths.length) { var currentPath = paths[_g]; ++_g; if(current == null) { return null; } else if(thx_Strings.DIGITS.match(currentPath)) { var index = Std.parseInt(currentPath); var value = current; var arr = ((value) instanceof Array) ? value : null; if(null == arr) { return null; } current = arr[index]; } else if(Object.prototype.hasOwnProperty.call(current,currentPath)) { current = Reflect.field(current,currentPath); } else { return null; } } return current; }; thx_Objects.getPathOption = function(o,path) { var value = thx_Objects.getPath(o,path); if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Objects.parsePath = function(o,path,parse) { var this1 = thx_Options.toSuccessNel(thx_Objects.getPathOption(o,path),"Object does not contain path " + path); switch(this1._hx_index) { case 0: var a = this1.value; return thx_Either.Left(a); case 1: var b = this1.value; return parse(b); } }; thx_Objects.getPathOr = function(o,path,alt) { return thx_Options.getOrElse(thx_Objects.getPathOption(o,path),alt); }; thx_Objects.setPath = function(o,path,val) { var _this_r = new RegExp("\\[(\\d+)\\]","g".split("u").join("")); path = path.replace(_this_r,".$1"); var paths = path.split("."); var current = o; var _g = 0; var _g1 = paths.length - 1; while(_g < _g1) { var i = _g++; var currentPath = paths[i]; var nextPath = paths[i + 1]; if(thx_Strings.DIGITS.match(currentPath) || currentPath == "*") { var index = currentPath == "*" ? current.length : Std.parseInt(currentPath); if(current[index] == null) { if(thx_Strings.DIGITS.match(nextPath) || nextPath == "*") { current[index] = []; } else { current[index] = { }; } } current = current[index]; } else { if(!Object.prototype.hasOwnProperty.call(current,currentPath)) { if(thx_Strings.DIGITS.match(nextPath) || nextPath == "*") { current[currentPath] = []; } else { current[currentPath] = { }; } } current = Reflect.field(current,currentPath); } } var p = paths[paths.length - 1]; if(thx_Strings.DIGITS.match(p)) { var index = Std.parseInt(p); current[index] = val; } else if(p == "*") { current.push(val); } else { current[p] = val; } return o; }; thx_Objects.removePath = function(o,path) { var _this_r = new RegExp("\\[(\\d+)\\]","g".split("u").join("")); path = path.replace(_this_r,".$1"); var paths = path.split("."); var target = paths.pop(); try { var sub = thx_Arrays.reduce(paths,function(existing,nextPath) { if(nextPath == "*") { return existing.pop(); } else if(thx_Strings.DIGITS.match(nextPath)) { var current = existing; var index = Std.parseInt(nextPath); return current[index]; } else { return Reflect.field(existing,nextPath); } },o); if(null != sub) { Reflect.deleteField(sub,target); } } catch( _g ) { haxe_NativeStackTrace.lastError = _g; } return o; }; thx_Objects.normalizePath = function(path) { var _this_r = new RegExp("\\[(\\d+)\\]","g".split("u").join("")); return path.replace(_this_r,".$1"); }; var thx_Options = function() { }; $hxClasses["thx.Options"] = thx_Options; thx_Options.__name__ = "thx.Options"; thx_Options.ofValue = function(value) { if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Options.maybe = function(value) { if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Options.equals = function(a,b,eq) { switch(a._hx_index) { case 0: if(b._hx_index == 0) { var b1 = b.v; var a1 = a.v; if(null == eq) { eq = function(a,b) { return a == b; }; } return eq(a1,b1); } else { return false; } break; case 1: if(b._hx_index == 1) { return true; } else { return false; } break; } }; thx_Options.equalsValue = function(a,b,eq) { return thx_Options.equals(a,null == b ? haxe_ds_Option.None : haxe_ds_Option.Some(b),eq); }; thx_Options.map = function(option,callback) { switch(option._hx_index) { case 0: var v = option.v; return haxe_ds_Option.Some(callback(v)); case 1: return haxe_ds_Option.None; } }; thx_Options.ap = function(option,fopt) { switch(option._hx_index) { case 0: var v = option.v; return thx_Options.map(fopt,function(f) { return f(v); }); case 1: return haxe_ds_Option.None; } }; thx_Options.flatMap = function(option,callback) { switch(option._hx_index) { case 0: var v = option.v; return callback(v); case 1: return haxe_ds_Option.None; } }; thx_Options.join = function(option) { switch(option._hx_index) { case 0: var v = option.v; return v; case 1: return haxe_ds_Option.None; } }; thx_Options.cata = function(option,ifNone,f) { switch(option._hx_index) { case 0: var v = option.v; return f(v); case 1: return ifNone; } }; thx_Options.cataf = function(option,ifNone,f) { switch(option._hx_index) { case 0: var v = option.v; return f(v); case 1: return ifNone(); } }; thx_Options.foldLeft = function(option,b,f) { switch(option._hx_index) { case 0: var v = option.v; return f(b,v); case 1: return b; } }; thx_Options.foldLeftf = function(option,b,f) { switch(option._hx_index) { case 0: var v = option.v; return f(b(),v); case 1: return b(); } }; thx_Options.foldMap = function(option,f,m) { var _e = m; var tmp = function(a0,a1) { return thx_Monoid.append(_e,a0,a1); }; return thx_Options.foldLeft(thx_Options.map(option,f),thx_Monoid.get_zero(m),tmp); }; thx_Options.filter = function(option,f) { if(option._hx_index == 0) { var v = option.v; if(f(v)) { return option; } else { return haxe_ds_Option.None; } } else { return haxe_ds_Option.None; } }; thx_Options.toArray = function(option) { switch(option._hx_index) { case 0: var v = option.v; return [v]; case 1: return []; } }; thx_Options.toBool = function(option) { switch(option._hx_index) { case 0: var _g = option.v; return true; case 1: return false; } }; thx_Options.isNone = function(option) { return !thx_Options.toBool(option); }; thx_Options.toOption = function(value) { if(null == value) { return haxe_ds_Option.None; } else { return haxe_ds_Option.Some(value); } }; thx_Options.get = function(option) { switch(option._hx_index) { case 0: var v = option.v; return v; case 1: return null; } }; thx_Options.getOrElse = function(option,alt) { switch(option._hx_index) { case 0: var v = option.v; return v; case 1: return alt; } }; thx_Options.getOrElseF = function(option,alt) { switch(option._hx_index) { case 0: var v = option.v; return v; case 1: return alt(); } }; thx_Options.getOrThrow = function(option,err,posInfo) { if(null == err) { err = new thx_Error("Could not extract value from option",null,posInfo); } switch(option._hx_index) { case 0: var v = option.v; return v; case 1: throw err; } }; thx_Options.getOrFail = function(option,msg,posInfo) { return thx_Options.getOrThrow(option,new thx_Error(msg,null,posInfo),{ fileName : "thx/Options.hx", lineNumber : 212, className : "thx.Options", methodName : "getOrFail"}); }; thx_Options.orElse = function(option,alt) { switch(option._hx_index) { case 0: var _g = option.v; return option; case 1: return alt; } }; thx_Options.orElseF = function(option,alt) { switch(option._hx_index) { case 0: var _g = option.v; return option; case 1: return alt(); } }; thx_Options.all = function(option,f) { switch(option._hx_index) { case 0: var v = option.v; return f(v); case 1: return true; } }; thx_Options.any = function(option,f) { switch(option._hx_index) { case 0: var v = option.v; return f(v); case 1: return false; } }; thx_Options.traverseValidation = function(option,f) { switch(option._hx_index) { case 0: var v = option.v; return thx_Validation.map(f(v),function(v) { return haxe_ds_Option.Some(v); }); case 1: return thx_Either.Right(haxe_ds_Option.None); } }; thx_Options.toSuccess = function(option,error) { switch(option._hx_index) { case 0: var v = option.v; return thx_Either.Right(v); case 1: return thx_Either.Left(error); } }; thx_Options.toLazySuccess = function(option,error) { switch(option._hx_index) { case 0: var v = option.v; return thx_Either.Right(v); case 1: return thx_Either.Left(error()); } }; thx_Options.toSuccessNel = function(option,error) { switch(option._hx_index) { case 0: var v = option.v; return thx_Either.Right(v); case 1: return thx_Either.Left(thx_Nel.pure(error)); } }; thx_Options.toLazySuccessNel = function(option,error) { switch(option._hx_index) { case 0: var v = option.v; return thx_Either.Right(v); case 1: return thx_Either.Left(thx_Nel.pure(error())); } }; thx_Options.toFailure = function(error,value) { switch(error._hx_index) { case 0: var e = error.v; return thx_Either.Left(e); case 1: return thx_Either.Right(value); } }; thx_Options.toFailureNel = function(error,value) { switch(error._hx_index) { case 0: var e = error.v; return thx_Either.Left(thx_Nel.pure(e)); case 1: return thx_Either.Right(value); } }; thx_Options.toRight = function(opt,left) { switch(opt._hx_index) { case 0: var r = opt.v; return thx_Either.Right(r); case 1: return thx_Either.Left(left); } }; thx_Options.toLazyRight = function(opt,left) { switch(opt._hx_index) { case 0: var r = opt.v; return thx_Either.Right(r); case 1: return thx_Either.Left(left()); } }; thx_Options.toLeft = function(opt,right) { switch(opt._hx_index) { case 0: var l = opt.v; return thx_Either.Left(l); case 1: return thx_Either.Right(right); } }; thx_Options.each = function(o,f) { switch(o._hx_index) { case 0: var v = o.v; f(v); return o; case 1: return o; } }; thx_Options.alt2 = function(a,b) { if(a._hx_index == 1) { var r = b; return r; } else { var l = a; return l; } }; thx_Options.alt3 = function(a,b,c) { var a1; if(a._hx_index == 1) { var r = b; a1 = r; } else { var l = a; a1 = l; } if(a1._hx_index == 1) { var r = c; return r; } else { var l = a1; return l; } }; thx_Options.alt4 = function(a,b,c,d) { var a1; if(a._hx_index == 1) { var r = b; a1 = r; } else { var l = a; a1 = l; } var a; if(a1._hx_index == 1) { var r = c; a = r; } else { var l = a1; a = l; } if(a._hx_index == 1) { var r = d; return r; } else { var l = a; return l; } }; thx_Options.alts = function(as) { return thx_Arrays.reduce(as,thx_Options.alt2,haxe_ds_Option.None); }; thx_Options.altsF = function(fs) { return thx_Arrays.reduce(fs,thx_Options.orElseF,haxe_ds_Option.None); }; thx_Options.ap2 = function(f,v1,v2) { return thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(f))); }; thx_Options.ap3 = function(f,v1,v2,v3) { var f1 = f; return thx_Options.ap(v3,thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f1(a,b,c); }; })))); }; thx_Options.ap4 = function(f,v1,v2,v3,v4) { var f1 = f; var f = function(a,b,c) { return function(d) { return f1(a,b,c,d); }; }; return thx_Options.ap(v4,thx_Options.ap(v3,thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f(a,b,c); }; }))))); }; thx_Options.ap5 = function(f,v1,v2,v3,v4,v5) { var f1 = f; var f = function(a,b,c,d) { return function(e) { return f1(a,b,c,d,e); }; }; var f2 = function(a,b,c) { return function(d) { return f(a,b,c,d); }; }; return thx_Options.ap(v5,thx_Options.ap(v4,thx_Options.ap(v3,thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f2(a,b,c); }; })))))); }; thx_Options.ap6 = function(f,v1,v2,v3,v4,v5,v6) { var f1 = f; var f = function(a,b,c,d,e) { return function(f0) { return f1(a,b,c,d,e,f0); }; }; var f2 = function(a,b,c,d) { return function(e) { return f(a,b,c,d,e); }; }; var f3 = function(a,b,c) { return function(d) { return f2(a,b,c,d); }; }; return thx_Options.ap(v6,thx_Options.ap(v5,thx_Options.ap(v4,thx_Options.ap(v3,thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f3(a,b,c); }; }))))))); }; thx_Options.ap7 = function(f,v1,v2,v3,v4,v5,v6,v7) { var f1 = f; var f = function(a,b,c,d,e,f0) { return function(g) { return f1(a,b,c,d,e,f0,g); }; }; var f2 = function(a,b,c,d,e) { return function(f0) { return f(a,b,c,d,e,f0); }; }; var f3 = function(a,b,c,d) { return function(e) { return f2(a,b,c,d,e); }; }; var f4 = function(a,b,c) { return function(d) { return f3(a,b,c,d); }; }; return thx_Options.ap(v7,thx_Options.ap(v6,thx_Options.ap(v5,thx_Options.ap(v4,thx_Options.ap(v3,thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f4(a,b,c); }; })))))))); }; thx_Options.ap8 = function(f,v1,v2,v3,v4,v5,v6,v7,v8) { var f1 = f; var f = function(a,b,c,d,e,f0,g) { return function(h) { return f1(a,b,c,d,e,f0,g,h); }; }; var f2 = function(a,b,c,d,e,f0) { return function(g) { return f(a,b,c,d,e,f0,g); }; }; var f3 = function(a,b,c,d,e) { return function(f0) { return f2(a,b,c,d,e,f0); }; }; var f4 = function(a,b,c,d) { return function(e) { return f3(a,b,c,d,e); }; }; var f5 = function(a,b,c) { return function(d) { return f4(a,b,c,d); }; }; return thx_Options.ap(v8,thx_Options.ap(v7,thx_Options.ap(v6,thx_Options.ap(v5,thx_Options.ap(v4,thx_Options.ap(v3,thx_Options.ap(v2,thx_Options.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f5(a,b,c); }; }))))))))); }; thx_Options.combine = function(a,b) { return thx_Options.ap(b,thx_Options.map(a,thx_Functions2.curry(thx_Tuple2.of))); }; thx_Options.combine2 = function(a,b) { return thx_Options.ap(b,thx_Options.map(a,thx_Functions2.curry(thx_Tuple2.of))); }; thx_Options.combine3 = function(a,b,c) { var f = thx_Tuple3.of; return thx_Options.ap(c,thx_Options.ap(b,thx_Options.map(a,thx_Functions2.curry(function(a,b) { return function(c) { return f(a,b,c); }; })))); }; thx_Options.combine4 = function(a,b,c,d) { var f = thx_Tuple4.of; var f1 = function(a,b,c) { return function(d) { return f(a,b,c,d); }; }; return thx_Options.ap(d,thx_Options.ap(c,thx_Options.ap(b,thx_Options.map(a,thx_Functions2.curry(function(a,b) { return function(c) { return f1(a,b,c); }; }))))); }; thx_Options.combine5 = function(a,b,c,d,e) { var f = thx_Tuple5.of; var f1 = function(a,b,c,d) { return function(e) { return f(a,b,c,d,e); }; }; var f2 = function(a,b,c) { return function(d) { return f1(a,b,c,d); }; }; return thx_Options.ap(e,thx_Options.ap(d,thx_Options.ap(c,thx_Options.ap(b,thx_Options.map(a,thx_Functions2.curry(function(a,b) { return function(c) { return f2(a,b,c); }; })))))); }; thx_Options.combine6 = function(a,b,c,d,e,f) { var f1 = thx_Tuple6.of; var f2 = function(a,b,c,d,e) { return function(f0) { return f1(a,b,c,d,e,f0); }; }; var f3 = function(a,b,c,d) { return function(e) { return f2(a,b,c,d,e); }; }; var f4 = function(a,b,c) { return function(d) { return f3(a,b,c,d); }; }; return thx_Options.ap(f,thx_Options.ap(e,thx_Options.ap(d,thx_Options.ap(c,thx_Options.ap(b,thx_Options.map(a,thx_Functions2.curry(function(a,b) { return function(c) { return f4(a,b,c); }; }))))))); }; thx_Options.spread2 = function(v,f) { return thx_Options.map(v,function(t) { return f(t._0,t._1); }); }; thx_Options.spread = function(v,f) { var f1 = f; return thx_Options.map(v,function(t) { return f1(t._0,t._1); }); }; thx_Options.spread3 = function(v,f) { return thx_Options.map(v,function(t) { return f(t._0,t._1,t._2); }); }; thx_Options.spread4 = function(v,f) { return thx_Options.map(v,function(t) { return f(t._0,t._1,t._2,t._3); }); }; thx_Options.spread5 = function(v,f) { return thx_Options.map(v,function(t) { return f(t._0,t._1,t._2,t._3,t._4); }); }; thx_Options.spread6 = function(v,f) { return thx_Options.map(v,function(t) { return f(t._0,t._1,t._2,t._3,t._4,t._5); }); }; var thx_Orderings = function() { }; $hxClasses["thx.Orderings"] = thx_Orderings; thx_Orderings.__name__ = "thx.Orderings"; thx_Orderings.negate = function(o) { switch(o._hx_index) { case 0: return thx_OrderingImpl.GT; case 1: return thx_OrderingImpl.LT; case 2: return thx_OrderingImpl.EQ; } }; var thx_ReadonlyArray = {}; thx_ReadonlyArray.__properties__ = {get_length:"get_length"}; thx_ReadonlyArray.empty = function() { return []; }; thx_ReadonlyArray.flatten = function(array) { return Array.prototype.concat.apply([],array); }; thx_ReadonlyArray.indexOf = function(this1,el,eq) { if(null == eq) { eq = thx_Functions.equality; } var _g = 0; var _g1 = this1.length; while(_g < _g1) { var i = _g++; if(eq(el,this1[i])) { return i; } } return -1; }; thx_ReadonlyArray.lastIndexOf = function(this1,el,eq) { if(null == eq) { eq = thx_Functions.equality; } var len = this1.length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; if(eq(el,this1[len - i - 1])) { return i; } } return -1; }; thx_ReadonlyArray.get_length = function(this1) { return this1.length; }; thx_ReadonlyArray.get = function(this1,i) { return this1[i]; }; thx_ReadonlyArray.head = function(this1) { return this1[0]; }; thx_ReadonlyArray.tail = function(this1) { return this1.slice(1); }; thx_ReadonlyArray.reduce = function(this1,f,initial) { var _g = 0; while(_g < this1.length) { var v = this1[_g]; ++_g; initial = f(initial,v); } return initial; }; thx_ReadonlyArray.reducei = function(this1,f,initial) { var _g = 0; var _g1 = this1.length; while(_g < _g1) { var i = _g++; initial = f(initial,this1[i],i); } return initial; }; thx_ReadonlyArray.reverse = function(this1) { var arr = this1.slice(); arr.reverse(); return arr; }; thx_ReadonlyArray.toArray = function(this1) { return this1.slice(); }; thx_ReadonlyArray.unsafe = function(this1) { return this1; }; thx_ReadonlyArray.concat = function(this1,that) { return this1.concat(that); }; thx_ReadonlyArray.insertAt = function(this1,pos,el) { return this1.slice(0,pos).concat([el]).concat(this1.slice(pos)); }; thx_ReadonlyArray.insertAfter = function(this1,ref,el,eq) { var pos = thx_ReadonlyArray.indexOf(this1,ref,eq); if(pos < 0) { pos = this1.length - 1; } var pos1 = pos + 1; return this1.slice(0,pos1).concat([el]).concat(this1.slice(pos1)); }; thx_ReadonlyArray.insertBefore = function(this1,ref,el,eq) { var pos = thx_ReadonlyArray.indexOf(this1,ref,eq); return this1.slice(0,pos).concat([el]).concat(this1.slice(pos)); }; thx_ReadonlyArray.replace = function(this1,ref,el,eq) { var pos = thx_ReadonlyArray.indexOf(this1,ref,eq); if(pos < 0) { throw new thx_Error("unable to find reference element",null,{ fileName : "thx/ReadonlyArray.hx", lineNumber : 97, className : "thx._ReadonlyArray.ReadonlyArray_Impl_", methodName : "replace"}); } return this1.slice(0,pos).concat([el]).concat(this1.slice(pos + 1)); }; thx_ReadonlyArray.replaceAt = function(this1,pos,el) { return this1.slice(0,pos).concat([el]).concat(this1.slice(pos + 1)); }; thx_ReadonlyArray.remove = function(this1,el,eq) { var pos = thx_ReadonlyArray.indexOf(this1,el,eq); return this1.slice(0,pos).concat(this1.slice(pos + 1)); }; thx_ReadonlyArray.removeAt = function(this1,pos) { return this1.slice(0,pos).concat(this1.slice(pos + 1)); }; thx_ReadonlyArray.prepend = function(this1,el) { return [el].concat(this1); }; thx_ReadonlyArray.append = function(this1,el) { return this1.concat([el]); }; thx_ReadonlyArray.unshift = function(this1,el) { return [el].concat(this1); }; thx_ReadonlyArray.shift = function(this1) { if(this1.length == 0) { return { _0 : null, _1 : this1}; } var value = this1[0]; var array = this1.slice(0,0).concat(this1.slice(1)); return { _0 : value, _1 : array}; }; thx_ReadonlyArray.push = function(this1,el) { return this1.concat([el]); }; thx_ReadonlyArray.pop = function(this1) { if(this1.length == 0) { return { _0 : null, _1 : this1}; } var value = this1[this1.length - 1]; var pos = this1.length - 1; var array = this1.slice(0,pos).concat(this1.slice(pos + 1)); return { _0 : value, _1 : array}; }; thx_ReadonlyArray.iterator = function(this1) { return new haxe_iterators_ArrayIterator(this1); }; var thx_Semigroup = {}; thx_Semigroup.__properties__ = {get_append:"get_append"}; thx_Semigroup.get_append = function(this1) { return this1; }; var thx_Set = {}; thx_Set.__properties__ = {get_length:"get_length"}; thx_Set.createString = function(it) { var map = new haxe_ds_StringMap(); var set = map; if(null != it) { thx_Set.pushMany(set,it); } return set; }; thx_Set.createInt = function(it) { var map = new haxe_ds_IntMap(); var set = map; if(null != it) { thx_Set.pushMany(set,it); } return set; }; thx_Set.createObject = function(it) { var map = new haxe_ds_ObjectMap(); var set = map; if(null != it) { thx_Set.pushMany(set,it); } return set; }; thx_Set.createEnum = function(arr) { var map = new haxe_ds_EnumValueMap(); var set = map; if(null != arr) { thx_Set.pushMany(set,arr); } return set; }; thx_Set._new = function(map) { return map; }; thx_Set.add = function(this1,v) { if(this1.exists(v)) { return false; } else { this1.set(v,true); return true; } }; thx_Set.copy = function(this1) { var inst = thx_Set.empty(this1); var k = this1.keys(); while(k.hasNext()) { var k1 = k.next(); inst.set(k1,true); } return inst; }; thx_Set.empty = function(this1) { var inst = Type.createInstance(js_Boot.getClass(this1),[]); return inst; }; thx_Set.difference = function(this1,set) { var result = thx_Set.copy(this1); var item = $iterator(thx_Set)(set); while(item.hasNext()) { var item1 = item.next(); result.remove(item1); } return result; }; thx_Set.filter = function(this1,predicate) { return thx_Set.reduce(this1,function(acc,v) { if(predicate(v)) { thx_Set.add(acc,v); } return acc; },thx_Set.empty(this1)); }; thx_Set.map = function(this1,f) { return thx_Set.reduce(this1,function(acc,v) { acc.push(f(v)); return acc; },[]); }; thx_Set.exists = function(this1,v) { return this1.exists(v); }; thx_Set.remove = function(this1,v) { return this1.remove(v); }; thx_Set.intersection = function(this1,set) { var result = thx_Set.empty(this1); var item = $iterator(thx_Set)(this1); while(item.hasNext()) { var item1 = item.next(); if(set.exists(item1)) { result.set(item1,true); } } return result; }; thx_Set.push = function(this1,v) { this1.set(v,true); }; thx_Set.pushMany = function(this1,values) { var value = $getIterator(values); while(value.hasNext()) { var value1 = value.next(); this1.set(value1,true); } }; thx_Set.reduce = function(this1,handler,acc) { var v = $iterator(thx_Set)(this1); while(v.hasNext()) { var v1 = v.next(); acc = handler(acc,v1); } return acc; }; thx_Set.iterator = function(this1) { return this1.keys(); }; thx_Set.union = function(this1,set) { var newset = thx_Set.copy(this1); thx_Set.pushMany(newset,thx_Set.toArray(set)); return newset; }; thx_Set.toArray = function(this1) { var arr = []; var k = this1.keys(); while(k.hasNext()) { var k1 = k.next(); arr.push(k1); } return arr; }; thx_Set.toString = function(this1) { return "{" + thx_Set.toArray(this1).join(", ") + "}"; }; thx_Set.get_length = function(this1) { var l = 0; var i = this1.iterator(); while(i.hasNext()) { var i1 = i.next(); ++l; } return l; }; var thx_Strings = function() { }; $hxClasses["thx.Strings"] = thx_Strings; thx_Strings.__name__ = "thx.Strings"; thx_Strings.after = function(value,searchFor) { var pos = value.indexOf(searchFor); if(pos < 0) { return ""; } else { return value.substring(pos + searchFor.length); } }; thx_Strings.afterLast = function(value,searchFor) { var pos = value.lastIndexOf(searchFor); if(pos < 0) { return ""; } else { return value.substring(pos + searchFor.length); } }; thx_Strings.before = function(value,searchFor) { var pos = value.indexOf(searchFor); if(pos < 0) { return ""; } else { return value.substring(0,pos); } }; thx_Strings.beforeLast = function(value,searchFor) { var pos = value.lastIndexOf(searchFor); if(pos < 0) { return ""; } else { return value.substring(0,pos); } }; thx_Strings.capitalize = function(s) { return HxOverrides.substr(s,0,1).toUpperCase() + HxOverrides.substr(s,1,null); }; thx_Strings.capitalizeWords = function(value,whiteSpaceOnly) { if(whiteSpaceOnly == null) { whiteSpaceOnly = false; } if(whiteSpaceOnly) { return thx_Strings.UCWORDSWS.map(HxOverrides.substr(value,0,1).toUpperCase() + HxOverrides.substr(value,1,null),thx_Strings.upperMatch); } else { return thx_Strings.UCWORDS.map(HxOverrides.substr(value,0,1).toUpperCase() + HxOverrides.substr(value,1,null),thx_Strings.upperMatch); } }; thx_Strings.canonicalizeNewlines = function(value) { return value.replace(thx_Strings.CANONICALIZE_LINES.r,"\n"); }; thx_Strings.caseInsensitiveCompare = function(a,b) { if(null == a && null == b) { return 0; } if(null == a) { return -1; } else if(null == b) { return 1; } var a1 = a.toLowerCase(); var b1 = b.toLowerCase(); if(a1 < b1) { return -1; } else if(a1 > b1) { return 1; } else { return 0; } }; thx_Strings.caseInsensitiveEndsWith = function(s,end) { return StringTools.endsWith(s.toLowerCase(),end.toLowerCase()); }; thx_Strings.caseInsensitiveEndsWithAny = function(s,values) { var tmp = s.toLowerCase(); var result = new Array(values.length); var _g = 0; var _g1 = values.length; while(_g < _g1) { var i = _g++; result[i] = values[i].toLowerCase(); } return thx_Strings.endsWithAny(tmp,result); }; thx_Strings.caseInsensitiveStartsWith = function(s,start) { return StringTools.startsWith(s.toLowerCase(),start.toLowerCase()); }; thx_Strings.caseInsensitiveStartsWithAny = function(s,values) { var tmp = s.toLowerCase(); var result = new Array(values.length); var _g = 0; var _g1 = values.length; while(_g < _g1) { var i = _g++; result[i] = values[i].toLowerCase(); } return thx_Strings.startsWithAny(tmp,result); }; thx_Strings.collapse = function(value) { var _this = thx_Strings.WSG; return StringTools.trim(value).replace(_this.r," "); }; thx_Strings.compare = function(a,b) { if(a < b) { return -1; } else if(a > b) { return 1; } else { return 0; } }; thx_Strings.caseInsensitiveContains = function(s,test) { return s.toLowerCase().indexOf(test.toLowerCase()) >= 0; }; thx_Strings.contains = function(s,test) { return s.indexOf(test) >= 0; }; thx_Strings.count = function(s,test) { return s.split(test).length - 1; }; thx_Strings.caseInsensitiveContainsAny = function(s,tests) { var s1 = s; return thx_Arrays.any(tests,function(test) { return s1.toLowerCase().indexOf(test.toLowerCase()) >= 0; }); }; thx_Strings.containsAny = function(s,tests) { var s1 = s; return thx_Arrays.any(tests,function(test) { return s1.indexOf(test) >= 0; }); }; thx_Strings.caseInsensitiveContainsAll = function(s,tests) { var s1 = s; return thx_Arrays.all(tests,function(test) { return s1.toLowerCase().indexOf(test.toLowerCase()) >= 0; }); }; thx_Strings.containsAll = function(s,tests) { var s1 = s; return thx_Arrays.all(tests,function(test) { return s1.indexOf(test) >= 0; }); }; thx_Strings.dasherize = function(s) { return StringTools.replace(s,"_","-"); }; thx_Strings.diffAt = function(a,b) { var a1 = a.length; var b1 = b.length; var min = a1 < b1 ? a1 : b1; var _g = 0; var _g1 = min; while(_g < _g1) { var i = _g++; if(a.substring(i,i + 1) != b.substring(i,i + 1)) { return i; } } return min; }; thx_Strings.ellipsis = function(s,maxlen,symbol) { if(symbol == null) { symbol = "…"; } if(maxlen == null) { maxlen = 20; } var sl = s.length; var symboll = symbol.length; if(sl > maxlen) { if(maxlen < symboll) { return HxOverrides.substr(symbol,symboll - maxlen,maxlen); } else { return HxOverrides.substr(s,0,maxlen - symboll) + symbol; } } else { return s; } }; thx_Strings.ellipsisMiddle = function(s,maxlen,symbol) { if(symbol == null) { symbol = "…"; } if(maxlen == null) { maxlen = 20; } var sl = s.length; var symboll = symbol.length; if(sl > maxlen) { if(maxlen <= symboll) { return thx_Strings.ellipsis(s,maxlen,symbol); } var hll = Math.ceil((maxlen - symboll) / 2); var hlr = Math.floor((maxlen - symboll) / 2); return HxOverrides.substr(s,0,hll) + symbol + HxOverrides.substr(s,sl - hlr,hlr); } else { return s; } }; thx_Strings.endsWithAny = function(s,values) { return thx_Iterables.any(values,function(end) { return StringTools.endsWith(s,end); }); }; thx_Strings.filter = function(s,predicate) { var _g = []; var _g1 = 0; var _g2 = s.split(""); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(predicate(v)) { _g.push(v); } } return _g.join(""); }; thx_Strings.filterCharcode = function(s,predicate) { var _g = []; var _g1 = 0; var _g2 = thx_Strings.map(s,function(s) { return HxOverrides.cca(s,0); }); while(_g1 < _g2.length) { var v = _g2[_g1]; ++_g1; if(predicate(v)) { _g.push(v); } } var codes = _g; var result = new Array(codes.length); var _g = 0; var _g1 = codes.length; while(_g < _g1) { var i = _g++; result[i] = String.fromCodePoint(codes[i]); } return result.join(""); }; thx_Strings.from = function(value,searchFor) { var pos = value.indexOf(searchFor); if(pos < 0) { return ""; } else { return value.substring(pos); } }; thx_Strings.hashCode = function(value) { var code = 0; var _g = 0; var _g1 = value.length; while(_g < _g1) { var i = _g++; var c = HxOverrides.cca(value,i); code = (haxe_Int32._mul(thx_Strings.HASCODE_MUL,code) + c | 0) % thx_Strings.HASCODE_MAX; } return code; }; thx_Strings.hasContent = function(value) { if(value != null) { return value.length > 0; } else { return false; } }; thx_Strings.humanize = function(s) { return StringTools.replace(thx_Strings.underscore(s),"_"," "); }; thx_Strings.isAlpha = function(s) { if(s.length > 0) { return !thx_Strings.IS_ALPHA.match(s); } else { return false; } }; thx_Strings.isAlphaNum = function(value) { return thx_Strings.ALPHANUM.match(value); }; thx_Strings.isBreakingWhitespace = function(value) { return !thx_Strings.IS_BREAKINGWHITESPACE.match(value); }; thx_Strings.isLowerCase = function(value) { return value.toLowerCase() == value; }; thx_Strings.isUpperCase = function(value) { return value.toUpperCase() == value; }; thx_Strings.ifEmpty = function(value,alt) { if(null != value && "" != value) { return value; } else { return alt; } }; thx_Strings.isDigitsOnly = function(value) { return thx_Strings.DIGITS.match(value); }; thx_Strings.isEmpty = function(value) { if(value != null) { return value == ""; } else { return true; } }; thx_Strings.lowerCaseFirst = function(value) { return value.substring(0,1).toLowerCase() + value.substring(1); }; thx_Strings.random = function(value,length) { if(length == null) { length = 1; } return HxOverrides.substr(value,Math.floor((value.length - length + 1) * Math.random()),length); }; thx_Strings.randomSequence = function(seed,length) { var _this = thx_Ints.range(0,length); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = thx_Strings.random(seed); } return result.join(""); }; thx_Strings.randomSequence64 = function(length) { return thx_Strings.randomSequence(haxe_crypto_Base64.CHARS,length); }; thx_Strings.iterator = function(s) { return new haxe_iterators_ArrayIterator(s.split("")); }; thx_Strings.map = function(value,callback) { var _this = value.split(""); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = callback(_this[i]); } return result; }; thx_Strings.remove = function(value,toremove) { return StringTools.replace(value,toremove,""); }; thx_Strings.removeAfter = function(value,toremove) { if(StringTools.endsWith(value,toremove)) { return value.substring(0,value.length - toremove.length); } else { return value; } }; thx_Strings.removeAt = function(value,index,length) { return value.substring(0,index) + value.substring(index + length); }; thx_Strings.removeBefore = function(value,toremove) { if(StringTools.startsWith(value,toremove)) { return value.substring(toremove.length); } else { return value; } }; thx_Strings.removeOne = function(value,toremove) { var pos = value.indexOf(toremove); if(pos < 0) { return value; } return value.substring(0,pos) + value.substring(pos + toremove.length); }; thx_Strings.repeat = function(s,times) { var _g = []; var _g1 = 0; var _g2 = times; while(_g1 < _g2) { var i = _g1++; _g.push(s); } return _g.join(""); }; thx_Strings.reverse = function(s) { var arr = s.split(""); arr.reverse(); return arr.join(""); }; thx_Strings.quote = function(s) { if(s.indexOf("\"") < 0) { return "\"" + s + "\""; } else if(s.indexOf("'") < 0) { return "'" + s + "'"; } else { return "\"" + StringTools.replace(s,"\"","\\\"") + "\""; } }; thx_Strings.splitOnce = function(s,separator) { var pos = s.indexOf(separator); if(pos < 0) { return [s]; } return [s.substring(0,pos),s.substring(pos + separator.length)]; }; thx_Strings.startsWithAny = function(s,values) { return thx_Iterables.any(values,function(start) { return StringTools.startsWith(s,start); }); }; thx_Strings.stripTags = function(s) { return s.replace(thx_Strings.STRIPTAGS.r,""); }; thx_Strings.surround = function(s,left,right) { return "" + left + s + (null == right ? left : right); }; thx_Strings.toArray = function(s) { return s.split(""); }; thx_Strings.toCharcodes = function(s) { return thx_Strings.map(s,function(s) { return HxOverrides.cca(s,0); }); }; thx_Strings.toChunks = function(s,len) { var chunks = []; while(s.length > 0) { chunks.push(HxOverrides.substr(s,0,len)); s = HxOverrides.substr(s,len,s.length - len); } return chunks; }; thx_Strings.toLines = function(s) { return thx_Strings.SPLIT_LINES.split(s); }; thx_Strings.trimChars = function(value,charlist) { return thx_Strings.trimCharsRight(thx_Strings.trimCharsLeft(value,charlist),charlist); }; thx_Strings.trimCharsLeft = function(value,charlist) { var pos = 0; var _g = 0; var _g1 = value.length; while(_g < _g1) { var i = _g++; if(charlist.indexOf(value.charAt(i)) >= 0) { ++pos; } else { break; } } return value.substring(pos); }; thx_Strings.trimCharsRight = function(value,charlist) { var len = value.length; var pos = len; var i; var _g = 0; var _g1 = len; while(_g < _g1) { var j = _g++; i = len - j - 1; if(charlist.indexOf(value.charAt(i)) >= 0) { pos = i; } else { break; } } return value.substring(0,pos); }; thx_Strings.underscore = function(s) { var _this_r = new RegExp("::","g".split("u").join("")); s = s.replace(_this_r,"/"); var _this_r = new RegExp("([A-Z]+)([A-Z][a-z])","g".split("u").join("")); s = s.replace(_this_r,"$1_$2"); var _this_r = new RegExp("([a-z\\d])([A-Z])","g".split("u").join("")); s = s.replace(_this_r,"$1_$2"); var _this_r = new RegExp("-","g".split("u").join("")); s = s.replace(_this_r,"_"); return s.toLowerCase(); }; thx_Strings.upperCaseFirst = function(value) { return value.substring(0,1).toUpperCase() + value.substring(1); }; thx_Strings.upTo = function(value,searchFor) { var pos = value.indexOf(searchFor); if(pos < 0) { return value; } else { return value.substring(0,pos); } }; thx_Strings.wrapColumns = function(s,columns,indent,newline) { if(newline == null) { newline = "\n"; } if(indent == null) { indent = ""; } if(columns == null) { columns = 78; } var _this = thx_Strings.SPLIT_LINES.split(s); var result = new Array(_this.length); var _g = 0; var _g1 = _this.length; while(_g < _g1) { var i = _g++; result[i] = thx_Strings.wrapLine(StringTools.trim(_this[i].replace(thx_Strings.WSG.r," ")),columns,indent,newline); } return result.join(newline); }; thx_Strings.upperMatch = function(re) { return re.matched(0).toUpperCase(); }; thx_Strings.wrapLine = function(s,columns,indent,newline) { var parts = []; var pos = 0; var len = s.length; var ilen = indent.length; columns -= ilen; while(true) { if(pos + columns >= len - ilen) { parts.push(s.substring(pos)); break; } var i = 0; while(!StringTools.isSpace(s,pos + columns - i) && i < columns) ++i; if(i == columns) { i = 0; while(!StringTools.isSpace(s,pos + columns + i) && pos + columns + i < len) ++i; parts.push(s.substring(pos,pos + columns + i)); pos += columns + i + 1; } else { parts.push(s.substring(pos,pos + columns - i)); pos += columns - i + 1; } } return indent + parts.join(newline + indent); }; thx_Strings.lpad = function(s,char,length) { var diff = length - s.length; if(diff > 0) { return thx_Strings.repeat(char,diff) + s; } else { return s; } }; thx_Strings.rpad = function(s,char,length) { var diff = length - s.length; if(diff > 0) { return s + thx_Strings.repeat(char,diff); } else { return s; } }; var thx_TimePeriod = $hxEnums["thx.TimePeriod"] = { __ename__:"thx.TimePeriod",__constructs__:null ,Second: {_hx_name:"Second",_hx_index:0,__enum__:"thx.TimePeriod",toString:$estr} ,Minute: {_hx_name:"Minute",_hx_index:1,__enum__:"thx.TimePeriod",toString:$estr} ,Hour: {_hx_name:"Hour",_hx_index:2,__enum__:"thx.TimePeriod",toString:$estr} ,Day: {_hx_name:"Day",_hx_index:3,__enum__:"thx.TimePeriod",toString:$estr} ,Week: {_hx_name:"Week",_hx_index:4,__enum__:"thx.TimePeriod",toString:$estr} ,Month: {_hx_name:"Month",_hx_index:5,__enum__:"thx.TimePeriod",toString:$estr} ,Year: {_hx_name:"Year",_hx_index:6,__enum__:"thx.TimePeriod",toString:$estr} }; thx_TimePeriod.__constructs__ = [thx_TimePeriod.Second,thx_TimePeriod.Minute,thx_TimePeriod.Hour,thx_TimePeriod.Day,thx_TimePeriod.Week,thx_TimePeriod.Month,thx_TimePeriod.Year]; thx_TimePeriod.__empty_constructs__ = [thx_TimePeriod.Second,thx_TimePeriod.Minute,thx_TimePeriod.Hour,thx_TimePeriod.Day,thx_TimePeriod.Week,thx_TimePeriod.Month,thx_TimePeriod.Year]; var thx_Timestamp = {}; thx_Timestamp.create = function(year,month,day,hour,minute,second) { return thx_Dates.create(year,month,day,hour,minute,second).getTime(); }; thx_Timestamp.now = function() { return new Date().getTime(); }; thx_Timestamp.fromDate = function(d) { return d.getTime(); }; thx_Timestamp.fromString = function(s) { return HxOverrides.strDate(s).getTime(); }; thx_Timestamp.toDate = function(this1) { return new Date(this1); }; thx_Timestamp.toString = function(this1) { return HxOverrides.dateStr(new Date(this1)); }; thx_Timestamp.snapNext = function(this1,period) { switch(period._hx_index) { case 0: return Math.ceil(this1 / 1000.0) * 1000.0; case 1: return Math.ceil(this1 / 60000.0) * 60000.0; case 2: return Math.ceil(this1 / 3600000.0) * 3600000.0; case 3: var d = new Date(this1); return thx_Dates.create(d.getFullYear(),d.getMonth(),d.getDate() + 1,0,0,0).getTime(); case 4: var d = new Date(this1); var wd = d.getDay(); return thx_Dates.create(d.getFullYear(),d.getMonth(),d.getDate() + 7 - wd,0,0,0).getTime(); case 5: var d = new Date(this1); return thx_Dates.create(d.getFullYear(),d.getMonth() + 1,1,0,0,0).getTime(); case 6: var d = new Date(this1); return thx_Dates.create(d.getFullYear() + 1,0,1,0,0,0).getTime(); } }; thx_Timestamp.snapPrev = function(this1,period) { switch(period._hx_index) { case 0: return Math.floor(this1 / 1000.0) * 1000.0; case 1: return Math.floor(this1 / 60000.0) * 60000.0; case 2: return Math.floor(this1 / 3600000.0) * 3600000.0; case 3: var d = new Date(this1); return thx_Dates.create(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0).getTime(); case 4: var d = new Date(this1); var wd = d.getDay(); return thx_Dates.create(d.getFullYear(),d.getMonth(),d.getDate() - wd,0,0,0).getTime(); case 5: var d = new Date(this1); return thx_Dates.create(d.getFullYear(),d.getMonth(),1,0,0,0).getTime(); case 6: var d = new Date(this1); return thx_Dates.create(d.getFullYear(),0,1,0,0,0).getTime(); } }; thx_Timestamp.snapTo = function(this1,period) { switch(period._hx_index) { case 0: return Math.round(this1 / 1000.0) * 1000.0; case 1: return Math.round(this1 / 60000.0) * 60000.0; case 2: return Math.round(this1 / 3600000.0) * 3600000.0; case 3: var d = new Date(this1); var mod = d.getHours() >= 12 ? 1 : 0; return thx_Dates.create(d.getFullYear(),d.getMonth(),d.getDate() + mod,0,0,0).getTime(); case 4: var d = new Date(this1); var wd = d.getDay(); var mod = wd < 3 ? -wd : wd > 3 ? 7 - wd : d.getHours() < 12 ? -wd : 7 - wd; return thx_Dates.create(d.getFullYear(),d.getMonth(),d.getDate() + mod,0,0,0).getTime(); case 5: var d = new Date(this1); var mod = d.getDate() > Math.round(DateTools.getMonthDays(d) / 2) ? 1 : 0; return thx_Dates.create(d.getFullYear(),d.getMonth() + mod,1,0,0,0).getTime(); case 6: var d = new Date(this1); var mod = this1 > new Date(d.getFullYear(),6,2,0,0,0).getTime() ? 1 : 0; return thx_Dates.create(d.getFullYear() + mod,0,1,0,0,0).getTime(); } }; thx_Timestamp.r = function(t,v) { return Math.round(t / v) * v; }; thx_Timestamp.f = function(t,v) { return Math.floor(t / v) * v; }; thx_Timestamp.c = function(t,v) { return Math.ceil(t / v) * v; }; var thx_Tuple0 = {}; thx_Tuple0._new = function() { return thx_Nil.nil; }; thx_Tuple0.with = function(this1,v) { return v; }; thx_Tuple0.toString = function(this1) { return "Tuple0()"; }; thx_Tuple0.toNil = function(this1) { return this1; }; thx_Tuple0.nilToTuple = function(v) { return thx_Nil.nil; }; var thx_Tuple1 = {}; thx_Tuple1.__properties__ = {get__0:"get__0"}; thx_Tuple1._new = function(_0) { return _0; }; thx_Tuple1.get__0 = function(this1) { return this1; }; thx_Tuple1.with = function(this1,v) { return { _0 : this1, _1 : v}; }; thx_Tuple1.toString = function(this1) { return "Tuple1(" + Std.string(this1) + ")"; }; thx_Tuple1.arrayToTuple = function(v) { return v[0]; }; var thx_Tuple2 = {}; thx_Tuple2.__properties__ = {get_right:"get_right",get_left:"get_left"}; thx_Tuple2.of = function(_0,_1) { return { _0 : _0, _1 : _1}; }; thx_Tuple2._new = function(_0,_1) { return { _0 : _0, _1 : _1}; }; thx_Tuple2.get_left = function(this1) { return this1._0; }; thx_Tuple2.get_right = function(this1) { return this1._1; }; thx_Tuple2.flip = function(this1) { return { _0 : this1._1, _1 : this1._0}; }; thx_Tuple2.dropLeft = function(this1) { return this1._1; }; thx_Tuple2.dropRight = function(this1) { return this1._0; }; thx_Tuple2.with = function(this1,v) { return { _0 : this1._0, _1 : this1._1, _2 : v}; }; thx_Tuple2.toString = function(this1) { return "Tuple2(" + Std.string(this1._0) + "," + Std.string(this1._1) + ")"; }; thx_Tuple2.map = function(this1,f) { return { _0 : this1._0, _1 : f(this1._1)}; }; thx_Tuple2.squeeze = function(f) { return function(tp) { return f(tp._0,tp._1); }; }; thx_Tuple2.arrayToTuple2 = function(v) { return { _0 : v[0], _1 : v[1]}; }; var thx_Tuple3 = {}; thx_Tuple3.of = function(_0,_1,_2) { return { _0 : _0, _1 : _1, _2 : _2}; }; thx_Tuple3._new = function(_0,_1,_2) { return { _0 : _0, _1 : _1, _2 : _2}; }; thx_Tuple3.flip = function(this1) { return { _0 : this1._2, _1 : this1._1, _2 : this1._0}; }; thx_Tuple3.dropLeft = function(this1) { return { _0 : this1._1, _1 : this1._2}; }; thx_Tuple3.dropRight = function(this1) { return { _0 : this1._0, _1 : this1._1}; }; thx_Tuple3.with = function(this1,v) { return { _0 : this1._0, _1 : this1._1, _2 : this1._2, _3 : v}; }; thx_Tuple3.toString = function(this1) { return "Tuple3(" + Std.string(this1._0) + "," + Std.string(this1._1) + "," + Std.string(this1._2) + ")"; }; thx_Tuple3.arrayToTuple3 = function(v) { return { _0 : v[0], _1 : v[1], _2 : v[2]}; }; thx_Tuple3.map = function(this1,f) { return { _0 : this1._0, _1 : this1._1, _2 : f(this1._2)}; }; var thx_Tuple4 = {}; thx_Tuple4.of = function(_0,_1,_2,_3) { return { _0 : _0, _1 : _1, _2 : _2, _3 : _3}; }; thx_Tuple4._new = function(_0,_1,_2,_3) { return { _0 : _0, _1 : _1, _2 : _2, _3 : _3}; }; thx_Tuple4.flip = function(this1) { return { _0 : this1._3, _1 : this1._2, _2 : this1._1, _3 : this1._0}; }; thx_Tuple4.dropLeft = function(this1) { return { _0 : this1._1, _1 : this1._2, _2 : this1._3}; }; thx_Tuple4.dropRight = function(this1) { return { _0 : this1._0, _1 : this1._1, _2 : this1._2}; }; thx_Tuple4.with = function(this1,v) { return { _0 : this1._0, _1 : this1._1, _2 : this1._2, _3 : this1._3, _4 : v}; }; thx_Tuple4.toString = function(this1) { return "Tuple4(" + Std.string(this1._0) + "," + Std.string(this1._1) + "," + Std.string(this1._2) + "," + Std.string(this1._3) + ")"; }; thx_Tuple4.arrayToTuple4 = function(v) { return { _0 : v[0], _1 : v[1], _2 : v[2], _3 : v[3]}; }; var thx_Tuple5 = {}; thx_Tuple5.of = function(_0,_1,_2,_3,_4) { return { _0 : _0, _1 : _1, _2 : _2, _3 : _3, _4 : _4}; }; thx_Tuple5._new = function(_0,_1,_2,_3,_4) { return { _0 : _0, _1 : _1, _2 : _2, _3 : _3, _4 : _4}; }; thx_Tuple5.flip = function(this1) { return { _0 : this1._4, _1 : this1._3, _2 : this1._2, _3 : this1._1, _4 : this1._0}; }; thx_Tuple5.dropLeft = function(this1) { return { _0 : this1._1, _1 : this1._2, _2 : this1._3, _3 : this1._4}; }; thx_Tuple5.dropRight = function(this1) { return { _0 : this1._0, _1 : this1._1, _2 : this1._2, _3 : this1._3}; }; thx_Tuple5.with = function(this1,v) { return { _0 : this1._0, _1 : this1._1, _2 : this1._2, _3 : this1._3, _4 : this1._4, _5 : v}; }; thx_Tuple5.toString = function(this1) { return "Tuple5(" + Std.string(this1._0) + "," + Std.string(this1._1) + "," + Std.string(this1._2) + "," + Std.string(this1._3) + "," + Std.string(this1._4) + ")"; }; thx_Tuple5.arrayToTuple5 = function(v) { return { _0 : v[0], _1 : v[1], _2 : v[2], _3 : v[3], _4 : v[4]}; }; var thx_Tuple6 = {}; thx_Tuple6.of = function(_0,_1,_2,_3,_4,_5) { return { _0 : _0, _1 : _1, _2 : _2, _3 : _3, _4 : _4, _5 : _5}; }; thx_Tuple6._new = function(_0,_1,_2,_3,_4,_5) { return { _0 : _0, _1 : _1, _2 : _2, _3 : _3, _4 : _4, _5 : _5}; }; thx_Tuple6.flip = function(this1) { return { _0 : this1._5, _1 : this1._4, _2 : this1._3, _3 : this1._2, _4 : this1._1, _5 : this1._0}; }; thx_Tuple6.dropLeft = function(this1) { return { _0 : this1._1, _1 : this1._2, _2 : this1._3, _3 : this1._4, _4 : this1._5}; }; thx_Tuple6.dropRight = function(this1) { return { _0 : this1._0, _1 : this1._1, _2 : this1._2, _3 : this1._3, _4 : this1._4}; }; thx_Tuple6.toString = function(this1) { return "Tuple6(" + Std.string(this1._0) + "," + Std.string(this1._1) + "," + Std.string(this1._2) + "," + Std.string(this1._3) + "," + Std.string(this1._4) + "," + Std.string(this1._5) + ")"; }; thx_Tuple6.arrayToTuple6 = function(v) { return { _0 : v[0], _1 : v[1], _2 : v[2], _3 : v[3], _4 : v[4], _5 : v[5]}; }; var thx_Types = function() { }; $hxClasses["thx.Types"] = thx_Types; thx_Types.__name__ = "thx.Types"; thx_Types.isAnonymousObject = function(v) { if(Reflect.isObject(v)) { return null == js_Boot.getClass(v); } else { return false; } }; thx_Types.isObject = function(v) { if(Reflect.isObject(v)) { return !thx_Types.isPrimitive(v); } else { return false; } }; thx_Types.isPrimitive = function(v) { var _g = Type.typeof(v); switch(_g._hx_index) { case 1:case 2:case 3: return true; case 6: var _g1 = _g.c; var c = _g1; if(c.__name__ == "String") { return true; } else { var c = _g1; if(c.__name__ == "Date") { return true; } else { return false; } } break; case 7: var _g1 = _g.e; return false; case 0:case 4:case 5:case 8: return false; } }; thx_Types.isEnumValue = function(v) { var _g = Type.typeof(v); if(_g._hx_index == 7) { var _g1 = _g.e; return true; } else { return false; } }; thx_Types.hasSuperClass = function(cls,sup) { while(null != cls) { if(cls == sup) { return true; } cls = cls.__super__; } return false; }; thx_Types.sameType = function(a,b) { return thx_Types.toString(Type.typeof(a)) == thx_Types.toString(Type.typeof(b)); }; thx_Types.typeInheritance = function(type) { switch(type._hx_index) { case 1: return ["Int"]; case 2: return ["Float"]; case 3: return ["Bool"]; case 4: return ["{}"]; case 5: return ["Function"]; case 6: var c = type.c; var classes = []; while(null != c) { classes.push(c); c = c.__super__; } var f = Type.getClassName; var result = new Array(classes.length); var _g = 0; var _g1 = classes.length; while(_g < _g1) { var i = _g++; result[i] = f(classes[i]); } return result; case 7: var e = type.e; return [e.__ename__]; default: throw haxe_Exception.thrown("invalid type " + Std.string(type)); } }; thx_Types.toString = function(type) { switch(type._hx_index) { case 0: return "Null"; case 1: return "Int"; case 2: return "Float"; case 3: return "Bool"; case 4: return "{}"; case 5: return "Function"; case 6: var c = type.c; return c.__name__; case 7: var e = type.e; return e.__ename__; default: throw haxe_Exception.thrown("invalid type " + Std.string(type)); } }; thx_Types.valueTypeInheritance = function(value) { return thx_Types.typeInheritance(Type.typeof(value)); }; thx_Types.valueTypeToString = function(value) { return thx_Types.toString(Type.typeof(value)); }; thx_Types.anyValueToString = function(value) { if(js_Boot.__instanceof(value,ValueType)) { return thx_Types.toString(value); } if(js_Boot.__instanceof(value,Class)) { return value.__name__; } if(js_Boot.__instanceof(value,Enum)) { return value.__ename__; } return thx_Types.toString(Type.typeof(value)); }; var thx_Validation = {}; thx_Validation.__properties__ = {get_either:"get_either"}; thx_Validation.get_either = function(this1) { return this1; }; thx_Validation.pure = function(a) { return thx_Either.Right(a); }; thx_Validation.success = function(a) { return thx_Either.Right(a); }; thx_Validation.failure = function(e) { return thx_Either.Left(e); }; thx_Validation.successNel = function(a) { return thx_Either.Right(a); }; thx_Validation.failureNel = function(e) { return thx_Either.Left(thx_Nel.pure(e)); }; thx_Validation.nn = function(a,e) { if(a == null) { return thx_Either.Left(e); } else { return thx_Either.Right(a); } }; thx_Validation.nnNel = function(a,e) { if(a == null) { return thx_Either.Left(thx_Nel.pure(e)); } else { return thx_Either.Right(a); } }; thx_Validation.map = function(this1,f) { return thx_Eithers.map(this1,f); }; thx_Validation.ap = function(this1,v,s) { switch(this1._hx_index) { case 0: var e0 = this1.value; var _g = v; switch(_g._hx_index) { case 0: var e1 = _g.value; return thx_Either.Left((thx_Semigroup.get_append(s))(e0,e1)); case 1: var b = _g.value; return thx_Either.Left(e0); } break; case 1: var a = this1.value; var _g = v; switch(_g._hx_index) { case 0: var e = _g.value; return thx_Either.Left(e); case 1: var f = _g.value; return thx_Either.Right(f(a)); } break; } }; thx_Validation.flatMapV = function(this1,f) { switch(this1._hx_index) { case 0: var a = this1.value; return thx_Either.Left(a); case 1: var b = this1.value; return f(b); } }; thx_Validation.orElseV = function(this1,other,s) { var _g = other; switch(this1._hx_index) { case 0: var _g1 = this1.value; switch(_g._hx_index) { case 0: var e2 = _g.value; var e1 = _g1; return thx_Either.Left((thx_Semigroup.get_append(s))(e1,e2)); case 1: var _g1 = _g.value; return other; } break; case 1: var _g = this1.value; return this1; } }; thx_Validation.foldLeft = function(this1,b,f) { return thx_Eithers.foldLeft(this1,b,f); }; thx_Validation.foldMap = function(this1,f,m) { return thx_Eithers.foldMap(this1,f,m); }; thx_Validation.leftMap = function(this1,f) { return thx_Eithers.leftMap(this1,f); }; thx_Validation.wrapNel = function(this1) { return thx_Eithers.leftMap(this1,thx_Nel.pure); }; thx_Validation.ensure = function(this1,p,error) { return thx_Eithers.ensure(this1,p,error); }; thx_Validation.vnel = function(e) { return e; }; thx_Validation.val1 = function(f,v1) { return thx_Validation.map(v1,f); }; thx_Validation.val2 = function(f,v1,v2,s) { return thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(f)),s); }; thx_Validation.val3 = function(f,v1,v2,v3,s) { var f1 = f; return thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f1(a,b,c); }; })),s),s); }; thx_Validation.val4 = function(f,v1,v2,v3,v4,s) { var f1 = f; var f = function(a,b,c) { return function(d) { return f1(a,b,c,d); }; }; return thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f(a,b,c); }; })),s),s),s); }; thx_Validation.val5 = function(f,v1,v2,v3,v4,v5,s) { var f1 = f; var f = function(a,b,c,d) { return function(e) { return f1(a,b,c,d,e); }; }; var f2 = function(a,b,c) { return function(d) { return f(a,b,c,d); }; }; return thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f2(a,b,c); }; })),s),s),s),s); }; thx_Validation.val6 = function(f,v1,v2,v3,v4,v5,v6,s) { var f1 = f; var f = function(a,b,c,d,e) { return function(f0) { return f1(a,b,c,d,e,f0); }; }; var f2 = function(a,b,c,d) { return function(e) { return f(a,b,c,d,e); }; }; var f3 = function(a,b,c) { return function(d) { return f2(a,b,c,d); }; }; return thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f3(a,b,c); }; })),s),s),s),s),s); }; thx_Validation.val7 = function(f,v1,v2,v3,v4,v5,v6,v7,s) { var f1 = f; var f = function(a,b,c,d,e,f0) { return function(g) { return f1(a,b,c,d,e,f0,g); }; }; var f2 = function(a,b,c,d,e) { return function(f0) { return f(a,b,c,d,e,f0); }; }; var f3 = function(a,b,c,d) { return function(e) { return f2(a,b,c,d,e); }; }; var f4 = function(a,b,c) { return function(d) { return f3(a,b,c,d); }; }; return thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f4(a,b,c); }; })),s),s),s),s),s),s); }; thx_Validation.val8 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g) { return function(h) { return f1(a,b,c,d,e,f0,g,h); }; }; var f2 = function(a,b,c,d,e,f0) { return function(g) { return f(a,b,c,d,e,f0,g); }; }; var f3 = function(a,b,c,d,e) { return function(f0) { return f2(a,b,c,d,e,f0); }; }; var f4 = function(a,b,c,d) { return function(e) { return f3(a,b,c,d,e); }; }; var f5 = function(a,b,c) { return function(d) { return f4(a,b,c,d); }; }; return thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f5(a,b,c); }; })),s),s),s),s),s),s),s); }; thx_Validation.val9 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h) { return function(i) { return f1(a,b,c,d,e,f0,g,h,i); }; }; var f2 = function(a,b,c,d,e,f0,g) { return function(h) { return f(a,b,c,d,e,f0,g,h); }; }; var f3 = function(a,b,c,d,e,f0) { return function(g) { return f2(a,b,c,d,e,f0,g); }; }; var f4 = function(a,b,c,d,e) { return function(f0) { return f3(a,b,c,d,e,f0); }; }; var f5 = function(a,b,c,d) { return function(e) { return f4(a,b,c,d,e); }; }; var f6 = function(a,b,c) { return function(d) { return f5(a,b,c,d); }; }; return thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f6(a,b,c); }; })),s),s),s),s),s),s),s),s); }; thx_Validation.val10 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f1(a,b,c,d,e,f0,g,h,i,j); }; }; var f2 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f(a,b,c,d,e,f0,g,h,i); }; }; var f3 = function(a,b,c,d,e,f0,g) { return function(h) { return f2(a,b,c,d,e,f0,g,h); }; }; var f4 = function(a,b,c,d,e,f0) { return function(g) { return f3(a,b,c,d,e,f0,g); }; }; var f5 = function(a,b,c,d,e) { return function(f0) { return f4(a,b,c,d,e,f0); }; }; var f6 = function(a,b,c,d) { return function(e) { return f5(a,b,c,d,e); }; }; var f7 = function(a,b,c) { return function(d) { return f6(a,b,c,d); }; }; return thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f7(a,b,c); }; })),s),s),s),s),s),s),s),s),s); }; thx_Validation.val11 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f1(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f(a,b,c,d,e,f0,g,h,i,j); }; }; var f3 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f2(a,b,c,d,e,f0,g,h,i); }; }; var f4 = function(a,b,c,d,e,f0,g) { return function(h) { return f3(a,b,c,d,e,f0,g,h); }; }; var f5 = function(a,b,c,d,e,f0) { return function(g) { return f4(a,b,c,d,e,f0,g); }; }; var f6 = function(a,b,c,d,e) { return function(f0) { return f5(a,b,c,d,e,f0); }; }; var f7 = function(a,b,c,d) { return function(e) { return f6(a,b,c,d,e); }; }; var f8 = function(a,b,c) { return function(d) { return f7(a,b,c,d); }; }; return thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f8(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val12 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f2(a,b,c,d,e,f0,g,h,i,j); }; }; var f4 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f3(a,b,c,d,e,f0,g,h,i); }; }; var f5 = function(a,b,c,d,e,f0,g) { return function(h) { return f4(a,b,c,d,e,f0,g,h); }; }; var f6 = function(a,b,c,d,e,f0) { return function(g) { return f5(a,b,c,d,e,f0,g); }; }; var f7 = function(a,b,c,d,e) { return function(f0) { return f6(a,b,c,d,e,f0); }; }; var f8 = function(a,b,c,d) { return function(e) { return f7(a,b,c,d,e); }; }; var f9 = function(a,b,c) { return function(d) { return f8(a,b,c,d); }; }; return thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f9(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val13 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f2(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f3(a,b,c,d,e,f0,g,h,i,j); }; }; var f5 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f4(a,b,c,d,e,f0,g,h,i); }; }; var f6 = function(a,b,c,d,e,f0,g) { return function(h) { return f5(a,b,c,d,e,f0,g,h); }; }; var f7 = function(a,b,c,d,e,f0) { return function(g) { return f6(a,b,c,d,e,f0,g); }; }; var f8 = function(a,b,c,d,e) { return function(f0) { return f7(a,b,c,d,e,f0); }; }; var f9 = function(a,b,c,d) { return function(e) { return f8(a,b,c,d,e); }; }; var f10 = function(a,b,c) { return function(d) { return f9(a,b,c,d); }; }; return thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f10(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val14 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f3(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f4(a,b,c,d,e,f0,g,h,i,j); }; }; var f6 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f5(a,b,c,d,e,f0,g,h,i); }; }; var f7 = function(a,b,c,d,e,f0,g) { return function(h) { return f6(a,b,c,d,e,f0,g,h); }; }; var f8 = function(a,b,c,d,e,f0) { return function(g) { return f7(a,b,c,d,e,f0,g); }; }; var f9 = function(a,b,c,d,e) { return function(f0) { return f8(a,b,c,d,e,f0); }; }; var f10 = function(a,b,c,d) { return function(e) { return f9(a,b,c,d,e); }; }; var f11 = function(a,b,c) { return function(d) { return f10(a,b,c,d); }; }; return thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f11(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val15 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f3(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f4(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f6 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f5(a,b,c,d,e,f0,g,h,i,j); }; }; var f7 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f6(a,b,c,d,e,f0,g,h,i); }; }; var f8 = function(a,b,c,d,e,f0,g) { return function(h) { return f7(a,b,c,d,e,f0,g,h); }; }; var f9 = function(a,b,c,d,e,f0) { return function(g) { return f8(a,b,c,d,e,f0,g); }; }; var f10 = function(a,b,c,d,e) { return function(f0) { return f9(a,b,c,d,e,f0); }; }; var f11 = function(a,b,c,d) { return function(e) { return f10(a,b,c,d,e); }; }; var f12 = function(a,b,c) { return function(d) { return f11(a,b,c,d); }; }; return thx_Validation.ap(v15,thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f12(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val16 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o) { return function(p) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f3(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f4(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f6 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f5(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f7 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f6(a,b,c,d,e,f0,g,h,i,j); }; }; var f8 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f7(a,b,c,d,e,f0,g,h,i); }; }; var f9 = function(a,b,c,d,e,f0,g) { return function(h) { return f8(a,b,c,d,e,f0,g,h); }; }; var f10 = function(a,b,c,d,e,f0) { return function(g) { return f9(a,b,c,d,e,f0,g); }; }; var f11 = function(a,b,c,d,e) { return function(f0) { return f10(a,b,c,d,e,f0); }; }; var f12 = function(a,b,c,d) { return function(e) { return f11(a,b,c,d,e); }; }; var f13 = function(a,b,c) { return function(d) { return f12(a,b,c,d); }; }; return thx_Validation.ap(v16,thx_Validation.ap(v15,thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f13(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val17 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p) { return function(q) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o) { return function(p) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f3(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f4(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f6 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f5(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f7 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f6(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f8 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f7(a,b,c,d,e,f0,g,h,i,j); }; }; var f9 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f8(a,b,c,d,e,f0,g,h,i); }; }; var f10 = function(a,b,c,d,e,f0,g) { return function(h) { return f9(a,b,c,d,e,f0,g,h); }; }; var f11 = function(a,b,c,d,e,f0) { return function(g) { return f10(a,b,c,d,e,f0,g); }; }; var f12 = function(a,b,c,d,e) { return function(f0) { return f11(a,b,c,d,e,f0); }; }; var f13 = function(a,b,c,d) { return function(e) { return f12(a,b,c,d,e); }; }; var f14 = function(a,b,c) { return function(d) { return f13(a,b,c,d); }; }; return thx_Validation.ap(v17,thx_Validation.ap(v16,thx_Validation.ap(v15,thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f14(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val18 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q) { return function(r) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p) { return function(q) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o) { return function(p) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f3(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f4(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f6 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f5(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f7 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f6(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f8 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f7(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f9 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f8(a,b,c,d,e,f0,g,h,i,j); }; }; var f10 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f9(a,b,c,d,e,f0,g,h,i); }; }; var f11 = function(a,b,c,d,e,f0,g) { return function(h) { return f10(a,b,c,d,e,f0,g,h); }; }; var f12 = function(a,b,c,d,e,f0) { return function(g) { return f11(a,b,c,d,e,f0,g); }; }; var f13 = function(a,b,c,d,e) { return function(f0) { return f12(a,b,c,d,e,f0); }; }; var f14 = function(a,b,c,d) { return function(e) { return f13(a,b,c,d,e); }; }; var f15 = function(a,b,c) { return function(d) { return f14(a,b,c,d); }; }; return thx_Validation.ap(v18,thx_Validation.ap(v17,thx_Validation.ap(v16,thx_Validation.ap(v15,thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f15(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val19 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r) { return function(s) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q) { return function(r) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p) { return function(q) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o) { return function(p) { return f3(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f4(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; var f6 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f5(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f7 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f6(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f8 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f7(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f9 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f8(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f10 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f9(a,b,c,d,e,f0,g,h,i,j); }; }; var f11 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f10(a,b,c,d,e,f0,g,h,i); }; }; var f12 = function(a,b,c,d,e,f0,g) { return function(h) { return f11(a,b,c,d,e,f0,g,h); }; }; var f13 = function(a,b,c,d,e,f0) { return function(g) { return f12(a,b,c,d,e,f0,g); }; }; var f14 = function(a,b,c,d,e) { return function(f0) { return f13(a,b,c,d,e,f0); }; }; var f15 = function(a,b,c,d) { return function(e) { return f14(a,b,c,d,e); }; }; var f16 = function(a,b,c) { return function(d) { return f15(a,b,c,d); }; }; return thx_Validation.ap(v19,thx_Validation.ap(v18,thx_Validation.ap(v17,thx_Validation.ap(v16,thx_Validation.ap(v15,thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f16(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s); }; thx_Validation.val20 = function(f,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,s) { var f1 = f; var f = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s) { return function(t) { return f1(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s,t); }; }; var f2 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r) { return function(s) { return f(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r,s); }; }; var f3 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q) { return function(r) { return f2(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q,r); }; }; var f4 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p) { return function(q) { return f3(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p,q); }; }; var f5 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o) { return function(p) { return f4(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o,p); }; }; var f6 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m,n) { return function(o) { return f5(a,b,c,d,e,f0,g,h,i,j,k,l,m,n,o); }; }; var f7 = function(a,b,c,d,e,f0,g,h,i,j,k,l,m) { return function(n) { return f6(a,b,c,d,e,f0,g,h,i,j,k,l,m,n); }; }; var f8 = function(a,b,c,d,e,f0,g,h,i,j,k,l) { return function(m) { return f7(a,b,c,d,e,f0,g,h,i,j,k,l,m); }; }; var f9 = function(a,b,c,d,e,f0,g,h,i,j,k) { return function(l) { return f8(a,b,c,d,e,f0,g,h,i,j,k,l); }; }; var f10 = function(a,b,c,d,e,f0,g,h,i,j) { return function(k) { return f9(a,b,c,d,e,f0,g,h,i,j,k); }; }; var f11 = function(a,b,c,d,e,f0,g,h,i) { return function(j) { return f10(a,b,c,d,e,f0,g,h,i,j); }; }; var f12 = function(a,b,c,d,e,f0,g,h) { return function(i) { return f11(a,b,c,d,e,f0,g,h,i); }; }; var f13 = function(a,b,c,d,e,f0,g) { return function(h) { return f12(a,b,c,d,e,f0,g,h); }; }; var f14 = function(a,b,c,d,e,f0) { return function(g) { return f13(a,b,c,d,e,f0,g); }; }; var f15 = function(a,b,c,d,e) { return function(f0) { return f14(a,b,c,d,e,f0); }; }; var f16 = function(a,b,c,d) { return function(e) { return f15(a,b,c,d,e); }; }; var f17 = function(a,b,c) { return function(d) { return f16(a,b,c,d); }; }; return thx_Validation.ap(v20,thx_Validation.ap(v19,thx_Validation.ap(v18,thx_Validation.ap(v17,thx_Validation.ap(v16,thx_Validation.ap(v15,thx_Validation.ap(v14,thx_Validation.ap(v13,thx_Validation.ap(v12,thx_Validation.ap(v11,thx_Validation.ap(v10,thx_Validation.ap(v9,thx_Validation.ap(v8,thx_Validation.ap(v7,thx_Validation.ap(v6,thx_Validation.ap(v5,thx_Validation.ap(v4,thx_Validation.ap(v3,thx_Validation.ap(v2,thx_Validation.map(v1,thx_Functions2.curry(function(a,b) { return function(c) { return f17(a,b,c); }; })),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s),s); }; var thx_ValidationExtensions = function() { }; $hxClasses["thx.ValidationExtensions"] = thx_ValidationExtensions; thx_ValidationExtensions.__name__ = "thx.ValidationExtensions"; thx_ValidationExtensions.leftMapNel = function(n,f) { return thx_Eithers.leftMap(n,function(n) { return thx_Nel.map(n,f); }); }; thx_ValidationExtensions.ensureNel = function(v,p,error) { if(v._hx_index == 1) { var a = v.value; if(p(a)) { return v; } else { return thx_Either.Left(thx_Nel.pure(error)); } } else { var left = v; return left; } }; thx_ValidationExtensions.appendVNel = function(target,item) { switch(target._hx_index) { case 0: var _g = target.value; switch(item._hx_index) { case 0: var errors2 = item.value; var errors1 = _g; return thx_Either.Left(thx_Nel.append(errors1,errors2)); case 1: var value = item.value; var errors = _g; return thx_Either.Left(errors); } break; case 1: var _g = target.value; switch(item._hx_index) { case 0: var errors = item.value; var values = _g; return thx_Either.Left(errors); case 1: var value = item.value; var values = _g; return thx_Either.Right(thx_Arrays.append(values,value)); } break; } }; thx_ValidationExtensions.appendValidation = function(target,item) { return thx_ValidationExtensions.appendVNel(target,thx_Eithers.toVNel(item)); }; thx_ValidationExtensions.appendVNels = function(target,items) { return thx_Arrays.reduce(items,thx_ValidationExtensions.appendVNel,target); }; thx_ValidationExtensions.appendValidations = function(target,items) { return thx_Arrays.reduce(items,thx_ValidationExtensions.appendValidation,target); }; var thx_error_ErrorWrapper = function(message,innerError,stack,pos) { thx_Error.call(this,message,stack,pos); this.innerError = innerError; }; $hxClasses["thx.error.ErrorWrapper"] = thx_error_ErrorWrapper; thx_error_ErrorWrapper.__name__ = "thx.error.ErrorWrapper"; thx_error_ErrorWrapper.__super__ = thx_Error; thx_error_ErrorWrapper.prototype = $extend(thx_Error.prototype,{ innerError: null ,__class__: thx_error_ErrorWrapper }); var thx_fp_Map = {}; thx_fp_Map.empty = function() { return thx_fp_MapImpl.Tip; }; thx_fp_Map.singleton = function(k,v) { return thx_fp_MapImpl.Bin(1,k,v,thx_fp_MapImpl.Tip,thx_fp_MapImpl.Tip); }; thx_fp_Map.bin = function(k,v,lhs,rhs) { return thx_fp_MapImpl.Bin(thx_fp_Map.size(lhs) + thx_fp_Map.size(rhs) + 1,k,v,lhs,rhs); }; thx_fp_Map.fromNative = function(map,comparator) { var r = thx_fp_MapImpl.Tip; var key = map.keys(); while(key.hasNext()) { var key1 = key.next(); r = thx_fp_Map.insert(r,key1,map.get(key1),comparator); } return r; }; thx_fp_Map.lookup = function(this1,key,comparator) { switch(this1._hx_index) { case 0: return haxe_ds_Option.None; case 1: var size = this1.size; var xkey = this1.key; var xvalue = this1.value; var lhs = this1.lhs; var rhs = this1.rhs; var c = comparator(key,xkey); switch(c._hx_index) { case 0: return thx_fp_Map.lookup(lhs,key,comparator); case 1: return thx_fp_Map.lookup(rhs,key,comparator); case 2: return haxe_ds_Option.Some(xvalue); } break; } }; thx_fp_Map.lookupTuple = function(this1,key,comparator) { switch(this1._hx_index) { case 0: return haxe_ds_Option.None; case 1: var size = this1.size; var xkey = this1.key; var xvalue = this1.value; var lhs = this1.lhs; var rhs = this1.rhs; var c = comparator(key,xkey); switch(c._hx_index) { case 0: return thx_fp_Map.lookupTuple(lhs,key,comparator); case 1: return thx_fp_Map.lookupTuple(rhs,key,comparator); case 2: return haxe_ds_Option.Some({ _0 : xkey, _1 : xvalue}); } break; } }; thx_fp_Map.delete = function(this1,key,comparator) { switch(this1._hx_index) { case 0: return thx_fp_MapImpl.Tip; case 1: var size = this1.size; var kx = this1.key; var x = this1.value; var lhs = this1.lhs; var rhs = this1.rhs; switch(comparator(key,kx)._hx_index) { case 0: return thx_fp_Map.balance(kx,x,thx_fp_Map.delete(lhs,key,comparator),rhs); case 1: return thx_fp_Map.balance(kx,x,lhs,thx_fp_Map.delete(rhs,key,comparator)); case 2: return thx_fp_Map.glue(lhs,rhs); } break; } }; thx_fp_Map.insert = function(this1,kx,x,comparator) { switch(this1._hx_index) { case 0: return thx_fp_MapImpl.Bin(1,kx,x,thx_fp_MapImpl.Tip,thx_fp_MapImpl.Tip); case 1: var sz = this1.size; var ky = this1.key; var y = this1.value; var lhs = this1.lhs; var rhs = this1.rhs; switch(comparator(kx,ky)._hx_index) { case 0: return thx_fp_Map.balance(ky,y,thx_fp_Map.insert(lhs,kx,x,comparator),rhs); case 1: return thx_fp_Map.balance(ky,y,lhs,thx_fp_Map.insert(rhs,kx,x,comparator)); case 2: return thx_fp_MapImpl.Bin(sz,kx,x,lhs,rhs); } break; } }; thx_fp_Map.foldLeft = function(this1,b,f) { switch(this1._hx_index) { case 0: return b; case 1: var _g = this1.size; var _g = this1.key; var x = this1.value; var l = this1.lhs; var r = this1.rhs; return thx_fp_Map.foldLeft(r,thx_fp_Map.foldLeft(l,f(b,x),f),f); } }; thx_fp_Map.map = function(this1,f) { switch(this1._hx_index) { case 0: return thx_fp_MapImpl.Tip; case 1: var sz = this1.size; var ky = this1.key; var y = this1.value; var lhs = this1.lhs; var rhs = this1.rhs; return thx_fp_MapImpl.Bin(sz,ky,f(y),thx_fp_Map.map(lhs,f),thx_fp_Map.map(rhs,f)); } }; thx_fp_Map.values = function(this1) { return thx_fp_Map.foldLeft(this1,[],function(acc,v) { acc.push(v); return acc; }); }; thx_fp_Map.foldLeftKeys = function(this1,b,f) { switch(this1._hx_index) { case 0: return b; case 1: var _g = this1.size; var _g = this1.value; var kx = this1.key; var l = this1.lhs; var r = this1.rhs; return thx_fp_Map.foldLeftKeys(r,thx_fp_Map.foldLeftKeys(l,f(b,kx),f),f); } }; thx_fp_Map.foldLeftAll = function(this1,b,f) { switch(this1._hx_index) { case 0: return b; case 1: var _g = this1.size; var kx = this1.key; var x = this1.value; var l = this1.lhs; var r = this1.rhs; return thx_fp_Map.foldLeftAll(r,thx_fp_Map.foldLeftAll(l,f(b,kx,x),f),f); } }; thx_fp_Map.foldLeftTuples = function(this1,b,f) { switch(this1._hx_index) { case 0: return b; case 1: var _g = this1.size; var kx = this1.key; var x = this1.value; var l = this1.lhs; var r = this1.rhs; return thx_fp_Map.foldLeftTuples(r,thx_fp_Map.foldLeftTuples(l,f(b,{ _0 : kx, _1 : x}),f),f); } }; thx_fp_Map.size = function(this1) { switch(this1._hx_index) { case 0: return 0; case 1: var _g = this1.key; var _g = this1.value; var _g = this1.lhs; var _g = this1.rhs; var size = this1.size; return size; } }; thx_fp_Map.balance = function(k,x,lhs,rhs) { var ls = thx_fp_Map.size(lhs); var rs = thx_fp_Map.size(rhs); var xs = ls + rs + 1; if(ls + rs <= 1) { return thx_fp_MapImpl.Bin(xs,k,x,lhs,rhs); } else if(rs >= 5 * ls) { return thx_fp_Map.rotateLeft(k,x,lhs,rhs); } else if(ls >= 5 * rs) { return thx_fp_Map.rotateRight(k,x,lhs,rhs); } else { return thx_fp_MapImpl.Bin(xs,k,x,lhs,rhs); } }; thx_fp_Map.glue = function(this1,that) { if(this1._hx_index == 0) { return that; } else if(that._hx_index == 0) { return this1; } else { var l = this1; var r = that; if(thx_fp_Map.size(l) > thx_fp_Map.size(r)) { var t = thx_fp_Map.deleteFindMax(l); return thx_fp_Map.balance(t.k,t.x,t.t,r); } else { var l = this1; var r = that; var t = thx_fp_Map.deleteFindMin(r); return thx_fp_Map.balance(t.k,t.x,l,t.t); } } }; thx_fp_Map.deleteFindMin = function(map) { switch(map._hx_index) { case 0: throw new thx_Error("can not return the minimal element of an empty map",null,{ fileName : "thx/fp/Map.hx", lineNumber : 171, className : "thx.fp._Map.Map_Impl_", methodName : "deleteFindMin"}); case 1: var _g = map.size; var _g = map.key; var _g1 = map.value; var _g2 = map.lhs; var _g3 = map.rhs; if(_g2._hx_index == 0) { var x = _g1; var k = _g; var r = _g3; return { k : k, x : x, t : r}; } else { var l = _g2; var x = _g1; var k = _g; var r = _g3; var t = thx_fp_Map.deleteFindMin(l); return { k : t.k, x : t.x, t : thx_fp_Map.balance(k,x,t.t,r)}; } break; } }; thx_fp_Map.deleteFindMax = function(map) { switch(map._hx_index) { case 0: throw new thx_Error("can not return the maximal element of an empty map",null,{ fileName : "thx/fp/Map.hx", lineNumber : 182, className : "thx.fp._Map.Map_Impl_", methodName : "deleteFindMax"}); case 1: var _g = map.size; var _g = map.key; var _g1 = map.value; var _g2 = map.lhs; var _g3 = map.rhs; if(_g3._hx_index == 0) { var l = _g2; var x = _g1; var k = _g; return { k : k, x : x, t : l}; } else { var r = _g3; var l = _g2; var x = _g1; var k = _g; var t = thx_fp_Map.deleteFindMax(r); return { k : t.k, x : t.x, t : thx_fp_Map.balance(k,x,l,t.t)}; } break; } }; thx_fp_Map.rotateLeft = function(k,x,lhs,rhs) { if(rhs._hx_index == 1) { var _g = rhs.size; var _g = rhs.key; var _g = rhs.value; var ly = rhs.lhs; var ry = rhs.rhs; if(thx_fp_Map.size(ly) < 2 * thx_fp_Map.size(ry)) { return thx_fp_Map.singleLeft(k,x,lhs,rhs); } else { return thx_fp_Map.doubleLeft(k,x,lhs,rhs); } } else { return thx_fp_Map.doubleLeft(k,x,lhs,rhs); } }; thx_fp_Map.rotateRight = function(k,x,lhs,rhs) { if(lhs._hx_index == 1) { var _g = lhs.size; var _g = lhs.key; var _g = lhs.value; var ly = lhs.lhs; var ry = lhs.rhs; if(thx_fp_Map.size(ry) < 2 * thx_fp_Map.size(ly)) { return thx_fp_Map.singleRight(k,x,lhs,rhs); } else { return thx_fp_Map.doubleRight(k,x,lhs,rhs); } } else { return thx_fp_Map.doubleRight(k,x,lhs,rhs); } }; thx_fp_Map.singleLeft = function(k1,x1,t1,rhs) { if(rhs._hx_index == 1) { var _g = rhs.size; var k2 = rhs.key; var x2 = rhs.value; var t2 = rhs.lhs; var t3 = rhs.rhs; var lhs = thx_fp_MapImpl.Bin(thx_fp_Map.size(t1) + thx_fp_Map.size(t2) + 1,k1,x1,t1,t2); return thx_fp_MapImpl.Bin(thx_fp_Map.size(lhs) + thx_fp_Map.size(t3) + 1,k2,x2,lhs,t3); } else { throw new thx_Error("damn it, this should never happen",null,{ fileName : "thx/fp/Map.hx", lineNumber : 204, className : "thx.fp._Map.Map_Impl_", methodName : "singleLeft"}); } }; thx_fp_Map.singleRight = function(k1,x1,lhs,t3) { if(lhs._hx_index == 1) { var _g = lhs.size; var k2 = lhs.key; var x2 = lhs.value; var t1 = lhs.lhs; var t2 = lhs.rhs; var rhs = thx_fp_MapImpl.Bin(thx_fp_Map.size(t2) + thx_fp_Map.size(t3) + 1,k1,x1,t2,t3); return thx_fp_MapImpl.Bin(thx_fp_Map.size(t1) + thx_fp_Map.size(rhs) + 1,k2,x2,t1,rhs); } else { throw new thx_Error("damn it, this should never happen",null,{ fileName : "thx/fp/Map.hx", lineNumber : 210, className : "thx.fp._Map.Map_Impl_", methodName : "singleRight"}); } }; thx_fp_Map.doubleLeft = function(k1,x1,t1,rhs) { if(rhs._hx_index == 1) { var _g = rhs.size; var _g = rhs.lhs; if(_g._hx_index == 1) { var _g1 = _g.size; var k3 = _g.key; var x3 = _g.value; var t2 = _g.lhs; var t3 = _g.rhs; var x2 = rhs.value; var k2 = rhs.key; var t4 = rhs.rhs; var lhs = thx_fp_MapImpl.Bin(thx_fp_Map.size(t1) + thx_fp_Map.size(t2) + 1,k1,x1,t1,t2); var rhs = thx_fp_MapImpl.Bin(thx_fp_Map.size(t3) + thx_fp_Map.size(t4) + 1,k2,x2,t3,t4); return thx_fp_MapImpl.Bin(thx_fp_Map.size(lhs) + thx_fp_Map.size(rhs) + 1,k3,x3,lhs,rhs); } else { throw new thx_Error("damn it, this should never happen",null,{ fileName : "thx/fp/Map.hx", lineNumber : 217, className : "thx.fp._Map.Map_Impl_", methodName : "doubleLeft"}); } } else { throw new thx_Error("damn it, this should never happen",null,{ fileName : "thx/fp/Map.hx", lineNumber : 217, className : "thx.fp._Map.Map_Impl_", methodName : "doubleLeft"}); } }; thx_fp_Map.doubleRight = function(k1,x1,lhs,t4) { if(lhs._hx_index == 1) { var _g = lhs.size; var _g = lhs.rhs; if(_g._hx_index == 1) { var _g1 = _g.size; var k3 = _g.key; var x3 = _g.value; var t2 = _g.lhs; var t3 = _g.rhs; var t1 = lhs.lhs; var x2 = lhs.value; var k2 = lhs.key; var lhs = thx_fp_MapImpl.Bin(thx_fp_Map.size(t1) + thx_fp_Map.size(t2) + 1,k2,x2,t1,t2); var rhs = thx_fp_MapImpl.Bin(thx_fp_Map.size(t3) + thx_fp_Map.size(t4) + 1,k1,x1,t3,t4); return thx_fp_MapImpl.Bin(thx_fp_Map.size(lhs) + thx_fp_Map.size(rhs) + 1,k3,x3,lhs,rhs); } else { throw new thx_Error("damn it, this should never happen",null,{ fileName : "thx/fp/Map.hx", lineNumber : 224, className : "thx.fp._Map.Map_Impl_", methodName : "doubleRight"}); } } else { throw new thx_Error("damn it, this should never happen",null,{ fileName : "thx/fp/Map.hx", lineNumber : 224, className : "thx.fp._Map.Map_Impl_", methodName : "doubleRight"}); } }; var thx_fp_MapImpl = $hxEnums["thx.fp.MapImpl"] = { __ename__:"thx.fp.MapImpl",__constructs__:null ,Tip: {_hx_name:"Tip",_hx_index:0,__enum__:"thx.fp.MapImpl",toString:$estr} ,Bin: ($_=function(size,key,value,lhs,rhs) { return {_hx_index:1,size:size,key:key,value:value,lhs:lhs,rhs:rhs,__enum__:"thx.fp.MapImpl",toString:$estr}; },$_._hx_name="Bin",$_.__params__ = ["size","key","value","lhs","rhs"],$_) }; thx_fp_MapImpl.__constructs__ = [thx_fp_MapImpl.Tip,thx_fp_MapImpl.Bin]; thx_fp_MapImpl.__empty_constructs__ = [thx_fp_MapImpl.Tip]; function $iterator(o) { if( o instanceof Array ) return function() { return new haxe_iterators_ArrayIterator(o); }; return typeof(o.iterator) == 'function' ? $bind(o,o.iterator) : o.iterator; } function $getIterator(o) { if( o instanceof Array ) return new haxe_iterators_ArrayIterator(o); else return o.iterator(); } function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $global.$haxeUID++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = m.bind(o); o.hx__closures__[m.__id__] = f; } return f; } $global.$haxeUID |= 0; var _init = lime__$internal_backend_html5_HTML5Application; var init = lime_app_Application; if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) { HxOverrides.now = performance.now.bind(performance); } $hxClasses["Math"] = Math; if( String.fromCodePoint == null ) String.fromCodePoint = function(c) { return c < 0x10000 ? String.fromCharCode(c) : String.fromCharCode((c>>10)+0xD7C0)+String.fromCharCode((c&0x3FF)+0xDC00); } Object.defineProperty(String.prototype,"__class__",{ value : $hxClasses["String"] = String, enumerable : false, writable : true}); String.__name__ = "String"; $hxClasses["Array"] = Array; Array.__name__ = "Array"; Date.prototype.__class__ = $hxClasses["Date"] = Date; Date.__name__ = "Date"; var Int = { }; var Dynamic = { }; var Float = Number; var Bool = Boolean; var Class = { }; var Enum = { }; js_Boot.__toStr = ({ }).toString; haxe_Resource.content = [{ name : "haxeui-core/styles/shared/down-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV9AAAEHnpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja1VZbkuw2CP3XKrIEAUJIy9GzKjvI8nMk2337WTM3mXzEahs1RoA4gOzGX39O9wcuMmIX1FLMMXpcIYfMBZPkj6vsJ/mwn8dlJ6VHvtt/1sVgCagcf1M85S8+3RQcpGCmd4pSO1/Uxxf5NMDpSdFpSJZHjEk/FeVTkfDxgk4F5diWjznZ/RbqOOi5/ghDWlvDo15cPYWf/gdD9LrCjjAPIfF4soTDAVk3Oyl7UvCaliBokSCCpwqfniAg7+Lk77xyL6hcsydUMr8HReIh4cB4DGa80bd80vfBdzvEd5alnTN+5Md+RewxyOuesyc35zh2V0JESOO5qWuLewbBipDLXhYxDLdibntkjOSQvQ2Qd998xWiUiQHLpECdCk0amzZqcDHwYANlbkBl8ZIYZ27iHVAKa9BkkyxdEpBrgFfA5ZsvtO3mba5RguFOkGSCMjrg558ZHxXNuVKeaAUz844V/OKVBHBjIbeekAIgNK880h3gazxfC1cBgrrDnLDB4uuhoiqdubXySDbQAkEFPWqNrJ8KECLYVjiD3A/kI4lSJG/MRoQ4JuBToCihaLgCAlLlDi8ZBRIBTuJlG2uMtiwrH2z0LAChEsUATZYCrAIaG/LHQkIOFRUNqhrVNGnWEiWGqDFGi6v5FRMLphbNLFm2kiSFpCkmS8mlnErmLGiOmmO2nHLOpcBogeaC1QUCpVSuUkPVGqvVVHMtDenTQtMWm7XkWm6lc5eOPtFjt5567mXQQCqNMHTEYSONPMpEqk2ZYeqM02aaeZYbauQOWF/G91GjCzXeSC1Bu6GGpWaXClrtRBdmQIwDAXFbCCCheWHmE4XAbkG3MEPWoSqU4aUucDotxIBgGMQ66YbdL+QecHMh/Cvc+ELOLeh+Ajm3oPuA3Ctub1Dr67RpXtxGaJXhCqoXlJ8WToXrSGn6tqaprOPtC+q+K/i/URTHmLGImavIhsWxeHJuDCTIhmxaMV1nueL3kbqvBN7QpBWfBPgo6D3iE8OWcXK19pLrkpC6Ob8Yx1K0tg0jlrTaR145MmYYJTzYcL/nzCeKhBw1TFSCKcIStumcvG4R/0LH4UsayOGp8AllpcGyjOpQZ7N0f8dS9gM1dNvR96jbk0wV9SpsK3ocVpVtk7842+ewmbe1D66793u40ZCkeOyl4ARHU/rslvvwgqiO0YXz6NNizjfl7UNuum8k8eENWtbwDUcbPkKgsHcU9Lo9deSIOfNFva3vwfoKLhM+czrHsSFDVGpNyLSEt1yt9xJVUsXXSQZqX/n8TeruGVkNDU657ByR8VygYn2snhln7UiXB9PuZ5rIi6J/7tN/19i2TwswHMRPMApyayo/toSLuq8qSSZOiozM/RuoEB6Ee3ucrwAAAYNpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6WiFQcziDhkqE4tiIo4ShWLYKG0FVp1MLn0C5oYkhQXR8G14ODHYtXBxVlXB1dBEPwAcXRyUnSREv+XFFrEeHDcj3f3HnfvAKFRZZrVNQ5oum2mE3Epl1+RQq8Q0IcwRERlZhnJzEIWvuPrHgG+3sV4lv+5P0e/WrAYEJCIZ5lh2sTrxNObtsF5n1hkZVklPieOmnRB4keuKx6/cS65LPBM0cym54hFYqnUwUoHs7KpEU8RR1RNp3wh57HKeYuzVq2x1j35C8MFfTnDdZojSGARSaQgQUENFVRhI0arToqFNO3HffzDrj9FLoVcFTByzGMDGmTXD/4Hv7u1ipMTXlI4DnS/OM7HKBDaBZp1x/k+dpzmCRB8Bq70tn+jAcx8kl5va5EjYGAbuLhua8oecLkDDD0Zsim7UpCmUCwC72f0TXlg8BboXfV6a+3j9AHIUldLN8DBITBWouw1n3f3dPb275lWfz9tXXKl4mmg1AAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6Yjk3ZjI0MDgtNjFiYi00MDJkLWEyYzctM2M2NjAzOTJlZWZlIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ1OTBhZjNmLWY0N2EtNDY2NC04MjM1LWJmYjJiNTI3OWUwYSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjUwOWE1NTk1LTIyNDItNDg3NS1hN2Y1LWE0MmZjMTVhOWUwNSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0NjEyMjM0MTE1MDA0IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YWRlZmY5MDctMjQ2NC00YTg2LTljMTMtMTliMTg2NzZkZWY4IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTExVDIxOjQzOjU0Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ps+fDsgAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfmAgsUKzYD7eUCAAAAKUlEQVQI12MM7TrynwEHYGRgYGDApmB1mQ0jI4yDrGB1mQ0jhjHoJgAAJK4NSNCarJ8AAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/left-arrow-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVQImWN8K6PCwMDAwMBwfMYEJjiLgYGBCc5iYGBg3LJlCwMMMFlmFCA4DAwMcD7UAAgfAK7lDFY1UPqoAAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/pt/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "haxeui-core/styles/global.css", data : ""},{ name : "haxeui-core/styles/shared/maximize-button-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAABLSURBVChTY/z//z8DKYBxwqINLz+8fSEG5eMFAsISr5iIVQwCYLUN/TOIdhNILROUTTQYkRoY+xeuf/bx3UtJKB8vAEUciUmDgQEAx9IepVPk2PsAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/sortable-arrows-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAIAAABxOqH0AAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0UlEQVQIHQHGADn/Ae0cJAAAAAAAAIdYUHmosAAAAAAAAAIAAAAAAACHWFAAAACJWlIAAAAAAAACAAAAh1hQAgICAgICAAAAjV5WAAAAAe0cJAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAI1eVgAAAAAAAAAAAAMDA3CfpwIAAABzoqoAAAADAwMDAwNwn6cAAAACAAAAAAAAc6KqAAAAcJ+nAAAAAAAA2WwUSXgyq8MAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/default/buttons.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBCVVRUT05TCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5idXR0b24gewogICAgYmFja2dyb3VuZDogJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwogICAgYm9yZGVyOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIHNwYWNpbmc6IDVweCA1cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJGhvdmVyLWJhY2tncm91bmQtY29sb3Itc3RhcnQgJGhvdmVyLWJhY2tncm91bmQtY29sb3ItZW5kIHZlcnRpY2FsOwogICAgY29sb3I6ICRob3Zlci10ZXh0LWNvbG9yOwogICAgYm9yZGVyOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRob3Zlci1ib3JkZXItY29sb3I7Cn0KCi5idXR0b246ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZG93bi1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0OwogICAgY29sb3I6ICRob3Zlci10ZXh0LWNvbG9yOwogICAgYm9yZGVyLWNvbG9yOiAkaG92ZXItYm9yZGVyLWNvbG9yOwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKfQoKLyoKV0lQIC0gZHVubm8gd2hhdCBsb29rcyAicmlnaHQiCiovCi5idXR0b24uZW1waGFzaXplZCB7CiAgICBiYWNrZ3JvdW5kOiAjZWNmMmY5ICNkOWU1ZjI7CiAgICBib3JkZXItY29sb3I6ICNiNGNiZTQ7CiAgICBjb2xvcjogIzQwN2RiZjsKCiAgICBfX2JvcmRlcjogMnB4IHNvbGlkICRhY2NlbnQtY29sb3I7CiAgICBfX2JvcmRlci1yYWRpdXM6IDNweDsKfQoKLmJ1dHRvbi5lbXBoYXNpemVkOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICNkOWU1ZjIgI2I0Y2JlNDsKICAgIGJvcmRlci1jb2xvcjogIzgzYWFkNDsKICAgIGNvbG9yOiAjNDA3ZGJmOwp9CgouYnV0dG9uLmVtcGhhc2l6ZWQ6ZG93biB7CiAgICBiYWNrZ3JvdW5kOiAjYjRjYmU0ICNiNGNiZTQ7CiAgICBib3JkZXItY29sb3I6ICM4M2FhZDQ7CiAgICBjb2xvcjogIzQwN2RiZjsKfQoKLmJ1dHRvbjphY3RpdmUgewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLmJ1dHRvbjpkaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kOiAkZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvci1zdGFydCAkZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7CiAgICBjb2xvcjogJGRpc2FibGVkLXRleHQtY29sb3I7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7Cn0KCi5idXR0b24gLmxhYmVsIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIEJVVFRPTiBCQVJTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5idXR0b24tYmFyIHsKICAgIHNwYWNpbmc6IDA7Cn0KCi5idXR0b24tYmFyIC5idXR0b24gewogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGJvcmRlcjogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLmJ1dHRvbi1iYXIgLmJ1dHRvbjpkb3duIHsKICAgIF9fYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwogICAgX19jb2xvcjogJHNlbGVjdGlvbi10ZXh0LWNvbG9yOwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKfQoKLmhvcml6b250YWwtYnV0dG9uLWJhciAuYnV0dG9uIHsKICAgIGJvcmRlci1sZWZ0LXNpemU6IDA7Cn0KCi5ob3Jpem9udGFsLWJ1dHRvbi1iYXIgLmJ1dHRvbi5maXJzdCB7CiAgICBib3JkZXItbGVmdC1zaXplOiAkbm9ybWFsLWJvcmRlci1zaXplOwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwp9CgouaG9yaXpvbnRhbC1idXR0b24tYmFyIC5idXR0b24ubGFzdCB7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRub3JtYWwtYm9yZGVyLXJhZGl1czsKfQoKLnZlcnRpY2FsLWJ1dHRvbi1iYXIgLmJ1dHRvbiB7CiAgICBib3JkZXItdG9wLXNpemU6IDA7Cn0KCi52ZXJ0aWNhbC1idXR0b24tYmFyIC5idXR0b24uZmlyc3QgewogICAgYm9yZGVyLXRvcC1zaXplOiAkbm9ybWFsLWJvcmRlci1zaXplOwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRub3JtYWwtYm9yZGVyLXJhZGl1czsKfQoKLnZlcnRpY2FsLWJ1dHRvbi1iYXIgLmJ1dHRvbi5sYXN0IHsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRub3JtYWwtYm9yZGVyLXJhZGl1czsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkbm9ybWFsLWJvcmRlci1yYWRpdXM7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogQlVUVE9OIEJBUiAtIExFRlQgTUVOVSBBTFRFUk5BVEUKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmJ1dHRvbi1iYXIubGVmdC1tZW51IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgYm9yZGVyLXJpZ2h0OiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgouYnV0dG9uLWJhci5sZWZ0LW1lbnUgLmJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci1sZWZ0OiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgd2lkdGg6IDEwMHB4OwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGljb24tcG9zaXRpb246ICJ0b3AiOwogICAgYm9yZGVyLXJhZGl1czogMHB4Owp9CgouYnV0dG9uLWJhci5sZWZ0LW1lbnUud2l0aC1ib3R0b20tYnV0dG9uIC5idXR0b24ubGFzdCB7CiAgICBib3JkZXItdG9wOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbTogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLmJ1dHRvbi1iYXIubGVmdC1tZW51IC5idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItaG92ZXI7CiAgICBib3JkZXItbGVmdDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkc29saWQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKfQoKLmJ1dHRvbi1iYXIubGVmdC1tZW51IC5idXR0b246ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgY29sb3I6ICRub3JtYWwtdGV4dC1jb2xvcjsKICAgIGJvcmRlci1yaWdodDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgCiAgICBib3JkZXItdG9wOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItbGVmdDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgCiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi5idXR0b24tYmFyLmxlZnQtbWVudSAuYnV0dG9uLmZpcnN0OmRvd24gewogICAgYm9yZGVyLXRvcDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLmJ1dHRvbi1iYXIubGVmdC1tZW51LndpdGgtYm90dG9tLWJ1dHRvbiAuYnV0dG9uLmxhc3Q6ZG93biB7CiAgICBib3JkZXItdG9wOiAgJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1ib3R0b206ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBCVVRUT04gQkFSIC0gUklHSFQgTUVOVSBBTFRFUk5BVEUKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmJ1dHRvbi1iYXIucmlnaHQtbWVudSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci1sZWZ0OiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgouYnV0dG9uLWJhci5yaWdodC1tZW51IC5idXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItcmlnaHQ6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICB3aWR0aDogMTAwcHg7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgaWNvbi1wb3NpdGlvbjogInRvcCI7CiAgICBib3JkZXItcmFkaXVzOiAwcHg7Cn0KCi5idXR0b24tYmFyLnJpZ2h0LW1lbnUud2l0aC1ib3R0b20tYnV0dG9uIC5idXR0b24ubGFzdCB7CiAgICBib3JkZXItdG9wOiAgJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1ib3R0b206ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJHNvbGlkLWJhY2tncm91bmQtY29sb3I7Cn0KCi5idXR0b24tYmFyLnJpZ2h0LW1lbnUgLmJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKICAgIGJvcmRlci1yaWdodDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkc29saWQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKfQoKLmJ1dHRvbi1iYXIucmlnaHQtbWVudSAuYnV0dG9uOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICBib3JkZXItbGVmdDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgCiAgICBib3JkZXItdG9wOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItcmlnaHQ6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIAogICAgZmlsdGVyOiBub25lOwp9CgouYnV0dG9uLWJhci5yaWdodC1tZW51IC5idXR0b24uZmlyc3Q6ZG93biB7CiAgICBib3JkZXItdG9wOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgouYnV0dG9uLWJhci5yaWdodC1tZW51LndpdGgtYm90dG9tLWJ1dHRvbiAuYnV0dG9uLmxhc3Q6ZG93biB7CiAgICBib3JkZXItdG9wOiAgJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1ib3R0b206ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBCVVRUT04gQkFSIC0gVE9QIE1FTlUgQUxURVJOQVRFCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5idXR0b24tYmFyLnRvcC1tZW51IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbTogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLmJ1dHRvbi1iYXIudG9wLW1lbnUgLmJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci10b3A6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICB3aWR0aDogMTAwcHg7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgaWNvbi1wb3NpdGlvbjogInRvcCI7CiAgICBib3JkZXItcmFkaXVzOiAwcHg7Cn0KCi5idXR0b24tYmFyLnRvcC1tZW51IC5idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItaG92ZXI7CiAgICBib3JkZXItdG9wOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwp9CgouYnV0dG9uLWJhci50b3AtbWVudSAuYnV0dG9uOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICAKICAgIGJvcmRlci1sZWZ0OiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItYm90dG9tOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICAKICAgIGJvcmRlci10b3A6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIAogICAgZmlsdGVyOiBub25lOwp9CgouYnV0dG9uLWJhci50b3AtbWVudSAuYnV0dG9uLmZpcnN0OmRvd24gewogICAgYm9yZGVyLWxlZnQ6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogQlVUVE9OIEJBUiAtIEJPVFRPTSBNRU5VIEFMVEVSTkFURQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwouYnV0dG9uLWJhci5ib3R0b20tbWVudSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci10b3A6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5idXR0b24tYmFyLmJvdHRvbS1tZW51IC5idXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItYm90dG9tOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgd2lkdGg6IDEwMHB4OwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGljb24tcG9zaXRpb246ICJ0b3AiOwogICAgYm9yZGVyLXJhZGl1czogMHB4Owp9CgouYnV0dG9uLWJhci5ib3R0b20tbWVudSAuYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwogICAgYm9yZGVyLWJvdHRvbTogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkc29saWQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKfQoKLmJ1dHRvbi1iYXIuYm90dG9tLW1lbnUgLmJ1dHRvbjpkb3duIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwogICAgCiAgICBib3JkZXItbGVmdDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbTogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgCiAgICBib3JkZXItdG9wOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICAKICAgIGZpbHRlcjogbm9uZTsKfQoKLmJ1dHRvbi1iYXIuYm90dG9tLW1lbnUgLmJ1dHRvbi5maXJzdDpkb3duIHsKICAgIGJvcmRlci1sZWZ0OiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9Cg"},{ name : "haxeui-flixel/styles/default/main.css", data : "LmxhYmVsIHsKICAgIGZvbnQtbmFtZTogImZsaXhlbC9mb250cy9ub2tpYWZjMjIudHRmIjsKICAgIGZvbnQtc2l6ZTogOHB4Owp9CgoudGV4dGZpZWxkLCAudGV4dGFyZWEgewogICAgZm9udC1uYW1lOiAiZmxpeGVsL2ZvbnRzL25va2lhZmMyMi50dGYiOwogICAgZm9udC1zaXplOiA4cHg7Cn0K"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicStats", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUcwbEVRVlI0Mm1NWU9QQWZDaWhSakttQS9vb1JndlJYVENvQUFFSUNoM2xmU2RhdEFBQUFBRWxGVGtTdVFtQ0M"},{ name : "haxeui-core/styles/default/tabs.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBUQUJCQVIgKFRPUCkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLnRhYmJhciB7CiAgICBwYWRkaW5nLWxlZnQ6IDBweDsKICAgIHBhZGRpbmctcmlnaHQ6IDBweDsKICAgIGhlaWdodDogYXV0bzsKICAgIHdpZHRoOiBhdXRvOwogICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItdG9wLXdpZHRoOiAwcHg7CiAgICBjbGlwOiB0cnVlOwogICAgc3BhY2luZzogOHB4Owp9CgoudGFiYmFyID4gLnRhYmJhci1jb250ZW50cyB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHNwYWNpbmc6IDA7Cn0KCi50YWJiYXItYnV0dG9uIHsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKICAgIGJhY2tncm91bmQ6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWRvd24gJHNvbGlkLWJhY2tncm91bmQtY29sb3ItZG93biB2ZXJ0aWNhbDsKICAgIHBhZGRpbmc6IDdweCA4cHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogICAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLnRhYmJhci1idXR0b24gLmljb24gewogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi50YWJiYXItYnV0dG9uLmZpcnN0IHsKICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7Cn0KCi50YWJiYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yIHZlcnRpY2FsOwogICAgYm9yZGVyLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLnRhYmJhci1idXR0b246ZG93biB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLnRhYmJhci1idXR0b246YWN0aXZlIHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWxlZnQtY29sb3I6ICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDsKCiAgICBib3JkZXItdG9wOiAycHggc29saWQgJGFjY2VudC1ncmFkaWVudC1zdGFydDsKfQoKLnRhYmJhci1idXR0b24tc2VsZWN0ZWQuZmlyc3Q6YWN0aXZlIHsKICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7Cn0KCi50YWJiYXItYnV0dG9uLXNlbGVjdGVkIHsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKCiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItbGVmdC13aWR0aDogMHB4OwogICAgCiAgICBib3JkZXItdG9wOiAycHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLnRhYmJhci1idXR0b24tc2VsZWN0ZWQuZmlyc3QgewogICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsKfQoKLnRhYmJhci1idXR0b24tc2VsZWN0ZWQ6YWN0aXZlIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjsKfQoKLnRhYmJhci1zY3JvbGwtbGVmdCB7CiAgICBpY29uOiAkYXJyb3ctbGVmdDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBwYWRkaW5nOiA1cHg7CiAgICBtYXJnaW4tbGVmdDogMnB4Owp9CgoudGFiYmFyLXNjcm9sbC1yaWdodCB7CiAgICBpY29uOiAkYXJyb3ctcmlnaHQ7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgcGFkZGluZzogNXB4OwogICAgbWFyZ2luLWxlZnQ6IDNweDsKfQoKLnRhYmJhci1maWxsZXItbGVmdCB7CiAgICB3aWR0aDogMXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi50YWJiYXItZmlsbGVyLXJpZ2h0IHsKICAgIHdpZHRoOiAxcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLnRhYmJhci1idXR0b24tc2VsZWN0ZWQgLmxhYmVsIHsKfQoKLnRhYmJhci1idXR0b24tc2VsZWN0ZWQgLmljb24gewp9CgoudGFiYmFyLWJ1dHRvbiAudGFiLWNsb3NlLWJ1dHRvbiB7CiAgICByZXNvdXJjZTogJGNsb3NlOwogICAgdmVydGljYWwtYWxpZ246ICJjZW50ZXIiOwogICAgY3Vyc29yOiAicG9pbnRlciI7CiAgICBwb2ludGVyLWV2ZW50czogdHJ1ZTsKICAgIHBhZGRpbmc6IDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKfQoKLnRhYmJhci1idXR0b24gLnRhYi1jbG9zZS1idXR0b246aG92ZXIgewogICAgcmVzb3VyY2U6ICRjbG9zZS1ob3ZlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKfQoKLnRhYmJhciAudGFiYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICBib3JkZXItY29sb3I6ICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgoudGFiYmFyIC50YWJiYXItYnV0dG9uLXNlbGVjdGVkOmRpc2FibGVkIHsKICAgIGJvcmRlci1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogVEFCQkFSIChCT1RUT00pCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi50YWJiYXI6Ym90dG9tIHsKICAgIHBhZGRpbmctbGVmdDogMHB4OwogICAgcGFkZGluZy1yaWdodDogMHB4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgd2lkdGg6IGF1dG87CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7CiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7CiAgICBib3JkZXItdG9wLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGNsaXA6IHRydWU7Cn0KCi50YWJiYXI6Ym90dG9tIC50YWJiYXItY29udGVudHMgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OwogICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OwogICAgYm9yZGVyLXRvcC1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBzcGFjaW5nOiAwOwp9CgoudGFiYmFyLWJ1dHRvbjpib3R0b20gewogICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7Cn0KCi50YWJiYXItYnV0dG9uLmZpcnN0IHsKICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7Cn0KCi50YWJiYXItYnV0dG9uLXNlbGVjdGVkOmJvdHRvbSB7CiAgICBib3JkZXItcmFkaXVzOiAwcHg7CgogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7CiAgICBib3JkZXItdG9wLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItbGVmdC13aWR0aDogMHB4OwogICAgCiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLnRhYmJhcjpib3R0b20gLnRhYmJhci1idXR0b246YWN0aXZlIHsKICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYWNjZW50LWNvbG9yOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItbGVmdC1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi50YWJiYXI6Ym90dG9tIC50YWJiYXItYnV0dG9uLXNlbGVjdGVkOmFjdGl2ZSB7CiAgICBib3JkZXItdG9wLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7Cn0KCi50YWJiYXItYnV0dG9uLXNlbGVjdGVkLmZpcnN0IHsKICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7Cn0KCi50YWJiYXI6Ym90dG9tIC50YWJiYXItYnV0dG9uLXNlbGVjdGVkOmRpc2FibGVkIHsKICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci10b3AtY29sb3I6ICRzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjsKfQoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogVEFCQkFSIC0gUk9VTkRFRCBUQUJTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5yb3VuZGVkLXRhYnMgLnRhYmJhci1idXR0b24uZmlyc3QgewogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4Owp9Ci5yb3VuZGVkLXRhYnMgLnRhYmJhci1idXR0b24ubGFzdCB7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4Owp9Cgoucm91bmRlZC10YWJzIC50YWJiYXI6Ym90dG9tIC50YWJiYXItYnV0dG9uIHsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7Cn0KCi5yb3VuZGVkLXRhYnMgLnRhYmJhcjpib3R0b20gLnRhYmJhci1idXR0b24uZmlyc3QgewogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4Owp9Ci5yb3VuZGVkLXRhYnMgLnRhYmJhcjpib3R0b20gLnRhYmJhci1idXR0b24ubGFzdCB7CiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4Owp9Cgoucm91bmRlZC10YWJzIC50YWJiYXIgLnRhYmJhci1zY3JvbGwtbGVmdCB7CiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7Cn0KCi5yb3VuZGVkLXRhYnMgLnRhYmJhciAudGFiYmFyLXNjcm9sbC1yaWdodCB7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBUQUJWSUVXCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi50YWJ2aWV3IHsKICAgIGJvcmRlcjogbm9uZTsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwp9CgoudGFidmlldyA+IC50YWJ2aWV3LXRhYnMgewogICAgbWFyZ2luLXRvcDogMXB4Owp9CgoudGFidmlldzpib3R0b20gPiAudGFidmlldy10YWJzIHsKICAgIG1hcmdpbi10b3A6IDBweDsKfQoKLnRhYnZpZXcgPiAudGFidmlldy1jb250ZW50IHsKICAgIGJvcmRlcjogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHBhZGRpbmc6IDhweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjsKfQoKLnRhYnZpZXctY29udGVudDpkaXNhYmxlZCB7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7Cn0KCi50YWJ2aWV3Lm5vLXBhZGRpbmcgPiAudGFidmlldy1jb250ZW50IHsKICAgIHBhZGRpbmc6IDBweDsKfQoKLnRhYnZpZXcubm8tYm9yZGVyID4gLnRhYnZpZXctY29udGVudCB7CiAgICBib3JkZXI6IG5vbmU7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogVEFCVklFVyBBTFQgU1RZTEVTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5jb2xsYXBzaWJsZS1sYWJlbHMgLnRhYmJhci1idXR0b24gLmxhYmVsIHsKICAgIGhpZGRlbjogdHJ1ZTsKfQoKLmNvbGxhcHNpYmxlLWxhYmVscyAudGFiYmFyLWJ1dHRvbi1zZWxlY3RlZCAubGFiZWwgewogICAgaGlkZGVuOiBmYWxzZTsKfQoKLmZ1bGwtd2lkdGgtYnV0dG9ucyAudGFiYmFyLWJ1dHRvbiwgLmZ1bGwtd2lkdGgtYnV0dG9ucyAudGFiYmFyID4gLnRhYmJhci1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKfQo"},{ name : "haxeui_classmap", data : "YnkxMTp3aW5kb3d0aXRsZXkzODpoYXhlLnVpLmNvbnRhaW5lcnMud2luZG93cy5XaW5kb3dUaXRsZXkxNDp3aW5kb3dsaXN0aXRlbXk1MzpoYXhlLnVpLmNvbnRhaW5lcnMud2luZG93cy5fV2luZG93TGlzdC5XaW5kb3dMaXN0SXRlbXkxMDp3aW5kb3dsaXN0eTM3OmhheGUudWkuY29udGFpbmVycy53aW5kb3dzLldpbmRvd0xpc3R5MTI6d2luZG93Zm9vdGVyeTM5OmhheGUudWkuY29udGFpbmVycy53aW5kb3dzLldpbmRvd0Zvb3Rlcnk2OndpbmRvd3kzMzpoYXhlLnVpLmNvbnRhaW5lcnMud2luZG93cy5XaW5kb3d5MTQ6d2F2ZWZvcm1wbGF5ZXJ5NDI6ZnVua2luLnVpLmhheGV1aS5jb21wb25lbnRzLldhdmVmb3JtUGxheWVyeTE2OnZlcnRpY2Fsc3BsaXR0ZXJ5MzU6aGF4ZS51aS5jb250YWluZXJzLlZlcnRpY2FsU3BsaXR0ZXJ5MTQ6dmVydGljYWxzbGlkZXJ5MzM6aGF4ZS51aS5jb21wb25lbnRzLlZlcnRpY2FsU2xpZGVyeTE0OnZlcnRpY2Fsc2Nyb2xseTMzOmhheGUudWkuY29tcG9uZW50cy5WZXJ0aWNhbFNjcm9sbHkxMjp2ZXJ0aWNhbHJ1bGV5MzE6aGF4ZS51aS5jb21wb25lbnRzLlZlcnRpY2FsUnVsZXkxMzp2ZXJ0aWNhbHJhbmdleTMyOmhheGUudWkuY29tcG9uZW50cy5WZXJ0aWNhbFJhbmdleTE2OnZlcnRpY2FscHJvZ3Jlc3N5MzU6aGF4ZS51aS5jb21wb25lbnRzLlZlcnRpY2FsUHJvZ3Jlc3N5MTc6dmVydGljYWxidXR0b25iYXJ5MzY6aGF4ZS51aS5jb250YWluZXJzLlZlcnRpY2FsQnV0dG9uQmFyeTQ6dmJveHkyMzpoYXhlLnVpLmNvbnRhaW5lcnMuVkJveHkzODp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZ3aW5kb3d0aXRsZVIxeTM3OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRndpbmRvd2xpc3RSNXkzMzp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZ3aW5kb3dSOXk0MTp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZ3YXZlZm9ybXBsYXllclIxMXkzNDp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZ2c2xpZGVyUjE1eTMyOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRnZydWxlUjE5eTQxOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRnZlcnRpY2Fsc2xpZGVyUjE1eTM5OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRnZlcnRpY2FscnVsZVIxOXkzMTp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZ2Ym94UjI3eTM1OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRnRyZWV2aWV3eTI3OmhheGUudWkuY29udGFpbmVycy5UcmVlVmlld3kzNjp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZ0ZXh0ZmllbGR5Mjg6aGF4ZS51aS5jb21wb25lbnRzLlRleHRGaWVsZHkzMjp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZzdGFja3kyNDpoYXhlLnVpLmNvbnRhaW5lcnMuU3RhY2t5NDA6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGc3ByaXRld3JhcHBlcnk0NzpoYXhlLnVpLmJhY2tlbmQuZmxpeGVsLmNvbXBvbmVudHMuU3ByaXRlV3JhcHBlcnkzMzp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZzcGFjZXJ5MjU6aGF4ZS51aS5jb21wb25lbnRzLlNwYWNlcnkzMzp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZzbGlkZXJ5MjU6aGF4ZS51aS5jb21wb25lbnRzLlNsaWRlcnkzNzp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZzY3JvbGx2aWV3eTI5OmhheGUudWkuY29udGFpbmVycy5TY3JvbGxWaWV3eTMxOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRnJ1bGV5MjM6aGF4ZS51aS5jb21wb25lbnRzLlJ1bGV5Mzg6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGcGFuZWxoZWFkZXJ5Mzc6aGF4ZS51aS5jb250YWluZXJzLl9QYW5lbC5QYW5lbEhlYWRlcnkzODp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZwYW5lbGZvb3RlcnkzNzpoYXhlLnVpLmNvbnRhaW5lcnMuX1BhbmVsLlBhbmVsRm9vdGVyeTMyOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRnBhbmVseTI0OmhheGUudWkuY29udGFpbmVycy5QYW5lbHk0MDp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZudW1iZXJzdGVwcGVyeTMyOmhheGUudWkuY29tcG9uZW50cy5OdW1iZXJTdGVwcGVyeTM5OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRm5vdGlmaWNhdGlvbnkzNDpoYXhlLnVpLm5vdGlmaWNhdGlvbnMuTm90aWZpY2F0aW9ueTM5OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRm1vbnRoc3RlcHBlcnkzMTpoYXhlLnVpLmNvbXBvbmVudHMuTW9udGhTdGVwcGVyeTQzOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRm1vbnRocGlja2VycGFuZWx5NDM6aGF4ZS51aS5jb21wb25lbnRzLnBpY2tlcnMuTW9udGhQaWNrZXJQYW5lbHkzODp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZtb250aHBpY2tlcnkzODpoYXhlLnVpLmNvbXBvbmVudHMucGlja2Vycy5Nb250aFBpY2tlcnk0MDp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZtZW51c2VwYXJhdG9yeTM4OmhheGUudWkuY29udGFpbmVycy5tZW51cy5NZW51U2VwYXJhdG9yeTQwOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRm1lbnVvcHRpb25ib3h5Mzg6aGF4ZS51aS5jb250YWluZXJzLm1lbnVzLk1lbnVPcHRpb25Cb3h5NDE6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGbWVudWl0ZW1waWNrZXJ5NDE6aGF4ZS51aS5jb21wb25lbnRzLnBpY2tlcnMuTWVudUl0ZW1QaWNrZXJ5MzU6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGbWVudWl0ZW15MzM6aGF4ZS51aS5jb250YWluZXJzLm1lbnVzLk1lbnVJdGVteTM5OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRm1lbnVjaGVja2JveHkzNzpoYXhlLnVpLmNvbnRhaW5lcnMubWVudXMuTWVudUNoZWNrQm94eTM0OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRm1lbnViYXJ5MzI6aGF4ZS51aS5jb250YWluZXJzLm1lbnVzLk1lbnVCYXJ5MzE6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGbWVudXkyOTpoYXhlLnVpLmNvbnRhaW5lcnMubWVudXMuTWVudXkzNTp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZsaXN0dmlld3kyNzpoYXhlLnVpLmNvbnRhaW5lcnMuTGlzdFZpZXd5NDE6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGbGlzdGl0ZW1waWNrZXJ5NDE6aGF4ZS51aS5jb21wb25lbnRzLnBpY2tlcnMuTGlzdEl0ZW1QaWNrZXJ5MzE6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGbGlua3kyMzpoYXhlLnVpLmNvbXBvbmVudHMuTGlua3kzMjp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZsYWJlbHkyNDpoYXhlLnVpLmNvbXBvbmVudHMuTGFiZWx5Mzk6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGaXRlbXJlbmRlcmVyeTI1OmhheGUudWkuY29yZS5JdGVtUmVuZGVyZXJ5Mzc6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGaXRlbXBpY2tlcnkzNzpoYXhlLnVpLmNvbXBvbmVudHMucGlja2Vycy5JdGVtUGlja2VyeTMyOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmltYWdleTI0OmhheGUudWkuY29tcG9uZW50cy5JbWFnZXkzNTp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZpY29ubGlua3kyNzpoYXhlLnVpLmNvbXBvbmVudHMuSWNvbkxpbmt5NDU6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGaHN2Y29sb3JwaWNrZXJpbXBseTUwOmhheGUudWkuY29tcG9uZW50cy5fQ29sb3JQaWNrZXIuSFNWQ29sb3JQaWNrZXJJbXBseTM0OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmhzbGlkZXJ5MzU6aGF4ZS51aS5jb21wb25lbnRzLkhvcml6b250YWxTbGlkZXJ5MzI6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGaHJ1bGV5MzM6aGF4ZS51aS5jb21wb25lbnRzLkhvcml6b250YWxSdWxleTQzOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmhvcml6b250YWxzbGlkZXJSMTAyeTQxOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmhvcml6b250YWxydWxlUjEwNHkzMTp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZoYm94eTIzOmhheGUudWkuY29udGFpbmVycy5IQm94eTMxOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmdyaWR5MjM6aGF4ZS51aS5jb250YWluZXJzLkdyaWR5MzI6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGZnJhbWV5MjQ6aGF4ZS51aS5jb250YWluZXJzLkZyYW1leTM1OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmRyb3Bkb3dueTI3OmhheGUudWkuY29tcG9uZW50cy5Ecm9wRG93bnkzMzp1cm4lM0ElM0FoYXhldWklM0ElM0FvcmclMkZkaWFsb2d5MzM6aGF4ZS51aS5jb250YWluZXJzLmRpYWxvZ3MuRGlhbG9neTQ3OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmNvbG9ycGlja2VycG9wdXB2aWV3eTY0OmhheGUudWkuY29tcG9uZW50cy5wb3B1cHMuX0NvbG9yUGlja2VyUG9wdXAuQ29sb3JQaWNrZXJQb3B1cFZpZXd5NDM6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGY29sb3JwaWNrZXJwb3B1cHk0MjpoYXhlLnVpLmNvbXBvbmVudHMucG9wdXBzLkNvbG9yUGlja2VyUG9wdXB5Mzg6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGY29sb3JwaWNrZXJ5MzA6aGF4ZS51aS5jb21wb25lbnRzLkNvbG9yUGlja2VyeTQ0OnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmNvbGxhcHNpYmxlZGlhbG9neTQ0OmhheGUudWkuY29udGFpbmVycy5kaWFsb2dzLkNvbGxhcHNpYmxlRGlhbG9neTMxOnVybiUzQSUzQWhheGV1aSUzQSUzQW9yZyUyRmNhcmR5MjM6aGF4ZS51aS5jb250YWluZXJzLkNhcmR5MzM6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGY2FudmFzeTI1OmhheGUudWkuY29tcG9uZW50cy5DYW52YXN5MzM6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGYnV0dG9ueTI1OmhheGUudWkuY29tcG9uZW50cy5CdXR0b255MzA6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGYm94eTIyOmhheGUudWkuY29udGFpbmVycy5Cb3h5MzU6dXJuJTNBJTNBaGF4ZXVpJTNBJTNBb3JnJTJGYWJzb2x1dGV5Mjc6aGF4ZS51aS5jb250YWluZXJzLkFic29sdXRleTEyOnRyZWV2aWV3bm9kZXkzMTpoYXhlLnVpLmNvbnRhaW5lcnMuVHJlZVZpZXdOb2RleTg6dHJlZXZpZXdSMzh5Nzp0b29sdGlweTI0OmhheGUudWkudG9vbHRpcHMuVG9vbFRpcHk2OnRvZ2dsZXkyNTpoYXhlLnVpLmNvbXBvbmVudHMuVG9nZ2xleTk6dGV4dGZpZWxkUjQweTg6dGV4dGFyZWF5Mjc6aGF4ZS51aS5jb21wb25lbnRzLlRleHRBcmVheTc6dGFnbGlzdHkyNjpoYXhlLnVpLmNvbnRhaW5lcnMuVGFnTGlzdHkzOnRhZ3kyMjpoYXhlLnVpLmNvbXBvbmVudHMuVGFneTc6dGFidmlld3kyNjpoYXhlLnVpLmNvbnRhaW5lcnMuVGFiVmlld3k5OnRhYmxldmlld3kyODpoYXhlLnVpLmNvbnRhaW5lcnMuVGFibGVWaWV3eTEyOnRhYmJhcmJ1dHRvbnkzOTpoYXhlLnVpLmNvbXBvbmVudHMuX1RhYkJhci5UYWJCYXJCdXR0b255Njp0YWJiYXJ5MjU6aGF4ZS51aS5jb21wb25lbnRzLlRhYkJhcnkxNTpzd2l0Y2hidXR0b25zdWJ5NDI6aGF4ZS51aS5jb21wb25lbnRzLl9Td2l0Y2guU3dpdGNoQnV0dG9uU3VieTY6c3dpdGNoeTI1OmhheGUudWkuY29tcG9uZW50cy5Td2l0Y2h5NzpzdGVwcGVyeTI2OmhheGUudWkuY29tcG9uZW50cy5TdGVwcGVyeTU6c3RhY2tSNDJ5MTM6c3ByaXRld3JhcHBlclI0NHk4OnNwbGl0dGVyeTI3OmhheGUudWkuY29udGFpbmVycy5TcGxpdHRlcnk3OnNwaW5uZXJ5MjY6aGF4ZS51aS5jb21wb25lbnRzLlNwaW5uZXJ5MTM6c3BhcnJvd3BsYXllcnk0NzpoYXhlLnVpLmJhY2tlbmQuZmxpeGVsLmNvbXBvbmVudHMuU3BhcnJvd1BsYXllcnk2OnNwYWNlclI0Nnk2OnNsaWRlclI0OHkxMjpzaXplcmdyaXBwZXJ5NDE6aGF4ZS51aS5jb250YWluZXJzLl9TcGxpdHRlci5TaXplckdyaXBwZXJ5NzpzaWRlYmFyeTI2OmhheGUudWkuY29udGFpbmVycy5TaWRlQmFyeTEzOnNlY3Rpb25oZWFkZXJ5MzI6aGF4ZS51aS5jb21wb25lbnRzLlNlY3Rpb25IZWFkZXJ5MTA6c2Nyb2xsdmlld1I1MHk2OnNjcm9sbHkyNTpoYXhlLnVpLmNvbXBvbmVudHMuU2Nyb2xseTQ6cnVsZVI1Mnk1OnJhbmdleTI0OmhheGUudWkuY29tcG9uZW50cy5SYW5nZXkxMzpwcm9wZXJ0eWdyb3VweTQzOmhheGUudWkuY29udGFpbmVycy5wcm9wZXJ0aWVzLlByb3BlcnR5R3JvdXB5MTI6cHJvcGVydHlncmlkeTQyOmhheGUudWkuY29udGFpbmVycy5wcm9wZXJ0aWVzLlByb3BlcnR5R3JpZHk4OnByb3BlcnR5eTM4OmhheGUudWkuY29udGFpbmVycy5wcm9wZXJ0aWVzLlByb3BlcnR5eTg6cHJvZ3Jlc3N5Mjc6aGF4ZS51aS5jb21wb25lbnRzLlByb2dyZXNzeTk6cHJlbG9hZGVyeTE3OmhheGUudWkuUHJlbG9hZGVyeTExOnBhbmVsaGVhZGVyUjU0eTExOnBhbmVsZm9vdGVyUjU2eTU6cGFuZWxSNTh5MTM6b3B0aW9uc3RlcHBlcnkzMjpoYXhlLnVpLmNvbXBvbmVudHMuT3B0aW9uU3RlcHBlcnk5Om9wdGlvbmJveHkyODpoYXhlLnVpLmNvbXBvbmVudHMuT3B0aW9uQm94eTEzOm51bWJlcnN0ZXBwZXJSNjB5MTI6bm90aWZpY2F0aW9uUjYyeTEyOm1vbnRoc3RlcHBlclI2NHkxNjptb250aHBpY2tlcnBhbmVsUjY2eTExOm1vbnRocGlja2VyUjY4eTE0Om1lc3NhZ2Vib3hiYXNleTMwOmhheGUudWkuYmFja2VuZC5NZXNzYWdlQm94QmFzZXkxMDptZXNzYWdlYm94eTM3OmhheGUudWkuY29udGFpbmVycy5kaWFsb2dzLk1lc3NhZ2VCb3h5MTM6bWVudXNlcGFyYXRvclI3MHkxMzptZW51b3B0aW9uYm94UjcyeTE0Om1lbnVpdGVtcGlja2VyUjc0eTg6bWVudWl0ZW1SNzZ5MTI6bWVudWNoZWNrYm94Ujc4eTc6bWVudWJhclI4MHk0Om1lbnVSODJ5ODpsaXN0dmlld1I4NHkxNDpsaXN0aXRlbXBpY2tlclI4Nnk0OmxpbmtSODh5NTpsYWJlbFI5MHkxMjppdGVtcmVuZGVyZXJSOTJ5MTA6aXRlbXBpY2tlclI5NHkyMDppbnRlcmFjdGl2ZWNvbXBvbmVudHkzMzpoYXhlLnVpLmNvcmUuSW50ZXJhY3RpdmVDb21wb25lbnR5NTppbWFnZVI5Nnk4Omljb25saW5rUjk4eTE4OmhzdmNvbG9ycGlja2VyaW1wbFIxMDB5MTg6aG9yaXpvbnRhbHNwbGl0dGVyeTM3OmhheGUudWkuY29udGFpbmVycy5Ib3Jpem9udGFsU3BsaXR0ZXJ5MTY6aG9yaXpvbnRhbHNsaWRlclIxMDJ5MTY6aG9yaXpvbnRhbHNjcm9sbHkzNTpoYXhlLnVpLmNvbXBvbmVudHMuSG9yaXpvbnRhbFNjcm9sbHkxNDpob3Jpem9udGFscnVsZVIxMDR5MTU6aG9yaXpvbnRhbHJhbmdleTM0OmhheGUudWkuY29tcG9uZW50cy5Ib3Jpem9udGFsUmFuZ2V5MTg6aG9yaXpvbnRhbHByb2dyZXNzeTM3OmhheGUudWkuY29tcG9uZW50cy5Ib3Jpem9udGFsUHJvZ3Jlc3N5MTk6aG9yaXpvbnRhbGJ1dHRvbmJhcnkzODpoYXhlLnVpLmNvbnRhaW5lcnMuSG9yaXpvbnRhbEJ1dHRvbkJhcnk2OmhlYWRlcnkyNTpoYXhlLnVpLmNvbnRhaW5lcnMuSGVhZGVyeTQ6aGJveFIxMDh5NTpncm91cHkyNDpoYXhlLnVpLmNvbnRhaW5lcnMuR3JvdXB5NDpncmlkUjExMHk1OmZyYW1lUjExMnk0OmZvcm15MjM6aGF4ZS51aS5jb250YWluZXJzLkZvcm15Njpmb290ZXJ5MjU6aGF4ZS51aS5jb250YWluZXJzLkZvb3Rlcnk4OmRyb3Bkb3duUjExNHkxMDpkaWFsb2diYXNleTI2OmhheGUudWkuYmFja2VuZC5EaWFsb2dCYXNleTY6ZGlhbG9nUjExNnkyNTpkZWZhdWx0aXRlbXBpY2tlcnJlbmRlcmVyeTY0OmhheGUudWkuY29tcG9uZW50cy5waWNrZXJzLl9JdGVtUGlja2VyLkRlZmF1bHRJdGVtUGlja2VyUmVuZGVyZXJ5OTpkZWNvcmF0b3J5Mjg6aGF4ZS51aS5jb21wb25lbnRzLkRlY29yYXRvcnkxNDpjb250aW51b3VzaGJveHkzMzpoYXhlLnVpLmNvbnRhaW5lcnMuQ29udGludW91c0hCb3h5MjA6Y29tcG91bmRpdGVtcmVuZGVyZXJ5NTA6aGF4ZS51aS5jb250YWluZXJzLl9UYWJsZVZpZXcuQ29tcG91bmRJdGVtUmVuZGVyZXJ5MTM6Y29tcG9uZW50aW1wbHkyOTpoYXhlLnVpLmJhY2tlbmQuQ29tcG9uZW50SW1wbHkxMzpjb21wb25lbnRiYXNleTI5OmhheGUudWkuYmFja2VuZC5Db21wb25lbnRCYXNleTk6Y29tcG9uZW50eTIyOmhheGUudWkuY29yZS5Db21wb25lbnR5Njpjb2x1bW55MjU6aGF4ZS51aS5jb21wb25lbnRzLkNvbHVtbnkyMDpjb2xvcnBpY2tlcnBvcHVwdmlld1IxMTh5MTY6Y29sb3JwaWNrZXJwb3B1cFIxMjB5MTU6Y29sb3JwaWNrZXJpbXBseTQ3OmhheGUudWkuY29tcG9uZW50cy5fQ29sb3JQaWNrZXIuQ29sb3JQaWNrZXJJbXBseTExOmNvbG9ycGlja2VyUjEyMnkxNzpjb2xsYXBzaWJsZWRpYWxvZ1IxMjR5MTE6Y29sbGFwc2libGV5MzA6aGF4ZS51aS5jb250YWluZXJzLkNvbGxhcHNpYmxleTEzOmNoZWNrYm94dmFsdWV5MzI6aGF4ZS51aS5jb21wb25lbnRzLkNoZWNrQm94VmFsdWV5ODpjaGVja2JveHkyNzpoYXhlLnVpLmNvbXBvbmVudHMuQ2hlY2tCb3h5MjQ6Y2hhcnRlZGl0b3J3ZWxjb21lZGlhbG9neTU3OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLkNoYXJ0RWRpdG9yV2VsY29tZURpYWxvZ3kyODpjaGFydGVkaXRvcnVwbG9hZHZvY2Fsc2VudHJ5eTYxOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLkNoYXJ0RWRpdG9yVXBsb2FkVm9jYWxzRW50cnl5Mjk6Y2hhcnRlZGl0b3J1cGxvYWR2b2NhbHNkaWFsb2d5NjI6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmRpYWxvZ3MuQ2hhcnRFZGl0b3JVcGxvYWRWb2NhbHNEaWFsb2d5Mjg6Y2hhcnRlZGl0b3J1cGxvYWRjaGFydGRpYWxvZ3k2MTpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcuZGlhbG9ncy5DaGFydEVkaXRvclVwbG9hZENoYXJ0RGlhbG9neTE2OmNoYXJ0ZWRpdG9yc3RhdGV5NDE6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLkNoYXJ0RWRpdG9yU3RhdGV5MzE6Y2hhcnRlZGl0b3JzZWxlY3Rpb25jb250ZXh0bWVudXk2OTpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcuY29udGV4dG1lbnVzLkNoYXJ0RWRpdG9yU2VsZWN0aW9uQ29udGV4dE1lbnV5MjI6Y2hhcnRlZGl0b3JwbGF5YmFyaGVhZHk1ODpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcuY29tcG9uZW50cy5DaGFydEVkaXRvclBsYXliYXJIZWFkeTI1OmNoYXJ0ZWRpdG9yb2Zmc2V0c3Rvb2xib3h5NjA6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLnRvb2xib3hlcy5DaGFydEVkaXRvck9mZnNldHNUb29sYm94eTI2OmNoYXJ0ZWRpdG9ybm90ZWRhdGF0b29sYm94eTYxOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy50b29sYm94ZXMuQ2hhcnRFZGl0b3JOb3RlRGF0YVRvb2xib3h5MjY6Y2hhcnRlZGl0b3Jub3RlY29udGV4dG1lbnV5NjQ6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmNvbnRleHRtZW51cy5DaGFydEVkaXRvck5vdGVDb250ZXh0TWVudXkyNjpjaGFydGVkaXRvcm1ldGFkYXRhdG9vbGJveHk2MTpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcudG9vbGJveGVzLkNoYXJ0RWRpdG9yTWV0YWRhdGFUb29sYm94eTMwOmNoYXJ0ZWRpdG9yaG9sZG5vdGVjb250ZXh0bWVudXk2ODpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcuY29udGV4dG1lbnVzLkNoYXJ0RWRpdG9ySG9sZE5vdGVDb250ZXh0TWVudXkyNjpjaGFydGVkaXRvcmZyZWVwbGF5dG9vbGJveHk2MTpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcudG9vbGJveGVzLkNoYXJ0RWRpdG9yRnJlZXBsYXlUb29sYm94eTI3OmNoYXJ0ZWRpdG9yZXZlbnRkYXRhdG9vbGJveHk2MjpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcudG9vbGJveGVzLkNoYXJ0RWRpdG9yRXZlbnREYXRhVG9vbGJveHkyNzpjaGFydGVkaXRvcmV2ZW50Y29udGV4dG1lbnV5NjU6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmNvbnRleHRtZW51cy5DaGFydEVkaXRvckV2ZW50Q29udGV4dE1lbnV5Mjg6Y2hhcnRlZGl0b3JkaWZmaWN1bHR5dG9vbGJveHk2MzpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcudG9vbGJveGVzLkNoYXJ0RWRpdG9yRGlmZmljdWx0eVRvb2xib3h5Mjk6Y2hhcnRlZGl0b3JkZWZhdWx0Y29udGV4dG1lbnV5Njc6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmNvbnRleHRtZW51cy5DaGFydEVkaXRvckRlZmF1bHRDb250ZXh0TWVudXkzNjpjaGFydGVkaXRvcmNoYXJhY3Rlcmljb25zZWxlY3Rvcm1lbnV5Njk6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmRpYWxvZ3MuQ2hhcnRFZGl0b3JDaGFyYWN0ZXJJY29uU2VsZWN0b3JNZW51eTIyOmNoYXJ0ZWRpdG9yYmFzZXRvb2xib3h5NTc6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLnRvb2xib3hlcy5DaGFydEVkaXRvckJhc2VUb29sYm94eTE5OmNoYXJ0ZWRpdG9yYmFzZW1lbnV5NTI6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmRpYWxvZ3MuQ2hhcnRFZGl0b3JCYXNlTWVudXkyMTpjaGFydGVkaXRvcmJhc2VkaWFsb2d5NTQ6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmRpYWxvZ3MuQ2hhcnRFZGl0b3JCYXNlRGlhbG9neTI2OmNoYXJ0ZWRpdG9yYmFzZWNvbnRleHRtZW51eTY0OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jb250ZXh0bWVudXMuQ2hhcnRFZGl0b3JCYXNlQ29udGV4dE1lbnV5MjI6Y2hhcnRlZGl0b3JhYm91dGRpYWxvZ3k1NTpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcuZGlhbG9ncy5DaGFydEVkaXRvckFib3V0RGlhbG9neTE1OmNoYXJhY3RlcnBsYXllcnk0MzpmdW5raW4udWkuaGF4ZXVpLmNvbXBvbmVudHMuQ2hhcmFjdGVyUGxheWVyeTQ6Y2FyZFIxMjZ5NjpjYW52YXNSMTI4eTEyOmNhbGVuZGFydmlld3kzMTpoYXhlLnVpLmNvbnRhaW5lcnMuQ2FsZW5kYXJWaWV3eTg6Y2FsZW5kYXJ5Mjc6aGF4ZS51aS5jb21wb25lbnRzLkNhbGVuZGFyeTk6YnV0dG9uYmFyeTI4OmhheGUudWkuY29udGFpbmVycy5CdXR0b25CYXJ5NjpidXR0b25SMTMweTM6Ym94UjEzMnkxNzpiYXNpY2l0ZW1yZW5kZXJlcnkzMDpoYXhlLnVpLmNvcmUuQmFzaWNJdGVtUmVuZGVyZXJ5MTE6YXRsYXNwbGF5ZXJ5MzA6aGF4ZS51aS5jb21wb25lbnRzLkF0bGFzUGxheWVyeTk6YW5pbWF0aW9ueTI4OmhheGUudWkuY29tcG9uZW50cy5BbmltYXRpb255OTphY2NvcmRpb255Mjg6aGF4ZS51aS5jb250YWluZXJzLkFjY29yZGlvbnk4OmFic29sdXRlUjEzNGg"},{ name : "haxeui-core/styles/shared/down-arrow-square-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAIAAABLMMCEAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAMUlEQVQImWN8K6PCgAGYMIUYGBgYt2zZgkWtZUYBmpBlRgEThEIWQpgL4cClGbG6AQAStwro4kB3hAAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/maximize-button-white.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAA+SURBVChTY/z//z8DKYAJiPuBGKSLGNwPsgHEIB6QogGkFmYDI0SIIPgP8gNJYLhoaABiWMQQwhNITBoMDAC+tC0XTMGbOQAAAABJRU5ErkJggg"},{ name : "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoLight", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVlBQUFDcWFYSGVBQUFGT1VsRVFWUjQycjJhQ1E3VE1CUkUyN0t2MStFY1hJUTdjVVQyblVKUXFoZmxFVDBVbVZnYTJXM2NaZWJQLzNiY25rNnZYdjlQbkFmaDlMOXc1L1RpNVdsd093TmZDL1RyeHJaeEFvejc4cnltQkI0bndIamlaOEc0OExwd2crZnhPY2NMME1ROU52bTRybXZ4UFk0Vm9DSnVzaDd2aUhvNFlaOFFsMzNrVFR5aWVkbUxFRWxDREhaQTI5dEVsNFQ5WElnaWdoNURNdVlOZDBDN3dZVHYwQWNhWitHSUdqREMzcERRT0MzZmhIbGN3b1FBSFdIMW01WTIyWGFDaGFBUHEwZHgzaWxBVjJFVHBsL2hMZ0FsaGdTTzZDYngvUUxRdC8waHZTSi9iOVV6SjkzUUtWQk9TQUdhUEdqaWtBYkx4NzRHZUsrb0NVbE84d1lKd0pleTVTRmprdmNuTUxZQUFQSnlna2xkUTRpc0FYdklROXJrSVF3ZWJEeG1MdVNWQ3JrYUlFU21jd2pnSmNWd1ZYZkVJUW9FQ2JHcUQ1VUcxeUI5N1hxQUFDYmZCYy81YnVJUEo2ekdqM2lNR0U0SE84QmtUSm8rVXFFRU1DQU9uT2VRZy9DeXR4Q2toK3VBOHorSVI1TVlFa0RSajJydmZEZkp4Mzk2OEhnRzgrd0Mxd0RhV2RGbVROL2lXSUIvTFh4cGU1Tjlzc0JqUk5sMmdlOEJIUFVBNUVPQWlMNWQ4SGNCSUE5RVhDTGdBdFVCV1g4bjhXc1dRUk1IVWZnZ2I5c3Z5VCs5allFRm1LSG95KzdnSjMxRjMwS2tBQnQzYzhwOWs1OEFlWTBoLzlnMUFQSWlBRmtERVl4T2dkN3hiVGlBM01mMml2Nk1aMHN4bUwrS3Z2SmV4SDhBa1pjUVVRdk9rd0RLZnhjKzUvNEV5TnNCRUljMFFBQ1JWOVVYZVVTUUVFNkoyaGhkZXJPQUtMMGZjRXJNd0FuZytlUUtRV2t5d1VzbGdubkR4TGk1eVFFbUNyUUV4dExuM0ljWXI1MEo4Umx6VTZTL0E3QzZiaGZRcmlBZFlQVktHSW1qZXdIdERCOXJvd1NZN3p2SXUzVjJrTDlVV1lCdXZVemFKYkZiaENRaU1VOEhLVDVtaTVQa0lDOEJpaXpOdVdZM1dBd0xzeHdEdlVhRWhTQ3UxZ0wwSFZYOVdoT25PZkViZ1FSdVZHc0IyaTVSVkRUV2tpUjRxWXZYTWgvNDJuZ0hNSTR2NHpXYjhSTGZKbFJsMS91QUl0K2NFTURSVmlRMWhtZ3NWOTlXK1BJYlgvLzA0UE9FMnpXQVNFdXhZZ2NvQjVZSWx4M0svVFJNSENJUW5mdVA4L2pUTko3eGFRSnp3RTJNY0VuZUVlNVlCU0t2SFhrVEo3cWZWb1EvTFBDUkhpQUlvaWgxdEIyMkNCS2k5Z0ZiQ3NwcTI1WW42cEQvc01MNzMzaTN3SHVBR0N0WGtCcHlnQUJ4OFpJRFBDbWl6bmpUOGxoOFJmcHRBRkZTQ0p3ZzRsa280WGZwQXdSWGVWdWZJaWNCSFBFbDRUZEw4RHh1VUgyQVBFNndJMDVaQVB0SWpER0lQei9nS2gxaFNUQ0pwUnBCand0d3c1WVRuQmFPZmd2UXY3M2ZFTC9nWGlObEpBQUFkZ0hrNVFaRXVBbzZYb3RUNFNEdDIyZWF5R3VsQUo4aHR5VHJxQk41Uk5DS0VJVXdmaG1pMzNLRWdBaXN0Ym9uMTJyaHpSQWtQem5xTTVqck9nRDQzTjRmK0xmQkZvS3hYK09WQTZoZ1NvUVZSSDdMOWhIOUxvSW1aL3ZIZFgvQTBnVVVxRzg0WUlKRjJINk05WHRIYU9oWHBSU2dDNkd2bTd5M3lpMkNpWU52MitSQjdBUnArZitBYUtxcWtFY0U3eHVvQS9UZklHblNRZDdSNzUxZ0M5QVJ0eEFBOG1EN2J0RkVJUThnN2pVZlJPRUxCMlNoTS9td0d1UWxnb1FnTlJocnh3ZjVKajd3WDJMZCtzNFJRRWhpUUJUaUNLZEtIOGZnNnZjSTRQRlZ6OGR4RmNBTkVLWFhXRERodUEwZWVTanE1L2hDa0lzemdvVHpIbFRPbHpQVEFmdWRZQmZFM1NTQUZHTmZkOVQ3SHlMai95NnZQcHVKNjFoTks0Y2pISWlEbkVFQ0JHbDlhTGtCT0s5WHlLVXRIRGxFZ053dGRoUnMyU0FjeFMxRnA0MFhvTVhaSm0xU29BWGNFZlhSQXZRL3Nxc2lCNEdJYkZ3N1FJRGNGc2NYMjduczlwempCV2czZERPUmN4TnY4a2NMME9UN1dwUHJhOGNMTUlEc2JqR09GMkM4TUNaNmNQc0ZMZ2kyUWU0OEVWTUFBQUFBU1VWT1JLNUNZSUk9"},{ name : "haxeui-core/styles/default/notifications.css", data : "Lm5vdGlmaWNhdGlvbiB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBmaWx0ZXI6ICRkaWFsb2ctc2hhZG93Owp9Cgoubm90aWZpY2F0aW9uLmJsdWUtbm90aWZpY2F0aW9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3ItbGlnaHRlcjsKICAgIGJvcmRlci1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoubm90aWZpY2F0aW9uLnllbGxvdy1ub3RpZmljYXRpb24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm5pbmctYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGJvcmRlci1jb2xvcjogJHdhcm5pbmctYm9yZGVyLWNvbG9yOwp9Cgoubm90aWZpY2F0aW9uLnJlZC1ub3RpZmljYXRpb24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJGVycm9yLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICRlcnJvci1ib3JkZXItY29sb3I7Cn0KCi5ub3RpZmljYXRpb24uZ3JlZW4tbm90aWZpY2F0aW9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWNjZXNzLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICRzdWNjZXNzLWJvcmRlci1jb2xvcjsKfQoKLm5vdGlmaWNhdGlvbiAjdGl0bGUgewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5ub3RpZmljYXRpb24tY2xvc2UtYnV0dG9uIHsKICAgIHJlc291cmNlOiAkY2xvc2U7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7CiAgICBjdXJzb3I6ICJwb2ludGVyIjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwogICAgcGFkZGluZzogM3B4OwogICAgYm9yZGVyLXJhZGl1czogMnB4Owp9Cgoubm90aWZpY2F0aW9uLWNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICByZXNvdXJjZTogJGNsb3NlLWhvdmVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoubm90aWZpY2F0aW9uIC5zY3JvbGx2aWV3IHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7Cn0KCi5ub3RpZmljYXRpb24gLnNjcm9sbHZpZXctY29udGVudHMgewogICAgcGFkZGluZy10b3A6IDA7CiAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKfQoKLm5vdGlmaWNhdGlvbiAudmVydGljYWwtc2Nyb2xsIHsKICAgIGJvcmRlcjogbm9uZTsKfQoKLm5vdGlmaWNhdGlvbi5pbmZvICNub3RpZmljYXRpb25JY29uIHsKICAgIHJlc291cmNlOiBoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL2luZm8tbGFyZ2UucG5nOwp9Cgoubm90aWZpY2F0aW9uLmVycm9yICNub3RpZmljYXRpb25JY29uIHsKICAgIHJlc291cmNlOiBoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL2Vycm9yLWxhcmdlLnBuZzsKfQoKLm5vdGlmaWNhdGlvbi53YXJuaW5nICNub3RpZmljYXRpb25JY29uIHsKICAgIHJlc291cmNlOiBoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL3dhcm5pbmctbGFyZ2UucG5nOwp9Cgoubm90aWZpY2F0aW9uLnN1Y2Nlc3MgI25vdGlmaWNhdGlvbkljb24gewogICAgcmVzb3VyY2U6IGhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvdGljay1sYXJnZS5wbmc7Cn0K"},{ name : "haxeui-core/styles/shared/minimize-button-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAtSURBVChTY/z//z8DKYAJShMNRjUQA2ivAR7TM3bcxhvlGR6qjCCaxKTBwAAA44UNDW2qEosAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Eraser_GraphicEraserTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQUwwbEVRVlI0Mm1OQUJsLytRMmcwUVJERUVJUkJORUVFaEF1aVM2RlloQ2FJQU9oR0lOaVlIQ3pPd3hERXBoSUE3WjVLRS9na2JPWUFBQUFBU1VWT1JLNUNZSUk9"},{ name : "haxeui-core/styles/shared/check-bright.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAC7npUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZRktsgDIbfOUWPYEkIieNgMDO9QY/fH7DdTXZ3Zjvdl87EJEAU+AX6BEk4fv3s4QceyhZDVPOUU9rwxBwzF3R8W0+ZNW1x1uupZ0uP9nB/wTAJWlkfPZ3jLzvdAqsp6OkbIT+FaH/8IsdT35+ETkcyVsTotFMon0LC6ws6Bcra1pay29st7Mdqz/krDD62hqpfMbHVPH+Ohug1hR9hPoRkQ80S1wJkvDlIQSfOmnmaZt9Qk9C5EgTkozhtb1YV3lG5evSJ/QmKpGUPMDwGM93th3bSj4MfZojfeJZ6e36wm9wuHoI8Y9ybh96PtbsSE0Kazk1dW5k9DNwRcpnTEorhrejbLBnFA7K3AnlDYu4olTIxsHSK1KhQp2O2lSqWGPlgQ8tcWabNxThzlS2ATRyFOptkaeLgVoFXYOV7LTT95umuksNxI4xkghgt/Pw95VOh3kfKE21+xwrr4nEosIxBbtQYBSDUrzzSGeCrPD+Dq4CgzjA7Nli2fUnsSmdujTySCVowUNGus0bWTgGECL4Vi0GmR9oSiVKizZiNCHF08CkQchwa3oGAVLlhlRxFEuA4D9+YYzTHsvIy484CCJWEg+QAVMBqXGzIH4uOHCoqGlU1qalr1pIkxaQpJUvj8ismFk0tmZlbtuLi0dWTm3vw7CVzFlyOmlO27DnnUuC0QLlgdsGAUnbeZY+77mm33fe8l4r0qbFqTdWqh5pradyk4Z5oqVnzlls56EAqHfHQIx12+JGP0pFqXXrs2lO37j33clOjsLC+K1+nRhc1nqTGQLupYarZJUHjOtHBDMQ4EojbIICE5sFsc4qRw0A3mG2ZcSqUsUodcBoNYiAYD2LtdLP7Q+6BW4jxn7jxRS4MdN9BLgx0n5B7z+0Daq3MH00Jk9A4hiOom+D4YVBhxwu/SV9vw99OeAm9hF5CL6GX0EvoJfTfCEnHn4eMP+m/Abqro1P5gvhwAAABg2lDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV/TlopUHMwg4pChOlkQFXGUKhbBQmkrtOpgcukXNDEkKS6OgmvBwY/FqoOLs64OroIg+AHi6OSk6CIl/i8ptIjx4Lgf7+497t4BQrPGNCs0Dmi6bWaSCSlfWJEirwhBgIgwYjKzjFR2IQff8XWPAF/v4jzL/9yfo08tWgwISMSzzDBt4nXi6U3b4LxPLLKKrBKfE4+ZdEHiR64rHr9xLrss8EzRzGXmiEViqdzFSheziqkRTxHHVE2nfCHvscp5i7NWq7P2PfkLo0V9Oct1msNIYhEppCFBQR1V1GAjTqtOioUM7Sd8/EOuP00uhVxVMHLMYwMaZNcP/ge/u7VKkxNeUjQBhF8c52MEiOwCrYbjfB87TusECD4DV3rHv9EEZj5Jb3S02BHQvw1cXHc0ZQ+43AEGnwzZlF0pSFMolYD3M/qmAjBwC/Suer2193H6AOSoq6Ub4OAQGC1T9prPu3u6e/v3TLu/HzZ7co91pPc1AAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDplNzljMjQ3Zi00OWY1LTRhZDktODI0ZS02ODI5NDY4ZWVmMDYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDIyZmM3MTctMWE3Yi00YWYyLWI0ZDMtZDUwMDRjZjU0YmU5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjVlZTBmMGQtODAxZC00NTVmLWI2ZTYtNzllMTZiZGJhZTBmIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDg5MzAwMzIyNzQxNDkiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjN2RiNzZkOS1mNDJiLTQ3MmItYWI1YS0xOTVjZGU2MTk1MzUiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDQtMDJUMjI6MDc6MTIiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+zJcIJwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YEAhQHDA6Y7TQAAAClSURBVCjPjdExToJBEIbhIQj5o4lHoKCgsJZCK09BbbgHtS0lgYLSA1hyCgq10Ct4AELgoWASkITsfs1mZ993MpONqAgGeEX3pgK+j4hVRPSisvvMMRs8lOAX7FOYlOBb/CS8RrckTBPe4vH8YYg/LNHO2hN2Kbxddho5ZYEGX3n/RnMptDA/kz7z3OH52rxtvPufaWnJDj4S/sVdzSc1GKN/jTkAigfW4fXHmp4AAAAASUVORK5CYII"},{ name : "haxeui-core/locale/de/std-strings.properties", data : "c2F2ZT1TcGVpY2hlcm4KeWVzPUphCm5vPU5laW4KY2xvc2U9U2NobGllc3Nlbgpvaz1PSwpjYW5jZWw9QWJicmVjaGVuCmFwcGx5PUFud2VuZGVuCnNlYXJjaD1TdWNoZQoKcmVkPVJvdApncmVlbj1HcsO8bgpibHVlPUJsYXUKaHVlPUZhcmJ0b24Kc2F0dXJhdGlvbj1Tw6R0dGlndW5nCmJyaWdodG5lc3M9SGVsbGlna2VpdAo"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicWatch", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQW1FbEVRVlI0MnBYUUEyaUVZUmpBOGRsMjBxVGNsTFM4TEsybFpkdDlpOHZHak13aHpUZzdHMmZFcy9LSC85bDY2dmVhVDFmSElZdGlENDZnUWhCdW5HT3UzdUpqeUxEaERJOUk0Z3ZUMVl2ZHNHQ29iT3dVRWs2cUYwdTRxUnBiUndoQzlXSTlBampJOXlkd2dSUU9xeGZ2d0k0WWZtQ0ZqQ2YwMWZ2a05nUTg0QlZwT0xEY0xJMERHTU1WWkx5MWsvc2xxR0dnMjNrby9wckdLNmlCOVFVQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/default/main.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBHRU5FUkFMCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5jb21wb25lbnQgewp9CgouYWJzb2x1dGUgewogICAgY2xpcDogdHJ1ZTsKfQoKLmN1c3RvbS1jb21wb25lbnQsIC5hbmltYXRpb24gewogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87Cn0KCi5tb2RhbC1iYWNrZ3JvdW5kIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgb3BhY2l0eTogMC43NTsKfQoKLm1vZGFsLWNvbXBvbmVudCB7CiAgICBmaWx0ZXI6IGJsdXIoMSk7Cn0KCi5wb3B1cCB7CiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDIsIDQ1LCAjMDAwMDAwLCAwLjE1LCA2LCAxLCAzMCwgMzUsIGZhbHNlKTsKfQoKQGtleWZyYW1lcyBhbmltYXRpb25GYWRlSW4gewogICAgMCUgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICB9CiAgICAxMDAlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgfQp9CgouZmFkZS1pbiB7CiAgICBhbmltYXRpb246IGFuaW1hdGlvbkZhZGVJbiAwLjFzIGxpbmVhciAwcyAxOwp9CgouZmFkZS1vdXQgewogICAgYW5pbWF0aW9uOiBhbmltYXRpb25GYWRlSW4gMC4xcyBsaW5lYXIgMHMgMSByZXZlcnNlOwp9CgouZGVmYXVsdC1iYWNrZ3JvdW5kIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7Cn0KCi5kZWZhdWx0LWJhY2tncm91bmQtc29saWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogR0VORVJBTAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoudGV4dC10aW55IHsKICAgIGZvbnQtc2l6ZTogMTBweDsKfQoKLnRleHQtc21hbGwgewogICAgZm9udC1zaXplOiAxMXB4Owp9CgoudGV4dC1ub3JtYWwgewogICAgZm9udC1zaXplOiAxM3B4Owp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIENPTlRBSU5FUlMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmJveCwgLnZib3gsIC5oYm94LCAuY29udGludW91c2hib3gsIC5oZ3JpZCwgLnZncmlkLCAuZ3JpZCB7CiAgICBzcGFjaW5nOiA1cHggNXB4OwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogTEFCRUwKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmxhYmVsIHsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgY29udGVudC10eXBlOiBhdXRvOwogICAgY29sb3I6ICRub3JtYWwtdGV4dC1jb2xvcjsKfQogICAgCi5sYWJlbDpkaXNhYmxlZCB7CiAgICBjb2xvcjogJGRpc2FibGVkLXRleHQtY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogTElOSwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoubGluayB7CiAgICBjb2xvcjogJGFjY2VudC1jb2xvci1kYXJrZXI7CiAgICBmb250LXVuZGVybGluZTogdHJ1ZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwp9CgoubGluazpob3ZlciB7CiAgICBjb2xvcjogJGFjY2VudC1jb2xvcjsKfQoKLmxpbms6ZG93biB7CiAgICBjb2xvcjogJGFjY2VudC1jb2xvci1kYXJrZXI7Cn0KICAgIAoubGluazpkaXNhYmxlZCB7CiAgICBjb2xvcjogJGRpc2FibGVkLXRleHQtY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogSU1BR0UKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmltYWdlIHsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb3BhY2l0eTogMTsKfQoKLmltYWdlOmRpc2FibGVkIHsKICAgIGZpbHRlcjogZ3JheXNjYWxlOwogICAgb3BhY2l0eTogLjM7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogRFJBRyAmIERST1AKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmRyYWdnYWJsZSB7CiAgICBjdXJzb3I6IG1vdmU7Cn0KCi5kcmFnZ2luZyB7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogSVRFTSBSRU5ERVJFUlMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmJhc2ljaXRlbXJlbmRlcmVyIHsKICAgIHdpZHRoOiAxMDAlOwp9CgouYmFzaWMtcmVuZGVyZXItY29udGFpbmVyIHsKICAgIHdpZHRoOiAxMDAlOwp9CgouYmFzaWMtcmVuZGVyZXItbGFiZWwgewogICAgd2lkdGg6IDEwMCU7Cn0KCi5iYXNpY2l0ZW1yZW5kZXJlci5hdXRvLXNpemUgewogICAgd2lkdGg6IGF1dG87Cn0KCi5iYXNpY2l0ZW1yZW5kZXJlci5hdXRvLXNpemUgLmJhc2ljLXJlbmRlcmVyLWNvbnRhaW5lciB7CiAgICB3aWR0aDogYXV0bzsKfQoKLmJhc2ljaXRlbXJlbmRlcmVyLmF1dG8tc2l6ZSAuYmFzaWMtcmVuZGVyZXItbGFiZWwgewogICAgd2lkdGg6IGF1dG87Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogU0VDVElPTiBIRUFERVJTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5zZWN0aW9uLWhlYWRlciB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmctYm90dG9tOiA1cHg7CiAgICBwYWRkaW5nLXRvcDogMTVweDsKfQoKLnNlY3Rpb24taGVhZGVyIC5sYWJlbCB7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7Cn0KCi5zZWN0aW9uLWhlYWRlciAubGluZSB7CiAgICBoZWlnaHQ6IDFweDsKICAgIHdpZHRoOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5zZWN0aW9uLWhlYWRlci5maXJzdCB7CiAgICBwYWRkaW5nLXRvcDogMHB4OwogICAKfQ"},{ name : "haxeui-flixel/styles/default/cursors/pointer.png", data : "iVBORw0KGgoAAAANSUhEUgAAABoAAAAgCAYAAAAMq2gFAAAHrXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjapVdbkuwqDvxnFbMEgxCP5QgEEbODWf5kYlefrjp9P3qmKtrGmAJJ+YAO6z//3uFf+KTUU8haW+mlXPjknnsyNNp1f+xc45XP9X6w51187w/p6b8SugR3uR9beca/+uPXBK8J46XfJmrzeTHeX/T8zN8+JnpWFkbEtj8T9WciSfeL+ExgTwqlt/o9hbHuu78yafdf4CW397D/eq6onivWkZSWRLlwFUl3AMI/CWJ8gSsHsSuinaXgqvKajBX+oU5fn46INkPNPw56Q8Wvn9F6tcInWjk9Q+SjyOXr/mN/iPrxQr7WSd9Xzu1ppfd+K1e9I/qoPv/29rZPzsjCckGpy5PUV9XYwLiBJbh0CwiNcxZwqOHOb8e3gdUTVPBrXgPfGXtMQGXHHD1a3HGd+4wTIea0QqpopDQBFzubVAhnAsMI7PCNO1Xp4tKA6DywZ0lfscSzbL9mOKs1rOwRQ1PEZBE/+fU3/PYHe1MKMV5P8f3gmxKLjTCIHK8YBkTifoqqp8Cv7+eHuAoQVFaZEuko7LinGBr/OIEcoAUDFfdbg7H6MwFKhKUVwUQBAkAtisYSr5pSjRGFbADIEHqSnAYQiKrJEWTKIgXYtMSl8ZMaz9CkCd0B/TAzIKHQVwU2XQxg5azgT80NHDIVzapatGrTrlak5KKllFpoilal5lC1llprq71ak5abttJqa60366kLTFN76bW33rsZ1jTMbPi1YYDZSENGHhpGGXW00YdN0GfmqbPMOtvs0zy5OPzDi1dv3t1WXKDSyktXWXW11ZdtUG1L2HnrLrvutvu2L9TiI9vP7y9Qiw9q6SDFgfULNfTW+poi0k6UmAEw7CIRiFdCAEInYna1mHMicsTs6rA/0YQglZh5JGJAMK+YdMcXdiHdiBK5/wu3UPMbbul/RS4Qul8i9zduP6Hm3IbmQexWIYt6CdS3RS31nZVbR7Pq3Lnmqwvq756XIRfYkq1iFm1NPElDEsOZHB5mXcOWjaEzQ/DV1FGT6Z5Hxua6c9AqZ8aaY/5NG1BoZCPe9/BqYGsbcY2SRmd2XmzXCdbibhcDLKtv9ZNQXIBwQewbNa9NuEa4RMeJsQJyMDKDBA0zVUzvxp3f/3QJoB6ZqbJKy+6028K4wLEXLt/vsYyUhi5cMW5EBBVtrNrZYHSeCgdicogPL4BSsCudFlFp5tnmMFc8FiQxmHPSkz02ZgUROlgHXIqNrtHFMC1IlS0UT0yxu39LBV7lX2W8kpesZfCKkYWlSV7n1tMghNljOIvFKXwDRkGGbPA4EFeNagOKwJUB8UCHoIiYWlUwpSJyxI/IVug4UcWyEFzjBVlDPAmCYHmuYs3LUuUhcFVyzAdKjJ9kVKmorFdFw3tJy+Dwfy7pR0WTTTfnYwleNjkK1WAM9G1DwBE+uJD9E6PAj6SZF5JSkOLIjKoPzcm2M2AYWzJ3BR3J9YaSQKDZeRbAlqz9KRPeQbLYi4ZucWWDVezyAAJCosKyvQ68xQroakfty1R7JQ4VLGfQjUE4XGsNOBDFKTZRpyoREAQSFqFy6SG3/gCNCusGtgCyZXOxCqqwkFIOOjCVggWEfbAAtxnIdOiLQEL0YzW13RcbhSXN/WG7zJ3oWCCIITkOh40BHQdkaeF8JNNhD64TXGUm2wvoNqJXpIgyYKftogtudMRJ5/Aj5DFJkeRk+7xgI5n03zajwQSV6bWuZQ13wMhYVlUwCGTtXIOT7Q40NxDacqhnZYQnF9Cj1bdc4gHQ6vEc7AP84UkR5jcgOOw+BHaTAVNT4ApAC6Fgt8HgCwcMWzg+eAI6PGDvbmsIisFsHCqNeAnDnI13zg22jzCUbg4SGf+RGZcN7BFn5bFGQwLg8ZJy3Lbcsy/qBAuofLOfNz8SuI4cl4zrtoFDNv7/YOVYY9IC89xaTuHbBPeAChKpoZ/D2wlpqk3hUsagqbsCeWU/q2O7gBxHKd/Wxc65KrUEHQcWBT5Ewf9tlQnwxRNBPL70ONzjdIwP+/git3Ogk29dkMACSKsQfvBKW1VXzbfV4yW6JrQtlBggQT7YUOaCIR8hrgBzuTX/Z6V/ulO/cIWKa6ENPR5zzMsC0UKxJsQHsc/r+C62HZzLSXj8vPKU4KfWF6p8fOdoAPY9wOHmWtoRrQtCb1Bnik+g/lmOv4LDHocJKlXNLbHhWPOKzvVsWIgdGgL7bMxE+pBZ4C6yh15htdgHbiqY0jQ6CVKahpqqQrJ50W6hRoXAeztKI2fdcHpZpAdtO73K8rpbp3c1ZBEg7uTv2w/U3OBOgMkoIBT5Thp/haBBf8tu4wWayUgW/N9fX82nVRkq4UXFuUtzLk+iDmH16rWSIM4dCWy0fowymgV643F4QJPsg5aKDYoT8wRTjuJnPNrogBVKJ7v4H71LgUMWrEkF8Iu49FtLac08PuB3cNWkj9lNMhRuh61gOXu8B9o6YiIxoCsw+px+yoTb/NTk4acw7ASh9uk4fiJYhBJgd2fPLccNsTVBQM5zzImtH3D+boAgCYUnZTE/xGIB9OzXvfUNAIhz0z6MW1Pybx7C/QQu7KPY46t+8YCHmx9rKPCJfsS6UYv/AtzEZ6HsieZmAAABhGlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TpVIqDu0g4pChOrUgVcRRqlgEC6Wt0KqDyaVf0MSQpLg4Cq4FBz8Wqw4uzro6uAqC4AeIq4uToouU+L+k0CLGg+N+vLv3uHsHCK06U82+CUDVLCObSoqF4ooYeEUQAsKIISExU0/nFvLwHF/38PH1Ls6zvM/9OQaVkskAn0g8y3TDIl4nnt60dM77xBFWlRTic+KYQRckfuS67PIb54rDAs+MGPnsHHGEWKz0sNzDrGqoxFPEUUXVKF8ouKxw3uKs1husc0/+wlBJW85xneYoUlhEGhmIkNFADXVYiNOqkWIiS/tJD/+I48+QSyZXDYwc89iACsnxg//B727N8mTCTQolgf4X2/4YAwK7QLtp29/Htt0+AfzPwJXW9W+0gJlP0ptdLXoEDG0DF9ddTd4DLneA4SddMiRH8tMUymXg/Yy+qQiEb4HgqttbZx+nD0Ceulq6AQ4OgfEKZa95vHugt7d/z3T6+wHJznLK3DlhoAAADXZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NTk3MzVmYmItMzNhZi00YWVkLTk3MGMtMjQzODNmMzk5NTU2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI4NjA4OGJkLTZmNDEtNDcxMS1iMzY2LTVlNmI4OWUxMTVhYSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmFiMTRlYmZlLWI1ZDctNGI2YS04ZmFkLTA0MmY1ZDE1NmE5MiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjk2Mjc2MDExMzQyMjAzIgogICBHSU1QOlZlcnNpb249IjIuMTAuMzIiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzOjEwOjAyVDIxOjQ2OjUwKzAyOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMzoxMDowMlQyMTo0Njo1MCswMjowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjRlMzliYmUxLTI2YzgtNDliNi04Y2Y4LWFjYzU4ZjkyZmMyYyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0xMC0wMlQyMTo0Njo1MSIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5qjkFYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5woCEy4zjZskowAABTRJREFUSMftV0tvE1cYPfO449iObdmxQxib5mEiarXYMnmBVFrRCAmJRR8rJBZVJViwbFddVN21Er+hGzZIqOkGEpQgQUNLSCLcyMZEdpxgnCiOB3vsKH7gx4xnpos2Ls7DAZplP2mkmfvN3DP33PN9ZwY4IHw+3/sGg+E2gAwAkaKoSZ/P58dbBtUqOTg46AiFQnN+v9998uRJaJqGlZUVPHnyJON2uz+KRqMrbwrEtkq+ePHiMs/z7qtXr2JgYAAMwyAcDmNra6szHo9fA/DtoQCVy+WB7u5udHV14dSpUwCAra0tOJ1OLC4uDr4NdXSrZLVaNQAAIaQxptPptk/1hwYEQAMATdP2zR0W0KHF/0DvHOx/ePZDjuMmzWZz0OFwhHQ6XYRhmMTCwsKrQwGSJAl+vx9Wq1WfzWYvrK2tXVhbWwMARZIkgeO4mE6nC3d2dk4dPXr0t5mZmfo7AcmyjJ6eHly8eBGpVArZbBbVahXVapVJpVKuQCDgymQyo6IofpNOp6fPnj371aNHj9ZZABgZGTEnk8nPFEX5gGXZgslkmotGo9MA1J015HK5sLy8DK/XC57ncf/+fXR1dcHj8SCRSMDr9YLjOGxubuLmzZvnHj9+/GtfX985tr+//71QKDTe3t7uNRqNUFUVyWQSDMMEFEUxU1Rz3+3v74fdbofZbAYAHDt2DJVKBVarFTRNY319HT09Pejr6wMhBNevXx8WBOFrdnV19SePx+O9cuUK7HY7JElCKpXCwsLC0N27d6GqarNMaRodHR0AAKPRiBMnTkCWZdRqNej1evj9fpjNZpjNZmxubsLn82FycvILVpblT/x+P06fPo2hoSFIkoT19XV4PB54PB6Iooh6vb7nfjEMA71ej1qtBpqmoWkanE4nVFWFpmmwWCyw2WzQNM3NAlAURcE2RRzHwe12o7u7GzzPY35+HpIk7SuOtra2puvtl6JpGoQQ0DQNAEaaYZg/VlZWEIlEIAjCv7pnWQwPD2N0dLSpe++qD3Z/4dbr9W3qXzEul2s5Go1eJoS0EULgcDhgMpkaN3d2doLneXAch53C2J6sUCjsylEUBUEQMDs7i1gstsgUCgXxzJkz0Xv37n3OsizLcRx4nofBYGjyoL1A8DfvyOfzTXmKoiBJEuLxOKamplAoFH5hACCZTMaOHz++ODs7+6XFYmEIIejt7W1J2esFvBOIZVlkMhmEw2HcuXMHFovlu0ZTff78+W2r1Xrt1q1bCAQCmJube+OWtLOoFUWBKIoIBoMol8vzBoNhhnn9hkqlEjSZTLZEIjHS29uLjo6ORs3sF9lsFpIkNVbEMAwKhQKWlpYwNjYGWZZ/zGQyf+6yCZfL9X0ikVh8+PAhnj592lLapVIJpVJpW8KN/cnn84jH40gmk1t6vX5iTz969uxZ0Waz/TA9PY2lpSVEIpF9KUun07vGVVVFsVhELBaDqqqBXC6XBABmr0kqlcqSJEmfGgyGbqfTifb2dlAUBYZhoGkaSqUSBEGALMu71KYoClZXVzExMYFisThWr9cftLQJi8XycyAQ+Hh0dBTpdLppHxRFaUy8s3YURUGxWEQulwPHcfFqtdrayo8cOTIpiqIQi8WQz+eh0+lA0zQoigIhBIQQsCy76/iHEZTLZciyLB7osLFYLEcI+T0ajV46f/48NjY29vu+a1rRNp2SJMFut1c3NjYOtnKHw/EgGAxeGh8fb3Tng4IQgpcvX6JWqzUVfEsgo9E4JwhC9saNGywA9S3/Utooimr4y1/Gxk03fudtIAAAAABJRU5ErkJggg"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicCursorCross", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQUdVbEVRVlI0Mm1QQUJ2NERBVGJ4b2FpWWtSUlRobjFvQUFDMG1TdldaNUx3Z2dBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "haxeui-core/styles/shared/close-button-white.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAKlnpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjatVlZlio7DvzXKnoJnofleDzn7aCX3yHZQCZDUVCv4V6SShKlpJBDIUPjv/9M+g8eLmpFzscUcggKD5ddNgVvklqPIq9aOXldj7aP+nyerh8YnLI42vVnCvv6y3l9NbAOBe/8wVDahnQ9f5Ddtp/uDO0bWfbI4E3fhvI2ZM36QG8DZYWlQk7xGEId67i/v9KQODS8zEtO4jrc/+0istc97mONGVZbhVdrzXLA8n9DtuADjVdjIy7ERXIm4NXbsD1BQp7l6frI8Giyq+7pRWe0Lu/08/N0j5Yz+xJ7l+RwPT49T9o/R0VSf7izS/udOZ/XUW+P7rIvyZ89TYkZURQXkOqwg7qEIu9wXcUt+NaJ4FoAOgE1lHDkZ8YzoaobSqGjYCueTWdtgMTUTndd9NRDjk03uOjMIAOsjDHNWDmZgF02zTJ+jp96mmiz7TYB1yawO2uuvmi5bVaN5G4Jd+4alxoNY5rr4tMnffqFOXkpIMHpmiv4ZQwnG24wcvyKy4CInjupXhJ8ed4/GFcLBD1nmZdIRmLrMlG9vjGBFaAtLvQ4uo123waQItzawxmsDKeBmrZeB62iMSgJJDIBoALXjXWmAgHtvelw0jhrA7BJhm+Nr0QtlxpvcJpwHmQGJLCybAQ22RaA5ZxH/USXUEPFW++898FHn3z2Jdjggg8hxMCkWKKNjqKPIcaYYo4l2eSSTyHFlFJOJZtsQZo+hxxzyjmXgnsWWC74dsEFpVRTbXXVUw011lRzLQ3l01zzLbTYUsutdNNtB3/00GNPPfcy9EApDTf8CCOONPIoE6U2LU03/QwzzjTzLFfUNqwPzw9Q0xs1I0jxhfGKGs7GeDGhmU48YwbADDkNxCNDgII2jJlK2jnDyDFmKhusCm/gpGfMumbEgKAb2vipL9iRWYgycn/CjaI74Wa+RY4Yug+Re8TtGWq9SDe1ghCvQk6qslh9+HykYlLhZvdwpFcffHr8naGRbdN+qNJdbTGX1nrxI0fbAYttPoxOUbUe3WileCzYMlToPtjcahp9VN9HnM3aNFOziMx4sCzC7HNmlF7qXs+KT2ej7JBLXIM7mohLeyp1IFuck4TzOiPtAd922nTFRga+BkMtFBhIIYK/U5zUlaswhAtwBxvn1KXMAjg+NEVx/jumiN360VSatoU6Va5+YJ0geDW4CpG+XC2bbqbXQqWXlkZDJykVdT+G8zqhk4w5sm8aVYg7VBeRc0DX5XajgTonV1UOdQQWdobeVUitbSofm0FlC/TW9VKwXmIsAf0P0lH1MBrV6I0tVcNu6VmDR1Kwatg6S0fb9ah88WGIL8ZN6yVLVZWW58TCY9U5FB1zyY1Bsjn4PWcTr5JP1pQb50tCK5/lhLJ8KpOew/O5SbrZ/JtJeubmRyYrLtIILZkqPDoqUgxqK26GbN3k2kCFVF9qBQF707D8bM3eDTBqrLH42IHUtCqOrjsJFgAC4AgW3sGxYoNnl/QsUgdQy+toO+7PAeHaDHuF40oGd6fZwfGey24ZF5zZMqPMdjN/CZbNCvlq8+5IyjbJTUgIPRtUXGTlByoRugAn9Ii6B4t2sEbEuxJ42TiwuqsdlFErxo1EaJ5h4FOwsvcJLgReGK00Czhsr91wNtfCVHJLRt23vTKlOHltkoAD5yZ7siCSDMhKj5YhAqXxOscCscO0CXhcBzwzYS2wV2bAK8pF5dCygY0ycveAXMfom8KKwgiQoD1rD0hzso/J4YWYXGcORkFiJQ5TALaZSO0YQydjKmJHoio6IhosgtVYeNFAcAbd0HVcmSuLl5hpXkKWolRzF+WKmEmXs4KA58BNwmLsoH2GFbRiLpZF6Vi0i9NB8lKrSRIKVo9wVBVQSMgYrSxEdYDPrrLPAd8AVvgXaolo3ZDH6OhR2VBKaqz/wvTSfl7zE4gMXRQ0M1zRy+MJDqIkwbjQKlOP1MyFENFf2F+UjgQEks2c9RbvGy4MoYus+GF8x6+KxB+aP1i2strb6971C6p9Ecp9JPRtKPeR0Leh3HtO34ZyHwl9G8p9JPRtKG9D+/R4SQV9motXqaCTMJt2aBtBhFfCgdaCEjWq1s03o0OIQV8tvsENc28NfEMJ95mgwS5ZGhp4MbOxV6ovZmtLqbS4FAP3gB1BYoJevAmhZeOFOPUmTkjgKaLR+i58dVUOyveDcKiQ86U0jzZSCQq+hwAlY2EcgUwMBkvKXJCEmBEkmexYyuDJbeku7fRnaTwCCL0OWt6ryEMkvC+ZvWfWjKqGUSrafDnIsHCSYdwYgCi3GWIYdV0EmZgeIYv1WaJtgcZX3iTa7jobG972OYPD0FzajlSBHlHaDqrADLWaISSW6SiikbX0whhDowQNKc1QowrAwvZJOz4cxRGsNG7/0pel+fvgaDdmtH9uzBD63DtMG7UfGR8t0YYT5Se4hJIE5XMLHIWOPXA0+COLZ5Xa0lCYxbd01iKdsbB2crZqQm4U0wiS03flrpp9GddPRzq34O+8YWfo6E2dF25EU918oP3mA4+GDAUljdP6maotM970DUH/YCEJqBeBgxFZ+r3P3O/tod8PNX4X2lnmiej8baLopZU/JfsLT1559LEnfGT2IsjMNYppiBWUL0Yx33kUU7wF1ayvFevKpbEJjPnLHfjrMolh9a/h9jl/JfWLgUbGA3o9ZNZV5N8n+5au8Gt/GtTIG3/ssI2Hlj1CHqhURsgrlxLSV43FRIMZofWMsUU7jJAYWybGlj1C8tSCwQLjo8yTk8fHuIqk+CJCnX4K/SCj36po+lFGvx0cbiqa5llEbwktq/0moteQflPR0iTOCpp+IaF/paDp75tHc7WjE5Ot8SCt6ejKZJg4mcrWDIAFoIs+ZzwhBjoMLovIzInI3oxeq2yZo2n5cYXn+YgzYRjcuusAAyvqwJ/TSsad8oqu+5hX9V6dBlriVMTevdD+SJtS+Ze2/eilTl9aeiP4WpvyTg6rU5qf6PTwOhE0/6LSD3HQd4E8xkHfBfIYB30XyGMc9F0gj3HQd4E8xkEvZPPHqpnOshlK6SKc71QzFvaDbj5ubdJZOL8fa15pZ/pRPP9KO1vpNdSv6VjNhn+4SGaTDJoNSA8j2+YYjTPRGuGYGW+9BnqCLs3m2bC1tqgex4Un00Il2dK9RHwVNk3HeNI1xhz3c/NhP7e5zMXC47rs8+3d3L2XK83YrIJ7PU7whufe5EsU1y6fKXuXD7e/7SVKy//dPiW926g87lNqw5MK6hVSBBLM51z30OQylZhD72UDn7MzOfgFfIk2uwV8bavX3I0EeyBAp+m0QEFp7i3eZ+PBbTp4bY6Wvb+bo6N7fzFHj9HKloQMNGms5K8NXGC6tnBvG7g8J/YocyIvkZsskEHxqgtYFmBQPOzgjtMO7q8a5PutzOvMhcqELiAeurhx5CrbtzxzyXYKMiTbt8XGg9iqJ1GAdXBNKF0zuvPJCZKMrnz+OE0esaEDOH8yRSecvzYFofVuj0+ULdO4/OIHGt+/+CX5xW/wz0KsCzUhnZ4rIAS92bEbDWkOatzsGLw3BatQ2NHqNsCAzI7cccb/Tx99KonRXtEU/we9ke5F5c1MBwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6VaKw528GvIUJ0siIo4ShWLYKG0FVp1MLn0C5o0JCkujoJrwcGPxaqDi7OuDq6CIPgB4ujkpOgiJf4vLbSI8eC4H+/uPe7eAUKtxFSzYwJQNctIRCNiOrMq+l7Rg2F0w49BiZl6LLmYguv4uoeHr3dhnuV+7s/Rq2RNBnhE4jmmGxbxBvHMpqVz3icOsoKkEJ8Tjxt0QeJHrssNfuOcd1jgmUEjlZgnDhKL+TaW25gVDJV4mjikqBrlC+kGK5y3OKulCmvek78wkNVWklynOYIolhBDHCJkVFBECRbCtGqkmEjQfsTFP+T44+SSyVUEI8cCylAhOX7wP/jdrZmbmmwkBSJA54ttf4wCvl2gXrXt72Pbrp8A3mfgSmv5yzVg9pP0aksLHQF928DFdUuT94DLHWDgSZcMyZG8NIVcDng/o2/KAP23gH+t0VtzH6cPQIq6Wr4BDg6BsTxlr7u8u6u9t3/PNPv7AVx6cp6IJdMnAAAOVWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDpiYmFhNGE5ZS00MTRmLTRhZGQtODZiOC05NjA0NjkzYmQyN2MiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzQ5M2QwZWQtNjg3ZS00ZmQ3LWJhMzAtYzJiODdlN2Q2NmFkIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6Yzg0ZmE1MTYtOTFkNC00YzhiLWE1MTMtM2U0NjkxYjc0YTAzIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2Njk1NDA2MTY5NTQzODkiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMiIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjI6MTE6MjdUMTA6MTY6NTYrMDE6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIyOjExOjI3VDEwOjE2OjU2KzAxOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWIzNjM1M2MtYjdjYy00NzBkLTlmNjYtYmRiN2U0Y2U2MjcyIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTA4VDA4OjM4OjIyIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmRhNDg0MDU5LWI3MTktNGM5Ni04ZDkzLWNmOTM1MzBkMjA2NyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0xMS0yN1QxMDoxNjo1NiIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz60h8s2AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5gsbCRA4kRAi8AAAAJJJREFUKM+dkjsOg0AMRCe5wkIihZQpOPZCQ5MrQD6XSE6QazwaS5iNabC0hT2esWa00p4CrkAPVAFWG9b4YQf8gIcn2fLTsOwJCRgNeANnoAImm72AU3naL0xOeQTSlhd/KVQ+FpyDva1+IQC1pLukVtJH0lfSTdLwl15kMAoiinVlsBBaxdoAOUrDSBm47PoVM22w4f/NRJbeAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/search.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kTtIw1AUhv+mig8qDnYoIpKhOlkoKuIoVSyChdJWaNXB5KYvaNKQpLg4Cq4FBx+LVQcXZ10dXAVB8AHi6OSk6CIlnpsUWsR44HI//nv+n3vPBYRGhalmVxRQNctIxWNiNrcq9rzChxD6MIqoxEw9kV7MwLO+7qmb6i7Cs7z7/qwBJW8ywCcSzzHdsIg3iGc2LZ3zPnGQlSSF+Jx4wqALEj9yXXb5jXPRYYFnBo1Map44SCwWO1juYFYyVOJp4rCiapQvZF1WOG9xVis11ronf2Egr62kuU5rBHEsIYEkRMiooYwKLERo10gxkaLzmId/2PEnySWTqwxGjgVUoUJy/OB/8Hu2ZmFq0k0KxIDuF9v+GAN6doFm3ba/j227eQL4n4Erre2vNoDZT9LrbS18BAxuAxfXbU3eAy53gNCTLhmSI/lpCYUC8H5G35QDhm6B/jV3bq1znD4AGZrV8g1wcAiMFyl73ePdvZ1z+7enNb8fpuZyvNk619AAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmARgJIBu0NNI+AAABNElEQVQ4y82SzUpCURSFv31uFDqRhr1E9QASBYXjoGewgZIJWsYlrxrSrRwkRuWoXqJRBPYG/cx6ihqUCnZ2ExG7eQ1HtUaHfc75WKy94K8lwUGx1kiIalLRhf7oAXGalVz69ldA8aTuAusgnnl37gGI9uIquFa5OdjJ+KGAYq2RQG3VTNnVUjb7OvzI95uxD6dzh9W9yu72NydmQFJNgnjBzwCFwuYbSFmMSQbvzNB5fmB7hDq23RrKZSRgrKLtiAh0QwGKPhLtxcMAvYhdVpXncAfiNFVwfb8Z+5HB4fmsEeMZYy/HrnH/uF4QYQOk3LHtFsA0MytGjIfonMFcl/JpF0TDi3R0utZPe1GVLvCkcCGiS0AqCJFJatsvWkpErsq5LXeiLQBU8pmqqp7pp77wb/QFm09xUl2IdBcAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/sortable-asc-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAIAAABxOqH0AAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0UlEQVQIHQHGADn/Ae0cJAAAAAAAANannypZYQAAAAAAAAIAAAAAAADWp58AAADWp58AAAAAAAACAAAA1qefAAAAAAAAAAAA1qefAAAAAe0cJAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAI1eVgAAAAAAAAAAAAMDA3CfpwIAAABzoqoAAAADAwMDAwNwn6cAAAACAAAAAAAAc6KqAAAAcJ+nAAAAAAAAAnQX2cErsvcAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicLog", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUZVbEVRVlI0Mm1NZ0MvekhBMkJxQnFISm95WURBTnh2aTNVWnVHK29BQUFBQUVsRlRrU3VRbUND"},{ name : "haxeui-core/styles/shared/right-square-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADq3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VZbcuwoDP1nFbMES0JILAfzqJodzPLngN1OutOZSm567tc1ZSQDlsQ54hH6P3+P8Bce3nQLUc1TTmnDE3PMXKD4djxl1bTFVZ8f2025aw9XB6NJIOX49HSOv7XTdmeJCjR9Z8jr2bHfd+R42vcHQ6cjmRExlHYayqch4aODTgPlmNaWstv7Kez9kO02Ez/eMKtxw8QO8fgdDeg1hR9h7kKyoWaJRwAyXw5SllLQDThQC3QWXbWdkQCQZzht76IKj6xcGn3S/kCKpKM9oOEezHTJp+2kz8EPC+J3nqVenu/a65uLO5AXxqN5GKMfsysxAdJ0Tuo2laVh4A7IZf2WUAyvQrdVMooHZG8F5Q0ud5RKmRi0DIrUqNCgvmSlihAjdzZI5sqy2lyMM1fZAniKs9BgkyxNHGxV0Cto5SsWWn7zclfJ4bgRRjLBGB3082vKp4bGmClPtPmFFeLiuSgQxmRu1hgFQmjc8kgXwLfy+ExeBQzqgtkxwbLth4ld6cytmUeyiBYMVMhjrZG10wAggm9FMMj9SFsiUUq0GbMRAUcHPwWGHIuGd1BAqtwQJUeRBHKcp2/8Y7TGsvLRjD0LRKgkMVCTpYCriI0N+WPRkUNFRaOqJjV1zVqSpJg0pWRpbn7FxKKpJTNzy1ZcPLp6cnMPnr1kzoLNUXPKlj3nXAqcFlgu+LtgQCk777LHXfe02+573ktF+tRYtaZq1UPNtTRu0rBPtNSsecutdOpIpR679tSte8+9DKTakBGHjjRs+MijXKxROGj9UL7OGt1Y48XUHGgXa/jV7GaC5naikzMwxpHAuE0GkNA8OducYuQwqZucbZmxKpQRpU5yGk3GwGDsxDro4u6NuTveQow/4o1vzIVJ3SuYC5O6T5j7yNsT1lpZu56ExdBchhPUTbD8MKB7YS/zUPuyDN/94Y+hVxsaSOqlQpEq0q3ML967+bCn9sKLAnpuCHGUMyCcvJGO9sT/FdlvjWhbUeCMXzI7DamNopJCsT1NNQadlzQoP5XPDOEkakudR1LH3Xd1bJfMqxPH2HvIwkj1FRB5+C5Eb/JMtbld9Glo/pCH4NbxyQ9fk+Fjh3RP59Qd96RPZ6TXeDvon1jVH0MVvg3RLc83eNeD3Ip7XWj+yO6vyfChgwZuGkfe4sx0v8+ylT35bcFdiISXLLSnhn5l6f/vEX13d5wyvCigP4Z+hyFcbHL4F54nyj1078dQAAABg2lDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TpaIVBzOIOGSoTi2IijhKFYtgobQVWnUwufQLmhiSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxdHJSdJES/5cUWsR4cNyPd/ced+8AoVFlmtU1Dmi6baYTcSmXX5FCrxDQhzBERGVmGcnMQha+4+seAb7exXiW/7k/R79asBgQkIhnmWHaxOvE05u2wXmfWGRlWSU+J46adEHiR64rHr9xLrks8EzRzKbniEViqdTBSgezsqkRTxFHVE2nfCHnscp5i7NWrbHWPfkLwwV9OcN1miNIYBFJpCBBQQ0VVGEjRqtOioU07cd9/MOuP0UuhVwVMHLMYwMaZNcP/ge/u7WKkxNeUjgOdL84zscoENoFmnXH+T52nOYJEHwGrvS2f6MBzHySXm9rkSNgYBu4uG5ryh5wuQMMPRmyKbtSkKZQLALvZ/RNeWDwFuhd9Xpr7eP0AchSV0s3wMEhMFai7DWfd/d09vbvmVZ/P21dcqXiaaDUAAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDoxMGUxMWRlMi0wNTI1LTQwM2ItOTZhYi1jODYxZDZmMTlhMGEiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjIzZTNmZWMtYzg5Yi00MGVhLTljNjktMzFjYTgwODgwMGMyIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MmM0NTNkMzQtNmI5Mi00NDJjLTlhY2ItMTgyNWYyNzQ0NjFhIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQ1ODIzMjkxMjA3NDQiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiM2YwMzU2NS0xNWQzLTQ4MGEtOGUxYi1kMmZlZTM3NDZmMmMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTFUMTM6MjU6MjkiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OWQ6JAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YCCwwZHVAUuvsAAAB7SURBVDjLY2AYviCq75gyMeqYcEkwMjIcjeo7Zky2AQwMDOKMjAwHY/qPe5JrAAMDAwP3f4b/G6L7jkWRawADAwMDGwMjw5LYCcfLyTUAL2AhQs0vhv8MiYsLLZeRY8BXRgbG0CVFltvJccHL//8ZvJcWWZ6laUIaBgAAEBYdvIFAlrEAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/tick-large.png", data : "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC60lEQVR4nO2Zz2tTQRDHH/46ePTHyR//hFjsKTcp7MrOOzyUelHRnqUQLb3k1noQW6glLf4HKW8GUvWi4NGW9qIogje1J/vj3Aj1yWxfAw0vyW7evk2EDAykDcn7fGd3ZmcnQTC0oQ0tt0W16KREGBWkpiWpWCB8lQh7ktQf7Qh7AuGLfo/U9K04vFGpVE4E/TZF6opEeCYRtiRBYufqlyA1OxaHl72Dj9Wii5JgWZBq2IMfd0GqIUhVZV1e8AIvSY1LUrt5wTOE7Ig4vFMY+LXlidMC4ZVrcNkqBGGJn+UUXtblWUHqbdHw8sgR3vAz3UXeJzw1RbyLatGZ3AJ8bBvZPi+q+eDj8G6/4GXT1e2e4AHhvEDYHgABuz2VWK7zPkHvvR9vv5UQFq3g+XR0cUiZ+uTHB8nawYtk/vtku1xoyLq8ah59bg88w28m89o7iJg1gucmi/sUH/DltUfJ+sFcE56d/76ftZ0QtrhpNIn+aD8iv5nCs6gOuTDSVcBhS1ws/JP1h5mRL3eAT1dhymQFcCDhSQtY6b4C+uIxgPCkBXzuvgIWrXKn2m2asGVT+MMc2DbJAaP6//zbY2OA3JGn5grsOxHA8KYgzuDJUEC3LcQ12hTIKTyZbiGDJM6q4Rt/55KpjYnC4KVxEhuW0U4iCoEn0zJqcZC1qyxZ/2NRueBJ90NPuwrgoZPNl2athPPIU+pxeN2omRMIP12IcAkvEH4YT/O4dbV9QKsIp5EndjUTFH2hORLhHB5hX6yKS8YC0lWo9vIwTlYXCSuPR38hsLWbtejcIFzqBamdnuemPKvsuwAMo57gmyIQlvoY/ZdBXuN7qEAg/wLU69KH0qnAhfGgVQ9c/UV+1dlwt2XIW/WxbUquIp9lPKsspjqp37kT1nJuusgHTG5w5O9QC1y2A9/GpyO3Hba9k94q+jNqxvqELcLSBnCE5zbcs/PFg2926Q94Df0a4RO/xy0xd5UD8TPr0IYW/P/2D5+LFXPdole1AAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/en/form-strings.properties", data : "Zm9ybS5maWVsZC5yZXF1aXJlZD1GaWVsZCBpcyByZXF1aXJlZA"},{ name : "haxeui-core/styles/shared/close-button-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAPdHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZprduO6EYT/YxVZAvEGloPnOdlBlp+vAVCWbHliT651xpQpCgS6uqurwFHjP/+e6l/8+Ms75XxMIYdw8eOyy6bwJl37p6zf+nLr9/5p56hfz6vHB4ZTlqPdf6Zwrr/P68cA+1B4558GSmcgXV8/yO6Mnz4NdG5kZUaGN/0MlM9A1uwP9Bmg7GVdIaf4vIQ69vF8f4chydL4Ne+YxH34/LeLRK977mONGVbbi9/Wmj0BK/+MsoUPNL+NjVzIReuM57e14cyEgLyL0+MnM6MpU3VvL3pF636n359Xn9Fy5lxiPwU5PI5vzyvt36OyQv90Z5fOO/N6PkqCrBl9iv4K/uxprjWziuICoQ5nUfdS1juuq9xCbp0UUwsMG8ihxFFemVciqxup0EnYyqvprA1ITO1010VPPdax6cYUnRnKgJUxphm7Tiawy6ZZwc/JS08TbbbdJnBtC3ZnzWMuet02X02tuyXu3DWXGs1gWvLity/12y/MKaWg9ZUesWJexkiwmYYgJ7+5DET0PEH1K8D36/OP4GpB0EuUpUQyga17iOr1BxPYBbTlQs9x16CO/QxAiLi1ZzJUhtOgRj3ooK9oTNSaQCYAKkzdWGcqCGjvTWeSxlEzYJOM3JqvRL0uNd5wWnEeMgMJb4ONYJNtASznPPkTXSKHirfeee+Djz757EuwwQUfQohBSLFEG52KPoYYY4o5lmSTSz6FFFNKOZVssoU0fQ455pRzLoV7FkYufLtwQSnVVFtd9aqGGmuquZZG+jTXfAstttRyK9102+GPHnrsqedehh6k0nDDjzDiSCOPMkm1adV0088w40wzz/JA7cD65fUL1PRBzSyk5ML4QI2zMd5DaKETL5gBmFFOg3gUCEhoI5hdSTtnBDnB7MqGqvCGSXrBrGtBDATd0MZPfWOnzEZUkPu/cFPRveBm/hY5JdD9ErmvuL1DrZfVTe1CSKpQgnpZqo/PRyomFWl2X47quw9+e/zZQDDvNYgiS2huFtZMpL2halvJWhPDrHJK8Jq7RrumnfYqI0PXtISZkp0jTuvaZGF1VhMncLsI9cmZrKsZdY7a/JwTPhKQ/eje9+hCaiHqWi1YdJ8FYheTJLwRnr7ibHOEnGWgOIOT4zAmx6nk5vH55ufWwoIMb10x1c9S3dXg6dam5v7JO4ruWvOarVu+Tadta/zm/JrwBQc0KJ915hLi7LNny1eZViCF0hrTfh1SfYz5myFrYTndj0uPPkJsM6thHGU0Sh6wKMqh9trzaMOlPLzU3WWrthlWHKNYks11wGPRcWoiMJyXpc/C0ohY19EgAYunKANl0kojZYuXMuw9ec0kPZV5rXfwwJdjVA6sG4Q8ShyGOQ3HnIzMyaZuPHmtra2XRbno0UpkTslHK0BAW6nKnFwtU1EW4DX7ZWxhNrTpsaoa3JFUtdi8Q+qLxG2jD3lt7EE+nU/V+49rl5Qm3QSjEShGa8mw+X2yKElVSbfr+3RjVOjCjoJu3EP6r0Oq5wT8yZCJJmeYaLuTaX2WvDr59JpMpBIYr8zonWr10+tEqBkyGVhuiMIRxYISdVn3dg0VBzQ6Xe6gH1f5rXKExlY5WvlbpJbPPaBSqcUBmtl7IWBAyeSOJIdqCVo+6aD7ymwp7pfSJjSPyh6mgzpzd6HVhWRZmUmJdJpAj5UeUdFnNrYraqKZGrfULoBeb83d1OQpDrRWCOmyCa6paw3ImiwJwjoI+IC2DVMwdVBUWk+YrM3mdaFD0EAqMdP82YoJSzFew5F+lZKMTbVQYZNdxXrexCDZRNzjKWIKiAAZwjJW6fhAtHrOg1PcgNU3JXBfawABvMQDuL0Bb7BrpKIhu4kRqfmir8GttmVNAhhW3WDXrKDfoHu6aDHEPrlBxZoyWqdhBmsiQTZToKBmQlqgeLE+PlKll4fLfZ4pT+VrLitB8qrSzsRp5Wv99O8xSM9pdZlO78SjrE66Fv88eyXTpw1rsT/g10ppwQxJ2cjwaSbH9cYUGF0w2UtOGpF9yI9iXAOt0NbX0HriXiWpmXSIbiC8mTVzdqmTv4I/+jIaybw7KKqi31kDeLQW6ByESAQC+sYNoQD+0cm5tO/w0IJdFU9BIukguT/MmtFsqdP7J+xpqDIGdULzTUpm/qlkUjB2XDZIm8ojqo0IACNQ7kohBm/L4KMK/LrNaUirmtTdKZ8a5UhBY11tKnW2sBEPI5gn7NfxMmidS2iFOykhFCkYCtPY0Nf9FxNQMS0LA407EALFiQM1tyLBCBKLZrUS4Vml05PCU+rSVIDo13pLYdaxM4D7W99XDsh9R4qyRtl+YNrGwJB0mfFCGDYNoexPVGByq/BQFYWVyeJ01bNCswhJ0dMfIoax4gZTsMxfsSzSpj8C4Z8CoXYkyEPsU+jO4uzaUWaU65s1vqxQsnyvUT0WuYB8WqXg+LLKebVh1hx08rbHIjnO5yQs81B+3TF/dF8titU62RuBzWtBEOTS6Z1I7hUVqmN/Cdts9Mgin2NRnrYMiFzB3yzhXsrX4/fxkfCo1f7uKO9Mye8zxX5NFN7Vw+aQP6IRSz4gXy6FeaMlv+EC4UAEBR7gcvBoFgVqOzLFSgcbScquxuhWV7Rqc0inyVKiAkXXHt1eXbnQNpS9Y0YRb1BXH+69X9Km28Se0KX95nkdlYfoE3RAOW1dU5auSfTXQchpSs61cukmOxT4li1rWu9La+3Spu9sNbKVjdQ2ORFohswn4i+gWN5Jw+j0zoEAE3eLm4j2wpRYwXalNs5IJeEpUigVZxDFEQNGkgfRs4F/o4jxqo9vYainTLRI1TNGgAEWquqGV9sIPvwLZEK76AfSIXOgQzKx2GLE+DCKcWEajJP0gVtbuqinMrkM+sDQYXWJtcQVS7v1/la48JrrZFHdjeDk0G7PWuRnVV3CgpmCtbcAFZQISobiVp+ogLUGnXbEsjKrY0fWmQR/2j4JYFL5tHfaWKwsiz7UHCuqokJZcjQ6pw+4pFkGjdxkJaARaIVAQE6oP0hfaeoPXnZllTO5t8rZtyiZT/LEFCZNXZUiguzuXRd2xpiY3WrpJBGtDAaxp3kVyL/s1jUKPlM6V+xXhCiVFB0JO49wzEOEYxxlqduxxC8zuQ2M3fqwu202KAUfezCXmONKbknWeBsjvZJ/lBGZLC2C6ZqQu7Bovrpwquy9erNykywiBBW9K6dVujPqM28g4M3hcXJDCO9GLhzklsVB0kvuDPX9BS0OSr9hchLxKvDDoLDx54vLp6jfci2JO33HZadE0H1ZIof6XSKYmK+SdXAAvaEdjVc1MQ/WN+iL7MsF8bIlHNUvEu4n9uf1qMn8/aXR9PBpeJZGYYYy/arX9MOBPgY05ejsgQjNv/3+08T8Hmco1h2oVUyep7lIS2iXaFX+fLcDQBJwHY1GJIQ0F5KjB5alruR2Q0LKmHaGt3mUn89OZKlW/4R7FPOo/gn3eKTfD9yjIS+1RMbQrPRbtlXPxXFfLTIzSwXBhVAGlK91k9Ytzx5sJBNtEHrnijSFWpmX+rw18ctthJrnKJPR1TKpQtIaErymd+I4Mu1Huu0MiGknZM+90dR028tNpoIdKuKGZLRttZR4rbdWi9p0em/XuL422sI4mgx98CXBZCNqFIvC2waIr9ZsOzXdMECRDiEMcMmLZgun93Yqd+yOs5Zu14zW6k936Kc74BqDTMeSbSyvVE0rEp8umNqhUd1CKNEvQtnwF3mis7/+Z/Pn+qDvXF1sVbBubpb3x6Go9xblOJT2yaFIpb86FDLI081EH0Hdxb/foyOlcq2p6yrR/TONq5vHObMFBkG94tHc0s6Wm5mSOzSzvJrZdPi4HJutIW8pZKtIv2yOFlrEuuAhbvFaRdqj6a8W753DM14t99y+uOcp7nnvlZit0abdGq0ejQYHxD5sOa5WkRE1hSeHiBb1Bg646LLSYsVETMlCQyZ42CcEkKg624qgSluVGouFuKU9Nx6r3eKAoj+6dh5da1dpLSu1bbJYqSeL09TS9gPhs9ZPfLyfw17FWWgUO0ZXoPNqfZB028I8O5h9VA+s0zYgiHls0KJivzqMs5978MegNrqCQMy1kJABx7QNie9zma4P++rssn6rda9GuwR9/CToNVlBsCn5FJCy4ouSPop+PBS9OLhrB0aMw4svaisu2zeoE978NrwYNFZGgT1Ct+4D3X5ZroLjl13qcM7qaf97GfSQdUMdoxjxenZGZbetoxK2b2n2OPl2nR6HXCi3r46F6nmY9PDs7dQx6UsR3ma/714lVv82+j3CfPPJw9OcKVn8Gp9R+Eadfpm2l0tPMuLeiljFW80TlrIRsffb6tlYGE4hhP3Za3Bnr8EggBFL6eolxfaxsTdifrPKs0b1ZV8vbav4vhDe14E88lOyI7H0p/7OleTVqZawt1b27d66EvVhS8SV+LmUpeyycMflGaQnimMQp4Ic+E5JKpGS5IYYMy10UEL2Qtb2G9P4YnRuStK6qyVChZImpGTvjTbwNJCPbLRZFI2TjbYLGyVdkJAH2UjLuTreBMMCTFKfO+fplsbd24W2P6yyFassD/DeWGXRR7eTuqMyX6JCWpS1n8fdRfnCy0zDDVEGde8EVlFsO+EwGXvP+sNv74cBrJ7Fl9UPZ2lhLZ4QuIa6GE+mWd2uuX5yzd+ZZv+NaVYP1/zY9woh7a0RLPGftzGE9MLZxVBx/mQTYxwwXneCntuF+q5f5IpaWeg1QY8PWHt2keSDslzQ+ENPcl/5Is91Q4yKHviBwcP3dtmpxzyGsoKFEdUE1slGhldxO/X9YKLN/azDn+cS0R17Kc94Pwwmtb8spmxUjxpA010IdrFj65FX3c87/m5YdcZNDCuPOtag4VfecX+u3l0Qp0cKU2MGF+APyWMW/DILi+NlF1BHeWDZXKRuu3JTnnPGtp4OXD4jQEWzy+44kESD7Ogoy7U7TtFWqM11rEZcYjfVFf7zePWd2v3Ym+xMYidL8U/icxazCMQtUYxgH7Z1bxuFFN16+iqzotAR5IGVuXDUZU5b3Yj56c6IusH8GGQkJAbBqhXXj92aJ7gWha1nsw+43m4yVAx41Qo3Vv+JBFCPxKLpINM2VNVLxOeZ5Z3yrwlPups17FgTVW+z9SWr7q3ePt8yQDrP12p/fzcUxzDyBEmer+X1fA0jFWxCOHqz/xcNBs5SmTBuludryNHsRdRnUmI9OzPyEBtY7O6wz0/OvrXI6i8d/48HonP1rP4LVE6O+KW692wAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1OlWisOdvBryFCdLIiKOEoVi2ChtBVadTC59AuaNCQpLo6Ca8HBj8Wqg4uzrg6ugiD4AeLo5KToIiX+Ly20iPHguB/v7j3u3gFCrcRUs2MCUDXLSEQjYjqzKvpe0YNhdMOPQYmZeiy5mILr+LqHh693YZ7lfu7P0atkTQZ4ROI5phsW8QbxzKalc94nDrKCpBCfE48bdEHiR67LDX7jnHdY4JlBI5WYJw4Si/k2ltuYFQyVeJo4pKga5QvpBiuctzirpQpr3pO/MJDVVpJcpzmCKJYQQxwiZFRQRAkWwrRqpJhI0H7ExT/k+OPkkslVBCPHAspQITl+8D/43a2Zm5psJAUiQOeLbX+MAr5doF617e9j266fAN5n4Epr+cs1YPaT9GpLCx0BfdvAxXVLk/eAyx1g4EmXDMmRvDSFXA54P6NvygD9t4B/rdFbcx+nD0CKulq+AQ4OgbE8Za+7vLurvbd/zzT7+wFcenKeiCXTJwAADlVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6OGQ2OWIzNTYtYTEzMy00N2Y3LWJhNjctOTZkYWZlMjI5ZjE2IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMzZDJkOGMyLTlhNmEtNDIzMC1iZWMwLTEzMTU3NWM5ZGM2YiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjc0ZTJlOThiLWNmMTktNDM3Yy05NWJlLTYzYTc4OWIxMzM4MSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjY5NTQwNTM2NzA2OTczIgogICBHSU1QOlZlcnNpb249IjIuMTAuMzIiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIyOjExOjI3VDEwOjE1OjM2KzAxOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMjoxMToyN1QxMDoxNTozNiswMTowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjBjZWYyNGNjLTNkMDItNDRlYS04NDhjLTgyNTBmNzJjZTk5NyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMi0wOFQwODozMzo1OSIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjNDFkMDFhMC05MDdmLTQ2YTMtOTgyMy1jNmU3YTM4NzBkZjQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMTEtMjdUMTA6MTU6MzYiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+AFridAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YLGwkPJEhLcCEAAAEMSURBVCjPnZBBTsJgEIW/+fuXC4hx49IYyjncl0iK8RqUmJQ9EmN6DiOghi33wJKwdkPgBKUdF7TNz1JnOfPem/ce/HEE4PUruxbhWYRhHAZ7FzD9WF/6nklFSOIw+DEAIkyAO1Xm6TJru2DrmXl1mwBYgLzQoe/JDAhK5XO6WEct3xSl8i5wC2yBp8YSQLrM2qUyE+gobABTgbO80EHS7x7OCCcL3xf1p2q1BaJRL9jVGOMSWlZEHREFyY/lmahxA5bKQqADZAobgRtrzZtbhKn9W8+4AR+PhUZAJtCpirhqCKqktXJe6P2oF+ySfvcgwkP9ybfmpSGIMAZWbhsAcRjsjTAAVqqM+c/8AkrVbOo5k/lyAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/right-arrow-bright.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAM0lEQVQImWP8////O1lVBgYGBgYGJgYGBqHHtxEcOJ/x////DDDABGe9k1VlgrOgMnDTADWiDmfiE8U7AAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/restore-button-white.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAEaXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VhtcispDPzPKfYII4EQHIcvVe0N9vjbYiZ+juO8ivP+7FZliAEzmqZRCw1OWP/8beEvXCy1hCRacs35wJVqqtzQKcd5tV3TkXZ9XuNq6f14uN1gDEW08fxa8mX/Nk43gLNp6MkdULmAqL+/UdOFXx6AromiM2J05gVUL6DI5w26ANq5rCPXovdL6Otsr+dPNxRfGqrVL7Pr7uP3pPDeFMwTmVekeKCOkU8C0T8cYsMNQs1RYQgj9GOsqFPUiwkc8sxPt6uCkTnV9NTovVpvPXo+Hh7VSnyZxAcn51v7dDyQPFdlu/5u5lSuHr8fn3pGXTgevO8fs1lsrxmraCnD1fla1NtSdg92HVP41CWAWj4UHwGE7lJRCqJ6IBQmArajDKrEUMIo0aRGRmu3gwYoJl6BoRUzD457sEC7yiO6fskLGSs0nLFA17FlT5FvXGhPW48R9mwFM0+CKRPAyOPi1RJefcDMtwLRUW6+Ai9mdzZouHJewwyKkF1Ole3gt/J4ua4RCop72bdIhWP7CdGFfmWCuIWOMBS05x4knRcAXISpBWSwMxJBNYpCmQ5lViI4skCgBuocE3coQCI8QZJTjBnaFPap8YjSNmVhDAeMI5lBCYk5KrTBLoNYKQniR1NBDDWJkkQki0qRKi3HnLLknDV7UmwaNQUVzapatGorsaQiJRctpdTSKteIpCk1V62l1toa5mxAbni6waC1zj321CX03LWXXnsbCJ+Rhow8dJRRR5s840T+mHnqLLPOtmghlFZasvLSVVZdzRBqFoMlE8umVqxau6l2yfqhvKAaXarxVsoN9aYaRlXfIMjTibhmEIxDIiiuLgECml2zo1BK7Mq5Zkdl7AphkBTXbJIrBgXTIhajN+0Cn4q6cn+kW9D0Tjf+rnLBpXtRuY+6PVNttv02jVsh34Xu1CNi98GmccEf3lUf2/DZjVfbH6D/C1AcapbLMvNjDWtt6t1ZJEcEEiEh6hgkCDFbk6YZJ4vJbawfbWxrxLc0q2XjWtPgg1mR9TdiUXO8/RAQSW6IOOyMFb11VDm856jVEKYoeItYvlFd33dT+NTAzgV/lW34Hd17tjfWJVrp4N5m6kPrIuky2ULqdU2murjjTsm5N814ATUinFhibshuS4Zmg29pmBXnSE7vSD1tGkivyEdm1HwdqziDigkXVSSRjCUl4rl5QuEB9QZwceJZFLVw32nTsNqFXBSmsPaECKiYc4FoQ+6pFbkWKXLQHA3pr6Y4++Tex7tVrnzcGIZHiifDe1r+bt7EduA5MdSgtqrdwYXnK34dLtzT+xO4YB9W+z248HG134MLnznvVbjwey2+Dhe+Iu1X4MLXI+X3cOHVwPsMLnwvjj/ChV/0DIm2pHkliEM9QeDVb5I8P+S6pE8cESR3nDqyHA1nKfziUG4V+SEg5Vhqy9g3/96M32vDnwL8AP0A/QD9AP03gQyHWf/31r+LdBObE5asEgAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6VaKw528GvIUJ0siIo4ShWLYKG0FVp1MLn0C5o0JCkujoJrwcGPxaqDi7OuDq6CIPgB4ujkpOgiJf4vLbSI8eC4H+/uPe7eAUKtxFSzYwJQNctIRCNiOrMq+l7Rg2F0w49BiZl6LLmYguv4uoeHr3dhnuV+7s/Rq2RNBnhE4jmmGxbxBvHMpqVz3icOsoKkEJ8Tjxt0QeJHrssNfuOcd1jgmUEjlZgnDhKL+TaW25gVDJV4mjikqBrlC+kGK5y3OKulCmvek78wkNVWklynOYIolhBDHCJkVFBECRbCtGqkmEjQfsTFP+T44+SSyVUEI8cCylAhOX7wP/jdrZmbmmwkBSJA54ttf4wCvl2gXrXt72Pbrp8A3mfgSmv5yzVg9pP0aksLHQF928DFdUuT94DLHWDgSZcMyZG8NIVcDng/o2/KAP23gH+t0VtzH6cPQIq6Wr4BDg6BsTxlr7u8u6u9t3/PNPv7AVx6cp6IJdMnAAANdmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0NjIyMTgzNS0wMDgzLTQ2ZDEtYTBmMy0yOTExNzNkNjZlZTkiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YTJkOTdhM2ItNmYzNS00ZjQ0LTllNzgtYjcwM2UwYmNjNDJiIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDExNGJhMjEtODdkNi00MTc5LTk5NGQtMzBmMWYxYWM2MGM1IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2Njk1NDE5ODg1MjQ0ODUiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMiIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjI6MTE6MjdUMTA6Mzk6NDcrMDE6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIyOjExOjI3VDEwOjM5OjQ3KzAxOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODZjZDAzOTMtYjE2Ny00YTJjLTgwYzQtZmNlYjUxOWQyNjc4IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTExLTI3VDEwOjM5OjQ4Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PuV9NlcAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAAHdElNRQfmCxsJJzAPzAr2AAAAPklEQVQoz2NgIBf8//+//z9h0M+IpOE/qTb8J0YNE6lOZyLVKaTbQHMNLEjsBiL8M4Hk8GchxmRGRkZ4BAMAMd5EhARLMlcAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_tile__FlxTilemap_RawGraphicAuto", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQUlBZ01BQUFCTXN4L3RBQUFBQ1ZCTVZFVUJBQUFBQUFCZVhsNWEwZklRQUFBQUFYUlNUbE1BUU9iWVpnQUFBRWhKUkVGVWVOcXRpZ0VHd0VBTUJDUGNFKzVmaHh2a0FYbGRQOW5GSlNoYTZJNFl1Mkp6WjB5U01wc0EyZzVtYjJjWkFuRk1DR2k3ZmVTSGg3RUVneHBZQXJyN2RWTERzOSswd1NrMU5ZRkRHQUFBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "haxeui-core/styles/shared/info-small.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABUElEQVQ4jaWSu05CQRRF15m5FBZgYWHjKyQan4U91laKpbGgNT7iB/gfvloJsZToD1j4BWqCMSTKD1BAYbwXzrG4YhQuinF3M5m9Zs0D/hlJmpw4bc4HannEzQBg+tQ2Kdf20pUfAdmz+rBq6kSMzQS4GVwErXCnejDS6AFkz+rD1k7dAou/ON/7KMx1IK4zr5o66S6PZxxjafcdYCy1g9TRN4OJ0+a8Vx66tc/XhgAoXL92e5gaC7W9dCUA8GobID0Xenjz1vcg3lkeqDgAETedtGo161nN+kSCatwJANSwpPdcHu2Uo14FweDjEgWt9nPtF5G442IDuYSYOGBUHeV4849MHTdLAluD9a34vJspfBoABK1wB+F+gPadb0X7ncEnoHow0vBRmMMokXwcBSv6VriS+JW/ZvKoOSdi607cLICqVgi4etnOPA5g+Le8A2uUcuHpLgzCAAAAAElFTkSuQmCC"},{ name : "__ASSET__:bitmap_flixel_addons_transition_RawGraphicTransTileSquare", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQVhOU1IwSUFyczRjNlFBQUFUbEpSRUZVZUp6dDNUa1N3akFRUlVHZ3VQK1ZUWVFEQThieU5qTlc5d1drN0w4cUJib1B3M0FEQUxvVEdnRFB5TU1Cb0hOUkVYQVBPbmNrUUFEbzNka1JFRDcrR1FnUUFESTRLd0tNZnhJQ0JJQzNveVBBK0RNU0lBQzVIQlVCeHA5VUJBakFwNzBqd1BqRGhBQUJzdG9yQW93L0pDUkFnRGxiSThENEExOEpFTWh2YlFRWWZ5QXRBUUxMdEVhQThRZVlJVUNvWkdrRUdIK0E1QVFJcmY1RmdQRUg0QzhCVXRPdkNERCtBSlFnUU5hYlJvRHhCNENGSHRFWDJHaTRCWDhuREFDMHF4NGdBRUJCMVo5Z1BIc0FRRUhWQXlTUytBR0FsUVJJVGVJSGdOSUVDSzNFRHdDYkNSQXFFVDhBRnlGQVlCbnhBN0FqQVFMNWlSL2djZ1FJTUVmOEFJY1FJRUJXNGdjdVRJQUFmQkkvY0RBQkFwQ0wrS0VMQWdTQU4vSERhUVFJQUJtSW44NElFQUI2SjM0Q0NCQUFpTk50L0x3QXc0NFVnME5GRTVnQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/shared/minimize-button-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAuSURBVChTY/z//z8DKYAJShMNRjUQA2ivAR7T9V0TGsAMHKCxrAAsT2LSYGAAAMFlDQ2rsh18AAAAAElFTkSuQmCC"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleX", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVFBQUFBbk93YzJBQUFBQ1hCSVdYTUFBQUJPQUFBQVRnR3h6Ujh6QUFBQU5FbEVRVlI0Mm8zTlJ3RURNQkRBTUYvNFUwN1UrZXUwQUxqL2t6Q1NzTFNhVkhOWDJxMTRMUWVjSjVCczlIVHdPakw2dnd2SWUxQ3pYVnM2eVFBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "haxeui-core/styles/default/haxeui_tiny.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAwFBMVEUAAAA+drJml8uevd7K2+1Ee7c1aaBcjsWfv99RhsA7cKqfvt/J2e01aaHJ3Ow1Z56kweGsxuM5cKxzoM9PhMCnxOJBd7SBqdSTtNp6otG90ui2zeetx+RFerM1a6Rllsiow+JDe7qhvt9jlsqfvt9dj8SzzOaoxeJCd7A5bqhVicKAqdOev95ik8SsyOOivuCmw99ThcJ4pNCnv99kl8tomc1+p9RRiMSUtts8drV0oNFdkcibu96IrtdOhL9Cerg7AHaNAAAANXRSTlMASfTz8fHx5uTh4d/T00RE9PLy8fHw5+bl4uHh4eHh39bW0NC/v7m5ubm4tVROSkpIR0ZAQIt9oOEAAACUSURBVBjTRc1FEsMwEETRjpkdZmZmS5FD979VRjVVce/e3zS8MGyMz6DdpuV2x0X/QTPn++uu9pRSDtAl0wRJL4DFzjIuDqIXm8snRlJhc7FTYMnmsgZwZHMpUTjlRZA6rET+t9oAiSl0YatqiugtqLBpMSyyLmzloCe4sNUQnpaxOFy29S+FAK2Rb0/0G+4zw/WbP+FUKshItzNPAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/transparent_px.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADElEQVQImWN4K6MCAAMnAS7qrFRjAAAAAElFTkSuQmCC"},{ name : "__ASSET__:bitmap_flixel_system_GraphicLogo", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQmtDQU1BQUFCSFBHVm1BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQkRsQk1WRVVBQUFBN1FQODVRZjhEemZzRXp2c0V6UHYzSkUwQXpQKzNTME1EelB3RHpmb0R6Zm9FemZzQXp2ODdRUDg2UVA4elJQLy93akU2UXY4NlFQOER5K2c2UVA4N1FQLy93REgvd0RMMEprNzFKMDcveFRIL3dUTC96RFAxSms3L0lrVC93VEQvd0RIMUprMzFKazczSVVyMEprNEF6di90d0REMEowMy93REgvd3pFRHpQdkFSa1VzWDhmSXZ5Ny93VEQwSmt6L3dESTdRUC8vd2pEL3dUTC93REVMb2tzV2pIUTNTUEU3UWY4RHNTOGticXd2VjlVT20xa0R5KzBDeGFrQ3c0NGhkWjR6VU9NQXZFb0V6ZnNCdjJVQndIUDFKMDRBdVNMbE1Fdi93VExIUWtWYmdqTFB2eThQdVNPWlhUMmZ2aXlQdlNzdG5TcGZ2Q2p2d0RFUHJ5U3Z2aTBlcGlkNmNEZ3Z1aVhLcmR2WEFBQUFOblJTVGxNQXZ6L3ZQNzgvRDc5Zm45OS9IKytmRHo4ZmY3L2ZYKytmWDk4ZmZ3L1BEMS9mbjM4Zjd5L2Z2Nzh2cjkrLzMyOHZyNDlQajgvNUdwWGFBQUFDa1VsRVFWUjQyclhXQlpJYk1SaEU0VjVtWm1ZTTgwSTRzMkE3ekxuL1FVTDBLb285Y2VlWDN3Vys2cG9hU2FvMmJIWkJWaXZyWncwQytidVp4U1dEMk5nNk14RVlnM0FSbU5WbWpMbjVNMm9lb2JWVmc3QVJtTEV5b252NWpIeUU5bUJTWXZlTWJDUmw5dXNSVnlFY3hQbHROdmt4NGdpTVIvZ0l2dzAvUm40RUJpSS93dDg1QjVFWG9jc1h6OHg4NU5uemR6VVg4WTN6YzVUY0NJYXR5RGQ4UmI3eG94ZXRRdDVqb0dSR1hpSjRpbnpEVitRYnZpTGY4Qlg1aHEvSU4zeEZ2dUVyMm5PTnRJOU5JR08ya2ZiMDM0aG1YY05YcEtVWnovQ1ZlVWxYU28xWDUwbStNaWRKYXlYR20zT3lGWVpJWTRiaEtReVJyaG1HcFRCRVdwZ3hERXRoaUxRWU1GQXFaVU9rcFRYWElIcU5VbWVJZE1Nd0xHVlpvajNEY0pSdWlmWU53MUIyOVVjM2N4Z29EQ0dPTUl5b3doQmFEUnNvREVtNzlaTjQreWxpb0RCRU5JYVJTV0VJeldMRStsQmpDUEh0TVNLOXF6RWtiUkVqckRBa2JRY2pyREFrNmRMUmVUYWxWL1ZyUDd5YlRYa3lxZnExSGFKRWpmdEZaNE1oaHloaG8raHFOT1JyeDVtTWdpbkpFSlN3d1pSa0NFcllZRW82QkNWdU1DVWRnaEkzbUpJT1FZa2JUR0ZJRnVVRWd5a01TWHIwWDhacFFVeGhTTnFkcU1FVWhzUVZETHFRRElrb0dHbER5WkNBZ3BIV0w0WVlpbUV3aFNFUkJTT2R3aEJETVF5bU1JVG9Yc1JnQ2tPSURtNEhES1l3eEZjd1NxY3d4RmN3eW1PSW9aaEd3UkJETVkyQ0lZWmlHZ1ZERE1VMENoMDIxK01qei9BUkhuMmVBUkpRSGhZdTRpc1BpdHdJQ2tadUJBVWpONEtDa1IxQndjaU4wREZHZmdRRkl6K0NncEVmUWNGb0dUSXlQdFRmWXFTdFhaSzJ1enpFSjc3WENaTVhtWm9XT1l4c2d2b0dNaVBERXlLWFVaUEVxTWhnRE9RNmhOSjZCanNpQ0QrR3lHQU1wQTNDWUN5RUg2Tzg4a1BnQzUyOVN2ZFRmSXFLQUFBQUFFbEZUa1N1UW1DQw"},{ name : "haxeui-core/styles/shared/sortable-arrows-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAYAAAD+WDajAAAI53pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VhZkisrDv1nFb0EQAhJy2GM6B308vuITNdgu+69L96L/mo7ymRhkISOhoPD+s+/d/gXXhRLDIVFq9Ua8SpWLDc8aLxe7XwmrPPP6yX3mL7Ph2j3FxlThJGuf7Xe6x/z6UPANTQ88RdBOu4v+vcvrNzy9UnQrYjcooyHeQuyWxDl64t0C2jXsWI1la9H6Osa7/2XG9SPho/+mOV78dP/ReC9ydBDOS9KFPGZqVwGkP/lQO08+Kf4QiI8F7wbnuW2BA5556f4xarwjMr4AZWPpydQqF7zARPfnVk/xrfzid87PxwXf9FM40Pzt3mbd1Q9Odn/9p4a9l7X6VqpcGm9D/U4ynnCwg6X09lW8Rb8MZ7lvA1vDdAzAPmMI3a8R7KUActOJc3U0k7rjCMNmFjyyoAk5zwynTkFRJYHxQAwHaOSdhYymqRAawBewmz+sCUdvXbUjaRQPBNW5gRh6YI//zPvHwXt7SGfUtTLTwgL2JU9KWCGI+efWAVA0n7EER8HP97PL8fVKwUfNysO2GK/RHROd2x5HNEBmrCQMV65lmTeAuAi6GYYkwgIxJqIU01RcpaU4EcFPg2CFEmTOyBIzHnCylyIKsDR7LqxR9JZmzlf06hZAIKpkgAaowasCgob4keKIoYaExdmriysbNwq1VK51irVi18TkiIsVURUTJqSFmWtKqpBTZtlIxRHtmpiamatQWmD5IbdDQta67lTL5177dK1W28D4TPK4FGHDA3DRpt50kSdmHXK1GmzrbQQSqssXnXJ0mWrbYTapl0277pl67bdPlBL4aRdenn/OWrpgVo+SPlC+UANW0UeIpKXE3bMgFguCYiLI4CAzo5Z1FRKDg6dYxbNaxpnWMkOzkyOGBAsK2Xe6QO7T+S+4RZK+Vu45QdywaH7J5ALDt0PyL3i9ga16eVuRAoHIU9Dd2okpF/lVDjxLhU92B8Le5d6P3Kf1Dc0htT3HHu13MvqqEFrQ5fWvYU2DjSpjSrdWpEaW1act6C/uEnYPff2Arrg1rDaYGweMiE47QFPzLp6pQQ3HNvKiC5AW/zVGH5c0Fartvsilk2SukZSKNtTWpmNu2ZGlYUPZO9OEvay5gYuuhaRz16TZwrNWRqPpTLa0P3m6G3WXS3sKoaGvue0pAMnQtR0xFjvKPTYehlpGdD26UK67EHbmKXNYg3wLwRcCZso2Zq9wpY1xt6tHhfq8s/Nq6NMcSWcToRowYh4LQTR8KW+0Estr0a2INcUciGW1MXappwk92zzBEPJF2Zoh+/H8OaLiYoFB81F8ESUjRPyt0mnbWd6NXTwXNpBzYPnWVga1IB7XHaCjxEgHnVjleMfbf1lLmhD4iSaOuRI6UK/O8U19o4UzBABEBL34FAhGWY1EiQ9OMDiDHm1D1XEgViWPXfOir/kx7JV7BxvaNMFP6L/cgvvzk5PMhp/VksmROFoUD8yTr9OzqReAlPzWK7zTMLsND/iG9mCnBpiwzYke4xl1NnWdTZnP9LR2FACUXU0AFxk4LR1m01nvM7SaRw7CYHqY19YjKBDlR2gz+6aiYA+1oMeI1f8uGNMD5i8oCQjXbuASeta1ZrNObUstM12lZha7nxGHbnHwLynJxc3T/5Zm77MoIx4KhrKm595lFkQp7MZKs+at7DwVerLmHV1L+WEvIj5xHhBsfNqbl56BlK7q4cAUOOGOls81xcqwhyoSWPyICcJPZV2rECYjZda0wbKCbDzlEeFhBtO0jO2oGaPRD01SATzPgHB/okIWlRkV4X75wSU8LDOirLMJ1hGgHrEESCU3WGoYXdqjJnsMz3LKrRHRVFRZDcg9+6HooXg2TDB7h0UXqZGh+WrlDQcxxeJ+oOO8JMSvze8m/tJT/iNop8PEysy53ixIv81HJ8xkBXPSd8Daej3r7Y9z6Hh3LYtwIziD2r91ZJmjP7qpSXK4SZdV0XWJcShcxKju2uC+v9RO/qL4/8F/S8ENfRoRkCirSN3wd2mp26xjp4bvSqjE9XDCmpFWMxlhFqLCuWp+30Gabs0tFWQw0jiBqJkV7CBb6CWIFQ5vZvDNkS8GX9VFX6pqwi1+KLpVY84iXiv5rfnedYR/s5xvsoNuDF5tesTuYamg4K6BHmI0mrotyiPqALgMduzVSHB8/d5ZrYcg1vnHcaZrnmjlfUwg2OfXUoH70ZlqKAEaL5g3QU0CJe+qm1/Zm94CoyOO8Ax3Wr37srOXSa6b//Sn9DJQcTQoHAcl1RzHeF3RPpz9KaUrw6F2nKmc1I0y+W9Kfhty9X5scEeAUAWLof8gSg+iIXXu7LvDlWvDjXGm3oEo63nXODwtYUR7mCWpDhZc8UVXHlEm86F0JJOs4cTjpoJb6MLBeA88B0a5AaPUxy6SMfnpvebBHdmjY4rzahwfwNJmOdoy+F7sEWzUgfpQObYcUNJXlmPZ3rRT/oDSvTBiCJrDhFnLbgH4kLiS9o8uncCbxO/Ugxc4UDzIoHM5O0Rc9GfedOf4vQHHSAc/oP+fPEfZRD6Q4LGTKDINnGeN5t73lBU/LoCKg/WXgPyJQ3cB7igjYHR5bH8p53e7rvQsN9T04mmEy6gq/aLiLQe6+W923VfOHXFTRFX34skKTyTQGGrgWfgmhnKI+ToU8NxlDfBT0exvZvFLWFp2aiIORz5SOL4R+T624iLBnwBUtM0cSD/DS7BPm+yThFxWUQolDV4ehe2ji6MQlHkZgjfZ9CXU+nGMWy/UHdQdcvs92X/3SwmoRF3A5uEs2e+7nOL3Y/kR0Iq4b7k13hYgKoD5/ivNYZrPU/eoyOoyA3TEocwkCfcshKqYzvZN3Hz29n5vV+efWbIujh4Ds75ujjlxS02i+R97zu7kIbXvgFPZ8QWIfAbTN7ldgYiHckdewBp5z+7kf16RPbHjCvpSQwUFDjYeVDNV0Ep/S4o9Yqokwcop5OVyxyzpn6RaQ6RTe3Or92vAEGVBSOid7NLdaGgJ6j7TpLCz/3YiziuBv8FLa0oj0C6SzoAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1IhUHK4g4ZKhOFkRFBBepYhEslLZCqw4ml35Bk4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAqJeZanaMA6pmGclYVMxkV8XAKwQEMIBZdEnM1OOpxTQ8x9c9fHy9i/As73N/jl4lZzLAJxLPMd2wiDeIpzctnfM+cYgVJYX4nHjMoAsSP3JddvmNc8FhgWeGjHRynjhELBbaWG5jVjRU4inisKJqlC9kXFY4b3FWy1XWvCd/YTCnraS4TnMYMSwhjgREyKiihDIsRGjVSDGRpP2oh3/I8SfIJZOrBEaOBVSgQnL84H/wu1szPznhJgWjQOeLbX+MAIFdoFGz7e9j226cAP5n4Epr+St1YOaT9FpLCx8BfdvAxXVLk/eAyx1g8EmXDMmR/DSFfB54P6NvygL9t0DPmttbcx+nD0Caulq+AQ4OgdECZa97vLu7vbd/zzT7+wF8pXKr0kUkPQAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6MTMwOGVjNTUtN2FmZS00ZmVkLWJlNmMtYTg5M2Q0NzZiYjRkIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmZkOGQ5Mzk0LTNmZDktNDcyNi04ZWZkLTgyNmE2NzZjZmEzMiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmYyNjJjNWI5LTI3ZDMtNDI5ZS1iN2NkLTM0Njg5ZGQ1YzgwYiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0MjczODY4NDAyMzE0IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODVmNGEwNGUtNGY0ZS00MzY3LWE5NmQtNTQzMjRiZTNlZjliIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTA3VDIzOjQ0OjI4Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PnITjzMAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfmAgcWLBzeRdHFAAAAVElEQVQY02NgQAIViy78R+YzoUtULbn4H0WyYtGF/0xMjAxMTIwMDAwMDHXLLqGYQGXAiM0OZiZGhvoIXUZGmEDdskv/maEOqo/QZcQwpnHFZRQTACdBGaoYdrXwAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/default/dialogs.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBESUFMT0dTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5kaWFsb2cgewogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBmaWx0ZXI6ICRkaWFsb2ctc2hhZG93OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgcGFkZGluZzogMnB4Owp9CgouZGlhbG9nLWNvbnRhaW5lciB7CiAgICBzcGFjaW5nOiAwOwp9CgouZGlhbG9nLXRpdGxlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXI6IG5vbmU7Cn0KCi5kaWFsb2cubm8tdGl0bGUgLmRpYWxvZy10aXRsZSB7CiAgICBoaWRkZW46IHRydWU7Cn0KCi5kaWFsb2ctdGl0bGUtbGFiZWwgewogICAgd2lkdGg6IDEwMCU7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6ICRkaWFsb2ctdGl0bGUtY29sb3I7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7Cn0KCi5kaWFsb2ctY29udGVudCB7CiAgICBwYWRkaW5nOiAxMHB4Owp9CgouZGlhbG9nLWNvbnRlbnQtcGFkZGluZyB7CiAgICBwYWRkaW5nOiAxMHB4Owp9CgouZGlhbG9nLm5vLXBhZGRpbmcgLmRpYWxvZy1jb250ZW50IHsKICAgIHBhZGRpbmc6IDBweDsKfQoKLmRpYWxvZy1mb290ZXItY29udGFpbmVyIHsKICAgIHBhZGRpbmc6IDVweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLmRpYWxvZy1mb290ZXIgewogICAgcGFkZGluZzogNXB4OwogICAgaG9yaXpvbnRhbC1hbGlnbjogcmlnaHQ7Cn0KCi5kaWFsb2ctY2xvc2UtYnV0dG9uIHsKICAgIHJlc291cmNlOiAkY2xvc2U7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7CiAgICBjdXJzb3I6ICJwb2ludGVyIjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwogICAgcGFkZGluZzogM3B4OwogICAgYm9yZGVyLXJhZGl1czogMnB4Owp9CgouZGlhbG9nLWNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICByZXNvdXJjZTogJGNsb3NlLWhvdmVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9CgouZGlhbG9nLW1pbmltaXplLWJ1dHRvbiB7CiAgICByZXNvdXJjZTogJGNvbGxhcHNlOwogICAgdmVydGljYWwtYWxpZ246ICJjZW50ZXIiOwogICAgY3Vyc29yOiAicG9pbnRlciI7CiAgICBwb2ludGVyLWV2ZW50czogdHJ1ZTsKICAgIHBhZGRpbmc6IDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKfQoKLmRpYWxvZy1taW5pbWl6ZS1idXR0b246aG92ZXIgewogICAgcmVzb3VyY2U6ICRjb2xsYXBzZS1ob3ZlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKfQoKLmRpYWxvZy1tYXhpbWl6ZS1idXR0b24gewogICAgcmVzb3VyY2U6ICRleHBhbmQ7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7CiAgICBjdXJzb3I6ICJwb2ludGVyIjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwogICAgcGFkZGluZzogM3B4OwogICAgYm9yZGVyLXJhZGl1czogMnB4Owp9CgouZGlhbG9nLW1heGltaXplLWJ1dHRvbjpob3ZlciB7CiAgICByZXNvdXJjZTogJGV4cGFuZC1ob3ZlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKfQoKLmRpYWxvZyAjaWNvbkltYWdlLmluZm8gewogICAgcmVzb3VyY2U6ICRpbmZvLWxhcmdlOwp9CgouZGlhbG9nICNpY29uSW1hZ2UucXVlc3Rpb24gewogICAgcmVzb3VyY2U6ICRxdWVzdGlvbi1sYXJnZTsKfQoKLmRpYWxvZyAjaWNvbkltYWdlLnllc25vIHsKICAgIHJlc291cmNlOiAkcXVlc3Rpb24tbGFyZ2U7Cn0KCi5kaWFsb2cgI2ljb25JbWFnZS53YXJuaW5nIHsKICAgIHJlc291cmNlOiAkd2FybmluZy1sYXJnZTsKfQoKLmRpYWxvZyAjaWNvbkltYWdlLmVycm9yIHsKICAgIHJlc291cmNlOiAkZXJyb3ItbGFyZ2U7Cn0KCi5tZXNzYWdlYm94IHsKICAgIGluaXRpYWwtd2lkdGg6IDMwMHB4Owp9"},{ name : "haxeui-core/styles/default/scrollview.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBTQ1JPTExWSUVXCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5zY3JvbGx2aWV3IHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgcGFkZGluZzogMHB4OwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktYmFja2dyb3VuZC1jb2xvcjsKfQoKLnNjcm9sbHZpZXcgLnNjcm9sbHZpZXctY29udGVudHMgewogICAgaGVpZ2h0OiBhdXRvOwogICAgc3BhY2luZzogNXB4OwogICAgcGFkZGluZzogNXB4OwogICAgYm9yZGVyOiBub25lOwp9Cgouc2Nyb2xsdmlldy5uby1wYWRkaW5nIC5zY3JvbGx2aWV3LWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDBweDsKfQoKLnNjcm9sbHZpZXcubm8tYm9yZGVyIHsKICAgIGJvcmRlcjogbm9uZTsKfQoKLnNjcm9sbHZpZXcubm8tYmFja2dyb3VuZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lOwp9Cgouc2Nyb2xsdmlldy5uby1ib3JkZXIgLnNjcm9sbCB7CiAgICBib3JkZXI6IG5vbmU7Cn0KCi5zY3JvbGx2aWV3OmFjdGl2ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9Cgouc2Nyb2xsdmlldyAuZW1wdHktY29udGVudHMtY29tcG9uZW50IHsKICAgIGhvcml6b250YWwtYWxpZ246IGNlbnRlcjsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogTU9CSUxFIFZBUklBTlRTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5zY3JvbGx2aWV3Om1vYmlsZSB7CiAgICBtb2RlOiBtb2JpbGU7Cn0K"},{ name : "haxeui-core/styles/shared/warning-medium.png", data : "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACB0lEQVRYhe2WP2gUQRTGf+/udibFCbmL8exUjGiiFqlMZdBG8E9rYaWNggqipQRRRBCEJKWljY1gJ2n1LhCbNHIggorWIijkEHYvuWeT083u7GZ3L2JzX7W89+Z7H2/mm1kYYoj/DCm6UF9QpmHmUJRvwSO5yEYRnkpRAeyxt4D7CLDXroG/UISm0AR0hTrdkY+g9c3QT3rmkJxa+56Xq1REAF37MNQcYJRS8KAIVe4JaMtMofKO+PZtgE7LbNDOw5d/AirzjuYAZZDFvHS5BOgbewE4k1JyWpft+TycmbdAV/Ho2DbCYYD3X6o8fjYBwN0rnziyv9Nn/EzHPypn8bPwZp/AL3uz3xzAVHp/UsbTkFIOUrXXs9JmEqAr1FGZC8fCTb2QmE0R9/T1rt07JsBhuy1NjdeLrshsy20FaMtMAVej8XBThwCAa9o0xwcWkGQ7U1HndwiZbJkqIM12XtoZ+IttbZkoQFfxgCdJ+fDYvXKiAFAWdQmblE68B7Rlb6PMJzPngHBHTrpfS6cAx2sXr1F4264hAjPHfiDpV1ria+n+H3DYLooPX6s8fbkPgNFql8kDnbTyvi1vRBOxM6BNM4nDdlE0xnzGawHjtYDGWKZb12nL2OC0aV8B57IwFsCSzPpbuB0u0Jl/1BzQE9FI/AyU5DIql5y5wbAOPN9hziGGGBy/AQa5lYKywFiuAAAAAElFTkSuQmCC"},{ name : "__ASSET__:file_flixel_system_VirtualInputData", data : "YmFzZSA9IDI2NiA0NiA4NCA4NAp0aHVtYiA9IDI2NiAxMzEgNTIgNTIKYSA9IDAgMCAxMzIgNDUKYiA9IDAgNDYgMTMyIDQ1CmMgPSAwIDkyIDEzMiA0NQpkb3duID0gMCAxMzggMTMyIDQ1CmxlZnQgPSAxMzMgMCAxMzIgNDUKcmlnaHQgPSAxMzMgNDYgMTMyIDQ1CnVwID0gMTMzIDkyIDEzMiA0NQp4ID0gMjY2IDAgMTMyIDQ1CnkgPSAxMzMgMTM4IDEzMiA0NQo"},{ name : "haxeui-core/styles/shared/sortable-desc-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAYAAAD+WDajAAAJ0HpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZhZcis5DkX/uYpeAidwWA7HiN5BL78PmCk/25LeUFXRX22FxDSTCYK4GC7SrP/8e5t/8RdC8SZKLqmmZPmLNVbfuCj2+mvn19l4fq+/fI/u67yx9b7hmQqM4fq3pHv9Y959CLiGxpV8ElTGfaN/vVHjLb98E3RvFFQjz8W8BdVbUPDXDXcLaNexbKolfz5CX9d4P3+ZoejR+OmPWbkXf/s/Zqw3hX2C9yu4YPn1IV4KBP16E9q5aOc2eofKtYTCbwzp1gSDvLKT/aSV+Y7KeIPKx9U3UNjMXaiFb8ZMH+PLeSevjW+OiT/tHMbHzl/md7D9+3Ee371nMXuv63QtJkya7kM9jnKuWIiQGM5jiU/mK1zn86l8isF7B5BPO9ixc12dx+7bRTddc9utMw43UDH65TOj98OHM1dC9tWPYA1oRf247TOITfDyYQBvYNZ/6OLOvvVsN1xh4+lY6R3C3AW//2c+bwXtrS7vnC2XnXAL9PIaFKihyOkvqwDE7YcfyTHw4/P9zx1PjaxSMxcO2Gy/RHRxt2+pH4UDdGChMF6x5vK8BWAi9haUcQEEbHJBXHI2e5+dw44FfBqCCkHjOxA4ET/R0scQEuAUr3vzTHZnrRd/TZOzAEJCChloCCmwiiQ2/CfHgg81CRJFJEmWIlVaCikmSSnlpMmv5ZBjlpxyziXX3EoosUhJJZdiSi2t+hpIjlJTzbXUWltj04bkxtONBa1130OPXXrquZdeexu4z4hDRhp5FDPqaNPPMMkTM808y6yzLbdwpRWXrLTyKquutnG1HXbcstPOu+y62wdqzpywc0+f30fNPVDzByldmD9Q49GcHyKcphNRzEDMRwfiWRHAob1iZouL0RuFTjGz1RMV4tFSFJzpFDEQjMt52e4Dux/IfcHNxPi3cPMP5IxC908gZxS6N8g94/YCtanVZthgDkIahmpUGwi/JC6Kkx0TNVgvo2iVej1Kn6FvdjSu7zn2ar7H1clBa7NXSXvnsDnQDG2k3GuLOdnmC+eNLXhViafn3ppAF2Y1qw3h4ZEngt0eWGKm1VNwmOHoFodVAaXZn43m7YK2Wqq7ryB5h+x6saGw2Z65xdmkFy9kWWyQ9+4hm71qUwVXuBYFnb0mzxTFOTcZq+TRRtkvjt5m2qmanXKloO85qyuDE+E1HR/rnUTPo5eS1QNtnyqk5z3CriK5zVgb8C8cLpodgqtr9oQua4y9WzomLEt/t6xOmpIUOF3OISyUsNdCiIYu1YWaamW1UBdya0EuYkNRsXUH77Lvvs7jDNFfmFEOX4/mxY1JxsJAcwUsYfPmhPJlUmnbmV6NCu5jO6ip83wX5kZo4G5XPc4nOIh63Vjx2Ke0/jRnSiNwXJhl5COl5/CrU1xj74SgRwQgOOlGoSIYZqohE/RwgCUeeamPUvCDXH3ec3tf+Do9Vl2xnuON0srCjtRfaebV2cM3GU1+ZEsJeOFobD88p18nZlyPRkJTX07zTKK2mx/+TbQQUyPXUTeS1cc8ebb1Mpuyn9wpbKRAsk4xgEsEzrputcMZr7P0MI6eAUfVsS8W43Rk2QF9VtNMHPpoDz0mVvS4Y0x1GL/YxBOuPcOky1qptjrnLHFRNtuVYlK845k8co9GZE8NLmka/DO18jRDGtFQrKQ3PfOIM+Kns1Uyz5q3MPNZ6tPoy+qaygNxYf3x8Uiy02xeNfUMQrsXdQFQk0aejRrri4wwBzlpTBlBSUJ3sR0tcLPxlGvaIJ2AnYY8GRIznKAXHiFnDxe6a0iEfx+HEP3Fg1aIeaeC+ecESixcZiIty3GWYdgePwLCvDuKVp52TZjxOtN9XjHskUgqhegGcq1+JC2cZ6NCvZ8I5mlqdDRfMbqhOD5JLG/2MO820b7h1dy7fcwvNnp/GJuInGPFRPwXc2wmIJs1JvUZpFHvn3X7PkfBuXVbwEzyh1p/1qRVob5qarH5cJNeViLqHH6onKSGu2pC/X+rHP3h+H9B/wtBPVFFZjNh9tXIc1TECT3Z3ICt+FHczGE1u5vEQVqGVAxoZKeY06ohYR36YvEeMkfuRqYm+HjoAinrJFpbMoJPkoW4sR5ph2j41N0ml1rYXYmD/z8EmofEPxRYjrxP4sxXBf+6OPNZvb8jztin0/41ceb5tH9NnHlnvD8VZ36Oxe+LM78D7U/F5UDRgIxSRGvOo5LCJl1T14xXM+0sDKqsYaG01K4eU1qjQHjkUKPgr6o746PemU+BQ4+yLZl2dDjI7Ow/ayMmUDgMd9U3dNlpHMukRFNw9LKsM+JI2m7KxTlXdtTaX/QfL0dzOOKIW1nJin47lMn6iqHR3+c0395LStup5CiFAYKZRywUhtB+IhE5zuVcb7RnaXeo/Q5DHOmh9jxGtp0eY8LEKXGGFpUqEqBl8IXYq9ArRdolerdDrhbKANO6LKRmgBZUyIFipu0aXyjQNpQ6qhn5iczTGrxqbim0fp+k/ZDlT08AgdF+lHPEZOlQoPbFGboN3wccecK3DwZ4gtRjDcjO5J8UlKnQK4U4ptcuJCTpF5nWl3Xnyrxi0Sl2jwVGSrGmKGVCbhL9NA0mjGdSoktV88shMPq+LG+zCkx1wOMjfDVSkrs/TU3Sbk3bmmOpy1/y5vmLJzxZ0NwmzJXuRWbddJVzrESUBJI0/HH/RCRcfUPRRqTxc63FuG3sTkkB/TG53SZX55j0YUVfA9Dc2WbXVjIocG7I4uWLaaX48Erz1l1lQTGJC0WDoFn0npzhQDPWMzTmA5tMx9j1lURyO3+gUgol6W1vA8lxxyXgRwToCUd7WM+kP0ldXuKisDRoMaahB2X0Y4d17Qc/CkT873RVX1vDSWeLlTc9RI/a+4lJC4eL+lZI0lj6mpCu2Snr9SVywrKCJyWUpR2HC27CxlYuV2iop+A6mipNxQhc0Lccf6g04nTXvWr/pO0grFvWpKEbOEykjpOdJHZk+VwWWkkp4EBPW0LVQo/dpJH2eqnbZmXkQijutrDOjp57k3utD6FNBBP0SHOQNq+8OEyZcUknLzovdEJEbpxUeA4evGepy+IjzSAxTcqQK2zjyBejpS1TD82jw2rVavQB6hb4oqZ2Mj9a4Eo1yCq0QuRxCaksmqKoL5oI2+a+ijQ/ZN4i2XjEmiv9Fl4M3R6g0gI219aI5G3zzBzTqR0kNkvH5b2QIWuY2u0dny/xfc/189E8Lty0u+g7JXKzvsbOerzm/Hzk7Xf3Vl5Q9GAgYDRJd4glm8i5O19unay69eXUFCtYlvRxRdhnY1qr5jRqz0arUVxubmXyq38w++p/VYiylj4M/V/W1/iA1Wk+3gAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQcriDhkqE4WREUEF6liESyUtkKrDiaXfkGThiTFxVFwLTj4sVh1cHHW1cFVEAQ/QBydnBRdpMT/JYUWMR4c9+PdvcfdO0Col5lqdowDqmYZyVhUzGRXxcArBAQwgFl0SczU46nFNDzH1z18fL2L8Czvc3+OXiVnMsAnEs8x3bCIN4inNy2d8z5xiBUlhficeMygCxI/cl12+Y1zwWGBZ4aMdHKeOEQsFtpYbmNWNFTiKeKwomqUL2RcVjhvcVbLVda8J39hMKetpLhOcxgxLCGOBETIqKKEMixEaNVIMZGk/aiHf8jxJ8glk6sERo4FVKBCcvzgf/C7WzM/OeEmBaNA54ttf4wAgV2gUbPt72PbbpwA/mfgSmv5K3Vg5pP0WksLHwF928DFdUuT94DLHWDwSZcMyZH8NIV8Hng/o2/KAv23QM+a21tzH6cPQJq6Wr4BDg6B0QJlr3u8u7u9t3/PNPv7AXylcqvSRSQ9AAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDozNDY2OTZhMi1hZmY2LTQzZWYtYjUwNi0wZGNjNmYxMTRhMzEiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjRlMjJlZTUtYjlmMy00N2VhLTgyYWUtYzkyYzcwYTJmMTNkIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2I2YzI2OWMtMjI2YS00ZTU3LTgyN2YtYmQ4ZjQxNzcyYmY4IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQ0ODM1MjczNjQxMDkiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplZjZiNjA0Zi0yZWVkLTRiMjgtYWNjYy0zNjU2NTQxNTlmNTAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTBUMDk6NTg6NDciLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+QNJHhgAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB+YCCgg6L5nfU6MAAABPSURBVBjTY2BAAhWLLvxH5jOhS1QtufgfRbJi0YX/TEyMDExMjAwMDAwMdcsuoZhAZcDIwMDAcPT6aww7rDVFGRlhHGQF1pqijBjGoJsAAEFqGjUt1yV0AAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/ru/std-strings.properties", data : "c2F2ZT3QodC+0YXRgNCw0L3QuNGC0YwKeWVzPdCU0LAKbm890J3QtdGCCmNsb3NlPdCX0LDQutGA0YvRgtGMCm9rPU9LCmNhbmNlbD3QntGC0LzQtdC90LAKYXBwbHk90J/RgNC40LzQtdC90LjRgtGMCnNlYXJjaD3Qn9C+0LjRgdC6CgpyZWQ90JrRgNCw0YHQvdGL0LkKZ3JlZW490JfQtdC70LXQvdGL0LkKYmx1ZT3QodC40L3QuNC5Cmh1ZT3QptCy0LXRgtC+0LLQvtC5INGC0L7QvQpzYXR1cmF0aW9uPdCd0LDRgdGL0YnQtdC90L3QvtGB0YLRjApicmlnaHRuZXNzPdCv0YDQutC+0YHRgtGMCg"},{ name : "__ASSET__:bitmap_flixel_tile__FlxTilemap_RawGraphicAutoAlt", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQUlBZ01BQUFCTXN4L3RBQUFBQ1ZCTVZFVUFBQUJlWGw0QkFBQVkxT05MQUFBQUEzUlNUbFAvL3dEWHlnMUJBQUFBVDBsRVFWUjQycjJNZ1FVQU1SQUV4N2tBc0pDK2d0dCtVdm83SVZMQnc4eGlMRHRBQ0ZLNTI1QU40cGhac0JBTTVmUUpiSEFkbzZSSkw3MFAyZjRubUxXYXZzRncyZllOZHFqSkRaSjRIejdKNkFyN3ZhUDJVZ0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "haxeui-core/styles/shared/minimize-button-white.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAnSURBVChTY/z//z8DKYAJShMNRjUQA2ivATmmCUU5I5ggLWkwMAAA9hYKDVhEBNAAAAAASUVORK5CYII"},{ name : "haxeui-core/locale/ru/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "haxeui-core/styles/default/sliders.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBTTElERVJTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5ob3Jpem9udGFsLXNsaWRlciB7CiAgICBwYWRkaW5nLWxlZnQ6IDVweDsKICAgIHBhZGRpbmctcmlnaHQ6IDVweDsKICAgIHBhZGRpbmctdG9wOiAzcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogM3B4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgaW5pdGlhbC13aWR0aDogMTUwcHg7CiAgICBib3JkZXItcmFkaXVzOiAkbm9ybWFsLWJvcmRlci1yYWRpdXM7Cn0KCi5ob3Jpem9udGFsLXNsaWRlci5tYWpvci10aWNrcywgLmhvcml6b250YWwtc2xpZGVyLm1pbm9yLXRpY2tzIHsKICAgIHBhZGRpbmctdG9wOiA2cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNnB4Owp9CgouaG9yaXpvbnRhbC1zbGlkZXI6YWN0aXZlIC5idXR0b24gewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLmhvcml6b250YWwtc2xpZGVyOmFjdGl2ZSAucmFuZ2UgewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLmhvcml6b250YWwtc2xpZGVyIC5zbGlkZXItdmFsdWUgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5ob3Jpem9udGFsLXNsaWRlci53aXRoLWNlbnRlciAucmFuZ2UtdmFsdWUgewogICAgYm9yZGVyLXJhZGl1czogMHB4Owp9CgouaG9yaXpvbnRhbC1zbGlkZXIgLm1pbm9yLXRpY2sgewogICAgbWFyZ2luLXRvcDogMTBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgd2lkdGg6IDFweDsKICAgIGhlaWdodDogNHB4OwogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKfQoKLmhvcml6b250YWwtc2xpZGVyIC5tYWpvci10aWNrIHsKICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHdpZHRoOiAxcHg7CiAgICBoZWlnaHQ6IDhweDsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi5ob3Jpem9udGFsLXNsaWRlciAuYnV0dG9uIHsKICAgIHdpZHRoOiAxMXB4OwogICAgaGVpZ2h0OiAyMHB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKICAgIGZpbHRlcjogbm9uZTsKfQogICAgCi52ZXJ0aWNhbC1zbGlkZXIgewogICAgcGFkZGluZy10b3A6IDVweDsKICAgIHBhZGRpbmctYm90dG9tOiA1cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDNweDsKICAgIHBhZGRpbmctcmlnaHQ6IDNweDsKICAgIHdpZHRoOiBhdXRvOwogICAgaW5pdGlhbC1oZWlnaHQ6IDE1MHB4Owp9CgoudmVydGljYWwtc2xpZGVyLm1ham9yLXRpY2tzLCAudmVydGljYWwtc2xpZGVyLm1pbm9yLXRpY2tzIHsKICAgIHBhZGRpbmctbGVmdDogNnB4OwogICAgcGFkZGluZy1yaWdodDogNnB4Owp9CgoudmVydGljYWwtc2xpZGVyOmFjdGl2ZSAuYnV0dG9uIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQtY29sb3I7Cn0KCi52ZXJ0aWNhbC1zbGlkZXI6YWN0aXZlIC5yYW5nZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9CgoudmVydGljYWwtc2xpZGVyIC5zbGlkZXItdmFsdWUgewogICAgaGVpZ2h0OiAxMDAlOwogICAgd2lkdGg6IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIGhvcml6b250YWwtYWxpZ246IGNlbnRlcjsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLnZlcnRpY2FsLXNsaWRlci53aXRoLWNlbnRlciAucmFuZ2UtdmFsdWUgewogICAgYm9yZGVyLXJhZGl1czogMHB4Owp9CgoudmVydGljYWwtc2xpZGVyIC5taW5vci10aWNrIHsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICB3aWR0aDogNHB4OwogICAgaGVpZ2h0OiAxcHg7CiAgICBob3Jpem9udGFsLWFsaWduOiBjZW50ZXI7Cn0KCi52ZXJ0aWNhbC1zbGlkZXIgLm1ham9yLXRpY2sgewogICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHdpZHRoOiA4cHg7CiAgICBoZWlnaHQ6IDFweDsKICAgIGhvcml6b250YWwtYWxpZ246IGNlbnRlcjsKfQoKLnZlcnRpY2FsLXNsaWRlciAuYnV0dG9uIHsKICAgIHdpZHRoOiAyMHB4OwogICAgaGVpZ2h0OiAxMXB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgaG9yaXpvbnRhbC1hbGlnbjogY2VudGVyOwogICAgZmlsdGVyOiBub25lOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIFZBUklBTlQgLSBTSU1QTEUKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLnNsaWRlci5zaW1wbGUtc2xpZGVyIC5idXR0b24gewogICAgaGVpZ2h0OiAxMnB4OwogICAgd2lkdGg6IDEycHg7Cn0KCi5zbGlkZXIuc2ltcGxlLXNsaWRlciAucmFuZ2UtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTsKfQoK"},{ name : "haxeui-core/styles/default/windows.css", data : "LndpbmRvdy1tYW5hZ2VyLWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1hbHQ7CiAgICBjbGlwOiB0cnVlOwp9ICAgIAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBXSU5ET1dTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi53aW5kb3ctY29udGFpbmVyIHsKICAgIHBhZGRpbmc6IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7Cn0KCi53aW5kb3ctY29udGFpbmVyLndpbmRvdy1tYXhpbWl6ZWQgewogICAgcGFkZGluZzogMDsKfQoKLndpbmRvdyB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGZpbHRlcjogJGRpYWxvZy1zaGFkb3c7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBwYWRkaW5nOiAycHg7CiAgICBzcGFjaW5nOiAwcHg7Cn0KCi53aW5kb3cud2luZG93LWFjdGl2ZSB7CiAgICBmaWx0ZXI6ICRkaWFsb2ctc2hhZG93Owp9Cgoud2luZG93LndpbmRvdy1tYXhpbWl6ZWQgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogbm9uZTsKICAgIHBhZGRpbmc6IDBweDsKfQoKLndpbmRvdy1jb250ZW50IHsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBjbGlwOiB0cnVlOwp9Cgoubm8tcGFkZGluZyAud2luZG93LWNvbnRlbnQgewogICAgcGFkZGluZzogMHB4Owp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIFdJTkRPVyBUSVRMRQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoud2luZG93LXRpdGxlIHsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7Cn0KCi53aW5kb3cud2luZG93LWFjdGl2ZSAud2luZG93LXRpdGxlIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3ItbGlnaHRlcjsKfQoKLndpbmRvdy10aXRsZSAubGFiZWwgewogICAgd2lkdGg6IDEwMCU7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6ICRkaWFsb2ctdGl0bGUtY29sb3I7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7Cn0KCi53aW5kb3cud2luZG93LWFjdGl2ZSAud2luZG93LXRpdGxlIC5sYWJlbCB7CiAgICBjb2xvcjogJGFjY2VudC1jb2xvci1kYXJrZXI7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogV0lORE9XIEZPT1RFUgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoud2luZG93LWZvb3RlciB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7Cn0KICAgIAoud2luZG93LndpbmRvdy1hY3RpdmUgLndpbmRvdy1mb290ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvci1saWdodGVyOwp9CiAgICAKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBXSU5ET1cgQlVUVE9OUwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoud2luZG93ICN3aW5kb3dDbG9zZUJ1dHRvbiB7CiAgICByZXNvdXJjZTogJGNsb3NlOwogICAgdmVydGljYWwtYWxpZ246ICJjZW50ZXIiOwogICAgY3Vyc29yOiAicG9pbnRlciI7CiAgICBwb2ludGVyLWV2ZW50czogdHJ1ZTsKICAgIHBhZGRpbmc6IDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKfQoKLndpbmRvdyAjd2luZG93Q2xvc2VCdXR0b246aG92ZXIgewogICAgcmVzb3VyY2U6ICRjbG9zZS1ob3ZlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKfQoKLndpbmRvdyAjd2luZG93Q29sbGFwc2VCdXR0b24gewogICAgcmVzb3VyY2U6ICRjb2xsYXBzZTsKICAgIHZlcnRpY2FsLWFsaWduOiAiY2VudGVyIjsKICAgIGN1cnNvcjogInBvaW50ZXIiOwogICAgcG9pbnRlci1ldmVudHM6IHRydWU7CiAgICBwYWRkaW5nOiAzcHg7CiAgICBib3JkZXItcmFkaXVzOiAycHg7Cn0KCi53aW5kb3cgI3dpbmRvd0NvbGxhcHNlQnV0dG9uOmhvdmVyIHsKICAgIHJlc291cmNlOiAkY29sbGFwc2UtaG92ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3I7Cn0KCi53aW5kb3cgI3dpbmRvd01pbmltaXplQnV0dG9uIHsKICAgIHJlc291cmNlOiAkbWluaW1pemU7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7CiAgICBjdXJzb3I6ICJwb2ludGVyIjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwogICAgcGFkZGluZzogM3B4OwogICAgYm9yZGVyLXJhZGl1czogMnB4Owp9Cgoud2luZG93ICN3aW5kb3dNaW5pbWl6ZUJ1dHRvbjpob3ZlciB7CiAgICByZXNvdXJjZTogJG1pbmltaXplLWhvdmVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoud2luZG93ICN3aW5kb3dNYXhpbWl6ZUJ1dHRvbiB7CiAgICByZXNvdXJjZTogJG1heGltaXplOwogICAgdmVydGljYWwtYWxpZ246ICJjZW50ZXIiOwogICAgY3Vyc29yOiAicG9pbnRlciI7CiAgICBwb2ludGVyLWV2ZW50czogdHJ1ZTsKICAgIHBhZGRpbmc6IDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKfQoKLndpbmRvdyAjd2luZG93TWF4aW1pemVCdXR0b246aG92ZXIgewogICAgcmVzb3VyY2U6ICRtYXhpbWl6ZS1ob3ZlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKfQoKLndpbmRvdyAjd2luZG93TWF4aW1pemVCdXR0b24ucmVzdG9yZSB7CiAgICByZXNvdXJjZTogJHJlc3RvcmU7Cn0KCi53aW5kb3cgI3dpbmRvd01heGltaXplQnV0dG9uLnJlc3RvcmU6aG92ZXIgewogICAgcmVzb3VyY2U6ICRyZXN0b3JlLWhvdmVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIFdJTkRPVyBTSVpJTkcgR1JJUFBFUlMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLndpbmRvdy5zaXplLW53IHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWxlZnQtY29sb3I6ICRhY2NlbnQtY29sb3I7CiAgICBib3JkZXItdG9wLWNvbG9yOiAkYWNjZW50LWNvbG9yOwogICAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDsKICAgIGJvcmRlci10b3Atd2lkdGg6IDJweDsKfQoKLndpbmRvdy5zaXplLW4gewogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItdG9wLWNvbG9yOiAkYWNjZW50LWNvbG9yOwogICAgYm9yZGVyLXRvcC13aWR0aDogMnB4Owp9Cgoud2luZG93LnNpemUtbmUgewogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRhY2NlbnQtY29sb3I7CiAgICBib3JkZXItdG9wLWNvbG9yOiAkYWNjZW50LWNvbG9yOwogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7CiAgICBib3JkZXItdG9wLXdpZHRoOiAycHg7Cn0KCi53aW5kb3cuc2l6ZS13IHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWxlZnQtY29sb3I6ICRhY2NlbnQtY29sb3I7CiAgICBib3JkZXItbGVmdC13aWR0aDogMnB4Owp9Cgoud2luZG93LnNpemUtZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGFjY2VudC1jb2xvcjsKICAgIGJvcmRlci1yaWdodC13aWR0aDogMnB4Owp9Cgoud2luZG93LnNpemUtc3cgewogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItbGVmdC1jb2xvcjogJGFjY2VudC1jb2xvcjsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRhY2NlbnQtY29sb3I7CiAgICBib3JkZXItbGVmdC13aWR0aDogMnB4OwogICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4Owp9Cgoud2luZG93LnNpemUtcyB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRhY2NlbnQtY29sb3I7CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7Cn0KCi53aW5kb3cuc2l6ZS1zZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGFjY2VudC1jb2xvcjsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRhY2NlbnQtY29sb3I7CiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDJweDsKICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDsKfQoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogV0lORE9XIExJU1QKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLndpbmRvdy1saXN0IHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHBhZGRpbmctdG9wOiAxcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1hbHQ7CiAgICBjbGlwOiB0cnVlOwp9Cgoud2luZG93LWxpc3QgLmJ1dHRvbiB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAwcHg7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHBhZGRpbmc6IDdweCA4cHg7Cn0KCi53aW5kb3ctbGlzdCAuYnV0dG9uOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvci1saWdodGVyOwogICAgY29sb3I6ICRhY2NlbnQtY29sb3ItZGFya2VyOwp9Cgoud2luZG93LWxpc3QgLmljb24gewogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi53aW5kb3ctbGlzdCAud2luZG93LWxpc3QtY2xvc2UtYnV0dG9uIHsKICAgIHJlc291cmNlOiAkY2xvc2U7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7CiAgICBjdXJzb3I6ICJwb2ludGVyIjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwogICAgcGFkZGluZzogM3B4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgbWFyZ2luLXJpZ2h0OiAtM3B4Owp9Cgoud2luZG93LWxpc3QgLndpbmRvdy1saXN0LWNsb3NlLWJ1dHRvbjpob3ZlciB7CiAgICByZXNvdXJjZTogJGNsb3NlLWhvdmVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgo"},{ name : "haxeui-core/styles/shared/warning-large.png", data : "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAANZnpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja3ZlZlhu9DYXfuYosgSQ4LofjOdlBlp8PrJLc6sn+bb8kLbdKXWKRIHBxcUGb9Z9/b/MvfkIsyYSYS6opWX5CDdU3PhR7/bTz7mw47+dH7q/4++W+eX7huSU/RpZ0j3/cd88JrkvjU3wzURn3F/31ixru+cu7ifxtmVqkn+c9Ub0nEn994e4J2rUtm2rJb7fQ13Wdj52U69foWyivZn/4O+O9GVlHvF/ixPLuJVwGiP56I+180PfCQMer8SvnvdyT4ZDP/GTfWGXeR+X5yX1x/11QJF33DTdenZme10/vu/ju/j2hOS5+i5PxXPnlfsvuw3Yev3vPYvZe1+5aSLg03Zt6bOV8YmDH5XIeS7wyv5HP+bwqr2JA7yDk0w7beQ1XnScs2wU3XXPbrXMdbmBi8Mtnrt4PL+dekeyrHwKynQR9ue2zVJlSiOEgvMJd/7TFnXXrWW64wsLTMdI7JnNX+P3feX050d4KeedsefoKu7wmBWZo5PSdUQTE7QeO4nHw4/X+R+MqRDAeNxc22Gy/pujR3dhSHMkJtDAwcr1yzeV5T4CLWDtiDKgPziYn0SVns/fZOfxYiE9jokLS+E4IXIx+YqUPIongkDGszTPZnbE++us2nEUgoiTJhKZKI1YBYgM/ORQw1KLEEGNMMccSa2xJUkgxpZSTkl/LkkOOOeWcS665FSmhwI4ll2JKLa36KpBjrKnmWmqtrbFoY+bG040BrXXfpYcee+q5l157G8BnhBFHGnkUM+po00+Z8MRMM88y62zLLaC0woorrbzKqqttoLZlhx132nmXXXd7Rs2ZK6wfXr8eNfeImj+R0oH5GTUezfkxhVM6iRozIuaDI+JZIwCgvcbMFheCNxo6jZmtnqyIHiujBmc6jRgRDMv5uN0zdj8i9xI3E8Ifxc0/Imc0dH8jckZD90XkPsbtk6hNrTbDijkR0jRUp1oh/RiwSvOlaVH75av5pw/8H0+0eiZ/dolr9BFr22ODzu3NHCG7kFObSkwgNU0KgAXYmbiUmVvMe/gat1182Gs10sPavJPodUmORNabLXlIcmCl+9bm3NOu2mIJrcYkY7pZtsWgzld7udB2ybKZM8eoE/XdnV7Ndr1tCbtgrGOybevq2wLsEnomt6KPrQ1Qt0aL3EmZuTFkRRdgy2MHJhg1JBxDPOThW/SFeXvSDPLHkiC1/Nx55o/DxVKePZuFaWP6PGJvNgB9XmzRje7mhM2hkFUcORuDzBnIEXFtpYF/yRqX6u6x9e4Me9F/3a9Y1sq9UXlriC7umjzuXjVcy0NqowjalTCO4PF5b7g27ED92MtQnf1GPqTQNValzmnbmjgM7xXSlTlX6nG3imtdDtvFQKqS5MADRoAf+DdM93NcS64qYo+DUSr/+Gq+HyAJMG7FxdwuATZ/4SJtdeLwKXk4L9nejXLwLI49JPaw5rY782zuywmQyGgdvDXXtXk0rjJuOZsv0osbe8B8cRs795A6Vcq4BsU1KHXDqNOP7gOQQ8eikGpO1bt+3OYJOZS5mWV2KZt8WNUQ+d37lAZ9yuxYS+mWCCIevts2rPXca/WPJDibpYhcmzXXbicGnCwYBzL5zW6dLMBu+1wa6yhlqddIluojRrqT6+JMnC10y5KkoocVWlm9ovwiO97TQxW5NdADkz+AOhAmFLwcbS92DPBUVzYrSVys4GpnXx1MQBOZe7XNsfyIoGe23dEpBeA8toszxgtYzO+h5v11daOxJuQScVZalY0jmiPcd/hO3AV2qAJ/K2dVCATXjRpz73u4eOjNBQNEMo+iavVGiOMQHvW5t86EBJqSiBukZUs6sCCoHGWHfLEMxCirWG++4IetLotO4YmtkF2tDtLaU22tLlSxhWx1c/S0vCvb5OgotqAIWbAzBXTCoN6nWdVCNRXbg25lIQ53o/SqtYB7CKQRhR0KmzLkMoqwqb052ZsU5ZdI8eVqvhyAF3bxp2J4wR71pMzLk6gX8nJjZy6RnF6kiGhyhhWoBuCrzwuvYqsTSE7hCtxGk7qhuxwhptpX2oU9sLtwYpG6F7OK2Iuc6iZP87270ZE0gJX90kyit9SSuC8LUX4x1zaWaDXB2lqXEVhhIqbPAArocbGFhsdMq8C2jppIfvQU7PkOqG1JuU7Nf0xKrpJS02gR6MMOKN2Hea87r3XbzLUjgMZoeIhECRUqKCOVLtygbGQUkGdzQvg3Kc8DDPd7pBw6zI83ANGCL3IJeaSmE1c32qDaDrcONJr4oIhpOHhEczDHSodIH5hbQ9Fgy4U5mnM2W4CmwIcjUTPxvtYAwlNRnPBlMilrxUWHoiKuijQoX8eohZYYuM3pn2z526v5ZoCSIL1OhblpFtHNbGy8ZiWKhITHKclQMefM6yb55aU06fEm+aBJv5TkwcHZlDK8e6iNVLt/qA2jciOMq6zQZnUc/FQbGj/kUxmN8sy6fZceUm5ABk9n7Kj0tu0gz3RQtdMzMVYmSIpBCHAjhK2mLOoJwurbQU2Kg71I8qlBpltoKH5GotgOFib7na0UtDdEx1Y2kn13mEcBSWdxIqZVX9Kw2gls5QqtSmCAbseArn2hCycS5QSkd0D99ZqOxDt4JtiaCvRNZfqEBY3wqq2xiSBgejXYSD3BbPBy4kUDQ8tgT+giE6nepEL5jtt7oAoqD/zgqBw3WYSqPbEjdGPSpL8NXS2BzLGD5omOa/yI3PAZTsyXrvWZdUjVZJwGRrkzta7nRtB7Uj5VmqMcK3eQZBQ+8TVrtNNRVkIHg9YNvSJxMurQ+Is2Vh1Ix99VgCSZUeV1lyMQRlF4oXjkN9lmpV9maim4KV7ViBYRSj2N4mpGpW0+MrBuMp+sS5S0mvDX5XvcUh6eTxZIWiiilb5X7+UHe5lJudGyQEgR+1vk8J1v0B0966GLNQ4/3ricyWIBcUMjlL1S6uhyb42KmgAxLIuJy6eKtMgJ8C6QmC7ao990yMRDsxHpeNgMBO8mdsx1lsEiEDXGEatU1iRhVF3tagwUoTXlhdduwNGA5pv6SJj12DSyBsm6nT01pc2LCuxdUpBn/JtRZRvtsCWlqXjUlNPv6Nr4cIpKhWjC8MjwpAWeBLyqu6D6VPzadGkYGBEl/L0mMZ8o2ayMsVzsa7u86L/h6JaHStnwkLKL2hG1h48AHPSQa6plVdjgEZ7PbBvPpExYolU5G59ytiOEEyUzRsgTJbpimCcVHWxt0DtCXPAvqnHf1UG0OrAwCpbowrSlO9p9NCwViGbe0YodDkPwhNUkXa0o1CPzg+gX1wceQ+7CWJuo02+KhqYpUpZWOnTY1lrWUi6mFIC6FRto572C8hH0xTxZy1cc5aB0U6OtTKcMV9ByPhWvTd/ZA+jftKI3Z3U4C968sMx6lQoO45EUMN2o1wMseMaLinjGr+d4ow8oyRF2vFSiXk7MKSH9g0iiqC4whSag0aDyQWl+pJEiYrScslif7UmxZZGxp6hqesgIRBINsK02HZQYqBgo+ECLgbTTw1sfs7HQxRxWGzP1hOsWCWuVB2VJKJMq4zouO1F9U/MR9jyXEIowIg0NJTsejaIJyI6pVLSb9Wa7SQswfq2vNdqN/Y2+1mhj+8t97afm0HhVO0zCuVAQZC+xSFMSzXo0poelmX2hCW0i1x0AomeZ4Nth/9KzLVtrmCFntCHI7nQIwAw8kgI1lRVwo23OdrjZ4lTdKARTEJK0RT7YQWOADoudZG1KlhaoGSJJEI7DsPPzHfykUz+NuvkLnfpp1M1PO/VfbLQNLPxXGm1DHforjbah0/6HjfaHvVPe3DAUVFjGHbmyYn7oM9quZKenn6GwkVAq8YVvkDzaWtI+oPgYsemTSVQbKJCR5+qE3maBEDYbKbUF35IwTlC1sM2kAehUXPZOqQsYvE5vTUn2BHClbGIXizqoV3MiC1mHvkSfBj2ao8u5yuqg35ywLp6jqGES1kYWAfT0FLCGWZO+i0HLNTiygxNokr2ryBU2Q4defBZcsSGjumMqCmc+nMLr0PdI/nQdjUHZxPlrZ35xivFyiGH+4BTj5RDD/MEpxsshhvmDU4yX/ZvV130SQJ1a7bdlpPluQD1Ce9zKL69ekBJftlnuaAiLb1GCVETV+Ss2PYVXVtO/qVhHdj2H3AMQYmcITxeztNtU4nF0FshLt8ZeWzrrb+0aeaxEOhVt1mhH6ZfIIxRcOEvSaZ6JCk3NNeZ1BN+Tu+yOKEaq3k7QbSGIq58NPK2rT+vMW/OuHTxGfLrFY354azy0vmcSM09rrs1Jvg6qR9eD6q6tyjkZog/eH77Wc+zLb6C76YG3ufYYkZoy6SuQBXD00EMmGHa1+1xdO5XTdKGqrnP1qkn9ZoA5I67vl5yznaCHD02R32Wzyx9eV6d+5VNTfhaVb73+hE01P8dN/RQ37/1u3jj++u+Bb936id/vsJgTl/P/DCz1qc9VNr/z+tOnPzxuvojJ917/xKvmI9h/D+vmZy79Vaybj2B/i3Va/8+wbreeKb14zfwUijc/5rD8d/3RXzr0/Z+ZCK/tWSH0/wJbsY++8g8MMwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQcriDhkqE4WREUEF6liESyUtkKrDiaXfkGThiTFxVFwLTj4sVh1cHHW1cFVEAQ/QBydnBRdpMT/JYUWMR4c9+PdvcfdO0Col5lqdowDqmYZyVhUzGRXxcArBAQwgFl0SczU46nFNDzH1z18fL2L8Czvc3+OXiVnMsAnEs8x3bCIN4inNy2d8z5xiBUlhficeMygCxI/cl12+Y1zwWGBZ4aMdHKeOEQsFtpYbmNWNFTiKeKwomqUL2RcVjhvcVbLVda8J39hMKetpLhOcxgxLCGOBETIqKKEMixEaNVIMZGk/aiHf8jxJ8glk6sERo4FVKBCcvzgf/C7WzM/OeEmBaNA54ttf4wAgV2gUbPt72PbbpwA/mfgSmv5K3Vg5pP0WksLHwF928DFdUuT94DLHWDwSZcMyZH8NIV8Hng/o2/KAv23QM+a21tzH6cPQJq6Wr4BDg6B0QJlr3u8u7u9t3/PNPv7AXylcqvSRSQ9AAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDoxY2JiZjhkYS1iMzk4LTQ2MmItODllZS03YjA2ZTVmZjc5ODIiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OGMxNWEwOGItNTVlYS00ZjVlLWI3YzktNThiMTYyZWU2Y2I5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YmYxMjk3ZWItYjQ3My00MGI3LWIyZmItNmJmOWZjOWIyMzgzIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQzMTUxOTg4MzU2NDEiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplYzBmNzFmZC1lY2RkLTQzZmUtODg2ZS1jY2E2ZWE3NzIxYjQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMDhUMTE6MTM6MTgiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+r+VeFwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+YCCAoNEvg9o2MAAAI2SURBVGje7Zg/SxxBHIafWW9375RwnCIpNVhYpEuQQCDoETAiKUMqv0CaBPI5AoHYxI9gYxMJpIoKudQWtqm0EIMWh8F4Ziddsllvd2ZnZnGPzFst92f3985788zLgZeXl5fX/yxR1Y3lTjyH4CkAifgguhffqnhOUMnwPVoI8QzoAB0C+Vx+vjU+MgYYxI9BtlKvNBm77I6EAbkXTQP3rr/Bfbkb3a5/AlKs5Nw3ALFSawNyN54H5go+ckfuxPO1NCAPGAOWNZ74RH6kUb8EvscPgCm1UyYZjxdqZUD2aIF4VOL0WXSFVTcJXMemSs6wan0Sy71oGileZBfj1Zu7nPVDAKbaA96+Psh+NQG5IRYvj282gRxsho3kz3UUJlSFVSsDRdiMQjnUjGusGhtQYTO96mkzrrFqnoACm2Hj79BRfgLWWDUyoIPNfxNIKsOqWQIa2EwPHaoMWGC1tIHctpk1kKZQQ2rc2Kytlk8gv22a7QFLrJYyoNE2zfaABVa1DWi3TbM9YIxV/QR02+aQoUOdPWCIVa0uJHu0GDRflixsNrogid6Jbv+HmwTKt01baWNVaUAXm1kdnTR5vzXDxtYMRydNg9NSD6vqBDSxmdX65iy9/Q5f9jusb84anlFqrAausJlV/zwcel1SSqwGrrCZ1drqIe2JK9oTV6ytHtr05UKsioLVf2hjwO1/TXwSSz+/lv0JLVAXBfmzBIy4goLYthGc3viEglN+iW28vLy8vLyG6DeNja+iTRf7RwAAAABJRU5ErkJggg"},{ name : "haxeui-core/locale/en/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLyVtLyVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9Lgpmb3JtYXRzLnRob3VzYW5kcy5zZXBhcmF0b3I9LAoKZm9ybWF0cy5zdWZmaXhlcy5udW1iZXJzLms9Swpmb3JtYXRzLnN1ZmZpeGVzLm51bWJlcnMubT1NCmZvcm1hdHMuc3VmZml4ZXMubnVtYmVycy5iPUIKCg"},{ name : "haxeui-core/styles/default/accordion.css", data : "LmFjY29yZGlvbiB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHNwYWNpbmc6IDA7CiAgICBwYWRkaW5nOiAxcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMHB4Owp9CgouYWNjb3JkaW9uLWJ1dHRvbiB7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgYm9yZGVyOiAwcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICB3aWR0aDogMTAwJTsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBpY29uOiAkYXJyb3ctcmlnaHQtc3F1YXJlOwogICAgaWNvbi1wb3NpdGlvbjogbGVmdDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICBwYWRkaW5nOiA2cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLmFjY29yZGlvbi1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItaG92ZXI7Cn0KCi5hY2NvcmRpb24tYnV0dG9uOmRvd24gewogICAgaWNvbjogJGFycm93LWRvd24tc3F1YXJlOwp9CgouYWNjb3JkaW9uLXBhZ2UgewogICAgd2lkdGg6IDEwMCU7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICBvcGFjaXR5OiAxOwogICAgcGFkZGluZzogNXB4Owp9CgouYWNjb3JkaW9uLXBhZ2U6ZXhwYW5kZWQgewogICAgYW5pbWF0aW9uOiBhY2NvcmRpb25BbmltYXRlRXhwYW5kIDAuM3MgZWFzZSAwcyAxOwp9CgouYWNjb3JkaW9uLXBhZ2U6Y29sbGFwc2VkIHsKICAgIGFuaW1hdGlvbjogYWNjb3JkaW9uQW5pbWF0ZUNvbGxwYXNlIDAuM3MgZWFzZSAwcyAxOwp9CgpAa2V5ZnJhbWVzIGFjY29yZGlvbkFuaW1hdGVFeHBhbmQgewogICAgMCUgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgaGVpZ2h0OiAwJTsKICAgIH0KICAgIDEwMCUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQp9CgpAa2V5ZnJhbWVzIGFjY29yZGlvbkFuaW1hdGVDb2xscGFzZSB7CiAgICAwJSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CiAgICAxMDAlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGhlaWdodDogMCU7CiAgICB9Cn0KCi5hY2NvcmRpb24tcGFnZSAuc2Nyb2xsdmlldyB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBwYWRkaW5nLWJvdHRvbTogMDsKfQo"},{ name : "haxeui-core/locale/fr/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "__ASSET__:bitmap_flixel_input_mouse__FlxMouse_GraphicCursor", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQWdDQVlBQUFBSVhyZzRBQUFCcFVsRVFWUjQyclRSQTVLRFFSQUY0QnhnYmR1MjdUM0RvckMyelR1dGJkdTJiYU5qZFp4TVh0VXJ6WFIvUHlqYUpzYU5GQ1dHRGdCNUJBSGtFUVJvR1JzaGhEQ2dZV2lJRVNVQVJvemxDQ0VJcEJlVVFtQkVCRUVFQWNXMXpUQzlzQW8rSWNFRUVRVDBUU3pCNmZrNWVBVUdFa0lRMERvd0F5ZVh0M0J5ZWdydS9uNWtFQXdNejZ3QlBmc0hCK0RpNDQwUUFnQzlkdy9QREdSbmR4Y2NQVDBRUWdDWVdka0JkamEzdDhETzNVMStCQVBzdnJ4OUFEdHJHeHRnNCtLTUVjV0E1YTFENE0zaThoSllPanBnUkg2Z1kzZ092cjUvK0pDNWhRWFpFUXp3ZHZ2Z0RIQW1wcWZBMk1ZYUkvSUIzV01MOFB2M0J6aGpFeFBTSXhqQVBUcS9CbUVaR0I0Q1Ewc0xqTWdPREU2dmdLaDA5L1pLUUNRQXlSbDU0T1lmQkNFeHNSQ1ZtQ2kwN0orT0VZbEFhbVlCcU9ycU1hcHBhSWlXU0d5aldDQ3pxSkt4V0UxUEQ3U01qR1JiamhFTUZGUTFNSmFyNnh1d0wvYlI2aTFucVdORHNhQzBvUTA5U0xZRE1TZFY2Z05iVncrZ3dWTElsZjlHa0F1b1ZhTUJzUVJ5K0swR0dVN2xoaGVtNGJTd1lDa1FNOU9xNlRnZlpqZ3RMSmhKeThidlpBWWFBZ0JJUDV2ZHJxV1ZzQUFBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorRotate", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtBUUFBQUFDbFNmSVFBQUFBQW5SU1RsTUFBSGFUelRnQUFBQUpjRWhaY3dBQUFFNEFBQUJPQWJITkh6TUFBQUFrU1VSQlZIamFZNUJoWUZCaVlIQmtZR2hrWUdnL3dORGNBR0k0TURBb01EQklNQUFBUWFVRVJPeHd0ZEFBQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "haxeui-core/styles/default/tableview.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBIRUFERVIKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmhlYWRlciB7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIHNwYWNpbmc6IDA7Cn0KCi5oZWFkZXIgLmNvbHVtbiB7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgaWNvbi1wb3NpdGlvbjogZmFyLXJpZ2h0OwogICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgcGFkZGluZzogNnB4OwogICAgYm9yZGVyLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLmhlYWRlciAuY29sdW1uLmxhc3QgewogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOwp9CgovKgouaGVhZGVyLnNjcm9sbGluZyAuY29sdW1uLmxhc3QgewogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7Cn0KKi8KCi5jb2x1bW4uc29ydGFibGUgewogICAgaWNvbjogJGFycm93LXVwLWRvd247CiAgICBpY29uLXBvc2l0aW9uOiBmYXItcmlnaHQ7Cn0KCi5jb2x1bW4uc29ydC1hc2MgewogICAgaWNvbjogJHNvcnQtYXNjOwp9CgouY29sdW1uLnNvcnQtZGVzYyB7CiAgICBpY29uOiAkc29ydC1kZXNjOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIFRBQkxFVklFVwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoudGFibGV2aWV3IHsKICAgIHNwYWNpbmc6IDA7Cn0KCi50YWJsZXZpZXcgLnRhYmxldmlldy1jb250ZW50cyB7CiAgICBzcGFjaW5nOiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBwYWRkaW5nOiAwcHg7Cn0KCi50YWJsZXZpZXcgLmV2ZW4gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi50YWJsZXZpZXcgLm9kZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1hbHQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi50YWJsZXZpZXcgLmNvbXBvdW5kaXRlbXJlbmRlcmVyIHsKICAgIHNwYWNpbmc6IDFweDsKfQoKLnRhYmxldmlldyAuY29tcG91bmRpdGVtcmVuZGVyZXIgPiAuaXRlbXJlbmRlcmVyIHsKICAgIGhlaWdodDogYXV0bzsKICAgIHBhZGRpbmc6IDZweDsKfQoKLnRhYmxldmlldyAuZXZlbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI7Cn0KCi50YWJsZXZpZXcgLm9kZDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI7Cn0KCi50YWJsZXZpZXcgLmNvbXBvdW5kaXRlbXJlbmRlcmVyIC5sYWJlbCB7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwp9CgoudGFibGV2aWV3OmRpc2FibGVkIC5sYWJlbCB7CiAgICBjb2xvcjogJGRpc2FibGVkLXRleHQtY29sb3I7Cn0KCi50YWJsZXZpZXcgLmNvbXBvdW5kaXRlbXJlbmRlcmVyOnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKICAgIGNvbG9yOiAkc2VsZWN0aW9uLXRleHQtY29sb3I7Cn0KCi50YWJsZXZpZXcgLmNvbXBvdW5kaXRlbXJlbmRlcmVyOnNlbGVjdGVkIC5sYWJlbCB7CiAgICBjb2xvcjogJHNlbGVjdGlvbi10ZXh0LWNvbG9yOwp9Cg"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicConsole", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUxVbEVRVlI0Mm1NZ0hmeFgrbi9tdnpFMmliVC83LzZ2d3E1bkZWQXFEYnVlL3dnSlROV1labU82aEd3QUFGcUVJUEdTK3gwekFBQUFBRWxGVGtTdVFtQ0M"},{ name : "haxeui-core/styles/default/textinputs.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBURVhUIEZJRUxECioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi50ZXh0ZmllbGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKICAgIGluaXRpYWwtd2lkdGg6IDE1MHB4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgc3BhY2luZzogNXB4OwogICAgaWNvbi1wb3NpdGlvbjogcmlnaHQ7CiAgICBjb250ZW50LXR5cGU6IGF1dG87Cn0KCi50ZXh0ZmllbGQucmVxdWlyZWQtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm5pbmctYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGJvcmRlci1jb2xvcjogJHdhcm5pbmctYm9yZGVyLWNvbG9yOwp9CgoudGV4dGZpZWxkLmludmFsaWQtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGVycm9yLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICRlcnJvci1ib3JkZXItY29sb3I7Cn0KCi50ZXh0ZmllbGQudmFsaWQtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHN1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGJvcmRlci1jb2xvcjogJHN1Y2Nlc3MtYm9yZGVyLWNvbG9yOwp9CgoudGV4dGZpZWxkOmFjdGl2ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9CgoudGV4dGZpZWxkOmVtcHR5IHsKICAgIGNvbG9yOiAkbGlnaHRlci10ZXh0LWNvbG9yOwp9CgoudGV4dGZpZWxkLm5vLWJvcmRlciB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi50ZXh0ZmllbGQ6ZGlzYWJsZWQgewogICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtYm9yZGVyLWNvbG9yOwogICAgY29sb3I6ICRkaXNhYmxlZC10ZXh0LWNvbG9yOwp9CgoudGV4dGZpZWxkIC5kZWNvcmF0b3IgewogICAgcGFkZGluZzogMHB4IDhweDsKICAgIGJhY2tncm91bmQ6ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1zdGFydCAkbm9ybWFsLWJhY2tncm91bmQtY29sb3ItZW5kIHZlcnRpY2FsOwogICAgYm9yZGVyLXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4OwogICAgYm9yZGVyLWxlZnQ6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBpbmNsdWRlLWluLWxheW91dDogZmFsc2U7Cn0KCi50ZXh0ZmllbGQgLmRlY29yYXRvciAuaW1hZ2UgewogICAgdmVydGljYWwtYWxpZ246Y2VudGVyOwogICAgbWFyZ2luLXRvcDogLTFweDsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBURVhUIEFSRUEKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLnRleHRhcmVhIHsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIHBhZGRpbmc6IDJweCA1cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNHB4OwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1iYWNrZ3JvdW5kLWNvbG9yOwogICAgaW5pdGlhbC13aWR0aDogMTUwcHg7CiAgICBpbml0aWFsLWhlaWdodDogMTAwcHg7CiAgICBjb250ZW50LXR5cGU6IGF1dG87CiAgICBpY29uLXBvc2l0aW9uOiByaWdodDsKICAgIHNwYWNpbmc6IDVweDsKfQoKLnRleHRhcmVhLnJlcXVpcmVkLXZhbHVlIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICR3YXJuaW5nLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICR3YXJuaW5nLWJvcmRlci1jb2xvcjsKfQoKLnRleHRhcmVhLmludmFsaWQtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGVycm9yLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICRlcnJvci1ib3JkZXItY29sb3I7Cn0KCi50ZXh0YXJlYS52YWxpZC12YWx1ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3VjY2Vzcy1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0OwogICAgYm9yZGVyLWNvbG9yOiAkc3VjY2Vzcy1ib3JkZXItY29sb3I7Cn0KCi50ZXh0YXJlYTphY3RpdmUgewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLnRleHRhcmVhOmVtcHR5IHsKICAgIGNvbG9yOiAkbGlnaHRlci10ZXh0LWNvbG9yOwp9CgoudGV4dGFyZWE6ZGlzYWJsZWQgewogICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtYm9yZGVyLWNvbG9yOwogICAgY29sb3I6ICRkaXNhYmxlZC10ZXh0LWNvbG9yOwp9CgoudGV4dGFyZWEgLmRlY29yYXRvciB7CiAgICBwYWRkaW5nOiAwcHggOHB4OwogICAgYmFja2dyb3VuZDogJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7CiAgICBib3JkZXItcmFkaXVzOiAkbm9ybWFsLWJvcmRlci1yYWRpdXM7CiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7CiAgICBib3JkZXItbGVmdDogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGluY2x1ZGUtaW4tbGF5b3V0OiBmYWxzZTsKfQoKLnRleHRhcmVhIC5kZWNvcmF0b3IgLmltYWdlIHsKICAgIHZlcnRpY2FsLWFsaWduOmNlbnRlcjsKICAgIG1hcmdpbi10b3A6IC0xcHg7Cn0KCi50ZXh0YXJlYS5uby1ib3JkZXIgewogICAgYm9yZGVyOiBub25lOwogICAgZmlsdGVyOiBub25lOwp9"},{ name : "haxeui-core/styles/default/steppers.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBVTkFUVEFDSEVEIFNURVBQRVIKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLnN0ZXBwZXIgewogICAgc3BhY2luZzogMDsKfQoKLnN0ZXBwZXItYnV0dG9uIHsKICAgIHBhZGRpbmc6IDNweDsKICAgIHBhZGRpbmctdG9wOiA0cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNHB4OwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgb3BhY2l0eTogMTsKfQoKLnN0ZXBwZXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwp9Cgouc3RlcHBlci1idXR0b246ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1kb3duOwp9Cgouc3RlcHBlci1idXR0b246ZGlzYWJsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7Cn0KCi5zdGVwcGVyLWluYyB7CiAgICBpY29uOiAkYXJyb3ctdXA7Cn0KCi5zdGVwcGVyLWRlaW5jIHsKICAgIGljb246ICRhcnJvdy1kb3duOwp9Cgouc3RlcHBlci1pbmM6ZG93biB7CiAgICBpY29uOiAkYXJyb3ctdXA7Cn0KCi5zdGVwcGVyLWRlaW5jOmRvd24gewogICAgaWNvbjogJGFycm93LWRvd247Cn0KCi5zdGVwcGVyLXN0ZXAgLnN0ZXBwZXItaW5jLCAuc3RlcHBlci1zdGVwIC5zdGVwcGVyLWRlaW5jIHsKICAgIGhlaWdodDogNTAlOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIE5VTUJFUiBTVEVQUEVSIC0gU1RBTkRBUkQgTEFZT1VUCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5udW1iZXItc3RlcHBlciB7CiAgICBwYWRkaW5nOiAwcHg7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBpbml0aWFsLXdpZHRoOiA4MHB4OwogICAgYm9yZGVyOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1iYWNrZ3JvdW5kLWNvbG9yOwp9CgoubnVtYmVyLXN0ZXBwZXIgLnN0ZXBwZXItdmFsdWUgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTsKICAgIGZpbHRlcjogbm9uZTsKICAgIG1hcmdpbi10b3A6IDBweDsKfQoKLm51bWJlci1zdGVwcGVyIC5zdGVwcGVyLWRlaW5jIHsKICAgIGljb246ICRhcnJvdy1sZWZ0OwogICAgcGFkZGluZy1sZWZ0OiA0cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Nyb2xsYmFyLWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgb3BhY2l0eTogMTsKfQoKLm51bWJlci1zdGVwcGVyIC5zdGVwcGVyLWRlaW5jOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYmFja2dyb3VuZC1jb2xvcjsKfQoKLm51bWJlci1zdGVwcGVyIC5zdGVwcGVyLWRlaW5jOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1idXR0b24tY29sb3I7CiAgICBpY29uOiAkYXJyb3ctbGVmdDsKfQoKLm51bWJlci1zdGVwcGVyIC5zdGVwcGVyLWRlaW5jOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYmFja2dyb3VuZC1jb2xvcjsKfQoKLm51bWJlci1zdGVwcGVyIC5zdGVwcGVyLWluYyB7CiAgICBpY29uOiAkYXJyb3ctcmlnaHQ7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIHBhZGRpbmctcmlnaHQ6IDRweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBvcGFjaXR5OiAxOwp9CgoubnVtYmVyLXN0ZXBwZXIgLnN0ZXBwZXItaW5jOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYmFja2dyb3VuZC1jb2xvcjsKfQoKLm51bWJlci1zdGVwcGVyIC5zdGVwcGVyLWluYzpkb3duIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYnV0dG9uLWNvbG9yOwogICAgaWNvbjogJGFycm93LXJpZ2h0Owp9CgoubnVtYmVyLXN0ZXBwZXIgLnN0ZXBwZXItaW5jOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYmFja2dyb3VuZC1jb2xvcjsKfQoKLm51bWJlci1zdGVwcGVyLnJlcXVpcmVkLXZhbHVlIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICR3YXJuaW5nLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICR3YXJuaW5nLWJvcmRlci1jb2xvcjsKfQoKLm51bWJlci1zdGVwcGVyLmludmFsaWQtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGVycm9yLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICRlcnJvci1ib3JkZXItY29sb3I7Cn0KCi5udW1iZXItc3RlcHBlci52YWxpZC12YWx1ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3VjY2Vzcy1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0OwogICAgYm9yZGVyLWNvbG9yOiAkc3VjY2Vzcy1ib3JkZXItY29sb3I7Cn0KCi5udW1iZXItc3RlcHBlcjphY3RpdmUgewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBOVU1CRVIgU1RFUFBFUiAtIENMQVNTSUMgTEFZT1VUCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5udW1iZXItc3RlcHBlci5jbGFzc2ljLXN0ZXBwZXIgewogICAgbGF5b3V0OiBjbGFzc2ljOwp9CgoubnVtYmVyLXN0ZXBwZXIuY2xhc3NpYy1zdGVwcGVyIC5zdGVwcGVyLWRlaW5jIHsKICAgIGljb246ICRhcnJvdy1kb3duOwp9CgoubnVtYmVyLXN0ZXBwZXIuY2xhc3NpYy1zdGVwcGVyIC5zdGVwcGVyLWluYyB7CiAgICBpY29uOiAkYXJyb3ctdXA7Cn0KCi5udW1iZXItc3RlcHBlci5jbGFzc2ljLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmM6ZG93biB7CiAgICBpY29uOiAkYXJyb3ctZG93bjsKfQoKLm51bWJlci1zdGVwcGVyLmNsYXNzaWMtc3RlcHBlciAuc3RlcHBlci1pbmM6ZG93biB7CiAgICBpY29uOiAkYXJyb3ctdXA7Cn0KCi5udW1iZXItc3RlcHBlci5jbGFzc2ljLXN0ZXBwZXIgLnN0ZXBwZXItdmFsdWUgewogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIG1hcmdpbi10b3A6IDBweDsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBPUFRJT04gU1RFUFBFUgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoub3B0aW9uLXN0ZXBwZXIgewogICAgcGFkZGluZzogMHB4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgaW5pdGlhbC13aWR0aDogMTAwcHg7CiAgICBib3JkZXI6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiAkbm9ybWFsLWJvcmRlci1yYWRpdXM7CiAgICBmaWx0ZXI6ICRub3JtYWwtaW5uZXItc2hhZG93OwogICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWJhY2tncm91bmQtY29sb3I7Cn0KCi5vcHRpb24tc3RlcHBlciAuc3RlcHBlci12YWx1ZSB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lOwogICAgZmlsdGVyOiBub25lOwogICAgbWFyZ2luLXRvcDogMHB4OwogICAgcGFkZGluZzogNnB4Owp9Cgoub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmMgewogICAgaWNvbjogJGFycm93LWxlZnQ7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIHBhZGRpbmctcmlnaHQ6IDRweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBvcGFjaXR5OiAxOwp9Cgoub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmM6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmM6ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Nyb2xsYmFyLWJ1dHRvbi1jb2xvcjsKICAgIGljb246ICRhcnJvdy1sZWZ0Owp9Cgoub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmM6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC41OwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItaW5jIHsKICAgIGljb246ICRhcnJvdy1yaWdodDsKICAgIHBhZGRpbmctbGVmdDogNHB4OwogICAgcGFkZGluZy1yaWdodDogNHB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1iYWNrZ3JvdW5kLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIG9wYWNpdHk6IDE7Cn0KCi5vcHRpb24tc3RlcHBlciAuc3RlcHBlci1pbmM6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItaW5jOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1idXR0b24tY29sb3I7CiAgICBpY29uOiAkYXJyb3ctcmlnaHQ7Cn0KCi5vcHRpb24tc3RlcHBlciAuc3RlcHBlci1pbmM6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC41OwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgoub3B0aW9uLXN0ZXBwZXIucmVxdWlyZWQtdmFsdWUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm5pbmctYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGJvcmRlci1jb2xvcjogJHdhcm5pbmctYm9yZGVyLWNvbG9yOwp9Cgoub3B0aW9uLXN0ZXBwZXIuaW52YWxpZC12YWx1ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXJyb3ItYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGJvcmRlci1jb2xvcjogJGVycm9yLWJvcmRlci1jb2xvcjsKfQoKLm9wdGlvbi1zdGVwcGVyLnZhbGlkLXZhbHVlIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWNjZXNzLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBib3JkZXItY29sb3I6ICRzdWNjZXNzLWJvcmRlci1jb2xvcjsKfQoKLm9wdGlvbi1zdGVwcGVyOmFjdGl2ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9Cg"},{ name : "haxeui-core/styles/shared/left-square-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADqXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VZZliMpDPznFHMEJAESxyFZ3psb9PEnIJeyXa7umi53fXVig1CSkogQi+s//h3uHzzso3chqqWckscTcshcIJjfn7Jq8mHVR8efwp3eXS8YKkEre9fSMf7Uk7+zRAVSvDFk9Xix3b/I4bBvD4YORzIjYgjtMJQPQ8L7CzoMlH1aPmXT2ylsfW/bORPb/25W48RE9+axHxTotQg/wtyFxKNmCXsAMv/spEBQ1CwJAzEIskhetR6RAJBnOPmbqNwjK5dEH+gfSJG06x0U92Cmq32qp/gcfLcgvvEs9fJ8p69vLu5AXhiPZm6Mvs+uhARI0zGpcypLwsANkMv6LKEo/hGyrpJRzCF7KyhvcLmhVMrEQHxQoEaFBvXVVqoIMXBnRctcWZbORDlzFe/AU5iFBiu4amLgr4JegZavWGj5zctdJYPjRhjJBGO008+vKR8aGmOmPJG3CyvExXNRIIzJ3KwxCoTQOPMoLoDP8vhMXgUMxgWzYYLFb7uJLdKRWzOPZBEtGBjR7muNtB0GABF8RwRDAgZ8IomUyCuzEgFHAz8FhgyLhjdQQDFyQ5QcBKtF2Xj6xjdKayxH3tXYs0BElISlZXMxgauAjQ35o8GQQyVKDDHGFDVazLEkSSHFlJKmufkVFQ0aNamqadZiYsGiJVMzZ9lK5izYHGNOWbPlnEuB0wLLBV8XDChl4022sMUtbbrZlrdSkT411FhT1Wqu5loaN2nYJ1pq2qzlVjp1pFIPPfbUtVvPvQyk2pARRhxp6LCRR7lYI7fT+q58njU6WePF1ByoF2v4VPU0QXM7iZMzMMaBwLhOBpDQPDnzRiGwm9RNznxmrIrIiDJOchpNxsBg6MRx0MXdG3N3vLkQvsQbn8y5Sd0rmHOTug+Ye8/bE9ZaWbueuMXQXIYTVC9YfhjQrbCVeah9unX/94O/hr7L0ECyLxGCVJGuZfZ46+ps6CsCYvcbgRydMCPKV0R1pPrHI0IA5S2S4Jf37HESBPywn0ltU4xDutMtLXWcl7UvtO7JC5xE2xIh5M5HB0fjisiu9hai6l4Ekbl7SPoBCa5JgX5JZu4HmXmIw23jIeLfa93tlE2PKRvuR7h6/dzAHUTDvQii4n6Vx+HM4/fk1iE7uRVouWZHevmvte7DATRw49jzNjCOGnrIpnuIcIq8BiLc2F6x9L83ok/sjnNzdC8K6K+h7zCEi012/wGpjcqgKzcemgAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6VFKg4WkeKQoepiQVTEUapYBAulrdCqg8mlH0KThiTFxVFwLTj4sVh1cHHW1cFVEAQ/QBydnBRdpMT/JYUWMR4c9+PdvcfdO0BoVJhqdo0DqmYZ6URczOVXxMArAoggiFEMSMzUk5mFLDzH1z18fL2L8Szvc3+OXqVgMsAnEs8y3bCI14mnNy2d8z5xmJUlhficeMygCxI/cl12+Y1zyWGBZ4aNbHqOOEwsljpY7mBWNlTiKeKoomqUL+RcVjhvcVYrNda6J39hqKAtZ7hOcwgJLCKJFETIqGEDFViI0aqRYiJN+3EPf8Txp8glk2sDjBzzqEKF5PjB/+B3t2ZxcsJNCsWB7hfb/hgGArtAs27b38e23TwB/M/Aldb2VxvAzCfp9bYWPQL6toGL67Ym7wGXO8Dgky4ZkiP5aQrFIvB+Rt+UB/pvgZ5Vt7fWPk4fgCx1tXQDHBwCIyXKXvN4d7Czt3/PtPr7AY5OcrLdt8TMAAAN92lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDoxMGUxMWRlMi0wNTI1LTQwM2ItOTZhYi1jODYxZDZmMTlhMGEiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Yzc0ZjNmMmQtNjZhMS00MmFjLWEwYzktODgwYzdmNDkzMjU5IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MmM0NTNkMzQtNmI5Mi00NDJjLTlhY2ItMTgyNWYyNzQ0NjFhIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NTg4MjQ3Nzg5MDA2ODkiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiM2YwMzU2NS0xNWQzLTQ4MGEtOGUxYi1kMmZlZTM3NDZmMmMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTFUMTM6MjU6MjkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGNkOTA2MjMtOTYzMi00OGY2LWI3NjYtMzk3NTE1NTY5Nzg2IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA3LTI2VDEwOjM5OjM4Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PpOuRqEAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmBxoIJyaHll/0AAAAgklEQVQ4y2NgGBkgqu+YMi45JiI0GzMyMhwly4CY/uOejIwMBxkYGMRJNiC671jUf4b/GxgYGLjxWYLVgNgJx8sZGBmWMDAwsBHyIhOlAYzVgMUFlp0M/xliGBgYfpHtgqVFVssYGRgDGBgYvpLthSWFltv//2ewZ2BgeEmzhDQMAADp6x1bXTBTSgAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/collapsed-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5AoNCwocG2BobAAAAHlJREFUOMtjYBi+YP36bcrEqGPCLfP36Pr1W4zJN4CBQZyB6f/B9Zs2eZJrAAMDAwM3w3/GDRs2bI4i1wAGBgYGtv+MDEs2bNpSTq4BeAELEWp+Mf5nSAzw91lGjgFfGRj/hwb4+20nxwUvGf4xegcG+p6laUIaBgAAk1kg6zuyVSkAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/maximize-button-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAABLSURBVChTY/z//z8DKYBx/YnH5168/24I5eMFEoKc55mIVQwCYLXTt98i2k0gtUxQNtFgRGpgXHPs0fHXH39YQPl4ASjiSEwaDAwA374gqW1irpsAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicInteractive", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQVNVbEVRVlI0Mm1OQUJmOWpRQ1NHNFA4R2hBUkMwUGYvVHlDTVFSYzhBeEtHNlVBSVBnTmlYd0tDYWFpQ01PSDkvLy9EQlJIZzBuK3doQythMCtML2d5WFNVRjI3bVFFTEFBQ1J3Vk52dzhxUmt3QUFBQUJKUlU1RXJrSmdnZz09"},{ name : "app.properties", data : "Ymg"},{ name : "haxeui-core/styles/shared/folder-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADX3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZdRlusmDIbfWUWXgCRAYjkYzDndQZffH7DdydzkNHOdt9aMERZYCH0CZ9z+15/d/YGLvXgXolrKKXlcIYfMBQ3z6yqzJh9mfTz4s/Ggd1cHQyWQsh4tHeNPPfkHS1TQil8MWT06tseOHA779s3QMZEMjxiNdhjKhyHh1UGHgbKW5VM2/bqEbV+ynSuxdbtR9TMmusT356CIXouYR5h3IfGoWcJyQMbNTgoahJok82gZ2gG6gu58eIKAPIuT/+KV+07latEL/TcokpbeQfEYzHTJp3qKz4PvZoi/zCz1mvlBX7Zriocgzxj3Zq73fa2uhISQpmNR51JmCwM3hFzmawlFcUe0dZaMYg7ZW4G8+eo3lEqZGFg6BWpUqNM+ZaUKFwPvrJDMlWXqTJQzV2wRcAqjUGeVLA3UWCrwCrR8+UJz3jynq2SYuBFGMsEYLfz8mfLSUO8j5Ym8XbGCXzw2BdwY5EaNUQBC/cyjOAN8lu/X4CogGGeYDQssflsmtkhHbo08kglaMDBCrr1G2g4DCBHmjnCGBAR8IomUyCuzEiGOBj4FhgybhjcgoBi5wUsOIglwjMfceEdpjuXIS40zCyCiJFGgyVLAKuBgQ/5oMORQiRJDjDFFjRZzLElSSDGlpGkcfkVFg0ZNqmqatZhYsGjJ1MxZtpI5Cw7HmFPWbDnnUjBpgeWCtwsGlLLxJlvY4pY23WzLW6lInxpqrKlqNVdzLY2bNJwTLTVt1nIrO+1IpT3scU+77rbnvXSkWpceeuypa7eee7mokVtYfynvU6OTGk9SY6Be1PCq6mmCxnESBzMQ40AgroMAEpoHM28UAruBbjDzmbErIsPLOOA0GsRAMOzEsdPF7h9yD9xcCLe48UnODXSfIOcGuhfkfuX2hFobX5vqxU1CYxuOoHrB9sOA3QpbGR+1t6X76Qv/G3pT9pLTbLZQD6V7NTp5jhTw52vPaWGsodkr2+4DzryxtDAEZ3vDKfcBZ35vaW/HCIsoaxHW6lu+/Au1n0p335cl3YcSexm658uS7jPMenb3fflQHp1hcfd9uZ1Hj4jcfV9u5NGzdHH3ffmtPHqduu6+Lz/Mo6e+/Jc/kB0/V/BvqPsb0xrN2E54p04AAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDUBSFT1OlIhWRdhBxyFA7WRAVcZQqFsFCaSu06mDy0j9o0pCkuDgKrgUHfxarDi7Oujq4CoLgD4ijk5Oii5R4X1JoEeOFx/s4757De/cBQrPKVLNnAlA1y0gn4mIuvyoGXuFDCEOIQpCYqSczi1l41tc9dVPdxXiWd9+fNaAUTAb4ROI5phsW8QbxzKalc94nDrOypBCfE48bdEHiR67LLr9xLjks8MywkU3PE4eJxVIXy13MyoZKPE0cUVSN8oWcywrnLc5qtc7a9+QvDBa0lQzXaY0igSUkkYIIGXVUUIWFGO0aKSbSdB738I84/hS5ZHJVwMixgBpUSI4f/A9+z9YsTk26ScE40Pti2x9jQGAXaDVs+/vYtlsngP8ZuNI6/loTmP0kvdHRIkfA4DZwcd3R5D3gcgcYftIlQ3IkPy2hWATez+ib8kDoFuhfc+fWPsfpA5ClWS3fAAeHQLRE2ese7+7rntu/Pe35/QBP4XKZ9Ef7VwAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NmIwMzEyYjItZDE5YS00NTc2LTlkYjAtYjVhNTNmZDRmMjA1IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmEyMTJiNWZhLWNjNjgtNDBiZS1hZTA5LTA3NmExZjU5NGY4NiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIwMmRiNTQzLTYwMGMtNGUyYi1hNDM4LTcxOTZjMjI4ZWNlZSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQyNjE0MDI5ODk2ODExIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YmQ3YTVjZTUtNjE4Yy00MTE0LTg5ZWYtNTg5ZmMxM2Q2OTJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAxLTE5VDE4OjQwOjI5Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PhbZGncAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmARMRKB1QuojKAAAARUlEQVQ4y2NgGPKAkYGBgWHWig1n0ISfM/z/Py8tMmA9IQOYsAv/l2RgZKietXxjKpkuIA6kRQSYMFEaBqMGDAsDBh4AAD+qEAAUuqhbAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/help-large.png", data : "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAATpXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZppdhu7koT/YxW9hMIMLAfjOb2DXn5/gSrSsiT7+t1nTaSKRUwZGRkB0Kz/+99t/oevGEMxIeaSakoXX6GG6hpPynV/tfPXXuH8PV/+eYn/f7pu3i84Lvkfd5b03P+6bt8N3A+NZ/FDQ2U8L/SfX6jhab98asg9I9OI9Hw+DdWnIe/uF+zTQLundaVa8scp9HU/ztdMyv1r9CeUn4f95f/M6s1IP9655a2/+Ot8uAfg9euMb+eJ/hZutHw3fv258poSC/LdOl0fRmU+R+X9zP7i+qeg+HRfN1z4eTHT+/Hb6zZ+uv40aM4Sf8TJePf80/XUXmH4eZH1u/csZu91z66FxJKmZ1KvqZxn3NhZcn/elvjO/Eae5/Nd+S4G9A76mte4Ot/DVusIy7bBTtvstus8DjsYYnDLZR6dG86fa8VnV93wINv6oG+7XfbVT1+I4SC8nqvuPRZ7+q2nu2ELHU/Lnc7SmL3D7/7O9y8b2luQt/Yq77ViXE5JwTAUOf3lLkJg9wtH8Szw6/vzl+LqiWA8y1yYYLv63USP9sGWcORPoD03Rh7vINs8nwZYIvqODAbUB3sl66NN9srOZWtZx0J8Gg0VksZ1QmBjdJNRuuB9IjhkDH3znmzPvS66+zKcRSCiTz4TmuobsQoQG/jJoYChFn0MMcYUcyyxxpZ8CimmlHIS+bXsc8gxp5xzyTW34ksosaSSSzGlllZd9ZBjrKnmWmqtrdFpo+XGuxs3tNZd9z302FPPvfTa2wA+I4w40sijmFFHm276CU/MNPMss8627AJKK6y40sqrrLraBmrb77DjTjvvsutu76hZc4f1y/efR82+ouZOpHRjfkeNt+b8asKKTqJiRsRcsEQ8KwIA2ilmV7EhOKPQKWZXdWRFdIwyKjjTKmJEMCzr4rbv2P2I3E9xMyH8V3Fzr8gZhe5vRM4odL+I3Ne4fRO1qWozLm9OhJSGWtTLk37csEpzpamo/fGj+U/f8JcaYm1C2FeNe/WZws4xdR87lGlCSeCBwJDOTG0Wu6ONs2wmOVyvpDHPWKW0+167B0jepdMgFDx3sN1l1t/EXOO0CzoAYPUKizLr0QGruD7b8Cl6v1PdnVVfu3pPmFj/0WfdmyDu3Me04zLvnpPf6ndk9ZtPvwyrxOyb8mGPe5STkJ33hJlbngx+7ll9MWkN3ulL34zP+knwB0DK+9vWmeRpn7qkHrj+9DCNOiDkrw5C3omk6N3vzm2zzVLX6mv5MWjUxrH6WTW/SZC98+zn/db48HQeX4v6cXJ9ejBFoy5fk1WZy37beNvmu9b/TePmR+sJUGxeWixCaj2T725cJNAC8oX7fB0s4rh2YHHaTnnGPnxPtY3YTJt9jgATNNfRZqS7xoC2oqrP1G2/x15ZGAaep8aYZzsLTz0ZubTRUlxmeqI3c++Mfy1ww5vpDPTltTMkNUY6uN7X2Kn8EvPmn5NDg1ClSLPtJZZoczIFF1K9LD/QEFlhbL1nQfjJHdZow1y+2PyaBmt/cFPbmg350GZcdnBjWb7tsqhxLo5uWL3Sh6vLAvcJm4eaVlst9QQZljDSFcIYpE7npnXlBkEGDbgvBo1K4ie7YAj8iq3PzELV7MfOVzu3Jcj+PEOS/cMj/N/M8n3EfI8nZ0wFo5mseILLS4DNifW4SGpvF5FvrAC0nnxchUo/fCX3bY8X4ffN+oUh4Rf1FFcdtEvAtT4Q8YRWp/L/pJGdC1awafbgZnSOBL35wyxr3wTS/UWvWgVYgt/VNf8e6hqAD3WYomtrTapgO1FdCPQHEea3dLiDV+ibbaKKOWMbMw2q22c6rMFs2h5XgxY3s1sMxneKrPjDLyUftZfAD6nYmNscNEjgR9aMrkZ07IQR0g3I3ag5i8Lk5r8tAObTBaJ3eThrwMNkRaOGFWZQGQAyrONQ6A2J55JKd3gnsTNth7WLaGG5+rAgIzwEgvpbnVzrK2TWV2ogdkqy1r6sa/XOu2GbEm0wlIxBUiASQ5RJ+PRoVwX07jW21kb/MDiW8jU4EyvViXV3vbuGvLHU9p1ASdEPeEOrbOQlQ+Nn10XVP53A8KX86NY8T2IpboAk3r7KkD0rCyWwp81cRMfC4AVVUmmTyBNvxBVvuKDEyRwtfETKxnS5SazzzH7ncUjL7XbBlEQ68E4GGjLLQX3BgiirScaalO+2kdrL0AGJhSYb2435VCzEETI5tTKAXaaiUB+FKXEJQYG0yfshlVOhJf74bYaTyEkN53lVhMuKVaTf8RCsXCz8H2jFkWmbISDoFhD2Lp32ZZbvkoE8JlvQBZAQRilNqJz5FZjrPT4KHh484YbOvR24xTTHYOlHwgk7uNFjjkkhzB8VA+bKITL+FVRGcxD5lyweu6CE0YJKOP7AiyOA3GLlbMUDxlQp2UHVadmK+6BsZ6t8KTPtluNCZV59qE74a9asBlEZ1IgJF6Inlk825rBaNrWWgoVclcKHpbvZsZf1DT2+ONCJA/tPHKhNlq8kyA0j1WDHN0TY9kcevJGJbc3TtPIlOVhcyKRqqavNDAR5xpro/8MpjldzCwyfaHsXqbB+QCOlo8bJmjdUDzNTS1nnUAtCANwENFrOVZI9uhVGIfErzn4WJf8maq4ON8NK5AgCDDghmqFmHzZMrNVvXvM7rJWVa1/XrmfWyVhyg4IxqZnwBuIZYDXaSCwDQJUmQf2Dgaz6FgSC3NwkWISq+5K9JUpEDdDyIqNOOy1QiHNA5dsyMp4knToYZteXR2I5eYMrMq+IsLsgggRkmfEyoOlSMH3tYXQbKuSF8K9QCixSlEpX2MmJaMrsa9u8ml3ImrUoSghUNHKf4QitHuPMd1qTiAgyVvNO+QhUedMF1KsdY4HriLFC2zJs7mfhvAjMIkYbBqtioTuwJ1uU4w0g5YNe3ApuJlM6JJFwNaPFAwJqHOm7AgEWz1zNEOHsqTCRESWoAD0NL8OnVlPPSVzfImxE8rScfKe5Cpnl3RJFLl9uwCIhmaDyu/FYq6AhGQRrCofYFMlTEi6GsOgFpV7sOCBNaI6CVmoAPkLLcHUt21SWA7ZBQGLX7pK04IvxuXwJ386jBgom5Ej2SAU5NQfeytUUQpYWUHTyc+Qg2ZvDds25QMyu5IT48haVQxain7sL+CUfe4IPu1FRccEhD6CImtINejKRgt6TbZAacWTEAc7eNWAHZTPtXjOR6w9djCjF9gI7So78OgRKMZ0S/rkxm4WdJaQbL4PDX1wIyfZyl9KY7lJqwBk5iYxD2hzNiNRt5BTCCNpZcTf3SLgJesbXTDuKxTZD0OgE9tzaaYCmG3Iz1wUrI9yhjD6lqyxKdNIahICYJfnB4ng8maUcRzMqofRYKYo4A0ZJFsBEhQbLZCU1YwvW8kEO7LRTEDZuTToODbxHjHI5BicsP+bXTkc4iLROgaRK84zi6jy4olpLxVNutgzacKpxYM2HqW3jvM2k8A908cyuwo3bo4/XbtbaIBIgozEF8SIG3EVJk0kouSWkpid8y4KP5lo1fiWCPQN6rRZCO9114uZl5xxShcLC+qOb6AEy5M2lI0FY1hO3Y48pb4aXUkti1Cm9uR7Pvyv6u0mg4icPIJAVh7wjMyevGHunftPG2Z1oGD9qNoy9RHNPH+SSl9gavcZGMoMGsBdRHWTIk0a415/Enrn1K8B/Mgl/dGfSKncmwaQyqfK58MXeLFw6xRznbzU6r5WlZKcbhvBe2eQY80CuopHWk8Jgk0n+SF4ZuCN81Gm2d6dtmrvXFt+9qqCp11POppVA9hQcKIzSCbsT/prFNqTjPYiaVynm6TaM7f9ICSMKkUF4h1YsjArfntoTTFGqk2fcJBXpbXbID7ih2CZY0N26Qr3OyJvDU+LtKBbUnRbQTqQDkgNV2yhAheygUakdQDS0r4xXo7ZedTbYkcSjwPVMTl5lgDsmmhph3rVCSK5CuWapIidqdmsqCbgV9EUNKDvXYbWA5JJWqbK2tJKxw1jiQoZQgHvrdlJvTviRKS050o/RVKonmUS1aDYk7bUNkkLEWaYrBBlVMoODFLRE0QJ8lqjC2ZchJmtHqqP0CZUCUUE7xMRF0oBSfTQKGe7uJzqCeR4P0VkZeojOvExDeEwD8BXRfULode0boQeftUr4af8kIgQyZWR3M2gj5ac7zB6M+u4zn8Y/k2t4yPXhVnUJQs1+AVTwVI8PNlnDCCQXXjLW7fYZw+g7hKfPlsDvj+maT/N+HpNEPQNl2ZD+Ea9akrUCScHoBUTYqQvgH5nTUfDNoFFRkU52dd4FV0i6p3EhaLiPzEfYxrPVkXByGhkrhg0GIU376VRAg8eDpiX3E4VjiSx3zogFJJY2UxoBR6TGKI1zaVHwB5bc9ZLiER9+gWAr6VeKBy9WxyLQM92CS+EGVyYYwYrInhi07TQwWScAoKchRJNOSrxMzjAYgjSAF06tnHaQsREavNaUEKsTOVOHTlVG9HjJpsw68HS4E9gV6y3kmjHdn+xhgHsM63xVYRDFamN8qML7VGHzEZ3fgJPpqOKSBgheNJX4iPFSCevT/4oDorrM7+p+/8O6L2ia/6ruf3g0Gk3v+8oS16wydRmXAdLnhVI62ifKrqpuU1oHZesi5BABaeUAp6R08ROG7DHVe6P1V7U9awt+XAgiyWhosoM8qIl0UuDQYDsT/qs0e8ke+SyKomBtAl4YSHJIySsL0ddtchhV3X6X5aPHkV9lX7GdvDZFybwQIDZT5wNvx/9YFGCFoFADSceFheFXJBkjTR1fz4yI2+ImCnK26LhugpeXDM+akkr1nzfE3qB6IEXksrlX5Y2rz7AixlEL/4+QMh8w9YIUw6IM92CbFzIixktFgNTAFzrZesqwZH8+3CVfF5MpHg8jY1dQxRVCh09K0Gm2jB3ihmGS7uXe1Xkg63Y8kJ1Hql5Adhl4EO9BtenUQO37Zqocy010KBVH6XeU8VMDcl+4v++2dsxPezzJzbPVMvEDBCNCXdroJyM0LhxPPvs/EVkSpzQ7hDKytkKWsRE9YOfU1ikuWtuvDkBQHsioiJjFgUW8cb5ih0atbWc7YTvxLWj3hdnAZCZS5BcSH8FJaswlSp9ajQbxw9PaoAjgoyOKaiykbYXcUpJ3KngDxDGlPhdDfKkYPniuabcKCmdIOn5nTqGofk74kyxBsZSMQASLVIJEQ1Epgay+Ash2WkjuZX09zkO6J3cA6zYvV4f97mjbpwIhRsaXgns/mh8VKORSGPRj9Eklkuk2+iQJJtE+W/VicWHbOikS5ob+yhkLQb8o5RHsVWTZ8719AU/F2W/ZeO9IkBLakcj3joSEo0XXbOBORfJGm3p7DUQjVRbYk7goPzRwj609tDYC/vZzyvm5u+ZrJ4uyLYCUVGzUQQyfdL5zsntyfFE7sWcH3snyMQe1jgixrz12+QgYI/NjDj3cIhFX8cvDgU0i4Q4JxEHhlo3YM0QMMpNYthrYa0kWIghTKNotx5pfylbtCvqedaRZRveHvihueTToCyCGhZLHjDrKpw6hSgAnDizqAp7WXmjEXXY+9FFbb6qB+ADtH2FCXUQp8I59SNWWc+gDjuoSKaIbh5BWXYjhCrB6liVi4TusmJVajBlh6EFoVbymFV9TMh6QmQzLaJfqe5jxyBQc9QRCtGRC06Gfm0hZbdKzrnXqcz/OGi+6ZiRk3u0ppXy2tooXhnSkqS3bs0vr8Jek4iPtotTGh27NZ32pYrGupK2Ro+N2Oj7XkeiFyppQ3U6Me6VRceyTdNcBSjXH6LaPRrdIm7t9hhW7tovtsFX78pJXqDg31yo7CZnjaOExYzEbW7rWL5coOpxiJP0HzFYwhWEk7YQjnY/t0On6oUUTxrfeRU4P9kdBaGMxL31wRST1OLWTcq+EmxPcGxCGwkNVtahTKqBaStXHKmxh4Z9dkZMiTE17lZfmvDXn95Y9fpMRdXnpszH5uy37N63juW1ABTxHNRE70gL6w1gRWtGB+OvA6pQr3P5y7hz0wZZr6owsS2acbfvkQUBClqB/z2GOUoQqMDPVXIc52JZ5tli17c7CjHtXlsSYaUkdaleWOEOw7WzKunJvj+VkPOGz2o49O7JLRwXueNpWSAH3i6OCr4/m0wXLaLL2iM9orrNHLNi559wuvFF3Tqy0DNoZ7sOcM4v1bA1bpCTlW864bFgWxavz7I0svrfln2PE9mxJqxbCeNAiSRsT4l4bYfrwhhMIBybyKfrDHY0BcJKN2p3DDW/tUSBfLhLzyq/NaPNHQf/NOY4QynTksqkEX4cOPThKSLyPhTvSpmNmdSpcGbqyZ2UIOB2oam/YAIlKiYr3wfMkvzHD5+A5jlptqM+29almid5xrV0nxz143M+o+hSOzo6q4HR2lvRRAlA/JYTPeT9kdM77Zztn4uU572/PeX+Z93k//HbO+6/7vJ8CkW41BMMgvHV+QL2rOBcqFhxX9+96WOZ08Kl5fWDhuj+woA00HfAnYK9N/F82bb62/e+aNt8M+/m4wPeNnw9afNO4+dXA5yCGEEAP2oOMSbHxVWZwuAvdVnCc/EJCKhgjm0MWV6AfucxjQOrTSyZjcB3VbZQvHKCP+MCg1DH85UVHARN6PfkPjqgWAMonJF04cctZCrRhmi6pUtKCGUInc4VHJeCOP3+IwPydj+j85YZY+VnN/wO4TZW3nH6X5gAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQcriDhkqE4WREUEF6liESyUtkKrDiaXfkGThiTFxVFwLTj4sVh1cHHW1cFVEAQ/QBydnBRdpMT/JYUWMR4c9+PdvcfdO0Col5lqdowDqmYZyVhUzGRXxcArBAQwgFl0SczU46nFNDzH1z18fL2L8Czvc3+OXiVnMsAnEs8x3bCIN4inNy2d8z5xiBUlhficeMygCxI/cl12+Y1zwWGBZ4aMdHKeOEQsFtpYbmNWNFTiKeKwomqUL2RcVjhvcVbLVda8J39hMKetpLhOcxgxLCGOBETIqKKEMixEaNVIMZGk/aiHf8jxJ8glk6sERo4FVKBCcvzgf/C7WzM/OeEmBaNA54ttf4wAgV2gUbPt72PbbpwA/mfgSmv5K3Vg5pP0WksLHwF928DFdUuT94DLHWDwSZcMyZH8NIV8Hng/o2/KAv23QM+a21tzH6cPQJq6Wr4BDg6B0QJlr3u8u7u9t3/PNPv7AXylcqvSRSQ9AAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDowNDgxMjRiYS0xYzdlLTQ1MGMtYjQyOS0xOGFhMWJiNTg1MGYiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YWY0MjZlZTQtNWY4OC00NWJhLWFiOGMtYjgyNjg1NWI4MjRiIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NGJiN2FlYWEtYzM2Ni00N2RmLThiYjEtOWIzNjE1OGJiZTZjIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQzMTUxODM4MzgyNzYiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplZTAxMWY0Ni05ZTJmLTRlMDctODNjZC1jZWJjNjkzNDQ5YzIiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMDhUMTE6MTM6MDMiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+hvrXawAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+YCCAoNA5KNg5EAAATXSURBVGje7VlNTFxVFP7ue2/ewAwzU35sy0AKQ1uQYGkFaUrSmApx0VI3JkVXutBIpFiNJl11MYm7Jm5qLSHpThdaXbhAGklTW3RhS0si+EuQIfwMOu1AmT/m793jQoK8MnXeH6NJObv3ct8933fPveec+z1g27bt8TZmySxXSKhZilYJHLUE5hWACgJKAMhrI9IERAGEBVCQgwIzIfcC/Iz+UwJ7P0p4iPE2gJoJcOv0HCHOxiVFuD11xhEpKIF9F6JORUIHgEMARJOLqBAwluH0zUKfO7HlBOouxQ4Q6ASAYou3c4IIQzOnXT9uCYHWARKXlFgXgJYtPpR39oRKhm74GbeMgHeAbEVKtJvA9hcot0ymROfnwR6WyTdS0LLyhQUPAFRvV+KnjvlJME1gSYl1FRb8PyRmdsaOmyJQ1x9r3uo9n2d/t/n6o02GzkDVxYhDFlgfAIdWhwID2qtEPO+T8FSFAI+dQRSASIowuUz4di6L4UAWqay+7GQT6eJkT+4UKz3qK1lgnXrAe+wM/qN2tFZuDmpZMcORYoYjXhkvNUo4dzONmRWudWpHRmHHAAxp3kL7LiTca0VKk4kCcL5Dzgn+YdvjFvBBpx1uWVcJaqnuT7g1E+ASP6ynwp7cK6GxXD1c4cDYHxzfBzkSGXXL84SDobtR0kNAkoi3aSPgJ0aMmvXM3lmrBp/lQN9wCu9cS+Ls9SReGUwimlaTOFqtrwMRQAdxZXNa3fSiZne0GqSvMfPtUE8zMqvgp/vK+nMoThiZVVRjKl36uhgC3L5wpDIvAYGjVm+689jVYOajmw9oLGNFWmW+vFmIEfOSzhbv2U/yN5GHdqnXKvCA6yZAYN68EeAM5VYXpO4nJTSUqV0N/a4Ymao8LwEGuKwE/8J+Cb2tsurdREjB4FQWBkLg0pJGZavAH68T8d5hGcKGLbkQ5Tg3kgY3dpmUdTdzRq2pQsTZdrsK/FyE4+1rKSwnyTI/uQikrZj4jacliBvA/5kg9A2nEIqbAp/OS2BNPTBlThtD8051oXr/u7T5lWebseWKQNgsgRqPoFr9xRjHeEgxH1bCfQ1ZiIJm/ZTY1Cs9/cCaPU+gxbyFjEABZlLvur3INRU33QeWxEDeCMyE3AsAVvD/s5Xpe46ghm6UERGbMONJZMCrB2y4fKII5zuKUF9qSbYezyVF5mzKJUW4rUhKu1HV7cUGCa8dtK0/N5TZ8fKXSaxmDZ+FbIaJo5ovNFNnHBECxox6a9mt5l1axFDrMRWFu/Nv5tZPHzlrVubXAcSNeFt8qFgpHAgluFHwiTSnm7pllfnXPavEcNWIx48nMvg1zNdvZx/eSSO8anD7EAb/TfTNmy/rLkVPEvCMEd+lRQyxDCFjvIbdCvS6rppS5qYrSoYY4Rcj3peTZsCzyZpQydcaxK/85h0gm12JnwKovkCa3G+ZpPOL+XctEHcBINjDMjUh56cEjBYA/a2akPMzLeA1R0ClQPRHm0Dogg7VTqPFQfgqcNr1s74G1YBVX14ptqWF5/C38CuZBJ4FcFeBcmO2d8eq/g7bhFX3J9wS8TYGagbg0dvbgOGHbFYYnXvLafgOYs1vVj8x366Il4H51qSP8jVxTN5wk4qAIUxEQYHEwPQ9R9CK36zbtm2Pu/0F+vK8BznSOd4AAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/down-arrow-square-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAIAAABLMMCEAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAMUlEQVQImWN8K6PCgAGYMIUYGBhYkk10sKide+YKmtDcM1eYIBSyEMJcCAcuzYjVDQAFcxCadfC9sQAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/window-collapse-white.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVorDnbwa8hQnSyIijhKFYtgobQVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi6OSk6CIl/i8ttIjx4Lgf7+497t4BQq3EVLNjAlA1y0hEI2I6syr6XtGDYXTDj0GJmXosuZiC6/i6h4evd2Ge5X7uz9GrZE0GeETiOaYbFvEG8cympXPeJw6ygqQQnxOPG3RB4keuyw1+45x3WOCZQSOVmCcOEov5NpbbmBUMlXiaOKSoGuUL6QYrnLc4q6UKa96TvzCQ1VaSXKc5giiWEEMcImRUUEQJFsK0aqSYSNB+xMU/5Pjj5JLJVQQjxwLKUCE5fvA/+N2tmZuabCQFIkDni21/jAK+XaBete3vY9uunwDeZ+BKa/nLNWD2k/RqSwsdAX3bwMV1S5P3gMsdYOBJlwzJkbw0hVwOeD+jb8oA/beAf63RW3Mfpw9AirpavgEODoGxPGWvu7y7q723f880+/sBXHpynoD2GeAAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCxsJHA1rFqnfAAAAg0lEQVQoz8XRrQoCYRBG4S/slWzbYrII2zabjKa1Gjd4C9a9gb06wSBYDKKoj2VEEX+2iC9MmMOBYWZS+kuQI+8rF1hhjcE3eYiNe7YYvZMr7EJsowSrnuUx9iEsH/gi2AGTG5ziiAuaF5PnOOOEWUIXTf1htzqcLiFD2eN6JbLfP/UK7emlPChzsBQAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/default/rules.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBSVUxFCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5ydWxlIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgouaG9yaXpvbnRhbC1ydWxlIHsKICAgIGhlaWdodDogMXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBob3Jpem9udGFsLWFsaWduOiAiY2VudGVyIjsKfQoKLnZlcnRpY2FsLXJ1bGUgewogICAgd2lkdGg6IDFweDsKICAgIHZlcnRpY2FsLWFsaWduOiAiY2VudGVyIjsKfQ"},{ name : "haxeui-core/styles/default/pickers.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBCQVNFIElURU0gUElDS0VSCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5pdGVtLXBpY2tlciB7CiAgICBwYWRkaW5nOiA2cHggNXB4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgd2lkdGg6IGF1dG87CgogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CgogICAgYmFja2dyb3VuZDogJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7Cn0KCi5pdGVtLXBpY2tlcjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAkaG92ZXItYmFja2dyb3VuZC1jb2xvci1zdGFydCAkaG92ZXItYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7CiAgICBjb2xvcjogJGhvdmVyLXRleHQtY29sb3I7CiAgICBib3JkZXI6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJGhvdmVyLWJvcmRlci1jb2xvcjsKfQoKLml0ZW0tcGlja2VyLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkb3duLWJhY2tncm91bmQtY29sb3Itc3RhcnQ7CiAgICBjb2xvcjogJGhvdmVyLXRleHQtY29sb3I7CiAgICBib3JkZXItY29sb3I6ICRob3Zlci1ib3JkZXItY29sb3I7CiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDEsIDQ1LCAjODg4ODg4LCAwLjEsIDEsIDEsIDEsIDMsIHRydWUpOwoKICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1jb2xvcjsKfQoKLml0ZW0tcGlja2VyOmFjdGl2ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9CgouaXRlbS1waWNrZXItcGFuZWwtZmlsbGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7Cn0KCi5pdGVtLXBpY2tlci10cmlnZ2VyIHsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwp9CgouaXRlbS1waWNrZXItdHJpZ2dlci1pY29uIHsKICAgIHJlc291cmNlOiAkYXJyb3ctdXAtZG93bjsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi5pdGVtLXBpY2tlci5uby1pY29uIC5pbWFnZSB7CiAgICBoaWRkZW46IHRydWU7Cn0KCi5pdGVtLXBpY2tlci5uby10ZXh0IC5sYWJlbCB7CiAgICBoaWRkZW46IHRydWU7Cn0KCi5pdGVtLXBpY2tlci5uby10cmlnZ2VyLWljb24gLml0ZW0tcGlja2VyLXRyaWdnZXItaWNvbiwgLml0ZW0tcGlja2VyLm5vLXRyaWdnZXItaWNvbiAuaXRlbS1waWNrZXItdHJpZ2dlci1pY29uLWNvbnRhaW5lciB7CiAgICBoaWRkZW46IHRydWU7Cn0KCi5pdGVtLXBpY2tlci1jb250YWluZXIucG9zaXRpb24tZG93biB7CiAgICBwYWRkaW5nOiAxcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwogICAgYm9yZGVyLXRvcC1jb2xvcjogJGRvd24tYm9yZGVyLWNvbG9yOwogICAgbWFyZ2luLXRvcDogLTFweDsKICAgIGZpbHRlcjogYm94LXNoYWRvdygyLCAyLCAjMDAwMDAwLCAwLjE1LCA2KTsKfQoKLml0ZW0tcGlja2VyLWNvbnRhaW5lci5yb3VuZGVkLnBvc2l0aW9uLWRvd24gewogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7Cn0KCi5pdGVtLXBpY2tlci1jb250YWluZXIucG9zaXRpb24tdXAgewogICAgcGFkZGluZzogMXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRkb3duLWJvcmRlci1jb2xvcjsKICAgIG1hcmdpbi10b3A6IC0xcHg7CiAgICBmaWx0ZXI6IGJveC1zaGFkb3coMiwgLTIsICMwMDAwMDAsIDAuMTUsIDYpOwp9CgouaXRlbS1waWNrZXItY29udGFpbmVyLnJvdW5kZWQucG9zaXRpb24tdXAgewogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogTU9OVEggUElDS0VSCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5tb250aC1waWNrZXIgewogICAgcGFkZGluZzogMXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CgogICAgYmFja2dyb3VuZDogJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7CgogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKfQoKLm1vbnRoLXBpY2tlciAub3B0aW9uLXN0ZXBwZXIgewogICAgYm9yZGVyOiBub25lOwogICAgZmlsdGVyOiBub25lOwogICAgYmFja2dyb3VuZDogbm9uZTsKfQoKLm1vbnRoLXBpY2tlciAub3B0aW9uLXN0ZXBwZXIgLmxhYmVsIHsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBwYWRkaW5nOiA1cHggOHB4Owp9CgoubW9udGgtcGlja2VyIC5vcHRpb24tc3RlcHBlciAuYnV0dG9uIHsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBwYWRkaW5nOiAwcHggNnB4Owp9CgoubW9udGgtcGlja2VyIC5vcHRpb24tc3RlcHBlciAuYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICRob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLWVuZCB2ZXJ0aWNhbDsKfQoKLm1vbnRoLXBpY2tlciAub3B0aW9uLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmM6aG92ZXIgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5tb250aC1waWNrZXIgLm9wdGlvbi1zdGVwcGVyIC5zdGVwcGVyLWluYzpob3ZlciB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgoubW9udGgtcGlja2VyIC5vcHRpb24tc3RlcHBlciAuYnV0dG9uOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRvd24tYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGZpbHRlcjogJG5vcm1hbC1pbm5lci1zaGFkb3c7Cn0KCi5tb250aC1waWNrZXIgI2l0ZW1QaWNrZXJUcmlnZ2VyIHsKICAgIHBhZGRpbmc6IDVweCA1cHg7CiAgICBiYWNrZ3JvdW5kOiAkbm9ybWFsLWJhY2tncm91bmQtY29sb3Itc3RhcnQgJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLWVuZCB2ZXJ0aWNhbDsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5tb250aC1waWNrZXIgI2l0ZW1QaWNrZXJUcmlnZ2VyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICRob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLWVuZCB2ZXJ0aWNhbDsKfQoKLm1vbnRoLXBpY2tlciAjaXRlbVBpY2tlclRyaWdnZXIuc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRvd24tYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGZpbHRlcjogJG5vcm1hbC1pbm5lci1zaGFkb3c7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRkb3duLWJvcmRlci1jb2xvcjsKfQoKLm1vbnRoLXBpY2tlcjphY3RpdmUgewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKfQoKLm1vbnRoLXBpY2tlci5zZWxlY3RlZCB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9CgoubW9udGgtcGlja2VyLXBhbmVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7Cn0KCi5tb250aC1kZWluYyB7CiAgICByZXNvdXJjZTogJGFycm93LWxlZnQ7Cn0KCi5tb250aC1pbmMgewogICAgcmVzb3VyY2U6ICRhcnJvdy1yaWdodDsKfQoKLm1vbnRoLWJ1dHRvbiB7CiAgICBoZWlnaHQ6IDQ4cHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm9ybWFsLWJhY2tncm91bmQtY29sb3ItZW5kOwp9CgoubW9udGgtYnV0dG9uOmhvdmVyIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgoubW9udGgtYnV0dG9uLnNlbGVjdGVkIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQtY29sb3I7Cn0KCi5tb250aC1idXR0b246ZGlzYWJsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLm1vbnRoLXBpY2tlci1wYW5lbCAjeWVhckxhYmVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1zdGFydDsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBNRU5VIElURU0gUElDS0VSCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5tZW51aXRlbXBpY2tlci1wYW5lbCAjcHJpbWFyeVBpY2tlck1lbnUgewogICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IG5vbmU7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi5tZW51Lm1lbnVpdGVtcGlja2VyLnNlY29uZGFyeS1tZW51IHsKICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1jb2xvcjsKfQoKLm1lbnVpdGVtcGlja2VyLXBhbmVsICNwcmltYXJ5UGlja2VyTWVudSAubWVudWl0ZW0gewogICAgX19ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7CiAgICBfX2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7CiAgICBfX2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDsKICAgIF9fYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsKfQo"},{ name : "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoCorners", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVFBQUFBQVlMbFZBQUFFT1VsRVFWUjQybHlOaFJFRFFSRERGR2JxdjVzVTlNenNjVGluMFI2dlo5elprSk1SbTBpcmxKSktOTFIwOUdZd0krSTlnM3hYbUNIRkhHbVdMT1NLdFRLMkhNV0ZHMWQ1MW5yTG5ucXA1WXFlaGlVNHBIblR5dDZNY25pRnY4SDFQWjd4UE9NWHIvZlA4Nlc3RFY1dEZIMlFSK281T1NrSk1aRUlST2hWVENweUNsSEs2a245cHJILzFMaUs4a2xCVGtaSy9Nd0l2VXJKM0xtY1V6a21JeUdXa1d2NmZGQlJ5cWs0TStCdEdvYUNjSG1VdHF3dytQLy9jMXFsTm9oMy9YU2NMSVZLRzR2eHlZNmJacm52bloxVTBtS1liS3hiOXlqZkJPZ2lDR04wbC9TWnUxMUxGeWlGRmdoOWtaRGdINHh2V0Q3UW9qRVFUa1BaZ1pEaVZKb0J1djZXQUd6dnIxRnFIYTBXWmxIT0l6SnhEaXEwWlFleXZSWmtzQTFmeFRxR3RyTitXZFlBZzVLRUVkb3RHWlREdVkrdk5uZkZObkpubExURFI2MmNEd3hKWEx3cEJjSVNBeUM5c05zeHg1WXh0MlpFek5hMURzRmlnQ0QxVVFCKzBPQng0QktXYU1YeWIyMThTK1FlTnlrcCtCRXZieEFIMzNwb2Fac0hvbzE1TEJyWkUzYVVQUURZVS8yQ09YcGc5cWl0LzdWenVBNElGd0hrT1Y5YytYQzc5N1lSd3hETDhHQUMwSks5NngvSi83WDVIaXdvQU5lOG9NclB1K3k1MlAzalduTHdRb0FnQVVEOVh2MnRXaks0a1lJRWdPTjNBdHZZcTZuSUFhRTBUZjFiSmdBRUdZQWdsVjg5Vzhmdm93Q01JQlVIb3RsOEVad0FBRXNBbG0wVEdDR01nQ28vclBCTkFURENUUUMzSU15eEgzL2NLK1pveXgyd3RnaVYzM3BmTUNPRGFDV0J6ZDhEeUFBY0J1c1pDSXNSS2dzd0J5SUpnRkEyanYwc0NFb3ZEWFBOY1RSRXpZN2ZSKys3OG9tTTI5bXZMVVQyZ05rbXRDUXVnTW5OMXA0cGdmL1hQaldBaHZtMk9aWW5ibk9CU0NDYTFYRFRzUXd3ZVFHd2w1S0FUMjFySFpjeUFCTkVtNGRRQWtCekYwRXFSdHRiOCt5bHo3dlNFSWpOSDBJdkFQYnFPa2dnVExRSHdRQWxUZHFHU0w1N0FMNzBSTk5QMFZiVnAzN0tsbk5oejRwc1oyL3pJQ1NCUFJsTWVoZ2R2eVRuTDdVNzZERHNCR21qN2VjTmlMbThCWERVQnhZaUs3WFJHN0JjdnhHcTdROFNBTWkwSHhXNlo1THJUd0pIU2RPa0VPSkI0MTVlRjIzdFRMbisvQjlKcXQxcDk3VzdQZ0F3N2dXampMdDR0Y1Y2L2IxdmV5cDM4dFgyVDkyQk9CZ0IrWS9mcmZLWTJsMTlkNVYrRklBUmtnTVl5Y0tqdTJlZXh5eld5TWEyZHZRblNVY1NPTGVlV2lBY3ZCaCtSVEdtZSthNXI3QnlEZmV3ZFV2V2xQeEU0WVY5NnhzbjcyUUhiMHJFYmQ2a3ZZVzVLOGVhY2dWQ0FnYVFqT0RuSWhnY0h5dVc3dDV3eEk3NTJRamVBekwvVG0rZCtjTExnVUI1Z3c2T2ZLamNaWDRIZ1FST1F1QzBCSUtUR0NDWUlRd3NtNDdDbWpVWFFGeVVnczRkZVJQS2p2b053QVZHUUVaWVU2N0lYTmJzZG05emwrakZQZ0Z3dnA5OGJ2M2MvYmpyZVZnTVFJekM2Tm1hK01aVlo0dkw0MGQ3ZEc4OU80Zjk3cVgzN09YUGY3YUxoNlkvK2YvZVM2djBhZVdmR2ZwKy9PUmU0ODh1NmptL05Fdjd2ZDdudDk4YlN4R0tIQlprUkFBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "haxeui-core/styles/atlases/default-spinner.json", data : "ewogICAgImZyYW1lcyI6IFsKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgIDAsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgNjQsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxMjgsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxOTIsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAyNTYsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzMjAsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzODQsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA0NDgsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA1MTIsICJ5IjogMCAgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgIDAsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgNjQsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxMjgsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxOTIsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAyNTYsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzMjAsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzODQsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA0NDgsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA1MTIsICJ5IjogNjQgIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgIDAsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgNjQsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxMjgsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxOTIsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAyNTYsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzMjAsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzODQsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA0NDgsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA1MTIsICJ5IjogMTI4IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgIDAsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgNjQsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxMjgsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxOTIsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAyNTYsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzMjAsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzODQsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA0NDgsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA1MTIsICJ5IjogMTkyIH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgIDAsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAgNjQsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxMjgsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAxOTIsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAyNTYsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzMjAsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiAzODQsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA0NDgsICJ5IjogMjU2IH0gfSwKICAgICAgICB7ICJmcmFtZSI6IHsgInciOiA2NCwgImgiOiA2NCwgIngiOiA1MTIsICJ5IjogMjU2IH0gfQogICAgXQp9"},{ name : "haxeui-core/styles/shared/down-square-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADc3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZdbktwqDIbfWUWWYEkIieVgLlVnB1l+fmzamb7koWdOHlI1ptrCAktCH2A69J//jfADF2+cQlTzlFPacMUcMxdUfDuvctxpi8d9PWy3yp0+XA0MlUDK+ehp9b/pabuzRAU1/WDI62rY7xtyXPb9wdByJDMiRqUtQ3kZEj4baBko57C2lN0+DmHvp2y3kfj5C/M2bjmxUzw+R0P2msKPMHch2XAX4TMAmT8OUtDAuLNkdCR0mJp8aGhFgoS8ytN1ZUQ0ZqjxZac7KleNXuvDI63Iq4s8JDld8qU+kL6mcqT+g+foq8b3+ryfpsL2kP0j+aP5OMaMUZSYkOq0BnUbylFDvx0upmsPsJdAJ2EOOeQsGcUxqyumQtvqtqNUysTANShSo0KD+iErVYQYuQc2VJgrEE2li3HmKpNfnIUGGxg2cVCsB/YofMVCh9u81XB4c3huhK5MMDanw9slvPvCGHMpEG1+5QpxMc9kI4xJbt7RDURorKTqkeBbebwmVwFBnVmeSyQjsftpYlf6vRPIAVrQUSHPNUjWlgGkCK4VwZCAAKiRKCXajNmIkEgHoILQWSLvIECq3BAkR5EENs7TNV4xOrqyMtQBemxmIKGSxMAGqwywYlTMH4uOOVRUNKpqUlPXrCVJiklTSpbmplhMLAZTS2bmlq24eHT15Obu2UvmLNg0Nads2XPOpcBngeWCtws6lLLzLnvcNexpt933vJeK6VNj1ZqqVa+5lsZNGvaPlpo1b7mVTh1TqceuPXXr3nMvA1NtSBhx6EjDho88ykVtYX0qb1CjRY0PUrOjXdSgNbuZoLmd6GQGYBwigbhNBJjQPJltTjHyJDeZbZmxKpQRpE5mjSYxEIydWAfd2AU+iU5yX+IWLN5x48+SCxPdm+Seub2i1uZnqB7EzlU4k7oJVh/auxf2Mj92TzL8qeFd+W3o29A/bGhgBzmqqEiV9YAPbuEwqzjo8VuSTsuJpVs5dHvo5sPeHstzaOGK7bOhrEjCF9OMiMpRDUds8fSIM6VS1HlCfi0rNqW+xpS74GhzRRz4U9l+lNKD6xqqx4EzwWNkeQrFgeIuJ6k+DTV8fSreG0Kq+uK5XTmbIZvfAqmvArlk+J8C+jb0behvGMJpZP6t/AWjs8C1IYxOjAAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNQFIVPU6UiFUE7iChkqJ0siIo4ShWLYKG0FVp1MHnpHzRpSFJcHAXXgoM/i1UHF2ddHVwFQfAHxNHJSdFFSrwvKbSI8cHlfZz3zuG++wChUWGq2TUBqJplpOIxMZtbFQOvCGKUagARiZl6Ir2Ygef6uoeP73dRnuV978/Vp+RNBvhE4jmmGxbxBvHMpqVz3icOsZKkEJ8TjxvUIPEj12WX3zgXHRZ4ZsjIpOaJQ8RisYPlDmYlQyWeJg4rqkb5QtZlhfMWZ7VSY60++QuDeW0lzXWqEcSxhASSECGjhjIqsBClXSPFRIrOYx7+YcefJJdMrjIYORZQhQrJ8YP/we/ZmoWpSTcpGAO6X2z7YwwI7ALNum1/H9t28wTwPwNXWttfbQCzn6TX21r4COjfBi6u25q8B1zuAENPumRIjuSnEgoF4P2MvikHDN4CvWvu3FrnOH0AMjSr5Rvg4BCIFCl73ePdPZ1z+/dOa34/n9lyuQWiUawAAA80aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjEwZTExZGUyLTA1MjUtNDAzYi05NmFiLWM4NjFkNmYxOWEwYSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplMjljM2RmNi0wYzllLTQ2MDMtYmJiYi0zNGRiYmY0NWI1ODIiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyYzQ1M2QzNC02YjkyLTQ0MmMtOWFjYi0xODI1ZjI3NDQ2MWEiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY3MjMxNjM2MjY4NDI2OCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjMyIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMjoxMjoyOVQxMzoxOToyMSswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjI6MTI6MjlUMTM6MTk6MjErMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiM2YwMzU2NS0xNWQzLTQ4MGEtOGUxYi1kMmZlZTM3NDZmMmMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTFUMTM6MjU6MjkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGNkOTA2MjMtOTYzMi00OGY2LWI3NjYtMzk3NTE1NTY5Nzg2IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA3LTI2VDEwOjM5OjM4Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmRjNDliZjU0LTYyMGYtNGQ4Ny1hYzEzLTQyYWZhNDI5ZGJlOSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0xMi0yOVQxMzoxOToyMiIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz497WXVAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5gwdDBMW92s92wAAAItJREFUOMtjYBgFAw8YkTlRfceUGRkZjjIwMIjjUP/y/38G62VFVndhAkzIssuKrO7+/8/gzcDA8BWL5q///zN4I2vGMABqyFlGBsZQBgaGX0jCvxgZGEOXFVmdRVfPhM2dSwottzP8Z0hkYGD4z8DA8J/hP0PikkLL7SQHUOyE4+WxE46XjyYVGgMAMSgm4G3z+p8AAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/up-arrow-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAK0lEQVQImWN8K6PCwMDAwMBwfMYEy4wCCJsJLgQnoaJwDpzNuGXLFgYMAADK0A4MJuH53gAAAABJRU5ErkJggg"},{ name : "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicFlixel", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQU1DQVlBQUFCV2RWem5BQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQkJrbEVRVlI0Mm9YTEEyZ0ZBQkRHOFdmRldmRTV6N2J0N0paYnRyM2NNcFptMjdadDI3WjF1NnM5NitxWDd2OHhZTUFkdEl5aE1NYi92U2lTWmFnVS9TSWcrZ1B5KzlEdjFqNFNIWldId1ljcU5EbDRHbkNEc0M0NXVGUW9ZRDRvQm93TlZsVHhBOGJCR0RNNnhFQ2NLdVV3SGFvemVxVkJOUHE5eDloUEZXdXhyNWJEZUhpMGFwRExvRHZ0ZDYzMTdwSlJZSlJ0alJ3R282S2VjZURJb1BOSVBTb1FsY1NxQWlOa3dCMHFPZVhNZkFrWkFXRWdSNTllaVZjZ0xJc3dFc3VCUGRvQUdKTnNHdVFqSUo3Slp5Q29DTldMR3lsVU9hVEJGd0lWejlRajRGY0dBYU5UaVhFelJUcG9BUHJjTTNldTJjUDFteGhZSER5akhHU0ZUeTdLUXZ2YWd6K25kVVlUR0IyTWZ3QUFBQUJKUlU1RXJrSmdnZz09"},{ name : "haxeui-core/styles/shared/left-arrow-bright.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVQImWN8K6PCwMDAwMAg9Pg2E5zFwMDABGcxMDAw/v//nwEGmN7JqiI4DAwMcD7UAAgfAMkKDTd2MVgoAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/default/panels.css", data : "LnBhbmVsIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgcGFkZGluZzogMXB4OwogICAgc3BhY2luZzogMHB4OwogICAgZmlsdGVyOiBkcm9wLXNoYWRvdygxLCA0NSwgIzg4ODg4OCwgMC4yLCAxNSwgMiwgMSwgMywgZmFsc2UpOwogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLnBhbmVsLm5vLXNoYWRvdyB7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi5wYW5lbC1jb250ZW50IHsKICAgIHBhZGRpbmc6IDVweDsKICAgIGhlaWdodDogYXV0bzsKfQoKLnBhbmVsLm5vLXBhZGRpbmcgLnBhbmVsLWNvbnRlbnQgewogICAgcGFkZGluZzogMHB4Owp9CgoucGFuZWwtaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OwogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4OwogICAgcGFkZGluZzogNXB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgd2lkdGg6IDEwMCU7Cn0KCi5wYW5lbC1mb290ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7CiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHg7IHBhZGRpbmc6IDVweDsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHdpZHRoOiAxMDAlOwp9Cg"},{ name : "haxeui-core/styles/default/propertygrids.css", data : "LnByb3BlcnR5LWdyaWQgewp9CgoucHJvcGVydHktZ3JpZCAuc2Nyb2xsdmlldy1jb250ZW50cyB7CiAgICBwYWRkaW5nOiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBzcGFjaW5nOiAwOwp9CgoucHJvcGVydHktZ3JvdXAgewogICAgd2lkdGg6IDEwMCU7CiAgICBzcGFjaW5nOiAwOwp9CgoucHJvcGVydHktZ3JvdXAtaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgcG9pbnRlci1ldmVudHM6IHRydWU7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDVweDsKICAgIGJvcmRlci1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICBib3JkZXItYm90dG9tLXNpemU6IDFweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLnByb3BlcnR5LWdyb3VwLWhlYWRlci5zY3JvbGxpbmcgewogICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7CiAgICBib3JkZXItcmlnaHQtc2l6ZTogMHB4Owp9CgoucHJvcGVydHktZ3JvdXAtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwp9CgoucHJvcGVydHktZ3JvdXAtaGVhZGVyLWljb24gewogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKfQoKLnByb3BlcnR5LWdyb3VwLWhlYWRlcjpleHBhbmRlZCAucHJvcGVydHktZ3JvdXAtaGVhZGVyLWljb24gewogICAgcmVzb3VyY2U6ICRhcnJvdy1kb3duLXNxdWFyZTsKfQoKLnByb3BlcnR5LWdyb3VwLWhlYWRlcjpjb2xsYXBzZWQgLnByb3BlcnR5LWdyb3VwLWhlYWRlci1pY29uIHsKICAgIHJlc291cmNlOiAkYXJyb3ctcmlnaHQtc3F1YXJlOwp9CgoucHJvcGVydHktZ3JvdXAtaGVhZGVyLWxhYmVsIHsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICB3aWR0aDogMTAwJTsKfQoKLnByb3BlcnR5LWdyb3VwLWNvbnRlbnRzIHsKICAgIHdpZHRoOiAxMDAlOwogICAgc3BhY2luZzogMTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgcGFkZGluZy1ib3R0b206IDFweDsKfQoKLnByb3BlcnR5LWdyb3VwLmxhc3QgLnByb3BlcnR5LWdyb3VwLWNvbnRlbnRzLnNjcm9sbGluZyB7CiAgICBwYWRkaW5nLWJvdHRvbTogMHB4Owp9CgoucHJvcGVydHktZ3JvdXAtY29udGVudHMuc2Nyb2xsaW5nIHsKICAgIHBhZGRpbmctcmlnaHQ6IDBweDsKfQoKLnByb3BlcnR5LWdyb3VwLWl0ZW0tbGFiZWwtY29udGFpbmVyIHsKICAgIHdpZHRoOiA1MCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBwYWRkaW5nLWxlZnQ6IDVweDsKfQoKLnByb3BlcnR5LWdyb3VwLWl0ZW0tZWRpdG9yLWNvbnRhaW5lciB7CiAgICB3aWR0aDogNTAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOwp9ICAgICAgICAKCi5wcm9wZXJ0eS1ncm91cC1pdGVtLWxhYmVsIHsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi5wcm9wZXJ0eS1ncm91cC1pdGVtLWVkaXRvciB7CiAgICB3aWR0aDogMTAwJTsKfQoKLnByb3BlcnR5LWdyb3VwIC50ZXh0ZmllbGQgewogICAgYm9yZGVyOiBub25lOwogICAgZmlsdGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMDsKfQoKLnByb3BlcnR5LWdyb3VwIC5jaGVja2JveCB7CiAgICBwYWRkaW5nOiA1cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIHdpZHRoOiBhdXRvOwogICAgaG9yaXpvbnRhbC1hbGlnbjogY2VudGVyOwp9CgoucHJvcGVydHktZ3JvdXAgLmNoZWNrYm94IC5jaGVja2JveC12YWx1ZSB7Cn0KCi5wcm9wZXJ0eS1ncm91cCAubnVtYmVyLXN0ZXBwZXIgewogICAgcGFkZGluZzogMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKLnByb3BlcnR5LWdyb3VwIC5udW1iZXItc3RlcHBlciAuc3RlcHBlci12YWx1ZSB7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi5wcm9wZXJ0eS1ncm91cCAubnVtYmVyLXN0ZXBwZXIgLnN0ZXBwZXItZGVpbmMgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5wcm9wZXJ0eS1ncm91cCAubnVtYmVyLXN0ZXBwZXIgLnN0ZXBwZXItaW5jIHsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5wcm9wZXJ0eS1ncm91cCAuZHJvcGRvd24gewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogbm9uZTsKfQoKLnByb3BlcnR5LWdyb3VwIC5idXR0b24gewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogbm9uZTsKfQ"},{ name : "haxeui-core/styles/shared/left-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAYAAAAvZezQAAAEOHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjazVZbkuwmDP1nFVkCkhCC5YCBquwgy88Rdnd6+nFnbiUfMW2kxlivIwmH+defK/yBi4xSSGol15wjrlRT5QamxPNqe6aY9nxe6aL0dT1Eux4wlgRUzr8lX/tv63QXcJIGTh8EleN60L8+qJdmLk+CLkXiFjGYcQmqlyDh8wFdAtrpVsy12KMLfZ70ev8MQ3HXMPXbql6bn/4nQ/SGQo8wTyGJmFnSaYD4zUHaZnwu2EhSwcueWW4xQUDexSk+WBWeUan8HpU79wSK5HM9YOFrMPOdvl0nfR/8sEP8oFmOu+Yv63ndIvY1yH6vNUpYa57etZQR0nw5dY+OM9jYEXLZr2UMw63gbY+KUQKy9wDkIx6xYxxUiQHLokSDGi2amx50wMTEkw2U+WDZa0WMKx8SA3BKPmixAashBWgdgFewyndbaOutW91BBYoHYScThNEJP/8346OgtTzliWI544S0gF3syQEzHDmfsQuA0Lrlke4A38bz5bgKENQd5gIHW+yniK505ZbnkWygBRsV9Kw1snEJQIigW2EMCRCImUQpUzRmI0IcC/BpEFRQNNwBAanygJWcRDLAQcVAN94x2ntZ+VxGzwIQKlkM0KCYgJU3NuSPpYIcaiqaVDWradGqLUtOWXPOlr35NRNLppbNrFi1VqSkoiUXKyWUWlrlKmiOWnO1WmqtrUFpg+SGtxs2tNa5S09de+7WS6+9HUifIx165MOOEo56tMFDBvrEyMNGGXW0SROpNNPUmafNMutsC6m2ZKWlKy9bZdXV7qhR2GVHL+PnqNENNd5I+Ua7o4ZXzW4iyNuJOmZAjBMBcXMEkNDsmMVCKXFw6BwzZByqQhlWqoMzyBEDgmkS66I7dv8g9wW3kNK/wo1vyAWH7r9ALjh0H5B7xe0NasNPmyNK2Ah5GXpQo6D8slJS0pUyzmBnk/op9Q0NqfWR4ZcajEJGfNiIIDqD0mtc8Huh4fWB6uweeFeANvvhRZxgztQStwMJCXkyD1R6XgQpXTlOII1jdfQJV8eyZnvPudAIzbvmgjBxcPHOPNEyN5M/B+XUAmBrtASLyosM/g3ZUq0P6VFGgOWEcwK9JlpTZO/EdwhWUpEW/SAfP9Jyd+1F3akLadjHrBD7najwS090tFxwA5ualOcQRNy/Qm7iG7pv31rCz+LzPf2/Cco5oDB7ynuuXgJkRkub7Dl5DtPRUkUiip7hf5PCoOF54Q319HDmuBtgvHP8UXT4pYifi9aATEdxWYQj3j/wzTNxhLi3Ph/bt9WL94aB5rjrorzpAeFntf3GtjP1y2z4kMLZED42mN+UHR6FVyDWcDQhpzOAdDDT7ki19oKaw3mB//OtpvAjN54pt50buwUiquMD/K+YfEurBofj0rB9ertx4bRAtoS/AceHGj2Vzz6UAAABhWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TtSIVByuIOGSoThZERQQXqWIRLJS2QqsOJpd+QZOGJMXFUXAtOPixWHVwcdbVwVUQBD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWp2jAOqZhnJWFTMZFfFwCsEBDCAWXRJzNTjqcU0PMfXPXx8vYvwLO9zf45eJWcywCcSzzHdsIg3iKc3LZ3zPnGIFSWF+Jx4zKALEj9yXXb5jXPBYYFnhox0cp44RCwW2lhuY1Y0VOIp4rCiapQvZFxWOG9xVstV1rwnf2Ewp62kuE5zGDEsIY4ERMioooQyLERo1UgxkaT9qId/yPEnyCWTqwRGjgVUoEJy/OB/8LtbMz854SYFo0Dni21/jACBXaBRs+3vY9tunAD+Z+BKa/krdWDmk/RaSwsfAX3bwMV1S5P3gMsdYPBJlwzJkfw0hXweeD+jb8oC/bdAz5rbW3Mfpw9AmrpavgEODoHRAmWve7y7u723f880+/sBfKVyq9JFJD0AAA0YaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjk2N2IxNTgzLWYyOWUtNDY2ZS04Yjc4LWJjZGFjZDFkNWZkNCIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MzBjOGE4NS02OTVkLTRmZTYtOGVmZC0xOTFlMzIzNzRmYTAiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3ODQyMjBkOC0wZTAyLTQ5ZDUtYjVmYS0zNzZiZWViYTNlYTEiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY0NDM0NTU2MTU2MTg1NSIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjI0IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhmMDUxYzAzLTBlNmItNDgwYy1iYjMzLTljMzc0OTY1YjM3MCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMi0wOFQxOTozOToyMSIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz6o2UKgAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH5gIIEicVGwcIIAAAAChJREFUCNdjYEACoV1H/jMicxgYGBgYkTkMDAwMjMgc7CrQzWBAtwUAMwgSdDGUjZQAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/default/checkboxes.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBDSEVDS0JPWAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwouY2hlY2tib3ggewogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBob3Jpem9udGFsLXNwYWNpbmc6IDRweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7Cn0KCi5jaGVja2JveDpob3ZlciB7Cn0KCi5jaGVja2JveDpkaXNhYmxlZCB7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBjb2xvcjogJGRpc2FibGVkLXRleHQtY29sb3I7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7Cn0KCi5jaGVja2JveC12YWx1ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1iYWNrZ3JvdW5kLWNvbG9yOwogICAgd2lkdGg6IDE4cHg7CiAgICBoZWlnaHQ6IDE4cHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgaWNvbjogbm9uZTsKICAgIGZpbHRlcjogJG5vcm1hbC1pbm5lci1zaGFkb3c7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5jaGVja2JveC12YWx1ZTpob3ZlciB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9CgouY2hlY2tib3gtdmFsdWU6YWN0aXZlIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQtY29sb3I7Cn0KCi5jaGVja2JveC12YWx1ZTpzZWxlY3RlZCB7CiAgICBpY29uOiAkY2hlY2stc2VsZWN0ZWQ7Cn0KCi5jaGVja2JveC12YWx1ZTpkaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDsKICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlci1jb2xvcjsKICAgIGN1cnNvcjogZGVmYXVsdDsKfQoKLmNoZWNrYm94LWxhYmVsIHsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5jaGVja2JveC1pY29uIHsKICAgIGhvcml6b250YWwtYWxpZ246IGNlbnRlcjsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBvcGFjaXR5OiAxOwp9CgouY2hlY2tib3gtaWNvbjpkaXNhYmxlZCB7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBvcGFjaXR5OiAwLjU7Cn0K"},{ name : "haxeui-core/styles/default/scrollbars.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBTQ1JPTEwKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLnNjcm9sbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lOwogICAgcGFkZGluZzogMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1iYWNrZ3JvdW5kLWNvbG9yOwp9Cgouc2Nyb2xsIC5idXR0b24gewogICAgd2lkdGg6IDdweDsKICAgIGhlaWdodDogN3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci1idXR0b24tY29sb3I7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgYm9yZGVyOiBub25lOwogICAgZmlsdGVyOiBub25lOwogICAgb3BhY2l0eTogMC42Owp9Cgouc2Nyb2xsIC5idXR0b246aG92ZXIgewogICAgb3BhY2l0eTogMTsKfQoKLnNjcm9sbDpkaXNhYmxlZCAuYnV0dG9uIHsKICAgIG9wYWNpdHk6IC4zOwp9CgoudmVydGljYWwtc2Nyb2xsIHsKICAgIHdpZHRoOiA4cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDFweDsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5ob3Jpem9udGFsLXNjcm9sbCB7CiAgICBoZWlnaHQ6IDhweDsKICAgIHBhZGRpbmctdG9wOiAxcHg7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogQk9SREVSTEVTUyBWQVJJQU5UUwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwouc2Nyb2xsdmlldy5ib3JkZXJsZXNzID4gLnNjcm9sbCAuYnV0dG9uLCAudGV4dGFyZWEuYm9yZGVybGVzcyA+IC5zY3JvbGwgLmJ1dHRvbiB7CiAgICB3aWR0aDogOHB4OwogICAgaGVpZ2h0OiA4cHg7Cn0KCi5zY3JvbGx2aWV3LmJvcmRlcmxlc3MgPiAudmVydGljYWwtc2Nyb2xsLCAudGV4dGFyZWEuYm9yZGVybGVzcyA+IC52ZXJ0aWNhbC1zY3JvbGwgewogICAgcGFkZGluZy1sZWZ0OiAwcHg7CiAgICBib3JkZXItbGVmdDogbm9uZTsKfQoKLnNjcm9sbHZpZXcuYm9yZGVybGVzcyA+IC5ob3Jpem9udGFsLXNjcm9sbCwgLnRleHRhcmVhLmJvcmRlcmxlc3MgPiAuaG9yaXpvbnRhbC1zY3JvbGwgewogICAgcGFkZGluZy10b3A6IDBweDsKICAgIGJvcmRlci10b3A6IG5vbmU7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogQ0xBU1NJQyBWQVJJQU5UUwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwouY2xhc3NpYy1zY3JvbGxzIC5zY3JvbGwsCi5zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUU5RTk7CiAgICBib3JkZXI6bm9uZTsKICAgIHBhZGRpbmc6IDA7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLnNjcm9sbCAuYnV0dG9uLAouc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuYnV0dG9uewogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUU5RTk7CiAgICBwYWRkaW5nOiAwOwogICAgZmlsdGVyOiBub25lOwogICAgaGlkZGVuOiBmYWxzZTsKICAgIHdpZHRoOiAxN3B4OwogICAgaGVpZ2h0OiAxN3B4OwogICAgb3BhY2l0eTogMTsKfQoKLmNsYXNzaWMtc2Nyb2xscyAuc2Nyb2xsIC5idXR0b246aG92ZXIsCi5zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0Q3RDdENzsKfQoKLmNsYXNzaWMtc2Nyb2xscyAuc2Nyb2xsIC5idXR0b246ZG93biwKLnNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLmJ1dHRvbjpkb3duIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICM1MjUyNTI7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLnNjcm9sbCAudGh1bWIsCi5zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC50aHVtYiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzZDNkM2Owp9CgouY2xhc3NpYy1zY3JvbGxzIC5zY3JvbGwgLnRodW1iOmhvdmVyLAouc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAudGh1bWI6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0FBQUFBQTsKfQoKLmNsYXNzaWMtc2Nyb2xscyAuc2Nyb2xsIC50aHVtYjpkb3duLAouc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAudGh1bWI6ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTI1MjUyOwp9CgouY2xhc3NpYy1zY3JvbGxzIC5zY3JvbGwgLnRodW1iOmRpc2FibGVkLAouc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAudGh1bWI6ZGlzYWJsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0RERERERDsKfQoKLmNsYXNzaWMtc2Nyb2xscyAudmVydGljYWwtc2Nyb2xsLAoudmVydGljYWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyB7CiAgICB3aWR0aDogMTdweDsKfQoKLmNsYXNzaWMtc2Nyb2xscyAudmVydGljYWwtc2Nyb2xsIC5kZWluYywKLnZlcnRpY2FsLXNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLmRlaW5jIHsKICAgIGljb246ICJoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL3VwLWFycm93LWRhcmsucG5nIjsKfQoKLmNsYXNzaWMtc2Nyb2xscyAudmVydGljYWwtc2Nyb2xsIC5kZWluYzpkb3duLAoudmVydGljYWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuZGVpbmM6ZG93biB7CiAgICBpY29uOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC91cC1hcnJvdy1icmlnaHQucG5nIjsKfQoKLmNsYXNzaWMtc2Nyb2xscyAudmVydGljYWwtc2Nyb2xsIC5pbmMsCi52ZXJ0aWNhbC1zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5pbmMgewogICAgaWNvbjogImhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvZG93bi1hcnJvdy1kYXJrLnBuZyI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLnZlcnRpY2FsLXNjcm9sbCAuaW5jOmRvd24sCi52ZXJ0aWNhbC1zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5pbmM6ZG93biB7CiAgICBpY29uOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC9kb3duLWFycm93LWJyaWdodC5wbmciOwp9CgouY2xhc3NpYy1zY3JvbGxzIC5ob3Jpem9udGFsLXNjcm9sbCwKLmhvcml6b250YWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyB7CiAgICBoZWlnaHQ6IDE3cHg7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLmhvcml6b250YWwtc2Nyb2xsIC5kZWluYywKLmhvcml6b250YWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuZGVpbmMgewogICAgaWNvbjogImhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvbGVmdC1hcnJvdy1kYXJrLnBuZyI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLmhvcml6b250YWwtc2Nyb2xsIC5kZWluYzpkb3duLAouaG9yaXpvbnRhbC1zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5kZWluYzpkb3duIHsKICAgIGljb246ICJoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL2xlZnQtYXJyb3ctYnJpZ2h0LnBuZyI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLmhvcml6b250YWwtc2Nyb2xsIC5pbmMsCi5ob3Jpem9udGFsLXNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLmluYyB7CiAgICBpY29uOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC9yaWdodC1hcnJvdy1kYXJrLnBuZyI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLmhvcml6b250YWwtc2Nyb2xsIC5pbmM6ZG93biwKLmhvcml6b250YWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuaW5jOmRvd24gewogICAgaWNvbjogImhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvcmlnaHQtYXJyb3ctYnJpZ2h0LnBuZyI7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogTU9CSUxFIFZBUklBTlRTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5zY3JvbGw6bW9iaWxlIC5pbmMsIC5zY3JvbGw6bW9iaWxlIC5kZWluYyB7CiAgICBoaWRkZW46IHRydWU7Cn0KCi5ob3Jpem9udGFsLXNjcm9sbDptb2JpbGUgewogICAgb3BhY2l0eTogLjU7CiAgICBoZWlnaHQ6IDhweDsKICAgIHBhZGRpbmc6IDJweDsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7Cn0KCi5ob3Jpem9udGFsLXNjcm9sbDptb2JpbGUgLnRodW1iIHsKICAgIGhlaWdodDogNHB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4Owp9CgoudmVydGljYWwtc2Nyb2xsOm1vYmlsZSB7CiAgICBvcGFjaXR5OiAuNTsKICAgIHdpZHRoOiA4cHg7CiAgICBwYWRkaW5nOiAycHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lOwogICAgYm9yZGVyOiBub25lOwp9CgoudmVydGljYWwtc2Nyb2xsOm1vYmlsZSAudGh1bWIgewogICAgd2lkdGg6IDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKfQo"},{ name : "haxeui-core/styles/shared/expanded-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5AoNCwkgHyJHKAAAAJBJREFUOMtjYBgFAw8YkTlrt2xRYv77/+h/BgYJHOpf///LZBMU5H0LJsCELBvs43OPkeGfOwMDw0csmj8z/GP0RNaMYQADAwODv7//JSYGxkAGBoafSMK/Gf8zhgYG+pxFV8+EzZ3+/j77/zMwJjAwMPxjYGD4/5+BMTUgwGcnyQG0fuOW4vUbtxSPJhUaAwCz8idCJS/GkgAAAABJRU5ErkJggg"},{ name : "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMaximizeButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVFBQUFBbk93YzJBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQUtrbEVRVlI0Mm1QNER3WU1FQURqSVlRUXdnd2dJYmd3alBlZkNjS0JrbVFBVE8yWUZ1RjJFcWJqQWJxb1FNTEIvWkpGQUFBQUFFbEZUa1N1UW1DQw"},{ name : "haxeui-core/styles/shared/down-arrow-bright.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAJElEQVQImWP8//8/AwZgeieriib0TlaVCUIhCzEwMDAhc+DSAPKbCiUI9YmvAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/down-arrow-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAJElEQVQImWMMCAhgwABMc89cQROae+YKE4RCFmJgYGBC5sClAQxaDmYcnISCAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/help-small.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABsklEQVQ4ja2TS2tTURSFv3POTapoWjAqiFgkotRAin8gcx1IOxQEHTiItFL8B/ojBJuJAx+dWjpxoLOAU7UKiZJBMlBI0YJJqTfXe/d2kJ6Yx0UHukdnr73XOmufB/xjmDRwfr1XDESXMPYCACqfEjWb7dVc/Y8CherunEjmoVGupYgryoZLopXmWr47JVCo7s6pZGoopb+43nZxVPYigUcPdh6Si8cdV845LPCqFfOmI760mASZB8CNoYP59V7RCR98fvKI4dnVw7S7QpQoF/OO61shX/aGIqpOi63KbMMCONHl0XGOHTK8/pxwvxZRfRvjLJzOjZ+dFZYBLIAx9vxotfFNuFfrs7MvVC4FtL4L73dkTEFkwAkARNG0+7xZynDqqOX2i5AwGa8Zg/52gDRT+IQxPNr+SWdfp2rGDDh24MA8B6a6vv5QOnsyCR9MwOZQoL2aq6NsTHZdLjjKZ4JJGNCnrcpsA0begUuilSTIloBFj9192Z+2Be+yM/07PrF+0VzLd10clUGf+HEmyAL6ODsTlj/eOtHzYOpnOlvtLpCwZI1dGAwsdQK2vO3/Gr8AlhyqPdEFcaYAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/default/ranges.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBSQU5HRQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoucmFuZ2UgewogICAgYm9yZGVyOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBwYWRkaW5nOiAxcHg7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBmaWx0ZXI6ICRub3JtYWwtaW5uZXItc2hhZG93Owp9CgoucmFuZ2UtdmFsdWUgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMXB4Owp9CgouaG9yaXpvbnRhbC1yYW5nZSB7CiAgICBiYWNrZ3JvdW5kOiAkbm9ybWFsLWJhY2tncm91bmQtY29sb3ItZW5kICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1zdGFydCB2ZXJ0aWNhbDsKICAgIGluaXRpYWwtd2lkdGg6IDE1MHB4OwogICAgaW5pdGlhbC1oZWlnaHQ6IDhweDsKfSAgICAKCi5ob3Jpem9udGFsLXJhbmdlIC5yYW5nZS12YWx1ZSB7CiAgICBiYWNrZ3JvdW5kOiRhY2NlbnQtZ3JhZGllbnQtc3RhcnQgJGFjY2VudC1ncmFkaWVudC1lbmQgdmVydGljYWw7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCi5ob3Jpem9udGFsLXJhbmdlOmRpc2FibGVkIHsKICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlci1jb2xvcjsKfQoKLmhvcml6b250YWwtcmFuZ2U6ZGlzYWJsZWQgLnJhbmdlLXZhbHVlIHsKICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRkaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLWVuZCB2ZXJ0aWNhbDsKfQoKLnZlcnRpY2FsLXJhbmdlIHsKICAgIGJhY2tncm91bmQ6ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1lbmQgJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0IGhvcml6b250YWw7CiAgICBpbml0aWFsLXdpZHRoOiA4cHg7CiAgICBpbml0aWFsLWhlaWdodDogMTUwcHg7Cn0KCi52ZXJ0aWNhbC1yYW5nZSAucmFuZ2UtdmFsdWUgewogICAgYmFja2dyb3VuZDogJGFjY2VudC1ncmFkaWVudC1zdGFydCAkYWNjZW50LWdyYWRpZW50LWVuZCBob3Jpem9udGFsOwogICAgd2lkdGg6IDEwMCU7Cn0KCi52ZXJ0aWNhbC1yYW5nZTpkaXNhYmxlZCAucmFuZ2UtdmFsdWUgewogICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWJhY2tncm91bmQtY29sb3Itc3RhcnQgJGRpc2FibGVkLWJhY2tncm91bmQtY29sb3ItZW5kIGhvcml6b250YWw7Cn0KCi52ZXJ0aWNhbC1yYW5nZTpkaXNhYmxlZCB7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7Cn0K"},{ name : "haxeui-core/styles/shared/right-arrow-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAOElEQVQImWPYsmXLWxkVCGJiYGA4PmMCAwMDAwMDE4SC8Bm3bNnCAANMcJZlRgETnAWVgbAYGBgAg4cO3PCuD3sAAAAASUVORK5CYII"},{ name : "haxeui-core/locale/it/std-strings.properties", data : "c2F2ZT1TYWx2YQp5ZXM9U8OsCm5vPU5vCmNsb3NlPUNoaXVkaQpvaz1PSwpjYW5jZWw9QW5udWxsYQphcHBseT1BcHBsaWNhCnNlYXJjaD1DZXJjaGkKCnJlZD1Sb3NzbwpncmVlbj1WZXJkZQpibHVlPUJsdWUKaHVlPVRvbmFsaXTDoApzYXR1cmF0aW9uPVNhdHVyYXppb25lCmJyaWdodG5lc3M9THVtaW5vc2l0w6AK"},{ name : "haxeui-core/locale/pt/std-strings.properties", data : "c2F2ZT1HdWFyZGFyCnllcz1TaW0Kbm89TsOjbwpjbG9zZT1GZWNoYXIKb2s9T0sKY2FuY2VsPUNhbmNlbGFyCmFwcGx5PUFwbGljYXIKc2VhcmNoPVBlc3F1aXNhcgoKcmVkPVZlcm1lbGhvCmdyZWVuPVZlcmRlCmJsdWU9QXp1bApodWU9VG9uYWxpZGFkZQpzYXR1cmF0aW9uPVNhdHVyYcOnw6NvCmJyaWdodG5lc3M9THVtaW5vc2lkYWRlCgpzdW5kYXk9RG9taW5nbwptb25kYXk9U2VndW5kYQp0dWVzZGF5PVRlcsOnYQp3ZWRuZXNkYXk9UXVhcnRhCnRodXJzZGF5PVF1aW50YQpmcmlkYXk9U2V4dGEKc2F0dXJkYXk9U8OhYmFkbwoKc3VuPURvbQptb249U2VnCnR1ZXM9VGVyw6cKd2VkPVF1YQp0aHVyPVF1aQpmcmk9U2V4CnNhdD1Tw6FiCgpqYW51YXJ5PUphbmVpcm8KZmVicnVhcnk9RmV2ZXJlaXJvCm1hcmNoPU1hcsOnbwphcHJpbD1BYnJpbAptYXk9TWFpbwpqdW5lPUp1bmhvCmp1bHk9SnVsaG8KYXVndXN0PUFnb3N0bwpzZXB0ZW1iZXI9U2V0ZW1icm8Kb2N0b2Jlcj1PdXR1YnJvCm5vdmVtYmVyPU5vdmVtYnJvCmRlY2VtYmVyPURlemVtYnJvCgpqYW49SmFuCmZlYj1GZXYKbWFyPU1hcgphcHI9QWJyCm1heT1NYWlvCmp1bj1KdW4KanVsPUp1bAphdWc9QWdvCnNlcD1TZXQKb2N0PU91dApub3Y9Tm92CmRlYz1EZXo"},{ name : "haxeui-core/styles/shared/info-large.png", data : "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAOn3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZpZdhs7EkT/sYpeAqbEsByM5/QOevl9E1WkNdF68rNoiRRVxJARGRmJsln/++82/+Er5upNlFxSTcnyFWusvvGi2OurnZ/OxvPzfIX7T/z+7n3z/IPnrfDrypLu6x/vu+cA11PjlbwZqIz7D/39H2q8xy8fBvL3ynRF+nreA9V7oOCvP7h7gHZty6Za8tst9HU9z8dOyvVt9Ecs75f96fdM9KYwT/B+BRcsP32I1wKCfnsT2nmhPwsXOh5NL+VnDI/BCMhXcbJvVmU+ovJ85V68/wGUkK73DW+8D2Z6Pn/5vpMP798DmhPitzwZz5nfvZ+Tcx+38/jeexaz97p212IipOne1DM6+oILOyEP52OJR+ZbeJ3Po/IoBvYOIJ922M5juOo8sd4uuuma226d5+EGS4x++cyz98OH814J2Vc/Asx2oMPDbZ9DDTMUMBzAG3jXP9fizrz1TDdcYeLpuNI7BnMX/P7vPF4OtLdSngCXZ6xYl9ekYBmKnP7kKgBx+8EjOQF+PD5+Ka4BBOWEubDBZvs1RBd3c0t5FA7QgQuF5yvXXJ73AISIuYXFwProbHJBXHI2e5+dI44FfBoDFZLGdyBwIn6ySh9DSIBDxjA3n8nuXOvFX2+jWQAhIYUMNDU0sIoIG/zJscChJkGiiCTJUqRKSyHFJCmlnFT8Wg45Zskp51xyza2EEouUVHIpptTSqq8BcZSaaq6l1toakzZGbny6cUFr3ffQY5eeeu6l194G9BlxyEgjj2JGHW36GSY6MdPMs8w623ILKq24ZKWVV1l1tQ3Vdthxy04777Lrbk/UnLlg/fT456i5B2r+IKUX5idqfDTnxxBO5UQUMxDz0YF4VgQgtFfMbHExeqPQKWa2erJCPKsUBWc6RQwE43Jetnti9wu5d7iZGP8Vbv6BnFHo/gZyRqF7gdxn3L5AbWq1GTaYg5CmoQbVBtKPC1ZpvjQtav/42fz0A39pIGIT47ZV9uozxZ0l9SAdyTSxJPgAMKQzW5vFbXEyy2aTw/dKGvOKKKXd99o9IvI+nQGR4Lmj6z4TfyO5ynQLOYBg1cZFmQ34gFV8n22EJCHsVHcn6mvXEICJ+I8+696AuHMf0w1rnjOnsHXekXXefOZlWUVyaJoPe1yrnEB2PhNnbnmy+LlnDcWkNfhkKH2zPhcm4A+IlPeXo7PJMz51SWfg/XuGaXQCIH9MEPNOJEXvYXcum22WulZfK4zBoE7G6idqYZMge+fZz+edCfGeXB5Bfbu5PgOcYlCf7SQqc7kvB2/bfDX6nwxufo2eIMXmT4sgpNYz+e6HJYEWlC9cF+ogiMPuSHDaTnlKH6Gn2oY002afI6IEzXe8Gemua8BbUdVn6q5fa68EhoXnqWvMs53AU09GLm20JMvMAHoz987614I3fJjJYF9eG9tLHNLh9bZjp/KS8+b75NBFaKVIs+2lKtHmZAs+pmod/5AhssK4eu0C+MkdYrRRrlBcfmyD2B/e1LZmwz60KcsNLiwrtF0WNc7L6IbolT58XQ66T9Q81rTaaqknxLDEkWyMY5A6nYuWzQ2BjLrgvlg0Lol/2UcD8Etan5lA1RzGzradyxJif15hyb55ppIP49oKeUhfLvZF0EUK65kJPUXOi0XPQXtY0jq4Bfao7tL4DwiliaLL2SmY1JysHH3WbfNNnegzukCaoK8DQnwQkLK2Q3o19jY1srYhEjUYiEgoMWM1FgqNkK8JWbKSUYo8rDATxKqMCSB2ZEGF/KJuLHyki4jXiHzEnNcUxZfPCQXPkHtiQDQteutS24RhESf43DglOwOHqmJhj6QQSTKANSfcrsoEGUiiUahldsAHgS29MqCD1VpZGpJRlwmqOvMscctgkF2tNPvtQj8+m49vXJyO4DNlbO8BcrjeCmskN/3iK3WwmkuNHAYAW1yxZGaxnbLszAHGNoq8bynVoFm9sAcbM0OlRQOzW31QY+GB29E7bB7AKw07Ei9mZVllvyEisjFfMQ8bjgeXi3NkgVxZAOeyIQ3sl2kgsDH5yhJm+pUJugL/SIS385vfZ0Jbq+I93Fxz9Ji9S4pbz6NpjdhlZunMWvw2EXnsgmUR1lICgtC37+RNo5dBBFevqyfftFKyazS2SKuklNUXvnfUIA+XTcMJzdZGdwhJlNKL7Mq6XRmnWjBWgzYTHFfA11RBPvyI2ghtwp5V/kHcDJGAdimFBy4LRqJQ7cgaC6zjtQ3QpJNdIt5G1jTi/YP0jgbLaZvV6Qag/7g4r8leEQpJAYBBfYRD7C6QPDTyO5N4BtCu1KNDYxflE2Wpm5mP6jarywQPI7LqKVw4V+wYf80tmuFQlha8UEzCKK10fCfFBMc7VrSQYTctwjCbpr1Q8ihrETeSc1VzCtnjKJFKW2liZ9FiReA8QSGuSUrBarSG8xgEPsRNzlrsQQu6v1NVULC6nlQxLzlMLNxMVCG+iZoTj1WM2aFxJGDaKkMlNLwlhXKJkaRnMqgEm5+o94I5S6/HTcxGrFktG3FTcaKkQKEwYARetklUB0pJ0cYPmyRzSLYbenTSM0DUKhHTRc3NJ8i5toJW0t+m4tizjhvxC1dyrI7BpYX4pkLAg13Kyoj4uhxSI1THclnVA8wGyifVTOdnl9WDGvGGD3Tab1wtCApqfegFpcDt0TDNczWNPF0Gl9+20WqDby7fCAWRstyYDpmnRQfjTEKSF+CXN2gK4cfnqz0SpYESDQdBC3AYZ4QQ6EoXwhyTY7/4+YiNo7P3aoVYfVhXQLE4IZ8MRANPQW8QSZ1enoaeBa4uao9UWoRKHBDCHaO75mwJR3m91lOqr59xpPT925+sTtVHq1mtOsJ2nBqjmVaVFeLEeKaJbFQW3Tw0VU1CKtBEZj5JC5WpcZQYKhe4YNyYBk1QIYDzcHJeI5EqxLjQ3ulxCpsc4xpp60gGhmofli8VpPg6Pe/zsIaa26GRaxCPHWTbI+pOQqmNFq9z3ttHGpb5bvtOgaeB7BcWN5PizSTS4MbDLB8op8Bx+W0yEoVg+Wh7PZHHcUsEmYqJ6EMRRbqvlQxWLPeU5kbfvsVf55R0z/meAw8GMOHUCR/oR/M30Kd0FFOb17ZgqnHuKIbzNLIJc5dE6UDY8SzMKNp+klj5XX+ywsPiGxXKS0bLJaPTXTIaUDq80OYy+tc2nyV6YmMSRYC5KZD8uv3a22ifk/bbPgcnc3kzosewHj9H7K+cLpXOIFw5jT/WwwJybZXUzezqDfry8YAnVzd2gae5xFDU9Kxaedki9ByiRsq4O+WD0F9JS/ry+8/pdJHpSSWjuL6h0ofVfEUma7+ik3nO+S/FxNx8+td0OsLG7nEEuhb/cS0xHSguSigYj7WUN8IGE4bpKU0tVXs6Ov5wMqp7MoTwylR+XhN8CO89wS+szSewfyWnexPnC2MhCGx9fLE58zOQX2Nsfgbya4zN0YsfVoyvMDY/1owXGJufgfwaY/MzkF9jbH4G8muMzQ2yfAdy+yaRzW9BRk8L3iwd60h326mI8VhH77XdtXRGo2ijjvNnnKuKgLJN3bU8anaUau+pzY0WpOptkVDoEN0xONjAVedNI1lX3TFU4rvw4K+R45YdFr5S4zeepg064SBYeZp6SKgNDi2z/2xHzWur1rFqV4Q8a9BTKdReu9JUtWc9cNtDDwXcPApifFMQQX3hOdPlH7N6rVZZ656z5ta5mrpRqntM0pWQufmts+znLG9J9b7OlzMYe2zBYut03I0XZxq2ds448OPpW1fqw4jScJAtrLodVnj4WEaZtMDW683MOhY2G3NNIuBlSg0KON1XTFStTufgxCVvix5xYHNHDbOcbodadvGtT3MTbseLcFh+BiOr9kqzNEIzqLWnb4Nt0y4JBTtF09KPLb07ouWNo8v90BG5tan16rwc3Vs657KtRT3FFjv1YDbaxD8vei57DqB8NjN1SKjtCuO6xxkTmGi1P4cvbOQmziQirxpB8/MT55GS+o2O2GDh9fQq05GbNtNELa/jq1hoVdp4OPioDl7PifJp1vEeiQYE35tlsVI9Jgr+bkhY0dae8hX0mogl23BakaOH/Ugz+aRtyDnedip2poQU1WLhjun06CGPxzp3NKJ2hGVH7Hav+Syr6SJmWTS8dK1CHOlvKx4Mo9UVLHfapdq62z7VOX4eOfPVH1h3CTkFPc8u49lhIRRH/k53BRey4BTJKXBPyVRlhzvH9rH4JzusIweUvcPTMDmNh3Zm+Cr6IUfQ6ULtKtoap9tEZD4Sv/WtrC2iSz1NG/QARA9pUK0VHmc0RtUSIaRbOFaw+6wC0UJ3ZBBycmquHvproRKSUddP8xcoR61orPXWUxazbThFp+pYd27ooeSdG/19bgz/KTdOaths/H1Ums/ZZBiPk1Jb+bd9pN9Kj/yIP7nBYk+2+nGtiJA2CiNrAg+lmd6Gvml2jiy9HhCQq2LYhXeHZedgpBIF1oF/iHvENFGhc3a8T7i66sFGXa5UQ0aYQncv2UhqlXxhIq93bPQ8oKR0KxfYe72z0imp7HeEWTXfgIymjt7S5ucZjSEz5eenjg/hqqeK2O66iWfp9cPSZ50oEZ3MuTHQZUiH4XpfoLJ0ZdbKNDPpgDYoFMkE/ILzct16mGmnzVR664EWtbpY79Ocoqc5adtee+x67wAm7YyW6H1YIl8NjWvYZOm5maSHB1HuOz601aejmu10VOW0Ou3cTyrz6oK63PeT7OVqlbEkASi73vvuZWm9rgN9kZ0rxed3o+v9pFbMdUPp3RTzqhub8a8bPGnR4i3728HNV6P/yeDm8+hozu8Gv3zmp+HNy8XPoWcQpGKc1D5Jik6oE5s1VK1a8Xgmf1SjMoF5EOprPoEsFvTQo7vUEH79XwdW70S44SjqeuZ5NNBoImQ+QGqSWSo8+Ct8xsbtYam7rxdBEFoIUsujRH+s0OYPMuPL5786EM5rVvN/nYTxBvtcdegAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1IhUHK4g4ZKhOFkRFBBepYhEslLZCqw4ml35Bk4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAqJeZanaMA6pmGclYVMxkV8XAKwQEMIBZdEnM1OOpxTQ8x9c9fHy9i/As73N/jl4lZzLAJxLPMd2wiDeIpzctnfM+cYgVJYX4nHjMoAsSP3JddvmNc8FhgWeGjHRynjhELBbaWG5jVjRU4inisKJqlC9kXFY4b3FWy1XWvCd/YTCnraS4TnMYMSwhjgREyKiihDIsRGjVSDGRpP2oh3/I8SfIJZOrBEaOBVSgQnL84H/wu1szPznhJgWjQOeLbX+MAIFdoFGz7e9j226cAP5n4Epr+St1YOaT9FpLCx8BfdvAxXVLk/eAyx1g8EmXDMmR/DSFfB54P6NvygL9t0DPmttbcx+nD0Caulq+AQ4OgdECZa97vLu7vbd/zzT7+wF8pXKr0kUkPQAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6ZjlkNGIwNGMtMGNiMy00OTVlLWE1MzUtMjE0ZmQzNzczNzAyIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFkY2EwYjljLTBlNzYtNDY5ZS1iYmUzLTlkNjQzMTQ2ZDk3MiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU2ZjkwOWIyLTI2ZGUtNDRlMy1hYTJjLTNjZmRhNDFiOTQwYiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0MzE1MDQwMjE2MDAwIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NmY4ZWQxYzYtNzdhNi00MjY4LWExNGItZWVmYzNhOGVkZWFhIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTA4VDExOjEwOjQwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Ph+WehUAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfmAggKCihxcOwWAAADcklEQVRo3u1ZS08TYRQ9d2baSp8xVZRCwkNwI1RFYKMbdKPgmsQVMTEhaOI/0MBfIALpkh3BtdWNj0QXpIASwMSgoSygSrEkdEoJbWeuC7vAtjIdZiiTwFlOJvPd8933GeAUpzjZIFO+MsVC/ZZcK6hoYFBAAM4x4AZgz7+RYUAGkCBwjMHR1bh3HUPEx0rg0mjax6R2AhxkwKvz5CSrtCApQuTHU2eyogSaR2SXIuE2gGsARIOXqBDwRRL53fKAN33kBJrGUm0M7gFQZXI4p5kQXh30LB0JgRshFreUVC+A9iNNSsbsWcn9em6AFNMIBEJsO6PIfQxqqURlYebvGckzFRugrNa7Qjk3X0njAYCIWhxK6sGVKRYNE9hSUr2VNH5/uu3+Tt0zRKBpPBU86pg/MJSAjoZRufVQBGpfJJ3MfPfYOy2h93Io6dRNwC7QHQDOwx78MGjDdL8L0/0u9LfZjHCoyqrUrYtA80jam29Sh0JnjYhnNx2odhKqnYTntxzoqBGNxFJ7U2jXVzYBVVK7jHTYq9VCUa0ufKYToppTOssjMMTExEEjp83H1cJkxPyGaigXBOIgpljQJFB/Ua4D6xzMCjD7U8Hwpz1s7DA2dhjDH/cw90sxWpG8jYlkTeFzqYiRigYzqsfEYhYTi1lzKxKoEcD6gR4gpoBVlxdGsW1FBFSC38ILmF8zhAjwmHHSyqC7sKub4QJPOWXUbmEP2HUPc1ZHKQIZC9ub0SSQVw+sqqHImgQERsLCHkhoe4A4Ztk+wMW2lQghjlo2YVmMahJYjXvXAWxb0P7tlU2ntgcwRMxMixYcIxZKSZEl+4CkCBEAioXsz+VImNGlCzWNyfcZ6LDI9UeiTzxhXTtxxq6+BZC2gPlpm8QfdC/1a498u0wIW4DAq4NE3wNnodVBzxIxZo/R+Ej0seer3lno37H4vDtMwLdjmBuW6+PuN9rTRRkIhNhmz8l9RJWSGGl5T3S9NEXcBYDYAGX9kmeSUJFwitTHXZPlGF+2B/ajYVRuJUIPDKh2/8EOgLBWzBsmAPzVTe0idYNxvdRaqrdJgfE561Dfrz3y7eqfsA2gbjztlVS1i4jbAPj0zjYMWsiRMLM2WOGffMXzE1PjhWSAQI156cOfF8fs+zapJAgJZo4JLEZXNp0xM36znuIUJx1/ADC8NXMnPCP6AAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/window-expand-white.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVorDnbwa8hQnSyIijhKFYtgobQVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi6OSk6CIl/i8ttIjx4Lgf7+497t4BQq3EVLNjAlA1y0hEI2I6syr6XtGDYXTDj0GJmXosuZiC6/i6h4evd2Ge5X7uz9GrZE0GeETiOaYbFvEG8cympXPeJw6ygqQQnxOPG3RB4keuyw1+45x3WOCZQSOVmCcOEov5NpbbmBUMlXiaOKSoGuUL6QYrnLc4q6UKa96TvzCQ1VaSXKc5giiWEEMcImRUUEQJFsK0aqSYSNB+xMU/5Pjj5JLJVQQjxwLKUCE5fvA/+N2tmZuabCQFIkDni21/jAK+XaBete3vY9uunwDeZ+BKa/nLNWD2k/RqSwsdAX3bwMV1S5P3gMsdYOBJlwzJkbw0hVwOeD+jb8oA/beAf63RW3Mfpw9AirpavgEODoGxPGWvu7y7q723f880+/sBXHpynoD2GeAAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCxsJICvK6FXdAAAAg0lEQVQoz8XQrQoCYRCF4S/slWyzmCzCts0mo2mtRoO3YN0b2KsTDILFIIr6GBxRFn+2iC9MObwzDCeln4MMRQevQJbQ4ITqg1yF0yRMcMQF8xfyDOdYmN7DEfZuLJ/kRWQHjNuXSuxCqGNEVr77dYCNB1sMv7XRwwpr9LtWnSNPf+EK5KylPDiubigAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/restore-button-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAIBXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVltduSoDv3PKmYJloQQLIcvnfN28JY/F+yqJNXpnk7iqsQ4GAvpXiEhEub//+fhH3yk5CNEtZxKSgc+scTCFTf5OD91X+mI+3p++tXSx/7wfMDoErRy/pnTNf7RT08BZ1Nxp+8E5UsQtY8PSrzk5xdB10SyNGLcjEtQuQQJnw/oElBPs45Usr03oc2zvd4/YcjLNFxmu4ZdT1//jgb0hmIeYZ5CcuAqwqcCsn45SMUDwpXFMBCDcC9iuB7yMAmAfIbT81OgkS9V46eDPrL1uKPP+8MrW5GvIfICcnq2n/YH0s9Z2dC/mznm644/9ss45qnRC/rr131k3zbDihoToE6XUQ9T9h3GNUyxps4BqqXD8KsQYftb8M3w6g5XGHDYhm+nQgwmnCINquQ0d9upQ8XIMzC4YubOsjszuCvcZfEX15ecTYoMyeC1b9qj8FMX2tOWo4c9W8bMgzCUCcJo+cVXv+GrL7ivpUB05CdW0It5gQ01FnPrimFghPwCVTfAj+/rZ/EqYFAXymuJFADbThFN6S0SyCZaMFDRnmuQbFwCABGmViiDlREJrJEoJTqM2YgAZAZBFaqzRG5ggFR5QEmOIgncZF5T4xWjPZSV0R3Qj2AGJlQSVlgGQxVkxajwH4sZPlRVNKpqUtOsRWuSFJOmlCytoFhNLAZTS2aWrVjNkmPWnLLlnEuuhYsgaGpJxUoupdSKOSskV7xdMaDWxk1abBpaatZyK612uE+PXXvq1nMvvQ4eMhA/Rho28iijTppwpRmnzjRt5llmdbiaS/Do6snNsxevT9YuWn/5foE1uljjzdQaaE/W0Gv2EEErnOjiDIRxiATGbVEAh+bF2ZEpRl7MLc6OwlgVylBSF2eDFmNgME5idXpwF/hkdDH3I96CxQ+88XeZC4u6LzL3K2+fsTbqzqayGVqrcIF6CFYfxlTO+EGu+rUNv3vw1faPgoTNwQ216NCoTJPVDmfxnvK6B55piE8rofvqACDuVGcCerN5QnwsbdSeZ67RiUfpqRWscs99SlbyiaW+3uwMHnCHeCS9TszsRdeDLW3umRXR3WotQxnRIMUG5KXRqUkDLUsT7aeWgdsSztEma5NCiCZcnEo3sAwLWga94N5n3ca0EQViD9UKxynoKseo5jBN1l8HNFr6RvMOt027TzpUXS9PdOdhyyujN8pF54BH+hp8WibhnV0EFYBtbzCpTD2htQ6fgBAacG0fOrGlaKmUkd8jhAT5itCbrMXTlrZlAZdTGjn2eMcvwsJpws+FhYdqPxUW3tv5E2HhFbTvCgufMfAdYeEzBr4jLPyOzq8KC3/yja8IC//laJ8JQz44IwKiKl0RIZQzJHSE9n7GHcXCGrPGmeORaot5NnmGpTMovYWkZ0DCzt93GO35GUQQ0FdE4h2QEOKwtlcwGmSOiDCHsVX2qdoMUZ8bthGthVMHWTpUQzgpyOS5YceRRMpcCQMZo8d2vAQTjVA6T6SjsVJmD8mkD0lHbo7lLd60l4k/lslveuSJnKZj7YeApqZ43iD7Ptrw2vHX7QnpBWi1sIIjrEEkPE5rkDolKjIPkEISi1DUOwx6UzUCGq4z550ikB5RiyFl57qKsvrT9nuCXAacZ4dh5rxCNjzb0UDlwq1jzzhWLlib21x34FafuFaeERuqAxutHq1j6wAq8jX8gLN2JEixLRlv7AyHd2S/gzzu+UwMa9YBNzTHNgqTItv15ZCkqCdR1cDzOCAhIuN1x15m6+3cHdujL4MUfvPgndJ/p3N4VbqlrTXc703tS+s/QI0EeQ/UFTu2W6CGH90D9WbtDqgRau+BGov2HqjNwj1QzxnugRqs3QM1tn73QO0z3AP1TpB3QC053AM1ssg9UO9QewfUuYV7oF4J8haou4d7oP41Zn8TaoTae6AuHO6BWj3cA3WRcA/UrzH721A3D/dA3Xq4B+rp4R6o6+mQP4f6Y8z+AdQ71N4BdYRn3wL1jtl3QL0d8g6o38fsH0GNUHsP1G2EL0I9bR5bo55Ls323znk32Kh/aFgWtda90z4RKSTJUc91Pt6M03WkQ0Mh0uPWFbVan6hg5llCjKP3H1cj4XFTp8LouopfR932emZUtR0j7VoJdVakBEx36VaplN4sB28dRqFWLGOdtFKjgipwap6o9RIDHiY7SLOlA5iUjMGoXjvjSrvW7j5TOXdsqFl3WTx5OQEM7lNjFTZLqayiehVl0uOqkeO0nMGXuUQQ37zxmSCJdFbyY8qpGSU/HEV3Ho5CNhbuxVBHr5N7lMuo9bK0TGClpmazDlTIXlGGB0XtW2JCDUxtnaem3MvpSYk3HX/JRvhrWn7PxuYifEKGpjY7Ctg6oo2CQltr9VKIlvej1k2lAvz134gIEEz0GBJRQjBKek0D0ruPVPF6LiJnuWzaAaoQHBITqM3Ba11ggqo+KFUpWtRilLBV0XLsKlyP77SWZC+RI5cBQrtrK+epY1nni9dZbJz7BLSO6wQUnE8YBt35WBCktI9oLKS9tr4hDOZBFl2iNBgP8XEe4FptMN0/vvlQYp3CEjxmnYWw7lNYX+e18HEEKzhkXf8QLWOt5C0Er28h8TzFGXsZHPsAiubjQLpcB9JxCao2WgyIO0khyc6woCJMp3maZDbVBO/dJtVGDkdoCkuwSlo+j0l63E34HlEfWqumtOjXqWXm/JtzGaA31j90/wXQ+Ve3hRC3UwAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6VaKw528GvIUJ0siIo4ShWLYKG0FVp1MLn0C5o0JCkujoJrwcGPxaqDi7OuDq6CIPgB4ujkpOgiJf4vLbSI8eC4H+/uPe7eAUKtxFSzYwJQNctIRCNiOrMq+l7Rg2F0w49BiZl6LLmYguv4uoeHr3dhnuV+7s/Rq2RNBnhE4jmmGxbxBvHMpqVz3icOsoKkEJ8Tjxt0QeJHrssNfuOcd1jgmUEjlZgnDhKL+TaW25gVDJV4mjikqBrlC+kGK5y3OKulCmvek78wkNVWklynOYIolhBDHCJkVFBECRbCtGqkmEjQfsTFP+T44+SSyVUEI8cCylAhOX7wP/jdrZmbmmwkBSJA54ttf4wCvl2gXrXt72Pbrp8A3mfgSmv5yzVg9pP0aksLHQF928DFdUuT94DLHWDgSZcMyZG8NIVcDng/o2/KAP23gH+t0VtzH6cPQIq6Wr4BDg6BsTxlr7u8u6u9t3/PNPv7AVx6cp6IJdMnAAANdmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDoxNmEyY2Q5Zi05NWVmLTRhNDMtYjVkNS1kZjgxOWM4ZWY4ODUiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MmZiYTdjODEtZjIxNS00ZjNjLTliM2MtNzEzNDkyODk3MTdhIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YTQ1ZTE1ZGEtNDM4YS00YTE5LTkxODQtOGU2NzdiY2YxMWEwIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2Njk1NDE4Mjc3ODI3MjAiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMiIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjI6MTE6MjdUMTA6Mzc6MDMrMDE6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIyOjExOjI3VDEwOjM3OjAzKzAxOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Y2I1MTQ2YTgtMzZkYi00MGQzLTg3ZjUtNjU2MDNiYjkxNmY1IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTExLTI3VDEwOjM3OjA3Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgxsSmoAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAAHdElNRQfmCxsJJQeFR817AAAAWElEQVQoz2NgIBEwwhjrTzw+9+L9d0N8iiUEOc8zwTiEFGOomb791n9CGqZvv/WfiVQ/MBFjMooGkm2guQYWGEOUn+MEIf9ICHKeZyDV0yzEmJzpqQZPEQBDDCPo63xTewAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/maximize-button-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAA/SURBVChTY2QAgv///4MoogBjXWe/A5AGYWLAASYgQaxiEHBgANrQAOUQBCC1IBtIAiNSA8kRR1LSYGRkZAAA0DsQaJvlZUMAAAAASUVORK5CYII"},{ name : "haxeui-core/locale/es/std-strings.properties", data : "c2F2ZT1HdWFyZGFyCnllcz1TaQpubz1ObwpjbG9zZT1DZXJyYXIKb2s9T0sKY2FuY2VsPUNhbmNlbGFyCmFwcGx5PUFwbGljYXIKc2VhcmNoPUJ1c2NhCgpyZWQ9Um9qYQpncmVlbj1WZXJkZQpibHVlPUF6dWwKaHVlPU1hdGl6CnNhdHVyYXRpb249U2F0dXJhY2nDs24KYnJpZ2h0bmVzcz1MdW1pbm9zaWRhZAo"},{ name : "__ASSET__:bitmap_funkin_ui_transition_preload_LogoImage", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQjRBQUFBUTRDQVlBQUFEbzA4RkRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS21XbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0Z1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhORFVnTnprdU1UWXpORGs1TENBeU1ERTRMekE0THpFekxURTJPalF3T2pJeUlDQWdJQ0FnSUNBaVBpQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQaUE4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWlCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SWdlRzFzYm5NNmVHMXdUVTA5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5dGJTOGlJSGh0Ykc1ek9uTjBSWFowUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmMxUjVjR1V2VW1WemIzVnlZMlZGZG1WdWRDTWlJSGh0Ykc1ek9uTjBVbVZtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmMxUjVjR1V2VW1WemIzVnlZMlZTWldZaklpQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUlIaHRiRzV6T25ScFptWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZEdsbVppOHhMakF2SWlCNGJXeHVjenBsZUdsbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMMlY0YVdZdk1TNHdMeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TQW9WMmx1Wkc5M2N5a2lJSGh0Y0RwRGNtVmhkR1ZFWVhSbFBTSXlNREU1TFRBekxURTFWREU1T2pNNE9qUXhMVEEwT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREl3TFRFeExUQTNWREF5T2pJd09qRXpMVEExT2pBd0lpQjRiWEE2VFc5a2FXWjVSR0YwWlQwaU1qQXlNQzB4TVMwd04xUXdNam95TURveE15MHdOVG93TUNJZ1pHTTZabTl5YldGMFBTSnBiV0ZuWlM5d2JtY2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOVEk1TmpkbFl6SXROekJoWXkweU5qUmpMVGt4TmprdE5qZGlNRFkzT0dRek4yVTBJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0poWkc5aVpUcGtiMk5wWkRwd2FHOTBiM05vYjNBNk56WmpPVEkxT0RJdE5EYzNZaTB4TVdVNUxXRTRNamt0WmpVek9EYzFNakV5WlRjeUlpQjRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlpUYzRPVFZrTWpVdE5HWmhPQzFrT1RRNExUa3lOVGN0TkRZM01EazBPV1prTlRZNUlpQndhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQU0l6SWlCd2FHOTBiM05vYjNBNlNVTkRVSEp2Wm1sc1pUMGljMUpIUWlCSlJVTTJNVGsyTmkweUxqRWlJSFJwWm1ZNlQzSnBaVzUwWVhScGIyNDlJakVpSUhScFptWTZXRkpsYzI5c2RYUnBiMjQ5SWpjeU1EQXdNQzh4TURBd01DSWdkR2xtWmpwWlVtVnpiMngxZEdsdmJqMGlOekl3TURBd0x6RXdNREF3SWlCMGFXWm1PbEpsYzI5c2RYUnBiMjVWYm1sMFBTSXlJaUJsZUdsbU9rTnZiRzl5VTNCaFkyVTlJakVpSUdWNGFXWTZVR2w0Wld4WVJHbHRaVzV6YVc5dVBTSTVOakFpSUdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBTSTBPREFpUGlBOGVHMXdUVTA2U0dsemRHOXllVDRnUEhKa1pqcFRaWEUrSUR4eVpHWTZiR2tnYzNSRmRuUTZZV04wYVc5dVBTSmpjbVZoZEdWa0lpQnpkRVYyZERwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09tVTNPRGsxWkRJMUxUUm1ZVGd0WkRrME9DMDVNalUzTFRRMk56QTVORGxtWkRVMk9TSWdjM1JGZG5RNmQyaGxiajBpTWpBeE9TMHdNeTB4TlZReE9Ub3pPRG8wTVMwd05Eb3dNQ0lnYzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFVnS0ZkcGJtUnZkM01wSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzJNMk0zT1RZME15MW1OelJqTFRRME5HUXRPVGhtTmkwek1UYzFNelJpTjJZd1lUTWlJSE4wUlhaME9uZG9aVzQ5SWpJd01Ua3RNRE10TVRWVU1UazZNemc2TkRZdE1EUTZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxSUNoWGFXNWtiM2R6S1NJZ2MzUkZkblE2WTJoaGJtZGxaRDBpTHlJdlBpQThjbVJtT214cElITjBSWFowT21GamRHbHZiajBpWTI5dWRtVnlkR1ZrSWlCemRFVjJkRHB3WVhKaGJXVjBaWEp6UFNKbWNtOXRJR0Z3Y0d4cFkyRjBhVzl1TDNadVpDNWhaRzlpWlM1d2FHOTBiM05vYjNBZ2RHOGdhVzFoWjJVdmNHNW5JaTgrSUR4eVpHWTZiR2tnYzNSRmRuUTZZV04wYVc5dVBTSmtaWEpwZG1Wa0lpQnpkRVYyZERwd1lYSmhiV1YwWlhKelBTSmpiMjUyWlhKMFpXUWdabkp2YlNCaGNIQnNhV05oZEdsdmJpOTJibVF1WVdSdlltVXVjR2h2ZEc5emFHOXdJSFJ2SUdsdFlXZGxMM0J1WnlJdlBpQThjbVJtT214cElITjBSWFowT21GamRHbHZiajBpYzJGMlpXUWlJSE4wUlhaME9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZZV0U1WldOaFptTXRZbUl4WmkxaU9EUTJMVGhpTVRBdE5UazNZMkUzTVRkaE16azJJaUJ6ZEVWMmREcDNhR1Z1UFNJeU1ERTVMVEF6TFRFMVZERTVPak00T2pRMkxUQTBPakF3SWlCemRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBTSkJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlNBb1YybHVaRzkzY3lraUlITjBSWFowT21Ob1lXNW5aV1E5SWk4aUx6NGdQSEprWmpwc2FTQnpkRVYyZERwaFkzUnBiMjQ5SW5OaGRtVmtJaUJ6ZEVWMmREcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalV5T1RZM1pXTXlMVGN3WVdNdE1qWTBZeTA1TVRZNUxUWTNZakEyTnpoa016ZGxOQ0lnYzNSRmRuUTZkMmhsYmowaU1qQXlNQzB4TVMwd04xUXdNam95TURveE15MHdOVG93TUNJZ2MzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWREMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRrZ0tGZHBibVJ2ZDNNcElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4ZUcxd1RVMDZSR1Z5YVhabFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8yTTJNM09UWTBNeTFtTnpSakxUUTBOR1F0T1RobU5pMHpNVGMxTXpSaU4yWXdZVE1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2WlRjNE9UVmtNalV0TkdaaE9DMWtPVFE0TFRreU5UY3RORFkzTURrME9XWmtOVFk1SWlCemRGSmxaanB2Y21sbmFXNWhiRVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2WlRjNE9UVmtNalV0TkdaaE9DMWtPVFE0TFRreU5UY3RORFkzTURrME9XWmtOVFk1SWk4K0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBpQThMM0prWmpwU1JFWStJRHd2ZURwNGJYQnRaWFJoUGlBOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0ZCd0lsQUFJUGZkSlJFRlVlSnpzL1dtTWJIbDYzL245L3Yreng1N2IzYXFxcXhkMmsyeXl1VXJjSks3bU50QUN5UjdCSEZDUWh4YjhTakNnQVN6WWdEQ0VNWUlHTTdBQXZiSWhXTkFNWUZ1R3hqSXNlQUFOTk5wR210RkkxamFVU0lwYnMwbDJWM2R0ZDgwMXRyUDR4Zk0vRVpGWjkxYlZyWnZyeWUrbmNDb2lJK0ptUkVhY09KRjVmdWQ1SHRjMGpRQUFBQUFBQUFBQUFBQUFONSsvNmdjQUFBQUFBQUFBQUFBQUFEZ2ZCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVRVEFBQUFBQUFBQUFBQUFBTkFSQk1BQUFBQUFBQUFBQUFBQTBCRUV3QUFBQUFBQUFBQUFBQURRRVFUQUFBQUFBQUFBQUFBQUFOQVJCTUFBQUFBQUFBQUFBQUFBMEJFRXdBQUFBQUFBQUFBQUFBRFFFUVRBQUFBQUFBQUFBQUFBQU5BUkJNQUFBQUFBQUFBQUFBQUEwQkVFd0FBQUFBQUFBQUFBQUFEUUVmRlZQd0FBQUFBQUFJQ2J4RGwzMVE4QkFJQ1A0amRPNjQ5eHUvcGpYRloveE9VNFAxN3IvS1k5SDRmejdSS2R1VDZUMUpNMGtyUXRhVmZTVUZJaEtRbExHazRiU1F0SnBhUjVXUFlsUFpIMExKd2VTRHFTVklYYkxUWVc0TnBwbXVhcUg4SzFRZ0FNQUFBQUFBQUFBTUROY1RaMDNRd0gyK3MzQThUelZPcjVnZS9aeSt1TkJSOWYrN3IxWklGdSs5cjJaVUZ1TEF0K2kzQjl0UEYxSGk0YlNCcExtcHo1UHBFcy9JMWxBWEM1c1N3a0hjb0Mzd05aR1B3MFhIWVNMajhNeStOd0dZQnJqQUFZQUFBQUFBQUFBSURycHljTDlkclFMcGNGZllYV2xadGVWdkhabHdWOGJXVm9JZ3YrMnJZVnp5dU5jM3B4Qlc5N2VYUG1lOHdsTGNOMWZ1TjJNNjByUTl0d2NTNXBHczVYNGJvMmJKeUhmM1BiZzhSYzl2cE5aSzloRy83ZWtWWHhGdUhydmZCMUcvSU93KzNiaXQ0MkVHNWYvM2J4c3RkdmM5blViQ3lWN0xWc0szNVBaR0h3TTBtUEpMMG42YXVTZmowc3YzdGVUd0tBODBjQURBQUFBQUFBQUFEQVI5dXNyRTIxRHQvYXJ5TlpRQmVGcjUxT3QreE50QTdvMm1DdXJjek1OcjVIKzcyTGNCcHIzY0kzRDVmVnNpRFd5Y0xBdGhyVWFSMyt0ZmYzWVZXNGtTejhPOXZXMldrZDJyYVh0ZmRaaGFXOXYxcnJkc0tiWWVKU0Z2UzIxY0h0NVdXNGJxWjFRT3pDOVROSngrSGZ0WStyZld6dDE5V1o3MW1HNjgvZXJ0NjR6ZWJYNWNhL2EvOU5XejI5K1gzT1hyNTUyZWJyMks0VGJ1UDhaaGpmdm43dFpXMkEyNGE3YmNWdUhxN3ZTZG9LdDBuRDVXM2cyMVlFdCt1ZTM3amY4OWErWGd2WjYzUWc2YUdrcjhuQzM2OUkrcnFzV3ZoWk9OMFB0d053eFJ3OXNRRUFBQUFBQUQ0K1pnQUR3SzB5a2JTajlSelZ2dFp6VnR0bG9IV0wzamFveTNXNk5YT3EweTE5MjZDd0RYYWZWNmw1TnR6YnZFeGFWL1ZHT2wzZGVmYjhoNFVBejZzUWZ0Rmx6Y2JsbTVYQjBqcG8xWm5iTkdmKzNlWjFtd0Z0KzczYWdMZXRSdDBNYWR1djI3QjVNMHh1ZERwa2JnUG85blR6OW5PdHE1RGJrTHQ5RHB1TjI4Wm5MbSsxcjFzYndtN08xMDAzenJkemVaT04wMmpqOXUxNnNCa2tTK3QxWS9QMTl6cjkybC8yTHlPYnoydjczSjNJMmtTM29mQlhKUDJHcEYrVjlGdVgvUGdBWmdDZlFRQU1BQUFBQUFEd0VnaUFBZUJHYUFQWXpRcmFzeUdzMCtrUWRyTnlNNWUxM0wycmRYVm1XNDFaeUVMZU5neHUyKysyN1huYis5d003U0k5UDhUalErWERuUTB3emdiSGJURDV2T3VmdDJ5R3cyMUF2Qm1zYjdaQ2JzUFpzd0Z3VzJFZDYzUzc1YlBMMlhEM3FzTGJpMVRMd3VCbnNoYlJYNVAwWlVtL0xla2Jzb0I0S3F2cVBneW5KMXEzQ3dmT0RYbm5hUVRBQUFBQUFBQUFMNEVBR0FDdUxTOExiZS9KcW5hM3RLN09IWWJySnJMUXRxM1V6TUxYZlowT2h6ZEQ0emJRMnd3S053TytzOVc2WFF6NmJwTG5oY2FiNTU5WGxleGVjUHNYdllZdnFyYitxSC9YVlcxNzhJWFdzNTBQWkFId1kwbnZTbnBMMHUrRjAzYjVzUGJrd0VzaDd6eU5BQmdBQUFBQUFPQWxFQUFEd0lWcTJ5VzN5K1pNM00wNXVadXpjd2RoR2NrQzNydXlzSGNrQzNkenJVUGdOdnlOTjc3UFpsdG1xbktCODlGb1BldDVYeFlFdnkwTGc5K1d6UTl1WndoUFpaWEVVMWw0M0ZZS2x4LzRyc0FMa0hlZVJnQU1BQUFBQUFEd0VnaUFBZURjdFpXN1c3TFF0cTNVM1phRnR1T3diSWE2bWRhQjhPWjgxYzIyejV0dG1NKzI0cVZLRjdnY2JWdnVkbDd6UXFjcmhhZXlFUGlKckkzMDI3Sks0ZCtUdFpKKy83SWZNRzRtOHM3VENJQUJBQUFBQUFCZUFnRXdBSHlvdG9MM2VmTjNFNTJ1dmkxa29lK2VMTnh0QTkrSjF0VzhiWHZtdnF6S045UHBXYjFVN0FJM1d4c09UMlZ6Z3R0SzRiY2tmVVhTVjhQNUorRTJVMGxIc3ZBWVdDSHZQSTBBR0FBQUFBQUE0Q1VRQUFQQWM4V1M3a3ZhRGN0RTZ5QjNKSnZKTzVHRnVHMEZieTRMZ1hPdEErSklwNnQ1Mi9tN205VzdBTHBuczFKNHMwTDRXTklqV2V2b2IwajZtaXdZL3JLazM3aVNSNHByaWJ6ek5BSmdBQUFBQUFDQWwwQUFET0NXYUZzb3R4VzdiUnZsemRtOHNTekEzWkgwbWl3QXZxTjFDK2VSMXBXN3czQis4L3RSd1F2Z296UmFWd2cvbGJXSi9xcXNQZlN2U2ZvZFdVQThsNFhGQjdJQUdiY01lZWRwQk1BQUFBQUFBQUF2Z1FBWVFNZjFaRUh1bml6WTNaVUZ1RzJJdXlPYnh6c010eTIwcnVMTnRaN0htNGdLWGdEbnE1S0Z1MU5aZGZCQldCN0pxb04vVTlLL2tmUkxrcDVkeVNQRWxTSHZQSTBBR0FBQUFBQUE0Q1VRQUFPNFlielcxYnp0a3B6NU9wSUZ1bmRsbGJ3UEpOMlRWZkx1eW9MZWRtbUQzODFLWG9sZ0Y4RFZxQ1V0WlVId1c1SitWZEsvQ0tmdnlDcUQyN25CczNCN2RCQjU1MmtFd0FBQUFBQUFBQytCQUJqQURYSkhGdVR1YVQyWGQxdlNWbGphTURmWHVwcTMvWHB6THU5bXkrYTJtaGNBcnBOR0Z2WWV5bHBGUDlXNk92Z3JrbjVaVmlIOGRVbFBydWd4NGdLUmQ1NUdBQXdBQUFBQUFQQVNDSUFCWExHejFieHRoZS9tVE41dFdSWHY2Mkc1STJ2ZHZDV2J5enVXdFhSdTJ6VkgrdUFzWGpaMkFHNnFOdmlxWmRXLzcwcjZkVW0vSVpzWi9GYTQ3SW1zbFhRVmJsdWVXYWdXdmtISU8wOGpBQVlBQUFBQUFIZ0pCTUFBcmtBc3ErSnRsMTJ0cTNoSDRiU2QwOXRXOFc0dW1kWmg3Mlp3ekFZTndHMndsTFdBUGd5bng3SmcrS21raDVMMncyV0hraDVMZWo4c1Q4TDFCNWYva1BHeXlEdFBJd0FHQUFBQUFBQjRDUVRBQU01Ulc3M3JONWJOT2IxaldkaDdYK3ZadkhkbElYQWIvZzRsOVdVdG14T3RnMTJxZVFIZ3RPYk0rVkpXQVR5VnpRYysxam9BZmplY3ZoMldyOHVDNHJsT1Z3dlhaNWJ5RW40T1BBZDU1MmtFd0FBQUFBQUFBQytCQUJqQU9SaklndHo3c2lCM0xBdHp0OFA1TnR3ZGFUMmJ0eDlPQzFrMWI2cDE2MmVxZVFIZ2sydkQyMHBXTFR6WDZWQjRLcXNjUGduTGtheDYrSm1zU3ZoSTZ3cmp4N0txNFllU0ZwZjRNOXg2NUoybkVRQURBQUFBQUFDOEJBSmdBQjlpczVKWE9sM2RtOHNDM2p1eXVieHZobVZQRnZvT0pVMWtvVzlmNjRDMzNlaFEwUXNBbDZkNXptbGJOVHpYdW1YME02M0QzMzFaNWZEYmt0NlI5SjRzSUQ0TXQxOW9QVmU0L2hqbjhSTElPMDhqQUFZQUFBQUFBSGdKQk1BQW5tTlhGdXp1YWwzRk81SUZ1bTJGNzFEcm1iekRzQXkwYnQzY3p1ZHRLM29CQU5kWFd6RmN5cXFHUzFuQU81V0Z2Y2RhdDVkZXlFTGp1ZFlWeE8wczRzWEc1VzJJZkJUKzNXYlkzRllnNHdYSU8wOGpBQVlBQUFBQUFIZ0pCTURBcmVRM1R0dnpJMW5nKzRiVzFiejNaQlc5MjFxM2NHNkQzMFRyMmJ4bnEzclpzQURBelhaMnZuQjd1cm5Vc3NCM0pndHpaN0tBZHlZTGZQZGxGY1ZQWmFIdjhzemxqMlN0cGQrVmRCRHVZN05hK09PY2YxbXBMdmFncExNemxEOHg4czdUQ0lBQkFBQUFBQUJlQWdFd2NDdnN5c0xjdHBwM0VKYXgxdUh1V090SzM4MmdONWZONkkyMXJ1Z0ZBS0RWaHNHYlN5VUxoOXVLNEZMckN1TTJOSjdKS29IM3cyM2FsdFN6amFYOTkyMGxjaHN5TDdSdVY5MWVkaWhyVWYwaVB5THBqOHBtMWwrRXBhUzNKUDJLcEYrUzlGWFp6L09Ka0hlZUZsLzFBd0FBQUFBQUFBQ0FLOVJXTnVXeW5keWZrdlI1U1o4T1grOW9IZksyb1c5UDY2b29weGRYOWdJQWNKYVRIUngwOWdDaDUxVVJiMzdkTHRYRzliVXNTRjJjV2RvQWVLcDFoZkZUV2VCN0VxNTdKS3NtZmlnTGxSL0xBbUxKUHYvK0Ewbi92dXp6N3lMVXNubkoveWpjN3pmMENnRXdUaU1BQmdBQUFBQUFBTkIxcVN6SWJaZEpXTWJoNjc2c2duY2txL0J0NS9iMkpCVmF6K2hOWkR2c0NYZ0JBT2ZOdmVEOFdjbHpManZiYXJyU3VvSzRQZDlXQ1cvT0syNW5FYzkwZW5aeFQ5SlB5RDRqTC9Jejc2NmsxMldmdXhmWmF2cldJUUFHQUFBQUFBQUEwRlVqV1VYdnAyUVZ2UTlrTzVyYklIaExGZ1FYV2xmMHRsVzk3V21MMEJjQWNGMXRkcUdJdEE2SlgxUlZmSFkrc1dUQmNSc08xN0lEb3k3NnM2Kzl6MWVlQVl6VENJQUJBQUFBQUFBQTNFUzVwRDNadk42MmFuZW9kWnZtOW53N3gzY1NMaHRxUGFjM0ZSVzlBSUR1dXU0SE1pMDNGcHdqQW1BQUFBQUFBQUFBTjBVc3E5eTlLK2xOU1orUlZmYmVrNFhCRTFrUVBKQzFyNHoxNHFyZTY3Z2pIQUNBMitic3ZHT2NBd0pnQUFBQUFBQUFBTmZKYmxnbXNoYk9iZlZ1TzYrM2JkdmNWdjF1eVdiNDltUVZ2ZTJjWGdBQWNMMDFXczhweGpraUFBWUFBQUFBQUFCd0hkeVY5RGxKbjVkVjl0NlhkRWNXOU83S3d1QysxbTJiejFiMlNsVDFBZ0J3azdRQjhGTE1BRDVYQk1BQUFBQUFBQUFBTGxwYnlidTFjYjQ5SGNncWVpZXlFUGlPck5KM0tLdnFMV1R6ZXBuVkN3QkF0elJoSWZ3OVp3VEFBQUFBQUFBQUFDN0tIVW12eVNwNzN3akxubXhtNzNaWTJxcmVXS2NyZTl2cVhrSmZBQUM2YWZOejNuL1lEZkZ5Q0lBQkFBQUFBQUFBZkJLcDFqTjRoN0tLM3FIV1ZiMGpyYXQ1MjFiT0U2MHJlelBadkY1MitBTEFCWW04RkVkMjZ2MDZhYXRxVzVhVlZGTjdpYXZIN3dMbmpBQVlBQUFBQUFBQXdNdDZVOUkzaGVWMVdVWHZYbGphUURqWGVsNXZ1MnhXOVZMWkN3RG5MUEpTR2t0WkxPV1pOTWlkOGxUS1Vyczg4bEpUUy9OU21pMmxrNWwwY0NJOVBXcFVFUVRqYXJRdG9Ga0R6eEVCTUFBQUFBQUFBSUJOcWRhVnVxT3dETUxTbDdRcjZVRlkybGJPbzNCZG9YWG9DK0NjZWU4VWVTY2ZPWG52NU9UVXFMSDR4RW5PT1R1NndqbXI5blJPenJYSFdqVGgxTDV1bW1iMWZkM0c0UmdiRjYvK2JkTTBxdXRtZFYxNys2YXg2OWFuNGJ6T1htNzNUNlhwaDRzaXB6anlpaUt2T0hhSzQwaFI1T1c5Rkx0R2FiUlU0a3Q1MThnN3B6UzJVRGVPckxvM2k2VThCTDFwTEJXNUJjQkZHd0JIZGg4V0FEZXJBSGovUkhweUlEMDdsbzZtMHZGY09wNUp4N05HeHpPcGJqNzZzUU9mVUNPcHV1b0gwVVVFd0FBQUFBQUFBQUFrMjFmNEdVbWZrbFg0ZmtyU2ZVbDNaWlc5WTFuSTI3WnZqblY2Ymk5VnZjQXJjcEtTU0VwaUtVMmtOSTBWSjRtY2orUzhoWUpwR2l2TElxWEoramlMdXJGQTBIdkpPMjlCWW15blB2SnlrZ1hGcTN1Um1ycFpoY0RlcjkrNmRVajduSE55NGZLNnFsV1dqYXBRSW1vQnNGUFROS3FxUmxWZDIybFZxNjRiMVNFd3JxcEdkV1ZmTjNXak10eG1XZGFxdzcrcncrWGxzdFp5V2VtMlpJMU9VcHg0cFVta1BJK1Y1N0dLSWxhUnhjcXpXRVdScU45UGxlZXgwcWhSRWMwMWlmYzFpZzZWUktXU3lHblljNXIwblFhNUZDZnJWcytSVzdkK1RtSzN2dHlIMTY2UnFrWXFLMXZtcFhReWEvVHNVSHJuYWFPdlA1TGVldGpvNjQrbGJ6eHE5UDYrQmNJQWJnNENZQUFBQUFBQUFPQjI2R2xkMWRzR3VYMnQ1L2JlMHpyd2JXZjNUbVNWdjRYVzgzb0plWEdyT0VseGJNR3NCYXdXb25tM0R0WGFZSzI5THZKT1VYVDYrczM1cSszWHB3SzdjRDZOcENSdWxLVk9hYTlRM0p2SVpYMjVPRk9jUk1yU1dIa1dLVW04bkhPcnlsdm5uQVcremxrRmFlSVZSMDdlZXptM1dmRWJRbDByejdWTE5rcUFtNDB5WHg4dXIrdGF5K1dMQXVCYVZXMm5aZG1FQU5pQzNhcHNWTlVXL3RaTkNJREx5cjVYWFZzQVhNbEM0UkFBejhOcFZUV25IbE1iS0Rlcng2eFZlTnlFMExwcHdzL1YvcnQ2STV5dTF4WEthaXVURmM1dlBET3VQWlNsT1YzNXVycE9rdlAyM0xod29aT0Y2TTlkbk4zZTFnbXZPUGJLc2xocDRwVWtGdVRuUmF3aWo5WHJXUUJjNUlsNnZVVDlmcVlpajVTNGhYcjFVMjFwcWJGT2xMaFNhZUkwNm50dDlhVis0V3dMdmZyQm43TWlQKzh5dDNGYVM3TVQ2WjJuVG04OWxMNzZmcU92UFdyMDFzTkc3ejF0OUhEZldrVlBGOUxKdk5ISlhKb3RiQUZlZ1pObGxjd0FQbWNFd0FBQUFBQUFBRUMzcGJLSzNzK0U1UTFaUmUrMkxPVGRsUVhBYmNoN3RyS1gwQmUzVHVTc0NqZFBwWDR1RFh2U0lKT3kxS29wNDhnQzRUeHh5bEs3WFJ4SnNiY2d0MGh0N21xZTJIVkZhdC9QaFlBNGk2VXNzU3JmTmtoY2hjZXVVZVFxUlhHa2FEaVFuenlRQnZmazhxRjhGQ3VLZlFnVFhadFRyZ0pnK3o1dTFRTGFlM2NxM04zVXRtVTJtN2RaWDdadTlkeUdyMmR1M3F6RFdhdnliWU5WdTIzYk5yb0pmYUhieXVEMjhyWXl1QTYzcmRzd09ZVEdJYmxXV2RaYUxDck5GNVhLc2c0QnJMUmNWcHJPU2kyWEZrelh0ZDIyRGkyeHE3TFdiRlpxUGk4MVgxaW9iUGRmcTY2MUNxdFhYYlJEZU81RHVGeFZkZHRkT3p5bmJoVzBXNFcxdDhycjBMbzVTeTJZVDFJTGR0TTBVaFE1SmJGWG1rYktzMWhaSGlsTllrV1IzVmZrN1h2RnNZWDJTUWlKa3lSV2tzYUtmYVZvc2Eva1pLSDhKRlkyZC9LMVBZWWtkYmFGUHh1Zk5Sc3Y0L05PTjEvdVZlOEdwenlSUHAxSzIwUHBNL2VrL2FuVDRVbWpveFBwNlpIMGNML1JPMCt0S3ZqdEo0M2VlMnFYUFRtMGVjTEFKK0JrdjIrMHYzUGduQkFBQXdBQUFBQUFBRGZiUU90cTNuNzRlaGd1RzhtcWV1OXJQYk4zZCtQNlF0Yk9tWm05NklRMlNQV3ViWDk3dWdJM2JxdHVJN2U2dkExem8zQ2FSQmJRSm9sVVpFN0RRaHIzcEVGaGdXOWJEWnpHVXA3YWZOVWl0U3JoOXZzWG1kVExMQUMyODA1cG9sQXB1cDdWNm1PZEhzQXJoVExXeWg3Y0lKTjJ4dExXWGFuWWthSTAzT2FqaHVsZVppUGxjemcrNUVYZklnVEFLaXZONTVWbTgwcGxXVm5JN1owV2kwclQ2VElFd0JZY0w1ZTFCZFZPS3BlMXByT2xack5TczNrVldsUmJSWE1kcW9MckVFNDM0ZTdpeUNxbTY4WXFtTmNCY0tqeWRVNVJHOWhHZmxYcEc4ZGVlV2FoYjVKR3lsS3IxbzVqcHlTT2xHYVJpdHphZHl1S25wKzVuL3JadlMzTHFmVmZmaXJwYVdQL3J0cDR6aFpoT1NmT1MrT2hOQjQ2dlJHQ1lUWFNmQzQ5UG1qMDljZU4zbnJmNmExSGpkNStJcjM3dE5Hai9VWlBqbXgrOEh3cExaYlNvbXkwV0ZwNzZjVlNXakxsRmMvWFZnRHplOGc1SXdBR0FBQUFBQUFBYnFhZXBFOUwrcHpXNGU1ZFdkaTdKMnZmM0plVXl5cDcyenF4dGxhTXlsNTBSaEpMbzJKZGFadkUwckNRUmoyM3JzWk5MWlR0NTdia3FkUkxuUWFGTkNnczJJMDJ3dU0ySE02U2RiVnVFbG5scVQ4VEhzY2I3YUc5dDlzbDhmcDZ0MW1oNmNMNUY5VzcxWkpxWjlmblRWaWMxSThsbjhyU3l1ckRNOTdtaFYrYzRaNXptdys1N094Vlo3Y2c3amtYZm1BcjgyR2JuZWQ5UXl0bnpacGFXZGxJZGIwT3pjTWcyeWEwaTI0cmpOc0F1SzZzSW5oWjFxdjV4RzFGc2xVdTJ3L1RGa1BiM09Od3IyMDc2ZkM5WEtpSXRtWGQ0dG1GVnRuZXk2cXpRMlZ2SEhuNWRvWHlvYzkzRWtMZDV6N0h6ZnFrYWNMdElzbk5wT2xTMGt4eVM4azNVdVBXejBHajg4djcyM1h6N09La0xKTWU1RTZUZ2RNYnU0MzJqNTBPWjlMUnJOSHhWTm8va1o0ZU5ucDJKRDArYlBUazBPbkpvUVhEai9ZYlBUbXdLdUxxdkI0cnVvYnEzM05HQUF3QUFBQUFBQUJjVHoydHEzbUxzTFNWdnR1eTBQZjFzT3hLMnBKVi9HNjJjeWJneFkzU2hxcnRhZXl0c3RhcWRWMElWOWVWdG0yYjVtRWhUZnBPdmN3cWM5UEVxblluQTZkKzdsYmg3NkJ0NTF4SXZWVHE1MDZqdmpUdU9RdHB6ek5NMjFTSDVlT3FaQUZ3VTBySlZJcW1VajJUVW0rUHI3NkI1WlFYdFRWeVRpNjJiOTcya2IxV0drbFZiYS9wNGlOZXQ4MTF6MGVTYTZUNVFqbytsbzRPcGVsTUt0c0ErS0llcXo1MFhlM2xVaTkzdXIramRXbDBiVlcrejQ0dDZIMy9tYzBNZnJqZjZPR0JWak9FSCswM2VuWmlsY0tMMHFxRTU4djFMT0hxWmQ0ajZBb3FnQzhJQVRBQUFBQUFBQUJ3dlF4a29lNm53L0lwV1VYdnJpejRIWWZidE8yYjI4cmV6Umw2QkwrNFVZb1E0dlp6cVY5SS9jeHBrRnRRT3l5Y2lzeGFLUmVwTkNyV1ZidHBhTldjUlJZRXR5MmY0eWpNMzgzQ2JVSlluTVp0UmE5VjZFYXgxdlh4WGkrZW5mcTh5OC9lNXVPY3Z1aXlEM0FoNkMybGNpbFZTNnQ4YlFPeTVnYVdVYjdxUTNZdkNEMWZkTG0wcmtodWc4cFRsNytDNXN5WkQ3emVtNWMzWjlhbGovbEV0TDJuNjFwYVRLWDVrVlRPdFNwdnZzak4vSE5iVXV2RkZjS1MwbHE2VXpqdERLVUhPMDdIczBaSE02ZmptWFEwYlhRMGwwNm0wc0ZVZW5MWWFQKzQwYU45cC9mM3BiY2ZOM3I3Y2FOM25sakxhTndxWHZhN1RDS3FnTThWQVRBQUFBQUFBQUJ3ZVdLdForL21zcDJldlhCK0tBdDVIOGphT0w4ZXp0OEoxL1hEdjl0c0pndGNPNUYzOHBGZnpUNk5ZNmZJZTBXeFY1cDRwV2trSDNrNTU1UW1zWHFGMXloYmFwSWNhNVROTlN5YTBMN1pLbk1uZzdadHMxTS90MHJmY2QvYU82ZnR1NkhXS3VmN2dJL0t5WlpoK1RDZk5MeDgxZEN6cWFScVljdWx6dlc5aHBybUJVOUI4ekd6MElzS1REL2tkWG1sbHl3a3JrMXR3ZTl5S3BXTDU3Zlp2Z3liQjBKc0ZqS2ZlU2hSSkkzNjBxaS8wYUk2dkRtYldwb3RyVlgwNDZORzd6MXA5STNIMHUrOTUvVFY5eHQ5OWYxR2p3K2tneE1MZ3VlTFJyT2xOSjFMOVMxZi9Udk02ZlFCYkRnbkJNQUFBQUFBQUFEQTViZ3JxK1o5UXhidTNwTlY5TzdvOU16ZVRPdkszbFJXRlJQcHdrdStnRmZUN3lYcTlSTDFpbGk5WHFMaElOVmtYR2c4U2xYa2lRYURWSGQyZTlyZDdTbkpFemtueFQ1UkV0WEtxOGNxcG04cEx4OHBjM09yM2swYTVabFhrVnBMNXpTeHdMZG8zeGx0MWE2VEJjQm5xM1NmVjduN1ViZTVMbHlZZlZ1WFVqVzNBTGdPS1RjKzZHTzlmdGZ0UmY0NEdtdjNYYzF0cVNzcmNYZFhtSk9kZlJvMzUwRzNGY0xQTzQzc3BLaWxvdWQwWitMMDJuYWpiM29nZmZ1bnBhZEhqWjRlU2Z0SDFqcjYwVUdqdHg4N2ZmMXhvNisrMStqZEo5S1NGdEZkMWE1RnZNTG5pQUFZQUFBQUFBQUFlSFZlVnNYYnp1amRyUEFkeVNwNTM1RDBtcXk2OTU1c1p1L1p5bDdTSFZ3THprbmVlMFdSVXhSWkpXOFVPWGx2WDhlUlZ4UjV4YkZYa1VjYURqTk54cG1HL1V5RFFhTEJNTlBXT05mdVRrODdXN2tHL1ZUamNhN1hId3gxLy81UVdTKzFPMnBpdVhvaEhYNWQ3djJwdEg4c055K2xwcllNdEczYnUvbk9jSkxLc0xTWHZ5amIrNmpNNzdwbmduVmwxWi9Wd3NvbmNZczBVbFhhNjE4dTdHQ0E2N3pDdGdkU3RPL0p0a3I0Qlo5cWNTSnRqNXkyaDlLYmQ2VEdPVFZoNVBHai9VYnZQbTMwdSs4MitzcTdYci81RGFldlBvcjE3bjZrNDduVG9teFVMaXFWVmEwNlZJWTdKem5uVnB1TXBwR3FxbFpaMmxKUlFveGJoZ0FZQUFBQUFBQUFlRFYzWmFIdUEwbWZrUVc5OTJYVnZWdXllYjE5clFQaGR0WmRPN2VYeWw1Y0c5NUxnMzZxZmk5VlVjVHE5Nnh5ZHpLMkVMZXQ4QjBOTXcwSHFmcjlWTDBpVmw0a0t2SklXUm9yeXlMbGVheGVrYWpmVDlYdkpjclNTRVdSYUR6T3BHR3U5YW9maHZCbWZha2FTTXFsa3hPcHFsOWNxWHRkcTNiUFRkdjZWNkVDZUdFemdKdDZYUm1NN21vVHpEcTAvMTRjVy9YdlRUa0E0RVVWd3BzMnFvTGxyS0RaaFVPZ2VyWDBxYjdUM3JqUmcyMm5MN3dSNlh1KzJOUGpjbHVQeXgwOW1XWjY5SFNoeDQrT2RIQTQxMkpScVdrYWVXOEhwc1N4VitTZGxtV3Q0NU9sbmo2YjZ0bitYTS8yWjlvL21GLzBUNCtYNTdYNklLQUY5SGtpQUFZQUFBQUFBQUNlTDVZMW1XMkQyL1RNNmJZczlMMHJxK2h0cTN6dmFOM09lYk5KTFhBbHZBK1Z1OTRwaXRxcVhyK3E1bzBpcnpTSjFPdkZtb3d6alllNXhxTk0vWDZxOFNqVlpKSnJiNmV2eVRqWGNKaHFPRWkxdlpWcmE2dlFhSmdwenlMSmV6azFjZ29WZUtFYXo0ZFRTYUdzV05MSnhoeFRIMXVWNDRta1JTYVZ1YlNJck9LeG5lMzZ2QURwdG1TZ2RTWFZONkQ2RStlb0xXR3RwT1dKdER5eUFIaDFWUWMrVHRwdTVtMm03WFI2RG5jakZWbWoxM2VkSHR5TlZlZGpWYVBYTlMzZTFPUEZRRysvTzljN2J6L1ZrNmRUeldhbDZxWlc1TDJTSkZLU1dBQzhXTlk2T0pqcnZVZkhldlRvUk84L090Rjc3eDNwL2Njbm1zK3JWV1Z3V2RZcVE2VXdyb1RUNmFiK09DY0V3QUFBQUFBQUFNQUh2U1lMZE50Zzk0RXMyTjJSaGJzRFdkdm1udGFCY0NZTGk5dnEzZzdzcGNkTjF1dkZHdlpUNVhtaVBMZHEzdEVvMDdDZmh1cmRSSU4rcXNIQXZ1NzFyZXEzbDhVcThsaFpGdHZYdlVURFFXYVZ2bm1zUEl2Vjd5ZUtlcW1VeFZydnMyOERsQ1pVcnphMk5HR3B3MldyNmw0blJWWDRPcGFpUXZLRnBFaXFtdHRkRys5Q0JYQlRXZlZ2WGRwemFGZGU1U1BEaFhQaHdJZEtLbWNXQWxjTGUvMjdFZ0JMcDQ5bk9IdHNnNWZrRzhsTHZvamx0NGVLZDNlVURYYzBhUWE2ZTZmU1o5N282L2hrb2VXeVhsVUFSOTRyaXAyOGN5cXJXdE5wcVlPanVZNk9sem80bU92eGt4Tzk5LzZ4bmo2YjZlblRtWjQ4bStySjA1bWU3Yy8wTEp4ZkVnUmZ0blpTZENRQzRITkZBQXdBQUFBQUFJRGJKTmJweXQ1bzQ3SkMwcTRzL1AxVU9MMFhsajJ0Zzk5TXRHN0dGWEhPS25tOWQvSlJXOVc3VWRucnZmSTgwbmljYVh1cjBGWm8zV3pWdkpsMmQzcmFtdVRhMnNvMUdXWGFtaFRhbWhRYWp6S2xlV1F6TkNYNU1IKzNyZUQxM3EzbmE3b1FVRlcxTkYzbzFDRGVENFE2Wnk5N3p0ZVNWUUxIdVJSbmtvdlcvKzYydjhPYVdxcmJBSmhnNnZadzlucFhjNm1jMmpyUVhuNGJ0QWVRVkpLU1JHcUdVajJVeWtUeVRvTkJvbjR4Vk5NMDYrTWl0TzZldmZvMlRhTzZhVlEzVG5WVmF6WmQ2dW5UbWQ1L2ZLSjMzejNTdSs4ZjY1MzNqdlQrdzJPOTk1NTkvZDdEWXgwZVdiQmNWVFk3dUtwcVZaV2ROaFRpbjdlMkdYaDAxUStrYXdpQUFRQUFBQUFBY0J0TVpDSHV0cXlTOTRGc1R1K09wSkdza25jaWFTeHIzZHpUNmRiUHFhaE93UldLWTY5aFAxR3ZaeFc3ZzFDOU94eG1HZzlUamNlNXh1Tk1nMzZxTkkvVkN4Vy8vVjZpUExPNXZMM0NLbm43ZmJ1OEY2NC9YY203TVdDMzBVYjFicWpnYlFQY1U5VzluL1NuYXM0RXdJV0Z3SDRqQUw2MVF1L3Jwckh3cjFwYU8raW0rV0RLaGU1eElRQXU1OUp5YWhYQTdlVzM0ZVZ2dHpGeWtrdWxlQ1JGWTBtWnZRY2lKNWRFY3Y3c2NWZ2IyNDF3c0Vya25RMDNsMVEwamJidWxIcnRhS0ZuYjg2MHZ6L1gwLzJaRGc3dC9QN0JYRStlV2lYd2t5ZFQ3Ui9PZEhDNDBNSGhYRStlVFBWczM3NCtQdG5zVjQxWDVHU2RVNWdCZk00SWdBRUFBQUFBQUhDVHhjOVpJbGxnRzBzYXl1Ynl2aUdyNU4yUnpleTlMd3VFeDdLZ2R6UGtsVzdITG5aY01iZFJYWHRxQ1pkRmtWT1dSUm9PTW0yTk0yMU5jazNHaFZYdmhncmZuZTJlOW5ZSzdlMzFkUGZPUUpOUkxwLzYxZURwdG5MWFArZStWcVcrVlMzTk5nS05zNVc3ejYza2ZjNWxyNkt0QUk1U3liVVp3SzFPZ0Uyak1BZDRhVXRUaVVLNWptdUhhRGUxVmY4dWppd0l2blVsOFU2S0VpbnVTZWxRU251U1Qyd21kbFZaZGZBSFdtS2YzV2E0alY0ZDdXemxSbGtSNjI3VzErNU9UM1ZkcTI0YVZWV2p1bTQwbTVWNjluU210OTg3MHNQSHgzcjhlS3FIajAvMDlqdUhldS85WXoxNlBOV3paek05ZVRiVHljbENWUzNWZGZPQnBhcHIxYlZWSWVORGVWbjRtMTcxQStrYUFtQUFBQUFBQUFEY1JDTlpnTHNucStiZDFycUNkMGZTbGl6OEhZU2xKMnZ4M0xaK2JpdDdhZVdNUytja0RjSU0zbDZScU45TDFlOGxHZzdUVlZYdWNKQnFOTW8xSENUS2U2a0dSVnZSYTlXLzdmemU0U0RUYUpocU5NcVVqWE1wYll1b2FuMndrbGZycXQzVmFianNxdVpldG5OTlhkc0NPcmNBbU5Ca1EyTXRvS3VGVlFKSGJLNDZ6Ym53SHFpa3hiRTAyNWVXYzhrMUd3ZEhkRm5iRlNDUmtwNlVEZTNVSjZ2QytOUGJody9iVnB5NXJtMWg3NTBVZTJ1aDc1MjlwMEx3UHBDMGUyK3ArL2VIT2ppYzYvQndyb09qdVo0OG1Xbi9ZRjBCZkhTODFNbkpRc2ZIU3gyZExIUjB0TkR4eVVKSFIwc2RIUzEwZUxUUTBmRlMwOWxTczFtcDZiUlV6WGJ0UmRweEhEaEhQS0VBQUFBQUFBQzRMbnhZNGpQbjI2K2RMT0Q5dEtUWFpSVzlEMlN6ZXJmRGRjT3c5R1FoYi92dk5wR2U0TUtzcTJ6RGVlZmt2RlhpeHQ2cDMwKzFzMTFvWjd2UTFsYWg4VERWWkdLemVuZDNDbzNIdWJiR3VYYTJDKzN0OVRVYXBmSnhKSzltVlJuY0xqWUwyR2IvV2lWdkk4MlhwME9TVmQ1d3BxSzNEU0thMWYrdVNLaHE5TEVVWmJZNEtseFBjeFlHdGdHd2o5ZHRvQW1VT2lpOHRuVXBMWStseGFHOTlsRjBPd0xncHBia3BEaVY4ckdVVCt6QUVPblYxL2QyZTFmSkRueHhaeXFFM2ZxRy9YQkF6cDI5M21yK2IxVTFxdXJHT3VCWGpXYnpwYldSZmpiVms2ZFRQWDAyMCtNbmR2N1JZL3Y2NEhDdW82UEZxcFgwMGZGQzAxbXBwbTdDSmpxY05vMk4vRzQydmc2UHQrTnZjK2VjdkJpemNlNElnQUVBQUFBQUFIRFZlcksyekhlMW5zazdrbFgwdGtzYjZBN0NiUWF5aXQ1MmFWcytSMXBYOVFLWEpzc2lqUWFaQm9OVXc0SE42ZTMzUW9WdlA5Rm9hTlc2ZzNBNkhGZ0ZiNjlJYktadkw5Vm9sRm8xY0QvUmFKZ3BIbWRTRk10VzUxQ2h1em1UZDNNV2I5MVlLK2ZsRFUwS25BOGhjR3FMVDZTbXZPcEhkWDAwdFlXQTlVTHJZMXZRU1UwVEF2OVE5VjJYdHl2b2IwTG5BaDhDNEdJaXhabGQxcHhEcDRKVDdldGY4THg2TzZqR3hWNlJqeFc1VUNXOG1qbmNMclZlbXk0MFgxWDhMblI0dUFpQjcxeUh4MHROcDB0Tlo2Vk9wcVZPanUxMmgwZHp6ZWVWRm90S3kyV2wrYUlLdDFscU5pMDFuWldhTCt6NnhkSk95N0xXY2xsclBxKzBMS3RYZng2dWlTaHlMdkkra2xORTEvL3pSUUFNQUFBQUFBQ0FpN0padlh0MkdjcXFkcmRsd2UrYnNrcmVkaTd2U091SzNyNCtQT0FsN01XRnNxcGVoV3JlOVV6ZE9QTEtpMWpqVWFydHJaNzJkbnJhM1NtMHU5UFR6bmFoN2ExQzQ1SE42clhMKzhwNnNhTElLVkpid2V2a0l6c2ZSWDcxdGJ5WGxyVlZmRW9mck5wOTd2a2J1dmU4ZmRpK25mbVpXeVZ3dGRIQzJ0M1N0M243WTljYkZjQk52VkVsZlVOZmN6eEhxRUJ0YWd0OXk1bTk3cWNxVTIrQkpsVG1Sb21VamFWc0lrV2JGY0NYc002MzdmR2JScXJDODE5dVZBdXZLdkFseVNuckpjcXlXTnRieGFsSzRhcXFWWWRLMzZwcFZKV05waWNXQWg5dnRJYytQbG5xOEdpaFovdXowSGJhMmt5Zm5GaDRQSjB0dFZoVW1zMHFIUjh2ZFhBNDEzeFJydTVuTml1MVdGUldUVnl2cTRlYjhDQlBWUlJ2VkIxZk5lZWNJdTlka3ZqRWUyVk53NUV0NTRrQUdBQUFBQUFBQUJmaGpxVHZrdlFaV1FWdlc3RTdrQVc2YmJDYmg4dmJ0czI1cEVTMjN5clJ1aVhnYmRyOWpXdWd5R1AxaWtSRkVhc29iRDd2YUpocDJFOVhWYjY5WHFLOFNOUXZZZzBIcWNhalhPTlJwdkVvMDJpVVdTVndQOUZ3YUY5cm1NdFc1MFpTdlE1dk42dDVWeFcrc2dENE91eWx2eFRoNTNTUnRYNk4wbER0R3RyQjNsYXJBTGlkQWJ4WXQ4Z2wvTzBnWjY5dk9aUEtxVlF2YitIQkQyMWIrRlJLUjFJK3NnTkMxRnplOXZEVW5PR1B1RThmNWdjbmJ0V21QMm5uREx0d3ZkM1FUcXBLbXBlcU5xcDhwN05TMCtsU1I4Y0xuVXlYT2prcE5adVhtcyt0T25nK0wxV1dkUWlCTFRCZWxoWXUxMDFqbGNKaE9UNngyY1B6dVFYRVpWbnJaTHJVZEZwcVdkWXFsN1dtczZWT3BxWG00VDRXeTZ1cktIYmVlUi81d25zTm1rYjAvejlIQk1BQUFBQUFBQURuYTNOdWJkdXJjTE5uWWYyQ3kyK3lzM043OXlUOXRLUWZsZlE1blc3aG5JZlR6Vmx2cXdsOEcxOERGOG81cXo1YW5VcUtJcHZSdXpYSnRiTlZhREt4UUhjeXliUzMyOWU5T3dQdGJoZmEyKzFwYjdldjhTaFRsRVgyQnZCT2NlUVZ4VDZjMnRmZU8vbllXL3ZRUlJuQ25CRHd0dFd0elpuenE5S3RXeFR3dFdHTGp5enNpVk9waktTNjFpb1F1bTJjcEthZEIxdEoxZHhDOGJvT2ZSRGNyVnBGT3MrRmo4S210UEIzZVJ3Qy8yWTlvN2JUd3Z2Y2VhditUWHBTTnJEVEtBN2RFSzdocjAzdHRpc1VhOXRzWWEyRCszYk9zRFpDVnU4VTViRjZhYVJlMDJoY042cnJaajFqdUxKZ3R3Nlh0OVc3N2RkdDhLdEdhcnhUVXpjcWw3Vk9UaFo2K25TcVIwK21PanBlV0h2cGVhVm4rM005MjU5ck5sOXFQcXQwY0RUWHMyY3pxMFErc1dya28rTTJPSzVVcmU0elZCUmZiTVd3YzFMcTVIcFNRMlo1am5neUFRQUFBQUFBems4czZZY2wvYUNrKzVKS1NVZGhLV1Y3LzZhU0RzSXlDLyt1RHBjL2x2UlUwa200M0lmYlhOZEJtRjVXNGZ0NVNkOGk2WFZaUytjdFNaK1dQUWREV1NWdkd3NTNmUTgycmlVdkYwWHE1NUdLM0N2UFkvWDdOb04zTk16Q3JGNnI5QjJQTTAzR0Z2d08rcWtHQTV2UnV6VXB0RDBwTkFuWDl5YTVsTGVyZGx2Ukc0TGR0cEszcmV5MS9wOVNXUkxZZlJRZmh4YlF1ZVFPdzRVOGFhdTJ3SFVwbm8rT2F5cHBPWldXSnhZQVM3b1ZINTF0ME8xaktSbEkyY2pDWDUvb1d2LzhMMU10TEszRDRmYlVPN2xZaXB5eldjTm5yMjkvOU0zenp6MW1ycEVXcFphSGMrMGZ6RFdkTHExcWVGbnI2TWpDM2NXaTFHSlI2emkwb1Q2WldndnE2ZFRhVEUvRFhPTDVyTlN6L2JrZVBUN1d1KzhmNjlHakUrMGZMbFJWNXgvQU8yZFZ3TTQ3ejZidGZCRUFBd0FBQUFBQW5KKzdrdjZJcEQ4cXE0SnRBOThUV1loYmgvUDdZV21EM2xyU3NhUzNKYjBycVUwOXZDdzgvbnE0N2xDdkZnYWYzWFAzb2xsckg3V0hMNVhONi8yOHBPK1U5TjJTdmszMjgvZTFyZ1krVzlrTFhMaFYwVlg0WHhKSncwR2l2YjJCdHJkNjJocm5HbzFTN2U3MHRMdlQwNzI3ZmUxdUY5cWE1S3RXelVVZUswNmlNSmZYWnZNbWlWY1NlOFd4bDRzanU2T3lrbHkxbmhWNXRucjNiRVV2TzdkZmJGVUJIRXR4WVNHd2oyd3J1cXFBdkkzYVdhTm5ad0J2WElkdWFDdUE2OHBhUUM5Q0JiQ2EyOUVHdXQwR3hMbFViRW05YlR1L3VxNGpHOURtekJlYkRRN2NSclgzNnJJWGZMMXhzaWtwRXUybWtlcHFYVGxjbGphWHVHNGFOZlY2UG5GVmhjcmp1bEZkMTZyazFGU1ZUbzZYK3ZyYmgvcjEzM2lrZi9WTDcramYvdXA3bXM2ZWFYck9BZkNwck5zdXVvWWwzamNYQVRBQUFBQUFBTUQ1R01pcVlMOVgwcWRrVmErU05GYUloOEpTU1ZwS1d1aDBtTHVRaGNESDRYcko5b2N0Wk5YQ1I1TG1ldm1kWTQzVzFjZnRmVGF5QnFLSkxNeE53bVdiajZ0dFZWMXB2YnN5RHJjdlpKVyt1N0padjN2aDUweGY4ckVCcnl4UHBINHVEUXBwV0RnTkNxbVhTVVVxOWRKR3c1N1RjS2V2clhzUE5ON2QxWERjMTZDZldpWHZKTmZPZHFISktOTm9sQ290VXFtSUpSK3Flcy9PNXEyYjlmbEZkWXZtODE0aUgwbHhhQUh0R0FlNWprVXFxWnh2ekFCRzk0UlpzdTBNNEZ0WEFSeG1XOGVwVkd4THhVNElnRU9IaFM1WkhTaDA2c0pYLzc1dG1ocDUrWGdkRXNlblV0YU4yY1FmcUNvT24zMU5wVSsvYzZSaFA5WFI4VUp2djN1b3Q3NXhxT25zL0J2U2hOYldUbEtzcHZGOHFwNGZBbUFBQUFBQUFJRHpNWlFGd1BkMGVwOUwyL3A0VTZIbjcrbHJOaFlwVElBOGM5a24yVGZXaHJsdHNOdG9QYmQzY3hadmU1czI5RzAyenJkN0JoT3RaeHh2dG5XK0JYdW5jVjNFa2RUUHBIRmYyaDA1N1k2bHV4TVhGbWxyS0UwRzBrNi8wdmJZcTlqT2xPeHRLZGw2VGZGd1MxR1NoWXBlS1UwaXhZbVhvckRVallWdHB5cDN6NTVLNTdLekhzSEdKcTZkQVJ5bEZzUjNxZkx2cGJsMTVXZTlsSll6Q3dicjZ2UjE2SWlOQ3VEbHlRY3JnRHYvY29kZlRlSmN5cmVzQ2pqT3d6YWdZd0h3aFFtL3JyV2ZWZTF2a1c2emlqeWNiMmNWYXlNY2RuVlkxeUlOSnJudTN1bHJiN2VuNFRCVEZMMm9hY3lyUEZxclFDN0xKdksraWRXSUFQZ2NFUUFEQUFBQUFBQ2NqMVJXRlp2cDQrMm1mZDV0cnV2dTNjMUFHcmh3Y1dSVnZJTmM2dWZPS25venFVaWRpa3dhRnRLNEo0MzYwdGJBYVdzZzdReWRka2JTenNqWmRiMUdrOElyR25ocFVFcWpFMm1yc24rWWptd0grWEp4ZW01dlJWWHYxUW5QdTRzcy9JMVN5WjEvNEhCak5aVlVMOElNWU1Ld2Jnb3BYTk1Hd0VkU3ViaEY3YjVkNkFCUTJQemZkR0RiQWVaZWYzd3ZPNC80ZWJ3TDgrMGJKVW1rUEl1VkpKRTF4cmdBZGQyb1V1M3FSakV2OC9raUFBWUFBQUFBQURnZmJWVnNGL2ZTZHZGbndqVTB5SzJxZHhJQzNYdGJUbnRqQzNXM0J0TDIwR2xuS0cwTm5jWjlLVTFzeG04YTJmazBka3BqS1ltbEtISlczKzRrVFErbCtodVNLNlJrSlBuQ2drYXFlYStQdG1MTng5WUNPc3BDQU53UXlrdldIcmN1YlduYTBqNDJ6ZDNTaFBiUEN3dUFseWYyZXZ1bzJ3ZEROS0hxMUVkUzBndmhiOSsyQTZ0dHdGVS95RnRvZGVpZnU3QXRUV2ovTEtmYXFWbDFtc0U1SVFBR0FBQUFBQUE0SDRsV3c5TldqZmNBYkNqU2RsNnZVNUZLZVdxemUwYzlwMzV1MXcwTGFkU1R0dnJyOEhmU3Q4QjMwbmVhREtSK1grdGErN2JCZWZPY3BmSlMyVWpWWERwNUlsVnZTMzVicWdzcEc2NGZHQUhqOWVGaWEvc2FaOHdBM3JRS2dFTlhma2NBM0IzaGRXeHFxL0l1cDJIZTgvS1diSnZDenhpbEZ2NW1ZeW5KMStFdkxsK1llVi9WMXFMNUlsZkRwcEdxZW5Va0Z1ME56aEVCTUFBQUFBQUF3S3Z6a25MWmJOKzI1aEJBTU15bHlWQzZPM2E2cytWMGI2SlZSZS9kTGVtTlBhZWRvVk9jU3JFTFZiMnhkYUZNRTJmVnZaRlY5cnEyMXY3c2RPd1hhbWVvbHRKOFh6cDhSMG9LbXkrYjlDMUlJMk80ZW0zQzBGWUFyd0xnVy83aXRPdG5VOWs4MkdvaDFlMFJEM3pVZEVJN20zV3o5WE8xMkx6QmxUeXNTOVBVa2tMcjUySmI2bTFMVWE1VlJUU3VUTk0wcStXaU5zVk4yUFkzalp3Y0ZjRG5pUUFZQUFBQUFBRGcxWGxaUFdJbTJ0ZmhsdkZPNnVWVzNWdWtOcS9YcW54dGZtOGVxbjdIUFdsdmJGVzllMk9uU1pqZnV6ZVJYdHR4aWdheWQwOG9jSHpoVWt0YTZPVjJSbnN2eVZtNGN2aU9WWmVsQXdzY0hMdElyeFVmWmdEN09JU2Z0SCtWWktGdnRReFZvYUVOdE9PSjZaUzZzdXJmNVlsVUwyMzk3M2oyS3lrYy9OSFlRUi9GdGkxUkZzTGYyL0FFWEdPaFJYTnp3WlhvVFNNdktWV2o1RUx2NkpiaHR4c0FBQUFBQUlCWDF3YkF1YXdDR09nOEoydlZ2RHR5dXJNbDdRenQvTzVJZXJEamRIL2I2YzdFcWNpdGNqZjFWdEdiaDliUGFXelZ2VVVxdWJhZDg5bWl4clA3bk4wTEx2L0lCeHVPeXlobjB2U1JkSlJieUpEMnBYUzRVWUZIb0haMXdvdnZ2SVcvUHVuMjNOT1B6YTJEM3FheVlMQmFXbGpvM2ZvMnBPUTMxNmtLNEJBQXR4WEFuUStCdzNycnZNMy9MYmFsYkdKaGNGT0o5ZnA2K0ZqTk5sNU5KS2tYRnB3VEFtQUFBQUFBQUlCWGQ3WUZOSERqeFpHVUpRb1Z2VmJaMjg3dHpWT3BuMG5qdnRQT1VOcWIyT25PMEdsbkpOM2ZkcnE3NWJRMWxoMGFJWDJ3c2xjYjU1ZXlxdDRMc3hId1ZuTnAra1E2ZkR1MGdrNHNDSmFUbXVWRlBnaDhMQ0VJOXJFVXAxWU5YSlZYL2FDdWg2WUpJWEJwaXljZzc0YTJUWDBsTFdjaEFGNmV2cTZUMnJidm9mMXpPclFsTHF6OWUxTmQ3Y09EbkhQeTNoWjNzYXVpazVSS1ZBQ2ZKd0pnQUFBQUFBQ0FWK2Uxcmx4Z2p6eHV0RHgxMnVwTG83N042YjB6bHU1dE85MGRPKzJPcFoyUk5Pazc5WE9weU96MlJXcGhjVnZoMjh1Y2treTJPM2Z6SGRHT0xqMWJUblJaUlY3TzI1M05qNlNEdDYzTmFEb01RWEFzS2ltdmdiWUtPMHBzUm5QU2szUzh2dnlDVTRocnI2NUNCZkJTYXBLTjZ0R3JmVmg0QldkbkFNOFA3VUFWTmVHNmpxN3pUVGpZSTg2a1lpSVZXMkZiM05HZjl5WUoyMXNmU1hIc0ZFZVhzaDU2OFR2MHVTSUFCZ0FBQUFBQU9CL1BpN3VBYXllT0l4V1pVNUhXS3VJNlZQUmFpTnZQcGZFZ0JNQTlhVEtRN2t5YzdtODUzWjA0N1l5dDFmT2tML2xVNngzMXo2dnFyU1ZOcitJbi9CRE8yejdzdXBSbVQ2VGpudFRmazdLaGhZMjBncjRHd2dyVVZnWEdoYlh1WHJXRHZlWGhVRk5aT0ZqTjdRQ0dkcjQxQ2ZBTkZ0bzgxNVcwT0xZQXVHeGJJblQ0VjRxNnRtMXVuRXU5SFd2L0hHZGh2blY5MVk4T3V0UUtZR245bXdQT0NRRXdBQUFBQUFEQXEvT3k4RGRUcC9mVzRpYUxJcWZKcE5ET2RrOTdZNjk3ZzdsMmUxUHRERXJ0anAzdWpLV3RvVk8vY01vU205R2JKMWJsMjgrc3FyZklyQ092WXEyYm5iZTdiRGNyZSt1TjY2NlRWY0JiUytWY21qMlZqdDYxOEhkdzE2clA1TFgrZ1hDNU5vNGtjTEVGUTNGdTFkbDFHWUtoSzMyQVY2ZGRkNnRsbUJNN3MvV1dxUVBkVVMrbDViRzBPTFFad0Q3cWNNVjcrMEVSU1hGUEtqWUNZRFZzZnErUlN4eEQ3YlVlR29GelFBQU1BQUFBQUFEdzZ0b1p3S25ZRzQ4cmtxYVJzalJTbnNmS3NsaEZIaXZQWW1WWnBEeUxOUnBsMnRycWFYZTNyNzFocGZ2WkU5MUpIMm0zT05IZXFOR2RjYVBoMEVseE80OHlmT1BtekdrVmxzM0xicHEyRW5oeEloMjlZMVdtU1U5S2NndGRLb3FRcnB5UHJNemNwNkYxTnlSdFZBQXZObWFrZGpVa3ZDV2F4cXAveTdsVVRxVjZiZ2VwZFA3WGlURHJPKzFKK1phVUQyMG0rd2RtQk9BcU5aZVh4K2VTN29UVDJlWGNaYmNSQUFNQUFBQUFBTHc2TDZtUTdiUWlxY0NseXJOSTQzR3UzWjJldGlkMnVyTlQ2TzVlMzg1dkZSb01Vdlg3aWZKZXJsNlJxT2RPMUorL3BkNnNVbEZWNmtWeitiU1dNcmZ1SnJ0WnpidDVLdDM4L2ZQdExPQnlKaDAvc2dDNHR5c1ZZOG1GMElXdXVsZGpOZXMzc21yQU9GMi9KcmY1QldrejNyb09NNEJMcVc3VzE5M2lwK2JHYXF0NzYwb3FUNlRsa2JWKzdub0wrcmFTMzBjVy9tWmpLUi9aZHRoSHRuN2pOaW9rdlNacFM5STdWL3hZT29FQUdBQUFBQUFBNE5XMUxhQlRVWXFGYytTY2xDU1IwalJTbmtWSzAxaFpHaW5MSWhWWnBGNHYxV1NjYTJzcjE5NXVUN3ZiaGU3czliVzcyOWY5dTMzZDJiVVFlTkJQNU5MSXFxMmNrMllIMHJPRjlPUlEyaitTNW5OcDJhd3JlemQxTVl0d1RwSUxMVmRQckJYMDlKRlViRWxGSEZxditvMEtTMXc2RjFtLzhXZ3pBSWFhMnRiYmVpbkdaZDUwSWJsdlN1dEdzRGkyMTlWNXlYVjUyMU5MOGpiRE9wdEkrZGpDWHhlSlg2R3VuMHZzUXA1SW1ranFYZG85ZGh3Qk1BQUFBQUFBd0t2enNoMVhYdXk5eERrWmoxSU5CNW5HbzB4YmswSzd1ejN0Yk9YYTJlNXBkNmZRN25haDRUQlh2NStvS0dMMWVvbDZlYXgrTDFXdmwxalZieStSaWtSSzJsVXprdFJJUHBlcXNiVFlsbWFQcGVXQlZEV2g4dXdXcmNMT1dhQzJPSmFPM3BPU2dRV08rU1JVQ1RNTCtQS0Y4bkxuTndMZ1VMSGQ5Y3JJRndvSExFaFcrVnZPYlducTljRU11SG1jQzkwVlNqc1FaWEZzcmIybFV5OTV0elNodmJXM3R2dTl6ZG0vdXNYdjhldkpPU2Z2bkp4emx4RUV0NytrMEVubm5CQUFBd0FBQUFBQXZEb3YyODhTcTZPN2JIRys0dGdyVGJ5U0pBb1Z2bDVaZW5wZTcvWldidUh2dU5ET1RrOTM3L1IwWjZlbk8zdDkzYm5UMTUzZG52cjlURDUyNjdYdWVmdk81NlUwYjc4SU4yd2FxZWxKZmlRcHQvQzNibTdmSVF6dExPQnFJUjAvbE9LZXRZRk9CNUxQcnZyUjNXN2VTMUZpQ3pPQXRYN3Z0aTJnbHlGSTI3Z09ONURmQ0lDUDFnRndsMS9UdXBHaVJrb0txZGl4K2I4KzJWaWZjVjA0NmJMQ1gxd0FBbUFBQUFBQUFJQlg1MlN6eXpKUnVZQVA0U1J0YmVYYTJlcHBheXV6OXMyVFhEdmJoWFpEdUxzMUxsUU1FaFZacER5TmxlZFczVHZvVzBWdnYyL24xVXVrZUtNMWJoTkMzTE5MMHk2ckcxcWdGdmVsZEdodE9CdDNPd3RkMjhyU2FpSE5ubGtnY1hJbkJCTHRjOHVBMVV2VnJxcytYczhBOWxGNENXN3g2N0E2eUtNTzgzK3JkY1UrNGN6TnRHcEZYMHFMUTJsK1lKWGRVdGcyZGZDRmJkL0N6a3RwMzlydVoyT3I5Q2NBdm9hYXk5enFldG52MGUzdjBxd1FyNGdBR0FBQUFBQUE0TlY1U2JtWUFYeXJPZStVSmw1eDVCWEhYa2xpVmIxcEdvWHprU2FUWEhzN1Badk51MXVjQ243djNlM3J3YjJodHJjSytUUmFoN2YyM1UrZFNKSm1wYVR5OUlOb3pwejV3SjdicG4yd1VoVFozTVVrdHlyTFZlWFpiZVBzZWE0V0ZzQ2NQSlNLaVQwbmNXSFBWVjErNUhmQk9YT1JIWndRWmV1Z0hwSTJBbUR5a1J1dVBRQ2x0UGJQaThPT1Z3Q0g5N0NQclAxek9yQWx6cG01ZmswMWtwcW11WXpPM0U2V1YrYXlBQmpuZ0FBWUFBQUFBQURnMVhsWitFc0w2RnVxVnlSVzJidGRhRFJJTlJ6YTdONjdlMzN0N2ZXMU5jblY3eVhLZTRrR3ZWaURYcXArcU9qdDlSSU4rNm1HdzFUSk1KUFNST3VxMHpxY2ZFaDE3eWZpUWhWd3V0NEpYeTN0L2xTcnd3TW9uOCtGRUhnNWxZN2ZsN0tobFBTdEpiVHo2K3R4OGRybjJZZjFNMHJYMWRpMytpVUlsYjUxWmUyZmFRSGRIZlZDV2g2RkZ0QkxPemluY3oxM3creGY1KzNBbW1MYmxxUm43L1ZiL2Q1RzRHWGRkQXBSQVh3dUNJQUJBQUFBQUFET1J5VGFQM2RTRWx0RmI3UlIyZHRlbHVleEJvTlV1MXM5N2UzMWRQZE9YMXZqWEpOSnBwM3RRcTgvR09uQi9hSHU3UFhVNjZWeTNvSkUyN1h2VmgxQVYrSE9zcEtXN1Q3UDVvTTd4VGZiNEw3U0R2UEdGaDliK0p0TkxQd3NwMkVuZmRmQ2g0L1F6Z0p1U21uNlZEcDZUeXAyTGFDSW9vLzg1N2dBTHJLNW9ENng4ekJOWlZXaTFZS1d1VGRlWTBGK09aZkttVlMycjJta1RvYjZkUzE1WjZGdmZ5OXNYOXZXengzOGVmR3lJa2s5clFOZ3ZDSUNZQUFBQUFBQWdGZm5aZnRaT3JyWDluYkswa2hiazF6amNhYnhLTmR3bUdveXlqV1o1TnJaenJVMXpqVWU1K3FGU3Q1QlA5Vm9rS29vWXZXS1JMMWVyTWs0MTNDVVM0TlV0bnBJVnRUeWdvcmV1ckdkNUJldGFTUlhXMlZsTnBEeXNUUi9KbFV6ZXd4cWJsY0kzUDZzZFdWVmVOTW50dlIyejh3Q2xpaFZ1Mmh0bTNKbkJ5aEVpWjI2U0t2M2p0M2dpaDdmRlZtdG8vV1pBTmpkcnZkcUY3alE0YUd1UXZBNzdYNmdiNzJFN1h6U3N3TnM4allBRHA4NXVIYWFwbTBCZlNsdG9DTlorTnVYL1U1OVcrZFNuQnNDWUFBQUFBQUFnRmZuSlNXaVl1RkdhR2YwK3NncDhrNVI1QlJIWGtrYUtZNjkwaVRTb0o5b2E1eHJiNituM1oyZWRyWUxiVTBLN2UzMHRMdlgwNzA3ZmQzWjdXa3lMcFRta1p4emNrMWpwNkdpMTZwN1EyWHY4Vkp5UzNzQWJSWHY1czdVNTExMm9jSjlPUzhsaGJVOGp2TndWWFByc3JWVFAzQmQyVHpPazhkUzhjZ0N5SFJnYlVwclpsUmVuaEJzdWhBQ1J3blB2MlFoNFFkYVFPTm1hY1A4cGJROHNlMU5WWVpPQkIxZngzMWs3Zlh6c1IxODVLTmIrcGx6YzF6aTlJTklGdjcyeE8vVDU0SUFHQUFBQUFBQTROVzFNNERiNGEyNHByYTNjbTFQQ28zSG1jM2dMV0wxKzZtMkpybjI5dnJhbnVSS2kwUlpFcW1meHhvT1V3MzZpZnI5Tk16cXpUUVlKaG9QTXlXRFZNcmEzRC9NNjYyYjljemVwcEdxVU5GYjE5ZXN3S2tOZ0NPYmM1djByUkpMdXVXemJzUGJ0NXhMSnc4dG9FZ0hVaEtDQ2xmZjh1Zm5Ncld6Z0NOYk42TTBWRW1HNjI1ZDFXdW9HbTBhcVM0dE1Ld3Ixc2VieUxud09WRmF4NEhGa2MwQmJxL3IzSzhSWVIyTkV2dXN5WWEyWFkxelNVNXFsdGZzOHhHYkxuRlRHOHZDMzc0SWdNOEZBVEFBQUFBQUFNQ3I4NUp5c2EvbFNzU3hsL2ZPRm1jVnZWSGs3VFJjM2lzU2JXMFh1bitucjN0M0J0cmI3V2swempRYXBKcU1NOTNaRytpTk4wYTZmMmVndUVpc21yZHA1SjJ6cWw2dlUrZmxuRlEyRmtpRlhFYlNCeXQ1TDcyeTl5VTVienZoMDc0VVo3cjErMXczWndIUG5rbEg3MXNiNkdKYmluaDdYNnBtbzBxOURZQjlkRGt0MHErN3ByWlp3SFZwaTcvbDc5c2JwNjBBTHFYbHNUUS9zcytTemVzNm93bHo1YjBVNVZLeEl4VmIxbm1pRGNKeGJUbW4wTm5FWFVZUTdDVmxzdCtuMmFpZEEzNXJBUUFBQUFBQWVIV1JyQUtZSFZhWEtFbThKbU9yNkIzMEUrVjVyRHlQTlJxbUdvMHlqWWFaQnYxVXZTSlJ2NWVvUDBnMUhtVWFqeklOQjFiUlcyU3hlcjFFbzJHbXlYWWhEVExaeXhrcWVxVlFjZGVzVHplWDZvYnV2VzZyQmwwa3hVVUlnQXVidFhxYnVjMWc1a1NhUFEyemdQZnN1ZkUraEJZMzlIVy9VZHAxMUs5YlFEdXYwM09BYjdHNnRFcjFhaDZxMDhPNnk3cDUvVzF1WnhiSDB1SndmVEJSMXdMZ0puVEI4TjZxZnZ0MzdLQ2FLQlB2NCt2UHVmWEJkWmV3WmpwWko1MVkvRDU5TG03NWIzUUFBQUFBQUFEbm9xMWFpSzc2Z2R4a3p1bFVKYStQM09tdnZWUGt2WW9pVnIrZmFHdVM2ODVlWHcvdURqV1o1T3IzRXczNmlYYTNDKzN1OXJTN1UyaHJYR2cwekpUbHNYems1ZHY3T0ZYVkt6a2Y1bzFPTjJmMWZrZ2xiN1A2M3cwVzJ1ajZ5S3F4a3I2VTVOSnl1cjYrYTJIRXk2Z3JDNEdQSDB2RlF5bE9wV3hrb1hsVDZlYS8vamVFODVKUGJYRmtBcXVRc0trdE5LeVdVbHh0dEE1bXZieit3dXRVaFJiUXl5TjdIVmZYZFV6VDJIczNHMW9Bbkc5WlJ3V3ErYTg5Ri81L1NXMmduU3l6NUlES2MwSUFEQUFBQUFBQThPcmFHY0Rzc1BvRTRzaXAzN2RadTcwaVVhOW5wNE5CYXBXNy9WUzlJbFpSeE9ybHFRWkRxOTRkOUZPTmhqYS90OTlMbFdXUjhpelNjSkJwT0xUcjRsNHE1WnR6ZXB2VEZiMU5Zd1dGZFNOVnRiUzhiVHVrUThqckV5bnRTZWxRV2t5dHFyQ3BKVVdkekNNK1dnaG95b1UwZlN3ZGphUjhiQUdHajBJTFhvSzJDOVdFOSt2bURHQWZxdk9iNXBhdWx4dWF4ZzVFYU1JYzRGczNFL2ttQzY5VnRRd1Z3Q0VBYmpzTWRFWmJ4ZS9zL1pzTnJmMXp1eDBsQUw3Mm1rWnE2a1oxMDF6R1I1NlQvUzVOQytoelFnQU1BQUFBQUFEdzZtSlpCWENYOXR5K3RQV3N1TkEyOE96czNJMEszemp5eXZKWS9TTFdhSlJwYTV4cmE2dlFlR1J0bWtlalhEdGJoU2JqWEpPSnRYTWVEVk1OQjdrR2cxUnBGb1ZLWGltSy9PcjhxbDFoNUNRZld2WE9sdXZDdU0xSzNsVTFiM1A2OUZZSjh4bmxyQW80SFVuSmdWUXZyUUxXM2RJcVlOZTJlcTZrK1lGMDhraWEzYlg1bFQ2OTZrZDN1N2lOQU5qUlpHR3RmZThTb3QwOGpXMWZ5NWwxWENqbjlyWDM2dFQydGdtZkgxRnFueTNaMk1ZTlJLbnNBN2k2NGdlSWoxTFZqWlpscGVXeTBySzY4RzJObDRXL2hUcjFScmc2Qk1BQUFBQUFBQUN2cnFkYnZNTXF6eUticDFza3l0TklhUm9weTJNVmVieWFzNXVta2ZJODFuQ1FxdDlQVmVSMldaWkZWdTNiVHpUb1orcjE0bEFGbkdvNHNLcmdmcWdNTG9wRXltTXBiY2ZEaFRtOTdUemVOdHl0TjZ0NlEwaHlHN1BkanlVazRjN1pUTWEwQ0R2bmRidXJMRmN6T211cG5FcXpaMkVXOEs1VlMzdHZJWEZEK0haeFhqUURHSkpzM2F5V3RqUzFLSmk3Q2NLUlNIVnAyNVhsaWJYeDd1UjJKSHoyK3RoQzMvNk9WZjlHV2JpYUQrVnJiZlVSV0d1eHFEU2RsWnJOeW91KzF6WUE3b3ZzOGx6d0pBSUFBQUFBQUp5UEUxbnNlT0Y3NFNOdlN4eUZncUVMNDBJbFpDU0ZDdDdJTzhXeFU1Ykd5ck5JZVpGb09FaTFGYXAwKzcxVVJXRkI3M0NZYVRMT05SeFlDK2ZCSU5YdWRrL2IyNFg2UlNJWG5aN3ZlM2FKTnM2clhlcEdtcmM3SWR0SzNoZk02ajA3dHhjZjFENUh6a3R4Ym5PQW8zU2pEZWt0clFDV3RONERYa25MWTZzQ3prT0EwYll3YmRzUjQrS2NDb0RiQ3VEYitweTNjMzVsMWVtckFMaVNsSVNxOWF0OGZQaFE3WGExV2tyelEydjlYQzlEKzR5cmZXam5ybW5Xd1hZMmxBWjNwV0xiQXVHYXl2VnJMMnhINGlUU1lKQnFaNnZRemxhaDl4NGVxNm9hTlJmenVlZGszWFI2SXJzOEZ6eUpBQUFBQUFBQXIrNnhwSDhsNlhWSmQyUXp6QzVFR2t0M0o5S243emw5OXE3VDd0alpIcDVLNTdmanY2bHRoM1NjUy9uRXFuYlNrVndjVzh0bFZVb1NyelN4YXQ4aVZQRDJlb255TEZhV1JTcHkrN29mNXZsbVdhU2lpRFVhWm5LRFRJbzJXN20yczNtMU1aOTM4M3o0ZWxYUlM4SnhiaHBabTJjWFdaVldOckxYWFZyUFlMM1ZOZ0tiNlZQcCtLRzlKOW9BdUtyRmMzVEJuQTlWMTVzVndEem50czNjbUFHTUc2RGRuaXlreFlFdDFVSjIzRmdIQTlGRzlydEUwcGQ2TzlZQzJzZmhnQVZjVzQyazB0Ykg0VGpYRno2L28yZjdjODNtbFg3NTM3MnZ0NzUrb09PVDVVWGNzNU9VeUFKZ1docWNBd0pnQUFBQUFBQ0FWL2VPcEw4ckMzOS9RdEx1UmQxUmxraWZ2dXYwNDkvaDlXTmZjdnJDYTg0YTVpMTBmdnVQbTFBUm1xYlNjRXNhdnlFTkg2eENMOWZVcTRJbDcyMnU3Mm9PcjEvUCtvMjhrNCs4b25DWjg4NUtsOHZhZ3JOVGMzbTFNWXYzUTg0VC9KeXpFS2o3eUhiUzUyTTdaZGFxY2FFS2ZqVUwrTEZWc3ZYM3hOanZDOWErMzMzMHdRcGdOZ05hdGRqbFFJMmJvMjBiMzFZQXp3K2tjckcrcm12YkV5ZWJtWjRPd256NW5tMVQ2d3R2Sll4WDBZU0Q3ZVEwbXVUNjFtL2VVNTdGY3BLV3kwcVBuMHd2S2dDV3BFaDJFQ1VCOERrZ0FBWUFBQUFBQUhoMUo1TGVsZlMrcEF2ZHM5bFdBSC8rZ2RPWFB1MjArMFlJZ09jNnZ3eWc5cUVDdUpMNlUybDRMSTNuMG1CYlNpYXlBbzFHOXFPZXFkNzlxTk82a2FxU3ZPSmFhVnRBWjdhRFBpbVl0N3JpMXFITk1zd0NuajJ6bHREdHJHVG5xTUM4RUpzemdETmJPREJoclcyeDIxQ0ZmbU80ME1LN1hscjc1L21oVkMvYUs2L3lrWjJ2cHBiVXpwVWYyaElYVlAvZUpHR2dTWlJGNmlXRlhwdVhldjIxa1hhMkN5WEpSYzhlSWZ3OUx3VEFBQUFBQUFBQXJ5NlZWZjllYVB0bnlUb25GNWxUTHd2N2t0dDl4MHVkWXd2b3NPOXRNWmNXNzBzbk0rbm9SQnFmV0RWd2IxdHk4YnIxNkdvRzc4ZVl4VXRPY2MwMDZ6YWRMbFJheHJrdC9saXJDbUVuZFNxZytMamFuN3VSMUN3dCtKMCt0bm5BUHJYQTNJZjJyWVRBNXl5c216NnlzRDFLdzNPOXVaRzVqZXRrT3dPNHRrckt1dHhZOTI3aDgzR2piTFNVWHh6YjlxUmFkbXY3Mmg2WTRHTXBHMWkzaEdMTFBsdjRKZURtYUZmSFJsSlZxeXhyVldWdDQ1c3YvcDRqRVFLZkN3SmdBQUFBQUFDQVY1ZEsycGEwSlN1UHZURGVTWEZrT2NpeWtsWCtWbG9YNDU2bnVwSjBMQjNOYlRtZVNzZXpFQUx2V0hXUG1uQTdkdXAyZ292VzFaWStEcTA2YjJuUXRzbUZFTGlhV3h2b28zZXRWWGFTMjJ6YWRsWTFMb0N6ZGRISG9ScjdxaC9QTmRIVU5qKzJXb1NLUzF4L3pmcDFXNTVZVjRHNnNpTzdPck9OYmFTNnR2Z3VHMG1EZTFLeEV6NVBxRmEvY2VwR0ttdk5GNVdtODBxTFpYWFJJWEFrNjJ0RHU0ZHpRQUFNQUFBQUFBRHc2cnhzaDFXbUM2NWFjR0dNYnVRdERMNVE3VXpDcHBJV2g5SmhaZFZLOWRMQ3J0NnVGS2RhRC9QRnpkVUdtS0Z0WjlLMzA2WUtiV1pkZC9LSlQ2S3RrSzRyYXdGOTlKNkZHcjBkU1lWdTk1TnpRVlpGcmQ2cWdOc0FlUE82VzZsdEkxemJ0cmhlaG1BdFhJNXJhS05xdTFwSTVjd09KcW5LRU43SDNYdnBmR3dCY1ArT1ZJeWxLS1pkK1UwVTFzdTZibFNXdGNxeVVYT3hCenUxQVRBVndPZUFBQmdBQUFBQUFPRFZlVWw5V1JKMDRjUFIyZ0RZWFhnQXZCRW8xSlhOTEZ4Vit6cmJtZHZmczNiQjhsUUMzM2kxQld4SlQ4cEgwdXlwVkUydEFxaHI0Y1JMYzFaMlh6ZlM0a1NhUHBQbSsxSTVsK0xlVlQrNGJuTm5Lb0FSTUFQNHhtam5oTmVsYlQrV3h4WUVxMnVWMjJFOTlMSE4vTTFHOWxtU0ZLRTFOUE4vYjZxNmJsUlZ0YXFxdnVpR0EwNldXN0t4UHdjRXdBQUFBQUFBQUs4dWxqU1ExTk1GdDYxejNpbUpwU3lSNGdzdkFXN3ZkS042cVp4S3grK3Y1MDg2WnhVKzBZVjJ2c1pGYXhwSnRWVmFaZ09wMkxaV3gvTm45bHEzMWVDM21wTlUyNEVPeXhOcGRtQkxuTnM4WU9mRDgwZ1lkejdDOCtpOHpSejNTUWlDSTRJa1NhdXEvYzExN3JhL1JhK3I5ak8wbkV2ekEybCtHQUpnZHdsSGNsMlM5alBFZWRzbTVoTXBHMHR4SnZ1MXFMemF4NGRQeU5iUHBtNVUxWTNxdWxGejhaOXhIWGxUWEQwQ1lBQUFBQUFBZ0ZmblpPMmZNMTN3anF2SVNYa2lGYW1VdG50MkxtTmYzR29uZFdQVlMwZTE3ZkIxa1oydUtvRkRsUS96VUcrWUpoUjJSMUk2c0ozM1NVOVc2WDNGRCswNnFwWldBVHg5TEtVOWU3NGNMVTR2akhPaERYUWFaaTYzWWRJdG5rL2RIb1JUbDJ4dnI3MHdKcUZhMkRpRnhaRnRRemE3Yk54NG9TSzkvUXpwMzdIdG9rOWtsYzZzb3pjZUwrR05Rd0FNQUFBQUFBRHc2cndzL0kxMXdYdHo0MGpxNWRLZ3VNd0FPSEFoREd4cXFacEpKNCswbWhFc1NZTTdVcFJlMG9QQnVXb0RKTyt0WFdjNnRGUHYxOWQzSmFkNEZjNkZTdDlLbXUxYk5YdzJzdWNyU2lYWHNKUDh2SzNXemNobWpzZFpxSjRNMTNXbGd2TGoydXpJVUMxREFGeUg5K2N0ZXk1dUN1Zlg4MzhYaDdiVVMzV3FBbGlOdGNpUElpa2YyKzhEK1ZhbzJLODVTQUc0QWdUQUFBQUFBQUFBNXlPVzlUbTgyQXBnTC9WREFCeTNYWmN2YmIvcW1aM1ZiVHRvdGVGZ2JWVS9jUjdDWWlyVGJwNHdielhPUWx0dnh2Q2RGbVlCTjdWVjhSMC9sSHA3MHVDdXJBTThMc1pHQ095anNCMjY1ZHVXaGhuQU4wZW85SzJXMXY1NTFRSzZ2YTVEZkd3SHhQUjJwR3dZdW9SMGJkWXhjRE1RQUFNQUFBQUFBTHc2THluVkpWVUFEektuWWVIa0VrbVZRbFh1UmQ3ckdjNnRaMDlXTStua29WVkV0bTFaQi9la0tMdkVCNFR6MGM0UmRWSVUyMnNZWnhaNHJnSzNqb1VWTDZ0dDJWcFgwbUlxUlUrbDJUTnBjU0lsL2ZWdEdvbFE3cHc1Yit1aTkrc3E3TnZzbHI4VmI0Nk44UW5WM0E0Y1dSeEpWV2tITTl4NGJkZUQ4TG1SRkJiOHBrUDcvR2hibFFPNGRBVEFBQUFBQUFBQXI4NUxLbVFoOE1WV0FFZFNrVmtWc0dKWkFIenAzRVlnMklSSzRJZDJsVStzNHFlL0YxcmlVZ2w4OHpRV3NNVzVoWnB4Q0N0V2JhQkpuaVJaQUZuT2JCYnc3Sm5OQW80THlSTUFuNi8yd0FRZlpnQ25Hd0V3enpGdWdMYjk4M0lxTFUvc2ZGUHBFcHFHWEpMUWlqM0tyQ1YrMXJiRTkxVC9kb1FkODllRTVhb2ZEVDR1QW1BQUFBQUFBSUJYRjh2NnYxNTRBQng3S1UrZDh0VFp2YzUxZFJuSXFVcmd1WFR5ZUwzRHQ2bXRMUzZWd0RkTCszbzZiK0Z2c1dYVmFzMWhtRFhxdXBGWHZLcFFDS3k2dFBEMytGMHA2VW45eE5aNVpnR2ZuMFpobll3c1lJOTdrait3ZHJxM3VTaTlmYTh5WC9YNmFrY21WSXRRK1hzb2xmTnVWYSszNjZCUExmenQ3ZG1wWS9admx6UnFWTldONnRxQ1lOd01CTUFBQUFBQUFBQ3Z6a3ZLWk9VOEY4bzVtd1BzcjB2aGtOdVlFVnN0ckIyMEZCNWJZNVhBcTVuQUZUdURyNzJOQURqdFNmbFlPbmtpTFk1dFozN2JBdm5XOCt2eHlQTUQ2ZWc5S2QrU2V0c1dmTGlLQVBqY2JNei9qZk5RWlIyZnZ1N1d1dTAvL3pYWEhoQlZMY0xzM3lPcFhtcDlCRWtYaEFEWTZjenMzN1pLbndyZ0xyQ2N2MUY5ZWIvRHNlS2NBd0pnQUFBQUFBQ0FWK2RsKzFrdUpRQmU3VGUrTHZ1UDI1bW5UVzB0Y2R1WndOWFNacVVPNzl0Y3dHWmpGaUt1cVVaU0hTcUFlMUkydGlENHhJZGdtTmRPVW5namhuQm5jV1RWNzdOblVybXdQZ0E0UjZIVnZJdXNyV3ljMnZuVmRiZFZhTVhmTHJobTNIcXA1dFlxZm41Z1lYQ1hXdW1IdDZkY2JBRndzV09uenErcjFIRXpiZjYrdWRFQytwTDRqNzRKUGdvQk1BQUF1Tlc4VCtJNEdiN21vOTYyY3o1dTZ1VnhWUjQvTHF1VHgwMWRsbGY5K0FBQXdJMlM2UkoyV0VWdEI5NTJwK3UxMEQ0b0w1c0pQSk9PM3c5VlFaRlY3dlh2U25HMlVRbE1jY2UxMVRTU1FnQ2NEcTNpc2czNXNjRkpxcVdxa3BiSFZ1RzNPSlRTZnFoUWJlZGs0MXc0WjlzU0g1M3VQSENyZVpHVFhHUGVTMVVUS29BUFFnQWNLb0E3RWRxSEh1d3VWT2VuQS92TVdJMSs0SE1lbnhnYnRuTkFBQXdBQUc2dE9CN3M5Z2RmK0w3QitGditkcHJmbDF5c3VqclM3T1RyT2o3NjhnLzdLUHRYZFRXZlhmWGpCQUFBTjBJa0tkY2xWQUNuc2JXQWxuVDlzcVZUTTRFWDB2VEptWm5BOTIwbnNkMVkxKzhId0twYXl6a0xmck9oelFMMlNiaGVuU2xjTzFkMUtjMmZTU2Z2Mi9OV2pLMGlUc3pBZkdYdDArZThQYWN1bG56WWZqU3I4c09yZTN4WHBVdGRoRHZMUzZwczd1OXNmeDBBZCtHQW12YTk1N3hWNWVjVEtSOUpTVzRIYWRTTWZPaVd4bGJacHJtTWx6V1NWRno0dmR3Q0JNQUFBT0RXOFQ2T3MveitseVo3Zi9CblIrUHYvRS83bzg4clNiY2xlZFgxWE12NUl4MGQvTnIvOFBUUlAvdTVPQm4rZzNKNStPaXFIek1BQUxqMmNsbmoxd3ZkSFI5NUtVK2wrRHJ2MFhGZXEzQzNLcTAxcmhSYXR2cjFUR0MvRVF6am1na1Z3RDYyMXlvcHdtdldEcDYrcFlIYmM3bDFxOVA1b1hUMHZwU09wR3dnSlZrb2dLdXUra0YyeEVZRk1NVmhwcmxXclNEd0FZMTF2Q2puMWlXZ25FcE5HZWFFWC9Wak93ZE5iZS9IYkdDdG43TlJlSCtpYStxbVVWWFpjZ25hZ3lyeGlxN3pud3NBT2lSSlIzZVRiTy96VVR6WWxhU21YcHhVNWZIVGNubnc5bkx4N0J0WC9mZ0EzQjdlSjNGZXZQSDdKcnMvK004bXV6K2szdUNibENSRFNTNzgyZXhVOU41UVZqeVFqM3AvUTA0LzU2UHMvMHNsTUFBQStBZ0RTY2xGMzBtUlNyM2NLVzMzNkZ6WC9mNnI2cVoySnZCalNXM3I1OUlxZ1pOQzZ4SzI2L3FEM0hKT1VwUllTK05zYUxOdXkvazZ0TzlFQzlOWDVOb0F1TGJxdnVPSFVtOUhHdHkxeXVrdVZQcGR1WTFLUTUvWUhHQkh5R1RkRnNKQk5GUmFYaS90Kzc1dXc5OFRhVG0xemhoTnJVN0VNbTIzRHg5WjhOdmZYUWZBVFMwMmZOMVMxVkpaMWlxclM1a0RUQVh3T2VuQWxnYkFkWmZsOTc2NHZmZGovOHZCNUV1L21LUTdrcVNtWG1xNWVLcmp3eS8vWjczQlovLzJ5ZEh2L0pNcmZwZ0Fib21zdVBlbDhlNzMvN09kdXoraDN1RHo4ajViN2JCeG9aTEJ1VmhaZmwrVG5lOVhWUjcralhMeDdJY2xzWjBDQUFBZlpxUkwyTStTcDFLUlNmRk55RDZjMDJvbWNMMlFUaDVLZFZ2dDY2VEJIV3VWMis0c3BoTDQrbWxDcFc5YzJJNzkyYjYxTDIwcWRhTjg3VHhzRE9VdVp4WUN6dzRzOEVtSFBFM242ZFFNWUo3WTFicm5KRmEwNjZidGdyR3d5dC9sc1ozdlZDamFIcGdSMlFGQ3hiWWRMQ1JQQU54QlRkMm9ybXJWOWFVRndMMkx2cFBiZ0FBWXdJVXBlbTk4ZDMvNGhSKzkvK1ovOE1QRDBiZjl6N1BlNjRwaTIzWTNUYTI2bXFzLy9PYi9RNWJ2dlQ0WWZYRjBjdlRsdjF2WHkvS0tIemFBRHZNK2ljYzczLzk5bzhsM3E5Zi9uT0o0b0txYWh4MVk2MTlnbTZhUzk3R3k0cDVHVzkranhleTluMDNTeWUvU3NRQUFBTHhBTEdraXF3QytzTDN3M2tsWkloV0pGRi9YR2NBZkVKNk90Z1htOUlua0dwdVhXcGZTNklGVlNaNGFabm50ZjZoYklsUjNPYjh4Qzdpd05zZDFZNjhqb1pOWnpiNnVyY1hyZkYrYVByVjFPeWxDVy9SMlhpMCtNZWVzZGJ5NzdRRndlTzg1RjJZaVIrdUtVOGM2ZHZYQ2E2TW16UDQ5c080SjFUSmMzWlYxTjZ4cmNXb0h1K1JqMjk2MWxjRjhsbmVNV3gvdmRQR2YvVzBBSEVzaUszZ0ZCTUFBenBYM1NaeWtremZ6M3FkKzM4NjluL3FweWM0UC9Pbis2SnZsWGE1bU5mT21rVk9rS0NtVUpHUEZ5ZkJQK3FqNGswL2VULzU0RkdWL3A2TE5Lb0FMNHFOc2toWDMvMHJlZTBQZXA2cnJwY0pRcmpNYU5VMGx5YXZvZjFyRHlYZisrYU9EWC92dkpCRUFYNUlvTGdaUlBMZ2IrWHdrNStPd1E2MnNtK1Z4MHl6bmRiMDhicHB5MXRUbGpJT0hBQURYUUNxcHJ3dmV6K0s5bENkV0JaemNoQXJnbG5PeWZYbWhFdmo0a1lXL2F1eTZ3VDBwNllWSzREQXZFZGRFdTRNL2w5S0JuVHBuUVdkblFveHoxbFJXQlh6eTBFTHpPSldpMkVKelpnRy9vdEFDMmljaFZML3RRa1gwclEvRXJ5TXZHNEV3dCszQi9EQjg3b1dEUVc2OHRpVjdiQWU2cFAwd0p6NldxbExQMzgrQ204eU92M0h5RjcvcGRiTGZwd2V5T2NCSEYzNlBIVVlBRE9EY1JGR2FEOFpmL05ueDF1LzdXNFBKbDFUMDMxU1M3aXFLTm8vK3FuV3FQWkx6eW51dmErZk9qeW1PKzMvcm9VOStYdEwvODBwL0VBQ2Q1WDNhVDVLQjRuZ1Faa2E5K0krU0pyUzdpNU94c3VJMUplbnVaeUtmeEJWaDQ0VkxzNTAzeDl1LzcyZjdvMi83SzJtMnEvYVA1S1pacWw2ZWFMbDhvdVhpbWFyeVFNdmx3Wi9JaS91L3RsZzgrcTI2NHJVQkFGeVpYRGFyN0VKajJjaEx2Y3lwbnp1bFNWdFpxeHV5TDdsOXZMV0Z3Tk5ua3I0YXZxNmswZXUyQTlrNXFhRVMrRnBvSzdpY3Q2cXViR1JCdmZOaHZXc29BTjUwZGhidzBVTXAzN0lsTGlSWHMwcC9VdTI2NkdNcHptenhZWFBMYzRycnFQMHNxK2JXRVdCK0lOWExiZ1QxN2Y1ZEgwbkpRTW9uVmdIc2lacTZ6RG5KT1JlV0M3KzdSRFphcFM4QzRGZkN1eExBdWVnTlB2TUR1L2Yvdlg5dnZQVzl2OWdmZm92UzRwNmlxS2VtcWRYVXBaeVA1WDI2OFl1NVZkYzFUU210Wm0zK29CbzFmMnE4OC90MTlPeFgvK3VxbXJLQkIzQ3VHaWMxOHV0MlRCLzlMeVRuNVh3c09SYzE3RjI0Y0VYdlU3OS8rODZQLzRuSjdnLzl1YUwvR2NWeGY5WGhyR2txTmRWY1pYbWtxanhTVlUxVlZTZC9zMXp1YXpGLy9OZnVQUGpEYnkzbTczMTVQbnYveTh2NW95K1g1Zkd6cS81NUFBQzNSbDlXcVhDaCsxbmlTT3JsVWorWGt2YWVidEt2Sjg3WlFYaU5zeXJKNmVOMXRhL3pWZ21jOXNLQmVsUUNYdytoU2p2T2JRZC8wck5xVmp4Zlc1VzZuRnE3ODltK0JVQWFpTFQ4VllRTm5mT1NUNlVvRGRzSjRMcmFhQUU5YjF0QWwrckdkaUMwdTNlcGxJNmtZaWZNL25YTS91MndwcEhxdWxGVk41Y3h6Y0JMeW1RSFdPSVY4QnNiZ0ZmaWZSSVhnOC8rNk02OW4vcFRXN3MvOHFkNi9UZmxYQ3FwVnROVWNuS3FtNldXODZlcXEyUFZkU2tuTHg5bGlxSytvcmd2QzRNYnhlbTJ0blorNkdlY2kzOUdqWDQraXZML3VxcG1oTUFBemsxVGw3T3FQRkZWVGRXb2x2dlFQNzdzdXFvODBtTDJuc3JGczdmcnVxVEM5QUxsdlFmZnNiMzNFLytyblhzLzlXZjZ3MitTYzRrZEtMUXBrVkxkT1gyWjg2cksyWjllek43V3lmSHZhWHI4dTVvZWYvVi9QOXI2bnE5VzVjRzdaWG4wc0s1T0hpOFhCKzlkM2s4REFMaEZZa2xiWVVrdThvNGlMeFdwaGNBM01nQmVDVHZHNjlJQ3NtZGZsZXJhNWlOT1hwZVNVVGhnTDh5MHZKay9aQWMwNFVBOEwwV1JoYjlwYjkzbWMzVTlzNENOVzdmSHJoZlM0c0FxL3hiSEZwTDRhSDBnS3F2MEorTkN5K1BONS9JMmF0OXliZFc1ODd3RnI1UDJ0YWdyT3hoa2ZpQXRqNldtN0VhVmJGT0hEaENSbEErbFl0dEdCTFFkRUpoMTNpMWh2bmhWMVZvdUt5M0xPblRNdTloN2xYWFY2Y0FiNW1yeEJBTDR4SHlVNW9QUkYzOTI5LzdQL3EzeDl2Y3B5KzhxaW5MVlRhWDJxSyt5bW1wMjhqVWRIZnlxVG82L3FycWN5dmxJYWJxall2QUZEY2RmVkpMdXlEa3ZKNmMwMjlONCsvdWtwdjdyVXYxemt2NnJxLzQ1QVhSSFhjMzN5K1grZjF3dW52MkZKcnNyRjJYaENOVVBjczZyYVVyTlRyNnVvNE5mMDJMKy9tOWU4c085VmRKcys4MnQzVC80djlpOSt4Ti9wai82RmpuNUVOSnZjcXRUdDVyNVplZGRFc3Y3TjVWbWR6VWNmN3VXeS8zL2ZMbDRxbks1cjNMeFNDZkhYLzJMZzlFMy8zZlQ0OS81eHhXdG9nRUE1OHZMeXZ1R3VvUVp3RmxxTTRDam16eitzZzEzbmV4M3Nla1RDNE9ieW43SWdheWF5SWRaaWV4TXZrSWJsWmRSWWlGdzBwZmlBNmxhNk5ZR2NCK2xhYXpkNitKUW1qMjFXY0JwWDNLeGJBd056OXVyQzl1UjI2enRxdUFpM2ZybjR0b0lyME5kU3VWVVdwN1lhYlg0NEcxdU9oOWI4SnRQN0xQQjJuWmQ5YVBDQldtYVJtWFpxS3BxMWZXRnY4NDNac0RKZFVjQURPQVRTYk9kTjdkMmYvaVBiKy85NkY4ZWJYK3YwblJYVXFPNlhzcjVXSFc5MFBUb2QzWDQ3SmQxdVA4cm1wNzhyaGF6UjZycnVaeUxGTWNEWmNXdmFYYnlscloydjE5Ri83Tnl6bzRnVHJNOWpYZStUMVY1L0hPRDhiYytQVG44N1g5WU0zTVR3RG1vcS9sczY4NFBQeXpMUXpWTkthZENqVDU0NUxnTE94UHFlcTZUdzkvVzRiTmYvaFBsOHRuWHJ1UkIzeEpGNzlNL01ObjUvbDhzQnArVjk2bXE4a1F2L24zZnJjTGhaaFhnV3hBY0p5TWw2VVJaZmw5MXZWQmR6MVNWUnhyTUgvMzUyZVM3L3Z6czVLMi90bnYvcDM5cmR2elZmejJmdmZ1cnk4VStWY0VBZ1BPUWhPVkM5K3A2SjZXeFV4WTd4VzBBZktOM2oyMVVBczhQcElPdlc5QllsZEw0RFF2TjJxcEtpUjNMVnlyTUFvNTc5cnJNbmxrMVc5dlN0QXR6TGM5VFd3bThPSlNPSDluODVEaVQ0a1NTcDczNXF6b1ZmTGE3aTI1VEpmcG1TK3kySXJvOVlPWktIOWd0RnlxeVZZZlp2d2UybE11cmZtRG5wMTIvWExRZURaQU5iZnRXVit0NTNlZ1cxelljY0xaY3pxYTJEZ3RlQVFFd2dKZVc1WHVmbSt6ODRKL2N2Zjh6LzhmaCtEdmxvOXptL0RvdnlhbGM3dXZrOExmMTlOSC9xS2VQL3FtbXg3L3pnZTlSTHZjMW0zNUQ4K25icXFzVDdkNkxsZmZlWEIwTm02UTdtdXo4d0Ircm04VWZhNXI2SjMyVS9vOTF0WmhkK2c4TG9IT2Flcm1vNjhXSDdrQmNIY2h5OGxVZDdmL0tmelk5K3QzL29XSWJkR0h5L040WGR4Lzg0Wi9wajc1VjNxZXFxNWsyL3JLVWM1Rjl4cmgxcVZNVGRwcDVuOHJKaGJueXRacW1YTGNqY2s0K3l1V2pRbWwyUjRQeHQ2a3FaMzk2ZXZJN09ucjJLem81K3NwL3NyWHovYis5WE82L1Z5NzN2MTZWeDQrWFM5cEVBd0Era1Rnc0Y3cExMSEpTR2t0NVl2T0FiNzZ3UjdGdGlUbDdGdHBIMXFINjl6V3JMcUlTK0lvMTY2NDVjUzVsWXlsOVlwVnRXdXIyaEc0ZlU5dVdWODdhUDU4OGtvb3RhNU9hOUYvWWdRZ2Z3Nm9sZktoSWp4SnJIWDlyVVFGODdUaG5rVlU1bGFiUExBQnV5bE4veTk1Y214MGhVdnQ4VHZzVy9ycElVaVhDM3k1ejhsN3l6c2xkM2tGZmZHQytJZ0pnQUMrbDZMM3gzVHQzZnZKUGJkLzU4VC9iSDMyem9xZzRWWDFWVmtjNmVQSXY5ZmlkdjZmRGcxL1ZZdjdvUTcvZmJQcVduano4eC9KUnByMEhmMGhaOFVCMU5aZVRWOTc3bExiM2ZsUk5VLzM5eCsvOWc1K1U5QTh1L0FjRWNLMTRuOFJSMU52eFVUNXVWRmQxTmR1djYvblJLeDBRNHFMSXVYaWpTbUh6RHhRWExuRmF6QjlxLy9HLzBPR3pYLzQ3eXlWVm9oY2xUY1ozZCs3OTlIKzR0ZnVEdjVCbWU1TDh4dHpmOXZVSU80SWJxeEtxNjRXcThsaU5wRGdleWtlcDFOVGhsV3huMGJVVG5zUE9OMmRCY3B3TTFCOThYbGwyVCtPZEgvakZjdkZVeThWVExlWVBkWEwwTzMreFAvejgzNXVkZlBXZkUvZ0RBRjZDbDVTRjVVTDM4RWFSelFBdU1pbnBSQUFjck9ZR2x0TDgwQ3FCNWFTNnNVcmdmQ2g3YXFrc3VoSk5DTitkc3phZjJWaEtCcEo3SE1KTVIvWjBTZ2lBbThibWYwNGZTN085ZFF0WXFxVmZRYnN1aHVyRHVMQkt5MXRwZmRBcjY5UTE0UlNDM2twYXp1eWdwdm1odFlQdnhHc1Uzbjgrc1lOWnNyRjlKcmd1L1VLQ0Yya2FxYTRiTlhYRDhYZzNDQUV3Z0k4dEsrNTljZnZPai8rcG5Ycy8vV2Y3Z3k5WWxWWnRmOEQ0S0ZkVkh1dHcvNWYxNk4yL3IvMG4vMXhWZGJMNnQ4L2JDOUwrNlQ0OS9wcjJuL3dyRGJlL1IxbCtYL1liVXkzbkV1VzlUMmxyOXc5cU1YdjBNM0V5L0xmbDh2RERFMlVBblJFbnc5M0IrSXQvc0RmODVyK1ZwanRxbWtwVmVhaHllZkFmYiszK2dYZm5zL2UrUEorOTgyK3I4dmpaeC8yZVBrcmk3YjBmRzhkUlg4NUYra0RyWitmVnFGRlo3dXZvOE5lMS8rUmYvTnhzK3ZWL2ZjNC9HZ0lmSmZGZzlHMC92TFg3Qi81Y2Yvak40VFd4bVdqT3hYSXVVbFZQdFpnKzFIejZ0cGFMcHlyTEE1dnJ1enhVbzBaSk1sS2EzVlZXM0ZlVzMxZWNqT1NqVEY2Wm5BOUh3amVWbXFaVVhWdDFnSE9KMHZ5T010MVZYUzlWVlZOVjVaSDZvMi85ODhPdDcvenppOW5iLytYZE4vNzQyL09UdDM5elBuMzdWNWZMcDIvVjFleFpYWmVNSXdBQVBFOHNxUytwa0hTaGUwRWpiL04vaTB4SzJqMDZYZGtKNTd6c3FXeWsyZjY2MnRkSGtuc1E1cWUybGNBVWhGeTZKclRYalFzcEg5bE9mOSt1N2wxWkNjK1JDN013cTRWVkFTOE83VFJmckN2ZThRbHNiQmZpWEVvS2FYbHNBVnQ3a01KdDhvRVcwQkx2eDZzVzFzRnlKczBPUWdCY3FoTkh5YlR0blgxa3JaK0xMUnNMSU5IV3Z1dEMrRnN1YTVYbHBjd0FsdXgzYWo0d1h4RlBJSUNQNUgwU3A4VzlMMjNmK2RHZjM3bjdFMysyUC95Q25JdFg4M3dscDZvODB1SCtyK2pSTzM5WEI4OSthUlgrT2xuNEcrcXZUckZkL0ZLbFNyT1RyK253NmI5Vmx1NHBLeDZFZHA1THljWEtlMjlvdlBNRGYyNDVmLy8zNG1Udy95cVhSNFRBUU1jbHllanVZUElkZjJScjk0Zis2bWp5blVyU1hhbXBWRlhIS3BkSGYyRzVlS3JqdzkvUy9wTi8rWE5SM1A5dlAyNEk3RjA2U0pMSlgwclNMVGtYYjNRd2FEbXBLVFU5L2wwZFBQbFhmL0hrNkN2L3FLcG1SK2YvRTBLUzBuVDNDOFBKZC8zTll2QTVSWEYvTmZmWHVWaU5haTBYVDNSeTlMczYzdjgxSFIvK2h1YXp0N1dZUDFXNWZMWStBTWtuU3ZNSDZnKy9vTjdnYzByenU0cVRrUzN4VUhFOGtJOTZpcUxDS29YVldLdm9lcWttN0J6eFVTWWZaVXF6SFEwblgxTFRMSDloUG51b2s4TXY2K1R3dHpTYnZxMXkrZXgvUFJoL3l6Zkt4ZUc3VlhYOHVLNW0rNndiQUlBZ2xqU1FoY0FYSEFBN1pZbFRsa2h4MU03RnZjaDd2R1NuS29FUHBJT3ZhVFVqZVBLR2xJNnMwcWhwSk1lc3k4c1RRbmZud3N6SGtRWHlQZzZkVjNnaFBsUzl0QkJvK3RSbUFhL2Ftb3UyNWk5ck00Q0tNMXNmZld4dG9KdW1FeG5ieDlLT08zYVJGR1cyY0VERzllQ3NxRVhsVkpydlM4dWpVQUhjZ1NyWkpud1crTWptL3VaYlV0cGJ6enhuMWV1MHBtNVVWcldxcXI2TWp5NHZLWldVWFBnOWRSd0JNSUNQMU90LzlrZTM3LzdZMzUvcy9wQ0svcWZsWEJ5TzdMSzJSblcxME1IVFg5TERkLzRiN1QvNUZ5cVgrNUpzU3gyZFdWeFlxbzNGU1NvWGovWDAvWCtrS0NxMHZmZGpTck1kU1RiajBidFU0KzN2bG5QNlB6ZE5WY1Z4Nzc4cXk1Tm5sL3cwQUxna1VkeWJETWZmL3RONzkzNzZydzYzdmtkcE1wSHpxZFEwaWpWUm10bGNtYnozbW55VS9ZMjZudjhoU2YvTngvbmVjVEw1VkpyZlZaeHV5ZmxZVGIxeGxHcW9LS25LWXgwZi9KWU9uLzNLMzFzdWFQMThrWXJCNTM1NHVQVmRpcE9SbW5xajdiUHpXczRmNmRtamYycXo1SSsrb25MeFJIVTl0L0IyNDN2VTlWS0xrNitwbkQvUzBiTi9xeWdlS0VvR2lwS3gwblJIUmU4TkZZUFBxT2g5V21tMksrZVRVOEcvZlM2Ri96dWJvZVZjb2p5L3J5U1phREQ2VnBYbGthcmx3WCt4WEQ3Vll2cStack52YUhieWpmOU4wWHZqWHkvbTcvOTZWYzFwRncwQXQxc3NxYWRMcUFEMlhzb1Nhd01kZDdYWWE3T0tiZlpNcWl0SnRmVy9IdnIxenViUU9RcVhaV1B1YWxKWUJYQmNoR3JXOXZEdTI1SytmVXhPWVYxdHBNV1JkUEsraFNaUkprVTl1NXlxdVUrbW5SMGV4UnZCV3RjMmhoK21yWVNPUXhDZWRpTmd2TkhhZzdJcXFWellqUFRsc1ZUT0pUVzJybmFGajZSc1lOMGc0a0oySUQwakdqb3JyTnAxMDZpcWJHa3VQZ0dPSk9WaDhlSVh2aytzUTFzZUFDL0xSMm51WEp3NytiaHBxbGxWVFQ5UXlkVHJmL29IZHUvOTFNL3YzUGx4NWYwMzVlUlhMVFI5bEt1cGx6bzUrcktlUFB6SDJuL3l6MVV1RCt3NjJRWW0xdnB3blRZQWxteXJYVWxhU0ZwS1dqYTFaa2RmMXNOM25jcmxvYmJ2L0VnSW0yMXVUcEtNTlpwOHA2cmx3VitwcXVQSGt2N2ZGL3ZzQUxncWVmSGFkNDYyZi8vL2JUajVUdVg1ZmF2VXJLc3dXc3pMK1VqT1c0djQ4ZlpjaS9uN1A1WGxlNzg1bnozOHlvZDkzemdaN0k2M2YrQ25lb1BQS1lwN3NpM1N4aSt0enF1cFN5MFdUelE3L3VyL2FUNTk5OTlkN0U5NnUwVnhNYmozK3IvL3BmN2dtK1NqTEZUMDJ2eTRxanpTOGNGdjZNbjcvMWlIei82TnFtb3FxZjFzY2ZLaHQ0UzlnbzFxVmFxcll5MnJZeTNtNzB1U25FOFZ4WDBkcGR0Szg3dks4bnZLaXdmS2l0ZVY1ZmVWWkR1S2s2R2N6K1ZkcEVhTm1xWlVVOWtmNk01NXhmRlFTVEt4NitxRjZucW1jbm1vNWVLSkZ2UEhmM1c1ZUtURjdMMi90bnYvWjM1clBudm50NWF6aDcrMVhENzdXbFYrOFBNVUFOQnBYcmFES3RVRkoyQ3hsM3FaMU0rbHRHc3RvRGUxclo2cnRoTDRHNUpMYkFmejZIVnJQZW1kVkxIRCtkSzF3VnZhdDByZ1pOOWFuYTZxTHdtQlQvTzJpaTZPcE9PSFVqNlJpaDNKRFVKZ1FnRDh5YlU5NTI2amR2NnZ0M21zUHFFRjlGVnJEL1lvRjlieWZYNFU1bE4zOFBYd2lYMEdaRU9yd204cUF1QXVhd1BndWxGWjFpb3ZKd0Iyb2dMNFhCQUFBeDNtb3pUM1BodjRLQnRIUHVzN240MmlxQmo1S0JzNmw2U1RuZS92ZVovL0ZlOFMxZlg4UHhwdmYrODc4K25idnpLYnZ2TnJrbFQwM3ZqdW5idi9zMS9ZMnZ1Ulg4aDZiMGh5RnY0NmIwRndOZFBKMFZmMDVQMS9xSU9uLy9vRDRXOGkyd3RTU0JySWFSTG42cVdGNnJyUjRmSlkrOVZDeDVKbTRkOHM2NldPOS8rZHl0a2pOYzFDMjNkK1RFWC8wNHA4b2FhdUZFVjlqYmEvVjJWNTlQUEQ4UmRQamc5LzYrOHlqeEhvbGlndUJ0dDdQL1pEdzhsM0tFbTJ3dXpXc0ZOa284dGZVMVdTODhyeUJ4cHYvYjQvVzVjbkIvM2g1Ly9oWXY3d3QrdHErdmhzUldhU2p1OE9KOS94UjdaMi84QmY2ZzArWiszcnp4eHQ3K1JVTjZXRmU0dkhiNWNsN2VZdml2ZHgzQjk5ODQvMGhwLy9NOWFPTzFLak1weldtay9mMGVHelg5Yko0VytxcXFieWNvcmtGY2tyRHVkZENJQWxxYmFJVnBWRndmWmZYYXBlUE5OczhWVFRJenMySUU2MzFPdC9UcjNoTnludmZVcHBmbGRKTWxHVURCUkhRMFZ4VDFHVXI0K2VieXJWdFZXY1M0Mjh6NVJrbWRKc1YvMmhKT2RWbGNkL2VucnlsazZPZmx1ejQ2OXFQbnZuZnpmYStwNnZsOHRuMzFndW5yMVZWVWZ2MWRXQ0NtRUE2TGJOblZRWEd3QkhGZ0FQOG8wWndGSkg5N202ZFV2VCtZSDA3UGNrMVJaeURGOExNNEZESlRBemdTOVAyd282NlVuNU9GUnBMNjBGcjNUN1pyQitLTGNPNWNxWk5Ic2l6WjVhYTlpbTFvME15OTF6dnZpb0g2UFpPSE51MnlycjNHUExaZ2g4R3lyUk53OWlEdHRKMTVaY05GTFQ5Wi8vT2dydjlicTB5dC9wVS92Y3FxdU5qaFUzV2J2T3VUTmRJRUxyOGFwU1IzOFJnYVIyL2ExV0FYQ3QrbklDNEVqMnV6VVZ3SytBQUJqb3FMeDQ4QjJEOFplK05TL3UvNDJzZUdBN3VLT2VvcWduSDJWeUxwYVBVbm1meS9sRWRiWDR5MVY1cUlPbnYvUmY5Z2FmL3IvSytYajM3ay85aDl0M2YveFBGLzNQeWlsYS9WSHRYS1NtcVhSODhCdDY5TjdmMWROSC8xVHoyVHQybmRaYjUxNVlKdko2STk3UkYzWStyOWUzMzlTOHF2VTdEMzlWWDM3NmEzcWtSa2ZTS2dodUpDM243K25KTy8rdDZtcXU3YnMvb2Y3Z0MyR0h2Rk9TN21yN3pvLy9NZStTUC9idTEvOC9QeW5wSDF6K3N3dmdvaVRaenVlTHdXZiswN3g0VGQ1bjYvRDNBeHFwYVJSRlBRM0czNjRrbWZ4aWYvVEZYNXdlL2JhbXg3LzM4MFh2OVY4dnk4TzNKUi9INmVTTnljNGYrTW10M1IvOEM4UFZQR0dyRzkza1pHM242M3F1dWw1TUwveUh2Y1hpWlBMbVpQY1AvdTNCNk50V255bVM1RUlWOW56MnJrNk9ma2RsZVdpM2wxZWlXS2xpWldHSlFneXNFUHlXcXJWVXBUSXNGZ2JidWZiUDBYcnhWQ2ZscjJoMjlCVkZ5VkJ4dXFVb0hpcko5OVRyZjFiOXdlZFY5TjVRbkV5c3gyWm9ONzMrYzkxWnUyam5MSUIyWGk0WnFULzRuUEw4Z2FxdFk1WGx3VjlhTHZlMW5MMXY4NHNQZi9QbjAzejNueTltano2MFFoMEFjS08xRmNCdG03b0xFM2twVDZVaTYxWTN5UmR5a1ZZemdPZjcwdjVia3J4VTEyRW04TkIycmxNSmZJbWE5U3pnZkd4Qi9IeGZhaFoyOVUzUE9jNmJDNjFSMjJCb2ZpZ3RRbHZZYUxOcHdEVmZmMWZ0ckxXdTlIWm56cSt1MDhhUnUrRi83VnUwVVpnaitxcVBKN0xuTDBvM1p0L2VRaTRFajk1ejhNVlZhdzlFV0U0dEFGNGMyUHUrRTFYcTRUM3JJeW5wUzlsWWludTBIYjlsNmxNemdDOGxBTzdDbStmSzNZWS9GNERPaStQZUpFNUdEN0w4L2hmVDRzRzNKTm5PYXcvZS9KT3Z4K24ySDA2ekxTWHB0cUtvTCs4VE9aOVk1WnV6ZWlybllqbnYxVFNWVmRuR28xOXdQdjRGNTFOTnRuKy9pdjVuNUgwU1duTkszcWRXblhYeWRUMTk5RS8wNU9GL3I4WE1SbVI2cmF0L00wbDlTUU5Kci9sWTM3M3o3ZnJTenZmcGJ1K0JLcFhhSzFQbHk2bStmUFExdmFkeTlXOGxDNExuczNmMDVQMS9yS3FhcXJsWGFqRDZWZ3VCRlNuTDcydXk4LzFhTEI3OWZORjc0OG4wNUsxZnV0eG5ITUJGaUtKOE1OcjY3dThxZXA5U25Bd2s1OVRVSDNhUVh5M0pLMDdHaWtkOXBmazk5WWRmMEh6MjlsK2ZUOTlWV1I3SXlTdE9KK3IxUDZkaThGbWw2WllrcjZaNVh2T0FSczVGN2NFeVkrK1R1SzZYZEJtNEFGbTI5N25oK0R0VTlONVEzWlNoWFpUVXpnNHFsd2RhTHA5SVRhMUlVcXhJbVdMMWxXdmlleHBIaFFxWHl0ZGVUZFhvcEZub1dGTk50VndGd0V2VktsV3FET0Z3M1FiQzlWeFZQZGR5K1ZUdTVHdVNpK1dUb1k2elg5Tmg4WnF5L0s3Uy9MN1NmRTlwdHFjc3V5c2Y5OE5CVTFrNFVLQU1uNHNXRHp1WEtFa0xwVzdYRGlKb0ZxcVdoK29OdmxtanlYZjk5ZW4wcmI5NTU4RWYvbmNueDcvN0wrZlRyLzlyWmtzRFFPZkVzc1pIRjk0Q092STIvN2RJblIxNTI0NWU3VFMzRG9KbisxTHplN0tad0lrMGpLUzBDQ0ViTTRFdlhOT3NLMWZqWE1wR0ZnRDdXTGRnUlh4MWRXWGg3K3lwaGVmNVpCMWVudGZPZFBlQk15KzQvdU4rbjJBejBHMGtxVjVkMW9TUTkreVA0RUk0dk1vbFhRaUtmVHNyOVFYMy9hRVZ3M1lnc0x5M1djcHhIdFkvbmQ5emVKTTRieisvandtQXI5S3EvWDFqRmY2emZXc0JYWmZkZUYzYWd6YWkyTGI3eGJaVkFhODZjTnpDOTk0dDFEU042c3FXUzlqY09xMm5TeElFdndJQ1lPQUdpa0xnR3llaisybXk5V0JyOXcvY1NmTzdmNmszK0NZVmc4OHJLKzRwanNJSDhha1BZWGZtZktPbVdZWXVxSTBrcjd6M3VuYmluNUwzcVpKMElzbHZ6R1gwa3B3V3MvZjE5TkUvMWJQSC83OVYrTnQreHpiOExTUU5KYjBXeGZyUzhFMTk3L2IzNk0za201VWRKM0p4cVR6L292THRSa1BYMDYrZmZGbHZWZk5UajNZdWFUNTdXMC9lLzRkV1llVzgrcU52VnVSN2ttb2wyYTYyZG4vNEYrcHllcFFYOStkdDIyb0FOMWNVOTNlSy9tZitpN3g0SU9jU2Zidy9JdG9kRDE1SnRxMGsyMUl4K0t6cWFxcTZtc25KeWNlNXZDL2tYQnlPVW54K3B0czBqWnlMRlNkalJmSHdQM2MrL3I5SVlwYnJPZk5SbW0vdi9zaVhzbXpQWnY4dWw5cDhyUnMxcXB1NW1tb20xOVNLN0hBbDVZcTFsMDcwbWQ1cmVxTzNvMG1VeTVkZTFiTFJ3ZkpZKy9XK2p0eGNoOU1UN1MrUGRheVo1bHFvVkxtcURGN0txWklMb1hDaldvMnFwbFM5ZUtycDRxbE9EbjlUemtWSzBoMWx2ZGRVOUQ2dG92K1pNQzk0cENUZFZod1BGY1VEeFhGL1ZiMXN5OEwrTGc1L0NVWEpTUDFrcFA3b0N4cFZzejh4TzNuclR4enQvNHFPRDM3OVA1bHNmKyt2emVjUGYyYzVmL1Rsc2p4NWRqV3ZCQURnbkNXeVNQYkNXMEQzYzZsZk9MdkhqbzRYL0lEVlRPQ2xWWnNlZk4zQ0gwa2FQckJXbE41Sk5aWEFGNnZaYUFGZFdCVllPaUFBL2pqYSthRExFK25rc1pSTnBMUW5SWDI3L2xYYm1KK3EwRDFUbmJ0eGN1cjJaNjk3YmpWdnFHQXVhNm1zMWRTMXRRQXRhNVZsbzJWWmFibTBpckNxcWxYWGplMWRjazVSNUJURmtkTFlLMDBqWlZtc0pJdWx4SjhPZ2Rza1liTmF1RzdDOFJ4blErQ04yYmRSYk11cUN2RVdyb011c20xaGxLMFBsTG1OejhPVmN4c3pnS2ZXR245eDJMRUF1TEVEVnRLQmhjQnhIcTdqd0t2YjVCSzNMcEVzWXVpSkFQaVZFQUFETjB4ZTNQL2laT2NIZnJvLy9PYS9uUFZlVjVac0swb0dpdUtob3JodkxaNTlhbTAwd3g5blRYdUU1S25OOVBycmRYdkxSbEdVeStmMzVFTHJrbWJWOXRsYmUrYkZFeDA4K3lVOWVmaVBkSEpzM1N6YnZ5dmExczl0K0h0SDBuZU4zOVFQN3Z5Z1B1ZmYxR2lhS1o1WGNzNnBGOS9Sc04vVFRuWlh2Y2VwL0pQL1NaRnNpNzZlNlNoVnl3TTlmZmpmVzZXeWk5VWJmSk9pS0pmenFZcittOXErOTVQLzI4WTVuK1Y3ZjNrK2UwaDdUZUFHaTZKaU84dnZLVWttV3Uxb2VBa3VWSWRFVWF6STUxTFM3aHh3WWI5Qi9SRi9uRFNTOC9KUlp0c1pGK2NpQUQ1M2FiYjNoYnovcWIva28rTE02N0h1RjFkWEMxWFZUSTBhZVhsNU9XV0tkYiszcCsrNjkyMzY0dVRUMm9rSytXVXRsWTFPNm1NZEo0YzY5ak45L1J1UDlMdGZmMGRQOVV4VFRUWFhQUHgvcnJrV21rdGFxTlJjcFphU2xwSXEyV0VCcGF3TitITCt2c3JGRTAyUHZpSWY5U3p3VGNaS3N6M2wvVGMwR0gyYkJxTnZ0VmJSVGJYeE9SdCtrbmJPazNOeUxsSWM5OVRyZjFwcHRxdlIxbmYvNG5MK1VDZkhYOVhCMC8vcFA0cVQ0ZitqWEI0eWJ4b0Fiall2KzFNbzFxVlVBRHNWV2JpMzJ4SUF0OXFBbzUwSjNMUXpnZTlMY1hzUXRIUzducFJMMWpRaGZNdWxiR2h0dUtQc3pCeFduT0xhVHBZdUJNQ1ByUHEzdjJQdFZEOXVRTFJaM2Z1aWY5TEkzaGNmOGhaNC9wOVp6WE92YnhxcHFtb3RGcVhtODFyelJhbkZvdEo4VVdrK3J6U2JsNXJON0xKbFdha3E2NUFUT1NWSnBEU05WT1N4ZWtXaVFUL1RjSkNvMTB1VXBwRzhYLzhRYnVObk8xVXhmTGF3b1ZuZlRqNjZ2Wld2YlZqdU53Smc3NldLQmxhWHJ6MllvWmJLcGJRNHNmQjNHUWJkUmNtVlBycnowOWo3TGVsdkJNRHVmRnE2QXgva3RaNHVTWWI1Q25qeWdHc3VpbnVUTEwvMzdVWHZVOStkOVI1OC92NmJQLzltM24vemorYjVBeVhwMWlvTWRRcHRuSnRTVGIxVTQxd0lUZTFJeUVabGFQTmMydEpZRUNzWDJXMThJdTlpYXczZDFQWjlWak1acmZxM3JxWTZlUFpMZXZUTzM5SHg0VytxcWUwWHl6YjhiZnVlOVNUdHVFaWZUWGYxeGY1MzZIUFpkMnA3UGxKK1hDcFoydmVza2xoRnNhTXM2eXU5NDlSTFUvMkxoNytzdWpwUkxhMld1YVRGL0pHZVB2b25hcHBhZHg3OElmV0duNWR6c2FLb1VIL3dCVFYxK1dmSytaTjMwMno3Lzc2WVAvbnFwYjVBQUZhU1pManJvOTYyMUtpdWw4ZDFkZks0cXVhemovME5uSk5yMjFlOTlMN1R4clpaVGFYMnNCUzMranZzNDdja2NuTHlQcFdQY2ptZjlDVzlkREFYSjhQZE9CN2NrYVM2bXUxWEwvczhkRnlhN1g0MkwxNlg5Nm0xZi80QXA2WmVxcTdtNFFBbEM0Qmp4WnIwQ2owWWovVmF1cWZkdXFja1dpcHlVcTJ4RnNsQ2MxZnF6ZDE3K2tML3ZvN1NReDJWSjNyNDVKbmVlLzl0SFRSUE5kTlVoM0k2MEZ4SHNwRUR5ek5MS1F1RXE2WlV0VHpRY25rUUhwVVV4WDNGQnpzNjJ2OTFGZjAzVmZRK3BieDRRMW52TlNYSjJOcEV1MVNTVk5jTCs3elZVclkrUmtxelhXWFpucXJlRzhyN24xYlIvL1JmSG95KzlmdDI3Ly9NdjVrZWZlV2ZMK1lQZjZNcWp4L1hkY21lR3dDNFdkb0ErTUtINFRrblJWSG9HbnZyOHJiUUN0cUZTdURwVTBsZThxazlNY01ISVFTV1ZDK3Y5SkhlQ20zd2xCUlNra3Mra1pwUzY5KzdiMkVvOTJIYVAwN0t1YTI3czZkV0tiaHhTUDVIL252Zm5vYWxyZlJ0R3B1RHZheFZoWXJjWlZtcExKc3dxMUZxUW1WdVhUZXFhN3U4RHRXM2RRaDVxMnA5WFZVM0tzdDY5YjBXOC9COWw2V1daYTNGc3RaaVVhMlc1YkpTV1ZsVmNOTTA4dDRwanIyUzJDdE5ZK1Y1dkFxQ2kxNnNYaTlSa2NWSzAwaHg3QlZGM2lxR3ZWT2FSdXIzRWcwR3FWd1NoUjFFeitrdnZRcUFiOTNHTUFqcnpxbEthUDZNdUhSdDVXKzFrSmJIMXVhOW1vY0RsSzc2d1oyWGRnWndMR1dEL3o5N2Z4NWpXWkxmOTZHZmlEajdYZlBtbmxsclYxZnZ5M1RQMnB6aGNKRkVTamFmbm15WkhsR202V2NaQWdRUU5tUlFoQVVSSWdnVEl0N0FOR2pRR0R3Q3hLT2Y5U3lidGlUTDlyTnNpWlFscmlKbmhweXRaM3A2NzY3cTJuTzUrejE3eFBzanpybDVxM3FmN3FxdTVYNGJwMjlXM3N5Ylo0a1RjU0srdisvM0MwSDdxT2pxWHJSZXY0ZGhqTzNqYndIcFh6OWJ1OXlEVDd3ZkpwWUU4QkpMM0dad25FWlhxcUFqcGRkdzNNNng3dW96anpSYUQvMUtxL3NvWWVNMGp0dXg2dHc2ZHdjc0VWdFZsRXJwVy92TU1xRW9CdWd5cGloaWREbEJsekZsbWRoY1haMWJhMlZwTXcyVkNsRnVFOWZ0NHJqZEl4V3hNUWpobzNYQ2RQUThCOWYrSmFQK242SVhKdFNTNjMwWm1zQ1drRHpXZnBqNy9DZG9KcXVFc1NTSUMxd2JKVXpwbE1oQzB5NWN6cTQ4UWJqWm9NZ04rZUFiRkdVNlYyVE5pZUQ0RW9kNy94TEhiU0pVUU5nNGlVQWhwVS9VUEVOdjQ0ZCtzU2pHZTFLNi8rOWxadWNTUzl4YU9HNXJMWXhPUGJPeS9nTlBPMTduRjhCUUZqRkYxdjlQV3AxSFhrbmlTOS9NczhIRmQvdWNzb3hIYVhLVlBPdGJaZVgzL0l4bkhRN2U3enpFOW5jU0pRTThyNGZuclJ3SDNuTlJpVlJCTTR5T2ZieTc5c3luUFgvOWl3QmxQaWJQK24rajJYbnc1VFRaZXpsZkZxbmdlZXRuZ3VnWVNvVlZvZEgxRjhxWUFsMG1sT1VSWnk0UVNBUmxucEhOWnVnaVE1WWVYbEhnYTFBSVNueTA4RmtOSXg0NHRrWVI1VXp5bk12dUlSZXlWY2I1UHJHWE1NZ21IT3FyOU0waGd6eGpVTVNNZ1JoTEFHY2NFY0VGbFJ0RjlhcUxLV2t4SlptZFo3RC9oL2poRHEzT1l6VGFEK01IMjdoZUI4ZnI0Ym9kNjhpaHJDMldMWmpTNkRLZEg1UHJyZUw1RzdSWG52cUo2ZmlsbnhqMXYwWThmWjA4M2YvcnJjNWpWNHQ4ZUtFczQ1RXVad2RMbStnbGxsaGlpZHNlZFMyc3k2MWM3cjBYMTF3WGJXdDFhVW0wNGV0VnBaWUh6VTM3aW1TWkIzeVRZYkRFbTFNcmdSdVFUMEJYNS8xZVZHVytJMm9iODhLU1JPa0kwakdFaVZWVHMwRG13bHRiTk92cWY5V0toeFg3V3FJMlRVdlN0Q0JPckNJM1NYTFNYSlBuSmJvMGxOcWdqYUdzckp1ejNLcDF5MUpUbElZMEw4Z3pTL2dXUlVtV2E5SzBJRWxMc3J4RUY1WXdOc1oranRGdi90cHlBcWJhWlZ1UUs0UjlsVklncEVBS2dlZEpHZzJQZHRPakVibldHdHBWZUs3Q2NRVlI1TEhXQzluYWFORHRCdmkrYzBQUGFpcnJZOWR1VWg2ZGtIc0tWVlNiVVBQSXRpVnVOYXBDREsydHVqL3VRemF5aGVtTHR1eDNQS3FpRStWYkMyaXZhYi9XMmRJQytsNUEvZGcxTHhEU3Q0cjNyKzB6bHZnQVdCTEFTeXh4bThEMVZuYURjUHZKenRvekR3ZmhzVi8yZ2swOGJ3VXYyTUR6Tm5DOEZrcUdWVVdmeGlDcVFYYVI2Q2dyOGpjbW1WMGducjVLUER0UG1seWh5SWFZTXFiVXFWWFpMaERBUWdZb0ZlQzRiYUxtR2RxOVR4QTE3a09wRUNFRUJrMDhPOC8rbGQ5aWVQRFZ0eVIvUGV5S1J4dFlBMDU2WFI3c1BNd3g5empOc1NTTU5WNE1vaUtBbFFSVkdwUXdKR09YcmVBa1Q2Ly9FQ21hNU9DcjF5MitsMVFMOHVraEI5ZitGZEpwb2xTRTc2L2JDbmluU2JQN0JHbDY3ZGV5ZE84MUtaMS91VlJQTGJIRXJZSGp0dFphblNmLzh0cldqL3hhby8wUVV0WHF4eHhkVEg4MW1WMmd2LzhIZjhmemUvLzl1eW4weTN4OGNUSjY3dCtMbXZmOUF5L1l4RkZOM21UNWRWTmgvNDZVUGtGMG5LaDUvL2U1YnZQNVBKKzhxd3BZU3RkcHRCNzRmRy96ei96VGR2ZHhsTnRHSU5FNnBjd252NVlrbHhqMXYvR2ZCOUh1UDA1bUY3OTEwdy9sTm9YcnJleHVIZnZMajFvRnNJL1c1Znc5VzNSVVVPUWppbnlFMW92WjhQYXIwV0RHZ1JoaWRqSUNGNElNd3NMTTNiNk5rR2dqTWFXaUdIazBzRm56eDdaV3lkeVVSSldNc2hrVHJ0SXZybkR4OElCemcxZTRrbCtlazhBenJESTRyYlpGWlhBOUp0bmlKRU1XWDJTUUQ1Z012b2x5TzdoZUR5L2NwdGw2Z0diN1VZTG9PRklGbGYzNFFqc1d3aTZLSVJFeW9ORThnKyt2VXhRVGluejg2MFV4Sk0vNlpNbFZacE5YL3RNd092YTdhWHIxV1YwdUM1eVdXR0tKSlc1VEtPeDB5T01XV0VBTHVBZUpqaHRRWjM2V3FjMVRsVTZWcCtwQXVHYlZxRWlidjdqRVRVS2xibk1qQ0hxUURLRk03RFc1V3ppUG13SmoyMlUyc1dSUjBJVkFIdG5FQ2xOSi9jWFJLMEN1S1pLQzJTeG5GdWZFeWZWa2J4eVhaRmxCbG12eXJDVE5qN0o1YTlXdjFvYWlVdm9XdWJWMVRpb3I1elRMeVRKRGxwVVVaYTMydFNyZlVsdExhVkdSV1VLQWt0SUtjS1ZBQ0t2Y1ZWS2lIS3ZrRlVKWWduamhiNWZWcTVJQzMzZG9SRllWN0hvS3gxRzRqa1JLUVJnNmREc0J1MXROVHAzc2N2eFloN0R0Mlg2dnJoOFZsZnBmZWdzWndQY1FoQURoM09NSzZOc0VRZ0lsNUhGRkFFOXNnZEpkUWNvdlpHNUwxL2IzVG1pL3Ztdkk3U1hlSzdRMlZaR1FSdDk4QnRod3BBdGI0Z05nU1FBdnNjUkhBTWR0cmpsdWU4ZDFleWM5Zi8yVUgyNmMzRG41NzUvdy9MVWZkLzBlcnJlSzYzYVJUb0JTSVZLNEM0dkhCcEFJRE5xVWFKMVJsalB5N0pBc3ZrcWFYaVZQOThuU1BiTGtDbG02UjVFUDBVVnNiWjNuOVpqWFEyQnpMMmZqbDBobUYraHQvakNkM2lkUU1tQTZmb245Sy8rY3djRy9wc2dIQzc5elpQMWNxMys3d0tQZDQzeHE1ZU9jOE82bm1RU0VTWTRYRzB2KzF0MjJCcFVZQXFIUk9pTXFYWTQxN3VlcDlaekVGY1NIMzJHYVRjazRVbUFWUURJOXo4R1YzMFlJeWRyNkQrT0gyd0M0YnBlVjFXY3dPdnZuZTVlU1o0QS8vdkN2M0JKTExIRWpndWprTTkyMVozNnQwL3NrZnJqRDBVMXViV0dDNkRoQ09yOVVsck9oNDBULy9Uc3BHY3N5VFR5Lzk0ZVQ0WGYreTdCeDZtZFU0ejQ3cVRYdjNjTDVnOE5XazRlTlU3UlhQdkhGTExuMnFsTEJQeXZMNUIyemdNUEdxYyt1ckgzdW42NnNmWmF3Y1FKUTgwVVBURWxRbk1MelZuOWVJUEM4bFlNczY3K3JJdnB1Z2g5c1BCQTI3dnZzMW9rZi84R1Yzak0vcGR4Mk5SclY3Y1ZhSkpmRmhIajZDbWw4Y2Y1ZVZlWkVnV2FRanhsa0E4UmFpdThhVkdad2M0T2NUd2swcWdDZDFBdFRnc2p4TUc1STRVRW1JVkVGcWRoa1Vwem1SRG5tZ2NaOTdKbUxYSTVIWEIxYzVqQzdTcCtjRVZ4bkU1MVYyNDNLNExLWVVoUlRTSzRnaFVLNWJXYWpGeGdQdmtrWW5TSnNuQ1pzbk1EMTExQk9BeUdjbzBnR1l4WEJRcmg0d1JZZUFtTnl0RTZ0azBjMklPMCs4U3ZKN0NKcGZQRkxxNXMvL0hJYVgzb3VTL2RlS1BMUnhhWGp4UkpMTExIRWJRTUhPeDI2NlVGL3ZtdEpZT0RlSm9GcnkwMkRWU0FsaHpBNFg2bmhKQVNyQzdFaTkvS0p1a213bnNMMmE2OEIwUnFrbGEyeGlYbkhqTnA3R3VJbzF6YVBZYlpuMWROdUJHNVZQNktyZGwxVzV6Z0hYUnBtczR6K0lPWGdNT2F3SHpNWUpneUdLY054eW1TY0VpY0ZSWlcvdTBpODF2YlAyaHdSc0JpRDFwQm1CYk00SjBsTDhxd2dMd3g1b1RIYVVGNm43RFZJSWVacVhtdEZMM0VjZ1ZLV3RIV1V4SFVVbmlkeFhZVlMwdkpmMWUxWEU4VkdHaERXY25vNnkwbVMwdDYyd3FxRERjWit0cEpjdURoaWxoUzBXcjRsZ0pXQXNsYVlWNFRValFUd2UzVFV2bU5oekpHeVZIbTJjRURJbzB6Z0pXNHQ2bnh2WTZ3Q09CbFlkZitjQUw3RE1YY2tVSlh5dDJYYm5RQTdJMTYydVhzRHRsTXRTME9lVzFjSWM2TXQvODNCb2lIYkV0OGpsZ1R3RWt2Y1pFanBPc3BwYmlvblhGVnVhOTExT2pzcmE1L2Q5b090TC9yQkRrRjBuTEJ4QXNmdFZubTk5UVJWV0lWdW5lRnJkR1dKR1ZNV0U4cDhURmxNeUlzUmVkWW5UUzRSajE5bE5uMkZQTjJ2YU9KcUh4YStmcXZuWUR0a2Ewd1pFOC9Pa2FYWE1LWkFDZ2ZQWDZlLy8vc2NYUDB0c3VUcS9IZHFENFpGOVc4SDJNYmxpZVlqUE5IN1BMM3hLdTY0d0VzV3lkK0ZBYUlBR1VPQXBwU0dTRHFjN2ozSzFDOTRiWEtlSzlsMHJyeXFlL29TdzJ6OEF2dW14RlZOdXV2ZmordjFFRUlRTms3UkEvSjA3Njk2d2ZwZWx1eTk4c0d1M2hKTExQRk9rTW9QVnJmKzNOT056c000YmhOZEpwaUZURmNoRkZKRk5EdFBrS1g3WDVxTlgvb2RZUEJPbjVtbGgrZmEzY2QvTjJ5Yy9oblBYOGYxMWpFbXU3a0hzZ0JUTFdTNTNpcXRsWTlSRnVOL0tLVDdVNTYvK250WmV2QW1CYk55b200UW5malV5dnJuLzkzdTJ2Y1JCTnZVR2JiejlETWhjWndPemM1akZObnc1eWZEWjM4YnVPc0pZQ2xkeC9WWEgvREQzY2Q3R3ovMHlmYkswei9UN2oyRjYzVFJPcit1cllCQVNBK3RVMmJUMTBtU0svTjNESVlTVFU1QlRNeElEQm1MSVluc29vU3lrKzQ2ZzZhYW9Nb3FJZzF0czlCMFdTSlRnWlRnU2doTlJLZ2JkTlVXWjVvbm1ibFRMazRQdU1TTDdJMWY1Wm9aMGhkVEJuck1mcFl3TURsVExCbGNXMFRYVVFVMUdhd0JZMHJLck04MDZ6TWRmUWZsdEdpMEhxVFZmWUt3ZVJyUDM4VHoxM0RkRmFRVElvU3liYzZVR0czSllHTU1Bb1Z5bWlpblNkQTRRV2ZsRXhUNThLZG4wM1BNSmk4U1QxOG5UYTcraldiN29kZUtmSGloeUVlWGltSTZ1TW1YZElrbGxsaGlpYmVIQXdUY1pKczZSMEhnMnRjbFlHNS9DcFpNbTE2MS8xWVZJZVIzcTdCa1l4ZmpsL2h3VWNkU3VSR0VQWmgxS3VYMWtoQjRSMGhaV2NZbWtCMUMwUU81WTZzN2hJUWl3eVE1MHpobk1zNll6SExHNDVUUktHVTRzcStqVWNwb2tqRWFwNHdtS2VOUnhpek95Yk9TVWh1cjhLMlV2MlZwYlo5TGJYTjlhLzRRSUM5S1MvN21aWlVCYkJWZVVFa1BhZ2RxSWFySTRTTkxhcVVrU29KVTBqNTdTMHZhdXE3RWNTU2VwL0I5cS9BTlEvdnFPTElpZVRuS0c5WUdYZVVHdzlIZnozSkxFSGU3QVEvZXY4cjZaZ1BIWDF6R3JqT0ExZDFCdEwxZkNIbGtnYjFVWW43RXFCd2FpN2dpZ0NkVkh2cmRjRjNxQ2c3SEZ2djRMWEM4NjR1QWxyZ0hVQlBBSlZtV2syZkZyUmpwYXhYY3NxRjlRQ3dKNENXV3VJbHduRWEzMlgzMHp6WmJELzlEUHp5RzYvZHduUTZPMThKeFdrZ1pJcFcxWHhiQ3FRcjJLbU5KWXlvaXdxQjFRWjRma3NTWGlDZXZFVTlmSlV1dVVSYmphcHRTbGpOME1VTnJTNVNvYXBNTHI0dEVNQnoxcE9VTm15NWpSb2RmUVpkVC9QQVlzL0ZMcEc5RC9ycFk4cmNKYkNJNTZ4emptRDVGTSs0UnhnNUJtdUtrMk9yVnQwSUJUZ3FCTk9TdVFKWVJxNmJGQ29xV2ZadmFjTHFxazYyVXdLK3hmL1cza0c1RWQvV3pLTlZBWVBDQ0xWWTJmdkEvVHRQOUMxSjV2NnJMTEhuclA3ekVFa3Q4VUVqcE5WMjMrd3V1MjdWSzNSc3FRSTNSQ0NId2cwMmk1bW1VYXF5L2w4K05aK2UvTWhsOTl6OXZkVC8yODU2L2NZdVhrQ3JEWWFId2d5MVcxaitQNjYvLy9WSC9ULzllbzNYMnQ5UDA2dk5HNTFNaFZPQzYzZVBkMVU5L3JyM3l5Vjl0ZDU4a2lIWVF5cjFCc1d5TGVnUUN4Mm5qUjd2NDBiRW5sQk45dTd5TGMxMmw4b0ptNTdFZjY2NSs1aDgyMmcvaGh6dTRYZy9IYWIzRlQ0djVxOVlaZVhaSVVSd0pyaldHa3BLTWtveU13Mm1mbDE5Nmc5NUttMU9zMjVVcG9ZL1VFalhxcnlWSWJmQ0V3UldBbHVoU1VHaEJJUVE2QzJrNEFRRXRkdHByVEpxUDBkY1RaczRoQjlrbFh0ay96N25aR3h3d1pJeTFpRTZ4WkhEQzlkYlE5ZXQ4UEMzR1RJZmZKSm0rYnA4Qi9BMGFyYk8wdWs4UnRjN2l1bTFBV2pXMHFkdmUwZm1vMDQrUkN0ZnIwVlFSWVhTY3NweVFaOE5meTdOOWt2Z1MwOUdMLzFrWUhmdnROTG55N0RJQ1lZa2xsbGppSTBGZEYzdFRXWWpBaGRBSHAxN0pxU2QwOXpLRXFKWUhTMnU3T2JsNnBQenRDRXNDS3h1anREeFpIeWFxWnhjaFFmcFZCbkRMNWdFdnlqNlhlRFBtUlFzcHpFWVFES0VkUTFDQ01XUnh5cUFmYysxZ3hwVXJVNjd1VGJsMmJjcHdsREpMY3NyQ0tyRHlvczdvTFpoTzgwcE5XOWp2WlRZUE9NKzB0WUxPS2p2b1dyRlZDYlMxTWVpeXl2R3QraE96SUtHZDg3M0NQcFZlZHhpaTN1cWZYY2o2RlFMZlV6UWJIaXRkbjk1S1NMY1RFSVlPanFNUXdpcVFUYVZhclQvSEdNdm4xc3JqTkMwWmpWSU8rekdUVVVhbmF6OTd2amdrNUJHaGZzK2d1ajVTMldJWDZTM2NjOHY3N3RhaWFuZW1oREt6WTFBMmhtTEcvQnJkNmFnVndOS3hDdUNnWXkyZ1dTakNYdUx1eGtMM1doWWxlWnFUWi9uYi8vd1N0eDJXQlBBU1MzeUlVRTdVZGQzT2poL3VQQjVFSng3ZlBmMGYzT2RIeDM4aUNIYngvRldrRXlHbGo1UXVBbWxKWGtwQTFKcGZOTllTdWN6SFpNazEwdlFLYVhLRk5MbE1sdTZUeFZmSTBxdVUrUmlqcy9tamVVM0tlaHlSdi9YbWNFUUNMeTRyZzUwRzE5bUdpem1IWmRabmRQZ25LUGNseWpKKzA3SFdCTENQSlgrN3dLN3M4T2o2VSt4R1ovQW00TVVGYnUyWCtVNG93TW5BelEwNk5YaWxvYVVON1lYOXFjbnJyTnIzd3BSTWg5L2gwRzBpWlVoNzVXbUUwMFJJaDBicmZsYldQdmZGUE5zL3A1VC92NVpsdWlTQjd4RW81UVUyK0VzNFVDYkdsTVdTRExsNUVNTHhoZlFRd3EzNmxCdWYvbTBsdDVJT1NvVWc1WHQ2N3NpejRkVk83NU12Rk1YSVRxYnNYM3VMejc5NU1FWWpoVU1RN3FDY0JwNi8rWE9OMW9NL2x5YVhLWXNZb1Z3OGI1V3djWnFvY1FiUFg2MHliRy9JZXFXdVpyZmxLNTYvd2VyV2ozNnAyWG44Yzd1bi94L2pOTDcwU2pJNy80MGt2dmkxSWgrL2E5Ync3UTZsZ21iWVBQMTlHOGYrclI5cGQ1NzZtVWJyTEY2d2lWSUJ4bWhyZTF5TmV3QkNPQWpwWUl5bUxDZkVzemVZVFY2bExNYnp6elJvU2lSNVJRTDNzd0d2WG55RlUrNHFKelpXMGRwRjVIcnVCUGttMU44clFlUkFhbENGUVdKd2hLQkU0QXFCNzN2b1lJM01YV05UNVdUT2pMRTZ6ZmJLV2M1MkwzRTVmNFh6aHk5elVJNFlBME5nelBWajU0M3E0QklvZEU2VzdaTmwrOGpKYXlUVDE1bE5YaUZvbkNLTVRoQkVKL0NDRFJ5M2cxSkJGZnRnTUxxMDBRMXpwYlJBS2gvbFJBZzIwVkZPV2NZMHNnSE4xc05makZlZSttSWFYL3pTMnRhZmZTMlpYWGgyYVJPOXhCSkxMSEZMSWJIVHJwdEtBUHV1SllIVlBTaDJlM3RVWkpDUkZRazhodkhsaWh6eEs0dlk1aEZCc2xRc2ZmaVF5aXJDM0xES2gvUXRHYkxFVzBOYW0rY2tMWmxOWThwaWpKUjlpa25JWkdZNFBKeHhjRERqb0I5emNCQnowSS9aMzU4eEhDVk00NEt5MFBOczM5cUtNOHMxU1ZyWUxOL1Vrc0JwUmZwbVZSYndSNEhST0dVNnN5cm13U2dsOEswcTJQZVVWUWg3aWlCdzhIMXJHVzJNVlFEWGltVXBCVWxhY25DWU1PakhSS0dERnpnTGhHL3RBbkF2RWNBVmhGcXdnTDRMaU1ZN0VmVUV0TXdnbTFvQ3VFanNPSE8zcU5McnloQ3B3RzFVRnRCKy9lWkh1V2RMM0ZMWWlwOVNhL0lzcDhodTJaaFMxOWd2SDk0K0FKWUU4QkpMZkFCSTZRV08yOXgwblBhMjY2L2RWMWs3LzNLajlTQ056c01Fd1ZhVlg3bG9OeVV3dWdSaEtudG5oUzVtRk1XVXNweVNad1B5WWtnVzc1Rk1YMlU2Zlpsa2RwNGlQY1NxeUk3STNrVWxyclB3dFZ2OXU5NThyRXEzNFlUNGpvdWpGR1dSTTB0alVrb1NJRjdZVXFxY3d6SWhLNVByaHZUNjc5Y2w3Z0dXQUQ3bUJqemNmb2o3VnovR2h0a2lHSmU0c2JHTDdlLzRUR0JBQzBRSlRnbEZMbkFMUlV0N3JBdVh3RzJ5NGtZY0ZtUDIweEZ4OWJkVG9DaGpSb2RmQjF5VUNtbDJIa09wQUtVaTJ0YTY5VGVMZlBKbnBYUitkMGtDM3IyUTBuRWNwN1ByUnp0UGRGZWZPUzZFK3lVUWFKT2pkZkxYMml0UGpiVk9ScnFZOVl0aWRsZ1c0NnZ2bHVlNnhIdEZXV0RLYWxMd2RwTnVnZFlwUlRIQjZIejZYai9abUd4bUNiQ1BhbEpoTU1ZU2xZN1RvZFZwRXpYUFVCWVR0RTVBT2poT0F5VWpoSFFxRWNRN1BaTWFqQ2x3M0E2OTljOGpwZk1UWlJFVFQxOW5Pdm9PNDlGMy8yNno4K2pYMHVUeWQvTDA4RTFXMDdjN2xCTTJmWC96c2M3cU01L3NySDc4Vjd1cm55TUl0K2VFdUM2dHZiRmRvM1VRd2k3YzZESWxUL3FrNlRYUzVES2p3Njh4RzcrRVhpZzhzcDQvaG9LQ0RNbUVJWHM1SE9yanhNNTlaTXJCRnpZU2pFWEJ5VUxtUENWMllFdUIxSUN1WXJNRUtHRkFHSFNtS1dPQjQ0S3JJSGNpSXFmQlNyakRtZWhoOXZQVHZKWjN1WmJ1TVRBRmUvcVFpY3FZbXB6RFpNb0lRN3p3WnhhSjRia3kyT1NrOFFYUytBTGk0Q3Y0MFRHYTdZY0lHMmZ3b20wOGR3WFhiYU9jdHJXQVZnRzJTS3lFT1lGK05KeEo0ZUVGbS9qaE51MlZweWlLOFUvSDAzTk14ODlibStqNHlsOXZ0Qjk0cmNoSGw4dGljcTNJSjNkOGtjRVNTeXl4eEcwS0Z6czl1cW53WGZCZGdiUE1BSDR6Nmh4R25VTTZnSkVFRlZScTRHM3dRa3VTbUtWSzdzTkY3V0lpTGZrYmRCY3lNS3RubHJ1RkNQbWdXSmd1RlNYc2p3d1hEM01TZDRUVHYweXNVaTd0RzY3c0o0eEdhVVhpRnFSSndYaWFXd3ZvY2NwMGtsbTFiMXFTSkRsWmJoM2tTbTNWdktYVzFhdVoyeWwvVklpVGdxTFVqQ2Nacml0UlVoSUVEcTJtUjZ2cDBtNEhkRHMrclphUDV3S0lTaWhCbFRrTXN6aG43MkRHL2tGTXJ4ZmloVzVGb2xma3I1Q1ZEYlRpeUQvdUxrWTk5eGFPTGJ4US9rS0J5N0p2dTJXb0pmQmFRejYxT2ZUcENNcTd0QTBLcHlLQW03YklwNDVoV282bjl3ZzA2QUpUNUJSNVFYbHJWdGhyemRwaU11UVMzd09XQlBBU1MzeVBjRlRVYlhVZi85RlcrOUhmREJxbjhQd05ISytENDdSUVRoUEhhU0NsWjFVOHNEQXcyczBZYlJlMWl5bXo2U3RNUnM4VFQxOGpTNjZSWjMyS2ZJQXVKcFRGRkdPSzY4amVSVlZ2VGZMV0t3NDFLVnUvK2tBRXJQaWJiSGZPc05aYXBSRUdUQ2NEM3JqeUdzTmtRdUk2RE1uWUs4ZnM2NWp4d3A0dTlyQ0w1Rzl0L2R3QVZvRkhWczd5MVBwbjJORGIrRk5Ka0Jhb0ZMdmkvUjRlQ0lRQnBVRVc0T2NlUGQzamxDK1FhL2Rqb2hWZUc3ekFkNjk5a3dIV2NsTml5ZW9zSHpMdS95bXV0NEtVUHMzMlF3anA0Z2ZidEZjL1NacGMrUmU2bkQ0SmZPdDlYK1FsN2dqNHdmYmpuZDRudnRaZS9TUkJzRU5kSG1Fc0Fmd2JXbWZvTXFVc0ppVEpGYWFqNy80TkwxajdGMW15djh5SS9vRFFPaDBXK2VBL0w0ckJ6M3VtaHhBdWk3MkdFQklENU9rQnlld0N1a3hHNy9XemxZcFdsUElRVW1MS2p6YXp6ZHFhS1J5M2llTkVsdFFVTnFlOXp2c3g3K2w1dE1wMmx5NVNPQWpYcGRFOGl4OXMwdW8rL1l0Si9BYWovdGYveTBicnpQOHlIYi95QnpmNXNENDB1TjdLYnJmM2lSL3JyRDd6YTQzV1EzamhKcDY3YW91Y3pId1V0REJnaEIxZGRKa1JUODh4N24rRDhmQlo0dGs1OG5TUEl1c0QxNWNVV0JXd3RZQ2VZUmhpMkp0Y1kyOXdTR1JDWEVlaGl2TEkzYkhrU0lhYmMrVFZYSWYxTHU1UTlZZGtMcXdxMkxHTDY5b1JGSzZrOEFSWjRkQlU5N1BXNnpFUkdhTmlTcis0U2hiR0RQUUJMMTE2Z1l2SkpjYVV6TEEyMFl0RlZmUENxb1d0MUFuSjVCWHk1QW9qNTA5UlhnZlhYY0VMTmdpalV6UTdqeEEyVHMxdHM5K3FHTUsyelFXYmFMZUxiSVVFNFc1bEV6MzQ5U3pkSjAydU1odS8rSGZDY1BlZnh2SEY1WGk0eEJKTExQSGhvNTZlM1RRWm1oRGdPdUF1RmNCdmpXcE10QkxDQXRJaGpDNVV4SkFEY3RQYVZ0Ykt3U1ZSOHVHaExvSjBRa3NBKzIzSVo1YU1YK0lJbFZpd0tHQTRoUXY3OE1JRnphaWNvaTVkSlJaVExoMElEc2VHb3JUUHkybGFNSXR6SnRPQzZTUmpQTTBZanpObXM0dzRLVW16MjcvT1BjLzFkUXBrS1FTamhrdXo0ZElhWjR4R1BzMm1oKzhwSEZjUitsWVZMS1ZBU2tHV2xmUUhNZjFCYkkrM1hoeXJQMUlvcS9SWDdvTHkvSjBLbE84U1NHbnRuNlZqdjE3aTFrTklvTEQ5WGR5SGRMeWcvcjJMcmttZE4xMjdQQ2kzRWpvdHg5RzdIdk5ucGh6eUdUcWRVZVk1NWEyaFl6WE1OV3RMQXZnRFlFa0FMN0hFKzREcjkwNEcwYkdub3Vqa2t6dW5mK3IrcUhIcUo0UG9CSzYzaG5JYVNGbFYzcGtTWTZ3MUkwSWloUXRTWWt3NXQzZE9rOHZFcy9NazAzTWs4UVdTMlJ0azZUVjBQa0ViTzFHcXlkYmFUNnhlVlhBWHRwcjhEWUUyMEVJU29XZ1FzdEhlWmJPN1F4T1BCbXQwM1dPMHd6YUI2NUZFWSs1YnU0OXhucEw1TG9keXduZjZYK2ZidytlUHNndXJiWEZLY2FQNmQwVklUcm85N2c4ZlpzZTVuMmdjNEU0S25JUXE5L2U5UFhRTExBa3NTb05uWE5hOUxkeXdRNlAzQ0NyWW9KbEQ1cDNuWE5hblgvM09mUCt5UTRiN2Y0VG5yK1A1Ry9qQkJrSjZCTUVPbmRWUGs4UVhmb0FsQVh4WHduR2FhNzJOei8rYnE1dC9qa2JuNFlvb3NlM09tSEsrWVVwMG1aSG5RMXFkUjM5dE9uN3BmK2h0ZlA0UHB1TVhmeWVOcnp6M1VSL0huWXF5U0pOVzk5RXZUNGJQNG5scitPRU94amhRWmY4SzRWTHF4Sko4ZzIvLzNhSVlYM3N2bit1NjNkM2U1ZytjVWs2RGozN2lWQ3VCU3pDaU9pNWJZVzMwOXpMcE1SaHQwMnhCSUtTTEYyemF2aXZhd1E5M2Z5YU1qcDlkM2ZpQkp5YmpGMjdyOXVrNGpXN1l2Ty83MTNmK3pSL3RyRHo5MDQzV1E3aTFGYll1MEtWMTN4ZENWc1VCQWwwbVpOa2h5ZlE4MC9FTHpLYXZNcHU4U2pxN1FGbGFnWGk5cGxPanRoZlhhSElncFdTS29aOWVwVCs3d2thd1RsTTFVV1dKMUZpbU5jR3lydldBOWs3cmorYjZWNUhac1VoS2c1SWFSNEhqQ01MQXB4MGVwM0FGc1pzeWM0NlIremtUTTJaNzdTUkRzY2VBSVpkRzE3ZzJ2a1pmOXpsRU0rSW9Oeml2ZHErMmlpNHdGTVdFdkpoQWNoa3BGTkpwNHZrYlRFYlBWaGJqOXhNMVQrUDY2eWduUkFvZjBHaWRWMjJUK1NzSXBQUlF3Y2FSVFhRUlUrUWpXdTJIZjZuVmVlTDdkay85NUxsa2R2R0ZaUGI2VjlOcy8yVmR4SU9sUzhZU1N5eXh4QWVHSGVodUlwUzA5cytCVjBYYXduTHQ5YTFRSzRITERHWjc5bnZTdFNjdFdxdHNvV1ZGV2k1UDRBZUdtZi9QRXNCaEQrSkR1K1ZUNWhiZDl6cnFhbm9EV1c0NEdCc3VIZ2hldXdvSDB4UzhRM0taTUloOWNqd2NSMUVVSlFlSFU2N3R6K2dQVXBJa3QyUnFvU2tLL1pHcmU3OVhhR09ZVERQU3RHQTB6cmptem5CZGlldEl3dEJsdFJleXVSYlJiSG9vSlVqVGt1RW9aVEJLU2RQcW1YY2VUa3hGVG5sV2xWZ2sxWGsyZDNFdWNEMXBrWmI4VlM3ekxIUnhaN2FKT3hPVkF0MllTZ0hjdHhFRXVqZ3FTTHFqY1VNN1c3VDRsd3JLY2xsSWRkZWpidU9WeW4yNmo0bjc2RHpqRmcwL3RRSTRaVWtBZnlBc0NlQWxsbmdIS09VSGp0dmVkYjNlS2NkYk9kSGIrS0VIbXUySC8zYXI4eGhCdUl1UWJxVnUwdGJKMkdUVjg1YTB1WVpDWWt4QlVZd3A4cEcxZDg3NzVNazFwcE9YR0ErK1NUeDlEVXc1ZnpTUTJOV0RHM044YTRWdi9lb0RMYURuUnpTa1QwTTc5TVFLS3lLaWdVUFRkTmpwUHNqdXhsa2FCSWpZZ2RSRnpPd3pvWkU5ZHBySHlLUWdjejJHM2dTbFV3YlRpNlRsaE55WXVVcHBNVmF4SnFOOUxBRzhKaFVQZGg3Z2hIdUdjQnJoeCtBbEdqbTNmbjZQbzRJQm9VR1VHZy9GYXRDaDFXclFDTHBnVm5IOWh6RGRhL2pEYi9CcVBnUnQ1aVIxQ21UeFJRWUhYOGJ6MXVpdWZRYlhXMFVJbDZoMVA5M1ZULzFJcS8zUUMrUFI4Ny8xdmJRRHFieEFTcThKWUV5WkdGTWt1bHhtS3Q0TzhLUGRKMXZkSjMreDBYNElwUnJvTXVQR05pZXd0bERLOVhEY0ZtSGpKTTNPNHovUmFEM3dFOFBETC8vWHJlN2p2NTNNM3ZoYW5nMHVmalJIY1djam5yNytydy8zZnYrdlNSWDlSclA5YUZVTTQ5bE1jNTJSSmxjWUhQd1JrOUczLy9sN3RaLzFnKzFIdzhaOVA2L21oRDdjSGd0MDVpMVZtTjhiS2xyVGxIT0ZzeFEramRhRCtNSDJYL1REM2Ivb0gzN2x2MnF0UFBHNzZlemkxNHQ4ZVBGMkllbVVFelk5Zi8zaDd0cjNmYjdUKytRdnQxYWVKZ3kzQVZWWkZGdGxxcEFPQW9VeEpYa3hJazhQU09QTHhMTlhHUStlWmRUL0drVnVSZUcxdzRWWTJHb2N0UUJEZ1NiRk1DTm5iQVpNeWo2cExzaU54QzBGTWpNd3hUS3U3MXQwc25CdFM2QVVDS29DTE1kZzhwSWkwVGdPT0E2RXFrbWVDdHBPai9YR2NVU2pZTXlBYytwMUx2RTZCOWxGcnVwOStpSmhhRkwyMGdramJQbHF6VS9YWlBDODhNcVVsUG1RV1Q1a05ua0o1VFJwdE03UzZueU1zSFVHMzEvRDlWWngzUTVTUlVnVjJPY1FZMGRFWTZ6VnVGbndaSkxTd3d2V0s2WDVrejlXRkdObTQxZVlESjlsRnAralNBLy9XclA5NFBraUg3eFI1T05yUlRFYnZOOHp0OFFTU3l5eHhDMGdnQldFbnQzY0pRSDg5cWp0aGswQlpRcXpneW9IdUZJQ045YnM2OXp6YW9rUGpyZFFBRXUzSXFTV2E3WTNRbXRJTXBnbWt0SE0wQjhWYURIRE9JYllDTFNqS0VyRGRKcHliWC9HNWFzVGhzUDBydUphaklFczEyUjV2YjV2NFh1SzJTeW5MRFJibTAwOFQyR01zU3JvU1VxV2xXKytiWVVFNWRoTnFoc2kyTzVpeUVyNUxHOTYvUHdTYnd0UmtXTXpHejJRVDZ2MmR4ZGREeWt0NmV1RzFuSmMzRlN6a3lWdU53aFZ0ZkVKVEs3QWRCK2RwN2VLamEyTlNaY1BFaDhRU3dKNGlTWGVCbDZ3ZXJLOTh2UVBOOXVQL2tiWU9JVVhiT0o2WFJ5bmcrTTJFRExBTHJacU8vUUphM0pwVE1Wa0dzRGtaTmsrazlIelRJYlBrY3pPazZmN2xQbUFvaGhSNXRac2VkSGErVVpiWjM5aEM2c3R3cEt2VzM2VEJ6Yy96cnEzaVpkNXRNUW1iYWRGSkJ6YzNDV1NMYUpCQTA4clpHNFFOb0RRN3FPVUdNZWhjQVNwNStEcUJtZWlCN25hdThTZy8wMG1lVHkzV2w0a3ArWENmaldCTGEvRjJaVUgyZkdPRVE0RmZsTGkxTGFiN3djYXBBWlpnaU1FRFNRTjVSQUNaZVlRT0dkb3JFSERrOGpEYjFETURvOHlGWUVNeldUMGJhUlFPRjZIZHZjcHBBcHduUzdkMWUvN3NiSkk0akE2dGhmUExuejkvZXlXSDZ5ZmFYVWUvNFRuci84bWdDNm41TVgwcjRUUnNSZXpkUCtsWlpic1J3Zlg2Mnl1YnZ5WlB4czE3OGR4UW9ES2FyYWVFZHFXSythVnY1VlZxcEM0VHB0VzV3bjhjUHMvYm5XZStJK0gvVC85TDZMbWZmL2JiUExxSFdPN2U3dWd5S2NEeDIzOGt5SWZYNDFhMy95K01EcjVjNTYvQ3NhUUpsZVlUVjc2VzVQeDgvOHlTNjQrKzE0K1R5ay9XRm4vL09OUjh3eEtOVEg2YmxSbnZQV0VTWWlLY0hUYnRMcFA0b2U3ZjdPOTh2VGZIQStlWmRqL2szOVRLdmUzUHVyaUU4ZHRiM1o3bi96TG5kNm52dFJvUDBJUTdxRGNEa0tvNnpLUWpURUlESWFNTkQxa012b09vLzZmTXB1OFRKNWNKYzhHMWlXRE4yZloxK09PNE9ocDMzNnl0WlBPc1NScVA4ODRUR05pdDZRMGdqSVZxQm1JR01nL2pEYXo4Qm1GemFwM000TWp3SGNFeGhHVVNsQzRnakozTUpsSHBEd2kwZVRFNmhtbUROa3Y5cG01WS9ieXkzejM2ck5jU0s4eUJpYlZOcTJPSlVQTTg0SkxqZ3FjeW1MQ1pQZ3N5ZlE4cnJlQzY2L2hSN3MwbWcvUjZqeENFQjVES0w4cVJIdnJZNTdiUkFzSnd0cEVOenVQRUViSHlZc3haVEg2alR3N0lKbGRaREo2L2o4Tnd1M2ZTdUxMdDYzeWZJa2xsbGppTm9XUEhjNXVHbHdGalVEUUNnV2VXMXZ5M2N5L2VJZWpWcTJVaVYyMG5DOWlWK3FsUmZYVzhrUitBSmdqdDEzSEE3OEZYZ3ZjWUlHTXUzNStkazlpb1prNVN1QzcxdEpkU0lQV0pkb1lFSXFpekpqRmttbFNNaHpHN08zUEdJMnl1NHI4ZlNla1djbkJZVXlwTlZJS29zZ2xRakNiNVl6R0dYR2NZOG9TNFN5MEpTRXNTU0hVa1JMMnJrV1Y4eXV3eDZ0OHEzNldpcnY4d0c4elZPMVBsMUNra0Uycy9YT2UyUGZ1Qmt2dXV0T1pxMzhidHEwSldMYTFld1NpK3A4dUlCdkE1QXBtZW9BdThtVUx1TU93SklDWFdHSUJydHZaREtMZGo0ZU5VMDl2bi9pcmowV04wMS93dzEwOGJ3M0hiU0tFVTZscmNuUzFjRzJ0TFIwUUVtRU1wWTdKc3o1WmNwbDRlbzU0K2lxenlldWtzemNvc2tPMFR1M3ZjV1RwdktqeVhkeDhiTVp1RytpZ2FORmdQZHJnMk1vT1RkbW1yWnNjaTg3U1ZsMWNvUWhvRWVEakcyR1ZWTEZHWkNXeXlDMjVhc3hDVGdwb0JZVUwrQVZCQVNlNnV3eWNSemczUGNmbFBKN2JUOWZ4S21KaFh3TmdNK3h4cXZzb0crNFpHa1VMTHl0eFVuTzlaL1Q3UWUwd29rR2tCaWZUK0tXbUxEU0JEZ2k5K3hEZGdtRXlZMy8yTldaa2Mwdk5Bc2pMaE1ub09ZYUhYOFh6MTRtYVp4REN3UTkyNkt4KzVzZmoyZmtYdldCOWxDVjc3NXI5NmdWcloxcWR4LytOcmVOLzViTkJ0UHNGMSsxZ2pFSHJsTEtNZjdNc0ptVHAzbit6dHYyano4ZlRWNytjekM3OGFWbkVTekw0RnNJUGR6L2VYbm5xYjRmUkNVczh2V254UmlDa3NncGc5SkVsZEprREN1VkVSTTRwZkc4REw5ajYyU0RZT2RWZC9kVHB5ZWk1Ly9POUtsV1hzQ2p5NlFENFAxeXYrODJwdi83Ymp0dmFNc2FVZWRhL2tLZDd6eGZGZFBCZVAwdXBhTlh6dDM3WkQ3YXFIUFc3cWRoUElxUzBxdGlxVFFvRTFPMjBWbThhZzNJYVJFNExQOXpFRDNjSkdzZi82ZkR3cS8rWkg2ei80L1E5OUdFZitwNUx4d2tiOS8zQSt2YWYvd3ZkMVUvL1RLUDFVT1cwb09ieEJ0WisyQVVoS1lzcFNYeUYyZVJseHFQdk1CdS9URHg5alR3OXVyVnVMSHp5T0JvWHpjSldMbXlpZWsyQi9XekMxZGtGa3VZRUxkWXBjdkJTOFNHUnYyK0JhbWNFUUdrUW1iRnJ5UXJLS1pTT3dIRUZnZCtpNTNmSm5BMDJ2VjFTTDJYb0g3SWx0cm5HTmE3RjEzajk4QlV1RlNNT2dUR0NCSWNFVVJIQnBpS0JOU1VhclF1eTdJQXNPMEJPWDBPTlgyUTZlcEh4OEp0RWpmc0ltL2NSaER1NDNpcEtoZGFkQkRDNnJOcFRSWjh2MmtTckFPVTA4ZGpHbUl5eWpHazBCelRhRC85S012MzQvNzV6OGlkZWptZHZQRy9kRVE1ZVcvYUpTeXl4eEJMdkNJbWR0dDNVRlY5SFF1UkRJN0RFMFJMdkFtRmRnTkFGRkRGTXIxbjdTamV3QzlwZTJ5N1M2NldONVFkSHhRRFhWcnh1QTl5bVZRUVg4VWU5YzdjUHFtYm11dEJwUUxkNXBPZ3Z0UVpoMEdYQmVKS3czMDhaREJJbTAreU90WHIrWHBIbEpZZURoQ2h3YWJkOGlyWjF1WW5qbkZsU2tLVWx2bk5EdmMzY2N2Y2VLaktRamkxcVVYNmx5bHppMXFIeVNTd3I4amViV2lKWTY3dUQvRjJFZE96WTZUVXFad2V6SERQdkJkUkNtakszN1RzWlFESkFaMVAwTFFvQXJyQnNiQjhDbHRPR0plNTVPRzV6emZWV2pydmU2cG5lK3VjZmJYUWUvb1ZtNXpHQzZDUktCVlYrcUVIcnloQlpDTVRDSXJmUkpVVXhwY2hIRk1XQUxEa2dpYzh4RzcvSWRQUmRrdGtGakNtdlV6aTkxYUozVGZvR1dHdm5yaHZSVVM0ZDBXTEZ0RmdWSVIyeHdrYm5GS2ZYejlLV3F6QlJPSW5FMGVBVUJyY0VwOGhSSmFnU3BEWTJEN0hnU0VLMTBIVXFCNVNHVWhoY1Y3RGlkTmhSMjNSVkY1L0wxNm13RmplSkphZFBkTFo0WVAxSldzVWFjaVp4OGhKUjFIL2pmZmJSQW93QW84RGttanpMSWRNVmNRMDZ5NUE0ckhwbmVLQTVZRy9TWjVDOHlBZ3pQNmNGVUpZelJvTnZFTFhPRWpaT1duSWU4TU10ZXV1Zi83a2lIKzVMNWYrYUx0UGt4bDJReWd0Y3QzZWY2L1ZPOWRaLzRQdFhOMzc0YnpmYWo2QlV3SkVXcmQ1Zmg3S00vOE40K2lyandUY1pENzc1bjBTTkUzK2NKbGVlTGN2c1RaKzl4SWNMeDJtdXJheC8vNU5SOHd5TzE2dXlSbytxRytxTVZsMG1hSjBoaEVLcHdCS0twaUtESzZ0YXFRS2FyUWZ4L2ZVZjkvejFIM2ZjOXQveWd2WC81YjBVQ2l4eFBTb2I3UTlrcGEyYzFvN3I5WENjbGlVWDM3ZWR3TzJJdWswS2REa2pTL2JKOHhHbWFwdEMrU2dWNGJvdGxOT3M0Z1ZLdENtUXdpTnFuTVlQdGduQzQxOTAzYzVhby8zZ1AwK1RxODhYdDhpMjNQVjZKOXZkcHovZlhYdm03M2RYUDAwUUhVY0lyeUlYUzRTUVNPa0JocUlZazZYN0pMTUx0aUNuLzZkTXg5L0ZsQmx3cE82dHgwU1BvMWdEanlyUFhuazB2QUFoSmJPaXBKL05HSnZ5dXVDWEFqZ3NadXpubHlqQ2liV0hIaHdKVUQ1OG1EZi8wd0JhSUlyS3VVTVo4QXhsb1NtVEF0Y0J6L2ZJdEUvVGI3T3h1a3ZpcDF5ZG5tZEhkRGtYdjhIbEl1WnlQT1BBRkl3eHhFaFNEQm1hb3RwS2RQV2Z3UmhObVIweXpRNlpESi9GODllSTJnL1JiRDlDR0ozQTlYbzRiZ2ZYN2FLY0ZrcjVnS2dVd3VYY3d0ejJmd3MyMGNMSEM3ZndvMTA2S3gvL3NUenJNNW04eUhUMEhNbjBqYi9UN1gzeVhKYnR2MXJrbzh0bE1iNjZIT2VXV0dLSkphNkRoeVdBYityNmlwSVErSll3bW5NZnkyV3hkNGNRVlViakRNWVhLNXRZRDlxVnBhWDlJWlluOHdPaWZnZ1RFcndJd3E1ZE1OWUY2TXJpOTY3TlpIMlBxTTZSOUtEYkZMUWI0RlpLVmdQb1VwTWxPWk54em1DUU1aN2NlK1J2alNMWDlJY0psNjlNbU1VNVdqZVl4am1UYWNaMGx1UDVqblZ5UjFRS1lNZVNVN1VGL1B4aC9XNXNjN1V5VTltQ0ZxY21nTTJ5RzdzVnFJc05UR21Kc2ZqUXFuL0w0dTZxUWJoT0FkeTB6ZzdWM05LU3dCL3AzaTF4TXlGcStWZHByWjluZXhEdlF6YWhMRFY1Y2NzdXY2SFNlN0cwZ2Y1QVdCTEFTOXpUOElPTkIxYldQLy92dHRxUC9xSWY3ZUw3R3pqZUNvN1RRaXIvaU1nVStpajMwUmlNb0Jyd2NyTDBrT25rSlNhajc1RE16cEVuMThqVFBjcDhoQzZtY3dWdGJlbGNiOTdDVmxzNmg5aVZnODF3aDVQZE0reEdxM1JZSTlKcmRHVkVwSDE4MDZBOWJ1QnJENW1DekV0VVlWQUZxTkpBWVZXKzg2Z2R3OXRYWnhVQ3FjQXh4aEtvdWNKb0g0V1BRaUxRYjBuK3ltcS9OeHN0am5WV2FSNzZxTnlnaXNwbStuc1lDVXlsU0RaU2tvdUMySXdwalVDalVjYmFRK3ZDNEFxUFU2MUhtT2d4NTY3c2NTVTduTytUQWtwVGtreGZaenA2bm5sV3MzQlFLcUxaZVpRc1BmaVZQRHQ0WFNyM2YxKzBVbldjUnJmWmVleEh1NzFQL1diVVBJc2ZiaE9FMnloVlo1QWFqb3I2TFpram5BYU41bGw4ZjVOVzUvRmZIUSsrVFgvdmQvK0tsTTQvdmwyeU91OVdLTGU1NGZucnY2U2NKdUxHYWxjaE1LYWtLRWJFMC9QazZSN0thUkEwVHVKN0czTjEzQkVNQ0lubnI5SlovUXhlc1BITFhyQjFPbXljL0cvajZibXYzcktEV2dLcFhLZlplbVRYODN1MkR4YkNWdEhlNFJCQ1lqQ1V4WlRaK0huNiszOUlQRGtIbEFqaElLV1A2L2RvdEI2ZzJYMkNJRHFHd01GcVhXM2ZvNXdHemM0anVGNzNaMXZkai8zczhQQ3JmODhQMXYrYm02MEdqaHFuUHJPMjlTTmY2SzU5NW05R3piTzRicmNpcUJmc25nR01waWhHakFmZllyRC9SMHduTDVFbFY4aXpQc1lVOHpGa01lYkF3NDU5allWdFZRVWM3ejdJcWJYaitKN0g1Y21NNys1L2w5Zkg1K2hqczNQQnpnSmlZQ0p5WnM2VVhHUUlSNkNyNkMrS1c3V1FlME51Y0FGS1ZLNGVRaENVZ3RJSWNpTW9pNERNQkRUVVdWWjNlanprSFhCeGVwa1h6cjNPYStOclhDTmhoR0dHSWFZZ29TQ2pKS2VveU9DeUlvU0xpaFNHUE4xbmZQaFY0dkdMdU80S3l1M2dCWnMwV21lSldnOFJSY2R4M0JZZzMvRnN6RzJpa1NBZFhIK1Z0bnFTUnVNTVJUSDZwU0lia0tiN0pOUFhtWXkrODFPTzIvby9pM3k4VkFVdnNjUVNTMWpVTlV3M1ZmWWpoQ1YrSFFYeWJsbGd2aFVRMHJMblJrTTZoTkZGVUNHb0FCb2IxaEphVkVyZzVZcjJCME5WUEk4VFFOaUR1QS9aMktya1lJR2N1N2NoSEFnQ3ErYTN4UndWQ1d3MFJaNlRwWVlzSzI0SitTdWxSRXBKV1I0VkN0NHVTSktDZzM1TVZwUzRubUl5eVpoT2MrSzRvTk0yS0lmcTFObm5WNlJ6YjdVeElhc01ZSGRaWEhGTFlSMjhLQ3BsNU96QUVzREdWTzN2YnJrV1ZiU2hVQXNXMFBWYTJ1M1ZWeXp4WWFOcTQyVUo2UWpHbHlIYlErY1poWWI4MW1rME5ERERHc0F0OFFHd0pJQ1h1T2ZnZXAzTklEenhxYWg1K2hNN0ozL3lpVWI3d2I4VWhMczRiZ2VwcWh4UlhhRExqTnI0V0FobHlRaEE2NWd5bjVDbGU4d21yekNidk14cytocko3RHhGdG8rcExJNXFaZE1pOGVzdi9MdUp0WFp1SVduaHN0N1laWHZsQkQzSFowVnMwbk9PcytxMGFKZ1dYdGtneE1YVElET05URXRrbHFGS3EvQ1ZtaU9lNEgxR0dObkNMWUVHTW1KbTVZQ1pIcE5WYWFvMUZoZnY2d1g4VUVraXBYQ3g5dEx5ZTRwUEVpREJ1RkE0VUNoSkpqTkdYQ1BFSnplZ2tSaGhGL09OVklUQkZwdk9ZNXpXTDNQNThOdk1adVBycktyTE1tYlUvenArdU12YTVwL0ZDelpCNXpodW0rN3FwOUVtK1NkbE1mMUI0SGNCUEw5M3NydisyUytzckgzK2k4M09JL2orT3FKU3Mxbkw3cmM3S0lFUURsNndpZWV2NFhwcnVHN3JONlVUL1EzSGFmeVA3OGYyZG9uM0J5a2NYNHJxNFhPQmlCSkNvbzBtei9ZWUh2NEp3NE92a0dlSFNCVVFSc2RvZFo2azBYb0lMOWhBT1ZHbEJNNHhPcSt5TVR1bzlxTTRUdXVuUFc5MW85UDcrRCtlamwvNm5TSWZYZjJJRHZXZWdoQnUwL1ZXL29uanR1ZnEvVHNkUXJvSUJIbDJ3S2ovTmZyWGZvZng4RnZreVlIdFY0VzBZNHdURW85ZkpFdXUwRjM3TEZIclFhUUtyTFd5S2NHVVNCa1FOYzdnK1J2NHdkYlBCZUd4KzFmV1Avc3ZwcVB2L25hV0hwNzdNUGZiY2FKdW8vWFFqNjd2L05pLzFlbDk2Z3RSOHpSU2hmUDdSVWlGbEQ1RzUxV3h4ZXVNK2w5blBQZ20wL0dMNU5uaC9MUHFjYU11aHFxSjN6clR2Z05zNFhDcWZacVRLdyt3SFQ3QVdyaU82N2tjdWxOV0NHaUlrdWVuVjlnckMrcVkrUUlZWlRHdlgzNkp0V2lEYmVjNHBTOVJXV0hkS0c0bDNzTExXcmdHNFJpa01LaFNVS2JnSWdpZGdFNTRuQTEzazdWb2g3WE5YVTZ2NzNNcE8rQ05hd2ZzWlZPR1pBeVlNU01scGFDZ0pFY3ZFTUpIWkhCUnBtVGxOYkxrR2dLSmNsdk14aS9pUjk4Z0NJL1JhTjVQMkRpRjU2K2puQ1pTZVpVTnVhbGNUc28zMjBRTGllTTBjTjAyaG0yMHpvaUtHWG5yUVpxZFIvNStQSDM5ZjlqWStiRVg0dW5yWDB2aUMxL0xiNUVhZllrbGxsamlOa1ZRYlRlZEFKWUwyeEx2RlF0NXlhYUVaQVREODBlV3FhM3RTa0ZYUjhvczhiMWh3UmJVRFNGY2dhQnJyYmNYMzF2Q1FpeHdkdlVYeHFETEVsMGE5RTB1Z2hWQ0VBUUJVUlRodWk1cG1qSWFqU2pMZDE3WmR4d0h4M0ZRU2lHRXFJb0lMYlRXVldUYTBiV3UvMTJXSmNYN3JKRXZTazJjRkJnTVVlalNINmFNeGlsSmFzbHhoYW5VdjlJU1U4bzd1cS9ybk55N0VmTkk3UnVJYjJOQUxPK3ptNCtxeldHcy9YUGNyd2pnc21xUGQwbkRNN1ZsZ2JKMi9uVUc4UHk5WlZ1N3EyRU1sSmx0MzVQTFVCeFE1aGw1S2NuTFczYjlDMkFDVEZrcWdEOFE3bzdWMVNXV2VBY281UWRTaGF2S2JXMTQ3c3JKbGZYUFA5bHFQL1lMclpXUFZTb3JWVmtqR25SVm1Xb2ZaQ1ZDMk1GTjY1UWkyeWZQQm1UcFZiTGtHclBKcTB3RzN5Q2V2b1l1a3plUm96WFJXNnQ4QXl6cDIzVmNhKzlzUEhxaXd3cE5XaVpndS9zUXg5Y2ZwZWVHZUxFRFV4OG5BYThBcHpRNE9zTXBPRkw2MWl2Zzh6NzNlK2g4Szh0bDdTcTBwK2tYRjdnNC9UYUh4UjVwWmJ4cWpuNlV1c0N5VmdLTFVtQUtFQlg1Kzc0ZWN4WSt5TGlRKzRMY2xlUktFVXNZRVZOS2g5ejNFWTZQOUZ3S1BXT1VIekFjWit5eGorY0dORjEzYmdIdGNNUi96eWF2Y0hqdFh4R0UyM1RjQnJLNmxrRzB5OHJhNThpU3F6L3VCV3NYZEprT3U2dWYrWGMyZHY1dlgyeDFua1Nxd0ZwajZybVhOWmJvclhaV2lNb2d6RTVpRFJwVEpnaWg4SUoxVnRZL2gzU2F2eWFReW5FYi8zMlZqYnJFaHd4aml0U1k3RHJ5RjBBSUIxME1HQStmNWVES2J6SHNmMjMrTTJNVk1KdThTbWZsa3pUYUQrT0hXemh1RjhkcFdDSUxqVEU1SUlpYTkrTjZLei91K2lzL1BqajQ2dDl0Tk0vK2ZwSXNjNTV2TnFTUWpyV3diVmNUcHp0MVVsR1BJWkt5VEVpU1MweUczNkYvOVY4eDd2OHBXcWMycHgyRk5KVTFiNWFRWmlPRzJSQ2RUOUJGUXRSK0FPVzBRSXFqWWdWQXlvQm0rMUdDeHVrdmhNMzd2dERmKy8yLzEydy8rSytTK09JM1A0eXNWdGZyYkxaN24vekxxeHMvOUtYMnlzZngvRFZBb0hXS3dFRktCMjF5OHZRcWFYTFprcitEcnpNNCtHUHk5TEE2QTljWERTMFdRZ1ZZNHJjTGJDaVBYVytWVTJLSEIxZWY0a1R2TWNLc2c1NEtTQVF0TDZlNUluRmt6aUFkTVNsSDgvM1V3Q0NkOHRMRmI3R3p0czFHZHhmdE91aEtnWHRUc1RnWUxsWjh6VGR6eEhvRHNyQjV3YTRBbzNQeVFpQW40RGdyZE5wZFRqVlM5dEpEWGpjWHVUd1kwVGN6OXVXSWlVd1lGd245MllReE0ySnlNakxTaWdqT2NDb3kyR3FDU3d3Nkh6TExoMHpITDlpaWdkWlpXcDFIaVpxMmVNQ3ByTWFWYXFDY0NDbDlwQXFxRE9vU201bHUwQ2JIUG14WUtDZkNjVTRRTmsvVFhYM21KNUxaRzR3RzMySTYvdTdmNi9ZKytWeWVIWnpQc29PWDhteTRMSmhaWW9rbDdqWDQxWFpyaGg5eDkvSWFOeFcxTWtzWFZyRWxLdnRVTjRKb3BYcGZMaGUyUHdocTRrOTU0TGZ0NWxTV29jdHpPb2NwSVU5Z2xscUJGVlJueUJpTU5xRE5CN3JINVEwWnBMWEsxM0VjWE5mRjh6eUNJS0RSYU5Cb05QQThqeVJKR0F3R2pNZmpPVkVycFVRcE5TZDlneURBOHp4YzEwVXBoWlFTSWNTYzRLMjNvaWptMitMM3NpeWJrOFFBV1phUlpkbmJLNDhObEtVbXkyQVc1MHdtS2ROcFRwb1dsRm96OS9VU3d0N1A2bDVTQUpzakFsalVLM1hMZSt6V3dkaXhKSjlaaFdRK3N6ZjJYZVVCWFVFNmxRSTR0SVVXeXpIeTdrYmRoNWFwZFUySkQ2bzRoNWlpTUJTbHBMaDFCVjBGbHZ5ZDNhby9lTGRpU1FBdmNWY2pDSGVlYUswODlmR3djZkkzd3ZBa2ZyU0Q3Mi9NTS9MbU5wYUx0czdZQjIvNy9LVFJPaVdKMzJBeWZKYnA4RG1TK0NKNWVrQ1pEOUhGQ0dIc2crZU5oRys5eU4zQUxuUTNnVlVpem5UT2NMSjNIODJ5Uzl1czBsRmRndElsRWsyaWNZdlFLTnpjV0h2bnpOb3F5OUlneXNwZVdmUGg1QzBJdThPRks4Z0RTUm9tdkQ3Nkx0Kys4aFgyODhrOE5yZzJQcTRYOE92ajhnQlRHc3JjVGxJRTd6WkpXWGkzV2lEWENncEhVTGlRdWpEeklmVTFreElHMGllVERpTTNKL0xIK0xoTXBwZDU5Y28zdVRpNXlCNWozdUFxU1Q2aVVlMXJ3dEhqVm9ZbW5yek00ZDd2NDdodG11MUhrY0xGR0kzbnI3T3k5dm1menJQaFQrZlpJYjJOUDBPcjh3UktoVGZvbm8vMjI5YSs2ZXRpVmF6dGFmMHZqVURndUYwNkswOGpwZk1sNVlSTngydi90MFcyVkk5KzJOQzZUTFhPYmZIR1VlazBVbm9VK1poUi8ydE14czlmUnhDWFpjSjQ4QzJTMlNYOHd5OFROazdTNmp4QnMvTW9mckNORUU1MTc5dkprK091MEZsOWhyQngveTlPUjgvVDMvLzluM2E5bGY4MXovcExwZHROZ2xSUnp3czJjTndPdGtMbFRpM3lzMVhCV21kTVJzOXh1UGM3VFBwZko1bStnZEFwSGhJWEI0VkNJYXBlUmxOU1VzWlhtVno5Zllwa2orN0dEOURxZlJ6bHI3STRxYmVGeFJMWGFkTHVmZ3cvMlBxNWVQTEt6L1VQL3ZqditzSEcvNVFtMTE3OFh2ZmNEellmV04zODRaL3FyZi93enpYYUQxYlhnbXFzcElyOHlVaW01eGtlZnBYUjRPdkUwOWZKc3dPS2ZGd2YvYndvWnpIZlBzU09oUzJzQThZMkhnKzJIK0doMVkrekkwL1NaWTNtcUlIS0pKU0dVa0phZUlUZEU0eWIrM3piK1JNdXBTTktqbXFnSmhqMnVNTEkyVVA3QlRyMTBGS2dwTGw1TmFKMURvSlhIVnhkaFZRN2ZpM08rNitMWXdDRVFRandTb01qQktFV2xFYlIwaEZ0NWJLeDFXYll5eGpybEtFL0p2WXpyZzBudlBMYUpTN0hlMHlZTVNWbFJrWk1ObGNJcHhUa0ZPU1VWaFZjV1VRYm5UQWJmWmQwOWdhTzE4V3RZaTVjZjQyZ2NaS29jUjlCZUF6UFg2dnM4ZlZiaklNV29qcDRnVVNva0NBNmllT3QwRmw1OHVleWJFQTZ1OEI0OU56L3M5RTYrOC9pK055WGRiSE1DVjVpaVNYdUNVaU9UQzF1S2dFc2hjQlJBa2VLNjJNdWwzaHZxT2NNV2tNUjI5ekcwVVZMQUVzSmZzY1NTTHBjcWxXL1Z4anJvSVp5d1d0YUF0aHRXa3ZvTWpsU2xOMWwvTWg3UnQwRU14aE9EZU9wSVY4UURScWpLVXBCVVpxM0owWGY2ZU1GaEdGRUdJWTRqb01RQXFVVXZ1OFRoaUdOUm9ObXMwbXoyU1FNUTRJZ3dQZDlITWVoS0FyaU9HWTBHaEhITWNZWWdpQ1kvMHdRQklSaGlPdTYxeEhLd0p6Y0xZcUNQTStKNDVnNGprblRsQ3pMeVBOOFRnaHJyUkZDa0tZcGUzdDdYTGx5aFN6TDN2SjRqREVVcFFGS3Nyd2tTUXFtMDR4Wm5GTVVldUc1VzloN1dDajdlamRqc1ZsSXgyYXlPbFgyc1NtWFk4Sk5SZDEzR1p2M204K3N4WDArdGtwSmdiMG1kendXWkVCUzJUYm1ScFlBbG83TmRGK09rWGNuNm1JYW5WZld6MWRnZGczeUtZaDZmSUpiR0UydnNmYlBTd3ZvRDRpN29XZGFZb2s1bEJNMlhYLzFiQmdkLzFnUW5YaDArK1JmUGV1SFczL1I4OWJ4L0ZVY3QydFZMcGpLNXJsZW03UTJ6MEk1WUF5bGppblNQa2w4eVZvOGoxOGtucnhLR2wrZ3pFZHpVdlRHVEYrZm93Q29OckNDUTVlQVk1MWo3SzdzMGkyN2JIbTdySHM3QkVXRHdFUkVCTGhhV2x2bnRFQm1CYW9FcFMzaEt6UkhUT3lIMXNrS0VBYnRDSEpmRWF1Y3cvSUs1NmV2Y1Q0ZE1NU1cyWlFja2I5T2RYdzlKMkpGT1VUNWpIZzZaakFlMFN0S0VGNUZ4aTFxaHJsT0JtWWtsQXBLWlhNYXRTY3BBMFhoU1dheVlFeENIc3lZMG1kZkpTU2pFYU1MZjRRblBYd2h5SkpETHZWZjVxRFlZd2lNcXZQZFErR2dHV09JT2FKSmltTENxUDhuaE5FeGd2QTRucjlXWlZGS291WVoxcmYvUEVVK3B0VjVES1VpYTdXNitMQlRXYk5pU29wOFJKNGRVaFEyMjBPcUNLOVNLZ3JsMndsYVpaM3B1RzFhM1kraFZQaEZ4KzFzQk5IdTMwOW1GNy8xWVYyOUpRQjBZZDZLSEJRU1hjNUlwdWNwOHplTGRiWE9TSk5McE1rbDR1bXJ6Q2F2TWg1K2gxYm5VUnF0aC9ERGJaUUlNS2JBR0hEZEZUeTNoKyt2NGZvclgvTDg5Vk5SODc3L2JUWjU5UTl1d1VIZU5aREtDMXkzZThKeFd4dkdHSXBpZkxrc0psZlJaWUdRamhCT0lKWFhpSnBuUGhGRXgzQ2NsdjNGTzI1aVlaVy9DRVdSRHhnUHZrWC8ydTh3N0grVklybUdCSHc4ZkR3OEZBNFNCd2ZYR3BpUmtwR1JrT1dISklmZjRLQVlrYVhYYUsxK2lxQnhIMG9GVmdsc2lzcXlWK0E0RFZTVlJlNEZtNzhZaER2M3RWZWUrai9peVN1L243OVA2L0pHNjRFL3M3NzdmLytwM3RwbmZ5cHNuRUtwQ0dPc0FzQmFjcGVreVdVbW8yOHo2bitkeWZEYnhMUHo4N0YwTVkrOUZzWFd4RzlJYmZVczJQVTNPZGJhNWJpN3c0bndMRnZlR2JxNmd6Y0RGUmVvTEVjSUd3c2dTNG5mQ0ZncG0zUkxRUlBJT0JxalVtQ0dKcFlabVN3b3hZTHk5c01pZ09zRHFoVy9kVFdVeS9YRTd5TGVLcExCTFB5Y0FJa0dvNUdsUUNZQzMxTjBvaGJydmlBeEJiSFhJL00wZzBiS2lhMU5odjZZZ1I3eHhwVURybzM2SERMaWtERmo0a29aYkluZ3JDS0NhMVZ3WVFyeWZFQ2VENGlucnlPbGgzSWF1UDQ2ZnJDRkgyNFJScWNJb21ONC9nYXV0MW9wZzYydXd1aXlhbmYyZ1dTeFRYaitHc0pmSjlBNVJlTTBZZlAwMzI1Mkh2N2IwL0dMLzBWcjVjbC9uVXpQZjNWWk5MUEVFa3ZjQTRpNEJSbkFVb0xyZ092YVNOc2x2aGZVOXB6Q3FsdW0xNnhDVlhsMms4Mmo5Kys0NTlEYkNMVXkwVzFBMElhNGFlZkt1bDdZdUVjWjRHcWhRaGN3VGV4V1hrY0FRNmtOcFRidnUvazVqcVRSaU9qMVZ1bjFWbW0zTzBSUlJCUkZOSnROV3EwVzdYYWJkcnRObzlFZ0NBSWN4NW1yZU1GYU9NOW1zK3NJNERBTUNjTVEzL2Z4ZlIrbEZNYVlPYmtNa09mNW5PU3RDZURaYkRZbmdHdHlXR3ROV1pia2VjNysvajdQUGZjYy9YNy9IUWhnMEtWR0M0blJoanpYek9LYzJhd2lnSytEZkh2MXI3aGhXMFM5M25iSFFWcmxyM0lyRmZBOWVrL2RjZ2hBUTU1Q01yUUVjRkU1MDkxdDZuTXBxd0tEd0c3WEtleVg0K1BkaWFxWXB0Ulc5VHUrWkIxVGRBRktVUmdvYisybHJ3TXYzM3FRV09JOVkwa0FMM0hIdzNHaXJ1UDFUcnZleXJITzZqTm53dWFwWDJtMUg2SFJmQURYNzlsRmE2UG5hczNhNWhsaDgxdEZsUkZTNnBRaU9TRFBEc25UZlpMNEhKUGhjMHlIM3lHTEwyTXdjeFhzWXN4ZlRmcEdXRlhUaWh1eHFqdzI1QXBycHNlS2FYRjY1VUZPYkQ1RWxFV0lxVUtORlY0aHJBS29yS3lkUzJzUktRcnN5dloxbmVwTjZHR2xJSGNoanhRVFo4ajU0Zk5jaUM4eEFtS09ldGZhelRJQXV0TGg0YlZUclBzUjQ2c3ZNaHhmWTErZVl6YzRnWEdhYUZVYzlTckdFcjRvTUk2Z2RDV0ZJOUcrb0hRTnVRc0pLZFBpZ0VTbmpQV00vV0tmbUFsWGl3dGMxTmM0bkE1NGZYUVJTVHBYa0RXRW91MDFhRXFITmFQQTZaSEpnR3Y1SVJlemZmWjFOajlqQnNqanF3d1B2NFlmN3RMcGZRclg2NkoxaHBRK3JjN2oxZVJGVmxtL1J4QkNZb3dtenc1SjRqZEladWRKcG0rUTV3Y1lZM0RjRGtHd1E5QTRoaDhkeC9YV1VkSURORnJuU0JuUVhua0t4KzM4REVJcFA5ejhmNlh4MWU5WmxiZkU5VEE2VDJ3MjZwc1hFQXo2VGRmenJaQm5BL0pzd0dUMEhOUFJjM1JXUGtGNzlSTTBXdzlaMWFPdzFyemFHQnkzUzdmM0tUeC83V2M5ZjMyNzAvdkVpZG4wbGQvTjB5V3g4VzV3dlpYZFZ1ZXh6NFhOKzMvVDk5Y3hwaVJMOThtelE0ek9rZEpGU0IvbFJJU05VNFNOMDBkMnREZDk3OTZLdFh1cjk5NTlUMnJpMStpQ0xMM0txUDkxRHEvK1gwd0gzNklzeHJoSWZId0NYQnI0dEVSazR3QzhCb0VJMFFhbVROaFArK3puWTZZNkpSbDhtOE5ranp6cjAxcjlORkhyZmp4L0F5RmRqTTR3eHZZM0lKRXFwTlY1QWovWS9nLzlZUHMvSFBXLzlndk45a04vbE1ZWHY1Ym40M2UwaFhiY1JqZHFuUG5CdGEwZitTdXJXMy8rQzBHNGd5NFRqTW10TWg1TmxoMlF4SmVZREw3T3dkN3ZNUnUvT0NkK0Y1MlFhK0szSm4vblZzL1M1Wmkvd2tteHhjbldHVTUwSDJUVFBVYVVObkJIRUtRNVhnNU9acEJWUEpqakFkS1F6alFSQVR2QkZsdmxnRm1lTU1QT0JuSXNDVHpNRWdiSmlKWUk4VjBKV1hsRFRNTDdSSDFROVdEdmNzUncxOUxtdW9tOFhZSFdqZDh6Vk5sY29ucFBXdmMySVhDRWdOUkFZWkFDWENFSXBFY2hvU01DZG5vZFRBK0dac2FyeFRVdWNjQStmYTZVaHh5YUNmMWl3a0UyWXN5TWhJS0VuSnlTek9yS0tTZ3AwWlJvak00b3Nvdzg2ek1idjRpUUNqL1lJV3llSVdxZUlReFA0UG1yVmkzc3JlQTRiYVQwQUlNeGVoNmJZVXlCV2NpSlUyNkxwdnNJamRhRHRMcFAvZXg0OEUwbXcyZi9YbnZscVc5a3llWG44bng0Zm1tanY4UVNTOXlGa0J4bEFOOVVCYkFTNEx2Z2V3c0U4SElOOXYyamp2WXhoVjNnRkhXK1lWaDk3VmVMM010TTRPOE5WZDZ2a0ZVV2NNOFNKV1VNT3E3ZXUrbHU2YmMxakxGY3VOWldTU1VXdmovZjNzZm5CWUZEcjlkbGEzT0w3WjFkdHJlUHNiT3p5K2JtSnF1cnEzUzczZXRVdjY3cnpoWENOZXF2YXhJWG1GdEczNWo3VzZ1VGE2dnAydVo1TWVzM3k3TDU5L004cHl4THROYkVjY3hnTU9ERkYxL2s0T0NBMTE1N2pmRjQvTmJuQ2REYXFxRzFObVJaeVdTU001bm01Sm11ZDd4U0FDdTcxVmJ2YjNYdjNrZ0EzM0czdHpsU1BDc1hwTHR3ekV2Y2ROUjUwMlZoTTM5bkI3WnYwOFhSZGJrYlVOODd3cW5HeHFqSzE2NHFXTzY0KzJhSjk0VEZnYWpNSUIzQWRNKzJjUXFROG5zdVVQb2VVZitWMHU3QUVoOEVTd0o0aVRzV1VqcU83MjgrMGwxOTVvZWIzY2QvSlloTzRIb3JsYjFoRzZVaWhIUXFlMmVCTUxwNkRxejZFR05BMkFYTXNveUpaK2NaRDc3QmJQd0NXWHlaTE4yanpBZVlZblpkdHUraXhYT0V0WGl1bFUzYjRRNm51MmM1RWF5enJuWm9tWFdhcFU5TE5XZ2NOdkZ5aGN3MEtqWFc1cmtFVVpPK2M3WFFMZWhKQldoSGtQbVFOelVqY2NDclYxN2dmSHlGRWRaS3VlQjZvZE1La3Z0YlczejIrTk4wUEo5dkRTNFNqL1lZRFY4aTlUNU80U295MXdxQVJRa0lRYW1zZ3F0d0lITTBtUVR0bDVobVRPWWJEa2I3WE5oN2xuNTZpYUdaY00wYzBKY3hFNU16eUdaa2FGeFN3bW8vR2dpT3QrNW5aK1U0Z2QraXpKc0laNVBjVTd3UlA4ODM5LzRFUGI1WUNhWWxHazJHWmp6OEZrSzZPRjZIZHVkSjZ1cFFJWnpLd2FWV05sV25SMGhyTjVUMUdSeCtoZjcrN3hOUFg2ZkloL01NVGlFY2xBcnh3MjNhdlkvVFhYMkdxSEZmUlZ6bDh3S0RzSEdTdGMwLzl6ZDFPUjA1VHVOWGltS1pDZnhob0N4bkIzbmUvMm1qOHkrSk4wMTRhZ1BhZDBhdEZEYzZaenArZ1N5NVRCeWZvOXo2QzdSWG5rSTVyY3FjdDJwUjBpTnEzSS9qZG44eWFwMzl5Y0hCbC8vTHFIbjZIODBtci8zeGgzNkFkd2tjcjdYV1hmMitmMjlsN2JOZmpCcjM0M2hOakNrcGk1aXlqQkZvaFBDUXlrTUtGNmxDMjNjTHhZY3pzM2kvazdDMysvbDN5MVE2V2toTWs4c2M3djBlaDFmL0pjbjBGVXlaNENLSjhJa0lhZUt6UXBPVDBSWm4xNDl4YkhXVlNMUW9EWXpFSWQrNS9BclBYbnlOZlVhTTBjeVNxNHl1L0V2aXlldDAxajlMYi9PSDhJS3R5blpuM29ybjJmVmVzRTUzN1hNMFdnLyt3bXp5Q3FQK1YzOGhqSGIvU2Z3MkxnU3UyOW5zcm43MlAraXRmZTZMemM3aitNRTZvQmNXZHd4WnVrZi80SThZSG42RjJmaEYwdmp5WEFWNkkvSHJZOGZFQnJZb3lxcCtKUSsxSCtTUjFVK3lvMDdTMFYyYVpZTW85ZkVUZ1pPVU9KbEd6clB0N2JsV1d1QXBRejR0NlRSN1BMTHpLZmIyRXk1ZWV4N0owVXhnQnZTVEF3NW5GMWxYWFpwT0E2MDBjbjdaM2tkYlVyeFp3dXh3cE9sNksvWEFqU3JmdDhMOCt3S2JPVkhaMU0yL3JuNUlneU1NampENFFtT0VBUWtGRW4wZ2FNZ0d6ZVl1cDZOTnhtckdBVU1PeXlrWFJnZThkT1VjVjdNK016SW14SlZOZEU1Q1JsWmxCdWR6WGJDZUN4Nk1Ma2xtYjVDbCswd0d6MWJFYjRjZzNLSFJlb1JtNTFHQzhEaktDYXc5OVB3NVpaRUJGN2EvRkJJcEhJSndGOWRwMDJvLytuTnBjb1haOUJVbXcyZi9reURZL09kSnNpeUdXbUtKSmU0cVdJTVBPMnJjMU5WZkpTMEJITGpnM052ODJRZEVMYmNzSzV2RG9WVzVPTDRkbXh2clZ1MDBmOXBZNG4zRFdKY1RuQUNDSGdSOW1PMkRxZXZBN3UwR1hEc1dTL2xtemtoV3pmTzlkaWFCTDFoZmJYSGZtZE04OE1ERG5EeDlQN3M3eDluZDNXVjdlNXUxdFRYYTdUWkJFTHdwRy9oV3dSSzRWdjA3bTgyNGZQa3lrOG1FVHFkREVBVFhrY3B2OWJ0MTVHaGVhS2F6bk9rc0p5OFd3cE9wRk9mU3JXeWdxMSt1Vjd5MWRYYlBFc2dMcU1YRGpySjlxbGRINk1LZFFXNEpaUWxndFpqOWU1ZVFqN2M3cElUQ1dPWHZiTjhTd2RUcTM3dnNHc3l6ZnlQYjFzemlQSENKdXc1QzJyV0pvbEszeDMzYnpzdk1Ea3dmVFNkWkFOVk50c1FId1pJQVh1S09ncFNPNDdyZGszNjArL2pHN2wvNnZxaHgrbWVENkFSQjR3U3UxME5LZjI3WmE4eWl4VFB6UlVrcEZWb1hhSjJRcFFmTUpxOHhtN3hNUEgyVmVQb2FlWHdaWGRpSlNiMys2eTY4MXJON20ra0xxN1RZYkd4d3Fydkx0bjhmNi9JNGEwNkh0bWdUbEEwOEkxRkpnWXhMbkR4SGxwYjRsZHFBRmtmMnpyY01BcU9nOEFXWmI1aTZNZGV5YTV6TEwzTkY1MHl4aWlxcTQ0Mnc2OS9ic3NXVGE1L2c0WlduU1pNOUFpUlRVeENYaDJTaUlIY1V4aE1VQWlRUzRTcTBMMGlrSVpVcGlSd3lpQS9ZSDE1aEVsOGhkbk5HMHhIWHh1Y1psNGRNU0RqRTl1ekZ3dDl2RVhHaXRjdUo5Z1piYm84MTV6UXIvaHFoRjZETEFGU0xJaENzTlNQU2FaL0IrSkNjREkya1JLRFJwR1hNZFBnc2c0T1R1RzZQcUhFYWhNVG8vRTFuQndSUyttVFpJWVBETDdOLytaOHpIajE3ZlZ1cVVPUUQwdlJLcFJvL1pHM3JSMmkwSGtSSUYyRU1XcWNJNFJLMTdxZTM4VU0vWCtUamZlVkUvOSt5bUEwKzdLdDZyMEhyb21oMUgzK2oxTW44SWZUNngrMjNmdmkyRklXZElNbUZCeGh0U3JLc3orandLMmlkazJjSHRGYWVzcVNIOHExbHZDNlEwaUVJZG5EZExwNi8vak5oZE94TWIvMXovMnc2ZXVGZnBPbmVLemZ4a0c5clNPVUZVbmhOcWNLTzQ3YTJYYSs3Ni9tYjkyMGYvNG1IV3QwbmZpcHEzby9ycmlDa3Fod1phbVVBMW41ZldHbWxNYVV0c2pEdmQ3R3RzbDZ1RnZSRTliMmpmOWVySzNYVnFzR2dLMXRibTVVa1pGVVVVcW4vNThVZVV0bmZuNnR0anpwc0lXU1ZteW9vaXhtenlVc2M3djBlZy8wL0lwbThqTURnb1FnSmFPTFRKbVNOTnFlRFRaN2NQTXZEVy9leDdyWndTZzhqQkJObml6RDEwV1BOODZNM3FsWTZaWnp2TXhzTUtZb0JlYlpQdS9jcHd0Yjl1RjRQQUYybWRwOU5oaEFLMTF2QjgxYndnMDM4Y09zWC9IRDMvazd2NC8vN2JQelM3eXphUWdmaDlpTXJHei93aGRYTkgvNzVWdnN4bE5PeTE4Y1loSFRSeFpUWjVFVUdCMStoZi9DSHpDWXZvNHVadmVaY0h4RlF4eCtFV09KM0hjR3V1OHFwMWk2bnd5MU9oUSt5N1QxQXg2emc1UUluTG5EaUVqY3pxQks3dm5yalpTL0F5Y0JKTkkxbWcyT2RrMnpFUFh5NGpnQzJOdEFUWWdia3NxQ1UwdktxN3hXMXFyZTIrWEFYdmw1Y0VGckV1NDdiZFhYMGd1ZnovS3pWOWhqMTErSm8zVWJYVVFvR0lVcmJYMG1OV3hyS3VLUWhJZkk5MXR5QTFHa3drVzFHcHVCMHVNbjl2VFV1VHZ0Y1BoaHdlYnpIdFh4QW55bGpacFUxZEVsS1RrWkpVYW1CTFJsc0xDRmN4dWd5SnM4T0FKaTVMek1idjhKaytHMmkxdjFFalRPVzJQVjdTQlZXRGlzbFdoZFEzVStZc2lxU1VyaGVEOWZ2NFVlN2hJMlROSnBuZjNYYWZ2Ri9YTjM0b1QrY1RWNzU0elMrOUhWdGltVTE3eEpMTEhFbm8rN0k2eW5pVGJlQTlsMkI3OW9jWU9ET0lDdHVXOVJxcnNvS0dxcE1UUThpWlVtV3BlTHBlNFBSOXB5NVBvUmRtSFhzZVYyU0I4QU5CRERNbTVnVUFpVU5TZ3FFZVBkenBSUjBPeEgzbmQ3bHFhY2U1Mk1mZTRiN0gzaVlqZlZOT3AzMm5QajlxRkhiUlN1bDhEeVBKRW5tVnRTZTU3MGpBYXdYT0tkRkMraThxQmJTQlBZK2xtNUZpcXJxc2R2TXAzNTVsYmw4TUlLRGlXR1cyTTl0UjNCc1RiRFZFOVo1NkphdnpiMVAxRTVDc25JcVVMNXRSQVo0RCsxbGlRK0l1WHVFaG13Q1NkKysxdmJQZDVzQ1dDcExBSHVSdmI4VzMxdmk3a0tkL1dzS1d4UTN1V3pWdjBVTTh4RE10emMrdTRsSWdDc3NGY0FmR0VzQ2VJazdBcDYvZnNZTlZzOTBlcDg2RVlRN3Y5NW9QMEpyNVFsOGZ3dEJ0ZEJyVExWZ2YwVHExWmFjUWtpTUxpbUtDV1V4SWt1dHpYTThmWjN4NEJ0TVJ0K2x6QWNJcm5kN1hMUjVyaFcvS3doNmJzaXFFN0RCR3V0eWgrT2Qreml6L2dCZHM0WVlPWGdKZUtYQkxUS2NISndTVkdFc3MzcGR0L1VSREo0Q1NoZnlVSklFSlplU0M3dzBmcDVMNVhCdS8xeG4vOVlFOExicjhXam5BUjdxUGsyN1BNNlZZUituc09yWlJCcGlCeExQd1JFdURwcThTSW5MSWJtWk1pNWpwdVdFbWJqTTN1UThieHllNDhCY0lxblVSem4yT1ZzQUhiOUJUM1dKUzgwa084Q1REaWVqQjNsczdXa2VXcjJQTmJlREd6ZVFtY0RON2JuVFdsQklCeS9ZNFpIZXd3eW5leVN6aTZRNnA4QlVXcWVjc3Bnd1BQd3FRYkNMNzIvaXVHMUxBbCtuL0swemJJYU1COTlnLzhwdk14NStzOG9HZmhzWVF6eDluVHdmSXBXSFVoRlI2d3pXQ3RaZWNDRmNXcDBuMFVYNnEzbld2d3o4by9yWEhiZTVKcVhYRUNqSFVCYTZUSWJGa2lCK1R5ank0WlVzMjZlc0NqYU9ySThxSmRvTkVBZ3NsU2NSMXhIQW9xWS9LSXVZOGNGWEtOSURtNzI2OGpSUjQweEZYcm9MSkp0ck00T0Q3Yi9rQjl0L2FSaDgrYjlvZGg3K0Y4bjAvRmZ1QlpXM1VsNmduT2FtNDNhUE8yNW5xN3Y2bVEybG1sOXkzRGF1dDRvZmJoSkdwL0RESFJ3bnFvcEZDMHg1dzNPYkFWT3hmdGRia05VVnREV0J1MUJ4S0ppL0o2cFp2YjB1UlhXdjZtb0JvU0o0ZFlreDJVS0dxY0dZRXExemRKbGhqTFVTcjNOUnBmSXB5NFN5bUdDTVJxb0ExMjNqdUYwY3AxbFZSdHBleTVpU0loK1RwWHNrMDNNTUQ3L0t3ZDYvSWs4UHF2SERKY0NqZ1UrWEJqdHlsYlBoTG8rdG51U3gxWlBzT090NFl3bVp3VGlDaHRORytLZGgweUJ3a0pQelNDMHhTR1ltSVJtL1FCcGZJcDZkcDd2Kythb05iaUpWV0MxdzFDU2NqVDFRVHBOVzUzSDhZUHNuZy9EWVQvYjMvdUR2aE5HeGYxWVVrMnV1dTNLOHQvR0RYMWpaK01HLzJXdzloRkpSZFg0VlpSR1RKNWVZVFY1amNQQkhEQTYrVEJwZkJNeGIyajNYdnBkTllGWEFqdHZpcER6R21lWjluRmw1Z0JQUlNacDVHeldSK0VtT2x4dWN6T0RrMkVIZ2JWVzZCbEVJbk5MZ2xoSS85d25LZ0JDQlc0MzJkUTV3SWdwU2xaTkxRNkdzQThYYmFrdHU1R0xyd2I2MmRsNVUvTDRmZStmcnF1L2x3dXVOWjIyQitGM3Nxd3oyL1ZybVVDdmhqU1dESFZHcGFSS0RrMm9jYVhDbFMwTTZiTFlDem16MDJJOWp6anVIWFBDdmNpbmU1Mm94NUVDUDJFOUdEUFNZS2VrQ0dWeFF6TW5nRWx1YW9lZHJYMFUrWkpJUG1ZeWV4Kzl2MEdnL1RMUDlNRUhqQko2M2h1dDJjYndPeW1sWHoxazFFYXdYN2pkYmJ1TUZXL2poRG8zMncxOW90Qjc2d21qd2RhYkQ1LzVhMkRqK2pUenJ2MUhrazNlMEtWOWlpU1dXdUUxUmQraDF2ZkJTQVh3blFWU1pvYWFFZkFyVHE1WlVxYk1PL2E1ZEFEZDNiRWpvUjRpYVFQREFhOXJOQ2V6NTFNdHpLU1M0eXQ3SDgyUVE3TmRLZ2lNcndkVzd3SEVVR3h1clBQamdXVDcyMU5NODlkUW5PSG5xRE8xVzY3Ym1vaHpId2ZNOFBNL0RkVjJrbE9oM2JSZUNzdFRNNG9Ja3NYbkNLR2szVjRIbmd1ZUJWUGFXVGlIWE1Nc01nd2xjR3hpdURXQi9iQmpQckJLNDE3S2Z2TklTT0Q1M2pvQlRPbFV1cTNjMFg3aGpkdjRPaDlGV0VablBMUGxiSnN4ZEplNmFhMUMxSjZtcyt0ZHQyT0tLK1h0TDNIMm8ybStaVzJ2ejBVV1lIVnJyQkhrMFVKV2xqUWUraGFONEJoemN1ajkzOTJKSkFDOXhXME5LMTRtYTkvL3crczZmLzR1TjlpTS83WGxyS0xlTjYzWngzYlpWWGhsZEtVN2VQQkRaUWppRE1SbDVlc2hrL0FLVDRiZEpwcStUSlZjcHNnUEtmSVRSNlh6ZGQ1SHdyZk1MRzlWckQ0ZFQ0VEZPZFkrekZlM1M1UmpOWW8yT2JORVpSd1NGZzRvTktqZW93cjZTMTJLZTI2QnlXSUR4clBvM0RRUmpOK0hWMFhNOGUrMVB1RkxNbUdGN1Y4UFJlbmdiZUt4M2hrOXVmNHBOdFlXY0ttVG00K29XSlRDUmhxbWZNL0lLcEpQaitoTUcweXRjdXZvYXc5azVobnJBbUJrVGhzenlLVE9UWFBjM2FyRlYxOTltWitkUk9xMEh1VGE4eHN0WGZnZlg4YmgvN1hGT054OWoxYXpSU0ExQklYQ053U2tNQWtPSklUTWExN2c4dkhrL1JXUE00UXVHOGZpcWZZK01Fa05wQ3RMSk9jYURyeE5HSjJtMkgwVTVvU1YvcXBNamhFTHJoTkhnRzF5Ny9FK1pETC8xenVUdkFvcXNUMy8vai9DREhmeHdFK1Ywc0FTUnJRWjBuRGJOem1Pc0pEL3c3MGF0czN2cDdQeVgvV2ozRXl0cm4vdCtQOWo4SlNsRGREa2pqaS8rcDQzVzJhK244YVZ2M2d0RTRnZEJXYzRPNCtrNUdzMzdjZjJOZVlXK0ZBcmxoTmY5ckt4b1h4ZUppNnIrazNNU3VGYkM1ZVFVSmllZHZNSmhkc2hzOUFLZHRXZm85RDVORU80aWhIM3d0YlpjQnNkdFc2VndkUHhubStOSGYvYncyaC84TGM5Zi9VZFplbkR1VnArUFd3VXZXRHZUNmo3NTZVYnJ3WDhRTms3aittczRUdE9TcDlKSENCZXBmSlFLcTl4UWdISnVKMnp4NXNuUmRWWGY4N2NONHNhdWM4RksxMURiK0NjVStZZzhIMkRLRkYwNVFPZ3lvU2pHNU5rQlJURUdYYUFyMWE4cGMwcGRFY0FZcFBCdy9CV2tDaWlMYVdYNVhxQlVSQkFkbzkxOWdsYm5TUnkzVXhGYm1pdzdaREw4RHNPRHJ6SWRQMCtXWEtMSStwVjQxQ1hFbzBuSUNoRTc5SGkwZXg4ZjMzcVFoeHJiYklvRzBVamhwZ1pSMlpLbGhTRHd1M2pkc3pqS3g3bnFJUHV2QWJZTnc1UzBHREUrL0NwcGZKbW8vVENkMVdkb3JUeU80M1FXaUhKemRMS0V4UFBYNmF4K0JqL2MvYVhSNE93dlpjazF3c1pKbXAzSENhTGpTQlhhWEZjRVJtZk1KaS9SMy84RFJ2MnZWL2IzZzJvZmppak0yaEVqeEJLL2JXQU5PTlBZNHBHVkp6bmxQYzZtM0dhRkJ1MVJoSjhLVkZ6aXBBYVoyV04rVCtPaXNZNFpNbGVZYVlNZzdkQW1JbUJLZ3AxOFpNQzR5Qm5rTVlsWFVycVdBRFlTKzNjV3Nianp0VmFyUHJDMzRHVGZtdWg5dSsvVnY3ejRnZlhYaSsrOXd3TEJvbXJZU0k1dUFHVVBSaGpRMXVQQ2t4cFhHaUtwTVdOQlhpZ0NYRHBoeEtuR0duMG1ISlJUcm1WalhycjZCcS90bjZmUGxCa3BVekttWkNSa0ZTRmN6UHRCbXhwc3F2OEFOR2x5aFR3Zk1oMTlGOGZyNG5scmhORUptdDNIYVhXZndQVldzY1VWaXd0UVIvZTdxTXB1SExkRHEvTVlRYlJMMXZ2VWI4VHhlY2I5ci8vZElOajZuNVBreW5OdmZWS1dXR0tKSlc1YkxDcUFGOVBoYndxVXRPUnY0Rm1DNkNoQzZHYisxWHNCMVdVckVwaGNzVXBWeDdmWmg2ckpVZ0g4UGFCK0hoRFNuaysvQ1g3YkVnbjViRUd4ZUxjUUp1OFJOUzllRlhQNGpyMnZhMmZWbWdCVzcxRk02TG9lR3hzNzNILzJFUjUrNkRIdU8zMkdacXQxYzQvaFE0RG5lVVJSUkJpR2I4b2lmaXZVM0ZwUmF0SzBJRWtMVzBkUSsyVXJVYkhta3FJUURFYUdnejdzanpWN0l6Z1l3K0VZNGhTSzBwQ1ZNRXRnTklPMU5wemVna1owU3c3OUEyQ2hrY2dxbTFVRkN3V2pIL1grM2NVUTJIbVpNWmJ3emNaMksrSWpndXptR29EY1dsUk9iVWdIdkFiNExhczJueGM4THh2YjNZV3EveTBMVzlRdzI3ZXVLTm5JRnNncDZ6SmdTb2d6UTVxWlcxbkhaVmlxZno4VUxBbmdKVzVMS09rNmZuVDhNNnViZitiNzI3MlAvMUtyOHhoZXNHVVZTcUt5T0xuUjRobXI0S3p0T0kzSktmSWhhWHlaZVBvYXMvSEx6S2F2a3MzT1U2VDdhSjNORmI4QjE2OEgrOWdGN1M2d1RzaFd1TTV1WjR0TmY1MzE4aGhyM2pvclhvK283T0pySHpjek9IR0J5bk5VZ2MzMnJRdUZiNXNDVndIQ1VIcUN6RmRNWk1aZStRYm5aeTl6SVI4eHhLcW82dXhmQmJTazRuaTR4cG4yNDJ6NUQrRm1FUWFOMUE0bEhsTmdyRW9tMFNGWDVLc2M5TStSRHM4eGpLOXhPTDdLSk4xanhveWsrbXl3NTdhRndDZWc2Nnl4dFg2U3B0dkQxNnVzTkU4Uk5VN1NLSjVuSlA4SVUyWjBNNGMySVVIcDRtWXhZV2x3akVGcVlkZkZoY0hSbGlSUzBTcjNCWS95VUNkaG1FdnlwTThNVFk2bVFGUG9sUEhnV3lnVm9ad0dqZFlEVlhzeUNLRXdwaVJOcmpIcWY0MVIvK3VVWmJ4NDlvQjNmdFJKWm04d1BQeUtKWXRXbmtiSkVLM1RTbzJuY2R3T25kNG5mbHdJK2VONXVrOFFIU09NVHVDNEhZVHdNRG9seXc1L0pVdXZrV2VILzhQT3FiKzZuNmVIbDdOMC8xeWVIYnlhWjRldmxlWHNRSmY1WFQwQVN1a0ZRa2pIa3ZMU1FZQXh1a0NYUmFteitVMWY1S09MeWV3Q2VkYkg4emVzVFM4R0lSMGN0NHRVQWJwTTVwU0xpOFRIeFVVUjRCRVJvQkFVOC84ME9aNGxSRXhDbnU0eHpVZmsyU0ZwZkludTZtZG90Qi9CY1MyNWIrMkFCWTdUd25VN2VONHFqdHY5WmRmcnJJWFI4ZjhwbnIzeDlZL29GSDVvY056bW11djFUbnYreGxuUDM3alA5WHRidXlmLy9XMC8zUDYzL1dBYno5OUFPUTJFZEpGVjMydFZxSHF1c24zelhXUHRtb1ZRbFVPRHFMS2RjbXUxYlFwTDFKYXBKV0tMRVVVeFJaY1ptQUtqYzdUSktNc0VYYzRvZFl3dVVzcHlSbGxNTVRyREdJM1dHVnJuMWZmSDZESzJ4RytsR0VaWEtrWEtpbzZUU0NleTFzYzZ0ZU9MMFFqaDR2bzk0c2tyekNhdjBtZzloSElpc25TUDZlUkZKb1B2TUp1OFRKNGQybk1HdUhpRXVEUUo2QkN5d3hxUGRjL3c4YzBIZUt5N3kxYlpJSm9aVkZLaXRFQUtnUzROYm1ud2tLaXdBNTNUbUtMRVpBVjZhaGZJRk5KbXV4WVQ0dkh6Wk1sVnU2Vlg2ZlErU1JnZFIwcDNibTFkVy9JS29YRGREcXJkd1BVNkZQa1kxMS9GZFZlUXlncVdkSm1TSnBjWkQ3N0Y4UENydGxncXZqQy9hclZRdGk0T3FndWtta0FQT0swNlBMTHhNR2RiRDdJdDcyT2RZN1NLRUQ4dWNLY2FKOU9vQWtScG9Id2ZpMzAxQVZ5QXpEM2F6aXJyMFJvWGtvU2h0bmJET1hDUVRiZzJ1MFRTbUdGYzBQV2dQbS9NQzF0ZDdmVTkyenR6dExBSnZGbFNmS1BLVjk3d3MrOFZnaU12NjJyUlFaanFBY01xa29RcEVicTBXVlN4UmpvUStTNnJnY2VtMDJEaUZQVGRqT01uZWx4WTJlVGM0U0ZYQmdmc2xRZnNNMkpFWE9VRVd4STRweVNyK3NPai83RGE0REltTFdQUzVBb3o0VENidk1SMDhoTGo0YmRvdGg0aGF0NlBGMjVhcFh5dCtqZWwvVzFUVkxuUkV1bUVCRzREUDlnaWJKd2lqRTc4WXRnNDg5anE1Zy85NFd6eTZoK255YVd2MyszajNCSkxMSEZYNFpaWlFDdHB5ZC9RV3lxQVAxUUllWlJ2bUUxZ2Nza3VlcnZONjNORnplM3VEM3ViUWtockl4cXMyQ3hnWFZpVlVVMW0zWU1RMHViT3VzNVJ0S0pnSWYvM1BaNFd4M0hwcm15d3RYMktqYzFkbXEzbXpkenREdzJ1NnhLR0lVRVFvTlI3Nzh5VWt2aWV3bk9WZlJUUGJaRnhNYzNKUmlueFhzcmdjc0dWODRaemwrSDFQY09GUStoUExQbnJLT2hFRVBpUVdoTW9EaWN3bUJoV21nSnYwY2ZodHJ6VjZ3cUNXZ0hzTDdpZ0xYSHpVTjJVcG9Sc2VtVDlyTy9XNlVwRjhrcm55TUZCZVF2dkxYSDNvRko2NjlvSlpROW1lemJidXN5T2d1cU41WWZqRkpMOGxocDUxTFRORWg4UXk1TzR4RzBGNVFSTnoxODcyMW45MU1lYm5TZCt2ZDE3bXFoNUZxVWlhKzljRDdDaTBwTlV1Wkdpc20vU09pVlA5eW55RVdVK0lJMHZNQjE5bC9IZ1daTHBheGlkemZNS0YrUCthc1Z2cldUcU9SRWJUc0NXNkxDamR0aHBudVRVMm4ycytsczRreVppQm41aThBcU9iSjV6WTluVGo5cmkrZTBnd0RpQzNBWGRjcGs1ZmM2TnY4UDU1RElqWUlvbGFlc2xiUU0wcE9MK3RVZlppUjVINWowY3h3RmxTTk9jRVFrRFFKcVlsMmJmd1MxZjVlSzFseG1OWDZVMDlpVFVSeDhnV2ZFaWZPa1RtWkFWMGFOQml6WC9PS2ZXSHFmcGI1RE9KRVhoUUJMUjFnNXRESEV5d1BRdm9KcVBFa1lkUW0zd3RiR2VuNVZ5VEFod3E0VjQwM2ZvdWhzODBudVlnelRsTU1tWlVNd0pZRU5PbWx5bHYvOEh1TUUyeW0wVGhEdlZKTXNoU3c4WjliL09aUGdzWlQ2NjhmUmQ5MXJqdXZvM1V6SVpmUmQzNy9mdy9BMGFyYk1Wc2F3eHhscVRCK0VPbnRmREVvZE5oS3pEWnV5bmg5eFhmOXBQRk9XRWRIYVJaSGFCSkw1SW1sd2t6L3AvbzkxNzZxRE14M3RGTWI1YzVwTnJOMHNwTEpYckNGdFdPajk0Z1hBUXlxbVBYZ2pIRjhJSmhKQjI1bWJ6VmgwYkRpa1FTQVhTRVZMNVVqcStFSTZQVU1yK3ZIUVFRczN0bW9WUVFpalZXZjEwSklUemExS29paVFVVmFaMzl0T2Qzc2NQaW1KMHBjd25lMzZ3M1JDSTYxVGF4aGhMMkhsZEhOVWtxd2hnQjRtSEpNU2w1elhaOXRkWlUrczRXcENVRTZibGpFRTZZV2htVEZHa09KWVEwVG5wK0VYeStBcEZzaytXSGRKc1A0SWY3aUJsUUowM2JqUW9wMldKZjZmMXR4Mm5zOTdxUFBvL3p5YXYvRjVaSnBPYmNYMXVGcFR5QTlkZmZjRHoxdTdycm4zMmdTQTgvc1dvY1lvZ09vbGZrenVWRGJJdEFqVVlYVkRlMEQvWHF2cTZmNjYvVjFzMWwyV01MbE8wanEzbGNqbEZGekdGampHVkJYT2VEY2pTZmZKOGdDNFNqTW1xMzBrbzh6RkZNYWJVOFFmdWF1MTlYS0x6NFp2Zk15VnBmSWswdnNSMC9DTE45a000Ym84a2ZvUFo5RldLYkZBZk5ncUJoNE9QTzdkOTNsVTlIbTJjNWhOYkQvTkllNXVOM0NlYWFkd1VsRmFnTFZrbzBVaFpJcXJ6dWhORTZOWkpoTmFvUThtTDB6ZTRVdlZMQWtsQ1NwYjNHUjk4bVN5OVJwRU5hYTg4UlJBZHcvUFhrVEtvcksrdnQrUDFnaTI4WU10ZURlR0EwZVQ1a0hoMm50SEJWemk4OXJ2TXBxL01jNWp0Y1IzWlBkZHhDTllWQTA3NERYWlZsd2Y4aC9qWSt2ZXo2WnpBR1FyQ0dQd3N4YzhNVHNxUjMvLzhqTDlIYUJDbGpWTHdqYVRqTjFrTjI0U3BSRktpc2NQdXNKelJMeTVSK21Pa282bmp3WVZiL2QxYW03V285SDI3WFhsWGUyZTRudHg5RC9iT0gxamhVbjNlbkhpdTVTSUtlNUkwU2hhb1VrTnNMYUtsQkU4NE5CekZ6c294em5ZM2VNMGQ4SWE0eHRYc0twZjBQbnQ2UkQrYnNsZU1tQkNUVXBDUVZ5VHdZbGF3V2ZqUGtydHBjcFUwdWNxby82YzBXZy9SV2YwMGpmYUQrT0d1dFlqMlZteEJnajRpZ2tGanRLN014RUc1TFZxZEp3a2JaNzdRYkQvOGhkSGdHMHhHMy9uclliVDdsU3c5ZVBWTzZ6K1hXR0tKZXc1MWZWUURPNVc4cWJTc1VrY0VzRnl1NUh6SWtFQnR5VEsyOW9jcXNJdWZqVTFMdEJqcyswdThSMVNLUmJCcXhhZ0g2YUN5VFUyckI3VjdqTHhhZUl4emxTV0ExZUpqbzNoL1Q0eFNPb1JSaTFhN1J4UzF1Rk1VMWJVQ3VDYUEzeTcvdDBadEpCVUdEdDF1UUtQaGtpWUYrM3RUU21NWTdJODV1TnpuNE1LSWd6ZFNybHpTdkg3SkVzQ1grekNjV2R0UzM0WE5EcXgySUhBRlN0cHM0S3NEUTY4SnZZNUFPZHkrSXNkNU5xdGpGWm5LVzJZQTN4SlViZ1k2cy8xWGZHakhDVjJIMmQwWjk5MTd4dHpFeWFreWdCdld6bC9uUjIxd2lic0RWV3dtSnJQdGVuUUJKdGZzR0gzRG9GU1drT2FRM1ZvQ2VJa1BDY3Rwd3hLM0RSeW4wZTJzZlB6ZjZhNCs4K3RSNndHOFlBdlg3ZHBzUS9SY0pRWlVEaWQxeGFqMUlqQTZKWWt2TXU1L2crbjRSWXJrTW5teVI1RWRZSW9SanRGend2ZEcwamZFTG1hM2dTMS9pMVB0czV4dTdMTGxidEUxNnpSMWkxWWNFVXg5bkV3Z0U0T2JhMlN1RWFWQmxJQytuVzFYQkNnb1BVSHFROTdNR1hHVmw2Kzh3T3ZKUGlOc3NucCs5Tk5Jb0JsMDJGMTlrSGF3UzVHVzVQNkVST1JjMVplNVpnYU1nVFNaTUg3OXEzZ0dkRHBER0kzSGtVSXNKR0RMUDhiSmpmdHBPeHQ0ZVlldTJ5UFVJWUVPYWNadHZNd2oxNFpVR0VvTkRTVFdiQ3RENlFHT0tYQzF3TlBDbnVlNitIcmhmTHNZQWpSZHorTlVhNHVMbzJPYzM5dG5VcGxBV3pXVE5iYk0wd01HKzcrUEg2emplU3NvMWNDZ1NlTHo5UGQvbitub2hjVXpkNTJCNTQwd1ZIeDB0ZVhwQWFQKzEyZzA3c2R4TzdoZXJ5S0JDNFFRQ0JITWxleTFZdFVzZkxLWUZ6UUlYT21nbWdGK3VFdXJUQ2pMbUxLWS9GcFJqQ215QVdseW1kbjQ1YjhWTms3K1hwcGNlVmFYYWZJV3UvaStJYVhqK01IVzQ4M09ZMmVrRFAraEVLb2lpd1FJRjZtQzZuN1VLS2RoMWJiU1JhQVEwcXJ3aFhBczRTZnNHUlJDb2FSN3BQcXNTUkloRml5ZmhQMTk0ZG5mZnhNQm5IK3BMQ3RGYUQ1Q2x6SEtpU3FpeXhJTFZySHA0RGh0bEJNaHNwcU9rVGdvR3ZnODBOdmw0MXVQc1NOTzRSdEJhZ1ljeG4xZXVYYUpjNFBMSERKaFFzcUVsQmt4Q1pxc0dERSsrQXBKZklGNDVTbDY2ejlJMUhvUW9lb3lZU3YzbDlLbjJYb1ExKzMrUjBHMCt4OGRYUDIvL3JwUy9uOVhma2pYNW1aREtTOW9kcDc0dDd1cm4vNEhVZk0rWEg4ZHgrbWduQVpLQlpYRnM4M090dXNYK3MzZDNyeC9yditoN1V2Vmg1ZkZtQ3paSjB1dWtDUVhTZUlyNUZuZlp1NldzVlgwVnZiTnBzelJKclhGUDhibWt4N1ovdXY1R2txTnQ3dEgzMjFLWnQ3bTZ4dVJwWHNNRHNjSTRhSjFVdVY4MTJXSkFnZW55dndOS3R2bkZSN3JuT1lUV3cvd2FIT2JyU0lpaWpWZUpwQ2xBdVBNQ1dEYmhrb2NjcUswUkJvUVhnZC8vWDZhcXo2Tml5N2Z2UFE2Q29HRFJDRVFKR1FVcEpOWDJjL0hUSWJQMGxuN05MMzFIOFFQZDZ2NVdmM1o5a3lJZWdKYnZaZG5Cd3dPdjB4Ly8xOHpHVDVMR2wrZW40V2EwcXhWdjNXUlZCYzdYcDcyRzN4cTZ6UGNGejdDU3JIRGVySkpNL2Z4WmdWK3JGR3BRUlI4c1BHeEVyektFaHdOdmhFRVJ1SlYrMWJYWGNWQW9uSjBjNFpSR2VVVWpGd1lNeFpkbUJjdjlyc1J3UE92RjFibTNxVDJyV255ZDdGMy9rQlkyQ216WVBWdEtnOVFVWkhCMnJZakpRMkIwQVJDRTVXZ0I1S0dHeEo0THNlMnU0elVMdnVpejdWc3dMbkRmVjdhdThDMW9zK1VsREVKTTFJU0N0STVHYXpuRnRHbXV2dnFQVEpHV3d2MDlCckR3NjhTUkNkb3J6eEZkL1hUZVA3R3drL2VZRTlldFVjaEpJN2JwdGw1RkQvY3BiUHk5SzlQSnM4ejNQL3lYM09jNXYrdktKYjV3RXNzc2NSdGkzb3dxS2VVTjVYTmNoUkVBVFRDaWdDdUp5RkxmRGdRb2lKVFNwdUJKMVJsQngyQ3NnVzhWZ216UE9udkdiVnEydkVoWElHNEM1T3JWUkhiUGJ5Q0xNR3BGTUJPcFFLdVN3dUVzUDkrTHhuQVFnZ2N4OE4xZmFTOGMyd0JsRktFWVlqdisrK3FBSllDcEJSelZYU2VhL2IycHp6NzNEVmVmMk9JTVliaE1PYmFsVDdYTGc2NWVqRmw3NnJoOGdGY0hSbjZZNWhWOWVKS3dpU0dTU0pZNzFnVjl0NFF6bDAxckRTaDNSQW9uNk9MY2J0Q1Z0YnF5cnYzaWlnK0V0UUVzTGJXei9HaFZRSlhjVzkzSFFFTWdMVHVGOHEzbTFTV0FGNCtkTng5TU1aR1lFejNZWHdKa29GdDIzWDJiNFhTUUY1Q1VkN1N4NkJsZy91UXNDU0FsL2pJNGJpdHRTRGNmWHB0K3kvODJlN3FwMzYyMlg0VTExOUY0RmpWa3M2d0JMQmpMVWFGdFY0MU9rT1hHWGsySkkzZklKbWRJNTY4U2p4NWhTSytqQ21HbHFEaVNQampjNzE5WlJ0WVFkTEdZOFBwY1hyOU5OdkJXVmJGTVRhY0hoM1ZKaXhEdkJSa1hDRFRBcWN3eUdveCtvNlpkQXZMTTVTaElnODBWMlp2OFB6a0c3dzJ2Y0MrTHBsZ014VHJ3L0dCWTcxVFBMcnpKTjNPSnVQc2tJUFpSU2FEMXhpV0V5Nk85N2hhOU1tQXRDd1p4Uk1pWUJWWVFkQ21UUy9hWUh0bG00N1lvRk51c0JGczA1QWRYQkhTa0NHZVZNaThoS1JFaUF6SE1VaFhrRXROSUNFVWtneHdoRUJoY0FCWkw5WXZibFNMK3doY1VkSXNIVElkY1NMYTVuUjdqOFBKakxGT0toSzRvTVJRb0psTlhtYXcvMGNFNFM3TjlxTms2VDZEL1Q5a01ud09yZFA1RXY0aUFiS282NEthcnJIa1ErMzJYV0RJNGt2MDkvOEF4KzNTV2ZzMHJ0TUJxT3d2Sy8yVXRuc3lKemt4MWpJWGJVbGdMRUVqcFdkSk42K0hxZFNUUm1kVjV1bUFWdWV4WDA3aUM4eW01LzZyN3VxbnY1Yk0zdmhtbnU0OVYrcjNacDlwVmZlYkR3ZkJ6bU51c0hwQ09jM3V6c21mYXZuQituK2szSTdOY0JWMVVxNnd4S3gwcTdVUGcxUUJTald3VHMzeWVtdGZZQjdZTTFlRExwSW85ZmNYR3FvUTFmbVExYzlXRTVyS1J0dmUrK2xjQmFwMWh1TzBxdk4zUk1MNndTYXV0MEl5TzE5ZFI0bUhRNHVJWGJYREE4SDlIRmM3aEZxZ1dXTVN6TGl2dGNOci9ZczhmK0Yxem1WNzlKa3lRakhEWlVwQ1VrNUl4eTlRNW4yS2JFQjM3WE0wT28vamh4c1ZJWmlES1pIU0kyeWNzRmJqcXZIcmp0dnFlY0hhUDg2Uy9WZmV5elg1cU9BNGpXNm45NW0vMnR2NG9TKzFWejZHNTY4aFpXVXJaY3hjdVh0anAyZXZ1U1hzYTJXZ0xsTjBNU1BQaDJUSk5iS3NjbVlvSmhURnhINmQ5Y215QS9Kc1FGbE9NV1VPcHBnVHUzQTluWFprcEZ1M1JrV2RLL3BPTU5jUlRtQ3FuNjkwakVlS3hvWFh0NkMxNTdEUkEwZDh2c1JhTXp2SWl2ejFhUk95U1plSG1pZDRhdTBzajNSMjJjNURHckZWdzBydGdIYkF1QldCVnhGajJoNmJOQWJmbEhTTXhQWGF1TkVwV05XWW1lRzV3WVdxaDdEL1Y2U2twT1RwMVVvdGZVaWVIZEpkZllaRzYwRnJXVjVaWXRmM2lSUUtJeUJOcnpBNCtBb0hWMzZMeWVnNXltSThQKzgxdFZuSEpFUlllZE1LY0FLWCs5dG5lSGpsWVI1cWZJd05lUXkvOFBESEJpL084REtEeXJHZDQ0Y3dSZ29EeW9BMEFwRUk1RlRpYW9HTGRhNG9zUVZNbVlETUs4aWNFczlUUjhMZHhhS2hkNnJvZjF2aTk2M1V2amZhTzM4VTFkOEwzaFNtZmpWMndWcHJSQ1dmZG94R1R6UlNHanhmMGZOY0VpOWtXN1FZdUJ1Y0NyYTVmMk9iYzRkWE9YZDFqNnRabjMyR0RJbUp5VWpKNXpuQk9XVlZUZ1dhcWwvR2tzQlp1aytXN2hOUHo1SEVieEJQWDZIVmVaS28rUUIrc0lsVWZ0VVc2MUhUSEZtVkk1RXFJSWgyOGNNTnZIQUgzOS8rRGRkZit3VS9XUC92MG1UdnR1NC9sMWhpaVhzVzlhQVFZcWVZTjNVZ2NCMW9SNEptSk96azlrNlppOTR4RVBQblhvcllrc0RlcFNyLzBBR3ZaY2ZZdWlCeGlYZEhmWjZVRDM3SGJxcks2TGlYMjI3bE91NjdSM2J1UlduckZoRkhycHZ2K2pGUzRyb3VydXZkVVFRd2NKMEY5TnRsQUVzaGNCeUI1eW1FZ09FbzVic3Y3blB4OG9nb2RBa0RoOEJUS0VkUUZnWER3NHdMRnpRWEx4c0dFNWlsbHJDb1VaUTJEN2dvRGRvSXBMQmZTd0hySFRpOUNYNmRyMzY3a2NEemlRMlZBdGdENVI0UndNdkNsSnVIMnBkZGw1VUN1QS81NUlnQXZ0dXM3SVcwYmN2eHFnaUVaWkhCWFlmNXVtejF2Sk1NSU42SFpHai9MWjJxYlIvOVNxbHRIem9mcTI0KzZwV2NKVDRFTEFuZ0pUNFNLT1VIanRjNTRRWGJqNnlzZi85anpmWWp2OWhaZVpvZ09nYkNxZXdCMHlOaVFkcDgxanc3Sk0vNjVQbVFvaGhaSlZsOGhkbm91OHpHejVPbiszT1Y3MkxNWHgzS0ZBSWRvT2MzYUFtZnR2YllrdXQwYWJFVjd2TEEycE4wMVE1bUpBbW00SlVHdDhqd01sQzVRZFFMMm5QY0lROVpDZ3BYa1BtQ3FaUHlTdis3ZkdQdmExeGl3aFJMWmRUcjlQVVJyWVE5MnRFYWw4ZXZNeDBkY1BYd2RhNGN2c0JRWjNPMXNBWUNLVm56SW5wNDlFekFqbGhqUlc2eTBUN0p5Ylg3YWNzMUdDdWNWT0JxZzZmQk1UbEs1RGpDVUxsNFU4elgxUTJPa0ZXQ1pvZ2txb2dPTXhjVVhnOXAxVkFHcEFZdk00UkNjQ3hZNDZITjAxekxSd3pqR1JrbEtmbFJybUdaTWg0K2krdXRZclFtbnI1R2YrOFBLTEkrVUN2Nmpnb0c2cmpJbWhDdWJVZnJMZWRJUVYzcW5NbncyMGpWUUVoRnEvc0VycnR5dEtCZzlOeStYT3VFSWg5VzVGaU1RU09Vait1MGNMd3VqdE5DQ0xtUXBXcG5oY29KVVU1azg0Yk5VNlRwM3QrY2pGNWdPdncyeWZUMXY5RnFQL1JhbHU2L2t1ZURjMW9YYnlLRHJjM3Yrc09kM3FlZWFiUWYrbEtqY1phZ2NRekhYVUhLQUtYYzZvTGNlTUxmN3VIMlEzem9OWGJHOVZaekdDa1VxTWlxcU8wUFYrcmZJd1d3VkI1K3VJM3JyeUZRUUlsQzRPSVFFZEFzbWpTU2tJYUNaZ0dPQ1ZqekFrNnZySEtxc2NGYTNHSnplb0ZMNVNIbnB3ZnNNY1JGTWNVaElTVk45aGhlKzEzeTlJQThPNkM1OGlSQmRCeWxtaFc1a2R0cWJMZERkL1V6dUY3M2k5SnByb1NORS8relZXcG50NTBhV0ttZzJXdy8rcVByMi8vR2x6cTlUeUNkcHRVMTYveE5QenUzM3BkVytXaE1RVkZNTGJsYlRpbnpDVVUrSk0vNnBNbGw0dWs1MHZpQ3RTbk9SOWRaQ3k5b3Y2bE5vaVhPbk5hVjgrK0xPZVc1K0R2MTc5VlkxQm5XSnJNMXFWdi9SSzI0cjRsZVhkRllaYVZ0TEt0MzM4dVRacjEvZGI1MGJmdThKVHM4SEIzbjZZMEhlYVI5bk0weUlvcXB5Tjhxb05ZNFZyRnB4SFdmaUhaQUdHc25uWlV3Z2JVczRtSC9PR3BINEt1QWFQZ0dsNHA5RklZSkJnVWtGVGtYajE4aVQ2NlN4VmZwYmY0UWpkYkRlUDVxWlRkdlQ0Z3VFK0w0QXNQRHIzSzQ5M3RNaHM5aWRINmQ0OEdpNVhNOWRtNEl3U212dzBQT2ZUemUrelFuTzQvVG5EWUpab1lnTC9CU1MzQ0w3OVh1K1MxaDdIVTJCbVhBbzBrZ1YvQndjY2ptK3ZzU21CUTVWdzZ1c2RVWXNpNVhRUWs3UTNuZnUzRmoyY0ZpQ2RDTnBVRHdvZlovSHdTbVZpWlZZdzBHUkduN1JWRWlqWVpFby9NU0dZTWpIQ0tueFdhbnhmMmREZDZJdG5rcHY4TEY4UUZYeENGWHluMnV4b2NNbVRFakl5WW5JeWVqcktJVlNrb0VvcnFIb0Zvdks4Wk1Cczh5R3ozSFpQUTgzZFh2bzlsNkdEL2N3dlY2S0tlSlFOamM3L2tDZW0wTlhZQ1FlUDRhN3VvenVIN3ZGNVR5RzBHNC9mOUo0c3ZQZlZTbmRva2xsbGppSFZBUEZHOW5HUFNod1ZVUStSQUVISzNrM0NIVDBUc0hpNnVkaWMzQ0c0UjJFYnp0V0N0TUlaYm4vVDJqWmpRZGNLTXFUekt5SkxDNTdhWkV0dzdWWTFxYXd6akdxbFJUZ3pHV3RIeXZDaXNoQkVvcFhOZEJxVHVMcFBGOUg5LzNjUndIS2Q5NjM2MG9YK0lvUVZGYTVlLzVDeVB5aXRVTkFvZE95Mk8xRjlMdGVPUnB6dFcrNGVvQWt1d3RQNUtpaE9FVWxEUm9iZk9CUzIyNGIxc3dTdzFOYzVzODE3OFRoTElFM1p5Y1czWklOeGVteWk1UExRR2NUYUJJSzRYa25YWGZ2U05NNWVJbWxiVitka0w3ZGUyMnQ4UmRCR0g3a1RLem1kYmp5N2JvclV6ZjlqZTByaFRBK3BiMk9IWGwrQklmRUVzQ2VJbGJEdGRmMlcydFBQVWo3ZTZUdnhFMXorS0gyemh1RDlkdEk2VmpyVVdGdFl1MGVaNGFZd3hwY3BYaDRaOHdHVDVMbGx5bHpJZm9jb3JPcDFCTVFTY0VISkYxdGExenZUV3cxcFc3d1NZUGJUNUdWMjBRcEEzV3ZDMWFOSW1La002MGhhODlaR3p3VW0xSjM2SzJzT1FPcktvVGxrOXdJZmNsVXlkbjMxempmUEVhRjdqS0lkWTJzNllXQlVma2ViOS9rV2ZqS1NvZm9mTUpSUjRUNjRLTUl3NWNBbXQrazAvdVBNMEpkWkpHMG1UVFdhVnRXa1JsUkdzUzRSc1hsWVBLTkVwcmxEQUlZY0FCb2N4OEhkMFZVQ0lvakVhaVVIU0JDWVlJSSt3Q3M2aUhHVU5GK2xaVWhha2Z1Z3BrWGhJSTJHcTNlS0J6akt1alBvTmlUSkluSkNRVVNFb2tHazJXWEtPLy93Y1UrWkFzT3lDT3oySFE4MVdjV2luZVdOaHFGYm5HRXVjeE5qODVyclo2dUN5TE1jUERQNklzYkR2dHJId0t4MSt0N0hQTGFwRjh5bXp5Q3BQaE40bG41OGl6SWFDUktzSVB0bWwxSHFYVmZSTFg2ODIxaVFLdVU5RUtKRWdIMzkvRTZiVnBOczlTNUlOZlM1TXJUTWN2TXV6LzZWK1V5dnZ0UmRKUlNNZHB0Ui8rY3l0cm4vdmZtdDBuQ01KZGxOT29ySjNkaXVDcjhLNXR2dFpOTG43cnZjanIzdmt6M3g0TGlyZHE4VVdJY3NFZVhpT2tnK090NEhnOXBBeVFlanBYYWJvSUFrY1R1U1VOcldrV0N0K0EwZ0p6S1BGa20yRHpRYzZFTzV5YlhlWHJMNTNqNWRsRjlqaWsvLzluNzg5aUxjdnk5RDdzdDliYTQ1bnZIRGZteUl5Y3M3S3locTVtazAzUnRFbkNoZzFZZnBCaHc0QU12L2pGa0dCQU1DQ0FnS0VuQWdRSXlLQWdRdytHQU1xV1FFdVFEZE13VEptR1NaRnNkck83cTRmcXFzcXF6SXpNalBITzk4eG5qMnN0UDZ5OXp6bjNaa3laRlpFWkVYbSt3SWt6M2oyc3ZmYWF2di8zL1prd3htUEdqTVNrSk1PZlVXWkh6Q2Fmc0xiOTM2SFYreEJQTlhHa3FIVUJMQ3FtMVgwUDZiZi8vVGkrK08rZkh2M3ovNGxVd1Q5KzBVamd1SG50dDllM2Z2Y2Z0bnJ2NHdkcmxVS3ZEbnRlcGxYcmQ1V3RzeTNKc3hPU3lTMG00MStUSmcvUSthQUthaGlqeXpGR3p6QW13eXdwSlpZTmM5MjFVVWdrc25yMlVLaTVzbGJNUDFkejNTc1ZHU3pQcUlJWE5XZFJMeTFpcnVsZC90UlViZ0FGbW55dWJuUStBY1hTTmg1V0crdTdUMVhIR3VIUkpLSkhnMTI2dk51NXdtL3R2TVg3bld0Y29rMWphZ2t5RU1aekRiS3B5Tjg1UlYwZnRseVFlRlg0UXBocGhCRjRVWWV3YzROMjNHYjlmb3VmNzM5Q2lPRVl6UWlEaHlGRk8wVnNNV0o0L1B2azJSR2R0Ui9UMjNKcVlDRjh0SjR5SGYySzA2UC9INFBUUHlKTDlyQ21PS1A0OVZnUXYwMHE4aGQ0cTNXWjcvZCt4QnZSKyt5SXk3VEhUY0laQktuQnl5elNHWFk4Mjc2eWF1NGtCb21sM2RsaTNidE00L0JueUh5S1pDR0FHaVV6Ym4zK0VUdGJGOW5vYlNCay9TMWZZVW0rN2x2cUlKaGxtK2NsVjRJWEVzc0wwdFVKV3dIQ0xCUkx4aUNOSmhTYVFMaUZMek1VRkdtSUx6WlozMm5UMzdqR3dCOXpaM2FmbjkvNWpIdnBNV05TeGlSTXlVZ3FNamliM3pPbXNvaTIxZjhPeG1nbWc1K1RKUWNNRy8rYVp1dE5PdXMvb3QzOUFNL3ZWZFhrM0QxUUJmTUlKRUpGdERydm9sVHpmeWVFN3dmaCt2OGh6MDV2ZnlORnVjSUtLNnp3MVZCM0dNOFZRcmc4d09LNVU4M2ZkU3lwdmRLQlcrRDNJMGYrS245SmRXZGZ3dldCYndNMUNhd2NDUnoxSU94UWowdmNoTzVGSGw4OVF5eVdMZWhQNE40eGZQckE4dkY5UzE2NmVVZGVRbkpPdWZvNEtLVWVTNksrcUhES1pmOHBqdDFTbG9aU0cvSmNrMmFMZ2tuU2t2NGdaVERNNkxSZHNPdGdsRCtTL0sxUkdoZ25iczNSOXlFS0JFZER5M0JpMlZnVHFPVTI5a1c2eGVmVGNyY0doRnllVDY0NmhXY1BVUld2QVYxQU5xcHltT2N2VnIxNFZwam5tUGFyZ0oyRzYrOGVhNkcxd3N1Snl2SEVGSTc0SGQxeno2WjRwS3BkRzB0ZXVMN0pmRE5qSDRPaks1N0szWEtGeDJORkFLL3dqVUY1Y2F2UmZQMnZiMS82SC8rUDJ0MzMvOWR4NHhwQnVJM3ltZ0JZVTJKTWlSQVNLWHlzTU9oeVFwbzhjQ1RaNkJkTXh4K1RUZTlneWpIVzZ2bE11eWJxSWhhNWZkdkFKcEkxR215SG0xemR2RUpQOWVqcERTN0gxMm5SeFNlZ0pkdEV4a2RwZzV5V3lDTEhLMEdWbFIxbmJSMzVza0k0OVc4UkthWnF5a0Z4aHoyenh3bVdDUXY3ekhxSnU3YjZUR1lIN00wTzVnUm9ERVFFckVjOU1zOW5uQnhUNm93ZDFlS2QxbnZjOE44akVENWRHOU1vSlg1aFVKTVNhWE9VQUlWRnVCZGZkdEFVU3pvcllaM0tremFhRHFVSXNFb2c1RElKVmROSDNtSkQxbGJyeHBaQUc4Z2tPMEdMTjlhMzJjdnZjOVRmWjR3aVIxQldkSEtKSlV2dW84c3AxaFlZbmM4UExXQVJQTEFHWEE3V3VibDJsZDNXSm9GUVdBWDlJdUd6ay90OE1kbm5TRStCc3c2anVwd3k3djhaQ0ltVU1kMk4zOEh6bWtqcGt4ZDlSdjJmMGovNlBhYmpYNUJueDJpZEFCWWhmSHkveDJ6OENiUEpaN1M2N3hNMXJoQUVQWVJxSUVVVktERzM1SFdxVE05cjQva2RzSmVKbXRlSm16ZG90Ti80UjVQUkwvK2o3dnFQL3lDWmZQcmZhcDJjeEkwckgvWTIvL0kvV3QvNTYwVHhGYVFNNWphYzFoUXM1KzExK1lncnk5eHFuOVpxc0JYbFV1Vmx0ZGFwYjEyTzFuTTNUTTFEekdtenVxU1d2anp6Yy9lNzVieVJvcmFHRnNzYVVJbkFBK0VoME5YeFdZUlVTSytCNTdWUktrS1kyZG1hRTJpQ3FDU1lXU0lza2JESTBtSXlneWNGaldhYkxkVmtyZFdtZGEzTDFyREx4NmRmOEVWNmdNY1lINFVpWldhbTVMTXZLckp6U0o3MzZhNy9GbUY0d2ZFd3hobUVTeG5TYk4zRTk5c292L3QvbHpMNnR6Mi8vZjh1aS9FTGtkZFN5aURhMlBuclA2ckpYMWVPeThyZktrOXpsZnRYRjJQeTdKZ3N1VTh5dTB1V1BpQlA5MGhuRHlpS1BxWk1zVGFmWDczNk52Zm5sS21zN2xvNXQwNzJVSGdWRWJ3Z2ZoVStpZ0NQQUorUWtCQVBYMG84VWF1QmE4TjBSM3pOWFhDWGRML0x4SysxVHZHcnJhWEVVb2lTUkJRdTc2bEptTnFFR2RrOHYrbEMwM2dXQWxIbC9GVno1VytYaUcwNjNBeDMrWERqSnU5dlhPT1NidE9hQ3J6TUlzb3E1KzhaMitlSFFWVEtZT3ZJT21zSXJYWmxJbHNFUVVEclVrZzNWRFQyTWo3TlIvam9pcmlWS0F3WmtPc0owOEhQS1BKVHRCNmp5eGxCdU0xcytqbW5oLytVY2Y5UHlMT2orVFdxM1RNVytkdGQwTlE2Y0UwMWVYL3JmZDVwZjQrcjZpYmJYS0NSK1BpVEFqODFlUFd3L0huRVp0YlJPTW9pRlhRNkxUYWlkZUsrajVmWDYyZ0NneVF4aHNQa2hGSFp4NGJhbGZmeUF0QXkxeWpGMHZ2cVE3T3MrSzM2Rjd2VVViMlVrRXRWdUNLQnRYTkdFRXFqQ29Nc0RNd01hNkdnRXpUWmpGck1WSWNMZm91ZDE3dmNUMC9aSC9lNU56amtNQjl3eW93aFUxSnlzc3BkSTBlVFY0cmdPa093d1ZuSDUra2VlYlpIT3J0TE1ydERNcnROcC9zaGNlTTZYdEFCYTgvYXkxdnJ0UGpXSUZWRW8zV1Q3c1pmK3QrbXliMWZLUy82ejNXWlRyNlZvbHhoaFJWV2VEU1dyU09lRytacFUxZHJzYzhYQXVaT1NHWG03RDdIZTA2OUtqMlh5MWI2MVk5WEYrS3BZQ3ZKa0JkQnZBN3h3T1VjTk10NU5GOXgxTU5NRGFNUi9PSUx5eDkvWXZuNWJjdW5lL1pMVTJqOWxPTnFOMDhXajdSUmZsR2hsRUlwaFpUeWtjZHVBYTB0cWRFWVl5a2ZVU2lEVWNaNG1nTUM4NVRlcE1aQ1ZycThscE1VamtldzE0ZnROVXUzSlY1TUFyaUdrQ0JYOXJ6UEhiWDFjMDMrSmllT0FMYTZxaDh2MXozM1pDdzdOc1R1SVN2YWFCWHM5QXFoYWpOTUFka0Vwb2N3T1hCMVhPQnlFQ3pYN2VxbHJoWEFaUlc3OWZ4aGNKVEZxdkk5QTZ3STRCVytFZmhCNzFLbjkrSGZXdHYrYS85cGIvTXZFNFk3RldGa01UcWI1L3FVTXNDWWpDdzdwTWhPeU5JSGpFY2ZNVHI1STJhVFQrWmo1bnA1MXE4ZU5mbmJBallSclBreFc2ckZSYkhEbXQxZ3QzV0ZtMXZ2MEZQYk1GYjRxY0F2d0M4dHZ0WjRwVWJWcEcvdDZRdTg5TzJNY0VLelBJQ3lvWmlwR2ZlbXQ3aVhuVExFS1ZnMVorMCthOEp6US9scytERWRBdHAwaVVVWDZRZkVHOXRNdkl4UDd2MGg0eVJqM1hyMGRJK2VXTVBQY3BwWlNWaFlnZ0pVUGZqMnF4MzRkdUdrV1dQaHpJcXdJTEc0ckw5Tk5HMUtHYmdEOHgwaEk2eGdjZlZyRnJsYUJhbVV3VXFEU2pSTm9iamM3bkYxMk9hTHZzOFF5QkFVMVhuWDZ5ZGxNYWlMYTE0T0VTNklZRTBvcmdacmZMLzdBVC9ZK1JIWHVwY0poSTlWY0ZxTytibjZpS2o0bDlqWnAvTTh3R1pwKzhZV2pBYy93L002ZUg2WFZ2ZDloSlJNaGovbmVQKy9ZWFQ2VThweWRPYXlXVW95blpDbGU4d21uekFaLzRwMjd3UGkrREordUlIdk8ydG81YmVSS25LTDVWWlhkcHFBdFVnWkVqZXZFN2RlbzkzNzhOOFo5Zi9rM3htZC9pRkZNYURSZkozdStrOEk0MHNnSkZvN01hb1EwdVhaQnJSTzV6bDJyU21xdks2NSsweG5ZRXMzOEowVDBmWCt5MHJwV2E5TTFUbCtheFB2OHpPcCtyUHF2YWpOZngySjRDQ1JVaUdsWHltVVhYNGpLeVJLTlFpQ1RmeHczUVdPWUFHSlVqR2UxMEo2SWJhUUZSbFJiYzBIRlZoVUNsNmxQa2RMbEhWdFFqblJpQ2xjaUp1ME5pTTJXdzNXL1NhOWZvZlBwbnZzNlZNOHhuZ29FakxTWXN6NCtGOVRaS2ZvY2tKMzdTZEU4UzdTYTFKYlFvTWdqQzZ5dnZWdklLWC9ueW5WK0hmOWNPTWZGZG5KdDY1bWsxN2NEYUtkdit1SDIrN2VzNHNBT3hjQW9NQWE4dnlFZEhhUGJIYVhkSHFiNmVqWHpNWWZVNVpEOTlzNUlRc0xlbFpVeWw0NS85d3BzZFdjOVBWUitIZ0VLR0lpT242RFpoZ1JLa1ZvRlg3cEU1cVlwbWpRREVMQ1VPSEx5aHJhMWtwZ3psU3Btcml0YStHYzBMWHVkV0VzT1laY2FLYWlaRVRHZ1JseVozcVBCOGsrUlVWalBReU8vSFhuNE1qZndDbC9aWmMzNDB2OFlQMG03M2V2c1dzNk5HZmdwUWFsVlVYOGVrNlIrY1FWaFdWRmlVQVk4SE9EMWREMVBlSzFIVnFYQlVHWjBodkJGOFVEUGsvM09NWXVoOFZRWU1obmR4Z2M1aFI1bnpDK3hIVDhLYVArSDFXNWpNK0cwOVNxM3c2d2ptSTNpTG1rSXQ2TzN1RER6Yi9KUmU4R3dSRGl4QkptR1VFS29rNGcvNno2eTJXaGJSMlZWRVYyS1EraVNORlNIcUVTODNNRmhjR2p3Q2NqUURlQVJva3RnaThWS3g0UWk4b2x1ZEtRbHhhYm0vbnU2MkNpQlNGNS9nQmZ0ckhCc2pKNEtRckx1TjVLb1BHbGh0elpRd3NKUHBabTNPWENWcHUrVGJuZlArVzJ2OGY5eVFtSGVzeWhIWENjRGpqUkk2WmtwSlFWRVZ4VzF0QlZzRVd0cExlNGZPRHBJY24wYzlMSkYvVFdmNXU0OVRwQnZPTnMvYXUrYkhsZ1lFMkJ4ZEpvdlU1My9TZi9TVEw5NGcrQlAvM215M0NGRlZaWTRaSDR4aXlnM1RpR2w2OGJlaW14TkZiVEdjd09YYzVONlR2NzRxanJpSmRWTHVDblJEV3U4aUtJMWh5Sm5weEFQdjd1bEdHMWpHRkx1SDFnK2FkL2J2aG5QN1BjUHJUazMwRjlrNVR5c2VRdjFQR3dGbXZORTNOT2F2MzBrVEZDdU56THZnZEtRbEhDMFFCdUg4RHVtclBhOTZPbjN0dzNET3RJT1M5MEQ2bXE0UHdWbmptRXFOWkNNa2VPelk0aEc3dUsrU29UNzBLNWZrNUZJRmEwMFN1RmVuM1BsSzcvbmU2N1ZCZjV4TG1lcUhxdDRNc3d0c29CL0JETnozTkNuWG54T3pKSWVMNVkzY2tyUEhkNGZtdXp0L0U3LzdPTm5mL2UzMnV2ZlVnUXJGY0w0SGJKNmhrUUZtTVNrdWx0QnNlL3oyVDBDL0owbnp3N1F1ZURNNHZVUG00OXVGYXJ0bkJrM2Jid2VDMjZ6UFgyTlhZYlY5bnlydEVzdXpSMVJIZmNJcklCTWdXVmE3ekNJZ3NRMmlLMFhkaFd2cENEdks4RGdmV2dpQVJaQkZrajQ5UWM4T25zRm5leUVSTmNTeXBZcUwzYU9MWFhMaDNlN0Y3bjJzWTEyclpIWkRmeDVSckM5NGszQXc3S2p4a2UvQ2trMERLR3VKREVWaElXME1ndGZtRVJGcEIyNGNsOVhrUzE0QWZuNzZXMVlDekMrQWpiQXhLTWpOekJLVk5aUVMvTGgrc05hZmV3VlNpU3NDaHRhR2pGVnRUam1yL05WZHIwT1dHR0ljZFNPSDBSeTBQbDJ2U3pWcjZ0QWE5RlczelkreUUvNlB5WWEvWUtyZE1Jendxc0VNUitCNzhSb052N0pMTzdhTEl6QkhCOVpFWW5ERS8vQU9uRlNCVmpUTUx4L3YrSFVmOVB2MFQrbmtlUm56SSsvU09TOGNmNHdUcGUwQ09NZG1sMjNxTGRmWjhvdm95UWdhTzNsbnJoMmlaYUNFVVFidEhiK0czaTVuVzBudUo1UGNKbzA1WGwwbUs3dGNZcHhvc3h5ZXcyNmV3dWVYWk1tWjlpeWdTamM2eEpzRHBIV0ZNUndPNWhLd0xZbUFKajlVSzlLOFRTSlg2ME1HSnV0U3NYQW9vRlpTc1EwcHNUd003M3p1Vnk5ZndXN2U3MzZLNy9ObzNHTllRTUhaR3RZankvZy9MYUZPSUlZMTJHMXhLREZoYWpiTjBNdWYwWkJVYUNzWGpHb29TdWVDZVB3TitrYzZIQnhZMHR0dTkvenM4UFB1Y3VCNXd3WVlSQ2tKRGFqR3o4Q2NmbGpIejJnTFd0MzZYWi9SNmUxNXdUR3RacWZMOUhiK012NGZtOXYrOEYzUjAvNlA1SFJUNDhlR3dsZU03dy9QYkZJTnpFOHpzSW9UQm1PZStIQUZ1U1pVY01ULytRd2ZIdmtVNitRSmRqYkpsZ1RicVVIVlZXK3QwNmI2K3NGS21xSW4xclZhOUhPSC80aFBqRTFlczF0Y2FWelV0YzJPblNhZ3I4VWlIR0huNGEwZkJpR21GQUdFcVVPTnVrUEk1T2RRUXdDd0xZUW1FdE9aQUtTeUlGcHlMalZyNUg4YURrT0RraW9WYWlMOTFUMU9TdlV5YkgrTFNJNkJGemdUWGU3VjNoUnhmZTRMM1dOUzdhTHEySkpNd3NRaXN3d2FOdG44OGNlWDJraTNzTFllWS9DWEQ1Zm91aFFvU2JlTHMvNU1yRksveDYrQXZDTy8rY3o5TWhRMkFBVEhCQlBpbFFwdnVNanNlZ0luU1puQ0YvNjZDcW12enRBUmRvY0xOeGlYZlhYK08xOENLN1hHSW51MEpyR2hKT0M4S1pRV2E0OUFqUGN2Uy9MRU91OHhGNGdMSUlEenpwaUZ0ZlNVS2hxcTdGcmJrN0FqZ2dKMFlyendVTlNkZUt5TnFsRVlHT0xjV21KckdhUEFYbGVmaVpSRm1CTDEwWlMxUEpBYXBBdGZsMXMrSXBDZndYRFV2dHJsMTZiNVlzcmlzWEI0a21VcG9BQTZtZzdIdkVza25iQzdpOHUwYWZHU2RteWtFNTR0Zjd0L25rOEE2bmpKbVN6UjgxRWJ6SUUyeXFETnNPV2ZLQWsyTE1kUFF4emU1YnJHMzlOVHE5RDFHcSthVWpkKzJuSUFpM2FYWGVJMjdjK0IybDRrKzBUbFlxNEJWV1dPRkZRRTMreHJqZTY3a1N3TFY1eFFyZkVFU2xoTEs0eGRIeEE3Y283bGRXMEg3RERUS3NmYmJqb1ZjUmRZQ3dGMERVY1FTNkYvR2R5YWU4ZE9ObXVlV1QrNFovOFF2TG45eXlaRSt3SzM0U3JMWHp4OHVHSjZxWDdjUFQ4Znlta0FJOENVRkZBSmZhY2ppQVcvdVdxenR3Y2RQTkM3NUVPM3pkQnZpWm5vUndVYkZlNU5vam9SeHg4NTI0a2I1cFZQTStYVUEyaE9TNFVnQlhyZ1V2bWVyK3lhanFrRlN1Zm5sUnBRQ3UrN2hWSFh2NVVhdmFjNmY4SFZiV3oxWlRPMEUrN0U4QXRIYXVDVVg1alJMQXEraVdaNFFWQWJ6Q2MwY1Fici9kMi9pZHY5ZGQvMjA4diswc1pJMmpIbDJPekFCakN0THBIY2FqbnpIcS95blQwYTlJay92WXl0N1dXM3JVNnN3R3k0dlZpcHU5MTNoOTdTWVg3UlUyNVRici9pWXQxZ2hOZ0pjWjFMUkVGaG1lQmxtdnFkY3l6VmNSMHZFTk92YklHeVgza2wvekY4Ti95ZWZKQVgxclNIR243dUhLY3d2SmU3MnJ2TjE3alcyOXlXNXdrZTN3QXFGcDROSEEwa0Q3a3NBdk1keWxKd1FwMExZQmZxSHdyQ1V3Qmw4WWhDL21FYTV6b1c0TnUvUTRCNEU3S0tGOWZOdEZNTU5LSHhzQWNtbndMNmg2bkpwdUxaZGUyem1aSEJUUXlFSmUzN2xHUHpoaS84NCt4MW1mQUhFbVJIL1o5SE5aQWJlRDVKM29Dai9vZnAvWDVEWGEwd2lWRkNqak9BQXY5Tmh1YnZEQitvL0p4SVRrNUk5SWlvd1NsNmlncmxvbGpsUWRuZjRSU2tZWVBXUFUvK2xjZWJ3NHJab3NGVXZkcmtIcmxFeW41T2tCQ0lYbmQ1aE9QbVk4K0JtTjVnM2k1bXRFbFRwWWVVMm5rTFVHWTB1c1RwMDl0Ti9EODd2enhYUkJyYlJpbnZPM3lJZE1KeDh6R2Y0RnlmUUxSLzZXUTVkbjIrUUlZeEJXbzR4ZHlzUHFNcXk2Zis2R3Nrc0wvWThhRjVqNk1pNzlibGszL0tocTR2NUdWSDlqa1NvZ205MG5UNC9adXZDM2lGdHZvR1NNRkI2ZTM4VVAxaW5GWGJSTjBXZ0tOSmsyWkdVVnVUYm4yeXE1Zk1VU0NpbFFoU2JTR2hWSjRyaERNNHJvWG11dzFtcnhwM2NEUHMzdnp6UFhlbmhNN1l4aTlqbDlQYWJJVDFrclJuVFdQc1FQdHFpVmJBaUY3L2ZvckgySWxNSGZGZ2ppeHVYL09wbmQrMVlVYlZMNlhxdjMvdXQrc0lrVUM3V2txUEthR1oweW0zNUcvL2hmTXVyL2xObjRZNHpPS3A1T1ZMU3RON2R5bHBYMjEzT216SldkczBlQUpDS2dRVXlMa0ppQUppRnJjWSt0clRVMnVqR1I4V2trTFRiaURkYmptRVlnOEtSQXhBTGxlUVRTdy9ka3BmNTFOZVA4RUhWWlYzNisvamlEQURGUEpKSUJpUklVYlk5N1pzQm45ejZuekpJcS83QkNWMVlReS9la3FpeXBZM3phUkhScHNNczY3N1N2OGFQdDEzbC83U3FYVElmbVJPS2xHbEhXbHMvTDVPLzVvMTJ1L1hycHNkVEd6ZmxoaThMQ0RGcWx3bTl0MFE3V2FLNDFhUW5CUjhjZjgrdVQyOXdtbVhPcENrY0M1K1dVc3B5ZWliczViM2pjQUhiOUxoOTIzK1hEM3ZlNUVWeG15NjdSeVdPaWlTUk1NNExNb3BhVHdmK21xQSswUGdoLzZmMXltZ0JoVVZaUWxncVJoL2ltVWRVOXQ5NXVVSlFFRklRVStHZ0VSbFF4SmM0WUFCMElwc3B5M0U5NU1EdWxuNDJSeW1lNzArTkNiNDJPamJDcFFHWWF6NVlvV3cwU2pLcXVYMTNiYWlMNEpZZGREZ0dvb2lPcStpZlJZQXhlYm1oSVN4UUdyTWNoVzE2TENTV1hnNXlMVjlhNTJ0cmsxdjU5SHN4T09HSE1DV05tcEtTVUpCVGtsVDIwUUdJd2xScmZvc3N4MDhtdnliSUR5bnlJTGtaME4zNkM3MjhzcVlBWER5azh3dWdDN2U3My91TjBkdTlud0wvOHRvcHRoUlZXV0dFSjN4Z0JMTVZDcmJiQ040ZzYxNjhwM2NML1pNOFJ2OHFIemtXM1FJNXhnY2dyUEJyV1ZuWmZQZ1J0UndBSFRVZGcyYlQrRWE5c2lFTjlXaHJHTTh2ZXFlWE9JVS9NVmZ2RXpWWUUxTXRLL2tvcDV6YlFUL3c5ejQ1K3N0WlptV2FGVXdJckNjZGp5NzFqeTlIUXFkeFE1M1o0UHZJWUhsNWR6d3NlbnJRdzhsVWdjT1NjckhLUnkvUHp5eFdlT2F4eFpGazJoblRvck91aElzdGV0Ykt2QkZGU1ZRcnptZ0N1dmx2aEpVZFZaNjJCTW5ISzM4bWVVN2RiODhUMkpDOWhscm9jOVUrYm91QTNoR1dWLy9lWllVVUFyL0JjRVlSYnIyL3MvSGYvelZiM2ZUeS83YXhqcTRHOUVBcHJEVVYrVERMNWd0SHBIOU0vK20rWlRqNEZ6aTVNMTRLZ1d2WHI4dnNLTnIyWUhhL0JkWEdaNzYzL0ZqYzJ2MGMwYTZNbWdtaGlDUXFEVjZSNEJYaGZzbmVHVjdvVDg2RDBKWGtBVTIvQ0o2ZC96cC92L3hHSGxOUnI5N1hxcTRmZ2hscm5KMnMvNU1lN2Y0Vk8za1dOSmY1VTRta1ExbEtRa3dVQzJTaVJ0aVMybGhZUVd3L2ZPaXRYT2JkM3Rnc1R0TWVKM2M2L0JrZStXWVd5VFNCeVJxeHFlZXc4MTlXeTZBKyszUHNJQzdMUUtDbllXci9BRzUyMytQWG9GdmRPanBtVXhaY0V5Y3ZXencxZ0MzZzd2TWozV205eFRWNmtrM2pFMDRJZ040NEFscERyQW1zRlY5YmZKTjhxT0VvZU1CbC9RV2tNdFN2cU1rMmRwOGVjSHY1VHJOV1V4Vm5sNzdKMWJtMlg2ejVYMWJrN1dsVmJnODc3VFBNK2s4SFA4WU0xV3AzM2FIYmVKVzVlSll4MjhJSjEvRXI5S3FyOHZzczVlMW5vYmF1ZEtNcGl5R2p3WjV3Yy9EY01UMytLTGlmVi9wa1RlcXBTUG9aNFZSNWNXUkdnWndjSjlRSi9iYnU4bk11WGMzdXZmMld3NlBuejR0TkZMdGJsZjh5M2EzWE9iSEtMSWgvZytXMmsxNkxSdkE1SWduQ0xxSEdGZFBncnRKazU2MTgwcCtNcGg4Y1RMdm9iV09WaE0rc0NRcXlvU0I1QVN4QWx5Z3BFcWhGNXlWb2dhVzF1MDJtRUJLbWdPV2p3ZVhISW5Yd2ZoYk9TblpHUlpzZU1qbitQc2hoUmxpTzY2NzlORkY5Q3loQlQyV2xMR2RIcXZJdVV3ZDlXWHF2WGFGNzdCN1BwN1QvNlVrVit6cEF5N0lYaHpuL2xCNzFxQVdGeHJZd3BtRTArNC9qZ24zQnk4RThvOHRQS2tkZlpOZnRWUGFoejlBWlYvVkI0aENoaUdkR01ZaHFlZXgvcGlMWnAwd3NhdEZSQTA0UnN0RGU0ZUdtTDdjMllzRlF3RU1pWlJJMHQzaGlVRWNpNk9iRVdpWGIzOWxJMGlIeEVNKzRJMytWMzFmMG9uTzIzSjhENkFobGI4dnlVdmIxYjlJZEhWWEJEblZtMjJnY3VMM0ZOL3JhSVdLZkZGYm5GMiszcmZMajFPdTkwTHJKYk5tbE16OXMrKytmSTM0ZW9mUmVtOFl2WDU4ZmVkY1VIbExUSVVzTUVTcW00R0YybXQ5Vm1VMXlpVS93cDNlSlRidWQ5RHJTZU8yZWtMSEsrMTN0ZWRsdVdRTStQZUhmN0xYNnk5YnU4NGIxTlp4b1F6VFJ4Wm9reVE1RGdMSi9OOGtGOVJkUTdyRzA5S252bk02NytEK1BKY2RkZFpCS1pOZ2lMRFNLTzhUQUlOSzUyU0FvVVdTRkpjMEZobkRCSEdqQktVRFFVcDJYT1IzY08rZFhwRnh4eWpFVnllWGViTnk1ZVpFZHQwSk1OV3JGUE8vSUljeEI1aVVBanpISUMrenIzL0tzMDhhOFVURWhIZUdOQUdLUW9IUm1jV25TdWtSSjhJWW05aUozMUsxeHByckdyMTdoOWNzaVJHTEF2VDlsUCtoemxJd1pNU1JBb1NsSTBaWFV4OWRKRkxZc0JnNU4vUlZFT01DYWx1LzZYQ01JdHQrQytaR2RuYllsVU1YSHJOY0o0OTIxV0JQQUtLNnp3WXFEdVFtdnZpdWZXS1NnSlVlQlVhOEFyUFkxOTRWRGJnR0tkQ214MHg5bEJCdzFvYkZZazhiT2twMTVGMU1TQ2RNUkMwSUtvQjBHbFBLcGRWMTQ1UlIxbjFrUk1Eb01wREdjOEU5dG5JUVRXV293eEx5VUovQ1FDMktWZ1hhd2hQS3RiekZoSUMwZjArcDU3cnlad09MUU1Kb0s4ck9waTNjSzdBemd6SDNzUzV1RU15NUczOVJkZkdkVWZDZW5hSHVWWEZrZGZlNE1yUEJhVm9NVWEwQ1VVRTJlWFd5VHV2Zko0ZGVhQVM2amJZS25BaTZ0Z3AxVU80RmNDZGNDQ05WQ2tMZ1hEOUJqU0FaU1phMCtFZXNUZkF0YjFXZFBNa3VUMm15S0FYM1haM2plS0ZRRzh3bk5GZC8zSC85UE5DLy85ZnkrS0x5MUo3Wnk2ektMSjAwTUcvZCtuZi9SN3pNYTN5TE5EWUxIRVdwTy9NUXVMNGhhd2plTDE4Q0t2dDI5d3BYV05YWFdEVFhtQmRyK0ZuMG44MURqVmIyNFJSVTN1UExzQjQ0c05OMWpSUGhTUlpLSlNEb3E3M00zdXMwYzV6LzFyY1dYYkJDNm9rTGM3YjNCZHZVbDNza1U3OC9HbkpWNU5kbUxKcEVVSWk5VXV4NlJ2M2Q5TGtTT1ZRUVp1a1YzVUhFYU5oOG53SG9ZNktOaGFoSlVnUExlZ0x5cGFSQWlNY0hTZ09MOEQ4ZkJvWVlIRnM1Q09mV0sxeWZXMTYzeVdQZUJnc0grRzlCQXNja20zY2RiUDE4SU9QOXI5TVcvRjM2T1h0R2pOSUV3TVh1Yk8wUUplNEpTdzNzUm4xOXZsL2RaN2pJb0p5ZXh3VHJTY1ViYmFnanc3T24rMXFQT2tLdXA4cUdxdXBxelBzYXpzaTB0MGxXSFJPTzF6M21kMCtzZk14aC9qQlYyQzZBSng4eHJOem50MHV1L2poeHZWZkxzeVlLNG1pWXU5ZzdXR0pMbkQ2ZUUvWVhEeXIrZjJzRkRiWWd0OFBDSjhtb1R6UjRSUFdLay82MHVybDRqY21yU3U2ZDZIRTdudVYvVzUxVGJOeFpKdHFDdkgrcjNGVlBrbFN3U20wbWtXK1Ftai9wOFFOMjg0c2xXRmhQRXVqZFpOUnQ3dlVaUjlESmFja3IzVFkyNmJCN3g1ZlFmYmFxQnpnMWRYMUdXTFYxRlI4cllrVUNWZWJpbjdJTU0yY3ZkTmRqWjMrRVgvTHNHKzVIYStSMEJhRWVLR3pLUWt3NStqeXlsbE1XWmo1MjhReFplWHFxMUJxb2hHNnlaU3hmOGJ6KytzTjlxdi94OW40MXZmS0traHBSOEc0UmFlMTNXSFpVM1ZQbHVLWXNpdy84ZjBqLzQ1Ulg1YTFRVkZoRTljMVlFMkVTMGlZZ0ppQW9JcXQyK0RpSzNPRmhjdmJySFc4UW1zSkppRnhGbUxkaERSQ0QwaUxRbE5RQ01MYU94TGZDT2NMWDloRU5yZDFzTE9NL3d1cnN1aUsrSExZZGdMMUVzRkxEOExDOEpncGNGVFVCckxiSll6blNZVVdVNDlWYmZWSFNPcThBWVBTWWhIZzRBMkVSdTB1TXdtSDZ5OXlROTMzK0wxeGlaYk9xU1pDdndNcEZaT1VXNXE4bmY1V000VHZ5WHoxa0xVdjZ2YXRJZVJ3QlpubFErRUJVaGh5STNDejlaNFRYNUFlM2ViYS9vS1B6djVFMzdlLzR4OUxFT2NKZlFNUndJdngwSXR4K2wwb3hidlhucVBxL0ZOL0VHRVYwQ2tOVUdCeS9jN3R6YjRtcDNwY2tSWFRmZ3VaMDE4QlBGYlExcUwxSlpBeDNURlpWb004RGhGa21LUkdBUWxNRXN0MDRrbU45YlpSZ09GRkNRS0Rzc3B2OHkrNENNK1owaENnZUhlMFNtZmpmZTRIRzF4dlh1QnF4dmI3RFk2TkpNQWIyd0poQ0MwQm1uRVFnMWNxN3JyZW1sZjFrV1krdjVhZmwzMWpzS3l5RytvVWRLZ3BDWVVsb2ExNklFazhsczAxNjl6bzN1QlVUampLT3p6cTN2MytjVVhkOWpqbUFFVEJwVVplVHAzaUJCTFBoRmdUTUZrK0F0TU9RTnIyZGo1R3lpLzQ5SVN6UHNQaXhBSzViV1FLbXA5YytXendnb3JyUEJVT0IrKzlNeWgxTUt1ZElWdkFhTHFGOHNNa2xQdzdrUFljZ3VtVWJleWlxN3RoVlo0UEtRakY2SWVoRDJucUN0bUZmbndiUi9iYzBJMTJDNExHQ2N3eTU0ZG4vSXlFci9MZUt3Rk5Fc3hBYy80TkkyQjNEZ2xXMTJFZ3dtTVprNFpETGo1U3IxdlhUa0JGODR5V3BzcSs5alNvUnZyYkZKTnhhT0Z2c3NuSElaaWJyano5UXhOcTdtaDlGeGVWaFh3U3VlZy9kWlJYVlNqb1poQ09vSjg1cHdnWG5sWTE2L1ZCUEJLQWZ4cW9NNzlXMWJrNytpZVV3Q1hUOThaYWVQc244dVNKK1prZjBiNENpRTNLendKS3dKNGhlZUdNTjU1OCtLMS84VlBtdTAza0NyQzZNU1JUemh5SVozZDRmVGduOUUvL2hkTUo1OVV0dEJmenZNYjQ0aTVEbkFCZUwzOUdtOTAzK1M2dXNRRmRZRU5mNGVPNlJHa0VqVXI4TE1TcjNRMno5L1ZXQkdyb0F3RVpVTXhWU24zcC9kNWtKMHl4QkVBQlc1SUUrRUk0RjBaOHM3Nm0xd0tyaEFNSVVoem9sVGpGZFZjUlFLQlUxTVpDOG91T1hPS0VxUkZlTUk1UnRSY3JGMTZmT2tBbDE2ZkdleUxLakpZSUNNSm1VQmJRMmt0V2xnOGdadDRuNWtjQ2g2Vk82ait1SnlCOVVKYVlZOW0yRGpqM2xPcnpHdjFieHU0MXRqZ2U3MzN1ZG44QVp2bERsRUM0Y3pncHpqV3BOcTlzaEFwZzVFRm5XYWIxMXNmY3BUME9ad05tWkhOU1phNkdqNXFyTy95aWdxWGJ4YWZtSUMyakFpRlI2RXRPVGxGbFUreFFGZTVGV3V5dEVDYmxEeEx5YkpEa3VsdFpwTlBtSTQrWmpyOE9ZMzJHOFNORzBUeFJWU1Y0OVhsN0MwcW9zOVFGZ09TOFMybTQxK2ZJMzhGSGw2bGVnem9FTE5PbXcwNlhHcHNjdTNpRG11dEdGV1JWdW5NMGo5SkdCNFB5TWdyNGs1UW0wVHJLaVBrTXZuckNGMURLVFNsMEtTbVpFcEtRa1pPZVlZTVBrOFE1MmlLcXBRTmxqdzlJTThPMFNaRnFnQS9XQ2RxWEViNVBmTDBQaHBEUVVtL0dIT2E5U2s3T1VJSzlNQ2lNSWl6RlhOQjdsaEhCQ3Bid05qUXl1Qnl1ME9yMGFMaHhZU0JwSEVROHVuNGZpVnFsRXlaTVRNcDZmalhuSm9NbzFQV3R2OE5HczJiU0JXQ0xiRFdJbVZJby9VYVVnYi9jeUU5cjczMndlWjA5T3QvYkhTVzhnMUFxbmdqYmw0bmlMWUJSd0JMS1RDbXBNaU9TU2Fma2FWN0NDQ29ESjlqUWxwRVhKSTd2SHZoZGE2dXI5UHhGYUZWK0VZaVM0bWZCWFQ5SHV2TkRxMUE0VnVCWnhXQjhnaWxSNmdFbmdDUlc1Z2FSR0djOGxZSUZ3QXl2d1pMS2t1N05NazlZNy83aUVqRk0rVHZNZ0dzRWFMQUZ4WWxETFBSaEVGL1NLa05Fb1ZkK24ydHlnOHE4cmREekFaTlh2TjIrZEhGZC9oZzh5Ylh2QTIyU3A4NHRhZ01wS25JWDd0TS9pNGJuQy9iUEp0ejM5V2s3MFBhdFBQcklnYUVoc0JhaEMwUlZpS0RObzI0UWRkdjBkeFlweVAvakYvMFArSzJHYzE1MXRvU1dsUkhjSlp6bFJoQ3JIQzZXbU0wMWxpRXJmSzZmOVgrdEc1ZzZ4MzduTFY0ZmhqQmZmNzEwcUtQdEJaUmxNUit6SVdkNjZ5Zm5xSkdZeHl0WFNjRXNFelRnc2swSnc4aUFnVklTU1l0cCtXTWUra2hkL1ErRHpobFNrRkdpU3hoZjlMbndlU1VlOWt4VjdJdExrV2JYR3Z1c050ZG8yY2p5RUNsR3BtWGVITnJhSy9LbzZ2T0VxZ3ZQYzRGWGRocUljQm9zQkloREo0MXlNTFE4aXlOUm9PTnNNSE03N0xycjdPNXM4YXV2OE90eVJFZkQyN3pXWElYWGJYZnBtcXYzVjZXM0NCTXlYVDhDYVBCejJoMjNxR2hJb1R3NXFrS0hGeFBhbDJpc3hWV1dHR0ZGd25QdlFQd2xWT3FQWVZUNmdyUEEvTTVxd0dkdVlYVFFlVDZSK203dkxiem9La1ZIb2s2dUV1RkVLOURQSENxNm1KV2ZmZmNZeW0rUFZpbk9NM3JISXJQWXBPVitsZHJqVEV2WDkycnlldEhrdGhMNUxCYllucjJySU0yem9wYkFKUEVLYlJQUjNCaDRvUzJ0b1N5dEV4VG1LVE9BalV0TElWbVBpSzExWGF5b2xKMlcvQThhTWV3MFlhdG5uc3QxTmVzMjNObDVybmN2M3hYUkM3Zk1FUzl4bGhaUHllbmpnaWVCMnkvb20wVVZDcHozeEhBcXJLQTFsV2xYdUVsUmpXbkwyYk85bmw0RDVJQmJwRkZQVHFnWkNsSTN4alhoNVZMUVRQUEVmWHEwM21KMlFwZkV5c0NlSVhuQXFtQ3FOUDcvbytEY09mZnJQT1JPamp5S1puZDV2VHduM0s4OTQ5Smszc0FjemZJT2c5cnhDSVg2N2FTWEE2NlhHT0g5OWYrRW05cy9JQmUwU2FjUVRnV0JMa21LRFJlYnAxQ3FZVHZiQWNsbmVnc0N3UlpEQVBHM0U3dWNDOGRNQVpxOTg2QU90OWp5TTNPVmE3RjE5aTBYWUtzSUo2Qm4xVnFMOGY4NFBtZ3hFTEZ1U0JSMVh4Q0xKWkozOGNxZjVmcDE3cWpjZTE2N1VBcGdrcjFhUTFGWHFKOVp5ZnNCbU1QT2U5bGE1MXEzbWh3aExVTUpNaUN3ZUNFY1RZN3d5dlVuRVN0TU45QzhHN2pPdS8zL2hMcjVVV0NpU1JPUzd4YU5yZXNualdnTWdpa3BoRUViSVZYZWFQNUFjZXpZeWJwcjBpcThqNmYwWFA1a09VUytSdmoweVJtVTdTNTF0bGxzOUVqVFVwRzJZUmhNV1pRakppU2tWR1NVbFJFc0ZvaVJ5M0dGQlRKUG5teXoyVHc1OFN0RzdTNkg5THF2RTNVdUlUdmIrQUhhMGd2UmdvZlkwdTBubEhrcDJpZExSMWJyVXF1bFk4KzI2ckRPKzBiWEJVWHVOYmU0YzByVjloZWkxSFNXVTVOeDVZak5lRzRPQ0xORTJUTitnaUJGWmJDWnRncVlNQmRHNHUyRnFNTUpqQVV3akROQ3daNnpFVE1LR1JPSVRRbG1oeERVcFNNc3BSaE9XWkNTa3BPV2swRlN6VFlFbXRTck1tdzFxQlVqQitzRXpZdWtVKy9vRFNhbkp5VW5Lbk1tSnFNRkUwa0lLaVVvUzdBWUttQzJVb2ZiaFJZaVpJRnF0QXcwdlFDZ1dxc0VlKzg3V3lPNzBvK25qNUFNcXBxdFNRbG81aCt6bWs1UWVzSm05dC9rMGI3VFpRWE95TGVhZ1NDTUw3RTVzN2YvTGVVMS9xM2ptWDBiM3RlOC85Wmx0UEJRMnI2TTBVUWJyNFdOYS9oQit0TDVMK0gxVE9LN0lpeUhDNEZTcmhnZ0JZUnUvNGE3M2RmNTNjdi81ZzNMMnpUQ1F5aEFWbGFaQzZ3TTRtY1NVUXFVRE9YdTFVQnl1Q0lJeXVRcHRMMjFpU3ZyWW0wY3dUd0dUS0t4WGNQZmIyTWgvUUIxbFRSMTFVaWVBRjVsak9ienNoMU1WZVoxM0VzRW9tUHFteWZRelpvOGJxL3c0ODMzK2Ezcjd6SEZXK2R1RjhTcFJyZlZJblh6Ykl5OUp5dDg1bTg1VFVwL1lqeldHN1RsaVBmbHpkUk5UQytCU1VNU3VXb1ZFSzR5VnZOZGJxYlczUjBnMTc2Uzc0b0J0eXI4amQ3UUlJTEJySkx1eGptTTM2NTl5dWl0czhiNGdxdGVBdUVUMkZLVkdIeFROWEhQcTU3clN0TTdhdS9UUGlldDNoK1VvRFE4dnNxc0VpVWhyZ2RzTE8relpwY1I0MmM0MmJ0UUZDZ1NZcVVXWmFRK3kwSzZkcWdWRmtPa2o2M1R4OXdYSTRaa3pFaEk2TkFJY2t4WkdqNjR3bTN4NGRzMCtXTm5TdThmZkVLdS80R1BSWFJidmkwR2o3a29LcEU0a0pVbHNuQ1d5aG5YNlZGQVV1MUFGTGRtOExEa2Q4YUtiU3pJcDhhcExSSUlWQXFvdFhiNWNMVkhYWUhJMkxWcER6TlNKS016QmFVU01vdkJkd3NrR2RISk1rOW9zWWxQSzg3SjRBRllLMUc2d1NyOCtRYk8vOFZWbGhoaGNlamJ2VHJYdTY1SWZBZ1VGVnUreFcrUGRRa2J6YUc4UU5IeGtROThHTzNhQzdxbEFyZjBiV0lKMkZPQUFlT0FHNE9ZYnJ2Q0pidlFwbUpPb2orMlcxU2EwMVpsbWo5OHNYSFNTbm51WUFmaHBxSGMyOTRibFhFV0pjVE9NbmhaR1M1ZldnSmZEZWRTekxuTGpTZXVlK3pBb3B5b1FBRzk3ZlRESVpUUzFaQTRBa2FJWFNic05XQnkxdHdlUk0yZTRJNFpCR0orMVVoVldYLy9Gd3pEcXhRMnlCYkEva0lacWRPQVd4NVJaWFhkU0I2WlRIdXhWV2d3VHpIM3dvdkxlcGdCZ3M2ZFgzdDVOQ3BnTXVrQ21KYlhuQjYrQ2FnYWlNekZ6RHpEVnBBUHp6bjR3cGZHU3NDZUlYbkFpbWpiaGhkK3MrRFlBT29DTU1xdjJSWkRPa2YvMHVPOXY1ZlpNbWUrejJ1TXRia2J3dEh4cldCYmVDRDNuVSsyUHdSdStZMU51d2wxaWRyeExrZ1NJekx0WmhaWkdrcklkVjNZT0x3U0xoOHVUcVFwSUZsNkkxNFVOem1zL3d6OXN5VUdZdmN2d0dPWEg5bjdScmYzL29KRzJZSGZ3cFJhdkZycTg5NmhDMWRmbCtob0pTVlZjNThueUVJNlhTZVR5U0E2NDZsbG9QVlRWQ3QyekpZQ2FhMDZFSlQyb3hjVzlKWlNoNXBBcUZjRXNqejIzNElGMlFSbEZaUVdMQkJ4cVRjNTR1VGo5a2JuOHl0VCtzVm14QkhobThDcjZ0TjNncGU1N0s0UWllUGlGTmRXWitlajY2czNoY0NYMW5pekZBR0FUZDc3NUNHSTA3dUhUSk9UOCtZdk1JeTdWUG5GUldWd2pha1RlaEloOVlsZnJqN1B0YzNybERrQmFmVEVROEdCOXc2L0lMam9zK01nZ2twQ1RrSk9SbGxSUWFYbFVWMDRVclRaQ1RqajhtVEE4YjlQeVlJdDRoYk4rbXUvNWhHNTAxOGY4MlZnNHp3dkRaU0JFdkZLQ3BMYWtsRVFJdUlhL0VPZi9YbTkza3p1RUpyR3JBMmlXaWswdGtuVytocXk2WVhrTzQycXp4RXNwcW9PUUxZQ2d1ZUFWVXBnSzBiVXh0bHNiNmxBSktpWkdLbkpPRVVIUllZNVZUQ0tZYitNT2ZPM29EYkovYzQwRWYwbVRCa1JtMDJMVXlCMGJsekU3RFdrY0JlbTJibkp0bmtGbnA2bDR5Y2pJSkJOdVB1dlFFWFdodnNxc2h4R2tYbFlTNXExU2xMejVKRjNveVMwQllvNjZ5QnZiaER0SE9UWnVUamZlS2pwdmM1WVRTMzlaNlJVbVJIREEvK0diWk0yTmo5SDlEcXZJdVE0ZHlTV3dpRkgyeXl2dmxYOGJ6bWYzYnNOZjVkUCtqOTM0cDhjSi9uQkQvb1hWcmYrbXMvOFAwMWhGU0xtMXBJak1uSjh6NjZHRmVybW9JQVJZT0FOUnE4dlg2WjM5cDluVGU4VGJhT1kyS3JpUXdvWTUwVnZBWlpBSVd0MHRtNnNoTldWaVJtWGNaVkhUSFY1M09HMEM2Vi85ZWQzSjV2R094aUJVRzRXcU90b0JRSzdVa0tZU2dvS2dOejVubC9Jd0xheEd6UzRqcGIvTmJPMi96VzViZTVZbnAwaHhCbUFrOEwwSlV0c0trWC9tclN0eDZ6TGdVdnpodEw4ZEQyNjZHb04xbmdCSzhaamdDdTdqOHBCS0VDdjdCNHBTUzBQbUY0ZytaMnpHNTVuVjhNLzRKNCtIUHVsaWtqWU16Q0VhSnUyb2I1akovdi81VGsrQlpwKzEyYWwzK1hJTHhDWG9LeGdzaHovWVBNeE1PdG9PdUltanF2YnoxblBKOTB2ZjdUUndZSlBRUno0WTBsOEFTZHRaQm1QMFJXR2NwMWxUVThSNU9Ta1pLUkNZTXZmR3hnU1NMTndXakFuZE1qQm5wS1VZWGxxT3JnU2pRek1qSnlKbVJNU0JpY1RMazdQZUJLdE1XVjlnNVh0N2E0Mk8zUlNnTDh2aVhFRWxpTjFKVm51ZkdxODNxVlNPQmxOWHI5dW00UEsxV3cwZmhDNDBsRFlDejVSQ0hMZ0V2U1k3cDVsYjQ2WW0vL2xINDJSYzViQTZwUXNyTVhYdXNadWhoalRNa2lwNkxicDdVR1U4NHdKcHQ5STZlK3dnb3JyUEJrMU5QWXV0ZDdibzEvNEFrQ1g2QnFCZGwzZWNyN3JXRnAzS1lMeUVZd080VHBoaU9BbzE2bHBCSGY4VFdKeDZBV0JpZ2ZnamJFYSs1WkJTNUEwLzJJVjJjY1ZhRmVWcEZPemU4dFl1aC9JeGhqS0lxQ0xNc295NWZQbnJZbWZ4OWxBZTIrcjhRR3o5bHoxRmhJQ3N2K0FINXh4ektjV3JTRjRkUVJ1NU4wWWU5Y0gwcWR1am90TFAycEk0OUxEZDJtb05lRVZpVG9ObUd2YnhuT0JPOWl1Ym9sM0h6cFRGcWp4OEV1UmV4S1IvNUtiOVhPUEZkVTlWRVhMdGduSFN6WjFNdG5jL08rU0tqcmtmU2M3YlBmQksrMkdWOEZOTDNVcU90cm1ibEFodkZlUmY2bXJnRVRkUzZ1eDIzRFBlV0ZjMG1ZWmQ4SUFXeFpTQjVXQlBBendJb0FYdUc1UUttb0cwWTdlSDZYV3JJa2hJZldHV2x5ajhub2wyZkkzM3JOT01JUmNWMWdDN2l1dXJ5ejhSYnZyWC9JRGY4dHV1VUd3VXdSempSaFp2RUs2MGlHV2w3NVhVZWwvaTFqUlI3bjNFcys0cGVEMytOdWRzZ0lNOC85RytDc256Y0p1T1pkNFhMd0pvMXhFMytxOFhNUWVvbVlxS1hZSWRnQVNtWEp0VUhiMmlpMVVkRWtkdEZ0ekFuZ1pXMVpmYVhyNS9xeFpIOWFoY01hYThqeWhKd0pvclRNeGhNU214R0x4bGtTNGZ4ekRlMnlCSmUrUjZFMDkwY2Y4NHZCditEejBXMkd1amlqZXF1VjBDM2dnZ3g0ZCtNRGJqVGVwWk0yaUJPRG41ckhLOTZzNDZSOW80bEs2TWsxWG11L3l3ZWI5NW4yLzV4OGVrb0tGSlhlcWRJNVY1ZEw0S0VJOFdrUjBhUEpkVytYbit5K3p3Y2JiN0dwZWhCb1pqYmo5V0NMTjlZM3Vkcy81TUhoS2NmNWdENFRCa3daazVCV3RLOGpnNFBLUHJta3RDVkYwU2N2K2lTVHo1bE52eUNaZlU2ejh5N056anMwbTYvamh4czAyamVKRzFjbzhoT3NjYmxRQlJJUFFZVEhobGpqU25DWkc4RWxya2RiK0VsQk9ORjRaVkVKS1FXaGhMWW4zS0N4dWloMi9oOGdCYUx5RDdkTHBJSVdGaXRkNzE2RWxwd3VoVitnZllPUm9BWGt3akpxR0c1c3o5anJYdUxXOUE0ZjlUL244M1Nmd21wSGdac1NZektNZFlsS3JTbVJLaVJxWE1XUHRwbE5iMU9RazFNeXltWTgyRC9rNU1JbVcrM1FrWFpGZllYT0x6b3NrY0JtTVZ2M3loSmhEY0pBb0xxbzltdkk2eDZ0dlNZZm5kNEZEaXJ1U3pFbEljK1BHWjM4dmlNeGRFYTc5MEhWUm1xc0xRQ0pIMnpRWGZzSkNPL3ZnMVNlMy9xL2xNWGsrQkcxN3pkQ0dGMTRyOUYrODMrdnZPWkQ4dGxvdEo1aVRENFBCQWp4YUJHeVJZZlhnOHZjYkY1aUl3dG9UQXZDMHVCcEZ6U3d5SndyenJZQlZpNklzWnI4UllDcHYyZngyM2tqOHF3bVYzVWwxQ0NjOFhpQnV5OU5GR0FhUHZsRWsybVhYeHZzUE9keGpNOGFMVzUyTHZPVDdiZjQ0ZVliWEpYcnRNZUNJTlY0Um9EMlhOMUFWQXRiNTVXL3kxRXhOUW05ZEc0UEk0SHJRejZ2K0sySjM0ZjBlMEk3RWo0cU5hb3crRTJmc0hXRlJ0U2w3VzJ3MmR6aTUvMWY4UEg0RHZzczdLRHo2dTlUYTlndnhwVEZHRk5PMGY2WXR6cy80bUx6VFZTOGhraEF5NEpBV2p4TmRlM3NndVN0RmI4QlQyL3hmUDRIODNwUVA1K3JFOWJsUDR3aUNBS0pXZ29hMEJoeVNuSS9KWXN5VW1WZDNsN2ZNbXRuOUkvR0hKVkRNbkk4RkJFeGNkaEE2NUpaT1NHdmVvY0N6WWlFU1pseFBCbXlOem5oVG5MRUY4VUdsMFpiWEc5dmM3R3pUcStJc0RtRWhVYm1kbEhmZjZQQWhaY0JZb25rcmtoZ1VTSW9DVVNKU1V2OFVoRDdnbDRZMFdzMGlhUmZrYjlQS0JkYnRZZm5GN1NFQUF6R1pGaFRyQWpnRlZaWTRVVkJQYUNKZUk0RWNKMUxNdlRCVzRseHZtVXNqZU5NQ1VrZmhuY2RnU2w5bHc5WTFPUEJGUjRKSVIzQjREZWRmWGJRcXVZakZhUDJxaEVzRmFSd0pMQVV6NmF4cUFuZ1BNOWZXZ0w0Y1RtQXErV2hKL0tjdmllSklnOHBCVm1tU2JPdlhoWUNwMng3Y0dyNTVSM0w2VmpnSzZmc0hjMGM4VkVUd0dXbC90WEdZZ3hraFdXVXdIam04clZiM0h5bDFPN3ZKaW1BcGRlMHJMZWhxYW9SOFpkaklaOXdrTktSZERVQnZNSnpRSFZSVE9rVWt0a1k4akhvZkNFSWVPVlF6V0dsQjE3RHJlY3AvNGwvdGNKTGdMck9saGxNRDF6dTM2VHZBcTYrb3BxOTFNNEJJU3NXN2dmUEdTVk9yN0FhVUQwRHJBamdGWjRMaEF5YVFiU041M2RkVjFMbGp6TW1JWm5kcGNoUDU3K3RkYUIxUHRvMTRJb1hjZFBmNEwzNEhkN2IvQjEyMUhYaXNTTE9JY3hLL05UaTVaeXo1RjBCSDhwQWtvV0dpVGZnOXNsZjhPdmpuM09NNHd3S0ZxNmNhMEp3U1c2eFpTN1JTTHBFaFNJb1M1U2hhaG1zZTI0Q01WaGZPSldtTHNqeUFtMDhMQjZXVnFVVmZkaDFrRXVQOC82ZmJqR1hNNWx5Y1FRd21zeE15UmdoU3N0ME1pRDFFcXhzVkIyWVhZZ0Vsems3M0d0cm9CQ1N6QmRNNVpSUGp2K2NQOTM3UXc3SnlGa28zdXB3L1RadzBmTjRxM1dGdDlaL3lMYThSalNFSURHb25JZmI4OVRMUGI2RlNDQURDQlhvM0xJV2JmTGU5by9wRjBNT3B3T21HRW84ZEVWUTFQQXFVczNsMTQyNDZtL3p2ZlhYK1dEakpwZEZEOVV2OFkybGEzMTJXMXU4c2IzR2cyaVhMOHBEanZNK3g4V0lZek9pTDhlY1poUDZ1VlBFSmhSa1ZXN0xvc3FUNjZ4dERYbTZSNTd1TVJuOWtsYm5YVHByUDZMZGVSOWRUbEYrQnlsRHRNa1IySXFpbDBSNFhHeHNjcTJ6UzNNV0lwT0NLQzJKTlk1Y3FZa0FEV2dMK1JLRHRVeG1pWWV6UDU1d3dRU2VzSVFTdEZBWUZLYmFwQkdXVWdxNkNDN0VQVzVzYkhPcDNDQ0lmTWIzWjR5eUdSbVMwcFRZTXNPYXdya09ZQkhDUTNsZHBHcGdzUFA4d1RPVE1FZ0hqTTJNMG5mamVTVnROWko1VEp1eVRHQWFnYUlnekEyY1duYWFUY0xOMTJqUUlDeGl3dHpuYm42SXNxUHFiaEJrZVovaDBlOWhUSUZGMCtwK0Q5L3ZJWVJ5eExESlVWNmJ6dHFQc05iOGgxaWQrMzdudnk2SzBjR2pEK3JySVl4MzM0cWIxNUVxcW14VzNjQmZWRW83WFl3eFpZSkM0dU1SNGRPanhVVzV3eVYyMkNoYXRBdEIwMmdDSzNENWJtc2I1NW9FZ3dVQlhOY1ZsajZIczliT3NDai9aemk1cWhQWUNnM1MyYVVYbnFSb0d5WkpRbCtQbWRxTUFsMWxLTFc0M055U21JQ0wwU2JmMjM2VEgxMTdsNnQ2amZqSUVCVWEzd2dYUEdEcWxZbGx0ZTg1aG5ZK3kzL1k4WjA3L1hwVHRZVkFjZTd4VUZRVHR4S1VCcVV0eXBRSUxiQmhpN2o1SGxzYnUvUkVoMlloK2N5YzhxQ2NjbXowWEFsc2NIM0ZBUGgxY2Nydy9yL2ljSHJLOTlkSFhQTnVzQmx1MDFaTlRDZ0ljb052alR2MDVVaXV1b2wvV0xEd2s5N1BMYWJVMHZ2cU0ydkE2bm5iNUFud2hkUC9pcW9IS3RHazVPUmhUdEhRSkZLZ2hFL3VqM2t3UGVKK2ZzU1VGSUZnWGJYWWlYZlo3VjdFbXBLVDZRR254WkJCT21GaVp4UVlOSm94aHBTUzArbUUyOU45TnVqeDFzWEx2TE56bFl2bEp0dW15WWJ2MFRBR2FVdW5CQmZmRVJLWWMvZTVBWVJCQ1lNdkxaNnZ5ZklaazhrVWJjeVR5Vi9BcVlzZnJxQzIxcUIxaWpINWlnQmVZWVVWWGhUVWt4eWY1MmdCcmFRamZ5UGZ2VjRKY3I1dGlNWENhVDV4VnRDcUlqTlZDSDdFUEpoNnRWYnhDRlNWMkF1ZGNqcGVkN21WODJtbFNubzF4MUZDdUh0WVBTTVJvVEdHUE0vbkNtRG5MUFh5bEp1MWR2NTRGSjdtZkh4ZjBlMkdlSjVrT016STh2SXIzWHIxSHZJQ2pnWnVYV0tXUXFmaENOOUo2bklBWjRYN1RWWkFycUVvbkVyWWFQZGVHMmhVQkwrU0FxVWNhVHljd3YwVHVITm8yZXJDUlFXeEx4WlRueWNlNnhKQnA0S0tBRjVGQXoxejFPMk8wVTRobVEwZCtWdW03alAxaWhMdjFycjFFdWs1Tnd1LzRWNWpWMzNZeTRxNm5scnIrdFprNEhML1R2YmR1RVhnMUw5UFdaOHRMdUNsS0MybHR0OUV0VEM0SmFxVUZRSDhUTEFpZ0ZkNExwQXk2Z1RoRnA3ZndWcU5GU0NFUk91TVBEdWtMSWJBV2ZLM0JmU0FhMTdFanpZKzRQdWREN21tWG1kTGJ4SFBBc0twSmtvTnNzN3orNXd0WUY0dXVNR2pDUVJscUpqSUdZZnBIUjVrK3h3REU5eWlQcmpWaVFhd3FTS3VkMTdqUW5pRnVBZ0pTNXlWcjJjWCtScnI1UXdmOEFWQ1dQSThJMDF5U3RQRW9rRjBFRUloeEhuaWJOblllNW40WFphMWFaejJyRFpHRmxnRUJrUEpsSklSbWRHa1NaKzhrV0ppc0ZJaVJEVVErUkpSSWx4ZWV3bHBvQmlMbElQeUR2ZnllendnbzQvTGUxbFdSMVRiamE4RDczVXU4YVBObjNCRlhhWTk4NG5UQWorMVo2MndhOVRsRWxRUDN5SUM4Q1ZFV21PSjJJMnZjQzI2d1ZVZWtEQ2lSS0xSNktVVUJoNlNDSjkycGFwOGIrc2FQN3g0azR1MlEyY01RV2J4clp2MDJLbEFsd0doWG1kcnE4WFVLeGdXQ1FObWpPSUp0L2YzK2ZUdUF3N29NMkpXV1ppbUpCU09FSmxiUkR2alU1MmRNajc5WTlMSjV3emozMGQ1TVZsMlBCLzBPdHBGemkxd0wyeDJ1WFpwblU3bUU4NE1vUWFwcFZNKzJpWGJrRE9peldVQzJENGl3dFVpaEszNGRPdVN4RlpodnZVL0JCZ3B5QlZrcWNERHg5dmNaZXhOK2ZYcDU5ekxqdkNRU0dOY3BLYlJTOGNoRURJQXFhcHdBNWZuYzBiR3lHWk1URW1LcFpBZ2hNdGo2ZXJXOG9rc0U1SVYwV2ZFbk9SUnRpQ1dHajhSZURMaTdlWWxvaHN4YStNMmYzNzhDWitNN3lLUmVGV2dSS29uakUvK05VYlAwT1dFenRxUDhjTk5oSkJ6SXRaVFRicnJQMGJLNEQ4V01tcjU0Y2IvdGNoT2JwOHZ2YThMNVRWNzJ4Zi9oOWVDY0FzcEEreVNTa0VJaGRFcGViS1BLUVpWb0VKQWc0QU4xZUZHNXpLWEc1dDBTMFdqaEtDdUIzcko3L2RMNU5leXd2ZmJnSjJUdjBoTktTR0pMSlBPbEh2ak8zeDI4am1EY2x3WlFHc3N6dGRBSVlrSnVkamQ0VWJ2Q3Iyc1E1UklJcTN4VEZVUGpBVmJSNW1icFVDSDZ2bGhwL3l3eitwZ2xwcnd6VmswanpXbi9GU0xBOVZUSWZBMVNHM3hDa0ZtUFB4aWszZWpIOU85dE1XbC9ITiswZjhMUHBuYzRRUm5CNTFWdTUreUpEZ2VmY3BwZXNvYjhncHZiLzZRYTczdjBRazZSSm1nWVFYaGZPM0NuajIraHgzckl3bmdPcUttN2lzZTRodHROVmpYUTBnTFFrdVVVU2dVTGdtQm9jQ1Nrak9SQ1dPWk1mRU1ma3R3WEl6NWswOCs1WlBUZTVSb1lrS3V0bmQ0Zi90TnJyZHZFQ3JCb095elArbHo2L0EydHdmM0dERWxRWk5Ua3BDVFZ0YjdZekttaHpQMlI2ZmNzTHU4Mjd2R20rdmJLQlVRYVl1d21ua3U0Rysxemo5dkxKM1hYTkV2NTRFZXlnZlYwWXoyaCt3Zm5KQVViaFJpcWdBTCs0aktMS1dQbEJGQzFsYnE5ZDRFMW1oME9VV2JkUFFjVDJ5RkZWWlk0ZXZndVhyLzF3Unc2RHQxMlFvdkFJUUNMT2pTV1VGUDlweVZzUmVDMm5GRXNLaStYK0hMcUwxejYxekFqWUd6V2MwbXJ6VGhJSlc3andQLzJlVHpOc2FRWlJscG1sSVV4VXRGQUZ0cjBWcGpqTUU4Ums3Mk5BcGdLUVcrci9BOWdaTGlLMWVodXNpMGR2YW1wMk8zMERUTkJObzRCZThzYytSdlhrQldRbDQ2Ulp3eGkyVU9WWkcvN3JlV1ppandQQmNqUDVyQzNTUFk3RUlyY3U3bktCYTV3cDdxUUpjc29GL1pPY2EzaVhxOXAzREViOUozWk5uY252NFZoL1JjN2w4dnJQbzRXRVdidmFRUVZWQzF6bDNlMy9GOWwvdTNxT3F6K09yQkRMWDdRV20ra1c3YTRwYW5haVBURlg1RHJBamdGWjRMbEJkM2xOZEdxZ2hkVG5Fa2o4RGFnaklmWU1wcGJSdzR0MzV1QTFlakxoLzIzdVJIdmQvaGplQnR1bG1IZUdJSXBnVitiaGRxek5YdC8yVUlLQlVVZ1dSS3htRnl3R0UrWm94ck1UVUxmN0ltc0NWaVh1Kzl3VzU4a1hBbThJVkJSTlcyYW5mbXBmWDN1bXNvZFVaZUZCalRRQktpNkNLdGg3QjJTZDFUVS92TDVDK2N0VVN0cEcyaWZpL2N1akZPQVZ3d0l1Y1VyQ1pOajhtTEtXWFQ1YUVVVkg5V0FLVlliQklvRk15VW9HajVqTHhqUGo3OUdaOG1keG13SURnTXJ0N0Z3QnFDSzdMREcrRTdYQSsrVHlkdEU4MUtnZ3lYOTNkdTg4VkNQcjFzYzFwem44TE44UU1uUDZhVk5YbGo0ejNHTm1lMjl4SFRvazlCV2FtUFMwRGc0eEhpczZaYTNHaGU0TzMxcTF5TE4rbE9GRkZTT0pLMVVwemEwaUlUUzgrVGRNTUdwWUpFdHBsS3pTek11Ynk1eVkzd0lvZWl6NzNCRVhkT0R0azNBNFpNbVZaRXNGTUUrK1JvcHd2V0tWbHlueXk1ajFRTkVBcHI4K3AwVkpVRFZlSGowV21HckhWOTRoT0JwdzNLVXVXNzlNRjY1NGlmUnlpQWw5OHZmcno0RGx0RmZMdjNna3BkS0F6U3VvZlFCYmtSZElUUFpyTkpTNFVFRlFWMHhvWjhEb0VRbmlPQmhVSmJSNFRQeU9uYktYMDlabUpUZXFLSkwzR2pHdkVvc25xeFRmZGRkZkdOUUZEZ0Y1ckcyTElkQndUeE5vMHdJQkFTcFExeVZtdHJRWkl5MDJPbWd6L0ZXaGVwM2R2OEhZSmdBNFRFbXNMVkQ3OUxaKzBIQ01UZlJWaDh2L01QbnBVU1dIbnhoaCtzLzN1ZTd3STQ3QmtMYUVOWlRzalRmWXllNFJFU0VoRGlzUm0wZWZQNkxwZWJYYUtoeXplTFZrdDFvU2JzWHFRSmFSM1Jxa0dWbE1wUXRqejYvb3hmN3QzbDUvdTN1SjhmTW1aMlJnRU1Uclh0NDlFT1dyUlZDNVZJUktKUjFTWmRzTUQ1VHVsY3UxSGpVYS9oYkc3Zk9zdEpiWTd3ZGZzNzY3YXJFcENsY2UxWkx0aHViTkdNZXJTREM3UnNRTXNZUHAwZHNFL0JtRVdRVE4xV0ZxWmtuQjdTcDg5eGY4eUpPT1RkM2cvWWJsNkZJc0RtaGtDWDdtNVlkcngrNUhFdEIxY3NFNy9MSGMvNXBNSDFCcXQ4ODlwQ0toQ0ZyTzU5c0pYRFFrTE83ZkVobS9GdGVsZTJrTEhQRjZjRGJoMGZjSklQOGZCb0UzT3RzY3U3bTlmWlpaUEFRQjYxdWFLMnVCeXU4VmxyZzg4TzdySmZEQmd3WThLTUhFT0JZVUpLWGhhTUp3a0pLWEhzc1U1RVc2MFRLSW15MnFuQzYvYmhPekZlV1c0d0xjWmE1eHJTdGt3UFp3enlFUW41L001eWoxcTNmVzVMTWtTcEdGRXZyTmYza3hCWVcxS1dFNHhlRWNBcnJMRENDNFY2bHZEY29DUUVuaU9OMVBtdWNZVnZFWFZBcUlGMENLTzdsYTF4QlBIbVNxSDNPTlFCdHlxQXVBZnBPdmg3N200eTlseFE4VXVPcGVHTTlLQVpDK0pRb05SdmZoUFhCUEJzTmlQUDg4Y3FhVjgwYUszbkJQQWpqN3NPNkJaVWEwMFAvNTB4bHJJME9DY3JpeFJQcnhjUnVOdFlWTU4yYXgyNU81aENmMktaWmpCT0hQRnJiR1g5WEQzYmMxVlZDbWNqWFI5RDZFTTdGZ1RLYlhPL2I3bDlBRHM5d1dhM2NuUjQ3TG9EaTRNQ1I4b3AzejFXT1lDZlBXb1hJbE82TmowNWRibC9zWXRLOGlxaUZtdk1GY0R4UWdHOEdteThwS2phaDN6cVhFcUd0MTE5L2pwNXJLczJxalRPL2FBb3Z4RTluc0ZSR1RPK1dwak1Dby9BaWdCZTRabERTdDliMi9vcjE1VVhMUm9WQytEVWJXVXh4SlN6T1VVWTRnakpEU1J2TjIvd280Mi93bXZ5VFRyVEJ1RWtKMG9zZmthbCtxMzNzdXFFenNOS1IzNmFoaUFWQ1h1amZmYnpNUk1XanFFZVR2MTcwUTk1dlh1ZHk2M3JkR1dYUUJRb1pSRjFJS0hsYkY5ZmtSMFdLTEtjTENrd0prUVI0cGsyd3FnbFJhNnFpQ0NmeFFMK3NpVnF1ZlM2SHNnNmh0a2dzRWcwSlJtbjVQUVJGckp5UUs0VFNnR2xGVWdOb3M2RldZazlyUlFVbmlDTlBOSUlKdUdFTzhrdC9tTHdDMjRsSnd4WkVPR0tSYjdwYlFUdnRGN2pSdmdlblhTYktQVUlzaEpWVm9kZTVheWRWOWFRQmJkOWRzMGJUT1VLblJrYVJuSjE0em82OGptYUdZYjlUeWoxaURxN3JnVkNmQUk4TnZ3dWIxKzR6dlhHTHExWlFKeGJRaTJjd3RZNFZhVVFGazhZS0F5VUZwVVlsSUpBU0ZxemtMVjRoK3VYdGhpcGxEdU5BejRSRDdnN08ySy9ISENVRHpnMlF5YWtaSlNWSXRpanhGQlc5dENsVHFxbCtZcGduLy92REw2VmtVZ2prTmJsUEhia1Y1WFRkVzczVzA5L2xsYW16aWpnSGpXQVhDcklldkM1L0Z0aHdKWklXeEJJVFdqZGpNdkQ0bHVGajBKOWFZV2dvaGlFUk1nQXFXS1FQbG83USt3WkJYMDlaaUNISkVGQ1hzVEVLQlRuR2F4SERZeHFZc2RsaW5XNVVBdDhXeUptQnFFRkt1NmllamZ3c0FRbmlrOG1EempRZFJaTVFhSlRab08vUUFpRkVoN3Q5Ui9oaHhzTE8yaWRvMVNEZHU5RGpDMytyalZGNHZ1ZC8vSlprTUIrc0g0OUNMZnd2SWFiS0dPcGZkV0xZa2llM0tmTVR4RlkvTXFtZk4xcmM3bXp3ZFgxSGh1RUJJVkdsS0s2NTVjaUlWNG9XRmQvUkFteXhDaEQ0Z2xHUWNudDJURi8vTW1uZkRTN043ZE9kN216WGQxWm9yUEl5NEtzS0xEQ3VzUmRkZlAxMEVuM0k4cGcrVGFvKzdKbEk0UVUxNlk5cytHdG5lOUQ1SUxBV0tTMUxsZHpFYUtpUzhTeHBic1cwRk1mY3l1N3kxNSt5aUZtM20rVXVCRzM0NmNMVHNZZmM1SS9JRmNUYnJaK3dJYTh4SGE3QjRXSE45TUUwcHh0RXpuL3VxNGpjdW01Vm80dlJ4M0J3OHZSTFFDaEJUWVJpTHpXLzRxSzc3YWtsTndaSGFQc3I0bDdBZXZKTVhjT1R1bWJNUnBEV3daY2JXeHhzM2VSWGRXbE83T29wRVJJUWM5dmNxSGI0SEs4eG9XeXc1M3BJUWQyekg3UjV6Z2JNR1pHaWFZQXB1U2NNR0t2UE9JbzNXQXI2TktVUGtyVUhlWjNjSnhTbmJ0VmdwbldIQTBtbkNaalV2TEtnY0xwNng5V1JlYWJFQkloSHFacWNQMkVDNXBaeWFsV1dHR0ZGd3JMa1V2UFp3Y0NQT1VlY3NVcHZsaW9WVkk2ZzlteEkzL0RGaTQvVUh0QkFxOXlBcDlETlFxUW5yUE9EanNMMGtHL3Vtbzc0VUV6aENoNGRncmdORTNuQlBCdkFtdnRmRHUxSXJjbWFHdXlkbG14VzFzM1N5a0p3NUJtczBtcjFTSU13NmZhWDFtV2FLMmZpV3JacVlrTm5oUW9KZkI5U1ZGYXpGZGdLV3hONmlMUlNLYVpaWm9heG9rbHlaNzg5MURObWFvOHdZRUg2eTNvdFJ3Um5CY3VsL0IrSC9vVFI2Sjg1Y2doVlNzMGd5V0Y1Z3JQRHNLMTJhWjA5cy9KU1VVQTh4M29mRzNWSHRjNWdMM0Y1eXU4UktqVVc5YUNLVndndy9RQVprZFFKQlg1Vy8zdUs2TE9BWnlYMzRnbmM1MmRMSG4rdS9wdVlFVUFyL0RNNFlkYjcwYU42MzlmeWdabnJUSUVSdWVVK1NsR3AzTUJaWXl6ZnI3S0dtK0hiL0NhOXdiclNZZDRxb21tRmordFZFWGZ4Y1hVcDRVRTR3a0tIM1N6WU1ZeDk4b3YyQ3ZIY3pXWHdJbFcyOEJiRzYveC9kM2ZabDF1bzFJSVZFVkpQb2FiRTlJdHZLZVRqTWxwaHRZaGlqYVNDR0ZsRlFKVWswajFncjVsUWZqV1BzM0xGcWxMKzZoakJhUkV5NXhDOU1sSUFFbXBNa3BaVUJwTFVZRE1RWldPZ0ROU1VIcFFlSkQ2a0RkZ0VtWjhubnpFVDQvK2dFL1R2YmtOZGxIdEpnSTZ3QVp3TGVyeS91YjczSWh1MEpvb29zemlHUnpMR2JPUXFTOExtdUZzZjdrVTFRc1daUzJ4a01ocHdJNi96ZnZiYnpNeUpjbnBGMlRVa3dwRGdDSkEwUTFhWEYrN3pHNjBUbmdDUVdHUlJvSHh3U3dwcUlXbXptV3FwRUVaUXlDTVMwZHJKWVZXTkpXaUhWem00clVORG9zUmQ4Y0RQai9aNDdQUkhVNU1ueWs1RXpKbWxhVnBWajNLYW5IZWFiRkZwYXFUeU9yaW1Cekt4RmtnMmZyU2lwcllyeVBJbmtMdDlxVjhyOHVWQUJhMnFjc0VjRDFJTVVnTXl0cjVwZkJZV01DS2N6NjVGa2NtU0JXaVpJU1V2a3ZuZ2lFalowckd6TXRJL1pKY1dveW8yRzFUYitjcEpsVzE5YW4xNWtTNFowdGlheEJXb3FKMW9tMlBUaWVtOVNEbUY0ZDNVUFNyNDRhWnlVZ0hmODZKS1RFbXA3djVFN3hncXlLQlM3QVdwV0s2dlI4aFVYOWZDQlg0d2RvL0xQTCsvU2NmM01QaCtjMWViL092L2lTTUx5S0VONmRqaEhTNWY5UFpmV2FqajdIbERBOEk4R2dSY3EyencrdnJsMm5QV25nNStJYnEzbDhLQkhpaENPQmw4cmZBU2szdUN5YWg0WXRKbjc4NHZzMm55WDBPR0RCaVZnVkdhSFNsUExkVjN1eU1uTk8wejNGeXd0VldEeFBFbENYNDFmendES0ZiNDFIRlVEZUpkYk5ZcTM3ckFLZm5OWksyenM3ZU53S3Z0UGphNEplU0lONmwwVzZ6M242ZHk1T1ArRlgvei9sNGRwc0RxNWtDTXdRRmdnUkxqbVVLNU5tRTJZTS80TGE2ejd2YkgvREJqUit3WVhid2M0a29KYjYxbFpLZUpUSzRyaHRMZWFLL1pQWDhtRW4xY2pDU3NBZ2pJVkhJVE9ITjlmKzRZQlkwQlpJdkpvZk1mdlZUV3ZJVHlDUkdKM2hJTmh0ZFBuenpKbSsxZCtsTkZhM0VFSlFnaE1Cb1FXRWtUZFdsdS9zbWIzcVhPQ2luM0JxYzh1bmhGOXliM21mSWxLd3lNcDZSY1RBWnMrZFB1TEtwV2ZjRm50YW81YmJ4aGJvbm5oT0VYZlFIRW1Rc0dlY3pQdjdvUHJlSGg4ekk1K3I2MmdMNlVaMkZ0Y2FsRHBtUCtlckJnVnNjbE1KSENMV2F2Nnl3d2dvdkN1cU9ySjc4UEJjczhvYUtaMElhcmZBTUlhb0JqekdPS0pnZWdkZHdUSis0QkVITERSaFhCUEJaMktWNW5oZEEwSEJsNVRkY09wOTZBZnRWVWR6VmF3VkwrYnk5WjhEZm5TZUF2NjRDT01zeUJvTUJ4OGZIVENhVGVUN2hvaWdveTVJc3krYTVob3VpbUpQQjFsbzh6NlBUNlhEcDBpV3VYNy9PaFFzWG5tcWZlWjdQdC9GSVdDcWllVGs4OStFUUNEeGYwb2c5eWxJem5aVmsrWlBMUXk2cGY3V1ZhQUpLNjVPWG1uR1NrV1JmUFNBaHpXRTRnMkVDdmN3aWhhQW9vYlF3bkZxR1UwY3FSNDBsMTZqSHFvRHJnQW5mRWNBcVltNUR2OEt6aFRWUVpwVUNlQUJsd3B3WWZtWG5kZFZhY0IyUTR6ZGRYWnV2eTYzdzBtQ2V4enAzRnVhVGZSZWNWa3pCbGlEOHI5NnZWajh2UzBoeVMrcFVUYzhiaG9WTVlqV0FlZ1pZTGFDczhNd1JoQnZYd3ZnU1NrVmd6WHdzWTYzR2xETjBNY0ppNXpsWVkyQkxCZHhzWHVWYWVJMXUzaUpLSUV5MFUvNnVkQjVQZ01BcTBLRWc5MkdnUjl3djlqaklUeGxoS3NMUkxiZkh3SVpvY2ptK3dZWG1HOFN6R0tWTGwvdTNGdW8rZ2dTdSs1R2lNS1NGeFJBUWlpYUJIeVBuTEVpTmVrTjY2VkYvTm1kS3Z5VDBNamdleVhnbHBaaFNZSkhDa251V1Fsa0tBM205eGl3RTFwZllVRkdHZ3BtWGsvaFRobkxFRjdNSC9PemtwL3g4OUN2MmJNRUUxMnZBd25KOERYaW5jNUhmV3Y4QjErTjM2UlJ0b3RMZzIwb0pYZWMrcnBkemx2bUo1WEk2Lyt3WVZIeHRNSk9TVGlQa1p2Y3EvU1RoWkpTUWxCb05aSlFFS0R3a3NlZlRiVGRveWhCbDBrVkIxSmFvdHQ1eGxSTlJXRGN4TmhZaE5FSWFwRGFJVEtNa05PS1FYaFN4R2JYWXNSdGNpVFo1OC9JT2QvdjczTnMvNWtnUE9XRlMyVU5uWkJUa1ZhN0xvaUs5WktYOGRUU1l4UWlCRVlwU1NISWdGQllsUzBmc21HVTE3SEpoOElqM1Q0c2xCNEY2d0czUDJvWXVxNVVYRjJCcGtpWUVjc2tDMm1JcDBaUm9NbktPKzFQMi9Razcvam85ejhNYWw1UDRLeDJ6clNZRVZsUkRFNWNYT0xMYVdXZzNlL2hOaGI4VDRwc0cvc2xuS0h0VWtkYVNtWjR3Ry80Y2tFanAwZG44eTNoK0QwRkZBaVB3L0E3dHRSOWdFWDlQQ0Qvd3cvWC9vc2hPYjMrZFVsV3FzZEZzdi9WM292aXlPL3g1b0k0RXE4bVRQWkxwNTJCeUFueENmSnBFWEdpc2NiRzlUcHg2eU1TZ2JFM292ZWpxWHcyeXBGQ1dKSUpoYzhhdC9Ydjg0dVJ6OXV3Sll4Sm1aR1R6SUFpTFJHQndsc0lwT2ZkbmUzdzJ2TVhyRzEyMjVFVzhRaElhaThMTTcvbmxwZzA0Mjc3Vk1URDUwbU01Mys4M0JRMGlCZDlvcEJFbzZSTjRtelRpTHQxZWk4M1dCaGVMTC9qNCtCYTNodmM0UkRQRG8wQ2dzU1JvanRBazZaUStIek0rU2tqVWpIYzJQK1JTOXhwcUhHQXpRN0NrUG1aZVQrcXdqWFA1Qlo1WWI1WUtza29CSUEySVRLSnlINzh5Z1hlblp5Z3hLQ3hEbXpDWlpNVDA2UkRUbzBHUEhoZURIYTdIRjltaFE1d1lvZ0s4S20rdEJWUnVDSHhvTnB0cytRMDIxUm9iblEydXROYTRrK3p3NmVFK2U2TlR4a3pRYUU3S01VZjVnS3lUWWJ3V1pWN1ZDMUg1VGRqekZlTlZSYVdjbDBCRGtPWVorOE1qanRJK0dRVUZHbDNwZngrL2dHZFkyS3FmTHplSmxDRlMrczNuZFJZcnJMRENDbDhUejEwYUpPVjNRSUQwMHFLZUtGcVhEM2gwMzFtMEJrMm5haFZxd1RDdEZ0TWZBdUZ5Sm9kdGlEcU9mREc1STJKZU5aV2pCRjg1ZFdqNERGWmpseTJnc3l6N3lnUndudWNNaDBNZVBIakEvZnYzT1RvNmVpZ0JYSk8vTlFGY2Z5K0V3UGQ5T3AwT2s4bUVWcXZGNXVZbW52ZmtrOHZ6bktJb242Z0FmdHBURWdJQ1R4SjZIdFlZeXRLUzVVL21EWVFVU0Ntd0NJUlVDQm1CQ2pCbFRta0t6cXd0UENVc01NM2djT2dJNW03VDRrc0lmRUdwWVpZNk5YQ3JBZjU1WjduSFFTcG5tNjU4Vmhienp4ckN0VG1tZ0h6bXJIT0x4RGtTcU85Q3ptVzdsQU00Y3EvTnErdkc4TXFpN2pQTHpKRy9vM3VRRHFwazViOVptMUZxeUhLbkF2NEdZRm1ZMHEzd0RMQWlnRmQ0NWdqQzlTdFI0eEpTUlk1WXFISlQ2R0pFbmgyaXk4azhURHJDa1pLYlhzanI2Njl4SWJ4QWtCakNGUHlpSm45WGs2VEhRamlYNERKVzZGRHpZSEtYandjZmMxems1Q3hhU3c5b0M4R0ZlSjAxdFVPWXR3aTFKREFGY2xrNCtTanVUZ0RLdW4yaHNQZzBteTI2RzIwQzMxdEtBbERMMm1wWjNCSmIrakNyaVpyakUwNUlhS1RCU2sxQk1TZXZaMHFTU2tFcUpKNVVsQkVvQlRrRktVUEdka2kvSERQbWhQM2lBYjg4dWNQSDQ3dnNtUWtEbkdlRXJzb2d4cWwvTCtEeFFmdHR2ci94dTZ3bkYvQnpDS1ZGK25ZeGg2OTVpcnBjNnZuRDQvak5wV0x3TWJSS3laWnQ4MmIzS3YzcGpORlJSbUpMSkxtTFVrVml0Q0ZKWnVSK2hpK1djeW1mSTBmc1VuaHFMY01WWGpVNTFpaEtsRFhZbVVHbUlKVWdWakVYMmczZVh0dmtYcnpEcld5Zi9YVEFrZXh6WklZYzUyTk84ekZqWnN6SXF6ekJHb090ZEhXQ0VzMHdtOUxQeDJ6RlBRcnJrODQwc1RWSVcxM3JPZ2ZzZkhIaklkZjZxZkNvKzMxUkZ2VldseWVERmZWUXFjZk9CaHRJRlNCVkNOS3J3aEtjRWkybDRNSEpLWGZLSTk1NGZRZWlDRjFZUExRclYreGpGTXVQT0Q2ckhDRXVLdjF3YW1nWTJBNmJxT1pWZ29zeGtmVUpCd0YzOVNFU2dVUXdNd25wOEJmMHZRaXBZbHByUDhEemU5VXhXSXpKVWFwSlorMkhDQ24vRGdMQ2NQTy96TExqVzErbGRBRzhZTzE2by9VYVFiaTVWRloxbWVZVTJRbEZlb1EwQlFFQk1UNWRHbXlvRG10ZWswWWg4UXdJTFpjVTZpL2FoS2dLbEJBYXBLYVVsaUpXREtPTXo3TTlmajM5ak52NUhpZE1tSktSekExcTdkTHQ3dFNrS1FXSDJRa2ZEMjl4YmR5ZzJSUHNOcmJ3VFVCb3dhc2JocG9Jcm1GWXRCc2FGNFZTazcvZjJqQzJVbnZiS3JiRmFHU3VFVUlRUkJkWVc5OWkxM3ViTGZWbmRQWFB1TU9BdlRUanBNeElxdUNKZ29KSlJlSmxrME1Hbi80SjQ4VHlvMHNCVjl1WDZYZytwQ1YrWVJFMStTbVVVOG5QQ2VBYVg2WGUxT0VlQW1GQWxvS1FrSVpzNEJrMVB6dG5NNnp4cWdiY1ZGcHVEOFZ1dE1tTjVtWFdwaDBpSVlsS2c5SzFndC81SFRpci9SSXpOc2dKU0tXSXZCWVhOMXRjRmR0c3NNZkg4ZzUzc3JzY3BTZU03WVNCR3BGM0M3UVFsS2NRb0YwTzIrK1VjNG03NTdTd2FGOVFTazBTcHN6U3JMSldOMVhQOG5YTHhBSVNxUUtFOEo3T1czQ0ZGVlpZNFp2Qk4ySUJyV29MNlBsQStIbnRiWVd2aFZvSlhHWXV6NTRYUXJUbWxGUlJsMFdTMGRXRk80TmFHYTBDaU5kZDd1UnM2bGFaN2JuZzhaY1pTd3BnNWJrY3dNM1lLZnYxYjZCdHN0Yk9DZUEwVFNtS0F0LzNuK3B2dGRZTUJnTSsvdmhqZnZhem4zSDM3bDJTSkpsYk8xdHI1MWJQNSsyZmE0dG9JUVJhYTRiRElaN25jZlhxVmE1ZnYwNnIxWHJpY2FkcFNwNW42TWNVZ0sxKys4UnljRWVENzB1aVFDS3NZWmFVVDd6bGhIQ2tyK2Q1Q0NsUnlrUDVFVUw1VlJqODE2OTdXUUY3cDViaEJMcE42RFpncXd0cElaZ2tsdjRFMXRyZ0tiRVFsejcyVkt1Z2MrazdjazQ4OFE5V2VGck1WWk9sQytKSlRpdkZaRTJBdmdKdDBDTlJyOVVxVjdkVTRGSVlDQW1VcXlyMjBtQnBjR2cwcENNWVBYQUVjRGFwbGxLK1l1N2ZlclBWRW0rcElTMitNUUo0V1FHOElvR2ZBVllFOEFyUEhFRzRmVDF1WGtXcUNHTTBRa3JBa0NYM1NjWWZZL1FVeGNMK3VRTnNxU2FYNG10c3FpMml6T0JuQmxtd21pQTlDUUx3d1BnQ0hRanlLT2VnZjR2UEJ6L25WR2Z6ZEpMVnoyZ3BuNjNXT3V0Qmo2ajBDVFRPN3ZoUkJIQTlwalFncEVVRUZ1dTVuQ2dDajk1V3pQYVZGc0ZVWWNhMnVsNjE0aGZPV0QwL1RCa0g4K1VTS3dSR2dCR09kc214cERncWVTZ3NBd0VqQ1NhMEJFR0I4Rk1tNW9UN3A3L2k3dWtuN0RQa1dFdzROQ1AyODVSVFV6Q0d1UVYybmZlM0JWeEE4b1ozaVd2eUJqMjlUY3NHUkRMSDkrMGl5SGhaVU1xNWNubms2NnAzckFiakVvdWZXeHBUeWJYT0RzbWxrc1BwaVBFMDRaUXhPUnFGSkVsVDd0ODk1bUozalZpMkVVcUNyaTlHUFZzVTUvWlh2N2RWUjE0UmNkWWdqQ1lRQmw4YkdoN29xYUFvQTBLN3hlWnVoeUVabzJqQ3NSNXk1NmpQNTBkN1BFZ1BHRElsSVdkR1NVNkJ3YUNxL0xEM0QvZjVsZnFjN3MwMndkbzZwWEZUb2xnWVBKMDdwYVdwdE9hMUpmQnp3THhVRE5TNWxCZVVYZjNLZlM2c1JVaUZsQkhLYXlKVlRJbXNpRDFEUnNrSkF3NDVJdXVrR05tbEhEbjFucERWK1R5dGVtOStYU29sY0JYc29DaVJ1VVphOEVTSTM3aEE0MnBBMjJ2UU9QRHhFZmhJUEFRVGs1Q2MvaG1uMVhaYWF4K2l2Q1pDeUVxbDYreWdPNzBQa1RMNE8wcEd6U2plL1MvU1pPK1hUMXQrU2tXdDN1WmYrVjRZN2lCVmpDNm5yc1FxYXpwZHppaXlFM1RSeDdPR2tJZzJFVnQwMkJGcnJORWlOaEtsV1Z4bjg2SVJ3Qlg1S3cxSWpaV2ExTFBNR3ZDZ0hQSFRMejdqNS8wN0hETm1URUl5VnllNk9nMVU2bDlCZ1NFaHh3UHV6Zzc0ZzA4MTRtcUMyUHdlTXJwSVI0Y0lMS3F1QU12QklqbXVBYXZqRnVzQThtK3pXNnN0N1VNZ3NrZ1BRZ2srZ3JKUVJGT2Z3QThJV3o5azU2MGQ3clBIengvYzRhTzlBMDdJbUZKUTAzbGpkT1ZtblZNZWZFRnBXb2liTVpkN1cwUjlRUU8zYmFXcFZORG55dWczcURQQ1dLUVZOS0tJVHJOSk1QVmRxbkNjQ3JodU54VUdnY0RIbzBQTXRkNE9ON2N1c0s1RGd0VGdhWWt3dmlPQUt4SVpvY0ZJcERHRVFoTVlTMmdoRzBxRTM4RjJBdnhJb1ljekJnZER4dm1Fc2M0NFNUTkd2cVlyd1VxTE1JdmplUHF3L3BjVmxkcGV1alFDaFlHa05DVFdwUnFvcmRYTkU5Vy9qOXVEYTZlazlKRnlSUUN2c01JS0x3enFRWkRQYzFRQksrVnNZMFBmdlY3aEJVUk5JS0NkZWpYdHcvaStVd0FyRDRJcUgvREtDdm9zNWdTd0QvRWFORGFkWFdVMnFMNTc5U3E4RUM0SGNEdDI5L1RzS2ZQTFBnekdHSXFpSUUzVE9RSDh0RWpUbEtPakl6Nzc3RE0rK2VRVFRrOVBpZU9ZWnJNNVYrUktLWkZTNG5rZVNpbVVVdmkrajVTU29pZ1lqOGNjSHg4em04MFlEb2NNaDBPU0pIa2lBU3lFd0JoRFdaWVlVejZUZFQ4cHdmY2tVUUE2bEhqcTZlWWFRZ2lVNTZHVU56OVBheDN4TEg2RDhidTFUdWs3UzJGU1BiU0I5YlpsbEFpUzNGbXFmaVVJNWU2Vm1nQmVyWmMrSTBqWFBwdTBzbjQrWGVUK2ZWVnM2QjhISVYyOXF0WGw4a1ZiMzFuaGlaZzdKbXFuK0ozc3cvUVE4ckVqaE5YWHNINCtoem9IOEZkSXJmNmJvTTRCL0J2MGtDc3NZMFVBci9CUVNPbDdZREhtcXcxSnBQUzlTemYrbDV1KzMwTUtEMDJCRUQ0V1NKTjdUTVlmemZOSytqZ0NlQ2ZvY3JuNU9qMjdRNVFGK0htS1N1MHF4dU9KY0kyMzlhRDBKWWtzT2RWOTl2TjlqdldNQ1k1LzBMakZmUTlMUklPVzNLQmhXL2lsd05lV3VkdnRtVWI4eTZTWEZVRGdaR08yV3V1SU80cldwc1N2ZDFUYldva25LQ2UvUkFZTHJCR1VCaXdhSXhZRXNBVk9qZWJVR3JiREVzT1l5ZWd6K3NQYjlNMEJENGIzZUpEc2NVak9LVEFBcGl6RWRqWDM0QU5OWUIyNElYdDh1UHNqcm5mZkpDb1VvZEVFMGk3NDZ1WHllRnpuWnBjWDk1Y3RtMnY3R0lNc05TR0diaDV3T2Rya3ZZdlhHQjJPS1lZRkkxSkFrQlE1eCtNK3czREtick9EVWFCRXpTSTlhZElybHNxNjhwcTFDb1JCb0JHRlJoUUdNYlAwUWtVM2FKS3FKcW5mWWVSdGNHbDl4aHZydSt5bFI5emVQK0pnMUdkZ3h3eVlNaVZGWS9HUkRQTUpIeDE4anZBRW8vV3JYQWszc0VFTFVrR1lHcnl5UklwS0NTenFya1Urdmg1OEhTeng0TWFBc1RXaDhPZ0xKYVdIVWsyVWFvSlFhRnRXRnRBbE0yYU14SlN4S1pnSmFBaExLT3BBaHEvVFJkWUhXT1VFTms2eDZOc1NnVUVaRHovWXBISFZwOTMwQ2U1SlpINGZXZDFUWXowaDZmODUvV3JmN2ZVZjRubHR3TTd0b0pWcTBlNitENWEvYlV4WitFSHYvMVRrZzZmS0NSeUVtMjgwV2pmK1E4OXZuWjB3Q29FMUdsMU9LUE5UYkRtdFhCcDgyalRZa0QzV2JJZEc0Uk1hVWJVYmloY3Y3MitOS3ZldjBPakFra2FXdmJ6UHIwNXY4K3ZqZXp6UWZjYWtKQlU1VldMUEpCYXA3ejVYVHdRZWdsT3J1VFZOaWU1UGlhd20zbWdScWd1SWtTYXl1Q3kwTmRHYnd6d0NaOWtCLzl2QXN2dHlVRDJXeExoQ2dETFdxWUZMZzZja1ViVEJXcVBOdHRxbGQvRVNHK291dno2OHo3MzhoSDRWS0ZKU2tnTkRGTG9jWTQ0K3d3UWg3MisreWJWNEd4bkhpTVRnelF5K0tKZElZS2ZrZE8zRCtmUUJUNGJBZFRIS0N1TFFwOWtJOFJPRk1MVTkvSUppbEFnQ0ZHMWl0dWx4T1Y3blFxTk5hNkx3UzQzUVhrWCsra3R0bFhSMXU2cERncExBYW93dWlIeWZiaFN4MFd6UktpS0VsR2lnbjA3NDVMTzdyRzNFdElKMTBLS2FxaXlUd0s4aXhPSkpXSkR1MUdjenpTakptWlhGWEZ2LzFiUy9qLzZsZlNFZEIxWllZWVh2TUphTnJaNWI0K1JKaUFOb0JNNCtGbmkxNDRwZVpzZ3FaVTgrZFZiUTBxOUk0TkRaYWxJRmlxNklHNGQ1YnRNQXdwNGpnSU0yQ0I4b3FtSFVLelNXcWs0MzhxSFhGSFJpbDAveDZ5Nm8xK3JjTkUyWlRxZk1aak82M2U1VC9lMTBPdVh3OEpDRGd3Tm1zeG1OUm9QTGx5K3p2YjA5VnhIN3ZvL25lVVJSUkJBRVJGRkVvOUhBOTMxR294R2ZmdnJwUEVkd1daYU14Mk9Hd3lHOVh1K3hTdVFzejVsTUppVEpGSzBMRjRENUcwQktnZThwd2xBUkJwWXM0Nm56cFh1ZVJ4aEdoR0dJVW01eVZCWWxaZm1FL01SZkFXbnV5Titpc0RRaXdXc1hMRWt1TUhhK0hQWVkxQXJOU3YzcmhZNm9FM0psMGZ1c1VEczAxTUU3c3lNb0pyaTF6YStobW54Wk1HOS9QWmQvUFdnOEU2SndoVzhCZFZyR2JPcUN6MFozSEJGc3phSitmKzF0dTZmYUF2b2Jnc0V0Njg5WXNVUFBCQ3NDZUlVdlFVclBFOEtMRUFLbEdwNFF3bWsyVEQ1NUVpR3N2UFlscFZyL0szRW1BTnBaYWFTcHl5dHBUVDVQclJvRDE3b1hlR1B6ZTdUS0RtS3FIWmxZc3ByVVBnMGthQS9LU0RJUkUrNk5iL01nT1dITVdRTFVSeUt3QkxKRnk3OUFMTHQ0eGlMdGtxbU5QYmZodVpMUkxXRGJXa1pjaTZRd1NLV1Jua1lLem0xbjZZUHpaTy95NXhYTDRzUnlnbHdLakJSWTM1SksxOUpyYXpuTXg5eVozU1VJZlFKeHpQSEpuL1BnNUdQNkZBeUJJVEFHSmpqeU4yR1JZbE95Q0Rib0F0ZjhGdS8zM3VldG5SK3k0MTBrR0pZRXhpazBPZjlZeHBmcVkzMHl0UVh1T1h2VFdnMXRTbnhUb01jbDNXYkFtOXNYT2N4T09CaWVrbE9pc1dRVTlQV0lvWnFTaDVwQ2V3aGhrSFVPeWFjUkZNd1ZkVFVKYlJ5eGdVWUlqU2MxWkM2SnNwVGdUd1dCak9oR01UYzMxeG5ZWFQ0enh6endqemt4QXc2eUlVTTVaYUpuakdkVFNqVEg2WUEvdS9VclJvTVJvNTFyaklOdGRyMHU2KzJJUmlyd000TXFsK3kvalZjUlBNOUNFRkZkRk9IcW90WlFsQlp0YmFYYlhKQUxaeWpKcWx3OHY0TWZySk5JRDZNTFNnd0ZtaHpOT012WU94aHlzYlZCNFBsT2ZWMDhubFIrUEdvU3VLcDlSaUlzK0hrSnBhV1RRN3k5VHJPcHNMbkJQd200bFIwZ0tpWHR0Snd4Ty8xamhGQkk2ZFBxZllEeVd0aktidHVZRENGQ21wMTMwQ2I3RDR6TkVqL28vb01pSHg0ODZjaUNlUGVkdUhtanN1aGZqaENYR0pPU3AvdVUyUkhTbFBnb1FnSjZYb3NyMnp0c3RUb0VPYWpDSXM3a2NIMlJVQVdnaUJKRWlSYUdMSkFrTGMwWHgvdjhZdjlUOXZRcEV6S21wQldOcWVmSzMzTmJRbU1wS0VrQWhXQ0E0TlBSSFJyYXN1NXZFclVpdW40TFZWcUMwaUJTNnhxZ212ejlOckRFWStMaDFMNyswa09lKzUwQnFyN0FGeGJQV3J3RXZOekhEelpwTmRmWXZMak5wbDNuMW1pUHU4VUo5OUpqaGt3b0srVjBBdHdyaDJTM2Y4bHdtak85Y0pNYmpVMjJ3aFp0NlVOaVVZWFQzN3UycWJhRTVpbUNST3lYM2xaY0k0RW5DQUtCSjJXVlUzdlJ0VWdrQVI0Qkh1dXl6UnZybDduYTNLSlpLSUxTSUsyb2ptTTVoM1VkdkZUbFhyY3V3RVpnOGFYRkZ4WnBOZGtzWlRySktJekw2ZDdQUm54Njd3dXUrbXZjdkxTTzBRcVJ1eHp0Q1Azc0EyRmVPTlFMVTg0QmZ6ckxHSTZteklxc0lvQy9pdjYzRHFoNjJPY1dhd3FzMWF0SjRBb3JyUENpb0I3b1B0Y0VnVkpDNEx2SEtnL3dDdzRocTZBMzdaUmtrejFuQWUwMUhMbXA2dkhQcWl0eldDSzN2QWlDRm9RZFI1cWJmT2szcjhoWXFvbzRqUUpuQzl4cHdNbjQ2L040UWdpVVVrZ3B5Zk9jMld5R01RYjVGQTJGdFpZa1NVaVNCTS96Mk5yYTR0MTMzK1hHalJ0ekZiRG5PVlZzRUFUejUwYWpnWlNTNCtOanlyS2M1dzFXU3BHbUthUFJpTlBUVTRJZ29DeEx5ckk4WXlHdHRXWXluZkhGRjE4dzZCOWpkSUtTOW9tQzFzZHpzUUxmVjRTQndsTzZsa284VlJuNmZrQzczYWJkYmlPbEpNc3l4dU14eGp3N0FoaWdLT0YwQWc5T0xZZER3U1J4aElybEtia1pJUnhScDN6bTZhcFdlRWFvR2E3Y1dVQ25BeWpTNnF0WHVkT3QybFpaNWF3UG11NzFFd1FXSzd4QW1EY2VGblFPU1IvR0Q1d0N1RXhjbS9Fc0xxV3RnbGkrdVppVFdnSDh6VkhPcnpoV0JQQUtYNFp3NUoxUzhkZ1BOdkdDSGdBNkgvNk5NTDZ3cDR2Sm9UYlp3SnJpUzdPV0lOeTg2ZmxkUU16dCtxelZsT1dJUEQyZ3lQdHo4dGNIR3NEbDloYXZyVjJsZlJJaE00MHE3U29pOW1rZzNQcDVIZ3FLSm96RmtMdW5uM0IvdHM4STV2YkpwaklvQmZDOEZxM3VGbkdqNDlqVjJuSnByblk5cDJRVmdOQllvVjErWGdGV1dBUWFTWWswR2dxbm5QM1NtRlVzUGM1L1pxZzJCcVdGWEFobUVtWUNoSExXdkROcG1lSUltTExvOC9IcFR4bU1QaUpnaU00SGxYclQ5UWdGa0NLWUFRbDJ6cjI0TXhIRVdMckFMaEVmYkgyUDcrMytMcHR5bDJnR2diWW9iUmRqbkVjcDllYWZQWXo0WFU0WVhKTi8xV0RLT0N0UXY5UzB0V0pIZExtc3R0aGxuWlNDTVJtcEtUaWFEamsyUTZaUlNxdG9vb1JGU2pOWEVqc3k4VWt6QTdGMG5MSjZYZGxEVysyMmc4YVhGazlvSW1reENQU3hJbEpOR28yQUc4MHR4aUxsT0pzd2JhUWM1cWQ4ZE90ekRxZW5WZDdjbk52OWZjYkpqQWZpbUhldVhPR05DN3YwUkpQSVFDUXNvUzZxV2F3Qi9LWDY5WnNNbnQwRkVoWEJrQ1NXYWFJcFNrY3FMQWk4cytSQlRUZjR3VHBodklzY0JwUTZRVmNFY0labWtJMjV1L2VBYXhmVzJPcHNPMHZqMHVWVmRsWnRYOU42ekZZS0FGRkgrZ3Q4VmFJd0ZIMjRFTGY1OGNVMzZiUjd0QTgrUXc1QmFLZHZHK2taMDVNL0JHRVIwcWZWZmQ5RndvdEtYWTVCcVpodTcwT0VFSDhYYTdVZjlQN2g0NVRBU2dYUnhvVy85VVlVWDBUS1lDbi9yMEFLajBKUG1ZMC9JVXNlb0pDRWhNUUViRFU3dkhIekloZTlIdjQramh3M1ZiazhKNnZ2cjRlYS9IWFd6MGhOcVN4VEg0NzhoQytLWXo2YjdYUEVrRW1sL2kwcWE5cUhFVk91T2JDVVdBUWxNd1FEREFMRHJlazkxai83QTZMZG1EZmEzeU1RSVRLMytCbVEycmtML2plT1piVnZiZlZjazc0UGEwSWU0blFnckNXdzRHdExxQ1VONnhONW0zUjNZMTYvZUpWUGgzdjg2WjFmY3lmZFowSk9Ra2FKWVViSkFTUDA2V2VNWm1QMldydThjK0U2MXpxN3RJVWltbG5udG1DTWF4OU1GU1JDUmNBK1VVMWUzZHRXSUxGSUFaNFUrSjdFRTdMS1dTNHJOVDE0U0VJOG1nVHN0alo0LytaclhBdTNDVTlCWlJaaGxMTjlQbU5odnJSL1F6WGhyMGhpWS9FOVVKRmhNaHB6ZERSZ1dtVGthS2FrREJnekZnbVpieWs4a05JZ2JFMTR2MElMbDJkd0xtcXFhcC9UUEdPYVRVaE5Oci9IbnBZQWx0SkR5c0RaMHMrMzdad1VyTlVZUGNPWWJQU2NUMnlGRlZaWTRZV0NsQUt2ZXNqbDVuR0ZGeEJML2IwdEhaRXd1cnV3MW14czhKUUpQNzk3RU1LUndQR2FLeWRUUUpsV0NxWlhZQ3kxZE4vR2dXQ2pJMWhyQ2U2ZDJLKzlxQzZFUUVxSk1ZYnhlTXpoNFNIdGRwdE9wME1ZaG5NcjU0ZGhXVFdzdFNZTVE5YlgxN2wwNlJMZGJuZSs3WnBNcnNuUTVmZFN5cmtsZEo3bkRBWUQ3dDI3Tjg4bFBKdk5tRTZuYzR0cWwvYzNweWhLaHNOVEhqeTRUVmxPOFgyTFVvS3lmTXc5OFpqTEgvaUtiaWRrZlMxQ21vTHhPSDJxOHBOUzBtNjN1WERoQWhzYkcxaHI2ZmY3WkZtR0VPS1pFc0ExQmhONGNHSzVmMklaem1DckoxQ1BiQktxZWkra0kzS2t0Mm8vbmlWRXZYNW1RUmZPOWprZFFUNXg3K2U1bGw5UjJHb2hWd1hPZVNGb3VkZDJOY2g0YVZEWFlaMDc2L0xhK2prYnV6NzBXZFJoQzZXMmxNWlNmbk5aTERSVVMveUx4SXdyL0FaWUVjQXJmQWxHRjZWVVllbjVQZHE5RDJpMDMwREtFRjBNLzc5WmRrZzZ2VXN5L2Z5SFNvVWZhWjNOUjFaS1JhM3UrbS9kOVAwZWk4VkFnVFVGUlhaTWtmZkJtcmtpTXdRYUNOcTZRME92RVdnUFdaYklsZnIzS1NCQVFSa0lza0NRUlJramZjRGQ0bk1lbURGakZnSzBtcTdWS0RRZWhYWEVseFUrOXN6QWNablFyRW5ObWlEU1MzdTJTRW9VT2N3TVpxU2dFSFhhMjdNRDh5OFJEbUllT2FTMXdBaUI5aFM1TDhrOFRlTE5tSm1FL1d6TVFHdlNhcy9hNWd5TFE3eEMwY05uczNtZFR1Y0NLb29RRFkrQnpmbW9mOEN2K3ZjWXBjTktlQ2Z3a0VSQUE4T204SGlqYzVFMzE5N2xZblNEeGpURVR3cDhZOC9tUDE2dWUyY1c3ZVc1UjYzMlhXWldsc3RUVk9TWUFtTlFHTUxNMHBJK056Y3VNMlRHNUg1S21oOWgwSXowak5OaXdwQ1Vqb3lKbE1DM3VsSmdmeDBzRVJvMXNXK3RJeldOUVFpSnNBYVpHVVNxaVJYRVlZQUpRMUxaNG9Mc2tvYUdRYnpGNW8wT254ODlZTy80bUZNOUpqTTVCN01URWxMU2c0U2htWEU5dk15bFJwYzE2U0dtRmkvVEN4clcySzlKb3A2TEhoQmlQb21kakZJR3d5bDVYbEFIbkN6K1p2Rnd2S3ZFQzNxRTBRNUNCa3ZFbmxNQVQwM0NhVEpnWE00b1BJRldvUGpOY3Y2Y09XNEw4KzdXQ0NRbDNrVFRMT0JTcTB1MEdlTjVpcklzMENOYjNiT1drUjR4T2YwcFNKZnVzdG43SGxKRVFGSGxCQllvcjAybiszMk1LZitlTlVYdWVZMy9jMW5PQmc4OUVobTBQTC96SDNoK0J5RThsazJQaGZEUTVaVHA2Q1B5ZEo4R2lvaVFOakVicHN1R2JOTVNBYjdKRjdsLzdjUHEvYmNJd1VMOVc1Ry91cXZvQjFOK3NmOFp2enk5elJGalJxUWs1SThsZnhkM2ovdkdCUXpBRElzSDdGSHcwZlJUMW9kYjlNSXRmSE1KS1R5VTBNaDV1L0VObGNteUFZR1BzM2hlSm9LWE9mcEhIZEx5NThhcFlJVXcrTVlpTlhpK3BOSHNzT2EzNmE0M1dZOGpQaHZ0OE1YUk1YY25oNXd5SWNjcDY0L01rR1NXTUVvbm5Ob1pwOFdNTjdjdXNOMXVZU1lLazFqOFFxUHE1UFBHWjY2NGZab2dseVdscnhJQ1R3aFVSUkRXL3p3a0hvb0luNTNHT3RmWExuRWgyS1JkaHZoRmh0RG4xYitQM3RlaVhGd01obG92U1ljekJ2bUVwTXFJTExETUtPZ25VNDRIRTFxNlE2QmNBTkFpdDhBcmpIcnhnR3JFNEpVVVhrWXBOYVcyWjdyWUowRUlEeUdETHk5WUNvRzFKYnFjb0hXNklvQlhXR0dGRnczUHRiRVhBanpsSHEveVd2UXJoVm8xcG5PWUhqa0w2S0FGZnVTc051c0x1UXA4cjJEY25GWFd1WUMzWE83Q1l1YUNCdFdMRkhUNkc2QW1nRU5ZYXprVmNPRDlabm1Bc3l6ajlQU1UrL2Z2MCsxMnliS01ack5KRkVWekJXOU4ydGFrWnA3bjNMbHpoN3QzNzNKNmVzcHNObU15bWREdjl6aytQaWJQYzZ5MWM4VnVXWllVUllIV2VtNDdQUndPdVhmdkh2MStuOUZvTkxlQlR0T1VUcWNEUUpJa2pFWWpraVJoT3AweUhvOUowd1FsQlZKcDB0a3B1a3hRVDNEWkZjS04rNjJ3RDcxbGdrQnk1WEtITjEvdk1CNU9PRG1aUGxYWkthVllYMS9ueG8wYnJLK3ZNNWxNS0lxQ0lBaWVTa1g5ZFpEbWNQOEVQdCszSE44UTNMeUltN005emhSQXFzcjYyZWVGbVh1L0VxakswcFRPdGo4YlZXMU84UjFwbTZ0MUMxVXBnUDJtSXd6bjM2M3c0cU5hdDg4bk1ONkQwVDBYZUdaYytyaG5BZ041NlI3bW02RmlMVTduVlJ0OXJnamdaNEFWQWJ6Q1ErRjVyWjI0ZFlQTzJnOXBkZDlEcWhocmNzcDh3R3g2aTlIcEgvL0plUEN6bjBqcC82bXBsTUJTaGMwd3V2Q2YrSlZpMktuVUZNWWs1T2tCWlRHWTAyWWUwQlNDVGRVakxucm9VWURNQlo3K0ZwVlRMeE1rNkFDS1NKRkZtaU45ajgrbVArZWVQdUFVelF6bmsrQ2FmSUZCVUtLWUZDVUhnMU1HY3NLV2l0RktvRXBiTGFkN1M0OTZVR2tyOVZLOVl3dVVTRElVQ1RhcENHQXRRTm9GQWJ3c3BoSmdLL3RMZzBSYlFTa2xWZ2x5VVRBdFI4ektHV003NEREZlkzODI1RmZKZlU3elpKNCswd2ZXbzNWdVJwZlo4WGJZYXIzRyt0bzF3blpNdUtiWUsvYzRNZitLVDBZSDg5MHFaSlg3VWJFbEZLL0YyN3kvL1gydVJ0ZHB6anppWEQrZS9LMExlazd1S2g1TytyTDAvREFheVNrbGhkVjRlVUVJWEwyd1Nkb3F1RDg1Wm5nNllhb3pjZ29PSmdQdUQvcHNOVnJRQ0xFVGl6QTFDU3gvc3pIWVhGMVhFL3ZlWEJXc1JFWEdwQmFUYWFRRVQwcnlSTkpwckxHNTJlS2l2OGFuNGo1M3gwY2NaME9tWlVKS3htZjkrL1JIVTRZYkdkT3RYUzdGWFRhQ0ZoMFVVV0dRUldVSmJhcnkvTXBXcU9kK0w5M0VienFlTWpnZGtCZkYwaVYwUVNkQytrZ1pWdXJkRWlFOHduQ0hLTDZNVkRGUUU4Q0duSUlaT1dOU3hpWWowU1U1QVpFRVlaWXJ4bTh5ZUtvWGVMeGFSbytTSUhPTkhSbTIxa0xlNmU2U2JlY1VaWW1lTFN4VEo4V0U4ZkcvUWdpRlVBR045anNvRldEMXdnNWFxZ2FkdFI5Z2RmcjN0YzRtVWtYL2xkSHA1UHhSS0JWM1BhL2pjaUdqV0dUSUJtTUx5dnlFZkhZZnF5ZDRkSWdKMlFuWDJHMXVFQTU5cERSNFJpRG1MZm1URkp2ZkpHcjV2Z1pSWXFVaDgyRWFsVHpJai9qWjNZLzVkSHlYSVFrcEJka2pySi9yTzhTZG1WMEtKYkR6VVdpQ3l6VituNFJmSjUrd01kNmgwMWluMFZ3bkt6V2hMNUE1ejNmT3RHeldFTEN3ZDY3dE5aYWJwTWM2R3RUdnp3VzcxRUVqQXBRRlpRMUNhNnlFeTYwV1d4ZmU0R3B2bTQvbEFSK3JIbmZ6UTQ3eVBrTTlvVUNUa1BQQW5ESTRTamlkRFpsRkk2NDFkdW1aRHR0eG0wNm9DRktES2twRUhmUlZxZVFYSi9qb2szZUJTQ0FOU09QVXZ3cUJSTXlmZlJReEFSZmlkUzQxTndsSEhrSnJmQ01RMUJiVVQwTTR1d0t6MW1JOWdXZ2JkTE1nSnlPcjZwTEZrSkJ4T2h0elBCcXlFelZveTJCUjBLTHFIMStZKytWNXdKMnJFV0FpaTIwWXlxRkdGMTh0LzY4UVBrcEZ1RENjNWI4U2xhUE1ES3ZUNGJNKytoVldXR0dGRnhtZWhOQ0hNSEN2Z1pVSytFVkh6V2FaMGlseHBvZHVnZDBMb0xuakxJN240L0hWaFp3cnpyeUtBRzV1d2ZRQXhMSDdyblpWZXRsUlhlcEdDSnRkd1hwSEVQcGYvL3ByclRrOVBlWFdyVnZFY1V4UkZIeisrZWRBbmRzMkpBZ0NsRklJSVRER1VCUUZzOW1NNCtOakRnNE9PRDQrUm11TlVvcG1zOGxvTkNJTVE0cWlvQ2dLOGp5ZjJ6aWJhdlhmR0VPV1pmVDdmZmIyOXRqZjMyYzhIdlBnd1FNZVBIakE1dVlteldZVGErMWM5VHVkVGprNU9XVTBHdUFwVFNPV1lGT3lOTVdZZWVqMjJlS3E1aWhTQ254ZmdJUWkveklYc0xQZDVNUHY3ZkM5ZDlhNWMvdUl1M2NIU0NtZXlPRkpLZG5jM09UR2pSdTBXaTN1M2JzM3Q5UVdTOEhuenhKNUNmZU9MWjgrZ0lPK1JkZnhEVi9hMVZLOWw3NExIUEZpNXJrK3Z4TUU1WE5HZlgzTDNKRm15U2tVMDBXNXZ3Sk56cU5ScmZVSzZRaGd2N1ZFQUsvcTF3dVA1U0N5TW9YWmljdjdPN3J2Z3Fld1MyNEJYM2NmMUJRQXMyeVJ5L3diUW81YmR1dXp5Z0g4VExBaWdGZjRFand2YmpVNjcveWxkdmNER3UyYkJPRW1vbHFJOC8wZW50OUJTaCtqOHovVTVld21jQXRBeXFnYlJqdDRRYTl5MGJBSXFUQTZJMHYyS1BQK0dkMWtXL2xjN0Y1aUxkaENaUXBaV0dRbENIbzVJUlpQWndqVFo3eDl6NUcvV1NUSW1wSzBtZkxaNkNQK2RQOFB1VjlNbUxHd2YzYjBqcTN5V01Lb3pOa2I5emx1anJqYzNTQTNDbFU0RzAzSDFDcTNBRzhySW9YQ2tTbkM0alNzQm1OellJcGtpaXhLYk9GSVhTTXR0c3FWdURoa1FXbWhSS0F0bEZnS0FWcm15Rmd6MHlmczl6L25KTG5OS1h2YzU1QUhOdVcrS1JtWHMvbTZoZ2RjM2J6TWIxMzhOMWdycnVEbExYelRSS2VDMlhEQ3Zla3hkNDgrWTVTT0VJQ1BJc0NqaWNjYUVhK0gyM3gvL1QzZWJ2K0FYYkZMTXdXLzBJN2dPMS9uNW92ME5TbitNTkwzSzBTRDJzb3ExM2dJREpFMmlBbHNCbTNlM0xqTW9CangrV0FmamVGQi81RFBaSWZYMzE1bk80Z3BaaG9mZzVCNm9icjhXaDM0MHQvWTZwaEUvYmwxNTJjdEdJTkVFd2lEcnd5eHNPZ1pORXhBNUcyeGZybkoxZlFDZDQrT3VITjh3S0UrWmtyS1VFLzQ5Y25ubkU1T3VONjR3QnU3MTduWTZMS1d1dHpMcXFqMlpaWnlTei9WZVN3VHNCWE5Ld1ZHUXBhbHpHWVRjcHRYNXFLTFMyZXRScHNVb3hPMG5xRmtqQjlzNEljYmVINGJBSU5Cb3luUVRNazRLY2NjNXlQR1pVb1BqMEFJcE5UdVhqQmZoN2crZnlyMVBlYVV6RmlCc0FXUjFhaVJaYXNSOC83bVpZb3lwN2lYVUpabFpabXFtUlJqeHNlL0QxSWhaVVNqL2NaUytibnk4VlNUN3NadllhMzlUNDNKWmxJRy93OWo4alBlVjM2dzhYb1FiS0ZVMDluem13SWhYTnRlNUNla3lUMU1PYW1FcEk0OHU3Uzl3YlhkTFZwbGlFb015cHhYVG43YkU0UGxPbEtDS0VDV0dCK3lBQjRrQXo0NXZjKzk1SVErRThZa1g3Sitoc1ZkZlY3Ykx4N3kwTGcyZGdCOE90dGpYZjJjcTJ1djBRbGJsQW1vUUJBWUM4VnpLcDlsZStlUWhXSER3OUl5ZjRub2ZjajJ6clI1dGVWNXRjSGFVc2hvZktOUjBtQ21VQm9mMzEranVkNWd0N1BCbmVrUnQvcDN1WFY2bnhNOUlxZXNpUGFDWXBvei9IakNCZTgrTjhMTGZPL2FHMXhxZFdoS1F5T0JnQktoTFJCVS9jOGpnbDJxZkx3Z0VCYVVBVmtJVkNyeGpFU2g1amJRQ2tXSW9rRkltNGdPUHJHV0JQOS85djdrVjVKa3pmTEVmaUtpbzQxM0hueDJqL0hGRy9MbGUxbVoxVlhOWmdGa2M4RUZnU0xBRmNFRkZ3UUlFQ1JJOUwvUkFGY0VGd1M0YUlCZzdZcG9vQUFXQ1hSVmRqVXJzN295SzdQZUZQRmk4UER4em9PTk9vc0lGNkpxMSs3MTYyUDRGQkYyQWhwbWJ0ZE1CMUZSVVpYdmZPZDhsY1V6MGxrLzIvbEd1d3puRzlJSVIyNXFZYW1Fb2FTaVFGUFVCSEJDenRTYmtnUUpoVEpvQzU2c0xmeUZTNGg3NTVmTG04RHNsdWkwOUZxQzhRMDZNbWhwNXV5Zlh3eFN4U2l2Z3hCMUxmdlpaZ1RXR296Sk1LWjhNVisvQlJaWVlJRWZDSlNFT0hDTDk0cVZTUlo0MjVoTGFyUEdLY3ZHajUwUzJJdmRvaVRvUmZZN2NFWTJDTThSRWRHU3N5UlZBZWdmVU95M2ZyVHBSTERSaDdXdXErMzl5cXVyclordHRYUTZIWXd4S0tWSWtnUnJMV0VZRWtYUlROSGFLSFRINHpIajhaZ2tTY2p6ZkdiaFhKWWxPenM3S0tYSTgzeEdBbXV0enhHaXhwaHo2eG9PaDR4R0k3VFdaRm1HbEpJNGptbTMyN1JhTFl3eHRicFdreVFUMG1STWx1UllLdElrSjgvMXBjb3lGNkt3ZUo3RTl5WEtDRHlsa0FLaXlLUGQ4dWwyQXY3UlgxempIL3g2bXc5djlwQzJZSFcxUlJnT250dCtVa3FpS0pvcHB1ZFZ2MitDL0cyT2FUQ0YvUUdjakNFdklIanFnM0tkSlN0OVVKRzdIczZWU1ZuZ3UwRTZJWXVwSUI4NkFyakthdkwzQjgzK3pzRTYwdGR2dVdXaEFQNStRTlFQZzdwT1hwanN3ZVFBaXBFcnQ2WG1WUUd2dW8zNnRYTGtiMTQ0ZzdPM2hBcW4vbjB4TzRjRm5vc0ZBYnpBRTFEKzBvMVc1NE4vMXU1K1NoQ3NPWUxBR0hmL2t3RkJ1RWFyOHhGWnNrT2FQdnhFcXZDeDBYa21aZEFPb2kxOGZ4bHdvVUFwSk1ibTVOa0JWVGs4SjFxS2hLUWZ0T2w0RVY0RlNqczF6L2NMOVlnbzdjekIwdGJram16VXpLOUVCcytSeVUxTXZvN0xhdy95VUpBSGlqeFNUQUxONC9LRWUvbVFFODdJMzBZOTY5eGtMQ1dXa2MxNGxCeXhVeDF4Tzl5a0t6cjRsVVJaRUZhRGJTWlhEUUY4SnMxeVBLbEZrNktaSWlqcmJ3b3FBYVdzUStsQ29FMmorcFVZVDFFS1FWRVdsQ0loMDZjTUo0ZE1wNDhZVlE4WkRIZEp6SkFFS1AyWVR2ODZLOEp5TVB3V1cweVJPSUhiY3R4bXU3OU5lN0pOV2JoNmpGV1ZjSC92RC96bTRQL0h6dUFScGFtUUNEeDhXZ1QwOEZtbng4ZjkyL3hzK3pPMjVUYWRKQ0NzQ25kK2JIMWVHbkpPTkEwK2I0ZmRFRjNmaFh4VmRUdHFQR3VwSnBwTzVIT2pzOEdqK0pERHdZQVJHWk5xeXNINGxLTnB3a1prNkNyd1pWMHZVM2l2a1crclNSMmF5WU9xNjEwMkNrcURzQm9sTmRJWVpHa0lJbzlPMUdjcGFyR3kwbVdyczhLK091SHg4Ukc3eDBlTTlJUnBNbUdTcGt4RlJiWjlsVHZ0SmFRSWlZeEIycVkvTlhWc1gzUmZiYjFmVFZEQTdXNHBTZ3JyZEp5bW1Va0xnZFk1eWVScnhxUGZraVdQTVhxS0VCR3Q5aTJNTFZBMXVXQ3JLUnBEaFNhallHaW5UTUlwZWFlZ25JSnBhc2tLODNTQjl5dTNmV01IN1pyQ3l5cGFWckRlYWZQejdWdFVTcE0rS01uS29pYXFKMHlMUTBhSGY0WDAybGlnMWZrQWdZZTFKZFk2cmI4ZnJOQmYvVE9NVHY0WnR2cW53UCtyMmFybnRaYVdWdi9SejROb0E5RmtkVUpkcDkxUVpnZGtrd2VnYzN3a0FSNHhBVDNaWmttMWlVcUYxQ0JtZGNLL1l6YmhkMFp6TXVwYXpkWXBmeEVWUmxvS1Q1R0Vta2VucDN5OXY4dVJHWk5RMU5iUDU3Vy96UkUxL2dmell0cm03K2QxaU83ZktYQm9LcjZhZnN2bTRiOUNkZ3hYNDQrSnRFS1pDbVZ3N2dqbjl2Y1ZNWitMMGloK0E4NE1HeTVybXN0ZzU3OHdQNjdOMDk5ekN1L1p1aFNZdXZaN3BoRzVwaGNLb3JoRjF3OVo3WFhZYXZlNXZySEJWM3VQdUhlOHl4RWpTaXBHSkV5bU9RZU1PRllUeG43S3g4dmIzSTVXdWRMdDRXV2dKcnF1RzM0Wml6Mi8vMmVmU3dNaUE1RktsRlo0T1B0bmhjU3IrM0NMZ0k2SmFWVVJrUlI0MkRuaTkwVVNlZXc1OXQ4QTJvSzJ6a0ZBbzZtb3NFZ3lTaVltWjZvTGNzOVFJZkNGUVlvZmVvQ21QajZCU3hZVG9DVTFTYTZwME5pWDBBQjdYZ2MvV0VGS0gyc3VCSHd0V0Z2OUg2elZDd0o0Z1FVVytGSEJreEFGZ2pnUWVLcFJmYnpiZlZyZ0JTR2tJNENyREtaSGpzU0pWeUZjcW12ejFkLzcwWi9QWnE0bm5FbzY2RURVZHlTd3JpTWIxc3pOMTcrSGFIS2FnWFlzdUxJQ0c4dUNLUGp1ay93c3l6ZzlQY1gzSFp1Y3BpbENDT0k0cHR2dDBtcTE4SDEvUnRwT0poTUdnMEZ0eVp3UkJBRmhHTkx0ZG1lVzBWVlZ6WWhlY0lwaUlRUmFhNUlrSVVrU2lxSTRWei9ZR0VPLzMyZHJhNHRidDI2eHRyYUc1N2xaMWZIeE1aNFhrQ1JqQnFkSERBWURkRlZSYVV0WmFzd2x6SUt6b1hidncwQWhsWWZuS1paNkliZHZMbkhuMWpJM3JuWDUrYzgyK2ZuUE51bUVndU9qTnR1YkxUcnQ1elByMWxyeVBDZEprcGxDdXFsOS9LWUlZSUJLd3pTem5FN2MwdTZDdE9Jc1BOTTB4VXlKV3FzMG14ckFQL3J4NGpXaEdVOU02V3IvWmtPbzBqb0UrcTdqSFc4TG9xNEIzSExPRk5LcjdZTVhlSy9SSklLVVV4anZPT1Z2TnF3VHFGL0RmYkpaaFhVMFFWWllpc3ErVFFMWTRPaU54YnovTldGQkFDOXdEbElGVWF2ejhRZFI2d1podklWVUVkYlcxSjhGcCtVVUxrQVhydU1GeS85Q3ltQWR5SHkvZnkwSU4xQitCNlB6ZXJ5UkdGTlE1QWZvY2pTemYvWUEzNEJYR0x6QTR0bWEvUDArUGNnMGdqNFByQzh4bnNRR0VqeW51aVV6a0Zwa3labk44RXVzMXdseUJYZ0M3UW0wQjlxWDZFQlFSSmJFaHhNNTR0NzBXeDRVSjV6aTBtUG0xYitPY3JSVVdBbzBFM0wycTFPK25qNWdlN3BNSjc1RkZFWjRWWVVuR3F0aGNiYkRvZ25xMWtSdlpTbE1Tc1VVaWNJSWowSXFjdXV5TUxVUVNFK0FBRzBNZVpXVFZWTnlNeUlwQnhUMmlLVFk0ZVRrRVZOemlQRkxoQmZRRm10MHZDdXM5YThUWGIzTlk0N1kvZUtJbzJJNjZ6UFNWdWd5cHlvS2xJalIzcFNUNG11K09mNHI3cC84bmhTRHk0SHlDQWhwRWJCT2w0L2lHM3k2K2hIWDRrMjZFMG1RbGFpRy9HM1VzQTBaME5Uc2ZVTHhXMmRldmlvYTBzeDRDRzN3MFhTMFlzM3JzK1d0ODVBakNvNnBLSmpxak4zREVadExLWkdLM01FWERTSGZFQmF2NjBGMFBqTzllVjhIS1lRSFJpTmtoV2MxS3RYSTNDS1ZKQXE2Yks1MEdVWWIzUE9QYUdXUGVGUWRjRklPMkRVbkpJYzVsVXp3cnQ0aWlEY0pSSWljYXFlNk8yY244N0xIVWZkSHoySThUVm5YSE5VdTNRU0xJVXYzMElkL1NUTDlsaXg1NkloQklBeTNDS0oxakNtUTBrZmpWTUN1RG5CSlNzN1FUQmhWQ1JsOWpQVHFBaGZ6Q3RQWDJPNHpFdGp0ZVpCclltdTVzcjVFZGVVT2cybENjcHlqUzNmdGFqUnBmc2h3LzE4NWlrc0d4SzFicnFheGNYN0QxcFQ0d1JMTDYvOFlyZFAvVmF0ejV5aVozUDN2QUtTSyszSG5nLzh5akxmY2Q2MCsyeGNzUlg1RW5qd0dYZURqRStIVEphYWR0d2lUa01CSU55bHRhdi9hbHlIeFh5Zm1GZUhOVWprU1dHaVFsa3BLRW1VNXRsTWVKZ2M4bk81emdpT0FHK3ZuaG95YUwwdlFDR29EbkhLOURYVDltRGp3RVZLUmxnV0RiRW95dHhjNXNGTk4rTnVkdjZhOTJhTy9lb1ZRTHlFSzZkVCtyM3BmbStkbUc3WHZQRU05UHpROVQrWDd4UGFiY1VSZFdKN2ljREJMRnBHTzJSTWFKVXRVWVpDVlFTZ0l3NWpWN2xWdXJLK3pZWmZwNXgwZXlqMzIwaE1HNVpRQ3pZaUVRdTh5ZkR6aWVIUkl1bjRIMGIyRnRGM2FTcUNNZHV1ZlJUNmVSZ0l6dXozNTFpZXdJUjRLVlpPL3FxNy9HOWFKUU10QmorV29SMlE5aE9aTVNmemNQbXd2TEE2dUxyMnRFNklNalZZL28rSTBtWEkwbVpLMktuZmZya0RPK3VuckhFUGVOZVk3MzlrSk1iTDJEdEdDb3JLVTFpbUFkYTBPdHM5Vkt3aVUzOEh6dXdqaDFaVzM1MkhCYXQyVUhsbGdnUVVXZUEvUVBENjgwUUtsU3RVVzBMNTd2OEQzQ0VJNHBZNHBIYkdRbnNCa0g4SitYZGV6ZnJDYlBac3ZNQ01rb2lWSGxsZFpiY3VxejFSUDMxZlVqMEZCclFCZTdib2F3SzhEem1MNUdOLzNrVkxTYnJkWlhsNW1lM3ViOWZWMW9paWFFYnJENFpBSER4N3c0TUVEQm9NQjdYYWI3ZTF0UHZqZ0E5YlgxL0U4YjBhRzJucnUzaEREMCttVXg0OGZzN3U3aXpHR1RxZkQ2dW9xeTh2TGhHRklyOWZqK3ZYclhMOStuZFhWVlh6Zko4OXpIang0d0hBNDR0NjlpTHpRRElZWlZmWHNmbTh0R092SzhrU1JSeGdxMnUyQTJ6ZVgrY2QvY1kwLys5VTJ0MjR0c2JuV0ptd0hWTk9VcFc3QTFucUxmamRBeW1mWHJEVEdrQ1FKZzhGZ1Z0dTRJWDZiZjc4SlNPRVVkUWNEWndlOTBoVjBXcHk1d2oveEErVlV3TEt4ZmxyZzljRFdDVHE1cTZHYVQ2QXF2OStKSmk4RkFUSndpVW5ldk1JY3ZsL0IrUjhUUkQwVnQ3WDE4NG1yL1pzY09qV3c5SGpkOXQxYVExNUJXYjFWQlhBSkRGbllQNzgyTEFqZ0JjNUJTT1Y1ZnZlLzlvTStTclVReUpvQXJtR3RVN2dLaVpRK1VpZ0VRdmwrZDIxbDQzLzRLejlZUmdnUHlHZURqdEVaWlg2RTFoaytaKzZWdmhHbzNFY0dIbEtCTWhaNVRwMzB2bUh1QWFDV3BaWStGSUdnOUFXVlp6QkJpUXh6ZkNwVXBsQmVTSkFvVkE1VXo4cnNGR2ZyOWNENFVIbUN5b1BLczVTZXBWS0NVaHAwcENrN0dhY3k1YXZoZlg2ejkxZjhQdmtqeDBDQ0l5UWN1ZFdFWlYyUXVzQ1FVakVrNFk4bjkrbm9tTldiUzNTQ1RVUW1hQnZyZEw3ejhkbUd0NVNDd2tDU2FhYkZsSXdKb2VpaFZVQXVGS2tWYUN3S2c4U2dnb3FTaEpQaFBpZW5YekZKNzVLYUl3b1NLcHVEemxscVhXTzU5d21CMmlEdzFoRGVPa1hRSVdpSEdET2xMYytjVFVXOU0xWUlWMjY0Wlpqb3gveGg3MS96NWVsdkdkWmhZbEdUdngxaWxvbTVGVi9oMTdkL3dTZjlEK2hQV3JSUzhJeXBlYU9HekpvblFBVG5GYitYblB0WFFVTTBTMmNGcmJERTJySmtRbTVFVyt4M3h5U1RuSUVka0ZRWis2TURqdU5sMXR1YlZFYmlWNmJPNUtwdFJGOHI1bzd0SEFsYy84MjZnSVF3R2w5b1BHT0lMQlFJdkNKR1JsZUliM2JvVEhyODd2aExIazkzeUNuaDJCSUpuL1dQK3l6SEViWndOVVF4cGxaRnZtaWIxdWRCT05MUFNEQyt4UVFHcmJTclJZVEZJTEcySXB0K1M1cmNRMWZqYzJzcDhqMnE4Z1JFclpxbDBibWJzNXFsKzZmY3k0L1lXbDlsTGZJeENjaEdCV3puKzhUckdLT0U2M3ZHdlJlVXRLb0tOWUROdU1jdnIzeElKa3F5WFdjejYweFVKK1RwUHFQRGY0TlNFV3I3ZjBvWVg4SFdaSXkxQmlsOC9IQ1ZwYlYvOUQvWGVqb000ODJEUE4zL1VxcDRKZTdjSW9nMjYwbThJNk1zWUV4SlVaeFE1Z2NJVStMWHhOa1NiZGE4SG4yL1RaaExwTEhPRHR1OFRmSzNTVXBwenRqWm1Uc2I2YlRySHhLc0ZGU0JZaVJTSGt3ZWN5KzV6ejZIakpqVTZsODlNd3h2eU44bWN0c0dPdlhyRXJBVmIzSnorUU0yVjFZSm94Yjd3eVArOFBBM1BNNE9tZUxHV2dPTWdWME05NnRIWE5mM0NOU255Q2hHNlFMZmlaSmZEbzNLZDc2Mjc5T01DQzQ3RDA4bGdKc1ZxS2U4UHVPYW5DWEwxRUZNSzhGb1BLRlJXaE5aUzJrbFlSNmp3bXVzZnR4ak45am10NC92OHZ1SER6bG1URWJCbUlxU0NqdTJ5RUxpaFQ3QjBqV0NWZ2ZsMWVPY3NaY2Nsemg3c2NJbFRsaUlvcGgydTBlUUJraWpaZ1J3VUJQQWJVSldPMjNXbGxwRVl3VkpiZWsrczNWLzJqSFBKY2ZNSlJ3WUpNYTRRSlFiZHhxTFkwRk95V0V4WUQ4N3BPaGxXR25SS1hob2hGVDFjYjNQTXArTGtvTm1YeTlHelpwek1VOEExNjBoQkZwWWtzSXdUU3NLZldZQS9TSzVFSzdNU0I4aHZDZTdzY0J0dzVUcEt4N2dBZ3Nzc01DYlFCZjM2UEJHV1NraHdQZmNvcjdqdEdTQmR3WGg0aVBGMUZsQmV5RW9EOW9ianRVWDVyVUhiYitmcUFrWlZkY0NicTFCUG9BeTRRZFJDOWd3aXlVdGRXQ3A3ZW9CZitmVjFsYlFXWmJSYXJWWVhsNm0xK3R4Ky9adGZ2YXpuODFxM0ZwckVVSXdIQTc1N1c5L1N4ekg3Ty92czdxNnlpOS8rVXYrOUUvL2xNM056UmtKT3ErQ2JWU3h4OGZIL09ZM3Y2RXNTNlNVcks2dTh0bG5uL0hwcDUreXNySXlVeEwzZWoxYXJSWkNDRTVPVHRqZDNTWExVa2FqRVpQSjlMbms3OW14dVcyM1lwOXVOMkJscGNXSHQ1ZjUwMTlzOGlkL3NrVi9yUVhTeFMrOFFMSFVEMWxmamVsMmZKUVVseXFMNTFHV0pXbWF6Z2h5S2VWTTdmeXFrRkxPaUhod3Rab2JSVFc0WitMVENkdy9zSHl6YTdteUltaUZqdU9kQytUVlk0S29hN1JHYnR5UWl4ckEzeG1pa1RicW12d2R1NlZLd1ZiMWlmZ2VqelBQUlIzZlVyNnJUUiswWFhrQ3NVZ3VlTy9SbktNcWcrVG9qUHd0Sm5XU2xQZjY3cEcxTmt3YnlFdFh2OXhlREEyOE9VeUJoN2hhd0F1OEJpd0k0QVhPdzFxc3JUQTZ4K2djNjdWcDZsVUNzeHVsMWptbW1xRExDZFpXZTBHMFJkejVBT1cxNit4Vjl6MUgvcDVTbFVOTVRWUE1MRGFGd3JjZGxJMVExcmtvdjVjeFVXQjI4MWRPdUZjcHFFSkpGVXZ5V0RGVkJSTzl5M0grRlVteVF5UU0yL0VkTnBkK2dwUjlKMHpUODhIZk9kVHhkNnZjZXJVbk1MR0hEaFdacDhua21OeEx5R1RGMFhUQXdla093K1NJRTFMdVR3NzVadlFOT3pabGlMTWtiZXlmNTV1enNib3RLSm1TczE4T3VUdDR4TmY5TFphV0k3eXdTNERFUjU5WHJJbWFVUEVFbWRXTWtpbkQ5SlJVVFBIaUpXUTN4b1FCU1ZGUitHTnNQbVE4MkNkbGo1UWpSdE1qMHRFdTFwNGdNTFRDS3l3dGZVeEhkbG55YjlIMzcrRFRROGdZN1VWa3dpSnNUc3RVeEZoOHppZ2VJOEFvU2VWTGh1V0FieWRmOGNYb2orenFqQlF3S0FRK0FRRTlZbTYzci9IenRaL3dTZThPbTZaUG5CaThxcW5uMml3ZVR4SWdiL0JCejdyYWswSm9WS2xwS2NtTjlXWEc4UldPL25qRUpKOVNHTTNoOUlUamNranFyOUNwSkVvMFJPUmx4TWhyMjdtNTkvTkU4QnhSTGpRQ2pUSVZRV1ZvWnlEakFObGFKdEVsRDcwZEhpUElLRGlzaHV4TkJreXRvWlFLcE1FUGFoTFlxamxyM0pmYk55dHEva2JabWdCMjZqTDNMWXZXa3hsbDZEZ3pXZi9OZ0Nrd0ZQVlpGdWNVOGhrbGU5a3BPNU1EaWp1M3NGNlhLcTNjTlRGVFg3OXVCZDg4Q1d5UjJ1QW5taDZTbTUxVnhpczNHRXlHSk9PR3Vxd3JqU2IzR1J6K3R5aS94OUxhZjBvUXJydGp0SlZiRUVTdGF5eXYvV2YvNjZvY25ZVGgrdjlWK1ozUTgvc29yNHVwYWcxcmJSdGpUWUd1UnVocWpNTGk0eFBpMHlHazU0VzBBNCtnQUdtYWU4SGJ5b2lkVi92T2tiMHpmNE41cHdLQkZWQklRZFdGa1JqdzlmNFhmRHU1eTVBeEtRVUZGYnBPcVo0bmYxdjEwZ08yWk1TZC9rMCs3RjFoeTcvQnNuZUZwYUNINTBXTXVrTzJyNnp6NWVoenZoNCtZS2M4SmEzM1pnSjhrK3l3T3ZvYmVpc2J0TDNyNUpYQUs2MGJVODJ6RW9BNDd6amZLSDduTFo3bmZ6Ni9ta3ZGOVBQM211YkhUeU4rNTgvbjh3YVhlcDIya1NVcnNNNFZSSlVhVVJsRUNsNFUwdXVzc3hxMmlUZmJSTHJMN3cvdThyZzZJQ0VucDJKQXdrNSt3bHAreUpWd2hZMXVoOGhTdTFBOFp4OGF3U2tRdDJLNmRBZ0dQcW9VZUNnOERENGVJVDR4RWJFSmlZVkhZR3RydFJmdXcwK3FmOTB1bktsWmJVMXNnbkVxWjVzd0VnbG1XU09zUk8rNytzRGlsYVhnTDRydlFpeS9RQmFCYUQ2cngwQmJ6d2F4N3B3SmpSVUdMUldWaE5Ga3l0RmdTRnJsTXdOb3Q1cW5HMEZMR2REcWZrQVliWEYyZmMvdmtzWFlFbU9LNUJVT2NvRUZGbGpnVFNHdWx6Y2FOUlhDRWI5S2ZyKzVyeDgxaEtvZnR5b1h0Rlcrc3prTzJpQzZaeWYyeDA3cU5JbXFVa0hZZzlZcVRQY2dPZVk5RGhhOVBDUUVBZlRic05KeHRiMWZrQSs5Rk1ZWXNpd2p5ekswMXZSNlBkcnROdGV2WCtkblAvc1puMzMyR2IxZUQyc3RudWN4SG85UlNzMXNvN2UzdC9uNXozL09uLy81bjdPNXVmbk1iZTN2N3pNZWo5bmYzMGRyemNyS0NqZHUzT0RuUC84NVY2OWVuVmsreisvYnlja0pTWkp3Y25MQzhmRUowK2xMbG5VVTBHcjVYTm5xY3V2bUVqLzl5VHEzYnkzVFg0cWNuTGJRcnU5SVNhc2QwTy9IdEdJUFR6blYyclBhTFVrU1JxTVJZZWlZK0NpSzZIYTdMQzh2enhUUWpmb1ptTlZDYmdoeEtTVktLWUlnb05WcTBXcTFpT040Vm5jNVRWTk9UazdZMzkrZnRZTzFNRTdoL2dGOHRRTWZYWUVycXhBOExTZFgrblh0OE9DTXZGemdPNkJ1WkZNNTRpd2J1U1NUSDR2MThTeXhJSEEyKzBHM3Joa0xpNzcxbmtNSXg4TG1JNWRNTm43cyt1OGJaR1pMN2VyLzVwVXJoL1dXVUFEN1BKbU52c0FyWWtFQUwzQU8xbFJaa1IvK0o5UHhWMy9sK3l2RTNDSHdWNUF5QUNRSTBEcWh5QTVJazRmaytUNWE1MFR4TlZyZFQxQmVDMnNyOTZBRWxNVXhXZm9RWFUxbjRkYkdiak5TQVozMkduSFFSVlVXTWF2SitoNmk1Z3FOTHlnalNSVko4dEF3bGxNR1REa3NEempJUCtmeDhPOFlUQi9SQTM1MS9UOWxxWDhUVmZZaEVZVEduamN2cUxrZjZ3bDA0RWpXS3BSVW9XVmlKNHowa0pHZU1OWUhUTTBwWTVIemVMekh2ZU83SEhERUNLYzhHK1BJaHdRM1FsWTg2VGg5cGdLdVNDandVUnlZVTc0NC9wcjFxRU4vNlVOOFFpSnRDWVJ4d2g3QUNrR2hKSm5ua1ZBeUtxY01xekVqa1dLOWxGTjlSSmg4ZzBsSFNIT0l6dlk1UHZpV1FYVWZTMEhzeGJTRFpXSStvczBTNnl1ZnNiN3lHUzI2cU14SFpoS2xCVlpZQ2xXZ1E0dW9OSjQ5NHo2cStyZ0tLZEFCcEZYS1Z5ZC81RDhlL280SGVzb1l5R3FmVkorSUxqR2JZb25QbG03emk0MlAyS2g2eEprbDFOYlppeHJQblV4N0dRSHlwbEZmQVZZaEtrTllHTmFqa0Z2eENnOE8xeGdjalptVUNZTWlZV0NuSkVGRmtZZjRXR1JqY1NzVU0zWHVXOWxmbUtsZjdSbDVwQ2lKaElhaUlqUFFFeUZkMVNMQUp5RW5wV0JzYzA1R0dlTkkwd1Y4VlFmMXBiM2MydWhTekpFdzRxd0daNG1sRkthbTlPWUpCbG5YQXJVb0pLNHFLSUNhNmRUbXpVaWRnYkFtbzJMSWhCTi95Q1RNeUZ4aGJEenA2aUhQVkkrdkJSZko5bWFBTVNncW9zTFNTeVczbzNXbVczZklaRTQxMWRqS0pYTVlPNkdZM09WazcvK0xFRDdMRy84RFBIOFpWeFBZcFg4STZSTzNiN0s2K1ovL0YxVTUvQzkwTlVXcCtNbE1abXV4SmtlWFkyeVYxQVN3UjBSQVRFUm9mR2ZYYjZuci83Nk5hK1ZNY1htcDJyZGgvMlpOS0Z3VEtrbnV3OWlmc3BjLzVOdngxK3prZTB5Z3RuNnVzSE9KU1BPcTMzWGdadGpsZy9iSGZMYnlhMzZ5OGdrOXZZUWVLOFJRWUsyZ0g2Mnd2clRCWm5TTnJ2aGIvT0Z2MkNrSFpGYVRBUS9TRXpyOGx1MzJiYnBSaDZWV202b1MrTVlnQ3A2OHY4M3pzdk5xM3laTGFwN1R1NHowdmRoa3N3U0YrV1NXeTRqZnk1SmRYdmJtTzZlZ3RSSzBSa3BOU0lXWEcxUUYrREdmZEs0VFgrMFFtQUIxb25oWTdKTlN6Skl1Umt5Wnl1eUNLY0F6Q01tR2Y2eDUveWhVdElWUDRIbm43Sjk5SkIwWnN4bXUweGRkeE1RaVMxdVBCcTlHL3RwNUZUTE15TjltVENuUmxHaW1PdWQ0T0dHa2Nyb0lOOTZkczVOL1UzalJZTkJjSW91NGhHZzlSNzdhdWVacVByL3dXMkZBVm1oaHFYeXdYY05rT09ab2ZFeENOck4vZnQ2K0thOUxkK2tYeE8xYmJzdm5iT3FkVTRHdVVyVE9Gd1R3QWdzczhENWh2bzdDRzRNUWp1T1E4d1R3K3pwdlh1Qnl6QWhlN1lpRzlCZ211eEIyM0R3amlOMHIrc2ROQWpjRXNGRGdkNXdOZE5CelJJWE8zL1hldlQ1WVFBcFd1b0pibTRLcnE1YUhoNi9IWGpQTE10STBSV3RORUFUMGVqMVdWMWZQelFPWGxwWm1DdDB3REFuRGtGYXJSYWZUZWE3eXRWSDNkcnRkVGs5UFowU29VdW9KOGhlY0d0WVlNNnUxbTZZcFpYbXh6TWV6SVlXZzNRcTRjMnVaUC8vMUZYN3hzdzAydDdzdUswYmIybW5IZ3BKRTdZaE9OeWFPQTlSelJtYXROYWVucCt6czdLQ1VtaDJYdFpZd0RLbXFpbDZ2eDhyS0NuRjhOcGYyZlIvUDgvQjkvMXpiZGJ0ZE9wME9VUlNobEVKcnpjSEJBWjkvL2psLzkzZC94MjkvKzF1U3hEM0taaVhzbmxqdTdsbjJUaTFGQlFGaUxqZDNMdXRWZWs2aEtXdUwzaC96R1BFNjBQVHhxb1JzRE5uQUtTcnQzRHpwQjR2R1NRSFhwNkllaE4xYTlmd2V4K1IvN0ppTnk2WXVKM0hzNnY2TzkxeUpCSGo5Q3U1NmswVmxTWEpMWHZCY1I0WFhDTU5DL2Z0YXNTQ0FGemdIWTZwSytaMnZSNmYvNFo4WW5menJiblZLcC9kVHduQUxxUUtzTGluU1BhYWpQekFkZlVHUkh3Q1dxSDJEZHVjanBHclBhbXhpSy9Kc2oyUjZGNjJUV2RpNUNVTzN2SURWM2pvOXI0OGM0SHdGM3F1YlRmM3c1WU1Pb0FnRnVTZklRb3Z1Rmt6OElmZkg5N2g3K2hVUGtuc2NtRjNHNVFBRHJBTFhWY1UwdE1qQVlnT0pGT0RWVHFWYU9xVnZWYXVKQzk5U0tLaGlROW1lOFBENGQzeDk4RHVPT09HRUlhZGl5aGpEcU13WmtqSEdxWDB6YW5LMFhwcmF2MCtHYzIxdGRRc3BKUjZDZlRQa3E5RkR0cFpYMkZoZVFRYnJsSlVrTktEcTg2QUZaTXFTZWpDeUZhZG13c0RtbkpxS1NYS0kyZjEzN0tqZlFqRkVtVEdleWFCS0VXaVdaSXZyUzc5aXBmVVpFV3UwYU5PU2ZlSnBoOUI0cU1LaWNvT3d0bllmTVJqUFBidDdWc3pFY0xQSzcwb3g5WEpHM09YenlkL3crZkFMam5XQjI1cFBRRVNiRmx1czhFbjdLcDkxcjNMVFgySXBVUVNGUVdyaHZMV3Q3NWozR1RueXRsQXIxK3Bhd0ZKb0FtMndwOUFMWSs1c2JIR3NoM3g5a0pDUk14SXBRMUhRVnpHUkFoL2pTQVJSMjBDL3RXdEZ6RzJydGs2dHJ3Mkp4WmVHbGk5WjdrU3NqRHUwaUJnd29hQmlVRXg1ZUxEUDVrcWJsdGRGRkFKSzY3TFRoSGxCUXJXWitGaU1zR2drcFhZUElia3hsT2RNV0VFaGtFaDhKQjRlSGhKWkV5UHpkWCtyMnBpVSt0cklLVW5JT0NtbVBEb2VzOTdLMmZRVXNiVXVVRFBiNXpkQWdqYnRZSHdFRnErc2FBbkJWdHpCcnR6Q3hBYXpxNmtPZGEwRDFreE1RamI2a3FIZnd3LzZkSmQvamVkMWE5TEUxZmhWS3FUVnVjUEt4aitoTEU3eC9TV3NhZndCYWhXME5lZ3FRUmREYkpYVWptU0tsb2haRGxmcHlDNHFFMGhkbi85WjBzVHJuaHpOeTF2cnVyN25pTjlhQWQ5OHAza0Fidmh6SmRDQkpBczBqOGM3ZkhYeUJidlpQaU9tSkNpS3VwZUFuUWxzMjhBeWJyeitPRnJuTDdaL3hRZXRQMkZWWDJkMTJDZXFKQ0szVUZtc3RaaFNVRlJkQXY4VHZKVVl6d3RRZzcvblVicFBpa3ZDZVp5ZDhydkgvejJkOVM1aDYwOElxaEJoTEw2d3pqTzZPWVI1NyttRzlIMFJidlpwMS8wc0tXUmVTankvd3FmVTkzMXB6TmhQWmdrdHB1a1hGVmlKc2hXeE1TampuRDVrdklxNi9oblM4NmgyTEx2bUVERjMzYm1helBNcTVHWjVodVY2VFFEN1BnUkM0RW1KckFsZ3YzNWRpYnQ4K3NGTnJyVTJVQlBoYk9pdFYyZGV2VVRmblYzeU5ZMXB4SXo0Yld5Z0RiWWVWelFua3hHZi84ZEhMSy8wK0RoZVIvZ0Npa1lwKzZMajNtV1lKMjduaU5oejErSWMwWHJwSWM2cmVBRjVtVEo1amdBVzlteVpqY1dpSGdicTRJRUZMUXlaRU9TUlJhOXEwbUhDa0NrWitheDliSjErOFRRTnNPZjNhSFUvSVlxdk9KdjZPb3U1VVY0WWs2TExFY2JrbzVkb3RBVVdXR0NCTjQzbXB2dEdJWEREN3c4OUxQM2pnWVV5aGNsZVhYY3hCTFhwN0YzZnEzakl1MER6SENPZE5YYlFkZ1JGMEhVRXNLbExobnlmclVvdE04dTI5V1hCbjk0UjdBOEVTVzQ1SEw2RzFWdExWVldVWlVsUkZKUmxpZGI2SERuYldCSTMzMnZJMlNSSjZIUTZ6MXgvV1paNG5rY1VSWGllUjFtV2pFWWpUazlQV1ZsWm9kVnFuZnQrVTNlNEtBcUtvcUNxcWxsZDRSZEI2RXZhYlo5ZU4rRHFkcGVmL21TZGp6NWN3V3Y1VHZtTFBYdTJWd0lWQmNTdGtEQjBDdUJud1JqRGNEaGtkM2QzUnZTMjIyMTgzeWVPWTFxdEZqZHUzT0Nqano1aVpXVmwxbmFONnJmNVhydmRKZ3hEcEpRenBiQzFsalJOOFgyZmc0TURPcDBPdnUvUHRtMHRES2FPQkQ0Y1dhYVpvUE0wclp0b2FnRC8wSzJKM3hacWR6ZGRRSFlLNmFramdIOHN0WDluQkhDakFPNjR2dFY4dnNEN0I2RUFXMXMvSDhONEI2YjdVTlRxWHhXOHNVMFhKVXh6VjdmOFdUWFZYeU9hNE1PQ3MzeU5XRFRtQWs5QWw1TWpxWUovcDZ2cFQ2dHEvRTlNbGZ4ZjJwMVBVRjZic2hxU2pMOWtkUElmL3JmSjVKdi90OUhsL1NCY3NXRzBpZWQzRVVMaDdBNGwxZ3F5ZElkay9FZU1TYytSdno0UVNra25pb2dJa0thOG5MbDg2Nmp2ZHRLQ3doRzBvYVJxU2ZLV1IrcVZuSXBEOXZLdmVERDRpbStUQXg2TWQ5bXZqaG5oRHNISFBjK1AvSkE4OHZGOWhRbGR6Tm1yYTJmYVFLSWpSZUVKVXBHVHlSRlRXWEpxaHp3Ni9UMTNCMS93S0x2UE1RbERlTUxldWF5WFl1Nnpoako1dW5iS29yR1VWS1FJRkxCblR2bk44ZStKQTR1MzhTczJvMjJxTE1ESFlxd2xxd3BTTWFFTUswN0xVeDRtMzdDZm56QUdiSldRanIra2k3Tk83UUFyZE5sZSt5VkwvZ1k5czhKRy9DRWQ3d3FCYVJFYWhaZHJaSzd4cWhKcHJDT2FoY1Y2N2tHcmtLQ0Z3TE1DVlorTDVuaW5RdkV3UCtIenZkL3g5NE0vY0tBemNrZVhvUWlKaVZtaHd4M3ZDcis2OGdrZjk2K3dsQ21pM0tLMHFKVy9Qazc5KzY0ZTdPWklZS3VRUmlNbmhwWUoySTdYMlFxTzJlV0lqSUs5MDJQdSs3dXNMb2VzZEZ1WW9VWE9McExuMU90OG8vdGZFek5HZ1ZCSWJRa0Z0RU5GSnd5SnBBOUdVR0tZVmhuSDB4T0d2UTEwM0hVbmNsYmZjNTd3ZVpGTlc1QlFHVXVhYXNaWlFhS2JtcTVuaEtZamdCVGhUTVVhRXVLaDBXUTEyVlNpeWV0YXBBMDEwWHgya28rNTkyaVhxOXNyckxaWDBZbEFhSU13MmswSTdCdTZiZHFhdUxNR29TMUJXWUdVYkhrOXlzNHRKdDJTMGJBZ0x5b01HbzFoYWpLbXc5OGdaWWp5dW5UNlA2MXJzRHNDMkFKS1JYVDZQOGZvRk0vdllVMlRSQ2NRUW1KMFFwSHRVK2JIWUNzVVRrblpEVnRjdTdIRmFuc0pXWUN0WGtZOStWSUh6aG5oTksvNG5mY3ltQ090NEN3QzJud2tIQWVaSzBHaWNoNmZQT0tiL1c4NHFrYWthSEtjelRkWVBKell0Z1gwZ1MwVW43YXY4ZXUxWC9IejlwK3lZYThTNUQ1aFl2SHpBbCtmOGY0NkI2K1FxRmFMMjYxYnNKUlQ1SWRNMGdQS1dnMDZ0Slp2MHJ0c1RLNnhHdC9BOHplUWdVUlpqV3lhcmRFS05UYlBpaWViOUZtWGhaMzdnbWhJM1daTWFEdzJMdGIxZllQalJWTWIyQWdhcGJ5d0pRRVZOalAwaE0rVjFqTERwYXNjVGs5SVJoTVNuZFpLWFI5Wk5aR1pPV0x5V1docWt1SGlncDUxcWdCMzVBSmJrOERkS09McTlUNXJ0UENHODM1RnI5YUhyWENyS0hKSldZcTUzdG5jVzkzWU1xd1M3cDN1OG1Gbm00ODIxN0FUQlFXSUdZbjZIZEFvY2NYY05UTmZHbUErU2VKc3p5OVhWd3R3OWJQcmY4eXNQMnFpMjdwamM2N1pOVzByTFVJSlJDQnJ1c1BWUkM2TVlHcWdDaFZWVjVCRkpWUFMyWmg3UmdBLy9jQzhvSThmcktLOE5ycEtPWHNnZE5lN3FUSzBubUJ0K1FPUy95eXd3QUkvQURUK0hXLzB3VnpNcVg4WEZ0RGZkOVRQc2Jwd1Z0RFNyd1B3YldkN0RKeVZudmt4czhHMkpvRkRpSlpkTFdDZFFUNCtjMWI1dmw0TWxwa2Ixc2FLNEM4K0ZhU0Y1R1JzbUdhVzVNS1RUak9IZUZIaGxlZDVlSjZIdFpheUxDbkw4Z25DdGJFdWxsS2UrNTdXejdmcEVrTE15RkhmOTJmcTNpekxucXJzMVZyUHlPaXFlbkdiM2NCWHJLM0ZiRzIwV2U1SDlIb2hTLzBRcnhPNGhzbnIvWjFOZVNUNEhtSGtFd1FTVHo0LzNwQmxHWVBCZ0RSTlVVb1JSZEdNc0k2aWlOWFZWVzdmdnMzMjlqWmFhNUlrT1hjY1FSQmdqT0hvNklpRGd3Tk9UMC9Kc295aUtKaE1KdXp2NzNQdjNqMisrZVlieHVQeHVXMG5PUXdtbHBPUlpaVEFXdWxFelUrRVNxUnlOY09sbWt0KytER1BEOThSb3A1elZya2pmNU1qNTh3ZzROM0YydDRpR25YNWZBMWc2ZUpJaTI3MVBrSzQ2OTVxZHc4Y1BuUkxZLzM4SnU2RmMyTlFvU0d0Q1dEOTlnamdsN09KV09DNVdCREFDMXdLbzRzTStJTWZyazVObFk3elpPZS9VcXBGVVo2UVRyLzlwMW55OE8rSzR1UytFSjdYNlgyQzd5K2RLZVJtSTRXaHlQZkprb2NZVTgxaTNvMjdaUUFFV0R5c1U1YzFaUjNmSlJwQmt5K3BRb0Z1S2JMSU1CSlRCaVNjVk1jOE5sL3h4K08vNWF2aFhRNDVzMkJ1SEQ3cnlvanNGUW43eFJqVUJsRVlVQVdDUUFxc2hGUmtUTXd4STVNeE1sTkdZbyt4U0hpYzdQUEhvNzlqcjV5UzRxcWVKempoV0dQdlBFK042TG5sUmFhSTgxYlFHWUloQ1YrTzdpRjBRaHdwSm5GS21FWDRzc0pvelNTZk1MWDdGTldVdy95VUw0ZmZzSjhkVVFHUjlHaDdQdXNxWnRNdXNXTGJiRVhYdWI3Nlp5ejUxL0JTRDYrUStJWEZyeXE4b3NLcndHdXN2aHV1d2dmaFcxUWc4T3JPNFdtbkxxVSt0Z0o0TkIyUTdYekpieDc5bHAzcEtlN3h4TU9ycldwWDZISGJ2OHJQVno3a0oydTMyYUpITkt4Y0RVN3RndzFlWHZuMXhsRFgxRFVLSlNwaUsrbWJObXR5bFZXNXdvRTU0dkRrbUFkVm13K1dOOWlNTzRpeEpxeHJMVG9GOCt0V1lMNE1STjJXRW1rRW5nVmZRYUFFdm5CNlc2ZnVLMGhzU2k0cXF0cDErNVZJa1BvM1ZrQnBEVW1WTXk2bkpDYXJTVnkzUG9tckFSb1RzQ1RhYklWcmJJWnJ0R1ZNWlRPRzVZamo2WmdoVTZha0pKVDE3NTJhTDBkeldvMjVQM2pJN2FWMXJpejFDTDJRV0JwOFZibStJMnF5N1kzMG96T0NXV3FMbjJ0YVFySWU5dmlrZll2eFNrRjZVRklhWGUrellGS2NNajc1Rzd4Z0Jha2lXdDBQRWNJSGE3QzFnczczKytBdnVUYWNydzBpRkZxblpOTzdsTmxlZlVsNktCU2RPR1Q3ZW85VkdhTWVsMWpkbklhR29QdXV4ejlQK3VwTFhpK3FHQy9aM2x4V1VTa2xxYkpNVk1wQnNjOU9kc0NBb2s2Y2NkU1R4STNQTFZ6Q3lpYndXWFNEdjFqN2gveWsvMnRXMHpYaVJCRGxGV0VCS2dmUkRMWUNmQStVTmtoVFlvWEhqZFkxaHExUE9aNGNrSmVQR1ZwTEJoeVM4VzErbDQzcEYzVGlOcTEyajBwcWd1aHNmMmZqMzd6bzlXTHpQT3ZmalRyV05uZldlUWZLdDFEUC9MS2RzM01IWlVCZ0NZUkdGNW9BeTFyWTQrcnFCby9UWFhLZEU2dUl6ZFlxL1c2blpodWZlOUE4ZVZ5MmNRQkgxTXBmQ3dUNFJNSWpWcldyUmJNNit3b1QrbVkzRkJTbFpYUmFNaDAzNDg2WkN0Z2xLMmtTY29hTW1VWUpaV2lwVXZBd3VGcmkzK0d4VytER2YrcjdnS2l2SHptbnpMMUk5TTZmbXJuRUFYY0oyMWxpRFlpYXZ4Zlkram5GZFMzaGFxNExxS3lyVFZlV2hsS1hWR1dKdGhxRFJIc2VWZUJUV01QKzhTbVBSd01tWkJSVU03ZUZaOUcvVW9VRTRTcEtSWmYwQXdlamMzUTF3WnBxUVFBdnNNQUM3eE9DZW5uamNzVEdCdnA5bU1rczhCM1FrRGVtY2lyZzlNZ3BlWm9BZk5CMmJMLzVEZ1ZoZndpd05VdXFQSWhYb0xQbGxFN0Z4QVhCdis5S3ZmcjBkdHZ3NlhWQlhzSEpST0Fwd2QxZHl6QnhSSERsY29LZDA3Rnh6MkpQZTZKcVNOMG9pdkI5bnl6TE9EazVZVFFhWVM3SXRxU1VoR0U0c3lwdTFNQXZnamlPNmZmNzlQdDlvaWdpeTdMWjd5OGprQnUxc2RiNmlmMTRHcHlsdEdDcEgzSmxxOHVWN1E1cmF6Rng3TGxULzdSQ2xCYXNOdWpLWUYrUU1XL3FKNDlHSTA1T1R0QmFrK2M1MCtsMFp1Rzh1N3M3SThySDR6SFQ2WlEwVFNtS0FtTU1hWnF5djcvUE45OTh3K1BIajVsTUpoUkZ3WFE2WlRxZGtpUUpXWlk5Y2Z6R3dEU0RZZUpxQXV2QzVUdzgyU0N5VmdCN2ZLLzcvWHNEQTdxQ0lvRjhDTVc0Ym56LysrMHU4RklRdFFLNERYN3JqQUIrNTBINUJjNWg5c3lnb1p6QVpCOUdqMXpTZ2luZFBmSU5qd2xWUXdCWHI2ZE13UXRBNDJpUWR5NFIvQ0ZoUVFEL1FLRlVFRWtaZHBCK0cweGxkREhWVlRKNDJmV1UrZkY5TCtqOWY3TGs4WjhJSVpVeDJhaXFKdnU2U2ljQVVnYWRJTnBFK1V2dUI5WkZ5aHRiMGJJWVVKWGpXYXk3TWFkc1pzcWVka3BQMlhESDd3U042aGRNQ0ZVZ0tIeEJGb0h1RjR6OUFmZUczL0x0NEM0UHNnYzhzRHZzRlFPT2NNUnZZOFdzM1NwbW9xNHZUaDZ5clA3QW43VFdXRzF0NEJtREZ4UVVmc1grNUJIM0R2OTc5dk05QnJia21GTkdvbUJRNVp5VUtWUGNhTmNRdjQyMWMwT0x6T3ZpTGpOd3ZBeG5TcVhHQ2hwVWJZV3JwbnZ3emIvbGEvOXJlallnb3NEb2txU2NNdUdFVk9hTVRjVkpucE5SRVFyRlZyREdweXMzdWRXNXpZcStTcS9xMHFORHQxZ215aUs4RXJ4QzQybURyQ3lpc0k1TUVkWjFncVlqMUJhb1FsbWtFaTZ4VVFpVVBOTWJsc0FmOXUraGpoNHptQTRvZ1FDUGdJQ1FtQ1Y2M0dDYlg2MS95aSt2Zk1TRzdoQlBMV0VGd3FoYS9hdGVMZmovMmlGY05ONDR3a1lKUTZ3dEhhUFlicTl3cGIvRmVEaGhaRWFNaW9URFVjSkd1MlJaQ1FKbEVkUzJWNit0SHUwcjdQL3NPQ1RDT3N0d3p3bzhLMUhXV2JGYURJV3RTSFZGYmpTVnRXalIzSFFhNHU5NTU2SW1LSVJUdVJrRVdtbEtsWko1amI3TXFjc0U0Q0VKOGVnUmM5MWY1NWNiUCtVbmF4L1JGVEUyU0RsT2p2ampONCs1TjlubGtCTUdUSm1RazllMVlTczBJMUoyekFsZlQzWlptNndRcUhXOFFLRnlnNVFWWnlUdHZGTHhOZlVwaSt1bnRjcFBDUWh6UXcvQjdjNEtsZnlRNmJRZ0gyc3N1MmcwbW9Lc1BHVncrRzlRWGdmbGQ0bWliZWZHME5UUUZLNFdzaU4vejBZTElSUkdKeVRUZXhUWkFSNFNIOS9WQUpZZW5VZ1NXWXN5QW1FYXBlbDNPZFo1ZGFLK3NEUTNnZm52WEloeVhueGZMMXBDcVNTSktEaTJ4K3piUXc1SkdOTWt6cmgxZWtDTWN5eFlCVDZNbHZpSFYvNmNuN1gvak9WMGhmWlVFU2VhSUFOUlVnK3VjMFJhQ2I0VkNHdEFLYlRvY3FmOUN3WWJVd1lISTlKaVJJVzdMOXhMSDdDbS9vNXJTOWZvdHpzSVQrQnJWNXQ2bGxuN05QS1hDNStkNjJmeml0L0w2dnUreS9GTm5KR3N3cVY3U1dQd3RTSFEwQWxhOU1NbElobWpFUFE2TVRkL3ZzR212NFRjQjFNWnBQWHFqT3luSGNlWitsZlV3bFlwbU5rL1N5UUJraFlCY1JVaFJ4NUNDcVN0cTRIYmVZTDhHY2N4ZTdXelpwZEtraGNWQjhNaGc1UEpUTmZxUmpOVEp5dHBVZ3FtNUF5emd1RzBwR3M4bExSelNYTDJKUkpJbWtTSVpoeXNIUG1ySEFGc2hIV2w3Y1ZaVjVwZFFYTzNpTmxFVGN3OVB3Z3dzbGI0NHNaWHF5eld0OWpRSW1JRG9jWDQ3aHFyREV4SE1EeEtPVDBkTVIwT3lFMktsUjUrdjBlMDFtYzhUdm44L3BmODV2QmJ4dVNVdFMyMm1hWHBYQTdmN3hPRVcwZ1ZYL0k5ZDkwWWsxS1ZZNHdwcGkvWWVBc3NzTUFDYndNeGJqYnp4bXNBS3dXZXF0V0E3eklQZElIWEF5SGNzMEdaT0FMWUM4R0wzZUlIOVh6dlJ4eUlieFJxMG5OMWdOdUpzOHdXK3o4TWZxSjV4Qk1RdFFTZlhBTmpKWjljaDRjSGxzOGZXdjcySzhQOUE5Y1VvUStsaHJ4MHdmZ25nL0NpdGlRT0NNTndwa2k5ZCs4ZXU3dTdKRWxDR0o1bkZodnJZdC8zWjZUbml5aUFneUJnZVhtWjVlVmx3akNjRWFHTmpYUVlock1TSGxKS3NpeWJxV2FiejVxL1B3MVJxRmpxaDJ5c3Q5bmNhTE81M21aem84UHlVb1R2Szljb1ptNFFiQnh0dEtGSUtzYVRnaXl2MEMvSVZ1UjV6czdPRHNZWU5qYzNhYlZhRkVYQmFEU2lLQXFHd3lIOWZuK21BRzVxR1NkSlFwN25UQ1lUVGs5UDJkdmJteW1BWDZRdExUQkpZWnc0SXJpc0xFRWducHl1U09YSVNkbk1sVjdvc0JaNEFuV2o2c29saytSREtLYU8vUDB4dGFuQTlTa3ZjdVN2RjdsL200WG84djJDWUdiOVhFeGd0QVBEQnpBOWNnbGtXQkJ2a05hcm56Zkx5dFVzTDByN3RnamdKbUM0SUlCZkl4WUU4QThNU2tVZEwxaTYwZTUrK25FUXJmOXpwZHBZTkdVeCtOKzB1eDkrVldRSFg1VGxhUDlsMWxrVm8zM2cwdDhvRmJhRGNBUFA3N2tQckp1TldsdFNsbzc4YlRBbitIUUs0TklpQ29XUUNtSEtNK2ZDdDRiNjVxOGM1Nko5VitlM2F2dVVMY0ZRamRncFArZnU0SGZjbmV6ellMTEhyajdoRU11RXVpNHRqcVF0Y1NOVW84dWNBSGVuUjhUaXQzU3ViU0dXRENZYmNYQjZueU45d0VHNngrUFIxeHlaQVdPY3hmT1VNN0ozM3Q1NW5pS0JDd0hlVnpocVY2dlExVXRONnFEc0FTblo1QUdQMmFHSElxWkFVSjRUWlR1NnppTUVPbmhzcVMzdWhML2tnOVpQNkpWTHhMbFBuRnU4cVVhVkJiS3lzNXJIczRpendKMzhpRG9EZ0hOdXBWS0FSbUZ0Z0NDczQrNktDc3RST2tEalFzRWVDb0ZQU0VTTGtEWDZmTEo4amM5V2JuQXQ2Tk1kQy95MHJ2ZG9HdHZuZDAyT1hJU1RXQWxiSVV0TjZNR1Z0UzZEZUkzSG56OW1tSTVJZGM3QnlRbmJvazgzNkRyK1FEZjN3ZmNnOGxOYmFRdHJrWlhBcXlTZVVYUDIzWnFrckpobW1yeXdhQXVlcEo2eE5zdnppSmd6QXNZQ3hyUFlkb21PY29wWi9WRFhMeFNTQ0o4ZU1kc3M4MUY0bFo5MWI5SXhJWWlNcExmR2xadnJmRFZZNGF2VCszeWI3SFBBbUVsTkpWc3NHU1VualBuajZDSExRWmZONnozNlFROVJGa1RTRWMydStSc2k3bldpYmdzclhaODFGa1ZCcXpUSVFuRXJYbUY2NHhiSjR6SHBvS0ZYRElZSldiYkQ4UEMvd3d2NnFNMy9NVUcwZ2EzcWgwSjdPZmtpVUJpZGthZVBxZlNZRUI4UER4K0ZieFd5Y0VwOGFlRzdrWXNYMDFVYUg0Tkd4ZGlvUCtkSjM0c1QrZ3Z2bTZheVVCcUJDU1JUY2NMWFIzL0R2ZkY5eHRoelk3T0hHM1phd0JMd1VXdUpYeS8va2svYXYyQ3QyaVNhVk1UVGlpQ3paNnJmeXc2akJFOUFtQnBLSmRsWTJ1TEQxc2M4bHI5bnlKaFRMQVZ3WkFydTV3OTRXRDZnRjIydzNHb1RGdUJWOW96bm5zL2tlYUpwYlNQVDVJejBuU2Q3eFlYM3pmSSt6RnpuU0dvclVjS2lzRlI1VHBtbUNHM3dVRVNoeDlKV2k0NE9rUHZWSlVUMy9QRTBEWFJlMlNycS95U2lKb0VWQWtGWGR1aUpKZVFneEFZdVNVWHdYWktBQkVKSzhpTGorUENZMFhoWTF4QjM1S210bGNBVm1vS0tsSUxqeVlqRHdaQlYzeWYyVk4ybjV0UzZMM1dxckNOK1pRbWh4clpCSzBGaEpZV0JvaktVcFVicldtbnIxWWxXeXRhR0JiYTJZTEVZWmQwUUkwQUw2MnFxNTRJMHFSaU9Ka3lMRWFXZll3T0RDUXhhV3JRMGxNYVNKb2JKcUdBOG5KQ21Fd3B5TEJLbFkxUVZNYkVwOTA0ZXNWY2RNaUdud0ZEVmJmT3N3L1g4SGtHNGpsSWhUelJNM1EyTUxqQTZ3eHE5VUFBdnNNQUM3eE9hbS9NYmhSVHVHZHBUZkc5ZGJ4ZTRBRkZQZnExMkZxUXFnSEFKNHI0amV0eVhlRCtlN2Q0RjZtZGg2VG1DSXV5N1dzQmU3R29nTnQ5NTEvUGg3NG9TRUxEVUVmelp4NEpmZmdURGtlV3YvbUFwU3Nza3RZeFRDQU5RdFJxNEtCd1pQQlBCMm5xTThDUkI0S09VbXBHeHZ1L3poei84Z1k4KytvaFBQLzJVSUFqd1BBK2wxS3d1Y0VQU25weWNjSEJ3d09ycTZzd2F1bGthV0dzeHhwQWt5VXpWMnhDZ1IwZEhSRkhFWURDWS9WNUtTWklrUEg3OG1NRmdBRGppT1lvaTBqUjlhck8wWXAvdHpRNnJxeTE2M1pCK1AySjdxOFBXUnBzbzh1ZmlDUmRnUVZlR3ZOQ1UxWXVURlkzU2R6Z2NrcVlwTjI3Y0lBZ0MwalRsOVBTVWI3LzlGdUJjM2VTaUtHYkszc2IrK21Yckd3T2toU09CcDVrbHJ3VHRKN3AxVFFLZEk0QVh2TWdyUWRUMitsWHV5Ti9zMUZuTGY4OE5CVjRZVFkzZlpsd04ybTVNVll2YTB1OHRoQUJkUW5vQ3cvc3dldXlVd0FMZStPTm5IYklvcWpNTDZMZFlBM2d4eUwxbUxBamdIeEI4djdzV3QyLy9xdFg5K0YrMk8zY0k0MjJVYW1PdHBpd0gvN2QwY3BmeDhIZi95eUJZL3N1aU9IMzhPcllwVk5BTzQwMzhZTGwrL0xLdXJxVEpLWXBqZE9VSTRQa1F0Z2YwdkppbGFCdFB0ODlLMEwzdHlVM05TSnRRVUFhU0lwSmtrV1dpUmd6TU1UdjZFYjg3K2JmOC91UzM3T0ZJMmdtT3FKMG5maHVoR0p4cEdoTUFVL0YxK29oNDlPOFlCanRVNllSdjl2N0lUdnFZQkUyQ1UrR21uRmY2enBPKzgyYW9sd3JDWGdGdUpEMGpnUnM2cHNDU1VERUFla2lXZzRpK0Y5RzJiVHJlTXNvTFNZb3h4OWtEUW53MmdtMld1VWtyV2FaVlNPSzBJTXpCYjVTK0RXTXRPQXRHei90L3ovTVdUWUt2Qlp0NW1LS05xdm8xM1N5d002MFZkWmpmeHllZ1RjUjJzTXhQdWxmNTJkWk5yb1Y5MmhPSUNvT3lDa3hRcXpYZk4vSVhabGVFVlZBWi9OeXdIQVJzK3ozV09uMk84aUZwbFhNNFBPUzB0Y0xXVWdldFFFaGIxNlAxM21FOFlMNUhDb1N4aUFKVTdsVFpEUWxUWVVqS25FbWFrK2VhU3ZnRXdyN0NtWERiczRCV29DT29Ba05aMThKdENHQWZqeGlmWmRuaGFyVEJ0dWpUVHdSdHJaR0ZaQ25vc3JiU1pyUFRaaTNvMEQ5ZTRxdnBZM2IwSVFPbUZMVVNlRXJPbzJ5UEwwL2IzTm5jcHQ5cDBZMGxLZ08vMUM2cFFZRHJ6SEtXK1BMNlVDc1ZqUWNZdktvaUdCdVd1NHFQMTFaSnVNbWttSkNuRmFXdGFvVmRSajc1aHRQOWY0VWZydE5mL1hPVWpOeFpzcGRuSHh0VFVKWWpxdndVWXlza0FSNktBSVZYS3BnbzhNVFpZK1ZUNXRsUHh6emhPNS9FZDRubi8wWFNkLzd6K1krYlI4RjYwTFZTVUZoQmJrdU84OGQ4dWZmMzNFOE9TRGdiUzV1OGt4aFg5L2VhaXZsRjd6TisxditIck9TYmhGTkxuSm96NWE5dE5uUVpMRlFDdjdSRXBZSEtZMHVzODNIbkp3eXFFWGwxd0FnM3J1L3JDWDg4K1p5ZTNDQ01QaWIwZktRMmMzYkVGNDdyWEJCTHpyMWVadk44Z1FrL1c4bjdCeUd3d3BMa1k4YVRFMHhWb3BBb0s1RGF1UEhEZmZIQzhoVFk4MGQ2bmlJWEtCUkxVWmUxZHArdzhzL3F6Yzlua2p3VEYwOU0vVzhsMEZYSkpCK1I2Q2tHWFk5S2pSTFkzVmNMS2hJS2hucklRQS9KL0NXTTlHc0ZiKzNnOEZKUmh2cmFFUlhFR2gxWERLbVlWSnFwdHU0MUwwanlqS29xMEJqd0xjSzNXTTg0SzJkWi85c1lyR2RkQlFKaHFheWhLQzFwSXBpTWNnNlBUemdkSDVHUm8ydUhFTGU0c2RhOTJ0clUyZFQyMTVZcU5aUnBSVjRmZTBwQlZsdnN1MTgrRzU3Zko0eldrU0o4YWtETFdvTzFGYzR6YzRFRkZsamd2Y0Y4dnRrYmd4VGdLYkVnZ0g5UUVPNWtHZ09tZ0d3QTB6MUhBRXNQL0xvbXNOVS9iaVV3T1BMTGkycUNmQmwwWGl2MjZtZUc3L05GMFR4cWV1Qkhib2w3Z3A5TzRkTnZCZmNQTEErUFhCZndQUWg4S0JRVXBhdkxxR3VodUxPSkZraHBzVmFqdFZPMUhod2M4Ty8vL2IvSEdNUE5temRaV2xwaWMzT1RsWlVWam8rUFo4VGxlRHptNGNPSC9PNTN2NXZWd2pYR29MV2VMY2FZR1FFOG1VeDQrUEFoSnljblRDWVREZzhQK2ZycnJ6aytQaVlJQWtSOVRvUVFKRW5DL3Y0K0R4NDhvS29xK3YwKzArbjBxZldBbFJKMDJqNHJ5ekg5WGtnUUtMcWRnQ3ZiWGE1c2Q0bGFYcTBBbm50bWJLNFJKZkVpbjNZN0pBaDhwSGp4SklyR3lqblBjenpQbzlmcklhV2tLQW9PRHc4NVBUMGxUVk9NTWJQbFplb1pQdzJsaGtsdUdTZVd0QkNPbzd1TUFKWjFEZUFmZFdMSWQwUkRBT3ZTamJucG9FNG9xY2ZqOXk1bStEcFJKOTBMNFJ3bndyNWJ2TXM4eHhkNHR4Qm5nNENwbkVYNTlOQzVZS1NuN3BsQnlEZC83NnRESjNrSjQ4elZMSDhCWTRQWEFZTlRqQ3p3R3JFZ2dIOGdVQ3J1dERxMy83eS8raGYvb3J2OGErTFdWWlJxTzhVTEZtTkx3dmdLUWtYL0QydnkvNW55b3FHdXNzbDMzYTVVclpVd3ZvSWZMTmMzRTRNUVBzYVVsUGtKVlUwQXp4dFdlc0RXMGkxdXJQNDVMYjJNblZhb3QrUWpNSU1RV0ErcUdQSUlVaC95bG1FVWpiay8rQTFmSHYwZDM3TEwvZUtBUGVDVU02dm5IRGNTTlJ6blJTMW1WWC9QQXJ0bFFucndPNzRZZklYUW1razZaVHFuVEN2cVpVNFBkNDd3ZlZGNzU1ZUZDeWU3TlRkMFRNa1pFUjJwTnBzYmQvako2Z2UwaXkzYWNnUFAwNXhPZjg4M2V5ZVkwckxaMldRMVdLR1ZDbHFaSmM0c3FzQVZDbXdhUkhITzV2a2NkM0hoWGlXRlJWcUJUUlZrYlFLOVNrQVBRVVpUd2RNQ3NyWitiaEd4UXBlZnJ0L2lIMTM3akUvVkZkYlNpRllCcWhMT1l0blU4dTdYVnE5MVRvMG02bisvNnJvdE5BU3d4T0FiaXg0SVdxckYxZTRHaDltUTQvRXB4K21JazJKQ0lpdTZTaUdGUWNtR1JKQzFvdTF0VHdCcWdsSzRreWsweUVJUTJvaVlEajQrRW9IQlVwQlRtSXpTbEdnVllKR0kyZjQybmVFcHpHSmplNHA3TmNMMXo3UzBwSHFlQURaSUJBR0tDSisxY0lrUHQyOXd2Yk5HTnhkMEtvTlhYNnlWVVVUQkt0Mk5OdXVkVFpaMmUvejJTUEdZSTRaTXlkR1VhRVlrUE13TytNM2VYY0t0a051dFZVQVJXME1nTEZMYk92UFlBOVBVQkw2TWxIdkY5a1hXZzBBQUNIeEsycWxsVmJYNDZmSXRDbUdZM3MzSmttSjJQUnNtWk9Ndk9kbjdsMGpwMDF2K002UUtMN0YrZHRkU1daNlFaenNZbmRianM3UFJEUWdJVElDY0ttUW9rVllqWm4zdGVja1V6WFl1VmlrM1o4dk03bUZ1NUx4TTVYdnhmVE5RTlFYUlBZRUpGYm0wSENiSFBFZ2VzVjlNR1VKZCs5ZWhzWDd1QXRzcTRxZTluL0pwKzgvWXRMZm9wc0Y1MitkbmtyOW54eWdzaEFac2JsaHVyZkx4MWo5Z0lCTk9ELzZhakNrRmNLSnp2am45Z3JWZ2k5Vm9pMGl0NEV1Sk12cnN1T2FiNHFscVgzbGhlZDh4ZHdjVEZpTUVsUkJrcGlMUk9XWDlMQytzUk9RdXdVQWFnYkR6eC9jc2kvaEc5K3ZTZzF5THViNnJVSVFvK3UyUWxhV1FXRXBVNWU0dDJKZHN2N254eHdxd2djV2dLV1JHTVZQZjIxblBkcWxLbWdKTlJrbmk1NlJCUWE0c2xRWlBXbVF6ZGx2MXZJM1B2VzFxL1ZiUXMweEV5YjF2ajNnMEdYSkN5ckhKR0pxRXFVbkliZTZJYVdtZEs1NndXR0V4OWFzVlRzM2IxQzNXR0NwcktMV2xyRFJaa1pQWFI5Y1F3QVk5VS9IcStzbWgwZk0yN3h0eXVDR01YYWtKWFkvUXowL2U5WU1Wd21qNzB2RnFsaUpvSzR3cGNKNXRDeXl3d0FMdkRVcmNVOG1iSllBbCtNb3ROSS8raS9qL0R3TkN1aXhvVTBKeUNNUGFqck1iT0dYV0UvZkZIeG1hV3NBeksrZ05LS2RPRFdYTWJENzZ2Y2NGNjdWK0d6NjVMbmgwTE1oTHk5SElXVDk3OVNPa3RVNEIzSENncmo2NHdlaUtTZ2lNY1VUaWREcmw4ODgvWjI5dmo2V2xKZGJYMTdsejV3N1hybDFEU3NuZTNoNlR5WVRCWURCVHJ6NTgrQkRmOTJlRWI2UDAxVnBURkFWVlZaRmxHY1Boa0tPakk4cXlaRGdjY254OFBMTi9GblBFUkZOZmR6d2VZNjNGOTMzaU9NYnp2SmxOY3FPYUZjS3BmenVkZ0c0M29OOExXT3BIYkcxMXVMcmRaWDIxaFlvOFY1dGtQakdpbWNONWlxQ25XRjVwMGVzR2hQN0w5WTB3REdtMVdyVGJiWmFXbG9qam1LcXFHQTZIYUsxSjAvU2xGYjdQZzdHT1dCa21rR1R1MytkbUN0S3JsYi9LOWZjZjhYRHduZEdvcDNVTytjQXRWWUdMNzMwZjV0bmZGUWFvRTJyaUplZXFJTDI1Qk9VRjNoc0k2UWI0Y2dMalBWY3FJaHM0OHJmNSsxdENXYmt4S2l0YzB0RmJRQlA1VzZpQVh5TVdCUEFQQkY2d2RLUGQrOG0vNkMzL2luYnZVenl2TS9kZ1lGRkNJWVJQVlU0cDBwMy9PczhQZndyODRidHVOd2hXYmpyYnZqWkdOeDcwalFYMEticWF6RUxhOHpXQTE3dHJYRm05UWV1a0JhVkJ2cDBzRXJjbmRRM2FLaEprTFVoYUpXbFVzTThCWHd4L3d4ZW5mK0JlZW84ZENnWTQxVy9DZVpWdUUvQzFGOWJ0QXFGUTFkVDdCRXRhWk93WDJhd2R6Tng2R2lMWlhMTE9OLzFjTjYvTG0xOThCTkx2c043OWhOdkxmMEdVTHFOMEc2VkdTUDJZSTA5aE5LeEdYZnBlUkZocHdnSlVJN2VETTV2bnBzN3ZSUkh1NWZGZDk2ZlNva3hNdDN1RjJPeGhzejBzSlM3RUx3andpQWxacHNOMWI1TlA0OXQ4RkYxblBldlF5aTErWlVGN1lIMW1QcGZmQ1hOTXpXeFZjL2VoUmc1cTU3LzdvdXV0cnd4cjhFeUZuRnJDUUxIYTY5QlBZZzdHeDR4c3lqUktLWG9WeFdtSWowV0pPZXZjaTNLNE40Nkx6QlZnTEVKRHY5OWxuVlhpNDlDUmFlQW9BRmxocFhZa3lyekE3MFVuVDNXQmNPc0o4dHh3Tk1rWm5qZ2lxVEUzVm5YOTN3aVBaVC9teHVZeW02cEZ0S2VKUzR0Q1lMWEZLd3grSkFuakxsRXJJcm9hMEE1Qy9uN3ZqOXczdXd4SWErTENjcVJIL083d0xrSjdWQnVHRDNvcnJBUStkZ3lCMEtobTFpM3E3SWJYbG1nQU01SWRBZFlpak1Fdksxb1R5YWJmNHlmOW14eXRwS1JHWTdMSDVEWDlrdWdKazlPL3h3ODNDS0l0V3AzYkNPbGptd2RGcUNlT2hxbzRJVTkzc0thb3FVVlhrNzB0Ty9UOEpYd2RJQ283bzlxZWIxdmJwSzFjVXQvMzNDalRrTDV6NjNzV0FWeHhscUdTMTZ0RVlDeVVvYVJRbXVOMGo4ZkRCNXlhY3VhcU1LLytiYXlmYjZrT3YxajVHYmZqaitsTVkrTFVFbVJtanZ4OURqeG1oZDZWYi9FeHhESmt2WFdWVy8wUDJaM2VZNVErNE5SVTVGWnlVRTNaS1I1eHhBNTlyMDNMaS9DTVFScDdZYkNmcitsN2tmUjlBVlhzZXdvcjZock4wakFxRWs2VENabXRCNGRLWUNjU2xLaVBVcno0TlhTdVNjU01CUFpxSFh2c2VjUytoMjlkVEZXY0k5aGY2Z2pPdHVlQkZZWlNsZlhZYzc1WDB4Q3FhSEpLVHJNcFIrTUp5YkpHZXdKYk5xUTRMekZtTjlkZVRVWXJ3YlNxZURBNDR2TnNsMzJHSERCbVNFcUtJNlpOclVnK0t4dlJXRERiK3ZPR3pEV3o3emJ2M1BmRlRObDdwdlE5STNyUGs3L3VuWm0xUUxQZXM5KyswR1hsOXdqQ0RZUU1zT2I4QTJGVE9kdVlIRjBsMkl0ZldHQ0JCUlo0dDJoU1hOL29UVnFLQ3dUd1lpVDhBYUZXOTVuS0tYdWs3NGpPcUE4cVBQdk9qNVgxcVVVR1NPWGFwTDBPeWRFWkFheStmOC9IbDZJSnp0UlR0bTVYOENjZkNKSk1NRXBjOEgwd2RhVTdkSzM4TFN0bnpTbUZTeEt4eHFCMWhVVmdyYXdWdkdka3JlLzc5UHQ5RGc0TzJOcmFvdGZyVVpZbGc4R0E0WERJYURRaVNaSVpBU3lsbk5sRkE1Umx5V1F5ZWFJR3J0WWFJUVJTU3FSMDI1MG5nQnZMWkdzdFVSU2hsS0txS256ZldaMmYyVXdMZkYvUTc0ZjB1Z0dkdHMvMlpwdWJONWI0eVNkclhMdlNSYldEZXEzbThrdEN1dXVwRmZ1MFkwVVV2bmovOER5UFRxZER1OTBtQ0FLQ3dHMnJVVFEzaFBqcmhqSE9YbldjT0R2b0dRRXNxR3YvQnVBRkMvWHZhNEVGcTEzOTFHem9saXAzY1lrZkF3SGNsTjFTSVFUZDJtbWlvWVVXL2VxOVFkTWZiUW5KQ1F6dXcraVJxMWZkL1AwdG9qTE9kYUo4TzRZa0ZoY0J6RmtRd0s4VkN3TDRCd0NsZ3FqZCs4bkhyZTdIUkswYktCV0JkZFl2ODVBcUpJcXYwT3A4VEpidS9kcnp1Z2RWTlQ1NjFlMkcwZm9IcXh2LytULzIvZVhaQTU0cktTQ2N0V2h4UmdEUGg3VjlvT01wK3I1SElFQm9SeDY5TldzaklkQUJWQjNCSkJxeGErNXpWQjd4VFhhUHY5bi9HKzRWVTBiQUdHZjNuUEprUGQ2TGUrcU9zYWxCNk1pb2hqU3BXd2FMcGF5RHNpV1dzcTZOZDlIaStXM2VkaHU2cHFGa0hOZGlLYWdZSjFQR2s1eVc4bEJXVVdVRm9pcndyRVlLajQ1U3hFTGdXK3MwVlJMdzY2ZlZzRjRhNHZkOGxQeHM0ekFMbDFoY1BVSUNpeGNvL0x3TjB4aU54SEpXM3pFbW9JM1BwdXp6MmNwTjdvUlg2WTliUkRsNGhVVm9WWk8vSHE4MUZqT3ZSbjBpNnRMVXUzeWVxdXVKbGRZa3RVUllpV2N0c1pSMGc1QzJGNkdRNUJTYzZqR254WVMrQ29sOUJjV3JXb20rQVZpdzJxSTh5L0pHbTgzbFBxMXBnQ2pGYksrc3RHY0ZzdWQvK0VLOXZTWVdCTmhBa0pZbCsvdW5IQTlHTXdyRzFZVjI5WCtYUlkvMVlJbGxGZElHZkFQS3VQWVZTS2VnempXaXFsZ0pJT2hzMEE0Qy9BckNnZVIrY2NncGsxa2R6MGZGQWVaQVVGWWxoYmpHQjkxTjFub2Qyb2trekEyeXFtb3h1SEdXelMvZEI1NTEyTTNGb2NCNkNHMEloTVpNQkJ0UmoxK3NmY2drVDVsa0UxS0ttbnlxeU1vUms4Ri9KSXkyOEx3dVliU0ZGWTFWOVJrQlc1WkQ4dXdBWTg1S2Fub29sbHBkMXBaWGlEd2Z0SjJyejM1WlA1dFRlODdJMzJydXZiM3cwd3ZydUNpYW5oK1VtbFVXbkxkZkVFRG9hcUNXbnFVSU00NnpIWGJTaHd4TVFjWjU5VzlFYmYzc3hYemMvb2piOFczVzZCR2tUdmtyWjhrclQrbVB6VTJza1JJSHpJclplNTRsTklhNGtGenBYT1hEOVo5dzhEQWo1WlFjU1lwaXB4anlNSDNBNXNwVityS0ZxaUNjSlVFMDZWR0tjd1hSbjFDcWZ0K0NXNDUxMVZpMEw5RHRpdkZnd25FNkpLVndkY0kxbUVSaWc3T3g0bXhZZUxuamJXcUErMGdDZlB6Y1J5WUtGZFFXNWszbXlTc3FwaXpVQkxDbEVvMnlkYjZ1N1JtNXF0SGtWQnhOUit6TFUvSXJPZmdDblRYWi9CY1NJVjdzQUFFd0daU1ZKQTBrSjNuR2pqMWhqd0VqVWpJcXl0cVcycDdiTitiSTNZYlliZDZmL2FWUjZob2FVMnRiNytuWjJzemMrL08zY3pzTFJ6WHJmSmxuR3FYYUtMK0xFQjcyS1c1UFJxZm9hb0sxczhKL0N5eXd3QUx2QStxMHNEZE1BRXRuL1JyVTFVY3VuWkF1OFAxRVl6dHFORlFwWkNjdzJYZnFMQms0cFZhZHZQbmpQT25XeldHa2dyQUQwUXFFWFVlVWt6LzMxOTg3MU9IdU9JWVByd2pLVW5JeXNXaHQyVDExNUtEV3psMG1MUnd4bk5lcUxJM0NTaDhoWFJ4RVNvWG5xWmxkc2RhYTRYQklXWlljSHgvVDdYWUpnb0FzeTVoT3AxUlZ4V2cwd3ZkOVBNOGpDQUtpS0NLS0lqelBveXhMUnFNUm85R0k2WFJLbG1Ya2VZN1dlcVlldm93Z3RkWWloSml0MC9PODJXZGhHS0tVUWdoSE5zZXh4K3BLU0s4ZkVFWVIzVTdFMW1hSDlkVVkzNWZ1UUpVQVZjOXRMV2R4UkV2Tm5ocXF5aUN3ZUM4UjhYYmJqd25EY0Vaa3oxdGZ2eWtZNnl4V3A3bDdOYVlXSG9pYTJWZUJHd3NXQlBDcm8wazhOeHJLRFBLUlc2ckVKZDk0UDRJYXVMYjVuM0I5S21pN09zRFNlM3V4K0FXZWp5WVJRZGVsSWNZN01Ib0k2YkhMRnBIZTIrdXFUUXpDV0NydDdrTnZvYWRZWEFRd1lXRUQvVnF4SUlCL0FKQ3F0UnFFVy84OGlxL2krMzBFOHNrSEZHdVJRaEdFSzdTN0g1SG5lLzlWa2UvOU9mREtCSERjK2ZBLzY2Mysrbi92K1gyc2FlUlRvcTRCWEZEbUp6TUN1QWxwKzlUY29KRUVsY0xUd2ltaDN1Sjh4a2hCR1lMcFc4WnlsOS90L0RmOExuL0FRNTN5b0VnNHdZMDBDUmVKWDNFdXFObVF2Z0tCckFrb0Y0QldCRWg4UEh5a0MzVGpncUk1RlFXYUNvMnRUUlhQaDFmZlBwcnRhdHc1cW9CaE1lQ1ArLytlcnE3b1h2MGZzUkxkSVo5QXBRMFlWOFBTRXdKZmdsSWdHb3ZuV2lWMXp1cjVNdkozSGsxY1hnZ3FDYnF0S1d6RzRQR1ljWnJYS2o2Smh5QWlvRXZNQ2gxdXh1djg3Tm8xN3NRcnRJZUNzTEFvWGRmOU5ZcVpldkk3dDZ3OUkzOUZYWWV4cWVVSWpwbkVFWFR1ZEw2RVdzL1d6Skp4ZHNyS2FFS2phT3NPSGRNbEltUk13dU9kWSs2bWU2eGViZFB2ZERFRGc5U2FNK0xvRWxYdUc4UDhObHdiVytOVWR1Mk9vSTlINUh1MVh2dXNEZXhMbjRwR0xWZFRDdEpDSkNoVnptbDV4TkFNNit2bzdQcUxDYmphMnVSbTd4cWRhUnRQVzN3RHdpb3d0U0pjR0tTdENIU0ZzcTdiZWxFUC85YW5kQTVDV2p0ZmM3Zlk0NFF4T1pxRW5NZG1uK0kwWTVTZU1ybVY4Tm5HVGRac2w1YVJ4TUlRNk5MVlpjYlV5UWVOTjlkcklPZHQzYzdHQTJIeHRDWE1MRXZTNDJiYzU3UjdoWlBUSTdLcW1OWHFOS1RrMDI4WUhQNGxmcmlPV28yUVhnY2hCTGEyYzdaVWxNV1FJai9FbUFKM3hpUWVpdVYrek5wYVRLZ2xJalZJUzUyb01OdWh1WjFyRkw3enB2anpOcy9QYUlLTG56ZXJhK3dSeXJsbHJ1NHZBQXEwTHlsOFRlS2RjR0IzMkttT0dHSm50dm9DRjVGdEEydElQdWwrd2s5Vy94T1d5eTM4VEJEbUZwWFYyN3FzYzg3enNnRm5yZ1p6OWN1bHRRU2xKa2F3dGJUTlZQd0plNGNwaytrM0hKTlRZWGs4eWZqcTZJQWJLME9Xb2lYRUZBSmRYeDNXY3dyeVdhM3k3N3VOWFQxZVNnUFNZS3hGKzJCV0tvcEJUa0pHUVVXRWNuSE1Vb0NzMjJKV2QrbXk3T3NuejQ5b2htYkFxKys5Qmt1RVIxUkdoSG1BcjJSTkFMK29oZmxsbTY0VnROSzVmQmhoWmlwWE8wZUpOc3JacXI3WFQwaVorQlBNV29FVmh1ckU0bUdRb3I0K25sazcvTUoxVm45Tlp4WXBRL3BycXdSaWgvRXc1NVFwSXpKU3luTUU4UHlhenEvTnpENC9vMy9QLzMvKzkvTjBycjNrWG5PUkRuN1p1NUR5T2lpdmd4VGVMR0h1UE55bldpZFUxZWlmV3FNWEJQQUNDeXp3UHVHdDJIVDRDbG9SaE0yenlCdXZPcnpBVzRmQU1VRmw2bW9CQnkyUUlYUzNRUG4xUFBQSEtQMnVTVDRwbldvdDdMcTZsVUZucmc3d1N5Yld2YytZeTUzMUk4R2RMZmpQZmliWVhyWWNqUzFhZzdFdUFicW80R2hvK1hiUDhQQkljWnJIbExRdzFoRUVTa3FFRURQcjRxYStiWlpsak1kandqQ2NxVnlMb3BncGVSczFyK2Q1cys5NG5rZFZWYlAxWkZsR1ZWVXZWUU8zcWlxS29wZ3BoWU1nSUF4RDJ1MDJyVmFMVnF0TnR4dlQ3ZnEwSTRzUW12SFVjbmlZMG83SEtDWFkyT3pRWFk0aFZLNnRTbE9YWmFyN2liWlVlY2w0bkpObStseVo0R2VoSWFpYjQ1MVgvQW9oVUVvaDVadFJpRnFjbWpzcjNldTVVSzZRanZpVjh6R2ZCVjRleldTcXFKVy9BeWdUUndqLzZDRHFtdW85TjQ0dUNPRDNCMExVNTBORE9vVGhBeGplZCs0Z1d0Y09CMjkvSEtpMFMwN0pxM3E0ZmJPd3VPeXVLWXNuM2RlS0JRSDhBNER5T3h0K3VJcm45UkRDZjBwMm1xc1hLbVZJRUYraDFiN05kUFQ1SGFXaXo3VisrVnJBVW5yZTV2WC94Uy9hdlorZ3ZEYkdsUE4veFpxS3NqaEdWOU56Q3VBbWppNXlpVWtqUkNWUnRucDdsM1ZOVUJZZTJCWk1TTGhiUHVSMzZURUh3QUEzeW1TY2xaazhzM2wwRTR2R3FsTE5xVkw5R2ZIckVlQVRJQWp4YVJIUWtoRytwOGh0eGFDY01pREJrdGVrY2tPYXZGdk1jN1FhbUpxU2g5a0I4ZkhmME8vMCtHeTFEWUZnT0tnWTV6bkxYb0JVenExS0JKeXBPK2ZESHhlSjM4dk9jU053RkZCNWdzS0hrekxqM3ZpUWg2TURCbnFDeHRuM09vV25SNThXSHkvZjRFKzNmc0x0MWpaTGhVOVVXWlNwU1ZqYmtMK3Z1NFUwaU5MVllRd3N0bTJ4MGlMR0lQS21UaTNNMktFWDdkTzJiZ2dya1VZVElPbDRJVjB2SmlKZ1RNSlJObUpuZEV6eXdYV01MNmxHQmw4WVJLTklmaWUzeFhteVJqaG5kV2tKSkhqU0pVTzR5czJBRmRqYTJ2WEZIbGZtWmFHdUUya0J0TUhha2xSTmE3MmJtOUUxdHE4dFFyYVhscml4dWtxckRCQ3ByUk13bXI1UnY5Y0NJUVZlN2FFbGpjRHJMaEZ1ZlVBckRHbnZkZmx5K0lBRFRra3BTTW5ZMHhYNU5DZDduRE9xY243U3ZzUDEzZ3BvZ1oxYS9GeWpzTzZKeU14YlFuL1hnRVRUbCtxTHpCZzhYUkhubGlYUDQ5UDFiVEtaTXI2Zk1TM3oybG5BVUpvSjZmaExUZy8rRlo3ZnBidjhwMGdaMVBVMXdWcU5yaWJvYWdSVzEvVlRCVDZLT0ZhME94Si96Qm5wYXB2OXFJbjUyWEt4R25xemlQT0hmVmtUekZTdzlXb0tMaStNZnZGSHdxS2xvRlNDVkZVTTdJQWpjOG9KRlZQT1lxTHo2dDhOSW00Rk43a2VmMEI3MHNLYmFQd01WenhyZnVjYXBXOWpWeEhNdlo4M0ZXZ08wNEMwaGxoSVJCWnhOYnpHTHo3OE9la081SWVQR0pLUmFIZzRIUEtIaDkvU1dvKzUzVm9qUnVMbEZpSG03bzRDM2sxTjd6Y0FZVUZvakxCVVVsSUdVUGlhZ3BLS3FoN1ZCUmlCbU04WGVHcWl5TVhPZERhZU5QMDJ4RU1nYUJIU0Q3djA0eDZCOEJENlpkdFRYSGhiRTd3Q1YwK1hzK1ZpT2tTakFpN1JwQlJrWGtIWk1sUk5Sb0tZVjhhL3lMZ3czekJnQ2t2VTk3aXl0Y1NLMzhZTURRVVZHUlVaSlVWdGkzK3hHZTI1YlRWNytqeFNkLzRYVDM3eU90S09oUEFJNHlzRTRlclQxeVljY1Y5VlU4cmk5TEV4NVNJVGVJRUZGbmlmOEx4VTE5Y0NwUVJSQUg0b1hxcWMvUUxmSXdqSnJENWxlZ3J5a2JQb0RIdU9BRjdBdFpFWE9pdm9lQVdxek5VRHRpN1c5UzRDNDI4TUZTQ2hFd3QrY1JzK3ZpWW9TdXVtbXRhcGdLY3AzTjJGdjQ2YytwZHBtOXoyS2JYRUdJM3ZLWVFRNUhsT1dicDRYYU5vYmVyNE5xVG1aZXJkaGdodVNHRnI3VXhOL0txSzJPYjN6YnJETU1UM2ZUcWREdjErbjA2blE5enk4YVdtcUJJZTcwNFpESTk1dURQbXp0NkVEMjZ2Y090R24rWGxtQ0Qwa01LNjgrN1Y4NE5TTXpoS2VQaDR4TWtnUTc5RXFHMytlSnMyQWFjTWJ1b0NKMGt5czdOK1hiRFdFU3RKYnNsTDYrSW1UWmt4SWMvcS83cHY4NE9ZSzc1dENBa1lOMmFrSjI2cGNtWTEySC93NUhxVFdTSWQrUnUwSGZucnhTNjVScGZQL3ZrQ2J3Rk5iTlU2TjVESlBwemVoY2tlbU5JcHI5NW1QMjJFV3RiWlA3L0ZHc0FHUjhsa0xDeWdYeXNXQlBEM0hFSjZYcXY3NGJybjkxRXk0bG1LeHlhQTUvbGRnbmliSU5yOFoycjY3UzFjbWR1WGdsS2R6U0RjK0Q4Ry9uSnQyVGQvdzdBWW5WR1ZweGhUem1MbXpobFkwSlVoZ2U2aDB3aEtpV3lzVzk0R0ZGalAyWVltT3VQSVREbkNFYi9qZWtrNVUvM09qelpuRlJrVlhsMXIwRWZoNHhIaUVlSVQ0ZE9selhxclMwZkdkSWhaanZ2RVVjalVGanhPVHJnNzJXR25PRURUcUlqZUh6dW5oczdKY1cxeFB6OGwyUDhidEd5ejdLM3hjTExEVVpIUjg3dmdTWVF2YXVWdlBSTjVVbXIwYk5UM09DMGt1UytaeGdYZkRnLzQ3ZU43UEVvUG1aTFZCTEFpUU5FallsUDArZW5xSFg2eCtTR3IwdzcrMkJKVXNsYjllcHdwZjE5a0IxNEVEZmxiZ1NpeG5xR0lMRlBsTEhlN25aQklDVWdyem14R0d4TG5SVy9RN25mQ0NnSWc5aVN4VlBnMW1aeVRNNUlUVHJNcEU3dEVWd3A4YWQxazE3N0RTVUROaXJoSmtyTnlGd2FVZFlTOUl5TEVXV2JCU3dXc21yWnpWSXNHYk9nSW1FcnB1azV2UXdBcldvUXMwV0lqN3JMV2J0RWVTMWRiM0RUVzNNMjVjYjl3eW0zcFhNb3pqZFdXcXl0ZHdxMDdoTFpOVzhWOG1UemdVYmJQaUFTTlpVakM1NE9IREtZWms2Mkt5ZXBWcnZ0OU50bzlPa29TWmdaWmxjNHJ3SG9nbXY0NGZ6eXZBbkZHWGxzZlljQXJLbUxnNnNZUzVaWGJIRTRtakk1VGlySWlwNkFpSk5VcDQ5UC9nQit1RVlUcnhPMWJqZ1RHWWszcDZtbFdHY0phQkFyVmpHMVc0Tms1YmJsMTU4RXBuSnVUMll5UUwyRHpmUEdqcHJ2T2M4aE4xazJUZWZQTTVoQ1VDblFrU2RTVVI5Tjc3R1FuVEM3ODNNYzVOcThKd1lmUlRXNkVOK2hXRVZFQlFXbVJ6UmVGUGN0U21yTjN4dVBNMmFEWjc2ZGNhcDYyK0dOTlgwVjh2SFdiWVpWemVGS1I2ME1LS29abHdSY1A3N1BxTGJGeHRVZGN4b2pDNGtubnFuQTJYcndmOTRMdmhybFl1QWRacVRuYVN6a2RwQlJVVlBWZFR6UUR3aXRkR2dKcGNTcCtLNGp4YVJNUm91a1JzZExwc0xMU0pwcEtSR0daRlNCL2xlYWQ3WitkSGRsOHVzUDhjYnVydzFMaHhxaEpubk93TStWcVVMRGNCQmoweTQ3WjRtei9qU1VNQmNzYkh0MlJoNlJ4Sm1ucStwNVpPVDkvQzAvN3hyTWNTWjVPRXI4S3BBcHB0VzhSUkJ0dW5mYnlPWjR4RlZVNS9IK1d4ZW0zcjJHekN5eXd3QUt2RTI4bE9DVUJUODV5WWhiNFFjSzVvbUQxR1VreFBYQkVwK2U3UUwxUS9LaXRvS0cyZ3U2NWRzbUhUakZ0cXprbm1SOEltdE1zSWVwQzFOaS9JeUMzcENQQk5MVk1Vc3MwQTIwVnZoK0FqS0d3WkhsQ1VSUVlZOGl5YktiWW5TY3VyYlhvWnpDa0RlSDdKdEJzdTdHUGRzcmsxRmt2MjRndzhCQjRwSW5nMGM2VWIrNE4rZmJCbEMrK0duUHpXbzhiMTN2Y3VORmxhejJtMXcxUVllQ3NFb1k1ang0TytlTExZNDZPcDg0KzMzTzFrcCtIWm4rYVkyNUljYy96NlBWNmJHNXVFc2Z4VFBtY1pSbVR5WVFzKzI3bU5NYkFOSVhCeERMSjZxbmh6RnZDZDBrUHlxOXZBQXNDK0pYUTJPcFdlVTBBSDd0eDltTFMrZzhWamZPVUN0MzRHZlpyOHZlSk9tMEx2QXNJY1pia1VlV1FITU5rQjZhSFVOUjBqWHdIOUYxREFGY3d6UndKL0JackFCZHZmRXMvTWl3STRPODVwRlNlVXExLzZYa2RoSHhPWm1pdE5GUXlKQWhXaWVKckpNSHFMU205eDhhOGhIY0xFTWFibndiQmlpTitaaU5BclZEUktXVTVRSmRqdDQrY09RSzNwV0tqZFkyKzJrS1ZDcWt0OHFLMTU1dUNjQm5USnBSVXlyQTMyZWR1K2kxSFpjS0U4OHJmK1hDOHF4d3E4R3FLcEZINlJ2aEVCTVFFdEFqb0VOTWk0RXBybmM5dTMyVEY3eE5tSWYxV255Q01tTXFLQjhVUndhTy9aN0k3SWVOTXJXZG1JZHgzaCtZVUZKekZGUTZOb1J3K0lyWC9MU3QrbTNUOENJbW1FZ0lyUFpBU0lmUlpzdTJMRXNCejRsR2pCSVdTakgzTm5qamx5K2szZkRtOHk1RWRVS0N4Z0k5SG01QU5zY1JIblcwK0NEWllMMXQwQzBsUUdWZjMxNmdMMXMrdkFmUFd6N0pDZTVZc3NJeEV4dVBkWThwU2MrUG1CdXU5TnFvd1RzMXU1cTFHWDJnak5LU3hRS0MwUmVXQ29Bb0lDUkZJRElaUm12TG8vakViS3oxYVFiY1drdG16ak9kMzllUmFrOEFTME5vZGh6Sk9BVXhOODh5SXZoZmV4Ym9qMWRKQUt5MUdXakp0U1l3aHQ0NWNNVmhrbllqUkpXYkRXMmJEcnRBcldvU1ZSQm5yem9lUlp3VEt2THJZdVBmU0NtS3I4WWF3RnNUOHBMUE5jcS9ENnFqTDN6eUErOWsrQ1JVbEpUa2xaWGxBc1YreWY3ckxKNzJiL01uTmo3alM3eE5qaVF2d3F4S3BHOExVNTV6MTdNdDdZYzgxUzUzb2dFVmdpU3FMSE1KNjNPWG5WMjh6RkJQR3UxUFNtaDdYVk9UbGtQSEozeEtFNi9oK255QytnalU1eHBRWW5XRjBnY0RXQ3VCNktSVWlrMGpkMUU5dGlONDU1YStZRHo2OW9PSzMrYXFlVzVyNnZvM044d3NralJoUFVBYWcyekFTaDN5NTkvZmNtK3lSeksybUtkZmJBYTVFUy96aStxKzVGWDVFTkZZRXVjRXoxcEZ4VFREbFl0M3k1cEs2akxpK2VEdzFTeDVnRUptaUhIYTVvVzd4OFdwR2VxSTVxQVlVQ0k2WThyZzhZYThhRXFvQXo1T295aUNrZHZaVHIycFIvTjZodm40bGlGQXl6bEsrZmJEUHp1aUVBbDJuRExnYmdCUXc4M0dlWFI5UFcyZjlhZ0Vqa0ZhZ3RDRTBrcDZOV2FORGhhWlBpK1VncEJNSmdnUkVQUzY5bWlWNy9Sc3hmMlROZnhkMXdMYStPc3dzd1dzd21mTDFiM2ZZWEZ1aTExbERlTUtOMjAwWmdSZDFxN0R1R0NRV1R3dFVKZ2xLandnUEh6VXJOZEhzM1h5THZjREtYL2licnh0S1JrU3Q2L2podXR1TEM5YVdRa2lzTFNtTEk0cjg0RkZWamwrNWJNa0NDeXl3d1BjWjU2WllpMWp0RHh3Q01LQnpTQTVoM0FVdmdQWUdxQWozTFBRajdBUzJudmNLNlpUUnJWVklqbXByVE11NThqTS9CTXcvc2piNXRnWk1hVGthV2I1NmJQbTdyK0h2dnpGOHN3dkRIQ3JQZ0ZlUTV4WFQ2WlFpenlpS2dySXNLY3NTcmZVYnJXWDdzckRXVWhRRjAra1VjT3JnUEMrSTBvZzRqbEZLa3FZd0hsblNOT2Z4YnM3bmZ4eXp0bkxDbmRzOWZ2N1pFaDkvMkdkcm84UEdlb3RlUCtMb0tPWGIrd1B1UHh5U0pnV3RTQktIenllQXJiVXppK3M4ejJja3NGS0tYcTlIdDl2bHhvMGJNMUs4S0FwR294RkhSMGNjSFIxeGVucktkRHFsTE11WFZrZ2JBK1BVY2pJV1ROSmFZU2RzN1FyZ084Vm1Rd0MvUDZmdmU0YmFYYUZLbmYxek5uUjIwRCsweEpGTFVZK2QwZ00vaG5qWnVTaW80TjJLU1JZNER5RmNuMHlQWWZqUUtYL0xaSllJOUc3MnliM2tGVXhUUy9aMktObUdBRzRNV1JkNFRWZ1F3Tjl6Q0ZTa1pJUlNkZmJPakZ0NDFpQXU4UDBlY2VzbVVldjZ2eTZLdzJ2QTR4ZmRwdS8zTnBkVy8rS1hmckNDdFkwTkxTQ2NGcVVzVHNqVHgrZ3FuZjJtY2RWc1NjbEt2RVRQNytCcFVKVlREYjZWZTQ2dFk4Q2VSSHVhZytsOTdnMSt6NkRNWjJVbTU0MFpaYTFQYXRTK1lhMUNkZVN2STN4WDZOSWhaazB1Y1gxcm03VjJuM1hWNVhwM2d5NHhubFFFWG9qQm93aWgzWTNaSGU3d3g5MllBUk04TkFveHF5LzhMbSsramFwSjR4VEFEVTlUbUpKc2VJK2VsTFIxeFFwUTRxR05qN1VLS0o4bEpPS01ISnFsTWJxL0NVZkFGQjZVUzVKVGI4THY5eDd3KzVOdjJiTkhUTWlwTUVnZ3dxZE55S1pjNGJPTkQ3alYycUkxaFNBM0tDTnc5WGRmcC9WemZTSE5DR0NEVllZcWhMR3k3RTZuM0QwK2RwTURKWkRMZ3VVZ2NoYkE1Y3RtWmRkTWVFTmNhNHZNb2UxMzZIZVg4Wk5qcHRxUVZ6bUR5WkJKTDhHMHUrNTJPSk5udm9qYWVKNmxmNTBLYVdiOGlDM0I2ak15Vzh3L3FienFwb1JCU0lFR1RvOXo5cE1wMHl4dk5NRW9KQ0VlWFNMV1pKOGwweVVxZkFMdGlGM1hMeTZTdjNCbUIwMWRnMVRnSlJWeFlkaG9CYlNDTmFKbGo4Q0R6bTdNTjZkN0hETWtwMkpLeHNOaW4yRXhZcFNucEVyemsvWHIzR2d2c3hiSDJDbjRXWVZxbFBIR2MzMFVkZGtSdm1oRDFQdXQ2c2NnaXpJR2Iycm9vcmpaV2VPb2Y0UER3U2xKbGxQYXNpYkpNL0wwQWNPamYwdlV1azdmYXlPOUZtQ3h0Z0RyRk10TmtvdUhSR1FTTVpGTnprdzlNYWhuemJQYXBmT2tyM2hpTjJmdm0zdlNiRURockxpNjRhemU3NHUyZ1FRVENDcmZNaEVKKytVaGo5TURqblZCT3JjcUQyZ0JXMEdYTzUyUHVScCtRdCtzRUJRbHlsaVhZSG14TnNHOHhYT0RaL1hiK2ZITnVKOTZtU0dxQkZjN0sweTNiakpJeG1TVHNxN1JXdkZnZE1qbTRTNHJXejI2ZmdkMVd1S0p5bGxCMngrQXZkK1paQndyQklTUzNCWWNqbzQ1eVVlenhBM1RmTm1JU3g3cm56V2VuZDFIaEFXRnBZWEhodTZTVTJBd3RJbFlzUkVSRm1VdFl1WUM4Q3IzaDhzN3dCbnArMlRRd0hWMWc4WXkxaWs3NDMxT2VsY3c3VlhzVkNIeXA2LzM4dU9sZm5oUktHblFPZGhEUlRDSTZkSWhJa0NSenBIQTN4OEk1UWpnSUZnSHVCQXNFd2pob2FzSnllUXVlZnI0ODNlemx3c3NzTUFDejBRemhYcnpHMXJFYVg4a0VJN29NWlVqTjFWakJiME1Lblp6Nmg5bFA1Z2pnTU9PVXdCSGZSZ0hRUEt1ZCs3Tm9IbTBxMkNhV3c0SGxwMWplSEJvK2Z5aDVUOThiZm55RVF5bWdLeFF3UVNoS3FwS2syWXBSVzM5L0taVXZOOEZUWTNkc2l4SjA1UXdER2QxaDYyMXBHbUsxb2F5MUpSYVVWUWU0MG1PRUJXVHFTSE5OS1BobEx2ZkhyRzUzdUxLZG8rTjlSWkZhZG5abTFDVm1sWXM2YllWVVNBWVRaOHZ0cWdxUjV3blNVSlZWUWdoNkhRNkxDMHRzYm01eWZyNk9wMU9CeUVFUlZFd21VdzRPVG5oNU9TRWc0TURIajE2eE4yN2QzbjgrREVuSnljejIrM253UUpwQWVQVXZkcjVxWkNRVGhrb3Zrc2M0Y2VNT2hqUk9Dc1VVNmVvckRJM3hxcDV1NjhmTUpvSENDODZxNkV1RlF0KzdUMUFvMDQzbGV1YjR6MUhBRStQbkRYM0c2bzkvbUw3NWw3S3lxbC8zMUloSnNOWjFIRFJRVjhqRmdUdzl4N0NLVkJtcW9sbnFjdk9WQ3BTeGNUdG0zU1hmb0hXeWY4a0NGZitteUkvdVQvL2JTbDlUM21kVGVWMU5xU01la3I1YlJEMGxuLzFRYWYvOC84eXVLRFlFRUtCcmNqU1hkTEpOMmp0SHNUUHhkaUZJRVk0b1pVQnBkOXVzcVlCdEJLWVFET1pIbkNjT2RYWVBQSHJ6VjRGUG9LZ0puOGpQTnJFclBvOWx2d2VxMktKRGJGSzM3WlpqNWI0WVBzNkcvMGw0bHpnVHlTcXNDZ0Jsb29jalRRZS9VQ3lKQVBhQkFSNGpteDV6eDQ0R2tkV21CUHFXVU9obmJGa0c4aHRTRkVGYUgrK0Zza0Z6RDZTRnhiaFNGV3AwWjRnQytCRXBYd3oyZVUvN3Q3bG04aytJN0s2d3F2QlI5RW00RXF3eE1jcjEvaG85U2FicWs5cld1S1ZJS3o2RHNIOTU2Rm1yWVJHUzR2dUtTYmszRHM0NGR2aUVLTkwxSjZrSzF1MDF5SWlBMVIxUWN1WDZkZTJKc2h0VFFBcldGbnRzaFd0Y3ZmZUE2clVVc21LS2l5b0F1MUVvQTNSOGgwRXBXOE1NN0oxcnZMa0szVnpkMkJDQ2F5eUhCK04yVGs2WXBKbHRXcWVPam5EbysrM3VMcTZ6bHE3UzFpQlY5bWFnSDZHbExOSkdERHU3MUpBcUN0a1lpR0RhNTB1OGNaSHRHVk1WTVI4blQzbVFBK1lrcE9qT1NXbExIZVlQTXc0elllTXQyOXhKOTVpSTJyVEVaS29NS2lxcmtocmJhMkNWbHgwVFhoeE5OK1hkZEtEd2FNa0xxR2ZoZHhwYlhPOE51UmtaOEpFWjFUWXVoNXdRanI1bXRQRGY0UG45K2tzL3dKSEFKZFlHZ0xZalhraGlxRHk4VW9mNWMyTlR2UFdyQmRKMzh0MnNVRXpvSlNjUGNibHZITHBjK3VCRGlXbHJ6bE9qM2c4M1dGZ05HbTlha3RUYmdDNndJMW9nMXZ0ejJqbEt5Z3RDQ1dvb0Q0WDgvVis1NG5xY3h0OHhyOW4vYnhSZDRQUWhsaFlwQXE0MVZubmRQVVdhVkh5YmJGUFJzN2U2SVN2ekE3WGx0ZnB4U0VpQkdVTm9xcmNPR1ovQUpONzBlaGt3UWFnWlVVYXBxUzUwNlkzT2xrM0Y2OUpZRHYzMitlUjdvMy9wUkdJMHRLVlByZmFhM1NKc1ZoQzY3TXAyb1FwaUxMSi9IcVorOE9jMnZpU1RuRVorVHNmVW5KMWdBMFZtb3lDRVdPeWR1cnF4dWZ1NytMU3p2YTAzV251RDY0bW1TeEFEQ1VkM1dFdFhxYVZINkRNR1BrZVBrODhEMUlGK01FYW50ZkZtUHpKTHdpUHFwb3lHZjZCTEhuMDkyOTlCeGRZWUlFRm5vOGZxeC92QW04S29ra09OcEJQM0hOUHRBcXRkV2NGSzcwNUV2aEgxUFVzdUl4TDVheExveVdJbGlIc09sV2YxVzZPOWF4NXl2Y0pUUTZnaGxGaWVYeHMrZU1qeXhjUExWL3RXTDdaZ2E5M0xZY2pweUFWb2tUSUVVSk1Ya3V0M2plTnhsN1pXanVyTVJ4RkVhMVdDMk5NVGNTbUNDRUlnb0JPcDRPblBLUTB4TEhITk5IOHg5OGY4bmUveWVsMmZEYlcyMnh1dE9uMUlyQnVYdC9yK0V4aVJlQTcxN3JuTllVeGhpUkpHQTZIREFZRGZOL0g4enlpS0dKN2U1dGJ0MjZ4dHJhRzc3dWszY1l5V212TllERGdqMy84STMvNWwzL0pYLy8xWDg5cUJiOG9pZ3JTM05YYU5BMVpKK281Z0dqOC8zOEEvZnB0bzdFcTFBWGtJOGdIVUNYT2ZjdDk0VjN0MmR2RGZOSzZpdHlZR1hUY3ZlUTlIUjkrTkdpdWI2c2QrVHZaZzlFam1PN1BXVCsvKzJ1L3JDQXA2a3BXYng0R2w5VTE0U1drSWdzOEh3c0MrSHNPWTNWVmxTUEs0aGhkVGJIaHlwenE3aW5LRldzUXdpZU1OdWt2L3hvcGcvKzdwMXIvcDdoMS9TL0w4dVJiYTNVbFpkaU8yN2MramRzMy8zVVlYOFVMbHZCVUd5a0RsTjhuaWpjSmdsV3daa2J4T0tzK3lMTTlrc2szR0ozTTZKY1pBV3drZnVYaGFZbXlJQnNuMGJjQkNVWUtqTElRbEZSZVJZSGpJV290SUdIOTNrY1JJb254aVBIb0VORWlaTU5iNW9QMUcxenZYMkZOcmJJaWx1bmFpRFkrUFJQUkduajRsVVhsZFQxVTRZSzl2ckRrMnBJYVFZUkhqSStQb3RGSnZpK1BIZmJDTWwvbFV3QVJpaW1XMUVZVVZsRUN2amlMVDU4alVScUY1YXdIMUFyMWh2eVZsaXlRakVQTmx3ZDcvTTNPVjl5ZDduRE1pQWtaRlJVS1NZVFBFaDArMjdqSm4xMy9nQ3VpUzN0cWlTcUJNTXFwSzJlMnk2K3JKYzJaK2xkcWpOVGt5cEsxTFNkbXd0ZjVJNzZ1SHRNV0lkMjR4U1FxS1pYYkRkbFlSb3RHZGZhaXJlNGEwaHFMdExDOEZyS3gwaWJjOHpDcFJWdEg1czNvRXdHeXVjWWI4dmhaYk5VczA2SkpkYmdZT1BnT2JWZXZRdm9XNlJta3RETnFSRFltNmxiT2tZbnppdHluN0xkbzdJWXRTSUVKRE5OeXdtQjhRa3BXODNkT25SL2pzeGIzK09EbU5sZUNQc0d4cUJXbThpbmt6L3l4MXRhd2hsa245azJGVWhZL2xYaWlnOWU3UmZ1RER0M2RQbCtjZk1zanZjK0VsSktLQVpxQ2l1bHh5bWsyNEhqNUZwK3QzdUphZTVXdWxFU3BJUlRsV1oxWDY1OXQ4MVVhdVdrL1hOOFhHUHlpb2dWY1gxcG11bjZMeHljbkRLWlRESmFDa29xS3ZCb3hPdjczQk5FV1Fid0JDR2NEYlVxOEdRR01HKys4bU5pUDhaRDFmaitqK1o1MkdNM0FNVi9mZDk1bTRWVlFPMkJYZ2FEd0RTZkpEcnVEdXd5cWRPWWlEV2UxZjVjUlhBblcySTZ2MFNVaU1CcmZ0d2paWERjWGp1R3kvYnIwa21yNmJUMitOZGJOeGlLbzhIU0ZIUnRXV2kwKzNieEZXbW1TeHhVN0hKQ1NzNXNjODhYRGg3UzNRMjYzbGdtTlJCaU5zTG9tZ2QvOVEvNnJvUWxXT0RHVUVSYnJnL0UwbWNySXlhblFuSmtuenhkYmFQQ2tvdmFKYmRnNk1Hb1VqQ3lkTU9EMjlocmJyTGdFQUFNdEpQNVFRRjdmZTNoWkV2amljVkhUdHVjdGx1ZW83dG4vVGYxZldSUEFDVG1aTENtRnBSTGdTNHZBdU1EdVM1MXJnVEFDcVMyZWdLVnV6SWJ0MHRrUDhYT0ZRdGJqN2J3dDlmc04zMTlCZWUyenpPY0wreTJFcEtyR0pPTXYvM2Q1dXZmYnQ3K0hDeXl3d0FMUHhhSWk3d0p2QUEzN1o1d0Y1UFFBeHN2T3NyTzE0bFJyUnY5NGcvZEN1bHFXMFpLemdxNFN5TWV1VFg0b2xxNzF5REpKTEhmM0hQbjd6UTU4dFFOZlBJUjcrelg1TytzQ0Z2VDNMMWJlV0MrWFpVbVdaU2lsWmtyY0xNc0lnb0E0am9paWdDajA4UlI0bm1VOEhyRzdOK1gwZElqbkNicWRnSDR2WkdXbHplcEtUTDhsVU1iaSs1TEFFNjVidk1EbFVsVVZnOEdBQnc4ZU1Cd082ZmY3REFZRFJxTVJqeDgvWm1OamczYTdUUnpIdE50dGVyMGVhMnRyckt5czRIa2VPenM3M0wxN2wzdjM3akVlajErNEhVb05XUW1GWm02bWdTUHBWRk1EK0gzTS9IL1AwU1RMVkhsdC9UeHk3NXUvL1pnZ2hMT0FuaW1BUFJiOTZWMmpKb0IxNFJ3L2hnOWh2T3ZJWDFzblBMM2orNW0xamdET1h6eWY1YnVpZ2xtVnpvVUMrRFZpUVFCL3oyRnRsUlg1NFlmSjlON1hyZTVIQk9FcXl1c2lFRmo3dElSa0YzQ1ZYa3pVdW82VUlaN1grejhIOFJYeTdERkc1eWl2UXh4ZnA5WDlrQ0RhUm5rZGxBb1J3a2RLSHlGZFJkeXo5ZUcyaWFETUQwbVRoMWlyWitLcXhtRXpSQkdhTHI2SmEwcndMZDV3bW5tVXFIazVKV1loL0FCbkYycG4velowOGVrVHM2YjZiTFUydWJLK3dkWHVKcHZ5Q210aW1aNks2ZGlRMkNvOGJSQ3BSVlFhYVFSeUxxZ3JwTVlYRm1QQk14WmxCQjdxdlZUL05takkzL216VXlMSlVJeUJpVlJrY1U0ZUZuaXBJTlFTMzVvNUVyZ0p1czhYMUpSdXJZMmRjaUNZQkJXNzlvUXZodmY1WW5LZmZRWk15TW1vWmtSOGp4Ylh2RFUrakc5eU05aW1QL1h3c3dwcGFnTGdqUkFtemNOMVRVTDZVTWF3TXpqbGk5UDczRXYyT0dSSVJwczFrVE94bXR6Z2d2dkNJcjZMck4yNjBxUmhJR2tKaWFkazh6RlcxUFREdWN6bUY1bmsxZ3JVWnI5bXYzOE5kV1RFMlV0ZEZ0b2xxZUxHQklXSEp6eFhML3pjaithWGVoOHZyclQrekNqUW9hWDBjektSVUZwSEl3a2d4S2RMbTFXenpKcmZveXREL0twRW1QcENmeUdpVmN5UmVDNmJRWXFLb05BSURWNG5KdWhjSWJ3UzBRcDhnbVBCdld5UElRa1ZoaWs1aFM1SlJ4bEprWk5WaG13TmJzWjlsajBmRXZBcjdlYngydUpHbktidFg2WGYxaE1aVzVQQWxTRVNHbEtmNitFcWYzcjdBOUxkaFB6WWtVOHVjYUNpS0E0WW4vNEhvdFpWV3AwUDNKaXR5MW1MZTFoaUFaM1FJNDU5VkZGbkkxNDhMYzNsY1pGQWhmTnEzK3JDOGhyNm12RUVwV2RKUmNwaHNjdHV2c1BJVmpOUmNWUE90NE1qZ0RkVW4vWFdLdTNTdzlNYU9SOG91eWp3dkRRWHdzNmRwMGJ0ZXlHeEJYSFd6NnhBR0l1WGF0cENzdDdwY0h0NW04Tmt3SEEwNGxRWERNMlV1MGU3ckxlV1dkM3NFM3FLV0ZxVXFXb2l6SCtGQklIM0JUVU5LaXhHZ0phdXk1ZDFva1NGcnA4Vm1sclNyekQzdHNKTmhxd1BLU2d0NkxZVVhlVjB0Y0pZeUMya2FzNSsvV1UyOHF5TWdJdmo3VVVsci91YndhTFJsRlRrVkl5bUpjTlJSVS83ZUpJemhjb0x4M0dhOFZvaXJYRkpEcDZpNHdlMDVoeEZtanVoZmZFVnYyVUlsTmZDOTVjSm9pMldWdjhCdnQ4SGV5RmdXUWRyckNtb2lnRkZjWHpQbUxka09yWEFBZ3NzOEhLWWV4aFlZSUhYQ0NIY3hNcWF1aWJnUFZjTDJJOUE5czZJalI4YnJIWHpFNkdjQlhSbnk5bTZsb2tMb2x2MS9iNGE1K2RabGVWd2FQbkRBN2NjaldDVU9Ndm5ZVEpQL242LzBTaCtEdzhQR1E2SE0rV3k3L3NvcGZBOGowNm5VeXR2TldreUpzc3JrclNnS0RWRkNXbGFjWEthc2J1ZnNyUVVzcm5xczlveEZJWEZ2R1NIR0kxRzVIbU81M240dms4WWhzUnhUTGZiWldscGlWNnZ4OHJLQ3N2THkyeHZiM1BuemgyMnQ3ZEowNVEwVGJIV0lwOWoyM3B4Tm1FTTVJV2xyQ3kyU2V3WHdoRy9mc3RaOTBySkxLNnp3SXVoVVZkV0dhUURSd0xyWWk0ZTlrUEhuR0JFaFk3NERYdXVUd25oTElZWGVEZG9naUMyT3EvK1RZOWRNcE44RHg0dERWVGFVbWhMK1lvT2ZxK0FFaGdESXhZSzROZUtCUUg4UFljMVZTV2xmeitaZlBOUHhvUHRmNjFrbTdoekU4L3IxWXJjWjVEQUZvUUlDS0l0cE5jaWJGMmh6QS9RT2tkNWJZSmduU0JhUjZtMnMzYytaelYwZVhEUm1KS3lIRktWQStBc1hONFF3QzBaMG84M2FQdExUaVZyN053NjN3SWtHR3ZJc3d4ZEZEUGl0NnIzendmNnFzMXl0TXd5UGRiOUpiYWlEYTYwcm5McjJsVTJPc3Q0UnhGcURBR1d3Rmc4VzZHc0FOMFFUdk9FcEd0L0tmVXNPbkFXSldqbzMwWlI5UDQ5eURVVXFBWktCQm1DS1lvamszRS9mY2hxc01KMnZFU0FRaFlXejlZUHFxS20xZTNjVFd1bWpLMG9wYVZvKzV6NktYODhmc0FmczN2c2NjcUl0TFordG9TMVVuckQ2L0h4eW5WdStOdDBSekZSS2ZHMGVZUGs3L3pSYTVBVzdRdFN6M0p2OTVEZlAzVDdPaUduc25DVVRCaWtHVmxMVTZId0JKelplMTVVdHowTmwzekhPTUoyUmpmVUhOTjVFZHVMck5zNnFiMXNyS21iU1VPZGJXYm1TZEx2MEk3TnMrVmNONVpJZkR4OEdhQlVRNVM5eERxRmE0TktXQ3JwaUwvU001U2xVN2hKQkNFK1c5RXExenJyeEVtQXhPQlpPQ1BwWGx4ZHgreDM3bnFXUUdnMWpBd3JzVUsxVmdtM0lQSUU4YW5QdmVrK3gzcENTa0dKWVVqSzNXeVhZaDhtWmNsMGZaczczWFUydWgzYVUwbVFhNmZhTm9CcGxNRGZvZi9hZW5TMUJrOWIvSEhGc2dyNDZkWTFSdVdVbzlNSlU1TlRvaWtKTVJSa2syOFlIdjBWQW9HdXBtQjFUV1ZhUERTaEtJaDhUUkNBTE9mMjYya2l6Yms4Q1NxY3ZYUE9HUUg4T3FGQWU0SlNHWEkvWWFBR0hOb3hZODdYL2cyQlpTbTVFVzF4dGJ0TjMydTdjY1BxcDVPKzh6ajNtWng3bmZlTWZrci9zajVZaXhRUWxKbzRzV3pGWGU1c2JMRTNQU2JSR1NVbGgzckF3L0V4MjYxMUlyV003d21rMFFoYk9lWDZQS244T3ZFc2J2TzF3VjIzR2hmSVNDcE5vVFh1UDRNNDh5Nm85K2NWZHNZS0VKNzdhUzVjMm53OVhqcEw5NXI4eGVQTWllRkZ4K09uSFpXOTBIMHV2MitmM1RlZGEwTkd5U0NaY2pLY3NPRUh0R1ROaXI5TVF1dHM4SGUxanowTFFlVVRsVEdSRFFqeDhGQXpYNUgzNVhsQ0NJbFNiWlRYeGd2NmVGNGZQMXdtaXE0U3QyOFRkKzdnQjh0WWV6RkR4QjJEMWlsVk9jS2FmUHFPRG1HQkJSWlk0SGx3T2M3dlBFcTN3QThQd2dXQXJZVnk2bFRBWWMrcFhsWGdndmxDOHVNckRtM1BsTDVoRDlvYmtCekJkTGQrTkxQZjc2dXgzbmVqWVpyQy9pazhPb0xkRTVobXJrWnNVYjIxV294dkRWbVdVVlhWakRpTjQzaW1zdTEydTZ5dXJ0RHBkTWl5bEowc0pjdUtjeGJMRmlnclF6bkpTTE9TTFBFWTl5UUN5elExTDhXWmFxMUprcWZYbFk3am1GNnZSNy9mWjIxdGphdFhyN0s5dlkyVWt0M2RYWFozZHltSzRybmJrUktDMnRHOXFGd2xzZXFpc0Y5NnRmVjdIVHRZNE9VZ3BJdERWamxrcDA1bFdSVzR0dndSakp0TjNFOEdqdndOT3M1Q1gzZ3N4Slh2RUVLY1dYQVhZMGYram5kZGtvSXVYRHhkdkFmWHUzVmprdGFYR3dPK21TM09GTUFURnAzMHRXSkJBUDhBWUV4WmVWN245Nk9Udi8ybjFwVC9YRmNUMnQyUDhNTmx6aGMzdkF3V0lUMDhmd25sdFluaXExaXJFZEpEaWdBaGZjNVpTamRKS2hkV0o0VEVtSXFxSEtIMVdaenVJZ0hjOFFQVysrdjBWQitaV0d4aDNwNEZOQ0NWUkZjRjJja0JqSWYwZ0ExY3JVZ0R0T2h3ZSsxamJtOSt3cXBZWlZuMldWWkxkRTJMN2pTaU5mWHdNb0dvREJLTG1KRytzZzdhTjRRa3pNWXFZUkhXMmZvS1FJamEvdkY3WU5ONEZxSVdsRmh5SUVYeU9CdnpOOTkranJvV0l6WStROW9Pd2dnaTYrcUlYdml4KzRmUUlDdU0wcVFlakNQRFl6M2lkMGNQK1dxeXd3a1RFa3BLTkI2Q0NKOHVFZHZoQ3A5dVgrZG12RUpuSWdoTGl6VEtFV2h2aEFDdWxiSTFhV3FrSVFNR1pjbEJQbUdmQWFkTVNDaklxVGpTQXdabVJDWUx0UFZyWitQRzIxeTlHcmN4dDBDVFJtQ2YrUHNMSFFmR2VhTEdsU3U2WFZxM21EazFZMU5EMmM2clVsK0NPRzFTR1hTdFBLdUpLNG5BdzhPWFB0SlRDQ05lc0Ruc2JQK05kRVJTVVVGYUdWS2paeXBDRDBXTGdPdWJhM3h3ZFl0ZUVTR25CbVdvaitWbFNPQjZuTFJPQ3p1enFEWVZnYXJ3TW91MEVpOWNwYjBWc3JyY1lYbTN3K2Y3anpoa1FGS1R3QU5TeW1xSHlmR1U0OGtoazF0MytObkdMZFpNbDdhUlJGcmo2ZnI0ckYrZlhEbTNEeStLT1lMUStDQXN2cTFvWjRJVnI4MGQvenI3U3hQR3c1Uk1GNVJvS2l4cE5TUVovZzRoUFlwc0g0R3B4MmhOUUVFZ01ueFpvdVFGYnU3aWJhVEpiNWxYL0RZK3pLKzlHcDRBQ1RxQXdwTVVYa0VhREJsNUk0YTQrci9PcGw3VVNUMldyYWpIVHovNFUyNTJQeUpLUFlLeTZSZWN2NENlU2dCZlZQdktTLzU5eWU5c3JlREZJaXBETEdDdEZYT3JzOGxPTkdKYzVKeHd6SlNVUjZOOU52MGxsdGRiZE1NV1VtdDhxMTBXS0UzL2ZZMWtYczJMdnJscWhXZnNzcWpGOUpOSnhlazBJeTFLZEcyTmZLWlFmWlZKelpuUzJpWEoxQzRUUnA4bnQ4K1ZJSGdOVGdmMVBoc3NaemJRVHhLV1lHZDM5NnEyZ2M3UlRPeVlDVU55MGNQSWFKYmNjbGFNK25uWGZqMGUxUXB6WmFEcnQxbjJWdWlJRmlFK0FkN01CdG9WQzNpM1VDb21idCtpMWZtWXVIMlRNTjdFODFmdy9BNmUxMFhXWlVYT2toWFBJQkR1RkZjWmxSNWpUUG4wS053Q0N5eXd3THRGOVA5bjc4OStKRG4yUFUvc1krWnI3SkY3VmRiQ1dzamlVdVFoZVhqdTNPNitWOU9EaGxvdmFnZ1FCQUY2bWdjQkF3am9WejBMZWxIL0J3TUlFQ0FCRFF6VWczbVExSTJCSU9DZzFlcmI5L1JkenVIbE9WeUtWV1R0bFpWN1p1emhtNW5wd2R3alBMTXlhMk5tc2FvWTM2SXpJek1pM00zTnpjek43ZnY3Zm45TXJGMW1tT0VrVVpvYm1IUktBdnROU3daVkZ5MHhSSzZJL2FWZ2toL1ZBYTltQ2ZHZ1pSV1NZc2hCQ2UwYmlMelljV1JKMzhkN1Z2V2JaakNLRGIyaC9mbUtjakcrTW1SWmhsTFRkbHprQTI2MVdyVGJiYzZlUGN2Q3dnSjdlM3M4ZnZ5WXdXQk1raHl0WHN3eXhWNVhNeHpaWE1CV1ZYdHlaUzJVdnJ1N3U2eXRyWEhyMWkzQ01NUnhITkkwWlRRYVBaVkFCdHRDcFlDS0QwN0JSUnBMc2t6TEtzQng4NEFQNzlrQkg0ZFZyWWU3Z0RuMDRpMXJRMDlDMlByU21SMC9vNDdOQTZ5VG5GQi9ROGVJNTRZQm95M1I2RldoTW0rRFpweWMvRFV6YnUzblEvNXNuNDFoc0FtZGUvYW5pcG5rL3Y2NWl3ZWdyUFZ6a3IxU3g0bUNBQjR4STRCUEZETUMrQzFCbGcxMlhMZnhuN1FlL1ZjcTYvOEhwY2ZVbXgvaEI0dEk2UUZnanB6MVdEV2dFQUlwUXBDVnlhcS9NY2ErelhNOFVBaUIwU2xaMnJHcU1xYTAwRUVGTU5TOWtJcndjVlJzdS9hcjZ0SUNoT01nOVJEWjM2RTFIbkllaHlZVi9QWUZtc3VyTkwwbVovd0xMQWNYYUpvNk5lTlRNejZ1TW9oSUkxT1ZHMS9ueEsvT2JZNkxQS09tbUwzbHVsbFJzQ0ZnS1R5N0xHenlaSmhUT3V5VnlMSmVDcVd6SWNVUVlkalZFYmRHRzRpTjc5QkdRdXNhVHRnQ282a0FEbm9hbVd2a1JQbXJwU0lOQktPcTR0NXdrNisyZitESDNtTzIxWUFCTVVsdS9lemowaUJrZ1NhcmVvSHo0VHdMWGtCRmFaeE01cmFlcDZUK0ZlU0w4d3FrUmdrWVMwM1BHN0R2ZDlsblNJK0ltSXdVUlo4UmNYV01hYWFvZ2NHTVJmNTlwaVRpTTYvcmsrOG5tU0F5a2t6L2xLanUvTHRTUVNYRFZET01Ob2l4eEl3RUpCb3BGUk1TV09mS3hoZFVIZ3FSWDRVTWpCWUlVODVzYmV0Zzh2dWtmczJUa1NTVXZqTDlLcWt4RElZSjNmR0lnWTdJVUVnRUhnNDFRdVpGZ3puWklOUU9qakl2UWY0ZU9uQmhNYXNCWVJWMWpza3NlV3Njd21xTHNPWlFQOWVnNWM3eDNkWnRIcVliZElsSWlqYWhFa2FqTWZIam1NaGtmTko4bDlWR0MwYUNTbUtRSnN1RFgvS1RmRmtidDBJRnJEWFMwWGl4cG1JRWwrcnpETTVkWUd1NFNWZjFTTWx5Qzk2RUxONmh0LzhsUnNlUUs2a2RNcXNDTm1NY25TR05tRDVEbHRkUkRIWXdVRmpTdDhqdFd4REJwd2psQ0V6Z01EQjk3dTdkNEdIL0lTT203dElTUVlpa2lXRkZ6dlBPNHJzc3VTdDRIWUZNOVpQazc3UVM4L01yN2xobGUrY3krU3RLMjFFbzJvOER4a1ZvaGFjeUttTllEaHQ4ZFBrY2c4Yzl4dHQ5aHNSc0piczhpRGE0MmxnaGNhdklHRHhWNUE5WHZIajdmUTZjMmkwbWJ4eVQvbTBQTmVvbjlMb2o0aXpOYlpFTlRuRXZGSHJ5MlplQ2dZUFhwL1Qzc3F2QlQ2cENPMVk5MlhTZVZwRm1jcTRwbW9TRTJJMUkvSmhVMk16SEUvTDNoVzc5UlZDS1ZRQzNxZ0VMYnAzR1ZrZ1F1M2c0T0RpSS9ENzZjOEQxV29TVlZZTHFCY0xxZVNxVml3U1ZjL2pCRXE3ZndKR1ZQSVdJSlgyTnlUREhMRm9MUU9tSUxCdGlUQnEvMmpPWllZWVpabmh1bEhQZXpERERLVUZhRW1POEQ4NURhd1B0MXkwQi9FdTFnZ2I3dk9hR2x0UUkycENNY3h2b1luNzVCaEk4K1hMU09ESTgyakdzN3hyaTFGN21jUUw3US92emJVUjV2ZEp4SE9yMU90VnFGZC8zbVorZjU4cVZLMVFxRmI3NjZvOE1oeVAwVXlScFNobEdwOHlTWjFrMnlWZjhzcGh3UGNkeFBzSzExdS9QSWl5bEFGZmF6WkhIRTBoR1EyWkE1VXl6SnYvNWxnMGl4YmlvRmFTUkpZQUxtL2hmMG9CWkJBeDRWYWpNMmJGU09QbGF3eStvSGw0YmlEeTFnOGx0eWZlZ3Z3Yjl4eEIzYmY4VXJ3Rk5WeXhyWlRDS0lVNk9YN285QldpbXE0d3puQ0JlZzVZMXcwa2h5L283MHZIL1ZtZmpUNVdPLytkR1ovK3EzcjVPRUN3aHBmLzBMeHVURTczRkE4U0w5bTRIWXlLU2VKY3M3UVBUWlhJSHE0Y0tBRCtUT0lsQVNpdEdmSlhxWHh3UWpzRjNESzJnd2dWeGdRcFZZdE9rdWZnUnl4ZmZwZWFGK0QwUHArc1NLSUZuREw1T2NRcXJhaU9tMXNObDVTVDVleE5tUkdGcGllTEdhcWxlclRYYXhKaUpWTzVOdWZGYVZWT0taa3lHeEdHWG1CdTloNmpFNENvWE9mY2VxNVU2TW9MQWFCeFNMTEdTMjY0NGlrekN5QlBzdVJFM04rL3l4NGMzV0djdlY5T21HQXdlRGhWOFdsUzQ1SjNodmVZNTVyTXFvUUl2bzJUOWZKbzVFZXppdkJHR3pCV01STVp1c3MrVzJxUExLRmQ3S2pTR2lKU3Nta0ZMbzJNejBiZTlOSEpoNTNoazZDZWFKRHRJTzB3cHFPY2xobk15RzBVcU5KSFI2RlRoZWk1K0tIRmpBMG1LTk1wT05yVE9DZlpqVkk1UFF5b2drMGhkcU5BTUdZcFVKeWlsMEpOYnpyRk1YS2tlN1B0RzVPM09qT25yQVVNVG9kQTRDQ3A0dEVXTlJsUWo2SHY0R212SHJvdUFqSis2SUNLbkVSQkc0QnFRWXcwcExBWlZxbzBhclhNTjZzYWowYXR3TDlubWNiTExpQWlGWVljKzQwN0NLRXJRRnlXcWRZVlZ2NDZVRG1Hc0VVbVI4N1VnSGwrMlBRc21KSENXRUFyRGt1ZHp0YjNFK3R4RnVyc0RralROd3hZQ3hpWWxpVGFBY3BadWpZTkc2aFNaYWtRcUVDb25nUXVsYnhFSmttR25aREVVM2Z4VWtjZmJaQzZZbWtQZjlMbjErRHZ1anpZbTZsOHpVWVFIclBwdExqWGZvNjJYQ0dJUFh4ZnBCc3d4emE2d1hDNFR2MlVDdUZTUTV5a3Naa0lDUzZWeFJvcUc1M0JwWlk3dFpKbU4zVjBTYlZYQW05a09hOUVXYzdVYUMyRkFvQVdPVWZhaFRNZ1hEc1o0S2dyeS9sU1JWMjQramlWcHpIZzhJdFZaZnAxTS9xa1Q4citZMU04aEF2aUlJdjJrdzVBLzlEejNuTVdnMFdRb0VsTEdLbU9jS1JJWGxMQTVrc1dMRnM3a0hTRWZpNnErb0lsSFExZXBFaEl3eXZNQUZ3RTNyMlp1NGJvTnZHQWV6NThucko2bjF2aUFXdk5Ed3VvRlhLZUt2VnZaL21lTXhxanlxdVZ4WlpRSVlWRHBnRFRlUWFtNCt3cE9aWVlaWnBqaHArQk5lS0NiNFUxRUVhQm9ETVIybllXZ0FaV0ZQQit3TnlWN2ZsRzVRWXRBNXp3WGNHM0ZFajNqWGF1aTRpa2syT3NPWmVpT0RJOTNEWS8zRFAwUlJBbDBoN0RYTjR4L0FXRnhRUkJRcTlVbTI5emNIR2ZPbkdFOEhxT1VJb3JHUDNjUmZ6S1VnVGdEUjFnK1ZrcmJuSVVvQlNkTHp3WTVPSDcrYkZnS0lKMDA3L3hGcHUxT2hUcjBmZzVUL21rTy92N3FIaDFlRFVSK1FpcXl5dCtvbTQ4THZ5QVVxZCtFQUQ4bmdNUEcxSHI0cmJyZ2J3aUVzUDFZeFREYWc4NEQ2SzJWY2xQbjcvK3NaV1F5SG1TcG9UYzJER09EZW5WQklnb1lZLzBGWndyZ0U4U01BSDdMb0ZVU0FYOEtLbWN6VFBhdkRCbWkvUmxCdUFLVTgrQWRoNWZwMUNLM2dJNUpraTJ5dERPaE13cjFid0Ewa1RUTlBFNVNRVGpXanVWNURXRi9NaVFRR29TZjRnY2VjN1ZMaE00S1o0UW0wejZlMTZTeVg4VVhFaWN4T0tuQnlhUGloRFpUdTl4OFVYOUtQcFpuVlJsVDBqY25kbk4xazVZQ2JZUWxnSFdNWmdURUZHYVJQeFZUdGVYaCtpeVdtSDlhUGVkMEtObkVFRHBCSU1uUXlHZ2RiODIzcXA2bGQ0RUtkUU9Wd3VyV1dFVnM2bWdpMzJHUGxIdURYWDRjYnZDWVBUcllIS3BXR1NhcDRUTkhqVlVXdVg3Mk10ZlB2c05DVnNVZEdCeVZXMjJidzhUTVNTR2ZDT1g1aXBYVXFLcERQNHU1dDdiRFduZVhBWkVsZmZPNlNNaUlqQ0l5aGd5QkZzWDNpMnY3Tk1VZ3BmZHNleEhTN21QUWpla01oc1J4T3JHQWxsaDFyY3libGtWeG5HUHFRMWg3RjVNWUVnVjczWVRlM3BqS2lrZnJYQjJ2NStCb1E0akcxNmxOOElBKzJNN05jWFZkVWtRYU1JbUExTUZSMW9vMEk3WHFOeEdUaVJTRGo1azhYUnpYSnN2WHdLcmxsS3RSWVVMU2kwbnlRQUVYU1kyUUpiL0pVcVZKMHc4SUlvazBUUE1hdjNTekx4NklpbjdQSkRSWEdrVmdGQTZhd0VoY3Y0Vi83aHFMSzh1MGR1K1JiWHpEbzJTVG1JeVlsQkVKT3RLSUI0SjRTYU1XcitCVW1qaEM0Q3VOTURyM2VpckxiRis4dUxhcENZUVErQXBFeDdCUWFYQjk5U285TWFLLzNtWEVnTUlNT3IvSytUaHRKbU8xaDRQTVhJZ2RaQ3FRS2RPY3ZpbFR0ZS9KREYzUFJzNXRtNG9nOHlFT0VnWlpueDNUWlI4N0sxVDVkWEp4YWRMZzNaWHJYRHYzR3hyeEVuSU1udEZUSXZ0QTB5dnVWSWZWdmkrakhtZTY0MEtacXEyOWtvc21qS0RlQ3pnbmxuaW51Yyt3TjJaZmQ5a2I5Zm4yNWdOcUYycFU1ODRSS2hkZjZad0V6djJhemJQR2tHZEJUQUlxcG4yNVhCRW5zVGhXN0w4Z2dBVmFRaWJzS0pBWmxWdEFGM2NqaVRBQ28rVlBhRWZpNE90VG1VN1l1cDhJbXlmVjl2UTYwL2svbFZ0QWQ0Y1J1NTB4MGJ4R094S2RaVGlUZTRUejFIMGRRTzQwNG1pTkhoc3FTY0FpaTh6VFpwY0JIaElIbVhzazZGT2ZZVldxRjJtMFA2ZlIrZ2kvZWc3Zm04ZjEyN2h1QXlGOWhCQVlrNDl6Z2x6WjhleFNGZDlMNHkyaTBZTi9xZFZvOTVSUFpZWVpacGpoWlZITWtFNTF5SjI0N2N6d3kwUkIvT2dNa2dFTXQ2R3lZUW5neW55dURqVDhvcXlnaS9NVk1zOEZ2SklUUGZ0TXJFMS83b1gwRjBUaFZwdEVsdXpkSDlodGIyRFk2OEZlSC9walNOL2l5eXlFd1BmOXlUWTNOOGZxNmlwbnpwekJkVjFHb3hIajhlaUFYZlNiQ20yc3ZhckE4cll5Ri9BS21FYWZTdGZtKzNiOFhCMXVyTnBYQ3NzY3UvbGF4VGlsdHpkbVoyL0VmaWRpTkVwSlVvM1JkajFTQ29IblNlcDFuL2wyaFdZeklBeGNmRi9pQkM0NGViN3hUTDhkYW1EaEFNcXFMRWQ3MWoxQnBmbmZmMEdjVXBGcjFxdlpRQm12YnFNTVp1VHZ6NENTekYvRk1OcUMza043UDgvaTZXZGVJNlFwRE1aV0JheGVYYmRSMkdXK2w3ZFdtT0ZJekFqZ3R4Ukp2SDJyMy8zNmZTRzgvNVhuemY4cjEyM2dlQTBFNGhncjZKOEtnZElwYWJLSHlnWUgxTDlGUnNUemM1ZDR0LzBGZGRuR1JBcm5WY3paQk5aN09nQ3FnS3R4cEVQRm15UDBGakU0R0NNd3FZSnVoakJxUW9oUTJMTnFXU0xERGl0UGl3WGNzdXIzNkFWT2pSMDB0VW13ZHZaUi9zNkxSMThkNlE0eitmdkJkODJoVDVrU0JmY2lPRWdDcHhTNW9TVjluUGdoWWt1aVVIemV2c3E1U2dNOTFsU0VSaHFyaW8wY1NPWUVIUVo4Zi9jZVB3elgyR2MweWZzcmdCQ1hPaFhPeXhVK08vYytuNXk3d2xtM1NXMGtjUkp5WXE5TXdKOUdXellnTWd5YVZCcE1TeEtybFBYYnUyd2srNHhJU01nbUt0U1VqUDRnbzl2UnJDaGpKK0pGVk9Wa2NmODRncjQ0M3BSWkVJNGxUcnJkTGp1N1cwUnBOUG1rTUV4elNUK1BGVzN4VXR0VUo2SXRTUnFLaCt2YkRMY2o1dDBXWjJxTHpNODEwRXBneHVER0tyZndOdm5rdjdDRWZ2Wmt4R1JBSXBIRzBoQ2EyR1pLOWlOTUpVWEhPY0ZaNG8yUHZZUTVrYTR4OXJMWERUcFVxTnlwd01XbExpb3MrbTNtL0RvVklmRU1DUDFUQ0x3akMyTDNaWEpKSXhLaEJWNXF5WEtqWWFYUnd2R2F5T1VhUWRQbHk5MGIzTnhhbzZjR2lIeE1jS0oxbkMwUFR3dUMrVXNFWGhNM2tGT2l6N3dBQ1hRQWVUc3orVmhrREVLREhHbHF3dVY4WTU3MzJzdXM5K3JzandVanJmTXdGVUdLSFJFSzJ0TVRMaFZ2amtBMEVKR0F5TmhwVjRSZDNpeUd1VmNKRHdqQlZDVnBxTmtkYmJBMitKR09HakxHY3RObEFyZ202eXhWVjFtcVhTRG9WaEJSZGlqM2I5SHd5aUZLNWZaU3RucCsyZkdsR0FOeUZUQUtOOWI0V3JCYW4rUGF1WE5zRGZjWjZERmpsZkJ3c01WS2Q1NlZWaHRmTkhBRU9ESlhBYXVUY0Rvb29zamhlT3YxcDQxUkw0RzhDcldyMFc2R0VncHREbWN5dDgzV25LVEsrWlFnNElYUzhSaEFZVkI1SHVCT1BHQjMxQ1ZaU2NDekFiN09KTmdsRDVSNnJoM2JtWlhRR1hxZ2FGUkMzdi9nSEk4M3QzaTB0b0dIZzRza096VU5zTUQzRndockY2blVyMUt2djBlbGRvV3d1b3JqdGZLVUl3S2pNNHhPWHlyNFRBZ1hoQ1JMT3d3SHQvLzdVZi9ILzZTeThlREVUMldHR1dhWTRXU1E4QXBVQ3JKOEQ1cXQyLzR5TVptSUdFdHk5bklyYUs4Sy9qUGMzdDVHRk5Zc1FvSmZnK29DREZzMlYrcWJhQndwd0doREhNRjJ4N0RaZ2IyQlZmdyszalhzZEdHM1o1WEFiek04ejZQWmJGS3IxUWpEa1BQbnovUHh4eCt6c3JMQ3pzNE85KzdkWTM5Ly8rY3U1c25BUUpZL1c3c09WSHhCNkFta0xBWHBTbWx6dHNxYzBEVEdzc1ZHVElPYms0eWRyU0hmZmIvRGR6ZTMrZkgyUGx2YlEvcURGS1ZzRUtiblNHbzFqOVd6RGQ1N2Q0RkxGMXNzTGxSb04wTVc1aXZVRzBVeTRyY0J4ZnFOZ21Sa1hRR2lmVXV5Rlg3YmJ6dE0vdkJma0w5QjArYVBkME1nanpTWjRkV2hhSGRHVy9KM3ZBK0REUmh1NWM0ZXh0N0xYaGZYaW53Tk9VMWhGTmxBbGFjNDdwODBZbUFQNkwreUkvNUNNQ09BMzFJWW5XWEFyV3JqM2Q5VmFwY0lLbWVwdURWT3owOWVZSFJDRnUranNxa0ZkRUhGQk1ENWhZdTh0L294emUwR29wc2hVbk42RDdERmdUMHM4UnVRZTUzYWlaS0lOQ0l4MktTbE1Ga2dQN0NWbEdFVGdxYVlGQjBtZm5NOW5UaitoQ2Fjb0VrUWs4eVZSYzdnNTY4SThjUTJwWDBsamlYNUR4MjNzTnZVaDVaalgzUngxdVNhNVF5SW1DN3VPa2hVN3c1cGt1QWljQmF1Y3Nhcm84Y2dFbzF4SkhFSUhYZkVuY0VhMzNmdjhURGFvazlFbkZzcHV3aXErSndQbC9oczRUMStmZWtEM25FV3FPd1ovRmdqOGFiazcya1NCb1VxUzJwU0YvbzZZVHZyc2lNNjlCZ1JrZWI2WDRQQ0lVV3h0ejlndytseHZ0YXlFWm9IYkp1ZlZkYUNLTTQvN3dpTUI2T2tUNmUvUzR5TkJoT0czR0taUTgzbE9PVmI2YmpHa2l4dVN5Q2FocDM3WFg3Y1h5Y2NCYnh6ZnBWenJTVVdhTElVMW1ubTlzUk9taC9Jd0NTWDgxSG5ZcDQ0V3A0L1ZxQ3dGdEFtekJCMUJjcmszTk96MnQyVUdERVNVbTBZOUJQR2tXMXpEZ0lmaDVaWDVkemlJb3ZWT202TVZhc2VJUEZPQ3ZtK0N2V2tNYUFWcmxTNG1VRU9JUFJkenJlV2NjNDQ3SW9oZDNZMlNaWEt5eXNaRUxNZWIzRjNzOElaMVdKeHFVbzk4SEV5azdlWEYwWFJiZzRGb0ZoR0RVY0l3c3hRaXlUbnEvTmNXenJMMXFNMStycERpcDcwM25KMlc5OEphVFpXcWZpTGlGakEyRmp6bFRHdk5GZjd0RUJZOGpjQVZaR2tnV0duOTVoSHV6L1NTY1lUQitvTXNGbEZIUng4WkJZZ1loZWhoZFZXVHJyallZdm5jckJBdVFERmwzNGlUTjV2dElza0paU2FCVC9rbldDSnRjV3o5SGFIYkNmN0RCanhLTnJtVEhlT1ZpT2tMZ1BNUUNOMGxrY3BGMzM4WmRwMCtUeUtuTHNGNFZnOGlMenN2bzlBNlpuYUNEQ3V3WGdhSXcxYW0vd2VWTnlWU3VQZTY0eGlqSHRpYURtNnpzemtwejNmRkVYZkRPbUpIbm91d1VoUWZUQm9oTkRIRVBMSDdGaEE0VzRnRWtPajdYSDUvQ0kvbUhrcWF3RWVEaDRPNlFsU3dFTDZ1RjRUMTJ2aSs0dTU2dmRYTk9aK2pSOHNnc2xuRnNhZ0ovYk9MM0pjNjF4Z2JaOXRCU2Q1bnZMZS9wZS9qY2FQLy9TVFQyS0dHV2FZNGZSUTlrWTVOYnd1YTRJei9NeVFycDBMcENPN2NCeTBvTG9JYmpVbmlFNHJRUHAxUlQ0NWNnSkxBZ2NOUzRnbkE2WVdwMjlJNTVGMmlwNm1zTldCQjl2d2FBZldkdTNXR2NBZ2VqdkVtVTlER0lZc0xTMnh1TGhJdTkzbXdvVUxmUERCQjBncHVYSGpCbmZ2M3FYYjdmN2N4VHd4Rk9tcUd5R3N0R0d4Q1kwSzlqbFlPRkR4b09KRDZFRnExdzNpT0dNNFN1bjJZcnFEaFAyOUVROGY5dmpteGpZM2J1MXk1KzQrMnpzakJzTUVwZXdCWEVkUXEvcWNQVlBuaDl2N1hMN1U0dHlaQm1kVzZseTgwT1Q4YXBQRnBTcTF1ZysrTXhVRHZMRU56bGdDT0IxWjhqZnVnYmJoNzZmakpQZzZ3ZGcxSVNGdGtGRFF0Z1N3RXpCeGs1amgxYUpZU0ZDSlZhVDNIbGtDT09uYmRpcHRBUFRyQm1Xc2lFM3BWenF6R0FHUDhwOHpuQ0JtQlBCYmpqVFovbjQ4dkVPdGNZMGdQSVBqdUp6R2c0RVFBcTBUNG1RSGxRNE9rTDlGL3QrNmRLaEpCODhJWkdxUUdhY3pvY2dWWXdUNTYwTGdCVlBPaE5LeEQ3T2xDQ1pXejBjU0JJWFN0K3lEYWc0c2ZFOVFySzhMVzBlV2JFa3AxTC9pT2RZS1JPbG5XYmVXNjRDUStlYmtCSWdvclZBYkNqTnFNMUVqNmR5RzA1YThXSWgvUGpKNFNpYVhhV1Y3TklXQzZESGVJeGUvS3ZCVzM2VXFxNkFsVGtVd3FtUjh2LzJZdjdsL2k3dkRMYnFNR0JMbDZsK0JoME9EQ2grY3U4Q2ZYYnJHUmJWQXZlc1FKZ3FwWkNuM2I5bkM5SVNSV3o4ak5QaUNMREE4MnR6ajV1WWp0a1k5b2p4WHNUV3NCaDlEaW1hdnY4K0cyU0FLbHpGK0JaTW9lMjFGM2paZXBLalNRR2hRWHBaVHpmYXFZUVFpa1loVTVybXp5d1R6NFlaWGVzOElFTkxTc1pGQUtVRnNERDBpMXVNdWE0LzJtZDlzY0tteXl2VUxWemxmbjZNcERGV2hjRk1RdXBEeUZRcllJNUFUdnRJeENOZGc1TFNkS1RUYTAyamZLbm4xcEh5SENmSVNrMXo0ckFyQWs0eWlqTTMxSHZ2N2RnNFE0Qkxpc2xocGNPbkNNaXR1QTIvZDJJZWlvcHluR1NSZ1NtWE1JVDFyR2Q0YnB2UUhDWmxKTVNoVVRvUVhkWkZtR2NrNFF5WGFEakV2Zk9EaXB6cTRpZHgyUHM5eks0ekJTVFdoRUp4dHJmREIvSHRzN0R5a085Z2hJU1poT2hRV1k0cnZCclRhWjZrRmM4aStnVlMvZ2lYTkVoenN3NjZQSGJ0OWJHcGpGOUlLSkw1bU9CN1NsWDJHcUlrenRVTGtPYWNsbVpIRUdTU1pQcVE0blpwY1R6TWZ3NmsvQUJvN2RnbWg4TFZHOXczdFdvMFBMbDlrMyt1eC82REhtSVJIM1cwVzNBYnZuRjFrZ1FBeE12Z29oTXhLdHZjdmlZTDBGUXFrdHZWc0JLaWNvQzRpeUUrTUJMWTViclVBN1JxMHIxSHk0TDJudUkrOGlLcjIxZUh3Z0QwZG8wVHBubnYwMkZ2ZWkrM3pHWW94Q2JFYm81b3AyaGliQi9nQUFmeThDNVRGTlhOd2hNRlBCY0hBb3g3WGFGR25Tb2NoY1o0SldPWnpqSmRQQXVGNExXcU45Mm0wcmxPcFhjSVBsdkg4T1R4L0h0ZHJJWVNESVVNVUpQQUxFcjhGakxGdHdhQkk0MTA2ZTc5bmQvMy8vVi8zdTkvOHU1Y3MrZ3d6ekRERHE4SnNKWFdHVndTUkwrTVlTMlRFQXhqdFd2dEl0MkxKVDVIUEYzOHB1WUNML0paQ1dtVmIySUxxdkNWOTB0R1U2SGo5SnB0UFFvSXdnaWcxYk96RHJUWER6WWVHdXh1R3ZRR2syY2xZY0FvaGNCd0h4M0V3eHBCbEdmb1ZTcnVlQmQvM2FUYWJMQzh2czdxNnlybHo1MWhjWEdSM2Q1ZU5qUTNXMXRZWURONHVZeGdob0ZrVkxEWUY5ZENnaStjMEp4Yy9wQm85U2huMHgvUzdRL2IyeHp6ZTZIUG5ib2M3OTdzOGVOaGhmWDNBeHRhUS9lNllYaThoT2VRVG5nQ2pjVVp2RUxPeE5lVEd6VzFXbG11c25tMXc2V0tMOTk5YjRPT1Bscmg2YVk1V3UyS0ZNL0RteFpTSVBMaFpLMGpIbHZpTmVuWTgwTW82Qkx6dEtITC9TZ0YrM1FZSmhXM2JuaWJPY1RPOEdvaFNIMUpXN2R0YmcvMjc5dDZ0czlkTCtWc2dMN1BPQ1dEOUFqSHJQeEVHR0FEM3NjUFdEQ2VJR1FIOGxrTmxVVGVKdGtuaWJiUWE0emhobmx2dDVIdXZWakZwdkl2VzhZUTJkWm11NTR0WW8wY1NrUXFrTVNmN3VDeVlydTBIV0FMWTQrRGEvbEZya3dZbTloaGwydHFVYlVFblo4aEJxK2V5cjZnNHVIWjdtTFhOanlVTk9FWWpNTSs3MUh2QW1MUnNXbXBQVitBZElJRWRwTlhnb2hHbHhYWkJoaUVsSTBYbGk5S1dGRGE1QXJjZ2lwOEhsa2UzQzlqeFJHa2tnQjdmUnc4UjY0YVJTUGlnOVI0THEzTmtUc0xEL2liL3NQMGozL1h2WStuZmxDaFgwZ2E0QkhnMHFISzJNczlxbzAxejA4VWZLandqTEFNMHVTYW5kWE1zU0JLTkVRYmxDZEpBc0xYVDVjSHVCaDBHeEdRVFNoYVlLRndIZXNBZzY2S3FDU0lBTXdieFhLNHE0dERQZkczZk5XaTNxT09DWkJjNHdzZlJMbVFsMWU5VEwxbmVjdkxnQTkwSEtUeWFDeTA4UXZaNnV3empNWTlpajYxUmo1NGI4NnN6RjdsYVg4QUpxamhEZ3hqblNuV1I1d281VWkxWUNxWlFkakcvK0tmUmFLSFIwaHdRSFI1ZkY0ZjI2UXFTTEdXMzIyRVFEWkVJUWp3V1JKTXovaUlMc2tGVnU3ZzZ0ZmJQcGh3aThjd0tla0hrRVNSQ2dUQTJETVNWNkRwMEdIQnpZNTJ2T3ZlNDI3bFBwR0pBNE9aOTFNT2hUb1dGc01YaWNwMWF6VVBHMkllNzUxS0pseFcvaFE1ZlRZTU15dGVnNE0rMXhrOGw5VGhrMVR2SHIxYmZwNysxU2I4elpNUjBOQ3Q2bGUrNE5LcE5LbTRWMFNPM2x6ckI2anNLNVFHdFRQNFdIRzJlU2pkekRKR002SmdlKzNyQVVHZ1NBeGtDbFg4MHdUQTBDVjNWcFUrWHhIVlJya1JyalN3V2h3b3IvMWVpQmlpdXJRMWVrU1pEUnBwQXVpeTE1am5YWE9GK2JZdjE4UTY3cXN1RDdqYjNOL2RvMXF2TWV5NkJ4dVpoT2pKZzRubFFqR2w1eDVRS0FtVmRNUkRRRjVBVUYrQ25LaVJFcVcvYnNoWUNhT01VV3RnakhDaGVzMmNkaThNM2MxSDZiWHEzbTI3RnF5Zk9Eb05ObTVDU0VwTXhOcG80Sjc3dGRTbXJvSisxd3BLWHc5NGtjSVJHeGNDT29HVWFyTTR0OHJpL3gzNDJ4TEVaNDB0bGYzcEhGc0xGY1N1NGJzdm04UFZhK01FU1llVWNZZTBkS3BYeitPRVNqbE5EU0RlUE5VblIrc1dmeTRTUUNPSG01REZvSGFOMVRCWjNHSS91TSt4OSszL3I3bjM1L3hsMHYvMGZsWXJlcmhXK0dXYVlZWVlaWmpnSkNHRVhqc2Y3Vmtua2hya0t0bzVkNEgvejg2TytHTFMxeXZVYlVGdTI1SGdXVzZKY0ZDdFRyemtrb0t6S2QyMFhicThiN20wYXRyc25uL00zREVQQ01FUXB4V0F3ZUswSVlLVVVTWkxRYURTNGV2VXFseTlmcGxLcHNMZTN4NE1IRDlqWTJDQ080MmZ2NkEyQ0ZEWUZiNlpncTJQNDRiR2dOWFp3QXdlZHBJejcrM1NUaEoyZEFUdmJQVFkyQnp4YzYvSGpuWDN1M08vd2FLMUhyLzk4Yy9JNFZteHREOW5hSHJLMjN1Zit3eDUzNzNWNHROWm5mMy9NYUpqeTNyc0xMQ3hVY1N1NTQ0QXkrYnJBbThBRVMwQmJwV1hTdDI0QUtzckh4RGVoL0NjRW8vTUZubHBPQUxmc2VwNytoZFZEQVRINUh5OHMwUGxKeHhYMjNxUno4cmUvRHQySDFzRWpIZG43a3p4cDk4S1RRNmFzL1hPcVhpa0JQQUoyWDhuUmZtR1lFY0J2TzR6T3NtejRQODJ5M20rVkh1T2FWbTZ4ZDFLd0E1WEtScVR4RGxuYW1Td2pGOHZLSVlLbURQQ3pGbnBZUWFRU2FkVEpEYnFTaVZYb1JQVjdsQVBTa2VRdkpjS29URnM3aHo1MFNHMVhWaXMrYTdBdTFKb0tSQ2FRZXFyUlBZNFBPMHo0bGt0VkNPTnNhbU5OQlplR2JOQ29OQWpjRUVmNENGeTBFYVFhUmtsR054NHhJaUloSTBHUlRuNXFVZ1JaVGhkblQ1aEVINDk4aVo4TVJWUTZDNEhEZVBzMis0TXhnM2N6THEyZVp4U04rSDd6TGw4UGZtQ0RYYnFsM0w4RlpWMFRBWXRPazFaV3hldEpna1RqRzROVVRrNEFuNmIxYzVrMU14akhFQXNZbUlSOSt1elJZOENZcUVTZ1c2dnRJc2RqU3VhbmlJWUcxNkNsZVFGZFlYbUJmbXFLcWc5UkpoS0pnNHVqbmR5bCtubFZydmwxTVVCa0NLb2VDMmNhVkZYQXVKZlNKVUlRTTlBeGcvVVJxUjdBNnJzSXVjS3lyRkIxSFR1QlZKcURyYlgwczNpWldVTEowUTRTT1NXQmpTbUVxYVZ6TGRkN3NiK0Q1MU53elZvcUVoR2p5UEJ4Y1pDc1ZwYTRXRjJoMHZlUlJ0dEFBVkcwbFpOdUp6WXd3Q29vTTVBWnlqVWtvY013Tkd6b0xqZjJIdkNIalIvNGRuQ1hEYk5MZ3NMRnhVZFN3MmVPR3U5NEsxeGJQc2VGNVRtYTJyTXEyNnpvNWNjYzl3RHBXN0tiNXhtVDk3eHFQV1BJUm9wbXRjYlZwZmZaU2g2eDF0bGdRSXpDaHRVVlhLc3JCRlhYSlNqbi96bU5pVjdPaVU0R3RHSlFLNC9kcFdOckJKbXJpSU0rKy9UWVNhTGNSRjhVTkRnU1E0S216NWhINHcwZUROZFliRFpvbURwdWxoQUlFREtQZUowRS9id0tGRGVpSXBERElES1FRNStHYk5OdU5ua2M3ekxXSTdiakxyZnViREMvMnFEUlhyQmZ5WXEySjEreVhSZHRTSUdiUVVWaFFpQVJkajFNNU9PcUVDZFhMd1l3SXY5aEtCd295dXIveVQ5cHQ5Y1hUNUsvUmNCVm1RQStxdGFLODg3SXlORDBvNWoxUjMxV3c0Z1Y0ZG0yZmlCZHdIUEFRR0hKTDR6RVNUV3VnVG0zeHRsbW0rWW94TThjWEJ5Y1BEaml1TDBMSVhIY09uNnduRy96VnVFYkxoT0VLNFRWQ3dUQk1rSjZGRGJQeG1qTWM5czhpL3cvTytNUndnRUJSbWRrMlFDVmpWRFpnRFRkSjAyN3hLT0hESHJmL010Qjk4WnY0MmpyMXZOWHlnd3p6RERETHdDdmNMMXlodGNjb2dndU5CQjNvQ2VzQWpoc2dWZkpDYy9UQ0lSOVRXR01uZDhqclNWMmJjVVM0K005eU1idzJnWWM1aWpLcGlHS0RGc2RTL3plM3pUczlzeUprNzlDQ0pyTkp2UHo4MFJSUkJ6SHBPbnJrelI1TkJwTlNONTJ1MDIxV21WdmI0L3Z2LytlVzdkdXNibTVTWmE5WGZsTGpZRlJaSGk0RFgvelBlejBEVXNMRHBVNnBFR1hQWFdQN2E1a2M3UFA1bGFQclowaGUzc1IrNTJJYmk5K1F1Mzd2T2oxRTBiampMMjlNVHU3STNaMmgrenNqdG5yUkh6ODBSTG56elh4cTU0ZGM4U2JjQk1xbm1teGZYKzhEMUhIa3NIQTIyLzlmQWpDelJYQTg5WUNXcnBNbmFkK2lmZ1p6bHZrYTMzWnlGbys3OSt4SkhBNlp1TC8vcnJkb1BKRkRtTWdTcUUzTmd5amszR2dlQTRZWHEwSDRTOEtNd0w0TFlmV2FWYXRYNG0xVHRGR1BUZTU5N3l3WkxJaEhtOHdIdHhCWlZhc1VjNjBXSmNPWjZ2bmFUdG5rWW1IVkFhcFQyZ0M0V0NKM3lMUDcyRmgxM0VFOE9TMVlNbzZsQ25YNGtNRnZWQWlmbzlTK2g1K1hTQ2J2aWM4Z2ZTbUJIQlpwM2lZVWl0ekk0V3dPU3h0VmFDS1F3V0hOazB1dHE5eThkd2xHczBxanVzaWpJdEdNQjQ3Ykd6M3ViUDJnTjEwbjRTTUVTbGpFa2JFREVtc05XV3VUZ0x5aGZwbmo3ZmxaWHhRdWFtMXRmaU1jRW5IanhqZFM1amJ1VTJpTWpiNlcyeEZlL1FaTThxUFo5QjRsdGFrS2Fxc051WlpGQzBxQXc4dkViaDUva3hyLzN6S0U3WmMvWXZVYUNrWW85aE4rbXlsSGZZWU1pQWhRWkhsNXlqeXM5VTVjWjVKalhhMFZiMFpXeGRUVmQxeEQrRUhmeStjaXd0N2JwMmJkRnQxdDhReER0SklaTG45Q3NteHR0Z0ZnMm9rYUluVUJnOUI2RWs4MTFvVGowbElVUXp6b0lkdzE4VWZ1M2gxUWFXeFF1alhiSDlWbW1rL0tUZDJtWmZRbnJJMEVnY2ZCemV2SXpOeG9iRWtjSm44UGZaaWNMaERPVGdFZUNnMFZVSXVOSmE0MkY2aXJueWMyRXpWdjBibXV6NkpBU2J2N3hOcjhBU2NqTlF4akh3WU5RV1BWWTh2NzkvaWozcy9jRHZlWU1kMGlNbnl1QlNQR2dFck5IbVhNL3hxNVRJZnJKNWpMcTNnRExEVzVrV1pKL1ZhbFB1WVBPTUhjbzJYQ0x1akdTaUVObmhLVTBsZFduS1ppL0o5M3EwOHBqKytRMHJLaUduQWlTTXNDVndNbzZjeUZTMlV2bUgrODdqQmtPbnYya2d5TjBVMWg0ejNJbnBJeGppa2tCdWtGNEVZaWdFeGQ3dnJ6SXMyWjJwbmFZUVZpQVNPc2ZXQXlSWHRodnpuYVN5UWxRS0VoQUtSVVZoMEt5bnNockY5VjBpVTBNUW9CZ3paR20reGx5NlR1bk5veDBIS25NRE5TZFVYUS9INVhQM3JaK2hRa2NRYWVnSmZPelpkM0dTTUVOTXg0eWRCVE80TVdsaTc0M0pBUytFTWdERFdGdU8xVzZjczlhODgxRlhtUmJYM1pwbi9Fd2NVd1FjaEp1ZXAwQ2dNM2RHSUg3OWZZM1c1elZMN2pCMnpNcGptWlg3ZWt5ODZCa2h0OExXaEpseWFKcVJ1QWlwNGpFZ21DU0dPV3hMeS9BVmFDLytJVnZ0emd1bzVYTCtONDFRUXdrUEt3RHJHU0E5eUszWEI4OW84bDJyRDJDQUFBUmlUb1ZWQ211d3hHdDVoMUw5Tk5INzRmMHppN1FkcDJsMVRTZWRSbW5ZZXFHdzhVLzNPTU1NTWJ4SmVpenZYREw4dzVHc3dxTVFTSE1NdEdDNkJWN01ML3NYN2I0Umk3d1JRV0pwNkZRam43T1lHdWRQTmE0NTgycVJTMk8vRDQxMTR2R3R0bitOVDRHV0ZFTFJhTFZaWFYrbjFldXpzN0RBYXZUNnBGdU00Wm50N213Y1BIbkRqeGcyTU1lenY3L083My8yT08zZnVNQjZQZis0aW5qZzAwQi9EblExRFp3QzMxaldMYllkcU5TR1J1K3lQZXV4Mk5YdjdJL2IzeC9RSE1aazZtYjZkWlpwdVAyWWNaL1FIQ1oxdXpPNyttTDM5TVo5Y1grSHlPMjNtRjZzUXV0WVBOdFd2akFsNktRaHAxMjdTQ01hN09RRmNPQUg4RXBDdkR6bU96WWZ1Tit3OXdRM3l4YmkzSzNqaUNVZ0JqZ1JQMnA4aVgxOHI1N01XdVlCRlk3Mk5sYllLOXhOTlQ1a0hJNEIxNjRoN2x2anRQNGE0YThza0hWNDc2K2REU0ZJWVJaWUlma1hwd0F2MXdveXJQQVhNS3ZVdGh4U3VHOWJlUVFnSEtleXkvbUZoN0UrQkVBN0daQ1R4RnFQaFBiU2FUc2dLRXJnaUhlWXJiWnB1QXplVE9KbE5RL2pTTVIyQ2czYWhBVk1pQVo1eGNpWmZSRDlzcGx3bVg0b3hwMHorbHNrOG5senRQYndDWExoRUo5aEZkU25zWVFKaE9jYlNWNDRpZjh1a2IzR0tEV0FPUVp1UU9hZkd1Y1d6bkYxWXBhbm5XSEJXV2F5dVVQVjhwQ3NRUm1LQVJEdnN6WTk1cjdiRUtCalFINmM4MnRobnM3L1B2dTZ3cmZ0MEdORm5OTkV3bVR5LzdmTzJFVXYvMm9zWjU0djdHUjRwaW01L2hOZGZ3d0JqSWhKU0VqUUpHU3BYL3pwSVM1U0pnRG0zVG9NS2Z1TGdLeENtc0d3dEx1NHAzU0FGVXdKWWFKU0FDRTJQRVIzNjlCa1Q1WXBsYTUyZHA5SEVUSWphSXIrbEtUOXJQN096bGRwY0thZnNRWExkYnA3clVXdldDU3FoL2VxQjZMMm5LZmVLOWk1d01EaVpRUFlsenRqRnlaZjA0MXloTmlKaE4rdXoxZTh4ckdSa1FxS01WVmZhb2o2ai9nMUlJZkdjQUJkdmNuN1Rzeml5NG84dmRuNmFqbmFvNkFwMUtuZzRMTkRrZkxESVVxVkJiZXdnVTBBNWVhREFDYmVSSW5lcVNERk9odkkwVVNqcEJwb0hveDIrMmI3RGw5dmZjeWQ5ekQ1RElpekI2Q0dvRTdKRWcvZUQ4L3o1K1d0OHNueUpaVjJuTWhESU1iWnRUL0phbDhLL255QitDeDFmc1JYamtKaFc2bkhCS0FiY3pCQU1EWlVrNEZMbFBmckwrMnl2YmRQTDlpRGZ1NGNsdUxRMnBhSDVoTzRVVG1rTG1JN1poOTNZRGpjVUJ4QUNJd1FwbXBISkdBRVJQakh4SkJqRGp0WW1EM0JKMk03NjNOcC94T0xEbTFUT1NxNDJGL0I3RWlLRko4SDZTaHVtZWQ1UFF6SE9sUHlWR1VZcUVpRklQSWVzSmhnN0VaMVJuKzU0VEtLTDRCdEZ6SmhoTWlTS0VwUjJiV2pGZ2N2d0luZnc4dGlpTUs0bXJXckdLa01sVUpPQ3dCRklxYXd0MFV1cmpFdkhLb3A0NEozcHYvSjRNUDNhNi8zZ0F3SmhCTUlZZS84Mk1yOTNDYVlVOEpNb1poSzJCeHVHZXN6bWFJdE9kaDVkWGNGb2lZaUtUNzRJOGhyTUF6eDhvT1ZWbVE5YU5KeVFFSW1mTzJ1a0hEU1pMaUNsVDZWMm1mbmxmMHFyL1RuU3JTSmxBQmlNdG5NZVl4UmFSYzlmUzRlc25ZMUowU3BCWjBPU2VJOTQvSmhvOVBCL2lNWnJ0K040L1hZOFh2OG1UZmJ1cGtsMzh3VXJZSVlaWnBqaGRVSXgxSjh1WHZkYjVReXZIcE5IaHpTM2dsNnpTdUNtYXhmK3JlM0d6MW5DVndTVFB4NUprSjRsTzhLV1ZRTW5RMHVTRncvbnIrTmllKzVZTzQ0TWovY01EN1lOVzEzREtES2NFTWQzOEhCU01qOC96NlZMbDlqZTN1YnUzYnNuZjVDZmlEUk51WG56SmxFVTBXcTFHSTFHUEg3OG1QWDE5Wis3YUtjQ1kyQ2NXSnZWL1FFODJERlV3Z3pQSGFPSWlSTEJPRmJFc1VLZEV2bWFKSXJON1NHamNjcjI3cGkxeDMwZVB1cng1Nzg1enllZkxITjJ0UTYrYTljMVgxZUhlUUVUVjZ0MGFGMEFvbjA3Qm9oVEMyOS9mV0R5cDAvaGdGdUZ5bHllK3pmSW4vTmYxd3QzMHNqSjNFSTFvdzBreW5Zd2dTWEgzUkpCZXhyRVpwRitUR2ZXK25td1pYUCtKbjBia0NDZDE5cjZ1VmlDS2l5Z2sreVZFc0FGQVRQRENXTkdBTC90RU5KMW5NcGZ1VTRkS2NNVHRuK0dZdkU4anJlSVJ2ZlJPcDVRT3RNY3dJS0tFZmhhNEdpRExOSld2aWlLblJaNWZpdmt5WVh6OTgyaG40ZGZUOHBiWmlQYzBnN0t4RXRCQUJjTDZIRGs0SHhZM0dtWUVyOXAvbFBuWlM0WkdSdzF6SmNwNlNLTmNRMVlkRjJXd3lyemhDdzc4eXpKT2ViY05wZlBYdVhpNmhYQ3RBbzlGemx5Y0FZQ0tZcjh3Z2F0QlV0aGhmZlB0cUFGbldIS0hiM0w0MkNiUGZaWmkvZTVQWGpNL1hTanBNd3FMRHRmNUNJWlZFNVM2WnhDVHNoeTIySUxSYUhTMC9sbml5dmc0T05Ta3hWYWJwTzZyT0JyY0JRSVBTVXZUeCtXQURiQ29IM0IyRTNaaWZyc0pyM2NQanVkRUU0SHFkbnBPU3VUTDdibkpIQnhIWjdyMlBtbWpaallKWmUvNmZzK2N5dE5HcFVLWWdSR205TCtuM0dNWEZvc0FGZEp2S1JDbUZTbzVJYkt3T1FjTkFMWERhaTFHZ1NWRURIaUdiZmZLUmtCQmlFRm51L2pTTy9BOTE1c3ZsQTZKMlh3dEV0VE5taFJSNHVFUzYxbHp0Zm5xU3VQSUFPcHhSRkU2Z2xnb3Z4TndjbklQTU00bE96NUdYZmpYYjVhLzRFL2J2N0FBN2JvNU9TdkFUd2tEVUpXeFNKWGd6Tjh2blNGenk5ZTVZeHU0bTBxdk5RZ3lQTmFHNWxQMW92eDVoamlkM0phaDg3dmNBUUpIQnpHY3Y3YUU1cEtBTXZ6Uzd6WCtvaEgvVHQwZWdOTWxoQmp4eHhoSU0wMHlpMEhGTHprVEsvb3VzV0FWczd6ZTVSRi85UGdDcUpVc2JrK1pyZWppUEhJY01sSUo2TzJ3WkNpR1pQaWtiQ3VkdmlIdFJ1RUNJTHpIK0kyRjNGY0J6SFV1QVV0cHFISXozdHlNQnl3Q3hjSzdXaXlRREN1UW9lVXpialBQYlhKM2U0RGRnWWRNcVZ3a2ZpNGhBUjR5Z0dsYkVScW9WWis0Y3RRWXRPRkhiVXlCNUtLb1RPTVNJeUJpb1BuU01SWUkzUWUxaUxrUzE3eVE0VVVaaEpaT3hXZkhNb0JiTEFCVWkrU0J2Zm5RTkVWTW9ISUJJNFdrK0FsZVN6NWF5YkVjSkVyUGlaaHhJaWtHbU9xQmhNVm4zdVJDNXpuOVRQNVJFb2JYQTJ0c01hU2FORVVEaFhNcE1zZFB5STZlRjZMU3ZVQ1hyQklsZzVRdXF6K09LNDhkbStpV0VRUkVpRXNGYTVObWxzN0Q4alVFSjBPeU5JZWFiTExlUFNRVWYrSC8rMW84T04vak9PZDI4OTVzalBNTU1NTWJ3TEtUM3d6elBCcUlWMjcwSndPcmJxb0lEL2QwSklBdnpRSVlldkViMEJsM2k2MlJ4MVEyZXRMQU9WaTdWRUVqL2ZnNGJaaHIyOFgzRTlqV2l5RTRNeVpNMXkvZnAyMXRUVysvZlpiTmpkZnYxaThqWTBOTmpZMmZ1NWl2REtvWElnWUE4VFFHZjRVeGN6THdSaHJDOTNyNzdIZnNWYlFuVzVNcHp2bWsrdExuTDNRcHQwTW9lSlpOcWhRVHI1T1RnTW16LytiRHEzcU1oMkJ5VUM0cjJYM1AzRm9iUWxPdndhVnhaTDE4MUVod1c4SkhBbXV0TmMzMVl5Nk1idDdZN3I5ZUJJMGtTU0tKRkVJQWI3dlVxMTROQm8rclZaQXN4NFFWRDBJOG5XUVRKOEEyNWszdGl5QzRTYjBIdG1BQkozWjlaYlg5WDUwQ0pNY3dOa3JpeWQ3TlVHVnYxRE1DT0MzSE1MeDY1NC9qK3ZQNWRaK01sZDNuTlFCQkVabkpORkdUZ0JuQjZoVkh3aU13RXM4dkZSYVJ3WmxYcHdBTHBSaklkT2NrWWR6UlQ2VkFDN1lpSEkyM2ZLZ1cwaDJGWVZWNThIRmJJNS9YZGhIcFBrV1lXZHV4VzV5WHNvSVVBaVVtZWJsSzZxaG9PVmRMSzlkejdkRjRQcmlKVDQrK3lFTFlvNjJXV1NPZWVvNnBDR3IxSFpxK0VvaUU0Tk1EVktaVXZGczRiUVJtRDBIMVJlRTJxZGE4YmxjWFdCWXlkZ3dYWm9QdmlGZWl5YzJsZG5FVkhWcTQzbncxSThuaGxTSlFoYWxUeGRWbEZPY05rZ1hnVVRteEllazRWVlphUzh4Rnpad0kzS0ZYdGtpOTdSUVJNclplMDBtRGJvcEdabUlCdyszZU56ZG05Z2txMG5kbVB5YlU5SmNtM3dUaGFDdG1Bd2JqcGVuSDJ4blJsZ3FRR3U3bGVzcDhCd2E4eDVWMTBFT2xTVk9ua21PNTZGYk9sK28xd3BmU2hwK2xYYlFvSjVUd0c2dVpmTndxRkZsem0vU3J0YW9laTVTcTFLKzRhTFZGbGZWY0tBZkdVc0F1NTZMNDBwa1lzMmhSUjVnVjdpdFRLR241VHpjcm95d0RyRmE0K013N3pkWkhMWndxb3IzTHAvbFhMVkZwUzl3RW9PWVdJU2ZoRkxjVE1rcm9iQW5rWkY2aGtGZzJQY1ZQNDYzK2NQYTkzelQvWkZIN0xEUGtBU0ZRQkRpVThkalZTeHl2WEdWVDg5YzVscDdtYVZSbmNySXBtRVZPbGNyNjRKc3MyYkdCMW5icDR4QngvMnR1RHdKQjhjaFFMb0dYNEZ4SkhPVkZUNWUrSUllUGVLOW0vVHltbk9Nd1dpRE5qb25kbDV5MmFHd01DalV2bVVtNm9oTGZhRDhjS0I1YVFFaUVJeXloQWVQZHRqb0QwaVFLR1FwTzdJZHJSUVFrU0dKa1FnOHR2RzNidUlpQ0QvNEJDZHM0eVdHS2dwUDVQVnN2RHhpbzNSRGVabjVmbkZUSzZsK2NSU0pZNGlrSUs3RG9CMXpaM3VMYis0KzRHN3ltTTEwajJFNkpzQ2hRb1VsV3B4bGlaVkttM3JWeHgySlVqOS9pWUlKck4yR1ZHaGpTRjFCNUJ1Mnh3T0d3NVR3bkVmZDkySGQ0S0FRd21aVGZ2bEFDak45dU15dm9SYmxkOFZrNUp5T25vZSsvem85bUJvb2JLTUVJQktCU0NTT2R2RktGSENCbzNwTE9VMUFURVpFUWlJejByeTlDbUVRb21qSngzbGhGL1ZTUEE5bGRpSERhSVF4T0ZwU2tRNHR4MlBlY1dnQ1BRdytob2lESGlhVFBacUVKTmtteTRhWUE0dExUNnQvVWZxVS9ad3d1V09JVVNUeE5zUCtMWWI5VzBUamRWVGErZDlsYVc4elMzc2JXZFpiVjlsd1U2bjQrU1hGTTh3d3d3eHZCb29ud05POGdabDhEdjM2cnhiTzhBcFJhaEZaWkJlWEI1dFFYYlJXeUc2VnFjTHBOWnBmblJhS1hNQkNRdENBMnBLMTJreUdrQ1dBZlAxNjBFU0hZQmlNRFJ0N2hzZTdocDJlWVJ5ZnpxQVNCQUVYTGx6Z3M4OCtvOUZvTUQ4L2Z3cEhtZUZOeDg3dW1LKy8zV0p2Yjh5ZGUzdmMrdkVzZi83bkYvamkwelBNcjlRbnl2WFhJM2czWDJneXhxb3JrNEZWWGFaajY1Qmc4cys4OVNoVUtCSzhjdTVmeDQ2TmIrdDlRQXFieXl3ejlMc1JOMjd1OFBkZlB1Ykd6UjIyZDhZb3JWR1pRV21OQUFMZlpXNHU1T0tGSnRmZW5lZkRhNHRjdXRpbVBoY2V0STErR1V5RVkzbGJqRHJXbmFQM3lMNDIyaXAvWDBjM2lqTHk3aFJuaG1Ga0dDZkdhaE5PSHdxN2lqa0xxandGekFqZ1Z3RFhxN2FsVTJsSkdiUkFZSFE4Vk5sd00zc0ZlYzVjdDc0Y1ZNN2loMHNJNmVkL1BhbUJYNEJSWk5tUUpOa2p5NGJBUVkydFRmWG9VWEhtOGFuakdwdXo3a1VPZ1k5bFJRdnk5NmcxMHFOMmFRcHlxcENobFpXL3haY09xKzJtTk9VVGo5bGxwWjBvZmF5SSs0NlpLbjhWays4Yng3clRaaTRveDZEazlDTkZzYTNKc1NERVdqMDNNWnpCNWFQRmkzeXgvRi93WHUwVDJxWk9OUXVwbXdwQkpoQ3hSdlF6SEsxeTliQXBUVzZtbTZOQXh5QlFWQjJvQkM1cEdCQkpTY050RUMxcStrbEcxUG1XVVpvUTQ1Q2dqNkIvb1p6dFVCeDZaN3F3YjRuZzRpL2xxcG9zR2xQa1FSYTRPSGk0MUwyQWhia2FUVGZBR2FsOHlQOHBscVRQaTN6L3d1cGZNMkZRRFVsa01yYmpmZmJTUGhGWlRnQ1h0YjlpY3NaSFVSa3ZPOGMwT1dtdlM5ZFNJSEFkU1NVVStDS25nNDY0MWtkM2hQdzlZKzNIWFFHMWlrczlDS2lJZ05CNEJIZ0lvRXJBK2NWRnJpNmZvZTJGT0xISm5WUEVFYVJRU1dGNDRHZ0NLUVZTVE8xUkJYWmVKa1NwUE1lYy9SUDdNd1pQUzVvaTVGeDFtVXBiY2paY3BLbDgvTmdnVkdHai9GTXoxNWJxcjJ6N0xIUGxiMFhRQ1ROKzdHL3poL1VmK05QK0R6d3dtL1NKU2NoeTh0ZWxSWVhMd1NyWEY2L3l5ZHc3WEtrdHNtaENxajF3WW8wd1RwN1gybzZmQisyZTlaTkZPdXAxK1c5RnNSVjJZSW56clZpT0xLQU1uaEFvTW1xaXdvWHFOZDRMTnRoM3RsbFQreVFZZkFHT0tIb25wVFkyK2VWNEZPNE01Y1RsUGsvT01vNEsxamx3Q0ZPYU9PZmR2MmJJMG9UOWFFQW5IVS9Heitsb1hZdzcxcmtoQWh3RXV3d1I2U2JPbHNTck9IeTZkSTN6clhua1NHREdCcGNzejBlZlh4TlRkb1I0a1haVUVQWTU4U3N6bExTcTM3Z202VXJONDZ6RDNjY1ArWEg3RWZmMnQ5bWx5NWdFRDRkRm1weHZMbkcxdGNwVnNjcjUranpWekVWa1JUbkt3UTB2aU56YVhnbERLZ1F4Z2s0UzAwbUhMRHB0V2k0RUFxUlFDRlJlQnk5MW9BUFZVV3ppMEZ2VHorYjMxOE01Z0Y4YkZBV3loUk1BcWNGSlBLcXFTVWdOaCs2aG9qODVCaGRCVHdwRmlpSkJNUmdwQm4xRlN4a2NTUjVoYkE1OXZTQjh5L09VSWxBcDMvTFBPc1lneDVxYURMZ3d2OGdEVTJOMzBNTkQ0V0pzbXVGREpUTkdFVVViREhzM0NNSXplRjRMa0poanJNR3N0YlBFR0kwMkdWckY2R3hBRXU4UWo5ZUpvL1gvZXh4dDNJL0hqMjlGNDdWdjBxVHpRS3Z4cnRicFc1NW9hb1laWnBqaFFKNk9HV1o0eGNqdjhFYURpcTBWOUdEZEVzQTFEN3d3Zi84WElxZ3B6dE9yV2lKOHRHUHpJNy9HWGRSb2lCUG9qbUN2YnkyQUI1RlZBSjgwaEJBMEdnM09uRG5EK2ZQbjZmVjZCRUZ3OGdlYTRhMUF0eGZUN2NVOFh1L3hlR1BBZmlkaTFJLzU2TU1sbHBacnRKb0JJdkRzODJhbUlUTS9JOGtvQVdXRFllS09WZitxbEY5azZKUjBjemVJZHA0VDN1RmcrcmczRVhuNUM1dEZSNENidTVjcHcyQi96TTdta0ZzLzdQSjNmM2pNZi9xYmgzejE5UWFiVzAvbU4zY2N3Vnlyd3FWTExUNytZSkZIai9wODlza0sxNjR0c0xoY0k2ajRkditGd3YxRklISTJSS2NRZGUzOXVMK2VXNUhIdVd2SEc1Q1BPdTh6Y1FLRE1ZempGNitLbDBUQnJyekpqZlcxeFl3QVBrVkl4dy85WVBGYXZmbmhoMTZ3OG05Y3I0RkFvckkrY2JUMVgxZHFGNzlQNC8yN1dkYmZPWTNqTzI2MVhXdCs5Rm0xZmdYZlg3RDJ6eWQ0UTdhTGdTbHBza09XOWc2K3g1UURxTG9CN2ZwWjZ2NGM3c2hhUUZ1ZTR5bGxLZGE3UGF3UGNzalVyZm53dmV1NDF3Y1V2d1VCWEh3b1g2eC9ndmd0bjhIaEV5NTl2U1RFSWNhcTdTYkVMMVBPellNa2dOaVRKSzVMNWp2RWppUmk2aFZtNjByZzQxQUg1b0J6bnM5SHJRdjgyYmsvNDJyd0tYT0RKV3FaSkZDS1FLZTRPaWZtakNteElBVlJVT1RNbmQ1WXBOQklZWDFsVEtTUmFZWWFRK2dKcnJUTzAvTmpIbnovbVBWMEJ3Y0hNV0dPeElUSWxibmRwY2g5aXVTQkpXV1pWODFScWlWS210bHlkUW9jbklrRmRDZzlhb0VrRk9CTXpxZGM2YWM0Y3l2VWx0S1FPdEFieCt5a2ZicG15Q2pQTnBybGkvaFAwNnlaZ2dlYW51UUwzcnFzZHJvY2hzQ2tuZ1N1eUs5dW1VQTdVRS9IbmlCZzgxaTZnT2NZZk1jU2xpRWVGVHc4SE9hcGMzbCttU3RubDZoM2ZNUklNMVhXaW1QSStJTVRmVXYyV2dLNFRHQS9TU01lTHZjUkZXVzVLM3dORGVuanRSZXB0M3hhd3dwK0JwNFNsbEFsei8xN0VzT2IwQ0F5RUJuR1NYUHkxMkhQVDdnOTJ1YkxyWnY4YWZjSEhyRk5uNWlVREFkQmdNY2lEYTdXenZMcDBnZDh2SGlWaTJHVFZpUUoraG8vdythMDFrWCsyVU0relJQeStXbGxPMVJWQlJlVWNkQjk0SWtGQXp0T3lBUjhxZEd4UzhOcGN6bjRrRjVqaTZUN2QreVpETjhZaE5FWVk2LzdNNnV6SEY5VGRtZ29OWmtENVQzOGV2SzNjditXQjdxN0FreG9NS0VtQ1RLaWtTWFNDaXYyOG01MTNudFNNc2FJZkx3Q2thNlQvYWdZanhWZnJIN0FoWENlcG5DcEpCby96WkNxSU5TMFZXYUw1MVhCRnRjc1YvMktGQ01WMmpVa29hVHZhM1pNbjhkUmo1dDdhM3k3L2dOYjZSNXBYdnFHckxEc3Ria1VuT1hkbGZOY1hsamlqR25RR0R0NEF3TlpuZ1A5dWZyNGNlWExLWElmSXFYWjJSNnhNeGpReWZvODN1NVFhMVZZOUVOQ0l5QTlTb242SXBoRWVSd2dnS2Q3TXVXMzdNYzlBMjdwU3I1V1UvMWl6TXZuVGtvUnlJRGwxaEp6dW8yYnJPZGQ0T2dzd05OaDJremNOUklVM2NHWXZjNklSVGVnVWp4Y0NsMWFuQzFQTXNvQklrZFhqalFHeHBwNnRjYVZzNWU0cis5d2UzQW5KNENQdjVwWjBxV3orN2VFbFZWYTgzOXVjL2Mrc1VCc2IySktqVkZaanlUZUpVMTdxS3hQR3U4d0hqMzRQNDM2dDM0M0h0NzdYWllOTzg5ZnR6UE1NTU1NYncxZUpuTHNoVkdraDVsaGhpY2g4cm1yc2NSSDc1SE5CZXczTEJFc0JMOE1SOFc4a3doaHp6OXMyODJ0Z09oeE1BTDFOV0NFY3V2bkxJRzl2bUdyWTlnYkdBYVJ0ZHc4amY0ZWhpRXJLeXUwMjIwQW9pZ2lpbWJtTERNOEhaMWV3amMzZHVqM0UrN2MzZWZ6ejg3eVoxK3M4dW5ISzZ5ZWIwTG81akdyNnVlNVVRbHN2emRZMWU5bzM1SnZFd0w0TmVqdnA0clNCRUY2MXYyaHlJUHVWZXpmVDlJRjlPZkNSQ3dncGlTd01uVDJSbno5N1RaLytQSXhmL2hxZzI5djdIRC9ZWmU5L2ZHUnUxSEtzTE0zWWpoTzJONGVjZVBXTGpkdTd2QlAvdEY1L3V3MzUvamd2UVdjZWk2ZXk5UUwzaTV5ZFc4NmhzRUdkTzdiUUtTaUxiNE85NTVub2VBeURFUUZBUndaVGluOWVCbEY1UHRNQVh4S21CSEFwd1RIcmRURDZvWFBHcTFQL3FyZS9KQ2djZzdIcVNNQXBVWWs4ZGEvSGczdk11ei84TitFbGRXL1M1UGRXeWRwamVlNGxYcFl1ZmhGby9YeGYxZXRYOFgxMnZsOTRlVDZrUkFPU28ySjQyMnl0R3YveGtIdU5nRHFqc3RDdlUxRDFwRjloVkhtSUVsMllLZE12YU5EcGdxeWdzc3NpbjljQUZPeHFuekFpTHJzRlYxZVRNMlQ4aDVWbUtQRzV1S1loZEt1MkFvZTJZaHBCWGlnUEVIaVFSVEF5SU94cTlnbllkOWtEQ2dJWUlHTHhNV2hpbVFPd1RrcWZMRjhoVDg3L3psWG5ROW9qK2VweHBLS01qZ2FST0VOUE5tS1JlcnkrUjVXak9tSkVrem9GTjhvbE5hRVFyQlU5MW10VjJuY0RuQnorcmRZMEpZSWJMWlNTMEk2dVdXekxIMW1XbUYyb1Z0UFhrM3RrWXY4djFOemFaRVR5aElQaHhDZlVIdDRpWU1yaFQzUHdqZjd0RytTUWs4MjRRc3l6N0QyZUo4ZnRoK3pPeHdRazVMa0JIQmgvM3hZQ1MzSUYyWW15dDBYUlU3U0NORENvSXpkTkdaQ3R6czRTR056UEVzRDRnbUMvRGxPMVFpa01iZ0dmQ1NoY2FuaWs2R29FM0loV0dTVkJWcHhqVW9tY2JUSnJZckxTVnVQdmg0QzI4U2tFTGlldEJiUU1HbEhBcEU3S3hmN0tEckxJWlo4MG9jdENlZG9SVVZJMnZVUVV4RlVBMEUxbHJnSkNDVkw1ZnNKcEJWNTRTZjJ2VmI1bTNpYVlRQzlVSEZudk0vZlBmcWVQM1p2c2NZT1hjYWthRndrTlVMYVZMbFdXK1dmdlBzUkh6WXVzeGcxbVJ0SWdsamhwQWFoODRVWm5lZnZST2VITms4VTVjamZ5NWU2YkZwUTJEMFhPY2FmTnNSbjRDWVFqRFZWNlhDK2VabkkzV00zdW9tT2RnbTBJb3VHcEdFTXdzVkl3Uk5XMUFVS2l3Y2ZPOUFYeXQvanhzM3k3NGRoeXUyaENOVFJHS0hSQWpJQnFkSEVPWUdXVGNhU2c2RWxsamJUWkpPL0Z1T1AvYVRhaENqSitQemNSMXlxTHRKeW9SWkJrR2k4d25kZE9OamN6S1djMGdmS1hMb1FzckE3VGtHbWFFZVJPb2F4RCtNNnJHZDl2bmwwbTF1OWg2d2xlMnluK3lSa3VEalVDWG1uc2NUMXBjdThWM3VIRmE5Rk8zT29KdzUrQWpLVG9EM2J0aWQ1b3ArM2ZSZjFtVnM5U1lHc0NrWnF4TDJibTl6dmJEUE9ScGo3aHZyRmdMbUZzL1o4MHp6aVFyenNLbk4rM0xMZmV4NFVjM0MweW8yUnBRWmZUUW5nU1dTeVp0b09maTZVYnJMNUQ1MXFxaldQOCs4dXNMeld3cm5uNUMxVzVsYlFoeU12VE41ZGJSdTBOdEFwZzZSUFArNlRPQTJRdm0xSHVraXNVM1R3d2xLOEhKeFcvQlRsUTlqZ0RxV3BpcENWK2xuT1ZKbzB5YWdBSSt3VGxEeDRSZ0JvRmRIdi9JbEcreE1hYzcrMmVkc1BqY2RDT2hpamljZVA2ZTc5bmtIdjYvOTlIRzNkMW1xMG42V0RiYTFIdTJuU2UvMFN4ODB3d3d3enZEcThrdVh1dDlXNWNZWVRnbkRzTFZ6Rk1OcTFDLysxWld1RjdQcTg2RFBqR3d1VGt3UFNzZXBudjJtSmNMY0hLbUlhZnY4YUlMZlFUUkxZN3RyOHZ6czlHTVdXUnpzTjFHbzFWbFpXOER5UDNkMWQxdGZYNmZWNnovN2lETDk0akVZcE4yN3RjdTlobDN1UGVtenZqTmpmRy9QSjlXWE9ubXZTYmdXNHZndSt5UE1ERzE0Rll6UkJvYXBNUjlZSkllNWFGZVlia212MXB5TVA0dmJDZytTdmROOWc4cmRZM0RMMkh1ZjU0SVFnUEV5azZPK00yTm5xY09QbUp2LzU3eDd3MTMvN2lHOXU3TEN6ODZUcTl5aU14eG4zSDNhNS83REwrdnFBL1c1RW1tZ0N6K0g4NVRuQzBMRzVoWTE1ZGs3Z2Nqc3JVakwwSDl1MERPa29YeHR4MzV4Z2hKd0FUaFdNRWh1VTlKUFRJajhiaHFrQ2VJWlR3SXdBUGdWNGZuT2xVcnZ5UmFQOXEvK3hOZjhGMWRwVlhLK0ZFTlptVlp1VU1MdEFXTDFJV0wzNGZ4bjFiakFjM1A1Zmg1VXozNlhKL3AyZlNnUkw2YnBoOWZ6SGpmWW52MjIwUHlXb3JDSWRmeG94Y3lLd2thWmFwNlR4TGxuYUw3OXpJQWR3UlVCVnVnUzRPRW9kNlhRNitXS1lid1doY0ZpMGUyVHh6UkVFUXBrSXpSZkNuMUQ4Rmd1cjR1bkVTM0g4ckxTbDRvQjR6empHcnRWTGdaS2dQWUVPWE5MUVlSeG9Jbi9JamxqanU4NWRidmNlMHFNWTFRUWVMaFU4R2dqT1VPWGp1WXQ4dnZCcnJ2blhXWWphaExIQnoxS2NTWkhObFBRMXVVTHN3SG1YazIwV0tGUjFLcGVQYWx3RHJyRUwwdzc2QUgwbVNwdkV3WnRzRWk4bnJKMmNMQzRxYUVxNFRPbGZoU0hOeWRNc0oyYXlYTWtrRVRnNUFSN2k0U2NCWXVBZ2ZIQU9LRTFQK3lacDY4T2dNWjVBVndWNyt6M1c5cmZvNXJsZHN6ejdiN241MmZvUmsxWTNxYjhuMnVoeDVSZEh2cTAxcEtraHpjemtpQTRDeHdoRUprcDVkTXNQOHM5ZlI4S0FWT0FxVys5MUFqU0tSYmZKcGZZNXpuaUxWSVlPZm1xSjJ3TkUyTEhuTVgxUFNvRWZPcmkrSlkzTDlmVEV1Ui80L1ZEdDVnRUFJb1BRRmJRYlBzSURQOU00R2h3dExGRlhFR1F2M1V6eTQ0cU13dlpaeXd6bFExUjEyUGNUYmc5MytXcmpSLzYwOXlNUHpCWTJMRURoSUtrUXNFaUw5OXZuK00yNWQvbWtlWVd6V1lzd01nU3h3czBLQXNtVW5BK0s3WWcyY1BoMStmZU1xZDE4eWpUMytJdFloR1hnUkpyQUZaaXN4bG4vS2gvT2Y0SGIrVDBtelZEREhwb0lUQjJFbU1TMUFGTXpCY21VL0MwVHY4VmxmQmJoVzQ3UW4vU2VJbWhINW94aEJsS2poSTA0N0dlYVNPbThMMDV6Y1IvZWZkR2JEWnFJN01EN1dhWkpkaktHSXFXemNvR3J0V1hPMU9kb0pDNHF6bkJpaFZmY0d5YUJCWG1aSm9FSk9adEpyaFNYTm1oQXlZelVsMFExeVo0LzV0RzR5M2ViRC9sMiswY2VwSnNNaWRBWVhCeHFWTGhZV2VGWGk1ZTV2dmdPcTJLQmVpVHhvaFF2TlVqdGxNamZRZ0g4Z2hBRmtacmZLZ0pCbENSczlIZlpTdmJJeUNDQ2JqWWlDd1JxREk0byt3Kzg4QUdQLzhzVEwvSzg2WTVDaEdaYXZjZmY1SDltNU9WV0VQaVNoYk1oN1ZHQWQyL3FpM0cwQnJnY04yYmJia3BHNG8xSi9UR1oxQmdsN0xnejZjVEZkU3ZHaC9JNGNUZ1lZUXFKd1ZPU0lLcXo2S3h5cnJiQzFuaUhubFo0VEllTGcxODNaR21IYVBTSUpOb2hySnkxaXljbEZiRElWeWZqYUozZS90LzlONzNPSC8rZldUbzRGZGVhR1dhWVlZWTNGTVVENW1tdWRBdHRTaVR3RzdKK09NTXJSTEdvckpWVkhvMzNZTGdKZmcwcTg1WUVRUENMc0lLZTlCUFhrci9WUlpzSGVMd0xPbDlYL3JrWDRVdlBlT1BFc05XQmg5czIvKy8rd0p5Sy9iT1VrbmE3emZMeU1vN2pzTFcxeGNiR0J1UHgwU3E1R1dZNEN1Tnh4bzJidTBUampOdDM5N24rd1NLLy92d3N2L24xS3UrK000ZG9lRGIzbDlHdjBIaWdDRHhXZVYvZnl4WEFtYzIzK3JhanlIOHUzV24rODdCdDFjQ3Y3ZlAxczFBRVloZEIwUzU0YlhBWFFZVnM3UGI0NXJzNy9PRVBEL25xcXgvNS90WUc5eDkyNlhUamx6cmFnN1VlU3RzMUtzY1YvTG5TdkhkMUhyL3EyV0NHWjVIb0lsL1Qwb2tOd3VxdldRVndNckNCQ05MNytlODdMd2lERlVESHFVMUo4SW9JNEFRYnd6NVRBSjhDWmdUd0NjUHoyK2VxamZmL2FiUDkyWDlYYi8rS2F2MHFudHZrQUVFaWZLVHY0M29OL0dDUk1EeExXTHYwUDR6NlB6SWUzUDVmK01IQ24xVFdYVk1xZStHcG4rdFU2bUgxd3NlTjlxZi91VG4vRzZyMUt6aHVJMy8zcEh1c3dPaVVMTmxIWllQOEwxTkgwRUlCN0djU21RaWJtMTNuYTUxbEZHdi9IbEJsYXZmODNFVXV5S25EcWwrWUVyMWwxVzlCK0V6K2QvaTBEbkpyWmF2bmxPbTlTR0FKUXlGUWprVDVBaDJDOGlBV21rSFdwYThIRExLSXZ0em1YdndqLzdCOWgxdTlSL1FCaGNERnhjT2pTY2c1djhZbjdmUDhGOHNmODU3L1BxMXVrMHBxOERNMXRjMmU1TVV0aU4veVZ0VCtVZWYxSkxVckhRR09vZE1aOG5pNHp5aU9EbEFxaGRtelZlaDYxQWhvT1ZYbS9Ub052NEluSEJ3TnhvaXBZbFZiOGtVWlRacGxqTE9Fek5GRUlxV1Q5UmdTNFdBVlVZVm15a1ZTZHhxMC9UWmVFZ0FtTDIxaHczck1kVG94V09XbmtZWkVTTVlpb3lkR2RPa3pJc29KN0lQV3p3V3BhUWxzcTR4MmhFUUtPOTk5ZnBRSXBmenlLV1dJbzR3b1NYT3kzTmFSb3h6RVdOb2t2Z1VaOVNMRVVQNVp5NjBKdkV3UzR0S2dnb2ZMT1hlWnkvUG5XS20yQ01mZ1pBYWhjeVVrcFdNZWV4NWdqTEhCZWFIRTlRNEZJaFRlZFJPcjVrTWs2RkhsTlE1Q2FWemZVS2xLcERISU1WWVNPc25abXZmMWx4cmVpckZncXZ6VmppYjFZUlFhZHB5SUg4ZGJmTG41STMvYStqRzNmWTdJVURnNFZQQllwc1dIMVl2OCtibHJmTHgwa1lWK25YQmdDTFhHVVZQMTRBSHB4bkZqejFGL0xnOWZDVERHamtVdjlVQmxRQXRFQW41c3lQcUtabTJCOTVwL2hvNDMySTUrUVBTMzBMS0hrSXQya2xxTXhZSjhRT2RvYzRYeXM4VlJyT3dCRk1yYXcvblppemFqN0RWeEJFb1llcjJFM2VHWWNaSk1uQVNlcEg0UEhzcGdjdnJYWmtBdDNBaFNrekhZR3RISnR0bGZ1c0xWNEIzT2VIUE1WMzJhRlFjUmc0d3lCQm9oY2xWd1NjdHU2MEpiNGxjcWpMQ1d6M0VnR2ZpR0hXZkEzWGlEYjlmdmMyUDlFUnZzTVNKQ293bHdhY3NhbHl0bitXVGhDdGRiRjFrMVRXcERReEJsZUZya3hIT2VUTGtJOG5uaDhTKy9HTUp1QnR0Vk1xRVkrbVA2NHhFS2pZOUhQMHNZUlJrMTR4QktZMWVZbjlVM24zbDRNK252UjhWU0ZZU29rUVpDKzVmSkVRL0hndnpzeU1jd0kwQWJYQW1WQUVKUDRrMUcveUlrUnh6WkxxY0JVWXFVbE14UFVCVjdWMUVLdk1sRWd5UEk4a00xZUZTVUZubnZpUTJPY3BqWHE1eXZYK1plM0dWSHF6d245dkZ4SW1tOFRUUjZnT2UzY2R6YUlSdG9ld0N0SXJKMHNETWpmMmVZWVlZWm5zQ0lWN0JZOVZyZEdtZDRmU0Z5ejQrNGI5VkhiaFhjd0tyQkRnVjV2YjBva1FaQkhlb3JkaEUrNmVjcVlNRnJrWU94SUlCanF3QmUyNEgxUGVnTzdhTDdTVU5LeWZ6OFBDc3JLeE1DZUhOemt6aCtPY0praGw4dTRqamoreDkydVgxdm4rOS8yT1hoV3A5ZUw2YjdhY1NGODAyYTdZQktMWURBdGMrRUtsZFFucWFWaGRhUXhaQU9JUjFZRlNaZ0Y1bC9BZERHNXNRTldsQmJ5UWxnbWJ2UHZVa3ppSHo4RmxqUzFHbUFVd1BxYU4yZ3YrK3p0Ujd6MWRmNy9PZi8vSWovOUx2YjNMeDVoMTV2OEpPUHZMYmU1KysrZkl6akNselBZYjRaY1BaaTIxcE5wMC83WnJGZW9PeTl0N2NHdlljMjc2OVI5bjd6Wm5HL0Uwd0k0T096VVowa05OTUVtek1DK0JRd0k0QlBFSjdmUGxkclhQdG43WVYvL0s4YmM1OVoyMmUzaGtEYVJjRmk0TTN0QWFRSThQd0ZIS2RLRUo2aFVydk11SC9wM3c1Nk54Z05mL3lmZUY3ait6UjlkbjVnS1QxWFNML3VlcTJMdGRaSEg5YWJILzZiUnZ0enFzMzM4THcyUWpqVFNmQUpRZ2lCVmpGSnZJUEsrZ2VVa0VWS3lBYVNCdk80Y1FYaDVKYXdoZVd5eUQ5WVZ2eVc3WjdoNlVxeWllcTMrTkpoNitPQ3VjM1prOE5XcHNlcDdvcGpGV3V5aGVJdUV4UE9Ram1DeklIRWhjd3hwRktUdWtBdElhdW05TTJZQnhzM2VianpQYnVpejQ3czhGRHQ4amdaczJjeUlpUUNENStBR2lFck5Qbjh6R1greWNXUGVOZGNabUhZb3BaQWtLbzg1QnZRd3VZUDVUamk5M252S3ZuK2ZJbXVaS3h0NzNCcjdRR2RhRkRXd2lLeDZ0d0tIalY4bHAwMjc4OWY1UDJWYzV5ZGErRUxCNUVhZEFhSkVpUVpaS2toVlFhVmFmckRFZnU5SHFiaU1RcGl2dCs3eWVONGd6RVpDVmxPb0ZvMThYeHJuak5MSzFTOEFKRnF4QUdWODJGRy9xU1FFeVJTZzlSb0J5S3QyUnRFN0k0SGRCa3hKaUdacUg5dEh5cnNxNjBpMmlyYlF3SkNmRHdqSnpsNmhTbTN4YVBLWFNKYVJGRVdnVEtLT0JrenprWWsrVXpEeGNOVFBtTGtRQ0NtT1lBUFhQdmo2aVp2dEhsZVU2RVZqaEw0MnFWT3lCdzFYQ3BjclZ6a1lyakFuUER3TTROUWxvQzF3UWJQYWwvbTRHbm1GckFGVVo2N2p4L2h0bjVVUkdKQkVPZjJ6dGk4dEs0UzFxSjJMQ0J6Y2dMNFdlcmtwNkZVN3lJRG1hQWRSUklJaHFGaFU0eTQyVm5qeTYwZitXNXdyMlQ3bk9YOXdtZVJCdTlYTC9CUHJuN0k5ZllGRm9aVjZtT0puMm1rTmdjbGQ4ZXBObzRyZWpIK3BOanhwd2hBK2NtVEw0UFE0TWFDd05Gb3owZkpGYzZJY3doOUcyLzhBQk5zSW11WGtKNDdkYk1wYzdWSGNWTlBIYXVMRjhXT3lvUnZlZHpPMjNIUkxhUkVTMFcvUDJSM2Q1OVJFcFdzNUl0UWthTUlOMHY1Z3NtVGlLUTVBYWRKeUVoSUdYY2l0c2NEN2ptN3ZEZC9rZmZPbnVWaXMwbHQ1T0pvQ0RKTmFEUlNaWGJjTGZmbm5BRFdVcE5JUXhSS0JqWEZldGJqKyszN2ZMMTdoM3VERFhZWk1NNjlIa0k4MmpSNHIzbUJ6NWZmNWYzR2VjNklPcldoSUV3TVVrbmJwclV6RFd4NGF0REZjeUJuVTdVd2FFZWloQ1lXQ2FNOHJNWEZaWGN3WUs4enB1bDRCSTZjUHB4cjhySDNlUnRidVM5UEZiSENDS1F1bExMMmMzWTB6UzJnUTdzZ1VNU0YyUFpXRG01NURSNVljeUplWW5BTU9FcmdhbnNQS095ZkN5Vncvb1h5bHlmQkJ4cE5Ta3BTSkJZUUdpMXRFSmtzQnZXalR2ZW9KbEErbEwyRjRTbWJhN3hGbTBWbmhaYndxUkl4eHNhTjVFNkRUeUNKZDRoR0Q2ZzEzOE1WVFV3NVVDNy82YmgxWEsrOTZqaEJlSkxwU21hWVlZWVozZ0lNOHUwMG1iVnBmTzRNTXp3TkV4dlVBZlRYYmY3YlNodThHampQZW1aOFcxQVFDTUlxb0d2TE1PN0FZTjArVDcxRzU2OHlRMzlrOC8rdTd4bDJ1b1poZERvbGRCeUhwYVVsenA4L1R4aUdySyt2endqZ0dYNFMwbFJ6OTE2SE5GRnNiUS81K3BzdFBybSt6SzgrV2VIamo1Wm9MT1hqVHF3NG5VVDJoZkxYMk9DT3VBZEp6eExCaFIzOEx3SjV4VW9QS2kyckFBNmErVE8xZnAyR3ZHY2dmN0JGQVM0NGJmRFBnWE1lMGdxUDEzdjh3eDkvNEtzdmIvQVBmN3pGelp2M3VYdnZFZVBSVHlkL0M2eXQ5L25kMzY0eDE2cHcrV0tMUml1azNnaW1LcC9ETWxpUjMxZTFzdmZkd1FiMEhsbnI1MlI0OEROdkNnbysyMENTR1VheElYNDFwc3lHYVlLN0dRRjhDcGdSd0NjRXg2blVxNDEzZjkyYysvVy9iclkvcDFKOUIrR0VnTUdZTWd0UXZNd3ppUXFCNDlad25CcXUzeUlJRmdpcTU2ajAzL21yUWYvN2YxbXRYL295amZmdUtoMTF0VW9pc1BsOXBReGEwZzFianF3MGE0MzNsMXkvOVcrRHlqbXF0VXRVNis4U1ZNN2plZzFFRVFWNktoQm9rNUltKzJTWnRZQXVMK083d05uMk8xeHEvWnFxMDhiRW1TV3VuRnhaNUFDVmZQTTR5SlVkVitSSjlGS1pqU2piSGhlc1NYa3IxZi9UU04vaTkvSlhVekhoa0pVRTVRcVVKMUdoUytvYmhpSWg4WWFNVFovZC9nNTd1NC9wRGZicG1vVDE3aHJyMFNQMmlkaERzNGNORDdkanA0ZFBTSVdBSmRIaXc5WWxQbXRmNXozM1haWkdEU3F4VmY0S1phWUVuRDVNL0I0MmJYNGU1SW93WWRDT0lBdGdQKzJ6T2JKVVJaRmIwOWF3dGFldTR0T2t4aVY1bG45MDloT3VMMTJrS1FKOEk1RlNZMXhJdFVBcCt4Q1RHYXRpSFFVSnZlb0lFNFQwZ2hHTlVQRFZydUYrYnp1M05oWTV5ZXd3MTY2eGRLWkpPSFFnMWlYUzl4UnZsSk5ERkhVaVNFVEdnQ0ZkTWFCUFJFUkNtaFBBOWl2Mm55VitQU3I0MUFob1U2V2RWZ21VaStPQWErRDU4aGViSjM1VFVwUEtoRlRFcUR5YnFZZVBuMVlRc1dNRHlNeUxYdmRTV2JSQkpsRExxc3pSSmtVenY5am0ydW95aTA2RlNtVHdGRlA3MmVjS0xzaFhwZkk1WnBab1ZGcTZaNytvaFcxaERXeHlkVytpb1E5a0psZmhGOWE0UDNFeUpRdzJmMnVDa29vc0VFUTF5WTQ3NU9iK1kzNi9lWXR2dW5kWlk1YytZeUl5SkFXWlYrZUQ5Z1grN093MVBtaGVZRG1wRXd4eXhmNUU3Y3p4WTluaHNhZ1l2Z3FiK1RMNVcvenRwSWJ5L0xUOVdLTTlTU1lxTEhJRjVHMHl2WTVqTm5GOGczU0ZMY2RoSWY1aFV2dklZNWpTaVpYRGc0NGF3NDY1aG5rTVFwU09HWTc2eERvaHcrUjYvS01QWG1neDdaNUY2YTZnaVhOTnNNRVFhMFZ2SExQSGdHM1Y0YkhlNUZKbmtZdTFKYzQyRjVsVEZVd0NicExocEFhcEZUSi9pRlFZdElEVWg3Z20ySGNTN2cwNmZMOS9uKy8yZnVUT2NKME9RN0k4a0NiRVpaRTJIN1F1OGVuS0ZUNXNuK1dNcmxNYkNkeFlJNVVEcG16NWZGSVBDZlloU3BFSExnbERJdFFrcjdsRFJGY042Q1ZEa3JDR0VmSlFsTWFMTnJpQ3VXZnlQQzdNTkFkNDhaa2lMN3pHWUJ6ejFHN3k4NklVa0lCRW9wR0p3T3c3eUlHTGg1TnJnSzMyVjJDZTZDSUY3RGxiQytnb2pSa25NYWx2VUxuTitvRnVVUDd5Y2NFV2hTTkloaDBuQkVqUDRIdUdoZG9jWjhKbFdrSlN3Y2JZZWRpNWgrUkpoaUtKZDRqR0Q5RXF0Z0dEQjJBTDQvcHpCSld6LzYzalZ2NWZ3TnB6VnVBTU04d3d3eThCRVZPbi9kUENjV0dFTTh4d0VNWGFqMHB0RHN6aEZneVdMQUVjenVWMnFQa0QyOXNNazg5SDNjQmFvb1pOOEtyZ2VLQlB3Vi81UlpEM1lwUEJZQVM3UGRqcHd0NEFCcEhOdVhnYWNCeUgrZmw1VmxkWENjT1FUcWZEN3U0dVNUSkx0empEVDhPangzM1dOd2Q4ZjJ1SFc3ZjMyTmdjTUJ6RXZIOXRnYm1GR3RYQVFRYXViZnZLMk8ya1ZLbkNBYVB5M0w5N2xnVFdXVTdZL1JKdW1jWGF1bWNEWG9JVytIVTc5dW5zNXgvdm5ndWxoVFBwZ2xNSGR3N2tLbGw2aGxHM3pjUEhJLzc0OVdQK3czLzRBMy8zdDMvRDdUdDNHUFQ3VCt3cENBS0NJTUIxWFlRUXlOd0NYQWlCMWhxbEZFbVNFTWN4MlJHR3Ewb1pIcTcxK1BKUEcxeTlPc2RjTytTRGF3dTRWZXRVYWFXd1plUUxaVmxrMHk1MEgrVFd6ME5MQ2p0RnJyUTNESG1SMHd6aWhGTkpTM0FFRkV4aTE5L3lTY3JQZ3hrQmZFSncvZGJGYXVQYXY2MjNQaWFvbmtQSUlKOVlQM1dGSEZNaU5LVU1DU3BuY2YxNWdzcDVndXFGLzNZOCtKRm85SWcwN2Z4djZxMFA5eEhDYmJZL1czRzkxdi9WOVJvNGJnUFhiZUQ1OC9pVk13VEJzczAzTEgyNzRIcXFkZzhDb3hPeXRHTVhEckhqUkxHczd3T3I4eGU1Y3VZajZwMDZERE9yL2czc3VVODhvajJlREVZOWRnMjZiUGRjVGo1WmpoWXFwMkl5eng1dnk3eHhPYWRtL3JzV0FoVUlVdDhoOFNGMkU0WmluNjdwc0ovMUdMTlBQOXZpY1hlTlI0UDc3TERQRUR0cURiR2s3eEM3T2hBak1iaDQrRlNwc0NDYXZGZTV5QmZMSC9HdWQ1bm1YcDB3TlhpcE9xVEFQQ3F2OFl2ZVNBb1pwa1pMUTR4aGtNYjB6WWdSRVpFMXAwU2hjd0xmd2NlbFRzQ0ZjSmxQNXEveVNlc3k1N05GUkNjalVPRG1ueTN6UVZwWTdWM21RMUtaSjVZZWUrNFEvQjZkWkkrZFhvOGtKMktzaGJLZ1ZwVTBtZzVlSkVwOW9sVHVVME4rNFlWQkNZZ2R6VWpHREJ4YkozRmVJOFZ0M2hMV0xpRmVUb3hYV0tMSkZmOHNsK3BuYUdRQk10VklYWVJOUFc4WmNscks1SmZjemRCK05pR2VhMTZWWnJXSkoxeFFla0p5SGR6SGMwTFpWalJYcVhHdXRvdzNGQ3cxRzV4YnJGUHZDSnl4eVFtcG91MjlBSWt0UUN0RFBOSms4WFQ4ZXptQ3B5QU5nVXhhYmNXa29SWGxldG5KVk5FWFVwQXB4bEVrdm1BWWFyYm9jNnUzd1pmYlAvQjE5eDZQMmFXVHE4RU5oZ0JKdzZsd3RYcWVMODUveVBYNVM4d1BxL2hEUTZBMFVwbWpOU0JIRWI2bDRreEkzaGpMMUtqUzMwNERHbVFHZm1yUW5zdDhjQm1uL2lualFVclZBZGUzeW12U0k4anNveTdtRTM4N2JNMWZKb0NmVGZ4T0lnOGRRK1lxTWpjaFMydys4WUxFUFlvRUZubGdpWU1vNVdjbE41eUhESjNydUcxZThoUkZienpnMGFOMWZtQ09hMmZPODhIWmQxaGxtWGxSbzFsMXFTc0hOd0dSNWUzWkZ5U2VwRWZHSG4wZURMYjVadTB4MysvZjU3SFpvTStZTENjRFEzek95SGsrYkZ6bTg1WDN1ZFpjWVVsNzFFWUdMeUxQOSt1RGNVK2dYWmRoNzRsR1dIV3RFaUpQSVowUmt4S1Q0U0NKL1lpMEV0dDh0RS9rcUM0dXhnc2M4dUJ3VU54eUVHWktBaGVLV0lWQm16SUJiSGp5K0Q4empKZ29rb1VFRVFQN0R0NG9wQ1lxQk1ZdHRUTEJVYzhxaFFaWW84aElHRVk5ZXIwZXlWeUdraElscGtrckpqaE0vSlpKMy9MWWtESWhnSVZ2OENyUXFOVllEczl3Smx4bUxoc3gxTWxrdGxSOHZZd3M3UkdOSCtlQmZJZUNrdkxyNDNsTi9HQVJJWVBhUzlUaUREUE1NTVBiak1QK1ZUUE04RE9qWUJnVlJCMnJSbkpEY0h3SVczWmVvOTcydGRXY0ZCRU9PSUVsUk1LMnpRdWFEckF6b3ArQklDb2VielhFTVd4MURXdTdoczJPdFg2T24yb3ordE5RNUFCZVdWa2hqbVA2L1Q2ZFRtZEdBTTl3SWxES3NMNDVKSTdYNlhRaWJ0L2Q1MWNmTC9QSkp5dGN2N2JJK1hmYVVQWHMyRFBPVHVaUlQ0aXB6WEdhNS9tT09qYm42cHVtdW53cEdNczVDTmVTdjlWRk84NjUvczlkc0JkRXNXNG9yZDF6NVNKd0NaUE9jZS9SZ08rKy9ZN2ZmL2s5Zi96am43aHg0enZ1Mzd0TmtveWUyTXY4L0R6dnZQTU81ODZkbzlWcTRmcytydXZpT0E2TzR4REhNZnY3ZXp4NjlJaDc5KzZ6dmIyTjFrZmZDMys0dmNkLytLdjdMTFJEbGhhcnJEUXJIRWtBQzJ6N2kzdlcrcm43SUcrREdXKzBBajB2ZW1FQmZScHBDWTZBd2xJbnhVMTZoaFBHakFBK0FVZ25DR3VOYTFlcjljdFVhaGR3M2VwTDhLNEdhNW5xNGJvZTBnbnh2Q2JWK2hYU1pJODA3ZnliTEJzZ2tMaHVFOCt6dWRxRTR5T0ZqK09FU0NkRVNoOGhwTDJmbmhyNW15L2ltb1FzN1pHbG5jbGZ5K2w4QTZEcE9qUjlIMTlLcEdPUWZ1bUR4WWVQVXIwODhicTg5ektoQUFlVFpKYnRuZzhVOThuWEJZcXZKOWdGVlcySk95MGg4d1dKQTdGbmlBUERPSWpwOHBpMXpyYzg2UHpBdHVuUUYyT0dac1FnaVJpUU1NNTNsV0pKM3pHQ0dJYzBwMVV0K1J1d1FJUDN3bmY0Yk9GalBteGNacFVtdGNRU01sS1g3VURMNU1sUHNidk5WK0tsdFowYzZZeWRRWSt0cUV1UGNVNEFhelNHd3A3Wng2VkpsUS9QWHVTTEMrOXlSaldwOVNDSUlkVGdHRG0xOU03THBVdWNYYXdGa1N2UXVMUlZTRk5WcVJFd0lrWmhKaGJRdmlzSVBIQ0Z0YWUxek05UE9kL25SVUdJV3lYa0dNM2VPR0l2R2pNaUlhRWdZVTFPS3RsOHlFMUNXbFE1UzV2M3dyUDgrc3g3ZkxUNER1MDBSSTYxSlhNbXVacWZWWVpDTldkTnByVTBtRkNqQTQxR0l4QzA1dXNzcjdRSmhZZVpLR3R6c21paXRIekcvb3Yyb3dTZWdMbVZrSXZOT2FxM0RZMG9wRGtLcUtRQ1Y1UG5JWFdlcy94TXVHNGpCRm9ac2xTUlpVV20xcUx0SFZmR0k4cHZTbjhYRGhOTFdzakptTktCbnh2NVowV2VpTHl3ZlpiVzlubFFOYXpwRHQ5dTMrZXJuWHQ4UDNySUdydnNNV0NFelQzcjVXUE9mS1hHcjk1N2wvZGJWMmdOcTFSalFhQ016Zmw3MktMNXFDWEJjckVMcFcvRVZFUHlTamd3QTFMZ0NrMkl3S25PNDNrZk1SYWFpcitFNTZxRE03MHkrZnRVQXZpNHNmcFFIdDNqeWpTeDZ0Zld1bGlDOGpXWm41RkZ5a1p1WXZKZWVUaG4rVFF2dDRmRXhXVkt6NG1KdmIzR2tLSlJ4Q1JrRElub01xTExpTjJkUHZjSFcxeVVaN2s4dDhvN3kwdWNxYmVweEI1bWJFbGQwVFNNZzR5MTNvQmI2L2U1dVh1YmU5RVdXNmJEZ0FpRHhzT2xSc0FaNXZsay9sMStmZVlhVnlwTExHWSsxY1RneHdKUjVQc3Q1OW8rRVpUcVVkZ3hPVTRONDB3VDZZeVloQmlGZ3lUeUU5SXdJOVBXem4vSzJHcW1OdFRQaTRLMUw5bStLd0daUUJwN2ZRcnlYdVhPQ3BuSnI2WE15MnowS1FldXZTanlObXRzT0lHakRVNHFxY3M2YzhFY1liU0p6TnZlbEFRK1JLSk9DR0NOSXFFWGJiUGZXeWR1eDJoWG9CT0JrZVpKaS95aU9SUmpSREZIS1lqZjRsazVIeHVsTmppT1FJNmhVVm5rNnR3WHJKT3cxN3VIajUyWGxYMVJKdVV6R1hHMFRqUitURmk5aEpRZUFwRzcxOWhQT25tZ29aVCtqQUNlWVlZWlpqaUl3d2t5VGdQbHArVTNlRVZ4aGxjR21TL3paWkcxb3ZRcWxoandhMVlwOWt0Qm9YUXV5Skc0QnpxQmRKeFBXMytHNWRCOHVqaU9ZYU1ERDdaaFk5L1FINTh1TCsvN1BzMW1rM2E3VGEvWEk4c3lvaWdpVFUrUmRaN2hsY0oxWFh6Zm4yeU80NUNtS2NQaGtQRjQvRXJLc05lSjZQNXBrNXUzZC9udTVnNFBIdmJZM3gzeitURGg3TGttdFVhQUk0VzFoamJHV3VvZXR0VjlJZVNPQnNrUVJuc1E1UXJnbnlQQTQxWERHRXMrdXI1MWVLaWZzUXBnaEsyRDE5N3BvVkQ5Q3BDaHpmY3Jsc2pTOHd6N2M5eC9PT0x2Ly9BTnYvdnJ2K1p2L3ZidnVIZjNMcVBSa1BLemRoQUUxT3QxbHBlWGVmZmRkL25razArNGR1MGE4L1B6ZUo2SDY3cVRmakVjRHJsMzd5Ni8vLzBmU0pLVXdXREFlRHcra2dUZTcwUjgrY2NOVnMvVXVmYmVBdk9MTmJ5YVYzSXRMYmxwSkFQcnR0RmJoOUV1WklsVi9vbzN1dzBha3hQQUp4U3Y4UnpJc09UdmtCa0JmQ3FZRWNBbkFPbjRkUzlZK0xkK3NJVGoxSmxtV251UmJtTEFsSmF5aFl2bnorTjZiY0xLS2twRktKM1lwVWdaNGpnaFFyZ2dwRjAwRk1XaVk2RXFQbDNscnhDUXh2dkU0eld5YkpELzlTQUI3QU15QVJLSkl3U09YOG8vVUg2TWZWcFJKMnFvc2dLMjBNb1VzdDJ5NHJlbzk0THNPVkRzZ3o4TDRqY0ZFakZSMmhscHljdlVrMlJWajZTcTZkRmhLOXBscmZPUXgrb1dhLzA3Ykk4MzZLSU8rSDRWUi9hUkJLS0NMeDFRdW1RZzdCSGcwNkxHT1piNVpPNEtuNTU5aDNNMHFZK3dDa0pkem05YXRyYytmRUl2aW55QlhWajcwZ2hObHpFOU0yU1FLNEF6VkU0VkNqd2NLcm45ODdsd2dmUDFPUm83a25DY1VqVUdSNWNzZWlkbmJ1dzlVUmdjWVhDa1FoZ0lsU0dJUXlwSmhTb2VQaTRwQ2hmWGtzQkM0Z2d6c1cwOWZlSzNLTFBkTktBcmdyRkplTHl4eTlaZ1A2OFBNeUhFWFJ3Q1hHcjR0S213VEpOci9sbis3T0lIZkx4d2lSVmRwem8weUlpU2xldnp5TStaOGlaWXNrYTdCaTFOZmpXZzBmYVlXd2tJT3RLU2hPWHZQamR5UmJuS2NCMm9OVUVzVmFoR0MzaVJwTklYdUJtSW90MU55bi9VY2Nva1Ira3p1YlZLTW9ySXNwUkMyMmVFT1NZUW95VDFQSElnS0NMWVMzOTZVVHZwQXdjcytrQ1I4emNqQ3h6R2RjT1cxK2U3bmZ2OC9lWk52aCt0c1U2SExpTUdPVWtvTUJNNnNlSzR6TmNhTkdRVmZ5endNb09EZWZwWWRyallCWWxUS0g0TEpkK3Jnby8xaHZVMWppdVF3c1d0TFZPcGZZamoramhvRytHb1M5Zm04UGtkQ0Q0NGJQSDhuR3JmQThpUEpRcWEwRnJ2YTllUXVacE1XTld1NWtuYjRDSm5lWkdYdTlpcU5qczNXWjc3TjBXUm9nNG9nRk0wS1pvRVJTK0wyQjUwMldDZlI5azJEN0l6WEc2ZDQxeHJnZGF5VGV2UUdRM1kyQnF3TVJwenQ3dkJuZEVtMit3eUlnWUVBUzROQWk0NHkzeTIrajZmTEwzTEpXK2VoZFNsRWhtckpsWnUzcys4MGpoNkVqaFl6MEphaStGZUoySzczMk1ZV1Z2N21CU0paSlJrREdKRjdJQVNZSVJCaUJlZHZ4eUJvcXZsQlBCQkUyaHJpWnloeVpSRUNZRjdvSWtVVi9mMWVtQVMyRnk3am9GNkphVGRyQkdrSGxLSlhHRitkSG10T1hSQmU4Y01kY3hBYjVLRkEweWd5Y2E1TVVyNTYyV2xiNUVEL0pDNXlSUFFCazhMMGxqUnFOWjViK2w5SG1XMytiRjNqd0I3Nnloc29NdnhIQUJwdk1ld2Q0TnE3UjBxMWNzSUlVcnBTd1N1VjhjTEZtWUU4QXd6ekRERGt5aG1jYTlUOU5JTXYzUVVDOCtGRmZSbzE2cmp3cWExUkM0Q2MxK3JvTHNUaGluVWNWZ0ZjSDNGMXNWNEQ4elE5dGlUbklJL0wvS0pXSnpBVmdjZTdzRGpYVU4zWUU2VkFLN1g2elFhRFJxTkJscHJ3akRFY1p3ajNOZG1lQk5ScVZTNGNPRUNGeTllNU55NWN5d3RMZUg3UHB1Ym0zejMzWGZjdUhHRFRxZnpTc3FpbEtiWFMvajZ1eTNHNDR5SGF6MXUzTnptazAvTzhObW5aN2g2c1lWb0JKYjRUYlVsTVYvMjBjOFlVSWtsNGFLT1ZRSnJCZkswNDdKZUF4UnB4NlJqM1IzcUs3bkxnL01hQmxVZmhnR1RxMlRkQ3ZoTElNK1RqaGE0L2NqdzlSLy94RC84d3czKytLYy9jdlBtZDl5N2V3ZWxEbHJqTlp0TnJsKy96a2NmZmNTMWE5ZTRjdVVLbHk5ZjV0eTVjd1JCUUpxbWFLMXhYWmRLcGNKZ01NRDNQVFkyTnJoMzd4NWJXMXRvclltaTZNaHhjR056d05mZmJmUGxIemRZV0toeTZjb2NZWmhUYUNxL2VhVERhZDdmOGE1dGk4QWJINEJnSUZPR0tMWEJTcS9taURNTDZOUEdqQUErQVVqaDExeTNnWFFxbkl3RFZFRUcyd0ZEQ0IvWDlYRUxlY2hFRVFzWVBSWEx2YUxuVHBzalRoR05IekhvMzBRZFFRQUhRRjM2ZUtxQmlpdFdIK05sZVlRWDArNThnTmc1ZktUREtyTGlKbDZNRGNXV0o4YzhRQ29kTG5UcHE0ZHo1K1dQN1VaWUo4N01rOFNlWkJ3cUJzNHUrM3FiRGZXUWU3MzczTm0vdzJQOWlBRnFzaFpyc0lSMzAvV29CU0dockJIb09ZTEtQS2tqV2U5MzJZdzZESFdHeE1QSFk0VUZQbTVlNHBQRkMxd002elQ3NEVjYXAxQ0VHWStwQXZhWWMzb1JDQ2drV1ZvWWxDZUlITVYrTktTakJoTzFhMkd2T2xIL2lwQmxwODJjcWhNT1hTb3BoTWJnS0ptWDgzQk9nK0lpS29SVWVGaEw0QXFTcXFsUk5UVUNmRHljQXdwZ3FTVXl5MVZqQjI2V2h5TUdUaElHaE5VU1pnSk1UUkxyaE0zeE5ydHhoeVN2alduT1g0Y2FQblBVT01jODd3Vm4rV0x4R3I5YXVjeFowOERmVjdpcFFHaTNwT2g3Z2JLUVc3VUN5a3pWaWc0QzM0Y3dOTGd5RithWmx4aG5EQlI5U2lpTmt4aXFGUWQvc1lyY043aUpRS2hjZWY1RWp1bWpVQTVLS0duZnRDYUpZOUlzS1owWkV5dmFVbUVPN2VlWS9UOHhMcnowMHdGVDVXK0djYlMxZlE0MDYvVDRybnVmTDNkLzVNYm9NUnQwNkRMT0F5T3NDYmlURHlBdUJwMk02VzV1TVc0c015L2F1RUlneXBQR28rSTFDa0tuSEhoU0VEdXZ3bEtsSEZmaEFGV2dZc0FENFJoRXBwQ3VoOWRlc3AvckN6dGVtOUoxT0hLTVBrcnhXM1pvZU5sclphWWNtRGFrV3VmNXVDZlpZeWQ3THpzV2hQaFVjSm1qeHRucUlpdmhFcUVKaUpJeEF6MmdtdzNZUy9zTWlZZ21aTEFpeVJXcE1ZcVlqSmlNblZHUGg2TXQ3bmEydWJLNnpKbXpEY0N3dnRsbGJiUFBBRVdQRVIxdlRKUmxHR01JOFppanhrVnZrVThYM3VVM0Y2NXp3WjJqMHMyb1JCby95L3VZeWNmUEEvbCtUL0FlYmd4SVU0ais2WFdIN0c1M2JPN1ovTHdsR1ozQmlGMS9SRFNmb1QxaG44T2VHWm4xQXRBZ3REaWdiaTJVMjBtcUdYUXpScDdHZzlmL0dTa250UjBEbFZCUXEwdUNyc1JSSXArZEZGVHZnYStVcGg0MjZDREdFTHRkVEdXQThWTEw1MnBoTGNZenB2TVQ2OWs5VmY0K0RkS0FENDVuOEJ4RHpmRllEaGM0VjFsbTJRM1pVVEVqWTNDWk9FWWZLS2ZLUmd3NmY2VGV1RWFsZWduN2VKQk5Ib2FsRStENUN3VGgyZXZTOFgrdlZSSWRMc0lNTTh3d3d5OFVNVGJHNWpRWHE2YVIzdFBmWjVqaEtTZzFFWk5aNWV0dzB5cGhwV3Z6NFFwcDMzdWJZZktITEs4S2xRV296TnZYY2UvbkkwZUVMZFlnTW14M1lYM1hzTjAxREtLZktJUjgyaUdGb05WcVVhL1hDY01RSVFTWEwxL213b1VMYkcxdDBldjFUdWZBTTV3S2hCQ1QvS1pCRUxDMHRNU0ZDeGY0NktPUHVINzlPdGV1WGVQQ2hRdjR2cys5ZS9mNDNlOStSNlBSNEx2dnZtTm5aNGNvZWpYVCtDVFIzUHhobDdzUHVueDdZNXViUCs3UjZZd1ovWHFWZHk2MnFOWUN2TkFGcjNCOE04L2ZDUW9CbElvaEh0ZytuWTVzME1zYnJyeDhJVWhwQ2RTd2JWWEFYalVuaGwrTlorOUxvUkNIT0I2SUVFU0xkRGhIZjFqbDlvTXhmLy9sai95SC8rOWY4UTlmL3A2MXgydEU0OUVCZ3RiM2ZSWVdGdmpvbzQvNHAvLzBuL0lYZi9FWFhMOStuWGE3alZJcXQzcmVwOXZ0RXNjeFVrb3FsUXB4SExPK3ZrR24wMFZyUFZISkh3ZGo0T0ZhajkvOTdTUG0yaUh0WnNDWmkyMnJXRlpZcS9IeHZpVi8rNDl0KzVNdWR0SGdEVzEvUmJHVnpmc2JKWFo3UlZCTVk5Wm5CUEFwWUVZQW53aWtLNFNYSzNKUGNyL0YwcUhJLzdNN040SkRFOVpYTzNrVlVtSzBJaG85Wk5DN2djcUdFd3FnMktyU1lhbDZscWEzZ2xRZTBvQlRmblE5TEQ4NThMclltOHMwclZKcEpKcXNqR3FtZHFFY3JQdWpYaGZrYjdHb09wSHRDb3dMaVF0eElJaDl5U2hVN0x1YlBPaitpUjg3WC9QUXJMT1pqdW5vRWFOY01Wb1EzU0V3NzFSNFovRmR6aStmcHhuTTQwWExoTjQ4cWFPNDMzbkl6WTNiYlBSM01UaFVxSEtsZHBZdkxsM2gzY1lTelo1REdERWxmM1doQ0R1SmlVdWh6RlFnTlVZb01tbFFOY2xRUnp4NnVNTjZkNTh4VmhXbTBVakF3eUhBb3kxcm5HOHVzT3kycVF4ZGdrVGdhWGxNT2NzWDA3RVZMQXlPMXZpdXBPTDZoRzZJaDRlRHhNSGF0WG80T0xHREdjdGNTY1hFaHZ0VUk2Y0tqMUtwVWRJUVNjUEFKQXpNaURFUldaNGJ5TVhCeGFGQlFJc3E1NWpqbzhaRmZuUG1QYTdQdmNOS1ZLYzZObFk5cTkxcHZaaG5FYWlsTXVTNU9yV0VURU9jR0pMVTBsd2VEbEpJSEpuWGpSSFQ3VVdVbFJNQzJMWHR2cXR4TW9PVDVIMW9Ra3dWdVVpZlk1OUh3TUFrYitRVFcxSHNGOFpQRFlBb2JHMHprQ25heVVoOUdGWmdUWFg0ZXVzZXY5Kzl4WTNSSXpib3NzK1FJWEZKRlc4UVNFeHV5UjNIWFhZZTNhWjdacEh6N1NZb0wzL3ZDQlRqVHNKME9sTW1nbC9GOE8xZ0ZiOCtka2oxOHUwQTk2Z2hjYUJYdFdSU1FpNEpMUVVlUFRGR0gxYjZPcVgzWGdiVENCMGo4dUZhUVpScXhxa2kxWnJpSDlNUXFYd2NrUlBsYlpNS1Y2dXIvUG03MTdsY3Y0UTc4b2ppTVQzVjVkRmdreCszSDdDWjdqRWtZVUJVQ29DeDVHK2E1OG50TTZiTGlKM2hnTHNQSDFIWmNoRUlrbGdUcFpBS1RTUWlraXpDTVlZYUlmUFV1Y2dTbjYrOHkrZm5ybkpPTjJsMklZZ0ZiaVpBNWNTdkxzamY0cnhQQ3ZtRnl0MGVrTmFRSUNaaHJNY2tKczBWendwQnhsN1VZM3U0UzNJMkFWZWdJNURGOTU5cEwzOE1TcmNFb1VBcVVjb0JMSElOTjR6R0tSc1B1K3czUnpSa2lKQnkra0JvanJxdnZFcVVKeWw1c0puUjFzcGFnK2NZQW1rSXhMUXJGVGJRVCthbU5wT1dYV1NiU0xCakVTaVVrcGhFNUJTQ21ZNFJ4WmVlVlFVUzI3Y3JRTVhnQmhyUE9MaFJqU1h2QXBlYjc3RFp2VTlQUlNRNEpKTVFpdW1PalVrWjluOWdOTHhIUzhlNGprZTUvbzNSK1A0OGpia3YvczlSdlBrOThQOTdxV3FkWVlZWlpuajdVRHlZbnU1cWF6SEJuZ1pDdnFHcml6TzhVaFNMME9uQUxsQzdJUVJOU3dSUGNtUyt6aXF4bndpVEw4VExQRWRtT0dlM3VBL1ptRmNhVTFFY1FzTTRnZDArYk93Wk5qdUc3c2l1QVp3V3dqQmtibTZPTUF6eGZaOXF0Y3B2ZnZNYkhqOStUSy9YNDRjZmZwaVJ3RzhJSE1jaENBSTh6NlBkYm5QMTZsVis4NXZmY08zYU5jNmZQOCtGQ3hjNGUvWXNjM056QUN3dUx0SnNOamwvL2p4ZmZmVVZmL3pqSDdseDR3YmIyOXV2cEx4S0c4YmpsQi91N0RPT01ucTloTnQzOXZuc2t6Tjg5TkVTNzcrM2dEOVhzUitPTWt0Y1BtdElFdGp4U3l0SVJoRHQyZnplNnRVeFZUOHY4dWQwNllBYjJPQ1dzQTFlQ01JRjh6cmJ1dWNMQks1cnk4d2l3MDZWSDM2TStmcmI3L2p5ancvNDl0dGJmUGZkMTZ3OXV2ZkV0K2ZuNTdsMjdScWZmZllaWDN6eEJaOSsraWtmZlBBQmpVWURnQjkvL0pHdnZ2cUtXN2R1c2JPelE1SWtDQ0VJd3hDdE5kdmIyeng0OElDTmpRMEdnd0ZaOXZRZ3FOMjlNYi8vY3AyekszVSsrV2laTXhmbXdIRkFqeTM1MjM4TS9YV3JQbGZKbEFCK0UxRmVXbGFXK0kzVDA3MDNIVUlHakpncGdFOE5Nd0w0UkpCSDJKeEtGR0crbUd0ZXAyRkVZb3dtaWJhSVJnOHhSaDhRbGpsQTFYRlliTTdUQ3B0NFd1TGtZcVRqaFVYRncyeEJJaFRrYjVtOUxaNnRDNGxNQ2NlUnY4WHZaY1Z2Q21SVzNhYUVJUE1FeXBNa3ZrTlVoV0VZc2FudWNhUDc5OXpzM09EaDZDRTdtSWtSZlZHNkNuREdhWE5sOVNLWDV0OWhXVjVsd1YrazdsVnhaQjJIQ2lyUUxBVjFha09ISC92M1VRaFdWNWI0OFB3N3ZGczV5OXpZSnhpV0ZMVUhja0dlMUlQSVZKVnJqRlc3cXFZa05pbmI2VDY3V1plWXRLVCt0WXJYRUkrV3JMRWN6RE5uNmdTeHhGWGs1R2F4bFZWK3BmSUtjaEpSSXRCNUFJQWxhaVJ5a2pPeHNHd1ZrUXNEeDFxRlBwRUk4YlJnU1E3aENwUnIyTm51OHJDM1RUOGVUelNHRWtHQVJ3V1hObFhPTXM5SDlZdjhvd3Z2ODlIOE95eW5OYXA5Y0dLTm9DQi9ENnY2bmdVYjRHRUVHQ21JVTAxbkwyYlFUZkozWlU0NkNLUXA5dnFTYmNNSXJDVU0wTmN3enRtRlRGanY2UW41KytMdDc0Q21WMGpFRWQ5L09mTDNwK0tnOGxjN0tha0g0NHBrTjR6NVlXZVRyemJ2Y0dQMGtNZTU4cmNnZjlOY0ZXcVhSb284bm9aVTl4bU8xb2xWQiswWlRHbzFrd2VDVFF2ZXFGRHdGVmJQcnpMUTNzTU9WZ0ZNa29DV3hia0ZpdUUwdy9aRG1UOVVhRW9FY0RuTTU3ajh2aTk3Z1kvNG5nQmxJRWtVZzFITUlCcVRtb3h5M3QvaWc0V1RRSUJIbXhydnoxM2d6ODU4d0dkejc3TWlsM0NWUURrcFl4Tnp1YmJDbGZsRmJtOC81dDdtRnV2czBXWElrSVFvSjRKVE5ERVpDUmxqVW5xTTJJZ2tJcktCV0M0ZVVqZ2dCTUpvUEFNVktpd3p6N1htZVQ1ZGZvZVBGaTV3VHJhcDl3VitwSEFuZWQzemkvSVNmZXo1Y1Nnd3lzSG1GUTlUMGpnajFkWUNXNUF4TUNNRzlOR3RCS1JCZGNEOXlRcGcrMzBCTms1TGxkMGRtT2kzeDhtWTlmVk45dFFTRjVvVmhCUThtUWozVldONnY1eDBZcFBsbThuVjV1QWtCaWZPY0xYR3hSem9CY2Z0dFN6c3pSQVliY2NObllHT3dZbXdqenZQTTBhVXMySVVPVGZ5UHU1SThKVEJpU1V0WjVFenRmUE1EWGJaVkJrUkRpNDZWOUlmN0VsS2pZbWpMWko0QjZjUzVzb2d5MmNZbmVCNUxlWVcvekhSNk40L2s5TDlhNjJmOGNROHd3d3p6UERMUW5Iak9KMmJleEZEWmNCTzJHZjg3d3pQQVptcm03SVlSanRXSFZaYnRua2l2WngwZWV0SjRQeW5kS3o5ZFcwSmtqNk1WRTRZR2Z0OGZOb29xam1GM3RDd3NXOTR2R3ZZN1J2aVUrWnJXcTBXeTh2TE5Cb053akNrV3EzeStlZWYwKy8zeWJLTWhZVUZ0cmUzR1kvSEpFbENITWNNaDBPaUtDS080NWxOOUdzRXovTm9OcHZVNjNVdVhMakFYLzdsWC9Jdi9zVy80UDMzMzhmenZFbmUwd0x0ZHB2UFB2dU15NWN2VDVUQmpVYURQLzNwVDJ4dGJaRWt5U3U3dm12cmZYYjN4dHo4WVpjZmJ1L3psNXNENGlqai9hdnpWTm9ocmhCNWJtQ1lLSUtQaEpnNkdNUjUvdFdvWTM4WDhzMVZYejR2Q29XdjlHeEFTK09NSlZNTDYrZlhjVHdYV09Wc2NXMHlqMlJRb2QveitQN0hFYi83bTd2ODFWOTl4WmRmL1luZDNXM2k2R0RPYXNkeFdGaFk0Tk5QUCtVdi91SXYrQy8veS8rU2p6LyttSGE3amVkNWFLMjVjZU1Hdi8zdGIvbnRiMy9MZDk5OXgvNysvcVJ0ZTU2SGxKSTBUWW1paUN6TDBGcWpsSHBxKzQraWpMc1B1bnozL1E2MzcrNXo2ZklpcllVS1pDTVlya1Azb1Uwcm9NcUQrQnZlL25McVpaeFlGZkFyUkliTi96dDhwVWY5QldGR0FKOEVURHBRYW9ET2huWWw3eVJjb0Y5YkNEQ2FUQTFKMHc0cUc1YmZ3VUhnWWdpbFJ5Mm9VUEZjUEcxd3RiRkN4Mk5SSm43TGRzK0ZacWE4SGFINFBWUkU0T0NLYTBIODVsODNRcEQ1MHViNXJRaEdqcVpIbnoyOXkyNjZ6cDNSTjN5MS9Yc2VKa1BHcGErNlFCWEJnaGV5R2k1enRmWWVuNXo3aEFzTFYvRDI2amg5Z1cvc3dyY3hHU1lUMUtwenVLMTNhQTU5bE5HOGMvWU1sNWZQVU4zMjhIb21WOVRteWt0T2cvd3RiWTRoZFEzZFpNeFcwbUdmSGtNaTRrbjJYM0J5SXFXQ1MxTldXSzdOTWU5WDhWT1F5dVRFeGJQS1diYXZ6dWR2bWNJb3U1Z3NjdFdlaTJNekFzYytJbkpLYlNUZjkybk9YWXA5T3dJallXZXJ5OXI2SmlNaVJFNVVCN2g0T0xTcGNFNHM4a0Y0Z2Q4c3Y4Y25pNWRZVWpYOHJzSlBCY0s0MWovY2VDOGhjelhULzN1Q09FN1oyZTNRR3d3QmF3RXRZZ2N6bEpiSFBQTDdMMEEya3hPOHFZYTA2RXNsVmZGekUxT0g5YjBXRW9IcldOMzBFK2QzN0Q1T0E0VVNVbHVsbmNqUWppTHhCS09LWU1lTnVEWFk1T3Y5Kzl3YVBXYUxIajNHRElrWWsrWjYwTElPVU9maEp6WjNxWExIYURkQlM1dFQyNVFsZnVWeHAxRDl2cXJKVThIVGVsaml0eUIveTJsd25sYmxCZkZiOUw5SmtFZVo5QzJQVlhBeTQ5WEJBQktyQURZa0ttT1lqQm1tNHp3cmQzRmxUUjZ3QWpJUEpLbmlzMGlUVHhhdThKdlZEemtUelZFWkdyek1XbmdyS3B5cFZiaXkxT2FpdDhUMzhTUHVSSnRzcVgyMjB3NDc5T2d6Wmt4S25MZUFsQXp5Z0pYQ2FscVM0UmlKYjRyZ2tEb1h3eFd1aGhmNTFkSWxmblgrSEV0WkZYL0hFS1FtZDNkd1MrUDhxM29vc0RXbHBjSDRCaDFxc241R3BxM3R0UUJpVWxJM3hUUVVScG04elZzcjQybi9mSUh5SHVyU3dralEwNENRZ3NEWEdHSVQweDN2TVl3SGVYeEJTUnB4aW12b1IwT1h0aUo2by9pOUNQQ3pKeVlOZU1vaHlGeDhvM0RKY05BOHpUcmJsUGFXQWJFMjlNY0pZeWNqVkw3bFdZdUp4bEVvaHVYaTFscjA2MExSWCtxT1FvT3JOS0V3ekZkYUxOZFdhWXQ3MUJnelJsTDBKSDFFZWJOMG4yUzhUaEFzSVowcXh1UXR3aWdjcDBLbGRvbGEvZHIvb1J2ODNYOFBmUGRDVlR6REREUE04SGJqRkFsZ2dlTUloQkI1VkE1T0h0VjU4b2VhNFMxRDNrYU1oaXl5aXFYQmxsVUJpeVZ3ZlBzY3FOL3ltSzdDMWNhdlFYWFJxZ1hqWHE0QzVwVVN3RWtLK3dOWTN6T3M3eG4yQjVDZVl2VkxLWm1ibTJOMWRaV2xwU1dxMVNwZ1ZjRi8vdWQvVHIxZTU5ZS8valdkVG9jNGppY0V5ZmIyTmovODhBTmZmLzAxYTJ0cnAxZkFHVjRJUVJEUWJyZVptNXZqN05tenZQUE9PMXk1Y29WbXMzbnNkM3pmbjF6N2VyM084dkl5NzczM0h0OTg4dzIzYnQzaXdZTUhyNlRzeHNBNHlyaHp2OE00eXVoMEl4NCs2dkw1cDJmNDVOTXpYTHMwUjJVdUQwSlZDcExqOHRnV0JMQ3h3UnpESFVzQTYxOEtBYXd0T2U2S1BQZHZRUUFYd2J1dklRRXNCUVRDQnVJa1BqdTdIai9jSDNEanhqcGZmYjNKbi81MGgrOXUzR1I3NjhteHBscXRjdVhLRlg3MXExL3hGMy94RjN6eHhSZDgrT0dIa3phZkpBbGZmZlVWdi8zdGIvbjMvLzdmOHcvLzhBL3M3ZTJkV05HVjB0eDcyT05QMzJ6enpzVjVQbkRhMUVRUHhoc3dXTGY1cHpGdlZidlR1UUk0U1U4dk5jRVJTSUVlVExSM001d3daZ1R3Q1VEclpKakdPLy9MT05yOGY2UnAzK1lDTG01SWJ4bUVrR2lka01TN3BHbG4rdmQ4Z2R4QldzN0JWQWgwRFUvN3VNYmdhR09GUGVXQUpFTkpWVmJPTzFvUURpVkhMYUdtWDNxYTJwZnB4MUJNYzJ3bStiRmM2OEFaZXhDNWtGWTBjUzFteDNTNTE3M0xuYzdYUEZUM1dGZDdiQ1lqaGt5Slh4OUJFNWRWRnZoZzZRb2ZySDdFZVhHRlJiVklZeXZFandSdVpuQ1VRZVIwcXRhUXBnNUJZNUdWNjNWVXFxaFJwYm50NHcwTVFrbEVXZm43UXNyUlp5Ri95aWpzYjZWRytJSXMwRHg4dk1OM0d3L1lIdlZ5cFp1MWZ4WTVLUnZpMDZEQ1l0RGsvTkk4aTI0RmY4dmtsckJPU1NWNjFER0w4Rll4M2JSQ3B4bGEyVVYxbVJPc0hoNFZLZ1E2UkdZU3FVRllLU3pUSE1qRi9rNnFQeFgxd21TZkdrR3FNMUlTREdaQy9vYTQxQWc0SytiNHVINkpMODY4eDRmekYxZ2MxNmlNRFY0cUVDclA1NmxmVlBtYkh6L3ZHRm9ZQ0FXWlRPaWFEa01HRXhXeTZVdk12a1FvaVpUazE2RlV2ODk5M2t6N25TaFl5K0wxRVo5OVdybW5POHVWY1NDTXdYRWtRZFhIaTExa0tzcWZ5cXY5MEhlZnRsYjJQSVRsY2VXYjJENm5JRk9VbzBsOUdJU3c0eWZjR216eTkyczMrTHIzSTQvWVpZOGhnNXo4VFNjQkVWUHkycEkzbWd4RGdpRW1KdEVacVRZb0E0NENwMUQ3bHZOMnZxbzVlQkdYNFRNbGZzdXhOT1VxUGx5ZUk4dVg5OE1qYlo1UGNwd3FDbEFROW5ZeldGRzZGb3BVcGlVOWRrSDlXcEpTSVBPZ0ZZYzZBWXVpd2FwYzRBd3Q1aElYUDhvSUFOY0lOQUkxRktTcVF0VmRaZWxpbXl2REN6d2Fibk8zdjhidDBScWJacDhPWTdxTUdSRVRvMHMyNE5hMUlNREZ4NldHUjRzS2w4TXovTm41ai9tb2VZbnpvc25Tb0VJOU1qWW51SktsOGFIc21uQmF5UHR6THIrZEJGQUxnNVlhSlRRS3U0SEk3YTZ0NmprVklJVEJDSTBRZVlxRmwybTdwU0FZbWVlbnNzYlNVMnQ0amNtUG5aQzVLVHJRR0cwemJVK3M4VS9WTXFBOERwVUR6UXFIa1dKc3pqK1ROM21qRFk2R3FsZWpGVGFvU0lWSGxDZXJPTVlHL3RDUk5EQklZeDd0YlhBbTdMREtNall3UjNHa0NxY0k2Q2hVL0FYcFcwN0JmZUFnQmlrMGdSWXNobk9jZHk2eTR0M2hRVHhpUk1ZUVNQSTJZTTkwZXJ3czZSTEhXMVJWak9QV01hWHlXSnQ3U2FWMmlYcnp3LytaNjFZZlo5bW84MXpWUGNNTU04enc5cUlVTFhSYUVBalBOeUtvUUNBTVRnUW1zUSthOHEyT1BKL2hwRkRZUGFkanUyRHRWU3o1VzEwQVVRUW52bjFyVnhhR2lWdWZXOGx6QWUvRGNDUFBCZndLMXBsTHoyTERDTFk2aGtjN2hvME85TWVudThCZTVMK3MxV29BZERvZHF0WHF4RXI0NDQ4LzV2MzMzMGRyV3c5Q0NJd3hiRzV1OHZ2Zi81NTJ1ODNmL3UzZjh1REJBNVI2amZPSy9rTGd1aTdWYXBWMnUwMnIxU0lJZ3VlK0xyVmFqZXZYcjNQeDRrV3VYNy9PMy8vOTMvUFhmLzNYL09FUGYrREJnd2ZFY2Z6S3J2SEcxb0JPTitMR3JSMisvWDZIZjdZNVlQU1BML0wrdS9PMFdpRk80T1JxWUdNN3lPRzFkV09zZ2ovdVcvSTNIZGkveVY4S3hTSEFDUzN4VzVrRHI1WVA0NitSQWxoZzF5Vmt2amFSR3RLUlluTW40MDgzSXY3NmI5ZjRtNys3eWZjMzc3RzN1M2RzYnVxVmxSWCs4aS8va24vK3ovODV2L25OYjFoWldTRUlnc243R3hzYi9NZi8rQi81ZC8vdTMvSHR0OS9TNy9kUC9GUjJkc2Y4NGFzTnppNkhMRmFIMVA3LzdQM1pqeVRKbXVXSi9VUkVGMXQ5WDhJOTlzaklmYitaZDYyN2RsVjFOWHFBNGRNQWZCMFNBeERneXdCODVMOHd4QUJORUJpZ1FLSXhJSUVHQ1RZNHplNnU2cWt1MWxUZGUvT3V1ZC9jSWlNelkvZDlzZDEwRStHRHFKaXBXM2hFZUVTNGV5eHBKMkJoNXJhb2lxcUtpb3ArNXp2bm0ybEN0R212SVRxeDlZeWZocVM4ZkNxUXBiWWtZWkthNDNJSU1OZ0lhZ000L0FNNEJqQW1nQThGYWRwcmw4b25MblU3WDFHdW5zSHphM2hlZlUvZzdPbUExVDlwM1NQdXI1RWtqZnhkY20yVXhNTWpSQkxxT2tGL0VyOVV3dmRBRHV4RUtjUmRpMWFpUlZYVWFDRDJEbXFnL1loZ3c3REc3OEIyVmRoSmd3K1pnbjRnNkpZeW9uTEV0bHpqbStZbHZvbFd1TjVaNDNyckdtdDBhZVB1NGdVS1E0aGdCcDl6NFFsZW5udWRGeFplNWxSNGl1bDBrckF0OEtJRUQ0UENiYWZOQUZJcHlNUVF5b0NwSU1Rb2pXNkQ3Qm1rY1phN3hacXhSd0hMaGhzME9wQmtGWjNiSGEreFM0ZVlMTmM2V3ZXbWo2Sk13RUl3eTZuS0VqUFVLYVVLMzZSRGN2WkF4S01wdkRKa09pUFRRd1V3Q0R6aFVRM0tWSUlRRDJrdGp2ZHd2VWQxL2hSV2tyK1V3c1ArVXptNUF5RWVDMkthbDZiTzh0M2xpN3c0ZVlyNXBFS2xiZkFpa3l0L2ZRYkszd2U2Nk9ja3RBQXFCc29KY2RBbjZrUzQyck1pVnRCVENPWDIzY1BBRWNHRjhja1UzbitZcFdxRDcwbHFreVhLc1kvWWZkQjk4ckRJQ1NTWmdraklaRVpTVW5ScmhnM1Y1dlBtQ3UvZStvcVBkaTV6dzJ5d2s1Ty8vWno4ZFJhMWcrMWlTRnBab1o2aHAxTzZjVVlVRzlJRWdnVG9DK2lhdXl2NURodU9EUElLci9kVC9ONzFWQ29rYkF5U2NrWUozM3VaM0I0Q1JoWnRGSmhBbzMycnhzMEd4OFVNdnU2czVJTmNBVHhoU3RUaWdISWtxU1NHSUFVUGEzdXV3TmE5N2h1Q3NrODltR0ttV3VXRU44bVp5VGt1ZXN0ODNWN2w4N1ViZk5XL2xZK01talMzL25ZcVlDOGZJMmVvYzdHMnhKc0x6L0hHOUVYTytETk05S0RVMGFpRXZDYTRzMzFXeHp3ZHlQZFVmdm5MTUFOcmU1Mi9KdC9DT05OME80SklTcFRJQmlUODRIRmJjc2pvM0diMGJ6TjQyOGpoVFo4WUREZXVEWmFFTkNVTlZZTkozSGZNSGRaek9QdGtTTVc2VERIM0tLcUFDNGxNZTVJbkROSUk2cFVxTTZwS1pUM0JqMUk4YkpYd2d4REFCdWpFUFc1c2ZNYTV5Vk1zQmZPZ0ZFWm1OajdyeG81OTdKMXpwdm51Q1IyQTBJWkFDMFFjTU8rZDRQbWxWOWpZMExSMmI5QWd3Y01iN3YvQ1F0S2tRZHpmUUp2b3RpeG1rOXRnaCtWbHFoTXYvdmZOM1kvK3Y4RHVYVFo1akRIR0dPUGJBRGUwSDJIVTFZQmZFMHllOHBoU0VOOFNzSTR0VDVEZlF6OUZ5cE14amdCTzRacjJyVjJxVjdLa1FXbWlRSmc4YmJHckFsd0FXd1YybTB1VGxqQ1Jmc0c2OHk1SnlROExkM3VWUWF0bnlkK3I2NGFOaHFGL0RHVkwwelJsZTN1YlM1Y3UwZXYxS0pmTEtLVW9sOHZVNjNVcWxRcVZTbVVQVVR3L1A4L3M3Q3d6TXpQTXpNenc5My8vOTF5K2ZIbE1BajhHRUVJUUJBSGxjcGtnQ0Fiay9VSGcrejR6TXpQVTYvV0JHdmlaWjU3aFQzLzZFMTkrK1NWZmYvMDFuYzdSTzdBNk5YQnZwVTIzbTlEdnA2eXN0SG5yalJPODh0SUN6MTZjb1RwYnNTUndQN1dLWU9kU2hySG5iZEtEcEdPZnM2emdKdlcwSWlmQ2hZUWdnUEtVSllDREtpalB5allmQitHa0lROGpTZkFrK0JJaXplcHF6QmVmdC9uNDB6YnZmYlRKbno2NXdlZVhydEpxM2xtdFc2dlZ1SERoQXQvLy92ZjV3UTkrd1BMeThwN1B1OTB1MTY1ZDQrT1BQK1pQZi9vVDdYYjdTRGFwMVk3NCtMTjFUczRhWGwvYTRmVEZDSmswY3RYNW80cDVIaDB5YmUyZms2T3FkTG8vWWl6NU83YUFQaUtNQ2VCRFFoTHZYdXUyTHYwWFliajRIL3hnQmxVcElhUVB1SXlKTzUwMStVQWh4SjVZL2ZBc2U4d200VUtRNllpb3Ywb2E3dzdmaHJ3T280ZFBRRVZPTWhuTVUxVTFQQU9pbUlrMFVIWVdhMGdLOXZxbkpzUHZpOEYvK2UrNW5YOTBQMDNZVzIvVHpVK2x3QVNRVmFEdHQxalYxOWxPTjdrV1grSDk5US80SnRxaGlSMXQrdm5QbkpodWtoS255N09jOCthNE9Qa01MeTE5aHhOeW1mS3VwSnltQk5xZ2JpTzRoeVNwUWpCWU9Bcmw5b0d6QlNXdnB6dll1TU5DVVZXbk1kSVFBKzBzb1NHN05HalRwVStja3h4QVRuNHFxZ1NjbVZ6Z21mbVRWUHNoSXRJb1RkN1dPNmwvNzdUdVBDcWlOV1lrdmRXVGtrbzFvRlR4OGFWQXBQdjgvdEN4MzNJTkNrVkFrS3VmQTZxRXpNZ0pucTJmNFRzbkx2THk3REx6U1ptZ3BmRVRlVWprTDVCVE1ob3dKV1ByY0NwTE9qSFFOMXA2WWJnR1I5WTk0Q3IzTE9kaEYxSm9pd1l2RU5RbWZTcGRIN1VyY1A4ZVRFbjRJTzNSREd2K0ptaGxpRUpKTzh4WW84bm43UnU4dS9vbG4yeGQ0eVpiN05JdGtML1pIdkxYTldFdkNXeUhsbzZPYVVVZHV0MGVhVnFDUkVCazdJZEhQZTkyYWw4UEtERzBnaDJ0NzdzUEo3Zi8zMFdDdDJqMTdLSVZiZzhjeDhUV25wOEdRQmtvWlJnL0ljdUorYjNSMWVFWTZ5T3BVbVphVFZIWFpmeStKa2dseXJqYXUzYkhTS0dSTXNQME5TclNOaXZlcTNPaVBzR0ZtUk9jYmkxVDA1T3dLVEh4RFhUV0hDVElLR3hOOERwVmx0UU16NVdXZUh2cFdWNmRQYy9KZElxSkpwUVNUWkM1OFgyMHJyc2JlNDVhMmVwSTIzeWRZdStJNmdoWWdCUk5OMDdZWEl0b2xCTkMxN2RjN1Z2aDd1QWNSbDBaaWtTdE8vZUd1dExocStHY3hoVEkzNVNNekRPWUlMKzBERWpVbzdnVzZqczgwcjNyRTNmcDczWjNVZzU4YXNLbnJHSjhEQjVta01hMjM2aGFiRUVHOUhUTWR2c2IycFZibU9vYkdGOWcvSHlOS1VPYjU1Qzl4Rzl4WWZ0dHBvTUdMek9rcll4NnZjb0xTOCt6bW5TNHZydkxObjM2cEtSSTVJZ1JkSnEwU09JdGpJNXYzMzVqNTdOK09FZTU5Z3hCYWZGNTRLdDlXakxHR0dPTThXMkRHOTZQakFBMlhrMllxWE9LMlRKMGhHQzNhMnNmQ2dweGc2Y3JBRG5HSWNMTmJiSWtyMys3Q1owTlM0U1dGSG1XOGJGR2VvOFhMcWxQZ1JkYUMrelNsTFhFamxzTVNuMGNaU0tGQktNTk8yMUwvbDdmZ04yMkRiUWZKWVFRZEx0ZGJ0eTRnVEdHTDcvOGtsS3BSQkFFVkNvVkppWW1xTmZyZytmcDZXbm01dWFZbUpoZ2RuYVdILy80eDNpZVI3L2ZKMGtTcmw2OU9pYUJIeUZjM1ZLdzFzNWhHS0xVL1Z1WSs3N1B4WXNYV1ZwYTR1V1hYK1pQZi9vVDc3enpEci83M2UvNDRvc3YyTm5adVM5aStXR3cyNGo0dzNzcmZIMWxseSsvMnVhbksyMTYzWVNYWHB5alBsTkJHb2IxWTQydzdoZHBENktHdGQ4MTZlMHg0NmNSeG9EUmVTTExWRzc5UEcwVFdld1hIbVhyTEFUMldMbjcxamdqNnlhc3JQWjU5OE1XLy9qck5YNy94K3RjdW55RFJxTkZITyt2K2dWYjkzZGhZWUhubm51T0YxNTRnYVdscFQyZmE2M1oydHJpeXBVcjNMcDE2OGpJWDRBNFRybDVxOG5ubnlWOGVYNmJDeUVzVFBRdHllMm9qS2NCK2Jaa21TV0EwK01sZ0JPc0FyaDdiR3Y4bG1GTUFCOFNzcXpmOW9LSmQ3M0d4LytOSDg3OXRWSVZndEk4UWxnU2VIOFVTVTF6aDIvdG9ZVWZQYVJFWnhGeGY1VTAzaG04TFhLaXlpTWdvRXc5bUdKK2JwNnBzSWJhTmNOYll1TzhERWQ5U1l0V3p5TUoxUHNwZll0L08wYW15NUM5SFZtRUVZTEVnMndDT25LRnoxYitNNTl1WGVlNjduRXQ2ckNaL3p6T2Z4YWdDUEdZd09lWjBoTGZQL01hejAxZVpFN1BNNmVucWZaOGdqakxheHZud1haZFZNOFYxSEpHRm02b3hIQnlZbFF1K3l3RzF3OXowbUpzOEY1YSsyZXRCTjBzWTdQVlpyM1hvRW1YSG5GT2Vsbjc1d0JGQlo4SktweWFudUhzNGpUMUhSOFo2OXlQVmJvby9aM1hXU0IrN2NQYUNPbE1vL1ZRd3ljUmVGSVFCb0xBRnlnSmFpQzJFdXp0SDRlSndqRVNWcFltaGNFVFVNWm5paktHT21WWjV2emtTVjVadk1Cemswdk05VXFVdStBbGNzVDIrU0ZxQnVVMnEwWm9NbUZ5OGJvaE5oa0pHUXFGd2tmSkFLVWtRb2hjSVgyWUZ0a1BzWTlIYmFnTktDVW9Wd1NsVU9YMVV1VkFPV20vY2dUSFZlUXJ4MWppVjZTZ0VsS2xpVXFDVmtWekk5M2hUMnRmODk3bVpTNTFickhLTGp0MDZCRFJKMlZJTWQ0K0ZydUtxSTZBaklBV1hacnBGcjJvUVVvZGJmS3N5Nk9lL0ZrLytyM0U3MzZpL05FdXNlOXI5Nk5pN2ZWalV2dnVpd0pGYVF4R0drUkpvNE9oYmJFZVVJUmlvQUMyS1JLS0NiL0dxZWxUekZWbThTT0JTblN1d25YSk52azZUSWJRR2s5a2VDb2pOSkIwSmI0cElid1RpS1VRVWZWSjFneWRuVDU5TEJubUlhZ1FNQzltZUhueUl0OC9kWkdYNmlkWlRPcE1ScEpTYlBEU2d1V3pkc2s5eDAyZ3c3N0hMLy9UMlpuYllnV2FadFRqK3ExMVRzL01NQmxPa25nQzMyaWtpZG1UVlRCSWJpcXVxN0FPa1JQQVVwUEszTU5EU0l4VWhmUEhIVWViNUpMa3oxbWVReVdFc2ZiVEE3cDBkSi9kYlp4ejM5VWpyNHZ1bk1VSlFuNnlEbXdueFA2SGFPVGNFZ1prS2drU1JVa0x5Z3hGOSs3TTJVdDVENS9kMnUyVUpTWlJQUWd6ZEd6UUFVZy8vN1pUOU4vTHd2MU9STEN3RFZXcHBxbzk1cjBKVHZyekxETE5GazE2OUVrUUpJaThMMWhrV1k4MGFhQjF3cWpiaERGMnYzcXFUTGx5bHZyVWEzOFpsazljaVhxcjQxckFZNHd4eHJjZG96NVhodzRqUEFnbkJCTUxFR3BveE5DOENYSFRrbm95dis2THNTWDBHUGVBenF4dGF1c1dCQldRb1NXQ3BkemZhdldwZ3JIbnlLQVc4QzVra1ZVUXVzOE9HNFZ3WHB6Q2RoTnVic0xhRG5TancxL2RubFVMZ2VkNWFLMXB0VnFzckt5d3RiVkZHSWFFWVVpcFZLSmFyVkl1bDZsVUtwUktwUUVaUERNenc4TENBck96czF5NGNJRy8rSXUvUUVySlAvekRQL0QxMTE4Zmx5M29HQ053KzEwcFJSQUUrTDZQZU1ERUJjL3ptSnljWkhKeWtxbXBLYWFtcGpoOStqUWZmUEFCbjN6eUNWOS8vVFU3T3p2M1h0QWhvTnRMNk41TTZQWVNPcDJFalkwTzEyNHM4Y3BySjNqbXpDU2xxWkt0SDVzSmlQb1Fkd3NKSEJsUG93cnpOaGh0eVc5UFFtVUc2c3ZXeVVFb0hndnJaNEZ0VytqWjE5MlVXeXRkTG4rOXc0Y2ZiZkdIOTdmNThFK2JmSGw1aFY2dnNlZW5Va3FrbEdSWk51amoxV3FWMDZkUDg4d3p6N0M0dUhoYlA0L2ptTFcxTmE1ZXZjclcxdGFSYjE2YWFxN2Q3UERScHozT1RTcktGd1gxbXJRMy84Zmc1SENjU0RLSWNnWHdNZGNBYm1ERFNHTWNBY1lFOENFaWpadHJZZW5FTzE0NGcrZFZRRWlDY0JZaEFnYUtwaHhETWtTRFNkRTZ6UWR0bTlra2hFSUlEeUgyRWp4M1Z4TWZQUVFDWTJMU2VJY3NiZWZ2dVNDOHJla2FVcWJxVmFsWHExU1VqelJKM253bldTdldtWEhoVUJlWXZVTWdkci80dWZ2WktQbTdIeFNrQ2t6WjBLWEYxZVFxbi9TMldRVjJnRGFXMU5GNWtEL0VaenFZNGJXWjg3dzE4eUl2VFR6TENXK2VldCtuMU5ONGNZTFNwbkM3TDdCMnpxTzJxY1ZHNTl2bDZpUHVJV0dPQUhrQTJOVlQxQUw2TXFOSmg0Wm8weWJPVlVCTzNTYng4YWpMQ2t1bFdVNzRzOVRUTXFWTURGWExSdkZnZFJrTlJtUVlxUWV4YVlXMWJ2V1V3SlBGR1BkUms3OEZmVmJlM2FTRzBDanFoTXhSWjVJcUM1UHp2SER5Rk9jbjVwbU5TbFE2QmhXTGd2TDNJY2xmdDM2aFFkaGNnRjdQMEVwVG90UWVGNWxUd0o3MGtGS08yR00vTGhnbU1RZ3NpZTk1QWwvWjQrdnFnKytkcjRuQzcrN2pPTytiRDFPZ1YzTFZMeklsVlJsUldkR3VHbTdKSm4vYXVjSWZWci9nOCs1TjFtalNva2ViaUg1dStud244bmQwVGM1b29FZEdyRnBvdjBXV1pXaDhlemozay84OUxCeEg2Mk1WZ2M0U2RsUllldGYxbXNLNTYvYTdHNmVLVE5PaklINGQ5bzc3ZGxpMVJMQ3pMeTRlSVZ1VXdQWXpoYVJlS25IcXpEVHpwU3BxMnlVZWllSFlOVGp2ODNwQ3dwWWFVRHFCTE1XUG9GYnlPVFU5UXp4N21sdjZKbC92WEVQbC9kdEhVaVpncVR6TEMxUG5lSzU2bGlWVG85S0RVbVR3TXBHcmZ0MzQ4Q2h1Uk1Yd2FlaTVQQ3hubThNcDNWTTByYlREamQyYnJKY1dPVm1kb3FzbEFTbSswRWhwQnVrYmVUN1BFQVhCa2NuZjBBSXlZWWdROUxWQSt5VW9sOGk2a09xaHZYcUd5Yys3ak5TWVFlNkVMTFo5My80czJIY2dOTVhCd1pHN282UnZzYVNFKzY3Ylgvc2NwK0s4STM4STdQVkM5RUgxQXFweG5TcXJCSmpCV1hTbk94YlhLbGZnSWdFeVQyUENESk1ZakJiRG9Pc0JiSjczWGNISTM4cEFHRU9wSTFrTTZweVptV0tsdWNKdWFxZE1IbnRaQzIxaWtuZ0xuZDA1SW1tTUpnem5tWm4vNlg4YjkxZS9Cc1lFOEJoampESEdrYy9RdGIxR0JGVW9uWVhaekFaOW16ZUFwZzJBRHdMQVQza1FmSXdIaDFTMkg2VjlhSzlaSytoZ01pZUNTNCs2ZFVjTVk4a1RqSzBGWEptM0NzS29ZUW5nb3lJMDNlbVlRcU1EcTd1d3NnMDdiVU55eEVKYUlRUktLYlRXOVB0OVBNOGppaUw2L1Q1QkVCQUVBWjFPQjgvelVFb2hwY1QzZlpSU1ZLdFY1dWJtT0hueUpLZE9uZUxpeFl1a2FVcXIxYUxmNzdPNnVtb2Qzc1pFOExGQ0NERTRUbUVZNG5rMlR2U3dXRnhjcEZhcjhmenp6L1BTU3kveHpqdnY4T3RmLzVxUFB2cUlyYTJ0WTFNRGIyMzMrTU43dDdoNnZjR1hYMi96czdVT1AvM1JhWjU3WnBiNlpCa0MzOTRMcG0zb3VScXNLWU02NTk4R2VDVW96VUoxSHNJNk5wajRDQW5nMFNCQm5KSDJFbTdjN1BEdWgrdjg4cDBiL09iM3QvanFteDFhclM1eHZQYytzMXF0VXFsVUJva3FjV3paMUltSkNjNmNPY09wVTZjRzF2UkZ1SEhveG8wYk5Kdk5vOXpDQWJhYThQNVhtdVZaV0pxUmxnQXV4dVNlWkJSQzVYRUt2UWlpNU5nSVlJT2xaQnIzK3VJWUQ0NHhBWHpJU09LZHJ6dU5UMzhpa2IvTXNqNlYya1dDY0E2cFNnamg0ZFNRUnFkbzNTZEwyNlJwa3l6dFlMUzFJUlRDUTZvU1N0VlFYaFdsU2tpdmpCUUJRb2g4YnZxb1JoZUowV211RUxGMkRaYmdrWGdvZkh3Q0F2d2t3RXVrMVpRWjJLdjhoZjBEc3c1M0NjUzZLS1VqZnFQQzQwN0krZFpNZ3ZZMGtZQ0c4dGpGdWpLM3NQeHhBZ090WWttVk9EbTV4QnNudjhQckU2OHkzUzVUYW1hVXNvVFFTWld5Zkx0TVRxUVl0MzFPQTFSb000WTloTEFSSTl0OFZNaDFWOEtRQ2tIUGFCcW1RME4zNkJMZlp2OGM0akZKbGFYU0hOUEpKTjZ1aHgrREhCRGM5NXBjamg0b00rU2RsTFdodHQ5eXZjYXFSQWRHNEk1TVB5NmxYQjZSOXpKQkpmR1lvMllkVldvVmxtZm5PVE01eFdUbUU3UTFmcHJYYkI2UU93ODcwUjZTR0VJSk1tblkydXF5MG03UWlhSmNJK2ZPcjRld1VUNXlESk1haERFb0EwcURNbGFaT1NTUFJxMWRpMFQvUTJ5WXlBK2kwRG41bTVENWhsNUowZ28xTjdKZFBtbDh6YnVibC9pOGU0czFtalRwNXVSdm1wOEI1aDdrNzlETzFoSEFDYUNERE1veFdWZVRJZzQzNU9hNFdKYzNFekFrZi9jVGZ0OUpDVGhvbFdUdlFrZVRWVVRodTQ4U2x1QWI1TWxJTUxKSS91NGwvNFlrc0tJU2VzeWM4S2taaWRyT01CcUcxQ1hEWndQV2h5M2ZkZ0dLaExMVVpIR0dIMldVUzRLS3NtT2loMEpnOEZDVThKbXYxRmdzVHpEUkx4R21rbEtjb2pJSnpobGdrQ2p6S1BibFNFWkEvclJmYXpJME1Sa3RPcXluNit3R0xaSVpTWkw2RUlNeEJrL2I4MXFrQWxjZStMWStsdzlOUmdneXp5WmJKWjRnODhHamd1OVZTQnFhS0luM25HMGFRMHBHbEdSRXNTYlQ0TjF4T01qZkZNS2U2N2VKclFyK3lLWkkvcnJuWW9QZHpyakQ4UmxOT0N0Mk8yUHdwQ0FSVU03cW5LeGRaS0c5eFVxOGRVL2RmSEg2NGtqZ1RCbDBZREJoL3NaK216YlM5SDMvdnNNS3BRRXZNdmhhc0ZDcGMrN0VGSmQ3Z3RVMG9ZZWhqeG1zMWc0WG1pVGVKT3JmSWswdjJIbnJudm1LUWVzRXFTclVKbDZtTnZucVQ0Snc5dC9GMGRiVkE3Um9qREhHR09OcHh0SE8wazFtSDBLQk53R1RwN0FUbU1DU3dQMGRTUHIyR2lnRVl5WHdHUHZDOVF1VFd2VjRad09xRzdhV3BGQjUzeEg1WE9vcGhMSHVXL2dsS005Q3RHT1YwR0wzNkxZNW4wYkZNV3cyRFN2Ymh2VmRRK3NZVEM2Tk1hUnBTcWZUWVdOamcyYXppVkpxUVBZV2lWLzN2bnVVU2lVbUppYTRkZXNXT3pzN25ENTltdG5aV1g3NHd4K2lsT0tERHo3ZzJyVnJSMnE3T3NiK2NNUys1M2w0bnZmQUN1RFJaZFpxTldxMUdoTVRFMHhNVExDMHRNVEZpeGY1NG9zditPYWJiN2h4NDhheDJIOTN1Z25mWE4ybDFZcm9kQkkyTjdxODllWVNMNysweUxrTHM0UVZBNm9MOGJaMU05QVpSeWNnZVJ4Z0dOVCs5VU1JcDZ6MWMxQUQ1VVBtN3VhT3YxbElNYXp6SzhCMEVxN2Vhbkg1MGpZZmY3TEJleCt1OGY1SGEzeis1UlpadWxjbTYvcytTMHRMTEM4dlV5cVZCbmJPamdDdVZDb3NMaTZ5c0xCQUVBUzNyVjVyemU3dUxoc2JHOGRTdHhxZ0c4UG5OMkI1enZDZGk0YnpTd2JsUDEzOXptQ0ozMDRmb3ZoWUZjQVJWcDgzeGhGaFRBQWZNclNPK2txVlB0QTZlajJPTjcvWDY5MzQ2MHIxUEVFd2gvSXFJRHd3S1duYUl1NXYwTy9mSXU2dmtTVXRqRTR3T1FHc3ZBcCtNRTBRekJHRTh3VGxaY0p3QVMrWXlHMmxIMDJLaWNHUTZZZ2szczB0QXEzNlYrWUtyQUNQQ2xXcXBvclg4NUZaVGg0T0xzWWpnZG45bER4M3VuWmJ1WklsZnZ2WTRlRWdkZTV6RWtFcjYyQ2NDT2dKUVJ0TC9QWUdpN0oxSkVGUThrTG02MVBNcUduS3ZUS1ZXRkpOVTRLc29DclRPU0c0cDJibUhjSy8rNnBtai9KQ1VTVEZNbEpweUVKRkowdFlXV3V3dnRPa1Y2Qi9KWklRandvQms2TEtuS3d6U1lseUt2QTFpTnNzaHcvZWRpZDJOb1pDOG9JWXFNYVZjVGJCaGFVZVdkY3VSdkx6N1RHU1FHdHFXckVVVExLOE5FdDlxa3BkaHRRN2lqQUdtZVIxUkEvRDl0bkIyWE5qRUVxZ1BkamMzdUhHNmdydHBEdXdhZFhrbWJYR0ZEaUxVU0xzVVRIRFJhTEpFa1ZTZzB3RUtwVzVjakluc0EzNVk1UmR1Yy9WRlY4SWJCOGYyRDZuSkVyVEswbWFWYzNWYUlzUE55N3ovdGFYZk5tL3hRWk5kdW5TSlNMS2JaL3ZUZjRPMTFpc0dCb0RmV0dJaENHVm9JV3dwNGh3UlAxREhKTmkvYytpemZOSWJzbGRDYUxCZTQ3MGRRc3BFci91TTRkSE9Ya2REQkNXQU1hcVNhM3p2SEZuUXVGb21aejhsWG45YmtVZ0ZJRVNlQnFrRnZtNEpRckpHbzRBTG94aDJodTg5SFJDNkF0TU4yTzMyYU8za2VCYkUzWkFENjV4WlY5UkNZUTlSQmtFV2lDMEFoM2s1Tzlqa29Gc3hDQWhWd2lSWDZ0RlBuc3dhREppQkcxNmJOSmlJMnl5TTkxR3FoQXZTL0VOeUZRZ0VqQjlDVjBCcWNnNVZqRWdsdDAxMW5nR0V4cDBtS0ZMMEFzTi9jelFqeE82S3NuVjlzTmptZVVXMEoxZVRLdWRNSmNGaEpMOExtTy91WUVCNlVwRnBBVWltTHljUW83QjcvZkpoRDdJcGJqNDk0Q3BaVERma01wQWtsR3ZUL0g4MlRlNHNiN0dGemUzOXBUaHZ0TU1yWmhJa21MSjhzd3oxaTFjY3VkeitsN24rcDIyeFJoRXBna1Z6QVpUbkdLZWVhV1lJS0dQb0ljaFpxOXRkUkkzYU8yOFI2bTBUTFgrUEVMS2theC8yd0NsUWlyVkMvOVZiZUxGdjFkZStmK1JwYjF4QkhDTU1jYjROdVBvSitQR1hVV1VEZnhPbnJaS0lPVkR3N04xWGJPSXNSSjRqTHZDVFZKMGF1MVQyK3UySnE3SSs1VlRDVCtlbWNjUENXM3ZBNVFQWVEzQ2FRZ253ZCtHcE1zZ2VmS3dhZ0c3V3kwTnJhN2g1cWJoK3FaaHEyWG9KWWV6aXJ2QkdFTWN4K3p1N3RKcXRXdzVxWHpiM0d0bnZlb1V3YzRhdWx3dTAyZzBhRGFiYkc1dThzMDMzM0RxMUNsbVptWjQ5ZFZYYVRRYWJHeHNqQW5nWThaK0Z0QVBVZ1A0YnBpY25PVDExMS9ud29VTHZQSEdHM3p3d1FmOCt0ZS81dDEzMytXYmI3NmgzNzl6M2RiRHhPWjJqOSs5ZTR1ck41cGMvbWFIbjYxMytiTTQ0OFV6a3FDWHEvZlRYbjZ6ZTdqNzRMR0N5UjFBVkdDSjMvb0ptN1R6S0d2L0NncDFtUTFFS1hFdjRjcjFGci85d3kxKzljNTEzdjlvaGF2WEd6U2FFVm02MXlQTDh6eWVlKzQ1WG52dE5VNmZQazJ2MStQenp6L24xcTFiZysrRVlUaXdLQS9EOExZbWREb2ROamMzMmRqWW9OZnJIZlVXQTVCcVdOdUZMMi9CVnl2dy9HazQ0VmkxZkt4L291RU9ad3lkbnFFWEc0NUovQSt1MHQ0WVI0WXhBWHdFeUxKK0cvakk4eWZXb3Y3Nno3dXRTODhHd2V4Zks2K0drRDdvaENSdEVrZGJKTkhHejVONDk0YlcvUVpHcHdhVENxUW5wRi8xdk9xczhtcnpRVEI3UHF5YytldnF4SXRVNjg5UktpOGhaTWp4K3Z6YndUM0x1c1RSRm1uYUxId2lCMlJlZ0dKcFpwRXpNMmVwVU1IME5HSndBK0VzbmtjVXYzY0t2cm9ZdmNiSzdSeng2K1IzQjAwK3kzZVI0ekFOTm9hZE1venI1dHJyQWFXZ2RJQ01mZWdKaEpmaFp3WWZuZlBWS3EvdE9GbzM4MzV1Rk81MjNPNzNodjFPYkxuZDV3Wk5LZzNNUUtJajFxOXZzWkUwaVBKZ1BGajc1eENQTWg1VFhwa3o4M01zVk9zRVBZUEljaFptMzJLRUI5dTJBUStWKzVBNkMzU0pRR21KMG84Z1o4OElleXhUamZJRTAwc0JKVG1GNS9tVWhJK1hHbVRmRWlDSHEveUZVV21aVWFCRFExZDNhTVlOZWtRRGF0SjllLzk5OHpqZG1GdXRyOGlBdmtBa3RpNnJwZHFITllEZGR4OGNSWElvSjROa0NqSWo4UXk5c21LM3BMa2E3L0xoNWxlOHQvNDVsL28zMmFCTmh6NGRZcUk4OVNGeisvOCsxKzZHcEc2YzBvNFNZbU5zRjFIV0F2dUI0WlMrUmF0bjU1aGYzUFJpWTJEdjduUzF4Z2NQTjBhTjBsT1BXMUF3ajBZVnZJcUhOSjYxZ0I1dXZoajg3MGhnSHc4djlhQnJlNXN5ZTc5MXgrMTFkZHVOdFZqM2hFRm9TRHFROWEyemhVS1NZZ2IxaHBVQ0w5Q29XS09Nc1VrTjVrR3ZCVWVCWWNkd3ludHBoQ1hGQytlaVZRQ25kSkZzMCthajdTK0p2b3lZOFVxRVd1SWo4YlNIVENVeVZvaFlRaVlRUmlDTlp3bDJORnBvdE1qUVNxTzlqRFJJU2YyTXJrclkxUWxmN2E2eEZlK1NZQlcvN3BocU1oSlN1cjBlN1ZhWE5Dd2paT0htZlErTDZwS2FFdkJTVy84d0FES1R1NERrTjhiQ0ZINW43aHpBMjI4NEdnUkVHVTRPNHZ4UlVPWUtENlRXVk9vaGM5VUZwc09KUVVsdUg5dWMwVVdPcmp6RGtDRkpVS1JTMkJuUnZXS3Q5enZjNThzVFJoTm9TVFVyTVdObU9CbE1ja042dEhWTUMydGRYWnhPWldtWDNhMC9VS2xlcEZLN2FPZXQrU3hwaUJSak5LWEthYW9UTC84UDdlYW5mNHV0cHZGWVFrclBBK2tKbXcxaDczM01NQUp1akU2MUhvbE1qREhHR0dQY0g0NlVNUnU0ckRxWEN5RWhxRnV5VG9qODRxU3NvalBwV0VYVTB4NFVIK1BCSVlTOURxWjk2S3haQzJpL1ppM0doZVRnZ1pZbkZFS0E5T3gybDZZc0FhNVRXMDhidzlDMTdoQ1FodzRhSGJpMkFUYzJZTGZEa1RsT2owSnJqZGFhSkxrNzR6eEtBb2RoaU8vN3JLK3ZjL1hxVmVyMU9tZk9uT0hzMmJQMCszMDZuYzZ4cUVISHVCMnV0bk9wVkNJTXcwT3hnQjVGcFZLaFVxa3dQei9QN093c016TXpuRDE3bGs4KytZVExseTl6NWNxVll5SC9XKzJZVm51YlRpZWgzVTNaYmZUWmZDbmt1ZGtOVHRGREJIbFMxSDRPU2s4TGpMRVd6NzV2YTVmWGwrMjRKU1RIeWM3dGdhOXNyVjhEOFc2UDZ6ZWFYUDVxaXc4LzN1Q1A3NjN3M3NkclhMbXlRN1pQKytibjUzbnh4UmY1eVU5K3dzc3Z2NHp2KzF5NmRJa3Z2L3h5ajZXODUzbVV5MlZLcFJLZXQ1ZTY2bmE3ckt5czhNMDMzM0R6NXMxalMwb0FTd0xmMnBaOGNzUGp1Vk9TV3RsUXErcW5pd0JPclFLNEh4L2J0Y3BnQXc1MzgzWWQ0eUV4Sm9DUEVHblNYQVBXbEZkK1Y4cnkzMGtWVnFWUUlTYUxNdDF2NkN6cWFCMjM3eEIwMmdWdUFpZ3ZMUG5kcTcrUCtxcy95OUxXdjhLOFFWaFpSb3FRNHhwbGhKQVlESEYvblg3bkNtazZ2Tmc3RmJCQ0VPQnhhbW1lWjgrY3BMNFZZbmF5UXJieUNHRzlYMXkyT0hkeFAzRld6MDcxZTE4TloxaDJPT2RzamRsTFE0OXFqU1NLTklYbVRreXZIQ0duRE1yRlBvMVQvZm9NRlhWMzJwajdnV01yUm1jdGN2RHhYZGV6SHhHVUt5TU5ta1JBRkdyYW9zZTJhdENrUFNEQkFEd2tKWHltWkozbDZnSW5aK2FZVVdYOGRtcmR4c2d0VGU4NStJL3V6VnpWTjNCYkhkSTNFdkMwUU1ZQ0VRdkVRSWlYa3pYSGNhRXgwa3F3aEtZNlc2SmFCcjFsRUMyYkNtQ2w0M2tIT2hKbG45MVhXUzRlekFKTlFrcVNXeE1iakZYWG02Rnk3MUZUUy92RFpSSURtWUJVSVNKTG5HbjBRSVg0Y0hCbnF4NHEvNFFsZ0kzVVpLR2dXeEZzeVlRcm5XMCsydm1hRDdjdThWWC9GaHUwYUJNUGxMK09oSUw3NzJaRkZmQk90OEY2OHhibktzOWgvQWt5U1Y0SitENVE1R2pMV09LMzZDYnZCaXVITzhrS0J3dHpDM1RQanp2eFcwQmhEQnlRdjhhZ1RkRTBlRWdDVy9MWGpsOCtQbDRTV0FXTVAwd3gyWHRSS1dLL0htQWdnNkNrbUpvcFU0dEtpTGFqbVllSkswSU40NjNER2ZIanNsL055R1hFV0U0MEJaR0t3VmdDUTRlQlBvSnQybnk0ZG9uTGE5ZW9VYUtNVDRCUGtGdGdxNXdJZDhrY0hnRWk3NkFaQ1pxTWpJd1VPNFpGSkhTSWFkR2pTWThXUFZKczNWK0J5QW5nM0FJNmlvaDZmVkpQNTRIcTBVNXU4bk05c1JzU1ppUmhSajlMeUJMdzhTaFBTSnVzMDJQWXpmZHozaEFqejNaSERKOGQ2WnN3bFBvWFoyajU3MVJtblE1a1IxRkpLMHpKZ0lxTzZXRFB1SGhrRldiUFErUmpTRUNVU3ZwUnR2Zm1lT1FTZWhqd0RLZ2VUS2dwbnAyNXlFcXl3bHJyNXFDY3VPTzdEV0JNU3I5N2pYYnJjeWI2YnhPV1Q5b0FneGtHK1l5eENVcEJPRStsL2l4QjZjVEx3TlhEYWEyRmxKNG5oRmN5WkgyZEpZT2pvRlJZRWtLVmhQUkRLY05KS2NPcWtFRlZTaThVMGd2QkM0U1VuckJucVJKQ3FzbVo3NFVJOWRmQzJWdml6Z09ETmlsYXgvK2J5Wm0zSTZQamJxYjdyU3p0YkdScGQwdG52VWFlMURuR0dHT01jU2NVN2EyT2xBQTJvMjlnckFLNHZtU1ZRREsvTisyc1dWV1VkclViSHBjNXloaVBEWndWZEpaQWIzdG9pVnllc3YxSXdDQVMvTlRCTUJCU2VHVkxxTGc2d0ZsaVB6dXN4SWs4NktHMVZmMWVYVGZjMkRTMGprZXNkbDl3ZFlMak9LYmI3U0tsSEtpRUhkbTR1cnJLWjU5OVJwcW1iRzF0amRXL2p3aFNTc0l3cEZLcFVDcVZEbDBCUExxdWMrZk9NVDA5emF1dnZzb1hYM3pCYjM3ekczNzV5MS95MldlZnNidTdlMlRyTG1KbHJVMzNkemRZV1cxeDlZdVFuNy9ZNDRmbkU4N09TRVNRWCtQMno3eDlPaUFsK0ZWYjk3ZTJhTjBhbkYzL2NZM1Q3cnJncGhSSlJ0eUt1WFI1aTkvOC9pYS8rczAxM3Y5b2paV1ZOcnZOL3I3azc5emNITi85N25mNXE3LzZLLzdaUC90bkxDd3NjTzNhTlM1ZHVrU24weG5ZUDROVnVidGtsR0lmVDVLRTFkVlZQdm5rRXo3NzdETnUzcnk1NTNmSGdkMk80S09ySG1jWEpZc3pHYzlXdEkxMUQ5d0FuMEM0TUx5QktERzBJME12UHJZY2cyTGRyakdPQ0dNQytCaVEyK0k5OE93b1M2TSs4RkVRVG0vcHJMdHJkUEkvVHZBVzVjcHBwQXd4NXVpdmRFSW9NQ2xSOXdhZDVtZGtxZlhZZCthOUNvbUhKTVJucXVvek02MG9OM0kxSU95OWF4M2xJUGE3SjlVTVNkOGVCN042M2crdWJtWUpUSzZtTTNySVpUcHV4VkVPSnQrcTJHUTB1MjE2cG9Nb1o0aTBXTlBSa1NxSFFRYm14Szl3cEZZaFRHekliODZFYmFSd0kvTG9EaXpjMkE4c0pKMzlzd2JQMW1OYzIrMXh0YnZMZHI5RG41aVlCRE93TlZYVUNEbFRPOGt6TStlWlN1djRrY0hQUUZnUDF2MkQ2UWZiUWtzQSt4cXRoaFNPUkNHMVF2WjlaS1NRb2JBMm5ucS9iVHdDQ0VkREs5dS9kalMwRERJeWxzUWtWL1hwL0ZnZmFwc2NnYW5SMHBBS21RdmNNL29reEdSa09WSGlvL0NsUk1yYy9YVFAvbm5VQVoyUkUxblk5b2xJSVJNUGljelBxZ2R0Wi9Fc2RZUnZQamNRZHBKbGxDRldnbTdac0YyTnVMUzF4dnZYdnVMajN0ZGNTVmJZb2tXVEhqMVNZaEtTbkZoL2tBUlJYWGdrd0daL2k5WFc1MFRWMXhIaENiUVVHQUhpb0V0MmlsOG5IeXhhUFJjM2Y0U2p2QTE3eHFaaWpkL2llNDg3OWxKa1JoaTBnVFNEUkp1Y1hoeGFRTHNxNHE3K2ZJVVNWVjFGZFh4RXlkYWd4aVZ4SEtULzVWL1JtY0VQSk5NelByVytCeXNVK2t2eDMraVFtSitYRHpoT0hpNEtZNE94bHdFUkMwUXM3WmliMDdqT1p0N2tadWc5WW5icEV1YkVyNDhhS0tEZHc1bTZENmxnSUIvVk5jNVkycENRMGllbFIweEVNa2c0MHBqOE1xVnpGYjRtMFJscFpqL1RBcVF3OXZ4MndXMUgvdVpLLzFqQlpyL0gydG9HVVM5bGFyYktpWk0xNm1rWmNjdkw4NHp5YTZzdTdKTGlzNE1yNnUyZW8vejVUbG5rK1hDa3RFYkdIcUpUWVVvdnNSd3VjYXQvblIyakIyZmNxRWZMa1B4VmFBUXBGYm85UTZmVlJZdWF6ZDdQOW56NTdvZjRibjhYM3pOV3NTeWpqTW5xQkJjWFh1VjZmSjB2V3pmWkxteXlZMWpkTHV1MnZxUzU4ejdUZnAwZ21FRm53eTB5UmdNQzVWVW9WODlSbjNyOUw4UHk0dVdvdDNicExxMCtFS1QwUEMrWXVWQ2RlT0Y1ejV2NGQ1bnUvNi9MMVhOWE1VbFhlYlg1K3RUcnk4cXIvNDllTUUxWVdzRDNwNUF5UkVyZmludUZRa2cxVE5zUWN2aStHQWExQjJib0prUHI2UDltZElveENWbldKNG0zaVhxMzZIV3YvVGZseXVsMzQyamp5ekVSUE1ZWVk5d0JibkIwVjQvamdRdjZTbVZKck9vOGcvcXRVa0o3Ylc5dFJIbDBCTUVZVHlMeUlMNHhrUFdodDJzVEIwcVRsZ0QyYzZHQk9kSzhoa2NIblcrWFY4b0o0Q1owTjZEZk9Id3l4VUNjd0dZVGJteForOUQrTWRnL1B5aWNZbmdVM1c2WDNkM2RPMzQreHZGQlNvbnYrd04xNUZFb2dJdndmWis1dVRubTV1WTRjZUlFVTFOVHpNM05jZjc4ZVQ3Ly9IT3VYYnZHNXVibWtiYkJHTVB1YnBjUG0zMmFteDZ0TmNIMmVzYjNucFZjUENXWW5zREdVZ3JWQnA5NERPNkZKWGdWcU16YWg2djlxMU9PdkY2N0d3NlZzTFYrQTV0TXE5c3gzMXhyY09uekRkNzlZTVdxZmo5YTVmcU41cjZMcWRmcm5EMTdsamZlZUlPZi9PUW4vUGpIUCthbGwxNENZSDE5ZmVBcWtCYTBjVVVDdUZqbnV0dnQ4czAzMy9EeHh4OGZxeVY1RWIwSUx0MkFEK1kwcjV4Sk9UdWZFdmg1M09rcFNFUndOWUQ3aVRWY093YTRvTytURUxoOFlqRW1nSjhneE5IT1RUK1kvSitsRFA1M25sZjdIenl2VGhET0lZVGFZNVZ3RkJCQ1lveWczN3RCdS9rNVJsc3BycVVYYk8zY0FFV0l4STlCUmJsQ0J2WU9mbmNLV3JybllvRk5WNXozZmszNUJIdUpsZEx3YitPRHlReEZtOUZSR0NCRjB6TVJhU1ZDVHFlWWZwQVQ3Y1U2dUErTHZCM0MyZGk2bVlwcm54aVN3QkpMWkpqOHhuNUFhdVIvS3pIa2VWSXNheUl5UzZJRWdyU3F1Ylc3d2FWYjE5anFONG5KU1BOSXM1OFQ5MVZDenM3Tzh1eXBlZW9kSDlGT2tUb25rTXdERXFDT2c1QllleFp2bUFVZ0VIakd3emNobnZhSC9EY3dzS1U2aXF1bndkYXJrQUJ5T0VGczUreTVkQmZ0bkFERzFUOCs1SFlJUGVDbllxMXBkV0lhL1Q2ZGdqbTNrcEp5V1ZHdUtYeGZvRExZYS9IN2VFSGd1clJDR0pWcnJFWW5wUWVWdHhtR2hUZXpBdms3UEVlMEZNUytwRitIRGEvTkp4dlgrWER0R3o1cFh1VXFhMnpScGtOTWx5U3ZlUDNnNUs5clVWRUIzTllKclhRSDdmVkFabm1YTGJBdSs4RTVFamdUQVNmQmMzenRnWGFQR1k0Rmd3R3ZTUHdXV2VUSHI1L3NSWEYvbVQxdnAwWVF4Wkk0R1pLTGV5OG50b2Y1U0taTEU4eldaeWdaSHhHYmZPdnZmNncyK1QxV1VKSDQ0ZkMzdzFRRW5kdjNGZzNhSC9NWnZoRVFDK2hKYTk5Y0dEL3N0dGlFRXcrWkszZzFIZ24yREZiNTgxNEMyTzE3dDRmZEo0NXpkWFYraHpydHZhcDdkelExQnUxcFRLQUxwWnJ0VlhpWUlKV0JTRUhhV3JtdGRzeXR4ZzVmYmQrZ1pSck0rVldTOWhMTDNqSlZyMDVKNThla21IdFNmRTRaa3I1dXZ1R0dtb01FNVBMTHRVcEJKUjRUWW9KNWY1cGFkSXZBNklIbS9rNGhVNDBrd3lPalJCUkJyeGVSbFI1Q2JYS25oTHFSeTRUS05LVTBZREpZWkRrOHo4blNsMnhIbS9TTUptTG9kTzNRNzEybjFmaVlpZWszRU9GQy9vMjlNRVlUbGhhWm1mL1pmeHYzMTY0Q0J5S0FwUXBMVW5vbHBTcXpmakJ6VG5tMU9jK2ZXQWpDK2JNbnovL1hNNTQvOFY5Ny9oUktsZEU2L2pkWjJzYVlES1ZLS0ZWQnFncktxK0lGVTNpcWtoTzdlWThVSW4rZDd3UWhodThYN2lsdElNRmdqQ1dCTVhtUDFDbFoxaUdKZG9qampiK09vMDNpYVAzL09yLzhMNzdxOTI1OUZ2ZHVmUnoxTjc4NnlIYU9NY1lZM3dxNGk5YUQzTFUrNUdwaDRMVGxCVkNaeis4YkMvT2Z1R05KUEdNNEJEdWVNWjQ2NUgwaTdWa0MySytDRjRLM2tDdUJqMUZkZHB3WUtPaERxM3J1ejFnTGJMazFKSWVCaDdxUGNsT09GSm9kV044MXJHNGJkanVHSjlFNWVVejhQajRRUXVENy9wRmFRTjhKMDlQVHZQWFdXNXc5ZTViWFgzK2QzLy8rOS96bU43L2gzWGZmWlcxdDdjalhyN1htNmtwTXF3M1gxZ1czdGlSLy9nYThkaDdtSnNVd3B2STBvT2hVVUoyMzFzL0hYZnQzY0Q4cFFCdUlNNGhTdnZwNmgvL2ZQMTNsZi9ubEZUNytaSjNWdFE0N2pmMkoyTW5KU1Y1NTVSVisrdE9mOHJPZi9ZeFhYMzJWdWJtNXdlZHBtcElrQ1ZtVzdlRTE3a1FBTjV0TkxsMjZ4S2VmZm5ya2lRZDNRcEptM05xTXVYeFRjR3ZMME8xTGduTGV4aWNnUEhSSENIdDVqRlBvNWhiUXh6VHN1N24wR0VlSU1RSDhoQ0dKRzJ2bHlxbmZkMHJMaE9XVEtLK081MVdPWmQxYVI4VFJPbkYvSlZkZ1dWajZRVkFXaWlsVkl1eVd5RFlWeEpaTHUrUDh1Y2p2RmEwWFhTUnlOQnA1THpqK3cyT2crclZGK2ZJYlhrbkJ1ZG1Gd1BlU05aWnlNb01ndUM0YlJOMWdOa3poM3Vld3lkL1VLcHVVdGc4cDhoMEhaQnFqZGM1NWlieldKQXdLR21PM0JVL1liUnNzM3FvbGpUUkVTdEFpNGxabmpldU5HK3pTSXNtcE1Lc3c5YWdTTXFmcUxOVW1XS2lXcVhSRWJuczk4RzUrbUMzRlNHTXRNYnk5ZFcwOTVWR3VWQWpDTUsrdmZFeFh5dUpFaHB6b0hYUUZVYmhnSHdYUjZvNjlmUmdwaUUxR0srbXltN2JvMENmSnlYbFBDTXFob2xSU0JFb2NaaldpdzhNZTRhYkp5NDBKcE54cm03djMwSTVLVzR2NzJHVUNPSGJHRWNDTytBVThnMWFTeEZkMEtoa2JRWU5QZDY3eTJ5dVgrTHg3ZzFVYWJOT2hUVVNQTkZjZlpyZXQ5WDQzczVpbk1taWRVaERZTnJyVDhyWWVrK2RSRE1ZbVovTmN6Q2NaYmRpZFhzUHdoNlk0NkkzV24zM1M3bndLWTdFQWxDUk9NblkzSTlyTm1IU0V1TGRVenJEKzczUzl4c0xDQkdYcElSS1RqeWNQMWhJamNoTFRESW5LUFlUbDRMM2lLZ3FKUlkvaGhGOW9nY3drY2tTaDdNWmpHK29hS25uMVFQVUxHUUtWZjZvUXVOU093Ykx6czl4cGdxMkpzLzBlZytWNStYZWRYdGl1T3lQRGhDbW1tbUU4ZzBudEw0WmpRRDVCRUFZOFNhSUVqWjBlYTF1YlhHZUZIZGJZN2dxeXE5dklLWStUUVowUWlVaEdMSldMOG4xcnQyQlBZQ2ZudjkvOUtjQVRta0FhSnNJNnMrVlpKbm9CWlozUTRjNnhCNFBJSHo0WkFZbUdKRTNKakxuM0tYdVFVM3Evb2RRQWlVM2FUclZHeEpJNWM0WUw5ZWU0bFRiWlNmdjc1dHVsU1l0ZSswdTY3YThJZ2ptRURIRkgwRzJOMFFsS2xhbFB2a3kzODUxZmxHdG5mNTNHalZ0Q1NFOElQeFJDbFlUd1ErV1ZKcVFzMVlWVUlkSVBKbWQvT09XcDhGOTV3UlNsMGpKK01JTWZ6bEd1bk1ienB4SE9tdkllSjlQKytZV2pZMkNSSkNuYVdPZmJNUGpEOWw0aEZWS1ZDSUpacWx3RUlVblR6djgyNmwybjAvcVNidXZMLzlQVTNQYy9qSG9ybjhmUjVwZFoydDI5YXlQSEdHT01weDN1eXRMRlhsR0tVOFpEZzgweGRNbC9CUmh0SDFKWk1xc3l0L2RYblZXckJEYTVFbGpjZjNMY0dFOHhCbGJRS1hTM2NrdmtLU2hQRjBpR3B4SDUzRUJJVUNVSTY3YW1ackFGY1Q3UGVkaWtpZnorTG8xaHB3M3J1MVlGM0IxWE9CempJU0dFUUNtRjcvdDRudmZBQkxBeGhuNi9UN3ZkSm81amdpQ2dXcTNlWnJrN2lucTlUcjFlWjJGaGdhbXBLV1puWjFsY1hPU1RUejdoK3ZYcnJLMnRIV215UUtwaHZRRzdYVU9jYUhxUlpLY05yNStIVXd1Q1VnMGJhMGw1d2lrbFk4Y2hMOHdKNENWYnIxeVFKNm9jN2FvQkNCVUVIbVNhMWxhWEd5c3RibHpiNWFPUDEvaW5kNjd6dTNkdnNiYmUyWGNSWVJpeXZMek1LNis4d2c5LytFTis5S01mOFozdmZJZDZ2YjduZTNFYzcxSCtPa2dwVVVyZDFoYzduUTVYcmx6aHE2KytvdHZ0SHNybTNqOE1hWnB3Y3gwMm1pR2RKR1RLdUd6eUk1a0dIaXVTMUtxQWs5VEd4STRCamcwYVp4a2RJY1lFOEJPSUpHbGM3L2R1RXZWWEtGVk9ZbFNGMndKZGh3Z2hKRnFuSk1rT2FiSzdoOENUZzRlbXFoU0xrM1VtWlEzUmxNZ2tUMEFlUFlXTG5Kckw4M0RFci9NaXZOL2d2WThsZkl2MU13dDhpR3VyOFRWU1NxUXM1Y0ZxRDRGRzVGdGxBOVdhaEl5WWpMN1dSSmtoQlh4UkNFUS8xRzUyNUovRzdxUUVJeld4QjVFeVpOS1E1ZmRiVGhnc2pVQnBnekpXUkN1TlJob3hGREpyck1JTGFkc21iYzBuclFUdExHT3QwV1NsczhzT0hUckV4RGw5NGVYSzdXbFo1WFJ0bmdVOVE3Z1RFRVMyVmlUYUIrMXEzeDRVWXJpTjJJQzNGdFpKV1V1ZDE0UzFDUVMrNzFPYnJGS3Vob2pVM1djVkNkZ2p1Tm9Va3c1RWZtT243N1Y5aDlnT0FRUExiNkV0LytCbDlQMGUzYUJManppM2Y1YjQyaU5JQXZ4RW9kSzhoUEtoMXlFK0RPVHRNWUFRMXE1YVd0V2d2cTJVUTVGR0hXVTVpMlhVa3VIZlJjVytiNkNpU1h4Qng0OVpEN2I1ZU9OTGZuLzFTejd0cnJKQ2l3WTlXc1QwU1FkcWQzMEl4OUMxME5FSU1mYTBTNVZWaEVvRnhtZklEb01kaDF4Q2lrdEE4Ymo5RU42TjhOMlRrRENxOUMwK1A4RVlYQmNNeHJKcjlLT0U5YlV0dGx2TkFvRnY4cSs2MGdPS0VqNFQ1WURKdWtmWUY4Zysxa29ld1lGdG1Rdk1zdGFRUklZa2NUcFdWeTFYV050aW8wbTFzYjNUR1RQc1NTOTRsT2RuNFZ6TVhSU0VBQ21rdmZZTnRMcjJ1ODRHVnlMd1VIazlaWm0vVnRhQ1BxOEFiRjlMRkI0ZUVtL3dHL2NRdVRXMHU3UnJZbEk2OUduU3A0TjFPSWpKRUVoMFRnQnJQNFZTWnVzOUEvdk8rd1VnQllrMGRJbllZWnROMXRoaW5WYlNoODAxcG9KcDVtdm55ZkJSZVc0Vm80K0VvZnIzUVc0dkJGQXlpSkpBK1JyZk44eFVGbG55empIZC9KQnkwcUVFZEhFVmtrM0IxVmxna0dnRUdvbEc1ZGJMemh5YnZWMW52NlM1dS8xZGhLTWozTFptb0R6d1EwMllDaGJDSmM1VUxqRFgvSlNWbkFEdU01eCt1VjNUNjk1Z1orT2Y4UHdwSnFaZVF3ZzFFdEF4WURLRUNLaE52UFJmenAzNEYvOWxHbStqVk1VU3VTcEV5aEJQaFVoWlFrZ1BoSWRVWlpRcUlWVUpKVXNJNlNObGdGUWxwTEMzSnNZTUx0UjdBN0NtY0s0Tlh1K0h1MmJSN04yTllwOGRMK3dzRWFIdy9RbVVmSVl3WEdKaTZzMy9ROXhmcDlQK2t1YjJ1Lzk3MzZ2OVA1TzAvV2pTejhjWVk0ekhBVzVxV0J4R0QzMGlZUE1zM2JpMzN4ZnlNVlA2VUo3TGlUMHZ0MzYrQlhGckdEQiszRzRqeG5oMGNOYy9uVUxjaHQ0V2REWnRQV0NoSUhmWXVQdjE5a2xHSGd2d3F6WjVvdCswK3lMcDVJR0pCMXlzdTYvUjBPNGFWbllNSzl1R25aWWhmb3p0bjhkNE11RHFNZ2RCZ08vN0QwUUFHMk5vdDl1c3JxNXk0OFlOT3AwTzFXcVY1ZVZsVHB3NHdjVEV4QjdWNVg2b1ZxdTg4c29yTEMwdDhkSkxML0h1dSsveXpqdnY4TjU3NzNIdDJqV3lJNWE2eHdsOGNzMncxZExjM0JKczdFcCs5Qks4ZUViZ0g0OUc2b2hRQ0V3b0g0SzZkZmlvek5teEtuY3VPdEl4ZVpCUGE0TWp2ZTB1SC85cGpWLy83Z1ovZk84bW4zK3h4YzJWTmx2Yit4YzBWMHB4OGVKRmZ2U2pIL0hUbi82VXQ5NTZpNU1uVDk1Ry90NnpHWGtkOGlJNm5RNnJxNnVzckt3Y2UrM2ZVZmhoQlJNdWt2b0JxRjNJZHZKajh6akdiQThBWVM5OXFZWTROU1NaT1M2TmxpdkdOU2FBanhCakF2Z0poTkZKUDAwYXhQRTJXZGJIUCtySnVKQVluWkRFTzZUcE1Mdkh6V3N0bjVGUjhXQjJNcUJlOGxHcHJmK2J4L09IUDNEUEVodVVkSFYrM1Mzei9jNFJGRU9scnlOWWlvbzZHQXdoeXRqUHBLZVFvb0trbEllL2h5dTJ3ZHE4TGlFWnJkMlVuZldNaWRoUWx1UUcrTVVOZWhEaTNSR2t1VXJYeitnSG1rYW0yZXJHN1BRN05HVUxJelMxU28yWnFTclZVb0RxZUFTWlQ5bFhCQUk4Yld5QU96RTJVelhMaWVGY2JadEtpS1NpSXpRTjFhVWhPN1J6VW14by8reFJ4bWRLMWxnSzU1aks2bmd0aVpma2xwNFBwZjRWZzExa0JvOWhwV1VCK0o2aU9sR2lWUEtScmFIU21UMGs4QkdnRUZmZUUxdytUb3NyWVRCQ2t3cEJMS0F2VS9vaXp0V3FKaGV2QndScGhTQUtrU1czVHc1SWFOMjdBZm56WVc3ejhNVGJkMWNXVDVrOWhGbVIrTTFyL1ZLb0FUb0l5QU5Ta0NwQlZFdlpNT3Q4dFBFbi9uRHJFcDkxdDdoRmwxMFNPc1QweUVqSVNJZlV5cUdocUFDT0VmU0ZJQllDNlJtTXMzZDJISzNQVVBWYmNHNi9aNUxMbnM5Y3FzMG84ZXNHMDZjRmVkOFJnQ2VKMDVqdHpqYk5wRFd3WEI1V2FpZFBZUEVvRTFET1FrcXhqNmNGa255dzM5dmhEZ0NCa05DUE5KdTNJaHJiOFo2Nnd6bzNnSTRqVGRTRFZCYTUrY2N3TUZiTXRkQUNvWWZtejdibkNMdzhGY3BIRWVBUjRObFNEam5OV3lhZ1Jwa3lJU1hsRWFEd01wVi83bE9UTldZV3A1bVlMaEVHNEV1Qk5KWkV6N1FoVTdEUmIvSDV5ZzIrYnQ1Q21BWWRJb2JLNDR4TUpXZ3ZSV3V6cDdyQmZ0dVNDVWo4aUo3WG9KM3UwR1NYUG4zQ3pOQXlPMlJLa3lLUWlVREVRTTlZSXRTcGZYTm42ZnRHMGJhOURJUWdQWTBuQlBWeW5XbG1xWm1RQ2xCQzVVUEFxR241N2FOZXBqSXlQOEc0eExLN0VjRDd2VmY4MnlYVUZaUHFuSWxDZmtxb3hCQWFtSzVNc0Jnc01HZXFUTEJORitnd0xKM2xXcDJsYlJyYmY2UTY4UUwxeVZjUlVqRXFtZGJhWnJ1VXlpZVpYZmdGT3VzaFpZanlhZ2poMjNxOHdrTUlsU3Q3SlVKNnVXMnp3Tld4TkdpTXljajB2U0tqWXJBc3V4dzdCaHFqTVNaRjZ4aWpJNHhKN1E0UzFpdkFmUWRNSGt6d2MrTFp4MWxFV3pXd3RZRTJPaDMwVTd0T2Y2QlVEa3ZMbEt0bkNjS0YvNHVRU2dYaDlMK05vNTJiOTJqNEdHT004ZlRDWFdHT0xIQ2xqU0hOTkNiVkNIK2ZDNWxUQWdzRktvRHl6UEM2WWd5MHlaWEFlUlBIU3VBeFJtRzBKWUU3NjNrdDRBQkswN1pQUGJXMWdQTlpqd3FIdFlEN096Wmh3bWdlT01GVzVEOU5vZG1GVzl1R2xXMzcraW5jaTJNOEFuaWV0Njg5N2tHUkpBa3JLeXQ4OXRsblhMbHloWGE3VGJsY1puZDNGeWtsbFVvRjM3KzNDMENsVXFGU3FYRGl4QW5tNXVhWW5wNW1mbjZlano3NmlLdFhyN0s2dW5xa1JIQTNncTlYRGYwWStyR20weGUwZXBLTHAyRnhXdGdZek1QY0F6NEtPSEpYZWxieFc1bTNyZ3grK2VqSFk0RlZjWlh6QkxJbzRadkwyM3p5MFNydi9QNEd2LzNEVFQ3OGVJM3RuVHZYM1oyYm0rUGl4WXY4OEljLzVDYy8rUWx2di8wMnAwK2Z2dVAzbmUzemZtVXRiYW1ldmUvM2VqMWFyUmFkenY3SzQrUEE1T1EwSjA0czh2YXJwem43M0F5bDZTWjRYMEs4WFNDQW4wd1lJTXVzRFhTYUhVdUkzR0FERE1kZnpQbGJoakVCL0FUQ29GTnRZaHZrR2d6K1Iza0Rad25nTk40bFM5c2puNENIeHNNUUVsTVNLV0Z1OWloSHVWSUhaN25vNnZ3Nks4YjdhNUtkVkplQkNrTUgxRHNTS3daaEJDS1ZDRjFDNlJxS1NvSDhIUkxBenU0ekpXTmpzOEVOdHBrdmxaajIvZHovNERBQy9ibUdVQnBTWWRqTllxNTFXbHpaMmVaR2E1TjFzMEVxVW1hbXAxZ0twcGtVWmZ4dW1VcFdaYUphcHF3RWZnSXFsb1Fpb0Zyektma0tMd1VpZzA0TmtUVEVvYVNyTXJiNlRiWk1remI5dkJhcVFRN0lFNTlKV2VWRWZaYlpVbzFTWXAybzk5YjhmZEErTnJSSnRmdlc3VG1yanZLbG9GeFNCSUZFR0QyeWE0KzRYKytSV3gzM2JOQlNpRm9ZdEMvb21aVE5ScHZkYm84a241MUtCQ1V2WkxJNlNUV29XRXZ1TEcvelFWV054NGE5U2l1ajNVUnRTUFlQZTlPQVdpajgxc254aXA2bDdnZUY3WlJnaENKQ3N4dHY4azN6SXo2NCtrZSs2RzZ5Z2FKQlNvZVVIaWtKT3JjTlB2eGo2d2pnRE9pbEtkdnRCcTJnaSsrWG9TVHliQk9HcEZIUkQ3Yll4MGVidHVmdklVMDNKSDVkcmQvaXVmazQ5WU1IUVhGbm1PRTdBV2dTK242SEtPb1B4bVgzSFRsUS8zcFVLVkZMYTVUakNvRlJPUmZyTExJUHNuK01KWEFGb0NTOWZzU3R6UjAyR3kzU2dpMnlUUkF5dERvUnU3dGQ0Z2tOU21BU1hWQUFQNFp3UXZyQkcySkEvcXI4T2N5dkJUVXFURkZqdWx5aDZvZFUwaklUMUprcVZhbjRPZkdiQ3J6SXc5TStFK0VraXljV21GNHFVeTRaUEdGN3FNN3lHd1pmc1JHMW1RMm1FVmNNY2ROZWdkS2NsVFJrYUpHUWlaUlVhakloTUVJZzNQR3d6UVhBSUt4cU9JaEpTMjM2blNaZDB5VkIwd05TYVpXME9nWGRGOGllc1hNTXA4ZTZINHllZm9PU0V2bERXY1ZJWUlCVVVGZDFsaWRQc1dDYU5LT01nQXdQblpkYU1JVmU3dnBSWnROVHZBanR4MmhsY3RVNmUwL3YvZHJsbnZjd3lRd1Z6czVKWlpSSHpVQmk4QU5CS1ZYTXlSbWVtYmpBV211YlZ0U2hrZi9VamNhdXpYRzBRZFJmSTh0NlNCVVVWdTVnWHl0VlExWHErMTlWUis0Y2pVNHhJdHVIenhhNTRzalY3YlVKQ3NaOWhxM1hxM1ZNbHZiUldSOXRFa3Y4WmpGYVI2UnBrelJwb25YZi9rcDZDQkhZdkVOdCtSa2hGRXBWVUY0RnBhcDJ1NFJDQ0IrbFNuaGVEU2xEZStSTWxnY2YwbnpPYlZzYWhBdE16WDRYS2RXL0VrSUZmakQxYjVKNGQwd0NqekhHdHhNUGtuVjJYOGd5VGIrZmt2UlRnakMza25IazdoN2tHYTdTaDhxc0xTczBzSTVleVpYQWVTUjhYQk40REFkbkJaM0cwRjdQNndCWElhaUNMTjkrNlg5YXNLY1c4TFN0QlJ4VW9DZUhKTXlEbk5iNWFLQTFiRFlOWDY4YXJtOFkydVB3OWhnUENXUE1vQVp3cFZLaFZDbzkwSEsydHJhNGRPa1NIMy84OFVCSkthV2sxK3N4T3p2THFWT25Ea1FBTy9pK3o3UFBQc3ZVMUJUUFBmY2M3Ny8vUHIvOTdXLzUvZTkvenpmZmZMT3Z4ZTloNHRhMjRaM1BiSzN0NjV1R243d2krTkZMa3FWWmNYc3M1bkdIRzVmOEV0UVdZUEtrdGFnWENpdVNPSWIxUzJ0aGNQTmFnNy85VDEveWQvLzVhLzcwMlRyckcxMGF6VHY3Mk0vTXpQQ0RIL3lBUC8velArZjczLzgrRnk5ZVpIWjI5cTZydTFjQ1ExSGhucVlwblU2SFhtOS81ZkZ4WUdGaGdaZGVlWjN2ZmZkdHZ2Zm1jM3pub21ReStOaGVPNDJ4b2pGMTFCek5FY0NKdDR3dDlkeVByY3IrbUFoZ2w3NCtWZ0FmSWNZRThCTUptMUlvQzRxSy9iSmxEbXRkUWtneUhSTkhtMlJKYTZRVkdvVWdSQlBxbUtBUGZpandoQmdTd01WQXBWUDl1b0p6RDJMRDZJS3h1UXJuTmp2VmZYYUZFSmFRenZvZVJsZFFXUjJQTWhLRElNRnF4bHlnM3lxQVkxTFdHbXRjejY3ei9NbHBSQmhDb2tFV2xJa1B0TnZ6M3dvTjBwQmswR2pIWEcyczhVbm5DdGZOSnR1MGlVMkMzMWloMGc4cGV3SGx0TXlFcURNZFZpbExEejhSbExLUW1Za1pUcDZaWlg2K1FoQXAySVdzcTBpbGdFbkJUdHJsOHJVVnJqVTJhQk9SNUpvMlAxZDMxYW13RUU1d2VtNk9CYjlLdUdueTQ1SVRLT1pCNGhrdUttMEdRWHR0N01NRmNpVVNUMHFyR3ZQTTNqVWMxOFRzMkNlQStYNFJHaU0wbVFSVEZYUjF4UFhyYTZ3MXRrbkprTGtDcnhhR0xDeE5NbGtxby9MeVhjSllSZFA5RThESHNMSDVoRUViUFZCYVNjanR5b1VWdlJ2eUcrcWMwUmJEdnJMZjhnYlBBbnNpZTVMRU02eHVYT0h5emZlNTJidkJGaW03K0hUUTlEQWttRno1ZS9qUUk0OXUxR1ZsOVN0T1Q1OWtxdlFNS0duSENUZjJqWTVOdC9NbUkzKzdINDJTdnNXQ3dVOGozSmlhSzdZRGcvQXpVcFdRMklyc0F6V2xxLzNyb1NnVE1FR0ZtYURPWktsQzJKZEk1ODJzNWIyN3ZjQ094V2liVitGTDRpaG1xN05GTTI1WWkyS0dOWDh6TkkxdWswMjFUVHdSSTRJcU9zb1RuaDQzRks3QjBoTUlUeUF5ZXk2cTNQNWZJYWtRTUVtWkNjck1NY1dwMGtrdW5KNW5mcnBLMENwUlNhdE1Wc3FVZklVdkRESVZxRVFnRTRtUFQ4a0VCSnNTVHd4MUVpNk5NeEVTcitMeDVva0xOTHU3YkRhMzZOT25uNCtGR1RHeDdoRmxmVkpoYXc5ckFXbzB4MEVJdEpCb29kRmVUQmEwU1hwZG9reVRrazhwakNITkRGbHEwTzRXNGtISVg0a2xleDNoNjJ6YlhmQWduOU1JREw2R3RHT1lyTXp5MGpOdnNYRlRzM0wxRzN4NmVHUWs2TUhzd2lYQTZNSXNJMU05U3dMTEREMm9XV0h1ZlpxNytaUkxwblBiT3NyZWprQms0S2VHdEtPWnJzL3ordWtmc0xYZTVPYk45OWxtT0MwYnBzVlpKUEVPY2JTTzU1VVJRdVhxMnRHRk85TFdYZ2hFTWJsam54dDdZMGJTY3dwZkVia2kyRTJ6dE01eXBhOGhTOXZFL1RWNjNSdEV2VnNreVJaWjJrVm5FWm51azZZdHNxUkpsdlVBaVZTZVZmdmkxTW9HSVJSeVFBQlhVS3BreVYrdlJxbHlrdXJFUzVRcjUxQ3FWR2pqM3VpM1FlUDVrMHhNdndXRy84NFluWGwrN2YrZUptTTc2REhHR09Qd2thYWFYaThsNnFVRU5hZmlaWis1cEFHVDJrQ3g5S3lDMDdqM05iU3lncnFSZkh4K1d1ZVdZeHdZd3QxN2FJaWIwTm1BOG55ZVJPQVBrd2lPMHkzcldKQnZqMVRnVjZBMFlVbHZMNC83REw3ellDUndrc0ZHQTc1WmhWdmJWbEUxeGhpSEFhY0E5cno3QytscnJkbmQzZVdiYjc3aG0yKytZVzF0alU2blE1WmxwR25LOXZZMm5VN25nZUxMUVJCdzh1UkpGaGNYbVp1YlkyWm1ocG1aR1Q3ODhFTysrdW9yMXRmWFNaS2o4MERmYkJwYVhXajFvTlUxUkRHOC9hems5SktnWE1hZXhzNnI0N0VleW95TjkvbFZxQzVDOVlRZGw0dysvSUtzYm5qekZmalN2dTRrck4xcWN1TkdrM2QvYzRPLytkdkwvUEkzMTlsdDNEbUR4Zk04VHA0OHladHZ2c2xmL3VWZjhyT2YvWXlMRnk4U2h1RTlteUNseFBkOWZOL2Zsd3d1dnVkcVZoOTFRc0VvU3FVU0owNmNZR2xwaVdlZmZaWlhYbnVUNzc3OUZpOCtkNWI1ZWgrNUcwUHYzZndZOGNSWFowdFNTd0JINmJHY0tpNnlNYjVDSGpIR0JQQVRDSUgwbEZmQjgrdElHWEwwS1prQ1krNW1BYTBKTVZRUlRLZ1pLbklTWlVDNlNZUEJuc3F1eG0vTS9aZjNsZ3dEc1FHVytBMFlPaXZjWS9OdDVUMkJpQlNrSVNvdG9RaVJ4TGdxaUE1T3FacVMwZEp0bXVrdVNTbkJoQUxkZGF0ODJQM3RsRzRHb3lTbTVORnV4NnpxTFc2eHlTNDllaVRXTHFYTGdPaW9VYWJhS1JFS2o4QW9Tb1JNcDVNc2VGUE1kR3JVa2hJTDFVbG1abVpCVjZHaVdlODF1TnBiWXpYWnBrZVVxMyt0NVdlRmtCUGhIR2ZxSjVrVkUxUlNpYTh6aEJhNWV1NEJDQ2NCUlR2VW9raEpGNytDUkFtSnAyeXczLzdFS1Z1TGo4ZDZkdllBTURZS2p5RVZrTlVGc1U3WWlodnNwbTB5VEY1djA2TW1BK1ptU2t3b0Q2K1o1VHZ3WVlNMEJYSmhRRGdlSWdRMjQwM21WcHN3S0hrOVBKU2pwRy9oeHJwNHlJc0VVTTU1R3lsSWdYYTN3WFp2blRZSmZhQkhNdUJBanRTRGo3MEs0Szd1czlXOFRydXlqcG00Z0ZGeStLVmkzS0Q0WE1UZ3ZWSGl0MmozL0RRVHZ3VVVqN2R2eDhkTU9ycHNqeG5yZ01Bc0V6SkJoUWxacGhwNEJGR3hyOTBycU9tU2NleVNOVUFadEovUWxTMjZkRW56NnNORkJYQkhkMm1uTGRKU2d2SEJ0Qmt1NTNFWnJnbzNTZ0pBQ29RVWVmSU5neVFUSDQvVGxVVytlK1paVGxmbnFMVEx6S1d6bktoTk1CVUVCR1ZiZXFEa0t3SWhVTmhhMXhKcmwyMHlEWDJONmFUV1p0cGQ5M01TVjBxQlNCUUxrMU5jS0MveVRYV0dkcS9GbGs1ellqMm0xZHFsRWV3U1RhWmtTcUNGUU8yckFNNGZJc1BrQnUvdVhPOERuY3pRU3pLeVVVT0JnOEpadGdlRmh6c0Y5MHZra0NBemc0d3lhdFVLcCtlZVlhbXhRWTFOQWpKOGtyd0d1Vk9JdTU4N2o1RUlUUTh0N1hYWnFwL3ZFSXQzNDZKelVISEViN0crOFVFR1BRTXFBZG5UbE1zbDV2MXpMSHVubWVNek51a1BxbkdNVnVTSSsydDBPMThUbGs3ZytaT1liSi83TTZNSHBPMW80NFhJMWJ4QzVUMFFETG5OY203ZGJIUm1sYnhwanlScGtTWTdKTkVXY2J5VHU4L1lQcUd6SG1tOFN4eHRrY1JicEdrTHJhUGg3L1hCYTBIWkpFb3ZWd2tycEN3VGhETzBHbitpUHZFS3RjbFhDRXRMS0srQ2tBR2dNZHBtRlJnZGd3ancvQW5xVTI4UUp6di9mYmZ6MWErQk1RRTh4aGpmTGhUcm1CeVpMMk9XR2FJb0pZcFM2cGsrZ042NHFBU2VzYzB5bVgyMERjUmQrOW9sN296eExVZXVLTmNHZEFKUkc3b2IwSm15aVFSQnpkcUNEa3IwUEMxdzJ5THpXcHMxS00xQWFjY0c4ck1IVU11N09Wc0c3WjdoMXJiaHlxcGhiZGVRSG0xSjFER2VJaFJKcjFFeVZrcUo1M2tQVlArMzBXancyV2VmOGNFSEgzRGx5cFVCK2V2V0lhVjhJRXZwSWp6UDQ4S0ZDOVRyZFM1ZXZNZ3JyN3pDTDMvNVMvN3doejl3K2ZMbEk3V0VqbEs0Zk12UTdNSjZRN082QTc5NFEvTHlHVUZRWmhoMmVoeUhNWGVjcFFLdmJGMEpxbk5RbnJJMjlTYmwwT3V4RisrM3RZRTQ0OGF0SnIvN1lJVi8rTWVyL1A1M043aHliZmV1NUsrVWtnc1hMdkN6bi8yTXYvaUx2K0R0dDkvbTVNbVRCeUovd2ZhWFVxbEVHSVlvZFR0eld1eVBuVTZIZHJ0TkZOMVpoWHpZS0pmTFBQLzg4L3pnQnovZ3pUZmY1UG5ubjJkNStSUUxDL05NVHRhQkJPTHI0TTJDOElFbzcyY1BtRHowS0pIbmVTV0p0VmVQanFkbS9VQTd3RmdCZktRWUU4QlBJS1FNcW40d2pSZk9vbFRSOHVQb3JtSkdKNlJKa3pUdEFudXBDbXYvREhYUFk3YTJRTDAwamVvWVNITWxhUXc1US9OZ3hLOWlXT1BYS1g1SGlkOTlsWFI3U1NWcERDUUNsZmlVWlkxUWxGR211NGYrZFNham1RMU5FcU5KZlkycGFTc293K1RFOXVIc2E2TkJWQlRoZEFtVmVFUzdHUjFpR3ZUbzVOVmdBUlFTSDQ5dE9qWm9iOVNnWm1PcHYwcDR6YWRFeUNSVnpwOVo0S3gvRWorYkp0bkorS2I3TlRmMEppMTZSTG05c0xOT3JWUGlYUDBFejh5Y290NHZJeE9kdTljcU1Jb0hzeG0rZmQvWVF2S0dUQTh0ZWEyS1Q2Qms3azQyMksxRjh2ZHBRMDcrQ28yUmhzUXpOSkkrRzFHVEZqM2kzTFBUUnpIdDFaaXZUREVoQWtwWjdqaHFjbUxldUZucmZkNk1qaklpd2hIdTh2NlhkOGYxR0lTblFka1ltTUFndExGV0tIdTZSdkdQa2ZXS083dzJCcDJDaVNWb0Q0MC9FTUdsbUh1SjN3NFZRL0ZkUmtTSFJQVXdRWWFKL09GOHI5aVFQWCs3ZlYxODNNbnErUW1jT0Q0UXhKNG5aQjVORldaUWg1ZkMyT0doQ0pEVVpabUZjSTdwb0lhZkdLUlR5ZDkzM1JXREZnYks5Z3FRK2dreGFkNnZYRzE0T2FnUG53WUoxRktNeUszdGhjbkp6MGQ5dlBhNVBybWN5a3prSEpyQXkvOHY0WE15bk9mSFo3L0Rpek9uWUNzbDNKRUVQVUhRTjNoR1dQRnJQME5xVVBrMVFiaHJneUZQRm5JSlgvbjZEZmpDSmhLcnlORGZFWnlRTXp3enM4anEyanJ0dUVXQ3hwRFNhbSt5eFMzNjFUNm1iQlhBdDEwQzh2QzYwV0JTZzBrTjJ0aGtFSUdkWWpTakRvMXVnMmxkcGFKa1B0YmV2anNHR0QzMVhLMXVsMnhXbkdlTW5zdXVUUUk4b3dsVFJibFhZNXA1NXZ4WjF0S1lybWtUb1lodm0vVG9QTkdzVDJaNlpEcENLME1tckF1MHl5RzV6UlhmemFmY25PcStiOGpzY1JHSndQY01XUVNxR1RBVnpiQXNwMW5WcTdRdzlCbW1uYmp3VEw5M2szYmpUOVRxTCtENVV3amg3UzFCSXR4TVN1QnNtOEVHa0F3R294TjAyaVhUZlhRV29YV0V6bnIyb1JPMDdwTmwxdEk1UzlyRThTWlJmNVdvZTVOK2Y1VXNiZDd2eGg1c2o1ak1ib2QyUVlRbWNiUkd1L1VGbmVablRIYXZVcTAvVDFnK1FWZytpUi9NSUlVUDZDRnhuWUhuVDFLZmZKbjIxSnYvS3orY3ZwV002d0dQTWNhM0RTN1YrVUY4Snc0RVl3eFpwa216QXlxQTlpaUJmUnRJMXFtdDBXQTBtRFdJTzR5VndHUHNnYk9Dem1Mb2Jsb0ZtbCt4WklUeUQ1OThlR3lRYjVOWHN2V3orN3VRZENGdFlkMjc3dU8rSWorTnNnUjIyckMyWTFYQTNlUGpLOFo0aWlHbFJDbUY1M24zcmY2TjQ1alYxVlUrK2VRVFB2endROWJYMXdmTGRJU3lVMkUrck1MUzkzMldsNWRaWGw1bVlXR0JlcjNPMU5RVU16TXpYTDE2bGZYMTlTTlRjVVlwWE4rRVZzL1FpelJKQ3QyZTVQblRNRHNoRUs0dXNFdmRlbHhnOGthcGZCeXFMbHJyWnhYWU1XZ1E0ejZNZFdISHFwSUhub1FvNCtiVkJ0ZXZOL24wODNYZStkMTEvdjUvdWNLVmE0MjdMbVo2ZXByejU4L3pneC84Z0wvOHk3L2toei84SVl1TGkvZlZGS2RtRDRMZ3RvU0dZZzFnWXd5OVhvOXV0M3ZrQ21BaEJMT3pzOHpOelhIaHdnVmVlKzAxZnZTakgvSEdHMjl3NnRTcGtTU0pBTHc1OEdmQnE5dkIzN2FZSjNWZWxhUVF4ZmI1R0dDdzgraURaM0dQOFVBWUU4QlBJSlJYWFF6Q0JjSndEcW5DUFlIeG80QVFBcTFqMHFSQmxsa0MyQVVIaTl4c1RVaW0vRElWRVNEakJOTUQ0YXdKSThpNXg0T2phUFc4bnhLbnVObjdCV2RISXNqQ2dPa2JQQjB5VloybUh0V1IvWjE4a1RaS2JBVTJKbGVjWlNSa3hDSWpsUVl0VFI2WXRoYSs5Z2JvSVFkMFk1TnAvWkpBQmpoVFNQb2s5SWlKOGlxbXpqTFowa01TbFZ0Mytya05xaU9EeTRUY1dOM2tvOFoxU3FwS1pCTFc0MDNXK3R2MGNpTlZtZGQ3ckZOaWpqcG5xL09jbVppbDN2T1FzWWJNV2FjZXdENzFYcHVYQjljekExSGZrQ1I2c0QwS09meG5ySVdxSU4rbGoxVjkyOE9BVThYcHdjTUVrcVNjY24xdGl5OVdyN1BUYVEybUNHVjh6a3lkNE9MQ0tXcjlDaUxTZVYzbVlsM1RnK3lqblAxdzZ5WExYK2VmT1VMWk5mRkI5dnVBck1rMWt0SmdSRzZWN3B3OHNoU1JhWVF4ZS9YMis2MXU5RDJuZWtzZHFXcEFTMVJXdzJjU3dRNHVxK1E0UWhLdU9YdktiaXBKRm9EMk5DWXhlNmQ2KzVKSGJxYzVYOW5pNERhcStMMlhndFVScDRVVkdYbjc1NDh0OXJiUE9UQm9NUnlMM2IvaVdPakd2T2xTblF2blRyRlltMFgxQk1RYUt4K1doZjF3cC9VS0JsYjF3aWI1R0pXUHd5TE5DZUFzdCt1MUt1QU1UWW9tVXhwUnNYMWEzM2F3aXhlcFJ3elhKTzBDeHNPcmlRZFVDWmxJSzVSM2E1VFRDa0V6b3RMWEJJbEJhUkJHSXR5MVFCZkdIU09HNUtvQlo2TzlKekFvUVdXR1VxSXBJMWlvVEhGbWNvSFB0anpXNHdTQlJwRFFwVTh6dTBXaSttZ2xIVTl0MTFUd0luYW52NGxCWndKdGhsS3JDR2oydDlqdDNDVHladENxaHBHMzE1Z2R3S2w5aTQ5Um0rZmlQdHp2TlhhVFBRbTZEOEZPd0lLWTQrek1DVmEybXpTU0hoR1NDRkhnY2QwLzBPUTFiSlBFV2xzN0FyaEkrRHBMZ3lLMVVIUVhlQkJrNENXR0lJYXdyNWhUODV5cUxuT2xzOFdtanZkVTZIRGpYUkp0MHQ3OWlIYjlSVHh2QXVYWDgvSWplVU9Nd1FqYklZVEo4dDBrYkJta3JFK2NiQkYzYjlIdjNTRHFyWkltTzJSSjJ4TENqZ0JPZTdtU04wYnJCS01qc3F5L3owNC9CaGhOcjNPRkpONWhkK3UzbENvbnFVKyt4dFRzRDZuVW5rRklqMkZ0UUR0UExsWE9NSC9pci82UFdkSllBLzdQeDkvb01jWVk0eEhCamNvdTFmbklCaTFqdUgveHBkSDJtaTE5cU13enVIZ2JZMG5ndEQ5Q0FvL3hyWWJJNzBWMEF0MnQzRVo4MGxxSmUwSCtIUjZMS2U2aHd1UjFpcnpRMmw1SFRidjl0TGl2V3NEdVZpNkRkc2V3c20xWTNURTB1ay9iRGh2anFIRW5DMlpubHhzRXdYMFJ3SEVjczdLeXdtZWZmY1pISDMzRUo1OTh3dGJXRmtvcHdqQ2tXcTB5TlRWRkZFVkVVVVMvMzJkaVl1SlF0dVhzMmJNRVFjRFpzMmQ1OGNVWCtkM3Zmc2M3Nzd6RDVjdVhEMlg1ZDhKdUI5NjliTmh0YTI1c0dmN2lUY2xiRndXbjVybTlqT0RqQUhjdDlzclc5bmxpR1lKSmJOenVDTndYUko2dGJlRFdqU2IvODk5ZjRaM2ZYdWV6THphNGZtT1g2emZ1bm9DN3VMakk2Nisvemk5KzhRdCsvT01mODl4eno3R3dzSERmelhCOTJ2TzhQY1NxMXBvMFRRZUtjYTMxb0g4ZXBZb2M0UFRwMDd6NTVwdDg1enZmNGZYWFgrZjgrZk1zTHk4ek56ZTMvdys4T29RbklGeUNyR2VUaTQxKzhwTHJuQUk0TS9RVFc4YmdHSkJoNTlBZHhncmdJOFdZQUg3Q0lLWG5sV3ZQekFmaHJGVmhTUDhZMWlvd09pRkpkakZaYjQ5b3B1aklIS2FTSVBieGpVTDFFa1NYdlhYcERyWXF1MUNmb1JxbmFQVU0rNU8rZzgvYzVMeG9uV3BEbUFJTnFjR1hrc2w2aVhvdlJQV2RBYlI5bU1LL0ZHMU5Hck9VVGp1akh4aTh3Zmo5TUZUVFhubVRBcFEwS0dsRDg0NkVUbk1DMnRXZUxHaHFrTWg4S3dVS2haY1RJaDU5MXVJR0t0N0FSNUdRMGlNbXpXMG9EUkFnS2VFeExXdWNxUzV5c2pMTHRBa3BaNkMwQU8yQjhSNkFEQnk1Rzh3MzBVaElOZlI3bWpqU0RDa0lxd0FXK1hWUjdDSEdua0lNa2dkU3REREVucURuR2RZNkRXN3NyTk9paThHcWZ5Y29jN0k2eTZtSk9TcDlIOUcxUk16K2ZxUjNROTVQUldZZkpnVmZ3NFN3YXNBV2tMbGpmYitLeWRIMUZEWjFVTmMzZC9MUU1TYk45bjd0VHB2Z3VrQXhEOHpwS1NRSWJVbkFldTAwODd4QWFYY0RrYlNPcmVlWXdVUGtKTEJQS3Nxa3dpOFFnZnY4eWhGbWU5Sm5IT1BrM29QNzM0cWlITkV0UWhjK2VoTE9wOEo0S296TlN5aTg2K3lYd1kzdWtnQ1BBSjhKdjh6UzBnU3pzb3hxcFpBV3IxQUhXRy9CYXRnSVNCRWtXbGozaHhIN1owc0EyMnREaGtFcmd6RWlIeXJOM3I3N3VLQjQrSFBGMExDR3NxUktTRGtKa0EwUVNZcmZUUWt6OEV4K0xkQ0tvZXVBVzJCT25BOGkwZTQ1ZjYrNEh6VEkxQkFvbUM2WG1WY1Y2aUlpb0VPR0I2UWtHR0xWeG5oOWtCbGFBNG13NTMxazdCZ2dnVXErZnBzZE1PQklOWGFxMGFkRHhDNkpUTWlrd0VpWDNBV0RnekpxODF3a2ZvczQ2REhNdTVDWFF0QVZUSXNLaStFa1V5S2tqS0NIUkNGdXkzOXo4d3lkcG1ScGh2SHR0cG5pdUZkTW5qdk1xamdHWkFaZXJBbDhtSytjNHJSNmpwbm9FcFU0cG91OUF5dDZNQm1UMGV0Y1pXUGxQNkIxelBUOGp3bExKd0JMOEpvc1FwdVlMTGRuVHBNbWFkSWdqamR0K1pDa1FSSnZrMFQyN3l6cm9MUFlLbWdMUk9yamhqUnBrQ1lOb3Y0dG90NkszVllCbGVwNXBBd3cyaDRVWXhLVXFsQ2JlSkhhNUtzL0NVb0wveW51cjE5NnhNMGZZNHd4amdmSFFnQWJrMTg3N0l2NythVlYvZ3BwVlVTVldYcy9ZSElsY0dmREtoMU5ibXN4eU1ZZDQ5c0pZVy9NZFFacEQvbzcxZ3E2TW0vSlVSV0NVSHVTb0o0TzVCTkw2VU9ZRTk1K2hhSHE3b0RJYjBGTUFvMDIzTmlFOVYxYlMzR01NUTREeFhxcCs5bmwzZ205WG8vUFAvK2MzLzcydDN6ODhjZGN2MzZkM2QxZGhCQUVRVUN0VmlOTlU1YVhsNG1pNkZCcjlRb2hXRjVlWm5GeGtjWEZSV1puWjZsVUtreE5UWEgxNmxXMnQ3ZVBqTkRiN2NDN1h4bGFmVWhTVGFjSDMzbFdjR3BlVUt0ajd3ZGRadjhqRzlMeUdMWVFOdWttbklEcVBGVG03TGpybE1HSEJTbXM4bGRKNG43QzFjczcvT3BYMS9pUC8rbHIzdm45ZFc2dE5MbmJ6aWlWU2l3dExmSDY2Ni96MDUvK2xKLy8vT2U4K3Vxcjk2MUlIelFuVjdXUHFuOGRBZXpVdnRZSkpTUExNclErZko2d1hDNHpPenZMcVZPbmVQbmxsL251ZDcvTGQ3LzdYVjU0NFFVcWxjbzlOc0tIWUI1S1N4Q3ZRaHdONHlKUElOTE0yajhmVThVSE40ZU9HQlBBUjRveEFmeUVRY3F3Rm9Sei96a0lGL0M4R2dKNURDZWxRT3VVTEdsaVRMcUhBSGF1aWJOK2hmbkthZnk0Q3BGQlJpRDY1dUMzd1c2QkF6WTVmOXlweHU4ZEZUbEZZc1dsZFJuQXFZMUFLUWhDaWUrTG5FYTlmVlMyY3dDck91c25LYzN0UHQxcVFoVjFTSU80WGEram55MlpiZ1B5cmsxT0xlVHNUNGYxY3dVeS84ditOa01OTkYwMjJPeUMzazYxcHZPZDVPZld6MlY4NWxTZFp4ZFBjckl5UTlnVitMRkJHcEdUdnc5YWM3UW9DY3UxNmNMYVAwZWRsTGlmRFE2WFJDQ05SS1NpNEtyMEdDbm5EZzJPRU1sQUpxQ3Nvcndub1NWamRtU0xIVnIwU1hLT0kyU09TUmJGSk5PVUtHY0NtYkdYaURtbytsemtGSWxiZHltRHNpSHpqWjFmaHRKYWlXWVBTZ0E3Q3NiUk1OaDJhUkJraUp6Qk1GbUVUczJkeDZyaVlYZnpXMGVDRksxT2ZjQm9wSUtadVNXVzYrZXA5ZjZJU2xvRHgxYkowYzBhaG52ZFZoVTNTREpLUkZsSXZ5OUkrbll5dWlkSHhNQ0F0RGVIU2Z4U1VQMFdYUWtZWnU4akQ5NVhIaGtLMnpCNjNwdTlxVFp1MVBSeUY0TUpVV1BLcTFQREo5UUczNURicERzWjUwSFdtejl5eStsT0o2TVJ4VVJKbWhPOWJnUXUxZ0cybXVETVdFNVY1dThQNjd3KzZ2RkwzUGFua0FLaDVNQVZXZVg3c1VLRnVxcFNSaElhUTRpMWZiYUpJWDd1QmxFOFFZc25xUzdja043bHh0U0FwNkdNWXNxdmNLSlc1M29Vc0o0bUpEakZ0MEY2RVlnWW5ZRHBDa1JrN0cxQXpKQ29EWWJOY0sxSnlWTk5sQ0VOREtsbnlGTExYMHVQZ1ZVemttRXBpVkdiWjdkNSs3M2U3Mi8zbmdDMFFXcERLQTNUWVpuNXNNb0VtZ29wM2J6SmxnQWVjVUFBakxaMjFzWUZIaUxzN1UrUEI3UjVQZ2dNYUlHTU5VRUkwLzRjUytvQ0M5NHNrM0dITHBvMnc0b2Q3c3pNc2k2TjdUOWdUSVlRaXVya1N3Z2hTYUp0c3FSQm1uVkk0Z1p4dEVyUzN5U08xdW4xYnBER3UwZXhFY2NLbzFONm5Tc1lCTW9yNC92VGxNckxtRHhhWkl5MWdKY3lwRnc1ODE5VjZ4Zi9aK1dGMTdJMHVuUEJyREhHR09OcFFYSFdlcjkrVndkZmlUYWtxU1pOTlVZYmhNeUR4ZmVUc1lTeEpIQTFWK2dZblZ0Q1o1RG1OKzJEaE1VeHZ2VXdXSVY0WndQQ20xWUJYRjJ3Z1c2aEgvMTA5ekRoN3FHVWIyMnZTNU9XaFBITEVHZkQ3OXhMSlovUE43V0dyYWJoNnByaDFwWVoyeitQY1doUVNnM1VrdmRULzNkalk0UDMzbnVQZi9xbmYrS3JyNzZpMVdvUlJSRkNDSlJTZEx0ZHBKUTBHZzNpT0w3djJzSUhiZnY1OCtjcGxVb3NMeS96L1BQUDg2dGYvWXIzM251UHExZXZIZ21wNS9EMXFxM0J2YnFqV2RrUi9QQkZ3V3NYQkxVSlFJbEhhd1U5cVAyYko2QlU1cTBGZEZBRjVkbGE1SWNaOUJjQ1BBOHdYUDVpaS8vM3YvMmN2L3ZQWDNQNTYyMVcxdTZ1K3BWUzh1eXp6L0xESC82UW4vNzBwN3oxMWx1Y1BYdjJnY2xmdDB5bEZFcXBmUlhBTGhuQjJVRVhhMVlmRmlxVkNzOC8venh2di8wMmI3LzlOaSs4OEFLblRwMWlhV21KY3JsOGdJMG9RVGh2VmNCZUhaSmRHeWc2eUhYamNVSGVURzBNU1FaeGNtd1hlYWNBN2pJbWdJOFVZd0w0Q1lNZnpKd3ZWODRUbHBlUnFvUTlTNC9xYW1WSEFHTXl0STdJc3Q3Z2sySzF5aEE0Ty9zTXo4OTlqM28waldtbHFOZ2N2QXFTVzBpSm9SVmprUmNwTWdCM0NzTHUwU1NQMXRETWlqRitTeEJvQVdhby9iWGZISnBwRjRuVE5FM3B0dnIwWllJT1ZONnVReGdNalVBWWdkUzJicVhVWWtBQ3Exem5hMXRWMUwvWmRSZEhSWUhPMWNGaW9CSzI3NHRCZk5xU0p0WXF1a3JJTkZXV3cxbWVtVm5pUkRCSmFkc2dVNUdUakVYeTVFRlV3TU1EWnpBZ0pWbXE2ZmRqNHNSMkNtZENLcldFV0dCVVFZbjlWTnhNRmpaQ0dHdUhMR0tRQ2FuUzlEMUZTeVdzNndZcmVvdGQycVJrK0hoTVVlTk1kWUVUM2d5MUtLU2NDSlIydHR5dUx2TkJqb3ZKRmNjWmlOUkt2bVl5K2pLamN5VWhrSXJhdEkvUUF2cXljTnp2dHV6aWlUaksxR29jaTJhMFFlZ1VtVi9ITFFHczdieDFQNFoybE1seHhLL2psb3VyRlFZVkNtclNaMHFGVklUY3crVWNod2h6ZUxZRkdFcWsycmNXNTkwRXBMWjkyZVJCTkNNS3JWTWp6dzh4R1JTNTlGRGswa0RwZHBUSmo2V3l5UnkyUUMzM1ByYVBDdnNmc1dJYWljbS81OFlOU3dEN3pJY3puS2dzRVRRcUNDekpLQ2hZMkIvMFBFRWpwTTJEMk4zcXN0Rm8wTzNISStiVFF3dG9WeUlnUTZOTlBoNkxmSUwveUFld1lqMXZNY2cvVWI2SFYvS1JxY3hkNEEwS1NjMnZNbFdkSkZBS3FUWFNaZTBNRGtCeHV3WlVZT0cxczVSM3lRY2p6VEVnaE1IWHRveGF2VFREOHlkZVpWMDNhR3g4VFpvdlNRdURVYmJpc2s0a3BvOGRBOUxDYWd6MmV1bWM5TTJ3TlFuUU5acWV5VWlrc1pic0pleVhOTU9jTUovYmJaNzNtMS9jalF3ZTJUN2JQbzJ2QlRQbE9xZThHUlpXQWliampCNFpYZlNBNkxiWHZ5RUVJTFJBSkFLVEFqMWh6WThpSUQzQ3ZxUkJ4QVkvRnBoSU1LV21PRk8reU0ya1FUUFpJY1FPd3htM241M3Q1bWRvblZEYWVROEJ4UEVXV2Rva1M3dTVqWE0vdDNHTzh6ckJUdy82M2FzMGR6NWtZdnJ0Z1FMYTdTR1QyM3lGNVJOVXF1Zi91dFA4L08rQXE0K3d1V09NTWNieFluVFdlcWd3aHRzSjRQdGRnSEZLNE5BR21MTVUwdnhLM04yQ3pDbFdIbktPT3NhVER5RkFLdHNmK3J2UXVnV2xDVXRPS0orbk0ya2JJTi91b0dMclpwZW04OXJaN3R3NGdPSlMycmovVGh0dWJoazJHaEFmVHgzRk1iNEZjQVN3Ny9zSEltbXpMS1BiN1hMNThtVSsvUEJEUHYvOGN4cU54dUJ6WTh4QVpibXpzME9qMFNCTlU0SWdPSkwyU3lrNWVmSWtTMHRMbkRoeGdzbkpTU1ltSm5qdnZmZTRjdVhLbnJZZEp0TE1rc0E3YlVPN0wyajNCSEVpZVBtY1pIYmFjcTk3Ym5PUEU4NzYyUzliNVc5OXlTYWhIR1M4T1NnRVZ2bnIyWEc5dWR0ajVjb09mL2VmdnVKLyt2ZVhlUGY5bTl4clBKK2FtdUw4K2ZQODVDYy80UmUvK0FWdnYvMDJwMDZkZXVpbUZRbmdZcC9XV3BNa3laSFcrNjNWYXN6T3p2THNzOC95MWx0djhhTWYvWWkzM25xTGt5ZFAzdCtDZ2dtb0wwUDNKSFFtYkJ6alNZU3g1MHFjRG5PZmpnRVpkbytOdlRLT0dHTUMrQW1DSDh5Y3JVKzkrc1BxeEhPRTRRSUNtN1Z6VkJCWWE4c3NiWkhFbStpc243OC9wRnFkVS9OQ2RZYmxxVk5VTnN2SVNDTVBRdjRLckRTbWpDVi9BKzRkbEIzQUZFaU5JaDFkTE9KWFhORmU4dVB1TlpTSzFJTU4vbXNCUm9wRDN0czJ3MW9ZZ1VoQUprTmJUb1ZUSjkrNWhjUFhqaUF4ZThSTWpsQ1ZDTHlCYWs1UkkrVDg1Q2xlV1h5ZVpUVkhMVklFV1liUTBoSkcrK3l2ZzJNdkFXSUFwQ0FqcFp1MGlVdy9weWJ5ZjFwQUxDRjRDc01NVHAyWjJ6NGpFektwNlN0QlBPSFJVQjB1cmQzZ3l1NEt0bEtrSU1SbndaL2krZE9uT1YyZm85U1hxS1NnYXJ3ZlpiWmdTQkI2S2FuU2RGdWEzVlpFYjcxSGZUb2s5SHdDbGJlUnpBWjhiclArTHFxNmk5VnZzNUhYdzYrYUZGdjNseTdRUUdROVNNMHdWNlBJK1dYWVM3MnplbmJPMGZ2Tjh6S0JTRUZsWUJLSlp4UkJxZ201L2N3L0NoSllESmJxZEtnQkhpVUNVYVBrbGZGOXo5cW9PeHU5UFRWK2k0cmZ3K2p0aGI3bEpWRFdVQmFXTkdvWk8yTVRCa1RlaGoySkEwOXVzTWFOa1NVOEZpZHJMTTlPVUU0OVJHeHM3ZFRieHY5N3dPMEtLZEFDT3UwK2paMDJVUktUWWZKSDhZcVExd0UyaGpRVHBJZ1I5MkIzcmp6S0VhMXdrdVhiNTVjQ3dsb1oxVlA1VGExdFg3a1dNakZkeHZPVkZRRkIzbS95RTNHd0dZYWgzVjlScloxdjYrZ2xkNlNMS1lBK1ZQd2FaNmJQc05TYTQvT05yK2xTdU5jMmxsRGZ1eG94V0tiSXlXbVRTVXcyUEkrTWJTbXRxTWR1dDAwVWFySkFvbzBBUDJlSjl6djE3anJIdU12NyszeFBhS3VjRG1PZmhlQUVyNXg1aVoyMUhkcGJWMmt5ekdjcCtDUU1aaS9TMk5ONGtQeHlwL0h2TUpGZkd2d0UwbTdLWkwzT1N5ZGVaVTJ1Y0gzREVzQ3Vnb2RyaWp1c091dlJibjVLcjNNRk1PaXM5OFFRdlVFUURBSm1XdXZCSTh1eWd3VVhqQ2J1cjVCRzJ4Z2RnNUFJNCtaZ0dtTU1uajlGV0ZwQ3Flb01Zd0o0akRHK0xYQ1hzaU5XQUJ2U3pEeWs4aVgvclZlQzJ1Snd5bUkwOUxZZ0szaitQU21xbFRFT0g2NXVvY2tnYmxzYjZNNHNsR2F0aWx5cVlmODRKby9JWTRHN2gvTktWdTBjdFNEdFFqK3Y1MmprM2MrTGZMZGwyckRic2ZWL3Qxcm11T29vanZFdGdPZDVsRW9sZ2lBNEVBSGM3WGI1NG9zdmVPKzk5N2gwNmRKZENkWnV0MHVuMHlITHNvZFNkQjRFVWtxZWVlWVpQTTlqZVhtWk0yZk84TTQ3Ny9EKysrK3p1Ymw1Wk92ZGFjUDdsdzNOTG13MlliMmgrY0ZMa2pNTHdnYTM5OHQrUFdxWVhFamhWeXo1VzErR29HNC8wNGRndHkrdzQ1WVFvQVRSYnA5MzMxdmxiLzdtRXIvODFUVSsvV3pqbnV1WW1abmhlOS83SG4vMlozL0dqMzcwSTE1NjZTVk9uRGh4MTk4Y0ZQZXFBWnltNldEZUl3NXhYakk1T2NrcnI3ekNXMis5eFZ0dnZjV0xMNzdJMmJObkg2aU9NWVJXQVZ6S0ZjQ0RPTXdUY24wc3hHYWp4Sll0aUk0bmNjbk5uMjFGcjdFQytFZ3hKb0NmQUNoVnFnWGg3SVg2MUdzL201ejV6citxMUo3QjgrMEY0YkN0RC9ZZ3Q1Vks0bTJpN2dwYVcrOGF3WkJxRFlFcWtuSVdFcVloZmlaUm1iYkJ6RHUxelFWaWZhQ0tKWCtMYnMwSFV1R01xdW1LQnJEN2tSeDdMeFQ3RThERks3MmpWQTFTU1lKS2lCZjZlVjczWWV6ellYdUVCbUtCbC9pRWhIaDc5TDhIbTM4TXc0L0RaWXRjYWVUVXZ5VThhcFNZRjVPOE5IdWVWeGFmWWJwWHhXdHJ2RXprNnQrOEh1d0RiV0p4MzVuaEt5blFNcVZQbDVpKzNhZU9ubmJLcnFkcW1IZkVYSzYrbFZhQm15cE43RXU2RmRnTituelRXT096bGF1c2RMYkowSVI0ekFjVFhKeGI1cG1GSlJhb0VyaWFwdVlCYS84NisrZkFFQWV3dWQ1bjlWWURUWXp3RkJOQU1DQ0s3NVFWVVNSOWk0VHYzZElqTXd4OW9JV2dqY2hpR3hJVGVSS0ZXNHdqZnAzYTcxNzlJTisxMG9DSkZOSlVtZkptbVZTN2JHZnhIbDN0VVkyTUVsZS9XdUhoRVZLbWFpYW8rWFVxbFJDdjY4NGZWMnpVWmNrL2hOWHp2akM0NHFER3owanJta2hwMElhdzZ1RjVFaEhsU1hTTzhIdEM1cDlEN0wwQWlEenR5WTVuUGhOaGllbFNTRGtXZU5ya2lSTDNtN3ppZ3B3MnBwUEtoTmowU1VoenErZGhYWGdHcnpSeG10RnVhM3FlTzRkRzIvdW9NRW8rMnpaSno4TXJaSXE3RWNLdlFEQWhNVVlTWlFKZkNqd2o4SXl4aWdkcEJyV0Rod0hoNHZydXNLK0wzVDBuR3lYZ0p4N1ZzRWFWRWlIRDByc1pnbGdMVWdHZU1PQUorK0YrQVRQdEljeXdSb1E3RTVweG0rM2VPdkZjRDFPQ3pOaWhVN2o3NXRINUJZeDJzZnZEeUtZclk2Q3RxVTlNOGZMeTYyeW1xOXpjdnNHdVNZa1lLcFdMT1REQ2tLdXVoNWVONDd6dFVhbEI5VFhWV29YVDlRdWM3WjFsZnV0THRuVk1ueUVKZkZ1VFRFYVd0bzZ2b2ZkQXVWeW1YQzRQNnFFTkxjUUVVZ3BLcFJJek16UE16czVTclZieFBJOHN5d1paNVhFYzArdjFXRjFkNWVyVnEzUzczVHV1Szh0NnhQMDEwcVNCRjB6bmlWUEROQkdscW5qK05GS1ZKbzVyKzhjWVk0ekhBa2RjUWJDUW9QeFEvRytlcVNra2VCV29uY0RhOStRV2s3MXR5R0xnSGtUWEdFODVSQ0h6SzRXNEErME5DS2V0RlhScHlrcm16QkYzKytPR1UrS3BBTXF6VUd0QmQ5UFdRcjZQN2N3MHRQdXczYmJQVHhOSFBzYWpoZS83bE10bFNxWFNnUWpnVnF2Rnh4OS96Qi8vK0VkV1ZsYnUrbDFIdUFIM1ZWLzRRU0dsNVB6NTg1dzRjWUtabVJrbUp5ZXAxV3E4Ly83N3JLK3YzM1UrL2pEWWJrUHJhOE51R3hvZDZNZWFIend2T0hsQ1VuWEtncUxoMVpFaFQxUVdFcnl5ZFJ5b3pOdnhWUVYyN0QwTThsY0s4QlVrbXQyMU5oOS92TWJmL00yWC9MLytQNTl4NWRxZEV3TEE5cmY1K1huZWZQTk4vdXF2L29xZi9PUW5QUHZzczFTcjFZZHJWd0ZLcVVHU2JySGZPY3RuOXpnc2xNdGxGaGNYZWZubGwvbkJEMzdBbi8zWm4vSEtLNjh3UHovL1FNdnI5WHIwZWwxME55SnNLNnFwaDNRMHhaT0dGSHF4SllHejQ0dEpPQVZ3NzE1ZkhPUGhNQ2FBSDNQNHdlUmlwZmJNVzlXSkYvOURmZW9WS3JWbkNVdExDT0U4S280UVFpSk1SaHJ2RWtkcjZNd1N3STVtOVlBS01NMGtsV2dHMDY0Z0U0blM2ZjRCVENlSUN4Z3Fmb3MxK054djdrb0FGL1hIbzZxNjBRbFFnVkVXeGdiNFJaNUJuUml5YkxqNDRiVjlHSnExdnhSSUtRbktBVjZnb0djT29aWjd6alE0b2pVemlGaFNvYzZFbWliSVZ2T3RFWVYvUTVMM2JqQ0YvOTB2WGIzTUNnRnpUSENoZW9JTHBVVVdUSmxhS3ZCU0VGcnRyVEg3c0NSVlVZYnBHWXl2U1lXdHFXbjI3R214eDQ1N0tOVTZLUFg5cURGS2lMZ29mc0YyV1dsaWFlaEs2RlZncDlMankrMDEzcnY2SlRjNkcwUWtLQ1NUVkhoKzRSU3ZuRDdMYkZvbDdFQ1FpYjNINXI1ZzJRUWpOSmtuaU1xYUxkWG1KdXNvRkNWVFpWWmJBYjV5ek1OdEZyYWpoRy8rR0pCZFprOXd5QmlCbGdiaHhRalpSdEFFWXNnMEpwYTJ2a29xSUJiUU0vWVM3M3hHRDNpb2hiWUtZQ0pEMlovaTFQUkxMSW9XdDVvMzlvd0VSelZmY2RXMnJmN1hwMEtaQ2VwVUtlTm5JaWR6WEVGejV6ZHJmM2w0S0dST0NFM21HN3BCd3RwS2k2U1JzWEIya29sS0dibXA4ZExFam1ZRjYvdkhHNFgraEJ2M0xLbnBLcVFIZUpRSnFVUlZ3bTZaQUdYM3U3TitOdktBL2NsZEcreWdyajFER3FZa3BaZ2tTY25NMEFUYWxnUmc4RmN2VHRoYzY5Q3NSdFNGc202SmppaDkzTWF2dkx2WXhDZVhMS1JKeVVoRVNpUlRlc2JReWJ0cUpnMGxhZkF6ZzZmTjdjdUMyeFcvN1BOM3ZsNVhnMWRKalpRZTZBcXFQeVNBRFpCb1RUdE82WGtaZ1pSb1FhN29McTdiMWxuMXZCSkJXRVZGVnMzc1JxazJNUzJ4anE0M2tVR0dqc0ZvZ1JENWdvcUR3bjZINW02SDYwN2JXUGl0MEFZUFRTbnhtSXFuT0MxUGNUNVlaRGRhb1k4ZXlNS0tWemlSbDRJWUpHeVpBdUYrcE1nRERvbEFlUnF2NytFMWF5eWEwNXlybkdLamU0MldUZ2NsbUkrWmw3NHZuRDU5bXRkZWU0MnpaODh5UFQxTnBWS2hXcTNpK3o1Q1NEeFBVUzZYOXlXQVhWYTVJNEIvODV2ZjhLLy85Yi9tOHVYTGQxeWZ6bnIwZXRlSjQwMzhBZ0hzemkybHluaitKRktPQ2VBeHh2Z1d3ZFZFT1ZvMjdGQ1huTS9oL2JKVkhJR2RLR1NKdGZ3MStjUmhUQUoveStFa3JiRlZBZnRsQ01xMlRxNEtub0Q3aXZ1RVV3Qkx6OVlBTGs5RFVMTmtkNVljY0JtUXBORHBRN05qNkIyQ3FlVis4b1l4dnAzd2ZaOXF0VXE1WEQ0UVNkdHF0YmgwNlJLZmZ2b3AyOXZiZC8xdUVBU1VTcVVEMjBzZkZzcmxNaSs5OUJLMVdvMVRwMDV4N3R3NTNubm5IVDc4OEVQNi9hUHgwazFTYXdrZEo3RGRNdHphRlB6c0RYajluS0JTRjhPdzgxR3E5OTE0bzBwUW1iTUpXYVZKbTJRalhGbW5oNEFqZjZVQVk5amQ2ZkhPNzIvdzcvNzlGL3o2TjlmdlNmNUtLYmx3NFFJLyt0R1ArUG5QZjg3M3Z2Yzl6cDA3UjZsVWVyaDJqY0R6dkRzbU5ZeVN2dzlMQms5TVRQRGNjODhOaU44WFhuaUJjK2ZPTVRVMTlVRExhelFhWEw3OEZkZHZycEgwZGxudzFubkc2M1BTZjRLbVQ4WFFsYmJrYjV6bTR2UGpRWXF0L3p0V0FCOHh4Z1R3WXd6ZnI4MVY2cy85ZkdMNjdYOVRtM3lWU3ZVMG5qK1ZrNy9IQVR0aXBVbVRPTnEwZG5mc1ZRRFhsTWRTZVlGSk5ZZnMrY2pZbGp1OTdiVDFzWHhJZ0pVTkJ3d2p2M2RTNWpnTTNoK3Q4ZXZJMzJGYkR3cFhqMzIvVlkyK0xhWEFEeFRLazRpSG5nSGNQbjAzMmlBeW1LaE9NRGN6VDJubkcwUmFJRWdmZUUwQ2hjREhvNHhQaFlCNU5jSEY2ZE9jQ21hcGRnV2xSS09NQk8weHJDOTdHQ2pzU2M5ZXFMWGNXOGtZUkY2UDJTbUE5MzcyeEdDUDFiTWpmek9NeU1pa0lmV2hYNVowS29aVjArQ3p6YXQ4c25LVks2MDEydlJRQ0txVU9La1dlTFo4aHRQK1BMV1doK3htaU16Vi9iMmYycitGZG9rTUl6VVIwSWhUMW5XTFZYYndDSmhJcHVqRm1wcFJxQUY1NVJnYjkxd2tmZk1UMnhRVWhrTGNyZ1lVQnVNbEdOWEJFTnVQbmZRdEE1TmdpVjlYNS9KKzUyOG1MNm1jR3NwQmljWDZJalA5R241ejc0aHdWTERxWDRtSGg0ZWtIbFE1dTN5U3hha1pWQXdtTVFoekp6djZRMFRlSFl5QTFJT2VsN0llTmRuZDZoTk5lQ3hQaDlRQ2lVU2owdFNTbzRQUit3azR2d3lESkJtWE11TFUxeUUrVmNwTXlBbXFza3FReVFMeGZsQVZzTmc3SzNkNU9hRkJoeGxwSjdNMml5TlpTTzZkWHR4bmJXV0QzZGs1bG1zekNDVnlsWHRPS0Q4bUVScDNuZk5EUlpqNVNDVnhWdFlKS2Myb3oyYTN4MDRwSml5WHlHUktaUHI0Y1V5bEo2bWxGUUlDZXdjd1N2cTZvV0FmTW5Sd3ppZkQ3OG5BWGsrTkR2Q2lNaVVDRkxFMUE0aGpOblkyYUZRYTFNVWNSb2g4Yk4yN01RSUlTaFVDTTRsS2JJMXJnOTMxRVJEN2ZjUmtEeUZUOUs1TlNobDBvc0xRdGFldDk0dTdkQzBsREg1aUNGb2VpNXprZk8wYzErTjFkbzBlTUFQRlJaZ2g5Y3ZCMHJ3T0diWkNBSDVmSTZWZ2lsbE9oc3Q4MVY5aFE2ZjBHU2JCMzIyYWRwZ29sOHVETEhCbkIrWXl3OHZsTWhNVEU4elB6N093c01ETXpBeW5UcDNpL1BuenpNL1BVNnZWQ01PUVVxazBVQUVycFFhQmhYdloyU21sK0x1Lyt6dSsvdnByOUIzdWVvMUpTWklHV2RvQmlxa2V0b01KNmFPOEt0SXJUeDNpYmhsampERWVYN2c3WDJmaWZ5UkRwVEhXVmpaN2FBdm93Z0pObXBQQVZVc0NaeWtrdWRWdDNNclZSeklQUkkveHJZVEl5VkNNdFVQdXJFSjVFc296NElVOGRrbVBod0pqKzd5Uzl0d0k2NVlFMWtrK0dkTDdueFA1NU02azBJMmczWU5PZEt4QjlERytCZkE4anpBTUQyd0IzV3cydVhYckZpc3JLOFR4bmJNUmhCRE16TXh3NHNRSnBxZW5qNVVBQnFoV3E3ejQ0b3VjT0hHQ3hjVkZhclVhbnVmeDZhZWYwbXcyeWJMRFoySXpEVmMzREpzdDJHNUJsQnFTeFBEU0djVjBIWlFiNHR5OTdXSERhQkFLZ21yQitybWFFOE9Ic0VMaGxMOFpPK3RkL3ZqK0N2L3hiNy9rUC95bnk5eTRkWGNucDJxMXl2bno1L216UC9zei9zVy8rQmQ4Ly92ZloybHA2ZUhidEErY3FqME13ejM5YmxRQkxJUVZaejFJM3hSQ1VLbFVlTzY1NS9qRkwzN0JYLzdsWC9MZDczNzNnWW5mSkVuWTNOemswMDgvNVk5Ly9DT1h2NzVKSFBVNVdkL2t0Zmt0WGo5aE9ETXJxRmJFblYzTkhrT1l6Q1pIcE1mYlhrY0FqeFhBUjR3eEFmd1l3L09uVGxkcnovK2J5Wm0zS1ZmUDRYbVZZVER6R0NDUUdBUkp2RU8vdDRJeDhSNzliUURVaEdLMk5NR2tWOEZQd1V1TUpZRHRBdXlYSGVrYk1oVEV1WVNtZTVLK01OVDBPVXZWb3RIcmZSSVp3dkpjYWFUSkVsMTh1N0JpTVhoUFlKVmhRb0k4MUJTZW9ZekthS3RxbXBpdE1GZWRvdFFMb0wyM1ZmY0xTL05ZNitjQWp5b2w1dVUwNTJvbnVUQjFpZ1d2VHFsclM0Y0taLzE4YUI0VlEwYmZ3S0RER0dGeS9lOWVVa1VZYnU4TGovMDlwQ045TGNrNllMR2xKVnhSaHNTRHhGZTBaTVpHMW1RamFmSk5lNFgzcjF6aVJuZVRtQVFCVEtrYXA4TUZYcW8rd3ptNXhHU3JSRGtTZUJwN1hJeVR5UiswUHhSVnlCbVpoSjR4TkxLSXJhek5HaTBDUE9iVExyMDRJL1Y4QWdGaVVIeTNPTXZkeC90bXYvT2dRRVpxWWRBbXhSQ1RWek94NDFabUp4U0Q2ZzR4RDN5Y1ZXcFFxUjBOeWxKU2xtb3dNaHdsdGVtVzdSSXJxcUxDUW4yT3MyZVdtVk9UcU5VRWt4a0VCWVgvRWNOSWEzVWJ4WWFtN0hNcjNhR3pBdHJ6T0ZPZlJDRUp0VWFhRktTMEttRFh2c2NTdWVaM1pFeHdDVEVLYWZjOUpTWkxGU2FxSVVGSDV0R1ZCMVU0bXdIZm5FbERLak15a2VXNlgxUDR6ckFtY0QrTDJHMXUwcWsxTU5NeitYNkZZZkxFWWRWNmZraTRKZ2g3blFFR2RZd1ROT3VkSnBjMmJ5S3FBVHZsS2FwQlFwazJOUkxtL1NtVU9ZVm5KTkxzUXdBWE43bVlQNUppejIvbkh3eWc3SEJweThaNWhLSkdTVXpnbVUwTTBFKzZiR3g5d1c1Nml1VmdIaU1WUnVpQ000UjlGa0JRcmxHV1UzZ3RiMUNnMW8xZWlmVEl5b2JNYUdReEhjU01QTi92L3J2VFo4WFB0VTFPOFRKTkVBdm12Q1hPMVovam0rNFZkdnFySkNZanpYZVBHMldkYTdrYkxzeWU4ZlY0TG9ReUF6ODJsRUxEZERqTFluaUNLU1JWN0YxWU4yL3pVY1V2SnlZbXFGYXJURTVPY3VMRUNlYm01cWpWYW9OQVFCQUVBd0szWHE4ek56Zkg2ZE9uT1hmdUhNdkx5NGRhbzJ4aFlZR2xwU1ZLcGRKZGJPY0VVdm9Jc2YrY1NRaUo5RXA0L3NTQ1VxVmFsdlhiaDliQU1jWVk0M0dFdS9LNTROV1JoTTB5clluaWxDaEt5YlRCaDBPUWwrVDN2VUlNYXcrYS9NTGF1QUpSazRHTngrTXdweG5qRVNCUDlqVWFkSnlUd0p0UTNyRHNTRkRMeVZDWEpQd1VRUWhiQzdnOEE1Vlp5Q0tJdTNZN3hVaFdZWUVIejJKRHMydG9kQTI5NkhDYThwVHQyVEh1Z3YwSXNDS1VVb01reVhzUllWbVcwV3ExMk43ZXB0VzZPK0VYaGlHblRwM2krZWVmWjJscDZjaHJBTjhKMDlQVHZQNzY2MVFxRmVibjUvbkhmL3hIL3ZDSFAzRHQyclVqVzJlbkR4OWZNY1NwWnFNQnYzaE44TmF6Y082RXRMSHNva2JpVUNHc3UwQTRhZFcvMVhsN0xjWXdzS04vNEVXTHdaalViRVQ4N2c4MytiZi8vbk4rK2M3MWU1Sy9Nek16dlBUU1MvenNaei9qcHovOUthKzk5dHFoMWZ2ZEQ2NnVkUmlHZTFUdFdtdWlLQ0tLSXJUV1NDbnhQQS9QOCs2YkJDNlh5MXk0Y0lHZi92U24vTXQvK1M5NTlkVlhINWo4QmRqWTJPRFh2LzQxLy9BUC84QUhIM3pBK3VZdVdaWXhXVXI0WW02WFc4OGIvdUoxeFN2bkJkS1p0ejdPeVVEdStwVVorb2toeVI2eTNNajlJV1VvRDNxYzk5SVRqekVCL0poQ3lhQlVxVDkzS3F3c0U1WlA0UGwxZTA0KzdJWGdQaUNFeEJoREhHOFQ5VytoalI1UXI2NytiOFZJeW1sQW1IaTJaSjgyTnVUcUdmdWxNdGJ1ZVpTekhTWDk5aVgvbkZwdDlIRy9nWFViWFJVbWQ3OUlEVWs3US9mMVFGRm12elhVNFFqMjJpOEwxNXppTWg4SVErSjNvRkxMOTFsdHdtT3k1aE5lY2ViUGtxSUI5TUczMXY3U1dUK1g4Wm1teXJQMXM3eDI0bm5PVlJhWVNqeEtxVUdrSXJjWGZoQ0w0YnR2cGlIblJKVFZPR214bC93VjVQT1NQVHY0Y1Ewd21FS3pjb0xWcVdLbGU5WmswaEJKU0R4RHZ3UlJHVmE3RFQ2K2RwbXZvNXVzcGp0c2RCdjBpYTE2bERJWFowN3gyc0pGTG5xbldOSTE2cEhBVHd4Q2V5UEs3SVBzbDRJU09TZWpFeVhvK1JsTnY4dVczMlNMSmlFK2JkRWxsaW1ac01kR09kTFlDQ3loZlljTWpmMUlJTmVWQldoajBHbEdsbVZEVjNlUlUyd2FoRk1GUHVoUWxpdUFaV2J3TkhpcHdzdmtnQURlcnc3d1VFbC91d1N3K01uSWF2YTg2emJUMWEvMlVjeFg1amcxZlpxYXJxTVNnVEpZVmZ0eDlHUEhHZ2tna2FRTlNiOG4yRFp0TnRzZFpHUW96eWxFV2tNa2dwQU00ZGc0NHpGUXl6NVdHR0Y4OCtmaXZsZElBaFJsUE1wS0VuaTJMckRVZ29IOTgwSFBsVUVTaHowSHRJQU1UY3FvOWZQb1E1T1EwcWRQNGlmb2trWW5Dcm5ub3ZhbzltM2VocHhCRjBLQWhPNXVoK2IyTGtsays0QkdFNU95M3Q4a1MySTJkMjR4TDJ0TVNzTWtNZWRtYWdUVHp6R2xERlV0YlIyYjBldDFQbFNRTWxENEQxNlBXcnRyRUw1QmFvTkNVdlpxVkwwSi9HU2JGRTFpRWhyZEwrbVdYc1FFYnlDa0hPWitHZnNzUElQMG9GUXFVWk4xQXVVVjBsVWtLWnFlRG1qME5GMlpVaGZCN2RaZDk3cVVqbzV2ZC9wc2RKZm4yeTR5VzhPNDVNTlVkWUxUNFhPOE9MbE9rei9TNzYyUllPOXMzR1pwWWQweDdMTTRsQW9NOXdjRG1VQkdtakNBbWVvY3k5VXpuUERyM0VnN2RMSDVhTzd3SG1ic0l3eERubm5tR2I3em5lL3c0b3N2Y3VyVUtVNmRPald3YVhiS2htSzJ0K2Q1Z3l4eDN6OThONXhxdGNyVTFCVGxjdm1PQkxDVUlVRnBIcytmdFB0aVpGNXVNRWpwNC91VC81MVM1WDlEbnRJM3hoaGpQTFZ3Q3VCTy9qZ2FBamd6eEhGR0ZHVmtoMW1Zeldpci9CVllwZVBrYVp1eGFlc29RTklCblZtU2I2d0UvaFlqdjJuUEV1aHRRZk9HSlVlOXdOYVN2cTJNMEJPTzBWckExYVlsdjVPdVBSLzI4NXpLSjZWcEFxMGVkSHJXUm5PTU1lNEhidDZydGQ3WDdlRitGTUJKa3RCcXRlajFldmQwamdpQ2dMTm56L0xLSzYrd3RMUjBMRFdBNzRUSnlVbmVldXN0NXVibW1KeWNwRnd1OCs2NzczTHQyalU2bmM2UnJMUGRoL2UrTW13Mm9kWFR0UHVDYm1RNHN5Q28xYkN4YlhmUDk3QkRuYzVqYmM1cXZqcG54NW1nWnQvTEhrSXBBVGJvSFNqUWh2WjJqdzgrWE9VLy90MWwvdWJ2dnJvcitTdWxaRzV1anRkZmY1MmYvL3puL1BtZi96bXZ2ZllhNVhMNXdkdHlBQlRyV2hmN1haSWtkTHRkdXQwdVNaSU03di91bHdDV1VyS3dzTUFiYjd6QlQzN3lFOTUrKzIxcXRkb0R0OWNZdytycUtyLzYxYS80MjcvOVc2NWR1elpRcUFzaHVGSVJSSkhrbVNYSnErZXhxcFVEVmhCNHBERDJtdFdQclFyNG1BaGdnNDBnOWZQSEdFZUlNUUg4dUVKNkplVlYvNTNuMVJFeXlFKytJNjlDUHdLRE5obFoxaUZMYmZ5cXFNTU5nWm9NbVNvdFUvVm44Rk5RMHRnUFN0amVWY3EvREh0SjMvMDI0MERFci92OC9pRUFvUTFLQ0lKUTRmc0tHZDE3V1hZU0pwQ2l5SWs5YkpTMjhQdWNXd3dDUTBtQXA0cms3NE10MmN0VmNtVUM2cFNaWjVMbkpwZDRZWEdadWJoRTJEZDRXakN3Rno3S2lMTm5FQ29uV1hBYUxqRnNyRFJINzl2NzBIQ1p2bnR0bmhHYVZCaU1ENllzU1gxQk96TTBkY1MyYUhLcnVjMVhHeXQ4dVgyTmxXeUxMallOMk05SitmTVRDN3cyZDRFWEo4NnltTmFvOXd4aHFwR1pLcEMvOXpuNUZ0aTJZZFcvcGlycGVCRlh0MWU1M2xxblFZY3FJWEc1ajZtbDZNUmdFcEZ2MStnMml6MS9EcGEvWjEzdVBjc0FhMjBnVFRGR0R5SmdMaVp3YU1PWUZWa2pVb0hRSGpJVitMQ0hCSFlxTy9ZODIzUEx2akxzcFlhSDZzZ2krVHZhVlBkOUNjelBUSEp5Y1JZLzhVbTZHV1hjTGp2R2NkcmtpbVRoRTRvQUxReGJwa0cybmFJQ2hUOTdubEJWa0kyTVFPZFdmNmFZamZNNHdZejhWZnhiNU1sSEFqOG5nWDNBUXlPTnljZm1Zb2M4eURFWWtzQXVlcHNKVzZZNlk5U3JnTUU3S1lhVWpKU016TS9QZi9rNDdVdVhZdW9TT1NEdVJmU2FIYlJPQnA5bHBIUjFoTlpkK3NrbURRS20wQ3lncWFzbHV1VmxVbCtqWGUwZ1Y1dlczZndXRFMvandudXUyRzBSZVo2TU1QWVlsbFJBMlMvaHBSS01Kc01RbVQ2cDd0bkRLSVU5b2QzaERBU0VJQUlJU2g0bDZlRkpXY2duazJnODJqM0pqY3M3TEU4MHFJcDVoTW9sOHNZYy9MVGM3MUNPRGlZd2RNbDNyRzdPa2twcENNc0NyU1FMMVFWZW5YdU5ScmJDUm0rTnpxQzk5cEZvUTZRTm1lQVJFY0IyTzBScUNHS0JqandXeW1kNGVlbEhiRy8vZ2NidTlVRTFjK2NKOFNDam01U1NxYWtwbm4zMldWNTg4VVVXRnhlWm1wcml4SWtUUFBQTU01dytmWnFabVJrbUpoNXQyZHhXcThYR3hnWlJkR2ZKanVkUFVLNmNJd2puQWZZTnFBa1VVb1lJNlZlUHJMRmpqREhHNHdKMzVXdGpGY0JIa3EydHRTRk5EV21tQjZZbjl6WGx1ZnZTN1lLa1p3UFE5Wk81L1RQUXVBWngyNjVrVEFCL2V5RnNLaVltc3pXaXBXK0ppOUtVSllJUHBSOCtSbkFFc1BSdEhlQ2tEZTFWNkd3TUozSDdKUXBxU1BNQWVwd09wODVqakhFUXVOSWxMZ0Z5VkFFc2hDQU13NEZUenIxSXNEaU82ZmY3Sk1tOTJhY3dERGw1OGlUUFB2c3NNek16Tm9uNEVVSUl3Ymx6NXdCTENKODhlWkxmL3ZhM2ZQenh4L2VzWmZ5Z01BYXVyc012LzJUWWFSdHVic0VQWGhDOC9veGdka2JzSllFZmFrWDVBb0lhMUJhZ3RtVEhVK2xxSkQ3VXdxM3JXK0JCTytKUG42N3pQLzJITC9qN2Y3eHlUK1h2MHRJU2I3NzVKdi84bi85emZ2empIL1BjYzg4ZE9ma0xsZ0N1VkNxMzFRQjJDUXl0Vm9za1NhaFVLdmkrZjJEN2N3ZVgzUENkNzN4blVHdjZZYUMxWm50N202Ky8vcG9yVjY3Y1ZxTzQwVEZjWHhjMHUza3kvcVBMcFRnWUNuUEpLSVZlWk9zQUgrUDFxemlISHVNSU1TYUFIMWRJNlVtdmhGUWhUaXR5dks0Nnd1cWNzaDQ2R3laaU9QWHZnQUQyQXVZbVR6THB6K0kzRGNJMzlrT24zQmxHWjRlNDdiV2JRY3ZDODZpZUR3NGpLaW8wK0VwUW4vS3B4RDRxa2dXcTljNTNMa2NTazNXcnk0bGxLUTJlTUNoczdkNEgwZWNOMWIrS1VsNzNkMDVNY01GZjVrSjFrUVZWcGhxRGlnMGljOWJQaDIwSDY4alNmRy82QUJvdG5aN09mU3VuVndTSTBWcVBqd3pGUHVCVXY0NUlHWksrUm1xcmFBNGdLUW5hV1VvcjZkSVZHYnR4eEViVVlpVmI0ZkxPZGE3dXJOTW1Jc0hhbVZZSW1mZW1lYWEreEV2eko3bFlXV1l4cWxDTERINXNjdkxYMzBlbGVSLzdTQmlyL3BVUWxXQTc2WEo1NVJiWFcrdjBpWkVZMGtvRWt3bW1ZVERkd3ZFWHQ3M1krMmZ4YlpldkJhQmNqU003SzdZNlNiZEg4ejVoSHJhck9RSktJSXhHYVlVbmFwUk5qUXFTRUoyVGdwQWg4ajB1QnYvYjg4T2Q4KzQ5UjVkWjZ0ZHlXTm1BRU55dktxZXJvWnFKR0NNU0NBVTZWYVJwaGhFR01VZ1M0RDRVcVE4R1ljQ1RnakQwS0hzK3lpaDZKT3p1ckdNU1NiMWNvMVJaWmpMMFVCb1VHWU9hYjRlcCtuOW9GT1dsNXJaY0lhY0E5bEQ0ZUhnb1ZDS1JDU2p0dmxGOHZyLzFHbXdkb0NReUpKRW0wNk5IWHVUZk16bDFtcEdnU2JIS1lTM2NGZXhSajJYNVhhbHdSYmZ0ZWVlRkhtSFZSN1UxVXFjb1VoUXhBbzNDdWxEb3ZPY0xRSmtKVkFyQ0UvYWtMWktkYWVGMW5QOTlFSVdEc2RkZ1pTQ1FrdENUS0NHR3B6V1FTWUZSZG15MUo2QVpUZ2s4RUo0VlkzZ0dsSEJIUlpMaFlRaG85elhYcjZ4ejRlUTJweGZuRWZvQS9lRnVYeG50Vmk2QnhXMnoyd2R1UDlqbW9JVEIrLyt6OTJkUGxpVDVmUy8yY1kvdHJMbnZ0WFpWOWZReTB6T1lGWnpCNE9KZURFaHdBRFBBd0d2aWdBU3YwV1EwNDh0OWtaa2U5U2I5QVhxU21VeFh1blpGbzZpSHl3ZFJrb25BSFpBRFlJQUJnZTdadW1lNnU3cjJyTnpQdnNicTducUlpSE1pc3pLcmE4bXF6cDdPYjFuVU9YbE9uQWdQRDNlUENQLyt2dDhmQ1hYSDRkTGNSVzVVYjNDdmM1Kys2cEFZTTVrM0dNY2hnMkJFNkdxTUZLbUlYYnpJRWVONENKV204QkREbUxvN3p4dEx2OEYrTXVCQmQ0OE9NV0hoa0o5RzQ3TzR1TWpHeGdZYkd4dGN2bnlaYjN6akczenJXOS9pMnJWcmxFcWxGM1k4ejRJb2lyaDU4eVlmZmZRUncrSHhvbDBoTE56U0txWFNCV3g3QnEwZnphWDJiS0Y3NXpqSE9UN0Z5RzhaUTE2d2ZaMHhHUy8xSW00MWpKbVN2cVZaNEVyNldSS0IyWUVreUNhdEpjOXZQWDJPVHg4RUNDdHRnSEVBZmh0Rys2azFzbE5LU1dBcHM5Yi9LK0RnbUUrOFNUdk55ZW5OZ2p1VEhxZk95YlFqTEhBMllhUk4ra3hoU05NSW4rTWNUNE5jQVh4c2dLRVF1SzVMcFZLaFhDNS9yRW8zejV2NkpHVHU3T3dzcTZ1cnJLNnVucWw3OUN0WHJyQ3dzTUR5OGpKemMzTjRuc2RQZi9wVE9wME9TZkppSlBiMzkxTWw4RUZYMHhrS29sanlsUnV3c0NDd2MrMU1maTErcHV1eEtWZy9yME50TlIxSGpYNis2N3NnSFllQmNCeXhjNi9EWC96MUEvN3NQOTNsZzQ5YUovN01zaXhXVjFmNTJ0ZSt4dS84enUvd25lOThoOWRlZSsybDVZSE9VLzBjYmROeEhETWFqUmdPaDVNZ2hsS3BORWtQOUtUSVhhZSsvT1V2YytIQ2hWTXBjeGlHajFYV1I3RWhpQXhoTFBBK0pmbC9JVlgrK25FYXdQUVMrYWVZY3dMNHBlQ2NBRDZqRUVoTFNoY3BYYVN3U2ZQeHZyeVJRd2lKMFFseDNEMmsvczBKNEJKUUJXYUZ6YXhUcHVLNldFNkVrTWRjQlkvTzVCLzk3bGpTMXlwOC90eEhreTVHSUhSNjBTNVpFcyt5Y0xDd0RoRkN4MHk4NXVLaG5MeWFLUHllZFVSODlBWXNGVHdKTENtUlFoNnlwbjdTZlJXdG4xMXNLbmpNVU9haXM4U2JhOWU1VWxxbjFyY29CUVpwWktvdzFhZHMvWndmakVocEVpMU15bU1LalpaNVRrMmRuVm1KWlNSQ2k0TDQ5Q2daL1RMRGlYTlZjcUhCeXR6cVdhV1d5cFpHQ1VNa0lSQ2dxb0pnTm1iN29NbjlyWDFhWWtoTERXbEVmVnFtUXlmdU04cFV2ellXVlNwY1lKazNsNjd5K1kwclhMTG5XWXc4S2lHNHNVRnFDNVFEeGdGOTFNajQ0NUNSckxrdHRRV1JCYTB3Wkd2VVl5L3UwR1ZBZ3NaRkV6cysyZ3RUKzFIRXRQRVhyVjVQZWxiSUJZWjVuazhEMmdYalpjV1dHaU1LSTVaVUNCa2pqT2E1THp1VFUyTndoRVBWWFdEZVhtS2VNbFZHbWZkZTZsVmdzcDZkazc0Vzh0Q1M5L3VVTXRNa0tDSVVNUWx4UnZBZDFnU0x5YjErakdMcm9NRk44WkNOYTh2TTFSY0pRb0duREs1UldlVzRXWGtGcHkvdFN3bGNvU1dXMXRoS1lHc2JDNHVZaEI0akhnd1BxTjYvajdQaGNxT3lnbU1zUEY5aG1lbnZwN21LUDZuSlBETTVuT0lBYkxSQUd6R2Rmd0VzWkRhK09aUXA0OFl1TXBBWnlWZHN2Sm9uUDU3OCttQlFrU1lZeElTRE9NM25PZ2tibUpZMEowbGpkTnBXakNIV0FnVklxYkZNUGcvOHNpeTJpK05EenRMbVNYaDFwcjRYVkdiS3pNb3E1Y2pnQlNGbFlpd2lMQXdsb0o0dDg4QWlzT1RVbVhmbWNiV0RpUFEwZDNjdzJmUlRQL2lLYkVpVkpyVkpkc1MwbHZLelptd0RKWTJ4REZxbVpIRitUY0ZLcjNPV1piQnRnWlIyOW5zTG5aSEFZelFkaGd4dEgxUFNtTVNhcG1rckRxZEhMelBIdmMvL25nNFNVN0kzVi93VzZ5RS9IeHBFSUhCTVNtUzdWb1YxK3pWZW05MmoyWHVIY1pKN1FjQXdIdEFaN3hQVmZZeVZqWjh2SFdtUWdJd0ZUbVFveHphejBSd1h1TUJGZTRWV3NzTVlNK0c2OWZSWGo4V3JyNzdLNy8zZTcvSE5iMzZUUzVjdXNiYTJ4c0xDd25QbFczcVJ1SDM3TmovNjBZL1kyOXM3Y1IzYm5hZGN1WUxqemhhVWNNZlhSQm9tWkQ1Rmovem5PTWM1bmdPVFZQUzhvQWNYWTFJVnNENG1KK1RwN1NTN2Y3S3lpZW1aaXluWkpZREJOc1IrOXF4eFBvWDAyWVpKQXdKR1RmQzJ3UzZuQklaZFNwK1pQK2xZeUZORnBveDNLbWxnaERlYjlna1ZwLzFGV0pQVjhrVnBTTEk0WU5jK2JLSnpqbk04Q1I1SDJENU5EbURYZGFsV3F4OUw2RmFyVlRZMk5saGJXL3ZFM1hpT1FnakJ6TXdNYjczMUZ1VnltYm01T1phV2xuajc3YmU1ZGV2V0M5bW5JYlZ4LzhVRFF4QkJiNmhwOUFUZmVGUHcyb2FBa3BnR1JEOU4zODZ2c2RJQnB3YVZKYWl1cEdPTDVhWkIrcytqbHBBU1BBdUNoTHQzMnZ6d0wrN3huLy95UHJmdXRFKzhiNUJTY3ZIaVJiN3lsYS93dTcvN3UzejcyOS9teG8wYkw0MzhoYlJOSDVjRE9Fa1NnaURBOS8wSkFad1R4VTlEQUR1T004bHZYYTArdnpuVDQ0STBjb1N4b1RzMHRBYUc5UXBwbXJpWE9iWDl0RWludzRnVmhKRWhTbDZxQURFRStweW5UWHJoT0w5N1A2TVFRdHBTT0FqaElGNjYzWkpBV2g1YWhVUkJnemp1WnArbXRHeE9BTS9qc21BdFU2YU1ZMUppVmVRMmk0K2JGSjU4bnQ4cDU0U3ZuUzJuUFhFK3ZTT1hncFFvR1ZzNG9ZMkRoVTFSQlh6eUtEZmhTUTRmeFBPWHpSd21uNHVaaDUrR01oSUY4cmVFUXgyUEpXcGNsa3ZjV0ZwbHphdFQ2bWlzQkZKV05yTVlmcXE5UENrS0tqNlo3a1lKZzhvVXdBSW9VYUtzcTlpSmxjcTVQbkhrQkdybVl5cFV5bFlJaFJacGZsOWRFc1FseVZBcWVpYWhxWWM4M052aGZtT0huVzZMRGtONmpCa1FFSkRtN3BDWlhXMmRFcGV0RmQ1YStSeWZYNzNDSlcrTytjakdDdzEyWkpBcVB5ZE9Tc3dEejZabXpOUzNqaUFxRy9ZR0hlNGRiTkZLZW93SlVTUkVhQkl4UmxrUlNoaE1rUUErRXN4ODZIM0tmRTZYbkFUSkZBazZkNjJSWmlJYVRFV3dKbVY5MURIYmZGcGs1UlRDNE5nV1ZhL0VuRk5oSHBkWlJ2aFpqYnZZR095TTZKV1psNERFeHNMR3dzWEd4Y0hGUmtwQkxCVkRIVERRUGlOQy9FenFHQlhhTXRrN2pTRWlZUy9vOE11OU95emFGZXpsMTdoWVg2RGtTNFN2Y0pMTWhGb2J3SDYrbS9tVEtnRUxUSUpJREZZRTlYS051WVY1clA0ZVVaTFFaTUROOWlZejlSSnpjeVZLY2hiTENHU2dFU1poRXRKenFtVjdGaFJadVNJTFhQeFVaT2RSVUxITExOU1dxWmRtVTZGcllqaWNaUDVwajBjZ2pNRkVtbVFjbzVJNHRkWEdMbHdmcGtYU3BCYlFJUW1qS0dFY0dHSURqaVE5MzhJVVFpWmZWTjNtMjgrZlBITW1NbjhhelRwYmRtNWR6NktxQkRVcnBNWUFRWVFDeXNBY0Z2TlV1VFIza1V0ekYxaUlYZGJ0Uzh5cmk1UVNHK2tyR0RNbFA1OGpmemVtY0M4aHBpRmUrUzJEY0RTaXBGSlhDRlg0Z214NEpsWFhXcGJFRWlWRWR0OWdFQ1NrV2E0REZMR25VZ0o0elBGTjRuRi9ILzB1SjM1ejhqdFgvajd1c3FYQVNzQU9OTFlsV0sxZjVNYnNHOXp1M2FUSk5MZXNieExHcG9QeFJnZ3JRVXN3SXJlb2Y4bEl3RTRNVHFoeGhvSWxzY0NseWdvUGh3MDZPaUlrZDFkNC9LSFg2M1crOWExdjhRZC84QWY4eG0vOEJqZHUzRGlWaCswWGpiZmZmcHMvKzdNL285ZnJuYmlPVjFxalVuOFZ5NjV4TXJlYlhraU5TY0RvRnlOTk9NYzV6bkhXa0lkRlBtZml2c2NqdHdOOXNWY0lrK1VubEtuMTdlU3pKTFhBVmRGMEV2dGNDZnpaZ3hDWlRTa1E5bUN3aythTzltYkE5dEx2ejhKai9ha2h1NmUzTWl2bzZoSWtQdWh1ZXM4dlRYck1XWldvR0xvamFBMVNHMmpYQnRzNnp3VjhqcWZEU2NSU2JoR2RLeUEvVHRsYktwVllYRnhrYlcyTnViazVCb1BCSTdtRlBjL2o2dFdyZlBHTFgrVFNwVXRQUmF5OVROVHJkZDU2NnkzbTV1WllYRnlrVXFrQThQRGhRNExneGFRT0hRWHd5MDFEWjJCb0RRVGpTR0lTd1pWMUtMczhHc244Y1REWnRkV3BwTVJ2YlIxSzg5T3hjK0ttOTR5UUFxUmtOSXg0NzJlNy9NZnYzK0ZuNyswVHhjY1hUa3JKeHNZRzMvakdOL2p0My81dGZ1dTNmb3NiTjI2ODlEWWdoRGcyQjdCU2lpaUtDTU53a21PM1ZDcE5jZ0UvS1l3eGgvSUo1d0VVendvcEpiWnRQN2Flb2dUMk80YUhCNGE1cXFCU2dzeHk3Y3hlSXcxcDhGS1lwSzh2cVppR2RGYTV3M2tPNEJlT3N6bTZud09CWlV2cEltVHVwd3d2dmdzS2hMQkFTRlF5WkR5OFM3L3pVMEovNXhCTjY1Qk9HbCtZWGVicThodFVyRG1JRFhiUngvRW9BV3dPNytkUjRqZTNlajVsTW5MQzJvaU0zelBZeHFLa3E1UjBaYUlBdGdxa2EvR25rK1ZVbjJXT2tCMG1EYmM1bnJyNCtMckl5Wkdjc0NqaFVNTmprVHJYM1F1OE1YK0pEYmRHWFlPclNWazZuZGY1YVpPL2hWb1RLUW1ZS0Vta0JZbk85YitwTG5PdU5Ndkt3aEt1N2FHVkxoQW1FeXJnRk10MUFnUk1yOEtGL0w2Wjh0ZElnN1lGc1NzSVhjRlFSblQwbUlONFJGT1BlTkRiNThQZE8reEhMUUppQW1LaWpPWVdwTG1ZSzNpc3VRdGNjaGQ1dFhLSnQ5YXZzK0hNVWgxb3ZGamhKQktoTTlXdnNRcGszTk1jZjM3WHFVQWtHS0VKYmNIWWpkbnpHMnkydCtqUUp5QkNFeEtUa0JpZnhNUnBydE9UbEhGRlhpa1hGK1lrU0c0Rm0vOG1ad1VFRTB2Y3pDZ3U2ME5tSWpoOUxnakFCZUdDN1VEWmdSa0JDd2lXZ0FTWE1oVWlYQXdXRmhZT0RoVlJvdWFWcWJnT3JyRnhsWU9ueTFTY01tN1pJWFlTZG9kdEh2VDIyS2VOeUJ4SVVySnYycTQxbWdSTlFNd0FuODF3ajcrN0o5R0JRYTIvRHU0OGM4YUNVR1BIdWVvNVUwdWNadTdkWEZVc0JDWTJXQklXRm1kWXF5eFJ1dTBTSjRxSUJFMlREMGN1cy8weXBicUxVNjRoRXBXcWxGVWVaWG9XYndYU0Jqa2xmOU1BRnd0SnpTdXpjWG1aeGRJczFnaU1TdnZiWkxCK2h2QkthUXcyVUhFY1ptU1ppbllwNCtEakVFOWFRTHBOalNZbVlVeElML0RwRHdNV3BVMVprbzBoMlhMcTl2cHd1RlBtc2xURjRZNWFPSFlwVTB2eW9Jdm9QNlFlN3JGQkJFNFpSM3JNeW5rV1dXREJMUERLM090Y1hubVZTbERHR1VoS1E0a2JHV1NvMDM3L3JBbGdDeVdIN0p3YWNTanRlRjV5SEkxd0ZTSXBudFBDNFppTUFKWVdnaW9pemJ5TnlleTRKOHBzb1Vna3FNeXBVajZ1MngzOUxxL2luRXRQU0k4LzVDbHlQaG1FRXRpaHhuTUVzNmJLaGRKbFhwMTdsVTUveUdZMG10b3EyeUdpTWdaaXRQZ0U0ekVNeUFTY0VGeExzbGhhNXVMTUJvditSK3pxYUNJQVA4a0cycklzVmxaVytJM2YrQTMrNUUvK2hPOSs5N3Q0bnZmU0QrTnBrU1FKdi9qRkwvais5Ny9QTDM3eGk4ZXNLU2hWTG1ZRWNCVmpUdTRReG1pMEN0QTZHcjJRUXAvakhPYzRhOGd0b1BPcjVRdkNORUQ0eFVKbkYwODNKYjNNbFNrcFBOaE5DVEFoT1ZjQ2Z4WWgwbk52VEtvSUg3ZlN2TGlWcFZRQmJMblQ3OC9xTFBkVElUdUduQUN1TEtmMjEyRTNKWE9rVEhPU1NDQ0dadDl3WjhmdzBaYWgwVXZ2WlVzT0pEcFBsWFNPY3p3ZWswQ2ZZOXdlcEpTNHJqc2h5ejZPQUJaQ3NMaTR5T2MrOXprKy8vblBjL2Z1WGZyOS9rUk42VGdPNit2cmZPTWIzK0RiMy80MjE2OWZQN01FTUtSV3dhKzg4c3BFMmJ5MHRNU1BmdlFqM24zM1hicmQ3Z3ZaWjZKZ3N3bXhobUVBQjEzNDloZmdyYXVHcFhuU2FSVE5FMHdZWjRvSllhVUJNN01YWVdZRHZDd2Y3ZlBJTFFWWjhJMUJoUWtIalJFZmZkVGkzVjhlMEdpT2ovMkpsSksxdFRXKzlyV3Y4WS8vOFQvbVc5LzYxaWQ2L211MUdwVks1VmdDT0lxaUNRRXNwWHhrdlk5REdJWjg4TUVIL1BtZi96bVhMMTltZFhXVml4Y3Zzcnk4L016bC9iaStGMFJwRHVtN2U0YUxpNEt5bDU3Nnh3cmxQaW5rdEFRcGNSMUdFTVhQMXlTZkVpSFFmV2w3K3d6ajdJN3VuM0VJcEoyT0VDOXJKbkE2QTVva1E0YmRuOUUrK0FIOTdydEV3VjVHMXdvY0JDNmFDbkI1NHpJM3JyekpUS2VHN0NSSWJRNWJRajVDQUI5SC9Fb081L2w5RWNkRmVrSFdBcFRDODJ6bTVtYVpDZXU0dzZsQ2NLb0NUaWY2ODM5YWErSllvNjJqS3JYQzlwOXFGTTkvTTFVNmk0d3d6SzJmRCtjbFR0K2ZGTzh0TWdMYlFWTENvWXJIUERVdXNzcVhWbC9saXhldXM1aFVjTVlhUjRuTStqa25vMTRBQ3A2dFdzSndxT2xFQ1VHYzA3OGFpV1I1WTVZTGx4ZXBqQngwWHgrNWFYb1JWNXZDTmdVWlNaTVRLSG5PVmcweVBkZUpnRkJDWkVOWWdXRWxZTE96ejYzdGJUYjlGZzNUcHhsM2FVUWRSb1RrQnRjU2dZZE5HWThhTGhmY1piNjQvamsrTjMrUkM5WXNLNlpHYlNUd0lvR2xSR2I1ZlBTY1BHbS96NlZ4ZWZsamtBbktNdmpDMEZZamRsV0hBM3IwR09NVEFuNUtVK3NBcmJKY3R5S0w0cy95OUU2cUtsZTZGWmVFSXh6VDRadGRuUkgvU3BncEhTVjBxdWpMSlh6UEF4dndETklGeHphVWJNT2M1YkRPREQ2Q0doWEdWSW54SUtNTVBVcXMxSmJaV0Y5bWFiNkVwMjNFME1hSnk1U2RNbDdOSTNJVmQxdTdWTldIeU9HMEV2S3dCVFZwdlFhVnFUOHRJcG9Nc2ZRZVpoL0NVQkZ2dk1IVjhnS3pDS3JDNE1ZSlVtV01rbkhTYzN4YWVZR05TSU1HdE1EV01GdXpXS3lVcUd6YW1CR0V4RVJFZk5UZHhsVWVsWXR6dU9VU2l5N1lSaU56bXlHUnlmU2ZnVGg5ZnVSM25JL3VOMDA3a0Z0M3B6ZjVOaGExa3N2YWVwazU0U0FIU2Zvc1pmSWtCVTlUL3V3M1dpQU5sRzNKK3V3OHIrZ05XcjBCZmhKTnpqdUVKQ2dFQW8xSjFiLzRkS00rM1hDRVh5NVRzeXdzbGF1cnhmUzZON24rUFN1S3dUSHF5REtoVHNsenIxUFluUkFTU3lyTXFJSGR1OHVxNmpGZldtSnU5blZtU3F2TTJCdk1zRUlsS1RNamF0UmFGZHpJd2drMGRxQVFrVUVrZ0hyV2RwRVZKRXM1cjdNWUY2TUZSazBKOHJTSDJHakx3cmdHRXh3SktNc2dTZE1scFBiUEZTUVZCREdHT0xQbWpna0o4T09BY1JnVEdSZExadTI2R0oxZFBCM0Y5N21KWjVIdFBJWlhmeUlva0NHNGppRWVHZVptVi9pMXE5K2tzejlrLytIUEpnUndMQTNHaWRPUlJWcE1tdkpMbnlnMHlJeTBkaDFZckMxenNYS1ZaYnZLVER3aUlCV0M1ODdYUjIvejF0ZlgrZTUzdjh1Ly9KZi9raTkvK2N1ZkN2SVhZR2RuaDMvemIvNE4zLy8rOXgrN251c3RVYWxlcDF5K21Mbmt4TWV2S0VEckdCVVAvbnV0L083cGwvZ2M1empIR2NXQTFMN3VoV2o5dERFb3BWRkt2M2c3MlFsNUoxS1N0N0k0L1U3Rk1EbzRWd0ovcHBIZlY2azBHTUJ2d25BL3RZSXVMNlJrS2ZyWWUvdFBIVXgyTXlidGxMU3BMc0NvRHI2VHF1SVZKQW5Fc2FFN2dyczdobC9jTjd5L3FkbHRHOEk0NVlqUHU4ZzVuZ1luNWUwOVNnQS9DV1puWjNuOTlkZlozZDFGYTgzVzFoWkJFR0RiTnRWcWxUZmZmSk5mLy9WZjU2dGYvU3JyNit0UGxDLzRrOGJHeGdZek16TXNMeTh6UHorUDR6ajgvT2MvcDlQcFRJakMwOFplR3pvajJPdENkMlR3QThPWFhwR3N6RXNjejZSNWk0eEo1NXdmR2ZweWdZd0ZUaG5LaTZuNnQ3S1lCczNvNXl4ekh1MnNES05Cd0lPSFBUYTMrM1M2eHdzcXBaUXNMeS96NVM5L21lOTg1enY4NW0vK0p0ZXVYWHNxVXZXMGtTdDdYZGVkZkpZa0NiN3Y0L3Yrb1h6UGVSN2dKMFVRQlB6MHB6OWxQQjV6OWVwVnJsKy96dXV2djg2MWE5ZFlXVm1oVnFzOVlqLzljZmk0M05waERMdHQyRHd3dEM3RCtoSzhkR1BYcDRWSmN3QUhVZnI2a2xJWEdOSlpsKzVMMmR0bkhPY0U4Qm1GTVNyUktrVHJDSVBLRkhvdlluTGVBQlpTcHZyZDBOK2oxM21iVHVPdkdQYmVKWTY2UUU3WjVpUWpWUEdZbFN2TU9zdVVjYkIwY3NKa3BTa29zb3BxMzV6MGZWbDVFck15YUhBY3lVek5vemJ3TW92UFZBVmN6UFdZWDZRTkVHdUZQdzRJWlF4Q3BqZndreWlyNXprbk9YbDN0S1JGRStqSDE4NjBadk84dnk0MVBGWmtqVmRuMS9qYy9BYXI5aXpWRVZpQnpzaWlqR2g4YmxMaXBHUEtsSHUyUU51Ry9ZTVc5MXM3alB6eDVMZ3NKUFU1bC9sbER6ZVNDSldiQlQvSlVUOEhSRUhwSzNPVlhrcjhhalNKQUZ5QkxrbENWekFRRWMwb1pHL1laNnV6dy8zZU5nOWFCK3pySGwxRytBU1o0amNYcGxvNFNLcVV1TUFTTjliWGVHMzVFdGU5eTZ4YmM4d3BTV2xrc0VPTk5jbkRuT1crZmlwU3NFZ0lUWlcveUJnak5ZbTBHSW1ZdGg3UU5GMDZEQmxsdHRRMklRcUJTa0pVWkthNXJZdWJ6c25lM013dVY4R2RSRWdjS2ZiUk9CQWplRFRkN05OMkhTZGJTdWtpYklQVUNqZVJyQzVkNUlzejMrU0NTQmdLajloeVVkZ0lZU0dVeFBJOVpzUWNDL1VaWmowSFY2ZDVZNjNFeHJJY2hMU0pKQ3lzbHZGc1RmalJpQ0FLVWFSV3Z5cWpmZk5zd0FwRFRJS2Z0V2VKUUNXYXBHVkloQ0ZZdThhcjlTV2tWMGFNRFhhUVlKRTlFQnl5WEg2ZWRwNFRwNm4rM3pZS0V3dEtzVU1scXVMaE1TQkk2ZjRrNFZaM216a3hSLzJDUjZXMmhLY0ZicUtRVWt6SjN4Y1ZGUEpVeDVRUHJ3WXBUQ0VvSnMySzdtRGpDWnVLSTBtZnRjUzBrVDNEdm5LVnJsQXBBYnd4TTBOWXZVcFVFdWlHalk0ZVprRXJBai9UVktkZEpGVUFENnd4Zmlra3FrckMwSUk0d1pOSnVuV2Q5d0RyR2NmYnZJTVVpZDZrOEhleGx4VzJYUnhDdGNiR1VLMTRYRmk1UW0xK0Zzd3lGZWNWcXRZOFpXWXA2eXFPa0ZoK2doVWtXSkhDVWdhWjkvc25yc3RwbFU0K3p1SWRsQTJ4bXdiVXhFSVFHNWRZZTJoa3dXQ2doSlp1bGpmKzBXbzRIQkpsSXlraDhVaDErakVhUlVKSXdJamVzRXUzMDJkZWxDaEorU2p4ZS9RMUQzWUptVG9jUkU5eTdCOEREWllDR1NqS2RZLzErZ2JML1VXY1IzWnRVSmowL3VKbDNSYWRVRjRaYWR4WVlGU0ZCYkhDaHIzS1E3b01pWENaQ3FHUGN1S2YrOXpuK081M3Y4dTN2dld0VDhYa0VVQWN4OXk1YzRlLytadS80ZURnNE1UMXBGV2hQdmNsYWpOdklPMUtkdUFuWE1DTVFpc2ZwVVpkclpNWFFnU2Q0eHpuT0pQb1pjc0owU0hQQjZVTVFaamdCd2txeVFPL1hzU2Vpc2lVd0ZZcG5haFdTYXI2Uk1Pd0FUbzZWd0ovWnBFUi96b0J2d1A5TFhDcTROWlNPMU9Za3FlZlprd0MyMjF3SzFDWmhkb2NCQlZJWW5vanczNVgwK2hDcXc4UG00YWJXNGF0cHFIVlR4V0RjZktyd1lXZjQrWEFzaXdzeThJWWd4RGlrQXBZQ0lIak9MaXUrOFFXdHBWS2hZc1hML0xxcTYvU2FyVlFTdUg3UHBWS2hhV2xKZDU2NnkzZWZQTk5MbDY4ZUtiVnYwVUlJU2FXMExadFU2L1hXVjFkNVoxMzN1SGV2WHNUaGZOcHdnQkJhSGovUVJyYzBoNUlIclpzdnZxcXplY3VLbVptb3RTcUtnYlVFUkpZcTNTOHRFdXBXMEp0RmNwejZkK1RyVDhIaEFCTG9xT1lkbXZNZzgwZXUvdERndUI0WXJsZXIvUEdHMi93bmU5OGg5LzZyZC9pNnRXcm55ajVDMm03TDVmTGg5SUdoV0hJY0Roa09Cd2VPcWVsVW9sU3FZVGpPRTkwcnBNa1lXZG5oOEZnd1AzNzkvbnd3dy81MmM5K3hzYkdCcGN2WCtiYXRXdGN2MzZkSzFldVRLekZQdzYyYmVNNHppTjlORWVVcEk0UU8yMUJiNXhkQXo3Slovd25nREZwdWYwb3RZRitpYm5yWTlMNzUzTzhZSHc2UnZqUElKUU9lMUhZSkFyMlNPTExPTkpOY3dHYm8xTnV6dzRoSkVJNEdEUngxQ0lJOXVoM2ZrYm40RDh6SE56RTZIUXd6UWtPT3lPMzZ0Smp4Vm1sR2kxaVdqWjJtR2JnTzh6NG1Na3ZweXJmUE1kdlVXbjJFa2JBNG02TXdCYmdlZUE1TWlOL0JTZXBmdzJHT0lrWkQ4ZUVkb2l4eXFkWTVDUDZtVU4vVGt2ek9PUzJxQzRXWlZ6cWVDd3p6L1hLUmQ1Y3ZjU0dNNFBYMDdoUnFoTk95VitMRjJOTFNxYndUSlcxd3BKb1c5RnF0TmpaMjJKTVRnQ25pajViZzZVMGxqYnAwVTRDQlU2cFBLTHdQaWRLWlU2V0dwQWFJelJHR0xSRFN2cmFNRlNLRVJGOTVYT2crbXdOdTl4cjdYRzcrNENHYmpNaVlraVlHU2xuVmlRSVBDeXFlQ3piZFM2VlZybmhYdUtMRzFlNXRySk12VlBDNnd0S3l1QXBNYlhobnVSaDVpbU9QU2Q5aTc3TTJTSTBTb0txV2ZqdWlPM2VQanZCQVgzR0dYa1ZJMUJwalNRS0U1bEpHa09qVXdFeElWTVNKQ2QvbjZMYTg2WmdIbG1lWWR3cXhvMWt4QzhaWDQ0QUVXdGNKTXNMbDVoZld5T1NGckdRcWRDV05DcFB4QUl6dEJCRGlRZ0Zkc3RnbVV4dGJ3QVVhcXdJYlVGNXVZcFl2a1M3MldIVTlJa1RUWlNkNTFUOXF6UFNJNldESTJKUzlYNDZuaG16UzlKSUNNV1lXRjduZW1tTkZhOUt6VWhLa1VZbWNhRkNualhQODlFS1NoZkxRTlRYT01wanRiTEVRckpQTSt4bEttREp2dW55UWZzMkM1VXk4OVVTVHFtTzFBSW5WS2xpVldmbE9OVisrT3lRMmJ6U2RNeElHNE9EalpOWTBKZGdaZmZSaDZJTG5nSzVqVFlXS0lVYmFlWkxOcUsyQ0phSFl6bDRUYmc1RmtpNjJFaDg0cXdIR253aTJyclBUdEppVWRleFMzUE1Tb253RFU2VXBOU21zWmprOVg3aUlJOUNZTWNoMVcveHN3eGk4dDhKbTFKWXhqQlRYYUUwTTRlS0xkUzRoUFk5NUZoZ1J3WW5pYkFUc0JLVDVvalBPZVpKV1I2RFFuT1p1SWxiQWlNRVJncTBsWksvaVNXSVhVbGNja2hjaldFV0U4d1JSemFSQWdjTFJRMHR2TWxwT1c3UHFZbUFRR0pqNDJCaEk1Qlp0OUlrSklRTUdRUU5lcU1tVVhrZUxjdnBBUjFWK3VaOVVURTE3c3h6L0o0V1JIclpzVFU0eW1ERkdsc1ppc2s5WW0wWXhnbStWTlNFamJIRVlUWDN5NFF4b01DT0JZbXZxSHV6WEovNVBMdXF6ZDU0RzVkMENEN1VSREpjdlhxVnozLys4NThhOGhlZzIrMXk4K1pOMnUzMlk5ZHozQVZtNXI5S3BYWU5USG9GZUJUcGNhc2tJSWw3Sk1tNGUvb2xQc2M1em5HR01TUlZNTHdRK1pGU21pQklDSUtFUkNsZWl2STJuOVEwQnFTVHFqdm5yZ0lHbElLZ2xhVVRNUjkvUDNLT1h5MElrYXJaREJBTllYZ0FwYmswVU1BdVpYbUNYNFI0NFNVakQvcVhJZzEya0NXMHFCRW5kZm9EbisyRGtGdmJpdnNIZ2tZdkpZRno4bmZnd3loTUo5VFA3Wi9QOFNUSWMvem01RzRVSFk1R2xWSk9jZ0EvS1dIbk9BNUxTMHRjdlhxVlRxZUQ0emlFWWNqczdDd2JHeHU4K2VhYlhMaHc0VlBqM0ZORXFWVGlDMS80QXN2THl5d3ZMMU92MS9FOGo3dDM3eklhblhZV2x2VEJNVkh3d1Nic2RDUmJiWXZtMEdZWUNyNXdVVEUzbzdGem5aTXB6bzluNmw5dkZ1b2JVRnRMSFJOeUY0M25oUUNrUUd2RGNCalI3dmdNUnpISGpiOVNTaFlYRi9uQ0Y3N0FONy81VFY1Ly9mWG55b2Q3bXBpZG5lWFNwVXNzTFMzUmFyV0lvb2gydTAydjF5TU13OGw2anVOUXFWUW9sVXBQVFBiSGNUeloxdWJtNW1RYkZ5OWU1SzIzM3VMclgvODZYL3JTbDNqbGxWZFlXRmpBZFYya1BGa2M0VGpPSkJmeDBYNEtxWFY0Ynd6dEFZd0NnekhpYk44aWliU1p4b2toaU16TERseUtJTXUvZDQ0WGluTUMrSXhDNjNBWUJ0dGZHUTArL0luakxWSVZObzR6eCtubEF4YnBkVWdJNHFoRnAvazNkRnQveTJod2s4Zy93SmdrVzJ0cXdlbGc0V0l6Wjg5eGFma1Zsa3RyT0NNYkswNEpsY00yaVRuNVd5UjlpM2wrNGVXTmdQbHNja3I0V0lBdHdCRXBlU296RStnaTVUbzlIRU9pRllFZkVKVmpkQ1VuZ0lzRTNET3F1aWJDclZ6VE5GVTNGZFk2NllpeVNmQlUrVnZLbEw5TDFQbGM1VEsvdHZRbW42dGRadGxVS0VjZ2s0eDBOUG01ZU1xeUh0MzVJOGp6bkdxUWFRNWRKUVVKRUpxRUlLUFJVb3RraVkxRUJCS0dFcG1JdEZVZlNoQjdYSEJBWHBZajZ6d3lVWjZWNDlCN25TbGtOVWlERnBCSVF5UWhsaEE1QmhZTll6ZGg2MkRBdzhZKzI4TTl0c01PQjBtWFp0U25xWHNNOFFsUlJNU2tHVDRscFV4NVBVT1pOZWI1d3NvbDN0cTR6aFUyV0JVenpMVnN5bU93WXJDMEJhcm9oZnFrTnUvNU1SYnpmbVpUOExtYVdScU1FQVNXSUpwUnRFMkhqNXIzdU4vYllUalJMaWJZZWMxbG9tRVVtQmhNQ0dKTWV1bU5DcnQ2QmhTSlh3MGdORUlhaERCUDNsdHN3Q1VsZlYwT3g0NWs4d2xDZ1kzQTdwWmdYRUZMZ1JJaXJZdHNNOEtBaUFVaU1aQ2tkcllpeTUwclJCYndZUXllTnNRZFdDck44TmJHZFhvbW9ML3ZNeVlnSXNtVXdETFQ2ZVhWa3lveTB6T1M1Z1pXYUlKV1REOFkwbDNzOC9uNXExeXN6U05HRXRjb0xKMC9ESWdqd1JqUE9xYW5Fa3VwRGRLSFdzWGp5dlVWN3V4c2MzdHppeGlGUW1FWThoREpMOXIzbVNuVktDKy9RcWxXUVNRSzI4VHB1S016TXZTRjMrd1YrM0kyYVppcjgwMFdlbE5JaHBxV0tqM3hMaloyNG1MNk5uZ1NhUlJDVHNmNHB3dWtNRk1DV0R0WXl1Q05OYk9KelZWN2h0ckY2OHpPV2NnN0Jtc2s2T0xUd3ljZ2ZhQUtpTmthSHZEVDVDT0NvVTk0NFNwWDUxZVlFVGFlTVpTMHd0RTZzMDgrU2dJZlpTUHpTYkppWU1jUnM5M0pXRmNZSDR1Yk9lN1FOY2hJNHVveXRxcGlZaHNUQzB4b0VKRkJ4Z2FwTXB0bnpmUmg5VmdVSGx6eTJDNGJsQlJveVlUc1ZSS1VOR2hwVUJJU0MySXBpR3hENG1wR2JvenZDS0tvVERDVWhBcGNQQklxS09OaXN2dVQ0eDQ2MHRnZGdUVFRhM2RhbzZrMWUwSkN4QWhmdGdtdERwRk1VRWFpcFVEbXg1WlhiYTc2elJXL3o1bmorRkdZdFA1amdYVHp5NlBFMXVJUUFSeXFoTlo0eU1BSnFGaGVTZ0RMckw0L2dZbFRvY0dKRGJHdm1QVm11YkgwSmJiTkZoK050Mm1UOHVSNTlVM0dlR0JtWm9hbHBhV1hYdDdud2M3T0RoOTg4TUhIRXNDdXQwUzVlaG5IWFVEcjVOaUFKaUZrR2pRWWRRajlQVlE4Ykx5b2NwL2pIT2M0azlDOHdCekFXaHVTUkpNaytpV1RTWWFKa3RPdHBNb2xvMU1yYUdGZzNJWThwWWc4bjFyNmJDRkx2YUppaUFacEx1RHlRYW9BOW1aU0V0Z1UycytuRFlKcGpsOUxnaktNQTBHajVYTHdzTVRCUTV2OWc0RHRobUc3blZyRE5uclE2SmxzMGo4amZ6L2xIUGc1WGk1eWt2YzRLK09jL1BVODc3SGtWQkcyYmJPNHVNaXJyNzQ2eWZzYXh6R3pzN09zcjY5eitmSmxscGVYUDFVQm5FVTRqc1BGaXhmNTFyZStkU2d2OFB2dnY4LysvdjRMMldlc29OblZ2UE5SekRpRWh3M0pWNjU3Zk9tNjRZMkxpcGw2TnUrWW1GUU5ERmtRMVJ6VTE2RzZuSTZUcDBVQUEyQW1UcFZDQ0tRODNxTFljUndXRmhhNGNPRUNGeTllUERQa0w4RGEyaHBmK3RLWGVQandJVC83MmMvbzkvczBHZzI2M2U0aGt0VzI3WWxsOUdBd2VLcDlLS1ZRU2hFRUFZUEJnRWFqUWJ2ZFptZG5oL2ZlZTQ5WFgzMlYxMTU3alJzM2JuRHQyclVUNnljbmtNdmw4ckVFc0RZd0dFTnZsRm9xQTJlYkFJYjBjcTdUNjFhaVh0b3NoT2IwUS9EUGNRTE83OUxQS0l4T0V0dXAzQnYwZnZFN1FqaC9qb0ZxL1ZWc2R4NHBIRksxMmJNeE5GSzZJQ1JKM0dQVWY1OWU1eDA2cmYvQ2VIQVRyWTdtQ2NqTkZsUGxWUm1QdXBobDBWNWpsbG5jR0d5bEN4Rk8rY1IyTWM5djBlNzVrOENVV3MyNWh0eFcxSHFFL3MyUjVmL0ZvSVFpRVJGS0pGTnUrNUM2OUpNWXlhZEtXZ2VMRWpienNzNjE2a1crdkg2REx5eGVZbFhWcVl6QVZVeEpSL054NU01amlGZVJ2YzlmRC9rQlovbDBoUUtwMEZLbmFrd0pzWldhYzhZWkRaWFd1d1ZqRzkyelVuTHVxZW94TDArUkZNbktNeW1qbm40bkZjWVlkS2FPRldWQjRraDhvUW5jbUtHTWFJMTlHbzBPQjBtSG5VNlAzVzZUdlhHTEpuMzYrUGlFZWViY0xOT2t6c2hmU1JtUE5YdUZHN01YZUgzdUFtOHNybk8xdE1SQ1ZLTThGTGloeHRFQ2tkdHY1OFR2RTVGVmg4TVJEcXNBMWZSN2taSy8yckdJU29hZC9nRWZkbTV5cjdORksra3pKaUxPeUtSSjNJRkpjeEJQVkwvamJBazV0YXQ5dmkra1NSWFgrWWNud1dacTlad1R3QVhGN3lGbXVZZ1JNTkpNbm9PTUtGQ01ZaEs4UGZHanpjWUNoTWdVdkJxUEJETlNWSTNGNVprbGJzeGVZS3Q3UURjYU1EWWhJUWtTaFVZdzlRY2dDMnRJSnA5b0lGS0tvQjhRSlJIR0FXdkZ3cTdQcFM0T2djSXljYzZNRndKbW5oVlpzSTBSU0dVbzI1S0ZoUkt6ZlE4Ym1abmpwaVJ3aXpHMy9XMW0yM1hXRnBlb3V4VnFqc0F5ZWQ3YWwybkx6elJRUTVnMEdrRW9SSnFTbHlRV3FFUWlkT3JSQUxuUzNxT3N5c2pBSnVQNk9UVEdQeTF5QWhoQUcyUVE0eVdhT1ZkUWNtWndabC9Cdmc2ek8zVnVObmZZb3NtQU1YR21CMjhsZmN6d0FYNDBwTStBMXNJVlBqZXp3VXE1aGhsTDlNamc2QVFwY3hLNHFQb3ZFcnBIOC9vV2JaL3p4cCtUdm9YalBJNEF6bC96MitreENKVUcyeGlsUVJ0RVloQkZIOThUWjZmRXRHcXR6THhBZ3BFQ1pZRjJKTGcyeGhFb3h4QkpRNkFTSXNab1o0eTJFd0lNdlNDa1BXclQ2YmZvMmdNYWpMbm43OURURVRFMk1SNHhIb2x4U0xTY21vaUlSMHFUVlk5QkdvV1ZoV1dROWI0RVJZd21rVU1TZTB3aUZVcUw5RFRuOVJIQUpBSHZFOXRjUHdmeTJLak1hbHlZNlYwUlFKakVkUHB0QnBVQksySXVVNW53U2ZHL2FYbGpzRU9ORjN2TXNNYUdkNTFMNWR1MHdnWkRyUWl6OGhlbnBqelBlMkxickxPQzdlMXRidDY4eVhBNFBIRWRTNWJ3U2t2WXpneEMyRXlwNzhNUXdnSTBjZGpFSDkwalNRWTdMNnpnNXpqSE9jNHFJbDdVeUczU1M3WFc1dVhieWVhVDFOTEtTT0NWbFBTRmRBN0E3MlIvSHczV1BjZXZQUEtITEpOQTBFbXRvRzB2eld2cDFyTHZQbVVFOFBUQkVUQ1lXS1BHQ1lOUnhPN09rSHYzRXU3ZHN0aDlZTkZ0d1dDVUtyMzJlN0RYU2NuZmNaajIxM1ByNTNNOEMwNGlZNHNFOEpQQ3NpenE5VHFYTDErbVhDNXo4ZUpGbEZKVUtoVVdGaGFZbTV0N3FueXFaeFhyNit2TXpzNU84Z0xYYWpYZWZ2dHREZzRPMEM4a2FrclRIVVQ4NUtPRU83c2VIMnlWMk81QUVFbytmMWt3WHhWWVZwSSsxN2xlNnBCUVhVNWRFdHdxQ0prR3o1ekdMWU5KYnhDa0ZOUm5QRmFXcTh6TmV0ajJvL1B2bG1WaDJ6YVdaWjA1MG45OWZaMnZmLzNyN096c3NMbTVTYi9mcDlmclBhSUF0aXlMU3FWeXlDNzZXYUcxWm5Oems0T0RBMzc4NHg5ejZkSWx2dlNsTC9ITmIzNlQ4WGpNSzYrOFFxMVdlOFFlUFZjQVZ5b1ZlcjNlc2RzT0l1aVBEVUhNZEc3anJDS2Jsa3hVbXJZZ1VTL3QrcFdRenN5YzR5WGduQUErdzBqaWNkZXl5MzlualA2dmpVNytRaVVqeXJWcmVONHkwdklBbVEzYVR6S1NpRFFmcGhCb0hSSUdCNHlHSDlKdC9JaGUreDJpOFBqY1p5bTFrRm9sbDNDb1VHSkd6REl2bHFoVHhUVWdkYTZpT29uNFBRc2pYYUVNT1M4SUJmdm53NlZNS2JkVTY2ZWx3WlFTakt1UHpVdjR5Y3pRNXJXZDJqK1hzRmwyWnZuQzJxdDhZZjBxNjZKQ3BXdXdRaEM2UVA0K1V0NmkrckNvTUN1bzBZcXFzMFBLMnNMblVtY2twTUZJUXlBRWdXVVJsZ3lCb3hrUkVtUXFTaGNIUjNqWVNRbENlNUplNnRGNkxKTE5SOHVZdmVidlRlRnZrUk9pR1kwdkRjb1JKSzVGYUJsR0lxSWYrM1NUa0NGRHVxTFBWcmZIdmYwOXRrZXBYZktZa0JFUjQ2emNBVEhSeEFqWVpEU1p3QlUySzg0Y2I4eGU1MnRyYi9MbThqcXJxa1M1WjZpR0dpOFJXRW9Xckxmei9NdFBRdndlWi9OY3NJQXRrajBpdFZ5TkhCZzVJYmQzN3ZMZTFpODVvRWxBTkZGZ1d3WGRrZ0NFVGdtSkNTbnlyT2xTOHZnS2NmZ3NUdmphWEZncVR1ZzJnbWwrM3pLSFNkL2lobzc3cldaYUh5YnR6NGRWbG1KYTU2SkFBQmMzSnRJNmRTeE5TVUUxY3JoVVgrYjZ5a1cyZGc5b0pEM3NMRk40L2x1VEZTcmx6OVFrWUNTM2lEWVlHRzhqbXhMcFdvajZWVGJLczlTMG9HeFVSbVFKRUhuZmZCYnlNcXU4VFAwcUFEdFRBdHRST2paWVNCUXhNWVloQWZ1bXk1M3hOaGVhcTFUblMxenlxamhhNGlxRmtFa3EzM3hXTXZWSkNsd00ySkQ2MEhzakZVb2FZaUZKcElVU0ZzcWtPWmRWRm5UaDRWR2lnbVdzNlYzcHBKRTlMYkp4enVRa2VocmhhYWtZTDlMUU1helZhMVJXWHFXbTYxVDhHbFZWWmpzNm9LMkhCTVFrSkhRWmtrUUo3ZTBoalU2WDRiVVIxMnByckpnWjF1bzFhakdJVVpZWDJKakNQb3NCSG5rZlAwSXVpV0pIUCtFUUN0VjdhSFBGWE43S01MRXJmOFJKK3BocldPcS9uWFlYVzZBdGtZNmp0c0M0QXVOQTRvQ3ZZOFp4ajVBUkNZcEFhUWJ4bUpGcEU1c3V5a1NNdEtZMUdyUGYzV2JmMzZaRm54NnBWMmFhUjd0RWlFMklSYUF0d2xnU2thWnJzSXROTVhzMUNaZ0laSnhnRTJObGRXZXlJS01FUTJ3MGlkRW9uYVpkMGdsWUVXbXd5SmdYbEtIeFpFeEdJMk15Ryt2cFZUWk9RZ2I5SFh6UnhqaVhEaFA4bnhRVTJFbEtBb3VCWUpFTFhLMWRaelB1MGRMK0pGTkFmbFVDSmpuSlBrM1kydHJpMXExYngwWnU1N0NkV1J4dkdXbVZPRTc1TzRVQW93akdEeGtOYi82UlZxUFc2WmY0SE9jNHh4bkhtQmVsQURZR3BUUkthZlFuSWluTW53c3RjT3VwaXNrWVVoc2hEV0V2dmVEQ3VSTDRzd2FSM1pNSEE1Qzc0TlZTdTNDbmtqNTdmWm9nUktiNFRSOWFWWkRRYXZzY0hBeloyeCt4dHo5aWQzZkV6cDVnOThDaWZTRG9EMkhvRzNvK2RJZXA3Zk01OFh1TzU4RnhPVVVoVlFmYnR2M1V1WHFsbEZTclZSekhZWEZ4RWEwMXJ1dFNLcFhPSEFuNHJCQkNVSzFXK2NJWHZvQnQyOHpNekRBN084dFBmdklUUHZyb0k1TGtSVVQ4YW9KSUU3UWtnMEFTUm9KV0QrNS96dU9MMXlyY1dQV3B6OFZRcmtIMUFzeGNTTjBSc3FEUlUwTkdBQXRMTUxkWTRjcWxHVmFXcWpqT28rT3YxcHJSYU1SNFBINUJkZkxzcU5mcnZQNzY2OXk4ZVpPWm1Sa2dWZXdPaDBPQ1lDcFVzMjJiV3EzR3pNd01ydXMrOWpudVNhQ1VZalFhTVJxTmFMVmE5SG85R28wR2QrL2U1ZlhYWCtmVlYxL2wyclZyYkd4c1RIN2plUjdsY25uU2g0N3JzM0VDL1hGS0JKOFUzSDZXWUVqVjdXR2N2cjVrQXZoVEZpbjI2Y1Q1M2ZrWmgwcjhvYlM4dnpNcStrWWNOZisrNmora1Vuc1Z0N0tCNHk1Z1dWV2t0SitnZHdySXlOOWgvd1BhalI4eTdQNk04ZWcrS2hrZFhYUHl2NTBwVEQwY0twU1pvY2F5dmNENjNESUxiZzIzbTZ1SWppTitQOWxFOGxOTUo5eUZTRzJnVTlkY21SbEFUM01BVCsyWHhUVG5wMVJvVDJQY25QSXhtV0wxT1VmRVNYVHAwYXZBeDI4My9WVnFBZTFnNDJHejZNNXdZM0dERFhzUnI2TnhBNE90NVdGeWFVS2VIdGxYa1VETlA4c3RXVVdCQkM3TVhCdGhKamJaUnFidUpncUlCUVFDQXNmUXRXUGFsazhYbnpFaElSRU9EcDVkeHBWbHdFNFZsVUpsaElNQ1pGWXZ4eEMraDhwanB1VWhMWThTcWIyemt1bVZKQkVRUzRNcVExdzE5R1hJVm1PZkJ6dDdOSUkrTGRtanpZQk9OS0lkanVneklpQWtSQkdTRUtNbWlqS1ZLZjRFNEdhR3RCWHBzREc3eUp0cmwzbHQ1aUlyUVlYNldGTUpGRzRDSXBYSXBjUnZyajdOU2J0SFVDUzZVMnZodzZyQUk2UzdLS2pFSkNTMnhWQW1OSFNETGZXQWJiYnBNR0NFSnN6SWE0bkpWNS8wZzJKMVByUHRzOGlWZ1FJdEpEblZOSEdGejNNdVorck9uSXZGTUZYOWxnRXZlLys0TG5GTW5FQTZ2dVhxMWJ6Tkh5R0JrWThTaFpOMkJoZ0xDNE9WYUt4QXNEcS94SFhuSWovdjNzWWU3Si9nRkpDVHZXUVVwYzQrMHhrVlpUQTlnNG8xZWlYQkxGempZbVV1VmU0SENrbE1rY0I5NXZ5N21aMjBGQW9yRnNpK2crT1hLT0hoWkxSL1RNSUlqUVMyd2dZLzM3cEpWZHRVbGw3QmRhdElCVTZpd0tpc25UNnVyVDVSb1FvL0xTank4MGFIbWdTT0lFQkxUU3pCRnpDMElmRVV2Z3daeUJIanJBV25PZHR0Yk52RlFvSTVhaWxlckw4bmJjajVBSkkxVHBHZUI5dkVXRkxoamdVMlpWNHZYYVI2dmNacXNNaDdCN2U1M2Qya1RVb0NLelI5ZkFJU29uSE04TzZZZS9ZT2I5UXU4OVhYcjJHYk9uWUlKYU1RUnFkMXJFVjIzUzZRNEljSWN2Rm8xVC91VkJTSGpKeWR5NE9LaS8wNkgwT09Wazgrbm1SZFNGdWdISkhsNzRYRU1rUzJJWllDN1Ntb2hDUWxUWFBRWnJQMUFhM3dJYUVJR2FQcGE1OGVQY2JDSjVTS3lNQTRVWXlUZ0NFSnVkTjhiamJnSUxDQU1acEJyT2dubXJvQTJ4WllDdXpDTlNtUkVNY0NFZHBVaEVjSlFVb1hweDdXT2p2c2NhSVpoNHBFR0hRQzJoZnBUbjBnZnNtemNwUExsY2xhcUpsOERKRG9tTkY0Qjk5cm94MUFwcHJtVHlvTmNGNDRTNEVUYWtvMnpIdUxyTG9YV0JTL1pJK1VBUFo1VkR6OWFacEU2bmE3M0wxN2w0Y1BIejUyUGR1ZHcvUFdrZGJKNm1ZaEpNWW93cURCYUhEei96UWUzdmxycGFLamxqcWZPbnlhenVjNXpuSFNoUGxMeG9BWDVDdVJXMERIaVo2cW1WNTJIOVZaMEtRc2tzQlpvcmkrZ2FEUFZBbDhQbjU4TmlDbUVXMHFTTlhnb3daVVY4QXRnNTJUd09ac3M2S1Q1Mm9CV21NU0NJT1lac3ZuM29NdWQrNTEySHpZcDkwSkdJNWpob09JUnM5dzBCRTBPcW5WWjZ3ZzBXZjdNTTl4OXFHVUlvNWpsRktQWE5jc3k4S3lyQ2UyZno0SzEzVS9kY0dhVDR0U3FjUWJiN3pCL1B6OFJBME1jUFBteldOdHRVOEhNZU9SNHVlMzRlR0J3KzI5RXR1OUNyLzVtdUZMVnlYMTZnSmk1aExVMXpMcjUxUE9PMlJJcjgrV1pHYXV4SVgxT2t1TFpaeGpGTUJSRk5Gc05tbTMyNGRJMWJNQXk3SllXVmxoZVhtWmNyazgrWHc4SHVQNzB4U3hydXN5T3p2TDNOd2NwVkxwdVFuZ285amMzS1RaYlBMZWUrOXg3ZG8xdnZhMXIvSE5iMzZUcjN6bEsxeStmQmtwSlZyclNmQ3paVm5Ia3VrYUdBWVFSQVkxRWMyZFFlVHoreWExZng2SEtRbjhrc3c3OHFSYzUzZ0pPQ2VBUHdYUUtneWt0SCthSlAyTG9iOTlZelM4OCtXWithLzhIMmZtdjRKVnJpQ3l2SlRIUWtpa1NLZFBvNmpKb1B0ek9zMi9adEQrQ1dHd2QveFBPR292N0ZEQlk0WXlTOHl6a2l5eUtPdFVMUXZISkprZlpNN2lGSTBOenhxeUk4dWZYYlVva0RwRjhuZXE0Rk1ZbE5BWVc2Y0N6dUlnT0psSUw1Qkl6NExKeER4UDlhdzhwYlZTVlZ4ZFZwbTFLNVNVamZDakNaZUt5ZzQ0RDZvNWRIcDBZWjlGQytXVTFOSTZWZlZxYWRKSVdGY2lYSUd4UUNGUVpzbzd4TW9RbXBqUVRrZ3FtcDZsdU5WcjhGRjNteVo5UmhtSlV5SWgxcW5TejlocHkxVUNiS21ua3dnSUpxeUZuSkxXS3M4UEtnekdBbUVMc0NYR0ZtamJrQ0NJbE1iWE1iRWJrNVJobENnTytqMzJPeTNhWXNCdXA4bE91MG5iRE9neVlvQ2YyVHVuaEc5RVFwUlppYWFVWGhZSWtCRjlGbFBEYWdlYnF1MHg1MVNvNCtHTkRZNGY0eXFCMEhaRy9yb2NzaDArZEFhTHBLOHF2T1pLd0VMK3owT1RLV0w2WXFVRVRlUklSbFpFUSsyemI3WnAwNk5QUklETWJJcE44U2VIekg2blBQcVRrbWVGOWJMRTJzb1dKRlllQ0NEVDlwR2Z5U3hnQUpFTkZSN3AxVWN3dFhwMmVkVHErU1JNSG9ieW84anpLY3NqUzdHK2lwMnJXTy9UeFFpRE1nYXRCWTZvTUZkZFkzWGhJdlg0Z0Y0UVBGYjlsWjQ1UTBnOHFXMkJRQ3VER0lDbEpaN2pVbHB5c0tsVDFlQkVDa0djVmRDenFJQW4wUS9wM296QlVnTFhsS2lxT2pWUnd6RnBia3VWQlRGWXhMVE1nSHZoRGl2OWVkWm5GNW54S3BTTnhQSTFNaC9UYzJMNldURUowaWdRdmlKbGxZekpnMnNBSngxWEV0Y2lzaVFqREYzaDB4ajMrYkQ3Z1Ayb2cwK0l4dUFCMHJKd0hEdk5hMk15UmV1cGhGUG0vVk1DTG1pQklNYUpGQ1kyTEpWZFN1VVZhcVV5WldOUk5aSTd2WDBhREJqZ0UyWUJMaDAwd1RpaXd3QS9DTEVlR3VMNUsyeFVaM0hHQWl0U0NGVzhrQnpUMkUreWVNNy96aitiREw2RnBhajhQUTdGWGVXRWJ6WW9LRW1xOUxVRjJwWG9za1hpZ2s5RUlNWkU5b2hCTXFZWkhOQU90aGhaQVYxL3lPN3dJUjNWSWlER3h6QWlZY1EwbmZqUlVKYTh5T2xqa2tSaHNFZ1lFdEVWUTNyV2lNVnlCUThYZ2dRSGc5RHBkU21VNE1jR2FWZFkyYmpJWEdzVDJnZlpQVkI2Y0FvWUJIMDZ2UWFSRlFJQ0UyVUYrb1FlTHdSZ3RFQWxOa1piaDA2cndoRG9MakdETERMbmt5bmpJMUJneFJvdmdZWGFMT3RtaFFVOGFtU3UreHl1VG1NTVdtc3M2NndFLzUyTU9JNjVkZXNXZCsvZUpZNGYzeWhzZHg2dnZJNGxTeWM4Q1F1RWRJbWpEb1B1enhuMDN2dUxKQjQyWDB6SnozR09jNXh4NUw0YnA4NkFHcFBuQVA0RUxLQ25wV0FTb1NUdFZNazBjd0cwVHEwMmxJSjRrQ3FCaFNCVk9aM2pWeC9adzVzeG9FTHdXOURmQnJ1VUJnazQ1ZlE3YzdiVVpoUElkRDRCS1VBWmdtRkNzKzJ6dHp0Z1ozZkE5czZRN2YwQmUzdEQycDJBM2lCaU9Bam9kRUs2SFUxM2tKSy81empIODhJWVF4ekhhSjBHK2h3bGdLV1VrK1VjSjhQelBLNWN1VEpSYWRacU5mN21iLzZHRHo3NGdFYWo4UUwybU00RUJTSHNOR0FjaFl3alNiTnAyT3BVK0x5MXhLdnJLNVRycytucVlYeXEvTytrQ0xaRU9BN3pjeVZxVlJmTGV2UTJSR3ROdDl1bDIrMHlHbzBlM2M0bkRDa2xwVkxwMFBOa0hNY0VRWURXR2lubEl3Und2OTgvMVRJb3BSZ01CZ3dHQTVyTkp0MXVsNzI5UGU3Y3VjT1h2L3hsTGwrK1RLL1htNVRGdHUwVDFkUlJNczJwZStybi9EU1JFY0JobE9hdkQ2S1hrcisrcUh3NngwdkFPUUg4S1lIV1NRSnNBOXZWbWMvWjFmcHI1RmxzajRkRVNoc2pERW5VSndqM0dIVGZwWDN3bDR6NnYzeEU5UXY1WExESVZMR3BmYWlIUXcyUE9jb3NVT1ZxYVkzcml4dk1xQkp5ckxFVVRKUy9KbWQwenNyczVmR1lFTUNHQ2ZsYkxMTTU4azlqMENKYkRtMkk1eHZFajNKNno3RWhrYWxMbzhTUUNJTWwwOGw4UzJ1RWxTQk00U1pSVEgrRktkcGFweFBzV2dxd0JjWVJHRHZOOHhnRFFhd1pod0Z4SEUxc05oT1RUclpIU3VOSE1TUHRFemdqRWp1bW1ZejQ1ZFl1SDdZZjBHS0FUNFFCZkVLNnFrZWZJYjZqQ0l5REl3WFNHT3hEaHBMcHVVQ0NzUVhHVGhWcHhoSWtBc0xFRVBneFFSaVRtQVFsTkxFVWpPS1lYalFrTUNNU1c5TVBJKzd2SDNCL2Y1dE9Sa1RuRnM4QkVTSEpoUHhOSmhhaU9mR2I2enZ6RXpZbEZBVUNiVFRqY1lBZit1aEtpQ1c4bE5jMFpMYlBEaWRiUGsvMHNUeHE4MXl3Z1ozODlBZ3BsSXRkQlVTV0pDeGJEQ3lmaDUyN1BQVDM2Qkl3eGhCbDFFais2d2s5YWdUaXFHZnprNkRZWGJMWWo4UVZSSzRrY2lTSlk1RTROckZsa2NmaWFaSEZpVmlBQzhiS2xKdUY0emlXK0gza3ZTbjhLS2V5YzllQm81YnpIOWV4TXJKZGFKQUp5SVJFR0dKWEVsY003V0RBdnQ4blFTSnQ1MGhiT0l6VjFWWFcxdGJ3ZlovN2QrNFJaUGxjTWxxV0F3WTRvMTBxclJJbHowT1dMN05Xcm9EUnVIR1Nuc1M4UXA2V2REVlQxYW93WUNNbzJ3NnpwUW96VGdVM3NpY3hId21hZ0pnaGdqWkQ3dm43clBlV1dWeVpwZXJWRVpIR1V3bFRxK3lubmJqTDI2eWVCcDJJek41WjZEUnd3ellZTDgxWEhRcndvNWhoRWhESW1CQkRYOGZzSmkxdTl4L3lmdk0rTzM2SGdBU1I5VWZidFhETFRrWUE1N3Q4V3RYdjR3NmhNRlpxQWNTNFVtSDVHcUVFbGx2RnJWK2lMaHpteFFMM3hudnNxVFlERVREUUl3SWRNaVlDaHR5T2RqQzNGUFlyRnZXTEhsNVN3WXZCRXZySngvMmo2K1hEUlQ1TUJLUlR6VG1qK2lTeEc3bTlzNTJOclpaQVdZTEVGZWlTSkhZMFl6Tm1xTWVNdFU5UDl4aVlOb0Z1MHc1N2JIYTNlRGk4Ujg5RWszUzZlVEZ5NFhGZW5EeU01YmpNeHBvOEhpa2xnQWNFYkljSDNCbHVZbG1heGFSSzNiYVpxZHA0bGtUSGtsQkpSbG9pS25YV1ZpOHhiODJoMjNHbXQ1OVdUNWlFK09HWVJDY1ltWTV6SnZra1ZiVUdZd1FxZGpES090UmlVOVZ5Z3BaUnBvci9wTXBZUkJxbExHS0Rtd2pxdXNTYXQ4cTFtU3ZzRFhvTW9nQ1h3d2w3dE5Za1NuMHFDT0Irdjg4UGYvaERQdnp3dzQ5ZDEzRVg4TXJyU012RG5CQ3hMNFJGRW5mcGQzN3l2L2VIOTM3NEFvcDhqbk9jNDlPQlBOdTg1cFN0c0ZJRnNDSkpWS29rK1NRZnVTYzVnWjAwcitHTUJoMm5SUEFRaUVhcHdrbWNLNEUvTXhBaVZZWUxVanZ3L2xaS0FMczFzRHpPcEJYMDVObUxOR0ErMG96R0VUdTdBKzdjNzNEcmRwdmR2UUc5Zm9RZkpQUjZBYzMybVAyRE1hMzJtT0VvSWtrMEwweFVlSTdQSEhJQ09DZVRUbHNCL0ZuRDZ1b3EzL3JXdDFoYlcyTmpZNE0vL2RNLzVaMTMzbUYvZi84RjdsWFQ3WTM0OFFjK0Q3WmRQdHl2OEY5cGg5K1pUZmk4RzFLdVpYUG11UUxqTko1TkJaTUFGcEtRUm5OTXJ4K2lrdU1sbkVFUTBPLzM2ZmY3cURQNDdIWTArQ0dLSW9iRElhUFJpSHE5anV1NnpNL1BzN2k0ZUVncC9DTGcrejRmZnZnaFcxdGIvUFNuUCtYOTk5L25HOS80QnA3bk1SZ01KcmJzSng2TGdTaUdJSVo2L2hoNVd1ZjlOQ0hTc29ZUkRBT0RINXFYUVFERHVRTDRwZUtjQVA2VXdYSG5MaXl1L3FQdnpzeC9HYmUwa3BLOGp5Z1NwZ1JJSFBmb2QzNU10L2tqaHQxM0NZSmRqSTZPckNrbU9VMHRMQnlzTEsrc1M1MFNjMVJZb01wbGx2bkNsVXU4ZWVVQ2N4MFAyZFVwcTZNejlkMnoycGUrYkV3bTBHV21BSjVhdXdyTXBFNU1wdnhNbFhOWlBtQnl2dVcwUnNPVWRNMkZ0K21lUlViRVAwcE9GdytoU0ZCSGhBejFtRzRjTUxBVnhoSllCcFEwU0pNVFhRV3RvNWhXdytUdmpPQldnSFkwMUEzTUtCSVhJaVZwN3Z0czdlelJHM2VJM0NqTnNTZ01NWVpJSll6aWtJRWFNNUpEQWl1aXIzMGEvb0NPR21icTN3U1JoU3gwNmJHbk8reWJJUlhiQlZlUUpPRG8zRjQ3TFZNaVNHMmRiWUdxYUpqUjZKSWhSdEp0eCt3MjI3UmFMWHhHeEY1Q1pCa0djVVE3NmpFUUkwSXJZcXhqZXY2WUxzUE1oanJPVkw1RjBsZVRUTTU0V3FlRlUvSkkzZWRuS3RRSnZlR1FvZWxoS2lFaWNsSlNOVDl2anhDc1J4Vy94U1duUk9CRUc5Z2l0eWtCS2RCU0VFb1l1eUg3MFM0Zk5qL2cvckJKSDVPbDlkV1RXYWlDWGhhamJGVGtZTFJNaVRtUlBadnJiQWZteUw3eVE4clNHR3VaNWdWTmJBZ2Q4RDBZZTRxeEZ6TVNNU09oeVUxbGxEUXBIKzRhVEptcDY4M1JvZXNrOG5meWQxNllJdWxiUExMSG9SaHhrU2xUcFFJUmc2V0lMWTF2UzBabFRiczY0S1BHTnU5czN1YkQ4Qjd0dUoycHFCL3RpNHVMaS96UkgvMFIzL21kNzdENVlKUC80Zi95UC9EaHpRK0pzdmFldzBKZ3RRVWlzYkUyU3NqcUJrdWVqY3pJcjNRTUVKa2FPUC9WVTdDRVJpQzF4QklHenhGVVN4WlZ6OGFMTFN5VGppWUtUVWlNUk5ERjUzNnd5Mnlyd2xKbG5tckZZOFcyY0RXSTNBcGE1TXJreDlWcFhvU3NUc2tqYkpJSitadFlobGhBSkNDMkRYckdvT3FHVWFMWjIrNnl0ZGVnYTNxTTdZaU85dG1PR3V5RVRRNmlBWDFHUkNSWUNEUWExN01wVlIwc0thZGl2RHl2N25NamIrU2tqVnhrRDJoR1llbVlzdEhZUm1DN2RTcjFFc3VsRmRhN0N6d01tblR0aEFmRGJlNzNOL0dKR1JGaVVIZ0lIa1J6WEl6bktRc1hSOXBZUmgzZi92TWluRlRWT2VtYkU3NUYxZSt4aHkrbUwzbkFpRTA2bmxxUVRPeWRJYllNc2F1Z3BnaExJN1k3RDloczNxRVY3ZE15SGRvTUdBaWZnWTdweHlFOWsweFM2UmJKM3FMYXR4amVjdFRMSUMrWXlOYVFhUHFFM09uc0lIekR2clBMdXIzRXhjVUZMcS9YcVZkZDFNQWg2SmJ4QXhmdGdGZHpjRW9pcytnL1RDeGJkZzJudElBUUx0cm93M0VDTHh1VFppWFFSbUowVG5zZkR2MHh3aUNreWk0YmVkMThnc2hpWSt6SWtJd004elBMZlBIaVA2QjVNR1puOXhkNEhDYUFreVFoaVdPOFQ0RzFYTFBaNUsvLytxKzVkZXZXWTljVHdzTHpsbkM5RmFSMDBlcW94VmphcUl4UkpIR2Z3TisrR2NlOUZ6bXJkSTV6bk9Oc3cvQ2lDR0JsQ0NOTkdLcFBLQWR3QWZsOWw4aEo0SG1ZeWU1dDBERFlnM2lZM2ZDZks0RS9NOGhKS1JXQzM0YlJQbFNYVWdWd01SL3dTL0tWUEJHQ3RLeFdGa1FiS1FiOWtFWmp4UDdCa0szdEFWdTdBellmOW1nMFJuUjdBU00vWVRpTTZQWUNXbTJmYmk4OEs3Yno1L2dWZ3pIbXhMWmwyemFXWloybjZIaENDQ0dvMSt1ODlkWmJ1SzZMNTNrc0xDend6anZ2Y1AvKy9VTzJ3cWNIQXlTTWZkajBOYjNJWnl5YkRHT2JaanZpclMrc3NyRldRWGlrcmhrNlU5UThLNlFBUjRJbFVhT0lXM2ZhL05VUEgvRHo5L2J4ZytPRmxjWVl4dU14blU1blFxcWVwVFoxbEFBT3c1Qk9wME83M2FaU3FVd0k0UG41K1JkT0FPZjdEOE9RVnF2RmFEU2kwV2l3c0xCQXQ5c2xqdVBIRXVqR1FKaUFuMGZKbjJFWVVyV3lINmF2TDJtWCtleldPVjRDemduZ1R4RktsWTB2THF6K04vOTBjZlU3Lzl0cS9UV2s1V1UzMElYcFZHRWhoSTNXQWVQaEEzcWRIOU5wL29oUi8zMlN1SGRvZXlJamZnVUNHNG1GaFl0TktWdHFsRmhraGxWbXVPS3U4SVgxVi9qQ3lsV1dkWlZ5QkRJV3BNcGY2N0JxNnN4QkhGcUVNWm53cjVqN2Q3cm1VVFZ3VVFscUN0K2NYdGtPOFhrcFVUUWhnT1doTlIvbHhBd3hpb0NJbmg3UmlJYjBxd3B2MWlWVWdqZ3htRVNqVkl5eEVveVZSdklZRE5veTRKa0pkNjhGYUFTallVTHpZRUN2M3lOcSswUjJRcWdGM2E3UGZydkZJT29URWFVMnlVS25KS3BSaE1UNGhQaEUrRVFGb2xWbFdUTE41Tmo2K056cTMyTytVYU8yOFNaZWRZbGtaQ0JJUUN1TUJkcFdtSXBtckJLYWpUSHRibytnT3lSMkVpSmdNSWhwdG5wMGgxMENmTUpoUWlRVll4MHhKTWl5K2NiRUU2SlhUeXllayt6dlBLL3YxQ0RaSE12SkZHdGNUeFpOVE1KUStReDFRR2dseElBK05oQWlQM1BGNmY1c3lVbXpDWW1Wa3paSEZML0Y5OW1pQmNTMlJlZ29kbnAzK0xEOWQ5enZiZE5TYWtMTzVNUklmbHVTRXNBMlFsVlFTUldOaFphR3hNa3VDRmxSalJDVHV0QXkvZHZJbEl3M2xzQTRGdHFUeERiNEltSW9CZ1RsbUlaczhWSDdMZzhITFh6U2JTYVdRVHNtblFmS2pRSk9Jb0VQVlZ0ZWIwVmI1NkxxdDhoT1B3a0VVMVdxQWhsalJFSmlnVitTREN1Q2JRYTh1M2VMbngzYzRzUGVGbHMwNlRNbXlUU0dSU1h3YTYrOXhuZS8rMTIrOTczdjhXdS85bXNjSEJ6Zyt6Ny83di81NzNqL2wrOFRaSGQ1dWFVK0N1ek9BeXFVS1Yxd2NXdXIyTWFpckRRMlNlcWZMVWlQN1ltVndEbTdsT2JzdFVoZHpGd3A4R1FhMEdOalRlaWtKTXR2UFNha3JRYzhHTzV4Yy9jK2kyc1ZaaXJMVkpEWVNpTW1IdkluMVc4ZXNaS2RSS0d5T2swcE9DVjBTdnA3Z3RBVCtMWmlKQ0s2Y2NSQnYwMnIwNkd2UWhyTkFmdmROajNkWnl4QytpYWdUWCtTVXpmVmRvS0x4R0J3SElubldVaExQTDd0UERleU90VlpaSVFBYVJKY283Q01vT1NWcUxrbDZ2TTJGOFV5WFZjeDE2cVFSQkVQd3oxOEV4S2c2TkZuZTdETDF2NEN5N056MU1zeldHT0YxSUpIOHZHZU5IVGt0czRSVTAvbG9rUDgwWExEMUJsZFR2TnpLd25LRlJqUFFuc1dzVzN3Q1FpRlQyQ1BhUWI3SExSMjZOaE5kZ2NIN0E1MjZlb2VYVUw2WktJZURuUFBSZEszU01BV0E0eUtoM2owZlhySWlnakppSkRkc0UwWStoeUlBNWJ0R1ZhVEdkYTFSNjBrRUQ2SVlaWDZ6RVVXU3F1RWFzdzRTZ2laK2dibCt4VFNSZHBsRUJaYUYrcmtoVUk4K3FjRTQ0Q3k4eHpwNGxBOUZZbngxRTdmbktFNHV2UmV5WXBBamhPOFNvV1YrZzAyM1B2TWkvczB6SkJ4WWUwa1NZakNrR3ExK29tVitFblJhRFRZMnRyNjJOeFhqcnVBNHk1aVdSWFNCblM0d3draE11dnJrQ1Flb05UbzNQcjVIT2Y0YkNNaGpZMDU5VHVVUkduQ0lDRUlFNUpjMVNQeUc0ZFBpSWd5V2NKVHkwbUpQaUdtbncyQlpKU3FncytWd0o4UlpHM1I2Q3dmY0JzRzI2a0N1TFlLZG5uYVJqN0pJdWJsVEF3NjBYUjdJUSszKzl5NjNlTEJ3eDRIalZUZDIrdUhkTG9oZXdjam1pMmYvaUFnQ0JWeDlHaHUxbk9jNDJVZ1YvK2VKYkx1MHdBcEpkZXZYMmQyZHBhTmpRM201K2Y1bTcvNUd6Nzg4TU1YYklPczZIVjYvUGluUHJ1N2JYWjNSd3hHaGwvLzZob1gxa3RZTHRsMS9CbkhFeWtteWwvalI5eTkyK2JQLy9OZC9qLy84UlkvK2RrZW8vSEpMRjRRQkhTN1hYcTlIdFZxOWN5cGdJc0lnb0JHbzhIZTNoN0x5OHU0cnN2UzBoSkxTMHRVS3BXWFdwYXRyUzE2dlI3MWVwMXl1VXdZaG1oOThqVk5tOVR4TzhqbmNJcFRhMmZsTXBKUEo1bzBuVUVZdjdTMEJwcjBudm1GM0RlZjQxR2NFOENmRXBUS0Y3NjRzUEpiLyt1RjFkLyszMVJybjhPeVNtZzlEU0VSUXFiUnRVWVRSeTFHdzl2MG12K0ZidXR2R1kvdWM3US9DYVpFbzVVcGZqMmNpZVh6UERPc2V3dGNzaGU1SU9kNXBiYks1emV1c0tycXVGc0tLd1l4c1gwK3V4ZUxDWXlZRWlvR2hCS0k1SGkxN2RUOE9adDdONkQwMUFMaE1BbjhQTXF6dEV6Q0NLUUJIWUlNTGR6WXhjWEZ4c3BvbXhNT2lUUjNZRXlDajZTVkRMalRmY2lNVTJaVW5xRmtMSFFNY1pBUUptTVNLMERaQ2RxQU5nWmphNFRRR0NlMUNOWkNveEgweHlFUDk5cnMrMDFHRERNaVYwMVVzMUdCVUUxTVRxRG1TbWxGbkpIU1NVYjhKdG0za09hR2xVaUdoTnp0UDhST0RMV2F6WGdteElvdDRuRklrc1FZUjVNNEVkZ3hneWhpcTlGbHA5T2dUNWVBT0NOeVZWYVdaUEozckZOeU44L2hHMmZxM3Z4VkZSUy91V1hvRTUwcElYQmRsemlLME1ZUUVDTlFsSEVJU1dnT0J1dzMreXpKR3BSY2pHOFFxSlFVTzBUdTVoa3dpL3E0YVhNNGRuTGtLQ2xVYUhJS1FTaGd4SUQ3clhkNWYvY25IQkRpTTAxM3FSNzlHVktVRWN5aFJJMUVXSVNPUmlCUlRrNlVwSkdFV29LUkpsdFNXM0VsSU5RSll6M0VaMENnRXdabVJGdnRNakkrdTZyRlQvYys1T0c0UVFLVWdVU0NzczJrQ3dwNE1uYm9ZNjJlbjNaQ0tWZit4aUFWUmlhb0VnUWVORVhDcmhyd3k5NDkvc3ZtTDdnZGJOSEJaMHhNako2ME5VMzZFUEhhYTYveHZlOTlqKzk5NzN1OC92cnJBRnkrZkprLytaTS9JVWtTL3NmQi84am1acW9HVFk4Z2RScllwY2t2TzdjcHV5NmU3V0JYbHJDbGhSZ3BMSk9ONlpwc2JIMVNUQnVKTkdBcGtLSEVDaXhzWXgwYVNReUdoSVNBbURFUlRkM25ibnVUSzdNTFhGeVlvNUxZbElYQkZpcUwxTGNLNnV0Q1BaSk42T1hFTHhvakZjYlNhRnVRbEFRanFSaW9rRjRTMFRORDJndzRHQSs0dTdmTHcvWWVBOFlFeEZudTJJalFKSk8vYzJ2MmFlQ0ljK2dVdmpnbnVTUDA1SVNJZHdDSlVBbDJsQ0FURFJiWXBTb0wxUm9kVjJGakU0UXhvMzJmM1hnZlRZS1A1cUMvelM1VlhsL2JRRnMxdEMrUXg1RzllWk11cW4zenBVaitub1JpTElBcjBJNUFPUkxsV0dqWGtOaUdVQ2hHdXNkSUR3bFVTRi8zR0lvMlE5MWpxN2ZKbmVZOTlta3pKTFYxOXJQWC9NNDg5K2dwWmlrdmtwZ25kZXZqYXpoOWwvTGJDVDVwaUUxTXhOQ01PWWhiM0cwS3lzMEVqd2lIbURJdWF4dXZzRmEvanQ4eDNPdTBDWmplNGVUbGlKUlBFUGRJak1JSStWenBySjhJaGZPWmtybWtYY2NXeEM1RUhzUzJJQkVXc1hDSWtWbFkxRFFXeG9oc3JCVlBmbTE2R1pBSldOb2dZb0VZVjVsbGxkWFNNbHZCbUk3UkUxcDBPQmpRYnJlWm01OC8weE5UNC9HWTdlMXR4dVB4WTllVDBxRlN2WTVYM2tpUHg1ejhKS3dUbnlUcG8zVWNucmpTT2M1eGpzOEM4cXYzcVU5a0tXV0lFazBjbndFRmNJNkpFbGltSkY5NU1TUDNkUG82VktCR2FYNWdaS1lRUGJ2WGgzT2NFb1RNWkU4OTZPK0FYWUZTUFZNQmYwTG5YekROOVd0QWg0cHVONkRaR3JPek8yQnJxOC85aHozMjlnYzBXejZqY1V4L0VOSHJCVFRhUHUyT1QzQ0NtdTRjNTNoWnlDMmd6L0o5OWxtRjY3cHNiR3pnZVI2V1pURS9QOC9xNmlvZmZ2Z2hEeDQ4UUwwUUwvZlVGR1E0aVBob01DSkpERWxpOE1jeDMvekdCcGN1VlNsVnlBTG95ZEpQUFFHRW1DcC9KUVRka0k5dU52bUx2MzdBbi82bnU3ejk0eDA2dmNjL2trUlJ4R0F3WURnY29yVStVd1R3VVJWOHFnRHUwbXExQ01PUTJkbFpscGVYWDRvRjlGRW9wU1k1bEd1MUdyWnRFOGVQbC9ZbUtsWFVtaGM2aDNVNlNEVEVTYnE4QkJpbU1vZHp2QVNjRThDZkFuaWxsYzh0ci8vZWY3K3c4dHYvdWx5N2lpVkxHRlBza1JsQllneGhzRSsvL1RidHhsOHg3TDlQSEhYSUoxbHpyV2s2THlteGtUZ1o4VnZHcFlaSGpSSUwxTGxhdThUclM5ZTRQcnZFdWwxbFFWVllDRXVVUTdBamdUQlpmbE9kcTMvUCtrMUlJY3dtbThoMHRJMkhnM3ZFQ0RyVjUrUVcwQVp0REVtU09uUk1IWDJMWVR2UEd0V2N5b01FRXFrVjlDUXk5cWdsZGVwVWFEUElsTUFTbVJHV1U2UmxVeWdpTEN3VUIzR0hueDk4UU05dnNWcWV4VE0yeHBkRVFZS3ZmU0lDRXBtZ1RFcHZLMkV3VnFyVVV4bEpxNFFoakJValA4anNrak9sYjZhYXphMlNjK1dzSXJlaG5tcWswM0l4VWNubTN3Z01Fa09JWUVpSVJuTm52RXR5KzhmY3JENmtiRHlpY1V5aVlwUlF4Q0lpc21NQ0hUTVloeE1ENTVBa3MveWNFcmtxSzFPY0VVWnFZdVdzTXdKYVoyWEw2KzdKTVRNend5dXZ2TUxxNmlvSEJ3ZmN2bldMMFdpRVJoQmo4SW5ZYk94eks5bmt5cXV6bUZrUEZTcnNOTUlnNng4NU5aSXBnRVdSSWlteW9wejh2dWdYU3FySVRTeUxzUjNTTmp2c3hGdnNNS1JMU3RwRVRHbm00czhUSUpFdXNWMGlzbTM4N0NFOXNnMldUZ2tKWTRGMlFyU2p3RW5BMWhoTFk2UWsxSXIyZU1oTzl3RUgzVnNNa2dGOUl2Wk5rNjRJNlpxWVJ1QVRvTENCR0VFc0pFcUkxR2Jha09VZU5zZkhVRXpJeHB6b3Raa3FmNDhxZnArazMrVktWVkt5VWtTcDh0ZlNCTFlocWdzNlRzUkhuVGJ2TmU3eXk5NUgzQTUyYURKZ1NKclBOWmlRa1NuZWV1c3QvdFcvK2xmOHdSLzhBVmV1WERtMHQ2dFhyL0pQL3NrL1lUUWE4WC8vbi80bkRob05RdUtKbWw5Z3NKQllMUXNiU2UxVkIzZDJubEpzcUVTcUVFNGptRnJyRnlXaXh4eWZ5VldERXFFVk1nSW5zSEdqUEpSa2FuT2Y5b1JjQlJ6UlljUU9iUjZxQnRmME9sWHA0Rm9XdHNrbTc3UXUxSHUyUDVHM1k1V3pRMmhoQ0NWRTBoQlhJWnBMMkJ0M2ViRFRZSHZRWkMvdTBEQTlPbXBFT3hqUVpZeFBPQWtveVlOR2NuVitQczRJd0VHaXNUQkFraGppeUtSNXBGL1daY2RrckdxV094Y0RVc2FVdE1ZUkF0dEl0Q041cGJyR2NNM25idmNlalhnUGpTSWhaRWlQZ2ZSUXRUY1FyS0dGeEJoek9PQTNmNTh6ckJFcDg1cm45VDFXN2N2MHh4SndVNlZwWWdzaUZ5TEhFRnVhMkZaUWkwaktNYjNJNStIK2gyeTNieklRSXpvTWFKcytmUkhTaXdNNmhBeXlYZWZGeUpXK1J3M3JqM2JmWndtSHlxOFpTZmJMM0ZuQko2SVAyQmhjRkE0SkRocUxNWGNidjhRZTNDUFVnazdrVHdqZzRpZzdWaU1HMFQ2eDhFRk9uZFZQcjhrVXhtMExjREtWdFpXNWFWaXBjNEt5SUxJaGRDR3dEYjZVaERqRU9DU1pnZkpFRFN3QWFRN0ZxMzJ5S0NpblpTYnFpbTNxNVhtVzU1WW9OWGNnRHNrekJ6UU9Ebmp3NEFFWEwxM0M4N3hQc055UHg4SEJBWGZ1M0tIWDZ6MTJQY3Vlb1Q3N0Z1WHFsYlIxSHF0WVNzY0VwUU5VMGtmcnNQOGl5bnlPYzV6alU0TVhSd0JyamUvSGpJT1lPTWtlQnM3RXRRSW1qbVNXQzVVVkpsSVNZNENEVkEzNkdJWE1PWDZWa04wWUNRT3hEK01HdUhXb0xZTlRCOXNsdjNieXNsUzBSYUY4WWtqQ21HWXI0UDZETHJmdmRuandzRWVyUFdZd0NCbU9JcHB0bjJaclJLUHBNeGhFaEpFaWVrbHlxSE9jNHlUa3VVWnQyejRuZ0o4RGk0dUxmUE9iMytUU3BVdmN1SEdEdi9xcnYrSXYvL0l2dVhYcjFndFc5aHNlYkRZWmpRSjZnNUF3Rm56N214ZTRmcVdNVzVhWlVkMFQ3ajhmMHhKTk9JNzQ4TU1tZi9yOU8veC8vL1Eydjd6Wm9Qc3g1QytRT1JqcHgxcU9mMUtRVXVJNHp1VHZsQUJ1MDI2MzhYMmYrZmw1RmhZV1dGNWVwbGFyZldMbEhJMUdXSmIxV0FXd01RYWxEWWt5S0EwMjAvbWtNNFhzdGkxUmhpaEppZUNYZ0Z3QlhJem5QOGNMeERrQmZNYmhsZGZlbkZ2NmpYKytzUHhiLzdwYS94d0lnVEVKeHFUMm5FSkloSFJRS21BOHZFMnYrU082cmYvQ2FQQVJXazhIL3R4TU9NM3pteE8vTmlWY0tyalVLTEZFalF1bEphNHRYdUJHL1NwWHZRM1d5Mlhtc0NocGdUWFNXTEZCR0FlMG5TNFRVdWFzbzZBNTBnYWhZTDYrd0ZxOHdkMWVFMkxEOGZsMjB3dWlVcUJ5SDkzalZudG1wQnV6RElpaHdjTmxkWDZPSmVyc0R0c3BVWVRJTklTSHJ4UkZCYkFBdW1aSUhDWjA0ZzUxdTRSckhFUWlVTVlRRVU4bzNDbHBtK2MxVnRucjFBNDV0MFJPTW9KVkh5RmNwM1R2VkNsdER2MVA0ZHQ4NGoybllCV0NLRnRqd0dnVThuQjBRRWs2R0gzWVh2bW9YYlBDSExKdVZvWHk2a2s1OWNRMjlqaElLYWw0SHJiajRMZ3VydU1ncGNUM2ZaSWtZWGw1bVJzM2JuRGx5aFZtWjJkWldscGlZMk9EdWJrNXV0MHVXdzhmY3ZPRG03enpYLzZlN1ZzUEdES21HWFhZSFRZWUVCSTdlVnFobENLZW5MYzhyNjhwa3I1aWVrcFBJb0JocWdCTUlHZFJFMXNRQ3NsWUs3cWlSMHVNNkpBNnJ1Vkt2VnhabHJjY25XMW1ZQUw2Vmd1LzNDTXdkWlRsSUpJaFFnNUlSRUkvNnRNWTNtRmtlbWdySlgrVk5DZ2hDTFNtSHdZMEJnZTBoN3NNOFJtaTZXTG9NK1dzSk9BaFNIQlJ1S2ljQU0ycm90aVFKM1dTRTQyNTRqY25nSXVkN2hrNlg2NVVGUWxZcVI0OGRnVitUZExBNTZQbUxqOXQzT01YbmJzOFZMdTBNKzM3T0xNeTl6TXJaNjlVNGh0Zi96cC8vTWQvekIvKzRSOXk0Y0tGWTNmM3hodHY4RS8vNlQrbDNXcnhaLy9MLzVKYWpSS1JPdzVZRENIWnhXMVpWRXN1WXUwR0YyZm1zQWNDMTFkWU1wZHh3c2VQc1VjR0pKMGVac21wVXF2TzRma2V0a3JIL2FMQU5MV09UeGdSMG1IRW5kNGVGOXdsbHBicXpNa2FxcSt3ZEs1aXR6amsyUzJ6ejBWcUE2ODlVSjVrWk1ISVVUUk1qd2NIMjl6djdiSGQ3TEEzYnRNMGZYcU1HQkprUVJ4cVlnK2ZaT1BMdEE4ekdUM1MrcHFPTG1uL1R2TmFQNVlRZlJGMzFmbkRrWm1HQVZteHhrNE10aXVZV3lpeDdKU3BPQUk3ODBNUXVYN1c5Q0dKRCtYVG5weU1JcnQ2MUdQNXhPTmpzaTFqWi9sOFhZSHlMT0tTeEhjVlkydEVKOXBqWjNpWFFkZ21kQko2U2NSdWI1djlZSnNoSVFNVVBXQjBaTmRGcCtuajdKMlBkdUhucWZHMFZaa3NmQ2M5eHhHU0FKT05CRHJULzZkRzVra2NrY1FSY2FFc1JhY0RCUVJHNFpzK3h2WVJsc29JMWVjcHBUajgxczRJWGh1VUpUQ3VoWEh0dEM5WUJpVkkzVENFSmhLYTBOSUVYa3hmQlBSUmpMT3JvRVdoWGsvMTN1SVVrQjJuY2lGMkJJa1VhQ0d4blJKdXFZeVFWdFpIMDFwdE5CbzgyTnprcTBGd3BnbmdicmZML3Y3K3grYjljdHg1S3ZYcmVONHFBT1lFeTBvQmFCV1F4RU9NQ2wra2o5dzV6bkdPczQ4WFJnQW5pYUhWOW5XejVlTUhTWHJGT0Nza2dOSHBoVUNLbE9BckwyYXFYMUo3NkhFVHduNzJtUUI1ZHBSRzUzZ0J5TnVsMFNrSjdMZGd1QTkyRlNwTGFadkFQTlpaNDFRZ0JWaHljcU1TajJPNnZZRDkvU0U3dTBNZWJ2VjU4TERIMWs0L3pmTTdpdkg5bUZZM29OVWEwK2tFUkM5cEZ2d2M1L2c0U0NseFhSZkhjVDV4QWpoSkV2YjM5MmswR2d3R0E2SW95b0tiQlpabDRib3U1WEtaU3FWQ3ZWNm5VcWxRclZZUGtYcWZKR1puWjVtZG5XVm1ab1phclVhbFVtRnhjWkU3ZCs1d2NIRHd3dmFyVk1MK1FaZS9lM3NUeTNKd0haZVoyaFV1WEttQUROUHhjaEpkZkF5RVNIT1hXeEswb2RzYTg4RUhEWDd3d3dkOC96L2Y1U2MvMzhNUG4weTZLYVdrWHE5VHI5ZVJlZjcyTXdMWGRabVptY0YxWGFJb3d2Zkh0TnROV3EwR3ZwODZPRG1PdytMaUl2VjZIZHUyU1pLWDc5QmdqUG5ZL1JxVDhnaUpTa25WczA3QUtaM2FQNytrbUFCTk9uMThyZ0IrU1RqcjdlOHpEZHVwTGMwdi8xZi9aR24xSC83dnlyVnJDQ0hST3UwYlFxVHFPR01VY1hEQWNIaVRYdU5IZEZ0L1MrQnZIOXFPTEtoK0hTd2NiRW9UMWEvTEFuVXVsSmE0NGkxemZYYURHNnNYMmJBWHFJOWRLZ1B3RW9PakRFTExkS1paWjhyZjAyVkNYeUNLMDlVQ2t4aWtCU3NyaTF5WnVjQzdOMjhqNDN4eWVYcE1VMVZUcWdMT0JZdkhiZlBaa1JKZTBnaGtZcWk2RHF2enN5eEZNNVNHRG5abUJDMVJGQitScGhQdUp0TWxwaGNlaFNIUUVhM0l5bjZYbHUyd1FuZEswT3JKLzB5SVlWTWdZTlFScWxkTk5MUkhDVjh4SVhzUHd4VFdaMUthdUVBd0J5UU1DYkMxUUdKTnRwa1R2U2tGbkN0NVRVWUU1d1R3OGJDbFJiVmF4U3Q1T0k2RHRDdzgxNk0rVTJkeGNaRzV1VGtxbFFxVlNvVlNxWVJsV1hTN1hlSTQ1c3FWSzN6dGExL2pyYmZlWW5sNW1XcTFldWdtMnhqREw5NTdqLy9iLy9uL3luOW8vSHZDbnMvSStQVE1nSU5Pand1VmVSYWxRMG1hTE8vVjBWTis1SVBqZU0waXE2RTQ3TDhxUVR1Q3lBWlZ0Z2k4aVAxeGcvMW9NTEZ0elMxYWkyZEVGemJWMFNNZUJIZFlIUzh5c29iWWtVTWNOZEh5Z01DS2FJNmFiRGJlcFJ2M0R1WDVMQ29DOC9maGtTWGZ0NTJwVGhVbGxISFJFelVyeGM2Vm9aamo5emlyNStmb1l4T2I0Z1JFakxZMFNjVmlWRGJzcUI0ZkhPenlzNzA3dkQrK3l6WXRlcW14OVlUOERiTytOVGM3eDYvL2cxL25YL3lMZjhIdi8vN3ZNejgvZitJdWJkdm1yYmZlNGwvOGQvOGRZUlR4Ly80UC80SCtZRUJBUExHY2x3anVKbnZZRHlSQ2FlU0Z6M0d4UG8rVUZtS3NrSWZzb0orUUJEYWs0NXVFbWJrYVM5WUM1ZTBTVWoxcWM1OHI1c09zL3ozbzdmT1JtZWZHMGtVV3l6VVlRc2xTQ0pKQ08wNnBLaU0xUmhxVUMxRkpNcElKWGVYVGpnTGFETGs3Mk9hOSs3ZllEcHFNaUJuZ1owcnFpQ0N6bEU5ZEJhYUJLT2JJR0VWVzJzTUtVME9pRlluT2NtOGRXeVduZVUwcWFrcXpIbVN5OFZhbkk2bVFwQ3BnQVdFOEpvaTdHRDNFSWtJUTRoSXhhem5NeVFYc2ZoMXQyVmhLVDVuVllxZFNoZGVUa0o5cUNjWVdHRWNRdTVLNEpJakxockVJNk9nKzdhUkRWelhZR1gvRTdmYlAyWTg3aklBeFUxdm5vclh6VWFWdk1ZRGtPTkszV0VPYzhOM1RJQjN1MGpFOTdSODY2LzBtR3huTVVSMzZJNlMwWURwa0pvQ1NDVllwUUloNFNxNCtLd2RjcUhjY1VJNGdjUzNpa2tYaUdnSUNoc2srb2ZFbklVNlIxZ1FtSVRTS1FNYU1FMDNURE5rTXQraWpDQUczVU9ablVWQy9FR1FWYld6UXJpUW9DYUtxaGFyYXhIWkVOeDdSOWdjRVdoV3U2OURyOVdnY0hCQ0daOXNGdWRWcWZXeitYeUVranJlSTR5MGhyZkxrM3Z1WU5RR0RVbU9TcUljeDhUa0JmSTV6ZkxaaG1KcnduS3J4aEZMYU5GdGozV2lPamUvSHFRZG93Wm5rVENBUGxMRmRxSzJraW1DbkFuWUpCbHZnOTFJU09IZFZPY2V2TUFTcDE2Vkp5Zi9lRmxnbGNNcGd6V1hmdldoVmJYWm5sUmlpSU9GZ2Y4U2RleDArdXRObWQyOUFweHZRSDBTMDJqN045cGhtYTB5dkZ6RWNSMFNoSWo0bmY4OXhobURiTnA3bmZlSUVzTmFhZS9mdThaT2YvSVJmL3ZLWDdPenNNQmdNTU1aTVNPcHF0Y3JpNGlMTHk4dXNyNit6dkx6TTh2SXlDd3NMek0vUHYzVGIzcE53NGNJRnl1VXlhMnRyWEwxNmxSLzg0QWU4L2ZiYjdPN3V2dEQ5N2g5MCtlc2YzYVphcTdLK3ZzcnMvQnkxR1VCRTZkelZTVU9Qeks3NWthTFQ4WG4zRi92ODZmZnY4TC84NEI2Mzc3YWZtUHgxSEllVmxSWFcxOWRaV0ZoNElmYlBZUmpTN1hZSnc1QnF0Y3JjM053VDc2ZFNxYkM4dk16YzNCd0hCd2VNeHo1N2UzdnM3ZTB5R2cwbjYrVks0SHE5VHFmVE9mVmpPQTBZazlvcGg3bXFObytlUG9OSUZjQVFQZDdSK2pTaG1FNUxuVjl3WHdMT0NlQXpDaW5kVW0zMjgvLzE3T0t2L3g5cXMyOWlXVldNS1U1QVNRd0pZYkJIdC9VajJnZC9oVCs2UXh4MUoydmthak1iaVlYRXhjcUkzOVRxZVk0eWMxUzRVbHJsUzVkZjVkVzVDeXd6dzd3dVVSdGJlQ0U0Q29RV3FZK2h6bFI1SnJkOS9qUWhuOUVVb0EzU3dOeWN3N0lvVWJudllBMXlHK2pjcUxWSVJLUS96KzJmaXhUb2M4UEl5U0tOcG1Rc1pwaWhUcDB5TGw1bTFaMVRhWThJSjdNU3BTNmhTYWJxRTltNXorbmZxUTUzcXM2Rll2bHpCZTNoN1RLaFpJNytZcXJ0TFpibUNRNDNJM3ZTYWYwa1UzcWxOeXJwUkw4MUtZRXU3RjhWU3FJZjJmZGgxT3QxYnR5NHdXdXZ2Y2JGaXhkWldGaWdWcTlUcjlXWW5aMWxZV0dCdWJrNXl1VXlydXRpMitrdzZQcytXbXZxOWZxRUlENE9RZ2krOE5aYi9EZS84OXM4dUgySGQvLzZ4d3o4RVoyd3g4UDliUzRzempKVFdrN2xZUmxKZE1pKzlYRkszN3lCRlltaFhGS2JTOFJjVUZJUU9aQlVFL29jOEZIM0p2ZUhEWVpNaVp5anVUanpNSUVZR0FBZjloNHlEQUxXM1E5eEVrRVFwZWF2b1VnWXE1aEJQSjRRdWtXQllzNVA1Y1ZNam55V3h2YW5Sc2NKRW9WTG9qMVVZbUdNU0ovM0o4emVjY1J2OGJOblJVRnhMUldJR0t5RVJHaDh4eERQd3g1OTN2bm9GajlyM2VWdXVNODJEVHFNR1JIaVo4UnZuTFhOdGZWVmZ1ZTMveUhmKytQdjhadS8rWnZNenM1K2JBazh6K01iMy9nR0J3Y0hOQm9OL3Vxdi9ncmY5N1A4MFRsU1phN2NUL09BdTU5N0E5dWRKWWtOWmFPbU5UQWhnZUg0UnBQZlNjcFVvR3RnZHNaanVWeWowbkN4QWprSmNCR1FoVThJRWhRaGNhWUNIckFkdG5uUWJ6TmZtMlhGY1hBdzJDWm1Nc0VvREVxbVZzK2hnS1FxOEdkRHR2dHRibTN2c3pWb3NpdGE3Q1pOZG9NMlBjWUVXYjdoWFBXcnlQT0M2MGxmTHJvSkhENHVjZVFvRFpFZkUvUkRsS2N4dHNnSS9yeGVpbzNyV1pIL3RrRDZGdWxRY2NTTDJRaWtrQ0EwM1U2WC9jRU9VZERISnNRUVVzV3dVZDNnNHN6bktmbExHQ1dSdmtLRVpzckFGdG0vUjRwZU9OODI0RUJpcFRiUGlaUGFQSWUyUmxVTllXM0l6dWcrdC9adnNqbCtTSU1HRGRXakZZOFlrQksvZVovTyszVXhuMitSOEQzTzR2bGxJYjhlRlVlQUl2a3JKdXVseU11WFd4RnJzdU9UQnJ3WWpFSkxPYzFXOGNRSGxPM0pTY2xRNWFScTM5aUIwSUhJMXNTbG1MaVMwQXczdWJ2OTk3VERmWlJ3Q1FYNGFFS2RFS0R4UmNLUW1JNEpPRWo2ZEVtSW1KTFc2ZkNlamx0bTBxWmZOc1RFempweFV0VnY1TUhZTTRUVmlGRmx6TDdwY2F0emw5dWRoL1NTK0ZDYkdRd0d0Rm90b3Voc0IvRStmUGlRRHo3NDRMRUtZR2xWY0x4RkxLdkNORm5Ub3cxSENJa3htaVRxRVVVSHFITUY4RG5POFZsSGZnazZkV2JMR0loaVphSklhYVhNMlpUUTV1bERoSldTdnRVbGtIWjZINmtUVUFtRUExTGxwMGpYTzhldkxvU1Yzcy9FQVl3eUsraktNcmkxVkFVOGNjSTZ4VHZOWENFbjB6bWZjSnpRN2ZnMG1tTzJ0dnZjdTkvbDdvTU9CODB4L1g3SUtGTUZkN28ralZacStYeG1jbXlmNHh3RjJMYU40empZdHYySktUWTduUTRQSGp6ZzcvN3U3L2pSajM3RWh4OSt5Tzd1THFQUmFFSUFPNDVEdFZwbGZuNmVwYVVsVmxaV1dGcGFZbkZ4a2ZuNWVXWm5aNmxXcTVPNXVLT0w1M200cmt1cFZLSlVLbEdwVkY0WTRTMmxaR2xwaWRuWjJZbFNlV0ZoZ2ZmZWU0K3RyUzMyOS9kZnlINk4wUncwT3J6ems0ZThjdlVTQ3d1TGZQR3RPZHhhQ1ZRUGZEK2JDc25vbXR6TndKYWdGTzNXbUovOGZJOC8vNHQ3L09lL3ZNL1AzOXRIUGVHNHRiUzB4UFhyMS9uS1Y3N0N4WXNYS1pmTHoxVy92dTlQY2dtUFJpTkdveEg5ZnA5T3AwTzMyeVZKRXE1Y3VjS2JiNzdKMnRyYUUrMnZVcW13dExURS9QdzhyVmFMT0k1cE5Cb1RNcmk0M3VMaUlvdUxpd3dHZzA5RUJmeHhNRXdWd0djNkUwWjJTbUlGd2NzaGdGUE5WNnBQT0RrcSt4eW5pbk1DK0l6Q3NpcUwxZnByLzNPMWRoM0xyb0RScWUyenNCREN3aGhOTUg1SSsrQXZhQi84QmFQaGJZcjV5WEtGbVkyRmc0V0xUUVdYS2k1MXlxd3d6eXUxZGE0dHIvQktmWlZYeXV1c1dqUFVJZ3ZITjFpaHhqSUNvYTFNQm1JeHpVZjVhWTNZblpMQUZ1QTZocklGbnBTWnpsWmtSNWJTVnprTW9MV1oyaUM4aU1NM0FxSEJreGJ6cFJwelhvMFNMazVXTHBtVktsZjlIdm9wdVlKT1paUEpKeDFGL3R2RG40dE1FVGdsWUVSaC9lbXY4bSttbno4N2N1V3hLSkJBS1E1ZmJRVGdPUjZ1N1dKWkVpRWwwcklvbDh1c0xDOXo2ZEpsRnBjV3FWUXIxS28xdkZLSm1YcWQ5ZlYxTGx5NHdOTFNFdlY2blhLNWpPZDVsRXFsVTdHbUZFTHdqWC93RGU3ZHZzT2RkeitpNFc4eTFDTzZTWnNSSTJKN0daMUlwQ2hjNVk5VCtoWXJOTGQvelplY2xUbVM3bHRMU0R5TG9HVFk4emY1b1A5ajd2VHYwVlF4UG9jdFczTUtyU2dvamttdnNudHhUQy9lWVVzYzRKaVVqaThLRVhNaTVUaGlTQjE1ZjVTL3NoQW9CQm9MalVNU084U2huUkhBR2JraE1uc2I0M0E0MSs4cGRUQ1IzVlBJQkdTTXNqV0JKK21YRFR2ak5yOW8zdUh2R3g5eUs5Nmh5WkF1STRaRWhFUVRzaEpnWlhXVjMvdnU3L1BQLy9rLzU1dmYvT2FKZ1FISG9WS3A4SnUvK1p2NHZzL0J3UUUvL2VsUHM0Q0h2S2RKTFBvUUcrd0RpZWM1cUpYcnJNL01ZQS9BQ1JSU011MXd4K1piTHphc2RDSkZJcWlVQmZXU3BHUloyVGdpQzBFaGtPZnVqbEg0eEl5SmFDWmQ3dXh1c2JJMlI3MjJnaXNFcnRFVHBzMjRrcVJzTWJZTVE2bG9tQzUzOTdlNDI5NWhzOWxrTis3UXBFdVA4U0VGZFpyajkxR0wrWHpNT2NrLzRPaElvNEVvamdqR1BrbWl3UkVjSFEyZkhYbnJQZHF5aTYwOVh5K3J4YnpLTFlHMllSQjE2QXgzQ0ZVUFFZU0RZUWE0VUxyTXhmcm5xVVJ6eUlIR0NraloyQk9uaUxQdDUzRVFGaWlaa3I0NlU1NnFraVJ5RXdiMDZUT2tyWnBzdHo3aXdmQWhtNzF0ZHBNMkxkUWhWNERqOHZrV3lkNzhDSXZQSmk5NkNrd0lrYm8wU0luQkVFZnhKSTlPc1J3aSsvdW9VVUx4Ky93TTVzUjJMRktMWm0zU2NYUGFmWTVqZ2NYaHQzazhoWlZ1STNZRnFtU2hTaGFCcmZFZG4zYjhrQWZEajJpUEJyVGpCbHZEVzNSVWx4Z25VMVliWWpRaGhnakRtTlJxT3lmaElSMzFqcm8xVE1yd1VsUmRlVnN6WUtYRXIvSWtjY1VpZEEyK0Y5RzFlMnhIdDduZjMyUlRqN2padTgvRHNNMXdFbnlXTHUxT2g4MkhEeCtyckQwTGFEUWFiRzV1UGpaZmsyV1ZzZTBaaE14c0trOUNObm1kSkFPaXFQVy9Nam9hbnJ6eU9jNXhqczhBOG54bWVaYUNVMzFxOUR4YmxEemJzcTJpTmRGcDd1RzBZRkxHV2pwUW5rLy9WakZvbFpZM0htVWtzRGxYQXY4cVEyUTNNanFHYUpoYWdZOGI0RmFoTkpNR1dBbkJxWHBOQ3RMdEtRaEdFVHU3QTI3ZjdYQi9zOGZ1M29CMjE2ZlRDV2gzZkE2YVkxcHRuMTQveFBkamdsQ2RrNy9uT0xQNHBITUFLNlc0ZmZzMjMvLys5L25Mdi94TDNuLy8vVWxPMXFNNVpDM0xZbmQzRjgvektKZkxrem00SXJsYnE5V28xV29URytaYXJVYTlYcC9ZTStmQ2paeEFydGZyTCt6WUhNZmh4bzBiek16TWNPUEdEZDUrKzIzKzltLy9saC8vK01kc2JXMjlzUDArZU5EZ0wzOTRpM3B0Z2ZyTUFxKzl0Z1MyQVJGdzZPS2VCK09IQ2EyTS9QMy8vZGt0dnYrRGU5emY3RDB4K1N1RTRQTGx5L3oyYi84MjMvcld0MWhkWFgzbS9MK2owWWhPcDhQKy9qNWJXMXZzN095d3Q3Zkh3Y0VCdTd1NzdPL3ZFd1FCbG1YeDlhOS9uU1JKY0J5SGpZMk5qMVVDVjZ0VlZsWldXRmxaWVh0N20rRndTTHZkNWVDZ3dYQTRqYlV0bFVxc3JLeXdzYkZCbzlHZzErczkwN0c4U09RVzBQb3NFOEQ1bkphQktJSGc1Y1Z5bnl1QVh6TE9DZUF6Q3R1WjJhalVydUc2UzJpZHBPU2ZTUE90SlhFWGY3eEZyL1czTlBmL25HRDBZUEs3ZE40eVZYdlpXTGhZbEhFcDRUSkxpVlZyampWN2dTdnVCbStzWE9HMUMrdXNlVlc4dG9YVEJjOG9uRnp4YTNLMWIwYjhmdXBVdjhjaHJTRmhOQ0pNeVU4clNRa1NPNk5JRGlPMWYxWTZYVjdrSTRIUkJ0dTJtS2w1MU1vZWJvR1dmdHd0WGs3U1RpZnZUeTdsWVIzdjRVK1BtMEY0TnAzdnh5TW5mM0xVcWxWcTFScXU1eUtsaFdWWmxNc2w1dWJTS01FMFF0REJkaHhjMTZWZXIzUGx5aFhlZU9NTkxsNjh5T3pzTFBQejgwOUZ6ajB2MWpjMitPbzN2czcvYS9WL1ptdi9EbU14WWlpN2pNU1lRQmhDQVNVNUZhSk9VQ1I5ajhwbzh3d0lKd1d2T1dtZXo5QVRqRDJmTzYxZjh2UDlkOWhseUppcFMvUlI5VytPWEpaUTVKdkhKcG5RcmtYUzk3aWNuOFZGSDNuTjk1VnpKN2xocThGQ0tZY2tzZEF5VzB2QVJHcEdUZ0NmVm5CSnB0SVVTYnJJbU5qUkJKNUYyMVZzeG0xK3ZuT0xuKzdkNUM3N05CblF4MmRJUUVCQ1NJVENZRHMybHk1ZTRuZis0VC9rajcrWEtuK2ZKVy9OK3ZvNnYvdTd2OHZtNWliRDRaQmJ0MjRSa1ZvckM4Sko0SWtkNzJMZHRTQzJzQzlkeDY3WEVJQVRLb1RKTEFoT1RCU2FSZEFiQVVJZ2pjRVdCa2NZWENFTDQ1dVkvTXZQWFpLcDhIMWlXcXJIM2M1RExzOHZzNzQ4aHpRbEhDVnhiSUZ4d0NlaHEwWjBrNENXTmVMdVlJdDNOejlpSzJneUlxUlB3SWlBZ0RpemVrNEtPYnVQdUNvd0hRTWVONjVNaWVLVU9BNEk4UFdZUktpSks4UHphVldMcEcrUitNM2ZtMGtWSDNxVDN5aExpQ1FFVWpOVUhRYnhMcUVaQUlxeXNGaXhsMWx6cnpISENxWEl4dlpqeEpocFJ6d09lYXlTSzlDMlFMbUMyQkVvVHhBNWlxRVpNMlRFUUxVNVNCN1NNbTIyL0cwKzZuekFmdUl6Sk0wRm5vZFRGZ003aXNFaEo2bDhUL3M2WjFuV0pPK1RaVm1UWUp4NnZUNFp0M01uaHRGb3hNSEJBWHQ3ZTdUYjdZbWE5S1F5SFMxM2NWZ050YVlYaEl4bFRGVjZUK2FrTHROYkh1MElsQzFScmtDVkJiRnJHREttcTRkMDFaQUJUYmI5WC9CdTQyMTJvaEVCS2JtYjFuYzhpZUVwcXF1THltdE5lZ1ArMkhQd01namdMQTVITzVMRWt5UmxTZUFwZXFKSGh3N2RwTVcrMnViOTlzOTV2L1VSZTBBZjZERU5MTWlMT0JnT3VYdjNMbzFHZ3hzM2Jyemdnajhib2lpaTIrMHlHajFlcUd2Wk5SeDNEbW01SDdQRmRQSTZTUVpFWWV1TzFtY3c5UHdjNXpqSHk4UlJBdmcwSVNvbDI2cVViV3piT3R1c2FhNEVsbGFxQWkzTndzekY2ZWZEUFlpSDZYdEV3V25oSEwrU0VJQkpJT3hCZnp0Vmgxc3VlUFgwUy9PYzg3N0ZYTC9LRUkxamV2MkEzYjBoRHphNzNMN2JaWE9yei83QmtNRW9ZalNLNkEwaW1zMHhyWTdQYVBUeS9DN1BjWTVuaFpSeXNud1M2UGY3ZlBEQkIvemdCei9nblhmZW9kdnRucml1VW9yeGVNeDRQRDdSbWpkL1Bxelg2eE1DdUpZNTlzM016REF6TThQOC9Ed3JLeXNUOVhDdFZwdmtGcTVXcTVQbE5PWUFQYy9qMHFWTGsvMHRMQ3l3dUxqSWUrKzl4ODdPRGdjSEI4VHg2WTRWNC9HSVg3NS9uMHFsenN6c0xKYTh5b1VyTTVTZEdQUXdEWjZ4TExBa0tsVHM3L1Q1eWJ0Ny9LZS91TTlmL0hDVFgzN1lmT3A5MW1vMUxsKyt6SVVMRjZqVmFvOWRONDVqQm9NQi9YNS9vdkF0S240N25RNk5Sb1B0N2UwSjZYdHdjTURCd2NFaHB5WFA4M2p0dGRlNGNlTUdhMnRySDBzQTErczFOamJXdVhCaGpWdTNxZ3lIUStJNHB0ZEx5NkdVbXVTYXptM0c3OTY5ZXlZSllFaUoxU01lY21jUEpnMmFWeXBWQWI4azVOUFQ1eGZobDRSekF2aU13aXV2djE2dXZZTHRMbUIwbWpGVlNwc2s3dFB2L0l4MjR5L29kMzVLRkV5VDFNdk1UdFRDd2tWTzh2eldLVE5EbVhWN2p0Zm1MdkxxN0JXdWx0Zlo4R1paRER4cVE0a3pOcWxZVHVlem43bmRjMmFiREh4NmxiOVFKRWlrRUZnYWtxR0V4TUZOWEZLNlZVN1V0dWtBblpFT1JxT1VSbXR6YUxKV0hKcTJmZEs2TVJraktLYnZoUWFSMFNPR1ZDVnB4SVNLRm9YL0g3ZmRrMm5jcDhYTHV6UkpLYmh5NVNxLzltdS94aHR2dk1IeThqS2xjaG5YY1NpWHl5a0JQRGRMdVZUQzlWd2N4OEd4SFp6cysycXRSdWtVRkwzUGl2V05kUzVjdWNEdDk4c01rZ0Y3Z3owYXRSYkRXa2pkY3JDbHdNbVRSeGRuK0EySEUra0dISmJTUGdJQmtqVG5hdGxpNUlRMDlVTTJrOXRzMHFBTmp4REFSNUdyNTRvRVNkRm91V2lyV2lSKzgrSWUxNzZPcDl4eVZXYXU4UllZSVRIQ1NyZHB3R2lCTURLYjhNbWxlYWNBb2JNK2xSSy95SVRJMFl3ODZMcWF1MzZISCs5K3lIdmRtenhnbjBaRy92cEVCQ1JFSkJPajlTOTk2VXY4dC8va3YrWDNmdS8zZU8yMTE1NkovTTJ4dHJiR1Avdm4vNHpSZU16LzQ5LytXN2EydGdneksraGMxWjhINzNqTlVwcTdldjB5SzdLQzdtZzhFaVppY2kwNFBxRnArcmZJN09SMW5JN25qclp4TXZxM21PZDhtdnRiRTZId2lXZ3pacHMybTNxZmkySU5aYnU0anNTdWFuUXRZcnZkNHM3MkhydmpGbnQwMkVtYTdBWXRlb3p4aWZHSmlBcUtYNVdadDAvYjB0T05MWWVERFZJcitKQVFYNDdSWG9KeEJGcGthNGhzVXZGalZlVEZsbnlTMmpjZnAvUDF4S1BLL1l3c1ZGSVFXVERXRWUxaG0xWi9uMUNuRHp3MXA4TGxwUyt5V3IyQkV6allnVVpHNW9ScDRXd0hObWczdGQrTlhZZ2RRMlFiSXRkZ2FqRWp1ODltYjVlSDdUdnNqKyt5by9kb0U5SlJJYzBrbkNoK2krN1NSVmVBbytyZUZ6M2FMeXdzOE9xcnIzTGp4bzFKanA3VjFWWG01dWFPSllCOTMyZG5aNGQzMzMyWDczLy8rN3o5OXR1SGxKb2ZWOTdpbVJ6R0lWdXRIZGJLVi9Dc0MyaFhZRUtGU09DUk5tS0Rka0JOckxWVGkrZklNNWlxSmlxUDJPemU1VmJqSTNhamZScTBPTkJOOXFNUlBRN25VczZORzQ0UzdVZWRHWXBCTjVNeE4rL2VMeFJpUXZ3YUIySVhJa2NRbEF4SlRkR1RIZTUwMytkZS93TzIxUTdiZE5pTitqU0JMbE1yOFp6aEtMYXAvZjE5ZnY3em4zUDkrblZXVmxaZTlJRThOYmEzdDJrMEdoKzdudTNNNHJvclNPazlkbUphQU5wb2tyajdiK093ZWVzVWkzcU9jNXpqMDRtRWFlelZxVjlpcFJSQ1N2SHBFYzBhbmQwdk9ha2RkTkZTZjJnZzhWTlpET0pjQ2Z3cml3TEJIdzNTWE5BNStldVUwN1p4V2g1anloQ09ZbmIyQnR5NTIrSFczVGE3ZTBQYWJaOW0yMmYvWUVTelBhYmI4Um1PRTRJZ0lYakNuSm5uT01jbmpkeGUyYktzbDY0QU5zYlFiRGE1ZCs4ZXQyN2RlaXo1KzZSUVN0SHY5K24zKytrY1g3YTRyanQ1TFNxSWE3VWFjM056TEMwdHNiYTJ4c2JHQnV2cjY2eXRyYkcydHNiaTR1S3A1QmJPeWNyNStYbHUzTGpCdSsrK3k5Ly8vZC96azUvOGhIdjM3aEdHNFhQdll3cEZxOVhpeHo5NUg4dXlTQkxGUC9wSHIzSGora1VRQnhBMVFSaU1IN08xUGVEdGQ3YjVzLzkwbDcvOG0wMjJkdnFQM2JKbFdkaTJqZFo2UWx3Ylk0amptUEY0VEJSRldKWjFJaG5iNi9YWTJkbGhjM09UKy9mdlQwamVkcnROcDlQQjkzMmlLTUwzZlVhajBZVHdQMDRSUGg2UDZmZjdrNVI3SDRmWjJSbGVlZVVLVjY5ZXBsNnZzYmVYV25FUGh5TmFyUmFEd1lDNXVUbEtwZExFK1hGbVp1WkpLdnlsdytURWFqNVZkUlpaNEd4U1NHbVRPWisrdEVLK3NMUXA1emdlNXdUd0dVU3BmT0dMUyt2LzZOdWV0NG9VTmlvTGlEQkFHT3pTYWZ5UWJ2TkhKSEU2Nkl1TXRMUXlsWmVIUXhtSENqWjF2TlR1dVh5UjE1YXU4TnJDR3BmY1JSWjFqYnFTdUdPTkZlbVUrS1ZvOVp3VE03OUtEMk5UNGtRWUVHT3dJNWNaWnFsUndXWXdzYzQrUkJGb1F4eHFWS3loZE5LWS9hUlNuV3gwemZOSVprU1ZrVG9UZ1FwaUlVaUVtZVRML0xpY3Q1OFdsRW9sYk50bWZuNmVOOTk4a3hzM2JyQzB2TXpHK2pyWHJsMmJLSGxkMThXeUxCekh3Zk84Q1RGd0ZsRXVsN2x3NVNKemMvTU1tL3NjeEh2MFpJT29PaUljVlhCRGlTMzB4QUZybXB5U1J6MVpId2NCMkJDNWdxVG0wbmZhZk5UN0tiZjl1elJKYy9ybWFxd1RPV1FPODlCRkVxSklJUjVkNStqdk9iTHVTWmlTZDVuZHJ4Um9JMUNHVEtoNm1tTkxydEtjS24rTmpJa2Q4TXVTcnF1NFBXendrNzFiL0t4OWsvdG1sdzVEK2dRWitac1NseHB3WElkZisrS1grTjRmL3pGLzlFZC94TFZyMTA2bGhEZXUzK0NmL2ZFZk14Nk4rSGYvN3QrbHVUS3pzVDBmdzIwc1B2UTNjZmRkeWw0SmFoc3NsaDBrQmlkT3ByRWoyQVdKNEJFSWdZVWdHUXRFYU9OR0htNFc0Q0tQdUFuazV5Zk5CWnd3SktCSm4zdmpCaHVqTGs1MUFjdFdOSU1ERG5xN1BHenZzZFZxY2FDNk5PbGx4RzlxbVowVDZFazJadVdxMzhMWmVTNmtaZFdFeEVSMmhLNG1ZQnRNdnppbW5vUml5ejVPNlZ0YzhyM2xwRzlCOFZ2Y1hMWWtRaERiR2xVYU01UnQya21QSUd2emRhZkUxYVVyckZqTDJDMk5GUW1zUnpyb2xJeFROaWhYa0pRdDRwTEVkeldoTldRZ2Vod2tQVnE5TFE3VUZ0dWpObnU5UFpwSmt5YWFJVk5TTGlxODVydktqeEllN2V0UGcrSkRlVzdOdEw2K251WlpyOVdvVnF1VGNSN1NQajQ3Tzh2Nitqb2JHeHVUcU8wOHgzcHVBWFlVNC9HWUwzN3hpMVNyVmNiak1UZHYzbnppdkxMRk16eUlmRFliNzNGNWZwMjEwanJLY1RGMlRnQ25sV0F5ZTIxbGsxbzhsMjBpQndJN1lHeDFhWVlORHJwN05QdTdQQnp1c0RuWTVrRDNhWk5NeHQyOHZvdXEzNk90S1g4dDFyL05rYkcyRUZqd1hDblFqMFdoSFZ1ZzdmU1lJMCtRVkJ5aXNxWnZkV2ttKzl6dDMrYUQzcnZjRzIyeXo0Z21VM1Z6c1owVmp6VkhzOW5rMy8vN2Y4K2xTNWY0L2QvLy9kTStpT2RDRkVYY3VYT0h2YjI5ajExWFNnL2JyaUxFNCs0L0JNWW9rbmhBRW5XYUt2SFA3Wi9QOGF1R0V1Q1NXclZZNUFZdjA3dlpQTjdvSEZOb1hpQUJiSXpKbHRQZThndUNNWkNsc01KeW9ieVEvbTFVT2hNNjJvZG94TGtTK0ZjYytYblZNUVM5OUx3UGw4Q3BwZXJ3L0h2ekZIUEFVa3dYWlFqR0VmMXVRS014Wm5PcngwZTMyOXkrMTZiUjlCa09RL3FEaUZiYnA5RWEwKzBHeE1tNTIrUTVQbDJ3YlJ2UDh5YXBjMTRta2lTaDIrMU95TGZUUmh6SFQ2U3VyVmFyTEM0dXNyNitmbWhaWFYxbGVYbVp4Y1hGaWFLNFdxMU9WTVZQVzErbFVvbkxseSt6dXJyS3hzYkdKSmZ4ZSsrOXg3MTc5OWpiMjJNOEhqL3I0UjZDTVRFSEIzdjgvVHVHYXJYS3RldXZjT25TTmJ4S0dVb0NOV3F6dGRYaWIvOStpKy8vNEQ0Ly9ORkRidDFwUDNhYnJ1c3lQejlQdVZ6RzkzMmF6U1pLcGVOckhNZUVZWWdRWXZJY0hzY3gzVzZYZnIvUFlEQ2cyV3pTYkRiWjN0NW1jM09UQnc4ZVRBamdWcXYxVk9sK2JOdkdzcXpKZmg5UEFLZFB4ZVZ5bVV1WExuTHg0aVhLNWFtNk96K1dack5KclZiRGRWMHVYTGpBeHNiR0M3VUlmeDRZVWxWdG9rQ2Q1WHUzZkRxVmx4cVBwNWhPTFp6akplRHNNaXVmWVZScTE3OWRuLy9xdjdhZEdZeUpFVUppakNZT1d3ejd2MlRRKzNtQi9FM3piVnFaM2JPSFRSbVBHVW9zeVZrdWVBdGN0Vlo0WStFR24xdTV5b1pYb2hZWTNMSEJTelNXRmlucHE1MTBKalJYNDUzbHdlbVpNWjIxdHdBUmcyY2NGcXR6eklZMTdQRGdVSzdkbkNyUnhoQ0hDVW1zajdpdkZsVjRqME91SnB1cWZWUEZtZ0twTUZJVFdwQ1VMS0txb0t0RDJ2R1lFZUZFa2ZocG80QnQyMloyZHBaU3FUUzVVVnRiVzZOYXJiS3hzY0Z2L01adjhOV3ZmcFgxOWZWUHpNYm1OR0RiRGd0TFMxVG42dXcydCtrdzRFRGRweGxkWmRhcVViWnJKSW5BVVpucUw0UkpvdDRqRHJPUGhRWEtFNFFlRE4wUk85RjkzdSs4eDUyZ1NZL3BwUHhSKytmSDRVa2ZleDlISmovdU4rbVM1cWNlaENONm96NVJaUW5sT0NSSzRZcHNRaWlmOUhsbWg0RnNiMUpsQVJVSnhsSkVybUJjRnJUdG1MdCtrNThjM09SbnJadmM1NEFXUTRZRWpBaXpuTC9wRGZIc3pBemYrUFZmNXcvLzhBLzU3bmUvZTJya2I0NHZmZWxML01tZi9BbDdlM3Y4eHovOVU0YURBUkh4UkxOcU1RWU05dERHZlZoQ3JEbThOcnVDSlJ6RTJPQ1FGTlMvVmpxeFZxeTNMR0JIR01BSE8vU1ljZWFwVzNWczFTMFlRRFA1WGE2c2pWRUVSUFFZYzZlL1QvWGdQdkdheE9pRTI3djNlTEQvZ0ZiU3hTZG1RTWlZa0NBamY2ZFd6eW9icnppMVVTdlBGNTRTMWFsZGRXd3BxQU5Db0VTdW9EYVBZVFdMcE85eGl0OE1SMjJlajZKb2hpRkFDMEdDSk5BQmcyU1BydDVubU5INkZsQzJCRXVsTXJPNDJBcXMyQ0NPem0xSk1CbnhHNWN0b2dxTUhaK09HZEpPZWd6MFBpMnp5NE5Say91OXUrd0Zld3hJKzd6UDFPWTVWMlBtNnRPanBPL2pnamxPd3V6c0xKVktoWEs1elB6OFBHdHJhNU54Zlc1dWpxdFhyM0xqeG8wSkNUdzdPMHV0VnZ0WVc2ZVBRNlZTNGJYWFh1TjNmL2QzMmRyYVludDdtM2I3OFErNitUSGxoSGNDREhYTXdmZ0IvWmxkbEtlSkU0RjBVellEQTlvU0tGZVNPQ0lsM0syQW50Nm5yMGFNR05CUk8yejFON25UdnMrVzJxT0RaZ3lIQ1BkaXZlY3RDbzRmaDR2a2I4NmltS05yQ0hPcXFkQW55TzJ0N1N6SHJ5dlNWOC9RdDRZMHpENTcwUjN1ZHUvd1llOCtENUk5bWxrTzZaejhQZHJHanJ1R2pFWWpmdkNESC9EVnIzNlZiMy83Mjh6TXpId2llY3FPUTcvZjU5MTMzK1grL2ZzZnU2NFFFb1RONDFSSlF2ei8yZnV6N2tqTys4d1gvY1dVYzJKS3pQTU0xRHdYV2NVcWtpSXBpcFFsbVpKbHlkdXlXMjEzWC9SRjM1elBjRDdBdWUxZXEzc2ZyOVhlNTZpOXp1bnRiYnN0MjJwTHRpVlRuS3JJR2xFRkZPWVp5RVRPWXd6dnZvaU1RS0pHb0FwVEZmUGhDaVlLeUl5TWpJemhmZi9QLzNrZUJjc3NVc3d2VVNwdUxPL3F4bFpSeGNHakZtZ0Rtb0I2SU1DbWMzMFJpQU5Md0FMMlpiRUtHeGIyTGFMRUh1U1p1WkZFTHcwRDdNQ3l4NmlLQjRKTjJCMVk1VjRDSWNBb2JrcGpEc2s5bzRyZFJNVUEyakpzRXRpeGdwWVY4TmJZMy90MkQrdktXN01seUdkS3pDK2xtSnFPTTdlUVltVWx3K3BhbHBXMURLdnJXV0t4SEltVWJmMWNLQmhWOHJlS2x4S09BNTdQNTN2aHVkWk9ZUmdHaFVKaEd3VGUzaUtielpMTjJpclE2ZW5wTFJiUW9WREl6UXp1N3U2bXM3T1RycTR1dXJxNjZPam93T041VnF6TG8vQjZ2ZlQzOXhNS2hSZ1pHV0ZzYkl3dnZ2aUMzLzcydDl5K2ZYdUx6ZkdMd1dSdGRZM3hpVG5HSHlRNWVzeFBkMDhRU2tVV0Y5YjUxMC9tK2R1L0grZlhueXl6dlBKMEFqNGNEdFBXMWtaWFZ4ZGVyNWZsNVdWWGZRdHNzUkhYZFIzRE1KaWRuV1Y4Zkp3SER4NHdNelBEM053Y3NWaU1iRGJya3NLWlRPYTVTZTlpc1VnbWs2RlFLRHo5K0JGMnJWeFJOSnFiMjJodDdTQVkzTFNwenVmekxDOHZNejgvVDFOVEV6VTFOWFIwZE5EZDNVMWRYZDF6YmR0ZVF3amJVcm1rQzB5em9pSDdlYnJ4OXhpVzJQZE5LbUZybVhKVU00RDNCVlVDK0JEQ0Yrd2FEWWFHVU5RZ2xxa2p5N1pPSkorWkpCbjdnbExCdHErVGtWQ1J5MW0vS240OGhQQlJnNWNtYWhtcDdlZFl5d0FEZ1FiYXBEb2F6QURodEl4WE41RjFrRXhIOGV0ay9UNXNCdnNxd2lhNFpTRWhHeFllVmFhKzFrdHQwWXVucUpSVGdHVkVoUXVCaFlWaG1CaVdpZVcweEVpVnBWeDRwSlFyc1VuNlVyYWx4UVM1VFB4S0FrdTIwR1VvU1pEVHdLaTMyUERtdUwrMnhGUmlqUlI1aW1VTnNKT2dlZWp1RW85QktCVGkxS2xUbkR0M2pxNnVMcmRqcnJXMWxacWFHcGRNMk0rODNyMkNyTWo0QWdGa3IwWUp1d0kyc2ZhQVpqMU1wTE9aR2wrSVlrNUNMVXBJZVFFRnNYTk5nQ1JoYWxEeXkrUURCb3VGU2U0bHZtQ210TVk2ZGg1am5rMzE3M2J1bkh0NUZJa3lIV2RiL3dwS21LeW1vc3hKaTR6MnRXRjRBK2dsTzU5V2tnMXc3ZGtWdG5aWVBHMHJwWWZPTDZ0cytheGpLaFlsRDJUOEVQT1dtTXl1Y20xaG5OdkpCOHk1bWI4MmVWbEFSeStmNi9VTjlYejd3dy81My82M1ArUzExMTRqRW9uc3lmNDVmZm8wUC8zcFR5bnBPbi8zZHorbldDaVdLVU9wYkFrcmtLeFY1SlNNNmxWUmZTcHlvSUVJS2lKcm9RbkROUkN3V2FiSy9HVGJ0VUcyQkpKdTRWTzh0RGEzRUpFWG1Za3ZsUjBPSEIyd1E5TlNKb0F0WkF6UzVKa3JybEJhMTFrcUxtSWFCbXVwR0drajQ2cDlpK2lVTU5FeDNZeGZnZVdTdjdzTmg2VGV6Q3N1VVZBTWlsamxqMndmY1hhRFRXVUJxWEpIbVZzWENUYXYyMDlRK1Q2NklUaSt2UUl3a0RCVWhWUXh3OVQ2T0FzYmkyVUszeDVjK1lTTXF0c0czS3BwSVRzc29mTUdLZ2lQcmV3dmVDV0tRWXQ4TU1kU2FZYXBqWHZNWmhkWUZXdkVSSnFZV1NLdTU3ZW8vUjNWcVdNbzhMQjkrL04rRjdJc016SXl3b1VMRnhnWkdhR3BxY20xMjZxdnIzZTd6LzErUDhGZ0VLL1h1eWNrWDE5Zkh5ZE9uT0N2Ly9xdm4wa0FWNnBzSFFJNFQzbEdvUmlVZkFZRkF3eWZSS2s4L3pkbDIySzdxRm5vb1JKUmZZYnhwVTlaS2l5UmxJcXNraUNxWjlrdzh5U3daeWFPd3JyU3lPRkp0dmxQdzhOSy9JZlZ3YnVEclZiUGhrZENWNkhrRmVRVmdlVzNNSDBacHRQMytTcDZqVWw5a2lVOXpacFpJSTdZUW5SWGtyNU8zOUtUUHFObFdhNWQycFVyVjNiRmptMDNrRXdtdVhidEdwT1RrODk4cml4cnlMTEhic0I4N0NlVmtDUVp3eXBReUM5U0tzVm1kMytMcTZqaVFDQURqVUEvTUFqMEFLM1loTEFIK3pLUXd5Wi83NWQvTjQxOXVhM0NHUjdzVFFZd3Bpa3d6WmRJQWV4QUNCQkdXUW5zaFVERUpnS0ZZVmNjYyt1ZzUzR2pQS29rOEtzSlNjRzJ6OGxEZGdVMG42MEE5Z1FycktDZmNuRExFaWhsdTNCVFVDcm9wTk5GbHBjelBKaU9NLzRneHN4OGl2WDFMS2wwaVZTcVFHeWp3SHJNL3JkbHZXd25UaFZWYk1KUkFIczhubjF2cm5UVW83SXNId3AzUG9jSWZoaGVyOWNsZ0oybHA2ZUhycTR1bXBxYXFLK3ZwN2EyMW0xbzNnNDBUYU9qbzhNbEdwMzVjR05qSTVPVGswU2pVUktKeEM0UTR3YnBkSXJWMVNSTFN3Vzhhb2g0ek9UYUYrdjgvZithNHVOUDU1bWJmL1F6VnlJY0RuUDgrSEZPbkRoQlIwY0hxVlRLdFhwMlVDcVZpRWFqakkyTnNicTZTaWFUWVdabWh2djM3ek0rUHM3VTFCU0xpNHNZeHU3WTQxdVdSYWxVSXBmTGJiT0J3TDVPKzN4K2FtcnFDQVpEU0pLRUVJSjhQcy9LeWdwTFMwc01Edys3emVkT003clg2OTFsaSs3ZGdXWFpGdENIK2haa1FrbTNsY3I3Tk1ZVTJHV0dHSkRjbDNlc29rb0FIemI0QXUwbjIzdit1RS9UYXFDY1Jtc3JnS0dRWHlTYkhzZXlTcTdsczhlMWZQWVF4a2NESVRybENLTk5YUnh0SEdRZzBFV2I2aU5VQkcvZVFqVkFjWE4rdFUzaWQ2dTA5UlhHcGtKT0Z1QkJ3cWNvK0JRVmo1dVVLV0ZXa0ZBV0ZvYlFNY1hEY3MySFM3YU95dGRaeW5TY1pObkVMeGFtWkJNWlFwTXdBeklGU1NLRFNkSlRZQ20zenZqU0FuYzNscGhNTFpBazcxcXFpaTJsNWNNQnY5K1BMTXVFdzJINit2cGNKVmhUVTVPckRHdHNiQ1FjRGhNSUJGNG9RL1d3UXBKbFZJOEdxa0lKV3ltMVZDendZR09Xb2NnYTlkNTJFQm9lUzZEcEFxa2s3ZUNPV2xab2FxQjdKUXArbVp4UFp6NHh5M2o2UHF0VzBTM1FWOXE5SGhiWXRKdWdoRUhNU0xCYWlwSDNsekQ4Q3NXY2lXb0lQQmgyamNjU1plYmFJWUczczNhd3p5OWI5WXRzWUNnbXVrOGhGeENzcWludXA1ZjRjbVdhMjRscEZxMDFFdVJJbDIyZjg1VGN2TitSa1JFKyt1Z2p2djA3MytiQytRdDdTbGg0dlY2dVhyM0sydm82eTB0TGZQYlpaMlVIY0tQcytscTI5QmRycUVrVlZaSFJXa2VSUFJIcXZCS3lzRkJOM2Y3Q0hZdmlMVG50WlFMVXRQQUZaWnBxQTlUcmZyVDRaZ0x3MW4zb0VLeG11VnFwbzRzTWhYeUIxVklVWVFwSzZHVUZydjJ6NFJLL3dtMVAyYnJHbmNHeGU5YzBqZWJtWmtaR1J1anQ3U1dSU1BEWlo1OHg4MkFhMDdEY2ZPRkVQc2ZNNURwTjRWcmFWVCtTSmtISm9mNHFHd2dxU1YrSENLNU1ZZVhSSXVQanJKNHJPV1FMTUcxaXpmQUFRWm04bFdFMk9jbGlQdTc2MTNnQWp4NUFaSDFZaW9wc2xwREY1anFGVXM3MERpaVVnZ29GdjhXNnRNaUQxRFVtc3BQTXBSWlpMRzBReFNERkp2bFk2UnovbU9UaUhSRy9zaXpqOC9tSVJDSU1Edy9UM2QxTlEwTUROVFUxZEhkM016UTA1R2JxQkFLQmJVK1Vkd3VoVUlqR3hrYThPOGg1ZDc0cXg1czBEV1JVaVp3SE5LK0VZbWw0RlJsSkZ1aUtUc3BNc3BSZFpqVTJ6Nkkrd1hSNm5EVXpRUksyWktzN2ZwNEdXOG5ReDFrOXZ6QWVEbXZlRnFTdFA1YlRQQ3dGVE1VbWY0MmdodTRWWkpRc2NYT0RkWDJaMWZ3VUU2bHA3cWRuV0NUbkV0MlB5L2wxOWkwOCs3TStlUENBVHo3NWhKTW5UeDRhQXJoVUttM2JzazFSQW1oYURaS2s4S1JQSzBreXdpcWhsMktZUmpxNnk1dGJSUlg3alREUUFqUmprNzc5UUMvUWlhMENEbVBmMmt6c1M4UmErYmxCYkhYd0ZCQ2wyc0ZmR2ZheWh3VHdZUnJ4N3dUQ25nY3BIZ2cxVjB5ZkxSQlJNSXZZWFhaVkV2aVZoTk9rYVJZaEg3ZUozM3dNZkRVZ2hTcm1OVTg0dnAxR2ZFdFF5SlpZWGswelBaMWdjanJCd2xLS3BaVU1TeXNaVnRZeXhPTUZNcGtTdVlKQlBxOVh5ZDhxWG5vNEVXbXFxdTY3ZzU1RE9NdXlmR2ljZlI2SFlySEkvUHc4aVVTQ21aa1phbXBxcUttcG9iNitucGFXRmdZSEJ4a2VIbVowZFBTNVZLUE56YzJjTzNlTzF0WldUcHc0d1kwYk43aDI3UnBmZmZVVlMwdExMN3o5dXE2VFNDYVluRnBpYlZYbHdZUDcvUGJqKzN6NitSekx5MDhuZjBPaEVFZVBIdVg5OTkvbjlkZGZKeEFJY1BQbVRjYkh4N2NjTDRsRWdoczNiakEvUDAreFdDU1ZTcEZNSnQxczM5M0lkNjZFRUlKQ29VQW1rM2wyQnZCRE1SQ0JRSUJJSkVJb0ZDS2RUcFBMNVZoZVhtWnhjWEdMRlhsVFU1TmJoMTVjWEh5SngwajdqSXF5bVNoQ0pnLzU0cjRTd0FWc0FyamFSTHBQcUJMQWh3aXFHcXlyamJ6MmpzL2Y4UjJBelJ3VSs4elU5VFI2YVFNUUtFaG9LUGpLNUc4ZGZqclVCbnJVTmthQ1BaeG83NkxiMzBodDFrY3dDMTRETkZNQ1M3YUpYeWZ2OXpCNkQrd1YzSTlwRTk2S3dDYkU4d3BhVWNPRGhsWW1nTEVOUlN2VWNVVk1ZYmkyQ0FLQkpJbXluWE5GSkpaRCtpcWJOczlDQWlGYldLcUU0WlhRTlkyY01FbFlXZUtGQW5FS3JKc2JqSzFPY1hkNW1sV1NKTW1USmsraFRIZ2N0UDQzRUFnUURvZnhlcjNVMU5UUTJOaElKQkp4eVlOVHAwNXgvdng1QmdZR0NBYURCN1NWK3c5RlVmRDZmQ2lhQngyN2NKNENsa1dhaWZnRTlUVk5hSjR1dkNVVldiVlFGWjZkOTd2bERXeVNTUGNyWkRXZEZYMlptZndzODBhQ0RZUnIvK29JQ3cvTG1XeXJnQzAzV3paTGthaElNcGRkSlV5UWVzMkhYS3VpRkFWSzN0ZzgyNnh5ekp4NDJxUkdsQytKWmRXdlpDQVVBMHNWNUwweWFhL0ZpcFhrZm5LR2E4dmozSTB0c2tLY0pIa3lGTWhSSWtzUkFkVFcxakU4UE1SM3YvdGRmdnJUbjlMZDNiMGZ1NGVhbWhyZXZIcVY2UG82Mld5VzhmRnhPeGNGRTlDUmtWRElRbkVSS1NyUVpBMnBTYWJmVjRlTWdyOWdvUXBiTld6YkVzQldTM3E3T0tMSkVBcEpCSHd5S2pJS01zNVYvMkZZQ1BkYTQrUUM1OHpOT0E3YmlZQnl4bStsSjhIT1ZiL0JZSkNhbWhxQ3dhQnIxZVRZRGZmMDlQRGFhNjl4OHVSSjF0YlcrRy8vN2IveC8vL3Yvei9tWm1jb1VFVEhSenlmNXNHREJUbzZHbWh1NmNTeVpCVGRJWCtkU1lYRG9qMm1CdnVraWV2aitxQ2NWVGpNYS9sRUU1cU1yZ2p5SWt2U1hHZk5XaU9CNGRvL2h4VXZkVm9MaWg1R0dJb3RXRmNFUXJNUGI4TWpZd1Jsc2o2VERXbURtQlZscW5DTEwxYittYWxpa2hSMksyU0d6WkJGNXp4M3lOL0tUN2xkT0psQWpZMk5kSFIwME5EUVFIZDNOeGN2WHVUWXNXTzB0YlZSVzF1N2d6WHVIVlJWeGVmejdhaklVVWtBNTRFRU1GZUlNcFdmcDEzdFJmV2FDQ09OSllvVXJBd3J4VVVtRWcrWVNvK3pLbUl1Mlo1bHM3bW1NdCszMGt4OHUycmZ4MjNqRTE4amNGMHdkd1Nuc1VBQ0ZBbkxBNFpYdG9sZmowVFJJMGlUSW1HdHMyNHRzMUphWkNvOXlYaDZnbFZUSjROOTc4cXlHY1JUYVcyOTA4KzZ2THpNclZ1M2lNZmp0TFMwN1BERDdBMU0wM1FWRE0rQ3JBWlJQWFZJa2xiK1FoNEhPd1BZTkhJSW81amF2UzJ0b29wOVJ5MDI0WHNLT0k2dC9HMEQ2b0FhYklMWHkrYUV4OEFtaTF1QVNQbDVDcHZHQzE5bk9CYlpUdS9NN3E3Y3NyQmVwZ3pnaHlFc2U1RmsyLzQzMkd5SDQxbUdYWEhNUjhFb1lNK2g5eUlQb1lxRGhiUTVWTGQwS0NRZ3N3S2VFTWdxYUFIN09hSmlzaXhKbTFtL1FsQXFHR1NTQmRiV2MwelB4TGw3TDhyRVZKeTE5U3pKVklHTmVJRm9MTWRHb2tBdTkreE0wU3FxZUZuZ3FHOVZWVDBRRW5hbjd5bEprcnRzZC95OVcwaW4wNlRUYVJZWEY5M2YxZGZYTXpnNHlOR2pSNW1ibTJOZ1lJQyt2ajRpa1FqMTlmV0VRcUduckhFVERRME5ORFEwME5mWFIzZDNOMDFOVGZoOFBqNzc3RFBXMXRZb2xaNC96dFN5ZEdMUlZlN2N1VTAybStQdTJCaDNiajlnZWZucDA0eWFtaHFPSERuQ043N3hEZDU1NXgxT25qeEpvVkJnWVdFQlRkTzJmSGZ4ZUp5N2QrOWlHQWJ4ZVB5RnRuYzdFRUtReStWSXBWTGtjcmxuS0lETFhjeGwrSHhlV2x2dGZPZDhQdTgyOHk0dUxwSktiZTRUeC9hNnZiMmRXQ3kyaTliY3V3TkoybHdPSGNwMGtGbUNkQjd5cFgxVktodHNKazFWc1Erb0VzQ0hDSW9XYmcvV2pQNi9mUDRPdTZSZXpzWVVDQ3hoWUpwWmhKbERBdFJ5M204SUx6WDQ2Vklqbkl6MGNhSjJpSDV2SisxcWtKcUNncThrNGRGQk1pVVFGWmJQVHRZdjhQV1pYRzFhcENKa1pDeFVVOFpiOHVFemZIaFJYSkpFTHBjOGJXTlIwMDRLbFVwWXNvUmxTUWdueTdkczUyeXYzaXd2TmdGc1NnSmRBbDBHWFJMb1hvRlJLeWdGWk5aU0tjYW5aNWlQcjdOT2hqVXB4a294UnBRVUtmTGswU21nbHpPQXJRUFYvM1oxZFhIbXpCbE9uRGhCVzFzYmpZMk5MZ0hzNUVNNjNYV0h1U053THlETE12NUFBTlhyY1pWL1dXREZ5SEp2L1FiTlNpMzFkVFY0dlBYSVJSblpzSkJOeDZMMmFkK29QVUVXR3BTOEVrVy93b1lVWlR4eGcvSE1PS3ZvYnZidlRxeWY5d3VPK3RmQW9vaE9IcG5GL0RvZlQ5d21IczR6MHRpTjFOZ0FSUSthSWZBWkpvcmpheXcwc01xM3BrZlV3R1YxdlZ4bTVSUWRJWnVVWkVIQks1TU1XTXdWWXR5T1RYSWpQc0dEM0JKcnBFaVFKMHZKemF3VlFDZ2M0bHZmZXArUFB2cUlLMWV1ME5YVnRhLzdxTGUzbDkvN3ZkL0RORTErOXJPZmNlUEdEWFRYZTBBcTcwTUxXVjlHV1ZOUVZBbTFaUmpKVndOQ3hvK0ZhcFFMRzY0Vk5PWHJtNFFzUUVYQ0kwdDRaRHNxd0xHNHQyMmdMWmU2M1NSeUhlcGVQSFJYa01xL2RUSjVuOS9xdWIyOW5Zc1hMM0wrL0huYTI5dHBiR3lrcWFtSnVybzZmRDRmZnIrZnVybzYxOExwZTkvN0h0T1RVOHpQemxLa1NCR2RORG5XclEzaVpNaHJncElPWHRsQ0ZucjU4NWQzeXNNMno0KzdQRDNPOXJsUzhXdXdLWVUweXZ0Q3MzTlVTNnJKV25hTnVkdzBHNldjYTgyc0FRMmhDRzExbmZobFA2S2NIMjlvWlVXL2F1ZDVHN1dDS092Y1dmdUM4ZHhkWnN3bFpvcEoxckd2STA2RHg4TkUzUE9TajRGQWdOZGZmNTFMbHk1eDVNZ1JlbnQ3WGNWdlhWM2RvV3plOGZ2OTI4NjVxdnphSEFWd0FyaXpNWTZFbjlIR0FvcGVJcmx4bjN3cFFkcEtzMm9rV0NrbDJCQjVVbXpPUUJ3UzFEa0VIcmJXZnRINzhWTy92OHBlanFlaS9BUVowTURVd0ZBa1RCVktHcFEwQzkxcllRUUZhVStPbWZYYmpLOWVaMEVzc3k0eXJCbFoxa3lEREp2eDlNNWgvckN5Zktkd0dsc1dGeGNaSFIxOWpqWHNQZ3FGd3JidHpHVEZpNndHN0p4ZjZ3bEZLMGxDQ0F2THpHTlpwYWUzNVZkeDJGRStpM0NDbngvdWpxM3NMZGtkVDd5RGh3VDRnQWFnRHpnQlhBRE9sdjhkQXA3VWZlUEJKb1Zyc1JYQUVyQ0tyUUwrdWhQQUJuWS9UWnFLMElmZGdxMEF0bDRCTldONSt4VXZoRm9xeGw4RzVEYzJDV0U0cEJYVEtsNEljbm1zWHN4QWNzRldoS3QrdXlsQXFyQ0NmbWc4Vk1yckxDMW5tSmxOTURlZlpIWSt5ZlJzd3M3OVhjMlFTQmJJNVczRmI2RzR2NFJURlZYc0pTUkpjaTJnTlUzYmR3V3dFQUxUTkxFc2ExdnFTa21TWE1KYWxtVU13MERYRDdZaEl4NlBjK2ZPSGRiVzFyaHo1dzR0TFMwTURBd3dPanJLaVJNbkdCNGVwcm01ZWR2ckM0VkNIRHQyakhBNDdEYTJmL0xKSjB4TVREejNOdWJ6T1dabVpvakZOb2pGNHN6T3piTVJpei8xTmJXMXRadzRjWUozMzMyWDk5OS9uNk5IajFKWFYwY21rM0ZkdkNxUGwydzJTeTZYMjlmdkk1MU9FNHZGU0tmVE8yb0dDSWZEcm8xM0xCWWpsVXF4dkx6TTlQVDBsbmlvUUNCQVoyY24vZjM5TEM0dWJpSCtEeHFPY1lVc1M0ZHZPRk14NHlucGdueFJVTlQzVFFFTW0yV1Z3MVRLZnFWUkpZQVBFVlExMUJRSTlxTDVtZ0FRd3JJTk80V0pxV2NSWnQ2aE1ORlE4YUlRd2t0Zm9KUFREU09jYStwbXdOdEtveDRtWEJDb3VtMzVMSm1LVGFnSWxhK1gzZk9UNENqa3dLT3ExSVZycUNtRTBYS08vdGV4U1pVcUZNQWxESzJFNWJVd2hTMjZVK1NLTXJ3RXlBSlRXSmd5Q0Mvb3FrSkJzOGg1aW1TRVJTeWZaM2wxbFlTY0paWk5NeE5kWXFVWUkwR09PQmx5Rk12NWxqcEZESFFNakFxbDNWN0NHVkNxcWtwTFN3dkhqeCtudDdlWG1wb2FtcHViNmUvdmQ4bUNRQ0JBSUJENDJwRzlqNE9pS1BqOWZqU3Z4OVVaNW9FTllUR3JyL0FnOTRDV2NCOCtidzFhMEl0czZ2aDBVUllsUGtWOVh5Wi9kWjlNMFM5VENPaEU5V1diSkNwRlhmSzN5T0ZTL2pwd2lFS3puTm1hUTJiTlRFSjZtbFF1UjF4UGtNMTNNRlRUUVd1NEZya2dvUlV0RlBUTmZGdlhEdG81enF4TmEzVkpCOW5BVkN4MERmSittYmlxTTVOT2NDczJ5VmZ4ZTB3V0Y0bVNJVXVSRE1XeTdiTTkwTzN0N2VXOTk5N2o5My8vOTNudHRkY09SUEdvS0FyOS9mMTgvL3ZmWjIxdGphWGxKZGJYMXRFeFhmclZ2aFpsa1BVbDFLaUNMSVBXUEl3V3FBY0JBU3dVUTNka2Z4WDdTa0pDMkpIakJRbTVwTmc1dE9VVVlPa0oxLzlOZ3RjcXIrWFJDdmhPcjBaK3Y1K1dsaGFPSFR2bWtvN0R3OE1NRGc1U1gxOVBNQmg4cWozOHNXUEhPSEh5QkwvK3AzOGhIb3RTb0VTV0FuRlNSTmtnYWFhcGtXclFKQWxac2lvS1JkdTBlWGJtUTVYU1RyMWlxWlRkbHA5dlNhQnJFa1VGNHFVWXEra2wwbWJKYmNaUWdKRHFvOFlid2lOVXdNSlF5OXkwcXFMN0ZOSmFqblY5a1luVWwzeVp2TTZFdnNBYWdqZzIrVnVwK3Ewa0lKMVA5aXpJc296WDZ5VVlETkxhMnNydzhEQkhqaHpod29VTGpJNk8wdDdlVGpnYzNzYWFEaFlQZHkwL0M4NE13dUh0MDhDc25xU3djWU1WTTRscUdXUlNpeFNNSEZsS3J1clZJWDRybGE4R1cyY2t6NnY0cllTcXFraUFhUmpQMGJnamJUN1lPU0JZTXBpS2hLbEptSDRGMHl0VFZDMEthcDY4bWlKV2pMS1VXR05aTERPYm1HUXVQODBhT2dtMnFwd3JjNDBmdHJaK1hxeXNySEQ5K25XT0hEbENlM3Y3QzY3dHhiRzkzQ2tia2lUYjlzL1BQUFlFd3RJUndxaDJMcis4VUxCSjBIcHMwdE5oSHl3MmI0TW05bVVpaGQxWDhpcVFuRFZBTnpDQ3JmdzlnYTM4N1FlMjY5dnV3YmFJVG1IYlJUZGkyMEIvbldWM0RnR2NZWThJNEZMcEZTQ0FoUUJUdDFXK1dnQ0NMVGJwYTVXamsvUHg4dCtkRjFUbm5LOFVKS1Y4bGRWdHdqL2xCMStEclFUMjFvQXMyeVN4WklFUW1McEpMcU96dkpwbTRzRUc5eVppVEU0bldGN0pzQjdMRXR2SUU0M21TS1FLR01aTGZtNVVVY1VUb0drYVBwOFBqOGV6N3dTd1pWazdJb0Fyb1dtYUd4M244WGp3ZXIzSXN1eG13K3E2am1tYTZMcU9ydXVVU3FVOVV3em5jamxtWjJlWm5aMUZWVlU2T2pvWUh4OW5hV21KcGFVbFJrWkdhR2xwY1J2VG40VkFJTURvNktqN3ZVaVNoSzdyTEMwdDdVaFo2eERteFdLcFRGNHVra2dreUdReVQzeU5xcXBFSWhHT0hqM0tXMis5eFR2dnZNUFpzMmUzYkhja0VxR3VybTVMYnZOdVpmdnVCTVZpa1kyTkRWS3AxSTdlUHh3TzA5blpTVmRYRitQajR5U1RTZExwTkd0cmE4VGpjUXpEY092WXZiMjlEQTBOY2UvZXZVTkZBRHM0MU00dEFrb21sSXh5QnZEK3ZiT0pYWWFvRXNEN2hDb0JmRWdneTZwYTIzQ2gzK050UmxHQ1dHYkIvb01rSTRTQm9jY3hqV3haL1dzVHdBRThORkRMYUdpSUN5Mm5HUGJYMFZDVThPY012SWFFYkVtMkpFU28yRm0vMGpPc1ZiOEdxSkR2Q0ZQZ0RTZzBoSVBVbGdKNG9yWkdUcWxvTmJXd01MQW9ZV0ZxQXROdlVUVHM0cm9zQ1NUTFRra1hrb1NweVZoZWhaSkhrTEYwNHNVQzhXS0dPSEVTVnBIRmpSUVBscWRaSzBYSmwyMW9zNVRJVWF3Z2ZVMTB6SEx5ci9YY0ZxdlBRakFZSkJ3TzQvZjdYUXRXWjZEVDE5ZkhXMis5eFlrVEo2aXZyOS9sZDM2MW9DZ1NYcDhYVmROY3BWUUJ1K3F6RG96bmxxaFAzQ1lROXFONU9wRzhHcHBob2VURjB6VWtDcGdlaVlKZkl1TXRzbXpPTVpIN2lobDltWFVzVjdGMTJLeWZOMkdyNTAwRU9nYVVLVWVKSkxwWklyMmVJcjRlSTlHYTUzaGJQNTIrV21vbEJYOVJvT2xHK1J3VklKWGRDcUNzdURkc3kyZlp4Rkl0U2o2WnRNOWtYYzR5bFY3anp2SUN0eE5UekZpTFJFbVRvVWl1dkJReFVSU0ZnZjUrZnZlamovanhqMy9NNmRPbnQ2MHUzQ3NNRFEzeE83L3pPNnlzcnZDMy8vTnZTU2FUNkJVMVF3blF5REtSblVkYXR2Q3JLbXJqSU8yaE1ISkd4bWZaeExtZG83eVpWeWxKOXU0U2FSa3ByNkNWcjIzeU00cG80cEgvVjI3SjloQUtoWWhFSXJTMnR0TFYxY1h3OERCdnZ2a21yNy8rK283SjlsQW94T0RRRUFQRGc5ejhQRTNPS0pHalFJSTA2M3FNV0NsSnhBb1NrRFZVeTlva3gxd2w4RU9vN0NsNFdPbXJWenc2Z2E4UFF3WlRsZEE5b0h0MWtxVVk2L29hYWFGVE51VkdCVHlXRjhYMGdhUmd5cUNyTXJvSFNrcUpsSkprVVYvZ2Z2d0dkK0kzbVNMS09wc1Y0enliQk9URCtiN1Bncy9ubzdXMWxjSEJRZGZTYW5Cd2tBc1hMcnlVMS9UbnlmQnhDR0FIQnBEWGs2eEViN2ltVW82VXp5RjlLL045SytPZUg5bWVIVzZMMSt1bHJxN09WbG5YMTlIVTJJU3FLQ3d0TERKN2J3d3puOS95M1FwY0VmOVdPTWV0REVLVnNGUVpVd1ZUYzZJbExMSlNsclJJa2pMVFpFbVJFQ3ZNcHhlWWlNNHpieXlSd0NUTEp2SHJrTCtWaXQvZHZKK2tVaWwrOFl0ZkhCb0MyRENNYlJQQWxKdGxubzV5ZzZaWndMSktUNjdRVkhHWUlGVThTdGlFYnd2UURyUmlFOEUrN0x0SVphNkF3ZWJRYmhGWXdpYUM5OVkzYis4UXdDWnN6d0lYeTQvOTJHcmVuWVoycTlnWndiM0FFSFo2d1JLdmpsSjZwN0RZVEJMWWZRTFlzaWdVREF6RGNUbVJIdTNXZTZsUTNuRE5EeUhuUGlIWkxtajV1UDNvdUNaVkc0OWZJWlMvU3lIc1BPQkNIREpMZGpPQXJJQXZCSW9DUW1BVURGYlhzMHhQSjVpWTNHQjZKc0hNZkpLWnVRUXJxN2J0Y3o1dmtNOGJHT1pMZXlKVVVjVXo0UkNwTzQzSDJRM3NsQUFXUXJpcVlWbVdxYXVybzZPamc5N2VYcnE2dWdnRUFoU0xSZUx4T01sa2ttdzJTenFkSnBGSUVJMUdpVWFqV3pKZTl3S0dZVEE3TzBzbWsyRnBhWWxyMTY0eFBEek1pUk1uT0hQbURDTWpJOXQyeCtydTdyYnJ3N0tNb2loOC9QSEgzTDkvZjl2Yklzc3ltcVloaEhCdG1aK2wwTzN1N3ViOCtmTmN2WHFWUzVjdU1UZzR1SVg4OVhxOWRIVjEwZHpjL05SbSsvMUNJcEVnbFVwUkxHNi9aelljRHRQUjBVRkhSOGNXaTI1SFVSeVB4MmxxYXNMajhUQTRPTWlSSTBmNDdMUFA5bUx6bnh0T1dWTWdFSTlNOEE4QnltTkl3eW9Ud05hK2tkVk82VHhSZnF4aUgxQWxnQThKUEw3bW80SHd5UCt1YWcwVmFoY0Jrb3hsRnRGTEc1aEdHZ2tKQlFrUENtR0NkQ2l0REhnNzZKSHJxUzlvQlBNNlhrTkNNaHk3NTNMZzROZk83dmxKa0Z3VnRHeUJKb1BmSitIWFpEd281UXhnQlFtcG5ITnBvV05Td3FJZ0N3b0s1RlFKWGJHclBsSjU0bW9nMERVTDZnVjVmNEc1OVFUVDYydk1wMVpaa2FNa1JJNWtLVSs4bENSRDNyVjNMbUZTd2tBdkU4MG13bjNmdlNCK1pWbW10N2VYczJmUGN1ellNZHJiMjJsdWJxYXBxWW42K25wOFBwK2J5M2tZQmdxSEhiSnNLNEI5ZmorU0pDR0VvSWd0SjRrRFU0VjFmTEhQQ0pvNm50RHJ5SUUrMjc3ZE5GQWZLN0d5Q3ptV0JpV2ZUTTVyc0M0dGNqditNVi9FUDJPK2xIRXpLaXN6S1EvamROZXhFclpWZFBiL0xRUWxkQXFVS0tDVGpaWklHUVZPdHcvUjcyK2tIb2tnRmlvNmt1WFFJZzRCYklKY3RueFdJTytCYk5Ca1RVdHhaM1dXTCtjbm1Td3NzV3h0c0VHR3RHdWxYa0xIUXBFbFRwMDZ4Ui8vOFIvejdXOS9tNEdCZ1FNbmY4RStKeTlkdW1SM1JzWTIrT2QvL21jS2hRSTZCakwyZHkwaFlXSWhGNVpSNTFWa1ZTQzNESUpSQTRhTXp6UlJLcTJPa1pBbENjbVVRZGRRaWg0MDFMSUZ0RVFsQi9vNFBQNTQydDVSMXRYVnhlWExsN2wwNlJJakl5TzB0cmJTM054TVEwUER0anBwSDRhcXFnd1BEM1BxOUdrZWpJMFRUZGdOTkdseVJQVUU2OFVrN2I1bWFqVXZxaVdoQ1BIb2VmVzREeXZZWlB3Y3o5K3k4T1R4SjFYWmxsMjExYjhsajBIZW0yQXR2Y1NpRVNWVlBzbzlnSWFFVjZwSGxac1Jrb2VpSXRBVkdVTTEyREFXbVV4L3laM1VHQlBGUlpiSUVNV1drK1hadEh5dXpKbmQ3dmt0U1JMSGpoM2p1OS85TGxldlhxVzl2UjJmejBjb0ZLSzJ0dmFsdktidmpMU3pVYW5ZZFppYkF2YVZ4RWtVclB4YnBkM3hpMlQ3UG96Nituck9uajNMNWN1WDZlL3ZweUhTUUZOakV6NnZuNit1ZmNHZi83Ly9kOFkvK3d6TE5EZnpoU1ZiMVNzVTdCRzZrTnl1QWxPem13OE0xYlozTGlrU3BrZGcrSXBrMVN3cjJWbW1vN2RaTGEwUWwvSkVwU1RyZW80Tm8wQUNPek8rVXVWY0dSOVFhWEc5V3lnVUNuejg4Y2Rjdm55WmIzempHd2R1TWU0VXJwNEpTVWFXVlZzRi9CUm1SVUxHc2t4TUkvWC9zS3g4Y25lM3RvcGRoQmViNkExaUU1OUJJRnorT1l5dFdtMEJtckd6YkQzWWw0cktTNG1CZlR1T0FyUEFQV0FhV0M3Ly9tVkNMZEFGbkFIZXdDWi9oN0gzeS9NaWhLMGV2c2ptM1hTRnd6azgzV3NZYk43T2Q1MEFGZ0owM2NRUzR0V1kwZ3NCb3F3RTlnUWgzQTZXYWF0L2hRV0ZaRmtWTE51cTBTcGVMVWl5VGV3YmVjaXVnTWNQL2dENGZKZ2x5R2NLckVlelRFN0h1WEZ6bFh2alVSWlhNc1EyOHF5dFo0bHU1TW5sU3V4d21GaEZGUzhsUEI0UGdVQUFuOC8zWERVTUlZU3J2dHhwanJDajBOMkpldE95TEpjNDluZzhkSFIwY1A3OGVjNmZQMDlqWXlQNWZKNW9OTXJHeGdicGRKcGtNa2tzRm1OMWRaWGw1V1hXMTlkZHdyQllMTHJxNEVLaHNDTVM4Vm1JeFdMRVlqSHUzcjNMMk5nWTA5UFRySyt2RTQxR0dSd2NwTEd4a1pxYW1xZXVRNVpsdXJ1N0VVSzR1Y2VHWWJDMHRQVEVQRnBGVVpCbEdTR0VTeHdMSVNnV2kwL2R6MTZ2bC9iMmRpNWZ2c3g3NzczSDY2Ky96c0RBd0JhVkw5Z05BNUZJNU5EVUFKd2M0SFE2aldWWjIycGk4SHE5dExhMjB0Yld0b1VBTHBWS3hHSXhWbFpXcUsrdlIxVlZHaHNiNmV2cm82MnRqV0F3U0M2WGU2NUc4cjJBSkcwejNla0FZWmhRTEN1QTl4RTU3T2JhbDdXaDlxVkRsUUErSlBBSGVzNkZhMCtnYWlHRXRYbkJseVFaMHl4U0xLeGlsQkpJU0dVclQ1VmFMVUJ2UXlPZDRScENob3kzYUtIcEFzbFViUWJKVmY3QzRiN2M3Q2MydzJRa0pCUUJpaENvd2liVkhRV3d2YmRzQzlzaU9oa0taTFFjdVVBSm54V0Vva1RLTENKN0xPUWdGRXlEMVkwY0c4c0pOdVFORmhOeEZtTXhWa294WXFUSmtLZUVUcW1zOEMyNVNsOFQweVYrSzdNMVg0ejhsU1FKbjgvbjNneEhSMGZwNysrbnNiR1JqbzRPK3Z2NzZlbnBvYjYrbmxBb2hOZnJmZUU5KzNXRVk3MFNpVVR3ZUR6MjRCUzcrcFVGWXNKa3NyaE9LUEVsTmQ0NlF1RkdORkdMVkpLUmhZVmNvS0k4dGxubzE3MFNSbGdtNTgweGw1MWhMRG5PVkRITkJwdFZKVWVwZGppR05ZK0g3WnNvRU9YL083YlFKcGJOdXhrbGlqRURVeEpZYllLaFVDT3lxdUhMV2FnbEhkbDFZQVJrdTBsQzkwQWhLQkZYVEdhTEc0eXRUM0o3YlpLSjNCSnJKRWlSSjRmaFdqNGJXSVJDUVY1Ly9SSS8rdEdQK1BEREQrbnM3RHpBdmZJb0FvRUFWNjVjY2J0ZFAvNzRZd0JYQ2V6WTBzdWttU2dzb0M1THlCS29UVU40UEhYSWNZRlBXRWdZNVdZZnUzVlBRa0tWTkh5U0h5OWVsTEwrVWFwWTUyNjBtUVFDQVFZR0JqaDc5aXpuenAzanhJa1Ryb1hTYm5RbzkvWDFjZW5TSmY3KzV6OW5OUkV0MjRvWFdNb3RNcCtwWTZTbEZjc01vcTlKeUtiWUtoS3B5RFp4V1Q5SC9sbXFXTFlqZlpUQjhFam9YcG1jV21EZGlyS3NyeE1UQlhKc1ZucFZJS0NGOFFVaW1JYUhvaUloMUJJYjVqTGo2V3ZjU0h6R1JHR0ZGYmFxZmg4bTVkakdKbFhDNS9OeDRjSUZmdnpqSHpNeU12SksyUFRydXY3Y0t1REtyN3pTSUoySC92Ynd6enVCb2loNFBCNFVSU0VZRE5MYjIrc3FYaU9SQ0lPRGc0eU9qdExTMG9JLzRNZWplUURvYUdzamwwenpWNWtjUzdkdVZEVDBDQ3dKVzkzcnRldmR0cG1Mak9HM0hVYUthcDZDbXNYUUpGSldpdG5NWFZhTWRkYno2OHluWjRtS0ZFbHdiWjRkaStkS3BYTmw4OUR6SEd2YmdSQ0NiRGJMdlh2M21KaVk0Tml4WXdkYWdOaXVuWndrcVVpU2FoZW1ud0VoVEV3emx6VE5VclZ6K1hDaURwdlliY05XcVRwTE96YnhHMktURkE1Z3EzK2R1YkhUVWVXY0pqcjJLVFZmZnYzbjVkL043Y3NuMlIzVUFBUFk1TzlsYk1LMmh4Y2pmeW0vZnBoTjRqeU52YTlTTDdqZWx4RjdxZ0NHTW1mNktzN3RKY2xXZ0liYnk4cGZFOHdTRkhRN0FxWXkycU9LVndQT2ZkWXNRajRHWGo4VUdqQ2xJR3NwaFlXRkpGTXpDY1lmUkxsN0w4ck1USUtWOVJ5cGRKRjhYaWRmK0xvYURWVHhkWU1rU1dpYVJpQVFjTzJVZHdKZDE4bGtNcVRUYVNSSm9yYTI5cG1rcGdNaEJMcXVVeWdVS0pWS08yN01MUmFMNVBONUxNc2lGQXJSMGRGQmQzYzN1cTY3ZWJURllwRkNvVUF1bHlPZFRydEVZVEtaSkI2UHM3Nit6c2JHQnV2cjZ5d3RMYkc0dUxnbEEzWTNZQmdHTXpNejVQTjVWbFpXdUhYckZxZFBuK2IwNmRPY09IR0MxdGJXWjY2anM3UFRKWE85WGkrZmZmWVpkKy9lZlN3SjdQZjdVVlVWd3pEY3hiS3NwNUsva2lReE5EVEU1Y3VYZWZmZGQ3bHc0UUtkbloyUGtMOE9ITlY0SUJEWS9vN1lJK2k2VGpLWlpIMTluVnd1dDRYUWZSS2NlTUt1cnE0dExtYjVmSjdsNVdVV0ZoYm82T2lnb2FFQmdOYldWcnE3dTJscmEyTnVibTVITnR4N0JVbXlFdzBVV2RvNnRUd3NSVnpKTmhJc0dWQW9DVXFHWUo5U1JnUjJpU0t4TCs5V0JWQWxnQThOZklHdVk4SHdJSW9hUUFnbmVjNHUrVnRtbm1KK0NiMFVSMFpDUmJVVndLcVhsa2lRdXFDR3AyRGhNV1ZrVVpuMyszREpzd29iRHYxaHU4cFNrcEJNQ2Jtcy9hM1VmTmdFc0VHU0REUDVCZTRrSXpTVldySHlCbm94Qlg0RFZSTmtqQkp6c1FSejBXWFd6UmhwOHE3RnM2MUMxTkVyY24zTk1oSG1LSDN0WWRUamJGZTNCNi9YUzAxTkRYNi9uN3E2T2hvYkc0bEVJdmo5ZnJxNnVyaDA2UktuVDUrbXRiWDFVS2dlWHhVb2lrSkxTd3ZOemMzNC9YNjdZdys3SWxqQXZzQkdnUWZGZGVxemQ2ajFOYUg1VHFKYVFXUlJLcXYxeGVhWHJvRHBsU2o0SlBKK2czWFdtTWhPTUYxS2ttUXJVWFE0clo4ZmhVUC9Pbm5BZGlZdjVDaFFvSUFoQk5hNmhaQXRoR3pTNzJrazR2UGdBenlHWWRkOEFGT1dNUHdLR2EvSmlwVmtKcGZnZG5TT20ydjNXREJXU1pBblZUN3ZDbVZMZFFNTHY5ZkhsU3RYK2RNLytSTSsrUEREUTV0N1dsTlR3NGNmZnVqYUhvMlBqNWNWMU9hV3RoVVZoYkhFQXJJaEVmQjVVR3NVbW9OQmxLeUVwbHRJb253MUVlWEpvcXJoMWJ4NEpDK3lrTm10bzhiajhkRFUxRVJuWnljOVBUMWN2SGlSRHo3NGdOSFIwVjIveGpRME5IRG03RmxPbkRqQjh0b3F4WnhPaGh3citRSnphUzhiY2crdFdnMUM4YUNaTW9xd3RxcUFIYWxuWlo1djViSWRsSlg1UlM4WVFZV2trbU15TmNsc2JwMDBOckVtQUZtUzhTc1IvTDVtUFA0d3dwSko1TlpaTDh3elc3elBuZlJYM0Mrc3VLcmZISnY1czVVV3ZNL3pMWVhEWVlhSGgxOFo4aGVlbndDR3JhUnVSU3VKKzdlSHJaZWZCa21TM0h1c3grUEI1L05SVTFOREpCSWhGQXJoOC9sb2FHamc1TW1UWEw1OG1hR2hvYWVTbmMwdExmek90Ny9ML0oyN3pOKzY0VXJGREFsMEdkQkF5Qko0WllSSHB1UVJwS1FzQ1N0R3lsZ2hiYTJqSTdGV1hPZlc2aGNzRkJQazJEeW1uT09xVXUzN3NOcTVjbC9zSmVibTVyaHg0d2I5L2YwSFRnQnZwMmdsVlZ4eG43WnZiRXN2RTh1cTV2OGVBa2pZU2w5bjhXT1R2MDNZNUc4bnRzVnpTL25mWGVXZnZXeHR5bi9XaGRNc3Z5Nk1mWnJOOHZJUXdCbzJjWDBLbS94MWJKOTNveW9vWXhQdFh1ekwwQnl3eHFhL3h0Y0pEZ0dlWVE5dHNJVVF2Rkt5UjJHQmFkaVZVazhJYXRwdFV0QW8ySlZKSTJjL0IybGJ6VGxWdkNTUUhRdHpDNHc4VmpwT3dWcG16WlI1c0twdzcwR0tleE1iek16R1dWaEtFWXZsMlVnVXlPVy96akhqVlh4ZDRXUUFhNXEySXdLNFZDb1JqVVpaWEZ3a0ZvdWhhUm9kSFIzSXNrd2dFTmpXdWd6RGNHMkpkem92SzVWS3JyVnpQQjVIMTNVa1NjTGo4ZUR4ZUxZUWU4NjZIZnZvYkRaTE5CcGxhV21KdGJVMWxwYVdtSjZlWm5wNm1vV0ZCVFkyTmlpVlNsdVdZckc0WTVLNkVxdXJxNnl0clhIdjNqMm1wNmRaWGw0bWtVaHcvUGh4VjRuNkpNSlZVUlM2dXJwY0FyaTJ0cGFHaGdhV2xwWmNjamVYeTFFcWxkelA2dGhxNjdyKzFPMTJHbzNmZnZ0dHZ2bk5iM0wrL1BsblJ1d0lJYWl2cjZlbnA0ZUZoUVd5MmV3TDdac1hnV1ZacE5OcFZsZFhTYVZTQklQQlo5WXJKRWtpRkFyUjNOeHNOMVA3L1c2andPenNMTlBUMDR5TWpMZ0VjQ2dVb3EydGphNnVMcUxSNk9FZ2dMRmo3WlZ5dFAxaGhCQzI4dGZOQU40L0FyaUVQVjZ1WXA5UUpZQVBBVFJ2YlV0N3p4OTNhdDRJa3FSaVdaVkNBc2ttZ0F1cm1Ib1NCUmtOQlM4S0FUUUNsb1pmeUhndDBJU0VaRWxsMWEvOG1CQzVLdHhTcC9OZ2dkQWxNT1d5SWs1eWkzOE9OYXRna2lMUGplVXBZb2tzTFZvamNoRUtoU3lXWW1DcGdvTFFTZWJ6cE13Y0dYSXVBZVhZUE50S1gxSFcrNHB5VVhwM1RKNmJtcG80ZmZvMFo4NmNjWE1lbXBxYWlFUWlCQUlCZ3NFZ2RYVjErUDA3amZXcVlqdW9yYTJscnE0T2o4ZFdkamxlZ1VVMjQwaFhnTnZKQi9ndFA2RzJKbnpCZmtSSlFqRkJ6ZHZ1eHNoZytxQVlrTW43Qkd0aWc0bjhPUGR5RXl5WUdSSnNXaisvRE9yZko4RnVycEFvWXBLbWlCMFhKekJpSnZsU2dVTExFTU9oVnVyOVBud2xXOUZwQWJvS1pqMnNXaW0rZURETzdlUXNNOFUxNW8xMUVtVElVU0pMcVh6T0daZ0lKRm5tN1Bsei9PbWYvQWtmZnZ2YjIrbzBQRWcwTlRYeHU3Lzd1NlJTS2Y3VGYvcFBySzZ1WXBaYlVUWnBDZnZhTkpGWnhqdnVSZXBST1JucFFiWUMrQzN3V3NMZXh4S0ljc3Vock1qSXNnVG03dHdUZkQ0Zmx5NWQ0cHZmL0NZblRweHdPeTJibXBwMlpmMlBRMWRYRjkvNTduZFpXMXZueTA4L0pVT09MQXByK1RXbUZoOVFYOU5BdTZjVHY1Q1JkV0ZUTjVYNXZnNGJWbm55YkhmK0kwa0lEWFNmUk1FcmtmT2JySmtyakNWdU1KTmJKY01tQWF4cWZob2JqK01QRDVLWFpVeHRuYW5ZNTl4WXVzYU10Y2l5bnRsQy9sYVNjeTk2VG9kQ0lXcHFhbDRaOGxjSXNlMnNxU2V1ZzgxOStqQUJ2RjFvbXNheFk4YzRlZklrL2YzOU5EYzN1L3U2b2FHQmNEaU16K2NqRUFqWVdiOTFkYzllcVF3OS9mMDB0N1M2OXd0ZGdwSXNVVkFrZEkrZFFHdEpBaEUweVNnSnB0TlR6TVJ2czFLY0lrYUtqQXhwczhSYU1VT3l2QTduTUhlSTM4cHMzNzJ3ZWQ0T2xwYVd1SGZ2SHVsMGV0dHFnOTJHWTBPM3Zkd3lBeUVjRjRYSG9ld1JJMHlFS0lFd0Q3NjZVRVU5TmdIcFdEazdQemVXL3hiQkpvVHJ5NCtOei9rK0NqYVJETFlGZENPMlpmUmhQd1k4Mk50OUZGdjFleDViK2J2YmtwQmFiRkw1R0p2MjJNdHN2OVhxVllHamZ0NFRBdGdTZ2xMSnhDaWFxRDVuSVBOU0J3R1hZUUd5blFIckNVRk4xeWJwbTE2QVVzYisrNnN4eEtrQ05uTTVMQm1qWkJGTlpwakxMREFaenpLKzZtRmlyc2lENlJUTEswbVN5U0tGb2tHeHRMLytsRlZVY1JnZ1NSS0tvcUJwR3BxbTdXaXVGNC9IR1JzYlkyeHNqSGc4VGpnY2RtMTRPenM3dHpVMk4wMFR3ekF3VGZPNTVtVzVYSTYxdFRXaTBlZ1RMWkVCOTNOSmt1Um1COWZWMWRIUzB1SXFnamMyTmx6YjVtZzBTaUtSWUgxOW5iVzFOVlpXVmxoY1hHUjVlWG5iemorUGd4Q0NWQ3JGelpzM1NTYVRURTVPY3Z6NGNjNmVQY3VwVTZmbzYrdDdhc043ZTNzN2lxTFExTlRFK2ZQbnlXYXpTSkpFTkJybDd0MjczTDU5bStucGFUS1pqTHR2bjBYK25qdDNqamZmZkpNMzMzeVRreWRQMHRMUzhzelA0Y1QvWGJ4NGtZMk5EZTdjdVVNMm0zMnVmZktpc0N5TFpETEo2dXFxbTkyNzNjYmd1cm82dXJxNjZPenNaRzV1amx3dXg0TUhEM2p3NEFHeFdJeisvbjdBcmxHMXRMVFEyZG5KNU9Ra3lXVHlVTmhBUzVKTkFydG43Y0Z2a28xeUM2d1FZRnBnR1BialB1NHl4eml6aW4xQ2xRQStCTkMwaGo1VnEvdXhKRDN1NnhDWVJoNDl2NHBoNXRDUXl3cGdGWS9wUmN2NTBSUU5WWlNUTWtVNTVhNUsvajRCNWFxL0pHeUNoRW9ycmEzUGN1eHJKU3l5RkZrc3hOZ29aS21WVmxCUk1JWHVrcnFPbmJPQmNKVytlamsvMkxHOHRkKzVVdVc3c3l1cnFxcDRQQjVxYTJzWkdCaGdjSENRdHJZMldscGE2Ty92ZHkyZXcrSHdvYkQ1K0xyQTUvUFpXU3dWbllDT1Y2Q0VYUzFNQXZOR2tWRHlQczFxQzk2d1NyTzNBMDBvZ0lGczJIMGJSWTlFSWFDUUR4Vll5RTF5Si9ZbDg2VVljU3d5MkhmSWw0SDg5WGc4cUtxS0xNdUV3Mkg2K3ZybzYrOGo0QThnSTFISTUxbGZXV2R4Wm83WS9CcUx4U2g1bzRBUk43R0VoZFVCUTNXZDFLaGVORXRHcUpDV1NxeGtvdHlMVFhOOS9UNFA5Q1ZpWkVpUUo3ZEY5V3VXeVYrSml4Y3U4TWQvL01lOCs5NTdoNTc4ZFRBd01NRDN2Lzk5RmhjWCtidS8renNXRmhaY0V0Z2VvNVdRa1ZnbGlacFp3TGZndzJ0NTBlcTZVQlFmcEUwVVMyQW9ZRWdDdzdMUUxRTkRtT1dtRmdjNzA1a3Fpa0puWnlkSGpoemg3Tm16WExod2dkT25UOVBSMGJFdnFyNVFLTWpsTnk3eitXZWZjK3ZMNnhSS1JmSkFRazh3czNDUHJ2Wk9tdW83TUV3RnBXaWlsQ1FvaUUzUzExbDJkT0pJOXIxQ2c1SVhDbjZWWWxDd3JpL3hJSEdUbWV3aVVVc256K2JiZUh3Qit2dUdhUXkxc2hoZllISDlNeDVFYnpDZG4yVU40V2I5VmdZRTdoWXh0eHQyMjRjSlFvaGRuYlJ0UitYcjlYcnhlRHh1ZEVKZlh4L056YzMwOS9mVDE5ZEhhMnNydGJXMTd2TmVKRDVCOHNxb0hoVVQrMWpJQTNsSlFsVmtGSjhIeld0UWxHS3NGbWVaU2p4Z01qdkRRbnFlZFN0SkhMdGQxc21Ncm5RMGQ1Uyt6dUgrdlBiV3U0Vm9OTXJ0MjdkSnBWSjBkSFFjeURZNGhhVHRGTXlFTzA2RXh6SU5rajFURmxZSjA4eGppYW9DK0FEZzlOY0ZzVW5kTHFDdnZQU1cvOTJPYlhsc1I3TnZMcDVkZVAvRzh2cmJzTW5sNVYxWTUxNUJ3OTdPWTlqRTd4bnN2TjY5NmdxdEIwYXhNNzNpMk5adVh6Y0NPTU1lS29BTnd5S1gxeW5rZEVMQjh2anJWZUIvd1NaOExRQUpmSFgyN3l6RFZnT2JobTBKN1NxQnE3V09seExTMXNYU29WQ1VXVTFJVEM3cjNKeU5jbTg1emV5R2w5V0V4UEphbm1ReVZ5VitxL2phUTVabFZGVkZVWlR0aldlRklKUEpNRDA5elJkZmZNSE5temZKNVhKRUloSFM2YlJicDlrT0FmeWlUYm02cmhPTlJsbFpXU0dkVHUvNDllRndtSEE0VEZ0Ym03c3RqcVd3bzI1ZVdGaGdkbmFXeWNsSnBxZW5XVjFkSloxT3UvYlN6Nk1HeldhempJMk5NVFUxeGYzNzkxbFlXQ0NSU0pETDVlanI2eU1ZREQ1eC90M1Mwa0pMU3d1dnZmWWErWHllZERyTjJOaVkrNTNvdWs0dWx3TjQ0bjUxdnFNVEowN3d3UWNmOE82Nzd6STZPcnJ0aGxwRlVlanU3dWJTcFV1dWV2cWdDR0FoQk1sa2t1WGxaYUxSS0wyOXZkdXVJWVZDSVhwN2V4a2FHaUlXaTdHeHNlRitubGdzNW1ZdnE2cEtVMU1USFIwZDFOZlhNejgvdjZlZnlmbnVuMVd6VUtURHJRQUdNRTFiL2J1UEFuRkhOM1hZbTJoZktWUUo0QU9HTEh0ODRmcFQvYW9hTGs5b3RtcFZUQ05McWJTR1hvb2hoSUdFRndVVkR4b0IvSVNvd1k4ZjFXVXlwVEw1ZTRpdkxnY0dZWHMrU3laSUprSVNtTEtFcFlJbGk3STFzMVZPS3hWbHBhNUFMLy9MeEVMSElpK0tibEt3L1Jlci9GcEg1ZXY4YkxucjJMU1ozUDZnS1JnTUVnNkhYVnZuOXZaMmFtcHFhR2xwNGN5Wk0xeTRjSUgrL3Y1cWZ1OEJ3OG41cUJ5SVZ3YkdGYkNyUUNxd1lLVzV0ZjQ1ZFdvOU5aRm1QTElIUTFpb3BzQlV3UFJyNUFKRmxzd3A3cVd2TTVHZUlvcTVKZmYzTUZrL2E1cm0ycDk2UEI0Q2dRQU5EUTJ1L2JpbWFVUWlFYzZjT2NPcFU2Y0loOE5Ja2tRNm5XWjZhcHJiTjI1eDQvUHIzTDkybTJ3MHlaeTVpcGt3c2J3U3VxYlE0V3ZCcHlnVVJJNlZYSnl4NVJudXJqMWdnVFZpWk8xc2Jvb1V5eGJyanIyNm9pcjA5L1h6Z3gvOGdJOCsrc2kxaFhsWk1EbzZ5aC85MFI5UktwWDRQLy95TDBtblV1WHJEMGpvYnVYYmc4cFljaDZ2N2lQZzhhTUVXd2g3VkZURHNvOC9XYUFyUmZMa3lGa0ZEQXpYZVdDNzlHOG9GS0sxdFpXaG9TRk9uanpKMWF0WHVYTGxDclcxdFh1NUN4NkJMTXQwZEhUU1A5QlBReVJDYkhtSlBCWkpxOEJLZHBIMS9CTDUyaHhCb2FLWUVrcFJzRVdhKzF4dkNrS1RLUGtrOUpCS0lTaUlTbXVNeGE5ekozcVROYU5JamsxYmRnTUpTL0VndkJZeGFZR2JzUys1TmY5cm9xVWtKZXoyeGtwcjNzcG1qdDA0cHgxcnJsY0ZsbVU5ZDZmNXMrRDFlZ21IdzNpOVhqUk5vNmFtaHNiR1J1cnE2Z2lGUXZUMDlIRHAwaVZPblRwRlMwdkw3dHFhT3drZkZzaWFocUxJRkUyTG9pSmpCajBVVllWTWFvT0NzVUJTVERJZXU4MVlkSW9WY3FUWWVodzU2dkdIZXh5Y3BvTEt0endvWkxOWjd0eTV3L1hyMStuczdEd1FHMzZuS0xDYjZualR6R1BvS1N5cm1OdTFsVmJ4TEFTQUJteVNzUUdiaUczQUptTzdLcGJXOG5QMkNpcTJ5cmkzdk9SeDdFd09GM3pZMjNrQ3VJUk5BUGV4KzhyZlNnU3g5OGtHTUFYYzUrdVhCZXhZMmxWbU91MGFETU1pa3ltUnlaUUkxbnJ0bGNzU21JZnQ4SHRPQ011MmVWWTA4TlhhbWNCNkhrd2RzbXMyR1N3cDlsTEZ5NGx5U3Brb3dYcENzTEF1bUZpR3NWbVRtOU1HVTZ0RjF0TXEyWkpNTG1kaXZJQ1NyNG9xWGhVNFlwRHRLb0FMaFlJYncvTEZGMTh3TmphR1lSZzBOamFTeldZSkJvUDA5UFM0ZHRCUGcrT2s4eUlrY0NLUmNPMS9IY0p1cDVBa3lXM3FWRlVWdjk5UGMzTXpiVzF0REE0T0VvdkZXRjlmWjMxOW5aV1ZGZWJuNTVtZm4yZDZlcHJaMmRubklwK0ZFQlFLQmNiSHh5bVZTcXl2cjdPd3NNQnJyNzNHeVpNbm4ybkRERFlCZnUvZVBUNzU1Qk8rL1BKTEZoY1h5ZWZ6ejl5WEhSMGRuRDkvbnJmZWVvdXJWNjh5TWpKQ01CamMwZlkzTkRSdzRzUUp2dnp5eXdNVkNWbVd4Y2JHQmdzTEM2eXRyVkVxbGJiOVdXcHFhdWp2NzJkb2FJaXhzVEUyTmpiSTVYSXNMQ3k0VFFVMU5UVm9tdVphUU5mWDF5TkowcDdVRVNwcm9JWmhrTWxrbnFoc2x5UlFGZEFVY01zSmgybTRKbTFhUUJjTjBQZlBBdHJCSzVSbmN2aFJKWUFQR0xMc0NYazlqZitIcXRsZFBFNGFyQ1RKQ0FURi9BcTV6Q1Nta1NxckNXVTBaTHlvMUdnK0luVWhhcndlbEhTNVkxYklaUlh3MXgzT2dLSmNXcGNxeVY4RFpBdGRzZ3V1dWxkUVZBM3laZnZZU3VMV1R1bWxUUElLRk15eVc1RmNicloydENLaS9DcGM2K2l0YXQrZG9hZW5oM1BuenJtRGlrZ2tRbnQ3TzNWMWRRU0RRV3ByYXcvTVNyR0tSeUhMTXZKREJEQnN4bzNtc2VlNnE4QUU2M1RKczdUNzF4Q2lFMDBvcUthRnBRamtXb3Qxc2NEMWhWOXhQWG1EUlF3U2JNMzlQU3pxMzNBNHpLbFRwemgyN0JnZEhSMDBOVFc1ZHRpTy9iaW1hYTR0YXFVMXJSQ0N3Y0ZCWHIvME92ZmZ2TWZmL0krLzRwLys5aGVzVGk5UVFrZVBDWko2aWNIbUlYeUtSRFMxd2tKeWpmbnNHcXZFU0pBbFM1RThPa1hNTXZWcmxaV3lVRnRieDd2dnZzczc3N3l6TFh1Y3d3YXYxOHZGaXhmZENjdy8vZE0va2Mvbk1iQ1FzSXNnOXYwZ1l3Y2Y1aFdDUzE2VVZvVStmeE8ra29KbENFcXFSY2xYSU8vSmtDVkxDYU9pSWFYeUd2bDR0TGEyOHRaYmIvSHV1Kzl5NHNRSk9qbzZhR3hzUERBNytacWFHb2FHaHhrZUdlRmFMRXF1VkNJRnJKTmpOYjlNTEx0QzBQTGhNVDBJdzBEYXNlSVgzUDJpZ3VXRmtsY2k1NWZRYXkyaThpcTNvNS94UmV3THhvMFZvbGd1RVdlN3VFc2tEWlBQNThjUStrMW1WeDRRTFNWZDVYNGw4VnVaOS92SUZrZ1N3V0FRdjk5UFBwOG5rOWxlTk1xclJnQWJodkhNUEtUblFYMTl2WHQvYld0cmM2OWJsUVJ3S0JTaXZyNGVuOCszcSsrOUJSSUV3alVFRytySnI4ZEl5aVZTd1R4WnI4NWs5QnBUUzUrd1ppMnlWc29RUlNmSlpneUFjMHc1VFFTVkt2TGRhaWpZVFN3dUx2SVhmL0VYTkRVMThmNzc3eC9JTmppcWlXZWliUC84cEowb0lTRWtzS3djaHA3RU1vdGZOM0xyb0ZBUGRHQ3JWd2V3cllZN3NWVytvZkpqYmZseFAyNVNqY0FSN0pTUExEQ0JQVnc3TFBDeXFmeTlDcnlCdmQ4aWUveSt2dkw3RG1FVHdZM1lhdUN2VTRISFlBOHRvQTNEb2xBd3lPVjFoRzRocWErZ0xiSVE1Y1o0R1h6MXRoMjBVYlFWd1BsWXVUcTU2OXg2Rlh1RlN0V3ZBR0ZDc1NCWVRjRDRndUR1ck9ET3ZHQnlDV1pXSVpxQ1RNSEFPbXlEbVNxcU9FQ29xb3JQNThQcjlXNkxQSTNINDl5NmRZdFBQdm1FdTNmdnNyaTRpQkNDZkQ1UHNWaWt2cjZlNDhlUE16UTA5RlJpMEZFM21xYjVRbk95UXFGQVBCNG5rVWhRS0JSMnJaNGd5ektSU0lTR2hnWjZlM3RkUytWNFBPNHFkMi9kdXNYZHUzZVptSmdna1VpUXorZDNyQWdXUWpBek04UHE2aW9yS3l0RW8xR0t4U0t2dmZZYWtVamtzV3JXUXFIQTdPd3NuMy8rT2IvNjFhLzQvUFBQbVptWm9WQW9ZQmhQSGlKNHZWNDZPenU1Y09FQ0gzendBVmV1WEtHN3UvdTVYTmNjVld4ZFhkMFRzNHYzQTBJSUVva0U4L1B6cksydFBmWHpQNHhBSUVCM2R6ZDlmWDNVMTljelBUME40QkxLS3lzcmhFSWhGRVVoRW9uUTFkVkZRME1EcXFydTZIdDJHb2FkT2VQRGk4ZmpJUlFLdWRia2lxSVFqVWFabXBwNklnRXNTK0JSd2FlQnA5ejhkTmdnc0luZm9nNjZzYTkxQkVIWnlMYUsvVUdWQUQ1Z3lJb25xSGtqcUtxamlDaVg1aVVGaEVHeHNFSStPNFZsNWxFQUdRVVZGUzhxZmxVakhGTHhxVEp5eWdLcmNuVDlncWprQnA3TkV4eENsRGRXS3BkRkpSTmthNVA4bFMwS2lrUmVrOGdxZ294Y0lrdUJBbnFaQXE3VXlUbUZlcHQra1J6cHprUEtYc0h6S1gyOVhpOTFkWFgwOS9jek1qSkNTMHNMUFQwOURBME51VGU1UUNDd3Q0WG9LbDRJc2l5alBsUllyaVNCUzloVndSU3dndUNyekFNOHNTQW5hOStreWRlTllYb3hwQkliNWp4M1lwOXlQWEdiYVRQUEJsdVZYdnV0L3BWbDJjMjJiRzl2WjNCdzBGV2kxOWZYMDlmWFIzZDNONUZJaEpxYUd2eCtQMTZ2OTVtRFM0ZmdDZ2FEYm03czBzSWlNN096Rkswa3VpRkl4WXNzV25FMENWSzVCQnZGTkNseTVDaVNwMFFCdld5OWJwWC8yOXd6TmVFd0Z5OWVaR1JrWkUvM3oxN0M3L2R6NWNvVmQ3SjA3ZG8xZEYzSGNKcUVzQnVDSkNUbXhTcStEUS9oa0k5Z2pZZDZhcEVzbGFKaWtmVVlaTlVpT1lyb1d3amd4enNHeXJMTTZPZ29wMCtmNXR5NWM1dzllNWFUSjA4ZURoVzFCR2ZPbk9icVcyOHhkdk1HU3hzYjFHTDdTMGJOT1BIU0dvMVNPd0hKaHlaSmFPNE5iTHRualdRL1hRWERDN3BmcGhoUTdjeGZZNDZ4MUdkOEViL09tTDdLTWdZcGNPMmZzVjlHdEpEbTJzSmRERDFIemlqZ0pEaFhPbEUveWZJNUdBeHk4dVJKVHA4K1RWOWZIeDZQaDg4Ly81eGYvdktYckt5c1BMT0QxY2xtZWxWUUtwVW9GQXJQWFd3SWg4UFUxdGJTMHRKQ1YxY1hiVzF0THRFN09EaEliMjh2RFEwTkJJTkJmRDdmL2pVMlNKdVA0Ym82Nmx2YVNNZmkzSWxQd3RUZmcyV3dzdjZBeGN3a2NRUjViTUkzeHlieFc1bnI2eHdWWlZQTVF6bFVLNVZLL1ByWHYrYnk1Y3U4L2ZiYmVEeTc0Y0s3TTJpYXRuMmI5S2NPcFczL0Y5TndGTUNGNUM1dFloV2JVTEdKUkgvNXNSYWJWT3pHSmwxSGdSRnM1YStQWFp2ODdBaGhiREk2aGswQ0wzSzRDR0RIaXZrU2R1N3ZNZXo4NDcyR2hLMENic0grdnJxdyt4OFQ3QkVoZWtpUlpvK3NyNFVRNklhRnJsdUlWNVloS3hQQUVxRDVJZGdFUmdHTXZNMGVsdEpnbFdkRlVyVjJlT2hSVGlnRFcvVWJUUXRtVndYakM0STdzNEt4ZVpoWUVxd2xCTW1zclVLcW9vb3FOaUhMTXBxbXVhNXIyOEg2K2pyWHIxL24wMDgvWldGaHdXMG9kcXlINitycW1KK2ZKNWxNUHBNQWRseVpYclFwTjV2TnNyR3hRVHdleCt2MTdtcDhrWk9UN0JCMWdVQ0EydHBhV2x0YkdSZ1k0Tnk1YzB4TVREQTVPY205ZS9lWW5Kd2tsZHBaRDZjUWdsd3V4OTI3ZHltVlN1NWM5ZHk1Y3d3T0RtNTU3dUxpSXJkdjMrYmpqei9tODg4L1oyeHNqUG41K1dmTzFXdHFhaGdaR2VIeTVjdGN1WEtGYytmTzBkZlh0K1A5VVFrbm51MmdrY3ZsV0Z4Y0pCcU43b2dBZHBTOTNkM2RXMnBTcVZTS3ViazVwcWVuYVd4c3BLR2hnVkFvUkdkbko0Mk5qZmg4dm0wVHdLcXEwdGpZU0ZOVEV3ME5EYTZBcGFhbWh0cmFXcmNlNzlSR2ZUNmZteE85c2JIQjZ1cnFZOWNyeXhJZVRjTG5sZEJVNlZCTzFtMEZzS0JrQ0l6OVV3Qlg5ckJYc1U4NCtLdkExeHlTN0EycVdqMktHclJMMWU3Wlp1dE05V0tVUW5ZZVlaVlFrRkdSVUpIUlVQRUlCUlZRaFVBUmxKVy9oN0NsWk4vaHFINDM3WjZSTElSc0w2WUdSYjlNWHBPSnlRWlRpU2h6bVNoSjhoUW9vYnNhNEVxaXhFMkY0OGxYN08zVHZnNkIxdGJXUmx0Ykd4MGRIWnc5ZTViWFgzK2RucDZlYW9idlN3WkZVVkNmMEpGbllWZThpdGdYM0FSd083bE1zWmpEVW56MGgzSjRDRkt3Y2p5SWZzVlhxOWVZTk5Oc2dKc1hxck0veXQ5UUtFUTRITWJuODFGWFYwZFRVeFAxOWZYVTE5Y3pQRHpNdVhQbkdCb2FvcW1wYWRjR2tZcWljT0wwU1M2OTlRWjM3dDVsWm5LU3FKV2hJSFJXRTFGa3BQSStOQ21XYzM1TEdPWC9yTWVlazVxbVVWOWZ2Mk9Mbk1PRzF0WldQdmpnQTliWDF5a1dpM3o1MVpjSUlUREtlY0I1ZEtUeVBXSFdYQ0djOFJETWVCZ0pIeUVvQjBoSkpyR2l5WVp1aythT1RiYmc0WllWbTN5TVJDS01qSXp3alc5OGcvZmZmNTlUcDA0ZGlzbENKWHI3K25qcjdiZjU1Uy8rZ2ZVdnZpQmZWZ0V2NndtV1MvTjAxNHhneVhYb2VWQlZ5ZTRCMnU2Skk0TlF3ZkJKRkFJeUJiOGc1VW16WXF4d04vNHBYOFUrWTRJTmxyR2JPUncxcGpOOXNiQXc5Q3hwUFl0TVpaYjgxb1hIYkZJNEhPYlNwVXY4L3UvL1B1Kzk5eDY5dmIwQS9Qem5QeWNlai9QTFgvNlNRcUh3MU0zZkM0dWpnMFN4V0NTYnpXNmIxRlpWMVoyd3RiZTMwOVhWUlh0N08zMTlmWXlPampJNE9FaHpjL09oaWszd2gwT0VHcG9vcVNxM05tYVkyVmhFUm5mdkc0N2F0OGhXMi9Bbk5SRWM1aU1nSG84ek1USEI3T3dzQXdNRCs1NVp2ZDBNWU5qZWFFNVlSVXdqaTdEMGFnYnc3a0xHdG5EdXdGYjRObUdUaVMzWWRzYk83OXM1Mks3eEFEYTVtUVllQUdQWW1iZUhvWkRod3laZkx3SlhnR0gyaC95dFJDMjJBbmdVbXlSL2dMMS92aTdZTXdMWUVtQ2FGb1pwWWxtQ1Y5WUkyY242bFJYUUFoQnF0aFhBbGc0cEhZcGxLODhxQVh3NFVkbVdJNEhRb1ZpQ2xRM0J4TExncTBtYi9IMndMRmlNd1dwQ1VDZ2U3bkZNRlZVY0ZDUkoyaEVCYkpvbXE2dXIzTDkvbjRtSmlTMWtXejZmZCsyaEp5Y25XVmhZY0FtdXA2MVAxM1VNdzNpaCtXYXBWQ0lXaTdHMnRrWkRROE9lQzF4Q29SQURBd1AwOVBSUUxCWlpYbDVtYkd5TTMvNzJ0MXkvZnAxNzkrNFJpOFYyM0hCY0xCYTVmLysrbXkvczhYaG9hV25CNy9lajZ6cUxpNHRjdjM2ZFgvM3FWL3pMdi93TGs1T1RsRXFscCtmRUtvcXJ5cjU2OVNydnZ2c3VwMCtmM2hYWFJ5ZFNhYi9uWGcvRE1BeWkwU2p4ZU56TlA5NE9KRWtpSEE3VDJ0cnE3bWZuT0o2Y25PVHUzYnYwOVBTNHF0K21waWJhMjl0cGJtNStoT1N2VlBrNnR1cTF0YlUwTlRYUjFkWGwxZzhpa1FpTmpZMHVLVnhiVytzMkxVaVNoR0VZVEUxTmtVcWxubHB6bENYd2F1RDN3Q0VycTIyQmFZRmgySS83QktkRVhzVSs0aEFmZ2w4UEtMSzNSdFZxa0dWSGVlSW9WeVdFWmFFWG94UUxTd2hoNEVGRFJrWkR3WWNIcitWREtTaElHc2hPN3EvWUF3TDRVSS9FSDlLeVNaUlZ2NDdWczYzOHRSU0xvbHd1b3ZxaFdHK1NrQVVUc1JpZkw5emtibUtTQkRuc2xFenpJVDFocGFYaWkrK012cjQrcmx5NXd0bXpaeGtlSHFhdHJZMkdoZ2JxNnVyMlBWZXppdDJCcG1tUEhZeFhFa0NPRmJSVS9wbENrdExDdjNMUC80Q0FFcUJvNml6bEZwazMxNGxoaDRkVktyNzIydGF6cGFXRk45OThrNU1uVDlMYzNFeFRVOU9XVGpySGV2eDVyR2VlaFlhR0JxNjgvU1lQcHFiNGkvL1BPcXNiYStqb3lHV3JkWkN3RUppSWNvT0c2V1oxUDI2ZldKYmwyaHNkbEYzeGJxR3hzWkhmLy8zZnAxQW9rTXZsdUgvL3ZtM1Rnb1dFZ1lSVWJnNUtjenMraTRLWHdIQWJIVFZoTnRJNnM0a2t5K2tVMllybWxvY1YwNjJ0cmJ6Kyt1dTgvZmJibkQ1OW1zSEJRZHJhMmc1OGt2QWtqSXlPOE43NzM3SnRmKzdkSXdITTV1Tk1wTzh6Mm5pU2lOWUVhZkJvRXFvcHdIaFdxNlhrcW40Tkx4UjlNaG1mUmRLWFlMWXd3ZTNvZGU1bTd6TkxuQlZ3bGI5NU5sV1lzRW51Vm5weE9DVGQwN0orWlZubTBxVkwvT21mL2ludnZQT09xNG9IT0hIaUJKY3VYZUw2OWV1c3JLdzhkYis4YWdSd29WRFlFUUY4NXN3WnZ2bk5iekk0T0VoUFR3OXRiVzJ1TTBFb0ZEb1ExZWxUSVlIcTBWRDhQb3F5VEJySW91TzA4Z20yWnZ0V0tuNWYxbS82M3IxN2ZQYlpaN1MwdE94N2pNVk9sQXZDTXJFc0ExbCtqSzVha2tDQVpSbFlWZ2tocktwV2FYY2dZUk9YN2RqcTNsRnN0VzgzdHZxM2pxMnE0SU8rUVduWStjTTkyTmJLUGRoRVord2dOd3J3bExmbE5IQUJPSW10Vmo2STdlZ292LzlHZWZrNkVjQk83K2F1dzdJc2lpV1RZc25Fc0N3MHNLOUxoMUJWOHVJUXRoUkZWc0JYdDZuK3pjV2drT0Z3OUZ0VThWallWa1VBV0xwZ1BRRUw2NEt4T2NHdFdjSE5hY0hNcWszOFpndFFxdDVKcTZqaXFYRElxdTAwWjJjeUdXS3gyQk9WbGtJSW90RW9EeDQ4NFA3OSs2NWIwdU1hSllVUTZMcE9xVlI2WVFLNFdDeTZPYjI5dmIzNzRuQW95ekllandlUHgrTzZRemxONzNmdTNHRnNiSXc3ZCs0d096dTdvL1VhaHNIMDlEU2FwakV3TU1EQXdBQWVqNGU1dVRsdTNyekpGMTk4d1kwYk54Z2ZIOS9XL0tPdnI0L1RwMDl6NWNvVkxsNjh5TkdqUjNldE5teFpGcXFxSGdxUlVUNmZKeDZQRTR2RjZPcnEydmI4WEpJa0dob2E2T25wb2J1N203bTVPWXJGSWhNVEU5eStmWnZ6NTg4ek9qb0sySTMxbloyZDlQZjNFNHZGaU1mdDRXY3dHS1MrdnQ0bGRoc2JHMmxwYWFHbHBZV0doZ1lpa1FpUlNJVDYrbnBxYW1vSWg4T3VPT1p4Q0FhRDIzQSt0QW5nZ0JlYmZhc3NEQjAweXFlN2t3RmMwdGxQQmJEVDYxN0ZQcUpLQUI4d0pGbnpxbG9JUlhVdUtzSzJHQllXcHBsRjE1T1lSdGJOblZXUThLQVFKa3lOVklkYThDQlpBa21BVFFBN3BjTlhjaGI0WkVqbEsybWwxVE1taG13aGZESzZYeUdyR09RMGt5Z1pwdGRXV1N3bG1VbEVHWXRPc0dDdGthRkFFUU1kYzlldGRuMCtINzI5dlZ5OGVKRkxseTV4L1BoeCt2djdhVzV1UG5RS3V5cDJEaWN2VWxYVnh3NnlIVFZYNVprcGdHeCtuZGw4RksraVlsaUNuREJjMVc5bFh1aHVGdnhsV1NZUUNMZ1d6a05EUXpRM045UGEyc3FKRXlmbzdlMmxwcWFHVUNpMHIwcTU0WkZoM24zL1BYNzV5MSt5dkxGS3Zrd0F5MGpsY1pJb2srbWI5dXRQMmllbFVvbTF0VFdTeWVSTFR3QURkSFoyOG9NZi9BQkZVZml6UC9zenhzYkdFR1V5WEVJaWo0eENBY013VWVPeitKWnJPVHRnb1Fjc0poWW1tY2tza2k4bkFOc2srdVlrcEtlbmg1Lzg1Q2U4L2ZiYkhEOStuTGEydGdQOHBOdERReVRDMjkvNEJuZHYzbURtM2oweXdJWmxNSnRkWVh6OUxzRlFBeTIrVmd4RFFqWU01TWRlMEtYTkJ4VU1qKzBNVVF5cUZQd0dNV1daaWZ3dHZ0cjRpbnZwR1JaRm5qaVFaTlAyMlZGalByenF5cWx6NVhINnBPTzFxNnVMZDk5OWwvZmVlNDlJWkdzOFkyTmpJK2ZQbjZlcHFXbGJCUENyUkFKdlZ3SHMyS1gvNkVjLzRzcVZLN1MydGxKWFY3Yy9HL21Da0ZRWm9jaVVKTW1kQVZVMkR6aWtiK1Z4VnZrTnE2cUszKzkzbXpVa1NkcVN0VzVabG12YjVpek9NYUlvaXR2RkxFbVNuV1ZmWGhSRndlLzNFNGxFM1AzcDhYaGNheld3RmIwM2J0eGdhbXBxMjU5M2NuS1NMNzc0Z3JmZmZudmZDZUNkbkI5QzZBaXJpQ0NBSkVsYlh1ZmV3NFdKRUNVRW9scTJmakg0c1hOcG04dExMemFoT29DZEk5dU9UYlFlUnFqWUdiY0R3RkZza3JPQW5RbDhFQWhnazc4WGdNdllCSHJkaTY3VXVTNDQxNVB0dmd4YnZYMFVXQUx1dk9oMnZHUndMdUdWWVVxN0F0TVVOZ0ZjTkRFTXAzRjhOOS9oa01GUkFpc2U4TlpCSUdLVHdjVzBiUXU5cFJtOGlnUEZRMmI4d29CQ1FiQ2FFTnlmdDRuZnJ5WUZFMHN3dDI3YlBlZXI1ZDhxcW5nbUhIdGpWVlczNVdaVEtCVEk1L05QblVQbGNqa1dGaGFZbnA3bTJMRmpkSFoyUG5IZHBtbnVDZ0ZjS3BWSUpCTEU0M0h5K2Z5QnpOZGFXbHFvcTZ2ajZOR2puRHAxaW12WHJybUNoL241ZVhLNTNMYnRpVTNUWkdGaGdkdTNiOVBVMUlRa1NkeTZkWXZyMTY4elBqNU9NcGw4NXJqSjYvWFMwOVBEbFN0WGVQdnR0N2wwNlJMZDNkMjcycmpzeEs5RkloRjhQdDh6WGNYMkVxWnBFb3ZGbUp1Ym83dTdtNWFXbG0wN05OWFUxREEwTk1UUm8wZEpKQktzcnE2eXRMVEV4TVFFaTR1TG1LYUpvaWg0dlY3NisvdTVlUEVpa2lTeHZMeU1hWm8wTmphNkxtRmRYVjEwZDNmVDNkMU5XMXNiZnIvL2tjemZwNGtoQ29VQ3NkZ0dpVVNDWXZISk56SlpCcDhIL0E0QnZDZmVNQzhBcWR4MGJ0cU5XSWE1Ynl4U1ZRRjhBS2d5VHdjTVNkYUNpaHBDVnJ3SXk5WmsyY1VtSFYxUFlCaTJ2WkdUOXlnam9hSFNXRk5QVzJNVGZza0RKVkd1UnUyaUN2aWxxQ0U3azE1cjArNVp0aTJmTGNuQzBxRGtrMGxMQmh1bEhERTVRMUxLTVpkYjQrYmtGTE81TlJKa1NaQWxUYkZzQU8zWXlyNDQ1UllPaDJsc2JLU3pzNU9XbGhiT25qM0xkNy83WFk0ZlAvN2lINzJLUXdXSEFOWTA3ZkZkbG15U3dKUi9kaFRCU1FTeXFXL0pDdFhMU3lYNSs3eEhvNlpwcnExUEpCS2h1Ym1aU0NSQ1oyY25wMDZkNHNLRkMvVDA5Qnk0T2k0UUNIRGkrSEZPblRuSjFNd2syVndPQ2N2VkFPOWtIK1J5T2FhbXBsaGRYYVcxdFhYUHRuay9NVEl5d2gvOTBSOVJLQlQ0MmM5K3h2MTc5N0NFVFFMTDZHVlNRckJvUk5FWHY2VG96K0VMK1JoUDNXTzF1RWJKelVzVytIMCt1L3V4cVlsdmZ2T2IvUHQvLys5Zk9GdG1QNkZwR2lPam93eU9qaEtvcWFHUVNwRUhWdlVpTjVkdlV0Y1VJVnhiZzg4YlJDNUtlRXp4K01HMkRFSUR3eXRSOUNzVWc1RFFzcXhhUzh5VWJ2QlY3QnEza3ZPc1lhdCtzMnkxZlg1U285QjJmd2ZRMU5URUJ4OTh3SnR2dnZrSStRdDI4OURJeUFpdnZmWWFjM056SkpOUGp4dDlsUWpnVXFsRVBwOS82c1Jaa2lUNisvdjV0Ly8yMy9LZDczeG4zMG5GRjRZa2dTSzd4MU1sQ1F4UEpuNEJ1cnU3T1hyMEtNM056U2lLNGxwN09aTlZJUVNHWVZBcWxkek8vV0t4aUdtYXJwV2NwbW51Qk5mSnpGSlZGVTNUM0F5bC92NStXbHBhOFBsODdtdkF6cmI2ei8vNVArK0lBRjVmWCtmdTNidXNyS3pRMGRIeGZQdnNPYUdxNnJiUEQ4dlNNYzBDcW5oeTRVeFlPcVpaQlBFS0JXL3ZMMlJzWldvN3RrWHhDZXhNM1M1c1VyVUJPOGYyc0djNWhMQUo0TFBZS1I4YndQUUJiSWNQbXp4L0hYZ0gyLzY1L1VWV3FHa2FnVUFBcjllTGFacmtjamtLaGNKMnp5TUZtM3dlQUNheHlXQXZYNTlpanpQVTMvV2JzaEJnNkhZR3NQWEtaZ0JYWXRNZERjVUR2bm9JdGtBcEIva29tT1ZEU25wbHpiQmZEa2hzWnYxS1lCVmhQU1dZWGhiY1g3QzROUzI0T3dmalM0TDFKS1J6TDBtNXFZb3FEZ0VVUmRreUJuOFduSEg5MDRnMVhkZEpwOU1razBueStmeFQxMWZaVFBvaWMwMWQxOGxrTXFUVDZRTWxJYjFlTDE2djExVjVOalUxTVRvNnl1M2J0eGtiRzJOOGZQeVorOFJCT3AzbTFxMWI1UE41aEJCTVRVMHhNek96cmRjM056ZHo3Tmd4TGx5NHdPWExsemw1OHVTZTFHUWNDMlhIeXJoVUtyMXdudlB6d3JJczF0YldHQjhmcDYrdmovcjYrbTJMVG1wcWFqaHk1QWhUVTFQY3UzZVAxZFZWbDRRZkh4OW5jbktTOXZaMi9INi9HemMwTkRSRVBCNUhDRUU0SE41aTdSeUpSTFk0ciswRXVWeWVaQ3BGS3AyaHBEK1pBTmFVTWdIc3dXYmZuQUx2WVVFRkFheWIrMFlBVjZha1ZiR1BxQkxBQnd4WjFqeUtFa0tXZlpoVzJRZGZVckRNSWtZcGptbG03T2NCTWpKSzJRSzZ0YTJHbnA0R2duRU5LMkZWS0g4ZHF1bFY2NEt0Nk82Vm5KOHJpRitIL0ZVc1NyS2dJSUVSbE1pRkRXYWlxOXlmbTJmQjJtQmRUckJpeGxuSnhZbVRJVWVSUERvRkRIUU1kQ3hNVjJ2NC9PanE2dUxLbFN0Y3ZYcVZvYUVoMTFxaXVibjVoZFpieGVHRXgrTWhFQWk0eXFqSHdibkxWVnBDVjh5VDNUUDNZY1hYaXd6TmFtdHJPWG55SkJjdVhLQ3ZyNCtPamc2YW01dmRuRXhuMEh0WTBOelN6RGZmZjUrcDZXaysvdmpqOHI3YStibVl5V1FZR3h0amRuYVdVNmRPN2Y2R0hoRGEyOXY1NlU5L2lxb3EvUG1mL3gvY0d4dkR4S0pVWmpldHNpbzRWeXlTbk02amFnclJkSUk4SlVxWWxEQXdFZlQzOVBEZDczMlBLMWV1Y1BUbzBaZUsvSFhRRUlrd1BESkszK0FnOTIvY0lHbWFCRENaTXhlWTA4ZnBFTjM0dEc1VW40WmltaWlXdE5XaldRSExDeVd2Uk00alV3eFo1SUlwcHJJVDNJeCt4YjNDWGFaTGNWYXhLL3FPNnJmRTFuUDBSUkFNQnJsOCtUSS8rY2xQT0gzNjlCT2YxOUhSd1E5KzhBTVdGaGI0dTcvN3U2ZXUwN0c1UGF6MjNUdUJydXN1WWZra09OYjFseTlmZnZuSVgrd0NEYktNVlM3UW1HeU8zcDUyNWV2bzZPQ2pqejdpOTM3djkranM3QVJ3di9lSENXQ0gvSDJZQUhiSTNzcE9aNC9IZzZacGJ1SEk1L01SQ0FSYzlXOWxJYW1ycTR0UFB2bUVYL3ppRjJ4c2JHenI4NXFteWNURUJGOTg4UVhkM2QzUFBlbCtIamhSQnR1QnNIUXNxN1NwUE5zQys5K1dwV05aUmFoYVFPOFVIdXg4MkFic3JOOCs0Qmh3SHBzQWJzYTJWOTdUaVl6Zjd5Y1lET0wzKzdjMHdHV3pXVktwMUU2eXlTVHNiVDRHckFBVHdEeWJQWC83QVQvMmZqeUhuZm43R2pieCtsejdVTk0wdHlqbXFITVNpUVNMaTR2YkxvZzZxMkx6ZTI0dC94emw4SlcvOWdJV3RocmNoTjJONmJVc2dXRllHTWJYaFFER1pyMnQ4aXpLRzRhYWR0QnpvR2RCejl1MWdTb0JmREI0V1BXclE2RUl5eHVDZXd1Q0x5WUV0MmNFRDVZRVN4dXdrUUc5ZXRlc29vb2R3U0dBdDl1d0h3Z0VuaGwvNC9GNHFLbXBvYmEyOXBtT2FZNnIwSXMyR2h1R1FTNlhJNWZMb2VzSEw0VlVWWlgrL243YTJ0bzRkZW9VdDI3ZDRsLy85VjhKQkFLTWpZMlJ5V1MycFFhZW1abGhaV1hGalNGNzFtZlROSTNtNW1iT25UdkhlKys5eDZWTGx4Z2NISHp1dWF5dTYrNTgrWEZLY1VtU3FLMnRkWE54YmRYcXdmVGpDU0ZZVzF0amJHeU1vYUVoK3Z2N3QwMEFCd0lCZW50N0dSa1pvYVdsaGJHeE1jQjJwYnA1OHlhOXZiMWN2WHJWclhzMk5UVngrdlJwOXp0MG1weDMwa3p4Sk9oNmlVdzZTVHFWb0ZSOGNqT0Qzd00rajRTbVNuc2NYaU8yUER3UjBpTS9nTEN6ZjNXem5BRzhQMFBMeXRKM0ZmdUVLZ0Y4d0pBVmY3MnNlSkFxNW9ZU2pnSTRoV1hrM0laS0JRa0ZCUThxNFRvdjlVMGV2RmtKeWJSZnRkbDYrYXFSdnhXUXJESUJiRzRoZnkzSndsUXNURTBtNzVNcGhFeGljcHJKMkNwanEzTk1waFpZSnM0R2FaTGt5Vk9paUY1ZUhPSlhQRGY1cXlnS0RRME5qSTZPY3VMRUNZNGVQY3FKRXljNGN1UUlqWTJOMjdhMXFPTGxSQ0FRb0xhMjlwbDIzZzc1NjVCSHpobGIrZmZuelhpVVpabFFLRVFrRW1GNGVKaWhvU0Y2ZW5ybzcrOW5jSERRdGJ2WlQxdm5uY0xuODNIKy9IaysvdmhqdnZ6eXk1MFdHbDJVU2lXV2xwWllXVm1oVkNvZHVMcDVOOUhUMDhQdi8vNlBrQ1NaLy9KZi9ndFRVMU1ZNWJSUVViNkdGVEZJNWdydXRjekNjdDBOQkRacDlzRUhIL0RPTys4YzZHZDVFY2lLek9peFk1dzVmNEhwOFhIaW1Rd2hJSXJKZ3I3Q2NtbUpPcTBGcjkrSGJGajRMR0VuQXdDV0FxWUdKWjlDS1NoVENGaXNTMHZjVDM3R25lUUU0OGs1WmtTYURUWlZ2MDRXOTI2T1VnY0hCL25XdDc3RjJiTm5uNXFCNVBGNE9ILytQS2RQbitZM3Yva05tVXptc2MrckpQd084M20rWFRqcTFhZDFLSjg1YzRiZi9kM2ZwYjM5aFlSdWh3cFB1L1o3dlY2R2g0ZjUvdmUvei9lKzl6M09uVHUzYjl2MU1QeCtQMis5OVJiMzd0M2pyLy82cjkxOHBXZGhaV1dGbi8zc1o3UzB0UERSUngvdDdVWldJQktKY1A3OGVTWW5KNW1ibTN2R3M1OTlGeGJDTEhPL1ZRdm9IYUlCMjVwNEJKdWs3QzR2QTlncTBUMUhiVzB0UFQwOTlQWDEwZFBUUTBQRHBzUDBnd2NQK1BMTEwzbnc0TUZPaW1OaGJPdmxmdXpjMnpwc0pmQitGRFY4Mk9UdlpXenk5eHoyL256dWlVZFRVeE1uVDU3azZOR2pORFkya2txbHVILy9QdWwwZXR2TkhoV1FzUzIrZTh2YmFXSm5BUjk4NVhkdllXSVBIM1RzcG9mZFc3RXBLSllNQ2tVRHd5Z2ZZbCtIYWFZb3kxSzBBQVNiSVIrSDFEeFlvbHdHS1Q5K0xYYkdJY0Zta1FvRUdFWEJhaHptMWdSM1pnVTNwK0hHbE1YTW1pQ2FndHpYUmY5ZlJSVzdES2N4Yzd2UmNWNnZsM0E0L0ZSaXQ3NitucUdoSVVaSFIybHVibjVxdmRLeUxBekRlR0VGc0dtYXJqMzFkbTJXOXhxS29oQUtoZHlsdHJhV3RyWTJybCsvenAwN2Q1aVltQ0NkVGo5MUhZVkNZZHVLNXFhbUpvYUhoemx6NWd5dnZmWWFaODZjWVhCdzhMbm43cXVycTB4TlRURS9QNDhzeXd3TURIRGt5SkV0dFFXSEFHNXJhNk94c1pIcDZla0RJNEFCWXJFWTkrL2ZaMzUrZmtmYklVa1NrVWlFbnA0ZU9qczdxYXVySTVGSWtNMW11WFhyRmkwdExRd01ETkRYMStmR0dlMVZISnhlekpHS3I1Q0tMVkhNUDc0Mm95b1E4b0ZQQTNuUGhpWmlNN1JYUEc3KytsQVNpWkFxeGtxYkhWeFdtUVRlcDc1Q3AreGRKWC8zR1ZVQytBQ2hhS0hHaHFhM09tVFp3OVpqWDBJSUEwTlBZaHA1OTdTMDFiOHlIaFEwVTBJMlFMRW9ad1k3MXMrdll2NnZrKzhyS2toZkMyUUxJWmtJRlhTUFJFRlRTUXVUZFNORjNFZ3dWMXpocStsWnBqT3J4RW1SSkVmV1ZmenE2QmdZbUpobDh0ZEMyakg1MjlqWVNFZEhCMjF0YmZUMjl2TEdHMi93NXB0djB0M2R2VGU3b29wRENZY0EzbTRuV2FXeTkrRzczclB5UWgwNDFzN2hjSmo2K25xYW1wcG9ibTZtcDZlSEN4Y3VjUEhpeFpmTy9saVdaZHJiMjEzQ2VtWm01cm5XSTRRZ2xVb1JqOGZKWnJPdkZBRU1NRFEweEIvKzRSOFNpOFg0Ny8vOXY3T3dzSUJSUHBJc0JKSnJuRzNiUWxzVnpnWUNTR2N5eEdJeGNya2NnVURnd0Q3SGk2Sy92NTlMbHkvejYzLzZGYXZqNCtTdzFicXpoU1J0K1ZsYUE0TUUxRHJRSlNRRWltSGZKazFWeGd6STVMd1djZUpzV0dzOEtOemd0OHYvekdReFJSeTdPcDFoYTk2dm8rRGZqYnRyWFYwZGI3MzFGbGV2WHQzV3hLUzJ0cGJoNFdFR0JnYTRkZXZXWTBsUnk3SmN0ZWVyUWdEcnV2N1lRb01rU1J3OWVwVHZmZTk3WExwMDZhVTl4M2Q2TFBYMDlQQ0hmL2lIL09RblA2R3JxMnRQdG1rbk9IUG1ERC85NlUreExJdGYvT0lYcksydFBiTXdsTS9uK2FkLytpZU9IRG5DeFlzWGFXdHIyNWNtdVlhR0J0NS8vMzN1M2J1M0RRSllzc2ZXVHlNU2hJa1F4aXMxMnQ0bk5BRm5zTW5LRVd5N1p6OTdiUFhzMko0M05EVFEyOXZMOGVQSE9YUG1EQ2RPbk5qU1FQTEpKNStnNnpvYkd4c3NMeTl2ZC9VeXRsMTFPemJSMlkxOTYwanQ3cWQ0QkY1czR2azg4RGEyL1hNN0wwQTRPdlo2VjY5ZTVlTEZpMFFpRVphV2xwQWtpYm01T1dablo1K24rRnVMVGZBZkFkTGw1VlVuZ0EwMlV5TUM3Q0lyYVZrV2hhSkpzV0JnbWc0Qi9EVWdQVVc1aUtsbzRBbUJ2OTdPQWk3RXdTeHRQcWRLQXU4OW5OMHJZdzlrZE1qa0JVc3h3ZDA1d1kwcHdWZFRndkVGV0l3Sk1vV3lxcWlLS3FwNExqZ0U4TlBjNWlxaHFpcjE5ZlYwZEhUUTJOaElMQlp6NzkyU0pOSFUxTVNwVTZlNGVQRWlKMCtlZkNvQkxJUnc3WjlmMURiWU1BenkrZnloVVFBL2pLYW1KaTVjdU1EQXdBQkhqeDdsMTcvK05iLys5YThaR3hzakhvKy8wRDVRRklXV2xoWk9uejdObTIrK3lWdHZ2Y1hvNkNqQllIREhhbFRUTkNrV2l5d3ZMM1A3OW0wKy9mUlRidDY4aWRmcjVZTVBQcUMzdC9leEJMQVRUZWoxZXAvWVVMNGZ5R2F6TEN3c3NMQ3dRQ0tSMkZITlVsVlZXbHBhR0J3Y3BMZTNsM3YzN2xFb0ZKaVptZUhXclZ2TXpNeHc0Y0lGdHpZZ2hLQlFLSkRKWk1obXN4aUdnU3pMZUR3ZWZENmY2M0xsT0YwOWJhbUVhUlpKYnl3VGp5NVF5RDErWDNvMUNBY2tmTTdYKzhMcVdsSHgrc29WbFVsZFNkNzZ1NGRmKy9CNmhFMGVDd3RNUzJDWVlGbWJmUElldzFFQVY3R1BxQkxBQndpUEo5TG5DM1QrUDJYWmh5VXFiaVNTakxCTVRDT0RaZWFoWE02WHkvYlBIalNVcklxVWtKRjFDVm1TYkVtVGtQYnRiTjFiVkh3R2gvVEZzWGwyc240RnVpd295VkR5Q2dvaFFVYVRXRWdtdUxzMHdaUSt4N0s1d1ZJbXpnWlpzaFRKVWFUb0VyODJJV0szblZqbGQ5eit2bE1VaFNOSGp2RCsrKy96Mm11djBkWFZSWE56TTAxTlRTK2xEV1VWTHdhdjE0dmY3OS8yb0J5MlQvUStEc0Zna0xObnozTHg0a1hYWXR6SjluV3NmRjVXWXM4aHVvYUhoMWxlWG43dTdzUlVLc1hHeGdhWlRJYjYrdnBkM3NxRFIwOVBEMy82cDMrS1pWbjhmMy8yTTFhV2w5Mk1YMmxMRElBOTBxd2tMaWNuSi9tTHYvZ0w2dXJxK09ZM3Yza2cyNzhicUt1cjVleTVjNXcrZTQ3bGxWWHlxU1JKWUZaUFVKdTlUMGRrR0wrM2dScS9CMU9XVVMyNzBjZFFRTlJZYk1qcjNJdmU1Rjc2TmxQNkRKUEZGR3ZZeEcrV1J5MmZkNHY4RFFhRHZQMzIyM3p3d1FlTWpJeHN5NjdaNC9Gdy9QaHhYbnZ0Tldablowa2tFbzg4eDdHZHl1ZnpoOHJhL1huaDVFMDlqbXh3N05DLys5M3ZmcTN1dVcrODhRWS8vT0VQRHdYNUM3WUsrUExseTRURFlkcmIyL25Mdi94TEppWW10a1VRZmZubGwvenFWNy9pTzkvNURyVzF0WHUrclQ2ZmoxT25UdEhiMi92TTV3cGgyUXBmTEtSSC9Mckt1ZlNPQXJocUFiMVQxR0ZiUFovQkppLzNuS2xwYUdpZ3BhV0Y5dloyT2pzNzZlenNaR1JraEdQSGpqRTZPcnBsdkpUUDV4a2ZIMmRtWm9aY0x1Y1dpN1lCQmRzS2VnamJBanFCZlR2Wks5b2pnRTAybndmZXhNNGc3dU1GRE9aYVdsb1lIaDdtMHFWTHZQNzY2NXc0Y1lLYW1ob2FHaHBZV1ZtaHFhbUpRQ0JBTnB2ZDZhckQyT3JvWldDR2c4bEkzbTlZYlBhUVBTUy9lTUVWV3dMZHNDZ1pGcWI1S3N6N2R3Z2hRRmJCM3dCMVBiWXlPTHRtWndKYmhrMkdTM0xWRW5xdklHRlhFTXQ2ZzJKZXNKYUFxV1hCdlhuQnpXbGIvZnRnMmY2OVhpM3ZWbEhGQzhPSmJObEp4STlqZjd1MHRNU2RPM2RZWDE5SENFRmJXeHNYTGx6Z0c5LzRCcSsvL2pwZFhWM2JJaUIzd3dMYU5FMlhBRDRzQ3VDSEVRZ0VDQVFDMU5YVlVWOWZUM2QzTjU5ODhnazNiOTVrWm1hR2pZMk5IWlBBZFhWMWpJNk9jdXJVS2M2ZlA4L1pzMmM1ZHV6WWN6VnNSNk5ScHFlbm1acWE0c0dEQjR5UGozUDM3bDBtSnljSmg4TWNQMzZjVXVuUlRGckgvYWF0cmUzQUc4V0ZFTVRqY1JZWEY1bWJtNk8xdFpXYW1wcHRIOThORFEwY09YS0U4ZkZ4VmxaV1hOZS8rZmw1Wm1abVdGcGFjaitucnVzVUNnV21wNmU1ZS9jdU16TXpaREladkY0dm9WQUluOC9uMnFzNzJkQ0JRTUNOaWdrR2cyNTBYbDFkblZ2djlXb3FoWHlLVkdLTlF2SFIvUzFKZHZadjJHOFR3ZEtMYXZSRVdVSWtoQjFSNUNaa2xodmpGQS9JR3NoS2VRems3TXZ5R3p1dnM0enlVckl6R3l3TFREQjFNSXg5YTlheTdRdXJCUEMrbzBvQUh5QlVOZFNrYWZYSXNzYkQ5UUdCaGJDS1pXYzVDUWtaQlFrUEdrRUNlRkorUkVKR0xwVm4rcUl5VGZSbFJybkUvckRhdC94b1NNTG11cjB5UmE5RTNxY1RGMW1Xc2tubWMwbW1VeXM4MkpoaHdWb2pYaVorOHhpdTFiTlJ6c0MwWE5wWDJ2WjFXTk0wT2pzN3VYanhJaU1qSXd3TURIRG16QmtHQmdaZVdyS3RpdDJCTTFEWUNRRzhIVWlTNU9iVE5UYzNjL3o0Y1hwN2UybHVibVpvYUlqaDRXSGEydG9JaDhNdnJRTHVZVWlTeExGang3aDQ4U0pmZlBIRmN4UEF1VnpPdFlSNVZYSDA2RkYrK01NZnNyNit6di80SC8rRFhDN25xbnlmMW1LUVRDYjV4My84UndZR0JoZ1pHYUd6cy9PbHpJeVZKSW1ldmw2KzllMXZNejg3eTZlLy9aZ0VvQW1UNmNJS045Wi9pNy9SeDJETk1TUWppR3dLTEVtUUk4dUdQc2RVK2l0dUptNXhQNy9BS2pvSmJGbFNEanU0ejJDck44MXVsRmxsV2ViSWtTUDgrTWMvNXNLRkN6dnErQjBjSE9UcTFhdjgvZC8vL1dNSjRGS3B4UHI2T3F1cnEwUWlrVjIvSHUwM2hCQ1BMVFJFSWhIZWVPTU5Qdnp3UXpvNk9nNWd5M1lQVC9xTUQ4UHZEM0R1M0ZsKzUzZCtoOEhCd1gzWXN1M0Q1L054NGNJRi9INC9tcWJ4czUvOWpNbkp5V2UrYm1KaWdwLy8vT2RjdUhCaFh3aGdzSThkSjlQMGFSREN5UUFXVHg1V1MrS2xIM0VmQUx6WUJIQmJlZG56WGRqWTJPZ1czVTZkT2tWL2Z6L2hjSmpHeGthWDBIejQrVU5EUTh6T3pwSktwWmlkbmQxSmtiSUpHTVhPdVYwRjFyRnZLN3NOSHpiNWV3bjRCbkFCNk9RRnlOK0doZ1pPbkRqQjFhdFh1WExsQ3NlUEgzY3p1dHZhMnVqdTdxYXJxNHZXMWxZV0ZoWjJPalp6TExKWHNMOTNIelk1L2lyRFlOTkFaRmRoV1FKRHQ5RDFpZ3hnVi9YNnFoUENZdE1LMmxzRDlmMTIwVlB4UUdZRml1V2VDMkZWMWNDN0RhbmkwVkg5RmdTemE0SzdzNExyRHdTM1p3VlRLNEtWT0NRejhIWHNUNmlpaXIyQXFxcVA1TG8rQzVGSWhJc1hMMUlxbFFnRUFreE1UQ0JKRWlkUG51UmIzL29XVjY5ZXBibTVlZHNXdWJ2aDF1TllRQmVMeFVOTEFEc0loVUljTzNhTSt2cDZaRmttbjgrenNiR3g3Y2diMkZUZW5qMTdsdmZlZTQvTGx5OHpQRHhNZlgzOWpraFlKK1pwZFhXVjI3ZHY4OXZmL3BiUFAvK2NpWWtKMS9HdVVDZ2doSENiRngvM2VicTZ1bWh2YnljVUNtMzd2ZmNLeFdLUitmbDUxN3A1WkdUa3FaRllsUWlGUW95TWpIRHExQ25HeHNaWVdWa0JJSkZJY1AvK2ZWY04zZGJXaHFacCtIdys4dms4MDlQVGZQcnBwMjZUSitDcWdaMTZiaWdVb3I2K250cmFXaG9iRzRsRUlyUzB0TkRhMmtwblp5YzlQWDM0ZkI3VzF0YUp4alpJcFRLUHpiVlhaS2p4UTEwUS9ON25KWUFmeXZXVjVFM0hGNmZaVGZhQTVyY1gxVjhtZ2hWN3FYU0h0VXg3TVV0Z0ZrRFBBM21RU3dqVjlrWFZUUlBERXZ1aEtYUUk0TU5uQS9DS28wb0FIeUFVeFYrbmFtSDc1SHpvTEJQQ3hMSktXSlpSamxleE5RaCt5VXU5cDQ2UUZFVE9TMGdHRlRaMWxYWjFMK09JMjdGNnRrQTIzWHhmSVF1RUpMQThvSHNsc3NJaVpSUkpHUVVTUnBLbHdqb1RpNnRNYml5eGJNYUlreVZEZ1J3bENtN0dyMW4rejNKVlhNOVMvZnA4UHRkaXQ3MjluWWFHQm80ZE84WjN2L3RkenB3NTg4b1FibFc4T0h3K0g0RkE0SVZKTkkvSFEwMU5qZHQxNkF3Nnd1RXdmWDE5dlBubW01dzhlWEpiQmV5WEdkM2QzVnk4ZUpHLy9NdS9mSjY4T1FCMFhTZWRUcFBKWkxBczY2VWtPTGVEVTZkTzhjTWYvcEM1dVRrKy9leFRpb1VpMjduK3grTnhQdm5rRTg2Y09jUDN2dmU5UGN0SDJXc0VnMEd1WEwzQ3RTOCs1OHZyMThnWGkrU0FWYVBFemZVYitDUS9vbG1oMW1wQXRpUk0yU0N1UjVuZXVNSDkyRmRNcytGVzZMUFl4RzhCZXpUcXRDVHU1dDIwcTZ1TDMvbWQzK0dkZDk2aHNiRnhSNit0cjYvbjlPblRIRGx5aE5YVjFVZXloblJkWjJWbGhmbjVlUVlIQjEvYTc3UVNqeU5IaDRhRytNNTN2dk5LUkMwSUliYlZVZC9VMU1RZi9NRWY4TVliYit6VGx1MGN4NDhmNXcvKzRBOHdUWk8vK3F1L1luSnk4cWtrVVN3VzQ5TlBQK1VmLy9FZmlVUWlSQ0tSUGQ5R1daYmRjZDNUOHJ3c3M0aHA1QkRDUkpJZW5pbzVGbm9xa3F3Qmp6eWhpa2NoQVJxMjNYTVR0aVh3cmcraVpWbkc1L1BoOS92eCtYeUV3MkY2ZTNzNWVmSWtGeTVjNE55NWMvVDA5TGpQZlJ3MFRhT3JxNHVob1NIbTV1WllYRnpjeVNZRXNJbk9LREJSWHJMc3JncllVZjZlQTk0QVhzTzJWMzZ1eXF3c3k0VERZWTRlUGNxbFM1ZTRldlhxRnZJWDdMRnBTMHNML2YzOXJuSmlPM2J2RmZCZ1p6KzNBYTNZMzMrY1Y3L3p2ekk5WXRkZ1dRSmROeW1WVE13WHRPTjhLV0dadUZiUS9nWmJEU3lwNEFsRE5nckZCQlJUWlZ0b3FheUdlWWFsZnhWUGg1MUY1bG8rRi9Ld3VpR1lXclpKM3k4bkJiZG5CSFByZ2tRV2l0V1NiaFZWN0NwMll2L3NJQmdNTWp3OEROaTFxcjYrUHRkUjZ2WFhYM2ZIUS9zSngwN2FNSXdYdHBQZUQrUnlPZGJXMWxoWldTRVdpKzJvK2EyaG9jRzFrbjd0dGRlNGVQRWlSNDhlM2ZIOFBKRklNRHM3eTh6TURBOGVQR0JzYkl6YnQyOHpOalpHS3JVMWFjUTBUVktwRk92cjY3UzF0VzE1TDFtV2lVUWlORGMzVTE5Zmo2WnBCMnJETFlSZ2ZuNmVhOWV1MGRYVlJWOWYzN1lKWUkvSFExZFhGMGVQSHFXdHJZMnZ2dm9LSVFUNWZKNmJOMi9TMmRsSmUzdTdHelBrOFhpSVJDSU1EQXlReVdRd1RaTmJ0MjZ4dXJyNnlMcWQrWU9UQjExYlcrdk9VNXVhbXVqczdNTHY5N0k0UDhYdHNVbmk2ZEpqbTUxVUJlcERFazExRVBLWFJ5QTdHUTBLcCtHdGZKN0lLaWcrOEFSQkM0QWFBTlVMcXErOGVFSHhncUxhRGlqU1ErSkFZZG5yTS9YeVVnQ3BDSElSWVdZeGZYRU1LWUZwRlhZY2kva2NjQWpndzkwRjhncWlXclE0UUNpZTJtYVB0d2xaOWlERTFqbXdzSFJNSTR1d2lzalkrYjh5TWdHUGw2YldNRFUxZm1RTFpFc2dDZWZrZG1qTmwyV0NVNm1zcUxSNk5td0NXTEV3eWpiUFJRbU1JQlJyREZaU1dhYlhveXpsVmxpMjFsZzJObGdySkltWmFaSmt5VkdpaUVrSmd4S1dTL3h1Sm1BK0c4RmdrQ3RYcm5EKy9IbjYrL3ZwNmVtaHFhbkp6Vmw5MlpWVlZld3VWRlhGNC9HOEVNblkwTkRBcVZPbk9IUG1ERDA5UGJTMnR0TFUxRVFrRWlFWURCSUtoV2hvYU5oeFJzakxDRTNUR0IwZDVjeVpNMjQyeVBNZ2tVaXd0clpHcVZUYTlvRHlaVU13R09TTk45NWdjWEdSZkQ3UDU1OS92dTNYM3JwMWkzLys1My9talRmZW9MT3pjdyszY20vUjF0Ykd5T2dSdW5yN21CcS9UMXFJY3VPVWlSeS93MW9oUVIxaE5FbEdGem94SThseWNZMVZFc1N4eVYvSHAxRm5qeXEyMkJPS2Q5OTlseC84NEFjME56Yy8xem82T2pyNDhNTVBXVjFkNWNzdnY5enlOeUVFYTJ0cnpNL1BVeWdVWG5vQzJMS3NSOGhSV1pZNWMrWU1iNzc1NWl0ai9id2RFcVc3dSt1bHlIVS9jdVFJLytFLy9BYzZPanI0MmM5K3htZWZmZmJVNHNMMDlEVC85Yi8rVjJwcWF2akRQL3pEZmNrQ2JtbHBvYSt2ajl1M2J6K3grR1NaQlV3alV5YUE1Y2QyUXN1eUIxbnhJY2xLZFM3MWJLall5dDhlb0t2ODg2NSsyVTVoeTdGNTd1am9vS1dscGR5dDM4UGc0Q0I5ZlgzUFhFOGdFSEJmMDlqWXVOUHh2a055OTJKLzFoWnNvbk8zckVnQzJEYlBsN0F6bE05aDV3MC85NzUwbEw5WHJsemh5cFVySEQxNmRBdjU2NkM1dVpuUjBWRzNDSnBNSmg5cFFub0cvTmdXMlYzbEpZRzlidzUvQmZqNVlMRnBKTExyQkhDcFpGSXFHWnNXMEYrSERPQXRLTnNaU2pKNGE2RmVzek9CL2F1UVhvTE1VcGtFMXUxOUk3RGR4VjZhR3NraFFhWHF0MXltU1dVRk0yczI0ZnZsQThHdEdjSEVzbUExRHJuaUs1SkdWa1VWaHd5Ty9mTk94c215TEZOWFY4Zmc0Q0JlcjVkang0NFJEQVpwYTJ0Nzdubm9idUZGcmFUM0dwWmx1ZVRrYjM3ekd6NzU1Qk1tSmlaY1ljSFRJTXN5VFUxTm5EeDVramZmZkpNclY2NHdPanBLWFYzZGp1dFIwV2lVbXpkdjh1bW5uL0xaWjU4eFBqNU9OQm9sblU2VHorY2ZlYjZ1NjZ5dHJURXpNME5IUndmdDdlMWI2cE4rdjUvR3hrWTZPenVabXBwaWZYMTlSOXV6MjFoZFhlWFdyVnNNRHc5ei92ejViYy90SlVtaXJxNk92cjQraG9hR3VIbnpwdXRPTXpFeHdmWHIxemw3OWl5blRwMUMwelFVUmFHM3Q1ZUdoZ1pPbno3TnJWdTMrTnUvL1Z2KzRSLytnV2cwdW1YZGhVS0JRcUZBTkJwRjB6VFhIdHBaZ3NFZ1BwK0hVcUZBTExaR012djQ0OEdqUWxPdFJIdURSRzFRc29kcDJ4b1JWc1poeXVVbU44VlcrUHJxSUJBQmY4VCtXUXZhNUsrc2dGem1oQnppMTcxVU9CYlE1WFdYYzMvQkFzVUNSVWNZTWN6Z05McFV3clNLKzNGK0N1eHlXN1ZkYko5UkxWb2NJRlMxdGtYek5pSkxYb1I0eUFKYUdGaG1Ic3ZTeXdiUU1nb3lYa1VoSFBiZ0R5Z29XWkMybkp3dlVYZXIwd0lqbFEwMkhadG4yVUpnWXNnQzRaZlFBeklaMlNDRnhicVJZWDUxaWRuRU9vdXhPS3VGZGRaSkVDZERsZ0lGakxMaVYwY3ZaL3dhQ050T0c1NUovcmEydG5Ma3lCRkdSMGZwN2UzbDJMRmpEQTRPMHRMUzhzb3JMcXQ0TVVpUzlFTGs3OURRRUQvNjBZODRmLzQ4QXdNRGJwYjAxOWxhdkxXMWxiZmVlb3Y3OSsvejJXZWZQZGM2Wm1abXVIUG5EaGN2WG54bENXQ3dMU3ZmZi85OXhzZkhtWmlZMkRaaHZyR3h3WmRmZnNuVTFCUnRiVzB2YldPTHgrTmhZSENRa1NOSFdKaWRJVk1vNEh5U2twNWdWVThSUkVWRnhzQWtnMDRHMitvNWo2MzRkWHdhSy9OK2R4T2hVSWh2ZnZPYi9PaEhQK0xvMGFQUHZaNXdPTXhiYjczRlo1OTk5Z2dCRERBN084dnQyN2Y1em5lKzg5Sm5YenYyeU00a3hPdjE4c1liYi9EKysrKy8xQTBMbFRBTUExM1huMXBNcUsrdloyUmsrTkNUdjJBWHFIcDZldmorOTc4UDJFMDRkKzdjZWVMelRkUGsrdlhyL09JWHYrRGt5Wk9Nam83dWVaTlRUVTBOVFUxTnFLcjYySXdzZTd2eW1FWWFJWXdLNWRoV1czMVo4YU5xSVNSSlBkZ2dyWmNEQ2xDUFRZcTJZMXNDdnpBa1NVSlJGTUxoTUpGSWhNN09Ub2FIaHpsNjlDZ2pJeU4wZEhUUTBOQkFJQkFnR0F4dWE1MCtuNC9HeGtiYTJ0cG9iR3drRUFqc3lPNlBSNG5PTmFESWkzZTVlN0J0bnM4Q2J3T3ZZKy9MNTFaUzE5YldjdXpZTWQ1KysyMnVYcjNLMGFOSG4raE1VVnRieThEQUFPdnI2OHpOelRFN083dFRBaGhzNVc4UGNCUzc5OG9Ba3MrNy9ZY2NsZmxtdTBzQUN6Qk1DOE9vc0lEK09rSlkyQXBmMWJhRGRsUXdtdDlXeU9UV0liY0JwU3hZQlR2blRwSXJiQkdyZUNwc0JZTDlhRUVoQjZ0eHdjU2k0TmFNeFZkVGNHZFdNTGNtaUtYdDQ3S0tLcXJZR3p3UEFRejJPS20rdmg2UHg0TnBtZ1FDZ2VkeU1YeDRUdllpMk0xMTdRV1N5U1FURXhOODl0bG5mUHp4eDF5L2ZwMnBxYWx0cVg5Yldsb1lHaHJpeUpFam5ENTltdlBuejNQeTVNa2QxYUdLeGFLYmpUc3hNY0hObXplNWRlc1d0Mi9mSmhhTFBmVzFwbW15dXJySzFOUVV3OFBEdExTMGJLbFJTcEpFWTJNamZYMTlURXhNa0VxbG5qdHViVGVnNnpwemMzUGN1M2VQeWNsSklwSEl0bU9CWkZtbXRiV1YxMTU3amNYRlJYN3ptOSt3c3JKQ0xwZGplbnFhbFpVVjh2bThPNjhNaFVLRVFpSGEyOXRwYlcybFdDd1NpOFg0NUpOUFNDWWZIWW9LSVNpVlNwUktwZWVLbFBPbzBCQ0dsbnFvRFd6VEFscFVSRmpJWmRMWFcyc3Z2aHI3MFY5blAzckM5cGhIS1ovUGt2TjZudkpHRGpFczJSdWt5YUFKUk5pTDdrbFFFRXZvNXI2TWp5ejJLQ2FsaXFlalNnQWZJQlRGSDlUVUdpUkpLU3VBbmM1VWdSQVd3akpBbUc0Q3NGcGVOQ0doQ1h0TUxybm45c3RpLzF5Ujc4dldmRitoV0ZpU3dGQmxTajZaakZ3aXBtZUlTbGxpSXM5TVlvMjdpeE1zRjZOa0taR2hRSllTZVVvVUtKVXpmazJNc3RHeldhWjhuMFQ4S29wQ1kyT2o2K2svT2pyS0cyKzh3ZVhMbDErWjRuSVYrNGZuVlM1MWRIVHcwVWNmOFIvLzQzOThLUXI4KzRWZ01NanJyNy9PYjMvN1c2NWR1NFpwN3R3cGNHNXVqbXZYcnZHREgveGd4M2E3THh1NnU3dDU5OTEzR1I4ZjUrLy8vdSszYmFzME16UERyMy85YTNwNmVnN0VDbXBYSUVrTURBNXc3c0o1UHY3NFgwa1VDdVRaSEZsbXNGQXBPVFVzTjNDa3hLYnExMlN6U3J2YmQxQ3YxOHRycjczR24vekpuM0RseWhWVTlmbUhYcXFxMHQvZnovRHdNSFYxZFkrUS9XdHJhOXk1YzRlTmpZMVhJaC9Yc1FpVEpJbWhvU0YrOHBPZmNQbnk1WmUyV2VGaE9EWm9UeXVDTkRVMTBkdmI5MUxGVG5SMGRQQ2Q3M3lIV0N5R0xNdU1qNDgvc2NBZ2hPRGF0V3Y4d3ovOEE5M2QzWHVlQit4MGNqL3RHTExNUElhUnNnbmdoNGdDNTd1U1pDK3lFZ1JKcnM2bG5nMFpXNzNhQ0VTQTdiR3hEMEZSRkx4ZXIydno3T1IwdGJXMXVZdWpCdWp2NzMrdSs3NGtTUVFDQVRjanVLR2hnVmdzdGhPeVV3SkMySGJIM2NBQ3VCSHpMNElXNERpMjVmTVpiQ1h3YzNVZU9ncWdvYUVoWG4vOWRkNTQ0dzJPSFR2MlZFV1ExK3VsdmIyZGdZRUIydHJhQ0FhRHp5eEVQZ2FPZ3Zrc2RnWndzdno0S2xwQlc5aDladHZMNWRnQmJBdE5leEZmZTlhdGJKRW95YmJ0b2EvT0xvajY2eUhYQ01rRlNLOUNZUU9zU25scVZRMzhWRlNXbEVxUXlRdG1WZ1UzcGdTZmp3dHVUZ3VtVndYcmliTHE5d0EzdFlvcXZnN1FOQTFWVlo5TGNPQkVQYndJSEZlbTdjVFdQQTJWMFRlSGtRQk9KQkxjdkhtVC8vVy8vaGYvOGkvL3dyMTc5NGpINDA5c0dLMUVTMHNMcjcvK091KysreTVuejU2bHQ3ZVgrdnI2SFpHL3VWeU9pWWtKcmwyN3hpZWZmTUt0VzdlWW41OG5sVW85TmJyR2dXbWFySzJ0OGVEQkF4WVhGeGtlSG42a3NiYXhzWkdSa1JFbUppWmMxZXhCSXAxT016azV5ZWVmZjA1OWZUMUhqeDdkdGdpbXJxNk9TNWN1dWRFa1RoWndQQjVuYm02T21aa1pqaHc1OHRoOWNQejRjV1puWjBrbWszejExVmZQMDlUNFZIaFVpVWdOdE5STGhQeHNPbWs4OGJBdi8wRXVkMTlwQVFnMlFiZ2RRcTNncXkxbi9HcGx4VzlaR2V3WTZWZ1Y2M2ppbXdnUURoTnQrK1dCaXBBOWxDeU5ncUZRTXZabGJHUmlqNDhMdkxwT1FJY1MxYUxGQVVLV1BWNUowaDV2MnlRc0xNdjJmSmVSVUpCUmtkRXNCVlZYVUhRWldXQW5Bd3NaTFBrWjNSNEhpYkxWczFRdXJVc21VTFo1bGkyRVpHRW9VSklGQlFuMGdDQWYxSmxlWCtiZTRpd0wxZ2JySXNXYW5tQzFHQ2ROamdKNldlMXJvbU5nbEJXL3R0V3p0YTBpL3JsejUzanZ2ZmM0Y2VJRWZYMTl0TFcxMGREUVFDZ1Uydk05VXNXckJVbVMzR1VuOEhxOXZQUE9PL3pvUnorcWtyOFBRWlpsK3ZyNk9ITGtDRzF0YlN3c0xPeDRIZGxzbHNuSnlaMnFkMTVLZUR3ZTNucnJMZGJYMTdsNzl5NnpzN1BiZXQzNitqby8vL25QR1JvYW9yT3o4NlVsMWpvN083bjh4aHY4bjMvNWx5eXZyYUZqanlaMWJKV3ZFNVRnakx2TGR5R3NpdC90MWVqei9QbnovUGpIUCthTk45N1l0Z3J0YVFpSHc0eU9qbkxzMkRFKy8venpSeWFsaTR1TFRFeE1NRFEwOUZJcjMwdWxFcmxjRHRNMGFXcHE0cDEzM3VIdHQ5OCtjTnV5M2NSMjdoME95Zld5MmYvMzl2Ynk3LzdkdjZPNXVabWYvZXhuZlBMSkowOHNvSXlQai9PclgvMks5OTU3ajFPblR1M3BkcW1xaXRmcmZXb1J6VFR6R0hvR3kzcXlNNVVzcThpeUZ3bmw1VDNKRGdiUDNXZWphUnAxZFhVME5UWFIxdFpHWjJjbmZYMTlMaWtaQ29Xb3E2dmJrWUxnU2UvVDBORGdXa0hINDNGV1YxZDNrcFhtd3lhQUI0RkZZSVVYSTRBYnNGV3psNER6MkNyYTV5Si8vWDQvUFQwOVhMeDRrY3VYTDNQMjdGbTZ1cm9lYS90Y0NTYy8yOGxVcTYrdlozRnhjYWZOZVQ1c1V0ekNKbjZYc1BPU0U4L3pXUTQ1TEd6cjd4eTdUSEJibHNBd0xQUktCZkRYbWN0MEZET1Nvd1lPMjZvWkxWRE95d3REdGt3Q0Y1SmdGTzNueTQvSnlQczZ3OUVTT0x2RWhHd08xdUtDbVJWYjlldVF2M1Bya013ZXpxcFRGVlc4YW5EY1RnNXlqbDVKM083VytnNGI4dms4MTY1ZDQrYy8vem0vL3ZXdnVYMzdOcmxjN3FtdmtTU0oxdFpXZW5wNk9IWHFGSys5OWhxdnYvNDZ3OFBEMi82K2hCQ3NycTZ5c0xEQXpNd010Mi9mNXViTm0zejExVmRNVDAvdjZETllsa1VzRm1OOGZKeWxwYVhIamxzYkdob1lHaHFtcjYrZmE5ZXVzN0d4c2FQMzJHMDRXY0MvK2MxdmFHcHFvcjI5ZmRzRXNPTThkZkxrU1RvN081RWtDU0VFMld5V3I3NzZpdjcrZnNMaDhDTVJNTElzMDlQVHd4dHZ2T0hHWmhtR1FVMU5EYUZRQ011eVNLZlRMQzB0c2JTMFJEUWFZNmQzUEk4S2pUWFExZ0MrQUp1RnFFZDNnTjNJaGdCWnN4MU12SFcyMVhPb0JZSXR0dVd6SjdCSitGcmxDcGIxZ2lZenpoaFNDQXdMU2pvWSs5T1NhV0VUd0ZVTDZIMUdsUUErSU1pSzE5ZlIrMiswcDJiMkNCTUpDeG1Ra2RCUTBFd05OZU5GVlZRVTE5cTlNcURsTU1ISitCVmJsTDdJSmdnRFV3YkxBNVpQb2VRUnBESEp5U1l4SzhtRHRRWHVyODB5azF4bWhSUnhNbVRJazBlbmhGbTJlZDRrZnAxODMyY1Y4WnVibXhrZUh1Yk1tVE84OGNZYm5EcDFpcTZ1cmwwcHlsZng5Y1pPQjdLcXFqSXdNTURWcTFjNWVmTGtIbTNWeTQxQUlNQzVjK2U0ZlBreWYvTTNmL1BNUWZqamtFZ2tXRmxaUWRmMWw0NUEyU2xxYW1wNCsrMjN1WDc5T24vek4zK3pMUkxZTkUxdTNMakJGMTk4d2VYTGwrbm82TmlYSE03ZGhwTWIvZDU3N3hHTlJwbWVubmJKWGFsaWNaZ0g1Mit3ZHdVc1NaSTRldlFvSDMzMEVSOSsrQ0VORFEyN3R1NmpSNDl5OGVKRjd0eTU4d2lwdHJxNnl2LzhuLytUcnE0dUxseTRzR3Z2dWQ4b2xVcEVvMUVLaFFMbno1L24vZmZmcDZ1cjY2QTNhOWZ4clBQTjcvY1REb2RmU0RsK1VPanM3T1Nqano1Q2xtWFM2ZlJqYmN2Qi9xNnZYYnZHbi8zWm4vRnYvczIvNGN5Wk0zdTJUVDZmNzVsRkdXRVdNSTBzUWp4NVhpbzVCTEQwa25iTjdDOGNOZVFxTmhrYUE1cXdNM08zRFllWTdldnJZM1IwbEtOSGp6SThQRXgvZnorUlNPUzVHdkdlaEZBb1JFZEhCNE9EZzZ5dHJaRktwWFpDQU12WXBPMEFNQVBjdzFZQzd4UXF0cHI0S0hBUm0vd2Q0RGtWMUtxcTB0blo2ZWFvWDdseWhZR0JnVzByaWxSVnBhYW14bFZIMTlUVWtFd210KzA0Z3IxZjZvQis3T05nREpqSFBqWjBYaTAreWNJbS9YZGQ0V3lhZ21MUm9GQTBNQXlueWZybEc3ZnREY3FxRmxteGlkOGFiVE16TDdNRXFVWEl4c0FvYkgxK0ZadXc3RnIwUmxvd3ZTYTRNd3MzSnkxdXpRakdsd1NyQ1NnOFd3eFhSUlZWN0JKa1dYNXVDK2pkd0Y2UXRiczVYdHN0TEM0dThvLy8rSS84WC8vWC84WFMwdEl6NjA3T21PcmN1WE5jdlhxVlM1Y3UwZFhWUlNRUzJUYjVXeXdXV1ZoWTROYXRXM3p5eVNmY3VIR0Q2ZWxwb3RIb3RpTzlIa1k2bldabVpvYloyVmsyTmpZZWlUSU1oOFAwOXZiUzJkbEpNTGlWYUQwb1A5RllMTWIxNjlkcGIyOW5lSGlZaG9hR2JUZXhTNUpFYzNNelBUMDlkSFYxTVRjMzU1TDU0WENZMXRaV09qbzZIbkhTYW14c2RKdU91N3E2OEhnOGRIWjIwdExTZ21tYUxDMHRjZjM2ZGY3MVgyMGI4RVJpWjRJU2p3WU5ZWW1XV2duTkw5bTJjMDlUQUR0eEZ1RldDSGRDcUEzOHRYWWptNkxpTXNpaXNvOTJseG95QU5PeU1Fd0xjKytkWlp4U25HUEFWOFUrNHVXckpyMGlVQlJmclN4Ny84VHVQSVZIVDk3eWVTRUVFaEpxbVFEMjRjVm5oZkJZWHRzZHdEbi90K01wditkNGFDTXFyWjVsTzFsUnlDWkNGUWlmUkZFVHBFeURyS1NUTmdwRXpTd3BLYzk4ZHBXdjVpYVlMNnlScFVpYUlsbUtaZFd2VWY3UFZ2cWFGY1R2azZ5ZTYrcnFhR3hzcExlMzE3VTdlL2ZkZDE5NmU4d3FEZytlSjh2RUlldk9uajM3VWxsNzdqZE9uRGpCdDc3MUxhNWR1OGJrNU9TT1g1L0w1Ymh6NTQ3YjdQR3FvN096a3ovNGd6OGdHbzJ5c0xDd0xYVk9KcFBocTYrKzR0cTFhMFFpRWZ4Ky96NXM2ZTZqb2FHQkR6LzhrSW1KQ1dibjVyQ2U4dGtmZDhmZFRXaWF4cEVqUi9qaEQzL0loeDkrdU91eEFqMDlQVnk0Y0lHLytxdS9lbVNDbUV3bStlVXZmOG5GaXhkZldnSTRrOGx3Ly81OVZsWldhR3RyYzYrVnIxb1RoMkVZbEVxbFoyWUF0N2EydnJUM2liYTJOcjc3M2UrU1RDWlJGSVhidDI4LzFtWnJaV1dGUC8velA2ZWhvWUgrL3Y0OXNZTE9aclBNejg4VGk4VXdqQ2ZIRHBsVzBTYUFINnNBdGtlYnNxU2hxRDRrV2F0MkVENGJKaEFISG1BVG8yM1llYkN0N0NERFZsVlZONzlyZEhTVVU2ZE8wZFBUc3lmSFNpQVFvTE96azVHUkVaYVdsbGhjWENTVlNtMzM1VTdtOFNBd2hmMlpuMmVtMW9oTi9yNVJYa2F3TGJTZkM1RkloRk9uVG5IMTZsVXVYcnhJWDEvZmp1MGsvWDQvemMzTmRIZDNzN2k0aUs3clpES1puVzVLRGRDQlRRUlBBeW5zcG9CWGlWWnk4bzJkck9OZGcybGFGSXNtaGFLSllWYWQ4MXc0UlZGUjNpZXlBcDVRV1ExY1hsUS9hRUhJeFVEUDJFU3cwSEZKNDY4akdleGsvVXFBQVprY3JHd0lIdnpmN1AxWGNGelhnZTZQL25ib25CdmR5QmtrQU9Zc1VxUklSY3RKMWpoSWx0T016OHlwbVRxbi9sWDM1ZFo5dW8rMzZqNmRxbnZyUHAycG1wb2F6OVN4eXg1YjlsaTJiTXVTSlVzVWN3WUlnZ1JBZ01nNWRLUHpEdmRoZHpjQkNpQlNJM0wvVkczU1JJZmQzZWplYTYxdmZkODNxTlBTWXpoKzd6N1M2QjJEeWVnV1dHNHlNWG5Ha0NRSldaYVJKR25MaWFZN0FWM1htWjJkcGF1cmkxdTNidEhaMmZuVTZ3dUNRRmxaR2ZYMTllemZ2NStUSjA5eTh1Uko5dXpacytSanFhckt4TVFFWTJOaitVdHZieS8zN3QzanhvMGJQSGp3WUZWOXMwOCt4dVRrSkQwOVBUeDgrUEFMcVRpU0pCRUtsMUJjWEl6UDYwYVNZQlZOYXdWRlVSUkdSa2E0ZWZNbXUzYnRJaEFJTEJqZHZCaGVyNWRqeDQ0eE1EREFuLy84WjRhR2hwaWNuT1RtelpzY1BYcVVZOGVPVVZwYU91LytKRW1pcEtRazd4NjIyKzJVbFpYbDE4RWlrU2poNGpJazJVSXNOc3Y5Ky9lSVJtZFJsem51a2tSdzJNQmxCOEdDTWNLZGV3TFZjdzVlQVdRYk9BT0c2T3V0QUhjRk9JTkd2NitlM1pYMWxGU3F0YUdEYmxTS2FLcUdybS9ZdUhLdUg4TmtnekFGNEUxQ0ZCMUZvbVJERkJhZWVPdG9SaSt3cmlNaUlpRmlRY1lwMi9GNTNUZ2ROcVNrYnRqMmRTR2I1YjVaek5rOUsranpvNTRGeGZoVFVsRUZuYlFBS1l1T0ZvQ0lOVVh2eUJUOTQrT01KQ2NZU3M0d1FZUXhaWWFSNUNRenhFbWdrQ1JER3VVSnh5OXpwTitGeVhVR25qdDNqdE9uVDdONzkyNUtTMHNwTGk3RzYvVnV4QXRqOG95d21nam9vcUlpWG52dE5mYnQyN2VPUjdiOUtTb3E0dmp4NCt6ZnYzOVZQU1V6TXpOY3ZYcVZFeWRPUEJNQ3NOVnE1Y2lSSTV3K2ZacnIxNjh2T1luSjBkcmF5bWVmZmNhSkV5ZTJyUUJzc1Zob2FtcGk3OTY5ZlBMSko0eVBqMi9hcVBMdzRjTzg4ODQ3Zk90YjM2SzZ1cnJnOSsveGVOaTNieC9OemMzMDl2Wit3WmsyTmpiRzRPQWdrVWhrMjUzdmtza2tuMzMyR1gvNjA1K0l4K044NHh2ZjRCdmYrTWFPak1sUEpwUE16czQrZGFOR2FXa3BEUTBOMkd5MkRUeXl3bEplWHM2UGYveGp3dUV3LytmLy9COCsvL3p6QlVYZzhmRnhQdi84YzQ0ZE84WkxMNzIwN0FpdzVaRGJHUEhlZSsvUjN0NytWRGVucGlWUmxPZ1RFZEJ6TXdSQUZHMklvaE5SdEd6Zk4yYmpVREJpZnBPQURjTUZhc2Q0TWN0Wm9SUFlhclVTREFZcExTMWR0ODVvcTlWS1NVa0p1M2Z2cHJlM2wvdjM3ek13TUxEY200c1lMdDBLak1qallzQ0RJWFF1RnkvUUNMd0luTVVRZ290WXBVSWxpaUwxOWZVODk5eHpuRHAxaXZyNitsV2xDbGl0VmtwTFMybHNiR1JrWklTWm1ablZDTUJnUEw5S2pEanJZUXl4ZENjS3dETVVXZ0RXZEpJcGhXUlNJYU5rUnptQ3NFVTJnMjhoOU95YWhDQVpvcTliTmdSaFJ4RkUraUU2QUlrSnlDUWZpOGJQSWdMR2VwSm1DTHdQaCtEMlE0MGJuVHB0dlRxUFJuVkdwaUMra3o2ZEppYmJDRW1TOGgzQW15RUFDNEtBS0lyNXkxcnZhNnU1ZnhPSkJKMmRuZHkrZlh2SmNaNG9pbFJYVi9QY2M4L3h3Z3N2Y1Bqd1llcnI2NWVzMFFCakUrcmc0Q0QzN3QyanRiV1Z0clkyK3Z2N0dSc2JZMlptaG9tSmlZTDEwQ2FUU1I0K2ZKanYxZDIvZi8rOGVhVExLZUh6V3ZGNTdNaHpCT0ROSGtKMGRuYnkwVWNmNFhhNzhYcTkxTmJXTHV0MlBwK1BNMmZPSUVrU1UxTlR2UGZlZTRDUml0Ylcxc2FkTzNlUVpablMwdEl2L080VkZ4Y1REQWEvRUxQdTlYbzRkT2dBc2VnRUE3MFBtSmtjSWhHUExWc3NGd0JKRUpCRVlmR1J1eUFZRGw5M0dQdzE0SzBFUjhoSU1CRXRyS0UxWjBVWUVlK1BMeHRBcnBGdHMzL2xuamxNQVhpVGtDUzdWeFNmWERONi9NMmc2emtCV0VORVFrYkNnb1JEc3VEMVduRmFKTVNrc29VK01ybVk1MXpVOCtPTEt1Z29NcWgyaVpRZEpra3hFQnVqWjJTUTNza0pobVltR1V0Tk1zNHMwOFNZSlVrS2hWUTI2am1ObXYzUENIbzIvbmZ4V1c0NEhHYi8vdjBjUEhpUUF3Y09zSC8vZnBxYm05ZHRrY2pFWkRWNFBCN3E2K3UzZFVmblJsRlRVOE5MTDcxRVYxY1hyYTJ0SzdwdElwR2dwNmVId2NGQk5FMWI4OFJsTytCeXVYajU1WmZwNnVyaUp6LzVDVE16TTB2ZVpuUjBsRnUzYmpFek0wTjVlZmtHSE9YNkVBZ0VxS3VybzZLaWdxbXBxWlgyRTY2WlhPenp0NzcxTGI3OTdXOS9vWE9ta05UVzF2TG1tMjh5TkRURWpSczM1djBzbFVyUjI5dkx3NGNQMmJkdjM3Wnh6c1ppTVM1ZXZNaS8vZHUvY2Y3OGVacWFtbmp6elRjNWNPREFsbG9zS0JUeGVKeElKTEtrQTdpOHZIemJQLytTa2hMZWVPTU5KRWtpbFVweDllclZCVGYwM0w1OW0xLys4cGVVbEpSdzdOaXhCZTlMVVJSU3FSU1pUQ2FmdnFHcUtxcXFra3dtaWNWaXhPTnh4c2JHOG83ZnljbEpidCsrVFd0cks2T2pvMDk5elRVdFF5WXpoYVltV1d5c0tRZ1dSTW1HSU1pbUFMdzBPb2E0bHdhNk1NUlJNWHVSTVp5dVM3Nk9tVXlHU0NUQzVPUWtxVlJxWGIvWEJFSEE1L05SVTFORGJXMHRKU1VsT0ozT2xWUlI1RVRnTUliUVdjN2pLT3lucVUwaWhudTREamdLbkFUMllZaklxOExsY2xGV1ZzYWhRNGM0ZE9nUTlmWDFxOTdvWmJGWXFLeXNaUC8rL1l5T2p0TGIyOHZRME5CcUlpS3RHTTh6akNFRzc3UTFDUVVqL2puR09qaUFrMG1WWkRLemJDZktNMG11R3hqQldHUzFPTE1PWUtmaHRwRnR4dC9qRTVDS2dKbzJSR05SeWtacWIrOXo3cUxNN2ZvRjBHQTJBZVBUMERWa09INnZQdEJvNllIK2NaMW9ITlF0czk1a1l2THNJWXJpcGp1QWQ3SUxPUjZQMDlyYXlwVXJWNWlZbUZqd09vSWc1Q3RJamg0OXl1blRwM251dWVkb2FHaFlOS0VwblU0elBUM041T1FrNCtQakRBNE8wdC9mei8zNzk3bDM3eDczNzk5bmRIUjBYWjVUcmxmM3lwVXJsRmRVVWwxZFF6aWNHMlluZ1hGY3RnbHMxc3dXMGhNZ0VvblEwdEpDVVZFUjFkWFZ1TjN1Zk1YTDA4aUp1eWRPbktDMXRaV1dsaFpHUjBkSkpCSzB0N2Z6NmFlZlVsSlNRbGxaMlJkdUs0cmlvdStoMitWa2Q1V0xxckNFeDY2eGtsWEVSQm95cXJHL0tuODdYWDg4TnNsVlZiaUt3VmRsWEZ4aFk1d2lpRm5YNzhhTjhYU05iTS8zeGp3Y3BnTjRVOWhwazYxdGd5QmFYWUx3bEpkZjE3UFJjeG9DRWxJMkF0b21TdGh0WUpWQTFNazZmMFUyZnBJeU4rbzVHL09jNi9jVmRYUkJSUmMwZEt0SXlpb3lLNnJNaWdtbTlEaDlxVWxhQng5eWY3U0hDYUpFU1RKTE1oL3puQk45RlZReSthaG43WW1ZNS9uZlRINi9uOUxTVXNyS3ltaHFhdUxsbDEvbTNMbHpPOUl4WkxMMU1IWk5hU3RhQUxOWUxNdnVCM25XY2J2ZG5EMTdsaHMzYnREVzFyYVN2amswVFdObVpvYXBxU2tTaWNRejAvZTliOTgrdnZXdGI5SGUzczVubjMxR0lwRjQ2dlZWVmFXM3Q1ZU9qZzdxNnVxMjdjYUVYRWRrS0JSQ2txUU5GWUN0Vml2Nzl1M2oyOS8rTm0rKytlYTZpcjlneEIxOStjdGZwclcxbGRiVzFubGR3SXFpNUNlemRYVjEyMklEVkRxZDV1clZxL3prSnovaHZmZmVRNVpsWG43NVpZNGRPN1p0WGVsTEVZdkZGdTE0a2lRcEg3VzZVNTUvT0J6bWExLzdHdkY0SEt2Vnl2WHIxNyt3UVdWNGVKaVBQdnFJMHRKU290RW9sWldWK1lsNUlwRmdabWFHeWNsSnBxZW5pY2ZqcUtxS3J1c29pa0lta3lFV2l6RXpNOFBNekF4OWZYM2N2WHVYZ1lHQnAwWStmd0ZkSTVPZUpKVWNSY25NSW9wVzV0bnJkQjBrR1ZHeWdTQ1pBdkRLbUFSYU1WYWdKQXozN3g0TUlmQ3BjZENwVklxUmtSRWVQbnhJYjI4dms1T1RCQUtCZFR0UW04MUdXVmtaTlRVMTFOVFUwTm5aeWNEQXdFcVRTSW93ZW51Yk1BVHdBZUJwZCtEQWlFWStDVHdQTkdPOE5xdENsbVZxYTJzNWN1UklmckhTNC9Hczl1NndXQ3dVRnhkVFcxdExWVlVWWHE4WFFSQldLd0M3TUp6UkRsalJ1dHAyUU1FUSsyZXpmeTlZMmF5V2RRQW5rZ3BLM2dGY2lIdCtCaEJFd3czc0tRT3JFeHhCb3hjNDBnL3hTVkFMNDc3YUZ1aWdaM1FtWTRid2U2OFhiai9VdWZ0STUvNkF6dkFVcE5ZcmNkTEV4R1RaNU1UWHpYUUFGOHFGUE5kTnZGV0U1RWVQSG5IbHloV3VYYnZHK1BqNEYzNHVpaUlsSlNVY09IQ0FsMTU2aVRObnpyQnIxeTdDNGZDaUd4Rm5aMmQ1OU9nUkhSMGRlYkgzNGNPSFRFMU5NVE16dy9UME5ORm9kTjJlazY3cmpJMk5jZXZXTGFxcWE5bTlxd0czUzhMaHpBQmpvSFdTaXJXVFNrNmpiTEVXMXB3cG9ieThITHZkenZIanh3a0dnOHU2YlZGUkVVZU9IT0hGRjEva3dvVUxkSFIwME5IUmdTekw3Tm16aHdNSERxd3dVV3VBNUZRSHFaa2VNb2twdEJWc3VuUFp3YnFRM0NNSVJqS0p6V000ZnYxMXhwakU1Z1BaYnZ4OFhzL3ZPaUxrL3dkTjExQlZmYU1FNExrZHdLWUl2SUdZQXZBbUlZaXlUUkNlSnY3b3hxNFB0R3dFdElTTWlDeUl5SUtBaEo0VmdFWGpraGVCMS9NVCswUy9iOTcxbTQxNkZsV1FkQlF4Ry9VczZpaE9uYmhkWVZTTjBqczV4TVBKUWJyam8vUW54eGxsbWloeEVtU3l3cThSOGF5Z1pqdCtjMjdmcDBjOWw1U1U4T2FiYi9MQ0N5OVFVMU9UTDI5M3U5M3IrRnFZbUR4RzA3UVZDOEFteTBlU0pIYnQyc1hldlhzcEtTbGhhR2hvUmJlZm5KeGtaR1NFU0NUeXpBakFvaWh5K1BCaDNuNzdiU0tSQ0pjdVhWcnlOdVBqNC96bEwzK2h1cnFhdzRjUHIvOUJyaE9pS0c3NERtVkJFRGgyN0JqZis5NzNlUFBOTnpjc2JyeWlvb0k5ZS9ia3hZbTUzMEh0N2UxY3ZIaVIxMTkvZmNzTHdPbDBtaXRYcnZDem4vMk0zLzcydHlRU0NiNzJ0YS94OWE5L25lTGlWUnZmdGp3NXNYSWhQQjRQcjc3NjZyYitMQzVFS0JUaXU5LzlMdUZ3bUovKzlLZDg4TUVIWDRpUTdldnI0OS8vL2QrNWZQa3kxZFhWdUZ3dU5FMWpkbmIyQ3dKdzd0dzcxd21jeVdSUUZJVmtNcm5rNXBmRlVOTXp4Q0wzY0xocWNMa2JRQkRSNTV6blJkR0dKSmtSMEt0QXdZajhUVE5mQUhTemhBQ2N5V1NZbkp5a3U3dWJ0clkyR2hzYmNidmQrUTAvaFVZUUJGd3VGNldscGRUWDE5UFQwME04SGwvU1FmNEVIZ3dCZUFBWUJVWllXZ0N1QTQ0REJ6REUzMVdkekJ3T1I5NzUrOElMTDNEZ3dBRkNvZEJxN2lxUElBaUZjZ0hKR0RIZ1RnejM5MDRUZ01IWTVKQ213SXRidWc2S29xSmtWTk1CdkN6MHg2NGJ5SXJBRHFOYlQzYUFOTmNOUEE3cE9HalpEWFdDWUZ4L0p5anNjNWVMTWpDYnpMcCtoM1Z1UGRTNS9WQ243WkZPM3poTVJNSDgxVEl4MlJya3hOZk5OQTdraE51MXpxMXpZd2habGpjOWxVM1hkUjQrZk1pRkN4ZTRjZVBHZ3B0RmMzVWcrL2Z2NTl5NWM3ejIybXNjUG56NEN4VWF1cTR6T1RuSjVPUWtFeE1UREE0TzB0blpTV2RuSiszdDdYUjBkREE4UEx5UlQ0OTBPczNRMEJBM2I5Nmt0S1FJTlROQ2RaV0VKRThRbjd6UC9RZHRURXhPYmJudmVsM1hHUm9hNHVMRmkzZzhIc0xoTUM2WGExbkNyU2lLTkRZMmN1Yk1HZnI3KytuczdDUWFqZExlM3M2bFM1ZG9ibTZtcWFtUlFPQnBnbkljZFhhRThmRUJ4bnBidVBqNWVlNjFkekkxL2ZUNFo2c01BVGNFUEFJK0p4eXBGNmdLQzBhZ1NFWWoyMkZwakQxc0hrUDBEZFFaSXJETmx4MXI2Rm5YNzhhdktXc2FHem1tMURIbWd3Vk55REZaR2xNQTNnUkVVWlpkM21aSldLVC8xeURuaXRjUkVKQVFrWkdSZFJGQkVSQWtFUFJOaWlkNk11cFpOT1JhVlFiTklaQVNKZUtTVHRTU1lDZytTZS9FT0VQYUpBUFRvL1ROakRETURETWtTSkFtUVhxTzQvZXg2S3ZscGQrRlJlMVFLRVJUVXhQNzkrOW4zNzU5bkR4NWt1Ym01bTNYZFdpeU0xaE5sMGttazFtUmsvVlp4K3Yxc25mdlh2YnQyNWVQZjF3dTBXaVU4ZkZ4Wm1abUZveCsyYW40L1g1ZWVlV1ZmTTlNSlBMMCtzSFoyVm11WExuQzZkT25PWFRvMEpiWm1ic1NkRjBublU2VFRxYzNiRU9HSkVrY09IQ0E3M3puTzN6em05OWNsODdmeFpCbG1acWFHbmJ0MmtWZlg5Kzg3cURaMlZuYTI5dVptSmhZZG9mT1pxQW9DcmR1M2VMZi91M2YrT0NERDRoRUloUVhGL1BTU3k5eDlPalJIWjJVa01sa0Z1Mmk5WGc4bkQ1OW1qMTc5bXp3VWEwL3dXQ1ExMTU3RFVtU1VCU0Z6ejc3akttcHFmelBkVjFuWUdDQWdZRUJmRDRmVnFzMS85bE9KcFB6M083cmhhckVtSjFwd2UzYmk4dXpHMEdRME9jWStVVEJnaVE1RUV3SDhHcVpCTm93NG44REdCSEpTKzVVMFhXZGlZa0o3dDI3UjBWRkJTNlhpNE1IRDFKVVZMUnVCMXBTVWtKemN6UER3OE5NVGs0U2lVUldFZ1h0d1JCMGg0RDdMTjEzN01Qb0RXNENxakFFMGhYamNEaW9yNi9ud0lFRG5EbHpoaE1uVGxCVFU3TW05MitPcWFrcGVudDc2ZS92SnhLSnJQWmNhOEhZQU9ER0VJSjM0aGQ5Q3NNRlhIQi9qYUxvS0lvKzU3WGZmdU8xVFVVSGhHd25zRWZLZGdNSFlLYlBjQVFucDBIYllmYlgzSzlJQnNZak9vOUdvZTJSRWZuYzBxUHpjRmhuYUZJbmx0eFNpYUFtSnM4OGtpUmhzOW13V0N6YmNtNCtsMXpjcnRWcTNmVDUzZURnSUI5KytDSHZ2LzgrYlcxdFh4Qi9YUzRYRlJVVkhEaHdnQmRlZUlGVHAwNnhaOCtlTDRpL2lxTFEzOS9Qdlh2M3VIdjNMdmZ2MzZlM3Q1Zmg0ZUY4Q3QxU2F6RHJSU3FWNG01ckswcG1sckhoVyt4cDhtSzNwUmtlR3VMeWxWNkdSbUtiY2x4TEVZbEVhR3RydysxMlUxbFppY3Zsb3JhMmR0R281aHhXcTVXcXFpb09IRGpBOWV2WHVYWHJGaE1URTBRaUVjNmZQNC9mNytlclgvMHFwMCtmWHNTOW5TQXpjWStlKzVlNGMrY21OMjdlNVViTEFHMWQ0NHhIRmgvTWVaMEMxU0ZvcW9JOVZRSU5aY1psZDZXQUtPakdhRkFYUUxhQ284aUllL2JYZ0x2WVNDVVI1Y2ViMURiaERLenJvS282R1dYREhsc0RNdG1MeVFaaUNzQ2JoSUQ0Mi94SWZNR0pzN0ZiVlVCSFJFQkVSRVpDMGlTRWxBanl2TVpnMXUrTFlrN2tzcEFWcFFVVkpNT3hyNHNhbXFTak9VVVNOcDJwVElxSlJJb1pNY200TmtISCtDUHVEL1F6VG9RSXlXemNjNG9FU1pJb1pGRElaQ09ldGJ6c3U5RGpHd0pRT0J5bXZMeWN2WHYzY3ZyMGFjNmRPN2VsRjdaTm5nMVdzeXRTVVpTVlJWSSs0K1M2VmMrZE84ZnQyN2NaR3h0YjltMHptUXg5ZlgwOGV2U0l1cnE2RlVhL2JHOHFLeXM1ZGVvVTE2OWY1K0xGaTArTlJNNWtNang2OUlpZW5oNWlzZGkyVEZHWUt3QnZ4QVlMbTgzR29VT0hlT3V0dDNqampUYzJWUHpOVVZkWHgrSERoN2w4K2ZJOEFSaGdhR2lJVzdkdXNXdlhyaTNwQXRZMGpkYldWbjcrODUvelgvLzFYNHlQaitQeGVQanFWNy9LcVZPbnR1UXhGNHFjVzNVeG5FNG5kWFYxeTQ2OTJtNzRmRDVlZmZWVlZGWEY2WFR5OGNjZk16SXk4b1hyTGFmRGZEM1E5QXlKV0EvSnhBQ2Fsa2FTNXNkd0M0S0VLTm1SSktkL1V3NXdaekNNRVFkZEFld0ZhbG1Ha3BWTUp1bnU3dWJxMWF0NFBCNktpb3JXVlFEMitYdzBORFF3TmphV1AwZXVRQUIyQXFVWW9tNHBodWc1dmNoMXc4QXVqQWpvY2d4eGRNVUlna0JGUlVXK3ArNzQ4ZVA1Nk9lMU9tNW1abVpvYjIvbjJyVnIzTDE3bC9IeDhkVUt3QktHODllT0lRYnZSQWR3ak1jUjBBVWxvNmdvaW9hcW1WTGRpbm15RzlqcU1oekJWcWZoekJFdEVCc3hST0IwN0xFUUxFaFpoODQyNG9tbXNFUUNKaU02bllPRzZIdXRRNmV0VjZkM0ZLWmp1aG41YkdLeUJjazVnQzBXeTZhNVp1Y203YXdGVVJTeFdDeWJLZ0RydXM3ZzRDQ2ZmLzQ1Zi9yVG43aDI3ZG9YNm5oOFBsOStmbjM2OUdsT25UcEZjM056WGpTY25aMWxjbktTcWFrcGhvZUg4OGswcmEydFBIandnT0hoNFEydG9Yb2FVMU1UM0xvMXpXeWtoKzR1UDNhYnpQQlluRWU5RVNhbjEzOUQ3V3FKUkNLMHQ3ZnoxNy8rRlpmTGxSZmtsOEp1dDFOWldVbHpjek83ZCs4bWtVZ1FqOGZwN096a3d3OC9wS2dvUkdWbEJkVVZ4VWlDUWlRYVlYeDhpa2cwVG5KMmpPbmhWcnJ1WGVUMnJkdGNiUm1nc3gvaVQ0emlyREw0WE9CM0NRVGNVQmtXcUMrQlBUVUNleW9GZHBVTGhEd2d5TG9ScDZFSVJyeXpJd2krYXNQNTZ5NDF4aDY2RGxwdWcvSG1ZQWpBMnVOYWtmVW5Kd0J2alEvSk00UXBBRzhHZ21DVWZqOXRFcUdURllENW9nQ2NGTUVtSXVRVHBRcTlFMHczanZIeGdXVGR2bG8yNmxrRFNTTWo2S1FGblpRRnRKREdwQlNqdld1SWgwTmpqT3JUakloampLUW1HU2RLaEFSSk1pUlJTSkZaaHZBN245cmEydnpPcTMzNzlsRlZWVVVvRk5yUmk4TW0yNGVjQTNnbEFyQ21hWXM2djB3V3BxYW1ock5uei9LYjMveG1SUUl3UEk3RFBYejRNQ1VsSmV0MGhGc1BxOVhLeVpNbmVmRGdBUjBkSFFzS0xIT1ptSmlncTZ1TDN0NWVtcHViTnoyZWFhV29xa295bVNTWlRLNjdBQ3hKRWlkUG51U0hQL3doWC8zcVY1YzFLVmtQNnV2ck9YMzZOTC8rOWErWm5KeWM5N094c1RIZWYvOTk2dXJxZU9XVlZ6YmwrQlpEMHpUdTNyM0xMMzd4QzM3MXExL2xlNWNPSHo3TWozNzBJNDRkTzdiSlI3aStSQ0lSWXJIRmQxNjdYQzZLaTR1My9XNy9wK0h4ZVBqeWw3OU1LQlFpRUFqd24vLzVud3YyYjIwV2loSWxuUndtazVwQXRKY2lDQ0s2L3ZoN1JSVHRXTzNGdFJacm9DS1RuaHJZeEVQZHJtUXdvcEc3Z1g0TVY3Q1hwVjJ5VEV4TTBON2VUa2xKQ1UxTlRmaysydlZZVUxUWmJKU1hsMU5mWDA5cGFlbEtONUdKR0M3Z2t1d2xnT0VHbm51QzhtQ0l3M3VBNXpEY3YvN1ZIS3ZUNlNRVUNuSGd3QUdlZSs0NVRwdzRRWDE5L1pyblM3cXVNek16UTNkM056ZHUzT0RxMWF0MGRIUXMybUcrREhMU1ZPNnlFNGtBVXhneDBBVWxtVkpKcEJRVXBXRFZ3czh3Z3VHK3NYckFXMlc0Y1J4QmlBNGFsOFNVSVFJTDIxaHMxM1JtNDlBekF2ZjdkZTUwYTdUMFFHdFAxdldiV3NTUFlHSmlzdW5NallEZTduT0NuQVBZWnJOOXdVbTdVUXdPRHZMblAvK1pQL3poRDF5NmRPa0w4NDVRS0VSemN6TW5UcHpnK2VlZjUvRGh3OVRVMU9URjMvSHhjZHJiMjJscGFlSGV2WHYwOVBUa0UySnlpWE5ialdSU3BhTnpncEdSR1dSWkloYlhTQ1JVTWhzbitLMks0ZUZoUHZ2c002eFdLNEZBQUpmTGhkL3ZYL0oyUlVWRkhEcDBpRWVQSGhHTlJybDc5eTZwVklyMit3KzRjdVVxWmFVaFV2dHJzTXRKSG5aMWNPMUdLNTNkZzh6TXhJak9UREErUHNqWTJBVEQ0NUIrNHR4b3QwQkRHVFJWQ2pSVkN0U1ZpdFFXQzRUOUVQUkIwQVZ1bHdCU052WlpFMEcwZ3pNTS9sb0kxSUlyYkFqQ0NHeUZDbHhkMTFGVWZhTUY0RFJtQlBTR1l3ckFtNFk0UjJTZGo1RHJxc2xLb2dKQ1ZnUVdFSFVaVkdITzk0Umd4QW5rNDZBTE5YcWZLL3crN3ZqVmRBMVZBdFV1a0xIS3hHU2RDVDNHVUdTTWg1RUJPa2FINkk5Tk1rNkVTV2FJa3lLRlFvSU1hWlJzMUxPYUYzMVZ0Qzhjc2N2bElod09VMTFkVFdWbEpVVkZSZXpldlp2RGh3K3plL2R1U2t0TEMvUWNUVXdLZzY3cnErb0FOaDNBSzhOaXNkRFUxTVM1YytjWUhSMmx2NzkvMmJjZEhCems4dVhMdlAzMjI4K1VBQXhRVlZYRjJiTm5lZi85OTVjVWdGT3BGUGZ2MytmT25UdlUxTlJzdTg1a1NaS1luWjFsZW5wNlhTT2diVFliUjQ4ZTVaMTMzdUViMy9qR3BrYUwyMncybXB1Yk9YYnNHR05qWTB4TVRPUi9Gby9IdVg3OU92ZnYzK2ZsbDEvZVVnc0g5KzdkNDEvLzlWOTUvLzMzZWZUb0VXQTQxcytjT2NPUkkwZHdPbGVWZkxvdDBEU05rWkdSUmNVVFNaSUloVUk3K2pYSTRYYTc4MUZjbXFieHdRY2YwTjNkdmRtSGxTZVRuaUtWSE1GcURTSks5c2ZmSzdxS0tObXhPeXIrbnhacjhJOFlRcWJKeW9rQ2cwQW5oZ080RGdpeVJDUndydHVzczdPVGUvZnU1WHQ2ZzhGZ3diL25SRkhFNS9OUlZsWkdLQlJhelhsUnhuaE9GVUFOaHZNNXQrTG93dWdJUGdxY0JnNnpTdmV2eFdMSnh4V2VQbjJhRXlkT0ZDejlJUktKME5YVnhmWHIxN2x5NVFxdHJhME1EUTJ0cUk3akNUSThkc2dtMkprdWdDUXd3enBFM0dVeUtvbUVzcEdMZFR1UUJicUJyZTdIZmNDeTNYQURTMVpJVG9HU3lycDBzcjNBVzJnOE5ROWh6a1VIUllIcENQU01HajIvdHgvcXREN1M2UjZCb1VuVDlXdGlzdFdSSkFsWmxqZGRBRjVONWRtVDVPS3M3WGI3aGd2QXlXU1NzYkV4TGw2OHlCLys4QWZPbnovUDBOQVFZRHczbTgxR1VWRVIrL2Z2NTh5Wk01dzVjNGI5Ky9jVENBUklKQklNRFEweFBEeE1WMWNYYlcxdDNMcDFpN3QzN3pJd01MQXRUQjJwTkl4TmJLL2FWVVZSNk8zdDVmTGx5NFREWWV4Mk8wZU9IRmxTQkxiWmJPemF0WXN6WjE1Z2VIaUUvdjVCb3RFWllyT3p0TFcxNFhUSWpBMVVZcGNUZEhXMGMrbktIZG83UjVpYVhWaU85YmtnNEJZSXVLQzh5QkIvOTFZTDdLa1dxQ3NSS0EwSUNCYU04NjRLYURvb3VpR3B5Rlp3aGNCZmJZaS83aEtRYktDcmMyS2ZOeDlOMHplcUF6alhkV282Z0RjQlV3RGVGQVE1SitrdWpzYmp6OFBqa2J5QWtOVjQ5VGxhNzFxN2dPY0t4N3JoOUNYcitCVU5BVmlYTkRRWlZJZEUwcW94cmFTWjBSU21NbkY2MHlQY0hlbWlZNnlQQ2FMTWttS1dWRmI4elpCQnpUdCtsV3pYNzVNNEhBNkN3U0FWRlJYVTFkWFIwTkRBdm4zN2FHcHFvckt5a21Bd3VFaE92NG5KNXFPcUtxcXFya2h3MG5WOVd3d1d0eHArdjUvWFhudU5CdzhlTURBd3NPelhQSmxNMHRIUndkMjdkNm12cjhmaGNDeDlveDJDTE1zME5UVng1c3daK3ZyNkdCd2NmT3IxT3pzNytmenp6emw1OGlSMWRYVWJkSlJySXg2UE16TXp3K1RrSkE4ZlBseExMT1dTT0J3T1RwNDh5VHZ2dk1OWHYvclZMZEVyWFZ4Y3pGZSs4aFVlUFhyRStmUG41LzFzWW1LQ29hRWhJcEhJbGtqTlVCU0ZCdzhlOEl0Zi9JS2YvZXhuOHpZbDdOdTNqM1BuenUxNDRUTVdpM0h0MmpVNk9qb1cvSG11OCtoWmlhdTNXQ3ljT0hFQ1NaTHcrWHo4NWplLzRjR0RCNXQ5V0FBb21RanA1QmlhdXdGUmV2eDdxZXNxa3VUQTZhN0haaS9lRFp4Zi9GNU1ub0tPNGZ5OUQ1UmhDSjkrbHRFSm0wd21HUm9hb3FXbGhXQXdpTjF1eCtsMHJzdjVYWlpsM0c0M2dVQ0FRQ0NBMVdvbGs4bXM1RHpqd2hDQUc0RXhIay9leW9IandGbmdlUXd4ZU1XT1dGRVVDUWFETkRZMmN1clVLWTRmUDE0UTV5OFk5UkNEZzRQY3ZuMmJTNWN1MGRyYXl1RGc0RXBpc0JjaUNZd0FmY0FFTzdjSExNbzZQRGRWMVVrbTV3ckFXMVNNM0c0SUFvaFdzUHV6SGNFdTQrK1JQb2dPUVhxVytkVmJXL0IxbjNOSTZaVE8wRFMwOStyYzd0YTQxYVh6WUFBZWplck14Q0d6ZlhRQUU1Tm5Fa0VROGc1Z1daWTNUUUFXUlRGL1djc3h5TEtNMCtuRTZYUnUrTnJ1NE9BZ2YvbkxYL2p6bi8vTWhRc1g1cTJIMk8xMnlzcktPSERnQU9mT25lUE1tVFBzMmJNSGo4ZkQyTmdZZCsvZTVjNmRPOXk5ZTVldXJpNUdSMGNaR1JsWmNTS2R5ZkxJL1k3bHh0amQzZDM4NlU5L1FsRVVCRUhnMkxGamVEeWVSVzh2aWlLbHBhVWNQSGlBZSszM2FHbHBvYk16VGlxVm9xZW5tOWpzRFBkYTNjaWl3dFRrQkFORGswU1RDOTlYWlJFMFZ3bnNyeEZwcm9LcU1CUUhCRUllZ1NJZmVKeUNVV2lTTS9QcWdKcE5aeEZsc0FleXNjLzE0Q28yTnBsdHFjUU40N1hXTkExRjNkQU80TzIxRzJHSFlBckFtNENBS0l1aWhDQXN2TFpoTlArQ3JtblpLVVl1SURuWHdXdmNTKzdhK1c1ZWZUVW40K3h0aEVVY3Y2S09JdXFrSkVqWlFBMHJ6TWdKdW5ySGVUUTZ4bUJxbk43TU1QM0pNU2FKTWt1U0JBb3Awbm0zcjVLTmVsYlJGd3g2RG9mRG5EaHhnaGRlZUlHREJ3L200NTA5SGc4dWwydmJSWkNhUEh2a0hNQXJRZE0wMHVtdDI3dXhWWEU0SE96YnQ0ODllL2J3K2VlZnJ5aG1aMnhzakk4KytvajYrbnFPSHorK2prZTU5U2dwS2VHTk45Nmd1N3ViLy9xdi8zcnE3K3Z3OEREWHIxOW5hR2hvV3dqQXM3T3pmUHp4eDF5NWNpVXZyRDB0V25jdFdDd1d6cDA3eDkvOTNkL3gybXV2VVZ4Y3ZDNlBzMUk4SGc5bno1N2w2dFdyWEwxNmRaNHJLNUZJME5mWFIzZDNOd2NPSE5pMHppVXd4TitiTjIveWkxLzhnbmZmZlhlZStHdTFXamw0OENESGp4L0hicmR2MmpGdUJPUGo0L3poRDMvZzVzMmJDLzQ4RUFpc0ptcDJXMk94V0RoNjlDaUJRQUNmejhjLy8vTS8wOXZidTltSGhhcEV5YVFuMGJUTW5Pb1dIVTFUa0NRblRuY0ROa2Q1NDZZZTVQWm5BbWpEY01sV1lyaGtsN1V5T0RZMnh1M2J0M0U0SEhpOVh2eCtQNVdWbGV1eVNPcDBPaWt1THFheXNwTEJ3VUhHeDhlLzBMditGT3dZQXZBQkRQRXppQ0gwMWdPbmdDTVlEdWdWVDNvRVFTQVFDRkJmWDgraFE0YzRmdnc0VFUxTkJlbEZUcWZUREE4UDA5Yld4cFVyVjdoKy9UcTl2YjFyRlgvQmNNWjJZYnp2L2NDcXJjUmJuSFhwQUFiSUtCcWFwbTlKRFhKYm9tdEdWeCtDMGZkcjl4cjlmQmFYc1dBcnlrWTNjRG9HV3RwdzcrUVQzYmJBbXpDbjcxZFhJSkdFZ1FsbzY5VzRmTjl3L25ZTTZveE9ReVMreGRhZlRVeE1Ga1dXWld3MjI2WjJBSXVpaUNSSmEzNzh1UUx3Ump1QWg0YUcrUFRUVC9uMDAwOFpIaDdPLzdza1NmajlmcHFhbXZLVmcyVmxaVXhPVHRMZTNrNWJXeHQzN3R6aDFxMWJ0TFcxTFptbVpsSVk1b3JBaVVTQ3RyWTJCRUhBYXJVU2k4Vm9iR3pNenhrWDJreGdzVmdJRlFVSkYvbngrMXhJMmQvZGVEekdvOTRZanhhWVlncUEyMkZjdkE0b0R3clVsZ2pzcnhVNDNDQ3d2MXFnMkE5WTVpU3k2aGlqK3R6ZmRjMjRTRlpEL1BWV0dlNWZWN0dSTEtKdExlZHZEbDFuWGRQem5rRGpzVnh1c29HWUF2Qm1JQWdJb21WUkFSZ2U3eTAxTHNaL0dpcWFvSUtzUDdFdmZyV2ZtK3p0aENlRlh3VU5EVlVHeFM2U3RJak1hQ2xHbEdsR3h5WVpURTNTTXpyT3dOUUVJK29rWTB3elMzSmUxSE1tSC9Xc2Y4SHhhN2ZiS1NrdFpWZERBMDFOVGV6YXRZdW1waWIyN3QxTFpXWGxwdlZCbUppc2x0eWdlS1Vkd09sMEdsM1h0MVFzNjNhZ3BLU0UydHBhUXFIUWlnVGdlRHpPelpzM3VYLy9Qb2NQSDM2bXZtc2tTV0xQbmowME5UWGhkcnVKUkNLTFhsZFZWVktwMUxiNHZlenQ3ZVg5OTkvUE93WlZWU1VhamFLcWhVK1U4WHE5dlBqaWkvemdCei9nUzEvNlVrRVcxd3VGSUFoVVZWVng4T0JCR2hvYWVQRGdRVDVpWHRNMEJnWUc2Tzd1cHJHeGNkUGN0ZEZvbElzWEwvTHpuLytjanovK2VGN01yOHZsNHVXWFgrYlZWMThsSEE1dnl2RnRKTlBUMDl5N2Q0L1oyZGtGZis1MnUvSDcvYzljOG9uRllxR3hzWkh2ZnZlNzJPMTJmdldyWDNIaHdvVk5QU1pWVGFBb00yajZreVkrRFVHMFlyRVZZYlVWVjhxeXk2OG9zZW5OT01ZZFFCU2pCemdFN0FYMllUaG1sMlIyZHBhdXJpN3NkanVoVUlod09JekQ0U0FVQ2hYOElDMFdDNldscFRRMk5qSTJOcGJ2bTEvdXpZRmlqT2NuQWRVWTgvQjY0QkNHT0x5cUQ3ekg0NkcydHBaRGh3N2w2M0xDNGZDYUYyb3ptUXhEUTBPMHRyWnk3ZG8xYnQyNlJWZFhGNGxFWWszM2k3SG9Nd1MwWXdqQWc2eERUKzRXSVlvaGJoZThyRmZUOUxtTlVTYUZScEJBbHNBWk1NUmZpeE5zWG9nTVFtSWNsT1RqNHR5dE1GN09pcitvT2xOUjZCM1Z1ZE90YzcxVDUyYVh6c05obmZFWlNKbCtHeE9UYllNZ0NIa0IyR3ExN2dnSHNNdmx3dTEyWTdWYUMzaUVUeWNhamRMWDEwZG5aK2M4OFJlTURjaWhVSWo2K25wMjc5Nk55K1dpcTZzcjcvanQ2T2hnZUhpWTRlSGhSYXQ3VEFwTFRvaWNLMGhtTXBuOCtrWm5aeWY3OSs5bi8vNzlIRGh3Z0xxNnVnWG56SkdaQ1dZakU2U1RVZFFscXZjRW9Mb1lHc29FZHBVSjFKV1NqM2N1RGdxVStnVUNQb3p0bkdCczdjdUZ0dWFGbTJ4S3F5Z1o0d1YvRFFRYWpOaG5PV2NUM2tLRHR1eEhXZGQxNDZKdDJMSHBHSytjT1NMWllKNmQxZTh0aFNBTGdtV2VrMkFoNW9ReTU0VlVSZExRN1JwWWRIUmhqVE5KSWJ2cFFsQkJVZ0VWWGRUUUpBM05LWkt3NlV3cUtjYVZKRVBKS2JwbmUrbWE2cWN2UHM0MGNXWkpFaVZKakJSSkZETFp1R2ZEOVd2MCsrWnd1cHdVaDRzcExpNm11cnFheHNaR2poNDl5cWxUcDZpb3FGakxzekF4MlhSeTNTd3JHUkRydW82aUtHaWF0cW1Pdk8ySXcrRmcvLzc5SERseWhJR0JnV1V2d0NxS1FuOS9QNDhlUFNJYWpSSUlCTmI1U0xjV2RydWRZREJJSUJCNHFnQU01SGZuYmxYUzZUUVBIejdrOTcvL1BULzV5VTlvYVdsWjE4ZkxDWlQvOEEvL3dJc3Z2cmdsb3BTZlJCUkY5dS9mei9QUFAwOS9mMy8rUGRaMW5kN2VYdHJhMmpoNzl1eW12SytEZzRPY1AzK2VkOTk5bDkvLy92ZnpoRTlSRkttdnIrZUhQL3doenovLy9JWWYyMGFqNnpwVFUxTlBkZEI1UEI2S2lvbzJkSEZrSzdGcjF5Nyt4Ly80SHdRQ0FSUkY0Y2FORy9rTkRSdU5xaVpSbFJpNnVyQStKU0Jqc1FSK1pMR0Yvbi9BMVkwOXVoMkRDa3hoeEFIM0FxTkFBRmd5eTFuVE5PTHhPTjNkM2R5NmRZdWlvaUljRGdjMm0rMnA4WENySWRleDI5emN6UER3TUFNREE0eVBqeTk5UXdNUjhHRUl2M1llQzhEbGMvNitZaVJKb3JpNG1IMzc5bkhpeEFuMjdObERPQnhlODdneWxVb3hNakpDUzBzTEZ5NWM0TnExYTNSM2R4Y2lYU09CRWZuZGhkSDczSi85dDUxS0puc3ArS3FhcnV1a0ZSVWxyU0k3dDlDQzRyWkh6M2J6NVJ5K01qaUNXVGV3MCtqdWt5d1FINGRNek9nRjFuVkRCQlkyd1oyWEUzNEZ5S1NOdnQrdUlaMWJEM1V1MzlkcDdkSHprYzlwYzZuVnhHVGJJY3N5VnFzVmk4V3lxUUp3SVJ6QUZvc0Z0OXVOMSt2ZHNKU2plRHhPUzBzTE4yL2VYREN5T2ZmNmFwckcwTkFRWTJOanRMZTNjK0hDQmRyYjI1bWFtdHFRNHpTWnowSnUxSGc4VG10cks5M2QzWFIwZE5EVDA4UEl5QWhOVFUyVWxKUWd5eEtLb3BKSXhJbkhadW5xYk9mTzdkdU1qSTZRV3FCNnoyNDFuTDVlcDBCRkNCb3JCSm9xQmZaVUNld3VoOHFRZ01NT2lNSmp6K3JjNmZ2Y1E4dzVmd1haRUgrOUZlQ3ZCVSs1TVhiSWp5dTI3bmh0QTQvTTdBRGVKRXdCZUJNUUVCQ0VwMFZBWjYrVm5VUm82R2hvUnBTeXFLTGJOSFJKUnhOeVJtQmh6bVdoajYwK1oyZHFMdXBaTTRSZlZLUG5WekxpbnBNQ0pLMDZXa2hqeWhLbnZYdUVqdUVoZWxPakRDb2pqR2FtbUNaR2pEUkpNcVRJa0ViTkNyOGFhamJvZWE3bjErUHg4T3FycjNMMjdGbWFtcHFvcWFraEdBemk4L2x3dVphMXdkL0VaRXV6MEM2MXBkQTBqVXdtZzZxcXBnQzhDbzRmUDg0YmI3ekJ0V3ZYNk9ucFdmYnRSa2RINmVycW9xK3ZENS9QOTB4RnpEdWR6bnhVamlpS1Q0MkJ6bVF5SzQ0MTN5alM2VFNYTGwzaVY3LzZGWC80d3gvbzdPeGMxOGV6V3ExODZVdGY0aC8vOFI4NWQrNGNicmQ3WFI5dkxlelpzNGZUcDAvejRZY2Z6aFA1ZTNwNnVITGxDbSsvL2ZhNk9PT2VSbWRuSi8veEgvK1JmNitlZEwwV0ZSVng4dVJKbm52dU9ieGU3NFllMjJZUWk4V1czTGdTRG9lcHJxN2U4VkhZVDhQcGRQTE5iMzRUU1pMNDUzLytaeTVmdnJ3dXp2NmwwTFVNbXBaQ1gyalNuajNueXpZL05udEpzeVJaVzFRMXZXeExxTWs4TkdBYzZBRTZBQStHSzNaWkg0TEp5VW5hMnRybWliK05qWTBGZGRIYmJEYkt5OHRwYm02bXI2K1AxdFpXSGo1OHVOeWJpeGlDdG9YSGZjQmk5dStybm8rSFFpRWFHeHM1Y2VJRXg0NGRvNmFtWnMyTHF1bDBtc0hCUWU3ZXZjdG5uMzNHK2ZQbjZlcnFZbUppWWszM2k3SFlNd0xjQSs0QWp6QWNzanNaQmNNQnJMR01YdXNWM2JHaWtVd29KQklaUEo3c1ppRkJlT3hLTlNrQXVSNC95WWlDOWtpRytHdHhndXlBMlVGSVRoc2lNTkxHSjBIbllwOHh4Ti9CQ1ozT0FaMWJYUnJYTytGMnQwN2ZtTTVzMHZ5MU1ESFpqbXlGRG1CQkVCQkZFVm1XVjV4NDl5UVdpd1cvMzQvZjc5K3dPVTUzZHpjZmZQQUJmL25MWDc3Zy9nVmpUVzUyZHBiMjluWUdCd2VKeCtNTURnN1MwOU96YnBWU0c4SGNkMm1uZmYzSFlqSHUzYnZIek13TW5aMmRsSmFXRUFnRWtDU1pUQ1pOSXBFZ25Vb3hPVGxPZjE4djR4TmZIR3FHdkliYmQyKzF3TzRLd1hEN0JpSHNFeWoyQzRROElEZ3dSbTY1eGxvVldHeDVUTmVNRTYzVkFaNEtvL1BYWFdiOGYwSEl2Z2xiOTUzUWRUYlNBWnpCa05MTk9mTUdZd3JBbTRFZ3lJSWc1d1hlQmErQzhEajNIaDAxNXdER0VIOTFLVnY1SzJRN2dKZjhyT2I2ZzdVNWNjL0czeFZCUjVWQmRVakViVENoSitpZkdlWGhiRDhkSXlNOG1oNWxoQ21tbUNWR2loUVpraWlrVVZCUXMvMitXamJ3K1RIQllKRG5uMytlNTU5L251ZWVlNDY5ZS9kbWQrYVl2M1ltTzR0Y0IvQktCR0JkMThsa01paUs4c3k2dk5hQzIrM20rUEhqN04rL243R3hzV1VQMEZWVnBhMnRqWnMzYjFKZlg3K2x4YnhDWTdWYThmbDhlRHllSlFWZ3E5VzZKVGNtOVBmMzgrbW5uL0xiMy82VzgrZlBNekF3c0s2UEZ3d0crZEtYdnNUZi91M2Zibm54RjR5WTZ1Ym1ab0xCSUk4ZVBjci9leXFWb3F1cmk5N2VYdXJyNnpma1BKeE9wN2wxNnhhLy9lMXYrY1V2ZmtGSFI4ZUMxNnVycStQNTU1K250TFIwM1k5cEt4Q05SdW51N241cWpHbzRIS2FtcHVhWmk0Qitra0Fnd05lLy9uVWNEZ2UvL09VditlU1RUeGdkSGQzUVl4QUVDVkZjWk5GTk41SjBMQlkvVm52SnZ3dWk3UStZazltMWtNQndBTi9CRUlCZHdMSytHRFJOWTNoNG1OYldWcnhlTHlVbEpmaDhQa3BLU2dyMk9aSWtDWi9QUjFWVkZSVVZGZmo5ZmlSSldzbkdCQUZEQUM3SUFmbjlmaG9hR2poMDZCQUhEeDZrcnE1dXphN25YT3h6UzBzTGx5OWY1c3FWSzl5OWUzZEZkUnRQSVlraCtsNEQ3bUlJL2x0M05hd3dhQmp4MWdvRmV0OXpHUE1JbFV4R2hkeDRib3VsQzI1L2RHTlZWTTBBZ3RIZjV5bzJ1djFFMlJDR0JRbFNNOFoxTkhWam5NQTU0VGZyL2xXU01EZ09MVDA2MXp0MGJuWHB0UGREMzdoT3pEd2ptWmhzQythT00rZXVLVzBGQjNCT2hGN3Iya0J1TFNJUUNLeTdBMWhWVldLeEdIZnUzT0hUVHovbDl1M2JaQlp3Z1NxS3d2ajRlRDZkS1JhTGJXUVg2cFpEa2dRc0ZnbW5YY1ptazhrb0dqT1JsREhXMkVLazAybDZlbnJvNmVsQmxpVnNOanVTSkpKS1pVaWwwanpPWlRhd1djQnROL3A5d3o2Qm1yREEzbHFCWXcyd3YxYWt2RWpBa2Z1VnpJMmxjdUZQK2hOL3ppT3J4UWlDTVRad0ZJR3Z5aENCYmU2c3NxcVl1N0Flby9OWUFFNXQ4ckU4YzVoSzNLYVFkUUN6Y0FTME1PZHZSamk2bm8xVnp2Nm5nU29LeVBrdnRZWDZzK2Y4ZnlFYlRpK29JR29ncXVoWklWbXppcVNzSXJPQ1NsUk1NS25HNkVtTWNXZW9rL3NUUFV3UUpVS1NXUkpaMTI5TytEWGN2bXBXbEo1TE1CaWtyS3lNa3lkUDh2YmJiL1B5eXk5dldNU0hpY2xta0JPQVYwS3VaM1d6WWkxM0FzWEZ4WncrZlpyT3prN2EyOXVYZmJ2T3prNCsrK3l6YlNIb3JRZExMVmI3L1g2YW1wcTJsQnN6MS9meWh6LzhnWGZmZlpmTGx5OHZPSWtySkQ2Zmo2OTg1U3Y4NHovK0k2ZFBuOTQyR3pYS3k4czVjdVFJWFYxZDgxekE0K1BqZlBiWlo5VFYxZEhRMExCdWo2K3FLa05EUTl5NWM0Zi8rcS8vNG85Ly9DTzl2YjJMWG4vUG5qMGNQMzU4eDd0ZEZVVmhiR3lNOCtmUGMvdjI3VVg3ZjhFUThvdUxpNStwaElMRktDb3E0dTIzMzg0TGVoOS8vREdQSGoxYTk4OS9EbEcwSUlwMkJNSENrL1l1UFR2V2xpMCtiUFlTSk1udXd4QzFURlpIQXNNQjdBQ2NHSjNBUHBZUkJRM0dScGYrL243dTNyMUxhV2twWHE4WFFSQW9MeTh2NktKcE1CZ2tGQW9SQ0FSd3U5MkZFa2RYaE5WcXBiYTJsdVBIajNQaXhBbDI3ZHExNW5OMk9wMW1lSGlZbHBZV3pwOC96NlZMbCtqbzZDams4NXNBSG1BSXdPM0FkS0h1ZUF1akFUR014YTVsL1I0dkgyR1J2NXNVbmpucktwSVZIQUVNUWRobXVJRWpBeEFiQlNXN3NVdklKYk90RXdMNVZUdzFDZjFqUnQvdnhYYU42eDA2RHdaMFJxY2hzVk9idFUxTWRoaUNJT1F2dVQ3TzNMOWJMSlo4dXNsbXpBdHlMdVJDT0lCdE5ocytueSsvZ1c0OWlVUWl0TGUzYytQR0RUbzdPeGVkTnlpS1FqUWF6VmV6N1JSV0l6ZjZQRFlDQVR1aElpYzFWVjdLU3oxTVRpZTRmSDJJenE3SmdoOWpvVkFVRlVWWjNBeGl0OER1Q3RoYkxiSzdIR3FLQlVxRHhxVXlCS1VCd1JpaENUeDIrZWIrWE9xRjFEWGpPckxWcUl2d1ZoZ2J4V3dlRUMyZ1piYUYrQ3NJYk9RR0U1WEhteU5OTmhCVEFONEVCRERjdjluZG9ZdDlIZVNrWFMzcnJsWFFTR3NhcWJST0JyQUkyV3ZwdVd2T0dSQUkydU0vQlJVRUpSdjFyS01JT21sQkp5V0Q0dEdJT3hWR1VyUDBqQS9UTmRIUHcvZ3dmY2t4eHBnaFNvSkVYdmcxb3A1emJsL3RDY2V2S0lvME5UWHg4c3N2OCtLTEwrWUwyVTN4MTJTbnN4b0JXTk0wa3NrazZiUTVPMTh0ZnIrZlU2ZE9jZlhxVmU3ZnY3L3MzWm9URXhOY3YzNmRqbzRPYW10ck4yMDM3VVlUaVVUbzcrOW5kSFQwcVNMd3ZuMzdPSGZ1SE1GZ2NBT1BibkYwWGVmV3JWdjg1Q2MvNFk5Ly9PT0dpRDhPaDROdmZPTWIvTk0vL1JNblQ1N2NOdUl2UUdscEtXKysrU2E5dmIxOCtPR0grWCtmbUpqZ3Q3LzlMUTBORGRUVjFhM2JJc0wxNjlkNTc3MzMrT1NUVDJocmEyTnljdkVKWTJWbEpZY1BINmFwcVdsSGk1MkpSSUtiTjIveSs5Ly9ub3NYTDlMVjFmWFVDR2lQeDdPbE5tQnNCVTZkT29YZjcyZi8vdjM4L09jLzU4S0ZDeHZ5dUlJZ0lZZ3lMUGo3cWFHakd3S3dyUVJKY29VeHVrMU5Wa2N1SWxqRGNBQ1hBbTZnbG1WR1FjZmpjWHA3ZTdsNTh5WXVsd3U3M1k3YjdTNW9iN3ZWYXNYdjkxTlNVa0pKU1lrUk5iZkJZN21xcWlvT0h6N01xVk9uT0hEZ0FPRndlRTMzbDNQK3RyYTJjdkhpUlM1Y3VFQnJhK3RUTjZxc2tERU04YmNWSXdKNkVPUDkzdWtvR0JzYmNqM0FCUnR3R25NUEhWWFQwVFhkbElEWEhSMVVKYnVRSTRMZG54V0FIWVl6V0pRaFBnWktQTHMyb3hkV0NCYm5YRENxQk9PeHJQajdVT2RLaDg2MUI0YjRPellEVzh5c1pXSmlzZ1E1QWZoSk5sc0FodmtPNExXc20xaXRWandlRHg2UFo5M1hYOGJHeHJoMDZSSzNidDJhdHlINlNWUlYzWlNLbWMxQ0VNQnVrN0haWld4V0NZc3NZclBLK0h3MnlrcmRGSWRkbEpXNGFXNHNvcTdHei9CSUZFRVFtWW1rbVpoTW9HMkQxMG9Vd0drRnV3MENicWdyTlZ5K3gzY0xIS3dWcUFvTHVCMENncGc5UXdzOHptOTZxdHQzQVhMcmp4YW4wZmZycXdTSDN4Z242T3EyRUg5emJPQ1NxT0Z6WER4UTIyU2RNQVhnelNEM0xmUFVUNWllN1J2TENjR0dDemlscU1UaUNpbGRNMVpDY2pIUWM3OVhoQ2VpbmtWRHNsVmwwSndDS1VFaUx1bEVyQWtHaytQMFRvd3lsSm1tZjJxTTNwa1JScGhtaGdRSk1pUklrVUtaMC9Hclp4dUo1OFFwMkd3Y09uU0k0OGVQYyt6WU1RNGRPc1Rldlh0eE9BcTgwZG5FWkl1UzI2bTUwZ2pvZERwdE9vRFhnTVZpb2FtcGljYkdSandlejFNSDkzUFJkWjJlbmg3KzhwZS9VRnRiUzJOajR6b2Y2ZWFqcWlwMzd0emg2dFdyakl5TUxQcTdhclZhYVdwcTR1REJnMXVpbzMxNmVwcExseTd4N3J2djhydmYvWTZob2FGMWY4eVNraExlZlBOTi92WnYvNWJubjM5KzI5VVcyTzEyamgwN1JuTnpNeDk5OUZIK3ZWWVVoYmEyTnE1ZXZjclpzMmVwcnE0dTJPN3JWQ3JGalJzMytQenp6N2wyN1JwWHIxNWRzaHN6RUFqd25lOThoMWRlZVdYSGJoUlRGSVg3OSsvejZhZWY4dkhISDNQMTZsVUdCd2NYWFd3UVJaR0tpZ3JLeXNxZW1ZMHB5OFZxdFhMdzRFRkNvUkJlcjVkZ01Namx5NWNaR3h0Yi93Y1hKT1p0c3N4amZMWXNGaDlXZXltU3hiTTJGYzRFakRpd1lhQU53LzByWWJ6UXRTelRRVGs5UFUxSFJ3ZE9wNU5RS0VSSlNRbFdxN1ZnOHhKUkZQSDVmRlJXVmxKZFhjMzA5RFFURXhNYnNvRG9kRHFwcUtqZ3hJa1RuRDU5bWdNSERsQlJVYkdtbU91NXNjOFhMbHpneXBVclBIandvSkRPMzFHTVdPOExRQXN3eE9OZ3ZaMk9oaUgrRm55d3I2Z2E4VVNHV0N4Tk1LTWlDZG0xaFdWVlE1bXNEdjJ4akMvS1lIVUJJb2hXWS9GM3hnV1Jma2hGakRqb25GaXoxdk41THZKWnp2NlpodEVKbmZ0OU9uZDdkRzUzNjdUMDZIUU42VXhFUURHWFZFMU10aDJMQ2NDeUxPYzdnRGZiQWJ6V0h1TGNwcnoxbnZmcHVzN2c0Q0EzYjk3azd0MjcyN3JMdDVCSW9rQkpzWXZxU2grVkZSN0tTOTBFQXc2OFhqdGVyeFcvejQ3SGJjWG50VkZTNXFFbzRLQjZ3a004bGlZV1MzSHg2akRESTh0YmI5c3NYRGFvTFJWb0tCV29MWUhxc0VCVk1aU0hCV3BDQXVWQmtGekMvRzVmaGRWSmtUcUFZSXdIYkY1d2x4Z1hxeXViUUwwY0MvRW1rajAwWFg5ODJjQkhOZ1hnVFdCN3JXcnVHQVJKRUdVRUZsOTQxZEhROVV6Mk0ybDBBR2RRU2FocElyRUVjU0dOUjVCQjFJM2VIeUg3NVNMb2N6cCtWWFJSUTVOMFZJZEl3cVl6clNhWlNLYVpGcEtNYXhQY0grbm0va0FmNDBTWkpVV1VKTE9raUpNaWlVSm1Ucy92M0toblFSQUlCb01VRnhlelo4OGV2dnpsTC9QNjY2OVRXMXU3enErZGljbldZMjVzejNMUk5NMFVnQXRBS0JTaXZyNmVpb29Lb3RIb3NrWDQyZGxaUHZua0V3NGNPRUJEUThPVzdMc3RGSnFtMGRQVHcrOS8vM3V1WHIzNjFFbVF6K2VqdXJxYTh2THlUWDFORkVXaHI2K1A4K2ZQOCs2NzcvTHh4eDl2U014bUtCVGlHOS80QnYvWC8vVi9jZWpRb1hWL3ZQVWlFQWhRWGw1T01CaGtjbkl5LzdsSXA5UGN2SG1UOCtmUDgrMXZmM3ZOSXIrbWFmVDM5M1BqeGczZWUrODlmdjNyWHpNMU5iWGs3U1JKb3FtcGliZmVlb3VEQncrdTZSaTJLckZZak11WEwvUEhQLzZSMy8vKzk3UzF0UzE1RzZmVHlaa3paOWk3ZCs4R0hPSDJwTHk4bkc5Lys5dVVsNWRUV2xyS3A1OStTbTl2NzFNZDFTdEhRTFo0c2RwQ09OejEyQjNsaUtJbE81Ri9qUEc1RWhCbE94WmJHSnU5dEZHUzdXNVZTUmJNTnZtTW9tQjBBU3NZUXFHTTRRaXVYTTZOVTZrVVEwTkRXQ3lXdkV2WFlyRlFVVkZSc0tqNVlEQklRME1EQXdNRFRFNU9NanM3U3p3ZUw4aDlMNFlvaWxSWFYzUDY5R25PblR2SHNXUEhxSzJ0WFpPd3Jhb3FBd01EdExhMjh0bG5uM0grL0htNnVyb1lIeTlZa3ZrWWh1ajdGK0E4aGd2NFdmdDhLRHd1b3l2WXpoNUZ5UW5BR2JTTWltU1Z6U1RvalVMTHJsc0syUmhvVjdFaEFNdDI0OStpQTVDS0dyMS9XamFsTFc4eldnRTU0UmZqcnVJeGlDZDFocWQwSHZURDlTNk4xaDZkbmhHZHdRbVlqb0ZxTHFlYW1HeGJjaEhRYzhtNWI5Y3F2cTRGVVJUWDNBRXNpaUlPaHdPNzNiNnVhd3lxcWpJNU9jbkRody9wNk9oZ2VIajRtZTMwRlFVQnUxM0dicGZ4ZXF5VUZydW9xZmJUdEx1SXhvWWdkVFUrU2t2ZEJQd083SFlaU1JhTmFubEJRTExKSUFvNExIRHFzSi9rZElEWnlVbG1wclpXdllBa0doSFBOaXQ0SFZCZktyQy9WdUJnbmNDZUtvRzZVb0dnVjBDMkdKb3ZBdk83ZlZmN3E1RkwraEJsSSs3WkVUVDZmNjF1SS9wWlRXOFQ5NitPcm9PbTYyamI0bmhOMW9JcEFHOEtvaXdJRmdRaDkvTFAvNkRwZWdaVlRhQnA2WGtSMEdsVTRucUsyZlFzY1NXTklzdm9rbzZncWVSVHRISUNzS2lSRVkybzU2UUZ0Q0tOS1htVzlwNGhIZzZOTWFKTk15S01NWkthWkl3SVVaSWt5SkJDeVRwK00yU3lvcS9oK0gyTUpFbnMzYnVYRjE5NmtSZk92RUJ6Y3pOVlZWVmJKaTdVeEdTanlRM01WeW9BYjBaczRFN0RhclhTME5EQTNyMTc2ZTN0WGZZT1QwVlI4aE9EaVlrSmlvdUwxL2xJTjQvUjBWRSsrdWdqZnZlNzM5SFQwN1BvOVNSSm9xYW1ob2FHQm9xS2lqYnVBQmZnMXExYi9PcFh2K0lQZi9nRG5aMmRHN0p6TnhnTTh0WmJiL0dQLy9pUEhEaHdZTjBmYnoxeE9wM1UxZFd4ZS9kdXJsKy9QaTh5KytiTm0vejV6My9tN05temF4YUFXMXBhK09sUGY4cUhIMzdJdzRjUG1aNmVYdGJ0UXFFUVI0NGNvYTZ1YmsyUHY1WDU2S09QK0pkLytSY3VYNzdNNk9qb3NtNFRDQVE0ZS9Zc2UvYnNXZWVqMjk1NHZWN09uVHRIZVhrNUJ3OGU1SGUvK3gyZmZmWVppVVNpQVBjdTRIVFg0L1Vmd2UzZGc4MVpnY1VXUXBJY2FIb3V4WFUrUmd5MEc2ZXI3bi9Gb3ZjL0JhNFc0RUNlZFdhQkRzQUMxQUROR0pIUXk1cTdKaElKaG9hR3VIZnZIcUZRQ0lmRGdjdmxvclMwdENBSDUvRjRxS3VyWTNSMGxFZVBIdkhvMGFOMUZZRHRkanZsNWVVY1BYcVVGMTk4a2VlZWU0N2EydHBWQzlxcXFoS0x4UmdjSEtTdHJZMXIxNjV4NWNvVjd0NjlXNmpOVmdtTXp0LzdHTTdmejRIYndOYTJqaFFlSFdPU3Z2Q1h4MXJ1V05mSlpEUXlHUlZkemQ2MUtRQnZJTG5YWEFSSkF0Rm41RTRLQWxqc01OTVBpVW5Ra3RuTlEwdWx2eTF3OXlMR042QUNZOU02TFk5MDJoN3BkQXpvOUk5RHo2Z2hCcy9FSUo0cS9ETTBNVEhaT0FSQlFCVEZlV0tsS0lySXNvek5abHZ4V2xNaGo2c1FIY0M1Y2RoNjF5cEZJaEVlUEhqQXZYdjNHQndjZkdiRlg0RHlVamU3R2dMc3FnOVNYZW1qdk14TnFOaEZXYkdMa3BDTGNNaUIwMnNIcDRYSFNVY2FxRmxoVTlXUkhRbHFpek9jMnBWaWZKL0s3Q1MwOWtDMGtQdHVWNGtzUW5VWTZzc0Vhb29GS2tPRzRGdFRESlZoZ2ZJQU9MMENXSGs4R2x0dXQrOVM1RFlGVzZ5RzhPc3FOVnpBZ3BTOTd5MytleWVRUDA1VjFkQlVmWHZvMVNacndoU0FOd0ZCRUdWUmxJMGU0UGsvUVJBZ2s1NGlsUmhDVVpQNStHZERBRlpJQ2trU1lweVVsQ2FORTBVQVdWUVJCQjBFWStlR0t1cG9ka2haWk9LU3pyUWx3V0I4bE02cGZqcEdCdW1QVGpKT2hBa2l4RW1TUWlWSmhoUVowcWpaLy9Sc3orL2pid0haSXJOLzMzNk9Iei9PNmRPbk9YejRNTTNOeldiVXM4a3pqeWlLS3g0UWE1cEdKcE14SGNBRllNK2VQVHovL1BOOC92bm5LeElLcDZlbjZldnJZM1IwbEZBb3RDTTdTSFZkNSs3ZHUzend3UWZjdjMvL3FiOXZYcStYRjE5OGthTkhqMjdhYXpFN084dUZDeGQ0OTkxMytlQ0REK2p1N3Q2UXg2MnZyK2V0dDk3aXJiZmU0dWpSb3h2eW1PdUpJQWlVbFpWUlcxdExhMnZyUEFFNEhvOXo0OFlOYnQyNlJWRlJFUjZQWjhYM1B6RXh3YlZyMTNqdnZmZDQ3NzMzNk8zdFhkSHRTMHRMMmJkdkgyNjNlOFdQdlpYUk5JMjJ0amIrK3RlLzh0NTc3L0hwcDUrdVNKUjB1VncwTlRVUkNvWFc4U2gzQm5hN25mMzc5eE1NQnFtcXFxS3VybzVQUC8yVWUvZnVyZmkrQk5HQ0pEbXgyY3R3ZVJweCsvYmpjdS9HNWloSHNqZ0JZVTZVMXdKb0dxSmd3V292eG1MMVYyQUt3SVZDeDRpRDdzZm9qSzBFQWhpU3lKSkVvMUU2T3p1eDJXejVPR2lmejFlUWVZdkQ0YUN5c3BMcDZXbnUzcjJMMCtsa1ltSml6ZmU3RUpJa1VWOWZ6L0hqeHpsNzlpekhqeDlmay9nTFJqZGVSMGNIZCsvZTVkYXRXN1MxdGRIUjBWRW84WGNHZUFTMEF6ZUFhOW0vUDJ2aUx4akxqRWtNdjBsQmw5WTB6WEFCWnhRTlZUTlg3VFlGM1ZpcElmZjYyenpncnpZRVlGRUdVVEpFNEV6SzZBSkVYNzRUV0RTdWxrbkQ5SlRPOVE2ZEQyOXBmTjVtOVB3bVVrYlVzNnB1K1dWbUV4T1RaYkJRb2x6T2VXdXoyVGJkQWJ4V0FkanRkdU55dWRhOVdtbHNiSXc3ZCs1dzc5NjlEVWtQMndvSUFraVNpTlVxWWJWSTJHMFNwZGtlMzZPSFNqbHlxSlJkOVVGQ1JRNHNOaGxKTXJKSUJWRTBUaUNKN0RyQjNQNWJFU1B0SWhYQnFveFI1NXZnYkhPUzVLeUFwdW5jNm9aVVpzSERXVmVzTXRnczRIRkFaUkhzclJFNFhDK3d0MGFrdGtTZzJDZmd0R2YzWlFrWWdtOXVLcTdQdWF3VlBaY0M0akJTUUZ6RllIRVkvNjV2b3lvT1hVZFJOYlNOSDBlYWVTV2JnQ2tBYndyWlBKL2N5VE8zZ1ZRUUFZMTBhb0pVb2g5Tk03YlZHTkgwS2lreUpNUTBHV2VHakVzanBRakUwd0oyZENSTlF4TkJ0NHFrclFJUjBreGtFa3lxY1VhVWNkcUd1N2czOUlneElzeVNtaFB6bkNhRG11MzRmUnoxUFBmajcvUDVLQzR1cHJtNW1WZGZmWlhYWDMrZHBxYW1IU21XbUppc2hwWEdQOE5qQjNBcVpXN1pYaXZsNWVVY08zYU1rcElTaG9lSGwzMjdUQ1pEZDNjMzdlM3QxTmJXN2pneENvd1kybHUzYm5IdDJyVjVJdUJDVkZSVThPcXJyOUxVMUxSQlJ6ZWZaRExKclZ1MytOZC8vVmMrK09DRFpVVUpGNEs2dWpyZWV1c3QvdWYvL0o4N3FzYWd2THljNXVabVB2endRMlpuNXlkdURnNE84b2MvL0NIZkpibGNkRjJubzZPRHp6Ly9uTi8rOXJmODlhOS9YZkg3SkFnQ2pZMk43TisvdjJCeHJKdEpLcFVpR28weU5qYkdvMGVQK1Bqamovblp6MzVHWDEvZml1L0w2WFRpOS92Ti90OFZVRjVlenB0dnZrbERRd00xTlRXOC8vNzd0TFcxTVRrNXVlejdrQ1E3VGs4amdmQlpBa1hQWTNPVUk1Q040ZFBucm9ZOERRRmQxOUIxYmYyTFlKOHQwc0FJMEEyVUFUYU1idUFsMFhVOTc3NzNlcjJVbHBiaThYaW9xYWxaODNlUHhXS2hxS2lJeXNwS1NrdEw4WHE5YTdxL3hSQUVnYnE2T2s2Y09NRXJyN3pDOGVQSHFhdXJXOVB4VDA5UDA5N2V6c1dMRjdsNjlTcHRiVzBNRFEwVkltbERCNmFBVG96TzN5dkFUZUFoaGlpOEk1SGx4ZWZET21nQ2VrTFhoWlN1NjFvaEY5aFVWU2VSVklnbk1tUXltbEdRblJjWHQ4dks0MDRnZDU3STlnQmFYT0F1QTBTUWJERFRCN0ZSU004YUlyQXVHTUx3MDhqMi9hcHBlRFNxYyt1QnpzZTNOYzYzNmR6djF6ZGwwZDNFeEdUOXlMbC9KVW1hNTFqTnBjeHRoUWhvU1pKV3ZmNHJTUkp1dHh1MzI3M3VEdUR4OFhIYTI5dDUrUERodWxkemJCVWtTYUMweE1XdXVpQU5kUUVxeXQyVWxyZ3BML05RVysyanRzcVByOWhwS0tkZzdDRExhTWFmcWc3S0hNRXlaMUpUMDVDT1FuUUVZc040NUduMlZhVkJGZEUxSFZIVXVkdXJFOW5BbDlqdk1pS2VHOHFob1V5a05neFZwUUkxSWFnSUNmZzlnakZMeUFtL3VXN2Y5Um9TQ2FKUi8rQU1HaEhRc2lOYkViSEZ4MkM1c2FJT3FCcUtvcUdxMmthNTVYUDl2MHIyVDVNTnhCU0FOd1ZCRmdRSmdma25VRUVRMFhVTkpUMU5Lam1LcGhyQ2tJYWVGWURUeElRVUVXdUNXV2VhV1VWREZ5UVNhWkIwSFUwVTBIMGFzN1lrUFdQamRBMk4waGNiWlVBWVpTZzUva1RVYzRZMEdUSlp0NjhSTTYxbi8zdE1kWFUxTDcvOE1xKys5aHA3OSt5aHVycWFjRGk4Z2ErVmljbldaelVkd0psTWhwbVptV2RtWUxyZVZGWldzbnYzYmpvNk9sYjBtdDYvZjU5TGx5NXg2dFNwSFNjQWE1ckd3NGNQdVh2M0x2MzkvVSs5cnMxbW83R3hjVlA3a0x1NnV2ampILy9JWjU5OXRtSGk3NjVkdTNqbm5YZjQwWTkrdEtQRVh6RE8zeWRQbnVTblAvM3BGL29jcDZlbitlQ0REemg0OENDSER4L0dZbG1Xb1k2N2QrL3lpMS84Z3QvODVqYzhmUGh3eFlLQklBanMzcjJiMDZkUGMvRGd3WFZmQk5nSUhqNTh5TWNmZjh6bHk1ZTVmLzgrUFQwOWpJeU1yT3EraW9xS2NEcWRCVDdDblk4b2l1emZ2NTlRS01TQkF3ZjQ0eC8veUovKzlDYzZPenVYZFh0QnNPQjAxZUwxSDhidXFFU1ViR2hhR29IbFRZWUZRVVRUa3FSVG95aVptYWQvMlpxc0ZCWEQvZHNHbEFEbExGTUFCbU9zTlRJeVFsdGJHejZmRDFtV0VVV1Job2FHTlcxa0ZRUUJXWmJ4ZXIzNC9YNThQaDkydTcxZ1hkU3lMRk5jWEV4NWVUbUhEeC9tOU9uVEhEOStuUHI2K2xXTHZ6bEJ2TE96a3l0WHJuRGh3Z1ZhV2xybzYrdEQwOWE4RVg4U0dNVVE2bHN4ZW4vdllJakI2OS9oc0lrNG5VOWRUdEVFZ1lTbWtVcW5WUzJkTHR3Q202cHFoZ0FjVjhnbzJUVTB3UlIvTnc4ZE5BVVFqQzVnVHluSVZxTUxVSkFnTm1LSXdKcnkyRG0wbUJOWUJDUklwdUJldDg0ZnJtbWN2NnZUUGFLVE1ZT2pURXgyTExxdWYwRUF6amx2UlZIY05BRjRyUkhRRm9zRnI5ZUx6K2RiMTdtZnJ1dE1UMC9UMzkvUHlNaklrcHZmZHdxU0pGSmE3T2JFMFhKZWZLR2EvWHRDQkVNdVpGbkVJZ25HUmpWVm4rUDAxWTNraWx4VThkeGhneUFhUDg4a1lIWVlwbm9oTWc1cWlxQkg1MENkaEticldDdzZEcHRHUzQ4aEFxY3poUjk5eU5KangyL1lDN1dsQWtjYkJJN3VFdGhmSzFJV0FMdER3Q0lZanQ4RiszMExQaVNhVy85Z0E0c2JyQjZ3T294TllOdEJBTTZqZzZvYkF2REdPb0JWSUlVaEFwdHNJS1lBdkJrSUFvSWdmU0VDMmhDQUJUTHBjWktKWGpUTitQYlNNUnpBYVZRbWxTajN4d2Z3eXlGRXI0c2lseE9MUlVRQU1wWVVZNmx4ZWthRzZKa2VwVzl5bkdGbGdqRm1tQ1ZKRW9YRUhPRlh5WVk4R3ozRDh6L3d1VjYxbDE5K21SZGVlSUdEQncvdU9ISEV4S1JRNUhadHJnU3pBN2l3K0h3K0RoMDZ4SzFidDVhOTZBOUdQMjVMUzhzWEhKSTdnZW5wYWY3ODV6OXorZkpsVlBYcEcreUtpNHRwYW1yQzUxdjJ1bnJCNmUvdjU5YXRXOHZ1UzEwTGtpU3hiOTgrZnZqREgvTEdHMi9RM055ODdvKzUwZGhzdG53Lzl0RFFFTkZvTlA4elhkZDU5T2dScmEydDlQWDFVVmRYdCtDRWZtWm1ocEdSRVRvN083bC8vejYzYnQzaTBxVkxQSGp3WUZYSFZGcGF5ZzkvK0VOZWYvMTFBb0hBcXAvYlZ1TGV2WHU4Kys2N1hMMTZsVWhrOVFtbkhvK0g4dkx5SGVHSzNneHlzZWRmK3RLWEtDOHZwNnFxaXZmZmY1L3IxNjh2dVZGQlU1UEVaN3VJVE4xQUZDM1lIVldJb3B6ZEVybjRoTmo0ekVpZzYyVFNrOFJudS81dm1kVGt4dVRXUHp1a2dEN0FqZEVCM0l6aEJGNDJpcUxRMjl1TG9paGtNaG1zVml0ZXI1ZVNrcEkxSDV6VmFpVVFDRkJXVmtZb0ZDcklncU1vaXBTVmxYSHc0RUZPbmp6SjhlUEgyYlZyRnhVVkZXdjZmcGlZbUtDbHBZVXJWNjV3OGVKRjd0eTV3OURRVUNIRTMybmdBWEFMUS9SdHczalBSdG5oNGkrQTM3ZjRleUlnYUlKSVdsSDA5R3dzcFN0S21pV0dZOHRHMDNXVWpFb21vNkthSGNCYkF6MTd6aEFrUXdSMmhnRFJXQlNXTERBN0JJbHBRd1FXY2s3Z3hkKzAyVGgwRE9oY2VhRFROYXdYN0hmSHhNUmthNkhyZW42dVB2ZWNMTXR5M3YyN21lbUxzaXhqdFZwWDNVTnN0OXNKQkFJRUFvRjFyUS9VZFoxWUxNYlkyTmlhNW1UYkRVRVFjTGtzbEpZNHFhLzFVN09yQ094MlFBTkZnWXhxQ01ETEdlOEpJdWlLc1dFcE1nQ1Jma2hFUUZSQkZ2QjdCUTdVZzhNbVVPSVgyRjJtMGRhbjB6R29NMXpBL2ZzZUI5U1dDRFNVUVVXUlFGVllvQ3dvVUZjRzlTVUNGV0VCSEJpbjBMbmR2dXNkTEt6cjJjeHRDOWpjWVBjYTBjL0M1aGdvMW9TdVozOUZzaDNBRy9mSVJzaXRHUU85NFpnQzhDWWdDS0lrU0JZUVpMS0JRYm1mb09zcTZkUW9xY1FndW00TUFuUjBGRFRTYUV4bVpta2I2WVdNbFZpcFFwa3RnRTJ4Z2FnVFY2SThITzdsd1VBZjQxblJOeGYzbkNROVIvalZVTE9YdVI5eXE5VkthV2twZFhWMUhEbHloSmRmZnBsejU4N2g5L3MzOVBVeE1kbU9ySFF3ck9zNm1yWmhVUnM3SHFmVHlaNXNTc0ZLQkdCRlVSZ2JHMXRSVCtkMklDZndmZkRCQjdTM3R5OTUvZXJxNmszdGROYzBqZkh4Y2NiR3h0YjlNNUZ6QzM3Lys5L254ei8rY1VGRWdLMUtNQmprMVZkZnBidTdtOXUzYjgvN1dlNTM1UDc5KzlUVzFpSUlBcGxNaG9tSkNjYkd4aGdkSGFXdnI0K3VyaTZ1WDcvT3BVdVgxdVRNRmdTQit2cDYvdVp2L29hOWUvZXU5YWx0R1NLUkNNUER3MnRlYU1pSlNEYWJyVUJIOW14aXM5azRldlFvRlJVVlZGZFg4OHRmL3BLTEZ5OHlPanE2NkVZWVZZMFRtYnBCT2psR0pqMUpJUFFDVG5jZGt1ek9Sa0V2dHVvdW9HbHBVcWxCSXRPM2lFZTdMaWxLYkhyZG50eXppWXJoTG4ySTRTYnRCZW9CSjdEczFkRFoyVms2T2pvUVJaRmdNRWc0SE1adXQrUHhlTmEwcUNwSlVyNkh1cmUzbDVtWm1WVUx3QmFMQmFmVFNXbHBLWHYyN09Ia3laT2NPM2VPZmZ2MnJXbHpscXFxek03T2N2LytmUzVmdnN5RkN4ZTRlL2N1UTBORGhYREhSSUV1ako3Znp6R2N2NCtBbmJlcmJoR0tRNHVuTm9pQ2dDZ0plaXFsNnJxdTY3Rlk1ckZZdTBZTXdVQkhuZGZkWmlyQVd3SmR5VVk5VzhCVkJKTDh1Qk1ZQVpMVFdTZHd2Z2NzKytlY3U4akE5S3pPMEtUTzRJUXAvcHFZN0dSeUFuQnVmU2lITE10cjd0NHRCQmFMQmJ2ZGp0VnFYZFdZeVc2M0V3NkhLUzR1WHRla0kxVlZTU2FUek03T29palBqcmxRQUNSUlJKSkVRRGNFWDd0aXhEeG4xS3piZDRteGg1RHRBOWF5NG05OERHWkhqQjU3UlRIc3VBZ2dRTkFqY0xnZXFrSUNlNm9FTHJWclhHclh1Tk9qTXpJRnFtWmNGbnZZL0NsUE1IcDZKUkhFYkVPbUFQaWQwRkFtY0toQjRFU2pRSE9sU0VWSXdHRURxeFZzWXZaSjU1cjBkRFpPU3N3OUlka0tOai9ZZkNCWmpRUFExak52dXBBSWo4Y2IycFBqeUEwaEp3QS9PeC9TTFlJcEFHOENBcEpkRkswSStmNFhIUVFSVGRkUWxSaVo5QXlxRXM5ZWwydzhzMEFhbFRncHhvbHdkN3FEMGNRNGZzbUxRM2VnQ3hweFpwbE1ScGdpeWl3cFVxUkpvcENhSS93Ky9tOCtzaXh6K3ZScDNuampEUTRmUGt4ZFhSMmxwYVZtRktHSnlUSlpxV2lWRytBWHdIbGhnakd4cUt5c3BLU2tCRUVRVnZSK0pKTkpwcWVuMSsvZ05vR1ptUm51M0xsRFIwZkhrcjlqRm91RnVybzZtcHFhTnUwN1B4YUxNVG82eXRqWTJKSnU1YlV3Vi96OTN2ZSt0NlBGWHdDLzM4K3JyNzdLdFd2WHZpQUFBL1QxOWRIUzBrSnpjelBCWUpEYnQyL3psNy84aGJhMk5rWkhSeGthR21KbVpvYVptWmsxUjV2YWJEWXFLaXAyalBNM1J5QVFvTFMwbEFjUEhxeEpUSEc1WFBtSVdwTzFVMUpTd2h0dnZKSHZCZjdkNzM1SGEydnJVNzlma29rK3hvZmVKNU9hcEtqMEZkeStnOGl5eDRqcmZHSkNuNnR0eWFSR21CcS93T1RvWDc2VlNnNjNyUFBUZXBhWndJZ1hiZ2VxZ0dwZ1JWOG11VTB2VjY1Y3dldjFJb29pQnc4ZUpCZ01ydnFnYkRZYjVlWGw3TjY5bTRHQkFRWUdCdWFsTFN3WGk4VkNXVmtaZFhWMTdOdTNqME9IRHJGdjN6NzI3Tm16NW1TT3NiRXhPam82dUhqeEloY3ZYcVMxdFpYaDRlRkNpTDl4RE9mdkplQUNSdC92STZBd09kamJoSkxpeFJPeVJGRkFsa1FwbHNpSWlhUWlqRThVcnZaRjAzVFNhWlZVV2tWVnpibkVsaUx2QkJaQnRJSTlnTkVSTElFZ0cwNmh4SVRSc1loZ0NNVE1FWUYxVURJNmtZVE9UQndTWmxpVWljbU9aNjRJbkVNVXhUWDM3eGFDbkFDOFdnZXd3K0VnSEE1VFVsS0N5K1ZhaHlNMHlHUXlKQktKZ3RWeGJCY0VBU3l5aU5WaXBJeXFpb2FVVmtIUmpNdHlFSTFFSTlLekVCMkNtVjZJVDRDV0d5c0tvR1dGUXhtc2JpaHpnczhwNEhXS1ZCZkRrUVlZbU5DWmlNSlVWQ2VhZ0xSaUNNSGluRjhiUVFDTENCWUx1QjBDSVMrRWZRTDI3QjVvbHhYS0FsQlhKckM3UXFDeVNFQndreE5ISGp0K04yTmpsSzRCa25GdXQza01CN0Jrelo3M3piSFlNc2gxQUdjd0JlQU54MXhsMmd4eUVkRHpOcTRMb0N0a2xBaUtNbi9UdFBFSjBSRlFTS0VEU1RKYWhzbEVCRHMyckZqUWdSUXBsR3kwY3dxVk5BcHBWQlFVTkhTMEJUcCtaVm1tc2JHUnMyZlA4dVV2ZjVrVEowNVFXVm01L3ErQmlja09ZNlVkd0xxdWs4bGtucW5kaWV1SkpFbjV2anlQeDdNaU4xNG1rMkZ5Y3BKME9yMGpPa2tCT2pzNytmenp6NW1ZbUZqeXVrNm5rNXFhR3VycTZqWk5mSXBHb3d3TkRYMmhxN2FRMkd3MkRoOCt6STkrOUNPKzhwV3ZVRk5UczI2UHRWV1FKSW02dWpyMjd0MUxjWEh4RitLMSsvdjcrZTF2ZjB0M2R6Y3VsNHZ1N203dTNMbkR3TUJBd1YzeFRxZVRRQ0N3NDFJUGZENGZ4Y1hGMk8zMk5Ra3F1Y1dWemVyZzNvbDRQQjVPbno1Tk1CZ2tHQXp5Zi83UC8rSE9uVHRQUGUrbVUrTk1UM3dPcUFpQ0ZiZDNQNUpzQTExRDEzTVRld0ZCa0ZHVUdXTFIrMHhQWFBxSFdPVCtIelV0L1d5dE9HMHNhV0FJdzJHYVUyeHRHRTdnWlpOSUpHaHZiODlIS3JyZGJ2eCsvNm9YVm0wMkc2V2xwVFEyTnRMZjM4K0RCdzhZSEJ4YzhmMkVRaUgyN3QzTGlSTW5PSDc4T1B2MjdTTWNEdVB4ZUZaMVhEbW1wNmRwYjIvbndvVUxYTHAwaVphV2xrSTVmeldnQjdnQ25NZUlmKzdsR1JOL0FjSlBjUUJMa2lCYVpFbU96S2JraVltNElJb3JYemhmREZYVlNhWVVFZ21GVENiNzNiU0pEakdUQmRCVlk3RllGQTJYa0NBYXJ1Q2NDU0E1Q1VvNkd5a0plVmVPRHFyNmVPRmNNdDlXRTVNZHowTHpvNXo0dTlrQ3NDUkorWEhUYWdYZzR1SmlTa3BLMWpWdExKUEprTWxrMW5VeitWWkVFQVVzRmhHN1hjWWlaKzJ4dXI1Q002cWhSNUNjaHVsZUkvbzVFemMyTEluWm44TmorVTR6L3NucGhMMDFBblZsRXFmMzZveE9RLys0VHYrNHpzU01Uanh0dUlGenc1K2M2OWNtRzRKdjBDdFFWMnhFTzd0Y3h2MUxPbGhrQVpzRjdGWmozOVM4YnQ5Tk5kcG1OM2hKTWxoZHhrV3l6UG1aeVRMUU1INkx6SVh3RGNZVWdEY0JYZGV6aTBpUHZ5Q01pTGswU2lhQ3BqNWVkTlh6ZitwWkdkY1FjZzJSVnlOQkJxTUJXTWczK2lwWnQyOHU2bmtoNGRmcGRGSlhWMGQ5ZlQxbnpwemhtOS84SmsxTlRSdng5RTFNZGh3ckZYL0JpTHhOcFZLbUFGeEFpb3FLS0NrcHdldjFya2dBanNmamRIWjJNanc4VEhWMTlUb2U0Y2FnNnpwZFhWMjB0cll1MlgwcFNSSU5EUTAwTlRWUlZGUzBRVWM0SDEzWG1aNmVablIwZEZYT3FlVWd5M0plL1AzKzk3Ky9hYzkxTTdCYXJWUlhWOVBRME1EazVPUzg3NXpwNldrKy8veHpQdi84ODNVL0RydmRqc3ZsMm5FQ3A5MXV4K2wwcnZsNW1RN2c5YU81dVJtMzI0MGdDTHozM251MHRMUXdNVEd4NkdhRVRIcUs2WW5MQ0tLeG85dnRhMGFTWE9SWDVzSDR1NjZoYVdsVVpYWmNWVlBQblBDMUNVeGg5TXZhQVJlR0E3aWNGYzVuSnljbmFXdHJ3K3YxVWw1ZWp0L3ZwN2k0R0svWHUrSURFa1VSdjk5UGJXMHQ5ZlgxbEpXVjBkblp1ZVM1TjRja1NYZzhIdXJyNnpsMjdCaG56cHhoMzc1OWE5Nk1xK3M2bzZPamRIWjI1anQvVzF0YkN5SCs2c0E0aGhoL0ZjUDVleHREL04xWlhSckxwQ2k0K0dLMkpJbFlMWklvV3dUUjZiUWdGbENnVlZTTldEekRiQ3hEMmhTQXR5WTVKN0F1R0JIUU5pL0dTcnBnTEtwSHJCQWJCU1g3MFpFczVFUmdVUVNMWkZ4MjJMREp4TVJrbWN3VmZ6Y3pBbG9RQkN3V3k2cWpxTzEyZTE0QVhzL045c1k2dS83TUpld0pnQ1NMV0dRUlNSWlhOaFRJWFZsVElST0QrS1J4WGtwT2c1WTJOaTBKVDh5WEh1K0hCVEdyZzNyQkZ4U29Da0ZOTVl6TkNNekVkRktLc1E4cWYweUNjUmEwU0FKV0MzaGRVT29YOEFReE9uM25Dc3c1aVREbit0MEs2Qml2aHlpQjdBU0x5M2lOWU9tWTdTM0tKaDcyNXUxcWVVWXhWNWsyQVFGZFFkZm55NytDZ0txcXFFb1VWZnZpR3BLR2pvQ2UvMThWRVFFMUsvMW03eFd5QXJHV2RmeHF1ZjBwOHdnR2c1dytmWm8zMzN5VDQ4ZVBVMUZSUVhGeDhibzlYeE9UbmM1cUJzSm1CSFRoY2J2ZEJJUEJGUy9pUmlJUnJsKy96blBQUGJjakJPQmtNc25ZMkJqajQrTkw3b0QxKy8yODhNSUxIRHg0Y05PRXVYUTZ6ZURnNExMY3lxdEJraVFPSFRyRTk3NzNQYjc5N1c4L1UrSXZHQUpGWldVbHUzYnRvclcxZGQxRTlxV3dXQ3pZYkxZZEp3QjdQQjZDd1NBV2kyWHBLeitGY0RoTVZWVVZkcnU5UUVkbU1wZkt5a3IrOW0vL2x2cjZlbjc1eTEveS92dnZNems1dWVqMU0rbEpKa2MvUWRkVkJFSEE3ZDJMSkR2UnRBeWdvK2tLc3V6QjdkM0xqUFBHVWVDOURYc3l6eTY1dmxrTjhHTTRnV1dnQkZqUkY4djQrRGozN3QwakhBNWp0Vm81ZlBnd2pZMk5xK3JndHRscytmam1YYnQyOGVqUkl4NDlla1E4L3ZTNFgwRVE4UHY5MU5YVmNmVG9VVTZlUE1taFE0Y0loOE1yUG9Zbm1aaVlvS1dsSlMvKzNybHpwMUN4enprUi9ocUcrL2NXMEk4UkIvMU00bll0dnBndEc1R01HVVZSRlp0VjBndTVnSytxR29ta1FqeWVKcFBKanZWeUN3UGJjdzF5NTVMYitDK0lSbTZtcDl3UWV5V0w4ZSt6bzZBbWpiOXJnQ1Jnc1FxNDdZYjdxWURHY1JNVGsyMkVKRWtGNndCV0ZJVmtNb21tYVZpdFZtdzIyNHJ1YzYwTzRHQXd1S2JFbGVVZ3l6SVdpMlhOYzdMVmtKdmZib2I3MkJEb1JXdzJDWXNsS3dEcnNLekJnQ0FhQ21BbURyRnM3MjhxTWlmNkdlWVYxTThsSnpia1JGcEFzQmh4em40WEtKckFRa3VkdWE1ZlVUVDZmMlU1ZS92RUUvZXJzY2x1MzBYUWRXTVRsMnczTHFKc0NPaGI3a0NYUVhiVGhMNWl4L2lhRU9kY1REWVFVd0RlQkVUWkdaUmtGNkk0TnlwQVJOY1YxRXdVVFZsNEE3V2UvVjhGNW9pL2p5VmdQUzhCQzFtZjhIeDhQaCtIRGgzaWhSZGU0T3pac3h3N2Rxd2dpd3dtSnM4NnE0MDB6WjlzVFFxQ0tJcVVsNWRUVzF2THc0Y1BsOTMva2tnazZPdnIrMEk4N25ZbEVva3dPanI2VkhFalJ6QVk1Tnk1YzlUWDEyL0FrUzFNTEJiajNyMTc5UFgxRmZ5K0xSWUxSNDRjNGNjLy9qRmYrY3BYS0M4dkwvaGpiQWQyN2RyRjRjT0grZUNERHpaTkFNNHRObXhtaE5sNkVBcUZxS3lzWExOd0d3cUZxS3FxMnBSRmkyZUZVQ2pFYTYrOVJpYVRvYTJ0YmNudlNDVXp3OHpFSlN5V0FEWkhPWkxGaTdIS29ZT3VJa29PN0k0cW5PNzZmVlpib0NLZG1ocllrQ2Z5N0tKZ0NKQmd1RTRER0RIUU5tQkZPM3R5RHRuYnQyOWpzOWx3T3AzNUZKR1ZibElSQkFHWHkwVkZSUVg3OXUxamZId2NUZFBvN2UxOWFwUysxV3Fsdkx5Y1E0Y09jZno0Y2ZiczJVTnBhZW1LSHZ0SlZGVmxkbmFXKy9mdmMvbnlaUzVjdU1EZHUzY0xGZnNjQlRveHhOOVBnRlpna01mQmZNOGtrclQ0T1UyU1JFMld4WVFraVFsUkVBcTY0elBYQVp4T3E2aXFPWmZZMHVoenR1U0xJdGpjMlQ1Z0lTc09DNGJqU3MzT1d5UVp3U3JpY2VnNHJLYXgyOFRrV2FWUUFuQThIbWRvYUlqaDRXR1N5U1J1dDV2UzBsS0tpb3B3dXhmdnNaK0x6V1piVXdld3grTloxL2huTU9iOVRxY1R0OXVOS0lvYlpyU3dXQ3o0ZkQ1VVZTVWFqUzZZOENlS1lsNUFWMVcxb0NtQW9pamdkRmp3ZUt3NEhUS0NLTENnRTJ3aEJOR0lmazVGSVRJQTBVSEl6R0trVVN6anZjNjl4Q3FQTjZGSlJyK3Y1YkZVOFVYME9YL21ITDViZmlpalAzWUFDNkt4aVV1MkdtSXcyMVFBM2p6TWtjMG1ZQXJBRzRnb1dtU2JvL3lJTDNUcW0zWlhEYUxvbU4vNW9pc29TZ3h0QVFkd2pwd0lyTFBRSjBaNzRub0dUcWVUeXNwS25udnVPYjcydGEveDRvc3ZQck9MNENZbTY4Vm14dktZUEdiWHJsMDg5OXh6WEx0MmJka0NzS1pwSkJJSlVxblVPaC9keGhDSlJCZ2JHMk5tWnVhcDE3UGI3VFEyTnJKMzc5NDE5d3l1aFVna3dzMmJOd3N1QU9kaW4zL3dneC93emp2dlBIUE8zN21VbHBaeStQQmh5c3JLR0IwZDNaU05KN0lzWTdWYWQ5eDNaVEFZcExLeWNzM1J6UjZQaDVLU2toMG5rRzgxWEM0WFI0OGU1ZURCZzNSMmRpNVpGNUJPalJPZHVvSEh2eCtMclFoUnNCcWpjRjFGMTFVUUJCeXUycmZkM24wZmlaTDFKNXBxOWdCdkFGTkFPMkROWGp3WXdYRXI2Z09PUnFOMGQzZGp0Vm9wS1NtaHJLd01xOVZLSUJCWVZWSkJTVWtKUjQ0Y1FWWFYvUGRjWDEvZm9rN2dZREJJVTFNVHp6MzNIRWVPSENuSTNHeHNiSXlPamc0dVhyeVlqMzB1a1BNM0JqekFjUDFld3VoaUhzRHM3OEpxV2Z3N1c1YkZ0TlVpVGxsa2NVb1V4VFJHZEhsQjBEVlFGSTFNSnBzbXRQRGlnTWxXUXMrdWRBdWk0UnB5aGJPRmlMTHgzc1ZHSVpNMEZwZGxEYnNOckxKZ0NzQW1KczhnT2NFd0Z3TzkyZ1NsMmRsWk9qczd1WHYzTGc4ZlBpUWVqeE1LaGRpM2J4Lzc5dTNENVhJdGEyNW10VnBYSlFBN0hBNjhYaTlPcDNQZDU0QVdpNFhpNG1JYUdocm82K3RqZUhoNDNSNHJWd0ZudDl2blZaQWxFb2w1NHE0Z0NBUUNBUUtCQUlJZ01ETXpReVFTUVZYVmdzM0hSVUhBNWJUZzk5bHhPYTNHUmlOdENVZW5rQldKTlJYU01ZaVBHUUp3YmpPU3VJcmZ0N21QbDkzYnRLenJMMWVzM2xTeVdvc29ndFVKTmc5WTdJYjRhNTZqVGJZSnBnQzhRWWlpTER2ZHUxNHBLbm4xVC83UUdXejJzcXdEV0RjMFlGRkExelUwTFpXTmwxc2FQZisvVDM1YlB2Ny9IbytIbDE5K21hOSs5YXVjT25XS2hvYUdUVjNvTnpIWmllUjZXVlk2cURYZHY0V25wcWFHNTU1N2pwLzk3R2ZMZHZUcXVrNHltU1FXaTVGS3BWWVZBYmxWVUJTRjhmRnhKaVltbHR4WldsOWZ6d3N2dkVCSlNja0dIZDNDek03TzB0N2V6dlQwZE1IdWM2NzQrOVpiYnozVDRtK091cm82amg4L3pzREFBR05qWTV0OU9Ec0dpOFZDT0J4ZXN3UFk2L1d1cW9QVVpPWDRmRDdxNitzSmg4UEw2b3RQeEh1Wm5yaU14UmJDNVdsR0VHVDByQUNzNitCeU4rSXJPdlcvRTdIZUd4aTlxQ2JyenhER2hNZUJFUVh0QkdvdytvR1hSYTUvdnJ1N201YVdGb3FMaS9NT0Y1L1B0K0lEOG5xOU5EYzNJMGtTbXFhaDZ6cDJ1NTJSa1JGbVoyZm51WUdMaW9yWXMyY1BSNDRjNGZEaHd6UTBOT0IwcmtpLy9nTFQwOU8wdDdkejRjSUZMbDI2UkV0TFM2R2N2enJ3Q0VQOC9SeTRBd3hqaXIvQTB6dUFaVmxVN0RaNVROT1pjam90YVZFVUNpYlRhcHFlRjRCVnpaeFBiQS8wT1dWN0lsaWM0Q3JPTHVka1Y4dG5SMEZMZ0E2U0lHSHVDVE14ZVRZUlJUSHZBSlpsZVZVYlJNZkd4cmgvL3o3WHIxK250YldWb2FFaFJGR2tyS3dNcjllN291cXIxZlFRaTZLSXorY2pFQWhzU01XTktJclUxTlJ3K3ZUcGZCMVdvWnkyc2l6amNybHd1OTE0dlY2Q3dTREZ4Y1Y1QVgxeWNwS3VycTc4K3A0c3k5anRkb0xCSUFjUEhxUyt2cDdKeVVtdVhyMWEwRFVQTVBZVTJXd3lUcWNGcXkyWExySEV1RUNVamVzb2NVUDBqUTVBZk9KeEovMXFoeXJiUXN4ZEFia0VEMTNOdnRCdWNKZUR0eEtzV1YxRjM5NlZmcHV3eVd4dXlMZkpCbUlLd0J1RXhlcXY4WWRPL3lsUS9DSU9aeTBDQXBxVzV2RzM0OXpTbnNKOFl4NCtmSmlYWG5xSkwzLzV5eHc5ZXRUcytUVXhXU2NFUVZoaVVKNDdxejcrYkpzZHdPdUQxV3FsdXJxYTB0SlNIang0c0d5UlBScU5Nams1U1RRYTNkWUNjQ0tSNE1HREI4dHkwOWJVMUhEbzBLRTFMenF2bFdReXljek1UTUUrQzFhcmxTTkhqdkRmL3R0LzQ4dGYvaklWRlJVRnVkL3RUbkZ4TWErLy9qb1BIanpZRkFGWVZWVXltY3lPM1BoU1hGeE1jM016QXdNRHl4SVU1Mkt4V0tpcnE2TzJ0dFowLzI0UXFWU0tpWWtKWm1kbmwzVjlWWWt4TTNFWml6V0lMSHV4T2NvUkJBazlPK0czMk1ONC9BZUpSZHErYkxINkJ6UHBhVE1LZXYxSll6aFFXekdpb08wWTg5cGFWdEFIckdrYVUxTlRQSGp3QUovUGg5dnRKaGdNcmtvQWxpUUpuODlIUTBNRG1Vd0dpOFZDWldVbFkyTmorUTFtT2Z4K1A3dDM3K2JZc1dQVTFkV3Q2VHljaTdQdTdPek1kLzdtRm5vTElQNU9ZNGp0VjRHTEdOSGJBOERPaUV3cEFEYmI0c3NwRm91bzJPM1NoTTBtRGNxeXVIZ2UrQ3JRTkoxVVNpR1pVbENVWFBtZWFVUFpGdWc2Q0JvZ2dqVFhDWndkQTZTR2dXeVl4TTRiTXBtWW1DeURuQVBZWXJFZ1NkS0s1d2dURXhQY3ZIbVR6ejc3ak92WHI5UGIyNHVpS1BoOFBtdzJHOVBUMHl0S1AxTlZkY1d1Vlp2TlJtbHBLU1VsSlJ1MjNsQlRVOE9MTDc3SXhNUUVqeDQ5b3JPemMwMzNaN1ZhOGZ2OWhNTmh3dUV3eGNYRmxKV1ZVVmRYUjFOVEUwNm5rNGNQSC9MSko1L1EwZEdSN3dDV1pabEFJRUJqWXlNdnZmUVNodzRkNHQ2OWU5eS9mNytnN2wvSWRnRExJamFyREJZcEs2MDlUVmZJYWcrNkNvbHBtT2t6Qk9CTXpCQTVUZVlqWURoOUxTNXdsMEZ3Ti9pcXdPWTF6dWY2Tm81L3pwcVloRnd4ODhid1JITzB5VVpoQ3NBYmdHejFoQUtoTTkvMWgwNWpkMVNpYTBxK3J6ZUhJQmg5QUpvU1IxZlhOai9NUlhwODg1dmY1TTAzMzl6VWJrY1RFNU9GVVZVMUh3R2phWnE1OEY5QXZGNHYrL2Z2cDYydGJkbEMxOHpNREdOalkwUWlFVUtoMERvZjRmb3hQVDNONWN1WDZlbnBlZXIxckZZcmxaV1ZWRmRYWTdWYU4rYmdGaUVXaXhYc3ZrUlI1T0RCZy96Z0J6L2c3YmZmTnAyL2MzQzVYSnc2ZFlyUFB2dU1peGN2RmtJWVdCR3pzN05FSXBFTmY5eU5JQndPODZVdmZZbEhqeDV4NDhhTkZkM1c3WGJ6eWl1dmNPalFvWFU2T3BPNVpESVpidCsremRXclZ4a1pHVm5XYlhRMGtva0Jwc2N2WUxFR0NSYS9pTVVhQnQyb1BoVUVFYnVqSEgvb3pQOHJuWnA0QlB6SE9qNEZrOGVvR001VUdXUFp3Z2E0Z1JYRldxUlNLUjQ5ZW9RZ0NIaTlYaW9xS2lncUtscTFJejhRQ05EVTFFUWdFT0RRb1VQRVlqRXltY3c4RjRyRDRTQVlERkpXVmtZd0dGelY0K1NZbUppZ3BhVWxMLzdldVhPblVMSFBFZUErY0JNajl2azYwSXNSQjIyU3BiZC84Ym9OV1JheDJhVFJpY2xFeC9STU1xcXFoVnZyVWxXZFpFb2xtVlJRbEcyNjhQak1NdGNKTElEc01KekFBS29DTVJXME1YUXRoYjVVaktlSmljbU9aSzREZUNVQ2NDYVRZV0ppZ3RiV1ZqNzg4RU0rLy94ekhqNThTQ1FTd1dLeGtNbGs4UHY5SkJLSnZGaTVITkxwOUlyZHRBNkhnOUxTVWtwTFM5ZTkvM2Z1WSs3ZXZadXpaODh5TkRTRTArbWtyNitQcWFrcHdIaGRjejNCVHFjVHE5V2FGOXB0TmhzMm13MjczWTdWYXNWcXRlSjBPdkg3L1FRQ0FZTEJJRVZGUllURFlTb3JLNm1ycTBPU0pGUlZ4V2F6b2FwcWZrTzdKRW00M1c1S1NrcW9ycTZtb3FLQ3djRkJZODIvd0FZUUhaQXRJZzZIREpJRXF2b1U3VmNBWGNoR1A4OGEwYyt6UTVDWUFqVmpDc0E1Y3BVTm1nYVNiTGg5UFdYZ3J6WEVYMGZBY0ZGcjIxajhoV3pWODRaWFRaZ080RTNDRklEWEdWR3kyZ1Boc3o4S2wzMzkvKzF5NzBJVVpEVDl5WVp6QVIyVlRIcUtSTHlQVEhwcTFZL1gzTnpNMTc3Mk5WNS8vWFdPSERsaXVuNU5URFlBVGRPVzJNbjN4WDlYVlpXQmdRSDYrL3VKUnFPcmNwdVlMSXpmNytmNTU1L245dTNieXhhQTQvRTQwOVBUUktOUmRGM2Z0ajJsZzRPRDNMaHhZOG5uSFFnRXFLMnRwYnk4ZkZNM0grUTJRaFFpbmtrVVJmYnYzODkzdi90ZHZ2M3RiNXZpN3dMa2VwSEt5OHQ1OU9qUmhqNzIxTlFVUTBORE82WnJleTUrdjUvWFhudU5xMWV2cmxnQTl2djluRGx6aHVibTVuVTZPcE81WEwxNmxWLys4cGUwdDdlditMYXgyUTRzazVkd2VadXdXQjl2Rk5LMURMTHN4UnM4UmpJeDlIVzdzK0oyTWo1d3A1REhiYklvTWFBVG93dTRDQ2pHaUlOMnNJSjViaVFTeVVkQjE5WFZFUTZIYVd4c1hIVWlTREFZSkJBSTVNZUZDNDBQVnhPbk9CZEZVWWpGWXR5L2Y1L0xseTl6NGNJRjd0NjlXd2pucndyTVlIVCtYc1p3L3JZQVBjRENoY2JQTURmdkxMNlJSQlFGWkZtY2pNWFNiWU5EMFdsVjFRc1dBYTFxR3FtVVNtS2VBN2dROTJ5eVllaDYxbGtrZ213RFo4aHdFdG1BQkNDTmdyN3p4a3dtSmlaTGswdVl5L1gvTG5lOE1EMDl6YzJiTi9uTFgvN0NSeDk5eElNSEQwZ2tFbm5EZ2E3cmhNTmhVcW5VaW9SSVJWRlc3RngxdVZ5VWxaVlJWbGFHeStWYTl1M1dpc1BoNE5DaFF5aUtRbkZ4TVpjdVhhS3pzNU5VS29YSDQ4azdlVU9oRUM2WEM0ZkRrZThxemwwOEhnOHVsd3VuMDRuRDRjZ0x3bGFyRlp2Tmx2ODNNTllDRjNwOXJGWXJkcnVkZERyTjhQQXd3OFBEeE9PRkgwWkpvb0RkSnVOMFdFQ1dqRWppQmQ4bndYQ3k2cHJSK3hzZGhzaWdJZjVta29CdUpvbmt5YjRXa2dXc1h2Q1dRM0FYZUNzTTU2OGdQbzZIM25ia2hxSUNpTVpZVlJDRmpSeENhcGcxTXB1Q0tRQ3ZJNkpra1ozdXhsZjhSYWYvUHg3ZmZpVFpoYTdORjMrRmJQWitQTnJKMU5oZmlVWGFVSlNWbnhUY2JqZkhUNXpnamE5L25kZGZmNTA5ZS9ZZ3krYmJhMkt5RWVRR2ZTc1pFT3U2enZqNE9FTkRRMFFpRVZNQUxpQk9wNU5kdTNaUldWbUpJQWpMZWw5MFhTY2FqUktKUkZBVUJZdkZzZ0ZIV2xpbXBxWm9hMnRqY0hCd3lSMjl1U2lqemU0Y1ZWV1ZaREs1NXAyd3NpeHo0TUFCZnZ6akgvTzFyMzJOeXNyS0FoM2h6c0pxdFZKU1VrSkZSUVVEQXdNRjYwVmFEb2xFZ29HQkFaTEo1SVk5NWtZaGlpTDE5ZlhVMTlmamNEam1kWDB1aGNQaG9MNitma01YUnA1Rm90RW81OCtmNStjLy96a2ZmdmhoM2dtd0VuUXRReUxXUXpJK2dNTlpoeWpaalBJV1hVVVFMRmlzUVR5K2ZlL0VaKzlmbFdWbnI2TEVwd3YrUkV3V0lnNDh4SENxaGpERTRBYU1idUJsRTQxRzZlenM1UHIxNi9qOWZweE9KdzBORGFzK3FIeWsyam94TmpaR1oyY25GeTllek1jK0Y4ajVPNDRoK0Y3Slh0cUFRVXp4ZDBHR1J4YVBraGNGQVZFU2xHUktIWTdGTXdWOS9YUWRGRVVsazFGUnpUcVpiY29jSjdBZ2dHdzNuTUFXSFN3S09CU1FKekVTNzdmaklyT0ppY2xxRVFRaEwvNnVSQUFlR1JuaDh1WEwvUFd2ZitYKy9mdnpCRWROMDBna0VpUVNDVktwMUlvY3dLdUpMWFk2blhteGRhTXJwMEtoRU1lUEg4ZmxjbEZjWE15alI0OUlwVkw1cW85UUtFUWdFTURwZE9aZHZ4NlBCN2ZiamR2dHh1VnlMV3NUWUNxVkloNlBrMGdrNW8yL1JGSE11NHRuWm1aSUpwUDA5dlorSWZrc04xYlVkWDNWc2RCV3E0ek5LbUd4U0VzTHVJSUlhSkNhZ1VnL1JBY05KN0J4TUt0Ni9CMkZyajRXZGlVNzJQenpuYjg1OFZkVE1IZmRtV3czVElWd0haRXRnZnBBMGVuZmUzMzdFVVU3dXE3bCs4TEFpSDBHZ1hScWpLbXhUeGtiL29Ca3ZJK1ZEUEFsU2FLMHRKVG5UNS9tcmJmZTR1V1hYakpkdnlZbUcweXV5M2VsZzdaVUtzWFUxQlNSU0dSYnUwNjNHcElrRVFxRktDNHV4dUZ3TEh1blpUS1pKQnFOYmxzQnVMdTdtK3ZYcnk4WnFleHdPR2hxYXFLMnRoWkpXblpWNHJxUVRDYVpuWjFkMFFSMElacWJtL25lOTc3SDk3Ly9mZk1jK0JRRVFhQzB0SlNhbWhwYVdscUlScU1iK3ZpRmNudHZSWExqc1lxS0NycTZ1cFo5UHJEWmJMamQ3blUrdW1lYlpETEpwNTkreXYvKzMvK2JUejc1Wk5uZHZ3dWhxVW1VekRTcUdrT1ViT1IyVU91NnNRbk00YXpHNnp2MHYySXpiWC9HNkU4MTJSaHljY1VlRFBldmh4VUt3QUNqbzZQY3ZuMGJwOU9aZDRHRXcrRUNIK3JhbVo2ZTVzR0RCMXk0Y0lHTEZ5L1MwdEpTcU03ZkdhQWQrQ3Z3ZWZidms1aWR2NHZ5Vk8xVkFBUWRYU2NwaW9KaXNZaDZLcjI4alluTElhTm9aRExhbkUxMDVqeGlXNUlYZ1VXd09NRVNCcXNDWGdYc0dnampHTVo4RXhPVFo0V2NBSnlMZ0Y0TzZYU2EvdjUrYnQ2OFNWdGIyNkpySUxtMXE1VnN3RjdOT3BYVDZhU2twSVJ3T0x4aEVkQnpLU29xNHZEaHcxUlhWeE9MeGRBMERWbVc4eTdlbkVDYmk5aTJXQ3pJc3J5aWREUmQxOGxrTWlTVFNkTHBkUDc4TGdoQy9qRmlzUmlqbzZNTURBek1lMDl5MGRQQUY2cENWb0xIWmNGdXN6eldieGMwLzJaL3FHdWdKQ0F4WWZUK3hrWkJ5eGpPWUhNTVlTQ0lodlBYVVFUZVNnalVnYnNVck81c2hIYnVCZDZ1RzdQbXZNODZhOXA4c0lZREVMTVhjd2ZqQm1JS3dPdUVKTnZkdnNDSmw3M0JZOWlkVlFEbzJ0eUJ1NEFnU21UU2s4eE1YbUZxL0hNU3NVZXM1RXRFbG1VT0hUckUxNy8rZGI3NjFhK3lmLzkrY3hIUnhHUVR5TzNjVzgzQWVHWm1odEhSVVhidjNyM3BYYXc3aVpLU0VtcHFhZ2lIdzh1T3VvMUdvMHhPVHBMSlpEWmxrcklXZEYzbjRjT0h5eEwxaW9xS2VPMjExN1pFNStqNCtQaWFYYUcxdGJWOCs5dmY1cnZmL2E0cC9pNkQ2dXBxOXU3ZHl5ZWZmTEl1QW5CdUlyMVExUE5xTnNwc0p5b3FLbWhzYkdSZ1lHRFpMbUNQeDJNbXRxd3o1OCtmNTEvLzlWLzU2MS8vdWlieEZ6QjZzNFRjbkhYT1Arc3FJR0N4aFhCNkdyRTdxNCtKb3ZXQnBxVjNudVY5YTZJQUl4ak8xVkpnTDdDTEZjNTFFNGtFdmIyOU9KMU9pb3FLOG4yKzRYQjQwemRNZ2ZFZE9qazV5Y09IRDdsKy9Yb2h4ZDhrTUlyaHBMNkkwZm5iQ2l5dlIrTVpKcDFaZk1GV3hJalZ5eWlhTEFob0ZvdWtXeXlHYTdjUXA4SjBKdXNBVm5mdWVmWFpRSDlDQkhhQnBSUjhHWFJIRkYyWXhCU0FUVXllTGViR1B5OW4vS0hyZWw1b0hCd2NYSFJEdUNSSldDd1dMQmJMaXNZMW9paXV1RGJLNFhBUUNvVW9LaXJhdE0zMU9VZnZlcUhyT29xaUxDamc1aUtqNC9FNEF3TUREQTRPenBzZldpeVdmQUpVTEJaYmxRQXN5eUllancySFhjSUk4VjFFVHhNa1FEZWludk85djVPZ3BMTnkzTFBjL2FzLzd2SVZKTEM2d0JFRVR3WDRxc0ZURGpaWHRyVjJoMjFrMTBEVDlZS01TVmRBVGdBMjJXRE1GYWQxd3UzZDkvV2kwdGYvdDlPekMwR3dvbW1QMTM4RVFRUkJRdFBTeEdjZk1qVitudmhzQnlzUmY0UEJJQ2RPbk9CYjMvb1dMNy84TW8yTmpldndMRXhNVEpiRFduWk5UVTVPNWdVd1V3QXVIQzZYaTlMU1VvcUxpK252NzErV3c3U25wNGU3ZCsveXlpdXZiSG8wOGtwSkpCSU1EZzR5TURDdzVDS3d4K1BoMEtGRFcwSXNIUjRlcHF1cmE5VjlPUFgxOWZ6ZDMvMGQzL25PZDZpdHJTM3N3ZTFRU2t0TGFXeHNMSGdVVjMxOVBXZlBubVgzN3Qxb21rWi9mejlYcmx6aDd0Mjc4MzRuZDZvREdDQWNEbE5kWFkzTlpsdVdBR3l6MlFpRlF0c3ljV0E3RUkvSHVYVDVNdi8rNy8vT3h4OS9YSkFORDVKa3cyTHhJOHU1ejgvY2M3K09JRWpZSFpYNGkwNy9heVk5TlFCOHNPWUhOVmt1czBBZmhvalpCK3pHRUlOWHhQVDBOSjJkbmJqZDdueDMyMVk1WjA1UFQ5UGUzczcxNjllNWNPRUNMUzB0REE0T3JsWDhUV0M4WGkzQXRlekZGSCtYeWNURTA3L3JzMllSVFZHMWxDUUptaXlMS0VwaE5rT2xVaXJKcElxaTVPNUxNQTA4MnhsZEJ6UVFKWkQ5NEU0ak9QcU4vOCthM2YwbUppYmJpSno3ZDdsQ3JhN3JSQ0tSZk56d1lsZ3NGbncrSDBWRlJUaWR6aFVaR0ZaNjNzcjE3UVlDZ1JYZGJqdWg2enFxcXBMSlpMNnczcFFUMm5Qck5FTkRRL1BtaDNhN25XQXdtQmVSVjFJaGxNUHBzQkR3MjNHNkxBaWl3THdOUlRtRTdPWlZOUTNKQ1poK0JKRWhVSktQZStpZmVYTGlyd2M4cGVDdE10eS9qcUNSektHelNLL3lkaVliZFQzbmp3MGlXMEJzc3RHWUF2QTZZSGRXSFNtdCtzNTMvYUhua1dVdm1wWisvRU5CUkVCQ1ZaUEVaenVaSFAyVTJabFdWT1hwa1oxejJiTm5EODgvL3p4ZitjcFhlUDMxMTgzdVVCT1RUV2ExRWRBQUF3TURkSFIwRUkvSHQ1M291SlVSQklHNnVqcjI3dDFMZTN2N3NoYitCd1lHdUhQbnpvYkg0aGFDU0NUQzJOZ1kwOVBUVDcyZTFXcWxxcXBxU3l4a2c3RUJZbmg0ZUZVTzRNcktTcjd6bmUvdzR4Ly8yQlIvVjREVDZhUzh2Qnk3M1Y2USs1TmxtYWFtSnI3eGpXL3d3eC8ra1AzNzk2T3FLdDNkM2Z6YnYvMGJrNU9UOVBYMTVTZTMwV2gweDBiZUZ4Y1hVMWRYdCt6WE51Y3lORGYvRko1ME9zM1ZxMWY1bDMvNUZ6NzQ0SU44NSs5eWUrRVhReEFzU0pJSFVYUVlzYzlQL0Z6WE1saXNmdnloVXlRU2ZhK0xzdjJDcGlUWGFEczJXUUd6R0gyMUQ0QWF3QTc0VjNJSHVxNHpOVFhGZ3djUDhndXZYcThYbDh1RncrRllzUU9tRUdpYVJpcVZvcmUzbDVzM2IzTGh3Z1ZhVzFzWkdob2luVTR2ZlFlTEV3TjZnRHZBWlF6eHR3T2pCOWhrR1V6UExEMStFUVEwVVJRVHVxNW5NRHFxQzBKRzBZZ25NbVF5cGp0MFo1QmR1TmRGRUt4Z2NTQmE3TWp5NXFjUG1KaVliQ3lpS09ZRjRPVWtCYW1xU2l3V0k1bE1QbldPSlVrU1JVVkZsSldWNGZmN2wzVXNpcUxrNzNzNXNkR0NJT0IydXlrcUtzTHY5Ky9vamE1ekJlQW5Oem5uM3I5b05NcjQrRGhUVTFQenJtTzMyd21GUXVpNnp1enM3SkxyT0U4aUNBSnVsNFdBMzRiTGFVRVVoUytxZUVKV2E5TlZ5Q1FnTm01RVB5Y21qSDhUZCs1NzgzUnk1OXZzNzdOb0FadlBFSDk5MVliNzExa0VrdFc0M2s1ei91WVFCRVJ4ZFVtV2EwRERpRFV4NDU4M0dGTUFMakFXYTZDaXFPVFY3M3Y5aDc4dHl4Nk1QVGh6ZTM4bE5EVkZZcmFMOGVFUG1CajlDNW5VeExMdi84Q0JBL3ozLy83ZmVmMzExNm1xcWpJam4wMU10Z0NLb3BCT3AxZlVvNUpqY0hDUSsvZnZMOW5iYXJKeTl1M2J4OW16WjVjZGRhdHBHdVBqNDJ0ZFROMFVKaVltR0JvYVduTGlVRlZWeGNtVEp3a0dWMXlOdUM3a1Bqc3JGV1JDb1JEZitjNTMrUHUvLzN0VC9GMEZQcDl2MlpQK3B5SExNa2VQSHVXZGQ5N2hiLzdtYjJob2FBQ014WVZkdTNaeC9QaHhMbDI2eFBEd01PbDBtbVF5eWZEd01QRjRQQjk1dFpNb0t5dmp3SUVEZUwxZWhvZUhsN3krM1c3SDdYWnZpV2pabmNhTkd6ZjQ2VTkveW9jZmZzakUrR010YSsydU8zM09aWUdmNmlxaWFNZHVMOFhwclBtL1c2eEYvNDRocnBsc0REb3dBTndDQW9BVDJJTWhCQzhiUlZFWUhoNUcxM1hzZGp1QlFBQ0h3MEZWVmRXR08xazBUU01halRJNE9FaExTd3RYcjE3bDFxMWJEQXdNTEJpMXZ3S1NHT0x2Qll6WTUxWU05L1R5SjZZbUpGTlBGMSt6RzU1MFVkUm1nWlNpYUU1ZDF3dXkwcVpyT29tRVFrYVpPLy9JT29CTXRpLzVOR2dScTFYQzVUQ1g3RXhNbmpWeW5iVExGWUExVFNPZFRpKzVKdVYwT3Ftb3FLQ21wbWJaYzhGTUpzUHM3Q3lKUkdKWjYxMDJtNDJxcWlxcXE2dDN2RmtwMXdHY1NxWG1yU0hsZW9VMVRTTWVqek16TTBNOEhwODNEM0U0SFBrMW1lWE1HNTlFa2dROGJpdkJnQU8zeTRxWTY2Zk5QMGJXK2F0cmtFNUFmQnhtUnlBNVpZakI2Q0ErdytjWEFhUGFSN0lZVGw5dmhlSDhkWmVDM1dlSXY4RE9HMVBwMlVvakFTUWRTUklScFEyMTVHcVlzU2Fid2pQOGFTODhvbVN6ZTN5SFhnbUVUdjgvSEs1YWRGM0xmL2thT3lva0VFU1NxV0VteHY3SzFQaG5aRkxMMjJBZENvVjQ0WVVYK05hM3ZzVXJyN3hDWldYbE9qNFRFeE9UbFpCS3BWYmQyNUZNSmhrWkdWbnJJcDdKQW5pOVh2YnYzNytpSHVCVUtyWHQzb3QwT3MzUTBCQWpJeU5MUmwxWFZWVng4T0RCTFNPK3JXYTNZWGw1T2QvNzN2ZjR3UTkrd0o0OWU5YmhxSFkrYnJlYmhvWUdXbHRibVptWldkVjlCQUlCVHA0OHlkdHZ2ODBycjd5eW9CQWZDQVFJQm9QSXNwd1hnQWNHQnBpZW50NHl2NE9GeEdLeFVGVlZSWGw1T1YxZFhVdCtIdTEyTzA2bjB4U0FDMGdtazZHdHJZMy8vTS8vNVAzMzMyZHNkTFNnOTYvcEdWUjFGazFMSW9oV1krMWdBVkZaRUN6SVZoOVdhN0JHRk9VMlRkdkIyZWRiajBuZ0x1QUF2TmxMUFN0YzIwaWxVZ3dORGRIVzFvYlA1OE5xdGFMck9qYWJyZUFSK2s4ams4a3dNakpDUzBzTFY2NWM0YzZkT3p4NjlLaFE0dTgxNEJNTTkrOElzTG8raG1jWVJWbk81azlkd1hDbkp6Vk4xeW5nT2x0R1VkRzBuYlk0YVFJYUlocE9oNFRYYTBPV1JCVFZOTXVZbUR3cjVCekFzaXd2YTU2Z2FScVpUSVprTXJsb2xMQWdDQlFWRlZGVFUwTlZWZFdLNW1LQ3NIeVhvTi92NStEQmd4dytmSGpSZFd0OTNqcjU5a1pSRkZLcFZIN2VKd2dDa2lTaEtBcXpzN05FSWhIaThmZ1h4SE5abHZQanllV0kvRThpaWdKT3B3V3YxNGJEWVRGcWZML2dBSmFNZnR0VUJLS0RFQnVCZER4N3hlMy8ycStZdkVhakdlSzMxVzA0ZlQzbGhnRHNLZ2FieC9pWnJqMTJDTzlVTnM4QnJHQTZnRGNjVXdBdUlFNTMvYmxBK0lWL2QzbWFrV1EzbXBwQ1IwY1FSQVJCUXRVeXBHTjlUSTJkWjNMOE0xS0pvU1h2MDJxMVVsTlR3N2x6NS9qUmozN0VTeSs5dFA1UHhNVEVaRVZNVGs0eU5EUzA2c1c0VENaVGtDNHdreTlTVWxMQ3ZuMzdhRzl2WjNaMjZSVE9YSVRQZGlJYWpYTHIxcTBsUlc1SmtpZ3ZMNmVxcWdxYnpiWkJSMWRZQW9FQWI3enhCdi8wVC85RVUxUFRaaC9PdHNYdjkzUHk1RWxhVzF1NWNlUEdpbTVydDl1cHJhM2wxS2xUZk9NYjMrRDExMTlmTkkwa045SE5UU3BtWjJkcGFXbmgrZWVmcDZLaVltMVBZb3NTQ29WNDZhV1g2TzN0NWVIRGgwKzlyczFtdytWeW1RSndnVkJWbFh2Mzd2SFRuLzZVOTk1N2ovNysvb0kvaHE2cmFHb0tUVk9ReE1XU1hIVjBOQVRCZ2lqYWY0c2dPakFtdWlZYlF4b2pCcm9Wd3dYc0J5eEFNU3QwQW1jeUdRWUhCN2w5K3phU0pHR3oyZkI0UEZSVVZHelllVFNUeVRBd01NRE5temU1ZWZNbWZYMTlheFYvNDBBM2h2ajdLWEFUdy9sckRrUlhnYm84VVU3VElTWkFRamVpd1FxV0k2NXBjOHcreitKaTdrNGt1emd0aWdJdXA0V0EzNEhkTGpNYjIzNEpSU1ltSnFzajF3RXN5L0t5cXlkeUl1MWkxeThwS1dIUG5qMDBOalpTV2xxNjdQbUh4V0loR0F6aTkvdVhWWE1UREFiWnZYczM5ZlgxOHpiTXhXSXhFb2tFNlhRYVJWSFFkUjFKa3BBa0tYL3NGb3NGbTgyRzNXN2ZGdk9qWE1YUjNFUXpVUlNSSklsWUxNYlEwQkRqNCtOZkVPVnROaHNPaHdOWmxsZTlGaWlKSW02WEZaL1hqdE5oTWViYnVqNWYyOVUxbytzM05nWXovY2FmYWlyYisvdXNqUmx5OFJvQUVsZzhodkFicUFWM0dkaTlJTnV6cnVqRjA1NU1UTFlycGdCY0lHeU9zcjNoOHE5L0x4ZytoOVZXaEs0cFBQN0NFTkUwaFdTOGw4blJqNWdZK1loa2ZIbUxVaWRQbnVTZGQ5N2g3Tm16TkRjM3I5dnhtNWlZcko3QndjRjhqNi9KMXFLb3FJaVhYMzZaQnc4ZWNQSGl4U1d2cjZycXNvVGlyY1Q0K0RpZmZ2b3BIUjBkVDcxZWJ0RzZyS3hzVmJ0TTF3TkZVVkJWZFZtVEhwZkx4UnR2dk1HUGYveGpVL3hkSXk2WGk2YW1KaW9xS2xZa0FQdDhQazZkT3NXM3Z2VXR6cHc1UTExZDNWTjNqK2Ntd0xtRmlGZ3N4c1dMRjNueHhSYzVjK2JNbXAvSFZpUVVDdkhPTysvUTA5T3pMQUhZNlhSdVNxZm9UdVRCZ3dmODZsZS80dGUvL2pWZFhWM3I4aGlDSUNLSUZnUkJ3aEI2bjdaNG9nSHE5OUIxVS96ZGVPSkFMM0FEd3drc0FzZUFGVWNvUlNJUnVycTYwRFFObDh1RngrTkJFQVFxS2lvMnBMOTdhbXFLenM1T2J0KytUWHQ3KzRvNzRwNGc1L3k5Q0h3TVhNV0l6RFpYdVZiSk10ZHNOU0NwUTRvQ094NEU0WEhGbjhuT1FoREFicGR4dWF6WWJCS3pabHVRaWNrencxd0g4SExtQ1pJazRmVjZxYXlzWk5ldVhVU2owWHhDblN6TGhFSWhEaDA2eE5teloybG9hTURoY0N6N1dHUlpKaGdNRWdxRjhQdjlEQTRPTHBoeWxKdjNXYTFXVXFrVXZiMjlKSk5KZEYwbm1Vd1NqVWJ6QW5CTzlNdzVuSjhVZ0IwT0IwNm5FNXZOaHMxbXk3OFd1WjlicmRiODlaWWpTcThYZ2lDZ2FkcThKTURjZXhhSlJGQVVoWm1aR1pMSlpQN25kcnVkMHRKU3d1RXdnaUFRajhkWHRiRXY1d0QyZVcyNEhMTGhBTTRsZ29peU1VREo5ZjdPRGhrUjBKbnNpVVRjK3VKNndjZzdlWFhERVMwN3dPb0JWd240YTR6T1g0ZlBFTVUxM1hCTW04TmlreDNJMWxnQjN1Wklzc1B0RDczd1ZWL2c2Ti9iSE9XQWdLNG5qY1VoUVFSZEp4SHZaWEwwTDB5TWZFUWl0blFVcWRmcjVibm5udVA3My84K1gvdmExeWd0TFYzL0oySmlZcklxUmtaRzZPN3VYclVqdzJLeDdJajRtNjJJMCtsazc5NjlORFEwY09YS2xTVWpXV094R0IwZEhSdytmSmh3T0x4QlI3azJ4c2ZINmU3dW5qZXhXQWlIdzBFb0ZLS29xR2lEanV6cDVMcUtsclByMWVmejhmcnJyL09qSC8ySTQ4ZVBiOUFSN2x3eW1ReGRYVjBNRFMyZFJKSWpIQTd6K3V1djgvYmJiL1A4ODg5VFhGeTg1RzF5ay9UY3dvV3FxZ3dNRERBMk5yYnFZOS9xeUxKTWMzTXpSNDhlNVU5LytsTytSM1FoTEJZTFZxdlZGSUFMUUY5ZkgrKzk5eDYvL09Vdmw5d01zeFlFd1lJa09SR2xwd2gvZ29DQWlLYW1VSlRZdUtabFRBRjRjNWpGY0xyYUFBOVFCcFJndUlGWHhNek1ETjNkM2ZoOHZ2eW1EVm1XMTNWRFZTN0tzYWVuaHdjUEh0RGQzYzNFeEtycmVSVU1VYndQdUE2Y3g0aDlYcCtkRWlaUG9nRUpEQUcrd0pGM09wcW1vNnM2Z3VsWTJWRUlBbGhrRVp0VndpS0w1TXhkSmlZbU94dEJFSkJsR2F2Vmlpekx5MW9ua21XWmtwSVNqaHc1UWlRU3dlZnowZHZiU3l3V3crUHgwTlRVeE9uVHB6bDE2aFJWVlZVclBpYUh3MEU0SEthMHRKVGUzdDRGSzRRa1NjTGhjSkJJSkxoMTZ4WTlQVDNvdXA2djJNbzVmMVZWblpjU2xac0g1ZjR1U1ZKK0R1bDBPbkc1WFBrL2ZUNGZmcitmUUNCQVVWRVJKU1VsbEpTVUVBNkhOMjArOVdTQ1hFN1Fqa2FqUkNJUm90SG92SFhDNHVKaURoNDhTSGw1T2JGWWpLbXBxVlVaU1dSWndPZXhFUzV5NHZIWUVFWEJFREIxSVJ2OW5JTGtKTXc4Z3VnQVpHYU5rNGp3RE00N2RSMUVFU3hPSStiWlUyRzRmMTFoc0hrZkMrYUMvbXdObzdJYkx6WjRLVHFyeHB0c05LWUFYQUNzOXVJOXZzQ3gvK1Z3MXFMck9YRWh1OWlweEVqRys1Z2FQNzhzOFZlU0pFcExTM25oaFJkNDU1MTNPSGZ1M0paWnJEY3hNVm1ZU0NUQzFOVFVGM285bG9Nc3kvajkvaTNqeU54cFNKSkVjWEV4SlNVbE9KMU9vdEhvVTY4L1BUM05wVXVYT0hEZ0FLRlFhTXNMODlGb2xNN09UbUt4cDlzQ1JGRWtIQTduWDRldFFLNnJhQ2tCMk9WeThkSkxML0gzZi8vM25EbHpaa01jVnpzTlJWSHlFOHRrTXNuVnExZjV6VzkrUTF0YjI1SzNsU1NKbXBvYVhubmxGYjcvL2UvejBrc3ZMWHVDSFFnRUtDMHRuUmVWcW1rYXFWU0tUQ2FEeGJKaUhXYmJVRnRieTk2OWU1bVltQ0NkWGppMjBXcTE0bkE0dGtYRTJWWkYxM1Y2ZTN0NTc3MzNlUGZkZDVmMU83MFdKTW1KSkRzUUJQbUp0Sis1Q0dpNmlwS0pvS1FtZTliMWdFeWVoZ1pNQUErQVVtQXZVQVdFV0tVSTNOSFJrVDlmV2ExV0pFa2lGQXF0eTNscFptYUducDRlYnQyNlJYdDdPeU1qSTZ1OUt3Mll3WEQrWHNWdy8xN0hFSU5OTm9hY0FKd0FucjRUY1lXb3FrNHlxWkJJWkhDNnMrZGFBWE5wYlljZ1NTSVdXVVNXbjhFRmV4T1RaNWljMjNXNVJnRlJGUEg1ZkRRMk5pSUlBc1hGeGZUMDlCQ05SdkY2dlRRM04zUDQ4R0hxNit0WE5lL0lyVm1WbEpUZ2NybnlBbkJ1L0pQSlpOQTBEVTNUR0I4ZlozeDhuRlFxdFdEMzdVckkxZVc0WEM3Y2JqZCt2NTlnTUpoM0pKZVhsMU5XVmtaeGNURit2eCtYeTRYRDRjakhTTnZ0OW5WZCs4aUp2MDhLd0VDK2p6a2VqODl6Q0ZkVVZIRGl4QW04WGkvWHJsMWpaR1JrVlFLd0pBcjQvVFpLaTEyNGZUWUVVWHg4N3RjMXlHU2pueU1Ea0pnMG5LMml4RE1SR2FMcmoxMi9DQ0RiREtIWEdUTEVYMStWMGYxcnNSdUN1YnE5S3VCTVRGYURxVGlzRWRuaUNmbERwODY1dlh1dzJFTG9tb0tPamlqS3FHcUNXUFFCRXlNZk1UMStublRxNlk0WFdaWTVkT2dRWC8vNjEvbmExNzdHL3YzN254cXRhR0ppc3Zsa01wbjhic2JWVUZSVVJGVlYxWXBpZUV4V1JrbEpDZFhWMVlURDRTVUY0Tm5aV1ZwYlcrbnE2dUxVcVZOYlhxRHE3T3prNnRXckMrN0NuWXZiN2ViUW9VTTBORFJzR1ZGYjB6UlVWWDFxQkxUTlp1UFZWMS9sSC83aEh6aDc5cXg1VGx3RjhYaWNPM2Z1ME5YVmhhN3I5UGYzOCttbm4zTHg0c1ZsVFRiMzdkdkhkNzd6SGI3NXpXL1MyTmk0b3QzVlpXVmw3TjY5ZTk3RVcxVlZJcEVJazVPVGxKU1VyT281YlFlcXE2dlp1M2N2TjI3Y1dGUUFkcnZkQkFLQkxmODlzNVY1OU9nUnYvNzFyL21QLy9nUDd0Njl1NjZQSllneXN0V0hLTm9RQkhGaDZWY1EwWFdGZEdxQ1pHTHcvNXZKVEMwZCsyT3lucWpBT0lZVHVBM0RBU3dCWVZheEFqWTZPa29zRmtNVVJWd3VWNzZqcnRET0UxM1htWjZlNXQ2OWU5eStmWnVlbnA0bE4zbzloUlF3aHRHSi9DbHdDUmpDNkVvMjJSZzBJSks5RkRRUlFGRTBJck1wWmlKSm5ENTdkcTB6cXdDYkl2RDJSQWQwUGVzQ0ZMRmFKV1JaUkJDRVZmVkVtcGlZYkMrZWRBQ3ZaSHpoOC9sb2JtNm11TGlZNmVscDB1azBOcHVOb3FJaXd1SHdxamVkU3BKRUlCQ2dvcUtDb3FJaXhzYkdFRVVSdjk4UEdKdm9VNmtVeVdReXY5RzNFT1RjdzVPVGs4aXlqTjF1eCtGdzVDT2kzVzQzSG84SGw4dUYzKytucUtpSXNyS3kvTWIza3BJU0tpb3FDSWZENjJLNFNLZlQrV1BNa2Z1dVRxZlR4R0t4ZWYzQVZxdVZ1cm82amg0OWlxWnBYTHAwaVpHUmtWVWxDVXF5U0REZ29Mek1nOU9mRlRKMUlTdit4ckxSenlPUW1JQk1IQkNlSFFGNDdnQkl0b0V6YkRoK3ZlWGdDSUhEYi9UOUNnTG9CZDJYWjJLeVpURUY0RFhpZE5lL0VDZzYvYi9zanZMc1lwQ3h3MFFRTENpWkVXWW1yekUxL2pucDVPSzd0blB1bXVQSGovUDY2Njl6OXV4Wkdoc2JOKzVKbUppWXJKcmNJSGUxRS9LeXNqSWFHaHEyakN0ekoySzMyNm1zcktTaW9vSyt2cjZuVGtnMFRXTm01di9QM24vRlJwTG5XYnJnWjJhdTNlbUs3dFNhUVJGYU1HUkdwS2pLcWF3c09WM2Rkd2EzY0x1MzcrMjlDd3l3MkFYdTB3SzdMNHNGN3I1YzdPN0RZb0RGelBSTVQwOTNWODlVZFZkVmQxZFdWMlZtWlZhcWlNalFPb0pCcmVsMHJaV1o3WVBSTE1nSU1nUTFHZllCbm1ReVNIZWowOFhmL3VkM3pra1puUzA3WFppWm5wNStxZjdwbXBvYVRwMDZ0YU82YzFWVk5TYUZWM3IrMk8xMnpwOC96My8vMy8vM3ZQMzIyM2c4bm0wNHl0MUxOcHZsNXMyYmZQcnBwOXk1YzhlSWU0NUdvNHlOalZFb0ZKNzc4NklvY3ZEZ1FmNzF2LzdYL0t0LzlhL1d0Qzd4ZXIwME5qWXVjd0RMc2t3MEdtVm1ab1pRS0xSbjNhK3RyYTBjUDM2Y3YvLzd2eWVSU0t6NFBWNnZsMUFvdE9OZlozWXFrVWlFWC8zcVYvelZYLzBWTjIvZTNQU05jVkcwWTdGNkVTVTdLMitlTEs3L3F4bXlxWHZrczhOWEZHV04wMkVtRzBrVlRmQzhBWGdCTitCRGk0Wit0U3RhN0hKNzlPZ1JmcjhmcjllTHorY2pHQXh1ZVBSZ0xwZGphbXFLOGZGeG90SG9XZ2NORlNDSDl2cy9BbTZoaWVFbVc0dUNGc0dkWTZNRllGa2huNitRelpWUnl6S0N0RmdLYkFxRnV4dFYrek5Lb29EVktpQkp3bXV4Wlc5aVlxSUppSHFYN2xyT2t6d2VEeDZQaDdhMnRnMDlwdHJhV3ZyNys1bWFtcUpTcVpESlpMRGI3Y2FlU2JsY051cTJubDRUNlFQbytrZFZWWmRkWG9acXRVbzJteVdiemE3NDd3NkhnMUFvUkV0TEM0Mk5qVFEyTnRMYzNFeDdlenYxOWZYVTF0WWFEdUdsbC9XczM0ckZJc1ZpY2RrYWJlbVErOUpCZDR2RlFsdGJHL3YzNzZlcnE0dTV1VG1LeGVLcXY4K0xzRm9rYW1ycytQME9MRTRibEdTUUJWQXFVRWhBZWxJVGdLdjZPYi9BbmhaL1ZSVlFuc1JjU3phd3VjQlpxN2wrdlMxYTVMUFZxVVZrcXdxc3c1MXVZckxiTUFYZ2RTQlpuSjc2bGg5OTB4czRnV1N0UVZYS1JwNSt1UlFsbmJoSk9uNkZjakd5Nm5WWXJWWk9uRGpCdDc3MUxiNzFyVzl4OHVSSlV3Z3lNZGxGNkJOL0wrcVdYWTFnTUVoemN6TU9oMk9Eajh4a0tkM2QzUXdNREhEbnpoMlN5ZVJ6djFjUUJHUGh2cE5SVlpWTUprTXltWHpobEszWDYrWEFnUU03cXRkWUY0QlhFMytQSHovT0gvL3hIL09OYjN3RG44KzNEVWU0TzBtbjAweE1USEQ3OW0xKzg1dmY4TXRmL3ZLRkR2R25jYmxjREF3TThNTWYvcER2Zi8vN2F4NUtFMFdSbXBxYVphNXpQUnBzZG5hVy92NytQWnQrRUF3R09YNzhPRWVQSGwyMTI4bmxjdUh6K2N3S2dEVXdPenZMcjMvOWEvN2JmL3R2WEw5K2ZVdHVVN0s0c1ZyOWlOTFM5K3VuWHI4RWdYSTVTanB4N1g4cjVFWXZiOG1CbWJ3TVVUUUIySVlXQWQwSU5LLzF5aFlXRnJoejV3NCtuNCttcGliYTJ0b0lCQUliZEtnYXVuTWttODFTS0JUV0dxRW9vd21QS1NDQjFvdHNzdlVvYVAyL1JiUy95V0ltNFFaY3NhSlNMc3VVeWpLS3JHaGl3UjdlMzMyZEVCQ1FKQzMrV1pMRXhiV1VLZXlibUx3T2lLS0l4V0l4K21TM0cwRVFxSyt2NS9UcDAwaVNSRTFORFVORFE4VGpjYkxaTEQ2ZkQ2ZlRpYUlvaTUyaXoxNzA2OUgzQUphS3BJcWlVSzFXMTJXc0tCYUxURTFOa1Vna0dCc2JvNmFtaHBxYUd2eCt2NUc2VkZ0YlMzTnpNODNOellaQm9MbTVlYzNEdVBsOG5uSzV2R3lOcGlpS0lZWXYzVTlxYUdqZzdObXpEQXdNNFBmN0dSMGRYYlA0QytCMlduRzdiRGdjRmtBRVlWSFFyQlExNFRjNUR0a0l5THBPc2RlckJQVFk1OFhJWjJkUWMvMTZGcnQrSFY2d3VCYnZDLzE3WDNPTUlZd3R2VlVSYzZXNkxaZzdUdXZBNld3WmNMbTcvMDgyZXhnQkM0cGFRaEFsNUdxZVpQd0tDN08vSXBjWlJEdm5XNW5lM2w3KzUvLzVmK1k3My9rTzRYRFk3RFkwTWRsbDZGTi9heFVMWFM0WFhxL1hGQUEybWQ3ZVh0NTk5MTArK09DREZ3ckE1WEtaWXJHNGFtenJUa0h2ZFgyWmpXRzlIMmNuc2RRQi9EUkhqeDdseHovK01lKy8vejRORFEzYmNIUzdrNm1wS1g3Lys5L3o0WWNmY3YzNmRjYkh4MG1uMDY5MEhWYXJsWGZmZlpjLy9kTS81Y0tGQytzZUd2QjRQTXNjd0tCMVcwYWpVU3FWeXA0VmdBSDI3ZHZIajMvOFk3TFpMSjk5OXRrei82N0h1KzJFalozZHhOVFVGUC80ai8vSVgvekZYM0RyMXEwdHUxMkwxWWZOVVk4b1B2dVkxYUtmVldTNVFERS9UUzR6K0ZXNUZCM2Vzb016ZVJGRnRNNWJEOUFKZEFOK05CZndLeS9BcXRVcTA5UFRQSHIwaUFNSERuRG8wQ0ZjTGhkV3EzWERuTUF2U3NsNFJXeEFFR2hCRTRKelBPOEUxV1F6S0tDSjhSdnFBRlpVTFFhNlhGYW95Z29TZXpOVjQzWEZZaEd4V3JVSWFITzcxTVRrOVdLcGNMcmRDSUtBMSt1bHA2Y0h1OTJPeCtPaHFhbUpzYkV4RW9tRVVZbW1mOVFGM3BVcW41NFdnUFhQZFFGWTd4UFczY0g2V3VqcHkycHJvMXd1Unk2WFkyNXVidG5YblU0bnRiVzFkSFIwME5IUlFXZG5wL0Y1S0JUQzdYWmp0VnFOL21DbjAvbkMvZm1WMGdCMU4vRFMzOWxxdGRMYjI4dUZDeGM0Y09BQWdpQVFqVWJYN3Y2MWlnU0REanh1dlNONnNmKzNXb0I4RkxLemtGL1FvcUJGRVlTOXV0ZW9MdW43RlVDeWc4MjlLUDQyZ3E4TlhIVmdkVDFKUjFHcm1NTlVKcThqZS9WVllOT3hXRDJoWVBqTk54ek81c1VKRWdWQmtGQ1VFb1hjS0tuNEpUTEoyeWpLNmxuK25aMmRmUGU3MytYYjMvNDJ6YzFySGtJM01USFpKaFJGSVpsTUdwMG5hOEZ1dCtOeXVmWnNET3BPd2VsMDB0L2Z6NEVEQjVpWm1YbnVZanVUeVpCSUpNaG1zd1NEd1MwOHlsZERqd3dxRkFyUDNSeHViVzNsNU1tVE8rNTNXUzMycWJHeGtYL3hMLzRGUC9qQkQzYWNhTDFUaWNmalhMOStuVTgrK1lUUFAvK2N1M2Z2cmhvN3ZCbzJtNDNqeDQvejFsdHY4ZTY3NzNMKy9Qa05pZDMyZUR4MGRIUXdQRHhzUE85U3FSU3hXR3pIRDFtc0Y0L0h3N2UrOVMxdTM3N04xYXRYbjNFQlM1SmtEdis4SXNsa2t0Lzg1amY4eFYvOEJWZXVYTm5TUGtTYnZRNlhweHVMeGYxc1g1UWdJcUJTTGtVcDVFWXBGeU9EVzNaZ0pxL0NEUEFBVFFUMkFHM0FtcXk3eFdLUm1aa1pSa1pHR0IwZHhlMTJFd3FGTmpUUlpRTTJmMFhBaFNiOEhrWVRma1ZnQ0poN3pzK1piQ3g2QjNDS0RlNWVWbVNGWXJGS29WQ2hYSkd4TzZ5TEhjQ21XM1RYb21vYjJvSW9ZTFZLT0IwV2JGWUpjWWNJUVNZbUpwdlBUaEovbDJLMVdtbHJhOFBwZE5MUzBzTDgvRHpwZE5vWVNrK2xVc2IraEM2T0ZvdEZDb1dDSWV6cUxCVjVsNHJDK2tkdHNGS21YQzZ2ZW5tVkpMNUNvY0RVMUJTcFZJckp5VW51M2J0SElCQWdHQXppOC9rSUJBSUVBZ0VhR2hxTWRKZW1waWFqNS9ocFpGa21tODFTTEJhWG5ZL292NFArdTFvc0Z0cmIyemx4NGdRREF3TTBOVFV4UHo5UExCWWpsOHU5OHQ5QWxBU0NBU2N0elRVRUFzN0ZmVVFSbENyazQ1Q2NnT3pjVTlIUGU1VkY4VmRWTmRldk82UTVmajMxbXV2WEdRU0xVK3MrVm1XTWlHZ1RnMjI2Tzh3L3dqWmc3anF0RVl2VjIrU3E2ZjEvMnAwTnFJdlJBWUlnSVpjelpOUDN5R1Vmb3lqRjUxN0hpUk1uK0lNLytBUFQzV1Jpc2t1UlpabDRQRTRpa1ZpekFLdzdnRGU2Tzg3a1dmeCtQK2ZPbmVQaHc0YzhmUGh3MWUvTFpyTWtrOGsxTGNpM2tsd3VSendlZjZIRHM3dTdteE1uVHV6SUR0Mm5SZUJnTU1pM3YvMXR2djN0YjlQWjJibk5SN2Z6VVZXVnNiRXhQdnZzTTM3NXkxL3krZWVmRTQxR1gvbDZtcHFhR0JnWTRQdmYvejUvK0lkL1NDZ1UyckJqZEx2ZDlQZjNjK1BHRFVNQWpzVmlqSStQVXl3K2Y1MjBGNml2citmbzBhUDA5UFJ3NTg2ZFpSc2ZvaWlhci8ydlFEUWE1YU9QUHVKdi8vWnYrZnJycjdmc2RnVkJ4T2FvbzhaM0dLZTdBMUcwbzZwNmlxditQUklxTXNYY0JOblUzZjlGcm1abXR1d0FUVjZGUERBQ2ZJMG1qTHJRbk1CcjJoM0xaclBNenM0eU1qSkNLQlRDNC9Gc21BQnNzOW1NSGorSHcwRW1rMW5Md0lPSTFudHNCNXlMSDExb2V3QUZORUhTWlBOUmdBeVFaS01GWUVXbFdKSXBGQ3BVS292dkwzdDVyL2QxWWJFRDJHWVRjVGlzMkd3aU8xQUxNakV4MlNUMDgyTTlDbm9uWWJWYWFXcHFvcTZ1amxLcFJLRlFJSmZMR1VQMDZYU2FiRFpyaU1LRlFvRnNOa3VwVkRMY3djOXo5aXFLUXFWU01SekZ4V0tSZkQ1UFBwODM2dGYwcitzaXN5NHVMM1VIcjVhUWxzbGt5R1F5akkrUEE1cllicmZiQ1FRQzFOWFYwZHJhU21kbkp6MDlQWFIyZGhvaXNOMXV4Mkt4R0pkTUptT0l1RXR2YTZrZ3JZdS81OCtmNTh5Wk0zUjBkQ0JKRW9sRWdsZ3N0cVp6WVlza0VLNTEwdExrSVJCd0lFcUM1bW90WlRYbmIzb0tpa250TkVXeXNQY1dCWXV1WC8wOFRMUnE0cStyRnJ5dG11dlhIZFpjdjZLa2ZhOWNlZkt6Sms4UUZnM2lXL3NRRWNDTXE5a09kdFk3eVM3Q1l2VTFPTjJkV08xNk5LSUNnZ1c1bXFXUUgzOXU3NjlPVjFjWHg0NGRXM1BmZ0ltSnlmYWlLQXFGUW9GOFByOW1GNUxUNmNUajhaZ2l3QmJnOVhvWkdCamdpeSsrZUs0QXJKOXNWQ29WVkZYZGtkTzM4RVFBZmxHL2F6QVlwS0doNFprWTN1MUdFSVJsajN1SHc4SDU4K2Y1NHovK1kwNmRPcldOUjdZN1VGV1Z1M2Z2OHJPZi9ZeGYvdktYREEwTnJXbG9vYk96a3ovOTB6L2wvZmZmWjkrK2ZkVFcxbTdvY2Rwc05tcHJhNWNOSUN3c0xIRC8vbjB5bWN5RzN0Wk81ZkRodzd6NTVwdE1URXdzYzJhdjVJQTNXUm05OC9mUC8velB1WEhqeHBiZXRzMWVSNmorUFFLaDgxaHRRVUJZRklBMXRQaG5oVW81U1NaOTl5OHp5VnMvcjFaenlTMDlTSk9YcFFwTUExZlJoTkVPTkJmd210NGdLNVVLOFhpY21aa1pvdEVvTFMwdEczYWdicmViY0RoTU9Cekc3WFlUaWJ6NDNISUZCTFQ0Wnh0UDRxNnRhRDIwWldBWXJSOTViVDBtSnE5Q0hrMEUxck1ITjZ3RHVGU3FVaXpLVkt1NkFMd3oxNjBtcjhDaUFHeXhTRGpzRWxiTHp1Z0JOVEV4MlJyMFNHUmRCTjZKNkVLb25vQ2lPMzJYaXJMNm5rcXhXS1JTcVJoZjEwWGNwWUt1L3YrNnVLdUx5L2w4SG9mRGdjdmxNdnAyOWZ1bldxMVNxVlNNMjFycCtwNTI2RDZOcXFvVWkwVm1aMmVKUnFQTXpzNHlORFRFelpzM0NZVkNoRUloQW9FQVhxOFhyOWVMeitmRDUvTWhDQUpqWTJPazAra1Z4V2FMeFVKYld4c1hMbHpnQnovNGdaSElscy9ubVoyZFpXRmhZWTBDc0VodDBFRmpnd2UvejRrb3FGRE1hTDIvbVZrb3hLQ2FSK3NGM3BtUG5YVmhSRDZySU5uQTRRZFBBOVMwUUUwRE9BSmdjNEVnTGJxREY3L1hSRU1GaE1WRmhpZ2dTZHBBK2hhdU1TUzBvVlFMRzF5TFl2SjhUQUY0RFVpU3plR3JQZE5wczRlUUpCZXlYRUIvUVZHVUl0VlNES1dhZi82Vm9FVUR1bHl1VFQ1YUV4T1R6VUpSRktQblpLM29IWkFtbTQvTlptUGZ2bjNzMjdjUGo4ZnozQmhvL2FSQlVaUWRHODlkcVZRb0ZBclBkWis3WEM0YUdob0loOE03N3ZlUUpHbFovMmxQVHcvZi9lNTNPWFBteko3dWhkMEk1dWZudVhyMUt2LzRqLy9JSjU5OHd1RGcydEptang0OXlvOSs5Q04rL09NZjA5dmJ1OEZIcWFISGR5MDk4YTVVS3N6TnpiMndqM3V2ME5IUndZVUxGL2oxcjM5dENzQnJJSlZLOGR2Zi9wWS8vL00vNTlLbFN5L3NQTjlJSk1tSnk5T0RyL1ljTGs4M0tnSlBWNmNLb3BWS09VRTgraVhKMk1XZmwwdXg4UzA3UUpOWFJVVnp2VmFCQ1NDT0pvU3VTUUNXWmRtb1k4am44MVFxbFJmLzBFdWdkKzIxdGJYUjNkM04rUGc0TXpNemEwNmJXY1FHTlBGazZsNUNjd1BmQnRha0xwdThFaVcwTHVxTjdRQldWTXBsbVZLNVNyVnF2cC9zSlFSQWtnUXNGaEZKRXZhZWljdkV4R1JGVkZXbFhDNGJxV1NwVklwZ01Mamp6dVdmeHVGd0dDa29TODl2bHNZN0wzWHU2dTVnWFRSKyt2OTFBWGpwLyt2bmxFdWR2cnI0cTNmLzZtc3kvZk9sN21NOW5ubTE4NjlLcFVJa0VpRVNpZkRvMFNNa1NjTHBkQnJpYnpBWUpCUUtHY1BObVV5R3VibTVaL1lEN1hZN3JhMnR2UEhHRzN6NzI5L20vUG56MU5mWEl3Z0N5V1RTR0J4Y2l3QnN0Vm9JQm1wb2JBamc5OWtSNUFKa1lwQWFoMXhFaTM1VzFUMzJucUYzL1M0NmYwVUxXQjFnOTRHbkVmenQya2U3QjYwUFdRVzFzaWpUbUd1alZaRkViWTBoYnVtRHhZSjJUbUlLd0Z1TUtRQ3ZBY2xTVTI5M05Qei9KTWtGQ05wckVTQ2dvcW95aWxKQ1ZWKzhBV0J1K3BtWTdHNWtXV1pxYW1xdHJnekFqQURkYXNMaE1KMmRuVFEyTmpJME5MVHE2M0F1bHlPZFRsT3RWbmZzeVpZdVVqOFBuODluUkRUdHRNZVpQdnhndFZweHU5MmNPbldLdDk1NkM3ZmJ2ZDJIdGlOUkZNV0lUcjV5NVFxLyt0V3YrT1NUVDU3cGxYMFo3SFk3aHc4ZjVzYy8vakUvK3RHUE5qVnVleVVCR0xRZXBwbVpHU3FWeXA1UFF2RjZ2UncvZnB3TEZ5NndzTEJneExicjk4MU9wMURRT3FTMll6QWpGb3Z4OGNjZjg1T2YvSVN2dnZwcXkyL2Y1bWpFR3p5T3c5V0tJRnBSNVJLcXZwRWdpQWdJS0VxWlhHYVErUHlIZjVaTFAvem5MVDlJazFkRlFuUEJXbUVGUmY4VjBKTXM5TW41alp5ZTkzZzh0TGEyc24vL2ZzT1ZNams1dWQ3b2ZEdlF5Qk1IcW9ybVNzMmhpWk03L3dWcDkxSmtFKzVqV1ZZcGxXUUtSWmxLZFRHYVhoRE1DdUJkajdvWXpTZ2dTUUxpMW03T21waVliQ09xcWxJb0ZJaEVJZ3dQRHhNT2gybHVic2JyOWVKMnUzZUZpV2pwZWtoZksxa3NGdXgyT3pVMU5ZWVl2TlM5dS9TakhnR3RPM3lmL3JydTh0WGR4UGw4M29pZXptYXpaRElaNC85enVkd3pydUNsRHVWU3FiVGljS21xcWxTclZTTXllbnA2R3JmYmpjZmp3ZTEyNDNRNmtXV1pSQ0t4YkUvR2JyZlQzTnpNdVhQbitQNzN2OCtaTTJlVzFUN3FvbkVrRWpIT3NWNEZxOVZLT0J5bXBibVpvTitEVUkxQ2VoS1M0NUNQZ2xMUm5MOTdLVFZDUmV2d1ZSZGR2ODRBdU9zWHUzN3J0SXZWbzBWZUsyYlg3d3ZSendJRTNRRXNiTlhEUlk5LzFsT0pUTFlROHc1ZkF4YXJyOVZtcjBNVWJZdjl2MHRmV013WEdST1QxNFZJSk1MRml4ZDUvUGp4bXE5RGx1VmRJUURzRlZ3dUY5M2QzZlQwOURBMU5iWHFvanNXaXpFOVBVMnBWTnB4MGNtZ1RhZW0wK2tYUnY2NlhDNzhmajgxTlRWYmRHUXZqMzRpNlBQNTZPM3Q1Zmp4NDNSM2Q1c1JkeXVnS0FvM2I5N2tvNDgrNHRLbFM5eS9mNStKaVlrMW5UVGE3WGJPblR2SC8vZy8vbys4Ly83NzFOZlhiOElSUDhGaXNlRDMrNS9ack1qbjh3d1BEek0vUDcraHNhazdsYzdPVHY3c3ovNk1WQ3JGTDM3eEMrQkozUHhPWjNKeWttUXlTVzl2TDM2L2Y4dHVkMzUrM29oOXZuYnQycGJkcm80Z1duRjc5MVBqUDRIVjV0YzJIcDdxL1VWVktPYkdTY2UvcHBCNS9EdEZMdS85WXV2ZFR4RG9CbnFCTUpvUXZDWWtTY0xoY0JpcFRoczV6T0p3T0tpdnIrZmd3WU5rczFtS3hTSldxNVdob2FIMXZtNVkwVVJnQVUyUVRDeCtuRno4M0R5WjNSektRSnBONndDdUxvbUEzc2hiTU5rK0JDUlJjd0dMa21EK1dVMU1YaE5VVlNXWHl6RTVPY20xYTljb0ZBcTB0cllTREFieCtYeDR2VjQ4SGc4ZWp3ZTczWTdWYWwxMjJRM296bHFuMDJrTUNTLzkrTFNEV0k5ODFoM0VUN3VGOVE3aXBmK2Z6V2FOLzEvYUpaekpaQXloZUtsak9KL1BVeTZYbjdzM3A3dU1BV1B3VHo5ZVFSQ01OV0Z6Y3pOOWZYM3MzNzkvMmJtMnFxb2trMG1tcDZlSlJDSnJTbmF4MjEyRUd6cG83VGlDTDJ5SC9BTlFoa0V1Z2xvRThhbUsxVjI3cWx2YTlTdG9ybC9KQVE0ZmVKdTB2bDkzUGRock5GRVlOUEhiZFAyK0Vsc28vdW9JZ0xoNE1kbENUQUY0RFlpUzB5dFpha0N3TE9iSkwvdFhMV3NlaVJjTmxKc09ZSlBkZ0Q0TnQ5UGNnOXZONk9nb3YvNzFyN2w4K2ZKem80UmZoTjR6MHRyYXVvRkh0MzcwaGU5T2RiK3VoME9IRHZIV1cyOXg5ZXJWVlFXMDBkRlJidCsrelRlLytVMjhYdThXSCtHTEtaZkxSQ0tSRi9iLzZwTzJPelZtM0dLeDBOUFRRMmRuSjIrOTlkYU9GTnUzazFnc3hvTUhEN2g4K1RMWHIxL241czJiakl5TXJOa0JackZZT0gzNk5IL3lKMy9DOTcvLy9RM3YrMTBKbTgxR09Cekc1L010KzNxaFVHQnNiSXk1dWJuWFFnQzJXcTJjUFh1V045OThrNisrK29wSUpHSnNJaWlLc3FQZlkyZG5aN2wwNlJJUEhqemcvUG56N051M2I5TnZNNS9QOC9ISEgvTWYvK04vNU9MRmkxcytLQ1ZLVHJ5QkV3VERiK0owdHlJSUZoVGxTVXFWSUVpQVFLV2FJWlc0L2crSjZNWC9kN1dTbXQ3U2d6UlpDejVnUDNBV09NVTYrbjlCV3lONXZWNGpEbENQUHR3SUpFbkM1L1BSMGRGaHBDaElra1NsVW1GNGVIaTlVZWcyTkJINEFGb2tkaGx0dDZ5d2VESFplQlJnSHUzKzNiQk5BRmxSS1pXckZJdFZLaFZsQTl1RlRiYU54ZjF1QVFHTEpHS3pTVmdrY1UrWnVVeE1USjVQb1ZCZ2VucWFmRDdQeE1RRWdVREFjUDg2SEE2Y1RpYzFOVFVFQWdIcTZ1cW9yNituc2JHUmhvWUdRcUhRZGgvK0s2RVBmejl2Q1B4cFlYdXBBM2hwcDdEdUVGN2FONnc3ZjNXeFY0L1ZUaWFUcE5OcDQ1SktwUXpYc0Y2enBWLy9hZzVoZlUvZllySGdkRG9OZ1Y3ZlA4cGtNdVJ5T1N3V0M1SWtVU3dXbVp1YlkzUjBsUG41K1RWVmh6aWNiZ0sxWGRRMW50RWlrRzFleUtjZ05RZVZGTWdWUUFiVnNydDFVRlVCWmRGd1ozR0EzYXZGUEhzV25iK09nUFkxeWJMY0lXenljZ2phZnlSeHkxTkdCSjZJd0NaYmlDa0Fyd0ZCa0d3SUZsYk9WcElRQkN1Q0lMMVVETFNKeVU1Qm4wYkxaRElVaTBVeW1ReUNJQkFPaHdtSHd4dTZxYlhiaWNmamZQVFJSL3prSno5aGZIeDlWWCtQSGozaWd3OCtRRkVVR2hzYmpVaGNRUkNNUlN4b0FydysvYWhQRjliVTFDeHoxVlVxRlVOUXFGUXF4aVRpVWhSRk1SYkMxV3JWNkVEUmUxVDBmOWVqY0R3ZUQwMU5UVFEzTis4WmNhNnRyWTBMRnk3d2kxLzhnbmc4dm1LSDg4ek1ESGZ1M0ZtWHVMK1o1SEk1SGo1OHlQVDA2bnFEeldhanNiRnhSNThFMXRmWDg4NDc3M0R5NUVsNmVucTIrM0IyQklWQ2dmbjVlU1ltSm5qOCtER2ZmZlladi9yVnI0akZZdXU2WHJ2ZHpxbFRwL2lUUC9rVHZ2ZTk3MjJKK0F2YTQ3Q2hvWUZBSUxEczY4VmlrZkh4OFhWRjZPODJiRFlieDQ0ZFkyQmdnSTgvL3Bob05FbzhIcWRTcWV6bzE5ZHl1Y3lkTzNmNHpXOStRendlNTMvNm4vNm5UWFVDcDFJcGZ2LzczL09Ubi95RXp6Ly9mTk51WnpVRVFjVHA2U1RVOEcxOGdST0lvbk54NEhQSm1sOFFxVlpTcE9QWFNVUy8rc2RjNXZIdnQveEFUVjRGQWFoRGMvNmVCZDVFRTRKRExMTkp2QnFpS09MMWVxbXZyOStVdGJJa1NmajlmcnE2dWd3QldGOER6c3pNclBkOXdZcldDWHdVclo4MkFjeGhDc0NieVR5UVpRTzNaQlZGcFZpVUtSWk5CL0NlWWpISjIycVZzTnN0Mkt5U21aQmpZdklhVVM2WGljZmpKSk5KeHNmSG42bWJFRVVSbDh0Rk9CeW1vNk9Eam80T3VydTc2ZXJxb3JPemsxQW9SRTFOamVFUTNtdlk3WGJzZHZ1S3J1R252NlpIUnV1OXdIcWtjenFkTnR6QW1VeUdaREpKSXBFZ0hvK1RTcVdXT1lwTHBSTEZZdEVRaEFWQndHS3hJSXFpSVE2NzNXNzhmajl1dHh1NzNVNDJtMlZtWm9ad09Jekg0MEdTSktyVktyRll6RWhYV2d1cUNvbGtsWkZKbVRiVmhsZ0tJU1hic1pTN2tPUWlraHhIb29BZ3FDQXN2cG5vUnRvZGo3cGN4SlZzWUxGcnJsOVBJd1E2dGJobm0rZEp6TFVpUC90ekppK0o1djQxMXhldkI2WUF2Q1lFWTJUaG1hK0xJcUpvUXhDbEZ6WkttVTh5azUxQ09wMW1aR1NFUzVjdWNlL2VQUktKQkxGWWpJYUdCdjd3RC8rUU45OTgweFNBRnlrV2kxeTZkSWtQUHZpQXExZXZyaW0yWlNtRGc0UDg1Ly84bjdseDR3Wk5UVTBFZzBGQ29SQ2lLQktOUm8zTlBidmRqcUlvRkFvRlJGR2twYVdGUTRjTzBkUFRnOFBob0ZxdEVvbEVlUFRvRVlPRGc4VGo4V2NFWUVFUW5oR0FkVmVKTGdMcjhUcWxVb2xxdFVwTlRRMzc5Ky9udTkvOTdwNXlhSFowZFBER0cyOHdQVDNONU9Ua00vK3VxaXJ6OC9NdmpGamVMdExwTk5ldlgyZHNiR3pWNy9INWZKdzhlWEpMM0hwcnBiKy9uNjZ1THNMaDhJNTJRRzRWcVZTS3p6Ly9uQTgvL0pENzkrOHpOVFhGek15TTBSbTdWaVJKWW1CZ2dIL3piLzROMy8zdWQ1OFJZemNUcTlWS1kyUGppZ0x3Mk5qWWF5VUFBeHc4ZUpDMzNucUxHemR1RUkxR2lVUWlsTXZsSGYzYTZ2VjZzVmdzM0w1OUcxbVdhVzl2NTczMzNzUGo4V3o0YlMwc0xQRFJSeDhaenQvdHdPRnN4aDg4ZzhkN0VJczFnS0pXRml0Zk5IRllWVlVVdVVndS9Zam83Sy8vajVua3paOXR5NEdhdkFvaDRCQndHbmdET0lJVy83eXVZbXVQeDBNb0ZLS3hzWkhhMnRwTjIyVDErLzMwOVBRWWpwOVFLTVRWcTFlNWZmdjJtamNRRi9HaWllSlZZQnFZUU9zRU5rWGd6VUh2V3Q0NEI3Q3NVQ3BWS1JRclZDcUxTUW5tRnNNdVI5dklYaW9BVzAwQjJNVGt0VU1mL2w4dEJTZVR5VEEvUDgvOC9Ed2pJeVBjdTNlUCt2cDY2dXZyYVdwcW9yT3prKzd1YnJxN3U1OUpZdG9ydkl4NzJHYXo0WEs1Q0FRQ3l6cUFkV0YzYWF4MExwY3ozTUM2Q0p6TDVZeFk2WHcrVDZGUVdOWlJyTytiNlM1Z204MW1kQVY3UEI0Y0RvZHhmTG9Jdko1eisxUXF6YVZMVjhubEtvUkNZVHlPTWdGSGlwQzlqb0JWd1crZEoyQ2R4VzlMNExCV1FCSTBzZlRwOXNxZGlLcUNucmhrY1lDekZ0eGg4TlNCcXg0OFlhM3JWN1FzT242VkZWSlpUZGJDRnVyblpnVDBObUVLd0d0Q3hWQjNuMzZmRVNRRTBib1lEV2Rpc25Nb2w4dEdUMFkybTJWMmRwYWhvU0ZtWm1aSUpCTE16OC96Nk5FanhzZkhqZW00cnE0dXpwNDl1NkpEOG5Va204MXk3ZG8xZnZLVG4zRHg0c1YxaTcvd1JBU1puWjJscHFZR2o4ZUQxK3RGRUFSaktoRTBFVVZWVlVxbEVxSW9VbHRiUzN0N08wMU5UZGhzTm1SWk52cEVabVpteUdReUt3ckErb25FVXNjdlBKbVFYT29HQnMzZGN1Zk9IVU9vZWYvOTk3Zk1PYmlaQkFJQnpwMDd4L1hyMTFjVWdBSERDYjhUeWVmelRFMU5QVGNLMk9QeGNQRGdRZHJiMjdmd3lGNk5uZXhPM2tyaThUZzNidHpnODg4LzUvTGx5OXk2ZFl1NXVia05xNG80Y09BQWYvQUhmOEMzdi8zdExSVi9RWHZkcWEydHhlLzNHNjlCOEdUSTRrVXg1bnVOY0RqTXlaTW5hV2xwTWQ1cjF4TC90WlUwTnpmVDI5dUxLSXBjdjM2ZHYvbWJ2NkcydHBaejU4NXRhTHg4c1ZqazAwOC81Yy8vL00vNS9QUFB0NlVmV1pLYzFQaVBFUWkvaWQxUmg0cTgyUDBMb0NJSUZoQ2drSjBnR2IvMGJ6T3BXNytVcS9ua2xoK295Y3NpQVI2MHZ0OHphT0x2SWJUNDQzV3B0VTZuaytibVpscGFXZ3gzeDJZaENBSStudytuMDJsc0t1cHgwQThlUENDVHlhdzFKbDBBL0VBbjJ2MHlCaVFYUDVvN2FodVBnaWEyYjloOXF5Z3E1WXBNcWJ6RUFXd3F3SHNDUVFDTFJjUnVrN0JZekFob0V4T1RsVmxZV0NDUlNEQXlNbUxVUDlYWDEzUGd3QUZPbmp4SlBCNW4zNzU5aE1OaDdIWTdGc3ZyS3dQWWJEWnNOaHNlajJmWi9wZStCNmFxcXJGdnFydURkZEgzNmI1Zy9ldDZ4N0MrWjZxZisrN2J0NCtPamc1Q29aQnhuK3ZWU0oyZG5VU2pVVU5FZnBYOTFtUXl3Y1d2UHVmNjlTdTRuRzVxYTRNME50YlQyaGlnTWVpajNsMmgwWkdteVpXaUpTQlQ1eGV4MlZlMnNPME1scmgzQlFGRXErYjZkZGFDdHdWOExVOWN2NUpsVVNTdUxQN2N0aDc0bm1JTDF4ZzcrY0c0cDNsOVgvblhnMW90cTJvVmRZV1NIVUdRa0NRbmd2amlEVEd6QTloa3N5Z1VDcVJTS2ZMNVBNVmlrWFE2emNMQ0F0Rm9sSFE2VFRLWlpHaG9pS3RYcnpJOFBMenE1bk81WEY0eFJ2aDFvRnd1azA2bktSUUtSZ1RQNk9nb0gzNzRJZi84ei85TU5CcmQwTnZUSnhGZjlucGpzUmlEZzRNYmVnd3JvU2dLTXpNei9QS1h2eVFhamVKeXVYanZ2ZmR3dTkyYmZ0dWJpZFBwNU1DQkEvVDI5dkxsbDErdStCd29sOHRNVGs2U3orZVhSVzN2QlBTVGplZWhSMERYMU5SczBWR1p2Q3JGWXBIaDRXRysvdnByUHZqZ0EzNzcyOSt1MiszN05GYXJsVE5uenZEZDczNTMyNFkzUEI0UGRYVjFCSU5CSTUwQU1FNmNYeWRFVWFTbnA0ZDMzMzJYZS9mdWtjL25OMlNZYURNSmg4UHMzNzhmcjlmTHdzSUN2L3ZkN3dpRlFsU3JWVTZkT3JVaFBlbVpUSVl2dnZpQ24vemtKM3o2NmFkYjN2a0xJRWtPYXZ6SDhJY3U0UGJzUXhSdEtNb1RFVm9iN2xTcGxPS2tFMWRKeGEvOHZGSk9tcjIvTzVzdzBJTVcrM3dPT0F3MHNBSGliMWRYRjRjUEgyYmZ2bjFiR3FuZjJ0cHFSRUhiYkRhY1RpZDM3OTVkYjVwQ0VLMFBPSUxXQ1p3RTR1cy9ZcE9uVU5ENmxqZnNCVTVSVmFwVmhVcEZRVkgwdllYWDc3eHR6N0dZMm1tUlJHeFdYUUEyLzY0bUppWXJzMVJFekdhenhHSXhrc21ra1JEWDFkVkZYMThmUFQwOWRIVjFiY2phZlRlalIybXZoTVBoTU9vOTlQNWd2U0pOZHcwdi9YeHA3N0F1SW5zOEhob2FHbWhzYkZ5V3BDaEpFbjE5ZmZ6UkgvMFJ2YjI5VEUxTk1URXg4VXFSMExJc2s4L255T2R6SklocGlYWXpNWWJEWVlKZUIzNUhscUF0UjlnbE05QUZaL29VMmhzRW5IYnhpY3EzazZRSVpiRzdWeEJBY21xOXZ1NDY4RFJvWGIrdVd1MXJvclRZQzF4bFovMEN1eHRCQUVrU3NGcTJ6SkNyQjVLYmc2WmJqQ2tBcndGWkxzU3JsUXlxVWxrTWc5WVJFRVVia3RXcjlZVzlBRk1BTnRsb2tza2swV2lVUjQ4ZWNlWEtGU1luSncwQk9CS0pFSS9IalVWS1BwOS9vZEFnQ0lLeHlmUzZvQytZaDRlSHVYWHJGdVBqNHlTVFNXS3hHRE16TTR5TmpSR1B2MzU3WXFxcUdzNHZsOHZGdSsrK3U2dW5Sd1ZCb0tXbGhYMzc5bEZmWDgvVTFOUXozNVBKWkxoejV3NERBd1BzMzc5L0c0NXlkVEtaekF2ZGNUYWJiVSs0dGZjcTZYU2FTNWN1OGJPZi9Zd3Z2L3lTOGZIeFRZa2NEd2FEOVBmMzA5dmJ1MjJ2NVZhcjFZZ2lTNlZTeGdhRm9pakd5Zk5PamtEZWFKcWJtL21UUC9rVFB2amdBeU9LYkNkanQ5dHBhV2toR0F3eVBEeE1JcEhncHovOUtYTnpjL3o0eHovbU85LzV6cm8ya3BMSkpCOS8vREgvNFQvOEI3NzQ0b3R0RVg4RjBZYkhlNGh3MC9meEJrOGdDRFpVZGVseENBaWlsV281U1NwK2hjVEM1Lys3UW03RTdQM2QyZmlBZmpUWDd4azA4WGZkemw5QkVHaHVidWJFaVJOR3pjSldEbHBKa2tSalkrT3lxTUZxdFdxczk5ZUlCV2dIQm5qU0JaekUzSnpaRElyQWhzVStxQ3BVcXdyVnFvS3NDOEN2ejJuYjNzVFlJaElXTjJVbExKTHBBRFl4TVhrMVptZG5pY2ZqM0xwMWkzQTR6S0ZEaHpoejVneW5UNSttcjYrUGNEaHM5Tmlhckl6dUdBYWVjUXJySDUrK2dEYndhN0ZZbnFrR0VRU0JucDRlNnVycU9IdjJMUGZ1M2VQV3JWdmN1WE9IMGRGUkZoWVdLSlZLUnZTM25zcjNmR1FTMFJuU3FTZ1Rrb2hGVUpERUtpNnJ6SHhDd202WGNMbFVtb01xa21YUnhLWnU5eHZLVTY1ZnlhcEZQanVDVU5NRXZsWXQrdG5xMXVLZVVVSFdBMVJNSFdWRFVMWC9hSDNXSWxicmxxWFlLbWlEa09ZNXhoYXplM2Z2dDVGS09UNWFMc3orcjRwUy9yOGhMSCt6RkFRckZvc0xTWHA5TmpKTnRnNVpsZzNuWHo2Zkp4cU5NakV4d2NURUJORm8xT2lzbUo2ZVpuQndrRmdzWnZSU3JDVmkwbUt4WUxQWmRyWFE5enhLcFJMSlpKS3BxU2tlUG56STJOZ1lxVlNLZERyTjNOd2NvNk9qUkNJUm8vZGpwOGQwYmpiNWZKNVBQLzJVcHFZbTJ0cmFkcHdvK3FwNFBCNDZPenZwN094a2ZuNyttYjl2TnB2bC92MzdqSStQNzZqZlZaWmxjcm5jQzZPQy9INC9UdWU2NmcxTk5vbElKTUpISDMzRTMvM2QzL0g1NTUrenNMQ3dLYmZqY0RnNGRPZ1FmWDE5bTlaTitUSUlna0F3R0tTaG9RR3IxV284ZGxWVkpaL1BrOGxrWGlzQjJHS3hjUERnUVJLSkJOUFQwN3ZpZDI5dGJlVzk5OTRqbVV6eStQRmo0dkU0SDMvOHNiRko4YzQ3NzlEVTFQVEsxNXZQNS9uZDczN0hmL3lQLzVGUFAvMzBoY2tHbTRYRDJZd3Y5QVkxZ1dOWWJRR1U2dEthVGdFRUFWV1JLZVFuU1VhLytMOWswdzkrcmNnVnN4OWpaeUlBZFdqZHRxZlJuTDhIMmFEWTUzQTR6T0hEaHpsOStqUkhqeDZsc2JGeHk1L0RGb3VGeHNaR0pFbENWVldLeFNLcXFqSTBOTVQ4L1B4TGJoZytndy90UG9zQ2syZ0M4RHhhSjdESnhxQ2c5U3N2WmhldVg2cDlFZ0V0VTVWWHFhZ3kyWjBJSUlxYUNDeUs1aC9WeE1UazFkRFhCOFZpMGRqamlzZmpqSXlNc0gvL2ZnNGNPR0RFRkV1U1dXSDRJblRYOEhvRmM3dmRUbDFkSGVGd21OcmFXbHBhV2podzRBQXpNek5NVDA4VGk4V0lScU5Hdi9QTG1VOWs1RW9CdWFMRmpBQmtFTGd6V1VQM3RKMjJoaEpoVHhxblZVVnJSOW5PdjdlNjZPU1ZGNk11bk9BS2dpc003dnJGUzJoUi9KVVdIY0xLbHBiVXZrNElnb0FrQ2xpdFcrb0FOc1hmYldCdnFqcWJUS1djbWcvVW5odVdxMDg3ZFZRekF0cGtRNUJsbVd3MlN6YWJOVG9sY3JrYzBXaVVXQ3hHSnBNaGxVb3hPVG5KL2Z2M3VYZnYzbnFqMzFaRWo1ZmJUdUZnSTZsVUtpU1RTUktKQkFzTEMwUWlFYWFucDNudzRBRVhMMTdrN3QyN3UwTGsxYWNKOVlXNlBvRUlHQXRTVVJRUlJSRkprb3p2dDFxdDJHdzJIQTRIZ2lBWTBUVjZwSTNlYmZJOG90RW9uMzc2S1EwTkRkanRkam82T25idDFLZ29pdlQxOVhIbXpCbHUzNzc5VEJkcHFWUmllbnFhaFlXRkhSV0ZYcTFXalhqMjFYQzczWFIwZEpnQzhBNmpVcWt3TkRURTczLy9lMzcyczUveDJXZWZiZXByanNQaG9LZW5oNGFHaGsyN2paZWxwcVlHdjkrUDFXbzFZcDlsV1NZZWp4T0pSS2l0cmQweHo3R3RvcnU3bS9yNitsMFJ3eFlPaC9sWC8rcGZNVFkyeHVQSGp3RnRTT2FUVHo2aFhDNlRTQ1Q0em5lK1ExZFgxMHRmWnp3ZTUvUFBQK2V2L3VxditPaWpqN2FsOHhkRTdNNTYvS0h6K0lJbnNWcHFVUFZlcVVVRVVRSUV5c1VJbWVRdHN1bDcvMXl0WkRhMkI4SmtJd21oOWRtZVJuUC9IZ0hxZ1hVVlZqc2NEdHJiMnpsNDhDQm56NTVkNXY3ZHJuV1E3dWhSVlJXSHc0SFQ2YVJTcWF5bnBpU0U1cHFPb3UwaDNnQUdlYktmYUxJK0ZDQ1A1Z0xlTUFHNFZLcFNLRlNwVm1VdFJaR051R2FUN1VWN0R4SkVUWEFRZHVlcGxvbUp5UTRpRW9tUXpXYTVlL2N1YlcxdERBd004TVliYjFBb0ZPanM3TVRwZE83YWZaM2RpQ0FJdExhMkVnNkhPWGJzR0xsY2p2bjVlV1ptWmhnZEhXVm9hSWpCd1VIR3g4ZVpuNThubjg4YiszNjYrL2dGdDBDdTZtVW1IMmFoVktMRUhFNHBwUW1wOG9Zc1FWNFIxWENkSW9nZ2lZdmliMGpyK2ExcDBUNjN1a0JhWExJcmkwWlJVenZaVkNSSnhHTFpzcUVBRVcwQ3dYeXgyV0pNQVhpTlZLdVphTFdhUmxHMDJENUJFRUJWRVFRUlVYdzVCN0NpS01peWJFNWJtUmhVcTFYbTUrZVpuSnprMGFOSDNMMTdsNFdGQmFyVjZqSUJPSi9QVTZsVUtCYUxaTFBaVGRzMDFlSWdMSHZpTVpyTDViaHg0d1pmZmZVVkR4NDhZR1ptaG9XRkJXS3hHTmxzbG1ReXVWYkh4SWFnMzlkdXR4dWZ6NGZGWXFGYXJhSW9pdUhndHRsczFOVFVHTk9DTHBjTFFSQU1sN2VxcXRoc05rUDBkYmxjT0oxT2FtcHFDQWFEZUwxZW5FNm5JUXFXU2lWeXVSeXBWSXI1K1hsR1IwZTVjK2NPdzhQRHoxMVFQbmp3Z0wvNW03L0JicmZ6b3gvOWlNN096cTI2bXpZY3ZZdnpuLzdwbjU0UmdCVkZJWlBKa0V3bUtSYUxPMFpNMWQ4N252YzNhbXBxb3JlM2Q5ZDNOZThsVkZYbDY2Ky81ci8rMS8vS2h4OSt5TmpZMktZUG5PaVQzOXNqckMwbkVBalEwTkJneEdpQjlsaU9ScU5NVDAvVDNkMjlLNXl3RzBsdGJTMCtuMjlYL042U0pISHc0RUVPSGp5SXorY3pYaTlMcFJKZmZmVVYwV2lVYURUS24vN3BuOUxSMGZIQzY1dWVudWFmLy9tZithdS8raXV1WHIyNmJZOVJ1Nk9CVU9OM0NJYmZ3ZWx1UlJBc3FNcnlDR3BCa0ZEVktybk1JMUt4eTM5V0xrYnViOHZCbXJ3SUNmQUF2V2lSejIrZ0NjSHJjdjdhN1hiOGZqK3RyYTBjUEhpUTQ4ZVBjK3pZTWJxNnVnZ0VBaHR5NEd0RkVBVHE2K3VOb2I5Q29VQWlrU0NYeTYyMVg5MkMxcEY4RkUzMExhSkZRczhEcHVOOS9lZ0NjQUV0L203ZG0xL2ErN3hNb1ZDaFVqRU5GWHVSMTJ3MnpzVEVaQlBKNS9Qazgzbmk4VGlaVElaWUxNYlkyQmlIRGgyaXY3K2ZmZnYyNFhLNXR2c3dYeHNrU2NMdGR1TjJ1d2tHZzdTMnRoS0x4WXpPNXFOSGp6STNOMGNrRWlHUlNKQklKSWhHbzhUamNaTEpKTGxjam5LNXZPTGVrQ0FJQ0xZYVpGc2JWWmNEdFNZTWpsRW96b0ZTQWtIU0xsdUI3dmhGMVZ5OUZoZllmWnJnYTNUOWhzRG0xc1RocGQ5dnN1bUlvb0JGMnJMRmhnallNZlhJTGNlOHc5ZUlxbGJ5Y2pXSElwY1FCUDF1VkJGNGVRZXdYaFMvRjhRMWs1ZEhqMi9XNDVwbloyY1pIeDgzSnZKU3FSUUxDd3RNVFUweE1URkJPcDFHVVJURHBibVZDSUt3ekdtNkc2aFdxMFpNdHU2U2Z2ejRNU01qSXd3TkRmSHc0VU9tcHFiSVpESWJMdmphN1hZa1NUSXVnaUFZY1lHTmpZMEVnMEhjYnJjaHpDNjliM1czcnNQaHdPVnlJVW1Tc1pDclZDcklzbXowdmZsOFBtcHFhckRiN1FpQ2dDekxocEJrc1ZpTTdtYTczWTdkYmpkRVlQMDI5VWh2V1pZcGw4dms4M2tTaVFTUlNJU3hzVEZHUmthNGRlc1cxNjVkWTM1Ky9wbmZzMUtwY08vZVBYNzYwNThTREFieCtYd0VnOEVOdlMrM0NvZkR3Y0dEQnpsLy9qekpaSks1dWJsbC81NU1KbGxZV0NDWlRPNFlBVmlQSDNvZXdXQndXMklwVFZZbUhvL3orOS8vbnAvLy9PZjg3bmUvWTNwNmVrdHV0MUFvY1BmdVhjYkh4M25qalRlMjVEWlhvNm1waVo2ZUhod09oL0UxVlZWSnBWTEVZakhLNWZKcjkzalZFeloyaS9OWmo2NCtkdXdZbHk5Zk51S2FpOFVpdDIvZnBsd3VNejgvengvOTBSL3gxbHR2clpvZU1qczd5ei84d3ovd2wzLzVsMXk1Y21WYk9uOEJMRllmM3VBSkFxRUx1R3A2dERsNHRjb3k5NjlnUVZWbFNvVTUwb2xiL3phYmVmQ0JySmpSenp1VU1OQURuRVdMZlQ2TUptYXVTL3h0YjIvbjBLRkRIRHAwaUFNSER0RFYxVVZMU3d1MXRiVWJjOVFiUURnY3BxK3ZqMWdzUml3V0k1ZkxNVEl5c3RaSWRTL1FoU2I0Sm9BRk5PRnlBVk1FWGk4S2tFTVRnRGZrSkVSVm9WQ3NVaWhXcUZUMHpWSmg4V0p1bk81dXRGaEd5U0lpaWVLdVdTdVltSmhzSEpJa0lTNCsvNWU2UDJIOWlaTGo0K05FbzFGdTM3N04vdjM3ZWZ2dHR5a1VDdlQzOStQeitUYmk4RTNXUUcxdExUVTFOYlMzdHh1RDNKbE1obWcweXVUa0pLT2pvNHlQanpNK1BzN282Q2l6czdOa3M5bG5ya2NRQldvOE5kUTFkaEZzNzhMZW1BS3VRK3dpRkdkQWxiZEFBRmFmTEVVRVVldnp0Ym0wdU9lYVpxM3YxeFhVWEwraWRmRjc1VVhIcjdtRzJRb0VBU1JKcTV2WWlwdERPeSt6czcwNTVLOGxwZ0M4UmxSVnFhcHFGVldWRFFGWTFTT2dMVzRrOGVVY3dDL3FjRFRadlpSS0pUS1pETGxjamxLcFJENmZKNWxNR3BzenV0QTdQRHpNblR0M21KaVkySEtCOTBXSW9yZ2pITUNxcXBKT3A4bGtNbFFxRlN3V0M2SW9VcTFXa1dYWkVIMXp1Wnh4SDJjeUdTS1JDUGZ2MytmcTFhdU1qbzV1MlBIWWJEWThIbzhoc0hxOVhrTUl0ZHZ0Mkd3MmJEWWJvaWdhaTdmdTdtNGFHeHZ4Ky8xNHZWNjhYdStPRVR0cWEydHBiVzAxL2orZnovUHh4eC96Ny83ZHYrUFh2LzcxaXB2enFxcHk0OFlOUHYzMFV3NGRPb1RQNTl2Mng4bGFDUWFEdlBmZWU0eU9qakkvUDcvc1pDcVZTakUzTjBjOEhxZXhzWEViai9JSnV0UG5lUnRCTHBmTGNKS2JiQyt6czdQODlyZS81Yi84bC8vQ3hZc1h5ZWZ6VzNiYjVYS1pSNDhlTVRvNlNybGNYdWErM1dxQ3dTQTlQVDM0ZkQ2bXBxYU1yK2Z6ZWRMcDlHdTdIdHB0RzdvSERoemc3YmZmNXRHalI4OE16RHg4K0pDSER4OFNpVVFRUlpGejU4NHRFL3hMcFJJUEhqemdzODgrNDcvKzEvL0twVXVYdHZyd0RTVEpoVGR3bkdENExSeXVWZ1JFVktYTTA1c05naUJSTHNkSXhyOG1rN3o1bTBvNTlleFVsTWxPd0ljV1hmd0dtdnYzTU90MC9qb2NEdHJhMmpoeDRnUnZ2ZlVXSjA2Y29MMjlIWS9IZzhQaDJIRnJudHJhV3ZyNyswbWxVa2E5eDlEUTBGbzJpQVhBRDNTaU9ZRVRhRzdWTWhEYnlHTitUU21nT2FzM2JBcTFWS3FTTDFSTkIvQmVZbEhIdDlrbFhFNHJkcHVFV1FOc1lySTI5T0Y0ZmVCZVA1ZlcvMDMvLzVYT3NmWFA5ZmRTVlZWWHZPZ0pYYnBBdTVKSXEzKys5RHBYUy9XU0pBbXIxV29ZQi9Sek9EMzVyVnd1R3gvWE9raFpyVlpKcFZLa1Vpbmk4YmlST0hqcTFDa09IVHBFZTN2N2pobUFmOTNROXhOcmFtcU1yeW1Ld3Z6OFBEMDlQWVp4NDVOUFBqR3FBNTlHRkFYcXdnSDY5eDlpMytIenVKb3FrUEZCSlFyRkRGU3ptdE1XMkpTZUFWWFJSR1pWQmNtcWRmbzZBMDljdis1NmNOV0MxUWtJaTkrcmk3OG1XNGtvQ2xnc0lvdkJ0cHVOQlhDd3ptb2VrMWZIM0JsZUs0SmdFWVNuTnVCVkJVRzBZTEg2RUtVWHgyYm9pd1NUdllXcXFzek16UERnd1FNalRsZVBrRTBtazBTalVaTEpwTkhqcWJ1QmR5SkxGN1hidFVtZFNxVVlHeHZqMnJWcjNMMTdsMVFxaGR2dHhtNjNrOHZsS0JhTFZLdFZJdzQ3bVV3U2o4Y3BGQXFVeStWVkYwUnJ4ZS8zYytMRUNRNGNPRUJEUXdPaFVJaGdNR2hFTEQ4dEFPdXVYWmZMaGQxdTN4VzlLaTZYaXdzWExqQThQTXpvNkNnUEhqeFkwUzFkS3BVWUh4OW5iR3lNL3Y1K1BCN1BOaHp0K25HNVhCdzVjb1QrL240dVg3Njg3UGxZcVZTWW41OW5ibTZPbnA2ZWJSWFFkUFNUMStjOUp6MGVqOUczYXJKOWpJeU04UGQvLy9mODdkLytMWGZ2M3QyV0laOWlzY2pjM0J5enM3TzB0N2R2K2UwdnBiR3hrWjZlSG9hR2hvejdJcGxNRW9sRWRrUk10Y21MYVc5djUvang0d1FDZ1djRVlKMS8vdWQvQnJRQmhMZmVlc3ZZUFByeXl5LzV5Ny84Uzc3NDRnc21KeWUzN0ppZlJySzQ4QVZQVTl2d0hqVytJMWdrTjZqTGUzKzErREVWUlNsUnlJNlFXUGo4MytTemd4OXUyMEdicklhQTV2emRoOWI1ZXc0NHlEckZYNWZMUldkbkp5ZE9uT0NOTjk3Z3pKa3o5UFgxN2VoWVJMdmRUbE5URTBlUEhqVlNneFJGSVJLSmtNbGtYdlhxUkNDSTVxZ3Vvb21XVVNDT2FjbFlEd3BRUXJ0UE4yd1RvRnhSS0pWa3FsVmxzUVBZVkFwM05hcXFQVkpFQVp2RGdzZGp4ZW0wSUpnS3NJbkpTMkd4V0xCYXJjYXd2c1Bod0dxMVlyUFpzRmdzUm1XV2ZrNnRpNjI2OFdHcENMeVNBTHkwZzFVWGZhdlY2ckxMVWpGNHFVaTg5S0pYdWhXTHhXWDd3bm9LbjlQcGZNWTRzRFJOTUpmTElRZ0N4V0p4M2NsMnlXU1NxMWV2R2c3VHViazVMbHk0UUY5Zm55a0M3eEJFVWFTaG9ZRkFJRUNwVktLdHJZMnBxU211WHIyNjRoQ0JJQWc0YkJKT2x3dkJIa0lSN1lpV2crQjRDTTRGS0l5RFVsZ2NPQkkzY0hXMzVJcEVpK1l5dHRXQU93emVadkEwYWtLdzd2cEZYZUw0TlplWVc4WmlIN01nQ0VpaWlOVWlJb29Dc3J6cGZ3TVJUZncxOWNndHhyekQxNFVlcjdTSXFpS0lWcXkyQUJacnphby9wV01Ld0h1SGZEN1A3ZHUzdVhuekpqTXpNOFJpTWFhbXBoZ2JHMk51Ym81OFBvOHN5eFNMeFhWSHRXd2xzaXlUeVdRb0ZBcWJ1dWxWcVZUSTUvTVVDZ1h5K1R4emMzTU1EUTB4TlRWRlBCNW5mbjZlNGVGaHhzZkh5ZWZ6Mk8xMnJGYXI0WERRbjB2bGNubERYR1Q2eVlIVDZhU2hvWUdPamc1YVdsb0lCb09FUWlHNnU3dHBiVzBsRUFqZzlYcHh1Vnc0SEk1ZDUrUjZIb0ZBZ1BmZmY1OWlzY2kvLy9mL25wR1JrUlcvcjFRcWtjMW1kL1ZybVNBSXRMUzAwTkhSZ2QvdmYyWWdZM1IwbEx0MzczTGl4SWtkSXdDL2FKREFaclBoY0RoMnhjREJYcVJRS0hEMTZsVis4WXRmOE9HSEgzTG56cDF0T3haRlVaaWRuV1ZzYkl5bXBxWnRIUXBvYkd6ay9mZmZaMkppZ3V2WHJ3TVFpVVI0OU9qUmxqcWpUZGFPMVdxbHRiVVZ2OSsvNnZma2NqaysvUEJEaXNVaWp4NDlvcjZoZ2ZuNWVUNzUzZS80N0xQUGlNZmpXM2ZBVHlHS2R0dzFmUVRydm9rdk9JQkY4Z0VLcWlxemRFMHZDQklJVUNyTWtFbmRKWjhaL0VTV1MydkswelhaVkdyUjNMNm4wZHkvUjRCNjFqRlY3bkE0Nk9qbzRPelpzM3pqRzk5Z1lHQ0E1dWJtSFMzK2dyYVc4ZnY5OVBUMElJb2lxcXBpczltNGVmTW1nNE9EYXhteXNRSXRhREZ0V1dBS1RRUmUyTmdqZjYzUUJlQVNHeWdBYTNVeE1ySnBBTjViQ0NCYUpad09DemFyNlFBMk1Wa0pxOVdLdytFd2FyUThIbzhobW5vOEhweE9wK0dnMVFWZWZTOUpGNHFYaXNNck9ZVGhXUWV3THV6cVlxNmVTaWZMc3ZINVVqRlkvNW91K0JhTFJYSzVISWxFZ21ReVNhbFVNcjVQVVJRc0Znc09oOE9vOEZJVWhYSzViRlNkNmZWZmVwV01Ma0xyWDE4THVuRkNGNWd6bVF5VGs1TUVBZ0ZEU1BmNWZJUkNvUjIvSnRxckNJSmdQTjVqTVMyVVpiWDFuYW9vek0vUGNmM2FGVlRCUm50ck0yR3ZTSjEwZ0ZyUEFsaXpVSm9DV2RGV0pPdXUzRlZCV1hUOUlvQmtBM3NOT1B4YTVMT25YaE9CSFlFbHJsKzk2OWRrTzVFa0FZdEZRdG9hQVZoQ08wOHpuU3BiakNrQXJ3TVZSWXQ5TnY1ZlJSUXNXS3cxaUpMN2hUK3ZMeHBNZGovSlpKS2YvL3puL00zZi9NMnlhTXZkVHFGUVlISnlra1Fpc1dHTHZFcWxRaUtSSUovUFV5d1dTYWZUUkNJUm90RW82WFNhVkNyRjhQQXcxNjVkWTJob2FLMzlaYStFMys4M0l2M3E2dXFvcmEzRjdYYmo4L25vNnVyaTZOR2o5UFgxdlhhZHF2MzkvZnpSSC8wUnQyL2ZabloybGtLaDhNejN2RXdmN1c3QTQvSFEyOXRMZjM4L2tVaGsyY25UK1BnNFY2OWU1UWMvK0FHQlFHQWJqMUpEajdGNjN2MnVuOVNhQXZEV0U0dkZ1SGp4SWovNzJjLzQrYzkvVGpxZDN0YmprV1dac2JFeEhqNTh5TEZqeDdhMTA4bm44L0hlZSs5eCsvWnRidCsrVGJWYUpabE1Nanc4YkFyQXU0aTZ1anFPSGozSzRPQ2dzZm53Tk9sMG1sLzk2bGM4ZlBpUVVEak02T2dva1JVNjViY1dBWmVuaTJEZE8zZ0R4N0ZhQXlpeUh2c3NMUHMrQVJGRktaSExESkpPWHYremFpVTlzMDBIYmJJeWRzQU43T2RKNSs4aE5zRDUyOUhSd2NEQUFPZlBuK2ZNbVROMGQzZXZhNTJqYitZS2dyRHB0UXlTSk9IMysrbnU3amJTZTBxbEVvbEVndm41K2JVTVNicUFWalJYOVNTUUJPNmdPWUZOWGgwRnlLUDFBQzh0N0YwM1ZWbEJVY3g5aFQySHFQWHlpWktnRmZXWm1MeW02TWxxdXVDckM1SzY0T3Z6K1FnR2c5VFcxbEpiVzR2WDZ6V0VYMTBFMXBQYWRNRjM2VWVyMVdxY1h6OVBBTlo1WGlUMFVvZXZmcEZsMlJpY3oyUXlSbkpkSkJJeDRwZjE5STVxdFdvY2h5QUlWQ29WQ29VQ3Npd2JBcmJGWWxubStxMVdxNFp3bTgvbjE3WFBQRGMzeDZWTGwxaFlXT0RXclZ2VTF0Ymk4L253K1h3ME56ZXpmLzkrK3Z2N2NidGZ2T2R0c2pta1VpbEdSa2FZbXBwYU5lVkZsbVdHaG9aSUpwUGN1SG1IM3Q0Kyt2djdPTkJocDhmYlJJdnF4MWFkMDFLUTlNZUwvajd6MGcrZkpkK29SWkFBb2liK092eFEwNmk1ZmwxMTRQQ0J4ZmFVNjllY1hOdHV0QTVnRVl0VlJKSkUyTnc2RVFITkFXeFovR2l5aFpnQzhGcFJsYXFxeU5yRWl2R3cxY1JnUWJBZ1NTNUV5WWtpUHl1WTZPd0YwY1JFSTVmTDhlalJvejBsL29JMkJYajM3bDFHUjBkcGJtNWUxM1hwRzFDRGc0TmN2SGlSMGRGUmNybWMwWVVjaThXTU9PZDhQazhxbGRxZzMrTDVkSFYxOFkxdmZJUDkrL2NUREFacGFHaWd0cllXajhlRHkrWEM3WFpUVTFPenJNZndkU0ljRG5QbzBDR3VYYnZHNE9EZ00vLyt2TzZhM2NieDQ4ZDU5OTEzdVgvL1ByT3pzOGJYMCtrMER4NDhZR3BxaXE2dXJtMDhRZzA5Rm1vMWNYZHBYNUFwQUc4dHNWaU0vL2JmL2hzLy8vblB1WDc5K3JhTHZ6cWpvNlBjdkhtVDczem5POXNxQUFPMHRMUVlBelY2RExDK0VXS3lPNml2citkZi9zdC95Y1RFQkI5ODhNRnp2M2Q0ZUppeHNiRWRrUkxoY0xVUUNMOUpJUFFtTm5zSVZWRllhWWRERUNRVXBVd3hQMEU2Y2YzL2xVM2YvMENXaStZRGRPZWdPMVAzQVNmUm5MK0hnQWJXSWY2NjNXNDZPam80ZCs0Y0Z5NWNZR0JnZ0xhMnRuV2RyK25yMlZLcGhOVnF4ZXYxTHV0ejJ5eDBFYmhhclpKSUpGaFlXRUNXWmVQakt5S2k5UUZmQUNwQUZiaUJKbVNhdkJvS212aWJRYnN2Tnd3dC9sbXY3REgzR1BZU3FtcUdZcHJzZlhUQlU1SWtJOG5LN1hZdjI0dlJoVnpkM1Z0VFUwTk5UUTErdngrZnoyZUl2cElrR1c3WmFyV0swK21rcnE3TzJPZlJCOWd0RnN1bUQyYkJrOWhvUGZWT0YybDFFVGlkVGh2SHVqVFJUdDluMGQzQ2VzV1pxcW9VQ2dVanFVK1BoWTdINHlTVFNVUlJKSnZOcm5sL1JsVlY0dkU0Mld5V2lZa0pmRDZmY1g4M05EUXdNakpDTEJiajhPSERORFkyUHZPemxVcUZjcmxzZkZ6YVYxeXBWSmI5bms5SFpTL3RUNGJsand0ZG1IODZ0bHNmRE5CcjJQVGhBSWZEc1NWLzM2Mm1XcTB5T3p2TDRPQWcwOVBUSzVvMFFQdGI2QjNQNCtNVGpJK05NRG8yeWVQT1JqcUNDVHFkTW8wdUs4MEJoY2FBaXFORzBMeVpDdG9LWmVYVEpQM2FuM1Q4Nm44dUFiQ0lZUE5vRWMvdU9xM3IxMU1QZHA4bUNxc3FxT1hGNjlYWEt5TG11bVY3RWFVbHcyWmJjSE5vajdTOTkrVGM0WmgzK0pyUlgra1VscjlZYWErUVZxc1htejFNc1RDNWFvdTJIdkZoc3Z1eFdxMkV3MkVDZ1FDSlJHSzdEMmZEeU9melhMbHloZVBIajNQdzRNRlYzWStxcXBMUDU0MEp4Mkt4YUxnTjlBNlJRcUZBTnB0bFptYUdodzhmTWo4L1Q3bGNYaFpoc3hWNFBCN2EydG80ZlBnd25aMmRkSFYxY2Zqd1lWcGJXL0Y0UEhnOEhpUkoyckxqMmVsVUtoVWtTVnAxOGF6SEdlMEZBYmlwcVlrMzNuaURmL2lIZjFnbUFJTTJDWHZqeGcxNmUzdHBhR2pZcGlOOGdzVmlXWFZUMnVWeTRmZjdxYW1wTVFlTnRwQ3hzVEYrL2V0Zjg1ZC8rWmRjdjM1OVF6dHRsNTdZK253K21wcWFDSWZEUnN4M3NWaGtkbmFXa1pFUm90SG9NeitmU0NTNGYvOCtzVmlNdHJhMkRUdXV0V0MxV21sdWJxYXpzNU81dVRsajJsM3ZBZDRKTWVzbXo4ZG1zM0gyN0ZsKys5dmZ2bEFBQm5iRVd0ZnViQ0xVOEI3QnVtOWdkelFBQXFxNjh0cERFQ1ZLK1ZsaWtVLytVeXAyK1dmVmNucTdyY3NtVHhEUWhONURhTTdmazJndTREcldJZjdhYkRhYW01czVjZUlFNzd6ekRtZlBucVdwcVduTnIwZXFxaHByM3FtcEtkTHBOQTZIZzNBNFRIMTlQWUZBQUxmYnZhbnYwWDYvbjg3T1RvNGVQVW9pa1REV2F5dTlSN3pNMVFISDBFNTgwMEFNZUxoaEIvdjZvTjkvU2JRWTZBMmpVbFdveXByN1RBQnpMM1d2WUp4ZnFhdHRLWm1ZN0RwMDhVN3Y2WDFhdlBONFBQajlmdXJxNnFpdnI2ZXVyczRRZmQxdXQ1SGU1bks1bHJsNmRXRjBZV0dCUkNMQnhNU0U4ZjViTEJieCsvMDRuYzR0UHovVzA3c2tTVEppbFBYMzVLVU80YWNGVU4xUnZEUlNXdDl6U1NRU1RFMU5NVGMzUnp3ZUo1RklFSTFHU1NRU3hPTng0dkU0a1VpRVRDYXo1bjJhY3JuTS9Qdzg4WGpjRUZvZERnZVBIajFpZW5xYWJEYkwyMisvVFcxdExiSXNFNC9IU2FmVFJqK3hMblpuczFsU3FaVHh0VUtoUUM2WE0vWUJWNHJLMXRHZDMzcEU5OUorWjkzVjdYUTZjYmxjMU5UVTRISzVERWU0WHRmbWRydU43OTBMVkNvVllyRVlNek16SkpQSmwrcC9ybFlyVEl5UEVVK2t1SC9QVFkxVG9NbFhvTGRCNU9RK2tlT2RNbjNONFBZQW9yQmMxRFVlUGtzZlIzcUFpUVNpcW5VSVcreWE4RnZUQko0bWNJYzBNZGpxQk1HeTVPZFdPbDc5dXMzRnk5YWgzZWVDSUNBdTlnQ0xXL1BhS0tLZHM1bE9sUzNHRklEWGlLb3FWVVdwb3FyS1UxL1hua1FXbXgrYm81NVNjWGJWRFNaZEtEUFovWGc4SHZidjMwOXJhK3VlRW9DcjFTcERRMFA4OXJlL0pSZ01jdkxrU2VycTZuQTRITWl5YlBTVzZCSE8yV3pXaUxhWm41OW5aR1NFVzdkdU1UbzZ1cTIvaDl2dHBxNnVqbzZPRGhvYkd6bHk1QWpmK01ZM09IVG9rTmxmOGdKS3BSTHo4L09yUHE2ZlBoblp6VmdzRnJxN3V6bDE2aFREdzhNc0xEeXB1VXVsVWx5K2ZKbGp4NDd0Q0FINGVSSFFUcWNUbjgrM0pTNGpFKzA1TURJeXdpOSs4UXQrK3RPZmN1UEdqVFVKWG9JZ0dKM2llZ2VWUHVVZURBYU5UWS82K25wNmVucG9hMnN6QmxaeXVSeERRME5jdm55Wkw3Lzhrb2NQbCsvTEs0ckM2T2dvbHk1ZG9xMnRqZHJhMm8zNjlkZUV6K2NqSEE1anRWcXBWQ3BrTWhsdTNyekp3WU1IZDRUTDN1VEYrUDErR2hvYThIZzhPOTY5YmJFRjhJZmVJRmovTFZ6dUxoU2xBdXF6VWJpQ0lBRUMxV3FPYlBvK2ljanYvenFmRzd1MDlVZHNzZ29TbXRDN0gwMzRQUXYwb1hYK3Jtc1RJUlFLY2ZEZ1FjNmNPY09KRXlmbzdPeGNWNEpHS3BWaVltS0MrL2Z2OCtqUkkrTHhPSGE3bmRyYVd1cnE2bWhzYktTcHFZbUdoZ1pDb2RDbXBIVUlna0F3R0tTbnA0ZGlzVWk1WENhVHlSZ3VvbGRFUWhPQkR3Snp3RHhRWFB6Y1BKbDlOUXBvbmNvYk92MHF5d3JWcW93c0s0aW1YM1J2SUFDU2dDU0ppS0pnYm91YjdEcjA4eG45WXJGWXNOdnR1TjN1WlE1ZWZRaGZkL3pxY2NQNjBGUmRYWjNoUW5VNm5jOE1wcWZUYWNOTkc0MUdtWnFhWW1KaWdvbUpDVktwRkZhcmxVS2hZSnhYMWRmWGI5TTlvcUhmSCtzWmVwVmxtWm1aR1VPZzFhdlVjcm1jOFhra0VtRjBkSlNob2FGbmh0dGZCVjJrQmkyMUtSYUxrYy9ua1dXWlJDSkJPQnltVkNvWnJtRjluVkVvRkpiMUNldmlyKzVZTHBWS2h2aTlWQUJlZWg2OTFCV3VQNGIwNFFFOTRsdDNoN3ZkYmtNSTFwM2grbVBLNlhSU1UxTmp1TWoxR0hIOTUvWExTbyt2bllaZXFiZXdzUEJLNTJDeVhDV1ZXQ0NWMFBhNGhxd094dXRFSW5HVnlYbVZRKzNRM2dCTllXaW9FWkJjYU85RHNnSVZHUlQxaVN0WUFDeFdzQWJBNXRjdTlxRFc5VnZUQXE1NnNIdEFXRFRXcVBMaXVWY1ZCRm1MbmFZQ2Fna29MZjZiQ29pTFAyTzZncmNTVVFCUjFENXVBUmJBZ2RrQnZPWHM3RmUySFl5aVZFcUtuRWRSeW1ndmFVK2FnQUVreVkzRjZrTVVyY2pLeXVkM2VpeUp5ZTdIWXJIZzgvbjJwSmdveXpKZmZQRUZNek16SER4NGtHUEhqdEhZMkVnK24yZDhmTnh3K09vTFBuM1JWaXFWeU9mejI5N3JXRnRieTF0dnZjVzc3NzdMZ1FNSGpPaWYydHBhMCtuN0VsU3JWWEs1SEtYU3lrWUZmWkRsWlNZUGR3T2hVSWgzMzMyWEJ3OGU4TkZISHhsZnorVnlQSGp3Z0pHUkVkNTQ0dzJzMXUxZHI3eW8vMWVmaURiWlhCUkY0ZWJObS95WC8vSmYrT0NERDlZY2RldDJ1K25wNmVINDhlTjBkWFVaUXZCU0FkanI5UnB4YVBxLzZZTUFzaXh6L1BoeHpwMDdSMGRIQi8vMjMvNWI1dWJtbHQzRzdPd3NmL2QzZjBkTFN3cy8rTUVQTnVvdVdCTnV0eHV2MTJzOGoyS3hHSjkrK2lsSGp4NDFCZUJkUkd0ckt6MDlQZHk1YzJjdDNhSmJnaUJJK0FJRDFOYi9DNXpPbHNWdUs1WFZvcDlWVlNhZkhTSVZ1L3ovS0JSbWJtMzVBWnM4ajFvMDUrODU0RFRRRDRSWnAvanJjRGpvNit2ajdObXpuRHg1a3ZiMjluVUpzc1Zpa1ltSkNhNWV2Y3FWSzFlNGQrOGU4WGpjR09yeCtYeTB0cmF5Zi85K0JnWUdPSHo0OEtZTjVWaXRWbHBhV3JEYjdaUktKYUxSS09sMG11bnA2VlhYZFM4Z0RCeEZjN0hLd0dWZ2ZBTVArWFdnaUNZQ2IyZ0hzQ3lyRklzeStVSUZueXd2N3FNSzJvYXR5ZTdDK0pOcHZiOFdTVUFTUkxNQzJHVFhvSXU4K2puTFVwZW0xK3NsRUFnUUNBU29yYTNGNy9jYi83L1U1YnMweHRmaGNEeHo3cTBvQ3Nsa2tybTVPU1luSjVtZG5XVnVibzVFSWtFaWtUQkVZWDIvdFZBb0dJN2FvMGVQMHRMU3NoMTN6WVloU1JKTlRVMEVnMEZEU05YZHRQcm5tVXlHVzdkdThlR0hIM0x4NGtXbXA2YzM1TGIxd2VKQ29jQ3RXN2V3MisxVXE5VmxqdDZsb3E1K1RFKzdmSFhYODZzWUNaWjJOQzhkTHRERjRhVUNzWDdSdjZhTHd2cmpUaCtZRHdRQytQMStnc0Vnd1dDUVFDQmd1SWwzSXRWcTFhalJ5MlF5YTk2SHExWktqTStKcExNcWQ4ZFVPdXBVRHJZTG5Oa3ZjcndUT2hzRXJFNVk1dlJsY1o5RGNvT2pFZHlkNE5rSDdqWndOR2dpc0MyZy9idTBLRGVwTEFyQUpWQUxRQW1VQXFoWlVOUGFSY2tEbGNYenRLZkVYM01ac3ptbzJuOEVRQlQxWWJNdE1lVmFBQ2RnYmxadU1hWUF2RVpVcFpLVHEza1VwYlQ0MHJSOFJTNUlEaVNMQzRIVkJTWTk5dkJKWDQvSmJrV1BkZG1yZlp1NVhJNDdkKzR3TWpMQzdkdTNqWVdtN3Z6TjVYTGJmWWpQNFBQNU9ITGtDTysrK3k3bno1L255SkVqMU5YVmJmZGg3VHIwMkozVnhQSmlzV2dJLzNzQnU5M08wYU5IT1hUb0VGOTk5WlV4d0tDcUt0UFQwMHhPVHBKT3A3ZmRRZms4OUppazdSYXA5enF5TEhQbHloWCsrcS8vbXIvLys3OW5abWJtcFg3TzVYTGg4WGpvNk9pZ3Y3K2ZwcVltQW9FQVRVMU5kSGQzMDlEUVlNUlVMWTFFZXg3NlpMVGY3MGVTSk9MeE9MLzYxYStXOVhaWHExVnUzcnpKbzBlUCtNNTN2ck90MDgzTnpjMzA5UFRnZHJ0SnBWSlVLaFdqYjk1azl4QU9oK25vNk9EUm8wYzdVZ0NXTEI2OGdST0VHdDdEWGRPTElGcFE1UklyaTc4V1ZGVEtwUVZTOFN0L21VcGMrenU1bWwxVFZxN0poaU9pYlJSMEFnUEFLVFRuYndpZWM2TDFBdlNCbXJhMk5rNmRPc1hBd0FEZDNkM3IzdkJMcFZJTURRMFpBdkR3OERDcFZBclF6aGRzTmh1TmpZMUVJaEVFUWFDbXBzYllMTitNODBHWHkwVmJXNXNSaHhtSlJNaG1zMFFpa2JWY25RaTBvdjBOY3NBQ0VFVVROUGZHSk9EbXN5a09ZRVZSS1JZcjVISVZ2QlhaaklIZUN5d21aY3F5aXFLWUVkQW1PeE5kaU5QRnQ2WERxN1cxdFlhdzYvZjdqWXZ1OE5WN2UzMCtuMUZmdEJMSlpKSlVLbVYwM21ZeUdjUGhxZ3ZBOC9QenhHSXhveWRYZnovVkk1VVhGaGFNV09Sb05NckF3QUN0cmEzNGZMNnR2THMyRkVtU0RLRjlOZXJxNnJCYXJZUkNJYU16ZG54OGZOMUpsSlZLaGNuSlNTWW5KOWQxUGErS0hva3R5L0thYXVUMHg2YisyTlBqeHZYSWFGME1ycW1wTWVLalhTNlhNWHl0Zis1MnU3Zk5UQ0xMc3VGNFg5OCtyRXBWbGxsSXdVSUt4aU13RllWWVdtRTJLbktvUTZXalVhS3Azb1hMNDliaW5QR0E2QU5MTFRpYXdkME83aTV3dFlBOUJLSWJCRHRQUk55bFltNFZyZjJpakRZTGwwZWJKOHdDR2JSbFpVNzd1cHJYWE1LS0F1cmlNSnVzTHJxUXpUZkRqVWF5Q0ZndElwSmwweGVPK29QQ2dTa0Fiem1tQUx4R1ZGV1dGYVdJK3BTN1Z6VWN3QTRrU3cySXE5L0YrWHllVkNwRnRWbzFOK3IzQUs4NnZiWWJ5ZVZ5M0w5L2Y3c1A0NFUwTlRWeDd0dzUvdUFQL29EdmZPYzdPMXFzMitsWUxCYkRqYmdTeFdLUlhDNjNad1JnUVJDb3E2dWp0N2VYdHJZMkhqMTZaRHl2MCttMDBiVVREQWEzZFhEbmVhODFTMC9DVFRhSGZEN1B0V3ZYK091Ly9tdCsrY3RmUHVPMjFiSFpiTXVjdTQyTmpkVFgxeE1PaHpseTVBam56cDJqcDZkblE5M2FmWDE5L09tZi9pbnBkSnFKaVlsbEovaTVYSTY1dVRrV0ZoWm9hR2pZdHNkd2MzTXpodzRkd3VGd0dGOUxKQklrazBrcWxZcTVKdG9sMU5iVzB0VFVoTVBoMlBhMGo2Y1JSQ3R1NzM3Q1RkL0hHeGhBRk8yZ3lzWTYvZGtmRUNpWFl5VGpYNU9LWGY3SFluNzY5dFllc2NsejhBSnRhQjIwQTJndTRBYldjUjdyOVhwcGJtNm11N3ViQXdjT2NPSENCZnI3KzllOVhpd1VDa3hQVC9QdzRVTmpjREtaVEJyL3Jxb3F4V0tSc2JFeFZGVTFOaGl0Vml0ZFhWMTRQSjUxM2Y1cUNJSkFhMnNyQnc0Y1lIWjIxdGdJWCtQZ2hoZm9BdUxBQkZvZjhBUmFyNjNKaThtZzNYY2JHcDB0eXlxNVhKbDBwa3g5U1VhU0JNMEJMS2ltZTJhM0lXak9YMVFWdFZRbGw2dFFMRlpSOXZnK2c4bnVRaysxMEIyNytvQ3IzKzhuRkFvUkRvZU5TMjF0TGFGUXlCRFc5T2hkZldEWlpyT3RlRTZpS0FxVGs1TThldlNJa1pFUnBxYW1pTWZqeEdJeDB1azB5V1NTZERwdHhBdVhTaVhEVmFxN1JQVTlPa0VRbUo2ZVptaG9pTEd4TWFhbnAvbm1ONy9KaVJNbjFoWEZ2Tk5wYjIvbnZmZmU0K2pSbzR5T2p2TDExMS96MFVjZmNlUEdqVDIvZDdrU3VqTmNmK3c5M1QrdGYyNnoyWXpIc3g1RkhnNkhqVjdxaG9ZR3d1RXdmcjkveTgrblpWa21rOG1RVENZMzlQeXJWSUhIc3lySkhOd2RrOW5mQ2lmN0pjNGY5N0MvcHcxUGNCKzRlc0c5RDJ4TllQR0R4UU5XTDFoY2FKcmU4KzRMRytCQ214ZVUwUVRoeFNob3NrQUNsSGxRWmtHdWdGclduTU9JaXdOUjZwUGNsTmZ2b2JzNXFDQUtBbGFyaE1OaHdXclYwdVUyK2JWQlJCdmdOVGNydHhqekRsOGpxaW9YWmJtRUlpK2VPQXZDWXJTQmdncElGamRXbXc5UldIMFRjMjV1anRIUlVZNGVQV3B1ZHBxWWJCQ0JRSUR2ZmU5Ny9PdC8vYTg1ZmZvMFhxOTN1dzlwVnlOSkVoNlBaNWxRczVScXRVcTVYTjR6QWpCb2JwbURCdzh5TUREQTlQUTBtVXdHMFBxUVIwZEhHUndjcExPemMxdGpnWjUzb3ZFaTE3Ykorc2hrTW56KytlZjh4Vi84QlI5Ly9ESHhlSHpGNzNPNVhKdytmWnJqeDQvVDB0SkNPQnltdWJtWmhvYUdaZDFFRzQwb2l1emZ2NThUSjA3dzVaZGZMaHRpMElXSFI0OGVFUXdHdHkwbVhKSWtHaG9hbGsyc3k3Sk1LcFVpSG85dmV6ZVh5Y3RSVjFkSFYxY1hicmQ3MWVmQmR1SDI3Q05ZOXc0MTNvTllyRjRVcFl5cVBtdFFGQVJ4MFUyUUk1ZDZRR3orb3ovTHBSLzgwelljc3NuS3VOREUzd0cwMk9lRFFDUGFMdElySXdnQ2dVQ0FqbzRPRGg0OHlNbVRKemwwNkJCOWZYM1UxOWV2YXhNdm04MHlQajdPM2J0M3VYLy9QcU9qbzh2RTM2V29xc3I4L0R6Mzd0M0Q1WEpoczltTVRzVE53dVB4ME4zZHpmejhQSk9UazB4TlRSR0x4ZFo2ZFg2Z0F6aU9KbWlDWnVuWVdaTWdPNU04a0VLN3Z6YU1xcXlRSzFUSVpNdFVTbFVrbDlWMEFPOW1GamU0bGJKTXZsQ2xWSlpOQjdESnRxS2ZYK3BKVTNxVXN5N3c2dkc1b1ZESWlORmQ2dmpWWTNWWG8xd3VFNC9IU1NhVFJsLzl3c0lDMDlQVFBINzhtTEd4TVdabVpvakg0NlJTS2NQcCt5cmtjam5qTmdxRkFqNmZqOGJHUmhvYkcvZXNDQ3lLSXMzTnpUUTNON052M3o1cWEydXgyV3pVMU5Rd05qYkczTnpjV2lzaFZrU1NKRU5ZRlFTQmFyVkt0Vm8xemtXWEppYnF3dnpTeS9QUXhYejl1cForVkZYVmNIdS9DRVZSS0JhTEwrV0M5bmc4aEVJaDZ1cnFqSUdHK3ZwNlF4RFdhNW84SG8vaFpOOXNVVmgzQUNjU2lRMVBZS3BVWVNhdU1oT0g2UmdzWkJWU1paV0Zxb3NEdGk3cWF5L2dyQjhBWHJ4ZXJWU3FsRW9seXVVeWxVcUZjbG1MSmk5WEtsUXJXZ1M0b3FqSXNvSmN6YU1xS1VSMUFaRW9GaUdKUlNwZ3R5czQ3Ukl1bDBpTng0clZZd1dicEdrdlZVVzdtSzdndGJOWXUyeXpXWEE0TE5oc0VxS2dtYTAzRWQwRmJMTEZtQUx3V2xIbHF0WUJyTDFaQ2dqTGhsQkUwWW9vT2hDRTFSL1h3OFBEM0xoeGcyOSs4NXVtU0dWaXNnR0lva2h2Ynk4Ly9PRVB1WERod3FxaXBjbkxJNHJpaXIwN09ucVUvVjdwQU5icDcrL25tOS84Smw5ODhZVWhBQU04ZVBDQVR6NzVoRE5uem15ckFHeXhXRlk5c2RqcmtmVGJTYmxjNXVMRmkveW4vL1NmK01VdmZtR2NkSW1paU4xdXgrUHgwTmJXUmw5Zkg3Mjl2VWFuYlcxdExWNnY5N2tiSHh1SnpXYWpyYTJOOXZaMlJrZEhsNTNZVDA1Tzh2anhZNDRmUDc2dFBkSEJZSkQ5Ky9jek9UbHBpQ1FMQ3d0TVRrNVNXMXRyT3RoM0FiVzF0WFIzZCtOME9yZjdVSlpoZHpiaHIzMkRRTzFackxZZ3FsSmx0WjF6UWJDQUFNWE1DS25ZcGY4dGw3cjNqN0pjMmxCbm5zbWFjYUE1ZlE4Qlo5RzZaNXRZby9nclNSSzF0YlgwOWZWeDRzUUpEaDgrek9IRGg0M1g2TFZ1MWhXTFJSWVdGaGdmSCtmZXZYdGN2MzZkaHc4ZkVvL0huenRCWHlnVW1KeWNOSHJwOUM0L3I5ZTdLUU5jVnF1VmhvWUdlbnQ3ZWZ6NE1ZT0RnK1R6ZWFNZjhSVVIwUHFBRDZFSm1TVTArOFlNRyt4czNZT1UwUVRnbGZQbzE0Z3NxK1FMVlhMWk1xVlNGWWZUdXRpbFoxcGxkaDM2bjAxUktaYXE1SElsMHdGc3NtMUlrb1RMNWFLbXBzWncrM3E5WGtNRWEyaG9vSzZ1anJxNk9rTUk5bmc4aHB0Uy8vaTg5N1ZzTnN2bzZDZ1BIanhnY0hDUXljbEpJNmtpbFVxUlNxVklwOVBrY2ptalFtODlKSk5KN3Q2OVMydHJLMDFOVFp3OGVaS21wcVk5UHp6dDlYbzVmdnc0b1ZDSW5wNGV2dmppQzc3NjZpdUdob1kyUkFRV0JBR3IxV284Umh3T0I0SWdvQ2lLNGNyVzl6RDB2YU9sbmI2NjgzRHAzM2Vwc0t1cUtwVkt4WWlBMXIrbXgwSHJZclBlZ2J3UisxUFpiTllZUm5BNm5UZ2NqbVdSMEhxSHNGN2wxTmZYUjA5UEQ4M056WnQyTGl2TE1zVmljZFBUbCtaVGNIVlFaanFlNG1Fc3lkdmxNbWVkRnZxQ0RwelAyVUlvbDZza2tnbHQyQ0tSWEhSZFowaG5zbVF5R2JLWkxMbGNubks1UXJsU3BWUXFVeWtYa2VVaUZyR00xVnJCYVZkd09TSGdsNmdOaURRMVdHbHRkdFBlNnNYbGQ0SzBHQXV0bWlrbmEyYXhBMWdVQkd3MkNhZkRpczBtTFo0UG1YZnFYc1RjWFZzanFsb3RWU3RwWkhubEYxMEJDVkcwOEx6UjI3bTVPUjQ5ZWtRMm05MmtvelF4ZWIxb2FtcmluWGZlWVdCZ3dCUi9Od2hSRkxGYXJhc3VZRXVsRW9WQ1ljOEp3SFYxZFp3OWU1Wmp4NDRSaVVTTURkTHA2V2t1WHJ6STJOZ1k5ZlgxMjNhaWFMZmJWeFY0WDJhQzF1VFZVQlNGV0N6R1YxOTl4ZC8rN2QveTVaZGZHdEhvZnIrZjV1Wm12RjR2b1ZDSVE0Y09jZWJNR1E0Y09MQ3R3bGhyYXl1OXZiMWN1WEpsMlVuOXpNd01EeDQ4SUovUGIydnZWVEFZNUJ2ZitBYkR3OE5jdTNZTlJWR0lSQ0pNVFUyeGYvOStVd0RlQlRnY0RycTZ1dWp2NzJkeWNuS3RRdEtHWXJYWEVnaTlnVDkwSHJ1amNYR1RhZVdPTUwzM3QxU0trSXg5VFNweC9SOHFsWXpaKzdzenNLTTVmUStoT1g5UG9YVUFyMmxpVmhSRnd1RXcvZjM5WExod2dRc1hMdERWMVVWZFhkMjZYZ2NWUldGcWFvcmJ0Mjl6OCtaTmJ0eTR3ZERRRVBQejh5LzFmRWdta3d3UEQrUDMrMmxwYWNIbjg5SFYxYlVwTlJPaUtPTHorWXdocFpHUkVTT3llbzBidjE2Z0d5M0dUZSsxQlZNRWZoa1NhUGZaaHUyd2FSdmpNcVZ5bGVvbVd6ZE1OaGtCc0lwUVZTaVdaSkxwRXRsY0NWbmVXK2RhSmpzYlBaa2lFQWdZa2M1NmxITnRiUzMxOWZYVTF0WWFQYjk2cityeittaEIyenZJWnJPR29KdEtwWmlkbldWb2FHaVpBQnlOUmpmVW1mbzBpVVNDMjdkdkc4SjFRMFBEbmhlQUFhTjdPUndPR3gyM1hxK1hvYUVob3RIb2hrUy9Db0tBdytHZ3VibVpscFlXQW9IQU13NXJYYnpWaFdGNEl2WldxMVVVUlVHVzVXZEUzV0t4U0tsVU1weWxUMS8wbjlFRjRhVzNzL1E2OWFqd2w5bkRVbFdWWEM2M2F0K3V4K09ocWFtSmZmdjJNVEl5d3ZEd01CMGRIVFEwTkJBSUJLaXRyWDNoOCtKVjBQZDZ0aUxDTzU1UmlHZXlMT1JueWZHQW5Cb21WeFJwYTJ2QllyRlFyVllYOXdPTEZJc0ZvK1l5a2RBRTRFUWlZY1MwWnpJWjQvTmNMbWY4elVxbDBxS3dyeUpaTE5pc2RweE9CeTZYbGFEZlFtMUFwTG5SU2x1TG02NTJQNDJOTlFScW5RUzhkZ0orSjVMVENoWlJFNE5sOVlrcjJCeWFlakdxTml0b3RZalk3UkpXaTdoVjZUSDZxSnZKRm1MdXJxMFJSYTBXcTlYMC82REkrYi9XdnFJL2R2Vm9DeHVpNkh5dUF4aTBoY2RTZDVuSjdzVVVYYmFmRXlkTzhQNzc3NXZ4b1J1STdteGN6UUZjTHBmSjUvTjdLZ0phcDdXMWxlOS8vL3ZNemMxeCtmSmw0K3N6TXpOY3ZYcVZqbzRPbXBxYXR1WFluamRKYmI0V2JUenBkTnFJZmI1ejV3NWRYVjBNREF5d2I5OCs2dXJxYUc1dUpoQUk0SEs1alBpbjdYWmdkM2QzTXpBd3dELys0ejh1aStlZG01dmordlhyTEN3czBOall1RzNINS9WNk9YZnVIRjk4OFFYWHJsMER0RFZSSkJLaFhDNXY2SW15eWViUjF0YkdEMy80UXhZV0ZyaDQ4ZUsySG92RjRxYkdkNFJnM1RkeDEvUUJJcXE2Mm51VGdDQmFLSmNpSkJZK0k3SHc2UStMK2ZGTFczbThKczhsQVBRRFo5QzZmenZSWW9mWGRtV0JBSDE5Zlp3N2Q0N3o1ODl6OHVUSkRlbjduWitmNS9idDIzejU1WmRjdlhxVkJ3OGV2TklHcXFJb0pCSUpSa2RIdVhIanhyTE8rTTBZWkxSWUxBU0RRWHA2ZXBpZG5UV2NMZlB6ODJ1NU9oSHQ3eVFBYVNDSFZ1U1d3eFNBWDhROG1tQytZYnVUaXFKU3JhaFVxc3FpVUtnKzJWNHo5MEIzRjhKaWYzTkZZU0dhWjJJcXhVSXNUN1ZxQ3NBbW00c2dDRVlkUVRBWXBLR2hnYmEyTnBxYW1xaXZyNmV1cm82R2hnWkQ3SFU0SE5qdGR1eDJ1K0gyZkI3eGVKenA2V2xHUjBjWkdSbGhZbUxDNktYWEhiK0pSR0pWb1cwamtXV1pvYUVoWEM0WDNkM2RIRHAwaUdBd3VPbTN1MU9vcjYvbmpUZmVNUDdHbjMzMkdWZXVYR0Y2ZW5yTjE2bXFLdFZxbFZ3dVo3aGtEeDgrekpFalJ3aUh3OHM2bWZXTDd1UmRLczdxNHE0dURPcUNyNTVhb291eCtYeWVmRDVQc1ZnMFlvWjF3VmUvdnFYdVlOMjRrTTFtalFoeFhXQmVqNWtobTgweVBEeE1MQmJqOGVQSFJqUjZaMmNuQnc4ZTVOaXhZL1QyOW03WTQ4dHF0UklJQkdob2FOaVVHT2lWaU16SHVIajVHdkZFa3VucGFmcDZlM0M1bkJRS0JlTHhPSkZJaElXRkJWS3BGTmxzMXJpdlZ4UHFkU2YzczdIZEFtQkZzbGl4V2lUc2RoR25Benh1aVpvYUs2R2dnK1pHTDcwOXRSemNIK0pnZjVqV1ppODJydzF0V2FvdXVaZzhIMDBrRndRQmkwWEVicE93V01TdDJFYzBPNEMzQ2ZNT1h5T0tYQzdXK0E4bUZXV3hkMEpZS2dBTENKSVZTYlR6b3FFR2ZmT2dWQ3B0YXhTanlmclFvMHQya3VoaXM5bHdPcDFVS3BWTmp3ZlpDWGc4SGc0Y09NREJnd2UzWFhqWlM0aWlpTTFtVzlXTnAwOWk3alVITUlEYjdlYU5OOTdneXBVcjNMcDF5K2lKU1NhVGZQNzU1eHcrZkhqYkJHQ0x4V0lLWkZ0RXVWeG1ibTZPYkRiTHNXUEhPSDM2TkgxOWZVWm5wQjZIdHRQd2VEejA5UFE4VXpGUnJWYU5xTksydHJaTjZTRitHU1JKb3IyOWZaa0lQVDgvejhURXhFdDFNcG5zREdwcWF2ald0NzdGclZ1M3VITGx5cFpzUXF5RzA5VkpJUFFtN3BwZVJNbUJza3BLRHdnZ0NDaHlubngybUVUMGl6L0xaeDUvb2lqYmVQQW1TM0dnOWY2ZUJpNEErMWlIK090ME91bnM3T1RjdVhPODg4NDc3TisvZjBQRTM1R1JFZTdldmN2Rml4ZTVjdVVLang4L1ptRmhZVTNYTno4L3o4MmJOM0U2blVaWFlrdEx5N3FPY1RVOEhnK2RuWjNHSm1vMEdpV1ZTcTNuZGRjUDlLQ2Q5QmFBQ0JCSEU0Tk5WaWFEZGw5dDJPSlpWYUZhVmFoVVpHVFRBYnc3a1VUTnhiVG9aRW9rQ2d5TkpuZzRHR04yTG1zS3dDYWJnbDczcEVmWjZuSE9qWTJOdExTMDBOcmFhblNkNm03Z0YxWGF5TEpzQ0VDNVhJNU1Ka01pa1dCK2ZwNnhzVEdHaG9ZWUdocGliR3lNK2ZuNWJUUEU1SEk1aG9lSGVmVG9FVk5UVTdoY3J0Y3FSVTUzUDNzOEhsd3VGMWFybGErLy9ucGR2Y0M2b0pwTUpvMis1V3ExYXZUbnJtUXEwRjIvUzkyK1MwVmQvZjkxUVZGL1hCVUtoV2RFUmwzc2xXWFpFSkZ6dVJ6Rll0RndudXZSNHBsTTVwbTQ2YVU4TFZZL2I3aFBsbVZpc1JpeFdBelF6bk5iV2xvWUh4OW5ibTZPeWNsSnVydTdhV3hzSkJnTXJtdnYzK2wwMHRQVHc1a3pad0NZbUpnZ2xVcXQrZnBlamlMUitRbHk2UVhTeVNqRFE0TzRYQzd5K1R6eGVKeTV1VGtpa2NnejkrbXJvd0psNUdvWnVRckZJano5cTlVR25mUU54Wm1ZVERJOW5hR3J3MDlqZ3dlLzM0blBaOGZyc1NFNExKcEdJNnRRbGJYVjFzN1pxdDl4Q01LV21raE05KzgyWVFyQTYwQ3U1dU9LdlB5TlVWM01VUmNFSzZMa1FCQ2ZYMU9WeldhWm1KZ2dtVXlhcnNWZGpMNXdmanJhNUZXeFdDeEczNnJlNFNtSzRyTFA5UmRsL1FWYWtpUXNGZ3RXcTlVUVBoME9oN0dneStWeVBIandnTEd4TWJMWkxLcXE0blE2c1Znc3hsVGRWc1NIYkNaV3E1WGp4NDl6NU1pUmJZMDAzWXZvWFM2ckNjQ0tvbEFvRlBha0ExZ1VSVnBhV2poNDhDQ3RyYTBNRFEyaHFpcjVmSjZiTjIveTRNRUR6cDgvdis3bi9WcHdPQnkwdExSZ3Q5czNOUjdMQkdPNDRjQ0JBM3p2ZTk5YnQzQ3dsZFRYMTdOLy8zNkdoNGVYVGRNbmswaysvdmhqdXJxNmpKUEg3Y0RsY2huOXlPbDBta2drd3FOSGoxNkxvYVc5Z2lpS3RMVzFjZVRJRWRyYTJoZ2JHOXZ5Z1NCQmtMQTdtL0dITCtEMUgwT1NuS2pLNnErTG9taEZSYUNRSHljVisvcmY1ak9QUDVQbG90bkhzak93QWUxb3J0OVR3QkhBcytZcnM5bG9iVzNsMkxGanZQSEdHNXc4ZVhMZFhleXFxakk5UGMyMWE5ZTRlUEVpMTY1ZFkyaG9hRjJiYjdsY2pwR1JFWnhPcHhHcDZYQTRDSVZDNnpyV2xaQWt5VGpuVEtmVHhvRFQyTmpZZXRZVGRZQUxUZmdkUVl1Qm50Mkk0OTJqS0dndTZRMWJQQ3VLU3FsY3BWQ3NVcWtxaXpQcDV2N2Fya0lBTEFMSUNzbG9ubnNQbzF5NU5zUHRleEZtNXJLbXNHK3k0YmpkN21WT1gvM1MxTlJFUTBNRHRiVzErSHcrby92VWJyYy90NkpGbG1YUzZUU0pSSUpZTEdZSVg1T1RrOHpOelJHTlJvbEVJc1JpTVVPRTIrNGg4a1Fpd2VEZ0lMZHUzY0xqOGREYTJycHE4dGxlUkpJa2VucDZjRGdjK1AxK1FxRVFuMy8rT1hmdjNsM1g5ZWJ6ZVlhSGg2bFdxOHpQejVOTUpqbDkralJkWFYzUGZLOXVPRmk2cDZJN2VKYzZlWFdCV0hmMUxoVjdLNVVLaFVMQmNBWG44M2tqNVVSM3BlcDkwdnJqMldLeGtNL25VUlFGU1pLZWNTYnJINSsrdk16ZXFTekxqSStQazgvbkdSc2I0K0xGaS9UMzl6TXdNTUR4NDhmcDdlMWRzd2pzZERvNWV2UW9BTFcxdFZ5NWNvVUhEeDR3Tzd2NXk2NUNvY0RqeDQrWm41L0hhclVhOTNzdWw5dXk1M0lzWHVET3ZRanprU3czNzBSb0NMdHBiL1BSMHgxa2YzK0l2dTRnalUwMWlFNnJscVpoUnFHOEVJRkZFUmpCVkdiM01LWUF2QTZxbGRTc0ltc2JxazgvVFVSQlFwUmNXS3pQMzdQSTVYTE16czZTU3FWTUFYZ1hZN0ZZcUttcFdYUGZveVJKTkRRMDBON2VidlJrT0oxT25FNG5kcnQ5MmFKYkY0R1hDc0M2UVBlMEFCd09oOGxrTW56OTlkZjg3bmUvNC83OSsxU3JWVG82T25DNVhBd1BEek0wTkVRNm5kN0l1MlBMQ1lWQ3ZQLysrNXc5ZTNaYnhMaTl6SXNjd0lDeGNONkxlTDFlamh3NXdzREFBSE56YzhhRXN0NVZORHM3UzN0Nys1WWZsOXZ0WnYvKy9jYkc4MUplTktGcThtcm9Bb0lnQ0xoY3J1MCtuRmNpSEE3ejNudnZNVDQrenFWTFQ5SnQwK2swbjN6eUNhZE9uZUxVcVZQYmxwcGd0VnBwYm02bXU3dmJjTm1Qam82U1NDUzI1WGhNMXM2aFE0YzRmLzQ4c1Zoc0M2YlFsK053dHhOdS9DN0I4RnZZSEdGQWVFNzBNOXEvS3lVeXFYc2tveGQvV2k1R2g3ZnFXRTJlaXd0Ti9EMEZ2QUhzWngzT1g0REd4a2FPSHovTzJiTm5OeVRlTVp2TkVvdkZ1SFBuRHBjdlgrYktsU3NNRHcrVFRDYlhkYjM2Y05ubzZDalhyMS9INS9NWmtab2V6NXIxNzFXeDJXdzBORFJ3NE1BQll3TmVraVFtSmliSVp0YzBDMkhoaVJQNEVEQUZsTkM2YnMwRnliT0lhQTdwalJXQVM0c0NjR1h2RFdYdVNmUWRWMG5VTnFrVmxXeXlTR3cyeThQSFViNitOc1BscTlNTWp5Uklwa29vaXZsVU1sa2ZraVRoY3Jud2VyMEVnMEhxNnVwb2FtcWlyYTJOenM1TzJ0cmFhRzV1Tmh5L3ordkVyVmFyaHV1eVdDeVN5V1JJSnBQRVlqRWlrUWd6TXpOTVRFd3dPanJLeE1RRUN3c0xSdlR1VGtKUkZNYkd4cmgwNlJMMTlmVTBOamErVmdJd2dOMXVaOSsrZlViOHR5NkdqbzJOclRtT3UxcXRNanM3eSt6c0xDTWpJMFFpRVpMSkpOLzYxcmZvN094ODRibW5ibjU1RlpZNnpuTzVITmxzZHNWTElwRmdZV0dCMmRsWmtza2toVUpoV2I5d3VWeEdFQVFVUlRHU0hpMFd5N0tvNnFXOXdzL3JFdGJqemUvZHU4Zmp4NCtabTV0allXR0JTQ1JDZTNzN2ZyOGZuOC8zU284NW04MUdlM3M3VHFjVHY5OVBiVzB0VFUxTlRFeE1FSS9IbjdrZk5wcGlzYmp0YVYyWlhKbE1yc3p3V0JLYlZhU3hvWWIrbmxyR0oxTk1UNmZaM3graXZkVlBJT1RHWXBjMHAxNWxzUnZZVkRpWElRaGdzVWpZYkJJV2k3QVZzNE1pMnNDdnVYRy94WmdDOERxUXE3bDVXUzcrRmZESHo3eUtDQ0tpWk1kaThTSUlGbFIxNVZTNWFyVnE5QS9zTktyVkt1bDBtbGdzaGl6TGhFSWgvSDcvYzRXZzF4VjlNYTJMajRJZzRIUTZEZmV1eldZakVBalEyTmhJT0J6RzYvVWFVU3Y2dEp2Zjc2ZXVybzVRS0lUSDQ4Rm1zeG5kcXphYkRhdlZ1c3pscXp1QjljWFJVbmV3N2dqV2FXeHNwTGUzbDRtSkNXUlpwcTZ1RG9DUFAvNllkRHE5NndWZ3Q5dE5YMS9mcHNYbHZjN29EdURublFDV1NxVTlLd0NENXZ6ODVqZS95VmRmZldVSXdJVkNnYUdoSVFZSEIybG9hTmp5Q0grbjAwbEhSd2YxOWZYUENNQW1HNHNvaWpzeTR2bGxjTHZkbkR4NWtrOCsrV1NaQUt3b0NwT1Rrd3dQRHhPUHh6ZkZaZll5Q0lKQU1CaWtzYkdSZS9mdVVTNlhpY1ZpREE4UDA5Zlh0MjZubnNuVzBkUFR3OXR2djgxbm4zMjJwUUt3M2RGSUlQUW1nZkNiT0Z6dG9NbzhMMVZWRkcxVXF6bXlxZHNrbzEvK253djVpY3VyZnJQSlZ1SUFPb0N6d0RmUjRwL1gxYkVRQ29VNGV2UW9iNy85Tm1mT25GbDNaVU9wVkdKNmVwcTdkKy95MVZkZmNmWHFWUjQvZnJ5aGEraDRQTTZkTzNlTXpVYXYxOHVoUTRjMkpaTE5hclhTM3Q2T3hXTEI2WFJpdFZvUkJJR1JrWkgxYk5BM0FJZUJCU0FQM0YvOGFMSWNCU2l6Z1RIWm1nQXNVeXhXcVZRVVZKVWRWVTFrc2hMQ29nQ3MvWjJ5cVNKM0gwYTRkbldXRzdkbXVUOFlZM1FzU1N4ZU1NVmZrM1hqZERxcHI2K25yYTJOam80T09qczdhVzF0cGFtcHlSQjhmVDRmWHEvM3VXSlVzVmdrblU2VFNxVklKcE1zTEN3WXp0NW9ORW9zRmlNYWpTN3I5VTJsVWxRcU83TVZRSlpscHFhbXVIejVNcjI5dlJ3N2Rtek5wbzdkVG1Oakk2ZFBuOFptczFGVFU4TW5uM3pDOWV2WDE3MVhIWWxFdUhUcEVuYTduYmEyTm1NL2RLUFJEVFJlcjNmRnpsbjk4MHdtdzhMQ0F0UFQwNFlnRzQvSGlVYWpKSk5KbzhOMnFkdFhmejlkNmhCZTJpK3NkOXF1Tm9TdktBcWpvNk9VeTJYR3hzYTRkdTBhZlgxOUhENThtQU1IRHREVjFmVktSaFpKa21oc2JEU01Qd01EQXlTVFNhTFJxQ0c2RHc0T01qUTBSRFFhWGYrZHU0TXBWeFRHSjFOa2MyV21adExjdkRQUDRZTmh6cHhzNGN5cFp0bzdBMkNYdERobzg3MzBDU3BHQjdEREx1RjJXM0hZTFFqaXBxNGR0WkpucUVFYi9CWFp3RG9VaytkaktubnJRSlpMeGRidS8zMXArV0N6MWdFTUlBZ1dKSXNiVWJRaHl5c0x3RHVwTzdaVUtobHZlSHFSKyt6c0xKT1Rrd0NHVThoMEtqK0xLSW9FZzBFT0hEaEFMQmJENFhBUUNBUU04ZGJwZE5MUTBNQytmZnRvYTJzakZBb1JDQVNNQ2YvTlJ1L2NXRXF4V0tSYXJYTHIxcTFkTHlEcFR1am5pWlFtYTBNUWhCYzZnRjgyQ21lM1VsZFh4OW16WnpsMjdCZ0xDd3NVQ2dVVVJXRndjSkJMbHk1eDdOaXhaNTVmbTQzVmFzWHY5NjhxVE83bHY0Zkp5Nk9uU3pRMk5qNFRGNjRvQ3BGSWhJbUpDWUxCNExhNWdIMCtIN1cxdGRqdGRzcmxNdWwwbXQvLy92ZnMyN2VQZ1lHQmJUa21rMWVudHJiV2lEVmJXRmpZL0JodlFjVHVhQ0FZZm90ZytDM3M5Z1pBZlk3ejkwa0VXTEV3U1d6K3cvOTdPbm56N3hXbGJCWk9iejlPb0JNWVFPdjhQUU4wczhZWmZkMDFlL2p3WWM2ZE84ZXBVNmZvNnVwYTkzbzduODh6UGo3TzExOS96ZFdyVnhrWkdkbndBVXBGVVppZG5VVVFCQ09hMDJhejBkallpTWZqMmZEWGFZL0hRMjl2TDVJa0dUMTVwVktKOGZIeHRXN1d1OUQrZG5HMENPZ3BUQUY0TlhRQitNbm13VHFRRlpWaVdhWlFXT0lBM3Y3dEJaT1YwRVZmUVlDcVFpRmRJcE1xTXZnNHhtZGZUZkRaVjVQY2Y3aEFORmFnVURTcjZVM1dqdHZ0TnR5K1RVMU50TGUzMDkzZHpiNTkrK2pxNnFLNXVabmEydG9Wei9OVlZhVlNxVkFxbFNpVlN1VHplVEtaRFBGNG5IZzhicmdZWjJabURCRXRrVWlReVdRTXArVjJ1d1JmbGt3bXM2d0wyT2Z6WWJQWmRzUWU3VllURG9jNWMrWU1icmNicTlXS29pZzhlUEJnM1QzTmMzTnozTDE3bDdHeE1ZNGRPN1lwQXJETzAzSFNUMU1zRmttbFVpd3NMREEzTjhmOC9EeVJTSVJJSkdJTUxPangwWHIzc0M0ZzZ6SFV1dEZIa2lTcTFTb1dpOFdJbzlhZHdpc1pKS2FucDVtZW51YisvZnZjdTNlUDhmRnhwcWVuT1hEZ0FBME5EZFRVMU9CeXVmQjRQQy9WUngwSUJBZ0VBaHc4ZUJEUVVyNG1KaVo0OU9nUmQrL2VOWnpIMFdpVVRDWkRKcFBaczhhTldMeEFMRjdnNGVNNFl4TkpZckVpQXVDMFNRU2FhN0JLQWdnaXlJcVpUYU9qNnZ1OUVrNkhCWnROM0FvSHNBVndMMTVNdGhCVEFGNG5pbEtwS0VvRlFYVHdkTGE4S0ZnV2U0Q3Rxd1k4NmRORDIvMGlISWxFdUhuekpsZXVYREVpT3ZUSnZWd3VoOVBwSkJLSkVBcUZUQUY0QlVSUnBMbTVtVC84d3ovazdiZmZOaGJidW5QWFlyRmd0OXR4dVZ4Ry8rNTI0M0E0T0hUb0VFZVBIdVhhdFd1N1BuTFRqTDNkSEhRSCsvTW1nWjhYZTdOWGFHOXY1M3ZmK3g1emMzTjgvZlhYQUl5T2p2TDczLytlSC96Z0Ixc3VBRXVTaE52dFhuRkRXKy9Ja1dYWkhJb3d3ZWZ6MGRiV1JrdExDeU1qSThicnBDekxURTVPTWpRMFJGOWYzN2E1bk92cTZtaHJhOFBsY3BISlpFaWxVbno0NFllY09ISENGSUIzR2Z2MjdlTy8rKy8rTzJLeEdKOS8vdm1tM3BiRDJVU284WDJDNGJkeE9Gc1JSZHR6WTU4RlFVUUZ5cVVvMmZSZE1xazd2Nm1VRXRPYmVwQW1MNE1OVGZ4OUEwMzhIUURhV0tOMDVYYTdhVzF0cGIrL256Tm56bkQrL0htNnU3czNKTDQvSG84ek5EVEV6WnMzZWZUb0ViRlliTjNYdVJwemMzUGN1blVMdTkxT29WRGcyTEZqOVBiMmJzcGFReEFFMnRyYU9INzhPSmxNeHRqb241bVpXY3ZWMmRHYzIzM0FJelFIY0JLdDc5YmtDWG9IY0prTkVvQVZSYUZZckpJdlZLaFVGQlozOVV3UmVDY2lMY1kreXdxcFZKSFJpU1FQSDBhNWZuT09yNjlOYzM4d3hrTFVuSnN3V1R1Q0lGQmZYMDlYVnhmOS9mM3MyN2VQOXZaMm1wcWFDSVZDMU5iV0VnZ0VWaFdZY3JrY3lXVFNpTXFOUkNMTXpjMFJpOFZJSkJLa1VpbERDRTRrRXFUVGFVTXNLNWZMdTNKUEpwMU9NelEweEowN2Q0eHpwOWN0Q2xySDYvVnkrUEJoSXlIRTZYUnk2ZEtsWllQRWF5R2J6WkxKWkNnV2k2aUx6c1B0d09GdzRIQTQ4SHE5TkRRMExJdUhMaFFLWkRJWkVva0U4L1B6ek0vUEc0LzlXQ3hHSnBNeGpsMVBhN0hiN1liZ3E3dUJkYmV4TEs5OGJwTE5abm40OENHWlRJYkJ3VUZhV2xxb3E2dWp1Ym1aam80Tyt2djdhV3RySXhBSXZOTHY1dlY2NmV2cm83YTJscTZ1TGs2ZE9zWFkyQmhEUTBQY3UzZVArL2Z2TXpVMXRSRjM0NDVGbGhWR1JwTW9DbGd0SXBJa01IQzZtZlptSDlnVzQ2RGwzZmNhdFZrSUFvaWlnQ1NLaUp2ci90VVIwYzRYYkpnTzRDMWwrMVdvWFk1Y0xXUXFsUXlpNUdTNUFDd2dDQktpWUVVUVY3K2JWVlUxSm9tMkFrVlJLQlFLcE5OcFptWm1lUERnQWFPam8wU2pVVVpHUm94QzkydzIrOHd4ZmZIRkY3ejU1cHVjUFh0MlM0NTFOeUVJQW42L242TkhqeHB1MU4xQVEwTURQL3JSajhqbjgvejBwei9kdGZFZ2dpQ1lBdkFtOFRJTzROZmhmdmQ0UEp3N2Q0NUxseTV4L2ZwMW8vZm8wYU5IZlAzMTF6UTFOUm5SNmx1QkpFbDRQSjRWSTZyMFk2dFVLcnZtdGNoazg5QzdIcHVibTVtWW1Gam02aG9hR3VMV3JWdTg4ODQ3MnlZQU56UTAwTlBUWXdnMHNpd3pOalptOUU3dDF2anQxeEdQeDhPNzc3N0xuVHQzdUhYcjFxYlZTOWpzWWZ5MWJ4QU12NDNiMDZPdHZGVVoxTlhPSHdWdExhN0s1TEtQU1VhLytqZWw0dHpkVFRrNGsxZkJnZGI1ZXhKNEJ5Myt1WWsxZGtMWjdYYWFtcHFNMk9kVHAwNnhiOTgrZkQ3ZnVnOTBZV0dCNGVGaEhqNThhTVRwYmViYVI0L3ByMVFxcE5OcE1wbU1rYllTRG9jM2ZOUFVaclBSMGRGQlBwOG5sOHN0YzRxOElpSmFyRnN6bWhPNEc2MEhlSVlON0x2ZEk1VFFCR0FGN1g1YkY0cWlVaWtybEVveVZYbnh0ZEFVZjNjV29xQmRKQUdsSXBPS0ZSZ2NpbkgxNWl5WHY1N2g5djE1eGlkU3BETHJFMWxNWGs4Y0RnYzFOVFg0ZkQ3cTZ1cG9iMi9ud0lFREhEdDJqUDcrZnBxYm01OTczbGdxbFo1eCtNN1B6eHVPeGVucGFSS0poQ0gwNm1MWmJoVjhuMFpWVlNZbkovbjY2NjlmMnk3Z3BkVFUxSERzMkRFY0RnZlZhcFZzTnN2UTBCRFpiSFpWVWZORkJBSUJhbXBxc0ZnczJ5b0E2K2ppOXRJcUpGVlZqV1RNMmRsWnBxYW1tSnFhWW5aMmx2bjVlY01oWENnVUtKVktSbSt3SGdFdENJTHhld21DUUtWU01jVGhwNThuNVhLWjBkRlJSa2RIY1RnYytIdytXbHRiNmV2clkzSnlrbVBIam5Ia3lKRlgzbU95V3EwME5qYlMyTmpJOGVQSFNhVlNEQTRPY3VYS0ZacWFtcmg5K3pZek16UEc3N0VYa1JXVjhja1VYMTJld21JVmNEb3QxTmJZOFlUZGk4TnhxdWtDWG9JMjBDQnMxWE5TQUtURmk4a1dZZ3JBNjZSYVRVVXJwUVdzTmgraVlFTmR1dmtrU0lpU0hVRllmZUVneTdMeHByRVpxS3BLTEJZamxVb1pNUmZ4ZUp6NStYa0dCd2Y1NnF1dnVIUG56a3U1OThiR3h2Yjh0TkI2MEh0NGR4Tk9wNVB6NTg4amlpTDM3OS9ueXkrLzNMSmhoSTFtcDBTcDd6WDA2Y2JkOXRqZWFFUlJwTFcxbFJNblRuRDU4bVh1Mzc4UFFES1o1Tk5QUDZXdnIyL0xCV0MzMjczaTVIYWxVakZPeUY4bU9zaGtieU1JQXMzTnpYUjFkWEh6NXMxbEF2RDA5RFEzYnR4Z2ZuNStTeCsvUy9GNnZiUzJ0aTRiTXRIanFTY25KK250N1gzdFgzOTJFdzBORFF3TURIRGd3QUd1WExteTVrMmkxYkE1d2dSQ0Z3ald2WVBEMlFvSXFNcnp1OGtFd1lLaWxDbm14a2hHdi96Zk1zazcveVJYaTlrTlBUQ1RWMEVFL0dpZHZ5ZlFoTjhUYUU3Z05UL1pRNkVRZlgxOW5EeDVrdE9uVDlQZjM3OGhBeVRKWkpLSER4OXk5ZXBWN3Q2OXk4TEN3b1kvcmxkQ2oyS3VWcXVvcWtxMVdxVlVLaG1iZ1J1OTV2WDcvZXpidDQ5NFBNN0V4QVRSYUpTSmlRbHl1ZHlyWHBYKzkrMEdEcUhGUVNlQjllVkg3aTBVb0lEbUF0NFE1NFAyR0ZHb1ZCUmtlYkVER0hnNm9jeGtHeEZGc0FwUVZwaWZ5L0x3NFFKZlg1M2g2K3N6M0w0YllYbzJZMFkrbTZ5SllEQklaMmNuL2YzOTlQYjIwdDdlYmxUQTZESFBUNlBINE9xcGY3cmJVUmU1b3RFbzhYamNjUDJtMDJrakNuY3ZKbitwcXNyTXpBelhyMStucjYrUFU2ZE9iVWg2eUc3R1pyUFIxOWZITjc3eERRcUZBbmE3blZ1M2JxMWxYVUJ0YlMwZEhSMjB0TFRnOC9sMjdMNmRJQWc0SEE0YUdocndlcjNVMTlmVDNkMU5KcE14dXE5anNaZ1JIejA3TzBza0VqR0dJM1JYc01WaU1SekJTN3VJVnh1V0tCYUxScjkySkJKaGRIU1VzYkV4RkVYaHpKa3o2eHBtOVBsOERBd01FQXFGNk8vdjUvNzkrOXkrZlpzYk4yNHdPRGk0WVFPN3VpbG5wMUN0S295TUo1RXNBazBOTmJRMmU5bm5zT0N3U2RyN3NhcTgzdDdUSlIzQUZvdUkxU3Boc1d6Sm5yb3BBRzhUcGdDOFRxcmwxR3k1Rk1IaGFrT3lPbERWSjA4V1FaUVFKUWVpdVBvZ3U2SW81UE41eXVYbmIxNnQ2ZGlxVmU3ZnY4L0hIMy9Ndlh2M2pFbStlRHhPSnBNaGw4dVJTQ1JlK2tVNm04MHlNVEhCek13TVRVMU5HMzY4SnR0SGUzczdodzRkNHVIRGg4elB6Mi8zNFpqc0lIUkh1eW5BYUl2bnQ5OSttNG1KQ2VibjU0bkZZdVJ5T1c3Y3VNSDkrL2UzOUVSUmQyYnIvVVJMWDhmTDVUTDVmSjVDb2JDcC9Ub211NGV1cmk2T0h6L09SeDk5dE93a1Q1WmxIajkrelBYcjEybHBhWG5sbUttTkloZ01VbE5UWS95L29paE1URXd3T0Rob3hFT2I3QjRPSFRyRW0yKyt5ZkR3TUFzTEN4dDJ2WFpuRTdYMS80SmczZHU0M0oySWtnTlZmZDVtK2VLYVhCQW81aWFKelB6cS81dFkrUHd2S3VXa0dmMjh2ZmlCSHJUWTUzZUEvV2lPMFRVdk5Gd3VGMTFkWFp3OGVaSVRKMDdRMWRXMUllSnZwVkpoYkd5TVM1Y3U4ZGxubi9IZ3dRT3kyYTJkSFppZG5VVlZWZVBjVFJDRU5UbENYb1FnQ0lSQ0lmYnQyOGV4WThkSUpwTkdJc01hemxQZGFBSndDa2dEQzhCRFh1K3R0cWNwb1BVamI4ZzBnYXBDVlphcFZHVmtNOXB3WjdIbytrVVNVY3BWSXJOWmJ0MmE0OHZMVTN4OWRZWkhRekZtNTdPVXk2WkozdVRsY0RnY3VGd3V2RjR2NFhDWXRyWTJEaDQ4eU1EQUFJY1BINmE1dVJtYnpXWWtwT251Uk4zbG0wNm5pVWFqUktOUnBxZW5tWnljWkhKeWtybTV1V1VKRUxyTGNTOEt2aXVSVHFjWkhoN204ZVBIVEU1TzRuQTRsblc5dm83SlduYTduYTZ1TG80ZE84Ykl5QWdQSGp4NFpRRzRwcWFHQXdjT2NPYk1HZmJ0MjRmWDY5MnhBdkJTWEM0WExwZUx4c1pHUUs5YUtCcnU0SW1KQ2NiR3hwaWNuRFJFNEd3MlN6NmZOd1RkVXFsazFENUtrbVE4bDFaTEx5d1VDa3hNVERBNU9jbkN3Z0xCWUpEYTJsb09IVHEwWXZXWGp1N2kxNGNHQWNPTnJCdGw2dXJxcUt1clk5KytmZlQxOWRIUzBzS1ZLMWU0ZCs4ZTBXaVVYQzYzN3VlNjNXN0g3WFliSGRMQXNzcExmZDlLZDBUcjk0M2VyVnlwVktoVUtodG1TaXFXcW95TUpmbjYyZ3hOVFRVNG5WYTZPdndJTGl0VVZGRE05UktBUlJLeDJ5VXMwcFowQUlOMnptZHVNRzh4cGdDOFRtUTVuNnhXTTFyMG5MRDg4U3NJSW9Kb1F4QldYeWdvaXJMaEVkRHo4L1BjdTNlUDI3ZHZjLzM2ZFc3ZHVzWGs1Q1NGUW9GaWNYMFZUTGR2Mythenp6N2orOS8vUGg2UFo0T08yR1M3c1ZxdE5EVTE0ZlA1VEFIWVpCbTZBR3kxV25mY1ZOOVdJd2dDdmIyOWZPOTczK1AyN2R0ODhjVVg1SEk1SmlZbWpPR0pqbzZPTFR1aDBmdVpMUmJMTWxkblBwOG5tVXlTeVdUTXpuWVRBR1BpZHlVaGRYWjJscC8vL09lMHRMVHc3cnZ2YnNQUmFRTHd3TUFBczdPenpNN09BakE1T2NuZzRDRG56NTgzQmVCZFJsdGJHK2ZPbmVPZi91bWZOa3dBdGpzYUNZYmZvcmJ1bTdocWVyUzF0U292VDk1NUNrR1FFQVNSY2psR09uR2RaT3ppM3hRTGMvYzM1SUJNMW9vZFRldzlpdGI1ZXhaWWw1SXBTUkoxZFhYMDlmVng1TWdSOXUzYnQyeWdaSzFVcTFVV0ZoWjQrUEFoMTY1ZDQ4NmRPOHpOemEzN2VsOFZSVkdZbVpreGhHZW4wNGtrU1laZ3U1RnJEa21TQ0lmREhEaHd3QkFKRW9uRVdpS3ZCU0NFMWdXY1FoT0FpOEFjbXVqNXVxT2dPYUt6d0lac0FpaUtTcWtpVXlwVnFWYjFDT2lkdjhHK3A5R2ZNaFlSckNLVVpXWm5NdHk4T2N0blgweHc4ZW8wandianhKT0ZKMzh6RTVNWFVGdGJTMmRuSjcyOXZmVDI5dExXMWtaOWZUMU5UVTEwZEhUZzkvdU43NjFVS2tha3MrN3FqVVFpeEdJeHcvazdOemRISkJJaEhvOGJMdC9OTUtmc0ZoS0pCRU5EUTF5L2ZwMXNOb3ZiN2NidjkxTmJXNHZINDNrdGgrSjFKMnUxV2wyVFFOamEyc3JiYjcvTk43N3hEWnFibTNlRitMc1UvWGoxQkRiOU1hSDNiQ2NTaVdXOXdaT1RrNHlQanpNM04wY2lrVER1TnozNldsRVVRK2hjYlcybHFpcGpZMk5jdm55WnhzWkdBb0VBWFYxZEszNXZNcGxrYW1xS21aa1pFb21FSVRycjRxL2RiamVHUllMQklIYTduY09IRDFOZlgwOXZieTlmZlBFRlY2NWM0Y0dEQjJ1cC9saEdUVTBOKy9mdjUrREJnelEyTmhxREtMcmVvU2dLc2l3Ykl1L1MrUGxrTW1sMExldXZSeHVoaytUeUZXN2VtY2ZydFJNT09tbXNkK1B5T2haN2dGL253U3NWVkFGQkFJdEZ3R29SdDlvQmJPcVJXNHg1aDY4VFdjNG5xcFgwaWc0RUFRRUI2YmxQSUgwU2I3MHZiSVZDZ2JtNU9TWW1Kcmh6NXc2ZmZmWVpYMzc1SlRNek0rdTYzcWU1ZS9jdXYvbk5iemg5K3JRcEFPOHhiRGJiYTkxellySXlnaURnZERweHVWelliTFpOaTZ2ZkxkanRkbzRjT2NJZi9NRWZFSS9IdVhMbEN2bDhucHMzYi9MMTExL1QwTkN3WXIvU1ptQ3oyWEE2blRnY2ptVUNzQjdwbGMxbVVSVGx0VHhSTlZtT0pFbTB0YlhSMjl0ckRJVHA1SEk1UHYzMFUwNmZQczJGQ3hlZU8xMjhXUVNEUWQ1Nzd6Mkdob1lNQVhodWJzNXcyNjBVWFdleWMzRzczUnc2ZElpelo4OHlQVDI5cm1neFFaQndPSnZ4aDk2a3R2NGRuTzRPQkVGQ1ZTb3YrRGtSUVJDUjVSeVo1RTBTMFMvL0QyYnY3NDRnQ1BRREEyanh3T3NTZjVlNlZnOGNPRUJ2Ynk5MWRYWExJdVhYZ3FJb3hHSXhCZ2NIdVh2M0xvT0RnOXNpL2k0bG5VN3o4T0ZETEJhTEVVRjk3Tml4RFU5dThQbDg3TnUzajNLNVRDUVNZVzV1am1LeHVKWk5RUWVhMkg4Y1RmeVZnT3ZBSVBEOEovRGVSd0Z5YUNKd0JVMHFYTmVPbTZLb2xFb3loV0tWU3NYc0FONFJXQVF0WmxJVXFPUXJ6RStudVhwamxzKytuT0RTMTlNTURzZUp4ZmRtLzZMSnhxQ0xOMDZuRTQvSFF6Z2NwcU9qZzBPSERuSDA2RkZEWkxGYXJZYWJMcFZLR1VsL2VyUnpKQkpoZm43ZTZERk5KQktrVWltU3lhUWgrdTdXR3JDTlJrOGgrdnp6ejVtYW1xS2hvWUd1cmk2c1Zpc3VsK3UxTzYrV1pabUZoUVhHeDhlSlJDS3ZOQndnU1JLQlFJQWpSNDV3NGNJRmpoNDl1bWZxcWR4dU55NlhpK2JtWnNQTm1zMW1tWjZlNXZIang5eS9mNS94OFhFV0ZoWU1SMzB1bHlPZFRwUEw1WkJsR1ZFVW4zSEdMaFdFSzVVS0R4NDhvS0doZ1o2ZUhqbzdPdzF0UVZFVWNya2NjM056REEwTk1UZzR5TWpJQ1BQejh4U0xSV01QU0g4TjBidkJRNkdRMFJFZUNBUm9iMjhuRW9rWWd5RzZPTHQwYjBsSHZ6N2R0ZnMwcXFwaXRWb0pCb04wZDNkeitQQmhHaHNiOGZ2OVdLMVdaRm1tWEM1VHFWU00zbVRkS2EwUEc4N016REE3Tzh2MDlMVHhlVEtaWFBkUXl2UnNocXZYWnpuUUYrTFkwUVphYTkzYUVzbHN5VUFRUUJRRkpFbnJBZDZLbTBUVElrM3hZWXN4QmVCMVVpMm5aOHZGQ0lwU1hzSHBLeUFJejNlMlZ5b1ZZckhZbWpmSDlKNjhhOWV1OGZISEgzUHQyalVqTG1Jeklzb1NpUVQzN3QxamJtNXUxUWtrazkzTGJwdkcwOUVuNlJSRmVTMmplVFlUVVJUeGVyMzRmRDZjVHVlS0FyQisvNzh1QkFJQnZ2ZTk3ekUxTldYRVFWKzdkbzBQUHZpQTA2ZFAwOW5adVNYSFliZmJxYW1wd2VWeUxkdVlyVmFyeXlLSFRFeEE2Mlo5Ly8zM21aMmQ1ZHExYTh2K0xaMU9NejQrenNURUJEMDlQVnQrYkc2M20yUEhqdEhWMWNVbm4zd0NhTlBNZCs3Y1lXSmlndmIyOWkwL0pwUDEwZEhSd1ovOHlaOFFpOFg0aDMvNGg3VmRpU0RnOHZRUWF2ZzIvdEE1N0k0R0pNbU9xcjVvV2x0QUVDeUw0dTlkNHZPLy83OW1rcmQrSVZjTFp1L3Y5dUlGZXRINmZvOEFqZXU5d3RyYVd2cjYramgrL0RqOS9mM1UxOWR2eU9aaVBwOW5iR3pNcUhpWW41OWY3enFuaWliMkZkRk9ERDFvTWNtdlJDd1c0L3IxNjhpeWpNUGhNR0lWTnpJbHdXcTFFZzZINmUzdFpYWjJscm01T1FxRkF1UGo0OHVHaDE0U045Q0Y5anRiZ0RJUUJWNzN1Q0VGelFtdEM4RHJ2MEpGcFZTcWFnSndWY2JRbEhmbnFkM3VSbDk2V3lXd2lxaTVDaU5EQ2E1Y21lTHppeE5jdlRITHlGaVNaT3IxSHFvMWVUNVdxNVg2K25yYTI5c044YWVscGNYbzlhMnZyeWNRQ0NCSkVwbE1obGdzWm5UNDZsSE8wV2pVY05UcFhiNlpUSVo4UGsrcFZIcXRuYjZyb1NnSzA5UFRYTHAwaWNuSlNYcDZlckJhcmJTMHRMeVc1OVd5TEJ1OXRLbFVha1hoYnpWMDhmZjA2ZFAwOS9mdkdmRlhaMm5FTW1pL3I5dnR4dWZ6MGRUVVJDd1dJNVBKa00xbW1aMmRaWEJ3a1B2Mzd6TTlQVTI1WERhaW1YVWhlR2tVc3M3TXpBejM3dDFqWkdTRTA2ZFBHL1Zla1VpRU8zZnVjUFhxVmU3Y3VXTjBFYWZUYWNOWnJGKzN4V0l4aGtnOEhnOSt2NSttcGlicTZ1b1FSWkY0UEE1QWMzTXpUcWZUNkRuTzU1OEV0dFRVMU9EMys3SGI3VlNyVlZLcEZKbE01cG5Ca1h3K3o4VEVCTGR1M2NMcGRCSU1CcW12cjM5bXdGeVc1V1ZpY3o2Zk4xekF5V1NTdWJrNXhzZkh1WC8vUGc4ZVBHQjRlSGhOM2RNNnFnb3pjeGxHeHBLTVQ2VHdoOXg0M1ZhdG9rRlovSWJYRFZXN0NBSklrdFlETEcxTkJMU0lKdjVhTUdPZ3R4UlRBRjRuY2pVOVhTNHUvQytLVXZyL1BCMEIvVkkvdjlpdE5ETXpZN3hJcjBhbFVpR1ZTakUvUDgvRGh3OFpIaDQyaXVpSGg0ZTVmZnMyMDlPYlgydVdTQ1NZbnA2bVVDaHNtZFBOWlBOWnJZZGlON0MwUjhKazQzRzczWGk5M3VjNkExKzMrNzYxdGRWd0xQN3lsNzhrbDh0eDllcFY3dDI3UjMxOS9aWkUxdHBzTmx3dTE0cXZ3L3FpK25YN3U1aXNUazFORFcrLy9UWmZmLzMxTXdJd2FJN2IwZEZSMnRyYXR0d0ZMQWdDRFEwTmhNTmhKRWt5dW9MR3hzYjQ3TFBQYUdscDJiTEJDcE9Od1dxMWN1N2NPYTVkdThhVksxZVltNXQ3cGRjalFiRGc4UjJndHY1YkJFSnY0bkEyTHE1VFhoRDdqSUFxaUtpcVFqRS9SU3p5dS84MW5iaitkOVZLTnJvUnY1ZkptckNnT1gzM0FlZlEzTDhkckVFQVhZclg2elY2ZjgrY09VTlhWOWVHUkQ4cmltSkVRTjY0Y1lQQndjRjF1ZGdYU1FGRGdINmkxb0oySHdSNGhRbDRXWlpKSnBQY3UzY1BuODluYk1iMTlQUnM2TWFxMVdxbHJxNk8vZnYzRzI2eVpESzVGZ0ZZQUZ4b0luQVJtQVJHZ0JJYkdIKzhTeW1ndVlBM1JBQldWU2lWWklxTERtQnorYmVOV0RUWEw2SkFPVnRtZkNqQlo1K1A4Y2xuNDF5N05jdmtWSnBDOFhWKzZKczhqU0FJV0sxV0hBNkhJWnFFUWlIYTI5dnA3Ky9ueUpFajlQVDBFQXFGc0Znc2h2dnY4ZVBIeE9OeDV1Zm5tWm1aTVdKZ0k1R0lVUWVVeStYSVpyTVVDZ1dqQzlqaytlaXU2R3cyaTlQcFpQLysvYS9Wc1B0U1ZGV2xVQ2dzU3hkN1dVS2hFS2RPbmVMa3laTUVnOEZOUE1xZGc4MW1vNldsaFlhR0JzT2dvdmY2WHJ0MkRidmRqdC92SjV2TlVpcVZqT2VtL3Z6VVJWdDlIMGNRQk5McHRHRTg2T25wb1ZBb2NQZnVYWDc5NjEvejJXZWY4ZkRoUThybHNuRjdUNTl2UGQwRnJOZTc2U2wvSG84SHI5ZUx5K1dpb2FIQmlEd3ZsOHVvcW9yZGJxZTJ0dGJZNDhybjgweE5UVEV5TXNMYzNOd3lFVGlUeVhEdjNqMm1wNmVOb1lGeXVjeWhRNGZ3K1h6RzkrbWQyamFiRFFDLzMyOGN2NklvcEZJcFptWm0yTGR2SDgzTnpRU0RRWWFHaG9oR284YnYrcXBVS2dxVDAybnVQNHBTWCtmQjNlbEhjbG1ocWk3R1FiK3VDRWlTdUNnQUMxczFOMmdGYkZ0elV5WTZwZ0M4VG1TNVZQUUZCMllWcGN4YXNnTlVWV1YyZHBiTGx5OXo3dHc1amg4Ly9reHNXUzZYWTJSa2hKR1JFV1ptWmhnYkcrT3JyNzdpK3ZYcnk2Wnl0b3Bpc2NqNCtEalJhSlRXMXRZdHYzMlR6V0czQzBXNy9maDNNbmE3SFlmRHNlNUl4YjNHa1NOSCtLTS8raU5qUVQ4ek04UHZmLzk3dXJ1NzJiOS8vNmJmdnNWaU1UcUFUVXhlaENSSmRIUjBzRy9mUHZ4K1A4bGswdmczVlZVWkdSbmg3dDI3bkRwMWFsdGlvQjBPQitGd21GQW9SQ1FTTVdMc2Z2M3JYOVBYMTJjS3dMc1FoOFBCa1NOSEdCZ1k0T09QUDM0NThVZ1FrU1EzYm04Zm9mcjNDSVRld0dLclhSUitYN3hwS1lnV1FLQlVtQ0VadS9TVFZPelMzNVJLa2NIMS96WW02eUFJSEFiT293bkFCNEZhMWpIMXJYZWhuVHg1a2dzWExuRGl4QWxxYTJ2WC9kcWxxaXJKWkpLeHNUSHUzYnRucEJDczgzeXJBSXdEWHdHMzBid0dCNEF6YUk3b2VyUjQ1SmNtRm90eCsvWnRuRTRuTnBzTnQ5dTk0Y2xNRG9lRDd1NXVRTnZRbTVtWllXRmhZYTNpZ1I0SDNRZU1vb25CNDhDNmxmVmRqQzRBVjltQUNHaGcwUUZjb1ZKVkZuY2xUUHZ2bHFJdVdta2NGcEJFcXBraWQrN004OFZuNDN6eTJUZzM3ODR6UFpzeCszNU5saUdLSXFGUWlKYVdGcnE3dStubzZLQ3RyWTFRS0VRd0dNVHY5eE1LaFhDNVhCU0x4V1dDcis3NjAyT2Vsd3EvdXNQWGpIWitkVlJWcFZ3dUcvZWpIcVA3T2liTnFhcEtQcDlma3dBY0NBVFl2MzgvZlgxOXVOM3Jtdm5iVmVnREhUcE9weE8zMjQzRDRhQ2hvWUZvTkVvK24yZDZlcHE3ZCs4eU5EUkVxVlJDRUFUc2RqdUNJS0FvQ29JZ0dKVmZjM056M0w1OW0wcWxRamFiNWNzdnYrU1RUejdod1lNSEw2eG8wNDArK3Q5T2oxN1dFK1FjRGdmQllCQ2Z6MGNvRktLcHFZbjYrbnJxNnVyd2VEelk3WFk4SGc4K253KzczVzVVa2x5NWNvV2JOMjh5T3p1N3JPTlhyeEM1ZHUwYTJXeVdtWmtaenAwN3g2bFRwK2p0N1YzMU9QV0lhWUJ3T0l6Zjc4ZnY5OVBTMHNLaFE0ZTRmZnMyMTY1ZDQvSGp4MFNqMFZkK2JhdFVGVWJIazl5OFBVOW5xNS9XNWhxY1BnZW84dXRkQll5QVJSS3hXaVVzMHBZWWNnV2VKQU9aYkNIbUhiNEJLRW81TDhzRkZHWHhCVWlBSjJLd3dJdE92bFJWNWFPUFBzTGhjUEJuZi9abm5EbHp4dGpRajhWaWZQWFZWL3p5bDcva3lwVXJ4dlIxTXBsY01aZC9LOUFGNlVna1lnckFKaWF2QWZwaTdIa0pCYnMxUG53OStQMSszbnJyTGFhbnA4bmxjdHkrZlp2Zi9lNTNuRGh4Z3A2ZW5rMFhaa1ZSUkpLa0ZidUlWcHNBTlhtOWNidmRkSFoyMHQzZHphMWJ0NWFkT0EwTkRYSHg0a1YrK01NZmJuaW41TXNnU1JKTlRVMTBkbllTajhlcFZDcVV5MlZ1M2JyRjNidDMrZmEzdjcwaDdqNlRyYVcvdjUvejU4OXo4K1pOcHFhbVh2ajlWcXNmYjJDQTJvYjM4UHFQWUxIVUFNSkxpYjhnb0NJZ1Z6T2s0bGVJelgzOEY4WEM3UDExL3hJbWEwVkNtKzV1UVl0OGZtUHhZNGcxS2xPU0pGRlRVME4zZHpjREF3T2NPWE9HdzRjUDA5Yld0aUhya0ZLcHhQVDB0QkU1TnpVMXRaYnUyNlZVZ1JuZ0xuQVp1TGI0dFJqYTVvY05MUTdhK3lwWHFxb3FNek16M0xoeEE2L1hTME5EQThGZ2tKcWFtZzNkb0E0RUF2VDI5akkvUDgvZzRLRFJIL21pemNaVmNLTzVudmVqeFVCSE1RWGdIRm9zOW9aUUxpL3RBSmEwaXlBKzJadFFGeithYkE0V1NYUCtBc1ZVZ1VmM0luejQyMkUrL0dTVU8vY2l4T0lGRkhOZC90cGpzVmdNOTUzZjd5ZncvMmZ2djJNa1NmTTBQZkF4NVZxRTFqcEZwQmFWbFZXVmxhVzdXazN2b0tkM2xqMnpYSEM0M0FNWEJJZzdrRGp5bnpzY1FYQkJBZ1JJRUZpQUFNSEZMb0ZkN003TzdIUVBaN3E2cDd0MGRXWmxwUmFSSWlJeVEyc2RycFdwKzhQQ1BEMHlSSVp3RDVGaEQrQVprZTRXNXVibTV1YjJmZS92ZlgvbDVYbng5L1RwMDNSMmR0TFkySWpINDBGVlZXS3hHTlBUMDh6TnpURTVPY25vNkdqZVhiZXdzSkJQQkxTam5UVk5jOFovUmNMdXYrejMrd2tFQWdldS95ODg3elc3c0xCQUtwWGFsQUFjQ0FUeWZXY1A0cjRyeEU1cmFXMXR6ZmZDN2UzdEpSUUs1YzhGeVdTU1pES1pMOTRRUlpGZ01FZ3dHTXkzUm9wR284UmlNVzdldkVsdmIrOVdyOGVXa2Nsa21KNmVabUZoZ1d3MlMwMU5EUjBkSGJ6OTl0dTB0N2ZuayszcytjQllMRVpqWXlOK3Z4OVpsdk1SMUM5R05NL1B6M1A3OW0xR1IwY1pIUjBsRm9zaGlpSXRMUzE1NSs5NktJcENjM016OWZYMW5EbHpodVBIajFOUlVZRWtTVHg0OElERnhjVk52VTdETUptYVR2SzRaNWJ6WjJxNW1LM0h1NVRXY1dBeFRSQkFjWWw0UFRJdTEvcHp2a1hrNVVLWlE5RnhCT0FpWUpwcVZ0Y1NHSG9hQVpIbnBua0JCQkZoQXdYdU16TXpmUExKSjhSaU1WNTc3VFdDd1NDWlRJYXBxU2tlUDM3TTdkdTNtWnZiRytsMXFWU0t3Y0ZCcHFjUGV2dW1Wd3M3R3NUQjRVVnNBWGk5Qy9lRE90Q3NyYTNsQnovNEFZOGZQK2JKa3ljOGVmS0VlL2Z1OGY3Nzc5UFEwRkRTNTdhamZBNzZnTXBoNHdpQ1FHMXRMUzB0TFhSM2R5OFRnRE9aRE0rZVBXTjBkSlQyOXZZZHIzSVhCSUdLaWdycTZ1cVFaVGxmNUpaSUpPanI2Nk92cjQ5VHAwNHRxNmd1TnFacGtzbGtNQXdEajhkeklDdjlpMDF0YlMydnZmWWExZFhWR3hLQVBiNFd5cXZlSmx4K0hzVlZqcTVud054WXdhTW91c2lwQzBUbXJ6RTMvYnQvbEVyMmY3bmQ3WGZZRmw2Z0RzdjFlUUk0QWxSdmRXV1NKRkZlWGs1Yld4dHZ2UEVHNzd6ekRtZk9uS0d4c2JGbzE2OExDd3QwZDNkejkrNWRlbnQ3TnoyNXRBcnpXT0x2VGVBaE1JVGxBRFlBTnhER0VzUTliRElLTFpmTE1UbzZTbGRYRncwTkRRU0RRVG83TzZtdHJkM3VOaThqRkFweDVNZ1JMbHk0d01MQ1F0NFZ2UVVuc0JmTEJYd1VHQUdlQXBORjNkajlSUnFyRDNEUjdIbTZicEpLYWVRMEUxT1FBQmxFR1FTZHBTWjMxb0tPRUZ4Y2JPZXZUd0ZCSkxXWTRzYk5VYjcrY3BDdmZqL000NTVaRmlLWjNkNUtoejFBS0JTaXRyYVc1dWJtWlU3ZnNySXl3dUZ3dnBBbmxVb3hOemZIN093c0V4TVRqSStQTXo0K3p0allXTDYvYnlLUklKUEprTXZsbkY2K0pjQjJYOXF4M0s5YS85cU5ZcmNobkp1Ykk1UForSGxNa2lSOFBoL0JZTkNacTFoQ2txUmxyYnRPblRxRkxNdTB0cmF5c0xEQTVPUWtEeDQ4b0srdmo0V0ZoYnhyMSs3RFBEdzh6T0xpWXI1TnlSYmFjcXlKM1Q1c2RuYVcvdjUrT2pvNmtHV1o2dXFWbCswZWp3ZVh5N1hNR1h6MzdsMEdCd2RYRkUzYTE2clpiSlpzTmtza0V1SHk1Y3VjTzNjdTM4OTRQVVJSeE9WeTRYSzVPSHYyYk40TU56azV1YVZyOUdReXg5QndsUEdwQk1ta1NybWR2eUp3TUMrTFRCTkVjTHRsQW40WEhyZU11RE9DdUNNQTd3S09BRndFVEVQTEdsb0swOGdpaUY3eVp3OUJRcEo5aU5MRzRzaG1abWI0cTcvNkszNzN1OS9oOS92ei9UcjJtckNTeStYbzcrOTNCT0JYREVmOGRWZ0xTWktRWlhsZE1XU3ZuYWQya3JhMk5yNzN2ZS9SMWRYRnpaczN1WDc5T2pkdTNPQVAvdUFQU2hxbFc5alA1VVZzQjdDRHc0czBOalp5K1BCaHZ2bm1teFd4cHRQVDAxeTllcFcydHJaZGlWeXVycTZtcWFrSmo4ZXpiRkRiMjl2TDdkdTNPWHo0Y0VrRllGM1htWjZlSnBWSzBkTFNRaUFRS05sekhSVGNiamVkbloxY3ZueVprWkVSNXVmbjExL2VVNFBYMzRZb3VqRjBGZGJwOTJzakNCSWdZT2haa3JGdVppZCs4NC9pa2Z0L2FSaE83dUV1RXdRT1lZbS9IVmo5YnJlTXorZWpwYVdGQ3hjdWNQbnlaZDU0NHcwYUdocVdUYVp0aDJnMHl0T25UN2w3OXk1ZFhWMU1URXhzdDFkaUZPakJjdjdlQmNaNEx2Wk5Zc1ZCVjJQMVIzWmppYU9iR3B1bjAybUdoNGU1ZWZNbUxwY0x3ekJ3dVZ4RlQzR29xYW5oM0xseitaNTEwV2lVaFlXRnphNUd3am9HV3JCYzRlVWMzQ2szc01UZlJTd0hjRkgyZ1Fsa1VqbTBWQnd5RVRCTTBEUXIybEJZbW1zVENuNS84YS9Od2pVNWJBZ0JrQ1NRQkRCTk10RVU5KzlPOEt0ZjlmTHBsNFAwRHl5U3lUcGZSUWNSdTllbUxaTFk0bTliV3h2SGpoM2orUEhqTkRjM0V3Z0U4bkhEOC9QelBIdjJqTm5aV1dabVp2Smk3L3o4UEpGSWhJV0ZoYnhEMEJubmxRNDd3dGRPODdKRko3L2Z2MnpPYkRQekg2c3QrN0svWCsxeCsvblhtcnNyZkh5MTN6ZExLcFVpRW9td3VMaTRxUVJLV1paeHU5Mk8rTHNPd1dDUU0yZk9jT3pZTVhSZFoyaG9pRUFnZ0NSSitmWWo5alVYV1BNN3RnQWNpNVVtUUNXUlNORFQwME1nRUtDbHBZVndPSnh2QjFKSVdWa1pKMCtlSkJRS0VRd0c4Zmw4ZUR3ZSt2cjZXRnhjWEhIc3pzek1jT1hLRmFhbnAvT1BuejE3bGxBb3RPRmp4T3YxMHQ3ZXpwRWpSN2JjVTlvRUZpSnBwbWVTek02bmFFamtFQlZ4NmJvSVN4QTlLSmhMNnJja29MaGxmRDRGdDF2YUtRRllaSlB0Ynh5Mmp5TUFGd0hUMExPR2tjTTBOT3ZpSDhBMEVVVUZSU2xEVXF6NE9rc1U1cVZqcW5nOHZ0MjRzWkppbWliRHc4Tk1UaDdrb3UxWGovMGNGK3M0SVV1TEhWVzExdjR0N0NseUVQSDVmSHowMFVkTVRFd3dQRHpNN2R1MytlU1RUM2p0dGRkb2JXMHQyZlBheDcwOXFDdjgvR3FhbG5jeU9qZ1UwdEhSd1lVTEYvakZMMzZ4WWdKL2JtNk9YLzNxVnh3NWNtUlhCT0RXMWxaT25UcEZNQmhjVnRYNzdOa3pidDY4V2ZJWTZGd3V4OERBQUFzTEMxUldWam9DY0pGb2JHemt6LzdzejVpZW51WS8vSWYvc082eUppWm1vVk50QXdpQ2hHbnFwSkw5Uk9hdS9hK3ArTE52RE4wUmYzY1pBVXNBYnNVU2dSdXhYSzViSmhRS2NlellNZDU4ODAzT25qMUxTMHRMMFFwQ1ptWm02TzN0NWRxMWE5eTVjNGVob2FIdFRLN3B3QXp3REt2djd5MWdBQ2djM0tuQU9KWUlITVlTZ0FOWXZaRTN4ZUxpSWowOVBjdGFkYlMzdDFOVlZWVzBubnQyaitGa01zblUxQlJqWTJOa3MxblM2ZlJtcnpPOFdEMlBHN0NjendFZ3djRlVISk5ZeDBtU0lyNStOWk5DajR3aXpJb2dsMEhPQTRJWFpJOTFreFRMRlN4SzFxZlVNSzJuTncwUVRHdEMwSEVJYnh4QkFMOExFRmljaVhQMTk4TjgrdWt6dnJrNlFuZlBuQlA1ZkVDUlpabnk4dks4MjdlNXVabnE2bXJDNFREbDVlVlVWbFlTRG9mSlpESkVvMUhtNStlWm5wNW1iR3dzNy9pZG01c2pFb21RU3FWSXA5UGtjcm50RmlVNWJJQkM0VjRVUlJLSkJDTWpJengrL0pob05JcWlLUG1lcXZiWTIvN3VMYnpQdnQrZUo3SG4ydXpIQytmZTdHVUsvMTk0S3h6bjJ5MmdYaFIzN2Jrd2U5N0c1WEtoS0VyK2Q5dkp2Sm41TXNNd2lNVml4R0t4VGJ0TlhTNFhraVNoYVJxNnJqdXBTbXZnZHJ2emhvRlRwMDZocWlxMXRiVU1EQXpRMTlmSG8wZVBtSjJkSlpQSm9Lb3FzaXlUU0NUUU5HM0YvRTh4c05Pd3VydTcrZVNUVHpCTmt4Lzk2RWNjT1hKa3hiSWVqNGYyOW5aa1dTWVFDRkJlWGs1WldSbFBuanhoWm1abVJUSkJLcFhpNGNPSGdOVldjbkp5a3ZQbno5UGUzcjZoU0doNDNrOTVvOHV2Umlhck16MlRaSEE0UW1OOWtNcHFQNUlpV3RkREIrMFV1M1Q0Q0xLSXl5VWh5eUk3NUF0emVnRHZBczRPTHdLbXFldUduc1UwN2JrbVcrVVZFU1V2b2lqenFnMmljcmtjczdPekxDNHU3a3F2UUFlSDFkaXZBdlplNThXQmhzTkthbXBxK09FUGY4aTllL2Y0eTcvOFM3Nzk5bHZ1Mzc5UFRVMU4wZHhKcTdIV2U1Sk9wMGttazJpYVZsSVhzc1ArdytQeGNPVElFUm9iR3hrY0hGeFJPR0JIbVVlalVjTGg4STV1VzFsWkdVZVBIbDBSQ1JXTlJubjQ4Q0dEZzRNME5EU1VwTCsyWVJnc0xDenc3Tmt6b3RFb3I3LytldEdmNDZBaXl6SVhMbHpnM1hmZjVjYU5HNHlOamEwcEdxblpXVEtwVVR6ZUZoVEZ1M1J0dmZaM3V5REltSmprY25ORUZtNzhlV1QrK2wrb3VjaDRpVjZLdytZSVlnbDlMVmhpMzViVldsRVVhVzV1NXR5NWMxeTRjSUcydHJhaWliL0paSkluVDU3dzlkZGZjL1hxVlI0L2ZzemMzTngycmlrWHNJVGRiNEh2c0NLZzUxbDVJS2V4WXBCTkxBRzRHaWhqa3hYeDJXeVd5Y2xKVkZWRlZWV1N5U1N2dmZZYVo4NmMyWENmdFplaEtBclYxZFVjT25TSXpzNU9CZ1lHaU1malcra0hMR0tKM0ExWUx1QmFMREg4SU9ianByRDZReWRmdHVCbU1OUXNSbVFNY3pvS1loa1k1U0NId0IwQ2x4OWs3OUpOQWFIZ1VNczdoSVZWSE1KT2RQUUtoS1crZ1FLWXVrRXVsdUgyOVRIKzRqODg0b3V2QjVsZmRQcjlIalJzNGMzdjkxTlpXVWw5ZlQwZEhSMTBkbmJTM3Q2ZWQ2eGxzMWxpc1JoUG5qeGhlbnFhMmRsWjV1Ym1XRnhjWkdGaEllKzJUS2ZUYUpybUZQT1drTFhjdkxhUXFxb3EwOVBUZEhkM1l4Z0dJeU1qZUR5ZVpkRzg5bnBlSEpNWDNtY3ZhNytYZ2lEay8yK0x2QytLeElYL0x4U1lYMHovc3VkcFpGbk91MjY5WG0vK1p2OC9FQWhRVmxaR01CakU2L1VpU2RLeXdySFZ5R2F6TEN3c0VJL0hOMTE4NFBQNWNMdmRKUkVwWDFWa1dlYjA2ZE8wdDdjelBqN08zYnQzRVVXUnJxNHVvdEVvaVVRQ3Q5dU5ZUmdsbjVkYldGamcyMisvQmF6eGVTQVFvSzZ1YnNYenlySk1TMHNMd1dBdzM5TThHQXp5Nk5FalJrZEhWNlNONmJyT2t5ZFBtSjJkWlhKeWtrZ2tRamFiNWZEaHcvbGV3K3RoWCt0dTY3eG9ta3hQSitoOU9rOUxVNWhReUkzazhRQUc2QWZ4V0xXdVoyUkoyQ24zTDFoakhRVTIwQy9Wb1dnNEFuQVJNRTAxcWVrcERDTlhjSitCS01ySWNoQlJMQ2g0ZjRYT0oyTmpZL1QwOUhEeDRzV1NUTVk2N0N6N1dkeDdzUXJUb2JnNC9hRTNSbnQ3T3ovLytjOVpYRnlrdDdlWHp6NzdqS2FtSmk1Y3VGQ1M1N1BmbDlYZW0zUTZ2YVhCbXNQQm9LNnVqa3VYTGpFNE9MaWlMMnMybTJWc2JJeWhvU0ZPbno2OW84a0tvaWpTMnRyS2hRc1hHQmtaV2ViQUd4d2M1UFBQUDg5SFdCY2J3ekNZbjUvbjZkT25KSk5KcDU5YWtSRkZrYk5uei9MV1cyL3g2MS8vbW1SeWRjMGprNW9nRVh0Q0lIUWFsN3ZTYWx1NUhvSkFManRIWk9FR2tmbHJ2MHduUjI0VmYrc2R0b0FBK0xHRTN4cmc1Yk02cStCeXVmQjZ2ZFRVMUhENjlHbE9uVHBGVzF0YjBaeXRkb1R5M2J0MytmYmJiM253NEFGemMzUGJXV1VLR0FUdUFGZXh4Ti9aZFphZnh4SkF5M2dlaTl5QTVaVGRNSmxNaHNuSnlYejZoNjdyaEVJaHlzcktxS3FxMnNMTFdJa3RBcmUydHRMUjBjSDA5RFRSYUhTekFqQllUdkJxb0Iwckd0eDJ3aDYwQ3hZRHExZ2dReEZuQ0F6ZFFFdW5VR01aRkY4U2pCaElmcEI5U3c1Z055aTJHOWdGb2h0azE5Sjkzb0w3N2JIOWtqdllOSjg3aExGL0hsQkVBV1FSUERKa2RZYUhGcm4xM1NpZmZ0clBsVzlIbUpvcHFxYnZzQThvS3l1anFhbUpwcVltcXF1cktTOHZ6OThxS2lxUVpUbnY1SjJibTJOa1pJVEJ3VUZHUmthVzlmTzFlL282b205cHNaMng5aHltcXFyTEhOYUdZYUNxS29sRUFsM1hNVTJUYkRiTDFOUlVYb0F6REFOTjAvS2lyQ1JKZVZIMXhSdXd6TUVyaXVLcWd1K0x6dDlDd1ZnUWhQeHpxcXFhZjI1Yi9MWDdwSG84SGp3ZUQyNjNHNC9IazMvTTdYYmo5L3Z6UFZzckt5dXByYTJsckt4czFYMWttaWJKWkpLNXVUbGlzZGltamtsSmtnZ0dnNFJDSVR3ZWp6T1B0QW5zOTYrOHZCeVB4NFBQNTZPaG9ZR2JOMjh5TmpaR0lwRkFGTVVWenZCaVk1b21pVVNDZS9mdVVWOWZUemdjNXRLbFM2djJCSllraWFxcUtrNmZQbzNQNTZPc3JJeUtpZ3B1Mzc3TnMyZlBTQ1FTeTViUDVYS01qNC96M1hmZmtjMW1tWitmNTYyMzN1TGt5WlBVMWRXdHUwMzJaMng3cncybVo1SThHMWpnUkdjVlJ3OVY0SkVFTUE3Z2NXcGlGYlJKSW9vaUljbmlUbWxXRW80ZXVlTTRPN3dJR0lhYU5iUWt1cDdOMThxYXBva291bkI3NjNCNWFoQUVCZFBjZU0rRS9jQ3paOCs0Y2VNR1I0OGVwYkp5MDRsbERnNUZaVDlIV084SDFoT0JEM29FdEkzUDUrUDk5OTlIMTNWKzhZdGYwTlhWeGJmZmZrdG5aMmRKb21SZkhGZ1dZdmVSY2tRc2g5V29xYW5oNy8yOXY4ZlRwMDlYQ01DYXBqRTRPRWgzZHplSERoM2E4UmpreHNaR2Z2N3puek05UGMxdmYvdmIvUDF6YzNQODRoZS9vTDI5blVPSERwVmtNaUdkVHRQZjMxL1Mza29IbVdQSGp2SE9PKzl3NDhhTk5RVmdOVGRQSXRwTnBtSVl0NmNHeTVFbXJ1Z0ZMQWdpSnFDcmNSTFJSOHhQL3U0ZkphUGRuNVQrVlRoc0VBRkx4S3hnRys3ZlVDaEVSMGNIcDArZjVwMTMzdUhZc1dNckVnSzJTanFkWm1CZ2dEdDM3bkRuemgxNmVucUtJZjcyQS9lQmUwQXY2NHUvTmpIZ0NaWW82Z0V1QXAxc3NpcmU3bUZ1R0FiQllEQXZSSGc4bnFLZHh3T0JBRFUxTlRRMk5sSlZWY1h3OEhDK045MG1xY0FTZ0k5Z2liOFJMRWYwUVNNSmJGcEJYdzhEeUdnQ3FTejRNbG5RTlRCamx0dFhXRHFmaWdySWJrdndWZnlXTTlpOTVCSjJCNjM3WkxjVkU1MVBOck8vYyswK3d2YmhXVEQyV2pZTWV3WEhaSGIvWkZFQTNjQklxc3hNeHJqeTlTQi84VmVQdVhGcmdvWElRVFN6SDB4c2wyZ3dHS1MxdFpXVEowOXkvUGh4R2hvYThpN1JaRExKN094c1hnUkpKQkxNejg4ek9UbkoxTlFVOC9QenBGS3B2TWpvVUhvRVFjRGo4UkFLaGZCNnZSaUdRVHdlSnhxTjV0OEhYZGRKcDlPazAybFNxVlQrdnNYRlJTUkpXbFVBdGgyNGlxSXNFNE5sV1Y0MlpwZGxPWitzVnZpZXY2eEhzQzBBMjl1VXlXVHlncGdkOCt4MnUvTy8yOEt3TFU3YjIraHl1U2d2TDZlOXZaMlRKMC9tSGNLclBYY3NGc3NMd0pzcEtnK0ZRclMydHRMVzFrWjVlYm5UcG0wTFNKSkVSMGNITlRVMUhENThHSy9YeSs5Ly8zc21KeWZKNVhLWXBvbWlLUG5mUzhYYzNCelhyMThuSEE1VFhWMjlxZ0JzWS9jRnRwM0FmcjhmV1paNTl1d1prVWhreGZMVDA5TmN1WEtGbVprWlptZG5TU1FTdlBubW05VFUxS3g2ekFpQ2dNL25JeGdNYml2aHpqQk1GaGJUREk5R21aNU5rbE0xRUVVUUQ5ZzUyRTUxRVFCUnd1MlNVT1FkN1FIczZKRTdqTFBEaTRLZTBZMkNDR2lCcFQ0NkVySWN4TzJ1eCsydUpwdVp4SHlGQmtORFEwUGN2SG1UUC96RFAzUUU0SDNPcStEd0xJelZjZGhaSEFINE9hRlFpQTgvL0JDWHk4V25uMzVLTXBsa1pHU0VRNGNPRlQyS3ViQUg4SXRNVEV6UTNkMU5NcGtzbXZ2SDRkVkJsbVZPbmp6SjBhTkhjYnZkS3h4Y1Q1OCs1YzZkTzd6Ly92czdMZ0M3M1c3ZWV1c3R2dm5tRzc3NjZxdjh0aG1HUVU5UEQzZnYzdVg3My84K2pZMk5SWjlRVUZXVldDekcrUGc0ZzRPRG5EcDFDbzluVzIxTEhRcW9yS3prL1Buek5EWTJNanc4dk9veXBxbVRTUTZ4T0hzVlJTbkRIem9HZ29pNVFnQ1d3TlJKSndlSnpGMzdIeEt4SjcvUjlhd3o4NzYzVUxDY3YxcytpWVJDSVk0ZlA4Nzc3Ny9QRzIrOFFVTkRRMUUyekRSTnhzZkh1WFBuRHQ5KysyMCs5bms3cThTSzg3MEgzTVFTZnhmVy9ZdmxUQzc5bllRVkIxMkJGWSs4dVkwd1RlYm01aGdjSE9UUm8wZDVCMGxiVzF0UnJrSHMyRDE3RW5zYkNWQmVyTUtBV2l6WHM0dURLUUNuc1J6QU90dUlTQy9FTUFUU09aRjRScUJDTlJGTkZjd2NHSVoxbE9iZEhqS0lyaVVSMkFzdTMzTXgyTDVQZG9Qa3NSekMwcEl6V0hhRHNOUkhXRmdTaDE5MEJkdi9mMVdjd2xabkwxQWtrS3crZ2JHNUpNOEdJOXk2TmNZWFh3L3k3ZlV4SXRHaWF2a09lNWhBSUVCdGJTMDFOVFZVVmxibUMyUEt5c3B3dVZ3WWhwSHZjVGs2T3NyWTJGamU2WnRJSklqSDQvaytuZzQ3ajlmcnBiS3lra0FnUURhYlJkTzBaWVdmdHVBTDVJVmZUZE5ZV0ZqSUM3R0ZNYzIyeUdwL0w2N21BaTRVaEF2amx3dC8ycjhYUmo0WFBvZGhHT1J5dWJ4VEhNaUx6YmFyMmQ2T3d1Mnh0OGwyUGNmamNZQjhVa2hEUThPcTh3bXBWSXBZTEVZcWxkclVYRTk5ZlQxdnZ2a21GeTVjb0xLeWN0L1BNKzRXaXFKUVhsN08yYk5uU2FWU3VGd3V2dnZ1Ty9yNitwQWtDWi9QaHlBSUpVME5NQXlEb2FFaDd0Mjd4L256NXpsNjlDaGxaV1ZyOW5TMit3TGJiblNmejBjZ0VPRHg0OGZNek13c1c5WTBUZUx4T0E4ZlBzeEg0OC9OelhIdTNEbU9IVHUyYXRxUDErc2xIQTduKzFsdjlYVW5VeXBUMDBrV0ZqT29xbEhRL3VLQUlvQWtpeWlLaUN6dldMOXVwekpraDNFRTRDSmdHcnFtNjBrTTNaNTNXanB4bURwZzR2VTE0dzhkUjFVWDBQVlhaMjRxR28weU5EUzBJdGZmWVgreW4wVmdKd0o2OTNHaWhwOFREb2Y1NElNUHFLbXBZV0ppZ2tna1FpYVRLYm9BYkE4bVY2c2lucHVibzd1N2UwWGtqb09EamQvdnA3NitudXJxYXNiSHg1Y2RQNU9UazNSMWRURS9QMDk5ZmYyT2IxczRIS2ExdFpXR2hnYUdob2J5MjJhYUprK2ZQdVh1M2J0NVoxdXhzQ2RaWkZrbUVvbncxVmRmY2VMRUNVNmVQRm0wNXpqbzJOWHNIMzMwRWVQajQydUt3Sm9XSnpKL0RiZTNIcmV2QVVVcHcwUmtXUjYwSUlHcGtVNE9rWWcrL0V4VGs1RWRlUkVPbTBIRUVyVzJMR3k1WEM0YUdobzRjZUlFaHc4ZlhuUENhYVBZa1hiejgvTThmUGlRR3pkdWNPZk9IVVpIUjdjU1pXeVR3Uko3dTRIYndBTXNNWGd6SzFTQklTd0hjQzNRaUNVR1Y3REpDUkxETUppZW51YlJvMGY1eVRlLzMwOWRYZDIyVy9iRVlqRm1abWFZbXBwaVlXRmh1eWtqQXRacjI1K0RqK0tRd25JQkYrMGkyakJNa2xtVGVGcEFWMEdVYmNldVJON3BBVmF4dXA0RFF3TXRDUm5KY3NBSXNpWHV5aDVMQkhhSHdCVUFWM0RwWjJCSklQWll5Njc2N2duUGY3eHNiTG51MEcyUGpPdEVMTWV6QUdRMEZoZlRQSHd5dzVmZkRQSGJ6L3A1MmpmdmlMOEhBSHV1eE8vMzA5RFFRR2RuSjRjT0hjb0xYS3FxNXFPZE5VMGpIbzh6T3p2THpNd01Nek16TEM0dWtrcWxVRlhWR1RmdklvcWlFQXFGcUs2dUpoZ001Z1g1OWNoa01taWF0cTVyOThYV1RJVS9DMzlmVFJBdUhOTVhGbmZidllQdFFnSDcrUXBGcnhmWFY5Z1QyTzEyTDR1RjlucTlLSXFDcnV1SW9waVBpcFlrYVVYMHJtbWFaRElaNHZINHBnWGd4c1pHM256elRjNmZQNytodnE0TzZ5UExNcSs5OWhybDVlVW9pcEl2Q01oa01yaGNybVh4OGFXWUQ4MWtNb3lNalBENDhXT09IRG5DcVZPbjFrM2pFVVdSaG9ZR2ZENGY0WEE0SHdYKzhPRkRwcWFtVmhTK1pMTlplbnQ3bVoyZFpXaG9pTEd4TVhLNUhHZlBubDF4L0xoY0xzckt5dkxyM0tvV29Xb0cwV2lXWkVKRnQvditIdVNyVVVBVUJWeUtoTnU5WXdLd2pGVW8vT3FJWkhzY1J3QXVBb2FwSnJYY0lycHVUYlFMQ0ZiTnE2bGpBdDVBQjZIeTEwakVIcVByVTd1NnJjVW1tODJpcXE5V3RQVkJaYTBvMmYzQ1drNUloNTNCY1FBdngrZnpjZWJNR2FxcnE4bGtNdmtCWXpHUDBjTEIzbXJyalVRaVRvR093NXE0M1c3YTI5dnA3T3hrYm02T1RPYjV0YmRwbWd3TkRkSGQzVTFIUjhlT0Q5NXRvZkRFaVJOTVRVMlJUajgzaHZYMDlIRDkrblhlZlBQTmRmc0ViUlo3d096eGVJaEVJdnpxVjcvaTRzV0xqZ0JjWkdwcmEvbXpQL3N6Wm1kbitWZi82bCt0ZVEyWnpVd1JqejdFSCtva0dENk5KSGxYL1o0eFRCWGR5RHA1M1hzVEE4Z3QzVnhiV1lFOVNXUzdXclpMTnB0bGZIeWN4NDhmYyszYU5XN2Z2azFmWHgveGVIeXJrMllhTUkwbC90NEE3Z0o5UUp6TnExZFpZQlRvd3VxYkRIQUNTd1RlRk5Gb2xON2VYalJOdyt2MUVnZ0VFRVdSMnRyYUxlOUh1L0QzeVpNblBINzhtS0dob1RXajNEZEFHcXYvOFF4V0JQWkJ0Y0ZwV0JOZlJYdjl1Z25aSEtTeW9Ha0NpaUlVaUw2RlM1cExKbDBkTkkxOHIxOGJVVm5xRGJ6a0NsWjhTOEt2NzdsRFdIS0RyRmpMMm4yRFJmbjUvMjB4V1JCNEhpVmQ2Qkl1Mkk1bEcyY1cvTmpJL1NYQ3hJcDc5a2dnaUtpcExLUERVUjQrbk9icTlWR3VmamZLblh1VGFNWWVFYW9kU29iYjdTWWNEaE1PaHlrdkw2ZXVybzdXMWxhcXFxcncrWHo1d3FLcHFTa1dGeGRKSnBONXQyOHltU1NWU20xYVJITW9Qb1VSc3ZiN0tVblNodnJVbHNxdHZacGIrRVVCdUxCZzRFWG44R3FDc3oxSDRISzVVQlFsM3cvWTYvWG1CZWU1dVRuaThUaVpUQVpWVlVrbWt3UUNBUUtCQUg2L0gxRVUwVFNOUkNKQk9wM2UxTEViREFacGFHZ2dHQXdXY1U4ZGJQeCtQOGVQSHllWlRLTHJPcElrTVR3OGpDekxoTU5oMHVsMDNxMWRpdm41K2ZsNXVycTZhRzl2cDY2dTdxWHRXQ1JKb3JLeWt0T25UK055dWZLZnUzdjM3akU2T3JwczNnR3N2c0JUVTFQNVl6S1pUREl4TVVGblp5ZHRiVzNMRXNuOGZqL2hjSmhnTUxpdHVhNWNUa2ZWZEp5dmNBdEJBRmtXY2J0MlJBQzJXd1ZWc3JuRUpJZHQ0QWpBUmNBMHRJeXVKZjVVMTlML0huaHVBRGF0S0FIRlhZblgzNDdMVTBzdU00UEpxM1BoWjFlR09leC9IQUhWd2FHNHVGd3VHaHNieVdReUtFcFJrdjFXWUZjTHIwWXVsMk4rZmo0L1NIQndlSkhEaHc5ejl1eFo3dCsvditLN2ZISnlrbC85NmxjME5qYnk5dHR2Ny9pMnRiVzFjZnIwYVc3Y3VMRk1BSjZlbnVibXpadU1qSXdVVlFDMkoxSHN5dml4c1RHZVBuMUtJcEhZOFJqc1Z4bEpramh5NUFqdnYvOCtOMi9lNU1tVEoyczZMOU9KZmhLUmgvajhIY2hLR0l5Q0NRM1RBQVE4M2taOHdTUHZTNUpuUU5jelR1VEIzaUlMSkxBRXZrcTJVRnVmU3FXWW5wN09mOTZycXFxMlZheVl6V1laR1JuaDVzMmIzTDU5bTRHQmdhMzJzTFdKWWZYOXZRSGNBUWF3K3RsdWxjVFMrb0pZb25rWUswSjdVd0s2cG1uTXpzNmk2M3JlZldIM0I5eHMyeDVWVlZsY1hLUy92NTg3ZCs1dzkrNWRlbnA2bUppWTJJN1RKQTZNQVlOWWZaSVBjald4UmhFRllNT0FyQWFaSE9SMDhOcnh4YXVSYis4ckxQMFVlUzZ5R3FEbHdOQkJUUzcxRUJhZmk3eVM1N2xMMk9WN0xnem5ld3Y3ck1kbDk1SjdkcldOMk1LNDA5YVNYL3pibHg2S1d6aFdSU3dCV0JBZ3JUSTh1TWpWYTZOOCtmdGhidHdlWjJ3ODdvaS9Cd0M3ejI5RFF3UDE5ZldVbFpYaDgva3dESU9wcWFsOEQ5bUZoWVY4TDB0YmlMSEZPenN5MkdGMzhmdjkrYmp1cHFZbXlzckttSnViWTNKeWN0ZU1FSGJFY3lHRkVkQXZZb3ZCNjgzYkZicVJDMTNCaXFMay8rOTJ1L05wSHBGSWhOSFJVV3BxYXZMN1I5ZDF4c2ZIbVptWklaRkliRW9BdHRQSkhJcUxKRW1jT25VS1NaTHk4enVaVEFhUHgwTThIbWR5Y25LWnNGL01jMDRpa2FDbnA0ZVdsaFpPbmp4SlIwZkhodjR1RkFweDh1UkpRcUVRNFhBWXY5L1AzYnQzR1JnWVdOVjVuMHdtZWZEZ0FWTlRVL1QyOXZMdXUrL3k5dHR2Yy9Ma1NjTGhNR0FWNU5UVzFsSmZYMDgwR3QyeUhpR0tJSWpDZ1U1K0xrUkFRSlpGRk5lT25Bc0ZMUGR2TmZCc0o1N1F3UkdBaTRKaHFGb2cxRGxuNlBZRVZrR1pyUW1DS0NNcllkenVXbExTTTNUOTFYRms2YnErYkdMV1lYOWk5eTNaenlLUk03QnkySXZJc2t3Z0VDalpzZmxpcFhBaHlXU1NodzhmY3VyVUtacWFta3J5L0E3N20rYm1aczZkTzhkZi9kVmZNVDgvdit5eGVEek9aNTk5eHBrelo3aHc0VUxSSTh4ZlJuMTlQY2VQSDEvaFBzN2xjblIzZC9QNTU1OVRWMWRIUzB0THliWmhjbktTNGVGaGpoOC92cThUTXZZaVo4K2U1YU9QUG1KNGVIaE5BVGlYblNVUmUweW80blVVZHlXQ0lDMzFBall4VFEwVDhBVU9VMWJ4MWovUEpBYXZBN2QyOGpVNHJJdUpGVzlydXp4OVM3ZE5rVWdrR0JnWTRONjlld1NEUVU2ZE9yVnBBYk9RV0N6RzBOQVFEeDQ4b0xlM2Q4VjViN09ieDNQSDdrM2dDYkN0UnNKWWJ1bEpuaytNMUdDSndYVlk4ZENiWW1GaGdlN3VibHd1Rnk2WGkyQXdpTmZyM1hDcWc2cXFURTVPMHRQVGt4Zk5uejU5bWhjOXRvZ0pSTEVFNEdFc3dmeWdPb0JGck5kdW5kaUtFRUJvbXFCcWtGR1hqTDFyWXNjMEM4ditXN0FtYTRzTURYU1Y1UTVoWVVrRWRqMFhnV1hQa2lQWWJmMVVsdjR2dVVDVWxwekE4dEtNcTJUZEo2enl1eUF1OWVJVG4vK084UHh4Ukh2V2x1ZHE4RnB1NHBmOWY0MzdUTlBxOWV1UlFSVElKVldHK3hhNGNtMkVUNzhjNE1idENZWkd0bFU0NHJBTlhvemhMUVdTSk9GMnUvTzNjRGhNSUJCQWxtVnl1UnpwZEpwTUprTTZuU2FielpMSlpFaWxVaVFTQ2FMUktLbFV5cG1YMkVQWUx0L3k4bkthbXBvNGZ2dzR4NDhmSnhBSU1EQXdRRjlmMzU1eVoyL2syRmx2bVkzOHZTekx4R0t4Zk4vVjN0NWVLaXNycWFpb29MYTJGdE0wR1J3YzVPblRwMFNqMFEwZno3YjQ2OFNjbDRaQ0ozQjVlVG5wZERvZlAyL1A2ZnI5Zm1LeEdNbGtrbXcyVzVSemtXbWFURTlQOC9UcFUwWkhSMGttazZ2MjZGME5uOC9Ia1NOSGtDUXAzMy83enAwNzlQVDBNRDA5dmVLemwwcWxHQndjSkJxTmtrd21tWnViWTJSa2hHUEhqdEhlM2s0Z0VPRG8wYU4wZG5ZeU16UER4TVRFbGw2VDJ5MmpLS0lqQU5zSUlFa0NpbXp0a3gzNENwT3hYTUFPTzRRakFCY0pUWTNQR29ZdGhLNmNKSlJrTHk1UExiSVNmdVVFNEczMHpITFlJeFJHeWE2RkpFbUV3K0Y4VDVzWEx5UmtXYzZMeUQ2Zkx6OUlpa1Fpek0xdGR6NXNmUXpEY1BycDdDSk8vK1dYVTZvcVdLL1hpOS92UjVLa0ZkRlVpNHVMWEwxNmxYUG56amtDc01PcWhFSWhPanM3cWEydFpXUmtaTVhqczdPelBIdjJqSkdSRVE0ZlByeWoxZHoydHRYVjFhM1l0dW5wYWY3ZHYvdDMxTlhWOFovOEovOUpVUnoyZGcvZ3duUFo0T0FnWFYxZHRMYTJPaTdnSW5QNDhHRXVYYnJFYjM3ekd4WVdWazkrTW93Y3lYZ2YwWVZiS0VvWkhsOHpnaWhoR3RxU0VDeWd1S29JaEU4UUNKLzZvZUlxbTFCemtmR2RmU1VPYTJDTGZFTllqdFlBME1BbXg1NnBWSXErdmo3OGZqOCtuNC95OHZJdEM4Q3BWSXF4c1RINit2b1lHQmhnYm01dU85Y3VLWjZMdi9ld3hOOUppdU5rVFFBalFBaXJIN0FmYTNDNTZmMEhWaUdMYVpwNHZWNHFLaXJ3K1h5MHRyYSt0SWU2cXFwTVRFenc2TkVqcmwrL3pwVXJWM2p5NUVrK0RuSWJ4TEZjdnhQQUZOYnIzVHN6N3p1TGdSVUJuYU5JQXJCaFFsYUZkTTRrcHduRldhc0FtTUlMRG1FZDlPeFNEK0ZVZ1hoYktPb1dDTG1TQzBRN010b0ZrbUxkN045RkJTUTdNbHA2N2pTMi8xNlVscFpaV2xaYzZsbThtUmUzN3NlOVlEMmlzQ1F5QzVCUTZYczZ4emUvSCthekwvdTVjV2VDNmRrdFI1ODdiSlBDeU50U2pqMWxXY2JyOVJJS2hmRDVmTGhjTHRMcE5LbFVpbHd1bHhkODdYWm90dFBYN3RmcWpJdjNEaTZYaThyS1NxcXJxNm12citmWXNXTmN2SGlSVTZkTzRYYTdrV1daaHc4ZjVudXBIaFRzT2IxME9wMFhnTzFpTVkvSGcybWFaTE5aNHZFNHlXUnl3d0s1ZmIwbXk0N1VVQ3I4Zmovbno1L244T0hESkpOSnBxZW5DUWFER0lhQjMrOG5Ibzh6TnpmSDdPd3NrVWlrYUc3Z1RDYkR4TVFFUTBORGpJNk8wdEhSZ2N1MXNZQWFVUlJwYlcwbEZBb3RTMU80ZCs4ZVkyTmpxMGFzTHl3c2NPdldMWWFHaHJoMzd4NlhMbDNpZ3c4K29LV2xoWWFHQmc0ZlBreDNkL2MyQkdBSlJSRVI3Zm1OZzNyYU5xMzJISUpnaWI5dWw0d2lpK1RVa2wrYUM2eWRVZU5RQXB5emNwSFExT2lJcnFYK0F2Z1RZY1ZBeEVDVVBMaTk5Y2l1Y3JLWnlkM1l4SktncWlxeFdJeDBPbzNYNnhSdjdGY0srNGk4ZUg5dGJTMXZ2UEVHNTgrZnA2eXNERjNYVi9Td0tSU1E3VWdaajhlREpFa2trMGw2ZTN2NSt1dXY2ZTd1THNuMjY3cE9NcGtrazhrNHZVWkt4SG9YallXRGNZZWR4Yjc0dlhQbnpvcGluSFE2emNEQXdKWXZpaDBPQnMzTnpiejc3cnY1bU5WQ2RGMW5jbktTd2NGQldscGFkdFFGTEFnQ2JXMXQvT0FIUDJCaFlZRyt2cjc4WTRaaDhQanhZNjVldmNxbFM1YzRjdVRJdGljYVZqdVA5ZmYzYy8vK2ZUNzY2Q05IQUM0eUxwZUxVNmRPOGNZYmJ6QXpNN09tRTFQTkxiQXc4dzB1ZHhXS3B4cEo4bFBZUzFJUUJEemVaaXBydi9mUE5EVTJLNHJ5dnpTTUVqVnFjOWdzaTFpOWNhdXdJcUNyMmVUWVU5TTBabVptZVBMa0NkWFYxUnc5ZXBTV2xoYkt5c28ydFNIcGRKcWhvU0VlUFhwRWIyOHZNek16MnlrYTFMRmN6USt4b3A4ZlVUenhGNnlETzQzbGpyMkQ1UVFPWURtQnl6ZTdza0lodDd5OEhMZmJqU1JKdExhMnJsazhrMHFsbUp5YzVPSERoOXk0Y1lOYnQyN3g2TkdqN1RxbXdSTE9KN0hjdjFOWVJRSUh2WG96aWJWZkRJb3dFV2FZa0Z1S2dOYTJ0V2Z0M3NIck9JUmhTUWpXd2N3OXZ3OXpwWFdrc0U5d1h2eGQ2aGVjN3hzc1dTN2h2SUFzTDBVdzI2THkwcktTL0Z3VVJsaDZ6SFlRU3kvOFgxenBOa1pjV20vQnNpeUp5YklBYmhGTWcvaGlpdjRuTS96KzIyRysrR2FZTy9jbm1aaHlPZzNzTkM4NmZrc2xyaFlLeTNaUm9LWnBaTE5aY3JrYzJXeVdkRHFkZC8yV29zK21RM0dSWlptcXFpcU9IeitlN3lWNjZOQWhUcDQ4U1d0cmEzNnVxckd4a1ZBb1JDd1cyKzFOM25FMFRVUFROSkxKN1JlMnlMSk1SVVVGWldWbEd4WUdIYlpHS0JUSzkrRXRLeXZMeitmNi9YN0d4OGZ6MGVKMkgrbGNMbGVVNTQxR293d05EZEhmMzU4dnJOZ29pcUpRVTFPVEx4SUloVUtVbDVkejc5NjlOVnV5MkM3MXFha3BZckVZOFhpY0N4Y3U1TnViYkdkOExzc2lzdVMwUWJRUkJIQzdaUHcrQmJkYkpxY1c1NWhaQnhsUWxuNDZZL2Nkd0JHQWk0U21KU1BOSGYrUHhQTm9KQnNUVEIxSjh1SDF0K0gyMUpDTVBkbVZiU3dGMld5V21aa1pvdEdvSXdEdmMxWnpBUHY5Zmo3ODhFUCt5VC81SjN6d3dRZGJubUFmR2hxaXJxNk92LzNidjZXdnI0OTRQRjdVbUIxYmxIYmM2S1hEaWRqZW03UzJ0bkwrL0hrKytlUVRGaGNYbHoxbW1pYnhlSnpGeFVXblNNZGhUY3JMeS9uUmozNUViMi92cWk3Z29hRWhuang1d3V1dnY3N2pNZENWbFpYODdHYy9ZM2g0bUtHaG9SWFZ3WThlUGVMYmI3K2x1Ymw1MndLdEtJcDR2ZDVsRXhiVDA5TThldlNJMmRsWmFtdHJ0N1YraDVVME5qYnkwNS8rbE1uSlNiNzQ0b3RWQlRuVDFFZ2xuaEZkdklNdjJJay9jQmhCVkRDWCtnRWJob29zQndpVlh5Q2JtZjQvMHVteEI4RDFIWDRwRGlzeHNRVGd4MWp4WGcxQUs5QzQyUlhsY2prbUp5ZnA2K3VqdTd1Yit2cDZEaDA2UkhuNXhyWFE2ZWxwN3QyN3gzZmZmVWR2YisrcWZjYzJpSWtWODl3TmZJZDFyQTFnOVRzdU5ndFk0ckxkQzdnY0t3WjYwMS9tdXE0elBEeWN2NDUzdTkwRUFvRlYrNmluMDJtR2g0ZnA2dXJpMnJWcjNMeDVrNEdCZ1dLSXZ6bGdHdWdCZXBkK1ArZ1g3Z2FXSXpxT05mbTE3YmtadzdUaW45TlpTd2cyemVjcHlqdnJibm5oQ2ZPTzRSeG9CZkhPK1pqbmd2OGpGRVEvRjBaVkZ5N0Q4NzhWWGMrZHhZVXVZZm1GLzBzdTZ5Wkl6OTNHOW4yMjI5Z1VBUmtqbnVWeDF4Uy8rMTBmWDE4ZDRuSDNIUE9MVHR1cm5lWkZ4NjlwbWlXSmdINnhDTkFXeExMWkxKSWtZWnBtM3Qzck9IejNCMTZ2bDdxNk9vNGRPNVkzTXh3K2ZKanE2bXBDb1ZBK0JhT3BxWW5Pems2T0hEbENJcEVnRW9uczdvYnZZNExCSUcxdGJUUTNOMjg0SHRoaCsxUlZWU0hMTWg2UEIxbVdVVlVWVGRNUVJSSFROTW5sY3ZtRWd1MlNTcVhvNysrbnU3dWJ0clkycXFxcU5pMmcrdjEramgwN1JubDVPZlgxOWRUVjFYSDE2bFVlUDM2ODVyV20zZHBzZG5hVzRlRmhUcDgrVFNhVDJkYWNzcTRiR0lhSmVXQ3R2NFVzRlZWN0pJSkJOMTZQVENLWksyVU10SUExdmluREtuUTllTlUzdTRBakFCY1JYYytrZEQyRElMb3BIUFFZaG9Fb2V2RDYyL0g2V2hFbEw0YithZ3dnYkFFNEVvbXNPb25nc0Q4UVJSRkZVVllJdkhWMWRmenNaei9qM1hmZjNaYTdxcTJ0amYvNFAvNlBhV3BxNGxlLytoVmZmdmxsMFNzc25Samkwdkd5L1dwWFNUdnNQQlVWRlhSMmRxN3BmRjljWEdSMGRKU3BxU25hMjl0M2VPc2M5Z01lajRkVHAwNXg2TkNoVlNmVit2djd1WFhyRmovOTZVK3BxS2pZMFcyVFpaa1RKMDV3N3R3NXZ2NzZhMFpIUjVjOTN0M2R6YmZmZnN2M3YvLzlvZ2pBNWVYbHk5YWphUnJQbmozai92MzdORGMzRXc2SHQvVWNEc3NKQkFKOC9QSEg5UFgxMGR2YnkvRHc4SnJMcHVMUGlDM2V3ZVd1d3UycHcwVERkZ0dEaVNoNUNZWlBrMGtOLzRuaXJwaFVzd3Rycjh4aHAwZ3QzUUxBSWVBd1ZxeXhENUEyczZKTUpwTjNwTnFPaHlOSGpoQUtoVjQ2OFpUTDVSZ2RIZVgrL2ZzOGVQQ0F5Y25KN1Z5elJJQStyTmpudThCVExQR3VGR2hZTHRrZXJGN0FOVmo3cmhXclluNVRKSk5KK3ZyNmNMdmQxTlhWMGRUVVJHVmw1VElYY0NhVFlYaDRtSHYzN25IOStuVnUzcnhKZDNkM3NhN1pWV0FjUzlUdXhTb1FjTEErSXdtSzVINHdETWlwbGdOWXRlZDZTMkp1ZVZrUDRkV3crKzNxbGlCczMxZndZM1dWZXAxbGJBRllzdDNFaFlKdm9idFl0bm9TaThxU0FHekhUQy85cmFLQVY0R2NSSFJHNG1sUGlrKy9HdWQzWHc3eXFIdVdlTHprVGhpSEpWNG04TzdFZU44d0RISzVYTkZjY3c0N2l5UkpORFkyOHNZYmIvRFdXMjl4OHVSSmpoNDlTa05Ed3dyRFF5Z1U0dFNwVTF5K2ZKbG9OTXI5Ky9lZGVZMHRVbEZSd2JGangvTFhadzQ3Z3lpS1ZGUlVJQWhDdmpjNVdPZEt1MWV2bldDdzNmTm5McGRqWkdTRXZyNCs1dWZudCt5ZTlYcTl0TFcxRVFnRThQdjlCSU5CS2lzcmVmTGtDWk9UazZ0ZWR5YVRTZnI3Ky9QOTFuMCtINGxFQWtWUjBIVjkwNS9iVkVvbGs5R3cva3dvMGJYUy9rRVFRRkVrUEY0WmwydFR3N1N0NHNFcWJ2WGpDTUE3Z2lNQUZ4RmRUOFpVTllJa0Y4YlRBUmdJZ29LaWhQRUZPdkQ2MjBuSG4yR1krejgyUmxWVjR2SDRnZXFYOFNvaUNNS3FEdURxNm1wT25EaFJGTmZYNGNPSGtXV1p5Y2xKYnR5NFVWUUIySTQ4V2ErSHNjUFdzY1gxdFM0WTdhcG9oNTFIRkVYcTZ1bzRkT2dRdzhQRHBGTExlOHduazBtbXBxYVltWm1ocGFVRlNkcVJpem1IZlVabFpTWHQ3ZTAwTkRRd01UR3g3TE51OStDY25aM2RsU0lDajhkRGUzczdIUjBkVEU5UEw1dU1TeVFTZEhWMTBkM2RUVzF0N1V0N1dxNkhJQWdyQkdDQWlZa0ovdnpQLzV5YW1ocCs4SU1mYkhuOURxc1REQWE1ZVBFaTU4K2ZaM1oyZHNVNXpDYWJtU1llNlNKY2ZoNjNweFlFQWNFRUV4UEQwRUFBcjcrRmNNWEYveW9SNi9rV0t6N1hZVzh3Z1NYNk5XSU45Zyt6aFNqajJkbFpIang0Z0tacFM4VzFJdTN0N2VzNmdRdmR3ejA5UFF3TkRXM0gvWnZCY3Z2ZUJtNVJXdkcza0Vtc1hzTmhMUGV2SDZqZnlvcFNxUlREdzhNOGVmS0U5dloyYW10cmFXMXRCYXg5TlRBd3dPM2J0N2wyN1JwMzc5Nmx2NysvbU5mcmRtL2pSOEF6clBqbmc0NkJGZmR0QzhEYjd0aHJtcEJWVGRJNVVEVVQweFRZOCttR1p2NmZGKzljWHhpMi84NVF3ZFJBeUdHNWhGKzhDU3Z2UTFqK3VFc0Nyd3NqTFhPL3grUTNWN044ZVROS1QzK01STklSQVhjQ1cwaDQwZkZyLzE1S2RpSmkybUZuY0xsY05EVTFjZkhpUlg3ODR4OXorZkpseXN2TENRYURxODRWU1pKRVoyY25xVlNLMmRsWlJrWkdtSnViMjRVdDMvL1UxTlJ3NHNRSmpoNDk2Z2pBdTBCWldSbEhqeDRGck0rQllSaWtVcWw4VW1JMm05MzJuSjJxcWt4T1RqSThQTXpDd2tJK2xXR3JWRlZWY2Y3OGVhcXJxMmxyYStQNjlldmN2WHVYM3Q1ZTV1Ym1WaFYxWjJkbmVmejRNWDYvbjFRcWhkdnRKcHZOYmxvQWppVlU0b2tjbVl3S3B2SDhDdXlnZlFXWXdOTDdxQ2dpYnBmVkc3a1VhUnNGMkE3Z01GYWhzTU1PNEFqQVJVUlRJOU81ekF3dVZ6V2k1TUVzaUlNMjBRRVRyNytkVU5sWnN1bHhESFgvajN0TjAwVFRORWY4ZVFWNHNRZXdMTXZVMU5RVXRYOUhSVVVGZFhWMU94NGo2ckE5N1A0aEwrc0Q3TEE3bEplWDg5WmJiL0hzMlRONmUzdVhQYWJyT2dNREF6eDU4b1FUSjA0NFBiSWRWa1ZSRkpxYW1qaDA2QkF6TXpNcitwcE5URXh3NDhZTjJ0dmJOOVhycDFnY09uU0lNMmZPY1AvKy9SVnVqSkdSRWY3dTcvNk8rdnA2enA0OXU2M25DUVFDSzBUa1pETEpwNTkreXBrelozanp6VGMzNURoMDJCd2RIUjFjdm55WjY5ZXZyeWtBRzNxYWRLS2Y2T0pkSkZjNWJuZXQxY3ZSMEFBRFRBRko4dUVMSENGYytlWWYrdnh0WTZua2tCTUZ2VGRJWXJsbXcxZ08xaTMxc2swa0V2VDM5NU5NSmhGRkVVbVNNQXlEdzRjUHI5b1QySjZrZXZUb0VZOGZQMlowZEpSb05MclZ5UXdUeTcxcVI0dy93b3FDM2duU3dDQ1dlTzdqZWJYOGxtWlg0L0U0QXdNRDNMdDNqOHJLU21SWkpod09NekV4d1owN2Q3aHk1UXEzYnQzS3V5eUtSQW9Zd25MK1BzUGFsL3UvRXJvNHBMR0tDNHJtQU03YUR1QTkxMUh0aGI3Q0JYZHZIOXRkYkJTNGk1ZnVML2l4WW1aWE1zRmxRazVrYmxLbXAxL2s3MjdxZkhwYjQ4bUlTVzdQN2NOWGkwS3hkeTEyU3BCMWhOLzlTMlZsSmZYMTlWUlhWMU5aV1Vsall5UG56cDNqMHFWTEd5cGVEWWZEbkRwMWl2UG56OVBWMVVVdWx5T1JTRGhPNEUxU1ZsWkdhMnNyRFEwTnk5SkZISFlHUVJDb3FxcksvMjdQMDJleldhTFJLS0lvYm52ZTNqVE5mTEhFL1B3OHlXUnkyeWxjNFhDWWNEaE1lWGw1UGhhNnFhbUpaOCtlTVQ0K1RpUVNJWlBKNU0vUnVxNHpQVDJOMiszRzVYSWh5ekthcG0yNkwzc21veEdOWjRsRU11U1NLaTZsNEJybEFINGZDQUxJc29USExhRW9FcUlvWUJnbDNROFNWbUdyYzdMWUlSd0J1SWprc3ZORDJmUVkzc0FoSk1XSHFUOHZIekdYTGg0ODNtYUM0Uk5FNXI5RGV3VUVZRHNlNThXK2ZBNzdqeGNkdE9Gd21JYUdocUtLdFg2L24vTHk4cUpmRUJxR2tlOTE0VkI4RE1OWU4xYkZub2gxMkIzQzRUQnZ2dmttTjI3Y1dDRUFBeng4K0pEUFAvK2M5OTkvM3hHQUhWWkZFQVFhR2hwb2IyL24vdjM3S3daUVUxTlQvT0lYdjZDbHBZV2YvdlNuTzc1OVI0OGU1YTIzM3VLVFR6NGhHbDErN2JTd3NNQmYvL1ZmMDlIUlFXZG41N1pjd0M2WGE5WHZKMDNUNk83dTV1SERoMXk4ZU5FcFlpb3lEUTBOWEx4NGtlYm1acWFtcHRaY0xwdVpZbTd5dDRpU2o2cmE3eU1ySVo2WGFsdE9ZSmU3bXFyYTcvMlpya1lYRkNYWXA2cHh4OGF4KytoWS9WNGZZY1VZSDhXS01kNVVMMXZieVRBeU1vTFg2ODFQWkFtQ3dOR2pSNWQ5djJtYXh0VFVGQThmUHVUYXRXdDBkWFV4UFQyOTFZa3ZGU3VLdVF2TC9mc0lTOERjeVl2T1JhQWZTL1N0eGhLQUQ3RUZJZDBXeGg4OGVJRFg2eVdkVGhNS2hSZ2ZIK2ZHalJ0NTUyOGlrU2pXdGlldzNOSTNnUHRZKys2ZzkvNHRKSU8xajRvaWlCdW1KUUNuczVEVGwyWWlYdm1hSlhNVmdYZUQ5eTN0bTNUVTRNYkRITCsrRHI5L0NQMVQxdjV6S0Iwdjl0MTFYTGdPVzZHcXFpb2Y5WHpxMUNscWFtcncrLzFVVlZWUlcxdTc0ZlZVVkZSdzRzUUozbmpqRFZLcEZMMjl2VTdLNFNieGVEeFVWRlJzV3hCMDJEcWlLRkpaV1ptZm4zTzczYWlxeXNMQ0FuTnpjNXNXU2RkaWNYR1JxYWtwcHFlbjhYcTlSWmtMYkdob3lDZC9uVHAxaXJ0MzczTHQyalVlUFhyRTFOUlVmcTdYTkUxVVZjVXdqSHlTNVZZd0RJakZjMHpQSkVrc3Bpa3Y5enovVGpwSVgwR21kVzBrQ0FJZXQ0VGY1OExqbG5laTRGM0NFbjhkWFhLSGNIWjBFVkV6TTczcDFDZ2hQWTBneUVDaFM4VUFCQ1FsZ012YmdNdFRSeVk5am1uczcrSm51Nm04STd6dGIxNGNnSUVsMW9aQ29hSUtlNUlrVVZaV1ZuUUJXTmYxZkxTSlEvRnhITUI3RzdmYlRYTnpNN1cxdFVpU3RHS0NPNWxNOHZEaFE1NCtmVXBqWStPQkZxODBUU09UeWFCcEdwcW1rVXFsU0tmVHFLcUtJQWo1ODE0Z0VDaHErc0Yrb0tPamcvUG56L1BaWjUrdGlQelVOSTM3OSsvejhPRkRQdjc0WS94Ky80NXVtOGZqNGZUcDA1dytmWnE1dWJsbEVhNkdZVEE2T3NxZE8zZm83KytuczdOenl6M3JCVUhBNi9YbVJaRkN4c2JHZVB6NE1hZFBuejdRbjZGU1lQZDYvcU0vK2lNU2lRVGQzZDJyTG1lYU9xbEVQN0dGbS9oOGJRVEtUaUdLbnFWcmFSUFQxQkJGTng1ZkM2SHkxLytyVkdMd3JpUzUvNE91WjUwWnZOM0hqdi90dzRwUmJzV0toTjcwaDBuVE5JYUdoc2hrTXVSeXVmemt6OUdqUi9INWZJQlZ0TkxWMWNXVksxZTRldlVxZzRPRExDd3NiSFhiWjdGNi9sN0Y2dnM3Z3VYYTNHbm1nRzRzQjdWOUlYMEt5eG04WVRSTlkzNStudTd1YnJMWkxHTmpZL2g4UG1ablozbjY5Q21qbzZQRkZIOE5yUGY3OThDWFdBN3FMYjhScnloSnJDaHg2MFMyVGJuV01DR25RVFlIQjJkNFh0aTdUMWgyOTFxTEl5M2RESmhlTkhuVWEvTGJXd2FmM2pmb1g3c095V0VIY01SZmg0M2c4L2xvYUdqZy9Qbnp2UGZlZTNrQmVLdUZvSUlnME5MU3d1dXZ2ODdvNkNpRGc0UHJDc0F2dGlEYnlIekpxNDRrU2JoY0xtZGVhSmVSSkNrdkFzdXlUQzZYWTNaMmx2SHg4YUlsdTZUVGFXWm5aNW1hbXFLdXJxNW9jd01WRlJYNTFFaWZ6MGMwR21WbVpvYUZoWVVWbWtOaEd1bFczUHFDQUttMHlzSmltbVE4UzFsUVFYRFpjd2dIN0hOc0xIWERjTWw0dlFwdXQ4d09kRmVVc01hQmpnTjRoM0FFNENLaXF0R0piSHJpdjliMTlQKzIzdGhOVnNMNEEwZElKd2ZKWmFaM2NBdUxqOTM3MDRsSGVUVlpUUmplTHNGZ3NPaHVVVjNYU1NhVFRwVm1pZEIxSFUzVDF1MEJ2SnVEbmUzMkhua1Y4SHE5aEVJaHZGN3ZxaE8zMDlQVC9QNzN2NmV0clkxang0N3R3aFlXSC91NHRIdmEyTVZJaGZGQXFxcVN5K1hJNVhLazAya1NpUVNSU0lSME9rMDJteVVXaStYNzJFdVNSRGdjcHFxcWlxYW1KbzRmUDM2ZytpYlgxZFZ4OXV4Wktpc3JtWmlZV1BGNE1wbGtmSHljOGZGeGpodzVzdU9mdWNiR1JuNzg0eDh6TmpiRzNidDNWenplM2QzTnRXdlhhRzF0M1ZibGVTZ1VvcUtpZ3ZIeDhXWDNUMHhNOE9USkUxS3BGT0Z3ZU12cmQxaWQ2dXBxZnY3em56TXpNL05TQVNvVmYwWjA0U1p1WHdNZVh3dW1ZYmZPQk5PMEpnZDh3Y09FSzkvODE1blU2QU1zNTZiRDdwUEFjbi8yQWsxWWNjWjFXMWxSTXBsa1lHQUFVUlJ4dTkzNW9vKzZ1anJTNlRROVBUMTg5OTEzM0x4NWs4ZVBINjlJRHRnZ09zLzcvdDdDY3Y4T0xyMk8zVUFIWm9DSFdCTW1ZYUFXcXgvd3BzYjAyV3lXbVprWk1wa01rNU9US0lwQ0lwRmdZV0dobU1XVWFheit6M2V4eFBNN1MvOTNXRTRLU3dBdXlvNDNETWlwSmhsVlFOV1hVZ3dGRG9BTGVJTVU3Z2NUWnVmaDk0OE0vdTZHd1pXSEprUDdlMnBtWCtFNGZoMjJpc2ZqNGZqeDQzejQ0WWU4OTk1N25EeDVrcnE2dW0ybEFBbUNRRjFkSFNkUG51VEJnd2Y0L2Y0VkJiR0Z5NHFpaUtJb0tJcVNGNkp5dWR5QlBwWnR3ZEZoOXhFRWdmTHljbzRlUFlvZ0NFeE9UdkxzMmJPaTliZTJSZVdKaVFrNk9qcUtYaHdlQ29Wb2FHaWd1cnFhWURDNDZuRmxwNUVLZ3JBbFBjSTB6WHdNZERLVnc5Qk5SRkd3S3VrT0drdnpxUzZYaE5jcjQzSkpwWjdyRWJDRTN3QldJcFNJVlRUcVVFS2NzM01SMGZWTUlseCtma3pYRS9rSnFPVmR4RTFNMDBCUnlnaUdUNU5NUE52M0FqQ3dMRGJZd2VGbEtJcFNFZ0U0a1VnNER1QVNZVmUwcmhlZHVOc0NzSzdySzJMTUR4SStuNCtLaWdxQ3dlQ3F3c244L0R5ZmYvNDVKMCtlNU5DaFEvdTZMMDh5bVdSaVlvTEZ4VVhpOFRpVGs1Tk1URXd3T3p0TFBCN1B1M250YVBoQ0FUZ2VqK2NGWUZ0QTFuVTlIeU1xeXpJdWw0dm01bWIrK0kvL21MLy85LzgrTFMwdHUvMlNkNHlHaGdhT0hqM0tzMmZQVmhUVWFKckd5TWdJZlgxOU5EYzM0L1Z1S3IxMTI1U1hsL09qSC8ySSsvZnZyeW9BUDNueWhDdFhydkR4eHg5dldRQVdCQ0ZmQkRBNU9ibHNNRGs3Tzh2OSsvZVpucDZtdnI1K3k2L0RZVzBPSFRyRWUrKzl4LzM3OTdsKy9mcWEzK25aekRTeHlEMkNaV2RRWEJVSXlBaUNpR2thbUthVnVPTjIxeEVLbnlVUmZmaStMUHRHTkMwVjJkRVg0N0FXazFnQ1ppVldmSEVGc0tXNEJkTTBHUjBkUlZHVWZCSk1VMU1UeVdTU3g0OGZjLzM2ZFo0K2ZicFY4UmNnQ294aXVWYnZZUW5YOCt6dUJFVWFHTU9hTEtrREdyREc4MVZzc29MZU5FMmkwU2p4ZUJ4UkZJdWQ1cVJoQ2VlM2dXK3c5dUZrTVovZ0ZTSUpSTEFFNEcxZlROc080SXdLbWhOaHZCd1J5MjhpZ0phRHFYbVRHOTBtdjc1aDhNVURrekduWVVCSktDd29mN0ZvK0NDTFpRNmJSeFJGcXFxcU9IbnlKSmN2WCtiamp6L210ZGRlSzFxTEk3ZmJUVU5EQTgzTnpWUldWakk3Tzd2dWQyTXB6QklPRHNWQ0VBUkNvUkJIamh6aHhJa1QzTHQzajRtSkNlTHgrTFlOWEhhczlQVDBOTkZvbExxNnVxSi9Ga3pUek05QnJ2VmRzZDJleHRtc1JqS3Bra3ByNklaNVFBVXlBVVFKUkJsWmNlRnl1MURra2d2QVlJMWZ2R3l5SlpERDFqbVl4M2NKMGZYVW9xYkdNWXdNQ0FJQ3dnc1h1UnFTNUNNUU9rWW9lWlpNY29oc1pwcjlHakVnQ0FLS29qaVZYcThBTDE3QXVseXVvdlZ6S0tRVUlwMDk4ZWM0Z0V1RExaRHQ1VUY2UEI1bllHQ0Fpb29LMnR2YmQzdHpkaHl2MTBzNEhGNVQrTkoxbmY3K2ZucDdlNGxFSWxSWFYrL3dGaGFIZ1lFQnZ2bm1HMjdldk1uaTRpTHBkSnJGeFVYbTUrZUp4V0trVXFtOG1GczRhQ2dVZXpmQzhQQXc1ZVhsZEhaMlVsTlRzNjJLOHYxRWJXMHRQL3poRHhrYUd1TE9uVHNySGg4Zkg2ZS92NSszM25wcnh3VmdRUkJvYTJ2ajlPblRORGMzTXo0K3Ztendta3FsdUgvL1BnOGVQS0M2dW5yTEluQWdFS0M4dkR3Zm1XV2phUm9EQXdOY3YzNmR1cm82NnVxMlpGeDBXQWRCRURoMzdoenZ2UE1PRHg4K1hGTUFOazJkVkhLUWhlbXZrQ1EvZ2JMVENJSzBKUDVhL1lBRlFjSHJiNk95OWdmL1hOZVNFZURmN09CTDJUYUt1N3hSVVNvUEs2NXduU2g1eTBSSmNXRUtrcTRsNTdQWm1XZHFkcVpIVTVPUjNkN09MUkRCNmdjYndoS0JLN0I2Mlc1cGxpR1R5VEE0T0VnMm15VWVqOVBRMEVBcWxlTHAwNmYwOXZZdWk0dmZKR2tzOGZjT2xvajVEQ3VDZVM5SWFna3NFZmd4Vms5bHUzL1dscjdZN1NLL0ltSmdPYVZ2QWw5aHVhZEgyYStEM2RLVHdQcGNGR1VRWXk0SndPa2NxRnFCQS9pZ1UraUNWbUY0eXVUckJ3Wi9kOHZnMWxOSC9DMGxkaTlLWU4xRUtRZUhsOUhZMk1pYmI3N0pqMy84WTE1Ly9YVmFXMXVMSnY3YWxKV1YwZFRVUkd0cksxTlRVOHpQejY4NFp1MHhwcXFxK2JIbFFZOS9CdXV6N2dqaWU0OVFLRVJiV3h2SGp4OW5kSFNVdnI2K0ZhMk9Ob3VxcXN6UHp6TTVPVWtzRml0SklsOHVsMk5oWWFIWTZUUjVUTk1rbmRHSXhMSWtramswM2NRdENBZnptc20wSXFCbHljUWxneXlCV1ByOUlHT2xRUjJNaWJZOWdLUGFGUm5EVUxPYUdrUFgwa2l5YitVQ3BvRWdLaWp1S2tMbEY4aW14NW1mK1FaZDIvSUV4YTVpUjU4NEF2RCs1MFVCMk82RldlejNWaFRGb3ZmV05Bd2ozd3ZPb2ZpOHJQSU9kcmNIc0NpS0pKTko3dDY5UzBOREEwMU5UZnZhNGJvVjNHNDNmcjhmcjllYkZ6OWZKSjFPTXpNencrenNMRlZWVmZ0dWdHWVlCamR1M09ELy9ELy9UMjdmdmwzeTN2UGQzZDNjdW5XTDgrZlBIeGl4THh3Tzg5RkhIM0h2M2owZVBIaXdZaDlQVFUzUjA5TkRLcFdpb3FKaVY3YngwS0ZEbkRsemhybTV1Vlg3OUg3eXlTYzBORFR3eGh0dmJHbjk5bWRwdGVLbmhZVUZQdm5rRTlyYTJ2alJqMzYwcGZVN3JFOURRd09YTGwzaXl5Ky81UGJ0MjZpcXV1cHl1aHBuY2U1YkZIY2xMbThkTG5mdGtnaHNUOFRsa0pVUVpaV1gwTlRJejMyQmpzRlVZdURxYXV0U1hPRmFVZkpWaW9MaUYwWEZEU2E2bmw3UXRQaU1waVoyVkJad3Vjc2JQZDZtMThxckxyL204VGIvOXk1UERaSWNSSkk4Q0lLRXFrWkpKNGRJSi9yL20wRDQyTU5jZXFZM2wxc1kzc2x0M0NZYU1BVTh3UktCdlZpQ29SMEp2V25TNlRURHc4UGtjamxHUjBmSlpyTk1UazRTaVVTMnVvMEdzSWdsK3Q3RWNpeFBzemZFWDVzbzBJKzEvenhZYnVvd1czUlRGd2tUcTEveUtGYnM4elVzQVgySUlzVWJ2NktrS2FJRDJEUWhxMEltYXduQUJ4NEJ5L2tyQWlaazBwYjRlL1d4d1NjM1RhNDhNcG5mbjlNd2V4WTdIcmZRN2J2Znhod09lNHRRS0VSall5TVhMbHpnbzQ4KzR2dmYvejVOVFUwbGVTNUZVYWl1cnFhOXZaMkJnUUZpc2RpcWMweDI3TE9EaFQwbjdIelc5eWFWbFpXMHQ3ZlQxTlRFeU1oSVVRVGd1Yms1cHFlbmljZmpKU2wraU1WaVRFNU9NanM3VzVKNVh0T0VURllua2NpUlRxdm91dkVLdDh3UUxJVVhsbjR1L2Q4RVRBTzBORUltZ1poZFFOR2lTR1ptcVlLd3BJaFlMVzNjcFg0aUJ3dEh0U3N5aHBHTmFXb1VRMDhoeVg1V08zdFlrMU1pL3VCUnRLcDNTYWRHaVVjZXNoOGp6d1ZCUUpLa0E5TWo4VlhGZmg4TG5ia2VqNGRBSUZBU0IzQ3huV012Vm1BNkZCZTd6L2RhRHBHOUVIOGtDQUthcGpFMk5rWmZYeCtIRGgwcWVxSEJYa2FXWmNyTHk2bXNyRVJSbEZVdmtqT1pETlBUMDB4UFQzUDQ4T0Y5dDM5R1JrYTRmZnMyWFYxZE96TGdIaDRlNXY3OSs4UmlzUU1qQUFNME5UWFIyZGxKWTJNanc4UExkYVc1dVRrZVBYckUzTnhjeVNaZVhrWnJheXVuVDUvbXhvMGJLd2F2a1VpRVgvLzYxeHc5ZXBRVEowNXN5UVdzS0FwdXQzdlZwSXAwT3MyVksxZTRmUGt5My92ZTl3NWNvY2xPNFBGNE9IZnVIRC81eVUrSVJDSjBkM2V2dWF5cUxoS0wzTWZqYjZXczZqSXVWem1tL3R3RkRDYVM3Q05jOGNiZlUzT1JCYmUzZmlHYm5ueGkvNzBvS3JMWDMzcTVxdllIUC9INFcvNWJVZklpQ2dxbWtTT2JuU0VaZi9iLzhuZ2J2OGxsWjU4YVJxN2tFU011YjgzUmNQbkZQd3BYdnZrL2V3T0hVRnhoUk1tSEtNZ0lncFZiYXBvcWdkQngxT3pDLzVKSmp4QmZ2UDgvZXJ5TmY1bEpqKytuUHNjcFlCanJUY3BoT1IvZkJqcXhKZ00yamFacFRFNU9zcmk0aUs3cjI1M1lpbUE1V0I5Z0Naajl3T3FOQUhlUEhGWS81U3hXLzZ3R3JCam9Pblp2Nm1vV1N5ei9GcmlPSmFCUFVDUm42eXRNQ2t2UXoxQU1BUmhMQUU3bkxDZndnWGNBRjB6bVp0TFFPMnJ3NVFPVFQrOFkzQjkweE45U1VEZzNwS3JxTXFIc29Ec2tIVFpQV1ZrWlo4K2U1ZEtsUzF5K2ZKbFRwMDZWZEF3aWltSmVMS3V2cjJkc2JNd3hHV3dBcjllTHgrTng1b1gzS0tGUWlMcTZPcXFxcW9veUI2VHJPdlB6ODB4TlRlVWR3TVVtSG84ek16T3puVll1NjJLYUp0bXNSaUtSSTVYUzBQVWxHK3dyZjgwa1BCZUJUUTIwRktTakNORVo1T2dFU21vS1dZMGhsRmFmRW5nZUFlM0I2UUc4SXpnQ2NKRXhqVnhTVmFQb1dncVhHMVlYZ0EzQVFKSUQrRVBIS2F0OEN6VTdUeVk5dHRPYld4UU9hcy9OVndsYndDc1U4YnhlTDRGQW9PZ09ZRW1TMW5VcGJwVVhld281RkkrOTdnQUdLN2ExcnE2T0w3Lzhrb21KQ2Y3eFAvN0hCeTRLK3RpeFk3eisrdXQwZFhVeFB6Ky80bkhUTkptWW1HQndjSkRYWG50dFh3bkEwV2lVdi9tYnYrSHp6ejhubFVydHlIT3Fxc3JZMk5pT1BkOWV3ZTEyMDl6Y1RGdGJHeE1URThzY21McXVNelkyUm5kM04rM3Q3WVRENFIzZnZzYkdSazZkT3JWcUxMZHBta3hOVFhIcjFpMGVQMzdNK2ZQbk4zMmN5N0s4WmdXN2FackVZakg2K3ZvWUhSMmxyYTNOdVFZcUFYVjFkZnpSSC8wUnc4UEREQTRPcnR2ZUlaMGNJTFp3bTBEb09DNVgxZEs5QW1CaUdDb0lBbTVQUFJYVjcvK1phZVl5Z2ZEeFgyVFRVNDlsSmRoUVh2M2U1VkQ1K2Y4dEdEcUo0cWxCRkdWQUFsTkRVMk1FUWlmL2VUTCtsSGowd1grdXVNcitUczFGeGt2MW1oVlhXV080NHVJZlZ0Uis3MzhPaGsranVDdXdsUXZyMVN5NXFQQWl5MkhjN2xxOC9tWmM3cHIvcnlqNVFqNS8yNzlMSllldWwycjdTa0FjNk1OeUJJTTErRmV3aE13dE9ZRTFUU09SU0d4M3U1Slk0dlFEb0F2THZSclo3a3BMUkJMTFBkb0RITVZ5VWZ1eG5OVTdpWTRWai8wRVMvejlFcmlQSldvNnZCd05xOENnYUVKNVRvT2NDcHB4Z0hPM0M1Mi9Ca1JqSnIxakpsY2VHdnoyanNtTkhwTzRVNXBRTkFxdm1Xd0hzRjA0WE9TSWVZY0RnaXpMVkZSVWNPYk1HVDc4OEVQZWZmZGR6cDA3Vi9USTU5VUlCb1BVMXRZV1RTdzdDUGg4dnBLMGozc1pkdXNuWnp5MlBuYTdzR0lsUEpxbVNUS1paSDUrdmlSekpkbHNsbGdzdHFZRHZ4aVlKdVJ5T3FtVVNqYXJZUmptSGhkL2hXVS9udjhpdkhDZi9YOXJCSWxwV2k1ZjB3QkR0MjZtQnJvS1docHlNY2pOd2NJTWNud1dWemFLYkdRUlNuOEJhWXZBVHRYSUR1RUl3RVZHMTlQUlhHWUdUWTFoZmZERU5VZGVwcW1pdU1vb3EzaUxUR3FNWEhZR3c5aXIxV1ZMSncrSFY1WVhCZUJTT29EdDZrQW5ObWQvb0tvcXVWeHVUenVzQTRFQXJhMnRURTlQYytYS0ZUbzZPcWlwcWNIdjkrLzJwdTBZaHc0ZDR2TGx5L3pOMy96TnFnSXd3T2pvS1BmdjMrZUhQL3pocm9oM1d5R2J6WEx2M2ozKzZxLytpcTZ1blRXNVpUS1pQWDNjbDRyMjluWk9uVHJGZ3djUFZzU29MaTR1OHRWWFgzSG8wS0V0eHl4dmgxQW94TEZqeCtqbzZHQm1abWJWUWVHVEowLzQrdXV2NmV6c0xLb0FiRE01T1VsUFR3LzE5ZlU3M2d2NUlDQkpFaWRQbnVTRER6N2cxcTFiZEhWMXJUbUJyS2x4RXJGdTRvdjNrZVV3aXF2Y0ttZzJOT3hCcnlCSWVQM05WTmYvK0orNjNGWC9OQlh2UjNGWEVneWZ4UmZxUkpFRFMxZTR0bk5ZUUZiSzhQaWE4UWVQNFBXMy9BdEZDZi8vUEw3R3YxVXpNMDkwbzdqQnFwTGlLd3VGei8yNHZPcWQveVZZZGhiRlZRYW1tWSt6Tmd1dXYyMFpHRUNTZ3dSQ0o1RWs3LzhURE4zanJZdGwwbE5QVmp6QjNpV0xKYlpLV05IRkduQWVPSUpWRWI0YnpHQUp2emV3Qk0yRlhkcU9qV0pnOVFQdUJocUJNcXg5dDVQeEJITllndm5WcGR0akhQRjNzMFN3WE4xRkdXeHJHdVEwMDNLendDc2NhYmdPRXBiNHE4TmN4S1Jyd09TTCt3WmZQekRwR1hmRTMySmlpeTkyY2JmdCtIV0tzeDIyUTB0TEM1Y3VYZUs5OTk3ampUZmVvS09qWTBmRVg3QmFvVlZWVlZGV1Z1YWsvV3dBU1pJSUJvUDQvZjRkYXcyb3FpclJhSlJzTm9zc3l3UUNnUU0xNzdOWmZENGZGUlVWaEVLaG9oM1R1cTRUaVVSSXBWSkZOL1pFSWhFV0Z4ZlhMUUl1QnJtY1RqS2xrczdZQXJEQVRpaWYyK2RGOGZlRmVHZjdkMXY4MVhPZ1pVQk5RVFlKYWdLeU1jakZRWTJEbmtSSUpsRzBORzR4aDB1eXBLd2RlQkdPQUx5RE9BSndrVEgwVENTYkhQbFpManY3MXdDQ0lLNDVrak1OSFZGMDR3MjBFYTY4U0NZelJpTDZCTk5ZdmQvWmJpQUlFb3FyRWxGMGtjdk9ZUmpPYU9sVjVVVUIyT1Z5bGFTS3p4YUFYUzVYMFFSZzB6UXhETU1aWkphSWREcE5LcFZhdC9wdXR4M0FraVJSWDE5UFkyTWoxNjVkNDYvLytxK3ByNi9uNDQ4L1BqQVZvWXFpY09qUUlkcmEybmo2OU9tcXk4ek96bkx2M2oxbVptWm9iR3pjNFMzY0dnTURBM3oyMldmMDlQVHN5dlB2OXJHOUd4dytmSmlMRnkveTYxLy9lb1VBSEkxRytlS0xMM2o5OWRkM1JRQUdhMUxvUnovNkVmUHo4engrL0hqRjQzMTlmVnk1Y29XZi92U25sSldWYldyZGtpU2hLTXE2NTQySmlRbWVQWHZHVzIrOTVRakFKZVQ4K2ZOOC9QSEhURXhNTURNenMrWnltZFFvczVOL2h5aDVxYWo5RUVud1lxSkRYdFkxRUFRWnQ2ZVJpcG9nNFlxM0VFVUZXUTRpeXBiWlZEQnRnZm41b0ZsQXhPV3VJbHh4RVplbjVwKzUzTlgvYkdIbTZ6ZUFXOFY4blc1UDdiRnc1WnYvSWxoMkZsa0pJeUFzMi82VkxHVzZtZ2FTN01VYjZLQ3M2dTMvU3MxRlpoUlhhRjdOeGFhTHVYMGxKb01WdHd6UGU2RDZnUTUyWHJLS1ljVTkzOEhxWVR2Sy9vZ2ppMkc1cVd1eElxQnJzWVRnVW1QeTNQbDdGZmdLS3dMYUNkWGRQRkdzS09paURHUU0wM0lCNi92aDZDMDI0dk9icHNMY2dzbjlmcE92dWd5K3VHL1NOV2lpSHJ5NnZwSmdpNzR2WGlmYlkzSm5YTzZ3Rlh3K0g4M056Yno5OXR2ODhJYy81T0xGaTdTMHRPeVlzQWhXR2xKWldSbkJZTkNKTk40QWJyZWI4dkp5d3VGd3lRWHpWQ3BGTkJwbFltS0MrZmw1VkZYRjcvZFRWMWRIZlgwOWZyOGZTWkwyOWZqZGlpYk9vbWthZ2lDZ0tNcTJuZWlLb2hBS2hmTDdwMWhrTWhsU3FSVHBkTHFvd3ZMaTRpS3hXS3praHFGY1RpZWRXWElBbXp2aEFGNmxGMi8rZmxoOUE4em4vWGpOcFdKbDAxanU3TVVFVXdmREtMalBBRU1EWFFNOUMyb2FjZ25JeENBWGhVelVFb0NOTElnR2dnb3VDYndlRVpmTFJCQktmaEVwWW1tU1RwWE5EdUVJd0VYR01EVE41U3EvbGMxTS9ZVnA2bjhpb0xDMmU5YXE3aGRGRDZIeTg2aHFGRFVYSVpNY1htWFowaU1JRXFMa1FWWkN1TnpWdUR4MXVOMDF1TDBONUxLenpFMytsbXhtOG9XL1dSa2Q3TEEvZVhHZ0prblNTMTFRVzBFVVJSUkZLZXFGaDExcDdEaUtpNDlwbXZrTHU4SW8yQmZaQytlQTh2SnltcHViTVUyVHExZXZjdXpZTVU2ZVBMbHZoTTVpVUZkWHgzdnZ2Y2ZnNENEUG5qMWI4YmltYWZrWTZNN09UbnkrTFNWdDdoaUdZZkRzMlROdTNicFZzdjR2NnlHSzRvRXBJQ2drR0F6UzJkbEpiVzB0UTBORHl4NHpESVB4OFhFbUppYklaREtyUmpHWG12THljbjd5azUvUTI5dExUMC9QQ3BkMkxwZmo0Y09IZlBycHAvaDhQbHBhV2phOGJrRVFYanB4TURvNlNuZDNONmxVaW9xS2lpMi9Eb2YxYVdscDRmMzMzK2Z6eno5ZlZ3QTJUWTFrN0FteHhWYThnVVA0L08wZ1NOWkFlR25RYktJakNCSXVkeldDUndMVHdEQzE1MDdoRlNzMUxKbFZrSkNWTXZ3aEg2YVJJNWViL3dORkNRNnFhbnl1R0s5UmtqeUJjTVhyWi8yaFRseWUycVZ0MVRZd2NiN2tFRFpBRk4zNGdrY0psay84VDhuNGs4K0IvU1FBZ3hWalBJQTFFVkNHMWN2V0I5U3djMVhoU1N3bmJRK1dtM1lZUzVEZUQyU3h0cjBYT0FhY292UUNjQlNyNTI4dmNCdjREa3NJZHB5L1d5TU9KTERpdExlTllWbzlnTldEMkFOWXhEcHJxREErWTNMbnFjbG45d3krZldMUVA0a2ovaFlKKzFwSmxtVk0wOHozK2dXbkxaUEQxdkY2dlp3NWM0YjMzMytmOTk1N2p6Tm56dERRMExEall6R1B4K000Z0RkQklCQ2d0cmFXNnVwcTNHNTN5WjRuRm92UjNkM040OGVQR1JnWUlKRklJRWtTVlZWVmRIUjBrRXdtYVc1dXBxS2lZa2NMQm9xSnJ1dEVvOUY4NzF0SmtxaXNyTngyc3AwZ0NJVEQ0YUs3dEhPNUhMRllqTVhGUlFLQlFGRStxL1k2NC9INHV2T1B4VUJWZFZKcGxXeFdMM0FBbCtxaXFTQ3FXUkJaV3d3dVdENHYvdXJQQlY1REEwTzFJcHoxbkNYd0d0a2xrVGRqL2RTeVM4dmtscGJYbmkrdlpaN2Y5S1hhV3drd1JUeUtRTUFqNEhHWmlLVy9kcFN3VW92Y1dGZHZEaVZtZjU0Vjl6aTUzT0o0YmROUGU3UFpLZHlleHFVWTZOVkhHMWE4bTREYjAwQjUxU1d5bVNrVzlCUzV6R3pKdDFNUUpDUTVnQ1Q3a1pVd3NoSkdjWlhoZHRmZzhiWGlEYlRqOFRiZ2NsVVJYYmpONHV6VmttK1R3KzVnRDlRS0IydWxFdlpGVWNUdGRoZjFZdG9lZU5xRHo3MGdScjRxR0laQkpwTWhrOG1zSzdEdkJaSE00L0ZRVjFkSFZWVVZEeDgrNU1xVks1dytmWnFmL2V4bmUxN29MQmJoY0poMzMzMlhlL2Z1clNvQUE4VGpjVzdkdXNYSmt5ZnA3T3pjNFMzY0hPbDBtc0hCUVFZR0JrbytBRmlMZzNvK3NhdnZoNGFHbUo1ZXJpZVpwa2swR21WdWJvN0d4c1lkMzBleUxIUGl4QW5PblR2SHA1OSt5dFRVMUlySnhxbXBLZjd5TC8rUzZ1cHE2dXJxTmx3NXZaSHZ2b1dGQlhwNmVwaWZuNmVwcVduTHI4TmhmZngrUDZkUG4rYkREejlrY25KeXhYRllpR0ZxSk9JOStCYnY0bkpYNFhMWFlPanBaY3VZcG82NXpCTDM4Z2xxUzJTMTBpKzh2alpDWldmLyswVDA4ZSt3bkkvYlJsWkNEVzV2NC8raHVDb1FSQVZUejI1cTR0eGNxdkpXbERDK3dDSGMzcWF6b3VSNmFPaTUvUmJaa3dGR3NLS0V5N0FtQTg1aWljQ2xKZ2VNWTBVL2QyR0p2L3ZKeGFwaUhZOURTN2RKb0lJdDlsTGVBSXRZZ3YwakxEZjhmU3dIOGw2UHk5N0xwSlp1UmJ2UXlhcWc2U1djeDl4cjJNNWZ5WnIzbkppRkc5MG1uOTgzK0tiTDVPbkVibS9ncTRGUTRHdXdpeVJ0eDYvVDY5ZGhxOWppMUlrVEovajQ0NC81NFE5L3lKa3pad2dFQXJ1eVBaSWs1UjNBNjRsbDluaWhNUDc4SUJJTUJxbXJxeXVaQUt4cEdyT3pzengrL0pqdnZ2dU8yN2R2TXpJeWdxN3JCQUlCR2hvYVZzUkI3MGNCV0ZWVjV1Zm5HUmtaWVdob2lJV0ZCU1JKb3JHeEVWVlZhVzV1eHVWeWJkbEk0L1A1OFBsOFJaMkhOUXlEV0N6Ry9QdzhkWFYxUlhuL2M3a2N5V1NTVkNwVmNvT1BxaHFrVWhxWnJJYWhGK3Z6VytEbWZWSFl0ZnZ3bXJubGpsMEszYndGNjdIdk4yd0JXQ3NRZkhPZ0x2M1VzcUNuSVpleSt2cmE0cTZ1RmhSRUZ4b1Q3UlloOHZNMklSSzQzUkQwbW5qZHNBUFR1eUxXZU0rREl3RHZDUHZ2ckxoUFNDY0g3eVVXdTVDclFpanVjZ3g5NlVPOUt0YUgydTFwcEtyMkJ4aGFpdm5wTDlDMVJNbTJUNUw4K0lJZCtFUEg4UHBhVVZ4VnlFb1pzaEpFbHYySW9oZEo5aUdLYmtUUmpTQkk2MnkvdzZ2QVRrVW95N0pNT0J6RzUvT3hzRkNjdVNMVE5ORjFIVjNYSFFHNHlCaUdRUzZYVzdjWHFpaUtleVllNmRDaFE1dy9mNTcrL3Y1ODM5alRwMDl6NXN5WjNkNjBIVUZSRkpxYm0ybHFhc0xqOGF6YU4yVnhjWkVyVjY3dzJtdXY3WGtCZUhaMmx2Nytma1pIUjNmbCtmZENZY051VVZ0YnkzLzBILzFIakl5TThJdGYvR0xaWTVxbU1UVTF4ZWpvS0xXMXRidFNIUy9MTXAyZG5adzVjNFpJSkVJNnZWenN5K1Z5M0w1OW0yKysrWWJUcDA5ejRzU0pEYjJmR3kxK0doc2I0OUdqUnp2YWsrd2cwdFRVeEQvK3gvK1krZmw1L3MyLytUZnJYcWVrazBQRUZ1OFJMRHVMeTEyMWRPK0xLVHlidjg0eFRRTUVBY1ZWZ2RmWGl0dFRkMXdVbGR0R0VYb0J5NjZ5WnJlM0hrbjJyNWtYOUpLdEF3UkV3WVhMVlkwdmNPaGZwQk1EMTdEY21QdU5GSmFBR2NDcUNBOWh4VUY3S2QzRWdJbmxXdTNEaW43dVlYOEttVmtzUis0QWxpdTNBbWlqdUE1cWUxLzFZN2wrYjJIdHMzNHM5NnJEMXRFb3NnQ3M2cUM5a0d6L1NtSTduR1dzczBRT2hxWk1yajh4K2ZTdXdYYzlCa05UdTd1SnJ3cUNJQ0FLMWk0M0FWMDNNRTMxUUF0ZkRzV2hycTZPMTE5L25lOTk3M3Rjdm55Wlk4ZU83WnI0YStQMWV2RjRQT3NLaVhheW5jZmpRVkdVZk9GOHNYdWk3alZzd2R2R2RnQlhWVldWUkFDZW5wN215cFVyZlBycHB6eDgrSkRSMFZFaWtRaUNJQkFLaGZKR0Jkc04zTnpjdkMrTC82UFJLRDA5UFR4NThvU0ppUW1TeVNTQ0lMQ3dzRUEybTBYWGRSb2FHZ2lIdzF0YXY5dnR6aC9YeFVMWGRSS0pCSkZJaEd3Mld6UUJPSkZJa0V3bU55d0EyMlAzelg3dWROMGdtVlJKcHpYMHZBTjQwNXY4d3NZcy9TT0lTemY3aTFPenhOcGNDclNrOVZOTkx3bTF1U1czYnM2S2NTbU1nelpOb0NEYTJkQ3RkUm42a2hpc1cyNWZRM3UrRGwxYldzWmN1VzJDQUlnRmJ1ZWw1eEZCY1VQUUJ6NjNnRlQ2YTBjQksvNTVlL25tRGh2R0VZQkxSRG81Y2lzV3VmOC9CTXBPLzNjdVR6VldjZm5hR0lhS0lNajRBb2VwcXY4eG91UW12bmlmYkdZU1hjdGdtbHNmRHdxQ2hDQW95RW9JajY4Umo2OFp0NmNCajY4Smo3Y1JsN3ZhbW5nUzNZaWl5K285WmhxWXBvNngxSS9ZTUxJVUtaWEtZWS95WXVWdXFRWnpraVFSQ0FTSzNqZFIxM1duOHJoRUZJcnJhN0ZYQmptSER4L216VGZmNUlzdnZtQnNiSXp2dnZ1TzMvem1Od1FDQVRvNk9uWjc4M2FFc3JJeTZ1dnJxYXlzWkh4OGZNWGptcWJSMDlQRGd3Y1BlTys5OTZpdHJkMkZyWHc1Mld5V3AwK2YwdC9mdjI3LzZWSnlrSXRKWkZubTNMbHp2UG5tbTF5N2RtMlp5OVl3RE9ibjU1bWFtaUtYeSsxYVBGcG5aeWR2dmZVV04yL2VYQ0VBZzNVTTNiMTdsenQzN25EbzBLRU5mZTlzdExYRjlQUTB2L2pGTDJob2FPREREei9jOG10d1dCOUpramh6NWd3ZmYvd3g5Ky9mcDZlblo4M3pnV21vSk9POVJCZHVJU3NoM0o1NjYzNXp1enF0Q1NZSW9vUWtoM0I1YXYrVkpQdCtReEdpbG1VNVZPdHlWeUVLTHJiWGJ0WkVsTnk0UE5WSVNyaUovU2tBYTFnaTVtT3NhdkJ5TFBHM2VlbjNVcERBaWs5K0ROekRFalAzay91M2tDaVdnRjJESlo2WEFaVkZYSDhFUzJDK2dkWHo5ekZXLzJaSC9DME9XYXdKZzZLRU51dkc4OXNyalFpWTF2eG5OZzBUTXlaWEg1dDhjZC9nNm1PVDRXbW5oTDFZMlBQRUF0Wjh0TldmY3UrTUFSMzJIMjYzbS9yNmVpNWN1TUQzdi85OVB2NzRZOXJiMjdkVWdLdHBXajROVHBabFpGbmVWaUd2TE1zb2lyTHVHRWNRQkh3K0h3ME5EVFEyTnVMeGVFaWxVc1RqY1hLNVhINE9SZE0wY3JuY3VtSldZWVM2dmU3Q3NZaGhHSG5EaHYyWTNZZDdvOWp6ZS9aMkdZYXg0dmRDVTRpOWJsRVVWeGd1Q3ZINy9WUlZWVkZlWHI3dFhyVXZibTh5bWFTdnI0K3Z2LzZhdi91N3YyTm1abWJabko4Z0NNek56YUVvQ2hVVkZjek56UkdQeHlrcks5dFhoZHoyMlByWnMyZDBkM2NUaThYeSt6bWRUcVByT3BJazRmUDVDSVZDVzVxakVFVVJsOHRWMUhsWXd6RHl4M3c2blNZVUNtMTduYXFxa2tna1NDUVNKWGNBR3lha01oclpuSTVwaTZXYjJiWDVMOFlDSWRVMExOZXRuck1jdnVqUCsvRG1VbGJmM1Z3TXNqSElKZ3NpbWRQVzM1aXJWZSt0M2xMMCtZOVZpcDBGNllVeVVHSFpqK1hPWkVBRVVRYS9COXpLVWtwMWFiSEw5NXljL1IzQ0VZQkxoSnFMaklmS3p0NVRzL01ZdnRZTi9JV0phV29JaUFURHAxQ1VNdHplUmxMeHA2aTVLTHFXUU5lVEdNdE9DTmJmV2Y5YVRjQ0ZncmdCUVpTUlpEK1NIRVNXQXJnOHRmaERuZmhEeC9GNDZoQkVKZC9qekc0Z2J1aHJKY1lKT05mMnJ5NnJSVUN2ZGw4eGtDUUpyOWRiOUl2RHdvdGloK0x5c3VQQUhoRHNCU29ySytuczdNdzc4dWJtNXZpYnYva2JXbHBhYUcxdDNUTk81VklTQ0FTb3FxcWlvcUtDaVltSlZkKzdhRFRLalJzM09IYnNHRC81eVU4b0x5L1YzUHJXaVVRaVhMdDJiYzBvNjUxZ3N3UHJWdzJ2MTh2Smt5ZTVjT0VDWDN6eHhUS1JkV1ptaHRIUlViTFo3TFo2RW0ySDV1Wm0zbmpqRGRyYjI0bkZZcXVlaDRhR2h2ajk3My9QVzIrOXhkR2pSNHYyZmlZU0NUNzc3RFBlZU9NTjNuLy8vWDAxeWJBZnNTY0hSMGRIMXkwSXlXVm5XWmo1R3RsVlJrWE5oOGh5NElYSXE2MWptanFpNU1IbHFVTnhsYmRUQkFGWWtnT1ZpbEtHS0NoTDUrcXRiYWM5R2hETTByVHYyRUhTV0JIR1Q0QXdWbFc0aVJVUlZtdzdSd3BML0gyRUZmMzhERXVBM3AxK0E5c25pK1dnOW1NSjVnMUxQNHR4Y29wZ2llTjNnR3ZBVGF6M2FXWGxqY05XMFpadVJSR0FEY09LZ001cDROc2JsK2lsUVFJTWlDZWhiOXpnZG8vSjUvZE43dlNiak02YWp2aGJCQVJCeUIrUTl0ZlVjN0ZxMXpiTFlaL2o4L255aFp6dnZmY2VyNzMyR2gwZEhWdTZoc25sY2t4UFR6TS9QNCt1NjVTVmxWRlZWVVVnRU5qeTJGOFVSV1JaWG5mT3lqUk52RjR2aHc4ZjVyMzMzcU8xdFRXZm5LWnBXbjZPeWhaTzE1c3ZLUlJpd1pvenM4Vm4welRKWnJQNTlkcEMzc3NjeXFzOWh4MnZtMHdtOHk1TE8yNDNsVXFSeldaUlZSWERNSmIxK3M3bGNpd3NMREE3TzBzMm0xMjJYcC9QbHhlQWl4bTliQ2RPOWZiMjh2VHBVNmFtVnNZNVpESVpGaGNYOFhxOXhPTnhvdEVvaTR1TFZGUlU0UGY3ZDJSOFpwb21xVlFLVVJTM0xLNm1VaWtpa1FqejgvTkVJaEV5bVF3dWx3dlROSW5INDR5TmpSRU1CbWxwYWFHNXVYbExueE5CRUZBVUJiZmJqU3pMUlJGWGRWM1BDOENaVEtZb2FZelpiSlo0UEw0alBZQUJjamtkVmRVeDhsOW9HOTErVy93VkxiRlZFQ3l0UmxkQlRVSTJEcm5FMGkwRldxcWdUNjh0K2k3Rk5OczlmVTF6N2FIZ2FpMkM3VjlXUkU2dkVqKzlIdlp6U3VCUndDWHZTSGlNNHdEZVlSd0J1SVRrMUlYaGRIb1ViNkFkU1E3bW5iVnJZMWRheVhpOFRWVFdCQ2dydjRpMkpQNXFXc0lTZ0ZrcEFGc25pcVZCenRKRnVpQW95TElQU1FraXlVRWtPWUFzQjVCbFA0TG9XdnBySGNFMGx1YkdYcHg0S3FnUUVWWS9DeG1HZ2FacGp2UHlGZUJGa2FoVXZYeEVVY1RuOHhVMUhzWVJnRXZMUmk3aTl0S0VjMDFORGRYVjFYUjNkNlByT2c4ZlB1VE9uVHRjdm55WjF0YU5GT1RzYnhSRndlLzM0L1A1RUVWeDFjR21wbWxjdjM0ZFFSRHdlcjE4OU5GSGUwNEVucDJkNWNxVkt3d1BEKy9hTnBTcUYvcCs0dmp4NDd6NTVwdmN1blZybVFBOE1qTEM0OGVQU1NRU1ZGUlU3TXEyS1lyQ3FWT24rUGpqajFsY1hHUndjSERGTXZQejgxeTllcFVMRnk0UURBWnBhR2pZMExvMzhsMlNTQ1FZSFIxbGVucWErdnI2VFcrL3c4WTVjdVFJbHk5ZjVyZS8vUzJMaTR0ckxtZWFHc25FVTZJTHQvSDZXL0VIT3BFa0Y0YXhmUmV3aVlrbysvRDRtbkc1YTQ0QTE3ZTVVbVFsV0NFcElRUlJmcUhBYzNOWVl3d05UWTJpYTZtMWQ5RCtJQWRNWVBVRGxyREUzeURRdVBSN3NWakFjckhlQUxxQkdmYXYrR3NUd1lxenJnSGFnZXFsMjNiRTh4aVcrSHNUK0E3cmZSbkJFaXNkaW9kS0VlTzJEQk95T1VobVRNcFU0Ym1zL0tvTms1YTBuY1dveWMwZWs3KzdiWER6cWNsTXhCRW5pNFdkR0dtYUZFeVFPemhzRFVFUUNBUUNuRGh4Z3ZmZWU0K1BQdnFJaXhjdlVsNWV2dWt4Vnk2WEl4NlBNenM3eStqb0tPUGo0K2k2VG4xOWZkNHh1ZFVvNlVMeGN5ME13MEJSRk9ycTZuanp6VGQ1L2ZYWDF6UlJiS1NZWGxWVmRGMUhFSVM4K0N3SUFvWmhrRTZuU1NhVDVISzV2S0hDNS9OdHlsU2hhUnJwZEpwb05FbzBHaVVTaVJDTHhZaEdvOFJpTWVMeE9LbFVpblE2amFacCtXMVJGSVZZTEVadmJ5K0pSR0tGQU96eGVQSTlrNHNwdU9xNnp1enNMR05qWThSaXNYelA4VUpNMHlTZFRwUEpaRkJWbFdReXljTENBdFhWMVhpOTNwSUp3S3Fxa3MxbVNTUVN6TS9QazB3bWNidmRWRlpXVWw1ZWpzL24yL0R4YkwrR1ZDcUZxcXI1OTk4dUFOQTBMZjg4MFdnVVZWVzNQSmNxeXpJZWp3ZTMyMTBVQWRoMkFDY1NpYUlKd1BiN3VKa2V3TnVaQTlZMEhVMDNYMzdOc0V4Y1pTblcyYkFpbDAzVGN2MXFXVXZ3elVZaHZXamRNb3ZXZlZyR1dzWXMwSERzcGdvbUlHN1ZxQ0tzOHVzVzN3TVJGQmxrYVVkNkFOc0NzQnVuQi9DTzRBakFKVVRYRWpPcGVELytZQ2YrWUhnREFqQ0FpV21vQ0lLRTIxTUxubHBNVThNMFZBd2poMm5vcTR1eFM1VWlsZ0JzVFFTQmlDZ3FDSklMVVhSWmxTbUdqbWxxNnpoOUM3SE9hcytqb0ZkdXUybWE1SEs1SGFuTWNTZ3RMMzVwMm5FMXhSYUJKVW5DNC9FVTFRRU16Mk54SElxTC9YNzVmTDQxS3dYdEFkSmVJUndPYytyVUtYcDZlcGlabVNHWlRITHo1azIrL2ZaYmFtcHFpaDQvdmhmeCtYd0VnMEZrV1Y2ejJqaVJTUERkZDkvaDgvbndlcjE4Ly92ZjM3VW8zeGN4VFpQcDZXbkd4c1oyTGY3WjNvNkRUbjE5UGFkUG4xN1JTeWtTaWZEMDZWTmlzZGd1YlpsRlhWMGRmL3pIZjh6SXlBakR3OE1ydmdjTXcyQm9hSWcvLy9NL3A3cTZtcC85N0djdjdlZTFHZWYzeE1RRXZiMjlWRlpXRnYxN3plRTVpcUp3L3Z4NWZ2S1RuNUJPcHhrWUdGaHpXZE5RU2NhNmlVY2U0UEUySVNzQnF5L1NOakZOQTBueTR2TzM0ZkczbnBhVlFKV21KdWEydWo1RkNkWFdOdjl4ZytLcVFCQzJKd0FENkhxYWJHYnF2OWR5aXlQYld0SGV3QllkRFN4SGF4QnJZTkpJY1NyRjQxaEM2UTBzSVg4QTJNamdhRDh3Qnp6RjZ0RWJBRTVqaWNGYitZS1A4Rno4L1FiTEFUeUZJLzZXQWcxTEJEWW93a1NZWVppa3NpYnhsSW1lQTZtd3I5MnJjbWxqaHdlYXNKZ3dlVGhvY3V1cHlmUitMNEhaWTlqcGtzNDFzVU14cUsrdjUrelpzN3o3N3J1OC9mYmJuRGh4Z3NyS3pYY3IwSFdkSjArZTBOZlh4K0xpSXBGSWhJV0ZCVVJSSkp2TjVxTnkvWDcvbGdVcE8yWjVMZXpQaEN6TEJJUEJrbzREQW9FQTFkWFYyMTVQS0JTaXRyYVdiRGFiRjN2dFd5YVR5ZC9zKyt4NTNwbVpHZExwTkNNakkwUWlrV1hyZEx2ZEJJUEJvdmFXQld2L3FxcEtKcE5CMS9WVkJXQjQ3bXpPWkRMRVlqRVdGeGRKSkJKVVZWVVYxWkZzWXhjQUR3d01NREl5d3R6Y0hLWnBFZ3FGYUc1dXByT3pjOE90aDhCNm5YYUV1ZTI4TG96NHRoK3pYZHVwVkNwZkhMQlpGRVhKei8wa2s4bE4vLzJMck9ZQTNpNkdZYUNxYW41L2xKcWNxcU5wQlVhaTFYYXIzVGRYRk1sZm9wbExzYzdadUJYcm5JMHRpYjhKVUZPZ0xqbC8xYVFsREJ0NndmcUZsVDE0TitQWUxRVkxMMUVTQlJRSkZHbEhxZ1psckhHZEl3RHZBSTRBWEVJTU5UbWZqSFgvTEJnKzlkZit3R0VRTno3dU5rMGRjMW5USGhGUjlMRHBUdHhMem1CREw2elMydHlIMkRTeTZGb0swMXdwSWhpR2tZOEpjZGkvRkRwb0MrOTdXZC9YclNDS0ltNjN1NmhDazcydGpnTzQrSWlpU0VWRlJiNktNaDVmdlRYZVhuSkpCb05CenAwN3grM2J0NW1abVFIZzhlUEgvUGEzditYczJiT2NPSEZpVDIxdkthaXJxNk85dlozYnQyK3ZxTkl0SkpGSThNVVhYMUJXVmtabFpTVnZ2UEhHbnRnM2k0dUw5UGYzcjd2dE8wR3BlcUh2Snp3ZUQ2MnRyVFExTlRFNk9wb3ZBakZOay9IeGNmcjcremx5NUVoUlV4MDJnOHZsNHNLRkM3ejk5dHRjdlhxVjhmSHhGZTlaTHBmajZ0V3JuRGh4Z2dzWEx0RGUzcjdtY1I0TUJxbXNyTnp3ZDlUQXdBQVBIanpnN05tempnQmNZcHFhbXZpVFAva1Q1dWJtbUp5Y1hMWHZzMDB1TzAwODBrV3c3Q3lLcXh4QkVMY1ZzUXlBYVNBS0NtNVBIWUhROGY4MkdlKzVBdnhxcTZ2ekJZOTg0QXNjL3FleVl2WHkycHF6U2dSQndEQlYxT3dDMmZUa00xV05iVHVhZW84UXhlb3hHK2E1ZzFYRWlqYmV6a1ZrQmt2d3ZZL1Y5L2NwKzdmdjcycm9XQ0p0RjFZUFpRL1dQcXpkeERvMG5vdS9kN0djdi9ldzl0dkIvbElzSFJtc1NPMml6SGJxSnFTeUVFK0RsZ1BKemF2cEFNYWE3b2dtWVd3T3Boenh0K2lZcGhPbDdiQjlGRVdocHFhR3Q5NTZpKzkvLy91OC9mYmJIRDU4ZUZPRjJiYklwNm9xL2YzOS9QNzN2K2ZKa3lka3Mxa2tTY0kwVFlMQklHVmxaV1N6MlcyM3FCSkZFVW1TRUFSaHpmR2dydXQ1NFhFLzRYYTdjYnZkbEplWDUrZlE3RG5CWEM2WGQzWGFidURKeVVrbUppWW9LeXRqYW1wcTJiNjEzY3JGTmdRSWdwRHZXZXR5dWRZVjQrMitzYmFiMlJhTmkwMDJtMlZvYUloYnQyNXg2OVl0bmoxN1Jpd1d3K2Z6VVZGUndlSERoM0c1WE5UWDEyOUtBQzdreFFReSszZGQxMGttazhUamNRS0J3SmJtVXhWRndldjE0dkY0MWoydU40cGhHR1F5bWJ3enZCanpKclpMZWFmRzFacG1vT3RHZ1FQNGhTaGx3S3FDMHEyWVp0MndDb3UxbENYK3B1WWhQV2Y5ek1aQlhicVVNL1huTG1GQkFPbEYrYTJnTUc4M2hkOFhFSmRjd01yTytIc2tuQjdBTzRZakFKY1EzY2hsWkRsd05SSHIrZDhENFpQL3BkdGJoeUJJcXdxcHE3TThnLzdsay9JcnkzcE5PNjluQzVmdGdnQW1Bb2FXeGRDVHE3cVg3UXVFdmRMLzAyRnJyQ2ZrRjFzTXNudVdGTE1hejRtQUxpMlZsWlZVVjFjVENBVFdGSUQzMG43M2VyMjB0YlZSVTFPVHYyOXhjWkhyMTY5ejdkbzFxcXVybHozMkt0TFcxc2FaTTJmNDNlOSt0NkpLOTBVU2lRUy8rYzF2Q0lWQzFOZlgwOUxTc2pNYnVRN0R3OE4wZFhXdGVienRGRTZxZ0VWdGJTMXZ2LzAybzZPakRBME41ZStmbjUvbm0yKytvYjI5blRObnp1emE5a21TeEprelozanp6VGY1M2U5K1J5S1JXSFc1Ky9mdmMrWEtGU29yS3dtSHc2c3VVMU5UUTF0YjI0WUg3U01qSXp4OCtKQllMTGJuWXRSZk5XUlo1c3laTTN6ODhjYzhlZktFTzNmdXJGbUFhT2haVW5FckNscVJ5L0Q0bWhCRXdVclMyVExXOTV3b2VRZ0VqNU1wbi9pWngxdlhuMGxQUGRuc21qemUraE4xemYvZ1o0SFFDUVJCWHJyRzNzcTF1b2lKaVpxWkk1WG9KNWVkM2IybTZhVWhpdFdiMThRU0pVV3NBVThkVzNNQ20xaDljbTlnaVpvOXZGcmlyMDBVeStFc1lmVUJydVM1RUx3UnBvQmVMUEgzRmxaVTlpaXZwSHk0WjBoZ0hZc3FSWEM1R3daa1ZVc0VWbFZ3djJyK0NudDRhb0NXTTBsbUlKNXhEcytEU3FFdzVCUnY3ajNjYmpjblRwemd6VGZmNU4xMzM4MFhZMjVHNEZGVmxhNnVMaDQvZnN6NCtEaWpvNlAwOXZZeVB6Ky9UTlJ5dVZ3RUFvRjhEK0R0WVBmaGxXVjU3ZXZOSmJkaU9wMG1tODN1V2tIc2RuaFJXTFgzWVZsWldYNnVOeGdNMHRmWFIzbDVPWXFpTEp2L0xkWG56ZTZwYTd1TDE1dVh0T1BBWTdFWXFWU0tYQzVYOU8xS3A5Tk1URXh3Nzk0OXJsMjdSbGRYRjlQVDAyU3pXUUtCQUtsVWlrQWdRQ1FTMlZRUnUvMjYxbXM5WmJ1ZjArazA4WGljcXFxcUxRbkFzaXpqZHJ2emd2cDI1L0Z0QWJpWSs5em44K1dqdEV2aDRINFI2enVqNEE3Qjd1dTcxTnZYTkVIUFdVN2VYQUl5UzcxOXN6SEw1WnQzQUMvRlBCdjY4MnVVL0hwMjJkMjdTVVJoeHdSZ2tYd3pENGRTNHdqQUpVYlRFbk9COFBHLzlmZ2EvOHVLMmc5eHVhb3g5YlVkQzZ0am5ZMTI2MEpXTnpKb1d0S0tPSGdCMjNucENNRDdHMDNUaUVhankySkFWRlVsbDhzVlhRQ3g0NEtMM1kvREdleVZEci9majlmcjNWTXh6K3VoS0FybDVlV0V3K0ZsVVVFakl5Tjg5dGxuSEQ1OG1PcnE2ajNoZEMwVmxaV1ZkSFIwYkZqRW1wMmQ1WGUvK3gxbno1N2xELzdnRDNhOW4rbk16QXdqSXlOa01xOUtJdWYrcHJ5OG5JOCsrb2l1cnE1bEFuQThIdWVycjc3aXdvVUx1eW9BQXh3N2RvenZmZTk3WEw5K2ZVMEJ1Syt2ajkvOTduZGN1blJwVFFFNEZBclIxTlMwNFJpemFEUktiMjh2czdPekI2TEgrRzRqeXpKdnZQRUdIM3p3QVQwOVBlc1d1T1J5OHl6TWZJUExWWVhMVTQwaytURFptdEQ2SE90NjErMXRvS3pxMG45bWFQRUZyNy9sTDlMSmtWc2JmdzMrc3JLcXQzNFFMRHY3SjI1UHJWVWN2b1g0WjBHUUVVVUZUVXNRanowaU9uLzl2OGpsNWxjMnd0Ny96QUJKckoydjhOekh1QlVuOEF4V0Q5dXJXSTdXbWVKdDVwNUNBMmF4SmxhcXNVUmdDVGdNbExINkxKUmRNVHlCNVI2K2hSWDkvR2hwWGM0WGNtbUpBNHRBRnN2eHZxMkxWTk9FbkdhSndMbFhlWmh1Z0taYXI5TXBUemk0Rkk3cG5QbUF2WVhINCtINDhlTjgvL3ZmNXdjLytBRm56cHlob3FKaVUvTUs2WFNhSjArZThPbW5uL0xWVjEvUjI5dExOQnBGMS9WODI2Tk1KcE1mKzVlWGwxTlZWYld0K0dmWStMeVZMUUxuY3JsOUtRQ3ZoY3Zsd3VWeVlab21McGVMdXJvNktpc3JDUVFDeTl5ZWhtRVVwWi9zaTBpU1JDZ1Vvckt5RXIvZnYrNnl1VnlPUkNLUjc1TmM3UE9BcnV0TVQwOXovLzU5YnR5NHdhTkhqNWlibTh1N2xHMG5lRGFiM1hTTFJMdlBzaXpMK1dPdGNQdHRZZmhGc2ZYRjlrd2JmUzc3bUM3R1hKaHRDTE9kK2NVZ0VBalEwdEpDVzFzYkZSVVZ6TS9Qdi9SdjdNaHMyeGkwR2ZMQ3UyREhPK3VXaUdzdTlmYlZWU3ZTT2JOZ3VYeFRjNUNKUWlZR2hoM3RiRnFWZDRJQWtrU0JBdnc4OG5tdlUrQWJWR1R3dUpaTWdhWDlTbDBLbm5iWUNSd0JlQWRJSmZwL3Z6RDd6VC94K0pyK2xWd1d0UHA4WVd4cHNtZG5zZVpYREVQRk1MSnJicThqdk8xL1ZGVmxhR2lJdWJtNVpmZVZRZ0NHOWF2YkhJcVBZUmo1bmlIMnhicTkvKzNQcnYxL1daYngrLzNMbkd6ajQrTk1URXlzRzdlNWw5NVBVUlFKaDhOVVZWWGg4L255WWxBMm0rWEdqUnU4OWRaYlhMeDRjZHRWd1hzWlNaSUloOE9iZWw5R1IwZjU1UzkvU1gxOVBYVjFkYnY2bnRxOVpFb3htTndzenZlYk5YbHo1c3daT2pzNytleXp6L0x2aTZxcVBIMzZsUDcrZmpLWlRORjdQMjJHMnRwYUxsMjZ4TVdMRjRsRUlxdjJOVnBZV09DNzc3N2ppeSsrb0txcWlvcUtpaFhMMkorZGpSWXBtYWJKNE9BZ1Y2NWNvYW1waWJxNnVtMi9Gb2YxYVc1dTVzTVBQK1Rtelp0Y3UzWnR6VUlSMDlCSXhYdUpSZTRSQ0IzSDYyOUhFQ1hNYmZRRHRzOEhvdVRHRnppRVVQZUQvN2NnZTRPQjhMSHlUR3IwcHFZbUkrdjl2YXdFcW9MbDUvKzRyT3FkLzgzamJiVGN2OGJMbEF2N21rbEVFQ1FFd1RvMmRUMU5PalZGS3RIUHdzelgvNTk0NU1IL3ZaMmV4SHNZRGN2UitoVEx4V3BQVVFoWUl2Qkd4ck02bG9qWmpkWEh0Z3ZMMGZvcTk3Q3hSZUJ1d0kwVkw3d0kxR05GUTd2SWQxQWxpeVZBeHJGaXR4OWlDZVZQZ0xHZDN2QURTZ3FyMEtFb3g2UXRBR2R5b0w3S0FyQnBwU3NhNXI2WVhuVW9FYzYxK3Q2a29xS0NNMmZPOE9HSEgvTEJCeDl3NXN3WnlzcktOcldPNmVscHZ2dnVPNjVjdVpJWDNxTFJhUDV4VGRPV09YVnRWN0dxcXVpNnZpMEhZV0dic2JXd2hUbDc3dXhWUkJBRVBCNVBmbjZsdXJxYVhDNUhMQmJMeHdpWDRqTm9pL20xdGJVRUFvRjFuOE4yWVpjcStqbVh5ekV3TU1DTkd6Zm82dXJLejV0NnZWNVVWU1dielJLUHg0bEdvNlJTcVUzTm9RcUNnTnZ0eHVQeDVLUE1WeE9BN1o3SWU2a0ZvNTBrbVU2bmkzYjgrM3crMnR2Yk9YMzZORjFkWFV4T1RxNVozRzFqbndOMFhVZFYxVTBlandLSUVvZ3lJSU9oV283ZVRBeHlTNjVmZGNueGE5OXlLY3Z0YXk1ZGZDeHordTVqUGRPMFhvTEhCU0VmZUJSSWwvYTBKdUpFUU84WWpnQzhBeGg2THFPNEs3K016RjlIVWNxdENTTkIyamNDTUlhT2FXaHJua1FkTVcvL3M3aTR5S05Iai9MOVVzRnlVYjZzMThaV0VFVVJSVkdLMmdNWW5FS0U5Y2hrTXR5N2Q0OHJWNjR3TURDdzZtRElORTFFVVNRUUNIRDgrUEY4WDU3cDZXbCs5N3ZmY2VQR2pYWDcveGI3T05rdVZWVlZORFEwVUZaV3R1eUNjV0ppZ2tlUEhqRXdNTUNwVTZmMjNIWVhFNy9mdjZsb3JYUTZ6YzJiTnpsNzlpeW5UcDNhdFNob1hkZEpwVktrVXFsZFQ1ZHdZdVdmVTE1ZVRsTlRFOVhWMVV4T1R1YnZUNmZUVEU1T01qWTJ4cUZEaDNiMWV1RG8wYVA4dzMvNEQ0bEdvM3oxMVZlckxqTXlNc0svL0pmL2ttQXd5Si8rNlordU9qRVVEQWJYZEFpdnh2VDBOUC8yMy81YjZ1dnIrZE0vL2RNdGI3L0R4ckQ3UHYvRGYvZ1BTYWZUZlBmZGQrc3VuNHIzRVl2Y1IzRlY0UExVWUxKVXFiMGRUQU5KOHVBTkhLWks4djVUdDZmdW44WVc3dnczM2tEYnQycG10a2ZUVmdyQmJrL04wZktxOTM1ZVVmM2VQd3VVblVKV3drdHRZZFlYZndGTXF5bkxVaTlHQ2RQSWtrejBFWm43N2wvSEZtNy9KcG5vKzFwN2RYci9yc1VjbGhzMWpXM0Z0bmJlUnF6M1UxaWk1aTJzV09NUkRvYWpOUWNNWSsyem1hWGZXNEVLSU1CelFUMkc1ZndkdzRySUhzSGFaNjlpUWNGZUpZMGxBR3M4TDNEWU1vWUpXZFVrblRQSmFZSTFSMmtuRUw1S2x6V0MxYTlPc3VkZEhRNGtUc3VXdllVb2lsUlZWWEh1M0RsKzlLTWY4ZkhISDNQa3lKRk5GWXJxdWs0aWtlQzc3NzdqMy8vN2Y4K1ZLMWVZbjU5ZkVhMnJxaXFaVElaZ01JamI3VVlVUlNLUkNKT1RrNFJDb1cyMWZiTEZwTFVLa2d1ZG1lc3R0MWN3REFOZDEvTm1nTTJrOGhtR2dkL3Z6N2VMVWxXVmVEeU9LSXBrczltODBhQ1lEbWhCRUFpRlF0VFYxZVZGNElXRmhUVzNMNWZMNWQyM3haeERNQXlEU0NSQ1QwOFBYVjFkakkrUEExYUJ0Q3pMK2VlMWUwSGJjeGlGcG91WDRmRjQ4SHE5S0lxeTV0K1lwb21tYWZuWHQ1bjFGNjZqOExaZENrVnBUVnRiTTlnTWlxSlFWMWZINmRPbnVYVHBFc2xra2lkUG5oQ1B4NWU5YnJzL3ROdnRSaEFFc3Ruc3FnWGdHOExRck42OVJoUlNVWWhOUVhMR2N2eG1vcUNsclJobzAzWUhtOWJGUjU3Q3ZzSDdHTk9LZi9hNUJjSUI4SHRLTGdBTFdMcmtxenNwdTRkd0JPQWRRbE9qNDVHNWJ5KzVYTlgvcmN0VC9mY1ZWL2ttK3dIdkRnSmdtanFHcVdLdU1Wb3NWbnlFdys0UWlVUzRmLzgrQXdNRHl5ckpmRDRmNFhDNDZFS3QzY3ZEL3FJdTFvV0hwbW41Q3dLSDVkZ083NisvL3BwYnQyNWhHTWFLMkNWYkFQWjRQRFEzTi9QdHQ5OVNYMTlQSkJLaHE2dUw3dTd1ZGF2Njl0bzV3Qlp3WG96RzBUU05temR2OHNVWFg5RGEycm9wa1dlL0VRd0dPWGJzR0NNakl5L3RBMnd6TnpmSFYxOTl4ZUhEaC9uNXozKytLeTVwVGROSXBWSmtNaGxuUW1jUG9TZ0t0YlcxTkRVMU1Uczd1MnlTWTJwcWl1SGhZWnFibTNjMStzem44L0hoaHg5eS8vNTk3dHk1UXl3V1c3R01ZUmpjdlh1WHp6NzdqRE5uem5EOCtQRVYzM05WVlZXOCsrNjd6TXpNTURBdzhOTG4xVFNOKy9mdmMvLytmWDcwb3g5dDJ0M2dzSGtxS3l2NThZOS96TkRRQ1AwRHc4eE1UNnk1YkRZelFUenlrRkQ1ZVZ6ZTJxVjd0NmVDMkVXY2t1akc2MnREa2dPNFBiWC9peS9lUnpZMTlqOVVWTDB6b2V1cGlJbWhpNkluNkhKWE50WTEvOG1wUU9qa24vZ0NIY2l1RUpqbXV1TUFRWkFRUkFWTUEwMk5rY3ZPa00xTWtjM09vbVpuLzY5MGFyUW5HZXY1S3AwYzNuRDg5RDdIQktheGhGc1hWcVJ4R3BqSGlqaGVLdDNQOTVJeWxtNHhySDY0TjdIY3YzMVkvVllQQ3Jhek40SWxBamNCVlVBSXl3bHNMajAyZ2lVUVR5MHR2N2Ruc2w4OWtsajd2U2hUYlpZQWJFM2M1V3hKK1ZWRUFIbEpBSFp3Y05oOVhDNFhiVzF0dlA3NjY3ei8vdnU4OWRaYm5EaHhZbE9SejdsY2pwNmVIdTdjdWNNWFgzekIxYXRYbVpoWS9UclBqc1cxeDQyNVhJNzUrWGttSnlkcGFHallsZ0Q4TXFHczBBaGp1NFgzS3BsTWhvbUpDU1luSjRuSDQvaDh2dnk0N21YeHlqYmhjSmlXbGhibTV1WklKcE5NVFUyUnpXYUpSQ0tNalkweE5UVkZmWDM5cGdyUVg0WW9pdFRVMU5EVzFrWnJhMnMrQW5rMWJEZHFLcFVpblU0WDVmMHdUWk5rTXNuWTJCaERRME5NVGs2U1NxWHcrWHo1WTg5MnY5cXR4Mnd4ZURNT2RGbVc4M09rdHFoY3lJdE9jMXRzM2V3Y25IM01GbXZ1N2tWUnVsaklza3hiV3hzZmZ2Z2g0WENZUTRjT01USXl3c0xDQXBsTUJrVlJhR2hvb0tXbEJWRVVHUjRlcHJ1Nys2Vk80VFZlaGRYSE56b0NjN01RWDRUNVdVdjR6Y1V0RjdDeE5FOHVDTTlkdnNMK2FJKzNLWmFLQmQyS0pmN3VRQXkwYlpsMnJ1SjJBRWNBM2lGTVE5T0E2MldWYi96ZmlxZjY3NWRWdkk2aTJOR0Q1ZzY2Z1F0ajVFUkwxRFdOZFNlZ0RGUEYwRE5ZY3lndnJHMnBjbXkvOUFaMVdFbFhWeGVmZlBMSml0NEtvVkNJNnVycW9yKzNzaXdUQ29VSUJBSklrbFNVU2ttNzhreFZWVWN3V2dYVE5NbmxjdmxZbXBjeE9Ubkp6WnMzTjdYK3ZZWXN5NVNWbFZGZVhvNGtTY3N1U0h0NmV2SjlRQzljdUZEMElvZTlRa1ZGQlI5OTlCR0RnNFBjdXJWeGZhQ3JxNHRmL3ZLWE5EUTA4TzY3NzI1NFVGZ3M3Q3JpUkNLeDY4ZldYaXRzMkUxRVVhUzZ1cHFHaGdZZVAzNmNQM2VicHNuVTFGUytaL051OTc2cXJxN203Tm16SER0MmpOdTNiNi82bldDYVpsNEVibWxwV1NIWVZsUlU4SU1mL0lDZW5wNE5DY0JndVFTR2g0ZnA2K3ZqdGRkZWU2WFRCZllLalkyTmZPL2pqM25TL1pUZi9QcHZ5R1pYTjNUcVdwSlU0aG1KMkdNVWR5V0tYQWFBYVc3eitzTTBsbm9LQzdqY2xjaEtFSy8vRUdwMjdyL1Rjb3RvV2dMVDFKRmtQeDV2RTI1UFBaTHN0U1lUamZXZHY0SWdZV0tnWm1iSVpXZklKRWRKSmZwSUpmdi9pMVJ5OEx0c1p2ckowdGppSUJJRmVyQmN3R05BSFZaZjIrRFN6YnUwbklvVmJSekJjclUrd1JKL1ozaTFvNS9YWWg1cmY4enpYUHkxWjJtVFdHN2ZnN3B2OWdKcHJHTTdReEhrV3NONEhnR3RhVHgzQUw5cWlGYTd2V1V0OXh3Y0hIWUZqOGZENGNPSHVYejVNdC8vL3ZlNWRPa1NWVlZWbTVwUHltYXpQSDM2bE04Kys0eS8vZHUvcGF1cjY2WHpGN2J6TDVWS2tVZ2tXRmhZWUg1K25tUXl1U1dSYktNVWltbUZZdkZlR3ovcXVzN0V4QVEzYjk3azNyMTd6TTNOVVZaV3hwRWpSemg3OWl5SERoMmlvcUppWGJGU0ZFV0N3U0QxOWZVME5qWXlQVDFOS0JSaWJtNk91Yms1bmo1OVNtZG5KK1hsNVVVVmdBSEt5c280ZnZ3NEZ5OWVKSlZLOGV6WnN4WGpPMG1TOEhnOENJS1FMd2dvbGdDY1NDU1ltcG9pRW9ua3g3KzZydWNqcDlQcE5JSWc0UGY3Q1lmRGVMM2VmRUhBUmdWZ093YmFGb0Z0QWJod0xzUmU1M2JFMXNKanRoakg2V3F1NUdJUkNvVzRjT0VDTFMwdG5EaHhncWRQbnpJeU1rSThIc2ZqOFhEczJERk9uRGhCTnB2bHM4OCtZM1IwZEd2T1p0T0V6Q0lzOU1HVUNha1l4SkpMVGw4RFN4VmRPb2ZaKzJ5UGZjYUx3dEp1RTdCNkFMc1Y2NmNvZ0Y3YUtUa1hFTVlhcnptVUVFY0EzbUhpMFlkL2pTai81NktvL0l0dytXdUlrZzhCa2RYRTFlTHpZb3ljOVp4cm5pQUZZU2tCT29laDI4M05seU9LNHJKbTlRNzdpN0d4TVQ3OTlGTSsrK3l6RmZHK1pXVmxWRmRYRi8yOXRmc3Joa0loWkZrdVdsU09ZUmlPK0xzR2hRT1RVajdIWHFPNXVabk96azU2ZW5xV0RSeDFYZWZodzRmNVBxQ0hEeC9leGEwc0hhRlFpTGZmZnB2YnQyL3o4T0hETmZ0a3ZrZ3FsZUxxMWFzRWcwRmtXZVo3My92ZWpyNi8yV3lXYURTNm9XS0ZVdU5FeXkrbnBxYUc1dVptUEI3UHN1cnIyZGxaaG9lSFNhZlRlOEpWZitMRUNTNWR1a1JmWDkrYVVXRlBuejdseXkrLzVPT1BQMTRoQUx2ZGJscGJXemZ0R2hnWUdPRCsvZnNjT1hKa1QreUhnOERyRjE3akQvL3dEM2o4NkI1UG56NWRjN2xNZW95NXFjK1JsQkFWbGU4aWlxN3RDOEFGQ0loSW9oZlI3VVpSeWpETkhLYXBMeVdFeVlpaUIxRzBpNDNXaTBpenI5VWhtNWtpTXZjZDhjVjcvM1VtTmZvd2w1dnIwN1hVdks1bkRwSjdkUzFtc1hxbVBzUHFiK3ZIY3JWV1lrVWJnK1drVEdJNWdHMXhNOHJCRmpnVFdBTGpITXNyN25Xcy9YVlFpd3IyQW5ZZjVxS0Y3ZWs2cUJyb3IvTHdTTERtWlNYUjBYOGRISGFUeXNwS09qczdlZnZ0dDNuLy9mZDU3YlhYYUdobzJOUTZNcGtNRHg4KzVMUFBQdU9MTDc3ZzVzMmJHeHEvMnNYdTZYU2FlRHlPMiswbUdvMlN6V2EzSmNqYWtjbnJVZWdBdGxzSDdhVjVFVlZWbVp1YjQ5R2pSM3p6elRmY3VIR0RhRFJLSUJDZ3Q3ZVhaOCtlY2V6WU1ZNGNPVUpIUndmTnpjMXJici9iN1NZWURCSUtoZkQ3L1hpOVZyM2Q0dUlpdzhQRGpJK1BjL3o0OGFLL0JxL1h5N0ZqeDFoY1hHUmhZWUhwNmVrVjZXWit2NSt5c3JLOHlhUllZcVR0dk0zbGNoaUdrZDgzbXFhaGFScnBkSnBzTm92UDU2Tzh2SnlHaGdicTZ1b0lCb09ibmtkVkZBV3YxNHZYNnlXZFRnTXI1K3J0T2MrdHZyWmlDOEJnT2ZidENPaGlJZ2dDUHArUDF0YldmQ3VxNmVscFVxa1VMcGVMbHBZV1dsdGJtWitmNThHREI5c29RamN0cDI4aUMzRWRzaG5JR3BZZUlrcExydCtEcFhkSUlpaVNsYkJTNHRPWmdGVzgyd2lNNDR4RFNvb2pBTzh3dXBaT1NMTC9yeVJCY1JsYStuOFBscC9EN2FsRkZGd1loa1lwaEdCQkVCRkVCUUVSdzFUUjFUaTU3Q3k1M0FLaTZNYnRxVU5Xd2dpaXZGVGhzdlIzQ0poWURnblR5TEphTWJJZ0NNaXk3RGlBOXdtbWFSS1B4NW1abWVIcDA2ZDg4ODAzL09ZM3YyRjJkbmJaY3NGZ2tNckt5cEk1L3dLQkFGNnZ0Nmppc3RPTGVuM3NZbzFTc0JkN0FBTWNPblNJOCtmUDgrV1hYNjRRRTJkblovbm1tMjg0ZmZvMDdlM3RyK1E1VEpJa0RoMDZ4SWtUSjZpdHJXVmtaR1REZzRWb05Ncm5uMzlPUjBjSFI0OGUzZEYrd0txcUVvdkYxdXc1N2JCN05EYzNjL3o0OFJVOW1HWm1adWp0N1YwemttdW5hVzF0NWZMbHkvem1ONzlaVXdETzVYTGN2WHVYWC83eWw3amRibzRkTzdiczhlcnE2azJMdUFNREE5eThlWk1mL2VoSGpnQzhRd1NEQWQ2NWZJbVBQdnFJV0N6RzFOVFVxc3VaaGtvaStnaXZ2eFdmcngyUHIzbXBGY3RTWmZlMnNLT2NseVpVUkJjSUxteHRMZDlPeFZCZitseUNZRTAwWkRQVFJPZHZNai8xNmMrU2lXZWY2MXJhRVgyWG8yTUp1NFU1NzM2c0tHaTc5ME1PeTFXWnhoS0xuVWtGQ3cxblgreEZVbGpIOCtxRDdrMWltcGJ3cSttV0c5aUVWMHNoTGV5UzdQUUFkbkRZVmNyS3lqaDM3aHdmZlBBQkgzendBV2ZPbk5sMEc2RlVLa1ZQVHcrZmZ2b3B2L3psTDNuNjlPbUdpNWZoZWZ4dk1wbkU0L0dReVdUeTZYQmJtYWV3QmQzQ0Zta3ZZcytCMkNMaGRvUzVVcEhMNVJnZkgrZng0OGZjdjMrZjd1NXVWRlZGbG1XR2hvWjQ5T2dSTFMwdG5EbHpoc3VYTCtjZGx5LzJhN1pmcXlSSktJcUNMTXY1ZnJXcFZJcUZoUVVpa2NpS0hzM0ZRSklrbXBxYXVIanhJak16TTh6TXpQRGd3UU9TeVdUZVhGSmJXMHR6Y3pQTnpjM1UxTlRraGVEdFlqdHpnOEVnZ1VBQVJWRXdEQ1B2ZXRVMExiOE5MUzB0ZEhaMjB0SFJRV1ZsNWFibjNtUlp4dS8zRXdnRVNDUVM1SEs1ZGVQSHQvT2Fpb2t0QUt1cVdyTGpQeFFLNGZWNmFXbHBRZGYxZk9zNjI0d21DQUtLb216OVBkZFYwQXlyZndhQzFkOVhFSG0xTHB3MndGSmFqQ3lCV3hGUVpCQ0VrcDdUQkt6QzNXYWdpNFBWb21mSGNRVGdYVURYa2hGWjh2eHJUVXRGVkhYeDN3YkRaL0Q2VzVIbEVDQXNPUklLTHg1Vys4QzljQ0lTaElKN3JBb1ZBV3NrWkJvcW1ocER5OFhJNWViSXBzZEpKd2ZKcENlUUpCL0I4dk9VVmJ5QjRxN0NORmNwT2w2S2lGNnRCN0F0QU85RjhjZkJZbkZ4a2JtNU9SWVhGNGxHbzB4TlRURXdNTUNOR3plNGR1M2FxaTY3dXJvNnFxdXJpeDdmWXVOeXVmSVhqTVZDMTNXbkIvQkxLTVcrOGZ2OWRIWjI3a3F2MkpkUlcxdkxzV1BIOHRXcGhhaXF5dVBIaitudTd1YTk5OTU3Wlh0MitudytUcDA2eGJsejU1aWVudDdVUUhwdWJvNXZ2dm1HbzBlUDhnLyt3VC9Zc1Nqb1pESkpQQjVmdCtlMHcrNWdPK1pmL0c2SXgrTU1EZzV1dU5kMHFRbUZRcHc3ZDQ1TGx5NHhQVDI5YWk5Z2dPbnBhZjdpTC82Q1VDaEVWVlVWVlZWVitjZUN3ZUNxNTQ3MW1KdWJvNnVyaStIaFllcnI2MS9Kd3BLOVNITnpNMy84eDMvTXdzSUN2LzcxcjBrbWs2c3VaK2hwRXBGSHhQenRLSzR5RkZjMXBwNHU0cGJZaVFITDFaYlZycDlYeDdwK040d01pZWhENW1lKy9FZkplTzl2ZFgyTmJHdUhGMGxpaWIzMkNVcm5ZTHQ5SGZZWGFTd0JPRWVSQkdCTnQyS2d0VmZaQVF6V3FWTndCR0FIaDkyZ3BhV0ZzMmZQOHNFSEgvRE9PKzl3NHNTSlRjMExhSnJHNE9BZ1BUMDkzTGh4ZzkvLy92ZDBkWFZ0MmsxWTZBSzJ4U2g3Zm1pclJmQzZycTg3SGkwMElPeFZBVmhWVlNLUkNITnpjL24rcVdDOXRtdzJteStlbkoyZFpYWjJscEdSRVk0ZlAwNUhSd2R0YlczTDNrdFpsdlBtSC91bkxYNW5zMWt5bVV4SkJHQ3c1ZzliVzF0NTU1MTNrR1daYytmT2tVZ2t5R1F5K2ZqbHFxb3FHaHNiNmVqb29LbXBxV2h6bVQ2Zmo2cXFLc3JLeWxBVWhWd3VSeXFWeXZmOURZVkMxTmZYYy9Ma1NjNmNPVU43ZXp0K3YzL1RjNTJ5TEJNSUJBZ0dneXdzTE9RZDdJWHNSZU9GcG1rbGNRQy9pS0lvcTdadXM1M1pkbUhDbGpETkpUT2NhSW0vZTJzWDd6Z3VHWHd1Y0M5RlFKY1lEMVlCcndkSEFDNHBqZ0M4UzJoNkppRko3bDltTTVPdkpXTzlQNnFvK2VCL0NwVy9ocXlFbHZyeUZwN29OL0NKTTAxTXdWN1dSREIxVEFGTVhTT1huU1VaN3lVUmZVUXFPZlJmNU5LVFBhcTZNR1RvMmFnZ1NHNDF0L0JIWGwvTC8rRnlWMkhtbjZ1ZzE0QXRScTl5TVdQM0FONXJYMElPMWtWZGIyOHZWNjllNWM2ZE80eVBqeE9OUnBtZm55Y1NpYkM0dUxpcUdPUjJ1MmxyYTZPeHNiRmtqbEg3NHJHWXg0MTl3ZW5FUUs5T3FSelNGeTVjNEtjLy9TbTF0YlZGWDNjeHFLMnRKUmdNcnZyWTFOUVVqeDgvcHIrL24zUG56cjJ5WXMzWnMyZjU2S09QdUhQbkRtTmpZNXY2Mjd0MzcvTFhmLzNYbkQ1OW10ZGVlNjFFVy9pY2JEYkx5TWdJMDlQVEpYK3VqZUlrQ3l5bnNySVNuOCszNHY3RnhVVW1KeWUzWEdsZmJOcmIyL2xQLzlQL2xFZ2t3dC8rN2QrdXVveHBtang3OW96Zi9PWTNORFUxOFFkLzhBZjU4NFVvaWlpS2dpaUttL3BlR1I0ZTV1dXZ2NmErdnA2T2pvNml2QmFIOWZGNFBGeStmSm5aMlZsbVptYjQ3cnZ2MXB5QVNpY0hpTTdmd2g4NmhxeVV3U3JYdmNWamMrc1VSQW5UeUpKT0RCRmR1UFUvSnFLUC90WVJmemVOZ1JWeDdPQ3czMGp4dkFmd3RqRk15S3FRenBua05CUFRGS3pUM2F0MlNiUDBla1FjQWRqQllhZHBibTdtblhmZTRhT1BQdUt0dDk2aW82TmpVOFdUaG1IdzdOa3pybHk1d2pmZmZNUHQyN2NaSHgvZmtwQmt1M1Z6dVJ5YXB1WGptN2ZUQjlidXQ3b1doVkc2ZTFVQXRwM013SnB6ZTlsc2x2NytmbVpuWitudDdhV3pzNU9MRnkveTl0dHZMM056UzVLRTIrM0c3WGJuNS9Mc3VXQlJGUE9pc3E3ckpabFhjYnZkbkR4NWtxYW1KbEtwRk9sME9oOExuVTZuOFhnODFOYlcwdFRVUkdWbDVUWWlnWmZqOFhpb3FhbWhxYW1KcHFZbW90RW9rVWlFVENhRHorZWpzYkdSTTJmT2NQNzhlWTRkTzdibE5ucUtvaEFPaHdtSHc3aGNybnpQWDFFVTg4ZVZKRW41ZmI2Vk9RcjdPQzNtc1dwL3puYnorTGVMRXJZOEIyRnJLUWY5T21MSkFleFd3TzhGcjh2U3cwdU1ESGl4V3ZvNGxCQkhBTjVGbGlaMTdpbEthRUxOTFU2bGt3TWZCRUtuL3N6amJVWldnb2lTQzBHUUVVUVpvU0Ird0RRTVRBd3c5YVgrWXFiMU94cW1vYUhyR2RUY0FwcTZRRFk5UXpvMS9MK21rME1QTXFtUk83bnMvSUJoNUpZTkxIMytscnU1N0F5R25nRlJSc0JjcnZXYTVyb1JlZllYdmtQcHNDOWs3WXRaKzR0VjB6UlNxUlN4V0l6UjBWR2VQWHRHTXBuRTVYS2hxaW9EQXdOMGRYVXhNREJBSkJMWjBNVzAyKzNtM0xsekhEbHlwR1RDaDhmandlMTJGL1c0eWVWeStkNGNEc3VSSkFtLzM3OGl5bWU3dU4xdVhudnROZDU1NTUwOTZRQUdLQzh2NTlTcFU0eU1qREEzTjdmc01jTXd1SEhqQnA5KytpbnQ3ZTFVVkZUczBsYVdscHFhR3Q1NDR3MDZPanFZbkp6YzFFQTRuVTV6N2RvMS92SXYvekkvNkNvbDBXaVVhOWV1MGQzZFhkTG5jZGc2NWVYbG5EMTdsc25KeVdYdEExS3BGSU9EZ3l3c0xDeHowdTRXc2l4ejZkSWxidCsremMyYk41bWVubDUxVUdvWUJ2ZnUzZU9Ydi93bHg0NGQ0K3pacy9uSGdzRWdGUlVWSzg0ZDY3R3dzTUF2Zi9sTE9qbzZIQUY0Qi9GNnZWeStmSm1uVDUveTZOR2pOUVZndzhpUmlENW1jZVliUk5HRHo5OE9TSmptYmh0RkJRUkJRVlhuaVM3Y0pCNjUvNGtUKyt6Z2NLRFFzQnpBYVlya0FNNnFrTWxhZllEM2xpUlJSQVJBQmtseUJHQUhoNTNDNC9GdzVNZ1Izbnp6VFQ3ODhFTXVYcnhJZTN2N3Bzd0RrVWlFN3U1dXZ2MzJXNjVjdWNMZHUzYzNYYWhjaUdtYUsrYkxOdExEZHkzc3YzM1ozRkxoZk5sZUZJQnQ3TUpXUlZGV0ZiVlZWV1YrZnA3NStYbG1abWFZbjU5bmRuYVdpWWtKamh3NVFuTnpjejRLMmUvMzU0dGtiVUhTRm53TFk1RkxnYy9uVzFhSXJPczY4L1B6K2RaUjl0aXRtRVlXVVJRcEt5dmp4SWtUSkpOSjZ1cnFtSitmUjFWVnlzckthRzV1NXNTSkU1dzVjNGE2dXJvdFA3Zkw1YUs4dkR5Ly9iYXJWcGJsZk93MFBEZlRiQVg3YzFMc1kzVzNqL3Z0OXpXMlkwUU8rSVdFYWUwQmx3dytON2hkTytJQUZySGN2OFdkckhaWWdTTUE3d0ZVTlRZTi9GK0t1L3pUVU5uVDI0SFFpWC91OHRRaEswRWswWXNvZVJFbEdldHpZV0lZT3FhcFl1cFpERU8xUkdBamgyNmtNZlFzbWhvbms1a2tseDc3SjVuVTJQMXNadXFoWWF5dC9QMy8yZnZUNERqT05MOFgvZVZXKzc2Z3NDOEVBUzdndmt1VUtGRUxXNk5XcXpXdGFiYzhNeDVQZSthTXgrR3d3emZPZFlRalRsekhmRHErSis0OWNXeGYrOGFKT0I1dlBUUHVucVYxcDFzOTNWSzNSS2xGaVpTNDd5UklndGgzb0FwTDdaV1o5ME1oaXlBSmdGaXFnQUtRdjRocXRJaXN6TGNTbFpudisveWY1LzlvV2k2ZFNZK1N5MDBpV3dJWVZjVEd6UytYbXlhWGljNzBOM3NjU1pJS2RyNG1TeU9ielpKSUpBcjJJY1lrTTVQSkZDeHJESUYzYW1xS1pESkpLcFY2N0lGdDlNb2NHUm5oenAwN25EOS9ubWcwaXQxdVI5ZjF3dmFMeFdhemNlalFJVjU2NlNVYUdocEs5dG10VmlzV2k2V29Bbk81WmwyV0E3SXM0L1Y2NTZ6YVd3cDJ1eDJIdzFHd1Y5bXhZd2VIRHgrbXNyS3liS3NrdlY0dng0NGQ0K2JObTNPS09PM3Q3WHo0NFllY09IR0NJMGVPYk5oN1dXTmpJOGVQSDZlenM1UHU3dTRsdlhka1pJUy8rWnUvb2E2dWpwYVdscEpadzBPK2l2VGN1WE4wZEhTVTdCaEx4YnluUEU0b0ZPTFVxVk4wZEhROEpnQlBUMDl6NmRJbERoNDhXQllDTU9UdldidDM3eTcwQXA5UEZJeEdvNXc1YzRZUFB2Z0F0OXZObGkxYkVBU0JTQ1JDVFUwTlkyTmppLzRlR0wyRnYvNzZhMDZkT2tVZ0VDamIrK05HbzZxcWlwZGVlb25MbHkvenExLzlhbDRyNkV4bWhQR2gwMGl5RzFueG9GaERDRWh6em5OWEUwRVF5R2FpVEUvYytPZXBSTitGTlIyTWlZbkpXakJKdmdKNHhST1BSeFhBa01uT0dIbHQxRWVSTHFEcE0xWE9HMWZxTmpFcEN4UkZZZHUyYmJ6eHhodTgrdXFyN042OWU4bjlUbk81SEpjdlgrWm5QL3NabjMvK09mZnYzMTl4RzVuWmZWa04wWFoyOWV0U01XSnVDMkhZOFJyVm1PVTYzemNxU1hPNTNLSUU4Y0hCUWVMeE9GMWRYZHk2ZFl0ang0NXg3Tmd4R2hzYlNhZlRoYyt0S0FvV2k2VWdTQnJ4eVZ3dVY3VHEyMmNoU1JJVkZSWDQvWDUwWFM5WmUwS0h3OEhPblRzSmhVTHMyYk9IV0N5R0lBaDR2ZDVDR3lHLzM3K2lnZ3VMeFVJZ0VLQ2lvZ0tmejFkbzMyVlUvRnF0Vmx3dUZ5NlhhOW14Vk9NNnllVnlHeWJHWVh5T2pmSjUxZ3lkUWdXd1JSYXdXUVFzaWw1cUFYZ21qUThyc0RFRHNXV0VLUUNYRWRsMHRFK1dIVCtJVDk3NlVKTGRWWkxzQ2t1eTB5ZUp0djlMRkJVS0FyQ2VROU96NkdybWY5SzBURUpIemVoYU5xMnF5YWl1cHVPYWxvbHJXbnBDVTFNVGk3R08wN1JzUEplZFFGVVRLQVJtanFQbCt3ZnJrRWtQazB4Mm9XbFBaNG9waWtJZ0VDamI2cjl5STVQSkVJdkZHQjhmWjNSMGxJNk9EdTdkdThmSXlFaEJCRFlFWU9QaC9LUUFuTTFtQ3c4M1k1dE1Ka004SGllWnpQZXlNekxnbHNvTEw3ekFQL3BILzRqbm4zOSt4V0xoUW9paWlDekxSWjBrejU1OG16eU9LSW9yU3RRUVJaRzZ1anJhMnRwb2JtN0c3L2ZqOFhob2JtNW0vLzc5cXpiQlh3NU9wNVBXMWxhcXE2dTVlUEhpbk52Y3ZYdVgwNmRQVTFsWlNYTno4eXFQY0hVSWhVSzgvdnJyM0w1OWU4a0NNTUREaHcrNWNPRUN4NDhmWjgrZVBTVnpmWWpGWXZUMjlwWk5KYis1a0hnYWw4dkZrU05IK09TVFQvamlpeThLL3o0MU5jWFpzMmQ1OGNVWGVlNjU1OVp3aEkrelk4Y09ubnZ1T1M1ZXZNanc4UEM4Mi9YMzkvTmYvK3QvUlpJay91QVAvb0J3T0l6WDZ5VVFDQlQ2UFMyRkJ3OGVjT1BHRFk0ZE8xYlc5OGlOaEtJb0hENThtRC80Z3o4Z2xVcng0WWNmenJ0dE10bExiUHdyTFBZSXZ1QXhGTVdIcnM3dmRsTmFESWVmRExuc0pObE10RWZUc3FWdHBHVmlZbEtPUklHaU5GRFU5SHovMzJRbVh3RzhZVkVobDRIVVJ2K2NKaHNDUlZFSUJvT0ZseWlLREF3TThPREJnMEtsbjlQcExCUUZMRWFFWEUxQ29SQnRiVzI4K09LTHZQYmFhK3pmdngrUHg3T2tmZlQwOUhEejVrMSs4WXRmY1ByMGFXN2Z2cjJnemZKaU1TeWdad3ZBc1B5MTNHS3JmNDBZVkxuR29Rd1IzQkIvWjM4bVk4eFBDdVc2cmpNNU9Wa29OSWxHb3d3UEQ5UFcxb2JYNnkySW4wNm5zL0QzTnhJQVZsSjF2UkpLbmNSdlZBSDdmRDVxYW1wSUpwT0lvb2pENFNpYXk1NG9pcmhjTHFxcXF0aTZkU3VxcWhLTlJzbmxjb2lpU0NRU29hNnVqb3FLaWlWWnJjOW10alg2Um9wenpMYTJObGs1a3BTdkFsWld4MTFGQkN5WSttVEpNVTl3bVpITEpXSkFER2dIRUNWRkZwQi9LQWlpRElJTW9LUGxRRTNwbXBwYnFMSjNzUWlDSUFtSVBOM3BYSndaMHhUWlRKUzVnbUl1bDRzdFc3YVVUYlhQV21FMHZqY202cWxVaW5nOFRqUWFwYSt2ajk3ZVhxTFJLTmxzbG5nOHp0VFVGSk9Ua3d3T0R0TGYzOC9rNUdRaEM4dDRLTStlckpYcVFXWlU0bFpVVkxCLy8zN2VmZmRkWG4vOWRmeCtmMG1POXlRYnlYYWszRmxLVnFvZ0NQajlmbmJ1M0VsYld4dVJTSVNxcWlycTYrdXBxcXJDNVhMaGNEandlRHc0bmM0U2ozeGxLSXBDT0J3bUZBck5hM2swUGo3TzU1OS96dDY5ZTJscWF0cVFsdmF5TExONzkyNzI3Tm5EWjU5OVJqUWFYZEw3VlZYbHl5Ky94Ty8zODBkLzlFZHMzNzY5NkdQVU5JMW9ORnBJWkNrSHluRWh2OWFJb2toVlZSV1JTQVJabGdzdUU2cXEwdGZYeDlqWTJCcVA4SEVxS3lzNWZQZ3dGUlVWQ3dyQUFQZnYzK2ZuUC84NTI3WnQ0L2p4NHl2S2poNGNIS1M5dloyOWUvZWFBdkFxNG5RNmVmbmxsK25vNktDenM3TVFWSDBhbmNSVU94UGo1M0c2V2xBVW93WEE2bGVRQ1lLQURxaTVCTmxzRkZWTkxpK0x6OFRFWkwwelFiNFg4SW9YZnBvRzZheit5QUxhcUFEZUtOT2FtYW02bW9DK1laM09JWjJwcExrV05DbGZYQzRYRFEwTnRMYTIwdHJhU25Oek00cWljUG55Wlg3NXkxL1MzOStQMSt2RjVYSXhOVFZGTEJaYkV5RnRQa0toRUljUEgrYk5OOS9reElrVE5EVTE0WGE3bDdTUDBkRlJQdi84YzM3NjA1OXk3dHc1QmdZR2lpTCt3aU5yV3lNZUIwdUxmenpKYkR2cCtUQUVZS01DdGh4YjR4bm54YWpNbmMzczNyM3pNVEV4d2RXclZ4a1lHT0RPblR2VTFkWGhkRHFabnA3R1lySGdkcnZSZGIzZ0VLYnIrb2FQeXptZHpwTEZ3Q3dXQzVGSWhOMjdkK1AxZWhrWUdDQWVqNk1vQ2xWVlZUUTNOMU5WVmJYc3RhVVJZeTZtYzZLeHo3WDZ1eHZmdWMzdzNWc05CQ0V2L0ZvVlVPUlZzWUNXeUF2QVpnVndpVEVGNERKSFU3TTVvS1E5d0FSQnRrbUtDMUcwelJnL0d6ZE5EVTFOb2FscDBPZWUrRGdjRGhvYUd2QjZ2YVVjWXRtUXlXVG83KzluYkd6c01kdm1lRHpPeE1RRTA5UFRwTlBwd244UERBelEzdDdPblR0M3lpWW83bks1Q0FhRFZGUlVVRnRiaTl2dHBxbXBpVmRmZlpYOSsvZXZXalczMFRPa1dCaldLS1pnTXpkTG1SQ0pva2hOVFExdnYvMDIzLzN1ZDZtcnF5dFpINWRTSXdnQ1BwK1BjRGlNeStXYVUvak1aRExjdW5XTFc3ZHU4ZUtMTCtMeitWWi9vS3VBMGJ0bTU4NmRmUFhWVjB1eWg0ZThYWFk4SHNmcjlmSmJ2L1ZidExhMkZqWGJOaHFOMHRuWnVlUktTNVBWeDJLeEVBd0dDWVZDai9YV3pXYXpSS05SWXJFWVhxKzNMTzdITnB1Tm5UdDM4dEpMTHpFd01QRE1aL0hkdTNmNXk3LzhTd1lHQnVqcTZtSndjSEJaQVRoREFFNmxubW5FWWxKazNHNTNRUVQrci8vMXZ6STVPVG5uZHJuc0pOTVRONW1LWFVWV3ZDaUtId1RRdGRVdUk4dUx6cm5jTk5uMEdLcWFIRi9sQVppWW1KUUhLZklDOElwVkg1MThCWEFxQTFsamIydi9TQzRlRmtDSHNTRTRlMHZueTFzNkl4TnJQU2dUazBkWUxCWXFLeXNKaFVKNFBCNnFxcXBvYW1xaXVibVpMVnUyME5qWWlDUkpWRlpXNG5RNjZlenNMTVNSdXJxNjVwMjdyRGFLb2xCZFhjM0Jnd2M1ZWZJa3I3NzZLanQyN0ZqU1BvYUdodWpyNjN1czhuZG9hS2lvNDN5eUJ6QThFbWlYZytISzk2ejR5ZXcrdU9VWWk1cGRHVDNYZW1ZeDhhSHA2V21tcDZjWkd4dWpwNmVIWURDSXhXSWhuVTVqdFZwUkZBVzczWTRvaWlzUzRaNnNTaldxaytjYTUreWVyK1ZzdjcwY25FNG5kWFYxdUZ3dUlwRklRUUFPQkFLRXcrRVZPVFdXUWlnMUxNWkxVYlNrcXVxaXJtT3pGV0NSbUVrV1ZHU3dXL0lpOENwY1dqTGduSG1abEJCVEFEWkJFR1dySkRrUUphT3ZvNDRnaUdoYWxteG1BalUzdi81c1pIMXRGc2JIeDNuLy9mYzVlL1lzOFhpODhLQkxKQkpNVEV3VS9rMVZWYkxaYkdFU3YxU2hwVlNFUWlGZWZmVlZqaDA3eHBZdFc2aXRyY1hqOFJSRTRkWHNmMnEzMjNHNzNVVVR4cDFPSnc2SFk5MEtsYVZtS1Qxd1JGSEU3L2ZUM054TVkyTmphUWUyQ2dRQ0FTb3JLL0g1ZlBOV3ZnNE1ESER6NWswZVBIakEzcjE3bDlUSGFMMWdWQUVmUDM1ODJVa3BmWDE5L09mLy9KOFpHeHZqdmZmZTQvRGh3MFc3Yi9UMDlIRHIxaTJtcDB1YTg3UWt6SVhFM0Znc0ZxcXJxMmxvYUdCc2JLeVF2WjlPcCtubzZPRDI3ZHNjUEhpd3BQMmlsMEpOVFEyLy8vdS96K2pvS0QvNjBZOFczSFo0ZUpoZi9PSVhYTGh3Z1hRNnpjakl5TElXdElPRGcxeTdkbzFZTEVabFplVnloMjZ5VEhidTNNbnJyNy9PcjMvOWE2NWN1VEx2ZHFsNE55T0RIeUxKTGdMaEZ4RUZHL3FxVndFTENPaW9hb0pzSm9hbUpzc2o2bXRpWXJMYUdJbmZhV0JGR2JuNkxBdm96T3dLNEkyQTBURXVBdzhITlQ2NnJISDZtczc0bERsbk15a1BiRFliTFMwdDdOKy9uNTA3ZDlMUTBFQjFkVFVWRlJXNDNXN2NiamN1bHd0QkVIQzVYRFEyTnRMVjFjV05HemU0ZE9rUzNkM2RaV0gvckNnS1RVMU5QUGZjYzN6akc5L2c2TkdqMU5iV0xta2Z2YjI5WEx4NGtTKy8vSkx6NTg5eisvYnRvb3UvQnJOdFlBVkJLQWl6eThGb3Y3YVlDbUJKa3BCbEdVbVN5azZJbkVzWU56REV0Y1d1ZHljbUpraWxVZ3dNRE9Cd09BcnhQS3ZWV2hCL2wyckRhMVFucDFJcFVxbFVRYVEyUk4zNUJFdERiSjh0d0J2bjMvamJHMzF5VjVJSXNCWUlnb0RENGNCaXNlRHorUW9XMEJhTFpjVnI2MUtJdGNaM3JOZ2liREtaWkdwcUNsVlZjVGdjdUZ5dWVhL241WHozVEo1Z1ZnOWdtd1ZjTmdHN1JVQVVTajYzc2dJK3dFTitkbGNlNHNrR1pPTkZ1RTJXakNES1ZrbHhJMGxHSHdFZEJBbTBMTG5jSktxNnNCM25lbnFZcnBTSmlRbE9uejdOSjU5OFFqcWRManhneXUxQlk3ZmJzZGxzT0oxT3FxdXJhV2xwb2JxNm11cnFhdmJ0MjBkcmF5dWhVR2hOZy9QQllKQ2FtaHI2K3ZwV2JQMWpUSkpNQVhodWxwcnBKd2dDc2l5WGpYaXpVaHdPQjE2dmQ4RmVLYXFxY3UzYU5jNmVQY3VXTFZ0V3pRWjl0V2xvYU9ENDhlTjg4TUVIeTA2KzZPN3U1c2MvL2pHSlJBSk4wemg0OE9DeSs5RE1abmg0bUs2dXJyS3lnRGFaRzhNbVBod09JOHR5NFI2dTZ6ckR3OFAwOWZXeFo4K2Vzcm1IU0pMRWdRTUhlUEhGRnpsMzdodzlQVDN6UHJkMVhTY1dpeEdMeFZaMHpHdzJTM2QzTnc4ZVBLQ2hvYUVvMTRqSjRqSDZBZi8rNy84Ky8vMi8vM2N1WGJvMDUzYTZuaU0rZVl1SjhUcnNqanJzemkwSWdveXVxNnlhQ0N3SW9JT21abEMxSkxxZU04dkdUVXcyTDBueUF2Q0tKZHRNRmxMWmZBWHdocEZHUlFwTy9Za0VkQTdwM09qUzZSdmJNSi9RWkIwanl6SjFkWFcwdGJXeFo4OGVkdS9lemZidDI2bXJxeU1ZRE03NUhyL2ZqOS92SnhnTU1qSXlBdVFUS2hkVGZWcEszRzQzemMzTlBQZmNjN3owMGtzOC8venoxTlhWTGZyOVUxTlRkSGQzYy9ueVpjNmNPY081YytlNGZmdDJTWjJlWnJkU2crVlhBR3VhUmpLWmZDemVOeGV6QmNoeTdRTnNpR0p6aVg3THFRUk5wOU9rMDJrbUp5ZHh1VnlGUXBka01vbXU2MWl0MXNLYXh4QjIwK2wwUVNBMGVoRWJWdDJHYmJleDNWd0NzREhXMmN3KzMvTUp3SXFpUENZQUcxYmR4bmJHUGhSRmVleDNzLyttYXlucUcyTXFGb2I0VzRwcTNXS2VJMVZWU2FWU0RBNE8wdHZiU3p3ZXgrbDBFZzZIQ1FRQ1Q4WDFSRkVzZWV2RXpZWk5BYWM5WHdXOENuS1BVUUhzNE9tK3BDWkZ4QlNBVFJCRnEwTlJQRWl5QXpXWHlxODJCUUZkVjFGejAyanEvSEVvNDhHNFdUQXNvT1B4K0ZvUHBZQW9pb1ZlckI2UGg4cktTc0xoTUI2UEI3L2ZUMHRMQzRjT0hhS2xwV1hWN0owWFEzVjFOVnUzYnVYNjlldEZFWUNOZnNhYjZmdTRGSmF6Z0N5bnZrTXJRUlJGd3VFd1ZWVlZQSGp3Z0hRNlBlZDJEeDQ4NElzdnZ1RE5OOS9jc0FLdzArbGs5KzdkSERseWhKNmVIcWFtbHRkcXNxK3ZqL2ZmZng5Wmx0RjFuYU5IajY1WTdFc21rMHhQVDIrWTc5MUd4K0Z3NEhRNm4xcVlHbi9IY25HK01CQkZrYjE3OTNMOCtISGVmLy85VlVrMEdCMGQ1ZU9QUDZhK3ZwN2R1M2VYL0hnbWp4T0pSUGlkMy9rZEVva0V3OFBEOVBiMnpybWRwcWFabXJpQjNkR0FZcTNBYW8yZ3FvbFZIaTBVVXE5TlRFdzJNeGtnU3hFRTRQU01CWFFtcDIrY0NtQVIwQ0U1cWZPZ0QrNzI2WXlibmdrbVpZTEQ0ZUQ1NTUvbnU5LzlMcTJ0clFXeHdtYXpQZk85aHVnWWo4Y2ZxNFJjQzF3dUY3dDM3K2FsbDE3aXRkZGVvNjJ0alhBNHZPajNaeklacmwrL3ptZWZmY2JaczJlNWNlTUdBd01ESlcvek03c0NjQ1dDYkRhYkxRakFDLzBkREtIeFNXR3huSmhkOFZuTWhBSk4wd3JydlZRcWhjUGhJQmFMRVkvSG1aeWNaSEp5a3JHeE1jYkd4cGljbkNTUlNCUWNFdFBwTktsVWlrd21VeERzbnhRbUYzTWU1N09CbmkzNkdwL1pFSUNOS3RyWi8yMDRDZHBzdHNMdlo3L3NkbnVod0taY2twdVhnM0dlRFJHK1dCakZJOFZLZ01qbGNveU9qbkwvL24xdTNickYwTkFRaXFKUVdWbEpRME1EVFUxTlZGZFhGK0oxeG1lYXorYmNaQW5NekJXdE1yaHMrVXJnRXZjQUZzajNBSFlBTmt3QnVLU1lBckFKc3VLSlNKSUxRVkRJdHg0Q0FSRk55NUhMVHFDcDg0dWRIbzluUTFxbHpvZVJyVll1Mkd3MmR1M2F4Zjc5KzltNmRTczFOVFZVVlZVVitwMGFFeHFQeDFOMndtaEZSUVdOalkzWTdmWW5ldHdZVDVqRlQxQm5aL1NWMjZTN0hEQW13SXM5TjB2ZGZqM1EzTnpNZ1FNSHVIYnRXaUc3K2ttbXA2ZHBiMitmMXlaNm8xQlRVOE83Nzc3THdNQUFIMzc0NGJMM1kxamlHNVpFQnc4ZVhOSHp3Smk4bDV2dGNybU5wMXh3dTkxek9rbE1URXd3UER4Y1ZzOUtnN2EyTms2Y09NSG5uMzlPVDA5UHlZOFhqVWI1eVU5K3dzNmRPMDBCZUkwSWhVSzgvdnJyZEhWMThUZC84emVNam83T3VWMHEzczFrOUJKdTMzNHMxaURMbVlzc0c2TlNSVlFRUlN1Q0lKYkZ4TnE4OTVtWXJBbTVtZGVLTDBCVnpWdEFaOHNySDJ0NUdKVy9GaUFOSTZOdzRhN0d0WWM2OGJuek9rMU1WaDFabHRteVpRdkhqeDhuRkFvdDZiMVRVMU9rVWlteTJleWFWYklaUFlsMzdOakJDeSs4d0lrVEp6aDA2TkNTV3I2TmpJeHcrL1p0UHY3NFl6Nzc3RE51M0xoUnRKWmZ6OElRT1dkWGhTNG5CcGJMNVFwVjJNLzZPOHdXRWxlem5kcFNXRW9yc0tWZ3RNTExaclBZN1hiYTI5c0pCQUwwOWZVVjJ1aU1qNDh6T1RsSk1wa2trOGtVenFzaC9nSlBWZThhWXpaK1BsbXAvT1MvemZYVGVCbmZDYU9hVjFHVU9RWGcyUUt2eFdMQmFyVmlzOW13Mld6WTdmYkNOc1oyczZ1R0ZVVkJVWlRIdHJkYXJVVS8zeXRsb1dyd2xUQzdtcm9ZWkxOWkppY25HUmtab2IrL241NmVIbks1SFAzOS9Rd05EVEV5TWtKVFV4TXRMUzE0dmQ1Q2hYazV4cEhXSzVLY0YzOHRjc2tGWU1nTHdGYnlNenlURWxJV0FRYVR0Y05pRFRRRUlxL3NsbVFIdWo3N0lTQ0FucHV4Z0o2N0NzTHBkQktKUk5aMUZ0UlNTYVZTcS81UWtXVVpsOHRGT0J5bXZyNmVxcXFxUXQ5ZW44OUhZMk1qemMzTlZGVlY0ZlA1MWsxUFpvL0hRemdjTHNyM3h4Q2dGRVVwTzZGN1BXSXNtamJTdWF5dnIyZlhybDI0WEs1NUJXRElpMWRHaHZKR3ZiZFpMQmFPSFR2RytmUG51WERod29vVzVjUER3L3pzWno4clpPMGVPblJvV2VldFZObkpKcVdqdXJxYTV1Wm1IQTdIWTkraHdjRkJidCsrVFNLeEZoV1VDK1AzK3psNDhDQTdkKzVrWkdTRVZLcTBUcnVxcXZMZ3dRTWVQSGhBSXBIQTRYQ1U5SGdtYzdOanh3N2VlZWNkN3Q2OXkrZWZmejVuZHJpdTU0aFAzU1U2ZWdaSmRtSjMxQU1DdXA1aHRjcm1KTW1PTExzUlJLdHpWUTVvWW1KU2ptUm1YaHI1b05peTBmUjhCWEJXbmRVRGVMM21kaHJqemtCMFF1ZDZwODVuMTNVdTNOT0pUcS9weUV4TUN2aDhQbncrSDA3bjBoL2pzaXdYQktpbDlHVXRKdlgxOVR6Ly9QT2NPSEdDdzRjUDA5VFV0S1RZVWlLUjROeTVjL3o4NXovbnl5Ky9wTE96azRtSmlSS08rSEdNYy9aa1ZlNVNNYXBhTTVuTWduOEhRL2d5eEw5eUZQMVdnMncyeS9Ed01KY3VYYUsvdngrYnpVWXFsV0o2ZXBwME9sMndlNTY5MW4vU3F0bGlzUlNxU0djTHQwYUZzQ0ZZUHZrNzQvOC9LZjQrK2J2WlZjRlA5ZzgyeEZ3ai9tV0l1b2JEb0NFSUcvYldoZ2hzOUVGMk9CeTQzVzRDZ1FEaGNKaGdNSWpmN3krNE5KWkx3ZFJzOGJjVUFuQ3hpa2MwVFN0VWlodjI0Rk5UVTBTalVRWUhCM240OENFMU5UVU1EQXl3YmRzMkVva0U4WGg4elczek53UXpjMFZSRXZJQ3NDSWdpRE45TjBxSFNGNEFOaXVBUzB4NTNJbE0xZ3lidldhUHk3MzlYMHFTRTEyZlpjTXJDR2g2amx4MkVqVTNkeEMzcXFxcUVQemREQmg5QVZmTDF0THBkTEp0MnpicTYrc0pCb1BVMTllemMrZE9XbHBhQ0lWQ3kxNWNsQXRHSnQzVEU2S2xQMXhtVzBCdnBLclZZck9VQ3VEbExwaktGWmZMUlcxdDdUTVhab2xFZ212WHJyRjc5MjRhR2hwV2FYU3JqOS92NThpUkkxeTRjSUdQUHZwb1JmZTE3dTV1L3Zxdi94cFJGQmtiRzJQUG5qM1UxZFV0S1lGQTEzV3kyYXc1Y1Y5SGhNTmh0bTdkK2xSdjIvSHhjZTdjdVVNMEdpM0xhNmlwcVltMzNucUw0ZUZoTGwrK3ZDckhIQm9hb3Flbmg1YVdsZzJWV0xOZWNEcWRIRHg0a04vOHpkOGtrVWh3OWVyVk9Wc0JaTk5qakErZlJsRjhLQllmaXVJRFhVS24xRlU0T2pvZ1NRNFV4WWNvMlR3bFBxQ0ppVW41a2lVdkFCZGxNcFRPUW00OU95Sks1TU9CSXVTU01EU3VjNlZENCtPck9oZnY2L1NNZ3RueXo2UWNDQVFDN05xMWkrcnE2bVd0cTJSWkxsUWRydlpjMFdxMVVsTlR3L0hqeHpsMTZoVEhqaDJqcWFscDBiR0FxYWtwaG9lSGFXOXY1K2MvL3ptLy9PVXZlZkRnd1pxczZXYUxpc3QxaHpNcWdET1p6S0lxZ0EwQnM1eVR4MHNkSTBza0VuUjJkdExkM2YxWUgrYjVNTVJYUTZpM1dDd0ZBWFkrQWZqSnlsN2o5V1IxY0xFU3lwL3NCV3lNMHhDREhRNUg0ZVh4ZUI0VGdBMzdkN2ZiWGJDWE51SnJzeXVIalNLVzJmc3RsV0JjcW1UN0p5MjRWOHBzRVQrVHlaQklKSWhHb3lTVFNYSzVITElzYy8vK2ZjYkd4cGlZbUVDU0pJYUhoMG1uMDh2NmJHYjBlQlpHc3FDUzcvOXJrVmZsL013YzBkUW5TNDE1Z2pjNVZsdjFEb2VyR1ZGeW9Hc3FoU3RlRU5DMXpJd0Y5TndDY0YxZEhUdDI3Q2lydnJLbEpKRklNRG82dWlxMmxxSW9zbXZYTHY3b2ovNklZOGVPWWJWYWNUcWRoUW5FUmhBNUxSWUxEb2VqS0NMajdBcmdqWEJ1U3NGU2JGazJvZ0FNRUF3RzhYcTlDMjRUaThYNDhzc3ZPWERnUUZtS1Y4VkNraVNPSGoxS1oyY25WNjllcGErdmIwWDdHeDhmNTYvLytxKzVmUGt5SjArZTVIdmYreDU3OSs1ZDlQVm9UUEFYWTdXMTJwVGJlTW9GU1pJSWhVSnoycDJOakl4dy8vNTl0bS9mdnFpK1o2dEpJQkRnTzkvNURqMDlQVHg4K0pCWUxGYnlZL2IwOUhENzltMXFhMnZYZGVMV2VpWWNEdlBlZSs5aHRWcjV3UTkrd05kZmYwMDJtMzFzR3gyZFZLS0xpZkh6MkJ4MXVIMTdrV1VudW1hMDR5d05oZ09QS05tUkxUNGswUlNBVFV3Mk1hbVpWMUZrMjJ3dUx3Q3Z5eDdBQW9WYWtGd1NIZzdxbkx1bDg2c3JPbC9kMWVrZTFVM3h0d3lZUGRmZnJFbWNYcStYWThlTzhjWWJiN0IzNzk2bmtpTVh5MXJFTVVSUnBMVzFsUk1uVHZEcXE2OXk4T0JCcXF1ckZ4MEhpTVZpM0x4NWt5KysrSUt2dnZxS3k1Y3YwOTNkdldiZkJVRVFDbUxhY21ORDZYUjZVYjJZbjdSL0xzZllTYkhGdVlWWVNtV3BzVzAybTUzVFF0ajQvc3l1L0ozOWN6Vlk2UFBNYmtGbkNMaUcvYk5SSVR6YkVucjJ2OW50ZGx3dUZ5NlhDNC9IZzl2dHh1LzM0L1A1Q3NLeHkrWENicmNYOVR0bDJDUnJtbGJVNzROeExvcGRCUnlQeHhrZUhxYW5wNGVob2FHQ1BiNnU2MWdzRnVMeE9OUFQwOWp0ZGpvNk9waWFtbHJXOTBNU1FSUkJLSG1oYTVrejJ5bEdBWWQxcGdkdzZmT1J4UHdSc1dCV0FKY1VVd0RleElpaUxGZlYvLzE2bTcwR1NiS2lhWThDWVFLZzZUblVYQnhWbmJ1eFRpZ1VvcmEydHV5Q3U2VWlIbzhUalVaWHBRSzRxYW1KVTZkTzhjWWJiMUJkWFYzeTQ2MEZpcUlVcllmMDdENHZKazh6Ky93c3hsSktGTVhDb21rajRmRjRhR2xwNGU3ZHUvT0tQc2xra2djUEh0RFoyYm1oYmFBaGZ3OS80WVVYZU82NTUvajQ0NDlYM1B0NGRIU1UwZEZSaG9hRzZPL3Y1N1hYWHVQUW9VTnMyYkxsbVpYWDJXeVdSQ0pCSXBIWXRNR2o5Y2g4QzlQUjBWRis4WXRmVUY5Zno1RWpSOVpnWlBNakNBTFYxZFU4OTl4em5EbHpob3NYTDg1WkRWcE1ob2FHZVBqd0lhbFV5aFNBMTVDS2lncSs5YTF2TVQwOXpjREFBQjBkSFU5dG8rc2EwNU8zc0kxWFkzUFVvbGc4b0JuenZsTGRtL0lyYmttMkkxdjh5SXEzUmhSbFdkTld5WExHeE1Ta25NZ0FTWW9rQUt0Nlh2eGROL214T3Zud24weSsrbGVGYUF3ZUR1aWNiOWY0N0pyT21WczZQYVBtWE5Ga2JiSFpiQVFDQWZ4K1A5dTNiK2ZsbDEvbWhSZGVvS21wYVZueERVM1RIclBKWFEyOFhpL056YzJjT0hHQzExOS9uUU1IRGxCWldibW85Mll5R1VaR1JyaDE2eFpmZlBFRm4zenlDVmV1WEdGcWFxckVvMTRZSTQ1aHQ5dVhIV2ZLWnJNa2swbFNxZFNDZnd1ait0ZDRsV3Nod3BNOWRNc05vOXB6SWJHOTNOQTBqVXdtczZqaW9Oa1Z2ck10bzkxdWQ2RksyTGlYaEVLaHh5cUg3WGI3WXdrR1JzTEI3SmRST2Z5c3VKVVJDNFRpQ3VrcjZiYzlGNElnRlBwTGo0eU1NRGc0K0ZUc0xwMU8wOTNkVFRhYnhXYXpFWXZGaU1mankvcGNzZ1N5S1R2bU1VNmZDQllsLzFKS0gySTMwdjNNWUg2Sk1RWGdUWXdrdXlLS0pmaFBKZG1OSUVqazE1c3pDQUxvR21vdWdUYVBBT3gwT3ZINWZKdEdkQnNjSEtTam80TjRQRjd5WTFWV1Z0TFMwckp1K3ZrdUIxRVVjYnZkUmJNNFdhM014dldJVWRHNzJITnRWRlNYUzcrU1l1RjJ1OW0zYng5WHIxNWRzT3B2Zkh5Y2dZRUJvdEVva1VoazlRYTRCalEyTnZLdGIzMkx3Y0ZCdnZqaWk2SXNCam83TytucTZ1TG16WnVjT25XS28wZVBGdnFVQjRQQk9kK1RUQ1laSHg4bkdvMlcxUUoxZHM4aGs2ZHhPcDAwTnpkejc5NDlrc2xrNGQ4bkppYjQxYTkreGFGRGg4cE9BRGJZdm4wN0w3NzRJamR2M2l5NUFEdzZPbG9RZ0UzV2x1cnFhbjdqTjM2RDd1NXUvdVp2L21aTzk0TnNab3lKNkVYc3prWWsyWTZpQkFBUlhTK3RIaXNJRWhackNLZG4rMzlPSmpxL0FtNlY5SUFtSmlibHlEUXd4U01iNkJVdGJyUVpBWGhkVmJVSTVLTlVHb3hGNFdLN3hwa2JPbC9lMGJqVEEvMWo2K25EYkh6S2FkNitXdGp0ZGxwYVd0aS9mejk3OXV4aDE2NWRORFUxcmFnNFFsWFZRdC9MMVZoN2VEd2VEaHc0d0d1dnZjYUxMNzdJOXUzYkNZZkRpM3F2cG1rOGZQaVFDeGN1Y09iTUdTNWN1RUI3ZS91YWk3K1F0OUoyT0J5NFhLNWxKWExydWw2d25YMldBQ3hKVWtHQUs5ZFdaTE10a3pmanRWb09HRzJ1akRpeThiMlovZDB4S29TTm40Ym8rNlI0N0hRNjhYcTloWDdqZnIrL1lEMXR0QWxjcUlpakZOOEZvd3E2bU5iMW1xYVJTcVdZbUppWTk3NHlNVEZCSnBOQlVSU3kyZXl5TGFDdE1pZ3lGRnJkbXBkSnZnK3dJR0NWODFiUXBUOGFscG1YU1FuWldORjlrMFVqaUxMc2NtL2JhN0VHODNiUFQ5NG9kZEMxREdwMkNrMmJPekRxY3JudysvMWxPZEVwQmUzdDdYejk5ZGRNVEV5VS9GaXhXSXpoNGVGVnNadGVTK3gyZTFFenhUYkxkM0U1TENYemM2TldWRHNjRGxwYVdxaXFxdUw2OWV2emJqYzJOc2JEaHcvcDd1NG1GQXB0dVBNd0c2L1h5NGtUSjdoNTh5WjM3OTVsWkdTa0tQdlZkWjNMbHkvVDI5dkx4eDkvek5hdFd3dDlwYlp1M2ZyVTlsTlRVd3dORFRFMk5sYVU0eGNMWS9GaE1qZmhjSmpmK0kzZm9LK3ZqNisvL3ZxeDN3ME9EdExYMTBjOEhpL0xxdGN0VzdadzRzUUovdlp2Lzdia3ozV2pRaUlXaTFGVFUxUFNZNWs4bTIzYnR2R0hmL2lIQ0lMQUQzLzRRNGFHaHA3YUpqbmR5VWpmVHhFRW1VREZLMGl5RS9SU2VvUHA2Rm9XaXlXQVAzU2NkS0w3RktZQWJHS3lHVW1RRjRHTHRnalU5WHdsY0ZrSE5ZM0tYd3NnUVM0RFE4TTZGKy9wZkhwTjQ4eE5uWnZkT29uUzVtdVptTXlMS0lyNGZENUNvUkJidG14aDE2NWRIRDE2bElNSEQ5TFUxTFRpL2F1cVNpcVZlcWJ0OEVvUlJaRmdNTWllUFhzNGRlb1VyNy8rT2p0MzdueW1XNVBCNU9Ra25aMmRuRHQzamwvLyt0ZWNQMysrNEp4VkRpaUtVcWljWEs2Ym1WRUJ2SkFZTHdnQ2lxSVVCTHh5VFp5ZjNUZlhGSURMQTFWVlNTYVRqeVZQTDRRZ0NJV2V3MGJWY0NBUUtQUWFEb1ZDUkNJUklwRUlnVUNnVUQxc0NNaEdPOEYwT2wxb2YxUE11S2xSbVZ6TW1ObnNIc0FMM1ErWGNoN253enJUNjFZMFE4bVBtTGxWS0ZMZUNsb1FacElKUzROaEFiMjgzZ2ttaTZZOG4xSW1KVWRSM0JHWGIvZlBiSTQ2MERVUThqZFZBUUZkRU5IVUZObk1PTm5zT1BPdEZtMDIyelA3YVc0a2VudDd1WFBuenFwWVFJK01qTkRWMVVVaWtaaTNZbTRqVUV5ckVKUDUwWFdkWEM3M1ZML0QrUkJGRVp2TnR1RXNvQlZGSVJnTVByT3lYbFZWN3Q2OXk3VnIxOWkrZmZ1R3JzU0hmRC8zbzBlUGN1N2NPY2JIeDRzV2ROQTBqYUdoSVlhR2hyaDE2eFozNzk3bHlwVXJIRDU4bUQxNzl0RGEyb3JmN3dmeUF2RFkyTmlxM0YrWGdyRkFNNWtidDl2TmlSTW5PSHYyN0ZNQ2NEYWJaWGg0bVA3K2ZwcWJtOHZ1WG0reFdEaDQ4Q0MvKzd1L3k0OSs5S01GazBKV1NpNlhvNit2ajU2ZUhscGFXamEwdGZ4NlFKSWtkdS9lemJ2dnZzdlEwQkIvKzdkLys5UjFydXM1cGlmdm9JeDhnY1ZXaGNlM0IxR3lvNm1sU3dqUnRCeWlhTVBwMm9yTHUrdDVxNjNpNzlLcDRmYWw3RU1VWlZsV1BEV1M3S29BQVUxTlR1U3lrLzJxbXBvdTFiaE5URXlLU2dLWXBFZ1Z3THF1azFVaGs5VkJGUjd0c1J4MUFFTUF6a0Zudjg3SEYzVSt1Nlp4NWFGTzk3QXAvcHFzSGFJb1VsZFh4KzdkdXpsNDhDQjc5dXlodHJhVzJ0cmFvclhyeXVWeWhRcmdVZ3JBVlZWVkhEMTZsRk9uVHZIQ0N5OHNxbFdQUVNLUjROS2xTM3orK2VlY1BYdVdXN2R1MGRmWFZ6YnJOOFArMmVGdzRIQTRWbFFCSEkvSFNTYVQ4d3JBc2l3WEtqYXRWdXVHVGhnM1dWdDBYUzhraDR5UGoyT3hXQXBKRGtaVnNOUHBMUFFOZnRKbU9od08wOVRVaE5QcFpIUjBGRlZWRjkwYWJqRVl0dFN6TGFhTHdXb2xMTmlVR1FHNHZFSVZhOGRNd3FBZ2dFVVJjTmdFRkZrbnM3aFE4bklRQUJ0NUFkajhLNVFRVXdEZUlJaVN6YVVvdm5wSmRnUUFORFUxbWN0TjllZXlVNk5QYm11eGhwcDlnV04venhjOGl0VmVNM05qblpsa2lqSUNPc25waDB5T1h5S1RucnNhekdLeDRQRjRzTnMzVDVKR1BCNWZsZXBmeUdkV0RnOFBsOXlXY3EyUkpLbG9QYVJGVVRRcmdPZEIwelRTNlRTWlRHWlJFeWxabG5HNzNSdnUrcFlrQ1lmRGdkUHBSQlRGQlMyZEhqNTh5RmRmZmNWcnI3MjI0UVZnU1pMWXRXc1hyNzMyR2c4ZlBxU25wNmZveDVpZW51Yml4WXRjdkhpUlR6LzlsSmRlZW9ubm5udU92WHYzNG5hN3VYLy9QcE9UazBVLzdrb3hLb0IxWFRmdkwzTWdTUklORFEzczJyV0w2dXBxQmdjSEM5ZVZydXNNRGc3eThPRkQ2dXZyRngxY1drMGlrUWovOEIvK1ExUlZaWHg4ZkU0NzRHSXhQajdPWjU5OVJtTmpJOXUzYnkvWmNVd1d6OTY5ZS9uZTk3N0grUGc0Wjg2Y0laRklQUFo3SFkzcHFkc293NStoS0I0YzdoWUVRVVpITFZFYWRIN0ZMVW8ybko3dDMvWDQ5MTJRWlB2L1Y4MGxGeVhlV20yUlZvOXYzeUdiby83UFphc2ZBWkZjZG9wMHN2K2YyaDMxNXpQcG9ldXFtall0RFV4TXlwczBlUXZvTkVXUWFYVWRNamxJWm9EeTBHZ2VaM2JscndqSkpQVDM2dnp5b3NaUHZ0SzVjRTlqdFB5bWh5YWJCSmZMUlNBUW9MYTJsaDA3ZG5EbzBDR2VlKzQ1ZHV6WVVmUmtQcVBhN1ZrVmI4dkZZckZRVzF2TDRjT0hPWFhxRksrODhncU5qWTJMZnYvNCtEalhyMS9uNXovL09iLys5YSs1YytmT2dpMlYxZ0lqdHVSME9nc1ZrTXNoblU0WEJPRDUvaGFLb21DejJiRFpiRml0MXJKTGRKMk5XZjI3c1REdUUvTmRmNElnWUxQWmNMdmQrSHcrS2lzcmFXMXRKUlFLTVRvNnl0VFVWTUU5Y2FYZkMwRVFDaGJWeFM0ZU1kclNQU3R1dHhJRUFXeG1CZkRUekh3dExISytBdGdxVTJvQjJFSmVCQzdmRytrR3dCU0FOd0NLTmREZzl1NDY3dksyL2JuTlhndTZUaVk5UkNMKzRKL2JuZlhuMHFtaDY5cE13TWZtcU4wZnJQekc5ME9SVi82WjNkbUlKTm5SZGFNSGdBQUlxTGtwWW1OZk1UYjhDYm5zM0lKbmJXMHRsWldWbXlvZ3JxcHFTYk14WjVOT3B4a2RIVjEweGVaNlJWRVVmRDVmVWZabENzRHpvMmthbVV4bTBkbTVvaWppY0RqS1VyQlpDYUlvNHZGNDhQdjlPSjNPQmZzVWpZMk5jZm55WlRvN08ybG9hRmpGVWE0TlRVMU52UG5tbTl5K2ZadWYvL3puSlYzUTM3dDNqNUdSRVQ3Ly9IT2FtNXRwYW1wQ0VBVEd4c2FRWmJsc3NzamhVZlc4cG1sbVp2YzgyR3cyRGg4K3pNbVRKL25nZ3c4S2lWSzZyak04UEV4dmJ5K3BWS3BzN3llMXRiVzg4ODQ3UktOUmZ2Q0RINVRNaG54OGZKejMzMytmMXRaV1V3QXVFendlRDYrODhncVFEMkI4K09HSFQyMlRTUTB6TWY0VkZrc0FVYlJpYzlUbFJXQzlOUE16VFZjUkFJZHJLOTdnc2Y4dE1mM3dLK0N6WjczUDdtdzRIS3g0NWJjOWdZUC93dWFvUlpSc2dJQ3VaY21rUi81amZPSVcwYkV2MzVNazY5K2FJckNKU1ZtVEFDWW9rZ0NzNlpET2tLK2V6V0lzOS9PVWl4NGdrZy83cGVEbUE0MmZuOVg1MVNXTld6MjZLZjZhckJuaGNKaHQyN1p4OE9CQmR1M2F4ZGF0VzZtcHFhR2hvYUVrVGk2NnJoZDZoUlpickZNVWhlYm1abDU4OFVWT25UckYvdjM3bDdTK2pVYWpmUGJaWi96cVY3L2l6Smt6ZEhSME1EMWRmc1lpa2lSaHQ5c0xsWS9MV1hzWTFaWVRFeFBFNC9GNTE2V3lMQmY2c2hyVmorV0kyUU40ODZIcmVzRWFlWFIwbEtHaElmcjYrbkM1WEdpYXh1VGtKS3FxRmlWMk90dWUybXExRm1XZnh2ZDBkcS9rVXJYa3NraGd0d3BZTFVLK0FyamMyMldzRmpNVndJb01kaXRZRlpncXJTbWVUQ0VWMEtSVW1BTHdPc2ZwYVgwMVZQbU50enkrUGYvQzVteEVVWHlnUXpZYnc1WGErZStuSjI4eE1YN2hOeFdMNzd5aStPcUNsYTkvUDFqeDZoODVYTTJJVHdTd1JNbUdwcVdJVDk1bElucUJWSEx1U2hpTHhVSmpZeU1WRlJXcjlDblhIcU42c2xnMkdjOUMxM1hpOGZpcUNjNXJoY1Zpb2JLeUVwZkx0YUpGUkNxVklwUEpsQ3d6YkwyejFFbS9ZWiswMFN5Z0lkL3pOaHdPNC9GNEZoU0FOVTJqdTd1YnMyZlBzbVhMRnVycTZsWnhsS3VQb2lpMHRiWHhXNy8xV3d3TkRmSEpKNStVOUhpeFdJeFlMTWE5ZS9lb3FLakE0L0dReVdSd09wMGtFZ2x5dVZ4WkxGS041SWxNSnJQaEt1S0xTVnRiR3lkUG51U3p6ejU3ekNsamVIaVlucDRlVXFsVVdiZU0yTDU5TzcvM2U3K0h3K0hnWnovN0dWZXZYaTM2TVhLNUhIZnYzcVc5dlozcDZXbGNMbGZSajJHeWREd2VENisrK2lwRFEwTU1Edzl6L2ZyMUo0SjlPdWxrSDJQRG55REtka0t5RThVYVFoQWtkTDBFY3pSZFEwZEhWcnk0dmJ0SmhYdCsyK0ZxVENlbU84L045eGFIcS9GWXNPTGs5d01WSi8vSTdteENrdTNNVm5sczltcXN0a3BraSsrSGt1VDhwN0xzK3N0Y2J2b3BoeUFURTVPeUlFbmVBanBGa1FUZ1ZCYmlLY2hsUVM2bnFiMEFpUGt4VGs3Q1VLL09MNy9TK2ZFWEdsYzdkRE1HYTdMcUtJcUMxK3NsRW9uUTB0TENvVU9IT0g3OE9MdDI3U0lVQ3BYMDJLWHExZXB5dVdodWJ1YjU1NS9uMUtsVHZQamlpNHR1TVpaS3BZakZZbHk2ZElrUFB2aUFUei85bE03T3pyS051U2lLZ3QxdXgrUHg0SGE3bDIwQm5Vd21pVWFqVEV4TVBOTUMyckRpTFZjQkdNd0s0TTJNcG1sTVRFd1UxdWRHWCtENXZoT0NJQlRhOUdtYTlzekVmS05LMTJxMUlzdHlVUXR5akNRTHE5VmFPZ0ZZQVljbEwzQUs1ZG9lWTQwUXlQY0F0aXI1ODdRS2ZZQk5mYkxFbUNkNG5TSktpbXkzMXgwTFZyNzJlNEdLazc5bmR6WUFqNEpSc3NXTDNWR0wxVjZOclBqZlQwemZ4MnFySUZCeEVydWpDVjNYMFBSOGF5RkJFR2VxR1hJa3Bqc1lILzJNeFBUOWVZK3RLQXFoVUFpUHg3TTZIN1lNaU1makpYdm96SWVxcWh0K29tYXhXQXJpejJJRVlFVlJrR1VaV1pZTFBTWTBUY1B0ZGhPSlJIQTZuYXN3NnZYSlVnVGcyUk8valliYjdjYnY5K053T0o2NTdkVFVGRjkrK1NYNzkrL2Y4QUl3NUNzNVgzNzVaUVlHQmhnWkdTbHBUMVFEVGRNWUhCeGtjSEFRcDlOWnNQa3BGNVphUGI5WkNRUUM3Tnk1azNBNFRHOXZiK0hmUjBkSGVmRGdRZG4zVWJaWUxPemZ2NTl3T0l6TDVXSnFhb3FPam82U0hHdGdZSUN1cmk1MjdOaFJWdC8xell6YjdlYTExMTVqZEhTVXNiRXh1cnU3SC91OXJxc2twdTh4UHZJWml1TEhGM29PeGVKRFZ6V0tIeWw0dEQrcnRZSkErT1UvRWdSWmNmdDJoVk9KM2t2WlRLeVFuU2xLRnB2RHVlVkVNUExhZTRId3k5OTN1TGFDSUtDcG1jZjJLQWdTRmxzVi90Q0xpS0x0UDZwcU1pWkp0cCtZZllGTlRNcVNKUGtLNEtJc1BIVU5VaG1kZURyZnYwMldoVWYxRld1OXpKd0o5MlVUY1AyQnh1bnpPaisvb0hHcjJ4Ui9UVllmdTkxT1EwTUR1M2Z2WnZmdTNlellzWVBtNW1hMmJObFMxa21NQytIMysybHJhK1BFaVJPOC9QTEw3TnExYTlIaWJ6S1o1TmF0VzV3L2Y1NHpaODV3OXV4WkhqNThXTmJ4S2F2Vmlzdmx3dWZ6NFhhN2x5M0t4dU54UmtkSGljVmljd3JBb2lpaUtFcWh6NnJENFVDV3pkQzZTZm1UeldiSjVYS0lvdmpVdFN3SUFqNmZqMEFnZ00xbUk1MU9FNDFHR1I4Zm4vZTZGd1FCVVJTTEhqczByakdMeFlLaUtDVXJ4TExJQW5hYmdFMFJFRVhCckFBMm1La0FscVZIUFpKWFFRQ1dNQ3VBUzRyNWxGcW4yQjExeHdJVnIzd2VDTCtNdzlrRWdveXVxd2dGVHljQlJBbWJ2UVl4N01RWE9JSW8yVkVzdmxrM3ovelZtNjlpMEloUFAyQnM2R05pbzJmbjdmMExlUkV1R0F4dStMNllzNW1hbWlLUlNLenFoTGVjSjlmRlFsRVUvSDQvSG8rSC92NytlYmZ6ZXIxVVYxY1REb2R4dTkxNFBCNmNUaWV5TEpOS3BmQjRQQnc5ZW5SVGlIVExRZGYxVmJVd0wyZXNWaXRPcDdOZ1ViUFFkWlpLcGJoLy96NmRuWjJrMCtteXRiQXRKb0ZBZ04vOHpkOGtrOG53Yi8vdHYzMUtDQ2tsaVVTQ2REcGRkaFpWNVRhZWNxV2lvb0tXbGhidTNyMWI2S1U2UFQzTnZYdjNpRWFqUytvenRsYlUxdGJ5OXR0dk16WTJ4bi83Yi8rTjBkSGlGMG4yOVBSdysvWnRHaG9hekNyZ01xS3BxWWxUcDA0VmJQREh4OGVmMmlZK2NaTXh5WW5GNHNmdDJ3ZUNOTE1hTG40bGpLN25FRVFMZG1jVGt1TDZ2dDNaK1AycDJOWC8zZVhaL2xFcTBmVWxpTExidC9mTlFNVkxmKzRMSE1GcXEwRVF4SmxFMENmdlZ4b0NFb3JWajl1L2wwd205dWVxbXZnbThIZEZIN2lKaWNsS01TeWdpMVlCbk01Q01wMy82VEFNQXNwaFdpTUNDcWhaZU5pajgrbDFqV3VkT2hrejU4NWtsVERhSHZsOFBob2FHdGk3ZHkvUFBmY2MrL2J0Szh6VFZxdkZsQ0drRk11VzFlUHhzSGZ2WGw1NTVSVmVlZVVWRGh3NHNDZzNvMXd1eDhURUJIZnYzdVh6enovbm80OCs0c3FWSzNQT2k4cUoyWDFQdlY0dlRxZHpXZWRTMHpTbXA2Y1pHeHNyckdmbU9wWXN5OWp0OWtLLzRYS3VBSWJORVZzMFdSeEdiQkR5MzJWRGFQWDVmTlRYMTdOMTYxYjhmai9KWkpMaDRXRUdCd2NaSGg0bUdvMFNqOGZKWkI0bG1ob3RDNHNwQUJ2RktLc2hBRnNWY05ueU5zZVMyVTN3S1N3eTJDMzVIc0NTQUNYMGZqQXFnTXZUWG1LRFlBckE2eEJKc3RwQ1ZXKzhIcWc0aWQyMUJSRFIxRG5hQk9rZ0NESldhd1JSVkFBZFRjdWdhWWJ0czRBb1dkRzBESW5wZTR3TmZzejR5SzlKSi9zWERHYlpiRGFhbXBxb3Fxb3EwU2NzTDdMWkxEMDlQUXNLbEtWZ00welNSRkhFNi9XeVpjc1cvSDQvVlZWVkJBSUJIQTRITHBjTFJWRVFSUkduMDBrZ0VNRHI5V0szMjNFNEhOaHNOa1JSSkp2TllyVmFpVVFpaE1QaHRmNUlaWWt4eVZ1c1hkTkc3NlhzOFhnSUJBTElzcnhnbjIxZDF4a1lHS0M3dTV0b05FcGxaZVVxam5MdHFLNnU1anZmK1E2eFdJd2YvL2pIM0xoeFkxV09hL1RiTFNjTSsvUnl0VG9ySjN3K0gwZVBIdVhtelp2Y3ZIa1R5QWRSaG9lSGVmandJZHUyYlZ0VTVmMWEwOXJheWp2dnZNTzllL2M0ZmZyMGdsYnh5MkY0ZUpqdTdtNVNxWlFwQUpjUm9paXlZOGNPdnYvOTc1Tk9wL25nZ3crZWNuN1J0QXhUc2F2SXNoTUVFYmR2TDRKZ21XbW5VdVE1bTY2am95R0tGbXoyV2hUWmk4MWU4eis3M0R2KzUweDZHQVFSbTZNZXAyY2JWbXNFUVpEUXRNdzh1OUlBRFhRWnF6V01QM1NNNVBTOTV6RUZZQk9UY2lSRFhnQk9Vb1FiaTY1RFZzMkx2MWsxLzk5bE04MmYrWFFDSUFzZ2lTQ1d5OWhNTmp5S29oQU9oOW15WlF2YnQyOW56NTQ5N05peGc1YVdGcXFycTllMEZkSks0MERCWUpEZHUzZnordXV2OCtxcnI3SjkrL1pGaWIrYXB0SFoyY24xNjlmNThzc3ZPWGZ1SERkdTNDQVdpNjFvUEt1QkpFbTRYSzVDY2NGeVcvZGtNaG5pOFRpVGsvTTNJRGNFWUtNSHNHRi9XNDdNYmdXMkdlS0xKa3ZEWnJNUkNvVUlCb1BVMXRiUzF0Ykd3WU1IaVVRaVpMTlpwcWFtaU1WaWRIZDNjK3ZXTFc3ZXZQbVV1NWRodlc2eFdJcVd3UEprQmJCaFNWMU1CQUZzRnZBNDhpS3daUFlBempOekRnUUJyQlp3MjhGaEZSQkZIVXBYVHlRQTVkU2taRU5Tbms4cGt3VlJMTDU2aDZ2bFh6dWNUUWlDZ3FiT2I2MllEL3JvcUtvUlZIOVU5UXNpYWk3TzlOUmR4a2RPRXhzK1F5clpPOSt1Z0x4TjN2UFBQOCtSSTBlSVJDTEYrVUJsVGphYkpSYUxJVWtTb1ZBSVVSUUxEeUJkMXd2WlNiTjdLUmdQdmtRaXdkalkyTEpFamMxUWRhWW9DaTB0TFh6em05L0VicmV6ZGV0V3FxcXE4SGc4K1AzK0RkbURkcTFZNnZlcFdCbkk1VWhWVlJVdExTMWN2WHIxc1g2bGN6RTVPY205ZS9lNGYvOCtvVkNvYkJkM3hhYWhvWUh2Zi8vNzZMck8yTmdZQXdNRGF6MmtOV0dweVJPYkdiZmJ6Y0dEQi9uODg4OExBakRrcjZGUFAvMlU1dVptOXU3ZHU0WWpYQnlLb3JCbnp4Nis5NzN2a1VnaytPeXp6eFpNRkZrcVkyTmpkSFYxa1U2bmk3WlBrK0xnY3JsNDlkVlhtWnljWkhCd2tDKysrT0twNTJZdU44WDR5SzhSWlNleXhZZkR1UVZSVk9ZVlgxZUdqcTduUUJjUUpUdE9keXRPVndzZ0dPMTk4MnQwWFZ0VVAySmR5eUZLVG15T0dpeTJVSFVKQm14aVlySnlja0NNZkNYd2lpY2ZPcEJUSVpNRHRkeW1NanFnZ2lSQlZWQmdSNTFBL3pqYzY5ZkpsbGMrb01rR1FoUkZQQjRQdGJXMXRMYTJzbi8vZnZidDIwZGJXeHRWVlZYWWJMWTFHVmN1bDJONmVwcEVJckhzZFlja1NZWEszOWRlZTQyVEowK3laOCtlUlgybVpETEp3NGNQK2ZycnIvbjg4ODhMbHMrcjNRWnR1Vml0Vm53K1g2RlYzWExpU0xxdU16MDl6ZFRVMUlLZjJ4Q0FiVFliVHFjVG04MVcxaFhBUmpMelJvOHRtaXdlUVJDd1dDejQvWDVxYTJ1cHFhbGh5NVl0N04rL242TkhqMUpUVTFPSWJXZXpXZnI2K3JoMDZSS1ZsWlVFZzBIdTM3OVBQQjVIbG1VaWtRaWhVQWlIdzFHMCtLRmhLejFiQUM0MkF2bktYNDhEbklZQWJKSm41bFpoczRETEFZN1NueCtqQXRnVUFFckk1b2hrYnlCRVVaYWQ3dGF0ZVN0bm1jV2xwenk1alFpQ2hLWW1tWXhkWVhUd0l5YWpGOGlrNXJkOU5uamxsVmY0Si8va24zRG8wS0ZOSTRRSWdrQW9GT0tGRjE2Z3FhbXA4QkRLWkRLb3FscW9UalVlZUxPejZ6bzdPL25razArNGR1MGE4WGg4U2NkVlZiWHNxdUdLamN2bDRzaVJJK3pidDYvUVI4VVVmVXZEVXJNK0JVSFlzQUp3WTJNamUvYnM0YU9QUG5xbUFLeHBHcmR1M2VMY3VYTnMzNzZkVUNpMFNxTmNleG9iRzNucnJiY1lHaHJpTC8veUw5ZEY5bmV4TVFYZ3hXT3hXS2l0clgzS2lTRWFqZkozZi9kMzdOaXhnNTA3ZDY2TGU3ekg0K0diMy93bXFWU0taRExKMTE5L1hUUVJlR1JraEZ1M2JqRTVPVWxOVFUxUjltbFNYRjUrK1dXR2g0Y1pIaDZtdmIzOXFkK3JhcExKc2ZOWUxFR2tLaWMyUnkybDlWVFZFWVQ4M0YwUXhQei9aeWJKVTgreDFHNlpBaEtDSUpadnBOTEV4R1FZbUtaSUZjQTVWU2ViMWNtcFpUYXYxd0V0THdCWCtBUzJWQW5jN29HdVlWTUFOaWtORm91RnFxb3FXbHRiMmJkdkg3dDM3MmI3OXUzVTE5ZXZlWEZEUEI2bnI2K1BrWkdSWmNlQUlwRUl1M2J0NHZYWFgrZmxsMSttdGJWMVVlTHZ4TVFFMTY1ZDQrelpzNXc3ZDQ3cjE2L1QyZG01Ym1KUmdpRGdkcnVwcUtpZ3NySnkyYTNxc3RrczQrUGpURTVPTGpqdk42b1RYUzRYWHE4WHQ5dGR0ckZSSXdaa1ZnQ2J6TVptcytIeitZaEVJbFJVVkJBTUJna0dnd1FDQWZ4Ky8yTUpEVWJSanQxdUp4S0pzSC8vZnRyYjIrbnM3Q1FlajlQYzNFeFRVeE5lcjdlbzhVTlJGSkZsR1ZtV1N5WUEyeFJ3TzhCaG5WVUJiUEtvQWxnUmNOdUZtZk5UOHBPakFDNWdxTlFIMnF5VTUxUEtaQUVFQk1uNk14RHovY0dXbENBaElJZ0tvaUNUelU0d05aRVhmMk5qNThobFlndSswMnExc24zN2R0NSsrMjFlZlBIRlRkRUwwMEJSbElKRmNUYWJSWlpsSkVraWw4dWhhUm8ybXcyWHkvWFlPVEVtVjhQRHcremN1Wk1mLy9qSC9PcFh2M3FtMkRRYlRkTWVzOWJZaUJoWnFpYWx4YkJSV2V6RWFhUGIzb1pDSVJvYkd4ZHREZFhWMWNXWFgzN0p0Ny85N1UwbEFBTzB0Ylh4M252dkVZMUcrZlRUVHhrWmVYYWkwRWJEekpoZVBGNnY5eW1iWjFWVmVmRGdBVmV1WEtHcnE0dW1wcWF5enBJMzhIcTlmT01iMzBDU0pMeGVMMTk5OVJWalkyTXIzbTh1bDJOZ1lJQ2hvU0cyYmR0V2tnV3R5Y3J3Ky8yODhjWWJkSGQzODFkLzlWZmN1M2Z2cVcxU3FRR2lvMTlpdGRjaUtTNWsyUTJMck1SZERubXhWeXRDWEVLZkdXZUpCbXBpc3NtbzhCVlpWTTNua2tUVFdYMDZrVVpmcVJDcTY1RE5QV0VCWFpTQkZna05SQkVDSHFnUEM0UzlPbkw1VHhGTTFobUtvaEFJQktpcHFXSDc5dTBjT0hDQVE0Y08wZExTUWlnVXdtS3hyT240TXBrTXZiMjlkSFYxTVRZMnRxdzF1TnZ0cHEydGpWT25UdkhLSzYrd2MrZk9aOGJzZEYwbm1VeHk3ZG8xZnZHTFgvRHJYLythMjdkdkU0MUcxMVVjUUZFVWZENGZWVlZWUkNJUm5FN25zdlpqOUR5TnhXS0ZIcWx6SVlvaVZxdTFJQUM3WEs2eVh0dVk2MWlUSjdIYjdWUldWaEtKUkhDNzNWZ3NGaVJKUXRmMXgzcjh6cWFtcG9aSUpNS2hRNGZvN2UzbDl1M2JqSXlNRUFnRWFHNXV4dVB4RkUwQU52b0FHNzJGUzFLWUlzd0l3RE1DcDJoYVFEOWlacTVva2NGcHpWY0NyMExJd2c2RWdBY2xQOUlteFJTQVM0eXN1RUtpWlBlaTYyaHFZaXlYUzhSV3RFTkJsQVZCbWJGd1h1UmJCQkZCa05FUjBISngwcGtZMDFPM0dCditoTW5veFdlS3Z3QU9oNE52ZmV0YnZQRENDNXRLL0FXUVpabUtpZ29xS2lxVy9GNi8zMDl6Y3pNK253OUprdmprazA4WUh4OWYxSVE2bDhzdHVXcll4R1ErbGxyUnU1RkZMMW1XQzlma1lwaWVudWJHalJ2Y3ZIbVRtcHFhZGRISHRGZzRuVTZPSERuQzFOUVVtcWJ4MFVjZkZiMG42bnBnbzE0THhjWnF0YzViNGR2UjBjSFZxMWVwcXFwYWRtQm10YW1wcWVFNzMva09IbytIVUNqRXA1OStTbmQzOTRyM096NCt6dG16WjlteVpRdjE5ZlZGR0tsSnNhbXJxK085OTk0am1VenlaMy8yWjA4bHYraDZqbVRpSWVNam55SktGanorQThpS042L2RsSzIyS2dBYWFpNk9wcVlTYXowYUU1T053TC80ZGhFallnSmdBYklrN25Ucm1UTTNkTDFqYUdYekQwM1AyejhuTTNraFdOZG5qbE1PS3ZCTUJiQWdnczh0VUJlR2tFY3diUmhOaW9yUDU2T2hvWUcydGpaMjd0ekpqaDA3MkxwMUsvWDE5Zmg4dnJVZUh1bDBtanQzN25EOStuVUdCd2VYSmJ4YXJWYnE2K3M1Y3VRSUowK2VaTnUyYll1SzJZMk9qbkxseWhVKy92aGpUcDgremUzYnQ5ZmxPczl1dHhNSUJLaXNyQ1FVQ2kyci82OWgvenc4UEV3MEdsMjBBT3p4ZURaVmJPQkpqUGlTdVZaZVh6Z2Nqa0xGcjJGaHJpZ0tzaXpQKzdjVUJLSFErbkQ3OXUzNC9YNG1KaVpRRktXUUNGRU1vZGFvL0RYRVh5ak45eXZmNDFiQTR4RHlGdEFTcGdBTWovVUF0c2g1bSt4VkVJQUZ3QVpVa0o4Smw2SzMwcWJIRklCTGhDUlpiRlo3OVQ1LzZNV1RObWY5LzZycktzbDR4Ly9ONXFqNUpKWG91N2JjL1lxQzRySllBc2hLM3RaRWYyWnJJS0d3ME12bEpvbFAzR0ppL0FLVEUxZElUajlBelMxT1lLeXZyK2ZFaVJNME56Y3ZkK2liRmxtV09YbnlaQ0hnL2N0Zi9wSm9OUHJNOXhrVndKcW1tUlZDSml0QzA3UWwyZGdhWXZGR3RZQUdDcG1PaTJWb2FJZ1BQL3lRbXBvYURoOCtYTUtSbFI5T3A1T1RKMCtTU0NTSXgrTjgrdW1uNjZZZlZESFk2TmRDTVRINjljekZ3NGNQdVhidEdzZVBIMTgzQWpEazd4V25UcDJpdXJxYWNEak1mL3R2LzQzUjBkRVY3WE4wZEpTZi9PUW5oUUNrU2ZraGlpSTdkKzdrblhmZVlXeHNqSi8rOUtkUHpkM1VYSUtKc2EvSXI1UUZQSUdES0xJblg2MjdhdEdESis5Tjh4OVhFQ1ZVTlVVeTBVVW1OYnp5VEFZVEV4UCt5VnRGclBvU0FDZVFoRitlMTdUT1FaV09GUnJoR1JYQXFXeGVDQzRJd09XQ0JvaGdzME9GRjRJZXNGbEthYWx2c2xtdzIrMkVRaUcyYnQzSy92MzdPWExrQ0R0MzdxUzJ0cllzTEh0MVhTZWRUdFBlM3M0bm4zekN4WXNYbCtRV1p5Q0tJcUZRaUYyN2RuSG8wQ0cyYjkvK1RFRXltODJTVHFlNWZ2MDZIMzc0SVo5KytpbDM3dHhabDhVSGdpRGdkRG9KQm9OVVZGVGc5L3VYVmJDaTZ6cVRrNU1NRHc4elBqNitvQVcwTE12WTdYWmNMdGU2YUdGbXJtTk5abU1rTUJqOXE0MXFXNXZOdHFSKzFrYnZYMk9meGZxZVNaSlVzSDZHcGJleVd5eUNrQmMyM1had1dJVkhGdERsT1AwUW52aXBQL0d6UkNoUy9oeFpaQkJMZnh1eEFqNU1BYmhrbUFKd2tWRXNnUWFudStWRVpkMTNEOXNjamYvTTdxaERzWWJRZFkxTWV1ai9TUGw3UG9qVS9lYlYrTVROMDRsNDF4ZWFtbDVTRkYwVUZhdk5Yb3ZGWXRpUUxoVG9zU0FJSXJuc0ZNbXBPMHhPWEdVNmVvWDQxRDNTcWNFRjN6dWIvZnYzODczdmZZKzllL2VXdGJWSk9XTzMyemw0OENESGpoM2o1czJiaXhLQVZWVmxlbnFhZERxOXJDeEdFeE1EWGRmSjVYSUxackkreVZJc285Y2pSbEJBa3FSRm5aZDRQTTZGQ3hjNGZ2dzQrL2Z2WC9PZ3dXcmpkcnM1ZWZJa21VeUcwZEZSTGwyNnRLNnN3VmJDUnE2R0x6YXlMR096MlZBVTVhbkF5ZURnSURkdjNseVh3U1dqRWg3eW4rUGpqejltY0hCdzJmdkxack5jdVhLRnUzZnZvcXFxT2JjcVV5UkpZdi8rL2J6NzdydDBkM2Z6eFJkZlBQVzlWdFVFazlGTENLSVZXZkhnOXU1R0VDMzUzcng2S2UrUkFvSW9JUWd5QXZtSWhhNnJhSG9PNWp5dWdDQmF5R1VubUo2OFF5clJjNk9FZ3pNeDJUVDRxb3U0TTRGODk3TUUxSVlRUFk1OHhjVktwMXM1TFM4Q3ErVTJiVE9tVmdJSUZ2QTZCWUllZ1lCTFlDaXFsOTk0VGRZRmtpUVJEQVpwYkd4azU4NmQ3TjI3bDkyN2Q5UFMwa0oxZFhYWnJPSDYrL3U1ZCs4ZVgzMzFGYWRQbjE3MkhObG1zN0ZseXhiMjc5OVBhMnZyTThWZlRkTVlHQmpnenAwN25EbHpodlBuejlQUjBiRXU1K2VRajFuWTdYYjhmai9oY0JpLzM3OHNTMjlkMTVtWW1HQmdZSUN4c2JGNWJYQWgzMHZhNC9IZzhYaldUWnpPN0FGc1lpRExjcUdTMXhCdERRSFlicmN2NlI1WmlqV3NJVWdib25JcHY3ZFdCZHcyY0ZvRkJDUDBXVzZYaWZERXk4Q1lJNVZ3dkxLVUYzOWxLUytZbHhnWmNHRHFsQ1hEUExGRlFwS3NOb3V0YXA4LzlPSnYrTVBQLzJ1M3R3M0ZFZ1FFZERRRUJPeU9PcnorZzI4bGs3MXZ4VWEvL0Y4bXhyNytuNnkyeUsrem1iRU9UY3N0cXNPUDFWNjkxK0ZxUnJFRTgvVUdjd1I1QkVFQ1FVVFQwbVRTb3lTbTd4RWIvWUtKc2E5bmhOOW5ZN0ZZQ0lmRE5EVTE4ZTY3Ny9MdXUrOHV5d0xaNUJHaUtOTFEwRUJWVlJVM2I5NTg1dmE1WEk2cHFTa1NpY1M2bVZpYWxDOUxxUUNHamI5SXNObHNORFUxY2ZIaVJXS3gyRE8zVjFXVnZyNCt1cnE2bUp5Y0pCQUlsSDZRWlVZa0V1R05OOTVnY0hDUVRDYkQ5ZXZYTi9SM0JQTFhRVGFiSmJlNFIvU21SMVZWZEYyZk0za2tIby9UMWRXMXFPdXRIQkVFZ2IxNzkvSVAvc0UvSUpmTDhjRUhINndvV0paS3BSZ2NIR1I0ZUpqS3lrb3pPNzlNY2J2ZFBQZmNjM1IzZDVOSUpMaHk1Y3BUUWNGY2RwTEo2RVVVMlFNSU9EMnRTSklUQWFFa2R0Q0NJQUlDV2k1Rk5qZUpycVlRQkJsWmNTUEpiZ1JSbVRudXpQMVpFUE5yQTEwbGxleG5ldUw2L3lPZEdyaGE5SUdabUd4R2trWGNsd0NJUUJKTEpvZWl5QWdXR1ZJcnFJUFE5Y2NGNExLZHRjMVU0Z1RkVUJtQXJtR1lLdWE1TmRrVU9KMU9hbXBxQ2xXL0J3NGNvSzJ0cmREQ1o3V1RtMmNuWVJ0cjhVd213OERBQUxkdjMrYnMyYk9jUDMrZVc3ZHVNVEV4c2FSa2JRT2J6VVpqWXlQYnRtMGpIQTR2YWt5eFdJemJ0Mjl6OSs3ZFpmY2NMaGNzRmd0dXQ1dGdNRWd3R01UajhTeExsTkkwaldnMFNtOXZMNk9qb3d1dS9Sd09CMzYvSDUvUGg4MW1XOG53VjRWU3J0YzNlaXhnSTJLSXE3cXVvMmthZ2lBVXF0cVhLZ0NYZ3RrQ01KUXVMaWtLWUxlQXh3RTJXNzRkUmRsTWt1WVRmUFVuZmkvTzhidGlNT01XSTB0Z1V3UXNzcjRhRmNBUytTcmd6ZFZ6ZEJVeEJlQWlJRW8ybDh2YjlzMUE2TVVmZWdJSHNkdHJFV1huVExEbDBVcExFRVFRUkd5T09vSVZyMkozYnZtL0pzZlBFeDM5L0RuZzNMT080M0EzSFF0V3ZQcGJEdGRXSk5tQnJtdm9UMTNsSXBBWGY2Y243eEliL1lLcDJHVVM4WWVvMmNYMTg3QllMQncvZnB3MzNuaURmZnYyc1d2WExxcXJpNW5ldkRtUlpabEFJSURINDFuVTlxcXFra2drTnBYVnFrbDVZRXdHTi9LRTN1RndzR1hMRmlvckt4Y3RTQTBQRDlQUjBVRmZYeDgrbjI5RFYwalBSMFZGQmUrOTl4NnFxcExOWnJsOSsvWmFENm1rcUtwS0pwTXhCZUJGb09zNkhSMGQ5UGIyem11Yk5qVTF0V0w3NUxYRVpyTng0c1FKWXJFWW82T2puRGx6aG5RNnZlejk5ZlQwY1BmdVhRS0J3TExzNmt4V2gzQTR6UGUrOXowRVFVRFROSzVjdWZMVVBTR2JIbVZzK0JOVU5ZbXVaWEY1ZHlISnpwbHEzR0krUy9PcmIxVk5FcCs2eDFUc011blVFTEpzeCtscHcrUGJqMklOenF3UDhzY1ZkTkRKa2s3ME16bCtrYW5KbXg5bU10RytJZzdLeEdUelVreVRPZ0ZRZ0F3MlFMWlp3R0ZkdVFDY3plYjNrY25PV0VDWEkzcSsvNTdQQ1ZYKy9NOUV1Z3lybGszS0VsRVVDWWZEdExhMkZpcCsyOXJhYUdwcW9xcXFhazJTN0pMSkpJT0Rnd3dORFRFME5NVEl5RWdodVg5OGZKeWVuaDd1M0xsRFoyZm5pdnJ1eXJLTXorY2pGQW90cWhldElBaTQzVzc4Zmo5ZXJ4ZWJ6YllxbFhhbFFGR1VndmdiQ29YdysvM0xMcHpRTkkyeHNURzZ1cm9ZR3h1YlY0eFhGQVdQeDFNNG5qbC9OMW12ekJaV0RRRjRLUmJRcGNMb1J5eEpFcHFta2N2bFNwS2tJb3JndEVIQURSWUgrVGxZbHJVWGdRWHlVcWhDWHQ3UmdBd2tVcEJNNTkxUmJEUENOVFlodjMyT1IyTXY0dVBPcXVUUGtkMUMzaUs3ZEJnellBOTVMNXdWTmtBeG1RdFRBQzRDRmx2RmprRDR4QThERlNleDJpSUlnb3ltWmRDMXh3T2dla0VJbHJIYUtsR3NRU1RKVGpZNzhSdUt4ZCtUblNjWW8xaDhOUTVYeTB2aHFyZmU5Z2FPZk05aU15cHhaOStaQkFSQlJCQVZjdGtKcG1KWEdSLzVqSW54QzZTVC9ZdjZITlhWMWJTMXRiRnYzejZlZi81NURoNDhTRTFOemFZVU9VcUJJQWdvaXJMb2pDcE4wMGluMDZid1lGSVVsdHFYWTZOWEFGdXRWcXFycXdrR2c0dCtqNnFxUEhqd2dEdDM3ckIxNjlaTlc1bGZYMS9QdSsrK2k2SW8vTm1mL1JuWHJsM2JzTjhWSTFOL29UNVFKbm1HaG9iNDBZOSt4Tm16WitkZHBPVnlPZUx4T0xxdXI5dUtWN3ZkemtzdnZVUXltU1NSU0hEeDRzVUZiZUlXWW5SMGxNN09UZzRjT0dBR2tNcWNjRGpNVzIrOXhmRHdNUDM5L2ZUM1B6MjN6bWJHbUJnN2l5REtTTElUcDJjN2dxZ1UwUTVhUUJCbDFOd1VVeE0zaVk3OCt2ODVPWDdwYjdQWldJOGtXWnp4cWZ0SFU0bmVVeTdQenQrMTJxdVFaQmZvR3Jsc2pGU2ltOG5ZdGYvUFpQVEtMektwd2V0RkdJeUppVWtweUUrbjdJb2tLQzZiSURpdE90SHA1UXUzbXA3di9adk82dVJVSFYwWHlxc0hNT1EvczVhUGMzcWRVQk9Fc0ZkZ2VNSzBnVFo1Tm02M204cktTbmJzMk1IaHc0YzVjdVFJcmEydFJDSVJyRmJycXN3M2RWMHZWUGltMDJtaTBTaDlmWDNjdTNlUGUvZnVjZi8rZlRvN094a2VIaWFSU0pETDVjaGtNaVNUeWFLdE1SYjdPVVZScExLeWtnTUhEakE5UGMzUTBCQURBd05NVGs0dXF3SjVMYkhaYkFTRFFTS1JDQlVWRlN2cTdaeE1KaGtkSFdWZ1lHQkJoeCtielliUDV5TWNEdVB6K1pabE43MFdDSUt3YnRkZUpzVmxkckhIYkFIWWFyV1doUUFzaWlLeUxDTUlRdUZlV1FvQjJLcUF5eTdnY1FpSVZ2SWk2bHFGdEdaWC9PcUFDbW91LzRxbllIeEtaeWdHRTlNNk9TM2Z0N2pDQ3hFZmVGd2d5MExlb3RsNC8wcVpFWkt0aXRFanVlUUNNT1I3LzNvQk40K2tiNU1pWWdyQUs4UmlDellFd2k5L3h4YzhnczFXaGFibDBFbXowRlduendTQ1JFbkI3bXJFR3p6NnJ6UHBrVTVSbEg4dzJ3cGFWbHdocTdXeXpSOTY4V1ZmOE5pZnVIMTdVS3pCT1N6bEJBUkJRdGMxc3FsaEppZXVNRGI0U3lhamw4aGxKeGNjdjgxbUl4S0owTmpZeUw1OSszajU1WmM1ZnZ6NG91eGpURXJMY3ZxMm1wZ1VDMG1TTnZRaVFWRVVRcUVRYnJkN1NlOTcrUEFoWDMzMUZjZVBIOSswQWpCQWEyc3J2L3U3dnd2QUJ4OTh3TTJiTjlkMVplZDhiT1Jyb0ppazAybXVYTG5DKysrL3YyQlZ1Q1JKMk8zMmRTMEFBMVJXVnZMbW0yOFNqOGNKQm9OY3UzYU43dTd1SmU4bkZvc3hQRHk4b2lwaWs5V2pvYUdCdDk1Nmk5N2VYbjd5azUvTWVjL0xaTWFZR0R1SExEc0JjTGkySUVyMi9IcThDQ0t3SUVoazArTkVSODc4djhhSFAvdFBtZlRvZzFtL2JyZlpLeS9HcCs1ODdYQzMvbnZGRWdCZEpaM3NaM3J5OW52eHFYdWY1cktUWmthMWlVazVrdzhoMkJRWnhXNUZzRnRCRWlDM2dvQ2VydWVGNExMTjFac0pkZ3BDdmhLbk5peFE0ZE5wNzRlMG1YOW5NZytpS0JLSlJHaHRiV1hQbmowY09IQ0FIVHQyME56Y1RDZ1VXclZ4R0piT1JsdVB3Y0ZCQmdjSEdSa1pvYmUzbDc2K1B2cjYraGdjSEN4SlhNZG9WNU5PcHhjdEp0dnRkcHFhbWhnY0hPVG16WnZjdTNkdndhclhjc1RvL1JzTUJxbXFxaUljRHVOME9wZTFMMDNUbUppWUlCcU5Nams1dWFEWVpMVmE4WGc4QldjL1JWR1creEZNVE5hRTJkOXZRd0EyMXVpR0k4QmFZbGhBUS83K21zbGtTbEpzNExUbXExc3RScVh0V21GVS9GcG0vbjhhb2pHZDdoSG9IdGJwSGRVWmpNTDRGTVJUK2NRNHV4WDhUbWlvRU5oWkw3Q2pBY0krSWIrZllzeWJaazYzWkFHWFBYKzhWYkNBVnNoWC96N2J5c0prV1pnQzhBcngrUGI5WnFqeTFMK3kyZXQ0bEc2eG1KdVRocTZweUpJYnQzY1B1ZXpFZjlaeTA2T2lLUDljMDNJNTJlS3I4WWRlL0QxZjRNai9hbmR2eFdxcm1na21DVHlaQ0NFSUlqb2FtZFFnMGJFdkdCdjZtTVJVTzZxNmNPTWN1OTNPaXkrK3lKdHZ2c251M2J0cGFHaWdzckp5MlJNbms0VlpxcUE3TzVQVXhHU2xMS1dpVnhURngvcHViRVFVUmNIbjgrRnl1WmIwdnY3K2ZyNzg4a3ZlZnZ2dFRXK05YMWxaeWUvKzd1K3ljK2RPZnZyVG4vS1hmL21YakkrUHIvV3dpb29vaXRoc3RuV1QzYjFXZEhWMWNmYnNXUVlHQmhiY3p1LzNVMUZSc1NIdUxZWWQrc0dEQi9uSlQzN0NuLzdwbnpJOFBMeWtmVVNqVWZyNyswMEJlQjJ4ZCs5ZS92RS8vc2ZvdXM1Zi9kVmZNVDA5L2RRMjZkUVFZNE1mb2FrcEFwV3Y0M0p2UjVMczZIcHh2R0p6YW9KVXNxLzlDZkVYZ0ZSeThKWWsyN3VuSm03OG5TUmFuRHFnNVJKanVWeDhUTk15Wms4UkU1TnlKejlWdDhnU3N0MENOaVZ2alp4YndYSlEweCs5eWhLakFsaUVnRnVnSVF3UnY0QlYxbm42RG10aUFpNlhpNXFhR25idTNNbVJJMGM0ZXZRb08zZnV4T1B4bER4QmQzYjEzTVRFQkoyZG5ZVit1dmZ1M2FPam80UEJ3VUhTNlhUaFZhb0tOc2k3NnhpdFNlTHhPRDZmYjFIdmN6cWRWRlZWMGRMU3dvTUhEeGdhR2xwWDgxRkprbkE2bllURFlhcXJxNm1vcUZqMjN6NlpUTkxmMzgvbzZPaUNJcnF4THZSNnZRVUJlSzM3cGE0bVR5YnZibFFIc0kzTzdML2piQUhZWnJPdG1tdkNzekFzNlZWVkpaZkxGZjI3Sm9uZ2N3cTRiUG01UjlGNzZENEw0WW1mR3VnWjBESXdGTk81MWExejZaN09wUWM2N1gwNkl4UDVOaDZxbG0veUl3cWdTRkFYRm5ocGw0QWlpL2ljb01pelhGNlcrM21NOTRrZ3lNS01CYlNBS0JhcnZIaGVSUEw5ZjJlYlg1c1VrYzN6dENvQmlzVWJxVzc0blNOTzl6WkV5WTZ1TGx6NSt5UzZua01RSkN5V0lMN2dVU1RKL2hQWFZQdS9yV3A0aitxR2YxRGw5dXo4bnNQVmpHenhJaUNpNjluSEszOEZFVkdRUVJCSUozb1pIL21NMGFGZmtaaThnNzdBdGFJb0N0dTJiZVBsbDEvbUc5LzRCZ2NQSHFTcXFtb0ZaOEprTWVpNnZxUmVrb0lnSUlyaWhnaVVtNnc5UzUzSWJmVHZuaWlLV0szV0pXZnQ1bkk1MnR2YitlVXZmMGwxZFRWYnQyNHQwUWpYQjVXVmxiejIybXVFUWlGQ29SQ2ZmUElKNTgrZjN6Q1d5Y3Y5bm13Mit2cjZ1SFBuem9LQkk3L2Z6L2J0MjFlMUtxUFVCSU5CZ3NFZ2JyY2JVUlQ1NElNUHVIcjE2cUxmSDQxR2VmRGdBY25rd2dsN0p1V0R4V0xoOE9IRGpJMk5NVFEweEVjZmZUVEh2RTRublI0aE9uSUdCQWxaY3VKMHQ4ellRYXNyckFUV2tXVVhEbWZUSHBzOTBwcEtEclUvdVlXYVMwNkRxWnVZbUt4akJFbEVzQ3A1KzcyVjJPNXBPdVRVZk9Bd3A4NVVBYTk5YlBkeGpQeDVBVHh1cUF0RHBROHNacVRLWkE0cUt5dlp0V3NYQnc4ZXBLMnRqZTNidDlQYTJvclg2eTM1c1NjbUpoZ2FHbnFzMnJlN3U1dk96azY2dXJybzZlbDVaakprc1VtbjAvVDI5dExSMGNHdVhidW9xYWxaOUhzamtRaUhEaDJpcjYrUCsvZnZyNnRFWHFNQ09CQUlyRWdBMW5XZFdDeEdkM2MzSXlNakM4YnFCRUhBWnJQaDhYZ2VtLytYTzdPVEZwYURKRWs0SEk2Q0xhOGh5bVd6V2JMWnJDa0Vyek9NT0RNOEtoSXhMS0RMSmVZeE94WlppdVFabXdKK0Yza0IyS2l4VzYydnNWSHhLNU9YT2JNd1BRazlVWjN1QVoxNy9UbzN1M1h1ZE1QZFBvMkJCVzdMUXpFZHV3VjIxT3ZVVlFoRTVMeDZ1bUlyYUdPdXFPVHRueTNLcWt3ZHhmd1JNU3N2U29RNXJWNEJpaVhRcEZqOGYxOFU4OTlQZlJsWFdGN1FGYkRhcWxFcWduZ0RoLzZGSUNoSXNndFJFTkhSMGJYY3pKNk4vZWQ3Z0FIa3NwT2swNE5NakoxbmRQQkQ0dFB0ekhlbFM1TEUxcTFiYVcxdDVhV1hYdUxiMy83MnBoY3ZWaE5WVlVtbFVrdnFGYmpVdnEwbUp2T3gxTDR2RzEwQU5xeGxscE8xT3prNXlTZWZmTUt1WGJ2WXNtWExoajVQaThGaXNYRGt5QkVhR2hwb2FtckM0L0Z3NWNvVlJrWkcxcFdWMkZ5WWlUalBSdGQxQmdZRzZPenNYUEQ1Rm9sRTJMNTkrNGEwVG05cmErT1AvL2lQMFRTTjN0NWV4c2ZIRnhVTVNhVlM5UFQwTURFeHNRcWpOQ2tXZ2lCdzVNZ1JmdnUzZjV0WUxNYkZpeGZuVEg1SXA0ZUlqWDZKckhnQUFadXpqdnlhWWJsZXJEcm9LaFpybUVERmlYK201aWJHWk1YOUgzUFpxWTNudjI5aXNsbkppNkdxTEtIWkxZSnVzd2pJMHZLamVMb082WXhPSXAwWGdRc0NjTGt0THpWQUJLdERvREtRcndCMjJRV0ltc0tDU1I2YnpVWmxaU1g3OXUzajFWZGY1WVVYWHFDdXJnNkh3MUhTdWFXbWFXUXlHWWFHaHVqbzZPRE9uVHZjdW5XTDl2WjJlbnQ3aVVhanBGS3B3bXUxU2FWU2RIVjFjZVBHRFhidDJzWFdyVnNYN1Z6azkvdlp0MjhmRHg0ODRNeVpNeng0OEpTeFNObWlLQXB1dDV0d09FeGxaU1hCWUhCWmprMnFxakkwTkVSN2V6dDlmWDBMcm1Vc0ZndHV0NXRnTUVnZ0VGZ1h6b21HK0x0Y0FWaFJGTHhlYjZIZnNhcXFaRElaRW9rRThYZ2NWVlhYL1hwL3MySEVtSTJYSkVrb2lvTFZhaTJiaW5aRGtMWmFyU1Z4WW5NN0JNSmVBYTlUUUphRXhSdTVMcGM1S243SjVTdCt4NlowN3Zib1hIeWdjL0ZldnZxM2QweG5PZ21KWjVneWFEcjBqY0hkWHAzbWFoMjNIYnl1R1N2b1l1am1JbGhrQVlzc3NBcXRvVVh5NHU5YW0zSnZXTXJqNmw2blNKSTlJQWhXaXBGZUlTQWdTUTRreVFhSUNJSUl1Z1o2YmtaWWZpVCs1bDhpdVZ5TXFlaGxvcU5mTUJXN1FpclpOMjlBU1pabERoMDZ4SHZ2dmNjTEw3eEFRMFBEaHFyQ1dROW9ta1l5bVZ5MHRjN3N5WnFKeVdxeUdTeWdSVkhFWXJGZ3M5bFFGR1ZKRmF2WmJKYk96azQ2T2pxWW1KakE3L2VYY0tUcmgwZ2t3anZ2dkVOVFV4T25UNS9tZ3c4KzRQTGx5MnM5ckJWaExJbzI4cld3VWpLWkROM2QzZHkvZjMvQjY4akkwTGRhcmFzNHV0V2p0cmFXRjE5OGtXdlhybkg2OUdrU2ljU2kzaGVQeCtudjd5ZWJ6WlpOMXJYSnN3a0dnNXc2ZFlwME9vMG9pcHc1YzJiTzdWTEpQa1lIL2c1TlRSQ012STdEdFFWQnRLTHJ5M05KMERRVlNiTGhkTGVTRGh6K2syU2k3NllrV1Q5UTFiUnA3Mnhpc25ISUtSS3EzUW8yeXdvcmdJR01DcWtzWk1zNVJqOFR3aEFVOE5naDVNbS9la2J5WXpmWjNOVFcxdExTMGtKYld4c0hEeDdrOE9IRDdOeTVzMlNKOHFxcU1qSXl3dERRRUVORFE0eU9qdExiMjF1bzl1M282S0NycTJ2UmM3MVNvbWthSXlNajNMeDVrMHVYTGxGZlgwOXpjL09peEVsSmtuQzVYRlJVVk9EMWVwZThKbDRyUkZIRTRYRGc5L3NKaDhPRVFpRmNMdGV5dmc5R0l1dWRPM2ZvNmVsWjhQUGJiRFlDZ1FEaGNCaVB4N091MW9kUENzREd1WnBMRkRiT3I4dmx3dWwwNHZWNmNUZ2M2THBPTXBsRUVBU3kyV3loVDZ2SittSjJrWkVrU1ZpdDFrSk1yRnlRWlJtSHc0SEg0OEhwZEJZc29ZdUJJSURiRGlFdmVKMGdTNVJlL0oxZDhhdENKZzU5VVoyZXdYekY3NDFPblZ2ZGNMdEhvMmVKYWIyVFNlZ2ExdWtlaHVaSzhMb29YcEtma0xmSXRzaDVSNW9Ta2hlNThoYlFaZ1Z3aWRpUUFyQWtPM3lpYUhFS29td1RrQ1JkejZaVk5UR201bEpGczBNVFJWbDJlYlpMS3hkLzgraDZEblJoNXNhbXpsbE5MQWdTZ2lDajYxblNxUUdtWXBjWkh6ck5WT3dhMld4MG5uR0s3Tml4ZytlZmY1N1hYbnVONTU5L250cmEyaFdQMTJUcHpPNWhzTmp0czluc29yYzNNU2ttbTZINjNPRnc0SGE3c2Rsc1MxN3NScU5SZW50N0dSNGV4dWZ6YmZoenRWZ0NnUUF2dmZRU05UVTFWRlpXOHRPZi9wU3Z2LzU2WFZtS3pVWVFCQlJGTVJlNEM1QklKQmdaR1NFYW5Yc2VBdm56V0ZWVlJXTmo0NGFzQURiWXYzOC9yNy8rT2hjdlhseDBVRENaVEhMLy9uMUdSMGZOZGh6cmpIQTR6RGUvK1UxaXNSaXhXSXpidDIvUFVRV2hrMHIyTXo3eUdhSmtSMUk4MkIzMTZJS0tnTDZNWUVhK2ZFK1NuZGlkalRoY1cvNHFPZjJnRWpBRllCT1RqVUQrbHBDUkpYSjJLOWl0SUs5RVk5QkJWZlBpcjZibkE1L01mcFZoZ2EwaUMvaGRBbFVCZ1FlRE9wbUpNdTVmYkxJa0ZoS2Q1c0ppc1ZCWFY4ZWhRNGM0ZnZ3NEJ3OGVwTG01dVdSckw2T3ZiMzkvUCszdDdkeThlWk5idDI3UjNkM044UEF3MDlQVEpCSUpFb25Fa2x6ZGxvTW9paWlLZ3NWaVFaWmxWRlV0OUJSK2tsUXFSV2RuSjE5KytXWEJDcnV0clczUjZ4ZW4wMGtrRWlFVUNqRTRPRmoybHI2eUxPUDFlcW1zcktTcXFncWZ6N2ZzeXNWa01rbGZYeC8zN3QxamFHaG93V3BXajhkRGJXMHQxZFhWNjZMNmR6WlBYaSt6N1hXZi9Ic2JTUUdSU0lSZ01Jakw1UUpnZW5xYXNiRXgwdW4wa3QzbFRNb0RJN25kK1BzcGlvTFQ2Y1RwZEphbEFPejMrL0g3L1l5TWpEQTlYUnc1UnhUQTQ0QUtYMzZ1SVJ2VnNzVzg3VDE1YWN4VS9LTENaRnpuNFpETzVRYzY1Ky9xWE8vVWVUaWMvL2ZwWlhTRlNtVjBoaVlFQm1NNjhiVHdTRW90aGcyMG50K05WY25iWlF2Q01rMnNGb2NNT0FFSFpnVndTZGhRQXJERkZtNjIyV3YzKzhNdmJKRWw1LzhtU0JZRUpEUXRUVFl6OXMvZHZyWUg2ZFRvL1Z3bTJxMXBtUlVGU2pRdGwzTjdkNnFQek5HTHdYeUJvSm1LWUFHeTJSaXArRU1tSjY0eE1mWTEweE0zVU5Xbjd4S2lLQklPaDltOWV6ZXZ2LzQ2My9yV3Q5aXhZMGVSeG1teVhKWXltZFoxblZ3dVoxWUFteFNGY2wvSXJRV0dBT3h3T0ppYW1sclNlNVBKSkxkdTNlTHExYXZVMTlkdmFGRnJxWWlpU0d0cks4RmdrTnJhV2lvckt6bDc5aXc5UFQxbGtTbS9GTXdld0F1VFNxWDQrdXV2dVh2MzdvTDNHRjNYcWE2dXBybTV1U1EyVHVWQ1pXVWxSNDhlcGJHeGNkRVc2Rk5UVTV3N2Q0NTkrL2FaQXZBNkpCS0o4T2FiYnpJeE1jRi8rUy8vaFo2ZW5qbTNTeVg2aUk1OGptenhJd2d5Vm1zSVFaRHlDYUJMUk5jMTBEVWswWUZpQ1NDSUZoY3d0TUtQWW1KaVVqN0VKWW1NVlVGZmFROWdlQ1NlS2pMWXJPVHJLL1E1WHJDSVlLRStzODFjRzg0RUhsY1NHOUh5QVVhWEhTcDg0SFhBK0JSbzVWeTliTElneXhXSmpGalc0Y09IMmIxN04vdjI3YU9scGFYbzg4aDBPczNJeUFnakl5T0ZTdCtlbmg0Nk96dTVmLzgrOSsvZloyaG9hTlZpTWs2bms4YkdSbXByYXdtRlFvWGVxK2wwbXVIaFlmcjYraGdhR2lJYWpaSk1Qb29EeG1JeGJ0eTRnY1Zpd2VsMDR2RjRxSzZ1WHRUNUNnYUQ3Tml4Zzg3T1RxYW1wb29tdEpRS1F3Q3VycTZtcXFvS3Q5dTlyUDJvcXNyNCtEZ0RBd01NREF3c0tPcUxvb2pmNzZlK3ZwNnFxaW9jRHNkeWgxOFc2THIrVkZXbFVSRWVEQVlKaDhOVVZWVlJXVmxKSUJBQVlHeHNyRkQ5dTk3VzlDWjVqUFpXaGdCczNDK00rMHk1WUZoQTIyeTJndTI2eFdJaG5VNFhraGFNZ3FtbDNwdEZNVC9IQ0hyQTU1aFZBVnlNY0traHZob1Z2d0JaU01aaE1LYlRQNnJUT2FUVDNxZHpxMnRHL0IzTU83VXNsNndLRTNHSVRVUEt1SVVWUzZMUzhxZkZxdVNycGkweXBFdG5FbUVJd0c1TUFiZ2tsTThWdmtMc3JxWmp3Y2pydiszMUgvaG5ObnMxZ21qTlA5QUFkSlZzZHVMZloxS0RURS9jWWlwNitSdXk3UGc2bDB2RVZuSk1WVTJPNjNxYTRvckFUNVAvSERyWjFEaFRzVXVNajN6RzlPUk5zdWx4Tk8zcFNZb2tTYlMxdGZIR0cyL3dqVzk4ZzdhMk5pS1JTTW5HWjdJNERFdm54UXB4c3gvT0ppYXJ5V2I1N2xrc0Z1eDIrN0lEQ1pjdlgrYVh2L3dsUjQ4ZXBhR2hvY2lqVy84RWcwRmVlKzAxbXBxYStQTExML25aejM3R0o1OThRandlWCt1aExScFJGTEhaYkJ0YXRGd3VpVVNDTDcvOGt2L3lYLzRMWjgrZVhYQmJoOE5CWldYbHBwaUwxTlhWY2VUSUVicTd1K252NzMvbTl0UFQwNXcrZlpybm4zK2VWMTU1WlJWR2FGSnNXbHBhK09ZM3Y4bkRody81K2M5L3p1am8zTjVkaWVrT2h2dC9BcnBLc09JVkZHc1FRUkR6Z3U0UzBTR3ZrZ2dTNWRmTTA4VEVaSVVrWkltVVZSRjBxeUtRTDlSYVhtUlMxeUduUVRxVDd5V1hUSU05Uzc0UzVaa1ZML1A4OHBraTcwSTdYZUI5UnJXSkFHNjdRSVVQQW02QjNqR2RuQ2tBcjF0bXJ5ZU5vUDFDR0lVTWh3OGY1dTIzMytibGwxOStyQWRwTVptZW51YisvZnZjdm4yYlc3ZHVjZi8rZlRvNk9oZ2RIU1VlanhPUHgxZFZESFc3M2JTMXRYSGl4QWtPSFRwRVkyTmp3ZjUwZW5xYU8zZnVjUEhpUmE1ZHUwWkhSd2VEZzRPUFZRUVBEZzV5L3Z4NVBCNFBMcGVyc0VaOWxsVnhkWFUxaHc0ZG9xK3ZqNDZPanJJWGdHMDJHOEZna0xxNnVoVlY0MDVPVHRMUjBVRlBUODh6azhGdE5odVJTSVRHeGthcXE2dlhUZkszRWRkNU1yYnpwR2htc1ZpSVJDSlVWMWNURG9jTFZ0ZVJTSVRLeWtvc0ZrdWhRbnBxYW9wb05McW82OW1rdkJCRkVWbVdDOThIUlZFS1Z0L2xKZ0RiYkRaOFBoKzF0YlZZclZaeXVSeUpSSUxwNldsaXNSZ1RFeFBMY3N2TVZ3QUxSSHdDUHZlTXk4cEtCZURaVXh0dDFzOGNSS2QwSGd6b1hIbVlyL3E5MmFYVFBaS3YrSjFNckx3OVIwNkZSQXJpU2YzUnZvcFhvNGdnekZRQTJ3VWNWcjJVQXJCRXZ2clhoU2tBbDRUeXVjS1hpU2dxc3RQZGNpcGMrY2JmOTRXZSsxMjdveEZaY1dKOFgzUjBCRjFIMDdLb3ppMVk3ZFhJaXZ0RFlmVEx0eVhKZGxwVmwyOExuYzJNUGN4bVl2OUQxOVcvWDVyUWk0QW9XZEQxSEtsNE45R3hzOFJHUGljK2RSYzFOM2NBUFJnTWN1alFJYjc5N1c5ejRzU0prdlpHTVZrNlM3RktNUjdJNWZRZ05sbS9MUFc3Sjh2eWhyZTlsV1Y1UmRmWXhNUUVGeTllNU42OWUxUlhWNXRWb25QZ2NEall2WHMzbFpXVk5EWTJzblBuVHI3NjZpdXVYcjI2b0dWd3VTRExjdGt0aU1xQjhmRnhUcDgrelE5LytFTk9uejY5b01XM3crSGcyTEZqN042OWUxT2NSNS9QeC9QUFA4K1ZLMWNXSlFCcm1zYm82R2docUxMUjc3c2JFU1B4OHZ2Zi96NkNJUEN6bi8yTXNiR3hwN2JUOVJ5SnlYYkdSQnVpWkNjUU9vRmlEYUtyUmpMcElwbXg5TksxSExxV0JqU3pWNGlKeVZwUnpGdjJvOHFSbkVVbVo3ZmtnMjRyclFCT1oyQXdDdTI5T2pjaU9oVkpjSWhnbGNDcUNGamttVndTbzdwWDEwSFhabnorOUVlM0p3RVF4RWV2eHlLTXhuczBtS3NhUjVqMWZ3d2Y2c2QrempCVEFleDFRS1ZmSU9UUnNjaDU0ZHBrZldHc1BSZHIreXpMTXR1M2IyZnIxcTNVMU5Td2QrOWVUcDQ4eWRhdFc0czJwbVF5eWRqWUdLT2pvNFhLejN2MzduSC8vbjN1M2J0SFYxY1hRME9yYjZoaHM5bW9xYWxoOSs3ZEhEbHlwREJ2RG9WQ2hXMnkyU3laVElhQmdRRkdSa1pJcFZMa2NybENKYkRSYm14d2NKQUxGeTRVZXJqNi9YNThQdCtDeC9kNnZXemZ2cDBiTjI2c0MydGpRd0N1cnE0bUZBb3RhMzJoNnpxam82TzB0N2ZUMDlNenA3WDJiT3gyTzZGUWlPcnFhb0xCNExxYXJ4dlg0WHpYb04xdXA3NitubTNidHJGMTYxWXFLeXZ4K1h4NFBCNThQaC9CWUxBUU4rbnI2ME1VUlhLNUhMbGN6aFNBMXhsR01vQ1JGR0t4V0hBNEhHVlhBU3dJQWg2UGgrYm1aZ1JCWUdwcUNwdk5ocVpwOVBmM2MrSENCU1ltSnBhOWY2OFRhb0xnOFlJb3Mzd0JlSFovWHdsUVFVL0M2Q1FNVCtpTVJuVzZoblRhKytCV2o4Yk5ybnpGNzBwRjM5bW9HbVJ5K1pkYUlxTUtSUUtIRmV3V2lKWE9CbG9FYk9SOWFrd0J1QVNVenhXK0RFVEpZbk00bTA4RUs3L3hNMy9vQkRaN0ZTQ2c1dVoyZDVZa0p3N1hWa1JCUWRlMW42aGEralZKc255aHFzdXpnODVtSm9jcTY3L2JtODFPWWhVdDVMK2p4Ym5pQkVFQ1FVSlgweVFTRHhrZk9jUFkwTWNrcHgvTXViMmlLR3pidG8xang0N3h4aHR2OFBycnIrUHhlSW95RnBQaVlHUmJMWGF5YUZoeWxOT0QyR1I5WXZUNmVGYjI3K3p0TjBQeXdVb0ZZSUQrL243T25qMUxjM016VFUxTlJSemR4aUljRHZPTmIzeURmZnYyY2ZyMGFUNzY2Q051Mzc1ZDZCMWJyajJDRFN1c3hWNDdHeDFWVmVudDdlWFRUei9saHovOElaOTg4c2t6ZTZCNXZWNisrYzF2Y3VEQWdWVWE1ZHJpY0RqWXRXc1hUVTFOL1ByWHYxN1VleFJGd1dhem1VR1VkWXpUNmVUa3laTm9tc2IwOURSLzkzZC9SeW8xOS9KaWV2SU9ncUFnaW5aOGdTUElpb2Q4RzVqRlJnTUVCRUJWNCtTeU1YUXRPKzg2eG1xUHRGcHRsVHNseWVIWGRUV1h6VTcwWjFKRGQ3S1pXTi9TUDZXSmljbFRGRHZZTmhOT2tFUlV1eFhkWVpteEoxd0J5UXgwRGV1Y3ZhMmphaHFOVlFKQk4zanQ0SEhvZUJ6Z2RRbzRiV0NWZWVRdVlEeVRkUDNSdjBtV2ZMUlVsQjhYYm5VOW40dWk1VUROa28rQ0doSFZ1UkpRaFZrL1pyYlJLUWpBUGhmVWh3VXFBd0pXeGRqR1pEMHhXd0NlYmRrNUh5MHRMYno5OXR1ODhzb3JSQ0lSL0g1LzBaeGpORTFqWkdTRW5wNGUydHZidVhQbkR2ZnUzYU8zdDVlaG9TRW1KeWVabXBwYUUxdGJtODFHUzBzTHp6Ly9QSysvL2pyNzl1MGpIQTQvRmNzemVnQnJtb2JMNWFLcXFncGQxMUVVaFpHUmtjY2Nsam83T3hFRWdWQW9SRlZWRlR0MzdseXdZbFVVUlNvcks2bW9xQ2g3YTJPYnpVWTRIQzcwNGpWNkhpK1ZUQ1pEZDNjM04yN2NvS2VuaDJ4Mi9ySTJVUlR4K1h4RUloRWlrVWloSis1NndFaG1kcnZkV0szV3AzNXZzOW5Zdm4wN0J3NGNZUGZ1M1d6ZHVwWHE2bW84SGc4T2h3TkZVYkJhcldReUdVWkhSOUYxbldReVdlaURiYTVkMWhkeldVQzczVzVjTGxmWnhmNkN3U0M3ZCsrbXBxYUdaREtKMSt2RmFyVnk4K1pOZW5wNnVIejU4cktzK1NVcDd5NVNFeFJ3ZWdSUWdTeExuMllZVXh1Ti9ENVVuVndTdWtkMGJ2ZkNqUzZkdXowNjkvcDFCc1poSXE0ekVTK3UrQXY1dkx1Y21uL3BHbk5QdVphMVl3bzlnQlU1TC81YWxYd0Z0VnFheTE0Z3IxRWE0cHBKa1NtdkszeUoySjJOeDRPUlZ6LzBoNDVqYzFTVFh6aW96TnVUQmcxSnRHRnoxdU5WajVMTFRmOUt6VTd2QmE0dGR3eTU3SFEwbTQyaVdMd0lncndzRzdjNXh5cEk2RnFHK09RdHhvWlBFeDA3UnlyUlBlZldGb3VGSTBlTzhEdS84enVjUEhtU21wcWFkVFVwMlN4SWtvVFQ2Y1Jtc3kxcWUxRVVVUlJsWFdVWG1wUW5vaWd1V1FCZXl2YnJGVW1TVm55TmpZMk44ZW1ubjdKNzkyNGFHeHROeDRWbkVJbEUrT1kzdjhuZXZYdnA2dXFpcDZlSHExZXY4c2tubjNEdjNyMWwyZmlVRWxFVTE0M0YxMnB3NTg0ZDNuLy9mZjdtYi82R3UzZnZQbFA4QlFnRUFodzhlSERUOUxjVkJJR3FxaXI4ZnYraTMrUDMrL0Y2dmViemZnTncvUGh4WXJFWS9mMzluRHQzYnM1dGRDM0Q5TVIxRUFRRWRIeWhGNUJreDh5cS9ka3I2dnk3UU0xTmtjMk1vMm5aT1cyQkhNNkd3OEdLMS82QkozRHduOG15QzEzWFNLY0dtUnkvOENkV2UvWDc2V1Qvc3RjL0ppWW1lVVpqUlk2Q3lZQUc2VFNxUlVaejJ2S0J0NVdnYWpBMkNkY2U2a3drZEdxNkJRSnVjRHZ5VnN0QmwwNURXR2RyTlRSR0pLd3VCU1FiQ05aWmdxOENrZ3lpQlNRbEx3WS9LUURyYWw3ODFWVFFjL24vMXRSSFA3WGNvOStwT2RDeW9HWWVtUmdJQUNMb0FpNlhRRU9GVHFVdjMzUE9aUDFpQ0w5ekNVVVdpNFdhbWhycTZ1cDQ3cm5uZU9PTk56aCsvSGhSMXFEUmFKUm9OTXJFeEFTam82TjBkM2ZUM2QxZDZPdHJXRDJ2RllJZ0VBd0cyYnAxSzg4Ly96d3Z2ZlFTenozM0hPRndlTTd0azhsa1FiQ3hXcTA0SEE1Q29WQkJZTmMwclNBUXA5TnBPam82K09xcnI2aXJxOFByOVQ2emtscVdaUndPeDZKalZXdUYyKzFteTVZdGJOdTJqVWdrc3V5NWN5cVZvcnU3bTl1M2J6TThQTHlna0dTejJhaW9xQ0FTaWF5NyticmRicWUydHBiNitubzhIZy85L2YxWUxCYUN3U0RCWUpDYW1ob09IRGpBdm4zNzJMSmxDNVdWbFFTRHdhZld2OGxrRWxFVXlXUXlCUUc0M05idEpzL21TUUZZVVJTY1RpZE9wN1BzM095Y1RpZDFkWFdFdzJFeW1Rd2Vqd2RSRkJrZUhrYVNKTExaN0xJU0VPd1c4TmpCNDhoUGNVaXhlUEZYbkhuSjVPY3NPVWpGWVdSS1p6aW1NemlxYzM4QTd2YkI3VzZOQjRNNnZhTWxxNWd0b091bFBZWWs1dWVpc2p3akFKZnVVRVlIWlpNU3NHNm4wNUprdFlXcnZ2bGFJUHdTTmtjZGtBK296TStqekhwUnRPSndiU0diR1NNNWRYK1hLQ20zTkRXNzVLZVhMRHQ5RmJYdlZNbXlDd0dKbGFjQUN3aWlqQ0RJNUxLVFRFOWVaM3o0TkxIUmM2UlRnM08rbzdXMWxSTW5UaFFteTVXVmxTc2NnMG1wVUJRRnY5K1AyKzFlOUh1V1l0dHJZaklmQ3kyOE56T1NKSzFZNk03bGN0eStmWnM3ZCs1dzh1VEpaV2NoYnliY2JqYzdkdXlndGJXVldDekd3WU1IT1hqd0lGZXZYdVhhdFd0Y3YzNTlUUU15c3pHU0lUWTd1cTV6NTg0ZC92cXYvNW9mL2VoSDNMNTllMUh2ODNnOGJOKytuZHJhMmcyZlVES2JwVG9MNkxxK0tmcXVid1pzTmhzdnYvd3l5V1FTaThYQzU1OS9QdWV6VjlNeVRNV3VvY2dlWklzZnQyOGZrbVJEVXhkdlNxUnBXVFIxYmd0b215M1NHcXA2NHg4RklxLytzZDNaaUNoYVFkZFJjM0ZzdHFvL0VTVzcwMnFQL0tkMGNxaDlSUi9ZeEdTVDB6MVM1TG0xa0k4cFdtVnlza1RPYVJld3lDcy9SazZEd1pqT1JBTHU5K2VyT0JRWkZFbW53cXV6YjR1QUpzaEVJZzZzTGpkWWZTQjZ3T29HeFFHeWZVWU1saDdaUHo4cEFCZHNvUFZab204R2NtbklwV1plNlpsWEFqSnh5RXhETHBrWGhBVkFGMEFVc05xZ05nUlZBUjIzbVllM0xwbTk5cHpyT1NqTE1xMnRyUncvZnB3WFgzeVIvZnYzVTFkWFY1VDVZbDlmSDdkdjMrYisvZnQwZG5ieThPRkR1cnE2aUVhalRFMU5NVEV4c1NiVnZyTUpoVUxzMzcrZmwxNTZpUk1uVHJCOSsvYkhMSitmeEc2M1UxMWRUU3dXSTVGSUZDcFdaL2RGSGhzYksxUUNaeklaYnQ2OFNTZ1VJaEtKVUZWVjlVeDdaNGZEUVRnY3h1MTJQN01uN2xwUlhWM04zcjE3MmJWcjE0TG42MWtNRHcvVDBkSEIvZnYzaWNWaUM4WkpBb0VBVFUxTjFOZlhMeW1XVnc0NG5VNWFXbHJvNit2ajd0MjdKSk5KWEM0WGJXMXRiTisrbmRiVzFzSmF6ZVZ5WWJQWjVsejdaaklaVXFsVTRXVlcvNjVQREZkS1k4MXBzVmh3dVZ4bFdRRnNKTHhZTEJaMFhVY1FCS0xSS01QRHcweE9UaTZyK2xjVUlPUVI4RGhBbG9UbG1Zdk1xdmlkbW9ZSEEzQ3RTK05xaDg2OVhwMmVFUmlmaGxoY1p5cFpldkczcE13WXRNaXlnRlVSc01vQ2dxaVhTZ0UyRExVbHpBcmdrbEJlVi9nU3NOZ2l1NTN1YmYvSzVxeEhFR1EwTmJtbzkrbTZCanBJc2hPN3N4R0haOXVmSjVQZEY0QWxCMENzOXVxOURsZnpQN05ZS3hCRVpVbEJtOGNSOHBiUGdKWkxrczFHbVo2OHpmaklwMHhHTDVKTlAyMk5hUVJWMzN6elRiN3puZSt3ZS9mdVpSN2JaTFdRSktrZ0FDL1VnMk0yaGwyU2ljbEswSFdkWEM2SHFpNytTYjBaQk9OaWlYdXhXSXlIRHgvUzA5T0R4K014Ulp4RklrbFNJZnY0d0lFRDlQWDE4Y1VYWC9EeHh4OXovZnAxK3Z2N0dSb2FtdGRHZFRVd2szRHlQY2V1WDcvTysrKy96L3Z2djc5bzhSZnlGZDk3OSs1ZGQ4R1NsWkpPcHhlMGtudVNxYW1weDZ6N1ROWTN3V0NRNzMzdmV3VTc2RXVYTHMyNW5hNWxtSnE0am16eElja3VYTzVXQkVFRzFFVTlmMFhKamlTN1FaQnM1UFBYQzlnY2RZZTh3ZWYrMk9YZWhxYXA2RnJlSVVtMmVQSDQ5NktxaVgrWlRnMDhrR1JidjVwTFRSZmhZNXVZYkVvbVM2QWh6ZlRBVlJVSnphYXMzQUxhSUtmQ1ZCS21rby9mWDBZbVJIeCtPekY4NUR3aENBZEE4UUl1c0xqQjRnRFo5c2oyV1lkNUhkZU1LWk91NTNzQkZ3VGdOS2dwVUdmK2Z6WUoyVVJlQU01TzUvODdsODcvWHM4aUtCazhOcFdRU3lQa0Fwc0M2YXhwQkwyZW1PODU1dmY3MmJwMUsvWDE5YlMydG5MczJER09IejlPTUJoYzFuRlVWV1Z5Y3BKWUxFWTBHbVYwZEpTT2pnN3UzTG5EZ3djUDZPN3VwcWVuaDJnMHVwS1BVMVJjTGhmYnQyL24xVmRmNWVXWFgyYjM3dDNQZEJ5eVdxMVVWbFlXZXErS29raC9mMy9CNmxuVHRJSk50RkdaT1RJeXd0V3JWOW0xYTFkQllGOUk1UEg1ZkRRMU5kSGUzazVIUjhlaW5INVdFNWZMUlgxOVBXMXRiVFExTlMzYnBTa1dpOUhlM3M3OSsvY1pHeHRiTUVZaUNBS1JTSVFkTzNhd2RldldzcmZJZmhKRlVZaEVJdXpaczRmeDhYSHE2dXB3dVZ5RlpPekd4a1lxS2lvV1RMd3dyakVqY1NLZFRpOHBybVJTUGhqT2dFWjh3M0NwZERnY1paMnNMUWdDMld5VzN0NWVIajU4dUt6N3VTQ0Ewd2JWQWZDN1puTFk1ak9RTlhpeTRqY0wwMU13TXFrek5KNFhlKy8wNnR6bzByamVDWjFET3NsVnZtMEtnQ2ptWDBXemYzNEN5MHdQWUpzRnBOS0Z4Z3dMNkhXclU1WTc2L0xFU3JMRDV3c2VQV1oxVkNNc3VlOXUvdW9XQU1VYXd1UGJSekxSZVpJbENzQ0s0Zzc1SzA2K1lyUFhJd2ppQ3EyZkJSQkUxTndVOGNtN3hNYS9aakoybWVSMEIycnU2WmhNT0J6bTFLbFRmT2M3MytIdzRjUFUxdGF1NE5nbXE0VWdDRGlkVHV4Mk82SW9QblBTWkZadG1oUUx3d3BxS1lJRXNPR0ZMMUVVQ3paYWkwM0ttSXRrTXNuZHUzZTVmdjA2alkyTnBnWC9NcW1wcWVITk45OWsvLzc5ZEhWMWNlWEtGVDcrK0dQT256L1AyTmpZbW94Smx1V3lYZ3l0QmhjdVhPRFAvL3pQK2VDREQranQ3VjNTZTZ1cXFtaHVidDUwTnRwVFUxTWtrNHRMVElTOFlEdzlQVTA2blo2elA1Zkora05SRk41NjZ5M2k4VGovN3QvOU8rN2V2VHZuZHBuMEtMR3hyNUJrRjZJZzQzQTFJd2dTdWo2L01aR3g1bEFVSHhaYkJGRzBlWUdZOFh0SmR2ajhvUmRxWmNXTklDamsxMG1Qbm0rQ0lLTllnbGh0VmYrbktGci9mNEFwQUp1WUxCT2I1ZG5iTEJWQkFMdVZuQ1NpV3BXODlWNHBzZHF0ZUVOQlhOVU55SlgxRVBZREN1U2t2TjJ6S005WVBzOE1SSml2cnk4OEpnSkxNeEZKVVFIRlByY2R0SmJKVndDbnB5QVZnOVFFWkNkQmppTmFrL2k5YVdyRFdSNE13VkFzYjJkdHNuNXhPcDBjT25TSWQ5NTVoNzE3OStMeithaW9xRmkyK0p0S3BlanI2Nk96czVQMjluYnUzcjNMdzRjUDZlL3ZaM3g4dk5EYk41MU9GL21UTEIvRENlbkVpUk84OHNvcjdOaXhZMUh6WkVFUWNMbGNORFEwRkN5Z0JVRWdsOHVoYVJxQ0lKQk9wMGttazB4TVRLQ3FLcHFtRlNvLzc5NjlpOHZsS3RoR3owVWtFbUhmdm4zMDlmVXhQajdPOFBCd3NULytzckhaYkRRMU5iRmp4dzZhbTVzSkJBTEwyazhtaytIdTNidDgvZlhYM0x0Mzc1bnpkYnZkVGwxZEhidDI3YUs1dWJuc0xiTG5RcFpsdG16WmdzUGg0SVVYWGlnNEUvcDh2bWRXaFVQK25FMU1UQlFxNkEycmNaUDFoMUVCYkxqZ1dTd1dIQTVINFg1U3ppU1RTWWFHaGhnWUdHQjZldWxMRjFHQWtGZWdJU0lROFFzb2hvbnJzMEtBK3N4MnFrNTBBdTcwd0pVT2pXc2RPdmNIZFBySFlYeEtaMndLbHU0cnUzSkVNZDhxd3lMUHpCZUxLUi9NOUFDMldzQnRCNmMxMzBPNVJBamsrLy9hTUN1QVM4SzZGSUJGMGVLMDJxdit2YXo0MFBVY2dyNzA3NGF1NTVBa0cwNTNDLzdRaTI5N2d3ZGo4Y2s3SCtheThkaXozbXV4K0dyY3ZuMXYrVUxILzdYZFVRKzZocjVNKytkODVhK1FyL3FOWFdGODZGTW1KNjZSVGc0dzE1WGIzTnpNdDc3MUxYN3pOMytUUTRjT3Jic010TTJPMVdwZGRHK0YyZjBaVEV4V2dxcXFoV3pOeFdMMEV0cm91TjF1L0g0L2lxS3NLTXY1enAwN25ENTltaGRlZU1FVWdGZUF5K1dpcGFXRmxwWVd0bTNieG80ZE83aDY5U29YTDE3azBxVkw5UFQwckdyR2NUbjJ3MWt0NHZFNFgzLzlOVC82MFkvNDJjOSt0bVR4VjVJa0dob2EyTFp0MjdvTWxpd1hYZGVYTEFEcnVrNGlrU0FlajVzQzhBWWlFQWp3OXR0dmswNm4rWXUvK0F2T256OC94MVk2NmRRQTQ4T2ZvU2crRkdzUXhlSi9SbkpwZm4wZ0sxNnMxZ29rMmY1WTd3RkJFQkJFK1gvTGI2bnhLRkUyYjh1cTZScTZsa0hYc3VqNTBtQVRFNU5sNGkvQmxFOFF3T3NrazB5VHNWblFSYUZVTlIzNXdHRWtiS2V1SVVTNHRnWWxVQXNPVjE1cEZYTGs3eHM2NkV0TEluM0V6TkJGS1M4a3ovNTNZNDJyWmZOMjBLbFkvcFdkQWltQlRnSm5lSkxLcWhpQjNnUmpVMWxVelV5TVhvK0lva2dvRkdMdjNyMjgrZWFidlBubW16UTJOaTU1UDRZUVpiejYrL3ZwNnVyaTRjT0h0TGUzMDk3ZVRuZDM5NXE2QnkyRXhXS2hxYW1KRjE5OGtaZGVlb2x0MjdZdFNvQXprQ1NwVUFVckNBTHhlSnhVS2xXSUY0VkNJVktwVktGaVU5ZDFrc2trWFYxZDNMcDFpNXFhR253KzM3eHJtMkF3eUo0OWUzajQ4Q0dYTDE4dUd3RllFQVFxS2lyWXQyOGYrL2J0bzdLeWN0a3VYdkY0bk51M2IzUCsvUGxGclczY2JqZFZWVlhVMWRYaDkvdVhkY3h5d09sMDB0emN2S3ozWmpJWnBxYW1pTVZpQlFIWUxGSlpueGdDc0tJb0tJcUN4V0xCWnJPVm5mM3pYQ1FTQ1FZSEJ4a1lHRmlXUmIwb1F0Q2RieThSOHN5NHE4eGVKaGtZZGFnU29FSWlyak02QlFPak9wMkRjS05MNTBwSHZ1SzNiMVFudDhZaFUwbk10L1d3V2txWE1HaVZ3V1VEdTdXa1NZa0NvQUIyVEFHNEpKVC9WVDRIZ2lEYkpNbUJKT1pUYnBmejZNbDd5SXZJbGdDK3dKRTNSVkY1VTVZOS85eG1yL2tzbDV2c3oyV25IbXRBS01sMmw2eTRxeFZyZUtzLy9PSmhiK0RJbjNoOGU1QXRQblF0dTR4UkNJaWlCVjFYU1NWN21JeGRKVGI2T1pOakY4aXBUM3RKdWQxdXRtM2J4bS84eG0vdzNudnZzWFBuem1WOGFwTzF4bUt4TFByaGF0alRidmJxTTVPVmswcWw2T25wV1hRVnBhN3JoYXpoalk1Um9YanAwcVVWQ2NCRFEwTjgrZVdYM0xoeGczQTR2S2tFcjFKUlYxZEhYVjBkTDczMEVwY3ZYK1lYdi9nRlY2NWNZV1JraEtHaEljYkh4NWVWL2JsWVpGa21IQTQvMWx0cnM1Qk1Kdm44ODgvNXdROSt3SzkrOWF0bEI0Q3FxcXJZc21YTHBoTFJjN2tjc1Zoc3laYk8wV2lVZ1lFQmZENmYrZHpmUU5UVTFQQjd2L2Q3V0N3VzB1azAxNjVkZTNvalhTT1Y2Q0k2ZWhhcnZRcHY0QWl5NGtGWDA4eTl2dERSMFpGa0Y0bzFoQ1RaUEkvdkxwZFNzMU4vckdxcC94TUVCRkdaYVVDbElZZ1cwSE5rTW1Pa0V0M3Y2VnJHclA0MU1Wa0JYbWZ4dFZsQkFKK0R1Q0lSZDFwUkphbDBNUnRCRUhCNTdJUXFmUGdDWGhTcmhYemNUWDlrOXl6b0s2c29FWXovRVo3NC96TS9KUUVzWXI3SHNOV2JGNXN0R29JamhTczZTa1ZERDRHSEF5aURVZEpyVVY1anNtSVVSYUd0clkzdmZ2ZTduRHg1a29hR2hpWHZZM0p5a3A2ZUhoNDhlRUI3ZTN1aHIrL1EwQkFURXhNRkMyakQvcmpjVUJTRnhzWkdubi8rZVY1Ly9YVU9IRGl3N0JZcEZvdUZxcW9xZHV6WVVVaU16ZVZ5K0h3K05FMGprOG1RVENiSlpES29xa3BQVHcvWHIxK25wYVdGeHNiR2VlZmxEb2VEclZ1MzB0cmFTakFZNU1HREI4dit2TVVrRUFpd2MrZE9qaDgvem9FREIxWmtGOTdiMjh1Tkd6ZTRmdjA2NCtQakM4WTdIQTRIdGJXMTFOWFZMZnVZNngxZDEwbW4wNFhlMlJNVEU2UlNLVk1BWHFjSWdvQ2lLTmhzTnB4T0p5NlhDN3Zkdmk2S2p1THhPSDE5ZmZUMDlDeExBSlpFQ0xnRmFvTUNRWStBTEROM0JmRE0xQVJWSnpFdGNMdEg1K0o5bll2dE92ZjdkUVpqTUJMVEdaMHNqN1lVOG93OXM4TTZVOVVNeFJ2WXpGVFFvb0REQmphTGdDU1U5Rk5iQUNjbE03UGUzS3hMQVJpWXFicGQ0UzUwSFVHUXNGZ3I4QWFPWWJGVy9QdkVkQWVKNmZZL2NicGJQazJuQm0raTUxS3k0cXYzQlk2KzZ2VHUvUGQyUnoxV2V6VldXeVdTN01yYkdDMXJKUG03U2pvMXlPalFyNGlPZkU0eTNqbG5MMk9QeDhQcnI3L091KysreTRrVEo2aXVybDdoSnpkWks1WWlBSVBaZjlLa09FeE9Ubkx0MmpVR0JnWm0vV3VoU2RkVDIrdTZ2bWtxZ0JzYUd0aTFheGUvK01VdmlNVmlLOXBYWDE4ZnYvemxMNm1wcVdIUG5qM0ZHYUFKTHBlTFk4ZU9zV1hMRmdZR0JoZ1lHT0QrL2Z0ODlkVlhuRHQzanE2dXJwSWMxK3YxRW9sRU5wMEFyS29xbjN6eUNYLzZwMy9LNmRPbmwzMWRPSjFPZ3NFZ1BwK3ZxT01yZDR5RW05SFIwV2R2UEl2QndVRTZPanBvYW1veTNWMDJHSUZBZ0hmZmZSZE4wL2dQLytFL3pHc0hIWis4d2RpUUg0czFnc3U3Zy9tZTAvbktZQUZKZG1HeGhsRXMvdnJadjFmVmRNcnBicjJmaW5kaXQ5Y2l5OTZadmVqb3Vrb3VPMDB5MGYwL2t2SE9jNnFhTHM4eUtST1RkWUtuQkxkclFRQ3JrN2dzTSsyd2taUEYwZ3JBZHJzVmo5ZUIweUVqb2VaNzhXb3pQWHhYakNFZTY0WC9uR2NrSUZ0bmVnMEwrWElXT1l1MzJrVlZnMDQ0a3NSNmI0cnBSSG1LZStzTlJWRUtMWENTeVdUSlJWT2J6Y2FXTFZ0NDRZVVgyTHAxNjZMZVk0aTZVMU5UakkyTk1UdzhURmRYRi9mdjMrZk9uVHQwZEhRd09EaTQ1QlpIYTRFZ0NGUlhWM1BreUJGZWZ2bGw5dS9mdjJKQjBiQW16bVF5akkrUE16WTJWcGcvVGs1T01qNCtqcXFxcUtySytQZzQ3ZTN0OVBiMkxwandMSW9pSG8rSDJ0cGE2dXZydVh2M0x0UFQwMnZTNzFVVVJleDJPMDZuazYxYnQzTGd3QUgyN2R0SGZYMzlzdGRtQXdNRFhMbHloWnMzYnpJME5QVE03MDR3R0tTdHJZM1cxdFpON2ZDVnpXYUp4K05NVEV3d09UbFpWcGJxSmt0REVBUmtXY2JwZE9MeGVIQzczZXNtMXBGSUpCZ1lHS0N2cjI5SlRsc0dnZ0ErSjFRSEJQenVHU3ZqMmRNY28vSlhoM2djK29kMTd2YnBYSG1nY2I1ZDUrSTk2QnN2QjhuM2NTUUo3SmI4U3k2MlBmUE14N1hJNExEazI1NlVPRTlkd3JTQUxobnJVZ0RXOWV4MExqdUptc3RYVndnSXl4U0Q4NVpHZ2lCaHNRU1FaU2MyUnowTzE5WS9jYm0zazA0UGc2NWpzUWF4T1JxeE9lcFJMSDRrMllHQWlLWm4wZldsVFlieVlwNkVybVdabnJ6SitNaG5qQTkvU2pMK2NNN3RHeHNiT1hueUpOLzk3bmM1ZnZ3NEhvOW56dTFNMWdkR3Y0WEZpcnBtRDJDVFlqQTFOVVYvZi8vakM3NzU5VjkwWFNlWHk2M0pZbSsxQ1FhRGhaNDRLeVVlajNQKy9IbWVlKzQ1ZHUzYVpWYnhGUkZGVWFpcHFhR21wb1pzTnN2SXlBajc5Ky9uNVpkZnByT3pzOUQ3cTYrdmo2bXBxVUxHKzBwd3VWeDR2ZDUxWVlsVUxJYUhoL25WcjM3Ri8vZ2YvNFBQUC8rY2lZbUpaZTNINlhSeTdOZ3hkdTNhdGVtU21DWW5KN2x5NVFyMzc5OWYwdnRpc1JpRGc0TmtNaGxUQU42QVJDSVIzbm5uSFVSUjVDLys0aS80OHNzdm41cmZxV3FTeWVnbExOWVFnaWpoZERXRElPZjdBYzh4RnhRRUFZc3RndHQzOEJzMlI5M3RWS0xuc3ZHN2RHcmc2dWpnUjcrWHkwNjk0L2J1K1k3VlZnR0laREpqVEUvY1pHTHMzTjltTXVPbHlaNHhNZGxFS0NXWUlnaDVFN3lVcEpLUVJYS2xmSXdLZ29EVkl1TnlXckRiRlVSUnlJdS9xNzMrRkFERS9JY1hSTkJGa0JRQ1FUZU5qVUZxYW9heDJRWUJNMmRscGNpeWpNL25LL1NDSFJvYVdyUkwxSEl4YkVZWDY1RFUzOS9QblR0M3VIWHJGaDBkSGZUMjlqSTJObGFvOGgwZkgxLzJISFV0Q0lWQ0hEaHdnTmRlZTQyalI0OFNEb2RYdkU5QkVQQjZ2ZFRVMUZCVlZjWGc0R0RCd2N2dGR1UHorUXJDWFR3ZXA3dTdtOEhCd1VYWlkxZFZWUlY2QWQrNmRXdlZ6N1ZoZFYxVlZVVjlmVDE3OXV6aDRNR0RORFkyTHFwZjhsekU0M0d1WGJ2R1o1OTl4dTNidDU4cC9ncUNRRU5EQTBlT0hHSDM3dDJiTmc2cjZ6cXBWSXBZTEZhNDdzcTF5dDdrMlJnVndDNlhDNy9majl2dFhqZE9YYkZZalA3K2ZvYUdocGIxSGJSSUVQUkFUVkRBNnhZUVp2Y0FOdVpaQW1TU2NPT2h6c2VYZGM2M2EzUU13dUM0em5DWlBuSmtLVy9ON0xETkVvQ0xNWVhUS1p3Yml5emdzQW5ZTFRxU0tCVHBBSE1pa2JlQk5nT3BKV0JkUmpVMU5UV1JTdmIrbzJ3MitwOEZVUUVFVUplZitaY1hjUVVFUWNaaURhRW9QcHp1cldocUNoQ1FaUmVpWkoxSlh0WFJ0ZHpNMTMzcHRzK0NhRUZUTThTbjdqRTY5SFBHaHo4bGs1NjdTcVN0clkyMzNucUxiMy83Mnh3OGVIRGRaT2FZek05U0xKMDNrdzJ2U2VuSVpETDA5ZlV0eVk3VTZCbThFa3ZrOVlJc3k0VWV3Q3NsbTgzUzFkVkZaMmNuOFhoODJiWmVKZ3VqS0FyVjFkVlVWMWZ6OHNzdk16MDl6YzJiTi9uNjY2OXBiMjluZEhTVW5wNGVMbDI2dEt6c1VBTWpXTFhjSGxQcmplSGhZWDd5azUvd3AzLzZwM3o5OWRjcmV2YjRmRDdlZXVzdDl1L2ZYOFFScmcrbXBxYTRkdTBhL2YzOVMzNWZMQmJiRklrM201WGEybHErLy8zdjQzQTR5R2F6WEx4NDhhbS9kell6eXRqd0ozbDMxTW8zY0xpMklvcFdORFhENDJucU9ycWV4V0x4NHcrOThIdlp6UGlRb25qN3M5bUpJWUNaVmpZL3NMdWE3aVhqUGUwT1o5Mi9RbEJJSmJyKzk4bm81WjhtRTUxZnJONG5OekhadUNSS29FY0tBbGdsc2xxYWRDcUxwbXFQaFNlTGV5ekFZaEZ4T2hUc05nbEJYS09rTFYwSDFFY0JSejBmM0hXNUpPcHJQRlJWdXJIYjEyWG9xcXd3QXYraFVJakt5c3BDWENLYnpSWXFnWFZkUnhURmdoTlpNVnloVkZVbEdvM1MxOWRIZlgzOVkzUHJkRHBOS3BVaWtVZ3dQVDNOK1BnNGQrL2U1ZnIxNjF5L2ZwMzc5Ky9UMzkrL29qbjlXdUwxZW1scmErT0ZGMTdneUpFajFOWFZGUzA1VWhBRTNHNDNsWldWUkNJUmtza2tpVVFDaThXQzIrMW1hbXFLZUR5T3BtbkVZckZDaTVLOEUrTDhZL0Q3L1J3K2ZKaisvbjU2ZTN0WFZRQVdSUkdYeTBVd0dLUyt2cDdkdTNkeitQQmhkdTdjdVd3Uk5wZkxNVEF3d0tWTGw3aHc0UUtEZzRQUGZJL1Q2YVN4c1pGZHUzWlJWMWUzYVdPeHVxNFRqOGNaR3h0amJHeU1SQ0poeGlmWE1ZWUE3SEE0OEhxOXVGeXVzazkyMTNXZFJDTEI2T2dvWTJOankzb1dpQUs0SFhrQk9PZ0JpeDJZYmVZcTUvOTdjbExuVHBmT0x5L3AvTjE1bmFzUGRSSmxYdkN1elBUbmRkbnlsYnJBekpMeEdjNHJoWlljaXppR2xLLyt0Y3I1YzFsQ0JQTGlyM21US1FIbGZhWFBnNnFtVTFaSDVJdDBzaDlkeXlLSTFpTHNOYit1RW1aRVdsR3lnT3pPLzVzd0k5anBLZ2pNWk93dlhmeWRlVE9wUkRjamczOUhkUGhUTXBtNXN5MjNiTm5DSC96QkgvRE9PKzlRVzF1N2JySnlUQlpHRk1VbENjQzVYTTZjWUptc2lNN09UaTVldk1qazVPVGp2MWdnczE5VlZWS3AxS1lRZ0NIZjM2ZFlFOS9oNFdFZVBIaEFiMjh2MjdkdjMzVFZqMnVCeStYaTBLRkRiTjI2bFhnOFRqYWI1WXN2dnVEZi9KdC93NTA3ZDVhOVgxbVdzVnF0bTZLU2UzeDhuTC8rNjcvbVAvMm4vOFQxNjlkWC9OengrWHpzM2J1WFNDUlNwQkd1SDFLcDFMSjZKbytQankvYjBzcGsvV0MzMjNubm5YY0ErSS8vOFQ5eTRjS0ZwN2JKcEFZWkh6NE51azVGOWR2WVhWdG1mdk40eHJXdXFRaWlCWWVyRVgvbytML01aY2Y3RmRuMVo5bmNkQ0d6TkRuOThKeGk4ZlhFSlBzUEJFQlZreFBaVEt5dmhCL1J4R1JUMFR0YS9Db0lRUUI3SERXYklUTTZxYXVaRWpyY0NvS0EzU2JqY1Z0d09KVjhQMTU5aFQxL1Y0cE8zbjVhRkJFZFZpSVJKNUVLSjI3WDVoUmdpb0VnQ0hnOEhnS0JBTUZna0ZBb1JDQVFRQlRGUXJYbytQZzQwOVBUYUpwV0VINHptUXlKUkdMRlBUOFRpUVI5ZlgzY3VYT0grdnA2NnV2ckMvL2UzOTlQZjM4LzNkM2QzTDkvbjg3T3prSzE2dkR3TU9QajQrdldFYzF1dDdOanh3NU9uanpKOGVQSGFXeHNMSHBpcWMxbW83S3lrcnE2T2lZbko0bEdvOGl5ak4xdWYweTBUS2ZUVEV4TU1ENCtUaWFUd1dxZFA0YnE5WHJaczJjUDNkM2RYTGh3Z1o2ZW5xS09lU0VjRGdlUlNLUlEvZHZTMHNLT0hUdW9yNjlmVnZXdnBta01EUTF4N2RvMXJsNjl5c09IRDU5cFlXeTFXcW10cmFXNXVabTZ1cnBsVngxdkJGUlZMVlJlam95TUxLcUMzS1I4RVVXeGtBams4L2x3T3AxbEx3Qm5NaGtHQmdibzdlMWRkbXNxbXdLVmZvR0lUOER0RUFxQ0x6cDV1VkdFVEZMblJxZk9CK2MwZm5WWjUzWlArWXUvQUZaWndPY1U4THNFYkFxekV1bUtzUE9aZmNoeTNtTGFvcFRjQWhyeVZjRGwvYVZjcDZ6Yms1cE5qM2RNeGE3OTM1MnViZjl2bDY4TlViS2hxV2xXOWkzWEgxazY2MGJ2VlIxTlcyNmYzMGNJZ2d4Nmp1bkpPNHdOZlVSMDlNeWM0cThnQ0R6Ly9QUDh2Yi8zOTNqbm5YY0trMk9UallIWjA5ZGt0Ymx6NXc1bno1NTlXZ0JlQUVFUWtDUnAwMVErRnZPenB0TnBidDI2eGVYTGw2bXZyOGZwZEJabHZ5WUxJMGtTd1dDdzBFOUxVUlErLy96emdxM3VjakNxSHpZNk4yN2M0TWMvL2pFLy9lbFB1WHo1OHJQZnNBaU1BT05tRU0rZlpMbTlzV0t4R0xkdTNXSmtaSVRhMnRvU2pNeWtYUEQ1Zkh6em05L0VZckh3RjMveEY1dzVjK2FwNnBwMGNvRHg0YzhBZ1dEa0pBNVhDNkprbjdHRG5wV2dvV3VJb2dXWHJ3MVZqZjhmdWN6a3NDVGJmNkxta3RQR0pqT0NyeW42bXBpVWdJZER4ZCtuQUxoczVGSlpza05SdEZSSkJXQ3dXaVZjVGdYRkp1Y0Y0T3dhQzhBd3F5cEh4T0ZVOEhsdCtMdzJGRmtrbXpPVG81ZUMzVzRuSEE1VFYxZEhYVjBkMWRYVmVMMWViRFlib2lnV0t2ekd4OGVabkp4RVZWV3kyU3hqWTJQMDkvY3pNREN3NHVTMFZDcEZiMjh2Rnk5ZXhPdjFNajA5amRQcEpCYUwwZFhWeGIxNzk3aHg0d1pYcjE2bG82T2pLQldub2lnV1dtOFpWY3lybVZndnl6S1ZsWlVjT0hDQTQ4ZVAwOXJhV2hJaFVSUkZBb0VBTlRVMTlQWDFGZjZta2lROUpld2tFb2xDQmQxQ0FyREZZcUd5c3BJZE8zYXdlL2R1ZW50N0dSd2NMUG41a3lRSnA5TkpNQmlrcnE2T3JWdTNzbVhMRmlvcks1ZmRIaVdaVEhMbnpoM09uRGxEZTNzNzA5UFR6M3hQS0JSaS8vNzl0TFcxNGZQNWxuWGNqVUkybXlVYWpUSTBOR1E2RlcwQVp2Y0E5dmw4ZUR5ZXNvLzVwVklwZW5wNjZPN3VabXBxYXNudkZ3UncyYUVtQ0NHUGtLK1NOZVlZTTZHS1RBYjZ4K0ZpdTg3SFYzVXVQZEJSMThsVVE1RjFQSFlkcjAzREtnSHFUUHhLbTJtcE1XZVZyNTVQdENzVU53b3ovVWVZK1NrOCtzbXNDdURWRVlBVndMUlNMQUhyVmdEVzFHek9ab3Y4ZEZSeStVSDdYNXplTmlUUkRtZ3pJdTVDZGU1NndjNTUvdTJLMTN0VkVHUkFJNVVhWUh6b1kwWUhQeUtUSG5scU8xRVVPWGp3SUgvNGgzL0k5LzcvN1AxbmJGenBudVlKL3M0NTRiMWowSHZLVURibGxVcWp6SHZ6K292cTJTbzBacnFCbXBsRmJ6ZG0wRjkyZ1FGbWdjRXVGaGhnc1B0dGdVVUR2YjBvZEtGdVQvZXQ2N0t1VFNPVGtqTGxMU1ZLbEtHM1FVYVE0ZDJKWS9aRE1DSWxwUXhKa1F5U09qOGdVaWt4SXM0YndZaHozdmQ5L3YvbithLy82N2U2MG15cnNsd0JlRG1XMFFZR3o2TnBHaE1URXd3T0RpNnJXdE5rTXVIMWV0K3FITXJWL0o0OWV2U0lyNy8rbXZmZmY5OFFnR3VFMysvbjVNbVRQSHo0Y01VQ3NDQUlXL3I4bTgvbkdSZ1k0TmUvL2pWLzkzZC9SelQ2M1huSlNyQmFyVFExTlMwNTUyMHJrY3ZsR0I4Zlg1RUFYQ2dVZVBEZ0FhZFBuNmErdnA2bXBxWTFHS0hCUnFHdXJvNS8rUy8vSlg2L0g0dkZ3dW5UcDcrenFWRXNUQk9MZkk2cXBBazIvZ2lYZXhlU3lRbW82SG81dEVyWHkvOXZNbnR4K3c2Z2xOTC91NDcyMzBpUzdjK3FXbmo5THFlQmdjRWJNUkpabXc1Z2g0V2lyRktZVGVoS1FWNWJOZFppRm5FNHpHVnZQNDJ5NjFtdEJXRDQxcTFJRlBHNHJUU0VYZmg5Tm1JTGVUUnRJd3h3WXlPS0lzRmdrUGIyZHJadDI4Yk9uVHZwN3U2bXJhME5sOHRWTFhRVVJSRkZVY2puOHhTTFJUUk5ZMkZoZ2I2K1BxNWN1Y0xDd3NLcWpHZCtmcDQ3ZCs0Z3l6SURBd1A0L1g0QW90RW9RME5EREF3TThPVEpreVVKZEsvRDRYQlV1OXNFUVVDV1piTFpMT2wwZXQwNkdFT2hFSHYyN09IUW9VUDA5dlpXWCs5cUl3Z0NMcGVMK3ZwNlBCNVBWZlI5dnBCVjA3U3EwSjlPcC9GNFBLOWQ1M1IzZC9QUlJ4K1JUQ1k1Zi83OHFxMFZYb1RGWXNIajhSQU1CcW1ycTZPN3U1djkrL2UvMFh1bjZ6cVRrNU5jdlhxVjgrZlBNem82K2xvUlc1SWt0bTNieGtjZmZjU2hRNGZlK2tpblhDNUhQQjRuRm91UlNxVU1kOEpOamlpS1dDd1d2RjR2b1ZBSW44KzM0VHVBTTVsTU5XWnRPVTB0RlNRUkFtNW9DVUhJczVpVFcva1lTNEFDOHdtZCs2TTZkNFoxaGlPYlIveUZzdTJ6eHdrZVIza2FWNTQ3aVNDYXlqZkI5SzI0QzRCV251ZXBDbWlsOG5zaDZPWEhDUUxvd3JlYWNTVUQyQXd1dTREREtpQ0phejcvc2dGMWEzMlF0NUdOL1UxL0RZWEM3R09ycmU0L2FucXBGTlRrLzRmYnV3OUpzbGZrM1c4WERjOTRtei8zcytmczFGWWZBVUdVa0F0ekpPWXZrVmk0K2tMeEYyRC8vdjM4ai8vai84aC85Vi85VjRiNGExQmRrTDBOSFdnR2EwTXFsV0poWVdGWitiOVE3cDU4MndUZzFmeWV4V0l4YnR5NHdlam9xT0hpVUNPY1RpZmJ0MjkvSXhITlpESmhOcHUzcEFpY3krVTRmLzQ4di8zdGJ6bDE2dFNxYnVpRVFpRmFXMXZmU2dGNGZIeWMrL2Z2cjNqek1oS0o4Qi8vNDMvRTcvZnozLy8zLy8yR1g1QWJ2RGtmZi93eFVNNm4rK3Fycjc3ejJTbkpDOHpQblVkUjgraE5DbTd2WGtUUmhpQUlUeFdxNnFDcFdLMUJBdUVQRVVUeGx6cjZmeU5LbHQ5cnFteDQ5UmtZckNIRGF5QUFBOWpNcUNXTjBzeUNydWJsdGNzQU5wa0V6QllKczFrcTc1THEyc1lRZnl2b0dtZ2FUb2VaeG5vWDRaQ0RaS3BJVVRhNjBGNUdKUmUycmEyTjdkdTMwOXZiUzA5UER6MDlQYlMwdE5EWTJQaks3aytBbVprWkNvVUNqeDQ5d21LeElFblNHM2YreWJKTUpCSkJsbVdHaDRkeHVWelliRFp5dVJ5UlNJU1ptWmszamg4U0JJRmdNRWhMU3d0TlRVMEVBZ0dnTENETXpjMHhPenZMd3NJQ3VWd09XWmJYekZyYVpETFIwZEhCMGFOSDJiTm5UM1VjYTRYSlpNTGxjdUYydTNFNEhOWDR1T2RmWHk2WEk1RklrRTZuVVZYMXRXdWNRQ0RBa1NOSFNDYVRSQ0tSRmJ2Y3ZBNUJFSEE2bmRUWDE5UGEya3AzZHpjN2QrNWt4NDRkTkRZMnJyaERjWHA2bWhzM2JuRDU4bVVlUFhyMDJqMFJRUkFJQkFMczJyV0xnd2NQMHQ3ZXZ1RzdJOWNTWGRlcnVkenhlTnl3Zjk3a1ZGd1JyRlpyMWZyZjZYUnUrTDJPZERyTjJOZ1lZMk5qSzFwalN3S0UzTkFhMEFrNkZVUmRnQkpsNFhPeFl6YTJBQVBqT3FNUktHeXlGRHl6U2NUdHNlSUpXREI1eldWRjJHUUczUVNpWlZFRWZrNEExaFJRUytXYlZpb0x3dHFpTUt3cGkrS3dVdFhOSkpPQTJ5YmdzSlduaW11SXdMY0NzSkVGdk1wcytwMmxZaUU2WkxFRy83NVVTa1J5NlNjZnUzMTcvMnVyclJISlpLZmF6NDllcnBUWFZYUmRYeFRXYklpU0hVR1V5dFh6MnVwN0s1V3pnMFUwdFVndU8wd2lkcGw4YnZRNzkzTzczYnozM252OHkzLzVML254ajMvODF0dU1iR1YwZmVtZDVicXVJOHN5aXFLczhhZ010aUthcGpFek0wTWtFbG0yQUN4SkVqYWI3YTNKSGwvdElndE4weGdiRytQQ2hRdTB0YlhSMGRHeHFzOXY4SG9xbVdadlVzUWdpaUltazJuTEZlRWtFZ25PbnovUEwzN3hDNzcrK3VzVjVkVytDb2ZEZ2R2dGZpczNUQ1ltSmhnWUdGaVJQUldVYzdZR0JnYjR5MS8rUW05dkw0Y1BIMzd0SnEzQjVzWm1zL0hoaHgrV2N6anRkazZkT2tVOEhuL21QcXFTSWpsL0ZWMlRVZVFFbnNCQkxKWVFnbWhDMThwelJGMVhFUVFSaXpXTU4zQWNSVTc5VWk3TTdnZnUxdUJsR1JpOE5UeWNXQnNCeVd4Q1V6WFUyUVRrMW5BejBtcVJzRnBNbUUwdnN3bXNNWm9HQ0hqY0ZwcWEzTlRYT3htZlNoa0M4Q3NRUlpIVzFsWSsvdmhqM24zM1hiWnQyMFlnRUNBUUNDeDVmbGE1YnlWSDFtdzJyNHIxcTZJb1pMTlpjcmtjdXE2amFScUZRb0YwT2swMm02VlVlck05dVlhR0J2YnMyY091WGJ2bzZPZ2dHQXhXTzVySHhzWVlIeDluZW5xYXViazVZckVZMld4MlRUb2F2VjR2TzNmdTVOaXhZL1QwOUt4TFVhVFZhc1huOHhFSUJLcEM5OVA3VHJxdWs4dmxxbGJmaXFLOGRxMXZzVmhvYjIvbnlKRWpqSTZPa2t3bUdSZ1lXTlg5S1ZFVThYZzgxTmZYMDluWnlhNWR1emh3NEFCNzkrNTlJL0UzbVV4eTdkbzF2dmppQzI3ZnZyMmsvUkN2MTFzdG1taHJhM3NyMXpKUEk4dHl0ZnQzWVdIaGpiK2ZCcldsc3NmbmREcHh1OTI0WEs1TjhSbFBKQktNam80eU1qS3lvaUlFU1lLd1g2Q2pRYURlcDJNUzlYTCtMNEFBdXFhVHpzTE1Bc1NTSUcreWo3bkZac1VYcnNmZkZrSnE4b0JvQThrQ1NFOTEvejQ5djlNcGk4QVZzVmNHcFFpbFBDZzVLS2Fna0lKU0Z0Uml1VHZZSk9LeWc4TzY1Z0l3bEMyZ1BaU0Y0TnlhSCswdFl0TUx3QUJ5Y1g0TStQOWFiS0hUdWV4UXY4dTk0MzgxV1h3SWdybmNEYXhyaXlLdmpLNnJpSUlaazltTDJSckFiQWxndHZnUkpYdjFmcXVIaUk1S0xqMUlJbnFSYlByeFlrN3h0emlkVGs2ZVBNbi84RC84RC96c1p6OWJ4V01iYkVTV2t6MVRXUkM5YVNXc3dkdEpxVlJpYW1xS3ljbkpGZVUyYlhYNzIrZFo3UXJ3VkNyRitmUG4yYnQzTCszdDdWdE9STnpvckVZQnpWYk1iSitabWVIczJiUDg1amUvNGRTcFU4c3VEbmtkZ2lEZzgva0loOE52cFhBNU9UbkpvMGVQM3JoQy90YXRXL3ppRjc4Z2tVaXdlL2R1ekdZem1xYmhjcm5XekVMUW9IWTRuVTUrL09NZkl3Z0MrWHllVTZkT2ZlY3pwQ3BwNHRFTHFFb0dYUy9oRFozQVlnbVZzNTBXSTIwMFRRRVVyTFl3M3NCUjhybnh2ekZiZlBPTEdjQUdCZ1pyd05ES1VpWmVpeVNDcGtNMnY3YmRLRGFiQ1l0RlFoUTM2SHhITGMvUHZWNGI3YTBlbWhyZDJPMHhVbWxqZmZ3cUhBNEg0WENZbnA0ZWR1L2V2V3gzT1ZtVzBUU3RtaU83R2lMQjAvUHFVcWxFTnBzbG04MlN6K2VYUFY4M21VelZkYW9vaXRoc05wcWFtcXFXeTd0MjdhS3BxUW1QeDRPcXFzVGpjVnBhV21ob2FPRHg0OGM0SEE0a1NWb1RXMXV6MlV4Yld4dTdkdTFpKy9idGE5NzlXNkZTL0JvTUJuRzVYQWlDOEl4b3IrczYrWHllVkNwRkxwZGI4bXUyMld4MGRIVHcvdnZ2VXlxVk1Kdk4xWnptTjEwL1YyS25tcHViNmU3dVp0ZXVYYnp6emp2czJiUG5qZHlFOHZrOER4NDg0Tnk1YzF5NmRJbXBxZGRQZ3dSQm9MVzFsWGZmZlpkZHUzWVpNVTVBTnBzbEdvMFNqVVpKcDlPRy9mTW14MncyNDNBNDhIZzhPSjNPRGI5VzEzV2RVcWxFTkJwbGVucWErZm41RloxemJGWVQ5ZlV1MnJxYytKb0ZSTE1NcUdWaDFLeWpheG9sVWFhZ3lzaXE4cTJqN0NaQUVNRGhkdUp0Yk1iVjFvRVFEb0JxQmRGY3RuSkdLQXU0TDBLbnZJYlVTcURrUWM2QW5JWjhBdkp4S0NUS0lyQmVCS3VNM2FKZ015bnJZUUV0QVJZTUFYalYyUklDY0FXNUVCc3ltVjMvUGgyLy9UdFJzbmtFMFZLK2F1dWFvdXVxcW10eUZuUlZFQzBPeWVTcU0xc0NyWFpYMTcvekJZN2k4dXhDRksyc2xpVzBJRWpvYU1pRktQSFlOOHpQbmFVa1AxdlJYeEYvLzgyLytUZDg3M3ZmZStOakdteDhGRVZaOHNTcFVoVzdWdFpFQmx1YmZEN1A4UEF3TXpNekszcjgyNVEvclduYXFsUzFQMDJ4V09USmt5Y01EZzZTeVdUZSt2eWc5VWFXWmFMUktNbGtjc1hQSVlyaWxyTGhIeDhmNXhlLytBVi8rTU1mR0JnWVdIWHhGOHJualo2ZUh2YnYzLy9XZmViajhUaVBIajFpZUhqNGphL2JrNU9UZlBycHB6eDgrSkE5ZS9iZ2REb3BGQXIwOXZieXlTZWYwTlhWOWRhY245OG1Qdnp3UTJLeEdLT2pvOXk3ZCsrRjk4a2s3d0Vpb3NtSjEzOEl5ZVJldElOV3FheGZCRVRzem5icUduNzRmMWRMcVJqdy8xbTNGMkZnOEpZeFBiODI2elJCUU5SMVJGVURlUTNOb0d4V0V4YnpVd0x3UmxwMjZqcW9HZ2pnRDlqcDZmTFQzdXJENlhnN0hJcFdpcTdyek03TzB0ZlhSM3Q3TzExZFhTdUtGek9ielZpdFZrd20wNnJzUjZpcVdyVmVsbVdaWEM2M0lqdGhRUkR3ZUR4NHZWNU1KaE51dDV2T3pzNnFjTmpWMVVVNEhNYmxjbUcxV3RFMGpmcjZlcHFhbXA1eDJwTWtDYlBaaktJb3E1STdET1cxUTFOVEUzdjM3bVhuenAyRXcrRlZlZDZsSUVrU0xwY0xuOCtIM1c1SDEvVVhDc0NaVEdaWkFqQkFNQmprMEtGRCtIdyttcHFhdUhMbEN0ZXVYVnVTc1BxcXNmcjlmaG9hR3VqcDZXSGZ2bjNzMjdlUDdkdTMwOURRc09KSVBGbVc2ZS92NS9UcDAxeTZkSW14c2JFbFBjN2xjckY3OTI0Ky92aGplbnQ3My9wSVBsVlZXVmhZWUhKeWt0blpXWEk1UTRmWjdOaHNOcnhlTDRGQUFJL0hzK0hkL2txbEVqTXpNNHlQanhPTHhWWjhIZkw2SERSMXRkR3lweFY3bXhYa0FwUktJR2hnVnNGV1JQZkUwUzB4ZERFRmJKNENNNnRWd3VkMzR3dlhZd3MxZ2NzRmVSWUxoSisrNTlOL2VXNXZTOWZBWkFPekEyeGVzQWZMM2NCeVp2RVdCekdHT2IyQXhaekZ2RDRDc0kxeUo3REJLcktsQkdBQXBaU0pBYkdsM0ZlU3JMWmNadWh5TVQvejQ1SWMvOSs4L2tPWUxINTA3YzIvOElKb1JpMGxTU2Z2a1l4Zi8wN3ViME5EQTU5ODhnbi80bC84Q3o3NDRJTzNmb0x4dHFBb3lwS0ZKa0VRVnEzaTF1RHRvMko3dE5SRno5TUlndkJXZmU0cXhSYXJ6ZHpjSE9QajQwU2owV29sdHNINlVLbjhYc25uZnl0eS8vNTkvdkNIUC9DZi8vTi81c0dEQjJ0MkhJdkZRbGRYRjd0MzczNnI4bXZUNlRTblRwM2kwcVZMcStMYW9hb3FjM056UktOUkJnWUdzRnF0bEVvbFdsdGJ1WG56Sm8yTmpkV2N0UHI2ZXZ4K1AzVjFkVVozOENiSGJyZnovdnZ2YyszYU5lYm41NW1lbnY3T2ZUU3RSQ1o1SDBteUlpRGlEUjVGRWgyVUk1TEtDM0pkVjVBa0p5N1BMdHorZHo2eTJadk95OFc1QjVwbVpJb1lHS3cyMmJXTFJKUUE2K0tmYXpLQkZFVUJoOE9NMWJwQk80QjFxaDNBRG8rTmxpWVBqUTB1SFBhM1ozNnhFalJOWTNKeWtrS2hnTlBwcEtPamd4TW5UaXhyYlNlS0luYTdIWWZEZ2Nsa1dwVkMyVktwVkJWYWw3TW44andta3dtZnowZDdlenQxZFhXMHRMVHd6anZ2VkROYm5VN25kOVpjRlh0a1ZWVkpwVkpWSzl0U3FVUXltYVJZTEtJb3loc0wzV2F6bWU3dWJnNGZQa3huWitlNkNpeWlLRlpqV0N3V3kzY0VZQ2huQUZlNm5wZnpXaVZKb3FXbGhicTZPc0xoTUhWMWRkaHNObTdkdWtVMEdpV1h5eTNKL2FiU3JlM3orV2hvYUtDOXZaMzI5bmEyYmR2R25qMTcyTDU5TytGd2VNVkZqcklzTXpJeXd2bno1emw3OWl5RGc0Tkw2aTYzV3ExVnkrNERCdzdRMk5pNG91TnZKVlJWSlJhTE1UWTJSaVFTTWV5Zk56bUNJRlFGNEdBd2lNZmoyZkQ3ZmJsY2pxR2hJWWFIaDBtbFVzdCt2RUE1NXFLNTBVdGpSd3UrOWgwSXpTN0lGc3ZXS3FJQ1pnM01XU1QvTkZhUGh0bGFSQkJLYkt4cXVCY2pDT0J4V2ZBSFhUaTlIZ1NidlN6OGF2THloeThBa3JWc0hXMXhsNSs4MmhrOEQ4d2lGV2V3ZTJleE81S0lRZ2x0N2Q0aWtXODdnQTFXa2JkNjlxeXF4UUp3V3pMWm5xaWxkTlJrY3YzL1BMNTNRS2lzczFZaUNBamxMNHV1VWN4UGs1eS9TajQ3L3N3OXpHWXpKMCtlNUYvLzYzL05oeDkrK09ZdnhHRFRVQ3FWbHJ5NEVBUUJzOW04NFMvTUJoc1BWVlVaSHgvbjVzMmJLOHIzRkVWeHcxdkNyRFpyMFdtZnorY1pHQmpnM3IxN05EWTJHb1UrNjBnMEdsMXhBVVNGNVdTMmIxU3kyU3dEQXdQODlyZS81ZE5QUCtYeDQ4ZHJlanhCRUppYm0rUEpreWZzMkxFRGw4dTFwc2ZiS016TnpmSDczLytlTzNmdXJPcno2cnIrekRrOEVvbHcvZnAxQUpxYm0rbnQ3YVdqbzRQR3hrWTZPenZwN2UybHBhV0ZRQ0R3bmZ6cnlrWmdwYlA5ZFJTTFJWUlZ4V3ExR3ZPUWRhUyt2cDYvK3F1L1lteHNqRC85NlU4djNDRFh0RHpKaFd1SUppZG1pdytuYXdlaVpFUFhLM25BR29LZ0kwcDJITTZ1djNaNmR2eDFhVDdoQnhMcisyb01EQXplQUNmZ3Bpd0Nyd2xXcXdtMzI0ckRZUzRMd0xxK2FDbS9nZEIwRUFXd21QRDViUVQ4TnB4MlM2MUh0ZUhSTkkyNXVUa0dCd2NaSEJ5a3U3dWJjRGk4NU9LOGlnRHNjcm13V0N5clVpaXJhUnF5TEwvUjNOcGtNbFU3Ujl2YjI5bTNieCs3ZHUxaXg0NGR0TFMwdlBiMU5UUTBzSFBuVG1SWkpwMU9FNDFHOGZ2OVZTSDRUWXY0N0hZNzNkM2RIRGh3Z05iVzFuVXRocXo4enR4dU56YWJiZEVkNU5uM09wbE1Nam82eXRUVUZQbDhIby9IczZ4aldLMVd0bS9manRWcXBhNnVqb01IRDNMLy9uMEdCZ1lZSFIwbEZvdTljTjVpTXBsd09CeTRYQzZDd1NETnpjMTBkbmF5ZmZ0MnVydTdhVzl2cDZtcGlXQXd1T0tDYVZWVkdSNGU1cHR2dnVIOCtmUGN1M2VQUkNLeHBNZHUzNzZkVHo3NWhIZmZmWmY2K3ZvVkhYK3JvU2dLYzNOempJeU1HQUx3RmtDU0pPeDJlN1ZvMk92MWJ2Z080SFE2emREUUVFTkRRMHYrTGorTlpCS3ByM2ZSMCsybnFkbVB6ZVVHd1FsV0sxQUNVUU9yQ0NVSFprOFJtenVPeFI1SGxISlFXbDEzd0xYQVpKTHcrKzBFZ3c3c0RndUlpK3YxWmMvbGhMTDhKUWhsTFV3UXk4SEpXTUZxQTRjTkxIN1FnemdhSExpOWc1aE5jWXByZDBvd1VaNERHNXVucTh4YkxRQlhVSlZDeG1JTmZaV00zOFJpRFdKM2RvSWdvcTlnb2lzSUlqcFFMRVJJeCsrUVR2V2psSjYxb055MmJSdC8vZGQvemZIangxZnBGUmhzRm9yRm9qRjVNbGh6SXBISWlzVmZNUEovVjVPN2QrL3kxVmRmY2Zqd1lacWJtOWZzT0FiZlVpd1d1WC8vUG5mdTNGbFJ0V2lGU21iN1poV0I1K2ZuK2ZycnIvbjFyMy9OdVhQbm1KbVpXZlBYVWlnVStPeXp6OGpsY3Z5emYvYlBPSG55NUxyYTM5V0t1Yms1N3QrL1R6cWRYcmRqVGsxTkVZdkZ1SEhqQmxhckZiL2ZUM2QzTjN2MjdPSGRkOS9sL2ZmZkp4Z01WdStmeldhUlpSbTMyNzJrODNzaWtTQ2J6ZExRMFBBZE1kbGc3YkRaYkx6NzdydGN2MzZkeTVjdnYvUTZybWtsMG9rN1dLMTFtTTErN000T2RMMnlhYXFqNnhvSUFoWnJIWFpIRytsNG54ZERBRFl3MkV3NEFROWxDN3cxYWMrMVdpUWNkak5XcTJsamRnQS9qU0JnTWtzNEhSWThIaXVTS0tDdVlmdkpWaUdaVERJMU5jWE16QXcrbjIvSmdtVEZpY3hzTmlPSzRxck1IMWZqT1d3MkcvWDE5WFIwZE5EYjIxdk4rMTJxY0dpMzIybHJheU9aVERJK1BvN1g2eVVVQ3FHcUt2bDgvbzBFWUVFUThQdjl0TFcxMGRuWmlkZnJYZkZ6cmZUNEZvc0ZtODJHeFdKNTRWd3ZsOHN4TVRIQmd3Y1A2T3ZyNDlDaFE5aHNOaHdPeDVLRlYwbVM2T3pzcEtXbGhVT0hEbkhyMWkydVhidEdmMzgvMDlQVEpCS0phdXhacGFIQjZYUlc4NGtiR2hwb2JXMmxvNk9Eam80T1dscGFDSVZDYjFSOHJta2EwOVBUWExseWhWT25UdEhYMThmOC9QeHJIeWVLSXVGd21HUEhqdkhKSjUrd2MrZk90Mm9QNUZVb2lrSXNGbU5pWW9KNFBHN2svMjV5TEJZTExwZUxVQ2hFWFYwZEhvOW53N3QxTFN3c01EZzR5TWpJeUlxaXEweVNTRnVMbDEwN1F6VFYyeEYwQmRRQ0tHclo5aGdCRUJFa0N4YTdBNGZianQxdVJSSkZZT01Md0ZhTFJEQmdKK0N6WXpXTDVjZ01FVjdiL2lzcy9xY3EraTcrS1M0Mk02S0RycFNmVDlYUmRBdXFhS09rbThsSmFVeldLY3hTZ21KcHplWmdac3J6WHpmbFYyU2NmRmFKamYyTlgwZVVVbUlzRmIvMVYwNzM5ai9ZbmQwSWdnbWQ1VHFsQ1lDRXJ1VkpKL3FZbnp1TG5JL3c5QmZ3Z3c4KzRHLy85bTg1ZWZJa0ZvdFJ2ZnEyb1NqS2tteG9LbXhXNGNHZ3Rnd01ESEQrL1BrVlZjcEJ1Vk05SG8rVHlXUndPQnpHUXVnTm1KdWI0OWF0VzBRaUVVTUFYaWVlUEhuQ1YxOTl4Y1RFeEJ1ZFF6ZHpEbnMwR3VXTEw3N2dsNy84SlJjdlhsenh1V0M1cUtySzVPUWtmL3pqSDVtZW51YkpreWQ4K09HSDdOMjdkOTAzd3RhTFFxSEE5UFQwR3hVYnJKUmlzVmpOejV1ZG5XVndjSkI3OSs1eCsvWnR6cDA3UjJ0cksrM3Q3WFIyZG1JeW1iQllMTmp0OWlWVmZNL1B6N093c0lEZjd6Y0U0SFhHNFhDd1k4Y091cnE2aU1makx5MGNsSXRSMHFrQmZLSDNzRG5ibnZ0cCtkd2xTallrc3h0QnREalhmdVFHQmdhcmlBMXdzSWI3TlpJRWtpUWdTUnRjL0FXZzNBbnNkSm9KQlIzNGZUWVdFZ1UwUXdSK0pmbDhubGdzeHZ6OFBMSXNML2w2cm1rYWlxS3Ntalh5YXVIeGVPanE2dUxRb1VNY1BYcVUzdDVlUXFIUXNwN0Q3WFpYTTRIbjUrZFJGSVZDb2NEczdPeUt4eVVJQWk2WGkrYm1aaG9iRzUvSkdsNVBLcm5ORm9zRlNaSytJK3JxdWs0OEh1ZkdqUnRJa3NTVEowL1l0bTBidTNmdlh0WTZ0U0kyTnpZMmN2VG9VVUtoRVB2MjdTTWVqNVBMNWFwN1hwWFBqc1Zpd2VGdzRQUDVDSVZDaEVJaEFvRUFmcjhmajhmenhuc05sZUwzcjc3NmlxdFhyekl6TTdPa3g0WERZUTRlUE1pSkV5ZllzMmZQbGwycnJJUjhQcy9Dd2dKemMzTkcvdThXd0dhejRmZjdxYSt2Snh3TzQzYTdhejJrVjZLcUt0Rm9sS0doSVNZbUpsYVVGMjh5Q2JRMHU5bTVQVWh6ZzZ2Y0lGdFN5czRpdWw2VmFRUlJ4R0kxNDNSWXNkc3RTTkxtMlB1MDJVd0UvQTRDUGh0V2kxUitYWnErQlB0bm9TeXJpZ0tJSWtqQ3QvL1BvZ0JjTEZITXlhUXpNcG1jUnFha014OUo4M2dzVHlxbmZ5c1VyejRDWlFIWVMxa0VOckdaUXBrM09JWUF2SWltS1lyWjdMbVd6NHorUnlXUStqK2F6VDZxSC80bElnZ2l1cTVRTE15U2l0OG1sYnk3V0ZsU3htNTM4T01mLzVoLzlhLytsU0dvdktVc3h3TGF3R0FseUxMTWd3Y1B1SDM3OW9vbjY2bFVpblBuemxFb0ZBaUZRb1REWVp4T0oxYXJ0V3JmWkxOdHJVaUd0ZnBPNnJyTzJOZ1lkKzdjWWR1MmJjdTIyakpZSHZsOG5rdVhMbkh1M0xrVlZZcHVkbVJaWm1ob2lBc1hMdkRiMy82VzgrZlByMG9tN1hKSnBWSjg5ZFZYREE0Tzh2RGhRMzc0d3g5eTRNQUIydHJhTnZ5Q2M3a3NMQ3d3T2pwYWsvZjVlUlJGWVh4OG5QSHhjYjc4OGt0OFBoOTc5dXpoblhmZW9hMnRqZDdlM3RmYTBldTZUamFicldiRXJVYnVuOEh5TVp2TkwrM2dxYUxyS0tVVW1wWXZkL3krRUJHUUVBVFJXUE1aR0d3dVRKUTN3ZFo0MDJBemlMK1U5MVIwSFkvTFFuT1RtNlpHTjVtY1RLRmdYS05laGFJbzVISzVxZ3ZJVWxGVmxYUTZYWFVEMlFoN0YzYTduZmIyZGc0ZVBNang0OGZadTNjdmdVQmdSYy9sOVhwcGJXMGxsVXFSeStXWW01dkRZckc4MERaNUtZaWlTSDE5UFR0MzdxU3BxYWxtZTMyU0pHRTJtekdaVEMvdDZGVVVoWWNQSHhLSlJMaDM3eDZIRHg4bUhvOXo2TkFoUXFFUU5wdHRXZXY4dXJvNi9INC8rL2Z2UjFYVmFnR3RMTXNVaThXcTdiZkpaS3AyRzFmaVJkNzBmZEoxbldnMHlvMGJOemh6NWd6WHJsMWpmSHg4U2I5RHA5UEo3dDI3K2Y3M3Y4K0JBd2RXL0ZuYWlxaXF5dHpjSExPenN5U1RTYVA3ZHd2Z2NEZ0loVUxVMTlmajkvczNmTnhiUEI1blltS0N5Y2xKRW9uRWlzN0xEb2VacGtZM25lMCtBa0VIb2lTQ3VpaVNzaWlVTG9yQkZwT0l3MjdDWnBVMnZpUEtJZzY3aWJxZ2cxRFFnZDF1b3Z5YUtxcjI0bjlFRnJ0OGhXZW5lNW9PaW9hcXFDaXFocXBvS0pxT3B1dVVpZ3J4UkpGb0xNdEN2RUE4WG1BaFdXUjZKczNEeHpGbW8zbFVmVTNmbzRvQTdHTE41OEJ2RjhabXdGT1VTcW5aWVAzMzd1WXlRN2c4dTVBa0c1cTJWTHRlQVVHUVVKUWsyZlFqY3JuUlo4UmZnRkFvU0RnY05zVGZ0eGhabGltVlNrdk9BQlpGY2NVNUtBWnZKOVBUMDlVTW5wVXlQei9QcjM3MUswNmZQazB3V0Q1dk9Sd092RjR2bloyZDdObXpoKzNidDFlRjRjM09XaTlxWXJFWXAwNmRvcWVuaDVNblQ2N3BzZDVtU3FVU3QyL2Y1dXV2ditieDQ4ZHZMRndKZ2xDOWJRWVVSZUhTcFV2ODZsZS80c3laTTB4TVROUmNsSnlZbU9EM3YvODlmWDE5dlBQT08vem9Sei9peHovKzhaYmFaSm1abVdGNGVIaERWc2NuRWdtdVhyM0tnd2NQMkxseko1SWtjZlRvMFZjK1JsRVVvdEVvMFdoMDAzYkFiM1owWFdkNGVKakJ3Y0hYeDRib0ZSdXpsL3llQkJBMmk4QmpZR0R3TkJMbHZabzErd0lMZ29na0NvaVZ1WTYrbE02UldxQ1hOMjExOEhsc3RMZDVhR24yTURHVk1nVGcxNkRyT3FWU2lWS3B0S3oxanFJb3BGSXA1dWZueVdReUcySXVFQTZIMmI5L1ArKy8vMzdWOW5tbHVOMXVtcHViaWNmalRFMU5ZYlZhc2R2dDJPMTJDb1hDc3RlR1pyT1o5dloyOXUvZlQyZG5aODJ5TlNWSmVxYjc5MlcvdDRxOWJ5cVZJcDFPTXpNenc2MWJ0K2pzN0dUbnpwMzA5dll1S3d2WFpETFZ4RTQyRm90eCsvWnRUcDA2eGZuejV4a2JHMXZTWjlWdXQ5UFoyY254NDhmNTRJTVBxazQ1QnQ5MlhnNE9Eakk1T1VrbWs2bjFrQXhXQWFmVFNWMWRIYUZRQ0pmTFZldmh2Sko4UHMvbzZDaURnNFBFWXJFVlhYOGtTU0FVZE5EVTZLSSs3RUowV1VGV1FkR2V6Y2RkWEVPWnpRSjJ1d21iMWJSSlhGSEE2VFRUV08raXNkNkZ5MkVwdjY2cUs0cFE3dXlWUkRBdC9sbHBjRlEwOUt4TU1sVmtmajVQZEQ3SC9FS09lS0pJTWwwa2xTb1NUeFNJSi9Ka01qTFpUSWxNVmlhZUtyQVFMNUJJRkNncGF6b25rQ2pIb0RneEJPQlZ4YmpLUFVjaE4zNDdrM3FJemRHR3llUUVGSmE4RWhKRVZDVkxQanVDWElnKyt5TkJ3TzhQYkxtdU9ZT2xvMmthbVV5R1FxR3dJUlpSQmx1UFVxbFVyWlFyRkFvcmZoNUZVWmlkbmExYVlkbHNOa3dtRTNhN25mcjZldHJiMjJsdWJzYm44K0Z5dVdob2FHRDc5dTIwdExUZ2RydHhPQnlieWpwNnJRWGdmRDdQdlh2M2VQejRNZSsrKzY1aC83OEdxS3JLblR0MytQdS8vM3N1WHJ6NFJwLy96Y2pJeUFobnpwemh6My8rTTFldVhDRVNpZFI2U0ZWU3FSUjM3OTVsYkd5TTBkRlJidDY4eWZIanh6bDY5Q2p0N2UyMUh0NGJFNC9IbVo2ZTNyQ2Z1VktweE1MQ0F0UFQwK1J5dVNYTlB3cUZBZ3NMQ3dDYnBnQmlxNUJJSlBqcXE2LzQ4NS8vVENRU2VlMzFTUlROSUZRMG9oZjhiblVkWFZmUmRXMjV1VFlHQmdhMVpjMEZZRkVVcXJjTmpVNVpBQWE4ZmhzOVhRRTYyK2ZwZnpCSFBMRXhyNzBiaGFmalRKYXovL0IwQi9CUzV3NXJTU2dVWXMrZVBSdy9mcHo5Ky9jVERvZmY2UG1zVml2QllKQlFLRlR0U0hXNVhPVHplUlJGV1hZQnBkVnFwYjI5bmQyN2Q5UFUxRlF6TVZFVXhlcXhLem04cjBLV1pSNC9mc3o0K0RoZmYvMDFQVDA5bkRoeGdtUXl5YUZEaHdpSHd4dDIzVG8vUDgrZE8zYzRjK1lNRnk1Y1lHQmdZRWxSYTZJbzB0N2V6bnZ2dmNlNzc3N0x6cDA3dDV3NzBadWdxaXJqNCtQMDkvY3pOamEyWWRjM0JrdEhFQVFjRGdmQllCQy8zMS96NzdTdTY4aXlUQzZYUTVabEpFbkM1WEpoTnBzUkJJRklKRUpmWHg4REF3TXJqbGp5ZVcxMHRmdG9iWFRqZGxrV0JWRDFXZkgzS2N3bUVadlZoR1VUZFFBN0hSWWFHMXcwTnJpd081OHFPcExFOHN4UjA5SGtFcXFtb2FnNm1xSlJLQ3Brc2lVU3lRS3pjMWttcDlLTVR5U1puRTR4RThrd0c4MFNUeFJJWjJTS1JSVk4weGR2R21yMS8yR05xd1Vsd0VvNUNtVnpiQ2h2RWd3QitEbmtZdlJoUGp1S3F1UkFXUDVuVFZWekZBc3pLS1hFTS84dVNSSk9wMlBEV3kwWXJCMktvcERKWkpiVkpXUjBBQnNzaDF3dXg5MjdkeGtjSEZ4VjI4N0t4RCtUeVJDTlJ1bnY3Ni8rVEpJa09qbzZPSHIwS0R0MjdDQVVDdUgzKzZtcnF5TVlET0oydTdIYjdiamQ3ZzJicTdQY1RaR1ZQSDgwR21WcWFvcEVJdkhHbXhZR3o1TEw1ZWpyNitQWHYvNDFuMzc2NlJ0MXZ6L1BSaTlpbUorZnI0cS8vL0FQLzhDREJ3OXFQYVNYa2t3bXVYRGhBaGN1WE9ERWlSUDgxVi85RlVlUEhxV2pvNFA2K3ZwTm16TTdPenZMMk5qWTZ6czFhMHpGdXY5MW4ybEprdkI0UENTVFNRWUhCd21Idyt6ZHV4ZFJGTEZZTERpZFRweE9wOUVwc1FiSXNzeU5HemY0RC8vaFAzRGh3b1hYYnR3S29nV3JyUUhKNUVaQVF1ZnBqYyt5SUt5cFJWUTFoNjRyeXcvUE1qQXdxQ1VXeWpaNGE3b1FmTjRWY0VPaVUrN2FBZHdCQnp1MkJ4bDRQSS9MdFRHRnFZM0dTdFk1dXE1VExCYVhiUjI5RmxpdFZuYnYzczNISDMvTWtTTkhxSyt2WDVYOUViZmJYUzFtZGpxZHVOMXU4dms4NlhSNjJhL1o2WFRTMU5SRVIwZEh6Y1ZFUVJCUVZiWHFQUGM2VkZVbG04MlN6V1pKcFZMazgza2lrUWhEUTBNY1BYcVVvMGVQMWx3d2VwNW9ORXBmWHg5ZmZQRUY1ODZkNDhtVEowc1Nmd0VDZ1FCSGpoemhKei81Q2Z2MjdhdjU3MnVqb2FvcVUxTlRQSHIwaU1uSnlRMi92akY0UGJxdTQzUTZxL3QwdGY0K3A5TnBwcWFtbUo2ZUpwMU9ZemFicTdGekZvdUZ3Y0ZCYnQyNnhZTUhEMWJVZ1c0Mmk3UTJlOWpkVzBkYmkrZmJmTndYWFFjWC84bHNFckhaSkt3V0VYR1Q3TC9iYlNiQ2RRN3E2aHhJTmxQNU5Vb0NtRVJRTmVSY2llbEltc2hjbGxnc3gwSThUMncreDBLaVNEWXJrMGdXaU0zbmljYXl6TS9uV1Vqa1NTYUxxRnJObTlVRXluTmdDNFlBdktvWXV6ZlBvU2paK1pJYy83ZWFKdis3cFMrSEt2ZlRVZFVzY21FT1ZYazJlN0N5Y1dac21MMjlhSnBHTHBkYmNvQzlJQWlya28xaThQWXdOemZIK2ZQbmVmanc0Ym9kVTFWVmhvYUdtSnViNDZ1dnZxcm1CTmZWMVJFSUJQQjRQSVREWVhidjNzM1JvMGZwNnVwNks1MFFGaFlXR0I0ZVptSmlnbUF3aUNSSnRSN1NsaUNYeTNIMjdGbCs4NXZmY09iTW1WVVhmemV5QmZUazVDU2Zmdm9wcDArZnByKy9uK0hoNFZvUGFjbGN1M2FOaVlrSnZ2amlDL2J2MzgvSmt5ZjUvdmUvditrMllXWm1adWpyNjF2V3hsT3RNSnZOV0szVzE4NHBSRkdrcnE0T1ZWV3IxNU8ydGpac05odDFkWFZzMjdhdG1uRVhEQWEzUkF6QVJxRy92NTkvK3FkLzR2cjE2MHZxdUxBNVduSDU5bUd4MWkxYVBVSmxKME1RUk5BMWxGS1NVakdLcHNtR2g1K0J3ZVppelFWZ2dXK2o0VFk4cWdhaWdOVnRwYlhGUzB1VEc1ZHpZNGxTR3hHVHlZVEQ0Y0J1dHk5ckgwclhkUlJGb1ZRcXJXcFI4VXFvcjYvbjJMRmpuRHg1a3U3dTdsV2JsNXZOWmx3dUZ6NmZqMEFnUUR3ZUo1dk5MbnUvVGhBRUFvRkFOUXUzMXV1R1N2NXVvVkJZdG5nbnl6SVBIanhnWkdTRUJ3OGVNRHM3aTlWcVpjK2VQVlZyNlZxaTZ6cno4L1BjdW5XTE0yZk9jT3JVS1I0K2ZMaGt3ZDd2OTNQbzBDRys5NzN2OGY3NzcrUHorZFoyd0p1UVlySEk3T3dzbzZPanpNL1AxN3o3MytETmtTUUp0OXROT0J6RzUvUFZWSk1vbFVyTXpNeHc5KzVkSGo1OFNEd2V4MncyVTE5Zlg5MG52SC8vUHYzOS9ZeVBqNitvQTkxaE43TzlKOENCZlEwMHQzZ1FKQUVVOVNsNzVFVjB5cUt3SUdDeFNyaGNGaHoyeldNQjdYSmE4UGxzdUQwMnNFaFFLS0VYVkVwRmhmbUZQQk5UU1I0K251ZkowQUtqNDBrbXA5Tk1UYWVJSjRybGpsNVZSMUcwOGswdC8zMkRJRktlL3hvQzhDcGpxSkhQb1d1SzRxOTdUNFpsV29JS29Pc3FxcEpIS2FWNHZpVytVbmxwWEVEZlhsUlZKWi9QTDFrQUZrVVJzOWxzRkEwWUxJbE1Kc09EQncvbzcrOG5uOCt2Ky9IVDZUVHBkTHI2OTRHQkFheFdLMWFyRlkvSFExdGJHK2ZQbjZlK3ZwNkdoZ1o2ZTN2cDd1N0c3L2ZqY3JscTdJNGdzTmI5RDZxcTh2anhZKzdldmN2MjdkczNuZEMxRVptYW11TGN1WFA4NmxlLzR2TGx5MFNqMGRjL2FKblVlaFBuUldTeldXN2R1c1hwMDZmNTR4Ly95UDM3OTJ2ZW5iRmNGRVZoWW1LQ2lZa0pIajE2eFAzNzk3bHk1UXBIang3bCtQSGpORFUxVmUrYnorY1JCR0hERlk1RW8xSCs0Ui8rZ1MrLy9ISlQ1R001blU3OGZ2K1NjdWtzRmdzTkRRMllUQ2F1WExuQ2pSczNzRmdzZUwxZW1wcWFhR2xwcVJiNFZBcCtPanM3NmV6c0pCUUs0WGE3RGNlYlpUSTlQYzNubjMvT1o1OTlWclhmZmhXQ0lPRjA3OERyUDR6RkVrRFhuMXUzQ0NJZ0ljc3g4dG14LzRPbUZaSnJNM0lEQTRNMVlrMHRvQVVCUkVuQVpCSVJwVVhIcVkyOFRiRTROa0dVTURuTnVCYzNhZzFlamNQaHFLNjk3SGI3a2g5WHlRNldaYm1tQlc0K240K2VuaDcyN3QzTDl1M2JWMzF1WWJQWjhQdjloRUloRmhZV1dGaFlXSmJJS1FoQ05RNHBHQXh1aUxtUHJ1dW9xb3FpS0N2NjNWVXlvKy9ldllzZ0NCU0xSWTRkTzhidTNidlp2bjE3VGVmak16TXoxY3pmYjc3NWhzZVBIeTk1RFJRSUJIajMzWGY1K2M5L3p2SGp4OThvUTNvcms4dmxtSnViWTJabXBpWjdTZ2FyajhWaXdlZnpVVjlmajlmcnJkbitScWxVcXVhdUR3ME44ZVRKRStibjU1RWtpVWdrd3Z6OGZMVURlR3hzYk1XZlA1ZlRRbmRuZ0QyNzZ3alVlMEFVb2ZRUysyZE5Cd0hzRGdzQnZ4MnYxNGJKdFBFMVI0ZkRqTWRqeGVXeUlEak1JRXJvaXN4Y05NdlFjSnkrL2xrZVBZNHhQcGxtYWliRjdGeVcySHllYkc1VGRQU0xmTnNCYkxDS0dMUG01ekNaWGFGQStJTTZVVENoTDFVRVhqeUJxa29lUlU2Z3F0ODlVVlVtMGJXdW9EU29IWnFtVVNnVWxqeEpGUVFCczlsYzgwcExnODNCME5BUVo4K2VyZWIyYmdTS3hTTEZZcEZVS3NYazVDU1hMbDBDeWpsT0owNmM0TUNCQXpRMU5SRU9od21GUW9SQ0lUd2VEejZmYjlQYXdiNks0ZUZoTGwrK3pQZSs5ejFEQUg0RGlzVWlvNk9qZlBIRkYvejJ0Ny9seXBVcmF5S0FiclR1MzJLeHlOallHTGR2MytaUGYvb1RaODZjWVdabXB0YkRlbU9tcDZlWm5wN205T25UZlBEQkI0eVBqM1AwNkZIYTJ0cndlRHlJb2tpaFVDQ2RUdVB6K1pZa1lLNDFzaXh6NTg0ZC90Ti8ray9QV09KdlpQeCtQdzBORFV2ZW5HeHBhV0hIamgwTURRMVZyUUhqOFRpam82UGZ1Vzl6Y3pQdnZQTU8rL2J0bzdXMXRiclpYRG1uZTczZVpXMDh2MjNNemMzeGw3LzhoVC8vK2M5TDZ1UVhCQkc3c3gyM2R4OTJaeWVpYUVYVFpMNVZiOHIyejRxU29aQ2IrRStGM01SdFRaV05FRGNEZzgyRnhCcDNQa2lpZ01rc0lrbkN4dThDcm81UEIxWEhaSkp3dTZ4WUxSSkYyZGhmZVJtVkl0eVdscFpscmEwcUhjQ3lMTmRzLzhwcXRkTFYxY1dSSTBmbzZlbFprN1ZUcGJpdFV0UzJGS2VVcDVFa2lmcjZlam83TzZtcnE5c1F6bTNsemk0VlZWWGZxUGxFMHpRZVBIakE1T1FrQXdNRC9QQ0hQMFNXWmJadjM0N1Q2VnpYUFNwTjA0aEVJbHk5ZXBXelo4OXk1c3daaG9lSGw5eFk0ZlA1T0hqd0lELy8rYy81MmM5K1JrTkR3eHFQZUhPaUtBb3pNek5FSWhIaThialJ2TFJGY0xsY0JJTkI2dXJxYXJySGxzMW1tWmlZWUhCd2tOSFJVYWFucDBtbFV1aTZ6c0xDQXRGb0ZFRVFtSnViSTVGSXJPZ1lBaEN1YzlIUjVxV3QxWXZkYTROaUNVb3YwbmIwY3QrZkFGYUhtV0RBanRkanhXeXUvWG44ZFFUOWRrSkJCdzY3ZVRIZkdCS0pBbmY3WnpuMzlUZ1hMbzd4ZUhDQlFsRkZsbFhrVWpuUGQ1TWdZSFFBcndtR0FQd2Naa3VveDJadis5OUV5UWF2eWQ2cVVMRlprd3V6NUxMRGFPcDNNMTQxVFRNRTRMY2NWVlVwRm90THR1SVJCQUdUeVdRSXdBYXZwVmdzY3YzNmRjNmVQYnZpeWRKNkVvdkZPSDM2Tk5ldVhjUGhjT0R6K2FxNUgyMXRiUnc3ZG96ang0K3ZXMVp1dVhOcTdTZEU4L1B6M0x4NWs1R1JFZHJiMjlmOGVGdVJYQzdIMWF0WCtjMXZmc1BwMDZjWkhSMWRzKzVYVVJTUkpHbERpTUN5TFBQTk45L3d1OS85am9zWEx6SXlNa0lxbFZxRlovNDJ3cUxXNkxyTzVjdVhHUjhmWjhlT0hlemJ0NDhQUC95UXc0Y1BFNHZGbUorZlo5KytmZmo5L2xvUGxjbkpTYTVldmNyMDlIU3RoN0prYkRZYkRvZGp5WE1LazhtRXhXSlowbWJtMU5RVUN3c0xYTDkrSFp2TlJqQVlKQndPRXc2SHE1dTNodzRkTWpiY1hrQXFsZUtiYjc3aEY3LzRCVGR2M2x6U1kwd21MNzdndTdoOWV4RWxDK1hkaTIrL3c2SW9vU281Y3BsQnNwa25kMlI1WVd4dFJtOWdZTENHQ0t6VHh0Y0dtT1lzSFYwRFRjZG1sUWdGN2ZoOU5xTHp1WTFrWGZoQ0pFbENrcVNxTUxkZVZEcUFnOEhnc29YTlNnUEQ2L0xvMXdxMzI4MitmZnY0NElNUGFHOXZYNVA1dU1sa3d1bDBWaDFOekdienNvNWpOcHRwYm01bSsvYnRORFkyYm9oOUcxVlZxOTNiYnlyZ0ZZdEZvdEVvbHk5ZlJsWFY2bHk4dTd1YmpvNE82dXJxVm1uVUw2ZFVLdkg0OFdOdTNyekorZlBudVg3OStyS2lWL3grUDhlT0hlT25QLzBwSjArZXBMVzFkWTFIdkRsUkZJVklKTUxqeDQrWm5KdzB1biszQ0tJbzR2RjQ4UHY5dU4zdW11NXJwRklwUmtaR2VQandJWThmUDJaaVlvSkNvWUN1NndpQ1VNMG16dVZ5Sy9yOFNhSkFJR0NucThOSGM1TWJ0OU1DWXJrb0ZwMFgrNmtzV2tBTFZnbVgwNExkYmtiYUFJVThyOEptTTFGZjU2QSs3RmgwUXRIUkNpcmpFMG0rdmpUQnFhK0c2WDhRSlYvWTJQRlVyMENnckZVYUF2QXFZd2pBejJHMTFXK3pPenVSVEU3UWx6STVGeEFFQ1UwcmtVa05rRnE0OXAzOFh5aHZiTXF5dk93Y0RvT3RnNlpwNVBQNVpYY0FHeGJRQnE5QzEzV21wcWJvNit0amNIQ3dab3YwNVpMTDVjamx2aTJXRVVVUnA5TkpNQmprNXMyYm5EbHpoczdPVHJadDIwWnZieS8xOWZWcmxqVzVYdFd0bXFZeE5qYkcrZlBuYVd0cm82dXJhMTJPdTFXSVJDS2NQMytlVHovOWxIUG56cTE1dDd2RllzRnV0OWUwbXI5WUxOTFgxOGU1YytlNGVQRWlWNjllWGRYWFhWa0VQcDBkV2t0S3BSS2pvNk9NajQvejRNRURuang1d3ZEd01DYVRDWmZMeGE1ZHUybzlSS0FzZUE0TURHd3E2KzFFSXNIczdDeXlMQzlwWHBITDVVaWxVa3ZlcU03bjg5WEYrdmo0ZVBXY1hsOWZ6OVdyVitucDZhR2hvWUdtcGlhMmJkdEdjM016RG9jRGk4V0MxV3JGWnJOdGlNNlo5ZWJKa3lmOC92ZS81L3IxNjB2dVpERmJRemk5ZTdEWm05QjE3VGxITXdGQk5LTVVvcVRpdDhpbEgxOVlrNEViR0Jpc05SSnJtRStpNjZDam8ydjZ0M09BbFI3dDZjZXQ1VlJDcDJ6WHFJUFhZNld0eFV0cnM0ZDBWaWFiM1poN0xKVk43WXI3UnJGWVhGY0J1Skp6dTF6YjNtS3hXSFV1cTFVWFlGdGJHNGNQSCtidzRjTnJadGRyTnB0eE9CelZPS0xsRm41YUxKYXFZMHA5ZmYyR0VJQkxwUkxGWW5GVjU2anBkSnByMTY0eFBqN092WHYzT0hqd0lPKzk5eDU3OXV5aHZyNGVVUlJYWFZpcVdGay9mUGlRMDZkUGMvNzhlVzdkdXNYYzNOeVN4VitYeThXK2ZmdjQyYzkreGs5LytsTmFXbHBXZFl4YkNVVlJHQmtaNGM2ZE80eU5qUm43MWxzRWw4dEZjM016OWZYMU5YVmpLcFZLeEdJeFJrWkdlUFRvRVVORFE4ek56VDBUazJreW1SQkZzZXBpc0Z3c1ZvbWVUai83OTRacGFuU1g1eWFhV3JWNS9nNVZVVmdBVWNSaWxyQ1lKYVFOYmdIdGRscG9iSERUMU9ERzRUQkRVU1U5bjJQZ1VZeXJONmE0OXlCS1lmT0t2MkIwQUs4WmhyTDBIQlpydU12bWFFWTAyZEhMcWVCTGVKU0FwcFhJWjBmSnBCNis4REdHQmJSQnFWUmlZV0hobVp6VVZ5RkpFbGFyZFVQWVhScHNYQXFGQWhjdlh1VE9uVHNVQ3B2WDRWSFR0R3FPY01YZU54Z01jdVRJRVU2Y09FRlBUdzg5UFQxMGQzY1RDQVJXL2RqcnRibVJUcWU1Y09FQysvZnZOd1RnSlpMTDVYajgrREVYTDE3azAwOC81WnR2dmxteVVQSW1WQVRnV216bVpMTlpKaWNuZWZEZ0FaOS8vam0vKzkzdmlNVmk2ejZPV3FGcEdoTVRFOHpPenZMa3lSTWFHaHA0OTkxMytlRVBmMWpyb1FIbERMTEJ3Y0YxK1J5dUZ1UGo0eng2OUlnUFAveHdTZlpmaVVTQzhmSHhGVzhnUG4xT0h4d2NCTW9icmQzZDNSdzVjb1R0MjdkWHJhRzlYaTkrdngrbjA0bkZZa0dTSkVSUnhHUXlWYU13S3B1TG9paGlOcHV4V0N5WXplWVgvbnd6b09zNmtVaUV6ejc3alBQbnp5KzUwbDBRSkN5Mk9peldPa1NUQTExOThRYWRVb3FUVFQzOHQ4Vjg1TjVxanR2QXdHQmRXZE5XSFFIZVRMUXBQOEZpaHczbExSQmRyNmpMYThOaW9hdmZaNk9ueTA5WHA1L3hxZFNHRTRBbFNjTGhjRlN2YTdxdVV5Z1UxbDFVcVZ4TGw0cXU2K1J5T1dablo1bWZuNjlKRjZEWmJLYXBxWWtEQnc1VUJjYTFQSmJUNmF3S3dNc1ZNaTBXQy9YMTlYUjBkT0R6K1dydUdxU3FLcklzcjRsMWQyVk9GNHZGV0ZoWUlKdk5Fb2xFYUc5dkp4QUlWRzl2S2pKbE1obm01K2VabVpsaFptYUd2cjQrTGw2OHlMMTc5NVpWQk90eXVUaDQ4Q0EvL3ZHUCtlaWpqN2JNdWx0VlZWS3BGTmxzRmxtV0VVVVJ1OTJPdytIQVpyT3RlTy9RYXJVeVBUM04vZnYzbVo2ZTNqUk5CUWF2Smh3T3MzUG5Uam83TzJ0bS82enJPcGxNaHJtNU9hYW1wcGllbmlZV2kzMW5qYWtvU2pXQ2F5VjdjemFyeE03dFFZNGNhS1N4eFlPT2dDQy9KUHYzZVFRQnMxbkVZaW1Md0JzWmw4dE1ZNzJMcGdZWFRydVpRa1ptYWlMSm95ZnpqSXdsTjd2NEM4OEt3SnZKbzJiRFl3akFUMkd4aHJyclcvNjZ5MndKSWdwbWRHMkpreVpkUjljVk5LM0FxMVk3NjIzNTg3WlE2YXlWSkduWjFhM3JpU3pMek03T0x0bWlWeFJGckZhcjBRRnM4RXJHeDhmNTA1Lyt4SzFidDJvOWxGVm5mbjZlYytmTzBkZlhSeUFRWU9mT25mejBwei9sbi8yemY3YXFsZUJ2bXBHMEhHUlpabVJraE5IUlViTFo3SnAxTlc4Vk1wa01aOCtlNWRlLy9qV1hMMTltYW1wcTNVUTNpOFdDeldaYmR3RTRFb253elRmZjhNVVhYM0R6NWszR3hzWllXRmhZazJPVjdjOFhyWkUySUxJczgrREJBNGFIaDlGMW5iLzVtNy9aRURiQ0ZURjFxUjBJRzRIWjJWa0dCd2RKcDlOTE9uOU9URXd3TWpLeXFodEFwVktKaHc4Zk1qMDlqZFBwck1aY2VEd2VBb0hBQ3dYZ3luMHFsdXcybXcyLzMwOG9GQ0lRQ0ZRdHpTcU9LUTZIQTYvWHUrR3o1R094R1AvNGovL0liMy83V3lZbUpwYjhPSlBaZzlYV2lNbnNRVUJDcDBUMSt5dUlvT3VvU2c1WmpsRXF4a1kxemNqK05URFlwSWlzNGNhWFVCRnZoWW9JTEN4OUtyRDR1Q3JQNThxSkwzaXVwNTFHVmpybDBIVlFOZEIxZkQ0YjI3b0RkSGY2dWRVWFlYYnV1dzVzdGNKc051UHorV2hxYXFLaG9RRkprcXFDVmlhVFdmZnhMR2VOVTltb241eWNKQnFOUHVQV3RGNjQzZTVxaDJsSFI4ZWFIcXN5YjNBNm5WWGhiRG52bDlsc3h1LzNFdzZIcS9hbHRhUllMSkxMNWRhMGN6c2VqM1AvL24xeXVSeERRME8wdGJYUjF0Ykd0bTNiNk83dXByVzFGWS9IczZ6bjFIV2RmRDVQTkJwbFptYUdvYUVoK3Z2N3VYZnZIb09EZzB4UFR5L3J1K04wT3RtN2R5OC8rdEdQK1BHUGY4eTJiZHVXK3pJM0pLcXFFbzFHR1I4ZnI3NG5KcE1Kbjg5SE1CakU1L1BoZERxeDIrMll6ZVpsN1NWR0loRkdSa1lZSGg0MjhuKzNDQ2FUaWRiV1Z0NTU1eDE2ZW5wcTFnR2N6K2VabnA1bWZIeWNtWmtaRW9uRVN3dU1uKzRJWGk1MWRWNTZ0NGZaMDF0SHFONkpvQUdLVms3S2VSblZRd21ZVEJKMm13bW5ZMk0zWURrZEZ1ckRUaHJxWFRnY1pySVptWW1wRkZNekdYTDVqVlVNdDBKRXl1S3ZBNk1EZUZVeGxLV25jTGk2VHpoY25mK3RaSEt5MUEzUmNwR2ZocTRycjcyL3FxcEdKZFVxTXowOVRYOS9QN2xjamgwN2R0RGIyN3ZreDQ2T2pwSktwZWpvNkZqMkpIVWxxS3BLTnB0ZFZwZW1LSXFicHB2RllQMFpHeHZqczg4KzQ4cVZLelZab0s4SGhVS2hXZ0U4TWpMQ3pNd01Dd3NML1BTblAzMmxIZXpUNTF1VHlmVEtpdXoxWHVETXpjMHhOamJHM053Y0hSMGROYThXMzZnOGV2U0lQLy81ejN6NTVaZGN2WHAxWGZPdG42Nm1YaThCT0JhTGNlL2VQUzVjdU1EWFgzL05uVHQzbUorZlg0Y2piK3dGZm1WVGFHQmdnSysvL3BwUUtGUlRDN2RrTWtra0VpR1pUTlpzRENzaG5VNHpNRERBOFBEd0t6ZFVpOFVpbHk1ZDR1TEZpMnUyVVoxS3BWNllZVjNwNXExVWYxZm1RRS8vM1dLeDRISzU4SGc4dUZ3dVhDNFhkcnU5S2hSYnJkYnFacTdUNmFTNXVabWVuaDdhMnRyd2VyM1ZEb2xhb21rYWc0T0RmUDc1NS9UMzl5OXJiV0MyQkxIWld6QkpEcjc3M1MyTE1vcWNRUzVFVVpSTWRGVUhibUJnc0o0c3FySnJoNjdwcUdyNXR1U3BzQ1NDUlFTelZENEZGUlgwb29LbTZXWGJSS3NKTEUrNVYrc2FxSHBaSkg3NnR0SXU0Y1dzWDd2SFJsdUhqL1kyTHk1bjdZVzNDbmE3SFovUFIzTnpNN3QyN1dMSGpoMW9tc2JBd0FDcFZHcmQzVnhXc3BtdUtBcVpUS2JhWWJqZStIdys5dTdkeStIRGh3bUZRbXQ2TEVFUXNObHNXQ3lXcXZYb3NxN0pabk4xdmJBUktCUUtaTE5aaXNYaW11NDdKcE5KSGoxNlZCVU4yOXJhaUVRaVJDSVJPam82Q0FRQzJHdzJiRGJiTTkycG9paWlLRW8xNHpPVHlSQ1B4MGtrRWlTVFNXS3hHTE96czR5TmpmSG8wU01lUDM3OHd2bmlxd2lGUXJ6enpqdDg3M3ZmNDN2Zit4Njl2YjFWQy9iTlRLRlFZR0ZoZ2FHaEllN2Z2OC9RMEJEeGVMeGFoQkFNQnZGNnZkWFBzeVJKMWJueDAxU2N6eXJuaGNwbmZuNStudXZYcnpNN08yczBMVzBSS200S3ZiMjlORFkyMXF5eEtKbE1Nanc4ekpNblQ1aWNuQ1NWU3EzcS9wc2ttZkQ3dld6dmFhR251NEg2ZWhjbXV3bHlTblhPOEhwMFJGSEFiamZoOFZpeDIwd2JOa1BYWmpNUkNqb0loeHlZYlNia1pJRkVxa2cySzIvMGJaM2xZQWFzR0FMd3FtSUl3SXM0M04zdmh4cCs5Qk83c3hOQk1DM05KZ0FBWVRFL3A0VCttc3pnWXJGb1pDbXNFaFZyd1MrLy9KTFBQLys4dWhHNEhBSDQ1czJiREE0TzhzLy8rVDlmRndGWUVJUnFGOHR5SG1PSVF3WXZRbEVVTGwyNnhHOS8rMXNpa1VpdGg3TXU1SEk1TGwyNnhOemNITmxzbHIvOTI3K2xyYTN0TzVQWllyRklMQmJEWkRJUkNvVmUreDFhVHd0b0tOdjc5dmYzMDlmWFIyTmpZODNGaUkxR05Ccmx5Wk1uZlA3NTUvemlGNzlnZEhSMDNjZFFXVXo3L2Y0MUZZQjFYV2RtWm9hSmlRbnUzcjNMcVZPbitQcnJyOSthNy9SeVNDUVMvUEdQZjZTOXZmMkZBckN1NjJTeldlTHhPS1ZTcVpvcHZwcUxYVlZWNmUvdloyUmtaTldlYzcxUVZaWEJ3VUgrL09jLzQzQTQyTDE3TjI2Mys1bjdwRklwYnR5NHdkLzkzZDl4K2ZMbGRSOWpxVlJhMVhteUtJcDBkM2R6K1BCaGR1M2FSVGdjSmhnTUVncUZxbUx3MDUzRFRxZHpYYzdIVTFOVFhMaHdnWWNQSHk2N2k5eHFiOExoN2tFeU9VRlhlWHFsTHl5dVNaUlNnbUkrZ3FwazVsWjU2QVlHQnV1SHRIaGJFM1FkRkZWSEtXbW82dUk4K0hWTFRvR3llRnZTb0tRaDUwckVFM2xTS1JsRlZiRmJUWGk4TnR3dUsyYUw5SzJFL2FJcGRxV0x1UHF6SlhZSGErWFFQc2xob2E3ZVJYM1lXYzdBcXpFV2l3V3YxMHRqWXlNTkRRMTBkSFJVTFl6eitUeUZRb0VuVDU1c2lzTHVTdjZpb2lqcjduUml0OXZwNnVxaXQ3ZVhycTZ1ZFJGV0sySlp4VDU1T2VLWDNXNnZaZ2ZYR2szVEtCUUtaRElaY3JuY212L3U4dms4eFdLUmJEWkxNcGxrZm42ZTBkRlJ3dUV3ZnI4Zmo4ZUR6K2VydXJWNHZWNGtTYUpRS0JDUHg0bkg0OHpOelRFNk9zcjQrRGdMQ3d2a2NqbHl1UnpKWkpKRUlrRTJ1N3pPL2xBb3hPSERoL241ejMvTzk3Ly9mZHJhMnJhRStBdmxRczZob1NGdTM3N043ZHUzR1JvYUlwbE1WdTNtM1c0M1ZxdTFhcDliMmR0NCt1KzZybGNGMzhyL1Yxd3FzOWtzMDlQVG02N0ExZURsZUwxZW1wcWFhRzF0eGVWeTFXUU1zaXdUaVVSNC9QZ3hqeDQ5WW5KeWtuUTZ2YXA3YnphYmxlM2Iyamh5YUFjZEhmV1lyYVp5WElTKzFDS1liNk0vN1hZemZwOE5qOXRLb2Fnc1hSWmFSeHgyTThHZ0hiL1BqbWcxb2V1Z2JjU0JyaHlCc2xacFpBQ3ZNb1lBRERqZDIwNEc2azcrclM5dzlGOVliUTJnZy81S240Q25FVURYVUpjZ0FLZFNxUzNicGJjZWxFb2xrc2trMld5VytmbDUrdnY3K1MvLzViOXc1ODRkamg4L3Z1eUx5UER3TUpjdVhlTGd3WVBybGdteW5DcmNTcmVMSVFBYlBFK2xrdnpDaFF2Y3ZuMjdKdFhadFdSd2NKRGYvdmEzT0J3Ty9ydi83cjhqSEE0LzgvTmtNc210VzdjSWg4Tkx5bzFhVHd2b0NuMTlmWnc5ZTViRGh3L1h0SnR4b3pFMU5jV3ZmLzFydnZqaUMrN2Z2NzhzYTlUVnhHcTFWb1dpdGR5czYrL3Y1N2UvL1MwWEwxNWtjbktTeWNuSm10Z0RiZ2J5K1R6WHJsMWpZR0NBbi83MHA5OFJkaU9SQ0Jjdlh1U2JiNzRoSG8vVDI5dkx5Wk1uMmJObnozZUV6cFV5UHovUFYxOTlSWDkvLzZvODMzcFRzUjJlbVpuaHIvN3Fyemg1OGlTTmpZM291czdFeEFRWExsemdqMy84STJmT25GbW43dk8xUmRNMG5qeDVRaVFTNGR5NWMxZ3NGbncrSDZGUUNKL1BoOTF1eDJLeDRIYTc2ZXpzWk9mT25UUTFOVDN6ODlVbWs4bHc3dHc1L3ZqSFB6STVPYm1zeDVyTVBoenVIVGhjMjVBa085cHpVVFhDb2dXMExFY3A1TWIrTDVxYU4zYnhEQXcySnlMbDdvYzFYd1RxaS91ZXIxeHVDb3YvRVFWVVdXRnVOc2ZJYUlMeGlTUnpzUnlaakl5cWF0Z3NFaTZYRmEvSGl0dHR4ZVUwNDNKYmNEdXR1RjBXWEM0TExxY0Z5V0VDaTJueG9JdTJ6dXBpVjdDbWYvdi9MNXFhNjR2akVVVk1OaE5PdXhtcnRYYmlXeVVEdHIyOW5jYkdSaG9iR3dtSHczUjBkTkRiMjB0SFIwZDEzMkk5WFdVcUxIZDlvMmthcFZJSldaWlJGR1ZkMTBjV2k0VWRPM1p3L1BoeGR1N2N1VzR4T1dhekdVRVFrR1daUXFHd1pPRlVrcVJxZE1WR1FOZjFxZ1gwY2w3SG0xQnB5cEJsbVhRNnpkVFVWTldCeGVQeDRQVjY4WGc4dU4xdW5FNG5raVFoeXpMSlpMSXFHbGN5UWRQcDlJcTdsZ1ZCb0tHaGdTTkhqdkNESC95QTczM3ZlK3pjdVhPVlgyMXRxVml6RHd3TWNPL2VQU1luSjhubGNnaUNnTmxzcm42T0t5NW9pcUpVMzgvSzkvaEZBbkJGQkRiWVd0aHN0bXBCa3RmcnJjbWVjaVd2ZW5wNm10SFJVU1luSjFsWVdGajFwamk3M1VMdmptYU9IdXFpcWRVSkZFQldxZ1ZqUzJMeFVtZXhTTGpkRmx3dU03RUZBWFhKSGNUcmd5QUl1SnhtZ240N05yY05UQktDQUpJa1lES0xpT0tXMFE0cTgyQ0RWV1JMQ2NDaWFESlpiUTE3Ylk2MlEyWkxxRldRVEJaTkxXUkx4WVVwdVRqM3BGU01QU21WVXJPVisxdnREYnVjcnUwZmhadCs5bjJQNzhCZjJ4eXRpS0oxTVJOdk9aT1BwWFVBVit4WURMNGxtODJTeVdUSVpESkVvMUZHUmthWW1wb2lsOHM5cytEUWRaMVNxVlI5RDFPcEZPUGo0OXk5ZTVkY0xsZk5pbHNPdVZ5TzI3ZHY4Ky8vL2Ivbjh1WExtRXdtdkY0dkxTMHRORFUxNGZQNWNMbGMyR3cyVENZVE5wdXRtZzJ6RWxSVkpSNlBML2t6OExUOW9ZSEIwOHpOemZGUC8vUlBuRDE3ZHRtVnNWdUZnWUVCVHAwNnhVOSs4cFB2Q01EeGVKeSt2ajVhV2xybzdlM0Y1WEs5OG5za3kvSzYyL05IbzFGdTNickY5UFMwSVFCVFBoL2Z2SG1UTDcvOGtqLys4WS8wOS9mWGRERnFOcHZ4ZUR4cjRnNVJLcFVZR3h2ait2WHJuRDU5bWdzWExqQTRPTGpxeDltS0pKTkpGaFlXS0JhTHoxenpOVTNqOHVYTC9JZi84Qi9vNys4bms4bHcvZnAxYnQyNlJYdDdPMDFOVGV6WXNZT3VyaTdDNFhDMUMyRzV6TS9QYytuU0pjYkh4MWZ6WmEwYm1xWXhOVFhGWjU5OXhzek1EQmN2WGlRVUNsVXp4ZTdmdjgrOWUvZlcxVzU5UFVpbjA2VFRhYUFjblZDeGZLelk0OWxzTnVycjYybHBhU0VZRE9MeGVIQTZuVml0VnJ4ZUw4M056VFEzTnhNTUJuRTRIRGdjam1xMFFLV3pBbmltdTZKVUtsWHREVk9wRkRNek0weFBUek16TThPMWE5ZTRjK2ZPc3M1eG91VEE0eitBMjdjWGs4WERZaXZlczNjU1JFQkRMc3lSeTQ1Y1VaUmNZbFhlUUFNRGcvV21rbisyTVhieXhNVjg4YUxDVkNUTmpkc3puTDB3U3QrOU9lWVg4aWhLV1V5UXhIS0duc051SXVDM0U2NXowTmpnb3JIQlRWT0RpL3F3aTRaNko2R2dIYS9IaHNscUtyL1NpdGo3ekQ3cjB6bkRULzNnNlk1aHZieFo2M1hYeHE3UjdYYlQxdGJHTysrOHc2RkRoMmh1YnNidGR1UHhlR2hxYWlJY0R1TndPTWhtczBpU1ZJMDRXRStXZXp4VlZjbGtNaVNUeWUvc3g2dzFkWFYxbkRoeGdvOCsrb2pPenM1MU8yNWxqVmdzRnNubjgwc1dKMncyVzlWTlpDTVU3R3VhUmo2Zko1MU9rOHZsMXRWNXNGZ3NWb1ZkVVJReG04M1liRGFzVm11MW9hRXliOUkwRFZtV3E0VUcrWHorallyWkJVR2d1Ym1aSTBlTzhQT2YvNXlUSjAvUzJ0cTZpcSt1OWxSY2ppS1J5RE1kMDVWNTVOT3VnVWJrb0lFZ0NJVERZWHA3ZTJsdmI2OVpGM3cybTJWcWFxcWEvUnVQeDhubjg2dCtuUG82SDcwN3cremFHU0pZSjRCV0FHVVpNUk02b09zSUFsZ3RFbTZuR1lmRGdra1NOMXh4aE4xdXd1ZXo0ZmZaRUIwV0VNc09VS0lnSUVsYnlqMVVwT3lDWTRnaHE4aVdFSUJGMFdReVdmenRuc0NoRXk3UDduOXdlWFpqc3plREtLRXFHWXI1Q0lYY09JWHMyUC9OR3p3OHJHbWxuQ1RaM0lId3h3ZTlnU1AvWjVkN095YXpCd0hUYTBYY0Y2SHJHcHBhUk5kZVBjbXEyR3U4TFZTRTJudytYNjFFVTFXVlVxbUVvaWdrazBtbXA2ZUpScU1zTEN3d01URkJYMThmRHg4K1hGWUhsTnZ0WGxGRmJYTnpNM2E3blQvKzhZLzg3bmUvdzJ3MkV3NkgyYjU5T3p0MjdLamExemlkVHV4MmV6VmJvMkt2NG5BNDhQbDhTN0ltS2hRSzlQZjNNenc4dkt3TTRDMTBBamRZSlZLcEZHZk9uT0hUVHovbDhlUEh0UjVPelZBVWhjbkpTYUxSS0xxdVY3OHJ1cTR6TnpmSHZYdjNlUHo0TVpxbTBkVFVSSDE5UFcxdGJRU0R3ZTg4VjYwV1N1UGo0OXk4ZVpPZW5oNENnVUJOeGxCclNxVVMwOVBUM0x4NWswOC8vWlF2di95U3VibmF1NWJxdW83RllsbFZPOWhNSnNQVTFCU0RnNFBjdUhHRHp6Ly9uT3ZYcjc5Vjg0STNwU0w2eXJMOFRHZElMQmJqbTIrKzRmVHAwOVhOeW9HQkFRWUdCb0R5cHVMaHc0ZDU1NTEzNk96c3BMVzFsYnE2T2tLaFVOV203blhvdXM3WTJCaERRMFBMdW81dlJCS0pCT2ZPbmVQY3VYTzFIa3BOcU9SS1AwMGtFcUd2cis4NzkvWDVmR3pmdnIzYUhlejFlcXZ6d01xbTV2UFdlcXFxVWl3V1NhZlRKQklKb3RFb2c0T0RQSG55Wk1YNWoxWmJHRi9vT0U3WE50QjFkSjRYT2tUUU5VcWxKSVhjeEw4djVpT2JzMDNkd01DZ3dwb3ZBbFZWUjFFMWxGZFpRQXVBV1lTU3hsdzB4NVhyVTN4NVpwaXZMNC96ZUREKzB1ZTJtQ1ZDQVR2aHNKTnduWk9Hc0pPNmtJTzZrSk9BMzBZZ1lDZmdzK0h4MnZDNExOanRKdXcyTTI2WEJZdkxBbFpwc2FqbEJmbkIxUmVnWWJlWmFLaDNVaDkyTWoyVFFTNnQ3WnpLWXJGVUl5WTZPenZadjM4L0J3OGVaUGZ1M1lSQ0lTUkp3bXcyUDFOb3BpaEtkZjlqbzRzelR3dkFoVUpoM1FSZ3U5MU9lM3M3Qnc4ZVpPL2V2WGk5M25VNWJnVkZVWkJsZWNsRndhSW80bmE3Q1FRQ09KM09EYkZubzJsYU5WTTNuVTZ2dTMyM3J1dlZZOHF5dkM1RjZpYVRpZGJXVm80ZlA4NzN2Lzk5UHZqZ0E3cTd1OWY4dU91TklBaGtNaGxtWjJlSlJDSWtrOGxuMW84cnlmbzIyTHFJb2toSFJ3ZEhqeDZscDZmbmpacVkzb1JrTXNuWTJCaGpZMlBNejgrVHkrVlc5Um9vaWliOC9pQTlQWjFzNndwUkh6WmpzcGNncXkrdit4ZWU2UUIyT2kwNDdDWWtTUVEyemo2TkpBbjR2VFlDZmp0T3B3WEViM00wUkZGRUVzVlh1N2xzTGlTTURPQlZaMHNJd0ZaYjB3RmYzWWxyL3RCNzJPeXRtTXhlUk5GU3RoWFNWZXoyVmhSUEw2VlM4bjlWU2lsMHZZUWsyVEJiZ3BpdFFVelM0aWJpU2k2YWdvaXVhV2hhQVUxN3UyeFlYMFZGZ0xsNTh5YWpvNlBWcnRmS0FxaGk1end6TTBNeW1hUlVLbEVvRkVpbFVzdStLSmpONXFvd3V4d09IVHJFVDM3eUUzNzV5MTh5T3p0THFWUmlhbXFLYURUS25UdDNzRnF0bUV5bWFuZElSUUIydVZ4WUxCYWFtNXM1ZHV3WXg0NGRvNkdoNGFYSDBYV2RTNWN1OGF0Zi9Zcmg0ZUZsamRIby9qVjRtblE2elYvKzhoZisvdS8vZnROYWtLNG14V0t4YWlOVHNkL0s1WEpNVEV6UTM5L1B6TXdNMzN6ekRYVjFkYlMzdC9QQkJ4L3c4NS8vL0R0VjVXYXp1U2JmdFdnMHloZGZmTUcyYmR2NDVKTlAxdjM0dFVaVlZhNWV2Y3J2Zi8vN2FoNW1LcFdxOWJDQXNnWDBtN28rUEUwc0Z1UE1tVE44OWRWWDNMMTdsOUhSVWFMUnFDSCtyb0JLUmxzRldaWVpHQmhnYUdqb3Bac2YwV2lVcjc3NmlwczNiK0x4ZUtwWnNCMGRIUnc1Y29SMzMzMlg3dTd1VjI3Z2pZeU1jUFhxVmVMeGwyOTRHMnc5RW9rRU4yL2U1T0hEaDFWSEdKUEpWQlYvbnk0K2V2NVdtZlBLc3Z4R2VYeVN5WTdkMVlYRHRSMkxOWUNtS3M5RjFRaUlvb1NxWnNtbUg1UExqdHhUMWJ6aEpXOWdzSG5SS084NnJ1bU9mcW1rVWlpVWtHVVZUZE8vemVXdElGRCtOMGxFeTVjWUhJbHo2dXdJcDg2T01EUDc2bE9NWEZLWm5zMndrQ3d3T3BIRWJqTmhzNVp2Vmx1NWE3Y3g3S1MxeFV0TGk0ZFEwRTR3NEtDcHdVVlRvNnVjYldjemZXdDJVTFdFWG54TE5BMTA4UHZ0Yk84Sk1qUVNKNTJXbVkrdmZuZFJCYmZiVFVOREE4M056WFIzZC9QT08rOXc5T2hSMnRyYThQbDgxUzZyNStjU2xldkJlbHNxQzRLdzdIeGFSVkZJcDlQRTQvRjE2d0MyV3EyMHRiV3hiOTgrZHV6WVFWMWQzWm9mODJrcURRcVYvTitsN0VWSmtvVFA1eU1jRHVOMnV6ZkVubzBzeThUamNXWm5aMGttaytzdUFLODNraVRSMmRuSmlSTW4rT2xQZjhxSkV5ZVdGUDIwR2RFMGpXUXl5ZVRrSkxPenMyOWQvSmZCOG5BNEhGVTcvYTZ1cnByWTFNdXlUQ3dXWTJSa2hMR3hNV0t4MktvWEZUbGRIbmJ0M3N1eFl3Zm83S2pIYWl1VnUzLzFpdmk3SEFGNE1RUFlac0xyc2VGeFdUR1phbjllZnhxYjFVUmp2WXY2T2lkMm00bUtkWW9ndkNiR1kzTWlBWFlNQVhoVjJmUUNzTW5zcWZlSDN2dkVIM29Qais4Z2ttUkgxNVZ2TzNrRk15YXpGY25zd1dKdlFOY1VRRU1RVEFpQ0NkREtsczlMRGdoL0VUcm82cEtlWTZ0VlpxbXFXczBabVoyZFpXQmdvR3JqUERvNnl0RFFFTE96czlVSmFLVXpRdE8wVmJzQXVOMXVkdS9ldld3YjFSMDdkdkR1dSs5eTVzd1pabWVyenVEVjZzOFhVY25Ya0NTSlFDREF6WnMzT1gzNk5HMXRiVFEyTmxKZlgwOHdHQ1FRQ09Eeitjam44eng0OElCZi92S1huRDU5ZXNPSUd3YWJqNHBZOXB2Zi9JWkxseTZ0cTYzVFJrVVFCRXFsMGpNTDlZcWJRQ3dXSXg2UEU0L0hHUmtab2IrL244SEJRUVlHQm5qLy9mYzVjT0FBWFYxZDFVS1BXbFJ1RndvRjd0Njl5NE1IRHpoeDRzU1MzQVMyQ21OalkxeTRjSUcvL09VdlhMeDRzV1padnkvQ1pyT3hjK2RPMnR2YjMvaTVJcEVJdDI3ZDR0S2xTMXk4ZUpINzkrOFRqVVpYWVpSdko3cXVWenRUd3VFd2dpQ1F6V2JwNit0N3JTMXpvVkNnVUNnd056Zkg0T0JndFhqczl1M2JYTDU4bWFOSGozTHMyREU2T2pxZXlYN05aRExNek16dzJXZWY4ZGxubjFXdGhBM2VIaW9aVnJXYXcxbnRqWGg4KzdEYXdwVFh3ZDlkYndpQ0dVWEpra25lSjU4ZHU3N3VnelF3TUZoTk5QaE9tLytxVTFJMGlySktxYVM5dUE2K1lpbXFhS1JUUlViSEV0eDdFR1Y4YXVubndrSkJvVkJRU0x6Z1p3R2ZqWlltTjAxTmJvSUJCd0cvbllaNko0MzFMdXBDRHZ3K0czYUhHYnZOak4xbUtvdklOZ203M1l6RmFnS3JSRU9qaTkwN1F3eU5MUEJrTUw1bUFyRE5acU9ucDRmRGh3L1QyZGxKYzNNek8zZnVaUC8rL2ErMTE2dzRGYTMzV3NQcGRPSnl1WlpWektpcWF0VzlJcGZMcmVIb3ZzWHBkTEo3OTI2T0hUdEdhMnZydXI5UHFxcFdCZnFsaXZRbWt3bWZ6MGNvRk5vUUFyQ3U2K1J5T1JLSkJQRjRuR3cydStHN3pkOEV2OTlQUjBjSHg0NGQ0K1RKazV3NGNXSkxSeXJwdWs0Nm5XWnViczdZVHpSNEphSW9FZ2dFYUcxdHBiMjlmZGxOVXF0QnhZMGdGb3N4T3p2TDNOd2N5V1J5MVFzWGZENGZCdys4dy9IamgyaG9sa0dmQkRtM01tMW44Ynh2dFpyd2VxeTRYSllOSndBN0hHWWE2c3R1S2hhTFJGbUhxc1FRMVhac2E0REFGdEFyTnhxYi9nMDFtVDFOVHMrTy84M21hQWRCUk5Oa2RQM1o5Wkt1Znp1SkZCQUFxV3lmcHBkWXZjTGFyVmR5OFRTVnFyTnNOa3VoVUtqbW1pVVNDV0t4R0tsVWlwR1JFUzVmdnN5OWUvZldkWVBVNlhUUzA5T3o3R3BSaDhPeDdIekhTdmN5bExzeHg4YkcrUExMTDNHNVhIUjNkMWNYaEUxTlRUUTBOSkJPcDdsMDZSTGZmUFBOTXlLemdjRnl5T2Z6M0xwMWkxLys4cGRjdm54NTNSYmtHeDFCRUtvRkdSVTBUVVBUdE85VXUxY3l2L3Y2K3JoNjlTby8rdEdQT0hic0dJMk5qZHk3ZDY5bTcrbjgvRHhqWTJQTXpjM1IwZEZSa3pHc0o5Rm9sT0hoWVM1Y3VNQS8vdU0vMHRmWHQrRXExTjF1Tng5Ly9ERzdkKzllMGVQeitUeVJTSVN4c1RIdTNyM0xGMTk4d1RmZmZHTXMyRmNCVGRPcTg0N3U3bTRrU1NLVHlUQTRPTWpNek15eW5xdFVLaEdKUkloRUlseTVjb1dMRnkveTA1LytsQU1IRGxCWFY0Zkw1U0tYeXpFMU5jV2pSNDg0YytZTXQyN2RNb3B2RE5ZVlFUVGpkTy9DN2QyUHllVCt6aHFuZ2k2QW9xVElaNGIvWjdrWWZiTE93elF3TUZoOU5OYTRBMWhUZFVvbERVVjdTZ0FXbnZwenNkNUV5WmVZaTJhSnpHYUlKMVpQWUYxSUZNam1Ta3hNcDh1ZHdkYXl1T3V3bS9EN2JOVFhPUW1GSElSRFRrSkJCM1ZCTzM2L2pWRFFRVU9EbTJEUWp0TmxwYWM3UUU5WEFLOXZDbDVkQzdaaUhBNEgyN2R2NStUSmsvVDA5R0N4V0FnRUFrdktWcFFrYWRXZFpWNkh5V1FpSEE0VENvV1dGV2RTaWVtS3hXSmtzOWwxYVY2b3E2dmo0TUdESEQxNjlKV3VhbXRGUlFDdU5Da3NSd0FPaDhONFBKNmFXMERMc3N6OC9EeXhXSXhFSXJHdTl0M3JUVEFZNU1DQkE3ejMzbnVjUEhtUzN0NWV3dUZ3clllMXBtU3pXUllXRnBpZm4xK1RERldEcllQUDU2T25wNGZXMWxaY0xsZE54cERMNVppYm15TWFqUktQeDBrbWsyUXltVlVWZ0sxV0c1MGQ3Unc2dEpkMzltL0g3UmtIUllaU0FYUXp5Mm9jWGN3QVJoQncyTTM0L1haOFhoc1c4OFlTZ0YwdUM0ME5idXJEVHV4MjA2SXppcjQ0ZjF0MG9LcjFJRmVQU2d2M3h2b2xiSEkydlFBc1NZNkF4UnJHWks1VXRyeW8ydVA1RmMzei83NSsxSHB5dUJJeW1ReFBuanpoMnJWclBIcjBpSVdGQlhLNUhMbGNqbmc4WHJWenFGUWRydmRtdmlBSUt6cG1McGNqbVV5dXl1UTRrOGx3OSs1ZEJnY0hxd3M4cTlXS3Fxb3NMQ3dzSzlPNGdpQUlOYThtTmFnOXFxcnk5ZGRmODR0Zi9JSXZ2dmpDNkI1OENrbVNzTnZ0MVZ4UWdGQW9SR3RyNnpNZGZFK2phUnAzN3R4aFptYUdNMmZPRUF3R1dWaFlXSEV1NDV1U1RxZDUvUGd4ang0OW9xR2hZVlV6WnpjYWs1T1QvUHJYditiMDZkTThmUGlRc2JHeERXbUJIQXdHT1g3OE9HMXRiY3QrYkRLWjVKdHZ2dUdycjc3aTl1M2JEQTRPRW8xR2pjWDZLcUhyT3Rsc3RtcHRKMGtTc2l5ditEcGJRVkVVN3QyN1J5UVNvYjYrdnRyUmtjMW1tWjJkclRvS0dPS3Z3WG9pQ0NaYzdwMTRmWWV3TzlzUlJTdWE5dnhuY0xGRFR5MGl5d3ZJeGJsaFZja2wxbjJ3QmdZR3E4MmFUNUJVVFVOVnk3Y1hJZ3FnNlpUeUNndUpBc2wwa2RWdUtpektLa1g1eFM4MXVDajIxb1djQklOMjZnSU8vSDRyd1lDRDFtWlBXZmpkRnFRdTZLQzkxWWZQODNveGRxWG91bzdKWk1MbGNoRUlCTEJZTE5oc05tUlpmcTI5cHNsa3dtNjM0M0E0bmxtenJDVVdpNFZRS0VRd0dGeTJBUHkwQmZSYVV4R3F0MjNiUmtkSHg1SUU5ZFdtSXY0QzFVN3QxKzBQbVV3bVBCNVBOUjZzbG5zMmxlN2ZXQ3hHTEJZam5VNXZTWXRnaThWQ1hWMGQrL2J0NDZPUFB1TDk5OTluMzc1OU5STzUxZ3RabHBtZG5hMWFlMi9sem02RE4wTVFCSnFibXpsMDZGQzFVSHE5MFRTTmREck56TXdNOC9QekZBb0ZTcVVTeFdKeDFUNjdrbVNpcmEyTmQ5N1pTKytPTnZ5aFJSZTlrbHFPaDFpSjVMSTROSWZkVE1CdncrT3hZdDVvQXJEVFFuMjQzQUZzc3k0S3dOcTMxNnBOS0RXOURoR29UWUQxRm1YVEM4Q2lhTGFLa2hWQmtFRFhYaVBwcnJYZ3U3bS9jWXFpa01sa3lHUXlMQ3dzTURvNnlzT0hENG5GWWt4UFQvUDQ4V09tcHFiSVpES1VTcVZxdGxtdHlXYXpqSTZPa2t3bThYcTlTMzdjeE1RRWQrL2VKWkZJck1vNEtodlQyV3gyVlo1UEVJU2FYTFFOTmc2WlRJWnIxNjd4WC83TGYrR3p6ejVqZm42KzFrUGFVRWlTaE12bGVxYXd4dWwwMHRUVTlNb0tlMDNUbUptWllXWm1CbEVVRVVXeFprS2tydXZjdlh1WHMyZlA4czQ3NzJ4SkFUaVpUSExqeGcxT256N05YLzd5Ris3ZnY3OGhoVjhvVjgzdTNidVhycTZ1WlhWcHpNL1BjK2ZPSFM1ZnZseTFldDVJdHRaYkNWbVduMWxFVnJMMTN2UXpwZXM2YzNOenpNM05BZVdOcHEyNGdXYXdlYkE1bWduVW5jVHQyNDhvMnN1Uk5kOVp5NVF6TzFVMWp5SW5VSldzVVNWbVlMQjFXTlBOQzNXeEExaFY5RVhCNjduTVBFRUFkRW9sbFV4R0pwT1ZLU25yTjMrYmp4ZElwbVdtSTVsRisyY1RWbXZaQ2pvY2NyQjNUNWlmL21nYkIvZlZFd3lVTzNiV2lsd3V4OWpZR1AzOS9iamRicnE2dXBZczZGWUtWcDFPNTdwMUFEdWRUaG9hR2dpSHd5c1dnSXZGNGhxT3NMelhFUXFGNk9qb29MR3hzU1pST0xxdVV5Z1VrR1VaUVJDd1dDeElrdlJhb1VLU0pEd2VENEZBQUtmVFdkTW1EMVZWU1NhVFZWZWJlRHkrNVRxQUxSWUxIUjBkSERseWhBOCsrS0NhYmJyVnhWOWQxNG5INHp4NThvVFIwVkhEVGNyZ2xUZ2NEbnA3ZXpseDRnUzl2YjAxSzZpWm41K3Y1bFhuY3JtcWRyQmFCSU5Camh3NXludnZIYWU5clE3SWdaNWQ3SWhsQlVyb29wQXFnTk5oSmhpdzQvZlpNSnMzMWw2OHkyV21zZDVGdUpJQnZQaDZ5eG5BNWZuYjVsYWt2b01aOE5WNkVGdUpUUzhBVjRLdmE0c0FnZ1RDcXl0RUtrTERSa0RYOWFvVlE2RlFJSlZLTVRNelF5UVNZV0ZoZ1Vna1VyVktmWk91bXZVZ2tVaHc2ZElsZHV6WXdRY2ZmTEFrMFRRYWpYTHUzRG0rL3ZyckRTdXFWUlloQm04ZnVxNHpNelBENWN1WCtkM3Zmc2RYWDMyMVlUK250Y1RwZEw0dzE4VG44eTA1NzZSaUdWMUx4c2ZIT1gvK1BELy8rYzhKQkFMcnRqbTAxdVJ5T2NiSHg3bCsvVHAvK01NZk9IdjJMQXNMQzdVZTFpdHBibTdteUpFalN5b21rbVdadWJrNXhzZkg2ZS92NTlTcFU1dzdkNjVtM2VSdkM1SWtJVWxTZGJOTjEvVWxXL1l0QjBQOE5hZ2xGbnNEL3JvUDhZZmV3MnByUk5kZkxMb0lnb2lPaHFxa2tBdHpxR291dnM1RE5UQXcyS1RvdW81U0tuY0F2emdEdVB5SFhOTEk1eFVLQlJWTlhkOTlGMFhSU0dkazBwbG5yOGxtazhoMEpJUEhiY1hyc2xBb0tEanNaWEc0VUZSWGZVNVFMQllaR2hyaTBxVkx1Rnd1d3VFd1RVMU5TOXJicVFqQWRydDkzZWI0SG8rSGxwWVdtcHVibHlXU3FhcEtMcGNqazhtc2ViR213K0dncTZ1TEhUdDJFQXFGMXZSWUwwUFROSXJGSXFWU0NVbVNzRmdzbUV5bTF6WTVpS0tJeldiRDZYVFdSR1I1bWtwVTIrenNMSkZJaEVRaXNTR2FORllMcTlWS1oyY254NDRkNDVOUFB1SElrU04wZG5hK0ZmdGtnaUF3UHovUGt5ZFBHQjhmTnh5bERGNktJQWo0L1g2NnU3dnA3ZTJ0MlRsVlVSUVdGaGFZbnA0bUdvMlN5K1ZRMWRXNUpndUNnTjF1cDd1N2h4TW4zdVBJa1VQVWhXM0FLSkFEaXdRbUMrWEl6N0tEQ2RxM09ibXZaSEU3MEdTVDhMcXRPSjFtSkhGanlhbE91NW02a0lOQXdJNWtOWlZsTUUxZmJBVFcwU29DK05iQkN0UlIxaTAzVm1iY0ptWFRDOEM2cmhRMXRZaXVLUWlpdENUTGxoZDM2cTd3bTZMckNJS0lLRm9ReFZlL25SdEJBTloxblhRNnpmRHdNRGR1M0toMitGYXFCdWZtNWlnV2l4U0xSZExwOUpwWGZxNEc2WFNhYytmT0VRZ0VjTHZkN04rLy81WFZ1UFB6OC96aEQzL2dWNy82RmJkdjM2WlFLS3pqYUplT3Bta2JkbXdHejVKS3BaQmxHWS9IODhhTEVVM1R1SC8vUG4vNjA1LzQwNS8rUkg5L3YxSHQrUUxNWmpOTlRVMDRuYzd2L016cjlkTFQwOFBEaHc4M2ZBRkxoZEhSVWI3NTVodWFtNXZwNnVxcTlYRGVtTXA1K2ZlLy96MVhyMTVsWkdSazFkd1IxaEtmejBkalkrTnJOM1B5K1R4WHIxN2w3Tm16WEx0MmpTZFBuakE3TzdzcFh1Tm14MnExNG5RNm55bjIwblY5UzNVNkdMenRDSGo5aDZsci9BazJSenNndkhUelFoQkUwSFhrd2h6NTdBaHFLVDI3dm1NMU1EQllJNTVyeDExOWRMMXN3VndxUFZWRVZUMmlVTzJpS1pWVXNya1N1WHpwNVhiUjYweEowWGd5dk1EVjYxTUVBM1pjVGd0T2g0bW1SamN6a1F5NS9Pb0xZTEZZaklHQkFicTZ1amg4K1BDUzV4MG1rd21IdzRIVDZWdzMwY3JuODlIVjFVVm5aK2V5Qk9DS0lMb2U5cy9CWUpDOWUvZHk0TUFCNnV2cjEveDRMMEpSRkhLNUhJVkNBVlZWRVVWeFNkMjhGYWMyazhsVWM4ZTJTdjd2OVBRME16TXpOWWxrVzB1YW01djU4TU1QK2Y3M3Y4L1JvMGRwYW1wNks4UmZLQmRreEdJeEJnY0htWnFhTXZZR0RWNkt4K09oczdPVHJxNnVtbVppRndvRkZoWVdxaG5BbFgzUzFWaW5tODFtR2hzYjJiTm5MM3YyN0tXdHJSbkVCZENTb0dUTDlzLzY0dmxiWDBhajRHS0dMaUpna2NyekNic1prMmxqZFFBN0hXWkNRVHNlbngyc1VqVzdXTmQxVkVWRFZiU3lDTHgxc0FKaHdBRVlHK0tyd0tZWGdGVzFsRlhWSExwV0F1bDE5allDZ2lCVmJ3akM0aGRHcmQ2V0x3U1g3WkpFMFZSK3psY2RmUjJ0WVNwWklMbGNqdm41ZVlhSGh4a1pHYW5tZ3N6T3p2TGt5Uk1tSnlkSnA5TlY2NXZOaUtxcWpJK1A4K2MvLzVtRmhRWGVmLzk5ZHUzYVJVdExDMDZuRTFFVXllZnp6TTdPTWpBd1FGOWZIeGN2WHVUdTNic2Jlck0rbVV4eTgrWk5kdS9lVFV0TFM2MkhZL0FTRkVYaHlwVXJURTlQODRNZi9JRG01dVlWUDgvZzRDQzNiOS9tN05telhMeDRrWUdCZ1ZVZTdkYWh1Ym1aUFh2MnZMRFROeEFJOE9HSEgvTDQ4V051M2JwVmc5RXRuMFFpd2RkZmY4MysvZnZwN096Y2xIbnhVTzZRNk92cjQ0c3Z2dURpeFl2Y3VIRmpVM1d2WjdOWlVxblVTNHUxS2xiUE4yN2M0TXFWSy9UMzl6TThQRnp6THZLM0NiUFpqTVZpcWY2T1JGSEVhclZpTnBzMzdUekd3S0NDSUpxd09UcncrQS9pY0hZaUNHWlU5UlVkSDRJSWFCUUxNK1F5VDM2a3Fybk5jOEkxTURDb09mbENDYm1rdmpMYlYxVTFpcktLTEt1bzY5d0IvQ3BLSlkwbnczR3UzNXFtcTkySHgyTmpXNWVmWEw2MEpnSndxVlJpYm02T3Fha3BabWRuU2FmVG1NM20xeGI0bTgxbW5FNG5McGRyM1lRcmo4ZERhMnNyRFEwTnl6cW1JQWpyRnZQbDhYall2bjA3TzNic1dMSnowMnFqS0FyNWZKNU1Ka00rbjBlVzVTWE42U3Z4STZ0dGJicGNORTBqazhrUWk4V1luWjFsWVdHQmZENi9aWW9pYlRZYjI3ZHY1NzMzM3VQWXNXTzB0cmJXdktGbVBWRlZsWGc4enRUVUZMRlliTU5HS0JuVWxrcjI3OEdEQitucDZhbUpLNEd1NjVSS0pSS0pCSWxFZ2xRcVJUcWRKcHZOcnBvQTdIUTZhVzl2cDd1N0I1L1BSN0dZUjFWbVVITlRhSElNWGNzaUNCb215WVRGVW82TndHb0NVN2xZbHBJR3F2Wk1idTUza0VSc05oTjJ1eG1MWmVNSXdLSWdZTGVaY0Rvc21CMG1rRVJRdExKN3RWWXVpaXNwR3Rxclh0dm13d0o0QVNlR0FMd3FiSDRCV01sRUM3a3BTcVVrWm1zQWRORDFwellBQlFGaFVmalYwZEhWSW9xYVI5WHlvR3NJZ2dsUnNpRkpkZ1RSQXVqbzJuS0ZZQUZCTUFHMU8wRW9pa0k4SGllVHlWUUYzbGdzeHNMQ0FsTlRVL1QxOWRIWDE4ZjA5UFNXbVJBK1R5VWI0OGFOR3h3K2ZKamUzbDU4UGgraUtKTEpaQmdlSHViU3BVdmN1M2R2VTFSRkxpd3M4TmxubjlIYTJzcmYvTTNmMUNRWHgrRFY2THBPTEJiai9QbnpqSTJOY2VqUW9XVUx3SmxNaHBtWkdaNDhlY0xseTVjNWMrWU1OMi9lTklTTTE5RFIwY0grL2Z0ZnVHSGc4WGg0OTkxM3VYNzlPbmZ2M3QwVTMvZGlzVWgvZno4REF3TjgrT0dIbXk3VHFGQW9NRDQrenYzNzkvbjg4OC81elc5K3MrSHRubC9FMU5RVWx5OWZacytlUGV6WnN3ZTczVjY5dms1TVRIRC8vbjFPblRyRmhRc1hxbG14QnV1TEpFbVl6ZVpxa1lUVmFxVyt2aDZmejdlaGk3b01ESmFDeWVUR0Z6eU8wNzJqM05uK1NzY3JFWFFOUlU1UnlJNy9YU0UvZFV2VE5zRUZ6OERBWU1PUXk1Y29GSlRGVFVQaHVaN2o4bDgwVGFla2FDaks2c2N0dkNuUmFKWW5Rd3Y0dlRiYVdyM29Pa3pQWnBpSnJJMERVRGFiWlhwNm11SGhZWHA2ZW5DNVhLL04yRFdielhpOVh2eCtQM2E3ZlUzRzlUd09oNE53T0x5a1NKT24wWFVkVlZYWFJRQjJ1OTFWbStwYXhkK1VTaVZTcVJUejgvUE16OCtUeVdTVzlOcWY3cFN1NVpvOWw4c3hPenRiemR0TXBWSmJ4djdaYXJYUzNkM05PKys4dzc1OSsyaHBhWG1yeEYrZ3VxODdQVDFOSXBIWWNPZGZnNDJCdytGZzE2NWR2UC8rKy9UMjlpNHI5MzAxeWVWeUpCSUpzdGxzdFVDbVVDaFFLcFZXNWJQcmNEZ0lCb1BZYkRhaTBTakZ3aXh5L2pINTlIMUt4WGxVVlVHVXdHbTM0UFBhQ2RjNUNOYzVNYmt0SUlxdjlsVFJGK2RBb29qVlpzTGx0T0J5V3Bib01MdjIyS3hsVWRwbVd4UzBxNjlGcjhaaGFkcVdjMFF6QVM3S0hjQUdxOENtRjRDVlVuSXFuZWo3NTA3WHRsL2I3YzBJNG5QVkxubzVGVnZYVlJRbFJTRTNRUzQ3U2lFM2pxcm1NSnU5Mk93dDJKMWQyQnh0U0tibFQ4b0ZRVVFRVFFpdm1aQ3NSVWFkcnVza0Vna2VQSGpBcFV1WEdCd2NKQjZQTXpzN3kvejhmTFc3TjUxT3Z4V1pFYVZTaVFjUEhqQTFOY1hwMDZlcmk0bEtuazBpa2RnMG5WckZZcEZidDI3eGh6LzhnWEE0ekljZmZyaHVpMGFEcFNITE1xT2pvMHhNVEpETDVaYjkvWjZibStPcnI3N2l5eSsvNVA3OSsweE1UREEzTjdjcEJNdGFVMTlmVDN0Nyt3dS9FNUlrMGRMU1FtZG5KNEZBWU5NSWRaRkloTWVQSHpNK1BrNXZiKyttNlFKT0pwTmN2bnlaZi9xbmYrTGF0V3VNalkxdFN2RVh5b1UzcDgrY29WUXE4ZUdISDlMZTNrNHFsZUxldlh2Y3ZIbVR3Y0ZCdytxNWhsU3lmeHdPUi9YNzRYQTQ2T25wb2FHaGdhbXBxUnFQME1EZ3piRGFHdkg0OW1OenRKVG5GQy9KL2kyN0QwbW9TcFpNYW9Ccyt2RjFSVTRiQWVRR0JnYkxRaTZxbEY0ajdKWmo1dlRGb3BTTlJiR2tra2dVVUZXTnBnWTNkcnVaVzNjamEzck1XQ3pHa3lkUDJMNTlPNjJ0clVzV2dIMCszN3AxWmttU2hNMW1XN1k5c2FJb3E1YlgrQ3FlZms5cUpWYkF0d0x3MDNhbFMrbXkxSFVkV1pZcEZvczFXN2ZydWs0eW1XUjhmSnlKaVFtaTBlaVcyZTh6bVV4MGRuYnk0WWNmY3ZUb1VacWJtMnR1dGIzZUZJdEZwcWFtbUppWVlINStmc3NJK3dhclN5WDdkL3YyN2V6ZHU3ZG1kdm9WRVZKVjFXcXh0aVJKaThMazZ1eS9hNXBHS3BWaWNIQ1FoWVVZNkZtVTRnU0Y3QlJ5S1llcTZvaVNnTXRoSWVDMzAxRHZwS1hKUTJPREMxL0FnYzlqeGU0MGYydWZYT2tJZmdZQlNSS3gyMDI0WFJiTVpoRlpybTNudlNnSytQMDJna0U3WG84VmhNV0NLWE81Y1ZHU2hFMnpiN2hNUk1vMjBPdmYwcjVGMmZRQ3NLYkpCWlBaZlc0aGV2NS9saVRyLzh2bDNZMWtYcXgwMUhWMFhhRlVTbEhJanBOSkRmeGpOdjNvZXJFNE8xUXFSaDlyYWpFcm1ad0JpeVhVYlhPMnYrTU5IUGxmWE40OVdLM2xuR2tkRmZRbG5Ld0VBVUcwTEhZQnYycXNxM1B5U3lRU3pNM05NVFEweFAzNzk1bWVubVppWW9LQmdRRWlrUWk1WEc3TFRQNVdTaktaSkpsTTFub1liMHd1bCtPYmI3N0I0WERRME5EQS92MzdhejBrZzZlbzJQTElzb3pUNlZ6U29yNVVLakU2T3NxOWUvZTRjdVVLMTY5ZnA2K3ZqM2c4dmc0ajNobzRuVTRhR2hvSWhVSXZYUXg2UEI2Q3dTQnV0M3ZUQ01DbFVxbHFVOS9SMGJIaHUvNnoyU3lQSHovbTY2Ky81c3N2ditUNjlldWI1cjErR2FxcUVwbVo0ZlBQUDJkd2NKQzZ1anJ5K1R6ajQrT01qWTF0bWdLaWwxTlpIR3kwTGR5bElZb2lMcGNMbjg5WFhlaTRYQzYyYjk5T1UxTVROMi9lclBFSURReFdqbVJ5WW5PMFliVTNJMGxPTkxYQXE3NnJnbUNpVkVxUWl0LzRkOW5NNDYvV2I2UUdCZ1piQlUzWDBUVDl4YmFCMVNnOUhVM1ZVRGRnZDRtbTZhZ2EyR3htNnV1ZE9GMW0vRDRib2lTZ3JaRmQ5Zno4UEVORFE0eU5qWEh3NEVIOGZ2OHI3eTlKRWw2dkY2L1h1MjRDc0NBSUsrcVd6R2F6Rkl2Rk5mMDlpNkpJTUJpa29hRUJqOGV6WnNkWkNvVkNnVmdzUmlRU0lSYUxMU3Y3V0JURjZxMFd5TEpjM1JNY0dSbGhibTV1WGJLYjF4cEJFR2h2YitmOTk5L25aei83R2Z2Mzd5Y1FDTlI2V091S3J1dk16YzF4Ly81OUhqOSt2R2tMcXczV0hyZmJUVWRIQjUyZG5UUTBOTlJzSElJZ1lMUFo4SHE5QklOQi9INC9UcWZ6R2RldU55V2RUdlA0OFdNaWtWa2tTVUpWQ21ocUdxV1VROVhLVVJhaUtHQTJTempzNVM3ZVlNQk9aN3VYM3AxaDN0bFR6NDV0QVJ4QmU3bUxWdFhoYVcyM2tnVXNDRml0RWg2M0JaZlR6RUtOQldDelNTTGd0K0gzMnJCYUpjcVRzOFZydENBc1h1L0x0eTBrQkF1VTlVcjc0cTJjZVdUd1JteDZBUmhBS2FWalpvdnZmOWZVUXFaWW5QdDNObWNiQWhMb0txcWFwMUNZSVp1OC96K240M2YvVkNqTVBIanU0V1BBYlpQSmNicVluM2xVTE16OWc5ZC9FTHVqSGRGa1c1ejh2bW9DckFNaWdpRENhektBZFYxZjBSZXlWQ3BWN1p6bjV1WVlIUjFsZUhpWTI3ZHZjK25TSlVNNDJ1SkVJaEcrL1BKTGVucDZLSlZLTkRVMUVRZ0VhbG90YTFCR2tpUWNEZ2RtczVsQ29VQ2hVSGpoL1lyRklvbEVnbGdzeHNqSUNEZHUzT0Nycjc3aTJyVnJMMzJNd2NzSkJBSTBOamErY2pGb3NWZ0loVUxVMWRVeE9qcTZhVEp6QmdjSHVYanhJdSs5OXg1dGJXMjFIczRMU2FmVFZUdmtyNy8rbWxPblR2SHc0Y05hRDJ1VktFK29LeG5zYnlPQ2FNSms5Z0FTYWltTnBtMmNjNVFvaXJqZGJudytYL1hmTEJZTG5aMmRORGMzSTRyaUZoRHBEZDVXTExaNkhPN3RtRXdlbGxLa29la3FjakZLTnYzd1VqRS8rM2p0UjJoZ1lMRE9yUGxPWG1Wdm9ycm44WUpUajZhQm9tZ29xdmJLck9CYVlMV2FDQVhzTkRXNGFBZzdpU2NsZkY0YkRydUpUR1p0T3VZeW1VelZjbmVwOXI4T2h3T3YxNHZkYmw4WFMwbFZWWmZWbWFyck92bDhubWcwU2phYlhkUHhXYTFXbXBxYWFHbHB3ZWwwcnRseFhvZXU2MlF5R2VibTVvaEVJaVFTaVNWM1dVcVNoTWZqSVJBSTFNeWhMWlBKTUQwOXplam9LSk9Ua3lRU2lVM3RJaWFLSWo2ZmovYjJkZzRkT3NRbm4zekMwYU5IcWF1cnEvWFExcDFTcWNURXhBVDM3dDFqZUhqWWNKNHllQ0dpS05MYzNNeUJBd2ZvN3U2dTZmNXd4YVVyRkFyUjN0NWV6ZjdONS9Nc0xDeXNpakNaeVdUSVpKWVg3MkF4aXpRM3Vkay9GR2QyTmtOc1BzdTJuZ0RCQmhkdWx4V2Naa0JZdElBR0VFRVNzTnROZUR4V1BDNHJpV1N4cHRtNmdsaWVta1ZqZWZvZlJNbHBPbmE3R2FmRGhOMHNvV3M2SnBPSXlTUWlpbHRHQUlheTZHdWozQUZzQ01DcndKWVFnQUZLY21MS1pITDlxcENmdW11MitOc0UwV1FGVFZHVlhFS1JrNU9sVW1KQ0tiM2NHazFSY2dsSnN2NjZrSi9xTCtUSC82YXU0U2YvaTlPekF3RXpDTUxyTzRGMW5qcHB2SngwT2swdWwxdHlaMWNtaytIT25UdWNPWE9HZ1lFQjV1Ym1tSnFhSXBsTWtrcWwzdnBPMzYzSmR6dTBabWRuK2MvLytUOXo3ZG8xOXV6Wnc4Y2ZmOHloUTRjSUJvTzFHYUlCVUxhdmFtaG93R3ExTWpnNFNIOS9QejA5UGM4c1poT0pCTmV2WCtmS2xTdmN2Mytma1pFUnBxZW5tWjJkcmFtVmo5bnNSWkNzbE9RRXVyWjU4b1lyVmVQMTlmV3ZyUnB2YjI5bjkrN2REQXdNYkJwSGdMbTVPYTVjdWNMZzRPQ0dGSUFYRmhZNGRlb1VYMzc1SlhmdTNHRnNiSXo1K2ZsYUQyc1YyVmlkTGV1TktGbHd1bmZpOWg5QUZHemtVZzlJcC9vcHlSdWowTXpsY3VIMWVyK3pZZGpRMEVCSFJ3ZDFkWFhNenM3V2FIUUdCbStHM2RHT3k3c2JrOW1OcmltODdId2tDQ0k2b0NvcGlvVUlKWGxoZkYwSGFtQmdzR1hRV2V5aVZmWHlmc2ZUcHgyaG5BbXNxaHF5WEw3VmNoUDBSZGhzSnVwQ1RocnFYUVFDWlhHMXZzNUJYZEJCb1pCR1VWWi92MUJSRkdLeEdQRjRmTWxyT1l2Rmd0L3Z4K1B4WUxWYTE3d0FlTG1iN1lxaU1Eczd5OFRFQlBGNGZFMEZZSmZMUlZ0YkcyMXRiVFh0QUs1MC8wNVBUeSs3ZTlaa011SHorUWlId3pVUlhRcUZBdEZvdE9wUXRCWGlhWnFhbWpoOCtEREhqaDNqMEtGRDdOeTU4NjBVZjZHOFp6dzVPY25RMEJDUlNLU21PZE1HR3hlNzNjN09uVHM1Y2VJRU8zYnN3R0t4MUhROGdpRGdkcnZwN096RTRYQ2c2enJ4ZUp6eDhmR2FkYWJLSlkyUnNTVDV2TUxVVEliK0IzUHMzMXZQMGFQTkhOelhpTHZlV2M0SGZyb0FUaFN3MmN6NHZEWThiaXNtVTIxdG9CVkZZeTZhNDlLMVNSTEpBcTN0WHBxYlBQUjArV2h0OUZBcXFzaXl1dGh3V0xOaHJnVVN6M1lBRzd3aFcwWUFCbENVVEF6NEJrQVVUU1pOVzE0Sm5Lb1dDOEJ0cXkyY05VbE9uMlJ5L0Z1SGN4dUlBcnI2OG91dUlBamxET0RYZEFBRFhMeDRrVi85NmxmODVDYy9lYWsvZnpxZFpteHNqTDYrUGdZR0JuajQ4Q0Y5ZlgxTVQwOXZDVnNYZytXajZ6b1BIejVrY0hDUWUvZnVWWVhHdXJvNldsdGJhVzl2cDZHaG9XcTFVYWt1TmxnZFZGVjlvWldXS0lyVTFkWGg5WG9aSHgvbmQ3LzdIYUlvMHRqWXlOVFVGRk5UVTh6T3p2TGt5Uk1lUFhyRTVPVGtodmtPTzl6YmNIbjNVaXJHeWFZZmtNK09vR2tiUDF2R1pESVJDQVR3Ky8ydnRkenE2dXBpLy83OWZQYlpaNXRHQUZaVmxlSGhZYzZjT1VOYld4czlQVDIxSGhKUUxtUzRkZXNXMzN6ekRWOTk5UlYzNzk0MTdLaTJHSkxKaWR1M2owRDRZOXkrZHhDUUtIaDI0a2oxa0U3MGs4ME1vdFJRQ0RhYnpjOTArajZOM1c2bnZiMmRqbzRPRmhZV2pKd3NnMDJIeFZxSDA3TVRoN01EU2JLaWFhOVl3Z2dpZ3E2aHlDbmt3aXlxa2pOT3hnWUdXdytkZGVwMlVCU05RbEVCV1FYS291L1R2Y2VLb2xNc0toU0xTbGtvM2tBSWdMSW9VT3VhanR0bG9iM1ZTM3VybDRWNGdXU3F1Q2JIemVWeVpMUFpKUXU1RlFlVGlnaThWamJMZ2lCZ3RWcHh1OTNMRWdNcWVhT2pvNlBFWXJFMUY0QXJjemEzMjcxbXgza2Q2WFNhMmRsWnBxZW5WNVN4S2dnQ2tpVFZ4QUk2SG84ek1qTEM0T0FnVTFOVHBGS3BUZHY5NjNLNWFHeHM1TWlSSTN6ODhjZTgrKzY3TmU5bXJCVzZybE1xbFloR284ek56WkZNSmlrVUNtLzhmWHpXNmNGZ3ErRHorZGl4WXdmNzkrK25zYkZ4USt6L21zMW02dXJxY0RxZGpJNk9JZ2dDbXFZdDY3TW5DTUl6bjluVitOeEc1ckpFNXJJOEdacG5lRFJCUEo0bm01YnA3UEJoZDVpeG1DV3NOaE0ycncxelNjTmlFZ2tGN1FRQ2RteFdVODBGNEdnc3kwSTh6K0JRbkxvNk81MXRmbmJ2Q3RIZDRjZHFrWmlZVHBGSUZDa3BXK283WHVrQXRtRUl3S3ZDbGhLQW4yYTU0dS9URkF0emo1M3VybCtLSnNlL0ZRUUxOa2N6Z21CQzE3LzdsTHF1SXlBZ2lHWUU4ZlVDOEpVclYxQVVCVVZSK05HUGZrUjlmVDJTSkpGS3BZaEdvMHhQVHpNMU5WWHQrcjEvLzc1UjhmWFc4ZktUdHFJb2pJMk5NVFkyQnBRdnNMMjl2ZXpldlp2dTdtNGFHeHNKQm9PRVFpR0N3U0FPaHdPWHkwVW9GS3A1UmRobXBGQW9VQ3dXa1NUcHBmWk9McGVMcnE0dW5FNG41ODZkSTVGSUVBNkhlZlRvRVk4ZVBkb3dndS9UaUpJTnAzc0hkUTAvUmRkTEpCZXVFNDkrVFNaMUgxWGQySzRDRmFFbkhBNi85cjZoVUlnZE8zYmc5L3VabnA1ZWg5R3REcGxNaHJObno3SjM3MTY2dXJwcWxpMEY1VHoxc2JFeGJ0Kyt6Wi8vL0dmT25qMjd4VHArM3paZWZIMlJURTQ4L2dNRTYzK0FQM2dja3lXSXJpblk3STA0M0QzWW5kdEpMbHdqbDNtTVhJaFNraGRlT0NkYVMxd3VGKys5OXg2N2R1MzZ6czhFUWFDMXRaVWRPM1l3TURCZ0NNQUdtd3BKY3VEMnY0UGJ1d2VUeWMwejJVNHZwS3pPbEVvSkNvVUlpcEl6VHNvR0Jsc1BaZkcycHVnYTVISWxFc2tpaGF5TXpXYXVkdjVXUkdCVjFTZ1dGV1JaM1hBeEM3bDhpY0hoQmU0L2pMSjNkeDF0clY1NnV2enMzQlprYkNLMVpnSndzVmdrbFVxUlNDU1FaWGxKNjJ5YnpWYU5wMGtta3hTTHF6KzJ5anFwcmExdFdmYktGUUY0WkdTRStmbjVOUldLUEI0UEhSMGRkSFYxNFhLNTF1dzRyNkpZTEJLTHhaaWNuR1JtWm9aRUlyR3MxMXdxbFloRUlveU5qZUh6K1o2SkpsbHJDb1VDazVPVDNMOS9uNEdCQWFhbXBqYmtmc05TOFB2OTdOKy9ueE1uVG5EOCtIRjI3ZHBGVzFzYlpyTzUxa09yQ2JwZWppR0tSQ0lrazBrRVFWaldlL0cwY0ZiNWUyVWZRZE8wWlF0eEJoc1h1OTFPUzBzTFhWMWRORGMzYndqeDkybGtXU1lTaVRBOFBNekN3c0t5QldDVHlZU3U2NmlxdXFxZjJVU3l5TDM3YytSeUpSNCtXYUErN01UbnQxRVhkTkRVNkthbHpVdkFiU1dYSytGeFd3bjQ3ZGhzRXFuMHFnMWhSZWg2V1FoZVNPU0pKL0xFWW5rbXAxT0VBbmJzRGpOeVNXVnVMa3Voc0tYMlFDVEs0cThEUXdCZUZiYXNBUHltNUxQalYrWWpYNzZyYThyL3FhN3hwLy9LN21oRDE3OXJ6ZnN0ejVYS3ZnUlZWYmw1OHlheUxETTVPY2xISDMyRXpXYmp6cDA3WEw1OG1iR3hNYUxSS05Gb2xQbjUrUTIzeURMWVdKUktKZTdkdThmSXlBZ09od09yMVlySDR5RVVDbFZ6Z3R2YjIvbmtrMDg0ZE9nUVhxKzMxa1BlOEJTTFJYSzVISkZJaEVna2d0UHByTnFZdkFpTHhjS2hRNGY0NElNUCtQV3ZmODNGaXhleFdDeGtzOWtOK2YwVkJCR2JyUkdidlJXcnZSNVJ0R0t5K0xGWTZ4Qm5iS1FTZDFDVjVXVnJyQ2N1bDR1ZE8zZlMwdEx5MnZ0V1JLR2VuaDZlUEhteWFZcHBTcVVTUTBORERBd01FSTFHWCtvV3NkWk1URXh3OXV4WlB2LzhjKzdjdWNQazVPU3ljMWNNTmo2UzVNUVhQRUd3L3Z1NGZmc3dtWDNWMkF0QmtMQllRdmdDUjNDNE9pamtwOGdtSDVDTTN5Q1hIa1JWMTIvREtSUUs4ZEZISDlIYjIvdkNuemMzTjdOOSszYWNUaWVwVkdyZHhtVmc4S1pZN2ZYNGdzZHh1TXVPRDVyMjZpcHpBUkVkRFZtT1VjeE4vTGVhbXQ4Y0ZoY0dCZ2JMb1FTc2VjdUpwdXZFRXdVbXBsSjBSWDAwMXJzUXJkSXoyeDJxcGlITDZxSUF2TEhFZzF5dXhPQnduSnUzWjlqZEc4THZzOUZRNzZLbk84Q3R1N09NakNYVzVMaWFwcEhKWkloR282VFRhUUtCd0dzMzRNMW1NOEZna0hBNHpOVFUxSm9Jd01GZ2tJTUhEN0ovLy81bGlaTDVmSjZwcVNtR2g0ZlgxRFZKRkVVQ2dRQXRMUzAwTkRUVXJFQTluVTR6T2pySzRPQWdrVWhrMlpiYytYeWVodzhmY3ZIaVJSd09CL3YyN2NOcXRhN1JhTDlGMHpUbTUrY1pIQnprL3YzN0RBOFBFNC9ITjEzM2I2VVlZdS9ldlh6ODhjZDgvL3ZmWitmT25VdU95ZHVxNkxwT0xwY2puVTZqS0FwMnV4MmZ6MGMybXlXWHkxV0ZNRkVVcStLdUtJcElrb1FrU1ZVQnVQTHZVUDdNVkpvYVZxdWIwcUMyQ0lKQVMwc0xCdzhlcEt1cnEyWTU1QytqV0N6eTRNRURidDI2eGNEQXdMSmlCWjcrL09xNnZpYjdxWmxjaWJ2MzUraC9HTVZxbFFqNGJEUTF1dWxzOTlIZDVhZWh6b25aTEJHWnpWQ3NZZWZ2eTlDQitYaWUrWGdlVVJDd1dDUnNOaFBvT3ZuQ3hodnZHMkIwQUs4eWhnRDhFaFk3aUsrNHZMc0NUbGZQdnpKYi9FaVNmVEhtOTdtVFZ5WC9kNGtuTlVWUnVIMzdOcGxNaHI2K1Bpd1dDeU1qSXp4NjlNall0RFJZTnJxdWswNm5TYWVmTFV1eTJXeElra1FvRk9MQmd3ZjA5UFFRRG9jNWNPQUE3N3p6enBiT1ZDa1dpOGl5aktxcUtJcENzVmdrbTgyU3orZko1L05rTWhtU3lTVFpiSlpNSmtNNm5hWllMS0txS3FWU2lVS2hVSzNvL3ZqamorbnM3SHpsb3I2M3Q1Y2YvdkNIWExod2djSEJ3VFZaMEs4V29takg1ZG1OM2RrQmdsUVdlS3gxZUFLSEVVVXJidDgrNUdLVVFuNmFRbTRDdVRpSHBxNXRUdFZ5c0ZxdE5EVTFFUWdFbG5UL1VDakUwYU5IR1JnWTRQSGp4MnM4dXRVamtVZ3dPRGpJeU1nSW9WQUlTWHE5dzhScU1UWTJ4cDA3ZHpoLy9qeFhyMTZscjY5djArZEtHYndZaTdVT3QvOFFkUTAvd3UzYmkyUnlvdXNxdWw1ZVBPaDZ1V2pFWlBaZ3NuaXcycHV3MjF1d3U3cklwQWJJcFIrUnp3d2p5MHQxb0JVV3MybkVjb2VScnFQckdxL0xYaFlFZ2FhbUpucDZlbDVxQ1JjT2grbnE2bm9yTGVNTU5pK1NaTVBtYU1QaDZzWnM5cU85SW5MbVcwUjBkT1RDM0IveTJiR3JtaVp2bkl1MGdZSEJhckV1RnRDYXBqRVh5L0ZrYUlIdURoOEJudzI3d3d5YVRpVk1UdE4wU29xS29teThET0R5Rm96TzZFU0NPL2RtYVczeTBOcmlvYTNGUTEzSWdTUUtxR3MwNW5RNnpmVDBOTEZZYkVtV3kxYXJsVkFvUkgxOVBVNm5rMFFpc2VwamFtNXU1dmp4NDhzdS9DNFVDbFVMNkxYc0p2WDcvVFExTmRIUTBMQ3NEdVhWWm41K25nY1BIbkQvL24yaTBlaXlIMThvRkhqOCtERW1rd20vMzA5OWZUMHRMUzFyNnRwVTZRNGRIUjNsMGFOSERBME5NVHM3U3o2L3NkMjduc2ZqOGREVDA4UGh3NGM1Y2VJRUJ3NGNZUHYyN2NiOG5XOXR4YzFtTXhhTEJidmRUakFZUkJSRmNya2NwVklKVVJTeFdDeFlMSmFxOEZzUmhDdmlXZVZQVlZWSnA5TkVvOUZWc1pJMjJCZzRIQTcyN3QzTFJ4OTl4TTZkT3pkVXg3eXU2d3dORFhINThtWHUzYnUzck83ZnB6dllLNTIvYS9XWjFRRlYxY25sRkhLNURQTUxCYVpuTWp4K3NvREhZOFZxbFNqS0tyT3pPWEw1alZ0Z28razZoYUpDb2FnZ2JyQXU4RlZBQkt5TE4wTUFYZ1VNQWZnMUZQUFRmY240amYrbjFkYjRmM1Y1ZHkxNjJMOW9jMGJuZFJ1WXovUGt5Uk9lUEhteUt1TTBNSGllU2lWck5wdXRXa2E3WEM0KytlUVRmdkNESDNEaXhBbjI3dDI3cnNMU2NxbllmbFJ1aXFKUUtCU1FaUmxGVWFwVllhVlNxU3I2VnNUZGREcU5MTXZJc2t3dWx5T1pUSkpLcGNoa01zVGpjZWJtNWtna0VzVGpjZWJuNTE5WStkdlUxTVRldlh1eFdxMnZGSUM5WGkvNzl1MWp4NDRkakkrUGIraE9VNU0xZ051L0g3dXpFd0JOazlGMURVbHk0QXNkeHhzNmhpTEh5YVlIeVNUdms4c09JUmRuS2NrSjFGSWFSYzFXdXdOcmdTaUsyR3kySlU5MFhTNFgrL2Z2cDZ1cmExTUp3S1ZTaVFjUEhuRGx5aFY2ZTN2WHZIdGZsbVhtNXVZWUhCemsyclZybkRwMWlvc1hMMjY2VFFXREpTSUkyR3pOZUVQSENkUjloTXV6RzVQSnNaZ0QvdXhjUnRjMWRMMElDQWhJMkJ6dDJCeXR1THg3eUNUdmswN2NKSmNaUmk1RWtZc3hOTzExQlRBQ2dpQ0NJQzBLemErZlA3bGNMam83Ty9GNFBDKzlqOFBob0ttcGFjTlZRUnNZdkFxek5ZekR2UU9UMmMrM1RrS3YrajZJb0N1VTVBVUsrY25oWW1GMjgxellEQXdNbHN1YTcrWnBtczVDUE0vWVJKTElYSllkc29wZEZMNXpIMFhWVVZWdHFmWHU2MDRpVldUZ1VZenQzUUhxNjUwMDFydG9iL1VRQ2pxSXplZldSQVRPWkRKRUloSG01dVpvYW1wNnJRQnNzOWxvYW1xaXM3T1QvdjUrcHFhbVZuMU1vVkNJblR0MzB0WFZ0YXcxdnFxcUpKTkpZckhZbW5XVFdxMVdXbHBhNk9qb1dISWg3MXFnS0FyVDA5TThlUENBb2FHaDd4VFJML1U1SXBFSXNpelQzZDNOenAwNzhmbDh1TjN1TmJOaUxSYUwxWEUvZlBodzAxay9XeXdXd3VFdzI3WnQ0OGlSSTV3OGVaTERodzhUQ29WcUduZTBrUkFFQVpmTFJYMTlQUTBORFN3c0xHQXltYXA3V3FWU0NiUFpqTjF1eDI2M1l6YWJuK244QlpBa0NVM1RxamJuNCtQalZWdDNRd0RlM0FpQ2dOMXVaOGVPSGJ6Ly92dTg5OTU3TkRjMzEzcFl6NUJNSnVucjYrUFNwVXNNRHcranFrdnZTSzE4anRmQyt2bDE1QXNLazlOcHBpTVpSRUZBRkZuVWZ2UTFLeUpiYmJTdDkvMDJCT0JWeGhDQVgwTkpUa3paSEMyL2NycTI3WEY2ZHY1Y0ZGOGdPZ2dzWnVXOFpMSlgrZmV0OTRVMDJHUmtNaGxPblRyRjdkdTMrY2xQZnNMLzlELzlUM1IzZHkvcHNmbDh2bG85V0xIa2VKa05UWVduTDlwUEw0WXFqNjFjNURWTmUrWWlYN25veTdKTVBwK3YydDdFNDNGbVptYUlSQ0prczltcUNGenA4bjFhQUU2bFVzaXlYTTA3S1pWS0tJcFM3Zkt0VEtKZmhkVnF4ZUZ3WURLOS9sUVpDQVRZczJjUDkrN2RZM3g4ZkVudjZYb2pDQkkyZXd0Mjl6Yk0xaENhbWtlbll2VXFJZ2dtQkVIQ2JLM0RMVG14T3pzcGxSWW9GV01VQ2pQazA4TmtNNDhvWk1mWDFmcjEyZGZ3YldYclVqQ2J6Zmo5ZnR4dTl4cVBiUFY1K1BBaG4zLytPU2RQbnVUQWdRTnJkaHhabHJsOCtUS2ZmZllaTjIvZVpHaG9pT25wNlEzZHliNTJMRVdBMmZ6WW5SM1VOZndFWCtnRVZsc1Rrc24ra2s3Y0YzelBCQUVCTTFaclBhYUFDNmU3RzdrWUpadCtRbkwrR3VuMEFLcjhNdnZBeW5WRFhOYXVka05EQTExZFhhKzFocXVycTZPMXRaVUhEeDRzNDlrTkRHcUgzZG1CMjdzUHM5bjdWRUhFeXhBUVJSTktLVTBtZVo5OFp2aldlbzNUd01CZzNWbGF2dFFib3V1UXp5c2tVd1V5V1JsVjFWNlFBYXlqbERTVTBzYnJBSzZReWNpTVRhUVluMHloS0RwTmpXNTI3NnpqM3Ywb3Nxd1NUNjYrVVVJbWsyRnVibzVvTkVxeFdIenRXc05tczlIZDNjMysvZnU1ZnYwNi9mMzlxejRtcTlWS0lCQllVWUczb2lpdlhSdS9DUjZQaCs3dWJucDZldFkxTS9kcFZGVWxHbzB5T2pyS3lNZ0ljM056SzdZWTFYV2RlRHpPOFBBd2c0T0QxZHpsdFNxdVR5UVNEQTBOY2UvZVBSNDllc1RjM055R0xqcC9HcGZMUlU5UER3Y09IS2hhbE8vY3VYTkxPOUt0QkVFUXFnV3R1VndPU1pLcXNZQ1ZYRlNyMVlyTlpzTm1zMVc3Z0N0N2FwVU80bncreitUa0pIZnUzS251azIzRWFES0Q1V0cxV3RtMmJSc2ZmZlFSSjA2YzJIRGlyeXpMVlNlNXZyNCtZckhZc2g3LzlGNXdyWW9WTkUxSFExK0hBQTZESlZDeGdMWmphSmVyZ3ZFbUxvRkNidkoyZmZOZjNYTDczL201M2RHR1VPMWErUllCRWFNb3dXQXprTTFteVdhem5EcDltdVBIaitQeGVGNDUrUjRZR09EcTFhczhmUGlRWkRLSkxNc3ZGWUNmcmo1OEVaV2ZQUzBBVi82dWFkb3pGMzFOMDFBVUJWbVdxN2tsMld5V2hZVUY0dkU0aFVLaE9wR3RDTWdWMFhnMUpneUNJT0IydTZ0VzJxOURraVRxNnVwZTJhRldhOHpXSUU1M0R4WkxvTnlCOXhUbExyL0ZSYVFnWWpJNU1KbmRXUFZHTkRXUG81U2s1TmxOSVhlQVFuNXk4VGFGbkkrZ3lBazBmZTAyREo2bThybFk2aUttOGxsNi9mMDNudkJYS0JTNGNlTUd2LzcxcjdGYXJlemF0V3RWbnorZno5UGYzODgzMzN6RDExOS96YzJiTjVtY25IeXJGNGpsVTVLd1pTdWtCVVFjN3UwRTY3OVBJUHdSTmtjclFIbE84MXhudnlDSUNLS2xuRGVxcStoNnFYeWUwRXJvbEF0S3l0YlEzc1ZNOFZaczlsWmM2WWRrVWcvSnBaOGdGK2RlT0k2eTJGdzVaN3ordmZaNnZZUkNvZGQyL29mRFlUNysrT09xUFo2QndVYkdiUGJnZFBYZ2RIVWpTYmJYWnY4Q0NJS0pVaWxKT243Ny81M0xqbHhhaDJFYUdCalVqbldaak9pNmpxN3BpK3V6Ny81Y1ZUVUtSWVdpckd6WURwTlNTU09kTHBKS0YxRlZqVkRRd1o3ZU9uYjMxakU5azE0VEFUaWJ6VEk3TzBzc0ZsdFMwYVRGWXFHcHFZbnQyN2NURG9kWGZUd0FKcE5wMmQyVW1xWlZDNnNyM1ZkclFUQVlwTGUzbDIzYnR0V3NNRGViemZMNDhXTUdCZ2FZbVpsNTQySlhVUlJKSnBOTVRVMHhQejlQVzF2Ym1nakF5V1NTNGVGaDd0NjlTMzkvUDVPVGsyUXltVlUvem1wVEtjVGV2bjA3eDQ0ZDQ3MzMzbVAvL3YwME56ZXZTMmJ5WnNSaXNWQlhWNGNnQ0hnOEhoS0pCS3FxVmhzVHJGWXJKcE1KaThYeVRBZHdwUkZEVlZVaWtRakpaSko4UGs4OEhuOG1QOWhnY3lLS0lrNm5rODdPVG5idTNJbmI3U2FUeVZTYmFTcTg3dmY4dWx6ZHB4Ly85TjVzaGFmM1haOTJpNUJsbVlXRkJXN2Z2czNkdTNlWm1wcGFkb0dLMGFWdThCd2lZS0VzQUJ0aTJ5cGdDTUJMcEZpWWVaVFBqbUN4MW1FeWVaNFRnSVhGenJtWHZKM0dTY3hnQXpJM044ZlpzMmZwNnVvaUZBcDlSN2hOcDlNOGV2U0lUei85bEgvNnAzOTY2enFxZEYwbm04MVNMQmFYTkJGUlZaVnNOdnRDSyttTmd0M1JpdE85QTBtMG83L1F5bjRSWFVQVE5hQThxUk1FRXhackNLczFqTXV6QzFYTlVjaFBrMDAvSXA5K1FpRS9RNmswVDZtVVFpMmxVWlhNZDRwa1ZvdENvY0RFeEFTeFdHeEpWWStLb3BCTUpqZVZSZGJUek0vUDg2dGYvUXFQeDBNd0dLUyt2djZObnpPVlNqRTVPY21EQnc4NGMrWU1mL3pqSDlmRWhzNWdZeUZLTnB5dUhZUWFQc0VYZWgrTExReTY5b0x2cW9nb210QjBoVkl4aHE0VkVTVTdKcE1IVWJLZ2F3cWdQVnMwQWxpc1lheldPdHplM1dUU0Qwbk9YMSswa0k4aEYrWlFsYWMzcXBabkkyazJtN0haYksvZDFQVDcvZnpnQnovZzNyMTdQSDc4MkZoRUdteFlSTkdDeTdNSGwyY1hKck4zc2ZyazljVTN1cTVTS2kyUXl3eGRsd3ZSb2JVZnFZR0JRWTFRV1ljTVlLams2RDYzWlNGOCt6K2xra291WC9yL3MvZm5zWkhrZVhvZi9Jazc4czVrOGlhTFpGV1J4YnE3dXF1cmorcnBtZTY1ZG1abmRsK3ZBTU0yL0w3N2h3d0pDd3dzdkladDJIZ05DUXY3ZlFFYmxpQkJob0I5SmIrN2hxRDFqbGRhN1dwMzUrZzVlcVo3dXJ2dSsyYXhEdDVuSnZNKzRuei9pSXlvSkl0MWsxV3M2dndBQ1I0WkdSRVpHUm5INy9rK3o1ZEsxZHJTNTFYTGNqRU1HOGQxaWNRMWhuZWsyRFhjeHVtenM1dXl2RktweE16TURBc0xDNDh0SklxaVNDS1JJQjZQRXc2SE4vVCtKSmxNa2t3bUh4bEYzWXhsV1dReUdTWW1KamFsSjNFem5aMmQ3TisvbjUwN2Q3NndkaDFMUzB1Y1AzK2U4K2ZQczdDdzhNenpFd1NCV3ExR29WQ2dXcTF1eXZlalZxdHg5KzVkenA0OXkrblRweGtiRzl2MHoyb2o4TVdxZ3djUGN1VElrYURYYjA5UHo0dGV0UzJQS0lwMGRuWVNqVVlEOTY2aUtHaWFocUlvRDcwZnNpeUx1M2Z2c3JDd3dPenNMQ3NySzV2cTdHK3grZmd0ME9MeE9LcXFrcy9uZ3lRQTB6UlhHV244MzV2L0J3VEZQWDRTb3VNNHdYN2tDNi9Oci9ORjN1YjVyUlYvL2YzS2p4MHZGb3RNVEV4dzVjcVZMVDBtMnVLbFFjRFRMR1dlUXlMT2w0R1dBUHlZT0k1cDJMYlJjSzM0bVVoZTN6cWhNVmdxaWdxQ0lEYW1hZEZpYTFNc0ZqbC8vankzYnQzaTZOR2o5MVdySGp0MmpELzVrei9oazA4K1lXNXU3Z1d0NVlzbGs4bXd0TFJFcFZKQjEvV0hUbHV2MTVtWm1TR2J6VDZudFhzeVJDbUVIaGtpRk4yQktJVWVJMnFTeHZOQ0kvTFY3OXNwSWd0eHdoRWRUZXZFVEw2R2JSUXd6U3hHYlpGS2VZSks4VHJWOGgwc2ErTXJrL1A1UEtkT25lTHc0Y09QSlFEN24wc21rM25FbEZ0M1FPdjI3ZHY4NkVjL29yT3prNy96ZC83T1EyUFRtaS9nL1dyZ1ppWW1KdmowMDAvNStPT1B1WERoUXRBWHFJV0hkNSswZGZlRnAwV1dvOFNTaDJqdi9pM2lxVGVRMVdUZzdGMU5JNVVCQWFPMlJDNXpIS00rVHpneVNDejVCcXJleGIwWTU3V3Y5SXJoWkxXTldPSVFlbmdRMDhoUUswOVF5SjZsbUR0SHJUYi9sT3N2b3lqS0k2UGZKVWxpZUhpWXdjRkJWRlhkZWpIbUFzaHlBbG1PNGpnR2xsWEVzVnMzeUY5R0ZLMmRSUHRSSXZFOUlQRElvaWxCRUhFQnl5cGkxQll3alpWVzFVNkxGcTgyVnVQUnVCamZQUHdlZC9mSE8zdUxOUzJIY3NXa1VqVzNkRjI3SURUaUcyMFhTWk5wNzRpeXJTOUdNdm53ZTdpbnBWYXJNVDgvejhMQ3doTUp1WUlna0U2bjZlbnA0YzZkT3h1U3ZCT1B4emw0OENDN2R1MGlFb2s4OXV0cXRScmo0K09jUDMrZTJkblpUUkV3L2I2bS9mMzliTisrbmM3T3poZlM4OVcyN1NDZTlNYU5HeFFLaFdlZXArdTZRYnNxd3pBMnZQK3ZaVmxNVGs1eTVzd1pqaDgvenBVclYxaFlXTmkwUHMwYmdTekxwTk5wZHU3Y3ladHZ2c25SbzBjNWZQZ3cvZjM5anh4UGFiR2FjRGo4eVBZM3pkaTJ6ZVRrSkpjdlgrYnk1Y3RNVGs1dWVhZTQvNTE1MkhkblBTZnFsd2svL2xzVVJSWVhGemwxNmhRWEwxNE1SRmkvbFY2elVMczJBVThVeGFBM2RLMVd3N2J0SU1XeGVmcG04ZGVmZDdQNDZ5ZngrZE9BZC8vdHU4LzkrYmRvc1FINEF2RGpWN1cxZUNpdnRBQXNpb3FzcUcwN3RGRFBRVVZOOVlDTFVWKytXNi9PWFRUcW1Za25tWmZyMm5YWE1SN2k1aFdRUkExUkNtRmI1UTFZK3hZdE5oblhaWGw1bVd3MmkyM2Jxd1JnWDJUNzZLT1BXRmxaZVlFcitXSXBGb3RNVFUweE16TkRNcGw4Nk0ycVlSak16TXhzeU0za1JpTWdvdWs5aENNNzBMUk9CRkZ1dVBnZUI4OFM0Tkk4UUMxNHZZTFZOaFF0alJ1MmNld2F0bFVpVWx1bW5qeEl2VHBEclRaTHJUSk52VGFIVlYvQmRwNzlZckJTcVRBMk5zYkV4QVNXWlQyeVAzTzlYdWY2OWV2Y3ZYdjNtWmY5b25CZGx3c1hMdkRESC82UVZDckYrKysvVDN0Nys3clRPbzRUeEtNMzN6RGV2WHVYTTJmTzhNVVhYM0R5NUVtdVhMbnlwZjV1UDV4WDUrYlM3L3NkUzcxR0t2MFZZcW5YVWRTa0YrTzhwZ2hFRUwwa0U5dXVVaW5lSXJmOHhiOVpXZjc4TDB3amMxdlRPM2NWQzlmZWlTYjJ2aEdLREgrbzZ6M0ljaFF2THR2R2RhM2dBUUt5SEVGVzQ0UkMvWVRDQStoNkg2SG9kZ3E1QzFSSzR4aTFKM2RkUE82Z1dqZ2NKaDZQbyt2NmxoS0FOYjJiYVBJQWtlZ0lzaExIY1F6cXRUbktoVEVxcFZ0WVp1NUZyMktMNTRRZ3l1amhQaUt4WFNoYU82NXJQdnF3SXdnSXJvdGw1cWhYWjdIdDB0SnpXZGtXTFZxOEtKNmJBOWkwYk9wMUM5TjB2R09SS0RTVzdQVUN0aXlYYXRXaVZ0L2FUZkZNeTZGdTJKaVdBNHFFR2cvVDB4MGxsZEpSVlJIRDJOak42ZmVBWFZwYUNtSmFIeWYrTnhRS01UUTB4TzdkdXlrVUNpd3RQZnZoZk9mT25Yem5POS9oM1hmZmZhTCt1cVZTaWF0WHIzTG16SmxOU3dPS1JDSU1EUTJ4YytkT09qbzZYb2o0YTFrV0N3c0xqSTJOTVRZMnhzTEN3b1lJNzQ3anNMS3l3c0xDQXNWaWNVUGZtMjNiek16TWNPN2NPVDcvL0hQT25qM0x6TXpNbGhaL3crRXdPM2Z1NU9EQmd4dzZkQ2pvOWJ0dDI3WVh2V3BiR2w5NDg5dXArUUpiOC8rQjRIKytFR2ZiZGpCOXZWNG5tODF5L2ZwMVRwOCt6WTBiTjhoa01sdDJmL0VMMVgzeDBIL3YvdS9OYnRUbUZtQmZSaEhZZCs0V2kwWHUzTGtUdE94cUZtaWJUUUNQY2dEN3J1SG0vVzN0YTF1MDJBSUlnQUpvdENLZ040UlhWZ0FXSlQwYWp1NDhHazNzL3lpYTJJOGU2c1oxSFdyVkdjcUY2Lzl6T0xielI1WGlyYzhlZDM2Q0lHdWlxSU1nc25hVXBpR05JTWxSRkxVTjI2cmNOMDJMRmxzUjB6VHY2NmZxT0E2VGs1UGN2bjE3UzRxWnp4UGJ0cmx5NVFySGpoMWorL2J0UktQUmRhZnpvM1ptWjJlMzVFVzJKRWVJSjE4akVodEZsUHpJTGU4WTVibDZKYStQdWVDbkc5QVVEZXMycFJxNHdVOVA3TGszRU9RNS8xSW9haHZSK0M1UDNLZ3ZVQ25jb0Z5NlNiMHlpMmt1WXhwRkxLdUFiWldleXZubU9BNkxpNHZNemMxUnFWUWUyWE41ZG5hV1M1Y3VzYmk0ZmkvU2w0VmlzY2l4WThlSXhXSW9pc0xYdi83MWRTdUNIY2VoVUNpd3NySVNmSzh6bVF6SGpoM2pSei82RWVmT25hTmNiaFVwUFpoWDU5eXRxQ25Da1ozRVU0ZEpwTjhpSE4ySktHbzRkcDFWd3E4Z0lRZ2lqbXRqMUJlb2xHK3pzdlRaUDhrdmYvR24xY3JVdWNaa0Y0Ri9GMDNzL25ZOGRlUnFMTDduQjFxb0QwVk5vMmh0aUpMbUhTZGN1M0hqYUlManhVTEpjcHhZNmpWQzBTSENzUkh5MmROVWltUFU2MHVZOVF5MlZYemtlMm11U240VXpUZXdMeHIvdUtocG5jUVNCMmpyL2dhUjZBaWlwQUVPUm0ySll1NFN1ZXdwYW8zVUJOdXE0RGgxSEx1SzQyd2RBYnZGeGlITGNmVHdJSXFTUUJBa1hNZmswY2NlR1VIdzlwbEs2ZGIveTdKS0wvZEpyVVdMRm8vQ2JqdzIzUUZjcjF2a0MzWEtGUVBiY2IzN0FhRnhUSExCc2h6cWRSdkwydHFEd29aaFU2L2IyTFlEb2dpaVRGc3FSR2Q3aEdSQ1ozRnA0OXZCMUdvMXN0bHMwSE16bFVvOXNtQXRHbzJ5ZS9kdTNuampEV1ptWmpaTUFQN3d3dzg1ZE9qUUUwVkFsOHRsYnQyNnhkV3JWemN0RVNnV2k3RnIxeTUyN05qeFJHN0dqU1NYeTNINThtVXVYYnJFek16TWhoVUlPbzVETHBkamFtcUtpWWtKRmhZVzZPbnBlV1luc09NNFRFOVBjK3JVS1Q3NTVCTk9uejdOM2J0M3FWYXJHN0xlRzRtZjBwTktwUmdaR2VIdHQ5L202TkdqSER4NGtON2UzazNwOWJ2ZWRmNTZ2VXNmOVB1RG5uL1EveDQxajRlOTFoZHJEY01JeERwLy8vQUx0K3YxZXVESTlKMlVobUVFVWIwK3plS3ZQNDduVDE4dWw1bVptV0Y4Zkp6cjE2OHpPenU3SmZlWFpnUkJRSktrUUFSdWZqUzdVdjN4eWkrck1Pa0wvS1pwQmtMdTJ2dmRyWERmMjZMRkJ1TUx3RG90QVhoRGVHVUZZRVZMNzBoMWZQV2p0bzczVVBVK3BNYmdaQ1MyaTFqaTRIK3ZhdTI5NGVpUVZTbmRQZjQ0ODFQMXpoMTZaQnVpcERmRWtLWURiRU1ja2RVRW10YUpVVnZBZVZoL3pSWXR0Z2pyWFZqVzYzVW1KaWFZblowTllqMit6RnkrZkprZi8vakhIRDE2bFAzNzk2ODd6ZlhyMS9uNXozKytaZnVvYXVFK2t1bDNpVVIzQWVBNjl6NVgxM1VSc0hHeDF4MS9YdjB2WWMxLzNYdi9iOFJFSTRnSWlFaXlnaTcyb3lncG9zbjlXRVlCeTF6Qk5QS04vc0hYcVJSdVVLOHYzcmVVUjdHMHRNVDQrRGgzN3R6aDRNR0REN3pKbnArZjU5aXhZNHlQanovUi9MY3FwVktKWC83eWwzUjJkdExiMjh2Qmd3ZlhkVURuY2puT25EbkRsU3RYbUo2ZVpucDZPaWhRYVBVQStqSWdFb29Na21oN2kyVDZMVUtSWVZTdERVRlVHdGNyYTV2OGliaXVSYTA4UlM1N2tsem0yTjh0RjYvL3pLemZIekZieWwvL21hS2xieFN6cC85YUMvY2RpQ1lPL3VOaytnaDZxQjlCa084cmovT1BHWUlnSVNzcFlvblgwTVBiTU9wTFZNdVRsUEpYS09VdlVhdE1OZHpENjFPcFZNam44NDkxVHZKN3NiM292dCtpcUJLT2pwRHNlSTlJYkJlYTNvMGU2a2VTSXdnSXVJQ3FkWkZJaHdoRnQyUFVsekNOSEpheGdsRmZwRnFacEZhWnhLZ3Q0MnhBZWtLTHJZT2lkeEtLYkVlV1l3OUpGbHFOSUlpNGprVzFNa0c1Y08wWGxsbGEzdVRWYk5HaXhZdkY0VGs1Z0EzVFlYR3BRaTVYODl5ejBDZ0tCVndYeTNJd2pLMS9UMmpiRHJidE5FVlppOFNpR2ozZFVmcDZZcFJLWG96MVJwUE5ybkQzcm5mdkhBNkhIeGx6cStzNnc4UERaRElaenB3NXcvbno1NTlwK2FJb2trcWw2T25wZWVLSVhkdTJXVnBhWW01dWJ0UHUrMk94R1AzOS9VKzFmaHZGN093c0owK2U1T3pac3l3dmIrenAwM2ZxbmpsemhvR0JBUTRmUHN6UTBOQlR6ODgwVFNZbUpqaDkralMvL3ZXdk9YYnNHTGR2Mzk2U1lwNnU2L1QyOWpJOFBNeisvZnM1ZE9nUUJ3OGVaSFIwOUlrK2E5L04yaHhoQ3dSeHRNM2pWYjRJMm14a2FIWXVOdmN1OWVjSnJQc2FmMXIvOWY3cmZKcm50M2EremEvenh5S2FoVmtmZjc3TkltYXpBUHdnUjZZL3IrYjFXZnNlZlFldzY3clVhalV5bVF6THk4dGtNaG1LeGVLV05DWTA0MjhiSUhqLzZ6bUFtei9ITHl0ZlpnRzh4WmVXNWdqb2xnQzhBYnl5QXJDcXRRMUdFL3VJeEhhRElIdHVOaHhFTVk2c0pIRmQ2L2N0cTF4VXRmWWxvNzU4NjJIelV0UmtYOCsyLzJSZktOU1BLS3JyUktkNkp5TkpqbnA5OVFRWmFBbkFMYlkrMVdxVlVxbEVyVllMS25JTncyQnhjWkY4UHYrQzEyNXJVS2xVT0gzNk5ELzV5VTlRRklYaDRlRWczc3N3RENZbkovblJqMzdFVDM3eWt5MFpxYXRxN2NTU0J3bkhocEdVYUpCUTRQVXJkN0d0TXZYYUhFWnRIdHV1TnA0SFZVdWpodnBRdFRTU0hFVVNOUkNraGpONHRmdTNPU1lhMTc0bkN3c1NpcEpFVWRzZzVPRFlOUnk3am1ua2lNYjNVRytib1ZhYm8xNmRwVjZkb1Y1YnhMYUtqK3lGYUJnR1gzenhCZjM5L2NSaU1YYnMySEhmTk5sc2xsLzk2bGY4aC8vd0gxaFllUEs0MmExS1BwL254SWtUdlA3NjYrelpzK2MrQVZoUkZHcTFHbWZQbnVWdi91WnZXRnBhK3RJNytiODBDQ0thM2tza1Brb2krUWF4NUVIMGNEK1NIQVhYV1ZPWTVzVzRDNktFWlJhcGxNWllXVHIyUjduczhYOVhMZDM1M0hHTUJ5cU9wdGRDWTBLV3d5ZHJsYW56bGRMTnIwVGplOTZNeEVhL3I0Y0hVTlFFdUdKd25QQWZRVFMwRWtjTDlSRUtEeEtPYkNjVzMwdXBlSTF5OFFhMXl0UzZiVFJtWm1hNGR1M2FZL1VVOGdjK1h1U2doeUJJUkJQN2FlLytOdkcyTjFIMUxrUWtRRmpsd0E2T2tVcVNVSGdRMjY3aTJCVk1JNDloTEdIVWw3Q01GVXh6QmFPZXhUSldzTXc4bGxuQXRpcTRtTGlPL2NoajVqTyttOFpQbC91TGdGbzhEYnJlUXlRNmpDaEg4QXgrRDhQN3JycXVTYTAyUjZWMDgzK3QxK1l2UFkvMWJOR2l4UXVsMlFHOHVRdXlIRExaQ2pOelJlWVhTdlFQSkNDa0FBS081VkNyVzlSZkFnSFljY0ZwcEZqak9pQTRoTUlLTzdlbjJEUGF3WEttU21WbTR3WGdYRzZGVzdkdWN1Zk95R09KbkxJczA5SFJ3Y2pJQ0VORFE4VGo4YWUrVmhkRmtlSGg0YWQybmZyOWF6ZXpaMk00SEtham80UDI5dlpOY1lNK2ltdzJ5N1ZyMXpoMTZoUmpZMk9iVWlDWXpXWTVjK1lNbXFaUnJWWXhUWk50MjdZRmZUc2ZOeHE2V3EweU1USEJpUk1uK1BUVFR6bCsvRGkzYjkvZVVqMDEvZjFNRkVYaThUajkvZjBjUEhpUW8wZVBzbS9mUHRyYjJ3TmhFMWdsY1BwaW52KzNaVm5VNjNVcWxjcDl2VVY5Y2RVMFRhclY2aXFCMkRBTTZ2WDZLbGZ0ZXU1WXk3SldpYnZWYWpWdzI0STNwdEM4YnMxQ05IRGYvSnJuMi93NmY1djQ2OXBjY04zczBIeVEyN2o1dWJVT3ovV21iMzVkczFqcXIvOWFJWHNyMGl6Mk45K3pOUi9IMWpxdnYrd2ljSXNXWDBKYUF2QUc4a29Ld0tJb3k0bjAyMTJ5a2tRUUZXeXJCbzJZWnR0MXdIVUpoUWVJSncvOW9KQTkvZGZBQXdWZ1JZbTF4NUtIdmgrSjdmcDlTWTQyWEJ0clR6eHVZN2txa2hSdXhFUzNhTEgxTVF5RGJEWkxOcHNOSXFzc3k2SllMRzdKS3RNWHhmTHlNbi94RjM5QnVWem0zWGZmcGFPakE5dTJtWitmNS96NTgvemtKei9oNnRXclc5QXhMUkNPalpKSXZZV3NKQm94azQxbkJBWGJLbERLWHlLWFBVbTFmUHMvdDgzaXNtVVc1Z0cwY1A5cjRkakl2dzZGQjFHMURoUTFpU1RIa1pVNHNoeEZsSFJQOUhXOUZtWDNMc2liTDlUdHB2aG9BQkZSRHFISllmUndMd2hDUTN5NlRhVjRnMHA1QXFNMmoxbGZ4akF5V0dadXpldnZjZTNhTmY3OHovK2NVQ2pFMTc3Mk5kcmEybEJWRmNkeHlHYXpYTDU4bWIvNnE3L2lpeSsrZU9YMjVjbkpTVDc5OUZNT0hqeklHMis4c1NycWJXbHBpY3VYTDNQbXpCbHUzWHBvYmRPWEVyL3c0VlVTc0VSUlFWSFQ2T0Z0UkJMN1NiYTlSU1EyaWl4SGNSeGpUZVN6Z0NCS2dJaHIxNm5YWmlrVnJwSExIUHZEZlBiMHY2MVg1NjgrN25JdHE1SURmZ244TWhRWk9CSlB2WGs1bm56dHZ3OUZCbERVZGhRMWhTaDYrNlovTEhBY0UyaEVReXNKWW9razBkZ29zZVJCQ3JtekZGYk9VeTNlcEZxZDlmcWlObGhjWE9UQ2hRdk16OC9UMjl2N3dIVXlESU56NTg2OVVOZS9LS3BFNHJ0cDcva09iUjFmUlpZVHVFR1UvdHBJdWVaanBJQWtSNURrQ0tyV1FZUVJ2TGg5RTlNc1VLdk5ZMVRuTWVxK01KekhjU3BlWVkxVHg3YThBaDdicWVJNmh2ZlpPMGFRVXROaWE2QW9TY0xSbmVqaGJZaWlkbDh2N3ZVUUJBblR5SkRQbnFhVXYvcHIyNjV2blpIZ0ZpMWFiQmJQVFFCMmdYTFpaUHpPQ3Vjdnp0UFRIYU52cEEwRUNkTjBLSmROVEhPcjNlUGNqMjA3V0pidE9ZQWRGeVNIY0ZSbC8rNE9abVpMak4vT01qV3o4VVdSdVpVc2QyNlBNemx4aDljUEhZSjArcEd2a1NTSnJxNHU5dTdkeTc1OSs3aHk1Y3BUaWNERHc4UDh6dS84RHUrODg4NFR4U3U3cmt1cFZBcDYxMjRta1VpRXpzNU9Pam82VUJSbFU1ZTFsa0tod1BYcjF6bDM3aHczYnR3Z204MXV5bko4MTY3ak9PVHplU1luSnhrZEhhV25wNGUydGpaaXNSaWhVQWhkMXgvNE9TMHZMM1B6NWszT25qM0xaNTk5eHZuejU3bDc5KzZXRTM5bFdVYlROTUxoTUcxdGJTaUtRcWxVQ3RaVkVJUWdydGEyN2VCM1g1RDBSZFZtTWRnWFpadGpmNXVGMjNxOXZ1cC92cWpjTE1JMk8zcWJoVkJZN1NSZVQvQnQ3alhiTEFDdjdiZmIvR2p4N0xUaWkxdTBhUEVRV2oyQU41aFhUZ0NXSkZVWFJVMlhSTzFmZVFPUGZzL2VSa1ZWSU44S0NJS0lJTW9QTEVOVTFGUmZOSEhndTZuT3IvMVJLRFlDc0s3TElnZ1pFaFZFU1VNUXBJMThTeTFhYkNxNVhJNmxwU1cyYjkrT0pFbll0azJsVXRtdzNqaXZBdlY2bmZQbnp6TS9QOC9ISDM5TUtwWENjUnlXbDVlWm5aMWxZV0ZoUzk0SWFLRWVZb21EUk9LN2tlUXdUcEJlSURSNm9rK3hQUC9SZjVmTG52eFR4NjVrYlB1ZTYwK1N0TEZ5NmViSHNoenZWZFJrbjZLbXRtbWh2bjhlamUwbUhOK0RwbmNoaWdyY1Z4THprSmhvOEdLaUVZUGV3NHFTSkJyZlF5Z3lTTklxWVJwWmpOb1NoZHhac2dzZlk1b1BkcUxmdUhHRGYva3YveVVmZi93eFhWMWQ2THFPYVpwa3MxbnUzcjNMblR0M0tKVkt6N3dkdHhyWmJKWlBQdm1FWkRKSnRWcmw3YmZmSmhRS01UazV5Y2NmZjh5Zi8vbWZQM09jM0t1SGdLcWxFVVVObzU1NVpTSjFKVkVubXRoSEl2MDIwZGh1dEhBL2l0cm1GYVBSNk9OM253QW80dGcxcXFYYnJDeC85aWU1N1BHL3JKWW5qbGxtOGFrejhhcmx5Vk9LbXBnczV5Ly9RZy8zSDRqRTkvM1RlTnRoUXVGQkpHbDlKNHpnWDRkSklVS1JJV1ExUlNRNnlzcnlaNWl6ZjR0cHJPNUZOejA5emVuVHA5bTJiUnNkSFIzcnpuTm1ab2FQUHZxSUN4Y3VQTzFiZVdiMGNEOGR2YjlMVzhmN3lISWM3OWozTUJHMlNaeHYvUFNqOUwxb2ZSVlYxSkhsQkU1NENOY3hzSjA2amxQSHRXdEJzb0p0VjdHc0lvYVJhY1JKWnpDcWl4ajFCU3dyai92VVRnRDNBYiszZURTcno0ZVNIQ2FXZW9OWTRnQ0tFZ2RCZU1UbjRyM2VkVTJxbFFseXkxLzhnMHJwMXFlYnU4NHRXclRZSWxpTngzTTU4TnFPeSswN09UNzlmSXBrSXNSWEZaRjBkNVNGeFJMWmxTcUd1ZldMaVd6YndUQWRIQWRQT3BkQWora01ENmVaWGFqdytmRnBSSEYrdzUxeHhXS1JxY2tKcHFZbW4waE1EWWZEN04rL242OSs5YXRVS2hVdVhyejRSRUtJSkVrY1BueVkzL3U5MzJQLy92MUVJcEhIZm0ydFZ1UE9uVHRjdm54NVEzb1FQNHh3T0V4blp5ZnBkSHJkMWpXYmhldTZURTVPY3VMRUNjNmNPY1A4L1B5bUxxOWFyWExuemgwV0Z4ZTVkdTBhSXlNajdONjltOEhCUVRvNk9vakg0OFRqY1RvNk91anM3RVRYOWFENGZtRmhnV3ZYcm5IczJERk9uanpKbFN0WFdGaFl3REMyWHFxZ0pFbUVRaUhpOFRpcXFyS3lzc0taTTJlNGRPa1NraVJobW1iZ3pQWEZYY013MW5YQ05rYzNQNnh2NzNyUCsvOWYrNXIxK3FQNk5JdkZhOWRsdmI5YnRHalJvc1VMUmNMckFmekthWmN2Z2xkdUkzb0JkUzZPWS82QlkxZi95SFh0UmlTejU3d1FSUlhYZGFuWEZxbFZaM0dzeXJxWnJWcW9lMjh5L2U3ZlNiVy85ejlGa3dkUWxGUVFZZmdnQkVGQkVGdkZDUzAyRmo4R1piTXVSdXYxT3VWeUdjZHhrQ1JwVmZWa2kzdjR2WkVuSmlaUUZDV29HdDJxU0hLVVpQcGRFdW0zVUpRa3Znamg5ZWwwcUZZbXlDNS9UaUYzN2k5TUkzZGZyOCtHdzJpbThUZ2x5Wm91SzZsZmxndlhEK2dyWncvbzRZRmRvY2pBZjZ6cnZTaHFHa2tPSTBvcTRNZEUrN0drcTRWZ2J6OTJtdG9lQ29pU2ppUkhFZlF1SEdjYnJtTWhTaHFsM0lXSENzQ080M0Q3OW0xdTM3NU5MQlpEbHVVZzN1bFY3blhydWk3VDA5UDh6ZC84RFRNek00eU9qcUpwR291TGkxeTZkSWtMRnk2OGtzTDMwNkpxSFVUaWU0bEVkMklhSzZ3cy9RYmp3UW5ITHdXS21pUVUyVTQwdm85WThnRGh5RENxM29rb2FRMm5yY0dxTVdOQlJCUVZYTmZHcUM5U3pGMGt2M3o4Znl6a0wveHR0VHh4YWlQV3lUVHlDOENDSklWT1ZDdVQ1OHFsc2JkajhiMXZSK0s3LzA0b1BJaVh5aUkza2dPc3BtTUVDS0xTU0Jwb3d6U3paQlovaWJsbXpHdHBhWWwvOSsvK0hjbGtrdTkvLy92M09TaW1wNmY1MmM5K3htOSs4eHN5bWRYaThhTzRkNTZGWnhscmw2UVFvY2gyWW9rRGFIbzNsbG5pOFZzNE5nMDZOVVhwZStzbk5sSm1RbDdLakNCNDYrblkzclowYkJ6WGFqaUJTMTVNdEZYRU1uS1laZzdieW1NYUpTeXowSWlRem1OYlJTeTdndXZVY1ozVm4wZUx6VUhWT2tpbTN5WVMyd1dJOElqdExUUVNoUXhqaVhMaEdwWGkyQ2UyWFdzZDNGdTArSEx3WEFWZ2dNV2xDaWZQemlLS2tNMVczTzNES2VxbE9rdExSY0Y2Q1J6QXJ1c0oyUTZTMXdJTUZVR1YwRHRDOUcycjBObWRKQkxWS1JZMk5nTFl0R3ptRnhhWW1aNWhaV1VGMjNHUUhpUHlWMUVVUmtaR0tKVkt6TXpNTUQwOS9kalhMNklvMHQvZno5NjllOW16WncrSlJPS0oxam1mejNQbXpCaysrK3d6NXVibW51aTFUMG80SENhWlRCSUtoVFoxT1dzcEZBcU1qNDl6NnRRcHJsKy9Ucmw4ZjR1UmpjWTBUWEs1SExsY2pvV0ZCYWFtcHVqdTdpYVZTaEVPaDRsR283UzF0UVdDc0gvdk9qOC96OWpZR0JjdVhHQjhmSnpGeGNWTlg5ZW54WTkzcnRWcXF5S2NmYUYzcTBjUHQyalJva1dMbHdZQlR3UnVzUUc4Y2dLdzR6bllhdEg0NkhpcGNCVlpTYUJxSFVpU2p1czYySFlOMDFpaGtMOUlNWGNCMDFpNXMzWWVpcHJzUzdRZCtXNjYreHYvVXp6NUJwSWNidlQ5ZlVCc1pHUEFUcFJDbm9qUmNnQzNlSW53STN5YSsyMnNyYkpzc1pxdExpNktVb2hvNGlCdG5SOFFpUTREOTlJTEJFSEF0dXNVOHhmSUxYLzJXNGF4TXZFNDg3U3RlZzI0Mm5qOFg2cVdIb3pFZC8wa0VoMzlZejI4RFZWclIxWVN5SExjNnhrc2h4RkZyZUZBZEhHeEc4S1BmMU40VHhoMkhST1hlKzVrV1lrVENnOFNpbXluV3BuQmNSN3RSdC9zK0xLdHlPVGtKSk9Ua3k5Nk5iWW9BcktTUkF0MUVVc2NKTm4rSHVId0VJWGNXZkxaRGRFN256dUNJSHZ2S2R4RE9MS0RlT29ONHFrM1VMVU83M3ZsT2pqMmF1SFhFNUM4UVVqTExGQ3JUbE5ZT2MvSzB1ZS9YOHBmL012TkVKTnN1MW9DUGdFK0NZWDdEc1pTcjErTXhRLytvUjRaUk5WU3lFb1NTWW8wK3BwNnhYbXVZK0ZpSThraFpDV09JTndmRVZpcFZQamtrMCtJeFdJb2lzTHUzYnNKaFVJNGprTW1rK0hZc1dQODlWLy9OWGZ2M24zS05XK0lxcytBckNUUTlCNGs2V0hSdm8zK3k0MXJSUmVuY1IxNTd4cHo5Zm5YUDI0NkR4Wm9CUkZSVUJFbERWbUpvNGQ2bTE0TnJtTmdtVVdNK2pKR2ZSR3p2dXc1aE0wOGpsWEd0bXM0VGczSHFtSGJGUnk3Z20wM1hNWk9mVTMvNkJhUHo3M1BVWklpUk9ON2ljYjJJS3R0cTFveVBBaEJrSEZkbTJycER2bmN1UitZWnE1MXdHL1I0c3VEelhNV2dLczFrenQzY3hTS2RYZHNQT3VNanFUY2RGSVRKNmNLMU92V2t6ZVlmUUU0dG9OajFjR29nbXg3aFRZQ1JCV0QzclJJZjZmS3pYSUZhNFAxN0Z5K3hQVHNQRlBUMDR5dXJKQitqQmhvV1picDZ1cml0ZGRlWTJKaWdvV0ZCUzVjdU1EUzB0SWo3OFA3Ky90NTU1MTNHQjBkWGRVSzVuSEpack9jTzNlTzQ4ZVBzN3o4MUFFd2owU1daVUtoRUpGSTVMSDc0RzRFNVhLWnNiRXh6cDgvejlXclY1bWZuMy91eGUyWlRJWlNxY1Q0K0RpeUxDTkpFcElrb2VzNnNWaU1lRHhPS0JUQ3RtM3krVHpMeTh0a01wbE42Vkc4VWZnRjhLVlNpV3ExMmhoWHVCZnAzS0xGa3lJSVF2Qlk2K3B1OFdyVC9ObXZSeWdVQ3U3Ny9VS1Rhclc2cFUwNHo1UG03YloyR3o1b202N2xZY2Z0cDMxdWcvSGlJeC9teEd6eDJMeHlBckJQclRKOUpydnc4WDlxVytVZnh0dmVRTk42QUlkYWRaWnk0UnE1N0ttL1Z5NWUvN2x0RlJmV3ZsYlR1L2NsMGtmK2NUUytGMGtPTi9yK1Bnd0hGNURrU0tQbjNmUHRiZExpMVdhekQ2N3hlSnoyOW5ZazZWN2hRaXYrNW1WR0pKcllUMGZQZDRqR1JoRWwzZXNCNmpxTi9xY1dabTJKU25IOG45UXFreWRkNSttdW9JeDZaa0tTdEQ4ckY4WStscFY0ajZJbSt4VWwxYS9wM2Y4MEhCMG1GQjFHQy9jZ1N4RzhjN2J6MkZIUnJtc2pLM0VpaVFOVUtoTlVpaSt1bjJlTGx3OUJrTkVqZ3lUYjNpS1dQSWdlMlk2bWR5TkxPbEk1RHVMTFY2UWxTUkVpOFZIaXFUZUl4RWJSd3Iwb2FnZUtFdmVFUk5lUFlsL2xHOFZ2ZzJFYVdRcjVpK1NXZnZNUGkvbExQNnJYbG00Nno4RkpXSzNNWEpTVjJHd3hmL2tqVGVzY0NVVUdEMFFUKy8vYmFId2ZtdDRWQ0Z4Qm13NUJRcElpeUVwODNma1poc0d2ZnZVcjV1Ym1HQndjSkJxTllsa1cyV3lXVzdkdWNlZk9uYWZxK2IxUmZhRWxLWXlpSkJ2djZ5RTNUVGozUlhNSFU5LzNPbUc5cWU1Nzd0Nk5uaDhkN1VkSkN5Q3FpRklJUlVrU2lnemcyQWF1YXdaOWdoMC9TdHFwWVZzVkxLdmtSVW5YRmpGcUM5UnJzNWoxSld6N1JUbm4xNTR2WGo0aXNWMGswKytpaG5xOFFhNUg5djMxenB1V21hTll1UEt2aTdsTFA3Szl2dHN0V3JUNGN1QUx3TTkxTk53d2JlYm1TOEx5Y2tXWW15OEluZW1RVUt2YlFxbjhjaFFDT1VZVnB6QVBHUkdxSWhnR09DYVJZbzRka1hsMjk5VEpMc0hDZ3dPR25tNjVqc3ZpNGhMajR6Zlp0V3VFY0RqOFdJNVhTWkxvN3U3bTdiZmZ4blZkZW50N3VYNzlPck96c3l3dExkM1gvelVlajlQVjFjV1JJMGY0MXJlK3haNDllMWJkd3o4dTlYcWRoWVdGVFhmLzZycE9LQlI2S3BINmFiRXNpNG1KQ1U2Y09NR3BVNmVZbXBwNllZSkJ2VjUvWUZzdFVSVFJOTTFMSjZ6WFg1cXhGNzlIYjB1RWFmRXN5TEpNZTNzN08zYnNvSyt2ajFBb1JDNlhZMnBxaW9tSkNYSzVYRXNNZm9YcDdPeGthR2lJYmR1MkVZL0hnd0tBWm5SZEp4S0pJTXN5OVhxZFRDYkQ1T1FrZCs3Y1lXcHE2a3UzZnlpS1Fqd2VKeGFMRVlsRTBIVWRYZGZSTkExZDExRVVKU2cya21VNUdCc1FCQUZSRkJGRk1kak9mdUZPYzk5enZ3REQ3Ni91OTB4M1hUZVlyK3U2Vkt0Vnl1VnlVQWhVcTlVb2w4dWJkVTRROGZvQXQySjJONEJYVmdDMnJISk9rdlFmV1ZiKy9VcHAvRzFWVGZjamdGSFBURmZMaytkcjFla3p0bFhPclgyZExJV2lpZlE3bytISU1LcWE5bnBtQ284YUdQU0NweVU1Z3F3a0VhV1dBTnhpTXhEd3gzZWZOYWF5bWJVT1lGRVUwWFg5dWQ2b3RkZzRGTFdOZVBJMTRzblhrWlI0dzJYa2l5c3lsbDJtVnAybFhwMjlhWm4zSHdPZmhFWk05RVRqZ1NUcFVVVk4vTGhVdUhwUTFYdEdGTDI5VDllNnQ2bDY5KzlxV2llSzFvNmtSQkhGUnE5MDE4RjF6U1pYTUlDTFl4dUlvazRvdWdNdDFFdWxlSXVYZWVCLzQzbjV4WkROUUJRMTlGQXY0ZGdvc2VSQllvbjlhT0Z0bnRzVUVFUVpTUTQxMmtLOEhLaHFPNkhvRUpINGZtTHgzWVFpMjFIMUxrUTUzTEIybWpqM09RbnZPVXh0cDBhdE1rbGg1ZXhmclN4LzhkZmx3cFVmbTBiaHZzSzN6YVRSVzNnWk9LN3BIVHNycFZ0bmFwV1ozMDZtMy83OWNIUW5vcWpqdXQ0TmcrczZpRktZY0dRSHRjb2twbkYvbDQ2VmxSV09IVHZHaFFzWDBEUU4yN2FwMVdwYm9rK2FJS29Ja3U3Rk5OODNadTg1akcyN2pGRmJwRjZiQjlkQlZ2M2toRENpcUNPSUNvSW9Jd2orb3pHdzZ6cUJjT3c3cDV1UEFmZHVtaDF3MXg0ZEdoWFdvb0lzYUtEYzZ6SHN1azRRSSsxaTRUb21qbDNIOHFPa2pSeW11WUpaWDZKV25hTmVtNk5lbThjMHNsNXhVZXM0OUVoVXJZdDQyMkZpeWRlUTVVZ2pWZWpoQ0tLQ1plVEpaODlReUo3NXNWblBQbFphUjRzV0xWNFpYb2dBN0dOYWpqZzFVMkp4MlN1cU1veVhZNkRWcmxld1Y2WmhzUUJoRnlwVnNPdEVTalZHMjZvYzNtRXhOUyt3bUg5VUdjNlRrODFtdUhMNUlrTkRBM1IzZFJNSzlUM1c2MlJaWnMrZVBYUjBkREF5TXNMNTgrZTVjT0VDTjI3Y1lHNXVMaENCazhra2ZYMTk3TjI3bDY5KzlhdTg5OTU3ZEhaMm9tbmFFNjlyTHBkN3FvSzVKMFhUTkZSVmZXdzMwck5pbW1ZZy9uN3l5U2RjdW5TSlhDNzNYSmI5cERpTzgxdytneFl0dGhwKzRjdnJyNy9PaHg5K3lCdHZ2RUVpa1dCNmVwcVRKMC95bTkvOGhzdVhMMjlxT2tHTEYwZDNkemR2dlBFR1gvbktWemh5NUFpOXZiM3JDc0MrNk9nbkRTd3NMSER4NGtXT0hUdkc4ZVBIdVgzNzlwZENCTlkwalVRaVFWZFhGNzI5dlhSMWRkSGUzazRpa1NDUlNLeEtsUERQdVpxbXJTb084OFZoUVJBQ2tiZGVyMk9hWmlBRXU2NkxZUmpVYWpVcWxVcmd1SFpkRjFWVlVWVVYyN2JKNVhJc0x5K3p1TGhJUHA4bmw4c3hQei9QOVBUMFpyUmFFR2dKd0J2R3l6TUsraFEwb2cwL2F6d1FSVmtHY0I3aWVKT1ZXSytxZC94elJVazBCb25OUjFiaitXS2MxNTh0L0ZJTkxyZDQyZGg0NFVjVXhWVW5CMW1XaWNmajkvVlhiTEgxRWVVdzhkVHJ4QklIVUZTdkY5Uzl5RkJ2OE44eDZsUkt0NmhYWjY1czlQSWJ4OXl4eGdNQVBkUjdNQlFaL0t0d1pQc2ZhK0ZCVkwwVFJVbWlxQWxrT1lFb2h4ck81T1lJVkNmb0NhcHFIWWlTaHZQQ25HY3R0anFTRkVIUjJnbEZCb25GOXhKdmU1TlFaRWVqOVlPTDZ4aTRnQ3hwbnJ0VWpyem9WWDRvZ2lDamFHbFB6STdzSkpZNlJEejFCb3JhRmtROXU3WXZkcnIzdlZZUVJCekh3S2d2VWk3Zm9wZzkreTl5MlpOL1dTN2MrT1h6ZnplcnFkZVdiZ0czSXJHUmVVa08vNzZtOXlEcE1keEdMSi9ybXNoS2pGanFOYXJsTytzS3dENytqY2xXd291eGtsZ3ZwVWdVWlVDZ1VyNU5kdkhYbEFyWHdIWFE5QTRVcFIxWlRTQXBVU1FwN0xVVWtYUkVLZHo0R1VJU2RVUlJSUkFWUkZFRlFjSlRlcjNqcHR2MHUwZVRPQno4NWVBNkQ0NUFGSkFRSk1sekM2dEpvTC94aEloajFhalhacWlVYmxNdWpWT3JUbUdiUld6YndIR3FPRllkeHpVYVlySzVxcy96NDhRZFA1eVhWMlNXNUNpSjlCRVNiVytpYU8wSWd2UVlrZG9pdUE2MTZqUXJ5NS8rZDVYaTJBdi83clpvMGVLNTQrQ0p3Qy9zQUdnN0xwWHF5K1h5Y3l3VHExTEVLZHRlNUhEZEF0ZEMwd1VHdDhjNFVBcHg1azZKODdmS1dCczhibHdzRnJsNjlRbzdoM2R5K1BCYjlQUStuZ0FNWHAvY2dZRUJVcWtVSFIwZGJOdTJqWDM3OXJHMHRCUVV1TVZpTWJxNnVoZ2VIbWIvL3YwTURnNCs4VG9haHNIVTFCVFhyMThubDhzaFNkS21SaVA3anFMbk1VaGZyOWNaSHgvbjg4OC81MWUvK2hWbno1NWxibTd1U3lFUXRHanhNcEZNSm5uOTlkZjU5cmUvemRlKzlqWDI3dDJMSkVuczNMbVRWQ3FGcXFyVTYzVnl1VnpMYWY2SzBkM2RIU1JZSEQxNmxBTUhEankyOFdqSGpoMTBkSFNRVHFkSnBWS2NPbldLc2JFeHN0bnNKcS8xOHlVY0R0UFYxUlVJdmNsa2tsUXFSVHFkcHJPemsvYjJkbEtwRkxGWWpHZzBTaVFTSVJxTm9ta2FtcWFoS01vVFJVRGJ0aDBJd0g1ZmQ5L1pXNnZWQWdGWVVSUnMyNlpRS0xDeXNrSTJtNlZZTEZJb0ZKaWFtdUxjdVhQY3VIR0QyZG5aamR3Y0FxKzRidms4K1ZKdHlJY0p2ejZTRXUyVTFUWUU2Y2tyS1VGc3VHNitWSnUxeFhQRGM1cHZKSDVmbnVhVGJrc0FmamtSUklWb2ZBOXRYZDhnbXRnSFFiVHFQVnhjelBveXhmekZIOVNxTTZlZngzclZxck1YSlVrYkt4ZXUvMHlTbzUyeWt1eFh0UGFoVUxqdm4wZmllNG5HOTZCcUhZMStvTDRJNUNDSU1vcVNRdFc2VUpRNDlaWUEzTVRMSzRac05LcldUaXo1QnZIVUljTFJuZWg2RDdLYVJCUTFYRndFN0VaeGdWZFZLa2s2cXRhRktJVnc3SzFYZFMrSk9wSEVYaEp0UjRqRWRxT0ZlbERWTkpJUzl5SmhYUmRYRU82TEQvWVFBQUhIcVZFcFQ1RFBudmkvOHNzbi9ycFN2djI1VWM5c0tmZWdVVjhhcjFkbmNaeDZJK29XL0Y3QWtod2xHdHRMSVhLV1F1NzhpMXpOSjBZUUZVUkpEVDZyVmM4Sk1vNWpVaW5jK0NpNzlPdi9kNzB5ZXg1Y3F5eXFVVUZVSTRLZ1JFUkpqWWhTS0M1S29aUWthU0ZSaXFSbE9mSlBGYTJka042SHFuZWdLRzJvZWdlU0hHMXN1M3U5aTljOU1qeGhwS0RRMkk5ODE3QjNiU3NpeURKNmVBaEY2eUthMkk5bDVyQ3RDclpkdzNhcU9IWWR4NjVpV1VVc000ZGxGbkNzTXBaVnhqTHptR2ErRVROdDRqNUdYL2RYQTVGd2RJUzJqcThTaWU5R1FIeHdIK2NHZ2lEaEFrWjltVkxoS3VYaTlWK1pub3UrUllzV1h5NmN4c092NFduMVAzc01IRVJNUWNlUUUramhNQ2dpQ0NLaXBwQ1dGSGE2RmJaZG1TWngwU0tUMjloelViVmE1YzZkdTl5OGVaTzV1VmxHUjNjL3NmTTFGb3V4Wjg4ZSt2djdxVlFxMU92MVFNQ1VaUmxOMDRoR284UmlzYWRheDJ3MnkrblRwemw1OGlUejgvT2JMZ0Q3THFNSHhTQnZGTFZhamJHeE1YNzFxMS94MDUvK2xQUG56NVBKWkZyaVVZc1dXNUQyOW5iZWVlY2R2dm5OYjdKOSsvYkFqQktMeFRoMDZCQ0NJSERuemgydVhyMUtQci9CZWYwdFhoaDlmWDBjT1hLRWIzLzcyM3o5NjE5bllHRGdpVkluSlVsaXg0NGR0TFcxTVRBd3dNREFBRC85NlU4NWRlb1VoVUpoRTlmOCtTQ0tJdWwwbXUzYnQzUHc0RUVPSERqQThQQXduWjJkeEdLeHdObnJ1M0ZsV1E0ZW92aDBCbGxCRUpEbGUvcVZwbWxFSXBGVndyQS9uU2lLZ1Voc0dBYUdZV0JaRnBabE1Uczd5K0RnSUo5Ly9qbW5UcDFpY25KeW82NHQvSjVtTFFmd0J0QlNLcHNRUlZrT3gwYkNrcWczQnNDZWRORE02OWtsaUszbzNCYWJ4Y1lLUDdxdUV3NkhWMFZIeWJKTU5CcHRDY0F2RVlLb0Vrc2VwS1BuTzhTVHJ5RXJjUnpib0xtdnBndlVxM01VY2hlb0ZNYy9hOFEzUHhjYXk1cHBQTTVKa2g2dEZKTy9MQmR2SEtwVjd2NVdlL2QzZmw4UGI4TzE3NDF6Q1lqSWNoaFZTU0hKQ1FTV0h0a3o4WGtpQ0JLeUVrY1VOUnluam1VV2d4amJGcHVMZ0lpcWRSS0tEUk5QSGlBUzMwODRNb1NpcGhCRUJWeTdFWXU4Wm45eExhK1hibXdYbGRJNDFmS2RGN0wrYXhFRXlYcy9rU0dpc1ZFaThkMkVvanRSdFM0a1dRZlh4WEVzTC83M0lmTndYUWV6dmtTcGNKbVZ6UEgvVHlsLzZhZmw0cTNQbnVOYmVXd2N1NWF2MXhaKzREcjFmeEZFSE5PSWdCWlZGSzBkVGV0R2ttUFlWdkVGcnVtVG9Xb2Q2S0grUmdHQ2Z6d1RFRVFaMjY1UktkMmtzSEwyazByeGR2UG5Vc09MeUw0UFNkYWpvcWo5bVNUSGVsVzFiVkJXRWwyeUhPdVExVVJhVnBMdGlwcjh2M3RKQ21Ga09Zb3N4eEVsM1hNaEMxN01zeUJJQ0tMblNoWUUvMjhsMkdlOFNHbTdFU3Z0ckVxOVdhMGRlNjlYbEFTS21nSzNEOGMxY1IwcmNQdjYvWVJ0cTR4dFY0TGV3clpkd2JiS252anJtdGhXR2NzcVlsc2xiTHZtQ2NkbUVkc3E0amcxYjM5dnpQYytsL09XUmtBVUZTUTVqS0ttVWZWdUVxazNpY1QySUVtUng0ck1Ga1FaWEp0eWFaemM4dkVmMUd1TDE1N1B1cmRvMGFMRnk0OGphbGhhTzJhMER6MFJBMXNCVVlLd2lxVEtwSXM1K2daTWVycUxsS3NXdGZyR2laK080MUlvVnBtWW1PRG16V3VNRE8rZ3M2c0hWZFdmYUQ1K1g3K054SEVjYXJVYUN3c0xqSStQTXprNStWeUVGY3V5cUZhckZJdEY2dlg2VThWVlA0ckZ4VVZ1M0xqQkYxOTh3U2VmZk1LcFU2ZklaRElidnB3V0xWcHNETkZvbE8zYnR6TThQTHhLZkFLSVJDSU1EZzdTMGRGQklwRWdFb25RMXRhR0pFa1VpOFVnbHJaYXJXNko5ajh0SG8ybWFRd01EUERtbTIveXdRY2Y4TzY3N3pJeU12SlVvcVdpS01HK0VRcUZnaDYycDArZnBsUXFiY0xhYno3aGNKaSt2ajYyYmR2R3pwMDcyYjU5Tzd0MzcyWjBkSlNob2FFWE1pNi9WaGh1UnBibCs2NVJ1cnU3Q1lWQ3BGSXBCZ1lHdUhYckZnc0xDMlN6V1hLNUhJVkM0Vm1UMjFvRHJSdEFTd0J1d25Fc0t4SWJxYnRPSThMdUNWMFQ0RGs4SkNrRVR5RWd0Mmp4S0o1bW4zd1l5V1NTUkNLQm90enJXeTNMTXQzZDNTU1R5UTFkVm92TlFaUkNSQlA3NmVqNUxzbjJveWh5WWxYZlh4QThON0Jkb1ppL1JHNzU4NzluR3BuYkwzS2RHMUhSVjRHcm9jakFUUzNjOS91eWtrUVVkVzk5RzhLSklFaW9lamQ2ZUJ1MXlnVHVJMk16Tnc2L2h5cUNoQ2pJZ1dDQ0lDSExFVlN0QTAzdlFaYWpXSGFaYW1XQ2F1a3VwdEVhY05nc1JGRkQwZHJRUS8xRW9xUEUwMGVJeHZjZ0t6RXY2dGwxY0I4b3NMaTRyb1VrUjRqRWQxTXFYSDdoQXJBZ3lLaDZKM3A0RzVIb0NQSGs2MFFUKzVEVlpDRE1PUStJZWw2TkNMaFlSbzc4eWhreUN4Lzl2ZnpLMlIvYVZtM0wzZ1haZHEwVWplOGVOK29aUW9HNy85NTFreUJLbm9DbWRWSzFTbXoxNnlsQmtBbkhob21uRGhNS0Qzb0NjSlBUVXhBa2F2VVpNb3UvK3FOaS90SlBIM2UramMrd0JDd0E1NXFmaytWd1V0RTcvcm1xdHUrUWxjUVBaU1dGcXJWN0VlZWlnaURJaUlLTUtLb05WN0xYVDFnVVZVUTVnaVNIa1VRZFFWU1JSQzBRanIwb2FlZWVJT3d2MFArT3VhdVB3MzZ2WWdRQlg4cC9zTi9KNzROY3hUUldNSTBWYkx1TVpSWXg2eGxNSTROdGwzRHNocERzMUQwUnVOSHoyQTNFYWs5NGRocFIwL2hSMDY2TjQwZFFPeGFPYXo3QUxmLzBlT2NHcjArektDb0lvb29vYVVoU3VCRXhIL1dPVTNvZmVtUVFQYnpOTzBZNURUSDdvZk5XY0J5TFdtV1NmT2I0UHl2bUwvMEgyNnB1MmU5eGl4WXROaFd2SjhwV1B3RnVNU3hCcFNxbHFHcmR4TUlKY0VVUUJWQVZVRVJDS1pudHd5WDI3Y21UTHhwTXpXeDhrZG5zN0F5blR4Mm51elBOMisrOFQxZDMvNFl2NDBreERJUFoyVmx1M2JyRjNOd2NoVUtCZXIzK1hCeXl0VnFOZkQ1UHVWemVjQUY0ZG5hV3MyZlA4dkhISC9PYjMveUcyN2R2djNKeG9DMWF2R3BJa29TdTZ3OFVtTUFUb0pMSkpGMWRYUncrZkJoTjA1aWZudzlFcFpXVkZmTDVQUGw4bmxLcHRLbEpCaTJlSGttU0dCNGU1djMzMytmRER6L2t5SkVqOVBUMFBMVmoxVWRWVlhidjNnMTR6dGw2dmM2eFk4YzJZcFdmSzlGb2xOMjdkL1AyMjIvejFsdHZzV2ZQSHRMcE5QRjRuSGc4L2tRTzZSZUpMTXVNakl6UTBkSEJtMisreWV6c0xEZHYzdVRtelp2Y3ZuMmJtWmtaWm1abXlPVnlUeU1FK3k3Z0ZzOUlTd0JlZzIyVlYwd3ppMldXVURYL2d2aFJZbTRqbFVuQXEveVh3b2lpOGhnOXZscTBvT0YyU3VNNEJtWTl5L082ejVja2lhNnVMdExwOUtxTEwxbVcyYmx6SjRPRGcyaWF0dW1SVFMyZUhsbU9Fa3Nlb3IzbnV5UlNoNUZsdisvdnZRRnZRWkJ3SFlOYWRacml5cmwvVWlwYy9VbERnTjBTR0xYRmEvbk1xVC9VOU40L2pNWDNObUpTRzRQOENJU2kyNG1sRGxFdVhLRmVXOWl3NVhxRDlqcHV3N0hXK0NlU0hFVlIyMURrdURlb0wwZVFaYy94SnNwUkpFbERWbUtvYWllSzFvWWtoWENjT3RYeVhWYVdma04yOGRkWUw1Rmo4V1ZCVnBMRTRudUlwZDRnR3QrREZ1cEZWdHVRcFZCakN2dGhJYmplTTY2TktHcm9vVDQwdmVjRngwQ0xST043U0xhL1J6U3h2eEZkblVLV295QUludGptcmZVajVpTWdpaktXV2FSVXZFcDIrZFAvcXBDNytGZGJXZnoxTVkzczNWTGhPbHFvRDAzdnhJdnB0cjNvYmtIeVhNQ2hidXJWYVp3dEhoa2NqZzdUMWZkN3BOcVBJc25SUUR3VkJCRVhGOGV1VWkzZm9aQTk5VGZWeXZTNVI4N3dNYkNzU2c0NEpVcnFKVUdRVTZLb2FJS2dSZ1ZSMGdSRVdSQWtTUkNVaUNBcG1paXBZVUdRTkFGWkZVVTFMTW1oZnlXcktUU3RHMDN2UWd2MW9JZjZrT1c0dC84MXJudGRlSGlFdENDc0VYc2JyeFVFN2ozVC9MYzNYMEh3cnBWVnJiTWgzRnJlc2RneHdiVndYTXVMbEhicW5wQWVDTUEycm1QajRvbTh0bXVDWStOaTQ5aDFiTHZpeFUzWE0xaG1BZFBJWWRRWHNLekNRM3NmUHc2Q3FLQ3FiYWhhQjdLU1JGWVNqU0tGZEtOM2M2Z2hBTWVhZWpsN2ZadDVqT2huYnp1SjFLc3paT1ovL2ljcnk1Ly9uNmF4TXZOTUs5MmlSWXVYR1JNdklhTFZ3UFFKTUMyQlFsVW1WOU5wSTR5c2lJMWhRd0ZzQVRVU1lXUzBremZmS0RJMVUyUjZ0dmlrblJJZXlVbzJ6OWx6NStqdTZtTG44SjR0SVFCYmxzWFUxQlRYcmwwTDNMK0dZVHlYL3JpTzQyQloxaFBIWVQrTXBhVWxKaWNudVhqeElpZFBudVRZc1dOY3VYS2xGZm04eFpCbG1VUWlRVEtaSkJhTG9ldDZFRjJxS0VvUVhlcjNpclp0Rzh1eU1FMFQwelNwMVdvWWhrR3RWcU5hclZJdWw2bFVLcGltK2FMZldvdG41R0hHRnIvM3FLN3JEQThQODQxdmZJTklKTUxpNGlMTHk4dXNyS3dFcnNKQ29VQ3hXQXg2bHBxbWlXRVlRZnk4LzdmZjEzU3puY09TSkpGSUpFaW4wMFNqVVNSSkNvNTkvbnR1ZnU5KzcxVy9WN3IvdC8vd1kzajloMjNicXg2V1phMmF4di9mVmlDUlNMQno1MDdlZSs4OXZ2R05iM0Q0OEdINit6ZnVmS2pyT3J0Mzd3NGlpZFBwZEhCOFdMdDliTnNPdGpONG41T3Fxa1NqVVVSUkpKL1BNenM3eTlMUzBuTXBKaEJGa2Y3K2ZnNGVQTWliYjc3Sm0yKyt5YUZEaCtqcjY5djBaVzhXdXE3VDNkMU5kM2MzdTNidFltaG9pSjA3ZHpJNU9jbnM3Q3p6OC9Pc3JLeVF5V1FvRm91VXkyVktwUkxsY2puNC9qN2t1OW5TTGplQTFrWmNnMlhtSjJ2VjJSOFl0WVYvb1lWN1BUZXY2ejdHd0ExNDhYaXk1NklRVldnSndDMGVBMVZMMDliMWRWekhKcGM1VHJVOHlmTzQxNWRsbWJhMk5oS0p4S29LTEVFUVNLZlRIRGh3Z0gzNzluSDU4dVZXdk1vV1JGWVNKTnFPME43MUxXS3BOMUNVUkNQMnRySHZDSUlYL3luSzFLdnpyQ3o5NXQva3N5Zi9uV25rdHRTQXN1Y0UzSE9zV3A0Z0VodEJFanczdXVzNklBaGVqOWZFQVVySjE3QXpKN0RNWjQ4ckV3V1ZjSFNZZU51YlNISVl5eXg0eDI1UlJaUkMzZ0MrRlBMY1haS09MRVc4ZnB1U2ppZ3FuakFzaGh1dU9nbGNGMDN2UVVDZ1ZwbW1WTGpTS2dEYUlHUTVqaDRaSUpiWVR6ejVPdUhZTGxTOUExRUtRY01CK0xoRk02N3JJb295c2h4SDFUcFFsR1NqdC9Uek5kZG9vVjZpOFgwazArOFFTeDVFQy9WNklwSHJyUDRPUHlhQ0tHTlpCWXE1QzVUeWwzOXNtYVdYb2wrb1pSWm1peXZuL2lBYzNmNUhXcWdMQWI5dnVWZFVwNFc2Q0VVR0tlVXVQcE1BTElncW10Nk5vcVhCdFRGcUN4dGFUS0tIK2tsMWZvMWsraDAwdlFmYnJ1Ti9obDR2WUlkNmZZbEtjWXg2ZGU3Q2hpMjRnV01iTlR5UkFEeW44RU1SUlZrV1JPV0hraFJLSzJwcW02d2sreFMxclYvVjB2MkttdTZTMWJiL1ROWGEwYlJPci9CRjBpQ0lrcFlESjdGWHBPQTBCRnEvMTNaajMzVWY2WFZGRUVSRVVRMzZEUHZuckhzRkVMNnJ0OGtBNXpyQmNselh3Y1Z1Q05RT3JtTmhPM1V2ZnRvc05XS25TMTQvWXF1TTQ5Ung3SWFnTElpSWplVzYzSHU5RjFkZDgvclFDNTRnSzRraEpNV0wxMWJVQkxJY1I1SWpudU5YaVRkaXR6VUVVVUlVMU1aN2todE82bnZPNUlkdURVRkdFRVJNTTA4eGQ1R1Z6T2MvckpZblR6M3FzMnpSb3NVclRSV280QW5CTFI2VFd0MW1PVnRsYWJsQ1QxZU1XRUwxSE1DMkM0NkxGbGJZT2RKT2ZxWEdwU3VMWEx5eVNLbThzWnU0WEtseDQ4WWRlbnV1Y09TdE8yemZNVUk0SE5uUVpUd3B1VnlPOGZGeExseTR3UFhyMTFsWVdIZ3VSZDZ1NjFLcjFRS2hKcFZLUGZNOEZ4Y1hPWEhpQko5OTlobW5UNTltZkh5Y3hjWEZMU042dFBDSVJDTDA5L2V6WThjT2R1ellRWDkvUDZsVWlsZ3NSaWdVSWh3T0V3cUZrQ1FwNkN0WnI5ZXAxV3FCTU9DTGZMNW9NRDgvejlMU0VrdExTNEdMdmNYTHljTUtRbnloVGxWVk9qczcyYk5uRDRsRUloQ0c2L1Y2SVBLYXBrbTFXcVZTcVZBc0ZpbVZTc0dqVUNoUUxwY3BGb3ZrODNreW1ReExTMHNzTHkrVHkrVTJmUDlSVlpYdTdtNUdSMGZadTNjdlBUMDk2TG9lakxVMmk3diszODFDWmJOWTZUL25pOWorODM3dlZWL1U5cmVKLzN6emQ2aGFyYTRTUTU4bm9WQ0lnd2NQOHVHSEgvTFZyMzZWQXdjTzBON2V2dUhMMFhXZHZYdjNFb3ZGZVB2dHQ0UFAzTjlIL08zVHZBMEZRVUJSRkJLSkJGMWRYVWlTeE1URUJDZE9uT0RzMmJOTVRVMXQrdllhR0JqZ2d3OCs0TGQrNjdkNDdiWFg2T3pzSkoxT2Irb3lueWVTSkRFME5FUTZuV2JQbmoxQmRIdWxVbUZwYVluRnhVWG01dWFZbTV0amZuNStWV0ZITnB0ZDZ4SU9BZDNBeFJmemJsNGRXZ0x3R2l5cm5BdEhkMTRzRjhkUVFsMkV3NE9ONm4xV0QwSTlBRUZVa09Rb29xUmpXMXZlZ1BOU0lJZ0tvaUJ6ejBYU0dDQU00Z0NkZGVNR2ZmL1VLaGNLZVBNUVJCQWtCQVR2Qkx3cU92QTV4c3lLQ3FIb0R0bzZQa1NXb3dpaWhtUC9uSHB0ZHRPWHJXa2FQVDA5dExlMzMzY0JKZ2dDaHc0ZDRsdmYraGFUazVNc0w3OFVlc0tYQkFGVlN4TlBIYWE5KzdlSXAxNzNuSXpPdlo2LzN1QzZoT3M0R05VNWNwbGpaQmQvOVg5VVNuZU92OGcxZnhDbWtiMXIxak00ZHEwcEJ0cFRFQVJSUkEvMzA5YnhWU3lqUUdIbDFHTVc1RHdZVldzbmtYNmJ6dDdmUWRXN3NPMUtZK0QrNGFkRXQvazMxMjMwY3dRUWtPUUk0Zmh1RXVrakdFYUdXbVh5bWRieHk0NG82V2loUGk4YU9mVTZzY1FCOUhBL2dxRGl1aGFPVmVYSmhkdkdPVUZTMFBRZTlIQWZSbjNwdWZSdUZpVWRXVTZnaGJxSUpRK1NiSCtmU0hURUt4aUR4K29OdXM1Y0VRUUJ5NnBRcTB4Ukx0NzR6ODE2OW9YR3V6OEp0bDByYVhySEx5cmx1OFJTcjN2UnhRQ043N2VxZHhHSmpaTFRqaisxcTE0VVZTTHgzU1JTYjZGSEJuQWRrMHBwbkhMeE9yWHFMSmF4OGt6RkdwSVVJWkYrbTFUN2V5aHEyMzBDdmlESWdOTW9ETG4yQTl1cGJYN0R2VWZnT0phRkZ5dGRBaWFhbjVPVmFMdXFkLzkvUStIK2c2SHcwRC9YUXIzSVNoeEJVQm9KTnlGRUtZUWc2VWlpSjNhS29vNG9hVjVCREVKRCtHenEyUnU0ZC8zOXUvR2NhK081dnA5azdVWHY4ZytwWVZSZWZlM1N1Rks4RDI4Z3ljQ3hLemlPNVluUGpUN0piaU1lM25GTUhLdUNaWlZ3WGJzaEFNdGVwTFBhNWwzYmk5SjlqdWptaUd4dis1cmMwMnNlN2VEM2hYWGJLbEhLWHlTMy9QbC9VNjlNbjMyQ2pkS2lSWXRYRXhOUEJQWXIzVGJPUHZrS1l4b1doVUtWUXE2TVVhdERUQUpKQk5zQjEwVU15Y1RTT3RzSEV3d05KT2xzRDFPckY3R3NqU3UrZGh5WFVxbksyUGd0VHA4NVNWOS9MM3YzSGtEWG4zOGZQOHV5eU9mempJK1BjLzM2OVNBQ3Vsd3ViM2hycWZXd2JadWxwU1V1WExoQU5CcWxXQ3pTM2QxTk9wMStiRWV3NHpnVUNnV3kyU3hMUzB0Y3YzNmRZOGVPY2V6WU1jYkd4cWpWYW8rZVNZdm5ncUlvZEhWMTBkUFR3OERBQU51M2IyZjc5dTBNRFEzUjE5ZEhLcFVpR28yaTYvb0QrMXJXNi9WQUFNN244eFNMUlZaV1ZzaG1zeXdzTExDOHZCd0llTmxzTmhEOWlzVmk0QVp0c2ZWNTJQSEhkVjBFUVVDU0pFS2hFSWxFZ21nMFNqUWFmZWc4ZlRlaHYvLzRmVWVMeFNMRllwRk1KaFBzUDlsc2xzWEZSUllXRnBpZm45K1EvYWE5dloxMzNubUhvMGVQc25mdlhycTZ1dTRUZ0p0VEZ4NGtBRGU3ZWYyby9tWm5mTE1JM0N3QSs5UFhhclZBY0d2K3Z5OG0rOHYwZjIrZXYvKzdMemJYNjNVcWxjb1RuUzg2T2pyWXUzY3YzL3ptTi9uNjE3L092bjM3U0NRU3o3eDlIMFE0SEdaMGRKVFIwVkVxbFFxVlNpVVFnUDN0MGZ4ZXdSUHI0L0U0SFIwZFNKTEU1T1FrN2UzdFJDSVJUcHc0d2VUazVLYWNXeVJKWXZ2MjdYejFxMS9sdTkvOUx1Ky8vejVkWFYyUGZGMnRWZ3YyYjc4SXduK1B6ZnVOLy92YTg2c2tTWUViWFJBRVJGRkVraVJFVVF4K2x5UUpXWmFSWlRuNDIvK2ZxcXBvbWhZa04yaWE5c2h6dUNSSkpKUEorMXBMMXV0MWxwYVdtSitmRDJMZE01a011VnlPZkQ3UHlzb0tLeXNyRkFvRnF0V3FZTnQyVkZHVTRWQW9kRHdVQ2hXZU5UNzh5MHhMQUY0SG83WjBzNUE3LzNjbEpmckhJbExEbmFNOCtvVjRQUXBWTllVc1JUQnBpV1pQaitCRkk2dHRhS0VlWkNYUkdDUlRFQVVWUWZTY1FyWmR4WFh1aVREMzdvMGRieEJaRU1EdlNpZUkzaFFObDdZa1J4QUZHY2N4c2EweWxsWEdNZ3NZeGhLbXNZeHRsUjhlZmJnQmFIbzNrZGllUUl4SU8zVXNNOC9LOG04dzY1dmJTelFhamJKMzcxNEdCZ2JXZlg1a1pJVDMzMytmdi96THYyd0p3RnNHQVQwOFFDcjlMcW5PcnhLSjcvYWNrSTNCOW1BcXdZdFNNbzFsVmhZLythdWwrWi8rcTBycDFpY3ZicjBmam1VVkYwMWo1WjlaWnZuL0tjbUp4dnA3VGtEWHNaRGxHUEhrNnhpMUpVeGppVXJwRGsvcmtoY0VpWEJzRjdIVTY2aGFaeERaRDJLaldNUnRFakJZOWJld1NnSnUzdWJlZWlwS2tuanFUYXJsU1l6NlFwTkEzT0x4OElwN1pEbENOTEdmWlB1N1JHSjcwZlZlWkNXR0tDcE44ZVpQZDJ6MmJpaGw5TWcyd3ZGUnlzV2JHK0lxZnhDQ0lLSnBuWVRqbzBUait3aEhkNktIKzFHMXJzWjMxNHNLZnByMzQzOVBxdVU3NUZmT1VLMU1uM2NjODZXeVB4akd5a1N0UFBFLzFxdHovMGdLRDNpRkt3MWhVSllUUkdJanhKSUhzTXdjcHZGa1BkMUVVU1dhT0VCNzk3ZEl0TDJGckNSeEhaTlk4Z0MxeWpUbDRrMktLK2NvNWk5aTIwL2Npd1pKQ3BOSXYwT3kvU3VFd2dNSWdyS21tRUJvUkhkVnFKVEgvMjJwZVAwWFc3MmZhOE05L29ra2g4NFVjNWYrV3BJam5hSVVTWW1TR2haRkpTeUpvWmdvYW44a3lWRlV6ZXZScklWNjBjSjlLRXF5NFg1ZGZWTjJmNHowRTJnWWE0dlQxcC9vdnIrOWRWZ2RSUzFLR3E0Yzl0WWxpSzcyaitwKzMyT2JaaGU2dHdwTlBlQ0JlOTlYVDlRVy9IT0JJS3dSdVIvNTVvSjF0YTB5eGZ3Vk1vc2YvMkVoZStxSHBsbHNYWFMxYU5IQ3doTi9XeEhRVDRCbE9aUXJKdVd5aVdFMkNrYUZwblplcnZkM0lxNnpjM3VLUGFNZGxLc1dDNHZsRFYrWG1la1pmdk9iWDVGTVJJbEdZK3phdFhmRGwvRW9Db1VDMTY1ZDQrVEprMXk5ZXBYNStmbm5KdjZDSjBCUFRFenc4NS8vbk9ucGFXN2R1c1doUTRmWXUzY3ZmWDE5ait4dldLMVdtWnViNCs3ZHUxeTdkbzFMbHk1eDdkbzFKaVltV0ZoWWFJbS9Xd2hkMXhrYUd1TElrU01jT1hLRTNidDMwOVhWUlR3ZUp4YUxFWWxFSGtzMDBEUU5UZE5JcFZKMGRYVUZVYjYrRU9YSFFUYzd5YWFucDVtYW11THUzYnRNVEV3d056Zlhjb1J2WVpwZHNPc2hTUktSU0lSa01ra2tFa0dTcEFkTzI0d3ZFdnRDbnkrTythS3BMNWJXYWpXS3hTSVRFeE5CalB6MTY5ZkpaQjQrL3Fvb1NyQXZDNEpBclZZams4a0VidEY5Ky9ieDI3LzkyN3ozM251azAybkM0ZkI5Njk3OHZwdWpucHVqb05mK2Y3M0hXc0d2ZWRxMVlyTHJ1b0VRNm4rWG1rVmlQMzdYajFqMy8rY1hYeXd1TGdiRkZvODZkeVNUU2Q1KysyMisvZTF2ODk1Nzd6RXlNa0lzRm51c3oyOGpDSWZEUVhGSnM4RGVISzhOWGdTenFxb29pcWZ6aEVJaFVxa1VpVVNDY0RqTTU1OS96bzBiTnpZOGJyNjd1NXNQUHZpQTMvdTkzK1B3NGNPUEpmNW1NaG1tcHFhWW1abGhmbjcrdmg3WS91ZmFMT0t2NVVHaXJxSW9xS29hQ0x5aFVBaGQxNFBqc0txcVJDSVJZckZZOEgwTWg4UEU0L0dnb09kaHZielhROU0wK3Z2N2FXdHJZMmhvYUZYOHM3OS81dlA1UUJnMkRDTVpEb2ZmN3Vqb3VOYmUzdjY1b2lpdHFNV25wQ1VBcjRObEZSWlVMZjB4OEhkdHEvekhzZVJyaENLRHlIS3NFZWZuQnU3U3RZaVNnaVRIdllIZEZxc1FCQVZCbEJ1dUN3bEoxSkhWSkpJYzg5d2pvb1lrNlloeUdGbUtOcUpZZmVkRjJCTndCY21ianlBQ0xyWmR4M1hOWUNDdldRRDJJMlFGdjErNDRFOGxlVTRWVVVjVVJCekhha1FEMXJ6K2NWYXhNZGljdzZwbk1Jd3NsbG5BdG9yWVZobkhxZUU0MXIxbFBBT3Eza1VvT293a2hUeGhLcnFUdHM2dlk1a0ZjcGt2N3ZVbTNRVEM0VEI3OXV5aHM3TnovWFZUVlFZR0J1am82R0JzYkd6VDFxUEY0eUdLR3FIb01LbjJkMG0xSC9YMkcxRmY0L3dGOEdJMURTTkRZZVVNMmNWZi9iQ1l2L0xqRjdYZWo0TnRWWExwN205TUdQVmxOSzBUUWRLQ3hBWFh0UkVRVWRRVXlmWjNQUWVYL1JOcTFla25YbzRnU0Y3ZjFmUTdSS0k3RVFRUngvWXJHcDl0SU1SeERFUlJJUlFaSkJMYlJTbC9pVnAxOXBubisyclROQ0FIS0dxU1VHUTdzY1ErWXNtRGhLSWpxRm83b3FCNENRMVBFUGY4SUx6NFY5QkQyNGdsRGxMSW50NFVBVmhSMndoRnRoT0pqUkFLRDZDR2VnbUZ0NkZvN1VpaTV0M1VQZlg3OFFxa0VFU3MrZ3FsM0FVS21WUGZzNHlWbDg1MjdqcVdGVSs5ZnFsU3VvbW1kU0FycVNZQkRqUzlsN2JPRDdHTUZWYVd2M2hzdDdZZ0trVGplK25vK1cxUzdlK2lhQjBJaUxpdWc2S2xVTFV1OVBBZ2tlaE9ZcW5YcUJUSHFaUnVVcS9OUDVZaldKSkN4Skt2MGQ3OWJXTEpBNDJrbU5WQ3ZpaXFXRmFSd3NwcDh0bFRQekdxaXkvTmliUWhWTi9uRUJaRlZSY0U2VTlGU1V2SWNxeFRWaEw5aXBiZXBtaHR2YklVVFlwU09LWW84ZCtYbEpqWEkxZEpvYWhKSkNuaWljT1MwcmlPdXpjWWNrK0FGUnFEZ3ZlT0MzNHY1WWFLSEx6aW5xaDhUNGhkbGRHdzd0ZEt1Q2Y4dWcxRnhmV0VYbjhzMGk4MFhEMGo3N3Zxc2xIM21zSzk1YmdPbGxXa2xML00wdnpQL3JDUVBmVm54aFpyMDlDaVJZc1h5dE5WaUgySnNXeUhTc1dnVkRHYUJPQ21DV3dIVEZBMGlaR1JORWNPOTdLd1ZHWnB1WUxqYk95bUxwZXJYTDF5alhSYm11M2JSK2pxNm0yNG9KNmZtYnRjTG5QanhnM09uajNMclZ1M0tCUUt6MDM4QlUvZzhBZXBmWEZ1Ykd3c0VJRDlWbFMrbzhjWEJ3VkJ3SEVjU3FVU2k0dUxnUUI4K2ZKbEppY25uK3Q3YVBGb2tza2tlL2JzNGEyMzN1S2RkOTdoelRmZlpHaG82SW1GZ1dZRVFRaEVpQWM1UDB1bEVrdExTOHpNekRBNU9SbnNZOVBUMHl3dkx3ZlJ2N2xjYm0ya2FJc1hTSE52Mi9YY2ZMcXVNekF3Z09NNGoxVW9zaFpmNU5JMDdhSFR6Yy9QMDkvZlR6cWRKcGxNY3ZyMGFSWVc3dSttRTQxR2FXOXZENXpza1VnRVVSU3BWcXRrTWhrS2hRS0tvdkRoaHgveTFsdHZNVHc4L0VUcis3endoZUJtQWRndnFQQjdiUHZGRmI1STdndkFkKy9lNWZyMTY4ek16S3diblMwSUFqMDlQYnorK3V0ODk3dmY1WU1QUG1CNGVQaUpQN3VOeEQrMytDTHZ3OUEwalczYnRnV3VXRCthL3M2ZE94dDI3RWluMHh3NmRJZ1BQL3lRZDk5OTk0RXRFUXFGQXBsTVpsWDAvZlQwTk5QVDAvY0p3QTJYTElaaFBIWnN0YjlOZlBGWFVaVGdXS3ZyK2lvQldOTTB3dUh3ZlFKd2MyLzNXQ3hHSXBHZ282T0Q5dloyZEYxL3JQVm9GdXZYNHJvdXk4dkx2Z0FjQzRmRDc3UzN0eThtazhrbDREcGVrV1NMSjZRbEFEOEFvNTZaa0pYbzM1aFc3cmZxOVlXUG92RTlSR0lqNktHQlJsL2dkYjVjcnVPNVZ2VjJKT1hoOFJTdkdxS29OaHdTWGt4ZzRKZ0krbVhxaUZJWVNRb2hOYWFWcFFpcTNvMnN0aUVwWVVUUkUzeGxOWTRzSnhxdXZCZHdjZC9vMldkWkpZenFQTFhxTEthUmFUeFdzS3dpamwzRGNRMXMyOEMyeXpobXlST1JIUVBITVJvRCs0OUcwM3NJUmJZaFNpcTJWVUlRWktLSi9kaFdBY2V1VUZnNWorTnNqZ2ljU3FYbzYrdDc2SVZST0J4bVlHQ0FzMmZQVXExV04yVTlXandjUVpCUTFEWWlzVjBrMjQrU1NMMkpIdTRGNURWOU1ZVmdVTjJvWjhqbnpwQlorT1VmbEV0anYzd2hLLzZFMUNxVDUwcUZ5NFRDL2FoeU45NDUzUmNCdlBPN0hoNmdyZU1EYkt0TUxuT2NXbTMyc1lza1JGRWpFaHNsM2ZWTjRtMXZJaXZlQUV6UTY5RXZGRm5sR211S2pXLzg3VG5FckhWYUFuaS9TMUtZU0d5RWFId3ZocEhaMUNLT2x4OFhRWkNRbFFSYXFKZHdkRHZ4NU92RVU0ZFI5VTV2Rzd2Z3VHdUxISjRGQjF3QldZa1JpZTBpa1RxTVdjOWkxSmVlZWM2U0ZFYVNZNmg2WjBOWVBFdzg5VHFxMXU2NUMvM29jT2ZldnIwYUlkZ1hWKzJUdmg3bWkyT045QXVqdmtpcGNKVjg5dVFQcXVVN245cDJiVXU3U3g5RXJUcDlycFMvK2s5aXlkZithMFhyQUtmaHhIY01SRWtubGppSWFXUXhqUnlsd3RWSGlzQ3lFaWNjM1VXNjZ3T1M3ZStpYWwzWWEzbzlDNEtFRnZLU04rSnRiMUl1amxISW5LSlV1azY5T29kbDVoc0ZYL1ZWa2ZPU0ZFYlJ2T054cXYwcnhGT0hVSlJrNDN0K0w0S2ZSaFJ5clRMSjh2elAvNXRpN3ZMZmJQUjJleEU0anVFZjBFckFESEN1K1hsUjBuUlZUZjhUUldzYlZMV092OWIwYmpTdEcxbHJhL1RPRFNPS0dxS2s0Ty9ZZ1FDTTRCVUk0cmwzdlpobXIzQVFRV3B5RmplT3gwRlJvSXdvK3MrdkhWUmZtK2h3Ny8vM0hzMy9vK0hLWDAzenNwdmR3MnVtYW40Qjk3NjQ5OTZmMERqbk9IWWQwOHhoMXBlb2xHK1R5NXo0aDdubFkzOWlHaXN0OGJkRml4WStmbVAxbHRMMUJCaUdUUzVmWXlWWG8xYXpHcWZrcG1PeTdTVSs2R0dGMGQzdGxJcDFidDlaNGVhdExQbkN4aWIzdUM0c0xSZTRmT1VHeDArY29yMmppLzM3RDVKTVBuc2YzTWZCdG0zbTUrY1pHeHRqYkd5TTJkblpGM28vWDYvWHVYejVNdlB6ODV3NWN5YUlBdmJGR2w4SWFuYXkrZjA5L1Fqb1RDYlRFbiszR0cxdGJSdzhlSkR2Zk9jN2ZQREJCMnpidGkzb3E3blpSS05SSXBFSTZYU2FIVHQyQkpIUnZtZ3lOVFhGMk5nWU4yN2M0TzdkdTYxVXV5MkMzL1BadHUxMUJXQlZWUmtjSENRY0R0UGIyN3Z1TkJ0QmQzYzNtcWJSMTlkSFQwOFBvaWp5bTkvOGhsd3VGMHlqS0FvN2R1emdyYmZlNHQxMzMyWFhybDJvcXRwb3cyUUZncW5qT1BUMzk5UGIyN3NwNjdvUkNJSVFDSHlKUkNMNEhCNFVBVzJhWmlBVTM3aHhnNS8rOUtkODl0bG56TXpNM09jeTdlbnA0WU1QUHVDNzMvMHU3Nzc3THYzOS9TOVUvSDFhZW5wNk9IcjBLS3FxSXNzeW4zLytPVmV1WEhubXRJbHdPTXpCZ3dmNTVqZS95ZUhEaHg4by92cHREczZmUDgvMTY5ZURZaGEvci9YYUNPaW5PUjg2amhPOHZobmZHZHo4MHhlTDEwWkFxNnFLcnVzb2lrSXltV1JnWUlCRGh3NXg2TkFoUmtkSENZV2V6UkFwQ0FJZEhSMGtrMGtjeDFGa1dkNHVTZEkzZ0Z2QUN0NDRSSXNucENVQVB3VExMQzJMa3ZLeFdWc2VMdWV1RE1YVGgvOXZIVDIvODErR296dWFCb2lhSEFtdWpTaUdDSVVIMGZSSFcvbGZkZ1JSUXBLanFHbzdpcHBHVVpNb2FqdXEyb1lvUnhCRUw2cFphaEtBUmNuckZTY2dJUW9TZ3FnRjBYcUNJRGFFWTluN0dmU1NhNzczWGUyOUZ1NGJnSHM4VmcwSUN2NmNHamVIZ3RkalRsRmtKQ21NRnVyRmNVeGMxOFJ4Nmw3c3RGM3pvcU1kQThjdVk5YTlnVHlqdmtTOXZvUmhMbUhXTWcvdEE2MkhCd25IZHFIcDNRaU5LR3BCa0pDbEVNbjAydzBCWEtDUU80OWpiK3pObWgvUnN6YVBmeTNSYUpUUjBWRjZlM3U1ZGV2V2hxNURpMGNqaUFxUjZEQ0o5TnZFVTRjSlIzZWdLTW1nU0dIVnRBMVh2R25teVdXT3N6ei8wNzliekYvOFM5dXM1RjdFdWo4cHRmTGtpVnptMkg4ZWpnNy9xYVFrRUJBYkViZis5OTl6OCt1UkFkcDd2NDhXN2lPWE9VNnBjTldMaG4xb2pGQ1llT29RYloxZko5NTJCRlhyOEk0dURXSEhkZDJtc1hzWHdWMHoydWF1S3hQY2grUFlJSWhFWXFNazBtOVRLbDZqVm5seXAvS3JqemNJSndnS2VuaUFSTnNiK0VrYml0cUJvaVFRa1BDTzFKc3g5dWxGZHF0cU8yMGRIMkFhT1RLTHY4WjVpaGhnQUFRUlBkUkhOTGFiY0d5VVVHUVFMZFNMcW5VZ0t3bEVRY0xGQnRkZUV4MithaWFOTlFNQnA3RTcyd1QvQktCUm5HUVdLSmZHeVdkUC84dEM3dHhQcXFYYm4xbjIxbzRXZmhoR2JlbFdQUFhhWjBadDhiL1dRMzJOLy9yaW1Zc2toVWkwdllYcldMZ0NsUE5YSHRnSFhOVzdTYWJmSWRuMk5wSDRiaFFsMlJDTW00K1g5NG84QkVRa09VSWt2aHRWNnlCdUhLRmVuYWRXbWFKU3VvMVJtOE0wVm5DY0dwSWNKeExiUlN6NUd0SDRLRnFvRDFtTzNlZmtGZ1FKRnhlanZrUXhmNWxTNGNyUHJTOUpwSzlqMTJ2QVJWR1VyMWJFMnlsUjFDS1NGRXBMY3JSRFVxTHRraFJKU3FMMlIvNzFUU0RRNG9JditEYUtIMFFwaEtJa2taVUVraHoycmltYnJoVkZTVzhVWFVTOGg2aERvNCs3UUxQNCtuQ2U1T2dpTkU0R2ozek5mUk80L3F1eDdBcTE4aFRsd2xWS2hTdi9zRksrZmJKZW5iMWdHb1g3TFFjdFdyVDRNbU1BZFpvcklsczhFdE8wS1JicjVBdDE2dlhtQ09nR3Jnc1dpSnBFVzJlRTBaRTB1M2VsT1hVdVNyVnEzWE1OYnhDT0EvUHp5NXc0Y1lwWUxFNDRIT1hnd2RlZXlSbjVPRlNyVlc3ZXZNbm5uMy9PMmJObnVYdjNMdVh5eHNkY04rTVBGSXVpR1BRUjlLTWxaVmxHRlAwQ1I0TGVoWDR2UXY4NXgzRUM1MWt1bDJ2RitHNXg0dkU0cjczMkd0Lys5cmY1OXJlL3pldXZ2LzdjMTBFUUJPTHhPUEY0UEJEZlhOY2xtODB5TVRIQmpSczMyTEZqQjNmdTNHRjZlcHFscGFWZy95b1VDczk5ZlZ1c0x2SjQwUE9LNHQwVHJLeXNNREV4UVNRU1dSVlp1MUhIMEZRcVJTcVZRdE0wYXJVYW9WQ0k4ZkZ4TXBrTVMwdEw2THJPM3IxNytjNTN2c003Nzd4RFgxL2Z1dlB4QlczL2Q3L2Y2dFBTSEFQdDQvZHZmWmI1TmlNSVF1QUVmUlE5UFQwVUNnVVdGeGNwRkFxc3JLd0U4K2pyNitPOTk5N2plOS83SGg5ODhNR1dGc0VmaFNBSWRIVjFjZVRJRVFSQklCUUtFUXFGR0JzYlkzbDUrWUg3N01PUUpJbjI5bmJlZU9NTmpoNDlTbjkvLzMzVEZJdEZwcWFtdUh6NU11Zk9uZVBzMmJOQjI0Ym5kUjcwNDdLZkZFVlJHQmdZWUdabWhybTVPV1ptWnRpMmJSdnhlSnhFSWtFc0ZudnE3MnRqM3hRQUJSZ0MzZ051QWt1d1lmRmNYeHBhQXZBamNHelR3cXN5dUJWUEhnZ24ydDcrTDBOaHIyZXFzS3JmbHhkVko0b3FtdDZOcHZjZ1NlR242aXYzNGhFUUd5S3NLR25JU2dKWlNTTEpZU1FwZ3F6RWtPU1lGOWNzNmNoeUhGbU9JY2xSSkRtT29rUTlZVmVRUUd3TTFEWGk3Z1JCYm9yK2N4c09yMGJVcXkvS0JsR2ZqMlpEN29iZFZUOVdiUWRCa0pHVmVLTi9zT2lacnhvOTRsekh4c1hHZFV3Y3E0cGxGYkNNUEtaVndMTHlXRVlCMnlwak94VWMyMmhFQ0RyZWtMTWNKaHplVGl6MUdxS29CL3RSMFB0UVNSRlB2WW5qV0FpU1JuSGxMSmE1Y1Jlb1hWMWRqSTZPUGpCeXdTY1VDckZ6NTA3Nit2cGFBdkJ6UmxIYmlDYjJleTZ6NUNHMFVJL1h3OUMxY1oybWl3QkJhSHl2Ukl6YUFpdkx4OGdzL1B6M2kvbUxmMmxiTDQ4ajBMYnJOVm1OLzNKbCtiUC9WVllTLzIwa09nS0N2S3JZeG5WTkJGRW1GTm1PckVUUjlCNFNxVGV4ckNMZ1lOdFZiS3VFYlZYQWRSRkVGVWtPZTlzeVBrb2t0Z2RGUytNNWVhMUFTSGNjQTlldDR6b1dqbDNIc2tyM25QNU8zZXNSYmhiQXRkSEMvVVRqZTFIMXJrWVA4ZVp4dVlhN1ZHMGpFdDlOTkxZSHk4ZzMxbThqOFMvNlg4N3hRTTk5MlVzMHZwZFk0Z0NSK0I1Q2tRRWtKZGJRL093MTd2YU54eXU0a1FsSGgwbDF2STlsRlNubXptT1pqLzlaeVVvY1BiU05jR3dua2RnbzRmQjIxRkFQaXBxNjF3YkN0YkFmR2lrc0lvb3lJT0M0SnJaWndqUlhzTXdWTEtQUTJEZGRCQUZjMThTeXloajF6TCtzbGljdVY4cmpuOVhLVStjZU12T1hobnAxOWxJcGZ4bE43MGJWdkxZRXJtdmhPdDVOaUtxbFNiVy9peWlIS01WMkI4a2MzdmZTUXBiamFLRmVJb2w5SkZLSENFVjJJRXJoeG8yenYvM3ZwU1M0cm8yTEZiaUpSVkZGRC9lajZkMkV3enN3WWhsaWlRVk1Zd1hiS3VHNkJtS2pJQ3dVR1VKVjB5Q0lqZld6dVBlZEZCclJ2amFWMG0zeTJkUC93S3d2dnpUUnp4dUY0MWdXa0dzOGdncGRQMEphRUtTbWJLakdoeUFJc2lDSVVzT3VKWXVpR3BIbFNKc29SVHRFU1EwTGdoSVdCQUVFVVJJRVNSVkZSUlZGTFNwS2VrUVU5WWdvS2dxQ3BEU2M5S0lnU0pJa2hYN2Z1MTROTlQ1N3I3RElQemVJa283WXVGNzFpcWpFeG5RQzRMbjIvY2hvMTdXdy9TSkFwKzVkMTdtV1Y2VGlldGV2cm12anVDYU9YY1Z4NmdoSVNKSU9nb0RqR05obStkOGFaaTVqMUJidTFDcVQ1K3ZWbVF1bTJSSitXN1Jvc1M1MXZMU0ZqWXhCZWVVeFRZZGkyYUJZckZNM0dnT1pvdEJjVjBhd09SV0pkRnVZMFpFMEIvZDFVaXFaVE04VU5ueGo1L05GTGwyNmhDU0pwTlB0SkJKSmhvYUdOdFVoT1RNenc2OS8vV3MrK3VnakxseTRFQXpXYndhNnJnZTlONlBSS0txcUVnNkhneDZlOFhnOCtIK3pLTExXdWVUSGsrYnplZWJtNXJoNTh5YTNidDE2cWdIM0ZwdVBydXVNam83eTdXOS9tKzk5NzN2czNMbnpzVi9yOTJmMWhjQm1sOWxHSUFoQzBJTzFxNnVMZmZ2MnNiS3l3c0xDQXBPVGs0eVBqM1A5K25WdTNyekozTnpjbDhKVjd2Zno5S050TGN1aVZxczlsZUN6RVR4TXlDeVh5NEVZcGlnSzA5UFR0TGUzQjBKL01wa01IaHNsQkE4T0R2SmJ2L1Ziakk2T2N1dldMYzZmUDgrcFU2Y1FCSUhYWG51TnQ5NTY2NEhpTHhBVXZZRG5zSHhXOGJlNWI2MlBJQWlCTS9ONTA5SFJ3Y2pJQ0NNakk5eStmVHM0cC9UMjl2TE5iMzZUMy9tZDMrSHR0OTkrcWNYZlpqbzdPemx5NUFpcFZJcnU3bTQrLy94empoOC96dlQwazVrN0JFRWdGb3V4YytkTzl1M2J4OGpJQ0pGSVpOVTBLeXNyWEwxNmxjOCsrNHpQUC8rYzhmRnhGaFlXeUdhekcvbVdOZzNUTklPbzdQSHhjWTRmUDg3UTBCRER3OE9Nakl5d1k4Y09lbnQ3SHhqbC93U0VnUkZnTDNBQitGSVUyRzhrTFFINENiQ3N5b3B0Rm5HY09xSzRYbXl1NXlLVEpNOEZISXJ1cEZ5NCtrQ255bFpDa3FPQmlLc29jVVE1akNScVNFb01WZXRFMVRzYi9keVNLR29ic3BwQ0VqWFd1eDkxMS80VnBPcDVndW42Yk1XTExyY1I5UW9QNnRVaklDR0lFcUlXUXRIYVlQV3hITWV4c08yeUZ4TnQxVDBCV0JBYjJ6bUJJS3FOYU5EbUd4c1h4NjRoU1JFUzZYYzlFVjdTeWErY3c2d3ZQWFBmWWZBRTRNSEJ3VWZtOC92OU43cTZ1aEJGc1hVRDlod1FSUlU5MUU4cytScko5cVBFVTY4anl3a3ZYdHh1SGdQeUNqVVFCR3lyZ2xGZkpKODl3L0w4Ui85eHVYRDFiMjNiZU9teWh5MmpzQkFLYi9zelZldm9WOVgyLzB6Vk94RUVlVlhrcXlkK0N5aHFtbVE2RGVtMzhRZnJMYnZpeGJRYmVYQWRyNCs0RXZlS1ZpUU4xeFVDUWNrZmtLOVhaNmxWSnJITW5MZU5yUXFHa1cwSVAwVnN1L0o3cHBHZk4rdkw0N2hXTFJ3Zi9XYTY4eHQvR1UrL2hSN3FReFJrdkg3Z3F6M0NxdHBPSXYwVzlkb0N4ZnpGNTdjUnR6Q2lwS05xSGVpaFhxTHhmU1RTN3hLTzd2RGFLZ0N1N1JmK1BJL3pnVGNLS0lnYTBjUitYTmRHbGlOVVNyZXhyREsyVmNTeHE0MWU4cXRkaDdJY1ExSGJHaUwyUHVMSkEramhiUWlpNnAzdmcvNitEM2d2allJaTN5bHFXU1ZNSTR0Ulg2UmVuYU5XbThPb3pXSFVsaHZyNENJSS9LNXQxd3FXbVorenpPS3MvUkk3ZnRmRE1vc0wrY3pKdjZ1SHR2MngydEdPSUNxNGRsTU12R09qcU8ya096OGtGdDlQdFR4QnZUYURVVi9DZFV4VXRaMXdiSVJ3ZElkWHRFVnplZ0FOeDY4WTlFd1hKYjBSeCt2RnVYc0ZXZzB4V05MUncvMkV3dmRYNTlLWVkzUHgycjJvZUxHUjVsR25WcGtnbnozK3Y1VUtWejk2R1kvRm04V2FDT2xOUlpRVVdaWmovMGhSMDBPeUhPMFFCUG5mSW5qcE02SVVRbEppeUhJTVVRNGhOb29UL1JRYXo2M3JmOFo0bDdLT2lXV1hHOFZCRlJ5cmh1c2FPSTN2UEs3amliK084YnVXVlZ4eXJFcFdGQlJka3NNcEJFbXo3ZXFLWmVRbVRUUGZFbnhidEdqeE9OU0JjdU5uaThmRXRoMHFGWk55eGNSOG1Kdlg3d1dzU3V3Y2J1T2ROL3RZV0N5enRGeW1WdC9Zc1J2WGRjaGtzbHkrZklXT2ppNUNvVENXWlRFME5QVElIcFZQaW0zYjVISTVidDY4eVpVclY1aWFtc0kwVGFMUmFDQW0rT0xFV2dIR2QrTDZqK1lZU1A5My95RkpFcnF1RTRsRWlFUWl4T054WXJFWTBXZzA2QmtZalVacGEyc0xIRUNoVUNpSWpGd3Y4dGwxWFdxMUd2bDhudG5aV2E1ZnY4N1pzMmU1ZlBreW1Vem11Zlp3RlFTQnRyWTIwdWswaVVRQ1JWR3diWnR5dVV5NVhBNzZ5bjVaeDBZVVJXSGJ0bTI4K2VhYnZQLysrK3pmdi8rQmdwZnZ0aTJWU3RScU5VcWxFcFZLQmNNd2d2MVJGRVZVVlNVVUNoRU9od21GUXZmMXAvU2ZleEx4S3hRSzBkZlhGd2gzbFVxRjZlbHB4c2JHR0JvYVltaG9pSW1KQ2VibjV3Tkg4TXZVSzFpVzVhQnY1OXJ0MWR6anM3bXZweThBKy9HKzFXcDFWVS9ZWEM2MzZWSHIvdkZsdmMvUzd4cytQajdPRjE5OGdXM2IzTGh4ZzQ2T0RoS0pCSWxFZ2xRcVJWdGJHNmxVS2ppMk5MOS9XWmFEOSs4bkVmakZKODJKQTgxSWtzVE9uVHZadVhNbkJ3NGNvTCsvbjFRcWhXbWF2UGJhYS9UMDlEelIrOXNJN3BtRXZKKytBYzJQeGkrWHkxUXFGVXpUUkJDRTRMTnVqdXB0anZKOUZoekhJUnFORW8vSGczbW4wMm0rOHBXdjhOdS8vZHU4Ly83N2RIUjBQTk15L0NLTll0RXJ5UGVUSS94OXBmblJmSjVxL3VrblVEUi96czNudGJXZnV6Zk9zdjZ4cTZPakkzQ3h4dU54VkZYbHpKa3pURTFOUGZaeFFwSWtPanM3R1IwZFpYQndrRmdzdHVyNVNxWEMyTmdZdi9yVnIvakZMMzdCbVRObktKVmV2bUVleDNHWW01dGpibTZPYTlldTBkM2R6ZWpvS0h2MjdHRjRlSmlCZ1FGNmVucUl4K1BvdXI3cVdQOEV4M1FSU0FGZHdNWmVQSDFKYUFuQVQ0RHJXblhicnVJMCt0S3RKd3I2NGtJa05rS2k3VTNxMVJrdm5uU0xJZ2dpbXQ1TExQa2E0ZWdJaXRhT3FpUzhBVEZSUTVKMEJGRkhsTlNHazFjT29wMEZ2TWpaZTNIS1hseW5FRndzTkFaR2hlWUt6NjBpOUQ1T1JkYkRRbC92dlY0SStncmQ2OThZeEV1S0dxS2tvN2pKMVZHMm9vVFFHS0JlTGY0Mkw4OUJsc0lrVW9jOTRWM3JaR1g1TjFSTGQ1N29uYTVIS0JRaUdvMCtzbUpPVVJSNmUzdnA2T2hBbG1VTW81V3lzSmxJVXBSb2NoOXRuUjhRU3g1RTA3cVE1QmozV29DdDdqRUpBclpacGxTNHlrcm04Lzh0bnpuNUY5WEs1QW5uSlJZY3FwV3BjOG4wMnovUlEzMy9XVUorQjBWSjROcHIzMzhqdEYyUW10eGFvSWdxc2hUQjBicnhJb2FscHRRQkYvRGMrNElvNHpvR3RmSmRza3VmL1A5eTJSUC8zakpXcG5FZHkzWHR1dU9ZTmRjeHk2NXJXNjVyMXh6SERCUm9VVlQrMXJZcUg1aG0vdi9SMXZuQmZ4R0o3dlNFdkVDazlncEhaQ1ZHTEhtUVN1azIxWWJBdkdFRUJ1Q1h4d2tzS3lsaXlYMGswbThSaWU1QzFUcFIxRFNTcERkRi9jUHpmQy9lTVZsQVVkcElwTjVFQy9WaTFwY3hhb3RVU3JlcFZTYXhuVnJRdjE2V28yaWhuaURlV1ZYVHlHcktFNUVrdGJIcWp2ZXhyRnVvSS9nTHhoVzhZN3hsNUNqa0wxUE1uZnNYbGRMTkUwWjEvcnBsbGJPT1U4KzdqbEZ5bSt6K3pmdmhxNFp0MTBxcW12eFpxWGoxWDBZU3UvKytwblUwUmNDRC8vMFhCUlZONzBKV0VrU2NYYmdOaDdRb0traHlCRkgwM0phNE5xdU9sNjZMYVJlcFZhZHhIWk53WkxzWEQ5MHM0UHJuNTZBUHM5aUlqUlR2ZGF0MUhlNlA4dlo3TXdQWVZFdTNXWnI3MFQvTExuN3lKMFp0OFV2bi90MHFOQko4Sm9BSlVWUmtRUkJDdnJ0WUVDUlpFQ1ZORUdRZFFaSUZCS2tSRFM0TGZvNDByaFU0Z0FHM2NYNW9uQmZxdUk3bDR2aFZnc0gwdUk3VmNFQzNhTkdpeGJOZ0FGVmFFZEJQaE9PNFZDb21wYkp4TDg1NXZjRmR4d1hUUVFuSkRBMm5lYWRzY25jeXorMDdPU1puTmljV2RuRnhpYzgvL3p3UVd0NS8vMzFHUm5haGFSdlhKOUVYVHFhbXBwQmxtUjA3ZHREZTNvNXBtcGltaVdFWVdKYUZJQWpCZ0xrdkJEZEhOdnVDbXkvYWhrS2hRT3oxSDlGb2xIQTRqS1pwZ2J2UUY1aDhNU1lVQ2dYUFAweU04QVZnMjdhcDFXcU1qSXl3ZS9kdWR1N2NTVTlQRDE5ODhRVTNidHg0Yms3TmpvNE9qaHc1d2x0dnZjWE9uVHNKaDhNNGpzUGk0aUozNzk3bHlwVXJYTHAwaWFtcHFTK0ZlM1F0cVZTS1E0Y084ZDU3NzdGcjE2NEhDaWgrUDh2TGx5OXo2OVl0bHBlWHllZnptS2FKYmR0QnhLMi9QMnFhUmlRU0lSYUxFWXZGQWdkNVIwY0gzZDNkYk51MmpaNmVua2VhR0I1RU9CeG01ODZkSkpOSnRtL2Z6cnZ2dnN2aTRpTGo0K05jdVhMbHBlb1ZISTFHNmVycW9yT3prL2IyZGhLSkJNbGtra1FpUVRxZFh1VzhYL3ZkODRzdS9KNnZwbW1TeitlWm5wN20wcVZMbkR4NThvbWRqaytDdno3cmlaS21hVklvRkppYm0yTjhmSnhhcmNiazVDVGhjRGdRTi8xamt2L3c5eG5mSWV3WHBDUVNDU0tSU0ZDRTR2LzlLTkhKZDM5MmRYVmhtaWJidG0zYjlOaitabnpSY20zaUtIamljcWxVWW01dWpydDM3ekl6TTBPaFVNQjEzZnUyZzMrTTlnc0EvT1AyMDJCWkZwVktKV2dsc0czYk5vNGVQY3AvOUIvOVJ4dzlldlNoNHE5aEdOUnF0YUJ3NkVIYmZuSnlrbC8rOHBkY3ZueVpjcm04Nmx6a2k5disrL0VMSFpvRmIzOGEvN3lqcXVxcWRJSG02SEQvMk9NWG9QaUZUR3VQWlpxbU1UdzhURGdjcHIyOW5iNitQbjc5NjE5ejllclZ4MnFyb0drYUF3TUQ3Tm16aDc2K3ZsWDdVYTFXNCs3ZHUzenh4UmQ4OU5GSFhMNTgrYVVVZjlkU3I5ZVptSmlnV0N3eU1URVJGR3QwZDNmVDFkVkZWMWNYdmIyOVFlL3RqbzRPSXBISWs3am14Y2FqeFJQU0VvQ2ZBTmUxNm81ZHdYWHV4UW5lUDQwREFtaDZEOUhZSGxhMHo3ZVVBQ3dLQ3FJY1J0VTZDRVcyb2VsOTZLRitRdEh0cUhvM3NoVDFldlFLc2lkU0NsSVFheGRFTnVQZzJIVmV2bnRSb1RHZ0t6YjErMjBhK0EzZVRsT3NkMkJmOWdiclhkY2Y5RzJPL203K2ZiM2wramRXVGNjbzEvRmNJOEdBYzBOTWJ4SU52RzN1ZUtKZ1lsK2o2QUFjdTA2OU92dmtiNzk1alpwdTloNkdJQWpCUmRKR1ZiSzF1QjlaU1JDTzdpQWEzK1AxbDB6c1I5SGFFVnh3WERNUXFvQ0c2MWZHc2V0VUt4TVVjeGZKWlk3OU42WDg1Wi9VcXZOWFgrdzcyUmpLeGJHUE13dS8vSzlrSmZaUFk4blhrU1F2cXR4MXpLWmprYjFPdW9MM1hSSkY5VjdVRzQ3WG16ZjR6b3FJb2thdHRzaks4bS8rSkx2NDhmOWVLZDA5L3JqcjFoRGhQb25FUmxEVjlIK2g2WjBvU3RJcjZHZ1VjN2lPaFNBcWFIbzNzY1IrS3NVeENybnpMMFVheEVhanFHMkVvOE5FRS91SkpmWVRpWG1GUm9JZzRUcE9JKzcvUloxTEdpNWdRVUpXazBTVU9FUXRMTE5BSkw0SHM3NkU3UmlJb29Zb3FraFNDRVZOSWF2Smh0am9GUjY2anRrNEo2NlA3eDVHa01CMXNPMEtaaTFEdFRKQnFYRDFUNHI1SzEvVXluZStxRlhuWG9udjc5TmlHTG1aUlByd3g2SG9qcitmU3IrSG9pYXg3Vm9ncHZ2ZmVVRVFrZVV3Q0xGR0lScTRPUGZpOFZlZGlBVkVTY015Y3hTeVo4aGx2dmhEeDY2V292RjliOGVTci8zSGVuZ2JpcHBDUU1CeDZsNVJWbkMrZi9RNmU1K3RBb0tFYlJVcEY4ZkpMUDdxWDJRWFAvbVRXblcyWmYzZklqU08yeTFSdGtXTEZpOFRGbEFESHE4dlVndkF1N0lybCt2VWFoYVc5UkIzcHVNVnNBdUtSQ0lWWXRkd0c2OGY3R1pzUEV1eFhHY2x0L0hHYTlkMW1acWFvbDZ2NGJvdWhtRlFLcFhadFd1RXRyYTJaNTUzb1ZBSW5JeVJTSVRYWG51TmZmdjJVYTFXcWRWcXdhTlpBUFlINHYxQmNuL1EzQjlvOThjQmZFZXZMeXBFbzFFaWtjaUdPWmliQllGUUtFUXFsYUt2cjQvT3prNDBUV051Ym81YnQyNWhtcHY3ZFZBVWhXUXl5YUZEaC9qV3Q3N0ZoeDkreUs1ZHV3TEJjWEZ4a1Z1M2JqRTRPRWhuWnljWExsemcxcTFiNVBQNVRWMnZyVVlxbGVMZ3dZTWNPblNJUkNKeDMvUFZhcFdabVJrdVg3N002ZE9uT1hQbUROZXZYMmR4Y2ZHaHpqbFJGTkUwTFJDeGZPR2dxNnVMdnI0K2R1ellRWDkvUDkzZDNVUWlrVURZOHAxa2p6TmU1VHZ5T2p1OWxqUDFlcDA3ZCs2d2ZmdDJCZ2NIdVhuekpwT1RrNEVUc1ZRcVVhKy91Q0NHNW1JTS8zZGZGUGNGbEs2dXJzQVYyOWJXUm50N082bFVpbWcwK2xqYnhIZmRUa3hNc0czYk5xTFJLSmN1WGFKVUtsRXNGbGxaV2RuUWJlQUx3T3VOUmZvOXdBdUZBcmxjRHRNMEEwZm9lb2lpU0NnVUloYUxrVXFsVmduaHZrTTRsVXF4YmRzMjl1elp3K0RnSUtGUTZJSGJ3Vituam80T09qbzZWaFduK01MczgrQkJ5L0ZGUzhNd3FGUXFGQW9Gc3RrczVYSVp3ekF3VFJOUkZJbkg0NlJTcVFjZXczMUhkQ3dXbzcyOW5WZ3M5dEN4NFZ3dXg0MGJON2h6NXc2UlNJUTMzbmlENzMzdmUzenRhMTk3cVBqckMvalpiSlprTXNuQXdNQUQyeEF1TFMxeDh1Ukpmdm5MWDVMSlpBSUIyQmQ5ZmJHL1dSQnVMakpxVGdyUWRUMXdmaXVLRWdqRkR4S0EvWUtLL3Y1K2VudDdWNTJUVkZWbGFHZ28ySy84WlYrOWVwVnNOdnZRSWlCZDE5bTJiUnM3ZHV3Z2xVcXQraHlYbHBhNGNPRUNYM3p4QlJjdlhuemxlcEpuczlrZ3hsb1VSUktKQkoyZG5mVDE5YkZ0MnpZR0J3Zlp0bTFiSUFvUERnN1MwZEh4c08rWWcxY1lXYUoxWC85VXRBVGdKOEIxelpwbGxSL1JtOUFURWtVcDNIQUl0Vk1WeGpja3R2ZHBFQ1VOU1FwN0VjOUtIRVZKb1docFF1RkJvb205WGk5Tk9jYTl1RHMvWnNKcXhDODJzOW1EOUUwbkhFRllJNjhMcTM2LzU3cHRQQ2VBWHdUU1BHV3pQOGZGYVF6VTF3SWh5WGZ4Q0FoZVAxRFBWOWkwRGczQk9Jai9WTDNZeUlZVHlGM2J2M2pkYmZTZ2dXUy8xeHlCcU9VNW5wcm40K0k0TlFSUklSelpRVnZuQitBNjVETEhxSlluVmtYalBnblpiSmFGaFlYSHVvbXExK3VZcHZtbHJHN2RUQ1E1Z2l3blVkUVVvZWgyRW0xdkVrc2NRTk03QUJuWE51OFZJUGk5S3dVSjF6VXg2MW1xbFFrS0syZklMUi8vM1hMeHhrOWVKWGVnYWF6TUtHcml6MlFsbHJLdDJqOEtSUVk5cDZVVWJvaTdEV2VnYTkzM2ZRbEUxcWJvZHU5NElRV1J1NmFSb2JCeWx1emliLzcwU2NUZlptcVZxVFA1N0lrZnFIcm52NGluRGlQTE1WeW55WGp0T2dpQ1FqaTJpMFQ2TFdyVldlcTF1YWZkSkd0b1BySnRSUVFVSllVYTZpSVNHeVdSZnB0WVlqK3EyZ2FJVGUwQXRzWXh4WXR0OXMvUklyS2FRbEZUd083N3A3MzNvaWJSOS82RUNPK2NJVFg2eEZwWVZnWGJMbUVaT2VxMUJhcmwyeFJ6NS85ZXNYRDFKMlo5WllZV0FGU0s0Ny9PTG56OEQwUkIrK2Z4MUNIdittUk56TG9ibkhzZmNNaHJpdGoybzk3THhURXk4ei83QjduczhUK3hyV29wRk81L3ZWcStleTJlZXVNZmhhTTdVUFV1SkRtS0tLcjNramxXSFZ1YW5jR0NKK2JqaWYrbW1jTTBWcWhWSnNobGp2M1BLNW5qZjFadmliOHRXclJvMGVMWnNQSGluMXNPNENla1ZyT3AxVzFzdXpubFl4MjhuZzRnQ3JTbFFodzYwTVhzZklsQ3NjN1pDL05VYTV0emE3VzR1TVNKRXlmSVpyTk1Uazd4L3Z0ZjRaMTMzcUc3dS91cDU3bTB0TVRZMkJqVmFwVzJ0amI2Ky91RHlFdkhjUUtYbjIzYnE0UU1mOEMvV1JEMjQ1NmJJMVg5MzVzSDBEY2JVUlFaR0JoZy8vNzk5UFgxb2FycXBndkFpVVNDdzRjUDg0MXZmSU92ZnZXcjdONjllMVZmMnM3T3pzQUp0bS9mUHM2Y09jTkhIMzNFc1dQSEhpcFN2V3FrVWltMmI5L08wTkRRZlgxN3krVXk0K1BqZlBiWlozejY2YWRjdTNhTjJkbFpNcG5NSStmck9BN1ZhcFZxdGNyaTRtSWc1UGpDbFI4cG5rNm5TYWZUOVBUMDBOZlhSMzkvZi9CNDB2MVQwelJHUmthSXhXTHMycldMVENiRDFOUVU0K1BqakkyTk1UWTJ4cDA3ZDE2SU02K2pvNE9lbnA1QWxPcnU3cWF6czVOME9oMjRvMk94V0NDS05UK2VCRUVRU0NhVGhNTmg0dkU0TzNic1lIcDZtdm41ZWE1ZnY4N3AwNmU1ZlBueUl5UFAvUUlTeTdLb1Zxc1BuTzVCN2wvWGRRTlJzMUtwWUQxR29JN2pPRUUwKzlMU1VsQVU0SXVEZmhMQmdRTUhDSVZDZEhkM3J5dDAxdXQxQ29VQ2p1TVFqOGVEYmVpdjU0dnFsYndXUVJEUWRaM096azRrU2FLN3V6dUl6Yjl4NHdZWEwxN2t6cDA3Z2F2VmQ3MDJwenRvbW9icnVvUkNJUTRkT3NRM3Z2RU45dTdkKzFBQmVHcHFpb3NYTDdLNHVNanUzYnY1bmQvNUhkNTc3NzJIaXIvVmFwVTdkKzV3NHNRSlptZG5HUjBkcGIyOS9ZRUNzRzNiVkNvVjh2bDgwQlBlLzF6QUs5NW9kclN2ZmZoaXJ4OVJ2VFlXdW5tL2E0N1g5dU96ZTN0N09YcjBLRi8vK3RmWnZuMzdmZXZuRndmRllqRTZPenY1K2M5L3p1blRwNW1mbjMvZ050QTBqZTd1N2tCQTlqRk5rMXUzYm5IOCtQRlhVdnhkaStNNHJLeXNrTS9uV1ZoWTROYXRXNEdnSG9sRUdCNGU1dnZmL3o1Zis5clhIbFpZWnVPMVJzblRLbzU4S2xvQzhCUGdPR2JaN3dzb1FDTm1jTzFVZnV5eGdLUkV2S2hDT1k2NWtmR2ZqNG1xZFJHSmp4Q083RUFOOWFKcWFSUWxoU3hIa2VRb2toeERrdlNHSzZuUncreTV4elUvNENUak5xU3Zab2R1OEFyM2ZrSFZYVjhTdVRlWmcyM1hNSTBWek5vU3BwbkR0aXVOUG8ydTE4dFhVaEFiVGg0QkVVR1VFVVVWUVZTUkpCMUppYU1vQ1crYk5lS3ZnMlc0RDEvNkE5NGtBTFpWeGpDV2tVUWRSVXMzaWNETms5b2dTRVNpSTBpTjRvTE13aStmdXJmb25UdDNPSC8rUEwvN3U3KzdxaEpwTGJadHM3S3lRcUZRMkRJWFBTODdraFJDRFhVVGpvNFFqZTlERHcraTZSMm9XZ2V5SEczRUNhK0pMMjM4ZEIyRGFtV1N3c29wY3BuVGYxQXBqZjNLckdkdXY0cHhrNmFSWDFEVnRqK3VsdTZjQzBkM3ZCbU83L2tmSXJGZDZPRmVaQ2tLU0t1T0NnL0R1N0J6Y2JHeHpEeTV6REdXNW43eSs3WHluYytmZHYxc3UxYVM1Y2ovS1VwNlZOVTcvcGRJYkUvVGVuaHVma0VRME1QOXhGTnZVaW5ld3JaS1dOWUdEQTZzazFhd1ZSQUVHVDB5UkNMOUZ2SEVBZlR3QUpyZWlTUkYxNG4wM1VyY0d5VDBDNEtFVmNreURUSFFkNGNHLzF1TDBIakdMeEl5TWVzWkt1VTdWSXMzcVpUdi9NTnFaZXF5V1YrNGFocjVXZHV1dmZ3NVB4dUlhZVFYWkNYNlo1WlZ5bGhtL2s5VDdWOXBpUEdCcFo5SEZqNDBSV3k3VnAxeThUcVpoWS8vMTJMdS9MKzNMYTkzY3JVeWZVNVJFck9sd3BXUFE1R2hOeE50Yi8vamVOdGhkSzJyY1UxMC83SmMxd1hCQ1ZiRGRRenF0VVZLK1NzVWN1Zi81MHJwNWhmMXl0Ulp3OGkxQlAwV0xWcTBhUEdzdEJ6QUQ4QjM2eVNUU1dLeEdKSWtOWHIvbGxsWnlWRXVGYWxVNnRUckQwNXRDN0JkcUZrZ0Nnd01KWG4zU0I5ejgwVm1aZ3RNemhSeG5NMjVYcDJmbnllYnpaTEpaQ2dVOHRUcmRRNGZQaHowMFkxRUlvK2NSN2xjSnBmTFVhbFV1SG56Sm5OemM0RzdwcmUzZDFQVyswWGd1MEJEb2RCalJXNCtDOGxra3RkZmY1MmpSNDh5TWpKeW43Z0pYdlR1eU1nSUl5TWp3WGF1VkNxY1AzLytsWWp2ZkJTcXFnWnUwN1g3cVdWWnpNN09jdXJVS1g3MnM1L3grZWVmUDVidyt5QXFsUXFWU2lWd2tmbEVJaEhhMnRvWUdCaGdhR2lJN2R1M3MzMzdkbmJzMkVGWFYxZlFGOVozQmo4S1NaSlc5UXBlV1ZrSllxRXZYcnpJOWV2WHVYdjNMaXNySzVSS3BRMy9uSnZqYlAzMWJtOXZwN2UzbDRHQmdjQ2QzTi9mVDA5UEQ2bFVhdDE5ODFsUlZUWFlsb1poTURzN3k0VUxGMGlsVXFSU0tSWVhGd0h2Yy9hZHV2VjZuWGc4VGw5ZkgrbDBPaENBZmFGbllXRmhsZXZiVHh0WUx3Yll0bTFLcFJLRlFvRjZ2WTRrU1k4bEFqZS8zaGVEMXlKSkV1Kzg4MDdnK0Z4THZWN245dTNibEVvbEJnY0gyYkZqeDZycG5zWDk2enROL2ZWNFZueUJ1OW5GUGpVMWhhN3J6TXpNY09uU0pSWVhGeDlhTUtNb0NnTURBOFRqY2Q1OTk5MEhtbjM4N1hMcTFDbG1aMmZwN096azZOR2p2UGZlZS9UMzl6OXcvcjdBK2NVWFgvREpKNTlRS3BVSWg4T1BYQ2MvK24xcGFlbSs1MjNiZm1oaHdiUFMzdDdPeXNvS2lxTGd1aTU5ZlgzM2laR0pSSUkzM25pRFNDUVNDTTVuejU1bGJtNXUzWGFKbXFhUlNxVm9iMjlmOVoydFZxdmN1bldMQ3hjdU1EZTNVU2FSclkvak9PUnlPWEs1SEJNVEU4SC9EeDQ4eUw1OSsvaktWNzd5c0pkYndBcVF4V3VUMHVJSmFRbkFUNEJyVzNYTHpHTmIzZ21zZVRoeW5ha1JKUjAxMUkyc0pwK0xBQ3hLSVRTOUd6MjhEUzNVaXg3cVF3LzFlU0swbWtLU3c0aWlqaWpJM2xDMll6WGlOMS9FZDZmaHFoVWxoSWFRNDdwbW80ZXljeS9lMVczMEJzRnorem1PaVcyVnNhMFNqbVBndWpaT3c5VnJXeVZzcCtaRkd6Y0VXc2QxY0IzejM3aXVhZHAydFdSYnBSWExLQ3piZGlsak8vVUtqbTE0bjZJa2VmM2dKRWtRUkFrRXllc1JKNnVDb0lSRVVWRkZPUnlYNVdoU2xoUHRzcEw0VDFTdERVWHJRbFZUalRqUUVJTFlPS0VINjN6UEpld2pDQUl1QXE1VHAxN0xVTXBmb1Z3YUl4d1pwcTNqZldRMUFZNjl5dDNydVIxZFJGRWxIQm55SWtubEtKSVNwNWc3ajIwMVg0UStmTThFS0JRS1hMMTZsZm41ZVlhR2hoNDRYVXNBM2hoRVNVVlIyOUZEMjRqRWR6VkVzVjY4K05FMkpORzdHSEJkQzhkcCtqNDJuT2NDWUJvcmxBcFh5V1ZPL0xOaTd0emZWc3AzUDNmcytrdmI2L2R4TUl6c0JEQ2hhcWxUNWRMNGlVS29iNCttZHd6b29XM2JRNUVkdjYySHR5RXJjVVJSWTFWbWdGODQ0am80cm9WdFY3QnFXV3JWYVVxRmEvOG1sejM1dDVYQzlZOXM1OWw2SlZ0V09hZnBuWCtsUjRiK0YwbUtvSWY2QUtIeDNYVWJ2VWsxUXVGQmt1MUhNZXBMRkhMbjJYcmk1N01qQ0RKNnFJOUlmRGV4MU90RUUvdlJRMzFJVXRnN0lya1dqclBWNnhUOFN0REd1ZWVKWGlzZ2lGNi9hY2N4UEtkdmRZWnkrUTYxOHAxL1ZxMU1YemRxczFlTTJ0Sk4weXdzYk1iYXZ5cFlabWxaRkpVL0Z3QkJFUDQwMFhZRVJldEVFUDNqb2RSVXJPWjlTdjczMzNFdEhLdmlPWEpyczFTSzQvKytsTC8wbTFMaDJzZUdzZHBwYlpyNUJXQkJra05uNnJXRnNWcDE5dnVKMU90L1g0OE1vaWdKUkRtQzJCQ0RIY2ZBdHNxWTVncG1QWU5oWkRIcmkvKytXcDRhcTVidm5LK1U3eDQzdmVOVml4WXRXclJvc1JFWXRCekE5eUVJQW0xdGJSdzhlSkIzM25tSGtaRVJCRUhBTkMxbVpxWTVmdncwcDgrY29sWXpxVmJyM0Y4MXZnYkhLOWhERmtoMlJOZzkyczdyRTEzY3ZKMmxWREZaem16ZVlMTmhHTnk4ZVpONnZjN2MzQnpuenAxamVIaVlQWHYyTUR3OFRGZFgxd05mV3lnVXVIejVNaWRQbm1SeWNwSjZ2YzYyYmR2WXZuMDc4WGg4MDliNVJlREhiVDV0MzljbklSUUswZGZYeCtEZzRHUDF5dHk1Y3lmZi9PWTNnN1MwVTZkT3JTc0N2Q29JZ2hBNGNkZmJQdVZ5bWV2WHJ3ZXV0bWNSZngrR0wvS3RyS3d3TlRYRmxTdFhhR3RybzdPemsrN3U3dUF6OUlYVGg3a1UxeU9WU3JGLy8zN2EyOXZadFdzWGMzTnozTGx6aC9IeGNhNWR1OGFOR3pkWVdOaVkyN2xvTkVwdmIyL2dadllMT0RvNk9taHJheU9aVEFaRkVNbGtjbE9FMy9Yd1kyOURvUkNkbloyODlkWmJnZkJkTHBlRDdiNjR1TWpBd0FCZitjcFhHQndjUkpLa1FPUTVjZUlFUC92Wno3aHo1MDR3WDEvb1ZoVGx2bVg2QW5BdWw5dHdvYTlZTEZJc0ZxblYxaC8reWVmemdaQjM1TWdST2pzN1Z4MUxuMWI4Ylk0Ujk5MjdmcFR4czRyQnZtTlgxM1VHQmdhd0xJdmw1V1VXRnhlcFZxdjNGVTQwSTRvaWc0T0REQThQazA2bkgvaitKaVltK01sUGZzS0pFeWVJUnFNY09YS0VyM3psSzBHeHhJT1luSnprMDA4LzVjYy8vakdYTDErbXZiMzlrY2RHMytHcnF1cTYvWTgzbStYbFpZNGZQNDV0MitUemViNzJ0YSt0YWdIUXpNNmRPd0VDRit1eFk4ZTRkZXZXZlFVTHVxNEgvYWViS1JRS1RFOVBjK2ZPblM5VmVzU0RNQXpqa1FrRGVBV1JHV0FScjBDeXhSUFNFb0NmQU5jMVNxYVIvYnVXVmZ4ajd6OFBpeFR5ZXJlR296dlI5QzZxNWJ1YnNrNlNGRVpXRXlocUc1cmUwK2kxdUk5d2RBZXlrZ3dHUmYySVl0ZXhzSVBZeE0wNG9BckJqNkRQYmxQdlhmKy9qbXQ3b3ExWjhYNDZWUnlyZ21QWEF4SE1kZXFldU90NllxanJHRGgySGN2TVlSb05CNjlyWXRzR2psWDZubVdzVEZ0MkpZTWd5b0lneXVCYWptTmJybDNMYjZUTFNsYmlYYXFXL21kNnFPODFQVEw0UjNxb0QxVnJSMWJia0pVRXNoUkJFRlZFVVdrODFDYTN1SXNneWxobXZ1RWF1a0JoNWV4L1dpbmZPUjZONy8yT3JFVC9LSjQ4aENUSEh4QUhiU0FJRXFyZVNicnpRMVN0RFZGVUtHUlBOemtMSCs5ejlTTmREaHc0OE1BcVk4ZHhtSnFhWW41K3ZoVUIvWVNJa280c3gxSFVGR3FvMjR0ZGorOGxsdGlQb3JVMVhPdHVJQzU0Tk1TTVJsOUoxM1c4ZU5IYUlxWENOWExMbi8yZ2tMdjRIMHpqeXhVWmEzZ1J1VFBBM3dDRW8wUHZ4QklIVDBjVEIvNlJIdTVIVVZPSVVzaUxadzhLTGx5dllNUXNZaGpMVk1zVGxBdFhmMUFzWFBuSXFDM2YyckIxTTFadXJ5eDk5ajFWYS8rUm9yWWh5VkZ3N3hWaHVJNkJLSWVKSlE5U0xkK2hXcjZMYWE1czFPSmZPS0tvQlcwRllza0RKTnFPRUk0T0k0cTZGNlhyTkVlWnY0cjQ4ZXdDamwzRk5MTFVhNHZVS3BPVThwZi94MEwrNGsvcTFablRqdjNxUkxRL0R4ekh0R1E1L0dQWGRmNVR5eXI5TUJUWmdTUnBYaEdicERYNk1pdU5lR2d2aXRseGFsaG1BYU8yNkJkNy9GZkYvT1VmRzdYRnNZY3RxK0VLL2h0VmI3OWFxMHhlaXliMi9kTlFlQnVLMW9rc2gzRmRHOHNvWU5RWHFGV25xVldtcVZXbmY2OWVuYnRhZjhTOFc3Um8wYUpGaTZmRWR3QWJ0QVRnZ0dnMHlwNDllL2pHTjc3Qjk3NzNQZmJ2M3crQVlaamN2WHNIVll1em5GbEcxZVliN3QzVmhkanI0bm9wTUlJczBwNE9zMzkvRjdNTEpTb1Znd3VYRnNnWE44K0U3YnVrcHFhbXVIejVNdnYyN1dOeWNwTFoyVmtHQmdaSUpwUDNSZHJXNjNYdTNyM0x5Wk1uK2NVdmZzSDQrRGc5UFQxOC8vdmZKeGFMUFJlaDlHSFl0bzNqT0VIY3ROOUQwM2ZCK1gvN2c3MStST3VEWWgvOTZPcm5nU3pMUWEvSXgwRVVSZmJzMllOcG1pd3RMVEV6TThQMDlQUVR1UlpmSmdSQkNCenE2NGxYbFVxRjI3ZHZjL1hxMWNBdHVwbjRidHpKeWNrZ3hqV1ZTakV3TU1EbzZDaDc5dXhoZEhTVUhUdDIwTkhSc2FwZjhLTUloVUpCekxWaEdNelB6M1BqeGcxT256NU5kM2MzWTJOakxDd3NCR0wwNCs2anZnam85L0h0Nys5bmFHZ29FS3gzN05nUmZQY1ZSZkhNTFErSjV0MXN1cnE2Nk96czVPMjMzdzdHQS9QNWZOQUxlM3A2bXUzYnQvT3RiMzJMZ1lHQllGMUxwUkt5TEhQKy9QbjdCR0JOMDliZGZ5ekxvbFFxa2MvbnFWYXJHenIrYUpvbTA5UFQzTDU5bTJReUdZaWVwbWxTclZhNWN1VUt4NDRkWTI1dWpuQTR6TzdkdXdtSHc2dU92NlpwWXBvbWhtRmcyM2FqMkY4TTR2VDloeWg2NDdqejgvUGN2WHVYNWVWbHF0VnEwSzg0R28wRzBkMStMM1UvdHRqLzZXK254MFhUTkhidTNMbXEzL3VwVTZjZUtIanYzNytmNzN6bk83ei8vdnYwOXZiZXQ0LzVMdTV6NTg1eDZ0U3BRQkQ5MXJlK0ZSUmVyVWV0Vm1OcWFvclBQLytjWC83eWwzenh4UmZrY3JuQXRmNHcwYnU1RmNHTEVJQUI1dWJtK1BUVFQ2blZhdGkyaldWWmpJNk8zamRlTHNzeW82T2p4T1B4UUxSV0ZJWGJ0Mit2Y3J5dlYvQmcyemFaVEthUkFQSnFSejgvRHFxcUJza05qempXbVhqdTN3eXRIc0JQUlVzQWZnSnN1MTRMeDRadlcyYmpTeW84cUFySXhYRXNKQ2xNSkxhYmNHd1hoZHdGSEh0aml4UVVMVTBzOFRxeDVGNzAwRFpVdmRPTGVGWmluaGpTY0s2NHJ0M2tDWDFRbjlxbjVVRVJ6alFpR1AzSVpqODJVY0J4YlN5clFMVTZRN1Y0bTFwMUN0Tll4amJMZitDNFJzVjFMY094emJycjFJdXVZOVlkMTY2N3JsWEh0UzNYZFN6WHRlcU9ZNVp4YmN2RnRWelhzWEJ0NjNuRjRGcWVlMnRCa3ZUTHhjS1Z2NVhrYUtlaXhIc1V0VzJicHZmK2tSYnFRVlhiVWJSMFF4aE9JWW1oaGdndWdPTlNMZDlsY2Zadi9ydDg5c3hmMkZaaHhyYU5taVNIL3k5Y3gzWWQrMS9GVTI4Z0tiSEdpVy8xeGFRWExTc2lLMUZpaVlNSWlNaEtnbnptSlBYYTdHTy9qMXd1eC9Ianh6bHc0QUNIRHg5ZWQ1ckZ4VVZPbno3TnJWc2JwcGQ5S1ZDMWRpTHgzVVJqZXdsRkJsRkQzWTN2Wmh5cEVmTU1Uc05sdUxyUEpQampFRjZ2MnZ6S2FmTFprMzlZemwvL2RhMDJjOGFQTVAweVV5bmRQYTRvc2ZGQy91SlBOSzE3anhicTNpa3JpZjlCUVBTS1JWeTdVV1JTd1RKeWYyQVltU216bnIxcldmbkpqZDUrcm1OYWtoVDZ0Smk3K0lmaHlNNC9qTVNHRVVTdEVTL3Z1VWtGVVVYVk9vakc5MUV1amxGWU9mdUlYdkl2QjVJVUpwWjhqWGpiWWFLeFBRUml2S2h4ejAzNzVSaXp0SzBLNWNJVmN0bFRWRXUzLzZCZW5idHVHRXZYVFNQZmN2cytKWlpWeVVtUzloK00yc0liaXBvZWxKUm91eVRxLzBxU1FraEtBcVdSdmdHdUovd2FTeGpWcFI4WTljVnh5OHhOVzJaaDFySXF1Y2RkbmxGYnZpWEw0ZitqWExqNk0xVnIzNmxxM2Jza0pmcVBjUzBNWStVUHpOclN1R210VE5sV05ldlkxZHlyR0wzZm9rV0xGaTIyREJaUXdITUJmemt1cGg2RHZyNCtqaDQ5eXRlKzlqWDI3dDBiRENhSFFoSzdkKy9tamFsRmJ0NjhqbG5WdkFGYkYzRHNSenVCYlJkc0Z6a3NzMnQzTzVacFVTclZXY2xWdVRHZVliTk5uWVpoTURFeFFibGNabTV1anJObnp3YXh4MnNIekUzVEpKdk5NakV4d2RqWUdLVlNDVkVVeVdReWxNdmxGM0x0N2ZkdXJGUXFWS3ZWNFBkeXVVeTlYbDhsblBoLzI3Wk5LQlNpdjcrZjBkRlJlbnA2MXAxM3JWWUw1cnZaK09MTmt6anpGRVZoWkdTRUkwZU9jUHYyYlV6VFpHYm0xYTNWOWdXdjliQXNpMXd1eDlMUzBpb1I1SG5nOXd5ZG41OFA0b2ZIeHNZQ2tiVy92NStCZ1FGR1JrWVlIaDZtdmIzOXNlWXJDQUthcGpFNE9FZ3NGcU9ycTR0RGh3NXg5KzVkYnQyNnhmWHIxN2wrL1RvVEV4T1BKUUszdGJXeGE5Y3VYbnZ0TmZiczJVTi9mejl0YlcyMHRiVUZ2WTFmZEJISFd0YUswRzF0YllURFlXS3hHQ3NySzdTMXRURTBOTFJxbW5nOFRsZFgxMzM5WG4yUjgyRVIwTDREZUNPUFpabE1obE9uVHFIck9xN3JzbmZ2WHNMaE1KbE1ocHMzYi9Mem4vK2NFeWRPVUsvWEdSb2FZbUppZ25RNlRWdGJHK0R0WDM2djNlbnBhVlpXVmpCTk0raDczTnlMVnRkMURNUGcrdlhybkQxN2xvV0ZCVXpUUkJDRVZYSGZxcW9TRG9lSlJxTWtFZ2tTaVVRUXI5N2QzVTFQVDg4VDlZWlhWWldSa1JHeTJTelhybDNqOHVYTDZ3ckE0WENZSFR0MjhNWWJiekE4UEx4dVFjVHk4aktuVHAzaTlPblR1SzdMd1lNSGVldXR0eGdaR1htZ01GMHFsUmdiRytQVFR6L2w1ei8vT1JjdVhHQmx4VE0rUEV1RTl2TW1sOHR4NXN3WkRNT2dWQ3BoR0FiNzl1MGpGb3ZkTjIxUFR3L3Z2dnR1RUV2LzZhZWZjdW5TcGNEVjY0djd6ZSs5VXFtUXlXVEk1L092ZEdMRTQrSVhSV2lhOWlnQjJNTHIvNXZIcSs1cjhZUzBCT0FueERTeWR5MnJCSUc3OVVFNENJS01vcVpJdEIyaFZwa21uejJKYlQxOTN4SlJDcUdvS1MvYU9ieU5VSGlRVUhRWVBkeUhvaVM5cUUzQkUxaGR4OGJkMUpaQlFzT2xLRGU1ZTkwZzV0UFRaQTFzdTRwcDVqSHJ5M2p4MlNWTU0vK3ZMU3UvWk5RemMwWjFZY3d3bG03WlZuSFdzYzJhODR5UnJNK1RocXU0aE9kTVBDZEpxaTRyaVYvSWFtcElsdU5kc2hKTHkwcThYWlpqYVVWcjcxSFY5cjhqU2hxV1dhQ1FPLytIdWN5SlB6V2JlZ1hhVmlVbnlmb1BKU2tVRlVYbG44YmFEaVBMTVhDdFFFenk4RVI5SEpEbENMSEVRV1FsVGlneVNISGxQT1hTVGVyVk9SNDFWbENwVlBqaWl5OFlIUjJscjYrUHJxNnU0SUJyR0FaalkyUDg0aGUvNE5OUFAyVjVlWG5EdDkrcmdpQW9pSktHb2liUlFuM29vWDVDNFg3MHlCQzYzb2VpcFpIa0NJSWdnMnZqM1BkNSt2T1JFRVVWRjdDTVBKWENPSVhzNlgrZFh6bno0MHBwL05jdElXazFwbGxjQnBhQjQ0cWE3SlBrOEo5N3ViQ081WHJGSXJiam1pWEhxdVkzKzdoaTI5V1NIdG4yMTZyYTNxdW9xYit2aHdkd214UDdYQnRCa0lnazlwSXlscWhYcDZsV3BwNWhpZmYzUm4rZXlHcUtTSFFua2ZnZVlvbURoR1BEcUdvSGtxUTN6Z0htQzF1MzUwYVE2Z0QxMmh6NTdPbVBjdGt2ZmxRdWpIMWkxcGZIN0dlTVo5ZjB6bDJoOE9DYml0YXhReEFseWJKS1dhTTZkNk5lbmIzd1pZcVFibXpIYzhBNVVWUmtRWkIvS0lxeUxrcVJUbG1KdEltaUhuZHhjZXhLMWpLTGM3WlpYSGlXYVBlR1lKd0Ryc3BTT0NsSTJnL0JzV3k3bW5mc2wrZjZwRVdMRmkxYXZQVDRBbkNGVi82aTZ2RlFGSVVkTzNidzFsdHZzV2ZQbnZzaVJBVkJZR2hva0NOSDNxWldpdExWMWJnZXRSOHlKaUlLOXg2dVY1d2JDb2wwZDRUWTFoZW5weXZPM0VLVjdJcDNDZUE3V1RlTDVlWGwvejk3Zng0aldaN1k5NEhmZDhkOTMzbmZWWmwxSDkzVlZkMHozY1B4MENPS3RHZ0lheTlrTExBVVNCQWdWcEJCR1paazBDQldzQ0JEMnFWaFExZ3VCWEVOMlRJdDBkYkZhemprOU16ME1WMVZYWGRXWmxYZWQwYkdmVWU4KyswZmtiL1hrWmtSZVZWbVZsWDMrd3hpc2pvek11SzlGKy9LMy9mMy9YNlJ6K2N4T1RtNXIvT1BPR21KaTFaVlZheXVybUp5Y2hMUmFOU01idDBQd3pDZ0tBb2tTWUttYWFiN2lxeGo2NlAxL2NoRGxtVTBHZzFJa29SNnZXNjZNYXZWcWhtM1dpNlh6ZWZJc2d4UkZORm9OQ0RMc3RsQjJmemMrdHN1STZtaktoYUxwOTcvUzdZSmNYMGRCZUlZZlAvOTkxRXNGcEhMNVRvNjcwNENzbCswdWc0N1BRZjRha0l1K1VwK3R2dHpQZ2hkMTFHdjEwMTMzSnRLbzlIQXlzb0sxdGJXUU5NMDNHNDNFb2tFUmtkSGNlWEtGV3h0YlptdVlPSUlQa3kwTW9saW5waVlRTEZZeE9MaUloNCtmSWhZTElhcHFTbHNiR3lZN3RYZCt4Q0p6NzV3NFFJKy9QQkR2UC8rKzJiTU5CSEhUc0xwUy9aaHNoKzN1dkRKK2FKMXZ5SEhQY3V5NEhuKzBDS2R6V2JENk9qb3Z2dUJZUmg3aEY2TzR6cSt6Mms2Z0l2RklpWW5KNkhyT2xSVlJTYVRnZHZ0UmpLWnhOT25UL0g1NTU5amVYa1pMcGNMK1h3ZVcxdGJxRmFyT3dUZ2VyMk8xZFZWM0x0M0R6TXpNeEJGRVE2SFk0Y0RsSWk2b2lqaXhZc1hlUFRvMFk0bzV0WmpGMmdLaEM2WHl4VC9JNUVJb3RHbzJmMDhPRGlJU0NSaU9vS0ptN1RUNStSeXVSQ0x4UkFNQnZla1J3Qk5BYjZycXd0RFEwUG82ZWxwRytXdXFpclcxdFp3Nzk0OWJHeHNZSFIwRkI5ODhBRW1KaVk2aXIrU0pHRnViZzQvL3ZHUDhXZC85bWU0ZS9ldWVjNW1HTVowUmUvSGZ1ZXpzeWFYeStIdTNidG1aN0d1NjVpWW1OZ1Q1UXdBM2QzZGNMbGNPMFRNWjgrZW1ldFAzT0tFZXIxdXhwRy9DZXY2dXVFNHpwd1Vjc0QyMEFFMFlNVS9IeHRMQUQ0aW1sSk5xWExoOXpTMTltc3N6MksvdmxYUzRlcnlYbWdLb1hJZTFkTGtka1RwZnRCZ0dBRVVJNENoYldCWUoxaXVHZk5zYzNURDRSNkR5MzBPZ2kwQ1VMVFpEN3M3UnZaa2FMMUFrYWhMZXZ2OUpLaHFGYm9td2pBVTZMclVqSFBXR3RCVUVacGFnYXFVSUVscGlQVzEzMUNrekxJaTU1ZGxPYi80ZFJ4STFacnJ0TEQ5MkFGdkMvYlpiSW4vbVdZY1BsbEt6NG1OOWJhUm9Kb3FWam5lOTRjVXpkbDFHUC9RNVRrSGpnK0Nvcm50UHVHdmJyQklUekpGODNCNUptQno5TURoSEVLcDhBRFY4alNrK2lZVU9kZlJhYWdvQ21ablovR0RIL3dBSE1kaGJHd013V0FRRkVWaFkyUERuTG4xNHNXTE4vb0cvNnlnR1h2enNSMDlTak4yTUl5emVYeXlidGdjY1RqY28zQzRSaURZd3FBbzFqdzJEVjNkS1FpQ2FqbW1XSUFDZEYyQkl1Y2dTVGswcW9zbzVINzJXK1g4L1QrUXhJeGx2ejZBN1lrVXIzV3F0VmhiZSt4MGovNXJtN1B2MXhqVzFZeUNCclo3ekRVQUZBUmJEQjcvTmRUS0w2SEtKU2pxMnhQNVF0TThPQ0VBWG9qQjdocUFOM0FESHU4bGNId0EySTdlMWpRUjM1d3hTaHFBQmxuT29aUzdpOVRHZi9oL1Y4c3Zmdmlxcjhxd0RwL2QyZmRPTVBLZDc3dDlsLzYyWU84QnpYQ1E1UUlhMVVWVUNvLy9EczhIL3c5WnpuM2orbVoxWFZIUm5IUlZSWFB5eDZtaWFxWVliR0ZoWVdGaDhUb293QktBQVRRSENPUHh1T25lSTRQeXU0bkZvcmoxN3J1UTYxNTBSNVlCRkFCRkJRd0dleWJ2VTl2Q0w4c0FEQUJkZzlxUWtjdlhzWm1xb1M1U2NMdjlpTWRaT0YyeUtaZzJHZzJVeStYRDlOVWRpMVpoOTdEVWFqVk1UMCtEWVJnb2lvSmJ0Mjdod29VTCsvWUJrNzdJdGJVMTVISTVHSVlCanVPZ3Fpb1VSWUdxcXFhQVJNUmI0c1J0L1hlcnMxY1V4UjFmeWMvSmF4RW5zS3FxaU1WaTZPbnBnYy9uYXl0QzZMcU9RcUdBalkwTjVQTjVjeUQrdERtT3lNK3lMUHI3KzNINzltMnNycTVpWVdFQnE2dXJKN3BjSE1mQmJyZWJFYkhFcWN5eTdBNkJoWWh1UkhnamdpQVJBVnNGbGxhaHNQVXpJb0o5TzRnQTNFNGtKekhNSk9MM2RZOGhrV09wVUNpZ1ZDb2huODlqWTJNRFQ1NDhRVTlQanlteURROFBZMkJnb0szRGJ6Y1VSWUZsV1lSQ0liaGNMbmc4SGd3T0Rwb2R3Y1FSdkxpNHVHTS9jamdjR0JrWndZY2Zmb2p2Zi8vN0dCMGRoZC92UDlIMUplZW1jcm1NU3FXQ1VxbUVXcTIyNHpnbCt3Qng0Z3FDWUxvWFNkenpZWHVHZDd2QnlXc1RTS2NyZ2JpcGJUWmJXM0ZTMHpSVUtoVVVpMFhVNi9VVEZZQU53MENsVXNHTEZ5OVFyOWZ4NHNVTENJS0FVcW1FOWZWMXJLNnVRcFpsOHhnZzI2eDEyU21LUXFQUndOTFNFdTdmdjQ5R28yRzZmMXVQUlo3bm9hb3FVcWtVTXBuTXZzdWxLQXFxMVNyUzZUU2NUaWM4SG8vWnMwMEVZZUlHSGh3Y3hPam9LQktKeEw0dThmMWMrdUZ3R0JjdVhNRDQrSGhiRjd3a1NjaG1zMWhhV2tJcWxZTGRic2Y1OCtkeCtmTGxqcTU1VGRPd3VycUt6ei8vSEQvNHdRL3crUEhqUFJOMldzOUJuU0Q3SmN1eWI0UXdLb29pbmo5L0RsM1h6ZjNod29VTENBYURlNTdyOC9sdzZkSWxzQ3dMdTkwT3Q5dU55Y2xKR0laaEhuY0VWVlhOR0hFTDdJaFJQd0FTbldsdHVHTmlDY0JIUk5kbE1SVDcza0tqdmdJbk13cUs1bURvN1djSU5vVmVDaXpyZ3N0OUR2N1FIYWhxRlkxcVp6MkhZZDJ3MldJUUhOMFE3REh3UWdRY0h3VEgrWnBkdjV3WERPc0N3emhCMDl5MnNHQnNWMDZlMUI4aGV3ODh3ekMydFc0Tk1GU29XZ05TSTRsR2JRbGlZd09LbklPbVZxR3BEZWk2K0N1YTFpam9TaldyYWZXOHBrczFYV3ZrdnNuUnRiS1lXNkZwZG9PaUdQWWdaNWdpRnpkWXp2M1BaQ203NGc5LzhDOTl3ZmRnZC9Sc0MrOXRlb3dvQUREQXNoNjR2UmNoMkJQd0J0NUJvN0tBZlBZVGxBdVAwU2toUVpJa2ZQNzU1MWhjWEVRaWtVQXdHSVN1NjBpbFVsaGRYVVVxbGZyR1g1Z1kxZ1hlRm9IZDNnWEIwUU9lajREaFhHRFliUUhZRklHZDI4ZW1mVnV3My82Y3FOWWJuVjB6Y2JlUFcwTlhJRFkyVVNrK1JibjQ1TGNhMWNYN29yajVWTFZjdjI4VlluM2w4M3o2UjcvT3NNN2Y5UVhlQmMwSU96cUpZUmdRYkhFRUloOUNrVXNvNXI5bzZ3WS9tTjM3MCttT0N6S01IVzdmSlhqODErRndqOEptajRQanQ1M3RvRnNtTlgxVHhpY3BVS0NnNlJLcXBTbmtNNS84U3IyMjhNbXJ2aXJEMmx4dTc1VmZEa1kvK24yMzd4b0VJUVJxdTBOZXNNWGhkQTNEN3VqN0p4VE44andmK045a09mK05FNEV0TEN3c0xDeStRVlRRZER0OFUyNndPdUx4ZUhEKy9IbWNQMzkrMytoV2w5T08wZEZoNklvQWdhSUFxSUJhQXJEOWR4Zk5ORVZmY2d1dDZaQXJJa1JKZ1N3WnFGUjFaUE0wVWprM0tNNkdnYUVFL0dFZGtxeEQxdzNJc29SS3BZSjhQbzlTcVdTNmVHUlpOaCt2QStKNEpLN2JZckVJVVJReE1URmhkaS91aGd4cWIyNXU0dVhMbDhobXMzdmltb2tZSW9vaWFyVWFLcFdLNmZJbHp0NTJMdEpPMzJ2OUdvdkYwTmZYaDlIUlVmaDh2ajNMUjF4NmEydHJLQmFMcDdQaDJuQmNKNmJYNjhXNWMrZnd6anZ2WUdscENmVjYvVkFwYXEyUnVFUkFJZytlNTJHejJXQzMyODJvV0JJNVM5TzArYnZFRWRncUFCTVJaWGNmYzJzVWE2c29UeDZ0anU1YXJZWjZ2UTVGVWFEck9oUkZnY2ZqYVN2ZWtXMG5DSUxwaWp5TDJPN0RvdXM2a3NrazB1azBuajU5Q28vSGc1NmVIa3hNVE9EcTFhdTRjT0VDQmdZR0VBZ0VUSkh5b0NodzRvSWRHaHBDcVZUQzh2SXlIajE2aEZnc0JvL0hZKzRIbXFZaEhBN2owcVZMZU8rOTkzRDE2dFZEaTZ5N0lSTlJXaWRxRU9FM2s4bVlLUUw1ZkI3WmJCYmxjaG5WYXRYc2hkVjFIUXpEbU9LdjNXNkgxK3Mxa3dONmUzdVJTQ1RnOC9uTTdYQllWL0R1NDRhOEQwM1QwSFVkTkUzdm1DQ3dHeElCVFJ6QXAwR3BWTUxVMUJSZXZueTU0L2dnazI2SUFMbjdQRUJSRkp4T0oreDJPeFJGUVRxZE5wZHh0NnVYOU5jZVpTS1BydXRtY2tJeW1UUkZNWTdqRUF3R01UdzhqRHQzN3NEcGRDSWFqWFo4blhLNWpHUXlpWHcrMzNhU1JpS1J3TldyVnpFMk50WTJKYUpZTEdKcWFncUxpNHR3dVZ6bzYrdkR1WFBuRUlsRU9pNzMydG9hdnZqaUMzejg4Y2Q0OE9EQm52TjFxeHQ5UDhpa2xrTTRRYytNVXFtRUJ3OGVtTmQyVlZWeCtmSmwwempWaXMvbnc1VXJWK0J5dVhha0NuUTYxcjhwVldrSFFTYnFIR0o3VUdoTzF6dDhSNFBGRGl3QitCZzBhc3NQSzZYbkVPd0o4RUlFQnBvaWJDY01YUVBIQitBTDNZRnVxQ2pTTmtoU0Nyb3VnYWI0cHNERUJ5RFlveEFjUGJEWm1vUHJMTzhEeS9uQU1rN1FqQUNhRmtCUnpMYnpVNEdtbmZ4RmthS1liVWNpcyswNFZacnVYazJHb3BRZ1N4bElqUTJJOVkxL0xrbGJ5N0tZbXBPbDNJcW1WcEs2SnRWMFE2bWVaUi92MjhUMk5qblVkbEdWU3BhbTJYK3RxWldVS2hmK0w3N1E3Vjl6dWtmQXNHN0EwS0hyS2t4UjE5Q2hHeklBQ2pUcmdKMTFRckIzd2VIb0JTZ0d1aWFpWHAzdjZBU3UxV3FZbjUvSC9QdzhCRUV3WnlsOUU2QW9CaFROZ1dFY3pVa1duQmMwNndURDJNQ3lMakNzR3l6bkFjdjd3UE5CY0VJSUhPY0ZUZHRBTVN4b2lnTkZjNkFvRGhTbzdmNVpkVS9mOTFkeDZReElSN2ltTjZCS0pjamlGdXExcFQrdVZlYWUxNnR6UDJ2VWxyOVFtL0hHRm04Wm1pYUpITy85ZDRJdE1XSjM5UHltM2RrUG11Yk1kQVpkbDBIVEFseWVjZFI5UzJqVUZpQTJqbU5jUHBzYllvWjF3dUVhZ3N0ekFSNy9GVGhjdytDRkVCakdBUU02ZEYweGt5NitTVFJ2OW5Wb2FnMzE2Z0pxbGRtUFR5TFZRckRGTGdRakgvNStJUHdoT0Q0SVVKUTVRWUJpYkdBNUgyZ2ZCMVV0LzBORkxxelROUHNIMXJYV3dzTEN3c0xpYTBzZHphaTdiL3dvWVNRU3dkV3JWM0h4NHNWOVhYTU1BemlkQW9BNG9KU2hTMVZRdWdLS3FnRzBEbkFzd0cwbm1ta2E2c1U2NWhaeldGNnRvRmJuWWJQSDRQWDNJOW9kUlNBcVFGWVlxQm9OWFc4TzFxcXFDbEVVVFJFMG44OGprOGxnWTJNRGEydHJXRnRiMnhIM2VWWVE0UytiemVMSmt5ZW9WcXZZMnRyQ3UrKytpMnZYcm1Gb2FHaVBHNWhoR0xON1V0TTB2SHo1RXZQejg2WndRUWJzTlUwemhVRlJGRS9NaVd1MzJ4R1B4eEdQeDlzS2lvcWlJSnZOSXBsTW9sd3VuOGxnZVdzYzduSHcrWHk0ZWZNbTh2azhxdFVxZnZhem4rMGJCZTN6K1V6WEpZa1hkcnZkOEhnOHNOdnRabjhrRWMzSWZ4UEhML2xLeEY2eWpWb2RWY1FCM0NyR0UrR2lWUndtbjdlcXFwQWt5WFJ3RTdHL1Vxa2duVTZqWHE4akhvKzNqWUp0ZFFBZmR4dWVObVI5TTVrTWlzVWk4dms4VmxkWDhmRGhRL1QxOVptUDRlRmg5UGIyN29tYTN3M1oxcUZReVB6c2VudDdjZUhDQlR4NjlBalBuejlITHBkRGYzOC94c2JHME5mWGQyenhsMHlLSU03U2JEYUxYQzZIYkRacnVwekp1WWxNMkNDT2ZTTHdHNGF4d3oxT0lvdTlYaStDd1NCQ29SQzZ1cnJRMTllSGdZRUJqSXlNb0tlbjUxakxTd1JNbG1VaHkvS080NnVkcUt4cEdtcTFHa3FsMHFsR3FKTjlvTk15ZHhJaFNlOHh4M0U3em9PN0o3ZThLcTBwRUxJc28xYXJRZGQxOVBUMG9GcXRkcHlZb0drYU5qYzNNVE16Zy9YMTliWmp1dUZ3R09mT25jUGc0R0RiL1RDVlN1SFJvMGRZVzF2RDBOQVE3dHk1MHpHaUgyaldGdHk5ZXhkLzltZC8xbGI4SlJ4MjI3d3BFZEN0S0lxQ0Z5OWVBSUNaZm5ENTh1VzIvY3dPaHdPam82T20rRjZ0VnRIVjFiWEhLWDlJd2ZNYkFibnVIR0xDQklXbWh2bG1YbHplQXF3TmR3d2tjZk5wcmZ6eTcvdUM3L3hEd2RaK0pzeFhOSHR4S1lxRjNkbVBJRVdENXdLbzE1ZWdxWFhRakszWjYydEx3TzdzZytEb0JzdTZURGV2QVpoT3dwT05lRzZkcFVSdlJ6dFQwSFVacXBLSHFsU2hhWFhvYWcyYTFvQ3FWaUNKVzJqVWxuK3JYcG43Vkt5djNudlZqa09ML2RrZTJQK1J6UlpMS25KdVV3bTk5OXRPMXhoWVByRGRLVXMzbzRVTk1nSEJnS0hMTUxaamhUa2hCSC80TmpTdEJsbEtRWmJhQzhDdFNJZDR6dHNJUmRHZ2FSdG94Z2FhRnBydVhkWU5obkdBWVIxZ2VSOEVQZ2JCRmdiRGU4R3lMbkNjSHl6dkI4UHNqRmN4ano3elJrOEhES25scUtTMnhWNnFPWkVDZ0tFclVOVWFOSzBHVFNsRFVTcFFsUUxFeGlicWxabi91bHArK2VOR2JlWExzOWdXRnFlTElwZFNicy80eHpaNzdEZHAyZ2JCSGpkajg1dmQ4QXdZMWcyWGR4eU4raElVcGZoSzNmQW5EVVhSWURrdmVDRU1tN01mdnNDNzhQaXZRYkNGQVRRbklHbm1CSWR2N2sycllXaFExUW9VT2ZmZnFXcjVsZVBIYVlhMytZTzNiN3A5bDhEYll0djdSTXROc0FIb2hnNkdzY0hsSFVlOTh2SmYxTW92ZndqQVNnbXdzTEN3c0xENGVpSUQyQzZ5ZmZNZ0EvbXRFYlJra0pORWdkSTBEVTNUekVqZzQ4UW0welNOM3Q1ZVhMNThHY1BEd3dkMjJ6YXhRYWZpTU5nYVlOUkFRUVEwQ1pxcVFLbElrRVVOeFZJRGkwdDVQSHFheE5LcURGYm94dGk1Qk9KOTF6RjI3aHdjRGljb1VNMm9hSkEvL2I3cXhGVVVCZmw4SHB1Ym01aWRuY1dMRnkvdzRzVUxySzZ1WW10ckMvVjZIYklzbjFsME1hRllMT0xKa3lkWVcxdkQ2dW9xaXNVaVZGWEYrUGc0bkU2bitUeUdZVXhuMmVibUp1N2V2WXYxOVhXSW9yaGpZUG8wQnFtSllFWmlkTnNoeXpKeXVSeTJ0clpRS3BYT1pMQ2NpS243aVpldHk5Rk9xQmdjSE1SSEgzMWtUZzU0OGVMRkRpY2VpUWlOUnFObTlIQmZYeC9pOGJqWjNSa01CdUZ5dVV5bjcrNXV6TjNPeEhhMDZ3QSthSDEyTzdhSnU1Uk1kbGhaV1VFeW1ZVGY3Mjg3RVlNNFBFbFA2WnVPb2loWVdWbkI1dVltV0paRklCREE0T0FnSmlZbWNPM2FOVnk4ZUJIOS9mMXdPcDJtK0w0ZmdpQmdlSGdZZlgxOXVIejVNc2JHeHZEVG4vNFVLeXNycHJCNjJPMnlPNHE5WEM1amEyc0xxNnVyV0ZwYU1pZWNiR3hzWUd0ckMrVnkyUlJSV251NzkrdDRidDJ2V29YUFlEQ0lvYUVoWEw1OEdUZHUzTUNGQ3hmUTI5c0xoOFBSc1FPMkhjVEZ6dk04WkZuZTRWcnY1QUN1MVdybXVyd095Q1NHZGpIVlBNL0RicmZEWnJPWk1jOW5CVGt2RWNkL08xUlZ4ZnI2T3A0L2Y0NlZsWlU5WTdzc3k4THY5NXZKaiszT0hjUkpUbEVVUmtkSGNlblNwWTRURmdxRkFoNC9mb3kvK0l1L3dDZWZmSUprTXRseCtROHI2aDRuZ3Y4c3FOZnJlUHIwcVJubnJLb3FidHk0Z1Vna3NtZmRiRFliaG9lSHdUQU1hclVhb3RIb25taDBjdDlrZ1IySkl3ZDg5Z3dBOS9iRDRoaFlBdkF4VUpWcTF1TzcvRUtXY3JBN2lDamJ1UXNZYUlwRUZFWERadThDeC9uZzFkNXA5cmRTTkNpS0E4MElZTGI3UlVIUkFQVG03MnpIRlRVUGhKTTZFYmJjREFLZ3RrVnFYWk1oaVZ1b2xKK2pYcG1ESW1YL2pxWlU4NW91VmpTMWxsSFZTa1pUcTJsVnFWcnV4RE5FRkxlbU9jN3p1NDNhOGlPMzcvTFBld0kzZnNQbEhRZkxlbUcwalhZbXNmZzA3TTUrdUwwWGtVdi9FTEwwVGZ6WUtMQzhyeG1yYnV2ZWR1MEh3Zkllc0t5bmVjeXhqcVlRVE50Qk1VMDNMNzN0REtZb3JqbHpGc2EySTM3N21BUzJCd08yLzBDQ3NTdVZsL3gzVTVTWHBDd2F0V1hVcXdzUWE4dS9KVXU1RFZVdHAxUzVzS3lxNVUxVnFSWFBlc3RZbkI3MTJzTEgyUlQxQ3hUdCtCTi82RFk0SWJROUExc3p6L3N1ejNtb2FnV04yZ3FxcGVkSGZJZlR1U21tYUE1TzV6RGMvc3ZOWG5Gbkx3UWhDcGJ6YktkUGZOT2luanZSN0R6V05RbWFXaSszNjNNL0tnenJpckpDNkg5c1R1NXBmei9SdkkvZ3diSk5nWjdsdmIyd0JHQUxDd3NMQzR1dk15cmV3QnN2MGs4WUNvVVFEQVlSQ0FUZ2Rydk5OQ2xWVmMzQjhudytqMGVQSHVIWnMyZW8xK3RIZWgrS29oQUlCTkRYMTRlaG9hRzIzWHZ0WVVEUmZvRHRCb1VNRExtSVdxMkJUSzZFMWZVU2xsZEtXRm9wWUdXbGpJMWtEYnd0aWt0WEJqQXdkQjJKN2pFRUFwMWpwbHZ4K1h5SXhXS0l4V0lZSGg3R3RXdlhzTG01aWVYbFpheXVybUpsWmVXMXVJSkovK1NYWDM1cE92N2NiamZHeHNaMmlJZ3N5eUlTaVdCa1pBVDkvZjN3Ky8zWTJIamxlWTM3UXRPMDJXMjVYMGV4b2lobkxnQWY1QUFtZ3FpcXFtYlU4VzRZaHNIUTBCRGVmLzk5WkRJWktJcUNseTlmQW1pdSsvRHdzTm5CT1R3OGpHZzBpbkE0REovUEI1L1BCN2ZiL1VhNVo3MWVMNENtSU4vVjFZVjhQZytHWVJBT2g5dDJ2dHJ0ZGpPcSttMkFwTi9Kc294NnZZNWlzWWgwT28zbDVXVThlZklFUTBORDZPbnB3ZURnSUFZSEI5dkdsYmRDWXJEajhUaDRub2ZiN2NiYTJocEVVWVRQNXpNRnJrNkNtR0VZU0tmVHlHUXlwdHMzbTgwaW5VNGpuVTZiLzg3bGNzamxjcS9VajkwcXRoR25QOUJNQ0N3VUNtWVg3S05IanpBK1BtN0c4QisydTVoaEdOaHNOZ2lDWURwWGliamFUdnhTRk1WMExyOHV5REtUdnUxV1dqKzd3OFppbndTQ0lNRHY5NXNUWnZaekFHOXRiV0YyZGhiSlpIS1B5OW5sY3NIdjl5TVFDT3paL3d6RGdDUkpvR2thc1ZnTVBNK2pyNit2NDNGY3I5Zng1TWtUL09BSFA4RG5uMytPemMzTmsxblpOeGhWVlRFN093dWFwcUdxS2lpS3d2WHIxOXRHY25zOEhnd1BEME9TSkxBc2EwYWdVeFFGbTgxbXh1U2Y1WDcwcGlMTDhtSFRSVGdBZmdBQkFEeWFreVF0anNDYmMyZnhscUdxNVMxRnlrSlZhMkJZaHluMmRHWmJQTnAyWnZJVUExTTAzaGFXREVPRHJwL21KRjhhTk4yTW9UV2dROU5FYUVvTmlweUhWTjlBbzc3NnJ4cjFsWmxHZmVXeExHNU9xa28xOVUzdTdYMlRVSlJ5Q3NBZjJlenhoWHB0ZWRKVlB2K3UwelgyZjdjNStpQUlJZEEwM3hRaHR5RzlvelROZytNRDRQZ2dLR3A1MnkzOGF0QzBEUXhqYXdvZ3VyUWRlM3phUGNIVWRqdzUweFJsYVJwb21aRk5nUWJOOE0zSVp0WU5obldCNDd4Z09SODRJUUNPQ3pTM2d4Qm9DcitzRFJUTk55T2NLWEpNR052T2V4TEhvVy9IWnU4OEhwdVROaGlBWXBzdWJFTUZTUFN6cmtEWEZXaHFGYktZaGl5bElVdXBQeEFiV3l1eWxGcVF4T1JMV2N6T3FjM1AwK0pyaXFaSklzM3dIN1BzVDMrVjQzMy96QmU4QlpxeGJRdkEyOTN3bkFkTzl6bjRndTlBa1F1UWpoVUZmVEl3ckFzTzF3QWNyakc0UFJOd3VJY2cyQkpnT1RlYVlxZlNra0RSRHFyNW9Jd09sNjgzYnR6eVpLQW9VQlI5SWxNM0tZcGhhWXJkL3NOeVAzZU1BVkEwS05vR21yRjNIald6c0xDd3NMQ3crRHFnQVcxbi9KNEpyVkdoTE12QzVYSWhFQWlncDZmSGZIUjNkNk9ycXd1QlFBQk9wOU1jU0xiYjdmQjRQRmhaV1FFQXpNL1BIMWtBZGpnY3B2QVNpVVQyREh3VDV3aUFQYkd6RkcwRFJRVUJvd3ZsUmhvTGl4dDQ5bndGazgrMzhHdzZpOW01SElvbEZXNXZBTy9kNnNMRmkxZHgvZnBsZUwyK0l5L2p3TUFBZW5wNm9DZ0txdFVxVmxaV01ETXpnMmZQbm1GcWFncno4L1BJWkRMbUlPZHhuTkRISVovUDQ4R0RCeEFFQVlGQUFEYWJEWDE5ZlRzRy84bjNidDY4aVdReWlTKysrR0pmSjllcnd2TThFb2tFRW9uRURrZnliaVJKTWlPZ2E3V3pTVXRxamF6dHRFeWJtNXVvMStzSWg4TnRCV0NndVUwbkppWlFyVlpScjljaGlpSXltUXdHQmdid3dRY2Y0TnZmL2pZdVg3Nk1SQ0podmg5eDBiK3BrTTh0R28yYWt3cDJzMXNBYm8ybGZsdW9WcXVZbTV2RHlzb0tIang0Z0s2dUxveU9qdUxhdFd1NGR1MGF4c2JHRUF3R3dmUDhnVzdlWURDSW16ZHZZbVJrQkJzYkcyWm5kcjFlQjhNd093UTZYZGRScjlleHRiV0ZwYVVsckt5c1lHVmxCWXVMaTFoZFhVVTZuVWExV2pVZHdTUTI5YlNvVkNwNDhlSUZGaFlXY1AvK2ZadzdkdzYzYjk5R3JWYkR4WXNYOTdnYTIrRjBPaEdKUkJBT2g4MW9ZQkk3M2U0WUkxM2pyN003ZXI5SkRLMVI2V2U1WDl2dGRuUjFkYUcvdjMvZlNWQ05SZ09aVEFhYm01dDdZdk1waW9MZjc0ZlA1NFBOWnR2enU3SXNvMWdzZ3VkNVhMcDBDUzZYcTJQdnI2WnBXRjVleGs5KzhoUDg2RWMvd3Z6OC9LdXY1RnVDSkVtWW5wNkdwbW5tUG56OSt2VzJUbUNuMHdtSHc3SEgyVXA2dHgwT3h4c1hkLzA2VUJRRmpVYkRkRmZ2QTRlbStCdUVKUUFmQzBzQVBpYWExaWpMVWdhcVdnYkRPcmFGb0lOdjVBMURnNkYxZXQ1SlgwUW9NNGFXZEFlcmFobXFVb0dxbENFcmVTaFNEbUp0RGJYS3kvOWJyVHIzaVNMbFYwNTRJU3hPRUxHUm5BWXd6ZkxlZitkMGpmM1lHN2p4TDN5QmQyQjM5b0tpeVEzS1YvdVJyaXVnYVFhQ0xRcUdjVUJWWDMwMm5kM1pENmQ3RkFDZ3FCWG9XcjA1Y1dFN2l0b3dkQmc2Nlk1V21oM1pwcWpSRk1BTUdOcytkTU4wUlRabjA5R2dRQU0wMit6SFpnUXdyQk1NNHdURjhHQm9BVFJ0QjAxelRmR1hJbjk0MEdCWU96ZytBSjRQZ3VWODRHMVI4RUlRREdOSHEwUGYvSDhEMnhNdk9sdzN6SmdsR3MyWWRIcTdrMU9GcXRhZ2F3MW9XcU1abGE0MW9La042Rm9kaWxhREl1VWgxbForcTE1YnZDODFOaDVabmI3ZlBIUk5Gam5PODBlQ0xmNlBiUGJFMzNXNGhrRFQvTGFRYXNEUUZYQ2NGOTdBVFRUcTY1REYxTm4yNlc1SFBRdENGSFpYUDd6K2EzRDdya0N3eFVGUmJNdUVKR0R2dGFubDJLQ29yK0xRWVFBMDFZekxBOHp2TjM5aTdQanZzNlBscHBwTUdERytXcXF2T1B3eUdRQkFNZHRkNFU0UHd3aTJWNjFFMExWR1NWTktmOStBOWcrcDFnbGllOTZiK2lxVm9Ga0diMkZoWVdGaFlmSDE1YlVKd0lJZ21PN1dhRFNLVUNpRVNDUml1amRKaEMrSnJIVzczYVpBMitwd2N6Z2NDSWZEeCtxOURBYURPSC8rUEVaR1Jrd25ZaXVGUWdGcmEydWdLQXE5dmIwSWhYWTVkeWtuZExvYlc5bFZmUHBGQlQvNmVBYUx5MW1zYmRaUktqWC9Cb3pFZ2hnWUhNWHc4QkJDd2NNNTIzWkRvbE1GUVRCRjhtZzBpdDdlWGx5NmRNbDBCQzh2TDJONWVSbWJtNXRuSm5JUUI3YkQ0ZGpoVG13bEdBeml4bzBieUdhejJOemNQRlVCMk9sMG9xdXJDMTFkWGZzS3dJMUdBK2wwR3Nsa3NtMlg1V2xBK25ZN09ld2FqUWFXbHBhUXkrVnc3dHc1ZEhkM2QzeXRjRGlNcTFldm9sZ3NndU00Vkt0VmpJNk80c2FORzdoOCtUSzZ1cnBPYXpWT0RlSWFKK3dlck44dlB2ZHRRdE0wTkJvTk5Cb05aTE5aWkRJWmJHMXRZV1pteG5UTER3d01ZR2hvQ09Gd2VOL1hFZ1FCMFdnVVBNK2pVcW1Bb2loa3MxbHNiVzJaazBKSXhITStuMGNxbFVJcWxUSWR2NlR2OTNVSTZVUnNydGZyWnJkd0pwTkJMcGZEblR0MzBOM2R2YStBNWZmN01UWTJocEdSRVd4dGJhSFJhTUF3akxhVEhWUlZOVHVMenpvMnZ4V0dZZUJ3T0RxNjJGL0g1MkN6MlpCSUpEQXdNTkJSQUZaVjFYU0g1L1A1UGN2Sjh6ejhmajg4SGsvYmlRdlZhaFdwVkFxcXFxSzN0eGZoY0xodFBMK2lLRmhkWGNYOSsvZHg3OTQ5ek0zTmRleFRidVd3MGM1dmFnUjBLNHFpWUc1dURpekxtckhyMTY1ZFF5S1IyUE5jaXFMQWNkeU9iY1R6dkNrQVd6US84MnExYWs2UTJRY1dnQmRORWZqdHZjQzhScXlOZGt4MHJaNFQ2K3RRcEJ4c3R2aTJBSHpZM3o2TEV4cnBxakZBUVljQlFKRnpLQmVmb1ZhYWdsaGYvMXV5bkY5VGxkS1dwcGFUbWxwTFdaMitidytxWEVyUkRQK0hxcHhib2lqcVU0Wnp3bWJ2UXRPdDk5WEZ4VEEwMExRTk5rY1BPQ0g0eWdJd3k3cmg4VjlES1BGWHdEQjJxRXA1cHdDOExmUWFoZ0xkVUp0aUZ4RjROUW1hTGtIWEpPaUdERUNIb1d2UWRSR2EybWhHNDlJY0dOb09odk9BNC8zZ09BOVlVd0FXUU5NOGFNYU9yd1NTSmhRb2dLWkJVendvbWdOTmNhQVpmanZDbVc0YjRXeFF3TDRIcmJFdEQxRm9Ia09HRGtOWG9VaDUxT3NMcUZjV0lZcEphSElKbXRiNFZVMXJWSFN0bHRXMGVsN1R4TEt1TlVwV1hQbzNHMFVwcHh6T3dUL2hiZEcveS9HQlpoL3dkc3FEcm10Z0dCdnNqZ0c0WEtPb0ZwOURFczhtT29laUdOaGRRL0Q0cjhMdHZRaWJveGVDRUFITHVVRlJIQXpvb0VCbWJPOFZmNEhtb1VOUkduU3RlWndiaHRKOFBrV0RwclluVFlEZWRxdHVUNkFnVHVIWHdsZnVaS1AxZXdDT3Zrd0dhSW9Hd3pqQkNlRy95d21oUHdEdzdGV1dUbFdxV2EvL3lwd3FGMkFZNUkvZTNTSnc4NzhOWFlLbVZxQnB0Y0tydktlRmhZV0ZoWVhGRzQrQ1pnejBxVVBjdmp6UEl4QUlvS3VyQ3lNakl4Z2VIc2J3OERCNmUzdVJTQ1RNcU9mVy90L2RnbG1yS0ZDcjFTQ0s0ckZjcjRsRUFoY3ZYdXpZL1p0TUpuSHYzajJ6ZTNTUEFBd0dCa0lvVnFPWVdXVHg4R2tKNlV3Wml0SmNGbDV3WUhSa0FCUGo1L2JFT0dxYVpqNTBYZC9UazdtZlc1UG5lZlQyOWlJV2krSGF0V3NvRm90WVdWbkJzMmZQOFBqeFk3eDQ4UUliR3h2STVYS1FKTWw4ajlNaW1Vemlwei85cWRtOTYvRjRkcmlQT0k3RDBOQVFybDY5aWtlUEh1SHAwNmVuSmxDN1hDNGtFZ25FNC9HT0FyQmhHR1lVNzFtS1g2U3Z0Tk5uU3h6QXk4dkxZRm5XbkhUUVRnUWpVYW8zYjk0MDNldmtHT3JVZS95MnNYdTlHWWFCMCttRTIrMkd6V1o3S3gzQXV6RU1BNXVibThqbGNuajI3Qm5DNFRDR2hvWncvZnAxdlB2dXU3aDQ4U0ppc2RpQjNkRWszcnRhcldKemN4TXJLeXQ0L3Z3NTF0YldUS0UzbTgyaVdxMmFmWmlrQi9oTm9GS3A0T25UcDFoYlcwTzVYQVpOMDdoOSt6YTZ1cm82aXNDQlFBQVhMbHpBM053Y1hyNThpYlcxdFk3eDE2SW9vbGdzb2w2dnY5WjloaVJkdU4zdVBaT1dTSy95V1NVNEVHdzJHMkt4R0hwNmVqckc1dGRxTld4c2JDQ2RUcmM5ZHpzY0RnUUNBWGk5M3JZVFhPcjFPckxaTEdpYVJsZFhWOGVPNEdLeGlJY1BIK0xIUC80eFptWm1JSXFIa3hDK1RnSXc4SlVUbUlpV21xYmhuWGZlUVN3VzYzZzlJTjhubFF3T2grT3Q2RW8vQzJxMUd1cjFPaVJKMms4WVo5SHMvL1doNlFDMk9DS1dBSHhNTksyUmE5UVdmMG1XTXY4QkpCTDJEYUUxMGxaVEtoQWJtMmpVbGxDcnp2N1RlbVh1bmxoZmZhakloVlZORTYxNDU3Y1lYWk5GbXVIdU5tcExVT1JMVFFHWW9yZWR1TnNZS21qV0FZZHpFSUl0amtadCtmaHZTTkd3T2JyaDlJekI2UjRCd3ppZ2FYVVlPb21BM25iNEdjWjJON0Z1ZnQvUXQwVmhYWUdocTlDTnBnaG1HQm9NWGRrV2tKb1I2VFROZzJidFlGa1hHTm9PZXJ1WGw2SkpCRFNMcGl0MzE0MEJlVi96cTI2NkxkdXNUSXM3bmdhSm1BYnBhZFVWNklZQ1ExT2c2eUlVdVFpeHNRNnhzZkdIVW1OeldSS1RzN0s0OVZLV0MydTYyc2daaGlycStxdjNnRnA4L1JBYkd3K0t1YnYvdWNNMTlMOHpyQXMwellNNDVRRUdET3VDMDNNT0x1OEVGRG0zSFR0K09yQ2NCM1pISHh5dUVUaTk0M0M2UjJDemQ0RmxtMzlJTkdQTU83OC9aY2FlNjFEVktoUXBEVkZNUWhhelVOVVNkTFVCQXdERDhHQTVMMWpXQzViemdCVjg0RGdmV05ZRml1WkI0WENKR2E5RTY0MzN0dHRmTjVySkJKUUJnR0pBVXl4QWM5dm5BR3hId0IvbUR3NER6ZFFCRjF5ZWNZajF0Vi9pT1BlbThvcE9mN0d4OGJpWS94SXM1NFBOMGROMFltK2JmSnZuS3hhNkxrR3NiMENzclVOVksxLy9zaDBMQ3dzTEM0dHZOdkwydzhBcHpxTHplcjJJUnFPSXhXSklKQkxvNys4M1hab2tyamNjRHJlTmp0d1BVUlJOOGVTb2dpTFA4K2pxNnNMRXhBUzZ1N3ZiRHBSbXMxazhlZklFRkVWaGFHZ0lGeTVjMlBNY2loTGdkTWNSREEzQzYrdEdPbHNEMEl5aWRqb0VkSFhGME5mWGkwRGdLL2V2WVJqWTJ0ckM0dUtpS1hpd0xJdEFJSUJ3T0l4SUpHS0s0WjJnYVJvMm13MDJtdzBlandmaGNCaWhVQWk5dmIwN3VvTFgxOWV4c2JHQnJhMHRWS3VuTXp5ajZ6cTJ0cmJ3NE1FRERBd013T2Z6NGZ6NTh6djZURzAybXhuckhRd0cyM1pJbmdSMnU5MTBqM2NhNkszVmFxWUQ4alNXb1JQdEpqTzBZaGdHUkZGRU1wbUVxcXJ3ZXIyNGN1VUtZckZZMitkekhJZSt2ajdUQWI5ZjUvRnBRUVFWWGRkM2lHL2s2MzdyZTFSNG5rYzRIRVk4SG44dDYzcGFrTStkaUpURUJidTZ1b3JKeVVsem9zemc0R0RicEFMZ0svZTB3K0dBMisxR0tCU0N6V2JEK3ZvNkhqNThpRUxoelovWEs4c3l0cmEyOE1VWFg1aE8rUTgvL0xDaks1WEU0NCtOalNFV2l5R2RUcmVkUEdNWUJtcTFHb3JGb3VrU2ZsMFFBYmlkVUNyTE1pUkpncUlvWjdxTU5wc040WEFZMFdpMDdTUURYZGRSS3BYTWEyMjdTUU5FQVBaNFBHMWZRMUVVU0pKa1J0SzNFekVWUmNIbTVpWWVQWHFFKy9mdkk1VTZmS3NkWmFZcm5zenozZ1JrV2NiOC9EeFlsb1dtYWFBb0NqZHYzdHlUc0FIc25TeERZc2JiVFd6N0ppTExNcXJWS3NybDhuNGQ0d3lhRHVBZ21uSFFGa2ZFRW9DUGlhNHBLcy83SHRXcjgvL2M3YnY4TjNraEJGRE1Udkh0ektDMjQybWJqaXRkbHlGTFdjaHlEbEo5SGRYeTlQOVVManorUWIwMi83R3V5WmJMOTJzRnpTcFM1bStvU3VsZmdxS2F3b3I1czZiQXlqQjIyQjM5c0RsN1FSY2ZRdGVPRjZIRXNoNjQvVmRnZC9iRDBGVm9SdTByY1FMYk4zR2tDcFQ4dTgwNHhWRXU1MGJML3htNkFRTUtRSkgzUE9pVktWQTB1eDFIdS8weml2emIyQmF1RldpYUFrT1h0OFZwcWRtTnJkYWdhblZvYWhXYVdvSFUyRVMxUFBNMzZyV0Z6NjJZZEl1am9PdVN5SEdlbnhTem4vOGpsdmY5WFpmblBDaXdBT1RtQkFtS2d0MDVBRi9vRGxTbGlHcDVHcHA2Y2oxWERPTm91dW1GRU95T1hyaTlsK0QyWFlKZ1Q3UkVQWk56d2s2M0tZbDVOaWRINkRKa3VRQ3BrWUxZV0VXanRvUkdiUmxTSS9VTHFsSmNWOVZxQ29ZbTBZemc1ZmhnUDhlSEJua2g4UHU4TFFMQkZvTmc3NExOMFEyZTh3SFVhZHgrZlBVSGcyNm8wTlFHVkswQ1hhbENVNnZONlBidFhtK0tZa0V6dG1aZk9POER4d1czTzQreGZWNDdJQjJBTWtEVEFoeWVNUVIwOFIvb3V0U3cyZU4vcGlqRlZVMXRIR3YwVHBFTEsvbjBUMytlQXYzbi92QUhFR3d4VUJRSGNpN1hkUWxpWXdPbDNEM1VLaTkvWHRmRTRuSGV4OExDd3NMQ3d1S3Q0ZFFFWU9MMmpVYWpHQndjeFBEd01NYkd4bkR1M0RrTURRMlpQWmNIdVNJN29Xa2F0cmEyOE9MRkM2eXZyeDlaQUE0RUF1anQ3VVYvZno5OFB0K2U5OWMwRGVsMEdvdUxpMUFVQlFzTEM3aDY5ZW9lRnpCTkE3RllCTysrZXdQNWZCcTZMdUhseStudG56V2RPTUZnY0ljYlZkTTByS3lzNE9PUFB6WTdjWW1yZDJCZ0FNUER3eGdmSDhmWTJCZ0NnWURwRE40UHU5Mk80ZUZoZEhkM1E1SWtsRW9sTEN3c1lHcHFDbE5UVTVpWm1jSFMwaEx5K2J6WkUzelNUck5rTW9uUFB2c01icmNiSG85bmh3QU1BRzYzRzRsRUFqMDlQU2dXaTBjU3BJbkR5YndYNzdEOHBJODRFQWkwalZqVmRSMkZRZ0g1Zk42TXp5UWlKaEZkVHNNbFJycXU5eE1meUhQSzVUTFcxdFlneXpKb211N1lxd2swaFplalJIMFNvWGIzK3JaK0pkdFdVUlRUS1VwNkpsdDdTc2xyRVNmN2JnR1liRitielFhSHcyRkdONVA5bVR5SHVOOFBFbVo0bmtjc0ZqT2phaG1HT1hPMzVGbFFMQmJ4N05renpNL1A0OTY5ZXhnYkc4Tjc3NzJIVzdkdVlXSml3bHozZG5BY2gwZ2tBcHZOQmxFVThmTGx5ek9kNUhBU3JLK3Y0K09QUDRiVDZVUTBHc1dOR3pmYTd2K2tkM1p3Y0JBVEV4T1FKQW1SU01Uc2h5Ym91bzVLcFlKeXVYeG9SK2xwSVFpQ2VYNXNYVWJETU5Cb05GQ3BWQ0NLNHBrS3dFU1E3alRoU05NMDVISTVNMVdpM1RGbnQ5dmg4WGpnY3JuYUNzQTh6OFBsY25XY0JHTVlCdExwTkthbXB2RHMyVE1zTFMxQmtnNXZYUGc2Q3NCQVV4U2ZtWm1CTE12bTVJWWJOMjUwbkJSRXNObHNpTWZqR0J3Y1JENmZSNzFlUDZNbGZqTWg1NEI4UG85RUl0SEpHYzJnNlFBT0FqamFiRVFMQUpZQS9FckljbkhERTdqMkZ6Wkh6OS8waCs2QTQvM1F0Y002aUU2Q2xnc1NERkNHRHQyUTBLaXZvNVM3aDBwcDZ1L0lqWTFKVVV6UEtITE9FcTIraHVpYUpOb2M4U2RTSXdsZGs4QXdMSGIwM1JvNmFKb0hKNFRnZEkvQjRScEdyVHl6SXliNk1GQVVDNGQ3Qk43QXU3QTdCN1lkZGVRMUtMUy9SdThWWkZ0ZXNPVTd1Mk5obTdHenpmaHlZOGVQRExUMmplN0cyQ0U2VTZUbnQvVVoyMkt5cmtsUWxSSVVwUUJGTGtDUmNwRGxMQlFwQjAycFFGVnJ2NnBxdGFLdTFqS2FWaS9vV2oybnFyV2NOWUhDNGpnb1NqbGxjM1Q5QVcrTGRndEMrTC9naFlqWnl3NVE0SGdmdklHYllCZ2VYRHFBVXVFQkZDbjN5dS9MQ1NGNGZGZmg5bDNZam5tT2dlTURZRG5YdHJDb294a2IzL3BId3M0L2RKcDJXUTJHS2tFVU4xRXBQa01wLytUdk4ycUw5MVdsc0thcTFiU2h5MVZkVjFzZDhFVUFLd3hqZTBqUjNCOHhqRDNBc3A2NDNUVnd3eHU0K1UvY3Zrc1FoQWdvK3VTVFd3eERoYVpKVUpRQ3hQbzZHclZsaVBVMXFISU9xbHI3ejNWZGtRQkRveWhHb0duZXpuRHVmMkYzOU1MbHZRSzNkd0lzZDhqWjZrWnoyM0dzR3g3ZkZiQ2M5NTlVUFJmK1NhWDQ1Ryt4bk9kZnEwcjU4Rk5pdDlGMVZhVnA3dU9zcm53Z3k3bS81dkZmK1UxZWlBS0dEblY3SWtxdE12di9ySmFtL2tJU041NVlxUU1XRmhZV0ZoWmZlN1R0eDRsQ1hMNTlmWDNvNys5SGIyOHZ1cnU3MGRQVGc5N2UzdjBjR0IxUkZHVkhSNmdvaWxoWVdNRGp4NCt4dkx4OHBDaFR0OXVOZ1lFQjlQWDFtUUxyN3ZkS3A5UFkyTmhBS3BWQ3NWakVnd2NQY083Y09WeS9mbjNQUUxuUDY4TGx5eE9RcEJwU3FVMnNyQ3loMFdpQW9pZzRIQTc0Zkw0OWdrUTJtOFhMbHkveDZORWpaRElaQU1EcTZpb1dGaGJ3OHVWTFBILytIS09qbytqcDZVRlhWeGY2K3ZyMnhFanZodU00Y0J4bk9nREQ0VEJpc1JpR2hvYXd1cnFLOWZWMWJHNXVJcFZLWVd0cnkreHpQS2tPM0ZxdGhoY3ZYaUFjRHVQU3BVc1lHaHJhSWR5UXFORyt2ajZzcmEyaFZxc2RTdWdJQm9PSXhXSUlCQUp3T0J5UVpSbXBWQXJyNitzb2w4czduaXNJQW9MQklFS2hVRnNoUXBJa0ZBb0ZLSXFDZ1lFQmZQVFJSMUJWRlpJa1FaSWswNGtwaXVLTzc3M3FObUpaZHQvK1g2QXBjdE0walVxbGdwY3ZYNkpRS01EbGNpRVdpMkY0ZVBpVk9oME53MEFxbFVJdWx6T0ZNTEpleEhYWUdnM2MrbWdWZUlrNHZQdS8yem1BeWZISzh6d0VRWUFnQ0dZUE1oR3VpUmptOS9zUkRvZjNUQnBvaGFJb2VMMWUwMFhPY2R3YkUyRjgwcEI5cjFBb0lKZkxvVlFxWVcxdERiT3pzemgvL2p6R3hzYmFuZzhvaW9JZ0NBaUh3emgvL2p3bUppYnc3Tmt6TEN3c25Gb0N3RW1qYVJyVzE5ZHgvLzU5OVBmM3crdjFZblIwdE8yRURwcW0wZC9mais5Kzk3dUlScU5RRkdYUCtWblhkVFFhRGRScXRUUHIrKzZFM1c2SHcrSFk0OHdrQXZBaHUwcFBERUVRNFBGNDRIUTY5MFJTRTBqLzcvcjZPbks1SEZSMTV4QUI2ZVoyT0J3UUJLSHRaQzRTelU5UlZGc3h2MTZ2WTNaMkZnOGVQTURjM055UnhGL2c4TjNKYjVzQUREVGRxd3NMQ3hBRXdWeFBFdjNmYVYwRVFjRDQrRGcrK09BRGxFb2xQSDM2OUN3WCtaV2hLTXAwazVPKzlGYzVKblJkUjdWYVJhRlFnQ2lLblFSZ0NvQVRnQitXQS9oWVdBTHdLMUt2enYra2xQdnl0MXp1c1gvQTgrMmpMMDZEWmhSdTA1V2w2eW8wcFFTeHNZbDZkZlpQSzZXcCs3WHl6R2RpWS8yaHB0YUxaN1pRRnE4Rldjb3ZWa3BULzdYVFBmYmZ1N3dUb0dnQmh2N1ZqVk96QjVpSHgzY0ZoaVloeHpoUkxiK0FwaDd1QnBNQ0JiZjNJc0t4L3hndTkza3dqQjI2MXRSQktZcHVDa2swUTk2c1RZenFkcGN1dVNCUTFGZXUzRjMvM3ZtK3UxL0JBR1VRY1ZnM08zMEJIY2EyUXc2NnR0MHJMRVBUNmsweFY2czFIYjZhQ0ZXdFFGVXIvNnVtMXFxYVdpMnFhcldncWRXOHFsUlNxbExlMHRSS1d0ZkVrcTRyVlV0Y3NUaEp4UHJHTTYvLzZyOFhiSkgvd2hmK0FEd2ZnS1kyUU9LRWVTRUlqLzhHV040UDNoNUhLZnNGR3JXbEZuZnVmdEJnV0J0b1dnRE4yTUZ5SGdqMkJKenVjM0I1eG1GMzlJTGpmYUFaeDNaUHQ5SW02cG42NnJxQ3BvTldWK3RRNUFKRWNSMzF5dUlmaXZXbHFYcHQrVkdqdG5ML01BTG5kczFBRlVBV3dDekhlMThxU2pHcDYvSy85QVZ2Yll2QTdBbkVRVlBiZ3JvQ1NVeWpWcDFIcmZ6eTl4cjF4YWRTSXpXanlMbGxYYTJsTkYwUmpSYWhtcVk1bG1iNFA2cFg1a1lhMWVWYnNyVDFIM3Y5MS8rS1lJdTNDUFQ3MFRUanNKd1hMczhFQkZzQ2R1ZkEvMmgzRGx6d0JxNTlYQ3ZQL2toVmo5WUR2bjNlK1V5d1JkS04ydUlqamc5MHd3QTByVjVTNU55U0xLWm5aTW1hMEdWaFlXRmhZZkVOd2RqMTlkalFOQTJIdzRHdXJpNWN1SEFCNzc3N0xxNWN1V0lPNE50c05sTUVPdFNDYll0THFxcENsbVVZaHJGajRMaFNxV0JtWmdaUG5qekI1dWJta1FZSG85RW9MbHk0Z01IQndiWVJpZFZxRlRNek0xaGNYRVNwVkVJcWxjS0RCdy9RMzkrUFNDU0M4Zkh4SGM5bkdBYXhXQXhYcmx6QjdPd3NwcWVuTVQwOWJRcDZ1d2U4aVNDeDI1R1dUcWRSS3BXd3RMU0VCdzhlSUJxTm9yKy9INWN2WDhiTm16ZHg1Y29WeE9OeDB6MTVFQjZQQitmT25VTmZYeDlFVVVTbFVzSFcxaGJtNStjeFBUMk51Yms1ckt5c0lKbE1tcUxvcTdoZkRjTkFKcFBCL1B3ODV1Ym1jUDc4ZWZUMzk1dkxTaUo4dTdxNjRQUDVzTDYrM3ZHMXlIYUx4K01ZSGg3RytmUG4wZHZiaTBBZ2dIcTlqcG1aR1R4NDhBQXpNelBJNVhMbU10dnRkZ1FDQWZqOS9yWkNCQkUxQTRFQWJ0MjZoUnMzYmtCUkZOUnFOVE1pc2x3dW8xS3BvRnF0b2xxdG9sUXFtZjlOaEdIaWlHM2RWcnVkdEsyUWZmOGdKN2VxcXFoV3ErYkVBNC9IZzFBb0JKcW1jZTdjdVgxN1lEdFJxVlN3dnI1dXVzQlRxUlFxbFFwS3BSTHE5YnJaajBnNkVoVkYyU0g2N3VjVzNtK2RkenQ4R1lZeEhjRWVqd2VCUUFEUmFCVFJhQlM5dmIwWUdockN1WFBOdnV4TzI0bUltOUZvRkg2Ly94dmhiTXZsY25qNDhDRm1aMmZ4NU1rVDNMeDVFei8zY3orSDY5ZXZtNkphTzhMaE1LNWN1WUsxdFRXb3F2cld1WUdYbDVmeHlTZWZtQk02MmtYZkFzM3orWWNmZm9qKy9uNnNyNitiRXc0SXFxcWlYcStiNHVycmNvMlQrR2VIdzdIbk9OWjFIYUlvbXVlWXN4S0F2VjR2UXFGUXg3NTBvTG45Y3JrYzF0ZlhrYy9uMis1RE5FMkRaZG1PMXlhWHkyVitKdTNFdDF3dWg2ZFBuK0xCZ3dmWTJ0bzY4bm9jVnRSOVd6cUFkNk9xS21abVpxQW9pdWtFdm43OWVzZEpZVHpQNC96NTgyYXNQUG44M2hhNnVyck0rN05pc1lqTnpVMmswK2tqVHd3Z3FLcUtjcm1NZkQ2UGFyVUtsOHZWYnAraDBIVCtCZ0JZMmRuSHdCS0FYeEZWTHFkYzdyRXZ4TVlHN0k2KzdYNVMvUkFEeDBlRW9rRzE5cFRxR2hTbEJFWE9RWkh6a0JvYnFKUmUvS05LOGZHL3IxZVg3cDdzbTF1OHllaWFKTnJzaVIvaytVQ2NZZDEvMis0ZTNPN3BKR0pwMDJWb2MvU0FZWjFnV0NkWVBvQmFlUnBTSXduRDZLeHpNcXdMRHRjQVF2SHZ3UjkrSHl6cjNSYWtxSll1MEFKVXRRYkFBRU1MeldPQW9zMXVYVE9pM0pSMHQ3dC95VU5YQVRULzNlenYvVXJ3YlgwK2pPMStYME9EWWFqYjNjRmYvYTZ1TjBVdFhaT2dhdzBvU2htSzFPd20xYlFHZExYMlM0cWNYMUhrL0tKNnpJaFdDNHRYb1ZhZC9jdGM2a2UvenZLZTMzWDdyb0dobTROTlpQOW1HQ2M4dnF2Z2hTaDR6bzlTNFNIRXhob1V1UWpvQ3BvVEplanRybXdPTk1XRDVteGdXUzg0UGdDR2RZRmxYZUJ0WWRoZEkzQTRCOEd5enVieFpCam14QTBpWE82SWVJWUJYVmVnS0tXbU8xNHVRcFl5a09wcnFGYW1mNk5TbXZvVDVSV0ZSMFV1cFdoRytEYzBMZnc2TDRSK2wyWGRZR2t2bWs3azQ5RmNkZ3FxV2thanRvSnFhUkxsNHBQZnFKVm4vbElTVTdQNy9lNjIyRm9FOENXQUwxMmVjek9HTHNtQjhJZC9qZWREYUhhTjc3OXNoamtSaFFJdmhNQUxJVGpkUTcvbWNBMzhXbzc3eVgvSkM2RS9VcFhpeWk2SDlJRklZbm9Xd0w3TGIyRmhZV0ZoWWZHMVJ3TndRRGZGL3JBc2k2NnVMdFB4UytLZUp5WW1NREl5c3UvQThtNFVSVUd4V0VTaFVFQXFsVUkrbnpmRjFaNmVuaDFpYmJWYXhjcktDdWJuNTFHcFZJNjB6TkZvRkJjdlhzVHc4SEJiMTFPcFZESUYwbEtwQkVWUnNMaTRpUHYzNzJOaVlnS3hXR3hQYkRUWkRyZHYzemFqbG5WZDd6aGcyU3BzdDBLY2YrVnlHYWxVQ210cmE5amEyc0xxNmlwZXZIaUJnWUVCSkJJSjAxVjltTmhjbnVmTkh1YUJnUUgwOVBTZ3Y3OGZhMnRyU0NhVFpoOHVjUnZtODNrVUNvVmpSNmF1cjY5amNuSVN3OFBEOEhnOFpvY255N0x3ZXIwSUJBSWQzV1ordngveGVCeUpSQUx4ZU55TTZlN3Y3MGNzRm9QSDQ0RW9paGdlSGtZaWtjQlBmdklUM0wxNzErdzRKYTdTVHEvUE1BejhmajlZbGdYSGNSQUVBWnFtb2RGb21DSm90VnBGdlY0M3YxZXIxVXlSVkpabGlLSm91cEphWGJTN0hjVGs5UnFOeHFGRWU0cWl6UDJDdk5iVTFCVHNkanQ0bm9mZGJrZHZiMjhuOTlJZU5FM0Q2dW9xSGoxNlpNYXFKcE5KNVBONVUvQnVYZDZ6N2tNbUluQWdFRUFzRmtOM2R6Y3VYcnlJeTVjdlkyeHNyR1AzcThmak1mZmhTcVdDU3FYeVZvbzZSNEhzZzlsc0ZxVlNDYVZTQ1psTUJyZHYzMFovZjMvYmlTd09od1BqNCtPb1ZxdElwOU5tMy9qYlFyRll4Tk9uVDlIZjM0OUxseTUxakhYbk9BN0JZTkNNMjVja2FVZEh0S0lvS0pmTHlPVnlSNzVXbkNST3B4TStuNi90WjBVRVlIS09PWXY5bVd5M1dDd0dsOHZWOFhtR1lhQllMR0pyYXd2bGNybnRzclgyZ0xlRFpkbU9rMWNVUlRIckhHWm1abzdzVkNmaTgwRTFFaVM1Z0V4c2VkdVFKQWx6YzNQZ2VkNTBYWlBvN2QyUXRJUkxseTRobDhzaGw4dmhpeSsrd01yS216M1AzK2wwSWhhTDRjYU5HN2g1OHlhOFhpOHFsUW9lUFhxRXp6Ly9IRXRMUzhkNlhVM1RVQ3FWa00xbVVTNlhFWTFHTzEyUE9UUWR3TDdqcjhVM0Ywc0FQZ0ZrT1R0ZkxVM0Q1dWlCM2RFUFVQUUpkZ0Z2Ny9TR0FZTkMwL1dvSzVDa0RHcWxhWlNMVC82eFdGdCtvc2o1VlZuT3pTbHk2Y2l4a3hadlAySmo4NW5kMmYrdmVIdmliek9jcSttc28rZ1djYmNwbkxLY0Q5N2dMUWlPSGxRS1Q1RFAvQmkxOHNzOUxrT2FGc0E3NG5CN0xzSVh2QW0zOXhKWWR2dkNaZWpiM2FFNlpDbU5TbW15R1NzTkRid1FCc3Q1d0RCMlVCUUhpbUpCMFUyeGlxSTVBRlJUdU5YcTBOUTZWTFVLVmFsQTEyclFkYkVwNkJya3hxVHBKRGFndzlDYlRsOGlBT3VHQ3NOUWZsWFhsVG9NVFRNTVhkTjFwYTdyVXMzUXBMSnVLSktocTVLaHkxWGRVQ1VZbW1nWW1ucFVFY2JDNGlSUmxWcVI1ZHovSjgzd2RsM0g3M2o5MThBd0RwQjluZHJ1OFJac01RU2lQd2VuOXp3YXRSVTBhc3ZRbERJQUdoVERnZVc4NERndkdNWUJocldEWlQxZytRQVkyZ2FLWmtEUlBCakdBWnF4TjY4Z2hyWnJVa1h6dWtJaW5nMURnYVkydGlPR1g2SmVuWVBZMlBoVldjcXRxbkp4WFZWTHgrNjEzWTJ1U2FKZ2ozMWFMajZEemQ0RGhuVVRPUnBISDl0c1RqRFJ0QVlxcGVmSXB6Nys3VXA1OGs5bE1UTjNuUFNMYXZubEQvM2gyNzBjSC9wcnZzQTdZRGtQZEYwNXduSTFKMmx4ZkJpKzBHMXdRdWgzZUZ2MGQ0clp6OTlCVTJTMnNMQ3dzTEN3c0RnS0tvQ2ozSXpzd09WeW9hK3ZEOWV1WGNPdFc3ZHc2ZElsZEhkM3crVnl3ZTEySDlydHErdTYyWHU2dHJabWlwMnJxNnVJUkNMNDZLT1BrRWdrZGd3ZzUzSTVNOUwyS0lPNVBNOGpIbytiOGNydGhNSk1Kb1BaMlZrc0xTMmhWcXNCYUxvb1NVUmxKQkxCeFlzWDl3eThDb0tBeTVjdlkydHJDeXNySzFoZFhRVkZVVzFqYWc4YU1DY1VDZ1ZNVGs1aWFXa0pkKy9lUlc5dkx5NWN1SUNiTjIvaSt2WHI2TzN0N2RnUDJ3NkdZZERkM1kxZ01JZ0xGeTVBa2lUVTYzV3o0M0ZwYVFsTFMwdFlXMXZEeHNZR01wbU02UlE5N01CNW85SEEvUHc4cHFhbU1EZzRhQXA1RE1QQTVYTEI1L1BCNS9PQllSaG9tZ2FLb21DMzJ4R0pSREEwTklTTEZ5L2kwcVZMR0I0ZVJqd2VoOGZqZ2QxdWh5QUlZRmtXbXFhWmt3SU13OERxNnFvcEFEdWR6bjIzaHlBSWlNVmlpRVFpcGlqUjJtTzcrMEZjNk9UZlJLaXAxV29vbDhzb2xVcW1tTnJxRmk2VlNxYVFYaWdVSUFnQ1FxSFF2c2VFcG1tbUdFdElwOU80ZCsrZTJhRnJHQVlHQmdZT2RCSURRRGFieGYzNzkvRnYvczIvd1pkZmZvbEtwYkxINGZ1NjNKQ2FwcUZRS0tCU3FXQnpjeE56YzNPdzJXeDQrdlFwMXRmWHpTanZkdGhzTnZUMzkyTmlZZ0xwZEJyVmF2WEVCSjNXZnVMV251TTNCVlZWTVQ4L2owd21nODNOVFlpaWlJOCsrcWp0WkJhYXBoR1B4M0hseWhVOGYvNGNUNTQ4ZWFzRVlFM1RrRXdtelVTQnJxNHV4R0t4amtJZnovUG82dXFDcG1rN2pnOWQxeUhMTW1SWmZtMzdPNWw0RWd3RzIwYTVrMGtvcEFQNExKYVR1T2xqc1ZqSC9sOWdwNERlYmtLUVlSam14QldTSW5FVXlMVi9kWFVWMmV5UndzMEFmTldkZnRBa0c3S2NKTDNoYllRNGdYVmRoOXZ0aHN2bHdzVEVSTWZQeisvMzQ4YU5HMmFFc2lpS1NLWGVYRWtuSEE3ajFxMWIrTjczdm9mMzNuc1BYcThYcXFvaUhBNGpuVTRqbFVvZEsvVkJWVlVVQ2dWc2JXMmhWQ3BCMS9WTzV4RWFnQmRBMXl1dXlqY1NTd0ErQVRTMW1pcm03djQ4d3pwL2hZcXcvNW5OMFFPYUVab0R4OGVNdHFTMlhWN05HRW9kbWxhSEtwY2dpVW5VcXd1b1Y1ZitjYU8yOUtSUlc3NG5TOW1GRTE0bGk3Y1FxYkgrb0pUOTRsZnNqdTdmYndyQUxKcnUyTzNZSDEwR0tBWWM1d1BMdWNGeFBuQzJFT3FWZVdocUdUQW9VNnhsV0NjNElRaTdveDkyWng5WTFyUHRjak8yWDllQUxLVlJ5SDcrSC9McEgvOXZZbjFqRXRBa2x2TjIwNnpEVDlPOGd3SXJVQlROZ0dJWW1tWjVpbUw0WnQrb0t1dTYxTkExcWFKcFlrWFg2bmxkbCtxR0x0Y01ReE8vdXRqcktnQVlNRFRvQmdCRDNlNEdWZ0ZkTmFDcnVtYkZORnU4WGFoS0pjdngzaitnR2JlZjQ3ei9yY3N6RHBxeFFkZkViVGVwQklwaUlBZ1I4SHdRTm5zUG5KNXowTlY2VXlTbFdUQ01FeXpyQUVYejI4ZXNBSnEyTlozMkJwazAwWFRKRzYzamhSUU5tbVlCTURBTUdacmFnQ0xuMEtndG8xNWQrb05HYldWYWJLdzlsOFhrcEtJVVYwN3IrRkxrL0dLMU5QWExIdS9GZjh2Ym9tQVlBUlJGNGFqMytUVE5ROU1hcUphbmtVLy8rTGVMdVovOXo3S1VmNlZwazdYeWl6K3pPM3IvQjdkbi9HOXpRbkRiZVgwWWpHWXlnYUVCRkFXVzg4SHR1d0thRnFDcDFiL0NjdTRsVmFrYy9TOG1Dd3NMQ3dzTGkyOHlNZ0FKVFNmd29UdlBBb0VBK3ZyNk1ESXlnckd4TVZ5NGNBR1hMMS9HME5EUW9TSnFOVTFETnB0RkpwTkJQcDlIc1ZnMEhXckpaTktNS1M0V2k3aDQ4U0pVVllYTlpqTkZtV0t4aUxXMU5XUXltU05GQWxJVUJaL1BoMFFpWVFyVnU1RWtDYWxVQ2t0TFMwaW4wenRja2Nsa0VuZnYza1VvRkRMZHFMdnhlcjI0ZlBreWJ0MjZCWi9QaDNBNGJBcW5yWVBUUkdnNnlMVUV3SFNiWmpJWnJLNnVZbXRyQzF0YlcxaGFXc0x3OERDNnVyb1FqOGNSajhmYnVzdDJRNFRZMXZVZkdSbEJOcHZGME5BUU5qYzNUV2N3Y1FKWEtwVzJjY0ZFV0NHeHlPVDFTNlVTTmpZMlRHR1dyRE1SZWtkSFI5Rm9OTUJ4bk9rU0pxTHV5TWdJUmtkSDBkM2QzWFovb21uYS9MMlptUm5FNDNFc0xDeVlNZVQ3N1lNTXc3VGRSc2VKVmlhUnJhMXVZYktkaUFoTVJHS0tvakF3TUFDLzN3OU4wMERUOUI2eHdqQU1NNGE2K2JkTFU1aE9wOVA0OHNzdlFkTzAyVmZjMWRVRmo4ZlRjZjhwbDh1WW41L0hnd2NQY08vZXZUZlcrVVVFbVVhakFRREk1L053T0J5NGR1MGF6cDA3MXpaQmdPZDU5UFQwWUhSMEZOUFQwMWhhV25wbHdjenBkS0tucHdkOWZYMEloOE5tdnpCeGpSSHg0VTNvMFpWbEdabE1CdmZ2MzRmZGJvZmRib2ZMNVVKdmIrK2U1N0lzYThhb0R3NE9tZzdpMXlXRUhoVk4wN0M1dVltWm1Sa01Edy9ENy9mdmU0NGpQZWl0a1BPZDMrODNqNW16WG4rZTV4RU1CaEVPaDlzS3dMcXVtNU5LNnZYNm1RaVVQTS9ENy9jakZBcnQyeTlPbG1zL3B6MDVMeDFWWkNmNzh0cmFHbks1M0xFK2w5YW8rZjNZSFdmL3RpS0tJdWJtNXZDVG4vd0VUcWNUZHJzZEZ5NWNhRHNwaUtJb001bUVYS01lUEhpQVpETDVHcGI4WU9MeE9ONTU1eDI4OTk1N0dCa1pNYjgvUGo2T29hRWh6TXpNWUhOejg4amQ3NnFxSXAvUEk1VktvVnd1SDdTZk9RRDBBb2lnV1RYM2Rwd3Mzd0FzQWZnRTBEUkpCUEJEdDNlQ05RenRQL01HYnNMdTdBZkR1a0RSMUxhalVkdlpnN3FiN1M3VVpzUXpEVU5Yb0tvVmFHb1ZpbEtDTEtZaE5UWlFxOHorVnFVMCtlZFNZL094NVdhMGFFWFhWWlhuL1Q4czVyNzR4eXdmL0srY3JtSFFEQS9vTGJPOERCMjYwWFQ3OHJZSWdyYVA0QXUrQTAycEFhQkEwenhvUmdCTjgyWnNzMkY4RlNOTlVSUm9Sb0FzWlZFdVBFUXU5WmYvUzdudzVQOW9XUXhyTW9LRnhRRW9jaWxsZC9UK01jczUvUlNvLzRmRE13cWFGcjY2VmhpYTJZdkxjaDV3M043QksvTktZaGlBZ1paNDUxM1BvR2hRMnpIUEJuU29hZzJxbEljc1o2RklUZkczVW5yMks3WEs3TWV2S3A0ZUZsMlRSVjRJUHE1VlpyYVRNM3FBN1JqcXc5RjAvdXE2akhwMUVmbjBqLzl4S1gvL0QwNWkrV1dwc09FTHZ2TklWYXZiNThDalF1SzJKZEEwRDRkckdCNy90ZDl1MUJhL3BHbjJoOVoxMjhMQ3dzTEN3dUlJS1BoS0FENFFpcUpNOSt2Nzc3K1BtemR2WW5oNEdJRkFBRjZ2OTFBaVdyVmF4ZXJxS2hZV0Z2RGl4UXNzTGk1aWJXME42WFFhK1h6ZWpOV3QxV3J3ZXIzdysvMklSQ0ttdzBWUkZLeXRyV0ZoWVFIWmJQWklBOFoydXgwOVBUM282ZWxCSUJCbys1eDBPbzNWMVZWc2JHenNFWHNxbFFxZVBIbUNRQ0NBa1pFUkpCS0p0bUpFTkJyRnJWdTN6Q2hqRXUxTGhBbUtvc3crMUtNS2o0MUdBN096czlqYTJzTERody9SM2QyTmlZa0pYTGx5QlpjdVhVSmZYeCtDd2VDaGhPWGRoRUlodUZ3dTlQZjNtMTIzaXFKQWtpUlVxMVd6UzVBOGlGaFJyVlpScVZRZ3k4MXhBRlZWSVFpQ3VXMWF4VytIdzRIZTNsN2N1blVMZzRPRGNMdmRwclBQNS9QQjRYQ1k0dlJoWEs2a0k5ZnRkb1BqT0RnY2ptT3QrM0d3Mld5dzJXdzdva1dKb0VrZWlxS1lvZ2lKNHRaMXZhMWdRU1kvRkFxRlBTTEYydG9hR28wR0ZFV0JydXU0YytjT25FNW54M1ZOcFZKNDh1UUpKaWNua2N2bFRtMGJuRFN5TEdOall3UEx5OHRJSnBQbzcrL2ZjNHh3SEdmR21ZZkRZVEFNWTA0K09DNWRYVjM0NktPUDhNRUhIMkJrWkFRT2g4TmNsdFplNzVXVkZXUXlHWE5mZjUyVVNpWGN2MzhmYnJjYjhYZ2NrVWlrcmZ1ZENPYmo0K1BZM054RXJWWjdJNWIvc0dTeldjek16T0RjdVhNWUdCZzQxQ1NYVmdSQlFEd2V4L256NTdHNXVZbHl1WXlWbFpWajk0a2VCK0pvajBRaWJTY2VhWnFHV3ExbXBpMmNoVUROY1p3WnlkOUpBTloxM1p5a1JTWnB0RU9XWmRScU5UUWFqU05GeVRjYURTU1RTV3hzYkx6V2VPNjNEVkVVOGVUSkUvTXpkTHZkR0JnWWFDdUNzeXlMM3Q1ZTNMbHpCNnFxZ3FJb2ZQcnBwenNtWjcwSjBEU05XQ3lHOCtmUG83Ky9mOGZQUEI0UHVydTcwZFhWaFh3K2Z5d0JtRGlBaThYaVFmdW9IY0F3Z0ZFQVpRQkg3OEg0aG1JSndDZElyVEw3UTBVcFhoYnJLNy9rQzMvd0R6emVTK0I0UHdCcWYvRjMrMmZOaUdjTmhpNDNJNTRyczJoVVo5Q29yZjRkU1V6TktuSitSVlZLbTZwU3RWeEVGbTJSNWNJR2J3di9mM1ZkbFNQZC84bC80M0tOYnU5MlgvWHZtdjJmb0VCUkhHaVdBOHRzQzB3N3VudU43U2h6elh3Tnd3QTB0WTU2ZFFHRjdLZC9xMXArOGNkbnZZNFdGbDhIR3ZYVkwyMzJXRTJUcTRXZzloLzl0eTd2UlRDTUhUdVBWV3I3djJpZzlXYlJNTGF2S2thekU5NW9qWGNtZkZVZlFHS2VGYm1FU25rYTFjSmoxR3RMdjZySTJTVkZMcTZwU25GMWV5TFRtYUVxNVkxcTVlV3ZPTndqdnkvWTQyQWdBR2kzSG51aGFBWXdkRFJxYXloa2YvWXZpcm03ZnlBMTl1LzdQUXF5bEptVHBTdzBsZndSZFp4NDZ1YTZNSXdORHVjUVhKNkpQeEhyNnpFQWIyNm1qNFdGaFlXRmhjV2Jockw5YUVZeGZYV2p1SWRvTklxK3ZqNU1URXpnK3ZYcnVINzkrcjdSZ3dSVlZaRktwYkMxdFlWY0xvZGtNb25WMVZXc3JLeGdZV0hCZFAyMmkvVUxCb1BvN3U0MkhYbEFjNkE1bVV4aWZYMzlTSEdtcEJOdllHQUFYVjFkYlFlOEs1VUtscGFXc0xpNDJEWmEyakFNNVBONVBIdjJESGZ2M2tVMEdzVzVjK2YyYkFPSHc0R0ppUWxUL0RVTUE1SWs3WENtTVF3RFFSREFjWno1bk1NaVNSSXltUXd5bVF5V2xwYXd1Ym1KOWZWMXpNM05vYisvSHowOVBZaEdvMmJVOFdFN1k0R3ZSTTFPNzBzNm1vdkZJcXJWNm82ZTNGWUJXTmQxeEdJeGhFS2hIYTlodDl2UjNkME5wOU1KVlZYaGREb1JqVVlQM0k4NlFWRVViRFliSEE2SDZZWThqSEI4a3RBMGJicVNENExFU0pObzhHcTFpbHd1aDNRNmpidDM3K0xseTVlbzFXcDc5Z2RGVVpCTUp2SGt5Uk5FbzFHemM3dlRlK1p5T1V4UFQyTitmdjZ0RXZ1QTVuRzR1cnFLMWRWVmhNTmhlTDNlSFQ4bnh6S0pNbitWejV0bFdmaDhQcHcvZng3Zit0YTM4TkZISHlFYWpaby9uNWlZd05EUUVBWUhCM0h1M0Rtc3JxNmFFZW1ibTV0SG5vUnkwbXh0YmVIcDA2ZTRjT0VDQmdjSHpXTnJOOUZvRkNNakk1aWVuc2JDd3NKYnRVOVVLaFVzTEN4Z1pXWGxXUEd2Wk1MQXBVdVhRTk0wRW9rRWxwYVd6RTVnNG00bC96Nk5MbXppdHUwVUFkMGFMUytLNHBtNFZGbVdoZHZ0aHRmcjdTaXFpNktJZkQ2UGFyVzY3M2FwMSt0bS9QMVJKbU9RU09MalJ2c0NPOU0wRG9xQWZsTTZnRWwvTDhkeDBEVE5UTlE0Q3RWcUZjK2VQWVBINHdISGNmak9kNzZEd2NIQnRzOWxXUmFEZzRObUhIcTFXc1hrNUNReW1jeEpyTTZKd0hFYy9INC9vdEZvV3hkL0lCQXdheFNPT2xuQU1BeFVLaFZzYlcwZDVuZHRBQVlBbkFNd0RVc0FQalNXQUh5QzZMcWlBbmpHOGI2Y0xHVlhhcVdwZHgydTBkK3d1d1loQ09GbUh5TkZiN3Q5bXpNQm15YzJEWWFoUXBIS0VPdXJhTlNXLzEyOXZqSW4xZGRmU09MNkUxbkt6WjFVLzZMRjF4OVp6Q3dJdHZEL2oyRnRUa1NVdjIxM2pZQmwzU0E5d0lhdWZ2WHZGbWN2Z0dZRXJiNWJoS0diN2tTS2dpem5VQzArUVM3MTQ3OWZLVDc3RC9vWmkwWVdGbDhueE1iV05DOEVmMS9WcWdWWnp2Mk8xMzhEZ2kwS1VJQ2h0enFCOVVQcWo5dkhNc1dZVWUyYVdvTWtwdEdvTHFKU2Z2Rjd0Y3JzbDJKdDhXZXlsSnZkdm1hOUZuUmRVZTNPM3VleWxHNmVrNDQwTGtERE1CVFVhd3VvRkI3OHFWaGZmM3lTeTZhcXRYeWp2Z0tIYXhpOEVBQU1Dc2JoakRjNzBIVVZGQVVJdGhnY3JoRXc3R2RSV0FLd2hZV0ZoWVdGeGVIUjBPd0I3cWhnMERTTnJxNHVYTHQyRGJkdjM4Yk5temN4TWpJQ3Y5L2ZWbWhvcFZxdFltMXREWk9UazNqNjlDbG1abWF3dnI2T1hDNkhXcTFteGdtM0d6QjJPcDJtZzdiMWZXUlpSajZmUnlhVE9WSWNLMDNUaUVhakIzYi9UazlQWTJabVp0OUJ3bzJORFh6MjJXZndlRHltMk5zSzZSbjIrLzJvVkNxbU01UkFVWlRwa0JVRTRjZ0NjQ3VLb21CaFlRR1pUQVpQbmp5QjMrOUhYMThmenAwN2h5dFhybUJpWWdJREF3UDdSbndlRmtFUUVJMUdFUWdFSU11eTJZMUwxbzhJWVVUazVIa2VIby9ISEFzZ1ltMDRIRFlkMktTSDk3aVFTR2Z5V1RpZHpsZDZ2ZE9HaUJRVVJVR1NKS3l2citQWnMyZDQrUEFoSGoxNmhPbnA2WDNkVGRWcTFZengzVTlvS1JRS1dGMWRSVEtaZkt2RVBxQXBKcTJ1cm1KeGNSR0RnNE43QkdDZ09WRWhFb2tnRUFqQWJyY2ZXenppZVI2SlJBTG56cDNEK1BqNER2RVhhSW9TUTBORGlFYWp1SHIxS29yRkloWVdGakE1T1ltSER4OWlhbW9LNit2clorb20zVTB5bWNTelo4OHdPRGdJbTgyMjU3ek1zaXhDb1JCNmUzc1JDb1hlNk9PakhmVjZIZXZyNjlqYzNEeFdCRGRGVVhDNVhCZ2FHa0lrRXNIMTY5ZVJ5V1NRU3FXd3VibUpqWTBOYkc1dW1oTnAwdW4waWNka2N4d0huOCszcndCTW91UFBhbDhpTWZwZXI3ZnRwQjhTU1Y4b0ZGQ3IxZmJkSHFSSHZsUXFIY21kS2NzeVNxVVNpc1ZpMjM3aHcwQTZnRm1XM1ZjQWJ1MXpmMTBDY0t2SUdRd0dZYmZiSVVtU0dVK2N6K2VQOVBubmNqbDg5dGxuVUZVVlBNL0Q0WEFnRm91MWZhN05ac1B3OExCWjJVQlJGTzdmdi8vR09LL0pQVkc3eVFpQ0lNRHI5Y0xqOGJTOWR6c01aT0pjb1ZDQUtJcjdKUW53QUxyUmRBQjdBZVNQOVliZlFONnVLOHRiZ2lJWE53RDhMd3dqL0tIRE5meW5MdC9sUDNHNkJzRnlQdEEwRDFBTWFLbzVZOEl3Vk9pR0RGMXJRR29rVVNsTi9aZlYwdFFQSlhGcit2V3VoY1hiakNSbUZtejIrRC9UdEViTkY3ejkzOWpzUGVBNEx4alcyWFFadG5TRm9zVTkyT3dZYmJxRG05R3hGQXhEZzZiVm9VZ1pWTXBUeUczOSthK1c4bC8rcjVvbVcrS3ZoY1VySWt1NUZacmhmMWVSYzh1cVV2NjNIdDlsOEVJWUxPZlpubmhCbTlIUU84ZitxSysra2tsRjI4S3hyaldnYVdLek43NnhqbHBsQnVYaTQ3OVJMVTM5cWFyV2kyZS9sdTNSZGJHazYvTE9udUlEb1FGRGd5TG5VYS9PLzE2anZuejNwSmZMTUpTYUxLV2dLSVdtQUV4UlJ6Y0FOMThKaGdGd3ZBK0NQUWFHc2UzTjhyYXdzTEN3c0xDdzZJeU9yeHpBZXdpSHd4Z2FHc0xseTVkeDQ4WU5YTDkrSGVmT25kczNnck5XcTVrZHRldnI2MWhjWE1UTGx5OU41OWxoWXdlOVhpOFNpUVRpOGZnZUFiaFVLaUdmeng5SjlLRW9DckZZREdOall4MjdaZlA1UEdabVpyQ3dzTEJ2M0dXOVhzZUxGeS9nOC9rd05qYUcvdjcrdHFJTGlmb1VSWEZIVkM5RlVhWm82WFE2d1RETUs0a05pcUtZc2N6RXdVeGlyT2ZtNWpBNE9JaG9OQXF2MTR0UUtJUlFLSFNnZUw4ZjdYbzJEOHRSM0xLSGdlZDVzMnVaNDdqWDRnQStLa1NrSUJIRFQ1OCt4V2VmZllhWEwxL3VPeGhQMDdUcEd0OHY1bHBWVlZRcUZlUnl1V01MbzY4VFVSUk5sMyt4V096NFBJZkRBWS9IQTdmYmpYdytmeXhSaCtNNEJBSUJSS05SK1AxKzgvdU5SZ1BWYXRVVTd2eCtQL3grUDNwN2U5SGYzMitlbTNwNmVuRC8vbjNNemMwZHBsdnlWS2pWYXBpZm44Zms1Q1FHQmdiUTI5dTdSd2h6dVZ5SVJxUHcrWHh2L1BHeEcxM1hVU3dXemM1NFdaYmJpa0JFNEFPYW9tRHJlaklNQTZmVENhZlRhVjRIQ29XQ21VNnh0YldGVkNxRlpES0piRFpycGh5VVNpVmtNaGxrczlsWE9wYUk4QmNPaDl0ZVAwbTMvZGJXMXJHRjBLTkN1cEc5WG0vYjdXa1lCbXExR2lxVkNocU54cjdIRnhFeGorcWcxalFOc2l4REZNVmp4N2hURkhXZyt4ZG9yZytabkhUV0NJS0FXQ3lHd2NGQkRBME5JUmFMd2UvM3cyYXpRWlpsYy84bUNRTWJHeHY3bnZ0YXllVnl1SC8vUHJ4ZUx4d09CMjdmdm8xRUl0SDJ1VGFiRFNNakkxQVVCYlZhRGRsc0ZyT3pzL3ZlNzV3VlBNOTNGUEhKWkxKWEVZQ0pDemlielNLYnpjTHBkSFo2TFFaQUVFQVBnT1BmS0gwRHNRVGdVMFRUSkpHbTJSK0tqYzN1RXVkT01KdzdUTk0yTjBXeFBFV3pBZ0FZaGlycHV0elExSHBCVThwSlZTbHR2a2tEOUJadkwySWpPYzN4dnY5UHJUTDNNN3RqNEtiTFBmemJEdmM1T0Z3RDI0N2dacXpwcnVBc1VBYlJPbWdZaGc1VkthRmFtVUU1LytYL1ZDNCsrNHQ2ZGVGVFMveTFzRGc1ZEUwV2FacjdZMVVwdmxNdFRYN0w0N3YwVDF6ZVN4QWMzV0JJY2dUMG5WVUNGUGxpbUE1VlhaT2h5RVZJNGlZYXRTWFVLL1AvWGFPMitFQnNiRTJyU21IMXpUeHVtMjVsaXFLM1JlNzlvRURUTEZTMWlucGxIclhLN0plbjBsdHNHREIwM2V4aFBsWUNkUE9GQUZDZ0dUczR6Z1BhRW9BdExDd3NMQ3dzam9hR05nSXdSVkZJSkJLNGV2VXFQdnJvSTd6Nzdydm83KzgzM1hhZHlPZnptSjJkeGVQSGovSGt5UlBNemMwaG1VeWlWQ3FaM1lhSHhXNjNJeEtKSUJhTDdSQXJGVVU1bGdBc0NBSVNpUVJHUjBjUmk4WGFDc0RaYk5hTWQ5M1BoV01ZQnJMWkxGNitmSW1uVDUraXI2OFBvNk9qYloxZFJKQnNGU09JSXkwVUNzSHI5WUpobUNOMzJ1MUhzVmpFOVBRME5qYzNjZi8rZlFTRFFjVGpjUXdPRHVMOCtmTVlIeDlIZjM4L1FxSFFtZlhsbmhZdWx3dGRYVjNvN2UyRm9paXcyV3pIV2ljU0Qyb1l4b21KMHdlaDZ6b2FqUWJ5K1R5eTJleUJUaXlHWWVEMWVoR0pST0R6K1RvNk9TdVZDZ3FGd3BFaTB0OGtTQ3pzUWIyZ3hNRVlEQWFSVENhUDVad2tmZHdNdyt3UUhzcmxNaFlYRjZIck9vYUhoM2M0Z3owZUR5NWN1SUN1cmk2TWo0K2JEdVdEQlB6VFFoUkZiR3hzbUxIR3JaM2JCSjduRVF3RzRmVjZ6MnovUGtsRVVVUTJtOFg2K2pwR1JrWVFqVWIzcktPcXFwQWtDYnF1dzJhekhTaDArLzErdUZ3dUpCSUpOQm9OOHlGSkVpcVZDbEtwRkphV2xqQTFOWVZIang1aGRuYjIyTzVjbTgyR1VDalVzYWRabG1Wa3MxbHNiR3ljcVFPWVJFQzMyMVlrbXBoY3UvY1RnSFZkUjZsVVFybGNQdEx5RS9IMk1BTHUyMHhQVHcvdTNMbURPM2Z1NE5LbFMvRDVmQkFFd1p6OEpjc3lHbzBHRmhZV2NPL2VQWHp4eFJlWW5Kdzg5SVM1VENhRFR6LzkxRXlYK09pamo4eVVqZDI0M1c1TVRFeVlreHMwVGNQczdPeHJUNHJZZlovVWlpQUk4UGw4OEhxOUVBVGgyTzlCWE1EcjYrc0loOE9kQkdBS2dBdEFGNEQyRzlHaUxaWUFmTXJvdXFvQzJOaCttTkFNeHdLQXJyMitDRTZMcnovYmJ2UU5sdk04YkZSblB4T0t6eTdhSE4xamdyM3Ixd1VoQW83emdlSGNUYWNoS0JpR0RGV3BRbEh5VU9VaUZMbndoN0tVM21qVVY2Y2ExY1dmaVkyazVVeTNzRGdGdHVPWXYyUlo1NXhZWDUrc2xLYXU4N1pZUHkrRVl6WjcxeThKdGloWTNnK2E0UUZEaDY3SjBIVUp1aTVCVmNxUXhUUWtNZmtIa3BoYVYrVHNtaVNtWnVURzFwUXNGellPZlBQWGhRSFFGQTJhWXJCUHBkME9LSXFEcGxaUktUMzczWHAxL3BQVFdUQUtGTVdZVlEydi9uTGJmZXUwL1hqbGFSWVdGaFlXRmhiZlZHUUFFcG94MEFZQXl1bDBvcWVuQjlldVhjTUhIM3lBOTk5L0grZlBuKzg0TUZjdWw1Rk1KcEZLcGJDNnVvcVhMMS9pMmJObm1KeWN4T3JxNnJIZE5zVFo2ZmY3ZDRqT3FxcWFycVREaXFZVVJjSGo4U0FTaVNBYWplNFpnQ2RPcDNRNmpWUXFkYWlZVVYzWGtVcWxjTy9lUFVRaUVYZzhucmI5ZXpSTjczay9tcWJoZHJzUkRBYmhkcnRQSlpLVmlCbkpaQkpBMDFIZDE5ZG5Pb1Q3K3ZxUVNDUk1FYVQxMGFrRCtLd2hva2l0Vm9QRDRURDcvMXB4dVZ5SXhXSklKQklvbFVyZ2VmNVlRb0lvaXFiNEw4dXkyYy9JY1J4NG5qY2ZITWVCWlZuejMrUXIrZjVSNEhrZWJyY2JIby9uVU51Y3BtbjQvWDUwZFhVaEdBeTJmVC9pSkN5VlNxODFsdmhWYUhWODFtcTFqcytqS0FwdXR4dWhVQWdPaHdPeUxCL1pCVXhjbzdJczd4QkFHbzBHbHBlWHNiR3hnZG5aV1hNQ1RDZ1VRaUFRTU4yazRYQVkrWHdlbTV1YjV2SytEb2RodVZ3Mm8vWGJiUU9Lb3VCME91RndPSTd0b0h2ZEZJdEZiR3hzSUpQSndPLzM3emtYR0lZQlJWRk1wK2RoSU1ldXg3TjNIbldwVk1MS3lncDZlM3NoQ0FKa1djYjYrdnFCWXVodXlMWVBCb01kSGRpcXFxSmFyWjVhQjNFN2JEWWIzRzYzbVZTeG05Wlk2a2FqY2VBMnJkVnFacCt5cG1tSGNwb3pER05HL3g3M09uaVVEdUN6ZGdEYmJEWUVnMEZjdTNZTjMvM3VkM0g3OXUyT1BiMEEwTmZYQjUvUEI1dk5CbFZWTVQwOWJXN1BnMWhiV3pPcktkeHVOMjdjdU5GUkJIYTVYQmdmSDBlMVdqWGR3S3VycTJlMjc3V0RUTnhxZDJ5UmVHdUh3L0ZLOTB1NnJwdXg1Z2M0N1ZrQVlRQjlhSXJCVm1YcUliQUU0TmVFSmZ4YW5DV3FVazZoMlQzNUk1cmhiWUl0OXZ0MlI5ODF3UmI3WFZZSWdHVWNBR2pvZWdPeVhJQWtidjZHVkUvT3lGTG1wZkltQzBnV0ZsOHpWTFZXQlBERDdRZHM5dmk0MHpYOHAzYlg4TzhLOWdSWXpnbmRVS0VwZFdocUZacFdneUpsMGFpdC9IS2p2dmJsMjNTOFVqUm5JN1VJVFE3K1E0MmlhS2hLRmJYSzdIMnBrWm85dmFVankzSUNNMTBOQTYrcHhzYkN3c0xDd3NMaTdVWUNVRWRUQUliZGJzZjQrRGp1M0xtRER6LzhFRmV2WGtVMEd1MDRrRnNvRkRBNU9ZbDc5KzdoMmJObldGcGFRanFkUmo2ZlI2RlFlS1dCVnVKT2NydmRPd1FMWGRjaFNSSWFqY2FoQnl0dE5odTZ1cm9RaThYZ2R1K2RMeWRKRXRiVzFyQzZ1b3BjTG5mb1pTeVh5L2p5eXk5TnR6SngyTFhTYmtDYUNGY0hPVGxQa2xLcGhKbVpHV3h0YmVIcDA2ZndlRHdJaDhOSUpCSklKQkxvNnVveUg0bEVBcUZRNkxWR3hkYnJkU3d1TG1KeWNoTFpiQllEQXdPNGRldldIdEhINFhDWVRuR2d1ZDhjUndDdTErdDQ4T0FCL3Z6UC94eWJtNXV3Mld4d09Cem1QdWp4ZU9CeXVVd1J6ZVZ5bVQ4allpQjVudFBwUEpRTDJXNjNvN3U3R3dNREF6dmloenRCMDdUcEFQYjcvVzMzRzFFVWQwVGx2cTJRcU03OVhQNE13OERuODVrVE1FcWwwcEVGWUZWVnpja1NyZWNUWGRkUkxwZng5T2xUWkRJWmVEd2VEQXdNNEoxMzNzSDE2OWZSMzk4UG9PbE1HeGdZd0xsejV6QXpNNE9OalkzWElnQTNHZzNVYWpWSWt0UnhHL0E4RDd2ZC9zWk04RGdxcFZMSmpMYnY3dTdlY3k0Z2JsTGlnRFlNdzl3V3gwa0Y4SHE5R0JzYlF6Z2NCZ0J6MHRIYTJ0cVJFaHQ0bmtjZ0VEQW4yN1JERkVWVHZENHJuRTRuWEM1WHgxUVBUZE5RcVZTUXorY1BOYkZCa2lUa2NqbHNibTVpYUdqb1VPYzBRUkFRQ0FRNmRpTWZCb1pod0hIY0hoZi9iblJkTnp2cnp3S0tvaEFLaGN3a2xmZmVldzk5ZlgzNy9vN1g2OFgxNjljaENBSjBYUWROMDNqKy9QbWg0NkRYMTlmeDA1LysxSXhTZnYvOTl6dCt2ckZZRE8rLy96NFVSVUc1WElhcXF0amMzSHh0SW5Ecjhib2JobUhNZnVCWHVWOHlETU4wVzVNSlF4MzJHUXFBQjAwQjJBdExBRDRVbGdCc1lmRU5RMi9Hd0g3Sk1MWVhOR1A3WTRybWJCVEZDTTBDVVUzVmRhV202MkpKVXh2V1NkVEM0alVqTnBMVERHTmZyWlJmL0NYRHVzSU1JemdONktxbU5jcUdKdGNNUTVNTVhhNXBXcU80blRqeFZrRFRIT3Z5VG94eW5CODBmZmpCS3dNR2RLMEJXY3F0bnRheUdZYW1hbW9OaHQ2Y2RVZzFnN1ozTEFXMmY3SS96WjhidWd4TnJVQlQ2NGZMQ0xLd3NMQ3dzTEI0Sy9pNW4vdTVVMzM5WkRJcExTd3NWQ1ZKa24wK256RStQbzV2Zi92YitOYTN2b1ViTjI0Z0ZBcnQrUjFabGsybjdQejhQQjQvZm96NzkrOWphbW9LNlhUNnhKYU45SjBLZ3JCamdFN1hkU2lLY21UM2IyOXZyOWtUdTV0YXJZYVZsUldzcjYvdjZ6amNqYTdyeUdReWVQVG9FWHA2ZWhDSlJIRDU4dVcySXZQdVpXb1ZnTTlLYUpVa0NlbDAydnljT0k1REpCSkJQQjQzaFYveU5SS0p3T3Yxd21hem1hS1JJQWg3M0xDdkVpZEx4SHhSRkNHS290bTdXcTFXa1V3bU1UOC9qK2ZQbjV1ZjliVnIxL2E4aHQxdVJ6Z2NSamdjUnJWYVBmYTJWQlFGR3hzYmVQVG9FVjYrZkduMk5CT1JsempsaUFCTUJGKzMyNzNqdnowZWp5a2N1MXd1MDhYZXJydVE0empFNDNIVFhVcEVxMDdRTkEybjAya0tTZTFFclhxOWJuYVlIcmRUODAyQXhNL3VKMkl6REdOR1FMdmRidEEwZldUeFZWVlZsTXRsMHdsSElJSlNzVmpFa3lkUDBHZzAwTlBUQTBWUkVJMUcwZHZiYTRxTmJyY2JzVmdNUHAvdnRVV3FhNW9HVlZYM1hYK2FwazMzK3RzSU9TK2tVaWswR28wOUFpTk4wMllDQUZuSFFxR0FRcUVBV1paaHM5bmdjcm5nOFhqMlhGYzZJUWdDNHZFNEppWW1zTEN3Z0xXMU5hUlNxU05kZjF3dUZ3S0JRTWRqbHV6cnFxcWUyZjdEc2l5Y1R1ZStrZm1hcHBsdXljTUl3SnFtSVpmTFlYVjFGZWwwR2g2UDU4RHpNWm1jMWQzZGZleGVlaExqZnRDMkl6SC9aelZCZzZJb1JDSVJYTGx5QlZldlhrVlBUdzhZaG9HbWFjaG1zMGlsVWlpWHkrQjVIdUZ3R0xGWURIYTczWXlZRjBVUjFXb1ZxVlRxMEFLd3BtbFlYRnpjRWU4OU5qYTJaMklhME53SElwRUlidHk0WWNaOGs4LzdkYkRmSkFpYXB1RndPR0N6MlY1WkFGWVVCYUlvUXBabDZMcSszejdLQU9Dd3F5TEZvak9XQUd4aDhRMUYwOFFxckpreUZoWnZQSnJXSU1mcXd1dGVscE9DWVFTZjB6MzZoelpITjVwQzZVSDNiYzAvQUhWRGhxYlZvT3Z5NFVmL2pvaXVTNlZHZmZtWEpYSHIzenE5NDZDT2VhdEViVHViWlNtRGVuVUJxbEpjUDhubHRMQ3dzTEN3c0hpOS9MMi85L2RPOWZVLy9mUlQvT0VmL3FHK3VibHBYTDE2RmQvLy92ZngvdnZ2WTNSMEZNRmdjTS96TlUzRC9QdzhIang0Z0ljUEgySnFhc29jRUMrVlNpZTZiTVRWMDA2c0lFNmV3MERUTkNLUkNJYUdocEJJSk5xK1hxRlFNT04vajlJclRGaGZYOGNubjN3Q2w4c0ZRUkJ3OCtiTkEzL0g1WEloSG84akdBeStOa0dHaUo2RlFnRXJLeXVtSTh6cGRNTHI5Y0xuOHlFWURKb1BuODhIbjg5bkRpd1RGMnlyU0h3WUFVT1daVlNyVmJQTG1UeEk3K3ZtNWlZMk5qYVF5K1dReStVUWpVWng2ZEtsdGdQM1JBQ09SQ0xJWkRMSEZvQXBpdG9SNDJ3WUJ1cjF1aW1vdHNZLzc0NkJidjF2bnVmQnNpdzhIZys2dXJwdzRjSUZYTGx5QmVQajQyMC9aeUlPT1ozT1F3bkFEb2NEWHErM28xaFNxOVdReVdSTTBldHRSbFZWcUtyYU1VNjJuUUI4blBjZ0hlV3RvcDRnQ1BCNnZYQzczYVliZUhaMkZvT0RneWdXaTZaNFNGRVVCRUY0STZLVjkzUFFFVWhjN3R0SXBWTEI1dVltdHJhMjBHZzA5dnljWVJoVEFLWnBHcFZLQmJPenM1aWFta0l1bDRQRDRVQlBUdzlHUjBmUjNkM2ROdmE1RTA2bkU0RkE0TWlSL1N6TEloQUlJQndPZHp4bXlUbW1XcTJlbVFPWVRGclpiNTl0ZFFCWEtwVkRMVnNtazhITGx5OHhORFNFZUR4KzREYTIyKzNvNysvSDhQQ3c2YlErS29mWjc0L3ozRmVGWVJoRUloR01qSXlncjYvUDNOYTFXZzFQbno3RlQzN3lFOHpQejhQajhlRDY5ZXQ0Ly8zM01UNCticDdYcmw2OWlsUXFoY25KU1N3dExSMTZRbzhvaXBpYm04TlBmdklUQ0lJQVRkTnc4K2JOanZ0dFQwOFB2dk9kNzZCYXJTS1R5ZURKa3lldnBUNkF1TE03Q2NDa291SlZKcDJSZmJwUUtLQmFyUjRrQUlzQXNnRE92dGo5TGNVU2dDMHNMQ3dzTEN6T0ZNRVduM0I3TDBGd2REZjl0TWJoQmdrTlhZV3VuKzVnaWE1SklzdDd2cWpYRm4vUExWLzdOVUVJZzZJWUdPWXlIaWEyamdaRk1kQjFFZFh5TkVxRkwvK1dxcFEzVDNPNUxTd3NMQ3dzTE02VzAzWUEyMncyZW10cks3QzV1ZW04ZGVzVzlkM3ZmaGZuenAzYkV4bElYTDlMUzB0NCtQQWg3dDY5aXdjUEhtQjVlZmxVNHdKcG10NGo2aEMzejJFSDRXbWFSamdjUm45L1AyS3hXTnZmS3hhTFdGNWV4dHJhMnJFR1BoVkZ3ZXpzTEZ3dUY2TFJLS0xSS09MeCtMNERsUnpISVJBSXdPdjF2dEtBNWtsQWhNNU1KclBqKzZTM01oUUs3UkNBUFI2UEtZN3RGb0NkVHFjWlA5bnFzQ01ENzZJb21yMlNSQUFtUW04cWxjTDYram8yTnpkM3VKQVlob0VvaW0wRllJWmhUT2V0M1c0L01BYTBFMFMwRFlmRDhIZzhLSmZMNXM4MFRUTmpnZzhMVGRQbzcrOUhyVll6KzVmYlJhSXlER09LaHdjNVdHbWFOaDFpbmZiL1JxT0JRcUdBY3JsOHBKamFOeFhTMjlsdWtKNDRvbjArMzZGanQzZWo2em9xbFFwcXRkcU83VVU2eUVPaEVEd2VEektaekk1dTJkWjlqT3pyeDludlRvcldIdFQ5T011STRaTkdGRVdrVWlsa3M5bTJreHNvaWdMTHNtWjM3ZHJhR2g0L2ZveWYvZXhuV0Y5Zmg4MW1RendleDdWcjEzRDc5bTJNajQ5M2pNZmRUYjFlUjdGWU5FV2p3OEx6dkRtQnB0MTc2YnFPVXFtRVRDYURTcVZ5SnU1VTRrbytTRXpUZFIyTlJnUGxjaG1OUnVOUSswNCtuOGYwOURUT25UdUhLMWV1SENnQXN5eUxZREJvZHRLN1hDNVVxMGZ6RUIzbHVEdEtQL1NyUXRKSFNKb0c4SlZMZW1wcUNoOS8vREVtSnlmaGRydVJ5V1RNU1VTOXZiMncyKzN3Ky8wWUhoN0c0T0Fnbmo5L2ptdzJlMmdSdUY2djQ4V0xGNllUT0JxTm9xdXJhMDlzT3REY1I0ZUdobkRuemgxc2JHeWdVcWxnYm03dVZLNGY3ZnFhaVRPYlhBTTdRU0tnWDJVQ2k2WnB5T2Z6Mk5yYU9xZ3lRQUd3QVdBT2xxbnQwRmdDc0lXRmhZV0ZoY1daSWRpam80SHdoNy9vOUl5QjQ3elFOQW5HSWZwL216U2ZkOXAvdjZ0eU9SV0lmUENvWHBrQnd6akFzaTRZaG83RDlCUURGQ2lLaHE3TGFOUlhVY3A5K1Q5VWlrLy93M2EvczRXRmhZV0ZoWVhGb1JnWkdlbjV4Vi84eFpGYXJlWWRHUm1oMjRtL2tpUmhmbjRlWDN6eEJlN2V2WXZKeVVuVDlmczZ1aTZKNDg1bXN4M29tQVNhQXR0QkFuQStuemZqUFkvcmZLbFdxNWllbnNZbm4zd0NuOCtITzNmdVlHQmdZTi9mOFhnOENJVkNDSVZDV0Z0YmUrUEVtVnF0aGxxdGhuUTZEYnZkYmtaeTh6eS9JdzZhQ1BLdGJ0amQ0ajBaZUpkbEdaSWtRVkVVTS82NTBXaVl3bkMxV3QwajdoUUtCUlNMeFk0Q0xNL3pjRGdjNXVEd2NZUkFJcTRTRi9lcm91dTZHWlYra0J1WGJFdUdZZllkNEdjWXhuUm5kMXJIUnFPQllyRm9kanEremVpNmJ1NGY3WVFxaG1IZ2Nybmc5L3ROQi9WeElPTCtiZ0dZOUQ2ekxHdTYrWHA2ZXVEeitZNjdTcWNHNmF3bUR0aE82THIrMXU0WHFxcWFFZmI3UmZXcnFvcXRyUzA4Zi80Y0R4NDh3S05IajdDNXVXazY2SE81SEh3K0gvcjYrZzRsQUN1S2dwV1ZGVXhQVDJObFpRV2lLQjU2bVcwMm05bFIzcTcvVjVabHBGSXByS3lzSUpmTG5jazFsV1ZaTThWaHZ6NW9JZ0JYcTlWRHIzTzVYTWJMbHkveDh1VkxaTE5aeE9QeFF5MVBQQjdINk9nb2hvZUhNVGMzZDZRcUJuS3RhUlVWTzYyUHJ1dG5kcDBsVWVST3A5UGN6MlJaUmphYlJUS1p4TWJHaGpuNTZzR0RCN0RaYk9BNERuYTdIYjI5dlFDQWNEaU1vYUVoREE0T290Rm9IQ2xwcFZBb1lISnkwcHpFOWQ1NzcyRmdZS0N0Z0VwUkZNNmZQNC92ZmU5N1pwLzR5c3JLeVd3SU5NK25aTklZaVhFbW41ZW1hUkJGRVY2dkY2RlFxS1BBUzY2VHJ4S1RybWthMHVrMFZsWldrTWxrb0NoS094ZThEcUNFWmpxaWxiQjNCQ3dCMk1MQ3dzTEN3dUpNWUZpSHp4OSsvNi81dzkvNlRkNFczYjdCUC94TlBnVWF3TmwwNzlRcXN6OHU1dTcrdjJ6Mm50L2tPRy9UQlF3TjJPK1BFb29CVGJNd0RFQ3NyeUNiK292ZksrYSsrRmV5bEQrNU8zUUxDd3NMQ3d1THJ6c2VBTjF1dC92Yk4yL2U3S2NvU2lDOWlFQnpBSjNFNUsyc3JPRHg0OGY0OU5OUDhlREJBNnl2bjkxNEdCbXdiWVZoR0FpQ0FMdmREcHFtRDNRZzh6d1B2OStQZUR3T3Q5dTlaNEJZbHVYRE9rSU9oUFNGa2o1WTRwanROQ2hOM0Q0WExsekExdFlXTmpmZnpEQVgwdEY3VklncmttelQ0MjViU1pKUUxwZFJMcGYzalFNbVFsMm43VTNldjkzUGFabzJIY3duSVFBRFRXR0RkTFB1dDU4U1Y5UkJ6aWFXWmMxOXZ4T3lMS05XcTZIUmFKeXFPNTlnczlsTTRmcWtZME5sV1VhaFVFQTJtNFhkYnQ4akFoTW5vOWZyTmM4SHgwSFROTWl5dkVNQVpsbldqTm9tKzhiUTBCQXVYYnEwUTlRaW5aS0tvcHpKOW00SFJWRm03L1IrZ3A1aEdGQlY5YTJPQnEvVmFqc21PTFNiMENPS0lqWTJOdkRpeFF2TXpzNWlmWDBkbFVvenhWV1daZFRyOVk1UnM4Qlhqbi9TRGIyK3ZvN1BQLzhjejU0OVF6S1pQSkl6MG1heklSUUtJUnFOdGhXQUpVbkM2dW9xWm1kbmtVNm56MHdBSm5ILyswVkFrd2tZdFZydDBQdTJvaWhJcDlOWVdGakEzTndjZW5wNjRQVjZENXljNGZQNWNPWEtGYXl0clptZHc0ZUZSSDRmOUI2eUxKdHUvOTIwT2xOYlk5SmJYYW9BekVsTVI1bEUwYnFmR1liUjl2ZFRxUlFlUG55SWVEeU9LMWV1bUFLdzNXNUhkM2MzK3Z2N3NicTZldVNxalh3K2o4bkpTYk95SVJBSUlCQUl0SDJ1eCtQQmxTdFhrTS9uc2JhMlprYmp2OG85RVpua1JoemVIby9IRkxySi9RR1phT0IwT2pFK1B0NHhLcDEwbUwrS0FFd2M5MnRyYThobXMvc2R5d1lBZGZ0aGNVZ3NBZGpDd3NMQ3dzTGkxR0ZZaDgvanUvekxnZkNILzczTE13NmFGbzRSNTB3MXUzVXA5bVJHZnZaQmFxUm1IZTZoZjJkMzlQNG1UZlBnaERCb1JvQ2hxOWdyV2xQYkFyRUJWU2xCYkNSUnpIM3hCL25VajM2M1VWdDdmTnJMYW1GaFlXRmhZZkcxWWdqQWYycTMyNzlydDl1RDJOVS9JWW9pbHBhVzhQanhZOXk3ZHc5UG56N0Z5c29LVXFuVW1TMmdydXVtc05JS3d6Q3cyKzF3T0J6Z09PN0FnV21YeTRWUUtJUndPTnhXWU10bXMwaWxVc2psY3Evc0RGSlZGYXVycTJBWUJzRmdFRjZ2RnhjdlhtemJwd3cwWTZCSFIwZng0WWNmb2xnczRxYy8vZW1KZHltL1RrNnFiNUZNU01qbGNxalZhbTFqUlVsbmRMdlljTElzcmYvZUxSYVFPR0d2MXd1SHczRmdIUFByb05WeDNRNGlSaEpYMldrNlBZa2pOaEtKd0c2M214SGltVXpteE42MzBXaGdmWDBkUzB0TDhIcTllNDRqaXFKZU9RS2FRTnpvWk45Z1dSWit2eDgrbncrQ0lNRHRkbU5rWkFRWExseEFOQm8xZjQrSVpOVnFGWklrdlJZWFA4TXc4UHY5Q0lmRGNMbGNIWVV3UlZHT1BabURZTGZid2ZNOFZGVTlra2gzVXJSR0pwZkw1YlppbHFJb3lPZnpTQ2FUU0tWU3B2aExVUlRHeHNidzdydnZZblIwdEszUUpJb2lNcGtNVmxkWE1UOC9qOFhGUlN3c0xHQjZlaHBMUzB0SGpzVzEyKzFtSllEYjdkN3o4MGFqZ2VYbFpVeFBUeU9WU3AzSi9zT3lMQndPeDRFQ3NLWnBxTlZxS0pmTFIxb3VUZE93dUxpSXUzZnZJaGdNNHVyVnF3ZEdRWHU5WGx5L2Z0MnNZOWpZMkRqMGVlU3dBakNaVUViT0V4NlB4MHl0SU9mVzFtU0wzVEhGNUo2a1dDeGlhMnZyVUZIVlpNS0ZvaWptZXprY0RqUEJoS0JwR3RiVzFyQyt2cjdqZGUxMk8rTHhPQktKUk52OTV6Q3NycTdpODg4L1J6QVlSRHdleDhURVJNZlhpa1FpdUh6NXNya2NqeDgvUHZZOWlTQUlHQnNidzUwN2QzRHQyalgwOVBSQUVJUWQ3bDhpQUt1cXVxTVdveE5ra3RlcklJb2lrc2trdHJhMlVDNlgyeVU2MEFDOEFNWUFuQVB3OHBYZThCdUVKUUJiV0ZoWVdGaFluQ29zNi9DNXZaZCtPWno0eGQvM0JtNkFZZXpBb1NPVlc2QW8wRFFIaG5YdUxlazZCY1RheXQzMDVoOTlWOWNhZjlNZitmRC9hck4zQWFBN1JGWnJVT1FjeXNVbktHWHYvbmFsK094UExmSFh3c0xDd3NMQzRoaWNBL0JkQU1NQTltU3I2cnFPUXFHQTZlbHAvUFNuUDhYczdPeVpMNkNtYVh0RUdlQ3J6bFFTMWJ1Zm1FSDZCZjErUHh3T3g1NmZrNEhBVkNwMXBIN1gvU0NSMlo5ODhvazUySG50MnJXMjd3OEFpVVFDdDI3ZFFqNmZSeWFUd2JObnoxNkxzUEttVTYvWGtjdmxVQzZYMnpxNUtZcmFWd0FHOW5jQWszaGxuODkzWWdJd2NleHlITGZ2b0RVUkpnNTZQeEtkdVo4WW95aUs2UUErRFFHYlpWbUV3MkVNRGc1aVlHQUE4WGdjRG9jRDFXb1ZxVlFLYTJ0cjVtU1JWejJtNnZVNlZsZFhzYmk0aVA3Ky9yWVRLWGllaDl2dGh0MXVmNlVPWGxtV3phaGI0aVltTWJsdXR4dWFwbUZnWUFDRGc0TTduSnpFTFVwKzkzVUp3Q1NldWwzUE5LRldxNkZlcngvSkFXeXoyZUQzKytIMyt4RUlCRXdIbjZJb3lHUXkyTnpjUkRxZGZpVlIrYWcwR2cxa01obms4M2w0dmQ1OUowUzBUaEJLSkJKNC8vMzM4Zk0vLy9NNGYvNTgyM055S3BYQzQ4ZVA4ZVRKRTB4TlRaa080bUt4ZUt6alNSQUVoTU5oeEdLeHRza0NpcUpnYTJzTHE2dXJSKzYrUFM3a0drb21VWFdDVEJpbzErdEhmbzkwT28xNzkrNGhIQTZqdTd2N1FBR1k0emgwZFhYaHlwVXJlUEhpQmRiVzFyQzR1SGdvd2IwMUFuby8vSDQvSmlZbUFIemw4T2Q1SGh6SHdXYXpnZWQ1ODZzZ0NIc0VZT0xlemVWeVdGcGF3dHpjSE5McGRNZlB6VEFNU0pLRVNxV0NlcjBPcjllN1ErVGNMYjYzT3BTSlVNM3pQQUtCQUVLaFVNZDdpSU9RSkFuTHk4dTRmLzgrWXJFWUhBNEh4c2ZIMjdybktZcENJcEhBZSsrOWgwS2hZSzdmVWRNTmFKcUd6K2ZENWN1WDhmM3ZmeC9YcjEvdk9CSHVLSkNlNUZlNVBodUdnVktwWk1ad1J5SVJDSUt3Ky9yQkF4Z0Y4QXRvZGdFL1JETWEybUlmTEFIWXdzTEN3c0xDNHRTZ2FaWjErNjc4bFZEczUzL2ZHN2dCanZkRDEyUWNXZndGQU1NQVJYTmdXWGVVWmpoVzE1UlRqWDNSZFZVRjhDT25lMWhWbEhMZTQ3LzZHelpITDJqRzlwV0FUVEhRZFFsaWZRM1YwdVEvcnhTZmZWeXZ6UDFVbG9zYnA3bHNGaFlXRmhZV0ZsOWJFZ0I2QWJUTkN5VVJrVGFiN2JYMVJhcXFham9aVzN2YU9JNkQxK3RGSUJDQXcrSFkxNTNpZHJzUmo4Y1JDQVRhRG5TWHkyV3NyNjlqYTJ2clJBVU1WVlV4TlRWbERvSUdBZ0VNRHcrM2RWc0pnb0QrL243Y3ZuMGJ4V0lSQVBEMDZkTmpEYnAvWFRFTUE3VmF6UlNBbzlIb25zK1RaVm5ZYkxZZDhaMnR0QTd1ZGhLQTNXNjMyU2Y3S203UzF0Y2tmZFg3Q2NDcXFrSlJsQU9QTlNKTzdDZDBpcUpvUnRlZWhoaVpTQ1R3d1FjZjRNTVBQOFRnNENEY2JqYzRqak1GMU0zTlRkeTlleGVmZnZvcDV1Zm5YMmsvRmtVUlcxdGJaaHhwSjF3dTE0SGIrRER2VlN3V1VTd1dUZkdIaUovZDNkMElCQUlZR0JoQU9CemU4WHVhcHFGYXJhSlVLcUhSYUx3V0FkaHV0Nk92cncram82T0lScU50OXc5SmtwRE5aby9VRGUxeXVUQThQSXlyVjY5aWZId2MzZDNkY0x2ZFpyUjVLcFhDbDE5K2lSLy8rTWQ0K2ZMc1RITEViWjdMNVpCSUpQWUlZK1FhUVFRM29IbWVIUjRleHBVclYzRGh3b1cyUGM2S29tQm1aZ1kvL09FUGNlL2VQV3h0YlNHYnpiNVNaTGJENFVBNEhPNllRRUZjdG1lWi9IQllCekNaZ0hWVTF6TUFWQ29WVEUxTklaRkk0UExseXdpSHd3ZUt3QURRMzkrUGIzM3JXeWdVQ3RBMERmUHo4L3MrbjdoL3lTU2IvYzZOUTBORCtPdC8vYS9qTzkvNWpubTlJTkg3cEVLQU9FemJkY21UQ1FYMWVoM0x5OHY0OHNzdjhja25uK0RwMDZkdGozdkRNRkN2MTFFb0ZNeUpTK1Nld08xMnQ5MzI5WG9kbFVvRmtpU1pibnUvMzQ5Z01IaHNBUmhvaXN2UG56K0gzVzZIeCtNeGU2bmI0ZlY2TVRFeGdWd3VoN201T2VSeU9XUXltU01Kcmd6RElCYUw0ZHk1YzdoMDZkS0ppTDhBVEFjMXovT3ZkTThtaWlKV1YxY3hQVDJOU0NTQ3ZyNitkb0s0SDhCM0FCUUE1TkhzQkxiWUIwc0F0ckN3c0xDd3NEZzFCRWYzRFgvb3pyLzBCVytCNWJ3d2RBWEhFbjhCQUJSb1dnREhlWDZYcHUzL0RzQ1paQjNXS3ZNLzVZWEFzbGhmbVhhNFIvOHB5M2xnNkUwQm1LSlpxRm9OdGRMVXIxZEt6LzlZa1FxVzhHdGhZV0ZoWVdIeEtsQm94dHkxUlJBRXhPTnhqSStQWTN4OEhPbDBHclZhN1V6RkRSSXhTcUpWeVdBcGNjU1F1Tk5PMERRTnI5ZUxXQ3pXc1llM1dDeGljM01UbVV6bXhIb3hpUk5WMHpUVGRSTUtoVUJSRkhwNmVtQzMyL2NJQVhhN0hhT2pveEJGMFhTNFBILytITGxjN2tTVzZldEFvOUZBcVZSQ3BWSXg0elJiNFRnT0xwZkxGQVBhc1o4NFFCekFIby9ubGQya0JDSzAyTzMydG00cm9Da1NFSkZsdndGMmxtVk5RV0MvWlNPT3M1TVdJeG1HUVR3ZXg2MWJ0L0JYLytwZnhYZSs4eDFFSXBFOXp5dVh5K2IzVlZYRjNOemNzUVFrb0NsYVpESVpKSk5KbE12bGpzK3oyV3ltMi82NFNKS0VmRDZQZkQ2UFlEQm91c3pDNFRBbUppWWd5eks2dTd2M2lEYXFxcUpVS2lHWHk2RmFyYjZXMlBCUUtJU1JrUkdNalkyMVBkY1pob0ZLcFlMTnpVM2s4L2xEdWZrQ2dRQXVYTGlBVzdkdTRmYnQyN2gwNlJLNnU3dDNIRnZGWWhHQlFBQ3BWQXJKWkJLVlN1Vk0xbDhVUmZPekVrVnhqekFtQ0FJaWtRakM0YkFwOG5WMWRlR2RkOTdCK1BoNHg5am96YzFOUEhueUJKOS8vam1lUDM5K0lna0FwQWUrVTY4cHNOZXBmTnFRR29WMnZkcXR5MVN2MXlGSjByRzJnNlpweU9WeWVQSGlCZTdldlF1LzM0L0xseS92S3pnRHpVa0hseTVkUXFQUmdDaUtrQ1FKVzF0Yis1NURXc1hiL2M2TjNkM2Q2Tzd1UHZLNnRPUDgrZk1JaFVJb0ZBcFlXbHBxRzVOdEdNYU82eFp4OVpMckRKbG8xTHA5RlVWQnRWcEZ2VjQza3dnOEhnKzhYdThyZDlQbjgzazhldlFJMFdnVS9mMzljRHFkYmFPZ0tZcUMzKy9IK1BnNDNuMzNYV1N6V1ZPWVBpd013eUFRQ0NBZWorK1pOUE1xa00vNlZhL1BraVJoZG5ZV1gzenhCUktKQkxxNnV0cGRQeGdBUFFDK2g2YjRtd05RZktVMy9wcGpDY0FXRmhZV0ZoWVdwd0xIKzdwQ3NmL29QL1g0cjRIbC9hQkFRVGVPODhlYUFZQUNSZE5nT0JkNFd4UWM1MG5nakFSZ0FKQ2wvQXJEMnY5RnBUVDk1eFROQ2pBTUZhQllVQlFNUTVVMHRaclMxTWJaWkVOWldGaFlXRmhZZkozSkFVZ0RDS0pOQkRSTjB3aUZRcGlZbU1BNzc3eURmRDZQRnk5ZW9GQW9uTmtDeXJLTWNybU1VcWtFU1pMTWdVcWJ6WVp3T0l4NFBBNlB4d09Lb3RvS1hVUUFqa1FpOFB2OWV3YjNETU5BdVZ4R01wbEVOcHVGSkVtdnZNdzJtdzJoVUFnK244OGMxRStsVW5qNDhPRU9JYUtkR0JBSUJIRHAwaVhUblJNT2gvSHBwNStlYWUveW13b1JTWXZGSWlxVlNsc0hveUFJcHZoMWtNalFEaUlBZTczZUV4T0FlWjZIMCttRTArbnN1RXpFNlM3TDhyNkNMYy96c052dHBqdTFFN0lzbzFhcm5kaUVCb0xENGNEVnExZngvZTkvSCsrLy8zNWI4UmRvOW1wZXYzN2RqRVhPNVhMSDNvZUp1Rm9vRkV4QnU5M25RcUpiYmJhMmdRYUhRaFJGRkFvRkZBb0Z5TEpzZmw2eFdBelhyMStIcXFybzZ1cmE4M3VLb2lDYnpXSnpjeFBGWXZITUhjQWVqd2VqbzZNWUh4OUhYMTlmMjIyZ2FSclM2VFNXbHBhUVRxY1BGT1I5UGgrdVhidUdYL2lGWDhEdDI3ZlIxOWUzby9lNDlYbm56NS9INWN1WHNicTZpdG5aMlgyRitwT2kwV2dnbTgyYUF2QnVTTXd1NlcvMisvMjRjdVVLdnZXdGIyRmtaR1RQOHczRFFDcVZ3cE1uVC9EMDZWTXNMeSsvc3ZoTDB6U0N3U0Jpc2RpK25hYXRFY05uQlUzVEVBUmgzNGtwclpIb3I3SnNTMHRMK05HUGZnU1h5NFZRS0lTQmdZRURseTBXaStHZGQ5NkJxcXBnV1JhZmYvNTVSNGM1UlZGbS8vdEJEdUNUSkJnTVlueDhIR05qWTBna0VtZzBHbnZPdWVTNlZhbFVka3dPWVZrV0hvOEhmcjhmTnB0dFIwcUNxcXBvTkJxbzErc0lCQUptei9sSkNNQUFrTWxrOFBqeFkzUjNkOFBwZE9MYXRXc2R6NXZkM2QyNGZmczJzdGtzTmpZMmppUUFBODFyNm42ZDljZUJKSHkwdXdhU0dHZFpsZzkxL0s2dXJ1THg0OGU0Y3VVSzNudnZ2VTdiZ1FNd0JPQS9RVlA4L2ZjQXppN3YvaTNERW9BdExDd3NMQ3dzVGdWT0NBMTdBemYrSzRkckVJRFIxRXhmQlVNSHgzbmg4a3lnVnBtOUR1Qk1PM2EzQlY1TDVMV3dzTEN3c0xBNFRXWUFmQUhBQzZBYlRhZURDUmwwSEJnWXdPM2J0MUd0VmxHcFZNNVU0R2dWZ0ZzSFZubWVSeVFTUVZkWDE3NlJrcVRqTHhLSndPZnp0UjJFckZhclNLZlR5R2F6eDNZcGttV0t4K01ZR0JoQVQwOFBRcUVRV0paRm85RkFvOUVBei9PbW82blR3Q1JGVVdaZk1ZbDdaQmdHWDM3NUpWS3AxRGUrRjVnTXBOZHF0Ylp1T2RJRmUxd0JtS0lvT0J3T3N5LzZKSVFFanVQZ2Ryczd4bjBDVFNmU1lRUmJJbkp5SE5keDJRekRnS0lveDNidDdZZkw1Y0xGaXhkeCsvYnRBMTEwd1dBUU4yN2N3TnJhbWpseFJGR1VZNTA3V3NXZC9aNWpzOW5NeiswNDcwUE9OK1Z5R1pJa21la0NnVUFBNTgrZmg2WnBiZnQxVlZVMUJaSjJMc0RUZ01USUJvTkJqSTZPNHYzMzM4Zm82R2hIb1pFSW5Bc0xDMGdtay90R1FEdWRUb3lOamVIYjMvNjIyWlc3SDRGQUFGZXVYTUg2K3JvWjBYN2FOQnFOSFdMOWJtaWFoc3ZsUWpBWU5DY3FYTHQyRFpjdlgyN3IvcFZsR1l1TGkvajg4OC94NHNXTEUrbURGd1FCWFYxZDZPbnAyZmM2cGFxcTZRdzlLMGcwL1g2dStaT2FTRkl1bC9Ia3lSTjR2VjUwZFhXWlF2QkJhUXlKUkFLM2I5ODIrM2p0ZGp1U3lTU3ExZXFPTkJMRE1NQnhuTm0xZmxZQ01OQ2NmQkdOUmhHTlJyRyt2dDVXQUNZTzRHcTFDbFZWemV1QTArbEVLQlNDeStYYWtkWmdHSVpaQ1VBbXZKRFk0NU1RZ0lHbThQbnBwNThpR0F3aWtVaWdwNmVuN2ZuVmJyZmozTGx6Mk5qWXdPVGtKTmJYMXc4OUlVRFRORlFxRlROMi9qRHgzNGVCWlZtNDNXNEVnMEZRRkdYRzlJZENJZE14TFVrUzZ2VTZHbzBHSkVtQ29palFOQTI2cnU5NGtJN21kRHFOWkRKcGNCeEhrZGZZaFFQQURUU0ZYd25BejlDY1FHbXhDMHNBdHJDd3NMQ3dzRGh4YUlhMytVTHZUZGdjZldBNUQxU2xDdVBZMGM5QVUwRFd3REJPT055amNMaUdyN084NTQ5VXVXeFpMeXdzTEN3c0xDeStUaXdBK0Q5VlZYWElzdng5aXFLQ2dpQlF1d2UrdkY0dkxsNjhpRWFqZ2VYbFpheXRyWms5dGFlTkpFa29GQXJJNVhJN0J1UVpoa0U0SEVaM2R6ZDhQaDlvbW00ckNKSUl3a1FpZ1VBZzBGRUFUcVZTeUdhengrNDZaaGdHdmIyOStQREREM0huemgzRTQzRzRYQzR3REdPS2V3QVFEb2NSQ29VT0ZDZHBta1ovZno4QW1JNnB6ejc3REpPVGsyZmFFL21tUWFLTk93bkFSQVFranJEalFBYmxpWkQ4cWdpQ1lIYVJ0dnZjU2JjeDZYenNCQkVCRGhJNWlPdjhwTjIvUUhQYlJLUFJ0aTdZZHNUamNZeU9qbUpzYk15TUNEN3FjckVzaTNnOGp0N2VYdmo5L283clRjUjdqOGRqOWhFZkZTSUFWeXFWSGIvdmNEakFjUndNdzJncmxpbUtnbncrZitJOTR2c1JqOGZ4M252djRmcjE2eGdiRzBOL2Y3OTV6bWlIb2loSUpwT1ltNXZEeHNiR3ZuSERQVDA5dUgzN05qNzQ0QU1NRFEwZHVDeGVyeGVYTGwzQzV1WW1uajkvanFXbHBlT3MwcEdvMStzN0lxRGJZYmZia1Vna01ERXhnZTd1YnB3L2Y3NnRpeGtBU3FVU3BxZW5jZmZ1WFN3dExiM1NaQ0NDMCtsRWIyOHZCZ1lHT2dyenVxNmpYQzYvc3N2MnFKQno1WDRPWUVtUzBHZzBqajF4bzVWeXVZeUhEeC9DNy9lRFlSaDg4TUVISFQ4TEFrM1Q2T3JxQXNNdzhIcTlHQnNidzh6TURLYW5wL0hpeFFzelZjQXdERlBRUG1zQm1Fenc4WHE5c05sc2V4eXlobUdnV3EwaWs4bWdXQ3p1Mks4Y0RvZnBVcy9uOCtiOWgyRVlNQXhqendRZXNuNjdJNk9QUTZsVXd0VFVGTHE3dXpFNk9ncWJ6WVpJSk5KMkVrSWdFTURZMkJndVg3Nk10YlUxTEM0dUhtb3lHa2tkV0ZoWXdNTENBaVltSm80MU1XczNaR0xpcFV1WFVLMVdFWS9IY2Y3OGVRd01ESmdPWUZWVnpmMjNWcXVoWEM2YmNlYXlMSnVWQzZJb2ttVXlGaFlXREpabDBkdmJTN1VSMm1rMDAzSStBQ0FBNkFMd0F3QkpBTWN2dWY4YVlnbkFGaFlXRmhZV0ZpY094L2w2YmJhdWY4b3dqdU5YL3U3Q01BelFOQU9PODBDd3gzK2Q1OFAvRW1jWUEyMWhZV0ZoWVdGaGNRYWtBUHlvV3EzNmxwYVcralZOdTliYjIrdHNGK3NhaVVSdzhlSkZYTDkrSFV0TFM1aWNuRHdUb1VNVVJhVFRhV1F5bVQyT0xMZmJqVWdrZ21Bd0NMdmRqbXAxYjNoS2F3ZXcxK3ZkTTdpcGFab1pVVnV0Vm84MXlFMVJGR0t4R0c3Y3VJRmYrSVZmd0xlLy9XMTR2ZDRkc1o3a1FWRVVLSW82dE5PcnY3OGZQVDA5aU1WaWNMbGNzTmxzZVA3OE9mTDUvS2tJZksyUU9GMmFwcUdxS2tSUlBQWDNQQWhKa3N4dXhIWmlQVTNUWmpmZ2NRVmdFaGZyY3JsZXFVK1d3UE84S1FDMzY5b2sreUJ4bmU0SDZZYmVyLytRT01kT3VrK1VKQUswNjYvdUJFM1RpRWFqR0JzYncvTHlNbks1M0tIM0llTGk3dXJxd3ZYcjEzSDkrdlY5QlNQaUJITzczUkFFNFZqN3FpUkpwZ080VmFnaGNibnRJQUorc1ZoRXNWZzg5UjVYaG1FUWk4VncrL1p0L05Jdi9STGVmLzk5ZEhkMzd4dDlxK3M2TXBrTWxwYVdzTHk4dk84RUhwcW1NVEF3Z0Z1M2J1SDgrZk03Qkp0U3FZUmlzV2oyZzVKSWZvN2pUQ0dwcTZzTEhNZWRpSUM2SDBSMEx4YUxIVDlyMGxuOXpqdnZvRmFyWVdCZ29PMHhLRWtTRmhZV01EazVpWm1abVJPYjRPUnl1ZERiMjR2Ky92NjJBakRwMk0xa01zZSsvaHdYd3pETVNQbDIyOFF3akIxQzJVa3NXektaeENlZmZBS2dlUzY3ZmZzMmZEN2Z2cUlnUlZGbWh5d1JnTC84OGt1NFhDNDhmdndZdVZ4dWg2aW42M3JIVHVQVFFOZDFNM21pWGZvQXFabElwOU1vRkFvN3JsdDJ1OTFNL09CNTN2d1p1VS9ZZlR5VGp1T1RFSUNCWmgvdzlQUTBQdi84YzNnOEhuZzhuajFkMm9Sb05Jb2JOMjRnazhtZ1hDNGZTZ0FtNTUyblQ1OGlIbytqWHEranQ3Y1hETU9ZRTVYSVJBU24wMm1LdHdmaDgvbHc4ZUpGQ0lJQVJWSFEzOStQeTVjdlkzQndjTWU5RlhIM1ZxdFZzNE9acExBUVo3QXN5MUFVQmJxdVE1WmwxT3YxL2JZdEVZSHZBUEFBNEFITUEvaWpBeGY2RzRRbEFGdFlXRmhZV0ZpY09EUmo5ektzQ3dEMTZ0SFBKczJiZG9yaXdISmVjTHl2aTJFNFZ0T1VrM29EQ3dzTEN3c0xDNHMzQVQyVlN0My8rT09QUDYvWDY3RVBQdmhnME9QeE1PMTYwR0t4R0c3ZXZJbU5qUTBVaTBYTXpjMmQrc0pKa29TdHJTMXNiVzIxSFhEMCtYeUlSQ0tJUkNJUVJYR1BLRWpUdEJrVjJHNWdrd2crdXdkbWo0TEw1Y0tsUzVmd3JXOTlDMWV2WHQwVEVmdXFiaVNHWVRBeE1XRjJNc2RpTVR4NjlBZ3pNek9uSWphUmFObisvbjcwOWZYQjRYQ2dXQ3hpYlcwTkt5c3JyOVdCVE56VWpVYWo3YnFUYnNCMmcrZEh3ZWwwbmxqY0pzL3o4SGc4OEhxOWJZVlRWVlZSTHBkUkxCWjN4SUR1aHFLb1F3bkFaRkQ3cE9PZldaWTF0OGxSb21yOWZqOTZlM3NSaThVZ0NFTGJpUnJ0NEhrZWlVUUMxNjlmeDdlLy9XMWN2MzRkd1dDdzQvTnBtZ2JQODNBNEhNZDJtWW1paUh3K2owS2hjT2crY0VtU2tNMW16WTdpMDZhN3V4c2ZmZlFSdnZlOTc1bmR2QWVSeVdRd05UV0ZseTlmWW10cmE5L25Db0tBYURTS29hRWhoTU5oOC91eUxPUEZpeGU0Zi84K0dJYkJ1KysraTB1WExwbmJtbVZaeEdJeGRIZDNJeEtKSUpWS0hmdWNlaGcwVFVNdWwrc1lBVTBJQm9PNGZQa3lGRVZwR3p1c2FScVdsNWZ4OE9GRFRFMU5JWmZMbmRneU9wMU9KQklKczJ1MTB6cVFhK3BKSDdQN1lSZ0dCRUV3M2UyNzBYWGRkRkFlMUUxK2xQY2swY09HWWFCUUtPRG16WnNZR3hzN1VMUmxXUmFKUkFKT3B4Tit2eDgrbnc4K253OWZmdmtsNXVmblVTZ1VzTG01ZWViWEp4STFUaVlOdFVzaklRN2dVcW0wNDVod09Cd0loVUlJQkFMZ2VYNUhEM0NuOStyVWZYdGNscGVYOGNrbm41akhmQ2NCMk8vMzQvcjE2eWdVQ3BpZG5jWG01dWFoSm5uVTYzVk1UVTFCbG1YTXpNeWdxNnZMRkx2cjlUcnNkanRHUjBkeDdkbzE5UGIySHVxYVN3VGczdDVlR0lhQlFDQ0FycTZ1dHRkRWxtWE41QXB5YlZSVjFmeXFhUm9VUlVHOVhxY013NkE2SmNXMFFLRXAvbDVCVSt0Y2d5VUE3OEFTZ0Mwc0xDd3NMQ3hPQ1FNblp2OXRnYUlvMEJRTGl1YitkNEMyQTdBRVlBc0xDd3NMQzRzelpXTmo0MVJmLys3ZHU2Vy8vTXUvbkt4VUt1OHlETk1iaVVTWTBkSFJQZTVIbnVjeE5qYUdXN2R1WVdGaEFjdkx5NmZ1OGxKVkZmbDhIcWxVcXExdzVIQTQwTlhWaGI2K1B1Unl1VDJEdnh6SHdlVnl3ZVB4N0ZrZjRzd2gwWURIZ2FJbzB4bno3cnZ2SGhocGVWeHNOaHN1WDc1c3VvVjhQaDlzTnBzWnhYaFNud05GVVFpSHc1aVltTURObXpkeC92eDV1TjF1cE5OcHpNN080c1dMRjFoWldURkZGMFZSb0txcTJXRkpPdlZPaTFLcGhIdytqMHFsc3E4RFdOTTBTSklFVGRQTXlNeWp3SEVjN0hZN25FNG5NcG5NS3kyeklBandlRHh3dVZ4dEI2aDNDOEFITFJjUmdEdEJuTm9uTFNhUmJjS3k3SkUrWXlKeStQMytJd25xZ2lDZ3Q3Y1hWNjlleGRXclZ6RXdNTER2NTBnY3d6YWJEVHpQSDZzSFdKSWs1SEk1NVBQNVF3bkE1QnlTVENaUDFmMUwrajhqa1FodTNicUZYL3pGWDhTZE8zY09kYjRSUlJIejgvUDQ3TFBQOFBMbHl3TUZlQktqN2ZGNGRxUVlWS3RWVEUxTjRVLys1RS9BTUF3Y0RnZjYrdnAyaUtwT3A5TThINU1vN2RPRU9QdnE5YnFac05CdWZYcDZlc3lZNEhhdk1UVTFoUysrK0FMTHk4c25ldHpZN1hhRVFxR09zZit5TEdOcmF3dnI2K3NvRm91bmR1NGt4d1J4anFxcUNyL2ZiN291MngxWHV4M0FKNFd1NjFoZVhvWW9paWdVQ21iYyt2RHc4S0ZpOTcxZUx5NWN1R0JXTE9SeU9heXNyS0JZTEdKcGFRa3pNek5ZV0ZoQVgxOGZiRGFiK1pucnVnNU4wM1pjcTFxdldlVGZaTjFicjJXdGNkbTdQMGVHWWVCMnV4RUlCT0IwT3RzS3dLVEtvbFFxN1ppczRIUTZ6V3Y2WWM2TkpObUNaZGtUUytNZ1VkQ0RnNE80Y3VVS2dzRmdXeWN1ei9QbzdlM0ZoUXNYTURJeWd0blpXYVRUNlFPUEYxM1hrVXdta2MxbThlTEZDM2k5WHRPNVMzcUJ2L09kN3h5cFdzRGhjTURoY0pnOTlJZTl2cFBPNjkyMGZ0NkhUR2loQUxnQVhBYlFmNmczL3daaENjQVdGaFlXRmhZV3A4eHA5TDBZNXY4c0xDd3NMQ3dzTE02YTMvbWQzem5WMTMvNThxWDgrUEhqa2lpS1ZhZlRxWWZEWVhnOEhuTndqVURFd2ZIeGNRd1BEK1BSbzBkSXBWS243bHFxMSt1bXVDdkw4bzRCV0NKQ2pJeU10SFduT2h3T3VGeXV0dTRyUlZFTzVTRGJEN2ZiallHQkFVeE1UR0I0ZUJqdG5OTW5CVTNUNk8zdEJVVlJDQWFENk8zdHhlUEhqL0hzMlRNc0xpNmVpUHVRWlZtTWpZM2grOS8vUHQ1Nzd6MGtFZ25ZYkRhVXkyV2NQMzhlNzd6ekRwTEpKSkxKSkhLNW5DbVdGUW9GMU90MTFPdDFpS0tJZXIxK2FuSFJ1VndPbFVxbFl3ZXdZUmptTWpBTXMyK3NaU2RvbW9iVDZZVGI3UWJETU1jVzlscDdhVHNOOEpPQjhJTWNwSWQxQUJOQi9xVEZKSVpod0hHY3VZMFBpOTF1aDgvbmF6c0pZejk0bmtjNEhFWlhWeGZDNGZDQmcvSWtwdGx1dDV1aTFsRS9OMFZSa00xbUR5MEFxNnBxT2poTHBkS3BDSGgydXgxRFEwTTRmLzQ4TGx5NGdHdlhydUhxMWF1SG5teVN5V1R3K1BGamZQYlpaMWhjWER4UXpMUGI3WHVFTGxWVlVTZ1VzTDYram9XRkJRREF3c0lDVXFrVTNHNjNlZDV6T3Azbzd1NUdYMThmVmxaV1RsMEFWbFYxUjN4NnUvUHZmdkhkdXE0amxVcmgrZlBuZVBMa0NkTHA5SWwraHFUajFlUHh0UDI1TE10SXBWSllXMXREUHA4L2xmMG5GQXBoYUdnSTNkM2RabFZDdVZ6ZVY1Z0dZRWJpU3BKMDRrNXV3ekNRVENaeC8vNTlWS3RWcEZJcHZQLysrN2gwNmRLaFJFQ1daZEhUMDRQQndVR0V3Mkh6bkxTeHNZR2YvZXhuY0RnY3VIcjFLb2FHaGhBTUJxSHJPcXJWS29yRklrcWxrcGtpUVNiTHRFWklFMWVvTE11bTg5bnI5V0prWkFSWHJsekI0T0Rnbm1VaEFqQnhBTGVEUk1TM251T2RUaWZDNGJBWkFiMTdHKzNlSDhnRXA1T29KbWlsVkNyaCtmUG4rT0tMTCtEeGVQRC9aKysvZmh2TEVqVmY4S00zbTk1YlVhSzhGSW9JaFNJakl6SWpYV1dkcW5PNjBRZjlNc0NnM3k4d3dBQVh1SmovWUo3bWRkNjZNVS85TXJnWEdHRE9kT09jN29PcVUxVnBJOE1iZVUrS1R2VGVicHA1VUs2VnBFUlNwRVJHcUxMV0R5QXlJdWcyTjlmZW03bSs5WDNmL1B4ODE5OU1Bb0VBVHFjVGk0dUwyTnZiUTdsY0hzaHhUUllUeEdJeHhHS3hqZ2pyMDlOVHpNL1BJNWZMRFR6T3lMVnZWRjNQMTZpTVVJRHBuUmRnTzRUQllEQVlETVlZYVAwcys0NWUvRzIxbW1nMmFtZzFhdjhuWUdUNTBnd0dnOEZnTUJnRDgxLyt5MzhaNit2elBDK3NWcXNTQUtLM2I5L0NZckZnWm1ZR05wdnRRcStrUkNLQjFXckZ6TXdNcHFlblVTd1drY3ZseHJwOXpXWVR1VndPMFdnVXlXUVNWcXVWVHJJU2wrRFMwaEkyTnpjN0hGd0NnUUJxdFJvcWxhcnJKSGVsVWtFaWtVQXVsN3VTd0NlVlN1RjJ1M0hyMWkxTVRVMTFuZVJ2ZHhVUlo4bDFKeTFkTGhmTVpqTW1KeWN4UFQwTms4a0VqdU93djc5LzVjOUNFSXZGOEhxOWVQejRNZGJXMXFqUWFMVmE0ZlY2cWVCQ1lybERvUkQ5TStuWUkyT0NpTUZFa0NSdTRYYVhWZnQvMjJtZjRHMi9YeUFRd09WeVFhZlRkWjBFSnhPNTFXcVZUalFUdCtJd0VPR1d1Sld1NmhDWHkrWFFhRFRnT0s3bkJEUFA4OGhtczFSRTc3ZE5nd2pBWkQrUFdrdzY3NG9iRk9KZUhhWTd1SjFtc3ptUUE1RTRnSWZwa3V6MlhxVG5kcENPODJxMWltZzBTaU44UjRWRUlxRmQxRk5UVTFoZFhjWERodzl4Nzk0OXVOM3VnUmFhdEZvdHhHSXh2SHIxQ2ovOTlCTTJOemVSVHFjdmZWNjNqdEZtczlrUnZWNnBWQkFPaHhFS2hlZ2lFZUJzdkx0Y0xreE5UV0ZqWTJQczZSVUFxQWhWTEJhSFhvQ1RTcVd3dTd1TDdlMXRuSnljakRUQ1d5cVYwb1VQdlVSV3NoOTlQdC9JRnhCSUpCSTRIQTdjdW5VTGEydHJtSnViZzFxdFJpYVRRU0tSZ0Znc3BpN1piclJhTGZBOGoycTFPcklPNFBPUVh0eDRQSTVNSm9OQ29ZRFYxVlhZYkxaTHp4ZnRibGp5ZXlDZnorUFZxMWNvbFVvSWg4TzRlL2N1N0hZN21zMG0wdWswWXJFWUVva0VmUzh5cHNtdFZDcUI1M253UEU5N1lsdXRGc3htTXo3NzdETVlESVlMQWpDSmdOYnBkRkFxbFQwRjRGS3BoSHcrajF3dVI1Mm1Db1VDRm9zRlJxUHh3aGdSQ29VWFhvdGNBOGJSY1J3TUJ2SDk5OS9EYURUQ2FyVjJGWUNCTTlGNmFXa0pQcDhQa1Vqa1NwSGI1eGNONW5JNUJJTkJSQ0tSbnAzVU41alI1WEgvU21BQ01JUEJZREFZakpIVGF2TEZadlBuU1lFUnJRTDgrWlhSYWpYUWFKVFJiSlRTVGRiL3kyQXdHQXdHNHdNd2FHZm1OV2dDYU9Dc0R4aWJtNXRZWDErSDIrMkcwK21FUXFIb2VMQldxOFg4L0R4dTM3Nk5hRFE2ZGdFWU9Kc2c5UGw4T0Q0K3BzSWNjRGJKN1hLNWNPdldMVHg5K2hTdlhyMmlrL2hTcVJSYXJSWktwYkxyUkhLbFVrRTJtMFdoVUxpU2FLcFNxYkMwdElTMXRUVk1URXhjdUorNDVqS1pET3IxT2lRU0NSVUVlem5DQmtFZ0VFQXVsOU8rUHIxZUQ2ZlRpYi84NVMvWTJOaEFMQmE3c3Z1V2lPWm1zN2xqRXBaTVJwTVlZSlBKQkxmYmpabVpHZXFxSW9JdjZZMGt3a0dqMGFDeG8rM3VWQkxKZVY1VUpCUDczY1R5WnJNSmc4R0FsWlVWcU5YcXJwOUJLQlNpWEM0akZvdEJJQkJBcDlNTnZSK0VRaUVkWndxRjRrb0NzRWdrZ2w2dmg4Rmd1SEFNdFVNRTRGUXFOWkFBTEpQSklKRkl1Z3FjeldaemJCSFFQTS9UM3NSaElHSW1pYUFkbEZxdGhsUXFoWGc4UHRBNWtCd1hwS2Y0cWdzdHF0VXFYY3hRcjlmN3V1MUloTy9KeWNuSUhKd2N4MkZtWmdhenM3T1luNS9IOVBRMHBxYW1NRE16Y3lHVm9SL1JhQlEvL3Znai91VmYvZ1hQbmoxREtwVWE2SG5FZWRqK1djaXhTTVMyWXJIWTBjMXVNQmdBL0xJZ3grdjFYdWhDSHhla3h6MmZ6ME9uMHcyOHlLQldxK0h3OEJEUG5qM0Q5dmIyU0srellyRVlack1aVnF1MTUza0tPQk92QTRFQTl2ZjNSMzZkZDd2ZCtQcnJyL0g1NTU5amRuWVdkcnNkY3JtY0NwSE5acE1LMU4yT1MrSUFKaEhRNDRxbjVua2VPenM3YURRYWlFYWoyTm5ad2NyS0NwYVdsdUQxZW5zZWY1VktCZmw4dnFNM3ZkVnFJWkZJNE8zYnQwaW4wOWpmMzRkT3AwT3oyVVNwVktMSGRmdTFxbDNrcmxhclhjK2JpVVFDRm91bDZ6RkVyaFZxdFJvS2hhTG5PWTduZWVUemVacjBRTHFYN1hZN3pHWnpoMHU5M2VuYmZoNGoxK0J4Q0tTWlRBWnYzcnlCMSt2Rmd3Y1BlanF4T1k3RDh2SXlRcUVRWHI5K2pZT0RnMnU5YjZ2VmdzL253dzgvL0VDdmswNm5zNitZZm9Ob0FCaC84ZnRmR1V3QVpqQVlEQWFETVhJYTlXS3l6cWZSYXRZd09oZXc0Q3owdVZWRnZaNUhuYzlmci95THdXQXdHQXdHNCtiU0JNRGpiRElMMFdnVXIxKy9odFBwQk1keEY4UXJxVlNLcWFrcDNMbHpCN3U3dSsrbEN6aWZ6K1B3OEJDN3U3dHdPcDFVQUJZS2hkRHBkSmljbklUSDQ0SFJhRVF3R0FSd0prYVFTZGx1WWhDWlFDNFdpME1Md01RVnU3S3lncFdWRlNxQXRNUHpQRTVPVHJDenM0Tk1KZ09aVEFhVlNnV1R5UVNyMVFxajBRaWxVa2tuZXE4UzdXaTMyMkV3R0dBMm05RnF0VkF1bDFFc0ZxOFZ2MHpFMm40UVlWV2owY0R0ZHFQUmFIUTRSTStMU09UUDdRSXc2V004NzFZbGs5OUVCRzYvai9SNEtwWEtuZzRsNE14dGRYcDZDZ0JEaVdidDI2QlFLS0JXcTZGVUtxOGs3b25GWXRwOTI4c0JDSFFLd1AxY3B3S0JnSXFwdlFUZ2VyMU94ZmRSQzhDMVdnMmxVZ25WYW5Xb2ZkRlAwTzlIdVZ4R01CaWsvWjZEdkk5VUtxWHh4VmNWZ0VtdmJ6UWFSVHFkN3VpNFBVOTdoTzkxSEp3aWtZZzZmbWRtWnJDMnRvWUhEeDdnenAwN2NEcWRrRXFsZmNkUSs3YnpQSTk0UEk3bno1L2pYLzdsWC9Cdi8vWnZDQVFDQTI4TGljTnQveXdpa1FnY3g5RTBoVnF0aGtRaWdVUWkwZUdhbFVna01Kdk4xS1gvUGlEQ0doSHNCeFdBYzdrY05qWTI4UHo1YzNyTkdCWEVDZTF5dWFCU3FYbytqa1NPUnlLUmdTTEhoM24vcGFVbC9QM2YvejIrL1BKTHFOVnFLaVlPbWtyeFBoekFoRWFqZ2YzOWZZVERZZXpzN0dCL2Z4K3hXQXo1ZkI0ZWo0ZGVKOGwyVnF0VjdPL3ZZMmRuQjZlbnB4ZXVWL2w4SGpzN096ZzhQT3pvQUQ3Zis5c3RacmtYK1h3ZWhVTGhRZzBGY0xhLysvM1dBSDdwMFk3SDQ4aG1zMVRnMU92MTBPdjFIVTVzRXJkLy9qdy9UZ2R3dlY3SDZla3BqbzZPNFBQNWFLcEp0eTVncDlPSjZlbHBPQndPS0JTS2F6dm5nOEVnbmp4NUF1RHNtSmlkbmFXTDk4ZzFtUFJZRDNKOGs3SGJhRFRvR0NkcE5pTVVsUnNBSWdDaW8zckJYd3RNQUdZd0dBd0dnekZ5R28xeXNsSUsvcDk1UHYyL3kxdjFNeGR3QzhBMU9uc0ZBaUhRYXFGZUw0R3ZwVkd2NThNajIyQUdnOEZnTUJpTW0wWHo1MXNMQU5McE5ONjhlUU9IdzRHNXVUblk3ZmFPQjR0RUl0aHNOaXd0TFdGaVlnSktwZkpLTVlERFVDZ1VjSHg4aktPakk2eXRyWFhjSnhBSW9OZnI0ZkY0NFBGNGtFNm5VU3dXSVJhTGU3b0JTVS9zVlFWZ3RWcU5pWWtKek0vUHcrUHhkQlZuZUo3SDBkRVJ2dm5tRy9qOWZvakZZdW9BMXVsMDBPdjEwT2wwTUJnTXNGcXRjTGxjY0RxZFE3dURaVEladkY0dmxwZVhzYisvRDcvZlAxRFVhemZJQk9tZ2s2VGtzYVB1Skx3dXBWSUpvVkFJclZZTFMwdExReitmQ01BcWxRcHl1ZnhDRlBVZ0VBZTZWcXZ0Szk3VjYzVmtNaGtrazhtK3d2MTVnYlBiZDFTdjE2bXpiZFFDTUJFd0twWEswSzk5bGVqemVyMU80NVVINlpJZGxRQU1uTG5oam8rUDRmZjcreTQycU5WcWlNZmpDQWFEVnhaQnlJS2EyZGxaTEN3c1lHNXVEck96czBNN2Zwdk5KcExKSkk2UGovSHExU3Y4K09PUGVQcjBLWHcrMzFEYlF4WVF0SjhUaFVJaDFHbzFqVE1tL2VuSlpQTENvZ1dTRUVBZU82NHVjRUt0VmtNdWwwTXVsME90VnV2Wjk5c09jWnZ1N3U3U0JUcWpSS2xVd3UxMncrMTI5M1VBdC9mc2pncUZRZ0dYeTRXRmhRVXNMUzFkV0p3MDZQbWRMTkloUXRxNGFUUWF5T1Z5Mk5yYVFyRllSRHdleDg3T0R1Ym01dUIwT21FeW1hQlFLRHFpelgvODhVY2NIeDkzWGJEVWFEUkd1dDNGWWhHWlRJYjJKN2REcnV2OUhNREFtWWhNcWl6TVpqTVZjMVVxVlVkTkFibW1uaGQ2eHlrQUEyZmpNUmdNWW5OekV4NlBCM056YzEzUGZTS1JpUDVtc1Znc0NJZkQxMW9FV0svWGNYSnlBb0ZBZ0hRNkRidmRUbis3S1pWS1dDd1dURTFOd2V2MVluSnlzbStpQm5DMnVPLzA5QlNKUkFMMWVoMHltWXd1WnBSS3BWUmNKNHZ1UkNMUm9BdEhXai9mYWdCT0FYd0Q0SG9XNkY4aE4rdlhJSVBCWURBWWpGOEZ6U1pmbDh1dHJ3dTViY2prRGtoa1JwekZOMTg5c1ZrZ0VLUGVLS0ZjUEVHbEZQaGZtNDF5Wm1RYnpHQXdHQXdHZzNHREtaZkxPRG82d3RiV0ZrS2hFSmFYbHk5TWFuSWNSeDFPUnFPUjl0cU5pMHFsZ2tna0FyL2ZqMlF5U1R2MENFUUV2WFBuRGs1UFQzRjhmQXloVUVpalozc0p3TGxjRHNWaWNhaFlXN0ZZREt2Vml1bnBhYmhjcnE2Q2JhdlZRanFkeHNIQkFaNDllNGE5dmIwT2NWVXNGa09oVU5ENDV1bnBhU3d0TFdGeGNSR1RrNU13R28xUUtCUWQvWWI5RUlsRTBPbDBNSnZOUS9mZHR0TWUxOXVOOC92OXBsSXNGaEVNQnRGb05LNjBPRUVvRkVJdWwwT2xVa0VtazEzb1JCMEVtVXdHclZiYnR3TVUrQ1Z5T0oxTzl4VXNCbkVBdHp2MlJpMEFBMmNMTVVxbEVtcTFXbDhIZGp0RVNDSXU4VUVoVHR4NFBJNWNMb2RtczluM1dCQUtoWkJLcGRRcGRoMm5WemFieGM3T0RuVzVkZnVzclZhTDltQW5Fb21oeENieVhhclZhbmk5WHR5N2R3K1BIajNDNnVvcVhDNFhGVCtHb1ZBb1lIdDdHMy81eTEvd3pUZmZZSDE5L1VvTFFhclZLb3JGSW9yRllzZnh6bkVjMUdvMXBGSXA3VXJPWnJOZHhVdU80NkRWYXFGV3E1Rk1Kb2ZlaG1HM2wwUkFEeW8ycDFJcDdPL3Y0L0R3RUxGWWJPUUNwMGFqd2NURUJEd2VUMThIY1BzMVlWVEhxMDZudzhyS0NwYVhsNi9sd201UGJIZ2ZBbkQ3KzU2Y25DQVdpMkY5ZloxMjNVOU1URUNyMWFMUmFDQVlET0x0MjdmWTN0Nm1GUXZqcGxxdElwMU9JNUZJUUsvWGR3aUdFb25rMHU3eFZxdUZmRDVQaGNsYXJVWVhUc25sY21pMTJvNkZSdDNjcXUzajVTcUxrZ1loSG8vajdkdTNtSmlZZ00xbTYzbWVWNmxVOEhnODhIcTl5T1Z5VjE1MFJtZzBHdkQ3L1RnOVBZVkVJcUdmVVNRU3dlbDBZblYxRmZmdjM4ZmR1M2ZoOFhoZ01wbm80ODVERmxVZEh4OVRoN2hTcVlSR282SG5Wdkk3cDEwUUpxTHd6NHUzV2hxTmhpeU1KRFVwRlFBbG5JbS96d0g4ZndENHJ2WEJmNFV3QVpqQllEQVlETVpZNFBuMFNUYjU5UDhpVTdqK3MwNzJFRUtCK0lvQzhOa1A5bGFyaVZvbGlsejZKVXFGZysrYnpmZndmeFVNQm9QQllEQVlONFJjTGdlLzM0L0R3ME5FSWhHWXplWU9FVXNnRUVDcjFjTGhjTUR0ZGlPUlNJeTFDNWdJcW42L0g4RmdFSmxNcHFOalVpcVZZbTV1RG84ZVBjTGUzaDdDNFRDTkNwYkw1UmNtQ2RzZHdLVlNhYWdKYnFWU0NaZkxoYW1wcWE3eHNFUWNPVG82d3Y3K1BudytYMDkzWUNnVVFpQVFnTi92eDhIQkFWNjlla1dkd01UeE1qRXhjYW5qNXlvT3kyNG9GQXJJWkxJTGp0NUdvMEg3WDBVaVVkZDllcE1nRHVCcXRVcGRRTU80bE5zam9DOXpkZlZDTHBmRFlEQkFyOWYzRmZOSUoyZXhXT3o3ZXUzdXIvUGRrQVRpMkJ0WFpDdUpRUzJWU2dOM3ZOYnI5U3VMMGtRRVRxZlR5T2Z6TlBxOUcwUlVKUUx3ZFk2SGJEYUw3ZTF0ZUwxZXJLMnR3ZUZ3WEhpTTMrL0htemR2Y0h4OFBGUkh0RUFnZ012bG9oMi81TGF3c0lESnlja3JiVyt6MlVRa0VzRlBQLzJFLy9rLy95ZTJ0cmF1bk1wQUlwVlRxUlR0S2dWQUkreEpWRzJoVU9ncEFNdGtNcHB1a012bHhsb1IwQjRCUGNqNzFHbzErSHcrdkhuekJrZEhSOWVPcisyR1ZxdkYxTlFVcHFhbStpNlVhSTlISDVVQWJEYWJjZS9lUGR5NWMrZGFYZlB0RWREblkvckhEZW5zTFpWS1NDYVRDSVZDTUpsTTREaU9PdDFEb2REWWswZmE0WG1lbm91cTFlcUZoVmJkcnB2dEVBR1lPSURiWDBPaFVNQmdNRUNwVk5LRkYrOXpmN2VUeVdTd3NiR0JtWmtaUEhqdzRFSUNESUVzWHBtYm03dFc2a2c3alVhajY3bVVMQUlLaFVKWVgxL0h6TXdNYnQyNmhmbjVlVXhNVEZ5NFBvdkZZaXIyaHNOaGJHOXZvMXd1ZytNNHlPWHlDNEt2U0NUcWNBTEw1ZkxXNDhlUHMxOS8vZlV1Z0N6T0tsTDRuLytjQWVBSDhBckFFNXk1Z1JsdE1BR1l3V0F3R0F6R1dHZzBhaFdaelB6SFltNGJLczBpWkRJTGhFSVptczBhaG9tQ0ZnaUVhRUVBdnBaQ0lidU9YT3JGdjY5Vlk5dmoyM0lHZzhGZ01CaU1ENDd3NTF1SFlwSk1KckcvdjQvZDNWMDZRZG1PUkNLaDd0VmdNSWhDb1RBVzF5R2hVcWtnSEE3ajRPQUFmcjhmQ29XQ2loRmlzUmhPcHhOMzc5N0Y4K2ZQY1h4OERMRllESTdqZXJvbGE3VWFpc1VpS3BYS1VBSXdjYjZRanJ6ejhEeVBVQ2lFZCsvZTRlam9DSVZDb2UvclpiTlpGSXRGQkFJQlNLVlNxRlFxdUZ3dTNMbHpCMTk5OVJWVUtoV3NWdXVGNTVFSjRtYXppVmdzaHBPVEU0UkNvVXZmNzdMUHBsUXFPOXhOSkZZNGw4dWhVcW5RcnRKK2ZZY2Zpa2FqZ1VLaEFML2ZqMEFnQUo3bkVRNkhrVXFsWUxGWUJuNGRnVUJBNHlmN3VicjZ3WEVjTEJZTHpHWnpSNzlqTzZUL2R4QVhPaEdMSkJKSno3aktkcUgrS2pITlpDRkJ0d1VUeldZVFNxVVM5WG9kK1h6K1VrY3VnZWQ1bE12bG9ZOHpRcVZTUVNhVFFUcWR2bFFBYm5jQVgyZHNsc3RsQkFJQmJHMXRZV3RyQ3hhTEJTcVZpcnJ1VGs5UDhmMzMzK1BiYjcrRnorY2JTS3doMzUvSDQ4SDkrL2Z4NmFlZjRxT1BQc0xrNUNUVWFuWFBNVElJSkJiMzNidDNlUFBtemJWRXpXYXppVUtoZ0dnMFNydEtnYzRlWU9ETUVkbkxkU3NXaTJtMC9lbnA2VmdGNEZxdGhrS2hNTEFET0ovUFkzdDdHNjlmdjBZa0VobjU5Z2lGUXBoTUpreE1UTUJ1dC9kZHZEUHFSVFFDZ1FCT3B4UEx5OHVZbnA2K05DcjNNcTdhK3oxS0twVUtUazVPRUlsRTZQNnExK3RqSFZQZElOZVdUQ2FEVXFsMFFRQWVwT2VjZEFDblVxbU83U2V4NlhxOUhzVmlzYU9udVJ2anZPNVdLaFc2S0MyUlNHQnVicTdyK3ltVlNreE9UbUptWmdZdlg3N0UwZEhSMkxZSk9GdHdFNDFHOGVMRkM3amRibno4OGNmNDhzc3ZJUlFLNFhhN0x5VEN1Rnd1MU90MTZoTGYydHBDcFZMcHVNNlJHNENPUDh0a3NsWStuL2U3WEs3LzUvVDA5RnV4V0V4cVVuaWNDYjVsQUFVdzhiY3JUQUJtTUJnTUJvTXhObmcrNDg5bk4vNFh1ZEw1LzlMbzdrSWlNME1nRkFPdEZsb3RXbXYzTStUUHYvemdnMEFFQVVSb05vb281RGFSU2Z6d3YxVkt2aCtialZybC9Ic3hHQXdHZzhGZy9Ocko1WEk0T0RqQTd1NHVKaWNudXdyQUxwY0xjM056Mk5uWkdicHI4aXFrVWluczdlMWhkM2NYTnBzTk5wc053Qy91UDZmVGlaV1ZGWVJDSVJTTHhRN1JwcDEyZDFPdFZodHFjcHZqT0NvQWQrdDNyRlFxT0Q0K3h2cjZPazVPVGdZU3ZValVackZZUkRxZHh1bnBLVktwRkRpT2c5ZnJoVmFyN1JDSTJoM004WGdjMjl2YitPNjc3N0M1dVhsbFY1UkVJcUd1bVhhQmtVUmZ4dU54bE10bHFGU3FEdmZNVFJHQmlRdnl6WnMzK1A3NzczRjBkQVNaVEliajQyUDRmRDRvbGNxK2NhenRET0sydlF5MVdnMmJ6UWFMeGRKVjNHczJtOGpsY2tpbFVwZTZmOGsyWFJZQlRkeTJ0VnB0S0FGWXA5UEJZckhBYURSQ3E5VkNvVkIweEd1V1NpVmtNaGthajVuSlpEcU9yMzRRQWZpcXZjVDFlaDJGUWdHNVhLNnZrN3ZkQWR4ci93eEtxOVZDTnB2RjF0WVcvdnQvLys4SUJBSXdHbzJRU3FWb05Cb0loOE40K2ZJbFhyOStqWGc4UHRCckdnd0dlTDFlUEhqd0FKOTg4Z251M0xtRHVibTVrZlY1bHN0bHBOUHBhenRhVzYwV1NxVVNVcWtVY3JrY0xCWUxQUjhvbFVycWFLOVdxeWdVQ2wzZlR5S1J3R2cwd21LeGdPTzRnVHFjcndycEFCNVVBTTVrTXRqZjM4ZlcxdGJJdTMrRlFpSDBlajFzTmx2ZmhSOEVJaHFPNnIwTkJnUGNiamNtSmlhdTVmNEZ6a1I4Y2sycVZDb2ZUQUFHenM2Vm8reEp2Z3IxZXAxRzlYZHpxYlpmRTN0UktCUVFpOFdRVHFjN0JHQzVYQTY5WGcrZFRvZlQwMU1xUnA1ZjZFUCtqWXliY1VSems2NzNTQ1NDUUNDQVpESUpuVTUzNFhOSnBWSTRuVTRhelQxdUdvMEdqYVluNlFSa1hINzg4Y2Z3ZUR4MEcwbjlCNG1POXZsODhQbDhTQ1FTQTcvZm4vNzBwN3hTcWZ6K2Q3LzdYZUR4NDhmaitsaS9TcGdBekdBd0dBd0dZMncwbTN4ZExGSC9VNnRaemZQVitQK3VNWHdFaGRJRG9iQmI1TnJGSGppQlFJQm1vNHh5NFJDWjVKUC9SeTd6NXYvTDg4WE1lOWw0Qm9QQllEQVlqQnRHcVZTaTBjUWZmZlFSdkY1dngvMVNxUlFPaHdNek16T3dXcTBRaThWajd3b3NsVXJZMzkvSCt2bzZabWRucVFCTWtNdmxXRnBhUXFGUVFDQVFvSkdSM1lRbjRwWWNOaTVYcFZMQjZYVEM1WEoxZFZpVnkyWDQvWDdzN3U0T0xBNmRoK2Q1SEIwZFlYTnpFMGRIUjNDNzNSMWlRclBaUkQ2ZngvSHhNVjYvZm8yblQ1L2k2ZE9uOFB2OVY1NG9KK0tPU3FXNjRBQXVsOHUwKzFVcWxWS1g2VEN4eXVPbTFXb2hsVXBoYzNNVGZyOGZQTTlESUJEZzhQQVE2K3Zyc0ZxdEF3dkF3Qzk5aThNS2lTUWUzZWwwd3UxMncyUXlkZTBBYmpRYVNLVlNTQ1FTQTBVSUU0ZXJRcUhvNlhCdGQ5dGVKcllLQkFJb0ZBclk3WFo0UEI3TXpzN0M0L0hBYnJkVEVaaU1nMHdtUTkzbFZxc1ZqVWFEUm1vT0lnQVhpMFdVeStVcm5SK0krRk11bHp0Nk04OURlcHVWU3VXMUhjRGtmZjErUDFLcEZKNCtmVW9qYUd1MUdwTEpKS0xSNkFVaHB4ZFNxUlF6TXpQNDdXOS9pNisrK2dvckt5dlE2L1VEaTcrdFZndmxjcGt1RkZDcFZCM25IdEovM0s5cmVoaUt4U0tTeVNUUzZUUnF0UnA5TDRWQ0FhUFJDSTFHZzNnOGpsS3BoRUtoQUo3bk96NkxWQ3FGVHFlRHlXUWE2cGk3Q3JWYURabE1CdGxzOWxJQnVGcXRJaFFLd2VmejBZajRVVUpFTWFmVGVha29ScEliQ29YQ1NNUlZwVklKcjljTHI5ZDdZYkZXTzhUTlQrWS9lcVVKRkFvRkpKTkpKSlBKc2NSay83VkJrZzk2TGJJUWk4VzBWN1lYbFVvRmlVUUNtVXltWTZ5U2hCV2RUa2NUSjhnQ3BIYUVRaUVWbXNjbEFCT1N5U1FPRHc4eE56Y0hoVUp4NGJ3ckVBam93cUhyTGphNENrZEhSL1MzVzZQUm9Pa0s3ZWQ5anVPd3RyYUdTcVdDZUR3KzhMVVdnR0JyYTB1UlNDVDA1WEk1WURhYk1UczdlNk5yTDI0U04rZFhJWVBCWURBWWpGOGxkVDZmRUlxay83ODZuL3V5V29uOUI2M2gvditOVXk5QUxORkRJQlJDQU5IUGJ0K2ZVdzViVGJSYWRUUWFGZFJyY1pUeSs4Z2t2disvWjFNdi82bFdUZmsvOU9kaE1CZ01Cb1BCZUUrY2owc0J6L09JUkNMdytYeElwVklYbmtBbUFDY21KbUEybXlHUlNNYnUwcW5WYWpTYTllSERoN2g5KzNiSHhLUkVJb0hYNjBXcjFZSlVLa1c1WE83WlgzaFZ0eVRIY1RDWlRORHBkRjBuQkd1MUdtS3hHSUxCNEZEZG9PZmhlUjZ4V0F6aGNCanBkQnBHbzVGK1ZpSUFIeDRlNHNtVEovanh4eCtwNkhrVkJBSUJWQ29WRlhmYVJRRVNwVzAwR2xHdjEybjA5cWg2aDBlSlVxbUUwK25FclZ1M1VLL1hFWWxFY0hKeWdvMk5EZHk1Y3djZWoyZmcxMnFQaWh3R3JWYUwrZmw1M0w1OW04YUU5eEpyMCtrMFVxa1VLcFhMQTRjR0ZZQXJsY3FsYmx1WlRFYjdHeGNXRnVEeGVPQjJ1Mkd6MldBMEdxRlNxU0NUeWVnNElFN3pmRDRQZ1VBQXZWNC9zRE9hT0VXSDdkb21OSnROMUdvMTJrWGFEOUk3cTFRcVJ6SlpUOFJlSW9iSTVYS2FIREFvQW9FQUJvTUJ0Mjdkd3BkZmZvbTF0VFhvZExxQm4wKzZ6MDlPVGxBc0ZtRTJtN0c0dUFpbjA5bnhIaHpIZ2VNNDZ0eThEaVFDT3BGSW9GcXRVZ0dZeEwvcmREbzZiak9aREFxRkFuUTZIUjBQWXJFWWFyV2FMaVFZSnlTaElKMU85ejJPYXJVYUlwRUk5dmYzRVF3R3h5SnFrZ1VWTnB1dEl5S1lpRlJrTEdleldRUUNBWHovL2ZjRFI0aGZodEZveE5MU0VtWm5aM3NLY2p6UEl4Z01ZbjkvSDdsY0RucTlIbE5UVTNBNEhCMExqRXFsRWc0T0RyQ3pzNE5nTURqUStlblhEbkdnNXZONTZqeHRQLytSSHRuTGVvQXptUXh5dWR3RkFWaXYxME9yMWRKek8zbTlkb2d3VFBwcXh4bURuY3ZsYUpYQ3hNUkUxeTVyb1ZBSW5VNEhuVTRIanVNR1NySVlGZlY2SFQ2Zmo1N25pWEJ1dDl1cENFK3VWYXVycTlqZDNjWHg4VEgyOXZhUXkrVXVlM2xCdFZxVkJRSUIzUi8vK0Vjb0ZBcjgvdmUveDZOSGo1Z0lQQUJNQUdZd0dBd0dnekYyZm81cy9rWXFNL3BxbGNoK1JSLzV6d3JsQklSaU9ZUUNHUVJDTVFRQ0NRUUFtaTBlelhvSmZDMk5Tam1JZkhiOS81cFB2L3gvTStjdmc4RmdNQmlNdnpFdWRBQ1R5Y3B3T0l4RUlvRnl1WHhoTWw4bWs4RnNObFBSNkRyOXM0UFFiRGFwR0hOd2NJQklKQUszMjAzdkY0dkZNSnZORUFnRVNLZlRpRVFpUFNka0c0MEdxdFVxZUo0ZldBQW13b1phcmU3cDlHbnZMTDF1SnpKeERLVlNLVlNyMVE0QnVGS3BJQnFOWW05dkR6NmY3MXFpajFBb2hFYWpnZGxzaGs2bjZ4Q0E1WEk1N1NjRWZwbm83dVVjKzFDSVJDSTRuVTU4OWRWWGNEcWQ4SGc4K09hYmIzQjBkQVMvMzQ5WUxEYlU2N1ZhTFhvYkJxUFJpSldWRmR5OWUvZUNjN3NkNGx3YzFHRTNpQUJNK3ByN0xXcVF5V1JZV0ZqQUYxOThnY2VQSCtQV3JWc3dHbzIwTzdkYnh6REhjVEFZREtqWDYyZzBHblJiQmhHQVNYOTBzVmk4c2dETTh6eDFuZmVpMVdvaG44K2pVQ2dNSGVzK0NDU0tlbGdrRWduc2Rqc1dGaGF3dkx6Y1YveHRIM09OUmdPSlJBTHI2K3Q0OXV3Wk5qWTJ3UE04VmxkWFlUS1pPZ1JnNEd6eEErbXN2cTRBVENLZ3p6c1ZsVW9sekdZekxCWUxRcUVRSGNQcGRMcGo0WWhFSW9GS3BZSkdvNEZjTHU4YXd6OHF5UGRTS0JUNmZ1NVNxWVRkM1YyOGVmTm1MTjIvd0Zuc3U4dmxndFBwN0JDQXE5VXFvdEVvRmN1RHdTQmV2WHFGcDArZlltOXY3OXJYQ1FDd1dxMVlYbDdHN094c1Y3R3UxV29obVV6aTVjdVgrSmQvK1JjRWcwRk1URXpnMGFOSHVIMzdOcTBheU9WeTJOM2R4VGZmZklPWEwxOGlHQXgrOFBqbG13Q0p3ODduODdRVHVmMzgxKzdPN1VlcFZLTG5LUUp4MXBONGRRQmQzZG5uSTZESFNUNmZSeWdVUWpnY1JyRlloTWxrNnZvNGhVSUJuVTVIKzR2Zko2MVdDMzcvbVdlRExFcjcrT09QNFhLNU9yNGJ2VjZQbFpVVitIdytsRW9sN096c0RIek1iVzl2STVGSW9GQW93R0F3WUdGaDRjWXRmTHRwTUFHWXdXQXdHQXpHZTZOV1RmcEZZdTcvS0JYOXJ5UXlnMGNzVmhtRlF2bC9Gb2lrWndKd0MyZzJxNmpYOC85THZab0o4M3pLeC9QWmNLTmV5bnpvYldjd0dBd0dnOEc0Q1RRYURXUXlHY1JpTVNTVFNkaHN0Z3VDS3NkeDBPdjEwT3YxU0NRUzF4WWZCdG1tMDlOVHJLK3ZZMzUrSGlxVmlvcVR3SmtRcU5QcFlMZmJBWnc1TXJ1SmxjMW1rN3F5QmtVbWs5R0kyVzQwbTAwVWk4V2UzWmpEVXF2VnFMdXRXcTNTaVgweStjdnpQUEw1L0xYM09YRUFtMHdtYURTYWp1K1lURGdQc3Ewa1VwdUlkVVF3SkRIY0pIcTBsN0JLSnRXRlFpRkVJaEVrRWdrVkphVlNLZVJ5ZWQ5ZVRZVkNBYWZUQ1oxT0I0MUdRd1ZSSXNDa1VpbW8xZXBMSittSkFFZTJmeGlVU2lYc2RqdnNkbnRQOXkvWlgrbDBHc2xrOGtvUjBOMW9OQnJnZWI3bnVOWnF0YmgxNnhZKysrd3pmUG5sbDdoOSt6WTlUaTdqcWhIRDEzVUFrNzd1V3EzVzlmbU5SZ1BwZEJxaFVBaTd1N3Q0OGVJRmpvK1B4K3FPR3dhRlFnR0x4UUs3M2Q1eG51cEd1VnhHSXBGQUlCQkFLQlRDMGRFUnRyYTJzTDI5alpPVEUwaWxVbWkxMnE3alJTYVRVUmZ3ZFlVWUVoTjhmZ3lwMVdvYWNieTd1NHRhcllaOFBrL0ZmWEtlYUhjQVg5YURlMTNhenlmOVJPWlNxWVM5dlQxc2JHeGNPWnIvTXRScU5TWW5KekU1T2RraEFPZHlPYng4K1JJYkd4dElwOU9JeFdMWTN0N0cwZEhSbFR2YnowTTZwcDFPWjlmamxGUTZ2SHYzRGovOTlCUDhmajhPRHcrUlRDYXh1N3NMcDlNSnRWcU5ZckVJbjgrSHQyL2ZZbTl2NzFvcEZyOG15RUtEYkRiYjlkcE8zTG1YblNPSmtFd1dWNUJ6dXNGZ2dFYWpnVVFpb1dPNTE3WGpmYmhRUzZVU1lyRVk0dkY0WHdlNFdDeUdTcVdDV3EyR1NDUWFldzNJZWVyMU92eCtQNTQ5ZXdhbFVnbVZTZ1dwVkFxRHdVQ3Y4ektaREhOemMzajA2QkY4UGgrT2pvNEdkclZYcTFVRWcwSDg4WTkvaEZxdHh1OS8vM3Q4L1BISE4yNEIzRTJDQ2NBTUJvUEJZRERlSzQxNk1RUGdPWURuSXBGTUxoQ0svdzhJeERJQmhHSUFhTFhxMVdhemttazIrUEhPVkRJWURBYUR3V0RjWE1RQTVBQzZxbUxGWWhIaGNCaUJRQUJhclJacXRicmpmb2xFQW9QQkFKdk5obkE0UExJSjdYNWtzMW04ZS9jT2Ryc2Rack1aOSsvZjc3aGZMQmJEWXJGQUpwTmRFRFFKQW9GZ2FDZUhUQ2FEVENick9RSGJhclZRS3BWUXJWWkhNaEZhclZhUnpXYVJ5K1U2QkMyUlNFVEYwRkgwZm9wRUltZzBHbGdzbGdzTzRGNjBXaTFVS2hVVWkwWGtjam5xYWlKOXdVUjQ1WG1laXNIdG9uczNnYks5bDFJbWswR2hVRkJuSThkeDBHZzAwT3YxTUJnTWRNSzVHeHpIWVdscENabE1CdEZvRk5Gb0ZLZW5wemc2T3NMTXpNeWxFYnlrY3pXZno2TmNMZysxU0lBSTE1ZEZKRmVyVmFSU0tkcWxlaG1rNTdXWEFFeEVhN0svejR0aFFxRVFjM056K1BmLy90L2o2NisveHZ6OC9OaTdHMXV0RnFyVktoVUpyN0pRZ1h5dVhxSjJ2VjVITUJqRWQ5OTloMisvL1JadjNyeEJQQjYvTWE1RnFWUks0N1F2YzhGV0toV0V3Mkc4ZlBrU0wxNjh3TmJXRm9MQklQTDVQRXFsRXBSSzVZWDRXQUlSWFhVNkhSS0p4TFZjcFJLSkJFcWxzcU1IR2pqckhpWUNwMGFqUWFQUm9NZDZ2VjZuNDFJc0Z0TmpWYUZRak5VQlRNUWV2VjdmVjJ3bSs5Ym44NDN0R3FYWDZ6RTVPWW1KaVlrT0FUZ2FqZUtISDM3QXYvN3J2eUtUeWRCRkVhT0tWcFpJSk5EcjliRFpiQjFSM08xa01obnM3T3hnYTJzTHNWZ01wVklKSnljblNLZlRlUG55SmVSeU9SWHd5dVV5ZGUwenpxalg2OGpsY2tpbjB5aVZTbDNIczBna29za0l2Y1o3czlsRW9WQkFQQjVITHBlRHlXU0NUQ2JyNkFEdUIvbmRNbTRYS3JrK2tmSGFDNUZJUksvVEVvbmt2UXZBd0M4aThPYm1KbDBFMGI3UWk2U0QzTGx6QjY5ZXZjTHIxNjhSQ29XR2VvKzl2VDM4MS8vNlg1SFA1NkhUNmJDMHREU09qL0tyZ0FuQURBYUR3V0F3UGhpTlJyVUNnQlhZTUJnTUJvUEJZSFFpQktEQW1RaDhRZG1zMVdxSXgrT0lSQ0tZbXBxNklBQ0xSQ0lZalVZNG5VNGNIUjBobjgrUEpOS3lIN1ZhRGNmSHgzajU4aVh0UGRScXRmUiswdjNHY1J5a1VtbFhvYkE5VG5GUWdZSkVIMTgyK1VvY2ROZWwzY0hhL25wQ29SQUtoUUljeDQzRVlTY1VDbUUwR3VGeXVXQXltYnJ1cjBhamdWZ3NobGdzaGxRcWhWd3VoMncyUzRYZllyRkl4U0N5elpjNWdjL1Q3Z0J1ZC96SzVYTHE3aUhDRW9rZEp4UG5PcDBPS3BXS3hwUXJGQXBNVFUxaGJtNE9sVW9GOFhnY2g0ZUhOT2E2SHdLQkFNVmlFY2xrRXJsY2J1anZrb3lQZm1PSzUzbGtNaG1rVXFtQlhYWmlzYmh2ekNpSk5UOGZBYTFTcVdDMzIvSGd3UU44L3ZubnVIUG56cVZDdzZnZ0VkQ1hSZlQybzkveFJNYmwxdFlXWHI1OGllUGo0K3RzN3NqaGVaNHVqTGhzSExVdmZKREw1WkJJSkpESlpPQjVuaTZzU0NhVHlHYXoxRDNZL2x3aUFNdGtzbXNsRUVpbFVuQWNCNlZTZVNFTzN1bDB3dTEyUTZ2VjBoN2c4KzVzMGtsTTNIampSS1ZTWVdKaUFoTVRFeGV1VGUwUVlmT3FVZVNYUWFMeWlkT2JMQklpNlFPN3U3dlkzTndjK2ZzS0JBSm90VnJvOVhwb05KcWVpNU95MlN4MmQzZXh1N3RMenpmMWVwMG1USXdTaVVRQ2s4a0VuVTRIc1ZoTWt5cFNxZFJZdXBmZkI2MVdpenFBZXduM1JKaTk3TGRFcVZSQ0lwRkFPcDJHWHErSFNDU2lDNXRJbDIyMy9ubnk3MWZwcGg4V0lsUVhDb1crYVFwa01SckhjWkRKWkIrc0w3cGFyZExGZCtROFMrb0tTRHkzdytIQTdPd3N2RjR2OHZuOFpWM0FMUUQwZ2xXdFZ1SDMrL0hIUC80Uk9wME9Nek16OUlILzZULzlwekY5cXI5T21BRE1ZREFZREFhRHdXQXdHQXdHZzNHenNBS1lBMkJHRndHNFdxMGlGb3NoRW9rZ2w4dkJack4xM0M4V2k2bDRhREFZRUE2SHh5NEF0MW90cE5OcDdPM3Q0ZDI3ZDVpZG5jWFMwbEpIUkRKeHNKRUp3UE9RTGx2aTFCeEVBQ1lpWnEvSEVtRldKcE5CSXBGMGRlb05RNlBSb0xISzUvY3BpVVVlUlJ3azZRQzJXcTBkNGdXaFhDN2o1T1FFNit2cjJOcmF3dUhoSVNLUkNPMnZKYkhEM1Z5K1JMd2orMnlRWHQzMmllNzJ6a01pZ0pMSVRKUEpCSy9YaStYbFpkeStmUnVUazVPMGN4UUFmWnhZTEVZa0VzSGUzaDZtcDZmaDhYajZ2ajlaOUJBS2haREpaSVlXakFiNWpLUS9sWWhvbDlFZU1kcnRPeWRSeWVWeStZSUQzV3cyNDVOUFBzSG5uMytPMmRuWjl5YitFaWQxT3AxR05wdTljaXd6T1ZhN2ZlNUdvMEhGcFpzWVYwc1NGQ0tSQ0xMWmJOZCtWb0pTcVlUSDQ0RklKSUxGWXNIYzNCeDhQaCtDd1NEMjl2YVFTQ1FnRm90UkxwZFJxVlE2eEZYaUFqV2J6VkNwVk5jUzJ0cDd2dHVGSm9GQUFLUFJTRVhPYkRhTGFyVkt6d0h0dEl0QzR4U3JTQy9uL1B4ODM0aHRjdnhjRnY5K25lMncyV3d3R0F4VU5HODJtNGpINC9ENy9VZ2tFbU41WDVsTUJydmREcXZWMm5kc3BWSXBIQjBkNGZqNGVLd2lIWW5CbnArZng4VEVCQlFLQlVxbEVrS2hFUGIzOTNGd2NJQjhQaisyOXg4blJHVHMxakV1RUFnZ2tVaG9La2UvYTM4K24wYzBHa1U4SHFkOTBXUmhrMUtwN1BoZGN2NDl5QmgrSHpIUTVEelQ3L29uRkFvaGw4dWhVQ2pHZG13TkF2bnRSZElBSkJJSjZ2VjZSL3FMUXFIQXpNd003dDY5UzZQUCszdzJBYnBvbWNRSjNINnNNUUc0RXlZQU14Z01Cb1BCWURBWURBYUR3V0RjSElRQWxnRjhDc0FGNElMMXMxcXRVZ2R3TjhjRWlRODJHbzFRcTlYdlpXSVNPSnRjajhWaWVQSGlCWnhPSjR4R0k3eGVMNzMvc3UwZ2d1SXdYVzdWYWhXVlNxV253QzBRQ0toVFZhbFVqa1FBNW5tK3F3Qk1YRUNqRUZmYVk1ZlA3NDlvTklwMzc5N2h6WnMzMk56Y3hQNytQdngrUCtMeCtMVS8zM1VnTHUvOS9YM3dQQStQeDNQaE8yODJteENKUkNpWHkvRDVmQkNKUkZoYlc3djB0Y3ZsTWlLUkNQeCtQM0s1M0ZEeHRjMW1renFlK3oydjFXb2huODhqblU0UHZHRGlzbzdKZXIzZTFRRnNzVmp3MFVjZllYVjF0YTlJMW1nMGtFd21FWS9IVVNnVTBHZzBJSlBKcU9nM3JIQXNFQWhRS3BVUWo4ZVJTQ1N1NUx6a2VaNjZ6TG9KRE0xbUU5VnFGZFZxZFd3eHc5ZUI1M25FWWpFY0hoN2k0T0FBSE1kMXBCVzBRK0wwVlNvVm5FNG41dWJtRUlsRUVBd0djWEJ3Z0Znc0JvdkZBcjFlVDEyMzVIZ2xNYklXaXdWcXRScUpST0xLKzZPZlU1L0VPMnUxV3VwT0xoUUtGODRGWktFR2ljUWRGenFkRHJPenM1aVptZWtyZ0JLaGl1TzRrVWRTUzZWU1dDd1dXQ3lXam0wb2xVcncrWHc0UER3Y1creTBVcW1FdytHQXhXTHBtZ1pCYWduaThUaGlzZGpZWXAwRkFnRmNMaGZ1M3IyTHUzZnZZbnA2R2c2SEEzSzVISlZLQmFlbnA5amEyb0pPcDhQT3pnN2k4ZmkxdSt2Zk4yUkJVcmZ4SXhLSm9OUHBZTFZhTDQxaHorZnpPRDA5UlRRYVJiVmFwYUt2VXFta0FuSzMzeThrR1VNcWxYYXR0UmcxL2JyWDI3ZUoxQjY4cjk5K3ZTQng4RWFqa1RyUDJ4R0pSSmljbk1TZE8zZXd1N3VML2YzOWZwOU5pTE5VbkE2cTFTcU9qbzVHdi9HL0lwZ0F6R0F3R0F3R2c4RmdNQmdNQm9OeGM1Z0M4Q1dBdXdCME9ITTlkRUFpTEVPaEVMTFpMSTNwSlFpRlFuQWNCNTFPQjZWUytWNG5BWXZGSXQ2K2ZRdWRUZ2VQeHdPbjB6bVFTTlVlQzBpY2hZT0ljSlZLaGZiQzlrS3BWTUpxdGNKdXQ2TllMRjdaOVFqMGpvQUcwRGRLZVZnYWpRWXltUXhDb1JDbXBxWm9OMnloVU1Delo4L3czLzdiZjhPelo4OFFqOGRwbit1SEZ0dGFyUloxenk0dkwxUHh2WDFzTnB0TlZDb1ZKSk5KK0h3K05Cb05IQjRlVWlHdEc5VnFGWWVIaDlqZjMwY2dFQmk2UzdaU3FYVHRiVDRQY2Y4TzZvWVRDQVEwRnJzWDlYcTlxMlBjWURCZ1ptWUdFeE1UUFYxYWxVb0ZvVkFJbTV1YjJOemN4T25wS1hpZWgxcXR4c0xDQWg0OGVJRDUrZm1oaElkbXMwbjdSSy9xemxVb0ZOQm9ORkNyMVYyUDdXYXppVnF0MXRXRmVsUEk1L1BZM3Q3R0R6LzhBS1ZTaVpXVmxiN25LYWxVU2hmVU9Cd09MQzR1NHRHalIvUzhRMFRNZXIzZUlRRGJiRGE0M2U1TEk4NHZvNWVUbktCUUtHamtlcVBSNkNvQWkwUWlHbEV2RW9uR0p2WVpqVVo2N3UvblFHenZLdTBtRGwwSGpVWURsOHNGaDhQUklRQm5NaG5zN3U1aWEyc0xxVlJxWk8vWGpsYXJoZFBwcEozMzU2blg2emc5UFVVd0dFUW1reG5MTmdDQXlXVENvMGVQOEIvLzQzL0V2WHYzb05Gb2FJZDBvOUZBcFZMQjNOd2NUQ1lUT0k3RDA2ZFBFWS9IeDdZOTQ0Q2tiblRyODVaSUpMRFpiSmllbnNieDhYSGZoVDNaYkJhaFVJZ0t3TzJ2UVp5MDNSYW1FUUZZSnBPOUZ3RjRrTjhYN2NrZUh4TGl6aFlJQkRUNTVieUxXaXdXdytsMFltRmhBUzZYQ3dxRm90OTVRQXJBOUQ2Mi9kY0dFNEFaREFhRHdXQXdHQXdHZzhGZ01HNEdGZ0NmQUhnQVFJOHU0aTl3TmdtWVRxY1JqVVpSTEJZdnVMbUVRaUhVYWpXMFd1MEZBVzdjdEZvdEpCSUp2SDM3RnMrZVBZUEg0OEhzN0N5VVN1V2x6eFdMeFRTcWVkQnRydGZydEFld1hDN1R2dGwyT0k2ajJ4R0x4WkJNSm9mK1hBUVNwOXpOVFRwS0FiaGVyK1BvNkFqZmZQTU5pc1VpN0hZN1dxMFdZckVZL3ZTblArSFBmLzR6RGc4UHIvMCs0NERFY1haemlKTHV5VXdtUTNzdW56OS9Eb2ZEZ1pXVkZSaU5SbkFjQjVGSVJEdDVqNDZPOE4xMzMyRjlmUjJaVEdib09QTmNMZ2UvMzQ5d09OeHpjcGwwZ2tZaWtZRmQxQ0tSaUU3Kzk0SXNHRGdmVVNxWHk2bGpzeHY1ZkI2N3U3dDQrZklsWHIxNmhkM2RYVVNqVWZBOEQ1VktoZVBqWXlyeWViM2VuZzdXOHhCbmJyUFpwRTdRYnRHbUJMTE5KUDViSXBGUWNjOWdNSFIxUHplYlRaUktwWTd2K0taUnI5Zmg4L253d3c4L3dHcTF3dVZ5WFlqUzd3WngrNTNmMytWeUdmVjZ2V00vRWdISzVYSkJxOVZlNjd6QTh6eEtwUkxLNVhKWEFWZ2lrVUNuMDBHajBVQWdFS0JhclhZZDZ6S1pqRG9haDExSU1RZ2N4OEZnTU5EdTFINEloVUxhcnl5UlNFWXVBTHZkYmpnY2pvNXJRckZZeFBIeE1mYjM5OGNTZXl3UUNHaDB2OGxrNm5wOFZDb1ZSQ0lSUkNLUnNVV2s2L1Y2M0xwMUM1OS8vamsrKyt3enVGeXVubytUU0NRb2w4dncrLzFJSnBOanI0c1lKZTNSL3VmUFlXS3hHQWFEZ1o2cnlEV2xHOFZpRWJGWURPbDB1dU14eEFWTUZxYWRoeXhjT3gvTlBpNTZSVkdmaCt5WER5a0MxK3QxbEVvbG10QkNyaUh0Q0FRQ3lPVnlPQndPV0sxV3FOWHFmajNBUkFCV0FyaDUzUUkzR0NZQU14Z01Cb1BCWURBWURBYUR3V0RjREJZQS9BN0FETHBFUDdkVExCYVJTQ1JvTEd5N080WDB4NXJONXZjYUFkMU9PQnpHanovK0NLUFJDSUZBZ051M2IxLzZuUGFJMG1HMnVWQW9JQnFOSWhhTHdlVnlYWERxS0pWS3pNM05ZWFYxRmNGZ0VLbFU2bG9UbzcwbVY4OTM2MTZIUnFPQi9mMTlsTXRsYkc1dXdtdzJvOUZvSUpGSTRPRGdBQ2NuSjlkK2ozR2gxV3FoMVdxN2l2RzFXZzNwZEJyNWZCNDh6eU9SU09ENzc3OEh6L000T1RuQjR1SWk3SFk3eEdJeFNxVVNqbzZPOFBUcFUvend3dy9ZMzkrL2ttc3huVTVUMTkvZHUzZGhOcHM3N2srbFV2anBwNS93L2ZmZkQ3VmZpUmpZS3dLNjFXcWhWcXRSNGE1ZFdDR2lRUy9pOFRpKy9mWmIvT3UvL2l1MnQ3ZnBBb2Rtc3dtSlJFTEZpbncrajkvOTduZTRkKy9lUU1jTTZhbDFPcDBvRkFvUWk4VWRIYzNkUGdQd2kvREFjUnhtWjJjeFB6OFBnOEhROHozSjU3dXNlL05EUVJhcXZINzlHbTYzRzlQVDA3VDM4eW9vRkFyVTYvV08vU0VXaTJHMVd1RjJ1NkhYNjZuejhpclVhalVVQ2dXVVNxV3VyeUdYeTZIWDY2SFZhcW5RMWUxWUlZNTF1VncrY2dGVUxCYkRiRGJEYXJWQ3BWSmQrbmppQUI1SFZ5bEpvSEM3M1JjY3dINi9INEZBWUN5OXV3S0JBQ3FWQ21hekdRYURvZXZuS2hhTFZBQWVSL3l6U0NUQzlQUTBQdi84Y3p4NDhBQjJ1NzNuWTJVeUdSWVdGbkI2ZW9xM2I5OGlIQTVmYTRIVSs2WlNxZEFPNFBPUUpCU3RWZ3VPNC9xZUg2dlZLbEtwRk5McGRNZHJTYVZTcU5YcW5sM1ZSQUFtOVEvalJxRlFRQzZYOTNVYnQxb3QxT3QxV252d0lTbVh5M1MvbnIvdXRxUFZhbUczMitGd09KQktwWG9sdW9nQkdIQzJPSklKd0VQQUJHQUdnOEZnTUJnTUJvUEJZREFZakp2QkZJQlY5SWgrYnFmWmJLSlFLQ0NYeTZGWUxGNFFMa2ovcEVxbCtpQUNjTGxjeHM3T0RwUktKWjJFZFRxZFBTY3VTWnd1NmR3YlpwdUx4U0xDNFRCQ29SQ01SdU1GOFVFcWxXSmlZZ0wzN3QzRHpzN090ZHhmN1NMdmVhRzMwV2lNVEFCdU5wdklaRExJWkRMdytYemdPSTUrNS8zaXJqODBFb2tFVHFjVFZxdTFxd0JjclZhUlRxZHAvMmE5WHNmeDhUR3ExU29TaVFRT0R3OWhzOWtna1VoUUtwVndmSHlNTjIvZVlIZDM5OHBDWXJWYVJUQVl4TXVYTDJHejJWQXNGcUhWYWlFVUNsR3BWSEIwZElRLy9lbFBlUDc4K1ZBUnFES1pqTWFQOW9MbmVSb1ozajR1U0pkMEwzSzVIUGIyOXZEcTFTc2tFb21PK3hxTkJpS1JDQjBISkdhWTlDejJReWdVd3VWeTRiUFBQc1A4L0R6dFlSMVVBQ2I5cGpNek0xQ3IxVjJmUjQ2M1I0OGVnZU00QklOQm5KNmVqalh1OWlyd1BJOW9OSXBYcjE3QmJyZERxVlRpM3IxNzlQc2tYZXNrT2xhcFZNSmdNRUNuMDNYOXpzL3ZlNEZBQUk3amFFZXdUQ2E3c3VPeldxMmlXQ3oyRklCbE1obDFBSk9GQjkwRVlOTGRQRWdpdzdESVpETHFmQjBrOXI5OVc0YnRzcjRNRWdGdHM5a2dsVXBwTEhZNEhNYnA2ZWxZM0w4RTR1NVhxVlJkajhmMkR1NXhpTkJTcVJSZXJ4Y1BIanlBMSt2dGUzNEN6aFpJVFU5UFkyVmxCU2NuSnlpWHkyTnpKbzhhNG96bmVmN0N1VWdnRUVBbWs5SHgxZTgzUmJQWnBEVUI3ZGRYaVVRQ2p1TjZkcjJUQkFWU1d6Rk95T0lDRXBuZWkwYWpnV3ExZWlNaStNdmxNbUt4R0U1UFQ2SFZhbnN1bHBMSlpIQTZuWmlabVVFa0VrRTRITzdtUkJmaHpQMnJIdk5tLytwZ0FqQ0R3V0F3R0F3R2c4RmdNQmdNeHMzQUNjQUdZQ0E3RkhHdEpKUEpDMEt2VUNpRVRxZURXcTBldWJ0cUVFaGM4YXRYcjZCV3E2RlFLUERwcDUvQzYvWDJmQTV4MGd6cnBpbVZTZ2lId3dnR2c1aWFtcm9nQUl0RUlwaE1KaXd0TGVIT25UdlkzOS9IenM3T2xTZTVlN2wvaWV0bTFCR2FoVUlCaFVKaHBLODVMa2hIcXRWcTdkcU5XeTZYa1V3bUwvUXhrampVZzRNRDJsdGRyOWVSeStXUVNxV3U3U0l0RkFwNDkrNGRTcVVTTmpZMmFEOXBLcFhDMGRFUmRuWjJFQTZIaHhMWFNjUjF2N0hLOHp5cTFlcUY3U2VUOUwxb05CcVhDakdaVEFiYjI5dDQ4K1lOWm1abXNMS3lBcjFlVCs4LzN3ME8vT0tHdDlsc3FGYXJFQWdFZmVOTHowZEFpOFZpS0JRS3FGU3FudWNWdVZ4T25kWVBIanpBbXpkdjhQMzMzK1AxNjlkamNUeGVoMGFqZ1oyZEhlcHV0bGdzOEhnOEFNNVNESjQrZllxdHJTMVVxMVZZclZZc0xpNWljWEVSTHBkcjRNNVBuVTRIazhrRXZWNS81WE5PcFZKQkxwZERvVkRvS3V3U0I3QmFyYVp1OFc3SFRMdm9PbWpQK3FDUXJuV0x4ZEoxOFVlM2JTRmpxWmN3ZEJWRUloRjBPaDBjRGdjTUJnTUVBZ0ZLcFJMMjl2YXdzYkdCMDlQVGtiM1hlWWpvcUZhcmU3cE95K1V5NHZFNDR2SDRXQmJ6RVBGN2Vub2FCb05ob09kWXJWYmN1M2NQNFhBWTBXZ1VmcjkvNU5zMUxtcTFXdGRGRVdSeGkwcWw2cnZJaFVDdU5XUnhFbkFtQUt0VUtvaEVvcTduTzVGSTFCRmpQazVJOUx4T3ArdDd2TlRyZGVUemVXU3oyYkVzTUJpR1VxbUVRQ0NBbzZNamVtN29oa3dtdzhURUJKYVhsK0h6K1JDTHhicWR2NFFBNUQvZmhBRCtlckxLUHpCTUFHWXdHQXdHZzhGZ01CZ01Cb1BCK1BBWWNDYitYajV6L2pORUlFc21rN0RiN1JjRU40VkNBYVZTT2RCay9EaG9OQnFJUnFONCtmSWxSQ0lSN2M5MXVWd1h0a2tvRktMVmFxRlFLS0JZTEE0bFRCQlhhVEtaN0Ntd2tEN090YlUxS2pidTd1NE83ZFlsZ3RsNWticlpiSUxuZWZBOC8xZlZvVGhxMUdwMVR4ZGdxOVZDdVZ5bXJ2WHo5eEhIOHpob3RWcFVlUGI3L2JEYjdWUUFqa2FqS0JRS1E0MEY0bGkvVEFSc05wdGQzWmpWYWhYNWZMNW5ielY1ajh0ZVA1MU80K0RnQUh0N2U1aWFtdW9RZ0h1NWMwMG1FMHdtVTkvWHZRNFNpUVFPaDRNNmhXMDJHM1d2SHg0ZURuMThqNXRjTG9mMTlYV1l6V1k0blU0YUhYdDRlSWp2dnZzT3o1NDlRN1ZhaGNWaXdlSGhJVUtoRUZaWFZ6RXhNUUdkVG5lcDhDT1h5MkUwR21FMm14R0x4YTdreXVONW5rWitkeE83cEZJcE5Cb05sRW9sTXBsTVQvZWZRQ0NBUkNLaE1mdWovQjQ0am9QWmJJYlJhQnpJMFVzNmdMdDFoVjhISXNCcU5Cb3FsQldMUld4dWJ1THQyN2NYSFBXalJpYVQ5UlVkSzVVSzB1bjBTQmEybkVjaWtjQmtNc0ZzTnRNKzZFRlFLcFdZbjUrbmtmdC9UUUp3dit0dWUrZjFaUTdkZXIyT1FxRkFlNERKY2RMdWxpZGR0Z1J5UEVra2tyRTdnQlVLQll4R0l3d0dROWZGVllSS3BZSm9OSXFUazVNUDdnQXVGb3M0UER6RTN0NGU1dWZuZXdyQVFxR1FYaStzVm11dmNTc0VJQU1UZ0llR0NjQU1Cb1BCWURBWURBYUR3V0F3R0I4V0lZQUpBQlpjMHYzYkRuRjZrQW4vODVPQ0lwRUlITWZSaWVCUlJCTURvQk9xQW9FQTFXcjFRcnh0TzgxbUV5Y25KN1NyTDVmTDRmUFBQOGZ0MjdjdlRQSWxFZ2tFZzBIRTQvR2hKaTVKcjJ5ZjdqZ0FnRXFsd3VycUttcTFHaktaREZLcEZHS3gyTUR2QTV4TlZIYWI4SzNYNjZoVUtxaFVLbGZxcWYyMXdIRWNyRllyekdiemhmRklla3lMeGVJSDZ5WnNOcHM0UFQxRk5wdWxFZEJYMlJZeURpNXp6OWJyOWE1OXJOVnFsVWFPZGhPS21zMG1mVzQvS3BVS2dzRWc5dmIyc0xLeUFyZmJQZlJuR1NkNnZSNjNiOS91K043Mzl2YjZ1cDgvQlBsOEhtL2V2SUZLcFVLeFdJVFQ2Y1RHeGdaZXZueUpyYTB0TkJvTjZtUTdPVGxCcVZSQ3E5VWFTTHlVU3FWVVhBNEdnMWNTSUJ1TkJvMU83eVlha2dob3Rmb3NIYlZTcWZRVWdFbWZxVWdrR3VtNVNxbFV3bXcydzJReTlSV28ycmRGSXBGQUpwTU43S1llQkpWS0JiVmEzYkVOaVVRQ201dWIyTmpZUUNxVkd0bDdkVU9oVUVDbjAvVmMyRUZTRUpMSjVNaXZGU3FWQ25hN2ZlRHZnQ0NWU3VGMnV6RTFOVFhXeFNIam9GYXJvVmFyZ2VmNUM4NVltVXdHanVNZ2s4a0dFc1B6K1R5aTBTZ3ltUXhNSmhPa1VpazRqcVBmVTZQUnVDQUF2NjhJYUpWS0JaZkxCWWZEMFRmQ25jUmkzNFFZYitLODkzZzh1SC8vUGhZV0ZybytUaWdVd21ReXdlVnkwZjNlNVJvaHhDOFIwRklBZjdzL3RJYUVDY0FNQm9QQllEQVlEQWFEd1dBd0dCOGVNd0RWcFk5cW8xNnZvMWdzSXAvUGQ0MzZFd2dFVUNnVVVLdlZFSXZGMTNLRGtOZXlXcTEwa2xnZ0VDQ1ZTdUg0K0JpaFVLaW4rRnF0VmhFSUJGQ3IxYWd3UVJ4MVVxa1U5WG9kaVVRQ3IxKy94dUhoSWRMcDlGQ2lITS96U0NRU1NDYVRsMzVHczlsTVhjREVuWHcranJnZkpBWlhMQlozVENqWDYzVTY2ZnEzTEFDTHhXTG85WHJvOWZvTGsvR1ZTZ1hGWW5Ia3JyZXJjTjNvVmRJSk9hZ0QrUHg0NW5rZTVYSzU3M1kwbTgxTHg2VkFJRUF5bWNUdTdpNWV2bndKaFVJQms4a0VqdU9vT1BraE9zRGIwZXYxV0ZsWlFUcWRSaWdVZ3MvbnUzRUNNSEFXUS83RER6K2dXQ3pDN1hiVGJTVkNTclZhUlNhVGdWS3BSRGFiSGJqdld5S1J3R3cydytWeVlYOS9IOGxrOGtxTGNVZ1VmTGZqcHowQ3V0VnEwVjdVODVDRkMxS3BGQktKWktUZmcwd21nMWFyN1hEZTlxUDlYRHFxTVNvVUNxSFJhT2cxRC9pbEEvemc0QUNoVUdpczV4K2hVRWhkbzczT0RaVktCZGxzZHVqVWdVSGdPQTRtazZsblB6Y1JTMGxVZGZzMnl1VnkyTzEyVEUxTndXdzJJNVZLZmJDRk9zTkErdFJydFJvNGp1dTRqMFM3RDlveFhTcVZFSTFHa1Vna29OVnFJWkZJb0ZBbzZENDcvMzJSTVV3V1ZJd1R0VnFOaVlrSlRFeE1YUGljN1NpVlNzek96dUxUVHo5RnVWeEdxOVdpKzZoYXJkS0ZhcVJpWUp3dTRYcTlqbmc4am9PREF4d2ZIK1AyN2R2UWFyVmRqdzJ5VUlhNDE3c2NId0owT29BWkE4SUVZQWFEd1dBd0dBd0dnOEZnTUJpTUQ0c1FaODdmb1NhMUdvMEdpc1VpY3JsY1Z3SDRmQWZlZFNiNlpESVpYQzRYUHY3NFkzejU1WmUweXpjVUN1SFBmLzR6ZnZqaEIvaDh2cjZkYzlGb0ZDOWV2RUNwVk1MSnlRbW1wNmVoMVdwUkxCYmg4L253NHNVTEhCOGZEeTFLOER5UFNDU0NVQ2pVMGQvWEM1dk5obzgvL2hpcFZBckZZaEV2WDc0Y3VDdFBKQkpCTEJaZmNIN1dhalhrODNuazgva2JJWEIrS0lnQVlUQVlPa1FnRXUvOWE5ay83UUp3UDJkWnZWN3ZLZ0FUaHkvcGpMNnFlTkJvTkpESlpMQzF0UVdoVUlob05BcXYxd3UzMncyejJVejd0NVZLWmM5TzB2ZUJ3K0hBd3NJQ1hDN1hTUHRlUjBtdFZrTWdFRUM1WE1iR3hnWktwZElGdDY1S3BjTFUxQlFXRnhmaGRyc0hjbG5LWkRKWXJWWk1URXpBWURCQUtCUmVTVmlyMVdwMHdjLzVmbWVaVEVaN2hnSDA3QUFtMXdTTzQwYmVXVXI2VXZ2MVE3ZHozZ0U4aXBRS0VvV3QwV2dna1VqUWFEUVFEQWF4dWJrSnY5OC85aTUxY2w3b05jWWJqUVpLcFZKUElmODZrRVZhR28ybTU3R2V6K2VSVENZaEVvbGdzVmlvWTV4Z3M5bHc3OTQ5QkFJQnZIanhZdXh4MmFPQUxMTHA5cnRCSkJKQnBWSkJvVkFNZE83TDVYSUloVUtJUkNKd09CeFVBQ2F2MWUzMTVYTDVlK2tBMXV2MThIcTk4SGc4ZldzOUxCWUwvdUVmL2dFckt5czBmYUpTcWFCUUtDQ1ZTdEgrNlZnc2hsQW9SQjNQNDZKZXJ5TVlER0o5ZlIwek16TllXbHJxNlRJM0dvM3dlRHlZbXBwQ1BwOUhMcGRydjFzQVFJSXIvRmIrVzRjSndBd0dnOEZnTUJnTUJvUEJZREFZSHg0ZVEzYWF0VThtZDV2OEpEMmxDb1VDTXBrTStYeit5aHZIY1J5bXA2Zng4T0ZEZlAzMTEvQjRQQURPb2pWSmYyc3FsYnBVU0kzSDQzajU4aVVpa1FnbUp5ZWgwK2xRS0JSd2NuSXlzSUI3bm1hemlXdzJpMkF3U0YwbUdvMm1wd05MSUJCZ2Ftb0thMnRydEJkeVVFUWlFWFhQdFU4bzh6eC80d1JPc1ZnTW1Vd0dpVVJDWFhha3U1amN6bmNaRDB1cjFhSmlwa0Fnd01URUJHdzJHelFhellXSTdIdytqMEtoOE1GN0NVZEIrMEtBZmhEbjFYbGhpM1JHOXhLQWgvbE9LcFVLSXBFSXl1VXlRcUVRSmljbk1UazVDWXZGUXNVZ3BWSUp0Vm9ObFVvRnFWUUtrVWpVY1JNS2hmVFA1TDNieDh0NXR5c1pPOFRCU2ZZSGVlM3ppTVZpV0N3VzZQWDZrY2I5amhyU1d4Nk5SaS9jcDFhcmNmLytmWHo5OWRkWVcxdUQzVzd2dUwvVmF0RjkxRDcyeFdJeHpHWXpIQTRIdEZydHRZNjNjcm1NVENhRFVxa0VwVkpKWDBzc0ZsUG5LM2xjTHdGNEhMMjdaQnZrY2pua2N2bEFZbHU3RzNsVVkwSWlrWURqT0JnTUJxaFVLdFJxTld4dmIrUDE2OWRkdjlOUlErb0JlcDBYaVBOL0hBNzRka0ZkSXBGMEhXZnBkQm8rbnc5eXVieGp2QkMwV2kxV1YxZVJTQ1FRalVhSFR1UDRFTFJhTFpvdWNuNWhCSERtaUZVb0ZBTXRQTW5sY2dpSHd6ZzlQVVc1WEtibk5ISXNuVTlrZUY4Q2NIdU12TkZvN0h1OGFMVmEzTHQzRC9mdTNVT3IxUUxQODZoVUtzamxja2drRW9qRllvaEdvemc5UFVVZ0VLQ0w1MDVQVDVGSUpLNzFPN0VYbVV3R0d4c2I4SGc4c0Znc1BRVmc4anR6WldVRnNWaU1MbmI1R1NIT3RFd0ptQUE4RkRmM2lzdGdNQmdNQm9QQllEQVlEQWFEOGJkQkUwQVpRQTNBd0JZbzRnRE81L08waDdkOThwUEVQQ3FWU3RxQmQxV0hsVWFqZ2RmcnhlenNMR3cyRy8xM2s4bUV1M2Z2NHVUa0JJZUhod04xNmhZS0JSd2RIU0dSU0VBdWw2TldxeUdYeTExYk9BMEdnM2p4NGdVY0RnZFdWMWRoc1ZoNlBsYXRWc05vTkVLdFZnL2xpaFNMeFZBb0ZGQW9GQjJUL0xWYWpYYTYzb1I0VzcxZUQ2UFJDSlBKQkkxR0E2VlNTWjFwN2VKbEw3R0NpRmxFS080RmNiaVdTaVVJaFVMY3ZYc1hrNU9UVUtrNjA4eDVua2MybTBVMm03MFIrK2U2RE5KZDJxL0h0NzJuc1Y2dlgwczhhRGFiS0JhTFZCd01oVUxZM055azBhZEVsSkpLcFpESlpGUUFsTWxrVUNnVVZMUWovMFpFNEhZeHExNnZkd2hCNU55aTArbGdNQmlnMCttZzErdjdkcCtTODlDSGpxUytLbTYzRzU5OTloa2VQMzRNaDhOeDRYN1NjZDFxdGNCeFhJZHowR2cwMG9VUjF4R0FDNFVDWXJFWVVxblVoZkduVUNpZzFXcWhVcWxRclZhNzd1ZHg5ZTRDdnl5T0lmM3dsMEVXS0kxeVc4aWlCT0xNamtRaWVQSGlCVjY5ZW9Wa01qbVM5K2lIVENicnVRZ0NBSTNnSGNjaUdOSkhTeFlvbmY4T1dxMFdjcmtjQW9FQVZDb1ZKaWNuTDd5R1VxbkUvUHc4Q29VQ0RnNE9FSXZGRUlsRUJxNUkrQkEwbTAxVUtoV1VTcVd1aTJsSUNvcGFyY2JwNlduZjF5SU80TlBUVTFRcUZicElBUUNObVc3dkV5WUNjTC9JNytzaWtVamdjRGpnOFhoZ3RWb0hqck1HZmpuR2lEUGViRFpqWW1LQ3hzbm5jam5rODNucWtuLzY5Q25ldlh0MzNubDdiWXJGSW5aMmR1QjBPbkg3OXUyZVhjQXltUXd6TXpQNDZLT1A0UGY3Y1hKeTByNm9VSWl6K0djbG1LWTVGR3huTVJnTUJvUEJZREFZREFhRHdXQjhXSm9BRWdEeUdGSUFKajF1L2R4ZVJBaTZhdlFvY0RhSmFqQVlvTkZvTHJ5RzArbkVyVnUzOFBMbFMrenU3ZzdVcjFxdjE1RktwYTYwTGIxSXBWSjQrZklsOUhvOTdaTHJKa1MwV2kyVXkyV2swK21oQlZ1SlJBS2xVZ201WE40eDRVdEU3QThoY0NvVUN1cDQ0emdPS3BVS0pwTUpGb3NGVnFzVk9wMk9qZ0VpOEJIbkpuRUhuMThjY0prQVRCNWZyOWRSclZaUktCUWdFb25nZERwaHM5a3VUSWFYeTJYcVBpb1dpMlBmSitPRWlKL0VWZFpMMEd5UGVUNFB6L01vRm90OU82T0pBM2RRaUJCY0xCWVJEb2Q3UHE1OUVRTnh4NUdiWEM3dkVJREplT0Y1L29JQXJGQW9ZTGZiYWF3bjZaL3RCUkdSUjkxN09tN0k5ejB6TTRQNzkrOWpmbjYrcXdoVExwZHBETDdUNllUSDQ2SEhqMUtwcE1jbzJaOVhnY1JTSjVOSm1NM21qdU5NS0JUQ2JEWmpjWEVSMVdvVlJxUHh3dk5KUiswNEJPQjJGL2tndEF1V28rcFBiVFFhS0JRS0NBUUNXRjlmcHozdmZyLy92WnlYMjgrbjV5SFhuVXFsTWpaWGJic0R1TnU1bzF3dUk1VkswZlAyZVVRaUVYUTZIZWJtNXZEbzBTUEU0M0g2bkpzS0VZQ0x4U0o0bnI4d2xzUmlNZFJxTlF3R0E4UmljYy96TFhDV3BrQTZnQ3VWQ3YzZDFHdzJVYTFXVWExV3dYRWNmUTl5bmh5bGkvMDhLcFVLQ3dzTG1KK2Y3M3BNRHdQNURXQXdHRHIrUFpWS1lXWm1CaXFWQ2dLQkFCc2JHOGpsY2lNYnA0MUdBN0ZZREllSGh3Z0dneWdVQ3VBNDdzSnhJaEFJWUxWYXNiS3lnamR2M3VENTgrZmRCR0FPekFFOEZFd0FaakFZREFhRHdXQXdHQXdHZzhINDhNUUF4SEhtQXU1ZDhOWkcrOFJuclZhNzRBQVdDb1ZRS3BYVUFYb2RBWmc0cTdwTjFPdDBPc3pPem1KNWVSbjcrL3M0T2pyNklDSmZxVlRDN3U0dTFHbzE3ZWcwbTgwWEh0ZHNOcEhKWkhCNmVvcDBPdDEzUXZnOHBCT1FDR1dFU3FXQ2REcU5kRHI5WGdWZ3VWeU94Y1ZGUEhyMENBc0xDekFhamRTUlJBUmh1VnhPSjZoSjNDKzVFYkd2bXp1OFc1d21nVHkrMld5aTBXaWdWcXRSb2V0OHJDaHc1bndqKzJmUXZ1V2Jpa2drR3NoQjNtZzBlZ3JBcERPNlVDaDB2Yjg5SG5lUUJSWERRT0s0U2RRbmNZS1RCUUh0OGVCRXpHbzJteDB1UUNLS2Vqd2VpRVFpek03T1FxMVc5M1F5azY3aVFxRnc0eU5sejZOUUtEQTVPWW1scFNWTVQwOTNIZC9BV2N6cDY5ZXZrVXFsc0xxNkNwUEpSSjN3UXFFUWVyMGVHbzBHY3JuOHlzZEFzVmhFTEJaRElwRkF0VnE5MEVIc2REcngxVmRmb1Y2dmQzVXBqMU1BN3JmZ29SdGtmQkdYK1NnNmdHdTFHc0xoTUw3OTlsdjQvWDZrMDJtc3I2K2pWQ3BkNjNVSHBWcy9QS0haYktKUUtLQllMQTUxelJrVTR2WWtDNVRPbjVmSWNVek9QWmxNQnRWcXRldGlCcHZOaHM4Kys2ekRjWDVUT2Y4NzZQd3hJUlFLcWZ0VnJWWWprOG4wSFdmSlpCS0pSQUxGWXBHZUQwbVVjclZhN1hBWnQ1K25SN1dJNFR3Mm13MnJxNnU0ZmZ2MkJlRjJWQmdNQnR5NWM0ZU9INGxFZ3VmUG40ODBEcG9jbTRlSGgvRDcvZkI2dlYzVEloUUtCVHdlRDd4ZUwreDJPektaREZrd0l3QWd3OW52NC9IczdGOHBUQUJtTUJnTUJvUEJZREFZREFhRHdmandaQUJFQUJRQmFIQTIyZFdYUnFOQkl5VzdUU2dMQkFMSTVYSXFBbDRuZXJSOWN2OThIS1JBSUlERllzRzllL2NRRG9kUkxCWnhkSFIwNWZlNnpqWm1NaG5zNysvajZkT25zRnF0K09pamo2RFZhaTg4bHVkNU9qRnNNQmhvbC9GbEVBZHd0d2pvVENhRGREcjkzanFBRlFvRnBxYW04TWtubitBLy9JZi9nTHQzNzhKa010M0lpRjJoVUVoZFdCcU5Cb2xFWWl3aXlQdEFKQkxCWUREUVBzWitmWi9ubzVNSmxVb0ZtVXdHMld5MjYzZ1JpVVJRS3BYZ09BNjVYRzZzcnRsR28zRWxVVllxbFVLbjA5SEk0L085eiszRTQzRnNibTdDNy9mZm1JN3NRZEhyOWJoejUwNWZBWWJuZVp5Y25PRHAwNmNJaFVLMFozeHljcElLcmQwV2pneExQcDlIS0JSQ0xCYnJldnpvOVhybzlmcWV6eWZiY3RYdnZCOGtnanlYeThGaXNReDB2V252bVI0RlBNL1RsSUhOelUzd1BEL3lPTnVyVXEvWE8yTGZSNDFBSU9pSTllKzJUOGw5cVZRS096czdVS2xVbUo2ZXZ0Q1BLNUZJTURzN2kyUXlpZlgxZFJ3ZUhpS2J6ZDdJS0dnaWFsZXIxYTc3VlNRU1FhdlYwZzd5eTV5dDVYSVoyV3dXbVV3R0Vva0V0VnFOTG9CcE5Cb2QrMkNjQ3lxQXMrTjFZbUlDS3lzcm1KNmVobEtwSFBsN0VEUWFEVzdmdmcySlJJTFQwMU5zYm02T3ZBODRrOGxnZDNjWEd4c2IwT3YxUGVzQzFHbzEzRzQzdkY0dklwRUkrWDBtQkNERm1RaDg4MzdrM0dDWUFNeGdNQmdNQm9QQllEQVlEQWFEY1RNSS9ud3o0bXlTcXk5azRwTjBDcDRYaVVnOG9Wd3U3OW9KT0N3a0ZyZ2JXcTBXOSs3ZG93SkZPQnorWUU3UDA5TlRmUFBOTjFBb0ZOQm9OUGpvbzQ4dWRDTnJOQm9zTEN4UUYvRHIxNjhSalVZdmZXMlpUQWF0Vm52QjdWaXIxWkJLcFdpODV2dkFicmZqNGNPSCtPS0xMM0QzN3QyK25jY2ZHcFZLaGNYRlJXUXlHWnljbkNDWlRMNlhUczV4SUpGSVlMVmFNVFUxQmJQWjNGY0E3blpjQWhlZG5OM2VnL1JXeHVQeHNYU0dqZ0tkVGdlYnpRYWRUdGRUL0szWDY5amQzY1czMzM2TDlmWDFhem1hU2VjbWlia2x4elZ4cTVORk1jVmljV1FDcDgxbXc5cmFHdTdjdWROVlhHMDJtMGdtazlqZjM4Zm01aVlDZ1FCOWpzbGtnazZuQTNEMm5aS0k5cXVPL1V3bWc4UERRd1FDZ1N2dFIrSkNUYWZUSTNmRjVuSTVuSnljSUJRS3dlbDBEaVJXRWJmNXFBUmc0dFRNWkRMSVpESWplYzFSVWEvWGFRVDB1SzRSUktqc2RhMG12d1dDd1NDaTBTZ3FsUXJVYWpWY0x0ZUZ4MG9rRW5nOEhxeXNyR0J2YncvYjI5czNicDhDb0ZVRTUyUHFDV1R4a2Nsa2drYWpnVWdrNm50dUlBdkp3dUV3bXMwbXl1VXkzWmZuOXlsSldlRTQ3bG85N3QwUWk4VndPQnlZbTV2RDNOd2NUQ1pUeitPay9YdS96bllvRkFyTXpzN0M1WElOMVRVOEtQbDhIdHZiMjlUaDJ5MmxBRGo3bmVWMnU3RzB0SVJBSUVDcU9nUUFKRGo3YmN3MHpTRmdPNHZCWURBWURBYUR3V0F3R0F3RzQyYmdCL0FhZ0IyQUU1ZTRITWhrZDYxVzYra0F2c3dSTkNxSVUrWGV2WHZZMjl1RDMrL0h3Y0hCQnhHdXF0VXF0cmUzSVpmTFliUFpZREFZNFBGNDZNU29VQ2lFVHFlRFFxR2dFOEV5bVF5dlhyMUNMQmJyRytFc2s4bWdVcW1nVXFrNkpscUphNmhRS0x5M2psT0h3NEcxdFRYY3ZYdjMydDJBNDRiak9Nek16S0JTcVdCOWZSMTdlM3ZJWnJOL2xTNWdtVXdHbTgyR3ljbEpHQXlHbnNJbk9TNjdqWWRTcVlSSUpFSkZtUE9RL3U1dVVhNDNCYTFXU3lmeWV6bGptODBtVXFrVU5qWTI4UFRwVXh3ZEhRM3NBQ1lkeFhLNUhBcUZBbXExR2h6SFVRZCtlLzh5RVlDSnlKYkw1YWdJbU12bFVDZ1VydVJlRklsRWNEZ2NXRnhjeE9Ua1pGZFJwRktwSUJ3T0l4S0pvTmxzUXFsVW90bHNJcC9QZDN5M0Vva0VMcGNMcTZ1clVDZ1VIZnVCQ0hZa05wem5lVlFxRlpUTDVRNnhxbGdzSWhBSTRQRHdFT0Z3dUd2ZmRpOGFqUWFpMFNoOFBoOUNvZERJWS9vem1ReTJ0N2N4TlRVRmw4dUZtWm1aUzUvVExsejkyaUZSK2NSUk9tckkrT2wzM2lFTEorTHhPSUxCSUtyVktpWW5KMkV5bVM1RUp3Tm5ydENWbFJVRWcwR2swK20vU2dHWTdPdGhPdFVUaVFTMnQ3ZFJLQlJRcVZRZ0Vvbm9ncnZ6WGVoS3BaTEdKbzhTblU2SHUzZnZZblYxRlE2SG8rZnJWNnRWbko2ZUlocU5vbHd1UXlxVlFxUFIwTjhvSkdaZEpwTU4xRlZNbmpPTzZ3NUpTbGhmWDhkSEgzMkVsWldWcnVNT09GdDRjK3ZXTGV6dDdXRi9mNS84TGhQOWZMdVpGOFViQ2hPQUdRd0dnOEZnTUJnTUJvUEJZREJ1QmtjQS9qdUFLUUFXWE9JQ2JqYWJWQUR1TnZGSkhNRG4zWEpYcFo4RG1PRHhlUER3NFVORUloRlVLaFVjSHg5ZjZ6MnZDcy96Mk43ZXhoLys4QWNvRkFwOC9mWFhtSjJkcGZlVGVPeTV1VG5JNVhJWWpVYlliRGI4OU5OUDJOcmE2aWxjRXhlZlVxbWt6azhTLzV6SlpONnI2NW5qT0ZpdDFyNHUxSnNDY2ZucGREcFlMQllZREFhRVFxRy9TZ0ZZclZiRGJyZkQ1WEwxakxBRWZvblo3WGJNVkt0VlJDSVJ4R0t4bmdLd1dDd2UyMFQ4S0pETDViQllMSEE2blYxajFvRXp3ZExuODJGM2R4Zkh4OGNEOTJQcmREck16ODlqYm00T0V4TVRNSmxNMEdxMXRNKzYxNklXY2s2c1ZDckk1WEx3K1h4NDkrNGQxdGZYRVE2SGgzWUZhN1ZhMk8xMk9CeU9ubzdXVXFsRUkrU1hscFk2T3BIYnQwK2hVT0R1M2J2Z09BN0paTEpqWEJCeHFWUXFJWlBKSUpGSUlCUUs0ZkR3RUNjbkp4M2JuVXFsc0x1N2kxZXZYa0d2MTNlYzEvcHhjbktDNTgrZjQ4MmJOL0Q3L1NQdktzL2xjdGpZMklCT3A0UGRib2RHbyttYlNrQTZ4SDlOSXJCSUpPcmJBZHlyUm1FVUVBR1lSTTkzMjU5RTNLdFdxd2lIdzJpMVdwaWZuNGZaYk1iYzNOeUZNYTVTcVhEcjFpMWtzMW5zNysvRDUvUGR1QTUzY3V5VXkrV3UxKzF5dVl4ME9vMWtNb2w4UGovUU9TQWFqV0pqWXdPMVdnMTJ1eDFxdFJxdFZndWxVdW5DZTVBRktxTVdnTDFlTDc3ODhrczhmUGl3Yi9kdkpwUEJqei8raUo5KytnbXhXQXdpa1FnY3gwR3YxME9yMWNKZ01NQm9OTUpxdGNMaGNNQnF0ZEp1OG02azAybms4L214WFp1ejJTeU9qbzV3ZEhTRWFEUUtsOHQxNGZlTFFDQ0F5V1RDd3NJQ1BCNFBsRW9sY3JtY0FHZkNyeGhNQUI0S0pnQXpHQXdHZzhGZ01CZ01Cb1BCWU53TVlnQytBL0FWZ0k4eFFBejBaUTVnNHY0UWk4WFhFb0RiM1V2OUpsQVZDZ1dXbDVlUlRDWVJpVVFRRG9kSExqUU1TajZmeDZ0WHIyaHZyMXF0dmlDV3F0VnFMQzR1UXEvWHcyZzBRcVZTUVNxVlltOXZEL2w4L3NKRWZic0FUUFpuTHBkRElwRjRyKzVmNEV4RXpPZnpLSlZLUFFXNG0wYXoyYVJ1VHFsVU9wUUxrWFF0a2doUEVuMytQcEZJSkxEWmJMRGI3ZERyOVgzRjJYNUNENGtaSmFJRWNiQVNaRElaZERvZDdVbThUbXp5dUJDTHhkRHI5VDNkZzgxbUUrbDBHZ2NIQndnRUFnTjkxMUtwRkZhckZVdExTM2p3NEFGV1YxY3hOemNIcTlVS3RWbzljRjlzcTlWQ3BWTEIwZEVSSmlZbW9GS3A4UFRwVXdRQ2dZSEZON0ZZREx2ZERwdk5CclZhM2ZOeHpXWVRVcWtVVTFOVDhIcTkwR3ExME92MU1Kdk5IZnRGTHBkallXRUIwOVBURUFxRkhlY2hFbDJkeitlUlNDUVFEb2R4ZUhpSWQrL2VZWE56RThmSHg4aGtNcWpYNjZqVmF2RDVmUGp1dSs4Z2tVakE4enpNWmpQZE53S0JnSXFyWkJGQ05CckYyN2R2OGQxMzMyRjlmZjJDQUQwS0twVUtnc0VnWHI5K1RjK3pLeXNyTUp2TmZRV3lYNFB3U3lBQ2NEZmFCZUJ4ZmVadVBiWHRpTVZpbWl6UWJEWVJEb2Z4NDQ4L3dtYXpRYS9YdytQeFhIaTh3K0hBclZ1M3NMUzBoTzN0YmZqOS9wSDNSMStIOWc3Zzg5Y0RjcDROQkFMdytYeElwOU9YYm50N0pMbFNxWVRWYW9YQllJQktwWUpJSkxydzNZbkZZaWdVQ3Noa01naUZ3bXVMK3lLUmlFYklQM3o0RUxPenN6MWR1ODFtRTZGUUNOOS8vejMrK1ovL0dlRndHTURaZFVxbjAxSGgxMjYzdysxMlkycHFDaDZQQjVPVGt4M0hwVUFnQU0velNDUVNlUG55SmZiMzk4ZDJ6V20xV2tnbWt6ZytQc2JoNFNHMFdpMk55VzlIb1ZEQTRYREFack5CbzlFZ0dvMlNIdUNidmRydEJzSUVZQWFEd1dBd0dBd0dnOEZnTUJpTW0wTU93QW1BSWdBTmdMNXFSN1ZhcFoyQzNUcUFSU0lSeEdMeHRSMmlQTStqV0N5aVdDejJGZDFFSWhIc2RqdFdWMWV4czdPRHc4TkQrSHkrRHlZQ1I2TlJ2SGp4Z2pwMlAvbmtFMHhOVFhVOFJpZ1V3dUZ3UUN3V1E2UFJ3T2wwNHZ2dnY4ZkxseS9oOS9zN0hpdVZTbWszS3dEcXBJcEVJaWdVQ3UvdGN3RkFNcG5Fd2NFQmxwYVdZTGZiMyt0N1g1WDJhT05oSEZNYWpRWWVqd2R1dHhzcWxRcjVmQjUrdng4bkp5ZnZiYjhUUVhCdWJ1NVM5eTl3SmdEM2NnQUR2empIVTZrVVNxVVNPSTZqOTZuVmFreFBUMk4yZGhZK253K3BWR3FrbjJVVVNDUVNhTFZhR0kzR3JxSnNvOUZBSXBHQXorZEROQnE5TlBwWklCQmdabVlHWDN6eEJSNDllb1Q1K1htNDNXNVlyZFlydWFBbEVnbVdsNWNoazhtZzBXakE4enh5dVJ6UzZmUkF6MWVyMVZTQTZQZGRLNVZLVEV4TVVFR0Y0empxM201L25rQWdnRUtoNlBsYUtwVUtScU9SaWpWZXJ4ZUxpNHZZMzkvSDA2ZFA4ZlRwVS9qOWZ2QThqMWdzaHFkUG45TGp3RzYzUTZGUVVLR0lMTmdwRm92STVYSTRQVDNGOGZFeGpvNk9FQXdHeHlaQXRsb3QrUDErL1BuUGYwWThIc2ZoNFNIdTNyMkxsWldWQzI1Z0lyU2RGNjcvbXVuWFowemM2VHpQajhVQkRIUzZxcnNoazhtZ1ZxdWgxV29oRm91UlNxWHc5dTFidUZ3dXpNN093bUt4ZEIyZk5wc050Mi9meHY3K1BrcWxFazVQVDhleS9WZWh2UXJqdkxoYnE5V1FUQ1p4Y25JQ244K0hmRDUvNmV0SnBWSzQzVzU4L1BISGVQRGdBV3cyR3oybXlTS2tkZ1FDQVZRcUZUaU9nMXd1djNhM3R0VnF4U2VmZklMSGp4LzNGWDhialFiaThUanRaMjcvcmNMelBFcWxFcUxSS0lMQllNZWlGSXZGZ3ZuNWVTd3VMbUpxYWdwR294RVNpUVRKWkJJYkd4djQ1cHR2OE9yVnE1Rkh4TGRUTEJaeGRIU0U3ZTF0T0oxT2FEU2FydWQ0a2lKZ3RWcEpiTDBJekFFOE5Fd0FaakFZREFhRHdXQXdHQXdHZzhHNFdaUUFGQUMwY0lrQVRPSk9lNG15UkFTK2J2d3p6L1BJNS9QSTUvT1hDamt5bVF3dWx3dHJhMnNJaFVLbzFXb2ZMQW9hQUU1UFQvSEREei9RaVhHeFdBeWJ6WFpCZ0NUUnhFNm5FeWFUQ1J6SDRjV0xGemc1T1VHcFZLTGlCQkV3Z2JPSnpJT0RBeHdlSGc0MHVUeEtvdEVvWHIxNkJhdlZDbzFHQTRmRFFiL3I4M0hkN1lJQStYZnkzL2F4MFUrQWFYOWN1OURSTHVRQXYzUXRkbk9kaTBRaVNLVlNTS1hTZ1JZbENBUUNPbUY5Nzk0OXpNL1BRNmZUSVpWS1lYdDdHNjlldmNMZTN0NVlISTNua1VnazhIcTl1SDM3Tmx3dVYxOVJrb2c5bDduOUNvVUNZckVZMHVsMGg2dGNyVlpqYm00T2ZyOGZiOSsreGNIQndjZy96M1VoYnZoMjRicWRlcjJPZERxTmFEU0tYQzdYZHorSXhXS1l6V2JjdjM4Zi8vaVAvNGlQUC80WUdvM20yZ3RYeEdJeDV1Ym1vRktwRUF3R2NYUjBoRUtoTUpBTFU2bFV3bUF3VUxHc0Z4ekh3ZVB4b05WcWRmU01ubmQxRDRwTUpxUFI3dlB6ODdoOSt6YnNkanZ0SVNVeHZFZEhSMGdta3pnOFBJVEpaS0tkbjZRTHVWS3AwQVVHNlhRYXhXSnhiUEhEN1pUTFpXeHRiZUgwOUJUcGRCb2lrUWdURXhOZDQ2RDdDYVovamZRVFg0a29QMDRCbUhSSTkxcDRvbEFvWUxGWVlMRllJSlZLMFd3MkVZbEU4TzdkTzl5NmRRc09od016TXpNWHptMEtoUUtMaTR1MDN1Rm5OK1pZUHNPd3RIY0FuMDlDcWRmcktCUUtTQ2FUaU1makF5MUVVeXFWbUp1YncxZGZmWVdQUHZxbzY3WHVQQ1FWNUxveDBBcUZBcmR1M2NMWFgzK050YlcxcnM1WVFyRll4TTdPRGw2K2ZJbFFLTlQxTVkxR2czWTNCd0lCQ0lWQ3lPVnllaDFiWGw2R3crR0FUQ1pET0J6R2l4Y3Y4UHo1Yy9qOS9vRzcycTlDdlY1SElCREF6czRPbHBhV2FDckNlVVFpRWYxTmRuUjBKQ2lYeStKbXN5bkRKYitMR1owd0FaakJZREFZREFhRHdXQXdHQXdHNDJaUkFWQUcwTUFsVGdjeTBkK3JyNDBJYzROR3AvWmlVQWN3UWF2VlluVjFGYVZTQ2VsMEd2RjQvTDA3WkFuTlpoUEJZQkJQbmp4QnM5bEVxVlRDNDhlUHNieThmT0d4WXJFWVUxTlRFQWdFME92MW1KcWF3dlBuei9IcTFTdEVvOUVMazh6cGRCcWJtNXZZM054RU5wdDlueDhMMld3VzYrdnJFSXZGS0pWSzhIcTlVS3ZWVkNnaUloZnBoV3dYQmNoOVJLUnFqNDA5LzI4RU1vNUl6T241bTF3dWgxS3BwRzRqdlY0UHFWVGFzYzN0RHVCQnhEMlZTb1Y3OSs3aDcvN3U3N0M2dWdxNzNRNmxVb2xpc1lpRmhRVzQzVzc4NFE5L3dKTW5UOGJxV0FMT2hEbXYxNHVWbFJVNG5jNit4OU9nQW5DeFdLU0NpdEZvcE80N2lVUUNoOE9CNmVscG1FeW1rVVNMamhxWlRBYXBWTnJYb1ZZc0ZwSE5abEVxbGZwdXY5Rm94SjA3ZC9EdzRVUGN2bjBiZXIxK1pOc3BGQXBodDl1eHVMaUlwYVVsR2s4L1NCUXNHZlA5eEg2eXlLYmJ2MTkzdTBrNndhTkhqMUNyMVZDcFZKQk9wNUZPcDlGcXRaREpaSkRMNWFCVUt1a3hKUkFJNkRGZktwWEdLdVQwb3RGb0lKbE1JcDFPbzFRcWRkM1g3VEhWTjBWTXZDNzl4TmYyR29WeGRRRHpQSTl5dWR6elBSUUtCVnd1Rit4MmUwYzgrZEhSRVo0OGVVTGpqazBtVThmelNNVDUydG9hM3IxN2g2MnRyZmUrNEtrWEpBSzYxKytnZG9GNEVEaU9nOFZpZ2N2bEdsalFKUXN2cmpPT1ZTb1Y1dWJtOE9qUkl6eDgrQkFURXhOOUY1NGtFZ2s4Zi80Y1Q1NDh1ZFNSVFg0SGtQUEMxdFlXc3Rrc2pvK1BvZFBwSUJhTGtjbGs0UGY3RVFnRXh0Yi9TMmcwR2dpSHc5amYzMGNzRnV0NVBCQUIrT2VFQlVFaWtaQlVxMVU1bUtZNUZHeG5NUmdNQm9QQllEQVlEQWFEd1dEY0xLcjRSUUR1T3dOSmhLWmVZZ1lSOHE0clJ0UnFOUlFLaFlFY3dNQ1plREU1T1VrNzZrS2hFTmJYMTk5N1p5dWgxV29oR0F5aVhDNGpsOHVCNTNuSVpESjRQSjZ1azd3ZWp3ZDJ1eDJUazVOd09wMVFLQlE0T0RpQVRxZERKcE5CSkJKQnM5bWtqaG5TR2Z3K0lmSFR0Vm9Oc1ZnTWJyZWJ4am1TQ1c4eStkMGVFMDcralFnVlpIRUFtU1J1TnBzZC8wWm9GM3RKSENiNXMwUWlnVXFsZ3NQaHdNTENBbVpuWjZIUmFDNXNNM0VHaThYaVMyTjlCUUlCekdZekhqeDRnSC80aDMrQTErdWxydUpXcXdXdjF3dXoyWXgwT28zdDdlMnhDOEE2blE2VGs1T1ltWm1CWHErL1ZBQW10MzZpUUM2WHc4bkpDUUtCQUNZbkp6dmlWem1PZzlsc2hzRmdHQ3BhOUx3d0w1VktJWkZJSUJRSzBXcTFhRjltdFZxOTFrVC9aUzd1VnF1RmFyV0tRcUdBYXJYYWR6K1F6c3RSaTcvdDIySzMyN0d3c0lEajQyUEU0L0ZMQmVCS3BZSlVLb1ZNSnZQQnpsc0VoOE9CeDQ4Zkl4YUxZV3RyQzVsTWh1N1Back9KUXFId3dSYlk5RUt0VmtPajBkRDQzUE9RODgxbFVlbC9UZlE3NWtsdmViVmFIVXVITHVtOUxoUUtLSmZMWFVVMXFWUUttODJHNmVscFRFOVBJeEtKb0Z3dUk1Vks0ZlhyMTdCYXJaaWVub1plcis4NHRvVkNJZlI2UFdabVpyQzR1SWgzNzk1aGUzdjdSblFCdHd2QTVKcEh6czN0aVJQOXhOUjJoRUloZUo0ZitIaHF0VnBJcFZMSTUvTlhQaytJUkNKNHZWNTgrZVdYK09TVFR5NWNDODVUS3BXd3ZiMk5wMCtmWW5OemMramZIanpQdysvM0l4UUswV3M5V1RUMlBoWWFOWnRONUhJNWhFSWhKQklKbE12bEM0dkZBTkNGZUc2M0d6YWJUWEI0ZUNpcFZxc0tNRTF6S05qT1lqQVlEQWFEd1dBd0dBd0dnOEc0V2RSdzFnSE1BN2cwN3U0eWtlbDhIUEJWSU02elRDWXpjSit2VUNpRXgrUEJvMGVQY0hwNmludytqLzM5L1d0dHgzVm90VnBJSkJKNCtmSWxoRUloR28wR3Z2amlDNnlzckZ3UXNnUUNBV1F5R1JZWEZ5R1ZTcUhYNitIeitjRHpQT0x4T1A3cG4vNEo4WGdjcjErL3hyTm56OTY3KzVmUWJEWVJpOFZRS0JRUUNBUXVPSUFCZEhVQUU2R1hDTUFFOHBqMlJRUGs3MlNpV0NRU1VTRzMzUkVzbDh0eCsvWnRXSzNXbnE1SThucURqRW01WEE2YnpZYXBxU2w0dmQ2T0NXS0JRQUNwVklycDZXbDRQQjRZalVZcXlvOERqdVBnY0RqZ2NybGdOcHVIV2xEUjc3SHBkQnI3Ky9zNFBqN0d2WHYzWURRYU8rNVhxVlF3R0F6UTZYUW9sOHVYN2pPRHdVQWZUNXpZRm9zRlJxTVJNcG1NOXZJZUhSMWhkM2NYUHAvdnlpSndlOXg0dDg5STNQYjVmTDd2dGdzRUFoZ01Cbmk5WHJqZDdnNW40cUNRUlEzTlpwT094L09SNVFhREFTNlhDd2FEWWFCTzRWS3BCSi9QaDJBd09QYkZCWmNoRUFqZ2Nya3dQeitQNmVscEdxOThFd1M0WGtpbFVpZ1VpcDRMQmRwZGliOEc4UmRBUjUveGVlcjFPc3JsTWlxVnl0Z0Y0RjZPZTRGQUFJN2pzTHk4ak4vKzlyZmdlUjV2M3J5aEVjRnYzNzdGM2J0M1liUFpMdFFra0FVNXk4dkx1SFBuRG5YU2YyaWF6U2FxMVNySzVmSUZBYmc5dFdMUUh2RkNvWUJ3T0l5VGt4TjRQSjZlRWZlRVNDU0M3ZTF0aE1QaEt3bkFJcEdJZGc3LzlyZS94Y3JLQ3JSYWJkL3QyOWpZd0pNblQ3QzV1WWxNSmpQMGV3Sy9PTVkvRksxV0MrbDBHckZZRElsRUFpcVZxdXZ2TUwxZUQ2ZlRDYlBaRElsRUlnSWdCWEM5Ym9DL01aZ0F6R0F3R0F3R2c4RmdNQmdNQm9OeHN5ampyQWY0MmpsOGc0cHRsMUdyMVpCTUpwRk1KbEdwVkM3YzN4NDVMQmFMNlVTZVJDTEI0dUlpTXBrTVlyRVlqUVg5a0JQK3lXUVNUNTQ4b1JQR1lyRVlzN096a0VxbFhUdHJwNmVuNFhRNmtVcWxjSHg4akkyTkRXeHVibUp2Ync4K24rOUdPTzlLcGRLbER0RjJRZmU2bkJjNXlOL05aak5hclZiUFBrUXlUZ2J0WURXYnpkQm9ORDBuN3lVU0NiUmFMVXdtMDFBdTJXRVFpVVN3V3ExWVdGaUF5K1hxNjh3aURMcVBDNFVDam8rUHNiKy9qMmcwZXFGYldDS1JRSy9YdzJReUlSNlAwd243OHk1ZmxVb0ZzOWtNcDlNSnA5TUptODBHaThVQ3U5ME9qOGREWGV6MWVoM0JZQkN2WHIzQ3YvM2J2NkZjTGw5Wk9MOHNHcGtJVXNWaUVlVnl1ZTlyS1JRSzZQVjZxTlhxcnVJWmljOHRsOHZVNFVqMkJkblhRcUVRSE1mQllEQkFyVlpmMkZhRlFnRzFXZzJGUWpHUUdGUXVseEVNQnJHenM0T3RyUzM2dXQyNnJmdnRnL08zOW0wK3Y0Mzk5cWxRS0lURllzSHM3Q3c5Nzl4a0FWZ29GRUlpa2ZRVmdPdjFPbXExMm8zK0hNTkFoTVp1NDRQRU01Zkw1YkZGN0ZZcUZlVHorWjZ4MjhEWnVkcnI5ZUozdi9zZFRZL0laRElvbDh2dytYeDQrdlFwTEJZTEZBcEYxeWpvdWJrNVBIandBSDYvSDdGWTdJTi9kKzJwQnVjRnphdWtuMlN6V1J3Y0hPRFpzMmMwbHBuMHM3ZGZRNG56OS9uejUvamhoeDl3Y25JeTlQZEtGblk4ZlBnUVgzenhCZTdkdXdlejJkejNzNTZjbk9EYmI3L0Zqei8rZUNNRStPdFFxVlFRaThVUUNvVmdzVmd1bkxjRkFnSFVhalZzTmhzTUJvTkFJcEVJY1NiK0RxYm1Nd0F3QVpqQllEQVlEQWFEd1dBd0dBd0c0NmJCNHl3R2VpUXpxNk1RL0Vpbll5cVY2aG9CWFNxVkVBNkhVYTFXWWJGWVlMVmE2WDBta3dsMzd0eUIzKzlITUJqRTV1WW1VcW5VdGJmcE9tU3pXYng1OHdZQ2dRQ2xVZ21QSGozQzB0SVNuRTduaGNlS1JDSndIQWVPNDZCVUtxbklyVktwWURLWmNIeDhqSEE0akhBNFBQYnV2T3N3U3RHOTE2S0NhclVLZ1VEUVV5UWp2WitYdWRZRkFnRVY3R1F5V2QvSEVmRlRvOUdnVXFtTTNBVXNrOGt3T1RtSk8zZnVYTnJMU0dpUFp1LzNPWW1EZTI5dkQ5dmIyMVM0Slo5WklwRkFwOVBCYURSQ0xwZWoyV3hDbzlIQWFyWENhRFRDYURUQ2JEYkRZckhBYkRiRGFEVENZREJBcjlkRHE5WENZREFRNXhSOVQ1UEpSUGRWUEI1SHRWb2QyazA2U0l3M2NaaDFFMmJPUTl5aXZkeS84WGdjNit2cjJOdmJ3K25wYVVlTWJxdlZna1FpZ2RWcXhlenNMRzdmdnQxVlNKQklKSkRKWkxTdjh6SmFyUmFLeFNMVzE5Znh6Ly84ejhoa01waWZuOGZFeEFTTVJ1T0Z5Rkt5c0lIY1NOOHIrZnc4ejZOV3E5RngwWDRNaUVRaXFOVnEraDEyaTBNRmZva2hkenFkT0RrNTZib1k1NllnRm91aFVDaWdVQ2k2SGpQTlpoT1ZTb1YyMXY0YUlFa0ozU0FPNEhFS3dPVnlHZGxzRnNWaXNlL3hMSmZMTVQ4L2o1T1RFM3ovL2ZmdysvMG9Gb3VJeCtONDh1UUp6R1l6UEI3UEJRRllMQmJENVhKaGRYVVZiOSsreGVibUp0THA5RmcreTZDUWMyMnRWcnV3WDl1VEt3YWwwV2pnNU9RRS8vWnYvNFpZTElhWm1SbG90ZHFPR09sNnZZNXF0VXJQUysvZXZidTBoN2NiRG9jRER4OCt4TC83ZC84T0R4NDg2UGpkZEo1V3E0VllMSWIxOVhYOCtPT1BWNHArdm1tUVJKVkFJQUN2MXd1TzR5NGNQM0s1SENhVENWcXRGaUtSaUFuQVY0QUp3QXdHZzhGZ01CZ01Cb1BCWURBWU40c0d6a1RnQm9BV0xvbUF2bTYvNzZBVUNnVmtNcG11THN0S3BZSndPSXhDb1FDUlNBU3oyVXduOG9SQ0llMzRUQ1FTcUZhcmVQMzY5UWZ2MWN4bXMvanBwNTlvbEdVbWs4SGEyaHBjTGxkUEFjWmdNT0QrL2Z0WVhsNUdLcFdDMysvSDI3ZHY4ZmJ0V3hvRG1jMW1hUnp0aDRnM0pTNUMwdXYzUGgxYXhQM2RTd1FaVkFBbTdrR0pSQUtSU05UM3NXcTFtZ3FpdlJZb1hBZmlBaVB4MW9OQVlyY0g2VlFzbDhzNFBqN0dreWRQb05mcjhmSEhIOE5pc1FBNEU1OUpyektKT1RXYnpaaVptY0hFeEFUY2JqZW1wcWJnY0Rpb081WDBNbmVMUWdiTzlxM1g2OFdkTzNld3Q3ZUhTQ1NDZkQ0LzFEZ1JpVVQwdStsMS9pSGY5U0Q3NERLaEpoNlA0OXR2djhVZi8vaEhIQjhmWDNDUWN4eUhsWlVWdEZvdFRFNU85dHhtc2wrR09XY2VIeCtqWEM3RDcvZmo0NDgveHUzYnR6RXhNUUdkVGdlWlRFWkZidEx2U3Y1ZUxwZXBNNzljTHROL0kxMmxSQVFtQ3lac05odFdWMWR4OSs3ZG51Y2Z0Vm9ObDhzRnU5ME9oVUx4d2NXM2ZwQkZNbXExdXV2bnFkZnJOQ0w4c283b3Z4YjZPVTU1bnFkallWd0NjTFZhUlNhVFFhRlF1UFNZVXlnVXNObHNtSnljeE03T0RoMnJPenM3c052dGRKeTN1L0lGQWdFMEdnMjhYaS90QXQ3WTJQaWdDeEhPTzhuYng5R3c4YzhFNHV6ZDI5dUR5V1NDVHFlRFVxbWs0N2hXcTZGUUtDQ2RUaU9SU0NDVHlRejFuUXFGUWpnY0Ruejg4Y2Y0M2U5K2g2KysrZ28ybTYzdmM1TEpKTjY4ZVVQRjMzZzgvbGQvekRRYURhVFRhVVNqVVdReUdkaHN0Z3ZmbFVna2drYWpnVXFsZ2xnc0Z1SXNBcG9Kd0VQQUJHQUdnOEZnTUJnTUJvUEJZREFZakp0RkRXY1IwQU1wcEpkTmNJNUtJRzQwR3NqbGNsUUVWaXFWSGRzZ2s4bG92MkdsVW9GY0xxZmJKWmZMTVRzN2kycTFpbGdzaG1Bd2lIQTRQSkx0dWc2VlNnV2JtNXVvMVdySTVYS0lSQ0pZVzF2RHdzTENoVDVXNEpjT1JZN2pZREtaWUxmYlliVmFNVDA5alpPVEUwUWlFWVREWWNUamNkcHRsMGdreGhKTmZCNlZTZ1duMHdtSHd3RzlYZytSU0lSc05vdEFJQUNmejNkcERPOG9JS0p0TDVkc3M5bWt6c2pMQk1kMklidGZmNnhXcTRYZGJvZlJhTVR4OGZISUJXQ2RUb2VwcVNuTXpNeGNjSmIyZ29qY2c3cVJvOUVvbmp4NUFxUFJpT25wYVNvQWN4eUgrZmw1Q0lWQ0xDMHRnZWQ1YUxWYU9Cd082dm85MzlVNUNDUk8yR2F6UWFQUjlPeHI3a1UvcDJNN2pVWmpvTGp2eTZMcWlkdk81L01oR28xZXVEK1ZTc0ZxdGFKWUxQWVVZc1JpTVkwakh1YWN5UE04QW9FQVhRQ3p0N2NIaThVQ2p1TWdrVWlvMkUvY3ZmVjZuZjY5VXFsMHVJREpmNGtvVGdSZ2tVZ0VtODBHdVZ5T3VibTVuaDJnSE1mQllySFF5UE9iakZRcWhWcXRoa2FqNmVyaWJ6UWFLSlZLS0JRS045ckpQQ2p0L2VpOUlxQ0x4U0tLeGVMWUZqKzFXaTNrY3JtQitzSUJRS3ZWd3VWeXdXYXpJUjZQbzFRcW9WYXJZVzl2RHk5ZXZJRFQ2Y1RTMGhKME9oMTlqa0FnZ05Gb3hQTHlNdTdmdjQ5Q29ZRER3OE1QdHFDTENNQmtVVVU3VnhXQW04MG1kV3VmbnA1Q0xwZERLcFhTOHl6UDgvVFlIaGFoVUFpWHk0VkhqeDdoNy8vKzcvSG8wU080WEs2K3p5bVZTdGpiMjhPZi92UW5mUC85OXdpSHczLzE0aTl3dHArTHhTS3kyU3hLcFZMUHo2UlVLaUdYeTBrSHNCeUFhTmhyMXQ4eVRBQm1NQmdNQm9QQllEQVlEQWFEd2JoWlZBRVVmdjd2cGJOOC9hSllpUXR2RkQzQXdKa0wrUFQwRklsRUFtNjNtMDUwS3hRS3VGd3V5T1Z5Rkl0RkhCMGR3V3ExZHZUWm1Vd20zTDU5R3ljbkp3Z0VBcWpWYWtna0V0ZmVwdXZTYkRaeGVIaUlaREtKUUNDQVNDU0NRcUdBdGJVMUtxVDJRcTFXWTJGaEFaT1RrNmhXcTFSd1BUNCt4dUhoSVk2UGorSDMrNm5EaGJpLzJyK1RZYjhiNGpJaklweEVJb0hCWU1EazVDUnUzYnFGNWVWbE9Cd09TQ1FTbko2ZTR1WExsd0NBM2QzZGtZMkRYb2pGWWhxejI0MUdvMEhka3BjSndJT0lxRUtoRUhxOUhrNm5FeWFUYVdnaDlES0lBOWZ0ZHNOaXNRd3NsQTY3NklJNDcxd3VGejc5OUZNc0xTMEJPSnY0bnBtWmdkdnRScTFXUTZ2VmdrZ2tvbUpFdDk3cVFSbFVpTDhxN2M2OHl5QWR2enpQZCsxWUZvdkY0RGdPYXJXNmE5U3FYQzZIV3EyR1NxWHF1MCt1MGdsS1NLZlRlUHYyTFhaM2R5R1JTRHFFdnZQbjJmYS90Ly83K2NlMGIxY2lrY0Q5Ky9mN0NtbHl1WnpHZTQ5NnJJOGFtVXdHdlY0UG85SFlVd0RPNS9QSVpESy9DZ0dZbkl0N3hkK1RSVWI1Zkg2c1ZRSEZZaEdsVW1tZ2ZjcHhITzBOUHo0K3BndVY0dkU0bmo5L0RwUEpCTDFlM3lFQUEyZmkvdXpzTEI0L2ZveDZ2UTY1WE43UlMvMCt4VWtTTlU4aW9NOGZWKzBMaWE1S3BWSVp5UmdWaVVTWW1KakF4eDkvakgvNGgzL0FiMzd6bTB0VEpTcVZDdmIzOS9IRER6L2dtMisrd2RiVzFxL2llQUYraWU4bW5lNjl4azFiNVlBSVp3NWc4YkNpL3Q4eVRBQm1NQmdNQm9QQllEQVlEQWFEd2JoWkRDVUE5NkpkZ0JuRWhUY0l4V0lSa1VnRWtVZ0VScU1SSE1jQk9Kc1FOcGxNS0pWS1dGOWZSejZmeDlyYVdvY0FMQlFLWVRLWjhORkhIMUhIeDVNblQxQ3RWcSs5WGRlbFhxOGprVWpnOWV2WEtKZkxTS1ZTQ0lmRHVIWHJWbDlISG5EMjJVazBwTmxzaHNQaGdNZmp3ZXpzTENLUkNFNVBUNUZPcCtua2Z6YWJwWDh1Rm9zMEZyWmFyWGE0Q0Z1dEZwM0FGb3ZGVlBBallwZFdxNlVDaTlWcWhjUGhnTmZyeGVUa0pFd21FMFFpRVZLcEZMUmFMZTNaakVRaVkzVWppOFZpNnBicXhxQU80UE94bnIwUUNBVFE2WFN3V3Ewd0dBd0Q5Zk1PaWtRaWdjMW13L1QwTkd3Mlc4L1AxRy9iQnFYVmFxRmFyY0x2OStQZzRBQ1JTQVIydXgzQW1aRFdyd2Y1cWlRU0NRUUNBY1RqOGFFRnFmWkkyRjYwZDNOZVJyc0EzQTJKUkFLVlNrV2pXTStQWWFWUzJTRUFuMmRVNThKUkNVSGRhRFFhMUVYYUM5SVZyRktwYnJ3QUxKZkxZVGFiWVRhYnV4NlhSQUJPcDlQdkpTRmgzTFF2ZnVsMlhKQjQ1a3dtTTlidDRIbWV1dFY1bnU4N1RqaU9nOFBoZ05QcHBOZHk0SmNGS1JhTEJmZnYzOGZpNG1MSDgwaXR3MGNmZlVRajh2ZjM5M0Z3Y0lDOXZUMkVRcUd4ZmI3enRGb3Q2cklmcDdCK1hlUnlPYWFtcHZESko1L2dONy81RFI0OGVIQ3A4N2ZWYXNIdjkrT2JiNzdCSC83d0IrenM3UHhxeEYvZ29uaC8yV054Vm9jaXdpVzFLSXhPbUFETVlEQVlEQWFEd1dBd0dBd0dnM0d6cUFJbzRwb0NNQkhiU0ZUaEtBVGdVcW1FVUNpRVFDQUFqOGRESjQyRlFpR05KRDA2T3NMaDRTR2tVaW5tNXVaZ01CZzZYbU5tWmdiQVdXenI2ZWtwZG5aMnJyMWRvNkpRS0dCall3UGhjQmo3Ky90NC9QZ3h2dnJxSzl5NmRRc0dnMkVnQjZoU3FZVEg0NEhOWnVzUWRhdlZLbks1SE9MeE9LTFJLR0t4R0pMSkpES1pEUEw1UFBMNVBPMklyTlZxYURhYlZQd2xJaURIY2RCb05EQ2J6WEE2blhDNzNYQTZuVENielZBcWxWQW9GRkFvRkhUU1g2dlZRaWdVSXBWS0laUEpVSGZZdUpCSUpCM3ZmeDRpOUYwMldkOXNObEdwVk9pKzZEZDJPWTZEMld5R1hxOGZxU2dtbDhzeE16T0Q1ZVhsZ2J0L0NlME83V0ZJcDlOWVgxL0gxTlFVUHZyb282SGZsMEQyMS9uOVJ2N3U5L3V4dGJXRjNkMWRSQ0tSb2VOYkJ4RzNpUUE4eUFLUGVyMU9GMEdRaFEvdGlNVmlLSlZLS0pYS3JtS2lTQ1NDUXFFQXgzRmR4ZkpXcTRWeXVZeDhQbzlLcFRKd05QZjdoUFJjWGphR0ZRb0Y1SEw1MExIZDd4dXRWZ3V6MlF5RHdkRDFPS2pWYXNoa01rZ21rNzhLVWF0OThjdjV6MHRFU3RJRlBVNmF6U1l5bVF4T1QwL2g5WG92dUhmYklRNWdoOFBSSVFBM20wM0VZakhzN2UxaGIyOFB0MjdkNmxqTVJaNDdPVGtKcTlXS2p6NzZDTUZnRUM5ZXZNRC8rQi8vZ3k1d2VoK1F4UjNWYXJXciszamNxUmVESUpmTHNiQ3dnRTgvL1JSLzkzZC9oNGNQSDNhdG1EaFBLcFhDNjlldjhZYy8vQUhQbmoxRE5wdDlEMXY3Zm1sUE5PbEZ2VjVIbzlFZ2k4R0VBSVEzOFJ4K1UyRUNNSVBCWURBWURBYUR3V0F3R0F6R3phS0NBUjNBbDNYY2tZblJVZlh6Rll0RmhNTmhoRUloNVBONTJHdzJlcDlBSUtBT0tOSlo5L2J0Mnd1VHh6S1pESE56Yy9qc3M4OFFEb2RSclZiaDgvaysrQ1F0b1ZLcElCd09VOEUwbVV4aVoyY0hNek16OEhnOG1KeWN2TlFOS2hLSnFHQjFubUt4aUZRcWhYUTZqV3cyUzRWZkV0dEp2aThpQUl0RUlrZ2tFc2hrTXNqbGNuQWNCNzFlRDdQWkRLdlYybmNpV1N3V3cyNjNZM1oyRnJ1N3U5aloyZWthb1RzS0JBSUJKQklKNUhKNXo4bGMwZzlkcVZRdWRmeVV5MlVVaThWTEJST0pSRUtGcGxFNlpaVktKV1puWjdHeXNrSTdlUWVsL2JnY3hnbWN5K1h3OHVWTEdvTjgrL1p0Mk8zMlMwWEJjcm1NVXFsRUJmNzJzVVJjMU0xbWsrNy80K05qUEgzNkZJZUhoMWNTcEVnMGQ3OWpsa1FlRHpKUnovTTgzZVptczNsQjNKUklKT0E0RGtxbHN1dStFSWxFVUtsVVVLdlZYYnR4MndYZ1FmdFIzeWNpa1lqdXo4c1dEWkQ0NzFGMXU0OERqdU5nTUJpZzArbDZqdDF5dVl4ME9vMTBPbjBqQmZsaElTa04zU29aU05JRGNQWmRqOU9wMm13MmtjMW1FUTZIa1U2bm9WYXJleTRXSUNrSFZxdjF3cldxMFdnZ0VBamcyMisvaGNWaXdlUEhqenV1NHdLQmdLWmZrQjUybFVxRmREcU5jRGlNM2QxZEZJdkZzWDNPODl0S3puRTNEWmZMaGNYRlJUeDgrQkNQSGozQzZ1cnFRQXQ3MHVrMHRyZTM4ZUxGQzZ5dnIvOXF4Vit5c0sxZmREL1A4K1Eza1FCbmVxYjRKbjdYTnhVbUFETVlEQWFEd1dBd0dBd0dnOEZnM0N5cUFISTRFNEw3S2hWa0FyYWJLNDdFNnhHMzVTaEVqM0s1ak5QVFU0VERZUlFLaFF2M3ExUXFMQzR1SXBsTTR2VDBGSC81eTEvUWFyWHcrUEhqRHRGVUlwSGcxcTFiU0tmVEtCUUt5T1Z5U0NhVDE5NitVVUxpckFPQkFKNDllNFpidDI3aDQ0OC94c09IRHpFOVBRMjFXbjJsMStVNERncUZBaGFMQmZWNnZjUGQwaTZzRVNka3U1dTBYUkJ1ajU3dUI0bVY3ZGNWUFFyRVl2R2wyMFFFU05LRjNJOUtwWUpDb1VCZG9mM1E2WFRRNlhSUXFWUlgydlp1NlBWNmVMMWV6TTdPOW5YUmRZUDBnWXBFb3FHRXVtS3hpSjJkSFRvVzh2azg3WFRXNlhSVXlHazJteWlWU2lnVUNzam44L1Q0SWJmMnlQRlNxVVJGNEZxdGhudytqMGdrZ25nOGpsd3VOOVRuSW5RYnA5MFl4SDFINHE4TGhRSktwUklhamNZRndVb3FsVUt0VmtPdFZuY2RYeEtKQkdxMUdqcWRycXNBVEJ6bGhVTGhSanFBbTgwbUZVTXZjK2lQb3ROMG5FaWxVa3hNVE1EajhmUThibHF0RmpLWkROTHA5SHR6aW80Ym1Vd0dsVW9GanVNNnhpOVpmQ0NSU09CeXVUQTFOUVcvMzA4RjRWSFRiRGFSU3FVUUNBUVFqVVpoczltNjltb0RaOWNHc3Bpb1c4MUJPcDNHZDk5OUI3bGNEcTFXaXkrLy9MTG5OVVFnRU1EajhlREJnd2VJeFdLbzErdlkzdDRlMmVLemZqUWFEWG9kdlVtNFhLNk95R2V2MXd1TlJqUFFjK1B4T042K2ZZdk56VTJrVXFreGIrbUhRU3dXUTZmVHdXS3gwTFNTYnBSS0plTHdGZ0NRQUJEY3RFVThOeGttQURNWURBYUR3V0F3R0F3R2c4RmczQ3dxQVBJQXlnRDZLaFZTcWJSbjVPNzVmclZSVEpqeFBJOW9OTnBYQUY1YVdzTHA2U24yOS9mcDVQSGs1Q1RjYm5mSGRwck5adHkvZngvaGNCZytuNCtLVXplSmNybU1jcmxNQmJOa01vbFFLSVNabVJrNG5VNVlMQlk0bmM2QjRoemJFUXFGWSt0MlBVKzlYa2NzRmtNa0V1bjZuWTBLOG5uNjlmQVNFZkt5YmwvZ2JMdUpBL2l5c1N1VHlhQldxNkhSYUNDUlNLNHRPaWlWU3Roc05yaGNMbGdzbHFHN2hZbmdMaGFMaHhMcWlMQzd0N2NINEt5bmQydHJDemFiRFhxOUhtS3htRWFlRm90RmVpc1VDc2htczdSak5KZkxVVUcxVXFsUVJ6bnBCNzJ1QTNHUWVPdGhYSG1WU29WdWM3MWV2eUR5U3FWU2FEUWFhTFhhcnNlTVdDeUdTcVdDVnF2dDZRRG1lWjd1aTVzbUhyUmFMUlFLQlNTVFNjVGpjVml0MXA3bmhwc1FhZHNQanVPd3ZMeU1sWlVWbUV5bUMvZVR6NXBJSkpETDVRYnFpTDdwQ0FRQ2FMVmFPQndPbUV5bUMrTlhKQkxCNlhUaTg4OC9oMUFveEovLy9HY2NIUjJOUlJ4dHRWcElKQkx3K1h5SVJxT1hIbjhpa1FnNm5RNG1rd2xhclJiNWZKNCtoN2lBZi9ycEoweE5UY0ZtczJGcWFxcW5vTXh4SEJZWEYya2FRU2FUUVNnVUdyc3cyNjlIOWtNc2xMQllMUEI2dmJoNzl5NGVQMzZNKy9mdlkzcDZlcWpyU0NhVGdkL3ZSeVFTK1ZVY0k5MFFDb1V3bTgyWW1KaUEwV2pzZWsxcE5CcjBXdmJ6dUJ6ZktyWmZLVXdBWmpBWURBYUR3V0F3R0F3R2c4RzRXZFFBWkhFbUFQZWQ2U2V4d04yRXB2YmVRZElwZTEySXV5Z1VDaUdaVEtKZXIzZE1hc3BrTXJqZGJuZzhIZ2dFQWh3Y0hJRGpPSGk5WGtpbFVyaGNMdnBZa1VnRWg4T0J1M2Z2NHVUa0JKVktCZHZiMjJQdlNMd3F3V0FRdVZ3T0d4c2JzTmxzOEhxOVdGNWV4dXJxS3VibjUrRndPTjZMb0Rzc0p5Y24yTmpZd003T3psaGQxa3FsRW5LNXZLOHcyR3cyVWExV0IzWmhFZ0h6TXNGU0tCU0M0emdZalVZYVEzcFYybU96N1haN1Q3R2pIOFNsUGF3QVRDaVh5OWpkM1VVNEhNWlBQLzBFanVQQWNSekVZbkZIdHk0UlBjaU4vSjNuK1E1bithZ0ZRNUZJUk4zTnZUNGYyWTVCeEo5S3BZSnNOb3RjTHRkVkZKUEpaTkRyOWREcjlWMEZYckZZREkxRzB6TnltTGlNQittVS9sQTBHZzBrazBrRWcwRzQzVzZZVEthdXg5SWc4ZHNmRW8vSGcvdjM3K1BPblR0ZEY4YndQSTl3T0F5LzMzK3Q0L1FtSVJBSVlEQVlNRFUxQllmRDBURkdCUUlCVkNvVnBxZW5hWnk3eitkRElCQVltd0NjVENaeGRIU0VRQ0NBWXJIWTBlL2JEWTFHQTVmTEJhZlRpYU9qb3d1ZHpNRmdFRC84OEFOME9oMSs4NXZmWUdscHFlZHIyV3cyUEhqd0FObHNGdWwwR28xR0ErRndlS3pqbFN6dTZMYlE3WDBlSjBLaEVBNkhBNnVycS9qaWl5L3c4T0ZEek03TzBzVTd3MEFXeEJXTHhiRkdobjlJVkNvVm5FNG5KaWNub2RmcnUxNUxTcVVTRW9rRU1wa01PVjRFWUNMd1VEQUJtTUZnTUJnTUJvUEJZREFZREFialpsSEhXUWZ3cFFJdzZSM3MxdkZIeExaaXNZaEtwVEt5aWRCNnZVNkZpbWcwQ3JQWlRCMVBBb0VBSE1mQjRYREFiRGFqV3EzaTNidDMrTXRmL2dLejJReXoyZHdoa3Nwa01zek96dUxMTDc5RU5wdEZMQlpET0J3ZXlYYU9ta2FqUVdOYWo0K1A0ZlA1Y0hKeWdwT1RFMHhOVGNIbGNzRm9ORUt2MTlOSVlyVmFmU1VCOGJxUUhzWllMSVpYcjE3aHlaTW44UGw4QThXT2txaGRwVklKaFVJQnFWUUtvVkJJblllTlJvTk91Qk9IZEQ2ZnAyT3czemlyMSt2VUhUWUlsVW9GcFZJSjVYTDUwc2h0bFVwRm8weHp1ZHlWWFdkeXVSeFRVMU5ZV2xxQzNXN3YrcGp6RWQzbnVheWJleEJJVjNJOEhyL3lhNHlMUVZ5b1JQd2QxQUdjeldaN3VwTmxNaGs5cHJwRlFMYzdnTHQ5SDgxbUUrVnlHYmxjN2taMkFBTy9MSzQ1T1RtaG9sRzM4WE9USGNBdWx3dHJhMnRZVzF2RDVPUmtWN0crV3EzaThQQVEyOXZiaUVhakgyQXJSNDlRS0lSR282R2Q3T2NYSVpCb2ZMVmFqY25KU1dnMG1yRitoNlZTQ1g2L0gzNi9INGxFb3VkaUFvSmFyWWJiN2NiRXhBUk9UMDh2Q01DRlFnRWJHeHVReVdUMHV0QnJ3Uk5aUVBQZ3dRT1V5Mlh3UEk5eXVUeldHR1B5VytmOHVZTXNsaGgzNUx0WUxJYkQ0WURINDhIeThqTHUzNytQQnc4ZVlHRmg0ZEwrOWw2MHgxcmYxT1A5T2tpbFV0aHNOcmpkN3I0OTk0VkNBYWVucDBpbFVrUUFGZ0s0ZVN2dGJqQk1BR1l3R0F3R2c4RmdNQmdNQm9QQnVGazBNWUFEV0NBUTBON1ZiZ0l3NlI3TTUvTW9sOHNqblFUTlpESTRPRGpBN3U0dTVITDVCYWVYMld6R3pNd01MQllMRGc4UDhlVEpFN2pkYnJqZGJzek96blk4MW1LeDRNR0RCMGdrRWpnNU9VRzVYUDZyY0lhUlNPV2pveU9vVkNvWURBYlk3WFpNVFUxaGFtb0ticmNiVHFjVFRxY1RlcjMrdmJtRG85RW8xdGZYOGZyMWErcjhQVGc0UUNhVDZmczhwVklKcTlVS3A5TUptODBHczlrTXZWNFBqdU1na1VpbzY3QldxOUY0ejFRcWhWUXFoZFBUVXlpVlNxalY2cTVqa1VBaWlBZU5vaVl1cUhRNkRZdkYwdk54eEdWSHR2bjA5UFRLQXJCYXJjYmMzQnh1M2JyVjlUMUpuMnk5WG9kRUlvRmNMdThxT2hJSDhEaDdsejhVN2M3aVhoM0FnNHEvd0puam1VUlhkeE9BcFZJcGREcGRUd2N3NlYvdHRVaWcyV3lpV0N3aW04M1NudUdiUnJQWjdJaEdKdVByUEdTZjN6UlJ5TzEyNDVOUFBzSG5uMytPK2ZuNW5sMm5tVXdHT3pzN1dGOWYvOVVJd0FLQmdQYmtudThBUGc5eDc0K3pHN2ZaYkNJV2kyRi9meCtibTV2UTZYU3cyKzA5M2ZwcXRScFRVMU9Zbkp6RXpzN09CYkcyMld6aTlQUVVMMTY4b05lRFR6LzlGRjZ2dCtjMlRFMU5RU3dXMDJQNzdkdTNWKzRjSDRSNnZYN0JHVThXSzQxVFJDVUxob2pvdTdxNmlxbXBxYTRMQVlhQkpEM2N4TWo2NjBJaTBWZFdWdUQxZXJ2MlR3Tm4reUNaVE9MazVBVFJhSlFjTTJJQWd4VXBNd0F3QVpqQllEQVlEQWFEd1dBd0dBd0c0eWFTeDFrWGNFOEZSU2dVUWlxVlFpYVRkWjFvSkVKVm9WQVl5UGs1RElWQ0FRY0hCOWpaMmNIazVPUUZBVmlqMFdCMmRoYno4L01JaFVJNFBEekV0OTkrQzRmREFhVlNDYWZUU1I4ckZvdGh0VnF4dHJaR3U0VmZ2WHAxWTZPZzI4bm44eDI5eFRxZERoTVRFM0M3M1hBNEhMQmFyYkJZTEZRWWtFZ2trTWxrNERnT1dxMld4dG9xbGNvcmR4VzJXaTNFWWpGNk96NCt4dnI2T2hWL1k3Rll6MjVFbzlFSXE5VUtxOVVLbTgwR204MUcvMjR3R0tEVDZXakhOSmxjNTNrZXBWSUoyV3lXeG56RzQzRUlCQUxjdW5XcnIxT1hSSklQS240MEdnMHFBRmVyMVo0aXVrQWdnRktwaEY2dmgwYWpHVHB1c3gyTlJvT3BxU25Nek14MC9TeU5Sb01LaVdxMW1ncTk1MUVxbFpESlpMOUtBYmpaYkY0cXFnd2pXaFNMUmFUVDZaNFIwRUtoRUZxdEZnYUQ0Y0lZRUFxRlVDZ1VVQ2dVUFlVM3NuQ0J1S3JIN1FpOEtrU3c2aWY2M0RSSG9ObHNodDF1eCtycUtyNzY2aXZjdjM4ZlpyTzVaNXhyTUJqRTl2WTI5dmYzeDlwSi9qNXB0VnBVQU82WCtOQnF0WkRMNWQ1THJHKzFXc1grL2o2KytlWWJjQndIdVZ3T2c4SFE5YkdrcHFHZkdGZXYxNmtJVEJaa0dJM0dubytYeVdTWW5wN0c0OGVQYWVMRHExZXZCazUvR0padUMwN2E0L0JIZWN3SWhVSjZ6WnlZbU1EQ3dnTHUzcjJMdTNmdllucDYrbHJDTDBFdWw2UFpiUDRxKzM4VkNnV1dsNWZ4MldlZllYcDZ1bXVxQTNDMm41UEpKQTRQRHhFSUJNaStrQUF3QVZEaExDbUhjUWxNQUdZd0dBd0dnOEZnTUJnTUJvUEJ1SGxrQVJUUnh3RXNGb3VoVkNxaFVxa2drOGt1VExpUE0vYTBVQ2pBNS9QaDRPQUF5V1R5Z2hPSXVHSldWbGF3djcrUDlmVjFQSC8rSEZxdEZscXRGci85N1c4dmlHc3pNelA0N1c5L2kxd3VoM2c4am9PRGc1RnQ3L3NpazhtZ1hDNGpHQXhTVVVvdWwxUEJWNnZWd21ReXdXNjN3K1B4WUdabUJoS0pCQXFGNGtvQ01NL3pDQVFDV0Y5Zng1czNiN0M5dlEyLzM0OUlKSUpNSm9Oc050djFlWEs1SEhhN25VNWNyNnlzMEdoU3NzMHltWXk2eTRtSTJXcTEwR3cyNmNSNnJWYWp3aHB3NWlUVDYvVTl0N2RTcVF3MW9jM3pQTkxwTktMUktMTFpiRTlocVYwQVZxdlZWeGFBUlNJUkxCWUxqYVhzOWpvOHp5TWFqU0tSU01CbXMwR3IxWFo5SE1keFVDcVZJeEVEYmlyOXppbkQ5TlNXU2lYRTQzR2tVcW1lNDBPdFZzTmdNRnc0YjVENDUxNGlBdGxPRXFsNlU4VmY0T3k0MUdnMFVDcVZQY1hzYXJXS2FyWDZ3VjNNUXFFUUxwY0xLeXNyZVBEZ0FlN2Z2MDlkODkxYzJxMVdDNFZDQWFGUUNJRkFBSWxFNGtZSjJkZUJkSkFiRElhK0FqQlpQSE0rWW5sYytIdysvT2xQZjRKTUpvTmFyY2JkdTNlN0xtcVJ5V1NZbUppQTErdUZ5V1RxK1hxTlJnTStudzlDb1JCMnV4MG1rd2xMUzBzOVJXQ0JRSURGeFVWSUpCSUlCQUpVS2hWc2JHeU1mRUVhMmJiekl2QTRITUJTcVJRVEV4TzRlL2N1N3QyN1I2K2Rack1aQm9OaHFQTjlyL1FFNEpmRlpUYzFzdjZxQ0FRQ2VMMWVmUHJwcC9qc3M4L2dkcnQ3THBJaUMwYjI5dllRQ29YSW9na3hBQU1BUFpnQVBCQk1BR1l3R0F3R2c4RmdNQmdNQm9QQnVIbFVBRlRSUndBV2lVVGdPQTVxdGJxckFOd2VBVDFxRjBtdFZrTTBHc1hKeVVuWHVHYVJTQVNIdzRIbDVXVzhldlVLR3hzYlNLVlNlUHIwS1Z3dUZ4d09CeFlYRnp0aVFwVktKWmFXbGhBS2hXaGtjU0tSR09sMnZ3K0lRTk9PU3FXQ3grT2hmYnJ0NHVxd3dtK3IxVUk4SGtjc0ZrTXdHS1FDKy9yNk92YjM5NUZNSm5zKzEyQXd3R2F6WVdwcUNsNnZGL1B6ODFoWldjSGk0aUxNWnZPVlB1K2cxT3YxcmoyTi9lQjVIb2xFQXNGZ0VLbFVDaWFUcWVmK3VxNERXQ3dXdzJ3MlkzSnlFbGFydGFmYnVORm9JQktKd09mem9kVnFZV3BxcXV0amlZamVMdzcyMXdxSkx4M1VlVWQ2eFRPWlRNL3hJUmFMb1Zhcm9kVnFJWmZMcVlnbUZvdjd1bi9KOWhRS0JXU3pXZFJxTlloRW9xRUU2dmRCbzlHQVNxV2l3bHEzejlOb05GQW9GRkFzRnQrN0FDeVJTT2dpRnJLUVpYcDZHaXNySzdoMzd4NW1aMmQ3T2t3SlBNK2pXQ3plMkJqdXF5S1ZTc0Z4SEZRcVZkOXhXQ3FWa01sa0xvM2pIeFdsVWduNysvdFFxVlRRNlhTUXlXUzRjK2RPVnhlOVNxV2k2UTlxdFJxRlFxSHI4VkdyMWVEMysvSGpqei9TODIwdkFSZzRXd2l6dkx5TWNybU1TcVVDaFVLQjdlM3RrUzhBU0tWU0tCYUxJMW5nSVJLSm9GQW9JSlBKNkxXYUxMYXoyV3gwM04rOWV4ZHpjM1BnT0c2ZzE2MVdxNGhHb3lnVUN0RHI5YlJqbmx6blVxa1U4dms4S3BVS25qMTdobEFvOUZlUmhESW9ZckVZTXpNeitPS0xML0RKSjU5Z2VucTY1N1dhNTNtY25wN0M1L01oRUFpME84ZUZBT1FBZXErMFlIVEFCR0FHZzhGZ01CZ01Cb1BCWURBWWpKdEhIWmRFUUl0RUlxaFVLaXFJbkJmRzZ2VTZTcVVTOHZuOFdDYmJNNWtNd3VFdzR2RTR5dVZ5aC9OSkpCTEJaREpoZG5ZV2JyY2JITWNobjg4akdBemlwNTkrZ3RGb2hGQW94TjI3ZHpzY00ycTFHc3ZMeS9qODg4K1J6K2Z4OU9uVHNmWUd2ZzhNQmdNV0Z4ZHg1ODRkckt5czBHNWtqdU9nMFdpZ1Vxa0dGb0VialFaT1RrN3c1czBidkg3OUdwdWJtemcrUHFhVHgvM2lOVzAyRys3ZXZZdVBQdnFJOWhUcTlmcXVyc3B4VUtsVWhoYUFhN1Vhd3VFd2pvNk9zTEt5Z3VucDZaNXVJWlZLQll2Rk1yUUxpOEJ4SE9ibjUzSHIxaTNZYkxhZWp5dVh5emc1T2NIdTdpNDRqdXY1ZWRvajJ2L1dhRFFhMU8wOXFNaERoTEYrN2tEU04yNHdHQkFPaHdHY2lXOXl1Ynl2NkU5YzZ3S0JBSHE5SGxxdGxzYVpFeGRldHdVMDNlNGpMbmp5NzYxV3E4TlpUUDUrL25iWmZpQ3UvTW5KU1Znc2xxNUNZcVZTUVRLWlJDcVZlcS9Da0U2bmc4UGhvREhCVTFOVDhIZzhjTHZkc0Znc01CcU5sNHBnQW9FQU1wa01XcTJXeHVMM1NpajRhOE5rTWwzcS9nWE9vczdINFg3dFI3MWV4OWJXRmlRU0NUaU9nOFBoZ012bDZ2cFlnOEVBajhjRGo4ZUR3OFBEbnR0YUxwZng5dTFieU9WeVdDd1dXQ3lXdmd1SXhHSXhidDI2QllWQ0FZdkZnai8rOFk5NDllb1Znc0hneUVSZ3NWZ01nVUJ3UVFBZXRpOWJyOWZEWkRMQmJEWkRwOVBSQlE4V2l3VU9od09UazVOd09Cd3dHQXd3R28xZDNlNjlLQmFMV0Y5Zmg4L253K3pzTEUySk9EZzR3UHI2T3JhM3R4RUlCSkJLcFhCeWNvS2pvNk94ZGtXL2I3eGVMMzcvKzkvakgvL3hIM0huenAyZTUyeFNhL0htelJ0c2JXMGhIbytmZjhqVitqTCtSbUVDTUlQQllEQVlEQWFEd1dBd0dBekd6YVNHUGdJd2lUN1ZhRFJkSnlGSi8yK3BWQnJMeHRYcmRXUXlHWnllbmlJZWo4TnV0M2NJYnhLSkJHYXpHUTZIQXphYkRkVnFGYlZhRFFjSEIvakxYLzRDbzlFSWg4TUJ1OTNlSWVyWmJEWThmUGlRT2orSDZZejkwQWdFQXRydHE5UHBZRGFiTVQwOWpZV0ZCU3d0TFdGbVpnWk9wM01vZ1pLNGd4S0pCQ0tSQ1BiMzkvSG16UnU4ZWZNRysvdjdmVVVVbFVwRnY0UFoyVm5jdTNjUGEydHJXRjVlN3V2YUdnZTFXZzA4encvbDBHbzBHb2pGWWdnRUFraW4wMzBuOG9rNHFORm9ydVM2VlNxVm1KdWJ3L0x5Y2s4bkkva3VBb0VBQW9FQXZGNXYzODhqbFVxaFVxa2dGb3ZIM3ZuNVBpRnU3bDRMUzBqL2VMRlk3T2pJN2tlNVhFWW1rMEV1bDBPOVh1OHFEa2drRXVoME91ajFlc1JpTVRRYURjaGtNaWdVaXI0UjBHS3hHQTZIQTJ0cmE1aWNuSVJVS24wdkFqQ0puU1kzNG9vbWNiWHQ5MnMwR2l3dkw4UGxjdlVVRW5PNUhQeCtQL3grZnpkUlpHaUVRaUh0c0paS3BYVEJBb212VnlnVVVLdlZ0T2VYaUwrVGs1TndPcDFETHh4UktCVHdlRHg0L1BneEpCSUo5dmIya0VxbDZQZCtrK081ZTBIU0xpd1dTOTh4MkdnMFVLdlZvRktwTURjM1I5TWYydVAxeWRnaWZ5YTM5ckhTSG5YYzNobE54bGEzZlZnc0Z2SGpqei9DNVhMaGswOCtnZFZxN1hvTlVxdlZtSnljeE5UVUZFNVBUL3VLMVpsTUJ1L2V2WVBENFlEUmFNVERody83eGtlclZDcmN2bjJiampPRlFvRm56NTRoR0F3T25GQkM2aFNVU2lVVUNnV1VTaVZOV25BNEhQQjRQQjIvSlJxTkJxclZhdGZ6RUhIMEV1YzJxV2t3bTgwd21Vd3dtVXhVQU5ab05GUUFQdjg3WnhnYWpRWVNpUVNPajQ4aGtVamdjRGhRTHBmeDVNa1R2SHIxQ2pzN096VHRvbEtwM0tpRWd1dEF4dFZubjMyRzMvLys5MWhiVyt2Nys2UFJhTUR2OStPbm4zN0M5dmIyK1lWdExmUkp4bUZjaEFuQURBYUR3V0F3R0F3R2c4RmdNQmcza3dxQW5zcW5SQ0tCUnFPQlhxK0hVcW5zdUsvWmJDS2RUaU9YeTQyMWJ6Q1h5OEhuOCtIdzhCQXFsZXFDY01aeEhOeHVOMlptWnBETlpoR0x4WkJJSlBEbXpSdTRYQzU0UEI0cUZCT1JSYVBSWUhGeEViRllERWRIUjdRSDdxWkhoc3BrTXRoc05zek16R0IrZmg2enM3UHdlRHh3T3Awd0dvM1VlVGlNT0ZtcjFYQjBkSVEzYjk3ZzdkdTMyTnZidzhuSkNkMlAvY1I5SWlqZHUzY1BxNnVybUoyZGhjdmxnc1ZpZ1VxbEdzVkhIb3B5dVl4U3FUU1VFTnBzTnBGS3BSQUtoWkJLcGZxT0FZbEVBb1BCQUkxR2M2VUplcTFXUzcrN2JqM0c1SmphMzkvSHdjRUJvdEVvU3FWU3owbDZnVUJBZTBIVmFuWFhxUFMvWmk2TEx5ZmlvbFFxSFZqZ3llZnp0Ty9aYURSZXVGOG1rMEd2MTBPdjEwTW1rNkZjTGxOUnFOOTNMcGZMY2VmT0hUaWRUdkE4RDdGWVRNVzJxM0MrdS9OOG5IU3oyYVQvMXY1Zkl0U1IzdXh5dVV4dmNya2N0Mi9mN3V1a3pPZnpkTUhOZFJZVXlPVnlxTlZxcU5WcUtxaVJlRzI5WGcrejJVeHZCb01CT3AyT0NtUWFqUVpxdGZwS3h4anBodWM0RHJkdTNjTG01aVoyZG5hd3U3c0xuOCtIVUNnMDhycUNjZU55dWJDOHZJeXBxYW0rYnRCR293R3hXQXlQeDRQZi8vNzN5T1Z5RUlsRWRLRURFWFNKaUV0dTlYcTlZN3lRaFZUazM0ckZJbzBGSjJPcFVDaDBqWENPeFdJSWhVS1luWjN0ZW54cE5CcDR2VjdNek14Z1oyZm4wZ3FHYURTS2I3NzVCa0toRUVLaEVKOS8vbm5mYTR0QUlNRDA5RFNVU2lXMFdpMlVTaVdlUEhtQy9mMzl2dU5aTEJiRGFEVENicmZEWnJQQmJyZkRZckhBYXJYQ1lERFFhK3ZFeEFRZGw2MVdpKzRqc3FDRWpDMjczVTZkME9SbXQ5dXA2NWNzZmlEeHowU3c1amh1Nk1xR2RxUlNLVDJXTXBrTW5qMTdoc1BEUTN6enpUZncrLzFJcDlOOVV6eitHbEdyMWJoOSt6YSsvdnByL09ZM3Y4R3RXN2N1WFh3V2k4WHc3dDA3UEhueUJBY0hCOTNTRHBnSVBBUk1BR1l3R0F3R2c4RmdNQmdNQm9QQnVKbFU4VXNQOElWWlJ4SUJyZFBwTGdqQTFXcVY5c21OMDNsWUtwWGc4L213djc4UGo4ZHpRUUFtTHBlNXVUbWNuSndnSG8rajJXd2lIby9qN2R1M3NObHNWSGdnVWJrQ2dRQWFqUVlMQ3d2NC9QUFBrY3Zsa00xbTMxdHY0cUNvMVdxb1ZDcW8xV3BvTkJyWWJEWTRuVTdNenM1aVlXRUJjM056Y0RnY0EvY0RFdXIxT2xLcEZOTHBOQUtCQURZM04vSHk1VXU4ZmZzV2g0ZUhmU2VJVlNvVmpFWWpqRVlqcHFhbWNPZk9IYXl0cmVIT25UdHdPQnhYbnJ3bTdqSUExREU0TE9WeUdjWC9mM3QzMXRYV21hNzkvcEtFa0FDREJKaStOZTV3WWp0eEtxblVTcjFKVmExMXNFN1hSM2cveFA0cysxUHNzUS8ySHV0Z1YxS1ZpbGNhTjRsNzA1aStCOUdvRitxUTlnRThqNmVFd0JnM0lUUC8zeGdhZ0pxcEtTRUp4cnllKzc3VDZkZXU1czduODlyYzNGUTBHajNVYXR6SjQvSFlTcTdYclFEMitYeTJJdjJvNnJpOXZUMXRiR3hvZkh4Y016TXp5bVF5eDFiQlNpL25FcCswVGFqSDQ3R0JnNWtSN2ZQNTVQVjZWVmRYWjU5N1ovanE4WGdxcm1jcVUwMTFvYm5NUENlbW90Q0VTT1pVS0JTMHU3dXJhRFJxRjQyRVFpR0Z3Mkg1L2Y2S2F0VzZ1anAxZG5ZZSt0eHhQcDl0YlczNjhNTVA5WmUvL0VVN096dks1L04yRG1nK242K29hRFNCYWo2ZnR6TWZtNXFhRGoxdjlmWDFkdVpvSUJCUU5wdFZYVjJkZ3NIZ3NZR2szKyszUWM5WlVDc0E5bnE5TlJmekdDWkVycXVyVTA5UGoyN2R1bVYvVCtaMzdhd2FOZWVaMTRkNTdaaVp5UzB0TFdwcGFWRlRVNVA5MlZSWGQzUjAyTmErb1ZEb3RUODNpc1dpRGJPQ3dhQTZPanJzYXpBY0Rpc2NEbXRrWk1SV200Nk1qR2h1Yms3THk4dmEzdDVXSnBPeHJ4Vm40R2tDOVBkVktXemVjL1gxOWZMNy9mWmtxcVRQblR1bkR6LzhVRjk4OGNXUnM4Q2RHaHNiTlRJeW9wNmVIdnU3ckJVQW0vZUUrZG04TjgxblRxRlFVQzZYcXdpQVU2bVVzdG1zTXBtTVVxbVVrc21rTXBtTXN0bXNmYjkzZG5ZcUZvdHBjM05UNTg2ZE83Uy93V0JRUTBORHVuRGhnc0xoOEN1Zm4xS3BwTG01T2ZsOFBydVk0T2JObXpVWDBCajE5ZlVhR2hxeW4ySG1lWnlkbmJYejY1dWJtKzNDbWFhbUpyVzN0OXNxZEZPRjI5blpxZTd1YnJXM3R5c2NEdHZQTjJjbGZxRlFrTmZyVlZkWGx6NysrR1B0N2UycHZiMWRmWDE5NnV2cjA4REFnUHI3K3pVd01LRGUzbDYxdHJZZU9XTGdiUWdHZytycjY5UDYrcm9XRnhjMU5qYW01OCtmNjlHalI2N3FFQ0hKdHZzZUhSM1YvL3BmLzB2LzhSLy9vVnUzYnIzeWIyRWlrZERqeDQ5MTc5NDlUVTFOSGRkQjRyZlhMdUJYUWdBTUFBQUFBQUJ3Tm1VbHBiVi9vT3RRb3VYMyt4VUtoUTdOWHl5WHk0ckZZcmFTN2wxV3pxYlRhUnNBZi96eHh4b1pHYW00UEJBSXFLK3ZUMWV2WHRYVHAwLzE0c1VMR3dDK2VQRkNmci9mVnZaVTMzWmdZRUIvKzl2ZmxFZ2t0TEt5b3NlUEg1K0pGcUYrdjE5ZFhWMjJGZXJ3OExENisvczFPRGhvcTVITTZYV0RTQk9BUFgzNlZNK2VQZFBZMkpqbTV1YTB0cmFtemMzTlkrZCsxcG8xYkFMTld0VmVKOTJmblowZDdlenNLSlBKMkhEZVZFcWRWQ2FUVVNRU1VTUVNPVlZMOGxnc3BrZ2tvczNOVFlYRDRTTVAwamMwTk5nQWEzcDYrc1RiYjI5djErRGdvSHA2ZW82c1lNdG1zMXBZV05Delo4ODBPenVyWURDb2REcDk1T1B4ZUR4cWJtNjJNMUxYMXRacVhzL244eWtRQ0tpeHNkRldXWWJEWVRVM04xZFVvVGxibFFZQ0FSdnltdmE5SmdRMVFiQ3BMalNCc2ZPMVdDZ1VsTWxrbEVna2xFZ2tGSXZGbEV3bUZZbEVORFkycHVucGFRVUNBZDI4ZVZNZmZQQ0JtcHFhbE0xbWJjRGs5WHAxOWVwVmRYWjIxZ3dIZlQ2Zit2djc5Wi8vK1orNmN1V0tvdEdvb3RHb3JWeVB4K00yNURNaHVzZmpVVnRibTNaMmRyUzZ1cXFCZ1lHYUFiQUpFSVBCb1AxOHE2N0FQZXRNd04vUzBtS0R2bks1Ykg5M3RaVExaVFUwTk9qaXhZdHFhbXJTbDE5K2FRTmVzMEJBa2cxSW5iOTd2OTl2WHgvbXRSRUlCQlFJQkNwYVFBY0NBUVdEUWR0ZTl6U3QxQXVGZ3VibTV2VDgrWE90cjYrcm82TkRuMy8rdVFZR0JpcXVWMWRYcDVHUkVZVkNJWTJPamlvZWp5c2VqeXNhaldwemMxTWJHeHQydG5rOEhsY2lrVkF5bWJSakRjenBiUVpuNW5rSkJvTUtCb04yeElLcGVqWS90N1cxMllEY2hJanQ3ZTNITGtJd0M3Wk1GYW1wbW5XMmdIWldqanZQY3k2K2NMWi9OdUd3c3dWMGRaVjVLcFhTN3U2dUVvbUV5dVd5L0g2L25iVmRIUURYMTllcnI2OVB3OFBEYW05dnR5M09qMU11bHpVL1A2OXZ2dm5HaHE1ZmZQSEZrUXNaakw2K1BuMzU1WmZxN096VTBOQ1FidCsrclVlUEhxbFFLT2pxMWF1NmNlT0dMbHk0b0s2dUx0dTF3angvcG1xOTFtSWY1L01wN2MvMC9leXp6M1Q1OG1XRlFpRjFkM2NySEE3YnhWdm1kRno3N3RkVjNTSEE4UHY5OXUvQmd3Y1BkT2ZPSFMwdExia3kvTDEyN1pvKysrd3ovZm5QZjlZbm4zeWlvYUdoVjRhL3BWSkpUNTQ4MGQvLy9uZmR2WHYzcURiM1plMHZqSHgzclcxY2hnQVlBQUFBQUFEZ2JESUh1ZlpVSXdDdXI2KzNMVHVkQjU1TnE5cElKR0lQK3I0citYeGV5OHZMbXBxYXN0Vzl6Z0RENS9QcC9QbnpHaG9hc2xWZ0pnQk9wVklhSHgvWER6LzhvUDcrZmpVMk5xcTd1OXZlTmhnTTZ0S2xTL3I4ODg4MU16T2pXQ3lteGNYRjk5SUsydVB4VkFRQkpoUnBhbXJTK2ZQbjFkdmJxNHNYTDJwa1pFUWpJeVBxNys5WGQzZjNxYXFIY3JtY290R29iWFU4TVRHaHg0OGY2L0hqeDVxZW5qNjI4amtjRHF1dHJVMGRIUjBhR2hyU2pSczM5TWtubjV5NjR0Y1pCaVlTQ1VXalVXMXRiZG1xUEJNQUR3NE82c3FWSzhmT0FUWHRTODBpZ2Z2MzcrdlJvMGRhWGw1K3JYMlM5c1BYNWVWbHZYanhRbTF0YldwdmI2LzVYTmZWMWFtL3YxOS8vT01mNWZGNEZJL0hiVEJTUFpmVm5HOHEwaTVjdUtEVzF0WWpuN05NSnFPRmhRVzllUEZDMFdoVW9WQkltVXpHaHBEVlFZUjVyb2FIaDNYOStuWDVmRDVic1ZwWFYyY0RPRFBQMGxUQ21mblJMUzB0YW1ob3NETXVUUUI4N3R3NUJZUEJpZ0RZdkZaTm1PY01nSTk2UExsY1R2RjRYTWxrMHJhTFgxOWYxK0Rnb0NZbkp4VU1CblhyMWkxZHYzN2RCc0NtQ3RIajhhaWpvNlBpL1ZyOTJFT2hrRzdldkttYk4yOHFsVW9wRW9sb2ZYMWRrVWhFc1ZqTXRxdzFGWW9tREF1SHd3b0VBalUvdDB4b2FnTGdjcmxzZyt6ZmFvaGlmb2V2WWlvWjYrcnFORG82YXF0U0pkbmZ0UW5nbkFHd3FXSTk3ZHpTa3lnV2k3WkxnK2xhOFBqeFk2MnRyYW1ucDBjZWo4ZTIrbmUrVDd4ZXIyMDFiV1N6V1cxdGJkblh5dmIydG1LeG1BMkJUYnZqVENaalgwUG1NWnRnMURsSDE2aCtIemdycEUyVnI2bnNOWi8zSnZBMUN6Sk10NHIyOW5ZYlRKNjB3MFAxSW94cXpubkFiNU41enlhVFNXMXVidHFxN0tQMm9iR3hVWjJkbmVybzZGQnpjN05TcWRRckYxNFZDZ1ZOVGs1S2tuM3VybDI3ZHVRc2RYTmZQVDA5OW05WVUxT1RPanM3VlNnVWRPM2FOWDM4OGNlNmVQR2l1cnU3MWRMU2NxckhIZ2dFN0gzVTE5ZnIvUG56cDE0TWRWS0pSRUw1Zk40dW9uQys3cnhlcjYyNmo4ZmpldkhpeGFIUE9lZm50N05yZy9sYUtwV1V6K2ZQeEdJNEo0L0hZMytYRnk5ZTFCLys4QWY5NlU5LzBxZWZmcXJlM3Q1WDNqNlh5MmxoWVVIZmYvKzlmdmpoQjgzTnpSMzFHUGNreGJTL09CSW5RQUFNQUFBQUFBQndOaFVrNVhWRXE3dVdsaGFkUDMvKzBFSFdRcUdncmEwdHJheXNhSHQ3KzUwSHByRll6TjVYTHBjNzFLSTNGQXBwWUdCQTdlM3RoNEtPUkNLaFgzNzVSYUZRU0EwTkRmcnJYLzlhY2JEWDYvWHEyclZyK3ZkLy8zZGJ5YlMrdnY1T0gwOXpjN1BDNGJBOVdOelIwYUd1cmk1N01tMVJUVkJuWnZxZFJpYVQwZlQwdEo0OGVhTG56NTlyWm1aR2k0dUwydGpZME1iR2huWjNkNCs4YlZkWGwyN2V2S21QUHZwSW82T2p0b0sxdTd0YjU4K2ZmKzE5V1Y5ZjE4VEVoTjJQOWZWMVJhTlJXNmxwZ3Z0QUlLREJ3VUY5K3Vtbit2TExMNDlzNjdpM3Q2ZE1KcU9WbFJVOWVmSkU5KzdkMDhURXhIRXRIU3Y0ZkQ0RmcwSFYxOWVydWJsWnlXUlNzN096R2hvYVVpZ1VxbG14NWZWNmRmbnlaZjNYZi8yWFB2NzRZKzNzN0ZTMFF6VXRVVTFvbU1sa0ZBZ0VkUFhxVlYyNWN1WFkxcVU3T3p1YW41L1g3T3lzblM5cHFtYk5Qam1aaXRicjE2OHJHQXpxK3ZYcktwZkxhbXhzdEVHdUNadWNyV1pObUJzSUJDcXFPRTNWcUFsNVRiQmdRcXpYRlFnRTFOblpxZlBuejZ1bnAwZjVmRjZwVkVyWHJsM1Q5dmEyNnVycTFOM2RyWTZPRHZuOWZodWdPMThIdFdaaW1wRENHWGFaeDl2UjBXRi9CODVnM2dRY1pnR0ptUTlhemVmejJXQ3V2cjVlNVhMWmRnalkydG82dEFERmJZTEJvSHA2ZWlUcHpEek9VcW1raFlVRjI4NTJZbUpDVTFOVFdsdGJVeXFWVWx0Ym00ckZvbks1blA3MHB6OGQ2dlJRTFJnTXFyKy9YMjF0YlJvZUhxNW9CVzNhUVZkWHZlN3Q3ZG1UOHp4bk5XMzErOFJaSVY5ZlgyL2ZaODdnM1BsK05POC9zMmlqT3R3N3E4emlrdmIyZHJXMXRTbWRUdHUyNlVjSmhVTHE2K3RUYjIrdjV1Zm5iYXZ4NHhRS0JVMU5UZW1iYjc3UjN0NmVFb21FL3ZqSFA3NHljRzFvYU5DVksxZHMrK2hTcVdRRDl0TjAwVEM4WG05RnR3VHplZnF1bE10bHU0Z3JsOHVwcTZ0TERRME5oMTRqenBubHp2QTNGQXJadnduTzE1ekg0N0gvdzVsVzNtYWgxbGthaTlIYjI2dnIxNi9yazA4KzBjMmJOM1hseWhYMTkvZXJzN1B6bGJjdGxVcWFtcHJTOTk5L3I5dTNiMnR5Y3ZLNC8zM3lrdFlrdlg0cmtkOHBBbUFBQUFBQUFJQ3phVS83QjdzT0piaUJRRUR0N2UxcWJXMDlGRDdtY2ptdHJxNXFZbUpDeTh2THJ6MXo5WFdaQTVhbU1xVTZBUGI3L2JhQ0toQUlLSlZLVlZ5K3NyS2lIMy84VVIwZEhSb1lHTkRvNkdqRk50cmEydlRwcDU5cWEydExzN096aWthang3WkNmaFd2MTJ2YjZwcHFKVk9OR1FxRjFOYldabHQ4bWlwSE0zdlFISlEraldLeGFGdHhtZ3JiNWVWbGpZK1A2OEdEQjNyeTVJbVdscGFPZld4TlRVMEtoOE4ydHQ2bm4zNnF6ejc3VEtPam94VlZkQ2VWU3FVVWpVYTF1cnFxNmVscFBYMzZWSThlUGRMazVPU3hBZlNMRnk4VWlVUlVYMSt2cnE0dURROFBId3FrcXF1VnpwMDdaMXVMT2lzVkRWUFJhb0pmVXhscjJoOTNkSFNvc2JIUnRzczlTbmQzdDlyYTJuVGp4ZzNiNGppUlNDaWRUdHZLd1V3bVk2dFEvWDYvQmdZR2RQWHExWnJWek9WeVdkbHNWcXVycTFwWldiRUgzWXZGb21LeG1GWlhWeFdMeGRUUzBuTG9ZSDlMUzRzdVhicWt6czVPNVhJNTJ3Yld0Sk05Nld6Z2Q4bnI5ZHBBS3h3T3Y1VTV1YWFpV0pKdG9XdUMvS01xeGs4aUVBaFV6RG8ydnh2VG12dktsU3NhSGg1K1pmdlozeEt6V0NHZno5dm44TFFMVHQ1RXFWU3FDR0xOUW9xTmpRMU5UazdxeVpNbmV2VG9rV1ptWnJTNXVXbmZvN0ZZVEtWU3lkNG1rVWlvdDdlM1l1NTdMZVkxK1RxcVd5VTc1MHViay9SeWJyWlplUEcrd25TejhNRlVlRHBiZUo4MjZId2Q1cjM0S28yTmplcnI2OVBRMEpBMk56ZFBGQUJMKy85N2pJMk4yY0MvVUNqb2swOCtVWGQzOTdIaGF6QVkxTVdMRjNYeDRzVVRQNVpYOFhnODcrM3pkVzl2VDR1TGk1cWFtbElrRXJIdHFXdjluZkw1ZkFxRlFycHk1WXErK09JTEpSSUpPN2FndWJsWmpZMk5GWjFIelBiTjMxUFR1V0Y3ZTl0K3pwb0ZUcVpGK3Z2b2ttTG1QcHN4QjlldVhkT25uMzZxenovL1hGZXZYajN4LzBtcFZFcHpjM082ZmZ1MnZ2bm1HejE3OXV4Vmk4VFNramExLzc4eFRvQUFHQUFBQUFBQTRHekthZjlnVjFIN2M4ODgwbjZMd0k2T0R2WDI5dGFjaDVyUDU3VzJ0cWJaMlZsdGJXMjlzNTN6Ky8yMkhiSnA5MmlxK1dwVnZaalFhM3Q3dStLeXZiMDlMU3dzNlA3OSt4b2FHcExmNzlmVnExY3IycHNPREF6bzVzMmIrdVNUVDJ3bDVtbEM0R0F3YUdmd25UOS9YdDNkM2JiS3NiVzFWYUZReU01ZU5iTUdUZlZpUzB2THFRL1NsOHRsN2U3dTJtRGVWTWt0TFMxcGJXMU5hMnRyci94ZGhVSWhYYnQyVFRkdjN0U05HemQwK2ZKbERRNE9xcSt2NzFRdE1wUEpwSjQ4ZWFJSER4N1l1YlpyYTJ0YVgxOC85RHVxRm8xRzlmanhZM1YxZGFtdnIwLzE5ZldIZ2tOVHJkblQweU92MTZ2dTdtNGxrMGtiK3VaeU9kdTIxMW5ONnB4WFd0M0d0cm01K1pWaGd0ZnJ0UWZQMjl2Ymo2d2N6R2F6eXVmejhucTlPbmZ1bkYya1VLMVFLR2g1ZVZtVGs1TmFYVjJ0cU1hS1JDS2FuNS9YdFd2WDFOdmJlNmpOYmpBWVZFZEhoNjJDODNxOWIzWFc1RmxrNWxnL2YvNWM2WFJhM2QzZHVuejVzaTVmdnZ6R2dVeXhXTFNMSi9MNWw4Zi9WMWRYZGZ2MmJRV0RRWDM1NVplNmNlT0dLMExnWkRLcDhmRnhUVXhNS0JxTktod082K3JWcTdwNDhlS3BGbnljVmlhVHNYTjV0N2UzdGJtNXFkWFZWYTJ1cnRyUERIT3FYdUJUS0JSc0ZlblcxcGJHeDhmMXlTZWY2UHIxNjdwMDZkS2hCVU52d3JUTlBTNVkvclhzN094b2NYRlJzVmhNZnI5ZmpZMk5xcSt2cjVnNzdGejA4bXN5ZnllN3VyclUxTlQweXI4SFRydTd1N2FDYzNOelUxdGJXL3JMWC83eVZzUGRzMlp6YzFQLzh6Ly9vL3YzNzB1U2J0eTRZZWVhVi9QNWZPcnU3dFpYWDMybHZyNCtsVXFsaWdWeTFYLzNKTmwyNXVWeVdjVmkwYmJqMzkzZFZUS1oxTnJhbWgxUFlQNnZlSmN0b24wK253WUhCM1g1OG1XTmpvN3E4dVhMdW5MbGlnWUhCOVhmMzY5ejU4NmRhRHVaVEVhUEhqM1NkOTk5cDl1M2IrdnAwNmNWaTBkcUtFamFrWlI0U3cvbGQ0RUFHQUFBQUFBQTRHektIWndxaGx2Ni9YNzE5ZlZwZUhqNFVQdG5VMW5wOFhoMDd0dzU5ZlQwMk1vUjU4azVVMDVTUllWVTljdzZaNldVYVl2WjBOQ2cxdFpXZFhWMTZjS0ZDeG9kSGRYUTBOQ1JBYW5mNzdjaFc2MkRrN2xjVHRQVDAvcjIyMi9WM054c3cxbm43WWVHaHZUblAvOVowV2hVeVdSU3E2dXJSejV4WHEvWHRyNDBZV0J6YzdPNnVyclUwOU5qMnpuMzkvZXJyNjlQUFQwOWFtdHIwN2x6NTk1Wk5aaXAzakZ6TWljbUpyUzB0S1JrTXFsQ29hQmdNS2hpc1doL1A2WnRwWms3Zk9uU0pmM2hEMy9RNTU5L3JwczNiOXBnOVhYa2NqazcyM2RxYWtvLy9mU1Q3dHk1YzVJRHI0ZkVZakU5ZmZyVXpzMzk3TFBQMU5QVFk4TUxFd0NiRVBqamp6KzJ0eld2VTFPZGJxbzVUVUQ2TnF2aFRIWDNhZVZ5T2MzT3ptcHNiS3lpL1hpcFZOTEd4b2FtcHFaMDY5YXRtZ2ZjWHpYMzA0MFNpWVFtSmliMDdiZmZLaEtKcUx1N1c5ZXVYZFBpNHFJR0J3ZDE3dHc1VzRGdjJ1NmFTa2p6MldQbVJ6dWYwNzI5UFR0ZmRuWjJ0cUpLTEpGSTZPSERoM2JtOVBiMnRucDdlKzMyelgwNDcrZE4yL2RXVjVZNnQxZDl2dk8rbmZNOXpmbGVyOWNHUEdaeFFpYVQwZmo0dUoyZHZiVzFwZGJXVmwyL2ZsMmpvNlBxNmVsUktCUlNVMU9UL1h3MjIzUnV2OWIrbWZzeW56WE92dzNPT2RuNWZGN3BkTnJPNUYxZVh0Ym01cWJXMXRhMHVMaW94Y1ZGYlc5dnYzTCtjcUZRME5MU2tqWTNOelUzTjZmbDVXVWJIcHM1NHM3S3gzZlpxdmQ5TVMzd1U2bVVOamMzTlQwOXJhbXBLZTNzN05pdUJxWXRzWFBtY0dOam8zMS9tSy9tTTlIOFRwMEJZWFhiNnJmeGVXT0NTSi9QZDZyM1NUYWIxWXNYTCt4WWlGS3BwTjNkWFEwT0RwNTZubTh0SmhBOTZSenRkeUdkVHV2cDA2ZjZ4ei8rb1o5Ly9sbGRYVjBhR0JnNHNnclhqQWE0ZGV1V2J0eTRZVjhMcC8wOE1oMWZwcWVuOWV6Wk16MTc5a3pQbnovWC9QeThkbloyM3JnRGpOL3ZyMWlnWUNwK0wxMjZwQTgvL0ZBZmZmU1JMbDI2OU1xRldVNmxVa2s3T3p0Ni92eTV2djc2YS8zem4vL1UyTmlZNHZINGNUY3JhMzlCNUxyMi95L0dDZjMyUDAwQkFBQUFBQURjYVU4dkEyQmJBZHpRMEtEaDRXRmR2bno1MEt4WGM5QnhhR2hJZi8zclg3VzV1V2tQNXBzcVNOT1MxeGtHbThyTHVybzZHMGFZQTgzT0N0aVdsaGFGdzJFN3E2NjV1Vm10cmExcWEydXpjM3lQcW5veEI3ajlmbi9ONnQxSUpLTDc5Ky9iVUxtcHFhbWlJck96czFQLzltLy9abWQrUnFQUm1pMksvWDYvZW5wNk5EQXdZT2NZOXZUMDJKbStMUzB0OWpHRlFpRWJvcnhMSnN6dDZPalFsU3RYVkNxVjFOallxSVdGQmZzNDB1bTBkbmQzbGN2bHRMZTNKNi9YcS9iMmRsMitmTm1HUGlNakl4b1lHRGpWak45Y0xxZkp5VWs5ZmZwVVkyTmptcHljMVBUMHRCWVhGeFdOUmsvMXVCWVdGdlR0dDk4cWs4a29uVTdyODg4LzEram82Q3R2NS9GNGJMQngxbVd6V2MzUHoydDhmTHdpQUM2WHk0cEVJaG9mSDlmQ3dvTFM2ZlNackR3MGMzc0xoWUwyOXZic2U3RzZXdmx0eUdReXRoM3p6ei8vckVna29uUG56bWxzYkV3Ly9QQ0RlbnA2MU5IUm9ZNk9EclcxdGFtbHBjWHVpd213dkY2dmNybWNNcGxNUlhpUlRxYzFNek9qSDMvOFVjK2ZQei9VSm5ScmEwdVBIajFTUEI3WGd3Y1AxTkxTWXNNTGMvTDcvUlZCcWJNbGNEWG5Zb2hhNGFuNWpEU2ZrMll4aHJPOXNIUHhqRGtGQW9HS3hTa21DRGRoVmp3ZTErcnFxaFlXRnZUOCtYT05qWTFwWldWRjZYUmFEUTBObXB1YjA1MDdkK3pubU9tc1lKNUxFNkthSUxFNlpDK1h5eFh6Y2sxbGZENmZ0NVdGcVZTcTRwUk1KcFZNSmhXUHg1Vk9wNVZNSmhXTHhaVEp2TjRZem13MnE1bVpHZTN1N21wK2ZsNTM3dHhSWDErZit2djc3V0ljODNuOVc2N2dUcVZTaWtRaVdsaFkwTlRVbE1iSHh6VTlQYTFJSktKTUpsT3hvTXE4ZnN4cnc1enY4L2xzTjRTbXBpWWJrSnUvbytiM2J2NU9tdlBNOTIveTJWb3NGaFdOUnJXMXRmWGF2Mk9uN2UxdDNibHpSNWxNUnF1cnEvcmlpeTkwNDhZTmRYVjFuWHFiaHVuQWtNMW0xZHpjclBiMjl2Yytrem1meit2cDA2ZjY5dHR2ZGYvK2ZjM056YWxRS0doalkwT1pUS2JtZ2lxUHgyTS9DOTZHUUNDZ0N4Y3UyTG5OTjIvZTFNVEVoTzdkdTZjZmYveFIwOVBUcDlxdWFWVjkvdng1ZFhaMnFxK3ZUd01EQXhvY0hGUjNkN2V0RURjTFVWN0g4dkt5N3R5NW8rKysrMDQvL2ZTVHBxZW5YOVgyV2RyL2YzaGIwcEtrVjE0Wkx4RUFBd0FBQUFBQW5FMEY3UWZBRmFVazRYQllJeU1qdW5MbHlxRURiK1Z5V1lGQVFOZXVYVk5IUjRkU3FaUU5mYlBackcxN2ExbzFtOWx5cHZMU09RL1JIS2dNaFVKcWFXbXhRVzk3ZTdzTmVrOTZ3RFdmejl1WmdFZmRKcC9QYTNsNVdROGZQdFRRMEpCYVdscjA0WWNmMnFxU1FDQ2c0ZUZoZmZycHA1cWRuVlVpa2RETXpJejI5dlpzVlhJb0ZGSm5aNmVHaDRkMThlSkZYYmh3UVVORFF4b2NITlQ1OCtmVjJOajQzZzhTRzhGZ1VGMWRYV3BwYVZGL2Y3OCsvUEJEcmErdmEzTnpVN0ZZek03ek04R1h6K2RUVjFlWGJ0eTRvVnUzYm1sb2FPaTFRNUZjTHFkVUtxVjRQSzdGeFVVOWVQQkE5KzdkMDhPSEQ3VzB0SFRrak4rVHltUXlldkhpaFYxY2tNbGtsTTFtMWRmWFp4Y0ovTmFaQS9vTEN3dDJycTJSVHFlMXVMaG9nN3FQUHZyb2pXYmNHbWJSaGducXFtZWJsa29sKzlWOGJ3STk4NzJwNWpTVm5HWmhRVjFkblpxYW11eUNEbWRvYUFMRDB5Z1dpemFjZlBMa2lSWVhGNVZNSm0zVloxMWRuVnBhV3RUUjBXR3I4RnRiVzIwclhCT0tlTDFlWmJOWld4bHZKSk5KTFM0dWFtSmlRaHNiR3pYM0lScU5LaHFONnVIRGg3WXEwQVN1NXZFNXF5bmZSZ0RzREh2TmRhdGJsNXZGRHVaenlzd0lOU0d0MysrMzFiODdPenMyT0p5Ym05UFcxcFpkMkJPUHgrMGlCQk1jTmpVMUtSUUsyWG53cG8yd2VmK1p3TnRaR1ZyOXVqQmZ6VUtPZUR4dVo0dnU3dTdhdnhkdlE2bFUwdkx5c3BhWGx4VU1CdFhXMXFiQndVR05qSXhvZUhoWXc4UERObVJxYm02dWVHMDRLN3JOOSsvNzg5eFpKVjBvRkNvV1dPVHplU1VTQ2EydnIydGxaY1V1dUhuKy9MblcxOWRmV1kxWi9WaE1lMmdUOUpyZnIxbTRaRVlXaEVJaGhjUGhpdk5iV2xwc2xYSDFBb3ZxU25IejJ0amIyMU11bDdPaDlmejgvRW1DdVdPdHJhMHBIbzlyWjJkSDhYaGN5V1JTSDMzMGtaMTVleEptWVlKcDUyOWFrcSt0cmNudjkydDBkRlJ0YlczdjliV1FUcWMxTlRXbGYvN3puN3A5KzdhV2xwYVV6V1lWajhjVmlVU1VTcVhlNi82MHRiV3ByYTFOVjY5ZTFaVXJWOVRaMmFsU3FhUjhQcTlZTEdZWC9qazdFamhmQTg0RksrZk9uVk43ZTd2YTI5dlYwOU9qM3Q1ZVhiaHdRUmN2WHRUSXlJamEydHBlKysrRWFkKy9zcktpaHc4ZjZ1OS8vN3QrK09FSExTd3NuTFJkZFVINzRlK0VDSUJmQ3dFd0FBQUFBQURBMlZTVXRLdjlBMTlsYVQ5RTdPdnIwOVdyVnpVeU1uSW9FUFI2dldwc2JGUi9mNys2dTdzcmdpUG55VlQrbXBPcFdqTUhocDNuT1N2S1RsTlZWQzZYdGJhMlp0dUhIdFVhVWRvL3VENDVPYWwvL09NZkNvZkQ2dXJxcW1nRkxVa1hMMTdVMy83Mk4wbFNSMGVIMHVtME9qbzZkT0hDQlEwTURLaTd1OXRXKzdhM3Q2dTF0Zld0dHAxOEUxNnYxeDdFYjJ0cjA5RFFrSzM4TmVGcFBwKzNGY0ROemMzcTZlbFJYMS9mYTdmMk5CV1Rab2Jvek15TVptZG50YkN3b0pXVmxiY1c2RWl5YmIyM3Q3YzFOemVuRHo3NFFOZXVYZFBseTVjUHRTbi9yY2xrTXRyYTJsSWtFcW41bkVXalVkMi9mMSt0cmEzSzVYSzZkZXZXcVI5elBwKzNJVWt5bWJTQlhEcWRWaUtSVUNxVlVqcWRWamFiVlRxZHRvc3FqbnB2TzhOaGM1blA1MU45ZmIwOXlOL1oyYW4rL243MTl2YXF0N2RYWFYxZEo1N2hXUDA4M0wxN1YvLzkzLyt0cDArZkhncU9pc1dpZG5aMkZJMUd0YjYrYnR2K09vTTlVNlZxT2hZNFB5dXkyYXh0WC80cTV2R2J4Uy9PZlhHMlhwWnFoNy9PN1J3VkRwdkxuR0ZLcmZ0d2hpdW1xdE1aQ0R1cmgwM2I0SjJkSFcxdWJoNWJmV25Dblh3K3IyZzBxclcxTmJ0TmN4L1YxYzZtQXRoWkJleDg3UlFLQmVWeU9XV3oyWGM2UTlUSVpyTmFYVjFWTEJiVDZ1cXF4c2JHMU5iV1poY2JPYithejNIbmJQYm01bVkxTlRYWngva3VxdHFkKzJyZWo4Nks2SGc4cmxnc1psL2JPenM3MnRuWlVTd1dVeVFTT2RGOGQ2UDY4OFg4WHRMcHRDUlZqR0F3ZjVmTnlWbFZicjV2Ykd5MDFlR2hVTWkybURhM01YK0x6TUtvZERxdDFkVlZ1MUJvZVhtNVl0YjJhV1V5R1QxLy90eFdBcy9OemVuamp6L1c5ZXZYMWRuWmVleHRkM1oyTkQ4L3I4WEZSUzB2THlzU2lXaHJhMHZSYUZUWmJGWWpJeU1LaFVLNmV2WHFHKy9uU2FYVGFUMTgrRkMzYjkvVzExOS9yYkd4TVR2N09wRklhR3RyeS83TzNqZWZ6NmVCZ1FINytYRHUzRG5Oek14b2MzTlRoVUtob2hOQnJZcHk4M2ZoL1BuekZhOGRjOTVwSy9QbjUrZjErUEZqUFhqd1FBOGZQdFRZMkpnV0Z4ZGY1LytRaktTbmt1NklHY0N2aFFBWUFBQUFBQURnYk1wSlNoMThMZnQ4UG5WM2Q5dnd0NzI5L2RBTlRIdlhzMkJ2YjArcFZFcExTMHY2OGNjZjlmVHBVMFVpa1ZkV1FlM3M3T2pCZ3dmcTdPelUwTkNRUGNodk5EYzM2OWF0VzZxdnIxZHZiNitTeWFUNit2cjB3UWNmYUhoNFdLMnRyYXFycTNzcmN6Nk5VcWxVVWVXVnpXYnQzTjV3T1B6YXJYODlIbzhOTW96cXVjem1lcS96R0V3cmFWTkYrT1RKRS8zeXl5OTY5T2lSbHBhV2xFNm4zMnJ3YTVSS3BZb1pueE1URS9yMDAwKzF2cjZ1UzVjdUtSUUtWVlNoT1N2UGpwdGo3RnlrVUd1V3RhbkNNNVZOenNwTEU3NlpoUXpWSWQxSjVQTjVMUzR1YW4xOS9jZ3dybGdzYW5KeVV1VnkyUWF6MTY1ZFV6Z2N0aFd0Sm5oelZnODZLM2x6dVp5dHZOemUzbFkwR2xVc0Zxc0ltbloyZHBSSUpKUklKR3dJdGJ1N2ExdjRtdWZFUEcvSE1TMjRXMXRiMWR2YmE2dmxMMXk0b01IQlFRME1ES2kxdGJXaWN2YTQxMkUybTlXelo4OTArL1p0L2ZUVFQ4Zk9jaXlYeXpZNGMrNVByZXU5QythNS83VlZ6d3lXYW44R25KU3Bqdnd0eW1ReVdseGMxTkxTa3YzTUN3UUNDb1ZDNnVycVVtZG5wem82T3RUYTJtcXJYc1Boc01MaHNGcGFXbXlRYnNZU0JBS0JRL09QYXozZmh2TjVkMzdXRkFvRjdlN3UyczlWMDAwaEhvOHJHbzFxZTN0YjI5dmIydHJhMHNiR2hqWTNOeFdQeDIyQS9yWkRkQk1JVjM4V1ZWZXltNFVKcG5yWVZJZWE4UTJtQXQyMGpHNXVicGJINDFFaWtkRGMzSnllUDMrdWlZbUpVNDhHcU1XRXdPdnI2MXBhV3RMcTZxcWkwYWl1WGJ1bTgrZlAyeERmTEU3WTNkMVZKQkt4VmYrVGs1T2FtWm14SWZEdTdxNkN3YUMrK3VvcmZmWFZWKzlsMXJycHFQSHMyVE45L2ZYWCt0ZS8vcVZuejU1VmZKYmxjam5GWWpHbFVpa1ZpOFZmYmN4QmIyK3Z2dmppQzUwL2YxNFRFeE5hWFYxVkxwZXpzNlhOb2o0ekNzTzhuOExoc0czUGIvNStudlovS2ROT2ZubDVXVC8vL0xPKy8vNTczYjE3VjNOemM2KzdzS0FzYVVmU0krMVhBQjgvZEJ3VkNJQUJBQUFBQUFET3Bvb0F1TFcxVmFPam83cDU4NmI2Ky90LzVWMTd0YVdsSlQxLy9sdy8vL3l6N3QyN3AyZlBucDE0bnVEVzFwWisrZVVYZFhkM3E3R3hVWC80d3g5czVZblA1MU5uWjZmcTZ1clUzZDJ0YkRhcmNEaHNyL3UyWmJOWmU1Qi9lM3Ziem5hTXgrTWFHQmpRVjE5OXBROC8vUENONytlNGRyUW5rVXdtTlQ0K3JyR3hNVTFOVFdsaFljRldUcTJzckx5M2lyNlptUmtsazBtdHI2L3I4ZVBINnUzdFZYdDd1NTBUYlNyUm5ITXRqenA0YndKZVo2dFZVNGxuRHNiSFlqR2wwMm41L1g1N0FOdFVselkwTk5pRDNlYUF0Nm1NTzhuelBEazVhV2M3SGhjYXBsSXBUVXhNMkRibW82T2pOa1FOQm9PcXE2dFRxVlRTN3U1dVJXdGRaK1YzSnBPeEZZYVpURWE3dTd1MmJic0psczMzdVZ6dWpRTlNFeVJ0YjI5cmZYMWRFeE1UdG1xK3Q3ZFgvZjM5R2g0ZTF0RFFrUHI2K214SVUyczdaZzdtZ3djUGpnMS9qL0t1d3Q2enpQbVlmNCtQdnhZVHZrcXk3NGV0clMwdExpN2E5N1N6NHRYNStXRXEyODFjWlZONTdhd3VsM1FvR0RaaHJ6UDBkWDdtbUNwN0U3Q2Jkc1RPNnZ4VUtxVkVJdkhLeFUzdjhubHpmcFZlZm5hYWVjUk5UVTMyODlCVWlwdkZIY0ZnVUI2UFI3dTd1L1p2M0duZXh5ZXh2YjJ0SjArZUtKRklhSFoyVnBjdlg5YlEwSkN0TGkyVlNrb21rN2J0L3ZMeXN0YlcxclN4c2FHdHJhMktOdnltTTBLeCtPN3p3SFE2clJjdlh1akpreWU2ZCsrZTd0NjlxNm1wcVVOakFjcmxzbloyZHJTOXZhMTRQSzZPam81M3ZtKzErUDErRFE0T3FybTVXUU1EQTRyRllpb1dpNGRhMHp2RFlGTTUvalpzYjIvcnhZc1hldjc4dVQxTlRVMXBjWEh4TlArTDVDUXRTQm9UNGU5ckl3QUdBQUFBQUFBNG0vS1MwcEt5OWZYMTVhR2hJZjNwVDMvU0gvLzRSL1gwOVB6YSsyYVoyWldtT2phWHkybHRiVTFQbmp6UlR6LzlwSHYzN21sNmVscXBWT3ExZ282RmhRVjk5OTEzdGtKbGRIVFVWdE40UEI3YjN0bjhmTnJnOUtnMjJZVkNRWWxFd3JieFhGMWQxZHJhbXBhV2xqUXhNYUh0N1czYmRyS3VyazREQXdPMkV1MTlLUlFLeW1ReWlzZmpldkhpaGU3Y3VhTzdkKzlxZkh4Y2tVaEVtVXptVjZsMmpFUWk5a0IvVTFPVGJlZmQwZEdoOCtmUFY4eXZiR3hzdE0rWmVYMllZTVpVeDVvcVYxTXBhMW9obTk5UElwRlFmWDI5T2pvNjFOblpxZGJXVnR2UzB0bnF0S1dscGFKMXJHa2Y2MnlWSysyL0psWlhWL1d2Zi8xTDMzLy92WmFYbDEvNW1ET1pqTWJHeGpRM042ZkhqeDlyYUdoSW5aMmQ5ajVNUmJ4cEQ1dE1KdTFqTWEyL3ExdXpWMWNtdmd2WmJGWkxTMHRhV1ZteFZkT2hVRWdEQXdPMmxmZWxTNWZVMzkrdm5wNGVOVGMzMnpieGUzdDdtcHViMHpmZmZLUHZ2dnRPUzB0TDcyUWY4ZnRsNWlMdjdPd2NxdWl0L3R4M3R1TTJRVmYxekdjVEFKdXZ6dkRYT1JmWnpOTjJWdFZYdnlmTmJjODZFNnFhVnVqT3hVYk81L0I5UGFaa01ta0R3UWNQSHRoRkppMHRMZHJiMjFNMEd0WHk4cktXbHBhMHZiMWQwZHErbW1tQm5rd20zOHI4ZGVubC93VG1mNXBrTXFtWm1SbGJ4ZnI0OFdPdHJhMGRHZmpINDNITnpNeG9jbkxTVmx2WDR2eC93em52M1hTR01DM2V6VmlJY3JsY3NkREIyZTY3MXVJY244K244K2ZQcTYydDdkQnpWLzBhZUZQRll0SE9hZDdaMmRIazVLUisrZVVYM2JselIyTmpZOXJZMkZDaFVEak5hNnNvYVVYU0x3ZGY4Wm9JZ0FFQUFBQUFBTTZtdktTTXgrUEpoOFBoOHNXTEYvWFpaNS9aOXNkbmdUbll0N201cWZYMWRhMnRyZGw1djdPenM1cWRuZFg4L1B5cFdwTm1NaGxOVEV5b3VibFo3ZTN0OG5xOUdoMGRyUWhZWDdlbGI3VkVJbUhEQlZPMTR3em9UTXRkMC9MVHRPSmRXMXV6Z1Y1VFU1TXltWXh1M2JwbHF6NU44UGd1RlFvRlRVMU5hV3hzVEJNVEUzcng0b1dtcHFZME96dXJTQ1R5VHUvN0pNekJiUE1hTVhOZlRRdFMwMTdZQkRUUzRRRFloRExtQUxtcHlET0JxYW1vM2QzZFZWMWRuWnFibTlYUzBsSlJLV2ptSFRvUG1sZFhFVFkxTmRuNW9pWXNXVnhjMU1PSER6VStQcTZkblowVFBlWlNxV1FyeFRZM045WFMwcUpBSUNDZno2ZFNxV1NybGszVjcvdW95ajRwMDdLMldDd3FFb2tvRm90cGUzdGIwOVBUTnJ6djYrdFRaMmVuR2hzYnRiZTNaNE9PUjQ4ZWFYeDgvSjFWRFFMU3UxMEk4WHZ5SnEzRzM1WlNxYVJzTnF1RmhRVTc1emNZREtwVUtpbVR5U2dhaldwM2QvZVYyOW5jM05TVEowOTArZkpsM2J4NTB5NEtPNDFjTG1mLzVwdi9hOHppcjVtWkdVMVBUMnRxYXVxVmYxOFRpWVFlUFhxazd1NXVCWU5CZmZUUlI0Y0MyblE2YmVkRHgySXhlNyttOHQyMEhjL244ellBbDJRWE41aEZPbGV2WHRVSEgzeHdiS1h4bS82ZjlDcTVYRTd6OC9PYW5wN1czTnljbHBhV05EYzNwL241ZWMzTXpKejQ3K2NSa3RxZisvdi9TZHA4S3p2OE8wTUFEQUFBQUFBQWNEWVZKS1U5SGs4dUVBaVV6WnpaVkNwbEsvQ0t4YUs4WHE5dDUxZXJzdWNrc3crZDMxZlBRYXlldjJwYVM1b1ppS1lxZG5aMlZuTnpjNXFkbmRYR3hvYlM2YlNkVFhwYXBxMnhtVWNYQ0FSMDRjS0YxNjZ5TmRVODVxdXB4SXhFSWhYQnRhbnlOUUdZcWFDdG5qMXJucXQ0UEs0N2QrNG9IbzlyZFhWVm82T2o2dTd1VmpnY1ZudDd1NjF3clc1SCtxclp0MGN4SVdJbWs5SHM3S3p1M3IyckgzNzRRWThlUGRMS3lvcDJkM2ZmU3p2TTB6QUh0amMzTjQ5OGZkWlNIVmJVcXBDVjluL0habmF1cWZDVERyOFh6TW5yOWFxK3ZsNk5qWTBLaFVKcWIyOVhTMHVMeXVXeWJZdTh1Ym1wVENaenFxREV1Uy9PeC9KYkNiRHkrYndXRmhhMHNySmlaNHVmUDM5ZVhWMWRDb1ZDS2hRS05pQ0pScU8vMmZtekFINWR5V1JTcVZUS2ZsYSt6djhNa1VoRTkrN2RVMU5UazdMWnJENzY2Q09GUWlINWZEN2JOV0p2YjYvaWM5aFphV3NXdlppT0VtYlV3L3I2dWhZWEZ6VTdPNnVGaFFWdGJHd29rOG1jcU0zMzd1NnV4c2ZIRlFnRWJQZUg0ZUZoMWRYVjJSbm9pNHVMZHFieDV1YW1uU2NkajhlVlNDUnNsNHVqN205d2NGQi8vdk9mWlVhRHZDL09OdW5GWWxHeFdFd3JLeXQ2K3ZTcEhqeDRvS2RQbjJweGNWSFJhTlJlNTAzdVR0S2lwSzhsL1NRcCt6WWV3KzhOQVRBQUFBQUFBTURabEplVUxKZkx1K2wwdWp3N082dHZ2LzFXaTR1TEZXMlhBNEdBT2pzNzFkblphZWUzbWNDeHZyNWVmci9mSHZ3MHdhTnBmZWs4bVJhRHB2V2dtWGxvVHFZaUpaVktLWmxNYW1kbngxYkdtakIxYzNOVFcxdGJiL1ZKMk5qWTBQMzc5K1h4ZU9UMysxVXNGblg1OHVVVGg4Q20rblI5ZlYwYkd4dmEzdDYyK3htUHh4V0x4ZXpKaEhZbm5WVXM3VmNnNVhJNVJhTlJQWC8rWEtGUXlMWWJibTV1VmlnVXNvRndXMXViMnR2YjdaemFjK2ZPbmZoeEZJdEZMUzB0YVhwNldqTXpNeG9iRzlQejU4LzE0c1dMRTdVb1BpdmVkZFdyYzhIQ1NlenM3R2g1ZWRtMmlTNlh5N1l0ODl2YWw5OHE1K2RNTnB0Vk5CclZ5c3FLclFCT0pCSy9Tb3R4QU81eTJzL0tUQ2FqRnk5ZUtKL1BhMlZsUlJNVEUvcnd3dzhWQ29XMHRyWm01L1NheFZkbTRaeHBxMnlDWUROZjNiVEtqc2ZqZGg1eUxCWjc3ZjB5SXhEeStieG1aMmZWMzkrdit2cDYyK0o2WTJOREd4c2Jpa2FqZGk1OEtwWFM3dTZ1OHZuOEs3Y2ZqOGZWMXRhbTRlRmh0YmUzdi9iK25jYnU3cTQyTmpicy8xUHI2K3QyUnZQUzBwTG01K2UxdUxqNHRoWURsU1J0Uy9wWmhMOXZoQUFZQUFBQUFBRGdiTXBLaXBiTDVYUThIaTg5ZS9aTUd4c2JDb2ZEdHJvbG44K3JxYWxKUTBOREdod2MxTGx6NStUeGVHejQyOURRb1ByNmVsc05hUTZDZWp5ZWlsbHpwcjJ1cWU0d3MxWk42R3RhN1pvV3lLWmxvVG1JYXFwbzNrVVlWQ3FWdExxNnF2djM3OXRXd1lGQVFFTkRRL1pud3ptN0w1ZkxhWDE5WFFzTEM1cWJtOVBNekl6bTV1YTBzcktpalkwTnhlTnh1OC9tZVRqdC9NTkVJcUh4OFhGTlRVM1pHWlErbjArTmpZMEtoOFBxN094VWIyK3YrdnI2MU5mWHA2NnVManZEdUsydFRTMHRMUlZCdlhNbVk3bGNWaktaMU5yYW1zYkh4L1hMTDcvbzRjT0h0clhpU1E0VzQ5WFM2YlRTNmZTdnZSdG5ucW5rQnZDYjk5dGRuZUlRaThYMDlPbFR6Yy9QYTNKeVVwOS8vcm02dXJvMFBUMnRlL2Z1YVd0clMvWDE5YXFycS9QVUNvQWxWY3lDZGk2S2U1UC9hYmEydG5UMzdsMDllL1pNTFMwdHFxK3ZWN0ZZdEVHdjgvK1AxLzNmSXh3T3E2MnRUY0ZnVUtsVXl2NmY1NXgzTGRYdTh1SlUzVm1qMXZOZzVpeHZiR3hvYm01T2MzTnptcDZlMXV6c3JCWVhGeFdMeGV4Q29iZTR3Q3VwL2ZEM1g1SlczOVpHZjQ4SWdBRUFBQUFBQU02bW92WXJJSko3ZTN1bGVEeXVlRHh1RC9DWndMYSt2bDdMeTh0NjhlS0Znc0dnYlc5YnF3TFlIQ0NVS2c5NE9nOUNtaGJQdVZ5dW9oSjRkM2RYbVV4R3lXVHl2VmMxbHN0bHJhNnU2dTdkdTZxcnExTkRRNE5LcFpJR0J3ZnRQT1JrTXFuMTlYV3RycTVxZFhWVmtVaEVLeXNyV2x0YnMxVXJrVWhFT3pzN0oycmorTHJNckZxbmVEeXV0YlUxTFM0dTJncmd0clkyaFVJaFd3SGMzTnlzNXVabU93KzNycTZ1b2tyYlZGNXVibTVxZVhsWk16TXptcCtmSjRRRGdQZXIrZzlmclQrRVpjZlg2dE54MnlscnYrcXhMTW4wS3k0NXpxdStycE81bnVHcHNjM3F5K1M0ekhtZjFmdTE1N2orOGYzNlg5N0dlVi9POHp4VjN6c3ZMMWVkVjMxK3JXMTdKWG5LNWJMSGpBQjQvUGl4MHVtMFFxRlFlWDE5M1RNN082dXFiWHRyN0VmMXZuc2QxenZ1TVhxcXJsZnhQSmJMWmVYemVXOCtuL2RFbzlGYTIzRSszdXJINk5YaDU4aGVMNWxNNnZIangxNmZ6K2ZwNit2enRiYTJldHZhMnJ4dGJXMmU5dloyTlRZMnl1UHhWQ3pTTS8rM09RTm44ejlmTHBkVE5wdTFDM3lTeVdUWnRLTjJMUHdySDFRdWV3NDZxbml5MmV4cC9obDgxZXNvTDJsYTB2K2ovZXJmMUNudUF3Yzh2K1UySkFBQUFBQUFBTy9icTJhV3ZtVjlrdjRQU2Y5YlV2aW9LNW1xWCtkYzJaUE1BSllPejFnMTMxZlAvejBMN1d5OVhxK0doNGYxNVpkZjZzc3Z2OVRObXpmVjBkR2hmRDZ2MWRWVlRVOVBhMkppUXBPVGsxcGFXcXFZMjJjcWczL05mVGV0dVUwcmJuTmVNQmhVWTJPanJkaDJWbW1uVWluRjQzSDdPSEs1M0ptZDh3dThRMi82NFZNZHhGVi9yWFhkV3BmWENxaXF0MTB6dE5IaEFFdkhuRi9yZmszZ1pINCs2WFBpcVRvZGRidnE2MVh2NS92ME51LzNKTStUTXl4MWZsK3FPbjlQbGFGcTljL21Pc1dEay9tKytyWm0yK1kyUmUwSFgzdDYrZGp6a2dvSGw4bXhMMlo3NW5kWk9EaFZoNlhPZlRDWGVSM2JLRlp0eThsemNMM2RnMjE3SmZuMGF1WXhWZ2VqWnB2bWU5L0JxWFJ3bXozSGVWN0grZFdQeVd6Yko2bmVjWDJycnE2dTdQUDV5b1ZDd1hOUWtXcTJFWkRrZDJ4ZlZiYzE1YjUreDdhZCsxL043SU5YdFlOMHIyTmI1ckU3NzljOERxL2pQSE41bldOZnplM00rOUxuOS9zOTRYRFkxOWZYVjMvNTh1WEdpeGN2Tm82TWpEU09qSXcwWEx4NE1kRFcxdWIxZXIzS1pETGxmRDVmTGhhTDluKzRxczRuNVh3K1h6NElmTXM3T3p2bHJhMnQwdnI2ZW5GbFphVzBzckpTamtRaTVWZ3NWczduODZXRGhXN2VRcUZRVnlxVm5Bc05UcXA4OE5qcUhZL1ArWndWdFQvMzkvK1c5SDlLV2xEbDRvWlgzd0Y1WndVcWdBRUFBQUFBQU02dXVQYXJINDQ5QUdabWRicGRxVlRTMHRLU2Z2amhCMjF0YmVuaHc0Y0toVUlxRm92YTJkblI2dXFxbHBlWHRiS3lvdTN0N1Y5N2R5dVlxcHRYL1o1TU1PeHMwdzM4Q282cU9qeXV3ckZVNCtmcThLdzYrS3ErWHNseFhlZjFxcmRWdlIrMXFpV2QrMS9VZnBCbHRta0NKdk56ZGNoVXZaOUhCWkxPUU00WjBwamJWVy83VlpXT3p1cFB3eG4rSGdxOFhzRnN0MDZIcXgrcm55c1RXSm43Y0laVUoxSHJPVEw3WGF1aXNsYmdmTlQ1enYydXRUM25jMlIrRnlaWWRJYWd6c3VjejRNSlVaMmhhVWt2UTFsbitGcHczTlpjM3pEWHlUdTJ1ZWM0SGZYNkttaC83SVB6ZDFLUWxOUExZTkw1bUp6eUI5Y3puQUZxc2VyNjVqTG5ZNnZGZTNEYnJGNkcwaWQ1M1ZWWE1SL0ZxLzNYWkhXZ2JWNm41dnhxemlDNzNuRjlxMWdzbG81WUpHWEMyS01DWUhPZUNYYjlWZWRYWDgrRXRIV084NTNiOHh4YzdneWRuWjhKZGFwOFAxY0g1UFdPeTV5L0EwK2hVUEJ0Ym03NnN0bHNmWDE5ZlV0VFU5TzVjRGpjMHRuWkdjN244K0ZTcVJROGVDNktoVUtoVkNnVVZONm5ZckZZTnUyYTkvYjJ5dGxzZGkrVlN1MGxFb2x5TkJyZDI5cmFLcXl0cmVVV0Z4ZExDd3NMcGJXMXRlclB5anBWQnQvT0N2VGpYaVBtT3ZXU21yVy9xTEZEVXBla2xvUGJia242UnRML0sybnVtRzNoaEFpQUFRQUFBQUFBenE2TTlnTmdTaG9PRkFvRnpjL1BhMzE5WFhmdTNKSFA1N05WTFdZdThtOTVMcTRKaW9IM3BEb1VjNFpNZTQ3elROQlYwdUV3ekp4eXFxeDZ6T3RsRUxhbi9UQXBkM0NlTTBETDYyWFFWTkRMUUN2bjJEZG5vT2JjVi9OOTNuRlo5ZWVsZVVOVnAwSkh2ZEdxeno4dTBETDM5VDdldE02ZzZLU2MrMzZTQU0rRXE2cng5VGpWOTJIQ01CT1MrWFY0T3o3SDViVXFKMDA0Wm9JdkU0SUY5TEpDMDFrUmFnSzFzdlpmRDd1UzB0ci9PNXJSeTRCMzcrQXlaN0RxUE1ueHRWemp2S08reXZGenJkdlh1bTcxZHB3aFluVnI1K3J2blVIbVNWL0xyenJmN1U2NmVPS2s3eFh6dGRiemVaTDN6MUdYSGJkdHJ5UjV2VjV2UTBPRHQ2R2h3UnNJQkh4K3Y3L2U1L1BWZTcxZXZ5VHZRUWVZa2hrTFlpcUF6U0l6U1NxWHk2V0R6aVNsdXJvNjFkWFZsZXZyNnhVSUJJb05EUTFxYkd4VVkyTmo2V0RrUkhYMThtbVo5MnRJMGtlUy9rUFM1NUtDa2g1SStyOGszWHVEN2NPQkFCZ0FBQUFBQU9Ec0t1bGxDSUlEeFdKUnFWUktxUlNqNGZDNzhhcHFXMmNnV3F2NjBYbStNOHcxb2Fzem5EVkJxN01GcmZuWkdRb1hITGZKSFd6RDJWcldoTGg3anV2dXFuSi9pbzc3Ti91YWQvejhldzJxOEpJSm5JcDZHU29IOVRJY00rYzUyd2ViMXhURDB1RjAwcytUTS8rNTQvZjdGUWdFVkY5Zkw3L2ZiOGRMT0VkL0hEVUt4QkVBVjR5ak9BaUI1ZmY3ZFJBRUt4Z01LcGZMYVcvdnFHTHhOL0pVMHFxa1pVbm5KTjNYL3R6ZjdMdTRzOThqQW1BQUFBQUFBSUN6elZrdEI4RDluS0d1Q1UrZFZiYk9yNmFDMWxRN21pQTNJeWw1Y0o3ei9QVEIrYW1EMnpoRFlkTXEyUmtrbDZ0K3JxNDRMTmE0am82NXpYRlZqVUF0MWE4aFUxa080TGN0SytsZjJnK0M2eVZGdGYrM0NXOEpBVEFBQUFBQUFNRFo1cHhiQ2VDM28zcmVaM1ZiWlJPOEZsVFpOdGxaa2J0YmRjbzR2bmRXMzVwZ04zdHdTa3RLcURJQXpvcmdEQUJ3ZHBnVzdYZ0hDSUFCQUFBQUFBRE9OaE1NQVRqYlROQnJRbDFuZ0p2UmZoQWJQL2c1cGYzQU5pb3BwdjJ3Tm5ad2NzN1NOVzJYaTZxY3IrdXMxQzJyc3ZXeWMyWXZBQUQ0SFNJQUJnQUFBQUFBT052TVBNeXlKTThycmd2Z2RJNXJzKzVzeDJ4YU1qdkRXRk94YTk2cnB2MXk0dUNVMG42d0c5ZCs0SnQyWExaMWNIN3M3VDRjQUFEd2UwWUFEQUFBQUFBQWNMYVpLc0tTSk4rdnZDL0FyNmw4eFBmVlNsWFhNVld5WlZYZXpxUEtGczNtUE9kMWl0b1BkWk42V2FHN3BaZFZ1enVTTmcvT3E1N1ZhMW8wRi9SeWJxbXA3alh0bm1udkRnQUEzam9DWUFBQUFBQUFnTFBOaEVrRXdIZ2Q1YXF2eDExV2ZSMW5XRnBTN2VDMU9rdzk2dWZxOExWVTR6clZwK3A5TVMyTjk2cTI0OXczNzhIWGtsN096VGJYTmJjMXMzY05UOVgxelhuT3gyakMzMDFKRVVrYkI2ZnRnMU5VK3hXK0FBQUFad1lCTUFBQUFBQUF3TmxtS2dxcEZJU3pzclU2TUhWV3V6b0RVMmZvYVFMVWtsNjJMM1lHcWM3TFREdmpuUFpmZjZxNjNaN2pkczV0T1FOYlV3R2JkL3hzMnBtYjdabnRGL1N5dmJLNTNMUThOK2M1WjlwV2g4blNmZ2hzOXRGNVdiSHEraVZWQnNiT0lMbFdCYkNwd3M4Y2ZNMGVuQUFBQU00a0FtQUFBQUFBQUlDenJhRDkwS2tvS2ZBcjc4dnZVYTBxMlZwVnNFZUZzclYrTGpsT3p1MDVBMVhuL1psZzFBU3BaVldHcGM3dE9tZlNtbkRWYks5WWRSM25MRnV6VFZNUnU2djlXYlc3cWd4ZzkxUzVLS0hzMko1NVRDWVEzdFhMME5mc2YwYVZRU3dBQUFEZU1nSmdBQUFBQUFDQXN5MnIvVm1qZVVtTmVsa1ZpVGR6VlB2aFd0V3dabWFyczdyVUJLVUZ4M1djczE2ZDUrMDVUamxWVnBJV1ZGbDFhNEpYVTNVcngyMmRvV3QxcGF1enl0ZnNXN0hHZFp3QnRMTnFWNDdybU12eU5XNWZIVjVYWDFiOVBRQUFBTjR6QW1BQUFBQUFBSUN6elFTR3BnclQ3UUh3VVhOZ1R6SkhWcW9NS0d0VjREb3JaSjBCcVRQb2RYNXZLbGh6anZQTUtldllqbWwzdkt1WFZiTm1mck96dmZHdTlnUDk5TUVwcjhyQTFkbm1HQUFBQUhodEJNQUFBQUFBQUFCbm0ybWxXM2pWRlg4amFsWFpWcytPTllHcENXWk5aYTB6akhYT3N6WFBqd2xSVXdlbm5DcURWVFBYMWxUcDFxcW9MZGI0dWJxYXRqb3dMcXN5R0RiWGM3WmNsdU43UWw0QUFBQzhNd1RBQUFBQUFBQUFaNXV6QmUvN1VEM3J0bm9HYnExV3ljN0xxdHNFTzg5enRraDJWc1ZXVjhobTlETGtkWjZYMFg3MXJLbUlOa0ZzVWkrRDNaeWtIVWx4dld5em5IK3pwd1FBQUFENDdTQUFCZ0FBQUFBQU9OdXllaGxtVnJkR2ZoUFZGYmpWclpDZGxiZk9hbGNUcUdZZHA3emo4cFQyQTluRXdUNmJFTmhzejdSTHJxN3dkWDV2S25lZExadnpxcXdFZHM2Yk5mZnZyTG9GQUFBQWZwY0lnQUVBQUFBQUFNNjJwS1JKU1hPU09pVTE2K2pLMityelRQQnF2bGEzTlRaaHE1bGZtM2Y4bk5YTHl0dXNYbGJpSmcvT1N4OThuMUpsS0J5VnRIMXdQZ0FBQUlEM2pBQVlBQUFBQUFEZ2JJdEsrazVTNk9BMHJQMGdONldYbGEvT3NEYnZPSm1RTm4xd0hWTmg2d3lCblMyWm5TZHpYazZWRmNBbUxNNVYzUmRWdHdBQUFNQVpRQUFNQUFBQUFBQnd0bVVsTFV0Nkp1a2pTVjd0QjdIYjJnOTljOW9QZWVONk9SL1hCTUt4Zyt2RnRCOENtM2JQMHRGemVxc3ZPK284QWw4QUFBRGdEUEtVeTI5emRBd0FBQUFBQUFBQUFBQUE0TmZpL2JWM0FBQUFBQUFBQUFBQUFBRHdkaEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTeEFBQXdBQUFBQUFBQUFBQUlCTEVBQURBQUFBQUFBQUFBQUFnRXNRQUFNQUFBQUFBQUFBQUFDQVN4QUFBd0FBQUFBQUFBQUFBSUJMRUFBREFBQUFBQUFBQUFBQWdFc1FBQU1BQUFBQUFBQUFBQUNBU3hBQUF3QUFBQUFBQUFBQUFJQkxFQUFEQUFBQUFBQUFBQUFBZ0VzUUFBTUFBQUFBQUFBQUFBQ0FTL3ovd0NncDVhcW03M01BQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "haxeui-core/styles/shared/close-button-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAODXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZpZdiO7EUT/sQovAfOwHIzneAdevm8CVZQoUt3Ss6kWKdWAAjIyIyOgVvM//17qX7x89Fr5kHIsMWpevvhiKz9kfV51vxvt9/t59evTPB9XjxOWQ45Pd37N8br+Pm4eA5yPyk/h00D5Gsi05xPFX+PnLwNdD3IyI8sP4xqoXAM5e06Ya4B6lqVjyenzEto8n9f9JwxZlsbbumOSzsfX330ieiPwHGftdMZp3p2zZwJOvq1ylROGd+sSF3LRPhL3+71UAvIuTo9XYUZLpurfXvSM1v2TeX9cfUXL2+sS9yXI8fH59rgy4T0qO/Sfnuzz9ZN9Pj6MufLoS/R38NfIa6+ZVVTytvh4Lepeyv6J6xqPkEdnxdQi6ERyKPMpX4WvTFZ3UmGQsI2vboqxILGMN8NUs8zcn910pujtVBasrLXdun0wg12x3Ql+Xr7MsskVN1wG175h984+5mL2Y4vuaj8t8+RhuNQaBjOSF7/9Ur+9YS0pBSKcH7FiXtZKsJmGICfvXAYiZl1BDTvA99fXl+DqQDBIlKVECoFtZ4gWzAcTuA2048LA56lBk8Y1ACHi0YHJUBnegBqVYKLRydpkDIHMAFSZunXeNhAwIdjBJK13LoJNtvJobklmX2qD5bDiOGQGEoH6SmBTXAUs7wP5k3wmh2pwwYcQYkghhxJqdNHHEGNMUUixJpe8SiHFlFJOJdXsss8hx5xyziXXYouDNEOJJZVcSqmVZ1ZGrtxduaDWZptrvgXVYkstt9JqJ32676HHnnrupddhhxvwx4gjjTzKqNNMUmn6GWacaeZZZl2k2nJq+RVWXGnlVVZ9oHbB+vL1C9TMhZrdSMmF6YEaR1O6hzBCJ0EwAzCrvAHxJBCQ0FYw09l4bwU5wUwXS1UEyySDYDaMIAaCfhoblrmxU/YgKsj9T7ip5J9ws/8UOSXQ/RK5V9zeoTbq7qZuIyRVKEHVjurj/MzV5irN7uVTfXfit58/G4jV6eVdK4synW0QIE/S+FxMgdaIoVaUcTYjmxVMGDqtbpsfMS3WH7tbc023FguDMFN3fq1i8uQYwxmSD3jrCr425QtIt5hKkMv/NIw8w72cJHbww6yKJLFl2WoSeddrW9OEMtu+xC0X4bpENckNOVf3cfo6SV+X0wuG5PwKgeHS/zKcOuN9DFcjzaT3BRUmuoapZGaavdjJKxKDPCbUmKkoGk2B5OasLk+luX6xxrY4s6YPrSUZuK62owazztZrLSaWMaBWzz9i+RVfdf/A7d4vnQd4rOhXCrG50KyPxZrcM0WSTZc2HIOb1TZuGb5Nw409t6bSXiHJPfY8tA1SniNXP3ueaUeLEjLvolVOtPZp9TX6RKsQLUu0SBmz42XP8RBT7TtJVh85rbE6UZjWIhSyus4+ndOas22ESG3P4M9g9c+DKRntL4NBaKEPhpToc2Eo5PcqTctVjWrf8HeEtlt1QkApTLMkgr41IpyKQS9uTiXkwpSNcC8d2xgRINu0UQLdSzwJGWZuO9CmDcsEOEO6mCI4B7qkrhtj7UhA6HAthMtg0iNVR71wiOwpKsyQFismhSKPXHCS5wmoE1lYMtR5itaGlqWYcmf0Xs7YqKiTRnAumW3KX1KRlSRipOdI3RvkG6SbLMMZeMR6zWO06SqjopFpeXpJcRlA4imTQvUS0Z0xRLRIvwrET7i6QxbB7HpY1+VqnatP/MsG1suKpl1nEiDB3bSKwiyWaV2UXgwUGVGOUJmejgZGifjhHHS9l2vyVUwUVZCsRijawVLJg0CXqEyF+GdNsXRP/0T0VULrpqqxCR2QS4OE37m050c2+ZNNsQJgk0r3qdBLamGaZ+kmxU2WczQlB+jHd9XkHRPKJq2rbNxVNjOjl4auI3lacGJ6oZBIDM70fFfVb1bRs+tUKdhIH5MQeMSv88EtMsvxTY7iUjbaUMAJhA0VjCkeGueeES2fgEiGUZ5k2OanICVxEiP6OzH8lRhj1jA7ZUi3PamrgqdorgibUVbnVsoeRvzSKcJ5dkz3o5+TW8mzJXlBLs49XnDgu9fA0OfAtRZmMRElX6e6J6qkGKZU+UsZPlehb2iHVno8s8/jwbKzJ3hS7RvDxZMzH540NYByAO21kaYp1q9LtXVE4Cu9JY0sQURUSHgIYiwpnCWgxK6y1I8EJRWptX7yp1ieKOPuiHknA91RLJsgNnzgsgFk2kCIFGrIutGnO6vJn6nFEH9uwYu8cgsEBwky2Ftq8bOhw7oso1u65LCIiAVqJQgjxP2sctcaOTdQ9AVlhvVEDszmJ9WUqH3tzsU6ChdwuWxjRIW089yDS8jeiA7g9wfeHzG6OqKn9r/CS0mBkmJ9gm6qFNGfw1kinXm+42ARKvj+KbVqIB0mnlA5rke0cO7IAWS1DUQgWZTWSCerNdrzJr54Ex9LgzqCZMww6CVK1U6iRylxxXXHuX5TXzzUxw1kip6N2ypOGjZWodaLfiOCPaCpToO3aciOUJBFnwKUBcd5889NP4nu6Xm2olu5s9bW6GHORzg116pRHxg6jVzkjk5MwAFBwgMxoQ1hZ/gWYona0hVVBzKD5vfa0tUgWzDt+85BSPVVttS7lLR8dzK/9kxbRQ51JgzTEQTlW201z08CiglM+kxqdFqyVgt3YhakDB3d4DDnHIc5W40gXXenhXkP1PsqWXmiaEbtrIqlQo7V0Sr/PNxU5Feg9VNwOTuRDHMO60rZvQLC8bLjAy33BP93jG+TjkPGewj6U+tRV++5S/yG6BkggYfK3g3AIS9nNaI3WD4RzRGlgjs6TYD4SWREKZyGp8tekjzzoY2wRpc2om5F/7StjeYRWufs0znpZrMMpJ8op8pkx+iEp0eaEDYnAykGbgr8BSqgyMnsKHQp1ZqAV/b4RF4gOvZhcwr8Xny++JVJ6Dxlrv2aa1BvJ1u3jsMpvpsr+qTgcahr3jf0grx6D/1YItepDzhtFBrhGN7FT0omYKxRM2aMvDCRXTMj3ODsjXS54ATamyD+9ulm9vvHVmWLNdkV4FcH+ESvhnxHJJ76sN8NFN39aL1UGcdfFhd+Oo838zoOkthCHTdH0zPQhtAgv+fN2F9m5cS/QxGFmWMyZBWlDjUiB8aV64U62ssK6JhPmusvn5H+owqqrIERTgq/NCJOin5svZNtPtKcOkOU9io8F6WG3sqsXf1SSFUEkPFlFCT5Np1xRPdqOi9H+npSBjKOpiiWaFkrdV+E8DbfeQisfDAlVBhtic8B78NIZPEiv+HUDwv94pK3YjPmbx5aBDLepjFfdHOdKXvSZemd9oOSHipu7Zyt09ZG2blBU1IPyXTD9aKc0tVWW7pU09XNqnbSU4OFCiSzXwX2Q2gPLU/2Dp1tdJT9lhpGL078qTb8y/TQZOm9KanLPcQPM/DWCxBnGHg7k09GVvTZcbHMyIYdi+3kN7W/aOxcxxwgbxpztOTbAH5PtNxNr4RDPTS2JpnmpOtWuFDL9oRwmkS5QRjhZj4K9C3dqYvvhCJby0CdRwhE5h2dvrCpPG835xpV75D9EzCidzYwNyy0StnqseLLl6RkS56GIDsC+hFxJSzXzaKOH7WxFa6k0x6UhLLp2rFpe6+tNoMU8rvuHneo97eETg8nqz1XacdaKechrpXGrmXPHjHHsqV3nfh6NUUsEOD4hRZBLR6zy6NE4ufLjcTLjdiHyjeisRQ6cGfDhv4odajKR5oCopXrhzVCdvj3/QCe0N4RsHpi3nxod1DzvQ2pXNYjerY8mPJD9x7ahxbzQCIrFGKchaSK2660ZezW1/ZhVy634mvDLUy7faXYjme/orZh6S0ey5IO0dLGf2u91Dvv9TPrBUVXjlMxIv4xfgj17Rmg6OMZXtzi9g29uWnDlunpIdMvlc5oCj8pW8bzNEzz0d3OVsg3fvG2qh/pod7nR6nXsqTASAIK794RwRu/82Dqcg2XZ2D04xrEMzw5sDcW+sl/qRcD9qsFfaxHfV4QAmDoHrHr1yoqaXPvFMYnpT27dVDwgFvPjsKHzpYtBR+1B99rn9LjT5Mb3xuZ42PMxltNH/q7faMW999ypPcmZGDM2OFb5sla+3W1SDmSHZ1dW5YN1XicDu2f7vFwOhKoy+nE6KhB2a1G8waoyUWRK/7kp6fWHrThEc+4MntvGrXEy/SzaRSl8em9aSRuNqOhXRjyFxnbadtN0VnlV0FhjcoajXjjsBsQfPzkHdBGl9Zcxz3gHVCb5HhvKsruO2iNQXW5j61Z0ozmoWU50xWKSB5Q2wP60G7o2wZBEVqEmhhm2Wi0W2CHjTwq7macgOIQSedMbuU5Sc04Sao+NnrK3kk09kq2N8Vb/E038aabBzGrnzEzWURrsqSFW9ROShEOtYsmHo+D9XC2sWJhXZnUnjcn/ZwL5U4/vST5doiR8M73js4URyRiRyz+Bk4dSYTNE0k0jngwyZ+zLydFLyUEvqc+3d4R3taJLFXfeKP8Z2OF/BULiO6QjTjMflLy5Pr2yeFMq76dM428zxygy5mTMKeSjl9eOz7CBZ5H581LO9sR8Y2Xdt6b07Zt7YyE6WhnYoTgThYcMGmhHNJD9X8vz9/bVfUTv/oTu6p+4ld/YFeHOruB606dK3H2hso6Gyrjr7kF/aGPzoii3pdtP5ldejs7VSUlzBK1HmSzihvC1d3T626k2ZtB683c1dkN2n+HaCXRTLUIYF4ZmscgubNfYuW/ech+iZt4NdmHEAlEU782AvEi/4e/P8qn+scDsJwh/xXmv5MzpkQypzotAAABhWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TpVorDnbwa8hQnSyIijhKFYtgobQVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi6OSk6CIl/i8ttIjx4Lgf7+497t4BQq3EVLNjAlA1y0hEI2I6syr6XtGDYXTDj0GJmXosuZiC6/i6h4evd2Ge5X7uz9GrZE0GeETiOaYbFvEG8cympXPeJw6ygqQQnxOPG3RB4keuyw1+45x3WOCZQSOVmCcOEov5NpbbmBUMlXiaOKSoGuUL6QYrnLc4q6UKa96TvzCQ1VaSXKc5giiWEEMcImRUUEQJFsK0aqSYSNB+xMU/5Pjj5JLJVQQjxwLKUCE5fvA/+N2tmZuabCQFIkDni21/jAK+XaBete3vY9uunwDeZ+BKa/nLNWD2k/RqSwsdAX3bwMV1S5P3gMsdYOBJlwzJkbw0hVwOeD+jb8oA/beAf63RW3Mfpw9AirpavgEODoGxPGWvu7y7q723f880+/sBXHpynogl0ycAAA12aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjAwOWI2NzE1LWUyOGQtNDU3MS04ZDAyLTk5NDdjZmRjNjZlYSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowYmQ4MTlmOS1hNGZiLTRiMWMtODk1MC00NTVhNjUyN2UzNjQiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmODk3OWEyOC05ZTdmLTRmYmMtODJmNi1iMThkMWM0YzY0ZTUiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY2OTU0MDU3NTY3ODkxNiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjMyIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMjoxMToyN1QxMDoxNjoxNSswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjI6MTE6MjdUMTA6MTY6MTUrMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowOGVhZDZhMS1iMWExLTQ2MTgtYWViNi0zN2Q3ZTgyNjc1NjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMTEtMjdUMTA6MTY6MTUiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+IVzj2gAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YLGwkQDymth/8AAAEfSURBVCjPnZBBTsJgFIS/97d/OYAYNy6NwXtwAhMw3oEVARO66gYISUkM8Q5GMB6Ai0DC2g2Bvf5t/+cC25SlzvbNzJsZ+CMEIJktrr3RiZGsnwwGhzphNFlcWqvzIihG437/0wCoYQy0VaNVkqbNM3KoK6AdFMEYIARwmelH1i8VvVNvP+Lxcydq5IX3+oZwK7AT3FMVCSBJ06b3donQQtkC5kSWjctMdxr3jmeCU4SXi/LT73EnuE4yHO5LjqkLGtGXqGplooo4Z89MTb2g9/YdoSXIBmWLcBNaea0PYcr8NqwX/H7M8qAjyAah5U9DXFUC1WheOrssuE+Gw/007h1F3EP1KZJZJciDPAbW9TUAksHgYEzWBdbGm5j/4AfnRH96CoMGXAAAAABJRU5ErkJggg"},{ name : "haxeui-core/locale/fr/std-strings.properties", data : "c2F2ZT1TYXV2ZWdhcmRlcgp5ZXM9T3VpCm5vPU5vbgpjbG9zZT1GZXJtZXIKb2s9T0sKY2FuY2VsPUFubnVsZXIKYXBwbHk9QXBwbGlxdWVyCnNlYXJjaD1DaGVyY2hlCgpyZWQ9Um91Z2UKZ3JlZW49VmVydApibHVlPUJsZXUKaHVlPVRlaW50ZQpzYXR1cmF0aW9uPVNhdHVyYXRpb24KYnJpZ2h0bmVzcz1MdW1pbm9zaXTDqQoKc3VuZGF5PURpbWFuY2hlCm1vbmRheT1MdW5kaQp0dWVzZGF5PU1hcmRpCndlZG5lc2RheT1NZXJjcmVkaQp0aHVyc2RheT1KZXVkaQpmcmlkYXk9VmVuZHJlZGkKc2F0dXJkYXk9U2FtZWRpCgpzdW49RGltCm1vbj1MdW4KdHVlcz1NYXIKd2VkPU1lcgp0aHVyPUpldQpmcmk9VmVuCnNhdD1TYW0KCmphbnVhcnk9SmFudmllcgpmZWJydWFyeT1Gw6l2cmllcgptYXJjaD1NYXJzCmFwcmlsPUF2cmlsCm1heT1NYWkKanVuZT1KdWluCmp1bHk9SnVpbGxldAphdWd1c3Q9QW91dApzZXB0ZW1iZXI9U2VwdGVtYnJlCm9jdG9iZXI9T2N0b2JyZQpub3ZlbWJlcj1Ob3ZlbWJyZQpkZWNlbWJlcj1Ew6ljZW1icmUKCmphbj1KYW4KZmViPUbDqXYKbWFyPU1hcgphcHI9QXZyCm1heT1NYWkKanVuPUp1aQpqdWw9SnVsCmF1Zz1Bb3UKc2VwPVNlcApvY3Q9T2N0Cm5vdj1Ob3YKZGVjPUTDqWMK"},{ name : "haxeui-core/styles/default/dropdowns.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBEUk9QRE9XTlMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmRyb3Bkb3duIHsKICAgIGljb246ICRhcnJvdy11cC1kb3duOwogICAgaWNvbi1wb3NpdGlvbjogZmFyLXJpZ2h0OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIHBhZGRpbmc6IDZweCA4cHg7Cn0KCi5kcm9wZG93biAuaXRlbXJlbmRlcmVyIC5sYWJlbCB7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgouZHJvcGRvd24gLml0ZW1yZW5kZXJlciB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwp9CgouZHJvcGRvd24ucmVxdWlyZWQtdmFsdWUgewogICAgYmFja2dyb3VuZDogJHdhcm5pbmctYmFja2dyb3VuZC1jb2xvci1zdGFydCAkd2FybmluZy1iYWNrZ3JvdW5kLWNvbG9yLWVuZDsKICAgIGJvcmRlci1jb2xvcjogJHdhcm5pbmctYm9yZGVyLWNvbG9yOwp9CgouZHJvcGRvd24ucmVxdWlyZWQtdmFsdWU6ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybmluZy1iYWNrZ3JvdW5kLWNvbG9yLWVuZDsKfQoKLmRyb3Bkb3duLmludmFsaWQtdmFsdWUgewogICAgYmFja2dyb3VuZDogJGVycm9yLWJhY2tncm91bmQtY29sb3Itc3RhcnQgJGVycm9yLWJhY2tncm91bmQtY29sb3ItZW5kOwogICAgYm9yZGVyLWNvbG9yOiAkZXJyb3ItYm9yZGVyLWNvbG9yOwp9CgouZHJvcGRvd24uaW52YWxpZC12YWx1ZTpkb3duIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRlcnJvci1iYWNrZ3JvdW5kLWNvbG9yLWVuZDsKfQoKLmRyb3Bkb3duLnZhbGlkLXZhbHVlIHsKICAgIGJhY2tncm91bmQ6ICRzdWNjZXNzLWJhY2tncm91bmQtY29sb3Itc3RhcnQgJHN1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvci1lbmQ7CiAgICBib3JkZXItY29sb3I6ICRzdWNjZXNzLWJvcmRlci1jb2xvcjsKfQoKLmRyb3Bkb3duLnZhbGlkLXZhbHVlOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHN1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvci1lbmQ7Cn0KCi5kcm9wZG93bjpkb3duIHsKICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1jb2xvcjsKfQoKLmRyb3Bkb3duLXBvcHVwIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwogICAgYm9yZGVyLXRvcC1jb2xvcjogJGRvd24tYm9yZGVyLWNvbG9yOwogICAgcGFkZGluZzogMXB4Owp9CgouZHJvcGRvd24tcG9wdXAucG9wdXAtZnJvbS1ib3R0b20gewogICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1jb2xvcjsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRkb3duLWJvcmRlci1jb2xvcjsKfQoKLmRyb3Bkb3duLXBvcHVwIC5saXN0dmlldyAuaXRlbXJlbmRlcmVyIHsKICAgIHBhZGRpbmc6IDZweCA4cHg7Cn0KCi5kcm9wZG93bi1wb3B1cCA+IC5zY3JvbGx2aWV3LAouZHJvcGRvd24tcG9wdXAgPiAuc2Nyb2xsdmlldzphY3RpdmUsCi5kcm9wZG93bi1wb3B1cCA+IC5kcm9wZG93bi1zZWFyY2gtY29udGFpbmVyID4gLnNjcm9sbHZpZXcsCi5kcm9wZG93bi1wb3B1cCA+IC5kcm9wZG93bi1zZWFyY2gtY29udGFpbmVyID4gLnNjcm9sbHZpZXc6YWN0aXZlICB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAwcHg7Cn0KCi5kcm9wZG93bi1maWxsZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjsKICAgIGhlaWdodDogMXB4Owp9CgouZHJvcGRvd24tc2VhcmNoLWNvbnRhaW5lciB7CiAgICBzcGFjaW5nOiAwOwp9CgouZHJvcGRvd24tc2VhcmNoLWZpZWxkLWNvbnRhaW5lciB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDBweDsKfQoKLmRyb3Bkb3duLXNlYXJjaC1maWVsZCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKICAgIGljb246ICRzZWFyY2g7Cn0KCi5kcm9wZG93bi1zZWFyY2gtZmllbGQtc2VwYXJhdG9yIHsKICAgIGhlaWdodDogMXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZG93bi1ib3JkZXItY29sb3I7Cn0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBNT0JJTEUgVkFSSUFOVFMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmRyb3Bkb3duOm1vYmlsZSB7CiAgICBtb2RlOiBtb2JpbGU7Cn0KCi5kcm9wZG93bi1wb3B1cDptb2JpbGUgewogICAgd2lkdGg6IDc1JTsKfQo"},{ name : "haxeui-core/locale/es/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "haxeui-core/styles/shared/window-expand-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVorDnbwa8hQnSyIijhKFYtgobQVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi6OSk6CIl/i8ttIjx4Lgf7+497t4BQq3EVLNjAlA1y0hEI2I6syr6XtGDYXTDj0GJmXosuZiC6/i6h4evd2Ge5X7uz9GrZE0GeETiOaYbFvEG8cympXPeJw6ygqQQnxOPG3RB4keuyw1+45x3WOCZQSOVmCcOEov5NpbbmBUMlXiaOKSoGuUL6QYrnLc4q6UKa96TvzCQ1VaSXKc5giiWEEMcImRUUEQJFsK0aqSYSNB+xMU/5Pjj5JLJVQQjxwLKUCE5fvA/+N2tmZuabCQFIkDni21/jAK+XaBete3vY9uunwDeZ+BKa/nLNWD2k/RqSwsdAX3bwMV1S5P3gMsdYOBJlwzJkbw0hVwOeD+jb8oA/beAf63RW3Mfpw9AirpavgEODoGxPGWvu7y7q723f880+/sBXHpynoD2GeAAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCxsJIBEM5IxvAAAA7UlEQVQoz8WQIUtDUQBGz3dnWDCKA9cG+rQbDDaDe4hgtq3pJhaDNqtWcVcZ+gcEwfDceyBjC4OZTd63brBYhInhXYNTw1CTeOLH4QsH/hrtt9tjky9TC7Uw6P4k1mO3+Jh/uDWFQbEh1LFJWvlOtklaEeoUBsWGEWoBGZ7zk8TtjMquhucMQKgrgHqzvyr5CyCP/GG1HOwB2GZ/F/kD4FVifbM8c6mPp+PYLRl0BYx7OHp/ZBt4zvBrW2HQGm5fnF7fz2fGxMDEcHoyaGUjnO59VhqpEaVzynEDPgd+uRrO3v3a2kauZCNX4l94AwHMSZhOXSBeAAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/it/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "haxeui-core/styles/shared/check-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAJu3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZhrduS6DYT/cxVZgvgAQS6Hz3Oygyw/Hyh1j+2xb+Ym6T4WZYmiQBRQKLRb//rndv/gE31MLomWXHO++KSaamiclOv+tHP0VzrH+zOe0X++7t43ApciY7z/LfmZ/7ru3wvcQ+NMPixUnoV8/3yjpmf98mWh50XRLAqczGeh+iwUw33DPwu0e1tXrkU/bqGve3yev91QbGsc9ssneg9f/0+K96bwnhjCwrUXxxDTbUC0v+BiOyd2VJsY4zm3Y4jlsQSHfOen64NV7jdUXmf+h+tfQIn5vu648NmZ+T1+e93L9853x8Uf3hzH+82fru/+RNUXJx8f71nc3uveXUsZl+ZnU6+tnDMmdlwez2OZr/InnOv5Vr7F8Z4B5JPA7HyHrz4Ay/bJT9/89uuMww9MTGEFIAkhjBDPtQJENYx4OcsT+/odNNY4YwGtAbyRq+Ftiz/vred1wxdePD0zg2cxf8Mf/j/fHxfa20Le+6u8fYVdwZICMww5OzILQPx+xZEcB7++Xz+GawRBOW4ubLBd/V6ii39iy+IoHqAjE4XxzjWv81kAF/FuwRgfQeDKPorP/tIQ1Hv8WMCnsVAhaUIHAi8SJlaGFGMGnBLs3Tyj/swNEu7LcBZASMxRgabGBlZGbMSPpkIMNYmSRCSLSpEqLcecsuScNRv5NY2aVDSratGqrcSSipRctBRXamk11Ag5Ss1Va6m1tsZLGys3nm5MaK2HHnvq0nPXXnrtbRA+Iw0ZeegobtTRZphxwhMzT51l1tmWX4TSSktWXrrKqqttQm3HnbbsvHWXXXd7o+bdDetv3z9Hzb9QCwcpm6hv1HhU9bWENzoRwwzEQvIgroYAAR0Ms6v4lIIz6AyzqxqnScBKMXCmN8RAMC0fZPs3dr+Q+4SbS+l/wi28kHMG3f8DOWfQ/YDc77h9g9psp2hGdxCyNDSnXpH0W5H3h9J2LhtvnHOrb389uj+d+Bp3EjsJrVSPu9g5DIj7HJTbOoDOEbe0toEMfi66eqprkEQ9iQePmrTK9PbPSGcQq6bv0X298GejtJg9ATCyFcE0r+5GagRSXn7Ui6C4tF9b21htdRh347MdrlHjXr37vTAQh9bJjdLnsvtjS9ftdl+1b1h875JkAcfSNsmAudPcywOjQDDZi8HsSzMXGULnxJzXhIsCjRDVPIobxPfic+QNm4DWuvoquXUc00ZRjWPdHqcWHH+be9+j+3rhD8ffNu6encuoU6Uvr3vXi1Jpk2Sy4UBolzQmkV7VpxxqKek/WfS2vv55JD6j+3lCb3Mb74ALpTDt3dbAXnikrdS+3nUfbkMltesJFQp7+g9++mK9+1v58XUkTC5iaJS03DE5mE14dfXWq3/f/HqvUpIKXEn69FSIGau9PyZtB0zS8awUzQesFXftcF0F210aYCeKo92bMO4G0QqNAKicHGKZvx1Ov0Z3/JZJDO9bH/YWIvpSyxC9Mwd1lXKD0sidcezQaUNbBJjRJkp3DFcmAqn0MuNCVGH9Clmir0JcVpNMPBZn66SI+AYBsUr28KwVajFVfu/HvU5gRorKUphysyouypvLCDAde4Y2JPXMKxsOisbhOJBrxcpFKX443Q2cdkNjqJLi9DgnzPDnJF+mXs9d6tGk3/jJTe5v+jXOC2t0Db92ynbk/SYpXTjbDtbPUEjC6wlfXjvmQG1CUV4+ftho9qsBe5otw9BjompRE2MsKi/NSxkZ1EbSJlRRUJPdCuOGRG3DfcnZOGhVPKa5v5zhvvOGTb2qrnbO4sikwtr1LLVC61baZ2p5Slg+a505isuSEBgm87MlsQaluFyj3ckb/9h57mev+nWypiHTf8jZF0FEr8OSdpvAmSeGKRUXgTJvwqwnY9nllY1qIEzdIcNGq0b/JBTWn9XcKZ7lVTypUWiSXI9phlf6ZGXMZ+ZM6IU+Fc/FIVapGk3NSrmbZCidYoQ08Ic8SHHE0AKWUNfKnWCEMtfDMIcwjRfGsdhY0dk6fzWhppjzPLVaqI39p9rrnhOt40SgBLk+hOLH0a/qT2RWqJgW6vNSkP/KZcxwpkqEEPZqPemsdU/JzYzZ6K44GtE6RdOo7HyyFsWfxqnETYe1UGxwBBQIH83ebz6qv/gIUVb7WtfGwzFldMraOfISCrzmU/uhKVLH7ZulcMzc81qDYnn1oJTzLGFkon7j7ogSNSFgou7atwSSfKXF9Hu7+Oj6ppTnHmEaBCtURmuiE7WerF5hUKxqbd/SQEI1GoiGWhY31nUrvUJ+/2WUr4MoYhk9c7tATvZBCCZrytlZNUVztE7g4j5JPnKdOMgfXUPxiZipmDCJwkigIKwQ7LOi8f2grl1r6VydHrf8CLwfc9NPz8xeehjNl3zNGAfMLui1+/cjBHyKTNvTVKwo7oyT2DNa9R2Kkk859TF3mwdRkqFJmk5KbJPIiYjr1TAgIPXTyL4vWphYKYm6sST2yxPmotGqZkXJ3a6wOIKrIrkWT8AwRW8aI2gOF+JbK1JEAF7N6Q78S8r3+/9VjnzXR2aZFSazBktFK/qnjJ/O6hYEp4zrrs2ohmpUMwvJf6eP3zr5pQbcVzlATljEjJu56dIewitlrzxTpZd+FEj6lN7uO7jfu0XI4DA4BQdPJSMHNYPcH2uVo1R4977d4HhhBAK6vQ7djia9iPQu53amk6CJhwLa8Uy3HAtCUFAV802rVz8J4P6kuvp4dooQ5rW/0Xo5OtglfYTwi9cR8vO1t/HnWtDdJ71TeedQelDqdqJiIzBFl/hlqiOg13ZH61mDUcmXemLtkHqhw0zTu7BCrVZpUTHWxsMSfQfIhwiaTSb0rZqhUMTWgpJD3yjHRSkgj1fTEcU2vdyvvifUbT+KdB5ZeR+1cY6DRKOGrKdzC/7b2HZHYk0j3HKOlRbRfi/QAVop1/pEWT4jGLH5KOyxNMpaQjWZbMje/bqNHM1PxMa/L0fdu915tmvle33Yb6fb7/A97daQYsIlpepjqBQ7Uj8k1CJt2nYdOgpZMwELYLegCXOZJgoPQ7wJoivZTF26jENP8kIPvQUEFm0WjF104F5aXoMWQEon5qvdmH70mK2Dt/ZYnr03+jAy1mrhmmzI/uj78a7l7bFFZB9bur712ciP1qYF7xZGt2ajSk2LkUAtIsXF3V7pqLcT+zblEjqSy36bgIc7CgMTMCZDPEIeqv1YTqUalNSx+0Qa/Kr98X/pHj7J49jnOespBlJEl/3yIfZrOFX1VrJkwqA4268lJmapjwn17/PTQaIl2y1awn9tFtS03ayY9W/LeTYT2CfpjQAAAYVpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU7UiFQcriDhkqE4WREUEF6liESyUtkKrDiaXfkGThiTFxVFwLTj4sVh1cHHW1cFVEAQ/QBydnBRdpMT/JYUWMR4c9+PdvcfdO0Col5lqdowDqmYZyVhUzGRXxcArBAQwgFl0SczU46nFNDzH1z18fL2L8Czvc3+OXiVnMsAnEs8x3bCIN4inNy2d8z5xiBUlhficeMygCxI/cl12+Y1zwWGBZ4aMdHKeOEQsFtpYbmNWNFTiKeKwomqUL2RcVjhvcVbLVda8J39hMKetpLhOcxgxLCGOBETIqKKEMixEaNVIMZGk/aiHf8jxJ8glk6sERo4FVKBCcvzgf/C7WzM/OeEmBaNA54ttf4wAgV2gUbPt72PbbpwA/mfgSmv5K3Vg5pP0WksLHwF928DFdUuT94DLHWDwSZcMyZH8NIV8Hng/o2/KAv23QM+a21tzH6cPQJq6Wr4BDg6B0QJlr3u8u7u9t3/PNPv7AXylcqvSRSQ9AAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo0ZmUwNjQ1NS1mZWVkLTRjNzItOGFkNC0wNzQ4OTQ1N2RmYTIiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDIzMDliMTctNmY1Yy00ZGZhLWIwZWMtMmMwMDM3MjEwMDNkIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDllZDFkMjAtN2JlNS00MjRhLTkxM2ItYjZlNjI0MDRlYTdlIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQyNzE0MDgxNDQ1NzEiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoxZjYwMGI1Zi0wODU0LTQwOGUtOTk4My05Y2RhMDE1Mjg2ODkiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMDdUMjM6MDM6MjgiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+VDoC6wAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YCBxYDHMxZ6agAAAE6SURBVCjPjZC9S0JhFMZ/7/Wqt7Aop4gQCnGQlhSHnPoToqGhIUSlKIjI3MIhiKAPMgih6MtJojEagpamwD4UCqSlGqOlIoREu/dtuYSRZmc5PA/nx+F5BP+Y6Z1rj6KIoNNhy6iNjmf2cq0CTgHXS7GM0ghQBMuACygDF38C8XR+QErGTLmQDPsKdYHJrctm3ZDbgABu2h22JYC6GTSrZRFwA5+GlJHEcG8ZQJ3dzwWk5EQIjp5eS9FMLKjH0/l+w5BTJru6HvFffWeSkm7AKSWhjjZtM5rKaoYhdwEFuHv/qMxXf7YU7V2FHrenU4Af8NmtliHACxjAYGo88PijtdvDhHx+K00AB6bnNffGWth3/qtmgEwsqJcq+ihwbPr3NlWZq1WGqBbRVFZrabKOqIo4Wwn1PdQCvgB0sV8kJZWLGgAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/check-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5QITChsNaCG5cQAAAS5JREFUKM+NkDFLw1AUhb/3DG0Q6pBOdSgI4tBRsaCTP0EcHeSBEpAQkt2lggiKUGg6WMRVhGziILg4CRUnh+KibiVLl06lmPdcglRsrXe5nMP9uJwj+Md4nrckpVwvFotX1rRj3/fnhBD3QLnX6yGnAVLKU6AMDIGnP4EwDDeMMW4mj6Io6kwEXNedTdP0AhDAi+M4JwATM9i2fQwsAp9a691arTYEsIIgWDXG3Akhbrrd7l4cx2kYhmtaaz9jz5rN5vN3JmPMAuAYY1SpVDpXStla60tAAq/9fv9w9PNMu93uVKvVeSHECrCcz+e3gAqggc1Wq/XxozXAJEmyD1xnXiXbUaPRePxVM0Acx+lgMNgBbjP/LZfLHYwrQ4wKpZRdKBS2Lct6qNfr7+OAL7OwYq6nyWzXAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/minimize-button-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAtSURBVChTY/z//z8DKYAJShMNRjUQA2ivAR7TjRNm4o3y+oJ0RhBNYtJgYAAA02UNDbDaPdYAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMinimizeButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVFBQUFBbk93YzJBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQUxVbEVRVlI0Mm1QNC81OEJGUUJGd0FRWXcxa3dPU0NBMDJBR0U1QUY1VUJacEFGVTdUZ3R3dW9rckk0SEFMcW9RTUtML1R2NkFBQUFBRWxGVGtTdVFtQ0M"},{ name : "haxeui-core/styles/shared/right-arrow-square-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAIAAABLMMCEAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAMUlEQVQImWN8K6PCwMCQbKIz98wVBhhggrOSTXSwiCJLoIjCJdBFIaYzYQqhiCK7AQAMqA07hk2gSAAAAABJRU5ErkJggg"},{ name : "haxeui-core/locale/en/messagebox-strings.properties", data : "bWVzc2FnZWJveC50aXRsZS5pbmZvPUluZm8KbWVzc2FnZWJveC50aXRsZS5xdWVzdGlvbj1RdWVzdGlvbgptZXNzYWdlYm94LnRpdGxlLndhcm5pbmc9V2FybmluZwptZXNzYWdlYm94LnRpdGxlLmVycm9yPUVycm9y"},{ name : "haxeui-core/styles/default/tooltips.css", data : "LnRvb2x0aXAgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgZmlsdGVyOiBkcm9wLXNoYWRvdygxLCA0NSwgIzAwMDAwMCwgMC4wNSwgNiwgMSwgMzAsIDM1LCBmYWxzZSk7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBwYWRkaW5nOiA0cHggNXB4OwogICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgIG1hcmdpbi10b3A6IDMwcHg7Cn0K"},{ name : "haxeui-core/styles/shared/collapsed-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADq3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VZbcuwoDP1nFbMES0JILAfzqJodzPLngN1OutOZSm567tc1ZSQDlsQ54hH6P3+P8Bce3nQLUc1TTmnDE3PMXKD4djxl1bTFVZ8f2025aw9XB6NJIOX49HSOv7XTdmeJCjR9Z8jr2bHfd+R42vcHQ6cjmRExlHYayqch4aODTgPlmNaWstv7Kez9kO02Ez/eMKtxw8QO8fgdDeg1hR9h7kKyoWaJRwAyXw5SllLQDThQC3QWXbWdkQCQZzht76IKj6xcGn3S/kCKpKM9oOEezHTJp+2kz8EPC+J3nqVenu/a65uLO5AXxqN5GKMfsysxAdJ0Tuo2laVh4A7IZf2WUAyvQrdVMooHZG8F5Q0ud5RKmRi0DIrUqNCgvmSlihAjdzZI5sqy2lyMM1fZAniKs9BgkyxNHGxV0Cto5SsWWn7zclfJ4bgRRjLBGB3082vKp4bGmClPtPmFFeLiuSgQxmRu1hgFQmjc8kgXwLfy+ExeBQzqgtkxwbLth4ld6cytmUeyiBYMVMhjrZG10wAggm9FMMj9SFsiUUq0GbMRAUcHPwWGHIuGd1BAqtwQJUeRBHKcp2/8Y7TGsvLRjD0LRKgkMVCTpYCriI0N+WPRkUNFRaOqJjV1zVqSpJg0pWRpbn7FxKKpJTNzy1ZcPLp6cnMPnr1kzoLNUXPKlj3nXAqcFlgu+LtgQCk777LHXfe02+573ktF+tRYtaZq1UPNtTRu0rBPtNSsecutdOpIpR679tSte8+9DKTakBGHjjRs+MijXKxROGj9UL7OGt1Y48XUHGgXa/jV7GaC5naikzMwxpHAuE0GkNA8OducYuQwqZucbZmxKpQRpU5yGk3GwGDsxDro4u6NuTveQow/4o1vzIVJ3SuYC5O6T5j7yNsT1lpZu56ExdBchhPUTbD8MKB7YS/zUPuyDN/94Y+hVxsaSOqlQpEq0q3ML967+bCn9sKLAnpuCHGUMyCcvJGO9sT/FdlvjWhbUeCMXzI7DamNopJCsT1NNQadlzQoP5XPDOEkakudR1LH3Xd1bJfMqxPH2HvIwkj1FRB5+C5Eb/JMtbld9Glo/pCH4NbxyQ9fk+Fjh3RP59Qd96RPZ6TXeDvon1jVH0MVvg3RLc83eNeD3Ip7XWj+yO6vyfChgwZuGkfe4sx0v8+ylT35bcFdiISXLLSnhn5l6f/vEX13d5wyvCigP4Z+hyFcbHL4F54nyj1078dQAAABg2lDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TpaIVBzOIOGSoTi2IijhKFYtgobQVWnUwufQLmhiSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxdHJSdJES/5cUWsR4cNyPd/ced+8AoVFlmtU1Dmi6baYTcSmXX5FCrxDQhzBERGVmGcnMQha+4+seAb7exXiW/7k/R79asBgQkIhnmWHaxOvE05u2wXmfWGRlWSU+J46adEHiR64rHr9xLrks8EzRzKbniEViqdTBSgezsqkRTxFHVE2nfCHnscp5i7NWrbHWPfkLwwV9OcN1miNIYBFJpCBBQQ0VVGEjRqtOioU07cd9/MOuP0UuhVwVMHLMYwMaZNcP/ge/u7WKkxNeUjgOdL84zscoENoFmnXH+T52nOYJEHwGrvS2f6MBzHySXm9rkSNgYBu4uG5ryh5wuQMMPRmyKbtSkKZQLALvZ/RNeWDwFuhd9Xpr7eP0AchSV0s3wMEhMFai7DWfd/d09vbvmVZ/P21dcqXiaaDUAAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDoxMGUxMWRlMi0wNTI1LTQwM2ItOTZhYi1jODYxZDZmMTlhMGEiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjIzZTNmZWMtYzg5Yi00MGVhLTljNjktMzFjYTgwODgwMGMyIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MmM0NTNkMzQtNmI5Mi00NDJjLTlhY2ItMTgyNWYyNzQ0NjFhIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQ1ODIzMjkxMjA3NDQiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiM2YwMzU2NS0xNWQzLTQ4MGEtOGUxYi1kMmZlZTM3NDZmMmMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTFUMTM6MjU6MjkiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OWQ6JAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YCCwwZHVAUuvsAAAB7SURBVDjLY2AYviCq75gyMeqYcEkwMjIcjeo7Zky2AQwMDOKMjAwHY/qPe5JrAAMDAwP3f4b/G6L7jkWRawADAwMDGwMjw5LYCcfLyTUAL2AhQs0vhv8MiYsLLZeRY8BXRgbG0CVFltvJccHL//8ZvJcWWZ6laUIaBgAAEBYdvIFAlrEAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/info-medium.png", data : "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACr0lEQVRYhe2XPUxTURiGn+/ctkKkQAxJERu1QkxcUJnAXVYSjG51UpEGTZx0kcQQBzcNFCW44axhddDERRYRFwfDryk/AhILJMLtvfc4SKG/cCkti77TyXd+njffPefc78C/Lilk0tmB1ZqErepESdB20IatY5vizM12Vf4smYH6aLxBiwpraAPO5xk2Jpph5bGHxjuqJ4piIDS4HsDS3WhuAl6XfhNoBpSiZ6LTv1iwgVMvVluUI6+BWpfgTC3jcGWqy/8h3wCVryP0fO2acuT9AeAANSjehvrXruYbkDMD9dHVS47IO+DIAeCpMnG4nCsTWQZCg+sBTP0FIVAkeFILhkXj+F3/Umow+xNYutsNvMInPGjxcb/Zx1Gvq8NUa3t4mBlMm1kfjTc4or7iYrc/aPFx64IPgIHPJk9GTDcmTBv73PdI9WQykJYBB3XdDRxAazejsuRTYoRTA560bqHN7Up9nxI523tJNG3Aox3klv5er7KUc1ZxpRM+pyZ2o2oFUjJgWioo4j6vtRVCU8AAYPSHzcK667niNY0gsAIpe0CLHHdNB5oCBn2tZfS1lm0bcSutqUu2tw2ILnBbFSKF3mkmDRjMHxrfYi7LgGk5sUPia7Pcns0ysFVMjB2CgdHkCUgzACCa4ZLjJZ2RZkB57CHA1Z1aoEzHsl+l+8lQKLrWi9BVCrrA08mI/15qLOtvqBQ9wEIJ+PMeQz/O4mUGJjr9i47S7cBmEeEbGqf9W0fl8p4GAGZuV34EwkUysYEmPB2pGsnVuWslcbo/3iyoNxReF85rnPZ8cNilKAWYjlSNGBaNQC/7Ox2mCM+8hm7cDQ77eJic7P91RokR3vqfX8y5mDDqaIa1bQ/N3KmecrNuQU+z4Mv4Md9v44RtSBDAsHXMLLdnU2+4/3KrPzu548SSV/k0AAAAAElFTkSuQmCC"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleXY", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQ1hCSVdYTUFBQUJPQUFBQVRnR3h6Ujh6QUFBQUlFbEVRVlI0Mm1QNGp3WVljQUdpRkpHc0VCdWJJS0NQWXVwNmxLVHdCUUVBK3lCbm1ZdkFyQm9BQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "haxeui-core/styles/default/haxeui.png", data : "iVBORw0KGgoAAAANSUhEUgAAAIgAAACICAMAAAALZFNgAAAC7lBMVEUAAACxubtjcotcaIKYmKs9RWc9Sl9jcYuutME+SGKstMPHyNhhcIrBxdNCT2esssBgbIiGiaLAwM56hZ5jb4zGydqyt8V7hJs6SF9hbYlfaYTGxtatssGmrb09SWB/iJ5/h56/wdFha4g+TWRhbIe0uMdhbYhue5dibonDxNXGx9lfbIU+TGOwtcM/TWXM1+h8hZy5vMumq7vBw9RvfJezuMfGyNaAiJ+Bi6NhbYhvfJfGx9g8S2Cpr71DUGh9h501Xotli7iiqbp8hZ2ytsV2gZg+TGNJdq55g5p/h569v89vfJZsdpLK1OWxtsRtepU8S2M7SmE9TGQ8SmHKyt26vs1+iJ5jb4tRXXU4V3s9VnZhbIfExddhbIdIVW3DxNWjqbtwfJWkqrtwe5ZgbIWkqbmmq7yCi6Ccss3N2OmrscBOW3M9TGO4u8uytsWus8JbZ4FKV298hZtWY3uqxOB7hZujqLlQXXW3vMtSXnU8Wn49S2KsscBseJTHyNnIyNifpbZve5VkibREUmp/iqGtssHHyNlGU2pkd5d/iqCkqrpRX3dib4mswdrEx9ebo7PFxtc+XYNufZmQmK2uv9S4vc+1uclUYXk6SWGxtsSutcNteZRebIW4u8tDd7JYe6k3VXmAjqWKk6iAiaBWY3uOl6pAdrSswdqtwdubsMuIlKtjboeQmKydtM+ZrclRd6dJYYGnr8B8h51UYnlJV3CmuNCPl6u+zeHM1uZjb4dga4Q+aZjG1OeWsM9mjbtTf7ONqMlNerBvkbtNaY9Yc5mUna+nv9qlu9Y4UHCLpMKKpMNomc08drVRiMR+p9OUttszZp2pxOLP3u9nmMxtnM5BerlckMlyoNBSh8Gbut3G2OyRtNqGrNbO3e5wns99ptJQhsCYuNxUicJ9ptOStdujwOBYjcdKgbxnl8tgksg6c7A1aJ+4z+edvN5kk8c2a6NEebM8cKiwyeRLgb03b6qbu944bqhMgryyyuWdu96j3pigAAAAy3RSTlMAAwQHBQUNCQcJDw8NBRULEAoJEBgLGRgfFCMYJBcRMCNrMSxYMSkkQTEjHFBEPfFEIyBWMisUFA5rQz8ZFGU+8vEsHWtYJPFsTkQsIOJWVUg4MSoeHVY3KsGjY19RUE46bFVNR0MyKvHwa2VZV049PDs3Nf5jTUs/HcBhVj02KGFg625rYC0fl3hpQy7vhHdGuHof1IliXkE1emZMN/7TvJdlXlU6/vLw7JVvSPDp1ayVi3Fb0VTx24V29/T09PTy7unBjYn06pPnxN39F5cAAAyOSURBVHjarNl5bIthHAdw64oqdZQ56xpzz2zUXWSOOOY29zGjc2/DzFBMGHHf9xFn3OK+ibhFHBUhrSORGH+0oo2I+M/v97zv26ft8x71vv3+tWTp+sn393vfvutTgiZGPiVUJQaj0+ligqPDiP1NqtCbTCZ9aEwQvSoLvCO+qV40aMHfizhMBoPBbDZXCI8ZAr8CzX9Z4F2IIbaSWEqXjoWQYsIYegMSjMEpC+F+ijMix0ApymUQBb5le0xlJuXKlUMMUoIr1BsMqLDZamOqhqW2zWYzGgEDvVCKAiMWqgBBO0g1kdRohxikUAk6KlUw2kCQArGEJBmSnp4OmrZljXEVzCZCUW6DKIDQvXv3eiFpjElLS2vevEqNithKSUGCY4E2UGFJTU3NwiSExGq1WiyAqW0jtSBFnmEABijQMGXKlLrBaUPSr1+/Ro3TOAp2wr/SUAnqQEVWRkaOHZNIUwDJ2b8bNMnQi60sS2HbIAxQgGHOnK6QVjQdMYsXLx4Rv65RzeYggenE0ELAAQy7PT8/MzPTkenADBCSnZ0Nnv0JVpgSQ5FkoAIEffr0GU7SU8hAyKRJk5uMiOckMBwdeTXvyLADorBwDWQ6SQ8hO3YUzRqQ3bdg/26GIs1ABRiOHJk3r/eKFb0DmQjZu3fZsoHjgIISHE4MvtxkNtqqguPKk8ePj68XcpzkBMn6E+u37dkBlsSc3WRCdFfkGKCYd+rc1KlnSaaG5c6de/cfxjdKqwKVEIiOFJKaZV//6tWXv8XFTvHkbdvTo4inWAiFXEEYVIgx5q04dTLPKZ4vL99+e/HiQW48VIKz4SdT1WLNyL/2iuTLj2IlCl5D9AoiChFGb2BIIzDfN0+e22hB+YowG4DAqsJksuyZt38Dg8EoUAwGPSY2NpTRU4rx5SMghBzYvC93ZM3yFctwEFiRFGtGoiPJiQaK+V0sSpkeoHD3lUpcKiOjcT/KUEBgfm4+unZuzeYAgSWBXYUVsebkFyV5qYI2I0pxcJSUFLj5G9tD8B6axjDkEBgPQkYuqFEqGJJdlOSmAhkMpWSlpqakbK1ta4d3cmC0mdO14yRgHApjuAiCzffXm3fOpxC9GXY1IccxPenNb0bBjEmgrCly5NszgGLZunUr3EORsRgYyyYiQxmBOfB64c75s0cuKF+qDFw25KJJTkhECF0SpWaQUpgJFLCQT5M2czpOIoxzSggaPwdZFYCURcgAgLBLwmIoZSNSztiPHTvWtSvMZGDPvUGM34hQiOf1whkMpGBAj6Q3zJLIYvKuAKXw6tUz+GnScxky8njEZzkEXRGAjJ/dIACJI40ghFkSeQxSNh4+fBg/TibybbgUEXRFxCGzAMIsiQIGKY9WY7YAg0EoxM9DqlNIreSmfRHCLokyJu/KqYsXD91jEMrxEEhLBlIfIMySRIJxPbvLLGZEKwKQLmGQZjzkjUuF5MPndy9UxAeQUcEQUzDEqcbx/LkaiV8C0ppAvKocqiQeAmkhAXGrcaiQ4IrIQCAuFQ5VEp80ZBpCnCocqiR+CUgnHuJV4VAl8ShA3CocKiS4IghZFAQxUAjGpcKhQuITgZhDIE4VDhUSvwAZjJBYMppQiFeFQ4XEQyAHFw0aPBQhOh4ybGWnCWM5iDtCx3sGwUiUVoSFtBUgGFekDi0SHw+ZCZDOdYTRxLUdtnRJAOKMcC6aJP4AZEgvgJQsSf7ljGubvnTJprHX30S6JF/BoU3i4SBPW+xCCFw0CBFuJBs+RbgkX2EuGiR0RboJVy9C6LYKlbg0OahEeUVG44ogRAcQfklwNnwlTmWHVomfK6TLTDIZoRFcEu5O0p8uiez1olni4Qohk4EVoV9dcbPhK3ErOTRLvnOFLBcmUzIGHEGzESpxyTu0S3xCIcGTCVw3tBKnvEO7xB9aCDpEK/HKO7RLPKSQLnwhsRTCPwoIlbhlHdolf8ILoRDyeUMrcck5tEt8oYWgQ6ISp5xDu8QfVAh/7UpU4pVzaJd4uEJa0kLCK1lZMGHHdqjELePQLvklFNKAFsJU0ncWqcQl7dAu8UkXItxek4VKnNIO7RI/FnJZZENoJenW/fA9CVTiZT/noifxQCEzxosWQitJKMjGStyMI3qSP6SQ+bNpIUwlRlqJi3FETeIjhaylhYhVUhUrKYJKnIxDs4SuSLdLWMgqelMVrwS+ce1Pl4RxaJZ45AuhleRgJW7GES3JHyiEft9MIWwluxMdUImLOqIpwRU5PwPOJMhzCJ6gSVZiycrJXHPhk5M6oivxYyG5MoUgRE9OTDLyCzf291JHdCWe8x3IIQ19MGODD0jkVA0qcVNHVCW/bt0cMy43npyfUQi7JXDgiZDCjddcxBF1yYHzN8fsyxXOaCQhenLyirO5UIyO6Etu3TjdkBxtliPP7tKzESCP7oAj+vn2gIfAYa8uMsg/Vu1gtYEQisLwpg/WR+8DyGEWs6ggpKU7N4JI18VFMOkfxzAn5wXyMeMYvfd+7P7PMl+ALF/N9w8lviPg1SwXaxIlviP8PrVY324+X4kS3xHyOz7fRzvr2NCqeiDxHD3b4YY2TtC9Bdy3+ChIfEdPwRZ//KeXBInv6Gk3f3p8JDwGSJD4jp6MY8DhwagKEtdxzTgp9pLV7IFcT89xQPDteI5QcFQ8OjwnQeI5RhoOz0fXCQkSzzGSeZ2YX7CqXij5DPfZcMGaXzmj7nPZbcdIwZVzfglPgsR9LyMNl/B5WUJyJcOBZJQlpoWaKkMCB7LhkcxKV1GGBA6koHQ1K+YlGRI4kIZi3qy8KRkSOJCM8uak4FtlSPjdMhsLviyBY4lgZ7MdoaAEzgeCJQKJ7wiNTYGHbRLJk9DBRcI2CRtHVZaEDmZD4witNCwRZrcdoaCV9qi5mGRK6OAiYXOR7VbJktDBZLZb2YCuMiV0MBsa0GzJRzFcsZ4jFLTkOaSQZEjgmKRhSIFjG5IhgWOSjLENDLJUGRI4pgEEoz1RT+ayG45Q/o32cNgp6YQEjmXaFTId/5JOSOBYJq8gVSckdKyzLUYEo05I6FinLIYmk05K/kq5Y5A2ojAO4FAjdugQaUAiFCWEJJDBUoRUoYgN0hYD2ZohZKgX6HpYQqcOEQcLtyQZDRUsdakgONilKIpQKEEECe0gUlyqKWqxJbVbv+9L7l5evjtfLv0LBjKcv7x3qHDv/x1X3KV+LYRuEfcS7lCndj3kcq8rCXeoI0HYUeOzva4k3KHOBUIcD18f7nUjAYf7/CaI03H0LhhH5ztbf6ruITVxHJ0f0L90izj99nNpfX19YfL8+JdbzL44oM8qC2fuENUKMLCwUCwuzJ0cnLrDXIjKAitxHHb4l/foHBCVypul1/PzuVwuD1WS90g5cIOpNyF2tZbOEF/pRxFj+e1TKLVoWjKYTzconWNqHGI2jq5UiC+EsBiouDsxMQsV0Ug5ExSUzjD77UUf7GAR5EyNkBigmB0amoYYqVQkC5QxQUHM92sxF1L1iZ6x0pOAEedbRCCq8FVZAUauwXg+PJyAhENGgFFUmLpUBjPrcTNQj+sEgYziY4sRjw8MxPw+XzQxGGIUxTbVWD2u8fhs5MoZUcUvel1ZA8aUBozp8HB8IEY9c6/X7/cxihKzX2g8urEgDxAy8/GvMwJiMp7lp7TxidEm4/6t/j4IWXxRW4rzNv2QKpSiVHpovx1iQYiR1MZfASNMjP6+Hg/8Cw4jAMCioHBMvfBSlEqpZkt788FEHEsIfIVIjFA47ovdxrK9B8YUUFQUkRMLUyvAzpg1W1E8/iQQEIGhb8hYbGH4sfTvAYBZPFZROAauXpCKx7g3uCSfd7a2trcf2WetmE+2MdqmIHBKORhM785NOmRzc257F54A++gWscrppXsP362ubmwsQ+YxZpEcm+SLeVLQvcEYEuWGoBgpHX7dgiWdHmNJp4PBTFZ/IcrptCT9TQlQVp9siG59shlNQ0UKGDRzgDGcKAGwZMvlTAY8UuCdcjaiB9BBD4BvmAMMYHNKJSipUkG0ZdCANW0AFAqG3QahJaXrER5dZwMM6C6BNYndKYn5C6OtMWD+QogUjKGgRBOIMYxAewwjFBocFCMdxJALrJZDqbtUMidRiCQgUVLgTAqPYCgpYCGMXRqXxM/Va13PHEsBFsBY8VnxI4IWQ6yGgiIsftDw0CXF2A9pEApaANMaL4aGlsBa9OFmSgwVBS0YLwsi2AezKJ6bPTi0xS44xgXibjQMWVBjEz4aRkjMwTY9UgjABtt0uiyYXhLJobclBrPY5b/HB7Hw8UH/AM3ZIm9FzQVkAAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/en/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "__ASSET__:bitmap_flixel_tile__FlxTilemap_RawGraphicAutoFull", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBQXdBZ01BQUFDREVVenNBQUFBREZCTVZFWC8vLy9ZNjZJNlhEbHltVlFYRExPMkFBQUFBWFJTVGxNT3AxNzFZUUFBQVR0SlJFRlVlTnJ0bFRGcUExRU1SRVh1K0VubCtCNDVrbEtrdHpGN0NwZTVRSG8zQzh0a0hFWWdoTHl3N2JLQzV5L1BmQVpoK0xLTk1kNVB3R1d3ZUY0SmVxMzNqWHlreXplQ1h1dDlPd1B6OHd0UDhKd0llbzI5QVAyRlBsaDJHdVAvTXMvQjgwN1FhZW9mbW1BZU1jSHpva0JRdFFyb0NSd0Ird2c0dTErRUJ5bkFFd2ljOTRYYkdaZ0ZnaFF3QldXQ1djQSttVktKZ0FJQ1QyVy8vQ2hzQzlpOEE0cHZtM2RBOFcwQnBxVzg4ZERVby9GRGd3M2dQc29iRDAzOW8vRkRHNFlvbXFMVXVyK1BnQ1BBVlY4MGhTY2djb0FuWUZBdE5NV1VnTWdCVTRBOHdZMW1BNFFDS2luZ2gwSUR4T3VBZU5zU3JxajlpbWFzTjZGcSszV3QvRWhBN1ZjMGU1YmVkbHg0a05yM1dnUkkyRHpCSGdPT0FQM25xOHBld0RjcHU2Q2RZSWFxN0FWVjNnWDlCTjd1aG40ZnJBYzBPK0Zsd0IrVDlRd1UvK1pKdHdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "haxeui-core/styles/shared/sortable-asc-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAYAAAD+WDajAAAJ0npUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZlZlty6DYbfuYosQeAEcjkcz8kOsvx8oNTtHsq+9k3ylpJbUlEUCOLH8KPs1r/+ud0/+IQo2cWkJdecLz6xxuobN+W6P+2c5YrnfH/0ucrncXfV54FnKHAN99eSn/lv4/Iu4L407tIHQWU8D/rnBzU+8ssXQc9CwTTy3MxHUH0EBX8/kEdAu7d15Vr04xb6uq/P+7cZim2NU38bTc/kL9+jYr2ZWCd4v4KEi7MP8VYg2J93oZ2bdh6jd6jcp6Cc+TyaYJBXdro+aOW+ojJ+gsr73RdQQr7HHQOfjZnfry/HJb02vjsm/rByGO8rfxpHwPi6nbe/vWdxe697dy1mTJqfTb1t5dwxsWPycF7LHMpf4l7PUTmKw3sHkE/W6xxDqnjsviXKlCZb1rkOGagY/fLK1fvhwxkrQX31I1wOtKIdsr2C2AwFDAfwBkb9uy5y1q1nuSGFhacw0wvC5Ibf/3eOnwra22wrcpXbTrgFenkLCtQw5OzMLACR/eZH6Rj47fj6keOpkVlm5sIG29VvET3J41vmR+EAHZiYuN6xJjofAZiItRPKSACBK0tIkuVS71UEOxbwaQgqBI3vQCAp+YmWPoaQAad4W5t3VM5cn/w9TM4CiBQygVQspMAqktjwH40FH2oppJhSyklTSTW1HHLMKees2ZJf06BRk2ZVLVq1lVBiSSUXLcWVWlr1NZAcU81Va6m1tsaiDcmNtxsTWuu+hx576rlrL732NnCfEUcaeegobtTRpp9hkidmnjrLrLMtWbjSiiutvHSVVVfbuNoOO+6089Zddt3tHTVxJ+zk2/H7qMkbav4gZRP1HTVeVX0TIZZOkmEGYj4KiKshgEN7w+wqEqN3Bp1hdlVPVCSPlsnAmWKIgWBc4tOWd+x+IPcJNxfjf4Sbf0POGXT/DeScQfcT5L7j9gK1adVmXMEdhCwMzahXIPxykpgk7ZipwXYbk1Wp11eNYV1r7+quPoCSyjNIhKug+OxJ5Xn8+mndhX9jjWZxf6/rCpgtnQtkGKxS/OpkX7FvaN1GbTNv8fYdI4ieeZZ+T5FMOU5tNW63rrQAgM1j8lt4jvdNfFb7rav7MaBx5r5Edo8Txwhk2Z537dL6mhvAChph/51iXHiVDnOcayXccEwn4KSbxHtUxmvx/RKO4jWdDV4l6Z4xMuh5euBIsuaqW32fZewuKbghkwmCd+3VC2/Oq2ZUaSOSnEaYe9agma3P1secU6ABHaeYCzwwz45t9rao/ZOMVZkwU2xGEXq4mi/NdzJeYLkRAQ6qkCaa4yA7EkU1gB+euqTsxbvR+dTb7hmNVs5hpdsYeFQDy9baQev1xlWH7wSVxNqDKwtF8jL7qldMnirzfpjFcoSdN4bhJTx26Cb06vaTGOhhDBxetvO7JsCIRaYaIrmxSF6jVr+whu89KrFjsOaWf+7p7mcP0iJu0+2GVOhuUHgA4UsfY/VJJe7m+zGB01R3xdtH2RSFvVtCybI1Y7pj8VJWu40P7fh2HfU4/Sjd7dvnDfaRcsetcXFWjmmDwoZxoEX2DZxH7jNWrn7ssO51ZgJYE+xer/ThumqHemScXMPOJuIqDex7wO2LherWPjOCsHEsO8CkOIfj78dCeKI2PVbaJVnqARe+trC7Jy2dIN/k/7379g4rSio6SYzk1d16X0trJaQzQzf8hRd3W7y2G+r8QlCuFOzzL2IN/DGdot+GGY3A8pG0n3yLC0PexjEW+tEC7hUIBnnfnzPPQSL4hEIV5iyDrDBKUTJ5MWd3JYWC01WYRk0zROX8yUSPgRB2m+j6YSQWefYGP2J7Z3ez7gQYZX2w018JXAQ1tWtfpAPXqlVPiSq+liiewiOkfQpYS2jYFoE4s7cw5KW1stxptNf6KU+6c0OkrovlSAG2FskAJAK+rpb2iumMf5IvwG2NmQoZZZFvIrsUqh9R4AwBEiiBZAZv1lf94bVTUsQIu2GU1u0plrZ8botseB6/fDoxypZqahVLkkeiI9+t8D02Zt+koC6YPpJkdWxAtVTbuw6o945jY97VU6nUgIEfUd7HUKnmBS0QUrvEoQ+4K9zepKMdT5YUrVLkcOMo/eBICteztdIo9Lm0oavNK0Rqe/hTke6HzI8ig0m8/kSg+67k3xPofr7rPxPo/tqMvyfQ/T4uvxbo/hzo1wLd3/eczwLd78OcxqKcQapCo+D5SPszENSh4V4GzJ8O1GuH7HVKHeSYRnVAe1Yht3YI9TupSCH8vN64XxSiP7r+X9D/RlCHq+RRNVD7apYOwx3JeYoETQ6JvlEbWqf6VGqikhjJd5Qg+TYSd8AZqtSajH0dnpsd9A6iGyAR1AWcOOcvI6FdK2Yr3L9cxv0YGose7scy3yT+eg33tgge/m2ZT2Nf1rHtfJTr/sZ2fJnBM5HCAtU6jKlOdym9rAWwFc/R4RWwATh3IOTLi5FcbsWM5UJGcxpiDCy4W4kU/c6TLnLlq9CiUqXryrVZOF/VOFGfp+RH/6IGCizaUdUbkjadETUcTnv2Tzuyi8JPinHPUCAP5ZZUan/ZbLmX3Zcvq1vTHSxb+SMh0pbSgTTy2zg5yvZcrSuEnsFt0ShYtptsFRYKkZmj1DWS3DlIw4u99N0ys4Rmrs+Z6P3psuMKCLWWscJO+uWVLn/Tz4ALeXJa4wV1KLSD1pqECZPZnayXL4iYQHJEB+zMfXsFplTs10+lmYnejN7m6neGBrN+K98azXiHfzDB3zZKVzJ9zB5+IqHHFJoRn4xtjN/bkABm0CD0y5C5wYxm1NFIj1bcqajBTy/bFv14jLQp5id7Kfgdz554G8rSSAwewdd2kzQ2u2oKY8tsS6PwyH19bVi/MWUtUxI6PfE/6sMECGK+tXB16F0dbT0cr/toN+7XrE6hZ+CKHc9CKObbkMdoH03WYSM05Hr5+N7HEmsQ5RaFtiLXd+8a7+Lbzaz3m3msj8kuvxjGJXqTQCf+iG9x/BUpdd8ftNkyTYL3vl2wQ3PBHM8vAELXFpPPFZMJfZQq3oUPrTVADQc1rvxj6BlpJB5P5xzovmGyNa1Y1X7TVPvNBOSusOi0V4fLkwacuVnNtyntzH4bjByQCCTsNJ9fY3yy3otg8iMwk4Wa/VQ00TXuRt+fIL/1tOUkJprT48F01XpTB9oXJTfAtcmLk3HWSEQpXvK8+LzmNm9pSHvgXnFKt//ysd9pH5uYn7M/v946dfrMl+Z2f9AswGkAmCSCE3XgreVJIjjZcqxnToV6d5Mt9n8iqeRxK0CUZf8WVWsc//BwpdbG/DTq7mHam4AzXtqfH6NepdTPV8wzcVf3b5CB/HlYM+6HAAABhWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TtSIVByuIOGSoThZERQQXqWIRLJS2QqsOJpd+QZOGJMXFUXAtOPixWHVwcdbVwVUQBD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWp2jAOqZhnJWFTMZFfFwCsEBDCAWXRJzNTjqcU0PMfXPXx8vYvwLO9zf45eJWcywCcSzzHdsIg3iKc3LZ3zPnGIFSWF+Jx4zKALEj9yXXb5jXPBYYFnhox0cp44RCwW2lhuY1Y0VOIp4rCiapQvZFxWOG9xVstV1rwnf2Ewp62kuE5zGDEsIY4ERMioooQyLERo1UgxkaT9qId/yPEnyCWTqwRGjgVUoEJy/OB/8LtbMz854SYFo0Dni21/jACBXaBRs+3vY9tunAD+Z+BKa/krdWDmk/RaSwsfAX3bwMV1S5P3gMsdYPBJlwzJkfw0hXweeD+jb8oC/bdAz5rbW3Mfpw9AmrpavgEODoHRAmWve7y7u723f880+/sBfKVyq9JFJD0AAA0YaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjMzMDJmNzk0LWMwOGQtNGIwOS04OTBkLTBjM2Y3Y2JlNTFlYiIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2OTM3YmZkMS0yY2MzLTRjMjItODU2ZS0wN2UzODExZTc5MmEiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphZmFjYjU4OS0yNGRmLTRhODMtODdlZS0xYWQzYzIzOTc5NzYiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY0NDQ4MzQ1NDQ2NDU3MiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjI0IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmYwMjZkYmJkLTUwNGYtNGFjNS1iNjZiLTU4NjRhMWQ0NDdkOSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMi0xMFQwOTo1NzozNCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5V3JrBAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH5gIKCDkizEN83QAAAElJREFUGNNjYEACR6+//o/MZ8QmYa0pygiXRNeBrIAGgJGBgYGhbtklFDuZmRgZ6iN0GeGW1i279J+ZCcKtj9DFdEzjissoJgAA6iEWhrUcbZgAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleY", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVlBQUFDTk1zKzlBQUFBQ1hCSVdYTUFBQUJPQUFBQVRnR3h6Ujh6QUFBQUkwbEVRVlI0Mm1OQUIvK2hnQUVmK0k4RzhDb2lvSml3MVFPdkVLR0FMSitUWlRVQUlSUi9nUTNjR3pRQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/shared/blank.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIKDCIwjMBeawAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAHElEQVQ4y2P8//8/AyWAiYFCMGrAqAGjBgwWAwBjmgMd7D3zQQAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/right-arrow-square-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAEqXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVdZlsMoDPzXKeYIlkAgjsP63txgjj8FttNZOp30YtoWLWMhVCVBqP/376B/cAmnjbxGCymEDZdPPklGx7b9yuvJm1/P/YqH5Fs9XV4IVA7S7f9aOMafer4Y2EVGT68MWT1elNsXyR/27c7QMZGbHgk67TCUDkNO9hd8GMj7sraQLF4vofRdHt/vYbC5NDzKqdVj8N3/PiJ6TTGPE+mO3YanOL874OYt5PLq5PUafruEvnNx6ePhCQLyWZy2K6/oAZWzx0/0d6C4sOsJittghov8VM/6efBphfhqZlcvM9/ofbkQ5SbI8x6jGY3R99VlHxDScCzqXMrqYWCBKbc+C2gRt6IfV0toRmBvBeRtq1tBq5xYEPfBnhtnHtyXrFzhopcuEVKkils6c1GSVLcR0PKz8ZAIxJozYFgBr4NWLr7wmjet6SobJm6MkcIwxjv88jftqaExJuWZN7vECn7JTAq4MZGbT4wCIDxOHukK8NnuL15M9Rg1w2xYYN7KbqIoH9yaPHILaIeBCrnnGsd2GECIMLfCGXZAYAvslANvUSQyI44GfDIMGZJGCiBgVWnwUrxzAeCYzLnxTeQ1VlR2NWoWgFAXkEg2UwpYeRQ28Cd6A4eyOvWqGjSqadIcXPBBQwgxzOKXo4s+agwxRospZnPmTS1YNCNLlpMkh+KoKaSYLKWUMybNsJzxdcaAnIsUV3zREkosVlLJFfSpvmoNNVajmmpu0lxDnWihxWYttdy5g0rdd+2hx2499TxAteGGHzrCiMNGGvmCGtMO60N7HzU+UZOF1BwYL6jh0xhPEzzLiU7MgJh4BuJxIgBCy8RsM/ZeaEI3MduSICtU4KVOcBpPxICg7yw6+ILdB3I3uJH3v8JNTuRoQvcXyNGE7glyj7h9glqbu03dHC2EZhrOoG4O6ReUvbIOH7AHz67XuUvdSZWt2/Q5bdGzR2ETy/iDscSldzgmLrY5z27Q148RX0l6NeArmVFFN0X04R0BSWyEa27I3RtF/R6lQFHnJ5LsY8QzSa8GvJLeXN6yddrdQ+Fbc2NvyR58lRSm8yE05+c95itOxTfG7fp8aYAbBE1a+lAhdVc2fiHpRrGgVG67v357Cv4hHS9vVEqk1sHe8PKTl5JeEe0lCZC40xnKCdW/CQ5uw88IIo6PmphQZ6Ll8Dyi9I2QfhlBemP9W8wMpqDoYKNGwTlZdJM89POkuM2Jd5nN3cJCAHGbNO3z1Ju8Sl/90GiKitORpBgSRoHXP0oVOnPlMVW+J+lDAUJojg1szTgey7eqUYahLwL4HUnXiuUMgmatBST7Pteb6UM/Sot7CSwJYGKzKH5c2FaKjYy6M5+ywqStxhZwhKztqUv0pc/fcJWe+upWVu3ZcaL8RfGmt4vyC6JdZX+1oRkHWkTD2ojYxLEU/6HFCmfh7h6luoeUbmlGf7KpgX70mm8Ve1ybR5XdzSdxoj/Z1OAdPQbQS1w/ibGzTY75eQNGYJaKTX7NH6pHEHHoCjv56Zebx0XSS+q9eUihXxxGnhp6Xk/eOKTQj/DCz6uGieh/0DPsUZQQ03EAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1IhUHK4g4ZKhOFkRFBBepYhEslLZCqw4ml35Bk4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAqJeZanaMA6pmGclYVMxkV8XAKwQEMIBZdEnM1OOpxTQ8x9c9fHy9i/As73N/jl4lZzLAJxLPMd2wiDeIpzctnfM+cYgVJYX4nHjMoAsSP3JddvmNc8FhgWeGjHRynjhELBbaWG5jVjRU4inisKJqlC9kXFY4b3FWy1XWvCd/YTCnraS4TnMYMSwhjgREyKiihDIsRGjVSDGRpP2oh3/I8SfIJZOrBEaOBVSgQnL84H/wu1szPznhJgWjQOeLbX+MAIFdoFGz7e9j226cAP5n4Epr+St1YOaT9FpLCx8BfdvAxXVLk/eAyx1g8EmXDMmR/DSFfB54P6NvygL9t0DPmttbcx+nD0Caulq+AQ4OgdECZa97vLu7vbd/zzT7+wF8pXKr0kUkPQAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6YTJjZmUzZWYtMzE5Yi00YTlkLThlZGEtMzJhNDYzZjMwNmZlIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgxY2EwNjczLTJlODEtNGM3Mi1hNTM2LTg2MTJkYjc4YWY3NiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmI0OGNmYzRiLTMxOGItNDEzNy1iMmZlLTEzYWZjM2E0ZTExZCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0NDgyMjI4NDI1Mjg0IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZWFmMzkzYzAtOGRlNy00NTlmLTg4MzItYWE2MGYyYTc0NWJlIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTEwVDA5OjM3OjA4Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pj16UaAAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfmAgoIJQjxj+hWAAAAMklEQVQI12NggILQriP/GdAAEzIHXQETumpkBRiSyAqwSq4us2HEKgmTYMDnGAYGBgYAozYP8SPzNcgAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_addons_transition__FlxTransitionSprite_RawGraphicTransTileDiamond", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQVhOU1IwSUFyczRjNlFBQUFzNUpSRUZVZUp6dDJORnFIRUVNUk5GeC92K2ZOeS9KUzRpaHJWR051cGx6d1dCc2RXbFlyN2VMKy9YNWZDNEFPSXgvUDdpK2h2YitTK281ZnZwQjNmVWNkeStJNm5OMFgweXJ6NUcrRUw5N2pxY3Y0ci9QTVZvQWZrMHVCM0EwbjJ2bUEreC9PNTk0anBVZGllZW9aSFk4eDFURzFHczQ5UjdhNVgvb2NSUVFBQlUrMzN6LzVONmYvQzY1OTg1c01tdnE3SjJzcWIvaDFIdDRzZ2lNbHhBRkJEZ1hCcUkyazlqYmNXYVhEQVlpei9qbHZ3TUtDSEFtREVUUGJES0xnVmpQWmlCZWlBSUMxR0VnYWpPSnZSMW5kc2xnSVBLOC92TGZBUVVFcU1GQTlNd21zeGlJOVd3R0FvK2pnT0JrR0lqYVRHSnZ4NWxkTWhpSVBDNS9LQ0E0RmdhaVp6YVp4VUNzWnpNUWVCMEtDTzdBUU5SbUVuczd6dXlTd1VEa2NmbGpIQVVFVlJpSW50bGtGZ094bnMxQUFBK2pnSndOQTFHYlNlenRPTE5MQmdPUngrV1AxNk9BbkFzRDBUT2J6R0lnMXJNWkNPQmxLQ0QzWUNCcU00bTlIV2QyeVdBZzhyajhnV0VVa0RvTVJNOXNNb3VCV005bUlBQTh5dWtGaElHb3pTVDJkcHpaSllPQnlPUHlCMTdPNlFVRUFBQWN5T2tGNU92UDE4VGVsWjg5c2JjeWs5amJjV2FYaktuWGNPbzl0TXYvRUlBWGNYb0JtZVRybSsrZjNQdVQzeVgzM3BsTlprMmR2Wk0xOVRlY2VnOVBGaEVsQ0JoRUFia0hBMU9iU2V6dE9MTkxCZ09UUi9rQWhsRkF6b1dCNlpsTlpqRXc2OWtNRFBBeUZKQ3pZV0JxTTRtOUhXZDJ5V0JnOGlnZmVEMEtDS293TUQyenlTd0daajJiZ1FFZVJnSEJIUmlZMmt4aWI4ZVpYVElZbUR6S0I4WlJRSEFxREV6UGJES0xnVm5QWm1Ed09oUVFuQXdEVTV0SjdPMDRzMHNHQTVOSCtZQUNBaFJoWUhwbWsxa016SG8yQTRQSFVVQ0FPZ3hNYlNheHQrUE1MaGtNVEI3bFl3TVVFT0JNR0ppZTJXUVdBN09lemNDOEVBVUVPQmNHcGphVDJOdHhacGNNQmliUDY4dkhkU2tnQUdvd01EMnp5U3dHWmoyYmdSbEFBUUZRaFlHcHpTVDJkcHpaSllPQnlUTmVQcTdydW40RDVOWDdQSTd2WFpFQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicArrowLeft", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUxFbEVRVlI0Mm1QQUJQOGoveS9ESXZRZkNOQ0ZvQUJGQ0FGUWhSRENDQ0U4cXZHWVRjZ2xtRkk0ZkFrQUk5T0RKTzFJai9JQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/shared/sortable-desc-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAIAAABxOqH0AAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0UlEQVQIHQHGADn/Ae0cJAAAAAAAAIdYUHmosAAAAAAAAAIAAAAAAACHWFAAAACJWlIAAAAAAAACAAAAh1hQAgICAgICAAAAjV5WAAAAAe0cJAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAANannwAAAAAAAAAAAAAAACpZYQIAAAAqWWEAAAAAAAAAAAAqWWEAAAACAAAAAAAAKllhAAAAKllhAAAAAAAAmeIQ3V5WWXgAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/default/treeviews.css", data : "LnRyZWV2aWV3IC5zY3JvbGx2aWV3LWNvbnRlbnRzIHsKICAgIHNwYWNpbmc6IDA7Cn0KCi50cmVldmlld25vZGUgewogICAgc3BhY2luZzogMDsKfQoKLnRyZWV2aWV3bm9kZSAuaXRlbXJlbmRlcmVyIHsKICAgIHdpZHRoOiBhdXRvOwogICAgcGFkZGluZzogNXB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoudHJlZXZpZXcgLml0ZW1yZW5kZXJlcjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI7Cn0KCi50cmVldmlldyAuaXRlbXJlbmRlcmVyOm5vZGUtc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwp9CgoudHJlZXZpZXcgLml0ZW1yZW5kZXJlcjpub2RlLXNlbGVjdGVkIC5sYWJlbCB7CiAgICBjb2xvcjogJHNlbGVjdGlvbi10ZXh0LWNvbG9yOwp9CgoudHJlZXZpZXdub2RlIC5iYXNpYy1yZW5kZXJlci1jb250YWluZXIgewogICAgd2lkdGg6IGF1dG87Cn0KICAgIAoudHJlZXZpZXdub2RlIC5iYXNpYy1yZW5kZXJlci1sYWJlbCB7CiAgICB3aWR0aDogYXV0bzsKfQogICAgCi50cmVlbm9kZS1jb250YWluZXIgewogICAgc3BhY2luZzogMDsKfQogICAgCi50cmVlbm9kZS1jaGlsZC1jb250YWluZXIgewogICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgc3BhY2luZzogMDsKfQogICAgCi50cmVlbm9kZS1leHBhbmQtY29sbGFwc2UtaWNvbiB7CiAgICByZXNvdXJjZTogJGJsYW5rOwogICAgY3Vyc29yOiBub25lOwogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKfQogICAgCi50cmVlbm9kZS1leHBhbmQtY29sbGFwc2UtaWNvbi5ub2RlLWV4cGFuZGVkIHsKICAgIHJlc291cmNlOiAkY29sbGFwc2VkOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CiAgICAKLnRyZWVub2RlLWV4cGFuZC1jb2xsYXBzZS1pY29uLm5vZGUtY29sbGFwc2VkIHsKICAgIHJlc291cmNlOiAkZXhwYW5kZWQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi50cmVldmlldy5mdWxsLXdpZHRoIC5pdGVtcmVuZGVyZXIgewogICAgd2lkdGg6IDEwMCU7Cn0KCi50cmVldmlldy5mdWxsLXdpZHRoIC5zY3JvbGx2aWV3LWNvbnRlbnRzIHsKICAgIHdpZHRoOiAxMDAlOwp9CgoudHJlZXZpZXcuZnVsbC13aWR0aCAudHJlZXZpZXdub2RlIHsKICAgIHdpZHRoOiAxMDAlOwp9CgoudHJlZXZpZXcuZnVsbC13aWR0aCAudHJlZW5vZGUtY29udGFpbmVyIHsKICAgIHdpZHRoOiAxMDAlCn0KCi50cmVldmlldy5mdWxsLXdpZHRoIC50cmVlbm9kZS1jaGlsZC1jb250YWluZXIgewogICAgd2lkdGg6IDEwMCU7Cn0KCi50cmVldmlldy5mdWxsLXdpZHRoIC5iYXNpYy1yZW5kZXJlci1jb250YWluZXIgewogICAgd2lkdGg6IDEwMCU7Cn0KCi50cmVldmlldy5mdWxsLXdpZHRoIC50cmVlbm9kZS1jb250YWluZXIgI3RleHQgewogICAgd2lkdGg6IDEwMCU7Cn0gCg"},{ name : "haxeui-core/locale/fr/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLyVtLyVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9LAo"},{ name : "haxeui-core/locale/it/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLyVtLyVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9LAo"},{ name : "haxeui-core/styles/shared/check-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5QEaCTskh/mOvAAAAS5JREFUKM+NkbtKA2EQhb/ZrLIGL2BnExDEIr2FguADBLMo/IWFCF7AwiewEkRQ7GwUkXRiY4LZGASLtbIQK4tgo7VWgmBMdrM7FokQxBinO2fmzAczwj8qn78cFzuaCmu1U7vbcLlcHqyH0TUqqR7HweoWqDXiPSAFBBLHd38SCgVvBtW1ppJt13UrHQme5yWxOAZE4SGsV3cBOhIaMTvAGNBIEC/PGRMA2OfF4oSFXBFLMQyqK8aYKO95k8RsAIiwn53N3n8vsiwYRRlGdMl2+g5zvu+IcgJYAo9vA/1b7WRRVbkolo4UVltWBTQNxKIy7bqZ2/aAJSIa1D/XBc6alqZbvYOfw0DzD8aY6PVlZBEotfynpNO7+dsxpF3kfN8Zev9Y0AQ385nM82+BL3sbaMn2+wKIAAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/pt/messagebox-strings.properties", data : "bWVzc2FnZWJveC50aXRsZS5pbmZvPUluZm9ybWHDp8OjbwptZXNzYWdlYm94LnRpdGxlLnF1ZXN0aW9uPVBlcmd1bnRhCm1lc3NhZ2Vib3gudGl0bGUud2FybmluZz1BdmlzbwptZXNzYWdlYm94LnRpdGxlLmVycm9yPUVycm8"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Mover_GraphicMoverTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQVIwbEVRVlI0Mm9VUEF3RUFNWEJTLzdiUDJUaWJwSUcxWkFYcjRaQVlYVnJycWVVdC9MUncxRmNRV3lDV3A1bFdlazlaRXd0RkNEQVNaWEN0U2o1NjkrT3J2LzFEdE5nTzBhUkkyV1F5L2FnQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformTool", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQUowbEVRVlI0Mm1Oa0lBRCtBd0dxQUpFQW9Sc0hJRVV4aXZ4UVU0emhXNEtoOFo4RVFKTEpBSEVydjBLeitjRk1BQUFBQUVsRlRrU3VRbUND"},{ name : "haxeui-core/styles/default/sidebars.css", data : "LnNpZGViYXItbW9kYWwtYmFja2dyb3VuZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWwtYmFja2dyb3VuZC1jb2xvcjsKICAgIG9wYWNpdHk6IDAuNjA7Cn0KCi5zaWRlYmFyIHsKICAgIG1hcmdpbjogNTBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgcGFkZGluZzogNXB4OwogICAgZmlsdGVyOiBkcm9wLXNoYWRvdygxLCA0NSwgIzAwMDAwMCwgMC4xLCAzMCwgMiwgMSwgMywgZmFsc2UpOwp9Cgouc2lkZWJhci5uby1iYWNrZ3JvdW5kIHsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7Cn0KCi5zaWRlYmFyLm5vLXBhZGRpbmcgewogICAgcGFkZGluZzogMDsKfQogICAgCi5zaWRlYmFyOmxlZnQgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5zaWRlYmFyOnJpZ2h0IHsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5zaWRlYmFyOnRvcCB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi5zaWRlYmFyOmJvdHRvbSB7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiBBTklNQVRJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgouc2lkZUJhck1vZGlmeUNvbnRlbnQgewogICAgYW5pbWF0aW9uOiBzaWRlQmFyTW9kaWZ5Q29udGVudCAwLjNzIGVhc2UgMHMgMTsKfQoKLnNpZGVCYXJSZXN0b3JlQ29udGVudCB7CiAgICBhbmltYXRpb246IHNpZGVCYXJSZXN0b3JlQ29udGVudCAwLjNzIGVhc2UgMHMgMTsKfQoKICAgIApAa2V5ZnJhbWVzIHNpZGVCYXJNb2RpZnlDb250ZW50IHsKICAgIDAlIHsKICAgIH0KICAgIDEwMCUgewogICAgfQp9CiAgICAKQGtleWZyYW1lcyBzaWRlQmFyUmVzdG9yZUNvbnRlbnQgewogICAgMCUgewogICAgfQogICAgMTAwJSB7CiAgICB9Cn0KICAgIAouc2hvd1NpZGVCYXJMZWZ0IHsKICAgIGFuaW1hdGlvbjogc2hvd1NpZGVCYXJMZWZ0IDAuM3MgZWFzZSAwcyAxOwp9Ci5oaWRlU2lkZUJhckxlZnQgewogICAgYW5pbWF0aW9uOiBzaG93U2lkZUJhckxlZnQgMC4zcyBlYXNlIDBzIDEgcmV2ZXJzZSBiYWNrd2FyZHM7Cn0KICAgIApAa2V5ZnJhbWVzIHNob3dTaWRlQmFyTGVmdCB7CiAgICAwJSB7CiAgICB9CiAgICAxMDAlIHsKICAgIH0KfQoKLnNob3dTaWRlQmFyUmlnaHQgewogICAgYW5pbWF0aW9uOiBzaG93U2lkZUJhclJpZ2h0IDAuM3MgZWFzZSAwcyAxOwp9CgouaGlkZVNpZGVCYXJSaWdodCB7CiAgICBhbmltYXRpb246IHNob3dTaWRlQmFyUmlnaHQgMC4zcyBlYXNlIDBzIDEgcmV2ZXJzZSBiYWNrd2FyZHM7Cn0KICAgIApAa2V5ZnJhbWVzIHNob3dTaWRlQmFyUmlnaHQgewogICAgMCUgewogICAgfQogICAgMTAwJSB7CiAgICB9Cn0KICAgIAouc2hvd1NpZGVCYXJUb3AgewogICAgYW5pbWF0aW9uOiBzaG93U2lkZUJhclRvcCAwLjNzIGVhc2UgMHMgMTsKfQouaGlkZVNpZGVCYXJUb3AgewogICAgYW5pbWF0aW9uOiBzaG93U2lkZUJhclRvcCAwLjNzIGVhc2UgMHMgMSByZXZlcnNlIGJhY2t3YXJkczsKfQogICAgCkBrZXlmcmFtZXMgc2hvd1NpZGVCYXJUb3AgewogICAgMCUgewogICAgfQogICAgMTAwJSB7CiAgICB9Cn0KICAgIAouc2hvd1NpZGVCYXJCb3R0b20gewogICAgYW5pbWF0aW9uOiBzaG93U2lkZUJhckJvdHRvbSAwLjNzIGVhc2UgMHMgMTsKfQouaGlkZVNpZGVCYXJCb3R0b20gewogICAgYW5pbWF0aW9uOiBzaG93U2lkZUJhckJvdHRvbSAwLjNzIGVhc2UgMHMgMSByZXZlcnNlIGJhY2t3YXJkczsKfQogICAgCkBrZXlmcmFtZXMgc2hvd1NpZGVCYXJCb3R0b20gewogICAgMCUgewogICAgfQogICAgMTAwJSB7CiAgICB9Cn0K"},{ name : "haxeui-core/styles/shared/error-large.png", data : "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAPKnpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZppduMwroX/cxW9BM7Dcjie83bwlt8fSNmuDO7E5YrLkUqmKQL3Arigoub//99S/+EnBJOVDynHEqPmxxdfbOUk6/NT92+j/f69f9z1Ef//cF3dP7Bcco+ROV7jb9fNfYJzqJyFPybK/fqgffyg+Gv+/Gkie61MViTn45qoXBM5ez4w1wT1mKVjyelPE9o8x3GzJJ+3kl8+f1z2l/8nvDcC93HWTmec5rd1/izAydsqV/eJ/M4MNLwqb7kSnLkmwyHf+Un/sSr1GZX7mXly/RMoLp7rigsfnRnvx2+vm/Dp+jWh2i7+kyf9fucP1327wfDRyfJea2S11jzWVR9xabyMupmyzxjYmMrtr0VeiXfgPO1X4ZUV7O3ca+iuG69uirHAsow3w1SzzNzHbjpL9HbaxNHabt2+ll2yxXYHs43z8jLLJlfccBnEOvA6rtr7Wsy+b9m36yZz42EYaQ2TmQO//TevpxOtJZQ3Rue7r1iXlaBgGYKc/GYUEJh141HYDr69Pv8Irg4Ew3ZzxsCq25miBXNxS3jkNtCOgYHjAdmkcU2Ai7h3YDGw3hsdjQsmGp2sTcbgxww+lYkyQWMbEJgQ7GCV1jsXAYeI4d58J5k91gZ7LpOzACK46BLQFFfBypPY4E/yGQ7V4IIPIcSQQg4l1OiijyHGmKIkv5pc8imkmFLKqaSaXfY55JhTziqXXIstjuQYSiyp5FJKrdy0MnPl25UBtTbbXPMttNhSy6202qFP9z302FPPqpdehx1ukCdGHGnkUUadZkKl6WeYcaaZZ5l1QbXlll9hxZVWXmXVO2pGHVi/vH6PmrmhZjdSMjDdUeOrKd2mMJJOgmAGYtYbEE+CAIS2gpnOxnurBDrBTBdLVATLKoOAM4wgBoJ+GhuWuWP3QO4Dbsr7t3CzN+SUQPcvkFMC3RPkvuL2DWpDqk3XTm2EJAzFqdoRfgyYudpcpaj9+qjOSYvLp6XbmLPhjpVcZImtksFyBB1PTSejaTeyWaHOrhc2DZsWq7Wsb6rVPNnWRuz2aZg4mvec8d+YSiA5EpYADQUm5c5Rj2cJPbgOQCWNPvqq5MtIrIU0amI+Jk69lBlH7SuHyCXXnMenpcQxZE4DBYwjqRYCek6daohmpOZikwI52mzoEUYnu+w2x3odSWKmZ8osCX7ERgnQepowZ3ELp5vU5MpehSQ2UnYtUfJ0m2tO20O8FjknY9uMfbkgPrWtgdTU+5wi9PGo9JMPXj2SIWF1xAHThd768XIuZkS3vYw3ds1t2s0WMGuaM9pTcaxneGH4GIookMAsIIyUyceDdubBF5oZelLZxP+h5QQxOmj52qmmJIF0MGwpzKAilc5MWD3y7LhmBomx7iyJtwpDwmw15EO9yTLazSaqKDQgdjurqgo6xIFDDUKmd2pp9EDWteC6ybfgZsT6lvfyrNyLeiurg1gssBhAzurYkpod0czmjkHQwFhiLGIQ0c5XovaxV3GXJV7FXYP47zDXrcQwowjNWMQYX1OwpWKM38Yse4E+gpus9IdwU/bF+BxoirYNlWXPUUfhNimganv2oJBRBl5LNNYhtuZwhuvlO5y/OaZkyN79dkytrmVg8xGM1Wsgf8U4XRirn0D+fPwI+gNz9R7oD8zVe6A/MFfvgf44qtdAfo6xeg3k5xir10B+jrH6XfZ6BvoDc/Ue6A/M1XugPzBX74H+wFi9BvJzjNVrID/HWL0G8icsU/Jt6Yo8qWolPyI6RSRDq9UksEQxUFduJagOqaSaOg6snKFmpOw2hI1ol+5D5FwBfBmxRrmI+/dx6BJbQ/1g6DS19OkQaZ3KtRzoDV1HLzrWMZFtXr7RrWqOui7iBKMWRZu6vqSZCejFemmJjImi0URLlMFSszMNx6DQzAAKX1dU+Ib2E51g6vBOJkEmbHlQpekITQ/kqGnVMG6vJ8l63LWeOoxn1EwKQns590E2D84xmpXrIXhyvucHMQrKkwubGJhw1XERQorizGLMmDY0Kf5+TnrDomXdFvX9WLwgSgB1AsNtCgVUVm9I+NlMlr0RpKdEnPXrKKG69Mp5RYRNb9GhWZELLeTip+hnHFkGuJuJtBMTUq2pK0TytgjffH80iGQX97pZBmwKDUUsqyg0uShq6ekyQXvCnrXrdoZD2QKrbnYKowxSHDtDEPnmhs3kz2MiPnEIyeYVNopXJF5Q6z53Y/WKMrrF2ToRTgig3xpRkxfTo7YxM/paaRIws4mZOqiNXs8IrM/Y3Y6JeMl4NIVeto5so8APb8UQLHFZiKc616GPSFPUcqZBmJko6/Q/K4ORmQkiw4aZs219rp6quMubw7l+cU45nG4JV1oJUbKAkp2sN2ytShatzgTUue5l0CT5hhtmuuBimWMeVNQ3MGXEfLlUJcC7h6yMZot3kZW23RJV4XNXleRz8k0+Ktu4Ru4SlY3QFMdfMOEWUdqhgG0AehGgtFzOji4FAEvoIF0MQoUCjLvPaJ1060ZZjeyeEeZESR3RUkUKkUZWSGHYnuDIibNaRER8ibNM0Fx1J0Hve9mJ1JwYttSw9KI7BlgqdNqjafwoU+1hFwlVugexK4QrzpyPxyTxwdU59e0E6ZzoNyErIULrJKPJkFCNJMMyaFh6im4yfROzkOG1BOk+6hKzzvKTpWDcIkw9DbEBZQBMQwuz8xSJqAnVYqEB4B24OPXkc5fMUpAvk5SrodzUzHtlv6YBHmlHW7SDfowk7KB3rl3TAhNDsjImGnoIn2PrTdH0OdiYc2Q6rppDRJcgYjpEhJAUKIjYXTg4QWvs+gCT+hpbf5MfZ1b/Jj/mrv5NfqQX4URikloE7yh++GmWHdHUBHzsd9LL0nda/eXzCRXpzrmvStaulTrYkVBOeV6sjjX/soN0tOk5ZgUzrAiIU2n9VWklTKnEvbpdaQF1zp1djKQ0WWYIwYHnhGkLxiTUSIRoC2TgixnwDLBtX0g9fwq4MK0J00iqld69c0OLtcUniW5IKsVdXbTKx1YJnTXHYU28otuXFeezRHw73qM/2bSMRgUQHTqRege+m9mynghZOsV5FhPJZKFcXKk5N9kZNFtoJYtiOJmI/p4McIZbsDanhlViSGepYTrbRGMtqVEEXE3Z1Uy2KWQqtYiQOY2l4JCDKTiuosB2qplmbsmStd1+EO0zdCAhjK+fqz8G1EWskjpLs+ZlSqiPnECS5eQTAtgII0B53+SwQbuC8MEFNjNKitLq6xSlOtSpSlaYPmAManqNyQTEC4QH3+WmAEk6KdCDTGFP7QgERnSkaz0gx1BMIOhE0KlJFmMgGMzqtU3Z9kZ0bRDr1o9UUEjrHFxGEnApIv16Kb2oK8MEs2L+iSu3I3hCgEam1xGTZ53FErSUrr3BpPemFV1DEQkNe6YFngkHJqMtojd4Erc8lZIHA3gWzezM7F5MVaF85aGYcGNiJi0j4wf6hvq1uQLHqNm0J8IVd4BqqvVVEO1R4tX4caqolLOBSHnUsxCOnkJMg5tUHMSraaFcjdRUZMpi7aNH0LuTkgVv8u4GZA+XtFtoomawJ+12uiivd9plharsvCsNhV6zA/2jn6iWPiqQGN3uJwr9hOwoiiEFMdY/NEnqu65p0F9E+oQoot23ZJJsCcuWPpChXm1yDdiTFXnRUCOLuka5Mx4fENzLQTdyyU6kPewex2HChDm4pGhCnvUCPI4nJcXaMz2FSSgZS2LD2zOtUiYdjZvUaYsN3eJRRJRMbR9TazhBIrEa0RU8TZMdw3rEZFbeCjMAPKUbJ2hdgQ5hg1rjqjWdZCuZzcs6KLeUTdnjtN15FmFWQb/sLruJlvo52Z/CJtvh90rYwxHFuSjy2wg3cSbeQ1p5WudLcBsR0dZvwa1FQtMxi+CGatvVfBpo0+JUe/dxb8j6s/u4wyXbq8ku9ybbyfYwxJImO9JkQw5nk5ciJxsrStjR5x89dv7MhhWkCh2Tbk0EBVbfuwgaAt3V1nFWarUI/YgKk4U672SXFIp42fasBKfEqb06Y7PDmn/mjKasK3rhh10YJmlgy99KePqTwtAIGAa/qaSkmya5ITdjC/o0ryHZKqoSXZy/2BELFNhhLI1EolDSmIqkDvjUzq10lBSla2dkjt0k0d7KijdtQ6WIdbhS2tCSNqjD3ZhoYBWta6fpYdloO2o/sC/ZdK8MDWJW150eGRdEQ2YNCOpCIgqlTiKJHiMMh7xDirk8hkcx0cSkpHCx6cnRBMNgSFrk3kvujeoi4Rl0OwJJMn+pdImCOxoUYWhlz/nsX5BDlUcst4wohxvUHUxqorddlseNFBCLmzv5kdTG+ohPit1CZkOZStWhX5Ab26IOg3pzxNnTXZnThuwEeutb6Jn6o3EJQd2UYhaFL7tWSMO42wHiNSJpdztg5dmI3u1ARODL4LNpdZInXYOy9+R5bUHt5OlvJIJzaErZb8P5CC5cFOGQdG+OUg+HOEAhp+op7QH9Vn9Uef+jRqhfFokfa4T6ZZH4sUaoXxYJjmTrblqVak3uXBZJb6XKdB3SpIUQnshDmiHtNZmiQYzVUTLdF5sDWiNNFA3JW3NDmh76dU/tsB39TjowDGstUSDNole2LdFdkkboy7LfTaamhljZMlr7zy2YyGDSisRkJbdOHyhXU5Myim9VIX8gTaMogEmdK5gcO4LGSo3w8piMKsK9qC6BNeWWwmpBRIi1Iu7W8HjNGMVNIgsmizXAiRVpaUh+yJLeqZWtzSAqfpI/ZxNFFHRJwUieJjeagOBCO++n64QeqDBZIh/7SlNqnOsshJRmC6mE1EHquXb/kL25fxND6scg+mUMqR+D6JcxpH4Mol/GkHo5qJ7ElHo5qJ7ElHo5qJ7ElPomqP4qUarXQH6OsXoN5OcYq9dAfn5U74H+wFy9B/oDc/Ue6A/M1V9Vw28wVn9VDb/BWP1VNfwG43/5dP39FkswV/+ixRLM1bst1g1j9XK2Lt9jrN7P1gdj9X62Pkf1Jvju6sqNPDnefwcy1/V3IN3uLU1Dk7+fYjXdzhk1FHmx2pQd11zr/isQCEPz7jOtKDKc5oKGI40ukK9uuz1/NYNk4CB7rrIRl/l6yKHyv74o4Hs3bulyuksVzoOkNGiY0PZxTuegXLs9oAOv+Bs71QeD16IdwHH/BV5nZEVoBRQjAAABhWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TtSIVByuIOGSoThZERQQXqWIRLJS2QqsOJpd+QZOGJMXFUXAtOPixWHVwcdbVwVUQBD9AHJ2cFF2kxP8lhRYxHhz34929x907QKiXmWp2jAOqZhnJWFTMZFfFwCsEBDCAWXRJzNTjqcU0PMfXPXx8vYvwLO9zf45eJWcywCcSzzHdsIg3iKc3LZ3zPnGIFSWF+Jx4zKALEj9yXXb5jXPBYYFnhox0cp44RCwW2lhuY1Y0VOIp4rCiapQvZFxWOG9xVstV1rwnf2Ewp62kuE5zGDEsIY4ERMioooQyLERo1UgxkaT9qId/yPEnyCWTqwRGjgVUoEJy/OB/8LtbMz854SYFo0Dni21/jACBXaBRs+3vY9tunAD+Z+BKa/krdWDmk/RaSwsfAX3bwMV1S5P3gMsdYPBJlwzJkfw0hXweeD+jb8oC/bdAz5rbW3Mfpw9AmrpavgEODoHRAmWve7y7u723f880+/sBfKVyq9JFJD0AAA0YaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmFmNjJmZDk3LWFiZTAtNGVmMy05M2Y1LTZkMWU5N2VlZjYxMSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpkM2ZkZjM5ZC1kYmVjLTQ0MGYtODRjNy1mODUxZWFjNGYyYmQiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3NmE3ZjMzYi0zY2U2LTQzMzAtYTFiNi1iMzdlNDdhZmRjOWYiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY0NDMxNTE3MTg5Mjk3NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjI0IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmU3ZjQzNTE5LTU0ZTYtNGVjNC1iMWU1LTZjOGVjNTJlODliMSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMi0wOFQxMToxMjo1MSIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz6NJXiWAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5gIICgwzrU+CfAAAAudJREFUaN7tmr9PU1EUx7/nPn4IUhKwqImxGomDjsZSIwvBh8rg5iRGB2cTV/4BHf0HHHQQEqOLDoYEGjcLxNkYDEggJlqIBhDb1757HCRAy6vv17m0MZytt8m7n8895/56LXAQteP7wEDL6nCm1WQfZOKhG0Pp49A0DCAFgED4qhkTnVMziw0vsD6YPqWIRhhoqfrKVYyX7dmZj5L9KcmHrdmZFBHd8oAHAEsTbm4O9p1ryAys2ZmUYh4B4FfzopmgfYYXl6A6wItKUJ3gxSSojvAiElRn+NgS1ADwsSSoQeAjS5AJeKvvMg49fFzRVhh9AHf2vbiEMjLyTjFYWw3/MDu2MlE2XNwLy8EFQkkoIzXvOMHaBCSUkQnrNdrFYpRJ7SuhTKw2XuXC4TMQSEIZWSqLYhnwlVBG1nmv0S7FEqgpsS2wfvXiUYv5tsQm5VlCxdgC2xJrdia1R4BcZde4SYWPchnQeuez1oDrSu3WlmK+5lVCp0UPBbuyIDT6u+NEvr+/tVpAS/ZQAe0UpAU42V3QVQL8WTYDTpxNzI9/kd58KFUIWK41CcYvsS4MlRABDqDe7pkDbe9yP1mppwA2GjgDJQ0a75ia/lbzOL1uX+oh1ncBdMQaqWQP0Ly1qJUc8Eo+NjyDxhJT0wu+9wEpCcHwhP/nhSauBHV1o+n6DVBbO8rZCegv8+LwvjeyqBKU6ETbk3HQkeTWxlbC7/v3oOc+icL73gcSk7k8k3oWdmJbF9I78ADQ1IymgSFx+EA3sigSenkJYK5sW1oUhwcAK8jTHs0vb472npwj8HkEOC/xj1Xw6gqsM2cBt4zy61covXgOgEXhQ79W2YfVKRR8pBdbBiVCw0cSMCQRCT6ygLBEZPhYAkISseBjC8SUiA0vIhBRQgReTCCkhBi8qEBACVF4cQEA2LiSOQbmOyAcrn61xcxjieys6K/1Rv5qULDTXS7IZkYv/h4gFkAqm5jM5XEQ/1n8ASmb3x/MRO6eAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/gripper-horizontal.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAECAIAAAA4WjmaAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAJElEQVQImWN8K6PCgBswMTAwTEqOnpQcjZXBhEcrAwMDI37DARkxCkFtOZfXAAAAAElFTkSuQmCC"},{ name : "haxeui-core/locale/ru/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLSVtLSVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9LAo"},{ name : "__ASSET__:bitmap_flixel_addons_transition__TransitionFade_RawGraphicDiagonalGradient", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVQ0QUFBQ0FDQVlBQUFDU2p3V0JBQUFLT21sRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUVpSm5aWjNWRlRYRm9mUHZYZDZvYzB3RkNsRDc3ME5JTDAzcWRKRVlaZ1pZQ2dERGpNMHNTR2lBaEZGUkFRVlFZSWlCb3lHSXJFaWlvV0FZTUVla0NDZ3hHQVVVVkY1TTdKV2RPWGx2WmVYM3g5bmZXdWZ2ZmM5Wis5OTFyb0FrTHo5dWJ4MFdBcUFOSjZBSCtMbFNvK01pcVpqK3dFTThBQUR6QUJnc2pJekFrSTl3NEJJUGg1dTlFeVJFL2dpQ0lBM2Q4UXJBRGVOdklQb2RQRC9TWnFWd1JlSTBnU0oySUxOeVdTSnVGREVxZG1DRExGOVJzVFUrQlF4d3lneDgwVUhGTEc4bUJNWDJmQ3p6eUk3aTVtZHhtT0xXSHptREhZYVc4dzlJdDZhSmVTSUdQRVhjVkVXbDVNdDRsc2kxa3dWcG5GRi9GWWNtOFpoWmdLQUlvbnRBZzRyU2NTbUlpYnh3MExjUkx3VUFCd3A4U3VPLzRvRm5CeUIrRkp1NlJtNWZHNWlrb0N1eTlLam05bmFNdWplbk94VWprQmdGTVJrcFRENWJMcGJlbG9HazVjTHdPS2RQMHRHWEZ1NnFNaldacmJXMWtibXhtWmZGZXEvYnY1TmlYdTdTSytDUC9jTW92VjlzZjJWWDNvOUFJeFpVVzEyZkxIRjd3V2dZek1BOHZlLzJEUVBBaUFwNmx2N3dGZjNvWW5uSlVrZ3lMQXpNY25PempibWNsakc0b0wrb2YvcDhEZjAxZmVNeGVuK0tBL2RuWlBBRktZSzZPSzZzZEpUMDRWOGVtWUdrOFdoRy8xNWlQOXg0Ritmd3pDRWs4RGhjM2lpaUhEUmxIRjVpYUoyODloY0FUZWRSK2Z5L2xNVC8ySFluN1E0MXlKUkdqNEJhcXd4a0JxZ0F1VFhQb0NpRUFFU2MwQzBBLzNSTjM5OE9CQy92QWpWaWNXNS95em8zN1BDWmVJbGs1djRPYzR0Skl6T0V2S3pGdmZFenhLZ0FRRklBaXBRQUNwQUErZ0NJMkFPYklBOWNBWWV3QmNFZ2pBUUJWWUJGa2dDYVlBUHNrRSsyQWlLUUFuWUFYYURhbEFMR2tBVGFBRW5RQWM0RFM2QXkrQTZ1QUZ1Z3dkZ0JJeUQ1MkFHdkFIekVBUmhJVEpFZ1JRZ1ZVZ0xNb0RNSVFia0NIbEEvbEFJRkFYRlFZa1FEeEpDK2RBbXFBUXFoNnFoT3FnSitoNDZCVjJBcmtLRDBEMW9GSnFDZm9mZXd3aE1ncW13TXF3Tm04QU0yQVgyZzhQZ2xYQWl2QnJPZ3d2aDdYQVZYQThmZzl2aEMvQjErRFk4QWorSFp4R0FFQkVhb29ZWUlRekVEUWxFb3BFRWhJK3NRNHFSU3FRZWFVRzZrRjdrSmpLQ1RDUHZVQmdVQlVWSEdhSHNVZDZvNVNnV2FqVnFIYW9VVlkwNmdtcEg5YUJ1b2taUk02aFBhREphQ1cyQXRrUDdvQ1BSaWVoc2RCRzZFdDJJYmtOZlF0OUdqNlBmWURBWUdrWUhZNFB4eGtSaGtqRnJNS1dZL1poV3pIbk1JR1lNTTR2RlloV3dCbGdIYkNDV2lSVmdpN0I3c2NldzU3QkQySEhzV3h3UnA0b3p4M25pb25FOFhBR3VFbmNVZHhZM2hKdkF6ZU9sOEZwNE8zd2dubzNQeFpmaEcvQmQrQUg4T0g2ZUlFM1FJVGdRd2dqSmhJMkVLa0lMNFJMaEllRVZrVWhVSjlvU2c0bGM0Z1ppRmZFNDhRcHhsUGlPSkVQU0o3bVJZa2hDMG5iU1lkSjUwajNTS3pLWnJFMTJKa2VUQmVUdDVDYnlSZkpqOGxzSmlvU3hoSThFVzJLOVJJMUV1OFNReEF0SnZLU1dwSXZrS3NrOHlVckprNUlEa3ROU2VDbHRLVGNwcHRRNnFScXBVMUxEVXJQU0ZHa3o2VURwTk9sUzZhUFNWNlVuWmJBeTJqSWVNbXlaUXBsRE1oZGx4aWdJUllQaVJtRlJObEVhS0pjbzQxUU1WWWZxUTAybWxsQy9vL1pUWjJSbFpDMWx3MlZ6Wkd0a3o4aU8wQkNhTnMySGxrb3JvNTJnM2FHOWwxT1djNUhqeUcyVGE1RWJrcHVUWHlMdkxNK1JMNVp2bGI4dC8xNkJydUNoa0tLd1U2RkQ0WkVpU2xGZk1WZ3hXL0dBNGlYRjZTWFVKZlpMV0V1S2w1eFljbDhKVnRKWENsRmFvM1JJcVU5cFZsbEYyVXM1UTNtdjhrWGxhUldhaXJOS3NrcUZ5bG1WS1ZXS3FxTXFWN1ZDOVp6cU03b3MzWVdlU3EraTk5Qm4xSlRVdk5XRWFuVnEvV3J6NmpycXk5VUwxRnZWSDJrUU5CZ2FDUm9WR3QwYU01cXFtZ0dhK1pyTm12ZTE4Rm9NclNTdFBWcTlXblBhT3RvUjJsdTBPN1FuZGVSMWZIVHlkSnAxSHVxU2RaMTBWK3ZXNjk3U3crZ3g5RkwwOXV2ZDBJZjFyZlNUOUd2MEJ3eGdBMnNEcnNGK2cwRkR0S0d0SWMrdzNuRFlpR1RrWXBSbDFHdzBha3d6OWpjdU1PNHdmbUdpYVJKdHN0T2sxK1NUcVpWcHFtbUQ2UU16R1ROZnN3S3pMclBmemZYTldlWTE1cmNzeUJhZUZ1c3RPaTFlV2hwWWNpd1BXTjYxb2xnRldHMng2cmI2YUcxanpiZHVzWjZ5MGJTSnM5bG5NOHlnTW9JWXBZd3J0bWhiVjl2MXRxZHQzOWxaMnduc1R0ajlabTlrbjJKLzFINXlxYzVTenRLR3BXTU82ZzVNaHpxSEVVZTZZNXpqUWNjUkp6VW5wbE85MHhObkRXZTJjNlB6aEl1ZVM3TExNWmNYcnFhdWZOYzIxemszTzdlMWJ1ZmRFWGN2OTJMM2ZnOFpqK1VlMVI2UFBkVTlFejJiUFdlOHJMeldlSjMzUm52N2VlLzBIdlpSOW1INU5Qbk0rTnI0cnZYdDhTUDVoZnBWK3ozeDEvZm4rM2NGd0FHK0Fic0NIaTdUV3NaYjFoRUlBbjBDZHdVK0N0SUpXaDMwWXpBbU9DaTRKdmhwaUZsSWZraHZLQ1UwTnZSbzZKc3cxN0N5c0FmTGRaY0xsM2VIUzRiSGhEZUZ6MFc0UjVSSGpFU2FSSzZOdkI2bEdNV042b3pHUm9kSE4wYlBydkJZc1h2RmVJeFZURkhNblpVNkszTldYbDJsdUNwMTFabFl5VmhtN01rNGRGeEUzTkc0RDh4QVpqMXpOdDRuZmwvOERNdU50WWYxbk8zTXJtQlBjUnc0NVp5SkJJZUU4b1RKUklmRVhZbFRTVTVKbFVuVFhEZHVOZmRsc25keWJmSmNTbURLNFpTRjFJalUxalJjV2x6YUtaNE1MNFhYazY2U25wTSttR0dRVVpReHN0cHU5ZTdWTTN3L2ZtTW1sTGt5czFOQUZmMU05UWwxaFp1Rm8xbU9XVFZaYjdQRHMwL21TT2Z3Y3ZweTlYTzM1VTdrZWVaOXV3YTFocldtTzE4dGYyUCs2RnFYdFhYcm9IWHg2N3JYYTZ3dlhEKyt3V3ZEa1kyRWpTa2JmeW93TFNndmVMMHBZbE5Yb1hMaGhzS3h6VjZibTRza2l2aEZ3MXZzdDlSdVJXM2xidTNmWnJGdDc3WlB4ZXppYXlXbUpaVWxIMHBacGRlK01mdW02cHVGN1FuYis4dXN5dzdzd096ZzdiaXowMm5ua1hMcDhyenlzVjBCdTlvcjZCWEZGYTkzeCs2K1dtbFpXYnVIc0VlNFo2VEt2NnB6citiZUhYcy9WQ2RWMzY1eHJXbmRwN1J2Mjc2NS9lejlRd2VjRDdUVUt0ZVcxTDQveUQxNHQ4NnJycjFldTc3eUVPWlExcUduRGVFTnZkOHl2bTFxVkd3c2FmeDRtSGQ0NUVqSWtaNG1tNmFtbzBwSHk1cmhabUh6MUxHWVl6ZStjLyt1czhXb3BhNlYxbHB5SEJ3WEhuLzJmZHozZDA3NG5lZyt5VGpaOG9QV0QvdmFLRzNGN1ZCN2J2dE1SMUxIU0dkVTUrQXAzMVBkWGZaZGJUOGEvM2o0dE5ycG1qT3laOHJPRXM0V25sMDRsM2R1OW56Rytla0xpUmZHdW1PN0gxeU12SGlySjdpbi81TGZwU3VYUFM5ZjdIWHBQWGZGNGNycHEzWlhUMTFqWE91NGJuMjl2YytxciswbnE1L2ErcTM3Mndkc0JqcHYyTjdvR2x3NmVIYklhZWpDVGZlYmwyLzUzTHArZTludHdUdkw3OXdkamhrZXVjdStPM2t2OWQ3TCsxbjM1eDlzZUloK1dQeEk2bEhsWTZYSDlUL3IvZHc2WWoxeVp0Ujl0TzlKNkpNSFk2eXg1NzlrL3ZKaHZQQXArV25saE9wRTA2VDU1T2twejZrYnoxWThHMytlOFh4K3V1aFg2Vi8zdmRCOThjTnZ6ci8xelVUT2pML2t2MXo0dmZTVndxdkRyeTFmZDg4R3pUNStrL1ptZnE3NHJjTGJJKzhZNzNyZlI3eWZtTS8rZ1AxUTlWSHZZOWNudjA4UEY5SVdGdjRGQTVqei9DVjNGblVBQUFSbFNVUkJWSGljN2RSSGtoVkJBRU5Cd2YyUERERXM4RERtbSs1V21jd0lYVUNMOStubDVlVWx3STYrN0xyUFI3d0hUS2NlbitLK0NoL3NweDJlYXZTU1JQaGdMKzN3MUtPWENCL3NwQjJlSWFLWENCL3NvaDJlWWFLWENCL3NvQjJlb2FLWENCK3NyaDJlNGFLWENCK3NyQjJlSWFPWENCK3NxaDJlWWFPWENCK3NxQjJlb2FPWENCK3NwaDJlNGFPWENCK3NwQjJlS2FLWENCK3NvaDJlYWFLWENCK3NvQjJlcWFLWENCL01yaDJlNmFLWENCL01yQjJlS2FPWENCL01xaDJlYWFPWENCL01xQjJlcWFPWENCL01waDJlNmFPWENCL01wQjJlSmFLWENCL01vaDJlWmFLWENCL01vQjJlcGFLWENCK01yaDJlNWFLWENCK01yQjJlSmFPWENCK01xaDJlWmFPWENCK01xQjJlcGFPWENCK01waDJlNWFPWENCK01wQjJlTGFLWENCK01vaDJlYmFLWENCK01vQjJlcmFLWENCKzB0Y096WGZRUzRZT21kbmkyakY0aWZORFNEcysyMFV1RUR4cmE0ZGs2ZW9ud3dkWGE0ZGsrZW9ud3daWGE0Ukc5SDRRUHJ0RU9qK2o5UWZqZ2ZPM3dpTjQvaEEvTzFRNlA2TDFDK09BODdmQ0kzaHVFRDg3UkRvL292VVA0NEhqdDhJamVCNFFQanRVT2oramRRUGpnT08zd2lONk5oQStPMFE2UDZOMUIrT0I1N2ZDSTNwMkVENTdURG8vb1BVRDQ0SEh0OElqZWc0UVBIdE1PaitnOVFmamdmdTN3aU42VGhBL3UwdzZQNkIxQStPQjI3ZkNJM2tHRUQyN1REby9vSFVqNDRHUHQ4SWpld1lRUDN0Y09qK2lkUVBqZ2JlM3dpTjVKaEE5ZTF3NlA2SjFJK09CLzdmQ0kzc21FRC83V0RvL29YVUQ0NExkMmVFVHZJc0lIMzdYREkzb1hFajdvaDBmMExpWjg3SzRkSHRFckVENTIxZzZQNkpVSUg3dHFoMGYwaW9TUEhiWERJM3Bsd3NkdTJ1RVJ2UUVJSHp0cGgwZjBCaUY4N0tJZEh0RWJpUEN4ZzNaNFJHOHd3c2ZxMnVFUnZRRUpIeXRyaDBmMEJpVjhyS29kSHRFYm1QQ3hvblo0Ukc5d3dzZHEydUVSdlFrSUh5dHBoMGYwSmlGOHJLSWRIdEdiaVBDeGduWjRSRzh5d3NmczJ1RVJ2UWtKSHpOcmgwZjBKaVY4ektvZEh0R2JtUEF4bzNaNFJHOXl3c2RzMnVFUnZRVUlIek5waDBmMEZpRjh6S0lkSHRGYmlQQXhnM1o0Ukc4eHdzZm8ydUVSdlFVSkh5TnJoMGYwRmlWOGpLb2RIdEZibVBBeG9uWjRSRzl4d3NkbzJ1RVJ2UTBJSHlOcGgwZjBOaUY4aktJZEh0SGJpUEF4Z25aNFJHOHp3a2RiT3p5aXR5SGhvNmtkSHRIYmxQRFIwZzZQNkcxTStHaG9oMGYwTmlkOFhLMGRIdEZEK0xoVU96eWlSeExoNHpydDhJZ2V2d2dmVjJpSFIvVDRpL0J4dG5aNFJJLy9DQjluYW9kSDlIaVY4SEdXZG5oRWp6Y0pIMmRvaDBmMGVKZndjYlIyZUVTUER3a2ZSMnFIUi9TNGlmQnhsSFo0UkkrYkNSOUhhSWRIOUxpTDhQR3NkbmhFajdzSkg4OW9oMGYwZUlqdzhhaDJlRVNQaHdrZmoyaUhSL1I0aXZCeHIzWjRSSStuQ1IvM2FJZEg5RGlFOEhHcmRuaEVqOE1JSDdkb2gwZjBPSlR3OFpGMmVFU1B3d2tmNzJtSFIvUTRoZkR4bG5aNFJJL1RDQit2YVlkSDlEaVY4UEd2ZG5oRWo5TUpIMzlxaDBmMHVJVHc4Vk03UEtMSFpZU1BwQjhlMGVOU3drYzdQS0xINWI0Qjl1U0dVREtrdjBzQUFBQUFTVVZPUks1Q1lJST0"},{ name : "__ASSET__:sound_flixel_addons_text_TypeSound", data : "T2dnUwACAAAAAAAAAACBPwAAAAAAAD99658BHgF2b3JiaXMAAAAAAUSsAAAAAAAAgLsAAAAAAAC4AU9nZ1MAAAAAAAAAAAAAgT8AAAEAAAA8HKMNDy3/////////////////MgN2b3JiaXMdAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAwNzA2MjIAAAAAAQV2b3JiaXMfQkNWAQAAAQAYY1QpRplS0kqJGXOUMUaZYpJKiaWEFkJInXMUU6k515xrrLm1IIQQGlNQKQWZUo5SaRljkCkFmVIQS0kldBI6J51jEFtJwdaYa4tBthyEDZpSTCnElFKKQggZU4wpxZRSSkIHJXQOOuYcU45KKEG4nHOrtZaWY4updJJK5yRkTEJIKYWSSgelU05CSDWW1lIpHXNSUmpB6CCEEEK2IIQNgtCQVQAAAQDAQBAasgoAUAAAEIqhGIoChIasAgAyAAAEoCiO4iiOIzmSY0kWEBqyCgAAAgAQAADAcBRJkRTJsSRL0ixL00RRVX3VNlVV9nVd13Vd13UgNGQVAAABAEBIp5mlGiDCDGQYCA1ZBQAgAAAARijCEANCQ1YBAAABAABiKDmIJrTmfHOOg2Y5aCrF5nRwItXmSW4q5uacc845J5tzxjjnnHOKcmYxaCa05pxzEoNmKWgmtOacc57E5kFrqrTmnHPGOaeDcUYY55xzmrTmQWo21uaccxa0pjlqLsXmnHMi5eZJbS7V5pxzzjnnnHPOOeecc6oXp3NwTjjnnHOi9uZabkIX55xzPhmne3NCOOecc84555xzzjnnnHOC0JBVAAAQAABBGDaGcacgSJ+jgRhFiGnIpAfdo8MkaAxyCqlHo6ORUuoglFTGSSmdIDRkFQAACAAAIYQUUkghhRRSSCGFFFKIIYYYYsgpp5yCCiqppKKKMsoss8wyyyyzzDLrsLPOOuwwxBBDDK20EktNtdVYY62555xrDtJaaa211koppZRSSikIDVkFAIAAABAIGWSQQUYhhRRSiCGmnHLKKaigAkJDVgEAgAAAAgAAADzJc0RHdERHdERHdERHdETHczxHlERJlERJtEzL1ExPFVXVlV1b1mXd9m1hF3bd93Xf93Xj14VhWZZlWZZlWZZlWZZlWZZlWYLQkFUAAAgAAIAQQgghhRRSSCGlGGPMMeegk1BCIDRkFQAACAAgAAAAwFEcxXEkR3IkyZIsSZM0S7M8zdM8TfREURRN01RFV3RF3bRF2ZRN13RN2XRVWbVdWbZt2dZtX5Zt3/d93/d93/d93/d93/d1HQgNWQUASAAA6EiOpEiKpEiO4ziSJAGhIasAABkAAAEAKIqjOI7jSJIkSZakSZ7lWaJmaqZneqqoAqEhqwAAQAAAAQAAAAAAKJriKabiKaLiOaIjSqJlWqKmaq4om7Lruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rui4QGrIKAJAAANCRHMmRHEmRFEmRHMkBQkNWAQAyAAACAHAMx5AUybEsS9M8zdM8TfRET/RMTxVd0QVCQ1YBAIAAAAIAAAAAADAkw1IsR3M0SZRUS7VUTbVUSxVVT1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTVN0zRNIDRkJQAABADAYo3B5SAhJSXl3hDCEJOeMSYhtV4hBJGS3jEGFYOeMqIMct5C4xCDHggNWREARAEAAMYgxxBzyDlHqZMSOeeodJQa5xyljlJnKcWYYs0oldhSrI1zjlJHraOUYiwtdpRSjanGAgAAAhwAAAIshEJDVgQAUQAAhDFIKaQUYow5p5xDjCnnmHOGMeYcc44556B0UirnnHROSsQYc445p5xzUjonlXNOSiehAACAAAcAgAALodCQFQFAnACAQZI8T/I0UZQ0TxRFU3RdUTRd1/I81fRMU1U90VRVU1Vt2VRVWZY8zzQ901RVzzRV1VRVWTZVVZZFVdVt03V123RV3ZZt2/ddWxZ2UVVt3VRd2zdV1/Zd2fZ9WdZ1Y/I8VfVM03U903Rl1XVtW3VdXfdMU5ZN15Vl03Vt25VlXXdl2fc103Rd01Vl2XRd2XZlV7ddWfZ903WF35VlX1dlWRh2XfeFW9eV5XRd3VdlVzdWWfZ9W9eF4dZ1YZk8T1U903RdzzRdV3VdX1dd19Y105Rl03Vt2VRdWXZl2fddV9Z1zzRl2XRd2zZdV5ZdWfZ9V5Z13XRdX1dlWfhVV/Z1WdeV4dZt4Tdd1/dVWfaFV5Z14dZ1Ybl1XRg+VfV9U3aF4XRl39eF31luXTiW0XV9YZVt4VhlWTl+4ViW3feVZXRdX1ht2RhWWRaGX/id5fZ943h1XRlu3efMuu8Mx++k+8rT1W1jmX3dWWZfd47hGDq/8OOpqq+brisMpywLv+3rxrP7vrKMruv7qiwLvyrbwrHrvvP8vrAso+z6wmrLwrDatjHcvm4sv3Acy2vryjHrvlG2dXxfeArD83R1XXlmXcf2dXTjRzh+ygAAgAEHAIAAE8pAoSErAoA4AQCPJImiZFmiKFmWKIqm6LqiaLqupGmmqWmeaVqaZ5qmaaqyKZquLGmaaVqeZpqap5mmaJqua5qmrIqmKcumasqyaZqy7LqybbuubNuiacqyaZqybJqmLLuyq9uu7Oq6pFmmqXmeaWqeZ5qmasqyaZquq3meanqeaKqeKKqqaqqqraqqLFueZ5qa6KmmJ4qqaqqmrZqqKsumqtqyaaq2bKqqbbuq7Pqybeu6aaqybaqmLZuqatuu7OqyLNu6L2maaWqeZ5qa55mmaZqybJqqK1uep5qeKKqq5ommaqqqLJumqsqW55mqJ4qq6omea5qqKsumatqqaZq2bKqqLZumKsuubfu+68qybqqqbJuqauumasqybMu+78qq7oqmKcumqtqyaaqyLduy78uyrPuiacqyaaqybaqqLsuybRuzbPu6aJqybaqmLZuqKtuyLfu6LNu678qub6uqrOuyLfu67vqucOu6MLyybPuqrPq6K9u6b+sy2/Z9RNOUZVM1bdtUVVl2Zdn2Zdv2fdE0bVtVVVs2TdW2ZVn2fVm2bWE0Tdk2VVXWTdW0bVmWbWG2ZeF2Zdm3ZVv2ddeVdV/XfePXZd3murLty7Kt+6qr+rbu+8Jw667wCgAAGHAAAAgwoQwUGrISAIgCAACMYYwxCI1SzjkHoVHKOecgZM5BCCGVzDkIIZSSOQehlJQy5yCUklIIoZSUWgshlJRSawUAABQ4AAAE2KApsThAoSErAYBUAACD41iW55miatqyY0meJ4qqqaq27UiW54miaaqqbVueJ4qmqaqu6+ua54miaaqq6+q6aJqmqaqu67q6Lpqiqaqq67qyrpumqqquK7uy7Oumqqqq68quLPvCqrquK8uybevCsKqu68qybNu2b9y6ruu+7/vCka3rui78wjEMRwEA4AkOAEAFNqyOcFI0FlhoyEoAIAMAgDAGIYMQQgYhhJBSSiGllBIAADDgAAAQYEIZKDRkRQAQJwAAGEMppJRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkgppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkqppJRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoplVJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSCgCQinAAkHowoQwUGrISAEgFAACMUUopxpyDEDHmGGPQSSgpYsw5xhyUklLlHIQQUmktt8o5CCGk1FJtmXNSWosx5hgz56SkFFvNOYdSUoux5ppr7qS0VmuuNedaWqs115xzzbm0FmuuOdecc8sx15xzzjnnGHPOOeecc84FAOA0OACAHtiwOsJJ0VhgoSErAYBUAAACGaUYc8456BBSjDnnHIQQIoUYc845CCFUjDnnHHQQQqgYc8w5CCGEkDnnHIQQQgghcw466CCEEEIHHYQQQgihlM5BCCGEEEooIYQQQgghhBA6CCGEEEIIIYQQQgghhFJKCCGEEEIJoZRQAABggQMAQIANqyOcFI0FFhqyEgAAAgCAHJagUs6EQY5Bjw1BylEzDUJMOdGZYk5qMxVTkDkQnXQSGWpB2V4yCwAAgCAAIMAEEBggKPhCCIgxAABBiMwQCYVVsMCgDBoc5gHAA0SERACQmKBIu7iALgNc0MVdB0IIQhCCWBxAAQk4OOGGJ97whBucoFNU6iAAAAAAAAwA4AEA4KAAIiKaq7C4wMjQ2ODo8AgAAAAAABYA+AAAOD6AiIjmKiwuMDI0Njg6PAIAAAAAAAAAAICAgAAAAAAAQAAAAICAT2dnUwAEywgAAAAAAACBPwAAAgAAAEvHOpMSHx4YHR4fHR0fHR8dHxscHyCMdGFB0n7LSWA/69mku4y/xyqb05UXpt9j4++xyjbkLYRlwfH9tQ5gNdXp0r2yOT3+Hhuv2pwef4+NVzZ7BlxfQeauLwBrNQ6jQerWBOSFukypael0B1RXWpH+8AY4MtNmXxdxxfojRWo/MlQvVb95OkwIhGnh8QfMV4DF/odWOzoduyueL3qxkqwGml49YQ2UfGMZgg9WPQesn1oDETuuJMVjd+XsFyvJxdhdObYzBGTlxpVd5ZcghPF+Wv3Xxz749GzkUySZA4Q8B8IPZF0RzP31GogaX1XN3v9W//0XrkgwE2tmaoaaCgCM546U++2zINrM7am6db35KeybTAFV/2hp5m2rFgkAfGO4wb5sMoGFbznG6Ourf5RO4l9nT3l7k0uPLgBMX+DhC1ETwOcXW0kSAx6bO2zKvgEzo2LmH9Tn25oBhGFR0D48ElhUc9MJlc3p99j45nRlc/x9pnqvsyR0Y8Hh/rsD2Jvq69L9PTbP98J0ZXO6sjk9/h4bfzcKTGFO0IM1HcDo4Ot04lTsa9F9zV1ktyPsSKsJRFee6KY6BbCOf1ZEQyWtq5fvw+f9pdGZkKKbD2Rh4dGDVSUQr857TZzOl1wUjd1drIzuisZSL9IjRQdUXZnAB6ucA+E+luXEabI29uJKysVKcrGS7FcSU+ulATqaPc9SVDGqU4QyxPz0GGOMdM7BnnMAYCmSxLAe/4bHSrd/y1CHsst+arXm+xkV6h2Rqd5VO8Drm/CkrBUf1tdZGlz1d9cRGajrI7y9yfr66jqvKcC6vr1x3lLW1tfX120AeHvrdRuAt7c3AdZs4Ly9vb3Fwt/hoABw8Ly9vb15AOftDQA4A+D2DgMA"},{ name : "haxeui-core/styles/atlases/default-spinner.png", data : "iVBORw0KGgoAAAANSUhEUgAAAkAAAAFACAYAAABUcsOrAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnU1yHbey51HnyLyh6NEbUjt4YYajQ/QyKM3MG16AJU/eDizRtB3Rw55ack87brQ8kzjoHfTE9OA+Oe4OxHgrcJjWOdXOcwSxWCwAia8qIPHX5H6wqg7yhwTwRyIBdAr/QAAEQAAEQAAEQKAxAl1j9sJcEAABEAABEAABEFAQQHACEAABEAABEACB5ghAADVX5TAYBEAABEAABEAAAgg+AAIgAAIgAAIg0BwBCKDmqhwGgwAIgAAIgAAIQADBB0AABEAABEAABJojAAHUXJXDYBAAARAAARAAAQgg+AAIgAAIgAAIgEBzBCCAmqtyGAwCIAACIAACIAABBB8AARAAARAAARBojgAEUHNVDoNBAARAAARAAAQggOADIAACIAACIAACzRGAAGquymEwCIAACIAACIAABBB8AARAAARAAARAoDkCEEDNVTkMBgEQAAEQAAEQgACCD4AACIAACIAACDRHAAKouSqHwSAAAiAAAiAAAhBA8AEQAAEQAAEQAIHmCEAANVflMBgEQAAEQAAEQAACCD4AAiAAAiAAAiDQHAEIoOaqHAaDAAiAAAiAAAhAAMEHQAAEQAAEQAAEmiMAAdRclcNgEAABEAABEAABCCD4AAiAAAiAAAiAQHMEIICaq3IYDAIgAAIgAAIgAAEEHwABEAABEAABEGiOAARQc1UOg0EABEAABEAABEQLoBcvfvnkv/7t4POuV/+t79R/PT/97D9R5SAAAiAAAiAAAiAgVgD98I///Lxfr/6HUv2/6WruVPf/vjn99D9Q7SAAAiAAAiAAAm0TECuAvn/12/9Sqv/v4+rtuu5/fvPFp/+77WqH9SAAAiAAAiDQNgHBAujtL9NV2/3fZ6efftN2tcN6EAABEAABEGibAASQ4Pr/7tW/jrtue9L3myulPrl8fvrvl4LNhWkgAAIgAAIgwCYgWAC1vQS2Ez9q82LoCb3avnx++tlLtnfgQRAAARAAARAQSkCsAGo9Cfr7V9NLgJvN9eNvv3z4Tqg/wywQAAEQAIFIAt/+49cH3erguN9eX0oeL8QKIKr/VrfBT0V/dHvY9ur87O9HbyLbB14HARAAARAQSOC7V29fdEoda9MkrxyIFkACfZNlkk0A9Wr9tIVcIJrBrNb3Trpufbjd9r9C9LFcBw+BAAg0TOD7n387U33/aIxA6rgBASTU2X949fZ1r9SDoXmdUu++OT16LNTkj2ZNCsCue/Psi0/PpdsO+0AABEAglMDUuEHf6pW6fH569DT0u6W+BwFUas1Eluv8/7x9tO7UV0MRJFXFj1GZG3Eb0a9I18HrIAACjRIw9Z00ed6q9bm01QMIIMGOrhPZdgpeeDKbrkYSfqtOnU1Vq+S1bMFuDNNAAARmImBaAttHgeTtIoYAmsmx8DPzELA14FYSwL979c8nuw6rX10h92kev8OvgIAEArb8UYkpFBBAErwWNnwkMN7BMETz7PToc+moxvZL7LSk1yHsA4ElCdj6UGlpFBBAS3oafjs5AYp+dGq1i4Dc+tdAErSp42ol8pXcmfBBEGiQgLEPVUpJm1BBADXo4JJNpryne+uDH4fJ39Ro32+uv5Z8oJf96AOZOzgk+zFsA4GlCFAful4fvDb9vqRcIAigpbwMv5uNgD4DSKnVsVLbyxau/zCd/L2D3ED0S9c58p6yNSt8uCECtmUwSTvCIIAacmqYKpOALfGbLJa2bj+uxXHIXlIHLdNjYVXpBGwR5d2cSsiZchBApXsiygcCDgItR39M4k9KBw3nL4tAS0eLuCdW9W+LhwAqq32hNCDgRcA1U5O888125hNBxMW/Xq6Ehx0Exm1tH2ncXkhdYnflAu2jy3WLIAggNHsQqJiArZOSvPRl26miq1Oy+NsNxt32hGzFXXfzNGDzCfN1iwAbPdckYy+C6t1kAQE0T9vBr4BANgJTYqDmTskGap/sfHA2vK168nmhid8m+2ufiWdrHIk+7Iq0St5pypls1Go/BFCiBoLPgMCSBHYztVX3sO/7B1J3vk0dcTDFXKr4cw1EkiN+S7Yt+m3OclCtIsDFljvpIPs3vfqpptPnIYBctY+/gwAIFEHAmuz9oYQSk5+5A5DUAy8p+qLUn8e75ZYFr3exbQ3XDYT8r++6y75fXUi6OJQ7+SAONeVGQQAV0bWjECAAArG5CJLEz/AsK+dy3wdw0pK+KarZdepkbP9Sy30+ImAn1pS6VGr9UooQ8rW/BiEEAYRxBwRAoHgCruUfCeJHi56VWp0MTzLnVE6Jy35UZ2QLlX+r1BUtzSr1yeV28/vV1Knse8GzPey69aHq+0c2u5eKduk6mrxux1BgHRWiZPWuW7+jx7Qoou/R/16t7x/2/eYB2b90pMvG3VcE6YjQzqauu9QMTD7A8fWUz0AApaSJb4EACGQhYE1CFZDw7DpzxQZ1qYiIrUwuwRrrJEvbHGvfThQptRM/pn+livoQEThlYwkRIgig2JaI90EABGYhML3bbf209iUGzlZj8wCyPi/Nfk7CcKzDLC2AqPyunWGxNtL7S0W6OGWPFYH6N5aMXkIAcWoaz4AACBRB4CY3hpYRPntZRKEiCxES/SlBAJjMzi2ASoqMhCwJeblL4dHNVNGgpXYwQgB5eSMeBgEQAIG0BDi7i4az5e3m+nwqhyZtqeK+Zjo0MO6rZSYW6+sxphK2Y+2t5SJj7k5FE4+lIl0QQNEeig+AAAiAQDgB11KKzpXYbt5flC58NIVUyyMfqf4VCdm8/+On0u3fRb/u/e0rVxI311uWioxwyzd+LtT+pXYwQgCF1jTeAwEQAIFEBKZvtN9e1CR6xij25/dsnqyUOnQl/E5i7Lo3tV7zEXKMwZDBXvSWl9/FdXcdFdOHs9qOclhyORcCiFujeA4EQAAEMhLYD5r3D0tLak5l8vBAw91W99E/Ejv0f/Xb68vSIz2+THTd0lb3mxPb6St0NMD+gMfxFnnf3yj5+aH9+qiDvt9c0bEIS/o7BFDJXoOygQAIgAAIgAAIZCEAAZQFKz4KAiAAAiAAAiBQMgEIoJJrB2UDARAAARAAARDIQgACKAtWfBQEQAAEQAAEQKBkAhBAJdcOygYCIAACIAACIJCFAARQFqz4KAiAAAiAAAiAQMkEIIBKrh1BZdO3Hnerg2N94/FwK2yt5334VBHd+UTP0zZY+s/9NtDxP/Nt2T6/VdqzwyssdNnGW6H1TdFLbovNxW16G3D/oOu63e3g5AvSt0LTNni9DXzM+aYtyPR/sle3f93/0f+n24B0+8f+P+4D9BEIdBTAnDfFQwDl6vHw3d1lgUr9edyp1RMOjiUPxOKUz/eZ3SWXq+5h1/fHvgfB7Q9CU1dKrV/O2SH42mh6/uZ6gO0ht/6H39rdlt11l32/uqhVEMXckyTB/hj/pwsy9/5Qp/9rwRPb/vteXdR4LpIWPD79/1T7zz0xhgBK1ePjOzsCvqLnzkxQ1X279+5ag257kuoofM1nPyCsX5YuBmIGfVMT0ldB1HD5aS77axGD2v9DRL+1C63kKoxc7Z/uBKthMhB6FYat7vVkIIcYggCCcElCINWtyLVGgfSx/7Yj31OALlUI5ej4xrxKjorMYf+OR6EDIfn/Sm3OfCOdvm2C/L/Ey2Ap2pXlMtQRoJLb/2p9cJa7/0t9RQgEkG8LHD2vQ/30f9cYqow0X6Xu+Je6FTiGg89t3jG/M3y3lIEgdf1z+ZQilHNEfFgMComIxN4CzrJ14qGS/H+Ogf8OgoLqP+Xlr2x/SGQ/BBCb+N0Hd2vcnTrTf6kpVB9h9sdXU9/4TPy+OT16nKJsc3xjrlmvzZYlBaPrFvPcdUD+8n5z/fVS90al9n9fXkv3N+P+z7f8sc+njgb4lqcE/9/06qezvx+98S17iudLsH+rthcxS+MQQIGe8P3Pv51N5XnUNogHmq9SRj10wm+JoW0Tn5T2h9bBx/cSzYZ8yrH04L/0pKOk+l8iGlaa/dvN+4s5hXBJ9tOy6Ob9Hz/Na/8/n4RsbvDpY7jPxvg/BBCX8ofnOCHfJWflnuYEPR7S+Pdr11va1bO79bj0ZF4bmBD797kb+63OtFQ6/j7dAk47JpRaHa+UOvTNpYjpBHycgOP/U9/T0Qq6/Zl2tdEzusOeuinbN5eA/Ov56dFTH1tCnk1hP/3u0P/1ERFDH/C1f65oWKj95P9kNyWyjlMFpuz3bQNzLYmlsn/oe9QO9jmE9C+sDyjd/mH73/nBX30A2T2sezoigf4WkksVGniAAPLoBbnOL1UAce3XSLXoiQlRelTPLI/6iB+yn7axhoSo9W46EkTcwXCzuX6ccxa4y/dZH7zmgqZOKTREf3NuEN/+3CIgxP7QEP3NMQLqhFv/c9jvk++i/T80N9J3iblE+2N2bvpurMgtgnw3usQkbGv/352Z1ve789Nc/0LqHwLIRdUj8rNTr5XlsTDN3yU731sf/MiJTORuiNwyp3zOR/yltp87EOQUQD72p87N8Ek0ztX+fMRPHvt5O2xCBgFOO/Gp/xz+r9TmCUcI5rKfGLEnP4l36vkIoRLsT13/PhstfO2HAOK0fqbzp+74mEWb5TFO45dqv1/nn+8cI8q7WanVyZQIzTXwa+cqof7ZIvyvnIhnX3x6nrJhcO0PjXhxysq1P4cv/PDq7WvX5Cd3++dOBHwHQQ57bv1v1fo81/I+JZ2vO/UVpx5Sbw7gTABKqX+f5XAIIIb3c52/ph1MDLM/PsJJePVxOp/fLuFZTv3PZb9JjPUZD5Asz/57J64EzJQ5UTXaTzk3qUQgp/2n/D1bm2dPRhImBpdW/5xt5yn9fx/9+tdxpzYvTHUzb/+Xrv1DADlGWM5Wz7kqfwkx4HL8XZkSdrZL2Gj7TU79L2G/zhHSSdW5cn84g1/qzpbjA656STUbLdV+TrlS5CJy2v8S9c+xP0W5XH5GvpqCM8fnh8/MZb/+TVv0MQVnH/u5S+KcckEAWchzwn6SxQ/P/u1LSUnOQ3fg2L+E+PHpLGKe5di/ROc/7JRtSdmxSyEc+3NG3lx15xqc57B/yfrniICYvDhe/S/X/+W2f+x/U2K45PrnTIIggCy9jCv0yVGYrk6s5L/D/rcvbImXSzb+Ofymhvp3iYCYCYrprC/NvoT27xwEI6KzNdS/y/6YOnJ9u4TJj6uMORKSu9UB3Xd4OPfZS1N9Hsd+2/EYEECGkcQV+o3pWOcYvGJ/A/Y7DvqKGFhi62aO9131X0Lnrzm4O0H/xHSX/SW1f5v9nFnwlD+5oh+12E+2hUbprAK4oPbvEuqSJ2qcnDBb/VsF0P7j9w9zZbXP0ZGH/oZr9hMTWg0t05zv2ezPsctkTts4v2Xb9dKC/TXVv7MTDBisarPfdkRFiL/aBtWQ73HaXMwztvYaKtZMwrIV+2PqY853XbsjbfVvFEDDDkCf4ig114Oz1jl8JiasOqdjhP6We/brP6MOLcsS77lnv7Ltdy8rlWe/rc58B6wa/T9lndXo/64oYOiEdUpYhUaUcvZlriMCQu3PWeaU3w5ts5MCaEr9h4ZSUxo517dqm/2k5mKNfgXMplOXL/f3bJ2pdPFLbG3+Hzqbzl1n9H2b3/osA0i032fJ0rWkVupxH/Z6C09W3olLOpFYKTX3nVs+7SaX/T5lWPJZW/s39VvTAujV21+mDGmh898NAAb76W8lqv/UTtey/a7Zr/SZFPmSbTmhZPtts0CfKFCt/p8iCuby/5L7P1f9pz4cMHW/G/s9VxSk5LYbazu9H+L/dwSQNZTawOzfZn/Js98UDkTfaL3+a539ov73BOyzQPfSXe3tP9b+kEEkle+l+I5NvPtEAVOUZYlvtG6/r//fEUC2MFoLDgT7fzszXT5X8uwvVWeD5S9z/dfQ/mMFfO3tP4WAMw2iNdS/NReo8Qm8zzJoqv507u9Yo2AT9X9HANUa/k4FGvab7/x5dnr0eSrOpX7HNIPwWUIp1TZOuWr3f+sSDmMAlGw/14enRERN0W9THdZkA6etmp5p2X7fCObdCJAp/4XRecRUWinv2tb/WxAARvsbr3/u4FGKH4eWQ0L9m6I4nAimhPZvWwbg5oFQJKnr1An5Udd171LdKxbqlz7vpbDf5/dKe7Z2ER/L02cZ7JYAsoVPawh/xoKLDZ/H/v7S79vD5+G7KJa2i/v7ttlDCxsApNg/dVcQp//yDZ9z/Wru5+zLuO48qLnLm/r3bMuYXAGYukxzfs++G0x+/fv4PwTQwDMhAN8+WnXqbKqxcmbPczbyHL/Vev6PNP/3PchViv02IdeCkJdSj6F9XOv22/x/PBG6JYBsA0ALyhn2m69/aL3+WxCA9ghg2zPHmvw/Ng8qdOAt5T0pkbxQnq0LYB/7bwkghA7NO2Bq6gDDGw4EUKdWT6b4tVD/rbd/mwCsLf9PQi5XaD9G77Vsv5Sl7ND697F/FAEy335dWwcQAq/1tdPWB0DYb54AtND+TXcK1bhs1LIAgAD69cF6ffB6OpWh7VzO8VEA7AhQCx0gBFDbA2Dr9d/6EjANGMOLVWu+AxECaPo2gxbOwmldAPrYjxyggUxufQBEBASHQJqWAFvIgQqJGpf4Tus5QK3b7yMASvTf2DL51D8E0IC2z/a52Eoq8X3Yb86BakEAtJ4EXWKbDCmTTw5EyPdLfwf2t70ElmUXWOsDAOcckdI7Blf57Nnz8ncBtS4AWrff1T5q+Tu2Qf/ruFObF63mwLR+npuP/48iQG07js/2uVo6Q59ytm5/6x1H6wLYp62U/GzrS9mtn+fVeiTfZyJ3SwDZQ4fq8vnp0dOSG35s2XzvEYn9vdLeR/3bQsdt+38LxwCU1h5Dy2O7CqGFzSy2qxBasN8mgFuw3+cqlDt3gbV+GWTrjaf1+m/9Hp2p2VMLy7+hYqPE90w7wFq5DNRkf+v3+bVuP7XVsQCcEEDmRNAWOsLWw4fYCWfbCSb/DA3qJHaRwHt/+6rvN1fbzfuLb798+K7EgR5lmibQ8hZ4LGPbNnLIj2L73uc5IYDMeUAtKEh7HoR8B2rdfnsHKr/+ISrqJ2CK4rawkcUWwa3xQEtfb7TfhC5/AmebwE8FcO4IIOseeqWU9EYE+815MNQYpdc/2dj6Mphvp4vnyyIw1Ye1sPzl6rul57+0nsNqvQNuYvmLWu0dAUT/p30ZSP4s2K6iYb/0ZHjfWURZwx9KAwI3y5i7SctfS5nPTz97KZ2LfflefvSj9eiPzX7TCeCTAsilpKVHAVxKEvbLPhMI28GlD5WwTxoBV58tfRcj7Den7thWLiYFEL1gU9Nt5AKZL4aF/erd+83115KTY6dmEy3Uu7SBEfbIJ+CesMuO2rvsb6HfCl21MQogF1Tpl8q5FHXr9kvPKdA7obq+P+6VekD1vXn/x0+SRZ/8oRIWSiNA7fTe+uDHXRs1/JMe/bEFK1rI27QufTnyVo0CaJ8LZI6C7MHKXleF/fb6b+FYBGkDBuwBAUkE3H207OiPLV93V89/TdyeffHpuaQ6H9riEn8u+60CyBUFotDaVq3Pn5/++6VEwC77pYtAl/0thFYl+jVsAgEJBFyDv/T+yXrmzX6H07tvTo8eS6jrKRtc9tM7ruifVQDRB1w/shdB2wupuwxcjUy6CHLVv8vBpDY+2AUCILAcAWeKglJKcoSaNy7J3azCs9+9QuUUQOTizjCT8OUwDmwSglITg232Sz9bY7kuHr8MAiBgItDy0pfL9v2kXObSH61KrNYHZ51Sx7bWwbWfJYC4Pyp1SczHfokiyGS/9BwwDD8gAAJlErCf+Cxz8Keol1KbJ6kG/zJr1lwqTtTPV/yxBBB91JUPMiw2qS+l1i8l5QZxdhsQA6nrrnsRdO9EqdXxSqlDycuetXUMKC8ItEagpUubucJH6vijd+Sqvn/k8nPf8ZctgDj5QOPCScsP4oog6QclupwQfwcBEACBnASm+mLfwS9n+VJ8m/Ivu06duCI++rek2e8jfLT4812B8RJAOhLkOndBshDiVIrk5LsUDRvfAAEQAIFYAjoq3XXrQ/qWlO3enJzbMTtaddlurs9LPqeM6ovKvVrfP9xufr/SNlCZ93V5/1CpP49plYEr+vQ3uDk/E9rE3w0/Op5aPeG+LSk/yGU/dkZxvQLPgQAIgAAIaAKcBOcp8VP6/YycjUShXhCTi+odARoW0tsoYYcyTdmP6E+oG+M9EAABEGiXgE+eraZUw3jjOkoltMZTBFWiBBAVnLtDamekMAGk7e9WB8ddtz3cbt5flByCDHU0vAcCIAACIJCXAHeXkx5La7maJySq5SKd6tiZaAGkC4rcGFeV4e8gAAIgAAIgME2As8mmxh3WKQUQCZ9Nr346+/vRmxR+lEwADYUQbZfuRvlBoUlKKYzEN0AABEAABECgdALGtJKue9P3q4saj5ZJsQSWK8k7uQAaCiFaGtqvfK3f1VhxpTcWlA8EQAAEQEAWgf25P38e0+627bb/NVW0YylKrk1DU+Xa5/eoK6W2lzlTS7IJoKVg43dBAARAAARAAATKIkBC6CYost0dXaCPMKD/3vebK6U+uZwzWAIBVJaPoDQgAAIgAAIgAAIzEIAAmgEyfgIEQAAEQAAEQKAsAhBAZdUHSgMCIAACIAACIDADAQigGSDjJ0AABEAABEAABMoiAAFUVn2gNCAAAiAAAiAAAjMQgACaATJ+AgRAAARAAARAoCwCswkgfdtr328e0LURewyr467r3tF/o/MO6D+lnhk0tn+4/Y/spi2Afb/a3ZBb+7kPUy6ubwLW14ZM2b/nsLqSaL9mos/40P97yIHagFT/N3V7dPCb/hvVfWv2lzUcoDQg0BaBrALo44FOHrfGfxwYlHrXd91lradfkh0hB0CN7a/9ICzvC3M/AKCDsKj+a7d/2J34HAmvDwLre3UhURC6Ln6UWP+coYXay0qtTnaTgcr7P469eAYEliSQXABx7gTzNVh3hjWIoRjRY+Ki7a/l8rubaMfbF51Su9PAY/7VVP8mO2OOg5dg/5jL9z//dqb6/hHHL1oRQyaBLLH+OfWOZ0AgN4FkAsjrVvgIq/Yz4/X5nKdFcosbM8hxf0NVcidMLhZ0J0yNURGfAd/mCyX7P9uHlVI/vHr7ulfqgc879KwU+8d2uyJiw8hwqf2fb11yn9+vJGyerJQ63F+PsH5ZYv/PtQfPlUMgWgDliHhw8FBH+H5z/fW3Xz7c5RAt/Y/bgaUqZ2n2j+3KJYD07/Rq+zLnHTGp6kl/J3Qp0FSO2uwf2+GzHDjJoOve1BYRtfkUDfKd2rxg+50w+012G7k0Yj/bH/BgEIEoAeTdaIOKaH5pPxvcXjw//exl4k97fy73gD9VoJLsD53ReoMevFCy/XPwqMn+uwLIc8CfcJSa7U/hH5LsN/UDtkhhC/bH9I94100gSgB9/+rtL+6fyP8EzYaXFkGLisG/ZkPPvvj0PD9pv19IHfUwR0PU5fPTo6d+pZv/aR3KT5EXNSx9Cf4fQnO/A2x1HMujVvvvisJ/PukCNoxIsX/Kh1hLpYX2fyFtAu/MSyBYAPlGPLRap9teyUS9hqu3R6/W9w9vtsj7d4pLLwm5cqC0/eOtvtp+YkIMlPrzOGRQWNp+k9uSn3SdOqHjDvRW/+FWZ+n2T3EZ2jz8+60jApgJwvp9qv9vTo8ez9t9pPm14REJu3aw6h5yE6SH9pe0JB5K5mN78dw8UGr7D+Wg3+MulUq138ZvmFdIuZHbzfV5KSkhsfU+1/vBAogT8YgJUVKnSAOCT2e4dCMYi6AU9u/EA7MzXNr+lE6r6x/2t13/NbV/+H9KAvtvUT9wb33wIydhXlL/5yI5JQxbst/Fh/v3YAFkS/pNvVPDZ2t9CTNhKm9KJe5rv4SZ8NCBYf+vD1brgzOOEJbYCfrWf62RMFOn7You34oiVhwJtNm/vve3rzhRQYn+P+biGnul9f9cMRPyXLAAmlLn5HybXv2U6+A27myAwoE15IT4VhjX/hJEoK9tnOdpeWDdqa9cs0HYX+9ymM0PKOq8UpuzVusf7b/t9n+zLGjfQNCCCOSMF5xnogSQFkH73JWbvB7OD4c+w952LzQxDvZTNOTeiTNZFPVfZGJ8aLvX78H/4f8tt3/dDlzJ4ZIT42P7kFHENOXn5vsWZ4fRtlfnuaJR81k6/Uuw371jRmr9c0WA1E6wdfupR0D7d7d/qf7PrX/J9qcaf6MjQKkKEvIdVycgdSnkJhRq7wRgf1mHZYb4uH1JyF3/kk8N5rR/yfkQsN/t/y3XP/Udm83149h8VL1LM/Y7qfu/qe/Rzriu73fXL1E6Tr+9vrSVu2oBxFLCQpdCuCKIrs4o8YygVI3BNQhIzQfj1n/r9rfu/7Bfev9nv28xpv2Pd3qXfvr81M44VxSsegHk2iGSekdaqoE75Xdc90z1av1U8t05sN9+sajk+ne1f2pn0u135cRItp8zCZZuvysfKCQKZNpp5hIUKcc1n2/ZdsbZ7K9eABEk1+4I6UtBLvtjZgE+TrjUs7DfflZKC/VvOyag9fbfgv2of/NZSSHt3zSpLNWXbAcz20SbCAFEA6/rZGrps4DW7XcdzCm9/mG/fWuw9PpH+09b/7S0vlKrEzpyoYZTll2pAD5RINc5QyWes2Ursy0XSowA2odCLeuhwnNhYD/q3+b/IbPApSJ6ob8L+9H/GQ8L9ej/p8REDWfrWJfCIu3XbbLUJTDX+GcqtygBVKNyDe3sp96zRQFKDV3C/nQEWvd/2P/rg/X64PWUR7XQ/lPUv+0bpR+r4YoCcqNAtkvOud9I16vxv2Sz3+T/ogSQWwXKTgZ22V96A+a7uvlJexSg7fqXvgzk8v/W7ee2f33O0r6VfXJZ0waK2PZvm0SWHP3QPaItCsSpf9tSWg0i2mb/VPsXKIDMa8EtLAPYk8FkXhEylEO1d2CxItDC7jeqAAAgAElEQVSaC+QRBo8tx1Lv2+u/df932z/Fr4aBX/tbbP9nEwA1CGhrLhCj/dt21NbgB772ixNAKcKgS3XeKX4X9mMZAMsgWAYKXQYzRVBqGPzJ5tj+zxZBenZ69HmKPjrnN2LTIEzLXzVEf1xRsKkAiDgB5AqDl7yGmaph1N6IYznAfnMyLPy//EFsSf83DYA1zP41N1v7t/l/rHiKrbdU7+ewv6bVE1sUayxihQog8xHptcxkYhpD7WHcGNv3Ahj1b7osFv7fQh5YmP9LWT4Obf+hZ8nE9lep37cvY5n9X0r92+pxLICFCiBzHhAnESy1Q879PSmOHMoN9tvy4FoQAGj/ndq8mGo/tkiObeCoqd8Mbf+hwim0n8r1ns0OWz3KsZ/f/4kUQLZQZk2h3NAGYj0UipEIF/q7pbzXev2HDgCl1F9sOWLsH16tsb9GZ3vx/PSzl7FlmvP9UP+3R0DqEc6h9tsEQE1Lx9bt8Jb+32fpaE5/9v0tn6MMmhNA0i8H1M5iPMsBAuhlbQNayg4AEwDz5ZimjrOm6Af5SqgAsA2ANQmA0AmgFAEUuhNUigCiNmDcDj8a/0QKIALQsgBo3f7QDtBXaJT8vDmZ1b0VumS7OGULrX/TAFjTDhiXALJNAKUMgKH1L8V+CCAIIAigV29/mRwsGogA2QRgTbsZOIO96ZmWJwA5IiA1bIHWvtC6AAidAEraPRrS/qUIQHv/v721AiAyAhTaAcYMOKW9G9IASrMhpjywP04AUx4B8T/7+9GbmHpY4t3Q9i9lCSRcAJh3j9W0BBZqf+tLgBBAS/RWGX7TFgKsbT0/FE/LAiA0BBzKurT3QgXA1PJJjYnAofa3sQvm9gx46Lut2y9FAIVuApBif/NJ0FK2c4YOrLD/7aNVp86m+LUggGMmAFPLAHsRtD6v5U6o0PNc7ANHPbugQtu/lF1gOeyvqd+wC1mzAA7lFjpO5XrPpx2LXAKzKdmaHDnUQaQo+VD7pcxkQ+2P6chknARsXsqxn4NiOz/EPHCE1lOu90Lbf2jkIJcdod8Nbf8xE4fQsuZ4L/RCWCmR8+YPQrTdCFvbWnZIA7HZX1MyZ4jtu/X/n387U32/y2EZ/+PWv74Ru+vWh9tt/2tNuTA4Cj+s/u1LZ/XsngvN5ZBifw7/r+n4FGP6g1LK1f+bxo6aNo/4+L/MCJBhB1RNlRg6+NsSAFu3n9i4OgB6ZvpG7IoGQNMOQIb9psGjpq3gOQYACfZzbDANgJx3Y/qslO/mqH8qH3fylNIW32/F3mdWe/DA135xAij0FExfRyv1edhvzv/hzuLMs6Dy80Bi6z90+aCU9hBrf+g9SrC/DAI567+G9InQ/Ddde7Wnj/jmP4kTQLbwZw0OHNuNwH7zTejci0BrPkQwtv7teSDlR8Fgv9n/Of1f7fUfK2Brt98WweH0f3YBVX77941giRJA1iQuRvg/Vnws/X4O+3UuTN+vrvrt9eW3Xz58t7Sdpt9PYb/1ELm/zsXhdCJL8YH95iRm7hJGzfVvW/7mLv/WbH8K/ydOvoPoUu19/LuuuuMs/0u137SEK0wAmWc/3OWPUpw5pBy22W+I/eMOpfQzYVLZb59FljsLSmW/fRdJufbb6s3H/2u1v/X6T2V/re3fXm7+LkbbMpJPOwoZw2LesbfbafvFCCCX+i955h5T6fpdl/0hCXwmhyqRpXXt3zNy45pJSbff5Usl2p+yzCm/laJtc76Rssw1+n9K+13f4iwlcuos5TOuOvPp/13fqrH9m6JfggSQLfej3FlrqkZgC9uGqHZXNv37zfXXJS2H2de+/evfNpsocUdM6vqvyX5Xhx3i/y77a/L/EH+tzf7UUTtbeyKeJdU/+f+99cGPvVIPpsaTkN2/NdV/TPsXIYCsoU/P2X8qQTLnd3LYH+NUc9pOv5XDftcsMGRQzcUF9luWvgPbv8v/QwaVmuq/dfup/a/U5swsKvhLSrnq/Sb6b/d/n+iP/qY7ol6P/baIVfUCyLpeuev8/Gf/NocdHpC3ef/HT0tHQdyOGm6/e2BdvhG46j9GqMB+l7Aov/5j2n8N9W/Ne4rs/9zfLr/+49q/+URxGiN6Vb79IdE/rrAqwX7X+Oeq/6oFkNP4wNmfSQCNO4Slk4I59oeof22/K7S6dCfAsZ+782Gqzl2z4KXtd0apIg9vK99++wBF9SO7/t32x7b/9frgtW1CuOQgOIf/25aWlm7/nP4vJl+n9v6fI/6qFUCu2cneOdMdXBd6w3Su8Gdu5+eGQpfqBJyRH6VUimRFHuf5Z4Ic+1P4f6n2z9X+S7WfU//w//h2ORdn33FirnJxfmcJEcxrl+7xvzoBtF+COjjrlDq2z0zCl36mvusE3nVvnn3x6bmvI/s+v4T9JTWCJeznDLYUap1rSdS1NJNalHLq3xVq9vVz2/Pc+kjVHkuyfwn/h/32peCdrxbW/lO2R05/U5r93KXvqgQQqyGSL/6Vpf/N6dHjlJ0uJ9yae0mMU4ZdW0xsPycUqn9306ufcl0cyi0H1/m5/sH93Tnq35aYqe3JYT9n0jGH/Z3avHDVWw7/59qf0/+57X/Z+l+fPz/990tXHYX83ZWYnMv/6bvWXZYffjj37jCahK879ZUpMVvbn8P/XUuBc/T/3Pr3sT+JANotD93721d0Azf9eN91lylv0Cbhs1KrE1fF60rYqvSNkDvz0rOBvl9dpOoIfH7bp/J9OiGuCMhlv/YvV5ml2s8ZgHOIX83bp/5pAFZq/bJV/yf7t5vr81QbJD5uvFCrJy7/Ty1+Qup/L4TT9cG19X+p/Z8GfqU2T1yrHrnHP44I2kef07Z/X/t9gh9JBJDtBumt2l4o9cmlb2dITt+tDo45ijeX8h13Nj6DQApFzFX8Eu0Prf+UHe+S9a8HPaVWx5yOL2fnFzIIxvp/iP25Bv8Q+/ciQF31vboIjYj6dPw5xW+I/XoiFDoR3tf//UPuwF+i/2shsN38fhUihqn/7zp1Umv7J/vJ/0OvUAqx30f8fPAZ15zC/ndnbswgPKgjQ7sf7ta7O6XIOeg/987+57FPhz8sWe7Ob9gJcGfjQ2FCnWHXde8oMqTt1o2CGnssg1yRj1gRoDumnc0fxHAu+3OKn+BB4MOSJNW/UttLmgxonx/XPwn+rtsehrSBWvyfBkTqEKd6lVrs50Yjh+2f+r6d32/7X6nvowmhbvf6uZg+sOT2fyNOthd0pyDZPxQFKfq/Of2fGwkZj0/j9k9/130Aid2+3zyg9t9160NaTfEZmWuzf0oQ7rTEqnvY9f0xZ7VnyCfU/6MjQNx1aZ/K9H52pgTk2yLo3knHCEl72xLwwlzOX6r9KRP+OPh9liQ434t9pvX6h/3xu518fLA8/5/XfmLFSsT3gRrx7BL+7zsJiDDP+WqM/dECiHNWiNOCwAdyJ126isVNynZ9J/TvqdfafcuxtP27GXWvzkOXGHztHT/vu0QZ+3tT7y+xBVWXY2n70f7T5tr4+mcJ7T/FUQ++duvnfXJTQ3/D9R76P/dWdxvDaAFEH1+iIcSoPpdT+fx9sdnQzFEvExOfBEUfrq5nlxZ/unxL1X/qRFsXb3v9zx8Nbb39w/7ty+3m/UVIbk2or0+955unley3C+n/yZ4lomGp+r8kAoggzDUQljLwjR15roZQqv3DnYDJGvnEh1I5fuoyzmV/yfXvmxsXUgcl2x+SG+LLgOzPudXetzy3JwLu89lCv6/fK7X96/5/pdShb/6KD5PUO6x8ftv27FzjH6U7pNxhnUwADRtCjvVBCvWXoPhdDpMrIgD7261/vdRDCaRLLfe5/D5nREzbH7KblFvuVM/tciK77YlvEqvr92tp/zqRNbX9pQrfqYkw1X9IIq/VBxIP/C5/C/279v8c9uc4aDa5ABp2hLSrg7K6QxrDTaen1PPTz16GVshS7+lt3GR/3/cPuFsZdXlhP+U3hB2hsFSdD383Xf37HyEhx/79zrna23/IYKDPU+v7zVWt9sfuaqP2X4PoN7W3fVTkz2PuGXZ3vlOJ6DHZr7exh0TFKNJFu6ZDj1Hg9oHZBNC4APpcB9rqtxNFo3/U0Pf/V50dvgu4HhDpuY9bHT+8dGO7UjU3eBsDrv0t17/eIux7ZpbL90r4+7D977f6747C2P0n/aM2IN3+nc16UvjB5rt1I7f/I0FE/T/ZPBwDxv2fPiagBL9NWQYtiD5Ocrv14W5y3HX7I2E+HJEQem5QyrLm+Ja2f9juh7+jj8iYM69rNgGUAyi+CQIgAAIgAAIgAAIhBCCAQqjhHRAAARAAARAAgaoJQABVXX0oPAiAAAiAAAiAQAgBCKAQangHBEAABEAABECgagIQQFVXHwoPAiAAAiAAAiAQQgACKIQa3gEBEAABEAABEKiaAARQ1dWHwoMACIBAHQT0IbH70src7m+qifExIPo5vSU8xyF/JXmFPgaDzkUa207/e6ljMCCASvISlAUEQEAMAT3g00F4ZBQd7FfjoYYhFXJb7KyOJw+CLeg+qxAbbe9owbM7802tnri+X+oVJ65y2wTfan1v5/cc+4ffmfOSYwig0BrGeyAAAncI6KPw9QFv0me2YwCuq3DoSgvJIshl/5jXkre552i+MXcC0sD/zenR4xzlmuubvvVvK9ccvgEBNJdn4HfEE6DBX+oprq7Ks12GuNlcP57zdFdXWXP8nTp+zmWoEga5KX7fvfrnk6ArH4REgVJdBj7HoL+k/3v99gy+AQHkVSN4GATuEvju1dsXwxD/tlfnpV9amqoeWTPeGTqyVPb4fodl/+ijkgRh9MBfuW9E21+5b6SM+NxpezP4BgSQb4+H5z8S0IltEu+u4lTzbrlHbV5MPStpkDOxoFk/Z32fLjZ8fnr0lMO0pme49o9tenZ69HlNdprKurv5vVNnMbbU3E5s7T+IyQwDflC5DC+F+j+3DHNMJCGAuLWB524R+P7n385U3z+i/3POpLVSqmFo/2SZKuvMfLmOo17W9wWy8LJ/AGeOTt23Ln2fTxH12PcZ6/NaJ08pB/8a+89Q/2f72kx9BgQQu0bwoCZgcv5a1699apbb+UtNduXaP2Ra8yx/7Bsh9t9MEuod8DWHEPtpgKf3aRfc7j837y9qzQkLsX84SaTt/3sGv1/VyCDE/tv1/8kl2U4MtP30Tfrfq/X9w77fPOi315dzsYEA8hj9Wt7WunPYf/z6YLU+OJvc0rpr5d2bZ198eu6BtKpHuYmuZJREMbjLd1kfvOZWGi19KbV+WessP1b81Dizd9Wtz8xfmv3O/m8ET6L/cxL9NYYa6h8CyNXiB3//4dXb171SO7Wq/0md6Qd1/oIFkE/nJ9EnfMSPtI5fi3+u+CP7t5vr87lmsR5dWNSjXPFD/l9zlMcEiW+/vPr3m/zVY7+XANKhKmkNm9MrmJxf6rbWMRNO45eQ3xDf+a2fSol4DFlw6r/2vA5bPwD7b+90nGKF+q87r6lF/2cJoHHCl8QZrr3y7btdJOU4THHgdP6Sl7849kvd6UT+APsZu90ERz859Y/2L3Ono/T27xRApmx3ybP92zNf81Znek56BIi11VN05+8e/CRPCDi7XWTbb2//+3wvuac7c9q/5LGgdf/nHHVQs/9bBZBt3V/yjFcLIE7jl5jsqu3n5H3U7PyupU+O/ZI7f479rfu/5Pqn9jGV93ir3Qie/PD8X674pXr+/tXbX2z9ZO3t3yqAbOq3DQFkX/eWPPhzQp/SO3/XWT/y698e/ZJvP9q/ccfnLvwte9enc+mvcfsltH+jAHKpXwnG2/N+7KFv6QLQFfqUbr8z+ie883O3f7k5D3vx33b7h/2of9Mp9/tlXxnt3yiAbOpXet6LK/oB++u/tdi1/GUL/bdQ/7boVwv2o/+zR7+kXOcRsusT/i+n/58UQO7Zn+x1T/fsR+ZWZ27uU+3rvi7x4/Z/2fXvsl/60qfLfun+33r/545+y27/rtwfSf4/KYBsuT+tq18poT+bCLDmvghf+tlH/8y5Ly3Uf+vt3+b/LdQ/7L+553DcT7ZQ/7bkd2n2TwogW+a39DNvWlK/JhFkq39J6j/Efvg/Zr8SD7octgX0/+adTy20f/IFUxRMWv9/RwDZwn8tRH+s4c8Goh82+6Wp/ykBZFv+aMH/W7e/df+H/W8frTp1Njk5aqD/v30G3k0kXOop33cEkD38WV/uDzXorlu/496+a7Nfeu7DLvr1sy38K3/2b1/+qs//XflO47+3bn/r/o/+z9z/tdD/+/YXtT9/VwBZDj6qKfN/KpGPE76z7f6pyf5Qx4T9dy+81SxbqH/b8kcL9sP/4f+mvrMF/w8dN2p975YAsp/8XM/s12aHaw3XOAA0Ev6E/dPr/1j+k7P11boBwDQBRPt/8+yLT89rHei45W69/+NykvLcLQFk2/5Y08GHdjvMyzi29e8Wwp+t5z9JmQCEdk5S2n+o/fb8l3omgLA/jEDr/h9Gre63bgkgewdQT/6HzZFtQgYCyJwA2LoArGkCENolSWn/ofbb85/q6f9C7Uf/13b/F+o3Nb83igDZzj+ppwPIIYA4+UM1OwKV3TYAuJYOa7fdZX/r9d+6/S34vy0BugX7W58ASOjDfW24JYBsDaCmBLDQpQwIALMAbqEDlOL/vp2Afh72m3cAte7/sP/68bdfPnwX2rbwXpkERAogQh2SzNb6DKh1Adi6ALDdf1XTBCi0q0X9YwKk+v7RlP+04P+h7abm99gCqLYZQGoB1EIDaF0Awn5zBKR1/2/B/tYnQDb7W6j/moVMaNnZOUA1CSDrZYaW7aytdwCtz4AhgNpeAmo9AtZ6/2fMHW3kCIRQEVHzeyJ3geXIAaoxCZQ4dKuDYzoJm3N/Ueu7YDAAtL0EAv+XsQkmZkAe+0AL19/E8Kr9XZECKPQ8h9Dzg0p0gnE0g9OQMQC0PQC0vgsmdPdoie0/pEytt3/NzHfiGMIa75RBwEMA1XMQWGhDDhVOZVTlTSmMA5kjlCvF/tD6aP0gvNbrPzRyHOpvpb3Xuv2l1QfKk58A+y6wmq4CCM3lsHcA6vL56dHT/FUS/wumXAZXFEiK/TEETcnzNfl/qP12AVSP/4fa37r/t25/qN/gvXoJ3BFAtssAa0iEtiZAK6Vc2fymAdAlHkpygRgbTPVfk/0xdVG7/8fYTu/C/unLQFvx/9DJU6zf4X0QWILA3QjQz+adIDVch2Bf/nLPYm07QWpIhLZFvxRjN0Pt9sc2Ihu/Gvwf9scRaL3+bf1nC/4f5z14uzYCdwRQ7WFw2wDOacC122+bwXPst+fBuAVkbQ1gXN7W7a/d/2P9D/b/67hTmxdTHFuJgsX6EN6vh8AdAVRzGNy2/MVtvK5vbNX6nLOlfAkXsN7mzlj+ozK7lhBriILFsCf7760PfuyVejD1nRqWgWPsd7V/joiO/f0l34f///pgvT54baoD6e1/Sd/Db89PYFIAxS6jzG/G/hftyzf8XWz275QbBbGVm7P8pevNVv8tJAPDfvMyOE0k3m+uv5Z8L1Lr9R+bRrBU/4/fBQFfApMCyBYGph8ocRbsin74zFxc9vt8y7dCQp9PWWbXt1qIAtiiQCXWf6jfTL3nqv9e8ScTKcs117fc9q+flhoFTsHIFQX/5vTocYrfwTdAYGkCkwLIFQYvcRZovPtLKcVd/hpWhi2aEvK9nBXtDtv7R61c9pcWBSAGq/W9k75fXZ39/ehNLG9bFKBE/4+1d/y+LZes1ElQSgYu/5cuAlq/FiSlL+Fb5RIwCiD3LKicWaB16UcpFTJjd9nvs6SUu/ph/+0TnFMIFFf9IwpSTvvP0b5c9V9S+5/T/haWwHPwxDfLJGAUQK4oEP29hEHAmq8UWcac307lDm7x4x/90WWrwX5TGVN01G62skWAKwpE7X+7eX8hNR+oBv9P1Y9ML4XenViUvAkkJwt8WyYBqwBy7YhZWgS58n5il6pcS0ul2x+7VFF6/bsGqNhctdLtz90lce2XKoJKb/+565++f3Mv1vbw+elnL+f4TfwGCMxFwCqAqBC2HQG6kEvMBLnlim20c/2Ob4W7Bn/6XopkZZfIXEoEcux3nfrNYV5q/XPKnuIZrv1SRZDL/2mStVXbi9h+JkVd4RsgAAJ+BJwCiCuCaE188/6Pn+YIh7uWJnYIGKcec1FxBoEUeSf88rx90Sl1bHs+xRKQ/j5HbKTkbbNrNyu/97evVN8/svKauf6XmARw/SX2OU57I3/bbq7P52j/sfb4vM/1tznbv0/58SwIgICZAEsA0euufICd5lDq3aZXP6XYhTNVZEpMVGrzZM7Bn8qx32F0cOb63f1sMN9BiWT/Sm3OTIf0aWYpxU9p9ptOqR36S2r7ffw/Z/0v2ZH5tP9+e30pSQj5tP/Sdkcu6TP4bRAonQBbAHHyAYYDcMrZIFf4aBGWY4sqtxOkMtAArNT6ZaqzQnx+OzbvyeSw3DLQ7/ddd9n3q4sl7M8hfrQItJ0NdItbhmjovg0olYqpb8fk2/77Xl1IEkJc+3NPgnzrDc+DAAgkiAB5DwIDIbDd/H4VMiOk9feuUyeuyIs2L9fgr7/P7QQ/4u66N9tt/2tIREyfa7MXdasnHCcuzf7YiCAtPSq1OubWfy7xE1r/VJ4YITDl/0suNfn6v54IhLZ/js/P+Qzb/oTLr3Pah98CgdYIsCNAQzCcnIAxyH1nuL1U6pNL6hB3gurLh++0sFqt7x/2/ebBatU97Pr+2LXMM/7+XDMvbk7AsHz7sqkrbT/9bTgo7MXO3v6u2x76DPr6d3IP/qEiYC/g1K6eKTJEgrDr1u+mfKBbHRyT/V23PnTm+IwcoGT7d7ZP+P+4DXDtX/L4CbYIGNXPuA3UKoo49s/li60NVrAXBFITCBJAVAhWYmzq0hq+N3eHo6Mz3MhMdgwzzzhLs3+Z+nfnhOWs9xQ73GLKl6L96whZSIQ0puyx7zr9f+b2GGsP3geBVgkECyACRiH6dae+8o3WpIQdcspzqt/n7A5L9Vum7ywZDVja/rmifib2S/l/7qVOrs9S/a/U6iS2/cee18Qtb+rnprbIl1I3qW3F90BAIoEoAaSB0GwwZNkqBmjqROPQsoQsiYX+1vC9JXNBhuXgJkensPnWNwqZZS9h/5Kid1yPKfx/7gheSl/8GA3q1rSEfYXzgFLSxbdAIC+BJAKIisjdoh1rTinCZ2og4GyVj7V/6ajHVPlvTovlJ6yHcijRfu3/nCMaQu3W75UqFnx2ao4ZIGoS6xV4HwRAIIRAMgGkf3x3iWC3PUkeEeq6Nym3VofA4ryTIyIwTCAtfYbpzI/gQBw9o0/breG04db9P8T+kiJaAe6JV0AABColkFwADTnoWeFKqUPfPAGa6XZd9y50G/nS9aGjIrSrre/7B9yt3LrcetDv+9VVbUmiZEMa+/c750oXfSZf2/v/n8eUJ0PP+LYBOl27BtFvt3/zxNb+Ef1ZuqfC74NAuwSyCqAh1vFW791W5w//aO2cBvqP/1vYSbJaEOit7vS/P273poGx3+xsJwZ6i3jIuUklu/Hdrf770mo/0AzomISlDvvLzU8LoqHdw98cHhEgvf6p3mud3OT2E3wfBEBgHgKzCaB5zMGvgAAIgAAIgAAIgICbAASQmxGeAAEQAAEQAAEQEEYAAkhYhcIcEAABEAABEAABNwEIIDcjPAECIAACIAACICCMAASQsAqFOSAAAiAAAiAAAm4CEEBuRngCBEAABEAABEBAGIHZBNBwCzAxvNn+3D/Y/+/9mT+0DVzyNmh94/2UH+23gn9yWetN2aFtg+5UomMBWrQ9lBneAwEQAAEQiCOQTQAN78hRff/Ip5j65OOaD0Ike0NOxdWcbk5/Xr+ULIi+e/X2xdQhkfsrT7aXEEU+LQfPggAIgAAIcAkkF0B0Q7RSq2Pfk49tBSYx8H5z/XVNh8PtLolcH7zmVoTrObouoIarIFx2DP/udZv8X5efbt7/8VNNPuDDwvYsCWmKHEqOjqZihe+AAAiAAJdAMgGU4w6soRG1HZnvNbhza2t/ncLldnN9LkEImKI/VhwNCSFqU/fWBz8Or9Ao9TJYDxfGoyAAAiBQBIEkAijXYD8mtNlcP65l4P/h1dvX3nc/MV2ixojYlGnf//zbme/y6MfvNCCErHwasJ/ZHPAYCIAACAQRiBJAFJpfqc1ZroG+ZgEUNbgzqrJX66e1J4vvcqTU5gXDXOMj216d13hZLMfm71+9/cX2nL4wt9bLYjkM8AwIgAAI5CIQLICCli9irPhrxvvsi0/PYz4x57tTyxcpf1/KwE87wNad+ipGRNcUGfTxAW4UkfLDWhNBepMF5RtSsnxr9vv4EZ4FARCYJhAkgEKiG3pXDyXyUlGGS1nUmdH/160Ojler7mHf9w+GSdT07vPTo6e1VeJ+6//myc62rntH/0lb/fuJ2+73z9K/P4+pU18pdWgTBdIG/ZtjEty2j/1Aihgc2+WztCxlWZTTxqcihy3Zz2GEZ0AABNwEggSQz8y071dXIUsUWhTVkvPjRu3/xP58HHUy3lEndcAfEtrP8O8fcpZYpfL4eJSEWu1EtOtfbRsFXPaY/m7qfyCCQoniPRBok0AWAYSOKK0z3T5E8pPL2nN/fOm4cs2enR597vvNmp732WEpITfMVTe23Cj0PS56+DsIgIAmECSATEtgSMqEY+UkMJUv1MKAr5m6hCA9J21pdMqfXPmHrUTC7kZM753s/7/2Jkk5+x18Wy6BIAE0leBba56O3KqVa5nOl2otEkY16loWkx4NIwYkhFedOrN5uNRl0WlBeHc3ZYuJ8XJ7PFiWi0CQALrpiO8f0gm1U0m9uQqM74IACNA1K/980o1yg9qKht21f+gXLU3ITDlREEHoKUDATiBYAAEsCIDAsgQoGkQ7J+kiWWnXpHDIWnfJVXZsBiSkSpIAAARLSURBVMde0zOmnCjkQ8VQxbstEIAAaqGWYSMICCVgEkEtRcOsB2Y2JAS1i+tNI6E7kIU2FZg1QQACCG4BAiBQNYHhBcwt3pVmi4S1tBRITjxOkEcUrOqmnb3wEEDZEeMHQAAEQCAfAeup8w1FgEzJ8S3uCsznbbK+DAEkqz5hDQiAQIMESASt1wevx6Y3tRRouVy5JQ4Nun+wyRBAwejwIgiAAAiUQ0AfmEnX6FCptmp93tJREfalwLbuy9Ms9kvC6mq7uT5v+VYFUyuFACqn/0JJQAAEQAAEAgmYomA7Mdir85ArmQKLsuhrUweFYhlwukoggBZ1Vfw4CIAACIBAKgJTUaDWBn/TrkAsA971MgigVC0P3wEBEAABEFiUgD4pfaVWu2tBaPnn+enR00ULNeOP26JgqqGEeEJOxyF03fak7zdXpnPSIIBmdE78FAiAAAiAAAjkIgABtCc7tSNw6mR0CKBcnojvggAIgAAIgMDMBEyXlbeyBGYTgePLoiGAZnZO/BwIgAAIgAAI5CIwdWFyW0ngdy8H1qzHHCCAcnkhvgsCIAACIAACCxHYC6H7h9vN71ctbYHf5f6ozYsp7BBACzkjfhYEQAAEQAAEQCA/gR9evX3dK/Vg/EtYAsvPHr8AAiAAAiAAAiCwEIGp4xCm7sXDEthCFYSfBQEQAAEQAAEQyEOAlsKU2jzpuu7ddtv/OnUQJgRQHvb4KgiAAAiAAAiAQMEEIIAKrhwUDQRAAARAAARAIA8BCKA8XPFVEAABEAABEACBgglAABVcOSgaCIAACIAACIBAHgIQQHm44qsgAAIgAAIgAAIFE4AAKrhyUDQQAAEQAAEQAIE8BCCA8nDFV0EABEAABEAABAomAAFUcOWgaCAAAiAAAiAAAnkIQADl4YqvggAIgAAIgAAIFEwAAqjgykHRQAAEQAAEQAAE8hCAAMrDFV8FARAAARAAARAomAAEUMGVg6KBAAiAAAiAAAjkIQABlIcrvgoCIAACIAACIFAwAQiggisHRQMBEAABEAABEMhDAAIoD1d8FQRAAARAAARAoGACEEAFVw6KBgIgAAIgAAIgkIcABFAervgqCIAACIAACIBAwQQggAquHBQNBEAABEAABEAgDwEIoDxc8VUQAAEQAAEQAIGCCUAAFVw5KBoIgAAIgAAIgEAeAhBAebjiqyAAAiAAAiAAAgUTgAAquHJQNBAAARAAARAAgTwEIIDycMVXQQAEQAAEQAAECiYAAVRw5aBoIAACIAACIAACeQhAAOXhiq+CAAiAAAiAAAgUTAACqODKQdFAAARAAARAAATyEIAAysMVXwUBEAABEAABECiYAARQwZWDooEACIAACIAACOQhAAGUhyu+CgIgAAIgAAIgUDABCKCCKwdFAwEQAAEQAAEQyEMAAigPV3wVBEAABEAABECgYAIQQAVXDooGAiAAAiAAAiCQh8D/ByO4HHoOknA7AAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/default/menus.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBNRU5VQkFSCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5tZW51YmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgcGFkZGluZzogNnB4OwogICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBmaWx0ZXI6ICRtZW51LXNoYWRvdzsKfQoKLm1lbnViYXItYnV0dG9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgYm9yZGVyOiBub25lOwogICAgY29sb3I6ICRub3JtYWwtdGV4dC1jb2xvcjsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi5tZW51YmFyLnJvdW5kZWQgLm1lbnViYXItYnV0dG9uIHsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKfQoKLm1lbnViYXItYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKICAgIGNvbG9yOiAkc2VsZWN0aW9uLXRleHQtY29sb3I7Cn0KCi8qCi5tZW51YmFyLWJ1dHRvbjphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwogICAgY29sb3I6ICRob3Zlci10ZXh0LWNvbG9yOwp9CiovCgoubWVudWJhci1idXR0b246ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBjb2xvcjogJGRvd24tdGV4dC1jb2xvcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OwogICAgYm9yZGVyLWJvdHRvbS1zaXplOiAwcHg7Cn0KCi5tZW51YmFyLWJ1dHRvbi1uby1jaGlsZHJlbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogbm9uZTsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwp9CgoubWVudWJhci1idXR0b24tbm8tY2hpbGRyZW46aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwogICAgY29sb3I6ICRzZWxlY3Rpb24tdGV4dC1jb2xvcjsKfQoKLm1lbnViYXItYnV0dG9uLW5vLWNoaWxkcmVuOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOwogICAgY29sb3I6ICRkb3duLXRleHQtY29sb3I7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKfQoKLm1lbnViYXItYnV0dG9uOmRpc2FibGVkIHsKICAgIGNvbG9yOiAkZGlzYWJsZWQtdGV4dC1jb2xvcjsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBNRU5VCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5tZW51IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjsKICAgIHBhZGRpbmc6IDFweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgZmlsdGVyOiAkbWVudS1zaGFkb3c7CiAgICBzcGFjaW5nOiAwOwogICAgaW5pdGlhbC13aWR0aDogMjAwcHg7Cn0KCi5tZW51LnJvdW5kZWQgewogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4OwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7CiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiA0cHg7Cn0KCi5tZW51LnByaW1hcnktbWVudS5yb3VuZGVkIHsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4OwogICAgcGFkZGluZzogNHB4Owp9CgoubWVudS5hdXRvLXdpZHRoIHsKICAgIHdpZHRoOiBhdXRvOwogICAgaW5pdGlhbC13aWR0aDogbm9uZTsKfQoKLm1lbnUuZXhwYW5kZWQgewogICAgYm9yZGVyLXRvcC13aWR0aDogMHB4OwogICAgYm9yZGVyLXRvcC1zaXplOiAwcHg7Cn0KCi5tZW51LWZpbGxlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGhlaWdodDogMXB4Owp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIE1FTlVJVEVNUwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoubWVudWl0ZW0gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOwogICAgcGFkZGluZzogNnB4OwogICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubWVudWl0ZW0tbGFiZWwsIC5tZW51aXRlbS1jaGVja2JveCwgLm1lbnVpdGVtLW9wdGlvbmJveCwgLm1lbnVpdGVtLXNob3J0Y3V0LWxhYmVsIHsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi5tZW51aXRlbS1sYWJlbDpkaXNhYmxlZCwgLm1lbnVpdGVtLXNob3J0Y3V0LWxhYmVsOmRpc2FibGVkIHsKICAgIGNvbG9yOiAkZGlzYWJsZWQtdGV4dC1jb2xvcjsKfQoKLm1lbnVpdGVtLXNob3J0Y3V0LWxhYmVsIHsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKICAgIGhvcml6b250YWwtYWxpZ246IHJpZ2h0Owp9CgoubWVudWl0ZW0taWNvbiB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwp9CgoubWVudWl0ZW06aG92ZXIsIC5tZW51aXRlbTpzZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3I7Cn0KCi5tZW51aXRlbSAubGFiZWw6aG92ZXIsIC5tZW51aXRlbSAubGFiZWw6c2VsZWN0ZWQsCi5tZW51aXRlbS1jaGVja2JveDpob3ZlciwgLm1lbnVpdGVtLWNoZWNrYm94OnNlbGVjdGVkLAoubWVudWl0ZW0tb3B0aW9uYm94OmhvdmVyLCAubWVudWl0ZW0tb3B0aW9uYm94OnNlbGVjdGVkIHsKICAgIGNvbG9yOiAkc2VsZWN0aW9uLXRleHQtY29sb3I7Cn0KCi5tZW51aXRlbS1leHBhbmRhYmxlIHsKICAgIHJlc291cmNlOiAkYXJyb3ctcmlnaHQ7CiAgICB2ZXJ0aWNhbC1hbGlnbjogImNlbnRlciI7Cn0KCi5tZW51c2VwYXJhdG9yIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiBhdXRvOwp9CgoubWVudXNlcGFyYXRvci1saW5lIHsKICAgIGhlaWdodDogMXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGhvcml6b250YWwtYWxpZ246ICJjZW50ZXIiOwp9CgoubWVudS5yb3VuZGVkIC5tZW51aXRlbSB7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7Cn0KCi5tZW51LnJvdW5kZWQgLm1lbnVzZXBhcmF0b3IgewogICAgcGFkZGluZy10b3A6IDNweDsKICAgIHBhZGRpbmctYm90dG9tOiAzcHg7Cn0K"},{ name : "haxeui-core/styles/shared/expanded-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADaXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VZbciQpDPznFHsEJCEkjkNBEbE32ONvQj3G3W47POv52QgXXUjFQ0qUgibs//w9wl94OBKHpOa55BzxpJIKVygej6eummJa9fkRL+WhPdwdMBsFUo5Pz+f4q53igyWq0PSNIW9nx/bYUdJp358MnY5kImIo/TRUTkPCRwedBuqxrJiL29slbPsh+7USP94wq3HFxA7x/J0M0esKP8K8C0lEzZIOADJfDlKXUtGNcKAW6CwZdZJrSQjIqzjFN6jCMyu3Rh+0P5Ei+WgPaHgMZr7ly3bS18EPK8RvPEu7PT+0l3q7eAjyivHoHsbYj9XVlBHSfC7qWsrSMHBDyGVNyyiGV6HbKgXFA7K3gfIeW9xQGhVi0DIoUadKg/YlGzVATLyzQTI3ltXmYly4SQzgKc1Cg02KdHFw1kCvoJVvLLT8luWukcNxJ4xkgjE66Oc/Uz40NMZMeaLod6yAi+emAIzJ3KwxCoTQuPJIV4Cv8vxMXgUM6gqzY4E1boeJTenMrZlHsogWDFTIY6+R9dMAQgTfCjDI/UQxkyhlisZsRIijg58KQ45NwxsoIFXuQMnYGhnkOE/fmGO0xrLy0YwzC0QotpGBmiIVXCUcbMgfS44cqiqaVDWrqWvRmiWnrDlny/PwqyaWTC2bmVux6uLJ1bObe/DitXARHI5acrHipZRa4bTCcsXsigG1brzJljbd8mabb2WrDenTUtOWmzUPrbTauUvHOdFzt+699LrTjlTa06573m33vex1INWGjDR05GHDRxn1Zo3CQeu78nXW6GKNF1NzoN2sYarZZYLmcaKTMzDGicC4TQaQ0Dw5i04pcZjUTc5iYewKZaDUSU6nyRgYTDuxDrq5+8XcA28hpW/xxhdzYVL3J5gLk7oPmHvP2wvW+vy3aVHCYmhuwxnUKNh+GLB7Za/zT+3LMvzuhB9DP4b+x4ZGpWOXjIpbBf5BjvZESfGb17p3MnzUsaTkZSGz7LZNjbfdfNgLSOFzzIBWf0FLcRnDRea9DC87zrUsJPVzJF9E9AIZ3chKjLqCMGW4lAdJQ1qfqo4ZnfxJkL8W7GeJC0Ff6rwZ7PzWf/gmkFuG3wH0GbDwTSC3DP8B0I+hH0N/0pDhLlLCvwJpjAM7CC1lAAABg2lDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TpaIVBzOIOGSoTi2IijhKFYtgobQVWnUwufQLmhiSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxdHJSdJES/5cUWsR4cNyPd/ced+8AoVFlmtU1Dmi6baYTcSmXX5FCrxDQhzBERGVmGcnMQha+4+seAb7exXiW/7k/R79asBgQkIhnmWHaxOvE05u2wXmfWGRlWSU+J46adEHiR64rHr9xLrks8EzRzKbniEViqdTBSgezsqkRTxFHVE2nfCHnscp5i7NWrbHWPfkLwwV9OcN1miNIYBFJpCBBQQ0VVGEjRqtOioU07cd9/MOuP0UuhVwVMHLMYwMaZNcP/ge/u7WKkxNeUjgOdL84zscoENoFmnXH+T52nOYJEHwGrvS2f6MBzHySXm9rkSNgYBu4uG5ryh5wuQMMPRmyKbtSkKZQLALvZ/RNeWDwFuhd9Xpr7eP0AchSV0s3wMEhMFai7DWfd/d09vbvmVZ/P21dcqXiaaDUAAANGGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo3YzhmNGQ2ZC05Mjk0LTQ2ZWQtYmRhOS1hNDA1MDVlZjNmOTAiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTFhMGRlODctY2RlYi00YmMxLWIwNGQtZmY4ZmY4NmZmN2RjIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDNjOTZmYzktYWZlMy00YTJjLWIwNzgtNmUwM2QxZmQ1ZWEzIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NDQ1ODI0MDQ3ODc2NjUiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4yNCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplMTE5ZmRkMC04ODgwLTQ0NDQtYTg4MC02ODRlNTg4MGEzM2YiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTFUMTM6MjY6NDQiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+QhhreAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+YCCwwaLCrn6QIAAACQSURBVDjLY2AYBQMPGJE5cROOK/37///ofwYGCRzqX//7999mebH1LZgAE7LsogLLewwMDO4MDAwfsWj+/P8/gyeyZgwDGBgYGJYUWl1iZGAMZGBg+Ikk/JuBgSF0WZHVWXT1TNjcuaTQcj8DA0MCAwPDPwYGhv8MDAypSwutdpIcQDH9x4pj+o8VjyYVGgMAhMInzjvMAn0AAAAASUVORK5CYII"},{ name : "haxeui-core/locale/pt/form-strings.properties", data : "Zm9ybS5maWVsZC5yZXF1aXJlZD1DYW1wbyBvYnJpZ2F0w7NyaW8"},{ name : "haxeui-core/locale/pt/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLyVtLyVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9LAo"},{ name : "haxeui-core/styles/shared/up-down-arrows-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAIAAABxOqH0AAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAARElEQVQImWN8K6PCwMDAwMBwfMYEy4wCCJsJLgQnoaJwDpzNuGXLFgYMwAg3F0UUq1omuL1wYJlRwAShkIUQLoNw4NIA3UcXw9uo6KsAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/dark/scrollbars.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBDTEFTU0lDIFZBUklBTlRTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5jbGFzc2ljLXNjcm9sbHMgLnNjcm9sbCwKLnNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjMmYzMDsKICAgIGJvcmRlcjpub25lOwp9CgouY2xhc3NpYy1zY3JvbGxzIC5zY3JvbGwgLmJ1dHRvbiwKLnNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLmJ1dHRvbnsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzJmMzA7CiAgICBib3JkZXI6bm9uZTsKfQoKLmNsYXNzaWMtc2Nyb2xscyAuc2Nyb2xsIC50aHVtYiwKLnNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLnRodW1iIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzZDQwNDI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLnNjcm9sbCAudGh1bWI6aG92ZXIsCi5zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC50aHVtYjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDU0ODRhOwp9CgouY2xhc3NpYy1zY3JvbGxzIC5zY3JvbGwgLnRodW1iOmRvd24sCi5zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC50aHVtYjpkb3duIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NTQ4NGE7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLnNjcm9sbCAudGh1bWI6ZGlzYWJsZWQsCi5zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC50aHVtYjpkaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzNzM4Owp9CgouY2xhc3NpYy1zY3JvbGxzIC52ZXJ0aWNhbC1zY3JvbGwgLmRlaW5jLAoudmVydGljYWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuZGVpbmMgewogICAgaWNvbjogImhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvdXAtYXJyb3ctbGlnaHQucG5nIjsKfQoKLmNsYXNzaWMtc2Nyb2xscyAudmVydGljYWwtc2Nyb2xsIC5kZWluYzpkb3duLAoudmVydGljYWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuZGVpbmM6ZG93biB7CiAgICBpY29uOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC91cC1hcnJvdy1icmlnaHQucG5nIjsKfQoKLmNsYXNzaWMtc2Nyb2xscyAudmVydGljYWwtc2Nyb2xsIC5pbmMsCi52ZXJ0aWNhbC1zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5pbmMgewogICAgaWNvbjogImhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvZG93bi1hcnJvdy1saWdodC5wbmciOwp9CgouY2xhc3NpYy1zY3JvbGxzIC52ZXJ0aWNhbC1zY3JvbGwgLmluYzpkb3duLAoudmVydGljYWwtc2Nyb2xsLmNsYXNzaWMtc2Nyb2xscyAuaW5jOmRvd24gewogICAgaWNvbjogImhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvZG93bi1hcnJvdy1icmlnaHQucG5nIjsKfQoKLmNsYXNzaWMtc2Nyb2xscyAuaG9yaXpvbnRhbC1zY3JvbGwgLmRlaW5jLAouaG9yaXpvbnRhbC1zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5kZWluYyB7CiAgICBpY29uOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC9sZWZ0LWFycm93LWxpZ2h0LnBuZyI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLmhvcml6b250YWwtc2Nyb2xsIC5kZWluYzpkb3duLAouaG9yaXpvbnRhbC1zY3JvbGwuY2xhc3NpYy1zY3JvbGxzIC5kZWluYzpkb3duIHsKICAgIGljb246ICJoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL2xlZnQtYXJyb3ctYnJpZ2h0LnBuZyI7Cn0KCi5jbGFzc2ljLXNjcm9sbHMgLmhvcml6b250YWwtc2Nyb2xsIC5pbmMsCi5ob3Jpem9udGFsLXNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLmluYyB7CiAgICBpY29uOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC9yaWdodC1hcnJvdy1saWdodC5wbmciOwp9CgouY2xhc3NpYy1zY3JvbGxzIC5ob3Jpem9udGFsLXNjcm9sbCAuaW5jOmRvd24sCi5ob3Jpem9udGFsLXNjcm9sbC5jbGFzc2ljLXNjcm9sbHMgLmluYzpkb3duIHsKICAgIGljb246ICJoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL3JpZ2h0LWFycm93LWJyaWdodC5wbmciOwp9Cg"},{ name : "haxeui-core/styles/default/optionboxes.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBPUFRJT05CT1gKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLm9wdGlvbmJveCB7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIGhvcml6b250YWwtc3BhY2luZzogNHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY29sb3I6ICRub3JtYWwtdGV4dC1jb2xvcjsKfQoKLm9wdGlvbmJveDpob3ZlciB7Cn0KCi5vcHRpb25ib3g6ZGlzYWJsZWQgewogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgY29sb3I6ICRkaXNhYmxlZC10ZXh0LWNvbG9yOwogICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtYm9yZGVyLWNvbG9yOwp9Cgoub3B0aW9uYm94LXZhbHVlIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICB3aWR0aDogMThweDsKICAgIGhlaWdodDogMThweDsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICBpY29uOiBub25lOwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLm9wdGlvbmJveC12YWx1ZTpob3ZlciB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9Cgoub3B0aW9uYm94LXZhbHVlOmFjdGl2ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9Cgoub3B0aW9uYm94LXZhbHVlOnNlbGVjdGVkIHsKICAgIGljb246ICRvcHRpb24tc2VsZWN0ZWQ7Cn0KCi5vcHRpb25ib3gtdmFsdWU6ZGlzYWJsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7CiAgICBjdXJzb3I6IGRlZmF1bHQ7Cn0KCi5vcHRpb25ib3gtbGFiZWwgewogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLm9wdGlvbmJveC1pY29uIHsKICAgIGhvcml6b250YWwtYWxpZ246IGNlbnRlcjsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBvcGFjaXR5OiAxOwp9Cgoub3B0aW9uYm94LWljb246ZGlzYWJsZWQgewogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgb3BhY2l0eTogMC41Owp9Cg"},{ name : "haxeui-core/styles/shared/gripper-vertical.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAKCAIAAAAcmWhZAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAH0lEQVQImWN8K6PCAANMDAwMk5KjJyVHQzlwwEg7ZQCDgwyl+MMKdgAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/option-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAMx3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZlrdt04jIT/cxWzBL4JLofPc2YHs/z5QOo6sWPH6e74xleyRFEgUCgUGLP+73+3+R9+oo/WxFQk15wtP7HG6hsnYu9PO9/OxvN9f8ZzdO+vm7cbnkuBY7h/Sn7Gv667twnuoXGWfppInolcf3+jxmd++TDR86KgFnlO5jNRfSYK/t5wzwTtLsvmKuXnJfR1j8/z1w2iS+Nrv3xS7uHj37HgvZl4T/B+BRcs3z7Ea0DQX29COyeN287fyy2EkPmO4WUJDvnMT/Ynq8wvUXmduS+ufwhKyPe64cJ7Z+a346fXXfrc+ea4+Kc3h/H25nfX47L743Jev3tPMXuvu7oWMy7Nz6JeSzlnDOxMFc5jmU/hN3FezqfyEQN6ByGfALPzGa46T1i2i2665rZb5zjcwMToly8cvR8+nGsSiq9+BGuIVtSP276EGmYQIjcIb+Cqf7PFnffW87rhhBdPx0jvmMzd8Pu/8/lyor0V8s5ZefMVdnlNCszQyOk3owiI2y8cpePg1+fjj8Y1EMF03CwssNl+p+jJPdhSHIUT6MDAxPHmmivzmQAX8e6EMWA/OptdSC47W7wvzuFHIT6NiYSk8Z0QuJT8xEofyRCCI17fzTPFnbE++XsZziIQiTQqhKaGRqwixAZ+ShQw1FJIMaWUU0mSamo55JhTzrlkJb9WQokllVxKkVJLkyBRkmQpIkaqtOprgBxTzbVUqbW2xksbMzeebgxorfseeuyp51669NrbAD4jjjTyKEPMqKNNP8OEJ2aeZcqssy23gNKKK628ypJVV9tAbYcdd9p5ly277vYWNWduWH/5/HnU3Ctq/kRKB5a3qPFoKa8pnNJJ0pgRMR8dES8aAQDtNWZWXIzeaOg0ZrZ6siJ5rEwanOk0YkQwLufTdm+x+xG5d3EzMf6nuPlX5IyG7m9Ezmjovojcr3H7JGqznaIZzImQpqE61QbSjwFLmpemRe2Pj+afPvAPJ+pNtp3Ut50iZJnr9GnNGncubiQ3GkAAIeAKXgl6w7gdbMMRfTbYe+vShjSitvHFOH83nNUIUO8zjtzHhBQJnq9617YCNN02uK+2XPbcs4a9RVrYy0U946TsEJmt7+6LPgZFqGEp9zWmG2EnbCfuZZvhW5yl88zacergvqs+Bdfwrq/vJqZCE6UyU6u1mzKzz0XOIv7LpIZZ3U4Z7+0EDqked+U1pKVndfcZyl57xeOToeM/GWHeDSkdGo3HWPlh6kdTHkPUYz8MNZ/dvsv/1dDHiPdGPiaar25+btzXfjR/GJ3HvDXXF8s1n6332+W+zffDQvMv8RN2axOt0SCRXaE6o8kFfNey7WSa/c2xt7xtgNLyhIVmg3agwO5Jx2HgvTXhOVQGGehqhKwLXCOznEVprAq5dMIR+wlHOeHIEzIOtfUWfE0myUhT45vIorItg1ZMvHxDW+TanrD1jC+YnjkvCH/Mqhg0ZEtYrk/rZxl+N5QwJJ18nD7G7avS7hAIP1o3xUKayaUWiz3+GKu0nSgbYlJlFvg/LIi42RbGzJua03anaMDGMjKA4ukZ89CTmFTWfzyany/4x7NV7Hk2Dnsi0nZOugBJsbfDWWPP1c61sv1Ztlney3eDGAOd7dYxvPfVIfiRKSwbgPAIQoYUmbnhYwpomDu3Qc2hFtocag4WUWlDH5kU6S2e10G1JyDTUpYO5e0je7fR/qAxVoUuhbA6Chwxw2UKnHV4Yb89r83MnUEhui81M8F2ZmzpATSSssOW5bF/+h17XWtl8Qm4dclYVCi4FqjMQtsAhQ9VbXmT1F6WXeZD/Vi7UOtZt8xbAJa/BcA1xfAsoig5HkQItAWW+kh3aegEDUvDDMwdYIJauZ0kZqZiE3eb/RNWrp4zaz8ezVc3Ph7rgxjq0DruUfWu+ZzW4rsZh7klJUAtZxEr0gtQnUrv8Jzg2cki6xQKuXdzUnmEAkosKPuBlcXmNCQsbRMfoMQkQLcnVAJuGG538nePGmkryL/hLukvBEbudUxBCv5EEEojYIXqrBTrg0aFiaTfh8hX5VwlseHj4+L1w8XqYaFK12ZI18FS7CDyhwvlySzt/I5fgv0DqroW/clAMhBtrzBffh54lNwPPFgJbZipSp1Jy43L19m594MT4BovlnHoIAQKjUy91zxIx9hSRyEQ0NYwvuX3dC9Xkdxq1Wp/X6zCTQplbgBRWkX3oEHsNqdk2bSs0vFq4LrNDDdNPAgHR5nIj0bX6Irq2YQUKgikgkRSNoRpJ+opFePQmrZBXyvRVaKdrofphr4msc+O5k8HIt1xWiXFy4XJiTFAaYrb4k16w0nqL5wAJcVJuDiBVeq+ri6/upqSqWm0zCS0/PY5YI4kcpYc6co9+jy9OFe+1aPmXwvZN0hBzoDK5LOgiyuw48YF1hgoQ/rjTWyllmRlIdMzqSwrRpFI9+NXU/j70ltdpqwc6DqQBqs41lZbgmtltDXAg665qjqlgZHjs7ABj2rXAVpv5aBuzGa0Cjxlo6hLVdeuiESgYoCRPiDN2wjsSKP0ypZ/T2zfHX9MFJDMM9AETSoUlCUPKSahXzuEIELF0VaMhmx89L75G33Ih4kqjQfdGYyYhYQb8ZKIF+Ihg2bEaRI94/MLWfkfp8g/yLUXeIpT8OQDnkGlsr1XH7kVG5KRGpW1Ae7dwj24loaRFDO/zTGvBRh9MSmPjm4UghvrdD15vnC16sGVoVgosNYBVk/t4ApqUVwtrR+CeKOm+i68JSQL86MvoC5FK2lyZl3dkCw66aHZuXu9j4bn9ud35z7Spu4paNqcdUZzks7OFcj5faTqOFLVqr5jRb1fzwwtnciFNR6p2mxC2q0MshYZZQpaEz3z8GL1/zZ25tuB31cYXRw97cOeIPLy5w/2TCUs1D7qCHnMdOIPRPtYJNB7HaStqCrz9HDSfjipvBU7qySihhzd7Y7oo1U+RqCR55FBBRlkfirR/r9g2/wN/6h7zLf+2b/4J77zj7usbb7wEOogIGRlf+6hgrbR0mRV92wZvho7/fTkmYC1fHKSf939B4Z8jv1pJmB9REarDulAAYe+C+IPtKMnEkZOGpMj1hEHFRVmcCgqxIXHoann69CQrkM14ZDZo3b1Gbpo9HwkqNaxRkOUXW3a0/aOMEGJTJVst1pUCfmlscLTNAqEAmQ0E0sv3Q26DurcmLpF2GjDzBUqPpCJUTNR+1lGW91hmbp5d5qF4q4uKgoImkfYq6sv6dQqenzUaVBBQ+tuLyFalVTxtoZz6ELSLBFGmSqtGiUXyVs9hrRAzynwONreQQoWi3QjSbi8skub+VEnGBUuayZ/FCzzH9aEe+kOEwyzdCswUZR1z3BRz6GRqMKD8ipL6WQ0yfMkDR2k/DkIzM8XaFmPgqQy09sD8QL3AsKjLiE9dRRYhz93mNrmra3kuTyQNVVxTyB5UrvDRoyQT6O0VoYLzUXXVCiBHgEbNXX6DSBSay+O5eHmKQ5omwre1mnx8Q19Ne5I2p3j7qY7D8RJ5qudoHM+7YTvTzvBS7QtaaiRqrIGfkfRTEGCIDVovKkXv5maLAOXacEGzur+NI2HAfQBbCFUdKs13u0I2UhhFBUcoK086UD/2JQ3AMvp4y7TFFefM/2/ox/ko63qyXftuN92IuAYXkpYSSmFT9NyExw+PFsNWm6q6wbhnXzOMT+bDRXi3Lxz+oq2pzBlppWuZZc+XHt097T3XXPstPct137qWlkr3v5+fTrowxjq5+yRpmrWKNrEasU15bc19ZuKWwhKHEzmgmHaY289tb80lOTLjGvEmy746h4QDK6Ybmu9e5yvrS7amdMuzfDayyr+haiwrIZ80nGSwBEHwCUQeqg0xyud5gdWzNajmHlV2ESlUfFoUGe1wCuTfCWXCIH6BW8kEryFQO6qwJxzmCxzID5Xxq6cA8tciX4DqyOpY5FBHZZMtB02Iq/m8CPGOFoU2uUMcYjKLZfMsN8tqEbUl/cLPUdy5LNBmV5bsaTd3Wg1ymSnOZzjbrSm6d4P+WQEHX3W/1L+ycHmbE6+N+cxRv9v7Owk/ubume/oLaSfbZfwgUzT3SIMisTlLHnts20xSlYIZJjQCYKRcnC37/rWbYvtyP4dBKnY92uDAja4e0Yw77M/QeYRI5toqBdVSjq5h2wLMQthnMmrqUayJVAu0wDRFQey3BOOWmwpoVvsQyRu1B3k8zc2EKj2W3TL0fuWzqbHviVVnFOVTZf9Tc1IpJtz9OPMs/atoMgHsjWf8xnRyfhXzKFCy4uurFlH1lgVI9pK0sKpkkamvrTRfLQRJDoK4vtsWkG45inO3bo/rT1Edc9q/h9qicCSEqswrwAAAYNpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVfU6WiFQcziDhkqE4tiIo4ShWLYKG0FVp1MLn0C5oYkhQXR8G14ODHYtXBxVlXB1dBEPwAcXRyUnSREv+XFFrEeHDcj3f3HnfvAKFRZZrVNQ5oum2mE3Epl1+RQq8Q0IcwRERlZhnJzEIWvuPrHgG+3sV4lv+5P0e/WrAYEJCIZ5lh2sTrxNObtsF5n1hkZVklPieOmnRB4keuKx6/cS65LPBM0cym54hFYqnUwUoHs7KpEU8RR1RNp3wh57HKeYuzVq2x1j35C8MFfTnDdZojSGARSaQgQUENFVRhI0arToqFNO3HffzDrj9FLoVcFTByzGMDGmTXD/4Hv7u1ipMTXlI4DnS/OM7HKBDaBZp1x/k+dpzmCRB8Bq70tn+jAcx8kl5va5EjYGAbuLhua8oecLkDDD0Zsim7UpCmUCwC72f0TXlg8BboXfV6a+3j9AHIUldLN8DBITBWouw1n3f3dPb275lWfz9tXXKl4mmg1AAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6Y2MxNDczMDEtNGNjYS00NTBjLThhNWUtMzQwZGE2YmZhYzQ4IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmNlODhmNGYwLWFhYTgtNDdkMy04Y2U5LTBmZDNjMzcxY2Q4NyIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmViMmE0ODA2LTRmOTctNDI5NS05ZjRmLWE2MDY4NWRkNzQxNSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0NjA4MjA0MjI1MjgwIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWI4YjIzY2EtMDA2NC00NmU1LWE1YmUtMjU0NjEwMmU1NWQ3IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTExVDIwOjM2OjQ0Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PhMPXLMAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmAgsTJCx8WBYyAAAA70lEQVQoz5WRPUtCcRTGf8/5KyKEU/QFmlKJpjY/RjZEFLREU0RDUcKFxlCqTaItIi7Nrm4OvUCLRDg3OTT1MnQ9TQ2C5vVMB87vPJznPDBl6a+J2u2M9ee2BZvgZeBTcO9uF7XVYmtoIYq7MwFvAZVRqu6c1aqlPUluABm8Pg4GkNg9ueuuA1h08zrraGvi7c4BgIWQLIOHFH4XoutewUyJ0n4op69gTvIMDFLwvcO1xXc7ri69AbcTcecUwACyfO+Anv5J6zJ5KV0NBdeIO/kPL+wjNoB54Af0IAbnRyvlWJKPFWzEnXyz+ZgdNfsFXi1DOnxxZRoAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorDefault", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVlBQUFDcHJIY21BQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQUdVbEVRVlI0Mm1QQUJ2NERBVGJ4b2FpWWtSUlRobjFvQUFDMG1TdldaNUx3Z2dBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "haxeui-core/styles/default/calendars.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBDQUxFTkRBUgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwouY2FsZW5kYXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIHBhZGRpbmc6IDVweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogMXB4Owp9CgouY2FsZW5kYXIgLmJ1dHRvbiB7CiAgICBwYWRkaW5nOiA4cHg7Cn0KCi5jYWxlbmRhciAuY2FsZW5kYXItb2ZmLWRheSB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwogICAgY3Vyc29yOiBkZWZhdWx0Owp9CgouY2FsZW5kYXIgLmNhbGVuZGFyLWRheSB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yLWxpZ2h0ZXI7Cn0KCi5jYWxlbmRhciAuY2FsZW5kYXItZGF5OmhvdmVyIHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKfQoKLmNhbGVuZGFyIC5jYWxlbmRhci1kYXktc2VsZWN0ZWQgewogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOwogICAgY29sb3I6ICRzZWxlY3Rpb24tdGV4dC1jb2xvcjsKfQoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogQ0FMRU5EQVJWSUVXCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5jYWxlbmRhci12aWV3IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBwYWRkaW5nOiA1cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1yYWRpdXM6IDFweDsKfQoKLmRyb3Bkb3duLXBvcHVwID4gLmNhbGVuZGFyLXZpZXcgewogICAgYm9yZGVyOiBub25lOwp9CgouY2FsZW5kYXItdmlldyAuY2FsZW5kYXIgewogICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogMHB4Owp9CgouY2FsZW5kYXItdmlldyAuaGJveCB7CiAgICBzcGFjaW5nOiAwOwp9CgouY2FsZW5kYXItdmlldyAjcHJldi1tb250aCB7CiAgICBpY29uOiAkYXJyb3ctbGVmdDsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwp9CgouY2FsZW5kYXItdmlldyAjbmV4dC1tb250aCB7CiAgICBpY29uOiAkYXJyb3ctcmlnaHQ7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLmNhbGVuZGFyLXZpZXcgI2N1cnJlbnQtbW9udGggewogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKfQoKLmNhbGVuZGFyLXZpZXcgI2N1cnJlbnQteWVhciB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogMXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKfQouY2FsZW5kYXItdmlldyAjY3VycmVudC15ZWFyIC5idXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogbm9uZTsKfQo"},{ name : "haxeui_rtti", data : "YnkyNDpoYXhlLnVpLnRvb2x0aXBzLnRvb2x0aXBveTEwOnN1cGVyQ2xhc3N5MjI6aGF4ZS51aS5jb250YWluZXJzLmJveHkxMDpwcm9wZXJ0aWVzYmhneTE3OmhheGUudWkucHJlbG9hZGVyb1IxUjJSM2JoZ3kzNDpoYXhlLnVpLm5vdGlmaWNhdGlvbnMubm90aWZpY2F0aW9ub1IxeTIzOmhheGUudWkuY29udGFpbmVycy52Ym94UjNiaGd5MjU6aGF4ZS51aS5jb3JlLml0ZW1yZW5kZXJlcm9SMVIyUjNiaGd5MzM6aGF4ZS51aS5jb3JlLmludGVyYWN0aXZlY29tcG9uZW50b1IxeTIyOmhheGUudWkuY29yZS5jb21wb25lbnRSM2J5MTY6YWxsb3dpbnRlcmFjdGlvbm95MTI6cHJvcGVydHlUeXBleTQ6Ym9vbHkxMjpwcm9wZXJ0eU5hbWVSMTBnaGdSOW9SMXkyOTpoYXhlLnVpLmJhY2tlbmQuY29tcG9uZW50aW1wbFIzYnkxNTp2ZXJ0aWNhbHNwYWNpbmdvUjExeTU6ZmxvYXRSMTNSMTVneTEzOnZlcnRpY2FsYWxpZ25vUjExeTY6c3RyaW5nUjEzUjE3Z3kxMDpwYWRkaW5ndG9wb1IxMVIxNlIxM1IxOWd5MTI6cGFkZGluZ3JpZ2h0b1IxMVIxNlIxM1IyMGd5MTE6cGFkZGluZ2xlZnRvUjExUjE2UjEzUjIxZ3kxMzpwYWRkaW5nYm90dG9tb1IxMVIxNlIxM1IyMmd5NzpwYWRkaW5nb1IxMVIxNlIxM1IyM2d5NzpvcGFjaXR5b1IxMVIxNlIxM1IyNGd5OTptYXJnaW50b3BvUjExUjE2UjEzUjI1Z3kxMTptYXJnaW5yaWdodG9SMTFSMTZSMTNSMjZneTEwOm1hcmdpbmxlZnRvUjExUjE2UjEzUjI3Z3kxMjptYXJnaW5ib3R0b21vUjExUjE2UjEzUjI4Z3kxNzpob3Jpem9udGFsc3BhY2luZ29SMTFSMTZSMTNSMjlneTE1Omhvcml6b250YWxhbGlnbm9SMTFSMThSMTNSMzBneTQ6Y2xpcG9SMTFSMTJSMTNSMzFneTEwOmJvcmRlcnNpemVvUjExUjE2UjEzUjMyZ3kxMjpib3JkZXJyYWRpdXNvUjExUjE2UjEzUjMzZ3kxMTpib3JkZXJjb2xvcm9SMTF5NTpjb2xvclIxM1IzNGd5MTU6YmFja2dyb3VuZGltYWdlb1IxMXk3OnZhcmlhbnRSMTNSMzZneTE4OmJhY2tncm91bmRjb2xvcmVuZG9SMTFSMzVSMTNSMzhneTE1OmJhY2tncm91bmRjb2xvcm9SMTFSMzVSMTNSMzlnaGd5MzA6aGF4ZS51aS5jb3JlLmJhc2ljaXRlbXJlbmRlcmVyb1IxUjdSM2JoZ3kzODpoYXhlLnVpLmNvbnRhaW5lcnMud2luZG93cy53aW5kb3d0aXRsZW9SMXkyMzpoYXhlLnVpLmNvbnRhaW5lcnMuaGJveFIzYmhneTM3OmhheGUudWkuY29udGFpbmVycy53aW5kb3dzLndpbmRvd2xpc3RvUjFSNDJSM2JoZ3kzOTpoYXhlLnVpLmNvbnRhaW5lcnMud2luZG93cy53aW5kb3dmb290ZXJvUjFSNDJSM2JoZ3kzMzpoYXhlLnVpLmNvbnRhaW5lcnMud2luZG93cy53aW5kb3dvUjFSNlIzYnk5Om1pbmltaXplZG9SMTFSMTJSMTNSNDZneTExOm1pbmltaXphYmxlb1IxMVIxMlIxM1I0N2d5OTptYXhpbWl6ZWRvUjExUjEyUjEzUjQ4Z3kxMTptYXhpbWl6YWJsZW9SMTFSMTJSMTNSNDlneTExOmNvbGxhcHNhYmxlb1IxMVIxMlIxM1I1MGd5ODpjbG9zYWJsZW9SMTFSMTJSMTNSNTFnaGd5NTM6aGF4ZS51aS5jb250YWluZXJzLndpbmRvd3MuX3dpbmRvd2xpc3Qud2luZG93bGlzdGl0ZW1vUjF5MjU6aGF4ZS51aS5jb21wb25lbnRzLmJ1dHRvblIzYmhneTM1OmhheGUudWkuY29udGFpbmVycy52ZXJ0aWNhbHNwbGl0dGVyb1IxeTI3OmhheGUudWkuY29udGFpbmVycy5zcGxpdHRlclIzYmhneTM2OmhheGUudWkuY29udGFpbmVycy52ZXJ0aWNhbGJ1dHRvbmJhcm9SMXkyODpoYXhlLnVpLmNvbnRhaW5lcnMuYnV0dG9uYmFyUjNiaGdSNm9SMVIyUjNiaGd5MzE6aGF4ZS51aS5jb250YWluZXJzLnRyZWV2aWV3bm9kZW9SMVI2UjNieTg6ZXhwYW5kZWRvUjExUjEyUjEzUjU5Z3kxMDpleHBhbmRhYmxlb1IxMVIxMlIxM1I2MGdoZ3kyNzpoYXhlLnVpLmNvbnRhaW5lcnMudHJlZXZpZXdvUjF5Mjk6aGF4ZS51aS5jb250YWluZXJzLnNjcm9sbHZpZXdSM2J5MTI6c2VsZWN0ZWRub2Rlb1IxMXkxMjp0cmVldmlld25vZGVSMTNSNjNnaGd5MjY6aGF4ZS51aS5jb250YWluZXJzLnRhZ2xpc3RvUjFSNDJSM2JoZ3kyNjpoYXhlLnVpLmNvbnRhaW5lcnMudGFidmlld29SMVI5UjNieTExOnRhYnBvc2l0aW9ub1IxMVIxOFIxM1I2N2d5MTI6c2VsZWN0ZWRwYWdlb1IxMXk5OmNvbXBvbmVudFIxM1I2OGd5OTpwYWdlaW5kZXhvUjExeTM6aW50UjEzUjcwZ3k5OnBhZ2Vjb3VudG9SMTFSNzFSMTNSNzJnUjUxb1IxMVIxMlIxM1I1MWd5MTE6YnV0dG9ud2lkdGhvUjExUjE2UjEzUjczZ3kxMjpidXR0b25oZWlnaHRvUjExUjE2UjEzUjc0Z2hneTI4OmhheGUudWkuY29udGFpbmVycy50YWJsZXZpZXdvUjFSNjJSM2J5MTY6dmFyaWFibGVpdGVtc2l6ZW9SMTFSMTJSMTNSNzZneTEzOnNlbGVjdGlvbm1vZGVvUjExUjc3UjEzUjc3Z3kxMzpzZWxlY3RlZGl0ZW1zb1IxMXkxODphcnJheSUzQ2R5bmFtaWMlM0VSMTNSNzhneTEyOnNlbGVjdGVkaXRlbW9SMTF5NzpkeW5hbWljUjEzUjgwZ3kxNTpzZWxlY3RlZGluZGljZXNvUjExeTE0OmFycmF5JTNDaW50JTNFUjEzUjgyZ3kxMzpzZWxlY3RlZGluZGV4b1IxMVI3MVIxM1I4NGd5MjI6bG9uZ3ByZXNzc2VsZWN0aW9udGltZW9SMTFSNzFSMTNSODVneTk6aXRlbXdpZHRob1IxMVIxNlIxM1I4Nmd5MTA6aXRlbWhlaWdodG9SMTFSMTZSMTNSODdneTk6aXRlbWNvdW50b1IxMVI3MVIxM1I4OGd5NjpoZWFkZXJvUjExUjY5UjEzUjg5Z3kxMDpkYXRhc291cmNlb1IxMXkyMzpkYXRhc291cmNlJTNDZHluYW1pYyUzRVIxM1I5MGdoZ3kyNDpoYXhlLnVpLmNvbnRhaW5lcnMuc3RhY2tvUjFSMlIzYlI4NG9SMTFSNzFSMTNSODRneTEwOnNlbGVjdGVkaWRvUjExUjE4UjEzUjkzZ2hnUjU1b1IxUjJSM2JoZ3kyNjpoYXhlLnVpLmNvbnRhaW5lcnMuc2lkZWJhcm9SMVIyUjNiaGdSNjJvUjFSOFIzYnkxNjp2c2Nyb2xsdGh1bWJzaXplb1IxMVIxNlIxM1I5NWd5MTA6dnNjcm9sbHBvc29SMTFSMTZSMTNSOTZneTE1OnZzY3JvbGxwYWdlc2l6ZW9SMTFSMTZSMTNSOTdneTEwOnZzY3JvbGxtYXhvUjExUjE2UjEzUjk4Z3k3OnZpcnR1YWxvUjExUjEyUjEzUjk5Z3kyMDp2ZXJ0aWNhbHNjcm9sbHBvbGljeW9SMTF5MTI6c2Nyb2xscG9saWN5UjEzUjEwMGd5OTp0aHVtYnNpemVvUjExUjE2UjEzUjEwMmdSMTAxb1IxMVIxMDFSMTNSMTAxZ3kxNzpzY3JvbGxtb3VzZWJ1dHRvbm9SMTF5MTE6bW91c2VidXR0b25SMTNSMTAzZ3kxMDpzY3JvbGxtb2Rlb1IxMVIxMDVSMTNSMTA1Z3kxOTpwZXJjZW50Y29udGVudHdpZHRob1IxMVIxNlIxM1IxMDZneTIwOnBlcmNlbnRjb250ZW50aGVpZ2h0b1IxMVIxNlIxM1IxMDdneTIyOmlzc2Nyb2xsYWJsZXZlcnRpY2FsbHlvUjExUjEyUjEzUjEwOGd5MjQ6aXNzY3JvbGxhYmxlaG9yaXpvbnRhbGx5b1IxMVIxMlIxM1IxMDlneTEyOmlzc2Nyb2xsYWJsZW9SMTFSMTJSMTNSMTEwZ3kxNjpoc2Nyb2xsdGh1bWJzaXplb1IxMVIxNlIxM1IxMTFneTEwOmhzY3JvbGxwb3NvUjExUjE2UjEzUjExMmd5MTU6aHNjcm9sbHBhZ2VzaXplb1IxMVIxNlIxM1IxMTNneTEwOmhzY3JvbGxtYXhvUjExUjE2UjEzUjExNGd5MjI6aG9yaXpvbnRhbHNjcm9sbHBvbGljeW9SMTFSMTAxUjEzUjExNWd5MTc6ZW1wdHljb250ZW50c3RleHRvUjExUjE4UjEzUjExNmd5MjI6ZW1wdHljb250ZW50c2NvbXBvbmVudG9SMTFSNjlSMTNSMTE3Z3kxMjpjb250ZW50d2lkdGhvUjExUjE2UjEzUjExOGd5ODpjb250ZW50c29SMTFSNjlSMTNSMTE5Z3kxNzpjb250ZW50bGF5b3V0bmFtZW9SMTFSMThSMTNSMTIwZ3kxMzpjb250ZW50aGVpZ2h0b1IxMVIxNlIxM1IxMjFneTE1OmF1dG9oaWRlc2Nyb2xsc29SMTFSMTJSMTNSMTIyZ3kxNTphbGxvd2F1dG9zY3JvbGxvUjExUjEyUjEzUjEyM2doZ3k0MzpoYXhlLnVpLmNvbnRhaW5lcnMucHJvcGVydGllcy5wcm9wZXJ0eWdyb3Vwb1IxUjZSM2J5NDp0ZXh0b1IxMVIxOFIxM1IxMjVneTg6ZGlzYWJsZWRvUjExUjEyUjEzUjEyNmdoZ3k0MjpoYXhlLnVpLmNvbnRhaW5lcnMucHJvcGVydGllcy5wcm9wZXJ0eWdyaWRvUjFSNjJSM2J5MTU6cG9wdXBzdHlsZW5hbWVzb1IxMVIxOFIxM1IxMjhnaGd5Mzg6aGF4ZS51aS5jb250YWluZXJzLnByb3BlcnRpZXMucHJvcGVydHlvUjFSNDJSM2J5NTp2YWx1ZW9SMTFSODFSMTNSMTMwZ3k0OnR5cGVvUjExUjE4UjEzUjEzMWd5NDpzdGVwb1IxMVIxNlIxM1IxMzJneTk6cHJlY2lzaW9ub1IxMVI3MVIxM1IxMzNneTM6bWlub1IxMVIxNlIxM1IxMzRneTM6bWF4b1IxMVIxNlIxM1IxMzVneTU6bGFiZWxvUjExUjE4UjEzUjEzNmdSOTBvUjExUjkxUjEzUjkwZ2hneTI0OmhheGUudWkuY29udGFpbmVycy5wYW5lbG9SMVI2UjNiaGd5Mzg6aGF4ZS51aS5jb250YWluZXJzLm1lbnVzLm1lbnVzZXBhcmF0b3JvUjFSOVIzYmhneTM4OmhheGUudWkuY29udGFpbmVycy5tZW51cy5tZW51b3B0aW9uYm94b1IxeTMzOmhheGUudWkuY29udGFpbmVycy5tZW51cy5tZW51aXRlbVIzYlIxMjVvUjExUjE4UjEzUjEyNWd5MTI6c2hvcnRjdXR0ZXh0b1IxMVIxOFIxM1IxNDFneTE0OnNlbGVjdGVkb3B0aW9ub1IxMVI2OVIxM1IxNDJneTg6c2VsZWN0ZWRvUjExUjEyUjEzUjE0M2d5MTQ6Y29tcG9uZW50Z3JvdXBvUjExUjE4UjEzUjE0NGdoZ1IxNDBvUjFSMlIzYlIxMjVvUjExUjE4UjEzUjEyNWdSMTQxb1IxMVIxOFIxM1IxNDFneTQ6aWNvbm9SMTFSMzdSMTNSMTQ1Z1I2MG9SMTFSMTJSMTNSNjBnaGd5Mzc6aGF4ZS51aS5jb250YWluZXJzLm1lbnVzLm1lbnVjaGVja2JveG9SMVIxNDBSM2JSMTI1b1IxMVIxOFIxM1IxMjVnUjE0MW9SMTFSMThSMTNSMTQxZ1IxNDNvUjExUjEyUjEzUjE0M2doZ3kzMjpoYXhlLnVpLmNvbnRhaW5lcnMubWVudXMubWVudWJhcm9SMVI0MlIzYnkxNDptZW51c3R5bGVuYW1lc29SMTFSMThSMTNSMTQ4Z2hneTI5OmhheGUudWkuY29udGFpbmVycy5tZW51cy5tZW51b1IxUjJSM2JSMTQ4b1IxMVIxOFIxM1IxNDhneTExOmN1cnJlbnRpdGVtb1IxMXk4Om1lbnVpdGVtUjEzUjE1MGd5MTI6Y3VycmVudGluZGV4b1IxMVI3MVIxM1IxNTJnaGd5Mjc6aGF4ZS51aS5jb250YWluZXJzLmxpc3R2aWV3b1IxUjYyUjNiUjc2b1IxMVIxMlIxM1I3NmdSMTMwb1IxMVI3MVIxM1IxMzBnUjc3b1IxMVI3N1IxM1I3N2dSNzhvUjExUjc5UjEzUjc4Z1I4MG9SMTFSODFSMTNSODBnUjgyb1IxMVI4M1IxM1I4MmdSODRvUjExUjcxUjEzUjg0Z1I4NW9SMTFSNzFSMTNSODVnUjg2b1IxMVIxNlIxM1I4NmdSODdvUjExUjE2UjEzUjg3Z1I4OG9SMTFSNzFSMTNSODhnUjkwb1IxMVI5MVIxM1I5MGdoZ3kzNzpoYXhlLnVpLmNvbnRhaW5lcnMuaG9yaXpvbnRhbHNwbGl0dGVyb1IxUjU1UjNiaGd5Mzg6aGF4ZS51aS5jb250YWluZXJzLmhvcml6b250YWxidXR0b25iYXJvUjFSNTdSM2JoZ3kyNTpoYXhlLnVpLmNvbnRhaW5lcnMuaGVhZGVyb1IxUjQyUjNiaGdSNDJvUjFSMlIzYmhneTI0OmhheGUudWkuY29udGFpbmVycy5ncm91cG9SMVIyUjNiUjE0Mm9SMTFSNjlSMTNSMTQyZ1IxNDRvUjExUjE4UjEzUjE0NGdoZ3kyMzpoYXhlLnVpLmNvbnRhaW5lcnMuZ3JpZG9SMVIyUjNiaGd5MjQ6aGF4ZS51aS5jb250YWluZXJzLmZyYW1lb1IxUjJSM2JSMTMwb1IxMVIxOFIxM1IxMzBnUjEyNW9SMTFSMThSMTNSMTI1Z1IxNDVvUjExUjE4UjEzUjE0NWd5MTE6Y29sbGFwc2libGVvUjExUjEyUjEzUjE2MGd5OTpjb2xsYXBzZWRvUjExUjEyUjEzUjE2MWdoZ3kyMzpoYXhlLnVpLmNvbnRhaW5lcnMuZm9ybW9SMVIyUjNiaGd5MjU6aGF4ZS51aS5jb250YWluZXJzLmZvb3Rlcm9SMVI0MlIzYmhneTM3OmhheGUudWkuY29udGFpbmVycy5kaWFsb2dzLm1lc3NhZ2Vib3hvUjF5MzA6aGF4ZS51aS5iYWNrZW5kLm1lc3NhZ2Vib3hiYXNlUjNiaGd5MzM6aGF4ZS51aS5jb250YWluZXJzLmRpYWxvZ3MuZGlhbG9nb1IxeTI2OmhheGUudWkuYmFja2VuZC5kaWFsb2diYXNlUjNiaGd5NDQ6aGF4ZS51aS5jb250YWluZXJzLmRpYWxvZ3MuY29sbGFwc2libGVkaWFsb2dvUjFSMTY2UjNiUjQ2b1IxMVIxMlIxM1I0NmdoZ3kzMzpoYXhlLnVpLmNvbnRhaW5lcnMuY29udGludW91c2hib3hvUjFSMlIzYmhneTMwOmhheGUudWkuY29udGFpbmVycy5jb2xsYXBzaWJsZW9SMVI2UjNiUjEyNW9SMTFSMThSMTNSMTI1Z1IxNjFvUjExUjEyUjEzUjE2MWdoZ3kyMzpoYXhlLnVpLmNvbnRhaW5lcnMuY2FyZG9SMVIyUjNiUjEzMG9SMTFSMThSMTNSMTMwZ1IxMjVvUjExUjE4UjEzUjEyNWdoZ3kzMTpoYXhlLnVpLmNvbnRhaW5lcnMuY2FsZW5kYXJ2aWV3b1IxUjJSM2J5MTI6c2VsZWN0ZWRkYXRlb1IxMXk0OmRhdGVSMTNSMTczZ2hnUjU3b1IxUjJSM2JSMTMwb1IxMVI3MVIxM1IxMzBneTY6dG9nZ2xlb1IxMVIxMlIxM1IxNzVnUjg0b1IxMVI3MVIxM1I4NGd5MTQ6c2VsZWN0ZWRidXR0b25vUjExUjY5UjEzUjE3Nmd5MTY6YWxsb3d1bnNlbGVjdGlvbm9SMTFSMTJSMTNSMTc3Z2hnUjJvUjFSOVIzYlIxNDVvUjExUjM3UjEzUjE0NWdSOTBvUjExUjkxUjEzUjkwZ2hneTI4OmhheGUudWkuY29udGFpbmVycy5hY2NvcmRpb25vUjFSNlIzYlI2OG9SMTFSNjlSMTNSNjhnUjcwb1IxMVI3MVIxM1I3MGdoZ3kyNzpoYXhlLnVpLmNvbnRhaW5lcnMuYWJzb2x1dGVvUjFSMlIzYmhneTUwOmhheGUudWkuY29udGFpbmVycy5fdGFibGV2aWV3LmNvbXBvdW5kaXRlbXJlbmRlcmVyb1IxUjdSM2JoZ3k0MTpoYXhlLnVpLmNvbnRhaW5lcnMuX3NwbGl0dGVyLnNpemVyZ3JpcHBlcm9SMVI4UjNiaGd5Mzc6aGF4ZS51aS5jb250YWluZXJzLl9wYW5lbC5wYW5lbGhlYWRlcm9SMVI0MlIzYmhneTM3OmhheGUudWkuY29udGFpbmVycy5fcGFuZWwucGFuZWxmb290ZXJvUjFSNDJSM2JoZ3kzMzpoYXhlLnVpLmNvbXBvbmVudHMudmVydGljYWxzbGlkZXJvUjF5MjU6aGF4ZS51aS5jb21wb25lbnRzLnNsaWRlclIzYmhneTMzOmhheGUudWkuY29tcG9uZW50cy52ZXJ0aWNhbHNjcm9sbG9SMXkyNTpoYXhlLnVpLmNvbXBvbmVudHMuc2Nyb2xsUjNiaGd5MzE6aGF4ZS51aS5jb21wb25lbnRzLnZlcnRpY2FscnVsZW9SMXkyMzpoYXhlLnVpLmNvbXBvbmVudHMucnVsZVIzYmhneTMyOmhheGUudWkuY29tcG9uZW50cy52ZXJ0aWNhbHJhbmdlb1IxeTI0OmhheGUudWkuY29tcG9uZW50cy5yYW5nZVIzYmhneTM1OmhheGUudWkuY29tcG9uZW50cy52ZXJ0aWNhbHByb2dyZXNzb1IxeTI3OmhheGUudWkuY29tcG9uZW50cy5wcm9ncmVzc1IzYmhneTI1OmhheGUudWkuY29tcG9uZW50cy50b2dnbGVvUjFSNTNSM2JoZ3kyODpoYXhlLnVpLmNvbXBvbmVudHMudGV4dGZpZWxkb1IxUjhSM2JSMTMwb1IxMVIxOFIxM1IxMzBnUjEyNW9SMTFSMThSMTNSMTI1Z3kxOTpzZWxlY3Rpb25zdGFydGluZGV4b1IxMVI3MVIxM1IxOTZneTE3OnNlbGVjdGlvbmVuZGluZGV4b1IxMVI3MVIxM1IxOTdneTEzOnJlc3RyaWN0Y2hhcnNvUjExUjE4UjEzUjE5OGd5MTE6cGxhY2Vob2xkZXJvUjExUjE4UjEzUjE5OWd5ODpwYXNzd29yZG9SMTFSMTJSMTNSMjAwZ3k4Om1heGNoYXJzb1IxMVI3MVIxM1IyMDFneTEyOmljb25wb3NpdGlvbm9SMTFSMThSMTNSMjAyZ1IxNDVvUjExUjE4UjEzUjE0NWd5ODpodG1sdGV4dG9SMTFSMThSMTNSMjAzZ3kxMDpjYXJldGluZGV4b1IxMVI3MVIxM1IyMDRnaGd5Mjc6aGF4ZS51aS5jb21wb25lbnRzLnRleHRhcmVhb1IxUjhSM2J5NDp3cmFwb1IxMVIxMlIxM1IyMDZnUjEzMG9SMTFSMThSMTNSMTMwZ1IxMjVvUjExUjE4UjEzUjEyNWdSMTk5b1IxMVIxOFIxM1IxOTlnUjIwMm9SMTFSMThSMTNSMjAyZ1IxNDVvUjExUjE4UjEzUjE0NWdSMjAzb1IxMVIxOFIxM1IyMDNnUjkwb1IxMXkyMjpkYXRhc291cmNlJTNDc3RyaW5nJTNFUjEzUjkwZ3kxODphdXRvc2Nyb2xsdG9ib3R0b21vUjExUjEyUjEzUjIwOGdoZ3kyMjpoYXhlLnVpLmNvbXBvbmVudHMudGFnb1IxUjQyUjNiUjEyNW9SMTFSMThSMTNSMTI1Z1I1MW9SMTFSMTJSMTNSNTFnaGd5MjU6aGF4ZS51aS5jb21wb25lbnRzLnRhYmJhcm9SMVI5UjNiUjY3b1IxMVIxOFIxM1I2N2d5ODp0YWJjb3VudG9SMTFSNzFSMTNSMjExZ3kxMTpzZWxlY3RlZHRhYm9SMTFSNjlSMTNSMjEyZ1I4NG9SMTFSNzFSMTNSODRnUjUxb1IxMVIxMlIxM1I1MWdSNzNvUjExUjE2UjEzUjczZ1I3NG9SMTFSMTZSMTNSNzRnaGd5MjU6aGF4ZS51aS5jb21wb25lbnRzLnN3aXRjaG9SMVI5UjNiUjEzMG9SMTFSMTJSMTNSMTMwZ3k2OnRleHRvbm9SMTFSMThSMTNSMjE0Z3k3OnRleHRvZmZvUjExUjE4UjEzUjIxNWdSMTI1b1IxMVIxOFIxM1IxMjVnUjE0M29SMTFSMTJSMTNSMTQzZ2hneTI2OmhheGUudWkuY29tcG9uZW50cy5zdGVwcGVyb1IxUjZSM2JSMTMwb1IxMVIxNlIxM1IxMzBnUjEzMm9SMTFSMTZSMTNSMTMyZ3kxNDpyZXBlYXRpbnRlcnZhbG9SMTFSNzFSMTNSMjE3Z3k4OnJlcGVhdGVyb1IxMVIxMlIxM1IyMThnUjEzM29SMTFSNzFSMTNSMTMzZ3kzOnBvc29SMTFSMTZSMTNSMjE5Z1IxMzRvUjExUjE2UjEzUjEzNGdSMTM1b1IxMVIxNlIxM1IxMzVnaGd5MjY6aGF4ZS51aS5jb21wb25lbnRzLnNwaW5uZXJvUjF5MzA6aGF4ZS51aS5jb21wb25lbnRzLmF0bGFzcGxheWVyUjNiaGd5MjU6aGF4ZS51aS5jb21wb25lbnRzLnNwYWNlcm9SMVI5UjNiaGdSMTg1b1IxUjhSM2JSMTMwb1IxMVIxNlIxM1IxMzBnUjEzMm9SMTFSMTZSMTNSMTMyZ3k1OnN0YXJ0b1IxMVIxNlIxM1IyMjNnUjEzM29SMTFSNzFSMTNSMTMzZ1IyMTlvUjExUjE2UjEzUjIxOWd5MTA6bWlub3J0aWNrc29SMTFSMTZSMTNSMjI0Z1IxMzRvUjExUjE2UjEzUjEzNGdSMTM1b1IxMVIxNlIxM1IxMzVneTEwOm1ham9ydGlja3NvUjExUjE2UjEzUjIyNWd5MzplbmRvUjExUjE2UjEzUjIyNmd5NjpjZW50ZXJvUjExUjE2UjEzUjIyN2doZ3kzMjpoYXhlLnVpLmNvbXBvbmVudHMuc2VjdGlvbmhlYWRlcm9SMVI2UjNiUjEyNW9SMTFSMThSMTNSMTI1Z2hnUjE4N29SMVI4UjNiUjEwMm9SMTFSMTZSMTNSMTAyZ1IyMTlvUjExUjE2UjEzUjIxOWd5ODpwYWdlc2l6ZW9SMTFSMTZSMTNSMjI5Z1IxMzRvUjExUjE2UjEzUjEzNGdSMTM1b1IxMVIxNlIxM1IxMzVneTk6aW5jcmVtZW50b1IxMVIxNlIxM1IyMzBnaGdSMTg5b1IxUjlSM2JoZ1IxOTFvUjFSOFIzYlIxMzJvUjExUjE2UjEzUjEzMmdSMjIzb1IxMVIxNlIxM1IyMjNnUjEzM29SMTFSNzFSMTNSMTMzZ1IxMzRvUjExUjE2UjEzUjEzNGdSMTM1b1IxMVIxNlIxM1IxMzVnUjIyNm9SMTFSMTZSMTNSMjI2Z1IxMG9SMTFSMTJSMTNSMTBnaGdSMTkzb1IxUjE5MVIzYlIxMzBvUjExUjE2UjEzUjEzMGdSMjE5b1IxMVIxNlIxM1IyMTlnUjEzNG9SMTFSMTZSMTNSMTM0Z3kxMzppbmRldGVybWluYXRlb1IxMVIxMlIxM1IyMzFnaGd5NDI6aGF4ZS51aS5jb21wb25lbnRzLnBvcHVwcy5jb2xvcnBpY2tlcnBvcHVwb1IxeTI3OmhheGUudWkuY29tcG9uZW50cy5kcm9wZG93blIzYmhneTY0OmhheGUudWkuY29tcG9uZW50cy5wb3B1cHMuX2NvbG9ycGlja2VycG9wdXAuY29sb3JwaWNrZXJwb3B1cHZpZXdvUjFSNlIzYmhneTQzOmhheGUudWkuY29tcG9uZW50cy5waWNrZXJzLm1vbnRocGlja2VycGFuZWxvUjFSNlIzYmhneTM4OmhheGUudWkuY29tcG9uZW50cy5waWNrZXJzLm1vbnRocGlja2Vyb1IxeTM3OmhheGUudWkuY29tcG9uZW50cy5waWNrZXJzLml0ZW1waWNrZXJSM2JoZ3k0MTpoYXhlLnVpLmNvbXBvbmVudHMucGlja2Vycy5tZW51aXRlbXBpY2tlcm9SMVIyMzdSM2JoZ3k0MTpoYXhlLnVpLmNvbXBvbmVudHMucGlja2Vycy5saXN0aXRlbXBpY2tlcm9SMVIyMzdSM2JoZ1IyMzdvUjFSOFIzYmhneTY0OmhheGUudWkuY29tcG9uZW50cy5waWNrZXJzLl9pdGVtcGlja2VyLmRlZmF1bHRpdGVtcGlja2VycmVuZGVyZXJvUjFSNDJSM2JoZ3kzMjpoYXhlLnVpLmNvbXBvbmVudHMub3B0aW9uc3RlcHBlcm9SMVI4UjNiUjEzMG9SMTFSODFSMTNSMTMwZ1I4MG9SMTFSODFSMTNSODBnUjg0b1IxMVI3MVIxM1I4NGdSOTBvUjExUjkxUjEzUjkwZ2hneTI4OmhheGUudWkuY29tcG9uZW50cy5vcHRpb25ib3hvUjF5Mjc6aGF4ZS51aS5jb21wb25lbnRzLmNoZWNrYm94UjNiUjEzMG9SMTFSMTJSMTNSMTMwZ1IxNDJvUjExUjY5UjEzUjE0MmdSMTQzb1IxMVIxMlIxM1IxNDNnUjE0NG9SMTFSMThSMTNSMTQ0Z2hneTMyOmhheGUudWkuY29tcG9uZW50cy5udW1iZXJzdGVwcGVyb1IxUjhSM2JSMTMwb1IxMVIxNlIxM1IxMzBnUjEzMm9SMTFSMTZSMTNSMTMyZ1IxMzNvUjExUjcxUjEzUjEzM2dSMjE5b1IxMVIxNlIxM1IyMTlnUjEzNG9SMTFSMTZSMTNSMTM0Z1IxMzVvUjExUjE2UjEzUjEzNWd5MTY6ZGVjaW1hbHNlcGFyYXRvcm9SMTFSMThSMTNSMjQ1Z3kxOTphdXRvY29ycmVjdGludGVydmFsb1IxMVI3MVIxM1IyNDZneTExOmF1dG9jb3JyZWN0b1IxMVIxMlIxM1IyNDdnaGd5MzE6aGF4ZS51aS5jb21wb25lbnRzLm1vbnRoc3RlcHBlcm9SMVIyNDFSM2JoZ3kyMzpoYXhlLnVpLmNvbXBvbmVudHMubGlua29SMXkyNDpoYXhlLnVpLmNvbXBvbmVudHMubGFiZWxSM2JoZ1IyNTBvUjFSOVIzYnk4OndvcmR3cmFwb1IxMVIxMlIxM1IyNTFnUjEzMG9SMTFSMThSMTNSMTMwZ3k5OnRleHRhbGlnbm9SMTF5MTY6bnVsbCUzQ3N0cmluZyUzRVIxM1IyNTJnUjEyNW9SMTFSMThSMTNSMTI1Z3kxMDpzZWxlY3RhYmxlb1IxMVIxMlIxM1IyNTRnUjIwM29SMTFSMThSMTNSMjAzZ3k4OmZvbnRzaXplb1IxMVIxNlIxM1IyNTVnaGd5MjQ6aGF4ZS51aS5jb21wb25lbnRzLmltYWdlb1IxUjlSM2JSMTMwb1IxMVIzN1IxM1IxMzBneTk6c2NhbGVtb2Rlb1IxMVIyNTdSMTNSMjU3Z3k4OnJlc291cmNlb1IxMVIzN1IxM1IyNThneTEzOm9yaWdpbmFsd2lkdGhvUjExUjE2UjEzUjI1OWd5MTQ6b3JpZ2luYWxoZWlnaHRvUjExUjE2UjEzUjI2MGd5MTg6aW1hZ2V2ZXJ0aWNhbGFsaWdub1IxMVIxN1IxM1IyNjFneTEwOmltYWdlc2NhbGVvUjExUjE2UjEzUjI2Mmd5MjA6aW1hZ2Vob3Jpem9udGFsYWxpZ25vUjExUjMwUjEzUjI2M2doZ3kyNzpoYXhlLnVpLmNvbXBvbmVudHMuaWNvbmxpbmtvUjFSNDJSM2JoZ3kzNTpoYXhlLnVpLmNvbXBvbmVudHMuaG9yaXpvbnRhbHNsaWRlcm9SMVIxODVSM2JoZ3kzNTpoYXhlLnVpLmNvbXBvbmVudHMuaG9yaXpvbnRhbHNjcm9sbG9SMVIxODdSM2JoZ3kzMzpoYXhlLnVpLmNvbXBvbmVudHMuaG9yaXpvbnRhbHJ1bGVvUjFSMTg5UjNiaGd5MzQ6aGF4ZS51aS5jb21wb25lbnRzLmhvcml6b250YWxyYW5nZW9SMVIxOTFSM2JoZ3kzNzpoYXhlLnVpLmNvbXBvbmVudHMuaG9yaXpvbnRhbHByb2dyZXNzb1IxUjE5M1IzYmhnUjIzM29SMVI1M1IzYlI5OW9SMTFSMTJSMTNSOTlnUjEzMG9SMTFSODFSMTNSMTMwZ1IxMzFvUjExUjE4UjEzUjEzMWdSODBvUjExUjgxUjEzUjgwZ1I4NG9SMTFSNzFSMTNSODRneTEyOnNlYXJjaHByb21wdG9SMTFSMThSMTNSMjcwZ3kxMTpzZWFyY2hmaWVsZG9SMTFSNjlSMTNSMjcxZ3kxMDpzZWFyY2hhYmxlb1IxMVIxMlIxM1IyNzJneTE3OmhhbmRsZXJzdHlsZW5hbWVzb1IxMVIxOFIxM1IyNzNneTEzOmRyb3Bkb3dud2lkdGhvUjExUjE2UjEzUjI3NGd5MjQ6ZHJvcGRvd252ZXJ0aWNhbHBvc2l0aW9ub1IxMVIxOFIxM1IyNzVneTEyOmRyb3Bkb3duc2l6ZW9SMTFSNzFSMTNSMjc2Z3kxMjpkcm9wZG93bm9wZW5vUjExUjEyUjEzUjI3N2d5MjY6ZHJvcGRvd25ob3Jpem9udGFscG9zaXRpb25vUjExUjE4UjEzUjI3OGd5MTQ6ZHJvcGRvd25oZWlnaHRvUjExUjE2UjEzUjI3OWdSOTBvUjExUjkxUjEzUjkwZ2hneTI4OmhheGUudWkuY29tcG9uZW50cy5kZWNvcmF0b3JvUjFSMlIzYmhneTI1OmhheGUudWkuY29tcG9uZW50cy5jb2x1bW5vUjFSNTNSM2JoZ3kzMDpoYXhlLnVpLmNvbXBvbmVudHMuY29sb3JwaWNrZXJvUjFSMlIzYmhneTMyOmhheGUudWkuY29tcG9uZW50cy5jaGVja2JveHZhbHVlb1IxUjhSM2JoZ1IyNDNvUjFSOFIzYlIxMzBvUjExUjEyUjEzUjEzMGdSMTI1b1IxMVIxOFIxM1IxMjVnUjE0M29SMTFSMTJSMTNSMTQzZ2hneTI1OmhheGUudWkuY29tcG9uZW50cy5jYW52YXNvUjFSOVIzYlI5MG9SMTFSOTFSMTNSOTBnaGd5Mjc6aGF4ZS51aS5jb21wb25lbnRzLmNhbGVuZGFyb1IxUjE1OFIzYlIxNzNvUjExUjE3NFIxM1IxNzNnUjE3NG9SMTFSMTc0UjEzUjE3NGdoZ1I1M29SMVI4UjNiUjEzMG9SMTFSMThSMTNSMTMwZ1IxNzVvUjExUjEyUjEzUjE3NWdSMjUyb1IxMVIxOFIxM1IyNTJnUjEyNW9SMTFSMThSMTNSMTI1Z1IxNDNvUjExUjEyUjEzUjE0M2dSMjE3b1IxMVI3MVIxM1IyMTdnUjIxOG9SMTFSMTJSMTNSMjE4Z3kxMzpyZW1haW5wcmVzc2Vkb1IxMVIxMlIxM1IyODZnUjIwMm9SMTFSMThSMTNSMjAyZ1IxNDVvUjExUjM3UjEzUjE0NWdSMjU1b1IxMVIxNlIxM1IyNTVneTE0OmVhc2VpbnJlcGVhdGVyb1IxMVIxMlIxM1IyODdnUjE0NG9SMTFSMThSMTNSMTQ0Z2hnUjIyMW9SMVIyUjNiaGd5Mjg6aGF4ZS51aS5jb21wb25lbnRzLmFuaW1hdGlvbm9SMVIyODRSM2JoZ3kzOTpoYXhlLnVpLmNvbXBvbmVudHMuX3RhYmJhci50YWJiYXJidXR0b25vUjFSNTNSM2JoZ3k0MjpoYXhlLnVpLmNvbXBvbmVudHMuX3N3aXRjaC5zd2l0Y2hidXR0b25zdWJvUjFSOFIzYmhneTUwOmhheGUudWkuY29tcG9uZW50cy5fY29sb3JwaWNrZXIuaHN2Y29sb3JwaWNrZXJpbXBsb1IxeTQ3OmhheGUudWkuY29tcG9uZW50cy5fY29sb3JwaWNrZXIuY29sb3JwaWNrZXJpbXBsUjNiaGdSMjkyb1IxUjJSM2JoZ1IxNjVvUjFSMTY2UjNiaGd5NDc6aGF4ZS51aS5iYWNrZW5kLmZsaXhlbC5jb21wb25lbnRzLnNwcml0ZXdyYXBwZXJvUjFSMlIzYmhneTQ3OmhheGUudWkuYmFja2VuZC5mbGl4ZWwuY29tcG9uZW50cy5zcGFycm93cGxheWVyb1IxUjJSM2JoZ1IxNjdvUjFSMlIzYmhnUjE0b1IxeTI5OmhheGUudWkuYmFja2VuZC5jb21wb25lbnRiYXNlUjNiaGdSMjk1b1IxeTMyOmZsaXhlbC5ncm91cC5mbHh0eXBlZHNwcml0ZWdyb3VwUjNiUjEzMG9SMTFSODFSMTNSMTMwZ3kxNTp0b29sdGlwcmVuZGVyZXJvUjExUjY5UjEzUjI5N2d5Nzp0b29sdGlwb1IxMVI4MVIxM1IyOThnUjEyNW9SMTFSMThSMTNSMTI1Z3kxMjpwZXJjZW50d2lkdGhvUjExUjE2UjEzUjI5OWd5MTM6cGVyY2VudGhlaWdodG9SMTFSMTZSMTNSMzAwZ1IxMjZvUjExUjEyUjEzUjEyNmdoZ3k0MjpmdW5raW4udWkuaGF4ZXVpLmNvbXBvbmVudHMud2F2ZWZvcm1wbGF5ZXJvUjFSMjkzUjNiaGd5NDM6ZnVua2luLnVpLmhheGV1aS5jb21wb25lbnRzLmNoYXJhY3RlcnBsYXllcm9SMVIyUjNiaGd5NjA6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLnRvb2xib3hlcy5jaGFydGVkaXRvcm9mZnNldHN0b29sYm94b1IxeTU3OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy50b29sYm94ZXMuY2hhcnRlZGl0b3JiYXNldG9vbGJveFIzYmhneTYxOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy50b29sYm94ZXMuY2hhcnRlZGl0b3Jub3RlZGF0YXRvb2xib3hvUjFSMzA0UjNiaGd5NjE6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLnRvb2xib3hlcy5jaGFydGVkaXRvcm1ldGFkYXRhdG9vbGJveG9SMVIzMDRSM2JoZ3k2MTpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcudG9vbGJveGVzLmNoYXJ0ZWRpdG9yZnJlZXBsYXl0b29sYm94b1IxUjMwNFIzYmhneTYyOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy50b29sYm94ZXMuY2hhcnRlZGl0b3JldmVudGRhdGF0b29sYm94b1IxUjMwNFIzYmhneTYzOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy50b29sYm94ZXMuY2hhcnRlZGl0b3JkaWZmaWN1bHR5dG9vbGJveG9SMVIzMDRSM2JoZ1IzMDRvUjFSMTY4UjNiaGd5NTc6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmRpYWxvZ3MuY2hhcnRlZGl0b3J3ZWxjb21lZGlhbG9nb1IxeTU0OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLmNoYXJ0ZWRpdG9yYmFzZWRpYWxvZ1IzYmhneTYxOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLmNoYXJ0ZWRpdG9ydXBsb2Fkdm9jYWxzZW50cnlvUjFSMlIzYmhneTYyOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLmNoYXJ0ZWRpdG9ydXBsb2Fkdm9jYWxzZGlhbG9nb1IxUjMxMVIzYmhneTYxOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLmNoYXJ0ZWRpdG9ydXBsb2FkY2hhcnRkaWFsb2dvUjFSMzExUjNiaGd5Njk6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmRpYWxvZ3MuY2hhcnRlZGl0b3JjaGFyYWN0ZXJpY29uc2VsZWN0b3JtZW51b1IxeTUyOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLmNoYXJ0ZWRpdG9yYmFzZW1lbnVSM2JoZ1IzMTZvUjFSMTQ5UjNiaGdSMzExb1IxUjE2NlIzYmhneTU1OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5kaWFsb2dzLmNoYXJ0ZWRpdG9yYWJvdXRkaWFsb2dvUjFSMzExUjNiaGd5Njk6ZnVua2luLnVpLmRlYnVnLmNoYXJ0aW5nLmNvbnRleHRtZW51cy5jaGFydGVkaXRvcnNlbGVjdGlvbmNvbnRleHRtZW51b1IxeTY0OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jb250ZXh0bWVudXMuY2hhcnRlZGl0b3JiYXNlY29udGV4dG1lbnVSM2JoZ3k2NDpmdW5raW4udWkuZGVidWcuY2hhcnRpbmcuY29udGV4dG1lbnVzLmNoYXJ0ZWRpdG9ybm90ZWNvbnRleHRtZW51b1IxUjMxOVIzYmhneTY4OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jb250ZXh0bWVudXMuY2hhcnRlZGl0b3Job2xkbm90ZWNvbnRleHRtZW51b1IxUjMxOVIzYmhneTY1OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jb250ZXh0bWVudXMuY2hhcnRlZGl0b3JldmVudGNvbnRleHRtZW51b1IxUjMxOVIzYmhneTY3OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jb250ZXh0bWVudXMuY2hhcnRlZGl0b3JkZWZhdWx0Y29udGV4dG1lbnVvUjFSMzE5UjNiaGdSMzE5b1IxUjE0OVIzYmhneTU4OmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jb21wb25lbnRzLmNoYXJ0ZWRpdG9ycGxheWJhcmhlYWRvUjFSMlIzYmhneTQxOmZ1bmtpbi51aS5kZWJ1Zy5jaGFydGluZy5jaGFydGVkaXRvcnN0YXRlb1IxeTMwOmhheGUudWkuYmFja2VuZC5mbGl4ZWwudWlzdGF0ZVIzYmhnaA"},{ name : "haxeui-core/styles/default/splitters.css", data : "LnNwbGl0dGVyIHsKICAgIHNwYWNpbmc6IDA7Cn0KCi52ZXJ0aWNhbC1zcGxpdHRlci1ncmlwcGVyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiA2cHg7CiAgICBjdXJzb3I6IHJvdy1yZXNpemU7CiAgICBwb2ludGVyLWV2ZW50czogdHJ1ZTsKfQoKLnZlcnRpY2FsLXNwbGl0dGVyLWdyaXBwZXI6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7Cn0KCi52ZXJ0aWNhbC1zcGxpdHRlci1ncmlwcGVyOmRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItZG93bjsKfQoKLnZlcnRpY2FsLXNwbGl0dGVyLWdyaXBwZXIgLmltYWdlIHsKICAgIHJlc291cmNlOiAkZ3JpcHBlci1ob3Jpem9udGFsOwogICAgaG9yaXpvbnRhbC1hbGlnbjogY2VudGVyOwogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKfQoKLmhvcml6b250YWwtc3BsaXR0ZXItZ3JpcHBlciB7CiAgICB3aWR0aDogNnB4OwogICAgaGVpZ2h0OiAxMDAlOwogICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgcG9pbnRlci1ldmVudHM6IHRydWU7Cn0KCi5ob3Jpem9udGFsLXNwbGl0dGVyLWdyaXBwZXI6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7Cn0KCi5ob3Jpem9udGFsLXNwbGl0dGVyLWdyaXBwZXI6ZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1kb3duOwp9CgouaG9yaXpvbnRhbC1zcGxpdHRlci1ncmlwcGVyIC5pbWFnZSB7CiAgICByZXNvdXJjZTogJGdyaXBwZXItdmVydGljYWw7CiAgICBob3Jpem9udGFsLWFsaWduOiBjZW50ZXI7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwp9Cg"},{ name : "haxeui-core/locale/en_US/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVtLyVkLyVZCg"},{ name : "haxeui-core/locale/es/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLyVtLyVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9LAo"},{ name : "haxeui-core/styles/shared/up-arrow-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAKklEQVQImWN8K6PCwMDAwMCQbKIz98wVCJsJLgQnoaJwDpzNGBAQwIABAOGNCDDIObJsAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/default/listview.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBMSVNUVklFVwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoubGlzdHZpZXcgLmxpc3R2aWV3LWNvbnRlbnRzIHsKICAgIHNwYWNpbmc6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDBweDsKfQoKLmxpc3R2aWV3IC5saXN0dmlldy1jb250ZW50cyA+IC5pdGVtcmVuZGVyZXIgewogICAgY3Vyc29yOiBwb2ludGVyOyAgCn0KCi5saXN0dmlldyAubGlzdHZpZXctY29udGVudHMgPiAuaXRlbXJlbmRlcmVyIC5sYWJlbCB7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubGlzdHZpZXcgLmV2ZW4gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWJhY2tncm91bmQtY29sb3I7Cn0KCi5saXN0dmlldyAuZXZlbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI7Cn0KCi5saXN0dmlldyAub2RkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWFsdDsKfQoKLmxpc3R2aWV3IC5vZGQ6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwp9CgoubGlzdHZpZXcgLmxpc3R2aWV3LWNvbnRlbnRzID4gLml0ZW1yZW5kZXJlciB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBwYWRkaW5nOiA2cHg7Cn0KCi5saXN0dmlldyAubGlzdHZpZXctY29udGVudHMgPiAuaXRlbXJlbmRlcmVyOnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKICAgIGNvbG9yOiAkc2VsZWN0aW9uLXRleHQtY29sb3I7Cn0KCi5saXN0dmlldyAubGlzdHZpZXctY29udGVudHMgPiAuaXRlbXJlbmRlcmVyOnNlbGVjdGVkIC5sYWJlbCB7CiAgICBjb2xvcjogJHNlbGVjdGlvbi10ZXh0LWNvbG9yOwp9CgoubGlzdHZpZXc6ZGlzYWJsZWQgLmxhYmVsIHsKICAgIGNvbG9yOiAkZGlzYWJsZWQtdGV4dC1jb2xvcjsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBMSVNUIFZJRVcgLSBMRUZUIE1FTlUgQUxURVJOQVRFCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoubGlzdHZpZXcubGVmdC1tZW51IHsKICAgIGJvcmRlcjogbm9uZTsKICAgIHBhZGRpbmc6IDBweDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIG1vZGU6IG1vYmlsZTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgoubGlzdHZpZXcubGVmdC1tZW51IC52ZXJ0aWNhbC1zY3JvbGwgLmRlaW5jLCAubGlzdHZpZXcubGVmdC1tZW51IC52ZXJ0aWNhbC1zY3JvbGwgLmluYyB7CiAgICBoaWRkZW46IHRydWU7Cn0KCi5saXN0dmlldy5sZWZ0LW1lbnUgLnZlcnRpY2FsLXNjcm9sbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lOwogICAgd2lkdGg6IDlweDsKICAgIHBhZGRpbmc6IDJweDsKfQoKLmxpc3R2aWV3LmxlZnQtbWVudSAudmVydGljYWwtc2Nyb2xsIC50aHVtYiB7CiAgICBiYWNrZ3JvdW5kLW9wYWNpdHk6IC4zOwogICAgd2lkdGg6IDVweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKfQoKLmxpc3R2aWV3LmxlZnQtbWVudSAubGlzdHZpZXctY29udGVudHMgewp9CiAgICAgICAgCi5saXN0dmlldy5sZWZ0LW1lbnUgLmV2ZW4gewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIAogICAgcGFkZGluZy10b3A6IDhweDsKICAgIHBhZGRpbmctYm90dG9tOiA4cHg7Cn0KCi5saXN0dmlldy5sZWZ0LW1lbnUgLmV2ZW46aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHNvbGlkLWJhY2tncm91bmQtY29sb3ItaG92ZXI7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIAogICAgcGFkZGluZy10b3A6IDhweDsKICAgIHBhZGRpbmctYm90dG9tOiA4cHg7Cn0KCi5saXN0dmlldy5sZWZ0LW1lbnUgLm9kZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgCiAgICBwYWRkaW5nLXRvcDogOHB4OwogICAgcGFkZGluZy1ib3R0b206IDhweDsKfQoKLmxpc3R2aWV3LmxlZnQtbWVudSAub2RkOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2xpZC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICAKICAgIHBhZGRpbmctdG9wOiA4cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogOHB4Owp9CgoubGlzdHZpZXcubGVmdC1tZW51IC5saXN0dmlldy1jb250ZW50cyA+IC5pdGVtcmVuZGVyZXI6c2VsZWN0ZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNvbG9yOwp9CgoKLmxpc3R2aWV3LmxlZnQtbWVudSAubGlzdHZpZXctY29udGVudHMgPiAuaXRlbXJlbmRlcmVyOnNlbGVjdGVkIC5sYWJlbCB7CiAgICBjb2xvcjogJG5vcm1hbC10ZXh0LWNvbG9yOwp9CiAgICAKLmxpc3R2aWV3LmxlZnQtbWVudSAudmVydGljYWwtc2Nyb2xsIHsKICAgIG9wYWNpdHk6IC41OwogICAgd2lkdGg6IDhweDsKICAgIHBhZGRpbmc6IDJweDsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7Cn0K"},{ name : "haxeui-core/styles/default/colorpickers.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBDT0xPUiBQSUNLRVIKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmNvbG9yLXBpY2tlciB7CiAgICBwYWRkaW5nOiAwOwogICAgYm9yZGVyLXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgaW5pdGlhbC13aWR0aDogMjcwcHg7CiAgICBpbml0aWFsLWhlaWdodDogMzAwcHg7Cn0KCi5jb2xvci1waWNrZXIgLmNvbnRyb2xzLWNvbnRhaW5lciB7CiAgICBib3JkZXI6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBwYWRkaW5nOiA1cHggMnB4OwogICAgYm9yZGVyLXJhZGl1czogJG5vcm1hbC1ib3JkZXItcmFkaXVzOwogICAgc3BhY2luZzogMnB4Owp9CgouY29sb3ItcGlja2VyIC5jb250cm9scy1jb250YWluZXIgI3ByZXZDb250cm9scyB7CiAgICByZXNvdXJjZTogaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC9sZWZ0LXNxdWFyZS1hcnJvdy1ibHVlLnBuZzsKfQoKLmNvbG9yLXBpY2tlciAuY29udHJvbHMtY29udGFpbmVyICNuZXh0Q29udHJvbHMgewogICAgcmVzb3VyY2U6IGhheGV1aS1jb3JlL3N0eWxlcy9zaGFyZWQvcmlnaHQtc3F1YXJlLWFycm93LWJsdWUucG5nOwp9CgouY29sb3ItcGlja2VyIC5jb250cm9scy1jb250YWluZXIgLnRleHRmaWVsZCwgLmNvbG9yLXBpY2tlciAjaW5wdXRIZXggewogICAgd2lkdGg6IDI1cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXI6IG5vbmU7CiAgICBmaWx0ZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAwcHg7CiAgICBib3JkZXItYm90dG9tOiAkbm9ybWFsLWJvcmRlci1zaXplIHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgcGFkZGluZzogMHB4OwogICAgcGFkZGluZy1ib3R0b206IDFweDsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwp9CgouY29sb3ItcGlja2VyICNpbnB1dEhleCB7CiAgICB3aWR0aDogMTAwJTsKfQoKLmNvbG9yLXBpY2tlciAuY29udHJvbHMtY29udGFpbmVyIC5sYWJlbCB7CiAgICB3aWR0aDogNTVweDsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7Cn0KCi5jb2xvci1waWNrZXIgLmNvbnRyb2xzLWNvbnRhaW5lciAuc2xpZGVyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjsKfQoKLyogc2F0dXJhdGlvbiAvIHZhbHVlICovCi5jb2xvci1waWNrZXIgI3NhdHVyYXRpb25WYWx1ZUNvbnRhaW5lciB7CiAgICBib3JkZXI6ICRub3JtYWwtYm9yZGVyLXNpemUgc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBwYWRkaW5nOiAxcHg7CiAgICBib3JkZXItcmFkaXVzOiAkbm9ybWFsLWJvcmRlci1yYWRpdXM7Cn0KCi5jb2xvci1waWNrZXIgI3NhdHVyYXRpb25WYWx1ZUluZGljYXRvciB7CiAgICB3aWR0aDogMTBweDsKICAgIGhlaWdodDogMTBweDsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlOwogICAgYm9yZGVyLW9wYWNpdHk6IC43OwogICAgYm9yZGVyLXJhZGl1czoxMHB4Owp9CgovKiBodWUgKi8KLmNvbG9yLXBpY2tlciAjaHVlQ29udGFpbmVyIHsKICAgIGJvcmRlcjogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHBhZGRpbmc6MXB4IDJweDsKICAgIGJvcmRlci1yYWRpdXM6ICRub3JtYWwtYm9yZGVyLXJhZGl1czsKfQoKLmNvbG9yLXBpY2tlciAjaHVlSW5kaWNhdG9yIHsKICAgIGJvcmRlci1yYWRpdXM6MnB4OwogICAgcG9pbnRlci1ldmVudHM6bm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7CiAgICBmaWx0ZXI6ZHJvcC1zaGFkb3coMiwgNDUsICM4ODg4ODgsIDAuMSwgNCwgMSwgMzAsIDM1LCBmYWxzZSk7Cn0KCi8qIHByZXZpZXcgKi8KLmNvbG9yLXBpY2tlciAjY29sb3JQcmV2aWV3Q29udGFpbmVyIHsKICAgIGJvcmRlcjogJG5vcm1hbC1ib3JkZXItc2l6ZSBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHBhZGRpbmc6IDJweDsKICAgIGJvcmRlci1yYWRpdXM6ICRub3JtYWwtYm9yZGVyLXJhZGl1czsKICAgIG9wYWNpdHk6IDE7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCi5jb2xvci1waWNrZXI6ZGlzYWJsZWQgI2NvbG9yUHJldmlld0NvbnRhaW5lciB7CiAgICBmaWx0ZXI6IGdyYXlzY2FsZTsKICAgIG9wYWNpdHk6IC4zOwp9CgouY29sb3ItcGlja2VyICNzYXR1cmF0aW9uVmFsdWVHcmFwaCB7CiAgICBvcGFjaXR5OiAxOwogICAgZmlsdGVyOiBub25lOwp9CgouY29sb3ItcGlja2VyOmRpc2FibGVkICNzYXR1cmF0aW9uVmFsdWVHcmFwaCB7CiAgICBmaWx0ZXI6IGdyYXlzY2FsZTsKICAgIG9wYWNpdHk6IC4zOwp9CgouY29sb3ItcGlja2VyICNodWVHcmFwaCB7CiAgICBvcGFjaXR5OiAxOwogICAgZmlsdGVyOiBub25lOwp9CgouY29sb3ItcGlja2VyOmRpc2FibGVkICNodWVHcmFwaCB7CiAgICBmaWx0ZXI6IGdyYXlzY2FsZTsKICAgIG9wYWNpdHk6IC4zOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIENPTE9SIFBJQ0tFUiBQT1BVUAoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwouY29sb3ItcGlja2VyLXBvcHVwIHsKICAgIHBhZGRpbmctdG9wOiA0cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNHB4OwogICAgcGFkZGluZy1sZWZ0OiA0cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7Cn0KCi5jb2xvci1waWNrZXItcG9wdXAgI3NlbGVjdGVkQ29sb3JQcmV2aWV3Q29udGFpbmVyIHsKICAgIHBhZGRpbmc6IDJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgb3BhY2l0eTogMTsKICAgIGZpbHRlcjogbm9uZTsKfQoKLmNvbG9yLXBpY2tlci1wb3B1cDpkaXNhYmxlZCAjc2VsZWN0ZWRDb2xvclByZXZpZXdDb250YWluZXIgewogICAgZmlsdGVyOiBncmF5c2NhbGU7CiAgICBvcGFjaXR5OiAuMzsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBDT0xPUiBQSUNLRVIgVkFSSUFOVCAtIE5PIFNMSURFUlMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmNvbG9yLXBpY2tlci5uby1zbGlkZXJzIC5zbGlkZXIgewogICAgaGlkZGVuOiB0cnVlOwp9CgouY29sb3ItcGlja2VyLm5vLXNsaWRlcnMgI2NvbnRyb2xzU3RhY2sgLmxhYmVsIHsKICAgIHdpZHRoOiAxMDAlOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIENPTE9SIFBJQ0tFUiBWQVJJQU5UIC0gTk8gVEVYVCBJTlBVVFMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmNvbG9yLXBpY2tlci5uby10ZXh0LWlucHV0cyAudGV4dGZpZWxkIHsKICAgIGhpZGRlbjogdHJ1ZTsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBDT0xPUiBQSUNLRVIgVkFSSUFOVCAtIE5PIENPTlRST0xTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5jb2xvci1waWNrZXIubm8tY29udHJvbHMgLmNvbnRyb2xzLXByZXZpZXctY29udGFpbmVyIHsKICAgIGhpZGRlbjogdHJ1ZTsKfQo"},{ name : "haxeui-core/styles/default/last.css", data : "LmNvbXBvbmVudDphY3RpdmUgewogICAgX19ib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWNvbG9yOwp9CgouY29tcG9uZW50OmFjdGl2YXRhYmxlIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQtY29sb3I7Cn0KCg"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicCloseButton", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVFBQUFCdUJuWUFBQUFBQ1hCSVdYTUFBQUIyQUFBQWRnRk9leVlJQUFBQVZVbEVRVlFJSFFYQU1RcEJBUUNBNGQrVG5qdTZoL1V0akNZeVVDVEpZaUNMMjMzS3lzK3lxbXlzc3NiUFdIYjRWQ1o4SGZBMVZtVUwzaFpWbVRtRGwzbGxjTVhUSGc5RGJyaWJseU11bVZ3TVZXWk9wait1UDA5cXc0R1hvd0FBQUFCSlJVNUVya0pnZ2c9PQ"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicBitmapLog", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUowbEVRVlI0Mm1NZ0d2eFArUDhmcStEL0JKb0wvbThBQ21FSVZ2d0hBM1R0RU5CQVdKQUJBUHVUT0VmRWVwT2RBQUFBQUVsRlRrU3VRbUND"},{ name : "haxeui-core/styles/shared/down-arrow-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAJElEQVQImWPcsmULAwZgsswoQBOyzChgglDIQgwMDEzIHLg0AIkLCIq+gFfgAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/left-arrow-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVQImWN8K6PCwMDAwMCQbKLDBGcxMDAwwVkMDAzMt5zsGGCAae6ZKwgOAwMDnA81AMIHAN2yC5bbbdIbAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/right-arrow-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAIAAACgB3uHAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAL0lEQVQImWMMCAiYe+YKAwMDAwMDEwMDQ7KJDoID50M5ED6CM/fMFSY4C6oMbhoAEcwMOy/jUHEAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/right-arrow-square-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAIAAABLMMCEAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAMUlEQVQImWN8K6PCwMBwfMYEy4wCBhhggrOOz5iARRRZAkUULoEuCjGdCVMIRRTZDQD4NA07+SZ5fAAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/up-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV9AAAEAXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja5VZZdsUmDP1nFV0CkhCC5TCe0x10+b1g++VNSdMmfzXHFhZC0xWDG3/9Od0feMh8ckEtxRyjxxNyyFzQSf54yv6SD/t7PHZSeuS7/bMeBktA5fhN8ZS/+HRTcJCCnt4pSu0cqI8D+TTA6UnRaUiWR4xOPxXlU5HwMUCngnKE5WNOdh9CHQc95x9pSCs0fOrF1VP46T8YstcVdoR5CInHlyUcDsh62UnZnYJhWoKgRQJaEZErVCTkXZ78nVfuBZWr94RK5vegSDwkHBiPyYw3+pZP+j75bqf4zrK0s8eP/JivjD0meb1z9uTmHEd0JUSkNJ5BXSHuHgQrUi57WkQzvIq+7ZbRkkP1NkDeffMVrVEmBiyTAnUqNGls2qjBxcCDDZS5AZXFS2KcuYl3QGlhFGiySZYuCcg1wCvg8s0X2nbzNtcowXAnSDJBGR3w8++0TxXNuUqeaCUz884V/OJVBHBjIbe+kAIgNK860p3gqz0/C1cBgrrTnBBg8fVQUZXO2lp1JBtogaCCHmuNrJ8KkCLYVjiD2g/kI4lSJG/MRoQ8JuBToChh0XAFBKTKHV5yEIkAJ/GyjTlGW5aVDzb2LAChEsUATZYCrAI2NtSPhYQaKioaVDWqadKsJUoMUWOMFtfmV0wsmFo0s2TZSpIUkqaYLCWXciqZs2Bz1Byz5ZRzLgVGCzQXzC4QKKVylRqq1litpppraSifFpq22Kwl13Irnbt07BM9duup514GDZTSCENHHDbSyKNMlNqUGabOOG2mmWe5oUbugPWlfR81ulDjjdQStBtqmGp2qaC1nejCDIhxICBuCwEUNC/MfKIQ2C3oFmaourWTMbzUBU6nhRgQDINYJ92w+0DuATcXwo9w4ws5t6D7DeTcgu4T5F5xe4NaX6dN8+I2QmsZrqR6wfKLSkFJZ4g4g1c36Dql/oG6UGqPiEsNTqEingSE6piK1VGtDwQaP1Pl/Ldtfk2Xol/xyf3Il9FrM8DaQ8JJ6wsK2+KsnZbR3Lcfm8FJG6EAcJPw+NxTsI0RwzXH3Sbda/FleFgKxcDsJd7ckBeFF3WfDXzQ7G0tMLh/eP8+Uvd5ClgOb6TXMbrclOfkd6Vhdd9R98y4KCp6htH8xBG87jUacqKxjmIrum46yn5gqW2J74X2lGQ6/EMCcWwADniOVRnc1vjA2hxsEIpVFL4IZtPDcaxrN60sL/+tYy/UvQxsX6yjoAtugHyYbn4Pl3U5LQoI0npx8t7+3PpVq11KphAZ25H/NI6vqPtSYLslI6+7U1/XvA93kLcclJH3EPECtXnk87/58UHdTxX8rxXhNtYBgfsbkBUChqlTc0oAAAGDaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1OlohUHM4g4ZKhOLYiKOEoVi2ChtBVadTC59AuaGJIUF0fBteDgx2LVwcVZVwdXQRD8AHF0clJ0kRL/lxRaxHhw3I939x537wChUWWa1TUOaLptphNxKZdfkUKvENCHMEREZWYZycxCFr7j6x4Bvt7FeJb/uT9Hv1qwGBCQiGeZYdrE68TTm7bBeZ9YZGVZJT4njpp0QeJHrisev3EuuSzwTNHMpueIRWKp1MFKB7OyqRFPEUdUTad8IeexynmLs1atsdY9+QvDBX05w3WaI0hgEUmkIEFBDRVUYSNGq06KhTTtx338w64/RS6FXBUwcsxjAxpk1w/+B7+7tYqTE15SOA50vzjOxygQ2gWadcf5Pnac5gkQfAau9LZ/owHMfJJeb2uRI2BgG7i4bmvKHnC5Aww9GbIpu1KQplAsAu9n9E15YPAW6F31emvt4/QByFJXSzfAwSEwVqLsNZ9393T29u+ZVn8/bV1ypeJpoNQAAA0YaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjIyYzQ2ODgwLTQzNDktNDFjMS05NWJjLWZkZGNmYTk0OWIxMyIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNmYyYWY4Ni1jNjA4LTRlZTItOTUwMy1lM2QwOWY3MWRhNjgiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMDAxNDQzZC1kM2RkLTQ2YmQtYjYzMi0xMWE5ODk4MTYyOWYiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY0NDYxMjI3NzAwMjQxNyIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjI0IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQwN2YyZDllLWYyYzUtNDY2My04YzEyLTRkNjcyMGZhZDM0MSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMi0xMVQyMTo0NDozNyIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7T4nLNAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH5gILFCwkvxUCjQAAACNJREFUCNdjYEACoV1H/iPzGbFJrC6zYYRLouuAKWDEJgEDACRXDUjpoGrXAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/up-arrow-bright.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAIAAADNpLIqAAAABnRSTlMA7QAcACSX3bo6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAK0lEQVQImWN8K6PCwMDAwMAg9Pj2O1lVCJsJLgQnoaJwDpzN+P//fwYMAADCtw5xBtAKnQAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/default/cards.css", data : "LmNhcmQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWJhY2tncm91bmQtY29sb3I7CiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAsIDQ1LCAjMDAwMDAwLCAwLjEsIDUsIDEsIDEsIDMsIGZhbHNlKTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHBhZGRpbmc6IDE1cHg7Cn0KCi5jYXJkLXRpdGxlLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICBmb250LWJvbGQ6IHRydWU7Cn0KCi5jYXJkLXRpdGxlLWNvbnRhaW5lciB7CiAgICBwYWRkaW5nLWJvdHRvbTogNXB4OwogICAgd2lkdGg6IDEwMCU7Cn0KCi5jYXJkLXRpdGxlLWxpbmUgewogICAgaGVpZ2h0OiAxcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9Cg"},{ name : "haxeui-core/styles/default/progressbars.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBQUk9HUkVTUwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUgewogICAgMCUgewogICAgICAgIHN0YXJ0OiAwOwogICAgICAgIGVuZDogMjU7CiAgICB9CiAgICA1MCUgewogICAgICAgIHN0YXJ0OiA3NTsKICAgICAgICBlbmQ6IDEwMDsKICAgIH0KICAgIDEwMCUgewogICAgICAgIHN0YXJ0OiAwOwogICAgICAgIGVuZDogMjU7CiAgICB9Cn0KCi5wcm9ncmVzczppbmRldGVybWluYXRlIHsKICAgIGFuaW1hdGlvbjogaW5kZXRlcm1pbmF0ZSAxcyBlYXNlIDBzIGluZmluaXRlOwp9CgoucHJvZ3Jlc3MtdmFsdWUgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMXB4Owp9CgouaG9yaXpvbnRhbC1wcm9ncmVzcyB7CiAgICBiYWNrZ3JvdW5kOiAkbm9ybWFsLWJhY2tncm91bmQtY29sb3ItZW5kICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1zdGFydCB2ZXJ0aWNhbDsKICAgIGluaXRpYWwtd2lkdGg6IDE1MHB4OwogICAgaW5pdGlhbC1oZWlnaHQ6IDhweDsKfQoKLmhvcml6b250YWwtcHJvZ3Jlc3MgLnByb2dyZXNzLXZhbHVlIHsKICAgIGJhY2tncm91bmQ6ICRhY2NlbnQtZ3JhZGllbnQtc3RhcnQgJGFjY2VudC1ncmFkaWVudC1lbmQgdmVydGljYWw7CiAgICBoZWlnaHQ6IDEwMCU7Cn0KCi5ob3Jpem9udGFsLXByb2dyZXNzOmRpc2FibGVkIHsKICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlci1jb2xvcjsKfQoKLmhvcml6b250YWwtcHJvZ3Jlc3M6ZGlzYWJsZWQgLnByb2dyZXNzLXZhbHVlIHsKICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0ICRkaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLWVuZCB2ZXJ0aWNhbDsKfQoKLnZlcnRpY2FsLXByb2dyZXNzIHsKICAgIGJhY2tncm91bmQ6ICRub3JtYWwtYmFja2dyb3VuZC1jb2xvci1lbmQgJG5vcm1hbC1iYWNrZ3JvdW5kLWNvbG9yLXN0YXJ0IGhvcml6b250YWw7CiAgICBpbml0aWFsLXdpZHRoOiA4cHg7CiAgICBpbml0aWFsLWhlaWdodDogMTUwcHg7Cn0KCi52ZXJ0aWNhbC1wcm9ncmVzcyAucHJvZ3Jlc3MtdmFsdWUgewogICAgYmFja2dyb3VuZDogJGFjY2VudC1ncmFkaWVudC1zdGFydCAkYWNjZW50LWdyYWRpZW50LWVuZCBob3Jpem9udGFsOwogICAgd2lkdGg6IDEwMCU7Cn0KCi52ZXJ0aWNhbC1wcm9ncmVzczpkaXNhYmxlZCAucHJvZ3Jlc3MtdmFsdWUgewogICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWJhY2tncm91bmQtY29sb3Itc3RhcnQgJGRpc2FibGVkLWJhY2tncm91bmQtY29sb3ItZW5kIGhvcml6b250YWw7Cn0KCi52ZXJ0aWNhbC1wcm9ncmVzczpkaXNhYmxlZCB7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7Cn0K"},{ name : "haxeui-core/styles/shared/tick-medium.png", data : "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAG2HpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVdtluUoCP3vKmYJKiK6HBQ9Z3Ywy59Lkveq3kd1dc10chKNMQpcuJCw/vl7h79w5NJyKCyt9lojjtJLz4pOi+ehxz3FctyPI1+v8PwwHu4vMoYILZ2PrV7zb+PpvsDZKHr8aaE2rxfj8UUv1/rtaaFrI3KJXAq7FurXQpTPF+laQE+1Yu1NPqsw1tnaTZN2XsFvJKfqt0Wen4vAesYYpJwXJYq4E+VTAPKLAilepPOOiYka+oUE93hMTadB3tnpfnRItF3U8nbSAyr3Xno/Hp7RKvmaQk9Grvf27XhI/B6Vw/Sfdi7t6uXH8VpOrwvxyfp+7W1tHzpDCy0Vpq6XUjdVjh7mDWzhW7cA0WoUXIwl5Dg7zgavnkDN4owD50w9ZcC1U0mWNO20jnamCRFLXiELOjnPTMdgI8k9T3L8ip9pZ6FOBjQzzQP2QvkuSzq27XGGY7eGnS1hak5YLOGTH5/hpx/s7aGQUmx3W0GunN3YEMOR8zumAZG0L6PyYeDb+Xw4rgQE2a3sIdJh2HEuMTh9MAEdQBMmMtozXJLYtQBMhK0ZwiAmSgJqiTjVFCVnSQmGbABIIXqmkgcQSMzZIGQuRBXYtOxb4xNJx9TMGcMB4yAzIMFUEWENCCnAKoXhP1IafEiZuDBzZeHGnbVSLZVrrVKdFFVIShCWKiJNumijVhq32qS11pv23Amkyb126a33roo9FSsrvlZMUB150CiDw6hDRht96IT7zDJ51imzzT7VspGBP6yaWLNuutKCK62yeNUlq62+dMPVNoVdNu+6Zbfdt95Ru2B9OX+AWrpQywdSPlHuqGFU5LZEcjphxwyAIYskIC4OARw6O2axpVKyI+eYxQ76I84Qkh0zS44YECwrZd7phl3IJ6KO3P/CLUh5wC3/V+SCQ/dD5F5xe4eaeRqaB2JnFLpRIyH68H41zU092b204asXP23/zEJbU9CjvxMk1wpbw4iepX/R6WWpo1wJ/pFS27lvssCpcOK1+gb5FH+KP27FCgVunW0Y/JF3tJ7m7sNU5thMS1RpGLysQu5hIOx09pFaDwnKvQ3PA3B6p5/i9cjRmchI1nSKrp0HEsTOKlkG8sEAjHUUg0tImDIOAcVm3+W3tODRebpBoAJNuA0W5ACnAlM7ce6+BDFl8aaJEUU9gInft+GrFx4Dubc0EUEZaIwNqXX0hvjaPBZvBHAd3oU/Zw5IzsiXS2jtZXmVbQaPz7bVtgzpeSFYNh2a1VnbVzoHZIXhjnHzpVOmV1S+ax9Q25fD3fbqZeACYdK0y93SLvoKAGRB9MNrUCLDJlCPF+VV4+HDWsE9vy1WeBpwKdjMylSuxCoAU7f2ZKxqFWA6LcGeheZQxe6aWPo2pKOSIUvLOqnXSbUf6CvqR48o2GtmANJXPYNSEKH1Bi7BISG9Ixz+n4mhgsEtRBjVSOdmtRutOpaCme2YJZlEyGIDWXrSbrpiRV6Lo3cr2ueoFqtVOSYzsoj0ZTYvZik3qGb80KbOrfxGmwdlwkO0JoRR6WMgRTWb0+fDrqOxckJ8qctdXOwDeIx9wBrK+Aqmuu2TikV/rWG4VHzR8NEpv9c08BehkRSCbsP6cJXINTFpslHSWjzAP2v4JyMXxGIpigRJExkv6y4ZUuM1PGiAUCC3uNwFO7ofjuEV1YhYTyZSXGlriKen0dPAB6Flhn8pAkwi4Wo851JGAhy1UR3k2WEg4dLcFbF26pxfeCccQBY4650sZFSxfMMDUYoSwpx/kcQhzKV7+8hJo3jKhnSoO1QqEnNVg1HURIznIJQAUBjguKtCUuCmBsbRRCOh5hBUq6d6ra6wIjw7I/oSz4jvcxIi7YzAQ/Y2nQdXwXcaktcYN0Hbc44M9wEP1u7k+sE+1j+xD1hHnLE6Ugm1o8oY2HaqW/GAHz8RL4xtUafTnFc/iH24DTIHNIRHwEXnSrBEBI+RO28SaBROlZKjlf8DWA9ZxDFDIlRnn9bdMagJuYpXPkfdym8yXLRy49eGBPkGzw9cdVC9w3o9ZZR06cXs4Rc1y2l+jyf4RD5y5qTVy9sPwlndqFM9lEiGIgIlXS56roMg/FLghzb8uorqp0EPlRZw1A328EJlL/8ZlTMUNMoIv1E2NOYJepoGvhL8jRbnLDKtw87iZ4HFQqoOG9TflM8+36X6pjhxmuIz1bhnQ+wTnaE7DgSWzYTa1n+ETyIrcdfvq8nwdXm53NoIgB1Rbh8BoQjc4vUXcCncxtHzPxh0wr13JQDDn0BG0hTxP5NVYYJ2YY86Xb8UKfyBEvvPLIR/hR7+BednufVmWO+4AAABhWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AYht+mSkUrInYQcchQnayIijhKFYtgobQVWnUwufQPmjQkKS6OgmvBwZ/FqoOLs64OroIg+APi6uKk6CIlfpcUWsR4x3EP733vy913gFAvM9XsmABUzTKSsaiYya6KgVf00OzHOHwSM/V4ajENz/F1Dx/f7yI8y7vuz9Gr5EwG+ETiOaYbFvEG8cympXPeJw6xoqQQnxOPGXRB4keuyy6/cS44LPDMkJFOzhOHiMVCG8ttzIqGSjxNHFZUjfKFjMsK5y3OarnKmvfkLwzmtJUU12kNI4YlxJGACBlVlFCGhQjtGikmknQe9fAPOf4EuWRylcDIsYAKVEiOH/wPfvfWzE9NuknBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj9JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD8tIZ8H3s/om7LAwC3Qveb2rXmO0wcgTb1avgEODoHRAmWve7y7q71v/9Y0+/cDaP1yo6noXjEAAA12aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmE1MmFiMzk2LWQxYWUtNDRhZi1iNmY5LThkOTUzNDNmNWVmOSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5ZDA2NGJhMC1hNWIyLTQwNjEtYjFiNC05NWI3OWEwYWMxZDkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0MmEyMGVhNC1kODA3LTRkNDctYTk4Yy03NjY5MDJiMGZmNzkiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY5OTcyNDgyNDI0MjU4NyIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjMyIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMzoxMToxMVQxODo0NzowMiswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjM6MTE6MTFUMTg6NDc6MDIrMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiMWIxOTk0Yy1hZjA5LTRmNWUtYjI5MC1iMThjODE5OTRkYTEiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMTEtMTFUMTg6NDc6MDQiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+UP8XdwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+cLCxEvBG/RArkAAANeSURBVFjD7ZfLb1tVEMZ/c20rLqLEIVAHSlCVlDRupASlm7BmaeLHpUUsWFBAqgoS2ZD+D1TdkAUg1B0iQorxA+xuYJ+kgk0fgVWKBCpmFT+SYAucYeFb+9q+fsXuCkY6m3vuOd/3zcyZOQf+6yb9LgjGI2MiOqEqPhEdAVCVsojmUMmmzeTeYyGwHI8EFFYQloAJwAeMWNNlIAdkQTePVNZumcmfh0LgtXhkGuGaou8K4uplU0UrwE1UrmfM5O6xCQTjkTdE+Bg4c8wQ/6rKasZMxvomEEyE3xLkU+DkgHlWRPkgbSa/7JmApfzmEMAf2b6ilzPRVKwrgeA30Wkx9IcB3N42HKCvpqOphpwwWhgZem0Y4G6XgdvVsP0ZRVY7eiAYjwQQvdtrtrezEbeL0MIMJ5/wkvhxh72/yvXTITqfiXy74+gBEV0ZFNzrcXPpwnnmJv28OD7K8sI5XIZYasUlR8aHjiEIxsNjIEuDgJ/wuFmef4mzz40DkD8s8/3OLpUjtft8KRiP+FoICDJhVbhjg19cDDA36a+Bx7bv8Udhv/lXv9hwjHr1YtQqrw6VDQxDOro9tDDDtE3511t3+S1fdPrdZ8ep54Co11bbG8AD/nHevDCH1+N2VH5pMUDghVPdlNf4WsP5GDbb1NhThBZnmTn9DKH5mQYSJ/pT7nxc61KlhFBu9kK5UuHvSgXwcH7yFF6Pm42fqqfo4mKgAbyL8kdWskZzEpK3WmqDPSwcsL51h/xhdc3UxNOEXz7XoLxwWOpHec6OYw9B1hot9mfhkI3t++QPqiRmTz/bEPON2/d7UV7DURtOjUDaTO6pstlu1e/5Iuvbd8gd1LxXj3mu95irspkxk44eQGHNukzQzhOx2/fIHZT6ibkd4B9xVdY6d8NE5HOBK532eX70yWp+5Pf7LFf6WTqaer9jN9QjuV5tne3tYX7/GOA8UORG88cWArdeT+yqsgoUhngXKCr6USbaej90LEQZMxlDuQoUhwEOejUTTcWdJttWwrSZXFf0nW7h6O52fTsdTX01wLU8PKXIqsB7CO5esx3RL1SNGxkz8WAoD5NgKjRLxVgR4RXAb3U0r6285oCsKlviqnySDn/3y+N6mvmsfu7TagcFlZJATiFrLzL/Wy/2L5WiZLD+XUgbAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/up-square-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADc3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZddcuwoDIXfWcUsAUmAxHIwP1Wzg7v8OWDspDs9VZPkTtV9iEkDFrI46AN3x/Vffw/3Fy72nFyIaimn5HGFHDIXdMyfV1k1+bDqfeOvzoPd3QMMk6CV89bS9r/s5B8iUUEvvgtkdQ8cjwM57Pj2FGhPJFMRo9N2oLwDCZ8DtAOUc1k+ZdP3Szj62bZrJXZ+3KzGlRM9m+f7oMhei5hHmLuQeNQifAqQ+WEnBQOMmiXDkeAwLRn1uQo6E/IqT/eVoWhMqeGl0wOVu0ev7e6ZVuDtIk9JTnf70u4ovqayUv9u5mC7x4/2fJyhnH/K/kr+aDbWmrGKEhJSnfai7qwtKKMdmGJObQ7xEugk7CFDO0tGMezqiq3QfPUHSqVMDFyDAjUqNKivtlKFxMDdsaLDXFmW0UQ5c5XJL8xCgxUMmxi41oU9CN9aaE2bfXVrNsPMjeDKhGBzO3y6uM8+MMY8CkTe7lxBF/NMNmRMcrOGG4jQ2EmNK8FXeb4mVwHBOLM8j0hGYo8zxBHp7U0gC7TAMaI9zyBp2wGQIkwdIYYEBECNJFIir8xKhEQaABVIZwl8gADFyA0iOYgksDGeU+MRpeXKkWF2sONlBhJRkijY4JQBVggR+0eDYQ+VKDHEGFPUaDHHkiSFFFNKmuZLsahocBo1qapp1mJiwaIlUzPLVjJnwUsz5pQ1W865FMxZELng6QKHUg4+5AhHdEc69LAjH6Vi+9RQY01Vq9VcS+MmDe+Plpo2a7mVTh1bqYcee+raredeBrbaEDfCiCMNHTbyKDe1jfVD+QQ12tR4kZqOelODVfUKQfN1EiczAGMXCMR1IsCG5snMG4XAk9xk5jPjVESGyDiZNZrEQDB04jjoYuf4JDrJfYub0/DAjb9Kzk10nyT3kdsram1+DdVF7DyFM6lecPow3q2wlfll96F1/zbw2fYn0E+g/y/QKHRu4lE8jowva8BL12Xlo2sdqb5/zP0mQY+BICRtIQQh+ybg52DEH/zi6lUcu15Ox9wFX97ouin5kv6d1p1rt7TXbmHQVvim5HUrM2f5ypmzp6R9pZ0pcW85kSsn8l+XRGekxJDmyqXNhn5JylbiviTlhTR3a/uWtB3od2zJn0A/gf7kQPg1Mv+t/AfTYMCLM/OUnAAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNQFIVPU6UiFUE7iChkqJ0siIo4ShWLYKG0FVp1MHnpHzRpSFJcHAXXgoM/i1UHF2ddHVwFQfAHxNHJSdFFSrwvKbSI8cHlfZz3zuG++wChUWGq2TUBqJplpOIxMZtbFQOvCGKUagARiZl6Ir2Ygef6uoeP73dRnuV978/Vp+RNBvhE4jmmGxbxBvHMpqVz3icOsZKkEJ8TjxvUIPEj12WX3zgXHRZ4ZsjIpOaJQ8RisYPlDmYlQyWeJg4rqkb5QtZlhfMWZ7VSY60++QuDeW0lzXWqEcSxhASSECGjhjIqsBClXSPFRIrOYx7+YcefJJdMrjIYORZQhQrJ8YP/we/ZmoWpSTcpGAO6X2z7YwwI7ALNum1/H9t28wTwPwNXWttfbQCzn6TX21r4COjfBi6u25q8B1zuAENPumRIjuSnEgoF4P2MvikHDN4CvWvu3FrnOH0AMjSr5Rvg4BCIFCl73ePdPZ1z+/dOa34/n9lyuQWiUawAAA80aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjEwZTExZGUyLTA1MjUtNDAzYi05NmFiLWM4NjFkNmYxOWEwYSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MGEwOTc1MC1iZDZlLTQxMTYtODExZS01MDdmZGQ5MjczNmYiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyYzQ1M2QzNC02YjkyLTQ0MmMtOWFjYi0xODI1ZjI3NDQ2MWEiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY3MjMxNjM0MjAyMzA4OCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjMyIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMjoxMjoyOVQxMzoxOTowMCswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjI6MTI6MjlUMTM6MTk6MDArMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiM2YwMzU2NS0xNWQzLTQ4MGEtOGUxYi1kMmZlZTM3NDZmMmMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDItMTFUMTM6MjU6MjkiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGNkOTA2MjMtOTYzMi00OGY2LWI3NjYtMzk3NTE1NTY5Nzg2IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA3LTI2VDEwOjM5OjM4Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmE4NDgwNTk0LWViYWQtNGE1OC04MmYwLTEyNDJiMzcyODdmZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0xMi0yOVQxMzoxOTowMiIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5nBDHtAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5gwdDBMC7bHppgAAAIRJREFUOMtjYBgFtAWxE46Xx044Xo5PDSMuiei+Y1EMjAxLGBgYGBj+M8QsLbJaRrQBMf3HPf8z/N/AwMDABhX6xcjAGLCk0HI7QQOi+o4ZMzIyHGRgYOBGk/r6/z+D/bIiq7M4DYjqO6bMyMhwlIGBQRyHz17+/89gvazI6u5oChlMAABStSJbN0BoiAAAAABJRU5ErkJggg"},{ name : "haxeui-core/locale/de/formats.properties", data : "Zm9ybWF0cy5kYXRlLnNob3J0PSVkLiVtLiVZCmZvcm1hdHMuZGVjaW1hbC5zZXBhcmF0b3I9LAo"},{ name : "__ASSET__:bitmap_funkin_ui_transition_preload_TouchHereToPlayImage", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQklvQUFBT0RDQVlBQUFEVHVlcXpBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFNQUEwbEVRVlI0bk96OWUzQWppWjBmZUg0VG1jaEVKak1MV1V3VVFLQ0JKbFJnZzhYcWFxbGFhclhrbVc3UGpzYldhRmVlR1kzc0NiOXVOREU3NGJQM2RQdkh4ZTdlN2tYYzdUOTM0WFA0WWg5M0RzVjViVy9ZTTM3cytySDJlUHc0M1l4SHRrTzlOeXE1WlZWTDFjVXVkckVGRnRGQUVVVlVnWldvQkRPWlNkd2ZaTEpCTWhQSXhQdngrMFIwZEJYeHlxb2lRT1FYdndmVGJyZEJDSmx0RE1PbzdxL2I3WGFqNCt0eEFEeUFLSUQ5ZHJ0dFhiamRTd0JZQUIrZjN0YnB1T3lhKzBzQVQ5cjBZa0VJSVlRUVFnZ2hjNCtoY3o5Q3BoL0RNREVBS29EWTZaZGlBRllBdkFyZ2p3T0k0eVFNQW9BbWdBZ0E4ZlJyR1FBMmdFTUFUd0VzbmY0bjRTUWtBZ0FMZ0huNi82ZW5qeVdlM3M4UmdCcUEzd0h3TG9EbkFRNzVFRURqOVA5bnYyKzMyNGUrdHlDRUVFSUlJWVFRTW5FVUZCRXlBeGlHV1FGd0d5ZmgwQmNBL0N5QUhBQUJuNFE5NDNBTVlBZUEwZU42endDVWNCSVc0ZlQvMzJxMzI0OUhkV0NFRUVJSUlZUVFRZ1pIUVJFaFU0aGhHQjZBakpQS0lRN0FkUUIvRHNBZkE2RGdwQjJzTHl6TFFoUkZBSUFnQ09CNUhqelBReENFcyt1SW9naU80L3IvQTNRd1RST1daWmtBSEFESHVxNS9DQUNHWWV3NGp0TzBMS3R1V1ZhOTR5YmZCVlVrRVVJSUlZUVFRc2hFVUZCRXlCUmlHR1lad0JwT0tvaGtBSDhaSnkxa2dRTWludWVocWlwWWxvV2lLQUJ3OXY5cGRCb28yWTdqSE91NlhqTU00MFBIY1o2MVdxMEtxQ0tKRUVJSUlZUVFRc2FDZ2lKQ3BoRERNQmtBYndDNEFlRHJPR2szODlVWkNxbXFDa21TeG5HWVkyR2FKblJkcjF1VzlkaXlyTWU2cnQrekxPc3hnQmNBL3RucDFhamlpQkJDQ0NHRUVFS0dnSUlpUXFZUXd6QXZBM2dMd1A4Skp3T3J6MVVTelhNd0ZJUmhHS2hVS245d2NIRHdnOU12L1FzQWQ2bmlpQkJDQ0NHRUVFSUdRMEVSSVZPa1k3dlpEUUQvTFU0R1dKK0ZSTElzUTFWVnBGS3BpUnpmdExGdEc0MUc0NkJXcS8yZzFXcjlHd0JQQUh3YlZHRkVDQ0dFRUVJSUlYMmhvSWlRS2RLeDNlelBBL2dsQUF6UDgwaW4wMUFVNWR6QWFYS2VZUmlvMVdyZmF6UWFtNDdqZkF5YWFVUUlJWVFRUWdnaG9WRlFSTWdVNk5oeWRoM0FUd1A0UzVxbXhkTHBOSVZESWRtMmpXcTF1bG12MS8rNTR6Z1BBZnh6bkZRWU5kdnR0alhod3lPRUVFSUlJWVNRcVVaQkVTRlRvR1BMMlovUk5PMVhOVTFibnVZTlpiUEFORTJVU3FYZmJqYWJId0Q0SndBZXR0dnRwNU0rTGtJSUlZUVFRZ2laWmhRVUVUSkJIWlZFdjhiei9LZnorZnlmVWhRbE51bmptaWQ3ZTN1UHF0WHEvOWR4bkUwQXZ3bXFMQ0tFRUVJSUlZUVFYeFFVRVRKQnA1VkVmMDRVeGM4Vmk4VmY0VGd1MU8xMVhjZmUzaDRjeDBHejJSek5RUTZaTE1zUUJBR3lMQ09SU0l6bE1RM0R3TmJXMWw5M0hPZHZnQ3FMQ0NHRUVFSUlJY1FYQlVXRVRFQm5KWkVzeTM5NGZYMzlhMkh2WTI5dkQrVnllZWpITms0OHo0UG4rYlBnU0pJa1NKSTBrc2ZhMzk5L3NyT3o4ejhDK0N2dGRyc3lrZ2NoaEJCQ0NDR0VrQmtYcm55QkVESXNNb0ExbnVjL1hTZ1V2dGJQSGVpNlB0d2ptZ0RMc21CWkZwck5KdXIxT2dDQVpWbG9tZ1pGVWFDcTZ0QWVLNUZJWExNczZ4ZXExZXBQQVB5MW9kMHhJWVFRUWdnaGhNd1JDb29JbVl5dkF5amtjcmsvSHJiZHpIVndjRERjSTVvU2p1T2dWcXVoVnF1QjUzbmtjcm1oQlViSlpQTFZlcjJlSGNxZEVVSUlJWVFRUXNnY29xQ0lrREZqR09icm9paXVGd3FGLzF3UWhMN3VZeDZxaVlLd0xBdmIyOXVRWlJuNWZCNzkvbjI1T0k2RHFxcHZEK253Q0NHRUVFSUlJV1R1UkNaOUFJUXNva0ZDSXVDa1BXdVJOSnROYkc1dXdqQ01nZTlMVmRVM0dJYjUraEFPaXhCQ0NDR0VFRUxtRGdWRmhJeVpMTXVmSGJReVJwSWtpS0k0cENPYURZN2pZR3RyQzdadEQzUS9QTS9MUXpva1FnZ2hoQkJDQ0prN0ZCUVJNcU51M3J5SmpZME5aTFBaaGFrd2Nod0gxV3Axb1B1d0xLczVwTU1oaEJCQ0NDR0VrTGxEUVJFaE04d3dERlNyVlRpT00rbERHWnRhclFiVE5QdStmYVBSK0dHNzNmN0hRendrUWdnaGhCQkNDSmtiTk15YWtERnJOcHYvdmxLcGZGZFYxYmNsU2VyN2Z2YjI5bEF1bHdOZFY1WlB1cTNjZGZSaHVTdnJPeXVYV0piRklNZHZHQWJxOVRwYXJWYm8yOVpxTmVSeXVYNGY4M3VoYjBnSUlZUVFRZ2doQzRLQ0lrTEdyTjF1LzJPR1liaHF0Zm8zV0phOW9hcnFWMVZWZlVWVjFjQkRoMHFsRXVyMWV0ZnJ5TEtNVkNwMWFiVzhhWnFvMVdxbzErdUJLcEZrV1VhaFVBREhEZmZsUWxFVUtJcUM3ZTN0ME9GVlAwT3REY1BBMXRiV0E4ZHhGbU5sSENHRUVFSUlJWVQwZ1dtMzI1TStCa0lXRnNNd0t3QnVBL2dWbG1VenFxcmVVbFUxbzZxcWIxdm8vdjQrZG5aMmV0NDN5N0lvRm91K1ZUKzJiYU5XcTZGV3EvVU1qRFJOUXphYkhYcFk1QjVIcVZUQ3djRkJxTnQ5N25PZkMvMVlwVkpwdjE2di8yMEFmeGxBbzkxdUg0YStFMElJSVlRUVFnaVpZeFFVRVRKQkRNUEVBS2dBcmdONEE4Q3Z5TEw4Nlh3K2Y4VnJNNXBoR05qYzNBeDgveXpMbm0xSGMxdkYzUCtMb2dpTzQyRGJOcXJWS21xMVd0ZjdFa1VSeFdKeEpHRVJjQktBbGN2bHdQT1dOalkyK21wOSsvR1BmL3g3bG1YOXR3RHV0dHZ0eDZIdmdCQkNDQ0dFRUVMbUdBVkZoRXdCdDdJb204Myt0VlFxNVRsOHg3WnQzTHQzYjZpRHEzbWVCOC96VUJRRkFOQm9OTHJPREJwMVdHVGJOc3JsY3MrMk9xQjN4WlFmWGRldHJhMnR2d2JndjJtMzI2WCtqcFFRUWdnaGhCQkM1aE50UFNOa09qUUEzTFVzcStSM2hXYXpPZlR0WnBabG9kbHNvbHF0b2xxdDlwd1YxR3Exc0xXMUJkdTJoM29jTG83amtNL25zYnE2MnZPNmp1TmdlM3M3OUxFb2lzS3pMTHZVN3pFU1FnZ2hoQkJDeUR5am9JaVFLZEJ1dHcvYjdmYmpXcTMyZC9iMjlyYThycU9xS29yRjRsa3IyU2dFQ2FKR0hSWUJRQ0tSd01iR3hya3RhMTRzeThMV2x1ZGZWMWVxcXI0T0lOYm40UkZDQ0NHRUVFTEkzS0xXTTBLbUNNTXdHUUQvYVR3ZS81bGNMdmVIdk9ZVTlXS2FKaXpMZ3VNNFo5dkJkRjJIWlZtaHQ0dDFJOHN5MXRmWGgzWi9YazQzbGZVTXNMTFpMRktwVk9EN3JWUXFlOVZxOVd2dGR2dDdneDRqSVlRUVFnZ2hoTXdUQ29vSW1TSU13eXdEV0FQd3l3Qmk4WGo4cDFPcDFPdUtvZ3hsS0pCdDIyaTFXakFNNDl6Lys1Vk1KcEhMZVk1VUdwb2dZUkhMc3RqWTJFRFFZSTJDSWtJSUlZUVFRZ2p4UmtFUklWT0VZUmdlZ0l5VHRpZ09KOXZRL2hOUkZGL0paREszVlZWbGh2MllwbW1pMVdwaGYzOC85SXA2b1AvdFkyRThlUEFBeldhejYzVTBUVU0rbnc5MGY3dTd1Ky9YYXJVLzBXNjNQeGpDNFJGQ0NDR0VFRUxJM0JqTjZpSkNTRi9hN2JZRjRLbjdlNFpoTEFCL3M5VnFyV3h2YjMrTzUvblhrOG5rRjFLcDFOQ2V1NElnUUJBRXFLcDZGaG8xR28xQW04Y0FZSHQ3R3hzYkd5UGJoQlpVdlY1SE5wc0ZjREpycVZ0MVVhUFIrQ0dBd3pFZEdpR0VFRUlJSVlUTURBcUtDSmx1RFFCM2NWSmg5RzhzeTRxVnkrV3ZsY3ZsRlZFVWYwcVNwRFZSRkZWSmtoaDN4ZjBnT2tPamREcU5yYTJ0bm5PTkxNdEN0Vm9kZVF0YUVJMUdBOERKTUd3L2htSEFzcXpHZUk2SUVFSUlJWVFRUW1ZTEJVV0VUTEYydTMwSTRQR0ZMLzhsOXhjTXc2d0F1QTNncXdBZ3kvS3JraVM5b2loS1VoUkZ2cDloMkM1QkVQRGFhNjlCMTNWVUtwV3VyVisxV2czSlpETHdqS0JSYWJWYVBiZkMxV3ExSCtNa2dLT0tJa0lJSVlRUVFnaTVnR1lVRVRMREdJYUpBVkR4eWFwMzkvZC9GQUI0bnYrVW9paGZrR1U1cTZycWxVSGF3M1JkUjZsVThxMHdpc2ZqV0Z0Yjg3MTlsSW1BajBUT2ZtOGRIK09vZlJ6b3NlL2Z2eDlvNkRiUDgzanR0ZGQ4THpkTkUvZnUzZnV2QWZ4MUFJM1RJSTRRUWdnaGhCQkN5Q21xS0NKa2h2bFVIQUhBOTRDVGlxTjZ2WDY3WHEvLzhYcTlmbU45ZmYydGZoOUxVUlM4OXRwcmVQandvZWZRNjRPREF4aUdjV213ZFFRTVVyeUlhM3pzMG0xYWpvMDlxNFhuemxIWHh3NjZtUzJkVG5lOXZGcXRmZy9BazNhNzdmVjNSZ2doaEJCQ0NDRUxMOUw3S29TUUdkYkF5WXlqLzZIWmJQNWdkM2QzNEMxZjNXWVJYUnlBSFFHRHZDaDdoa1FBSUxJY2NyRWx4Q0tzNzMzcXVoN291RVJSN0RxYnlEUk4xT3YxZHdGOE85QWRFa0lJSVlRUVFzZ0Nvb29pUXVhWVczRjB1ajN0NzlWcU5TaUtrbFZWVmU3M1BnVkJnS1pwbmx2UmFyVWFYc20rakpTNEJKWmh3SUtCeUhaL21XR1pDQXFpZ3MwWEJ6akcrVlpZMjdaUktwVUNIVmV2WWRxbFV1a1BFSEkya1Y5cm55ekwzMVFVNWRXZzl6TUp1cTYvMzJxMXFvN2o2QUNPQVB3MlB2bXpINEphN3dnaGhCQkNDQ0VlS0NnaVpERTBBVHdFOEhkS3BkSzFqWTJOUHpQSTRPbDBPdTBaRkFIQWkvcFR4UE5YUTkwZnkwUVE1Nko0WnArZmY5UnRKbEtuZUR5T2JsdmZHbzNHVWJQWi9CNkFiK0VrTEFwS0JmQk5BQ3JMc2t1aUtPWWxTWHBGVmRVVlJWR20vZlh6ZGVDa2trclg5ZWZOWnZOUDZycCs3M1RqV3dNbmZ4ZlVna2NJSVlRUVFnZzVaOXBQZEFnaFE5QnV0eTBBVHhtRzRSM0grYWhhcmY0NG44LzdUMzN1UVJBRXhPTnh6MWxGRHg5WDhIcStFUG8rK1F2dFovdjcrNTczZnhITHNzam44NzZYMjdhTjNkM2RFb0RmdVRpYnlLTmk2QmNBTEFHSXlySmNUS2ZUcjB1U3RDcUtvanpwalc3OUVnUUJnaUJjU1NRU3R3SGNOazBUalVialkxM1gzMlFZNXAzVHEvMGV6bGRiVWNVUklZUVFRZ2doQzRxQ0lrSVdTd1BBdCtyMXVxVnAyaXVLb25nUER3cEFWVlhQSUtkcERwNHRHSWFCY3JuYzgzcHVTTlJ0bTF1NVhJYmxYNWIwWndCOGltWFpsMVJWM1pCbCtib2tTY21MQTdubmlTQUlTS1ZTTDZWU3FaY0FmRm5YZGJ0ZXIvK0dydXZ2V1piMTZQUnEvd0luczYybzRvZ1FRZ2doaEpBRlEwRVJXV2dNdzN6OTR0ZDRuay96UEg5dWZaWWtTUnNzeTZwak83Q0E2dlg2UDdZc3E5cHV0Lzl4a090M3pDejYyNVZLNWZQcjYrdS8wTzlqZDJ2MXFqZDFhTEwvNVY2Yzl2SFpyMHVsRWh6SDZYbWJZckY0YWN0YUoxM1gzUmE1SXdDM0dZWjVHd0JZbGxWa1dYNGxtODNlVkJTbE9NL0JVQytLb25DS29xd0NXRFVNQS9WNmZhZGVyNy9zT002N0RNUDg3ZE9yVVlVUklZUVFRZ2doQzRKcHQ5dTlyMFhJRE9rTWYxaVd2U3FLNHFjQVFCQ0VUL0U4dndLY0JUOGlBSWlpcUhhclNKbDJqVWFqcXV2Nkg5VHI5WDlwMi9iL0dPUTJETVBrQWZ4bmhVTGhOMVJWRmZ0OTdQdjM3M3V1cm45ci9WVzhzcElKZFYvYnJlZDQ0ZGpZM2QxRnJWYnJlZjNWMWRXdVc4NDZqNC9uK1phcXFwYWlLS0lzeS93cy8zdVBpNjdyaC9WNi9lN3BwcmdHZ0c5ZGJOMGpoQkJDQ0NHRXpCOEtpc2pNNlF5Q1pGbitMSEFTQXAwT0dyNEp6SDc0MDQvOS9mM05lcjMrandHZzFXcjl4SEdjWndEZ1ZXMTBHaFQ5Qnp6UC80WFhYbnZ0Qy8wK1pxbFU4aHhxZmZPbGwvR0Z0ZlZROTNXditReTEvU2ZZMmRucGVkMGdJZEgrL2o0Y3g0R3FxaGpGZkNIVE5NOEdiZXU2ZnZiMXpsK0hJUWdDZUo0SEFQQThEMEVRd0xKczE0cXBjYkJ0Ry9WNi9lTkdvL0g5WnJQNWZRQXZBUHl6MDR1cDBvZ1FRZ2doaEpBNVEwRVJtV3B1S09RR1FwSWtiWWlpdUNGSjBzYWtUNkNublczYmFMVmFEY013N3RmcjlYL1phclUyZ1pQZ3lBMktBUHphNnVycVR5Y1NpV2cvaitFWEZLM0VyK0kvdlAxRzRQdHBPa2U0VjkvRDF0Wld6NWF6SUNIUk1PaTZEc2R4WUJqRzJmOEJvTmxzanZ5eHZjaXlmQlltS1lvQ1VSUzd6bVlhQmNNd1VLdlY3dGJyZFhjSTlyOEFjSmNxalFnaGhCQkNDSmtmRkJTUnFjTngzRy9Jc3Z5Nm9paXZTNUowVTFFVWRkTEhOQTlPdDEzOVFiVmEvWjhkeHhFQXRBRDhsQ3pMWDExZlg3L1N6MzNldlh2WE05Z0pHeFNWWGh6Z2UrLy8yTE9OemVVT3JsWlZ0WjlEN2FuUmFNQXdERFFhamE3SE1VMVlsb1VvaXBBa0NUelBqNng2NmlMYnRsR3RWbmZxOWZwN2p1TzhDNEJtR1JGQ0NDR0VFREluS0NnaUUrZFdEY1hqOFM5SmtyU2hLTXBuS1J3YUhkdTJVU3FWL3RYQndVRURBQS9ncldLeHVOeHRPTFdYL2YzOXJtMWl2LzR6ZnpUUS9UanRZL3p6SC8xN1BHMDg4NzBPeTdJb0ZBcGRCMmozbzlGb25QMFhaSGoyck5BMERhcXFndWY1a2JhdTJiYU5XcTMyazNxOS9yOWFsdFVBVlJnUlFnZ2hoQkF5OHhacmlBdVpDbTR3eFBOOFdsR1VueW9VQ2orcnFtcTYxKzNJY0hBY2gwd204MGVhemViM0hNZUpBRUM5WGc4ZHduaTFuUFhqdXgrODN6VWtBbnB2Tnd0RDEzWHM3ZTJoMVdxZHpSaWFOL1Y2L2V6Zng2MDBjb09qWVZZY25YNHZmU3FaVEg2cVZxdFZhN1dhdXkzdE53SFlPS2t3YXJiYjdmbjhpeWFFRUVJSUlXUU9VVkJFeG9aaG1LL3pQSjlPSnBOZjBqVHQ2elJqYURJTXc4RFcxdGEvZGh6blpRQlhBY2oxZWgzWmJEYnd6QnZUTkFlZTFXUGFSM2puZy9meHFQNms2L1hTNmZUQUlaRmJOVFNzY0d1V1dKYUZXcTEydGtsT2x1V3ppcU5oelRnNkRZelNtcWI5WXIxZWY2MVdxK1VjeDZrRCtDY0FIZ0o0T3BRSElvUVFRZ2doaEl3Y3RaNlJrV0lZNXVzc3kxNVZWZlZMcXFwUzVkQUVtYWFKZXIzK3ZXcTEraERBTFFBcnAvOEJDRGNrdWxLcG9GcXQrbDdPc3h6KzdGcy82MzhzOWhHK2ZmZGRQSDNSUFd6U05BMzVmRDdRTVYxNmpKT1pUS2pYNnpNemMyamMwdWswVkZVZGVudWFhWm9vbFVyL3R0bHMzZ1h3TVU1bUdOSHNJa0lJSVlRUVFtWUFWUlNSb2V0c0xWdGRYZjFtSXBIWW1QUXhFVURYOWMxNnZmNi9BdmdDVGdJaXRmUHlNRzFZdlNwemxtWC9Oclo2VThkMzd0MUYwK3llR1lpaWlHdzJHL2lZWExxdW4ydTlJdjZxMVNxcTFTcEVVVVF5bVlTaUtFTnBUUk1FQWV2cjZ6OWpHTWJQbEVxbGY5NXF0YTRBK0JZQW1sMUVDQ0dFRUVMSWxLT0tJakkwblVPcE01bk1ONm0xYlBxY2JxdDZVcXZWcmwyOExHaEZVYVBSd1BiMmR0ZnIrRzA5dS92eERuNzBrKzJlZzZORlVVU3hXQXpWR3JXL3Y0OXF0VHJ4dVVPaUtJSmxXUUE0VzJjL0tGM1hBWnlFZWFQKzg3bXRhVUdyeTRMWTI5dmJQZDIyOXhEQVB3Zk5MaUtFRUVJSUlXUnFVVkJFQnVZR1JNbGs4cyttMCttdkQydnV5YkRadG8xV3EzVUlJS0xyK2dzQWNCekhOZ3pER1BleENJSVE0NGVSSVBpekFEUVZSVWtyaW5JcHNUTU1BNlZTNlZ4TDFzYkdScUFXcEZLcDFMTmE1L2JxZGJ5ZUw1ejcydS9mdTl0ekhoRVFMaVN5YlJ1TlJtTnNBWkVzeXdCd052aGJrcVN6RmZYai9MNDNEQU9PNDhBd0RPaTZEc3V5aHQ1ZXgvTThrc2trVkZVZFNwWFJhVHZhYnplYnpROXdPcnVvM1c3VDdDSkNDQ0dFRUVLbURBVkZwRy91L0tGa012bG5rc25rbDZZaElOSjF2UWtBaG1Ic3RGcXR4NlpwUG5jY1IydTFXc2VuVjFGeFlUYlBuSG9NNEQwQUFzL3pZaktaekdxYTl0TEZmNk85dlQyVXkyWHdQSS9YWG51dDU1M2F0bzE3OSs3MXJBajYwcXVmd1dvaUNlQmtIdEYzN3IySHh3ZmRONXNCUUR3ZVJ6NmZEeFM2TkJvTjdPN3VqaVFnNG5rZW9paENraVJJa2dSUkZJZTZMV3dVVG9OUTZMb09YZGNISGpiZVNkTTBKSlBKb2N3eTJ0dmJlMVF1bC84SmFIWVJJWVFRUWdnaFU0bUNJaEphWjBDVXlXUytOSWxqMEhYOTBEQ01wbVZaYmNNd0RNZHhqbHV0bGxzWjFGbTJFc05KT0JUeitmMjhPZ1RRT1AwL0FFUlpsalZWVmIycWFacXFLQXJqWHJIUmFBQUFWRlh0ZWFmNysvdlkyZG5wZWIwLzhZVzNvTVJFNkljdGZQdnV1ejNuRVFFbllVU1F6V3RlMVZDRGttWDVMQkFhNWphd1NYTkRvM3E5UHBSQVRaWmw1UFA1Z1VNend6Q3d2YjM5RHkzTGVnRGdXKzEybTJZWEVVSUlJWVFRTWlVb0tDS0JNUXp6ZFZFVU41TEo1SjlWVlhWalhDZlRwOXU2M3Jjc2l6RU13MnkxV2dkWW5NcWdrZUI1SG9xaWhLNFNlZmp3SVE0T0RycGVaM2xKeGkrOThZY0NENjBHZ20wM00wMFR1N3U3UFI4L0NKWmxvYW9xTkUwYmU5dllwSmltaVZxdGhucTkzck1pckJkTjA1Qk9wd2NLakd6YlJxbFUrbmNIQndmL0RNQnZBckJCczRzSUlZUVFRZ2laT0FxS1NFOXVRSlRKWkw0NWp2WDJqVWFqWVJoR1hkZDFzOVZxc1k3ajJBQ2lBSTZ4ZUpWQkk4ZnpQRlJWUlRLWjdIcmliOXMyM252dnZaNzNkL09sbDdHMmtzRzM3NzRMeTdGN1hyL1hFTzNUQWR3REJ4eHVLOW13V3FobW1hN3JxRlFxQTdlbnBkTnBKSlBKZ1lLMi9mMzkvWjJkbmIrRGs1Q0laaGNSUWdnaGhCQXlZUlFVRVYrZEZVU2pYSEZ2R0FZYWpjYjd1cTQvYnphYjV1bVhUUUNmQVZVTWpaVW9pdEEwRFlxaVhBcFRncmFkdmJYK0tyNy84RUhQa0lobFdSUUtoYlBCMEY1MFhVZXBWQnFvYlVyVHRMTS9Fem5QdG0zVWFqVlVxOVcrNzRQbmVlVHorWUgrZmczRHdOYlcxbTg3amxNQzhEY0JsRUdWUllRUVFnZ2hoRXdFQlVYa0VqY2cwalR0UDBxbFVqODE3UHUzYlJ2MWVuMm4xV3FoWHErN0pRMVVNVFJsNHZFNFZGV0ZvaWdRQkNGUTJ4a0E4Q3pYTXlRU1JSSDVmTDVyWmMvdTdpNXF0ZHE1cjdrdFk3MjJyc215akV3bVErRlFRS1pwUXRmMWdiYkhKWk5KNUhLNWdZNWhlM3Y3OTF1dDFvOEIvRStneWlKQ0NDR0VFRUltZ29LaUJjY3dUR2NnOHhXZTV6TzVYTzQvVVZYVnZ4ZW9ENmRydkQrdTFXcGx5N0phb0JsRE0wVVV4YUVOanhaRkVjVmlzV2U3MGc5KzhJT3pYN3VyMmxtV1JibGM5bTFCRTBVUnVWeU9BcUlCN08zdG9WcXQ5dFhtRjJacm5SZmJ0ckc5dmYxT3M5bDhGMVJaUkFnaGhCQkN5RVJRVUxUZ0dJWlpBZkJObG1WZlNpYVRYMHdtazBNYlVtM2JOcHJOcHQ1b05KNDJHZzNIY1J3QndOSHB4VlF4dElDQ2hrUUFjUGZ1WFdpYUJsVlZJWW9pU3FXU2IwVVR5N0xJWnJOZFp4MlI0QWFaWVNTS0lncUZ3a0NEcmt1bDBvL3E5ZnAzUUpWRmhCQkNDQ0dFakIwRlJRdUdZUmdlZ0l5VGdJWUQ4R3VhcHYxS05wdDliVmdCa1dFWXFOVnFIelVhamNlTzQwaWd5cUc1RnJUYUtFeElCSnkwSWdtQ2dQMzlmZDhxSXBabGtVd21CeDZvVEx4MSs3dnZodWQ1Ykd4c0RQUnZVcWxVU3RWcTliZEJsVVdFRUVJSUlZU01GUVZGQzRaaG1HVUFhd0IrV1JURlFpNlgrd1ZGVVFhdTZyRnRHNDFHbzFLcjFUNW90Vm9wQU5jQUdKamp5aUdXWlNHSzRxUVBJNVJXcXpYd2F2UitoQTJKWE4wR2FLZlRhV2lhTmxEbEN1bk5ORTNzN3U0R21rL1ZTWlpsRkFxRlFUZWlQZG5aMmZtN29Nb2lRZ2doaEJCQ3hvYUNvZ1hSTVl2b1YxbVdMYWJUNlMrblVxbVhCNzFmMHpSUnE5VzI2dlg2dnVNNEZnYllWc2J6UEhpZWgrTTRRNXVIYzVFb2ltQlpGb0lnOUJ5STdIVnNraVJCRkVVSWdnQ1daV2QyemZycHBqbm91ajd3aXZSZVdKYkZyVnUzaGhZUzhUeVBRcUV3czMvM3M2clJhS0JVS29VS0d2c05DRHZ0NysvdjcrenMvQjJjVmhheExOdTBiWnNxaXdnaGhCQkNDQmtSQ29vV2hEdUxTSmJseitkeXVaOGY5Q1JiMTNWN2IyOXY3K0RnNEFXQUpmUTVlMGdVUlNpS0FwWmxoeDVheUxKOEx0aHhCeHhYS3BXZTY4RGQ0MUlVNWV6Mjg4bzBUVFFhamI0SEdIZkRzaXlLeFdMb1VFZlhkV3h0YlYzNmVqcWRwamF6Q2JKdHUrdXNLQy9EbUZsRWxVV0VFRUlJSVlTTUR3VkZjK3JDTEtJL0JpQ1ZUcWQvUFpQSmZHcVErOTNmMzBlOVhoOG8wQkZGRVpxbVFWRVU2THFPV3EzVzkwcHVGOC96WjZHT0pFbWVXNjhNdzhEMjlyYm5ZN0VzQzFtV2tVZ2tJTXZ5d2dZUmpVWURsVXBsS0JWZC9ZWkV0bTFqYzNQejNMOVR2L2RGUmlOSTJOcHBHUDkrRnl1TFJGRnNHb1pCbFVXRUVFSUlJWVFNR1FWRmMrcmlMS0o4UHY4cmc1eWs2YnFPM2QzZHZnTUVudWVoYVJvMFRRTUFWS3ZWVUsxZkY3bUJrQ3pMVUZXMVo3Q3p0N2VIY3Juc2VWekpaQkthcGkxc09PUmwwTUJva0dEZzRyL1ZNQVlqaytIVGRSM2IyOXVCcTlDR0VSYnQ3dTdlcjlWcXZ3dXFMQ0tFRUVJSUlXUmtLQ2lhTXgyVlJGa0F2NTVNSnIrY3krVnU5bnQvZzZ6Slpsa1dxcW9pbVV4Q2tpVHM3KytqMFdpRUhvcnJpc2ZqVUZVVmlxSUVibU94YlJ2YjI5dVhqbDhVUlNTVHlVQWgweUo3OE9CQlgvLzJ4V0xSczZvcmlNNXFGWjduVVN3VzU3cjFiNWJadG8ydHJhM0FnZUtRd3FJUGFyWGF0MEhiMEFnaGhCQkNDQmtKQ29ybXpHa2wwWjlqV2JhUVRxZC92dCtCMWFacDlsMzE0MWJwcEZJcEFDZnRhdFZxTlhSN0djL3pVRlVWbXFiMWRXTHBkUklyaWlJeW1ReFVWUTE5ZjR2SXRtMjBXcTNRWWFFb2lyaDVzNzk4MHEwb0dzWWdaREllcFZJcDhHdkZ4YkRJTk0zUVFXQ3BWUHBSdlY3L0RxaXlpQkJDQ0NHRWtLR2pvR2hPZEc0MTQzbisxVUtoOEd2OWhpdTFXaTNVL0JHWExNdkk1WEpuSjRENysvdW8xV3FoMnBmYytVV3FxZzVVUldLYUpyYTN0ODhlT3g2UEk1Vks5VjNsUWs3YTBYWjNkd01IZnNsa0VybGNMdlRqdU9HVUtJb1VFczJRL2YxOWxNdmxRSzFvbldHUmJkdG9OcHVodzl2NzkrLy82MWFyOVI2b3NvZ1FRZ2doaEpDaG9xQm9UblJ1TlNzVUNqL2Z6d20ycnVzb2xVcWhLbjh1dHBjQkp4VWhZUVpVdTVWRHlXUnlLQzFHdG0zajNyMTdjQnpuYlA0UURVRWVEamRJck5mcmdmNTlzOW5zV1dYWnZJaUFnY2l5QUFDWmpZYSt2WFhzd0dvZm4vNzZHRWVudjU0SGhtRmdhMnNyY0ZoMDY5WXRjQndId3pBQUlOVHoxRFJOYkc1dS9yYmpPQ1ZRWlJFaGhCQkNDQ0ZEUTBIUmpMcXcxWXdEOEd1YXB2MUtQcDkvTGV4OTJiYU5jcmtjcXMyTVpkbXpFTVlOZDhLMG1MRXNlemJjZXBnaGp0dHVwaWpLMElJbmNwbHQyNmhXcTZqVmFsMnYxeGtHektJbGxnUFBSTUJIMkhPL0hpYnIyTUV6MjBMVE9VTExjWENNMlg1TjdyWmQ4S0xPOXNMOS9YMUlraFRxOWNBd0RHeHVidjVQQVA1bkFPKzIyKzFLLzBkT0NDR0VFRUlJQVNnb21sa2RXODFXV0piOVk5bHM5cGNUaVVRaTdQMzBzN2tvblU2ZjJ4SVdwaVVwSG84amtVaU1iRWFRYVpvQVFBSFJtQVRaaGhlUHg3RzJ0amJHbytwZmxJa2d6a1Z4aGVNaFJsaXdUR1RzeDlCeWJEUWRHeStjSXpRZGV5YURvekJEcmpWTlF6NmZCM0F5NjZpek9qR0kvZjM5WnpzN083OEo0TDlydDl1UCtqeGtRZ2doaEJCQ3lDa0tpbWJNeGExbUxNdm04L244bDFWVkRWV1dFN2FLaUdWWlpMUFpjMXZDZ29RRXdFbHJtVnM5UkFIT2ZLcFVLcWpWYXI2QjQ4Ykd4bFMyLzBYQW5BVkRjWTZmOU9GNGVucGs0cmx0NGJsek5PbERDY1cyYlpSS3BVQmJEdFBwTkRLWkRHemJ4dWJtSmdxRlFxanZsMUtwOU9ONnZmNFBBZngxQUkxMnUzM1kvNUVUUWdnaGhCQ3kyQ2dvbWpFZGxVUi9tdWY1VndxRndsZkRub0FiaG9GU3FSVG8wMzYzeFN5WlRKNEZSRUUzb3RFSytzWGlGejZ5TEl2YnQyOVA1cUI4dUpWRFZ6a0JJanNiMzV0Tyt4Z0g5aEdlMlNaZU9QYWtEeWV3b0J2UkNvVUNWRlU5bTNHMnNiRVIrSFhqTkdENmw1WmwvWHNBMzJxMzI0OEhQR3hDQ0NHRUVFSVdGZ1ZGTStKaUpaRW9pcDhwRm9zL0d6YUFDYk9aU05NMHBOUHBzeW9nZDVCeHQ4b1I0S1RWS0pQSlRHVUZDUm05aTYySTA5UjZ0c1J5U1BGaVgwT29wMG5UT2NLekl4UFA3TmxZOGhVa0xHSlpGaHNiR3hBRUFROGVQQUFBcksrdkIzNk0wM2xGZndQQS93RGdJOUFXTkVJSUlZUVFRdnBDUWRHTTZLd2tFa1h4dFdLeCtITmhRcUtndzRlQnkydnVnWk9ULzFLcDFETWd5dVZ5MUY1R1lOczI2dlU2SE1jQnovUG9ZM3pXMEVUQVlEbktJeEdORFgwUTlhUTU3V1BzSDVuWXMzcFhCMDVha0xESURSWGR6WVhKWkJLWlRDYndZMVFxbFZLMVd2Mm5BUDRlYUFzYUlZUVFRZ2doZmFHZ2FNcGRyQ1NLeCtOdjVmUDVOOEtHUkVGbWhiaURxanZYbWV1NmprcWxnbWF6NlhzYmQ3VTlWUkNSYVJKbElsaU9Da2hFaFlrTXBSNG5OekI2WWgxTzlmRHJJR0ZSTnB0RktwVkNvOUhBOXZaMjZQbFc5Ky9mLzFldFZ1dGRBSCtGdHFBUlFnZ2hoQkFTSGdWRlU2Nnpra2pUdEMvbDgvbFBoN2w5MEhsRXNpd2puOCtmYXpQclZZRjBzVFdOa0drUUFZTnJmR3doQXFLTHJHTUhlMVpycWx2U2dvUkZ4V0lSaXFKZ2IyOFA5WG9keFdJeDhMeWkweGEwL3g2MEJZMFFRZ2doaEpDK1VGQTBwUzVXRW1tYTlrZnkrZnl0TVBlaDZ6cTJ0N2U3dG92NVZSR1ZTaVhmZGZjWFF5VkNwa1dLRjNHVjQrZXV4U3lzbG1PamROakVVZnQ0MG9maXFWZFl4TElzYnQyNkJZN2o4T0RCQTBpU2hGd3VGL2orSzVYS1Q2clY2dDhFYlVFamhCQkNDQ0VrTkFxS3B0U2dsVVQ3Ky92WTJkbnBlaDFSRkZFb0ZNNENuMTdiekVSUlJDYVRnYXFxWVE2RmtKRmJZam5raEtXRkQ0Z3VlbUlkb21vWmt6NE1UNzNDSWxtV3NiNis3bTQwUXo2Zmg2SW9nZS8veHovKzhiKzBMT3V2QUxoTFc5QUlJWVFRUWdnSmpvS2lLVE9NU3FJZ0lWRXltVVE2blQ1cjU5amIyME8xV3ZXc1B1SjVIdWwwZXFJRGlRbnhFZ0dEakNCaE9VclZiWDZzWXdlNzVndThjT3hKSDhvbER4NDg4SjEvQnB5OFR1VnlPUmlHZ2QzZDNWQmIwSFJkdDdhMnR2NGFnUCttM1c2WEJqOWFRZ2doaEJCQ0ZnTUZSVk5tSEpWRXE2dXJaNkdQYmR2WTN0NzJQVm1UWlJtRlFpSHdmQkJDeHVVS0cwVkdrS2lLS0tBOXF6VjEyOUZzMjhiVzFsYlhHV3FGUWdHcXFrTFhkUmlHY2E1TnRwZUhEeC8rL3NIQndUOXF0OXQvZFJqSFN3Z2hoQkJDeUNLZ29HaEtES09TS01qY2oyS3hlTFpCcU52S2U1N25rY3ZscU0yTVRKMElHS1I0RWRmNDJLUVBaZVpNNCt3aXQ3WE1ieVlheTdMWTJOaUFJQWhvTkJxUVpUbHdjRzJhSnU3ZHUvZGZnMllWRVVJSUlZUVFFaGdGUlZOaTBFcWlYaUdSS0lwbm00TnMyMGFwVk1MQndZSG5kUysycFJFeUxXSVJGamxoQ1NKTDM1djljdHJIMkQxOGdlZk8wYVFQNVV5dnNLano5Y3MwelZDRDlIZDNkemRydGRyL0F1QmJOS3VJRUVJSUlZU1EzdWhzYThJdVZCTDk2WDRxaVNxVlN1Q1FxTnRHTTU3blF3K01KZDFGbVFqNHlDY3IybVUyZXZicldJUUZ5ekFEM1gvTGNYQ01kc2Z2YlRob3d6bys3bGsxY29XTlFtUzVTOGZZZWQ4dm5DTTBIZnZjWTB6S1ZZNUhScEFXYnVYOXNMRk1CSGxSbWFwV05JN2pVQ2dVc0xXMTVWbmgyR3ExVUM2WCs5cTJtRTZuTityMStrdU80MUFKR2lHRUVFSUlJUUZRUmRHRWpYb21rYnM1Q0RnSmxLclZxdWYxcUlvb3ZBZ1lpQ3dMbm9tQWo3Qm53UThMWnFvcVhwck9FVjQ0OWxtSUJDRDBoakRyMkVIVHNmSE1OaStGVStPUTRrV2tlSEdzajdrSURtd0xPNGYrdzZUSFRkZDFiRzF0K1Y3dXppc0txMUtwYkZhcjFmOFh6U29paEJCQ0NDR2tOd3FLSm1RYzI4M2NRZFFBZkFkV3N5eUxmRDVQczRpNmlESVJ5Q3gzTGd6cXJBeGFSRStQVE94WnJiSE11bG1OeVloei9NZ2ZaMUUxblNPVVdzMnBxQm9EdXIrdWRjNHJDc08yYmR5N2QrLy80VGpPZnd1YVZVUUlJWVFRUWtoWEZCUk5TR2Nsa1NpS3J4V0x4WjhMVTgxakdBWTJOemQ5TDNmYnpWcXRGcmEzdHozYk9XaWoyV1d4Q0lzNHgyT0o1YWF1TW1nYVBUMHk4ZHkyUmpidmhrS2k4WmkySWRjUEh6NzBuYUVXajhleHRyWVcrajRybGNwUHF0WHEzd1hOS2lLRUVFSUlJYVFyT2dzZXM0c3ppVVJSL0V5eFdQelpzQ0ZSdC9ZTXQwcW8wV2lnWEM1N2hrVHBkQnFaVENiOEgyQk9kTGFOTGJIUnM0b2hFczV5Vk1CeVZJRFRQc2Ira1lrbjF1RlFLbE1pWUpDTExWRklOQ1lpeXlFZms3RnJ2c0RoOGVYWGkzSEw1WEsrUWRIQndRSDI5dmFRU3FWQzNXY3ltZnhVclZhaldVV0VFRUlJSVlUMFFFSFIrTWs0clNSaVdUYWZ6K2REaFVTMmJmc09mQVZPUXFKaXNZaGFyZVk1NEhwUlc4MDZXOGFXV0c3aFc4ZUdqV1VpU1BFaUVsRUJUNDhzN0I4ZDlsMmRFZ0dEZ3FoUU5kZVl1V0hSZGt1ZmVHV1JJQWpRTk0xM1NIKzFXb1dxcXFGYTBEaU9RektaL0dLMVd2MEtBSnBWUkFnaGhCQkNpQTg2RXh1L0dJQVZsbVh6eFdMeGE1SWtCYjVocjVBSUFQTDVQRXFsRWxxdHk5dU1SRkZFb1ZBSVBkOWpGcmx6aFpiWUtPSmNsRFpsalFuTFJIQ05qK0VhSDhQVEl4TVYwd2hWWVVRaDBXVHhFUlpGNlFwMkQxK01ySjB3cUc1QmtlTTQyTjNkRGQyQ2xrd21ONnJWNmpXR1lWWkFzNG9JSVlRUVFnanhSR2RqNDhjQitObHNOdnN6WVVJaUFMNEJrQ3VaVEtKU3FYaGVSOU0wWkxQWnVaNUhGQUdET0JkRklocWpvR0VLTEVjRnhMa29LcWFCWjdZVjZEWjVVYVovdXdsam1Ranlvb0luMWlHcWxqR3g0MUFVQlR6UHc3Szh2M2NPRGc2ZzZ6b1VSUWw4bnh6SFFkTzBYNm5YNnp5QWJ3R2dXVVdFRUVJSUlZUmNRR1VXWThJd1RPejBVK3hmU3lhVFA1OUlKSzZHdWYzZTNwN3Z6QTdnWk1CcnZWNzNESW15MlN6eStmeGNoa1JSSm9KRVZNQjFVY0V0K1NweU1Rb2FwZ25MUkpDTHlYaEZ2SUtsSHY4dWFWNmlsc0FwY28yUDRicW9JQUptWXNlUVRDYTdYcjY5dlEzYnRrUGRaenFkZmcyQWlwUHFUa0lJSVlRUVFzZ0ZGQlNOandyZ203SXMvOUZjTHJjUjVvYUdZYUJjTHZ0ZXp2TThEZzRPTHJXa3NTeUxRcUVRZXVqcnRJdUF3VldPeDNWUndjYVNpb3l3UkFIRGxCTlpEZ1h4Q2xLODZIbDVJaXJnR2svbjdkTkdacU1vaUFxaUUycmQ3RFZMelhFYzFHcTFVUGNwQ0FMaThYaW8xMkJDQ0NHRUVFSVdDUVZGSThZd0RNOHd6REtBWCtWNWZyMVFLTHdkNXZidVhDSS9MTXQ2dG1id1BJOWlzVGhYUTZ0akVSWlpZZW1zY29qQ29kbVQ0a1c4SWw1QnJHUERYQ3pDSWlNc1RmQ29TRGNuSWQ5a3dpSkJFQ0NLM3VHaXExcXR3alROVVBlYlNDUytBT0JYR1laWllSaUdFa3BDQ0NHRUVFSTZVRkEwZWpLQU5aWmxpNFZDNFZmQ3RuLzVyYmQzZVYwbWlpSTJOallRZGdiU3RGcGlPYndpWGtGUmltTTVPditEdU9lZEd6eGM1WGdBUUk1Q29xbm5Ecm51RFBqR3BWZjdHUURzN3U2R3VrOVZWV1dlNTc4STREWk9xajBKSVlRUVFnZ2hweWdvR3BHT1NxSXNnRCtkVHFlL0VqYTRhVFFhdmx0Ly9JaWlpR0t4T0JmemlLNXlQRzVJY1JURUt6UjNhTTY0czR1dTA0YXptY0V5RWVTRXBiSFBMRkpWRlN6YlBhQnlCMXVIa1V3bTN3RHdWZENzSWtJSUlZUVFRczZob0doMFpBQnJBSDVkMDdRdnBWS3BiSmdiRzRhQlVxa1U2Z0huSlNTNndrWnhRNG9qRjVQQlQ2Q0NnWXdQdFEvT0ZyY2FiSnhoRWNkeGdWcG8rNmdxNmwycVJBZ2hoQkJDeUFLaW9HaDBZZ0IrbWVmNXRXdzIrK213Tjk3ZDNlM2FjbmJSUElSRXNRaUw2NktDdktoUVFFVElsQkpaRHJuWWVOc0ZnN1NmdFZvdDdPL3ZCNzdQMDZIV253TlZGQkZDQ0NHRUVISU9CVVdqd3dHSUZRcUZQeFkydktsVUttZzJtNEd2TDh2eVRJZEVFVERJQ2tzb1NuR3FNQ0ZrQnNRNUhtbCtmRFBRSkVtQ0xNczlyMWV0VmtQZHI2cXFyd0w0V245SFJRZ2hoQkJDeUh5aW9HaklHSWFKTVF5ekF1RFhzdG5zSHc4N2w4Z3dqRkFuTzVxbVlYMTlmV1pEb2tSVXdNWVNEYWttWk5aYzQyTm5BOG5IUWRPMG50ZXhMQ3RVVlpHcXFsZFlsdjBVYlQ4amhCQkNDQ0hrRXhRVURaOEs0SnV5TFAvUlZDcVZDM05EMjdheHZiMGQrUHJ4ZUJ6NWZEN2MwVTBKdDgwc0l5eUJuY0RhYlVMSTRES0NOTFpOYUVHR1dnUGhxb280am9Nc3kyK0F0cDhSUWdnaGhCQnloczdRaDBSUmxMTXRaeXpMWHMvbjgyK0h2WTl5dVF6THNnSmRWeFRGbVEySkVsRUJCVkdoTmpOQ1pweTdDVzBjT0k0YlZWVlJBYlQ5akJCQ0NDR0VrRE1VRkExSnM5bDB0NXo5YjdMWjdKY0ZJVndyVmFQUlFMMWVEM1RkV1IxY0hXVWlXSTNKVkVWRXlCd1JXUTZKTWJXT0JobHFEWVNyS2xKVk5kN3Y4UkJDQ0NHRUVES1A2R3g5ZUdJQWZqa2VqMzh4a1Vna3d0elF0bTJVU3FWQTEyVlpGb1ZDWWVaQ29xWFR0ZHJ4TWM0MElZU01SMFpZR2tzTG1pQUlnWVphaDZrcTRqaU90cDhSUWdnaGhCRFNnWUtpNGVGWWx0WHkrZndYd3Q2d1ZDckJjWnllMTJOWkZzVmlFV0dybFNZdHhZc29pRmRvNVQwaGN5d2pqR2NMV3BEMk13Q28xV3FCNzFOUmxGZEEyODhJSVlRUVFnZ0JRRUhSd0M1c09mdmxzSlUrZTN0N09EZzQ2SGs5TnlRS3UwVnRrdHkxOXlsZW5QU2hFRUpHVEdhalk5bUNsa2drd1BPOUg2ZlZha0hYOVVEM3FhcHFBZ0FOVFNPRUVFSUlJUVFVRkEyRGl0TXRaMkZiemd6RFFMbGNEblRkYkRZN1V5RlJsSW1nSUNxMDlwNlFCWklSSkVUQWpQeHhnbFlWN2UzdEJicWVJQWdRUlhGMWtHTWloQkJDQ0NGa1hsQlFOTGdZQURYc2xyTXdjNG1TeVNSQ1psQVRGWXV3S0VwWElMS3pOVWVKRURJWWxvbU1wUVV0YUZCMGNIQUEwelFEWFZkUmxOY1lobGxoR0labUZSRkNDQ0dFa0lWR1FkSGd2cEpPcDM4dTdOeWdhcldLVnF2VjgzcnhlQnk1WEs3Zll4dTdrNUFvVGx2TkNGbFF5MUVCMFJFLy93VkJDQndXQmQwbXFTaktUUURmeEVtVktDR0VFRUlJSVF1TFNqNzZkUHFwczhyei9JMU1Kck1SNXJhTlJpUFFvRlZSRkpIUDUvczh3dkdMUlZnVVJHWFNoMEVJbWJBVUw2SnN2aGpwWTJpYUZpZ0VxdFZxeUdReVBhOG5uNnhUVTBIYnp3Z2hoSkNoWUJqbURnRHdQSi9tZVQ0KzZzZHpITWR1dFZvUGcxeTMzVzZIWGtCRXlDS2hvS2gvS29CdjV2UDVQeC9tUnFacEJtbzVZMWtXaFVJQllZZGpUOHBWamtjdTFudHROU0ZrL2kxSEJUeXpUYnh3N0pFOWhxSW80SGtlbG1WMXZaN2pPTmpmMysvWnZzdHhIRVJSekFTcDlDU0VFRUttaFJ2R3VMeENHVVZSdW42U3kvTThNNHF0eXNWaUVUMGVlaFRlN0hhaGJkdG90VnBZWDE5dk80NER3ekRhQU9BNHpyRmhHR2VmY2pXYnpRL2NYMU9vUkJiUmJLUVFVNFJoR0I2QURPQlg0L0g0SDFZVUpkU256NlZTQ1k3ajlMeGVQcC9IS0Y2d1I0RkNJa0xJUlNsZXhFZXRZRnZIK3BWTUpnTXRCR2cwR29IbXZDbUtzdDVxdGFpaWlCQkN5RlRvRElIY0FJaGxXVjZTSkFFQUZFVmhpc1VpUkZHY21RK1hKNDNqdUhQaGxhcXE3aFlPRnNDVmpxdSthWm9tTE12Qyt2cDZHd0IwWFcrN2daSmxXUWVXWlZVcFJDTHppbDVSd3BNQnJMRXNXOHpsY244NHpBMzM5dmJRYkRaN1hrL1ROS2lxMnVmaGpSZUZSSVFRTHpJYlJTekM0dkM0ZHpEZUwwM1RBZ1ZGN2xEclh1RzdLSW81QUY4RDhKZUdjb0NFRUVKSUR4ZmJzOXdnaUVLZ3lSTUU0ZHg3QjBWUkdKd0dTclp0WDJtMVdybDhQdCsyTEt1dDY3cmVhcldlT0k1VEI2Z0tpY3crZXRVSkx3YmdsNVBKNUpmQ1ZQell0bzFxdGRyemVyTTBsNGhDSWtKSU40bG9iS1N6aWppT0N6eXJxTkZvSUpWS2RiMk9vaWhYQUVTSGRIaUVFRUlJZ1BPVlFTekxhcklzdjBSaDBHeHpLNU5PcTVNWW5GUWpYYkZ0dTlCcXRaREpaSTUxWGRjNzV5WlJlRVJtQ2IwaWhjZXhMS3NsazhucllXNVVMcGQ3dHB5NWM0bG1BWVZFaEpCZXhqR3JTRlhWUUVGUnZWN3ZHUlFKZ2dDV1pXa2lQeUdFa0lFd0RIT0haVmxORk1WcmlxSW9oVUtCa1dXWndxQUYwQkVndWVFUkFMeXA2em95bWN5eFlSaG1zOW44bUNxUHlMU2pWNnVBM0MxbkFINHRuVTUvSmN3THZXRVlnVTVrc3Ruc1RNd2xXbUk1Q29rSUlZRmM1WVNSQjBVc3kvWU00bHV0VnREMnMvUXdqNDhRUXNoODY2d1drbVg1aGhzTThUd1BTWkltZVdoa2luU0VSekVBQmNNd0NvWmhJSkZJSEJtRzhaeXFqc2kwb2FBb09CWEFiWjdudjVoS3BYSmhicmk3dTl2ek9ySXNCeHEyT21teENJczhoVVNFa0lDV293TDJyQmFPMnNjamU0eWdWVVcxV2cyNVhQZVhiMFZSWGgzV2NSRkNDSmsvblRPRkZFVkpaN05aVmxFVVpscENJY013dW41NDB1dnlZYklzQzZacEJwclJPZ3c4ejRQbitiUGZzeXg3RnRaSmtnU1daYzh1bTNTN255UkprQ1FKaVVTQ0E3QnMyL2FiclZhTGdpTXlOU2dvQ2k0RzRLdnBkUHFudzl4STEvV2VMNDZ6MG5JV2k3QW9pQXBZSmpMcFF5R0V6QkEzTEJxVm9FRlJvOUhvR1JUeFBKOWtHR1lGUUtQZGJoOE82UkFKSVlUTXFJdkJVS0ZRNE1aZExlU0dPKzRXcnRPMTdnQXd0aEJtRmxpV0JjdXl6bjN0NE9DZzYyMVlsb1VvaWdBK0NaTjRubmZiMGNmMjc5elJzbllwT05KMXZXcFpWaFdnNElpTUR3VkZJWWlpbUVra0V2RXd0NmxVS2oydms4MW1wNzVuT1FJRytaaE1JUkVoSkxTckhEL3lvQ2dJOTVQTmJ1MW5naUFrQUh3VHdMY0FQQjdHOFJGQ0NKa2RuY0dRcXFxWlFxSEFqbXUra0dtYWFMVmEwSFg5TEFocXRWcGpxd0JhUkk3am5JVnR2VUkzVVJUUHdxUE8vNCtpT3VsQ2NKU3piVHRYcjlmYmlVVGlxRjZ2LzN1QVFpTXlXdE9kVGt5Qmp0bEV2NXJMNWY2ak1MY05VazBVajhlbnZ1VXNBZ1lGVVFFZllYdGZtUkJDTHVBakxKWllicVN6aWtSUlJLdlZPNHlxMSt2SVpESytseXVLSXVEa05UODJ0SU1qaEJBeTFkeHdLQjZQZnpxYnpRcXFxaktqbkJ0Nk1SQ2lxcURaNEw3UDhQcjN1aGdpS1lveTFJb2tqdU9RU3FVWUFGdytuMy96ZEp1cjNXZzBLbFJ0UkVhQmdxTGVWQUMzUlZIOER4UkZDWFhpMEt1YWlHVlo1UFA1L285c1RBcWlBcEdsYnhWQ1NQOFMwUmhlT0tON0k5dzVkNkNiUnFQUk5TZ0NBSjduMVl1bDY0UVFRdWFIVjlWUTBPclVmaGlHQWNNd1lGa1dkRjJuS3FFNWRERkVxbGFyWjVlNXM1TlVWWVVrU1VPcFFGSlZGYXFxc3JsY0xtZWFacTdSYUxSVlZXMGRIQno4Q0tEUWlBeU96djU3aXdINGFpNlhleXZNallKVUU2WFQ2YWx2T2NzS1N4UVNFVUlHRnVkNFJNRGdHTzJSM0w4Z0NJRStrUTJ5L1l6bitaY3N5NktLSWtJSW1TTnVPQ1RMOG8xc05xdU1xbXJJTk0yek1NajlQMWxzN3V3azkzMksyNjRtQ0FKa1dZYWlLQU50dmhZRUFhbFVpa21sVWpIYnR0OXNOQnBJSkJKSGpVWmp4M0djT29WR3BCK1VBQVRBODd5cUtBcmYrNXFmNkZWTkpJb2lVcW5VUU1jMWFpbGV4SEowZEdXM2hKREZzaHpsc1g5a2p1UytPN2VjOUtMcmV0YzNaSklrdmRKc050VWhIQlloaEpBSlloam1Ec3V5bWl6TEw2MnVyc1lHUFNIMzRyYVB1UjhTVTZVUTZjV2RpOVJzTnMrV2NiQXNleFlhS1lyU2Q4c2F4M0ZJSkJMdU5yVkNvOUVvVUdoRStrRkJrWS9PMlVUNWZQNVBoTGx0a0Y3amFXODV1OHJ4U1BIaXBBK0RFREpIRXRIWXlJS2lNSnJOWnRmWmNDekxMb0ZtRkJGQ3lFd2FkVGhrR0FZYWpVYWc3Z0ZDZ25JY0J3Y0hCMmRiMnR6Z1NKSWthSnJXOS9md2FZc2FoVVlrTkFxSy9La0Fidk04LzhXd3M0bHF0VnJYeTVQSjVGaFhhb1oxbGVPUmk4bVRQZ3hDeUp6aEl5eWlUQVJIN2VPaDM3ZWlLT2ZtQVhTajYzcXYrMUtDM2hjaGhKREo2MndyVzExZHZUTE1jTWh0SldzMEdsUXhSTWFtTXppcVZxdGdXUmFxcWtJVVJhaXEydGYzZDJkb3RMKy9YNkNaUnFRYkNvcjh4UUI4TloxTy8zU1lHOW0yZlZaQzZJVmxXYVRUNlVHUGJXUmlFUllaWVhwRExFTEliRXRFWTZoYXhrU1B3YklzR0liUks3Qi9HOEMvR2M4UkVVSUk2WWRiUFpSTUp2UEpaSklkVmpqVWFEVE9xb1pvdVFHWkJvN2puSjFqbHN0bHhPTnhTSkowTmlBN3JOUDJ0SmhwbW04MkdvMjJJQWlQTE11cVVtQkVYQlFVZGNIenZKcElKT0poYnRPcm1paWJ6VTd0QU9zSUdPUmpNbGdtTXVsRElZVE1xVGdYUlhVSzNuTjNDNG9VUlpuT0YybENDQ0ZuMVVPYXBuMjJXQ3h5aXFJTWZKL3VqQ0dhTTBSbVJXZTFrYnRSVGRPMDBLRlJ4eURzbks3ck9hb3lJaTU2TTN4QjUyd2lUZE5DVlJNQjNZTWlVUlM3enNXWXBBZ1lGRVFGZkNUWWltbENDT2tISDJFUmk3QTRQQjd1bTNCUkREZFRqYmJRRUVMSWJHRVk1ZzdQOCtsc05wdlZOSTBaOUlOWDB6UlJyOWRwMWhDWmVaWmxvVmFyb1ZhcmdlZDVKSlBKdnRyVFRnZHB4MHpUZkxOYXJkb2N4ejJrV1VhTGk0S2l5MVFBdDFtV2ZTT1pUSDRxekEzMzkvZTdmZ0tSeStVR1BMVFJ5UWdTUkphK0hRZ2hvM2VWRTRiZWZoYjJoS0hYbkNLZTU3VkJqb2NRUXNqZzNPcWhlRHorNldLeEdCdTBlc2dkUkYydjE2bWxqTXdseTdKUUxwZlAydE1TaVFSVVZRMTFINElnSUovUGM3WnRGMnExMm5VS2pCWVRKUU9YeFFCOFZkTzB6NFE5OGVoV1RlU3VPNXhHS1Y3RWNuUzRxMElKSWNTUFBBV2hkSytLSWdxS0NDRmtjb1k1ZThpMmJkUnFOVFFhRGFvbUpRdkZiVS9qZVI2YXBvWGVuc1p4SERLWkRKTk1KZ3ZWYWpYdkJyY1VHQzJHeWI5Ym4xTEpaSEkxelBVTncrajZ3eWVUeVF4OFRLTndoWTBpeFlkcjJTQ0VrRUdJTERleTdXZGhCQmhvVFFnaFpJeUcyVjdXYURTd3Y3OS90bTZja0VWbFdSYXExU3FxMVdwZlZVWWN4eUdYeTdHYXByMjV1N3Y3bkdHWU94UVd6VDhLaWk2THhlUHh6NFg5NUtKYk5aR21hVk5aVFJTTHNNakZsaVo5R0lTUUJSVG5vdGcvTW9kNm43SXNoNW96MGExVldCQ0U2VjFQU1FnaGM2U3p2V3gxZFRVMnlEeFBYZGRScjlmUmFEUm9JRFVoSGk1V0dTV1R5Y0R0KzVJa1lYMTkvY3JlM3Q3bktTeWFmeFFVWGZhMVZDcjF1VEEzc0czN2JGMmhsM1I2K3M0M0ltQ1FFNVpvd3hraFpDS1cyT0VIUldIcHV1NGI0dk04dnp6bXd5R0VrSVhTdWIwc25VNXovYmFYdVVPcGFlNFFJY0c1VlVhMVdnM0paREpVWUpSS3BSaEJFTjVNSkJKSDlYcjkzMU5nTko4b0tEcmxianZqZWI2b0tBb2Y1cmJkUXFLd3ZhRGpRc09yQ1NHVEZPZEN2Y3dTUWhaQUlwRjRaSnBtdGRscy90dDJ1LzEvblBUeGtORmhHT2FPTE1zM2NybmNsWDViZ1BmMzk5Rm9OS2kxakpBQk9JNXoxcGFXVENhUlRxY0RCVWFxcWtKVlZVN1R0RGVwdW1nK1VWTHdDUlhBTnpWTisxTFlHODVhTlZFaUt0RHdha0xJeEMyeEhGNDQ5dER1VDFHVVVLMW52VGFmRVVMR0w1L1B2M252M3IxL08rbmpJS1BCTU13ZFVSVFhpc1hpY2o5akdVelRSSzFXUTcxZXA5WXlRb2FzVnF1ZHF6QUtVdXlnS0FwV1YxY3BMSnBERkJSOUlnWkFEVHZFV3RkMTN5SFcwMWhORkl1d05MeWFFRElWWkRZNjFLQ0laZGxoM2hlVlBCRXlSZ3pEZkdOMWRUVWpDQUpFVVh4OTBzZERoc3NkVXIyNnVwcnJad1pSbzlIQTN0NWVxQThEQ0NIaGlhSUl4M0hRYURUYXFWU0tDWEtiMCtjMGhVVnpob0tpRHBxbXZSRjJ1OElzVlJORndDQWZrMmt1RVNGa0tpd051ZjExbUJ2TUpFa0s5YUVCSVdSd2dpQ3dBS0JwMnRzTXcveGxhaitiZmU2YSszUTZmVDJUeVFRNjZYUzVhKzFwOWhBaG94ZVB4NUhMNVRxTEhFSTlYeWtzbWo4TEh4UzVzNGtBL0txcXFyZkMzTmEyYlRRYURjL0xaRm1ldW1xaUZDK0Nqd3p2RTNkQ0NCbUVPT1RYbzJuY0xra0lDVTdYZFYwNU1WMXZvRWhmR0lhNW8ybmFaN1BaTEJmbWcxalRORkd0Vm9lMnVVd1VSYWlxQ3NkeHFHV05FQSthcGlHZnp3OThQNGxFQW83ajBFYTBPYkh3UVJGT1FxTGJQTTkvVVZWVk9jd051LzBBeTJReVF6aTA0VmxpT1Z6alk1TStERUlJT2NNeUVjUWlMQTZQaC9lbVhSUkYzM1pnUXNqMGFyZmJ2NldxNm44SjRPWXdxd1BKK0xsVlJNVmlzUkFtd05kMUhYdDdlME1kVGkzTE1ncUZ3dGx3WGszVFVDcVY2T2NFSWFkNG5oOUtTT1JLcFZKTXJWWkxVMWcwKzZnSDZXUTIwVmMxVFF2ZEQxK3IxVHkvTHN2eVZIMnk3YmFjRVVMSXRPR0gzQXFyYWRwUTc0OFFNajZXWlZYY1g5T2NvdG5rVmhIZHVuVXJjRWlrNnpvZVBIaUFyYTJ0b1c4d3krZno1elk0U1pLRVFxRXcxSmwyaE15eVVZeEtLUlFLdWFIZktSazdDb3BPYVpvVzZsbGltcWJ2cHhHcFZHb294elFzS1Y2a3VVU0VrS2trRG5sT2thcXF2cGRkUERHWXBrQ2ZFQUswV3EwZnVyOW1XZmJLSkkrRmhNTXd6QjJPNHg0V0NvVTM4L2w4b0ZhenpvQm9GRU9xL2JZMkNZSXcxQW9LUW1ZVnk3TG9aN2g4TDVJa0labE1mbzVobUR0RHYzTXlOdFI2QnNSa1dYNDE3RHdodjJvaW51ZTducWlNV3l6Q1Vzc1pJV1JxRFh1Z3RTQUlTQ2FUbnEvUjZYUWE5WG9kclZZTDhYaDhxbDZyQ1NFbmRGMm5FSGZHTUF4elI1YmxHNFZDNFVxUWdHaGNHOHlTeWFUdlphcXFRcFpsMnFKR0Zwb3NlM2VjR0lhQjNkM2RzOThMZ2dCVlZVTzliMHFuMDZ5dTYydlVnamE3S0NnQ3ZxYXE2bXRoYitTMzdhemJENlZKeUFsTGt6NEVRZ2p4TmV5QjFzQkpJTlJvTkM1dHlWRlY5V3d6R3AySUVqS1Y3cm16SHdWQm1LN1ZzY1FUd3pCM2tzbms1M0s1WE04WDgwYWpnVXFsTXBiNVFLSW85bHdxazgvbnNibTVTY090eWNMeUNuNXMyOGIyOXZhNTkxRE5aaFAxZWgwc3l5S1pUQ0taVEtKWEtNeHhIQXFGd3ZMbTVpYk5CSmhSQzl1UHhEQk1qR0dZRlFCSlRkTkMxZHgxRzJJOVRaOVFKNkxDME5zNkNDRmttRmdtTXZTcUlvN2pVQ3dXRVkvSEljdnkyWCtDSUVCUkZBcUpDSmxpaG1Ib0FDQ0tZcEpobUc5TStuaUlQNDdqSHE2dXJyN1pLeVF5VFJNUEh6N0U5dmIyMklaSUI1bFhKd2dDQ29YQ0dJNkdrT25qMTNaV0xwY3ZmZERtY2h3SDFXb1YyOXZiTUF5ajUyTUlnb0IwT24yZFd0Qm0weUtuQ0NxQTIvRjQvR2ZDck93RVRvSWlMNXFtOWZ6MFlsd2lZSkRpeFVrZkJpR0U5SFNGNWZIQ3NZZDZuNElnWUcxdGJhajNTUWdaclhhNy9WdUpST0wvQmtDUkpFa0FjR3ZTeDBTOE1ReHpwMUFvRkhwOVFGcXBWRkNyMWNaZXRSUDBnMXRGVVpETlpsRXVsMGQ3UUlSTUdhL25pSzdydmwwem5ack5KalkzTjVGT3AzdFdGNlZTS2FiUmFOeWdGclRaczdBVlJUamRkcWFxYXFpUEVtemI5bjBDVGRPMkhScGdUUWlaRlNKdG55R0VuREpOc3dwUWUrZzBZeGptenVycTZwdmR3aGhkMS9IakgvOFkxV3AxN0NGUmtMYXpUcWxVYXFyZXd4TXlEbDdqVWlxVmlzYzEvVldyVmR5N2R3OFBIanlBYVpxKzE4dmxjclNjWUFZdGZKS2dxbW84elBYOXFvbDRucCthTnpWUkprSURyQWtoaEJBeTAwUlJmSDNTeDBET1l4am1UanFkL255M1RVbDdlM3ZZMnRyeWJWOFp0WDdlaitmemVkL0J2b1RNRzU3bnoyWTJ1Z3pENkd1NHUrTTRhRGFiNTRaZlh5UkpFdExwOU9lcEJXMjJMSEpRRk5NMDdhMndiV2QrMjg2bWFZZzF0WndSUXNqQUlnekRyREFNTS9MVTNaMlpkL3JmbitRNDdqYzRqdnVOVVQ4dUlkT081L25NcEkrQm5NZnpmRHFUeVRCZWw5bTJqVktwTlBFMnJuNC91QzBVQ2hCRmVnOU41bDg2ZlhsWGdOODVibEFIQndlK0JSVUFrRXdtR1o3bmFVbkJERm5rb09ocnNpeGZEM01EMHpSOWgvQk55eERyV0lURmNuUTY1aVFSUXNnTVl3RjhFeWZ6N0VaTkJmQk5udWYvTDZ1cnEvL1gyN2R2L3cxWmxxbVNnaXdrUlZFMjNGOUxrcFNqZ2RiVEpaMU81N3krYnRzMnRyYTJBczAzR2JWdVlZK3U2NzZYblc1cEFrdnQwR1RPWFR4dk5VMXpLTS9kVXFrRTIvYWVPY2x4SE5McGRJNnFpbWJId2dWRm5kdk9Fb2xFcUg1SnY1VFUzYVl6RFRLQzFQdEtoQkJDdWhKRlVUaHRlL24xWVZVV2RWUU81VS8vdThFd3pIOGxpdUwvTTV2Ti92ckd4c2IvTHBGSXZBSUFraVM5TnZBZmdwQVpjekVVVWs1S1EyaWc5UlR4ZTc5YnE5WEd0dEdzRzU3bmZZOVIxL1d1SjdMQXlaK3ZXQ3hTV0VUbVZqd2V2elI4ZWxnQnI3c1Z6VThpa1FCVkZjMk9SZHg2cGdLNHJXbmF6NGU5b1Y5SjNyUU13RnRpT2Noc2ROS0hRUWlaVXo4c2JRTUFYcy9QL3pwaGp1TlFMQmEvdXIyOUhXMDJteEtBYndGNFBPRGRxaml0VW1KWmRrblR0RGRWVlgxRlVSVGU0N28wYUk0c0pLV2piNGhPMW1kSHQ1YVRjZXBXVFZTdjEyRlpGc3JsTXZMNXZPLzFKRWxDc1ZqRTV1Ym1DSTZRa01ueW1pODJhTnZaeGZ0U1ZkVzNCZFN0S3FJTmFOTnZFWU9pR0lDdnlyTDhVcGdibWFicE81UnZXdHJPcm5MVFVkVkVDSmsvOWFhT3V6c2ZBUUNXWlFXcmllbVp5ellxSE1kaGZYMzl5NDFHNDZmMjkvZmZWQlRsN0oyVUpFbXJxcXErN2ppT2FSakdJd0F3REdQSGNSemZTWkRKWkxMSTgveExxcXErRktBS2xWSi9zdkF1RGxzbDAydGFRcjF1M3pOdW1GV3YxeUdLSWxLcFZOZjdXVjFkeGM3T3pyQVBrWkNKNFhuKzBubnIvdjcrMERjVDd1N3U0dWJObTU2WEpSSUoxR3ExdGFFK0lCbUpSUXlLQUlUZmR1YVh0SHFWNzAxQ2xJblFiQ0pDeU1oWTl0SFpyKytYSHkxRVVPUlNWVlZXVmZYTFBoZkxxcXE2WmFVMFY0aVFJYVBOWjlQRk5FM1BTZ0ZKa3ZyYW1EUnNmbFVNaG1HY094a3VsOHRnV2RhenVzTGxYa1poRVprWFhsMHdvNWdyMW1xMVVLbFVrTWw0N3lQSTVYTExWRlUwL1JadVJoR0FXRHdlLzF6WWNNZXZwSFphcW9sbzB4a2haSlRTNnZMWnJ4OGZQRU8xOFhTQ1J6UC9ETU9nTXhOQ1FKdlBwbzFsV1cydnIvTzhWd2Z0K1BsVk5obUdjZWxyT3pzNzJOL2Y3M3AvaVVRQ3E2dXJRemsyUWliTmE0ajFxQUxlV3EwRzB6UTlMMU1VQmZGNC9OTTAySHE2TFdKUTlEVlZWVjhOY3dQRE1LYTY3U3dDQm5HT3VoUUlJYU1sQzUrTXpmbit3d2REdTEvcitIaG85elV2dXJXd0ViSklhUFBaYkppV05rRy80L0E3R2Fhd2lDd0tudWN2UFQ5R3VhWFFjUnlVU2lYZnkzTzVITTFpbkhLTEdCUkZGVVVKdGUzTTcwazBMVzFueTFFZUxMT0kvNVNFa0hGYVVhK2UvZnJwaXlidURDa3NPbXJQVDFCazJ6WXFsUXArOElNZmRIMkQxRXVyMWZKZkcwTElBcEVraVRhZlRSSGRaNzk4dHlIUzQ5THRHUHdxR3dBS2k4aGlHRmZiV2FkbXMrbjczQklFQVpxbWZaYXFpcWJYd3FVTG9paXVobDFsNy9NemNTcXFpUUFnRWFWQWxoQXllamV6NTk4azMvLzRFVDU4WEpuUTBVd2YwelN4dGJWMXRocTJYcStqVXVudjc4ZHhITzhmUElRc21HbHBhU0xkY1J3MzhYK3Jiby9mcTcxbVoyZW41K3MxaFVWa2xubTFuZmwxekF4VHVWeUdiZHVlbDJXeldZNWwyZWxZSDA0dVdaaWdpR0dZR01Ndy83R3FxbDhNY3p2VE5ORnF0VHd2OHh1WU4wNVhPUjU4WkRvMlRSQkM1cHNtSzFpSlh6MzN0WGNldkU5aEVVNWFsTGUydGk3OXZLaFdxMTAveWZhaTY3cjNPeXBDRm9qN3ZKbVdsaVp5b3Rsc2Z1QjMyYVNyaXZ5K1Y3em1FM21wVnFzb2xVcStKN1hBSjJIUnRHeDVJeVFJbG1VdlBULzg1dThPbStNNEtKZkxucGR4SElkME9uMmRxb3FtMDhJRVJRQlVBSjhLTzUvSTcwa2tpaUxDVmlhTndsWGFkRVlJR2FQYitldVh2cmJvWWRIZTNoNDJOemQ5UDVrTCsyYk1NSXdYQUw0NytKRVJNcnM2bjA4OHp4Y21lQ2prQXIvd2U5S2hubDlGVVppcWlYcTlqcTJ0clo1aFViRllwTENJekF4WmxpOTliZFJ0WnhjZnk2OURKNVZLTVR6UHA4ZDJNQ1N3UlFxS1lqelA1OFArRVBON2d6OE4xVVJSSmdLWnBTSFdoSkR4U2F2TGVHdjljdDcrem9QMzhjUFM5Z1NPYUhKMFhjZURCdzk4UHlucnZGNFlqdVBNejlBbVF2cGttdWJaTG5PZTU3T1RQQlp5bmwvd011bjN4bjRmNEFhdEtISzFXaTNjdTNldjYrMGtTYUt3aU15TWk4OU4yN1o5TzJaR3BkdmN4bncrbjZPcW91bXpTRUVSVkZYZENITjkyN1o5ZTVxbllUN1JNbFVURVVJbTRKV1ZETjVhZnhVOGUzNlkvOTJkai9CUDMvMERtUFpScVB0ck91R3VQMm02cnVQaHc0ZlkydG9LdEZZMjdPcFpTWktXK2owMlFtYWRPeXpac3F5enMzUkZVVUs5ZnlPajAyNjN2NkRyZXR2cnNra0hSWDZ0Yi8zTVlYRWNCNXVibTEySFhFdVNoRnUzYmxGWVJLYmV4ZWZtT0t1SlhKWmwrYzRCVXhRRjhYajgweFFXVFpkRkNvcCtRVkdVWXBnYmRIdHpQK2tmaHNESmZDSkNDSm1FVjFZeStCTmZmQXRycWZQVndrOWZOUEdQdnZjTzNpL3ZCTG9mcDMyTUY4NTBqK1F4VFJON2UzdTRmLzgrZnZDREgyQnJhd3NIQndlWHJpZkxNZ3FGd3FXVEJzZHhMbDIzRzVabEl3RGVIdVNZQ1psRjdYYjd0OXhmVzViVmNIL05zaXpQTU13M0puSlE1QkxMc254ZjFDWTVwOGh2RTNIWU9YR2RkbloydXM0dDRqZ090MjdkbXZoOEprTDhlTTBubWtSUUJIU2YyNWpMNVdJMDJIcTZUSDYzKy9nc3Fhb2FLdDN4YXp1THgrUERPSjZCWEdHak5NU2FFREpSQWhmRjJ6ZHVZVzBsZys4L2ZJQ25MMDdDZGN1eDhmM3RMVHphZjRMYitldElxOHUrOTdGLzFQOGIrRkV4REFPTzQwRFhkVFFhalo3bDJacW1JWjFPbjdVOWFKcUdXcTNXOStQelBMOUlQNXNKOGNTeTdObVp0eVJKQW9CYkV6d2Mwc0V3ak9jQVBGL1lKVWthZTBzTDBIM2oyYUNibmR6NUtvVkN3WE1PRThkeEtCYUxLSlZLbmg4aUVESkpGK2NUZFZ2VU5BNmxVZ25yNit1WHZpNEl3dGxnNjNhNy9ZVUpIQnE1WU83ZmpESU1Fd09neXJMOFp0amJUdk44b2l0VVRVUUltUkpwZFJtLzlNWWZ3dnZsSGR3dGZRVHJ0RUxvOGNFemZQdTlIMkFsZmhVM3N5OWpOWkU4ZHp1bmZZd24xdUVrRHZsY2Y3NnU2MmZoVUt2VkNsd0JwR2tha3Nua3BSTUhWVlVIQ29xbVlWRUNJWlBpT0k0SlFHRlpWakFNQTVJa1RYenRPam12MVdvOUJPRDV2bHFXNVlsVUs0d3lLSEx2WTJ0ckM5bHNGb2xFNHRMbEhNY2huOCtqWEM1UHJGcURFQytUMm5ibXA5bHNZbjkvMy9ONWxFcWxtSHE5dmtaaDBYU1krNkFJSjl2T3ZxbXFhcWlneUQxcDhETHBvQ2dDQm5HT2hsZ1RRcWJMcTlsVnZKeEk0dnNQSCtCUi9jbloxeDhmUE1QamcyZmdXUTRyNmxXc3FGZXhMQ3M0WWlNNFpqeEhYWVJpbXVhbEU0R0xBNlRkMzF1V05kQkpneWlLU0NhVG5tOXdYSlArR1VISUxETU00eU1BQ2VDVHRrMEtUNmVQcnV1ZXIzV1QybnptTnllbzIvYXlzQnpId2M3T0Rwck5KckxaN0tWV056Y3NFa1d4NTVJRFFzWmxHdVlUWFZRdWw2R3FxbWU3YUtGUVdMNTM3OTRFam9wY3RBaEJVUXlBcWlqS1MyRnU1TGVseHF2UGM5eGtsZ1BMTE5KNEtVTElyRkJpSW43dTFtMVVHMC94emdmdm8ybCtVakZrT1RZZTFaK2NDNUZtQWN1eVVGVVZtcVlGRG9GWWxnMDltNmlUTE11aFp1b1JNbTlZbHVWTjAzUVVSV0VCUUJURjF5ZDlUT1JFdTkzK1FqNmZiMDlUVU9UM3VLTm9zYW5YNnpBTUE0VkN3VFBFVEtWU1lGa1dPenZCWnZVUk1rcWQ4N01tM1hibWNod0gxV29WdVZ6dTBtV25MV2lmcDZxaXlWdUVvQWdzeXk2Ri9jSGxGeFJOdzdBNmFqc2poRXk3dExxTVgvbmkyNmczZFR6YXIrSHV6a2VUUHFSUWVKNUhNcG1FcXFwOVZUT0lvaGg2MnhraDVCT1NKQW1uRzlBVUFHQlo5c3FFRDRsMGFMVmFEZ0RQTWg1WmxxZm05VytRd0w2YlZxdUZ6YzFONVBONXowM0lpVVFDa2lSaGEydHJaTWRBU0MraUtKNnIycGwwMjFtbldxMEdUZE04UTk1a01zblU2L1cweDgzSUdDMUNXVXBNbHVVYllXL2s5d051R2xvS3FPMk1FRElyTkZuQjYva0N2dlRxWjhDejAvM1poQ2lLU0tmVEtCYUxlTzIxMTVCS3BhamxoWkF4Y3h6bnVmdnJ6czFuaXFKc1RPU0FpQ2ZETUY3NFhUYUo5OHArTTRvTXd4alpZenFPZyszdGJaUktKYy9MSlVuQ3hzYkdWSHpJVEJiVHhlZkZOTFNkZGRyZDNmWDgrbWtiWjQ1aG1EdGpQaVRTWWJyZnRRL0gxeFJGZVNYTURVelRuTnI1UkZmWUtMV2RFVUptem1vaWllVTNGRHg4WElIVGJ1TW5UNStjRFkrZUZGbVdJUWdDTkUyNzlLa2JJV1F5V3EzV0R3SDhFUUF3VGJNS0lBZWN0S0l4RFBPTmRydjlXNU04UG5LaTFXbzlBZUJaNVRXSjlyTkpodnB1SzFvK243LzBaeGNFQWNWaWtZWmNrNG5vUEcrZGxyYXpUczFtRTN0N2UwaWxVcGN1VXhRRnlXVHljOVNDTmptTDhLNDRxaWlLLzlSUkQzNXRaOERrVzgrbzdZd1FNcXVVbUlqWDh3WHNXUzN3MXp3M0s1L3B0bEJnS01jeUJkV2hoQkIvaXFLZzFXcjlHS2ZidFNSSm92SytLZUk0VHQwMHpZSlhRSE54SGZja2RYdFBQMHl0Vmd0YlcxdWVyV2cwNUpwTVNtZHdPYTFCWmJWYTlXM3pUNmZUYktQUm9CYTBDVm1Fb0NqMEp4dCthZXMwZk9KTWJXZUVrRm5tdEkveHhEcnNlYjFKTHcwZ2hFeWU0emhQTDN6cDFrUU9oSGhxdFZxZUozY2N4NEhuK2FHc3BRL0tyL1Zzbk54V3RHUXk2VG1rMTIxbkxwVktOTGVJakVYbmgyTFRHaFM1ZzYzeitmeWx5enBiMEtpcWFQem10b2VKWVpnWXd6QXJzaXlIM3BMaDE4ODg2UjlDc1FoTGJXZUVrSmxXTVEwY296M3B3eGk1UVU4Q0hNY3hoM1FvaE13MDB6eDVLbEFWNEhScHQ5dGZNQXpEOThWODNCWDRmcTFua3hpcVhhdlZjUC8rL2JQdjNVNnFxdUxXclZzVDcxQWc4Ni96dk5VMHpiRUd0MkhWNjNYZjZqOUZVYUJwMm1kcFh0SDR6WFBxb0FLNHJTaktaOFBlMEsraWFOSnZVdUxVZGtaOFJJOEJ5V0VnSERPVFBoUkNmRFdkSXp5enAvZU55akFOT2dlZzFXcU5kSzh5d3pCZmQvOGI1ZU1RTXFocFBybFpkSHFYdnE1RnJ3cDF0Nko1YlpuaU9BNDNiOTZFcG1ualB6Q3lNRHJEeUduYWR1YW5WQ3JCdG0zUHk3TFpMTWZ6UExXZ2pkazhCMFV4QUY5VkZDWFVONVZ0Mjc2ZkJFLzZoOTdTbEc4TUlwTWhPUXl1bTFIa3JTZ0taaFJ4ZTU2ZjFtUldPZTFqN0I3NkxzbVphNU91Um5XNWxiWU13L3dGVVJSLzZ0YXRXLytMS0lwdk1nenpEWVpocHVNZ0NUbnZqM2RXWllpaUdMcEtuSXhPczluOHdPK3lTWCs0Q3NDem9tZWMzRlkwdjgxTytYd2VxNnVyWXo0cXNpZzZ6MXZITmF0ckVKWmxvVmFyZVY3R2NSeHl1Unh0UVJ1enVUK2pGRVV4MUp2ZmJwOENUN3BNVkdacFBoRTVUM0VZNUswb1dIeFNTY1MzcWFxSVRKODlxNFdqOXZHa0QyTXNMcjRoQ3hzVWpmRGtSZ1h3VFZFVS8yaXhXUHpQQkVGQW9WRDRMMW1XTFFLWW51bXpoSndTUmZGNlowVVJ5N0tlVzdiSTVQaU5heGhuVU9UM0dqc3QxV2kxV2cwUEhqendmRzFQSkJMWTJOaVltZzhVeVB6b0RJb09EZzRtZUNUQjFXbzEzL2RBcXFxZWJVRWI4MkV0ckhrT2ltSTh6Nzg4ck9IVFBNOVBkSkQxRlFxSnlBWENNWU9NUlZWbVpQb2QyQmIyanhabjVNNmc4NGtzeS9LdXZRNHBuOC96RE1Nc013eVRZUmptZjh2ei9IOFZqOGQvdmxnc2Z0MzllU1lJQXZMNS9IOEs0TStmVmh2Rmh2SFloQXdEeTdMblR2WUZRYURXZ3ltajY3cnZuS0p4YlQrYmhaQ2wyV3o2dHFKSmtvU05qUTFxUlNORDVSWTR6RUkxa2N0eEhOOEtQT0JrQ3hxMW9JM1BQSjlscXFJb2JvUzlrZCtUYWRJL2hKWW9LQ0lkSW0wZ1ozSG5Lb2xjTHlLTFViVkJac01pdHB4ZC9JVGRiOGhxbDl1L0FQRGRRWStqWHEvTEFQNGN5N0xaZERyOTVWUXFWZlM2bnFxcVYrTHgrTmNPRGc0a0FOOEM4SGpReHlaa1dEby9YZVo1WHAzY2taQ0wydTMyRjFSVmJhVlNLYytBV1ZYVmlReVRkazI2OWV5aWJsdlJUcmM3UVpabGxNdGwyb3BHQnVhKzk1aWxvQWc0cVg3U2RkMnpLcEcyb0kzWFhGY1VTWktVR05hZFRiclhXcWI1UktSRHh1SjhXOHdNOXZ5SGUvV21qZzhmVi9ERDBqWitXTnJHaDQ4cnZ2Y2JhWi9NUExwMnhKNzlSd095eVNDMlcvcENiRG5yZERFb0N2dEJnMlZaT29ERGZoOWZWVlYrZlgxOXVkbHNaZ0dzRkl2Ri83MWZTT1RLNVhKdkFsZ0JrRDJ0UXByK2orakpRbWkxV3M4NmY4OHd6RGNtZFN6a3NvT0RneC81RGFCVlZYVzhCM1BCdExTZVhlUnVSZk5xMjBza0VpZ1dpeE1mZDBGbVcyYzEzNndGUlVEM3dkYUtvbEFMMnBqTWMvcnd0akxFZEdlU0ZVVVJNQkFwS0NLbkZJZkJsV1B2alBlNVJ6WFJvLzBhN3U1OGRPNXJkMHZiV0Z2SjRQVjhBY0JKUUxSeXhFSjEyRXUzdjJhemVCRTV4aFBPdVJSQ0VkTE43bUVUaDhlTDk2bm94VmwzWVJjaEdJYnhJWUJHdjQrdnFxcTh0N2UzQnVCUEZ3cUYzd2p5K0lJZ1FKYmxHODFtOHdaT1BrUjZDT0JwdjhkQXlMQTRqdk1Nd0ZVQVVCUkZxVmFyRXo0aWNsR2owVUFpY2ZteldVRVFJSXJpd0ZzZzUxR3IxY0xXMWhheTJleWx2enRKa2xBc0ZsRXVsMUd2MXlkMGhHU1dkZjdjbjJSVlg3OHN5MEsxV3IxVWVlZEtwOU9zcnV0clZGazBXdk5jVVFTZTU0ZVdyb1J0SFJnbXFpWWlya2diWGVjUzZXeXd0ck9tZVlpN094L2g3Nzd6cjFGLzlneXZIRVk5UXlMWDBuRUVlU3VLVlpORGxEcmJTQUJQajB3OHM2ZnowOXhSc20zNzBxZllZVDlvYUxWYUpReFFVU1JKVXV6ZzRPQ1gwK24wTDZxcUd2Z0RFMFZSMW5pZXorT2tzb2htRlpHcGNhR0Y2TmFram9OYzFtNjN2OUJvTkh4ZnIyanVqai9IY2JDenM0T0hEeDllcXA1d1c5RldWMWZCc3Y3dnp3ang0cjd2bU1WcUlsZXRWdk1kbG4vNi9GZ2U4eUV0bkxrT2lvWVo3a3l5OVl6bUV4R1hack9lYzRsY1hrR1JIUE12WDdZY0c3LzcvbDA4ZnZFODBPTXZIVWR3M1l4Q2NxZ2RqZmhyT2tjb200czFsOGpsOWNsZG1Jb2l3ekRnT001QWYzbVZTb1hqZVg0bG1VeGVEM003UlZHdTVmUDUvelBQODcrTSthNDRKck1sNG9hdmt4NERRTHgxYXo4Yng3K1ozMk5NYSt2WlJRY0hCN2gzNzU3blNUMjFvcEYrdU84N1pqa29BazVhMFB4SWtvUjBPdjE1YWtFYm5ia05pbVJaN2pxUFlaWlFSUkVCZ09qeFNSdVluK2VSWTNpTkUxcFJyM2E5MzBQSHhsLzk0SHU0OXl6WS9Gb1dEUEpXRkhGN2JsOCt5QUJham8xU2EvYktuSWZsNHB1eXNGdC9ETU9vNDZUdExIUkZFY013c2JXMXRaV0RnNE5meStmemZ5cnNwazVGVVZoRlVRUlZWVDhQNEpmQ1BqNGhJMkpNMjFCaWNwblhOaS9nNUdSdVV1TWJadW43eG5FY2JHMXRZWGQzOTFKMWtTUkp1SG56SnBMSjVJU09qc3dhTnp5ZDlhQ28xV3BoZjMvZjkvSk1Kc09Jb3JoR1lkRm96TzJaM2pCWHFJNXJ2YWNmbWs5RUFDQjExUDM3d0svdFRJbUpXSW4zRG90Kzg4TWY0Tjg5OFY5SmVkSEtFWXVNeFZKMUVUbEhaRG5ja3EvaUZmRUtFbEVCc2NoaWxjeGZmRk1XZGo1UnM5bjhBQ2VieHhwaEgxdlROSFZ2YisrL2k4Zmp2NkFvU3MvV01iK1NiazNUWGdXd0ZQYnhDUmtHVVJSZnYvQ2wvYzdLRUkvTGlRK0dZZTVJa2xSZlgxOXZyNit2dHpPWnpMRWtTWFdHWWU0TTg4U3EzVzUvb1Y2dis1WW1VL3RaY0xWYURWdGJXNTRoVnk2WFE3RllwRlkwMGxWbk1Ec1A4OEhLNWJMdllHc0F5T2Z6eXl6TDBvdk1DTXhkVU1Rd1RJeGhtQldlNTFjbWZTekRzRVFoRVFFZ0hQc1BzQVlBQjIwY2NONUJrV2tmOWF3cWN2MkRuL3dJLzNUbi9VRFhaY0ZBZFZqa3JTaldEcW5DaUp3bnNod3l3aEtLVWh3M3BEaXVpd3JTdklRbGxwdmI4TWcwelV0dnlzSnUvZEYxL2QxMnUvMjQzVzRIcmloaUdJWm5HR2FaNS9sc3E5VTZ6dWZ6bis5MmZjTXc4T0RCQTJ4dWJucFdBVWlTQkZFVVgyY1lab1ZoR0pwVlJNYUtaZGtySGI4R0FLNHpLT3E4blBoakdPYU9MTXMzaXNYaXNxSW9VQlFGbVV5R3VYbno1dkxHeHNhYm1xWjlsdU80aDhNS2pack41Z2ZUdXYxczFyUmFMV3h1YnFKU3VieWxWbEVVM0xwMUMvRjRmQUpIUm1hQkd4U2R0ckpQK0dnRzV6aE9rQmEwNjFSVk5IenptRUtvQUw2cEtNcmFzTzV3a2ozeE1zMG5JamlwM3VuR3I1cm8vZklPN3BZK2d1WDRKL0VYdmJOWGdzaEY4ZVdYZ25kdjhtMEdMeDF4V0RscW84RWU0eW5uNEdnSXVkSHYzN3VMMi9rQ05Kbm1Vc3d5UHNLQ0J3dVpqZUxhNll4a3AzMk0xckdEbHVQZ0dHMDBuU000N2ZaTWIwbTdHTHF3TEJ2cTU0ZGhHTEFzcTU4Vk4zSThIbCtyMVdwL0xwL1AvMkszbHJOS3BZTE9yVkdOUnNQekpFN1R0Sjh1bDh2ZnhFbDFVN0MrVkVLR1RKSWtIQndjUkR1cks0WlpNVDZ2R0lhNUk0cmlXcUZRdU9MMWVpQkpFdkw1UEFlZ1lCaEdvVmFyMmU1SjFpQWJoUHkybjdudFo3TXlNMmdhT0k2RGFyV0tScU9CWXJHSXpuOUhqdU93dHJhR3ZiMDlWS3ZWdVFnRHlQRE1TOXRacDRPREEraTY3dnVlS3BWS01ZMUc0d1p0UVJ1dWVReUtZZ0JVbG1VbnQ2WnNpT2IxazNjU25PUXdXT3BTVFFRQWpRdEJrV2tmNFR2MzNzUGpnMmRuWDVPRkdGYlVxM2k0MTN1MThPOTkvQ0ZhOWhGK2FmWFZVTWZLZ29IbXNOQWNGZzNXUVowN2hobHBoN3FQVGp6SDRlSGpDclMxOWI3dmcwd25sb2xBWmlObllYZ0s1d2QxV3NjT3JQWm9WK3c1N1RaMkRvYzNUNmxXcTUzN2ZSL1ZSQWRocnM4d0RBOUFCcEMxTE9zL2wyWDVVNnFxK3ZaSzcrL3Y0K0pxY2IrNUlwcW12VlF1bDFYUTlqTXllZEhPRTJHZTU5WEpIY3IwYzBPaVlyRzRIR1JPbVJzYVpiUFpOMnUxV2x0UmxJUFRGdGhRb1ZHNzNmNkNxcXF0UkNMaCtacWhxdXFsMTBqU1c2dlZ3bnZ2dllka01ubHBWWGdxbFlLcXFpaVZTak81QXAyTWhsdFJOQTl0WjUxS3BSSTJOamJnOTdxV3orZXZiRzV1VWd2YUVNMWpVQVFnL0Z3SWwxZjZPc21LSXBHQ29vV25PdDFESW90cHcyQS9DV1Awd3haKzU5M3ZYYW9pZW5OdEhTdnFWVHh0Nm5qNm92Y2JpbmYyU2poMGJQeko2NS9wODdoWnFLZUJrYzRlUTJmREIwWXZKNUo0NTRQMzhRVUtpaGFPVzRVMGFyRUlPNVFxcGthamNlblQ4blE2WE9GRHZWNS9DdUM3SVc0aUExaGpXWGJOc3F4b29WQjR3KytLaG1GZ1oyZm4wdGNkeC9IOGxJN2pPTVRqOFkyRGcxRFpGU0dqd0hXZThMQXN5ek1NODQxMnUvMWJFenltcWNXeXJGWW9GQUtGUkowNGprTW1rMkVBWERGTjg4MXF0V3B6SFBmUWNaeDYwTURvZFB2Wm0xNlByV2thQlVVRHFOVnEwSFVkK1h6KzNEbU9JQWhZWDErL1ZDMUtGdGU4YkR5N3lMSXMxR28xWkRJWno4c0ZRVGhyUWFPcW91R1l4NkVpTVZFVTUyTGpXUVFNZUFxS0ZscjArQ1J3NmVZcDk4bEpybjdZd3JmdnZuc3BKRnFKWDhWcUlnbUJpK0lydDkvQThsS3dBZTN2N3BmeDl6OTZML3lCZDFBZEZqa3JpdXVISEpTUWc2OVgxS3V3SEJ2MTVuejlzQ1BUZzJVR0g4WnUyL2FsL25sWmxpRUl3UXRiVCtjYkhRRlk2VFVieUozRkIrQTZnRDhENEUvbjgvbWY3L1o0dTd2K2crcjkza3lldG5EL1FyQS9BU0VqYzY0SFg1S2t1YWdZSHdXR1llNFVDb1ZDbU5jZUw0SWdJSi9QYzdkdTNTb2trOG5QdWJPTWd0eTIyL1l6V3ZFK21GYXJoYTJ0TGV6dDdWMjZMSlBKb0Znc1RtekRISmtla2lUQnR1MjViUFdzVnF1K2l6aUFreFkwV1padjBMeWk0WmpIb0VobFdUWTd6RHVjMUhZQmtiWWFMTHhyZHUvdkFiZnR6TFNQOE8yNzc2SnBYcDZCZXp0Ly9lelgvWVJGZjJ2clhiVHNvNEJIN1MzV2ppQjNPdmg2T2VEZ2E0R0xnbWRQMnM4SUdZV3IzT0Rubk52YjI1ZG1SUGg5NHVYbjlPUnFDY0R0MC8vVUxsZFhBWHlUWmRuL1F6cWQvcVdOalkwL3BxcXE3eG1ZWVJoZDJ4TDhUdXdVUlZrRmJUOGpreGNGTGdXYXR5WnpLTk9MWVpnNzZYVDY4OE9zZ3VjNERybGNqcjExNjFaaGRYWDFUVUVRSG5VN0FXdTMyMTlvTnB1K1F4RW5XYUUvTHh6SFFibGN4djM3OXk5dGdsSVVCUnNiRzBnbWt4TTZPakpwYmhnN2IyMW5uYm9OdGdaT1d0REdjeVR6Yng1YnoyS1NKRjBiNWgzMjI4WTJLQnBrdmRpQ1ZCTTFXQWZIcHdVUjM3bjNubWRJZFBPbGw1RldsODk5elEyTHZuMzMzVUJ0YU84Mzl2RDNQM29QZi9MNlp5QnlnMzFmOG0wR0swY2NycDBPdm03MG1HTzBMQ3Q0dEYrajlqTXlFbkV1aXZMbExjU0JWU3FWU3lHTUxNdWhUNGpxOVRvQU9BQmVCbEFFOE55anF1Z1hBQ3lKb3ZpNnBtay9yYXJxUzBFcUI3cFZFd0VuYnloTjA3eFVBU1ZKRWxpVy9kUnA5VklqekNZMlFvYm8zSHRWQ2hzdVl4am1qcVpwbnoxdEhidkVORTFzYm03Q2NSendQQTlGVWFDcWF1QTVhaHpISVpGSUlKRkk1UGIzOTNPcXFyWU9EZzUrQkZ5ZVk5Um9OSFlBRkx6dVo5enRaL084UnQ2ZFhaVE5acEZLcGM2K2ZocnVuYzB1bXNlcUV1TFByU2lidDdhelRxMVdDNVZLcFZjTDJ1ZXBCVzF3OHhnVWdXWG5ZNmQ4bEpuSGdpOFMxSEtBYWlKMzI5a1BTOXZuQmxlN2VKWTdWMDNVcVordzZLOSs4RDM4aFJ0ZkhEZ3NBczRQdmo1a2psSG5qbkhBWFI1ZXpITWNtdVloNmsyZHRwK1JvV09aU045emlyeUdRd05BUHA4UGRUK25iV2ZBeWMva0pRQXZuVjcwSE1EbkFFQ1c1VlZOMDc0Z1NWSXl6SWNYdmFxSlhMcXVlN2JLcWFyNlZyMWV2dzNnTG1qN0dabU1LSER5dlV3aDBXVU13OXpoZVQ2ZHpXWjkzL3QyVmoxYWxvVjZ2WTU2dlE2V1phR3FLalJOQy94M2V4b1l4VXpUZkxOZXI3Y0ZRWGhrV1ZiVlBTRnpIS2R1R0ViQjYzVnFWTnZQL0ZwUlRyZm1EZld4cGsyNVhFYXRWa00rbnovM2IraFdGMVdyVlpvTnRVRGM1MTIzOXF4NVVLMVdvYXFxYnpGSEpwTmhkRjJuTFdnRG1vdEE1U0pKa3ZvdWxaK21yUUY4aElLaVJSVnBCeHRpcmJOdDFKczY3dTU4NUhtZE45ZldJWFFKZFFRdWlsOTY0dy9odXgvY0M3UU5yV0k4SDJwWTVJcTFJM2pwS0lLWGpuQnArUFd5ck9CUi9Ra2VONTVTVUVSR29wODVSWDdEb2JQWmJLalpSTUM1MXE4WWdCVUFhUUNtS0lwTG1xYTlwR2xhTXV4Z1dwZGZOWkVzeStkKzN2bVZxV3VhdGxhdjE3OEs0SU8rRG9DUXdYRUF6clYzaXFMNCtzU09ac3FjRHEvTytiMUdsRW9sMytlMzR6aG5vUkhQODBnbWsxQlZOZEJybUNBSXlHUXlUREtaek5Ycjlhd2JHQUZBbzlGb1M1TGsrY0k2aXUxbmk3NGUzcklzYkcxdElabE1JcDFPbjIyRjZxd3U4bXFSSnZQSERRdm51ZlhNdGJ1N2kvVjEvMjZEWEM1M1pYTnpjNHhITkgvbU1TaDZtMlhab1NVc2t4d0tSNjFuaTB0eEltRFIvZVJWanh6RHRJL3duWHQzUFM5ZmlWL0ZLeXZCNXFTOGZlTVc1SmpvR3poMXFoalA4UmZmK3c3K3dvMHY0cVdsZUtEN0Q4UGRsZ1lBTHlMSDJEbytlVG8vMm4rQ1Y3T3JRMys4UmJlelg4UGp4ak04YmVxZVZXbkF5ZmZTc3F4Z1dWYndjdUphMS9CeEVSaUdnYTJ0clV0ZkYwWHhYQXRBVUtkdFp3QndSUlRGMTFSVmpTU1RTYUhmY01pbDY3cm5oeDhzeXlLZno2TldxNTJkc0RVYWpVdXJsd0ZBVVJTZTUzbVYyaGZJQkVVQm5LdENZVm1XWmxEZ2srSFZmcCtxNyszdGRiNitkR1ZaRnNybE1zcmxNalJOQzF4bHhIRWNVcWtVazBxbGNvMUdJN2UvdjMrb24vUzllUDRiamJQOWJKNWJ6N3pVYWpYVTYzVWtrOGx6YlRtS291RFdyVnNvbFVwelgyRzE2RVJSbk50QjFoYzFtMDNzN2UzNXZ1K1NKSWxhMEFZMGowRVJSRkVjMnA5clVrRlJwRWRJUU9hYkZtRFljNE03eHQyUFB2S2NTd1FBYjkxNE5kUmp2cDR2WUZsVzhNNEg3MS9hbW5iUm9XT2ZWUmFOSWl4eUxSMUhJSjBPWVhwODhBenk0VEdPb3l3TTFuK21FUW5tdzhjVjNDMXQrMzcvZEhwODhPd3NSRm91eTFoYnlXQnRKVE0zZ1ZFcnhLZXN0bTFqYTJ2cjBpZXpMTXVpVVBBY3k5SFR6WnMzM1Y5eUdPTFBaYitCajhsazB1M2hSNzFlaCtNNHNDekxjMDRSQUNpS2NxdGVyL3R1WVNOa3hLTEFTWXVtU3hDRTlNU09aa293REhNbkhvOS8ybS9Pa0s3cktKZkxmZDIzVzJVa2lpS1N5U1FTaVVTZzI1M09QWXJadHUzN2VqR0s5ak8vU3BsSnpSaWRKTWR4enRyTjB1azBORTBEeDNIZ09BNXJhMnRvTkJyWTNkMWRpQ0JoMGJBc0M0N2o1bm8rMFVWdUM1cGZGV1F5bVdUcTlmckMvN3pvMTF6Mk5nMzZLZXcwb0kxbmkwdHlHTVRhM1orYUx5TEgySHE2aC9zZlAvSzgvUGJxZFNpeDhHdG9WeFBKd0J2UjNMQm8rM213VHl1SDRmblRCdkpXRkRkYlBGWk5EdGVPV0VnT0E4bGgwR1VlTnVsUWJUekZQL3plZC9IT2cvY0RoVVFYUFgzUnhQZTN0L0NQdnZjT2ZsamFoam5nTnJ4SmF6azJqaEhzbThjdkpBS0FRcUVRdXVWc2xDcVZpdWVKZ050ZUFwejhyT3c4eWZRclZWZFZkUjNBMTBad21JUUVjZWxOSGMvejZnU09ZMnE0YzRueStieG5JR09hSnJhM3R3ZCtuRmFyaFoyZEhkeTlleGU3dTd1WHRtejU2ZlUrUE9nUTdhRDhYcnNXcmFLb2s3c2RiWE56RTVWSzVTeG9WVlVWR3hzYkV6NDZNZ3J1eHJORkNvb2N4K202Qlkzak9PVHorVnkzYlkzRTM5d0ZSVHpQYTVNK2htSGdhWkQxd3VvMW13Z0FhbTBUMzMvNHdQTXlXWWpoWnZibHZoOWZreFY4NWZZYldFdjFEdURkc09qZlBlbStWV2xZT2tPcHBlTUlydGtzOGxZVWVTdUtHNGM4cmg5eVNGa240Ukc1N003REIvajJlei9vS3lDNnlISnMzTjM1Q1Avb2UrL2d3OGVWSVJ6ZFpPd2ZCZnU3Y0VNaXJ4T1MxZFhWcVJxeWF4aUc1NUJ0NEdUUWR1ZEpYT2NhWmI4M2w2cXFpaml0NmlCa0FxTEErVENBNTNtSllaaHZUT3lJcGtDM3VVUzd1N3REblVmak9BNXF0UnJlZSs4OTdPN3VEandvZDloQmtaOUZyQ2k2eUxJc1ZLdFYzTHQzRC9mdjM4ZURCdytHRWlLUzZlTytEMW0wYXJGbXM5azU2L0VTUlZHZ2FkcG5LU3dLYis3U2lMa0ppaUtMK3luSW9sTjZCRVVPMnJoVExYVnRPUnUwSlVqZ29uajd4aTI4V1NnR3V2NC8rTW1QOExzZlg1N1pNbXp2UDl2cmVubXNIWUhtc0dkVlIydUhVYVFzRm5FN3N0QVZSNlo5aFAvUDNYZDlLOUFHWVRrMjNubndQbjcvM3QyWnF5NXkyc2M0Q0hqTTI5dmJ2aUZSMExhTWNUQk4wM04rRWdDazArbExnWmJiQmdKMDM1SVNqOGMvTzd5akpDU1VDSEMrdlVnUUJCYkFyVWtkMENReERITW5uVTUvM2k4RXFWUXFJNTFEVTZ2VnNMbTVpUWNQSHZSZHVhQW95dENyZmZ5T1paS3pScWROcTlWQ3M5bWNxc1U5dmJBc2V6YWtPeDRmM2FpRGViQW9HOCs4bEVxbHJoV1AyV3lXWTFsMkxqS0NjWnI5SHEwNUZhT2dhQ0hGN2Q1RHJNdjJDL3pZNTRSL0xaVkdXbDBlMnZHOG1sM0ZpcnFNNzl5NzI3TUs1ZmMrL2hEdlBpbmpGMWR2NHRiVmxhRWRRNmRuVmdzZnZ6Z0lQQmVKYnpQUUhCWndBQnlkaEd3dkltMFk3REZlUk5vd0Z5QTkwZzliK002OXUzajZvdmNiUTVabEVWZXVZT1ZLL0Z4VjQrUEdNOTlCMTY1SDlTZjQ5dDEzOGRhTld6T3puVzcveUF6VWRsWXFsVHpmV0U5YlNBVEFkN05OUEI0L045eTBrN3VGcU52Smc2SW9OeG1HK1k4Qi9MMTJ1ejE0U1JvaGZkQjFIWXFpTE96SlA4TXdkMlJadnBISlpEemZLT2k2N2x0Tk9Hek5aaE5iVzF1UVpSbWFwb1YrTFN3VUNxaFVLaU1QTFlZOUQ0bU1Icy96NEhrZWdpQWdtODJlVmNIYXRvMzMzbnR2d2tjM3Zkelh4VVhZZUhhUjIycVp6K2M5TCtjNER0bHN0a0NEcmNPWnU2QklVWlJ3RTN4N21OUXF5WDdXTlpQWkY2VHQ3UGZMSDNvT20rWlpEbSt1K2ErSjdKY21LL2lWTDc2Tjk4czd1RnY2cU91ZzYyZFdDNy81NFE5d1hWbkdsMThxb25CbDhQQytvR2o0UFh4NDl2dVA5S2Q5RDlCbXdlREtNWU1ycDV2VUhMU2huNFpHT251TTR6bDcycG4yRWI1OTk5MmVJWjg3aUxtejJ1UUtHMFdLRnlHeUp6OG05TU1XSHUzWGNMLzh5UGYrbnI1bzR0dDMzOFZYYnI4eGtyQ282UnpCT2o1R25JdUNIYkE5MTJrZjQ0blZPKy93MmhyRXNpeUt4ZUpVdFRYWXRvMXl1ZXo1QmxFVVJkODNUOEQ1ZGRYdWlmaEZpcUlVQVh3S2dBcmc4VkFPbXBDUTNQZGswelFQYkp4WWx0WHkrYnpuTmpIYnRydk82aGdWdDBLbFdxMGlsOHRCbHVWQXMwSVZSY0g2K2pwMFhSOUtZR1FZaHQ5cjEweFYwQ3d5VGRPUVRxZDluOThjeDBHV1pmcjM5Q0ZKMGtKV0U3bnE5Ym83VU4vejhrUWlnWHE5Zm9QQ291RG1ydlZzMkNhVnl0S01vdWtRdHlOWU5UbmNiUEZuLzhVRGJDVHJSL1Q0Wk81T04xdjZQalpyM3ZOZzNseGJIK2tXcWxlenEvakZONzZJbGZqVm50ZjlTSCtLdi9yQjkvRDNQM29QclNHM0l3MXplRFlMQnFyRDRxVWpEamNPZVdSTmJtN2ExTUtFUk1WaThkSWI3T2ZPRVQ1c1BjZVdjWUE5cXdVdUdqMzdIdWpXa21nNU5yNTk5MTNVbThNWnBtZ2RPeWkxZFB5bytSUzdoeThnUnRpQlF5SUEyTE5hUGF1SkRNTzR0RFZJRk1XcEM0bUFrNm9ucnpYWUxNdGVta3Qwa1RzQUUvQXZXVC85ODZvQWFQc1pHWnVMcjB1ZDM1OHN5dzZ2ZkhZR01BeHpKNXZORnZ4T29yZTN0eWRhT1dOWkZyYTN0M0h2M2oxVUtzSG4xcm1CVWFGUUdLaFNqRGFmelM2ZTU3R3hzWUY4UHQ4ekJCN1hmS3RaSThzblMyZ1dPU2dDMEhQb3ZsL1FUcnpOWFJyQjgveEFieHpjSjFxbnpwV3M0MEl6aWlZcmVneGNQK1R3MGhGM0tieDU2WWdiU1Zpa09yMy96ZjkvMVpMbjExL1dydUdWRmUrMmttRlNZaUwrdzl0djRNMUNFVHpiK3hQRGQvZkwrSXZ2Zldlbzg0dmViM1NmVXpTSUs4ZVJTNkhSckhybmcvZDd0cHNGcVl3NVBIYXdaN1h3WWVzNWZ0UjhpaDNMUUNLWnhNOTkvZ3UrTXlZc3g4WTdIOXdieXN3aVBzSWlGMXRDbXBkUWxLNmNWVGdOd2pwMnNIL1UrM1g5NHFmejhYamM4Kzlya20vTVROUEUvZnYzUFdlU0JLMTg0amd1MExZVVdaWlhCenRhUWdiVEdZU0lvdmphQkE5bHJCaUd1Wk5NSmovbjE5NjF0N2MzTlZVVzducjJILy80eHlpVlNvSGZRNnVxaXRkZWV3MkZRdUZjZUIyVTMydFhQL2RGeGtlV1pXeHNiQVFPOUZLcEZHN2R1dVY1dnJiSTNJQnQwZHNzTGNzNnE1RDJJZ2dDa3NuazUyaXdkVEN6ZXhaMEFjTXdNWVpoVmdSQnVEYnMreDcza3k3U1kwWU5HUzNobU1GMU05cDFSZjFMUnh5RUlmY3B4WHUwblQwMURjK1FoR2M1dkhWanFCMlhQYm1WSlM5cnZaOXVoNDZOMy92NFEvekZ1OS9CeHkrR00yRHozclBSZDc2NG9kRjZLNHByUit4TVZSbjlzTFNOUi9VblBhL1hUMldNR3h3MWptMFVDZ1hmNjdsdGFNUEFNaEZjNDJORHFTUUNnSXJaTzlqWjM5OC9xeWpsZVI3RlloRnJhMnVYS25OS3BSSTJOemV4djc4L2xHTUxvOUZvWUhOejA3UHlOV3g3WEpEWkJvcWkzQVJWRkpFSjZnd2RCRUhvdlpwelR2QThuMDZuMDU3SnZGZmw0elN3TEF2MWVoMzM3dDBMSFJqZHZIa1R4V0l4MVBCaXY0b2lRUkFXZHFiVnRCTkZFZXZyNjRGYUZUc0pnb0QxOVhWa3M5a1JIZG5zY2IvSCt4MHdQMCtxMVdyWEQvQnl1UnpMOC96Qy9Qd1l4TndFUlRncGlmOG1nS0dYNG96NzAySnh5SnNnU0hDUk5wQTN1WjREcFFFZ1p3MXZ4SmR3eklCdmQzL00zL3Y0UTgrdjM4NWZIMm5MbVI4bEp1TG5idDNHbDE3OURHU2g5N25qTTZ1Ri8vNzlkL0MzdHQ3RjB3QW42cTZZUndYSk1OdlBlbUhCNEpyTjRwWEQyUWlNcW8ybnVMdnpVYy9yWmJQWmdVdnlGVVhCNnFwL2tjblRGMDNjZWZoZ29NY1l0cVp6aE9kTzcwb25TWkxPdHExc2JHeDR6cjdZMzk4L2EvZmEyZGtaVzFpazZ6cnUzNy92TzdpNm4vWTQ5N3FXWmZtZTBFbVNsQUh3dFg2T21aQmg2UHpnanVkNWRYSkhNajRNdzl6SjUvTTVyNU5wMjdabll0VjVaMkRVclMya2s2SW9XRnRidzhiR1JxREFxRWZJSGZoWXlmaDBtNTBYUkNxVlFxRlFhQTk3Zzk0c2NyL0hGNzJpeU5WclhscytuODlSVlZGdjh4UVV4UUNvUE04UE5PSFE2NDMxcEFaYWsvSExXY0ZDSXVCa28xYldIRTVZcFBWb2NYcHFHbmgzLy9JbmhpdnhxM2cxTzlsdWtOVkVFci80eGhkeGUvVjZvSGEwOXh0NytMKy85Ni94dDdiZURWUmg1RFc0K2lQOWFWL0hPZ2czTUxwdVJvZGVUVFlzcG4yRTc5enJ2UkVrSG84amxVb041VEVUaVFTU3lhVHY1ZmMvZm9ScVkvei9YbDZjOWpGMkQxOEV1cTRrU2JoOSt6Wnl1Wnp2cDUwWDM1RHQ3T3hnYjI5MHJaR05SZ01QSGp6QTF0YVc3MG5STUdZbytiM1JGRTk2T01hZlNoTnk2a0pRSkRFTTg0MEpIczdJTVF4eko1MU9mOTR2NkNpVlNqTjFZdWdHUnBWS0pYQmdKRWtTMXRiVzhKblBmQWJKWk5LMzVSbncvMkNYMnBTbVQ2RlFhQWY1T1dVWUJoNCtmT2o3YjZ1cUtuUHIxcTJGYnpGMEs0cG02ZlZnbEZxdFZ0ZFphWXFpSUI2UGY1ckNvdTdtS1NnQ01QZ21ESzhmUU9PdUtLSkIxcE9oT0V6UFlkSVhSUzBIVzd1UG9COE9OdlJjNmRGMjFxMmFhQm9JWEJTdjV3djRFMTk4Sy9EOG92Y2JlMmNWUnZlZVBRNDE5THBpUEIvNmtPeWcrRGFEdkRuODFzTmgrUDdEQjEyMzBnRW5ieVlHL1JUdm9sd3VoNWV1K1lkRjczencvbEFmcjEvN1J5YU8yc2REdXordms3ZHl1VHpVeWlKZDE3Rzd1NHU3ZCs5aWUzdTc2eHdTZDRaUzJESityOGYwc3FpYnBzaDBjZCtUQ1lMQUFyZzEyYU1aTFo3bjA1bE14dk9IemY3K3Z1ZHNzbW5uempCNjc3MzNRcldrY1J5SFhDNkgyN2R2WTNWMTFUTVk4RHRKcG9IVzAwWFROS2lxMnZWTmxHM2IyTjNkeGVibUpnNE9EckM1dWVuN1FRekhjYUZiRmVjSnk3SVFCSUhhemk2b1ZxdGRYMS95K1h5TVpkbkIxelBQc2VIMXpreGVEQ2Z0WjBNMzdvb2lHbVE5R2FtamNFK0hwNmFCMy96d0I2Z1l6M0hiT2NMcmVmOTVMZDBvRHRPMWlzbXZtdWhsN1JyUzZuUXRmUkc0azgxWWF5c1pQTnAvRWlpNGVMK3hoL2NiZTRpeEhHNWRYY0dyVjFPNGRYV2w1Mk5Wak9jb1hKbk02enNMQmptTHc4UFlaTUtxaTVyT0VYN1NxT1BoWHJYbmRYdHR3T3BYNFZPZkFudmM5cHlOMURRUDhjUFNkdC9Qa1dGb09UYjJyT0Z1c1ZRVUJUelBlMVlXV1phRlRDYjhnSGxkMTZIck9nekRRTFBaRFB6eko1dk5EcTFLck51SEk3SXMrNis4STJRTTNPZkV2RmNRTUF4enAxZ3M1cnd1TTAxekt1Y1NoVld2MTFHdjEzdXVSYjhva1VnZ2tVaEExL1d6K3dCT1hydTh0bUpKa3VUNVdrM0dUeFRGbnJPRmRGMXY3Kzd1TWhjclo4dmxNaHFOaHVkMk5JN2pzTGEyNXJzQmRKNjVyNFdUV0w0MDdVcWxFdGJYMXowdjR6Z082WFQ2T3NNd2Q5cnQ5aGZHZkdnellaNkNJcFhuK1kxQjc4UnI0TjIwYkpJZ282TTR2V2NFZFdyWlIyY2hFUUEwQjZnbzZxZWFpR2M1dkxubS9jSTNEUVF1aWxkV01uZzVjUTBQSDFkd3YveW81NXIyUThmR3UvdmxzMURzdXJMY05URGExdXNUQzRxQWs4cWk2REZ3Tk1FQ3dLZEhKdmFzRm83YXg3aS8vYkRuOWRQcDlNaG1OYnh3YkdTeVdUeHVQUE1NQisrWEgyRnRKUU1sTnY2VE82ZDlqTkxoYUY3SGM3bWM1NHlRYXJVS1hkZDcvbjBiaGdISGNkQnF0ZnI2VUVJVVJlUnl1YUgrdTNZN2prVWFJRXltay91ODRqZ09MTXRPMTZjbFErSnVPZk43WHZ2Tko1dFZidGpqdGtVSGZUMVRGQVdLb2lDYnphSmVyM2Y5TzFGVnRlczJKREo2TE11aVVDajRmbGhsMnphcTFTcHF0WnJ2Ry9KbXM0bDc5Kzc1ZmpqaVZrd3ZVbGpraG1iZDVuUXRxbWF6aVVhajRSa2dBMEFxbFdJYWpjYU44UjdWN0ppbm9Dakc4N3ozM3RBUS9EN05zRzE3SkovQ2U2R3RaK01YdDhOVmNmMnREOTg5QzRrQVFOZWJpTFNCZnJxUnVnVkZmdFZFTjdNdlQrU0VPeXkzd3VqVjdDcmVMKzhFQ294Y0grbFB1ODRpcXJ4NDdudlpPRmhNZXlJaGtkTSt4b0Y5ZEJZUUFVQ2xVdW41Qm9IbitiNHFYTUk0NGlKSXI2U3c4L0hIbHk2ekhCdDNTOXQ0KzhiNE8wVXFwakhVbHJOT3FxcGlkWFVWT3pzN2x5NXJOcHNqKzZEQkhiUTlpbi9UYnNmTTgvd0t3ekFyQUJydGRqdllrNW1RSWVvTUEwUlJmRzJDaHpJU0RNUGM0WGsrbmN2bFBOK1k3TzN0emUwSjRjSEJBUTRPRGlETE1qS1pUT0RBaU9PNG5oV1ZtcVpSVURSaGhVS2hMUWlDWHl0bHUxd3VNMEVEVUxlNktKZkxYV290ekdhek1BeGpicDhuRjdsRkR1TWVsVElyU3FVU2J0MjY1WHNlbjhsa3JsQlZrVGNhaGhQUU9GOXNhT3ZaZUVYYUo2dlFnL3JkajdjdUJSaDdobzVyUitILzNZVGo3bTFuWGlHUkxNUndNL3R5Nk1lYXRGZXpxL2lWTDc2TnQ5WmZ4ZkxTNElNbHQvVTYvdCtiZjRCL3V2TSt2dnY0SjloK1hnKzFUVzFRQit4b2dnYy8xckdEaXZrQ215OE9VRFpmbkFVZnBta0dldlBiYlpYOU1LbUpoTzhxNG9kNzFZSG5lWVgxOU1qRU0zdTA3UWFKUktMcjlyZGhZbGtXbXFiaDFxMWJJdzMrL0FiTktvcXlCdUEyUnRUcVRVZ3ZuU2REODFyaFZpZ1VQRnZPRE1PWWk1YXpYcHJOSnJhMnR2RGd3WU9oelh4ek4xbVN5VmhkWFcwcmluTHBEYTlwbW5qdzRBRjJkbllDaDBRdTkvdWswV2ljMjBmTGNkelFaekZPTXpkUVhaUmdMQ3pIY2JxK2JpcUtnbVF5K1RrYWJIM1pQRlVVRFlYZkNZNXBtclJlYzA3MWF2M3E5UEdMQTkvQjBwckRRbmVPWWJEQjk2ZXJQYmFkdmZ2azhndmI3WHdCQWplN2k0ZGVXY25nbFpVTTlNTVc3cGEyOFdqL1NjODVSbDRPSGR1MzZpZ2pYVUdNNVZDNG9rRmtvMmUvOTlxZzFvOUQ1aGhQb3VNcCt6K3dMVHc3TW4xWHVsZXIxWjR0Q09sMGVtekRQRTk3dmowcmJBQ010YXFvNWRnb204RzJuQTBxa1VoQVZWV1VTcVdSREpnVlJSR2Fwa0hUdExGVXQ3WmFMYitmZVF5QXJ3TDRZT1FIUVlpSEM1dlBWSVpodnRGdXQzOXJnb2MwTk82V003L1g2MTRybitlTlc1VlpyVmFSVHFlUlNBeldPS0NxNmtLMUpFMkwxZFhWZGlLUnVCUVNOUnFOZHFsVUNoMFFkWEljQjl2YjIwdzhIajgzZzFHU0pLVFRhVlNydldjM3pqcWU1MkdhNWx5MW93NmJPd3ZONzF3K25VNno5WHFkQmx0Zk1GZEJrVFNFTXlHLzFqTWFnRGUvd2dSRi8rQW5QL0s5YlB0NUhTL0ZyK0lqTm5qb3NkU2xWKzNmUGRuRnN3dkRkMlVoaGxkV1J0cytOQzVLVE1UYk4yN0J0STl3di93SWovWnJlUHBpOERhZHE3eUk2OG95eE5Nd0xYYTZnZTNRc2JIOXZENVFZT1NnamFmYzZFTWl0NzFzLytnUWg4ZitqMldhWnM4M3ZlTm9PYnNva1VpZ1hxOTd0akE5Mm44QzB6NGFlZGpaY214c3Q4YTdBY1FkcG1rWUJtcTFHaHFOeGtCdjNIaWVoNnFxMERSdGFyYjJLSXJpL1drS0lXUFMrWDVNa3FTNStnUlBGTVUxdnkxbjg5eHkxb3RsV2RqWjJSazRNS0tnYVB3MFRZTlhTTFMzdDRkeXVUeTBXUnNIQndmWTJ0cENQcDgvKzNtWnlXVFFhRFRtK25uamJqeHJOQnFUUHBTcFZ5cVY4TnByM3QzS0hNZWhVQ2dVcUFYdHZMa0tpbGcyd0U3dVBsSGY1L3lLQlJ4aS9lK2U3SjZiUytSOVh4RmNPMklEQlFtUjlzbjEvWGkxbmQyZTROYW9VUkc0S0Y3UEYvQjZ2b0JxNHlrZTdUL0J3OGVWdnFxTUFPQ1oxY0k3ZXlWa3BDdDQ5V29LeThJbko5aFBUUVBQckJiZWIzeXlZdlVxTDU1ZHgyODQ5aUZ6akRwM0RKMDk3bXNPVlZBdHg4YiswU0VPN0NNY28zZGxXcEJQeWlaVmZxMXBtbWRRWkRrMkhqNnU0TlhzNkZxMXJHTUgyeTA5ME4vaEtFaVNoSHcrRDl1MjBXcTFZQmdHZEYzdkdSb0pnZ0NlNXlGSkVtUlpIdHRjUEM4OUJuR3JPTmswU3NoRUdJYlIyVW8wL3NGbkkzQzY1Y3h6T0xkcG1ndFJHZEdMR3hpVnkyVWtrMGtrazhsUXI1T3lQSGpiT3dtTzUvbExHODVzMjBhNVhCNUpZTmRxdGJDNXVYbXVnaW1mejJOemMzUG9qelV0M0kxbmRKN2FtMlZacUZRcXZoK2VLb3FDZUR6K2FRcUxQakZYUWRHd2VLM1FIR2RGRWMvUTZLaHhFWTZEYlR0cjJVZjRuVWYzQTkzbnNoMUJuWE42QmdxOWhsaGZiS21hcDJvaVAybDFHV2wxR1paOUZHalZlemNWNHprcXhuUDhIcnhiQmJ0eFc5WGttSWlvS01BNS9iZVVZeUxrMkNmbng4dXlNcFRLbUNmV0lmYVBEa01OWEE1U1RaUk1KaWZXTXB0SUpGQ3RWajFmTysrWEg0MHNLSEkzbkUwcUpPckVjZHpaVnA1aHJhNmZCcklzZjdiWmJLcVRQZzZ5dU56UWRWNUdBcmd0WjM1L25pQXR4b3ZFY1J4M08xYW93SWpqT0lpaU9OY1ZKdE1rbjgrM09ZNDdlemRzR0FhMnRyWkcvcjI4czdQREFHZ25FZ2xHa2lRa2s4bTVIV1R1ZHNKUVVCUk10VnFGcXFxK1ZkcjVmRDUyNzk0OWFrRTdSVUdSQjYrZ2FKdy9WUGdJRGRzYkZ6N2d1ZVIzOTM2Q3c0QVZMaXdZckJ5eHFQRGRmeEIyYXp2enFpWmFtL09ReVBWK2VhZG5TQ1FMc2NEYjAvcHhWamtXc0hOcGVVbkdWMjYvRVNvMGFqazJudGttbmg1WmZZVWF2VDVkZHJkaWRickNSaUd5SEdJUkZpeHovdnZQT2o0K0M2cWF6aEZlOUZuUjFTbVpUSG9PRUd5YWg2ZzJuaUt0RG5lenRkTSt4dTdoaTY3dGVzQkp5TGE3dTR0bXN3bkhjYzRHUkNlVFNkLzJZM0xPRXFpaWlJd0l5N0k5eXo0Nks5NTRucC81VWx1ZTU5TitMV2U2cmxPN2xJL093RWhWVmFUVDZaNnY0VFRRZWp4a1dVYm44T3BoekNNS28xd3VNNUlrbmMwcXF0ZnJjeG0ydXJOMUtmd01ybFFxNGViTm01NlhjUnlIYkRaTExXaW41aW9vWWxsMnBLVTRwbW5TU2NTY2lRWFlkdGF5ai9EZHh6OEpkYitxdzZMUlk3QjFyRnRRNURIRWVoWTNuWVgxNGVNS3ZyKzkxZk42b3d5Sit2SDBSUk5QbTNyUDRLUGwySGp1SE9IQXRucUdHZDNZdHQzenhNRjl3eHdCZzJ0OERJbW9BTFpidFdMSGUrY1VUa3FaRDJ3THoyMnI3NjFobXFiNWJwcDQrTGd5MUtESWFSK2pZaHErUTc5ZHU3dTdsejVaZEJ3SHRWcnQ3TlBwZERvOTBiYXZhU2NJUXN5cnJaQ1FZWkFreVhQalY2Zk9FejZlNTdOZHJqcjFUbHZPZlAvTWl6YkF1aCtPNDZCZXI1OE5yTzBXR05ITTBmSElaREp0bkN3L1FLUFJhRzl2YjQrd2NmK3kweUhYZU8yMTE5eVQvL1pwcGRGY2NRTnorcjRPcnRWcVlXOXZ6N2ZTTzVGSXdIR2N6MU5ZTkdkQmtTUkpTOE80SDBWUnZHZHJXQllGUlhNbUVxQ1FJMHcxVWFkck5vdWRMb090L2VZVGZmemk0TklRNjdWVWVxWTNuUVZSYlR6Rk93L2U3M205MjZ2WDhYcStnSjM5R2g0M251SFJmbTNxZ3FOT1R2c1lUNDhzUExQTmdjS2hUcjFLcUVWUlJDcVZ3bFdPUjBhUXVnZEVYY1E1SG5HT1Ircll3WjdWQ2gwWWNSeUhlRHp1dVFYczBmNlR2bzdKaXhzUytSMmZPeU9vMFdoNHZyWjNjZ09qMWRYVmdUZnN6Q3ZlYnowb0lVUG1Wd0hRMldZaFNkTDFjUjNQc1BWcU9kdmIyNk1Ud0pBNkE2T0xXNDVLcFJMOWZZNUJQQjQvcXlZeURBT2xVbWtpQVUzblRKcEVJc0g0TGRtWVpUelBROWZIdTdoakhyZ3RhSDduOWFsVWltazBHamNXUFN5YXE2Qm8xQXpEbUp0K2VISWl5Q0JycjJxaXE3eDRLY3lwR00vUERVTmVPbzVnMlk3Z0tYZDU3b3praEdzN2V6bVI5TGptL0REdEk3enpRZStRYUNWK0ZhK2ZEdlJlVFNTeG1ramlDMnZyWjBPd0h6ZWVEbVZ6V2xnOHkyRlovdVMxd1RwMjBEcDJ1cTYxSDBTdmFxSmNMb2NVTHlMRmkwTjVQRDdDSWhlVGtUcDJzR3UrQ05XV3BxcXFaMUJrT1RaMjltdFlIY0wzOXU3aGkwdC96Nlpwbm0wZTYrZkVZR2RuQjgxbWMyTER3Q2VOZnRhUmFlQTNkNlB6T2MzenZNSXd6RGZhN2ZadmpldTRob1ZsV1MyWlRIcStJYkJ0bXdaWUQ4QU5qRTVib0dBWWh1ZlBJako4cVZTcURZQVoxMHlpYm1xMUdqUk5neUFJeUdReTdhMnRyYm1xS2hJRTRYY2JqY1lmQVVBRGJrTndIQWU3dTd0WVcxdnp2VTQrbjc5eTc5NjlNUjdWOUtHZ3lJT2lLSjQvbk9leHQzWFJSWHNFUmZlZVBmYXNKbHBOcC9GczU2TnpYMnQ1QkFMWGpsZzBQRFpsZFF1b3ZJS2lZWnhNVDdQdjNIc3ZVRlhRV3pkZTlmeTZPd1RiVlcvcWVIUmFjZlQ0NE5uUWp0UFA3ZngxQ0Z3VVQ0OU1QTGV0a1lSRHJsN0JSenFkUmxGTDRSby8vQkV5ZklSRlFieUNKOVloOXF4V29ObEtxcXBpWjJmSDg3SkhBd1pGVHZzWTJ5MzlYS1dXdXgxb0dETTk2dlg2V1hVVytjU28yN3dKNmFYek5WQ1NKQUV6dVBuc3RPV3M0TmZtV2k2WDZYM25FRFNiemJtcklwbG1QTStmVlJOdGIyOVAvSHU0TXhCUUZJWFJORzF1Wm42NVcveGFyUmI5VE83RHdjRkIxdzJ2Z2lCQWx1V0ZyaXFpYnl3UGZsWDFWTm8zZjNwdFBIdi8yZDZsci9FczUxbmg4OHk4UEVqT0hXeDk2ZXMrajd2OXZINHBtRnFKWCsxNmpMUHV3OGVWUUdIT200VWlsRml3Q2hsTlZuQXoreklzZTNTQkRYQXlGUE9WbC9PSWFWZnhvK1pUbE0zTGxTM0R0cisvMy9WNGJyeVVHMGxJMU9rYUgwTlJ1b0pvZ0pZMnQvM015eUR0WnkzSHh1YUxnN09ReUxadDdPN3U0dDY5ZTBOOUU3aW9uK2k3SzNlOURLdk5tNUJCbUtZSndQODkyelJqR09hT3BtbWY5VHRCb1FIV1pGYWwwK2syQUZRcWxhbHA4enM0T0VDbFVnRnc4bUhhdkhEYnB0elhRaEplcVZTQ2JmdFh5ZWR5dVN0alBKeXBNMDhWUlc4UDY0NW9EaEZ4YlQrLy9FWnRXVmFneVFwNGxvUFZFZXFjYmNxNlFIVlkxSStQWVhZTVJCSjhCbG5mZS9iNDB0ZFcxUGtOaXVwTkhkOS8rS0RuOVY3V3JvVmFwMTV2NnZqT3ZidStWVW92YTlmdzFvMVhJWEJSNkljdE5BOC9DZm1lTm5WWXRvM0hEZi93cXVrY3dWMjVLZ2pDVURhRUJXSGJkdGZTK1ZkVzg4Z3ZlWWN5dzhaSFdCU2xLNWNxZXJ4MGF6L3JaL3ZaeFlxbVJxT0JVcWswa2s4dUhjZEJvOUdBcXFwRHYrOXBSc084eWJSejUwYk80bnMybG1XMWREcnQreVRiM2QwZDUrRVFNaFE4enlPUlNEQ0dZVXpkaHl6VmFoV1daU0dielhwdXQ1NUZQSCt5dTVrcTV2cG5XUmFxMVNweU9lOTlBcWZ2OVQrM3FGVkZjL1ZPa09mNW9mMTVaRm0rOU1TakorSjg2VFlueUhWeERoR0FzMWswTHlldW5Wdmo3aGNVQWNES0VZc2Q0Wk13d1c4NXExY0ZVK2ZzbTNuei9ZY1B6b1Z0WHBhWFpOK1dNeS8xcG81djMzM1g5MzdYVW1tOGZlT1RMZ1VsSnA2clZQSUtMWnoyTVE3c0k3eHdqbkJnSC9XMXpuNFlHbzJHNzJXeUpPRnpMd1VQMDRhQlpTSW9pRXJQc0toYis5bmp4clBBUVZITHNWR3hqSFBCM1A3K3Z1OTloeEdQeCtFNGp1ZnJmS2xVd3UzYnR3ZCtqRm5obHJNVE1zMDY1MGJLc3Z3ekV6NmN3QmlHdVpQTlpxLzdCVnlWU29WV1haT1pwR2thYk51ZTJrMTk3dHlxZWFFb2ltNFl4cWNuZlJ5enp0MTQ2L2Vhbk12bFdGM1gxeFl4TEpxcm9HaVlueW9KZ2tEQkVQRWt4MDdhZWxiVTVYTkJFWEJTZ2RRNTBOcTFkQnhCM0k3Z3dHT3d0ZXVwYVhnR1U3TlNVV1RhUjNqYTFQRzQ4ZXlzS3NjTHo1ME1mbTRldG5xMm5DMHZ5ZmpLN1RjQ2IzenJGUks5V1NnR3JreHlWOW03LzU4RzNkN2dmUHBUYStBamZoSGs2QVFKaXppT2d5aUtuaWMvai9aclp3UEsvVGp0WSt3Zm1kaTc4UHdJR2hMeFBIKzIvY1k5c2JSdCsyeDduQ1JKWnhWRHBWTHAwdC96cEdjc2pCdkxCdm8rZWh2QXZ4bnRrUkRpci9ONUtRakNUUFNUTUF4elI1YmxHNmxVeXZPVEtuY0lQeUd6aG1WWkpKTkpWS3RWQ2pySGhHVlp3ekNNeXljZEpMVHQ3VzNjdkhuVDkvSmlzYmk4dGJXMWNHSFJYQVZGdytRM242SGIwQ3V5R0RvcmluQ2hhK3JlczhlZVFSRndVbFdrZXd5MmR2bk5Rd29ha2t5Q2FSL2hjZU1aSGo2dTRGRTkrTHlaSU5mbFdRNXYzYmdWK005L3NqbnRubTlJZEh2MWV0ZVF5RjFqZjNoc1Q3UnF5STl0Mjc3aGRUd2V4NXAyYmN4SDlBbVdpU0FmazdGbFBQZjllMU5WMWZQTlk3Y3RkUzNIeGpQYnhOTWo2OUw5NnJyZU15U1NaUm1aVE1iek5admpPR1F5bVV0ZnorZnpQVnY4SmlrQ0JobEJ3bkwwa3c5R21zNFJYamoycFNBdGpNNlRia21TdWw1WEZFVjY3MEFtcm5OdUpNL3pWMmRsODFtM21SZTd1N3NMRjB5VCtaQk1KdHVOUnNPdTFXclQrNloxemtpUzlLTjZ2ZjdsU1IvSFBHaTFXcWhVS3A3dkM0R1Q5NHo1Zkg1NWMzTnp6RWMyV1F2M1prL1hkYkFzMi9PTk1JVkJ4SThiRkFsY0ZDOXIxODZGSHU4LzI4TXZyWHEzU2JGZ2NPMkl4Ujd2L1NiUWJ4N1NOREx0STl3dlA4TDk4cU9lcldQOStzcnRONkNGK1BOLysrNjd2cUhEV2lydFdiWFNkSTd3N01oRTY5anBPV2RuMHJxMW5YMzYraHJZQUlPbFI0bVBzTWpGbHJCejZQMXY0TGRORWdEdVAza01yV1BndFhYc29PbllPR3A3VitEMUttMW5XUmI1Zkw3dnVVTDVmQjZibTV2blpoall0ajN4dVQzUjAwQk9aTThmaDh4R0liUFJnWUtpempYa3ZZWURUL3J2Z1JEZ1VyZ3BZOG8zbjdrRHJQM2VmK3E2UHJVQk5TRzlXSmJGVUVnMFBtNUJRK2ZQYmpLWVdxMEdWVlY5TXdKSmtyQzZ1dnJtSWxVVkxkUzdQZE0wc2JXMUJaWmxjZXZXcmE1dmRpVkpBc3V5bHo3WjZleUpKN010Mm1Qam1aZUxGVDVySzVselFkRXpxNFY3eng3ajF0VVZ6OXRyRGd2ZDhUNzUzZFl2QjBYVDJIYjJ3OUkyN3U1OE5OTEhlR3Y5MVZBaDBROUwyNzRoMGZLU2pMZHYzSUxUUGtiVHNYRjQ3SnhWWU13U3Y2QkkwelJjazZaanBreWM0M0dWNC9ITXZqd2tzdHZyNXNmUG44RVdnMjh1YWpRYXZvTW9SVkZFc1ZnY0tNemdPTzdTc010V3F6WHgxLzZDcUl5a3ZkQzI3WFBWWHJNNEhKak1wMjdiWmp1L1oyZGg4eG5Mc2xvMm0vVjhZWnJtdVM2RUJERlBzMzltZ2Z1YVIyTlNoc2R4SE96dTdtSjlmZDMzT29sRUFvMUc0OU9MRWhaTjlpUG9NWFBmOUx0YmJIcngralI2SENYQnpTbVpoekx2K0Q2Q29vc1ZQcXVKSlBnTG4rNi8rNlRjOVQ1V2psaGMvQzc2K01VQkRqMkNDMzZLUHJtdk4zWDgwM2YvWU9RaEVRQThmRnlCZmhpc09rSS9iSFU5cGtKaERWdkdBZDUvMGNET1lSTjdWbXZtUWlJQXZwODBwOU5weExucE9VbktDQklpOEg1dStRMUo3bll5Nk1WdmhzY3dRaUkvazI0SHVjcnhYVU1peDZmNktvaGFyWGJ1enpmcFFJeVFvTnkxeHIycXhDZU5ZWmc3eVdUeXV0OXJVNzFlbjRzdFRJU1E4WkFrcVUyRHJJZXYyV3hpYisveUtKQk8rWHcreHJLc3hqRE1uVEVkMXNRc1ZGRFVLVWhRUkp0ZnlFVmVyV0F2Sjg3UGhubS9zWWVucG44cGFLd2R3WlhqODArOWovU25nUjl2M0V6N0NOLzk0QjUrNXdmZjZ6cFBacGdlSHp6RDc3ejdQYnhmN2oybytQc1BIL2hlbGs2bmNSeGxoOUpXdHNSeVdHSTVYT1Y0cEhqeDdMODBMK0c2cUp6N3IvUHl6dit1Y3Z6Wi9VUkR0SXI1QlNueGVCekwwdExBZjdaaFlwa0lNb0wzU1p0ZkFCRm04S1ZoR0o3WFoxa1doVUpoYUNIUnhhcWFTWlozUjhBZ3hYdlB6WE0xK3d3L080ZDZBN05SbVVIbUY4TXczMkJaTnZBM1llZHJnU2lLcjQva29JYUFaVmt0bVV4Nkp1aTJiVS9kS25GQ3lIU1RKS2xsV1pidnZEUFN2MnExQ3RNMGZTL25PQTdGWXJIN0ZwWTVNVDNsQ21NV3BBODhrVWlnWEM1UC9KTmtNajI4S254dVpsY3ZiVC83dlk4L3hKKzgvcG5BOTFzeG5udCtmZEpCa1drZmRaMzlNMHFXWStQNzIxdDR0UDhFYjkxNDlkd0tlMWUxOGRSM01MWW9pcjVENmZ4RXdFQmtXZkJNQkV0c0ZId2tBakhDaHA3L0k3UEIyL1NiemhGYWpvT2p0b01EKzhoekxvOWZVSlRKWkVJOTFyZ3NSd1hzV2ExTGZ4YS9PVVZoUGtuM3F5WktwOU5ZbHBiTy9qNnNZMmVnb2VRWEE1TkovaHk0eHNkNnRwdzlPL0ovVTlQTnhXb2lDb3JJcEVtU0ZMajNzWE1jQU0vejRWN3d4NFJobUR1cnE2c0Z2eENiM21jU2NoN1A4MmMvaTFxdEZqMC9QUEE4Lzd6UmFLUW1mUnp6eUhFY2xFcWxyaTFvaXpLdmFLR0Nvb3N2TlBmdjM0Y2tTY2puODc2M2NWYzl1Z0t1RFNZanBCKzJjTGUwalVmN1QyQTVObTZ2WHUrNVh0dkxZZVFZUUxoL1Q5a2pyTkJrQmN0TDhya3c1ZDM5TXQ1SVpIMDNvRjNrRnhSTmN1UFp6bjROMzMvNEFFM3pjR0xIQUp4VUZ6MThYUEg4Tjc1YjhtODV5K1Z5UGU4N3lrUWdzeHhpRVE0eXkxMGFFandPN2lCaUFNZ0lKeTFFQi9ZUm50a21XbzZEWTdROWd5SlJGQ0ZKRW1Jam1Ga3pEQ2xlUk5sOGNlNXJmdHNrZ2VBYkpmMnFRYi80VXY1U21KaHBIMk83cFErbG9teFNGVVd4Q051em1zZzZkdkM4ajVibGk5VkV3UFMzOEJEUzZjSkE2OVZwM0h6R3NxeVdTQ1E4THpOTmsyYTdFSEpLbG1Ya2NqblBuME9HWVVEWDlYYXRWbU9vVGZOazQ5bnU3aTV0UEJzUnR3VXRsZkxQNGhLSkJDekwrdnc4aDBVTDFYcDI4WTErcTlYcStRTTZrOGxBMHpUSXNneFpsc2NTRk0zaS9KUngrZkJ4QmYvb3pqdDR1RmM5MjdaMWQrY2oxSnZoWnB3QXVEUW55TXZWQ3lkb2Npem1lYjJiSG12WC8vNUg3d1UrRnErZ2FIbHAvSzJQOWFZTy9iQ0ZEeDlYOEozMzM1dDRTQVFBc2hEekRJbjB3eFllSHp6enZJMm1hYjZoUTVTSjRDckg0N3FvWUdOSlJTNG00eG9mbTBoSTVJVmxJbGlPQ2lpSVYzQkx2b3Fzc09RNXJGRFR0TlByaDUrMU5RN0xVZUZTZTUwN0pOcExrRThNZFYzM3ZON0wyalhQaWpPV2lhQWdEcWNxYnhLZmFFYkFJQ2YwYmkzY1ArcnZlZXBWeVVBZmhwQlowdm0rVHBLa0pVelo1ak4zTnBIZjVidTd1K004SEVLbTBtbnJlSHQ5ZmIzcnhxbFVLc1c4OXRwclNLZlRDLzJ6eW4wZlJZSFphSlhMNVo0ZkVtWXlHU1llajM5Nlh1Y1ZUY2VaMFpUclZuRkV4bWNjMjdZdXVpcUllQlpnNWZRckt4bDgvK0dEYzZ2aW4xa3QvTzdIVy9qeVM4V3V0LzM0aFhjYkpEL21hcUlQSDFmd3pvUDN4L3FZUWR6MnFSYTdYMzdrZTV0ME9uM3U5MjdsME5Xb01KV3RXdDBzUjcyN01OeGgrMkxJaXFKSUcxZzZaaEM3TUNmck1IS01GNUUyam9lWU95V2lNVlN0OHo5a1JWSDBmSE5qR0ViUGRmWitMWGd2SjVLK3QyR1pDQkpSQWZ0OXRtYTV3c3hSR3BhTUlQVU1NSjMyTVo0ZWhYK3o2RmZKUUJWRlpNSkNCVDJkcnlYVDJEYlpiVGFSWVJpQnhpQVFNczlFVVVTaFVJQWdDSUhmZmJnZjRtOXZiMC9rWi9Pa1VWQTBQcVZTQ1RkdjN1eDZuWHcrSDl2YzNFeDN2ZEtNV3FpS29sbGhEYUZOWWxZSnh3eldXMUhjYlBGWU5UbEl6c25QalozOW1tOUk5TEoyTGRRcTlWRzVtWDM1MHRlKysvZ25YUWRiQS9EY2RnYjRWeStOUXIycFQyVklCQUNQRzk2RHZoOCtybmgrWGRPMHMwSEVzUWlMckxCMFZqazBheUVSQU05cU9aN256LzZNWWVZbnBTd1dyeHhHa2JPaXVHYXo1LzdMV1ZIY09EeDUzaTNiRVVUNkcrMXp6bkwwOG9uYklFR0VmMUIwemZQcnJrUjBmTStsUVVXWkNGSzhpQnRTM0RjazdMUm50ZnFhdytTM2lqdklwN1M2cmxzQWFEMG5HWW5PNzhGZWxYeWRKNG5URm5MMjJuUkcxVVJrMGJtYlNpOHVqd2hDRUFRVWkwWEU0L0VSSE5sMGt5UUp1cTUvY2RMSHNRaGFyVmJQMTJxTzQ1RFA1M01jeHowYzAyR05EUVZGVThnYVlNM3hMSXNlQTNtVEEzdTZXbnZwT0lMTUVRZlRQc0k3SC9pSEdEKzE4cW0rVG1xZElYZnNySzFjbnFONTZOajR2WTgvN0hxN2JkMjcvZEZySHRLb3ZQUEJ2YkU5VmxnUDk2clFEODkvWXJTelh6dFh2ZFVwbVV3aUFnWnBYa0l4NE1uMk5MUHN5K2ZqY2t3TXRUVU5BRElXQzgxaHo1NWZmcGFPSTFnNTRuRGprRWQ4d01DSVpTSzRjaUdjODJzSjlBdUJPbmw5Y3JpOEpQZWM1Y1ZIMkV2SDBZOGd4OWlQQ0JoY1lhTllqY25ZV0ZLUjRzV2V3NnVCa3c4VitxbVUwblhkczUweEtNTXdxZ0IrdSs4N0lLU0x6c0FuU0xWQTUvTnkyamFmYVpybStZSTc2SE9Ra0Zrbnl6SnUzcnc1MEtaU2p1T3d0cloyMW9xL0tIaWVQM1ljaDdxQ3hxUldxL1Y4LzZjb0NyTFpiR0hlV3RBb0tKcENUbnNJSCtYUG9Nd1JkK2trbG04eitNNjk5M3hEZ1l4MEJaOWJ1b1pYRHFPNGRzU0dPcWsxaDFFeTBVR0ppVmhMWGE0OGZIZS9qTzNuMHp1czh2M3l6a1MybW9WeHQ3Ujk3dmVQOXIwM1g0bUNnRStwR2phVzRyakd6MDRWU1ZnOEUwRlJ1b0pFd0JCTWNoaW9UdmgrL3BlT09GdzNvNGpiL2Yrb1dMb1EwUFE3VjhBMFRjL3FncUNiQVM4ZVJ5OUJCbXNQSWhaaGtZZ0t1QzRxdUNWZlJWNVVFT2ZDdGM3c1hoZ1dIbFNsNGwyTkIzUWZPTzVxdFZwVkFKTWZZRWJJQlpJazNaajBNUUFuMVVTYXBuM1dyMUtpMjNPUWtIa255eklLaGVGdEY4L244d3NWRmttUzFEUU1ZM3lmSmhOc2IyL0ROTHQvTUpkSUpKQk1KajgzVDJFUkJVVlRhQmdiZW1aTjNJNWc2Zmp5dCtOVDAvQWRXQXdBYjZYeUFBQVdESzdaN01BbnRZUHltNmZUYmJEMU05UDdFOU9nSjhDRDZyWTViRm84M0t2QzdLaXNlZHp3L3A3NFZDS0ZGQytHWG1jL2E1cUhMYkJNQkprQWc0NEJRSFg2Ly92ZzJ3eGVPdUt3YW5LSTlsSHNHTDlRN2VQWEhpS3pVWHhhWHNhbjVXWFBMVjkrbFFWQksrL0VrQUdWMTd5VGZqYWZSY0JnaWVWd2xlT1I1aVZjRnhXOHVxU2lLTVdSRVpiNmJvYzhzSzIrRmgvczcrLzdWaktJb2hqbzA5MUdvN0VaK29FSkdaSE81eVhQODFjWmh2bkdCQS9uVERxZDlud3ltYVpKMVVSa1lia3ppWHI5ckRGTkUzdDdlKzJIRHgvaXdZTUhlUERnQVVxbEVtemIrK2RlTnB1RkxJOS9DY3draUtKWU1neGpPamVaekNuSGNiQzl2ZTM3L2VkS3A5T3NLSXByOHhJV3pWWFptbW1hb2Z0Y2czeDZPZ2xPKzNqdVQzWmRrVGF3Y3NTaVpSL2h1M3MvT1hkWnQwcWNHTXZoMXRXVmMxOXpUMm9WNXhoUG9rN1BxcUVYa1dQUGdNcFZ1S0xoSTkxN1JvNFh0NnJvNFY3MTNOZWZXUzE4OS9GUDhQYktweTdkeG0rR0VUOUFPVzVRUHl4dCsxWnJUWnVIanl0NE5ic0svYkRsdTQydDE2eWFlZEUwRDZFZnRqdzNmWG1KdGdkL1A3RjBITUVySm84bm5JTW4wZUJoTmg5aEVXVWlPT3BvcVdWWnR1dnNrUlIvMGxwWDdxaVk4UXRwVnRTcmdZNGo3TkJ2UVJBdUhXZTNZM1lIcGkreFVmQ1JDTVFJTzdMWGNLZDlqTjNEOE5WRXRtMmpXcTM2WGg3a0U5bEdvOUYwSE9kalVFVVJtUktkejB0RlVaYXExZXBFTjUvMXFpYWkyVVJrVWJFc2kyS3gyRFVrTWd3RHRWck5YYlp3N3MxTHM5bUVydXNvRkFxWFBuVGlPQTZGUWdGYlcxdHpQZUNhWlZsd0hQZlljWnhQVC9wWUZrMnIxVUs1WE82NjVPcDBYdEh5NXVaOGZKNDJWMG1FWlZtaHozaW5kYjFpYTRHcWlqVDdaRzZLeUVXeC9ieU8zL3Y0dzdQL3VvVTBieVN5RUgxbWsxdzVqaUJ2Y3FIYjBYcHBIdlkrTi9Lckt2cmRqN2Q2RHJZZUo5TSs2cm81Yk5xNHc2dWZlZ3gzZHFYVjVYRWR6c1Q1RGZNZXRXczJpNHdWN25sMU1hUUpFdEF2UjRWemxVWDlWUE4wNmllMHVYaWNmaHRHMHJ4ME5qQjkrWFN6M2lpRC9vcHA5RFhBdWxhcmRkMlNFakFvZWcvQXR3QTBRaDhBSVNNd2padlAvS3FKYU5NWldXUzlLb24yOXZiYW01dWJuaHM1WFpabFlXdHJ5M05tek9sSit0U2UydzJEKzc2RXFoSW5vMTZ2K3k0RGNVbVNCRTNUUGpzUFZVWHpGQlI5ZDlJSE1Felc4V0lNdEk2MGdlV09WckZlcStRN2VWWG5kQXJTam1hRVRKR2FoNzAvcGZDYlZYVG8yUGdIdSsvRDZlTUVieFMrZmZmZG1ha21Bb0NuTDVyUUQxdStRZEZLUEZobHlhenhDNy9DaEh4UHVlRUd6NnJESW05eWdjT2lYaXZlL1NTaXd0blFicjlQQ0VjWkRsNmNVK1RWbjM2VjQ4YzZENnZwSE9HWkhYNGxybTNicU5XOFozc0JKeUZSd0xhemY5dHV0eCszMjIycUtDSkQxVy9MV09menNwL3RTY01XajhjL1RiT0pDRGt2blU3N3p2NnpiUnNQSGp4QXVWd09WUDdzT0k1dldDUkpFdkw1L0hTODBSNEJRUkJnbXVaVXpHSmJWRzVZMUswTkxaMU9jeXpMenZ6Z3JIa0tpdWJLMFlKc1BsT2N5TGtCMW9Vckd0NUlaSHZlN3JxeWpHVWgyQ3BjdHgzdCtpRjNLVEN5bU80L1M2NTZ6RW9Kd3ErcWFQdHBEZDlyMVFLRlJYeVBUVTZEdVBQd3dkUVBzUFp5di96SU42d2IxMHluU1pDRnkwR0U1ZGpZOFJucWZaSE90dkZ4ZExpaFlLd2R3WFV6R2lnc2lnVm8rNUpqbC8rTTdPbXFlTUMvbW1lVUxyNnA5VHFHS3lFSFVBK2kzNVl6QUNpWHk3NnRjeXpMSXAyK0hHNWYxR2cwZE1keEh2ZDFBSVI0WUJqbUx6TU04NWNWUmJtVHpXYi9XckZZL0MvQzNzZkZUOWFUeWVTdnUvYzd0QU1OaUdHWU82bFV5ak01cG1vaXNxaGtXVVltYzNrek1IQVM5RzV0YmZWVkliTzl2ZTFaYmF5cUtqT3Z3NjE1bm05YmxxVk8ramdXWGIxZXg3MTc5M3pESWtFUW9LcnE2cGdQYStqbWFrYlJQR2s2UjBoaE91Y25EZE0xKy9JSjVDKytmQk1WNHprcXhuUGYyMTFmeWNCQnUrZXE3MDZ4ZGdRdkhVVnd6VzdqS2VlZ3dSN2pzTWRaYnRBdzZpSWxKdUxtU3kvai9zZVhxejcrMWRZOUpOOTgrMnh1ak44eGFDTUtQbmIyYTU3SE5Rc2VQcTc0QmtMam1PazBLU3ZxMVV0enI0Q1Q3VytyaWVTbHJ6ZWRrOEhmTHh3YlY5Z29SSmJEQVhlTUkrWUlPZXZ5ZHNGKzhXMEdlWk5EU2JCeDNPVXVXYWIzNC9rTnBWNk9DdGl6SmpOdjRHSWJpMWRRRk9UUE5peDdWcXV2RHhGMFhlOWF5cDlNSmdOVll1enQ3ZjBiQVA4czlBRVEwc0VOY0dSWi9wblYxZFhQcWFyS0RySWlHemcvb3pLWHl5V1N5ZVIvMFdnMFRFRVFDcFpsYlFPNDEyNjNmMnZnZys5Qmx1VWJmbFVUVkUxRUZoSFA4NzRiem16Ynh0YldWdDhmQkxrRGhqYzJOaTVWeE9iemVlVHplVFFhalhhbFVtSG1aVzZSSkVrdFhkZm45NVBSR2VJNERrcWxFdGJXMWp3dlYxVjE1azlNWnY0UE1BbW1hYUpXcThFd0RLeXZyNC9rTVZwZGhxYk9DOFZod0hzTTJSVzVLTjVLNWZFUGZ2SWp6OXZKUWd5NVRCb2ZIWitjOU1iYTRRcmorRGFEbFNNT0swY253NnpENkRZZjU2TGIrZXQ0dEYrN05IaTVhUjdpKzQrMjhmcHAxZEU0YThmMHd4YmUrZUQ5TVQ3aWNGbU83YnNGYjU0cmltN25DNTVCMGNPOUt0NWNXNGZBUlZGdjZuaDBXbUcwZjNRSXAzMFNRS3BYcnVENlVoeEpKUTZEYmFNazJIakpZa00vYi96RTJpZnp3RDZLK1ZjczhSZm05WGg5Y3RodEtIV0tGOEh6L0tVM2s2TnVOeFFFd2ZOeE8xbkh4OEFZeGlFYzJCYjJqN3F2WnZYVGJYaXVLSXErbi9SMk90M1V0TlBYQVJDQ1R3SWlUZFArVkRxZHp2bUZrK2IvbjczL0QyNGt6Yzg3d1NlUnlVd2ttRmxJTWxFQWdRWUttQWFiYkZheFZHeDFxYnJuM0MyTmVpVGQ2Q1RONkN6SmxyVW55UTZ2STN6aGlEM2ZSbGgvYk1URk92YVB2WTI1aVBOR2JDaFdzVjZmUjlxNzlVa3IyM3R0Yit5Y1pQZktudDVUZDZ0YlV6WE5JcnZZUkRWSW9BQUNCYkFTbFNDU1NHUUM5d2VZS1B6SVRDUitneXg4SWpxNkNJQmdFc3g4ODMyZjkvayszMm9Wc2l4RGtpVEg3NjBvU29mWXlUQU1Bb0VBRXdnRS9xb3N5OGhrTXA4UUJMR05DUXBHQkVGOEhJMUdyNWs5VjYxV0YyNmlCUzhsc1ZqTXRLeDVWSkhJd01nc3NnckpGZ1NCRUFRQm4zLysrVXljeWVPR3B1bm5zaXdQdDR1OVlPeVVTaVVVQ2dYNGZMNmU1NjVDVnRaTEx4Ulp0V28ydytnWTA1N3pJTXV5WmMzdEtOVFJ1UEtkejd3bWJpSURPemRSdVhxT1lsbUd5UEZJTWhwaTFjSEZJZ083am1jQUVQSjB6dmthTmVjQ0hrTXRZU2NXeDRlUGVvV1p2ZlF4Ym9admdKbGdlWmtaSDM3eDhGTGxFZzNDVlhZVTJUblVUcVJuMkVzZld3cG8yV3dXQ1pMQ3pmQU5ySytGQURlTEpLTWhwRks0MXVmOGQ0cTc0Y0txNXNJcFpTNTcwbTJsWjFZMlhUdWh6MHN0Z1dXWWtTWjU2cEFOQW5pZTczRGpkSS81enpVVnEwdVR6VVZSNi9yUUpXZXBWTXEyQTB3a0VuSDBQdmw4ZmgvTkFPdEZOdEdDZ1NBSTRyc2tTYTRHZzhHLzV2ZjdlYlBGbkNSSmtHVVpzaXdQMWJFb2w4dWhVcW1BNS9tZU9SblA4OWpjM0x3bnkvSzlaREw1THdpQzJHNDBHcjh6OUM5a0FVM1RRYlBGQXJEb2RMYmc1Y1R2OTF1dWtSS0p4Tmk2a3ltS2drUWlZYnQ1SHd3R0cwZEhSNWUrcGJ6SDQvbFJLcFZhNi8vS0JkUENhbTVhcVZRdWZWYlcxVjFaT2NTcDJsZXRWazBIdFVtcWhVcGRCMGRlVGFISTFZRHRJclZmUy9vUHY5akZ0M2J1Z3FHVzhOaXRZVlZ6WWEwMi90TzV1NnZhMDdQbllPb0VxZzVUZkY5YkMrRitNdEhqS2xKMURaOGNQc0s3cjI4M3MxbW1zTkg0TUgxa0tTWXNtSC9lV3QrRXF0VTZuRVUzeE91T3hEOVYxM0QvNkRIdUh6M0dtbmNGTzdGWFVSZFdzYXE1Y0wxR2pxVVViYTFHUVhhcHFQVVpzc3dtaGpSSjJZcW1KT0VDNjZKR3VrelVJWFBmK25Wb2U2N1hvTmIxRGpGczNLU3FaME4xT1pObDJUYkEyaTVjdEJ0Smt2NEVpMjVuQ3diZ0lweDZXeFRGWHcrSHc1RnVnZWlpRGJZbVNSSmxsWi9sbEhLNWpISzVqR3kyT1Q2U0pBbVdaU0dLWW11bmwrZDViRzF0L2RWOFBpOFRCSUZ4aWtVWGJpSlQxVldXNVlXYmFNRkxCMDNUbHRsM3FWUnE3RjI3eXVVeWNybGNJeEFJbUU1b2ZENGZVU3dXTDNXM01LTWMvaW80bzY0U1Z2TW9XWmFIczRIUEVWZFRoUmd6bXFhWmlrUit2MzhnUjlLZ25GMVI1d2NBQ0xyMXFhZG9OVnRIRWREc2dQWEo0YU1YWDFOMUpKamFSRHFLdGJ1S3puVU5va1VITlN2dXJadnZjQnptc3BEUEZjdHNsbkZTTE11NG4zdzg4Wit6WUxLOCsvbzIzdG04aFRYdkN1N0ZONkJxMnNBT3NaUFNNM3ovd1dmNG4rOS9paS9QUzBneUdzNko4UlJBbW1XT2RXUFdwV1FhWllQRGRwSVVCS0hqYTdQakg2WUxtVk9lcXVkRDNRdU0rNVlWVGt2T0FLQlFLR1JVVmYxaTBlMXNnVk1JZ3ZndXk3Sy91Ykd4OFE5aXNWaUhTQ1RMTWg0OWVvU0xOdGdqaTBSbTZMcU9jcm1NbzZNajdPM3R0YTViaXFJUUNvWDRhRFQ2SDQ4ejdOck9UWlRMNWNiMVl4WXN1RFJZbFp4ZENNUVQrWm5aYkphdzYwUVZpOFV1ZFRuUVFpaWFUNncyRkJWRmVUcmxReGs3TDcyanlBblpiTmJVU2VTa1M4d29LRmRZS0ZvZHN1eXNIY05aOGU3cjJ3Q0FxcXVCTDkyMXNaYlVBSUM3cTdWM1hub0cxL1ZydHVHOTdVUjlmcXg1VjB6ZFBCOSs4UkEzZk5kN0hqZnJjalVLSDM2eGUyVkx6Z3hVbThuQlZlSzF0UkJlVzJzdThNdm41ME83eEU1S3ovRCtaeDloUFJERTdWZWl1TWtJRVBUUkpsQ0NUdUtrb2R0ZUcyWkNpMTArMGJoNFVueUt6SE9wNHpHYXBrM3J5dHZwemlreVc5U2UxcXF0N216alJORzFvWU84RTRtRWJaZXpXQ3ptK0wyeTJld0hBTDQvMUlFc2VLbG9keEhGWXJFT2gwMjFXa1V5bVp6NmpyNmlLRGc0T0tnRmc4RnFLQlRpQU1Ebjg1R0tvdnl0Y1RpTENJTDRPQndPbTdaclhiaUpGcnlNV0pXY2FacUdaREk1c1o5cmhGdGJsYUF4RElOWUxOWklKQktYc2dUTjQvR2dVcW44Mkt5UFk4RUxhSnEyRkVSVlZlME5GNzFrTEJ4RmZUQ0NxN3VKeCtPbUo4WTRLVi9SaGYxU0hhWWgxZ1lKMmJvN1Q3ZUFjcGpMNHVNMloxR2RBTktNaGhSZGcwcU14MTBVdjliWllyTjByb0MzY1VTWjhjN3J0MHdmUHlrOU14VTR4dWt5K21FeWdkT3p5MnUxZGNvZ1FlTlhoYmZXTi9HdE8yOWlQVEM4YUgyWXkrSmYvdVZIK0pmSGUzaElWa1oyRjlsZEc1cW1tUzRTblRpS1JzbWd5a3FuK1BUUlByTFpiTWQvUjBkSHVILy9QbEtwRktwVmE0ZHcrNFRYckh0WXJWSEg2WkJCMDFib2pUcVM1K1doU3M0eW1ZenRZandXaXpsMnc4cXlYRlZWTllsRk50R0NQbHhrRWYxa1BCNy9COTBpVVM2WHcvNysvaXpMUHBheTJTeTd0N2QzWXJUVGprUWlQcFpsM3hqMWpVbVNGRVZSTkozVUxEcWRMWGpab0duYU12dk9iT045M0pUTFpkdnJUaEFFZ3VPNGlSN0RwQ0JKc3FIcitpTEllbzZ3S1R1NzlQbEV3TlVTaXQ2ZHhKdWFMUW9HeVhVWWhUb2FWOUpWWk9jbUFvRE1tYm1qNklaNEhkKysrelpXbHpzSCtMMG54L2kzdS9kUjFXcXR4MlN5Z2NkTURVVnlkRXY3U3BkVDRKbXFERngreHJ0WjdFUmZOWDF1THoyNVZ2WHl1VExSOTU4blRxU1hNMzhwS0t6aTNkZTM4UnQvNVJ1NEY5OFkybzIyOStRWS8vMG5QOEMvS2lSR3VtN3NSR0NyUmFJVFI1R1ptRlE2cjBEdmt6MGtueXY0WVBlQjVmTzZyaU9mejJOM2R4ZVBIajB5ZFR5MWw1L3B1bTRxS2czci9ERTlwZ3VScURaRXJwSXN5NjJjRmpPQ3dXQlBPVjJmOXp2RUlwdG9RUjhJZ3ZndVRkUHhqWTJOdjkxK2ZsV3JWVHg2OUFqcGROclM0VFpGU0VWUjFnNE9EaHFGUXFFQkFINi8vNmRIZVVPQ0lENFdSVEZtdG5Fb3kvS2x6a05ac0dBWXJOeXFreXc1NnlhZnoxczJ6Z0FBVVJRdjVTS2U1M2xabHVXcjIrTDNFbUlsT2lxS29qY2FqYmVtZkRoajV5b0pSV0JaZHVBdDUzNkNUL2VpWVpCY2gzR2dETm1wWjU1WjdsT3paVlY2ZHNQbkIwTXQ0VnM3ZDN2YVloOFhuK0w3OXo5RnNjMVZVaWVBSEszakM3YzYwc0szdS9OWjRua1I3b1lMU3dPdTRkNkl4WHRFTGdBVExRbjc1UEJSNi8zSFhjNDJiNXlVbm5XSWhTOGJETFdFVytFb2Z1M3RkL0hlclR0RHRZNVhkUTJmSkE3d3ZiMlA4WVB6M05peWl3d0toVUxQWXh6akhycjduMUt0WXYrc1pPbm1VWFFOSDM2NTcvZ2FLNWZMT0RnNDZCR011aWNDWmp1aXRVWWRwVEZsRldXcWxhRnlpWXltQzFaNHZkNkI3MThrU1dLUlRiVEFEa01rMnRyYStxdnRUalZabGdkeUVSbmgwOUZvRk52YjI5alkySmpJOGVxNlRod2RIUkdGUXFGQlVkVElnU1YrdjkvMFBSWnVvZ1V2R3h6SFdhNnJKbGx5MW8ydTY3WWJKb0lnWE1yU001SWtLNnFxWHNwanY2cFluZStTSkIxTitWQW13cFhLS0pwMEtSaUFxWXBFd0hSYUwwK1RwVHI2dHJKL1pySXpUNU5VSzVlRm9aYnc4enQzOGZIaG80NTI0YWRuWmJ6LzJVZDQ3OVlkUkgzKzF1T0dZQ1RyZGF6VnlMNC92NXRYbHIwZFh4dENGbDkzNGRRMTJFTDZuZGUzOGYzN24wNGxMK2lva01keDhVV09XbmZudGF2STRVa0d0OExSV1IvR3pJbjYvQkJYVnJBdkZTQkpFdkw1L0VEaGh5ZWxaM2ovUjUvaU9Qb3F2aEYrRFdzRGRFWTdON2ttOUVZZG1xYVpabldNbWs5VVJ3UHA2aGtLdFhPUXhJdGoxQnNObEpRS1RrNnRTMW10TUFRamp1TVFDb1hBOHp5OFhtL3IrQ1ZKTW5YbFpLb1ZlQ2w2Nk44RmFEcVRoZzNIdHNzbG9tbDZvRndpQTQvSHM3aWdGbGh5RVZyOXhzYkd4cyswejhFS2hRS09qdnJQa3cxeFNCVEZuam5jb0lHdDdZdFVYZGRSTEJadFhVeEhSMGNFeTdLL09kQVBhZVBDVGZUakROTTdSMXU0aVJhOGpGaXRrWEs1WEVOUmxLa0tIUGw4SG42L0gyYlhKMFZSRUVYUnRHcGtudkY0UEQrcVZxdHJzejZPQlUxWWxqVTl2NnJWS25SZHYxd25sd1ZYU2lpYUJ0Tk95NzlxamlLK1Q4aDA0cm41ZGJXNjBydVlmR3Q5RXpSRjRmNVJaemV2RHg0K3dKcDNCZSs4Zmd0OFc5WlBoV3pnTWFtQjF3a0VhcFJ0aVV3M0ljKzFsa0Iwcm1zNHJWYUFwY0VYaENMSDQ5NzZKajU4OUhEZzd4MlUrMGxyWjhGVlpTOTl2QkNLMm1BWUJvRkFBSUZBQUpJa3RmNXpXZ0p5LytneFRxUm4rTmxiT3dpQzZkdlY3TXhWaDB6Mk9ycVZ1ZzVKa2t5L1owMVlkWFFzYThJSzBMWHViQitQejAzR1Nxc2R4V0F3Q0wvZkQ0cWlVQ2dVTE10aTJnV2o5c21BMWU5aXVJcUdGWXRPYTlXaFM5aVN5YVJsOWdOSmt0alkyQmgyTThWRkVNUWFBR25oS2xyUWppRVN4V0t4RHBFb2w4dlYwK20wN2MxZUZNVytuV1B0Y3NPc2FGK29Cb05CSkJJSlc4RkdVWlQvakNDSWt6NXYrNkRSYUpoMnIvSDcvYVlYMWNKTnRPQmxReFJGeXdEcmJEWTdFeGRNTnB1MTNDQVJCS0ZSTEJZdmpUdG4wZkZzL3JCeEUxM0swa1l6RmtMUmdGU3IxYW5rRXhuVUduVW91Z2FXdkJwL3FuNGgwS2ZWaXVuank5NXJPSzFWZTl4VmI4VGlXQk5XOE1IdWd3Nlh6a25wR2Y3NDR3K3hFMzBWTjhNM09rcGJaTElCbWF6QnE3a2dhaTVIRHFOWCtkV09rcmhVNVRrWXI3TUZiamV2cllWUVBsZDZCSzUyUm0wWC91Vko1cVVJc082bVhEM0h3L1RSUUdMUlVoMVlzaEVOYTBRRHRVdFlwTnRkdWlRSUFnUkJhQVgwOTl0dE56Z3BQY1AvOU9BdjhONzJEb3B1Rm9MdWdtQnkzVHgzMVpHaHJaMXlWanQzb3ppSy9INi81WE9WU3NYMFowYWowWTVPWno2ZkR6elAyM1pqS3BmTEhjL3B1ajUyVjlGVDlSeFoxWHo4NjBlaFVMRDhmQTJSeUd6WHl3bXlMRDhGc0FQZ1BvQitDK29GTHdrRVFmd1dTWktyc1Zqc1o5ckZua3dtZzJ3MmF6bGlzaXlMZUR6ZWNUN0tzdHo2VHhURjF2VTU2SUtvV3lpbEtBcWJtNXRJSnBOMnpvR3ZBZmpUUG0vOUJ3Qit1L3RCVVJSLzNFem9XcmlKRnJ5TVdIV0N6dWZ6TThzbkt4YUxsZ0tXSUFoRWUwZlRlV2NoRk0wZlZuckFWY2tuQXE2UVVNUngzR1NLMmJ1WXhRVmF2aUpDa2FzQkxQZHhGSm1WblFGTlMzbE9WVXpMOElMQ0tyNjFjeGYzazRtT1VpdWc2WWk0Zi9RWTY0RWdkbUx4RG9kUmlhcWpSTlhCNndTdTl5bEppMThUOFdFdTJmcjZRZVVwN2hMRENVVkFVK0FxbnlzNHpKazdIa2JwOEZUVmF2aWtyUlBjeThhSjlLeXZVT1JxQUdzMUVwNjZheUJuMlRueHdqRnpkbEZpVlRGeDBNd0RWa0g0RE1NZ0Vva2dFb21nVUNnZ204MzJIZGRPejhwNC85T1A4SzJkdTZoelBFNnBPcGc2Z2ZaZjNlNXpLSFVKTFFZYzQrNjRKZ2ZGYnZLWlNxVjZIdlA3L1IwaWtRSERNTmpjM0RRV3VZNStkcUZRTUJXS2FvMDZucXJudUU0N3p3UkxuWmVITGpleksvRXhSQ0tuSGM0c2NBUDRGUUFGZ2lCVUFPVkdvN0dZcVM3WWpzZmpmN3Y5M01ybGNwYlhEMG1TQ0FhRENBUUNBRjRFMjNZN0hFZlppRE9DNWcwUnl2aDNPQnhHcFZJWnBkdlNmMEFReEgvZWFEUmFOMWFDSUQ3ZTJOaFl1SWtXTEVEVFRXUzJHYUZwMnRRQ3JLM0laRExZM053MGZVNFVSY2YzL0ZsRGtpUXFsY3FQemZvNEZqUWhTZEt5TVlnc3k1ZmpwSExBSmR3bkh4NmpKV283L1NZbDNSTnNzNDQ0aythNWZqWG01RTVheWorcjlrN2tPSTREUlZHb05lb282K1poeFNMSDQ1dmJPN2dYTjljTEQzTlovUEhISCtKL3Z2OHBqZ3FkTnkyWmJPQ3hXMFBpb2t1YWJ0S09PczZMSFY5L1ZSajl4dmZ1Njl1NCtjcU5rZCtubTczMDhWUXlrT2FSOVVBUTM5emVzWDJOcXdIRXFoUUVuUnhJSkFLYStWclhOUkxYTlJJeGRRa3hkUWszRlJxYnloS2lWUW9obGNUMUdnbXY1b0pISndZT1BCOFhlcU9PNXhiWFNqcytudyszYjk5R05Cb0Z5OW9MTnFxdTRmdjNQNFY4M3J4R3E2NEdLdVNMLyt4SVB6Vy9YbTc0ckIxQlRqQWIwd0h6SFgxam9XcEhLQlRDMXRhV294TGpjcmxzMlZVbHB5cFFIWlFONjQwNkRpcWxvVVdpU3FXQ2REcHQrWHdzRmh0VkpJSWdDQUVBQW9EWEFhd0R1Sng5aFJlTURZSWd2aHNPaC8rajl2bVRKRW1XNXlKTjA5alkyR2lWd0Q1NjlBajcrL3VtcnNaUno5ZDIwVnRSRkh6KytlY29Gb3ZZMk5qb084YlpRQUw0VDlzZllGbDIzV3ordUhBVExYZ1pzYnEzRm92RnhxeTdIWmJMWmN1MW15aUtwby9QSXg2UHA2SHIrbWdENUlLeFlkWHRyRnF0UWxYVkt5TVVYWDZieWdWT0FqZUhHYXk2Rnd3ajdFZ056Wm11UVcvVVFSS1hXOWZyMSswTU1DODlhNStNNVZRRkhHdmRJZWxXT0lvMVlkVXlNUHFrOUF3bnBXZmdHRGZXaEJXc3I0VVF2TWhJcWJvYXlORTZjdERCMUFrczF3bVFocEJBdWVCYjVsRTRhOTVzeXRWelpLWFQxdmNPeTF2cm03amh1OTRVZDlvV25jT1dubFcxR3ZiU3gvMWZlQVhnR0hkSFFQZWFkd1h2dnI3ZDkvdEViZkJBODM2UUlDelBiNVZvb0VZMGhaUlRTb2VPeWJ1UVNnTjJmL1A1ZlBENWZNamxjcmJCMTZxdTRZUGQrL2pPM2E4UDlQN0hGc0xxRGQvMWdkNm5HNnN4M1d4SDN5d3Mxd3lQeDRPZG5aMSs1U3F0c0Z5R1lYcDJsZXBvSUhsZVJwemxMY2Z0MDFvVm1Xb0ZkUk5oMmdtYXB0bUdWMGVqVWN2ZHJrSHdlRHlJUnFNL2QzUjAxQUR3UHdJNEo1cWg0UXRuMFVzSVFSRGY1VGp1cHdLQlFNcytVSzFXTFRzYWlhS0ljRGdNUlZHd3Q3ZlhkdzQxYWc2a0xNdXRPWU5SVnBKT3AxRXNGdUgzK3kzenlCenc2d1JCNUFEOEp3RCtMQjZQbTk3OHpaeU1DeFpjWmF6Y1JBQXdMeGxBcVZRS04yL2U3SG1jWVJpd0xEdVR0ZDB3VkNxVnhVYk5uR0RqSnBydWdVeVlLeU1Va1NRNWxZdW4yOW84TFVwYTdkSjNQL1AwS1RzRG1rSFJQZC9YdHNONHBtc282elZ3cExWWUpISThmdlh0ZC9ESjRTUEwwcTV5OVJ5SHVTd09jMW5RSklVMVllWGl2MVdJSEkrcXE0R3FxM01COTNyNFJrY0k5ZUZKWm1TaENHaVd6bzNqZllEbU1iMHNiaUxPeldKTldNRmhMZ3VPY2VPOTdUdU92cy9qUUxBY0ozU0RhRG1YbHRYZWErQ2NxRU1sbWtKbHU2ZzBTamJTc0lISWdVQ2daY1cyc291Zm5wWHhneTkySFlseUFDQ2ZLNllkOTJpU0d2bTh0NXJjbWUzb0Q3cHpHSXZGUUpLa3JXMCtuVTZESkVuUU5OMlR1M0plMTVFOEx5UG01bHBpa2Q2b282VFZrRk1WMUJyRDI4MDBUY1BCd1lHbG9OZWR3elFxUHAvdkdvRC83ZEhSa2JIQ2RnTTRCSEE2dGgreTRGSndrVXQwei9qYU9CZTd4UmZEd2RkdlBCazM3Y2ZSUG5kUUZBWHBkQnFDSUF6YjZZZ0E4UGNCZkl1bWFjRnNrVkFvRkM3TmduUEJnbkZobFJWWXJWYm41bnBRRkFXRlFxSGg4L2w2Sm9BOHo4L05jZlpEMS9XNUVONFdXQXRGNVhKWnV5cjVSTUFWRUlvSWduQUQrSTE0UFA2MVNieS9WVkRodElXaTU1cDZxWVVpcGs0NEt2TnBENHcyNkxhTEY5UnpXMWNSQUREVUV0NTlmUnZyYTZHZW9PdHVWRjNEY2ZGcEs5K0lKaW1zY2p4V09SNXJ3Z280Tnd1UjQzSERkeDMwSWRWNnIrUENVMVMxV2tkUTlxeDVXZHhFQmp1eE9BNXpXYnp6K2kwdzFCTEtlZzFxdlE3YTVRTHJJaStGQzgvZGNNSGRBRENBYnBDaWE2YmR4UUNNTEVKUUZJVklKQUpCRUN3ZEs0ZTVMRzc0L0lnNktCMmJsSnZJb0Z1NE4rdVVSSklrUEI0UDNDNFNKTkU1RGltNmJ1bnFpVVFpcmFCckt4ZUNydXRRRkFYNysvdUl4V0lkazRjelhjUERNMm53WDZvUEJ3Y0h0aDNPaXNVaXl1VXlPSTZEeCtNWnVad0hhSWxGLzd1am95TVNDMmZSU3dsQkVOK05ScU4vcy8xNlM2ZlRQWUlsU1pLSXgrT2dhZHIyWEowRTNlV29ITWUxaEdQREJUZ2lyMXN0akM5YnErMEZDMGFGWlZuTCs4dEY1NmU1RVRhS3hTSmh0b0hDc3V4Y0hhY1Z1cTRUVnVYMkM2YUxFWWxpeGxYS0p3S3VnRkNFWm5iQzExaVdGZnE5c0hzeVkxVmYySTZaRGJwY0xvOTF0OVlKei9YYXBTNC9jMUoyWmtXM0tQZGNyMEd0NjZCZC9TM3FRV0VWLzhFN1A0MlBEeDloNzRrekVVWFZ0VmFKbXQzM3FMcUd2ZlF4M29qRkhiM3ZwUG55SkdQcTNBQ2E0aGVBSytjMjR0MHN2djNtMnhBdlN2WE9kSzNEVGJORXVNQ1JGSmJKSlhpcEpaQ0VDeFZYQThzenlnNGFGKzY2Q3pMWksxeW9kUjFQMWZGME1PZDVIdHZiMjVZTHZRKy9lSWkxdDFkc2hWSzlVY2ZoaVhtdzYvcGF5UFJ4SzZ6Y1I0cWlkSXdSWmk2YlZZN0hyV1hCY3Z4VWRBMkYycmxwVnBBZ0NOamEyckx0aWdZMEY2R3lMSStsM011T1pESnB1L0RXZGIzVnBjMVl1TkkwRFVFUXdQUDhTTWZuOC9tdU1RenpuVVFpc2FUcitrOEErR2RZT0l0ZUNveVNNNS9QMTdyeG1uWGI0emdPc1ZnTXVxNWpmMzkvNERJdm83UFBzQmpaWWNZa25tR1lzV1lHa1NScDZrNWNaQk10ZUJueCsvMldJa3MrbjU4cjhhVmNMcHRXaERBTU0xZkhhY1ZDaUo0ZnJPWlJWeTJmQ0xnYVlkWnVraVJmY2VMd0dhWmptVm40NGF3VTNVRnpSK1lKajRNZ2E3TjhJcXRKNDZDbE5XK3RiK0xiYjc2Tk5lL3dyYmpOc0ZvRXp3SzdZM2x2K3c1MllxOU84V2dtRCtkdWRwVVMyL0tjM0YzaVlhMVJ4ek5OUmZLc2hML0lwWkZRbm1PdmNZYm51RnFDbWNFb21UZG1VQlNGalkwTlUxRmQxVFhjVHo2Mi9ONmNxa0RWTkp5ZTlTNmVWcGU1b2NyT2FKUHVqMDdHWXhLRXJjak9raFFpYmc2dnNqeGNKbk5lb3l0YXZ6RHNmRDZQdmIyOWlkV29wMUtwb1NhTHFxb2luODhqa1VqZy92MzdTQ2FUcHM0ckovQThUMjl2Yi84eXk3SjNBUHdOQUdHQ0lGWUpnaGh0aGI5ZzdvbEVJcTJTczJxMTJ0RnR6eWcxMjl6Y2hLcXFwdVZvVG1pZnl3MDcxMm9YYkVZSXNEYkY3L2ViN2lUbmNybXgvcHdGQythZGk2NVBwaUtMTE10ejJjYjlzblE0TTBQWDlXSHoxUmFNR2F0R1dGY3Rud2k0R280aWNCdzMvdFpSRjVoTkNCUkZtVWxPMFpsK2VYT0tuRGlLekRxZVdRbEZ6elFWQVlldUlnT1I0L0h6TzNkeFZNampmakpodW9BZGxITDFIRitlWlBEYWdPNkljU09mS3pncFBUTjk3cDNOVzYwY3BPUENVOHZYWFRZNGs3YnEzV1ZGUm12V1lyRUlWVldSWkZtUUpJbC9xK3NJVWl6aTEwVGM5WVd4eWx5dVJoSXEwU3NHNVZURlVhZXpRYUVvQ3B1Ym16ZzhQRVNwVk9wNGJ1L0pNVzZHYjNTMHVDL3JOUlRVYzdBa0JjbmlHcnNaN3R0N3dKUlZqdTg1ZjUzY21KMkd3M1BrRXJhV3ZVZ29NczVOdXBhRlFpSHdQRzhiSXEwb0NnNE9EaUNLSW9MQjROanVFMGJRdU9XeHQ1WFkyR0dVM3hTTFJYQWMxL3FkQm9HaUtOeThlZk9uVTZsVTRPS1lGczZpS3d4QkVOLzFlcjIvMEY1aTBoMWViWlJkVmlvVjIrdGpFSVo5RDBtU1dqdSs0eWk3Yk1mTVRWU3RWbnZHeGdVTHJqcUNJRmlXMzh5ciswV1NwRmtmd29KTERrM1RsdmVWcTVaUEJGd05SOUV2OFR5LzN1OUZaanRUVGlmd1pydnBzMUFObjJrcTlCR3lSMmJGVXIyNW85K1Btc25pMTQ1aEEzdWpQaisrYy9mcitOYWROM0ZESEQwbjVYNHlNZko3aklwVk50RjZJTmdoWXIyM2ZjZlVsWEZWTU02emFyV0tUQ2FEL2YxOVpMUFoxczZXb2lnb2w4dFFGQVdQNVZQODZaTXY4WDk5OEwvZ2V3ZWZZdmZaeVN3UGZTQXFyczV4b0t6WGhyNGVuQktKUkV4TGNmZHpHZVJVQlpucUdRNHFKVHhXWkR6WGExaWhhSnlXZThkSmpuRVBMYXl1Q2IyT1FDZmlDTzJnMjVrQlNiZ1FZWlpOblVYQWk1SzhmcVhMeFdJUnU3dTd5R1F5UTd0M0RBcUZnbVhyY1FOUkZMRzl2WTF3T096WVJWRXVsM0Z3Y0lCSGp4NE5kWXlSU09SbVBCNy9EOUYwRnYzMndsbDBkWWxFSXEyV1FibGNydU82ODNxOUVBVEJNdGg2MnJUUHo4YnBLUEo2dmFienhubGRGQzlZTUVtc0hMYlZhblZ1cndsZDE0M3NwQmFqZGxwYzhISmhWNzUvMWZLSmdLc2hGQzBMZ3RCM2U5cHM0dUswRnQ1c1lqQ3JXdlRMV0g3bXBOc1pBSnk1ZW9VaXU5M0FaNW9LWllUTW5hQ3dpbTl1NytCWDMzb0g5K0liNEJqM1VPOVRycDdqaHpNV2k4d0NnODNheFRQVUV0NTUvZGEwRG11aTNEQUpVblkxR2tnbWt6MENVVDhlU2puOC9wZWY0VCsvL3dFU3orZHpnbU5RSlBXT2JtaUtyaUdwVEg0OFloakd0THZKNDF3V09WVkJvVlp0dVhDV0NCZG9Gd2xWNjcwK2QwYkk5REp6a1FIakYrNVpra0xjb2d3TmVPR3k2bGVLQmpTdDd2djcrME9YZXhVS2hZNFNuOVl4c2l6dTNMbUQ3ZTF0UktOUlVCUUZobUVRQ0FSdzgrWk5iRzl2dysvM081b0VsOHRsN08vdkk1TVp2SlJXRUFSdWEydnI3N01zKzNVQWZ3ZkFvbjN2RllJZ2lPK0tvdmpyeGp4STA3U084ZzJTSkJHSlJBQmdaSkZvMUh3aUExVlZXNXVERkVXTmJTRVlDQVJNSDU5V1I3Y0ZDK1lGVVJRdE45dm52YnhMa3FTT0cvdTRYWWNMcmpaV0hYU3ZZajRSY0lsTHp5NjZuUWtzeTc3aHhCazB5bzZ1MmVSbFZ2YkZRdTM4MHBXZk9lbDJCZ0NwNTcxVkMvMG1lRGxWUVl3ZHJHeWlHOTdONGxZNGlsdmhLSXBsR2FkbEdlVnphM2ZHbXJBQ21sckNoMS9zdHNyWDl0TEhXRjhMZFpUZ1RJdGlXZTRKc2FaSnlsSVFpdnI4V0E4RWNaaTd2T1BaVHZUVmptd2lnL3ZKeHlQdFpEMVRGZnplRngvaEY3NTJDei9oaTJDWm1LK2RwcWVVanFkTEx4WmlpcTRoZVY0ZWF5NlJIWDYvdjJjU3FDaEtSM2dzQUhBV3JyVWI0dldSeWpTdFNzZ2tTYkl0bnhyRVVXUmdpRVVKUmJiOGZKMlVvZ0dkNVY0c3kwSVVSWWlpYUduYk43QVNpWUxCSUVLaDV1ZG9DRVRkTUF5RFNDU0NZREFJU1pLUVRxZjdIbU0ybTRVa1NZakg0d09WekhrOEhteHNiUHphL3Y3K21hcXE0VVUzdEt1RjMrK1BHUC91UG8rTThzcFVLalZ5ZDdOeENVVkFVencyRm9Bc3k0Njh1Y2V5ck9rWVV5Z1VadTZnV3JCZzJsaDEvcHRuTjVIQm92eHN3YkRZbFoxZHhYd2k0QklMUldoMk8vdDdvaWorRlNjdk5wdkFPRldSZVo3dldSenB1bzVLcFRKMUpmcThya1BSTmJDWHFIeUljZGp4N013MWVGbmRjNzJHc2w0RFI0Nm5SYjNJOGFZQ2hCbmYycm1MUC83b1E2aTZkaEhzbStoeDhFd0RNemZSTzYvZnNoV3Q3cTF2NHJRc2p5V25hUmJjRFBmR2t2M2dpOTJ4aVY5ZnVNNXhVbitLWlpENEdzRkNJQ2o0UVlPZVFkZEJIUTJjdVJwNHVxU2oydWE2TTBTaTJoVExVU21LTXMzQ1VSU2xZeEZsWkllMUN6dXJ5OXpJYmphcmExT1NwSmFyd1F5bkdVWGRPQkdMZUo1MzFCWE5RRkVVcE5OcHBOUHBWamN5UXhEM2VEd3RXN01zeXowaUVjdXlpTVZpQTkxM0tJcUN6K2VEeitkRG9WRG82N1JURkFYNysvc0loOE1EZGZla0tBcXhXT3pYRHc0T0pDd3lpNjRNTE11K1laeHZsVXFsWXhISXNpd0NnUUFxbGNyY3VXcUt4V0xMQWNUei9NaENrZFhDZU41Kzd3VUxKZzNIY1piM29NdHdQUmpsWisxQjNDUkpMZ1RmQlgyeEt6dTdpdmxFd09VV2l0d0FCRUVRWG5IeVlqTUYyYWtkMmFyR1haS2ttVmdXQzdWelJNakw0KzUzOGlrUEl4SVo1RlFGSERzZW9XZ1FHR29Kdi9yMk8vandpNGM0TGo0MUxZV2FCaWRTWjdqdnpWZHVJTnJuV0JocUNlOXQ3K0Q5VHorQ09rTDUzaXhZRHdSN1dyS2JpVVFjeDRIbmVaQWsyWE9keXJLTVNxVmlHVUJxdERrL2c0N2RSaG50R3NFYXdjQkgwdkM1YUpDRUMwc05ZS2xCWU5saGlhVVZPaG80ZHpWd1RqUlF1L2kvVHFCREhESW82elVrbGVrNWlRWmxoV282QTZJK1A3Nzk1dHRRdFJwV09iN243ellNYTk2Vm5rQnJvOVRFNC9FTUhNemNEeWRpa2RFVnpZa1EwNDdSamF3ZHd5M0U4enlpMFNqUzZYU3JvOVFnd28wWlBwOFBnaUFnbTgyaVdDeGFUb3gxWGNmUjBSRlVWVzA1bDV6QTg3emI2L1crYzNGZC9kT0ZzK2h5UXhERWQ2UFI2RThiWDZkU3FZN25EZkdrKy9GNW9OM3BPS3BUNmFLN1U4L2oxV3AxWkJmVmdnV1hEYXQ3UXJWYXZSUkNFZEFzUDJ1L3BzZmhPbHh3OWJFcU93TUFTWko2N2Q5WGdNc3NGSUhqdUtqVHNyUHVpVHRKa280WEZNWkVvL3M5SkVrYWFCSTlMa3BhRGFGRzNiYmQ4MlhqZk1BZzYzYk9kRzJzcnFKQllLZ2xmSE43WitvL3Q1MzJSVFBIdUxFVGU5WFI5L0Z1RnUrOGZnc2ZQSHd3cVVPYkNOMFpOMGVGZklkSUpJb2l3dUd3YlZtUGNlMVhxOVhXb3JrZFk3SVREQVo3M3Vla1VjV0oxaXhsdlVZdTRScEZ3N3UwTkxYcjhhbDZqcHlxdEVTTEZZckdOWW9HUjFJZHg2RFdkYWlOT2hSZFI2RjJQamJua1ptNDBDNjZoNW5sam02RVRoMTZUbGtUZW9VaW9Pa2c4SGc4bHJsQ28rQkVMQUl3a0hQSGltdzJDNTdud2ZOODYvM0dDVVZSaUVRaThQdjlmVjFReHU4UWk4VWN2MzhrRXJsYktwVU9BV3lqdWFHemNCWmRVa2lTWFBYNWZDVFFkQk8xbnlzMFRiZk85WGxkWUpYTFpRaUNNSExuUWF2dVRwZGxVYnhnd2Jpd0tzRUU3TE9Kek5aUXM2VGJQTEFJdEY3UUQ3dXlzMHFsQWwzWDU3dm1ja2d1bmRKQUVJU2JJSWcxQUw4cGl1TFhuWHlQbVp2SXpqNW1ocG1yU0ZHVWtidlpERU1kRFp6VzVtZkFIUWZuSnE0SndIbG1RZXI4Ykp5SGMybklTcDNycjN2cm13TzVOcUkrUDNhaXpvU2xlV0ROdTlKVFV2Zko0U01BelJ2OXhzWUdZckZZMyt3WEE0WmhFSXZGc0xHeDBYT041L041UEhqd0FJZUhoNWExeDgvMUd0TFZNK3lmbGZEbnlVTWNtWlFCamd1MXJpT3B5TWlxelpEV0FNM2kxcktBaUp1RGw2SjdoQ3JhUllJamwzQ2RkbU5yV1VDUUhsMUUwVFROdG94M2hhSW5ucUZtMXZrTWVORjVpQ1hKaVhUMlkwa0tHNTVyQ05JZXVGMzJrMHFmejRmYnQyOGpIbzlibHF6WU1ZME1CY01GMVMrUXUxZ3M5clJDNy9lK2ZyLy9yd0Q0WlFEckFNS0xibWlYRDRJZ3Zpc0l3czhaWDNlTDZjWjVNMDZ4Wk55TE5lTTZHdFZsYUhXTkxMSk9GcnhzK1AxKzA4bTZWVFlSeDNIWTN0NUdKQkpwekpNWW8rdDZ4N3h1RVdpOW9COTl1cDNOcDcxL0RGdzZvUWpOYktJZGtpVHZDb0xnYUt2VmJKSG5wRnROTzFZVGpWbUdXbDhXbkxpRmFrVERORURhNlU1Z3JWRkhTYnRhNHRtZ3ZMTjVxMi9KbVJsdnhPSllEd3gyUGN5SzlhNGc1QzlQTXEwZzcxZ3NOdlNDZ09kNTNMeDUwM1JjS0pWS09EZzR3T0hoSVRTVExsNUFVN3o5NHVnci9Mc3ZkdkhoVjEvaXVIUUt0VDZlZW5lMXJpT25LdmlpVXNKenZRYTNpMFNjNVJHZzJZRmNUTmRwdDIwbkx5ZVlqWGVHRlhlRm9oRnhUNzRrTmlpc21ncEJGN2tEQUliUEpPb0g3U0p4blhaancrUEZhK3cxckZDMDdlY3BDQUlpa1FqZWZQTk5oTU5oZUwxZVJ6K25XQ3hhbm12akpoUUtZV3RyeTNhUlhpd1dVU2dVSEw5bk1CaU1lTDNlT3dCK0NVMW4wVG9XM2RBdUhlMGgxdTNYdmxHS0pVblNXRXV2eHIxWWF6L21ZY3ZQV0pZMW5ZZElralJYRG9rRkN5Yk5oWXZROUlabjVpWUtCb1BZM053RXd6RGdPSTRZWjFqOU9MaXE0Y01MSm9QZCtrS1NKUGtxNWhNQmw2ajA3R0kza2dNUUJ2QXJnaURjY2VJYXFGYXJQVGtrZG0wZHJiQkxPYmRxbVRwSmFvMDZUbXZWUzlFQnpXR1dOY3JubzRsZm1Xb0ZYbXErYmtUVGdtUGNJM1dUdXJlK2lmTDV1V2xKejd4QWt4UnUrSzUzUEhZL21XZytkeEVLUENxaFVBZzBUWnQybWlxVlN0amYzMGM4SHJjY0QzUmR4NWZIU1h4NW5BUkprbGpsZUx3aXJMYWVYK1Y0MEJTRllOdGpwdS9UcUtPc2EzaFdxK0s1WG1zOTdsdGlFR0tXQi82OW1EcUI1VG9CWG5mak5zVUM5UVlrTklXSWZFUEZvOFlaYWc3eWpzd21nNElnVEUwa01yamh1MjRhWEo3TDVVelBneFBwV2QvUGZGQllra0tFNUJCQnN4endtVmJGdVkwNEdBZ0VFQWdFb0dsYWE0RXR5N0xwUXRzUXZjWmRkbWFGeCtQQjl2WTJEZzRPTEJmKzZYUWFIby9IMFdLZW9paXNyNjl2SEI0ZW9sUXFrUURlQjFDL3VJOUxqVWJEZHJBM3VwcWlXYm9HTkFXblpZN2pibms4bnFnZ0NHODQvKzBBWGRmUFU2blVmNjJxYWhyQXZ3Wndqa1Yya2kwMFRjZmJRNnpiUlJHakpEZVh5ODNxOEJ4aFhFZUNJQXhkK21MbENGeTRpUmE4YkZ5NGlYcG05TVk5cloxb05OcG9GNVdTeWVUYzVYbTF4NGZRTkczNnV5MVlBUFJmWTVUTDVTK21kelRUNWRJSVJXaUtST3NBTmdBSWZyOC82dVNiekc3bWc3cUpBR3NsMFNvTWR4b1VhdWVYUWloeVFvVWMzYlZYYTlUeFZEM0hkZHJkLzhWWGpHNm56YUEwdzYzdjRQdjNQNTNiVG1nM2ZOYzd5dXF5MG1uTFRUVE9uU3FmendlR1lVeGJucXVxaW9PREEyeHRiZldJemQwTEVWM1g4YlFrNFdsSnN2eFphOTRWY0c0M09EZmJDdDZ1TTBzNDZ3b1lkNEZBaVBFTWRMMjdHb0Nva2ZEcUx0Q05ydmtQUWNDUDVtZm1KMmhzTkR6NHVGN0NFMWlYMGhZS2haNkZGc3V5K0pyUFAxV1JDQURXaEZWVG9haGNMcU5hcmNKNzdkcFVSYy9ydEJ2WGFUZktlZzNQYWxXVXRKcGxscEhSaGN4QWxtVWtrOG1lenphYnpVNU5LREtPYTJOancxSXMwblVkQndjSDJON2VkbHphdWI2K3ZwSEw1VmF6MlN5cjYvb0pnSDhPNEQ2QWt6N2ZLZ0Q0ZXdBRW1xWUZ2OS8vcmlpS1VhYy8xd1NPWmRuL1N5S1IrQjhVUmZrYWdIK0pSWGFTSlFSQmZEY2NEditDOFhYN3pqdEpraEJGRWRWcWRlTFpST053N0JoQzBUQ2R6NnhDcklHRkcySEJ5OFhGZFc4cXBPVHorWTY1MGtYamhRNlJhSlpySlN2YUErODlIczlDSkZwZ1NSODMwZlFPWkFhMFpsMEVRUWdBWW1qdTRFa0FLZ0EwekhqbnJjdEp0QTdnMnh6SGJUbTFLSGZYencvakpqSXdhd3NOdkppSVRKdnp1bzZTcHI2MExob3pjcXFDMWFYZXZKYXJDdWRtd1RGdXk5eVdRV0NvSlh4cjV5NysrS01QNTdJVFduZFh1YjMwOGNSK0ZzL3oyTmpZd1A3K2ZzOXp1cTRqbFVwaGZYMjk0M0ZSRkczREhNMDRLVDBEdXVaUDRYQzR3NlhvQW9FNHk0TjFtTHV6VkFkV05SS0M3Z0xwY0lPTUpseDR5K1hGdjZvL05YVVdhWnFHZERyZDgvaXRHN0dwaTBSQVV6VEVJL1Buc3Rsc2ozQm9WdFk2Q1RoeUNSeTVoRUM5R1NCK1dsUDdkcWJqZVI3eGVCd0hCd2NkazIxVlZTSEw4dGk3dU5uaFJDeEtKQkxZM054MC9KNkJRTUFuQ01JdlpyUFpJMG1TWHRGMS9RdUNJTjQzZWVtN3hqODRqbnRERUlSN29paStNb0k0MUFIRE1OalkyUGkxZzRPRGY2TW9paHVMcm15MjhEemZtaWkxVDRSRlVRUkZVYVo1Sk9ObUhFSlJzVmhFT0J3ZWFqUEJLc1JhbHVWRjJkbUNsd3EvMzIrNVFkQStGblE3aVZLcDFGVEdpbUVwbDhzTlFSQUlqOGNEa2lRdE80RXVlTG14NjNZbXk3SitWY3ZPZ0U1SFVZeW02Zis3S0lvM0FaUjFYVC9ONS9QL0ZyUGZlVE9jUk9zQWZra1V4WitJT1d6QlluWXpIOFpOWkdDMUl6VXJvUWhvQ2lQekxoU2R1ZXE0RHV2OEMzMk1MYjdyYUtCUXF5SkE5NGFQWDBWNE40dGZlL3ZkL2k5MGlDRVdmZi8rcDNNbEZ0RWsxWkcvVk5WcU9DNCtiWDA5N3B1NzIwWGlOWEVONHFZTEh6NTYyUE44cVZUcXVlNzlmajlrV1I1cGw1MWwyWjRiVXNTOTdFZ2tjalVBUVhmaGVvMTBMQkMxUXhNdS9EaHhEUjgzZW5mK2tzbGt6MmQ4UTd5TzIydmhnWC9PT0dDb0phd0hncWF1b21xMUNvN3JGSzlHTFdzZEZOcEZJc1FzSThRc0k2Y3FlS3FlMndwR0hvOEhmcisvUjJqTTVYSlRGWXFBRjJMUi92Nis2V0s0WEM0amw4c05WSEo5RVJvZkJSQ1ZaZmxuWlZuK205MnZJVW5TeGZPOGQ1S2hvaGUvMjg4Y0hCd1FpcUw4TFFEL0RBdG5VUS90WldjQU9zWTA0M3ljNThWZk4wWkh4RUd4V2h4TWVnZVpaZG1lekxCaHhnRmQxMUVzRmhlTDN3VWpZMVdDV1NnVUdxcXFFa0N2U0ZRb0ZCcjVmSDZ1blRxeUxCUEdQSTVsMmJudDRMaGdkdlRya2k1SlVtYUtoek4xMmxjZkFzdXlHNkZRS0FBZ0FDQXVDTUx0WkRJWlZGWDFJVUVRL3gwY1pBdU1DeE1uMFM4UEloSUI2S21mRHdhREk3Vko1WG5lMURFd1M5dlpWWEFWV1hVOEc1YW42amxXS0xxalJmY0M1NGdjai9lMjcrQ0QzUWR6SXhaMU82WU9UenJINVhZTDhhaGNJNWNRWTVzM2hkZldRbEMxR2o1SkhQUzhMcGxNNHNkdjNVWjlxWG1lVVJTRnpjMU55TEtNWXJFSVNaSUdtcUN6TEl1TmpZMk8zeUY2MGRHc0g3eE9JRkNqZWt2TUJzUlAwT2pXTXpLWlRJOXRuQ1lwdlBQNnJaRisxcWpjOFBsTmhTSXpUa3JQVU5WcUEzVUVIQmNCbWtXQVpuRmFxeUtuS3FnMTZxYXZNeE9LU3FVU3F0WHF5TzI5QjRXaUtNUmlNUndjOUo3M1FOTzFOV3piY1o3bktaN25SN2RBRGdsRlVZakg0OS9jMzkrWGRWMy8zd1A0cjJaMUxQTUlRUkMvNWZmN2Y5TDR1cnZFU2hBRXkrNkh3MkNVc3ZuOS9vbWQ1L2w4SHJkdjN4N29lMmlhdGx3Y2pGSjJ4ckpzcTgyeTRXSXdIaCtYZTY2ZFlEQ0lSQ0t4V0FBdkdCbzdONUVoQkcxc2JJRG4rUTZSNk9qb2FLNUZJcUR6V2g2bVBIWEIxY2ZPQ0ZLdFZxR3E2bUNsQkplTWppdWY1M211NjJ2MzF0YldieWVUeVg5ZktwV3VBZmhkOU04V0dCY2RUaUsvMy85MkpCS0o5UG1lRmxZaDFxTmdOV2xvRDB5Y0JTOXppTE1aZFRTUVU1V0psTVRJNTRwcEdZc1JsQ3VmSzZBcHFyVWcvV0V5Z1JQcEdYWmlyNDQ5VEhlU0JJWFZxWXBGTkVuWi9weCtRaEdBc1lUL3VsMGtJdTdPc09oYjRTaE95M0tQS0tIck9tcWw1M2cxSEVIcS9LemxHT0Y1dmpWV3lMSU1XWlpScVZTZ0tJcGx1VUszU0RSSXVWbTRTdUZhZlR5bGxzdEVwN2dxU1pLcE9QN2U5cDJaaUM3dFJIMStjSXk3bFZObFVDNlhXNkhrN1ovM2NlSHBTSUh2bzdLNnhHQjFpY0ZUOVJ3NVZlbHhHRkVVQmEvWDIzUGZrbVY1NmtJUjBEeVBnOEdnNmQvZnF2enlzbkJSaHZiTEJ3Y0gvMWpYOVY4RThOL00rcGptaUcyZTUxc0RhZnRDeW5EcWpibzVabVQvaUtKb09xK1NaWG1zUWRtcXFrS1NwSUVDcmEzbWM0T0laSDYvSHp6UFczWk9td2JHQmdZQVhJVEx6K1E0Rmx4ZXJOeEVSak9HZUR6ZWFCZUpLcFVLTG9OSUJIUnVNaTRDclJlWTBhZnNiSXBITWhzNlZpSEZZdkUwRUFoMDlPKzk2Rjd5azZsVTZubytuMWNKZ3NoaGdsMUQycnFkaEFIOEJrM1RHNUZJNUJ1Q0lBeFVTNVJLcFRxK3BtbDZMRGRxczRrOE1OdnlzM252Z0tiM0dYWnJ4SGdkUlFEd1RGT3hvdGZBa2FNdFp1VnpCY2VGUEk0TFR4Mkg0M0tNR3p1eE9EaTNHL2VQSGdNQXZ2L2dNK3hFWDhVYnNmaEl4ek5OcGlVV3JRZUNXQk5XVFV1OEROYTZSRGF6VXFKeGhQK0dHSTlwdnRXN3IyL2p0Q3ozQkgzZlAzcU05YlVRNGl5UGhDTDNMUDdiUlNPZ09TNTE1NloxaTBSTGhBc3hOOWRYSkdMcUJGNVJTYmdiazhuanFsUXFTQ2FUUFkvZmkyL01qZWk1RTR1Ym5qZEc5N1Ayei9xNGtPOFFpcnlhQzRMdXduS1h5UGJjVllkTTFsRngxVkdid0VkN25YWmpkWWxHcGxyQk02M3o5c256Zk0vOVpacmR6N29KaFVLV0xkQkxwZExVTTVUR2ljZmp3Y2JHeHQvWjM5OVBFUVN4aGlrNnB1ZWQ5cmxNOTQ0N2dLRjMzWTNTV2pNM21oR1dYNmxVSmlKbURDb1VXUzBPckg1M2xtVmI0ejNIY1JOeEI0Mkt6K2RiQ0VVTEJzSXUxN1ZZTENJYWpUWUVRZWdRaWF5Y3FQT0trVlBFTU14Q0pGclFnWjJ6RkFBa1NUcS95dmxFUUpkUVJKS2s1YlE0RW9sc2lhTDRuMTNzd0UyeWE0Z0FZQWZBcjNpOTNwMVlMSFozMEJ1dUxNczlOOE54VFdiTkp2TEE3RlBQbXlITzh5a1VWZnVVbHRVbU5EVG5WQVVjTzV4UWxKVk9jWGlTY1Z6YTBrNjVlbzRQSHowRXgzUjJYN3QvOUJqbGN3WHZ2cjQ5MURITmdxQ3dPckhNb3ZWQUVEdXhPSGczaTMrN2U5L3lkYXZMSEVTdTgvcGQ1ZmdlNFU1VjFaSEtkSllJbDYydytLMmR1M2ovMDQ5NkhDejNrd204Ky9vMk5qelhjRkI1YnBsRmswd21lM0k5dWtXaVpaSkN6TTMxRFdPL1hpT3hxamtQcXg0VVRkTjZ3cFdCNXQvc1Z0aFJ3OG1wY01OM0hmUmhyeHV0VkNwaFkyT2pVeWdxUG9WOHJvQjNzN2hlSTNGZE15OU52VlozNFZyZEJSME5uTGthT0tYMHNYUmxiSWNrWElpNE9hem9OV1NxRlp6WG01K3pJQWc5b2VHelh0aEZJaEhMaVg4bWt4a28ySHJlOEhnOGlFYWovOUhSMFJHTjZUcW01eGFPNDM2cS9ldDJrZEFJaEI1MHZtT1VscG5sQkZVcUZhUlNxWW1YZkJTTFJZaWk2T2pua0NScG1XbGtDR2MwVFlPbTZaYndOWS9DVURmZHVVY0xGdlREemszQmNkd2puOC9YdWdGVXExWFRlY084VTZsVWlGbHQ5QytZYi9xZEYrVnkrY2wwam1SMlVHME9ubStIUXFGWDdGNXM3TUFsazhsL295Z0tDK0QvZVpFbE5QUk9YTnZQTjFiVnYwblQ5TnQrdi85ZUlCQVlhaHMxaytrdFMra09OeDBXczRrOE1QdnlzM2wzRmMyQ00xMGJPTCtwcXRYd3llR2pvUVNpYnJvRkJRQ3Q5NzIzdmpuejBoMm5pQnlQWDMzN0hWT1JaQkJXbHpuY1cyL09LVGczQzk3ZE5BbG1wZE9PWU9wdTN0dmU2WGxzVFZneGRYZ3BpakswVU5UdjJtR29KYnkzdllQM1AvdW80L0hEWExZbGVJVVlEOUxWczU3dnplVnlQU0lSU1pLSXgrT3RCWWFSWldPSHF3R3MxVWdJK21RbS9HY05IWnFtWVg5L3YyZXkxLzczbXhjWWFnazN3emRhenIxMmlzVWlXSmJ0V09oK2N2Z0kzN3E1WXlrU3RVT0N3TFU2Z1dXVndDbFZ4OU9sOFU5K09YSUpjWlpINnZ3TXovVWFHSWJwT1daZ3RvNVZudWN0dThHVXkyVlVLcFdoZ29MbkJaL1A1eXVYeTk4cUZvdlBDWUw0SjNpSnU2QVJCUEZid1dCd3kvaTZXcTEyL04xNW5rZWxVbkcwRVBSNnZlQjUzakwwWEpabFpES1pxV2FDT0MwVHNKc3Y4andQVVJRdjlUbS9ZSUVUREplY0dacW1vVjBrMGpRTmlVVGkwb2xFd0l0eFFkZjFSZW5aZ2c3NmxaM3B1bjU1dWpvTUNZVUxCdy9IY1cvelBOOTNTOFRqOGVEbXpacy9rOHZsWGsrbjA4c0Evam1BK3hoK0owNUEwMEgwQ3dBUURBWi93ZS8zZjIzWTNSbXJpY2U0SnRrTXcxamFsMmM1bVFmbTIxVmt4N25MUE54MUhBeVMzNVNWVHFlU3lXT0lSWmZKV2NSUVMvajIzYmZ4d2U0RHh5VjRadHhQOWk3bzdWcVg3MFJmYlFsSzdheHk1cE9YU3FVeTlEWG9kaEIrTG5JOGRxS3Y5Z2dUaHF0b2RZbnBDU3pXTkswbjU4VVFpUmlHZ1FzRVlpelh0MHh5MHFWbUFGRFNtenVDM2VQYjZqS0hiKzNjblV0eDgvVlhJcFpDa2Qvdjd4QmRqb3RQb1JSTEFIZmQ4ZnVUSUhCZEkrSFZYY2dzYVJOeEY4VllIcW56TXA1cEt2eCtQNDZPampwZUk4dXk2WG05M0ZhZXFPaTZiV2UxVVJCRnNhZGswaUNmejJPQUhoTnpTU3dXdTF1dFZwK1V5MlVYZ0grTWw3Y0wycmJINDJrTnJ0M2lOc013dHRsQk5FM0Q3L2ZiQnAzUFFpQWFGTHQ3eUdWMkhseW1UblVMWm8vZjc3Y1VUcnJYYUFjSEIyTUx1SjgyeGxoVXFWUVdJdEdDRml6TDJtNEl5TExjdU9wbFowQlRLSElEK0FWUkZHOE84bzJCUUNEczhYaCtLNVZLdmFvb3lwOWRkRVVEbXRsRmxnNGpNd2NSU1pKMy9YNy9UL2o5L3VBbzl0MUtwV0k2bWZWNnZXTzFCWGRuWHhqTXV2eXMxcWpqcVhxTzY3UzcvNHVuakVvMExEc3lUWEwvd2VsbjhqQjlaTnJaYWxJYzVyS2dxU1c4TldjT0RUc1lhZ2svdjNNWFAwd21zSmMrSGxoUTY4NzM2Y2Q2SUdpWjZXUWxGSTBTTEVjU3p1WUliOFRpT0pHZWRRaG1oN2xzeXlVV29Oa09WNUZaOTdOZ01BaWU1K0ZiWWhDZzJiNmxaa3lkUUt4S1RhelVEQUNlbkpYd1IxLzlxR2V5Tjg4aUVRQmt0SE9Jb21pNkNLcFdxejJQL2V2RHovSGE5cnRnQi94OTZBYUJtTHFFcDVTT0lxV2pQdVkvUmNUTlFhbVVJQWhDajFCVUxCWVJEQVpiOTdGcjVCSWk3dVdlODBiUk5SUnE1ejNaUjZOaUp4VE4rcjQzTG1LeDJIZjI5L2Z6dXE2SGllWlk4Rkk2aTFqMmhURGYvcmMxWERiZDQwTy9ZR3FEUXFHQVlyRTRVNEhJYVQ3UlBMbUZ1dTlwRjExMkFNRFUzZFh1VXUzK3ZvVlF0TUFwRjllMW83dGNMcGRyS0lweXFVV1c5dXRxd1FLZ2Z3TXNTWktHM3pXL1JMVHVKb0lnZU8xZWFBYlA4L1RObXpmZnkyUXlYOHZuODEvVGRmME13UDhFZTRmUmJ3RDRHa21TcndpQ3NDVUl3cllnQ0NQWGhkblpIc2U5QTJRMWFaNTErUmxndUlyb3ZndlBhVk96RVlvbVRiL1A1QWRmN0k2bDFHeFE5cDRjWTVYalo5cUphUmplaU1XeEpxemdrOE5IQTRzL1Rsa1BCRzNMbk14Y1JrRHZJbVpTM0Z2ZjdDbEIyMHNmNDQxWXZNZFYxRDFXZUwxZXZCcDZCUUdhZFJTMjd0VmNlS1UyMmZ5TDNXY24rTVBIRDNEZUpmN1JKSVYzWHQrZVM1RkliOVNST2ovRG1hNGhHQXlhTG9MSzVYSlBLZGN6VmNHZlBEbkFkNkszaHZxNTF6VVN2RTRneVdoakY0dFdLQWJuZGIybmFZSnhiL0g1ZkZpaGFNdU9qaXhKSVVKeThPa2FNbW9GWjJOeVIzbzhIa3NucmE3ckk0ZGFHOTBCeldodkpUNUpHSVpCUEI3L3pZT0Rnek1BL3d5VHlXQ2NhMGlTWEcxM0FyVmZOOGJqbFVvRlFITWNFd1RCTm1oZDB6VGs4M2tVaThWTHRRaWI5TG5XdmlnMS90MHUraWlLTWxRSlR6Z2N0dHdVTld0TXNHQ0JGWVBrYnVYeitVc3RFZ0V2TWk3SERjdXlpRVFpenhPSnhMWExXSmIzTW1PM2xxOVdxMUFVNVhCNlJ6TTdLQUJ1bG1VM25Bd0kzVHNTeGs1U0tCVDZtaWlLWHlzV2k5bDhQaC9YZGYwTGdpQTZsRGFhcGtXYXBzVmdNUGlHSUFpM3huMGpUcWZUcGhNUjR4akhpZDJrZWRaQ1VSME5GR3JWdmxrbjg0UlJ5c0c1M2NBRWNsdnJhT0MwcHBxNmlqNGVVeDdSc0h4eStBaXJITjhUMWp6dkJJVlZmT2Z1MTRkMkY5bHg4NVVianB4V2E5N2VuQ0pkMTBjS3RIYUt5UEZZRHdRN3pwM0RrMHpMQWVWYmNpT3JWbENwVkRyRFlFa0s3NzYramV0dVorUGZORVNpdjNpYXdoOTk5YU9leDJtU3dyZDI3czdsdWFrMzZrZ29jaXNFbW1FWVUxZVJydXVtQzY0UGMwbkVyNG5ZWGxrYjZ1ZTdHeTY4V2wxQ2l0YjZodlVQQW5zUk5pc0lnbW4zTTcvdk9rSk0vM09IdlFoRk4rdXNOaXhXVGxvQVF3dEZoVUlCNlhUYThhTFlFQ2NtRlI3TTg3emI3L2YvWEQ2ZlB3ZndYNDM5Qjh3NUxNdmVOdjdkdldneWdxeXR1cGExWTdpN3pkeVVMd01YaXdoVUtwWFdBblJZOGNjcEhNZlo1a0hOYzZuZmd2bkQ3L2M3ZWwwbWs3bFVJckFWc2l3M3l1WHkyQVV2UlZIQTgveTFXQ3lHUkNJeDdyZGZNQ0ZZbHJXOXg0MVN2WERab0FBSVBNODdLanNqU2JLblZXNDZuYTZKb3FqNy9YNTNLQlFLaGtLaElJQ2ZuOUR4bW1MV1RjaEFGTVdKVENqdHlzODBUWnRwQjR5bjZqbDhTOHpjdVlyNndWbTRSTVpCb2RaYmZ2YkRaQUo3VDQ0bjlqT2RvT29hUHZ4aUY5KzUrL1daSHNld3ZCR0xOOE9FazQ5eGVKSVpTVENpU1FyMzFqY2RPNnpNT3A4Qnd3ZGFuK21hSTRlUHdiMzFUUndYbnJaKzUzTDFIRm5wRkVGaEZhdExOTEpxYnluc3ZmWE51UktKL3ZEeEEzeGE2QTNubjJlUlNORTFKTS9MSFRsUUFDeGRSVmFUMkQ5OC9BQXJyN040WlhsZ015MkFpMUswS29VVVBmN2NJclB5czFLcEJGcXZPeDdYamM1cXk3V3FhY0Q2TU1ka0p4UU5pdDE5MjRwU3FZUlNxWVNqb3lONHZWNzRmTDZ4Yjh4RUlwR2JzaXcvVkJUbEZ3SDhOMk45OHpuSDQvRzhhdnk3MjUxcGJPNVppUkhBZkpTWGpZTmhOaHNNVjF6M0hIa2FrQ1JwbXhPV1NxV21kekFMTGoyR2k5TUpWdmVFeTBZMm01MllLOHJJR1BUNy9WZm04N3JxOUJOS0pVazZmeG55aVFEQUJjRE44N3dqNlppaUtMUDJta3ZGWXRHOXY3OC9rNXRSdjhtbVUxVjhVS3hxRjQwU2dWbFNSd001ZGI1QzVjNEo4NFdVYXZHNHdiaFVXeU9yeU9ETGs0eHBBTzRzT0QwcjQySDZxUDhMNXhUbUltdnBWOTkrQi9maUcxaGRIcXlTbENZcDdFUmZ4YSsrL2M1QVpYaDJnZGJEb0F3b2Noa2R0OW81UEdsMlhDUUpGMVlvR3RHMUlPaUx3R0dPY1R2Ky9TWXRFaWxhRGYvMS9wOWZPcEVvcHlyNFVubmVJeElCVFZmUklOMHR6M1VOdi9mRlIzaHlOcnlOa1FTQmlFcUJHWE1OR2tWUjhIcDdCYXphMmVEbjl1b1NnekN6UFBJeDJUbUdCdGxSMWpRTmUzdDdJK2VsbEVvbEpCSUo3TzN0amYyZUc0dkZmbzBreVhXQ0lOWXVjaFd2UEFSQi9CWk4wNjAvY3ZjNGFqaUt1c2xrTXRqYjI4Tm5uMzJHbzZPalN5OFNBYzdQNTF3dWgwZVBIdUgrL2ZzNE9EaEFOcHVkU2FCdk9CeTJGTFp5dWR5bERSbGVNQnVjaXUrRlFxSHhNam9HQjhXNFB3V0R3ZGtleUFMSDJGMERtcWFoVkNyMTJ2Q3ZLQlNBZDBtU0hJdjF4S2hGMzlqWW1IaU50NlpwU0NhVFBmYjhka1JSbkZnSmlzZmpNVzFqREtDVkpURkxDclVxZkV0dTBBNDZPVTBEcTNWVXJZOVFORTRNVjFHeExPUERSdytuOW5PZGNELzVHT3Ryb2JuTWduRUtReTNoVmppS1crRW81SE1GeDRVOFRzc3l5dWVtdWZaWTVYaXNDU3VJK29ZVGM4Y2RhSzNVQjUvd3JLK0ZPZ1RIazdac3U0aWJnNTlpOEpjWEFsUzNxR1NGUnljbUtoSTlPU3ZoOTcvOERNOU14T1I1RlluVXVvN2tlYmxWYW1aRklCQVlhS0ZxaUVWLzkvVzNoM1lXa1NBUXJ5NGh3ZFJHTGtOcnp4UXlLejg3T1MzaVZpZ3k4UHV1TGpGZ1hTUVNpanhTWjdUdTdDUURwd3ZyYXRXOHE5NG9LSXFDUkNJQmtpUVJEb2ZIY3UvMWVEd0lCb08vbms2bnF3QitGOE4zZGIwVUVBVHhYUUR3ZUR5V0U2YjJPVjJsVWtFbWs3R2RmMTFtaXNXaXFUQmFyVlpicnFGeXVUd1haWFdHczg2TWFyWGEwM0Z6d1lKKzlBdnhOWmlrQytjcVlZanVGRVZaTnQ1WU1ELzBhNEJsTmNja0NPSmptcWFEZ2lDRURGMUZWVlZka3FRalRkUFdKM08wazRjQ0FKN25XNS9JM3Q1ZWovamg5WHF4dnU3c2Q5UjFIZnY3KzRqSDR4UEw2cEZsR2Nsa3NqWFpORnhPM1RmdFNibUoydCsvdXp3QWFPNTB6cnI4REdpMmhvK3g4N1hnczJOTldBRW1hS3lwTmVvNGxpVThUTXhmL3BpcWEvams4QkhlZlgxNzFvY3lGbmczaTF2aDZFUi9ocFdZTWV6dWFhMVJoOTV3WHRvRE5IL1A5cXlpOXZJem9DbWVyUzV6dU9Iek8vbzhtSHJUb1RJcC91SnBDdThmNy9XRVZnTk54OU43Mnp0ekpSTHBqVG9LdFNxZXF1ZU9CQTVCRUN6ejQ2d3d4S0svL3VxZG9UT0xBQ0JXcFpCa1Jzc3NLdXUxMXIvTnlzK09pMDlSMVdwRENjb3NTU0hHY25pc0RPL1NOQk92bkRJSmthZ2RYZGR4ZEhRRVNaSVFpOFZHdnY4R0FvRklzVmpjVVJUbE53bUMrQ2U0WWwzUURISEk2L1grUWpnY2pvdWl5TFIvWnQzektVbVNXaUxKVmNna3NhTllMSUttNlpaWU5LdVNzbjZRSklsSXhGbzRUcVZTY3lGbUxiZzhrQ1RwYUtOZmx1VXJQdzZNaTNaaFFSQ0VoVkEwNS9UVExpUkowdHJMemd5QktCNlBSMHkrbHlvVUNuR0NJRDYrcktWcVBUTXBzeHRocVZUQ28wZVBiR3VndTBra0V2QjZ2V09ac0Jsb21vWnNOdHRSNDBtU0pGaVc3Vkg0dkY3dnhGMU5naUJZQm5IT2c2dm91VjVEV2E4TmxMc3lLZnFWbUUyRFFxR0F6MHlFdlhuaE1KZkZUaXh1MmRGclFTL2pEclF1YVRXc0xnMzJmZXRyb1o1UWEwTW9BdUM0dGJ5cjBSUWJTRXhtays1UG5oemdUNTk4YWZyYzZqS0g5N1ozNXVyY0sya3FNdFdLYVptWkhhSW9EcnlMZnE1citQMHZQOE5kWHhoLy9kVTdBMzJ2QVlsbVp0R1g3dHJRM2REYUhVVVVSWUhqdUo1NzIzSGg2ZENkRWpseUNXRm1lZWpNb21FN214bGRTYWV4c0NpVlN0amYzOGZHeHNiSWp1SllMUGFMKy92N0NRRHJ1QUpkME5yRm9XZzB1aWtJQW1rMVArc3VQWHZaZ2xpejJlemN1M0dDd2FEbE9TN0w4cFYxZkUwS2p1TW1Iam8rN3pndDM4N2xjaE0ra3F2SkxKc2RMZWdQU1pKOTErN0ZZdkV2Z2FaQVJKS2tHQXdHWHcyRlFwYXpQcC9QaDJLeCtQcVlEM1ZxVUN6TE90cjJMNWZMQSs5T0dCTTJ2OTgvVXFoMHRWcHRsYlcxLzN5V1plSHhlSHJVMlg2N0xPT0NvaWhMZGJoWUxNNWNLQUthcnFJTnozQWxGZVBFU1lrWnNkUjdmb3d6V1Q2ZDdzMWptVGZ1SnhOWHhsVTBEVmdQQzR3MTBIcHdvU2dvcklKajNDaFhteVYyeDRXbkhjODdkWDlNU2lSU3RCcis4UEVEUEpUTUozYXJ5NXhqTVdzYWxQVWFjcW95ZEd0M082R0lKRW5iZTlpbmhUUXlsZWY0YTEvN3NhRkswVWdRV0t1UnlOQ0RMelRNTXJJRVFlZ1JpazZrMDZHRklxQlpoblplMTFDb0RkNEttR0VZeTVKckt6Uk53OEhCd1VEZmM5RlNHRUJ6MDJWUUY0dXFxdGpmMzBjd0dMUU5YKzZIeCtPQjMrLy8yWHcrcitDU2RrRXp4Q0dXWmQrSVJxTS9iU2NPQWEzeXFvYXFxb3V5a2puR3JzdVpFYzJ3WURBaWtRaG9ta1krbjBjK24zOHBCU09lNXh1QS9VVGtJcU5sU2tkMDlURGJBRm93SC9RVDhncUZBb0JPRjVFVFUwb2dFTGgyV1YxRkZFbVNqbGRGNVhLNUo5QXdIbzhqbFVwWlR1SlVWVVU2blVZK240ZmY3Ky9iVnRXZ1VxbEFsbVVVaTBYVENhWVI5R2ttMHZqOS9vbTN4emF3NnJSVExwZW4wcWE3SCtkMUhVL1YzbzVmOHdpeE5COEwxVmx5WEhnSytWeVpLMmZIUExQS0x1TXJrOGNybGNwUU96Zmxyc1Y2U0NVaDZDUjBOQ0NSZFR4ZDBrM2RJamQ4L2xZSFBWWFhjRlRJRDVTOWRMMUd3dDBZZjVmQ0oyY2wvTkZYUDBLbTh0ejArVFh2Q3Q3YnZqTVhJcEhlcUkrbG5UdkRNSlk1QUxxdUl4Z00yam9GTXBYbitMMHZQc0pkWHhnLzk4b0cyQUUvRzBFbjhiU3VvemJnbjFNMWNVNFpydFYyMm5Pd2hpWEVMS09zYTMwem44d1FSZEd4Nkc0c1dBY1JpVVJSUkRnY2JtMHM4VHlQU0NRQ1NaSnM1eHJkNkxxT2REcU5ZckdJU0NReXRCc3FHQXplTEJhTC82dXU2N090SlI4UWdpQytTOU4wUEJnTS9xd2dDSHkveWV5Rlk3dVN6K2VmQWZBQm1PM2taWUV0ZHB1aDZYUjZVUlkwQkFjSEI5amUza1lvRklMZjcrK2JnM29WRVFTaHIwQmNMQmI3aWtrTHJQRjRQQXVoYUU1eFVIWjJEZ0NpS1A1NE9CeW1uQnBnTHJPVGJLQ0pqNjdyUFJNK1FSREFjVnpmQWRVUWpOTHBOR2lhdHV5Z0FWZ0hSUmtZUVd0bUN3R080eEFLRGIvYk9paEdweDJ6WTVZa2FhVGR6SEdSVXhXc0x0RURaYStNRzZmdG83dnpSY2ExbzFPcFZDN0Y3cENxYXpndTVDZWU3M05Wc0ZyOERPdEVxelhxVUhRTkxObnNaQ1hvemZ3ekVnUkVuY1J5bmNBVFd1L0pvVmtUVmxwQ0VRQ2NsbVhIUXBGSEozQmRHMy9vL082ekUveitsNTlaUHI4ZUNNNkZlMDF2MUpGVGxhRWNMbFpZQ2ZoQTg5eUlScU9tK1hJRzU3cUdEM05KUEh5V3c4Kys4aHArNHZwZ0R0V2xCb0hhZ0tIUlpxSU53ekE5WTJLNWVqNTBUbEU3SWNZelZGNlJtWGhseGFBTExWRVVMVXZjQlVHQUlBaVFaUm1aVE1ieFJGdFJGQndjSFBRSVVFNmhLQXF4V094dkpCS0pGRUVRL3hpQTFHZzB6QlA2WjR6aEh1STQ3cWVpMGVpYlBwL1BkbUNwVnFzb0Zvc05XWmFKY3JuY0FMQUU0Qm9XSXRGY0k0cWk3YjF2a1lFeUhMcXU0K0RnQURkdjNnUkZVVmhmWDBjdWwydWswK21YUWhSaFdkYlI1bmF4V0h3cFBvOXhJc3R5YTdPQ1pSY2J3Zk1JU1pLT3VwMUZvOUY3dzFRTXNTeDdLUU90eDZJY0dBTnFPQngyOUhwVlZWRXVseTMvczRLbWFRU0RRY3NiSVUzVEErVW9qUXNyWVdwZWJ0WjFOSkF6NlhBMER5dzFPdTgzM1FMaXVNSWpVNmxVeDlmelBGRHZwWS83djJnQkFPQzZWekI5ZkpUZEdzTlZ0R3hpSFhJM1hJaW9GTHJ6aXRlRWxZNnZqd3Q1T01IVkFFSmo3bkIyV3EzZ2V3ZWYyb3BFOStJYk14ZUptZzZpTXp3OGs4WXFFZ0ZOZ2NXcUZXMjVYQVpGVWJoNzh4Wm8wdjZ6ZjZZcStLT3Zmb1QvZXYvUGtYanVmRHdmWnpkSHM0bExkM25qTUhEa0VxNE5rVjluT0xiYU1SdFBjN25jMkVTaWRuaWV4K2JtSnVMeCtFRGplTEZZeE83dWJxdFY4U0FJZ3NCNXZkNWZBdkQzQUFnRHY4R0VJUWppdXhSRi9iZWlLUDc2MXRiV1A5amMzTHhuSlJKVnExWGtjam5zN2UxaGQzY1gyV3lXdUJndkNUU0ZvdmxKczEvUWc5SGR6NHBNSmpQRm83bDZLSXJTOFJrR0FnRWlIby9QUG1SekNvaWkyUGYzckZRcWN4ZnFmdG1ZZGFYSkFuUDY1WE5Ka29TdHJhMmhSQ0lBSU1rK0U4NDVaYXdISFFnRVFKS2taY0R6S0JnVFU3dnNpWGc4UHBNTGtPZDUwOXdHUlZIbW92c1pBQlJxVmZpVzNLQmQ0M2N1T09YTVZjZHl2Vk9icE51RUlyV3VnMkdZc1ZzeVpWbnVlVStQeDJONnMydlBtcGtWM1oyekZsaERFb1JsbDZ0S3BUSlVvUDF6WGNWMXVFRTJ6RGZONkVhek05a1I4NkpNemVodWRucldQTStNLy9mamVvM3N1QVpHWmZmWkNmN3c4UVBUcm1ZQVFKTVU3cTF2anBSeE15cHFYVWRPVlZEU2FpTzFhdTlIS0JSQ3NWZzBQVGRTcVJSV2IyM2oyM2ZmeGdlNzkvdit2UjdMcC9pOUx6N0NDczMyZFJpZHVlb0RsNTNaSVlwaVJ3TUhBSGp5ckRpV3YyR0k4ZUI1WmZEU2ltN0hWdmQxVnFsVUJnb0M5dnY5QStjS3RqdU0ycnVnMnFIck9oS0p4RkEvTHhLSi9FU3BWUG9Zd056VWNSdmxaZEZvOUR0MjJVT2FwcUZZTEZxVzhsOUdPSTREei9PV0pZVzZycmNpREs1U1FMR2RLeTZYeXkxS1dzWkFOcHVGeCtOcEdHVllnaUFRZCs3Y1FTS1J1TktmcjVPeXMyR0U5Z1dkMkZYVUxKZ2QvY3JEQkVFWWFUM1BEMXYvUG1OR1ZqQ1N5U1E0am10OWdENmZEenpQSTVWS2phVzJsK000a0NRSlNaSXNiL1FrU1NJV2kwMjh5NWtka1VnRUJ3Y0hQWS9QUS9jemcrUjVlYWJCMXYxMjJkVkczWFFBYmJkc0RrTzNtd2hvTHI0NGp1c3BQNW0xU0dUUTNUbnJaY05weGcvcklzSHp2S2w3YjFpaHlFbUk4bkxkaFlCS0l0Y1dXc3k1MlE3Qm9kL3ZzRlFIUkgxOHd1My81K2doUHN3bExaOG5TUkxmMnJrTGtadk52YXFzMTFCUXovRzhyUVg4cElsRUlxYmRtbFJWUmZva2k4aXJHL2pPM2Evallmb0k5NU9Qb2ZiNTJ4c09vejk5OGlYZVhmc2E3dnJDSFJsR09ocklMQTBYd20yRngrUHBDZUgrS24rQy84M216WkdGZjlwRllvV2lCODZGWWhnR2ZyOGZ4V0lSc1Zpc1k0SmxoRmM3WFpnSGc4R1J5c1Y1bnNmVzFoWWtTWEs4U1pYUDUxR3BWQkNQeHgxUC9DNWNhdC9NWnJNUEFmemUwQWM4SWdSQi9CYUFiVU1nc2lzdmt5UUpoVUpCTDVWS3M5c2hHak9EbkMvdDUyVXFsUm80RkgzZVlGbldjajZwYWRxbGFOaHhXVWdtazhUMjluWnJmS0FvQ3B1Ym04aGtNbGN5NkZvVVJVY2I3UXVoYURncWxVcHJIYk53Rk0wbi9ZUWlKM09GdzhQRGhzZmpJYVlaZ1ROcCt2N1cvZHBGR3J0VTZYUWFvaWlDcG1tSW9vajE5WFZVcTFWSWtqUjBtMDZhcHZ1cTl5UkpZbU5qWTZZaUVkQ2NySnBsRmMxTDl6T2dtWUZ4V3FzTzNOVnBYTlFzOWlvOE90SEtNT0o1dm1jbmVwUWJzckdiMkU3N1RpUkhMdUhoNDhPaDMzOVNqS08wNUxLU2xVN3h3Y01IK05hZE4vdUtaU1RoQXNkeHBrTFJLRHZuWmIyRzY3QmZXNGs2aVlwZWgzeHg3cTV5UEk2TEwvNXUvWEtLeHBWTGxIaGV4UHZIZTVhQjFVQnpnUkdQeDZjdUVxbDFIV1ZkUTA1VkJtNXpQdzZNREQyeiswZytuMGNoRklhWG8zRXJITVVxeCtPVHcwZU8zR0RQVkFYdkgrL2gvZU05dkJPSTRhNHZqT3ZjTmFSb2JheHVvdmJmby9zYy8rcTBnRTNmNkJsNHZpWDNVQUhpd1dEUXRIRkVJcEdZbWtoa1lHeFNHZmxKVHNxK3krVXk5dmYzRVkvSEhjOGYvSDcvVmo2ZmY1VWdpRFhNS0t1SVpkbmZqRVFpUCtOazgwUVFCSkFrU2ZJOEQwbVNSbkpEa0NRSmtpUm5KclJ3SElkWUxEYjBJaXNTaVNBU2lhQlFLQ0NielY1S3djak9CV2NtaUM4WUhpT3ZhR05qbzJPQmFBUmRaN1Babms3TVFHdmp1c0Z4SE5IK2ZaVktCY1Zpc2NjZE9pOTBseE9iVWExV3I0d2pjZHBjTldIeHF1SDFla2R5QzFVcUZhTnhCekZyUFdMYzlQMVVlSjVIS0JReWRjdTBvK3Q2YXdCTXA5TWdTYkxWdnQ3NGIxQUxjTDhiT2N1eU0zY1N0V1AyT2MxTDl6T0RUTFVDTDdVMGsyRHJNMWZkZFBIZHpDbHFMcmJOSEVYRGRyQUNldXYxRGZlWmdlZ1RzYVBYY2YvbzhWRHZQeW1HNlp4MUZhaHFOWHo0eFVNQXdDZUhqL0NkdTEvdit6M1grV3N3aXlXdVZDcERINGVpNnpnanpjL1hka0lxaFMvZE5kU0pwcU9vSGJ2dVZFdDF0SUt5UitFSEoxL2gvZU05MjllMGgvZ2FRZDJUNXJSV3habGVHN21EMlRpSXgrUFkzZDN0dWUvb3VvNi9mTFNQMkkrL0JaSndJU2lzNGp0M3Y0NGZKaFBZU3gvM2RSY1pmSmhMNHNOY0VtdXJJdGI0RjQ3Tk5XRmxJRmZna3MyWWJDYUdQcEdLWXhHS1dKTENFdUVhV01paktLcG5ZcFZLcFJ5TEVlRndlT3pOSGk2Q3B5R0tvcVBBYTFWVlc0dEJKL01JaXFJUURBWi9QWjFPVndIOExvQ1Q4Unk1Y3dSQmVHc1FoNjJ4S1dKODFySXNvMUtwUUpLa2dlWmp1cTdQYkxFekxrRVJBSHcrSDN3K0gzSzVITExaN0tWWndIbTlYa3RudFZsNS9jdUNzZFlBTVBZU1F5TUl2MXNzb2lnS2tVZ0V3V0N3UXppaGFkcVk2L2RzaXhycklKSWtCeXJMblFZMFRUdHk3VXVTdE9oMk5pYk00a29Xekk1UnVwSVZDb1dKUk83TUM0NVdESWExZXhBN3VhN3JmY09wUjJHWWpJRkpZK1VxbXBmdVowQXoyRHAxZm9ZWU8vM3lFNnZTTTNlZGdPRTNZeGltcDh4aTJBVi9wVkxwK1Z0MDcwaWU2UnBlaTl4QStWekJZVzYrYnQ3SEw2RlFkRC81dUZYK2QzcFd4cGNubWI1WkxNS3llUURkS0dOUEhRMmNkeWRXbTBDQ3dGcU5SSWJXd2JtZFI1ZU02aVpTdEJwKzc0dVBiRjFFUU85aVhKOWdKbEJacitGWnJZcXlyczNFUFdTRklSNlk3YmlYeTJVY0ZaN2kxZXN2UHFNM1luR3NyNFh3NFJjUGNWSnkzb3IrNUxTSWs5TTJNZWNJZUdmemx1TXNJZHBsTFJRSmd0QlRKbnYwNUFsT2dtR3NMVjl6Zkl4V2VLbWxrUVBGQzRXQzQ5M3lTWWhFN1JpQjEwN2NJNFp6SUI2UE8xb3NCUUtCU0Q2ZjMxUlZOVXdRaEFxZzNHZzBwcWFJNXZQNVA2SnArbS8yNjJobWhabHdwT3M2VXFuVVhMcHNvdEhvUkZ6WmdVQUFvaWhlaWhibzNSdGMzU1NUeWFrZHl6eEIwelMydHJZNlJKeEhqeDZOZGQxaGlFVTNiOTdzZVk2aXFJRmlFVFJORzJrRGExSUVnMEZIQXBBc3l3dVJhRWk2Ty9IU05MMFFpdWFJWWVKTkxzcDlHMWU5Q3lDbEtJcWoxYkhINDJtSlJiT2NUTXliaTZnYnM5M3JmRDQvTjBJUkFEelhheWhwS3J6VWRBUFZhcTdtUXBYc3VoKzV1OEo4V1pidHVORVBxOUoyTDFxOFhxK3BhcHhURmJ6NytqWk95N0psMllrUkF2eko0U1BIVG9OUk9TNDhIVXNiN010Q1ZqcnRhREVQQUh2cG83NExiZHBGV3U3T0RKdFRCQUIxQWpnbjZuQTM3TjEzZ2s3aXFVbHJjeXVSd2RVQWVIMTRSNThURjVFUjd0OTk4enM1azdGY2I1YkZxWnI1ZVd6bmhETGp0Q3ozWEJOR2g4cHhMZkEwVFVPNVhEYWRaTk0wM2RxdHRVSVFCSGk5WHRNRjRXZUpndzZoQ0FCNE40dWYzN21MckhTS0Q3OTRPSFIyMlNlSGozRERkMzNrYTVpaUtOTnovSXZqSTZ4dDNlNzcvVm5wRkNmU003d1JpNXMrdjB5T0poUlZLcFVlSWN1S1NZdEU3VGd0UnpOQ3JvUEJvS05qQ3dhRFAzMTBkSlFCOE44RE9BUndPcmFEN29PbWFmOGhRUkNueHVkTmt1UXF5N0szR1lZSjBqUXRBTTNRVEpJa0hZMTl4aGdoQ0lKUkhxUExzcXdyaXVMQ21CdWVETXFrUkNJRG8yT3ZKRWxJSnBOenV5UHM5L3N0eXlMbVZlQ2JCc0Znc0VGUlZNY0Vjbk56RTZsVWFxd2xYb3FpNE5HalJ3TmxtcldqYVJyeStmeGNaaHZSTkEyZnorZG9vVHZ2Z3VwbHd1UHhMRDdQT1lGbDJZR3JmdHBMelNaMFdITURwZXU2M1A5bFRSaUdzZXd3TkdrNGprTWdFQmpKSGpZTkxxenBIYUdDcXFxaVVDak1UVllSQUtUT3o4QXRVMU12UVR0ek5YQ3RxKzM0Y3QwRlZ3T2dDUmZPMEp5NHRndEZ3K3dPR1YxZTJyRnlvSjNwR3NwNkRkL2F1WXZ2My8vVVZDeTY0YnVPMTlaQ09EekpET1F5R0FWVjEzQmNlRHJURGxYVG9yM2tySjNUczNMZkRuQnVGMm5aeFc0VW9RZ0FaTElCdHdOZDhMcEc0cmoveXdBQXkzV2lSeXgxZ3FMVjhJZVBIK0NobExOOUhVbVNDQWFEa0NUSlVmbk5KRkJWRlVkSFI4aG1zeEJGMFhhaFkwV2xVbW1GRHZmYmVTTkpFb0lnMkhZRWlzVmlwaVZvNWVvNVBqNThoTGZXTjN1K0p5aXM0dHQzMzhaZStuaWdjalFEVmRkd2VKTEJyWEMwNzJ2N25ST0NJUFI4RGwvbFQvQmowVmV4NmxtMi9MNnFWa05RV0xXOWh0Z1JRckUxVFhQc2FQRDcvVlBmTkRFY1pSekgyZHJEZFYxSE9wMEd3ekI5NXhrK244OVhMQlozeXVYeUJ3Q21uaURjYURSK3grbzVnaUIrSzV2TmJodGZzeXo3QmttUzEzaWUzNkpwMnNNd0RHbTFlM29odUpLeUxKTUhCd2NTQUdIY3grNlVTWXRFN1FpQ2dJMk5EV1BpUDVXZjZSU1NKT0gzbXp1THE5WHEzR2JlVEJxU0pDMEZqa2drQXBabEhZdlhUaWlYeXpnNE9IQzhVYTFwR2lSSmdpUkpjeTBJRE9BbW1zTFJYRjI2MTgyTHptZnp3NkM2d3JDbFpwVktaVFRiOW93WWViY29IbytqVXFsQVZWWGJ6bVREd0xJc2VKNDNEY3ljWndLQlFFOGIybXcyTzFkQ1VSME41RlFGSWNaNmdURUpaTEtPYS9WZWNXcTVUbUNaWE1JelRUVU50QjUwd2QvZG1jSHI5ZHFlUXdYMUhER1d0eFNMRG5OWmNHNFdxeHcvTmFFSUFFNmswNWRDS0dvdk9ldW1Yd2M0bW5DMU1ncTZHWFhTTDVHNm96SXhRU2RCbXJTNXIybzFmSGxlaHBkYWdtL0pEWmFraG5JVEpaNFg4YjB2UDdWc2U5K09zZUNkQjFSVlJUYWJSVDZmeDg3T2p1UHZrMlY1b0ZCa1hkZFJMQlloU1ZKUEZ5NER1eEswdlNmSHVCbStBZDdkZXg0eDFCTGVpTVZ4TTN3RGUrbmpnZlBNVHFSbmpvU2lmdGxSVmhQTEh4NGw4TTJ0SHh2b21IcmVld1NoeU9uaWVwb0xmek44UGg4OEhrL2ZFdnBrTW9tdHJhMitjNDVRS1BUMndjSEJUd080UDk0akhZMUdvL0VIVnM4WkhkTUFnS2JwT0UzVFlVRVE3bmc4SG9abDJaYkllakdlS3JnUWlqaU93K2JtSmpSTmc2SW9RMlVjRGNJNDNZaE84WGc4Mk5qWXdNSEJ3VnlKUmNGZzBGTDhmbGxMem9EK2l6dmovQm1uV0tRb0N2YjM5K0gzKzAzWEpiSXNRNVpsRkl2RlMrSHlHc1JOdEJDS1JxUDdmSmpYcXBnRjFseHNpalZLcGRKUUxpSmQxK2QvVURDQkFrYmJkYWRwdW1QQXJsUXEwSFVkbFVxbFZmdnVGTU1xN2ZGNGhyS0N6Uk9SU0tRajJIb2VYVVdGV2hYTDVOSlVTOUFxTHZQc0VsNTNnZXVjcEhaKzM0RG5hTGVicUYvOTZYTzkxZ3o2cFpid3p1dmIrUDc5VDN2Y0EvZVBIbVBOdStMNEdNYkJZUzZMZDEvZjd2L0NTNHhaeWRtYWQ2VWx5UFhyQU1lU1ZLdThwSnRSOHdCcUxtZmxaNEI1T2RscFdVYWRBcDVwS3A1cEtwWUlGL3l1RmFCUFNMYUJvdFh3L3ZFZVBpM01oL0F6TExxdUk1ZkxPWEtUVkNxVmdVU2k3cCtUU0NUZzlYb1JDb1Y2eGd5N0VyUVB2M2lJbjkrNWEvbmU3WUxSNFVrR2h5Y1pSeDNTQmkzbHM4SnEvRHZPNTFCNjlSeGV4andqYTVLbHE3bGN6dEZ1K2F4RklvTjJNY0RPV1pSSUpFd3pTZHJoZVo1aFdmYW1vaWlYWnNadkppSVo0aEhIY1QrMXVibDVyKzJwSGxYYXlHUXhNbzRNNGNqb2Jqc09nWVZsMmJFRlZ3OEtSVkhZMk5oQUlwR1lpM0JvbXFZdHg4eVhPY0FhYUFwb1FIUHhaaVdrK1h3K01Bd3o5UDNFQ3FPTTdMTGoxRTBFakQ2WEdoYU9NOCtnQkViTG9adzFSckQ1dkpVaXZvdzQrUnNZODFKVlZhOThxVmszRkFEb3VxN0JvYnZJNC9GMFhKeVNKSFZNWUkxL3Q0Y2x2b3dZVHFqMm0wazZuWVlnQ0NPMTRCczMweTVCczFwNDg3b0w3aVd5MmZuSEpJOWprQW1va1dmU2poTnJZYUYyamdqSlFlUmVPSXU2eGFKcHVva01ybkwzTTdPU3N6WHZDdGJYUXEzUDJra0hPQzlyZnRNZHgwU2lTTlh4aW9PZTUzeTkvLzJqMXFqREIyY0w5OFR6SXY3dzhRTThVK2RuZDNzVW5PeXdWcXZWZ1pvbVdGRXFsVkFxbFNDS0lrUlI3QkNLclVyUVRrclBISVduTTlRU2JvV2p1QldPNHNHekhNcm41NjNkVnJOdU5vT1VxeTJURk00c1htOXNvSmlOaForbEh1TzlkWHRoWTl4VUtoVkh6alcvM3o4WElwR0JFN0ZJVVJTa1VxbStEVFA4ZnYvYlIwZEh2d3pndnhqL2tVNEhRenp5ZUR4L2Fqem05SDdiTGh3QkwrNjlzaXhEa3FTQlhSVWtTV0pqWTZQdjY4eUNZY2Uxc1VoUkZEWTNOOGNlaWp3TWhoaGl4c3ZzSmhKRnNmWDM3bGNPeHZOODMrdjlaV1FRTnhFd3VqdmJLUnpIUVJURkJzL3poSk5yMm5Cd3liSTg5eTR1V1pZNzVpSWN4ODExV2VMTEFNdXlscVc5Qm9PV21wR2srVVp3dVZ6K1l1QURuQU1vQUQ5b2Y2QzdhMWUzaWl5S1lvZjRJVW5TekhaLzVwMWdNTml4eTZick9yTFo3RngxYTV0RkZ6U3poVGNKQW1UalJmZWQ3anlPUVd5djNXVm5UaWVSenpRVmdib08ya1hhaWtYVDVrUjZkbVdGSXJPZzRQVzFFTmFFVHVkV3Y4K0FkWkU5WTVQQk1JNUp0UzJjV2licjBHdTlJZXpkbUpXZWRiUGtZUE5PMFdyNGt5Y0grRENYdEgyZDErdEZKQklCd3pDb1ZxdXRTVkw3dGFLcUtxclY2c1JLUkp4aTVDYlpvV25hMkhkK2k4VWlpc1dpTWZtRXorY0RSVkVJaDhPbUpRbURoayt2TFY5RGJtbXBOZm16S2prb2xtV0lYUDh4dHQ4NTV2ZjdUWTg3ZlhLQ0o2RUlYdkVNTjQ3ckEzYXBjNXBMWkp5ajg0WWhGdTN2NzF1K0pwL1A5eTE3OS9sODE3TFo3Tm9ram5IYUtJcnlRd0EvQTlqbloxUXFGZEEwYmJyaFJWRk5kNmNnQ0loRUlxaFdxNUJsR2ZsODN0RkMwNjdNQ21qZTI4MUtSdzFZbHUyWXBCdTc5dTFpbGxQaThmaE1uVVVjeDFrS3JMbGNidTRYeFpQRXVKY1VDb1dPRnZaVzkzbWpHVThpa1ppcnNzSlpFb2xFQm1wMVA4bnpqV1ZaaUtMWUVBVEJFSWNjSDFmN3RaM0paRXczYStZVm51Y1hRdEVNWVZrV0d4c2JsdmVjWVV2TnJscFpvVkY2ZHNienZCZm9kUXgxVDlvOUhrOUhvTFdpS0toV3E1ZTZUR3hTR0prWTdaUFJmRDRQVVJUbjZrUjZydGVRVXhVRWFQT2NsM0ZUb3VvUXRVNVgwWm1yanBvTHVFYlJMYUdvZmNBZjVPYmVMUlFORWxTV1V4VkUzRTJycThqeHVMZStpUThmOVlZc1Q1UGpRdDQwYVBleTgrVkpCc2ZGenJLeU5lOUt5OUhCTWU2V2lIUWkyVGNWb2wzTk1PTnhDRVd5TENOVEttSDN2RG5HblpabCtCZ1AzQ1NGN1pVMTNGb0pZSlZ4OW43UDFTcEF2UmdiVi9xNGlaNmNsZkJIWC8zSXR1MjlXVWN4aG1GYVk3RFRCWkdaK05vdU9ObGhsQmc3Z1NSSlJDS1J2azdLZnRrZ0hNZEJFSVRXMzdKYXJhSmNManZLeGl1WHl5aVh5NjNGdjgvbk13MFpWWFVObnh3K2NsenV1VUxSS091MWxndUk1M25UN2xxSEp4bUlEcTVobHFUd1hLOVpQbStVV0hiL3ZycXVZeStieG1yc3RiNVpSMllvSmwzNzdIQ3k4RGM2bE00ckhvK254L1hiVFRhYjdmczdCSVBCWHlZSTR0ODNHbzEvTWVaRG5CbDI4N2xpc1loOFB0L0trRFQrYi9ZOXhyaEVVWlN0d0FNMHp4YzdGM3ExV3UzN0h0M25wREdYeldhejREZ09vVkRJOGZoSVVSVGk4ZmpNTW90RVVUUjlYTk8wUzdVWUhqY2N4N1hPTmVOejBIVzlyMWpFTUF3Mk5qWWdTZEpRUWJSWGlZdDdxZVBGYjdVNm1ReGVtcWJoOS9zYmdVQ0F3QURpa0JXaFVBaCt2Nzl2bDh0WlVhMVdPOGFmWVZxeUx4Z1BITWZaZGpHVVpSbkpaSEtvVWpPeitKVExuUEZsbEo2MXRoT3RRbUhiQ1FhREhidWErWHgrTG5jTjV3R1B4NE53T054aDBVOGtFdGphMnBxckVyU2NxdUFhdVRUVUltTVludEE2SWlvQitzS0ZjVTQwQUFBYzJWeElkd3VTUUs5dDB3eE4wM29XZjRNTXh1MnVJZ0F0MGNKS0xMb2hYZ2ZRZEx4TXlubFVycDQ3ZGlSY0ZvcGxHWjhjUHVwNWZDZjJhdXZmYThJS0RuUE5pZURwV1JsVnJXYnA5RmkyT1crZFR2S3IxU3FTeWFUcERySWgzRHlXVC9IKzhSN3Urc0w0MlZkZTZ5c1lQWldmNDVybnVxT2YveGRQVTNqL2VNOHlzTnJvZmpNdUI2ZlpkVEdMaVl2aEpETDdPMTFNSkNHS1lzOTR5Zk04ZkQ3ZlFLMkhGVVZwZFdNTEJvTW9sOHM5MzNPWXkrSm1PT3JvZXFOZEpPTHNOWlF2eEhhTzQwd25xRTdGM3FVK0pjQ0dZOFBzWitUemVTUUNhOWp3WEJzNG5QcTVOdGh1c1JNeDBXNm5ibDZJUkNLMjJUcmRtdzVtQ0lJUUhXZGc3aXl4dXNlMmZ6NkcyMGhSbEk3SFNaSnNpVWFHZ0dUOC9RdUZRdCtmM1c4T21VcWxIUDBPVmhoZHF6aU9ReXdXYzdTNWFXUVc3ZS92VDlYQmMxRVdaUHBjc1ZoOHFVVU9VUlFiQUloQ29kRHhOM0VpRmxFVUJaL1BCNS9QaDB3bU01ZnQ2aWNOU1pJREMvaUtvZ3prUG5KeURNRmdzQ0dLSWtGUjFGZ3pYNHdOZWxFVXgrNVFIcFZGb1BWODRQVjZFWXZGTE9jbnVWeHU2SVl3SkVsYXZtK2owWGhycURlZE1UMnowdTRUMTJ6UkpBaENoNzNYeVdUcVpTWVFDSFFFc3FtcTJuZG5iQllrejhzRGx5QU1TOVhWd0tHN2hqMVd4UjZySWtlL0dNeXZYWWhGM1JOV0orZVoyZmxxRjRabnhyT3VSZE5yYXlIY2k1dm5KaHdYbitKbStBYldKOXlaN1BBa005SDNueVpWcllZUGR1LzNDR3ZyZ1dCSGQ3TzFyazVucDJWclJaNEVZU2x5T3cxaEhLVE00Tk5DR3Y5bzl3ZjRpNmN2Rmk4SnVYZnhyalk2SnlsNTlDNDJGSzJHN3gxOGlqLzY2a2VXSXBIZjc4ZlcxdGFWSy9QTjVYTFkzZDN0K2R5TjNaN2J0MjhqRUFqWUNnNFVSU0VVQ21GN2V4dkJZTkN5UHJ3ZFZWVnR1K0dZaVpoMmNPUVM0dXcxM0F5RVRIKytJZmIyZzNiMXo4S3lLdUZUVlJYNXdsUGJjZnpMa3d6azgwNVJSRy9VVWRLc1hVenRwRklwN08zdDlkMnR0U3BObWtmc0JBb25pNHh5dVR4L1c5ZkRzZHYrKzNJY0p4ai9ibi9jYW5HajZ6cks1VEt5MlN3T0RnN3c0TUVEN08zdFlXOXZyMjk1UlhlT1dEZXlMSSt0UktOY0xtTi9meCtaakxON3F1RXNjakt1akFzck54R0FLeEdpUEFxR0U4Yk1WV1dJUlU3dSthRlFDRnRiVy9CNnZlTS9TQXZDNFhDalh3bTJnU0c4anB0aHVraExralEyTVllbWFXeHRiU0VRQ0JDVHZFZndQSS90N2UyQjUvL1RadDZQNzZwaGJCU1luWHRHcWRrb1hZT3RybGxabGh0RHYrbU1jUUU0bDJXNU5lSWFOZDN0YUZybjRzWFkxVFJRVlhWbWlmaVhoWGc4M2xIM1h5NlhSOTRoR3plMVJoMnA4N05aSHdhdVhYUmg2eTRaYzJMZDYzNU4rNjZtVTU2cTV6MExyVnZoS0c2K2NzUDA5Ui9zUGtENWZMTFc5RW0vL3pReHl5WGlHRGZ1ZFRrdVZyc2NIWGJkbzFpU3N2dzdPM0VVR1ZrSGczQ3VhL2lqcjM2RVAzbHlZUGthdGQ2N1lFODNYdnp1VDg1SytFZTdQOEJES2Rmek9qZEo0YTR2akxkdTMybGxFVjBWWkZuR28wZVBla29BUkZIRXhzWUdSRkZzdmNiNEw1ZnIvWXphTVFTam5aMGRSS05SMjV3VkF5c2g0S1QwRE5rKzVZNW1yTEVjTnRkZU1YM09pZGhyT0NydFlCakdjaUdaeldaeFh0ZVJVR1JUc2VpRzd6bysyTDJQSDN5eDJ4S01DclVxYWwydnpXUXlQZitsVWluSFdUTjJDOTE1dzNDL0RFdWxVam0rS21WbmxVcWwvUWFxQWpnQlVBVmUzRnNIY1IxMnU0NnM2QmNtT3U2NWtwRVh1YmUzMXpPL05jUGo4VXkxak5McStya01nYjJUeE92MWdxSW9GQXFGaHRYbm9PczY5dmYzSGJuWUdJYkIrdnI2MUlSQWo4ZERoRUloUktQUnZvdEdJOWc5SG84M3huVnN3M1FVTk1LaXh3SEhjZGpZMkpqYVhNWVFlYWNwQnRwaHRvWlp1SXFtaHlpSzJOemNORjByR0kxVWlzWGlTS0tveCtNeHZiYmJLN2N1R3k0QUVvQ09HWGkzd21sMm8rOVd4Vi8yWFk1K0dCYm05Z0UvbjgvM1hmeE1HeU92YUpad0YyVkUzYzQxUlZINlR1cTZCK0poQnVFNkdqaXQ5VTVDM2xyZnhIcWdkemRJMWJXZXJKMXhRcE1VZG1MeGliMy9OUG40OEpIcFovWGU5azVQV1ZsMzZZK2Rvd2dBM0M3U2RIZkdpU3RnbFBIclQ1OThpWCswK3dNY0tjNTJ2SGZyTDl3ekQ2VmNUMWN6TjBuaFoxOTVEZi9KbmZld0UxdUhSbDhPWjRZVERQSG40T0NnNVNJaVNSSmVyN2NsRGgwY0hPRG82QWo1Zkw2VkxRUU1salhtOC9sdysvWnQzTGx6cCs4aTFJcjd5Y2REZmQvTnNMbWc3TlFWNkhaUU5tYTFrRlJWRllWQ0FlZDFIUWVWNXloMXVTTVphZ25mMnJtTEUra1ovdmpqRC9IcFY0YzRVWHBkZE5sc3R1Yy9wOWVJa3k0aTg4WWc1MVkzc2l6UE5zUnVURFFhalQrb1ZDb3RSWWJuZVE3QUF3QVZvTk9aT2M1ZGNKWmxiZS9UdzRqNFRsRVVCZnY3KzQ0Mk9nVkJtSW9BeXJLczVVSjZIbk5YcG9seG5tU3oyYjZMdWFPakk4ZXVNVUVRc0xPejA3Zmh3cWhVcTlVR0FQaDhQcUtmV0tTcXF0RXBtZGplM25hMDhXSEhvQ1ZudVZ5dThlalJvN0ZVUDVBa2lXZzAydGpjM0p6NmhoZEZVVmhmWHg5b000RGpPRVNqMFlZaDFQbjkvb200dXdCbmNTOExoc2NRWE45ODgwM0w4MStTSk96djc0L2xQa1BUdE9uWVZLbFVadS9DR0JJS3dIbTVYSDRJNEtlTkI3dVQyQ3VWU3M4dUVzTXdIUjNTaXNVaXd1SHdwYkdiendJalRLODkzRHFkVG9Na3libHFINXhURmJoZEpMelVhRGVtWWFGZEpKWUlGMnFOdW1tWFBidlBxdnRDSDNZUUx0VE9jWjEyOXp4dWhOd2EyVG1UWmowUXhMMzFUY2RkbU9hWkwwOHkySHR5M1BQNE81dTNMUE5nMXJ3ck9DazFuVVJxSDVHUUpBZ3dERE53bDVwS3BXSjdnNkJKcW0vK1ZLYnlITEFKb0c1SGdvYmRlaG5iTGc0clhRSHkzNzV4RSsrdWZRMEE4S3hSd3cvcmx6Y0FyNTFDb1lCaXNkanh0eUZKRXJxdVE5ZDF5N0lTWXdkMDJJVThSVkdJUkNJSUJvT3RIQ1BqZmR1UGhhWnBpS0xZVWM1d1VucG1tNHRsQmU5bXNSNEk5b3dScXE3aHFKRHYyOEdRZFpFNDd4TXV6Zk04UkZHMHpDcnkrWHlvTmVvNE9pOWptYVN3UWpFdnl0b0k0SzJ0Vy9penorL2o4K092Z09QbXhOaTR4NC9pRHFacCtsSmtFM1hEODd4cEtjdkxOb2xYRk9VTEFEY0JnS2JwSlFDdkFDZ0JXSkZsdVJVMkxRakMyTHFCOVhOTFREcTRXVlhWdnRrMkJ1RncyRkY0L2lqWWlWRXZlOHdEei9PUUpNbXhxeXFielVKVlZjY0NpUkYybnNsa0p0THRybHd1RThiODFlZnpFYXFxMnA3ZnhXSVJnaUEwQkVFZ2pMWERzT2RlTUJoc2VEeWV2Z0tiSkVtTlRDWkRLSW95bG5JenY5OXZkRE1jYXhiUm9NVGpjVWVmWHpRYWJmaDh2dlp3YmFKOS9tRTAvSkJsdVRWM2RIbyttcDFUVjhrcFBvL0U0M0ZMRit4Rlk0QkdQcDhmMjdscGRROVJWZlhTdHJkcnplYmFPNWQxZjZoV2l5aFJGRHRPL0g2TCtBWE5reWdhalhia1l4d2RIVUhYZGR1T0g5TW1kWDRHbW5WTkxkeTZHNDZrOEV4VGU0U2ljcmxzZVk2WkxYQ0dEZWV0TmVvNHJWV3h1dFE3aU45YjMwVDUvTHdsWUV3U3pzMWVDWkVvSzUyYUJvTHZSRjl0QllhYnNTYThFSXI2T1lvNGNzbHkxODJ1TTZPZFV5SWFqU0o0M1k4NHk2UDR2SVREa3d5T0MwOGRCNWRiVFNCMkcyV2dEaEIwNTk4MjhieUlkOWUraGtmMXMrWnJMakhWYXJYVm5yNzdjekQrVGxhVE5xL1hpMEFnTUxad2JhTXNyZHQycjJrYUZFVUJUZE5nR0FZZWo2ZFo1cUxYc2I0V0d2cmEyNG5GVGNYa1l3ZENrZHRGQVNaWlZ0MzQvWDVUb1VoUkZFaVMxQkxYem5TdDFaV3RCZGtNbTA0a0VsQlZ0Y081TlN6OVdzMWVScHlVZkNpS2NtVmFVS21xbXRBMERSUkZ3ZVB4ZEFSbXRaOGYwd3E5N3c0c25oUzZyanRxTW1JRTVVNHlZOUpLS0NvVUNuTVZ6RHNqbEV3bU01QjZXeXdXb1dtYWJYaHRPenpQWTNOemN5SmgxOTBiNnFGUUNMcXUyODVCa3Nra3NiVzExZHBvUGpnNEdQaVlSRkhFUldjeFMyUlpOZ1N5c1N5YUJ3bU5ud1lNdzhEdjkxc0tjelJOSXg2UG81K1lablJ5YkI4RGpibk9vTUlSc09oOE5rbU01Z3BtR0UxVXhuVyt0LzlNTTFSVnZiVHpCQXJBT1FCSlZkVXFjM0ZGZDNlY3NzcUc4Zmw4TGNVZWFLcjNDNkdvUDhabjFDNFdwZE5wS0lveU42NnNPaHBJbnBleDRia0dzazhubmttd1RDN2htYWJDNC9HQVpkbVdXR20zbzJaMjh4eWwvamVuS3FaQ0VVTXQ0YjN0Ty9qd2k0Y1RMVG03S2hUTE1qN1lmZER6K0hvZ2lEZjZsTlJ4N2hlRGJqOXh4cTVqbEtxcXBoTVdUZE1zenltampYcXRVY2NYbFJJQ0hoWnZiV3hoSnhiSER6NS9nRnhsOE15c2RuWWJaV2p1enQvcG9aVERmNUg0YUs3Yml0dGhmSjdkN2lFRG1xYkJzcXlwZzRna1NRaUNBTC9mYjN2ZHVsMGtXQmNKdDRzQ1M1TE5JSE1iUVZ1dDZ5aHBOWnpwTlpSMURYVzhjUHhURk5VeGtSQUVBWUlnWUpta0VHZXZPZjIxZStEZExIYWlyK0wrVVdmNTJuR2gvM2pCT3N5ajZCNGIyMG1sVW4xZFdCNlBweVVXaldxNURnYURWeTVvSFhCMi85QjEvV3JZL2k1UUZBVTh6eHUvZXdVdnV1TzJCSGU3YzIrY1RMTU52T0h1Nk5kOVRSQUVlTDNlc1lWcnQyTms4Smp4c3J1SkFDQ1JTTEREQ0RlbFVxbmxHbk02dnpaYXJROVNkdXVFN25Nc0VvbWdXcTFhbmsrR2lIa2hZZ3dzRnRFMGpYQTRiUGw4cFZKQktwVWFtNE9LNDdpV00ydmU4UHY5cHVLZjRZUWRWdFJpR0tiai90Zm15dXA1YmFWUzZibXZkSGQ0WGpBZTdFVDM3bnpNY1dEVnhNTkp2dTQ4WTJRVS9hNHN5NGZ0VDdSZjVLcXFXbWJEdE5mMHFxcTZ1Sms1eE9meklScU5kanhXTEJaeGNIQ0FhclU2bzZQcXBOYW9XNGFpVGhxdWJlSFhubmVoNjdyamMyelVzZ0hEVldRR1F5M2htOXM3V1BPdWpQUXpyanJGc296djMvL1V0TU9aVWNablIzZWd0VjNBTU8xeURUdzVzU29qdUdqZjJ2RllUbFh3UmFXRWJGM0ZqOS9heG5XaC85KytYOUEvUlZFOTUybXhXRVF5bVhUMkM4d0p4bVR6d1lNSE9EbzY2cGwwc2l3TFVSUk55OHd1OGd1d3RiV0ZXQ3htdWpoZkppa0VhUTllOTNpeDRmRWk0dVp3blhhREk1ZjZ1aDVwRjRucnRCc3hsc2MydDRJd3Mrd29CeWdyblNJcm5mWjBDWFBLemZBTmNFeG4rYXFxYTMxRHNwMEVXaHZZWlJVNUdTY1poc0hObXplSHpoVGlPTzVLZE9Pem1qRDJ5d1dSWmRtWnRmRHlzQ3UzeldvNWpoUFJuQ01DNk16SW1YUU8xU3lDbS9QNXZLTkpmU1FTbVVqNHNaMjRPNGxTcU12R0tBczdSVkVjZDBRek1FcVh0N2UzeDVaUGxjL25lNDRoRm92WmpqV0tvaUNSU0VEVHRKWlk1UFQ4aThmamRtM0FHL3Y3KzJNNXQwUlJ4UGIyTmpZM04rZFNKQUxNNTFza1NTSWVqNC9WK1NRSUFuSHo1azFzYlczMW5EZG01L0NvK1ZNTHpPbWVTMnFhaHNQRHc0WlJ4ZU1VanVNUURBWVJEQVp0MTVWV2YwZGQxOUZvTk41eS9BUG5ES3JSYUp3RE9CRUU0VXNBdDR3bkJFSG9tQlNVeTJYVG01Z2dDQjNLbkpPZHpBVk56SnhGUnJoaU9CeWVDM2ZXZVYxSDZ2d01NWGE2QXovdEloR2dXZVJVQlQ2ZnIrTWNheStyc0dNYzNRUnlxZ0l2dFdUcHFucHYrdzYrZi85VG5KNHRKbkhkWktWVGZMRDdZR2lSQ09nTnRMYURIc0w1WmhVT2VsRlRiL3JjZVYzSE9YVGNpTDhLS3BPeDNmV21hYnJ2ZVNpS0lycmJjUnJITmMvT29rcWwwbHBZV1Mzb1NKS0UzKzl2dVl5Nm53c0dneEJGMGZLenZrWXV3WGNoQ0hYRDFBbTQ2d1RvaHJWeldDVWFxQkVOVk1nWExxTFZKUWFyU3d5U2lvem51bmxiK0xKYXhVZTd1MUIxRFRSSjRWczdkd2M2RjRHbW1IeHZmUk1mUE94MDA1MUl6eEFVVm0yL2Q1bWtlc3ZGVEJBRXdiSjErQ0QzNGtna0FrRVFIR2R6c0N5TFNDUXl0d3VDUWJGYVBQYjcvU3FWaWdUZ1Q4ZC9STE9oMFdqOEFjL3pmdy9BUFFEZ2VUNVlMcGRiRjBteFdHeUpnb0lnZERqS3J3ckpaTEp2Q1JyRE1BZ0dnejNqOXFoWVhhK1R6a1Y2V1RERUlydmNFak1ZaGtFc0ZtdGwzUTJTazJSR0twWEM1dWFMTHE5R2R5NDdwNUJ4N0VhV1ZudnBzQlhCWU5CMC9sR3RWcEZLcFZBcWxVWXF1ekh1NzZJb3prMkpXVC9hY3l5Tm9HTzdPVnExV3JWMTNaSWsyUklQakdvY3czRnBkRXNNQm9PdDk2aFdxejNuSHMvekN5RjRDdVR6K1lIT2VUT25HYy96T0RndzczUnNOYVpVS3BXK1hRN25tZGFkVUZHVW8vWW51cnRhV0MzT0tZcnFxUHMwUXI2dXlnUnkwdmg4UGxBVWhXUXkyYnBCNkxxT282TWpTSkkwRjIyeG4rczFwTTdMaUxqSDErbkVDUUdhUlVsVGNWN1hPODZ4YVRtS2dLYXJxRkNySWtDYnY1ZlJSZWo5VHovcWFmaytEdFljdUZibWtheDBpdTgvK0t6bjhVRkVJb1AyUUdzN2FCYzUwQzZ2TE11VzVWRk84OEpDb1JCVVZiVVVuSnlNZzBhSWN2Y0VjUjdGSWxtV0lVbFMzNG15SVFJWmJhamJvV202TmJtMEU0aENqQWQwbS9PSHFSTllyaFBnZFJlVzY0T0xnbWV1T2lTeWpoTFZkRWpHV0I1bHZZYlUrVmxQZTNpQ0pISERkeDJIdVN4VVhjUDlaQUxmM040WitHZEdmWDdjRUs5M2xLaWVTUDNQWlk1Y2NpUVVHZTJkUC8vODg1Ni9oOUVCclgzRG9WS3B0QllqTkUxM2RKYlVkZDFSS1pFb2luTlRJajB1cklTaTlzWVRHeHNiWnZtTmFiUTVicTRDaXFKOGpndWh5Tk5jUVMwYnp4bE9OVUVRV25PL1VjVVNxNFh4cklMRW5aYWdCUUlCRkl2RnNaWGZMY3JPcG9PdTZ6ZzRPRUEwR2gxNE01WmhHRVFpRVVRaUVWUXFsWmFBVjZsVUJscm9sOHRscEZLcGpuUE1TVm1aSVJiZHZIa1RIbzhIdDIvZlJxRlFhRWlTUkhSdkZoZ2xZTjNrY3JsR05wc2xSaEVlTHpwYkdxSFBsNHBnTU5qNnUvVUwrTlkwRFFjSEI3WnpIVjNYVzMvNzduT2dYVVF5eG9tckpxelBNOTMza0F2Qnh0RTU2L1Y2RzdGWWpCaGtubVBsS0pKblhIdEdFTVRIeHI5WmxsMG5TWklpU1pMMmVEeW00b0t1Ni9WS3BYS21LTXBUVGRQV1c1K0FxcW9uN1lHdkZFVjExR0hiM2FpNjZ6NlR5U1J1Mzc0OWhsL3Y1VUFRQk5QZGdWS3BoSEs1REwvZkQ3L2ZQOU9KK1ROTkJXWWdGb1VZRC9hbFFvY2QzQ2cvNnhZdXV5Zng0M0FVQVUxWDBRcEZkeXhhMnpIRW9nOTI3NC9kV2VURWZUQnZQRXdmNFpORXIrTCt6dVl0MitCcUt6aTN1OWwzQjgxQWE3dlBvN3RVelE0N045RWd4R0l4YUpwbTZ1b29Gb3Q5TTNmc0FsS05nTVI1Q0FrK1BEeDBsTXNoaWlKb21rWStuKzhZejJpYVJqQVl0SjJjdTBBZ3huSXRCNUZISjdDcWtWaXVFeUNkM2Q4dFdhNDNCYWExV2dPblZCMFNxWU1qbDdDMUxDQ25Lc2lwblF1KzF5STNXb0hVVHNRZEsrNnRiM1lLUlE1RXorVUJtd2dFZzhFT1o2ckJSWHZsMXJuVGZwOVdWZFZ4OWdaTjA2MmRVcnNGOURKSjliaS8xTG9PdFZGM0pIek5DaWVMUExNTnNFcWw4aGpObk1jcmc2N3JwMGFPeHNVOTlnekFDUUFCZ0x2OTNoc0lCSHF1ODBHeEVsb29pbXAxUnB3MitYd2VvaWoyblVORUloSEwzZVZCc2R0VVdBaEY0MmZVelZpUHg5Tnpmc2l5M09xR3BhcXFyWWlZeitmQjgzekhQTmFKVTBoUkZDU1R5ZFlHa3MvbkkzdytuNUVQMkNpWHkwUzFXa1U4M3BuL3FHa2Frc25rMEM0aW96T21JQWpHNzMzcFJDTGdSYWgxcFZLeERmaldOQTM3Ky9zampXM3RJbEw3WTkxWWRkMWNNRHhtZVVHNnJqczZaeTlFNUlIUGI2dHhaQm9kejlyRklJN2pYbWNZeGtQVE5NbnpQTEd4c2RGcTJPSVFFc0MxUXFGd2pTQ0lqOXMveFROWmx2TU13N1FLendWQmFDME1kRjN2MlowME1ITVY1WEs1dWVyaU5lOVlCWXNhTy9MRllySHZJbXZTekVJczRzZ2wwMkRjUXFIUXQ2eGluRHVTcWVxWmJiZ3Q3MmJ4M3ZZT3ZuLy9VMHRuMGVveUI4N05YdWtBN0k4UEgySHZ5WEhIWXpSSjRkNzY1bEFpRWRBVmFHMlNsZVpxQUx6dUF0MGc0Q084K0Y5TjNxTjdFcTVwbXFsUVJKTGtVTmRZTEJiRDd1NnU2U1FnazhsZ2ZYM2Q5dnNGUWVqcGhtalFiam1maFZoazdLcjEyemszY29pNnk4eWNDRVJBMDBVVWNTL0QzWERCbzdsd1hTTnR5OHFHaFFTQjZ4cUpWYzJGcDBzNlRxazZBalNMYStRU0VvcmNDcnVtYWFibFpqT3loWVlSYlhrM2kzdnhqUTd4dEZpV2JVdlpCc2twQW5vYlN4am91bzUwT3QxYVZMVHZwanJoWXVlNHI3Z1hZankySmJvR2FsMUhXZGRRcUozanZENGZwVFNWU21Vb01lS2lZMTVtQW9jMGMyUlpyaHE3alY2dmQ3VlVLdjBRd0IwQWE4WmN4SmgweG1LeGtjVVNzNEJYb0xrNG5VUm90Qk9TeVdUZk1aZm5lWWlpYUxucE1BaFc4NWxoejg5NWdPTTRlRHdla0NUWituODdScXZ4ZmtpU05KSGc5RktwaEZLcEJGRVVPODdwWWVGNXZxY2JscEZUS0VsU3p6eldPTWZhejMzREtXVFhkYTFZTElKbDJVYTcwRUZSVkVzMDZzYnBQYndibXFiQjgzemZ6YTdMUnI5OE5TZE9vbUV4YzY5T0l1L3NaY2RNZU85My9qc3BSYlF6QjVuOVRFM1R4dGJ4ck5zWjVQRjRydEUwVFY0Y044R3k3RmpYQ0JmenltRDdPLzZyY3JuOEd6N2ZpOTY5WnRrd1ZoUEdibGRSTnB1MUxTMVkwSXNSTEpwTUpuc21IcXFxNHVqb0NPbDB1bSt1eHlTWmhWZ2tpbUxQRGJOVUtzRm80OXRPZXllV2NYNCtaN3FHc2w2elhjRHhiaGJmMnJscktSWmQ1UnlqcWxZejdRTEhNVzY4dDcwemNMNUxPMVl1SWNOdGNxMmpETW5aRGRldTA5a3dkSXZsN1pSS0pjdUZVRHMrbnc4TXd5Q1JTUFJNRG8zc01xUHp5VFF4T2pMYUlZb2lORTNyS0VOeEtoQUJRSkQySUVTNWNiMUdRdENuTTJraVFXQ3RSbUZWYXlCRmF3QkpZV3ZaaTRRaU4zT282aHB1aG0rMEhFREhoYWREdS90dWhhTTRQTW0weG9EVFBrSVI0RHlueUNBU2lWaTYwb3hGa05NV3l6Uk50M0tMN0FqUXJHVlpydW43dWtpc3VraXNMakU0clZXUlU1V2VzcjlwNDNTUjN6MlpMemRYZlJLdW1LT28wV2o4RHMvelB4VUlCTzRCZ0NBSXZsS3A5QXJhZnM5a010bktXT0Y1ZnVRdVlMSXNtNDVyUE0vUFRDaFNGQVhGWXJIdmhtYzRIQjQ1UTRobFdVdVJZdDdkUkVaNVRYcytpOVBvQ2FldkM0VkNxRlFxU0NhVEV4R01pc1VpaXNYaTJBUWpnL1pXNnNaNXBHa2F5dVV5Q29WQ0s2VGFyT09XMFhXdFdDeWFscWFuMDJtQ0pNbSs1Vi9EaUVTaUtJTGp1RXRaV3VZRXU3WEJzS0xhS0Z3bEVXNWU2STdQQWV6RDhEbU82d2wrcjFhcmtHVzVZdzZyNjdwcCtacFYyZGtvNTVFaERORTBIUlJGTVJ5TlJna3pKK01rb1duYTI3SDlKMG5TZnZlTDJpZUtwVkxKc2lPWHNWQXlNSFl5Rnd4T0xCWkRQQjQzVlptTnovWEJnd2M0UER5Y3lTVGltYVlpZFQ0ZDBhT3MxOEF3akdsN1Q3TkZ1ZkdabVEwU281SlV5bjA3d0JsaTBlcXkrYysvaW1LUjBkbXNXeVJhODY0TUZRTGNEZDAyY0pjdk9sQUZWQkl4ZGFsTEpMSm1xV3RjdDNJVGpkTEp4Ky8zVys0TU9TM3g0WGtlaGsyMEcxVlZjWEJ3TU5WV201VktwZTlDbW1WWlNKTFVXdEFabitQVzFwWWprZWhWbGtlVVpCRlZsNlltRXJWRE53akVxaFI0blFCSnVCQm5lYmhkSkpTNmpxalAzK3BzZU5Lblcxay8zbW5MNXJxZjdCVjB1cmxHRHRZSlJSQUV5M0d2dll1ZXgrUEI5dlkydkY1dnordU15ZEx0MjdkdFJTSVhDRVRkM0VBaVVUZXJTd3cyUE5jR0xyTWJOMDd2b2QyZmh5ekxld0IrRjFjc293Z0F5dVh5dnpNNjNRcUMwRFBJbHN2bGpzOHRGb3VOdEN0dU5abWVkV09VZERyZHR3dHQ5OXgzR093NmFzMlRVRVNTSkRpT2d5aUtpTWZqMk5qWXdNN09EalkzTnhHSlJCQUlCQ2FXVDJxNDdpZVpYVlVzRnJHN3U0dE1KbVBaNlhsVUtJcUNJQWhZWDEvSDdkdTNzYkd4WWZ2YVFDQ0FuWjBkaE1QaG5ubkIwZEVSMFc4KzREUkhpK000UktQUnhwdHZ2b2xZTERaVTZjMWxaeG9pMFNLMGVqcDBqME5XMXdsSmtnaUh3OWpjM093UWlTUkp3a1ZId0k0ZzZrcWxZbnBkMk9RVE5aeDBQQ01JNG1PQ0lENW1HT2JZNS9QVklwRklmV05qNDk2YmI3NTU3L2J0MjVGUUtFVDRmTDZwaTRxNnJtdnRFNEJ6WGRlZlNKTFVjUlozM3dEdEZnM2RDNlZpc1RqVlJjMVZRaEFFeThtOFFhbFVRaUtSd1AzNzk1RktwYVk2b1hpbXFVZ296L3NLSjZPaVhDakFQcDhQMFdpMDQ3bDhQbys5dmIyT2M4d1lIQ1lSQUY1SG95Zkh4QXlqREsyN05mWlY1TXVUakduWHQ1M29xL2o1bmJ2ZzNhTlA2dHBkSEZXbGlrMWxDZUtBZ3NKN3J0V1dXR1FWWXQyZTVUSU1kZ3VHUWE1Tmo4ZURyYTB0MHdteHJ1dElKQklvRkFyREh1YllVUlNsdFZQajlYcXh0YldGU0NUUzk3TjB1MGk4em5yeHVzWWlwaTVOcE16TUtTUUlSTlFsZURWWFN5elNHODM1d2ZwRnllVHBXUm55K2ZBVFNKSGpzUk45RlFCUXJwN2pZYnEzekxBZEx6VlkrUmtBeXpiMTVYSVp1Vnl1OVRWRlVWaGZYOGZHeGdZNGpnUExzb2pINDlqYzNPeTdPRjhtS1d4NHJzRkxqZDdTdC9sWlg0TnZhVFlORzV4MkwvSjZ2VDMzRkZtV1AyODBHaWNYbldPdkhNWVlTVkVVUkZHTUF1ajRBSkxKWkdzeGJlU3NEWXZWK01nd3pNeENyUTNhUlZZci9INy9TQzJ1cmE2NWFyVTZWV2RETzRZbzVQVjZFUTZIc2JXMTFSS0ZZckVZQkVHWWV0TWFvenZZcE1sbXM5amYzKzhZTXllRjRUcnFSeUFRd08zYnR4R1B4enZPdFlPREE4c3dmc0RlclVMVE5NTGhjS3V0L2Nzb0Robk13a25VemlRMnQxOVdTSkxzdWFiTTNFUmVyN2V4dmIzZDRScXRWcXQ0OU9oUnk5bFAwM1RITldFMVg3QWFDMVZWdGJReHRRdEQwV2owM3AwN2QrN2R2bjA3RW92RnFFQWdRTXhEVXpCRlVRN2JaL0lTZ04rVlpmbm5CRUc0Wnp6bzhYakFjVnhyMHBEUDV5MkRsU21LNm1rWnVnaTJIaDVqTWw4b0ZHemIwT3E2am53KzMzSXRlTDNlVnEzMEpOWEhNMTNEUWVVNTRpeHZHZlE4S3MrMEY3dDVQcCt2MVpIRXdNaHY4ZnY5Q0FhRDRIa2VzaXhQYk5BdDFLcTRSdEY5TTBSNE40dHYzMzNiVkVTNUNsaVZtZzNiU3R3cFN3M1loaG9yV20rNzg1RG5HbGFJSld3VEhIN1lrTWNXWW0yR1ZmbVpWUUM3RlJSRllXTmpBK2wwdXVkNGphNkl1cTVQUEFmT3lKWG9WMVpoN01vTWt1OTBoN3lHR3lvOWNrajFPRm1ya1RoM05WQjFHV0pSSGErdGhYQjRrbkVVUXQyUE4ySnhuSlpsSEJlZjRwUEVBZGFFVmN0cmhYYVJXQ0pjQTVWbTJXV21tSldEOHp6ZjBhYTVIMEhhZyt2MCtBWHdFTk5zckZXbzJiczN4bzNUaFdEM2RYYXhnTGRYK2k0M3U1SWtwUVJCaUFDQUtJcDhzVmpzMlBVelJHdmovQkVFQWNGZ2NLaFFWbDNYTGJ2bDhqdy9zOFViOE1JOVpUZDJVeFJsV2ZyWkQ3dVEwV2x1L2huQzBEVG1qcU13clM3QXFxcTI3cit4V0d4dVBnOUJFQ0FJQW1SWlJqS1piRG1OcmJKVnpNNGhyOWM3VWZmWFpXUGFJcEZaYk1hQzhXRzJ1ZEF1cHJhVjFuZE1QaVZKNnVoQURuUUtRQmQ1UTZZLzA4cFJXNmxVbmh2L05rckp2Rjd2ai9FOHoyeHNiTXhFRERJMklJelBSQlJGMDNIVmNOTzJ6dFNMWGJFVGhtRitFSWxFN3JXL1dCVEZsbEJraEN0YmRUN3A3b0tocW1wUEc4Z0ZnK0h6K1NBSVFrc002cmRvTXdMNmdCZjE0enpQdHlZazR6d3hhNDA2RGlyUEVXSThXQjN6cnZCcDVReFBTeEtBVHR0Z3UzQnBrTS9uSVVrU1lySFlRQXVmWWNoVUs0aXpmTi9nVnFNYm1wMVlSSk1VM25uOUZrN0xNdTRmUFo3RTRZNmRySFNLRDNZZlFPM0tUMWtQQkhGdmZSUE1FRTZJZmhpaHdvOWwrL0tmeklzeHVZWDdvclJsMDdXTVBmVzU2U0o2d0k0QUFJQVZpc2JLRXRNaEd1cU5PZ3FyUGp3NTdYWDhEQ0lVQVoyNzlHYkhuRTZuSWNzeVlySFlSQ2NkUmthWUZWNnZkNkJqRUVEaExaY1hLL1h4bnllalFxSlpocFprTkZSZEw2N3Y5N2J2WUM5OWJCcW1QaWp2dkg2ck5TWjgrTVV1dm5QMzY1YXY5VkpMQTRzblZwa3AzY0hXZzdCTVVvZ3d5eFBiRUFDYVlwSGVhRFJ6OEthQWxiUHdBaFZBR2NBNXgzRWN6L01kblF3a1Njb0NzTjdHditRMEdvMC9vQ2pxSndIOGJRREcvS0d1cW1xcit4bnd3cWxtQ0dtaFVBaXFxZzRWN2l4Smt1bmN4TWkvbkNXcFZLcnYyRzJVZmc1YVdtTDN2dU1JeWJhQ3B1bFd0aERQOHhoM0VPb2tHZVp6SGhZakg1RGpPRVFpa2JrUmpIaWV4KzNidDVITDVaQk9wN0cvdjQ5Z01OaXhrWi9MNVRxdUhjTTVPaTJ4N2JJd3Fld3JLeFJGTWUzU3ZDaExteHpHR3RMdjl6ZUN3V0JIMjN0TjA1QklKRXcvLzNZQnlPNGNzUm9YRkVVNUpBamlZNi9YKzJQUmFOUTlhdVhDSUJoZEdJMS90N3YvMitGNTNuUk1NSFNjbnFOVlZmVklsdVZ6bnVkYjI0YmRIVlVNVjVIVllOTzlzMkxXQm5MQllGQVVoVkFvMUZxMEZZdEZSK0dKUm50R3N3dUFaZG5XUldEV2tRSkFxMXRGUDByeWM2eFFERmFXZXUzWHAyVzVZNEhWL1RYZ3JHVzBBVTNUcHJ2bXhzN0tvQXZYUVRtdjYxRHFPaml5Zno2T0lSYVp1VzhBUU5VMWZQRHd3U1FPYyt4VXRSbytPWHpVYWhsdU1HcFhzMzR3ZFFMdU1aVWxjU1h6S3BGQnhpYTNpMFNFV1FacmtxMUNFaTVzQmw4eEZZcUdMY09OeFdMZ09LNmpJNXFSQXpTTlVIdERwRGFEWmRtK0hkMDYzZ3NVM25PdGd1NGpzczRTUXl6NjBsMUQvZUswWTZnbHZCRWJUOGtEUXkzaG5kZTNXMkxSRDVNSnkvZGVKZ2NYaXV5QzFZM0ExdTVKcXR0RmdpTXBMSk5MSUluT2E0MTFrWDFGOFhFUmNYUFFGUm5QOVY1bjRManA0eVlxQXpnRVFJUkNvVHZkVDhxeS9POEIvSk1KSGRwY29PdjZhYnU0SFF3R1EwY3ZCcUUxNDNYWmJCYUNJTFRtZytGd0dKVktaZUNGbDlHcXZCdWovR3lXcmlKVlZTMjcvcllUQ29VRzdnQm50WEYzMFZWdm9QZXl3K2hnMVM0T3pZcCs5OEorR3pjTXcweHRVVTNUZEN1a1c1SWswN2JiczhSd0JoMGNIQ0NiemRvNitvYlpFTE9qdTJ0ZCs5L1YrRGRKa2dQTkVhWk5KcE9aV1dCK080dk9aK1BEYk0ycTZ6cmk4YmdqRjVIVmU5bVZlSnFWSGxlclZVU2owWHVURkllTXJwanRndEM0eGtZalg4bnN5UDlWTHBmN0RzL3ozMngvTUJnTWRpeFUycnRlZEdPMnM1SklKTEMxdFRVM2F2eGxoV0VZUkNLUjFpNmJVOEhJalBaSnlHVlNzbFZWdGUwMFVpcVZzTCsvajFnc05wSEpVSmhaSHFoOU5VTXQ0WnZiTzZhdDQvdXhKcXdNZW5nVDRXSDZDUGVUajZmcUlnS2FJbEdzU3NGSGU1REVjR0hDcTh5TE1lZXdjR0w2R3FkaHBHNFgyZGRORnZXWnY1ZXFxa05iam8wUXUwUWlBWjduRVE2SHB6WlpOZHlJWnBiYlFRUzJyeEVzM25KWlo2NDU1Y2xaQ1gvMDFZOU0zV1B0ck5Bc1FwNXIrSGIwWnNjNTRBUkRMSHJzbmt5Z3FjanhMYmZoL2FQSHVPSHptNWFnZVNrYUxoQ29vMkh5THRhRVFpRVVpMFhUdjFrcWxXcUd3aTdSQ05Dc283YjIweVRpWHNiK1dXbmczM2tRWkZudXR6ZzRCMEI0dlY2UzUvbWVHV0M1WFA3VFJxTWhUZXI0NW9UZFhDNzNpUkZGSUFpQ0s1dk5ObFJWVFFPNGpvc1drMFlKMnMyYk53RzhLSnNkdEpURGFDTnVOa2YwKy8wZDg4OVprTTFtK3dwRlBNOFA1SFloU2RKeURCMjE3S3k5bEd3ZU9oRG5jam5URnZGMjNMbHp4L1M0UjhtRE1xTzljeHRKa3VCNTN2RW02VHhnTkNqWTNkM3R1eDR3RTNNTVZGWHRDVy9YZFgxa3dYSlFOL1cwMERSdHFGTFpTVER1Yy9wbHhreDAyOWpZNk9sb2xrcWxHcVZTeVhJWHV2dDlWRlUxN1hnR21KZkVPczBmYzBKN3VWaWxVbW1vcWtwTWV2T2tVcWxVQVJOSEVRQ1VTcVY5VGRPKzJmNmgrbncrNVBQNTFvRFJiVG51SmhhTFlYZDN0K014UXl5YTlRM3JLbUFJUnBGSUJJVkNvZU52YzlVeGRuVEM0YkRsNUZGVlZTUVNDUVNEd2JIbXVJU1o1YUZMN041YTN3VG5kdU9UaFBNZFI2dlc4Tk1pSzUzaWs4TkhQYVZ6YTk0VjdNUmVIYnBkdUJNTWtZZ0VnUlhtUmMxeDRua1I4V3ZXWFdLNk1iNzN5Vm5KdEhUTkxLaldqS1dMa0dNbmkycWpWSzRiTTh1eFV6d2V6OUI1YjJhNzA0T1VHb2lpYURxaGN1cVM4b1BHRzhUbzUvSVBUcjdDKzhkN2psNzdURlh3VEZYd1VNb2g1TG1HbjMzbE5XeXZyUFgveGd2Y0RSZXUxMGc4WFJxKzdiVWRobGowd2U1OXFDYlpXZ1plYW1tb2NpeXJ6QlJGVWZBc2w4ZVBiMjZiZk5mc0lRa1hJdTVsSEUyd3MyWW1rK24zRWcxQU5SUUt2ZFA5eE1VTzN1aUJWWE5PbzlINEE0SWd0bVZadnNmenZPRlV1NUZPcDg4QjFIRWhGQUhOY3lxVHliVEMxSWNWaS9MNXZHbHBwQ0FJU0tmVEk3V2dINVZKdUlyc3NoUUhGWXBtblRGazdHeTNpMzFHNllOVnlVTS9yTzZYdy94dWhpZ1hEQWF2Wk9rVlJWSGdPTTVXQUcrUHBaZ211Vnh1TG9XaVFVdGFEU2QzdHpOTGx1V1JCYWVyZUU3T0NqUFJyWDJ1MjVidlpWdXEwSjExSk11eTZldkgzWERCbUs5TGt0U29WQ3FFcXFyZG0zNWpEZmEwY3JNcGl2SVVNQmVLemdGSStYeitxMUFvOUxYMkp5S1JTTWNOc050eTNJN1Iwcnc5MkxvOWRHMGhGbzBQbjg4SG44L1hhbVh0dEpQTFpjVndmL2g4UHVpNkRvWmhUQmRFUmlhSG9pZ2pkV1F4R0VVa01yZ1Zqb0p6cy9qd2k0Yzk3cHh1Ym9qWEorYlU2VWV4TE9OK010RlRMc2N4YnV6RTRoTXJNek53TmRBU2ljYkZoN21rNmVOT2hjU1ltM1BzdkZnVHpJV2lTcVV5VmN1L2tWRmdOUjVFbzFGSEFkUldRbEc1WEVhMVdyV2Q1Q3lEeERzdVlTemxaajg0K1dxbzc4dFVudVAzdi93TXIvS3IrT3V2M25Ic01McXVrWGhPMWxGMVRjYmRJbkk4ZnUzdGQyMWZjNDJpaHhLSzdESlRqayt5eUFaQ0V4VjZSOEZMMFFNSGVUdWxqNnZoSE0zR0hyTGY3eGZORnFTeUxQLy94bjVRODh0dUtwWDZOemR2M3Z3WkFCQkZrY3JuOHk1VlZZc0FBbWlic0dheldkQTAzUnBQaGhHTEpFa3lkVjBhTGNVbm1kbmpCR1BPYXpkL0hjUlZaSGN2Y1BMOWhqZzByV0JpWXdGVHJWWmJZLyt3SXBBVHJBTE9CMW1ZY1J6WFdvOWM1blZIb1ZDQXJ1dTI3ckI1clF4d01rK1lOcFZLeFpHNFE1SWtSRkcwalZzeG11aU04dmt2SEVYancrcnZkT0VnYStUemVVY0xDNFpoT2h4RVZ2ZXhjWlFOYXByV1dyKzNqYWtUNy9SaWxOV2FIWStxcWxuQVhDaVNBUHh1c1Zqa1E2SFEvNm45aWU0Ym9HRTV0aEorQW9FQWlzVml4NGRyZEtsYWlFWGp4K1B4d09QeElCS0pvRktwUUpibGdhMis4NDZSVDJSZ0xQS2owYWlsdThpWVhJNGlGcTFROU5qQ3VxTStQOWJlWHNFSHV3OXNzNWwyeHBTSk1nanl1WUpQRGg5WkNrUTNmSk1Yci9xSlJNcUErU1VyTkF0RnErSFRRcnJuT1NPM29SOEJtalhOSkxLQ2M1dFBaS2V4STY1cEdpUkpzdTJVYUhCMGROUmFoTm5CTUl6bDRpZWJ6ZHBlVzIrNXZHTVJpWjZjamI0VCtsZyt4VC9hL1FGKzdwVU52THYydGY3ZmdHWW50Q05tTWlWb1RoaTIvQXhvYnU3czcrK2JQdmZCN2dQODZ0dnZ6RXlNN29kdnlZMnNPdDY4YUUzVGtFcWw3RjRpQVhoQWttUTFHQXgrMit3RnNpei9zTkZvL0l1eEh0aWNZcmlLTXBuTVc2RlFpTC9vYkx0eGRIVDBDSUFQWFhQSTd2SEVFSXVzZ2tLN01icERtb25YZnI5LzVrS1IwWFcxWDNPVzlnWXdkbGpkZXd4M2pobUdNOGI0YnhMSXN0eHlCeG5ITW90NXBGVW1DTU13bHVYUVFQTytIZ3dHQityQ09lOFk1MTQrbjRjb2lqMmRpZ3doYVY3cE4wK1lOc2xrMHZaNVk2MWh1Q1RIaWRtRzRUeUphSmNkTTlHdFVxa1lvZVdPeFJlYXBsdXZ0Y3NuR2xha044YlhXVllFQ1lKZ1drN1hmanc5S3grait4bEJFRjhVQ29XTXorZnJ1RXE2UzhvVVJiSHRwQktMeFhCd2NOQXhnQzNFb3NsamlFYUdrR0pZZ0N1VkNsUlZ2WlJsYWpSTlc1NHp4b1RBVGl6U05HMm9VTDFyNUJJaWJtdUwrREF3MUJKK2Z1Y3V2anpKNEg0eWdYTDFSY2l5MFFsdFVpM216Y2hLcDdpZmZOd2pYSzE1VjdDK0ZwcTRnNmlka0VyQjNlZ1VGbGJvRjhKTHB2TGNzb1RvdE5vN21LOHlIbE9SQ0VDSDZHakZFdUZDZ0I3TVdzcTV6VnVJVnlZNDJTNFVDcEFrYVdCcnVaT09Qb0QxNHFkWUxGcnUxbTRRSHZpSjBYYktGSzJHSCtTK3dnOU92c0o1SHhlZUU4NTFEZThmN3lIeHZJaS8vdW9kc0gyRWt1VzZDeDZkUUlXY1hHWk9QNFl0UC9ONFBKWmRvMVJkd3dlN0QvRHpPM2ZIY1loangwc3RJVHRtWTZ5ZHUrNkNjd0NNMysrL1liTnIvOFB4SHRWODAyZzBmb2NnQ0FpQzhBODhIZzk4UHA5TGtpUmZxVlFxQTdnR29HT3dUaWFUSGEyNktZckM1dVlta3Nta0k2SEhTaWp5ZUR3ekQ3VUdtdWVRSUFpMmk0UHVCakJtMkdYZ2RKZWRHZUtRMys4ZmEwbFpWKzdGM00wTjdZNkZaVm5Mejlmb3ZLZXFhbXN6NkxJdnhJMHliME13eW1hekhRMXA1bjFEdUZnc1RsVGNISVJVS21WN2J2bjlmZ1NEd1lIV3A2SW9PbmJYMlluQTh5ejJYUmE2cjNWSmtreXJUdnJSTGpnTkdtUnRoeVJKeU9WeWMzSE5kb2Q3R3hoQjFvQkZSdEVGMzg5bXMzL0Y1L1A5SDlvZlpCZ0d3V0N3dzdKWExCWkJrcVRwTG92SDQwRXNGdXY1SXhsaTBhSlY0M1F3NnRiYmFkODFNcjRlOXIwbmpXSC90QnU0RFd1NjFjVlhLcFVjWlF5MHMzU1JsekVwWHJzUVliTFNpK3ljYVpXRFZMVWFqZ3RQZTRRcWcvVkFFSnlieFEzZjlha2NEd0I0TlJldTFYdmRKMDVMaFo2cHZUZi9rT2NhL3ZDeGVXYzVKMExSTUU0eXE3OGg2NkxHWGxMVFZtODkxUGVycW1wcDhXL0hidkZUTEJaN1N2aVdRR0NiR0UxZ2ZYSld3dTk5OFpHdFFIUkhGUEgzdDV0NU85ODdPTUMvYzVnVjhGREs0Ui90L2dCL2QrdnR2dWZYV28zRVkzSjJycUpoeTgrQVppTUtxNllISjZWbnRsM1haZ250SXVGMmtUaXZqMmZpWEsxV0haVWEwRFROK3YzK0xiUG5aRm1XWG9aOElqT1N5V1NyQkMwV2kxM2YzZDM5b2E3cjZ3QTR0TzFJNnJyZTJnaHNGelZpc1JoWWx1MklJekNqVkNwWmxxbk1RNmcxMEJURCt1WEYyWFdMQkp6bEU5RTBQYmJ1bG9iVGRCb2xZK1BDQ0ZjMk94ZDRucmZkRkxIcTl1c0U0MjlqaEZzYi94OGsxMi9jbUFrYjh5VHFPU0daVEdKcmEydW1hejVKa215dlMxRVUrem9HemZENWZCQUVBZnY3KzBQUHhWaVduUXZ4NERKalZwWmFLQlFzUTZqdGFEOVA3ZjZtVHM1blRkT1F6K2VSeitmbmF0eTFjYlcyVXUzdFJyeHpWVldUaFVLaDRPdGFXWWRDb1ZZZG5VRStud2RKa3FZMlBVRVFUTnVaSzRxQy9mMTl4T1B4bWJicWZGa3hQdk41VVBqSFFUS1o3RHZJRm90RngwS1JDOFJBdVRTak1NMnNrS3gwaXNPVERJNExUMjF6a2c1enpVWFZYdm9ZNzd4K3k3S2IxN2pnZFFLdjFQcFB3aFNiNE45dTNDU0ZUT1c1cVlEa0pNVGFCV0pnTjFFL1dCZUptajRlb1dqWW5SS3o5M0V5Qm5kM3Z6VEk1L005UWxHWWNJOWNjdmIrOFo2bFNQUlR3U0QrL3UzYitPVTJOK3ZmM056RW4yVXkrTjdCQVg3ZlFhRHNNMVZwaWtXdnY0MVhscTA3c3JrYnMzVVZqWkxaYzFFdVpMbEF2My8wR090cklmQVc1Wkt6WklWaXhsWisxcWZVd01nbU9vdkZZbmVzRm9PeUxQL2x5MUoyMXM2RnEraTdxVlJxSnhLSitDN09xZHZwZFBvaGdFMEFEQnlJUllGQW9OVzkwVzZ5TEVtU2FYYmNQSVJhQTg3RWRTc25uNEhWOTE1a1F6ak9qN05Ea3FSV0JNRmx6YTFVVmRWU0tKb1V4anpTYWo2NXNiRXgxVFdMWFNuaVphSzdRK0lzc0NzOUZrVnhwUEk0bzlSMmYzOS9xTC9YT0xKdVhuYk0zRDM5UXF1dGFCZWQ3SXdVZHBscGtpU2hVQ2pZZGxlYkZWNnYxMUpBTTRLc2dTN0xjQmNTZ04vTlpyUC9MN01uWTdGWXowbWR6V1l0TDBKak42a2JZMExob0F2SmdnV1dQSHIweUZISnpTQWQwRUtNWjZCY21ubW5xdFh3NVVrR0o5SXpySytGOE43MkhkeDg1VWJmNzFOMURSODhmSUFmZkxHTDZnQWl6U0FzMVlHSTZpd3J4YTR0K3JOcXB5QVU4bHl6REVCMklwQ3VMZzFYTmxVczI5eFV4bmhPOWNsYmNZelREanMrbjgvcVJ0eGp6UjNWVFFUMC9qMEJJTXB4K0tjLzlWUDRzMS82cFE2UnlPQWJvUkMrOTQxdjRObHYvemIrMHpmZmhMZVBMZmhjMS9CZlB2eXdid2JTcWpiYlNaeDNoQ3loUUNCZ081bjU1UERSME84OVNZYTkvcnB4WVBPV0FKeHdISGZLODd4NTNTZ0FXWmIvZkN3SGRBbHBOQnEvazgvbi82a3hWZ1FDQVlyak9CSEFZd0JuUUdlSWxqRzNLeFFLSGUvRDh6eTJ0N2R0SFRWV0FvdVRQTFZwa2N2bGJKOW5HTWIybXJNcklkdloyUmxhSkpKbEdhbFVDcDk5OWhrU2lZU1Rjc3U1eG1xQlpyaDhaa0cvdi8yNHNTdDd1V3dZSFJKblFhRlFzTHdXV0pZMUZZazBUZXNadyt4Z0dBWmJXMXUyMTc3VjMzUGFuUXFCcHJEQ2NaenRlSHlaTVBzTWgzWGV0VzhZMlFWWm0yMHNKWlBKaGpFR3o2TklCQUE4ejFzZWx4RmtEZGdJUlkxRzQ3elJhSnlvcXZwRm9WRG91YW85SGcvQzRYRFA5K1h6ZWN1ZHU0Mk5EY3Rhdm13Mmk3MjlQVlNyVmRQblh4WXFsY3JBYlZGZlpqUk53K0hob1NPN1pqUWFkVHpKWENhcHNZVlh6d3NNdFlUWDFrSjRJeFpIVUZoRlVGaTFiY3ZkeldFdWkvYy8vY2hXQkJtR3BUb1FkU2dTOWFNN28raGMxL0JRNnAzVUdaa1AvVmloaGpzSFRpMCtvOVV4NVU1VnExWHM3ZTBOdEFBd0FqN05NRm8vTzhIb090aE4rK0p1R1NTV2lkRW04VS9PU3FaT3NHK0VRdmlibTV0OXYxOWdHUHpETjk5RThtLzhEZnoyeGtiZjE3OS92R2Y3L0xXNkN4TnFmdWFJWWM5RkF6czcvWEh4S1k0S2c3VUtuZ1lrNGNJMWNyU3hvVktwMkpVN3FRQk9BYVFCWkdPeG1HMEx1bks1L0pjakhjemxaemVWU3YwTFRXdTYvT0x4ZUpna3lYTUFLUUJIQURvc2I3cXU0K2pvQ0tsVUNzYjNBQzl5aTh6bWtJQzU4R3hnTmY1TW0xS3AxUEU3bVdGWDJtemxTQm1tdEtsYXJTS1h5K0grL2ZzNE9EZ1l1TzMzUEdPM2t6K3J4VzJwVkpxcWVIUFpTc3o2a2MxbWg0NjZHUFhubW1Ia24zWlRLQlN3dTd1TG82T2pnY1dpalkwTlM3Rm9YdHhob2lqaTl1M2IyTnpjeE9ibXB1bG5jTm5vSGxlSHZVN2IvM2JWYXRYeWIyYjJONzdvWURhWDRsQTdWc0prOTdYcHBDN2crK2wwK3Y5cmRrUDArWHltTisxaXNXZ3ErbEFVaFhnOGJya0xvQ2dLZG5kM2tjbGsrdDZBcnlvSEJ3ZFhhdmRna21pYVpxaTF0cThqU1JJYkd4c0RsNXk5RE54YjM4U2FkOFh4Njh2VmM3ei8yVWY0WVhMMGNpZURVSTBDM1hBK3B0cmwxWFM3amF6Y1IwNHlINVlJMTlEdW4vSzUrY1NPcGlnb1F3WXlGd29GUEhyMENIdDdlOWpkM1hVOGVmUjZ2WWpINDdoOSt6WkNvWkRsNHNWSmZndlEvT3pNeG5DanRUVUF2RUtNTHJLYUNYd0FjSC9BemtjQ3crQjczL2dHL3BkZi9FVmJkOUZqK2JTdnE0alhKMStHYWdWTFVuQzdoaGZmZUo2SDEydGRYamV2cnFLVkVRUjc0eDVoUXhuQUlZQktNQmpjdEN0RmxXVlpHdnBBcmdpTlJ1TVBWRlZOSkJLSnZ3QmFwUlkvZmlFV1pRRjhpcWJ3MWtFK244ZkJ3VUhQQkRRUUNGZ0tQMWJCMXg2UFoyNTJ2L3VGYzF1SlFZTzBkN2REa2lRY0hoNWlkM2QzTGtyeUpvSGRmVzRXRGd5RGNibDVuWEFWMXdTSlJHS3E2N3hjTG1lNXNSYUx4VHJtZzdJczQvUFBQOGZSMFZIcm1ocFVMT3EzM2pWam11ZXpXWmtkei9NREJ6UFBHOTFqNjdEWFR2dmZyYzhZMUxOOWVGbHlwcXp1VCsxQjFvQXpvZWhjMS9VbjJXeld0TWR1SkJJeG5Yd2ErVVBkN2hpUHgyUHJMQUthQzViZDNWM2tjcm1YUWpEU05BMlpUQVo3ZTN0WDhrWS9DWXdGUUw4TDB0Z3BHS1NlUE9KZW5rb3UwVHhnZEYvNzFiZmV3YmZ1dkltYnI5ekE2bkwvU2ZqOW84ZjRIejc2d2NqdW9wQktZdGtrdk5vT0svRkgwV3FPdTJJNTJaVjJVdXJqYWdBZW5ZQkg3eFM2Vkl0eGkzT3pLQThvRk9WeXVkYWtwVnd1T3hhSS9INC90cmUzc2I2KzN1R2VzaEtLVkZWMU5QbTFLdjh3V2xzRHdBcEdkNGlabFowQndJTWhXMlIvSXhUQy9WLzVGZHl4MmVXM0VxY01oQmtLUmNCNFhFVzBoZmhacnA3ank1UDVLd0gzVWpSY2crZFFBZ0RTNmJTVExtY25ORTFYL0g3L3EzWXZsQ1RwZzVjeG42aWJScVB4TytWeStjOVNxVlFCYU03cDR2SDRHMmk2aVE3UmRHZWRvdW5XYW1FME1ObmIyME1tazJuOVp5VzIySWt3VHBvUVRJTit6aDJQeDJNNjF4MmxaTW9vaGRuYjIzTzBVWGJaMFhYZHN0SmdsdG1tNVhKNWFxNll5N0x3SEFTak5IVWFhenk3UmdiUmFMUjFIbW1haGxRcWhZT0RBOVA3eHRIUmtXWFpuTm52d1RBTTRuSG5qU0ttVlVwcGw4VTBMNDdOWWFCcHVtY0RXRkdVb1h6ZzdXT0xMTXVXNzBIVGRNL2t4TzcxODRMZFprdDdrRFhnVENpU0FQeHVQcC8vWjdJczk3WkdnbjMrVUNLUndPSGhZY2RGWkloRmRyc3F1cTRqblU1amQzY1hqeDQ5R2tqSnZTeG9tb1pjTG9mZDNWMWtzOW5XQW5DV3V5U1hnVUZFb25nOFB0RG51VXhTOEZLWFcxRWZCdDdOSWlpczRxMzFUWHpuN3RmeHEyKzlnM2MyYitHR2FOM3h6SEFYZlh6NGFLanNvdXMxRW9JKytJM1JiYkhRdGNzdWFvZGxXVWRkQ3R3dWV6ZlI5UnFKMTg2WEVGT2IvNFhVRjcrTFZla1pSUytoRG1mM2tFd21nODgvLzl6SllyY0ZTWkl0Z1NnU2lWaUdnRnJkSlBMNS9FaTdsOGJDU1NCR3oyR3kranNEd0o4Tm1YRVE0M25jLzVWZnNTeEYrL1NwZlVlbVFVWE5jVE5LVGhIUW5MamVERnZua24weTVMVThhWWI1dldWWmR0S09YUU93R292RmZxcWZ3MUNXNVplOTdLeUZrVmRVS0JSMG9EbW1SS1BScndQNEdvQmROQVVqMHh1MG9paXQ5dDdaYk5aeWM2eGRlTzdHNS9QTlJmQ3JrNUpkczNudXNBSkhvVkRBL3Y0K2pvNk9ybHc1a2gxV3YrdXMzUS9UY0JWZDVTZ0tSVkhHMG95akg4bGswblNjQ1FhRHJVb0RTWkt3dTd2YlYvek5ack9tMTd4VjdJclpmTXRxUGplTjg5a3FpOGtnRUFnZ0dvMU8vRGdtZ2RrR1pxVlNHV3FYcVgzZEtNdXk1WHVZclMvdFhqOHYyTjJEMm9Pc0FRZENrWkZWQk9EM2s4bmsvOXZzTlViU3U1WHdVeXFWc0x1NzIzRnhHVFdjL1hhR2RGMUh1VnpHMGRFUjd0Ky9qMlF5ZWVsdG1OVnFGWmxNQmc4ZVBPaXhDNU1rT1RlMjZubEUwelJIM2MxWWx1M3B1T0tFQ0xNOHl1RmRHWGczaTlmV1F2am05ZzUrNDY5OEErOXMzc0xOVjI2QVkzcHpYdmVlSE9PUFAvcHdJRGVDVjNQaCtnRGh3Q3NNaTFmNVptZTRiOTh3NzVpUmtKMDVUWnp1bUZndFRsME5JRnFsY0YwalFiWTVIUVNkQkZPM3Z6L1VTUHNoMXhnYjd0Ky9iOW1LM29wZ01JaXRyUzFMZ2FnZHMrNlVCazdLWDYwbXI0cWlvRnF0WW9VWTNWSEUyb2dEZithd1RNNks3MzNqRy9pT3lXVG9tYXJnTDU3YVQvNjczV1BUaEhhUldCNHhEUDJOV056U05hanFHZzduMEZWMGJVRHgza0hKMlRtQUV3Q3kxK3RsZUo2M3JRV3FWQ3BRRk1YVVZmMnkwbWcwZmllZFRuL1BHQ3Q4UHA4ckdvMitSWkxrNndBNE5FT3VUOUQ4cklmQ2JwRThMNjZpWWN2UG5HSTR6dS9mdjQram82TkxIVXc5S0RSTncrLzNXNHFDRE1QTVZEQlVGR1hpd2RhenlQS1pKdVZ5ZWFMaDFxbFV5blM5NFBWNlcvT2dWQ3JWdHhOak8yYnVKSklrVVN3V2tVd21lOXhGM1UxMHJLNWhKeHVZbzJERWNQVEQ1L05oYTJ0ckxzVDRRVEFiYTRkMTQ3V0xkbmFpZlBmUDFEVHRVb2o0Vm12amFyWGFFV1FOQUlQTU9EVlZWVTh5bWN6alVDalVZOUUyeEtLRGd3UFREOGtJTmN4bXM0aEVJaEFFQVJSRklSYUxRUlJGcEZLcHZoK3VydXNvRm91dEc3UFg2NFhINDRISDQ1bWJUaGgyVkt0VnlMSnNXMHNlREFhSENqTjhHZEEwemZMOGFzZHdFZzA2NkFab0Z2UUlHU0JYRlNNRUd3RGVXdDlFVmpyRlh2b1l4OFVYb3JPcWEvancwVU1jbm1UdzN2WWRNRGFMZktaT1lLMDIyT2U4eW5qd2Y5ejZ1dTFySGo3clAyRnpHbUo5alZ3eUxUOXNkbWVqNEc2WUN6NkM1a0tPTnIrMk9jWU5uU0tCcmhibnhyaFFMQllIdnFtUkpBbFJGQWNlTjR4YWRMTUppMVZyYTROQ29kQzN0VFU4ODc4ajliMXZmQVBmK05mL3VxZVU3VStmZkltZnVHNGQvTHhjZDZGQ3pxNUVlSVZpY0Raa3pwWEJ2ZlZOZlAvQlo2YlA3YVdQY1NzOFgzOC9vL3pNcVJ2UGFnZTVEUW5BQXdDbFdDejIxL3E5WDdGWWZPbEx6c3pRZGYxMGYzLy8veGFOUnY5am44OUgrbncrbDhmaitmRkVJckducWlxSjVtZDhCOERhTU85ZkxCWnRTeVRtSWJUWktFR3lFb1RNeGxBbkMxS2pYRWFTcEpjbWtvQ21hYkFzQzBFUVdtdUVmckFzTzlQU3JHdzI2eWp6Y0ZpdXNxUEl3QkJlN0Rhd2hrR1NKTk14Z2lSSnhHSXh4OVVKM1pqTm00enJ2Rmdzb2xLcFlHTmpvM1ZPRExJK0pVbHlZdGQ3T0J4MmZKNTZQQjVzYjI4N1duUE5BMlp6KzFIeWlZeS81NkJoK3BlbFROVEsyR1AyK3c0eXNwMEQrSmZaYk5iTjgvemZOV3NoUzFFVWJ0NjhpV1F5YWJuTG9xb3FFb2xFNjJZZ2lpSjRuc2ZObXpkUktCUUdDdVFybFVvZDlka2tTYmJLU21pYWJ0MjQyLy9vaytSQ2lXdjlXMUVVVkNvVnh5ZU9LSW9EdFc5LzJVZ2tFbjBITE1OSk5PaE4yd1VDdml2VzVXeFNHQjNUNUhNRmUrbGpISjVrb0Y0c1hFOUt6L0RISDMySTk3YnZJQ2lzOW53dnJ4TUlxVlNIRTJjY1BOYktqa3JQbkU3b3pBSjBYWTFtZHphNzRHMzN4WE1ucFdjOXozSEx5emg5M2h5dmRGMkhMTXVRSkdtb0hXS1NKQkVNQmtlYW9FWWlFVXZYaFNFV3hXS3hucHR2djRuclpkbnhGaGdHLytQUC9SeDIvdmsvUjZudG1KK3BDbmFmbldCN3hYeHQyODgxTm1tODFCSXlWZWVpU1RkcVhVZFFXTVhOVjI1Zzc4bHh6L1BsNmptT0NubEVmZk9WVmVDbGx2Qk02Mzl1U1pMa0pMZmxIQUFUREFadk83bCtGdmxFNWpRYWpkOEJBSXFpVmowZXo5ODJOdTYydHJadUpwUEpKNlZTU1VGVGxETmNSVzRBd3NYL0hWRW9GRXdiVVRBTUE0N2o1bUppbnN2bEJncXV0bHZBRkFxRm9UWU5MaXZ0d3RBdzgzU2U1MmY2V1JrUkc1c09PbkVPU3FWU3VUVDMwMUhKWnJPZ2FkcHgwNWwrVkNvVnl3N2NMTXUyL203RGlDQldVU3NHUm1PbWVEdytzS053VXNJbngzRURmN2FHQVNTZFRqc3A0NTRwRm1WblE3MFh4M0VOb0xsSXNST0t6UDYyRi9sRWMxMTZSdE8wcFpHaVhDNXI3VUhXd0dCQ2tkRWQ1SjhtRW9ubDdlM3R2Mk0xd1RJeWkyeGEwa0pSbEZhdHVpaUtFRVVSUHA4UFBwOFB1VndPK1h4KzRBSFNLRk16TGpJcmUrQzRPazYwTStxRjdmZjdiZHNYdit3TVVtNDJ6TUk1eEhoZW1nRHJjY0c3V2J5MXZvbWQyS3ZZU3g5akwzME1WZGVnNmhxKy8rQXozSHpsQnQ1YWZ6RjV1bDRqQnlvM2M4STVVY2NUV3NlL09Ucm8rMXBEWE9uSEV1RXl6YW1LVmZ0M1ozUFhDV1NsbnFZL0FJQ1QweUpPVGtlNzJkSWtoZGVpVGZHR3BFZ291ajYwWUNBSWdxV3JDSGd4QVdaWkZwRklCRHpQUTlPMHZvdndjWlVHeDNrUmY0b3ZUWi83czB3R2VQUE5rWDlHak9meEQ5OThFLy9uUC8vempzZC9jUEtWcFZCa2RRWXYxWUdsaS9QajNOWEFwUFFra25BNUZrM01VQnQxMENDeEUzdTFRK1J0NS9Ba00zZEMwVExaLzNjMndraWR3TEtzTnhRS2JmVjduU1JKMlc0cjlvSk9kRjAvUFRnNCtDZnhlUHh2OHp3UGlxS3d2cjcraWl6THIyUXltU2ZsY3RsUXpoOWhRSWVSSkVtV0N4eFJGT2RDVURIYXBac0pIUlJGOWJnRXl1VXlKRW5xV053TU8rKzlqTEFzQzU3bjRmZjdKMTV1TXczSzVUSnl1ZHpZTjNybndURTNUWTZPamdCZ1pMR29VcW5nNE9EQTBuUmdORnNhMXJsakZsL1FMU2dZbTIzaGNOaDBYS2hXcTFNNzl3MEhsUlYyeDJKVS9nRDl5MnhuaVptNzV5TElldUNaR00venJlK3hFNG91YXo2UlhSYVdKRWxIM1k4NVhsRTNHZzBWd0NsQkVOQjFQWEZ3Y1BESEd4c2J2MnExS0E4RUFoQkZFY2xrc3UvQ3dpZ25vMm02SlJvRkFnRlVLaFZrTXBteGRuVXd4S1I1SWhxTmprMUZ2Mm9ZbVVUOXpvRlJSS0lsd29YVmhadG9hQmhxQ1cvRTRyamg4K1BETDNaeGV0YTh2dmFlSE9PMExPTm5iKzBnVm5majJwaURnSXVrM2lyek9zejFYOGQxdDBDMUlrRDNDc2tCbGJRc04ydUhCSUhqd3RPK3J4dVVOZThLYm9adllFMVk2U2pyVStzNmNxb3l0R2dRREFaYmt6TXJqRzVGd1dEUThnYlRMamlOYS9KejdySVd3TDR4Um92NjM3OTlHLy9sNTUvanFPMis4RmcrUmVKNUVmRnJ2VGtvWm9IVzNTS29qZ1pPbG5TVXFIclBhOGZCeWhJejlOLzhUTmZBa1V0Z3FDVzg4L290ZlBEd1FjOXJUcVJlUjl5c29WMzlyeitIWGM0a0FHZVJTS1N2U0FRQXVWenUvN0Z3RTluVGFEUitoeUNJMzBva0VqREVJcUM1NDdxNXVmbEtwVko1SlovUG54YUx4Vk0wUDM4SnpmeWlib2RSaitPb1ZDcEIwelRUc2R2bjg4MU5XL2hNSm9QMTlYWFQ1OHhjQW9sRW9yVzRVVlgxeWd0RTdmUDdxeUFPZFRQdUVqUk4wK1o2WVQ0cGpKYjB3NHB1eHByQmJrd1laYnl3Y3VaWU9hMnREQk9xcWxvMkd4bjNHalVZREZwZWM3SXNJNUZJSkxhMnR1SjIxMlVzRmdOSmtuTXJYcG81aW1pYUpvWXA1V3QzQ3RuOUxickZxY3VTVDJUbGNwTmxHYnF1OXd3Nnc0eG9aUUQvV0ZHVWVqS1o5Syt2ci8razFRc3ZkcFVnU1pLVHpBQ29xdHJxaEVIVE5BUkJnTS9uUXlRU2dhSW9JNVZxekN0RzZuNmhVT2dJcnpWMlhFUlJmS203b0tYVDZZbUtSQUFXSXRHWUVEa2UzN243ZGZ3d21jRDlvOGNBbWlWWS8vYitaL2p0MTk0RW1QR2N4My95NUFBZkY5TDR4dllkaURSdjZlQnBoK000UjNYaWJoZlpjejd3T2dGeGdPNXN4NFh4M1VnTmdjakszVUc3U0VUY0hHaFZRVTRkL0FibDgva2NoMlpidFpjRm10ZWc4UjVoWmp4aC9HZXV5WWdzWnZ6RE45L0UzL3AzLzY3anNVOExhVk9ocUJ1ellIWVNCRjZwVVFDMGlZaEZITGswVUdaUE95Vk5iWW1oVVo4ZmE5NlZubEpKVmRkUTFXcTJXV1BUaHU3aitIVFk1VXdDY09MMyt4bXo4dmx1cXRVcXl1WHlvdHVaQXhxTnhoOFFCSUdEZzROVEk3UEllTTdqOFNBV2k2M0dZckdmbEdVWnNpeFhBTndBNE5KMXZTSEw4ak5GVVU1aDRUZ3FGb3VXQzBkQkVPWmlRVDNNaHVhOGJWcE9BbEVVVzZWbDR5YVh5OW5lbDZiSnVFdlE1dUdjbmhXRzREOW9sWVhUSE5OaHNYTG1GQXFGdVYyWGNoeG5PWFplaUdvcFhkZUxpVVJpWldOalk5VnVIUldKUkVDUzVOeGNjd1kwVFp1dS93S0JBQVJCUUQ2ZmIrVHplVWRPSDVxbUhlY1RkZi9NeXlBU0FiWkNVYU83N0F3WVFpaHFjeGI5ZDZWUzZWb21rNG1FUXFHdjJYMlBJQWpZMnRwcXBjODdVZmRVVlVVK24yK3BseHpId2VQeHRFSmJOVTFyaVVhWDVZL1REa21TQ0lmRCtQK3o5L2RCanVQNW1TZjJrRUFDQkJNb29nb3NacEZOZG5LYTJjek82aXAxU1QyYUdXbG4zQzA1VnRvNHZZMTJ6MTZ2NzlhYXRiMFJVaWpXMGJJak5oeU90VDE3RitmdzI0VkdjVEUrT2M2N2FvVzlxOVBlU2p1YUhma1VvOTF4OTNaTDg2S3VVZFYwZG1VWHUxak5MTExJVEJhWkJSYVFRQUlKa1A2RENSWmZBQkFrd1V3eUU1K0lpdTdrQ3dpU0lQRDdQYi9uKzN6ajhUZ2VQSGd3TXNpd1N2TTBUWE5jcFRydnVHVmRXY1JpTWM5T0VUdUNiQ0wvR1hZWFZaVm4rTjJkNytHM2Juekp0WlBWT0lyUG12akRoM2Z4OUVRUStjNzJIZnp5WjcrQXgwL2RoU0tDSUpETDVUeTlSbXBJekZwcEF5bmQrN0gxM3Q2bmtEVnZUWDRvaXVwZGxQcTdTM0FjaDB2a0N2S1hyM3FlcU9mRHE3Z2FlcjROSFcwOER1dWVRby9kc29xODB2LzdVNmpabldNbU92akVZeGM3UC9qSzVpYStldnYyZ0t0bysra2UvaTVlYzMwZTNiWUVJWHRlT0NaeEZENkc1dUtPbXBZckt4UWF4OXJFenp0cW05RGJaaSs0LzFiMkpkdGc2d05ac3MwWk95dkdOUnB3eXFNNFFVZDNrYXRDRUlTVVRDWi94c3RyMW1xMWYrbDEvd0s2WWhFQWhFSWhpS0w0Q3hzYkd5TXRLam1PQThkeHc2c0d6TzNidCs4QytBOEFudUs1VUJRQndEZWJ6ZWphMmhwNThqY0xvR2R0WEJTaENJQmpxUFZaNStpY05nUkJJSkZJK09vZU1nd0RzaXhEVVJSSWtyU1FuNmNzeXlpWHl6UEhTQmlHc2JET2pkT2lYcTlEa2lSa3MxbFBpK1hqeXMxbXhlb1lObnc4RzRiaEdyTXlLVzVsUVpNeXJ1U3NWcXVadXE3WE9wM081ME9oMFBjTGhjTEdPTEVvbFVxQm9xaXhUdlRUeEUyRXBta2FtVXdteFBPOHA2WlpQTS9Qa2sva2JZZlBHQ2VoU0ZFVTJ3SGxMQjVKRWNEWGE3V2FIbzFHL3pIUDg2N0x5RFJOWTJOakE1cW1vVnd1VDd6NjBwODlaTUd5YkMrMFd0TzBub0JrbWlaTTAxeFlBWWxsV1dTeldkQTBQYmFzcXRWcWpkU3lYd1M4aUVTQ0lMaWVCTDF3bFlvRTJVUno0T1ZJREovZC9Hbjg3c2ZmUTFWNWhxZTZpajk4ZUJkZnlYOTI0bTBkYUFyKzhPRmRQSlFHQlNGWk84S2YzdmtyNkcxM3g0Wlh0OWxsa2dKTERBb3pxZVBKZ3JmZjIvdlU5bmF2NWFWaGhKQ0pyTnBtSk5sQnQwTjQ0YVFzN29YdzRDbjRScWlESnhFVEI0U0JsbkdNcDRabUt4enhQSTlZTERaMWlTL0xzZ01YU0pwZG5XbzcvUnlHTzY3bFQyOTZ5SnFhbEM5bnMvaWQ3ZTNlMzBlbTRScHFEY0JUOTc2TVR1SkI1TmlYZmV3bnZoS1pTaWdDZ01ieEVWSjA5M3R5QzdaZUZxclY2cmdWWFN0ajhTaWRUdC93Y2o0NFdZd0tRcXluNEtRVURSOSsrT0hIdVZ6dWIzdVo2TEVzbTVKbCtSc0Ezc0h6MHJOckFHNnBxdnFpcG1tck5FMWZBN0FCb0tkZ2pzdGFDemc5S0lycXVlUm53U3Joc0pyQ0xGTWxRYjFlQjhNd00zMEd6V1p6YWQ3dlBMSEszaE9KQkJLSmhPTTR6bXZWeXJSWUlwSGRlV3phMTNVU2xmMHN5M1FyT1R2cENIZmJjcEJNSWhaWngvYWlpRVZlY29ldHBsbWxVcW5UYkRZZEIvV0NJSGpLSjdMNzdrelQ3TEFzRzFwRUVkdkM3Yk9TWmZteDNlMVRDMFdkVHVjSXdGNG9GUHI5VXFtVXlXYXovd25QODJOSEEvMkNVYjFlUjdQWm5Qckg3ZlpsRUFUUnF4OWNsQytOb2loa01wbWU2Q09Lb3FlVnNGS3BoSzJ0clhOWjEyM0hhWWxFUUZjY0NQQ1BjS2Zyd0xuVURnTWs4T3V2ZktFbkZuMGs3anZtdmpqeDdjY0Z2TGYzS1k0Y25ER3R3OE1CTjg0d3lXVFMwMnJVU2lnODRpWmEwd25iUEJvbkhoKzJlbTZuWWJ5V3ZXWG9WVENFdDlQeVNyc2JzTzBrWkZHZHJ0dmxxa0dnVEhWTDZ2UzJpYkoyT0NJWVpiTlpiRzl2VDNVdXBtbTZkNDUxNjZZd0NSTFJ0dTBjTjArK2tzOFBDRVZBMThYbUpCUkZ6WkNuNDRQcWhCQXp3cjZYb0ZGaEFxc0U2Y2sxTnN6QmNiZjh6QkxKN1lLdHI3Q1RkV3M1SzZ3MjRtTTRBaENLeFdMUmVEeCsxY3QyNi9YNmQwelRYTHl3cGlYaFJDejZ2KzdzN1B6ZmtzbmtyeWNTQ1c2TVFLZDFPcDJQKzI4SWhVTFgwRjJVek5mcjlSZE9uQnJwNFNlZWxCZjR1UGZUb1NqS3hGMk96Z1BEWTl0SnNmSjRyRzZnaXpKbW41WktwUUthcHFjNkZnekRXTGpTbnJQRU5FM1VhalhVNjNWYmwxcTFXcDNyNThVd0RISzVuTzI0cHRGbytKcWhDOEIxUERzSkhrck9pc05sUnBPS1JTUkp6dXhHOXdPNzM1bWlLTFlsYWRsc05rUlJsTzB4MDE5MkJyaHJCM2F2bWNsa2VvTnhUZE1nU1JKMFhZZWlLQjFWVlVPTElQNXlIR2NiOEsxcG1tMCtFVENibzhqQ01FM3pXNlZTNldvK24vK3kxenlkRXpzWUVva0VKRWxDdlY3MzFRRzBTS0hWTE12MnVycjEwOStkeFNwRm8ya2FwbW1pWEM3M1ZoUk0wMFN6MlVUS3h3RFhSYVZjTG84VmlaTEpwQytmeFdXU0dsdk9FT0NkcUJsQzZuaXdNeGhEcnVDWFg3eU8zLzM0ZXdDQW91Uk5LQ28rYStLYmorNjV0cnkzTExwT0oxOUJFRHdmSjVuSTZvQ3pqRzVQbGtzRUFPL3ZsMnh2SndnQ2xVb0ZnaUE0RGh4WENSTFpDRHVSdSsyS1FYaHlPMUdkRUhMYUNzclVNU1NDUUk2NWhKYWhvNm9wT081MHhRdXJEZW8wMW0xTmUrNXE4Y3Y1dUt1NkQ3NTRIKzNaRnJmaWNjUW9DcTIrNDhudCtPTk43OS9WVllPWVMxYlJaWktlU2locW80UEdzZGJMS3FMSkZYeHVZeFB2My8rbzk1aEZ5aWR5WTB6Sm1ZVUJRTXRrTWwvMDlPQnU2Y2UvRE54RXM5SHBkUDR4MEMxRnE5ZnJWeEtKeFAvWWcyRFVqd2pnRG9Cbm9pZ2kwMVdLUmc3NFJSR0tGaUZVK3pUcGoxQ1loa2FqZ1dhenVUQmpkYit3OG9xY1hDaHVMRW80KzZKaENVYW5LYUs1TFVnM0dvMjVPR3I4eUtTbEtNcDFJYjNaYkhZWWhybktjVnhMbHVXZU9OL3BkRDQvaVZqRTh6elcxOWZQMUZsRUVJU3RpRmV0Vmp1NnJvZnNSRDZuOHJuK2JuWk80ZVFBRUl2RnhuWlRvMm02LzNVSFhFcWFwa0VVeFk2dTY2SFRybnpxNytqV2o5dCsrQ0VVSFFIWU0wMnp0TE96ODkvbTgvbS96WEdjNTFHODlXSEc0L0ZlN2ZGNWFCRnFkWGh3c2t2dTcrLzMzcU9kclpGbDJaNktmbEZvTkJwajMrOGtrLzl4WEE2eWlYd2gzT21XNFBBT3drcnVrb0NYdUN0NEtCMGd4N21MUktweGpHOCt1b2NQR3U0MTMxYWJlNmRCQTBWUlNLZEhGcDV0V2FPWWdaS3pjQWQ0UVo5TUpGS05ZOGQ5dG9SZXAvMjVURkxJUkNZUGdPWW03Q0tYMFZjZ0VpYXFsSWtZU1lFbFNKU081SjdRRUkxR3NiVzFoVUtoNFBuOE85ek5SeEFFWENKbUV4aU9RbTA4YnJublR0MmFVNWZJVzRLQWQvdU9xU3N1QWV4T3g3c2RWQ2VFSzBZWUJ6NkxSVmRXYUZRMVphcFE2MzFkeFNwQjlvNzlsNitsY0tkVWhLd2RnZkxvYWp0clBMZ1ByQzVuVWlLUkVMeTYzUUkza2IvMENVWUh0Vm9Oc1Zqc0Y2TFJhQy9JeFRSTlRaYmxkMjJlWnpuWG9ldjZKVVZSVXRGbzlNZUhIOGR4WEZCK2Rzb0lnb0IwT2oxeFBxU1ZMK3IzNHZDaVlab21kbloya012bFBDK2dXTUpad05uajlyMkpvaml6T0RLdlBCdUtvckMxdGVYNnUxeGJXd3V0cmExZE92bnpjNVp3WVFsSHkxU0dOdHg1ek1KeThGaS93ZUZGMm5nOGptZzBpbUt4Q0YzWFFSQUVCT0g1L0VRVVJVY3h5RWxzOGNKSlJoL2k4WGdJNkM2MG5yaU9JRWxTeHpUTmtLcXFjeE9MblQ0dlJWRnNnNndCZjRRaXEvYi85d0RjS0JhTGtYUTYvVVk4SHI4ODZZYWkwU2lpMFNqVzF0WjZ0aTFabG52MnJVWEg2dFRtcFQ2NVh4QkpKQklqS2pKSmtzaGtNcUFvQ3BWS3hUYzc0cUxpUlozM3E5d002SllhRGVmUkJFeU9uWXZJanIvN1VqY1UyRzNpdmYxMEQ5L2N2ZWRZdmdWMGhZbHNOZ3VLb3JBOVZDWmtZWVZYZTgwbHNsd1ZGb0xSemZ5WmhPMm5lNjczT3duRzA0cEVacWM5OWpPM2d6Y0poTFVRS3JRQkloUkdqcm1FOHBIY2E3Vk8wM1JQTFBJeWlPKy9tREVNZzJnMGlzc3JOTXpqemtUWlR2MUloSHMrMFR3WmRpcDlObTR2N25IbTVPL3Rpa0g0TGhRQlFJeGM2WDEvazFMVkZPUVlycThFTFlmMzczKzBOR1ZuL2E1Y0IwUUFkd21DMEpMSjVDOTcyV2JnSnBvZmxtQUU0Qis3UG5BVUVjQ2RaclBKUjZQUk4rd2VzQ2l1b3ZPTzVWYVl0S3pLR3ROZk5NZE1zVmhFSXBIb05lSnhZbjkvMzlkUTVJRHBzTWFZVHM2ZVJxTXg5KzlwRnRGYkVJU0p4VnVhcG52aWtTUkpuK000cmdYZ1kxVlZIeFFLaGMrTnkvbU14K09nYVJxRlFtR3FmWjRGdS9PUVlSZ0RGVGtuT1ZlZFJDSVI2bDhzc2haSDYvVTZvdEhvd0hzVVJkRnhrT2RuWnJCbGx1RTREbXRyYXozeFNGVlZLSW9DQUw2VnJqRU00L2c5T2dWWkF6NElSWDFkMEFBZ1lwcm03KzN1N3BZQS9LZnhHZExjK3AxR3dIUFY3YVMxS25SZFAzUHh5T3JFeGpBTWVKNzMvT1BzRjc2czdoQk9ySzJ0T2RhWm5oY1VSUmtyRWxuZHpmd2l0aVJsRll0S3VBTmNQU1k4bDJlNUNVUmVYVVNKUktMWFRlVEJnd2VPZzgxME91M0p2cnRLa0NNaURkME9qYlE2OThLZlAvN0U5ZjZrVGZqeXRDS1JhaG9vSGNtNEdSN2IzZHVXUyswdzBocUpLbVdnSFFJeUVSYXJ4eG9xMmlHQXJraDkvZnAxbE10bDE0blhzSGlkU0NRUVJnZ3hrc0tSMmNGcWV6cWg2Q2pjZGhXSzFoMVdSUHpnVmp5T1ArazdGK1V1Q1ZDTjQ1RnVmZEVKeXM0c3FFNElLMjNnMk9mcy9QaEtaR3FoNktodG9xb3B2ZVBRY2hWUlUzYVJQRTBhallZWE1mTUlBSjNOWmovdjlmb2N1SWtXRDh0WlJOTjBLWlBKbEFCa0FmQjRIbm9OanVNQ29Xak9UTk5sMXVyZ1ZhL1hMNVJBMUkrVng1cE1Kc0h6L0VBcHpMUU5mZ0w4aDJFWTErWW5mb3A1YnRldVdZU2lXVVVNanVPd3VibDVTWktrejFXcjFXZXlMSnVGUW9FWUp4WnhITmVMTHpoTjdNYjZkcDl0dlY0UE5adE5aTFBaZ2MrSUpNbVJLaFZSRkIzUFZYN2xjTHBoNlI5OSs5a1RrRTRNTkIxSmtpWVdqdHlPRFYzWEZhZjcvQndOV3M2aUNvQTd1N3U3QjZxcS9yMU1KclBseDhiN1ZiZCtGRVhwMmJaMFhlL2xaZmdsSkRFTTA2dUJ0RHFzV2JkUDI1SzkzMW82aWNCMEh0RTBiZXlKaFdFWWJHeHMrUHE2bDhtZzdHeGFPRE9FTlE4dUlpOE10N3kzWTNnRmMzOS8zM0ZRNWJYalNpUk1JR3NqMGt4YWNnWjBPNTNaN2I4Z0NHQlpGaVJKanZ6R3B4V0pudWhIcUoyY3o3ZmJNbTZFcHhOTkxyWERpR2dyMktXT2NSenVsakJSNFRCS3F0d3JZOHBrTXVBNER1VnlHUVJCd0RUTmdYT3ExVjBTNkg1SDhYamNGd0cyckR3YkNGVWVKanZIc0ZoUkcxeFVlWHpZd3BGcGpPUnFSYVk4OXJsMkdBZGhmMTFGREVFaUVpWncxSjV1RXZiVTBCSFJqM0NWNnM2NVA3ZXhDZmxvOFV0Q1BKWWJSVm1XdmNKN0hEMEhicUxGUnRkMVVWR1V1OUZvOURLQTE5RHRpZ2FnTzVheXpsT0x4ckswVFhaalVrZTNvaWhvTnB0TDFiRnNucGltaVVxbEVyaUdGaFMzN0ZQRE1GQ3BWSHd0QzV6SGVjcHI4eFl2V0lLUm9pZ29sOHNvRkFwak93aHpITmR6cEovV2VYaVNOdlZXZGxnc0Z1dGtzOW1RU3hjOXQ3S3pzZmxFODZMUFFETVFtbjF5anUwb2l1SmF0dVkyREZKVjlZSFRmYjRwRkphenlQbzdGQXI5Ti9WNm5aSWs2VlkybS8xRnZ3N2VZYXh5dFdWcUg5OS9FRHZWQzE0RURNTkFzVmgwUGFGWUNyK2ZySVRDbmp0TEJUeG5wUTJzSFo5ME5Kc1IxVGpHdHg4WEhBT2dMWVpYTUJWRmNjd2w4cHBmRlFrVEErVTJGbGVQSnk4NXM5NkhIWnFtMlE2czdaeE1YcWhxaHdQdDBMYzdNaElkQ29uUWRNSE9WQ2VFbDdRVlZDa0RFdEVCUzZ3Z3gzQW9xbEpQTE9KNUhpekx3alJOMERUdDJwR3dYQzdqNWZ5clUrMkxoWmQ4b2pmbkdPcC9wKys5cGFLWEhMdnRUZElOcjU5NWxaL0ZWeUk5UjlnMDFIUUZWMVlvRUtFdzF1UE9EdGRGdytYYVlXVVROVE9aekk5NTNWN2dKbHA0amlSSjJvdEdvM3NBTm9mdlpGazJjR2JNZ2ZYMWRjK0IxYUlvWW45Ly85d0ZWQWVjVDFpV1JTcVZjaXlsMURRTnBWTHBWSS9uYURRNjhldFo3Mk1lKzdLNXVka3JHN1dMU2hsKy9MU05VU2JGTFc4SExtSk9xOVVLYlc5djJ3YnhhNXFHWnJQcFZuWTJjdCtEQncrT1ZGVjl3bkZja21WWmN0cU9oOU53VWpZSTJBUm15N0xjMFRRdEJBQUVRWFNpMGFqdCs3SkszSnlZNTJ4WkJQQjFWVlgvZnJGWWJHYXoyZitFNDdnTFB6dTNuRThXeXlSdytVMnBWSEsxWDFvaDMzNDdyb0t5czhtNWVremdpaEdlT25lbW4rMm5lL2pEaDNjZEorRkE5N3RQSnBNRFpaY25MVDF0THo1V1hmazRuRVFpdXQwTkc1NlV0ei81d1BWOWlLSTQ4QnRmQ1lWdG5VeHVtSjAyeWtlSGVHWWVqOXozL1hZTFB4OFdRRTNRTGEwZkFpRms5QlU4QzdkUnBRd3dCRGtpRnZVN29xelBlRmdzTWswVDZ5K2taeFpnRDhQajg0bSt2TDQrMDJ0NEpVS1FLRXJkOSttbFU1OFg1aFZxSFNOWFVOVkNVNFZhVzhpbWdSanBmemU1ZVRGbWtVRUVzSmRNSm1OZUY2azBUVU90VnZ0NjRDWmFiSnJOcG1NNVBzZHhaeW9VT1Ixcnl4emE3RlVra2lRSjFXbzFFSWdDbGdLcmZiemJIR3gvZngrMVdtMXVnb2NrU2JhQ3dxU1p0Rll1cHgzNysvdVFKTW1JUnFNRXgzR2hhVXVuckJCbVM0UncyOFpwaVVWTzUxdFpsc2RPVkV6VHhPN3VMbXExV3E4a2xDUkpsTXRsVjVISjduaHB0Vm8vNmcrQ0RvVkMzd2NBaXFLU0RNTmM1WGsrY3ByaTBYQmd0clZiVG84L002R29yMXZGUDlOMWZhTlFLRHhOSkJML2NUS1pURi9rVXF0K054RkZVUmUyN015dGZNakNheUR4cEZ4YW9zblFXZU5ubWRtQnB1Q2J1L2Z3a2JqditqaW5NRUVuWVpHaUtFK3VzekJDeU5DcnRpM29yeDU3YXpYZno1L3Nmb1NIa3JQN1JaYmxnUzRLQUpDTnNMYXY3NFRaYWFPb1NvNWxSWWN3OFg1YnhNOFNWenh2MDQ1TDdUQldqMWJ3Wk1YRUFVbGlheldHZ3ZJTXg1MVJRU09aVEk3VWNBdUNnQ3YwZEpsSi9TaUVlejdSYTRJd3Q0NW5BQ0QyaWZoUE5SWFZ3MmRJclY1eWVjYmtYRDBtSUlYYnZtWVZFYUV3R0lMb2RiQ2JocU8yaVpoL3V6UlhxdFdxMCtSYlI3Y00vcEJoR0MyVlNuM0c2emJyOVhvZ0VDMCtSNnFxN21tYXRrZlQ5Tkh3blR6UG4ybHBqOU1FYnhITDRiemdSU1FLTW5ZQ2xnbVdaWkhKWkZ4ZE1XZmhJcG9XdHdWMVVSUlJxVlQyQWR4cHRWcXYxV28xQVlBQzRKaGwyVmcwR2lVNWpndFpFUWxlOENwMm5JWllaTGN2aXFKTTlIcTZybU4zZDdjL0o5ZHhJaUFJd29pSUpJcml5T1BzdW9kWjRoRkJFQUxETUZjNWp1TW9pZ3BaVlZGbmlTaUtSMDRkejRENU9vb3NlbDNSNnZVNlJGSGN5R1F5UDgvei9JVzBkZlFMUlF6RHVEenkvSEt5Y3V2Nm1IUTZQUmYxTll4UTBPM01BM1E3aEd2SHhOUWxOc084dC9jcHZ2bm8zdGpISlpQSmtRNWhscFBJYmlBNlNZZXpUR1RWMXZGeXhRaFBYRTVYZk5ZY1d6WUhkQzhpMWtCN2pXSW1jdHlNRTRrczZ0RHh3L1l6L0VSNE5rR0RRQWpYamtsY01UcW9yaGpJUmxpVXRjT1IxN2RDOWl4WEVjdXlZQmdHcXo3OHJuWU85bDN6aWI3aWN4bnFNSGY3bkZKVzdwU2RVSFFZYmsvOTIraTZ1RWlVNkc2WXVGOWs2RldVanVTcHNvb1VSWUc1c2h5NWJaSWt1VjAvclBIR1VUYWIvUjk0M2FhaUtLalg2LzhpY0JNdFBDS0FPNUlrOFRSTmozUS9zN0lrenlvVGg2SkdGNkhHcmRZdUtvSWdqQldKckE1UXl5cUVCVndNck5ibmlVUmlySnRtM2k0aUwwemlLTXJsY3JaQ2c2SW9LSlZLRW9BeXVubHVQQUFUZ0FyZ1NPNXlWSy9YMHdSQmdHWFpTRHdlSnllcGNqRU13M1hzUFcreHlHNE9QYy96YlRLWkhCbXhTWkprdW9rc0ZtN2lFUUN3TFBzS3gzR2NJQWloZVlkbDkyTVlCbVJaZnV6Mm1Ma0xSVU5kMGY1QTEvVnJ4V0x4QWN1eXI2ZFNxWis2YU9Wby9RcjFXYXVJWjRWVCtaQ0ZJQWh6Ni9UR0J0bEVycXkwZ2FzR0FkNWpON054SEdnS2Z2K1QyNmdxejF3ZkY0dkZrRXFsYkg4VFRpSVJBT1R6ZWM4ZHp1ekthcXp1YlpQdytMQ0Z0ei81WU96akVvbEV6NmE2RWdwampmSXVESHNWaVN3S0hRV0pEb1YwYUhaWEQ5VUpJYXV2SUJVaUlheVErSUgyZEtDa3lUQ01nZEl6Z2lBUWo4ZG4vbTBkaGRxNHYxOTF2RDlHVVhNVmlrbzJBWWhPSWVzU01iMVFCQUNSVGhoWnpWK3hpQW9UeUVkajJOZFY3THVFdzl0UkxwZGhIS3BJZmVabGYzWm1UaWlLZ21LeGFIZVg1U1NxQU5DU3lXUjZrdXRydVZ6K0wvelp3NEI1WWpuVmVaN2ZpOGZqSTQ0aW9Mdks3R2ZvN0NUWURmQ1hNY2lab2lpazAyblh4N2psMVFVRUxBSVVSU0dSU0hpYVQ0aWk2T1pVOVgyL2VKNTNOQXQ0dlhhdHI2L2JMcWlmTkFtU1ROTU1BWGdKUUwvbC9Ocnc0MDNUM0d1MVduL1JhclZlSndpQ1RpUVNiQ0tSY0F4N3RpQkpjaVJld2U2OXpFTXNjaXFoY3d1aW5nVkJFRG8wVFk5c1Z4UkY1MEhyR0liRm8xQW85UDFhclFhQ0lBUkJFTEk4enhPek5NN3lRclBaN0ppbTZYb2lQODFaODBCWE5GbVdYeW9VQ3IvQnN1d3JxVlJxaStPNGMyL3owRFJ0NElkaXQvcDAzaGxYdys1bGdESUxRWWkxTTFlTThGUWxXSGFveGpIZTIvOTBiTnQ0TjRFSTZCNHZzNHBFUU5kdFlVZWtIWnJvL2FyR01mN1Zwejl5elNXeUlBaWlkeEhQUk94ZjN3NG5rVWhSRkNpS0FsVlZCMVpOYUpxR0tJcW9jVEg4NXN1Zm56cXZhQmlxRTBMV29KQUtYMFdobytCKzV4REg2QXdNcFBxem9mcEw2bGFtS0ZVc3E4L3dxUG5FOGY2M2J0NEVQOGVWRmp1aHlJNmpVQnRTdUQwNjJwb1FTeXg2VEpuUXd0Tm5DdzJ6UmpGWUpVaVVqdzV0U3dmdFVGVVZEeCtYOGNVRkZvbzA0OWh0a2NFYVgyZ3N5NFpTcWRSTFhyY3JTWklveS9JUEF6ZlI4dUEyaG1CWjlrd0VES2RKM3pJNml2b2JTQXlqYVJxS3hlSlM1eTRGbkY5TzNERllXMXZ6VkpWd21tVm1GRVVoazhuTW5FMUxFSVJ0RUxORnNWalVUTk1NQTlBQWVBbkY1TkYxSGNtbWFjcTFXcTFUcjllTmREcDlaWnlya0dWWjdPL3ZkOWJXMWh3SGZmTVFpNXpPdDZxcXpxVWpXU0tSR05udVNlYXdlM25NQk5nSlJ5ZXYvVHJIY1FSQkVJNEMyVFFZaG9GYXJmWnduQ1BxMUdiTk5sM1JkQUMvSjh2eXRVS2g4SG9zRm51ZDUvbFg0L0c0djRFUUM4VHd5dEpwMnNzV2daUFd3NjZQY1J1ZytNRnFJQlNORURQQ3VHb1F2dVFRQWQ1YTNvL3JOQUU4dHdEYmtjdmxQSmNtWGlZcFVPSFpIVktxY1l6Zi9maDdZOTFSRnBhSXRVcVFuc3NkaDBVaXk3MmpxcXJqNU1jYTRGVEZBMS95aW9haFFtSGNDTEY0b1VQaisrMFdHbjB0NUtQUnFPM3ZkWnBqNloyS3M2Z1lveWk4ZGVQR3hOdWNoRHNlSjVkbUNEZ09BOC9DN1prN0FIYkZvbEN2ODV4ZnNNUUt0bFo1N09zcW51aEhua0t1OC9rOFdvYStrSUhXbW5HTVA3dnpnZDNrdE45SjlJQWdpR2dtay9ueUpOc3VsVXIvSkJDSmxndlROSThrU2Ryak9HNFAzVWxPejBwNVdvR2h3emd0L0RtMWFsNVVXSloxL0F3TncwQ2hVRmhLbDFUQStjWnk2WGdwTHdPNmszeTNoVWkvOXkyWlRIcnVIT2lHbFVua3RFaGFMcGM3cXFvZW9WdGk1blU5S3pMMDJEM1ROTy91N3U3ZXF0ZnJsN0xaTE9QMGVpUkpndWY1MFAzNzk1L2xjcmxMVHZNM3Y4VWlwM1BVMXRZVzZ2WDYySGlUU1lqRllyWWR3NXJONWx6ckU1MkVJNHFpa2h6SEpSbUdJYUxSYUlnZ2lJa3JsRTdPNVFmajNFVEE2VHFLaGhFQjNFSDNBSDJuMVdwRldxM1dsMnUxV2o2UlNQd2N6L012bkRjaFpka0dESDVUcjlkZFR4Q0pSR0x1Zzd3Z24rZzVmZ3RFcW5HTVAzeDQxeldzMm90QUJEelBQckJqZlgxOW9oV1p5eTdaSzBjZW5Sd0htb0xmM2ZtZXEvZzFqRlZuSGwveFhnN1duekV6VGExOFNSSHh3MVZ5NXJ3aU95NkhWdkN6NFN0NEZIb3U5dlpQam1UekdDeXhncFVwR25wdFA5MUQ0Y0JaUlA3cTY2L1AxVTBFREFaWmUrR0FOSEZKbjkyOVpYV2VFd2tUZXl1bXI3bEZheFNEeXlRMU5ydm8xcTFiQUlCbkN5Z1VXU0xSd2FIdGlxL2xKSG9BWUNXZFR2L2tKQU9tUnFPeDQrZUtZTUNwSVVxU2RKZmp1TXZvcm9UM0pqbG5sVlBrZE53dG02amkxbUs3V0N3dTNmc0pPTi9FWWpIRTQzSFBZMEpKa3RCc05rL05kU2dJQXRMcHRDOEw0QXpESUpmTE9RcGgrL3Y3cU5mckVyb2lFVC9EUy9Ib25sZkxxcXArcGxBb3FObHM5b3JUWjB6VE5BUkJ1RlFvRkE3eStmeVYweENMblBhRkpFbWtVaW53UE8vYitTcVZTdG1PeWtSUnJIckpKL0lMTHlIWjF1MmN5eVRMTk0xMnM5a3NtYWJaOUxML1p5WVVXYlhtUXpmL24wT2gwTFZLcGZLNFVxbndzVmhzaStmNW14ekhKYzZEYUhTUkw3RGpBcXd0UytZOGlmamdLamtQWERIQzRJMHdJaDMvMmk1OSszRUI3KzE5NmxpUzVWVWdBcnExNG4wZENBYncycXJYWWlVVWRoVUgyNkZ1S1pIYlovSGUzcWY0OXVPQ3AzS3pmamlPdzBvbzdIbml2YStydmE1Vlh2SWZYaE1FWkZrVzc5UnFhSjJjVzBSUlJDRWF4ZVgyQ2o0VDlqOHNud3FGOFlWSUhKL2dVd0NEWlJWNnV3MFFRR1JDNGZIeFlRdC8rUEN1NC8ydkNRTGV1bmx6dWgyZUl3clJtU25VZWhqZUpNQ1pZZXl0bUdpUlU2aHREbGpaUmVVakdVOE45MnZRVTBQSFd0djB4WUhuRmMwNHhvRXNRVDQ2Z255a252eDdIajhqSDZtUXRaRTRtZ0VuRVlCd01wbThIby9IWC9ENnVpZTI2NjhIYnFLbDVFaVNwRDEweDVDYnczY3lETE1RUXBGaEdFczE3cU1veXZFYVBTNDJJQ0RndEtBb3FoZE83VVdBc1p6Wm9paWUyakZNVVJTeTJleFVpOTkyejRuRllxNFZGeWNkenBvQURnRzhPUEdMRG1JNWpDZ0FEMHpUZkZBc0Z0L001WElwSjRFbUhvOURWZFhZYVloRlhzcXZvdEVvYnQ2OGlYSzUzS25YNjFNdnZ6bTVpZnd1TzV1VzB4Q3FGckVPUndUd2RRQ1JWcXVGVnF2MVN3QldHWWI1Y1o3blB4K05SaE04enk5bHU3QmxyRlgzaTNFbFovTVdpUUQ0bHQyeXJFVE5iaWN6UHdXaTdhZDcrT2J1UFVlbkRjTXdQWFhmQ3llZEdtenZ5K2Z6RTE5MHZRUXNQNlpNNURUN3orUVBIOTdGQnczM2Rzc1VRWTUwNnJLY05sY202Q1IxY053dDZTcVh5N1lpMGErc3IrT3RtemVSNVRoayt6NEgvdTIzZS8vZmJEYVJTQ1R3US9JWlZqc0VFaUgvM1NHdmNNK0Z1bGFyQlUzVFFOTTBxcHFDR0xtQ1NOdTdhODhLTzNjVDRiNzJVejgxMC83T1NvNFRCdjd1SDlvOElVMnMrdUFxc2lBUXdndkhKSGl6amIwVmY3T0xNaEVXcGlyaG1YbnMrcmpTa1l4OE5PYkxhOWJFWHJVNTlzU25QUkhvUUpaY3U5dDVZTUJKbEVna3NxbFU2dFdKOXExVysrTkZHT2dGVElmYmhDOGFqWjU2dTNhN3pJeGxFMWJjU3M3R2plRUNBdWFGbFRzVWpVYkI4N3puTWh0UkZORm9OQ0RMOHFsMk1mUFRSVVFRQkJLSmhLdlQ3MlRjL0JUQVh3RDQ3TXd2K2h3V3dBWk9LbjlLcGRMZnl1ZnpWNXcrLzJReVNUU2J6YWVGUWdIekZJc21tUWRrTXBrUXd6QlRkMmQweWw2YWQ5blpJckZ3UXBHTjAraS9Bb0JRS0hSTlZkVmJBSDRCQUZpV2ZUVWFqYjdNTU13Vm1xYXAwK2llcG1rYWRGM0h0Q25rdy9rS1RtRmM1eEUzZDRSVld6eHZMbXFRTmQwTzRRWGRYNEdvK0t5SmJ6OHU0S0YwWUh2L05LRjlKNTBhUms3bTQycXkzWWlFeDMvbldyaURFbldNakU0T0JGdi8xenZmZFh4L1FGY2crbXorRlh4VTJZVStWRlpxQ1VWeGowSlJ5OUJ4M0dsREZFWGJBZm12NWZONCs4MDNiWi83MXMyYitLZTNid1BvdWhaUEx0SjRqM3lLbncxZndlV1F2K1dXVkNpTVdDeldtNGlKb29pMXRUVzAwY0hPWVF0cFFoaXpoUzZQRDF2NFY1Lyt5TFdjNzlmeWVienBNa0E2RFZMUndUSytmdkhHYjFlUnhXcTdtMTMwWk1YRWdZL3Vva3hrRlR1SExkZk1vcU8yaWZLUmpCUWRIUWdvNzJmWUJhUWJCZzdrN20vQUJ4SElqU04wRjVNcUovOGZYbDlmLytsSm5FUkFkMkJkcjlmL1JlQW1XbHFPQU95ZDVCU04yTTA0anZNMW8ySWNCRUhZcm5BdjIrSWd5OXJuM2phYnpUTnRGeDV3c2FBb0NnekRnT000Y0J6bmVleDMwdXI3VE1RaGkzUTY3VnZYWm9xaWtNdmxYTi8veWJqNXFXbWFiWFJkUUxPM3Z1M2JCVHp2bUhaa21tYW5VQ2c4M2RyYXVteDN2aU5KRXNsazhxVktwZkpYaFVKaFkxNWlrZE41eW9sNFBBNk80eWJPVjNQTGEyczJtNlhUTERzN1M1WnA1aXlpbTJuME1RRElzaHlSWlpsSDkwZnhKUUFnQ0lKakdDWUpBQnpIVGJTNk9Jd2tTUitkdkU1aDZLN1A1UFA1ZitCSGxzNDhRNXNYQ1VtU1hFOEV5V1R5VlBZajdIL0h4SVZtcFEya2prbGZKN0VGcVlGL1gvbkVVVUN4dWsxTUt2d1pob0Zpc1RoeW5GaGR0YVlSaVFDQUlieVYwQ2hFQi9lWlk5RHRFSWdPOEdmMzdyaUtSRmRXV2J6NTZtdlk3eHlEdEFreDVUZ09sNGdWeDRuMk1JZm1NUXpEc0hWVHVZbEVBUERXalJ2NFJxbUV1eWRpcktxcXFOVnF5R1F5K0U3N1lDNWlVVHdlN3dsRnRWb04wV2dVSE1laGpRN0U5akV1anhIbzN0djdGTjk4ZE0vMU1hOEp3cW02aWV5Nm5rVUlFZ3pwL3RsVlZ3eThyUG52M0NJUXdyVmpFcEcyaVNybHo0Q1hDSVhCRXVSWVY5RlRROGNUNlJuSUl4Mm1hWGJGbnhNeGFJNGlrQmRFQUhjQnRHT3gySlZVS3ZVL21lYmNVQzZYL3d1L2R5emdWQkVCM0pFa2llYzQ3bzNoTzA5N0VlNjhkRHh6S3VjUVJmRjBkeVRnd3NBd0RDaUs2bzBoSmxtSTF6U3Qxd1ZXa3FRemRmQVJCT0c1eWNySlFrWGJNQXhqWTJQRGR2Q1FTQ1NRVENaZFA0dVRjYk42SWhJOVJ0ZjlNNW1LNGczTFdWUXhUZk9GWXJHb1hyOSszZmFrdDdhMkZtbzJteHVxcWo2WWwxZzBqYkdBcG1sc2JXMmhXQ3g2UGs0RXdYN1JVeFJGZUFtQlBpOHNqVkxoa0dsazhjNXA3VWNvRkhvVHdEK1k5SG5MTm1Ed2szRWgzcWZoSmdLOGl3YkxUcmdEWERzbXdKdit2RjhUSFh6UXFPRDdqUXJLeit6RmsxZ3M1cmtkcVIyRlFtSEVjZWZsUXVrM3o5bzZmdkRnUG9vdXdjcFhWbG44clZ1ZlJkM1FjR1NhanQxdUxrMFFDdHd5am0zRDNzZUpSQURBMHpUZWZ1TU52UG10Yi9XeWl1cjFPamlPQTgveitFNzdBSjhQeDVBTytiUFFWTy9vQXlzNnBtbWlVQ2hnYTJzTDBXZ1VoN0MvNEt2R01UNW9WUERlM3FkalE4RmpGSVczMzNoajdnSFcvZGdKUmNOdUlnQTREQTg2Zkk3RDNSSzBxOFo4emkrOFNRQTZmQk9MbURGQ2thSW92cmF4blJITFFYUUVJQXFnS1FoQ1NoQ0VITWR4VTZuSGpVWmpSNWJsSHdadW91WEZHZy95UEwrSDdyRXhBRW1TcHhwbzdYVGRPeTh0NUJma1hCQ3d4TEFzQzZzN1V6UWE3WWxEa3lKSlVpK1FlbEh5djhhRlRGdWNsTUsxVzYzV1UzUURwMVVBTDlzOWRsd2N4MG5YS2xWVlZRVkFFVjBoeDkrV3Q4L3BkeFk5VUZVMVY2MVdJMDRoejRsRTRzcnU3aTdtSVJiRllqSGJPWUVWZ2VBR1NaTFkzTnpzTmN0eGV6MktvaHp6VUJ1Tnh0RkZjUk1CU3lRVUxUc1h1ZU9aMjN0Myt0RUhURTY0QXdnRzRkdUU5VERjeGdlTkN0NHBmMklYSmd1Q0lNRHpQSkxKcEtkMnBHNUVvOUhlb0hxYXNqVS9HTk5kQ1FDd3NaYkVsMTY1Z2FwMjJBc0dKaHdFeU5nWUo0cUYzalloSDZrakpXZnJMT3ZaVVhNckhzZFhYMzhkdi9YZDcvWnVLNWZMNEhrZXgramcvYmFJR3lFV044TFRMVFlWbjNVWFQzS1hCTnh2SDlwZVlIZDJkcm9DMHRvTFlGWXVEOXgzb0NuNDg4ZWZlT29hRjZNb3ZQT0x2NGhiUHJTU1BTMmFwSWtyUm5pZ2RORlBlSk9BcVFQN1BvbEZicFRMNVVXYUdCNEIyS01vU3VONS9sb2lrWGgxbG5PTllSaW9WQ3IvWlNBU25RL2NWb1pQVXloeVdpeFlsSW5zckRoZDR3SUNMQWlDQU1Nd3ZhNkRWdUR3dEZFZEZwSWtRVkdVVXcyaW5nUXZlVVNOUmdQTlpoT3lMSGZRWGZqNEZNRDNBZnl0YVY3enhFbWtuWWhFODNRU0RXTTVpeDdXNjNWU0VJU1kzZlU0SG8ralZxc2xOVTE3TVJRS2ZkK3JXT1NsUzVuVHZLQllMQjVFbzlGTDJXeDI3TUZtbGFJMW0wM0hFdVZFSW1GN3U2WnBhTFZhUHhyM0d1ZUpZSVorU2dUV1hYdW1MU21hQnVZY2R6MjdZb1J4OVpqd1phSmF3UkYrSk83aHIzYUxqZ0tSMVhIQ3IyNkV5V1FTb2lpQzUzbEh1K2MwcUticDJ2WE1vaWxMK003MkhkdjNhL0c1WEI2dnB0ZHhjS3loY1JJOERkaXZKak5od25QWldjczRScTFXRzVtY3YvM21teE01YXQ2NmVSUGZLSlh3N3NtRlQ5ZDE3Ty92OStybHR6c3k2cWFPTDRiNWlZTGRIeCsyOFBZbkgrRElOSkRoTG9OTlgzTVVFbVJaeG0zNVBtNTczdm9neXlBU0tjUm92azg3QkZRcEF4bmQzeEsvZmdTVGdHUzJiVjkvRXZUMm1ZcEEvUTRodTc5NzdWMWpzUmpQOHp3WGpVWnYrWFdkcU5WcWYyeWE1bE5mTmhadzVwaW02YmlTekhIY3FVMHM3WTdQWlZ3Y1ZCVEY5bnJHOC94Q1R0SURUZytHWVhwWlhCUkY5ZHhCMW4vOVFKSWthSm9HVVJTaDYvckNPL0xHZGVFVlJSSGxjcmxmL0FpaDY4elJBVFFCVER5QXRrUWl1ZnVEbkxlVGFCakxXYVNicG9sNnZkN09aREsyZzBtTzQ1SkF0eXVYSlJaZHYzN2RjVCtqMFNoeXVaeXJzOGhhbkI3bXBBVHh3VWtaNGtZdWw3c3libTVDMDNTdjBVNjVYQjQ0djFsekhEdWF6YVovSFVhV2hFQW9tZ0pOMHlZdXNRa3VzbWVQMTRuN01oRTFRMGdkazZBbWJFayt6RkdvalkvbEp2NWk3MU9VbWs5c0g4T3lMQVJCQU0venZydkFhSnJHalJzM2NQZnUzWUhnYzVabGtjdmxwbjQ5dDlCZWkzRWlFVVdRK05rYnJ5SEpYNEZxR3Fob2h3UDNXNE9sL292YkpHVm5UOVhEa2JEM2FVT2N2L0Z6UDRkYmYvUkgyRDA1MzlScU5mQTgzNXRJMWFIajM3YWZZRE8waW53b09sWXdVbzFqL0t0UGY5VHJTbGFXbmlKVzlTOWN1Wi9YQkFIZitMbWZHK2pvZHByWWxaN2xMZzBPRnZTUTgvRWtFUjJJaE9sYnlhY2RWd3dDQ2pGYlJwQThKbU1vR28zTzgzb2xvcHN4WkkzaW5qSU1jMHhSRkJXTlJ0ZWowZWcxaG1FRXZ3VG9malJOQ3dLc3p5R3FxdG9LUlU0dW4zbGdOMUZleHJnQnA0azV6L09vVk55N2Z3WXNOMVk1K1hCWm1COTVyUDFZVFlGTzJvdjMvcnRzN3J0Y0x1Zm9icEVrQ2RWcTFlMDZ5Z040RGNCRUswdERJdEZwT29tRzRRR0l6V2FUeUdReXRxL1A4M3h2MEc2SlJmZnUzUnZyTE5yYTJuSU1uWGFhZTFpaXZQVTZPenM3UWk2WHkzazVkcVBSS0RZM053ZStzMFFpWWZzNko5MGZIMTZrc2pNZ0VJcW1RdGQxQmQyOEJFOW9talp5MjBYcWVFYlR0T01KYzlrdURvdUNIMEhWSmpwb2RuUjgwS281dW9jQTlOeEQ4M1ovMlhYR2syVVp4V0lSbTV1YlUyMXpYSUM1ZEtUaXorNTg0QmpRKzZKd0ZaL2IyQVFYNmY1ZW5Ucm44VHcvc1A5V0J5Z3ZmRkorTkhMYlYxOS8zZlB6Qi9hRHB2R05uL3U1WGw2UmFab29Gb3NEZ2VESDZHQzdJK04rNXhDZkNUSDRUSWpCNWRBS1ZPTjRKTGo1RHgvZVJWVjVObkNiYVpxK0NnbnJMSXV2dnY0NnZqTGxkK3dYdXpidktjY05Da1ZLMkYwazIxc3hFV21IZk8wdzJNK2xHWVBwVmRQQWNjZitQUmlHQVZFVUo1bmdkdEJ0VTE4RGNFeWRBQUFFUVpEUnZoTUdRUkRoYURTNml1NXE1QnNBMnRObURFMUx1VnorK21tK1hzRHBvQ2lLN1lSdEhtS2pIVTVqdVdVYzJ6aTVvR2lhUmpLWlBOVk9jZ0d6WTdtQXJNVXNxeHpNK3E5ZldNZU5KUUlCM2QrbHRYaTJqRUtRRXdSQklKdk5Pb3BFMVdyVnkrOGtnbTZITXM4RHFWUE9KQnBIQk1BMTB6UmxSVkZzNXdZRVFTQVVDbjNmRWxYNm5VVnVZaEZOMDQ3T0lxZHlNRm1XamY3WEFZQlFLUFQ5UkNMeGVqS1pKTHdzTkhNY2g4M05UWWlpNk5oVnJWNnZkeTVTaUxWRklCUk5oNFlKaENLN0UrUkZxdmwyRThXYXphWXZHVGNYaVZuTHpIYVBEMUVRNi9oSTNNZmpwL2JuUElxaWtFd213WEVjYUpxR0pFblkzOSszdFlUMkR6cG1XWDBTQk1HMkJFdVdaVTlCZFhhNEJaaHJ4akcrK2NIM0hFVWlxOVJzbUZXQ3hPSFFjMWlXSFJDS0hqbTRzb2JSMnlhYTRtQWx6R3VDTUpPcjVsWThqbS84M00vaFo3NzFMUURkVmVKQ29ZQjBPdDBMa2dTNmdsR2hvNkRRNlFvRGl0cnRIR0xkdjcrLzMrdHMxcyt3U0JTaktIejE5ZGZ4dFE4L3RCVmJuUGhjTW9uZnlPZlBYQ0J5WXpqTStqRHM3bEJyaDRESGxJbWN0cGp1UmRQR1lYZlNnY1ZXcU8wbkZvdFp4MGFINDdnT0FJT2lLSTZtNmJPeGdFMkFKRWxpcTlYNlR1QW1Pbjg0Q1p1bjVTaHlHc3N0bzZOSTEvVmVDZmd3cVZRS29pZ3VmRG1RRndpQ1FDS1JRQ0tSZ0g2eW9HTGhKSFlBaTFFWjBEK0pIYzREc3BnMUY4akNNQXlvcWpyd21RQmRZZWc4aVQ5ZUlRZ0MrWHplMFVGWUtwVW0vWDJRa2lTTkhUY1BpVVJuNlNRYWh1d2ZNL1pqTisrenhLSmlzZmpLNXVibWFLZVFFK3d5aTFpV2RWeXNiamFiUDNSNkxVbVNObEtwMUJXdm1hZE9qN3VvYmlJZ0VJcE9oV1dzVmZlVGNTZkJZckdJNjlldm45TGVMRC9YamlmLzJUYU1JL3oxMHhxMm4rNmhLanEzZlJjRUFZSWdnT000YUpxR2Nya01WVlU5RHdqYzdMampJRWtTZ2lDTWhEb0RYVUV4TlVVcGxoTldjTFdkU0hRdGRobWYyOWlFd05vZnQzWUNIYy96Mk4zZEhiaXRLVXVPMjdEWWJUd1pFY2Erbk0yTzJmdnh2SmxLNGZmZWVBUC80TjEzQVhSZFFOYitPWlh6V1pieldxMW0reDA0OGVWc0ZtL2R2SW0zYnQ1RVNaSlFraVRjYVRZaE9od3plVUdBU0JENCs4a2t1QVVKc24rbldoMjU3VlYrYmNSaEpSSGp5KzYwY0FlUFZ3eThNTVh2ZEJ4MlFzKzBLSW95VXB2dmhDQUl5RDQvTGtNbi8wNnZ0bWRHU3FYU1B3bEVvblBKa1dtYWUraDJ4T1hSWGVrR2NIcU9JcWZKeXlLSUN0T3d2Ny92ZUEzUDUvUFkyZGxaZW9IQU5FM1VhalhVYWpVd0ROTnJ5MDdUdEd2bXpEQ1drR1NhcHEwd09DdzB1V0c1Zm9iLzM4SXY4Y2ZDRW9HQTU1M0VnT1U5YnVlTm0waTB2NzgvYldsbVhWR1VGOTNtU0pJa29WZ3N5cVpwR2poN0o5RXdlNUlrWmRiVzFrYlVjcWRqMVJKdzd0Ky8vMG91bDd2a3BSdWFydXV1cmVxZDZIY1hDWUx3RStsMG1wejJOMVNwVkl5TDZDWUNBcUZvS3ZSbHYwcWVNdEZvRkN6TE9sNkFWRlZGcVZUcW40Z0V1S0NIT3A0eWlhcUdnbytlN284Vmh5aUtRaUtSZ0NBSXZaUDcvdjYrcmJ0bjdHdFdxek4xSzNNU2lxWVZXNTB5ZU43LytDUGI3bWEzMWwvQ2oyZHpydHUwYXk5T2tpUmlzZGlBQStmQWcxQzBkOUFZM1FlZndyd3RwNDRsRmxuSXNveTdkKytDWlZtOFBqUkFlWGZHMG9Jc3h5SExjVlBsS3kwYXcvbEV6OEp0dEQyYStGcGtHMVRIOUswRG9ZVVhvY3FOUTlPQXBta29sVXFlSndRRVFYVFM2ZlI4MnJtZEF2djcrMytwNjNwUU0zTStFV1Zadmd2Z01ycVpIOWY2N3h6T2pwc0hUbzRpaG1HVzBuMGp5ektjWEE0a1NZNE5uRjAyVkZVZCtaNnNEbDRXdzg2ZC9qYnZGcWZkcGRVSlN3Q3l4Q3RkMTN1T29HRHFNaDBFUVdCcmEydEVmSjdTUmRRUFdhL1hWVUVRbUdFQnd6QU0xR3ExVHIxZWw5RE45aU94T0U2aUhySXNLd0FtY2hWYllsR3BWUHF4alkyTmlOUGpyREswY3JrOFU2djZQbmRSTXBQSlpDYjlyVXFTaEdheitjT0w2Q1lDQXFGb0tqVE5wVFZTZ0MycFZBcUZRc0h4L21hekNVM1RwczZpOFlKc0hudnFnTFhvUENGTlI3ZkN4MGNpU21JREh6eXBvS1VlMmo0R1FHOFZUUkNFZ2NIT3BKTkk0SGtuQXA3bkhXdDd2UktOUm0wSDJOTmVpQ21IVG5lM1RzUWdOc0xnQ3N2aFhtVVhCNGZ5Uk5sQ3cvQThQeUFVN1lrSGVQbWF1MkR5MkViQXk4NzRHZmJ6bGMxTnZKbEs0Y3ZmL2pidURwVVd5YktNZDJkY1BmeTFmQjV2di9ubVROdFlCTjZ4RWNpR3k4NmVyRHlmR0lVN3dFb25CTTJsRk0xNnZKOWlrVGlqVVBSd3Y0WlBka3R1a3p3ZDNkeUVDb0FHUVJBcitYeitTMzZIMTU4V0o0UHRmeDY0aWM0dFIraTZpZllBakF3ZUdJYVpxME9DWVJoSHB5dlA4MHNwRkFGQXFWVEMxdGFXclN2QVd1bWZjWUs4MEF6bjhIazVodnJGSlR0SGtOLzB1NWhNMHp5MzM4VlpZem1KaGtXaWNyazhrZlBhZ1lpdTYyYWhVTkJUcVJSbEhUTW41ZUNIdXE0YkFGUUFMODc2UW5NaVlwcG0yeW1uaUtLb3BOTVRKM0VXT2MwTERjUHczS3ErMzEzRXN1d3IyV3oya2xmWEtjZHhydS9sdkxPY283OGxaRmxYbC95QzR6aFhWeEhRdlJqZnUzZHZJSGczWUpRVzJZWkU2T0RNTUtKYUc2Vm5UUlNrSm43VXJMbXVHREVNMCt0YU5ueUNOQXdEeldaekl2dXNsV1BrZHhjMFFSQkc5c01hRlBsMVhBZ3NoLy9oalZzQXVtVm83OS8vQ0FDZ0crTTdTa1VjeEtkNFBJNWE3ZmwzTUU1MFVvOTFxRFpCOTM2M2hzOXlITjc1eFYvRVY5NTVCMzh5VkI0M0xUR0t3bHMzYjA0ZHVyMW9ESGM4aXhEa2dLTklKRXdJUmhqUmRuakV6ZmNzM01ZQmFkcTJyWCt5WWtJUGRYd3BRMnNTOXEvaEJjMDR4cDNTUTN6OGVEUTRmUWdad0lPVGZ5dnBkUHB2TFBPNXVGNnZmOGMwemFmakh4bXd6SGpKK1pnSGJtSUF4M0ZMRy82czZ6cEtwUkkyTmpaczcrOFhpK3h5N0M0aS9lSlNVTDUxUG5BcU43dDM3NTVmOHprV2dLeXE2ck5pc1dnQUdGNEppcUJiVXJ1bzhBQUlwNXdpaXFKaWJrLzJHbkR0aEZ2WjJialgzTjdlaGlBSVA1Rk1Ka2t2Z3RHNDkzS2VDWVNpeVRsU1ZYVWZ3R2pLclFzWEtiemFpV3cyaTUyZEhWZkxzaFc4NjlaVllGcjBkaHM0QjE5RFRUekFvOFlUN0lrSHR1VlQvVEFNQTU3bkhkczlBdDFCdHBWRjVJWCtIS041NE5TS1Z4VEZ1UWlJanhyZWdxY3RpSkJ6RlU0bWswR3hXQVFBSEJ6SzBJeGowS1M5aTIxUE9yMEJOay9UK01iUC96eStVU3JocTdkdmo3aUxKdUdOWkJKZis2bWY4bDNRT2t1R2hTS2U1WENQMFJIdUFGZVBDUWd1TGU4dnRjTzRwSWZ4aERRSFhFY1dMYktOby9BeHNob0pBaUc4WGZnQTZsRHBZaXA2Q1RjdVgwTXFlbWtrRndub0NsWDcxSFNsSGpYeEFOL1p2dXNZMm41Q3Y1UG9BWUR3K3ZyNlQ4Zmo4YVd0SVR3Sm4veVhnWnZvWE5QdktCcHhlczk3M09XMk1NTngzS21VdnMyTFZxdUYvZjE5cksydDJkNVBraVEyTmpabXlXY0pDRmhvaGhldERjUHcyMGxIWVhIeWhxWWhBbUNtYzV3bDNGUXFsWWt6aEdxMVdubWFjckIrZDFHejJSd3JHSjJVYzA0MlVUaEhCRUxSNUlpbWFSWUFmTTdyRXlpS0NsWVlNTmoyMEEycnBYY3NGa01xbGZKTkhIQnFDNzNvTkdVSmUrSUI5c1NuMkJPZnVrNzRyREl3bG1WN0hjdmM4TmpLRTBCWElEcU5EblUwVGRzNjhPYlZSV2JQSmIvSkRyZnlSWjduOFpsa0NwL1dxcml5Nmw1Q3B0cGNYRi96S1ovSWlTOW5zL2h5Tm90dmxFcjQyb2NmVHBSSnRNNnkrTnBQLzdRdllkdUx4dkRuY0lYbFFMZER5T2lrcHp3d29GdGlab1k2T0NCSHp6TmF1SU5QSXNlb1BXbmdJM0YvNVA2SDBnSGUzeThoUXBBOTBlalZ5MnRnNkFnYWxBbUo2T0NUdmVyWVVzYUIxelNPOFlNSDkvRmczOU4zUE93a2VpMGVqNy9nK2NVV2tFcWw4aThETjlHNVJ3UndSOU0wbnVPNE40YnZqRWFqYzNXODZMcnU2blRsZVg1c044RkZwbEtwZ0NBSTE0RG50YlUxMERTTlVzbTFwRFVnWUtHeEZsV3RCVkFyaDhyaXBQUFloYTRNY2NJMHpRNHdaUnRtUEJlTE5FMXpMVVByNTZUejNreVd6V0hCS0JhTC9SalA4NUgrODUxaEdCYzZ5Qm9JaEtKcE9BSWdUdEt1TzJqOS9oeU80N0Mrdmo3U0ljcU9WcXVGVnF1RldDeUdiRFk3YzNtVDZyNml2akRVeEFNY3lKSm5ZY2dTaFRpTzh5eXFTWktFYXJYcVNjQmtHQWFaVE9aVXJmMGN4NDFja09jMTROL3JhMC9QUmh4ejlRWllDWVZ4M0drampCQmk1TXBBRnRLUDVWL0ZtL2xYeDI1RDc0d09xdmxUYXVsc0NVWWxTY0kzU2lYY2FUWkhYRFhXL3R5S3gvRm1Nbmt1QXFydHVOTVlEUlNQVTB6UEFUUUoxNDVKSElhUGJiT0wyaUZBREx0UHBJNU1BdytsQXp5VUR2RE5SL2NRaThWd2ZlMEZtS2FCSHhRTGtJL1VzV0hybW5HTUIzdFYzQ2s5SE9jaUFweWRSRXN0RW1tYWhtYXorVWVCbStoODArbDBqZ0RzcFZJcFcwZlJhZUJVZGdFc3YxQUVvRGRXY3hPTGVKN0hqUnMzVUsvWGw3YmNMdUJpUVZGVUx4SmpYSHhDSUJLNW95aEtHelBXYTB4YWhsYXRWcC81RlM3ZHY1MFRkNVBBTU14VkFGQlY5WWxwbXMyTEdtUU5CRUxSMU9pNnJ0TTA3V2xXRjVTZERXSU5PTHlJUlVCWElOamUzZ2JQODBpbjAxTUxSbXA3OFZhN05PTVllK0xUNThKUWEvd0NPRXRIOElKd0ZSMldtVmk4T1ZISFBRMWVDWUpBT3AyZXFGMnNYM0FjNTlqOXpFL0JTanBTSWZkbDA3TVJ4dVhSejJFSkVwRXdpYXVVTjJGcFVjbHlITjY2ZWZPc2QrTk1zUXV5L29ubzFZbEZJb3NYZEFJbDJrQTcxRDIrRG1ScDROOGt0Rm90ZkxkUElMMnoreEFVU2VMRmVBTGMwTEVxSGFtNFYzbUVCM3RWTHdLUnhZQ1RhTkZGSWszVElJcmlYNHFpK1AvcnZ6MGFqVzRsRW9tL1RkTTBKRWtTUzZYU1B6bXJmUXk0V0VpUzVGaWUxZDg1YTVuWjNkMGQ2ZkkxREVtU1NLVlNFQVJoNG9ZWUFRSHpadHBGVlFBb0ZvdUJTRFFGTkUxUFZBNWlpVVU3T3p2SnJhMnRqRnRjaGl6TEgvdXlremI3TUkvdExqT0JVRFE1UndEK1ZGR1VYK1U0enRPQWVwbkRRT2RGUEI3djJaVzl0T3cwVFJQTlpoUE5aaE1zeTJKdGJRME13MHprMWpydXRLRzNUY2RPV1BPbVh4U1NyUW5rbUl3aG9Dc01YZU12NHhwL0JkZjR5NGpTTklxcWhLTUpoYTlHbzRGS3BlTEpIcDVJSkpCTUpuME5xWjRFcHdHMjMwTFI4TVRkcTFDVWljeW5RK21zN2VrREp1ZHJIMzQ0OEhlRUlQSEM2dlM1aFpGT0dJSkI0TW1LaVR1bG90ZlNMOC84b0ZqQUQ0cnU1YnNlNkhjU2FRUkJSTFBaN0p2OG92UjRIa0tTSkhGL2YvOWZ0RnF0N3dEQXNGTW9GQXI5N1hxOS9pK3N2d01uVWNCcDRYWTl0VnFwbjRlU3JKMmRIYVRUYVVkUnpJS21hV3h1YmtLU0pNL2p1NENBZVdBMWI2RW9hdXA1V0NCNlRnOUZVUk5QdHZyQ3B2VjhQcDhiL3Q1T2NxS215aVlLbUk1QUtKb2NFY0FkMHpSRkFBdTc4cm9NY0J5SHJhMnRpUzJkc2l6M1R0eFdtM2V2cnExbnhCT3NFcWQ3Mk10SEt2YkVwd1BPRlRlR2hhRmg1MEQ1U0o1SUpESU1BOFZpMFhPTDExd3VkeVlkWlBweGFqc3EyWlJIemNLb1VIUjZEaUVxRkRnTno1cDNxbFhzRHYwdVV0RkxNMjgzWm9ieFpNV2NPQ2o5RkxHY1JCcEJFSzE4UHYvbGVTeG9TSklrZW5qTUQ4YzlwbGFyZmQxTi9BbUVvWUN6WXR6WWhXR1ljelBSckZRcVVGVVZXUTg1ZFJ6SDRlYk5tMmcwR21nMm0xQlY5VndJWmdHTGkrVVlFZ1RCbDhnUFVSU1h2blIwR2VrclEwTTJtODMxcjE5VktoVmoxbXlpZ01rSWhLSUpzV3JpT1k3N2F3RGpnMGdjQ0ZaWnVwQWtpZXZYcjZOY0xqdUtBMjZvcXJyMGx0Qnh3bEEvQjhjYW5ocmVqeDFSRkQySFRESU1NOUxsNGF4d0NxNzJlOEE5cmFQSUQyS3JxN2EzbHlRSjJUTVc2aTRDb3FiaHJlOStkK1QyRzVldnpieHRxaE5DcVRaUkNkaHBNZUFrRWdRaGxrNm52elRPT1NoSmtpaUs0bmNVUmRucHY5MDBUVlZWMVIybjV3R0JpQk53dmpGTkU0WmhPTHB2T1k0N04wSVJBRFNiVFNpS2dudys3OGx4SEkvSEVZL0hZUmdHbXMwbTZ2VjZNUDROOElYK25DRy9JeEtzc1hQQTJkQWZOQzBJd2s5UUZFVW9pcUsxV3EwZkJXNmkweVVRaXFaRVZkV1pGTTNnUWpsSUpwTUJ6L01Yd3FyTTBoRzhHRStjaUVPWEhkdW5EeU9ieDZob2g1NWZaNUtPWmd6RGVCNzRuVFYrbHAvcHh1QkUzazJrOHh1bnovcE9zeGtJUmFmQTI0VUM3dHFzRnI3RStkT3R0dlprTkNSN0FlZzVpUVJCdUp6TlptODRQZkNrdmZ4M21zM21IK3U2WGdzRW40QUFlMVJWZGJ3bUxjTENpOStvcW9ydDdlMkpNZ3hKa3NUYTJoclcxdFlnaWlMMjkvZlBsWUIyV2pBTU01ZmNVMTNYRjM3c2JlVU04VHcvTmpOcldqUk5RNjFXQzV4RUMwSWdDcDA5aXo4clhGQk0wNVRjVnBHOE1Pdnp6eHRXS1ZxOVhrZXoyVno0aTVaWFdKYkYxU2lMRnk0TFl4MURUcGlkTnNwSDNrU2lTVHMwQ0lMZ3lVcCtta1NqVWNkQnBLWnBjeW1ObzA2NUpESGlrSlgxalZMcFhMYWdYeVFlSFduNGYreU1aaUZlcHBpWjhva3NEalFGSHovZGQzME13ekJuNG9Za0NJTEtaclBYZVo1M0ROcHFOQm83bFVybHZ6Uk44MmtnRUFVc09tZmRNTVROc1h2Vyt6WXZUTlBFN3U0dVJGRkVKcE9acU5TSDUzbndQQTlOMDZDcUtocU54dHk2bWk0aUxOczk5ZEkwRFdxbzB5bEZVYjNQa21HWU01c2pXR1graXFKQTEzVW9pbktxd2g3THNvaEdveUFJb2hjdk1VL1JOUkNJcGtkVlZSM0ErVWp1RHhnaFVDbG1RRlZWZytPNHFUOUR0MVdvaTRyVk9TT1ZTcUZhclM2ZFlNU3lMR2lhaGlBSUF4ZjhsNWxMWUdZUUlrcEhNdVFqdGZkWk9BMGdGRVZCcVZUeVBBSDFFazU1RmlTVFNjZFNSRCtQQnpZU0FVN0dwMWZZMC8wdEVxR1FyVmp3VHJWNnF2dHgwWGgwcE9FLy83U01UOFRSRG9PNVM0SXZyL0hlM3Fkakg1UEw1VURUTkJxTkJrUlJoQ3pMYzgvd1lGbVd6T1Z5dDV3bUh5Zm5qMytpcXVwT0lCQUZMQXRPRTBpL00rMmNVQlFGVGpud0ZFVWhtVXlPM0c1TnZwZTlkTDdWYXFIVmFvRmxXV1N6MllrRUk1cW1RZFAwZ0dna2lpSkVVVHkzZVVZRVFTQ1ZTdlgrWHRRNWdMVmZ3L3NuU1ZJdnUyZlc3NmcvWS9RMHhLQmhETU9BS0lxbzErdEwvenM4UzB6VFBJYU5VSFJlUmZLTFJpQVVUYytmUzVMMG14ekhUVDNMbnBjejRyeGdDVWJXd0VIVE5KaW11UkFuZElJZ2VoZTVhRFRxMmxWaEpSU2VTU1RhVTJWOFVuNkVlcjNldXpDLzl0cHJJNCt6UXF1OUNDa0VRU0NielRvT2JzOGFraVFSaThWc1Z4bWQ4b3VtNFhwNjNmZXVWRjVoaVJYYkMrbXVMT05PbzRGYlB0ZmNCM1JGb3Y5TGVROC9xbFpzNzMvMXNqK2k2UWNOKysxYkpCS0ozb1RLeXZDd09Ha0JqMHJGZlJ1VFlFMVc0L0c0YlZLM1ZXWldxOVcrRGdTNVFnSExRU2dVaWdEZzgvbjhOUUNuMTRsZ0FtaWFIaEFHaHRFMHJlZWlYbVp4UkpabGJHOXZReEFFcE5QcGlaMHcvYUlSMFAxY3JJWEM4eVFjbWFhSlFzRythNlUxcnJUK2YzaE1PWHpiV1RpT3JQYnl5V1FTbFVwbHJBT25mNnhzelhmTzBpbWxLRXBQN0FwS0grZExOQm9ObmZVK0JNeE9JQlJOanloSjBqMEFVODhzRmtId1dBWXNtL0l3aXFMMEJnLzlLNGU2cmtQVHRJRy9aM0doV0lGNWxoakVNTXhFcTJic0RDS1JaaHpqTDNlMjBlcDdmNElnMkY1a0o4bDN5dWZ6QzUrZEVJMUdiWVVpUHdlTUFzdmgrZ3N2NHQ3alI3NXRjeEt1c00rRFR0OUlKdkh1U2FiVTI0VUN2aFlJUmI1aWlVU1ZaNjJSYkNvQWlCQ2tMMEhXeFdkTkhMbUVXRHM1REN5c0NaTWZFQVNCUkNLQlJDTGhPRENYSkVrc2w4di85OEJGRkxDRThBQnVFUVJ4NitUL3o0Ulp4aGMwVFNPVHlTQ1JTS0JlcjAvVjFNTlBDSUxvdFJRSHVtT3JTU2JVeldZVG9paU9QZStNWTFoZ3N3UjBWVldoYWRxNW5PU2Jwam53dnJ5VTQvV0xNQ3pMbnBvQVE1SWswdWwwYjZ4dGlVRDlUdnBGV0FqWE5LMTNERXVTdEZRVkNnRUJpMEFnRkUzUGtTekxId0g0bVdrM2NGcTI2UE5LdjlBeDdvSmtpVXI5NHRJd1YxZ09GRW1DSlZiQVJpSmc2QWllSG10NFpoN1B0SitSOFBRL3MvYy8vbWhBSkFLNlF0RXdvaWg2cnZHUHhXSUxMeElCem9LUTN3UEV6MjlzZ28xRXNISE5lZFYzWHNTWTU5K0RsVXYwYnEyR3R3c0ZmUFgxMThIN0pCaGNkQ3lSU0cyM29SdkhrSTlHUmZvYzUwL1oyZmJUUGRmN3M5bnMyTUc4S0lxTzl6RU1NeUNjMjExSHJNbmV1S0RaY3JuOHgvVjYvVjhFQWxIQWtoSUJjQzBhamRvNmlrNURUSWpGWWtpbjB6TnZ4eEtNQkVGQXRWbzl0Y3dlS3lDWTR6andQRzhyVWpjYURWUXFGYytMTktacG9sYXJvVmFyVFZXU1pnZE4weU5sOHBaNFpJM3RkRjIvY0F1d1Z1ZGZTMkMwd3E2dGZKOVpjU3BCQTdwaTBlYm01c3l2NFNlV1kwaFYxVUFZV2dCQ29kRDNnMERxNVNZUWltWkVraVNkNHpocS9DTkhVVlUxQ0xRK0pTeGh4TXNLaHdKQTZSakFrVCtEVEdiS2kvWDNIOXpIbythVGdkc3NkOU13azVSakxXcTUyU1Q0L2J0NU5iM3UyN2JjaUpvaFpIUVNCTHFPM0ZnMGlROVJCTkROSnZwS1BvOTNhelcwZEIzZktKWHdsUVViaEMwamltbmlmLy9KcC9pNHZvZDdsVWVRdGFQZWZSR0NSQ3A2Q1F5eGdyLzV3c3N6djVacUhMdVduUW1DNE9rYzVDWVVKUktKbVZzQm41U3AvaGV5TFA4d0VJa0NBcVlqa1VnZ2s4bjR1czFvTklxTmpZMkp1cFpPZ3lBSTRIbmVrd3NsSG8vM3V0Sk9LbUJaSldtV0dEV0x5MmdZTy9FSWVMNHcyQi9JYkpybVVuVDJtaFZMS0hNVFNmczdwOWs1Z2M2eU5Nd3JtcVpCMS9XZUdIUmVYV2JMakZWR0diRGNMUGFaWUxFNUF2Q25vaWorSE1keCtXazNJc3Z5dVppNEJ6aERoY0lUUDJlM1ViY3RoM0lxV1psazVjaXZzaGEvdVV4U2lJUkpNQVFCSmt5QXVYemthTU5meGlENGNBY0RJaEdBZ1E1Yjc5UnErTWJQL3p6ZSt1NTMwZEoxZlBYMjdVQW9taEhGTlBFUC8rcUgrTmNmZlFqOXBCenN5aXFMaldzcDNGeTlpbGNpdkcrdnBSckgrTjJQditkWWRzWXdqQ2Zud2JnOGpsbXZGNUlrUFNzV2kvL3JvS05ad0RrZ3dqRE1OUUFqanFMKzh2TjVzTDYrUHJOZzYwWXFsUUpCRUw1bGxWRVVCWjduSVFqQ1ZJNWlraVNSeldhbkVvdUE3bGhYbHVXZXkyaHRiVzF1cFZKZUZnWU53eGh3SDdtNXpaZVpSU3NGbXhUcmUrb1hoZ0pCYURsWWRMRXh3QnZCdHpnOUlvQTdvaWorUlNhVG1Wb29Fa1V4RUlxV2hISzVQT0RjNFhuZVU4Y3d5cUVOdWhPYWNZd2ZQTGcvdWgyS2NoeVk4anp2YS9qdGFSSmZvYkZHTVNDR0JEVTJzcERacEZPejJnNE5pRVFXTDNGWDhGQTZRRXZYOFgvNjRYMzh6emUzOE5zZjNzV3VMT09ydDIvanE2Ky9mZ1o3ZXo3NGUrLzlCYjVaK0JnQWNDMTJHYmV5THlISlg4RktHM2hKVy9IMXRiNzU2QjZxeWpQYis2endlQzhESjdlUzVGZ3NOdlhneXpBTTFHcTE3OWJyOVgvZTZYVCsyVlFiQ1FoWUxIaUNJRjREOEJxR01vcm02Unc1Q1lhZjIvWXQxdGJXd0hHYzV5WVZkc1Jpc1o0amFGWklrc1RHeGdaS3BkSk1iY1F0MFFqb2RvcTF4S3ZUTElrblNYSkFPRmxHRWVVOE1Td0lLWXB5YXVXWEFRRUJ6Z1JDMFpSME9wMGpBSHVoVUtpZ0tNclVGemkzRW9PQXhVSlJsSUdWREZtV29hb3FzaWZaTW43eGd3ZjNCOHBqTE53czdqUk5ReENFbVFadnAwMFlJV1FaRml4aFAyRlA4bGNjbnl0SmtxZUJuZGxwandoUVowV2tiYjhmVitnb0hrb0hBSUIvVXlyaWwxKzhqZ2hCNHNnMDhMVVBQOFJYOG5sa2cwSHNSTHhUcmVLdDczNFhkMDkrRDEvY2ZCVXY5MlZRclIyVHRxTGR0R3cvM1hNdE9jdG1zNTZ2RVc1QzBiU1RQY013VUNnVS9qdFZWVzhEQ0Z4RUFlZUZDRTNUbHFOb2dIbTVRMkt4bUdzWHMyR3N0dStTSlBVV21uUmRCOC96bnNyV290RW90cmEyVUN3V1BUc3BZckZZcnduSVBGYjFyVEdQSCtPTmZ0R0lZUmhFbzFFSWdyQVU1VThCazJObENQV1hCZ1lPb2VYSGFVek9zdXdyWjdBN0FUNFNuSVZuNTdEWmJINFVqVVpmZFhzUXk3SzJKMFBUTkFOWDBaSmc5LzAxbTAwa0VnbmZWc0trSTlXMlhUdkxzbU9QRWE5Q2tWZVJaWjZFRVVLTzRjQ002UWpIMGhGYjBjd3JhdHNFU3l5R1VPUkVLdnE4WS9uMjB6Mzh6UmRleGkrL2VCMy82dE1mb2FYcitNbzc3K0NkWC9xbE05ekQ1ZUx0Ky9meEQ5NTlGd0JBRVNTKytNcXJXSThuZXZkSHpSQXVPWWgyMDNDZ0tmakRoM2NkNzA4bWs1N1A3OWFrMGc0cm9IcFNKRWs2S2hhTC8yL1ROSGNBL0Q2QVlGUWVjRzZ3dW5NTk0wbHUzeVN2NVhWaHFORm9RSlpseDJ0eXZWNkhKRW1lUkdRck5Oak55VE52Y1dpWWJEWUxSVkY4RFkrMmdwbXQ5MGhSMUlCNHRLaGw4d0hQc1J4QjFuK3QvMWRWOVZ5VzlnVUFBSDRJNE0yejNvbUErUkFJUmJQemIwVlIvRndtazNFVmltaWFkbFROOS9mM0E2Rm93VEZzMm1sYmpMdjRUZUpxdVZNcTJ0N3VaZVhSYW84NmJuVm1IZ1BvU2NreTdGaVJDQURZQ0dNckZKMm5qb0V2Y2MrZFUwZW1nZmYyUHNXdnJMK0tEeG9WUEpRTzhHNnRocTk5K0NIZXVubnpEUGR5T2JqVGFQUkVJcGFPNEdkdjNJTEFQaGRGd3gwZ2RlenZaVTgxbkxzaVR1bytHT2NtbW5RQzJHZzBubFFxbFcrWXB2bi9BdkNnMCtrY1RMU0JnSUFGeDBsa21VZnBXVEtaZFAwTkdvYUJack9KZXIzdTZmVlZWVVdoVUVBeW1mUlV4cDdOWnNFd1RLL00zRTl4U0JSRktJclNhMEVQZEIwKytYemVjZHU1WEE0N096dHpFd0Fzb2FIVmF2V0N2ZnZGSTQ3akF1ZlJLV0pkbjRaRHdnRUVRbENBTGRGb2RQV3M5eUZnTm9LenF3L291aTZLb3FqeVBPOFk4YzZ5ck9OS2tDekxtS1Y4TFdEK3pMSnE1dFhWNHVRbVNpYVRubytOVkNxRlFxSGcrcGl6dHZtdVVZeGp1ZGt3MS9qTDJHczluZk1lblE1SDRUYUEwYnlxRjFaanZad2lBSGgvdjRRYmw2L2g3NzcwR241Nyt6MGNtUVorNjd2ZnhadkpKRzZkUWk3R3NuS24wY0NiMy9vV2dHNGUwYy9lZUEwME9YaWNYVDBtUUhYOEt6a0R1dC9memN4bjhGZWxUMGJ1bTdRamt0dHZNNUZJT041blI2bFUybTQybS84T3dPOEJxQ0J3RWdXY1E1d2FPZmdkWnMwd2pHTXVrYVpwcU5mcmFEYWJFMCtXVGRORXBWTHB1WXZHaVI1V2JoRkZVVE1KSklaaFFKYmxudlBKYnI4dEljdEpMS0pwR3NsazhsVHpFZTNFSTJCUVFBTGMyN29IUE1jcDFOdHlBcG1tNmF0ckxPQjg0blRlSTRnRnQvUUhqQ1VRaW1iSDZuNzJCcy96amt2KzR5NVc1WElabTBHSG82WEVyeGFRZG00aWdpQW1taUJ5SElkWUxPWWFBbmlXNVk0cm9URFdLTytmRnh1eGYrd3lEbHdPd3gzSCs3N3k4bWZ4Mjl2djRhbmVmVjl2Zi9JQmZ1dkdsL0NsYTUvQm56L3VDaEJ2ZnV0YmVPY1hmekVRaTJ3UU5RMXZmdXRiYU9rNnJyL3dJajYvTVhvdWpab2hDT1prd2ZKZXFIZDB0SVZMUUdudzltbEtKWndjUlJSRmVSYUxOVTFEc1ZqOFFGWFZ2d0x3QndBcXkrNGtDb1ZDRVR3UEszNGpuVTcvcjJpYS9zeURCdys4MjdVQ3ppVk9wV2QrT29vSWdyQVZmVFZOUTYxVzh5V3JwOVZxWVh0N0cvbDhmdXh2ZmRwRlJjdngxRi9lTlE1VlZWRXNGaDNIcDJ0cmE1QWs2Y3lEaC9zRkpBQURJcElGeTdLOS8rOGZreE1FTWRlRldyZnR6OXNkYlpXQURiK2U5WGtGQlBpQm9pZ2RudWRIVnVHaTBhaS9LM01CcDA0Z0ZNMk9DT0JPczluODc1TEo1RTJuaVFGTjAyQVl4bkdDSzh2eVFtVEhCRXlHbC9hdXFtbU9kZEJveGpFZU5aNk0zTzYxVTlMd2M3YTN0MTFYTmh1Tnhwa0lSWk9JUkFCd2hiWC9QU3lqeGJrZEFwNkYyN2I1T0F5NWdsOTcrZlZlZS9VajA4QnZiNytIWDMvbEM2Z2VQc05ING40M3IramRkL0hPTC80aStDQ3JZUUJMSkFLQVI0MzZpRkEwajVJemkrMjJiRnVhbWt3bUo5cU9KRW1PQTNldjI1SWtDY1ZpOGZEazkvSC9CZkFBNThOSnhBUDRUWUlnMkd3MisvZDRubCtyVnF2Zk9ldWRDamg3bk1aY2ZrMkNLWXBDTHBjYm1laFhxMVZiTVdJV1ROTkVvVkNBSUFoank5d21RVkdVbnVOcEdtUlpScWxVY3N4bjhqTG1XQVNHbTVHY0Z1dnI2N1pDa2FacFl4M2dBUUhMREVFUUNJVkMzKzkwT3A4LzYzMEptSTdBRWpZam5VN25xTlBwN0FGNFVxL1hiN3M5ZHB3enBGUXErYmhuQWFlQmwxV29OcHlkSkJhUEdrK2dtNE9UVFM4QjFuYVFKRG4yV0d1MVdyNWI4OGV4RWdyanlzcGtBb2ZnSUJRQjNrb0wxQVVidUVwRTIvRytGMVpqK1BWWHZvRElTWGJUa1duZzl6KzVqVjlldjk0THZMN2JiT0xOYjMwTDRpbC9kNHZNVzMvNWw3M3Vab0M5QyszYUhFck9BT0IrK3hCMTZLalg2NzNiQ0lMQSt2cjZ4RzZpYXJWcWUvc2tJZFlNdzREbmVXOTFuUXRNS0JTaVFxSFFsVkFvbEFxRlFpOEMrSWNVUmYxRVBwOS9pK2Q1Szh3bFdPZ0tzTVd2YXh0QkVBTWlrYVpwRUVVUkgzNzRvZThpa1lWcG1xalg2eWdVQ3E3WmlPTVFSUkVQSGp6QXZYdjNzTE96TTdQcnFkbHNPbmJwSlVrUytYemVzUXp3SWtOUmxHUEpZdEQxT09DY0VKRWt5YmJyVEdCK1dINENvY2cvL3F6WmJQN0liWURDODd6cmhWVFhkWlRMNVhuc1c4Q2M4REtCTXp2TzRvREZnNzNSU2VJa0liakRKQklKUjB1K3hid0d1azVNS2hMMW5yZksydDd1WmNYWWkwaDNta2hFRzZiTFBnMkxSVTkxRmIrOS9SNSsrY1hydUh6aXhnckVvdWZjYVRUd085dmJ2YjhwZ3NUbmh0eEVuQmtDUDRlU3M4T09pZTJPakhLNTNQc3RFUVNCZkQ3dk9ERndRcElreHhYdVNZSnFTWkpFTnB1bGNybmNkWUlnL21NQS94Q0EvUTlvc1dFQmJBRDRMSURmaXNWaXY3UzF0ZlVmRFFuemtUUFpzNENGb2IrVXFCKy8zRVQ5SXRIKy9qNjJ0N2RSTEJaUHBXUkhWVlhjdlh2WFVVQzJRMUVVVkt0VmZQamhoeWdXaTJpMVdyNldhWmRLSlVjUkxocU5ZbXRyYSt5NDQ2SWhDSUxqZlg2VUxBWUVMQUE4N0FJNGNiNGF6MXhVQXFISVA0NU0wM3hjcjlkM25CN2d4ZWxScjlmbjNwWEtNQXhJa2hUOGdIM0FpMXF1dHQxZExacHhQQkxZekxMc1RFbzhTWkpqeTFXYXplYXBIZ09YeWVrR2tFNDVSWXZRdlcxUzJpRjNWeEhRRll0KzY4YVhlc0xRa1duZzdVOCt3SmV1ZlFiWCthNEFjYmZaeEswLytpUGNhVFRtdnMrTHpGdmYvZTdBMzlmVEx3NjQwRmJhUUVxZmovSGtMNDZidUh2dm81NmJLQmFMNGNhTkcxTmxYZXp2N3p2ZU4ybUlOUUR3UEIrOWNlUEdyN0VzK3pxV1NGQUpoVUtSVUNoMERjQkxBUDZuQkVIOGczdysveHNiR3hzL2FTT1dMYjF6S21BKytGVUN4WEVjRE1OQXFWUTYxY0RtZm1xMUdqNzg4RU5IOTRra1NTaVh5L2p3d3creHM3T0RXcTAyTnlITE5FMFVpL2FkV1lGdUdlRE5temVSVHFjRHdlZ0VwOFZFUlZHV01tc3hJTUNHaUN6THo1enVETXJPbHB2QXV1MGZJb0N2MSt0MVhSQ0UvOHhwc3BCS3BRYmFqOXBSS0JTd3RiVTFjZW5DT0t6dUZzT3JHQlJGRFZ6VXJUd2xxLzFvZ0gxbmxWZ3M1c3UyN2JLSjNGYWh2QktQeDlGc05sMXI4Y3ZsTXE1ZnZ6N3phNDBqRWlaQWhhZHpkVnhoT1R4cWpuNUdpNTZINEVTVGJJOTF1Rnloby9qMXJTL2c5eis1amFyeURFZW1nVzgrdW9mL3hlWnIrSi9sYy9qZi91RDcySlZsdlBtdGIrSHROOS9FbHgyeUk4NHozeWlWOEc2Zks0NmxJL2p4Ykc3Z01hbGpFZ1Q4THptN2Qvd003OS9maHFxcUlBZ0M2WFI2WWhlUmhhWnBqa0d3L1YxOEpvVWtTWEFjZDEyVzVXVzZ6dk1BYmdINE95ekx2cExMNWI0WXRMNE9jTUpwak9UWElrSzFXaDA3WGpzTmRGMUhzVmdjV0VBeVRYT3FMbXV6b3FvcUhqeDRnSTJORGNmSHJLMnRZVzF0RFpxbTlkeVNGOUU5NDlhRTRDSitIZ0hubTZCNzkva2tjQlQ1UkY5VzBYNjVYUDZHMjJPejJheHJDWm9WYU9qSFlNY3dET3p2NytQRER6L0U3dTZ1N2NWSjEzWElzdHo3MTJ3MlVhbFVVQ2dVY1B2MmJUeDQ4TUIxeGZzaVlIZnk4M3BDMU52dURwSURlZFRWNDFmUXRGUDRwSVdxcW1pY2dpdUZKYWFmN0RrRldudjVmZWhqM0Z5elFyZERpSnJkZnk1TnpRYlF3aDBjaHNlWEkxNmhvL2oxVjc3UXl5Y0NnSDkyL3k1S2tvVGYvcW1mQWdDMGRCMi8rdTF2NDYyLy9Nc0xWNHIyMWwvKzVjRGZ0NFpFb3F2SEJGWnRnc05ucFdWbytPT1Bmd2hWVmNHeUxMYTJ0cVlXaVFDNGxodFA0eVlhSWdyZ3BWQW9kTzJrYzloQzRaQkY5SS9TNmZTWE56YzNBNUVvd0JiTGVVWlIxRFhNMFRGWHE5WE9YQ1RxUjVabDFHbzExR28xMU92MU0xc3NhYlZhbnNhRU5FMGpIbzhqbTgzaXRkZGVRektadkZBNVJrN2pPS3Y3WEVEQU9TRUNZTVZwVEI0S2hiNS91cnNUNENlQlVPUS8zNUpsK1dOUkZCMXJlcUxSS05McHRPdEdkRjJmU1N3eURBUFZhaFhiMjl1b1ZDb3pXWkZiclJZcWxRcHUzNzZOVXFtMGxDVS9aOG54bUl5aVlhSElTeWMxcjlBMFBiWUVyVCtJZDE2c2p1bjY1c1lzbmM5MEQvbFEwOEtaSWVTMEZXVDE3citYajFadzlaandKQmlKWThyUExCaHlaVVFzK3QyZGUvamFoeDhpUmxINHZUZmV3RHJMNG5lMnQvR1ZkOTY1TUdMUjIvZnZZN2ZQS1hkbGxjWEwxNTVuZW5GbUNGZU4rVXhJL3VVblA0UnFIaU9kVG1OemMzTW01NmRiVzJtQ0lHWVNvQUNBb3FnMUFMK0Jya3VIbjJsajg4SEtJdnBIQUg1TEVJVC8wZGJXMW4rMHRyWTI5bzJicG5rZXVya0ZUQWVQN2pGOUN6YkhkVkJXUDM4cWxjcEVpMHdrU1NLVlN1SEdqUnQrQ09CTGdkUDdGRVZ4YVIzUkFRRTI4QUJVWGRkSFJyOUJWY3J5RXdoRi9uTUU0TitVU3FYLzFxMWpSVHdleC9yNnV1dUdMR2ZScEc2ZVJxUFJxMVdmOW1Ka3RXZU54V0pnV2JaWG10WnNOckd6czRNSER4NmNldGVzczJZNE9IT1NqaFZ1enBiaGZDSy9yWnVwVk1vMUwwQlYxYm1MZjdNNGlqaUhqS0xUQ0JSMVkyMm8zVHFCcmpqeGtyWXlWaXhxa1czb0lXOFdKRXNzZW9tNzBydHRWNWJSMG5XOFU2dmh6dC81Ty9nL3Z2NDYvbVIzRjlrLytBTjg0NXgzVHhRMWJTU2JxRC9BT3R3Wi9XNzg0cStlbEZFelZPUnlPYXl0clkxL3doamNnbXI5S0QvbGVUNUtFRVFXWFRFbWZlTGVPZlB3a09Fc29sZ3M5ak5iVzF0dlpiUFptMTVGY2tWUmR1ZTZrd0VMeDlCeGs2Y282a1YwWFhNQlowQ2xVcGxZbENOSkVwbE1CcmxjN2x6bkdNVmlNY2RGaEtEYldjQTVJd0xnR21CZjU4OHdqSE9kYXNEQ0UvaTYvVWNHOE1BMHpaMWlzZmlOemMzTkx6czkwRm90M3QxMUh1K2FwdG03R0djeUdkZlZhMG1TVUNxVlBFMmdyWmJMTE1zaUdvMGlHbzNDTUF6VWFyV2VKZGF1NjlaRlhxbWphWG9nNzhkTHJYN3ZzVzNUYzBiUFBLeloyV3dXaFVMQjhYNVJGT2RXV3h4R0NFUm9OazM2V3V6eWlLQjJsa0xSU2h1TzdkYXBUZ2haamNSanlvVG1vaGc5SVUyODRGSFFZTWdWZk9YbHorTHRUejdBUSttZ2QvdnZGd3JJY2h5Kyt2cnJlRE9aeEplLy9XMzg2cmUvalY5Wlg4ZFhYMzhkdDJaMHBDd2lYOXZlUnF2dnU5OVlTeUxKUHhmUnNocnArTjNNZ21vYzR5OE85MzNMOUZJVXhUVS96STlWOTVNdWFEOVdMQmJmUURkSEx3emdBWUFEMXlmT0h4N0FiN0lzKzVOcmEydC9nK2Y1WmV6TUZuRDY4T2k2aVBJQVhxQnBlaFhCT1BiTXNCWXpyWVhGU2R5VlBNK0RZUmlVU2lYWDgrQXlRQkJFYnl6TmNkeFlGNFdUaXpRZzREeVNTQ1N1aEVLaDd3ZWgxc3RKY0lIMW1VNm5vd000Q0lWQ3Z5L0xNbFVxbFJMWmJQYW5uUjRmajhjUmpVWlJLQlJjM1QrdFZndXRWc3YyZ213SlBPTktpQ2lLQXMvelNDUVN0aGQwYTZXSDUzbVlwb2xxdFRweTBidklOa0tXWlVmcXlsdXRGdTdkdTRkOFB1OWFMblpvSGlNMlpkY3ZQK0E0RGl6TE9nN0lSRkcwRlFiOWdQRkIrR0lqRWNCbWJHVVlodXZucnM3SjNyMHlSb2lJZE1MSWFpR1VhTU5STEdxUmJmQm0yM09PamlVVy9lN0gzME5WZWQ1ZzRwL2V2bzA3alFhKzl0TS9qZExmKzN2NDhyZS9qVC9aM2NXZjdPN2kxL0o1Zk8ybmZncTh6OEg0WjBWSmt2QlBiOS91L1UwUjVJQ2I2T294Z1VoblBrYlpmL2VzZ21zWjk1TGhTWERMSm5KYmpaNFVudWNqdVZ6dUYwcWxVc1EwelNLQS84K0pxMGpzZERwSHZyeUlBeWU1U0R5ZTU4ajhFb0RWV0N6Mk0ydHJhMjl3SEhjK0RzeUFxYkE1UGlJVVJmRWN4MFdzSUdDQ0lNQXdERWlTeE91dnYzNE5YYUhvUlFDcjZLNWlqMlFVTGJ2d3NHdzBtMDAwbTAwSWdvQjBPdTI1ZEo2bWFlUnlPWlJLcGFVVFQyS3hHRGlPQTgvekU1MnJML0ppYThERjVLU3h6aXVCV0xTY0JFTFIvSkFCL0RmTlpyUE5zdXhMOFhqOG10TURvOUVvdHJhMlBLMnNXQmRrbG1VaENBSklra1M1WEhaMVZ6QU1nMFFpWVp0M1lSZ0dWRldGcG1rUVJSR3lMQThJVnJWYURSUkZJWmxNenB5WHNlendQRy9yL2xKVkZkdmIyOGpsY281Q1dzczRSc3JqV0dKZVpXQ1pUQVk3T3p1Mjk4MHpzSk9hMFUwRUFLeEQrWm1xcXE3aVpSc2VFNmJuQUlGdWh0SGpGUU10MGo2VDZBbHBZbFgzL3ZsWVpXakRZcEVsREwwbUNIanJ4ZzNjRWdUOHp2WTJmcjlRd0RkS0pieDE4eWJldW5GajZRV2pyN3p6enNEZjE5TXZnaWE3K1ZkMGUzNjVSSisyVlJ6RzdJL0JhYkE2QVRuaFIxbGJQenpQTXpkdTNQakZZckg0dml6THF3RDJBSHo5NUwvemhBZndtd0I0aXFMNFJDTHhKWjduMS8zdTZCbXd0UEFBYmhFRWNlMWtFZXRhTkJwOURWMEJ5QTVMV0lxaU8zNk5vSnR6RmJBQTlBdEdYaDFHSjY1SEZJdkZoUmI0cklWV1N4eWFsb3NXMlJCd2NUakpLTEpkUmMxbXM1ZDJkbmFFUUN4YVBrS2R6dGxOcEM0Q0ovWDB2N20rdnY0YjhYaDhiT2lFS0lwamhaOUpTQ1FTQXhjMTB6U2hLQXAwWFllbWFSTmRtQm1HUVRhYnZkRHREeDg4ZU9DNjhzV3lMTExack8wQTZXWG1FaGlicko0LytlQzdPRGg4L2owUUJJRWJOMjc0Rm1qZFQ2bFVjdXkya2MvbjUrSVlXNk1ZckZHelRiSnI0Z0grN083dGtkdTk3UE9Qc1ZkYzc1K0djQWQ0K1dqRmMrdjFKbUZpbjdKM042MXI1TVRkdVZUakdILzQ4QzQrRXUzenkySW4yUSt0b2ZQSXIrWHorT3JycnlNN0oyZmcyL2Z2b3lUTHVOTm9RTlIxWkRrT3R3UUJiOTI4T2ZPMnYxRXE0VmUvL2UzZTN3UkI0RmQrOHFjUm83dUdnbWsrUnk4ODdSempPKzBESFBzb090Ni9mOS94M011eUxEWTNuN3VrSkVsQ29WQUFSVkVRQkFHQ0lNemtOdEkwRGJWYTdaNG9pdSticGxrQjhCNjYyWHJpeVg5aC9UM09jV1RuQ0RuNSsyOENBTU13TjNpZS96elA4K3QrWHpkdTM3NzlmK2gwT3YrNXJ4c05tQ3NuVGpZVzNlT0VKQWppSlVFUTNrd21rOW1UNjkwMUFHNUNrU2R1M3g2OVZnU2NQc2xrRW9sRXd2Tlk1dDY5ZXd2VlpjNFNod1JCOEczYzZ6WUdDd2hZWmlpSzBtL2V2T2xZT3FGcEdvckY0b0dxcWc4Q3NXaDVDSVNpT2RNM2tQN0g2K3Zydng2UHh6M05tQnVOQnVyMStrSmROSUh1NU96V3JWdG52UnRuaHFacDJON2VkbjBNUVJCSUpCSWpwVnp4RlJvcGVuWGs4ZTk5dkkwSCs3V0IyNUxKNUZ4S3dkejJQNTFPKys1a0FQd1JpcVFqRmYvNisrK1AzTDYrdmo3VzZlWWswTTFLU2lmQW05NGRMRWVoTmtxMGdmYVF0aFExUThqcTAzV0ZLejVyNHB1UDdnMjRpN3p3UmpLSnIrVHorSEkyTzVYTDZJK3FWZnp2Q2dWSWt0UVRudDNPVmVzc2kwMUJ3RS9GNDhpeTdNU3ZLMm9hc24vd0J3UENWektaeEJkem0yQ0pGWEJtQ0prcFA4TngvSm5aZ0FqbnhnU1RvaWlLbzdNUEdCVS9xOVVxYXJYQjg0TmZ2MVZKa2d4SmtpUmQxNThwaW5KZlZWVXJ5RXdFOFBWT3ArUHFPTElXUWdEd0JFR3NNZ3lUalVhakwzTWNsMkJabHBwbmUvdEFLRm8rUXFIUUZYU0QxYTh4RE1QbWNyazhUZE52QU1pZVBHUlllSnlLUUNoYUhLdzhUQzhsYVlaaG9GQW9uT200MTlwZlFSQjhYemdiZCs0UENGaHlqdkw1Zk1UdGQzTVNsV0xXNi9YYmdWaTBIQVJDMFp6cEY0cnkrZncvNGpodW9wR3pvaWhvTnBzUVJmSE11endCM2Jyc2NhSGE1NTFHbytFYVFHNHhYTElYUmdoYnE3R1JZT2VQS3J2NFFYRXdhSm9nQ09UeitibTR0eFJGUWFsVUdobU16VXVjV28rd3Z1UXovZDY3Zno1eW01ZDlmb25od0JMK2l3alRDRHhPWWxGYUkzRnBCamRNOFZrVEh6UXEySDY2aHlQVHU2Z1JvNmh1Q0hZMmk2LzB1Vmo2S1VrUzNpNFVVSktrM3I5ZEgwb0VYaE1FZkRtYnhadkpKTjUwK1E1TGtvU3Z2UE1PM2gwU1MvTDVQUDVHc3RzNWN1Tm9aUzRCMWo5c1A4Tzk0MmUrdXZ2Y1ZwU0gzVVNBY3diZHZCeWVKK1hJR2dBVGdIM041SFBDQUlpenlCb0toS0xsb2M5SmxBWndReENFbDlMcDlEV1NKRGZnZzROb21FQW9XandJZ3VpVnBMbWRUdzNEd1BiMjlxbTNqMmNZQnFsVWFxYXlNamNrU1VLeFdEejE5eFVRY0lvOG9pZ3FmdlBtemJHRGtwUHFtYkt1NjdWQU1GcHNBcUZvemxncnJzbGs4dStuVXFuMVdiWjFtaGNhaG1GQUVBUTRqb01WS25tUlM4NkdzVnZsZDZKZk1McE1Vc2hFQmlNVm5Od3lETVA0MW1GcEdMdjl0NXVrK29GZlFzMmlDVVVBOE5JUk9YRjRzcDFZdE5JR1h0SzhsN0k1Y1pWWndhMzRDdjVONldHdi9PdE9zemxTZ3ViRUc4a2tiZ2tDM2t5bDhPVnNGZ0R3NXIvOXR5TWl6VEFVUlhscWRhenJ1cTNndlg3aU1ucnI1czJSc3JpdmZmZ2hmdXU3M3gxNWppVVV4WXl3NSs1eGsvRHY5NHA0LzZBQ2dpQThkVGIwd2poSG9sTXBwYVpwa0NRSmxVcGw0UHhQRUFTeTJlemNKamVMaWlSSlJxRlErTThDb1dnNTZITVNiU1NUeVZ3cWxjb0RlQVZkNFlqSGpBNmlZZHhLT3dQT0ZpL25MS3ZjOWpUMlJSQUV4d1l2ZmlCSkVrUlJITnRzSmlEZ0hGQUZFQlVFNFZJMm0vVTBNSzVXcTUxNnZmN1FOTTFtSUJndEprR1k5WnpvVzBINyt3ekQzSnBWSk5JMERhVlN5VkVrc2lacVRoT3hmcXd1SXNQZHpBaUNDTVFnajZSU0tSQUVnVXFsTXZheHVxNWpkM2NYdFZvTmdpQWc4dUpMdUJwNS9qbHpFUVl2Q2xmeHFQbGs0SG1xcXFKYXJjN0Y1VVA0MElsc0VmQWltaDZheHR5RUlwRnM0OXJ4WkVKUnBCTkdSaWV4U3o5My9oeUhnUU95UFhNWTh4UDFHUCtoYXVETHVVMzhiMTU3RFJ4SlF0UTBmUFgyYmZ6T21KSkpBSGkzVnNPN3RacW54MTZtR0h6MmFocXA2Q1hFbUZVb1ZOZzJ4K2NRSmc0N0p1cm9ucGNNdzRBb2lsQlZGYzFtRTZacFlsZVc4VHZiMjNpN1VNQ1hzOWxlcDdaM3FsVzhVNjNhdnI0VkNzcWIvdWNTSFhaTXZMZjNLUTUxcmZkYWZrd2szTVJsbG1VZFN4MEtoUUowWFljZ0NCQkZzWGZjbTZhSllyRTRjYmVoYzhKN1o3MERBWjZKQUxnbUNNSkxKeUpSSHNCTEFHd0Q1RVJSN0pXMTJoR05Sc0V3akdQWk1VM1Q1MFlvWWhnRzBXajAzT1RhV09lc1JDS0JUQ1pqK3hpTzR5QUl3dHplTTBFUVNDYVRNNWZ2S29vQ1NaSjZEV0VzVE5OY3VOaUlBTzhRQkFHS29vTHZjSElpQUFyTlpqTUg0TElYc1NpVlNvVVNpVVN1VXFtc2gwS2g3d05BSUJndEZoZHFWSG5Lc09pdW9MMlF6V1ovY1pZTktZcUNZckhvS0FERllqRmtzOW1MTmtrNGM5YlcxaENOUmoyN3ZIUmRSNjFXdzM5ZnIrTXo4UVJ1WlhQZ1RycDV2Wmk0TmlJVUFkMkpKVUVRdm1jSDJRbUNpMURhNklSc0h0dmVQcThPY1Y2Und1MnBhaVpXMjJHczZjUkF3UFdURlJNeE16eHpDWlZtZHZEdlNpMzhRZmdKbUVzaHZNNnkrTWV2djQ2djVQTjQ2N3ZmSGVzT0dzZXIvQnArZWYwNnJ0Q1RpOHBQTzhjNHBFeUlWM2w4MmxHeHgvTW9sOHU5QVZsTDEzdWQybTRKQXQ2dDFYckIzTVBvdW82Vk51WVNZUDN2bmxWNkloRUFYMFFpVGROY0p6NU9reWJETUhybkY2Zm5ONXROU0pLRVhDNjMxR0svMVgxVEZNWGViVFJOSTN2aWJyTlFGT1h3ZFBjc1lFWklobUhZZERwOURWMG4wVXV3NlZibXRabUhMTXNnQ0FJMFRkdUtxd3pqWDRmQ3M0SmhHR1F5R1hBY0I4TXcwR3cya1V3bWUySDJIMzc0NFVKZnM4ZFJyOWRCVVpUajJDYVJTUGd1RlBsUlhxWW9DdXIxK29CZzd5Y0VRUVRsYVF2QTlldlhsLzQzZGdaWTg5NUtzOW1FcG1sc0pwT2h4NDFKVGpvZmtvbEU0blBsY3ZsWjBCbHRzUWlVaGZrUkFmQ3J5V1R5bDJZWnVKK2t4RHVlckZpVzlhMHNJbUJ5T0k3RGpSczNVS2xVUEE5cVROUEVnLzBhSHV6WEVJdkZ3UE84YXlCenJWWUR4M0Z6bndEcXVqNDNCOU9zek9JSTB0dnpHM1FkaDRGbjRmWlUrVUtDU1VBeDI1Q0k1eTZjNm9veGRiRDFNRmZiRko0K1BjWi8zYXloamwyd0JJSE5mQjRGZEFmcDB3eEdYK1hYOEpYOFo2ZmVwOHVoRlZ6R0N0SWg0QVpZNkRFQmp5K2w4VWYzYjJOZmV0NU5zS1hyUFVITHFXeE8xM1ZFNXlBU1ZUcEgrSEN2M1B2YnIwbW4yL25CcmFzT1NaTEk1L091MXdHZyszbnM3T3dNVENhWENTdklkdmc5eXJLTVJDSXg4UG1ZcG5tRTV4M2FBaFlVSzZPUklJaVhzdGxzL2lTVEtBMGJKOUdrM2FCTTA4VCsvcjZ0VURTUDdwMm5DY013eU9menZjVy9VcWswVUdhOUtKbVZzMUtwVk1EenZPMjV5cy94em5CZTVLUlk0clVrU1hQOTNDMm4vN2d5TmFzRHB0ZjRnNERKTUUwVG9pZ2lrOG1nV0N5ZTllNHNFeFNlbjlzZnlMS2NMeFFLeDRsRVlqV1JTSVRHbVJtaTBTZzJOemN2TlJxTno5RTAvU2pJTDFvTUFxRm9mcEFFUVFpSlJPS2xhVGRnR0licjVJQmhtTGxreWdSTXhva2Fqa1FpZ1hLNVBKSGx2ZFZxb2RWcTlaeERkcE4zMHpSUktCUnc0OGFOdWJ2RzZ2WDZRZ3BGczZCM3h1WHh6a2FMTkhGSm4wNndTT2trUG9rYzkvS0tGS0lEa1RBbjZxYm14dVhRQ242V3VJSjZSOGVuYlJWbFdjZXRWQlphUEltSDVVY29pWTJ4Mi9qaVdoWUF3SkFyK0xrWDhyN3Nsd1VWQ3VNeklRYS8rc0lXZnZmajcwMzBYRTNURUJsT0JmZUJ2MjVMYUxXZWkxWitUVmljSnNFRVFTQ2RUcnMrTnhxTlltdHJDOFZpY2V6NXhRcSt0dXU4dU1pVVNpWEhhOTN3ZVZGUmxJZm9kbVlMV0d4NEFMZVN5ZVFYb3RIb0craTZpZmorQjh6UzZjcnBPZEZvdEZlS3YyeFlqU3lzYTcwa2RjOUgvWTdEZnNmZHN0TnNOdWQybnJJNjBDWVNpWW5IVG8xR0E2SW9EbHdMNWdsQkVNamxjaWlWU3E2UHMwcjJHbzN4MTI0LzhacERlRjdLN2tSUlJEYWJCY3V5NTZhTTlSU3huRVdLYVpwR3JWWnIxK3QxSTVsTVh2RlNIUkdQeDhIemZLWmVyNmRKa253UTVCZWRMWUZRNUROOVhjNStMWjFPLytvc0UvdGlzZWg0d3FVb0N2bTh2NU8yZ05rNFVjTWhTUktxMWVwRUY1ZHhBMXBMTE9vZlFNNkRSUTNGbFk0V2QrQWhFUjJZNkV3VlJFMGdoS3ZIZ3lWb2V5c21PRE04YzdCMVA0a1FoVVNvYjVESEFNZ25jYUFwZUtxcGpoM1RVdEZMK0pYMVYzM2JEeWR5bHdSOGNTMkw5L2RMbnA4anl6SWlQbmM2cTNkMDdFbml3RzBzTzFJaE14Vk92L0Z4WFlBc1NKTEU1dVlteXVYeTJCVm4welJScTlWNnE2S0w0TEN3eW9vRVFSaVpHRFlhRGNjSm1kVlVvUi9UTkJzSUhFWExRSVNpcUd0cmEydFpBRm5ZZERkekcrZU1ROWQxS0lwaUsrWXVxK09pUDBiQU1JeWVjTkR2dXBFazZTeDI3VlNadGF4OG10dzJLM2pheXM0N1RkTHA5TmhzTFVFUWVvTGh2STV0U3hBU0JBRWN4ODNzVE8wL1ZqVk42K1dvS29xeTBJS1NLSW93REFQWmJCWTdPenRCT2VCazlEdUxBR0RQTk0yN2xVcmw5WHE5em1TejJkVnhZeEtTSkpGS3BVS0NJT1RLNWZJTFFUbmEyUkVJUmY3REE3aEZVZFFYNHRQNlhBRlhaNHExOGhCa0VpMG1ITWRoYzNNVGhtR2dYcStqMld6NnNyS3BxaW9xbGNwSVhzYzAyRjMwck5XM1JVU2VRU2c2bktCZC9MUklSSHRxRjVCZ0VqaG9tN0F5c2RzaG9Fb1p5UGhVZ3ViR0ZUcUtLM1FVdVVzQy9pNWV3K1BEMW9CWWxJcGVtdnMrV1B6SytxdDRLQjJncWp6ei9Kd0Q1UkNyRWY5RWtQdnR3NUVKaWw4bFhIYU9RWlpsSjg0ZnkyUXk0SG5lMVlGam9hb3FDb1VDS0lwQ0pwTUJ5N0tuZnQxUUZHWGdlbWE1bmF6OWFEUWEyTjNkZFh5K25YZ3R5N0x6RXdJV2ltUXk2WGpmcEE1Y08wUlJQRGRDRVVFUUE4ZDdyVmF6L1kwdm8xUEtDYWNKNDdSQ0VjTXd5T1Z5bnMvYmZvL1Rwb0ZsV2NUamNWY0JzTjk1Nm1jSm5IWE1zU3c3bCs3R3cwMXorakVNQTdJc1E1S2tYaWo0b21DYUpwck5KdGJXMXBCT3AxMnZVUUZqNFFHOEJrRFdkVjB1RkFvbXk3SzBsL3dpbXFheHNiRVJFVVh4YzRHNzZHd0lsQWIvaVFENGhVd204elBUYnFEUmFMaXVHQ2VUeWFVT0xMMG9uQ2ppU0tWU3ZaV3FXYk1GckVETFdTZXZkb013MHpTeHM3T0Q5ZlgxcVd2NUx5cXpDRVVBY05VZ1VPMXpGVWxFQjA5SWMrWXVhSlB5d21yc1ZGOXZtRjkrOGZwRUpXanFzUWI0SkJUcG5UWWVReHNSYy94eTQvQThQMUIrUmxFVWNybmNWTnZpT0E1YlcxdTlNck54NkxxT1lySFlXeW1lcGhSakd1ektwMDNUaEN6TFlCZ0c1WEo1YkduSHNIaDkwbDFJUk9Bb1dsajZzb215UE05bjBYVVNSZm9mWXdVMHo0cFQ2UkpOMDJBWVpxRW1uK01RQktIMy81SWs5WDdiL2E3RzgrWW1janEvVGlvZ1R0ckpUSklrN08vdlE1YmxNM2VMV0l0L2J0OXQvem5iajkrTmxZL0o4L3laTFRxVEpObmJCK0I1TTRONnZUNTMwUzZaVEVMWGRkZlBzbDZ2WTIxdERmRjR2TmVNSm1BcUloaDBrKzdKc3R6WjJkbVJCRUVRa3Nsa2FOeWNodWQ1M0xoeEkxY3FsUUozMFNrVENFVnpnS0lvbnVmNXFSSlFGVVZ4YmJrZWk4Vjg3NEFWTUg4NGpnUEhjY2hrTXIyTG9aVTlNQWtzeS9yaWNIQmJyVHRQcTVVV3NuazhVeUQyT0NTaUF6M1VtYnBqR1c4U2VOTG5LZ0s2WGRDaTdkQmN1bm90S3JsTEF0NTY5WXY0NXFON2VDZ2RPRDdPeWg5cGFDcnlQaG1LNnFGdVo3MTVUY1Q2OHgzOGNJV1NKRG1SdXdoNDNubXhWcXVCWVJqd1BEODMwYWpSYURnNklyeDB0Z0tldHdidlI5ZDFCY0NuQ0RLS0Zoa2V3QzFCRUw1QWtxUnROdEcwZ2ZyRDZMb09TWkpzQllkRUlyRlVUb0Irb2FnL3ErYThacVRFWXM0TEU1UGtNREVNZzJ3MjYya0IxVnFJWFJRQnNiL3hnTnQ3dG80Tnd6Qm15cWhpV1JhWlRHYnNaNlVvU3U5MUpFbWFPSHVvUDlQSSttMXlIQWVLb2h6SHNEUk5ZMjF0RFd0cmE2aFdxNzZkSSt3d1RSUFpiQllFUVRndXR2U2ZXNndGMy9QNld6eGxlSndzOWpTYlRVNFV4WFlpa1lpTUM3d21TUkliR3h1UlJxUHh1VUFzT2owQ29jZ24rcktKL240eW1meGIwMjZuWEM0N25oZ0pnbkJzb1J5d1BQUmZESUhCQzdJYkJFRU1EQ1JuSWJqWStZOFNib09hd1ZWMHhSak1LZ0s2WGRCZTBsWjh6U3RhZEY1WWplRTN0bjRLNysxOWltOCt1bWY3R0laaG9PczZ5czhPZ0xnLzUwU0phQU9tYzBEdXJQU3ZYS2JUYWQ5Y29Sekg0ZWJObTlqZjMwZXRWdk04c0ZaVkZhcXE5b0wwL1NnL1VCUUZ6V1p6ckhQU3F4aHRkNzZUSk9sK3A5UDU1MVB0WU1CcEVRRndqZU80TEd5eWlheHlINytvVnF1MmpUM2k4VGdxbGNxWk8wYThRQkJFNzNmWGFEVE81WUxOTUU2WmlKTzBudS92QnVlR2xaRzJhSityVlpwcEdJYmp0U2VSU0F5SVNkTWN6d3pEdU9iVldlTlFVUlI5dVFaYVdVVEE4L0dtNWNpaEtLclg0YzJwbzI4cWxVSWlrVUM5WHArTGs4ZGFFTExtVkU3bm8vN09pcmxjRGpzN093dDNEQzBoQXc0ajB6VDNhcldhM213MmlXUXl5WTZyYUlqSDQ2QnBPdWlNZGtvRVFwRi84Smd4bThpeXdUcGhoZDBGbkMvbVVSZnV4clFEaldYbTBEVG02aWdDWmk4LzQ4MHc5akg0dlJ5SHU4NmlhOGNYNzFUOXBXdWZRU3A2Q1c5LzhzRkl5TFlzeXlBSVlxSThvM0ZJUkJ1YU5scDY1Z2VLb2d3TUxtVlo5cjI4YzIxdERZSWdvTmxzVG16ZHQvSVkrc1VzaG1Gc2c2VHRVQlJsTGlVY2RrS1JvaWpMWXhHNTREZ0Z3ZnNkRml6THNtT285WERKNTZMQ01NOU42QmZsK3V3bUZJM0RjbVdPT3o5cG1vWlNxYlNRaTJQOWJpSzMvZXZQK1pwVU5LRW9Dc2xrMHZaNm8ybGFMNS9wTkk4NVMwU3lIUFVVUllIanVGNkF0b1VWM3lBSWdxY3k1VWxRVlJXYXBvR21hV1F5bWQ0MWJKaFdxOVY3SEVtU1BiRW93RmQ0QUtLdTY1WGQzZDNQTkp0Tk5wdk4wbTd6M1pQeSsweXhXSXdGN3FMNWN2Rm1IL01qQXVBWEJFSDQ4V21lckdtYWE4a1o4UHhDWXYxNEZxR1RUY0R5TVc0UTVyZG9wWnJtM0VXYVJVQWlPak05bjBBSW5Ca2EyYzRCMlFiUk9mMjhva1VnZDBuQXI3L3lCWHp0by9jSGJqZE5FeFJGb2FvOGcyb2NneUZuTzc0T3cyMEE5bVZuMWlCeEZvWW5xck4yOUhHQ0pNbWVXM0ZTaDlFdzFxcnlXVTJ3WXJHWWJVbWNxcXFCVUxUNFJCaUd1VWFTNUVnMkVlQlB4c293OVhyZHR0RkRJcEZZQ3FHby8zY3FDQUpFVWJUOTdaMlhjWi9UN3hzWVAwWWhDQUw1Zkg3c1dHVi9mMy9zdVBvczZjOWZjM3JQL2FYQms0UllXK0hYd3dLUkZTQmRyVllYcHZ6T3lncHFOcHVnS0FxSlJBS0NJUFRlOTBtZ01VUlJSS2xVOGszVTZzODN5K1Z5S0JRS3RwOUp2Vjd2T1kraTBTaVN5V1NRVitRdmxzT0lBdkJBbHVYOHpzN09jVEtaWk4yaVZrNDZ3VjRxbFVvL0VZaEY4K1BpaEYrY0VvSWdPTGY0Y0tHL0h0Mk9mRDZQYkRhTGVEemVzMnNHQkV5S2wvcjIvcFZOUDJoak5nSEZEYSsvQS9VVU9wOEJ3TE1Ud1dGYW9xYjlLZm5KaXRrVE15NGFMNnpHOE91dmZHSGtkbXV3V0pSbW53UXE0UTcwdHYzbjY0Zk5mRmdZVWxVVmhqSGZZM0p0YlEwM2J0eEFPcDBleUVkYUZNYVYwdHF0Z0J1R0FWM1hGMy9XSDhBVEJQRWF1cDF1K1A0NzNFcHNac0ZxWnoxTU5CcjEvWm8yRDFSVjdZMERUeVpBMk5yYWNzM3hXV2FjSEpXTlJzTlZDUEFxRWpVYWpZVVdpWWJ6MSt3V0theUFiZ3V2Z2lmTHNyaHg0OGJBWjJ3WUJocU5CbloyZGxBc0ZoZEdKQnBHMTNWVUtoWHM3T3lnV3EwTzNIY1NhT3piNzdsZXIvZk9HWlpiaUNCR0YrU0d4OHlwVk1yUkxSa3dFeXlBRFFDS2Fab0hsVXJsMllNSEQ0eHhZNlZzTmtzS2d2QVRvVkRvKzZleWx4ZU1RQ2p5ajBnc0ZudDltcFhuY1FGcHczYk1nSUJwR1JjT3lEQ003K1dOcHlYU3VHSE9VYXpxUnlGbUUzTlcyODVaUkdYS3dGSG9Zb3BGdVVzQ2Z2bkY2d08zOVlTaVo3UHJCb2ZoTm80NzdibVY5dHFkMzA5am9HNDVqRzdldklsY0xyZFFrODVjTG1mckFBRkcyNFJicUtwNjlpZVRBQzlFT0k2N0JwdHVaL002N2szVGRGd0U4U3ZiYjk0MG04MkJSY05vTklxTmpRM2s4L21CeHkyRDhPV0cwKzhiY0JkRHZJcEVpcUlzZkloNXY1dG91RFM1L3pHV3EwYlR0TEZDa2VVaTJ0emNISEJyVmF0VmJHOXZZM2QzZDJueWRhekdDeDkrK09IQTc1b2tTVnkvZnQyWDM3UnBtZ1BaUkRSTlkydHJhK1QzcGV1NjFXMnpSNUFYT3hjb0FGY0FwQUM4Q0VCcHRWcUhPenM3OHJnbUk0RllORDhDb2NnL3ZzenovS3ZUUEhHY202aC9SU0VnWUZxOEJJak9ZMEN0ZDJZWE4rU2oyVHBoSDU2U1dIVWNtazJRaW5UQ0NEdHNvaDNxaWtYNmpLK3hySHpwMm1kd21ScWRJSDMwZEgvbWJSK0ZPNUROWTF2bnpheGxZazREbk9HQjU3emhlUjRiR3hzOWw5RzhSU09HWVpCSUpMQyt2bzUwT20zN0dLZVZRcWRKcE5UOU1OL3phUmNEem9CNXRuZDNta2c3SFUrTHlMQllCSXc2WisxY0Q4dUUwL2VoYWRyWXJCNHZJbEdoVUpobDkrWU9RUkFEYmg4bk4xRy9tRFJ1N01Zd0RMYTJ0Z2E2SW11YWh2djM3ODlVZ256VzZMcU9ZckdJKy9mdkQxd3ZzdG1zTCtQVmZsY1IwQldMcmwrL2puUTZQZkE3R3hhNG85SG8wZ2pRU3d3UFFOVjEvZU5Db2RBc2w4dXVrNGxzTmtzbWs4bWZETVFpZndreWltYkU2blpHRU1SbjR2SDRwVW1mUDY2N1JYL1lYVURBTEhnWkxNemp3bmZVTm1GMjJpQkMwK3ZTOHBIOUt2UWtKVFd6N29NWElqNjBzbyswUTFBYzhvNk93MTJ4S0t1UkY2b1Rtc1hmZmVrMS9PN0gzeHU0N2FtdVl2dnBIbTVjdnVid0xIZjBVQWZ0RU5CU0ZaVEw1Wkg3WngxZ093bENaN1d5Mjk5MTBTb0RFa1d4dDZvOXpYNnhMQXVhcG51ZDA0YXpSNXpFQVNkM2lkTkVVbEdVQm9EWlZPT0FjNHNzeXpBTVkrVDRvMmthRE1Nc2JMbk5NTTFtRTRxaU9MWjhwMmw2SWNPWnZlSTB6bkJ6ekxBc0M3ZThFcUI3cmkwV2l3c3ZpZ3lmMyt5Y2NQMXVvbkdMZklJZ0lKMU9qengrbnUzbFR4dFpsbEVvRkpETDVYcHpJc3VST2tzR21XbWFxRlFxSSs3V3RiVTE4RHpmQzBKWEZHWGtlMHNtazB1UmY3YkVER1FYMWV2MW5LSW9iQzZYbzUzeXpWS3BWSWlpcU04Rm1VWCtFUWhGczhNRHVNWHovQmVuZWZLNFFMVEFUUlRnQjFaM0N6ZjZ3d1A5cG1VYzQ4cUsvNExuSkNLcTJqYkJFdk1WaXFJdXBXTmVXVzJIb1JET2d6c3QzRUdKdnBoaVVlNlNnTXNVZzZmNjRJVHZtN3YzcGhhS2prTWRxS2FCU3JYcWExY1ZpMFcyK3BNa09UYnpUdE0wMS9mQU1NelU1dzI3U1l4YldZcXFxanNBeEtsZUxPQkNJSXFpYmY0TnovTkxJeFFCWFJHMVVDallCaEl2WXVhWVY2d09WM2E0VGJySGlVU0dZYUJZTEM3MCtkWmkrUHcyTFBveEROTUxXUWFjM1VSMkhjMGtTVUs1WEY2cVk5MHJxcXBpWjJkbm9OdGRPcDJHb2lnenZkOW1zNGxFSWpFaXl0STBqYzNOVFVpU1pMdmdROU0wWXJIWVhNWU5BUU5ZMlVVVldaWmYyTm5aMFhLNTNDVW5kK0hKN3lFUWkzd2lLRDJiblFpQVgyQlo5b1ZKbnhpNGlRSk9pM0hsamNCOFJjbEQ4M2h1Mi9hS1UxaXhuMFI4RUlwV1BGU1dXV0xSYVdVdkxSS2Z2VHBheHZSVVYvSHR4OU9WR3lqaERwN0l6K2EyTXVoVXVqYlBFaHcvb1dtNkp5YlovWnRGWExiN2JKeENRaytDckI4aGNCUXROZlBPVzNUS0tWcW04ak1MMHpTeHU3dUxEei84RUkxR0E1SWtRWktrcFhZeHVKV2R1WTJIeDMxL2l4elEzTSt3RUc1M0hjamxjcjMvZDNJVE1ReURmRDdmRTRrTXcwQzVYSGJzM0hWZU1FMFR4V0t4ZCsxd0M2R2VoR0t4NkhnZngzR080ZXQrZHdrT3NNWEtMa29ES09xNjNpNFVDbktqMFhCOFFqd2VSejZmL3h4SmtnK0NVclRaQ0lRaW4rQjVmdUxBaDNFWCs2RCtOY0FQOXZmM3g5clU1eTFLdG96WmhLSTk4YW50N1pOTU9vNTl5RXB5STl5Qkx3NmZsWTYzYlZoaTBVWExMTXB4OXVmRlAzLzh5ZFJpMFFlZmZPeDQzNndUMi9OaS9aOEhkaE5EcDg5YlZkWEZ0d29FakdYZVFjeE8xN3BvTkxxMDJUNjZybU4zZHhlRlFnR0ZRbUVwWEROT09Bays0eHpQYmxqbFFjdkE4TGgrV0N4UEpwTURZN0Ztc3pseURVa2tFc2puODczSGFacUdRcUV3MDJlNFRBeUxSVFJOTytiZ2VVWFhkZHZTY3kvN0VuQnFESFJGMjkzZGZWWXVseDBId0J6SFlXdHJLMGNRaEJDSVJkTVRsSjdOVG9SbDJWY25YVlZWRk1YMXdzWXdUTkRwTEdCbUZFVVpXOTQ0M0lKMUhyVFJ3Y0d4NW12NTJhU0RmdGs4eGhybU4wbnh3MDBFZEV2UHZLS0ZPM2hJSHlPcmtZaDBBdDMveng5L2dnK2VWUEJiTjc0RWhseng5SndmUEhxQTF1R2g3WDJ4V0d6bTgvQjVYdDJkRlRzN3Y5TUtyU1JKTlFCL2lzQlJ0QXdjS1lxeUIyQVAzZkw4WHVjemtpUkJVZFRjeEE3VE5LRW9pdTF4eExKc1VDWnl4amlkVDhjNUxEVk5zMTNNMnQvZlh5cUgxZkQ3NzMvZlZnT0Fmb2JGbjNRNlBWQ0cxMmcwNXRiaGphSW9VQlFGbXFaZFN3YUI3bGpUTk0yeFhaejlRdGQxbEVvbDVQTjVrQ1NKZUR5T1pyTTUwMnZYNjNWd0hEZVIrM0RXWmhjQkUyRTVpeXoyNnZWNlI5TTBOcHZORW5iejhKTk9kcmxpc1hnNUtFV2Jqa0FvbWgyZTQ3anI0eDgyeURqbGYvaGlFUkF3RGVWeWVleUtSeUtSR0JtQW5aUjUrR3FyZldib3ZncEZrNjVNejd2MHpLc1R5Ry9hSWVCaHhFQktKOENieTdsaVBnbTVTKzVPeTZlNmlnOGFGWHpwMm1mR2J1dTl2VS94VHVXQjdYMEVRVGkyYjUrRVlNWFJHVHNSeldreW91dDZCY0FkQkJsRnk0Q282L3BkQUpjQnZJWnVJR21QWkRJNTEvYmxUa0lSeDNHQlVIU0dPSldWYXBvMlZsRFhkWDFrbk5Kb05GQ3BWSHpidjNsamw3L1cvNzR6bWN4QUtXOS9QQVZCRU1qbjh3UEhkYWxVOGswa1kxa1dITWYxbkhlVFpzLzFuN2NOdzRBc3k1N2M3TE9ncWlycTlYb3Z6eW1ieldKN2UzdW1iVnJpazlleDc3STQyYzRwUEFDeDFXcVJPenM3b1h3K0g3VVRrMm1hUmo2ZnYxSXNGbDhKeEtMSkNZU2kyZm1iSE9kUUMrR0FZUmhqVCs3TFdFOGZzRmlVeStXeEZ6R0tvZ1pDRXh1TkJrUlI3QTJtMTlmWEhXdXpKK1daZVF6WlBBWkxlSE42OUhNZ2o2NDJUbG9xZDl4cHo3WHpHZVdqVUJRMW5UdWZPVkdsVEVobUd5bDlmaUhYVHp2SGVOenB1a0JXQ2RMVGQ3blNnYThDbHVxaGpQRzl2VTlkaGFJRFRlbTZqeHJPazR6K0xqSUIvcU5wMmtRaW1xSW9IM2M2bmIwNTdsS0FmeWlxcWo3U05PMEJUZE1DdWl2QjdNbC9FWS9IRVkxR0lVblN5REVnU2RMVTNmY3NuRVNId0tVOVA2eUFiYmZ2emVuMzd1VzdybGFyMk56YzdQMjl2NysvVkNJUk1DcVU5ZWN5MmJsWExUYzRSVkVEcFdhR1lhQlVLczBrZWxvT0laWmxmUnZqV1pBa0NaN253Zk04SkVsQ3RWcWRtNkJpQlZHVEpBbWFwcEZNSnNlNjZOMHdUUk9GUXNHVFdMUXNPWVBuR0tzcjJvR3U2OVRPem82VXkrVTR1L1A4U1piVnBVcWw4aE9CV0RRWndTallCemlPbStoejlKSk5GRXhRQW1aQkZFVlA5ZXFXWThMcUdESjhNZC9kM1lXcXFrZ21rNzRjazFWTlFUNDZjWndYZE5NWXVXMmF6aS96N0h3V1hvQ29vRVpIeCszR0xuNDI4Ukl1VFZEQ05nN1ZPTVo3KzUvaS9ZTUtWRlVGd3pESVpETDR6SlU0MWlobXJQaDJhSFR3d3JFLzU3UlBqc1N4ajNtcXF5ZythdzY0ajRyUG1xZ3F6MUI4MXNSSDRyN3I4d1ZCOEgzd0hEQ0kzZVRRN1RldHF1cjhMQ2dCZm1NQWtKdk41bDRxbGZvWVFCdmRiSWxlMlVBMEd2VTBFVk1VQmFJb1RqVFJkQ29IQ1lKbjU0Y2dDRWdrRXRqWjJYRVVmbFJWaFNSSkk0S0lGd0ZQbG1YY3UzY1BCRUhBTk0ybExPbDFjaFBadVZjdE41RVZXbTJOdnd6RG1DbXdtbVhaWHV0M095eDNsL1Vic2tySzNDQUlBdEZvMUxhREpzZHgyTnpjbkZ1Sm5LN3JBNjRpUVJCbUVvcUE1MkpSTnB0MVhiUVBoS0tGZ1FVZ202WlpLUlFLTDZ5dnJ3dDI0emVTSkpITlpra0FnVmcwQVlFYU1TTXN5K1luZlU3Z0pncVlKNHFpZU9weWxrZ2t3SEVjRE1Od0hkelY2M1dJb2pqU2huVWFqdG9tcXRvaFV2VHFUTnNCcGxzZFBqU05xUnhOWG9qNDZDank0ci9SakdQY3F6d0NBUHg0dHRzbDVVN3BJZTQ5Zm9TZC9jZjQ4by85SkY3c1JDYktQQnJHeVhsanRXNnVzbFc4bE03Z2V2d2FHTUw1Y3RJaTJ6Z0tkN09VWm5FN0hZWGFNQzk3bSt6OTdzZmZtK28xR0lhWk9SZ3pZRHgyZzJ3bm9VaVNwRkdsT0dDUk9RS3dWNnZWV0lxaVFpZlhqVEFBSFVPWlJXNVlFOCsxdGJWZTk2ZG1zem5XZ2VJMnNXVVlaaWxGaG1XQUpFa2tFZ2xYcDArejJiUzlkZ3VDTUhac3ZPemYyL0Q3dHNRWXl4SFRUNjFXQTBFUXlPVnl2ZnVzc2QyMG4wTXNGa00ybXgxNExVVlJldDMwVkZXZDJzblhhclY2Kzh6ei9FZ290K1VpTEJRS3ZwZGoxK3YxQVZjUnk3SXpPNWlzd0d5V1pRZWNiUDA0ZFZnTU9IWDZzNHNlbkN4d1g4bGtNcmFEeld3MlM3SXMrN2xBTFBKR0lCVE5DRTNURTZVQUs0b3k5aVFmQ0VVQjAySTVnOFpkaUNtS1FqS1o3SzFPalJzY1dGMVhLcFVLa3Nua1RLNjN4ckdHU0pqMG5GZWtPWlFhVGRNOVI3VnhKdm1GWDJIVzNXMkZJUkhPMytFbmUxWGNLUlVoYTkxY1gwc291cDUrRVEvMnFqZzRsUEd2ZnZoZGZQR1ZWNUhqQlBCbWVLTHlyNzk2VXNiNyt5VlVsV2V1ajVObEdULzZlQWNQbzd2NDZmeDF2QkM3N1BoWXEwdGJSaWVuS3RNN0NyVlJvZzA4Mm44eThYTzlNcng2T3l2QmlxTXpkZ041SjhlSG9paUhBTjZiOHk0RitJY000QUdBbzVOQmV5ZVR5YlFBTkdHVFdlUUZraVNSU3FXUVNxV3d2NytQZXIzdTZseHhJaHFOTHIzZ3NNaU1jMjAxbTgwUkVRSG9qbnVYS1pSNlVxeFE2SDRrU1FKQkVDT1pwSmFiYUgxOWZhQ3pXYkZZbkZySVNTUVN5R1F5QTY5UnI5ZDkveTJZcG9sbXM5bjdudnRGc0dnMGludys3N3RZWkwybUZmSXRDSUp2cFc1T0VRZUdZUVRua2NYRDZvcFdxZGZyTUUzemNqYWJ0VjBwUFZtOCtCeEprZzhNdzlnNHpaMWNOZ0toYUVZb2lyb3kvbEhQR1hjaGpNVW1MOHNKQ0FEZ1dmUUIwRnVsbW5SMXlqUk5WQ29WVkNvVkpCSUpDSUl3bFoyL29oM2l1TlBHR2pWZTdMSExKNklvYXFySnZOcWVUN0R3U2h0enl3WHFweWxMZVAvamJSd2NEZzZDTk9NWU5Ma0NMc0xnaTYrOGl1OThkQmV5ZG9UdmJOOEZicnlHSkg4RmV4MFRuQm5HYWp1RWFEdnNLTmE4WGZoZ2JHbldNTEtpNE50M1BzQzEyR1ZjNHkvM2hLdGh0SEFIWmNyQTFXUEN0alR1VXNmRVJ1Y0k1UkNGSjZIbnpxKzlGUU1pMFVZN0JEellxMDYwYjE1aFdYWmc5VGJnOUhFU2YxVlZGUkYwTzFzYU9wMk9EdUFnRkFvQlFLUmVyOHVhcGozTVpyTU5raVJwUFA4dUk1akFZV1N4dHJhR3RiVTFWS3RWeHpJVHB5NVowNVFzQjNqSHl3Sk9zOWtjeUVZRXVrS1JWVloySHJGelVhbXE2dWdtQXRDN1hkTTA3T3pzVFBYWldHVnQxZ0owdFZyRnlTUjY0bTFOU3ExV2d5aUtBNHN2MFdnVTJXd1d4V0xSMTllcTErczlvWWpuZWQvSzNKd0MyQU0zMFVJeTRDeHFOcHM1VGRQWXpjMU5XN1h2UkN6S0JXS1JPMEUvNVJuaE9PN2xTUjQvYm9VNUNGc01tQmF2ZGV2SlpCTFJhQlNLb3N5MGdsZXYxN0d6czRQNzkrOWpmMzhmaGpHWlcyZGZWN0Z6S09MZ2VMUkY5amltY1JNQnp3T3QvU2JxWXg2UUU5OS9jQi9mdlAyOUVaRUlBTjcvK0tQZS82L0hFL2ppNXFzQXV0bE9mM2IzTmo2cTdLSWQ2cGFBVlNrVER5TEh1TWZvSS8vK243cy9uRmdrNm1ldjlSUjNkaC9pdjcvekFhUWorMk5SQzNkUW9RMlVxV01jaFo1L0YzU25qUmpNQVpIb1diaU5FbldNQTdJckVrbEhLdlphVDZmZVB5Y1NpUVEyTnpjRGtlaU1jWEVVM1VmUTdXd1pzWnhGSDdSYXJmZTN0N2ZmMmQvZmY5Y3dqSGNCdkF2Z0xtYjRYbE9wRkxhMnRtekZINmNGazJDTU5SK3M3NEFrU1JDRXUzdlZhZHh4bnJ2OU9vMVpodCt6S0lxOVkzZC9meCtTSk0za3dNbmxjajJScUZRcW9WYXJuYW9ZWjVXcDk0OFBlWjczL2J2V2RiMVh5a2VTcEcrTDdrNFZIa0czczRYR2NoWTlsbVZaTHBWS2pvUCtlRHlPYkRhYkkwblN2djF0UU9Bb21vVlFLUFMzODNudkVVVmVXb0FHZzVpQWFmRHFER0lZcHJlU1Z5NlhmWGx0V1pZaHl6SnF0Vm92S05IcmNYemNhYU9pSGFLcUthQTZRTFZXaGFrZkk1MVlRL1FTQjdWdDRvazZLcTdPOGp1UlRRTXgwdDlWNVZVZnk4NEFJTnEzdlpwNGdCODh1RzhyRUZrOGFqN0JleDl2NDB1djNBQUF2SHd0aFFOWndyM0gzUXlqSHhRTE9KQWwzTXJtd0VYc0I2d2ZWWGJ4WUgrMkVFaUx2ZFpUZlBPRDcrRlc5aVc4bWw2M2ZZeEVkQ0FSQnFKbXFKZWpWRGxKWnpKREJnN0RIV2hEQ2VGV0pwTmZKQklKMzRMYUEyYkRDa1MxUTFYVkFnSkgwZEpoT1l1c3YwT2hrRjZwVkNLMVdxMGtDQUo0bnIvR2NkeFRqSmFpRFR1TkhKMUgwV2dVVzF0YkkxMmdGRVd4dlU2TUV6RUNwcVBmdmNVd2pPdEVXdGQxTkJxTmtjekRhWUtJQ1lLQUlBaWUzTTFXdVpDVnl5UEw4cW1KSm5iN1p1Y20ydDkvdmxBanl6SUtoY0xVcjVsT3A4RnhYSzlzN2F4S3BWUlZSYkZZSEhEc0pwTkpOSnROWHo5L1NaSjZuelBIY1ROMWhRTzZGUjVPWTRQQVViVFFqRGlMRkVXSlhyOSszWGJ3eS9NODB1bDBMc2dzc2ljWUhjOEl4M0gydmtRYnhwMVkzQWJLQVFGT2xFb2xUODRnS3hnUmdLZDJwUXpESUpmTGVXNURiM1dvMmQvZlI2bFU2clZIOVNMcXROSEJVUWhZNFZoOFdpamdVZk5KYndCb3QxbzhTNDdYb1huc3UxRGtaL3YzZnY2NlZNU2QzWWVlSHZ0Z3Y0WURXY0wxOURwZXZwYkM1emMyd1VZaStFR3gwTHYvVWVNSnZ2aktxMWlQRDY3bWZiSlg3VDNPTDNUVHdBK0tCY2hIUjdpVmZRazBhUjhpcmhBZEtDNTVUQlkxOGFBbmZEbGhIUzl1emswcjdKTG4rVUFnV2lDY0xQNlNKRTNmSnoxZzBSQUIzREZOTTFLdjExR3YxeU1BM21FWUprSVFSUCsxNGhwRlViZG9tcjUyY3RzMXVHUWJrU1NKalkwTmxNdmxYcmRQcHdsb01NYWFELzNYZVMrVC8yYXpPU0lVMFRUdEtkVGFZdEpNT1pJa0J3TFNnZTY0UlJURkFTZlBQTEJ6RkEyWDMybWE1cHRUUlJBRXJLMnRRUlJGbEVxbE15L3BrMlY1b0RzWlNaSVFCTUZUZDE2dmlLTFkrMTc5V0hSM0dtZDY2UVFYc0JEME1vdFVWWDNod1lNSEt4c2JHN1luQ3l1ektCQ0xSZ2xHeWFmSXVMS3phY3RwQWk0dVhrVWlBRDNSUjFHVXNhdDIwNFQ2RGcvQXJMYkcxdjVad3BFYi9hS1FhWnEyZ3dpN1VNaEprSDBPdE9aTS83T0p5cTBEL01tamp4eGRSRmRXV1Z4UHIrUDkreDhOM0g1d0tPUDkreC9oQncvdTQ4WDRWVnhQcitPTG02LzJIcWViQnI3ejBWMWNpMTNHRjE5NUZWeUV3U2Q3MVpIdERMTyt2bzU0UE43cmppS0tvdWZWeVh1UEgyRlBQTURQM3JqbDZHWWFSMU9XdW5sTFk3QUxTVjFVQW1mRElDNWxaMDhBL0NrQ1I5SFMwK2wwamdEc2pYdGNLQlM2aHE2b2RBMEFZckZZZG0xdGplWTRUa2QzM0dvNWpBWnFmak9aREJpR3dlN3VicThNSldEK0NJTFErMyt2SWIreUxOdm1TSGtWaWdpQzhLWHhnRFZ1eVdReVVCUUYxV3AxWmllS0hWNzJjOWEyN2hhQ0lDQ1pURTQwUGp3TjZ2VTZCRUhvZmVjOHovc3FGUFdMYkg0SXdrNWlVK0FtV2hvR25FV3RWaXRYS3BYR0Jsd0hZdEVnZ1ZBMEF4UkZUZFR4Yk56Rkp5ZzdDNWlFU1FZQmxnWFo2b3JtaGlBSXlHYXpNKzlmTkJydFhhd053NEFzeTdoLy96NEE1MlBkeS91WjlYZHkxRFpoZHRvZ1F2N2tDbkdtdi9sRTIwLzM4UHVmM0hhOG55SklmUEdWR3hCWURsZFlEdC9adnRQcmZtYWhtd1llN05md1lMK0dhN0hMZUZHNGlrZk41OTNDOWxwUDhhKy8vejZ1eFM2UHpmeXhSQ0xnK2FBNmxVcEIwelRVYWpWUDM5bkJvWXh2ZnZBOS9PeEpzUFlrN0RicWVQL2pqNkRiQ0h6RHJhNW5FWWxXUW1GUTRlZmZwV3FhYUtQajhvelpDSndOZ3ppSnlLcXFsZ0RjUVpCUmRKRVEwZjNPSXdEUWFyV3lyVllMTE12V3N0bnNLazNUMTlCZEtSNDVtY1RqOFo0STRRUkZVWE4xajF3a0NJSkFNdmw4S0R5Skk4WXUxSnJqT0UvZmo5VjUxYm9PV2Q5M0pwT1ordHdhalVheHNiRUJSVkZRcjlkOUUxbWMzSkw5R0liaG13Q2hhWnJueGlhbmlXbWFxTlZxdmZHbDErOTZFaFJGNlgzL0xNdE83ZEJpR01aeFBCRjBNMTA2ZXM2aVpyTUpobUVFYTBGN21IZzhEbFZWWHcvRW91Y0VRdEVNVENJVWVUbXhCQk9IQUs5TUloTEZZckdleTZkVUtybGVsRm1XOVVVa0dvWWt5WjZqeUJLTkdvM0dWQmtCSnlkNk9KM292ZEF5am5GbHhSL25pZDlDMGJpVzlQbU5EWWhFQjIzOUNMRm9GTC84MlMvZy9ZOC9HaENDK25FVGdpWVJpWWFoYVJyWmJCYkpaTkpUL29FVnJIMWxsY1huTmpiSENrYTdqVHJ1VlI0NTdtTXltVVFxbFVLcFZJSmhHTmpZbUs1cFJSZ2haQ0tydHVXSUxVUEhNMFBIVTJPeEJ0em5EYmV5YTBWUlB1NTBPbU5kS0FIbmgySG5VU2dVT2dJUWtXVzVVU3dXMTNLNW5FelR0SlZYeEtLN2N0d2puVTY3TG9nRVFwRi9KQktKZ1FuMUpHS0huVkJrYmJOU3FiZysxM0prV29zVmxzUElqM0cwMVpsTEVJU3hZeWEvRUVYUnQzSW1XWmF4dnI0T21xWjdyZW9YaGVIalk1cGNLamQwWGU4ZEE3TzRkcDBXTHF6eGE4QlNNZUFzcWxRcTREaE9jRHBYWkRJWlF0TzBId3ZFb2k2QlVIUktlTEZCQjZVSUFlTXdEQU9WU3NYemhaK2lxSjd3czcrLzcrcHFpOFZpVTArMko4Rk9OTnJmMy9kMDhXVlpGb0lnT0lvWFhqazAvUkdLNkhZSUJQd3RQU3MrYy81dUJVRUF6YTdpMERSd2FCcW82VjBuekkzOEpxN3N4WER2VWNuV2VUTU5pVVRDMCtkTTB6VHkrYnpuNC9MZ1VNYWYzYjBOaWlCeFBmM2l5UDE3NGxNY3lKTHIreEFFb1RmQllCaG1vUFJoVXB4RUlnQ0lrUlJpSklXMXRvbDlYUTBFb3puaFZwS3FxcW8vZlk0RGxoa1JYWWRSUTFYVlY0ckZZdWVrN09nSU5zNGlraVNSeVdST2Z5OHZHQVJCMkhidDhvclZxV3A0d3ViRk5TeEpFc3JsY3UrYWswNm5YVVdpVXFrRVVSUWhDTUtJdU9VRXgzSFkydHBDdlY3M1ZjeXd3ODhTTEFEWTNkM3R1Y090TXJSRkVEaE0wNFFvaXIxelBzZHh2bjYyaXFMMHRoMk5ScWN1STNTNkpnVmxaMHVONVN5aUM0VkM2OGFOR3pHbmt0QnNOaHZaM3Q0V0FyRW9FSXBPRFMrT29xRDBMR0FjaFVMQmN6Wk1mdzMvdUZ5aWVUbUpJbUVDbDBrYUxFR0NJVVpQTjdKNWpNTW9oNnVYcjZCMUtQZENKWWZmbzlWTmJaWVE2MzVheGpIOG1FYjQzZTBNQUI1S0I3YTNFd1NCZERvOWN2dHhwNDE5WFFWeEpZYjg2aXVvMVdvenIwN0dZckdCY29KeGtDU0piRFlMZ2lBOEQzaDEwL0FjMUQyOGIvM0g2aXpPc2tpWThCUnNUb1VKWkNJczRxYUJzbmFJbzNZUVpPa25UcjlyU1pMOERSUUxXRW9zaDFFb0ZOSUJoRlZWYlJjS2hlT1Q2NXV0c3lod2FNK2ZkRG85a0wwenpYV24yV3lPZkZmUmFIU3M2OHZxdGdxNE8xK3RjbnZyc1NjaDZrZ21rN1pkeDRZaFNSS3BWQW9FUVl4MU9VMkxsNDdJMDlCc05xRnBHbks1SERZM055RkprcWRHSnZObVdDaGFOQ2lLY2p4L0JFTFJVbU01aS9aTTAyU0t4YUsydWJscHF4aVRKSWw4UHAvYjJkbFpIRHZlR1JFSVJhZkVXYldsRERnZldJT2RTWTRqSzd6YU1Bd1VDZ1hiQVp5Vkx6RExaTnVPVllMRUdzV0FKZXc3WFZtd3hBcFlZZ1dYU1FveXhXQi9sZTNsMzFpaWtaOENrVVViSGJRTWZlYnVaN3poYjltWm01dm9wZXhueGc1cXJYSXd3ekJHMmtWN2hXR1lxWjFsL1dHeTg4QnZRZk15T1ptcmpDRkk1QmdPaldNTisvcHM1L1FnYlBjNVRoa2VpcUljQW5qdmRQY21ZSUdSQVR3QWNLU3FLa3FsMHNySnVjcldXUlF3UHlpS0doRm5wam1uaWFKbzYvN3lXaDdvSmhJcGlvSmlzV2k3blZxdDFoT012SXgvMXRiV0lFblNWTmZVY2VPMmVZb1BzaXlqVUNnZ204MkM0emhzYm01aWYzOGZ0VnJ0ekRwM0RiL2Y0YXpCV2VoZmxKL1dyZVEyM2p4cmtlMmk0U1hmeThJMFRhL0hFUTlBbEdVNVZLMVdxVlFxWmJ2aUc0MUdrVXdtZi9LaXU0b0NvZWlVR0hmQnMyc0JIaEFBb0NmMFRISWhYVjlmNzYzVU9MVkc5Yk9tM3lLTUVGSjBkT0t5TGlwTTRFcVl3SlVWR3Z1NmluMTBCMlorQzFqOUhKckhNd2xGSzIwZzB2RlhLUHFnWWI5aUdWdGR4U1UrNW5rN1ZydG9LNVRUNjBydnNGdG5HdUx4T0VpU0hCdWFQaWwraGF6M3cweFI3a3VFd2xpakdLd1NKTXBIaHpqdXRLZDY3VmFyaFh2Mzd2blN1V2VaWVZuVzhmMnJxaW9pNkhZV2NFS24wOUVCSElSQ0lRQ0l0RnF0Y0xWYURhVlNLUmJBcU4weVlHN1lsZnZ5UEk5bXN6bFJwbzliK2RtNFNibGJHYnFpS0k0TFpCYW1hZlpLcHEyRk5UY3ltY3hVdVlxbWFkcDJlTE9ZZDRhUXFxb29GQXJJNVhLOXpyU0NJQXc0clU2VDRjOWowV0kzbkZ4T2tpU2RtYmgyRVNBSUFpekw5cHFtekRJM3NiNHJSVkdnNi9yd0dEaUNia2ZOUjdWYTdaam5lY2U4b2xRcUZXbzJteE0xcmpwdlhOelI2U25pcGV3c0VJb0M3SmhHSkVvbWs3M0JVNlBSc0YwQm00ZElGQWtUeU5DcnRpVm1rN0JHTWJoRXJLQ29Tak4zblZvbFNEQmhBcXZFQ29qUTgwV0RROU9BYkI3UHRPMnJocitEbXo5OGVOZFJLSHBsL1NWTVU0TmpoWElDM1l3cVZWVWhTZExJUUo1aEdNK1pSRjdnZVI1Ylcxc29sVW96cnhSYU9WdUxabEZuaVJYa0dBNmxJM25xVWpSVlZYSDM3dDNlMy9sOGZ1SGU1N3h4VzcxVkZPVStnbTVuQWFOWXpxSjJ2VjduZVo0L2pFYWpRWm5pS1dJbkZFV2pVV3h0YlUyVW93aDB4OGlUamtYY0ZqVWFqY1pFcmxaVlZiR3pzNE4wT3UxNkRhUnBHcmxjRG9WQ1lhSjlCYm9sYjNiT0tVVlJUcVhpd0RSTkZBb0ZwTk5wcksydGdTVEpucnRvWGlWMWJxaXEyaE9LdklpQ3AwbVFUM1I2RUFUUnl5ejFzM0xBR2tkWjI5UTBEZVZ5ZVhnK1JBSWdpc1hpczYydHJVdE9DMWJKWkRKemtWMUZnVkEwQTdJcy85REw0OXphdEFZRU9ER05TTlFmOHF0cG11MEFZQjRpMFNWaUJabklxbTh0NXhtQ1JENTZDUVhsMmNSaTBjcUo0NE1sU0ZCaGV6R0hKVmF3Qm1icS9ZdWFJZkNtZjBMUjl0TTlSNUhvV3V3eXlGVUd4b3k1T1BOMFo5a1JqVWFSeitlbkRnS2xLR3BBOUZ4RXFEQ0JmRFNHOHBFY0JGMjc0RGJBSGhOa1hVRGdLQW9Zb3M5WlJKbW0rYUJZTE1adjNyeVpSRGVEZ2tkM3hUaGdqamc1SzZ5OE9wWmxVYWxVUERrd0puVnA5RGZwR0daU2thaC9IM1ozZHlHS29tdnBOY2R4U0NRU0U0ZFBXMlZ1dzVQUjArNUlWcWxVb090NlQ3UmFXMXNEeDNHT0pYcnpvajkwZXBHSXhaeWQyMTRXL1FPOFFWRVVFb2tFZUo3M0ZDdy9LelJOWTJOalkvajhFQUZRMEhVOVZ5cVZqSTJORFZ0TkpCNlBvMUtwVE44eFpja0poS0pUSUdqREdqQXAwNGhFRE1NTURKN0s1ZkxJQUd3ZUl0Rmxra0ltNHIyTzJDdFVtRUNPNGZDSjZ0NHUzaUlTSnJCR01UUG5Ebm5CYnpmUk4zZnYyZDVPRVNSKzdETTVOSmMwUE5rS0FrMGtFbWcybTY0WkR3UkJnR0VZY0J3SG51ZFBKWXpXN016bVdMUElSRmlzSG11b2FJY0R0d2RPMFM1T1FoSERNSTZEUkVtU2dndG53RGhFQUhkMFhUODZLVi9TQUx5R2JsbEJ3QndwbFVxdVpiUHhlQnpSYUhScytSZGdYK3JqbG5lVXkrVnNYN2RjTHMvY1Bjd3FDWFlyUmN0a01sQVVaU0lYREVWUnR2czhpVXNsa1VoQWtxU1pIVWoxZWgyS292UStSOHNKTm0ydTRhd3MwblhTeWRFN3I4RHhpd2JETUVpbFVtY21FbHJSQ0NlUkhGWVh0SWV0Vml2VGFEVFduQlltR1lhNWVxbzd1a0FFUXRFcEVJU1dCa3lDWVJqWTJkbVpTR0JrR0FiNWZMNzN0eWlLdGhmOFJDS3hGQ0tSQlVPUStESFdPWjlVYjV2UU8yMVFvYkNqZThodnJoaGhyTGI5eXlaNmZOakNVNGRnNU92cEY5R21WNEFsZDZ1UUpEbjN6S2xwbURXbnFwOHJLelNvY0JnbFZlNjU0R2lhUmpLWjlPeW9Fa1h4M0pXZTJaVTZXdGlWcjFob21pWUIrRk1FanFJQUIvcTZvVVdheldZcEdvMW1BV3lPZTk2aWxib3NJeWRoNHNobXM0NWlrZVVxZFJPTEtJcXlQZWM1VGNyVDZiVHRHS1pVS3ZubXpyRkswZHdXMWJMWkxMYTN0ejF2MDY2THFKV2Y0aFZSRkpIUDU3R3pzek56Vm80VmNtMEpZbGF1WWJWYTliVmR2UlA5N3B6VGNKUjR4UzJmS0dCNnJLNjlka0tNcG1tUUpLbVhJelR0dWRrS3ZpWUlBcWxVeXZHM3kvTThzdGtzaXNXaTFRVk5CM0NuVXFsOGx1ZDV3ZTU4UnROMDlLS1duL21ieEhvQjhWSldGb1NmQlhoRlVSUnNiMjlQTkhpZ0tHcGdaYy9xZURXTXBlVDd4YnhGSWk5UVlRSXNzWEpxSWxHNEExdzk5dmUxUGhMM2JXKy9zc3JpMVJlelFVblRIR2tacytWVURXUGxGb1h4UEE4cmtVaDRYakd0MSt2bnJsVFpiZkkycHV5c0NPQU9nb3lpQUE5TUloS2NOekgyckdpMVdtUHpiYUxSS05KcDU1eHhPd0ZGRkVYYk1SRExzcmFMRFg2S1JCWldwaytqMGJDOW42WnAxL2ZWRDhNd3RoUGtTZmRaMTNWSWtvUmNMamZSODV5d0JMSCt4ZXhVS29WY0xyZHdBZE5lNlJlZEpyMldVaFRsS0M0RStVVFRRUkFFMXRmWGNldldMVWVSYUdkbkI3dTd1MmkxV2pNSitGYlF2SnRJcENnS0pFa2FQalo0QUsrWnB1bjRQU2VUeVF0cnJBbUVvaG5SZFgzc1VlM0ZyaGlJU1FHYXBubXlhZmRERU1TSURkc3VGNEFnQ0Y4N1JxMFM1Sm1MUkdlQllCQWdZTnRKYzJxcWgvYWxkWC9yMW1jRGtXak9ISGZhZUtMN2ExaXg4clVpSitLbGxkbmhsV0t4Q01NNEg3bThobUU0VG9aaXNaanJTcklvaXU5MU9wMjlFOWRJUUlBYlI2WnA3b21pdUlmQWdYYXFOSnRON08vYkwzWll4T054Mit3WGxtVnRKNDkyMjNNYXc4eERKTEt3Y291Y3hLSzF0VFZQN2J2dFFxeUI2VndxdFZvTkhNZDVGcW5HWVpvbWRuWjJCaWJJUE04am44OHZWRW1ZVi9yM2VkTFlEemNCT1hBZ1RrNHNGc09OR3pkY2N5YnI5YnB2ODE5QkVIRDkrblZIa2NpSzlDZ1VDazRDOTUvWGFqWGJreGxOMDJBWXhqbTg3QndUQ0VVejBPbDAvdGpMNDd6OENJTGExNHVOcGFwUEtoSU5XNk0xVGJNZE5DV1RTZDlLemlKaEFqbm1raS9iV2liQ25XN1ptWjhjaHRzb1NxUGYxNHZDVllUQ1lkOUZqSUJSanRyZVJSbk9ET0hxTWRIN0Z6VkRDTnZFSEZuNVdwWllaQVdnZXNGcVpYd2V4Q0szdkJDM3dlTkpTY2JraWJRQkZ4VVJ3QjFSRk84Z2NLQ2RPcFZLeFZGTXNjaGtNZ011RmFkQWFsRVViU2ZsaVVSaVJGaWVwMGpVanhWeWJjZTRSUUNyM2ZjdzAzWTcwM1VkKy92N3ZSYjNmbEVzRmxHdFZudC9XMldEREROOTA0K3pvRjhvbWxTQWNCTDlGRVVKRnZNbmdLSW81SEk1Ykd4c09KYWxXdmh4ZkZsbGJlTitpeWU1UkhaM2lRRHVBcmlyNjNyZFNjRGxPTTQ1NmZ3Y0V3aEZNMkthNXZtcUV3ZzRkU3lWZTFhUkNJQnR5WmtnQ0w1bHc0UVJRb1plOVdWYnkwYWtIZkxGVFhRVWF1UHhpb0ZQYUIzL1Fhcml5QndWQks3eGw3R3ZxeE4zZkF2d1JoZ2hyQklrVmdrU2E1UzNnY3FhVGlDanIrQ3FRZlQrWmZVVnZISkVZVjBqd1ptRHh3WVJDZytJUmNsazB2TUtyYTdyNThKWjVEU0pveWpLdGV5czJXemVCdUJ2WFdEQXVhWFQ2UngxT3AwOVNaSThPWXFXdGF4bWthbFVLcTU1bkRSTjk4Unl5d2s5TFB4TVVqWi9XaUpSLyt2Wm5ZLzczNWNkZnJxSkxHcTFHZ3pEUURxZDlsWElxZFZxZVBEZ1FlOXZtcVp4L2ZwMVQ2NnBSYUgvbUpvMEg5YnBtaFNVblhrbmtVaGdhMnZMYzFqMXJBdllzVmdNK1h6ZWRZNWpuVmRzY2x0MUFBY0FLZ0FlQVBoZnhtS3h2Tk00alNDSUM2bVpYTWczN1NlS29qeHl1Lys4NVUwRStJc2xFazFpa1hVU2lleFc0Z2lDc00wQW1KWXN3NEloTG15cDd0VG9vUTZla0NZK29YVThqQmhva1cwY2g0RUhlMVhieHd1WEx3ZGxaM05pbFNDeHRScERqcm1FSEhQSlU3NVZTaWNnbU02UFcyMkhrZEZYc0s2UldHay92NzFmTENKSjBuSFNNRXd5bVFSQkVDZ1VDa3Q3RFdrMEdvN250WEhucEdheitTTUFmemFIM1FvNHgraTY3a2xjUFkyT2loY05LOVBIN1h5VlNDUVFpOFd3dGJWbCt4MFVpMFhiQmJQaDgyYTFXajMxdHZLbWFUcUdQQSs3cFN6Y21vZk1JaFNacG9sNnZRNlNKSDNQRTdLNnZ2WC9qalkzTjMxMUw4MlRmdmZXSkk0dHA2NTBRQkJrN1FVckt6V1R5WXgxRWZVejdibllPbzlzYkd5NGJrT1NKT3pzN0RpZEwyUjBCYUxQVUJUMW4rWnl1ZHpHeGdhOVNPSHFpMEF3NDVzemt3Z0FraVFGSVlzWENFc2ttdVJpNXRiZXZsd3VqOXlXeldaOTZ5aXhSakZnaVJWZnRyV01ITm5WR0kxQkpFeElSQnNTMFlGbUhPTlIvUW5rbytmZjk2UG1rNUhuTURTTlJpZXdPYytEYVFMWVkwWVl2SXRJMU05cU80eVh0QldVS1FNSzBUMWVpRkFZMlFpTGd2SU1QTTlERUlTeGt4eEprckN4c1FGUkZGRW9GSER6NXMySjlua1JjSHFQQkVHNHJqWTJHbzJtYVpxUEVXVE5CRXlCTE10bjFucjVvbU9hSm9yRjRrQnpqWDZzemxwMmxFb2wyNUl6UVJBR3hzV05SdU5VdW5MWlVhL1hJUWlDN2Zncmw4dWhVQ2owL2g2M1NEZHJHL3BhclFaQkVIcWgycnU3L2xYcVdpSFh1Vnl1OTE2ejJTd0lnbkF0SjU2RWVZaTEvZTRxVGRNbWN1a0grVVRUazBna2tFd21KeEtJcG9WbFdhUlNxYkZ6WlUzVFVDNlhuWDVuUitpV20xVUE1QktKeE9Wa01oa2V0Ly9OWnRNOXVmK2NFZ2hGQVFGblJLVlM4VTBrc2x1OVR5UVN2ZzJZSTJFQzhaV0xyYkszUThDemNCdVgydTVHVEJNZFBGa3hJUkp0dEVPQWRLVGlCenYzYlVVaE8xTHBkRkJ5TmdlU1ZCUlhxY2pFeitQTXlZeTNCRUxJNkNSS3RBSHRSRnkwTW91S3FvUjBPajFXS0dxMVd0QTBEVHpQTDVYdDMwS1NKTWZCOWJnQlpiMWUvL2NBdm80Z2F5WmdDaFJGQ1lTaU0wUlZWZFJxTmMvdVNjQzVqTXpLSHJFUVJkRlhRV1FheXVVeU5qYzNSMjduT0E3SlpMSW5ZcVhUNllrZEtqZHUzRUM5WHZjc3hwVExaV3hzYkNBZWowT1daVjlkVnJxdW8xQW9ESXc1cmUvVUQ3Rm9IdVdmMDdxSkFPZDhvc0JONUl4VlF1cEZ0R2sybTFOM1hiWVdsNFpGWXpza1NVS3oyUnozV3hBQk1CUkZ2WkxOWmxrdkJvMzkvZjJPcnV0bm8xQ2ZNWUZRTkNPU0pIMEU0TWZQZWo4Q2xvdEpyZE1NdzlqVzlGc01iNHRoR0Y5THpqTDBLb2hRVUtsNlFKclEyaDFFMnlHc2RFS2dPczl6YVk1Q2JUVEpObHBrdC9ab3QxSEhnNzJxWjRFSTZLNmVCcE1jZndramhCUWR4WlVwaGM1eHdxQWRCRUo0UVNkUW9nMjBUdzRSaGlDUm9xT280QkN4V0d6c2lySW9pbGhiV3p1VlZUcS9zWE0zQWwxN3VsdVdnQ1JKdXFxcWY5M3BkUGJtdFc4QjU1b2pSVkgyQU95aDIvTFlVUmxtV1Rad0NzeUplcjBPbnVkblhmVkhJcEhvbmY4VVJiSE5MenB0WkZsMmRQK25VcW1lc09BVzFtL1gxYzF5QjAyU2g5TnF0WHI3a2s2bnB3N0lkc0xxaUxhK3Z0NTdQNWxNQmhSRk9YV044c3k4SFVXVDVoTTVIYXVCVUdRUHd6Q096c0YrOXZmM1VhdlZKc3JTRWdRQkZFV0I0emdRQkRIMldMRzZxemFiVGFmajMzSVFIUUZJQW9nbWswa3VrVWlFdkl5dkdvMEdLcFhLWDNVNm5jOTdmaFBuaU9VYmdaNWpndEt6aTRFa1NSTlpwOGVka0lkWDc2MDJzbjVOTUpOVU5NZ2xPa0VoT2xDSVFUdHoxQXpCREFGYXVBUHBTTVdqdmE1QWRIQTQrU1RFYTJlc0FHK0VFVUtXWWMra1pETFNDVU13Q0R4WmVYNjhYRm1oY1dnZWcrTzRzVUpSdlY3M0xZVCtOQkZGMFhHeU1rNjhybGFyZndIZ0cvN3ZWY0FGUWRSMS9TNkF5d0JlQTNEdGpQZm53bElxbFJ4TFpnM0Q2RGxubk1xREtJcnFPUkFNdzNETUx6b0wzTjdidU01TDFXclY5dHlmVENaZGM5M0c3UXRKa3NobXM5aloyWm5vK1Y2d1hGeVdXTFMydGdhQ0lHWnlkM2x0N0RBSi9ZdHNrd2h1QkVFNExzSUdRdEVvZ2lDTVBjNnQzNncxTjNFVDVWbVdoYTdyU0NRU0VBVEIwOXpGTUF6SXNveEdvK0dsakZORXQ2dlo2eXpMaHJQWjdDV3ZrUno3Ky91ZGl5d1NBWUZRRkJCdzZqaXR0anN4TGh4dTJFMlVUcWQ5VzYySmhJbXB5blV1RWdyUlFWT1djSyt5aXdmN3N6bFRnNUJWL3dnamhCekRuYW5JR1RQREEwSVJBS1RvS0ZwWDRtTlhaSFZkeDcxNzkxeWRoSXVJMC9tTllSalhWWFpGVVNETDhrY0lzb2tDcHVkSVZWWExVVFJhSDlUSG9vZ081eFZkMTlGb05HeC84eVJKb3Rsc3VuNEgvWXNteFdKeFlnRmxucmk5TjdkenRWTytFc3V5b0dsNklPTm9rbjJwVnF0SXBWS0lScU5JcDlNenUzM3NHQmFMclA5T0t4YjFqM1g4K0MweUROTWJKeHVHTVpHenlzM3RFcmdPbjJPVmdycGR4NEd1dURhSnNFdlROREtaakNmbmtDaUtFRVZ4bkRpa294dFVmUVRBQU1BVEJQR1QyV3oyaWxmSC9rbW50S05XcS9Xaml5d1NBWUZRTkRPeUxFOStaZys0c0RRYWpZa3VZQ3pMdXJyTUxNdWxoU0FJWTAvaVhna2poT3lFd2I4WGliOHVGWEd2OGdoc0pES1ZlMmdZUDl2Y1huUldRbUhrbzVkOEtaYzhETGV4T2tYNUdRQlFuUkRvZHFpWFZRUjB3NjIzZUFHN1FoejFac1AxK1Zhb2FES1pYQXAzMGY3K3Z1T0VicHhicmxxdGZqeVBmUXE0ZUJpR01YWlYyczhTblFCN2FyV2E0M2dra1VpNENocldoSzVjTGkva1pMMVNxVXcwMXRJMHpmSDlDb0lBVVJTbkZzUDZnNjNYMXRac08rRDZnVjlpMFhBZTBLUmxZbmIwZDJXYjlMMEhaV2ZqRVFUQk5YZkxvbHd1VDV4aDVlWk9VaFFGa2lSTmVreGIzY3p5QU14SnlzeXMxeXdXaTJWZDEyc1hYU1FDQXFGb29mRGpaQm13MkV6YXJXUGM1TERmWHNzd3pFRHc0NnhjcFNLZVdvZGZCSnF5aEQrNzh3RjBjN1Qxc2g4aUVSQzRpZnhpNWFRbHZWK1pXaUl4dlZBRUFLdERRaEhRRll0dVpWL0N2eGVmZWxwMXExUXFFRVhSMXk2R2ZxTnBtdVA1alNBSTEwbVZwbWxvdFZvL0F2Q25DQnhGQWROekJHQlBWZFU5anVNY2o2UCsxdDhCODBQWGRZaWlhSnU3eC9POHExQkUwelFrU2ZLdHk1YmZtS2JaYy9LTVkxenBITWR4TTNkeUs1Vkt2WkJ0cXdSdEhxNjUzZDFkUktQUjNuaGxHckZvSGhFYjA1YWRBYzc3RTh6SnZMdUloa3ZOcGtYVHRKNW9PczUxNk1JUmdEekxzdEZzTmt0Tk1tYXFWcXVkV3EzMlZ3QVFpRVJkQXFGb2dRaXMwT2NiVGRNbVdqRWExMFlhZUM0OCtaMUx0QklLWTQwS0hDNEFVSG5heEhjK3VqdjMzMmV6MllRb2lrZ2tFbE4zaDdqb1JFNjZpODBpRWpWbENUOTRjQitmMjlpRXdISm9rVzFjTlRvRHdlV1RRRGc4N3dVMmh2VnJTVHg4N0Y0bVFCQUVXSlpGcTlYQ3pzNk9wMEhiV1ZBdWx4MS9JK095aVdxMTJvY0F0Z0hjUWREdExHQjZSSFNQSVI3QUcwNFBDdHhFcDRlVFVFVFROQ2lLY2h3VGxjdi9mL2IrTjhaeE5NL3ZCTDhTR1ZSUUthYVlLWlVpcFE1MWFDcXlGUlhaV1ZNOTAzYWpkLzdZM2wyTXZiWjMxK3MrNy9hdWZUanYrV0NnalRuZ3p2ZmlYdHkrT3R6aS9ydzRMSERBNEF6Y3dmREF4bUp0cncxdnozcmM1L0gydEhkNnhqM2pxcG5NNmVpTUtsVXFXMUZTU1NHVkdFa2xHV1NRUVVyM1FxSlNVb2prUTRuVW40am5BeVF5TTBSSmxJSi9udWY3ZkgvZlh6M3doSC9Wa0haeXF0VnFyc2Njei9PQlE2em5vYW9xMnUwMjl2YjJrRWdrVUNxVlVLMVdsM3BOTjJhN29RVVZpOEp1Mk9GOGh3NUJ2MHUzdktSTktuZGNCNmxVaW1oeGF1VEFXZmo3V3RBMTVFbzZuYzd2N2UzRmdnaVNpcUtnVnF0UkY5RWNxRkFVQXBxbVVUY0F4WmVnRjFHL1VnMU4wOGF2R1dZdUVRQmFjamJpMC9NbWZ2akpUeUo3L2RtQnNtM2JhTFZhVUJRRnRtMGprOGxzUmNuUkp2Q0E1VkJJSkpkMkVwbldOYzU3ci9GWnQ0Tk1hampRK0lLMThhWHI4RytYWHlzZG9uWGgycWxqdUQrbU9RNTRsQ1FKWjJkbmtHVVp4V0p4WTl4Rlhwa0JCSjNPREVtUy9pY0F2MDY3blZHV1lUQVlYQUU0Zi96NDhUazhuR2wwVVc1MWVFM2F2WVNpVFhVU1RlS1ZWZVRnRmw3dElJb2laRmtPNVpoc3RWb1FSUkdKUkFLaUtCSjExMXdFMjdaUnJWWnhmSHc4WHB3a0ZZdm1kYkZhdHNScnN1eHNrZS9TN1Q1Nmx4MUYrL3Y3UkdOUHA2dlpNc2R2R09XbFBNOGptVXdpbjg4amtVZ1FyK29aaG9GYXJmWkdWZFdQcVVBMEh5b1VoWUJ0MnhaY3Zzc2d5ZjUwbFlzeXllVE5ieDdPUUNyTVhDSmdPT0dtWGM2R3pwS3dSU0tHWWNEei9MaDFzR21hYzFmOW5KdG1vOUdBSUFoVWlQWWh1NU5BSVhGdjZkY3grellFUWNBM0RzdTRVTjhPWHBkeEZabXhnZXRqYVpiRDRaY1BjUEtKZHp4UHE5WEMwNmRQeCsyUGU3MGVWRlhGNGVIaDJqdGxqZ1phcm8vN3VZbmE3Zll6QUwrTlllZ2toYkkwbXFaNXVoYnU4Z1J3MWRpMkRjTXdOa2JVRGh0VlZWM0hYN0lzKzVhVUNZSVFtblBLdHUwYkpXZ25KeWVSQ0tPbWFhSlNxZURKa3lmam4yV3pXWmltNmZtWjU1Mlh5ODU5Wm9XaUlIaGxROTdGT1JuUDh5aVZTa1RCMHExV0t4UkJONWxNQmhLS25IRjBKcE9aS29NTXdxaFUzcElrNlE4QldtYm1CWjBOTHMvdmVEMFk1T1pJVjdrb0RyTlcybG1jOVArd2M0bUFZVmVtdTQ1cUd2ais2Ujh2L1B4VUtqVmVPV01ZWnE3WVkxa1dVWmVUV3EyR2Nya2NXbG5oYlNLT0dFcDhDaWxtaC9nNTlxRHY2anJxV2RkNGJSbDQvS2lBNzU4OG4zcXN6bGs0Tk1qZngrRXE3aTRVQWNCT25Nd0JWYTFXVVM2WHh3Ti8yN1pScVZSd2NIQ3cxbEswV3EzbWV1OUtwVktlKzZZb3lsV3YxL3NSaGwycWFEWVJaU1hRc2RacU1VM3pWZ3BGVG43TFBQd0VkQWRCRU5Cc05rUGJwOGtTTkpabEl5MUIwM1VkOVhvZHhXSngvTE5Db1RET2w1bkhyRkMwckpzcW5VNVBqWTJDQ2tVTTQ1N0RlZGV1RTdsY0R2bDgzbmVzNll4ZHd4TFN2SDRIenVPaUtDS1ZTaTBzRERsb21vWk9wME1Gb2dEUW1VY0lhSnAyS1FoQ2V0MzdRYms5K0xtSm5KdGhtTGxFQUxESDhhR0ZBRzhyOXFDUDMzdjVNZFNBcTg0Y3gwRVFoSEduT3IrQnNkY0VleEpkMTlGb05EdzdROXhGN2pNN0tPN2VRM0xBWU5lS2pkMCtNbVBqMnVNUTlqcStYMXNHcnZvMjN2UnRuUGRlVHoxbXhBZVFHUnVpVFI3d2ZoWHIzd2l5WGhUbk9DaVh5emc5UFIzL3ZORm9MRDE0V3BSbXMrbTVFamc1Z1poSHZWNy9Wd0QrQVlCWEdIWXFvVkFpaHpxS0tHRndlSGc0ZC96bEYxN3Q0SFQvQ3J0RDJXd0pXaTZYaTZ5VXI5UHAzQ2d2THBWS1kvZnJKUE55Tjd0ZDc4NmZma3d1UkhTNzNjRGlqdGQ5TTVWS2JXVEh2YkRoT0E2bFVvbkluZHp0ZHRGb05CWVMwUlJGSVhaQU8rTm9VUlNYSHR0WWxvVk9wek9RWmZtMXJ1c3ZBU29RQllFS1JTRmcyM2JmNjNHR1lZaFBxaUFuRXVYMjRoZjJKOHR5NkxsRWNjU1EzYmw5cTM1Qk9PdDI4S0xWd1BuRi9OVXdMNXhWTkdjbHpSR09SalhUVTl0Nlpick1RNUlraUtJWWVnamtObklQREg0MkxtQXZ4bUgzNnFibzg0N0ZRR1pzTkxuZ0E1azB5K0hLMU5FMmh3TmM1VXFIc1B2V21uNitZeVBaanhPWG9IMng0NzhQTVVKSEVUQThEbEtwRkE0T0RzWlpFRTY1d2FwZFo1cW1lWllZNVBONXordVRMTXVxcnV2UEFEUUdnOEZGK0h0SW9jem5yamtGS09HVHkrVmN4K3F0Vm92SWJTRUlRaVNpcFpNaDVKU0Y1ZlA1Y1NlcEtHaTFXamRjMDVQdVZ3ZEhHSE1ZZGJ0YytIMW5oU2MzRjVQZmE3aHhkSFFVU2diUEpwTk9wNGtXbk1Nc05adkY2ZnFYVHFmSDQ5d3d4aktHWWFEVDZkaVNKTlZzMjVhb09MUVlWQ2hhQVR6UDN3bFZtaElPSkdWbkFFSXZON25yYnFJL3FsWHg3T3pWMHEvajFFODdaV2V6djB0U1Mvb3M5WG9kcVZUcXpwYWczUU9EcDdFVWZpWStFbTQ4akRxaXplQjhZS01mTUZKb2orTnhjVzNnZXRBSHd6QlFaNFNpZmd3NDQ2N3hyckVEQnQ0dmZyNWpRV0g4M1VTeDNXRGk3Tm5aR2NybDh0UnFwNjdyYUxWYXZnNmVzUEFybStSNTNyY2JVTHZkL21jQWZnMjB5eGxseGR6RjdKRjE0aWFvYk92dklaVkt1VjVydTkwdThXUTZtVXhHSmtCTWxvVTVKV2drcGU2TDRKUkJQMzM2ZER3K1lWbjJodnQxZHFITEw3L0pqMG5udldFWWtjeXo5dmIyc0xlM2gyNjNpMWFyZFdzNm9aRzJ2UWVXNzJybUI4L3orT0NERDBJYjIzYTdYVWlTcEtpcWVncFE5OUN5M00wWlI4aVlQbWVQWC8zbEpJWmhVRWZSSGNmdjkrOTBQQXFUblZnYzczQzdvYjdtTm1FUCtyZ3dnZzFhSjNPSUpyT0lTTWhrTXBBa0tkQWcwUW1KZEg3M2s1MUNlSjYvdFFMU0RZR0lFTkdPNDRMdEkybS9GWFN1WXdQUHNqUUFTTE03NkY0YjRIa2U1L0pyNU1XSFU0OWZ4NEZYaVdzVVRSYTdnNXN2Wm1PQUwzWnNYTENlUnRQaHRvUGhOa0V0N3BWS0JZZUhoOUIxZlh3TWRUcWRjYmhqbERnaWtkdXh5ekFNRGc4UFBWK2oyKzAyVlZYOVhkcmxqTEpxbklVV3ltcHdLNk0zREdNclhScGUxemZETU5Cb05JaGZpK080cFR0K2VkSHBkTWFOTXdSQmlMUUV6UkdMSnAydFRoY3FSeENhRklvTXcxaklBVFRKWkdmZ1JWK0w5UHZQWnJQSVpyT1FaUm5kYmplU2JuS3J3aEU2U2NZS3pXWnphVUhQd2ExaUpveXhxNlpwa0dWNTBPbDAyclp0WHdENFplcFVEb2ZiT2JOWU1ZWmhlSVp3SnBOSjRvdktiVkdyS1l2akp6WWtrOG5RZ3lHek8zZGJKUHBoOVJOOGRuN3pac2h4M0xpRXpCR0ZPSTViNnZ0UEpCSW9Gb3ZJNVhLbzErdUJCaHlkVGdlYXB0MFFGZkw1dksrRFk1dUlJNFkwdTRQREFZL0hDQ1lRT1R5MEdEeWEwOUwrOHgwTFBROFJaOUpWOTlveTVtNXpIUWRlN1ZwSVc5TmxhSFpzQUpucEV6dVo5UDV3b2lRSVF1RFYwR3ExZWtOZ3F0VnFVMTFvb3FEUmFIZzZBVXFsa3UvNTBXcTF2Zy9nZXlIdkdvVUN3RHQzWkZ0ZExOdks1R1Ira2lnRmtpaFpOcGRva21ReUdWckhNemZxOWZyNG5sQXNGaU10UVp2bmJDMFVDdVBQT1BtOUxlS3FuaVNWU2szZFp4WVZpbFJWUmExV0k4NkFkRXFqUnJrMzZIUTZXeVY0a280VkRjTkF0Vm9OOVhvWjl2ZWthUm9rU1Jvb2luS2w2M29OZ0FIZ0wyTFlHSU9XOFlRRUZZcFdBRzF0VFFuQ2JCMzNKSlpsZ2VPNFVOOHZqdGlkZFJQWmd6NCthdFh4NnZPM3E0QU13NkJVS2tXZUI1UklKUEQ0OFdPOGZQa3lrRmgwbTh0WTd6RXM3ak1jSGpBY1NoYUgrM01jTzZTNDVRZzl1bWFnZUlnNTJaMEV2akNIMnIvVTYrSGkyc0JEbCt3dUw4R0pCTjErS3hRdHNtbzNleXpvdWo3dWVCTUZ0VnJOYzBDZXorZDl6eHRGVVF6VE5HdWdYYzRvRVJIRXhVMkpqb09EQTlmeGI5UUNTUlNFa1V1MGFtYnZDVkdXb0FIRHhTd25oTmloV0N4T0NZT0tvaXc5anBrVU83cmQ3bExpbHlSSnNDd0x4V0tSZUJHUVpWa1VDZ1VVQ2dVb2lqS1ZUN21KckNxdzJvdGx4V0hMc3FDcUttUlpIaWlLOHNZMFRlY0wvMVVBejZoRE9ScW9VTFFDdkNiK3M5QnVISGNianVNOGJaaFJsQmZ0Y1lzNU5yWWRlOURIaWRUR3g2L2V0bzVOcFZLdUs0WlI0UXpjbGhsa2hpMGVycExkT0lNSGJBSXBoZ1hQc0VqMFl5Z1pyRzhHMEtJd2lJM0wwdVkrSG92ajRjN3crOVQxWWJCMW10MkpKTC9yZXZCV0tBclM5TUNMeVk0M1lkSnNOajBId3BsTWhtaWxzdGxzL2lab05oRWxRbmplL1o2MnJVNldiU09mejd2bW55d2JZcndPZUo1SFBwK2YrNWdzeTVHVmRJVkJxOVZDSnBNQnk3S1JsNkFCUTdmcjhmSHhXQ1IwU3QrQTRXUS9ERGZScE9BUnhtZnA5WHBRVlJXNVhBNjVYQzdRR05ENWZLVlNDZDF1RjdJc1ExWFZqWEFhQmNraWNuNDNVWjJiUWNhNG1xYkJ0bTBvaWpMUU5NM1dkYjFubXFiemkvNGJHSTRmbk1XbUs5RHhSR1JRb1doNXJsUlZyUU00Y051QVpWbHdIRWVrZUcvQ2hZVVNEU1NUZWE4QmJoVEVFUnRQaXU4U3VtM2g5S0tEeWs5ZmpTZm8rL3Y3a1RreHZIQ0NKcXZWS25LNUhCS0pCS3JWcXY4VFI4eHJPYnZKN01UaVNERXM3ck1jVWd3N0pjQTh0T0p6eThYQ1J2QVFpZ0RnSHJNRFlIZzlWcTkwMU9NTVNuejQyWEdxL1RZdlJSVEZVRllrYmR0R3A5TUpOY2ZNNmZ6aVJpcVZJckx1ajhvbS80aXUvRkdpNUxibXRXMExmbUgybSt5OGNNT3RNOVNpelNrY1Z1RitjKzRKenU4a244OEh6a2dNaWlNV3pYNW5ZUVJDVHg1YmlxS0U1dVN5Ylh2YzJXc1J3UWg0bTJWa0dBWmtXWWF1NjVCbGVTMXpPNTduY1hoNFNMUm9KTXN5YXJWYTVQdnBsbE0weWtJYUFPZ0RNQUZvR0phUy9kOEF2QVIxREswTmVqZGRIaGxBRGNBdmVXMGtpaUtSNmsyRm90c0x5Y1Y2MVdXS0QzZTRPOWZwVExjdG5GeTBJYjErRFdBNFVKdGMvVm9IeVdRUzc3Ly8vdmovUWNLTm5aWENUY1VSaHU0eE8wZ3hMTGo0L0lIeG5za2dZNittWkdUWEowU0lpYjE5M0RSTnZFbGNRN1d2a1JvSlNHRngxWjl1SFJ6V0JHb3l4SFJaL01Jc25jRW80WDYxbDk0aENtVUphQTVrdFBBOGozSzU3UHE0aysyeVRlUnlPZGZ4d1RLVGEwVlJWamJ1Y01RUGxtWEJzaXoyOS9keGRuWVcyZnVacGprVmJtMFlCaFJGV2ZwM1Arc21hamFieSs3cURTWUZvMHdtTTE3QUMwSWlrUmd2UEZxV05YYWRyYUk4TVlpTENCam1XSzNxbkhRVGlrYmw5MzBBSDJFb0RGVUJWQUI4REtBQjZoaGFHNXM3dTlnZWlDeHZwRmJQVGF4eHBxd092MEdEWVJpaGxwVGN0Ykl6M2JaUTFSWG9vNDRicG1tT0E2czNpU0RoeG01ZFpkWkJITEZ4Q2RrOWhpVVdWZ29tQTNGRkloR0FRR1Z0bXFaQkVBUTBEUTNsWkRxMGZWRHQ2Nm4vaTZJWTZzQzlWcXROaVkrTDRPY2tjaWFGSkVMbGFMQXNBL2lkcFhhS1Fsa0N3NWdmVUU5WkhvWmhmSzhIcTNBdGhBbkhjYTRsWjkxdWQ2bXNIZHUySVlwaWFHWEhmdTgxR1RTZHpXWWhTVktrbVllNnJxTmFyVUlRaFBGNGExbG0zVVJSN3IvanhPcDBPa2luMHlnVUNnc0pleXpManAxR28rNWNZN2RSMkdReUdlVHplYUo1Z3FJb3FOVnFLeFhQWlZtZTZ6WWNpVWQ5QU9jQVhtRW9FbFVBdktMZHk5WUxGWXBDd3JJc3o1dGpJcEZBT3AzZXVycHN5bXJ4c3lHSEtSTGRaNkxKWGRsVUxxNE5OSXhMdE52dHFSYTJzMjNuMTQxaEdJRldkMlJaWG9zYnluRUs3Y1paOEF5enNOdG1iOFVpVVZDY0FmeFYzOFlYNWxWb3dlK1g5blNiYnBabGZaMWtRZTRocG1taTJXd3UzQTNQQ2JSMEk0aElCQXduRGJadDA5N2tsTWh4VzdXbVJJZmp6UFc2SG1pYXRuVmpZTGVTTTJENUVqcEZVY1pkdEZaUmp1ZTRpcHh4WktsVXdzbkpTYVR2cWFwcWFHTE9iSmg0dlY0UDVYVko2UFY2NlBWNjRIa2VtVXhtWVNkM01wbEVNcGxFb1ZDQXBtbFFGR1djYWJRTVFjS3FnWERiM2dkQjEzWFgrWEk2bldaN3ZkNGxnRGFHVHFKWG9OM0wxczdkbVNWR3h4VUFXZGQxMzJVcVVoc2dYZkc2dTh3Nlc2SU1OOC9lb1U1blg1aFhxRjMyOFBMbHk3bVQzMDF5RkxWYXJVQ3JpNnUyOGQ5bmR2QmVNbzNqZXlLS3V5bTh3KzB1TEJJbDdkakt5czJDTUN2aU9MUk5IV1kvbkpYZldVY1JBTitzS1VFUUF1V1l0VnF0aGNKN3U5MnVwN3NwazhrRUVva29sRlhpMWRYcE5uZU5YQmVPazhockljdHBINzlOekpZNWhZM1QrYzNOc1JRRmsrSkFJcEhZS0VleUZ3ekRUSDFQN1haN0xSVVl1cTZqMFdqZytmUG5xTlZxUzRYako1Tko3TzN0NGVqb0NFK2ZQc1hCd1FFeW1VeWc4YWhUWnZiKysrOFRIYXVhcHVIRml4ZHJFWWtjM0s3QmdpREVBUHdaREV2UEdvUEI0R0l3R05CYTRUVkRSM25MSTJQWXdlWC80TGVoS0lwRW9kYW1hWWJlc1lheUhjeiszcU55aWdRcEM5cDIycWFPenhRWjFXcjF4c0NDWVJpVVNxV05DWVBXTkMzd3lxSnQyOUEwYlNXdW91eE9Bb1hFdmRCZTcxNS9QV3NWYitMZWJlM052ajArVmlZSGJYME0wRFoxRkhmSk8xa0dRUlJGVHhlUExNczQvSm1mUWVXVENreENjMDYxV2tXNVhDWStQbVJaOWhXSlNJS3JaMWwxVUQvbDdoS2sweXhsZVVxbGt1LzFaZFVsTG1Hd3lIVXVDS1pwanQxdisvdjdudGYrc0pCbGVjclJzYisvdjdhdzVTQk1PcnNzeTFxcjBPRWdTUklrU1FMSGNjamxja3QxRzAwa0VrZ2tFbU5EZ2FacE1FMFRzaXpETUl3YjRnckhjZVA4Sk5MUzd5ZzdtZ1hCY2RMTk1oci9hQUNlZ1dZU2JReFVLRnFTd1dCd0JlRDg2T2pJZStZeHdxblZwZHhOU0x2ZlJjMEQ5dllMa2ZhZ2o2YWg0Zk0zUTVGbzludm5lWjVvZ0x0S0ZyVlNyNkw4TEk1WTZKbFdkbXdRNnV1UmNzRjZENHBWMnhvUG5HZS8xOWVXaVFjUkJGc0R3OEVpei9PdUs2V3FxdUxuczNua1lqdjQvaytlRTcybWJkdW9WQ280UER6MFhYSDA2K0N6cUVnRWpMdC9YcG1tZWVXL05ZVVNQdFN0SFQ3NysvdStDeTJiTWtFTkFtbk95N0kwbTAwY0hSMWhiMjhQdXE1SFBqK1k3WURHc2l4eXVkeEdDQzl1T0NLTXc2YmxYSm1taVVhamdVYWpnWFE2UFM0blhNWng2NVNvaGJHSXFTZ0txdFhxeG54bnNpelBqWHBJSkJMZ09FN2NoRGtTNVMyMDlDd2tORTBqU2lFbE9lbnBZT2Iyc2drbFRuSEVrR1p2dDV2SUh2UlJ1MUx4MDI0SGxVcmxoa2lVeStVQ3VTeFdnV1ZaRzEwV2tXYkR6N1M2V29OUVpNWUcwQmozOTlWdEM5ZUR0N3Ivdk55d3BoRmRTYWlmbU1QRTRqakk1dkRrUzE4bWZrMUhMS3JWYW1nMm02NGxyVzR0a3htR3djSEJ3ZElyN0R6UG02QXJoWlNJY2N2Nm94T1FjTWxrTXVQT1RtNDBtODJ0V3h4bEdBYTVYRzd1WTVabFRXMjNMS3Fxamt2UVNxWFNTc3JRT3AzTzFPZkk1WEtoZkpZbzRIbCtTbFNRWlhtalJjZGVyNGV6czdOeGFkbzY1M09XWmVHVFR6NUJwVkxaR0pFSUdGNkgzYjRYVVJRZkF2Z2FBSEdGdTBUeGdBcEZJV0hiTnRFSWhNUVNUUWN6bENpSllzSy9TVGlkelY0MVA3K3hpdUxVY3hlTHhZM0xWMWxHSkZyRklHODNIdjczOWVoNjlZUFQ5bzUzeWRZYiszcHFFRE52VmRrSnRsNEdzei9maE9vbkZFbnFNQlBoYTZWMzhmQmVzQkliU1pMUWFyVUNPZGVjL0JIU2pEMDMydTMyZWEvWCszMEEwYWxzRkFxaUs5bW12R1YvZjk5WE9LN1g2eHZ0VkhIRHJaekhzcXdwMFN1czQyd3k2NlpRS0tCY0xrZGFQdW00aWh3Y1Y5R213WEVjeXVYeStQK2Fwbms2WGpjTlNaTFdKc0MxMjIwOGYvNThZeGNmSFhGMGxsRk8wYThCdURzaHFodk83WjB0YmlpYk5qbWwzRDN1cyt0M05VWEZ4YldCVC9VMytQaFY5VWE5djlPbHlXOEZkRjIwMisyRm5wZEtwVmJ5bWZpUUJ6d1ByVGgyQjZ1OUJWM0crMUE4M0VUQU1QaDhVcXgzQzZ0c216cnNBVkhGOFZ5dVhaN3I1em8xcldFSWRvTGR3VGNlSHkzMDNxcXF6bDNSbTNVOHB0TnBIQjhmTHowaDZuYTd2VWFqOGRzQWZoc0E3WHhHV1F2TEJNOVMzcksvdis5N3o2blZhaXR2dEJBR0hNZTVkb3JzZERwVEUvK3dIT0syYmFOYXJZNmRub0lnNE9qb0NPVnlPYkpzdDFhck5YVVAyRFNoaUdFWUhCNGVUdVVTYlZySm1SODh6Njk4emlmTE1uNzg0eCt2Sk85cUdkeXV4YUlvZ21FWUdqSzNRVkRWWXNYUXNySzdqU0FJYTFYNGgyVm50MHNvMG0wTFRWT0RQUmpncW0ralZxdmRzTHJuOC9tRjI0U3ZBa1ZSaUk0TEozeDdjckM2clcyZ0JYdjE2eFRuTzk2RHpKNWxvby9CMUdCVWx1VzUzM0VmQXpRTmJhRmc2M2tkenlaSnBWSkV4ME5lZklnblgvb3lYbnorV2VCOWFMVmFOeHdCMld3V0xNdENsbVhQQ1ZNUU5FM0RTQ1Q2SHdHY1k5Z3BsRUtoYkNFSEJ3ZSs3c0o2dmI1MTVXWU9YaVZublU0SGg0ZUg0NStGbVdIa2xBZFBsc1FMZ29BblQ1NUFVUlJJa2dSRlVVS3RPSmk4QjdBc2kzUTZ2VEZsWFpQNWtaWmxvVktwcktYTDJUS1F1SWxldm55SlJDSUJRUkNRU3FVV0ZwWVVSVUd6MmR4WUI5RXNYc2VaS0lwWlNaS29vMmhEb0VKUlNJd3lpbjdPYnp0YVZrWlpKMkc3UXRhTmswWGt1RFBhN2ZiVUFEV1ZTcUZVS20xMEYwRm5wY3dQbnVkeGVIaTQwWjhsQ0t0ZUY1UVpHMGJjMjAzMCtub281RTltK0xnRkx3TERZT3U5dmcwdUh1eTgwbjFXUmIwRTVRdFZRVjU4T1A3LzEwcnY0bHkrd01WbHNBR2lKRW5ZMzkrL01UQjFnampEUUZFVXMxcXQva3ZidG1zQVRnQTBBR3pIU0paeTY5alVISlp0Z1VRa0FvYlpSZHZxSm5KelNuVTZuUnR1bHJBWGFXemJ4dW5wS1RLWnpOUzFXUkNFOFhzNTVXKzJiWTlkR1VIRkFZN2p3SEVjRE1PWTZvQW1pdUpHQ0VXejRkV05SbVByUkNMQS8vaFFGR1g4ZlR2bkM4L3pFQVFCUE04amtVaUFZUmhYUjY5bFdaQmxHWjFPWnl1L0gxbVczYnFmeFNWSitpY0F2cnJ5bmFMY2dBcEZJV0hiTmgzOFVuelpoRERyMjBUOTZ2Skc4SEFxbFFMRE1OamIyOXNLdDAyajBmQVZrRk9wMUpRTmV4M290aDFxcHkrRjZlTitmeld1SWhzRFh6ZVIyYmZ4WnVUMDBUUU5xVlFLdG0xRDEvVnhDK041MUkxTEhQTDNBKzNQVmQrNytrb1FCTmRzRDlPYWZxNVRndmE5NXg4RjJnZGdLQlpGVmJiWTdYYmZuSjJkL1NhQTN3RHdFa0JqTUJoY1JQSm1GTW9FYm1IdDIzQS8yRlJJUlNKZ21OMnpTZTRVVXR5Q3BBM0RHRS9rWjhVaXJ5NlZpK0s0aC9MNS9JM3ZuR1haeUs3Wm03QUlOUnRlUGJ2NHQwMzRsV3pQKzF5NnJ0ODRuaGlHbVZ1Q3VDM3VJVGNVUlprckZJM3l1Ukt4V093UkFIblVYWnl5Sm1oRzBZcWhOZkozbTAyNEVkOFdtc2JsZUdMdmtNMW1jWFIwaE1lUEgyL0ZwR0JlbWR3c21Vd0dSMGRIYTg4MzYxNkhlNjlXbUQ3TUZYVTl1MkQ3Nk1lOHQzbHR2UlhyZEYySEtJcmpNb1JtcytuNnZFdmI4aTBsbTBXMXZZV2lvTGtVZWZFaHZweDVKOUJ6QVBkQXlXVnB0OXZkczdPei94K0dJdEVKaGtMUmRvOXFLVnVEbS9DZVRDYnBZczBDQkJHSkhHWkxwRGNkanVOY1ArTmtOczdzR0Q2cWNZWnBtamc3TzhPUGYveGoxT3YxcVM1bHR4VW5sOGhCMDdTdERFTjM4RHYrU2UrL3RtMURWZFViZjdZZHQ4OC9Lb004QU8xK3RoRlFvV2dEMmFhYkt5VVk2eDZrWHZwTVVMZUZMOHdyZEsrSHR1bHV0N3Z1M1ZrSUVwRW9uVTR2M1pJOExLNEhmVnhjaDVleDFvOEJYN0RSRjZCZHhmcjR3c2ROWkEvNjR5NW1sbVhCTkUwSWdvQnNOZ3VHWVZ6RG54MWVCL2hlN0VIZk5jamFnV1had1BlQmJ6dytBc2NFRXhQREhtd2Fob0VYTDE0OGJ6UWEvd3JBUDhPRWsyZ3dHTkM2YThwSzBIWDl5cktzYzh6SnhBcXJyUEt1NENZU2FacUdUejc1eExWc2VsTTdhYm5odHEreitZR3pRbEVtazRsMHYwelRSS2ZUd2ZQbno4ZWlrYUlvb1FsSG8yczJnSnR1cVZWVExwZkhpNm5iR0Y0OWk1ZUlxQ2pLVm4rMk1EQk4wOVg5S1lvaUM5cjliQ09ncFdjaG9lczZrZXhONGlpaXJWMXZMMzZPSXNNd0luY2RtUXRrcW13YUxWT0RvaWlvMSt0NDh1VEp1bmNuTUNRaUVjL3pHeU1TT1RRTkRTbUdEZTM0NmJGOUNIYTBKV2lmYy82RHNZdnJZWWcxTUJSUE9JNGJYNGYzOS9keGRuWTJOL3pab1dkZFkzNkswVTM4M0VRT1BNOEhFbktFWFI1UDlyK01aMmV2aUo4RGhIZk5zU3dMMVdyMXVhN3JGYngxRXRGTUlzbzZrR1ZaZnA3TlpoOEErQURBSStlQlhDNjNsZms1cTRiak9Cd2VIdDRZanhxR2dWYXJOYjUvcWFxS2ZENC85eHF5TFl1ZVRxbjZQR2JkcExxdVE5TzA4ZmZpdU5SV2tUL3FpRWJPOGV1VUpDVVNpY0NMa0xQNVJoOTlGTHgwT1V3T0RnNm1qclZxdGJxVnVUc09ZYm1KYmp1ZFRtZnV1Q3FiemFMUmFLVHV1cGkyQ1ZDaEtDUnMyeWFxS2FOaDFoU3Zqa2FtYVVZdUZLbTJoWWRiTEJTWmZSdnRkaHVOUmdQbGNubmR1eE9JMFdTYVNBQW9sVXByTHplYnBZL0JRcGs4WGpRNUM3dkdEcmlCVDIzWUFuekIrZ2RZQThOVzl3NnpYYzZ5MlN3a1NZSXN5NjZpU2g4RHFQWTFVWWJUR3l1NmU4RFBsUTd4OHJ3SjFTQXZFd3pqbWpQcVN2TmMxL1ZUMEV3aXl2cTVVbFgxUEp2Tm5nTTRtbndna1VnZ2s4bHNiZTdKS25DY3JKUDNINmZyMTd4UVp5OFJmUnR3Y3hOMXU5MjU5MnBKa3FaRURWRVUxeUkrVHBZa2JUT1pUR2JLdGJaTjNidmM4Q3NmcHpFa1EyUlpuZ3BVbnlTVHlielQ2WFIrTXhhTC9YdWdXVVZyZzVhZXJSZ3FGRkc4Sm1WdU5zd3dlVzJGVno2MGFnenJHci96NHNkb05CcElwOU5ia1VQa29DZ0tUazVPaUFaQXM2dHJtOFNsYmFGK0ZkNGdyaDhENnB3RkcrSG1GZGtZUUNJb2JXdWIrdGhOQk16dnhGRW9GR0RidG1kZUFtbFpKNm1qeUcwbGpmTVJENy94K01qejhWbkNHTEMyV3EzNmpKT0laaEpSMW9va1NhN2xPVzZoeFpTaGcvTHg0OGZqaVp0bFdhalg2emc1T1VHcjFacDdYWklrYVc1cDdxYmV3eVpoR01aVktISzczcytLak50VVlyZHBaREtaS1pGUmx1V3R6aVZ5OEhJVUdZYXgxVzZwTUxGdDI5VmRsY3ZsWWdEU29GbEZhNFVLUlN1RVZBUUlHbVJLMlM2OGZyK3JFQklYQ2QvZEJGcnlCYjc3NFkvd21mUUZnT0hrZlJzd0RBTzFXZzJWU29Xb0puMTJkVzBUZVcyWm9ZcEZSdHkvSzFsUTZwemxHMkE5bVUwRURBZXB0bTA3WFRmR0NJSUFqdVBHM1dqbW9STUlRR2JmOXMwbkdyK2V5MER5WWNwYkhEM0k1dkFvL1lEb1BZRGxjeWxHSFlGK0g4QjNRVE9KS0p2QkZZQnpTWkpxQUdxWXlTcEtKQkpJcDlQcjJiTU5oZU00SEI4ZmowdXdMTXRDczluRXljbkpYQmZSTFBNbTk5dXdrQ09LNGx3M1E3ZmJkUjJQMmJZOWxZMUlqNmZGU0tWUzJOL2ZILzlmMHpUWHpLdHR3MHNrcFdWbjA3aTU4VWJuMVI1b1Z0RmFvVUpSU0RBTTQzdEhKQldLTnEzY2hCSXVYb09uVlRpS2dHRmJlWnR3d3JvSi9QN0xUL0M5NXgrTlMycDRudCtLMWNwdXQ0dlQwMVBpTWdlZTU2Y0dUcHRNMkdKUmorM2o4NTF3QWpyZnhQdlFHSCtIMG1RMkVUQWN3S1hUNmJuWFlHZlYySzBERFlraml0Uk41QldjVGNMWFN1OFNiN3ZzTmFkZXIzOEtRQWJ3TWFpVGlMSVp5QUNlZFRxZEh3RDQxd0NlajM0MlpySUZOMlc0U0hWNmVvcVBQdm9JSDMzMEVaNC9mKzdxSUpxSG02dG9WblRmTk56Y1pYNnVsdG5IdDJYaGFsTklwVkk0UER5Y2NxNVZxOVU3RWZCTXk4Nm1jWEsvNWxFc0ZobUdZVGI3SW5MTG9VSlJTUEE4Nyt0bEpyRWFycnNyRmlWNmtzbWtxeTExVlhiVTYwRWZGZTBOa1F0aW5VaXFndi9odzMrREY1OS9Odlh6cUR1TkxJdlRFZWJzN0l4NDRPTzBodDBtb2RnUmk4SVNIWHRzSCtkTGlrVm1iSUFtUi9ZYTNldTNiaUxMc2lCSmtxdVE2eHh6dXE3UFhRRWpLVDBqelNkYTFsbVlGeDhpbFloK0FjNHdEUFI2dlQ4QzhFOUFuVVNVRFdFd0dGd05Cb056MHpScjNXNjNoam5kenhLSkJDMFpDcGw1NHNvbWQ1bkxaREp6b3dDODNFUU9wbWxPdVlxU3llVEdqMHMyaFhRNmZVTWtxbFFxdHlxYXcyc3V0KzM1UzFIZzVTcks1L001QUw4Wmk4VWV4V0l4Nml4YU1WUW9XaUVrSzdkVUtMb2J1SzJ5MmJhOXRKdUFsT3RCSDFWZDJWaXg2UGRmZm9MdmZ2UWpYRnhPMzFRWmh0bll3YWRqMTY5VUt1UEJBT2s1UGRrYWRwdDRiWm1vaFNnV1hZeWNSWXRrRnRrWUVKV2NBY0RGdFRGVkJ1WU1WTnlPclVrQmIxRTNHNm1qeUd2Rk1iVkxWcHI4dGRJaDBYYkxpTk95TE5jeHpDUjZoaG5IQm9XeUNYaUZET2Z6K2EzcHpMVU56SE1WYmVxOUduQmZjQ0lOcG02MVdsUHVVcHA5NVU4bWs1bkt3QUtHWFdCdlcyYVAyMWpPTUl3NzRab0tpcHNqRVFEMjl2YVFUcWUvQXVBSG9GbEZLNGNLUlVzU2k4VjJZN0hZSTBFUWZzNXZXeElWZVJzbmlwVGdlSldmcmZLRzJjY0FWVjJaNnZxMGJzNjZIZnpqSC8zT0RSY1JNQlNKTmxWUVVSUUZsVXBseXE3UE1BelJSR1NUdzZ0SnVMUXRuRjcyUWhNZGUyd2Z0WVFGTXhaTUxEcmZJZXR5QnR4MEUzVTZuWEdyWVM4NGpuT2QvSmg5OXdHZ2JsdFRaVzVlZUsyc0NvUkMwVmNlRmNBeC91NjBaUWF0c2l3L0EvRDNCNFBCT2UxSVF0bEFyblJkUHgrNWltcVljUmF4TExzMXBiN2J3cXlyYUpIVzdhdUE0N2k1NHpCWmxvbkhZRTY3ZW9lUit5RzBmYnh0NUhLNUc5M3hhclVhZXIzZWVuWm9EZEN5TTNlOHlqMUxwUkxMY2R3ZWdQMVlMUFl3Rm90dDNrWGxsa0tGb3VVUkFmeHFNcGs4OE5xSU5BZGlFMitvbFBEWmhKd2loejRHYUpzNlRpOWxmR0ZlclMyN1NGSVYvSXRuSCtMN1AzbnUydDc3OFBCdzR3UVZweXRNcFZLNU1jQzBiZHQzMEJsbWVQVk9MSTc3ekE3Mk9ON3p6MzFtQjd2eGNGZlNIZEd4RjFMN2R5TSt3TXZkYTV6dmtBbEduKzlZNkxGa3g2NXFYK05xUXRSeHdscTlTZ2VjQVo3WENybnBjZTRFY1VpRjVTcjhjdmFkVUY3SERWVlZ6eUo5QXdwbE9XUUF6MXF0MWcvZ2tsV1V6V1pwQTVFUTJSWlhrVnZaNFdRNUdRbXRWbXRxekZZb0ZPanhOQVBIY1NpWHl6ZHl3VjYrZkVtYzMzaGJ1RzNPcVRDUkpNbDEvc095TElyRm9namd2d1B3R0FETkxWb1IyeE9Hc2Juc0FoQlRQb2w5cExXMzI5QWxnckk4eVdRU0hNZk5QUzdXdGVKd1BlaWpaV3JvWGw4aHplN2dBWnNBVCtCSVdCYmxTc2V6V2hVdjI5N2hrWWVIaHh0M2ZpaUtzbFFBNC83Ky9yakx6Q0xzeGhta1dRNzNHQllwWm1laDExRHRhMXphRm5xV09TV2VMRUlmQTV4ZHFkaFAzTVBEblhCY1h4ZHNIeGRzSDRJZGcyREhJZGh4TUhoYlcyWmptRW1rTUFOY1hCdEU3L3Y2K3UxRXhuRVRBV1FUbWtWektFZ3lqQnpjM0tkQnVwa0J3T05IQmQvekNoaUswMEVGMk5Ga1VNWk05Z3VGc2ltTVhHN25zVmhzdDE2djE0ckZZZ25BMGV4MnBWSUpwNmVuSzkrLzIwcXIxWnB5am1ReUdlSnlybFV4NzFvL3lsd0wvRnExV2cxUG5qd1ovNzlVS2hGM09iM3RaRElaN08vdlQ1V2FPWmxFdDFrMGNWdjBwNDRpYityMU9vNk9ibHlpQVF6UDJWd3U5ek9kVHVjZkFQZ3pLOTJ4T3d3VmlrS0E1L21DWHdBdHFVdUVya1RjSFVSUm5EdDRXdmZOODNyUVIvZmFRUGZhd0U0c2poVEQ0ajdMZ1l2RlF4V09TQVVpWUZpYXRVbXJrcFpsb2RWcUxUVDQ1WGtlZ2lBZ2s4a3M1STdhalRONHdDYVFabmZBaGVBS1NqRTdTSTFjU0diZlJzKzZSdHZVaWN1azV0RXdMdkhHTWxIY3ZRY21GbzV4VldFR1VCZ2J3UHpCZC8xS3hYM1czNUZwRC9wNFBlRjZja29GL2NyT2JOc0d4M0dldjdOSkFXdFJ3c3dveTRzUHdURXNUQitSYXBFSmpXbWFHb0NmZ21ZVFViYUFUcWVEWEM0Mzl4eFBKcFBJNVhJYkoyWnNLNUlrSVovUGo3OXJyNFd4ZFpCT3ArY2VCNHYrL25WZFI3MWVIenRta3Nrazl2ZjNjWFoyZHcyWFBNK2pWQ3JkdUY5cW1vWnF0Ym94eDBKVXVJMGwxajIrMzNSVVZVVzMyM1YxMlJlTHhiaWlLSGxkMS84NUFOL0lGOHJ5VUtGb2VmNmpUQ2J6ZGIrTlNGUmtqdU8ycXVNUlpUbmNWdGxzMjRZc3l4c2hqRnlQSnRYT3hEcU9HSGlHQVJlTGc0c3oySW5Gd2NYSmhBRDV6UnY4bTA5ZVFEV3U4UEJlNmtaSXRSc0hCd2VobFdhRmdTekxxTmZyZ1FZNlBNOGprOGxBRk1XRjg1VWVzQnl5Tzd1UnVyeTRPSU4zT0FidmNMdm9XU2JhcHI2d3kraU5mWTJxcnVDUUYwSVRpOXlvWDZsUWJRdkZYWDgzY3MrNkh2L2JNSXp4T2VqblZ0TTB6Zk9jSEo0YnkvOXV2QWFTajhSZ2ppSmdXSDVHSXNZdVFIOHdHUHpkS0Y2WVFnbVpLd0RudFZxdGRuUjBkSUNSRTN6ME40QmhFTEVzeTdkK0Fyc3FabDFGYmd0ajY4QnRQQ0hMOHNLdjJlbDBJQWpDK0I2UnpXWmgyellhamNiQ3I3bU5NQXlEZkQ0LzF5bmRiRGJIWmQ1M0Vlb21JcVBSYUVBUUJOZXhjcWxVU2xVcWxYZGlzZGdqQURMTlI0d1dxa29zenoxUkZEM3ppUUF5RlhuVHltb28wZUsxeXRadXR6ZENLSnFsandFdWJRdVhBWjZqYWRxTnJoYmJLQkpabG9WR28wRmNVKytFSHJ1dFlwTnlqMkZSVE53THhUMFVoRFRMSWMxeXVMZzIwTDIrV2tnd3V1cmJPTDNzb2NTbkZpNk44OEllOU5FME5MeTJUT1E1TW5mV214azNrUU5KU1puWE5UcmxJeEtwOXJYbjR3NWU3bE51Z1lXRVIrTERxSVFpQ21WYmtBRThVMVgxcXQxdVkyOXZ6d0R3QVlCSHpnWXN5NDVMaGlqTE0rc3EycFR5TTdldXFZcWlMQzBTMW1xMXFSTDV2YjI5RzRIWHQ1bGNMamQzdktNb0N1cjErcDEzMDZ5cW8vRzJZOXMyYXJXYWF3bGFNcGxFUHAvL1VxUFIrQUdHSldqbks5eTlPd2NWaWhZa0ZvdnRBaEI1bnY4NXYwbWdwbWxFQ3JwUHpCSGxGcExMNWVhdU9LbXFDc013TnJLN0Z5bU9XMlBSUWRMKy92N0dpRVNLb3FCV3F4RU5KSG1lUnk2WFczcmY3ekVzOWpqZVZXQko5R01RclRqdTlXUFlIZHgwN05nWTRDbyt3SFZzZ09zWWNCbnZRMk9DbDVNOTNCbVd1YlZOSFJmWFp1Q1N0RDRHZUtVcnlITkp2TVB0K2o4aEFOMXJBNjh0RXp1eE9ORnIyNE0rM3RqVGppSUhrakpBcjJ0MFdFNHZMNkhvWVNyNFlzSWlMaVJDNG5SRmo3SU5UR1FWY2ExV3E1REpaTElzeTJZQWNCaUdvbkxBVUFpbUpXamhNZWtxMnBUeU03Y0ZnVERjSHJadG8xS3A0UER3Y0N4R0ZZdEZjQngzcTUxRlBNK2pXQ3plV0VqcGRydVFaZmxPZFRYell0M0gvamFocXFwblpjWGUzaDRrU1NycXV2NnZZckhZbndLZ0RnWUQrZ1ZIQU8xNnRqZ2lnRi9ONVhML3Z0K0dwUGxFMUZGMDkvQnlEVzN6WUxYZGJ1UDA5SFRoejNCd2NMQlV5SE9ZT0IzTi9HN3lxVlFLNVhJWlQ1NDhXVW9rMm9uRmNiQ2J3aUYvZjY1SXROTUg5ZzBXaDhZT01qWXpWeVFDaG5rNTkvcHhpRGFEZHl3R0pYTUhUM1FPQndhTGQ2NFpKUHJrZVRwTUxJNUM0aDdLeWZ1NHQ2QWcwakkxMUsvVVVMdnE3WEU4ZHVNTWNYRDJaTmtaTUgzKytaVWQrSlVHKzMwdjlvQk1ZUE5hVkZoRUtCSjJlYVFTNFFwMEl4Z0F2NHJodlpCQzJRWXMyN2JWYXJWNkR1QmpBQzhCVE5sYjgvazhHR2ExN3MzYnltd0h0RTF3U2JzSlJjdVVuYzFTcTlXbXh2MTdlM3M0UER5OGRjY1Z3ekE0T0RqQWt5ZFBwdVl2N1hZYlAvN3hqM0YyZGtaRm9nbG82Vmt3YXJVYUxNczlYN0ZVS2lVeExCK21YZEFpaEFwRmk3UExNTXlYUkZIMHJWY2dVWkU1anR0cTl3aGxNUktKQk5McDlOekh0ckZ0YUxmYnhZOS8vR00wR28yRjY5QTNwZHpNTUF5OGVQSENWK3h5QktLam82T2x4ZDdzVGdMbDVIMmtYVUtaRS8wWTNqVjJjTCsvK0tYN1hqK09keXdHaDhZTzNyMWlVVEFaN0JCcU4xeWN3U0YvSDltZEJIWVhLSVY3YlptbzZrcW9ZdEVoTDJDUEkyc0NNRmwyQmt4UFhKck5wdWVneEErLzBqclMwajIzam1jY3d5TEJMbGErdDRqQTVJY2dDQW5NNUx4UUtCdk9GWUJ6VlZWcjNXNjNobUhKd3BRYmptVlpIQjRlcm1QZmJpV1Q1YjF1TGVsWGhWY3pnakRMb2h4bjBhUXdJSW9pam8rUGIwM0RtbHd1aDZkUG40N0hhcFpsb1Y2djQ5bXpaMmcwR3RROU13ZjZuUVREdHUycDY4Y3NvOUQ0UXdEL0FIUWNFaGxVS0ZxYy95Q1h5MzJUSkh5YVJFVmV0T1V5WmZ0eFcyVnpRcTIzQVVjZ09qczdXL2hteURBTURnOFBOMElrY2h4UlhvTkhqdU53Y0hBUWlrQzBFNHZqWFY1QUllSGVKU3crQUlvbUcwcG5MWWZkd2RCeDlCV0R3NUcrZ3oxQzBXam9Ma3JqWFY3QUE0Sk9ZNU5jOVczVXJzZ3lxa2dJRXBTdHpuVC9TaVFTNDJ1dnJ1dW9WQ3F1WXBHWDhMbUlhRFlQcnd5RFpVcklvaENLQUlEak9ER1NGNlpRb2tIRjBFWDBjYVBSYUZ1V2RRbmd4Z252bEtCUmxtZlNWWlJJSk5ZcWxMaU50YUlZWnpsaVViZmJIZjhza1VqZ3laTW5XKzFhY3dTaVlyRUlsbVZoR0FicTlUcE9Uazd1ZEZBMUNWUW9DazZuMC9Hc3l0bmIyd1BQODNuUUtKM0lvRUpSUUdLeDJPNG9sK0dkVENaelRQSWN0eFhpU2FoUWRIZnhFaG5hN2ZZSzl5UVlobUZNV1l5WHVRbHlISWR5dWJ4MmE3cGxXWGo1OHFXdkl5cWZ6K1A0K0RnVVVlc0J5NkdjbkY5bU5zbWphd2JjSUR5UmFCWUdNV1JHb3RGdi85RkgrQmZQUGtSTHZ2QjhUb3JaUVhFM2hmZVM2VUFsYVplMmhiYTUybUJMM2JibTVpdmw4L20zMjR6RW9ubDRPVDU1SDZISUpIUVRlWjFEeTRnOWZpTFRvcE0zanVPK0JMcVNSOWtTQm9PQk9SZ01MZ0EwYk50K1dSbWU3Szh3eDFtVXorZkJjY0ZFY01wOE5zVlZGR1Ura1J0bloyZDQ4ZUxGMUFKRW9WREEwNmRQdDBxTW5CU0lFb2tFTkUzRHk1Y3ZxVURrd3V3eFJScEJRcmxKclZiemZMeFlMS1lBZkM4V2l6MGE1UWRUUW9RcWNNRVJBZnhxUHAvL2F5U2xZaVFYQjU3bmFkblpIY1pyWlVsVlZXaWFSaFMwR3lXV1pVSFhkU2lLQWtWUmlNUlBVbmllUjdsYzlzeC9XUVh6dXJQTnd2TThEZzhQUXpsZjQ0aWhrRWdTNWV2RUI0Qm9yMllGOHVUMU9jNHYzK0RLdHZDOTV4L2hVZm9CdmxaNkYzbnhvZXR6bkpLMGkyc0RUVU1qQ3J6K3dyekNmV1ludEJCb1AyYmRSQTZKUkdJcXdGYlhkWFM3M1JzaW9HVlpydWZpUFIrUnp5UXN0Zk82WHl6aktFcnRlZ3RCaTU1N3lXVHlLNnFxaWdzOW1VSlpIektBWjdxdVh6V2JUUlFLQmRvRkxVSW1PNkNKb29penM3T1Y3NE5YMlZuVXptMWQxM0Z5Y2pMVkVZMWxXUlNMeGZHOVI1S2tqUk5iZUo1SEpwTkJKcE1aM3lOa1dVYTczUTUxREhnWDJMVGY3VGFoNnpwRzNTcm5QaTRJQWpLWnpKRWtTVDhBN1lJV09sUW9JaVFXaXpuZE1mWTVqanZLNVhJL1EvSThFcGZGTnEwcVVNTEhiNUJTcVZSUUxwY2pGWXMwVFlOcG1sTVRWV2RGeERUTnlDeXptVXhtM0JWbG5YUzczYW5CYXk2WEE4L3pVei9iMzk4UExXQjdKeFpIYVRkRkxKSUk5dXJNbjA4ZlBNTFRyei9Ddi8yaWp0LzYvRk9jOTE3amU4OC93dU85UEw3eCtNZ3pKOGZwa0ZiVkZkOU1uajRHcUYycEtDZnZCeW9mVzVSTGovYjArWHdlc2l5UGozTkprbTRJUlY3dU1TNGV6djU3RFNZVDkrNHQvTHFDajFDMEtBekQzQU4xRkZHMmpNa3VhSjFPcHlDS1lqYVpUTTd0Z3BiUDV6MXpNaWhrT08ydVdaWkZPcDFlZWNpeG0zTjc4cm9mSlU0cFdpcVZRcWxVR2k4MkpSSUpGSXRGNVBQNWNhY25XWmJYSml5azAybUlvbmpqZnRmdGR0SHBkTzU4aS90Rm9ZNmk1V2kxV2hBRXdYVWVsTS9uNDVJazdZQ09SMEtIQ2tYa3BEQk1WdityK1h6KzN5VmRnZld6dERJTXN4R1pMSlQxNFRkSXNXMGJwNmVubnEyNWc3elhKdFJKTXd5RC9mMzlqVGoyYTdYYVZIRDR3Y0VCRW9rRXF0VXFnT0ZLNU9IaFlXaEMzVzZjd1NFdkJCSkg3Z1hvVUJZV1R4ODh3c05FRWszdERYN24vS2Q0Mlc3aHMrNFhlTEwvWmZ4Y3lUM3NsWW5GY2NnTGFCb2FYbHZleDlyMW9JLzYxU1ZLZlBRZEg5MGNSY0J3ZFRlZno0K0ZRVlZWWVZrV3NkUEdyMnp3MHVPOUozRWJUS2JUYVZ3dkdRQ2VTdXhDTlc1MnNkL1dyQXdLSlFUR1hkQ09qNDgvWmxtMmorRTRiMnlmTEJRS2tHV1pUcENYUkZWVktJb0NRUkN3dDdlM2NxRm9sZmxFWHFpcWlwT1RFMlF5bWJITENoamVnMFJSSE8rbnBtbVFaVGwwQi9ja0RNT0E1M2trazBtSW9uaWpxWTVsV1dPMzB5YU1HN2NaNmloYUR0dTJVYXZWOE9USms3bVBqL0ltUzl2WUJHalRvVUtSRDVOT0lnRC9SU3FWK25vMndPelc3NkNsYmlJS2FYMzhiYkg2OGp5UFVxbTBFZVYwdFZwdFBHQmxHQWFsVWdrOHorUDA5QlMyYlNPZFRxTlVLb1ZXRnZlQTVWRGNEUzc0N1VTWVRlUUd6Kzdnd3REd0x6K3Y0R0VpaVFjSkhrM3REWjZkdmNMTDh5YStWanJFVng0VjVqNlhpY1dIbi9OSzlSV0wzdGpYK01LOHdqdGNkQXRCWnQvMkxZZkxack5UMlZTeUxCTUptVHNodXFIY0JwT0NJRUFuRkp2Y1NPM3ljNFdpWmNKbGs4bms0alluQ21YOVhBRTROMDB6MVdxMVlzVmlNWTYzSzlKalo1RlRna1luZTh0UnE5WHcvdnZ2UXhBRWNCeTNVdkZoVTRRaUIwbVNJRWtTTXBuTWxFRGtrRXdtcDhaSWs2NXYyN1lYY3Fna2s4bXBFanczbDVXaUtPUDlveXlHcG1sVDN5KzlkaXlQcnV1bzErc29Gb3R6SCtjNExnYnFLQW9kS2hUNTR6aUpIak1NVXlxVlNyOUUrc1J1dCt0NWNXQVloZ3BGRkNTVHlWc2pBdm1SeStWY0wvS3J4TElzVkNxVjhTb3h3ekFvbDh2Z09HNHNFb1ZaYWdZQTJaMEVDb250bWxmL3lYZUtLQ1R2NHgvOTlJL3hTaGtHV3ovZ2VPaldOWDc0eVUvdzhyeUpiencrUXNZbGFKbFVMR3FiT2g3dWNKR1ZvSkZtQkdVeW1YRldFZWtraHFUc2pEVE0ydTErSVlvaWJJTGNKeS8wL25KQzB6d1locUVOTVNqYmpOTUY3YXJUNlVBVXhaM1I1TzRLRTg2aVpES0pmRDZQUnFPeHZqMjlCWmltT2M1L0UwVnhmSzJOR2pjM3R0OFlmUlU0Z2d6UDh4QkZFWmxNWm00R29pTWNSZFh3dzdJc3lMSk15OHRDWXZhNG9xVm40ZERwZE1Eei9OeEZQRTNUK2hqbUNGTkNoQXBGTHN3NGlSNEQrRTlLcGRLZkN4Smk2MWZYbnMvbjF4N2dTMWsvcXh3d3JZdFVLb1Zpc2JoMkZ4RXc3TlpXclZiSGc2SEowcklYTDE3QXRtMGNIaDZHT2lEYlQ5d2pDcTNlUkw1MEw0M3Z2UGROZlBlekYvaXcyOEJyVThjRGpoK1dwZlZlNDdzZi9jZ3p2NGhFTEhMeWlnNzUrNUY4QnRMU3IyS3hDTU13ME92MWlKMSszQnh4cTZZclUrVjBwRUxWdkFHNjArekE3QzllZW5aeGJjQWVMQ2MwVVNpM2pjRmdZQUs0aU1WaUFMQmJyVmJqeDhmSHNVUWk0WXo5eHV6dDdVSFhkZXF5V0pKR293RlJGS2NhQ0VTTlZ6N1JwcURyT25SZFI2dlZBcy96RUFRQmdpQkUyZ25XeVVNeURPUE9MRmF1aW5VTGtMZVpzN016MkxZOXRaRGI3WGJSNi9VdVFSMUZvVU5WQ25mR1RpSUEvOUhCd2NHZkUwV1IyS1BmYkRZOVY2UjVuZy9WclVEWlhrYUovYmR5QU1weEhQTDUvRVprRVFIRFZaM0pFb0xKTXJpWEwxL0NOTTNRZzhQREVJbXVZZ09zMDR2RXN6djQ5cnNmNEYzaEliNzcyUXU4Tm5YbzlqVytLdTZocWtqai9LSnZQRDZhVzQ1VzNFM0IxaFc4OFFpVXZyUXR0RTBkZTF3MHdjdWtGSXRGcUtvYXdGRTBuZkZqOW0yOHNhL1JOQzZ4RzJmUnZiN3lEZmIyd3Bua0xKTlI5TVpEcEhPYlJGRW9kd2dWd0V2YnR2dTFXazA4T2pxNkJIQkRYZDdmMzRlbWFkUnhzUVMyYmFQVDZhQlFLQ0NWU3ExRW9IQVRXMWFkazBTS0l4bzVRaHJIY2VOeVBVRVF3REJNb0RHSzA3VVdHSXBEempGTXhZem9tSFVRMGU4NlhCcU5CaVJKR21jc2pxNGpmN2pXbmJxbGJKeFFOT0hrQWNNdy8ya21rL256blU3bnV3QitFNEE4NmxheGl2Y2ZPNG55K2Z5ZnltYXp4RXZkVGdDY0Y1dlE2WW15T1RqSHcyMFJpemlPUXlhVFFhRXdQOE5tSGN3VGljcmxNbGlXUmIxZWg2N3JvWXRFZXh3ZmlwTklZL3JJMk9zUEhaNHNSV3RxYi9BVHVZMnZpbnQ0a09EeHczWU5QL3prSnppWEwrYTZpNHE3OTN5N29iVk5IZmVaSGVKdWNLU29IZ0xWTEtOUXhJVlh1eDNuVlBmYUFHQVFQOC9ObXA3SlpCYmFEd2RIdUtKUUtQT1pjQlp4cXFxK2JEYWIyVUtoa01jd28wakVhSldhWlZtVVNpV2NucDZ1Y1crM24xYXJOVzY3dmdxaGFONDlmWlBjUkg2WXBqa2VHOUlPZk52QnJEQkV4ZVh3b2QvcGF0akVmQUhIeWZNM0R3OFAveC9GWXZFdmNSejNkUUJmdzZqMk1CYUxzWk4vSW5yLy96VkdUcUpDb1JESStsT3IxVHpWNDN3K3Z4RWxPSlROb2xRcVlYOS8zMy9ERFNhVlN1SGc0QUR2di8vKzFvaEUzVzRYc2l5SExoSTlZTG5RM0RGWHNjMHBHM0pLMGI0cURpK0xQNUhiYUdwdjhOZS84blhzTWl4ZXRsdjQ3My8wUTV4MXA0VVdKaFpIa1NDanFhb3JTd2MzTDhzeTJYRmZtSXV0WmN4ek1FMEdqOTViVUR6enk0ZWlVQ2hqWkFEUFdxM1dEelJOKzljQW5vOStOc2JKSzZJc1I2MVdRemFiamJ6cm9scyswVFlKUlpUdGc0b1lsTnZDeGppS0pwdzhmeDNBbC9QNS9IOGdDRUlhQUVxbDB2K21VcW5rQWRSaXNkaS9BYkFINEI0QUcwQXZGb3ZWTWJ5Wnl4aUdFR0wwTjdFREtSYUw3V0lvUk8wRCtLc2N4NVVQRHcvL2ZOQ0pveXpMbm5iV1ZDcTFVUk5veW1heHQ3Y0hSVkUyMWhJOWowd21NNjZwMzBRQjFFc2tVaFFGalVZRDVYSjVib0Rrb2l6YTNjeU42emhnWXdBR3ErOStOZytlM2NGL1dmNFQrQi9PZm9JZnRtdDRwVnpneXJid25mZStpZC82L0ZQOFJHN2orejk1amtmcEIvaWw5NzRLWVhjb21QRU1pejJPUjl0MEgwUTVlVVhsNVAzUXdxMkQ1dnNrRWdud1BEOXU1K3o5Mm04WEJiNHdyM3k3cTdreHoxRTBXVExCeHhlYlVQa0pWN1QwakVJWk1ob3Zuc2RpTWE1V3F4V2VQSG1TQlpEQjBGazA3b0pXS0JRZ3l6S2REQzZCcXFwUUZHVXA5eVlKYm1NU0toUlJvc2F5TEpwRFM5bDZOdWtJVGdGNG5NbGsva3FwVlBxRnlRY0VRVWc4ZmZyMEw5ZnI5Y3Rlci9jZEFERU0zVkFERE1VaUhVQUh3OVdmL3duRDJ2SnpBTTlHZjVNZ0F2aFZBSTl5dWR3djVmUDU5NEtlNEU2N2JUZDRuc2ZoNFdHZzE2VGNQWnhXdkpzNkNFMmxVdVB5SEo3bk4vcEdhRmtXcXRYcVhKRkkwelRVYXJWSW5FUmhpa1FPbC9FQjd2YzNReWh5K0VzSFg1MHFSZnYxVHovQ2Q0Ni9pY1A3R1h6M3N4YzQ3NzNHZHovODBWUjIwUjdIUTdXdlBRT21yd2Q5VkhVRmg3d1FpbGkwU0w0UDZVcjNhOHVFcWI4QkFPaEw1QkRNQzgrZUxEdTd4OXdNQ3ZmajR0cFlXTGlpVU80d2xxN3JhclBaUEM4VUNoOEQ2R09pQ3hydzlqNU5zMGNXcDFhcm9WUXFSU29VOGZ4TlY2L1RZcDVDaVJKZDErbENER1hyMmFRWjNpNkF2OHd3akRqdndVUWlnY2VQSDk5emd0Z1VSWm1zYlU1aXVPcHpCT0EveEZBdytsY0Fya1pPSVdEa01CcjlXOFRiWlBSZEFQOEpnRndtay9senVWenV5YUtUUnI5QncrSGg0VVpQcWltYkFjdXlLSmZMb1lsRkRNTWdsVXFOMjZzdWF2VU9HcUM0Yml6TFFxVlNHWmYwVElwRWpxanJkRHNMaTZoRUlnQzRZRzNjTnpldld0akpMZm83SC84SXIwMGQvODNKNytBNzczMFQzM252bS9oN24zNklLOXZDRHovNUNUN3JkdkJMNzMwVkNYWUh4Y1E5VkxRM25pTEdWZCtPdEJPYUgwR09DOUt1YWw3TW51dVRaV2NBa0ZxZzlNekx1ZVVRZGVrSGhiS0ZYQUU0YjdWYUtVRVFZb0lneFBGMnpKZ0N3Q1dUU2V6djcrUHM3R3g5ZTdubG1LWUpXWmJCY1J4eDg0Q2d6SE1LVXpjUlpSVm9tZ1pCRUlnN3FGSW9tOGdtcVJZc2dOMThQdi9FYXlOUkZLZnMrSlpsUVpabHFLb0tXWmJqdG0ybkFQd2lnUGNCdkFmZ2U2Tk5IWWNSTU13Nytvc0FrRXFsdmlxSzR2dVpUQ2E3cUloaldSWWFqWWJucEQ2Zno0ZGEya0s1M1N3ckZxVlNLV1F5R1FpQ2NHZVB1MnExT3Y3dUdJWVpDN1dPeThqcGRoWVc5NW1keUVRaUFOQ1lBYTVpZmV3T05rOHNjbktMZnYzVGovRGExUEYzUHY0UnZ2UGVOL0czbi80eWZ2M1RqOURVM3VBejZRdDg3OW1IK0tYM25pS1RFckRIOFdpWjh3T2NIUzV0Q3hXdEY1cXpLQWlyRkZBVVJibXh5RENaazdRYlp3Si8vb3RyZzhoSnRjdzVZTnYyNHEzWUtKVE5SUVh3RXNCVnJWYkQ4Zkh4em1oOGVJVUpaMUUybTRXcXFyZW1DY1U2NkhRNmMxMC9ZVEh2dGFsUVJGa0ZVWW1mRk1vcVdidFFWQ2dVZGx1dGxnamczWFE2L1l0QnhScVdaWkhOWnNmdHQ1MDJrSXFpM0Fmd2JRRC9LWUEyQUJQRG16OFloaEdUeWVRN2dpQnd5K3k3cG1tUUpBbVNKSGs2aVJpR1dTb2NsWEkzWVZrV1Q1NDhRYjFlZCsySU5Fc2lrVUF1bDlzcTUwOFUxR3Exc2VPUVlaaXBES0pHbzRHOXZiMVF2NlBkT0lQaWJ2UU43RC9uYkJ3YVpJTEJGNnlOeS9qYmVieGd4eUhhOGNoeWpyNTBMNDIvL2ZTWDhmYysvUkN2bEl1eFdQU2Q5NzZKdi9QeGo5RFUzdURpVXNYM25uMDRMa1Y3WTV1K2JweXJ2aDFxR2RvbU1tL2lNbGwyRnRSTlpBLzZSRzZpWmRFMDdUTHlONkZRVnN4RUZ6U1lwcmxicVZSUUxwZXZSK1BUS1dkUnFWUWF0eHVuTEVhVUUrclpPY1ZrcTNnS0pVcEl4KzBVeWlhemRxRUl3ekt3cndINFpqS1ovT3F5TDhheUxBUkJtS3dMalFNSXJVV0ZJdzdKc2t4OGM4dm44N1RrakVKTXQ5c2RIMXVDSUtCWUxLNTVqN1lMV1phblZuZ25uVVAxZWgwOHowKzVFcGRsSnhaZm1ZaGh4QWY0Zk1mQ2w2N2RyeWVYOFQ3cW5JWFpPQ09Oc2ZIRndFYkdZdkRRaWtZdzR0a2QvSzNqZndmLzhOVnpmTmh0NE5jLy9RaC8vU3RmeDNmZSt5YSsrOWtMZk5odHdCeVZvcDNMRi9pNXJ4emhsZTV2eTc3cTJ6aTlIRHFMK0FXN2Z3VmxsZGtDczBKUkpwT1p1bWZjWjRPdGFYUUozVVFjdDlSYUNZVnkyMUVCdk5SMS9hclJhS0JVS2psQllWUE9vbks1akpPVEU1cDdzeUJSZlcvejNFUVRrUlVVU3FRNHh4b3RQYU5zTTV1Z1h1d0NlQVNnaEdIVzBFYmg1Q0U1bVVoQmIyZ2N4MkZ2YnkraXZhUGNSZ1JCd09ucEtXemJScXZWR3YrYzR6aUlvZ2hCRU1Bd3pNWUhTYThEd3pDbUF1WHorZnhZRk9wMnU3QnRPOVR6TVk0WVNydXBsVHBkZW13ZlYvRnJQTHBtY0svLzluMnZZbjJjNzlqUUdQZmNuMzRNK0dMSGhzVGFLSnJzMVBQRDVOdnZmZ0RkdXNaUDVEYiswVS8vR045NTc1djQ5cnNmWUpkaDhjTjJEUUR3c3QzQ2hhcmdnK01uZURQd3Y2NzJNY0NuK2hzOFlEa1VFa25pNzF5MXI1ZjVLSkdqYWRxTlJZZko5dHR4eEpBS0VHUnQ5bTNmVG1jT1ZDaWlVTnlaZEJaSmtyUUxBS1ZTeWJtZ2pKMUZMTXR5VHFrNEZZczJoM25sdzlUbFFWa2xORGlkc3UxczBpenp6MHVTdFBiVzhZNG9wR25hUXNMUUxMVExHU1VvaVVRQ3g4ZkhVNU5IMmptQmpOa09aODcxUk5NMGREb2RQSG5pR1lFV21CS2ZXcG5EWlJJalBzQlpZdkVBNVg0TU9FdFlFT3dZQ2lZYmlidm92eXovaWJHenlDbERtK3lTQmdBWGx5cis3WXNUSEg3bEs4U2k1MnZMUk0rNkJqK2FCRENJb2JoN3oxVTRDaU5vT2twbU8vNDRYUVVkMG15d2JtZE5RMXRacHpORlVkNnM1STBvbFBXaUFuZ3BTZElWei9QWTI5dTc0U3lpNGRiYkFYVjNVRmFKMDRDSlF0bFcxaVlVeFdLeDNWUXFKUXFDVUFMd253TjR4elJOdE52dGxUaHdGRVdCWVJnd1RST0tvc0EwemREcnBHbFdER1ZSRW9uRW5RMmhYcFJtczNranZCb1lpa1RWYWhYbGNqblU5OHR6eVVCT2owMUVZUWI0ZFBjNk1uZlJ0OS85QUFEd1liZUI3MzcyQXYveGw1L2dUNzR6TEtWMHhDSlYwekRLQUNFV2kvb1lUQWxBYmhsR3VtMFJ1MnZXZ2RPTVlaTFp4WklnWldjWDF3YmVCSEJRaFhCL3VzUndza3loM0ZvbW5VV05SbU9YWVJoa3M5a2J6cUpzTnNzQm9HTFJCa05MenlpcnhDL0RsaElxdXdBZXhXS3hSd0Rrd1dCQXh5WWhzRTVIa1FqZ2E4bGs4cHNBL2hRd1hOSnVOQnBJSnBPaE9pZ3N5NEtxcXVNeU1sM1hJejl4ZVo2bjJUSVV5b293REdPcVRNL3BNdWgwT012bGNxRUtiL2VaSGJ6RDdmcHZ1QVU0N3FKM3JobThZNFhmNmNzcFEvdXcyeGovZjFZczBuVWRKeWNuS0pmTEM0a1hUb1pSSVpFRUZ4K0tSYnB0KzNaVjh5UHEwaXhabHFmdVJhbFVhdXJlRjBjTWFVS2h5QjcwMFRTQ2ZWN25ucmpvL1ZiWDlWTUE4a0pQcGxDMkR4WEF5N096c3l0ZDExRXNGbTg0aTJnbnRNMkZPanNvcTRaMlBsc3BJb2FaeHpLR1hjN1AxN2NydDRkMUNrVzdBQjR4RFBNQmdLbkV1V3ExaXFkUG55NlZ2K0tFVGp2QzBDcVpkRE5RS0pUb21jd2xHcFVHd0xJc1ZDcVYwSFBDVnRYaGJOVjhzV1BqS3Q2UHBCVHQyKzkrZ0wvejhZL3dZYmVCUXZJK2Z2blJ6OXdRaTJ6YlJxMVdDK1FzbXFTUEFScEd1RTI0b25iMXpaYWR6YnFKZ3BTZExWSnlwcW9xS3BVSzh2bjhRbVhmdG0yM1FCMUZsRHZDcExPbzArbnMyclk5TjdPb1ZDcHhBS2hZdEdIUVNUdUZjcXRKQXZneWhxSjlOeGFMbVFEVTBYV2JzaUJyN1RVOFdrbjloWGsvWDhRZWFsa1cydTAybmoxN2h0UFRVM1E2bmJXMHdUdzhQS1JsUXhUS2lwQmxlZXA2NFRqNUdvMEdUTk5FcVZRSzdiM2lpS0dZY00vRDJYWVVab0JYaVd1WXNYQXpibmgyQjk5NTc1c29KTy9qdTUrOVFQWE5jQUwxSjk4cDRqLzdtWjhkYjZmck9pcVZDaXhyczNPRndtQjJFV1BXVFFRQTl3aExHM3VXaWRmVzRtT2hWcXMxSmJhU1FGZm5LWGNZSjdQbzVPWExsMVhMc3FvQVRnQzhIRDJHVXFtRVRDYXp6bjJrekVDdldSVEtyWVlGY0EvQUhvRDNNQlNNVW12ZG8xdkFPbWM3dTdxdVB4SUU0ZUc4QjJkekcveG9OcHM0T1RsQm85RllhejNvd2NFQkRSNm1VRlpJdlY0Zi85dVpiTmRxTlVpU05DNUJDNHRDSXJtVzhPcFZjaDBIWGlXdThTYnUzMTQ5Q0k1WXRNdXcrSHVmZm9pTFVablVuM3luaUYvNTBsZkcyK202am1xMUd1cDdieUxOWm5QcS8vTktsUi91K0IrNzlxQ1ArdFh5VGlwSmt0RHRkb20zdDIzYndORGlUUjFGbER2RllEQXdCNFBCQllCR3I5ZDdXYWxVUHJZczYyTU1oYUlHZ0FzQUpoV0wxc3ZzZ2pOMUZGRW90NXJKTHVxbDBiOXZSMGJFR2xtblVDUUMrQUFBTTYrRkphbFFaRmtXWHJ4NGdWYXJ0ZmJBc1AzOWZXU3oyYlh1QTRWeWwraDJ1MU9EdjB3bWcyNjNDMG1TUWk4NXU4L3NFRTNjYndQOUdOQklXUGlDRGZlYTZvaEZBUERybjM0MC92bWYvVklaZnlLN1AvNi9xcXBUQXVBNk1Bd2pzdGRXRkdWcUVqT3Y4Y0Y5UWpkUjdVb05yY3Raa0ZJWlJWRmVBdmcxMEl3aXl0MUZCZkJTMS9XVDA5UFRxcVpwMUZtMFlVd0s4bEZlMHlrVXl0cEpZZWdpZWc5RGtTaUZ6ZXJ1dnBXczFWRUU0SkdpS0RHZTUyODhhTnMya1ZoVXFWVFdVbDQyeS83Ky9rcTZ0VkVvbENHV1phSFJhRXo5akdYWmNjZVpNRXZPZG1MeFc1bEw1TWNYT3pZKzN3bTNET3hMOTlMNDlyc2ZvS205d1Q5ODlYejg4MisvKzhHVVdOVHBkQUk3UzdlRnlja0x3ekRJNS9NM3RubEFJRXEyVFgycSs5dXlCQ241MWpUdDA4RmdjRTQ3aTFEdUtwUE9JdE0wWDFZcWxZOWxXWjdyTEpwM2psT2lwOVZxb1Y2dm85bHNVa2NSaFhLNzRRQThCTENQb1dEMFpReHppeWhMc1BhZ0RkdTJYYnZjK0UwU0p0dGhyeE1xRWxFb3EyZTI3U2pIY2VPY2xYbDVMOHRRM0wyOXVVUis5TmcrYXR3MTdKQmNLd0R3OU1Fai9NcVh2b0lQdXczOHp2bFB4ei8vOXJzZm9KQzhQLzUvclZaYlcxNVJWRGx6czI2aVVxbDBJN3licE50Wnp6TFJOdGQzL3pOTmt5YjFVaWhEVkFBdmJkcytxVmFyMVhhN2ZjTlpWQ2dVY0hCd3NNNTl2TE4wT2gyMFdpMHFGRkVvZHdNUnc0cWxEMGIvcGl6QjJtYyttcWE1dGlDV0pNbHprcUFvU2xTN1JRVEhjVGcrUHFZaUVZV3lCbVk3UnBtbU9SYU9GdW5nNUVaMko0RVVZUm5RYlVWakJxZ2xyRkRGb2ovN3BUTGVGUjdpWDM1ZXdlZVh2ZkhQdi9QZU4vR0FHN3BNblU1b3Q0bkp6NU5PcHlHSzRvMXQvTHFkNmJZVlNpN1JNdWk2ZnJiV0hhQlFOb1JKWnhHQWw0MUc0K05hcmZheFpWa1ZBSzh3Yk5OOGxjMW1VUzZYTVM5dWdVS2hVQ2loNEdRVjBZeWlFRmk3VUtRb2l1ZksvNmFXSHFUVGFSd2ZIN3U2b1NnVVNuVE1aaE5Od3ZOOGFHNmluVmdjaGNUZEt6bWJoeEVmNE5QZGNKMUYzMzczQXdEQVAvcnBIME8zaGwybWVYWUh2L0NsZDhmYjlIcTl0UzhLaE1Ya2Njc3dqR3Q1NUgwUE41RTk2SWVhUzdRSWlxTGMvclowRkVwd1ZBeGRSQ2VTSkZVcmxjb25tcWI5UG9EbkdHVjVDWUtBcDArZllsN2tBb1ZDb1ZBb204UTZoYUlyQU9lNnJpT1pUTHF1c0xSYUxkY1hXTWVxRE0vektKZkxlUHo0OFkxeUFRcUZzaHE4UW5kenVWeG83M01YYzRtODZNZUFUM2V2Y1JsU1I3U0hpZVE0citpN243MFkvL3dYc2wrZUt0TlloNnNvaXVZSWsvZXp3OFBEdWZjUXI3SXplOUJIVlZkd1BWajgrL2Vhb0taU1pKMWtOVTJUQWZ6V3dqdEJvZHhDWnAxRnVxNy9jYVZTK1QxWmxuOEU0R01BbndGb3NpeDdVUzZYelREdlZSUUtoVUtoaE0wNmhTSVp3SFBidHZ1YXBya09YazNUZEYxTlhxV2JoK2Q1SEJ3YzRNbVRKNkZtbjFBb2xHQVlodUVhdXN0eFhHaWRCMm5KMlh6Nk1lQXNZVUZtd2hGU25qNTRoSytLZS9pdzI4REo2M01BQUJlTDQ0UHNsOGJDaFdtYWdWcTNoNEZiU2ZTaVRMcUo4dm04NjMzRXEreXNhV2k0NmkvM3ZYdmwrcEV1dnVpNjNnRHRka2FodU9FNGl6NjBiZnVIMVdyMUIrMTIrMThEK0YwQUh3SjR5YktzV2l3V2NYaDRTRXZSS0JRS2hiS1JyTk1TYzRWaDNiYXBLTXF1SUFpdWs3OTJ1ejEzVUMyS29xZmpDQml1a083dDdZMG5ITHF1d3pBTXlMS01YcS9uK2p5R1ljYUJ1S0lvUmhac1NxRlFndUZWampvdjcyVVI0b2hoajZPbEFWNDBPUnN3QWRGZWZwTHo3WGMvd1AvMStmZnhEMTg5eCtFSEdmRHNEbkl4RHNWaUVhZW5wd0NHbVZSaGlZQWtoTDBRNGR5cjB1bTBaNFlXRjUvL2ZkYXZWTHkyb2cxakpmM01tcWE5d3ZBZVRxRlFaaGdNQmlhR0hjOEFBTEZZekd3MEdydXlMSGRMcGRKZUlwRjRnK0ZDclNtS292ajA2ZFBkUnFQaDZaU2xVQ2dVQ21YVmJFTHQxR3RKa3ZLbFVzbFY5T24xZWpBTTQ0WllrMHdtd1hHY1p5ZURUQ1l6TlhrVUJBR0NJS3gwd2tHaFVNTERhekNkeVdSQ2VZKzczT1VzQ0UzT3hwVTF3S1ByNVc0bFBMdURiNy83QVg3OTA0L3c5ejc5RUgvcitOOUJMcDVBTXBrRXovUFFkUjI2cmtQVHRLM01oWFBjUkR6UHUrWVNPYWoyTmZZd0xWS3VRaVFDUU9TV3RTd0x1cTQzSTk4WkN1WDJJQU40cHFwcTkvVDA5TDM5L1gwam04MzJBRWdBUG1CWjlsR3BWRUltazBHdFZxUGR1U2dVQ29XeUVhdzlvd2hBWGRkMU1BemphYjkxRTVIeStiem5tOUFiTG9WeWV6QU13N1YwaHVPNFVFU0Vld3pyMjVxYzhwWUx0bzg2dDN6STlkTUhqL0N1OEJDdmxBdjgyeS9xNE9KeDNHZDJwb1QrYlYxeGx5UUpETU9nWEM3N1p0dGQyaGErTUs5Z2ozS0lMcTZObFloRURNTVFDVVc2cmhzWVRueXBvNGhDSVdBd0dGd05Cb056QUs5czI2NmNuWjM5OGN1WEwzL1BzcXlwN0NKQkVDNk9qNDlwZGhHRlFxRlFOb0oxWnhROXd6RDBENTFPeDdOc1JKSWtXTmJOUml2WmJOWXpTNkxWYWtIVHRPWDJsRUtoYkFSZTNhL0NLanNyMGk1bmdWR1lBVjRsbGhlTG5DNW8zLzNzQmQ3MHIzR2Y1YWJFaTAzdGd1a0hxVWprMERJMS9PUlN4dW1saklaeEdmSGVEU0VOc2xZVTVTV0FYd1BOS0tKUWdqTE9MdXIxZWo4OE9UbjVnU3pMYzdPTGpvK1BRODlKbzFBb0ZBb2xDR3NUaWdhRHdSV0dOZHgxQUFOSmtud0hxcDFPWis3UGk4V2k1L09xMWVwY2tZbENvV3dYYmpsbUFGblpqQjk3SE8rYUVVUHg1anErZkVlMGg0a2sva1IySDFlMmhlK2UvUVJwZG1mcTkycWFKZ3pEQ0dOM1YwcXhXRnpJN2JaTWQ3Tlp2RUtzQVhLaFZWR1VQeG9NQnVlamV6aUZRaUhFNllvMkdBeWFnOEhnTTl1MlA2NVdxejhhdVl2K0dFTVJxUUhnSXBsTW1zZkh4OFFDTG9WQ29WQW9ZYlBXRUk1UjRGOGRRTjlwUmV4VmZ0YnBkT1pPRWtSUjlNd21NVTF6TGUyVktSUkt1SGc1aXBZZFVPL0U0c2p1ME5ENlpYQTZva2xMZEVUN2xTOTlCUUR3c3QxQ3B5ZmpQck16MVJYVDZ4allWTmJkREVGUkZEajMySGt3REVPYzI2ZXFhaVdzL2FKUTdqZ3lnR2U5WHU5SEp5Y25uOGl5WEFWd2dxRmdwTElzaTZPakk5ZXV3QlFLaFVLaFJNa21wTFdlWXBSMTBHcTFQQVVmMjdaZHM0cjhhcnA3dlI3cTlmcmllMG1oVU5hS1lSaXVtV01jeHhHWDliaXh4L0Uwd0RvazJweTljRzZSNHlvQ2dCOSsvQlBjWjdtcEJRUS9ad3psSm43WlRxU1pLS015N3V2bDk0aENvY3htRjFXcjFjb25uM3p5eWpDTWMweGtnUGtGNEZNb0ZBcUZFZ1diTUN0NkJhQUprQVZQUzVJME4zTW9tVXdpblU1N1ByZlQ2V3h0eGdXRmN0Znh1ajRzbStXd0cyZndjTXZkUlBvb0JMbHQ2blAvbVAzRlhUNkw0T1FXQlMxRnN6RkFvZkFJQUtBYVY1QWtDY0s5dDdsUk5ITXVHSVpoZUFwRkRNTVFDMFdLb3B3QldFMW9Fb1Z5ZDNDeWl6NVdWYlY5ZW5wNjJXNjNMU2N5WVJzN1BWSW9GQXBsKzlrRW9lZ0t3UDhNREplZVpWbjJuZlM1T1lQOHNvb0FvRmFyMFlrR2hYTExXRGFmcUpEWS9vRTR6N0I0aDl2RmZXWUhjY1J1Q0VjVjdRM2Fwajd1cHJVS3J1UERVclR6SFl2WVhkVGtMR1FlUE1DajlBTUF3Qis4L0FRUEVtOUxMNmlqS0JodTJYNE9tVXlHMkkwM0NyTCtqUkIyaTBLaGpIQ3lpekRNSjNwcDIvWm5qVVpET3owOXBZdWJGQXFGc2hpN0FCN0ZZckZIc1Zoc2Q5MDdzNjFzZ2xBRUFEOEU4QVlZdWdiOGhDSlZWZWZlUEJPSmhHZnBHakFzWHpzOVBVVzMyMTE0WnlrVXl1M2hIc01peGV5c2V6ZEN3eEdNU3J5QXA2a0grQXAvSDNrdWlSVEQ0Z3Z6Q2xWZGdXcXZ0bnJvZ3UzalZlSWFzazkya2N6WVVKaWhvUFQ0VVFFQVlOb1dQbXVmajdmeHl0cWhUR05abG0vWm1WY3U0Q3lxcW42MjdENVJLQlJYWkF5N0FUOERJSnVtaVdxMWlwY3ZYNjV6bnlnVUNtVWJFUUY4YmZSSFhPTitiRFhMaFhxRXd4V0Fjd0MvQmVDdkFNTVZZNFpoUENjRTlYb2RxVlRxeGtyby92NCtaRm4yblV5Y25aMEJBSEdBSjRWQ3VaM3NjYmM3S0pSbjJLRjRoT0dDaW00UDNUMzJvTC9TVEtick9ORGtiRWo5UGpKV0hLTDlWcUF3WXdOY3NEWXUyTGR1cDY4OEt1QVBYbjRDMDdhZ0d0TU50alJObytVWUJIUTZuZENFTlUzVFlOdjI1NWpJVHFGUUtPRXg2aVI0SG92RnBqS0tlcjNlK25hS1FxRlFBc0R6UEJpR0lYTDYyN1lOU1pLaVdnQk1Bdmd5Z0RLQU43RllEQUJrMnJFMUdKc2dGTWtZcnA3OEdvQnZBWWlUSERDbWFhTFZhdDBvTjJOWkZxVlNDZFZxMWZjMXFGaEVvZHh0ZG1MeFcrVW1Jb0ZuMW52Wk4rSURORGtiVGZoZjV4OC9LdURGNXpkTkxOUlY1STlsV2I1bFp3QjV2cGVpS0JVQVA4WHduazJoVUNnVUNtV044RHlQWkRLSlZDb0ZRUkJ1ZEZoMU1nckRYRFNhdHcrQ0lFQVVSZkE4SDdpeFRMRllSTGZiUmF2Vklzb3FEZ0FMNEI2QUw0MytmeDlEdmVIYzdRbVVtNnhkS0pwWVFka0Y4THNBZnBuMHVaMU9CNWxNNXNiS3NpaUtTS2ZUUktzd2QxVXMwalFOaXFLZzArbE1uWmpwZEJxUEh6OWU0NTVSS0tzanUwUExsamNaTjZHSTRrK2owU0FhR000T0xOMVFGT1hGWURENHU4dnVGNFZDbWM5b0hDd0NlQVNBM3B3b0ZNcGNPSTVEc1ZpRUtJcWUyeVVTQ1JRS0JlUnlPVlNyVmFpcUd0bytaRElaNUhLNVVOemQyV3dXMld3MmJNRm9GOE5yS1FBVUFUd0VjRFdSVjNRRjZqRHlaZTFDMFF4L0Y4QXZBQ0FPVGFoVUtuajY5T2tOQmJOVUt1SGs1SVJvb0h4MmRnWlZWYkcvdjc5MGkrMU54ekFNZERvZDE1Vm10KzlyVkhZQVJWRWdpaUl0KzZCc0ZIN1paRzZrMmJ2bEp0bzJNaWtCcWNUdWpkS3pUV2ZkcFhHYXB2bG1Fem1RWmhTcHF2cnBNdnRFb1ZCOEVVRXpOU2lValNXVHlZekhtN0lzRTdsMnc0VGpPT1J5dVVCTktJQmh0YzNoNFNFcWxjclNEVUY0bmtlcFZJcGtqT01JUnMxbU13d1hWQXJBWTRaaDluTzVuQVVnYjVvbUpFbXFqUjQvQjNVWStiSkpxb2lUVmZRdkFQeUhwRSt5YlJ1MVd1MkdDMmJ5cENCQmtpUklrb1JVS29WQ29iQjBGNlZOcEY2dis5YUN6dXNjVjYvWHB5NkdraVNOeXhVRVFVQXVsN3YxQWh0bGMwbWxVc1N1aUVsMjR3eTRPSG1RTDJVOVBCSWY0R1c3TmZVelJWRTI5aHJkYkRiQk1NeGFoU0szenFEeklOblAwVUxCeFRMN1JLRlE1aE9MeFRnTUp6WDdBQjVqbUt0QlYrTW9sQTBpbFVxaFZDcU4veThJQW5pZUgxZW1SQW5QOHlnVUNyNE9JaStjYUpiVDA5T0ZYeU9mejZOUUtDejhmRklLaFFJeW1ReXExZW95d2hiSDgvekRjcm5zekZFNUFFWW1reWsxbTAxZ3FEbUlnaUJFTFJSZHFhb3FBOUFBV0JqcUhlcGdNQWkxemk0cU5tbDJMMk9vN1AwL0FmQUEvbjNTSi9aNlBjaXlmT01FRWdRQkJ3Y0hnVTVpVlZWUnFWVEE4enh5dWR5dEtFbHJ0OXMzU3N6bU1Xc2g3SGE3NkhRNk4wNVMwelRIcjZXcUtqaU91eFhmRTJXemNjdFNXY1JOdEJ0blVOcE5MYnRMbEJYd1NIeDRReWphUkN6TFFxMVdnMm1hZVBMa1NlVHZweWdLT0k2N0laSTJtMDFpZTNtQWZLSXpBSmRCOTVGQ29SQ1J3bEFnS2dQWXd6QlhZNVBHNTVSYmdPTkdtUnpuTzVVQ2lxSXM3VFRaSkRLWkRFcWxFaXpMSXE0dThXT2VRSkxOWmlITGNpU0I4d3pEUUJURjBNcTdsc0hKUWxxRlNPU1FTQ1R3NU1rVDFHbzFZb2YwSkF6RDRQRHdjTkxJSUFMNFFCQ0VvNk9qSTJBbzJQeHBSTitnNDl3d2pPZWRUdWV6VHFlallpaFF2UVN3Rll0dkczTWptc2dxNGpBc1FmdFpBTytRUHI5V3ErSDQrUGpHb0RtYnpjSzJiVFFhalVEN28rczZ6czdPMEdxMXdQTTg5dmIyTm5ZRjJ3MUZVY1lURno5NG5rYytueCtYcHBHbTBEc0JhaFJLMU14ekRURU1FMWlrZk1CeUtGS1JhR3Q0SkQ1WTl5NzRZbG5XMk5KOWZId2MyZnRvbWphK1B1ZHl1UnNPVUUzVDBHcVJpMm9CaEtLWEFINGp5TDVTS0JSdjVqaUp5Z0RlQmMwb29rUkFMcGZEM3Q3ZWpaODdpK3p0ZGp2d1hHa1Q0VGh1N1B4aFdSYjVmSDdwejVWT3AxM25Pa0dpVHZ6Z2VSNmlLRUlRaE5EblZvcWlFRFY2bW1YZDJiWE83ektvV0pUTDVXYm5EWk9aUmF2a1BKRklQQ2dXaTUvd1BIOTJkblptQVNDM2ZhK1pqUkdLSnJBQXFBRCtYd0QrS3hEZUxHM2JSclZheFlURmJNemUzaDUwWFY5SWtYVGNNNDVhbk1sa3dQTjg0UHJRVmFJb1NxQlZaZWZ6TEJKMGxrd21GeXI3b1ZEQ0lLZ05sNHBFMjRld3k0TmpXSmkydGU1ZG1ZdGhHR043ZEQ2ZmoyVGx6N0lzTkJxTjhUMXNudjNiY1RRRmdYUmZWVldsaWVJVVN2ZzRUcUxIQUE1SGY1NWlLQnpSR3hVbFZQeXU5NWxNNWxZSVJaUGxZY0J3bkxqczUvSmFrRnhVakVxbFVrZ21rK0E0RHNsa010SkY5MmF6R1dnUmFaSjU0dUtxS1pWS1VCUWxVTWgxTHBlTGNJOENJUUw0QUVBeW04MWVTcExFcXFvYVcvTStFYk9KU29lVFZaUUM4UDhGOERjQkVDa1J1cTZqMFdqY3VFZ0FHRnNRbDdVSE9nUDFScU1CanVQRzdRQ1R5ZVRhcllGdXBXSitPTi9iSXRBMjFaUW8rT1NUVDVCTUptK3NDREFNTTNYTXBWTGtZK2w3REV0Rm9pM2xZVXJBZWUvMXVuZmpCcE1pa1pNaEVEYmRibmVxZzluQndjSGNRV3V0Vmd0ODdTZHhGQ21LWXRpMi9UbWl0MmRUS0hlQ09VNmk5ekFVaVI2UGZ2WndmWHRIdWEzd1BPLzVPTXV5eUdReUN5MnFid3J6cWh3U2lRUTRqbHVxazViZm91VGUzaDVSeEFkcHQ3S3dDS09MMktaVWpZaWlTQndldm1GbURzZkpkQVdna01sa0hxcXFTbWJuM2dBMjVsdWNRTVd3ZHM4WmxCb0EvaFlJZy8yY29PVjVBL2JIang4dlhPczREOU0wYnh5MGprTE1NTXhZSlk1U1FBcGFLaFlXVHUzbnBseEFLTGNMVlZXaHFpbzZuYzdVeEpqbitTblhXNUNiYlRGeEwremRwS3lJVFJTS0xNc2FpMFRPOVREczEyKzFXdU43RE1Nd0tKVktjNC81ZXIyKzBDSUl5YjFwVkhiMmF4am1DRklvbE9XaFRpTEt5aUdaT0l1aXVOVkNrWnY3WlJtaGlIUkJVaEFFMysrdVhDNnZwQW9qU1BTSUY2VGw2YXNnaUZDMEtpRXVJUGNBSENRU2lZUFJ2N2VDalJPS1JpbmdGN0ZZREhoYmR2Wi9CL0MvQitFcVM2dlZRaktabkh1Z2xFb2xwRktweUZMcW5RbnVMQXpEak5YOHNEcmlhSm9XU1lDYUh3ekRvRnd1cjkxQlJia2JuSjJkSVpGSTNCQWxlWjRuWGpHNHoreUUwdUZNdGE4QkFMcHRvNDhCOGZQaWlJRWZ0U0huNHd5WVdIenBmYmxMUE5uL01sNTh2am5WVDVPWlJBQ3d2NzhmNnVCUDA3UXBoNURYTmRkeGtpNkMzd296QUNpSzhrZUR3WUMyajZWUWxpUVdpKzFpV0lhd2oyRWVVUm5VU1VUWklJSzR0RGNOcDhwakhvSWdCSTdXY0NDZDY2UlNLVitoS0dxUlNKWmwxT3YxcFFVaUI1SXh3aVRkYnBmb3ZaMTVjSkQ1Y0pCOUlUeU9Cd0RzMFovSmYvZUozeWdZR2dBR3d5cXByWmtFYkp4UU5NR3NzK2kvQWZBZEFGOGllYktUVnpUUDhlSzRFMWJSMHREQnR1MnBpOVE2Qko2dzJOL2ZweUlSWmFYVWFqV1VTaVVrazhueGVSVEV6Y1l6aTEzcXpMNE5jOURIRzh0RTk5cFk2RFhtc1JPTGc0OHo0QmtXdTNFR2ZKd0pSY2k2clFpN1BCNmxIMnlFcTJqU1NRUU1neDdEN1Byb0JFNDZEbEUva1dqUit4akRNRVJDcTZxcWxZWGVnRUtoekNJQytCcUd3dEFlaHNIVjFFbEUyUmhZbGwyNlRHdGRlTGxJbG5IR01BeloySXhrVEdvWVJpUmkwV3lKZWxpUXp2VTBUVU8xV2wzb3VPRjVmbTYrOEN5a0M4TUJGcEZ0QURxR2xVdlhHT29OMnVqZlVhQUFhTXF5ZkFGZ2EwNndqUldLNWppTFZBRC9Sd0QvQllDL0NNQTNDTW9SaStZZDZObHNGc2xrY3FGY2g3dE1KcE1KZFZKRW9jeWlLTXFObjVtbWlVcWxBcDduc2IrL0gycjlzU01HVFhKcFcraFpKcTc2MFpSelhnLzZ1TGI3ZUdPL3ZSL3R4aG1rV1E0N3NUalM3QTUxSGMzQWJVaTllYVBSR0l1VlBNL1B6Y1JibEZuaHgwc2txdGZybms0aXg4WHF0b3BLc2pvbnk3S082QVpORk1xdFlNSXA1TGpnWi8vdjhBaERvZWpMR0pZZVBBSjFFcm5pdEFkM0p2bUtvaXpzQ2lGOXYwd21NODRlblJ4ak9PTVNwN1BrYmM3bkpDbWgya1M4aEpwVmxIc2xFb2tiT1pxenVEVmRXZ1RETU5CcXRTTDlYWkVJYk11S1ZMcXVROWYxMEtKTUNNUXRFME5OUVJuOWVRM2dDd0E5RElXanFFUWMzYktzQzFtV1g0N2VmeXZZakpHM040NnpxSUhoL2pZQmZBVGdmd3NnNC9WRTI3WlJxVlJjczNTU3lTVEs1ZkpVRGdSbFBrNW50RTFJdjZmY2J1WUpSUTdPRFNYb1RkWjBFWHlheG1Xb1RxRmx1T3JidURLSG9uWERHSVp2YzdFNDdqRTdTREhzblhjY1BVd0orRXo2WXEzN1VLL1h4NE15SnpNb0xNRlNVUlJpa1lna2E2OWNMcU5lZCsvQVNqSW9rMlg1RXdEL3pIZERDdVZ1STJJb0FEbXRseDh4RFBNQnovT1BuUEtLRVk2QWxHeTFXdXpvLzlSSk5JZDBPajMzK3JwTTl5WXZjcmtjOHZtODYvWGN1VjRLZ29CTUpqTlZlaHdGdVZ3T3VWd09wbWxDbHVXVnpsRTJLWmNtQ0p0UU51ZTFPQU1NeDdDbnA2YzRQRHhjdURKRGxtWElzcndTTWM5UFlHdTMyeHZYS1k5Z0VjelJGVDdIVUNTcUFYZ09vSVdJU3M4TXc0QXN5N1lrU2FacG1pcUFpN0RmSXlvMlhpaHluRVhPLzJPeG1Jbmh6YlVMNEgrSG9ZWFhGZHUyVWExV1hjVWlsbVhIQ2ZUMWVwMjZpMXh3T3FOdFdKSTg1UmFpYVpybjQ1SWtJWlZLQlhLMjlheHIzTGZNY1ltWGFsK2phV2lST1liQzROSzJjQW5ndGZWMmNTTzdrMERoam9aeVB4SWZBQ01kNVozazZnZUU3WFo3YXJBZVpnbXVVMjdtc0t4SWRIQndNRldtT1EvQ0lPc1QwRzVubERzS2lWTW9sVW9obDhzOTRqanVhOGxrOHRGb25Qa0l3M2JJaitDQ0xNdDB2T2tDei9ONC9IaiswTDVRS0lUdUxITHJKT2tHeTdJb0ZBcFQxK3d3eWVWeUtCYUxBRERPWitRNGJ1a0p1YUlvUkFzRWdpQkVJc1pGaVYrNTBhb2E3NUJrSVRrTytmMzlmZUxqYmlRMHJOek41aVc2aENrU2hTbE9Fb3h0cmpSTk82L1g2eFVBbndHb0FQaXhvaWp0MEhiaUZyR05NMzRad0RNTWhTSVp3SzhBK0Y5NVBjRnhGbm5kREFSQndKTW5UMElQQXRzVW5ESUUyN1lYSHB6azgvbVE5NHBDdVFuSjhkbG9OQ0FJQXJHZHVJOEJ6cTYyeHVucFN2ZmFnRDBZb0xpNy9wV3pWWk1YaDlVWkQrK2w4UGlkUnppNzloWVV3MFJSbEtrQlVTNlhDNjBFMTZudG44d2tjbHR0SkJXSnN0bXNyK0RxdCtxbWFScE0wNVM5OTU1Q3VkV0lBTDdtT0lNNGpuc0U0SU5rTXZtSTUvbkorNCtib09SS01wbWtRcEVMamtqaVJxbFV3dW5wYVNnVDVxQWlrVU5VWFpVWWhwazcxdDdiMjRNc3k1R1czazN1dzdZUjVUNTd1ZHhuSVYwODhwdUxhWm9HV1piSDc3K0szL3M4dk1TM3NCYktPSTRqR3N1VC9oNElIRVdXTE11WHFxcCtEdUNQQUx6Q3NPeU1Nb2V0RTRvR2c4RVZnUE9Sc3lnTzRBMkFGd0QrVHdEdWV6MzM3T3dNdXE1NzNvUkVVWVFvaXVOT010dDRJM2RFSVVFUWtFd200UXhvRmcwK1RhVlNLQmFMTk1DYXNoSklSRnJidGxHdjExMVhIVzh6cnkwVHVGTHZwRmowamNNeUhqOHFJTUh1QUNzU2lod2h4OEc1SG9iMTJwVktaV3JDVXlxVmJxeCt6blpaYzJOeWhkSkxLQ0labUNtSzhqbUdpekhVVVVUWkNHS3hHSWRocWRZdWh1UFhKT1puQVhuQzgvelV4SEt5UE13NTl6aU93OWUvL25VblUyaGNVZ1lmcHhBcGk2NmdPN2s5enA5WkxNdUNydXVRSkdrbHBTbTVYRzVxUDVaMTVqTU00K3YrU0NRU29iUnhEK0xvV0JXaUtMcE96dmYyOXBZU0RBekRJSExXYk9OWWYxV09JVCtDbk5kZSs4eHgzTnBkWGFzcVFjeGtQRk5reGhnR1dVd0VRZFdMWnBybVp3QStCZkRUd1dCQW5VUWViSjFRTk1Ga2R0RXpBTDhQNE05Z0dIVDlkYmlFWFhjNkhSaUc0WnN0a2MxbWtjMW1vU2pLdUJaMEU4UHJIRUZJRUFRd0RPTTZBVmhVSk5yZjM2ZTVSSlNWRVdUbHB0ZnJFVnVwYnh0M1ZTejY2djdCK04rN2NTYnkwc0ZaSVlmbmVSd2VIa2J5MnNCd2RYdDI4amR2dTNuTVpzZzVxNUh6SURsbkpFbjZYUUMvaHFGWVJLRnNBaWtBai9QNS9DTkJFRklZaGtLUGhac0EzVzVJQ2V3VWlwSk1Kb044UHU4cDhySXNPeDRUNXZONVNKS0VUcWNUeWZnMW44K2pVQ2hNL2F4Y0x1UGs1R1RoOXlOdGdaM0w1WllTaW5pZTM4aXhyVmZPamhQc3ZXakZ3MjJybE5oRWdvaHNYaTRvbG1XUnlXVFdHaXErQ3FHSTR6amtjam1pYlVsRVVzTHJoMndZeGpNTXRRT1o2TTN2TUZzckZIbGtGOVV3YkRuNnR3RE1YU3JvOVhvNFBUMmR1M0k3eStRTlYxWFZzWEMwamd1dXN3cm03QlBwQkZuVHRNQjFwRTQzbjIxY1dhQnNMMEVIbDgxbUUwZEhSeEh0eldiejJqS2hhejBjOHNLZDdKREd4SHdiWHk2RjQrS1pMUWtMWXlMcUpoTE5ybTQ3MlVVa0l0RnM5eld2UVpYZllNb3dET2k2L2tlRHdlRGNjME1LWmJYc2NoejNxRkFvdklkaHQ3QXlRbkw0YkRxcFZBcjcrL3VCcmorSlJBS0ZRZ0c1WEc3Y0hTbE13Y2d0OXpPVHlVUWV2cnpzMkhSWndkK3lyS1dlNzRhZjAxTVV4WVcvMnlEemxsUXF0Ylp5cDBVZ21RL3hQTCtRMnkzb2ZHOFpNVytTVkNxMTBkM253aWozQ3pLbThscjhjaUFVdDY1VVZUMm40eHN5dGxZb21vT01vVHE0QytBSEFMNFA0UDhONEwxNUd6dGhZdmw4SHJsY3p2ZEFaVmwyYlBVdEZvdk9RQnFhcGtGUkZPaTZIdG9OT0pWS2dXRVlqR3Jpa1Vna0ZsNHBNd3lEYURWNmtrd21FM2hBUXFHRWdWK3V5aXlxcWtMVHREc3JhRjcxYlZSMTVVNktSU2xtQjVkMk5JUDFlU0pSdVZ3T3BjWHVQSkVvbjgvZkVJbElYYUJPZDZCSkRNUHd2T2I3RGFvVlJla0F1UFI5Y3dwbHRiQ2lLS1l3RkltK2p1R2lvTGpXUFZxUW9KUDJaUlpFbktZdG1Vd0c5WG85TkFIQWJWSzJDcUZvR2Z4Y1dTUkVGVXZoZDIxZVJpZ2lMZDI1clN3cWJLeExLQkpGY2FGS2tMRHcrNzZXR1hkN1pUSE9vOXZ0RXMxalNWNHY2RHpqcm5OcmxBQW51OGo1Znl3V3V3THd0d0g4TElEL00xeHEyRnV0Rm1SWlJyRllERlRDa2tna3huWFNrMmlhdHBCZzVBaERZV0paRnRGcTlDVHpyTVFVeXFwd08xWTVqZ1BQOCtqMWJ1Yk5kVHFkR3hQbHU4UlYzMFpGZTRQU2JnbzhjMnN1Nld0ak5nOG82SURHaTNraVVTNlh1M0hOSlFtdEJvWVRzbm1sQ2w0bG5CekgrWDRXV1paL0RPQTNmSGVBUWxrdGNZWmhPQXp6S0F2WVlpY1JhWm0xYy8wSmcyUXlpYU9qbzlCYXpMdUpMVTQyNWlKaVNwRG5MUEllRE1NUWw3cklzaHhaYVBXaUxGTnFIMFM4SU9uZVJabFBJcEVJNWJ0aldYYmg4eWdNb2xxQTVUZ3U4SmlLOUhwRmNuNVFvU2dZdDNsV0llTnRkN1FtaGhibHY0WmhUZnZVNTlaMUhaVktoYWorMjQ5TmNqWTBHbzFBRjVoRnV6OVFLR0hoZGdIbmVSNkZRbUd1VUNSSlVpZ3JoTnZNOWFDUHFxNmd4S2VRWW5iV3ZUc3I0VjRFb3BoaEdLaFdxMVBYemYzOS9WQnlzT2FKUkpsTVppb1ltelMwMm9IanVMbmJlZzFTU1Q1THI5YzdKZG9CQ29VU21HNjNTenhwajhMZFhTZ1V3SEZjcEc0RlFSQVdtdURhdGczTHNvZys4eUlPRVpJS0FtQjRMYTdWYXE2QjErdDA1eXhhRmhaRUtOckd6bWQrTENOK0JjbkRETHZWK3lZM1ZXSVlKcEFad1hGQUI3bW10ZHR0NG1PWEpLTm9rNy9QVGVUVzFpb01Cb09yVWYzaEt3QVZBQjhEK0hzQS9oR0EvcnpuU0pLRTA5TlROSnZOcmJkb3R0dHQ0dHBXWjhXS2lrU1VUY1hwNEpkT3ArYyt2dTd1RUp0QUh3TzgwaFZjWEcvM3RXdGRLSXFDMDlQVHFVRkVXT0s1bTBnMDZZVFROQTBuSnllQkJqR3RWbXZ1NE5YTHJlQVZsZ29Bc2l5cm9OM09LSnRKM3h6T0dGUU1Gd0V2QUd4VlFxOWhHTVNaa1J6SFJUWXV5MmF6T0RnNDhOOXdRWllSMTBrbjgwRVhoNEs0aVp3QWNMY3lyM1VHUXkrektFWTZ0OW1rUmU5dEkweWhhRldkeHhhRk5IeWVZUmdjSEJ6ZzhlUEhnVVFpd3pDSXgvY2N4eEc5Tm5VVUJlUFdDa1VUT04zUlRnQlVBVlFaaHZudkdJWjVEdUI2ZG1QYnR0RnF0WEJ5Y29KNnZiNlZnbEdROEdvbmUyUFQ3TFdVdTRuYkFORVp0TGlWUlVxU0ZGbTQ1TGJSTUM1UnY3cjlsbkV1eEV5bWJyZExGQzY5Q0NRaVVidmR4dW5wNlVKbHk3UENqNlpwbnBNWXYydTlMTXZQUWJ1ZFVUWVRTNVpsMWJLc2N3d1gvMTVpT01iYkNrZzdHRHFRaWhxTEVxVll0TXlZa25RaUYzUVM3ZFY2ZmhMTHNzWUNrYTdyNkhhN043WWhDZGFOQ3RMSitUeElCYTV0Y3hTUkhEUExmS1lnYzBGU0lZOWtmelpkS1BLRFlSams4M2s4ZmZvMDhIZ3FhSHdLNlhsQlN5cURjWnRMendDODdZNFdHM2JJMlFVQTI3YXZBZlE1anJzR3NHK2Fwb2c1R1VhZFRnZWRUZ2M4enlPWHl4SGZaTmFKWTVjbHdSR0o2TW9CWmROeFZpY2RWOUc4RXJSV3F6VlZ4bk9YZVcyWk1QVmhidEZ0RGJubTR1RU1aTnZ0OWcxaFBVcVJpT2Q1N08vdkF4aGVyeHVOeHNLZFRlWTFPZkJ5RTVFMFJaQmwrZmRvTnhES2huSmwyL1o1cFZKSmxjdmwyT2hZam1Qb0toTGhra1c1VGl6TGdpUkprQ1FwY01sREpwT0phSy9la3MxbW9ldDZKT0hUaSthcmtPWTNCUjI3a242Zmpwdkk0ZXpzRExxdWp5ZjJzaXhIVnI1aUdJYXYwTERNbUYzVE5DSzMxN2JOQzhJS09uWWppckk5a3YzWjlFZ0Z0M0kreDcxSFd1bzVTOUF5ZkNCUWtMVUk0R3V4eFR2blhtRzRrS1lCc0ViL1YwZDZ3NjFqczFXUGNIR2NSWTZkZm1DYVpvL2pPQ21WU24yZzYvb2p0d3VOcnVzNE96dERvOUdBS0lwSXBWSWJLeHExV2kyaUU0dUtSSlJ0WWRZeDRaZFZ0SW5uNVRxNHRDMVVkUVdGUlBMTzVCWUZaVjVvZEZnaTBieXVaVHpQbzF3dWcyVlphSnFHV3ExR2RMM21lUjdKWlBMR3ZnWXRPL09iS01teWJOcTJUVFpMbzFCV2p3cmdwYTdyVnljbko4aGtNb05NSnROTEpwTVNnQSt3QWVIV1RrZGNSVkhHSFhFWFlkRk90NHRRTEJhWDJsYzNGczFYSVYzeEQrSVE0WG1ldUJ4dW5uQy9xaTV1cG1sR0tnNEVjYTBHelo5Wko1dTBuMUhPcXppT0E4ZHhVdzJRL0k3cldxMjJzbEpKanVPUXorZVhtaU03VHFLZzF3NlM4M3YwUFpRQS9IVUFmMm55TVlaaGlGeEp0bTJmNjdyK0hNQm5HTjZUempIVUZ5NEM3ZkNXY0dkbVZIT2NSU3FBVjZacE5relRmSTNwQWNhWE1leW93V0dpUE0rMjdmSEswTm5aMmZqRzR3emkxeTI2S0lwQ2ZETUxxNHNQaFJJV2JoUGMyWXUvbTZ2SXRtM0lza3l6dGlhNDZ0dDRwU3ZZVDl6RHc1M05YcGxhSmM1QVpIWkNjbng4SE1wMTBVOGttdWRpY21NeS9ER1R5YURaYkk3M2U5NmdacDZJNnVCWERxSW9TZ2ZBYnhIdEdJV3lZaWJIY2JadDczWTZIYlhUNmJ6aWViNGhpdUxyWkRMNUtLUXllaEhEeVlUcml6a2RicDM3bGlPMGhEVmhKUlUxSm9PeE9ZNkRJQWdMQ1EybFVpbFFXUndKeTVSSWtZUUhCOGxCQ3RMcGJKMzVRMUZENnRZQ2hyKy9iU25USVNrOVd5WTNLMml1VFZnaW01UHRzK2g1RFF5RjRHcTFHdmg1cEM0dGp1T1F5V1NReVdTV0Zqa1hjUkk1Qk9oNEp2STgvelZCRU1aeitJRDdmUTdnZ2FacGxVNm4weGdKeTJRRHVpM2t6Z2hGRXpqT29nYUduejhKNEFlNGFWbE9Bdmc2Z01jQUhnTDRXUXp0elFxRzJVYWNydXNaWGRjRkRGdTF4b0czN2dlU0E1YmpPQ1FTaWZIZnkwSmFjcGJQNTBQcDRrT2hySUo1RTNjM1YxR3IxYUpDMFJ3YXhpV3UraFlLaVh2cjNwVzFNNit6V1ZnT1M3ZFNNa2NrQW9DWEwxOTZpam1UN08vdlkyOXZiL3gvUVJCd2RIU0VUejc1QktacDNqald2WEl6U0FaRHNpei9JV2cyRVdYem1Sckg2YnFlMUhYOUI1Z1l4emtyNzR0d2RIVDBOUXhYbkwvbXRrMm4wMW00WkpRRUVwSEZNSXk1bmN2UzZUVDI5dllDamZPU3lTUnl1VnlvalNHV3VaN0tza3kwLzZRVGNsSUJzZDF1RTIyM1RwWVI0Q2lMRVZUMENVdGtDOE9FSUlvaU9JNExMSUNTaUdPaUtJYVdjUnMwdzIwU3Z5WWREc2xrRWg5ODhNR3liazBSd0FmSlpGSW9sVXJJWkRLTlNxVnlhL1dVVy92QjNIQldwRWkyamNWaS84TDVKNGJmbFEzZ0hRd0hENDhCN0dHNDZ2UWVnSDBBb3FxcXUwQ3dzS3luVDU4U2IrdEdzOWtrdWdoa01oblhRR0FLWlJPWk55aEtKcE56VzhTYXBnbFpsbWs0K3h5NjF3YnN3UUNGUlBMVzVoYjVNYS9jaStkNUhCNGVMaTNXZDd0ZE5CcU5HNE1jaG1GUUtwV2dxaXBxdFJyUklNaDVqdHR4TElyaTNMSUxMNkhJcit4c0ZJTDlHV2kzTThxR0UyUWN0d2hIUjBjUUJPRXZlVzBUZGNnc3lmWEk3WHp2OVhybzlYcUJXMUVYQ2dWSWtrUThvZFEwelhNU3U4eDNST3A4SVptUXA5TnBvdS9BTUl5MU8yaElNb1NXbWVRRytYekx0Sk5mTmFUN09XL2NlQmRZUkNoYUpjMW1jeW1SbWxRVUQybHVzSXUzVlVpS0lBak5kRHA5YTB0MDdweFFGSVRCWURCdy9vbFJDOVpZTENZRGVJWmhhOWIzQUJnQWVnQVdxcEhQNS9PaFdQVklTczU0bnAvcXRFT2hiQkx6VmkrOFhCQ0ZRZ0dWU3VYR3o5dnROaFdLWEhodG1laFoxemprQmZETWRsLyt6WDZ3VlNkTjAxQ3RWcWNHUzJHSVJJcWlUSldEVGVJNGxXUlpKaDRFa2V5VGFackk1L00zZnU0bEZQbWRFNUlrM2JRbVVDaDNFTU13aU1xZXduVGZ6RUtZbGVINWVLL1hRNlZTR1plOGtwRFA1K2U2bEJaNS8yV3VxN3F1dzdLc1VIS2FTTWNENit4azVrRHFwcGhYdlRCYm5UQ1pZME1aVWl3V0YzS3NCTzJZbGtnazdxUWdGWlFnV1kxZXJLbEtSc1J3M3Y4YXc4cWtXOGwyenhUV3dHQXd1QUp3SG92RlRBekx6ZDRBZUlXaEJmbzEzdGExSnpIOGZuY0JwRERNTzVyQ1NZVmZsdGtPRFc1UWtZaXl5Y3c3aHIwR09ZSWd6RjBsVVZXVnFIUElYYVdQQWFxNmd1THVQYVRaN1cyOWFnNzZ4TnNxaW5LanpXclExZlpaRE1OQXE5VnlMVDl4WEVIMWVwMTR3SmpMNVh3NzkxbVdCZHUyYit5M2s1a3lqMVFxUlZKMjloTUEveHpVVVVTNTQ1Q3N2RWZkUHB6a3VrVGl1dEYxUFpCWWxNMW0wV3ExUW5NZkxPUGcwSFdkU0xEemUzMVNvV2hWZ2RWaGNIUjB0TzVkMkRpaTdoZ1hoRTFxYTI5WjFrTG5ZSlJDbDJOd0NFdHNYM2VjeWlhN3RaYUZDa1dMNDVaMVZNS3dOTzNMQU81aDZEQnljbzZtQ0tOem1qTlo4ZVBnNElDdUxGQzJEcis2WXllQWM1WldxMFdGVVEvNkdPRHNTc1VEbHR2YVVqU3pUeVlVeWJKOEk4Z3huODh2WElKckdBWWtTZks4N3ZJOEQxRVVReXMxbTZUVDZjemR6aXN2eGEvc3pEQU1tS2I1SXd6ZHNyTHZUbEFvdDVSWUxNYU03anVlQTZadEdrL3B1aDZvMFVNdWx5TUsyeWNwazBvbWt3dFBPRWtDcmYwZzdSNDNLcjFkNnIwbzZ5WHFqbkhiQ21uampGWFI3WFpERjZQWGhBemd1V1ZaejNWZGw5ZTFFMUZEaGFJRmNhdVJqOFZpTlF3UEhpZkRTTVhiZ01VcFo1SGY0SjBFRXBFb25VN1RnRi9LVnVKMzAzZHpGVW1TaFAzOS9aVzFGOTVXWGxzbTlMNk4wbTRLWER6YUZmS3d1U1p3Rk0xMkh3c2l5TXhDSWhBQncrdXRiZHZFSzJYcGRCckZZcEZvZ0d0WkZtUlpuaXR5TFZOMjF1bDBQZ0x3eFdBd09QZmRDUXJsbGhLTHhYWUJpS1pwdmdmZ2ZiL3R0eW52cE5Gb0VDOU9pcUpJTkxra0VjSFg3YXdnRmZRMm9ld01DTmFWakRKTm1CMzdsbVhkeDcxRHQ5dU5OSFEvQ0dFTFJBNXJFQWRORE9mMkRRQXZPNTNPWndDQ3RjWGJJdWdzS254a1RHY1lPVGxIVjVod0ZqbHRUSmZCbWJoNHdUQ01ieWtEaGJLcGtKd2picGtLblU2SEJyY1RjTlczVWRIZWJGMHBtbXBmZXo1ZXI5ZW5TZ21jakxhZ1RnREhJdTFYNHV0MFdWSlZsZGhGdEwrL0gwakVkd3RxVnhURmRmQkZFdVFxeS9JcGdPOFI3d2lGY2pzUkFYek5OTTFmQnVBYkVoUjErVm1ZMkxaTmZFOU1KQkxnZWQ0M040UzBmZlk2SWUwUXRpbVRhY3JpYUpxMk1mbVVtK0JzcXRWcVN4L1hmb0gxSkJpR2dVcWxFcGxqYncxZEFKMktvb3FpS09ldFZrc0ZZSzE2SjFZRkZZcENaazZHVVIrQU02TVpPNHNFUVZoNlJrWnlBY2psY2h0eHdhSlEvSmhkU1NPOStMdGxLblE2SGVSeU9lb3FJc0FwUmN2dUpMREg4VnRSaW5acHU5K1had2RJaStRUk9VSThTUWFjczNwSTZpNVlaSDhzeTBLcjFVSzVYTDd4bU5lOXdFK0lHcFZjMUVDemlTZ1VwNXZOejVPVVBTV1RTZlI2dlVoMkpLd2c1MG1DM0JORlVmUVZpa2phWjY4N080UmtranNxdlYzQjNsQW9RNkowSEJtR2dXcTF1blJBTkJDT1N5dVJTT0R3OFBCR001R3dXSU1ZZlFYZ3ZOMXUxMXF0VmczQU9XN3grSW5Pb0tMRFVSeWRnMmRuOVBjVmdDZXBWR3JwcTRSZjhCN1A4OVJSUWRsYWdxeld6c3RVY01wL3FLT09uTzYxZ1o1MWplTHVQYVNZSGY4bnJJbWVOWCt3WVZrV2FyWGFlUExHTUF6eStUejI5dmFJWDlzUlpDUko4aDBrOFR3UDI3YUpCejhjeDZGVUtpMDBlWklrYVc0WFFLY2N6ZTM5L0ZaWUZVV3BBUGdwYURZUmhlS3dUOUw1TE1vSkNrbVFjMUJzMnliT0tncnpzNjJ6Ukk5a1FyNHBaV2ZBWnBWUGJSdmJWTFlYaFZCa0dNYlkvYnhwSkpOSnZQLysrK2gydTJnMEdsdDduQnVHQVZtV0xVbVNMblZkYndQNEdNT0dWdHRSZzd3QVZDaUtDQ2ZES0JhTEFjTlZxamlBR0lZNVJZK1hIUUIwdTEzZkU0MU9rQ25iVEpCekpKUEpvTlZxM1Rnbm5PRGZkYTlxYmhQWGd6NWU2Y3BHdTR2ZWpJUWlaMFU3bVV6ZVdFVUxXbW9XWkpEbGxKbVpwa2tzRWkwVG9BMjRCN1RMc3V4Nkx5REp3Wk1rNlhjR2c4SGZYWGpIS0pUYmcrTW9TcEtjMTJzb2VWZ2FVcUdJWkNKTDZsaFlOTkE2alB2MnRqbnF3M0NCVU5iUHFxNE56a0tSTE11UnVCdkRDSlNmSkp2TlFoUkZ0RnF0MEFTdEtMOXJUZE9nS0FvVVJabjhmdnQ0bTFQVUhRd0dOL0tLYnhOVUtJb2V4MW5VeDdEKy9aSmhtS1Z2WG41bFo2bFVpazZPS1Z0TmtCVVhsbVdSeStYbUJnaFhxMVU4ZmZxVWxxQUZwSHR0NE9MYVJJbFBiWlM3eUI3MDhkb3l4MEhWVGtEMVpJZXhmRDVQWEdMaENFUWtEaUxIb1dNWUJ2R2dMRWhZdFJ2dGRoc013OHgxQjNtRlpwTjBPOU4xL1diQUY0VnlOeEVCZkFBZ1R1Sk9TQ1FTWUJnbWt0VnhrbzVpaTBBcTJKQUk3S1NmV3hDRWhTYUZKR09BTUZ3a2JndE5sTzFpazhvSHd4cHZPaUxGTEk0N2NKTStNeWtzeTZKWUxDS1h5NkZXcXkzdE5pVDVycnZkcnU5M1pkdjJlUEZSMTNXdjY4SGEycXl0QXpwemlwZ0paeEdIb1dDMHovUDh3T2Rwbm1pYTVudGkwWkl6eXJZVGRHTHREUFptc1cwYjFXb1ZSMGRIWWUzYW5hR1BBVjdwQ2g2d0hBcUpaR1R1SXJOdm8yZGQ0N1ZsNEtvLy8rYThHMmVRWW9hM3JNbWdhdWYzQ3d4WGxvckZJdEVFSzZoQWxNdmxZSm9tMGZiQVVDRGEyOXRiZXJMbmxNTGw4L2tiajNtRldHY3lHZDl6U0pibEx0NW02RkVvbEJHa0V6QlJGQ01KUWlhNXhnaUNFSGlTWmR0MnFQbEhKSysxU1B2cVZDcTFNamVRMTBMVE9qQU1nL2l6SzRvQ251Y2pXUWhiZHhCNVVFalAyVW5oaFdHWWpmNmNpcUtzOWJpTVVvaEtKQkk0T2pxQ29paG9OcHVSbHFkS2toVG02MmNBL0N5QUg0VDFncHNNRllwV2g0eGhOelJSRUlTbGx1ZjlCaVdaVElhNmlTaGJUOUNPTW9sRUFwbE1adTc1b2FvcWFyWGEzTklkaWordkxSTTk2eHA3SEk5M3VGMy9KeEJnRC9xNHVEWTl4U0VId3pEUWxtVWtrMG5YQVFXcGk0aTBpeGt3Rko2Y2hnQzFXbzFvMEpSS3BWQW9GRUs3QnJNc2krUGo0N25uUTd2ZGRuMWVMcGZ6ZlcxSmt2NFF3RDliWXZjb2xOdUVET0E1Z0w5aW1pYlIrRGlWU2tVaUZFV1p0eEptL2hISmE3RXNpM1E2SGFnMGhuU3gwKzhhVHRxMUtaZkxRWktralhCb21LWkpMQlROM2c5NW5nZkhjWjZmV1JBRW90Ly9JZ0xmdWlFUkxnM0R1TkVwbCtmNXFYdXMxL2REZW13NjVlbkxRQklZSHlXR1lVVCtIb0lnakFVajBuSFdtb2tCS0FQNEJ1NkFXRVNGb2hVeDBRM3RuT080cGI1M3Z3SEVObDdjS1pSWkZsbmxjUk9LZ0xjQ0t4V0xGcU9QQVZxbWh1NzFGUXFKSk5Mc1ltR011bTJoZTMyRjF5NkIxUE9RWmZsR1dQa2s1WEtaYU9EYmJyZUpTZ3ljY2pGZ1dObzFPNmljUnlxVnd0N2VYaVR0ZWVkTkdyekszMUtwbE8vNU15bzdxK0FXZCt1Z1VBSnloV0VIR3dYQUE1SjhEbEVVaWE0UFFTR1pMQW1Dc0RFdUdEOEVRU0FXaW5LNUhMR1FSZEtaaldRc3diSXNEZzhQY1hwNlN2UytYdVJ5dWFuN1FGQlhTSkN5dzluOEoxM1hvZXU2NTNjdHl6S2VQSG5pKzlvc3k0TG4rYTNLVFNJUkx1ZmRUMmMvbzVmN2hMU3NQUXloYU4zbGtLUy8rekJjaW9JZzRQMzMzNGNzeTJnMm0wVHZuVTZubDNyUEpVZ0MrRVVBNVZnczFzY3dxMmk5cWw1RVVLRm85Znh5SXBGWU9PNStOTGgzZlp6ak9LS2dRZ3JsTmlJSWdtZUhGVW1Ta0VxbDZEbXlCTmVEUHM2dVZPekdHUlFTU2VMOEl0MjIwRFoxdkxHRFZUcU51a3k0UGs2U3gwWnFiYzVrTXNqbGNrZ21rNEZFcFVLaHNITDd1bGZtQjBtSXRTekxtOWNhaFVMWkRINEs0QUZKNXpPV1pTUHA2bVdhcHUva1N4Q0VVQ2FqeTBBYWRpdUtvcWZZNzVESlpJZ2JzWkM0TFVqRHU0R2g2SkxQNXhjVzMzSzUzTng5RndRQm9paWlVcWtRVGZ5RC9ENUZVUXljL3hSRStCRkZjYXVFSXBMdmQ5bndZMUpIbmxkcGFGREgvTHF3Ylp1b0ZMSldxNFUyRGhKRkVhSW9vdGxzK2pxLzF6aVdqd0hJQS9pTEdKYWkvUzZBejlhMU0xRkNoYUkxc0l5anlNOU5SRkp1UUtIY1prcWxFazVPVGx3ZmQxWi9xVmkwSEZkOUc2OTBCYnR4QnRtZFhhVFpuYmtaUm9zNGlCejhXcWs2UWRaZVRPWVp1WkhMNVpEUDU4R3lMQ3pMd2llZmZPSTU4V01ZQnJsY2ppZ0h5STg0WXVBWkJwZTJSZndjeTdKY25YT2tpd1dkVHVjNWdIOE82aWlpVUJ3Y1I5SHZBL2o1SURsRlVlUnJxS3JxNjFCY3hBVVRaalFCYVdsTUlwSHdMVC9MWkRLQkhMOGs1WGxCZnkrRlFtR2NSVWNDei9QSVpETElaREtlb2w0eW1TVE9zd3BTYnJTbzZCRkU0TnNXMXhvdy9PNzh6cGxWTlRieEVrMUlCWlZORU9rVVJmRWQ1N0FzaTlQVFV4d2NISVEydGk0VUNoQkZFYlZhemZWN0lEMysvVEpLTGNzaWNpZk9qRVVGQU4vRXNGdm16dDdlWGtWUkZGblhkUTJBaGVIOVJCMWxGVzh0VkNoYUE4dE1MTHhXMWhtR0lWcEpwbEJ1TTRsRXduZFY4T3pzRExadFkyOXZiNFY3ZGp1NTZ0dG9HSmRvR01COVpnZjNtQjN3bzlXeXk1R0xLQ2lrRHFEOS9YM1g2NmxoR0w0ZE5TWUZJbUE0RVBCYTlYVXlpMFJSREdXd0dVY01KVDRWK0R2eVdtV2JGM285aTJFWU1FM3pCTVBjUERuUW0xTW90eGNab3l4SkFIOVZVUlNpdWdaU3QweFFGRVh4bmZRbWswa2NIQndRbDcrUk9obEl4WW9nUXN6ZTNwNnJVTFRJQkpQRVNlTjBod3BTRWx3cWxhQnAydHlKSThkeFkrZHkwUHNBcVZBVTVEdGR0RHlNdEx3dG1VeHVWZmtaNlhHN0NpZGVHREVnNnk0OUE4akVLcWREWWRnTHNjbGtFdVZ5R1pWS1plNStoT1hNWWxuVzkzeVk4emdINERHQUxJQ3ZBWGdGNExtbWFaL1Y2M1ZWVmRWekRKdFlYWVN5azJ1Q0NrVXJobUdZcFpaeXZHNGdZVTFlS0pSdHAxQW9RRkVVei9QRmNhclFEb0hoOGNhK0RseGFOb2tUTkUyNmd1azJpSkpsR2JWYXpmWHhYQzQzRHFtZWZkN3NjNXkyOVBsOFB0UXVQSEhFY01nTFlHS3h3RzRpdHdrU3FadElrcVEyZ001Z01EZ25mbU1LNVpZekdBeXVZckZZRzhBZkF2aGRYZGYvQXNuekVvbEVKSk5wV1phSnlyQ3kyU3hNMHlTNmJwS3V3Sk5PVUlNSU1mTkt3M21lUjZsVUNseXkwbTYzaVNmNjNXNDNjSGJja3lkUFVLL1h4eGxIZ2lDQTUvbWw3Z0ZCSnJXazJVckFjRElkOU5nTElrQnNVL2taNmVkYVJpZ2lkV094TE91Wm0rbUhaWkdOQ3hpR0dlY1NjaHczdmg3TnpnYzFUUnQzZWcxQzBHRDlzN016U0pLRXc4UERVT2FrTE11aVhDN2o5UFQweHUrTXhIVVpJWEVBRDBkLzNnWHdaUUFQa3NsazVlam9xRkdyMVNCSlV2Z3JDQ3VHcWdvcmh1ZDUvK1ZlRnd6RDhMd0kwckl6eWpZeldjKzliQTA1TUxUa3U2MUNPTFJhTFppbVNRT3UxMHlRVG1TVEtJcHl3eFhXN1haZFY5ZG5IVVN6SkpQSjhTcGdJcEVZMThxSHpXNmNRV2szQlM3T29HbGNCbnJ1c200aUFKQmwrVGxvdHpNSzVRYUR3V0FRaThWTUFQL1l0dTJmTnd6akVZazRrTWxrUW5jVm1hWkpMTUk0blJiOXVnYVJpaFZCdWgwRkVXTDhTa0JJMERRdDBIZmQ2L1VDdFp4M0lNMUtJaVhJZHhwRUtGcGt2QlJFSk1sa01sdFRma2JxeGlvV2k3QnRHNHFpK0M0cUxnT3BpMndlYm1OWHg5VW1paUlZaHBrckNzMGptVXlpVkNvaGxVb0ZDdURYZFQzUThRZ01mdytWU2dYbGNqazBzYWhZTEtKYXJVNzlQS2hiTUdKRUFCOWdXSktHL2YzOWhpekxXNit6YlAwSHVFdjRoVml2T2t5VlFvbUtNT3lremlyRXljbUpwL2dnU1JJc3k4TGp4NCtYZms5S01CWVZpQnhtbitNbUVtVXlHU0pIVUZUQzBDVDNtUjBVZCsrQmljVmhEL3E0dUE2MnFybHNOaEh0ZGthaCtPSmtGZjMzaXFMOHpRU0J3aEJWK1ZtejJTUytKZ21DZ09Qalk4OXJLdWs0TVlpUTBPdjFpRjBXeStLVUJ3ZWxYcSt2L1I0ZlJEQUlHc0lkbENDaUZVbSsxQ1pCSW1vNGp6dkhyS0lvcU5mcm9UdW5SRkZjdXN6TmFkamg1Rnd0eXlMSGl5UkpnWituNnpwT1RrNVFLcFZDMmU5NXI3RmhEV3AyQVR3YS9WdGhXYllwaXVMV1Q4eXBVTFJGZU5YZVVqY1JaZHVKb3RXdkl4YjVkUnZwOVhwNDhlSkZhS3NmRkc4TXd4aGJvTU9xd1RjTTQ4WkVMWjFPbzFRcWJjenZkSS9qc2NlOVhmM3RXZGZvWTBEOGZLOXlDMUkzVWF2VmVrWDhoaFRLM1VUR01Ldm9TdGYxQW9EL0dEN2o1YWdtMDdxdUJ4SmhXSlpGb1ZCQUxwZWJlMzBsemJFTVdtN1NicmNqRjRyOE11Uzg2UFY2YUxmYmE4c2xET3BhQ2JKdEdBNXNQN0xaN0swU2ltWVJCTUV6QzJjWjVqbGhTUGZwNjEvL2VxajdBaXd1RkhtNXNkMndiUnZWYWhYNWZENnltSWRHbzRGa01ybEpaZ2tSUTJmUmE0N2pmckRlWFZtZW15MXFLSkdTU0NRV0xqM3p1bkZ2a1BXT1FsbUlxQVk3VGhpZW4wdEoxM1djbnA0RzZqaENDWWFpS1Bqa2swOXdjbkt5c0l2SWpjbFc5cWxVQ2srZlBzWGp4NDgzUWlUYWljWHhGZjcrbEVnRUlGQ0l0V1ZacmtKcUVEZVJKRWtmZ25ZN28xQmNHUXdHVjZQOHJwb3N5NzhCNEg4a2VWNVU0N0I2dlI3NE9TekxZbTl2RDRWQ1llb1BhZmxWMEZLY1hxL24yV3hsV1JSRldWZ2tjbWkxV29HY05HSFNiRFlEYmU5a1A1R3d5RDB1NlBmb2xEbHRBNHVXa2JFc1M3VG9IbFJFRlVVeGxHRHJNQWs2M3JadDJ6TTgzczh4MVdxMThPTEZpOERmM1NSdTU2NXQyNmhVS3VoMnV3dS9Oc1VkS2hTdEdJN2pIaTd5UEsvV2Zjc0c3RkVvbXdETHN1UE9DV0ZES2hhWnBvblQwMU42d3drUlRkUFFiRGJ4N05relZDb1Zva0Vjd3pESTUvTTRQajRtZnA5TUpvTjBPbzF5dVl5am82T051U1krWURtVWsvZkJNOU9EK1l0ckE5ZUQvdHpuV0paMUk4Z3lqR3lpVnF2MVl3QzAyeG1GUW9ocG1yQXNxd2ZBMTA0UmxWQ2s2M3Bnb1dFWkZoVjhhclZhSkFzdHpXWnphWkVJZU90dUlBMEpEb3RGTTNEYTdUYlJkb3Q4bmtWY005dlNWWG1aWXpBcVY5eHRhSnJTYXJYbWpvM3I5VHBSV2FXdTY2aFVLbmo1OHVWQ2dxM1hlOWkyamJPek03eDQ4U0pTd1pvUUdjQnpERHVneWV2ZGxlVlovMUlyaFFpdkVnM3FKcUxjRmtSUkpHcDV1d2lPV0ZTcjFYd0hTV2RuWjVCbGVhUEtscllKVGRNZ3l6SmtXUTQwSUdVWVp0eVJqR1ZaM3h2KzVLQk9FSVNWWkdTUXNodG5VRWdra1dKMjVqN3U1U2FhemFjSW85UFp5RTMwcndIOGZkcnRqRUloNGdyQXVhcXE1NklvdGdDa3ZUWm1XVGF5TEpkV3E3V3lhOXlpQ3lXT0VITjhmQnpLZmRNd0ROUnF0VkNEaHAzSjZpckx6QmR4aEFGRFp3eEoyZUdxSnNhWlRDYXk4Vm1ZNkxvT3k3SVcrdjJTWkFrdGtqZmtkTTNiaE81eGlxSXN2QjluWjJmb2REcmpSZGRGenMxZXI0ZGVyNGQ4UGo4ZTYvbmhkR3p6UTlkMVZLdFY4RHdQUVJEbWRyZU5rQ3NNUmFKWEFDcWFwbjNXNi9XMnZrU0J6b0MyQks4VGhBcEZsTnRDMUFNUlJ5eXFWcXUrTjdoZXI0ZlQwMU9VU3FXTkVpQTJGVVZSSUVrU0ZFVUpQSkRpT0E3NWZCNmlLRTROR3Z4c3lwdG9oWThqaGtJaWlZYzc3b01UTHplUkxNczNCazVlYmlMU2puMDBtNGhDQ1l3TTRKa3N5NklvaW4rYTVBbFJacmxVcTFXVXkrVklzemdVUlZscS8wM1RERVdJYWJmYlUrWEVZZUtJUmFWU0tkTHYwakFNdEZxdHBjU0JlcjN1K1YwRzdRQzNERTc3OVdXQ21WZEZrRER3U1VpT045TTBGK3FpTjlrWmNWMFJCNFpoTEpTWE5FbFlZbGVyMVVLbjA0RW9pc2hrTXE3ajdIYTdIZmdZMTNVZHVxNlA1eE5PSUxnZ0NHQVlKcXJ6WHNiUVNWU1JaYmxScjlkVkFLdTFMMFlBRllxMkFFM1RYQy9NRVI3d0ZNcktjUVlpVWNLeUxJNk9qbEN2MTMxRktXZlFtOHZsUW0rVnUrMk11bWVoMisxQ1ZkV0ZCdlNaVE1aemdPQTNtTnFrYTE4Y01iekQ3U0s3a3dBVDg2N3Fkbk1UV1phRmRyczkxVUxhbVd6TXd4bjgrRUd6aVNpVTRBd0dneXNBNXl6TDFnRFVBSlF3RENyZGRYdU9rK1VTaGNEaFpIRkVKUlpabGhWS2lkc3lyaDNETUZDdjF5TVBUbll5Q2NNTzJYVVdUR1JaRHVVWTBIVWR0VnJ0aHJ2WmVaOUZXNjhEaTRVK1IrbjZEaE5WVlJjU2lrZ0ZIRVZSQWd0Rms5OTFyOWRiMlBXMEtOMXVGNDFHSTVKcjA2TFl0ajExSE05bU9kbTJIWW93cGFvcVZGVzlNWlphSWp0S0I5QUMwQVhnSERUbkFKNnJxdm9aQUhYMC82MGZiMUdoYUF1Z0lkYVV1MFErbjE5cThFTktzVmdFei9Ob3RWcStLMlNkVGdlS29rUytBcm5KT01LUW9palFORzNoY2dDZTU1SEw1VzY0aCtiaDl4NnI2UGJpeDA0c2p1ek9MaDd1Y0w0Q0VUQVVpZHpjUlBNRUlUZVJpR0dZSUc0aW1rMUVvU3lJYmR1eXBtblBrOG5rQXd5NzJUenkybDRVeGNqdVlZNVlGRmJMNlVrYWpVWm9aVjVPYSt6RHcwTWlNZHNwcncyN3lZRWZqcXZCdVNjRnZiOWJsZ1ZWVlNITDhrSnVXaEljZDdPemlHYWFaaWp2b3lqS3JSV0tGaTNISXcxYjduUTZTN2RrNzNRNks4a3VVaFFGOVhwOUk4cmUvQWl6ekRUQzl4c0ErQ21BSHdMNFhRQ2ZqWDd1bEo1cEdEcUpyakFVakxZYUtoUnRBVjQzemFqZEZ4VEtxaEZGY1dVMTk5bHNGcUlvb3RGbytBN3NuUlhJVFd1NUhoV2Fwa0hUTk9pNnZwUXdCQXdGblV3bUExRVVpVmZoU0FaczYvb2R4QkhEd3gwTzkxbk9OWU5vSHZhZ2p5L00rUXRNVGczKzVBcVhwbW11eHlWcDdUM05KcUpRbHVaS2txVHpaREo1RHVESWIrTW9oU0xnYlJaUUpwUEIvdjUrS05mQldxMFcrajQ3b2xZbWsvRWNxenF1Z25VNUhXemJScXZWUXF2VkdtZWJlRFdKc1cxN3ZHQ2k2L3BLOWpzc2NXZ1NXWmF4dDdjWDZtdHVDazdYdUtCaUtxbVlvdXM2MnUxMm9POXY5dnhxdFZvTGlaTWtXSllGV1piUjZYUzJRaURhTW1RQS93ckFqd0Q4N21BdytNeDc4KzNtZHM5MEtCVEsxc0d5N0VwcjRGbVdIYS9PMW1vMTMwRmZyOWZEeWNuSlZPZ3lNT3h1ZFkvWkFSZS82U294KzMxY0QvcFE3V3RjMnB0VnN1dzRoVFJOZzIzYlM0dENEb3VJUTVQNENVV3JkQlBGRVFQUE1PRGpUR0J4YUpMdXRZRStCbk1mbTVjYjRCYUM2b1IrazBDemlTaVU1WkZsbWJqOE9NcnlzMG1jRXFkY0xvZE1KclBRZFZiVE5OVHI5VWhYOGxmaEVBNExKOXZrTGtBYWxqM0pCblNVSWlhb1VOVHRkZ09kczA3QVBJblE0elQ0bU1YSkhRc2pjSG0wS0xSd2x6MEtFVmNBL2dXR1pmd2ZZMWg2ZHF1aFF0RVdzRW4xcEJSSzFEaXJkS3RHRkVVY0h4OFQ1U000SzVDZFRnZjdqeDdoRjB0ZlFZTDFFQTlHbWN0N2VDdHVxUFkxWGw4Yk1BZjlsWWhIanZEaXJJUTZ0ZDloWGwrQ2xKWDVzU2xCMWc5WURzWGRoZXZZeCtpMjVlb21hcmZiWTNIVStWeXlMTHNPOXZMNVBOSDNTN09KS0pSUXVESk44MXhSbEhOQkVJak9vNmhkUlE2VGJwakp3RmF2eWI5aEdPT01HenFodk50VXExVThmZnFVdVBQVU5vbCtraVFobjg4VGl6QkJSVENTTWxDL2trclROSEY2ZXJxUTJHdFoxbFFjUU5TNVhoUVlBTDRINExjQVZOYnRKSXJGWXQrYS9QOWdNUGluVWJ3UEZZcTJnSFdsNDFNb3EwWlJsRkRDTkJjbGtVamc4ZVBIeERYZHRtM2o3UFBQY2ZiNTUwZ2xkdkZrLzh0NC9LamdMUnFOU0RFN041d3BadCtHYWx1NHRLOWh1dVRZekhJdXZ4Ny9lMUpjY2Y0ZDVVVEFjUTJScnFvRndXKy9vKzVFUjlLOUxBaE5VM04xRTAxbVBpU1RTVmlXNWVrbUlyVzcwMndpQ2lVVVpBRFAydTIyS0FnQ1VmZXpWUWxGazdnRnRsSW9iamhpUjdGWTlMeW55ckpNNUxqZU5EcWREcEVUY05GdWYwNFpLTWR4WXlmaDVHdVNMTWJORTN2OTloVllmWjRQQlMwQUc2SEd4V0t4Yi9FOGYzeDRlUGhmSnhJSjFHcTEvellXaTBVaUZsR2hhTVhZdGszUGJBckZCZHUyeHplL1ZYZUVtRVFRQkR4NThnU3lMS1BaYkJJNW5GVGpDbjlRcmVBUHFoV2tFcnQ0SkQ1QWFuZTU4cWhKRWVpODk5cGp5OVd4YkVrWkNTVDVSRkhtcyszR0dSUVQ5OEF6NFJ4L1BjdDBkWTNKc255ajFMTFQ2YmlXWCs3djd4TzlwMlZaTkp1SVFna0JwL3RaTEJhckdZWlJTeVFTSlJCMFA2TlF0Z0duUzUxelg1OTE2enBaTjl0SXA5TkJKcFB4WE1qeVdwZ2h4VFROVUw0alIreWxiQ1JYR0hZeVcyczNNMGNrS3BmTC83VXpSOHJuODM5VmtxUi9Fc1g3VWFGb3hXaWFkZ2JnbDllOUh4VEtKaUtLSWppT2cybWEwSFU5Y3RjSXlmNDQ0ZHFrZ2hFd0ZJMWV0bS9IcXE2elV1YjhIWlU0TkFtSkJUeXE3bk43SEk4OUxyejhJM3ZRUi8zcTB2WHhidmRtaWJ1Ykk0RG5lZUpPSzUxTzUzWWNnQlRLNWlCM09wM254V0tScVB0WktwV2lrejdLMWpEWnB2dzJVYXZWVUM2WFhSY2VHNDNHbmNtbG9peUZqS0U3K3huVzZOQm1HT2JCcEVnRURLc2hHSVo1RU1YN1VhRm95MWxsNkMrRnNnb3ltUXhhclJZTXcxaTdVT1RnQ0VaT1o2cW8ydUJ1QWd6RFRBbERVUWt5WHBEa0U0VzlYN3R4QnFYZEZMaDR1TmxIWGdIV2htSGNzTHQ3clVxU3R0SWQ1U0w4VzlCc0lnb2xUTFJPcC9OWkxwZDdtVWdrTWdBNEFLblIzemVnazA4S1pmMDRqcWxac2NpeUxOUnFOWnJ0UXlIbENzRDVPaDNhc1Zqc1c0ZUhoLytYZWFJbnovTS9FOFY3VXFGb3haaW1HYXBjYnhoR21DOUhvYXdkUnlqYVJDRW1tVXlpVkNxTlc0K3FxZ3BabHJldWJuK1NkVGlHSnRuamVKaDlHNit0NGUvYjZjTG14V1FMK1dXSkk0WTlqc2M3bkdzVnljTG90b1cyNmY1WjVxM2V1aDFMNlhTYXVKeWwwK244MUxidEQwR3ppU2lVTUxFQXFOVnE5ZnpKa3ljZkErZ0RlQXpnNGV5RzdYWjdxKzhMRk1wdFF0ZDFuSnljVEhWTERidVpCNFVTSmJGWTdGdnBkUHJmRTBVeHY4cjNwVUxSaWdsYktLSlFiaHVKUkFMcGRCcXlMQk03S0ZZTnk3TElaclBqTXFCdXR6dnVQckhKcThnTXc0RG5lU1NUU2ZBOEgwcDNza1Y1d0hMWTQzaHdjV1pLVENISkp3ckxhWmJkU1NDN3N4dTZpOGloYnJpWG5BSEIya1lIZEJQOUFEU2JpRUlKbXlzQTU3cXVwMnExV3F4VUtnRkFISUNKaWN5aWRydU5ScU94cm4ya1VDaHptTXpBcEZDMkRZWmhIcFJLcFY5ZDlmdFNvV2dOYUpvV1d0a0V2ZWhSYmlQWmJCYlZhaFdHWWF6YzRiSUlrN2t4aG1HTUE0bzFUVnZiT2VxNGJweU9aRHpQYjhSM09Ta1F6WU1rbjJqWm9Oajd6QTcyT0Q2MHNPcDV0RTBkVjMzMzFjcHV0MHZzbXZNTDQ1eEVrcVNPYmR2ZUNoV0ZRbGtFRmNCTEFGY2prWGV3djcvZlkxbFdBdkNCb2lpUFNMcGxVaWdVQ29WQ1Npd1crOWIrL3Y3ZldNZkNMaFdLMW9CdDJ4WkMvTzdYMlIyS1Fva0NwL09HTE12RXJjQTNoVVFpY1dPZm5YSXFUZE5nMnpZMFRRT3duTkRyQ0VHSlJHTGNBVXdRaEVqeWU1WWxqaGplNFhhUjNVbUFpY1Z2UEc1T0NDcCszOGt5Z3RjRGxrTjJaemRTZ1Fqd0x6a0R5TjFFRE1NZ255ZDNHbmM2blE5QnM0a29sTkFaREFZbWdJdFlMQVlBdTVJa3FaSWt2UUxRQlpEQTBGbkVZdWdzY3MwdW9sQW9GQXFGRko3bmovZjI5bjdCYXh0VlZmOHdpdmVtNnNMcStSMUZVUlJCRUVKTEo5K0U3bEFVU3Rqa2NqbDBPcDJ0RTRybWtVZ2trRWdrN2x6TDVKMVlISHNjanpTN00xY2djakFIZlFBZ3luc0tlcTJMSTRhSE8xeWtKV2F6K0pXY0JYR2FaVElaWW1HczIrMTJUZFA4RVdnMkVZVVNKWTZ6cUlIaE9MbzUrbmtMd0QwTXU2SE56UzZpVUNnVUNvV1VVWUMxWjhtWnMvZ2NCVlFvV2oxWG1xWjFBWVFtRkdtYVJvVWl5cTNEQ2JYdWRydkVMY0VwbThGOVpnZFpiaGNwWmlmUTgwanlpVEtaRFBFKzNHYzVYNUZxSHZhZ2orNjFnVDJPOTk5NGhxWng2Vmx5Qm5oM05wc2txSnVvMVdwOUR6U2JpRUtKRk1kWjVQdy9Gb3VaR0xxSXVnRDJNQlNTbkhSODZpeWlVQ2dVeWtLa1VxbWY5d3V3VmhUbDk2SjZmeW9VclI1WjEvVlRBRjhKNndVVlJia1ZyZ3NLWlJJbjFGcVNKQ29VYlFFN3NUZ2U3aVR3Z09WUXUxSURpVVQ2eUVYa2wwL0VjWnhyV2QwOWhnVVhpK01lczdPUU9PUndjVzJnYVdnTGRVRlQ3V3QwcjcwN1VScUdRVngybHMvbmljdUtaVm5XVGRPVWlUYW1VQ2hoSW1QbzR1c0NlQS9BWVBUeksxQm5FWVZDb1ZBV0lCYUxmYXRjTHZzR1dNdXkvTnVEd2VDZlJyRVBWQ2hhUFZlbWFYNFdacTRRRFU2azNGWkVVY1RaMlJuYTdUWVZRemVRT0dMZ0dRWVAyQVFlN3J3dGp5cnRCbXRmMzhjQW1xYjVoanRQbHU3ZFkxZ2M4dmNEdlk4Zk5WM0JHL3NhOXhnMnNKdklIdlJSMC8zTHlVaEZJbzdqQWgzejdYYWJaaE5SS0d0Z01CaGNBVGdmT1l2aUFQb0Fya2NQVTJjUmhVS2hVQUlSaThXK2xVcWxmbDRRQk5Gck84dXlJc3NuQXFoUXREWjBYVGNGUVFobDBHQ2E1dFowaDZKUWd1QUlSYTFXQzZJbzBtTjhRN2pIc0RmRW9VbUNaQUdwOW5BK1JTS2dUSmFkWGRvVzhYdVFZZzc2aUNPR1l1SmU0T2MyRFEzOXNaSEFuU0J1SWxJVVJibFNWZlczUUxPSktKUjFNdTZLTnZxL1k2dWt6aUlLaFVLaEJLSlVLdjFYZnR2SXNud2E1VDRzNXMybkxNTVZnSCt1S0VxTDlBa000ei9wSW1rcFRhRnNHeXpMZ3VkNTJMYU5hclc2N3QyNTA4UVJ3d09XdzFmNCt6ams3N3VLUkVFeCsyK0RyTDJZVjNiMmhSbXVlZWFxYjZPUVNBWU92ZjdDdk1Kcnk3L1ZmYmZiOVhWTkFjT09ka0hLTFp2TjVtOWhsRTAwY2pkUUtKUVZNeGdNek1GZ2NJRmh5UFZMQUIrUC9qakIxeGNZZGthalVDZ1VDbVV1anB1SVpIRmNsdVh2UjFWMkJsQ2hhQjNJQUo0cGlrSnNFeU5wZFUwU0FrdWhiQ05PVUx1dTY2alZhdXZkbVR2SUE1WkRua3ZpK0Y0YXhkMVU2SzNsci9vV1Vkblp2QkRybHFuQjlBbU9Ka1cxcjNHZjJRa3NnT20yaFpaSjFuR2kxU0piSHlnVUNzVHZieGdHVkZVOUkzNENoVUtKR3NkWmRBS2dPdnB6TXZvWldidERDb1ZDb2R4WlNOeEVsbVdoMSt0OVA4cjlvS1ZuSzJhaWx2MFBBUHpsc0Y2MzErc2h6TndqQ21WVG1IVFVPV1U3Ky92NzlGaVBrSHNNaXhTemcreE9ZdUZRYUZMMHZoMjQ3TXdoamxob0xlOHZiUXZGM1dBbFovYWdqN3B4U2JSdEVEZFJrQzZXclZicnh4Z3VRRkFuRVlXeUFUaGQwV0t4R1BBMm80aG1GbEVvRkFyRmx3QnVva2pMemdBcUZLMlRTMW1XRlZFVVErdHJMOHN5N1E1RkNSWExzcWJDMGptT1czbE9rS1pOdXpVa1NZS21hU2lYeTFRc0NwRjdESXY3ekxDZGZGamlDd21YdHVWYmRwWktwZVllZDJtV3ZMT2FIdzlZTHJBbzFqUTBYQkU2bWpxZER0RjJRZDFFa2lUOVl3RC9IOUJzSWdwbDA2Q1pSUlFLaFVJaGhyVFRHUkI5MlJsQWhhSjE4aHVLb3Z4MVVSUy83cmNoU2VrWkFOcEduQklxbXFhaFdxMTZ1aUI0bnIrUm9hV3FLbks1SElyRllpajdZZHMzSitLNnJ1UDA5QlNIaDRmRTV3ZGxtc21PWlNtR1hhazQ1S0RiRmhSRldhanNEQUR1cytFdHlBZjkvRDNMSk1vbEFvWnVJbDNYd1RETTNPUFpJWlBKQkhJVGRUcWRqd0I4TVJnTXpvbWZSS0ZRVmdKMUZsRW9GQW9sQ0NTZHpvRFZsSjBCVkNoYUs3SXNueGFMUlYraGlDVE1HaGhPMEduM00wcVlaRElaU0pMa09wR2ZkQnROMHVsMG9DZ0tEZzhQbHpvZU5VMkRxczZQZERCTkU1VktCZnY3KzFRZ0pXUW5Gc2ZEblFSMjR3eFNEQnQ1V1prZnFtMzVscDB4RERQMzl4dEhET2tRaGFJZ21IMGI5U3V5a2pQZ2JUYVJsMGdFQk90MFpsa1dKRW42WXdEZkkzNFNoVUpaQjlSWlJLRlFLQlJQWXJIWXR3NFBELzhHeWJhcktEc0RxRkMwVHE1TTA2eHBtdWJyaU9CNW52aEZPNTFPYUU0T3l0MG1tVXdpbVV5aVVDaEFVUlRJc2d4WmxvbHlWb0NoaUZTcFZIQjhmQnk0Uk13d0RPaTZEazNUUEYwWXRtM2o3T3hzTERZSWdvQmtNb2xVS2tYTDBqQVVVeDd1Y05pTnMydHpEWG54eGpaOXk4N2MzRVJobHAwRnBXNWNvbzhCMGJidGRwdm9uTW5sY29GRTFVNm44MVBidGo4SHpTYWlVRFlhNml5aVVDZ1VpaDhjeCtWRlVTUmFNWlFrNlo5R1hYWUdVS0ZvbmNnQWZxb29TaVdaVEphOU5nd3k0WlVrQ2ZsOG5rNlNLYUVpQ0FJRVFVQ3hXSVNtYVdnMm0rajFlcjdQYzF3L0pIbENpcUpBa2lUSXN1enJ2SmpGY1IxTnVvL1M2VFN5MlN4RVVRejBXdHVNNHhTNngreHNoR1BJajBhbjQvdTd6dVZ5YzM4ZVp0bFpFTDR3cjNCcFcwVGJXcFpGMU9tTVlaaEFiaUlBa0NUcHV3QitEVFNiaUVMWkZxaXppRUtoVUNnM2lNVmkzem80T0NES0pocDF1eVh1bnI0TVZFMVlFNlB1WjM4M21VeCtZMjl2ejFNb0FvYXVJcmN5bjBsczI2YWgxcFJJU1NhVGVQejRNWUJoZ0hxMzIvVVVqWFJkUjZ2Vm11dDBHNVhQb05QcEVEdVZTT24xZXVqMWV1QjVIc1ZpTVZEMnk2Szh5Nzk5RDkyMmNXbGZRN1V0WXZjSktidHhCbHdzRHA1aHAvNjlUYWoyTmFUWEY1N2J1SVZZcjZ2c3pPemJhSnYrMTJHSFZxdEZKSHJtY3JsQTRuNjMyMjJhcHZreHpTYWlVTFlINml5aVVDZ1V5andZaG5tUXpXYVBTYmFWWmZuM290NGZoKzJhV2R4Q2RGMy9DVW11RU1keFJFSVJNSnljVUtHSUFnd3pmbXpiSG5jT215eHpERU00RVVVUm9pakNNQXkwV2kzWHZKbE9wM09qdEVhV1pkUnF0Y0R1b2FBNEpYRDVmRDVRUjZsRmFKczZEdm43QUlBVXM0TjN4bVAvb2NpZzJoYXVCLzNBcjN0dkpBSnhzZmpHbFk4dHloZVhxcThyYlc5dmIrN1AxMVYyVnJ0U2lVVy9VVWN5MyswWWhuRjFUYm5SYXJXK0Q1cE5SS0ZzSzlSWlJLRlFLQlFBUXpmUi92NCtVVFlSQUhRNm5mOTJGV1ZuQUJXS05vRnJTWkpPQzRXQ3A0cVlUQ2FKU24yQVlibFB0OXVsWXRFZFJKWmxLSW9DUlZHSWhNVlVLZ1ZSRkpISlpKWXFWMHdrRWlpVlNzam44NjZDVWF2VlFxbFVBakRzQW5WMmRyYncreTFDcTlXQ0xNdEVaWENMY21sYlVPMXJwSmliUWdZWFovRHdsb2c4WWZDWjVOMHVudU00MTdMQmRaU2R0VTBkVjMxeVViTmVyeE9Kb1B2Nys0R09SMFZSRE5NMGE2RFpSQlRLVmtLZFJSUUtoVUp4WUJqbVFTYVQrUVdTYlRWTmcybWEvcGtHSVVHRm92WHpQVm1XZjRWRUtKcUhXOUJ2bzlHQUtJbzBxK2dPNEdUN2tMZ1habEZWRmFxcW90Rm9JSi9QQnk2Qm1jVVJqREtaREdxMTJsUTUyV1JvY2RobFpxVG91bzZUa3hNOGZmbzBzbk9qYmVwSThlc0xXdDRHZE50QzQ5eTdhc3JOWmJPT3NqUGR0Z0tWbkNtS1FpVHNPemxhUVdnMm03OEptazFFb2R3R3FMT0lRcUZRN2pDeFdPeGJ1Vnp1TDVET1NTUkpXb21UeUlHcUNPdm5TdGYxRjVxbWZjdXIrNWxYNTdONStVVzJiYVBUNlVSZWFrTlpENVpsUVpabGREb2Q0cEpFUHh6SHpiSXQ3WUZoV2R2eDhURnF0ZHA0d2p3WjFodEVLT0k0RGh3M1h4Z3dUVE93NkdUYk5uSEE5aUo0dVlvb1F6NTdMZm4rM3R5Nm5UM2NXYTFJWkEvNnFGMnAvaHRPMEd3MmZiZGhHR2Jzc0NORlVSUlRWZFUvb05sRUZNcjJRNTFGRkFxRnN2RmNZYmd3ZDQ2SW5OeTVYTzVicE50S2t2U2JxeW83QTZoUXRBbklBSDdhNlhSK3QxUXEvYUxiUm9sRUFoekgzWmhjMmJZTlFSRG1pZ1dkVGdlWlRHYnBTVDlsYzdBc0M1MU9CeDJDYmxHTG9PczZUazlQVVM2WFhWMXNwTEFzaThlUEg2UGRiaU9SU0l6TGlHUlpKbkkvOFR5UFFxSGcyN1dzVnFzRmRsUHB1aDZwa0VwZFJkNTgybXg0UHU1VkN2bUFYZTMxckg1MUdTaFhxdHZ0VG5YZmMyT1JjazlKa2w0QStHZUJua1NoVURZZDZpeWlVQ2lVelVRRzhIejBSdzc3eFRPWnpQK0NkSjdlN1haUGJkdCtIZlkrZUVHRm9qWGpkRDlqV2ZZUWdLdFFCQXduenZOVzRUbU9ReXFWdWpFNXNXMTdLaGVHc3QwMG04M0lCS0pKYk50R3RWckY4ZkZ4S0k2YnlVQml3ekJRcTlVOHQrYzREc1Zpa2JpdHZYTjhCeFdMV3EzVzBxVjJicXpEVmRRMmRWeGNHMGd4TElxN3FaVzliMUQwYXhOZitIUTdjMnNWZjQ5aFY5cmQ3ZUxhd0J2NzJuL0RDUm9OYnhITXdjMHg1Y1lvSFB1SG9ObEVGTXF0Z2pxTEtCUUtaZU13TVJUeEd4Z0srWjhCME1KOGcxZ3M5cTF5dWZ3WFNMZVhKT21mcnRKTkJBRHhWYjRaeFIzYnRzKzczYTVudXF0Ymx5cEZVVnlkRVpJa1FWR1U1WGVRc2hZc3kwSzczY2F6WjgrSVcyMkhnV21hcUZhcm9iNm1aVm1vVnF1ZW55R2Z6K1A0K0poWUpISW9sVXFCTzBjQndjV2xJQVRKdEFtRE9HSzRIdlJ4YjhOTDNsNjF2VFA0VXFtVXF3dHlqM012d1EwYjNiYlFOSUtOQ1pyTkp0RTV5bkZjWU1kZXE5VjZGZWdKRkFwbDIzQ2NSU2NBcXFNL0o2T2ZCYXQvcFZBb0ZNb3lPTmZqanpFc08xTUJXR0crQWMveng0SWdpQ1RiV3BZRlZWWC9NTXozSjRFS1JadkRiMGlTOVB0ZUc3Z0pSYXFxUWhBRXBOUHB1WS9YNi9YbDk0NnljalJOUTZWU1FhUFJXSmxBTkltcXF1aDJ1Nkc5WHJWYWRjMVRZaGdHNVhJWmhVSmhZWWRQc1ZqRS92NStvT2RNQm15SGplTXFXaFVwaGgwRlBXKzJVUFR5M0R1L3gwMzB2c2V3SzNOb21YMGJ0U3NWZlF5SW4yTVlCam9kNzA1dURrR0YwSkdiNkVNQS94elVVVVNoM0VvR2c0RTVHQXd1OEhZRisrUFJuNWVqbjExZ3VNcE5vVkFvbEdnd01ieldPdGZoQ29CWENEbWphQlJpL2RkSXQrOTBPdDhQNjcyRFFFdlBOZ2hWVmM4TXczQmRUVThtazNPN25ObTJEVVZSVUN3VzUzYmEwWFVkeldhVEJsdHZFUzlmdmlUcW11UkZLalVzUDVvbk1FNGVTNXFtelMxcFM5KzdCK0hldmFYMndhRldxN25tdHZBOEgwcUFOakFzYzJNWUJtZG5aMHUvVmhpc01xdUlaMWc4M09IQXhEWlgvNWRVQlJlWDdndmpITWU1Q3VLcnlpWnl3cXVENUJJQlEwR2VWTkFOV25iV2FyVitqS0d6NEJsb3R6TUs1YlpETTRzb0ZBcGxQVGpYMzVlWWRuWTJFS0t6azJHWUI5bHMxclBqK1NUcktEc0RxRkMwU1Z3QmtEdWR6bW14V0hROWNFUlJuRnN1SThzeWlzVWljcm5jM0ZWdEdteTlIU2lLY3FPdFBBbXBWQXJKWkJLQ0lJRG5lZUxmODI2Y1FUcVh4MW1DeDA5cWJ5dGJ2bkZZeHVOSEJTUW0zQ24yb0EvVnRuQnBYK1BpMmlSMld6U2JUZGNTcjNRNmpWS3BGR3BPVURhYlJUS1p4T25wcWUrMnl3WjIrN0hxcktKQ0loeGhMeXBlTkx3RlBMZHNvcDFZSEE5M1ZuUHRhaG9hcnZyQkhIeUtvaEFMdXp6UEJ6cnVETU9BTE1zZkF2ajd0TnNaaFhMN21aTlpGQWNRd3pDbktKaHRsa0toVUNna3pHWVNmWXloU1BRU1FHUGs5Z3lGa1p1SU9KdElsdVdXYVpyZXVRMFJRWVdpelVFRzhHdVNKQ1h5K2Z5eDI4UTVsVXA1Q2tYNWZCNlNKTTExSGRWcU5Sd2RIVVd3NjVRd2FEYWJhTFhJcmdNTXcwQVVSWWlpaUZRcVJTeTA3TVRpU0RFczdyTWNVZ3c3ZHAvc0hSeGlaNlQ3ZkRtYlF5WjEwOVhCeE9KSXN4elNMSWM5amtmMzJ2RE40ZWwydTY2ZmllZjUwRVVpaDJReWlYSzU3SnVKeEhIUlo0UFNEbWhERE9zYW4zVy9jSDJjWVJoa3M5bTVqMlYzZHVmK1BHd3VyZzI4dG9KWGRnUXA3dzJhcFNWSlVzdTI3Y3VnKzBTaFVMWWVaMlc3RDBBRWNJbVFNeklvbERCaEdHYThXT2xrOFRFTVEvUmN3ekRHaTZTYXBzRzJiWmltR1hqaGxFSlprSlU0aVJ4eXVkeTNTTGZ0ZHJ0cmNSTUJWQ2phR0ViZHo4NWpzZGdyV1phYjJXeDJicDJZS0lwenkycE0wNFNpS0JBRUFmdjcrM08zVVZVVjdYWjdxZ3NWWmYwRWNSR2wwMmxrczluQUdTY1BXQTRQZGhLZXpwYWZLeDBTdng0VGkyT1A0N0VUaTZOaHpKL0RLb3JpV2dMRzh6eks1WElrSXBHRElBZ29sOHVvVkNxdVlwSGp0SXR5UHk1dEN6M0xSSnE5MncxclB1dCtBZE4ybitPNHVZa0E0T0ZPOU4vZEl1SFZBTkJ1dDEyenQyWnhCRjVTTE10Q3A5UDV0NkRaUkJUS25XUENXY1JoT0huWkIvQno2OTByQ3VVdDZYUWF5V1FTeVdReThMaDBGcmV5YzJBNG5sUVVaUnkxUVhyUHBWQUNjSVZoRHRFckRIT0pRbmNTT2FSU3FaOG5yZnd3REFPcXF2NVIyUHRBQ2hXS05vL3Z0VnF0WDh4bXMvL0xlUSt5TEl0ME9qMjN6RUdTSkFpQ2dHdzJDMG1TNW1iQ3RGb3RpS0pJUzlBMmhIYTc3ZHRPbTJFWTVISzV3S1dEdTNFR0Q5aEVwTGsxRDNjU3NBY0R0TXpwQ2JhbWFhNWQweGlHaWN4Sk5Fc3ltY1R4OGJGcmtMWnBtcWpWYW5qOCtIR2srOUc5dnJyelF0R3ptbnNYUFlaaFhITjdIckRSNXk3Wmd6N3F4bVdnOEdwZ2VBTW5kUUVDUTZFL3lISGY2WFIrYXR2Mmg2RFpSQlRLWFViRzhCb2dBdmpUNjl3UkNzVzVYK2R5dVpYTkpRUkJtQktTRE1PQW9paFFWUldLb2xEWEVTVU1MQXhkbTIwTXk4NWVJUUluVVN3Vys5YkJ3UUd4bTBpU3BPL2J0djA2N1AwZ2hRcEZtOGVWYVpvMVJWRU1RUkRtWG9GRlVad3JGRTEyY0NvV2kzTXpXbWdKMm1iZ3RJcDNDM2dHaG1WUnpzMDR5T1R5UHJPREJ6dUpsUWtUNzNDN2VHMFo0MXdYeTdJOFhUejVmRDd5YktCSkVvbkUyRmswVHl6cTlYcVJoNzFmMmhZdXJvMlY1ZXhzR2kzNUFxcmhib2p4T3NZZnJPQTdxMTJwZ1hPSmdLSHdIcVFqb1pkcmFwYVJtK2dIb05sRUZNcWRac0p4SG1yWEhRb2xDQnpISVovUEIxN3dpSUpFSW9GRUlqRXVWMWNVQmJJc0UzY2V2VXM0YzRsSm9jMXBaT09JYkZSb0F6QVVoc1pkSnFOd0VnSGJFMkx0UUlXaXpVTUc4R3Z0ZHZzYmdpRDgyWGtidUpXZjJiYU5icmM3RHZQTjUvTnpWN3RwQ2RwNmtXVVo5WHJkODhLY3orY1hFb2oyT0I0OHMvclQrZ0diR0x1S3ZFUWlqdVBXY3R5eExJc25UNTZnWHEvUEhVaTBXcTFRck5OZXRFMzl6Z3BGenlhQzB1Zmg1aVlhWm1wRm0rOTBjVzNnMHFNa3pnMUZVVnhEMnVlUlNxVUNyYjUyT2gyYVRVU2hVQ2lVdGVLNDJqZTVjN0xqT0NvV2kraDJ1NjVWRlhjSmp1TlFLcFZjUy9vbXg3dE85K01nWTVwbHlPZno0eW9Ka3NxS0ZmSS9ZeWdXeVZHOGVOQVFhMFZSNUhXRldEdHNiaC9sTzhwZ01MZ2FEQWJudlY3dnR3M0RtTHNOeTdLdUU2dkprenlYeTdtRzlUWWFEV2hhOER3T3luSzAyMjFVcTFWWGtTaWRUdVBwMDZjb0ZBckVJdEY5WmdmdkpkTW84Y0phUkNJQVNJM2V0MWFyZWRhT0IzRlVSRUd4V01UaDRlSGNjTVZhclFhM2N5NE1yZ2Q5WEZ4SDkvcWJTa3Urd0huUDNUV2J6K2RkQlpTb2hiV0xhOE0xWTh1UFdxMFdhUHVnQWluTkpxSlFLQlRLT21FWUJ1VnllYU5Gb2xteTJTeU9qbzV3Y0hCQUhLVHRoUlBRdlUya1Vpa2NIeDk3NWo1Tmtrd21VU3FWOFBUcFU2UlNxVWozYlg5L0g0VkNZVHp1Mjl2YncvNytlcG81T21XVStYd2U2WFFhQURBWURNNUhMczVJQ0JKaUxVblNiNjdUVFFUOC85djc5K0JHRXZ0TzhQeWlFcFZnb2dFeHV4TUNDekRZaE1ReVMrd3VXV1dyYmNsamVleVJ4emVhOFdOc2pSMjc4M0I0UEh2ZWl3dmR4VzNFeGtWY3hNM2RYL1BIeGYxMUVYTWRzYkdlSFkxT25sSHMyaU41TEd0SFhudmxsbVh2eUxMa3FiWkt6VzZJS0NVYkVFQ2drZFdKenF4TVpsWW1jWDhBeVdhUmVHUUNpUmY1L1VSMFZCZnhTcElnQy9uRjc4R2dhSlU5YmphYjkwZGRPQ29vQ3ZwMWdYNmdWQzZYUno1QXRWcUY1M0dCeGlKNG5nZFZWVWVtNW9JZ1lIZDNGN2R2M3c1ZGRYQXpjUU9sMURNb1MxbUlOMmIveDNBV2twQThleGRuRkZFVVIyNjFXaVJabHJHN2UzbHd0Ky83a2ViTlRHUFNscmlyNkxYNm0yTXZIL1c3RE9qUEo1cVhXVUtpUnFNUnFWUmJGTVZJMVdxTlJvT3ppWWlJYUdtQ2tHaVJvd0xpbE12bGNPL2VQUlFLaGFrREkxRVVjZmZ1WGJ6d3dndXhCVS96bHNsa3NMdTdPMVY3WUNxVndwMDdkK1lXM0l6cUt0amEybHA0R0JlY2Q1WExaUlNMUmR5K2ZYdnVtNUFsU2RvUGU0N25lUjQwVGZ2M2N6MmdFQmdVcmE0dmFwcjJaNk1xSExMWjdNZ245UG1UOVd3Mk8vSkV6SFhkVlNyM3U3SWN4MEdsVWhrWm9nUlZSR0ZQSkc4Z2dTMVJ3djR6OGtxMU1tbHZqVjU5RG93UEJCYnQ0dmRDRkVWa01wbTUvMFAxcEhkNnJjSWl6VFR3cGpiNmVURnVRUHZHRFdGdUFlZ3NJVkhVQWRaQXRFcTZUcWZ6ZHJQWi9BOEFQalB2ZDdhSWlJaUcyZDNkWGR1UTZMeGlzWWo5L2YycEttWE9CeTY1WEc0aEZUZXprQ1FKZCs3Y21YbUcxTmJXMXNqcSsxbU1POC9KNS9PeFB0WTRRUWg2c2VKcW5zZVFTQ1ErcVNoSzZMYXpkcnY5bGJrZFRBUU1pbFpjczlrY09keGoxQk5hMDdTbldtaEtwZExZVUNtb1FLTDRXWmFGZzRPRGtlMVlwVklKdDIvZkR2MUxQWGN6aGIzMGU3QWxybFlackhGaXd4elR5aGowdUsrQ1FVci8xTWNVUmNHZE8zY1dNai9wTGZjRWZ1OTA3byt6Q3I1eCtNYll5OGNGS004bXc0ZWdib1JCMUxPRVJFRDBsak5CRUVLSHdJWmh1RWRIUjE4RzhDZm9iK0FnSWlKYUtFbVNRcmN0cllOcEttV0dMVjVKSnBPNGMrZk95b1pGMjl2YnNkMlhMTXZZMjl1TE5Td2E5NXpLNVhKenIrZ0IzcTBrR2hhQ3pqc1lsV1g1YjRTOTdyS0hXQWNZRksydUV3QmYwalR0bTZQYXc4WlZhSngveHp1WlRJNzk1YUdxS2x2UTVrRFhkUndjSEF3ZDdDeUtJdmIzOTBNSEV4czNCTHhmeXFLWWVtYnBiV2JEVEdvdldvVXRHWUZ4TTVRVzRSUTlkSzdCcktMamQvU3hzNGsyTnpmSHRsbHVKc01Oc2ZaN3B4QVNpVkRYblRVa2FqUWFrUWRraGgxS2Ixa1dxdFhxL3d6Z0R3Qnd1eEVSRVMzRktsV0F4MmxyYXdzN096dWhyanZ1emMxNVZOdk02dUptc3pnRXM0dmlNaWtJV3NUenJsUXFqZnc2emJPcklKUEovRWpZdGpOZDE1dkxIbUlkV0kwek54cEdSMzgreFlObXMvbkI3ZTN0UzZ2MGdxSFd3MXFhTkUxRFBwOC9TMGRsV2NibTVpYTYzZTZsNjdxdWkycTFpanQzN3NUOEtWeGZuVTVuNkdZNm9IK0NYQzZYSTFVUkZWUFB4SGw0c1h1ek0zNGw2YktIV0o4M3JKMHp5b3J6T0xSY0c4OG14WlVNL2VMeW4ydnEyTXZIaGFSUjJzNkVSTGozTzJZTmlZS3RJRkdGZWVGaldSWXFsY29mK0w2dkFuZ0FvQTdnZXE5c0lhSzFJb29pUkZHRUlBaElwOU5uZndKNDZ2OUg4VHdQcG1sQzEvV0ZiVitpNGVaUldlRTR6a3hyMk1NOGg4SUlabVdPZW8wTzlGK25qM3VObmt3bVVTcVZ4dDdISWdtQ01MZlgyYklzWTJkbko1YlBkZEwzTDUvUHozVldhRDZmSHpzcmRWNXZhQ2NTaVUvdTdPeUVIbUxkYXJYKzlTcFVFd0VNaWxiV1lDN0ZjU0tSK0d5NzNjNFhDb1g5WVUvZ1FxRXc4aC9VV3EzMlZQaFRMcGZ4NE1HRG9TZkZwbW1pMVdvdFpYWDVWZE5vTkViK29sTVVKWFE2djNGRHdIYnFtYVZ0TWd2cnU4Y05tTTdvNG9keGMyaVdZZGdMbFdWc0FHeTVOclkzVnJOOGVWWnZHanFPTzZObkUyVXltZkVseURjM1lqMmVXVU1pb0Y5NUdUVlFEUFBjOXp3UDFXcjFTNzd2SHdMNEhJQjZyOWQ3TlAyUkVoSE5UeWFUT1F1Q2dINDdpU1JKTTU5a0paTkp5TElNV1phaEtBb3FsVW9jaDB0ekZnUkFsbVhCOS8yelAxM1huU2tZR2tZUUJHUXlHY2l5UE5OeWxGd3VCOU0wUjU0L2hhbk15ZVZ5YURhYnNYK08wNWozNit4Slg2KzRKSk5KWkRLWnlKWGJZV1F5bVZoYjg2S1NaZmxTd2Njd2p1UEFOTTIvbXZmeGhMWGFaNkIwcHRsc0htMXZiMStxbDB5bFVpTi9xSUlOYU1FdnZHQUxXclZhSGZvWTlYb2QyV3oyU2d5dld4WlZWVWYrSXQzWjJRbjlEOXV6U1JIRlZEcDB0Y1F5dlZZZi95N0RWUzFobnRYYm5vdG4vU2ZJQ09GYXJOYUYzenZGdDQrK04vWTZrLzZ4enNRWWpzWVJFclZhcmFsYUZpZTl3K2Q1SGlxVnlwKzRydnRkQUo4R0s0bUlhRVZJa29SME9uM1dMaUxMOHNKZUgyYXpXZVR6K2FtcU9HbDI1ODhkTGdvcXZ6cWR6dEF1aFhueWZSL2RiaGZkYmhmMWVoMkZRbUhxTjdnTGhRSjBYUi82QmxEWTU3a3N5eXZ4SEYzRUROQlNxUVRETU9ZZWpNbXlISHRRSkFoQ3JDMTBVVzF1Ym40OGJKRGViRGIvM1p3UEp4SUdSYXN2bUZYMGZLRlEyQm4yUkFzcWhZWnBOQnBQVlJVRjc5U01Dak9xMVNyMjkvZFhacDdNT29rakpMcUJCTFkzbnNIbUhOZUN4MGt6RFR4NlBQb1h1aWlLYXpFUWNSN3ZYb1RSY20xa3BLc1ZGSDNQME5IV09pTXZWeFJsN0l1d1o0UmtMQzE1L21ERDNLenpvS2JaY2dhRWU0ZFBWZFcvc0czN1ZiQ1NpSWlXNEh3WUpBakNTcjFadUNvbjRkZFJNTDdpNHJuQTRNMk5wYzk2QlBxaFViMWVoNjdyS0pmTGtTdHFVcWtVRkVXWjZUbTJDcy9SYWF1SlBNK0Q3L3VoYnhzVUc4eFM2ZWM0enNUSG04YzVRNkZRQ1BWNXptTmU3NkR0N09OaHJqdFl0dlB2VjZYdERHQlF0QTUwQVBkOTMvOW12VjUvWDdsYy91REZLd1MvN0lhRkZFSHFmejZrS0pWS0kxTjAxM1docWlwdTM3NGQ2eWR4MVIwZUhvNThaeVZzU1BTTWtFUjVJN01XVlVTQncrUEcyTXRYYVRiUkpHSCtBWXZiWTkvRG95Y09ucnU1T3ExNXM3QjlENis5cVk2OXpxUjN2dDRqekI2U212NFQxRTRlNDBrTTIrV3ExZXBVTTZ3bVBmZFZWWDNRN1hiL0UxaEpSRVJ6SWdnQ0pFbENLcFdDS0lwbkxXTnh0SXJSMWVXNkxqUk51MVN0azB3bWtVNm5wdzZLRkVXQm9paXdMQXYxZWoyT1E0VnBtamc0T0ppcXVtaldvR2NSVzdvbW1hWnFmN0E4NDJ4TmZOamZCZGxzZHVTODJ6QU13NWo0T2p1ZFRrT1NwTmpDeU0zTnpkRFBpM205YVJ5MjdhemRibjlsTGdjd0EvNHJzZUxPenlyU05DMWZLQlErT095SGJOeXNvbWF6K2RUV3FVa3RhTjF1OTFLNFJLUEZFUkk5bXhUWGJsN045eTFqYkZBVVpTMzRJbVd6MmFFVklxN3JMbVdXVXN1MXIweFFwQnJqaDVBR3N5M0dDYnZ0YkpTRzh6aTJyWEtOUm1PcUZ5dVQzdUhyZERwdmFacjJ4MkFsRVJGTmtFZ2tOZ0RJQUc0QkdEbkE3ZnpzdDdqbUJpMlRydXZMUG9ScnJkbHNRbEdVUzg4aHd6Q211cjlDb1lCaXNRamczYXFSdU1LaW9Mckl0dTFJTFVhelZxOHNlLzVtVUFVWWhhN3JUNTMvdGR2dHMrOUxHTnZiMjFNSFJicXVoem9uVWhRbGx1ZUdJQWhoNWhLZG9GK1VjYXpyZXV6YlppVkpHanBqK0tKQk5kSG5WNm1hQ0FEV3AzU0JBQUROWnZQaHNJOEhWVVhEdUs1NzZRY3VhRUVicFY2dno2VUU3NnBSVlhYbWtHaExsTllxSkhyMHhNSEJZeDNmcmgvQjlVYy9SOEt1QlYrMFVlOEFUZnZpWjFaUGVxZDRGRk93c1V5UG5qZzRhaCtQdmM2a2Y3Q2piRHU3eVBZOVZLeHViQ0dSWVJoalc4N0dyVkVkVjAzVTZYUTZSMGRIL3hiOVNxSkRzSktJaU1hVEFkd2IvQ2NEL2Q4LytYd2V1N3U3Mk4vZng0Yy8vR0hjdVhNSHhXSVJ4V0lSMld4MkpmLzlEY1B6UEtpcXV2U1dudXZPOS8xTGJ5aFB1N2xNRUlSTDFjUmJXMXV4VitSb21vYkR3OE5ZNzNPVlJYMHoxcklzcUtyNjFNZWF6V2FraFM3anpqY25DVnV4b3lqSzJiRDhXZVR6K1RCaG5nN2dWYy96WHRVMFRaLzVRUy9JWnJNL0V1WjZ1cTRmdUs0N3Y1VnZVMXJQZjBXdXAyQldVYjVRS0x3L2FsV1JwbWxRRk9XcDVIbmNJTGZnSDRqejg0M29hYlBPSkZxbmVVVHVxWSt1OXdTZEp5ZDQwanVGNTNsalg4UU5lMUd3S2xLcEZBUkJ1UFM4WDhibXM4QzZWeFg1dlZQVXJIZkdQaWMyTnpjblZoTTltNXp1YS9DV2U0S1dhK01VdmFsdWYxRndvakpLUHA4ZitXNzN1Rjc0UWJuOUY4QktJaUlLYndQOWFxSmJpcUpzaEoyM3NXNkMxeFh0ZG51cWRsK2dINkJsczFsa3M5bWhKNXFXWloyMVZVMzdHTmZKK1kzSWp1T003RVNZWkZobFV2RHhPTmVoWnpLWlNOVXhvNnpEYkUwZ2VsQTBhbnZyeFMzWms0dzczeHpIOS8yeGc5SUR3UWJFV2Jhc2lhSVk5anprQk1CeHU5MCtIdngvckxMWjdJK0h1VjZ6Mlh4NTFhcUpBQVpGNjBRSGNCL0FnMmF6dVQ5cVZsR2hVQmo1UzFkVlZYendneDk4NnZyald0RE8vd05CVDZ2VmFpTi9nZVh6K1ZBaDBhNlVoUlRqZHFlNHVhYytUTi9ETzU2TGQvd25UMTAyNllYY3FCY0ZxeUtUeVZ5cUJGdldRR3ZnM2FxaWRRMkxHbzZGWnFzMTlqa1I1c1ZiMUcxbmZ1OFV0WlBIbDU2ZnMxSlZkZVM3cHNFN1hjTXVIeGVRZXA2SGFyWDZiM3pmUHdBcmlZZ29Ba0VRc0x1N3V6WW5zRkZZbG9WMnV6M3lqY3RKZ2piM2ZENC84YzJJNE91M3ZiMk5UcWNEVGRPVyttLy9PZ2dHUnMveWRScFZnUkpYVUJSc3RZb2FuRGpPZWxkelp6TGh1eEhHYlc4MVRSTzZyb2YrK28yYmpUdEptS0FJNko5THpSSVViVzl2aHo0UG1mVG05eXdFUVJoZGZqN1E2WFJXc3BvSVlGQzBOc0xPS2dwK3NJYWR4TGl1aTBhajhkUUpteXpMWXdlVDFldjFsZHFDc1FvNm5jN0lYeWlLb2t4c3IxbmxrQ2lvSEhySGQvRjRSRnVaWVJnVHE0bFdmWWkxTE11WG52Tys3OE95cktVOTE5ZTFxc2owbitDdEUydm1hcUtiaVJ1UmZpYmlIRmg5WHF2Vkd2bjdVSklrbEVvbEhCd2NETDE4Vkx2bFlGUE03N3F1K3pxQXo3Q1NpSWdpMkNpVlNyZXkyZXpZR1VYcklsaXZydXY2ek91MkZVVkJxVlNhNm8ycFhDNkhYQzRIWGRkSFZscFEzeXdoa1NBSUkvLzlUNlZTeUdReVU5OS84SHB6Mmpjblo1MkR0Y3dSSFZGbmtFMEtRbXExV3FTZ2Jkb2dSOWYxVUc4Y3pqTFVXbEdVTUo5TE1KdEliYmZicXUvN2M2a29DbU5WcTRrQXppaGFXNk5tRlNXVHliRW42Y042VWJlM3Q4ZjJndFpxdFNtUDh1cXhMQXRIUjBkREw1TWthZUlRdlZVTWlkeFRINCtlT0tqYTcrQjFxNHVtYXcwTmlUelB3K0hoSVNxVnl0Z1hWSVZDWWFXcmlZRFI1YnJMSEo3NXBIZUtyamY5QytabENDcDZKbFdZaFJnbUdHbUlkY3UxOGRBMllnK0pETU1ZTzBCeGUzc2J1cTRQUGJFWlYrWmNyVmIvMExidGJ3RDRMYkNTaUlpaWtXVlovaENBRDJFd28yamRPSTZEVHFjRFZWVnhjSENBYXJVNjhrM05NSUlLcTNLNVBQUHJEVm1XY2ZmdTNiRno1Mmg2azc2dTAxVEpCZFc3ZCsvZXhkYlcxdFRQZ1ZtclNKWlpqUmJsNnpicWRjdDVydXVpMCttRXZzOTBPaDJwb2lsZzIzYm9nRzJhRVJhQ0lLQlVLb1c1cW83K2JLS3Z0dHZ0VjlEdjJ0RWpQK0NNV3EzVy83YXExVVFBZzZKMUZNd3ErdWFva3NsY0xqZjJoMWRWMWFkK1NJT1d0VkZNMDBTak1YNE4rblZnV1JZcWxjclF5MFJSeE43ZTN0amJyMXBJOU9pSmc5cUppZGV0THVyTzQ1RVZSRUMvaXVyQmd3Y1ROeDJJb3JnV3JZckpaSEpvS2ZTeXQ2eDBuaXpsell5cE5Sd0w5aE4zWWpWUm1Ia2E3d2t4cTh2dm5hSnF2NE9XRzgvYTFQT0NkYkdqQkJ1RlJwWEpqeXB6cnRWcUI2WnAvaVdBei9aNnZVZTlYbSs5MGtBaVdycTRWa1V2eXZsZzZQNzkrM2p3NEFHT2pvNW1Db2ZPbTZiTmFKeGtNb25kM2QxWUJ1alMweVlGR2xHK2orY0RvaWl0UmNPMFdxMmh6OFVvNGNleWxxQUFveGV6REJQMk9LTzJBVTc3ZWovc2ErMWNMaGQ1NEhtRThQZ0V3SEd6MlZSOTMxZDd2ZDd4b0hzblZvN2pqUHlpZXA2SFpyUDVyMWUxbWdoZ1VMU09kQXhtRmRWcXRiOGNkYVZ5dVR6eUh6emJ0aSs5YTc2MXRUVTI5VzgybTJ2Znl6dUxRZXZJMEtxSjRKMnRjYitZVmlVa2NrOTl2T1dlNE9DeGpycnpHRzlQcUdEUmRSM2YvdmEzY1hSMEZLb3NlM2QzTjY1RG5idGg0V2lVZHpybTRiSHZ3VDFkai9KMzAzK0N0ejAzbG1xaUcwZ2dJNHl2S0xKOUR3ZVB1Mk1EeldrRklmQ2tHVXVkVG1ma0M4dGhMM1oxWFRmYjdmYm5BTHlNSmJ4VFJVUlhnbTRZeHFzQVhzVUsveDR4REFPcXF1TGIzLzcyVThGUTNDMWRPenM3c1laRWdWUXFoYjI5UFlaRkN4YW0zVDlvKzQ0aklBTE9Ga3ZNZEIvQi9TeExsREVKWVlNaTEzVWpoVit5TEUvMTh4S2xFaXRLVmRIbTVtYWszdzJPNDh4OXU2S3U2MThaZFZtOVh2OTN2dSsvUGRjRG1CR0RvalhUNi9WT2VyM2VNWURQZEx2ZFB6Y01ZMmg2azBxbHh2NXdhWnAyNlpmQnBCTzZjVnVBcnJKeElSRUFsRXFsc2Ird1Z5RWtjay85cytxaHBtdE5iTmt4REFOdnZQRUdxdFZxNkhmL0puMGRWczJvRlovTHJpcWFSN1ZNM0lLV3Mwa0RBQlZGQ1ZWTk5LbnQ3QzMzQk4rMTM0bHRxOWw1UVNYUnVKT1pvSnBvVkQvK3NKYlR3UnJhejZFL2syZ3U3MVFSMGJWZ2FacjJwdWQ1RlFBUEFTeHRsc2JaQVZrV1dxMFdEZzhQOGNZYmIrQmIzL29XS3BWS2JCVkRvNFJaRmpLTGREcTk4ak1XMTAyWUZxbGhWVHlpS0VKUkZOeTlleGN2dlBEQ1RDMW01d1d2NmVPd0xxMW5VU29TbzNhUVRCUGFSZ21qZ2dVaWt3UUR6VU00UWY5M3FGcXIxVlRNK2ZkcHQ5djlpcTdybDZxS0RNUFFOVTM3OTZ0Y1RRUndtUFU2OHdEOFNhUFIrT0U3ZCs3ODFMQXJGSXRGNkxvKzhoZEV0VnJGM2J0M3ozN3haclBac1ZQc3Irc1d0SHE5UHZKcnFDakt4QmN0eFZSNmFTR1I2VC9CMjArY2laVkRBY3V5MEdnMExyV1lDWUp3Vm5HV1RxY3YvZElXQkdFdG54ZkRWbnhxbWpiWEY2S1RkTDBuS1BaT0lTUldOOGRYVDB3ODZaMmkyV3hPbkZjVnhxaTJzM2x0TlFzRWcra252ZU85dmIwTnd6Q0d2aWpNNS9PWHdyREJock0vOEgxZlEvOTNOUkhSdER6WGRjMkRnNE42UHAvSDF0YVdnZjY4b2x2TE9pQk4wK2IrVHZ4Rm9paUdxbENkMWRiV0ZqUk5XN3QydjNXV1NxVmdtaVlrU1VJMm00VXN5M1BaOERmcGpkOG9sbGxORktXS0oycDduR21ha1JhN1RMUDl6SFhkMEk4UmpJcVk5UHNtUXN1WkR1QlZ3ekMrM3UxMlh3SHdPdVpZcWRucjlUNmZTQ1NReitmL3NTekxId2NBMy9kdFZWWC9INnNlRWdFTWl0YlpDWUJqMHpUdkc0YnhrV3cyTzNRVHh1N3VMaDQ4ZUREMERuemZSNlZTd1FzdnZIRDJzVktwTkhaRmFiUFpoQ3pMb2FvRXJvSldxelh5RjJDWTRkV2wxRE5MMldUbG52cW9UWmc3ZEo3bmVWQlY5ZXdmNm53K0QxRVV6N1lPclBwdzZta0ZsWGZuL3dFeVRST080eXp0T1g2S0hycmVrNVhkZ1BhV2U0TEh2amV4WkxkUUtJVCtHbTRPQ1lwczMwUE5lWXlUT2JYaTZicCs5cnR1M0l0R1JWR1FUcWVIVmxTTzJ2QlhxVlQrVjlkMUR3RjhBVXQrNTUrSTF0NEpnR1BYZFZHdjErdWFwalZrV1g0N204MitYeFRGWENxVmtnRmtBSVFhNXVFNERselhQZnN6RUd6K1RLVlNFMS9ieUxLODhLQm9FU0hSK2NlS3ErcUVKaXNVQ3BGZU0weGpVT1U3TVFBTUcxQXRjejVSbE1IcjB3UmFtcWFGRG9xeTJTd0VRWWdjdnVtNkh2b3hMcjVPdnlqa2xqTVgvV1VpZFFDSHFxcFdBRHdjZE9uTTFTQVFXdmxRYUppcmVmWjNQWmdBRGdIOGRxMVcyMzNoaFJkK2Z0aVZna0hWb3dhVTJiYU5ScU54dHFvd21VeWlWQ3FOM096bCt6NXF0UnB1Mzc0ZHl5ZXh5aWIxTUUrYXgvTnNVbHo0eWI3Zk8wWG5pVE8wZlNtb0ZncCttYWZUNmJOZnJJWmhRSmJsYS9GOXZhaFFLRnphQ0tGcFdxajFuZlB5anVldVpGQmsrOTdaYzJ2YzBNTmc0R1FZN3hreW02anJ1YWlkUEo1THExbEFFQVNZcGpuMnhjMzVJR2hZWUR6c0hheGFyZmE2YmR2ZkJ2QnA5RitRY01zWkVjMGllTDFYQjVDMGJUdHQyL1lyeldaekQ4QlBBTGdINERhQTUySjVNTk9jR0JUTm85cGpIRW1TNWpLWGFKUnNOZ3RSRk9mYVJrZnZtdmNiYzdxdVExWFZXT2RsclV2RjJUU2ZzNlpwa1lKWldaWWpWeFhwdWg3NmRYWXdLbUxZWXdUenEwSUlmbzlXR28zR3NldTZKbGp4UGRIcTlqYlFXTDFleiszMWVvOEExRzNidnQ4WnM5T3dXQ3hpYzNOejVIMDFtODJuNXJKTTJwclc3WGFYUHNkbDNoekhHYnNCcVZRcWpmMkhiZU9HZ0dKcXNmTjZIajF4VUxHR2I0UnFOQm80T0RoQXQ5dUZhWm93VFJQdGRodVZTdVZzRHRFeTI2MldLWmxNWG5wUkhQVWZ2TGk5NHo5WnVhSFdmdThVTmFjZjNoaUdNZlpybE0vblExZWhuVzg3NjdlYW1UZzZNZWNhRW9VWlhnME1ieXNMREJ1YTJPbDAzbXEzMjE4RzhEa0FkVzQ1STZKWkJhLzNlcjFlbzlmcnZkbnI5Vjd2OVhwZkIvREs0TC8vRGNCZkEzZ1RRQ3o5TUdHcUpjYTlyb3pic0htQ1YvRXhyNkpsTHNMeFBBKzFXbTNpSE1KcExMUDFMRXBRTzAzbGsrLzdHSE5hZVVtVVRYRUIyN1lqUFRkRy9UeEczWEptV1piYWJyZFZyTUNzdDNYQW9Hajk2UUJlYmphYi8zYmNsY1p0UVFQNmc2clAvOEJPU3BKcnRWcWtnMXczNDRZNFp6S1pzZk40Z3VIVmk1b3hFNndNcnp1UEx3MnB0aXdMcjczMjJ0anFEOS8zcC9vbGY1VmtzOW1uS21CYzExMTZHTnIxNWpPWFoxb054enByQXhzMzdEQktOUkVBWkFienUvclBZeVAwUEsxWmhIbmhKSXJpVTUvSCtSV3R3NFltRGlvUWZ3LzlTcUpEc0pLSWlPYXJBK0RQQWZ5SHdYOS9QdmpZek1LY3dDMnlxaWpNWXptT0E4TXd6djZiZFlQcElpdVlycks0QTVxd2RGM0h3Y0ZCNUJiSk1NODF6L1BXcHFKbzJxcTRLSytCcC8xZEVQVXhMcmJjRlFxRktFdDBQQUNQYTdWYXkvZjkxOEhYYWFHdzlXek5EVGJwSENjU2lkYzduVTRqbDhzTnJlTkxKcFBZM2QwZDJYUHQrejZxMVNyMjl2YVFUQ2JQTmorTUNoaGMxNzJ5ZzYxcnRkcklmd0RDVE5VdlM1bUZoVVRqV25RNm5RN3E5ZnJFK1N2NWZINnR0cFhOeS9iMk5pekxPaHRZM0dxMWx2cEM4VzNQd1h2Rm9hUEhGcTdydVdjQnpxaWh6b0VvMVVRM0V6Y2czaEJnK2srZzJ2T3RJZ3BZbGpVMk9BMWNYTUc3dmIyTlJxTUIyN1l2dllNMW1QSDF1Nzd2VnpHb0pKckhzUk1SQlhxOW5nWGd6VVFpWWFKZlNXUUJlQUpnRDRBTUlJMys2L3dOUkpoaEJJUnJxMW5rNjRZd2o2VnAycVhmN2NFaURsbVdJNzllNWV1aWVDeTZNc3R4bkxPWm0vT3lMaUVSTUh3cjYzbWozamlMTWpBN2xVcE5OYWVvM1c1SCtybk01L05ubzFFa1NRcmJ1dFlEOEJqQXcxYXJWVEZOOHhCOG5SWWFnNktyNDh2MWV2M0hjcm5jYjR5NlFqYWJuVGl2U0ZYVnN6azF3ZkN3Y1lPdEZVVzVVb09PRGNNWSsrN0RwSmF6M00wVU1rTm1yc3hEdzNtTXpwUEw3L29GZzZrdmJpNEQrcVhpNlhUNnFmbEU5SzRnVExWdGUybnZnZ1ZPVG4yNHB6N0VHK0gvc1o0SDk5Ukg3ZVR4MmQrSERYVU9SSzBtMmt6ZVJNdTFoN1pMemt1dFZwdjR2UjNXVmliTE1tUlpobUVZbDk0OXExYXJmMmpiOWpjQS9BL2dPMVJFdEZqQjdJME9nUHNBM28vKzNLTG5BVHlEL25hMFNET013clRWTEtxaWFKYUtaOS8zejlydGRWMUh1VnlPTkE4bms4a3NkUVg2dWx2a01oVFA4OUJ1dDBPOUVUVE8rZXJoVVpiWmRnWkVDekVuL1p6RzlYT2N5V1NHbm5lTTQ3cnUwTmRVbzhpeWZEWTdkdEtjMkFzTXgzRysybXcyWDhHY3Q1eGROV3c5dXpwT2ZOLy9mcVBSK042NEswMmFWOVR0ZHMvYVNvTEIxcVA0dmo5MjJQTzZDUUtXVVRLWnpOZzVQamNUTjdBbGh0OUVNSzJnMVd4WVNPUTREaXFWeXRCZjFvVkNBYmR2MzBheFdHUklORUl5bWNUZTNoNFVSY0hlM3Q2eUQyZnA3V2QrN3hUcXVYbEJyVlpyYkJsem9WQ0k5S0xRUERjY2V4RTZuVTZvRi8zajNxVzYrSUttMFdoOHp6VE52d1R3V2M0a0lxSkZPemZENkdHdjEvc0dMczh1Q2daaGgzNEhQV3c0c2s1dDY2WnA0dURnSU5KSmZwU3FDcnBzRVY4L3ovUFE2WFR3NE1HRG1VTWlJTnhnN1dXL2tiaUt6OHRwSy9ER2pUSzRLSmxNUXBibHFJSHZLWUNIcXFxcXZ1K3J2Vjd2ZU5DTlF5RXdLTG82ZEFBdnQ5dnQzNTNVbDEwdWw4Y201dWVIVytkeXViRnJHRFZOVytxZ3VqaXBxanIySkhoUytXWXhsWjU3eTVsNzZxTml2VE4wN2IxbFdUZzRPQmhhRXJ1enM3UFVMVjdySkJodXZRcVZjby85NVFaRjUrY1NlWjQzOWtXWUtJcVJTL3RQRmp5d084eUx5Q2c5NzRaaG5EU2J6VThEZUJsOGg0cUlWb09PZm1YUjF3RzhBYUFLNEFINnc2NUREKzVacGFxaU1NS2NQQWViZThOaSs5bHM1cmsxem5FY05Cb05QSGp3QUVkSFI3R0VOMkVER0c3RHUyemFueFhUTkNPZFI1WktwYWh2ZHA5Mk9wMURWZ1pPWi9sblFoU0xjN09LSGphYnpXOXRiMjkvZU5SMXo4OHJHdldMVlZWVjdPM3RJWjFPWTN0N2UrUnNJNkIvOGpVcFJGbDF1cTZQTFptYzFITDJqSkRFWmpKMCsvOVUzRk1mNm9sNWFXQTEwRytaRzdYVllXZG41OXB1TkZ0MzcvaFA0UGRPRnpiejZyenpjNGtBakcxREJYQzJSbjVWTlJxTmlTL3VJdlM4QjVzUlB3dmdNNzFlN3ppR1F5UWltdG01MTRNdSttOEluNkkvdXdnQTNnY2cxTG95MTNVbm52eGxzOWxZcWpqaUVQWkUxVFJOV0pZVjV2bzZBSFh3NStiZ1B4R0FnMzUxMXVNUnQ0dENBSkFISUtIL2ZUSUFMSGZ0YW53MlhOZVZWVlZObDh2bHFXWmxEV01ZQmxxdFZ1UTJwekRHdlRGKzNsVjVnenhPWVZyMlJvbHlIaG54VGR4VHovTWUxZXQxRmR4eU5oVUdSVmZQbDl2dDlvdjVmUDdENDRLTmREcU5VcWwwTmhUc0l0LzN6OEtpYkRZN3RrOWIxM1Y0bnJjU0ZSalRtTlJ5RnFaU1lqdjFUTXhIOVRUYjkxQnpIZyt0d09oME9pTy9qN3U3dTJ3elczT203ODA5aEx6STlyMm41aElGdmYramlLSzQwbUhrcE9NUGhIMmg0bmtlcXRYcUgvdStyeUhDTy9SRVJBc1V6QzRLVG81dW90K0s5dEhCLzQ5bFdkYkUxdytyVkZFVTlpUWZDTjA2cEFMNERQclZXUlRkTFFEM05FMTdYaENFWjdhM3R5UFB5Z3BZbG9WMnV3M0RNT1phemJPS0xWM3JZcGJxTzAzVDVyVlk1N1Jhclg3TjkvMVh3TmxFVTFuUE0zc2E1d1NBM213MnYxMHVsejg0N29xNVhBNjJiWTg4Z1RvLzNIcDdleHNIQndkRHIrZjdQdHJ0OXRxMk5rM2FERGJwNVBIWnBEalhnY1BCbkpoaGxVVGpRcUlnNUtQMTl0aC9Fam9vVW0wRDc1eHJWL3RCNlQyUWhHaS81djNlS1dyTzA1djBKdjJNckhvMTBhUnFLQUNSWHFUVTYvVy90bTM3QVlBdmdPOVFFZEVLR3N4TGU1UklKSUIrTlFmUXJ5emFBVkRDaFBFVG83WWhYVFR2Z2M5aDd6dVpUTVo5TERxQSs3MWU3NVc0N3ZBNlNTUVN0OUQvR3U1Wmx2VURndytQSG54NmdXRVkwSFVkaG1Fc2JNc1lXdzJYcDFhcjRjNmRPM0hlNWFtdTY5ODNUZk1MQUI2eThuczZESXF1SGgzQXk1cW11WVZDNFlPVGhuMWRYQWwrVVREY3VsZ3NRbEVVYU5yd2l0aDJ1eDFwTGZhcU1BeGo1T2NFOUY4QVRRcGJjamZudDhLOFA3amFpQndTN2V6c01DUzZJcnJlRXhSRHp1eDdScmg1RmhTVlVzOUVEb21BcCtjU0FmMFM2M0UvSTZ0ZVRlUTR6c1RXQ0VtU3NMMjlIZXIrT3AxT1I5TzByd0Q0TlBvRFl0bjRUa1NyN0dKbDBXY0EvTmZvdHp3bFJ0MG9iT1ZHTnB1ZCsyYXdzSnVSaXNYaTJGRUpnVm5hWkNnMEhmMXFySGNHejQ5dGhLakFyZFZxMERSdDZRT2paM1YrMEh2dzNCVkY4V3lWL1BsUVN0ZDFxS3A2SlQ3bmFYOFhtS2FKVnFzVmVkYmxLSTdqV0txcS9vL28vLzVqNWZlVTF1dXNuaVk2MTV2K2xxWnBCOFZpY1gvU2JYWjNkM0Z3Y0REeVJVR3oyVVE2blI0YkZQbStEMDNUWXZzQlg1UnhRdzBGUVppNGZuSGpoakRWeVhoWXRaUG83V2FjU1hTMVBPbWR3ajMxUTFXdFpRYlB4WUtZeG5NM3c2OEFEcnpsbmp3MWx3Z1kvek1Dckg0MVVaajVHV0Ziemh6SFFiMWUvejBBbndOUTcvVjZvYmNJRVJFdHc0aktvcGNCL0I4QUZEQ2lzc2gxWFRpT00zRzcwQ0xtRklVTmlyTFpMRXFsMHRpTnZMdTd1NkUzSm5GbzhmVE9uWThBd0hzc3l5cW0wK2tmbm5RN1FSQ1dGcGlFRFJDRGtPZGk0Sk5PcHlFSXdsa2dGSllzeTlqYjJ4czdPL1k2cU5mcnlHYXpzVlIycWFyNmU3N3Z2d3JPSnBvSmc2S3I2OHZ0ZHZ2SDh2bjgvcVFxbnlqRHJjZWx4ZTEyZTYyQ29rYWpNYmFjTlV5RjFEeXJpVnF1L1ZRYlVjQ3lMSVpFMTR6cGUzZ3VSRkFrQ1VrVXhEVGVLMFovWHRxK2g2Yjc5Sllid3pER0RveGM5V3FpU1JXRFFMUXRaOVZxOVE5ODM2K2cvKzQ4SzRtSWFKMWNyQ3o2N3dEOEFvQWZ4b2laUllaaGhBcUs1aTNLU3Z1dHJhMDRxeEppdVo5clRnZHczN0lzT1oxTy85U2tLeTl6UUhyWWNDZHNCWElVNlhRNmRGaGtXZFpLZGczRU1lT3BVcW1jTFZPYVZxdlZlbXlhNW45RWY5c2pLNzlud0tEbzZqcnhmZi83dXE1cnVWeE9tWFRsZERxTmNybU1hclU2OVBKZ3VIV3hXQndaRkxtdUcvcGRuMldiTk54V0VBVGs4L21KOTdPWm5EZ1BjaXFtL3dRdDkzS0laVm5XeUxMcWZENi8waWZ0TkwzSC9wUFFGVUxUaGtSVisvSThpa2FqTWZaMjgzaXhGQWZQODZCcDJzUUIxcGxNSnZSc3RWcXRkbURiOW4wQW4yVWxFUkd0bXlHVlJTYUFod0R1QXZoVjlEZWlQWFdtWjVwbXFOY1ZraVROZFk3TWdsZGJuNkFmYmh5YnBzbEtoQmtGbFVWYlcxdWhLanZXNFJ4aVhzS0dSU0dyanR4dmZldGJKdnBmY3c5QUNzQjdCbjhHTGFjalcwL1BLeFFLb1Y0cnBkUHBtYmZSK2I2UFNxV0NRcUVBUlZFaWp6UnhIRWRyTnB2L1BmcWhPQ3UvWjhTZzZPclNBYnpjYkRaL0lKZkwvVWFZRzhpeVBMYTl6TFp0NkxvT1VSUkhsdU5xbXJZV3YrVERET2VkOU12cEdTRTVsN1hsZnUvMHFZMVRnY0dtcGFISHJTakt5cDYwMCt4TWYzN3QxY09HVndQOW52bHhMODR6bWN4S2J0UUxPOThnVEd0cFFOZDFzOTF1Znc3QWI0RmJNNGhvdlFXVlJYWDB6d1ArQ3NEdkEvZ2JBSDRhd0k4QWVDK0FwR0VZQ1lRNG1jeG1zM01OaW56Zmg2N3JpL28zUndmd3FxN3JyNEsvNzJNVGRqZzZNUDhCNmFzc0NJdEdMUkNLSVBnNVB3YndHTUNiQUlyby8yeExBTklBc2dCeTZBZElJL3Z1b256djRoRDh2RWVzREhRQkhGU3IxWC9sKy83WDBRL0JyK2VUS0VZTWlxNm9jNzNCRmN1eVFwZndsY3RsZUo0M01oSFdORzNzQ2xKZDE2YzQyc1d5TEd0c080b2dDRkNVaVVWWXlBanpxU1pxT05iUTRkV1ZTbVZvUUpmSlpFTFBXS0gxOUtSM0NyOTNPcGRnOHVMdzZyT1BUNmdtaXRKL3YwaSs3NGQ2dDIxdmJ5L1VPMVdlNTBGVjFjOEIrQXkzWmhEUnVnc3FpODUvTE5Fdk0xSUJ2SWIrV25NQWVML3J1ajlqV2RZSDB1bDBCbU5PSkFldkMvWEJmZWd4SC9JR0FMbFdxNlZsV1U0Ty9qNzJlS2Jrb245aVdRZHdxT3Y2bXdEQzk3elJXTFp0dy9POFVQL3VwdFBwYXhzVUFUaEpwOU82b2lnbmczT1ZvTUx0QnZxaGpveHd6LzhUOUVPaTF3RjhIMEFGd0hjQWJLSy9mUzc0T2I4RjRFUG4vbjZSREtBOCtITWhCRUdJY2w0VGZIMWVielFhWDdWdG01VkVNV0pRZFBVOTFqVHRPK2wwK3NXd055aVh5NmhVS2lQZkhSbzMzRy9CNy9wTVpkSnczckRiMjU2Wnd4QnIyL2N1RFJNRytqT2lobjAvUkZFTVhSVkI2ODMwUFd3bTQzMWRQR3g0TmRBZmxqN3AzZUU0ZXRIbkljd3d5b3NES01lcFZxdGY5WDFmQTdkbUVORVYxZXYxZW9sRVFrZC9TMVhRdjl3QXNHa1lSaktkVHQ4RzhOeW8ydzkrbjZyb2IxUzdIL1BoM1FKd3ozWGQ1eHVOeGpQRll2RVdnTEhITTZXZ0FxUGlPTTZ4cG1uY2xoUXoyN1pERHlXZjFEcCtoZWtBZ2lITUdQeDVILzFnNkNjQTNETU1JOHp6MzBPL2t1ajdBTDZKZm9XTkR1QXRBQjI4KzNPK0FlQ1ZjMysvNkI2QVh4Lzh1UkRsY2puS201RTZnRmNOdy9oNnM5bDhCZjFnVEovSGNTVVNpVStLb2xpUVpmbmoyV3oyeHdWQk9LdWM4SDNmYmpRYUw5dTJmZERyOVQ0L2o4ZGZCZ1pGVjk4WE5VMzc0ZTN0N2RCQlVUS1pQQXVMaHIwelArbmQrbFVPaWd6REdQc3VSZGpaUkFBZ2hHdnRqYVRoWG43enF0UHBqS3lBMnQzZGpkeS9TK3Zwc2Y4azFxREk5SjljR2w0TjlDdG94bTJNQ2F6cWV1RXdKZEsrNzZQUmFFenN1VzgwR2c5TjAvelBBTDRBYnMwZ29pc3NxRVFQL3A1SUpFNEJLSVpoYkd4dGJlVXdPU2pTQWR6djlYcXZ4SGxjaVVUaTF1QytiemViemExME92Mk9MTXMzMEs4QWtqSDZCRGVzcHlxSkFGUlVWWDBJYmt1SzI0bGhHTWZaYlBZWUU3NXY1MWZMTDlLU05vNEZGVEhCYzAzdGREcGYxelJOSGZ6OWZGRDBCTy9PSEhvL3huOGRMZlRielNvQUhsNm9pQTVkSFQyWWFmYjN3MTUvVmhIR0dwejkzSHFlZDZpcTZyRFBNeGFKUk9LVGdpQThXeWdVL2xHeFdQejRpS3ZKbVV6bVh6U2J6YzhuRWdsY2xiQ0laNWpYZ08vN2o2TzBud0dUaDF1UHM4cnRaNnFxanIwOHpHeWlnQlJ6UlpIcFA4SGpDN05vQnV1NGgxNS9aMmNubGhXU3RCN3NJZTFoMDNKUGZhajI2TzJGWVY0c3JlSXNzbHF0RnJwY3ZkMXVqdzJLRE1NNGFUYWJ2dy9nMCtEV0RDSzZmam9BL3J6YjdkNzBQTzllTXBsOC83Z3J6M0d1akk3K2lYSUh3QWRVVlhYSzVYSlhsbVVONDF0bXdnb3FpUTRCVkZWVnJacW15VzFKOGROMVhYKzFXQ3craXduZnQyUXlPWFllNnJ3czZZMXVIWU1LSXN1eTBHZzAxRzYzK3dyNkZYckEwNjFuZnc1QTgzMi9DOERBK0sramp2N1B6WDJzeWF5dEtMTWpjYTRDVUZYVlk5ZDE1MUlCbUVna1BpbEowdjdlM3Q2L0NMTkZmSHQ3KzVQWmJQYkhrOG5rczc3dnY3M3VnUkdEb3F2dkJQMWZ6a2ZwZEhvbnlnMWxXVWFwVkFwVlhYQ2U3L3VJR2t3dFFxZlRHZnVQamlpS3NhMVVuY2F3TFdmamhsZHp3OW4xWXNmMFRwZmZPMFhWTmk0TnJ3YjZ3V1NZY205UkZGZnk1enRzcWJxaUtDZ1VDaU12SDh3bCtoOEJmQTdzZFNlaWE2alg2MWtBM2t3a0VoVmQxeC9tY3Jubk1hYUNJWlZLelNVb09qZHowd1Z3dy9mOWQ2clY2c05TcWRUWjJ0cEs0ZDFLakkxeHh6ZEVjQUplQjFEeFBLL1NiRGFybXFaeHhzbDhuTmkyZmV3NHpuRXFsYm96NmNyWmJEYW9wZzhxUjRKS0dndFBWK0RFWlVQVE5EbVR5V3dNWGw5SGZUNk5jckZpNkttL080NXpyT3Y2cSsxMiszaHdqbklNNFBVUmxURnZKaEtKRzdadEZ3RThEMkRjMS9FRXdQRTZ6VllzbDh0UnVpUk9BQnkzV2kyMTIrMnFtRU1GWUZCSlZDNlhKNFpFNThteVhOamYzLzlYMVdyMW55Y1NpVSt1YzFqRW9PanEwd0c4YkJqR2l3QWlCVVVBc0xXMUJkdTJ4dzUvSHZxZ3VyNVNKNUtlNTZIWmJJNjl6cmdUeDNtemZlOVNOVkdqMFJnNkowYVNKSlJLcFVVZEdxMklVL1JnKzk3TWxXenFpVGwwV0RvQU5Kdk5VTlZFcTlaYTJ1bDBjSFIwTlBGNm1Vd0d4V0p4WWpXVXFxcC82cnJ1ZDlCL3Q0cnZLQlBSZGFicnV2NXFMcGNiV3dteWdIYmtwN2ExMWV2MWhxN3JLQmFMUjRQZjZaT0c4bDZrbzEvSmNXZ1l4ckdxcWc5ZDEyVWwwWnlGM1daMWJuSE9zTzFkOXhHaGZTcWtXd0R1SFIwZDNYSmRGL2w4L2xZeW1ZeWpZazNIb0dMSTh6ell0bjNzKy81OXd6Q09EY09BYmR1amdxU3hGdm1HL0NKbVVrNnhTZGV6TE90eHM5bHNvVCtYS1BZdFo0SWdQTHUzdC9ldnB2azZwMUlwN08zdC9RdFZWVjllNTFZMEJrVlhYUEJPVERLWlBKejJQa3FsRWl6TGlyVDZkTkdyRkNmUk5HMWlOVkhVQ2gzVGZ4TGI1clBPazZkRGNNdXloZ1pid1NZQXppVzZuc3daZzZMYWlYa3BrQXc0amhNNkVBNnpGWEJSd29aRXBWSXAxSXZUVHFmVDZYYTdmd3JnczN4SG1ZZ0lWcmZiZmRQenZNTmtNcW1nUHl2bC9OYWw0TVIycmpOOUxtNXJTeVFTcm1tYUc1VktSYzFrTWxBVTVWWTJtMzA3bFVxRk9yRzNMT3ZZTUl4WDIrMzJtNE8ybFdPd2ttaWVUZ0FjRzRhaGJtMXQ3V0JDeFU0Nm5iNDRPK29oZ05iZy8rL0hYU2x6YmhiV3JXYXpDVTNUYmltSzhyYWlLTGVtMmZJNkNJWGcrLzZ4WVJpdkdvWnhQRGlQT3A3eCtNKytqb05Pa1l0Zng5aC9IdWNkU0VWc09Uc0JvSHVlOTdCV3ExVjgzNTlMQldBaWtmaGtxVlQ2WjdOODdzbGtFcmR2My82VXFxclBybXRZeExQTmE4TDMvYW1UbTJReWliMjlQVHg0OENEMG9MY29vZEs4emF1YXlQYjkySUtpcnZma3FiK1BtcVdVeitkWHFsS0xGdXV4L3dUdm5iSUt1dVhhUXplY0JTYjlqQVJXcWUwc1RFZ2tTUkxLNVhLb1l4N01CUHMwZ0pleEpqMzlSRVJ6NWdFdzIrMzJjYkZZZkIzQUtaN2VPcVlEZU5YMy9WZXgyTitiT2daYjJrelRoR21hR3dCZUVRUmg0MXcxeWxDREUvamdoTnBDLzNNOEFTdUo1a2tIY0wvYjdaNTRub2RrTXVsZ1RBV1lKRWxQelk1Q2Z5ano2K2dIUi9xOGpnK0R3TVYxM1kxbXMvbEtzOW5jRUFRQms1NVRBZC8zTDU0RFRWVXhOT2s0ZFYwL0diejVkZkhycUFONDFmTzgySDRldzFZTFRqc01QT0liNERxQVY1dk41dGROMDN3RmM5cHlsc2xrZm1ScmErdHZ4SEZmNVhMNUgzbWU5L1k2aGtVTWlpaVVaREtKVXFrVTZwMTdvUC9Md25HY0tPc041MmJTY041cHFvbUEyVTdheit0NjdsUHpZc2ExbkUzYTBrUlhtem1pR21pU1IwK2NvVE93QXV0WVRkUm9OQ2FHVzRxaW9Gd3VoNzdQYXJYNk83N3ZINjVUVHo4UjBaeWRBRGh1dDl1WmZENmZHSnpRM1FEd3p1RHlCb0NLWlZsdm9oKzZMTVRGTFcyMDJzN05tdHJRTkUzZDJ0b3FZL2lNSFJlQW1Vd21nMHFpMTlFUGlnN1IzMm8xbDRxdmRYaytuZnM2aW83akZGT3AxSE1Bc25nM2lHb0FxTFRiN2RoK0hzTytPV2haMFI5dW1pMW51cTRmdHR2dHVXNDUyOW5aK1dTYzkxa3Vsei8xNnF1dmZpWE8rMXdFQmtVVVdpNlhnNjdyNkhhN29hNXYyL2JTZ3lMUDh5WU91TTNuODFQZDk3UW43UmU5YzY3S1k5VHhSaXpMcEN2cUZEMTBQUmVieWZDeklCNDljVkIzSG8rOVRxMVdDMzEvMC82OHhLblQ2WXdOaVFSQlFLbFVpaFFBTnhxTmg3WnRWd0g4UVF5SFNFUjBWWmdBRG4zZlB4bHNpK3dCNktMZmZnWUE3emlPVXpmN2s2eGozenBFVjArNzNSN1hDbTRDT1BROEw2Z2txZ0xnN0tqTHZHcTFhcjd3d2d2QnhxSHZEdjU4cDlQcDFOdnRkaXcvajRJZ2hBNktwdWttaWZCbVh2QzhxS2lxZWp6NCs5eCszOGl5dkIvbi9TV1RTV1F5bVI4QndJb2lXajJDSU1TeXkzcDdleHVtYVlZcUw3UXNhK2xEYnljTjV4VUVZZW9LaVZQMDRKNzZFRy9NTnVUdC9OcnplcjArOUhqeitmelNRemRhRGU5RUNJcE0vOG5Fa01oeG5ORGhieWFUV2ZwOExGVlZ4MVkvaWFLSTNkM2RTTzF4aG1HY05Kdk5Md0w0QXVZNFk0T0lhTjBFczRFU2lRU2F6ZWFHTE10bU9wMStpSGRuRkxtMVdpMlk4Y1BmbnpUSmlldTZ4NTFPNTJFdWx5dWdYNTJXRy95cFk3Q0Z6alROQ3Q2dEpPTHNxTXRPYk5zK2Z1MjExeURMY2gyRG44ZDJ1KzM2dmgvYnoyUFlsanRkMXlPM25vVTh0M2xxVmxXMVdxMzR2djhRYy81OU00L1h1cWxVNm4yeDMrbWNNU2k2SmlSSmltV2xWeXFWUWo2ZkR6WFBaTnp3NkVVSVcwMDB5eStEcnZjRTd4V25ENHJjVXg4bmc2RElzcXloSjhCc09hUHozdlpjNUVJTXRiWjlENm85K2MyM3NMT0pBSVFhQmoxUGswS2lUQ2FEM2QzZFNEL1RudWRCVmRVdkF2aHR6R0ZyQmhIUkZXRUNPS3hVS3ZWeXVad1VCT0VHQU5ScXRWUGJ0am5qaDhMU0FkeXYxK3Z2eUxLc0o1TkpEY0JQb0I5MHZJckJock5PcC9NUXJDUWF4d1J3YU50MjNiYnRKUHBCRzlDZklSYmJ6MlBZYzdrb2xlbEEvNDM2a1BOaHoyWlZOUnFOcW1tYWExdGhKb3JpckJ2MEZvNUIwUldYU0NRMkFNaUtvb1JLTWNQTUZjcm44eFBuL2dUM3RVeVRRaUpnOWphYWxtdmp1WnNpaE1TTnlWY2U0bno3MnFoZnN0dmIyMVBkTjExZFZkdkFYdm85STZ2WlRQOEpIdHFUNTlkSG1VMGtpdUxTS2dROXowTzlYaDk3cklWQ1lhcEF0ZDF1Zjg5MTNUZkFkeXlKaUVhNnVIV01hQnJuWnV5NDlYcmRLNWZMSndDZTROMmc2TTFXcTJWMnUxMXVvUnRqVVQrUHJ1dnFuVTduL3JoV2ZsVlZ6d2RLd1JhMk5QbzV3d2FlM3BJSUlOSWI5Y0dXdDRlRHVVUUxxVEN6TEd0bEZyY3NFNE9pcTA4R2NFOFV4VktZSyt1NlByRnFJSmxNaHE0cVdwWXcxVVNLb3N4Y1duaUtIdFFURTd2U2U2YTYvZHRlUDB6VGRSMzk5djdMeDVqTnh0STFTRmZJS1hxbzJnYUtxZlNsTnJTMzNCTTAzWEFEQlVkdDF4dG1XYk9KUE05RHBWSVoyL3UrczdNejFVQjZ5N0xRYkRZL0RlQzN3QzFuUkVSRWkySnFtbmJvZVY1bmEydnJQZ2F0WjVxbVdacW1zVUp0ZGFoSFIwZWZNVTN6UDF3YzFSRzgyWGpoL09VV2dIc0FuZ2Z3ek9EdjU3Y2tRaENFS0s4cFBRQ1BWVlZ0K2I3L09oWlUrVzFaMWtFNm5ZNTFUdEU2WWxCMDlXMEErTGxzTmh1cXZzLzNmUmlHTVRHY0NCTVVEUXMrRmlWTXhWTmNKNzZQZlErMUV4UGJHNW5KVno3bjBSTUhqd2NWUmNPcWlZS0J2RVREUE9tZDR1akV4TTNFRFlnMytoVnRmcTkzMXNvNGllTTRvWDlHWjVubE5hdHhJWkVnQ0NpWHkxTlZPbm1laDJxMSttOEF0TGpsaklpSWFISE9WY1E4UXYva24xWlFyOWZUQWR3UGUvMUVJbkVML1RmZWJnUFlRai9VQ1ZaRVp3Q0lJYXVKVGdiMzgvRHc4TERpdXU3Q1psWDFlcjNQWjdQWkg4bmxjdi8zZVQvV3FtTlFkRTFJa2hScSttMllrQWpvVnhVcGloSzZiV1dSd2xRVFpUS1pXRXNLMy9aYzJGWVgyNmxuSnM2T2NVOTlOQndMNy9oUEFQUTNPQTNyQVo1MWZoSmREMDk2cDNqaW4wYStYWlNLUUZtV2wvSmNiRFFhWTBPaXZiMjlxWCtPNi9YNlg3dXVld3h1T1NNaUlpS0tnNDUrc05RQjhBRUF2Y0hIVHpDb0xBcjVScjBPNEZWZDE3L2U3WFpmQWZBNkZsajViWnJtWHhtR29XZXpXVG11Ky9SOVg0L3J2aGFGWjZGWDMwWW1rM2t4N0VsZWxOV0dxeG9VaFptOFA0L3FpSk5USDkrMTM4SEdEV0hrVmlyVGYzSldSUlFZZHNJdWlpSUhXTlBjUkpsTkJDRHN3TUZZRGRyQ2hsNDJhMGlrNjdxcGFkcWZnRnZPaUlpSWlHSnhmZ1lWM2gyd25VQy9tcWdVWXV6SDJaWXp4M0VPVlZXdEFIaTQ2TXJ2WHEvMytWUXFWZGpmMy8vL3h2VkdxV1ZaQjdIYzBRSXhLTHI2ZmttVzVRK0d1YUxqT1BCOVAvUXF4R3cyQzBFUUlxOURuTGRKbFJLaUtFNDF6eVNzazFNZkoyNjR3RTNYOWFIVlJNczRNYWZySTBwSXRMbTVHV1o5YWV4R3pVK2FOU1FhYkRuN2ZYRExHUkVSRWRFOEJOdktUdEdmbC9zWWdCZmlqZnJnZHBWcXRYcnMrNzZKL3B5aWhYTmR0MW1wVlA3NTN0N2V2NWcxTEJxTWUvaXJtQTV0WWFaYjFVUXJMNUZJYkF6NlJQT3lMSWRLUlF6RGdDaUtrVnBNd29aS2l6SXFlRGx2V2JOV2hoazJtMmplUVJaUmxLQm8wbkQ3ZVdpMVdrT3JHMmNOaVFCQVZkVy85SDMvSVFhOTdvTTVDVVJFUkVRVWcxNnY1dzdtQ2RYUkQzN2VGRVhSR2pQZUpKaFpWUWR3V0t2VktyWnRQd1J3akNWVmZ2ZDZ2Yy9idG4xUXI5Zi9uZWRObjFVTlptTCs4eGdQYldGWVVYUjF5UUR1U1pMMDRiRFZBS1pwUnQ2d2xjMW1senEwK3FKV3F6WHhPcXNTRkJtR3dXb2lXcmhSejd0aE1wbk13cmZ1V1phRmVyMCs5TEpTcVRSVFNLVHJ1dG50ZHI4SWJqa2pJaUlpbWpjZC9abEZzaXpMUHpYbWVrRWwwYUZoR05WMnUxMEY4QUQ5NEdocEo1cTlYdS96aVVRQ2xtVzlWaTZYLzBYVTE2Q0dZZWlxcXY1ejEzV2J2Vjd2ODNNNnpMbGhVSFIxYlFENHVYdysvNkd3TnpBTUE5dmIyN0VkZ0NpR21wOGRHOHV5Sm9aV3kycWpHYWJSYUZ6Nm1DQUlyQ2FpdWRKMVBmUjFsekVuYTFUTFdUNmZuK2xuWTlCeTlqa0FuK0dXTXlJaUlxTDVPamV6NkZpVzVYR1ZRU2NBamozUGUxaXRWaXZvaDBZTDJYSTJ5U0FzK3VUQndjRS8yTnpjL0hndWwvdWtMTXRqMzlVM0RFTnZOQm92bTZiNVYrc1lFQVVZRkYxaGdpQThrOHZsTnNOYzE3SXNBSmhxemZRb2l3NktKbTA2QTdBeUljeW9VQ3ZrSmdDaXFRVS82NU9Jb3Jqd2FxSlJMV2VLb3N3Y1lxdXEraGUrNzJ0WVVxODdFUkVSMFhVMTRUV2xCK0J4dFZwdCtiNy9PbFpzaHVTNXNPZnppVVRpS3dDUXlXUitKSnZOL3ZqNTYvbStyK3U2L3BWMXJTQzZpRUhSRlpOSUpEYlFienY3dFh3Ky85TmhiMmNZeGxRdFdlTm1uU3l5Y3NmenZJbVZFb0lneEJxRXpXTFUxNDFCRWEyS2NybTgwTWR6SEdmb0lIcEprbEFxbFdhNjcwSEwyZGZCTFdkRVJFUkVDNVhKWkVaZGRJSitlOXJEVnF0Vk1VMXpaU3FKUmprZkdpMzFRQmFBdzZ5dkhobkFQVUVRWHNybjgrOExleU5kMXlPSEZKTm1uWXo1cFJBN1hkY25ibDlibGRsRW51Y05EWXBDckl3a21sbVkvdXBsekNaU1ZYWG96M0M1WEo3cDU4THpQTlJxdGYrSS9wYXpRNnpRTzFSRVJFUkVWOTJZMTU0NmdGY3R5L3BxczlsOEJmMTVSdnBDRG9vbVlsQjA5UVN6aVg0MDdNbVY0empJWnJPUlRzWUc4ejdHWG1lUko1cGgyczVXcFZwblZLaTFLc2RIVjFzK241OFk0aTU2MDVtdTYwTmJNV2NkWGcwQXpXYnp3SFhkTjhBdFowUkVSRVFMSndqQ0Nmb2J6SUl0Wms5dE9hdFdxeFhmOXgvMmVyM2p3VndqV2dFc1g3aUNCRUY0SnAvUGgxNmRwV2xhNUpDaTNXNlByU2FTSkdsaHJXZU80d3lkYTdLczQ1bGtXS2dsU2RMTUo4VHpaQmhHNU5zNGpuUDJISEZkRjQ3akFPaUhFS3ZTQW5nZHBWSXBLSW95Y3ZENzV1Ym1RcjgvbzBMblRDWXpjMkJsR01aSnU5MytITGpsaklpSWlHaFpkQUN2QW5nV3dJY0FpT2hYZVZkcXRkcXg2N29tT0VOeTVUQW91aUxPenlZcWxVcS9FS1U2U0pibFNOVkVobUVNblNWeTNpTGJ2TUpzY1ZxVnRyTlJvZFl5cTRrY3gzbXFqVEQ0LzdBcjFLT3liUnQ3ZTN0VEJXUEJMQ3JYZFdFWUJyTFo3RkkyYzYwenovTkdycDhIRU92bXd6Q2F6ZWFsQ2p0QkVHS1prYVNxNnU4QytDeTNuQkVSRVJFdGg2WnBWckZZZkJQQVh3TjRqSDVRZEt6citwdnRkdnNoM3EwMG9oWENvT2pxa0FIY3kyUXlQNXVMc05yTDg3eElKK3lXWmFGYXJZNjlqaUFJQ3cxbXhnM1VEcXhLVURUc1dKYzVaRHNZSUJ4bXhsTmNmTi9Id2NFQkZFVUp2Um5QTUF6WXRuM3BHRk9wRkJ6SFdabHFzWFV3TEpnSktJcXkwSytsWVJoREsrd0toY0pUeDFHcjFTRExjcVIyMWthajBYUmRWNC9qT0ltSWlJaG9PcTdyZXFxcW11VnkrUUdBVndEYzhEenZscXFxRm9BSDZMZWdjWWJraW1GUXRPYk9WUks5SDhDdkZvdkZqMFM1L1RSemlTWUZDb1ZDWVdGRG1jTzBuVzF1YnE3TWtPaGhRVkhVaXE2NGREb2QxT3YxaFFWRUY0VUorTUxjaDZacEVFVVJraVNkaFFrTWpvWWJGY3dFQ29YUUhhc3pHd3ladnZSeFNaS2Vham5UZFIzdGRqdFMxZDBnQVAwYWdDK0I3MUFSRVJFUkxkT0pwbW5IQUk3TDVmSWhBRlNyMWR1RGM1Q1YzbkoybmEzRzJUUE5RZ1p3RDhDdjV2UDVqMld6MlhBbEdsT29WcXVoWmdFdGNoQnVtTms1cXpJUEoyaVp1bWdaYldlR1llRG82R2poanpzdlFhdGN0OXNGMEg4ZVpyTlpLSXF5MHJPZkZtblNBUHA4UHIvUWdLM2RiZy85ZlhLKzljMXhIS2lxR3JuU1NWWFZyNkgvRHRWOWNEWVJFUkVSMFRLWkFBNDFUWU5sV1dZMm00VnBtb2ZuTHFNVnhLQm96U1FTQ1JGQUJ2M3Raa2tBNzVjazZmOEtJTGU5dmIwM3I4ZFZWWFhrOE51QUlBalkyNXZiSVF3VlpqN1JLZ1ZGRjRtaXVKUWdZOUxHdW5WbjJ6WnMyMGE3M1lZb2lwQmwrZHFIUnZWNmZlVGNLVUVRRmxwTkZMUThYcVFveWxQdFphcXFJcFBKUkpwWDFPbDAzalpOODFzQVBzUFpSRVJFUkVUTE5kZzRlN0ZxaUZWRUs0NUIwZnJKQUxnTjRCYUFqS0lvZXdCZXpPZnpjeXZqVVZWMVlwdFFFQkl0dW9WcVVuaTFTbTFudzRLaVpWUVRXWlkxdDBIVnE4aDFYYlRiN2FkQ28wVlh6eXhicDlNWit6Tzh5SFpSQUVOYnppNkdWWVpoSUpWS1JRcUpMTXRDdlY3L0tvQS9BYmRuRUJFUkVSRk5aVFhPb0dtaWM1VkVKUUMzQlVGNGY3bGN2dVU0emo4V0JDRXpyMHFKS0NIUm9xczFMTXVhT0Y4bnl2RGJlUm8xTEhvWjFVN0RqaU9ZOFpQTDVTQUlRdVQ3ck5WcVE5dUlkbloyemdLWjg5K3Y4eTJEazhLK09KMFBqU1JKZ3FJb1VCUmxaY0xFZVJpRUp5TXZYMGE3YU5BaWVON0Y4TTV4bkVnaGtlZDVxRmFyWC9KOVh3VzNaeEFSRVJFUlRlM3FuaDFkUFVFbDBXMUprblozZDNmM0RNUDRGZHUyVVM2WDUvSjlEQk1TQVVDcFZGcEtTMCtZK1VTcnN1MXNXRFhSNXVibXlsUzFaTFBaUzV1bXdsSlZkV2hJdExtNWlmTUwrQ2FGZHA3bm5kMVBvOUdZZTRCazJ6YnE5VHJxOWZyWnNhNUttK0tzSE1jNXF4cWJOSUErampYMFVZeXFKanBmWGVkNUhpSXNid1FBVkt2VlAzTmQ5N3NBUGcxdXp5QWlJaUlpbWhxRG9oVjNzWklvbjg5L1lIdDdlOWV5ckgra2FacTl1N3NyeGYyWW51ZWhVcWxNSEZ3TjlLc0FvcDdReFdWU1VDUkowc3BVaWd3TGlwWVpTbXh1YmlLZFRwKzFZazM3ZFdxMVdrUERSRUVRbmhwS0hFWXltVVEybTRYak9BdXRNZ0tBYnJlTGJyZUxUQ2FEWXJHNE1wVm8wNGl5emE1UUtDdzA1RzIxV2tOL3IrVHorYWVlZzFHZmo0ZUhoMzlobXVZM0FYd08zSjVCUkVSRVJEU1QxVGlMcG5FeTZMZWEzUzZYeTd1eUxPOTZudmVQcXRXcXRiKy9uNDQ3Q0xFc0M5VnFOZFFNRzBWUklvY0JjWm9VSnF4U05kR3F0SjBCL2NxZU9JSVF3ekJHdGpUTk1nTW9UQldiSkVsNDRZVVhZRmtXTE11Q2JkdXdMR3ZtZ01rMFRWUXFGVWlTaE8zdDdiVUxqRnF0MXRnMnMvTWtTVUt4V0p6ekViM0w4N3loQTZ4RlVaeHBWbGVyMWFwM3U5My9CRllTRVJFUkVSSEZna0hSR3BBa0NidTd1K2xVS3ZXODUzbTNxOVdxdmJ1N0czdElaQmdHcXRWcXFFb0VTWklXM3JKeW51ZDVhek9mYUZqbDB5b04yWjZHNHppb1ZxdERMNXMxZ0FnVEZBVWhZRHFkZnFvaUptaGYwM1Y5cHVESXRtMVVLcFcxcWpBSzJ5b0s5Q3UrRnYzek82cks2V0kxVVJTRCtVdS9DMVlTRVJFUkVSSEZabjNQVks4SlJWSE1jcmw4Q0NEdk9NNnRTcVZ5dDFBb2JNVGRMbEtyMWRCdXQwTmRWNUlrN08zdHhmcjRVVTFxaTF2VzJ2bGhocldkTGF0ZEx3NkRvY0VqZzdwWkFnakRNRUpWczQycXhncmExNEpneC9NODZMb09YZGVIRGxDZUpLZ3dFa1VSaFVKaHBiNXZudWZCZFYySW9naFZWU045ZnZsOGZxRS9INFpoREEyeFJGR2NlcEMyWlZtb1ZDcS9CZUJOQUlkZ0pSRVJFUkVSVVN3WUZLMjRjcm1jQnZDOFpWbTNLNVhLaHdxRlFqck9rOVdnTWlUTVBDTGczWkJvMmRVd2srWVRyVW9GeVBtaHdnRkJFTlo2YUhLOVhoLzVmSmsxZ0JnV3FsMGtTVkxvdHJaa01vbGNMbmNXOEZpV0JVM1RvT3Q2cUVBcTRMb3VqbzZPMEd3MlVTNlhWK0w1MVc2M1lWa1dYTmNOL2ZNTDlLdlpGdGx5QnZTSGt3OHpiZXVxNTNsUVZmVjNmZCt2QXZnTUs0bUlpSWlJaU9MRG9HajFsUTNEK1BWcXRmb1BaRm5laW5PTnRhN3JFemNpbmFjb0NrcWwwdEpESXFCL3dqOU9KcE5aMEpHTXQycERyR2MxcnIwcG1Pc3ppekJCMFN5enA0Sld0ZTN0YlJpR2dWYXJGYWtTeDNYZHM1YTByYTJ0cFgwdkhjZEJ1OTBPL2JNYldFYkxhS2ZUR2RvQ21NbGtwdjc2cWFyNnA3WnRmd1BBL3dCV0VoRVJFUkVSeFdyNVovdzAxRXN2dlNRQ3lPaTZYcXBXcXg5VEZHV3JYQzZMY2QxL2xLRzNBRkFxbGFadUVabUhTU2ZJcXhMR1hLV2dxTlBwakF5SjRwaDVFMVRIVEJMWGtQS2dSYzF4SE9pNmptYXpHVHA0TVUwVHBta3ViWVpSclZhTEhCSUpnb0RkM2QyRkJyMmpCbGdEMDFjVHRWcXRXcmZiL1ZNQW4yVWxFUkVSRVJGUi9CZ1VyYTVNcDlPNWZYUjA5UGNHVlFDeGhFU2U1NkZlcjBjYWVsc3FsVlpxTmdzd2Z1T1pKRWtyVWZVRVhEN09ZQjM5dWhrTURSNTVlUnd6YjhMTXlGSVVKZmJ2YlNxVnd0YldGcmEydHREcGROQnV0ME8zY2dVempJSjJya1hNL1RFTUkvSzhKVUVRc0xlM04vVW11bW0xMisyaDRaK2lLRk45clFiUHc5OEM4RnNBOUprUGtJaUlpSWlJTGxtTnMyazZFMVFTTlJxTlVyUFovSWVTSkgxZ2IyL3ZwVGp1TytvOElsRVVzYnU3dXpKRG9RT2U1NDI5ZkJYbXh3REQ1eWl0YTBoVXFWUkdWckFFVlRXejhEd3ZWSGc1eXhyMU1JSjVScnF1bzlWcWhkNmExdTEyMGUxMnNibTVpZTN0N2JrRk1rRzdhQlJCU0xUb24yUFA4NGFHZjBINFBNMzlEWVpYdDNxOTNuRU1oMGhFUkVSRVJFTXdLRm85R1ZWVmIydWE5ZzhsU2ZyZzN0N2UzNHFqZ21MU3lmNUZxekswZXBoSlFSZURvdmhNMm5BV3REUE5La3cxVVNhVFdWallJY3N5WkZtT1BNY3JDSXhFVVl4OTZIWFVkbEZndVdIdnFGYStRcUV3MWUrVmVyMysxNzd2YXdEK0lJYkRJeUlpSWlLaUVWWXZCYmptM25qampRM1ROSDlaRk1YYnU3dTdQeE5IVUJQMVpEZWZ6ODg4bEhpZUhNY1plL21xRExLK0dCU0pvcmd5SVZaWWxVcGw3TnlnT01MRVlERHpKSXZlMUFYMEE2TzdkKytpM1c1SEdoNGRETDJXSkFuRlluSG1nSERjRVBGUk5qYzNVUzZYbHhMMmp2cWVCa1BBbytwME9oMU4wLzRFd0JjQW5NeCtoRVJFUkVSRU5BcURvaFZqbXViUEM0S2c3Tzd1L253YzdTdWRUZ2RIUjBlaHJydXE4NGd1R2hkY3JOSjhvb3VWVCt0V1RYUjRlRGkyZXF0VUtzVlNxUkptaUhRbWsxbGF5SlpNSmxFc0ZwSFA1NkdxYXFUNVFMWnRvMXF0UWhSRkZBb0Z5TEljNmZscFdSWlVWUTNkTGdwZ2FRTzJ6eHZXSGpmdHdQUEJYS0wvQmNCdkEzZ0liamtqSWlJaUlwcXIxVGlqSnFSU3FRM1hkV1ZCRUc3djdlMzlaaHduNElaaGhBNkpWblVlMFREalFvVlZPWDdMc2k0ZFoxemJ1aFpoVWlDaUtFb3NXL0FzeXdwVktUTkxOVkduMDRIcnVoQUVZZVpqRHJPVmJkVHRqbzZPVUsvWHo5cmFCRUU0dTl6My9iUG5UTEQ5TGN4akNZS0FmRDUvRmdxSm9yandnZFVYR1lZeGRMWlRvVkNZNnRoVVZmMks3L3NQQWRTNTVZeUlpSWlJYVA0WUZLMEkxM1ZsQUo4cWxVcS9FVWZZNFhsZTZLRzNtVXhtNXJYWm51ZWRWVDJjRDBsRVVZVHJ1bWR0V01FSnBDUkplT0dGRjZaNkxNdXlSbDYycW0xbmdpQ3NUSWcxU2ExV0d4dmVTSkkwMVREaVljSThSMmVwSm5yampUZWVDaTFzMjU2cXFnWG90K0ZGcWV3Wnh2ZDlhSm9XdVkxc21GVU5keHVOeHFXUFRkdHlWcXZWRG16YmZnWGNja1pFUkVSRXREQU1pbGJITDIxdWJ2NTRMcWErTDEzWFExVWtTSktFcmEydFN5ZkF3d1l4RC90WTJLMVFGeDl6MnBQMVNaWmRUUkc0K1BWY2wycWlZRDM4S01FR3JUamEreHFOUnFqZ1pacDVXY0VRN292UFQwM1RvQ2pLMk9BcHFFREs1L05ubjJlbjB4bDVyRUVZdWtqTG5EODB6cWhxb21sYnp0cnQ5aDhDK0F5M25CRVJFUkVSTGM1cW5XVmNZNElnYkpiTDVaK0o2LzdDbnJnR00xUVdKWTdxcFhHZjI2b01pNzVZOWJRcXh6WE9wSUhKY1laRWxtV2gyV3hPdko2aUtGTlZ6S2lxT2pMRTFEUnQ3UGZETk0yenFwLzkvWDBrazhtUjI4YUM1M085WG8rbFNtaVNvTlZzR1lPOXd4aFdUVFJEeTlrZm96KzQycHY5eUlpSWlJaUlLQ3dHUlN1aVVDajhGOU9jZ0Y5Y21TMElBaVJKaXZQUVlpRUlBZ3FGUWl4emJVWUZSYXYwZVYrc1Bqay9qMllWVFdvM0EvcFZJWEcxT1lWcE9RdUdxMGZWYXJYR3psZlNkWDNzN1RPWkREUk5nK3U2cUZhcmtHVjU1RnlzYkRhTFpES0pjcmtNV1paUnE5WG1WbDJrS01yVW9jc2lES3NtQ29LdHFCcU5obXJiOW5mQUxXZEVSRVJFUkF2SG9HaEZwTlBwSDV6bWRoZFBZSDNmbjZvZGJGNkNFOFh6YlR6emZLeFZNS3hGYjVWTmFqY0RnSjJkbmRpMnR0VnF0VkF0WjRWQ0lmSnp4bkdja2RVL0FkLzMwV3Exa0VxbFlGbldwZXFjYkRhTFFxRnc5dmR4bFUrdTZ6NVZSYU1veWxuSUZJVWtTV08vdm9xaXJHeEFGS2pWYXBjK051MzNzTmxzL2pHNDVZeUlpSWlJYUNrWUZOSGN6S01Dd3ZOR2Q2R3NTbnVYNHppWFByWXF4M1pScDlPWnVCbXZVQ2dncHRGWjBIVjlZaWdGVEQvOE9Pd0E5eUJNR2pZN0twVktuWVZIZzlCaTdIRzZyb3QydXoxMkc5K28yeXFLRXR2WGRwbDBYYjhVL29taU9PMzM4R3NBanNFdFowUkVSRVJFUzhHZ2FNMEZnM2tudGRzc2lpQUlad0hSUENxSVp0MDZ0UWlMSG13OHJVa3ppWUQrOHl1dWVUaFJOdkZOTThCNjFDRGxjU2ExUlUxcVV3dENubUt4Q011eVlCZ0dETU1ZR2hxbDArbXo3WGR4VldldGlsYXJkZWxqNTZ1eXdqSU00OFEwelQ4Q3Q1d1JFUkVSRVMwTmc2SWxTeVFTR3dEa2ZENy9XamFiL2JHb3QwK2xVa2lsVXZCOWY2bEJrYUlva0NRSmlxSXNiUlBUcWxUdHJFUHJXYXZWbWhnUzdlenN4RnJ0VXFsVVFsWGRGQXFGcVdZaERSdWtQSW9vaWdBdzhYSEdmWTB5bWN4VGYwK24wMGluMDdITTRWb253d0k2VVJTbmV1NDBHbzAvQXZCWmJqa2pJaUlpSWxvZUJrWExKd1A0bEtacDJyUlZPSTdqaEs3VWlGTXdmMmdkNXFjczBxcFhGSVd0SklvekpGSlZOVlExV0NhVG1hcUNLV28xa1NpS0UwTWl4M0hHSG5OY2c3M1gzYWhOWjFFWmh1R2Fwam0rRDVLSWlJaUlpT2FPUWRHU2lhTDRYeGNLaFg4bXkzSngya3FjV3EwV2VUN0t0QVJCUUNhVFFTNlhReWFUV1ZyMTBDcGIxYUFvYVAyYVZIbW1LQXJLNVhKc2o5dnBkRUt0amhjRVllckhqYnFhM3ZmOXNXR0dZUmhEWjAyZEYxUWxYV2N4VnhQOUJZQXZnVnZPaUlpSWlJaVdpbWY1UzFZdWwvL2JiRGI3bmxudVkxaElKRWtTdHJlM1lSZ0dMTXVhcVMxTmtpUmtzMWxrczFtR1F4TllsblhwWXhkYmxKYkJjUnhVcTlXSlZUMXhoMFJodHBBRnl1WHlWSlZwbnVkRkRvcHMyeDc1UEE2K1ZwTytiNndvR2w1Tk5HbnUwekRuWmhQZEIyY1RFUkVSRVJFdEZjLzRsNnpSYVB6Lzd0eTU4MythNVQ3UzZmUlQ3K3BMa29TOXZUMGtrOG1uNXZZRXMzUEN6TkFKaHU2dXl0eWZNRmFod21OUmxWMVJXSmFGYXJVNnNkSXA3cERJOHp4VXE5VlFYNU44UGovMWdPZHBCNXc3ampNMG1ISmROOVRNcjNYNjJaaUhVZTErd3piSlRjTFpSRVJFUkVSRXE0TkIwWktacHZtZFZxdDF1TFcxZFh2YSsxQVVCWVpod0xidHAwS2lpNElUMjNVK3dSMFhjcTNDbktSVkcyVGQ2WFJ3ZERSNTdFcytuNTlxMDlnNFVlWVN4ZjNZWWJpdU8vVnpScEtrbUk5bS9RemJkRGJOTUh2SGNjRFpSRVJFUkVSRXE0TkIwZkw5ejgxbTgwZGtXYjQ5N1Vsck9wM0dDeSs4QU0vekFJQ3RZUVRQODlCc050RnV0eWRldDFRcXhiNnBxOVZxaFdwM0ZFVVJ1N3U3TXozV3RLR040emhUaDZiWHZlM01jWnloMzk5cDJzNmF6ZWEzMFc4MzQyd2lJaUlpSXFJVmNHUFpCMER3Zk4vWHF0WHFId2RCejdTU3lTUkRvaVZiaFlvaXk3SlFxVlJDaFVRN096dXhoMFNHWVlTYVN5UUlBblozZDJkK3ppYVR5YW5hRG1jWk9yNEtjNmVXcWRsc1h2cVlKRW1SQTdUQmZLbmZBZkF5T0p1SWlJaUlpR2dsTUZWWXZoTUFYN0J0ZTZOZXIrZkw1ZklQTGZ1QUtGNkxiUFZydFZwb05wc1Q1d0lKZ29DOXZiM1lLMk9DdVVSaGxNdmxXQjdmODd5cFprUE5FaFJkNTRvaXgzR0dEZytmWmpaUnU5MCtBUEFXWnhNUkVSRVJFYTBPQmtYTFp3STRCUEJwVGRQZ2VaNWJMcGRmWW1YUWVobzIzSGNSTE10Q3JWWUw5ZmlTSk1VVzBwem5lUjRxbGNyY2gxZGZwS3JxVkVHUjR6aERQeDZtbGUwNkIwWERxb2tBVFBYOWJMZmJYd2Z3NWRtT2lJaUlpSWlJNHNRMFlzbDZ2WjRMNEZFaWtRQ0F6M1c3WFZRcWxlN2UzdDdQTUN3S2J4VTJuaTJENTNsb3Q5c2pUOTR2VWhRRnBWSXA5aGJGSUNRS003eGFVWlRZaGxjYmhoRnFGdEl3bzQ1MTB0Zm1PcmVkamFvbWtpUXA4bUJ3WGRkTjMvZS9EODRtSWlJaUlpSmFLWnhSdERyT0tvdHMyLzUycFZLWmVXYlJkYklLUWRHaXYxK2RUZ2NQSGp3SUZSSUpnb0JTcVlSeXVielVrRWlTSkpSS3BkZ2VWMVhWcVc4L1RSVVNzTjViQTJjMUxDUUNwbXM3YTdWYWZ3VE9KaUlpSWlJaVdqa3NXVmtSRnl1TGJOdis1VmRmZmZYQnpzN09QOG5sY3JrbEh4NkZFQ1lvaVVPbjAwR3oyUXc5WXlmWUxEYVBkcW1vSWRIZTNsNXNRVlc5WHA5cHpoRFFiOW1MK25XNXptMW5vd2FrUjIwN2N4d0hwbWwrZzdPSmlJaUlpSWhXRDRPaTFSTlVGdjFMQU1tam82Tkg3WGI3cDh2bDhzZXY4d25xT291akFzV3lMR2lhQmszVElsWENGQW9GRkl2Rm1SOS9HTWR4VUsxV2x4SVNkVHFka2RVdFVVeFRWWFJkVzg4Nm5jN1FyOWMwYldmdGR2czdBQjdIZEdoRVJFUkVSQlFqQmtVckpxZ3NDdjZlU0NSK3k3WnQ4ZURnNExYTnpjMzlZckg0TStzZUdGbVdCZC8zZmNkeGtNdmxoR1Vmejd6NXZnL0RNQUQwVDZyRGhpV0dZY0F3RE9pNkhybGFhVjREcXdPTzQ2QlNxWVNxNkJFRUFidTd1N0dGUkpabDRlam9LTGI3aWhyazZicU82MWprTjZyRmNab2dWTk8wYndENDRveUhSRVJFUkVSRWM4Q2dhUFhwNk0veDJPaDJ1NS9vZHJ0ZmxTVHBweFZGdVN2TGNqN3FPL25Mb3V1NnFldjZxNFpoZk5OMVhRM0Erektaek4vTDVYSmJVZTVIRUZZM1Z3ckNvSXN1YnVVU1JYSHNUQ1hmOTZkdVl4TkZFWVZDWWE1QmhtVlpvYmViQ1lLQXZiMjl5QlVub3dRQlZWeW1xU2hxTnB2WExpalNkWDFrS0RoRjBHYjd2czlxSWlJaUlpS2lGY1dnYU1YMWVyMFRBTUVjai84dWtVamNzbTM3TCt2MStzODFtODFuSkVrcXk3TDh3V3cybTF1RlNpUEhjZUM2cm1kWmxtNFl4bmQ5MysrWXBubUVRZUFWekNSSkpCSS9uVXFsL2w3VSsxK0Z6ekdxaTJHRTY3b3p6OWE1U0JBRUZBb0ZLSW9TKzdEcTg2WUppZUw2bm5tZWgycTFPdlVRNm1GR2hYdmp4UDI5V3dldFZtdmtaVkZiOFRxZHpnR0FMNEhiem9pSWlJaUlWaEtEb3ZXakE3Z1A0SFhmOTJHYTVvWnBtcjhFNEtZb2lvb2tTVHZwZEhvbm04M2VBU0JrczluWVM0NDh6NE50MjQ3dis3WmxXZC96ZmQrMExPdklkVjF0VUMwRUFIODBPTmJnWlBBRUY3WWJpVEd1S3J1T0orL0F1eFZFc2l6UE5TQUMrcUZLMktCbUhpRlIyS0haOHlaSjBySVBZYUVzeTRKcG1rTXZpOUpLQ2ZTL2o5MXU5NnZvL3c3VDR6ZytJaUlpSWlLS0Y0T2lOWE9od2lqdy83cDR2VVFpY1F2QXB3RElnaUE4STBsU0djQVdnR2VtZVZ6Zjk3dTJiZjgxM2oyNTAzR3VRbWpaVmlFb3l1ZnpJK2NKU1pLRWREb2R5d0JtUVJBZ3kvTFpmNHVnNi9xbEZycFI0ZzZKZ1A2R3MzbUVSS09lTjRJZ2pQeGNWN245Y1I1R2JUb0RwbW83ZXdkQWUxVitieEFSRVJFUjBXVU1pcTR1SFlQWlJrSGxFUUFad01hVTl4ZFVCSTJzRUZvMnd6QmkyVEEycldReWliMjl2VXVWTDhGNitsUXFoVktwaEhhN2pYYTdIYW1GU2hSRlpMTlp5TEtNVENZejkrcWg4M1JkUjdWYURYVmRTWkxPUHRlNHFLb2FTOEEyektpZ1NKS2trVlUwMTRuak9HTy85bEdycTNSZC93NkEzNXZ0cUlpSWlJaUlhSjRZRkYxUkl5cVByclJsQjBYQTViQW8yUGdWQkNmSlpCTEZZaEg1ZkQ3VXF2dHNOZ3RSRkdNTlhxTG9kRHFoTjR4SmtvUzl2YjFZUTZ4NWhrUTAyYVN2ZmRTcU1kTTBYd2RuRXhFUkVSRVJyVFFHUmJRMDdoVDlZdU9Db0drR0U4OURFQlkxbTAzazgvbWhJVTh5bWNUV1ZxU0Zid3ZYYXJWUXI5ZERYWGVkUTZKVkNCaFgxYmkyTXlCYVVPUjVIcmp0aklpSWlJaG85VEVvb21VNWNSeEhRMzl1VWl4TTA0VG5lUXR0eXhvbG1VeGllM3Q3MlljeHRTZ2hqYUlvS0pWS2F4a1MwV2lkVG1kc3hWdlV0alBidGgwODNiNUtSRVJFUkVRcjZNYXlENEN1TGQxMTNjTnBiamh1bUREbnlzekc4endjSGg1R0Nvbks1WEpzSVpIbmVYampqVGNZRXEyQVNkK0RxRU85RGNNNFJIOXVtajcxUVJFUkVSRVIwZHd4S0tKbE9YRmQ5MDNQOHlMZmNGd2x3NnEwbjYyallBVjl0OXNOZGYxU3FZUnl1Uno3NHk4NjdMTXNhNkdQdHc0c3k1cjRmWWphcm1jWXhuL3U5WHJIZy9scFJFUkVSRVMwb2hnVTBWTFp0aDNyWG5zR1JkUHhQQThIQndlaFZ0QUxnb0NkbloxWVp5eFpsblZwVzl5aVJOaytkMTFNbWswRVJLOG9zbTI3T2UzeEVCRVJFUkhSNGpBb29tVTVBZkFsd3pBaW56eU9xMlN3YlJ2VFZDbGRaNVpsNGNHREJ5Tlh4WjhYYkhITDVYS3hQWDZuMDFsYVNEVEtzcmJNclFMUDgwSzEva1VaWk8wNERuemZaNHBMUkVSRVJMUUdHQlRSc3VnQTdodUc4VmRSYnppcGtrSFg5ZW1PNkJvS1Fwb3dWVFdpS0dKdmJ5L1dEV0dkVGdkSFIwY3JWOVVqaXVMSXkwelRoT000Q3p5YXhRb0N1M3crSDdscWFNeDl4bG81U0VSRVJFUkU4OE9naUphaTErdWQ5SHE5WTlNMHZ4RzFBbWhTSlFNSFdvZWpxbXJva0NhVHlXQi9mejlTRmNra1FVaTBpaVo5bnJWYWJVRkhzano1Zkg3c0RLb29nYUZsV1c4RCtLUFpqNHFJaUlpSWlPYU5RUkV0MjJQVE5DTzFwRXhheTgwNVJlTkYzV3lXeitkeDU4NmQyRGFiQVVDcjFWclprQWlZL0J6cmRydFh1cXBvYzNNVHFWUUtzaXhEVVpTWjc4K3lySWZndGpNaUlpSWlvclhBb0lpVzdZdTZybjhueWcyU3llVFkxaURYZGJuSmFvUW9tODJDb2RYYjI5dXhIa09uMDBHOVhvLzFQdU9XU3FYR1BzZUF5ZXZqMTVWaEdFL05vSXFqL2N5MjdTcjZjOG1JaUlpSWlHakZNU2lpcGROMS9TRHFiU2FkeExPcTZESmQxL0hnd1lOUVE2TWxTY0xlM2w2c1E2dUIxV3czRzlWbU5xbXFxTjF1WDhuQjZZSWdRSmJsczc4UEMxMHptVXpvKy9NOEQ2N3I2akVjR2hFUkVSRVJMUUNESWxxMkU5LzN2Ni9yZXFUQlFwUG1vekFvZWxxcjFVSzFXZzAxajJoemN4TjdlM3V4emlNQ1ZqTWtBa1pYekV3S3lYemZ2NUtEMCtOb05UdlB0bTBIL2JZelZoUVJFUkVSRWEwQkJrVzBiRHFBbDNWZGZ6WEtqU1lGUmQxdTkwcFdlMFFWekNNSzIrcFZLcFZ3Ky9idFdPY1JBZjFxcGxVTWlZRFJsVU95TEU5c3UybzJtL000cEtXNitMMmZkU09kWlZsSEFGNEdaeFFSRVJFUkVhMEZCa1cwVk1IMk0wM1QvaURLN2NKc1hBclRZbldWNmJvZWVoNlJLSXJZMzkvSDF0Wlc3TWRoV1JaVVZZMzlmdU1naXVMWVVDeWZ6NCs5dmV1NlY3NTZiZGFmSTlkMVc3MWU3N2pYNjdHaWlJaUlpSWhvRFRBb29sWHh1TlBwdEtQY1lITnpjK3psVjdFdEtLeGFyWVpxdFJycUpIOXpjeFA3Ky91eHQ1b0IvWkNvVXFuTVhKVXlMNFZDWWV6bCtYeisyZzYxanN1Z29vaUlpSWlJaU5ZRWd5SmFGVi9VTk8wdm90emcvTURkWWE1NnBjY3dudWZodGRkZVE3c2RMbk9iVjZzWnNQb2hrYUlvRStjUUpaTkpsTXZsc1MxbzEvRjVGb1ZwbXBWbEh3TVJFUkVSRVlYSG9JaFdobW1hUjFIVzJrK2FJV1BiTmh6SGllUFExb0psV2FHM21vbWlpTHQzNzg2bDFRem9CMVpoaDJjdm1pQUlLSlZLS0pmTG9hNmZ6V1pSS3BWR1hqNnBLdWs2dTA0L2YwUkVSRVJFVndXRElsb1ZKd0QwZHJ2OTdiQTNTQ2FUckNwQ1A1UnB0Vm80T0RnSUZjems4M25zNys4amxVck43WGdxbFFwYzE1M0wvYzlDVVpTcEFySlJYNnRNSmpPeEttbmRqUnIySFlicnVwd29UMFJFUkVTMFp1THZOeUdhamc3Z1pVM1QzRUtoOE1Hd0lVYWhVQmc3SThZMHpTdDlJdTg0VHVoWlJLSW9vbHd1aHhvRVBvdXd4N05JZ2lCZ2IyOXY2amxNbzRaeG02WUpYZGNuQnBicjV2NzkrOGhrTWtpbFVrTy9sMkZEUUtPZjFINHQ1c01qSWlJaUlxSTVZbEJFSzJHd0VlazRrVWk4MVd3MnYxNHVsejhhNW5hcFZBcUZRbUhrbXZLclBOQzYwK21nWHErSHFpTGEzTnhFdVZ5ZXl5eWk4MVJWaFdtYWMzMk1xQlJGUWFsVWl2eTVlNTRIMjdaaFdkYklZRVNTcEluRHJ0ZVJLSXBqdCtXNXJndlA4eVorVGQxVkxDc2pJaUlpSXFLeEdCVFJxdm15cG1rdjV2UDVqNGF0L2lnV2k5QjFmV2psZysvN3NDeHJMaHU5bHNWeEhEU2J6VkRidGtSUnhQYjI5a0lxWGxSVlhia05ZS1ZTS1hTYldhdlZncTdyY0YwM2RNVk1OcHU5VXMrdHdMalpYMEEvZkFzVHZEbU9jeExYTVJFUkVSRVIwV0p3UmhHdG1oTUFlcTFXaTlTdXNyZTNoMHdtTS9TeXF6U25TTmQxSEJ3Y2hBcGtOamMzc2JlM3Q1Q1FxRmFyclZ4SXRMT3pFeW9rY2h3SGhtSEE5MzJZcGhscHR0SlZyQ1lDSmdkRllRZDRzNktJaUlpSWlHajlzS0tJVm8wTzRHWFRORjNETUg0MG04MXVoTGxSTXBuRW5UdDMwT2wwbmpyUkYwWHhTc3dvOGp3UHFxcU9iUWNLTExLS0NGak5TcUs5dmIzUXM1Z0VRVUNsTXQwRzk2czJteWlRVHFmSFB0ZkNick5qVUVSRVJFUkV0SDRZRk5GS09UZXI2TE9xcXU1OThJTWYvQ2RSYm44VlFxR0xvc3dpeXVmektCUUtjNTlGQkVRTHJ4WnBaMmNuMHNEdVpESUpVUlFqYjJrTGhqMWZSWk1xaWd6RG1OaHk1emhPbklkRVJFUkVSRVFMd3FDSVZwYnJ1bnFuMCtubWNybk5aUi9MTWxpV0JWVlZRMjBRa3lRSjVYSjVZZk55b2h6YklwVktwY2hoWWFQUkNCMFNDWUp3dGk2K1dDeEdQcjUxTVNsb013eGpZbHNmaTRtSWlJaUlpTllUZ3lKYVZTY0F2dFJzTnQ4dnkvTGZXMFNGektyd1BBL05aaFB0ZG52aWRRVkJRS0ZRQ0Qyd09RNjZya05WMWREdFI0dXl1YmtaK2V0Z1dkYlFyN01nQ0NpVlNtY1ZRMUVxbEs2Q2REb05RUkJHZm85WGJiTWRFUkVSRVJIRjUvcWNmZE82MFFIY2QxMzM2NXFtZlhCcmEydDcyUWUwQ0ZGQ0dFVlJVQ2dVRnRiK0ZDWEFXalJCRUZBdWx5UGR4dk04Vkt2VlMxOXJRUkN3dDdkM0piZVpSWkhKWkVhMkZZYlpKamlwZlkySWlJaUlpRllUZ3lKYVNlZG5GVFdiemZjcGl2SWJWN21xeURBTXFLb2FxbDBuazhsZ2UzdDdvVUhHcWxZUkJjcmxjdVM1VE1PKzNoZERJc3V5bnZxY0JVRzRrZ0ZTbzlHQUxNdFBmVzZ5TEkrZFB6VnBUdEhnc3BzQWJpVVNpVnNBOU1IUE5SRVJFUkVScmJDcmUrWk5WNGJ2KzQvYjdYYXpXQ3lHMjhtOVJpekxRcTFXQzlYS0k0b2lDb1hDUWdkMlc1YUZScU94Y2dPcnoxTVVKZkwyc1dGRHVNK0hST08rTDRJZ1FKWmxLSXF5MEpZMHd6RE8vbE1VSmRiblFUcWRScVZTZWVwemsyVVpSMGRIWTQ5blVxdWZKRW5QMnJaOUQ0TUtRUURIc1IwMEVSRVJFUkhOQllNaVduVW5BTDdVYnJlZnorZnp2M2hWcW9vTXcwQ2owUWdWRUFtQ2dIdyt2OURoeWF2Y1puWmVNRXNvaWxhckJVM1RudnFZS0lyWTNkMDlxNUNwVkNvanE2ZDgzNGVtYWRBMERhSW9JcC9QUTFHVXVXK2FDeDRUQUd6YmpqVW9rbVVaZTN0N3FGYXJhTGZiYUxmYkVFVng1amxGMjl2YmlxcXFQK082cmdLZ2swZ2tYQUJtcjlmanBHc2lJaUlpb2hXVjZQVjZ5ejRHb3BFU2ljUUdBQm5BYnhZS2hkOG9Gb3Z2Vy9JaHpVVFhkYlJhclVnQlVUNmZYOGk2ZTZDLzBqd0lDdGJCN3U1dXBHcWlUcWR6cVVwR2tpVHM3dTQrTmV2cC92MzdrZHJzZ2hsSlVTdWJvbWkxV3FqWDYyZC9MeFFLc1llSG51ZWhVcW1FM21hM3Y3OC9zUlhQOHp5b3F2ck5icmY3NXdEK0hZRERYcS8zYVBhakpTSWlJaUtpZVdCUVJHc2hrVWlVQlVINGY5NjllM2Z0WmhWNW5nZE4wOUJ1dDBPdkRBOENva1VOcWg1cy83STBUYk1BM0JoOE9BTkFYTWdCVENHZnoyTjdPL3lNYzhNd0xnMnZsaVFKZTN0N2w0SzR3OFBEcWRydE5qYzNzYjI5UGJmdjIvbVdPRUVRc0wrL0gvdGpEWUtkVUovLzV1WW1idCsrSGVwK0c0MkcybXcyL3dPQTd3UDRMRGl6aUlpSWlJaG9KVEVvb3JXUVNDVEtBUDdiUXFId0Q5WmxWcEd1NjlCMS9WS2IwemlLb3FCVUtpMnNncWpUNldpYXB2MnBhWm9xZ0RMNnJYN1BBTGdGNERhQTV4WnlJQkdKb29qOS9mM1FYeWZMc2k2MWsyMXVibzRjZ3UxNUh1cjFlcVR2M1huenFQWTVyOVBwb0Y2dkk1UEpoQTVxb2xKVk5kVG5IK1Z6dFN3TDFXcjFkMXpYZlFQQXk3MWVqek9MaUlpSWlJaFdESU1pV2d1RHJVbjNCRUg0UCs3djcvL2lvaXB0b3ZBOEQ2WnBuZ1ZFWVZ1WFJGR0VvaWhRRkdVaEZVU080MERUdEFOTjA3N2x1cTRLNE9YQlJmZlFENGUyQUx3ZndGMEFKYXhnWmRIZTNsN29RZEpSUTZKeHQ0dENraVNVeStXNWJVbnpQQS90ZGh2WmJIWnVRN1hQdCtvSmdnQkprcEJLcFNDS0l0THA5RlN0ZG9QMnRxL1l0djBLZ004QThOQVBLRG03aUlpSWlJaG9CVEFvb3JWd2ZsWlJQcC8vaDl2YjIvdHhQNFpoR0UvOVhaS2tpVUdDNjdvd0RBT1daWVdhTzNSZU1JaDVVVnZNRE1Od05VMTdROU8wM3dId0ZvQXZvMytDcmcrdUlxTWZESDBBd0I2QVhmU0RvNVdxTEFwYXpvTHYxN2lRWkZqWW95Z0t5dVZ5cU1keUhBZXFxa2IrM3A1WEtCUVdPbWRxWFRRYWplOE5XdEgrQlAxdGFKeGRSRVJFUkVTMEFuam1RbXRoTU12a09KRklmS2JkYmorWHorZjM0NnkrQ1liNExrSlFRYlNvOEtEVDZiVGI3ZmFmMmJiZEFQQWxBUGRIdFB3Y0Q3WlMzUUJ3Q3VESjRPTWJneitYWGxra2lpSUtoWDduWWExV3d3c3Z2RER5dXA3blhacEpGQ1VrQW9CVUtvVTdkKzVBMTNXb3FqcFZkVkd6MllTdTYzT3RMbHBIeFdMeGZlbDAramRWVlMzNXZuOEk0Rjh1KzVpSWlJaUlpSWdWUmJSbUVvbEVFY0QvV1ZHVXYxY3VsMzhvcnZzMURHUHVRWkVrU1ZBVUJWdGJXM045SEFBd0RNUFJkZjFWVGRQKzJQZjlZd0JmSEZ4MGdqRkRoQk9KaEloK0lGUkN2L1hzQTFpaHlxS2c1YXhXcXlHYnpZNXNmUnEydld2V3VVR080K0RCZ3dkVDMzNFJtOUdpZURZcDRqMUpFYldUeHpqRjh2NGRjQndIMVdyMWQyemIvdU5lci9mZkwrMUFpSWlJaUlnSUFDdUthUDJjQVBpQ3BtbFNQcC8vb1hXbzBOamMzTVRXMXRiYzVzZ0VCcXZ0djZYcitrRXdleWpxc09EQmpKaEhpVVFDZUxlU2FDVXFpeFJGUVRhYmhhN3JBQkFwSk5yWjJabTV4UytWU2lHZno2UGRiazkxZTkvM1VhMVc1ejdvT294UzZoazhkN05ma1NkSUNUeTBqUW0zbUo5VUtvVzl2YjFmZmZEZ2dUcVlSY1p0YUVSRVJFUkVTOFNnaU5hTkNlQVF3UGRydGRvZjNybHo1Ky9FY2FlaUtFSVV4ZERyNjhQYzN5SUdWSHVlQjEzWHUrMTIrMXVENGNERFpnOU5JL2c2Qnlmc053ZC9ubUFKbFVXaUtLSlVLZ0hvQjJMYjI5dERyemV2a0NoUUtCUmdHTVpUOXg5VnM5bUVZUmpZM2QxZHl0eWk4eUVSQUdTRW05aTRJZURrZExxaDNYRklKcFBJNS9PLzBtdzJIZlNIcTNNYkdoRVJFUkhSa2pBb29yVnlydUxsczZacHZzY3dqSi9LWnJNYkUyODRRU3FWd3Y3K1BtemJobVZaOEgwZmhtSEFkZDNRNFpFb2lwQmxHYklzejcxNlNOZDF1OVBwM085MnU5OGFmR2pjN0tISVZxMnk2UHlHc2xHdGUvTU9pWUIrb0ZFdWwyZmFoZ1lBcG1taVVxbGdiMjl2b1dIUmU0U2JUNFZFZ2Mya2lCTjMrdkFyRHZsOC9uMmFwdDF4WGJjMG1KWEZMV2hFUkVSRVJFdkFHVVcwbG9JdGFLSW8vdC8yOS9mL0wvTSsyVFlNQTQ3akRBMk5SRkZFTnB1ZGErWFFZTU9hcnV2NnQzUmQveXZmOXg4QitEMjhXL0V6ZHZiUXRGWmhabEd3NVd5Y2l5R1JJQWpZM2QyZFcyQVgxMHdyU1pJV0ZoYmRRQUw3ejJ4Q1NOeTRkRm5MdGRFYUV4UVpoZ0hmOTg4Mi9lbTZEdC8zVVNxVllwMjUxZWwwT2tkSFIvOFd3TDhEdDZBUkVSRVJFUzBGSzRwb0xaM2JndlphczluOHkrM3Q3UitkNStObHM5bTVWd2xkTkdUbTBQZDZ2ZDYvWHVReExMdXk2UHlXczFFV0hSSUIvZWZEenM0T2pvNk9acm9mMjdieDRNRUQ3TzN0elgwajJudkZqYUVoRVFEY1ROekFzMGtSWGUvSjJXQnJ5N0pRclZiSFZ0VFY2M1ZrczluWWpqMlh5K1dhemVhdTY3cTNBTlJqdVZNaUlpSWlJb3FFUVJHdHV6OW90OXZ2eTJhekg1QmxlYkZKemh3NGpnTmQxeXVhcHYySmJkdmZRVCtVaVdQbTBLeVdNck5vZTN0N2JMWE5zSkJvRWFFTGdMT1d0bG5ESXQvM1VhbFU1aDV1UFpzY25lVTlkek9GNTI2bXNBMmc2N2w0KzRrRHBOUFkzOSsvMU01M2thcXFzVlpGbGN2bG42MVVLb2NBN3NkeWgwUkVSRVJFRkFtRElscDNKd0Mrb0txcXNyZTM5NXZyc0FYdElzTXdUalJOdTYvcitvSHYrOS9IRWlxSEpsbEdaZEhtNXViWVZmTExESWtDY1laRjFXcDFic2UvY1VPQWVFTUlkZDNOcElqTnBBalRmNExheVdQczdlM2h3WU1ISTJjeTJiYU5lcjJPY3JrY3k3Rm1zOW5VNXVibVQzUzczVWVKUk9LM3dDMW9SRVJFUkVRTHhSbEZ0TmJPemRENWRRRFBsMHFsVDI1dGJUMi81TU1heTdJc1dKYWxhWnIycDZacGZnUEFZd0JmSEZ3OGwxbERjVm5VekNKQkVMQy92ejl5N3RPd3dkWDcrL3NMRFluT3N5eHI1Z0hYZ2JnSGNBTkE3bVlLeGRRelU5MzJMZmNFYWxmRHdSdHZqUDM4NHB4WDVEZ09Iang0OEQ4QitEUmlITkpPUkVSRVJFU1RzYUtJMXRxNVNwZlBBTGhkcjlkUERNUDRjTEZZL05sVnFTNXlIQWVhcHJVc3kzcG8yM2JWZFYwZC9UYXlsOWZ0QkhoUmxVV2xVbWxrU09RNERxclY2bE1oVWFGUVdGcElCQURwZEJwN2Uzc1RaL3FFRVZRbnhSa1diZHlZL2xmOWU4VU5QSmNyNEpsVDRDOWVmMjNrOWVyMU9nUkJpT1c0VTZrVUNvWENUemFielRhQTEyZStReUlpSWlJaUNvMUJFVjBWd1F5ZGY5bnRkbisrMisxK2JYTno4eGR5dWR6ZFRDWWpMV29GdWVkNU1FM1R0aXlyYlJqR1g5bTJmZWo3dm9GK21QSjd1TENsYkNFSE5SOXptMW1VeVdRdWhRMjZycVBWYWdFQVhOZDlLb3paM054RXNWaWM5dUZpa3c0NTB5ZU11TU1pOGNid0lkWmhDWWtiZUdIckIrRFlKN2gvOUhEazllcjFPdExwZEN5aFhUNmZMMmlhSnM4YXZCRVJFUkVSVVRSc1BhTXJLWkZJM0FKd0Q4RFBBVUFtazNreG04MitrRTZubjVVa1NaeDFsYjNuZWJCdDI3TXM2N0hydXE1bFdXKzVybnZvdXU2Ymc2dDhDZGVnWlNhUlNEeUhkOXZPZHRGdlJidUxmbXZhVkpWRncxckl2djN0YncrdDFGbmtldmtvVkZXRnBtbGpyeU1Jd3NSV3RiamEwTjR2WlpFUmJrNitZZ2ovNFp2L0NZOGVteU12bjlRMkdJV3U2MmExV3YxL0ErQ3NJaUlpSWlLaUJWbXRzeXVpK09qb2IwMTZIUUJNMDl3d1RWTUc4TFBCRlNSSjJoRUVJZExack91Nm11dTY1eE9BcnczK0RDcUVya3JGVUZpeFZoWXBpbklwSkdvMEdrTkRJbEVVVnpJa0FvQnl1UXhSRk5Gc05rZGVKOHc4bzZPakkvaStIOXZzbnpoOC9PNDkvUDQzdnc3WDk0WmVmbjR3OTZ6ZkcxbVdNNWxNNW1kTjB4UUJ2QXpnU2dldlJFUkVSRVNyWVBYT3NJaGlNS2c4R0haUytmVkZIOHRWRnVmTUlrRVFVQ3FWbnZxWTUzbG90OXREcjE4dWwxY3lKQW9VaTBXazAybW9xanJUa09zNFovL0VJYnNoNFdNZmVCRmYrYzZySTY5ajJ6YXExU3J1M0xrejgrTnRiMi8vNU1IQndhdDQ5L2xFUkVSRVJFUnpOTnZnQ2lLaXZxQ3k2QUdBNnVDL0I0T1BqZTVUT2llZnoxOEtmdHJ0OXRDUXBWQW9JSnZOem5qSTh5ZkxNdmIzOXlGSjBrejNjM1IwaEVhakVkTlJ6VzRubDhlUDdlNk52WTVwbXFqVmFqTS9WanFkUmo2Zi8zRUFuNWo1em9pSWlJaUlhQ0lHUlVRMHMxNnY1L1o2dlVjQTZ1aUhRNjhQL2pzY2ZPd1JnSkZUaVFWQlFENmZmK3BqbzZxSmhsMTNsYVZTS2J6d3dndFFGR1dtKzJrMm0yY0R2VmZCaTZVZDNOcDhkdXgxMnUwMmRGMmYrYkVLaGNLSEJVRjRmeUtSdUpWSUpGaFpSRVJFUkVRMFJ3eUtpQ2hPVTFVV1Jha21HbmJkZFZBdWw3R3pzd05CRUthK2ozcTlIa3VWVGx3K2Z2ZERlTzZaek5qcnFLb0t5N0ptZXB4a01vbFNxZlFiQUQ0RlFKN3B6b2lJaUlpSWFDd0dSVVFVbTJrcWkwWlZDRjJGYXFLTGNya2M5dmYzSVlxUmw4R2RhYmZiVUZVVm5qZDhtUFFpcFpJMzhmRzc5eUFLbzRNNzMvZFJxVlJtRG90eXVWeE9rcVI3QUg0dGtVZzhsMGdrcHY4aUVoRVJFUkhSU0F5S2lHZ2VRbGNXS1lweXFVS28wK2xjcVdxaTgxS3BGUGIzOTJkcVJkTTBEZFZxZFNYQ291eUdoRS9jZTJuc2RZS3d5RENNbVI1cmQzZjM1d0g4QVBvYjljYVhNaEVSRVJFUjBWUVlGQkZSN0tKVUZnMnJFQnExVm42ZHE0bk9TeWFUS0pmTDJOM2RuYm9WelRSTlBIandZT1pLblRnb21TdytkdWZGc2RjSndxSlo1aXlsVWlrVUNvVmZBUERMNEJZMElpSWlJcUs1WUZCRVJQTTByckxJVlJRRnFWVHFxUnRZbGdYWHZUejNlbk56YysycmlTNlNaUmwzNzk2ZGVpdGFFTDdFTVRCNlZqOTRxNGlQdi9paHNXMW9RSC9Pa3FxcVV6OU9QcDkvdnlpS3R3QmNyU2NERVJFUkVkR0tZRkJFUkhNenBMS29BdUFoZ0dNQTdyQUtJVTNUaHQ1WExwZWIzNEV1VVRLWnhBc3Z2SUJNWnJwT0t0LzNVYTFXeHc2NUZoT0wrVlcvazh2akUvZGVtaGdXYVpvMmRWZzBxTWI2THdIOE9yZWdFUkVSRVJIRmowRVJFUzFDVUZuME9vQVdnTWVaVENhWlRxY3ZYWEZZVUNRSUFtUlpudk1oTHRmdTd1N1VsVVZBZjhqMWE2KzlOclFWVGJ3eC9hYTFxSlJNRnArNDl4SXlxZkg1elN4aFVUYWIzU2dVQ3R5Q1JrUkVSRVEwQnd5S2lHanV6bFVXZGRBUGpRcGJXMXZQWEx5ZXJ1dERoMWhmOVpBSTZGZks3TzN0elJRVzJiWjlhUTdRelFWVkU1Mm5aTEw0K04xN2N3Mkxpc1hpKzBSUnZBT2d4QzFvUkVSRVJFVHhZVkJFUkFzbmlxSWt5L0tsTXBkUlc3R21iY3RhTjNHRVJiN3ZvMTZ2NDQwMzNvQmxXWkFXV0UxMFhoQVd6Yk1OclZ3dS93S0Fmd0p1UVNNaUlpSWlpZzJESWlKYXRBOHJpdkw4c0F0R0RXVytEaFZGZ1RqQ0lxQy9GZTNnNEFCVjlYdG82bzlpT3Jwb2dqYTBlWVZGMld4MlExR1V2d1Z1UVNNaUlpSWlpZzJESWlKYU9FVlJDaGMvTm1yYm1TUkpWMjdiMlNSeGhVVUE4S2piaFhseWdyODRmQU5IblhZTVJ4ZU5rc25pWXg5NGNlTDFwZzJMU3FYU0R3bUNvSUJiMElpSWlJaUlZc0dnaUlnV2FTT1R5YnlZU3FVdVhUQ3E3V3pZd092cklBaUxabTI3Y3owUFAzaXJpSS9jdm9QTWhvVC9yRmJ4bjlVcUhPOUpURWM2MlU0dWo0L2RtVTlZbEV3bVVTZ1VQZ0Z1UVNNaUlpSWlpZ1dESWlKYXBGOVNGT1hEd3k2d2JYdm9EZUtvcWxsWHlXUVNkKzdjZ2FJb1U5L0g4N24zbnYyL2tzbmloOHU3ZUtIMFBBNlBHL2hPL1FqR3lmQ3ZlOXgrOEZZUkwvekEwSTdEcDJpYWhrYWpFZW0rdDdhMnRpVkorbWtBOThBdGFFUkVSRVJFTTJHcFBoSE4zYURLUXdhUXorVnk3eGwybldrcWlpekx1aFlWUitWeUdhSW9vdGxzaHJxK0tJb29sOHZJWnJNb3BTNHRsME1xZVJNdmxuWUFBTjg5YnVBWWJ5T3pzWUdDL0Z5c3gzM1JSMjdmd2JIK0NJOGVtMk92MTJ3MklZb2ljcmxjNlB2ZTN0NytXS1ZTZVEzQTZ6TWVKaEVSRVJIUnRjYUtJaUphQkJuQVBVVlIvczZ3Q3gzSEdUcWZDT2lISHNONG5nZFZWZUY1WGx6SHVOS0t4U0wyOS9jaENKTzNtTG11aTBxbGdzUERRd2llUC9hNlAzaXJpQis4VllTWXZJbS9PSHdEM3oyT1ZzMFRWWmhOYUFCd2RIUTBjcmo1TU5sc1Zzem44ejhPNEJQVEh4MFJFUkVSRVRFb0lxSkYyQUR3YzdJc3YyL1loYU5DSWdBWU5zOEk2RzlJczIwN2RKWE5KSlpsd2JLc1dPNXJYdExwTk83ZXZSdDZibEczMjhYbnYvSG5vV1lTS1prc1BuTDdEbTdKejU0TnZwN0hIS1BzaGhScXVEVUFWS3ZWU04rVFFxSHdZVkVVUDhCWlJVUkVSRVJFMDJOUVJFUUxJUWpDTTdJc0R4MDROS3J0REFBT0R3K0hmandJbDlydGRxVEtrNHNzeThKcnI3MkdnNE1EMUdxMXFlOW5VWUs1UllYQ3BjVnhJOTAvZW9qZi8rYlhRMjA5eTI1SStNanRPM2d1azhWcjlUZm5Ndmg2SjVjUE5hOElBQ3FWU3Vpd0tKbE1ZbnQ3Kzc4QzhDbHdWaEVSRVJFUjBWUVlGQkhSSW16SXN2ekRveTRjVjFIVTdYYmhPTTdZTzUrMkJjM3pQRlFxbGJOQjJ0bHNOdko5TEV2UWloWjIyTGZwbk9BcjMza1ZYM3Y5UWFqZ0o3c2huUTIrZnJQekZyNVRQMEpUZnpUcllaKzVWMzUvcUJZMDMvZFJxVlJDZjM5bFdjNXNibTcrVFFDL2xrZ2tua3NrRXNON0Y0bUlpSWlJYUNnR1JVUzBDTDhreS9LZFVSZE9Db0xhN2ZHVk1MN3ZvMXF0Umo0b1hkZmgrK05uK0t5eWREcU5GMTU0SVZKMTBXR3JpZC85K3ArRnJoUktKVy9pQjI4VjhXSnBCNWtONlN3d21yWEtLSlc4aVkvZi9WQ282MFlOaThybDh0OFVCR0VQd0cwQTRmcjBpSWlJaUlnSUFJTWlJbHFNbTZQYXpnQ2NWZlNNTXF5MTdHTDFqMm1hYUxWYWtRN0tOTWR2MzFvWFVhdUxYTjg3YTBlTE1ydzZ1eUhoeGRJT0N2SnpjRDBQeHNuNDc5c2tCZms1M040S0YzTFp0aDA2REV3bWt5aVh5LzhsZ0g4SW9NVEtJaUlpSWlLaThCZ1VFZEhjYlc1dS9zaTR5eWRWOWJpdWUybU8wYkJRcEY2dmo1MTNkTkhGU3FaMWFqMjdLSjFPWTI5dkQvbDhQdlJ0VE9jRWYvYkdkL0E3WC85YTVHMW4yUTBKMlkxd3dkUTRQM2I3VHFnV05LQWY3S21xR3VxNnNpeG44dm44L3c3QWI0Q1ZSVVJFUkVSRW9URW9JcUs1U1NRU0c0bEU0cDlsczlrWFpyMnZpMVZGeVdRU201dWJsNjRYWlY3UnBFcW1kVE1ZNWh5cHVnaDROekQ2ai9lL0dlc2NvakJTeVp1NFYzNS82T3RybW9aR296R3hYUkVBdHJlM1gxQVU1VytEbFVWRVJFUkVSS0V4S0NLaWVaSUJ2QytiemU2TnVrTFlqVmJEMnMrMnRyYWUrcnNnQ0pBa0tYUUF0TTd6aWNaSnA5UDR1ei95WS9qWW5SZERWK3NBd0hIM2JYejUxVy9oUDk3L1pxZ05hWEY1c2JTRDU1NEpYL0RUYkRaeGNIQ0FScU14TVJRc2w4dDNkM1oyL2pINmxVVy9DVllXRVJFUkVSR05GZjRNZ29nb3VnMUJFSDRnblU2UHZFTFlzTVoxWFRpT2cxUXFkZmF4YkRhTGZENFB4M0VneXpLeTJleFRsNDhUdG9WcEhkMUFBaGtoaWMxYlJUeWZleS91cXc5eGVOeUE2NGVydERydXZvM2o3dHZJcERad3I3eUxIN3hWblBNUkE1a05DWThlaDU4WjVmcyttczBtMnUwMnl1VXlaRmtlZWQxY0x2ZmVkRHI5MzFRcWxYL2wrLzUvbFVna1BndEE3L1Y2SjdNZk9SRVJFUkhSMWNLS0lpS2FLMG1TY25IZDE3Q3FvdTN0YmR5K2ZSdTVYQzUwU0dRWUJqUk5pK3V3Vms1R1NFSkk5SCs5cDVJMzhaSGJkL0NMTDMwVXR6YWZqWFEvNTJjWWZhZCtOUE9tczFFMDA4Q2IybHRUM1RiWWVIZDRlRGkydWlpZFR1UHUzYnYvKzgzTnpaOEg4Q24wcTkySWlJaUlpT2dDVmhRUjBUeHRUSnBQSklvaUJFRUlWVmtVMTB5aFdxMFd5LzJzcXZja0w0L2h5VzVJK0x2M1hzSlJwNDF2SEw0QjB3bGZUR002Si9oR3RZTDc2a1BjdmxYRUM2WG5Jdyt5Tms1c2ZQbitOOC91VHhTUytOZ0hYc1JPTG8vN2FyaHRadU4wdTEwOGVQQUF1N3U3STRlU0o1TkozTDU5KzIrMldxMzNOWnZOVkNLUk9BVHdCd0JPQUppOVhzK2QrVUNJaUlpSWlOWmNvdGZyTGZzWWlPaUtTaVFTSDkzWjJmbkRYQzczbm5IWDh6enZMQVN5TE91c3JlZ2lVUlR4d1E5K2NLWmpNZ3dEbFVwbDZHVjdlM3RydmZrTTZMZWQ3VCt6ZVZaUk5NcDM2a2Q0cmY1bXBNRG92T2VWOStMMnJTSjJjcE8zckdtbWdUOTcvY0dsMXJKTWFnTWYrOENMK1BLcjM1cnFHRVlwRkFvb0ZzZTN5MW1XaFdxMSttOWMxejBHOEFVQWg3MWViN0dUdkltSWlJaUlWaEFyaW9ob25uNDJsVXFOSGxBMGtFd216d0thNE05aFFaSHJ1dkE4RDhuazlMKzZybkxMR1FCc0ptOU9ESW1BL2dEcDI3ZUtlSzMrSnU0ZlBZejhPRzlxYitGTjdTMWtVaHQ0UHBlSE9PSjc4bWFuUFhUMmtDZ2tjZnRXRVY5NThHcmt4NTZrMld6Q2RWMjh1SHNiZnErSGs5UEwxV3JwZEJyNysvdi90RjZ2LzdXbWFSS0EzeDVzUk9Qc0lpSWlJaUs2MWhnVUVkRmNTWklVNis4WjI3Wm5xdm94RENQR28xazl6OTRNTjZjSjZNOHYrdUh5THA3UDVmRmEvUWlIcmN2aDNDU21jNExYdnY5bTZPc0hBZEV0K1ZsODQvQ04wQU8ybzlJMERROU9ISHppM2t0SUpXK2k2N2w0KzRtRGQveDM1eXdsazBtVXkrVWZVaFJscjFxdHZ0ZjMvWWNBWGdad1BKZURJaUlpSWlKYUF4eG1UVVJ6TlV2MXp6Q3pCRDJXWmNGMXIrNFltcHVKRzhnSU55UGZUc2xrOFpNZnVJdVB2L2loeUFPdnc3cTErU3crZHVkRmZPTGVTM0M5Si9qS2QxNmR1dTB0ckVlUFRmeitONzhPelRTd21SUlJsckxZMmNqZ0JoSlBYUytielc3Y3ZYdjNIMjF1YnY0ZEFMK1pTQ1NlVHlRU3hVUWk4ZHlneW9pSWlJaUk2TnBnUlJFUnJaVXdRNjlIdWVyVlJNOUZxQ1lhWmllWHgwNHVqNk5PRy9mVmFxUjE5ZU5rVWhzQWdQdHFkV3c0ZEd2eldYejg3b2VtYm9jYnhuUk84T1g3MzhRbjdyMEVKWlBGWmxLRWxCWlFzZDdCS2Q2ZDBUY1lkUDJqblU3bmZmVjZmZHYzZlEyRDJVVUFPTHVJaUlpSWlLNE5WaFFSMFVyS1pESkRQMjVaMXRUM2VkV0RvbWVIYkR1YnhrNHVqNy8vMG8vajR5OSs2Q3prbVlYcG5PQzQrL2JZa09pNVp6TDQrTjBQbmJYRC9jcEhQb2JiVzRXWkh4c0FYTi9EbCs5L0U1clovLzZMTndTVXBlSFByMXd1bDl2YjIvdE5TWkorR01BdkE1ajlDMEJFUkVSRXRFWVlGQkhSV3BtbGRTellySFlWUFNNa0lkNFFZcjNQblZ3ZXYvclJuOFFuUHZUaHViV2tBY0M5bmZlZnpSSUtaRGNrL09RSDd1SlhQdkt4V0I3N1lsaVVFVzRpTjZJQ0s1MU9ZMjl2NysrSW9uZ0x3TS9QL09CRVJFUkVSR3VFUVJFUnpaVmhHRk5OSzA2bmh5OUxteVVvdXNyemlaNU56dFoyTms1QmZnNS85OTVMWjFVK29oQlAxL0p6ejJUdzhSYy9oQjh1N3o0VkVwMlgzWkR3ZCsrOUZFdFlGWVJGanRjZmFMMGxTaU92bTB3bXNidTcrMDhCYkNVU2lWdUpSSUtWUlVSRVJFUjBMWEJHRVJITjA5ZDgzeitkNW9hQ01MbzZ4cktza1VIU0tHSGF6aHpIbVdtajJyTGNRQUtiSTRLV09BVlZQZ0R3M2VNRzN1eTBjYXkvSFdseldTYTFnZWR6ZVR5ZmV5OEs4bk9oYjFlUW4wUGgzbk5vNm85d1gzMkk0Kzdia1k4ZmVEY3NDaXFZY2pkVDZEeHhobDQzblU2alVDajhSclBaRk1GdGFFUkVSRVIwVFRBb0lxSjVPckVzNjIxWmxyZWkzbkJjRU9TNmJ1U2d5SEdHaHdFWDczY2RTWUlBSWJIWUF0RWZ2RlhFRDk0cUFnQWM3d2tlbVpPRHVDakIwTGo3bURVd2V2VFl4RmNldklxL2UrOGx2Q2Nwamd5S0FLQllMTDVQMS9WN3RtMy9XaUtSK0I4QW1MMWViejJmS0VSRVJFUkVJVEFvSXFKNTBnM0RlQTFBNUtCb1VrV1JMTXVSN205ZFE2QXczTk9waXJaaWswcmVqQ1VFaW1MV3dPaTQremErOXZxRHN3cXBjY3JsOHM4ZkhCeFVBZHdHdDZBUkVSRVIwUlhIR1VWRU5FOG5wbWwrWjVvYmptc0JteWIwQ2JNdGJaYU5hc3YwcEhjS08wTDcxMVVTekUvNnhJYytqT2VWOTBhNjdXR3JpZS9Vai9ETWhKbEw2WFFhcFZMcGw4RXRhRVJFUkVSMERUQW9JcUs1MDNWOXFuVmpvamg4M2ZzMGdZN3YrN0ZjWjFWMW5veGVQWDhkRk9UbjhETjM3MFVlZXYyTmFnVnZkZldKMTl2YTJubytrOGw4QU55Q1JrUkVSRVJYSElNaUlwcW5Fd0JmMG5YOWU5UGNlRlJRWk5zMmRGMmY0YkNHVytmMnRMYzlGMTF2Zlk4L0xrR0YwWS90N29YZXpsWTVQSVRuVGE3STJ0M2QvU1ZCRUc1ekN4b1JFUkVSWFdVTWlvaG9ublFBOTNWZC83TnBianl1L2F4V3E0VTZ1US9ZOXRORlRaSWtYUXFpMWprb0FvRGF5ZU5yMjRKMjBZdWxIZnppU3gvRmM4OWtKbDdYOTMxVUtwV0oxMHNta3lpVlNyOEI0Rk1BNUprUGtvaUlpSWhvQlRFb0lxSzU2ZlY2SjcxZTc5ajMvZTkxT3AxM290NStWRVVSMEE5MTJ1MTI2UHU2MkZZbUNNTFErMS9YT1VVQWNJb2VxcllCMDMreTdFTlpDZGtOQ1gvL3BSL0hDei93L01UcjJyWU5WVlVuWGkrWHkrVTJOemYvSm9CZlN5UVN6eVVTaWRGUFVpSWlJaUtpTmNTZ2lJZ1c0ZmQwWFk4ODFEcWRUbys5dk5sc2hscDdQMHdxbFJwNi8rdGVWWFNLSGg3YUJtb25KdnplY3JlaHJZcVAzTDZEWC96d1J5ZTJvbW1haGthak1mSCt0cmUzLzZZZ0NIdm9iMEdiWExKRVJFUkVSTFJHR0JRUjBTS2NkTHZkYjBVTmRTWUZSUUJDVllFTWUxeFJGQ0VJd3FXUHIzTkYwWGx2ZXk0cTFqdDQ5R1M2SU8ycVVUSlovT0pMazhPaVpyTUp3ekRHWGllVlNxRmNMdjhYNEJZMElpSWlJcnFDR0JRUjBjSzAyKzJqcUxmSlpNWVhiSmltT1hHdzlhZ3FvV0V6a0NhRkJPdmtTZThVZGVjeERoN3JlUFRFdWZZVlJ0a05LZFRjSWxWVko4Ni9rbVU1eXkxb1JFUkVSSFFWTVNnaW9rVTRBZkFsVGROZWpUS0FHZ2hmVlJUMWZvSGhNNUF1RHIyK0N0NE5qTHFvblpqWGV1QjFka1BDSis2OU5EWXNjbDAzVktWYXVWem1GalFpSWlJaXVuSVlGQkhSSXVnQTd2dSsvODEydS8yOUtEZVVKR25pZFh6Zmp6VFlPcEJLcFM2MW4vbStmMlhhenk0NlJROXZleTYrYTcrRGc4YzYzbkpQNEo3NmsyOTR4YVNTTi9IeHUvZkd0cUYxdTExME9wM3g5NU5LSVovUC93cTRCWTJJaUlpSXJoQUdSVVEwZDhIMk13Q2ZiYmZicjBTcC9obldIamJNdElPdGh3VlJWelVvT3U5Sjd4Uk4xOExyVmhjSGozVTBuTWZYYWx0YWRrUENUNzM0UTJPdmMzUjBOTEVWc1Znc3ZrK1NwSHNBU3R5Q1JrUkVSRVJYQVlNaUlsb28zL2NmYTVvV3V2d25sVW9OYlJFYkpreTcwRVhEZ2lqVE5DUGZ6enA3MGp0RjU0bHp0aTN0dXJpUjNvQ2lLR092VTYxV0o3WTFibTl2LzIwQS93VGNna1pFUkVSRVZ3Q0RJaUphcEJNQVgybzJtMStQY3FPd1ZVV2pCbHNQcXhBS1BqWnNCdEpWR21nZFZYOWJXdmRhREw3dWVrOVFLcFhHQnBHKzc2TmFyWTY5bjJ3MnU2RW95dDhDdDZBUkVSRVIwUlhBb0lpSUZrbkhZRlpScTlXcWhiMlJMTXVoSDZCV3ExMnFBUEg5eTNONGdxcWhZVnZWWE5lOUZ1MW5vNXljK3FqYXhwVWVldjJXZTRJbnZWTWtrMGtVQ29XeDF6Vk5FNjFXYSt4MVNxWFNEd21Db0FBWVBmaUlpSWlJaUdnTk1DZ2lvb1U1UDZ1bzJXeitjZGhaUmNQQ25GRmMxdzAxMkRvSWo1TEo1TkNLa3V0Y1ZRUzhHeFpkeGJsRnR1K2g1YjY3M1M2WHkwMXNiNXcwQXl1WlRDS2Z6Lzl0QUwvT0xXaEVSRVJFdE00WUZCSFJVdmkrLzdqZGJqZkRYRGVaVEdKemN6UDBmVGVielVnVlFjTmEyelJOQzMzN3Erb1V2U3MzdDhqdm5hTG1QTVlwZWs5OWZGSlZrZS83RTJkZ0ZZdkY5NG1pK0ZFQTk4QXRhRVJFUkVTMHBoZ1VFZEV5bkFENFVydmQvc3V3VlVWUjJzOEFvTkZvaEw3dXNQdTJiWHZpRU9QcjRtM1B4UVB6N1N0UlhTUWtia0JJSkM1OVBFeFZrV21hNkhRNlk2K3p2YjM5dHdEOEhEaXJpSWlJaUlqV0ZJTWlJbG9HSFlOWlJjMW04eURNRGNJT3RBNTB1OTJKSi9WQjFkR28xclpoZzdHdnEvUFZSZXMrNkxxOGtjRU5YQTZMSmxVVkFVQzlYaDhiSU1xeUxHVXltWjJaRHBDSWlJaUlhSWtZRkJIUndwMmJWZlNaZHJ2OWg0WmhqQjcrTXBCS3BTQkpVcVRIcWRmcll5OC9QNmRvV0dzYjI4OHVlOXR6OFozSE9ock80N1VOaklURURUeDM4M0wxa0N6TEVBUmg3RzE5MzU4NEE2dFlMUDRzZ0YvanJDSWlJaUlpV2tjTWlvaG9tVHdBZjlKb05MNGU1c3I1ZkQ3U25mdStQN2FxNkh5VjByRDJNOU0weHc0d3ZzNDZUeHg4NTdHTzJvbTVsaTFwNzBsZURvcVN5U1FVUlpsNDIyYXpPYmFxS0p2TmJtUXltWjhGOENsd1ZoRVJFUkVSclJrR1JVUzBUQ2NBamszVHZLL3Irc1NKeVdFcVBpNXFOa1BOeXg3WjJzYXFvdkhlOWx3OHRBMVVyQzdlY2svZ252ckxQcVNaaEEwakoxV3JiVzl2L3lUNklSRXJpb2lJaUlob3JUQW9JcUpsTWdFY0F2aHRWVlYvZjlMdzZHUXlHWG1vdGV1Nm9jS2VWQ28xZEZZUmc2SndUazU5TkYwTHIxdGRWS3d1R3M1am1QNlR0V3RQUzZWU29UYnM2Ym8rdHFvb25VNWpjM056SDhBbllqdzhJaUlpSXFLNVkxQkVSRXZUNi9YY1hxLzNDRURkOS8ySFlRWmJSMjAvQS9waFVSakQybzVjMStWUTY0aE9UbjEwbmpoNGFCdjR6bU1kVmZzZDFFNU12T1dlckV4NDlOZ2ZIZkxrY3JtSnR3ODVxK2huQUx5WHM0cUlpSWlJYUowd0tDS2lWYUFEZUxuZGJuOXUwa3lnZERvOWNrdlpyRVpWSzdWYXJiazgzblh4MlBmd3R1ZWk2VnBuNGRGZm00OVF0ZDk1NnI5SFQ1eUZ0YTUxdmRIaG9TekxFTVhMTTR3dW1sUnRObml1L2l5QWUrQ3NJaUlpSWlKYUV3eUtpR2pwem0xQmUwdFYxUzlPdXY3Mjl2Yk1qemxzMXRHb1ljWWNhajBmajMzdnFmL3F6bU84UG1oYm0yZlZrZTE3T0prUVNJV3BYQXRUYlZZc0ZqOEM0T2ZBV1VWRVJFUkV0Q1lZRkJIUkt2bXlhWnBIblU2bk8rNUtjVlFWU1pJMDlPT2pBb0t3UTdGcGRwMG5EZzRlejI4NGRzMTVQUEU2aXFLRUdwdytLU2pLWnJOaUpwUFpDWHRzUkVSRVJFVEx4cUNJaUZiSkNZQXYxZXYxcjA0YWJCMUhWZEV3NlhSNmFJaWthUnFyaWhib0ZEMDBYUXNWNngyMFhEdTJ3S2gyWWs2c0pnTENEMDQzREdQaWRZckY0czhDK0RYT0tpSWlJaUtpZGNDZ2lJaFdpUTdndnUvNzM2elg2OThlZDhWME9qM1ZZT3VBYmRzakx4dDF2NU9HRjFQOFR0RkR5N1ZSc2Q1QnczazhVMkJVT3pIeDlwalpSQmNOYTBPOHlIWGRzZHZQQUNDYnpXNUlrdlRUNEt3aUlpSWlJbG9ERElxSWFHV2NtMVgwR1UzVC9sZkRNTWFXOEJRS2hWRHRRY1A0dmo5eVNIVXVseHZhMnNhcW91VTVSUStkSnc1ZXQ3cW8ydStNSFVaOWtlMTdxRmpkU0NFUkFHU3oyVkF0am1HMjR1WHorUStEczRxSWlJaUlhQTB3S0NLaVZlUUIrQk5WVmY5bzNKV1N5U1IyZDNlbmZwQjZ2UTVWVllkZVZpd1dMMzNNOTMzT0tsb0JqMzBQUnljbURoN3JhRGlQWVE5WmRlLzNUdEgxWE5ST1RIelhmaWRVdTlrd3c1NEhGNFVKaW1SWjNwenFBSWlJaUlpSUZpeTU3QU1nSWhyaUJNQ3g2N3JWUnFPaEZvdkY4cWdyWnJOWjVQUDVxZHZDZ2lxaDNkMWRKSlB2L2tvTXFrbE0wN3gwL1VLaGdGUXFOZFhqVVh5ZTlFN1JlZUtnODJSK1ZWNmpuZ2ZuamJzc01OaW85MU9hcHYzN1JDSnhBa0R2OVhvbk1SNHFFUkVSRVZFc1dGRkVSS3ZJQkhBSTRMZWJ6ZVlmVzVZMTlzcmIyOXZZM0p5K1lNTTBUVHg0OE9CU1pjaW9haEpXRlYwdGI3enhCcjcxclcrTnJBeWFWRlhrKzM2b2xrUlpsdThBK0dsd1ZoRVJFUkVSclRBR1JVUzBjbnE5bnR2cjlSNEJxQU00VmxYMUs1TnVVeTZYUjY2OEQ4UDNmVlNyVlJ3ZUhwNE5KdzZxbFM3U05DM1V0aXRhRDBFUXBLcnEwTUFubTgxT0RDSmRkL0w4STEzWG53RFlBM0FiUUNtUlNEeVhTQ1RFS1E2WmlJaUlpR2h1R0JRUjBTclRBYnhzMi9ZcnRWcnRZTndWazhrazl2YjJRZzBmSHFmYjdlTEJnd2ZvZERvQStnT3pSZkh5dWZ5bzJVYTBmckxaTENSSk9nc0xoMjB4OC8zcHQ2MEJnT000MERUTkFmQU1nQzBBSDBBL01KcnRDVXRFUkVSRUZETUdSVVMwc3M1dlFXdTMyMzg0cVFVdG1Veml6cDA3STlmYmgrWDdQbzZPanZER0cyOUExM1dVeStWTDEzRmRGNDFHWTZiSG9jV28xV3I0OXJlL2pYSFBuK0E1WTlzMjZ2WDZVNWM1amhOcUR0R2tZd0FnQXJnRm9EejQ3eGE0QlkySWlJaUlWZ3lESWlKYUJ4NkFFMVZWLzNoWXRjZEYyOXZiMk52Ykcxb0pGSVZwbWpnNk9rS2owUmphMXRadXQwUE5wcUhsYVRRYWFMZmJjRjBYQndjSEk4T2lYQzUzOWozV05BMjFXZzJOUmdPTlJtTmk5WmdnQ0JBRVllVGxobUdnMiswQy9hRG9OdnJWUkxmUXJ5YmlVZ2tpSWlJaVdpbUpYcSszN0dNZ0lob3JrVWc4aC80SjlqOHNGQXEvV0N3VzN4L21kcDduUWRPMHM2QmdIalkzTjNINzl1MjUzRGROejdJc3FLb0syN2FmK3JpaUtFTXJ4SUIrb0ZPcFZDSTlUajZmUjZGUWVHcGozc1hqcUZRcUYxdlhWQUJmQmZBS2dGZDZ2WjRhNlVHSmlJaUlpT2FJNzJRUzBUb0l0cUI5dXRsc1FwYmwveWFkVGsrOFVUS1p4TmJXRnJhMnRxRHJPaXpMUXJ2ZG5ubmV6SG5kYmhlNnJrT1c1ZGp1azZibmVSNmF6U2JhN2ZiUXk4ZFZnR1d6V1dReW1WQnRab3Fpb0ZBb0lKVktqYnlPWVJpb1ZxdXhQdCtJaUlpSWlPYU5RUkVScmJ4ZXIrY0NlSlJJSkFEZ3VGcXQvcHY5L2YxL09xcUtZeGhabGlITE1uemZIeGtpVEV0VlZVaVNoSFE2ZlRZWWVWeUFRUEh6UEEvdGRudXFJTkJ4SEJpR0FkZDFrVXFseGdaRm1Vd0d4V0lSMld4MjdIMjJXcTFMczQ0QXVPaUhucDNCbnk2QTAwZ0hTMFJFUkVRMFp3eUtpR2lkbUFCK3kzWGRYMjgybTMrNXZiMzlvMUh2b0ZBb1FOTzBXS3M4Zk4rSGFab3dUZk1zaEpJa0NmbDhIcklzajJ4TG90a0ZWV0thcGtXK2JhZlRRYjFlRC9WY0VBUUJoVUlCVzF0Ylk2L25lUjdxOWZxbzR3a3E0eW9BamdkL256eDBpNGlJaUlob2dUaWppSWpXem1CbTBXOW1NcGtQYjIxdC9hd2NzZStyMCtuZzZPaG81T1dDSU1RYUpHVXlHV3h0YlNHVHlUQTBpa0V3ZTByVHRFc3ppQ2JaMmRrQkFEU2J6ZEJ6cXpLWkRNcmw4c1FxTWN1eVVLMVdoOTF2VUVsVUIvQUF3T3NBcXVpSFJvZTlYdTlSbE0rQmlJaUlpR2llR0JRUjBkcEpKQklpK2h1ak5nRDhmQ2FUK2NsaXNmZ3IyV3cyOUtyeGNXSFIzYnQzNGJvdWFyVmE1Q0JpSEVtU2tNMW1JY3Z5eE5ZbHVrelhkWFE2bldDRDJGVEN6aUFLRkFvRkZJdkZpZGViVUozMENJTlFDUDJBNkhYMEE2TTZBSFBRV2tsRVJFUkV0QklZRkJIUjJrc2tFcmNBZkNxVHlmeG91VnorTzJIbkF4bUdnVmFyOWRUSi9kYlcxbE9EcWFPMEowVVZCRWZCZktNd0E3cXZFOC96WUpvbWRGMkhydXRMR1FwOTkrN2RzWlZFRTFyTlRnRG82QWRDcjZQZmNzWktJaUlpSWlKYWFReUtpR2p0SlJLSkRRQXlnRjhEOEFPYm01c2ZMUmFMSDRrcmVKbGxVSEpVbVV3RzZYVDZiQ0QyZGFzOE1nd0RqdU5BMS9XWktvZmlvQ2dLeXVYeXlNdkh0Sm9GamdHOGluNHdkQXpnSVZoSlJFUkVSRVFyamtFUkVWMFpnOWxGdHdIOE1vQU5SVkYrcGxBb2ZERE9EV1NkVGlmU2ZKczRpS0lJVVJTUnpXWWhpaUpTcVJRa1Nib1M4NDQ4enp1ckdESk5jMlZXeVV1U2hMMjl2WkZmNDBhamdXYXpPZXJtUFFCSEFGUUFYMFcva3NoRVB5eGlKUkVSRVJFUnJUUUdSVVIwWlZ5WVhaUUU4T3VDSUx5a0tNcUg4dm44VHB5QmtXRVlhRFFha2ViZHpFTW1rNEVnQ0VpbjAyc1RJZ1hCa09NNFMvLzZEVE11SkhJY0I5VnFkZExzcXEraUh4S3BBRjVCdjVMSVE3OFZqWlZFUkVSRVJMVFNHQlFSMFpVMW1GMTBEOERQQ1lMd1RLbFUrZ1ZabG5OeGhpaU80OEF3REdpYXRuS2hoeVJKWnlIUytUOFhHU1FGcldTMmJVUFg5WVZXWWswam44OWplM3Q3NkdXdFZndk5abk5jMVZNUHdKOEErT3pnNzhjQTd2ZDZ2ZVBZRDVTSWlJaUlhRTRZRkJIUmxYVnVkbEd3RGUzWFJGSDhhS0ZRK0lsY0xyY1o5K01GYTlzTnc0QnQyeXNmaWdSQlVpcVZnaWlLQUhBMkV5bEttT1I1SG16Ymh1LzdzQ3dMbG1XdHhlZC9uaWlLS0pmTFEyZENPWTREVlZVbkJZRWVnTjhHOEJuMEs0bUF3VERyWHE5M0V2UGhFaEVSRVJITkRZTWlJcm8yTGxZWWxjdmxYNVZsT1RPdnh6TU1BNFpod0xLc2xacS9FMFV3SDJrWTMvY250V0N0aFVLaGdIdytQelFZMDNVZHFxcE9xaUo2Q09EL2cvN1FhbFlRRVJFUkVkRmFZMUJFUk5mR3FBcWpjcm44dDdQWjdQQTBKRVpCQzFhbjAxbTdpcHVyU0ZFVUZBb0ZESnRkTldIdFBRQThBZkJkQVA4ZS9XSFZyNk8vell3VlJFUkVSRVMwMWhnVUVkRzFkYjdDU0JSRmVYdDcrNWZtV1dGMFVkQ3lGYlJxT1k0RDEzVVpJTTJSS0lySTUvTlFGR1ZrYTkyWUtxSVRBRHI2Z2REcjZBZEVWZlFyaWJqTmpJaUlpSWl1QkFaRlJIUnREYXN3a2lUcHAvUDUvSWZuTWNNb2ltQUl0T3U2TUF5REFkSU1CRUdBTE10UUZHWG9ES0pBaUNxaVl3Q3ZvaDhNSGFQZmN2WUEvZUNJMjh5SWlJaUk2RXBnVUVSRU5IQ3h3a2hSbEovSTUvUHZXNlZWOCtlcmtIemZoMkVZQU1BZzZZTE56VTNJc294VUtqVTJIQXAwT2gwMG04M2dhK2dDTU5HdklQSUFXT2hYRXFub0IwVnZEaTQvQml1SmlJaUlpT2lLWVZCRVJEUXdyTUlJd0YxRlVWNHFGQXJ2SHpiTFp0VUVBUktBc3hBcDJFWjJWWVpQWHlRSUFpUkpRaXFWZ2l6TGtHVTU5RzA5ejRPcXF1aDJ1K2MvL0FqdlZnMDlSajhZdW85K1VLU2pIeHg1NkFkSnJDUWlJaUlpb2l1RlFSRVIwUWpuSzR3QVFKS2t2WHcrLzFGWmx0K3pTbFZHVVYxY1o3OU9RVkt3aFMyZFRrTVFCR1N6MlZBVlE4TTBHZzAwbTgzekg3bzRnMGdGMEFLM21SRVJFUkhSTmNLZ2lJaG9oQ0VWUmhzQWZnbEFmbk56ODZkeXVkeStMTXZTa2c1dnJzNVhKZ0h2VmlXZHZ5enVkcmVnTWlqNC95QU1TcWZUQVBvaFVSeFZYYnF1bzlGb0RBdkZMczRnVXNGdFprUkVSRVIwelRBb0lpS0s2T0lzSTFtV2Z6aWZ6Nys0RHExcDE1bGhHSDZqMFRnMlRWTUg4TmFRcXdSQkVXY1FFUkVSRWRHMXhhQ0lpQ2lpSVpWR3Z3RGdHVW1TZmppZnovK01MTXZLT3JlbVhUV080NkJXcTczZTdYWVBBUHhQNkFkQXd3U3RaNXhCUkVSRVJFVFhGb01pSXFLWURDcU5QZ1ZBM3R6YzNDOFdpejhUdEUzUjRobUc0V3FhOXBxbWFYODIrTkNYd0ZsRFJFUkVSRVJqTVNnaUlvckpoVXFqVHdCNHJ5aUtIODNuOHkvSnNweG5hOXI4ZVo0SFRkTyszMjYzL3hmWGRTc0FmZy85eWlBTS91U3NJU0lpSWlLaU1SZ1VFUkhOeWZsWlJvSWdQRE9ZWlhTUFZVYnhNd3pqUk5PMCs1cW1mUlA5OXJHWFdUbEVSRVJFUkJRZGd5SWlvamtaTjh0SVVaU2ZrR1g1QjFobE5CM0hjV0FZaG1hYTV1dUdZWHpkZGQwakFGOGNYTXpLSVNJaUlpS2lLVEVvSWlKYXNQT3pqQlJGZVVsUmxIdWlLRzR3TkJyTzh6eVlwdWthaHRFMkRPTTEyN1lyZzR0MHNIS0lpSWlJaUNoV0RJcUlpQlpzVktVUmdKc0FJSXFpSW9xaWtrNm5kMFJSZkM2ZFRyOVBGTVgwZFFpU0RNTndMY3Q2eS9kOTNYWGRZOE13SHJpdXF3MHUvaVAwd3lIT0hDSWlJaUlpbWhNR1JVUkVLeTZSU1B3ekFPOERJR2N5bVIwQUdRQmI2WFQ2dllJZ0pBRkFFSVFiNlhUNkdWRVVrNnNXS0ZtV0JkLzN2ZUR2anVPNHRtMC90aXpMQWdEWGRUdXU2eDZnSHdJQjNFNUdSRVJFUkxRMERJcUlpRmJja0Fxa2kzOFAvT1N3Mnd1Q2tKVWtxVEN2NHp2UDkzM0h0dTJqRVJkL2JjVEhUOEJLSVNJaUlpS2lsZkQvQnpmNHpQeFNPbnhMQUFBQUFFbEZUa1N1UW1DQw"},{ name : "haxeui-core/styles/shared/option-dark.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAQlBMVEVYWGzW/9EAAACYtdLCqYPP6PTU////9KxYWFhUVlhXVVJ4rthXkMHs1Kxsj6lSYXvElmdYWGeefViUXFhfUVNWUk58LX/QAAAACHRSTlMnCADr69QWFksN2hQAAAA8SURBVAjXY2BiZxDi5OBjYGNiYGTh4OTg4BJkZmTgFeEAA35WBgFOCFOUm0EYyuTiQWYiFCBrQxiGZAUAvXcDb/w8amgAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/tick-small.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAE1HpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVZZkuwoDPznFHMEJLGI42CWiHeDOf4ki9219VL9phxlySxCZEoC0/79080/+DEFZ5yPGlIIFj+XXOIMRe365fkm6+Z7f9hTuWs3VwejSSBlfWrY4892sneWKEPzN4a07I7jviO5bV8fDO2FZHjEUOo2lLYh4dVB20Be27IhabzdwtGWrOdOdP3NeEmcti8jj98uAr3q0SjMTUgs3iK8HJDxFyMZHbTeGEii0J3E9d6eAJBXOF2/BI/6cNW9HHTHyqXR63bzyJbjPUQeQA6XfNluyL9mZUJ/s7LTrfF9Owcbl0cP6I9/71X73DN2kV0A1GFv6tzK1DDuwBJjaTVwbdgMiCGFHE/Co4jqAtaqLfbAUygRg65Ojipl6tSmLFTgouNmOEJhLiyzUSVy4iKDPzce6hwlSQWbLGXS7oQvX2gum2wxczXFypUwlAnGCFPefsy7E3ofqUBk9cIKfjEPsOHGYG68MQyMUN+g+gnw+Tz+Bq8CBv1AeaRIArDHMnF4+qgEMokWDPSQK10o1m0AEGFpD2eQE47AGomnQDYyRyIAqSAow3UWxwcYIO+5wkl2IgHcKI+lMSXSHMqe0WzQjmIGJrwEZJiCoQyynPOIn+gUMZS9eOe9Dz569cnnIMEFH0KIYRTFHCU6E30MMUaNKWYVdeo1aFTVpDlxEhRNn0KKSVNKOWPNDMsZszMG5HzwIYc7vDnCEQ890pELwqe44ksosWhJJVeuUlE/aqixak01N2oIpeaab6HFpi213BFqXUx33ffQY9eeer5Y27Q+PW+wRps1nkyNgfFiDa0xniZolBM/OANhbByB8TgoQEDz4MwqOceDucGZTSh/4hlO+sFZpcEYGHSN2Hc6uTO8GB3M/RVvJro73vi3zJlB3ZvMPfP2irU6jqEyGVtZOEC1guxDf9PMmsdh9yTNZx3vyr8z1DMtJ7s1padMqyMIhangJMmzyX4m6TKV2ppjeoRd/93EU0rTOY2PQtIQApWcR4AJme2DHQ3O27cl+6mhZsep4WCXFuNarYLfpF8AkxcwZAcue2u/9+Vemss55LyUteXWqLv8OAFFtk8VV7xYqt3TtjT2oeHnsi8CSEtecURXVzrXLl3W2ofGynq5jIK8XGa4H3j6j6wewvwGlXAsCGzE+V2WbVMKilHZK1UcJCktb3wq7Tv4bmAzL3D7saS8zMAva2I8lk2hmj1NALOqlJ3qLUPl1a64dnykxlLPzDBX6O9gLILQfwrGY23Xor6tYMT+cRudapaRQWbZ8Wt5XERt6ytUW8B5lTdeKOupL5Sqi6m5bdidjFpzA6f/Gs5XaFLdBBbTYrahrS8U5FSoXgR+BNb3QJpXSD6l6SOyL4A1L5BNC0+bpe625qXiKrg+MN5tUzvofcC1psWNgacWk11Rj3vnN8GNLKK7LDIv08idaWQ/9/ZYSXsk13FyX3H0Tfx9ewok8xmMfsPoRnyuKvrCwcvRYJYWzr0jcabCPz0OTmlQqfe5UAsqtftZhX4u0OYvT4+rwpjPKvRHjtDmWTmWonWFdQkPxJr3z+kzGqmuYqS4ftRmNmfac3jjuA23Ncfv4v9jYp4P/JugecfQl/J/NSS4pyXzH3Gr9B22RY5OAAABhWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AYht+mSkUrInYQcchQnayIijhKFYtgobQVWnUwufQPmjQkKS6OgmvBwZ/FqoOLs64OroIg+APi6uKk6CIlfpcUWsR4x3EP733vy913gFAvM9XsmABUzTKSsaiYya6KgVf00OzHOHwSM/V4ajENz/F1Dx/f7yI8y7vuz9Gr5EwG+ETiOaYbFvEG8cympXPeJw6xoqQQnxOPGXRB4keuyy6/cS44LPDMkJFOzhOHiMVCG8ttzIqGSjxNHFZUjfKFjMsK5y3OarnKmvfkLwzmtJUU12kNI4YlxJGACBlVlFCGhQjtGikmknQe9fAPOf4EuWRylcDIsYAKVEiOH/wPfvfWzE9NuknBKND5YtsfI0BgF2jUbPv72LYbJ4D/GbjSWv5KHZj9JL3W0sJHQN82cHHd0uQ94HIHGHzSJUNyJD8tIZ8H3s/om7LAwC3Qveb2rXmO0wcgTb1avgEODoHRAmWve7y7q71v/9Y0+/cDaP1yo6noXjEAAA12aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjUwZTljYWMyLWEzZDUtNDU1My1hNGM3LWJjZjMyNWYxMGRhMCIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphNGY3NWZiZC0wZjU4LTQyM2QtYTU1OS03NmQ3NGZiNzkwNGUiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkNjRmNi04OWI5LTQ5YjgtOTU3Yy1hOTJmOGMyY2UxMzAiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY5OTcyNDg2ODkzODkwOSIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjMyIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMzoxMToxMVQxODo0Nzo0NyswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjM6MTE6MTFUMTg6NDc6NDcrMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozZGFiMzJmMS02M2Q2LTQzZjUtYTVhMS1jMDUxMmNkM2E1ZWUiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMTEtMTFUMTg6NDc6NDgiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+zE46iQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+cLCxEvME5l9gwAAAFiSURBVDjLpZPNLgNhFIafM6hEQhG6sSAhukDDQqzZVDJN+qMbl2DnUrgIsyFGo03EHdSGZIjowlbShsRPm8ZUjwUzZHSQ9CzPd97nO7/QpUnQkbIzBkoCIQXEAQUqwLGiTilbaIcCzMNMTIRdYAPoC7Bd4EBVtks5u/oDYB5mYyJ6Aiz9kfUFaLKYLVQBDC9tEd35SxzpMQAWQXZMO234AJQEkP9NPDMaZWt1memRKEBeIPEF+GhYX7h4mNzKPPXmK3cvdT5ixfwCwKwXPNQfYTI6GBDP8fDcwCo7NNyW9xQH6A3+thafYnZiHPvsClXCxL55gIrnOL2+ZWxwgI2VORS4fwoV3/glqHL8OWcabgvr7JLaY/03sQsU/QwUHIEDYNOD7JUdAJqtt0593UfaTmCRMjER/rNI54omS9lC7fsUKOWOqqqsA5ZXToe0re/ikGNKGyAL4B+T17Bip2Pq2t4Bj9aSdtsy8SUAAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicDrawDebug", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBT0VsRVFWUjQycTNPdHdFQUlRd0R3RnRUQzNyTnp4RW9VWG1PWU1ueVQ5MFlmRnBHbUozYmhJTTlPY0FVWGpMZzg1ZU9EMlNwL2tGV3V1Snp2UWpKV1ZBQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/shared/down-arrow-square-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAEK3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7VdZkuQoDP3nFHMEJCEQx8EsEX2DOf482U53ZVZld23z0RNjwoCFEEJPCDnMv3+s8BcepppC0mK55hzxpJoqN3QsHk/ba4ppr4+nnC3d08M1wCAJWjk+LZ/8NzpdAo6moacvBFk/B7b7gZpO+fYg6FxIXCNGZ5yC6ilI+BigU0A7thVztfJyC9s82nP+YQbzraHablQ9mR++U4H1hmIdYZ5CElGzpEMB8ZeDtL3T9mHoLRV9kbLXN5vAIG/ZKb7QKrxC5dajJ/QHUCQf9ADCvTHz1b5JJ33b+GE38YuVpV8r39HTuhzlzsj+rjUsrDWP3bWUYdJ8buqyjnfAuEGU7NMySsGr6Je9VBQL8N4OyEfscUPpVIlh90WJBjVaNPe2U4eKiScXtMydZaeZFK7cJQaglbzQ4gLEhhgw7IBXQOVLF9rXrftynQwLDwInE4TRAT9/T3kqaC13eaJol62gF/uhgBqOnNfgAiC0bn6ku4Fv5fGh3VMTuNzMhg22uB0iNqXTt9yPZAdawKhoj7NGZZwCYCKsrVCGBAjETKKUKRbmQgQ7GvBpEGQ4NLwBAlLlAS05iWSAY+xrY06hnZeVDzJiFoBQyThI5kcKWHlgg/+UZPChpqJJVbMWNa3asuSUNedcsge/VqSkoiWXUqzU0kwsmVq2YhasWqtcBcFRa66lWq21NSzaILlhdgNDaxtvsqVNt7yVzba6tQ736alrz710C732NnjIQJwYeZRho442acKVZpo68yzTZp1twdWWrLR05VWWrbrahRqFA9ZX5f2o0Q013pFyxnKhhqml3ESQhxN1zIAYJwLixRGAQ7NjFo1S4uDQOWaxMk6FMrRUB2eQIwYE0yTWRRd2P5G7wy2k9CXc+IZccOi+A7ng0D1B7jVub6A2/LbpUcKOkB9DN2oUHL+slJR0pYw72LtJ/Zb6TRvey/i/oD9LUKpG02+80hRXkcBRU48redIwkPUclPCa9DnKHycoNrb2rja8l/HjgqqUuLQdNbK/Nyk46ghP/5pGiVN8uvY95QgxMOM+31l0bmm1zAHjZfDXVQqvBhDQXbbQ1pAl86MKj+1NpcDfpFKIX1UpUleeMwg0q3488eH9PB8pi4bfJzWWRMmeCQzPV4J/50PsEqSMuPpwRW+22qC95l1RHb2MXP2nZnwuACGkTPupaniq669URc42kpVGzeZp3sDV4mHP+PFWkOcZ9YFcIjTkH7WSmzmV5pbQ+Ehp28KljTTocXs/uSTQNpfy68nqvyUVSfm+Xvut4uEzO+K2xvT8Qtc2QFjNt4aYcLH07CNIbwb2Uj9kvvBZO9+0gmP7/2X1MOJu5x4Nty1wqj56Nn8RNQ4FCUlZUvnleQvfE9b+c4JkIfUD6OEf4i71AujO6WgAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1IhUHK4g4ZKhOFkRFBBepYhEslLZCqw4ml35Bk4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAqJeZanaMA6pmGclYVMxkV8XAKwQEMIBZdEnM1OOpxTQ8x9c9fHy9i/As73N/jl4lZzLAJxLPMd2wiDeIpzctnfM+cYgVJYX4nHjMoAsSP3JddvmNc8FhgWeGjHRynjhELBbaWG5jVjRU4inisKJqlC9kXFY4b3FWy1XWvCd/YTCnraS4TnMYMSwhjgREyKiihDIsRGjVSDGRpP2oh3/I8SfIJZOrBEaOBVSgQnL84H/wu1szPznhJgWjQOeLbX+MAIFdoFGz7e9j226cAP5n4Epr+St1YOaT9FpLCx8BfdvAxXVLk/eAyx1g8EmXDMmR/DSFfB54P6NvygL9t0DPmttbcx+nD0Caulq+AQ4OgdECZa97vLu7vbd/zzT7+wF8pXKr0kUkPQAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6ZWY5MjY4YzktNTgwYy00MjQ0LTgyODktYTAwYzk2N2E0YmFjIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRiZDVmMGQ1LWNkMWUtNDViYi1iNmQ5LWE4YzVlNDkyM2U3MSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmVhMTQ5N2M5LTAxMzktNDk4ZS1hZDYwLTk5NTI1NzhlOWIxYyIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0NDgyMjUxMTA2NTgwIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWVhYTkyOTYtOTI0NC00ZTU4LThkYmUtZWNhODMxMTJkZDE2IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTEwVDA5OjM3OjMxIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PjAYwf0AAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfmAgoIJR9yXG2RAAAALUlEQVQI12NgIBcwhnYd+Y9TkoGBgQGbgtVlNoyMMA6ygtVlNowYxuCzAgMAAKYfDUgzMsMOAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/help-medium.png", data : "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAADpElEQVRYhe2X32scVRTHP/fOZtMFs7tJC4np1mS7RQjC2oJg7ZMKPvShBBR9MopiqYbaP0CwL0VQ30SyGtsnow9SUGMViw8WBGlebBWjlJgf/ZFNQo2Jm0SSzM6914fJbmayO7OTRJ/0+zRz5n7P97tnzpx7F/7rEDsh3T+4tK+sZKeQIqM0xlJmel3omeLp5B//moHcQOmQEbLPQC/wYMCyH4VhWMbU0Pip9MQ/YiB7fqUdx5zFcBJoiui3jGFQSs5NvNJyd8cGut5fekRq8SnQEVF4K+bRPDV1uuW7oAUy6EH2veVnpBZXdiEOsA/JN9nC8tNBC+pWIDewdEwL8S3QvAtxL2w0T9SrRI2B7PmVdmzzE4L2sIwHkpIDLQJbGWZWYHZFY8JNzFkO+fEzLb97g7GaZY45GybelZK8dqyJnr2WL357SfPWSJmf76ogaoeK8Tpwxhv0VSA3UDqkhfyVgG5PxgUfnthDW6J+7646hucvrTH3V2AtbIXqud2fnqwEfE2okc8FiQMcz1lV8TtLmv7L67z41RpjCxqARExwPFdbVA/iUlh93oD/KxD0hrFzrZtlv3jDYXReMb6o+XzMqcYzycAPy5Uwfo2qXXe8kg8jfzHmcLXoio3O62q81fNKFlcbtCIczlwotU2/lFrwGbAdmREinDw6r2DeH+vZa/HsA24apeHrSacO0wfRZFsZYAE8r8AIcW8j5lZ0pyVvPx4nEXMrULhmM7GoG7DAGDor11UDwpiGtfMibsGbj8ZJNbvig9fLXLzR8NdXVM3mZcWAxex2DBzdb9F5j0v/ctzh41/KkbnSYabGgO3o6e0Y6E5tdvul3wKHTz0YO6GKlRvfRMkWlq8Dh6NkOdgq6Uq69JGiZtWJ/AZ/mOpveahy45sawjBsRDQDk4sapSXLttmOOAiGvbe+qSFjagiwo+R5Id/E0Ik9fNKbqNkXQmBrR30UaGD8VHoCwwdRMj3c6VKbY3CkI3z6VSCgcOvV9FSgAQApOQfMNUp2eVKhDCyuGb6/E6kJZ2OWeaOOqVpsHMWu0OBA0hwDR7sTsAHWDPqxm/2pka0P6tbu1svJq0AfsB6Wdd2JJo6hr544NDiUdhdKRwXyM3Z+Lpw16CeDxCHkUApwsz81YjnkgXeJ+HVswBaCd5oskw8Th238Mbmv8OdBKay+jf38SN1kgmvaMGyUGtra7bs24EXmQqktvmrtV5bIAFjKTNsJVazs8f9jO/gbuERJ498j87cAAAAASUVORK5CYII"},{ name : "haxeui-core/locale/en/std-strings.properties", data : "c2F2ZT1TYXZlCnllcz1ZZXMKbm89Tm8KY2xvc2U9Q2xvc2UKb2s9T0sKY2FuY2VsPUNhbmNlbAphcHBseT1BcHBseQpzZWFyY2g9U2VhcmNoCgpyZWQ9UmVkCmdyZWVuPUdyZWVuCmJsdWU9Qmx1ZQpodWU9SHVlCnNhdHVyYXRpb249U2F0dXJhdGlvbgpicmlnaHRuZXNzPUJyaWdodG5lc3MKCnN1bmRheT1TdW5kYXkKbW9uZGF5PU1vbmRheQp0dWVzZGF5PVR1ZXNkYXkKd2VkbmVzZGF5PVdlZG5lc2RheQp0aHVyc2RheT1UaHVyc2RheQpmcmlkYXk9RnJpZGF5CnNhdHVyZGF5PVNhdHVyZGF5CgpzdW49U3VuCm1vbj1Nb24KdHVlcz1UdWVzCndlZD1XZWQKdGh1cj1UaHVyCmZyaT1GcmkKc2F0PVNhdAoKamFudWFyeT1KYW51YXJ5CmZlYnJ1YXJ5PUZlYnJ1YXJ5Cm1hcmNoPU1hcmNoCmFwcmlsPUFwcmlsCm1heT1NYXkKanVuZT1KdW5lCmp1bHk9SnVseQphdWd1c3Q9QXVndXN0CnNlcHRlbWJlcj1TZXB0ZW1iZXIKb2N0b2Jlcj1PY3RvYmVyCm5vdmVtYmVyPU5vdmVtYmVyCmRlY2VtYmVyPURlY2VtYmVyCgpqYW49SmFuCmZlYj1GZWIKbWFyPU1hcgphcHI9QXByCm1heT1NYXkKanVuPUp1bgpqdWw9SnVsCmF1Zz1BdWcKc2VwPVNlcApvY3Q9T2N0Cm5vdj1Ob3YKZGVjPURlYw"},{ name : "haxeui-core/styles/shared/option-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5QEaCgw0CA+AtQAAAINJREFUGNN9zDEKwlAQRdE781egfdYQV6FgM0WWYpNNSPYRm2ktsgfb9LYSsE7+WAQE4ccDr7rwBMDdqyB1CEcAgkElt2Y2irtXoelBsOfXJLHUGqSuEAF2SLrq97Yg4KT8F0owbHe5q0pugalQX3nWi5rZKLHUAjfgvU76PKdD05yfH881KnTRsBd3AAAAAElFTkSuQmCC"},{ name : "__ASSET__:bitmap_flixel_system_debug_GraphicArrowRight", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFzQUFBQUxDQVFBQUFBRHBiK3RBQUFBTDBsRVFWUjQybVA0dit4L0pBTW0rQThFWUNsTVliZ1VwakJDQ2lHTUtRVmlZVW9SVUkxcE5rS0lvTHR4K0JJQWlaeURKT010Z3ZjQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/shared/window-collapse-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVorDnbwa8hQnSyIijhKFYtgobQVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi6OSk6CIl/i8ttIjx4Lgf7+497t4BQq3EVLNjAlA1y0hEI2I6syr6XtGDYXTDj0GJmXosuZiC6/i6h4evd2Ge5X7uz9GrZE0GeETiOaYbFvEG8cympXPeJw6ygqQQnxOPG3RB4keuyw1+45x3WOCZQSOVmCcOEov5NpbbmBUMlXiaOKSoGuUL6QYrnLc4q6UKa96TvzCQ1VaSXKc5giiWEEMcImRUUEQJFsK0aqSYSNB+xMU/5Pjj5JLJVQQjxwLKUCE5fvA/+N2tmZuabCQFIkDni21/jAK+XaBete3vY9uunwDeZ+BKa/nLNWD2k/RqSwsdAX3bwMV1S5P3gMsdYOBJlwzJkbw0hVwOeD+jb8oA/beAf63RW3Mfpw9AirpavgEODoGxPGWvu7y7q723f880+/sBXHpynoD2GeAAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfmCxsJGShdZYndAAAA5klEQVQoz8WRoW7CUBiFv/8WMYFZshCyOQTNzBQCElwNFVOTkyNLtgrUkrlpxExDC46XKL1kpgvZkj0Cl3oETzDFPw0hOLIjzzmfOQf+RWnmGmnmGocys28k2eoaTxZ4fKd2eXMUmMyWLfFYAFcgdTCfE1t2DgIj64KtMQVwoRArxMD5Fv0YWRfsAEle3hokA6qIDqOwOYjC5gCVV6BqkHw8X90ByDgv71V0ClRE9OWp57/vDDB3ESoxoKLyaBQNAIPwsF8GeO75CUIfQNGuvBVFpfZ72Y5C/+vY1Il13c3Z+uf0p/4Bt0VKdw++nJwAAAAASUVORK5CYII"},{ name : "haxeui-core/styles/default/switches.css", data : "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBTV0lUQ0ggKERFRkFVTFQpCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi5zd2l0Y2ggewogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBob3Jpem9udGFsLXNwYWNpbmc6IDVweDsKfQoKLnN3aXRjaC1sYWJlbCB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwp9Cgouc3dpdGNoLWJ1dHRvbi1zdWIgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgcGFkZGluZzogMHB4OwogICAgaW5pdGlhbC13aWR0aDogNDBweDsKICAgIGluaXRpYWwtaGVpZ2h0OiAyMHB4Owp9Cgouc3dpdGNoLWJ1dHRvbi1zdWI6ZGlzYWJsZWQgewogICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtYm9yZGVyLWNvbG9yOwp9Cgouc3dpdGNoLWJ1dHRvbi1zdWIgLmJ1dHRvbiB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogNTAlOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgZmlsdGVyOiBub25lOwp9Cgouc3dpdGNoLWJ1dHRvbi1zdWIgLmJ1dHRvbjpkaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kOiAkZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvci1zdGFydCAkZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvci1lbmQgdmVydGljYWw7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7Cn0KCi5zd2l0Y2gtYnV0dG9uLXN1Yi1leHRyYSB7CiAgICBoZWlnaHQ6IDA7CiAgICB3aWR0aDogMDsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBmaWx0ZXI6IG5vbmU7Cn0KCkBrZXlmcmFtZXMgc3dpdGNoQW5pbWF0ZVNlbGVjdGVkIHsKICAgIDAlIHsKICAgICAgICBwb3M6IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIH0KICAgIDEwMCUgewogICAgICAgIHBvczogMTAwOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKICAgIH0KfQoKLnN3aXRjaC1idXR0b24tc3ViOnNlbGVjdGVkIHsKICAgIGFuaW1hdGlvbjogc3dpdGNoQW5pbWF0ZVNlbGVjdGVkIDAuMnMgZWFzZSAwcyAxOwp9Cgouc3dpdGNoLWJ1dHRvbi1zdWI6dW5zZWxlY3RlZCB7CiAgICBhbmltYXRpb246IHN3aXRjaEFuaW1hdGVTZWxlY3RlZCAwLjJzIGVhc2UgMHMgMSByZXZlcnNlIGJhY2t3YXJkczsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKiBTV0lUQ0ggKENJUkNMRSkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLmNpcmNsZS1zd2l0Y2ggLnN3aXRjaC1idXR0b24tc3ViIHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGZpbHRlcjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAwcHg7CiAgICBpbml0aWFsLWhlaWdodDogMjBweDsKICAgIGluaXRpYWwtd2lkdGg6IDQwcHg7Cn0KCi5jaXJjbGUtc3dpdGNoIC5zd2l0Y2gtYnV0dG9uLXN1Yi1leHRyYSB7CiAgICBoZWlnaHQ6IDE0cHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICBib3JkZXI6IDFweCBzb2xpZCAkbm9ybWFsLWJvcmRlci1jb2xvcjsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKfQoKLmNpcmNsZS1zd2l0Y2ggLnN3aXRjaC1idXR0b24tc3ViLWV4dHJhOmRpc2FibGVkIHsKICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlci1jb2xvcjsgICAgCn0KCi5jaXJjbGUtc3dpdGNoIC5zd2l0Y2gtYnV0dG9uLXN1YiAuYnV0dG9uIHsKICAgIHdpZHRoOiAyMHB4OwogICAgaGVpZ2h0OiAyMHB4OwogICAgYm9yZGVyLXJhZGl1czogNTBweDsKfQoKQGtleWZyYW1lcyBzd2l0Y2hBbmltYXRlU2VsZWN0ZWRDaXJjbGUgewogICAgMCUgewogICAgICAgIHBvczogMDsKICAgIH0KICAgIDEwMCUgewogICAgICAgIHBvczogMTAwOwogICAgfQp9CgouY2lyY2xlLXN3aXRjaCAuc3dpdGNoLWJ1dHRvbi1zdWI6c2VsZWN0ZWQgewogICAgYW5pbWF0aW9uOiBzd2l0Y2hBbmltYXRlU2VsZWN0ZWRDaXJjbGUgMC4ycyBlYXNlIDBzIDE7Cn0KIAouY2lyY2xlLXN3aXRjaCAuc3dpdGNoLWJ1dHRvbi1zdWI6dW5zZWxlY3RlZCB7CiAgICBhbmltYXRpb246IHN3aXRjaEFuaW1hdGVTZWxlY3RlZENpcmNsZSAwLjJzIGVhc2UgMHMgMSByZXZlcnNlIGJhY2t3YXJkczsKfQoKCkBrZXlmcmFtZXMgc3dpdGNoQW5pbWF0ZUV4dHJhU2VsZWN0ZWRDaXJjbGUgewogICAgMCUgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWJhY2tncm91bmQtY29sb3I7CiAgICB9CiAgICAxMDAlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0aW9uLWJhY2tncm91bmQtY29sb3I7CiAgICB9Cn0KCi5jaXJjbGUtc3dpdGNoIC5zd2l0Y2gtYnV0dG9uLXN1Yi1leHRyYTpzZWxlY3RlZCB7CiAgICBhbmltYXRpb246IHN3aXRjaEFuaW1hdGVFeHRyYVNlbGVjdGVkQ2lyY2xlIDAuMnMgZWFzZSAwcyAxOwp9CgouY2lyY2xlLXN3aXRjaCAuc3dpdGNoLWJ1dHRvbi1zdWItZXh0cmE6dW5zZWxlY3RlZCB7CiAgICBhbmltYXRpb246IHN3aXRjaEFuaW1hdGVFeHRyYVNlbGVjdGVkQ2lyY2xlIDAuMnMgZWFzZSAwcyAxIHJldmVyc2UgYmFja3dhcmRzOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCioqIFNXSVRDSCAoUElMTCkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLnBpbGwtc3dpdGNoIC5zd2l0Y2gtYnV0dG9uLXN1YiB7CiAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgaW5pdGlhbC13aWR0aDogNDBweDsKICAgIGluaXRpYWwtaGVpZ2h0OiAyMHB4OwogICAgcGFkZGluZzogMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZmlsdGVyOiAkbm9ybWFsLWlubmVyLXNoYWRvdzsKfQoKLnBpbGwtc3dpdGNoIC5zd2l0Y2gtYnV0dG9uLXN1YjpkaXNhYmxlZCB7CiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXItY29sb3I7IAp9CgoucGlsbC1zd2l0Y2ggLnN3aXRjaC1idXR0b24tc3ViIC5idXR0b24gewogICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgIHdpZHRoOiAyMHB4OwogICAgaGVpZ2h0OiAyMHB4OwogICAgZmlsdGVyOiBub25lOwp9CgoucGlsbC1zd2l0Y2ggLnN3aXRjaC1idXR0b24tc3ViLWV4dHJhIHsKICAgIGhlaWdodDogMDsKICAgIHdpZHRoOiAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGZpbHRlcjogbm9uZTsKfQoKQGtleWZyYW1lcyBzd2l0Y2hBbmltYXRlU2VsZWN0ZWRQaWxsIHsKICAgIDAlIHsKICAgICAgICBwb3M6IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtYmFja2dyb3VuZC1jb2xvcjsKICAgIH0KICAgIDEwMCUgewogICAgICAgIHBvczogMTAwOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjsKICAgIH0KfQoKLnBpbGwtc3dpdGNoIC5zd2l0Y2gtYnV0dG9uLXN1YjpzZWxlY3RlZCB7CiAgICBhbmltYXRpb246IHN3aXRjaEFuaW1hdGVTZWxlY3RlZFBpbGwgMC4ycyBlYXNlIDBzIDE7Cn0KCi5waWxsLXN3aXRjaCAuc3dpdGNoLWJ1dHRvbi1zdWI6dW5zZWxlY3RlZCB7CiAgICBhbmltYXRpb246IHN3aXRjaEFuaW1hdGVTZWxlY3RlZFBpbGwgMC4ycyBlYXNlIDBzIDEgcmV2ZXJzZSBiYWNrd2FyZHM7Cn0K"},{ name : "haxeui-core/styles/shared/right-arrow-blue.png", data : "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAYAAAAvZezQAAAEJXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjazVZbkiQnDPznFD4CkhASx+FRRPgGPr4Tqrp3ph+zs+v9cBENtIpKRKYEhOOfv2f4Cw8Zx5DUPJecI55UUuGKjsfzqbummHZ9Pulq6bM9RLteMEyCVs6/nq/xNzvdAc6moqcfgLxfL9rnF+Wamf0B6JpIlkeMzriAygUkfL6gC6Cey4q5uH1cQjvO9vr+pMHX0lC1m1WvwQ//k4G9oZhHmA8hiahZ0umArB8HqbuzasdAkoK+iKNWscsTEPKKp/jBq/CoSuHXqtx7D6JIPu0Bhs9k5nv70k76mvywKf4ws/T7zJ/spjfGPpO8fnMOD3Me5+pqyqA0X4u6LWX3MLCBctmfZRTDT9G3XQqKB0Rvh+Qj9thQOhViyDIp0aBKk47ddupwMfHBSAdm7izb5mJcuEsM0CmtQpMNig3oxdIhr8DKd19oz1v2dJ0cEw/CSCaA0Sk//5nyFmjOFfJE0U+eEBbwi1dwwI2l3KoxCoLQvMWRboJv5fFZugoU1E2zY4E1thOiKV2xteJIttASl8Dp2ibIxgUAijC3whkSKBAziVKmaMxGBB4d+lQAOZKGGyQgVR7wkpNIhjjIGMyNb4z2WFY+zdizIIRKFoM0SClolbCxIX4sOWKoqmhS1aymrkVrlpyy5pwtr82vmlgytWxmbsWqiydXz27uwYvXwkWwOWrJxYqXUmrFpBXIFV9XDKi1cZOWmrbcrHkrrXaET09de+7WPfTS6+AhA/vEyMOGjzLqQQdC6UiHHvmww49y1IlQmzLT1JmnTZ9l1rtqFHba0VP5vmp0U423Umug3VXDp2Y3CFrbiS7NoBgnguK2FEBA89IsOqXEYUm3NEPEISuU4aUucQYtxaBgOoh10l27H8p90i2k9J9045tyYUn3J5QLS7o3yj3r9kK1sU6bHiVshVYaLlKjIP20slduh/uMfXUdY+FDrnlIaQ3UYFfcg4ojd5KuIyzcOj9pQfjueHwDHZ6xfw86ADtB+FSajaOMhB1eLM826NEg1gbUIJD1Ym3h+2t5anGQQp4LO7wi7neww2dwHEdWdZ/2morT8coyMvW14LxhcJAu9KDx7Oi+Z60OXy76N1pIl6ohH1qoT9i/Bx0esBGaZdHSQZrlUgW/HBc5rSUomXDjuf/DuHny+/2A/Gn7PwBah39ce8PiBEBpdBvZd10243wg61vKuy6L88ui/EU0hVche2tLHYORJSMf65I73gTuhg5fZ0HBNRLue5+67p5zdNnuoy7bWZkWp+JuFThiOeMHfn9CK2cnPUXZvV3JFrCRpvuM77C+gR02+7gI27oCG1zroy/nkcw0zz2jrJfpjpNfuha+zAgC27W0hG0blH8JFd4s+5ehw1sG37Q2cXKs3PoX/YUPPAIScFcAAAGFaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1O1IhUHK4g4ZKhOFkRFBBepYhEslLZCqw4ml35Bk4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAqJeZanaMA6pmGclYVMxkV8XAKwQEMIBZdEnM1OOpxTQ8x9c9fHy9i/As73N/jl4lZzLAJxLPMd2wiDeIpzctnfM+cYgVJYX4nHjMoAsSP3JddvmNc8FhgWeGjHRynjhELBbaWG5jVjRU4inisKJqlC9kXFY4b3FWy1XWvCd/YTCnraS4TnMYMSwhjgREyKiihDIsRGjVSDGRpP2oh3/I8SfIJZOrBEaOBVSgQnL84H/wu1szPznhJgWjQOeLbX+MAIFdoFGz7e9j226cAP5n4Epr+St1YOaT9FpLCx8BfdvAxXVLk/eAyx1g8EmXDMmR/DSFfB54P6NvygL9t0DPmttbcx+nD0Caulq+AQ4OgdECZa97vLu7vbd/zzT7+wF8pXKr0kUkPQAADRhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6ZjA2MTJiMDQtMmJkZC00N2E3LTgyOGQtYzkzNWMwOTU5OTZlIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVhODNkZjU5LTk2NGUtNDI5Zi05ZmEyLTg5ZDNmYWY4ZTc1ZiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjExMjg5YWQzLTA2ZTEtNGU4Ni1hMTkyLTQ0ZWVhNjRkZDkzNiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQ0MzQ1NTM4NjkyMjYyIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTI2YzU1ZDUtMDYxMi00NDZhLTgzZGEtYjZiNjA5NGI5ZjY5IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTAyLTA4VDE5OjM4OjU4Ii8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pj86b/sAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfmAggSJjqpzQQ4AAAALklEQVQI12MI7TrynwEJMDEwMDAgCzLBGDBBRqxaYGB1mQ0jEzKHAd1ABgYGBgAWuA/w/oe0hAAAAABJRU5ErkJggg"},{ name : "__ASSET__:bitmap_flixel_system_GraphicVirtualInput", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVk4QUFBQzNDQVlBQUFEcXhOS1RBQUFBQ1hCSVdYTUFBQTdEQUFBT3d3SEhiNmhrQUFCeVcwbEVRVlI0MnVTWkJXaGNTeGlGYjZSSzhXZDFiNWU2dTd1N1M5emQzVDNWNSs1ZWQxMnBLeG9QUmV2dUVpWG56UStYTU56bHhvRFo2YjZGcnhJN1h5WW4vd3gzRk8wTGdFTTlHZDhNWkl3U2pJRjMwT2pabDY4RWtGTnpuTStkT3pmdzdObXpvMFRDTWx1OHhqZHUzQmpJR0NXWS8xVW5Ndkl4TUNNUG80U1NEKzBhMjYydkREUlYxaEdwWDBVaTVjdEhTUG9VU05qSjJDRUd5a3I2REpUTkhIekpoWmR2MURmOUs0QklFNE9hMTJ4ZkZTY1ZaNUZ3dVk3V3Z2ck9aODZjaWJSWUxJOHNGak1zRnBOZ3pLQnM1dERrTlM0dkw0OWtQQ29ySzBWcGFZbFFLSk95R1hiZGlkUWNSS1prNHhIN0d5blpqQ3d4VUJabHF0bmFOVzdVTnpNZklESkV3R1h4dm5iVENVN1dDU2xmN0VKNERqRE5FeGl3RWpDc0VBdGx6dklHSXBrRHVaQ1RLcS9ybS9ZbDRKY05iRWdHMWllSmhUSURtR3Y2bDQzNmNpVm94V2l0MGtZa1hDNDVPRnY3V2p1em9iM0xaRHFGWGJ0MjRiZmZmc092di80cUZNcmNzMmMzVEtiVElKZkcxcGdON1YxRlJRVzRjT0Vjak1iVE9IMWFMSlI1OGVJRkZCY1hnbHpzc1JNcDJkaVZrQTZzY1FWbUx3Rm1MUllMWmE3M0FCSXpBSExobmZWOHM3Y0NrUW1BWHlqZ0d5SVd5b3hpMmVSQUxuYlFDWTF3NnBkdWlNb0RocTZoUVc1VHlJRmN5SWtYdC9LbGpXTnpDckF1MGFhUUE3azA1S3YrSU5vdzJzNlpNNmRudjM3OUpvbW1kKy9lRXhjdFd0U05ITWlGbkxURjBHd2NibWJ6YWZ6eHgrODB5RzBLT1pBTE9mSE9tbzNEallhMnlXU2lRVzVUeUVIZFFMUytqdTl6SjlKeTRaYVVBU3hZU1lQY3RwQkRVaVpBVHJ5ejFqZHJLeEFZQWZnRTJ4WnlvQTJFbk43M09hRnd3cTJSOEdrQkZ2Z0QvWmZMd2VJQUlQSFRTK1JHamp6MXZrRzVOTHpsSUNSUHo5ZFpmVnZiamgwN0xuTjJkcjVHU3ovem8yNVkzcm1QVUtaKzJBV1V6Und1ZE8zYWRTNDVjYjZPMms1WUxKYUNmZnYyMHZDV2d2Mzc5NEU1NlhhaXRMUzA0UExsaXpTOHBlREtsVXRnVHJ3dlB5Q3NPakZreUJDTUd6ZE9LSU1HRFdwV0o5akdVYkRaQjVpNVdBN2MvSUhrRE9oMmdueGprbWg0eTBGY0N1L2IrSnpvMkdrU3VuV2ZKNVNQTzQ1cnRCUDBod1BEaWFpcHFSNmczSDJxU1BPNi8wSjVWMWs1Z2p6SmovTjFydmQ5K1k2K1J6bDRYYUhuNjhRdWZsdTNhOWZ1aS92Mzd4LzRZZXk4TVpWUld4V1RkNFN5M3lXUUVTQUV5anJyRTYxUTlvNWgweWZkdm4zN1pJY09IZkxJazNOVitFNVVWMWNQZVBldVFwcEtWRlpXS2hVVkZicWRxSzJ0SFZCUlVTbVJieFZEN1lRR3ZoT0JnWUZqVHB3NG9YejY2VTRsSnlkTEtKOS8vcGxDMlI0ZUhrM3FSRTF0ellBblQrVDV0WHY2bEsxejFUdmRUcER2MnpmeStMNTl5L3ZxejRtSlUzZU1pWXA3cVhqNW5sVmNQSTRwTHU1aW9Dd2YvNHNLWlk4ZWw2N2ZDZlVFMUpZSjV5TnFHMkNnVS84eU9SaTJCaStDczhERXN3QzA0NTdIdGF2M1haY0FySldFVGNrTitYNU95MTJ3TWdBSXMvV2RrZzhRbmtzdUlDZlZ0eTExUWRzSm85RklKMzVwK09PUFAzRHc0RUhkVHBTVWxOQ0pYeHJNWmpPdVhyMnE5VzNMZCtLcnI3NkMwVWgzU3YvYStFN3BGTGswMm9uWUZHQVduZm9YeVFFOXVncUxmYUhiQ2ZLbEU3OTNrQndFaE9uNGNwMVl0K2tTNGxQcXNNYkZobmRLN2tCOGFoMjVXSGRDTFVWcjlveHJOUHRuTFNLMlNMTnhFSFR2OFNZb0UrUTJjdVRJd2JTNHhJQUJBOGJVKzY2Tmw0ZU5TY3czeThxM2YvLys0Mm1wODRaT0FTSWt1bE9LekNNbjNyZTF0aE0wQU9YYVBIN0hvVU9IZER0UlhGd3MxZVpCOXg3WHIxL25mZHN5MnJOSFJSTWNIQnpnNHVJQzJlNlV5S21oVHNRa0F6TVd5c1A4RlVCWXpHdVEyN2h4NDRab08wRyszb0h5NEI5S200ZTFyOEZnb0RtQlVXTVNrWkJhSjgyZEVybVFrN1lUanNTdFc3ZDgvdVB1S29EYlNOcnNFOWxPekE1ekZrTExFRmhHZTVtWm1abjNtSm1aK1c2WjZjZmsrRzZaR1V3Ym94ekxkc1R5VE04L3IxeXRxUzdKa2tmcWJOcDVWVjlOelV5ci9VcnBmUFM2YlFBaDJBS21JV3c3SUxmUFAvLzhMbG5tOWZiMjNoSUlCTXprNnhUeWRiL2YrMTIrdVBId1k0SFBlNEhNSk9BNHU5Zkk0Y3Z0dU9xZ0xTQkhOMk8vMDJ0UmVHdkM0VmhOU0NhVE5GU0xZREE0N1pyUXlYZHljcEtHYWhFS2hRcjRkbloyM2djQVo1NTVKc2JIZDhJMllDMlR3OFJFSEIwZEhTWFhoQkF3RG80VEF2LzlQLzc0NHp2bGQ5elQwNVBuNjhBa0s4NjN1N3Y3ZmdBNGJPT3QyRDRRUURhMyszbVN3OEJRQUFjZWZLMjZKbVQveXUxcmQ0QVFkdFUvcm5NeWdiY3pZM243SkR0UjFYeEJZY3RlOTNHeVA1ak5adHNsMzJxZGFHZmM1VGs2a0xkUHhxTlZ6UmQwUkFGZjF3RWRDd0N0emMzQWdFR2EwdEFZRnJTMFNVZDVJcm1DOE5ZRWREbmprWkVSOVBmM1kyQmdRRXNBS2I0bTlQRk5KQklZSFIybHlRQ2lrMi9Bc2l5dUNUUzdhOEkwVGFtdHJmU2E4QnM4VW9rdnNIUDg3YnhsTS8zRmYzYTZ0L3k0WW5BQTRRUkF1T3NndnlZeW1VeDdKWHpIeDc3QVNQVHR2Q1dUeFhrazRyMGx4cFdoclBKVi9FUmoweUxzR0RWSVV4b0RtbHVXcW10Q0JnOGh4SElRZHZVaE9uRG5aZGpuaVQvSVcrdHZQNGkwc0N1ZjB4YXl2YmFZWEdtTzQzaDhxMFRnNHBPeHorOCtrcmZXZTY5RzJyWlFNV3hINGV0R2F1NmdXQWdBSVdiTTJVbHpWb1ZsSVFBSGhCQmlFU1RrbXREa2pCazA2SVJiVzF2UjB0SUNWd3hFNVpDY0N0ZUVMcjVqWTJQWXVYTW4zQjR2RGJGWVRDdGZkK3R1UkFpeFVGWlJ0bTNERk1nS3FOU2FFTUpmVG5YL1BhdnhsMys4VDk1T1BuNENRbGpLR050SzQ3eXowdDY0UDlrWFo1KzVaSVkvUXdrUWNrMVV6UGZHNjFialYzNStuN3h0T25RQ3RxM3l0U2JUT09IWXREZnVGL2JGeVNkV3pwZCtJcjhtQW1Fd1h6RUZkSWR3Z2dWcklpZ3JheDNPT0dwbnNmS21TOUYyNUdGNVczYkptWWd0YmtIRkVIbG5FSmFMUXVGYlJaVVF6U1N4OHFMVDBYYklmbmxiZHZyeGlEWFhWVGluSUNlRjczUFBQVmNQSUtqd05RVU9DdmpDUTBpSE0rN3I2Mk4yQlhlN0grcnE2dUFLZ2xpK2ZMa1daNnl1Q1QxOEdUaFlhU3hZc0FDUlNBUTFOVFdZUDMrK1RyN0JwNTkrZWk2djhwMVpjTWlwNUpyd204bS84VllkTmg3ZWxyZUg3bHVMY0dpN01xYTVzUXNQMzc4K1AyYjkyaGI4Myt2QkdUS1duTlExVVNuZmp6K3R3MEVIdHVYdDVodlh3ckZWdmpXUkx0eDYwL3I4bUgzM2JzR0hIODJRcjFQSTk1bG5ubW1RYTBJNE11Q1pZOEpSK1VLU3pjT3VybTJWT1drVHdrME5VQUhrVHQ1YzBYeGtUVTZFSkt5VjcyRnJFVzZvTCtSNytMcks1eTNrRzRTRWljMWlJY283dmlvQ2g5dnF3TUtGQzVteE1NdW1NK2E5TG1jYzBNbFhCZzVXUjVKdk9CeG1hMGt6WDI5Tm1LY3BsZWNraEwvL0VoOThCRHo3b29CRVkyTVlGNTVqUTFocHZzZGtMb2I3N2xvQVF1SjMvakNBaEkvdHRlUlVmRTM0ZDhSZmZBWDhhSnVBUkVOOUdDZWZZTFBhbUpJTE16RmNlNVhLOXgvK05ZQmt5b2N6VnZsUy93ak9LamRSR0R3cVoyMDVEa0x0VzFBTTh5ODZEV25IaGkrVTRWUnRtODBTQXFITkJ4VG4yM0VNMHBaVlZadE5JcFZLaFJTK2htbEtzTFVIRHlWd0xGNjhtRTZZb2pFemVTeGF0SWpQTlRnM3ZYeGw0R0JyalpzYkpHY0dFc3V5dFBLVmE4SlVUYWtjcDBvRTZIOStMSWhFd29IRWJUZnZpNmFtTHI3RGhyV0RPUEg0aFpENG4vKzM4VCt2Ky93WlFsK3dvNzN5V2hDcGxNZjNxaXYyUlUyNGkrK3djdWtnampyQzQvdmUremJlLzhEWC9PUlVkRTJZcUNrNXhUbnBxenhHNnNOc1VVSEMzdm82SkJyM1g0T0JSVTBWekN2SUNRcDA4UTBKdDBWMUFpVHNOei8yK0s1WmpZSEdTR1dWa2lqRDF6aE55ZFlkUE9qRVpPQlFkaHk1cDJiWndqSXNlQ2lCUTluUlJlR1l6M1VIRHduVE5TVVYxZVdZaVNUdzIzK29GZ1dzTnBMeFQvRGd2U3U5Y1FtQnYvamJVQVZTbzk0Y001a0cvdUZmVkw3WFhiTUFzZGdudVBGNmoyOHlKZkRrY3lGLzg1Y0pFR1pyU2g2Q2VqSjUyWnJ5RVByMXYxZnU2NjQ5VjBzbUwxR3Q1cEhidUVIbCs4K3ZxSHpQUHI2U2VjdndOVWxUa3F2WTBSbzhaT0JZdW5RcENHYnh0YlcxV0xac0dVK0djemVQQm9lcGp5OERCNFBEdkhuekpGOVdTTHhub0dQd2tITnE1MlMycHFUTHVVbGpSUUc4LzZHQXhFbHV0Zkd6ajdaaTNkcEdTUHpUWTBFTURsWFFreGY2K2I3N0FmRDVsd0lTckRadXY3a1YrK3p0OFgzWnJWQkdkdWpqYTZLbWhGMVplYVFkQzNQYWo0UkU3ck5Pb0g4WW1SLzlIeVRhVGowT2NlRi9wMUg1eXNNLzByYkw5NGlEUEw1ZDI0SG9HREt2ZitqeFBXWWo0bFlPWlZHR2s3bWFVdm52bHhBK1Z2TFEwQkFEQnlzTU9pQ3BjYkJWeGJLY3dVT0h3eVFuTFh3bkppWVlPRmhoa0pQVU9KaTlLeFdTZnI3bWEwcWxJR3hVQ0ZZZlFjUVRBaExubnJVTUV1OS9hTHZhQ0h5aERLZXFUeUQ4d3o4SFdWMUE0cFIyaisvblg5ajQwZGJLNWhWaWRtbEtqbE11ZUZnQ2xTQzJwQTBMVHpzZUVvRVh0b0dvMmZZMkpPYXNXSUxSdGN2MWFoNVdaU2tGZDFNdFBIYXp4L2MvM3VGejFMejdtY2QzOFFLTUxtbjFQNy9sUUlIeG1wSSt6VU8ycXFSbXdDc3plUGJnR1R4NEw0VGcxWWhNbm9GRHRxb2twNmFtSmdZT21qYStlNHltcEVIUUhSb0dubnN4aUdMNDg3OEo2UkYwTldnMDBrWkdnUjl2Szg3M2lXZERsYzFiaHE5dG9LWms3NkxLbzZCbEZkbjZKcDhqdU8xMTlma0Y3UlhzdGhLNk0vbUNsbFhrbmMrbStMNzFxZnI4cE0yYUt5VWpOU1Z0em0zbHlwWHk5SGNlN2wvVjQ0RTdPbURPSlIyeENjR0QyM0VWUHJMdHhncEpNMThqTkNVTjBMRkRIbi83anpIRTQ2cU85TktyZy9qeXE3UWNvNzliN0ZSdVR6MGJReUtwOHYzUjFrRjBkNlYzeVQ0VllaYW01S050NWNDWFVheGw1dXUxckw0QitvYW4zazhrZWErMHJxSldUcCtnV3dsZnk4TDhVNC8xK0hadUI0WmpVKzhUYWQ0cnJhdG9KcVdScjVHYWtyYmd3ZllQZSs3UzRmTEs3TDY3dTV0WHprVmpObStFTTI1c2JLUWVvL0MxYlJ2RHc4TzhTcjRHYUI0YU5DVkRLZy9Ic2JCaGJSL1lXaUU4L1dNQm1odS9ybkRTWFZkNVVIaGVzYXdQRGZVcTM2T081RG1nci9WWEh1WnJTdnEyNmtZWHQ3cVo3MXBJZEQzOUNuNllHcEhHZTZWMWxXbmZEQi9RbmxKRW0ydlJ1R1l2ais5clcvSEQ0UjVwdlBmNExsbUl6TVlOUGlvbFVYcFZtS2dwQ1gyVlJ6d2VCdy9VMFpteEF1Rm5lYzlUMmowOVBmSWt0VEZ0S3pwYnRxblk3cEY4ZVUvaE9ScU5xa0hPQUw3K05TVWp6bmtvRmdsdWQwOWtyeWtTeU1QNHhaOWRqc2xzdExKTmptTFg4SFhFZGpkekwrVExZSEx2bmN1UlNVWDFheDZHYVVyU1RlaHZXMTF3a2pMRitsKzZINmYydnltTjkyb3JpRTVRWnh2SWJ3ZzljWlBLOTU3cmNlci9QU2VOOXlyZkxRZjZtYjhNWDhNMEpWbDVhQkxNMlRJWkh4OW5PNGhPamM0dFg1SE1uVHVYRllqTTZLdHdiTm9FYU82a29oN0RRNEFVeWlWZldaR3dBdEVSUU1ocDltdEtHbmFjVzFZY0Y1NXZ1MVhUSERtVjBxZmZkSGdiTm04Y2duQXMvNW04WmpkQnkrWGk2RGpKZG9Oem5xOXk5dVBnZzlxd1laM0wxN2I4WmZIbDNZUlptdEpNTlE4L2lBc0xDeTgrRTM2dzRMVGpFTFZ6MVlTOHl2bGFPVHBoZjN5UDI0eG9OcVYvdDVVSm1wTG1RNEowV215YmNQc3JkL3pJQ29UUFdZSFUxOWV6QXFuU0lUdmtwSXN2SFRJMUdRWVFWaUNTcjc0S3BBd256bTJXcGlRNTZXOWJyVmoyTGU2NFpWOUlEQTRKM0hDSHl2ZFhmMkUvaElQZC9qazcrdm5PYi8wVzExemw4UjNaSWZCenY2THlmZWorL1dEYlB2azY1UTgxbXFRcGlSbTFyU3gvOVIwelhXYThmaEJ1YWtUaTVJMHpyMGZKU1VYbGZKZTJzUlhsajI5RFBSSWIxL3M1dWw0NmZKdWxLV2tNSHFwRGpzVmlyRUFVVFlIMzFFVFlmakZFUTVDNkRCMHdBd1lyRU1tWEFZVVZGSU5oTlZ4cHMweFQwdCsyeXFaNzNmYVA2aXQrNi9lRDdscmdZVHgxbStrTjE5VEF5c1Y4emE5YjgwZ2tlbkhURFFwZjF5bFBuZWw0L2lVQmlZYUdNQzQ4cndiWmJNeGZwZVFZcnlrcGNIUUw1cUVMT3FEZzdMdUFmYzhvdEJQVVZsRERoYWZCRW80UDU2YW5IZzJkdEFVSzd2OGQ0THg3QysyV1gxYjV0aDhGUzlnYXRuM1lCbXBLK2pRUG1mbnl5cFlRVHozVDRUR0F5T2NNSUlRQm1ieWNoMWM2WDJvMmJGa3hnRWkrRENBNk12bFpxQ25wYzhhMlNMc09OZ3UycFNUKysvOXN2UGZoMVB0blhsVDc5RmRmc1FvYjF2WHBGS0I5RWVacDdJNFRzMkJiU3VLZDkyeDgvc1hVK3g5dVZjOStYSGorS3F4YzFxY3QyTm1HYVVvMDI5RW9tTFAxdE9UU015Rmg5UTBCbjNlaEdKZ3BaNzBNR1d3ZGpkUkhOQWptUHZobTAxaHk1b2tlMytFZFFIZi9OSU5qeUhaKzYvRTliZ3RHSWhvMm5KdXBLV2x0VzNHODdMMHpnRkFEb1lPajVzSG50RFZyMXBoUWVaQ0x3cHZPbC9vQkt4QVo4R2pjMmZRZDhUVkFVOUpmZWJRMGRya25zL2VHQkFQRm4vNWxLUDgrRVlkN3I3cWlYL21GTmNpa092VlZIczdNclM3U2hhdXY5UGdta3dLUFBSbVM3OTE3NExFblZMNFAzcjhHOFoyZCtrN0VtNllwbGEwOGZLeUsybE9PQWx0UUVzNXpQeTQ1UHZoanRUOWZmK294MyttcXFEM3lFTGFnUEw3YjNpdzVQdmpteHlyZkl3K3JmbFhZd2tCTlNXaXRQS1JKaDB5SEp5c1FiaWZsVGlGcUNmcWRzUjYrREhqTThKbk5rek1QRWRKUjYrZHJ1S2FrU2ZOZ0crWGhCMVlyYlpSbm5nOVMyRlh3L1I4QlgzOGpJTEhNZFlBMzM5RHFvN3JUeEZkWXVQWG0xV0E3U29LVkJ0dFZIbGc1QVQyOUFoS0xYVkg5c292MTh6VkdVOUlwbURjSHc4Q2YvRnZlSXR3Qk5EMzRYaG5mbE1ob0VLQjk4STNVQUU5OFAyK1IvM2diSmNEM3l2aW1uSTJ5Y01yek5VdFQwbFI1bFBrOE5SRHVYR0pXVCtlM1k4Y09ZMzlYbEd4aE1jT1hCKzc0aDZIMDh6VldVOUlhUEJnMHVycnJYVjBEZWZ2SGYwVlIvT2J2QlpWeDRYRGJkMzdDZkc1REdIMkQ5WGp1SlNoV2JPemYvR05RR1JPcGJkUFRack1ENW1sSzVLVHRuQWNyaVQ5NXpET0t1Q1hBOThwNGZyNDg5R1h5YjN3RVBQbDl6Nkl4bEFUZmUrUDVlVDF0TnVNMEpVZFg4R0FXTEUzNXRlYXlQMDlSbWxrOTcwMnJQSVFROHJOS0M0dW1JU0ROUWsxSmp6T09KL2kzTGxTYmJ1eFhuUVZqdjNQTkk1VUVubjlSdGVuRzl2WVdqdFdsZVppbUtkaysybGJtV1BsVllaQ0pBcjZ6V1ZPU2pzUTBrTk9lejljVVRjbjgvM2FPb0pYaGF4aUVtUDJhVW1IbEVRekFHQVJtSXBnSHpGbklnVUJwdnNJMlVGT3laNVR0bW9LWmNER0lMcm5zVVpvU0lSekQzRVNBbkVyekpSekhEQXVBMTltaUtjMHdlT1FtSjRFNU5lWTQ0OXBJeVQvRWszTUVFQW5BR01LaEFDeW5YTEF6VFZNU1pVOWhoOE1obUlKUUtNZzFVWkp2S0dRUzN4RDU3aUdha3Z5T1U2aXRnekdvclFXc0VwdEVMQ3VGU0FUR0lCd0c3Qko4aFdPV3B1VFF5bTNWSFVzbmdjWHpnSERJakc5NDBUeU1wSktZRG1NQk1jVTFGRFNBYnhDb0NXTWtZRVBCN05XVTVOa0NackpHVkIva1FDNXMxVXdIaXR2Y0hXVUlYNTVhSjk4OVJsTWkwcWsrTEZ3SUJFTzdQMlVMaFlINTg0RlVvbnY2WUpmcmM5ZU5nMUJvOXllWVlaZEQ3UnhXak4yelMxTXFGenkrR292QzdvMytoTHF6MEcxY2ljTHdWd2lVN0N3ejd6N0w1VGZzTTF3VXd6SnpLY3hKTWN4WlEzem5sTG5DVVRyU1Z3ajluNndqMDhuWThQQVdYQTdCWkFDQ2ZyMUk1cFVRUEx5Qm0xMG4xaWh4MG9nSEJyanpTVENuUVFqNHdEZXVGOGswWjhDWXh2MmVJRGJ1SHI1bmhIZHVlMHJiOTQybzF4dVk1b3lzdUdVQ25heXd0Q0taOGkwaXd6Q28xUnJJbFdWUEdvVkNnVmFyemVUa2hHeEVkbGF1V3BITVFNQ1BPSWhMUHA4L1VoUG50VWNEVUMwOW83aHNjZjh1WEF4Qk1BQUJ2MTRrODFJSTd0MUd1VGhVSzY4NGFYUmF6NGdtNURiRFlCZ2VmcitIejZjWHlaUnNVemxFWXE1eU91QXJSOHg3TlRHRXE0a3paNWgzSFp2NThpcE9zZ2hYRFhoeUd4NHJIbWxDc29UTEJwWnltQ3V2MExJdFRocmRVWmlmOEhEZXo4UEFnU3NtWEEzSmJ5MUlscmppV0ZqS1lVNjV0RVk5OWcyWkwrQ3lNd1pEMTFNU3B6TW5wcVhUYVVxbENzR2dIOU0wdHBuUmhMRTlhVzljT1pURVJhNGVlNlp2b3lGSElPTk1UVTBxcGpRemljODNqbXgwVTZuVUVkOUFJT0RLQ3ZxODlwUnN1MFpwL1QreStSOWN2Z3dQNzhQOWUzcVJ6SXVYSVpQdnNySDZGN1pWUHFYVldLUFQvSSs1Ull1eHNSR3VYZ0U1Y3JweVJRODdXYU1xZTM2aHAxeit3blVPK0VyZHVFTzdtaGc1dWVmaHFZTHBBRFE4bDQxK2h6Y2JlZEtmRjZsOWlkS2NpOU9jMTROa1ZiOUdTSDlaNU0xNm5wSnk2Yk5qalFVTXR0bnl0UzAyZlBER0dDRzlFS1gyN0JQTjU0b1huN1VnV1ZYMU83MFVReHhLUHVpN3puNWY3K2VmZjI1di84MFB5eHE2bnBKdEgvUUYyRjhUc3VKck5CcUV3MkZGbEV3bVN6NWZVQlExVVpDSmJ5bzdKZzdpb3B6dEUydEN6dnZMYWFMRnhVVmlzUVRGNGpLcnE2dGFLUlNLa2kwTzRvdGxXUWVXOFI5Ly9ORld5OWNDNUxsaDZ5bko4ajIxSmx5M1E2K1RZS1V3eS9mdmIxbFlLaEtKcnVsRVplYVpVOW5pME91bThBYldrWnJZOFhXY0RyYVZvRldiNWN2WGQ3ejVzTUs3RHh1OC82Z0h5WHI3dnNoWGxkMnN6eXFYRkFQM1lFMzgrdXV2LzdQM0hlQlJWVnZiNzVUMFFpZ0NTZ2dsRUZLNXRDQk54UUpZNzdYM2d0U2Y4bDNGTGxld2dkMFA2OFZlTDFjQnFYWTZBdEpGTUhRcGdVQWdRRG9wWkdiV3Y5Ynp6WWtuTTVra3d5Um5Ub2J6UHMvN0RDbk9lbWU3c3RiZWE1MjlkNUhpRXhXc1YxYzlwV0RwS1pXNyt3UVJoWEpaSUFNQVRRNXRRejlGZE5FVkh3MDVYNFFTMTQ3WEUxR1VrTXNSR1R6UU5EbWhGLzEwNGJXNjRxUHgzYXJvM2JKbFM0eWlkMGU3aTRrRzMwK1VjRFZSeHlIK1pjSTFSRU9HMCthMi9kVjZRMTE4UXB5YXhvOGZyeXNPR2pUSW8wL2NkZGRkTkhYcVZGM3g1cHR2RnIzRUdrVnY5S1pObTVxSVhnQTBaY29VbWpQbkcvcjg4OC9wczg4Kzh5dEZ3OXk1MzlEa3laTnI5SW1XNTk5TjdUdS9xQ3UyYUgyckpEZmkwbXFsVDdEZTdhSzNmZnpkOUxkZUwrcUtjUjJxNnYzdHQ5OWlGTDA5K215a080WVNYVFNZcU4vbC91WEZRNGp1SEViMHQ5NHIzWHpDekNSZVJxOEc0Nk16SjFCS0R1Z0ZaMEQ0cXVJVUdGTHpYcVhNS0hqQTF4QVJQanEwRTZWMm0zNzBPdXo0NnNpZlZmUjI2OWF0Z3ZXdUZyMGpqbStEN2RBSklGNEhQYVg0QzZTL2hZZE83SUNBTmE1UXp6SVZuMWl6Wm8weUU5VUY1TWtsRHI0ZWZlS25uMzVTWnZxNmdJemRpaFVybERFV3ZZNmVQWHRXOFBqS3YvSHBwNTl5SHlkZlZ6MmxtVE5uMXVnVGVTZC9oTU9obnpFbXFrQkI3bklRa1h5T1gxUStJV09NN0N4ZDZXVXRGVGllWFZWdjkrN2RLeFM5ZTNlTTRkVnJ1ZlJ6L041VGltc0RYdjFYNE1DZUo5eDlnb2lDMnJWck40UWJmWWNCVUI5TEpNMEo3K3ozRmNmTThFN1UyeEpCb2ttMGRlclU2UXJKZU1MNCtQZ3JLL1UyYlVWemVsM3A5eFhIekI2RHFYZE15K3IwaGlVa0pBems3K1VBb0VlajI5T1p6bGNUWFR1SzZJWnhSSDhmUTNTZFJoUmIxNDhsc1YzVytTcWFFQjFYcVRjNU9ibTMrRUoxUHRHaFF3Y2FOV3FVMzFjY3c0Y1BwL2J0MjlmcUUwbEpTVFJwMGlTL3J6Z21UcHhJWGJwMHFkVExtL2NHaVQrSVhyVlBEQmt5aEQ3ODhFT2FQMzh1ZmZ2dFFscTRjQUZ6dmtZVVd3dlo5aHg2Ly8zM1pWVlhKNThJajBpaXVQaW4vYjdpYU52eEtRcUxTS3pXSnpwMjdGanBFOUV4U1pUYS9XbS9yemhTdWoxRjBVMnExUnZHL2xIcEUrZkhqcVYrbDVYU3ZTT0pSb3dodW4rMHRodytodGkyZy9wZVdrU3RZMGRYNnhNZ0lpdi9RVjdJdTFSSDh6SXFId0ExTjFucHZ1QVc5SHBvSEwwZDFrNVR2aHJhbHNSMkU1T0ZuSFhXUWo0RWJqai9zZlVpb21BaEQzaWZLbnFEUSttKzJDNzBlbkkvZWp2MUlrMzVhbEpmRXR0OGRwWkh2ZjM3OTQ5bnZXUDVaeVVBS0RVb2toYTI3RVpaY1FQcGVMdkxOT1VodGltMjQ2MWhWZlFPR0RBZ1RuekJrMDl3UTQvNjlPbEROOTEwRTkxNjY2MmE4b1liYmlDeHpiTzBPdnNFejZKSkFxRWt2YkZqeDJyS0VTTkdpRzBacytyMGhqQ0QwdFBUTzZwOWdrL3VKVW1RcjczMkdrMmJOazFUdnZMS0t5UzIrV2dUcjN6Q1lvMm1wczBIa3dTWEMrTEdhMG0yT1lyRXRzVlNkWXc1V1ZmNkJFOG9xdmhFVUhBMHRXNHptRG9sanFhRTVQR2FNcjdMS0JMYlZxdG52WDM3OXEwU0o4SjRFdDBsZFFiMTdMZUhlZzNJMUpROSt1NFMyMXhXYStmUkowQkU1dllNZHQ1QnZFUDFWcTVwclFGQWVpQXZxVFA0ZnViN1JCc0hoMWdpc2dnYm1WN3JEei84RU5LMmJkdUxaUEQ1ZC9icVRTL2ZVRGVBUzBGQjRndUdUelNjM3BTVWxMYmlENFpQR0Q0UkNIRUNSR1RpNVdvUUgyL1FsMy9oQ2hZL21QLzlJTSthUHVhbTNrcjVFRnFTYlM1bjJ4K0lCdEVpbWtUYjh1WExyU0phMk1qMENpMERCdzZNNFo5ZHh2NDhoSS81ZmtRdmV2bE83SUZYWFhWVnRHaGttZ3lmMEVTdnlmQUp3eWNhZFp4UW5FTEl5NmVvbUppWWkvbEMvU3ZrZzBsV2xQOUlQb1NhbkNucmxhN3ZMemJGdG1nUUxhS0paMnlSaXM1R3FsZG9sc0huMzd0UUwzclpJZEp2dWVVVzBXcFdkQm8rMGVCNnpZWlBHRDRSQ0hFQ2FzZGcwU0djYmJyeXhyYkwrUHJOeStWREtwUTNhVWlxYllsdDBjQW5oZlpraEN2NkdydGVaWGFSbUpqWW5KdVBIV0pqWTd1S2t3aDVhZDJuSWFuWVladHBZanN0TGEycDZIRjFDTU1uREo4d2ZLS3VOSHpDelRsNHVkU0VNMk03L3FDcC9FSFR1Zm1vQ2NVVzIwd1IyNkpCSlRhUTlDbzBxMmpSaUdxYkpoZTloazlvb0RjQVlQaUVFU2NNR0RCZ3dJQ0JlcDVWQ0czYm4wMWg5dEtZaVdvTmdheFhEL1RXSjFhdVhKbkNtOTU2YVVtMmVkWmp2R2ZQbmhSbUw0MFpBRDZoNnhqVmxObWJlUnR6QW5NS2N4cnpBeWVuT2I4M3dmazdmZVMvUVlQRFNCcG1XOGJraDIwWmszSnN1LzVGOWwxUGFrcmJ6bitSMkdZTm85WExwanJwM2YwczJmYzhweW5GcHJkNlhaYWdWbzFwRWRhbGpxbld6RStGUEx4czJiS2NaY3VXMHJKbFN6VG1VaExicktIT1k3eHIxNjZIbVRrN2QrNmdIVHUyYTBxeEtiYVpBZUFUdW9oTnZaZ1BNZWN4TStuc2tTbnY0WHl2WHZBZEJ0Uk5HbnZHcEptT1B4OG1PbkE5Y3lEekVvMHBObThpMFNCYVZFNXQ4cWczY3lyUnlVbEVlWTh6SDlPV1l2UEVKSEljbkZvWHZVcGdDR0lHT3htaU1SVzdvc0hxcnRkZE13ZnRtVXVXL0V4OGJJVmZ6bUFTbTdObno2SWxTeGFSYUtsdGpEbG96L3pqajYyMGF0VktXcng0RVMxYXBDM0Y1dXJWcXlnall4dUpsa0R4Q1kxajBvM01yNWhaNUFJKytKSTJiOTVNOHhjc29BOC8rcGhlZmUxMWVuN0tWSHB5NGxQMHhKTVQ2WmxubjZPWFhuNlpwazkvajc3NTVodGF2MzQ5NWVYbFVUWElFaHRpQ3o3Q1NCemJueDdxMlBzSTBZSExpZlpmNGxlS0JzZmVSMGswcVozWlRlK0JLVVI1VHhMbFB1WlhpZ2JSVXBOZVpoQXpoQms2ZVBEZ0RyemplSURXNUYyMy9hKzk5dG80MGFEc2RsYnJyU1p4REYyNmRCRjkrZVVYZmorNFR6U0lGdEdrMXV5U09JWkswRjZ5WklrRWNuOVNOQ2dKeEZXdnViSDVoRWF4cUNmejM4eHRwTUtPSFR2cDA4OCtwd2tQUDBwL3YrRVc2dDMzSXEvNXR4N3BkUEhBeStqK1ljUHA3YmZmcG0zYnRwRUx0b2x0WTBYaUJWUk9IR3pQbUxpVjl0MUd0TzhTZlhEL0hSeU0vN1ZHdElsR2hWWDBIcHRNZFBKUlhWQzBlTkJyZFg0dmxPK1l2dDVxdGE0SFFGZjJQSTl1dmVoOFRYbDV0K1lrdGxuREtuNldlNGhvVXVrMXUvb0VsNHUyeXFtdkVyejF3TGx6NXhCcjh1Z1RmR3o3MWw5L1hTM0JXeGRjdTNZTnNTYVZYblhTY1BlSnJsMjd5bEVzbWpJMU5iVkduOUFnQmcxa3ppTVZ0bS9mVHErK1BvMnUvY2VOM2lRSkw1SkpiN3F3VDE5Ni9QSEhpVSsrSmhlSWxvR29FUWJNVEJQVElxeXcyWktCa3dDUlB1aklRMmxwZVErblRvdEtyN1ZTcjdrY0lPaUQ1Z3BQZWkzYytBM21zNW5lNXZzZTVzMTRvbWZ2c28wUDRic1pJL0hWaC9kcHlwKy9HZzJ4UFgxODF3Rjg2OTVQL0FqaFM2SlRwUlZxbitBVGFwTkxTa3FoRThnZDNYTEhpRWVmc0xGUGxKYVc2VWh2dVdoVzlGYWgyaWZHalJ2WCs4Y2ZmOFFiYjB6REN5OU0wWlJ2dmZVbXhQYXdZY004KzBUREpJMExtZDhDV002OHZxU2tCUCtaOFYvY2VmZDlHRHA4TkdiTm5vUGp4M05BUlBWT3VXWFNBUXVXclZ5RHUrOGJoa3N2dTV6SC9nMjVEd2FpUlRTSk50R0k2bUhBT1FNS1pTZCsyWjd4R05IZVM1Z1g2NE4vWGtHNTZ4NGdkdVlwUkJTbXF0R0dWZXJOZVVRL1BQNVlUWHJmQWtDN1o5eEE5ajhmOG10UHliSC9Sckx2ZlZpMEVBQkZieWd6eU5VbkZpOWVySk5WaDFLNitwTG16NS92MFNka3hxcVhWWWR3NmRLbHRHN2RPbGU5b1dxZmVQZmRkN2xQSWoybHIvM2NVL3BadExqN1JEM0R1YXI1bUp3b0tDeWtEejc4bUFaZGVRMmw5eG5nTjhwcUpDVzFLejMvL1BQU1Z5RVZSR3N3RExqL2orUzZaem9BbXozakVhSTlGK3VIZTYrZ29nMy9RNktOZDJTbUVWR1lVSTRGcnRSNy9HSDk4TmlqVkxUeEFUZTlmRVJDWHdEMHh2OUxsYUN0bDU0U2EzbEVOS24xQnJ2NmhBUkFmU1dQTDJqQmdnVWVmWUp2NzlOVjhwQyt4NFlORzlSNlE1bmhYQ3JxSjVjQjNYdnZ2YVMzbnBKb1V2dEVQY2ViVzVnN21NU3JXdnJzaXkvcHNpdXVsT0N0RzZaMTYwa0pDWWx5d2pIeHRjWWtjR3ErR1FZcVlSYnlCZjJqQUZnQUFraGZETElRUk52T25UdkhLNldLek16TVVmeUg1OVFMUFpIMXdrMHZqKzhFMW91aE42ZkRiTTRDSERaLzZ4UU5yT1VJN3Z4N040aEduckdQVTBvVWFwOGdJdmdLS1FVSTZ3bXMyK3pSSjRpb1hpNXdFdFlYNU1JbFY3MTh0L21EWUZ4enpUWEl6eStFM2U2QXZ5RWFDZ3FLd01mSnUvaEUvVUJtOEFCbU1aUFdyOStBTzdnODllNi8zMGRSY1RIMGhORFFNRFJwMWdMVDMvOElmRHlIY3BsWEVuTzI4ek1vTUhvZVBBTVlCQUU1bUtnejkyV1c0ZWRWZWJYeTE5OEs1WGRoczNrZjdNMXdLTFh1aTVVYU44OEdydmhMTDlXWit3NndudVVIYXVXdkc0N0k3OEpXWWZjNjJabE41S2FYQTlGRllFUTJid3BkOVpRb0R6SG5OVk1DNXFXaWxRbTFUeENSejRuajZOR2pPSExrQ0U2Y09JRjZnd2VmSUNLZkU4ZXBVNmVFS0M0dWJpaTlKdTdOaUUrQXp6dUMzbnBLelpxNStvVFBTU09XK1NPQVlleFhlUDMxYWZqbmd3L2pVT1loZ0VpdjVIRm9qdWdtelhISG5YZmh3UWNmQlBzWUdNUGtzekJqQVJqSncrRndPQWZDQVcvUXRPTklEQm4rUjYxTUcvUTFxUGxRL0xaTGFrMEViMkJ5YWlLaTF2S2xrSWdVdlY0bG9xWnQvbzRodDgrcGxXa0RYZ0JGRE1adkdZV2NRTHl6NGFxWFoyOVdJbW9KK2NKc1ZsWWRPcUdOOVJJRTdBT3RvRUR4aVhvSXh0d01CcC9wQXo3VFJ3S3lKSkg2bU1GNjhBbmY5ZWJtNW9Mci9VSVVGaGFDOXdmVXUxNStkRGVJeDdlbHNvcXkyKzNRQzlRcklQR0pldmpzaVFCV002L2taanhHakI2THI3a1I3aUFDQWJvbnpHYkV4blhBbkxuendSY2g0Y0NCQTVEUHdsd2puKzFjVHg0Q2k5TjF2Qm5aT2lPcWVTSTY5UmlMcEVzK3hONURGaTl0VkRxelZRa1VWZlZTWFZsM3ZVMDdvRlBhYlVpNjhDbnNQVkRteGZzTDdWWDB6cGt6SitLdmNWWldTdEFQM2NkWGdhVStnakdmemluM05NdmR4K0RIUUdYMmhxeXNMRjhEa2dlZjhGMHYzK1FtVCtLQUx3OEMzNnduczI5SklQV3AxenhyMXF4d2VYWFZxdytRKy9qNjhEUVZnTTNNZGl0Vy9vTDdobzNFenAyNzBCalIrb0pZNUJlZVJvOGVQZkQ5OTkrREVjZmNMSi94SEU4ZUNoeUFnK3BPWXNLN0pCSVRQOEVyRzZKSm9EaXhiM3JoRlNTSnhMUzkxVmU5eWhnclpUYWQwVkZyNFBNRmZDdWFCR09aWWN0TVZyNkdsQzU4U0NCcVRhYjYxaXRsSk43dm9PaVZWWlBQQ1lTSVBQcUVubnBLOWFtSmlBWUFXTWNNbjc5Z0laNllPQWxGUmNWb3pJaHAyZ3l0MjhUaCt1dXZCeitoQmtZNGM1M3pzeHJKNDJ4WEhrVTVtNER0RjdsejN6RFlUKytGZ3ZQYVhlYUZEZkpVU3ZOZDc2a2R3T0VKN2p6Mkd1eGxXWC9wYmRQYlM3MU1GZmpaZFFzcW9iK2VFa0FOR2tna1VmRDlBREtUbDhheEJHWHc1VEkrSlJBaWFqQzkzSXVRaEZHcGxadndVbkx6S1lFUWVmQUpuZmFVaUtnK0VzY3FKajcvNGorWSt1SXJNcTRnb2tiUGlJaElKQ1ozeFdPUFA4bTltOWZoeENyNXpPZDI4aUFIRTk1UkRhcUdwWHVSdCtkL29jQWFIT1dsRGZmazRkTk1YZzBpZDU3SlF0N0JyMVI2SStwdkprLzY2eW1KcG9aT0hsS3E0bDNVRXBDaFFFa2dFdlQwbGp3a1VValRXSktIQWxVQzBWNnY5ajBsWDNzYzN6UHg4U2VmNGUxM3B5dnZGekFJNFJKc3E5WVg0SkZISHNGTEw3MEVKNzRub2lTamJIVVdaU0NIQThqTnEzQmo1cEV5NUJRMmh3SmI2Vkh2eTBBZUlYcFJkN3JxelMxelkrYmhJdVRraGYybHQreWtkelpRWS9MUVUwOUprN0lWRVNtN3dzRTNsU0VrSkVSbTh4RHdOWmRuazBBYVhLOGtDVWw0ZlB1YnJKZ1V2ZksxSkJkSklQV2lTZmM5SmUvL3U3WUFsakNqdi8zdWU3ejN3VWNJVkFTekgzZEpTc1hFaVJNeFk4WU1NS0taaTJVTXpzbmtZZktoWVc2MlJtSmZicEliU3lOdlJrS2Z4NkhBV3ZDVFZ6WkVreWVZZkdpWW15MWgySGU4aFJ0TGcvc2hvZWY5ZitrdDNlaWxEVHM4dzY2dm5sS3RlaUYxLy9vSVJKSThwRndqSmF6S0hnZ1JRVllra2tDT0hUdUd1a0kwTmJSZVpjVWtzM3JwZ1NoNlpVVWlDYVNnb01CM3ZicnVLWGwvUmg2QXo1aHRsaTVianVlbnZnVFJRMFFCeTRqSUtNUjNUc1I5OTkySGhRc1hndEdHK2JtWDU0RVpQWStvRm9sSS84ZW5ia3pzL3ppc0lWRVFITjgxQTBYN1B2VFNSc1AwUEtLYWRVRDZrQ2x1VEV3ZkRpbFZRZlR1K3dGRldRdnJUeS9wcmFmVTRHVXJtYlZMRUpGWFNSNVNvNWNadkh5dDlCU1VFcFl1WnZKcXZaSThoSHlWcVBLenloS1dKQkRmb2YrZWtoZjRtSG5adnYzNzhkeVVGNVhIandNZTBVMWljSDZidHVCZCtlQkhzTUc0Vk1iaUhFMGU1QjI5UUZCVUFuWm10NEhONW9VZENOWFE3dW13b0lnNDdNd01rODJDdnBmWnRPc3A2U3A1S0VHWGlDQ3ZzdkdPYjlwejJ6RWVGeGVuaStUaHFsZFdUSzVsTmZtK1BNYnJ2VjU5OTVSOFNJQzNBeGdxNWNrbm5weWtiSzQ4WjlDeTFmbmNCd25IVFRmZEJQRVhHUXNpdXVQY1NoNCtsSzNzWjRxQW9pMXVsT0Ntb0ZtYmRQUzQ3bE5rNTRaNFlhUG1NdERaQ3JaWG5CWnQ3aXpQK2t0djYxVDBHUHc4c2s4NnZMQlJzMTc5OVpUc0RabzgxS1VMbWEzTEppdDVWV2J4OGlvMWV5a0g2U0VZSzFxRk1ucytmdnk0dkZiUkszMmJxS2dvNy9YcXRhZmt1NllubVhqanJYY2dLdzhpT3VkNFFXd2MrT2g5U0JQZGlTZFFOeGhQVzVYazdRYjJqSGZuanFIQXdhbFFJQ1VzYW5hMXJ6TmozL1htWndKWmI3bnowTXZBOGY5VWVkcUtvaTcwd2daNXIxZjducEttWlN1QkJPQ0RCdzlDZG03TFJqd2lncXc0Sk5qSjEwVkZSYnBaZVNoSkx5Y25SeHJSVXJaUzlFcDVTTDZXWUsyMVhnMTZTdDVySXFJUEFIVGR0SGt6Wm44ekYrY3F4TS9iZGVpRTZkT25ZODJhTlpBeGtiRkI3VENldGdMVjhIc252a2RCOWtZb2FCbzcwT2N5a085bHF4cCtMMzhkQ25LMi82WDMvRjVldkg4TmVzbXUvNTVTQXpTZ0pYSElpaU04UEx4eWhTSEJUWUtjbEgvNCtHc3B2ZFR4L1JxMEFhMThabGx4cUZjWW9sY2E1N0tKVVBvMlhoMmNTRVFCMDFOeStiMTBBQ05sSmZuYTYyL0sxemlYMGF4NUM3UTRyeFg0YmhhbEp6YXl0cHNKamJLVkFxcWVSM0xPd0d5TmdnS0wyVlJIRzdXV2dYenJ6eEJWeXlQSGl1VnBMTFhlK25uYWluVFlVeUpIZzVldFpNVVJFUkVoSzR6S29DYUJXWjRNa3NkZXBld2kzNjhieUlkZzdQV0tRM1FwS3c1SkhGTFBsMERzUWEvM21zU2VibnBLM210Nm1va1ovLzBhdTlrbUVaM3psT1N4ZGV0V3ZQUE9PM0RpR2RRTTQya3JteDNZdUwzWWpiL3c3dWU4NENHSU9pOFJDb0lyL3ZUejAxYWlsN0R4anh3My9yTHhLUExRRFZITk8vNmwxNTd0KzQ1NFhmYVVHcnpuSWVVUzZXbklDa1BkTTVDdjVSQkNkU0RXdzB4ZWtwbXNpQ1JSS0hwbHhTR0pSQUt6MHEveFJxc3dVSHBLNnQrNUdzQTFzbXI4aURjREdxaTZnZkNaWjU2QitMZU1rWXdWUE1ONDJrcktLdkdEUG5KaitwMC9JM1hRVktoaHpabFZ4L2V1NzdKVjFVZDE0L3RQZG1QNjllOGo5WklIcStyTlgrRjdtVTMvUGFVR0t3TkpvaUFpSlhGSUlKUGQwRkw2VWI0dnI3cVp5VXZpSUNJbGNVanBTbm95eWhFYjNvNkxhQXFZbnBJS1k1VGpSNHJsdllrTU9ubGV5OWFRZlVCOG1aUjZySXlHdVpvQ2RkQnFGdHZialdIUmJWQUZmMDRCeXJMOTNqQ1hSbml6QzlMY0dCYlZFbFZ3NUF2Z3pLbjYwNnV2bmxLREo0L09uVHRMZ0JOS3owTUNtZlE0SkhGSVVGV1hYSFN4OHBBbmxFU0xrdWhreFNGOUJBbk9hcDNhNjlXcXB5U2t1cHlXZTIxQlFTRyttVHNmQkJoVTBXSzFTZ0tSNXJteW1mUmFHVE9qYktWaVZKZ0ZkWVpzWk52MU9KRHpmVDBlM09kZ1VwMFpGV0ZGblNHSEl4NTZEOGhiNiswVmZWQkQzejBsTkhqWlNub0g4c1NQUEVhcXJEZ2trS2xYSEFyMUVJd2w0TW9tUU5FcXMzaVpzVXVpMDZ0ZWpYdEtDa1l5TVhmZVBBOHJHZ1BOV3Z4ZjB2N29vNC9VWTJZa0Q0VkJwMzRFTXNiVnp2V0RnTi92QlU3OUFoRDh0c004cUdnRHNIOWE3ZHp4RUxCM0tsQ3d0WDcxa3M1NlNocVVyVTZlUENuQlMyYnY4Z1NUOURnOHY2Y09nckZjQUtWc3ZKTS9maWxWYWE5WDF6MGxNNERoUklRRkM3L3pVTG94R0JvU2l2Q0lTSHo0NFlmS2VNcVltUVA0YkN2dlp2SW9Qd29VYks2ZHRpSmZMdHVHSjVpODdkR1Vud1NLZDlkT1c4bFpPNDBKQkk4Z1hmV1VGRFpvOHBCWnNNeE9wZG1zMU9IVng1M0xxMEs5bElFazBhbExWY3IzWlphdi9jcERWejBsd2MxTWJOcTBHUWNPWm9JQUR6UW85My9zM3IwYnYvNzZxMnJzakpXSGRuUk5IbzFaTDlsMTJGUHlvbXlsRXhDUm9kYy9QU1hCVFV3c1dyTEVXR0hVd2laTllpQ1lPWE9tZXV3Q09YbVlkQlNJM1lPeHJ2V1N5VjJ2N250S3RaZXRKUERvQkhYU29pTzVvaVZRZWtwS3llcFdJc0t5NWIvVTRsb0dyVUhCQ0FrTkExOUZyWXlwakowNUlKT0hvNndjc0lUb1ovUk53WERZS3VBSjlnb0hZSUorWmh1eTI5ZnVmYzlEdTU2Uzl6MFBtY0ZhclJib0JSYUxXZm9RTmVxMVdQU2sxeUo2QTZXbjFJdUpuVHQzMXZIV1FnTlJVZEdRbXg0ek1qTFVZeGg0eWFNc0p4K0lQQTh3bWYyZk9Vd1dJS0lGVGgvSmd5ZVVGd0FVekdTOTVHL0ZvaUhJaE5PbkNKNmh0NTZTdzBuUGtINkZ6Rzcxc1BvUURhSkZ5akkxTmJ6bGlTbWQ2SldkNmFJM1VIcEtBNWhZOCt2YU9rNm9ESWFIUjBDd2VQRmk5UmdHWHZMSTM3SVBkQ1liRkJrSHNqWURtY05BcGhCdEtUYkZkbFJiVUVVMlRtNDlDRS9JTzJnQ1NuWUF3ZUVnU3lUSUZNeTBha3V4YVlrQ1FzS0IwZ3ljT0VDdTE1cVN5OHBEWjZ3NWVjaWRFUG41QlZ5L2paTEFMWnZtSkRocFNyRXBUeFRKbm91OHZJSWFUNGs5ZlBnd0I5TmloSWVIU1JKUkFxbW1GSnNoSWNFUURhTGwwS0ZEN2o3Uk9IczBBNWpZOWtkR0hkM0xZQ2ozb1FTcXBubi9nRXdldHFKU25GeXpDMlE3QkVRM1pjWUJVZTJZY1JxeEhjU21LVG9HVko2Sms2dDI4T3FpRko1Z0t6UGh4QjRMcUhRalRNRmxRR2dVczRuR2pHVGJwK0VvM29nVHV5d29MNEVhc2xmQURnV2t0NTZTcWRia0lmWHovZnYzYzVuaUZDY1BPYllqMnNrb2pSZ3RTWU9Ec1ZWS0phSkZUcEN0Vlc5QmdheEFySWlJQ0dkR2FNeHdYbkZZSVVsMzM3NTlybnJsaVNnN0VUWEdubEpQSm5idjNpUENEZGFCd2R6M2tBbkZ4bzBiQTdKc1Jld3dwOEU0VlFLVVpwMUM5bmViVWZUN3J6aHpmQ3NxY2pPWTJ6VmlCczRjK3gyRnY2L0YwVzgzby9SSUxrNVhRTUVaVloxRjlDSzMrQXhLYzgwNCtsc1FDdi9rL3o1bkRXd25WMnRKSHFOZjJmWk9aRzhKUW1tZUdhZkw3V3E5ZE9XVlZ4WTcvdzFiT2IrWTlkVlRzdG1xNm1WQzVSTVMrR1NYck54VndOekZPNWtQOGt6Nk1ETkxJeDZXVFhCc2U3ZG9FQzNTMS9Eb0UxTDdsektSMUpoMzc5N0xLNmNqeU03TzFwU0hEMmVKYmRFZ2VxVVBvZFpMMTExM1hUR1ByL3hiZnFhM25wTHIrSkl6eWNVQWlKT3k0TkhzWTE2NG1jR1FrRkJaZlNxN3plTmtMQkVJSUtKUUxndGtBS0FQL2dIS2ZFUmZuSFkxU0xSeDdYZzlFVVVKdVJ5UndYOTg5UDdJcm5Ud25jdDF4Zis5TjZXSzNpMWJ0c1FvZXZkL25FaU9EVGNTL2RLWGFHVnYvL0tYZnVUWWVCTnQvM2RudGQ1UVY1KzQrdXFyYWZ6NDhicmlvRUdEUFByRVhYZmRSVk9uVHRVVmI3NzVadEZMckZIMFJtL2F0S21KNkFWQVU2Wk1vVGx6dnFIUFAvK2NQdnZzTTc5U05NeWQrdzFObmp5NU9wL293NlNOR3pkUlNscDNMMmlRcjZvbEFMUisvWHB5b25mQXJEeDRHYjBhakJkV1FtYjZ1a0daRFhoN0hRUlM4MTZsekRLNTlyNkdpUERpL0wweTA5ZVAzZ29IM3ZuNVFCVzkzYnAxcTJDOXEwWHYvYThkaEwzd0NDaTByZjk3U21HeGNMQ1dmMDdQZ29BMXJsQ3ZQQlNma0l0dFpDYXFGOGlUU3h4OFBmckVUei85cE16MGRRRVp1eFVyVmloakxIb2RQWHYyck9EeGxYL2owMDgvNVQ1T3ZwNTZTc3ErQkZlZjZNREVvY09Iak5XRWw3UmFneUNRODhlVXNReVU1T0hnalVYenVDNlhkVEFmZU9BN29LZ2Nmb2VVME1Zc0JQYm5BcUtOeituNUNZQmR5RHRxLzAvdmlWSTgrRmtHaWtwdDhEZWtoRGIyNHordy8zaUpxMTRIWDhiek5YL3Z4TXFkWlhodStoN1lDdzRBd1UyQThMYk1PSG5WaUdJckZoUWN6U1hDZlpqMDlpNHMvYU1Vb3JkdDI3WnpSQ3NUYXArUXBmYWlSWXQwRVpDbGhDYkpRYzVyOHVRVHNzOWgxcXhaa01kWC9RMHBvWDMxMVZlUXgybEZHOS95OTdQaUU3dzNZNmI0aFBSRVpzK2VyWXVla3R4ajh2WFhYOHV1Nk9wOG9qV1RkWjZFQWU4Z0J5VUtwS1RweEFXQlVyYXl0bS9mL2tJT0ZxTjUyWjhQZ0ZwSGdoNFpBUHJtRHRCMzkyakxtYmRCYkZQemNKQ3o5bDdJUVdKNFFrSkNMeUlLRm5icTFLbFBGYjB4SWZUSWRmRTBlMEpQK3ZheDNwcHk1Z005eERZMWl3ejJxTGQvLy83eHJIY3MvNndFQUhWckYweUxuNG1sbksrU0tYZDJxcVk4TmlOSmJGUEMrVUZWOUE0WU1DQk9mTUdUVDNBam1QcjA2VU44eVQvZGV1dXRtdktHRzI0UTI4U3o0enI3QkFkRUtXL1JxRkdqYU96WXNacHl4SWdSWWx2R3JEcTlJY3lnOVBUMGptcWY0Tk44cFNSSGZJdzNUWnMyVFZPKzhzb3JZcHM0QWRma0UxT1k5TkxMcjFCeWFqY3ZhTERWK1cwSUFFMmFOSW1jZUQ1UWtvZTVQWU9kZHhEdlVyMlY2NXhyOUxMaTR5VjFCcy9XN2hOdEhCeGlpY2dpYkdSNnJULzg4RU1JeitJdWtqOUkvcDI5ZXRQTHQ4d040RkpRa1BpQzRSTU5wemNsSmFXdCtFTWo5WW0zbVBUVXBNbVVsTnJOQ3hwc2ZVRXNBYUFISG5pQW5IZ3pVSktINmYzMzN3L2lvdzM2c3ROY3dRNDltUC85SU0rYVB1YW0za3B4YkMzSk5wZXo3UTlFZzJnUlRhSnQrZkxsVm5Ga1lTUFRLN1FNSERnd2huOTJHY2U0SVh6azl5TjYwY3NsdFlGWFhYVlZ0R2hrbWd5ZjBFU3ZxUkg2eEhRbVBmN0VrNVNVOGpjdmFMQzFjK1V4WnN3WWNtSjZ3Q1FQWVpjdVhhSmlZbUl1NXN2enJ4Qm5sNW1TT0pJNHRwbzgyNnRYdXI2LzJCVGJva0cwaUNhZXNVVXFPaHVwWHFGWi9pRDU5eTdVaTE0T0V1bTMzSEtMYURVck9nMmZhSEM5NXNib0UwcnllT3p4SnlpUkE2TEJ1ck5sNndzQ00zbW9nd1U3Y2dqUFFMcnl4cmJMK0NyT3k4WHhGWXBqTlNUVnRzUzJhT0JUUW5zeXdoVjlqVjJ2c2dwSlRFeHMzcTVkdXc2eHNiRmRKWEFJdWR6U3B5R3AyR0diYVdJN0xTMnRxZWdSS3ZvTW4vQkV3eWVVc3RXVEUvOUZpY2xkdmFEQkZ1ZTEwcUJzcFpNa3drdm9KanhiYXNmT244ck9uODdOUjAwb3R0aG1pdGdXRFlxZUFOT3IwS3lpUlNPYUZhcTFHRDZoZ2Q1R0RxVmhQblhxQzlRbHVhc1hOTmkwV1FzTkd1WUdEQmd3b00va01ZRko3Nzc3YitxU2xPWUZEVVpGTnlFQThtUWJPVEVoVUozRXBQQzVMRXBoOXRLWWlXb05nYWhYVC9UV0oxYXVYSm5DbTk1NmFVbTJlZFpqdkdmUG5oUm1MNDBaY0Q1QlJIY3dpZmZRR0FuQlM0YUdoaEVBNGowLzVNUWRnWm8wekU4ZnBvY25INmFjSjQ4UVBYWlVXNHBOc2MwYVJxdkxLM1hSKzJ3MjBiUEhpSjdSaU04S3M3M1g2MUtxc21wTWk5Qmp2OE9EWm41UzZPRmx5NWJsTEZ1MmxKWXRXNkl4bDVMWVpnMTFIdU5kdTNZOXpNelp1WE1IN2RpeFhWT0tUYkhOREJpZlVJNG5XYmR1SFNVa3BYbEJnN3poTXZDT0oxR2didHhOT2t3enh4d2pTajVCRk0yTTFKaGk4Mjg1UkdOWmcyaFJPYlhKazk1bmNvbEdseFBkYVNlNlEyT0t6VEZsUktLaERucVZ3QkRFREhZeVJHTXFka1dEMVYydnUyWU8yak9YTFBtWitOZ0t2NXpCSkRabno1NUZTNVlzSXRGUzJ4aHowSjc1eHg5YmFkV3FsYlI0OFNKYXRFaGJpczNWcTFkUlJzWTJFaTJCNEJORUZNTWtQblNTT3NRblVFSmlhaDFvVU1ZS2dGREdqcHlJQ2J6RWtVVkR4eDBqYWlHQlBNZS9GQTNqV1l0b1VqdXpxOTZuVHhMZFl5TzYzYzhVRGFLbEpyM01JR1lJTTNUdzRNRWRlTWZ4QUswWkh4L2YvOXBycjQwVERjcHVaN1hlYWhMSDBLVkxGOUdYWDM3aDk0UDdSSU5vRVUxcXpTNkpZNmdFN1NWTGxrZ2c5eWRGZzVKQVhQV2FHNXRQQ0lnb2swbTlldmVoem9tcGRhREI4OXUwSlFERW15N0ppY3hBT3BMZDVLU2x3b0VKbTB4QW1RTUErWmVpNFRmV1luTmdwR2h6YWpRTDFYcFBoZ0g4Q3ZpWm9pRTN6S05lb1VYSXo5TmZ4VHVnVjNKdzJaL2ZKRzdWNlF0U05HVmhkTnZWMzMzM1hTWnJXTXdPUFZEUnBmSURxSDFDbW52NStZV3cyeDN3TjBSRFFVRVJpTWlqVHpnY2pnbHliRGkvd3M4UURYTExuN3lxOVNxMFZPY1RjbmdpYjliVGxIenNTMTE4UXJDWmlhVEVMZ0JSSFdpd3RLUUVBajZPQms1c0NyVGtZUkdlc1ZVazd3ZUQ5TUhEQUVyTFNub293VmVsMTZyb0xiVG9SMitSMmFOZUN6ZCtnL21QOUcwK0hHMWU3OGtmOVg1NGR4bnVuNzhZZC94M3JxWWMvdDF5aU8xdUQwMGJ3TGZ1L2NTUGxiN2tFb0JSeFNmT25Fa3VLU21GVGlBSEhzb0JpUjU5d21hekpaZVdsdWxJYjdsb1Z2UldvZG9ueG8wYjEvdkhIMy9FRzI5TXd3c3ZUTkdVYjczMUpzVDJzR0hEYXZJSndXb21ldmJvWHNjL0NZTWxKY1VROU92WEQwNnNRYURBdVVRTlpTZCtlVUltVVdRMlVZUk8yT29ZMGRpTWZHSm5ua0pFWWFvYWJaaWk5L1l5b3R0MHdydExhOVQ3RmdDNmFlNDJHbjJNS01uUFBTWHBhNGtXQUlyZVVHYVFxMC93M2N2cTBwRU9TbGRmMHZ6NTh6MzZ4UGJ0MjZWa3BCc3VYYnBVbXN5dWVrUFZQdkh1dSs5eW4wUjZTbC83dWFmMHMyaXAxaWNFMHVobDB1Ky8vMDd0TzNhbVRnbkpCbXVnakpHU1I3WnUzUnFRemZKZ3JudW1BN0Q5TTVNbzRxaCsySkw1LzNZVWsyampYYnBwUkJRbVRFNU83cTNvdmExVVA3eXJoR2pNVG5lOWZHeEdYd0RVOVg5ZW9ySFordWtwaVJiUnBOSWI3T29URWdEMWxUeStvQVVMRm5qMENiNjlUMWZKUS9vZUd6WnNVT3NOWllhbnBxYjJrOHVyN3IzM1h0SmJUMGswdWZxRXdOa0RJUzdEVVZyWGJrYUNxSVV0em10TnlvbkpNbVpPbUJFZ01BdjVpc1JSQUN6MmVpaFpVVjR1SEFmM1ZaSk81QUFWdHJON0x3QjJpeFdpYmVmT25lT1ZVa1ZtWnVZby9zT3JGNzFuY25OUnZHOWZKY3R5Y2tCbnFWZm9xRVl2ais4RTFvc2VkNDNBSnJOK2VrcGJXRXZhemZkQU5QS01mWnhTb2xEN0JCSHB6Mm5OWm84K29VZTljdUdTcTE2K3grTkJNSzY1NWhyb3JhZkV4OGxYNXhQZzhSV1JzOFNYTDc5c1lDMHVackM0dUJDQ0cyKzhFVEptenJGekJGVFBnK3ZhNGkydys1STBEbWZDdm1vcEJtVHZ3OFJJcXVRMStVY1F1V0VsSExzeXppcUoyR0ZXYXQwWEt6WHU4dkx5S3hTOWRKWThuWm1KWTh1WG9pMG51SnVzVk1uVVkwZFF2SG9sOHJkbndNRjZ2WHBmRDNyNU5ybUx3SWh1RVlNRGV1b3BNV05hdFlDQU5WNHFXcGxRK3dRUlFhOXc5WWxHcE5mRXZSbnhDZkFaV05CYlQ0bWI2SzQrb2NZOEp2aHFYWndwTHpPYTRoNG9ZMU5XV2dMQmJiZmRCaWZtTWhGUXlZT1hWTEZnMkpnZzd5bUpZYXkxRk1kdXVBUS9YNTZPcDlJNlZYTFd4ZDF4N09iTDhYNzdwb2pjdWtHdWcvTXllVlF1bVZ1TFZpRVIrYVMzZ0JQREVGc3B2aHQwQ2Q3c2w0Nzd1M1NxNUpUZTNmSDlWWmZqZ1paTlViWnBBK3dsdnVubDJadVZpRnBDdnJCYVVPclFqNDlYQUhDWVRNcVRRYTJnUVBFSm5RWmpJdkxvRTQxQkx6KzZHOFRqMjFKWlJkbnRkdWdFNmhXUXEwOG9tS1UwZ0Z1MWJHR3NNRHl3c0NBZkFpNVpneStEZ3hPekF5MTVDQ3hNMk01aWxLUTBKWW5oMVo2SmFCSnNoU2ZjMDdFTjFsL1dIYkg3ZDNqei9xSkpnVlVKRkdxOTVDV0w5dS9EQTYyYVlueHFJaUtEUE91OUtxNE5QdWpUSFNHN2Q5VDV2UjNWNkowelowNkVqTE42cFFTZDBPRVFUVzdqcThDaTkyQ3M5b2xHcE5mTVIzeUV5NnMrOVZKMTR3dVgwdFhIL0lyYmI3c1ZkcHZOV0dtNFVNYWtJRDhYZ3BFalJ5b2xLeGt6UjhBbER3VjJKaHhla0dmbEU2TUk5OFMzZ1JyL0tRWmV5QWZlTFFReWJhaEV1OGd3ek9xVkFEcDZwTTQyN0NxL1pjSVh2ZmJUcGJqRlNwREVvTWFLQ21CMk9mRDlHZUNFQTVWb0hSNkdaMUlUVUpybGcxN1ZHTnRJWHowbFJaTm4xRTl3azN2UXQyM2JCdTVMeUV5N1BvT3hxU0gwU3VtR2V6NlErOUN0Vm12OTYxVjhRdi9KemhNK1pHTDQ4T0VBMlZFVkJwVEV3U2NyZzY4ay92L3NuUVZNSmNrYWhUOWtmRmdGeHJMdTd1N3VSSjYvZFhkM2QzZDNkM2QzOTJYZERSYVhLOWpsK3V1VGwwcW5jNWViRHJlSExhQlA4cTlNMjZrYStFLy9kYXFxUFgwMjVzUmp1TWx0b2E0V1RsbGxTUXdhVWpuV2I0RUR1a0RpY1h3RVZtZ0NpWW5CeWd0VXNjdkVsTDlFbVMrUzNFemxrZk1mMDl0YjJITTVsMjlISnNleHZYQnRQenlVZ0RzRzRLQWVlQ09GQVV2Tlc4WEcrWlRmWnhUd0hSZ1lxRUN3MUZQS3pXWHg2T3JxSWhLSnNQamlpK05NVGVYbm4zL1dtMWhBeVMxNHZuMTlmVnJZaC9OUkpKd3Y3TkhTMGlMRE8xQysrcGtZcGVKaHFvOFBnV2VVSFAvN24zL0pHMEZYaElINmdsaTBHOEg1K0pNOExkUlg2ak5jaE9KeGNNMWtCSU1EdXN2NU1sbDQzZ0dkMERDWXdXRG5oYXI5ZXdoNXZDaUI3MDVWWHI3WEpjcjVQVk40bnNTa1BlWHkzWHBtTUh5ejFucEtjMGM4T2pvNnRLQVBaNnFpRXJGK2tXVEdTa0NzRkErSlJpcVZRaHhWY1RqZjVxQ3FxZ3BuRVo4cUppdjRXaUFlQnRjREhIUE1NZVN5YWRBMVlaaXFRei9yNmh0UFg0MXQ4UURJK1l4MGhwMW1MNERCVzdFRWJ3OE1mZjUxZlpXOG5RQkYyYlFxMzgvSk1EUXkrSzg2Y3FrTUc5YTZmTC9zVGZCMWF1anpuMDlYOGswYUZKWFRxL3c5cHdoZnV6Mmw0TVdqdmIyZFpESkpiVzJ0NTE2cVBtcHFhbkNtcWhJWUF1Q3JMVTMwMXFoZmVnTkJvdWQ4NUltMnRqWlhRRUx4VVBYeEhQQ2NoUGJRUXc2aXY2K1g4UTcxUVU4OGluRFNTU2VaV1d2UHFxOXdFVlllOHd6MElnL0RRTUpSN1B4clk3QmRzNGtTazlzdytFN3M2MlhtTkpmdk42bmk1eitUZ05QamJnUXp6R2FYcCtRT3N4WGZuMms0RlljU3NmT0pVeVZjaFJLUy9xMmt3NlJKazR5QURDZDVpbE9RZkZWeGFNYVR4cWc5Zk1WVjRlejVWSXFBaU5Pbzg1Ujg0anlBSTQ0NGdubm5tYWJyeG5WMHRMY2dMTFhVVWppZm5QWDAwZmlvUFBMK1l1VXAzcmZndDNzemdROGc1dk0rS28rOHYxaHNrcGZ2VjRsTXNCV3JENzYyZVVwQlZ4Nm00dERRajRURGVCdEt2Z3N0dEJET1oxa1JsT0JNQmZMYmI3LzlwVy95cWpneW1Rd1NEc05YSG9lNE9WdDBHTDRTdkJJRVpIUjZTajZxajNlQjI5VTNOOTU0STlGSUYrTVZrZTVPMHllb0w5UW42aHZuLzk4YjQrSXhqRGZqUEY2WWF3T093dVJtTmQvaW5vZUZubEl1d09TbWlrUENNV3ZXTE14YnU3d0RDWWtTdEpLeEJNUWNtelp0R3RYVjFmejY2Ni82LzVFV0QxVWM0dVhoSk9HUWtLZ1NjWGE0RldkelRQOXZCRVRuQmNEWEFrK3BkQndJZkwvWlpwdXg4My8vYlladHhoWFVab1V4eWRVWDZoUDlMNFVJS3cvS0svQWdtWVE4Z1VjMm9NcWp6TXVYck1OMzVDc1BDejJsZ0NvUERaM0k0MUFpTThNMFJqZ2tLSG83MWt3bUpWL2pLK2c4bWRKNnk5ZVF5d2dtWTAzSDFkQ2FrcTJ1TVJXR2hFT0NvdmJvSFBGVG1IdExRTVJmaVRzQXZuWjRTaVZ3a3FnbWdiTUFMcm5rRW1iT3FORk9zdU5tcUVwdE5WV0hzNzhhRjE5OE1ZTDZSSDFESVVMUG8yZkNWQXlFUlhMRnhTUGYzRUR1cTQ5TmpMam5NVGpKeTdjNlhaenZ3QjhOUk9zL05oRU1YeXp5bEl6WUJaQklsSVRORzdEeE5pUWNtdTZxUkJ5TlJoSDYrL3MxVENRQlVaSTJIb2lTc3hLeTdqRVN5VmpuS1BFYVExTWN4RVVWaUNvT2NUUlRhaFhpcHlySlZFY2FrdEQvcTIzQjhMWEFVeXFCazU1NVAzQ0hoT3V4eHg0am1lZ25PWmhnckVOdDdHaHJ3Y3l1Y2hZRW14ZU5POVVuL0RsQzhmZ3lnUWNiVGkrSHpOQyt4MEh6WkhoaHd5WCtINXN1RjR6bjRiOGk0TmNVSHF3d3Biem8zbFU3VE1wdzJlcExvTGg4bmVYOHJUREh2OWpaNENrcGdqRE1UYkl5U1ZoREtCSU9KV2hWSEJpNEFxSXBzTVpuVUVoUTlOYnNJN0dWYkVETGc5RXZ1MmRvVGNLaGhLeUt3NFVySU9KbUJNUUludG9adkhqWTZTbjV3TjdBYTlxTzQ2Njc3cUtyczgySTY1aUUydGJXMm9UeHlOVG1aWmRkRnVCMVlDK0dSamhzcFhpNmF4Q0R1a1ZxcUJwaW1taXU4UmNPV1hZMkc4OWFBRVc4ck5KL2NzT0xVdmkrSDNQNWJqeTdodHhQZjg2My8vZGYrUHNTczFsdHhnSW9FdVVCOGJYU295azVrVWdFNUhPWU4zUUpoNFo4VE1VaERDa2dTbkJLZmdzdXVLQXFBVCtwcmVSa0xJNTZsa1JQdzFCR09NU3BFSjRLUktLalpDSHVpcEtUc1lUUU5rL0pQNmVDYlV2MkFKcnI2dXB3dG5oSFBrQTZuUnB6UTFWcWsxblBvWDUxdm9lQzJxeTJBN3VyTDhhVmVBeG5yNmhua3BNeDBCcUVHMWVaU2JiK1BYTHR6ZVJpRVhMZEhXUy9yZWVrNmp5TFZFM0JRTmY1ZlVhUWl3US95YnQ4cHp0OGoxbDZKcEdQMzJPd3RabFVORUt5czRQNFYvWDhhM3FlV2U2MFhsMFgvS0pHU3p5bElEd1BWUmRLdmhJTmhieU5XQ3hHTVVoQXRIcGJDWHpSUlJmVlc3enVNeUp2OHFvdWpGRXU0WlBRRlFwSG9ZQjBkblpLNkpTc2xiUjFIMTljRmFQZlUvSWxJSDhBV3dJOU8rKzhNeWVkZUR3dFRRMW9oOW14QXJWRmJlcnJqU09jZDk1NXFLMXFNN0NWK29EaUNCY0pLdTdwaHJmNzhoalVMVnJMQjl1dXhNNWxVVGJzL29VZEU4MDh1T1ljVGxselNReStITWpwdWhGZkpLaDR0UmUrVHJoOE4xNm9sbHMyWG9rTlUxRVdhL21GbFdQTm5MSENIUFplMmVYN2F6S242NEpmSkdpTnB4Uk1JbEdWOGZ2dnYydVl4Q1JWWDVDQWFHeGVNNWlFa1hxVGwxaG81YmhDczY3OFFnTFMzTnlzZmErQ1grZGh2NmZrUjBDK0IzWUFPT0dFRTdqb29vdG9iMnNtTWREUGFJZmFZSWFxMUs4eXg5VkdRVzEyL3V3Ny9DSGNua1R4cjkvTGFFamxNVmlsdW9xYk4xdVJsK3JXNHFGdFZxTnVzVm9NNHRrOC8yNG9MLzNOdUFTKzUzZVYwZUhlbEtVV3FPTGs5VmZrbXEzWDRvSk5WME9DWXRDZnkzTkJWL0I4cmZLVUROL1J2d0o2OVBPMXhGTXluRW9Ra0hlQWpRQ09QZlpZYnJ2dE5xS1JUdUx4NktnZHF0SVFYR2RIcTZuNDFDYXovWWl3a2RxTXdiaXRQSHpEQ0FLczkyTVpiL2RSRkRxdTh4cFMrRWFlNEJZSm11akx3aEV0Wlh3OVNGSG91TTVyVC91L2Q4NlA1MkdacDVRTnhjTk92aFo0U2dFSXlQcEFZbzg5OXNENTdqejViSnBZcE12Y2YxUkFYTVhaYkhZb0VWWmIxQ1lnQWF4bmhHUDhpa2NKdTc3R003RHR6N0RlRDNCdW00VENqV3M2ZFV3QkRVbUMyL1cxQkw3OVdUaTVGWTVvaHZ1akVnbzNudXJSTVFWMHBJUGxhNk9uRkZZZWx2SzF3Rk1LUUVEZUIxWUhHdlc1M2M4Ly81eGxsbG1LcHNaZkdlanZ3M2FJbzdqMjlzWVIxbHh6VGVycjYxRmIxQ2ExelduakIvaEJPTnVxZUh3NUFPZTF3clkvdVhGOGs2YVpsbURvNGtXUWZIOUx3Z05ST0xuRmpWdTc1SXNNODU0VTU1dTEwRlBLRW9xSDdYd3Q4SlJLOVVBMkFsNVliTEhGZU9lZGR6amtrRU9JZEhkb094UFNHZnUyY3hjbmNldnVhamR0RUdkeDF6WXdBQytxVFdvYkhvU1ZoMVVoVGw1WXpoY3ZyUFdVd3NyREowSytBUWhJb3hQYkFiZXBFcnI2NnF0NTlkVlhtVFd6bHJibVJ1TFJicktadjM1YmQzRVFGM0hTYkNxenllRnJyNzBtem9pNzJ1QzBaVnUxQ1JlRTRnR1VXNVNJeTRvblk3S1lKR2hIbFBrUkR5czhKZitjek82eWxzQVhGNHZvaXN2b0YrZmcvdTcyQnY1dDlzTDYrdXV2TlJ1TE1uSzBOamNTaTNhUlRxVVlhZWlaOGpURW9iY25acndOemFZU1J6YmRkRk9BNzhSZGJhQVFoTU5XZ3ltbWxkc2pIcFBMSVp2T01oVHl5UlFWWlhaMVpxNlE3NmoxbE13MDBjcktDbXhCUlVXNXBxY1c0K3VjWXhQZkN2RU54Y01Wa0FlQlZZSGI1Y05vTnBiV29KeDk5dGxNbWppQjlyWW0ybHViNk8ySms4MW1tRnZRdmZVTVBVdlBOSldHSmhhSWl6NURyTmxVNGlpdXdHcml6aEFJeGFNdHh1d3BVR2xCUXA1UUJyTW5RN3FwYytoek9tTmt5cURDQXFHckJISmxNS0cxMDc5NFdPQXBpUlBGZDU3Vkttd2JxZyt6czIxUnMxaXpqUFFMYnd0ZnpYUVMzMUE4dkpzcE9yRVhzRDd3bkdhVG5YTEtLUklScnJqaUNwWmRkaG5pc1c1VkFrcnVxZ3EweHFLazdVNTByZTZoZSttZXVyZWVvZFhpd2tvcnJjVGxsMTh1RHVKaUZsbytCNnducnVKTWlJSWZsS2ttbFV3NzQzL3NuUVdRRkZlNGhkZmRkOUYxeFozRjRaSEYzZDA5bnVDOG9CRXNIdHlKR3c1eDNOMGQ0dklraXR2S2VlZWthcXFhZmp2RW9LYzNOWmM2TlhkdXkvL1Y4Ty85KzByZnV4TVJoM09RZVFwSU9nd1VPZ0JFV3l6WlRLWnRNVVFjelVYUTJBMWlBLy96cm9CRkVwL205QjFsbnQrQnlDTTU2UG9sMFBOem9PTjVvUDA1YXlXYnNpMkdTUEtXbkxMK050N2h3NGNuTzNoakR3SkJObExFSWFENDdsdEczaUN6VDVBZml4Y3Z4dXJWSy9IdXUrL2l6VGZmeEJ0dnZHR3BaUE85OTk3RHFsV3JJQlp1dE9QVUo3aXlLejcrK0dQczNMa0RXN1pzQWZ2V3NXSERCa3NsbTF1M2JvRVl4TUsza0ozNkJOZEVBcGZ5c0l2STh4cjREb1BaSis1MUhWU2ZXZzFET25Ub0VJWU9IUXBPVVJZTEhQTDA4b0tmbno4Q2c0SVJFaHFHc1BCSWhFZEVJU0l5R3BMeUt0TXhuYU56ZFkydU5VdjNsZzNaTXFYVll2TDQ4OGtkUElLR3JVZnd5MGNRZGlnYk5jNENkVThEdFU4QnRTeVNiTWxtalROQTJJR2JDSDdwTUFJZld1MjBvcWd3NlRPa0x6ak1nSmVOTmw4QUE3NmlxUDRXeVdHckpXMUhIcnlKOVBtSFVIYk1xdHQ0SjA2Y21PRGdMWG9BQ0tHQ2JDRXhBMFYyM1RsNGNKWUp4bzRkaTRVTEYwSUJaTjI2dFZpN2RnMjEyaUxKMWxyYVhvRUZDeFpBTElNSEQzYnFFNU1uVDhiczJiUHgwVWNmWWRldUhkaXpaemQyNzdaV3NpbmJIMzc0SVdiTm1vWHg0OGZmeHNzdFNoUDRzaC9FeTNXUkpMc0VEd2JyMXkwUEhvNEVvQW8xaHpwR1FZbHY1ME9WK3dzdnZJQjI3ZG9oSVNGQmJIOUx1bGIzMEFPRzdxbDdHNUpzeW5iVlAwL3NEaDZCY2hKbEF4OVlyZ0NDb0hIYkVQem1sd2paOEJ0Q3RseTBWdXQvbFcwRVBiRlZMQWdjL0k3RGtYOEZFQ2F4b3JqQzd5Z3pjcGtDQ01wTTM0cjRaVjhpWnZOdmlONTIwVklWMnZTcmJLUHMxQzFpUWVsaGJ4dDV3MW1aUkpIM3BuaGp0dDlBRVQzMTc3ZUhpaDBDWXJaY00vSUdtbjFpd0lBQkNpQjZRdE1UTkdiTW1LRUswVkxKcG14enUxT3hvRisvZms1OWdoV3pBZ2c0RUl1bFM1ZGkrZkxsNERMaGxtclpzbVd5amVuVHA0c0ZvMGVQZHVvVENzcHZ2ZldtYllMSDIyKy9DZTZFWi9ZSnl4T0E5dFQ3eUNkeDJqSUQ5QjYxaE1HdUpyQ2JTYTFSUFZSSXlxdE14M1NPenRVMWNKTGVsNjIvUitrT0hnRjgzZjZFc3Y2dEo2bkN0cFg4bW82RzJOaDN2QmRBcU1RKzdSTjBiQ1IxbWFnSzIxWkthRGZxTmw2K1ZCVGg0QTEvNHpRcUhWZXJ5dldCSTV3TVZjU3k4S0NSTjhEc0U4MmJOMWVGYlNzMWF0VElxVTl3a1RwVjJMWlN4NDRkeFFzeWlqZnN3SUVENGVKVjJUUFBQSU1WSzViYm9mVWhCZ2EvNVpnd1lZTEpKMXhhUDNsUjFhaGgxQ3JxRy96OXBHdDFqeEZVZGQzN245RzVnNGMvbHp5WXA2eG5SSEVFUGJMV1BzSGowUS9nRlJrUHNYSHEzUE1BZ2lYbTU2dk1QNm80eWoyeHhqYUJvOXpZZGZDUGljdVBWNzh2dkV2WFFzU3ViR1FldDhHWUVoa2lkdWZBcDF4OThZSkxXVXlYTDVoOWdnT0hHREpraUcwQ3gvMzMzdyt1aHV2VUp6aGJCdXdxdEUzZ21EUnBFcmdzdXBFM2hBcmk3ejFYWmFtcHFWaTBhSkd0eHBTNEo0ZlpKK3hXWjBWU05hZ3UxRkRxR2VvVmFvR2t2TXAwVE9mb1hGMXo5MG5jd2NNM01UR3hDZnRndjlOWDc5U2FHbWR3ZWVCUUY1cDNTbldJU1d4cGFXa05BUVJJL0lOcjZ1QU5LMUZUNHd3dUR4enFRZ3ZMeUpjM01DTWpvejdMZnRReHY4NmpFTGJqRm1xY0FPcWVCR3J6czVaRmtpM1pyS0VXeDdZYjhPc3dEQTVlYnFGWlRiNlFuMC93eldCMUI3ZzhjS2dMalV0dC9LRlBsQ3BWU3VNTUxnOGM2a0p6Vk1SaTR3dG5qZVFQNGpYNlJKTW1UZXd3cHFUdUtyWHE4dkdKL0pNN3VZT0hELzhncS9QcGFBaWIvUmRVNUJrU0E5L2EvUkRRNVNVRTlKaGpyVHEvQU5uMkRBeDM5THRlNGo3TkEvakhWaFdBbjhSS280YVIxemNzQmtXeitpS3QvNHZJR0R6YlVxWDJmUjZ5N1JQc25MZDI3ZHFwNUgyUXg2N3BISytrY2dpY3ZBN0JLMzlBOExvZnJkV0s3eURiWHNWU2IrT3RVNmRPZ256Qm1VK3dKWUlhTldxZ1E0Y082Tnk1czZYU0lLZHNjMVhZUCtzVGVzcUhLa0lGdlFjZmZOQlNEUnc0VUxiMW0rWEg2MC81Wm1abXBoaDlnc3V0SzBCcU1GZDk5WlpLNDBPeXpVVVVuZnJFWFU2ZWxCZmxTd1ZRUVZTb1NTclRNWjJqYzNXTk85a3BBYXpMbU9pOGpXSmpZenV6bjNPbml1MGdEaXFlNEdZM2ZjVEd5aUVPZ0xkVXdIaDlPUFBIbjl1RTF0VWZKTTg1YnpkZXprS3B3MzU0WC9tQzJ5ZnVIVytaTW1YaTVROEYwU2Z1VXNEd29ZS29DQ3FKNmtTTnBaWlF5NmhQSmVWVnBtTTZSK2ZxR2wycmU5Z25rTGlEaHllYnE3NWNycmttbmFZaEhib3g4NC96cVdreEIvVzJ5ckd0RkcxdXB1MEZZaENMbU1TMmVmTm1Iem15Vk1CNEpXOHVjUkRCWTFtczQ1cXd6MzZFWFhpNVNtdjlaczJhaFltUjhuVDdoQ1c4bmdYSkorNUNDOE9maXFBcVU5T293N1NaeHk2OW0xbFpXZGU3ZHUxNnZVK2Z2dGM1dG5hTnJiYnJYYnAwdmRxcVZhdkxiSjFkWVJDN3hza2J1YnFHMHJXNmgrN2xiNE1XaVR0NFNQeVBET1dibnZVNDROaFF6cTRuSlRtU0hOc29QdTNkVlpudkw1dXlMUWF4aUlsUGJDRU96Z0xLSzNucEQ1TG5WYmNMTHl1SnpFNmRPb1U0S2pUSjdSUDNuTmVyd1BuRTMwdU9vQkZGOWFRMk1VRG10R25UOXNia3lWTnlYM3Y5OWJ6Rmk1ZGczcng1bk5MOEhDY1dQSWtubjN3U28wYU54c2lSbzZFWlgvLzV4RmlNR3pjQkdyL3EzcjNIbFVxVksxL2duaWEzZEMvZFUvYzJCQkZYSm5jQW9TTnJsazE1YnFTZnhWazJEZVQ0RHNteDdxV010bVJiREhTVUtreEJEcjZDenV0b2haUXNXVEthQTlMSmNYRng1VlZ4U094dXFYRXY1YkJEbStWa204c3hSSXJIV1NYaDlnbko3Uk4vczdYaFM0VlJQYW5ObkNpUVBXN2MrSnZ2djc4TWVnRng4cFNwSEdONUJKMDZkMEdEQm8xUXQyNDlaRmFyZ1hMbEs2RlNwY3BVRlZTdWtvbDY5ZXFqY2VNbWFObXlqWUlISjB3TVFyLytBL0t5c2hwY1pDRFNlMGhicUY2eUpadnVWb2dOZ2dqL1k4TDV0SlJJNXk5TDU4L2s0S01sa2kzYUxDUGJZbkR3L010NEhmSXl5TnNLR1cwYVdkdytZVDN2djNpdHZBQXFqbnFONHprNWJFSGNXcjU4QldiT25JV2hRNGVoWmF2V3FGQ2hNcEpUMGxDc2VEd2lvd3FqU05GWUNWSFJSVkcwV0p5a3ZNcVVSK0Vpc1VqUEtJbXFtZFdSbGRVSWJkdTI1OFNOVHNqTXJQWXpsMG0vSmx1eUtkdnVWb2c3dVpNN3VWUEJTdDVVRU5XZHM3Vll3YmU5c1dMRkNuWkx6V2NyNDFHOWJJcVUxQXdVS2x3TW5IV0c2SmlpaUNsVURKd096TExpVkN6S2xpMnJRQ0VwcnpJZDB6azZWMUs1QWdtcTE2aU4xcTFiczlWU1A3dHdrU0xhWEJ4VUR6R0loWEluVjdVK3BLMWJ0NWJoNG5KVnJSUnRsalF5L0JYZWMrZk9sYUdxV3F5L3dXc2YvVldmZUJxdnBqK0ZwVld0bEd5YW1mOXR2SGJTM3d3Y29kUTR0cnh5dVRUSXJiZmZmZ2ZqeGs5RWl4YXRrRkdpTkFOQ2NiVWlVRHcyQVlVWUhPTGlreEdma0l3aXhlS1JrSmhDcGZKNGdqNU4rUlNkbzNOMWphNUZiRnlpeWhtRVNxRmE5VnBVVFpiRi83ZFd2aFdEV0Z3VFFOeEJ3NHV6UW9aejk2d2ZOMjNhaUUyYk5sZ3EyWlJ0TWd3eDliMDY1VDF6NXN4dzZzZlRwMC9oMUttVGxrbzJaWnY2czd6bXJpb2ZpK1d3NjdSdjI4dzhPMjlsOE1TOHhTOU95RnQwWVV6MkxJeTQrYktsa2szWkpzTTBzWmlZNzhnN01Ycyt4dCtjYTZsazA4eGJZSDNpendlT3lleW15MzNsbFJtM0ZpMWF6UGRkSGtLVktwbXM4QlBWUGFVV0JDdjRKQVVCUjJCQVlwSzZyaEwxS1RHd0pDSXBPVjFTWG1YR2N4eEJSZmZRdmRpdEZZZmtsSFNPbFZSazY2UWNpaFl0Zm9FQjVDcFpwcmdEaUVYSk9IREhTdnU5RFJzKzFYSUZMbGx2UnphWExYc2ZHelo4QnJFWW5Ob3pQMTVXMnU4ZFAzNFUyN2R2eGZyMW4rR3p6NnlWYk83WXNSMG5UaHlEV083RWE2Z1lmQ2svaWZLM1dBNjd2bUl4OCtiSFBDNTN3U2U5TDQ1RjlGZi9BYy96bGVGeHZwS2xrczBZMnU1emFSekk4dUhHdkFOK1ptWXo3OGlMTDZETmx3K2h3Ym4reUxKWXNpbmJvOGpnNEMzNFB1RjBqQ09ZR3M5cHZqbXpaczNPMWx2cTNicjFRTWxTWmNGSkFBb2FxdVJSdm54NUJRRUdoU1JVcmx4WmxUK1ZERTRtME9lZnpQOStyZTZoZSttZURDYnhLZ2VuOVNxUUlDUWsvRGVPbTE4Vms5aXNHd054QjQ2K0d6ZCtwbVdaYmJFMHRGakVaSFJtVStEb3EwcGJleWlvSW5laHhPQUlJRVplODFPbEwrVlBCVFJ1M0RpWmZiOTFyQmFYOGFqZHNtWExCREdJUlV4R1hyTlBqTTlaOE1DZ1N4UGhmejRUSHVjcXVWUmlFSXVZak14bTN0R1hYa0xqYzROdzM5bitMcFVZeHBERk9XL0I4WWw4a3NvRHFINTg4ei8zdWVlZXoyYXJnNHRBZGtGR3lkSW9IcGVBd2d3YThZbkpiRFdrOG5zeWtsaTVKNmRtSURZK1JaLy9LSzk3Nlo2NmQwSlNDc3VUa0Y2aUpHSnBOemc0VkR1eTNSU2JHTjJ6c081Uk1qaXhIN3VMam1xRlQ3c3NENzF5NVFxUWFhZll4R2lTMzZsVHA0NXEzd1JWM25iUTd0MDdRU1lqcjdHQ1VGa0FONkJweTVlZTl1cW4xNU9UbHQyd1VocHdsRzB5Yk9mOC9pWmlNdklhZk1KSDVhTnZ6VDVlNnRzMjhEaGJ5UmFxOEYxSGpMazFaNC9aSjR5ODNiNGRnZnZPOUxPRmVuNDM2bzY4WnArSXF4S0hqS1lsTEpWczN0a244azIrVkNLN2lmUnV4dlVaTTJhcXhZRzBkRmJnc1FtSWkxZnJRTjFRREJncEdmeWVncFRVRWhMenFYY3BuNko3eTRaYUkveE1SVnBhQ1VSRkYwRlFjSWpXRFFPVkpGYktuZTUyY2xURVZPQW5uM3lTclZVMjdiTzN3RnZhVU9lNm5OblVyUFlYNzdGang3STNidHhnbStDeGVmTW1iVExqNEhXdzZ0T2ZMYWdRYnFHNlVEKzU5aHZRRG5NdUdsT1NiY2VHU2xwLzZXVURyN2ZSSjhRODlPckx1UUhuMk9vNFU5RVdpdnk4RGg2NzhFSytQdUhnYlh4MklPNDczYzhXYW5IK2dUdnl5aWNDd3Z6UitmMWVlT1MzS1hqb3loUU11ZnlVcFpKTjJlNzRWbmVJeGV3VFRycXJ3cW5YbXpadGVrMHYrdlh2UHdpbFNwZFhWNVhHSlZTWm8yTEZpcXJzRVorUXBxNG5mZDZUdkd6SVZteGNDcituZ0M5a01vQVVocmUzenpkaUZLdTcrK29lcmFwTEJiRHBPWDM5K3ZXMkNSeVNBdG5xMWF2QmVmUFBLRmhRL3BMeTRqMTU4cVJkQW9lazdVZTE4WXlaTjRBUzd3ejkzTnJsYnYxNmpTbTk2K0l4cFUvRkFqR0oxMUZabUh4aXh1UFhYNExINllxMlVjaTVtbmpnZjZjNjh3bnhvdjZwdnJaUms3T0RuZkk2ZktML2djZlErWmVoSEZPcUI4L1BPYWIwZVNWTEpac3h0TjNsbDJIb3QvZFJlUGw2bTMzQzNGM2xUL1hoUW9xMzJGV1ZOMnpZQ0wza3A0RnN0allTMkFKSVU0dUEzMU9SbWxaU1FrSmkycjNNeTVac1V1a2FXTmVzTGdhUVF0bmt2Q2hXTWJ1N3IrNSs4UEJqdjJjbXN6bXFBTzBWUEY3SG1qVnJJRFkrWlpRREVDaHBxV2lWblRoeHdsYkJRK01lKy9idE0vSUdVRUhzS3FxbDVuM3YzcjFoc3pFbE1SbDUvUncrb1ZWcWxYM2sydlB3T0ZYUk5nbytXd05EZm53R1pwL2cwaVExSGJ6MVQvYTFqUnFmR1VqZXlVNTVHenpkR0QxL0hRbi96ek0xT2NDVkVnTlpSb25KN0JQbTJWVlIxRGJ1clhMOXFhZWVRYVBHVFpHWXJCYUd4aDZTa2F4dUpWWHVTZWxJVFM4bFdaS1hUZG1PSTRlNnNvb1VpMFZBWU5EM1loV3p1L1Z4ZDVPWDlPMjMzdzZXVXdDd0g2QVhFY2wyK3ZUcGgvVlYrVysrK1dZd0syTmI4bktodWYvSCs4VVhYenl1d2hZdFduaGN1SERKSXpjM3orV2NZcmg0OGJJSGx3Ny9uWmV0dUljTVQyYnlpYUhLNU9UbHF1ZllWc3JsUC9OdkxGNzZoQzE1OHp5ZDh5WjNxK1N4Ny9KcGo1dDVPUzduRk1QaHErYzhFdHVYTmZ1RU1mbFFyUklULzQrOXM0Q09HMG0zOEZlUzJwall6c1RKUWpJdlRwYUhsNW1abVprWkR6MW1abVpZWm1iZVlUejdocFloTVROMHUxbFNWVDM5NXowNWVoNTNwNjJPMi9KczN6bjNxRHF0bEs0OW5icXEvMWExamozdzJMR3h2bFBqcDFoZFdjS3ZCeGhyT1hSd0dLMk5NR29QRVlaYTJKRjJmTjNSYzRZUUxRcUhRNk1IanlpbHpnT2UyczArenI1NUtOLzNIdzlnclNXcnFOVnFqd0Jjd0tuWDY0L2JRM3BWR0lZUEJ4Z2VIcVpTcVdaSkk5RVNTd1JCRUR3NmNXZW1vdGNQUzJVZU16NU0xayt6WkJxZksrOG5HZHFXcmhGaWJ2T1o4SDMvb2JGZWEyM0xyTTRVcVV5dWJ6QXMrUTNQbGZlVE5LRnA2UnFodmEzZUlBZ2VEcUFPOWpQaEw0QzFtZUJNZlFsM2RIQ3J6NFJBQWYzQXF4LytpRWNHeFdLUjhWUGpMQ3l0MHR2VGczQ3RVSW1PT1hweUhpdHJKVGwydEMzWEZnMDV6Nk92dDVlYXI0bG1IeHA0aldnL3k2V3JybmtZWTQ1bWREQ09OY254am9BU1J1MDlvemRhdXBzenhoeU9aMUZhYTdLQzVBd28wbmlIdUgzVlZWZEpvQ3V2MFNiYzF1RHpyckZYOEZ1amI5emdKV3RqVzUrYkQrWDkweno2WmtaeSs4L1l2NDBvbXBLLzQrZ08yUU1TZW1tWkx4cDdPcTg2OUt3Tm5ydDJjR3ZEeXRlVDUvR2FvODlsZjI2d3BXdHNwVGRxSHdiUUN1bzZ5TXdzS1RBYXJXenlNNUdFQzl3OWVqenRRNkt2U2grWW5aMWpZV0VSYThGeFhmbDhvNVRLREwxY2pwenJNVGk0N3hEd0FPRDQyZDA0MkRVUGdadnh3VmpneGVheGgvUTZILy80eHdma21FMjlkcXZmTDlFenRRY0JOODNNSTk5ZjVyZnY5ODROL3RXRnZ3cjUyL2J4cU5vbHlmTjQxQzg5aUh4WWJPa2FvaW1wT2ZvT3BVMTZiY3VzOVFlOCtYNHYzK0M3TDNvdFliNTJtL1BPcXg4amVkNERqbDFDS1N5M2RBMjl0VjRIUUdlc3pHYTMwTXRwOUFEUGp6TEhpdEdobXA2ZW9WU3VjR0I0RUdQbDcxa09IdGhIcUEzQ2MwWUdkNk10R2tSTFJNT0JBL3RSeWxHZTU2MEFMd1o2T0t2b21nZmJHZHlXbDVlSmdtRnV2UEZHVmxkWGFSVlI3Witycjc2YW4vM3NaMmtHWTRVZ2hkNVNxWVJjYzN4OG5FcWxRcXRZWEZ3ayt1NHFGaFlXMnRIcklNaTQyU1hSMDlNVGF5Y3dJUmhhNW50WFBzOTRiWllZajdyekEzbFVjQWtrejZzYWZ1dGVieU9KZDgvL2VZdlhzSVNpS2ZFNzlqd3ZxUmRyYUpsZldibUN1ZG9TTWU1LzU0czVMemhCOGh4ZDFieituaThtaWIrZiswaEwvUnNqbW5URHo0UzJHY3lVckc2MEtiQUhlT3l4c2JGY3ZyQk92cERIY1JURnNrOU95a2M5THZuMWF0UjJoYnZhRmkyZTUxS3FCUFQyOXREZlB6QUFQQTdvMmFYU1ZkYzhaRUNkbTVzamVtZ01Vc09Qd212a3o4NkVLQ3lrV3EwU1RYZXAxK3RNVDArbkd0eTJxMWZxc210cmEwVGZ1OFBBd0FDaVZmN3NUSmlkblVWMFJzc1JwZllyZmFUUksyYmw3alh6MEZxcnVCMm1DSEpmUGYyYkpQSE9xSlJGeld5OFA3WnlDREdWR085ZCtodzNWWDdjY3YraUtZa3dERGZwdGR2aUgwLzlPMG04NlBoVE1iWFQvUnhZNmVQK1J5NG14bGVXTHVkbmxZa1cremVpcWVGbklqUW1lNW1TTVkzTVl5UXk2b3ZQT2VkZy84cnFHdVZTR1NXbEtxRnlnSWhLQVVxNHkyM1I1RWc1TGFKSGIxL2ZDSEFoTU5JMWoxMHlEeG1BeFRpaXpVMUVtNG1JdnJOZkJ0cW1CaEx0dXNaMVhUbFg3bXBsUUJiajZZaDU5UGIyaW5ISWRVV3pYRmRtUzAwTlpHWm1CcW5mam95TXlGMnQvQjM1dVR1aU53UG1JU2J2SWtoUkJoSmVXcnlCU3dzM0VPTlp4eDhmR2Nhb3ZDY2Q4bHZIMzB3U3Y3UDR6eTMzYlkyVndhM3hZSnlpREhSVDhZZmNXUGdCTVI1ei9LRWNXTzBIQ3phMHZQYkU4MG5pdlF1ZjNWYi9vcWtSdE5IdFpVcXJMV1pLUjFyTGxJUm1hL053Z1FlTWpvNld3MUNyV3FWRXRWN0hHc1hJL2o2MHRzSk10ckVLY0Z6SGNVckFBN3U1eHk2WlIyd1lTaW5FRUdSUWpwNUdKZ2F5WlhrbjJvdEJMcGREQm5ENU96SW9SNEVid3ZSb1hXOXNHUEcxUll1WWdoakkrdm82bXpFMU5ZWDhYTkVtcVkzZ0xkck1KZnlGTVE5Qk96TVA0YnRuLzR3a2Z1dkVXNkJtR0ZucTQxWDNmQjR4M3J2OE9jYnJzOXNjak1PbWVxMjEyK2JmejM2WUpGNTcvUG5vV2todXlmRE1lejZSR0Y5WnZweTUrbExyZlJ1TGJxQTNkYVowMzNmR2JKWXBKYzVyUFZPeWpjM09CYzRiSGg3UmdlK3pzbFpFb1pBeVVha2NJQ3VkY3A3TGVzbVhZeWJhb3FrbzdlZ29ONEZpSHNCNVhmUFlBZk13eG5BbUtLV1FBVGg2NWpISkFWbGV6OC9QSTR3UnJTcVJRVmVXZzI2WWpkekJ5OHlqUllpbVZPOGx6NUVQVHF3aDFpR3ZwUlJWS0JTSUlhVTBtYW5FeGlZL203d1c4NUYrMHV2TmVxYlVHRUZLODVBeTFIc1hQMGNNTVl5eHhWSGVPZnBTWXVTREl1K2Uvck50OWgxbkhtZFg3MC9MRTN4NThYSmlQUE5lVDJSa3NZL25IVHB0SE1XZ3pOOU5mV2liQVRRRXRyRmV2Vk9aMGowM1pVb0xyV1pLaUtaRzVqRVcvWHMydFhvZDM2K2pIQVZLU2RrcVVURlMyV3FMdHY4ZHB5SzZBTWU2NXJHTGdibnYrNGhoU1BuS2NSeGtNSmJYMFJlOHNiUzBoTXhDSk9NUTQ0aWU1NHhTU2did3VPUVYzL0YzN0U1ZXNndlJtSno5eEFZaVd2TDV2R2lXV1pRWVIyd3dHeVV2Q2RuVFkrOW1Tb0pRcDkrODlqc0wvNHdZUkl5L3V2QlhlTmRGcnliR1h5OThNTDRiVGp2emFLRFhwdUo3NXorREdFU005MFFycjE1MjBYT0k4WW1GcjhZcnJMYkZVT3ZHZWxNRTVxK2UyWlFwSGR1VUtTMXZ5cFNXdDVNcFdkSFVhS3pZQjRSMStmZnZ5cWtLNGY3QkhNWWd6R1FiRkJZbFk5UUJZSDkzcC9udW1VZGNaNWFTa0F4eVlneENNWXZZUU9ROW1XSEV4aUxsTG5sUEJtb1p2RHRwSG5FZGY2TjhKcHJpa3B1OGx0bUh2Q2VEZFd3c29sL2VLNWZMY3AzMGVyT1RLYVZBdk5yS3B1SjRkWWEvbnY4QU1aNTE0Z21NOUE0aHlBZnIvRTFrSHR2dDAwWU1qRzZxVjg1Snc3bnFJcCtZLytycDdPUEVROW5mdXkrZWRjaDdLZm8xQkdjcVcyRzN4VXRMRFRJbExPZ3RNcVdsZjk1Vy83cng3M2NmS00rRUlaVmFnT2M2Q010Vm5lbTI2emdSRmNiWUFqREk3cUpySHZGS0pyazdUODVBeEVEdWRyZTd5Wjl0RE5JeUNNcnJsWldWcEhGMFBFTVFJNGdOUkhRSVJiK1UzSkovRmh1SC9IeHlqZmIwWmlCVDZuem1FVE15aUE4bFp4K0pXY2VIMHN3NmhLSnBwL1RLN0NJNSs5ZzA2NmlrNmZQTW1ZZGgyM3ozM0taTTZmaGJvR29ZV2R3aVU2ck5icXZ2MEJnYVFldlFCS0hHV0ZDTytqODYyVzhyQUt2SUJycm1JWkN5and4eU1xdVFvekRlYVNwSHVaT1d3VkJtSTdGeDdKWjV4SHMrUkVmQ0xHSzl5WXhEWmlQU2Z3ZjBkanBUU3BGNXRJRzhMdkx1cVQ4bGlmSEtETDh6ODAra3hJNWtIakZMUVlXL20vZ2dTY3lWRi9tdnFVK24zSFJIODVsSE81blNVZ3VaMHN5ZmJWdHZhQnZxTGRkcTlTQUlBL3B5Q21zam9oam9WUmdyekdiYkFzWW9ITmNaQnNwMEh0M0F2Sm1CQ09JNzV1UXFwV2hwbjVSY1VocEhTd0YwS2dNUnlLcXJUWnZqR0JvYVNtMGNqVFZsUGxOcVByZ1oyeFpsYVdzUzd4My9kQnY5bVIxWmJaWGtseGN2STRrdmpIK3JuZjVhV0txYk1sT2EzNVFwWFJCbFNoY21NcVhGZEptUzNscXZBWXExV3RVSmd4QmZnK01vWEtXb0JkSFJFV2F6N2FBQVF4Q0VhMEFSTU93K3VqT1BwSUZvcldXQWswRlk3dDVsWUV0cEhESHNqaTE5RlFNeHhzaGRlNXpKU0ttblZlTklwVW11bDdGTVNUU2xLRnVsWUJJMlBlT2xwQjNWMjZabTBiUVQ1anhlaXpLbGhSU1pVanB6MXNCRXFWUTBzaUREVlM0cXNicEoyaXFqYll2QldvUFJvUU5NQUpyc29Hc2U4WUFzd2ZUWTJKanNrNUFTUzNyajZNQytDY2xBZk4rWEdaTU14akx3dG0wYzZmVm1MMU1TQkRwN2c3Rm9hcTdYdHMwRTJ1ekxFT3IwK3p4U1owcUxqVE9sbERNUERYeS9YQzU3MVZvTjE5Rlk2MkJ4NlBVTWx1eTJ0WUZRRzR3eGc4QVBNbWdlWGZNUWlIbkk4bExacXlCM3l6RTZjQ2VmV3ErWW5CaEhPclN1S2Z1WlV2Wm5Ia0p0ZDdac0pkd3N0NjJ5VlZPOU9sT1prcVZoWUs2QjY0TWdPRkFwbDNTdGJsSEs0a1FNdEJjZEVXYXU3WWN1VmdjUlF4TmhBTGd1bytiUk5ZK083WURlKzNvemtDbTFZaDQ2ZzJVZ3ZXZjAyaGIwdHAwcExaN05UTWsyMG11QnZMWDIxdVdsNVJVLzhEZCtUSlJRWlpMR2FvSXdwRnFyRm9GYmdUeGc2YUpySG50ZmIzWXpKVUZvZHFBTTVKSzZIMnVOYU9yb1RFazVLbjAvdDUrTXhnSSs4TzF5dVZnSy9USUtCMnNWbmdvQVIwak95VlpibVRxQkgxQ3JWbXZBTndHL2F4NWQ4OWo3ZWpPZUtTVjNRTGZMUy9NM2JIRENXV2h2Y0xQbURIcHQyN3d4LzRNTkxqbjV0dnJTdHZscXE2eVZCVTFqcy9PQmo5ZnJ0Y09CZHF3eEFRcUR0ajF5eEZFV1RhOGNNOUcySnFUcVc4TFF0MkVZREFNZkFYeTY2SnJIM3RlYjdVeEpvRTNJMmNDamIzNzFCdDg3LzlrMmM2V3dxVjVyYVp0dnZmRjNOdmlsdVV2YjZNdUtwc3lWMlZKOFBZbEFBejhCdnJ1ZVg1MDAybUJOUkpLcm5MSkRvMFA4ZW8xeXVWZ0FyZ1ZPZGZPT3JubDA5WjRWZEM3elNNOFVtVWVHWU0rZ1NWdWR1YVhRMnBwbVAwNFYrSzlpTWI4LzFCcHRRWmtxRmplaWcyTnJvRnpocnJhMXNkVDlBTDlXb2xxcEtPQS9SZnNPbHF5NjVpR09uUkcwcENWRGNtTXR0eXZ6MEViam9ESmpITW9xMFhRR3ZZQzFtYUN5b0p1YlhZWXlwYWFCZVl3UStJTFcrdnVGdFpWNUhmaG9lc0NFS0F5NEEzTGMxYloxK2dtRE90VktpV0twdkdLdHZRWDRFaEN3TStpYVJ4QUVlSjVMVnVDNkRtRVkwZ2lpMTNXenBOY1Z2YmN2ODZqNjdIUDZNbU1lQTA0UE9tanlPNjZGZUk2YkdiMDlyb2NObXB0ZDFqSWwwZFFFQmlnRC81SFByL2I3UVYySFlZQzJCaXYvc2ZzcnIwSWRVcTJXSTFaTXRWTHVFNjJpdVR2cjJFSHpLQmFMc2xrdUU3TVAwUkJ2M0d1eUFrbFdIbVZGcit6MEZyMjNLL093QzBYdU1uaVVITzZ1MzhYM3Fod25CbzVnWjlacEJHK2hUdTlnSHk3dWJzc2xweno2K3Z2d1ptck55MVpuQVkrKzVkVXg0NitEU1EzVFhKTUZBdUN6MXRyUHo4L05UTllyQlVKdE1CWnNVRUk1cmhEQ2NzZmJvcUZhWEpFTndCVHlxNnZBcDBVckVIVE5Zd2ZOUTU0QmtjOFhHQjdlTHdPM0JMSnlOOTFSeGwvRElkOHh0YlpXa0VmQzBnankxTDlpc2NUQVFMK1lTTHlCcnFPVWE4b0Q5a1dEYUptY25OejhmRzI3MTh6RDkzMGJ0NzJiRnZoKzhTUVBHRG1mdS9TZnl3RnZpQ0Z2WDBkNVRtNll1dzZjeS8xR3p1UFcwa25jVzVZYS9vNkhieXh6ZWVtL3VmUElZWTcwSDJaL2JvQkJyNitqSE1vTmNuVGdEdHh4NUJEZkxuK1hmYmRVR3VyVnhtUXVVeEpOWjRBQktzQ3YrZlg2OFh4aGZjcXZWUWw5SDd4K3JORmdEVTdQUGpsMnJHMTBnRHdldDF6MUtSYnk2MkVZam9wRzBRb1lkZzVkODZqWDY1dzhlWktscFpYSVBHUXZ3WkJRektSREhCTFRvTGZYa3gzVG9rVldGOUVJc2Q1Q1FXWWdIb09EQXhFSE84d0JjamxQVEZlZTVDZDZOejlEWFZ0cjkxS21KRCtYM2ppbjZOTno5U3pYNTIvbER2M0RrWW1jeHdPSHorOG83emQ4VHc3MURuUDl5czMwWERtTkt2Z2tJTXVXTi9UbVNvYlJhOHA4dHZBZGF2MTF6aDIrSTJNalJ6aldJY3Examd3ZnB0Ulg0WE9yMytIUVZXVnk2N3FoWG0wemxpbTFQaHNLZ1NYZzVmbTExY1BGOVh5K1hxOFJCZ0ZHbTQyK1ZJZitzMGJMWGc3VzF3dXNGL0tsU3FYY0Q3eENOQUloTzRLdWVWaWxWRGxlQmxvb0ZPVGhRaEYveEtsVDQweE9Ua1djN2hDbkdCOGZqNjc5WTlFZ1dpVFhTSzR4TjRtYXEweE5wVXdrejdUZ3h6LytLZFBUTS9JVXZvNXlhbXBhcmkwYVJLL2N0U2YxMnFjLy9la2xwWlMwNWIzTVpVcWJmcjhXNERuUGVjNkdabHUxZURNbEJyNDh6bzNYWGNXM2YzNDVsMDVjMlZGKzUyZVhjOVAxVjRrR3ZOa3lOckFrTlQvcFNVOHFTUnRBVnpVRE15Rkh2MUxpMmhzdTU2TW5QOCtISno3UFJ6cEV1ZGJIZi80RmJyamhTa1REd0d5SWFhTFhxOW1NWlVxOUtQLy82d1dhYlJyOERQQUhpd3R6WHJGWVdLc1VWd21Od2FBSTYwV1U2MGIwMEw2MHZSMW91eGdzcGNJeVVzYU9US3hTS2haeXdPOEJuKzV1Q3R6WnNrV2Y1M25maytiL3RHOFdzSTFqUVJnT3VYWWNMamZVcEl4cHlzemN3NFgybUpsUnNDZzRabVkrMFRJek0zWjF6TXl3ekx4ek16NWJjcGJSY2FRODZWZGluSy9XN3pkdjNrdDdlbnJnemp2dlZKWGEyOXVCMkJpR1dRMEFGaEpPVVgyT25SdGNjY1VWOE1namo2aEtnd2NQRm5pUmtYaXQvZjM5TnVLbGZROC8vRENNSHo4T1B2amdBM2ovL2ZmREttS1lNR0VjakJ3NVV2NThPZkxFbURGanpKSW5URjBNMkcvblZDVytsUW54eE5LbFN4MlNKNXpkaVpCMWgwOVZTbTZMRCtIOTZLT1A3Qkt2KzhNZ0JOZGVCTXlDQUdqbTU0VlY3TUlnbFBZUEFNOWJSYUdlT0g3VG95eW9SMUE3RTVLUzE2ZG41a0JCb0FSS0srcWh2S29lS3FvYm9MSzJoVDdQNG5kVVRUTVVsMVZEZGw0aE9OMCtNRnVzTktqY2czcFVaRHJYSTdWbzVjR3k3RExhV0w1OHVUZ1NWVWVqWHk1aDUwdGZhUjFrcVZSNWNCeTNIQUEwczJiTkVrZjY2bWowN0JZdFdpUjhSMGFCdDdTMGREOCtYL3F1ZWUrOTkzQWRaNHVxMXBSR2p4NHQ4Ukk0aU0vNmtPU0ozU3NQYUVBOWx0REFBZXdkMWgwSThRUjJ4QWNsVDZ4ZnNSbEgrb2RVeEF1YVRmMWJRM2lEd2VCKzVGMUd2RnVmL0VuenpmWmZOUlUyRmF3cFdmTndmZXNuemRhWGZ3bjF4UEhiUVhGTjRYSFVZK3YvK2R1eVlmMC8vKzdZdnAxK0trcy9tY1ZwTER3RmdLYXh6cHJvbm50Mzc5TGdQeXRxdG16YXFObTg4Wjh0Tzdadm80cmpZZUlnSnBIdEhMWm81Y0drcHFaMjR1THZiN1RwOS92aDVwdHZEbnZGY2NNTk40RFA1d05pSXJhTWpJdzJBT0JJNmVucFhSSnZibTR1akJneEl1d1Z4OUNoUXlFN094c2szc3pNekhZQU1CSnZWbFpXRSs3N2w0NTFkbmJDVzIrOUJaTW1UWUNwVTZmQWxDbVRVWk1VRXNXYWdySEh3eHR2dkNGVmRRSnZYbDVlQlhsQjlFU014K001WDJKbWZEcXczUmoraXNOMkhZdG0xUjNORTBiMHlnVVNyOW5QUThaTjNyQlhIT25YZThDVWFqd3FyOXdUaVplNmdadFhCRFhyK3FEam8rdWgvYVByRkZkVmZ4L3djNHNnc2RkMVZFK2NSTk9qZU5TVktLeTgyVjlUVXB5UWtaMFBCY0Z5Q0FRQ1dDazBDWlVERHFpZ3FxNlZkSXJmVzZDNHVCaUNaVFdRazE4RVRxY1RZdU1URCtnTmhvMWlrcnVLR0tJVmgzTEp3NEF2WG1WOGZQd3RXRVp2b1YyNFlBcFZWVlV3YU5BZzZPdnJVMVFEQmd3UVl1TW9EY1QxbUcySmlZazM0TXRXUnAwYUNWL0NLamt2anFLcEl4U1MzdTIzMzY2b2JyenhSb3BOeit4b3ZDeUtLUzh2VDBQZTIvRVlqWWJJOUVLQ2ZQcnBwK0c1NTU1VFZFOCsrYVFRT3lFaElZUzNycTdPUzE2UWUwTE9yRE5wZ2FzMGdIbEFERmg2bFpYNTRoZ2h0dGFvUGI0blpMd0dreDdpS3gzZ0daZ00zajZub3ZJTVNCWmk2NDM2WS9MVzF0YW15M241TkJNNEg4bUd1TEdGNEppb3JPTEhGQXF4V1NkM1ZFK2M0a3dHaDNLalBxQ2ZXMWh0dHZVZXIxOUlJbmtGUVFpV1ZrSjVkWU13blZWWjB3alY5YTMwZVp6dnFOcG1LQzJ2Z1VDd0RMTHpBdUJKOVVOOFFoTDFFWnVwT0taWVlreE9aSWcyaFpLSHpvY05PN1IybDh2Vnh6RE1jdHF0QnVFMHkrZEpTVW5YRUJ0MkRtNEEwSk1pZ1RjL1A5OURMeDVweG93WkxJN2s2K21GeEhPK1V4dXYxK3V0dytsQmhyd2dla0tmazVNalBHT0pXZVdlTUVRU2J5UjY0aFNhRnNXZ3JHSWxzQWlUMFdhejFmcTMwKzA5NVBXbFExWk9JZVJpSWluRVpGQmNWb09xaGhKTURtVlZEY0luN1N1cHFJT2k0Z29vQ0pSaWxSRUVYMW9tcExnOG1EU1NEM0ZHNHphODV3NjZOOFVRWXpGaWJBVmJOSGxvY1FxRGlZMk5yVWJUdEtHaE8vRDd2VGlTZmdmbmtoZVRzWlVVeGx5SXNkOGtCbUloSm1KYnVIQ2hnWXhNaWpCZUxVcmYxTlJreDJNdG1QYzZIUTdIZzJyaFRVNU9idXJ1N3JZU0k3SEtQWUdjdGZUM1NNeHE5MFFrOFVhVUowNS9QWlZGeFlwVFdRdFF1eGdtNWkrc1J2WWxwYmdQdWp3K3FzSXhNV1JCV2tZdTRQUTVwR2ZtZ2o4akczQmdDQzZQSC9BOFFDN2dUWmF0aHYrbnAvYUs5N3BTdkRjYnhtb2ptanhJT0Y5dnNkdnREWEZ4Y1cxa2Rob3BrWkhJMkhMaDZPbXM2dkQ3VTB5S1RRekVRa3c0aWpkTG5CSEdxNU14NitpRnhQTXExY0tMblVSNWIyK3ZXYzRwOXdSZWI4Vy9wMG45bm9nczNvanp4T2szclN5SjJGRWw0c0w2UjZqOXVLNnlHZGNyL21FNWJnTm41RGZ5dkhrRGFqUExHVGZGc094NlBMYUpwdERFLzlQNFNMeVc3bUdYa29aS3FvMW9Ba0Vqc3pnQ0Naak41aGFiemRaS3hwZUV4anFua3NlaTJNVEE4M3dwTmw3aWkzUmVsRTZjRW9yRFVaYmY3WFlIcU9NZzRVaXI2bHhLaW9NeEN5bDJZV0doZzNoSW9ieWh6TlRwNFpwU3VZcWZzUUs4VVUrY2hhWkZHVkE4eW83eW9YcFJ3MUh2b2NhaDVwREU3KytKeDNyRmMrM2l0UVlWSjR4b0VzRVMyb2FqcFZRMGZ3R2F2eHhmUmtWRXNUQm1Qc1VtQm9rbjhua2ozeFBZR1RvaXlST1J4aXRLSjVOZUljbGphaFh5c0ZTUk1DZ094YU1zaDRrWGp6SHFyRENpN1QvU0FqQ1QvckszaHdBQUFBQkpSVTVFcmtKZ2dnPT0"},{ name : "haxeui-core/locale/de/expression-replacements.properties", data : "emVybz1bMF09MApub25lPVswXT0wCm9uZT1bMF09MQptYW55PVswXT4xCg"},{ name : "__ASSET__:bitmap_flixel_system_debug__Window_GraphicWindowHandle", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFvQUFBQUtDQVFBQUFBbk93YzJBQUFBSVVsRVFWUjQybVBBQXBaaEVmcS9qR2loWldoQ0VKSm9vV1Z3SVdTU2FLRmxBR3VrSzkvY29kZitBQUFBQUVsRlRrU3VRbUND"},{ name : "haxeui-core/styles/default/collapsible.css", data : "LmNvbGxhcHNpYmxlIHsKICAgIHNwYWNpbmc6IDBweDsKfQoKLmNvbGxhcHNpYmxlLWJ1dHRvbiB7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgYm9yZGVyOiAwcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICB3aWR0aDogMTAwJTsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBpY29uOiAkYXJyb3ctcmlnaHQtc3F1YXJlOwogICAgaWNvbi1wb3NpdGlvbjogbGVmdDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7CiAgICBwYWRkaW5nOiA2cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvcjsKfQoKLmNvbGxhcHNpYmxlLmxhc3QgLmNvbGxhcHNpYmxlLWJ1dHRvbi5jb2xsYXBzZWQgewogICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKfQoKLmNvbGxhcHNpYmxlLWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29saWQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjsKfQoKLmNvbGxhcHNpYmxlLWJ1dHRvbjpkb3duIHsKICAgIGljb246ICRhcnJvdy1kb3duLXNxdWFyZTsKfQoKLmNvbGxhcHNpYmxlLWNvbnRlbnQgewogICAgcGFkZGluZzogNXB4IDVweDsKICAgIHdpZHRoOiAxMDAlOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgouY29sbGFwc2libGUubm8tcGFkZGluZyAuY29sbGFwc2libGUtY29udGVudCB7CiAgICBwYWRkaW5nOiAwcHg7Cn0KCi5jb2xsYXBzaWJsZS5sYXN0IC5jb2xsYXBzaWJsZS1jb250ZW50IHsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cn0K"},{ name : "haxeui-core/styles/native/main.css", data : "KiB7CiAgICBuYXRpdmU6IHRydWU7Cn0KCi5oc2xpZGVyOm5hdGl2ZSwgLnZzbGlkZXI6bmF0aXZlLCAuaHByb2dyZXNzOm5hdGl2ZSwgLnZwcm9ncmVzczpuYXRpdmUgewogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogbm9uZTsKfQoKLmJ1dHRvbjpuYXRpdmUsIC5kcm9wZG93bjpuYXRpdmUgewogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IG5vbmU7CiAgICBjb2xvcjogbm9uZTsKfQoKLnRleHRmaWVsZDpuYXRpdmUsIC50ZXh0YXJlYTpuYXRpdmUgewogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IG5vbmU7CiAgICBjb2xvcjogbm9uZTsKICAgIGZpbHRlcjogbm9uZTsKfQoKLmRpYWxvZzpuYXRpdmUgewogICAgcGFkZGluZy10b3A6IDBweDsKfQ"},{ name : "haxeui-core/styles/shared/warning-small.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABCUlEQVQ4jc2RPUoDURSFvzvzfgKKoCmSKmijSLSzF7ERrd1CIOIeBBcgLiCLCGg/jIq1rW5ABUFQUsSR92x8zkxw4tiIp3vvnnvOuRz41/BpY8knjcVpHKlcTlCIvQEUs+N12SD7jhdVSsf2EKGLsMLIHvwqgb9mgczcgTQ/ac84vSxbr0/1EmT2GKQ5GHYYDDuAnyd6O6p1gk/NKtAD0MphtAujvk/M2s8JRE4ADWB0SSAmktOpAv7C7uHZCW+jHToXANj2qd0t+X0th9qEbvh7GSkA5mbeCy7cFmvNE4TaCji7bHF+1Zo4sVxrniC1D8AEuxKPsjluA6g8muyDa9da9/F9TaM/wAcSz0RlELj/AwAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/default/haxeui_small.png", data : "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAC91BMVEUAAABgbY0+U25ga4QwSGe/wMy2ucI8SWC1t8OGj6Sana+zuMd3gppicY1ibYm0ucUzZZvH0ODExdZ8hZw/TGQ+TGPFxth/hp+vtMJNXHLExNI/TmVlhq5hbYi6vc2pr75veZI0ZpyrvdTK0+Q7WoC0t8d/iZ/Gx9ezuMaorb3Gx9dmc49OWm+DiaOpw+CVqMJUe6uwtcGprr5gbIdteZRaZn11gJpgbIhiborM1+g/XoM4WH2zusw8S2RhaYFCUGVuepdyfJVLWG9UYHjDxdZhbYg8SmGeprfKytmSmKw6bqZnjryTqseXq8RQd6mmrb58iaF4g5m2uMd4gZiorrx3gZeKkqZmco5smMg0Y5fP3e5ol8rS3+4+drUzZZs0ZJhPe67AzN7J0+RTeKc5X4o3WoNCYog6WoKuv9ZihK7M1ea+ydyht9JBX4U2V35ieZzAxtd7h59ldZPIzt9je6BBVHBYZoDBwtNMWHCco7Rea4KYqsRWcJZxeI6/wtJSXXTEw9O6vc08RVicpLU5SV7Ly904Rl19h55KVm43RFpLf7lFerOZuNqcudpIeK48bqWftdGftdGZsc6OqsuswdlLd62qv9l2lrxjh7NlibRJbpumudBcga6svtWnutJdg7GKoL6svdZylL1uj7ZSeahJbJREZZCGlKyOm7OZorNgboyxtcNwfJmKkqWhprSHjaB5fJBmc4yor7ylp7Vomc08drVRiMSUttt+p9OStdt9p9M9d7bQ3+9nmMypxOGBqdQ6dbRtnc9gk8qsxuN6pdJ1odFwntBtnM1pms1SicVQh8RHfrs8draqxeKhvuCaut5yoNBilctajsZYjMSXuNxOhcBBerg0aJ8zZ52nwuGdvN6Vt9yOstlklcpckMZNhcM5b6o3a6TR4PDL2+7K2u23zuejwOBekchSisZZjcRVicI6c7EyZZvT4fHF2OzC1eu+0umkweGJr9dfkspik8hWi8VMg75Lgr1Bdq85cq+yyuWEq9VFe7VNUsNiAAAAtHRSTlMABQIDBAYDEgUFAhYWChcK/ac7OzYuFxQTDQwJpjsgDw/9p6aXOjQyMisTExIL+KenPDc0MiciGxXQlpVyXUdCPDk1MSIiHhwVD/7Tx6SkcG1dR0dGLCsq+/r5+Pb29vDMxL28vLerqKOhoKCXj454dnV1cXBpaGdiXldVTUlIQkE8OzYzKiYgHhz9/fz48fHW087OzMzKysjCwLu7t6Cgn5eXlJSFhXl4bm1jY11FRUM4IQf95cbSAAAEV0lEQVRIx32WZZwSQRjGF1ZQMMAEG+zE7u7u7u7u7u7u7m4WdlkQFEwEFOG48+70zu5u/eAE7C6s+nzgA7/3P888O/PODAEkTwclk4EfuZKIllQpV2BJJCRJoHKFKr82PZY2vyqaIRWlm2k0GZBK6jJKpOA/Rf4mxReULwdUuHCx4vm0KlkEUYJyzZLORbJC1atXsUuVnICQq5rMGLm7ANLQoTXLFeMQWF65yNmjrVqVgWq198DMKhkBkL/4vkCiz3vRcxHIsPFEe4woLsDyDm3XGsDfHqfXnvzFdKhSTpJIpy0/ImA2M0zg3tOEBI/n4q6aHYud1zbTZahccdaRlhedzqe+pNv+Bw9umoKjGpRKQ8jSF878lDEjJQZ83gSnYXOb0ws6d6o3a9w6g9Nntz37cvOmCejGiur1w8ATBGAxifc+JOw4dqrduJbepKs3wMARPW9evX5aAOSYl/lREg9Axuxb1bJF1zuCauSgL5QNAVkyW++ZY8RcvWOKlVsdAQpanUxM/RWj8VNM/Y3veh54z8SMbwSK9WiurwGBdE0B8DYQMz7S5aj6YKq+xkIIlCg63PpIGIK5bTOGCWHobyH96OxpwcLlWjShu/WDsB7Wij1+x/eutRistFKVb24160+Gnw8cX0zcSIkfNH9ZbikB5zTF+pbh8/ISJn8e6lYrO4gA+iFXw9n93yRG5xV7fH09pE5jaEAoZU2Lju3pwRYgr4i4iVehzyRgAABk0b7ae0aYV+zxPHUgNAAAtChRrOYjOD6XV0wE9VOxAbbI17GfNyqvKLl78JylKAG2SF++jYHPK9Yn0+rJoHkiAGzTaeuF44s9BkyH7SkENlz6H3B/OwKEU1pJ/8fiLrUGT0kQOommr/2r3k9RP/jQ+LM+pmna8vdZXb9LUZRDjT8rt3BPXP8kXrAAYENo4fit4bPQUNfE4/sdFARS8NbgNp8dVCMPcV6sV9zmQ9v7nYv+O3GfCouNx9sbN9BDj4UWEThvRLdScQPhFn1opjlZBDn8LMUp5TVqUXwIPP5IC3QpOm8kRLwaHgL4mHmHMvOz4r8nL0dIDY8ZfJA9wRH4WfF5eaWqa3AnnxcBQg8uL5+6uZo7jB9+xIDQA48v1A8I4OP+sUtYbLdbrnXd0ne5m3I4oggI4AvFKQDsruRg3M627dqN35rs/8YKEDYELhQMmC3h2tvX77odvfq2PVOkU6dztce36HH92Ut3HBsOkQKvLHQp/oLzuPI56I67dYsdMLFDkSUanS5Towq1x2yzGW3Jz158jYOzewUvRdieI2nXtZewlmV7bTrZoWJlTWkJmUaSsSpAjrfoYQMyfn7pZqnDoE3Rxb5/T1mo1q1bT6xbsXLJjBLUvSRGxgzLgzXsILrYCUWzJuh1ULduXfg6gOXhVpQipEuFvFgVKqGnAyGH748MQJkyVS2pQ6PzAoiuZNVMSJHHiRQgCgkWSSqlMc8fKUlKsPDz5w9agXK/G5FNrAAAAABJRU5ErkJggg"},{ name : "haxeui-core/styles/shared/error-small.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABGklEQVQ4jYWSPUrEUBRGz3sTbHQ2ohi1yE9hkwmCS7AQsVBEEMWViI0wiI1YuInUGi0EFyCDW5g4MMHkWgxqJr4bb/n4zrn3gwcd85EGwSSJo66M1eHwSDB5beuHcRqcajnjhAfhgRiGjQUC5nwpyy//FTjg73FK5gRteGHvEIDy9lqVWA0GsCs+dnm1tVAuijQ6mxOoZ5dTKEtH7V+JV2wF61I7OyPlFETazz+SSRI/eohXQeUKzba7BbMFyKcBGKfRjkHugF4z0PM3AKheX/6wgpz0s+crC9DP8nvB7NI6pRdv4qXbKgyN3i5J/T6iHr2pMDg+klbHBTsFisQJqwKAYhDsY8wNYAwcL2ZPQy2rTpFGfpGEa12ZLwdajcanz1XAAAAAAElFTkSuQmCC"},{ name : "haxeui-core/styles/shared/error-medium.png", data : "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACJElEQVRYhcXXzWsTQRjH8e8zSUprmv4JohTEm4fS9CJKbRUsePAFFPGkgVoE/xqxFnyDHvTmzZONUBAlkYCIF0GrnsRLS2uEJO4+HrRh1ybZecZin9OwJM/vszOzOyzscUnoH5vTUxPq9CaIi+Poztjz1y/+G2BrdvKcqDwGCn8uRahWRqv1h9ZebhfCAXKI3G/OlOet/Uwz0Cc8WSqwUFypLe06wCM8COEFMISbEZmAgHATYiBgULg7OI7bfwCA+Msn4rUPQYh8SDhA/vgMhSvXAOgs36PdGyAKi82ZMv0QPR9Dn2nXdjsxbvX7WRLR8xHdAfBe81YidDBgICIFsGy45F1rKxPQF9EFmHd7YglSYyPCAXyfLh8RlUfe4ZBeAr8ZSCJub85OHe0CJEcFGLJ0SS1BxwQAcE6Z7wIU/WntkNp4thn4XRJ3uoBYZRH4YQME7YHt6kicu9UFjK3U3qvqaaDp20HX14kaNaJGDd3YMIU75WKx+qoBf72Kt05MHhORp0DR0tEavq9ae7J9YcdZ4IuQUonC1QVkeIT2gyX021dzOPR4E5aq9VVVnSNjOQoXLlM4c578yTmGKjeCwnsCfBHx57XE+GNQOGQdxxnL4cYPIcMjRO/eBIVnAnwQAyoz3AsQiPAK9wYYEd7hJoAnwhRuBmQgzOEQ8GVUqtZXQc6SPjvaKnrJGg7/8HG6eWrisIvcdXCCuLujz16+De21p/ULbmcp8bwvNP8AAAAASUVORK5CYII"},{ name : "haxeui-core/styles/shared/close-button-light.png", data : "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TS0UrDnaQ4pChOlnwC3GUKhbBQmkrtOpgcumH0KQhSXFxFFwLDn4sVh1cnHV1cBUEwQ8QNzcnRRcp8X9JoUWMB8f9eHfvcfcOEBoVpppdY4CqWUY6ERdz+RUx+IpeBBBEBOMSM/VkZiELz/F1Dx9f72I8y/vcn6NPKZgM8InEs0w3LOJ14ulNS+e8TxxmZUkhPiceNeiCxI9cl11+41xyWOCZYSObniMOE4ulDpY7mJUNlXiKOKqoGuULOZcVzluc1UqNte7JXxgqaMsZrtMcQgKLSCIFETJq2EAFFmK0aqSYSNN+3MMfcfwpcsnk2gAjxzyqUCE5fvA/+N2tWZyccJNCcSDwYtsfw0BwF2jWbfv72LabJ4D/GbjS2v5qA5j5JL3e1qJHQP82cHHd1uQ94HIHGHzSJUNyJD9NoVgE3s/om/LAwC3Qs+r21trH6QOQpa6WboCDQ2CkRNlrHu/u7uzt3zOt/n4AgVdyrUq8E1wAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQflCwUHHhl/NmAoAAABNElEQVQ4y92QsU4CQRCG/9nbdb2jsFHvBUh4A2NrjDEhhkeAWNNySnkl5HgHPR8BExpotbbS8AqExoS7y3Jkx+IguRAusdWpdnbnn3+/H/jzReXmcTA40UI3U9qMR0GQlN96UVTzWLaMNZNhv/+9uxflIS10E4yGa1WnF0W1sti1qgNGQwvdLGtkuUlpM/Yg28Tsu1bdPwyHsRXCeizbAJ8zaOmk6rUSoexGhWBRDBXnTOTxPhodCmbL2wbDBwAGLZ1MPYdhd7U/K36bduquDpo51QjwCwRKCHzmQNYvbq8/36fTvHLB7utb8dLJVJxq86Eg6gT4kp3G5c3V19tstj6I4LFsgQvnTORPYdhdjYIgSWnzwqAFgU+P6eiuMgNjzQSE+X7aoyBIMpHHIMyNNRP8r/oB7XSENXBA5j4AAAAASUVORK5CYII"},{ name : "__ASSET__:bitmap_flixel_addons_transition__FlxTransitionSprite_RawGraphicTransTileCircle", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWlBQUFBQWdDQVlBQUFBckZzTTFBQUFBQVhOU1IwSUFyczRjNlFBQUF2SkpSRUZVZUp6dDNORnUyekFNQmRCNi8vL1Azc01RTEREcU9MSXRVclRPQVlvTmJXS3lXU1BkVVVhWGRWMS9BSW80V3JDV2hKcDdydlp5MStMYzJrZXZUZUdvajZqTjZMYytvamZDOXg2eU51RWxzZmEvQmdRUW9JRUEwSzVLQU9oWis2Z0hBV0JDQWdod1pMWUFjR2Z0MWg2eUFrQkU3YjBlQklCSkNTQlF6OTZiOXU3cGd3Qnd2eEVEUUdUdGJRODJvSWtKSUZCRDZ4dDFsT25EUzBzLzdrR0k3Y0VFZ2hRQ0NMU0xta0I4cXZXdEVhWVBMeVBmZ3hCUmU2OEhBWUFwL2NsdUFBcFpmejR2MkVkZlAxTXYraG85TjZTamEwZHNobnMxSWpkaW16NzhtSUJRVStRRTRsTzlJMWY2eVRnQ2NRUVIzNE1GbUdtWmdGQko5QVRpZGMzbzUvYllsR3gwd0ZBRUVNNWFOeDhSOVhvOHR2ZDFxbXo4bVVjUUdhL1J1dmt6UTVXZkRlaENBS0hWWHVEb0dVVE9YTGZxNHA1NUR3WkFHQUdrdHFqcHczdTlPeDV6ZDgzUm50dnpXZ0NQSUlEVXRBMGVFVUVrNHdpRUdJNUFnSEFDeURYUkU0aFh6VE5mcXlqckhveXNtMEJIdTVjR29Cc0I1THp0Qk9MSlJ0bkVBWGlJNmdFa1l3THhxdnZONXlMcW5ua01BS1NxSGtBQWdJS3FCNURscDk5dnZ6eXErODNuSXVxZWVRd0FwS29lUURJdE8zOS9valBmMzlOZkV3QXVFRUN1eVpqQWZLcjN0RTMvanU5bmxQRDB0SDhiZ0VzRWtKcTJ3U2NpQ0xWYzMyWjdUdFl4WHVZeFp1YlBpcDlUU0NTQTFCWTlnY200QitYSzliS2UyL05hQUk4Z2dOQnFML1QwREVPakhLTkU2TmwzMWRjRWVDQUJoTE9XelVkRXZSNlA3WDJkS3B0KzVpVE5FUkJNU0FDaGtxT3cweU1NWlJ6anVBa1dlTHhsWGYzaVRQalN0MitXdXpiN3U5NmNMZjMwWGhBKzlSSzFHUDNXUS9SQytONUQxaUs4Sk5ZR0V4Qm9FRDJCeVRnQ3lyd0hKZk1vYjdTYnVlSHhURUNnaHRZMzZ0Vk43dTZGWVlRcHpGRVBKakR4UGRpQUppYUFRRDE3YjlxNy8yZWRjUVIwZCszV0hoeEJ4ZlpnQTVxWUFBSWNPYnRJakRLRkVZRCtHekVBbWNCTVNnQUJXaHd0R0QzdWI1Z3RBR1VkUWZXc2ZkU0RJNmdKQ1NCQUpRSlF1eW9CYU1ZanFJemE3ejJrQm9DL0tSRFdBS1A2d3BFQUFBQUFTVVZPUks1Q1lJST0"},{ name : "haxeui-core/styles/default/frames.css", data : "LmZyYW1lIHsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgcGFkZGluZzogMHB4OwogICAgaG9yaXpvbnRhbC1zcGFjaW5nOiAzcHg7Cn0KCi5mcmFtZS1ib3JkZXIgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRub3JtYWwtYm9yZGVyLWNvbG9yOwp9CgouZnJhbWUtYm9yZGVyOmRpc2FibGVkIHsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRkaXNhYmxlZC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRkaXNhYmxlZC1ib3JkZXItY29sb3I7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGRpc2FibGVkLWJvcmRlci1jb2xvcjsKfQoKLmZyYW1lLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgouZnJhbWUubm8tcGFkZGluZyAuZnJhbWUtY29udGVudHMgewogICAgcGFkZGluZzogMXB4OwogICAgcGFkZGluZy10b3A6IDFweDsKfQoKLmZyYW1lLXRpdGxlIHsKICAgIGNvbG9yOiAkbm9ybWFsLXRleHQtY29sb3I7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLmZyYW1lLXRpdGxlOmRpc2FibGVkIHsKICAgIGNvbG9yOiAkZGlzYWJsZWQtdGV4dC1jb2xvcjsKfQoKLmZyYW1lLWxlZnQtbGluZSB7CiAgICB3aWR0aDogMTBweDsKfQoKLmZyYW1lLWxlZnQtbGluZSwgLmZyYW1lLXJpZ2h0LWxpbmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogJG5vcm1hbC1ib3JkZXItY29sb3I7CiAgICBoZWlnaHQ6IDFweDsKfQoKLmZyYW1lLWxlZnQtbGluZTpkaXNhYmxlZCwgLmZyYW1lLXJpZ2h0LWxpbmU6ZGlzYWJsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWJvcmRlci1jb2xvcjsKICAgIGhlaWdodDogMXB4Owp9CgouZnJhbWUgLmZyYW1lLWhlYWRlciB7CiAgICBob3Jpem9udGFsLWFsaWduOiByaWdodDsKICAgIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBtYXJnaW4tbGVmdDogMHB4OwogICAgc3BhY2luZzogNXB4Owp9CgouZnJhbWUuY29sbGFwc2libGUtZnJhbWUgLmZyYW1lLXRpdGxlLCAuZnJhbWUuY29sbGFwc2libGUtZnJhbWUgLmZyYW1lLWljb24gewogICAgcG9pbnRlci1ldmVudHM6IHRydWU7Cn0KCi5mcmFtZS5jb2xsYXBzaWJsZS1mcmFtZSAuZnJhbWUtY29udGVudHMuZXhwYW5kZWQsIC5mcmFtZS5jb2xsYXBzaWJsZS1mcmFtZSAuZnJhbWUtYm9yZGVyLmV4cGFuZGVkIHsKICAgIGhpZGRlbjogZmFsc2U7Cn0KCi5mcmFtZS5jb2xsYXBzaWJsZS1mcmFtZSAuZnJhbWUtY29udGVudHMuY29sbGFwc2VkLCAuZnJhbWUuY29sbGFwc2libGUtZnJhbWUgLmZyYW1lLWJvcmRlci5jb2xsYXBzZWQgewogICAgaGlkZGVuOiB0cnVlOwp9CgouZnJhbWUtY29sbGFwc2UtZXhwYW5kLWljb24uZXhwYW5kZWQgewogICAgcmVzb3VyY2U6ICJoYXhldWktY29yZS9zdHlsZXMvc2hhcmVkL2V4cGFuZGVkLWJsdWUucG5nIjsKICAgIHBvaW50ZXItZXZlbnRzOiB0cnVlOwp9CgouZnJhbWUtY29sbGFwc2UtZXhwYW5kLWljb24uY29sbGFwc2VkIHsKICAgIHJlc291cmNlOiAiaGF4ZXVpLWNvcmUvc3R5bGVzL3NoYXJlZC9jb2xsYXBzZWQtYmx1ZS5wbmciOwogICAgcG9pbnRlci1ldmVudHM6IHRydWU7Cn0"}]; if(ArrayBuffer.prototype.slice == null) { ArrayBuffer.prototype.slice = js_lib__$ArrayBuffer_ArrayBufferCompat.sliceImpl; } var array = null; var vector = null; var view = null; var buffer = null; var len = null; lime_math_RGBA.__alpha16 = new Uint32Array(256); var _g = 0; while(_g < 256) { var i = _g++; lime_math_RGBA.__alpha16[i] = Math.ceil(i * 257.003921568627447); } var array = null; var vector = null; var view = null; var buffer = null; var len = null; lime_math_RGBA.__clamp = new Uint8Array(511); var _g = 0; while(_g < 255) { var i = _g++; lime_math_RGBA.__clamp[i] = i; } var _g = 255; var _g1 = 511; while(_g < _g1) { var i = _g++; lime_math_RGBA.__clamp[i] = 255; } lime_system_CFFI.available = false; lime_system_CFFI.enabled = false; lime_utils_Log.level = 3; if(typeof console == "undefined") { console = {} } if(console.log == null) { console.log = function() { }; } openfl_display__$internal_CanvasGraphics.hitTestCanvas = js_Browser.get_supported() ? window.document.createElement("canvas") : null; openfl_display__$internal_CanvasGraphics.hitTestContext = js_Browser.get_supported() ? openfl_display__$internal_CanvasGraphics.hitTestCanvas.getContext("2d") : null; openfl_ui_Multitouch.maxTouchPoints = 2; openfl_ui_Multitouch.supportedGestures = null; openfl_ui_Multitouch.supportsGestureEvents = false; openfl_ui_Multitouch.inputMode = 2; openfl_Vector.__meta__ = { statics : { toNullVector : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_DisplayObject.__meta__ = { fields : { __cairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, addEventListener : { SuppressWarnings : ["checkstyle:Dynamic"]}, removeEventListener : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_DisplayObject.__broadcastEvents = new haxe_ds_StringMap(); openfl_display_DisplayObject.__instanceCount = 0; openfl_display_DisplayObject.__tempStack = new lime_utils_ObjectPool(function() { return openfl_Vector.toObjectVector(null); },function(stack) { stack.set_length(0); }); DateTools.DAY_SHORT_NAMES = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; DateTools.DAY_NAMES = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; DateTools.MONTH_SHORT_NAMES = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; DateTools.MONTH_NAMES = ["January","February","March","April","May","June","July","August","September","October","November","December"]; DateTools.DAYS_OF_MONTH = [31,28,31,30,31,30,31,31,30,31,30,31]; EReg.escapeRe = new RegExp("[.*+?^${}()|[\\]\\\\]","g"); openfl_text_Font.__fontByName = new haxe_ds_StringMap(); openfl_text_Font.__registeredFonts = []; haxe_SysTools.winMetaCharacters = [32,40,41,37,33,94,34,60,62,38,124,10,13,44,59]; StringTools.winMetaCharacters = haxe_SysTools.winMetaCharacters; StringTools.MIN_SURROGATE_CODE_POINT = 65536; XmlType.Element = 0; XmlType.PCData = 1; XmlType.CData = 2; XmlType.Comment = 3; XmlType.DocType = 4; XmlType.ProcessingInstruction = 5; XmlType.Document = 6; Xml.Element = 0; Xml.PCData = 1; Xml.CData = 2; Xml.Comment = 3; Xml.DocType = 4; Xml.ProcessingInstruction = 5; Xml.Document = 6; flixel_FlxBasic.idEnumerator = 0; flixel_math_FlxBasePoint.pool = (function($this) { var $r; var x = 0; var y = 0; $r = new flixel_util_FlxPool(function() { return new flixel_math_FlxBasePoint(x,y); }); return $r; }(this)); flixel_math_FlxRect._pool = (function($this) { var $r; var X = 0; var Y = 0; var Width = 0; var Height = 0; $r = new flixel_util_FlxPool(function() { return new flixel_math_FlxRect(X,Y,Width,Height); }); return $r; }(this)); lime_math_Matrix3.__identity = new lime_math_Matrix3(); openfl_geom_Matrix.__meta__ = { fields : { equals : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, to3DString : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, toMozString : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_geom_Matrix.__identity = new openfl_geom_Matrix(); openfl_geom_Matrix.__pool = new lime_utils_ObjectPool(function() { return new openfl_geom_Matrix(); },function(m) { m.identity(); }); openfl_geom_Matrix.__matrix3 = new lime_math_Matrix3(); openfl_geom_ColorTransform.__pool = new lime_utils_ObjectPool(function() { return new openfl_geom_ColorTransform(); },function(ct) { ct.__identity(); }); flixel_FlxCamera.__meta__ = { fields : { getViewRect : { deprecated : ["getViewMarginRect"]}}}; flixel_FlxCamera.defaultZoom = 1.0; flixel_FlxCamera.drawVertices = openfl_Vector.toFloatVector(null); flixel_FlxCamera.trianglesSprite = new openfl_display_Sprite(); flixel_FlxCamera.renderPoint = (function($this) { var $r; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; $r = point; return $r; }(this)); flixel_FlxCamera.renderRect = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_system_FlxVersion.sha = "a7d8e3bad89a0a3506a4714121f73d8e34522c49\n"; flixel_math_FlxRandom._arrayFloatHelper = null; flixel_math_FlxRandom.MULTIPLIER = 48271.0; flixel_math_FlxRandom.MODULUS = 2147483647; flixel_util_FlxSave.invalidChars = new EReg("[ ~%&\\\\;:\"',<>?#]+","g"); flixel_FlxG.autoPause = true; flixel_FlxG.fixedTimestep = true; flixel_FlxG.timeScale = 1.0; flixel_FlxG.animationTimeScale = 1.0; flixel_FlxG.worldDivisions = 6; flixel_FlxG.VERSION = new flixel_system_FlxVersion(5,6,2); flixel_FlxG.elapsed = 0; flixel_FlxG.maxElapsed = 0.1; flixel_FlxG.scaleMode = new flixel_system_scaleModes_RatioScaleMode(); flixel_FlxG.worldBounds = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_FlxG.save = new flixel_util_FlxSave(); flixel_FlxG.random = new flixel_math_FlxRandom(); flixel_FlxG.swipes = []; flixel_FlxG.html5 = new flixel_system_frontEnds_HTML5FrontEnd(); flixel_FlxG.inputs = new flixel_system_frontEnds_InputFrontEnd(); flixel_FlxG.console = new flixel_system_frontEnds_ConsoleFrontEnd(); flixel_FlxG.log = new flixel_system_frontEnds_LogFrontEnd(); flixel_FlxG.bitmapLog = new flixel_system_frontEnds_BitmapLogFrontEnd(); flixel_FlxG.watch = new flixel_system_frontEnds_WatchFrontEnd(); flixel_FlxG.debugger = new flixel_system_frontEnds_DebuggerFrontEnd(); flixel_FlxG.bitmap = new flixel_system_frontEnds_BitmapFrontEnd(); flixel_FlxG.cameras = new flixel_system_frontEnds_CameraFrontEnd(); flixel_FlxG.initialWidth = 0; flixel_FlxG.initialHeight = 0; flixel_FlxG.signals = new flixel_system_frontEnds_SignalFrontEnd(); flixel_system_FlxSplash.muted = true; flixel_FlxObject.defaultPixelPerfectPosition = false; flixel_FlxObject.SEPARATE_BIAS = 4; flixel_FlxObject.defaultMoves = true; flixel_FlxObject.LEFT = 1; flixel_FlxObject.RIGHT = 16; flixel_FlxObject.UP = 256; flixel_FlxObject.DOWN = 4096; flixel_FlxObject.NONE = 0; flixel_FlxObject.CEILING = 256; flixel_FlxObject.FLOOR = 4096; flixel_FlxObject.WALL = 17; flixel_FlxObject.ANY = 4369; flixel_FlxObject._firstSeparateFlxRect = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_FlxObject._secondSeparateFlxRect = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_FlxSprite.defaultAntialiasing = false; flixel_addons_api_FlxGameJolt.HASH_MD5 = 0; flixel_addons_api_FlxGameJolt.HASH_SHA1 = 1; flixel_addons_api_FlxGameJolt.TROPHIES_MISSING = -1; flixel_addons_api_FlxGameJolt.TROPHIES_ACHIEVED = -2; flixel_addons_api_FlxGameJolt.hashType = 0; flixel_addons_api_FlxGameJolt.verbose = false; flixel_addons_api_FlxGameJolt._gameID = 0; flixel_addons_api_FlxGameJolt._privateKey = ""; flixel_addons_api_FlxGameJolt._initialized = false; flixel_addons_api_FlxGameJolt._verifyAuth = false; flixel_addons_api_FlxGameJolt._getImage = false; flixel_addons_api_FlxGameJolt.returnMap = new haxe_ds_StringMap(); flixel_addons_api_FlxGameJolt.URL_API = "https://gamejolt.com/api/game/v1/"; flixel_addons_api_FlxGameJolt.RETURN_TYPE = "?format=keypair"; flixel_addons_api_FlxGameJolt.URL_GAME_ID = "&game_id="; flixel_addons_api_FlxGameJolt.URL_USER_NAME = "&username="; flixel_addons_api_FlxGameJolt.URL_USER_TOKEN = "&user_token="; openfl_display_Shader.__meta__ = { fields : { glProgram : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; flixel_addons_display_FlxRuntimeShader.PRAGMA_HEADER = "#pragma header"; flixel_addons_display_FlxRuntimeShader.PRAGMA_BODY = "#pragma body"; flixel_addons_display_FlxSliceSprite.TOP_LEFT = 0; flixel_addons_display_FlxSliceSprite.TOP = 1; flixel_addons_display_FlxSliceSprite.TOP_RIGHT = 2; flixel_addons_display_FlxSliceSprite.LEFT = 3; flixel_addons_display_FlxSliceSprite.CENTER = 4; flixel_addons_display_FlxSliceSprite.RIGHT = 5; flixel_addons_display_FlxSliceSprite.BOTTOM_LEFT = 6; flixel_addons_display_FlxSliceSprite.BOTTOM = 7; flixel_addons_display_FlxSliceSprite.BOTTOM_RIGHT = 8; flixel_addons_display_FlxSliceSprite.helperRect = new flixel_math_FlxRect(); flixel_addons_display_FlxSliceSprite.helperSize = new flixel_math_FlxBasePoint(0,0); flixel_addons_display_FlxSliceSprite.helperDst = new flixel_math_FlxBasePoint(0,0); flixel_addons_display_FlxSliceSprite.helperBdSize = new flixel_math_FlxBasePoint(0,0); flixel_addons_editors_tiled_TiledObject.FLIPPED_VERTICALLY_FLAG = 1073741824; flixel_addons_editors_tiled_TiledObject.FLIPPED_HORIZONTALLY_FLAG = -2147483648; flixel_addons_editors_tiled_TiledObject.RECTANGLE = 0; flixel_addons_editors_tiled_TiledObject.ELLIPSE = 1; flixel_addons_editors_tiled_TiledObject.POLYGON = 2; flixel_addons_editors_tiled_TiledObject.POLYLINE = 3; flixel_addons_editors_tiled_TiledObject.TILE = 4; flixel_addons_editors_tiled_TiledTile.FLIPPED_HORIZONTAL = -2147483648; flixel_addons_editors_tiled_TiledTile.FLIPPED_VERTICAL = 1073741824; flixel_addons_editors_tiled_TiledTile.FLIPPED_DIAGONAL = 536870912; flixel_addons_editors_tiled_TiledTile.ROTATE_0 = 0; flixel_addons_editors_tiled_TiledTile.ROTATE_90 = 1; flixel_addons_editors_tiled_TiledTile.ROTATE_270 = 2; flixel_addons_editors_tiled_TiledTileLayer.BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; flixel_addons_plugin_FlxMouseControl.ASCENDING = -1; flixel_addons_plugin_FlxMouseControl.DESCENDING = 1; flixel_addons_plugin_FlxMouseControl.sortIndex = "y"; flixel_addons_plugin_FlxMouseControl.sortOrder = -1; flixel_addons_plugin_FlxMouseControl.isDragging = false; flixel_addons_plugin_FlxMouseControl.linkToDeadZone = false; flixel_addons_plugin_FlxMouseControl._clickStack = []; flixel_addons_plugin_FlxMouseControl._hasClickTarget = false; flixel_addons_plugin_FlxMouseControl._oldX = 0; flixel_addons_plugin_FlxMouseControl._oldY = 0; openfl_geom_Point.__pool = new lime_utils_ObjectPool(function() { return new openfl_geom_Point(); },function(p) { p.setTo(0,0); }); flixel_addons_plugin_FlxScrollingText.members = new haxe_ds_ObjectMap(); flixel_addons_plugin_FlxScrollingText.zeroPoint = new openfl_geom_Point(0,0); flixel_addons_plugin_control_FlxControl._members = new haxe_ds_ObjectMap(); flixel_addons_plugin_control_FlxControlHandler.MOVEMENT_INSTANT = 0; flixel_addons_plugin_control_FlxControlHandler.MOVEMENT_ACCELERATES = 1; flixel_addons_plugin_control_FlxControlHandler.STOPPING_INSTANT = 0; flixel_addons_plugin_control_FlxControlHandler.STOPPING_DECELERATES = 1; flixel_addons_plugin_control_FlxControlHandler.STOPPING_NEVER = 2; flixel_addons_plugin_control_FlxControlHandler.ROTATION_INSTANT = 0; flixel_addons_plugin_control_FlxControlHandler.ROTATION_ACCELERATES = 1; flixel_addons_plugin_control_FlxControlHandler.ROTATION_STOPPING_INSTANT = 0; flixel_addons_plugin_control_FlxControlHandler.ROTATION_STOPPING_DECELERATES = 1; flixel_addons_plugin_control_FlxControlHandler.ROTATION_STOPPING_NEVER = 2; flixel_addons_plugin_control_FlxControlHandler.KEYMODE_PRESSED = 0; flixel_addons_plugin_control_FlxControlHandler.KEYMODE_JUST_DOWN = 1; flixel_addons_plugin_control_FlxControlHandler.KEYMODE_RELEASED = 2; flixel_addons_plugin_control_FlxControlHandler.DIAGONAL_COMPENSATION_FACTOR = 0.707106781185; flixel_text_FlxText.VERTICAL_GUTTER = 4; flixel_addons_text_TypeSound.resourceName = "__ASSET__:sound_flixel_addons_text_TypeSound"; flixel_addons_text_FlxTypeText.helperString = ""; openfl_text_TextField.__missingFontWarning = new haxe_ds_StringMap(); flixel_tile_FlxBaseTilemap.offsetAutoTile = [0,0,0,0,2,2,0,3,0,0,0,0,0,0,0,0,11,11,0,0,13,13,0,14,0,0,0,0,18,18,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,0,0,53,53,0,54,0,0,0,0,0,0,0,0,62,62,0,0,64,64,0,65,0,0,0,0,69,69,0,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,86,0,0,88,88,0,89,0,0,0,0,93,93,0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,162,0,163,0,0,0,0,0,0,0,0,0,172,0,0,0,175,0,176,0,0,0,0,0,181,0,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,0,0,0,202,0,203,0,0,0,0,0,208,0,209]; flixel_tile_FlxBaseTilemap.diagonalPathfinder = new flixel_path_FlxDiagonalPathfinder(); flixel_tile_FlxTypedTilemap.defaultFramePadding = 2; flixel_addons_tile_FlxTileSpecial.ROTATE_0 = 0; flixel_addons_tile_FlxTileSpecial.ROTATE_90 = 1; flixel_addons_tile_FlxTileSpecial.ROTATE_270 = 2; openfl_display_BitmapData.__meta__ = { fields : { image : { SuppressWarnings : ["checkstyle:Dynamic"]}, __framebufferContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __indexBufferContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __surface : { SuppressWarnings : ["checkstyle:Dynamic"]}, __textureContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __vertexBufferContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, compare : { SuppressWarnings : ["checkstyle:Dynamic"]}, getSurface : { SuppressWarnings : ["checkstyle:Dynamic"]}, __fromImage : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_BitmapData.VERTEX_BUFFER_STRIDE = 14; openfl_display_BitmapData.__supportsBGRA = null; openfl_display_BitmapData.__tempVector = new lime_math_Vector2(); flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.resourceType = "image/png"; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileCircle.resourceName = "__ASSET__:bitmap_flixel_addons_transition__FlxTransitionSprite_RawGraphicTransTileCircle"; flixel_addons_transition_GraphicTransTileCircle.WIDTH = 544; flixel_addons_transition_GraphicTransTileCircle.HEIGHT = 32; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.resourceType = "image/png"; flixel_addons_transition__$FlxTransitionSprite_RawGraphicTransTileDiamond.resourceName = "__ASSET__:bitmap_flixel_addons_transition__FlxTransitionSprite_RawGraphicTransTileDiamond"; flixel_addons_transition_GraphicTransTileDiamond.WIDTH = 544; flixel_addons_transition_GraphicTransTileDiamond.HEIGHT = 32; flixel_addons_transition_RawGraphicTransTileSquare.resourceType = "image/png"; flixel_addons_transition_RawGraphicTransTileSquare.resourceName = "__ASSET__:bitmap_flixel_addons_transition_RawGraphicTransTileSquare"; flixel_addons_transition_GraphicTransTileSquare.WIDTH = 544; flixel_addons_transition_GraphicTransTileSquare.HEIGHT = 32; flixel_addons_transition_FlxTransitionableState.defaultTransIn = null; flixel_addons_transition_FlxTransitionableState.defaultTransOut = null; flixel_addons_transition_FlxTransitionableState.skipNextTransIn = false; flixel_addons_transition_FlxTransitionableState.skipNextTransOut = false; flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.resourceType = "image/png"; flixel_addons_transition__$TransitionFade_RawGraphicDiagonalGradient.resourceName = "__ASSET__:bitmap_flixel_addons_transition__TransitionFade_RawGraphicDiagonalGradient"; flixel_addons_transition_GraphicDiagonalGradient.WIDTH = 319; flixel_addons_transition_GraphicDiagonalGradient.HEIGHT = 128; flixel_addons_transition_TransitionFade.GRADIENT_PATH = "flixel/images/transitions/diagonal_gradient.png"; flixel_addons_ui_Anchor.LEFT = "left"; flixel_addons_ui_Anchor.RIGHT = "right"; flixel_addons_ui_Anchor.TOP = "top"; flixel_addons_ui_Anchor.BOTTOM = "bottom"; flixel_addons_ui_Anchor.CENTER = "center"; flixel_addons_ui_Anchor.UNKNOWN = "unknown"; flixel_addons_ui_FlxButtonPlus.NORMAL = 0; flixel_addons_ui_FlxButtonPlus.HIGHLIGHT = 1; flixel_addons_ui_FlxButtonPlus.PRESSED = 2; flixel_addons_ui_FlxInputText.NO_FILTER = 0; flixel_addons_ui_FlxInputText.ONLY_ALPHA = 1; flixel_addons_ui_FlxInputText.ONLY_NUMERIC = 2; flixel_addons_ui_FlxInputText.ONLY_ALPHANUMERIC = 3; flixel_addons_ui_FlxInputText.CUSTOM_FILTER = 4; flixel_addons_ui_FlxInputText.ALL_CASES = 0; flixel_addons_ui_FlxInputText.UPPER_CASE = 1; flixel_addons_ui_FlxInputText.LOWER_CASE = 2; flixel_addons_ui_FlxInputText.BACKSPACE_ACTION = "backspace"; flixel_addons_ui_FlxInputText.DELETE_ACTION = "delete"; flixel_addons_ui_FlxInputText.ENTER_ACTION = "enter"; flixel_addons_ui_FlxInputText.INPUT_ACTION = "input"; flixel_addons_ui_FlxUISprite.RESIZE_RATIO_X = 0; flixel_addons_ui_FlxUISprite.RESIZE_RATIO_Y = 1; flixel_addons_ui_FlxUISprite.RESIZE_RATIO_UNKNOWN = -1; openfl_geom_Rectangle.__pool = new lime_utils_ObjectPool(function() { return new openfl_geom_Rectangle(); },function(r) { r.setTo(0,0,0,0); }); flixel_addons_ui_FlxUI9SliceSprite.bitmapsCreated = 0; flixel_addons_ui_FlxUI9SliceSprite.useSectionCache = true; flixel_addons_ui_FlxUI9SliceSprite._staticPoint = new openfl_geom_Point(); flixel_addons_ui_FlxUI9SliceSprite._staticRect = new openfl_geom_Rectangle(); flixel_addons_ui_FlxUI9SliceSprite._staticRect2 = new openfl_geom_Rectangle(); flixel_addons_ui_FlxUI9SliceSprite._staticPointZero = new openfl_geom_Point(0,0); flixel_addons_ui_FlxUI9SliceSprite._staticMatrix = new openfl_geom_Matrix(); flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_addons_ui_FlxUI9SliceSprite._staticFlxRect2 = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_addons_ui_FlxUI9SliceSprite.TILE_NONE = 0; flixel_addons_ui_FlxUI9SliceSprite.TILE_BOTH = 17; flixel_addons_ui_FlxUI9SliceSprite.TILE_H = 16; flixel_addons_ui_FlxUI9SliceSprite.TILE_V = 1; flixel_addons_ui_FlxUIAssets.IMG_BUTTON = "flixel/flixel-ui/img/button.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_DOWN = "flixel/flixel-ui/img/button_arrow_down.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_LEFT = "flixel/flixel-ui/img/button_arrow_left.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_RIGHT = "flixel/flixel-ui/img/button_arrow_right.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_ARROW_UP = "flixel/flixel-ui/img/button_arrow_up.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_THIN = "flixel/flixel-ui/img/button_thin.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_TOGGLE = "flixel/flixel-ui/img/button_toggle.png"; flixel_addons_ui_FlxUIAssets.IMG_BUTTON_SIZE = 18; flixel_addons_ui_FlxUIAssets.IMG_CHECK_MARK = "flixel/flixel-ui/img/check_mark.png"; flixel_addons_ui_FlxUIAssets.IMG_CHECK_BOX = "flixel/flixel-ui/img/check_box.png"; flixel_addons_ui_FlxUIAssets.IMG_CHROME = "flixel/flixel-ui/img/chrome.png"; flixel_addons_ui_FlxUIAssets.IMG_CHROME_LIGHT = "flixel/flixel-ui/img/chrome_light.png"; flixel_addons_ui_FlxUIAssets.IMG_CHROME_FLAT = "flixel/flixel-ui/img/chrome_flat.png"; flixel_addons_ui_FlxUIAssets.IMG_CHROME_INSET = "flixel/flixel-ui/img/chrome_inset.png"; flixel_addons_ui_FlxUIAssets.IMG_RADIO = "flixel/flixel-ui/img/radio.png"; flixel_addons_ui_FlxUIAssets.IMG_RADIO_DOT = "flixel/flixel-ui/img/radio_dot.png"; flixel_addons_ui_FlxUIAssets.IMG_TAB = "flixel/flixel-ui/img/tab.png"; flixel_addons_ui_FlxUIAssets.IMG_TAB_BACK = "flixel/flixel-ui/img/tab_back.png"; flixel_addons_ui_FlxUIAssets.IMG_BOX = "flixel/flixel-ui/img/box.png"; flixel_addons_ui_FlxUIAssets.IMG_DROPDOWN = "flixel/flixel-ui/img/dropdown_mark.png"; flixel_addons_ui_FlxUIAssets.IMG_PLUS = "flixel/flixel-ui/img/plus_mark.png"; flixel_addons_ui_FlxUIAssets.IMG_MINUS = "flixel/flixel-ui/img/minus_mark.png"; flixel_addons_ui_FlxUIAssets.IMG_HILIGHT = "flixel/flixel-ui/img/hilight.png"; flixel_addons_ui_FlxUIAssets.IMG_INVIS = "flixel/flixel-ui/img/invis.png"; flixel_addons_ui_FlxUIAssets.IMG_SWATCH = "flixel/flixel-ui/img/swatch.png"; flixel_addons_ui_FlxUIAssets.IMG_TOOLTIP_ARROW = "flixel/flixel-ui/img/tooltip_arrow.png"; flixel_addons_ui_FlxUIAssets.IMG_FINGER_SMALL = "flixel/flixel-ui/img/finger_small.png"; flixel_addons_ui_FlxUIAssets.IMG_FINGER_BIG = "flixel/flixel-ui/img/finger_big.png"; flixel_addons_ui_FlxUIAssets.SLICE9_BUTTON = "6,6,11,11"; flixel_addons_ui_FlxUIAssets.SLICE9_BUTTON_THIN = "2,2,15,15"; flixel_addons_ui_FlxUIAssets.SLICE9_BUTTON_TOGGLE = "6,6,11,11"; flixel_addons_ui_FlxUIAssets.SLICE9_TAB = "6,6,11,11"; flixel_addons_ui_FlxUIAssets.XML_DEFAULTS_ID = "flixel/flixel-ui/xml/defaults"; flixel_addons_ui_FlxUIAssets.XML_DEFAULT_POPUP_ID = "flixel/flixel-ui/xml/default_popup"; flixel_addons_ui_FlxUIAssets.XML_DEFAULT_LOADING_SCREEN_ID = "flixel/flixel-ui/xml/default_loading_screen"; flixel_addons_ui_FlxUIAssets.index_size = null; flixel_addons_ui_FlxUITypedButton.CLICK_EVENT = "click_button"; flixel_addons_ui_FlxUITypedButton.OVER_EVENT = "over_button"; flixel_addons_ui_FlxUITypedButton.DOWN_EVENT = "down_button"; flixel_addons_ui_FlxUITypedButton.OUT_EVENT = "out_button"; flixel_addons_ui_FlxUICheckBox.CLICK_EVENT = "click_check_box"; flixel_addons_ui_FlxUIColorSwatch.CLICK_EVENT = "click_color_swatch"; flixel_addons_ui_FlxUIColorSwatchSelecter.CLICK_EVENT = "click_color_swatch_selecter"; flixel_addons_ui_FlxUICursor.KEYS_TAB = 1; flixel_addons_ui_FlxUICursor.KEYS_WASD = 16; flixel_addons_ui_FlxUICursor.KEYS_ARROWS = 256; flixel_addons_ui_FlxUICursor.KEYS_NUMPAD = 4096; flixel_addons_ui_FlxUICursor.GAMEPAD_DPAD = 65536; flixel_addons_ui_FlxUICursor.GAMEPAD_LEFT_STICK = 1048576; flixel_addons_ui_FlxUICursor.GAMEPAD_RIGHT_STICK = 16777216; flixel_addons_ui_FlxUICursor.GAMEPAD_SHOULDER_BUTTONS = 268435456; flixel_addons_ui_FlxUICursor.INPUT_NONE = 0; flixel_addons_ui_FlxUICursor.INPUT_KEYS = 1; flixel_addons_ui_FlxUICursor.INPUT_GAMEPAD = 16; flixel_addons_ui_FlxUICursorInputFlag.KEYS_TAB = 1; flixel_addons_ui_FlxUICursorInputFlag.KEYS_WASD = 16; flixel_addons_ui_FlxUICursorInputFlag.KEYS_ARROWS = 256; flixel_addons_ui_FlxUICursorInputFlag.KEYS_NUMPAD = 4096; flixel_addons_ui_FlxUICursorInputFlag.GAMEPAD_DPAD = 65536; flixel_addons_ui_FlxUICursorInputFlag.GAMEPAD_LEFT_STICK = 1048576; flixel_addons_ui_FlxUICursorInputFlag.GAMEPAD_RIGHT_STICK = 16777216; flixel_addons_ui_FlxUICursorInputFlag.GAMEPAD_SHOULDER_BUTTONS = 268435456; flixel_addons_ui_FlxUIDropDownMenu.CLICK_EVENT = "click_dropdown"; flixel_addons_ui_FlxUIInputText.CHANGE_EVENT = "change_input_text"; flixel_addons_ui_FlxUIInputText.ENTER_EVENT = "enter_input_text"; flixel_addons_ui_FlxUIInputText.DELETE_EVENT = "delete_input_text"; flixel_addons_ui_FlxUIInputText.INPUT_EVENT = "input_input_text"; flixel_addons_ui_FlxUIList.STACK_HORIZONTAL = 0; flixel_addons_ui_FlxUIList.STACK_VERTICAL = 1; flixel_addons_ui_FlxUIPopup.CLICK_EVENT = "click_popup"; flixel_addons_ui_FlxUILoadingScreen.PROGRESS = "loading_screen_progress"; flixel_addons_ui_FlxUILoadingScreen.FINISHED = "loading_screen_finished"; flixel_addons_ui_FlxUILoadingScreen.CANCELLED = "loading_screen_cancelled"; flixel_addons_ui_FlxUILoadingScreen.ACCEPTED = "loading_screen_accepted"; flixel_input_FlxPointer._cachedPoint = new flixel_math_FlxBasePoint(0,0); flixel_addons_ui_FlxUINumericStepper.STACK_VERTICAL = 0; flixel_addons_ui_FlxUINumericStepper.STACK_HORIZONTAL = 1; flixel_addons_ui_FlxUINumericStepper.CLICK_EVENT = "click_numeric_stepper"; flixel_addons_ui_FlxUINumericStepper.EDIT_EVENT = "edit_numeric_stepper"; flixel_addons_ui_FlxUINumericStepper.CHANGE_EVENT = "change_numeric_stepper"; flixel_addons_ui_FlxUIRadioGroup.CLICK_EVENT = "click_radio_group"; flixel_addons_ui_FlxUISlider.CHANGE_EVENT = "change_slider"; flixel_addons_ui_FlxUIState.static_tongue = null; flixel_addons_ui_FlxUITabMenu.CLICK_EVENT = "tab_menu_click"; flixel_addons_ui_FlxUITabMenu.STACK_FRONT = "front"; flixel_addons_ui_FlxUITabMenu.STACK_BACK = "back"; flixel_addons_ui_FontDef.EXTENSIONS = [".ttf",".otf"]; flixel_addons_ui_U._matrix = null; flixel_addons_util_FlxSimplex.SKEW = 0.3660254037; flixel_addons_util_FlxSimplex.UNSKEW = 0.2113248654; flixel_addons_util_FlxSimplex.SKEW_4D = 0.309016994; flixel_addons_util_FlxSimplex.UNSKEW_4D = 0.138196601; flixel_addons_util_FlxSimplex.p = [151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]; flixel_addons_util_FlxSimplex.cells4D = [[3,2,1,0],[2,3,1,0],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,1,0,3],[3,1,2,0],[0,0,0,0],[1,3,2,0],[1,2,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,0,3,2],[1,0,2,3],[3,2,0,1],[2,3,0,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,3,2,1],[0,2,3,1],[0,0,0,0],[0,2,1,3],[3,0,1,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,3,1,2],[0,0,0,0],[0,1,3,2],[0,1,2,3]]; flixel_addons_util_FlxSimplex.A2 = [0,0,0,0]; flixel_addons_weapon_FlxTypedWeapon.BULLET_UP = -90; flixel_addons_weapon_FlxTypedWeapon.BULLET_DOWN = 90; flixel_addons_weapon_FlxTypedWeapon.BULLET_LEFT = 180; flixel_addons_weapon_FlxTypedWeapon.BULLET_RIGHT = 0; flixel_addons_weapon_FlxTypedWeapon.BULLET_NORTH_EAST = -45; flixel_addons_weapon_FlxTypedWeapon.BULLET_NORTH_WEST = -135; flixel_addons_weapon_FlxTypedWeapon.BULLET_SOUTH_EAST = 45; flixel_addons_weapon_FlxTypedWeapon.BULLET_SOUTH_WEST = 135; flixel_animation_FlxPrerotatedAnimation.PREROTATED = "prerotated_animation"; flixel_effects_FlxFlicker._pool = new flixel_util_FlxPool(function() { return new flixel_effects_FlxFlicker(); }); flixel_effects_FlxFlicker._boundObjects = new haxe_ds_ObjectMap(); flixel_graphics_FlxGraphic.defaultPersist = false; flixel_graphics_atlas_AseAtlasTagDirection.FORWARD = "forward"; flixel_graphics_atlas_AseAtlasTagDirection.REVERSE = "reverse"; flixel_graphics_atlas_AseAtlasTagDirection.PINGPONG = "pingpong"; flixel_graphics_atlas_AseAtlasTagDirection.PINGPONG_REVERSE = "pingpong_reverse"; flixel_graphics_atlas_FlxAtlas.point = new openfl_geom_Point(); flixel_graphics_atlas_FlxAtlas.matrix = new openfl_geom_Matrix(); flixel_graphics_atlas_FlxAtlas.defaultMinSize = (function($this) { var $r; var x = 128; var y = 128; if(y == null) { y = 0; } if(x == null) { x = 0; } $r = new flixel_math_FlxBasePoint(x,y); return $r; }(this)); flixel_graphics_atlas_FlxAtlas.defaultMaxSize = (function($this) { var $r; var x = 1024; var y = 1024; if(y == null) { y = 0; } if(x == null) { x = 0; } $r = new flixel_math_FlxBasePoint(x,y); return $r; }(this)); flixel_graphics_frames_FlxBitmapFont.SPACE_CODE = 32; flixel_graphics_frames_FlxBitmapFont.TAB_CODE = 9; flixel_graphics_frames_FlxBitmapFont.NEW_LINE_CODE = 10; flixel_graphics_frames_FlxBitmapFont.DEFAULT_FONT_KEY = "DEFAULT_FONT_KEY"; flixel_graphics_frames_FlxBitmapFont.DEFAULT_FONT_DATA = " 36000000000000000000!26101010001000\"46101010100000000000000000#66010100111110010100111110010100000000$56001000111011000001101110000100%66100100000100001000010000010010000000&66011000100000011010100100011010000000'26101000000000(36010100100100010000)36100010010010100000*46000010100100101000000000+46000001001110010000000000,36000000000000010100-46000000001110000000000000.26000000001000/66000010000100001000010000100000000000056011001001010010100100110000000156011000010000100001000010000000256111000001001100100001111000000356111000001001100000101110000000456100101001010010011100001000000556111101000011100000101110000000656011001000011100100100110000000756111000001000010001100001000000856011001001001100100100110000000956011001001010010011100001000000:26001000100000;26001000101000<46001001001000010000100000=46000011100000111000000000>46100001000010010010000000?56111000001001100000000100000000@66011100100010101110101010011100000000A56011001001010010111101001000000B56111001001011100100101110000000C56011001001010000100100110000000D56111001001010010100101110000000E56111101000011000100001111000000F56111101000010000110001000000000G56011001000010110100100111000000H56100101001011110100101001000000I26101010101000J56000100001000010100100110000000K56100101001010010111001001000000L46100010001000100011100000M66100010100010110110101010100010000000N56100101001011010101101001000000O56011001001010010100100110000000P56111001001010010111001000000000Q56011001001010010100100110000010R56111001001010010111001001000000S56011101000001100000101110000000T46111001000100010001000000U56100101001010010100100110000000V56100101001010010101000100000000W66100010100010101010110110100010000000X56100101001001100100101001000000Y56100101001010010011100001001100Z56111100001001100100001111000000[36110100100100110000}46110001000010010011000000]36110010010010110000^46010010100000000000000000_46000000000000000011110000'26101000000000a56000000111010010100100111000000b56100001110010010100101110000000c46000001101000100001100000d56000100111010010100100111000000e56000000110010110110000110000000f46011010001000110010000000g5700000011001001010010011100001001100h56100001110010010100101001000000i26100010101000j37010000010010010010100k56100001001010010111001001000000l26101010101000m66000000111100101010101010101010000000n56000001110010010100101001000000o56000000110010010100100110000000p5700000111001001010010111001000010000q5700000011101001010010011100001000010r46000010101100100010000000s56000000111011000001101110000000t46100011001000100001100000u56000001001010010100100111000000v56000001001010010101000100000000w66000000101010101010101010011110000000x56000001001010010011001001000000y5700000100101001010010011100001001100z56000001111000100010001111000000{46011001001000010001100000|26101010101000}46110001000010010011000000~56010101010000000000000000000000\\46111010101010101011100000"; flixel_graphics_frames_FlxBitmapFont.DEFAULT_CHARS = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; flixel_graphics_frames_FlxBitmapFont.point = new openfl_geom_Point(); flixel_graphics_frames_FlxBitmapFont.flashRect = new openfl_geom_Rectangle(); flixel_graphics_frames_FlxFilterFrames.point = new openfl_geom_Point(); flixel_graphics_frames_FlxFilterFrames.rect = new openfl_geom_Rectangle(); flixel_graphics_frames_FlxFrame._point = new openfl_geom_Point(); flixel_graphics_frames_FlxFrame._rect = new openfl_geom_Rectangle(); flixel_graphics_frames_FlxFrame._matrix = new flixel_math_FlxMatrix(); flixel_graphics_frames_bmfont_BMFontUtil.attFinder = new EReg("(\\w+?)=(\"?)(.*?)\\2(?=\\s|$)",""); flixel_graphics_tile_FlxDrawBaseItem.drawCalls = 0; flixel_graphics_tile_FlxDrawQuadsItem.VERTICES_PER_QUAD = 4; flixel_graphics_tile_FlxDrawTrianglesItem.point = (function($this) { var $r; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; $r = point; return $r; }(this)); flixel_graphics_tile_FlxDrawTrianglesItem.rect = (function($this) { var $r; var _this = flixel_math_FlxRect._pool.get(); var X = 0; var Y = 0; var Width = 0; var Height = 0; 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; var rect = _this; rect._inPool = false; $r = rect; return $r; }(this)); flixel_input_actions_FlxInputDeviceID.ALL = -1; flixel_input_actions_FlxInputDeviceID.FIRST_ACTIVE = -2; flixel_input_actions_FlxInputDeviceID.NONE = -3; flixel_input_actions_FlxActionInputAnalog.A_X = true; flixel_input_actions_FlxActionInputAnalog.A_Y = false; flixel_input_actions_FlxSteamController.CONTROLLER_CONNECT_POLL_TIME = 0.25; flixel_input_actions_FlxSteamController.ORIGIN_DATA_POLL_TIME = 1.0; flixel_input_actions_FlxSteamController.onControllerConnect = null; flixel_input_actions_FlxSteamController.onOriginUpdate = null; flixel_input_gamepad_FlxGamepadInputID.fromStringMap = (function($this) { var $r; var _g = new haxe_ds_StringMap(); _g.h["ANY"] = -2; _g.h["A"] = 0; _g.h["B"] = 1; _g.h["X"] = 2; _g.h["Y"] = 3; _g.h["LEFT_SHOULDER"] = 4; _g.h["RIGHT_SHOULDER"] = 5; _g.h["BACK"] = 6; _g.h["START"] = 7; _g.h["LEFT_STICK_CLICK"] = 8; _g.h["RIGHT_STICK_CLICK"] = 9; _g.h["GUIDE"] = 10; _g.h["DPAD_UP"] = 11; _g.h["DPAD_DOWN"] = 12; _g.h["DPAD_LEFT"] = 13; _g.h["DPAD_RIGHT"] = 14; _g.h["LEFT_TRIGGER_BUTTON"] = 15; _g.h["RIGHT_TRIGGER_BUTTON"] = 16; _g.h["LEFT_TRIGGER"] = 17; _g.h["RIGHT_TRIGGER"] = 18; _g.h["LEFT_ANALOG_STICK"] = 19; _g.h["RIGHT_ANALOG_STICK"] = 20; _g.h["DPAD"] = 21; _g.h["TILT_PITCH"] = 26; _g.h["TILT_ROLL"] = 27; _g.h["POINTER_X"] = 28; _g.h["POINTER_Y"] = 29; _g.h["EXTRA_0"] = 30; _g.h["EXTRA_1"] = 31; _g.h["EXTRA_2"] = 32; _g.h["EXTRA_3"] = 33; _g.h["LEFT_STICK_DIGITAL_UP"] = 34; _g.h["LEFT_STICK_DIGITAL_RIGHT"] = 35; _g.h["LEFT_STICK_DIGITAL_DOWN"] = 36; _g.h["LEFT_STICK_DIGITAL_LEFT"] = 37; _g.h["RIGHT_STICK_DIGITAL_UP"] = 38; _g.h["RIGHT_STICK_DIGITAL_RIGHT"] = 39; _g.h["RIGHT_STICK_DIGITAL_DOWN"] = 40; _g.h["RIGHT_STICK_DIGITAL_LEFT"] = 41; $r = _g; return $r; }(this)); flixel_input_gamepad_FlxGamepadInputID.toStringMap = (function($this) { var $r; var _g = new haxe_ds_IntMap(); _g.h[-2] = "ANY"; _g.h[0] = "A"; _g.h[1] = "B"; _g.h[2] = "X"; _g.h[3] = "Y"; _g.h[4] = "LEFT_SHOULDER"; _g.h[5] = "RIGHT_SHOULDER"; _g.h[6] = "BACK"; _g.h[7] = "START"; _g.h[8] = "LEFT_STICK_CLICK"; _g.h[9] = "RIGHT_STICK_CLICK"; _g.h[10] = "GUIDE"; _g.h[11] = "DPAD_UP"; _g.h[12] = "DPAD_DOWN"; _g.h[13] = "DPAD_LEFT"; _g.h[14] = "DPAD_RIGHT"; _g.h[15] = "LEFT_TRIGGER_BUTTON"; _g.h[16] = "RIGHT_TRIGGER_BUTTON"; _g.h[17] = "LEFT_TRIGGER"; _g.h[18] = "RIGHT_TRIGGER"; _g.h[19] = "LEFT_ANALOG_STICK"; _g.h[20] = "RIGHT_ANALOG_STICK"; _g.h[21] = "DPAD"; _g.h[26] = "TILT_PITCH"; _g.h[27] = "TILT_ROLL"; _g.h[28] = "POINTER_X"; _g.h[29] = "POINTER_Y"; _g.h[30] = "EXTRA_0"; _g.h[31] = "EXTRA_1"; _g.h[32] = "EXTRA_2"; _g.h[33] = "EXTRA_3"; _g.h[34] = "LEFT_STICK_DIGITAL_UP"; _g.h[35] = "LEFT_STICK_DIGITAL_RIGHT"; _g.h[36] = "LEFT_STICK_DIGITAL_DOWN"; _g.h[37] = "LEFT_STICK_DIGITAL_LEFT"; _g.h[38] = "RIGHT_STICK_DIGITAL_UP"; _g.h[39] = "RIGHT_STICK_DIGITAL_RIGHT"; _g.h[40] = "RIGHT_STICK_DIGITAL_DOWN"; _g.h[41] = "RIGHT_STICK_DIGITAL_LEFT"; $r = _g; return $r; }(this)); flixel_input_gamepad_FlxGamepadInputID.ANY = -2; flixel_input_gamepad_FlxGamepadInputID.NONE = -1; flixel_input_gamepad_FlxGamepadInputID.A = 0; flixel_input_gamepad_FlxGamepadInputID.B = 1; flixel_input_gamepad_FlxGamepadInputID.X = 2; flixel_input_gamepad_FlxGamepadInputID.Y = 3; flixel_input_gamepad_FlxGamepadInputID.LEFT_SHOULDER = 4; flixel_input_gamepad_FlxGamepadInputID.RIGHT_SHOULDER = 5; flixel_input_gamepad_FlxGamepadInputID.BACK = 6; flixel_input_gamepad_FlxGamepadInputID.START = 7; flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_CLICK = 8; flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_CLICK = 9; flixel_input_gamepad_FlxGamepadInputID.GUIDE = 10; flixel_input_gamepad_FlxGamepadInputID.DPAD_UP = 11; flixel_input_gamepad_FlxGamepadInputID.DPAD_DOWN = 12; flixel_input_gamepad_FlxGamepadInputID.DPAD_LEFT = 13; flixel_input_gamepad_FlxGamepadInputID.DPAD_RIGHT = 14; flixel_input_gamepad_FlxGamepadInputID.LEFT_TRIGGER_BUTTON = 15; flixel_input_gamepad_FlxGamepadInputID.RIGHT_TRIGGER_BUTTON = 16; flixel_input_gamepad_FlxGamepadInputID.LEFT_TRIGGER = 17; flixel_input_gamepad_FlxGamepadInputID.RIGHT_TRIGGER = 18; flixel_input_gamepad_FlxGamepadInputID.LEFT_ANALOG_STICK = 19; flixel_input_gamepad_FlxGamepadInputID.RIGHT_ANALOG_STICK = 20; flixel_input_gamepad_FlxGamepadInputID.DPAD = 21; flixel_input_gamepad_FlxGamepadInputID.TILT_PITCH = 26; flixel_input_gamepad_FlxGamepadInputID.TILT_ROLL = 27; flixel_input_gamepad_FlxGamepadInputID.POINTER_X = 28; flixel_input_gamepad_FlxGamepadInputID.POINTER_Y = 29; flixel_input_gamepad_FlxGamepadInputID.EXTRA_0 = 30; flixel_input_gamepad_FlxGamepadInputID.EXTRA_1 = 31; flixel_input_gamepad_FlxGamepadInputID.EXTRA_2 = 32; flixel_input_gamepad_FlxGamepadInputID.EXTRA_3 = 33; flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_UP = 34; flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_RIGHT = 35; flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_DOWN = 36; flixel_input_gamepad_FlxGamepadInputID.LEFT_STICK_DIGITAL_LEFT = 37; flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_UP = 38; flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_RIGHT = 39; flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_DOWN = 40; flixel_input_gamepad_FlxGamepadInputID.RIGHT_STICK_DIGITAL_LEFT = 41; openfl_ui_GameInput.__meta__ = { fields : { addEventListener : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_ui_GameInput.isSupported = true; openfl_ui_GameInput.numDevices = 0; openfl_ui_GameInput.__deviceList = []; openfl_ui_GameInput.__instances = []; openfl_ui_GameInput.__devices = new haxe_ds_ObjectMap(); flixel_input_gamepad_FlxGamepadManager._gameInput = new openfl_ui_GameInput(); flixel_input_gamepad_id_LogitechID.ONE = 0; flixel_input_gamepad_id_LogitechID.TWO = 1; flixel_input_gamepad_id_LogitechID.THREE = 2; flixel_input_gamepad_id_LogitechID.FOUR = 3; flixel_input_gamepad_id_LogitechID.FIVE = 4; flixel_input_gamepad_id_LogitechID.SIX = 5; flixel_input_gamepad_id_LogitechID.SEVEN = 6; flixel_input_gamepad_id_LogitechID.EIGHT = 7; flixel_input_gamepad_id_LogitechID.NINE = 8; flixel_input_gamepad_id_LogitechID.TEN = 9; flixel_input_gamepad_id_LogitechID.LEFT_STICK_CLICK = 10; flixel_input_gamepad_id_LogitechID.RIGHT_STICK_CLICK = 11; flixel_input_gamepad_id_LogitechID.DPAD_UP = 16; flixel_input_gamepad_id_LogitechID.DPAD_DOWN = 17; flixel_input_gamepad_id_LogitechID.DPAD_LEFT = 18; flixel_input_gamepad_id_LogitechID.DPAD_RIGHT = 19; flixel_input_gamepad_id_LogitechID.LOGITECH = -5; flixel_input_gamepad_id_LogitechID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 24, down : 25, left : 26, right : 27}); flixel_input_gamepad_id_LogitechID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 28, down : 29, left : 30, right : 31}); flixel_input_gamepad_id_MFiID.A = 6; flixel_input_gamepad_id_MFiID.B = 7; flixel_input_gamepad_id_MFiID.X = 8; flixel_input_gamepad_id_MFiID.Y = 9; flixel_input_gamepad_id_MFiID.LB = 15; flixel_input_gamepad_id_MFiID.RB = 16; flixel_input_gamepad_id_MFiID.BACK = 10; flixel_input_gamepad_id_MFiID.START = 12; flixel_input_gamepad_id_MFiID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_MFiID.RIGHT_STICK_CLICK = 14; flixel_input_gamepad_id_MFiID.GUIDE = 11; flixel_input_gamepad_id_MFiID.DPAD_UP = 17; flixel_input_gamepad_id_MFiID.DPAD_DOWN = 18; flixel_input_gamepad_id_MFiID.DPAD_LEFT = 19; flixel_input_gamepad_id_MFiID.DPAD_RIGHT = 20; flixel_input_gamepad_id_MFiID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 21, down : 22, left : 23, right : 24}); flixel_input_gamepad_id_MFiID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 25, down : 26, left : 27, right : 28}); flixel_input_gamepad_id_MFiID.LEFT_TRIGGER = 4; flixel_input_gamepad_id_MFiID.RIGHT_TRIGGER = 5; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_ONE = 8; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_TWO = 9; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_A = 10; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_B = 11; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_MINUS = 12; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_PLUS = 13; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_HOME = 19; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_Z = 14; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_C = 15; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_UP = 4; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_DOWN = 5; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_LEFT = 6; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_DPAD_RIGHT = 7; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_MINUS = 12; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_PLUS = 13; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_HOME = 19; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_A = 10; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_B = 11; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_ONE = 8; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_TWO = 9; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_Y = 8; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_X = 9; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_B = 10; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_A = 11; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_L = 12; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_R = 13; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_ZL = 14; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_ZR = 15; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_SELECT = 16; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_START = 17; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_HOME = 19; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_ONE = -1; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_TWO = -1; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_UP = 4; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_DOWN = 5; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_LEFT = 6; flixel_input_gamepad_id_MayflashWiiRemoteID.CLASSIC_DPAD_RIGHT = 7; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_POINTER_X = 2; flixel_input_gamepad_id_MayflashWiiRemoteID.NUNCHUK_POINTER_Y = 3; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25, threshold : 0.5, mode : flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL}); flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 26, down : 27, left : 28, right : 29}); flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 26, down : 27, left : 28, right : 29}); flixel_input_gamepad_id_MayflashWiiRemoteID.LEFT_TRIGGER_FAKE = 4; flixel_input_gamepad_id_MayflashWiiRemoteID.RIGHT_TRIGGER_FAKE = 5; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_UP = 22; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_DOWN = 23; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_LEFT = 24; flixel_input_gamepad_id_MayflashWiiRemoteID.REMOTE_DPAD_RIGHT = 25; flixel_input_gamepad_id_OUYAID.O = 6; flixel_input_gamepad_id_OUYAID.U = 8; flixel_input_gamepad_id_OUYAID.Y = 9; flixel_input_gamepad_id_OUYAID.A = 7; flixel_input_gamepad_id_OUYAID.LB = 15; flixel_input_gamepad_id_OUYAID.RB = 16; flixel_input_gamepad_id_OUYAID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_OUYAID.RIGHT_STICK_CLICK = 14; flixel_input_gamepad_id_OUYAID.HOME = 16777234; flixel_input_gamepad_id_OUYAID.LEFT_TRIGGER = 4; flixel_input_gamepad_id_OUYAID.RIGHT_TRIGGER = 5; flixel_input_gamepad_id_OUYAID.DPAD_LEFT = 19; flixel_input_gamepad_id_OUYAID.DPAD_RIGHT = 20; flixel_input_gamepad_id_OUYAID.DPAD_DOWN = 18; flixel_input_gamepad_id_OUYAID.DPAD_UP = 17; flixel_input_gamepad_id_OUYAID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 23, down : 24, left : 25, right : 26}); flixel_input_gamepad_id_OUYAID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 27, down : 28, left : 29, right : 30}); flixel_input_gamepad_id_PS4ID.X = 6; flixel_input_gamepad_id_PS4ID.CIRCLE = 7; flixel_input_gamepad_id_PS4ID.SQUARE = 8; flixel_input_gamepad_id_PS4ID.TRIANGLE = 9; flixel_input_gamepad_id_PS4ID.PS = 11; flixel_input_gamepad_id_PS4ID.OPTIONS = 12; flixel_input_gamepad_id_PS4ID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_PS4ID.RIGHT_STICK_CLICK = 14; flixel_input_gamepad_id_PS4ID.L1 = 15; flixel_input_gamepad_id_PS4ID.R1 = 16; flixel_input_gamepad_id_PS4ID.SHARE = 10; flixel_input_gamepad_id_PS4ID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25}); flixel_input_gamepad_id_PS4ID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 26, down : 27, left : 28, right : 29}); flixel_input_gamepad_id_PS4ID.TOUCHPAD_CLICK = 30; flixel_input_gamepad_id_PS4ID.L2 = 4; flixel_input_gamepad_id_PS4ID.R2 = 5; flixel_input_gamepad_id_PS4ID.DPAD_UP = 17; flixel_input_gamepad_id_PS4ID.DPAD_DOWN = 18; flixel_input_gamepad_id_PS4ID.DPAD_LEFT = 19; flixel_input_gamepad_id_PS4ID.DPAD_RIGHT = 20; flixel_input_gamepad_id_PSVitaID.X = 6; flixel_input_gamepad_id_PSVitaID.CIRCLE = 7; flixel_input_gamepad_id_PSVitaID.SQUARE = 8; flixel_input_gamepad_id_PSVitaID.TRIANGLE = 9; flixel_input_gamepad_id_PSVitaID.SELECT = 10; flixel_input_gamepad_id_PSVitaID.START = 12; flixel_input_gamepad_id_PSVitaID.L = 15; flixel_input_gamepad_id_PSVitaID.R = 16; flixel_input_gamepad_id_PSVitaID.DPAD_UP = 17; flixel_input_gamepad_id_PSVitaID.DPAD_DOWN = 18; flixel_input_gamepad_id_PSVitaID.DPAD_LEFT = 19; flixel_input_gamepad_id_PSVitaID.DPAD_RIGHT = 20; flixel_input_gamepad_id_PSVitaID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 21, down : 22, left : 23, right : 24}); flixel_input_gamepad_id_PSVitaID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 25, down : 26, left : 27, right : 28}); flixel_input_gamepad_id_SwitchJoyconLeftID.ZL = 4; flixel_input_gamepad_id_SwitchJoyconLeftID.DOWN = 6; flixel_input_gamepad_id_SwitchJoyconLeftID.RIGHT = 7; flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT = 8; flixel_input_gamepad_id_SwitchJoyconLeftID.UP = 9; flixel_input_gamepad_id_SwitchJoyconLeftID.L = 10; flixel_input_gamepad_id_SwitchJoyconLeftID.MINUS = 12; flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_SwitchJoyconLeftID.SL = 15; flixel_input_gamepad_id_SwitchJoyconLeftID.SR = 16; flixel_input_gamepad_id_SwitchJoyconLeftID.CAPTURE = 21; flixel_input_gamepad_id_SwitchJoyconLeftID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25}); flixel_input_gamepad_id_SwitchJoyconRightID.ZR = 5; flixel_input_gamepad_id_SwitchJoyconRightID.A = 6; flixel_input_gamepad_id_SwitchJoyconRightID.X = 7; flixel_input_gamepad_id_SwitchJoyconRightID.B = 8; flixel_input_gamepad_id_SwitchJoyconRightID.Y = 9; flixel_input_gamepad_id_SwitchJoyconRightID.R = 10; flixel_input_gamepad_id_SwitchJoyconRightID.HOME = 11; flixel_input_gamepad_id_SwitchJoyconRightID.PLUS = 12; flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_SwitchJoyconRightID.SL = 15; flixel_input_gamepad_id_SwitchJoyconRightID.SR = 16; flixel_input_gamepad_id_SwitchJoyconRightID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25}); flixel_input_gamepad_id_SwitchProID.ZL = 4; flixel_input_gamepad_id_SwitchProID.ZR = 5; flixel_input_gamepad_id_SwitchProID.B = 6; flixel_input_gamepad_id_SwitchProID.A = 7; flixel_input_gamepad_id_SwitchProID.Y = 8; flixel_input_gamepad_id_SwitchProID.X = 9; flixel_input_gamepad_id_SwitchProID.MINUS = 10; flixel_input_gamepad_id_SwitchProID.HOME = 11; flixel_input_gamepad_id_SwitchProID.PLUS = 12; flixel_input_gamepad_id_SwitchProID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_SwitchProID.RIGHT_STICK_CLICK = 14; flixel_input_gamepad_id_SwitchProID.L = 15; flixel_input_gamepad_id_SwitchProID.R = 16; flixel_input_gamepad_id_SwitchProID.DPAD_UP = 17; flixel_input_gamepad_id_SwitchProID.DPAD_DOWN = 18; flixel_input_gamepad_id_SwitchProID.DPAD_LEFT = 19; flixel_input_gamepad_id_SwitchProID.DPAD_RIGHT = 20; flixel_input_gamepad_id_SwitchProID.CAPTURE = 21; flixel_input_gamepad_id_SwitchProID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25}); flixel_input_gamepad_id_SwitchProID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 26, down : 27, left : 28, right : 29}); flixel_input_gamepad_id_WiiRemoteID.REMOTE_ONE = 9; flixel_input_gamepad_id_WiiRemoteID.REMOTE_TWO = 10; flixel_input_gamepad_id_WiiRemoteID.REMOTE_A = 11; flixel_input_gamepad_id_WiiRemoteID.REMOTE_B = 12; flixel_input_gamepad_id_WiiRemoteID.REMOTE_PLUS = 13; flixel_input_gamepad_id_WiiRemoteID.REMOTE_MINUS = 14; flixel_input_gamepad_id_WiiRemoteID.REMOTE_HOME = 15; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_A = 9; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_B = 10; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_C = 11; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_Z = 12; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_ONE = 13; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_TWO = 14; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_PLUS = 15; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_MINUS = 16; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_HOME = 17; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_UP = 5; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_DOWN = 6; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_LEFT = 7; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_DPAD_RIGHT = 8; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_A = 9; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_B = 10; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_Y = 11; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_X = 12; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_L = 13; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_R = 14; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_ZL = 15; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_ZR = 16; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_START = 17; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_SELECT = 18; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_HOME = 19; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_ONE = 20; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_TWO = 21; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_UP = 5; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_DOWN = 6; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_LEFT = 7; flixel_input_gamepad_id_WiiRemoteID.CLASSIC_DPAD_RIGHT = 8; flixel_input_gamepad_id_WiiRemoteID.REMOTE_TILT_PITCH = 2; flixel_input_gamepad_id_WiiRemoteID.REMOTE_TILT_ROLL = 3; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_TILT_PITCH = 3; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_TILT_ROLL = 2; flixel_input_gamepad_id_WiiRemoteID.REMOTE_NULL_AXIS = 4; flixel_input_gamepad_id_WiiRemoteID.NUNCHUK_NULL_AXIS = 4; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 22, down : 23, left : 24, right : 25, threshold : 0.5, mode : flixel_input_gamepad_FlxAnalogToDigitalMode.ONLY_DIGITAL}); flixel_input_gamepad_id_WiiRemoteID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 28, down : 29, left : 30, right : 31}); flixel_input_gamepad_id_WiiRemoteID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 32, down : 33, left : 34, right : 35}); flixel_input_gamepad_id_WiiRemoteID.LEFT_TRIGGER_FAKE = 4; flixel_input_gamepad_id_WiiRemoteID.RIGHT_TRIGGER_FAKE = 5; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_UP = 22; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_DOWN = 23; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_LEFT = 24; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_RIGHT = 25; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_X = 26; flixel_input_gamepad_id_WiiRemoteID.REMOTE_DPAD_Y = 27; flixel_input_gamepad_id_XInputID.A = 6; flixel_input_gamepad_id_XInputID.B = 7; flixel_input_gamepad_id_XInputID.X = 8; flixel_input_gamepad_id_XInputID.Y = 9; flixel_input_gamepad_id_XInputID.BACK = 10; flixel_input_gamepad_id_XInputID.GUIDE = -1; flixel_input_gamepad_id_XInputID.START = 12; flixel_input_gamepad_id_XInputID.LEFT_STICK_CLICK = 13; flixel_input_gamepad_id_XInputID.RIGHT_STICK_CLICK = 14; flixel_input_gamepad_id_XInputID.LB = 15; flixel_input_gamepad_id_XInputID.RB = 16; flixel_input_gamepad_id_XInputID.DPAD_UP = 17; flixel_input_gamepad_id_XInputID.DPAD_DOWN = 18; flixel_input_gamepad_id_XInputID.DPAD_LEFT = 19; flixel_input_gamepad_id_XInputID.DPAD_RIGHT = 20; flixel_input_gamepad_id_XInputID.LEFT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(0,1,{ up : 21, down : 22, left : 23, right : 24}); flixel_input_gamepad_id_XInputID.RIGHT_ANALOG_STICK = new flixel_input_gamepad_FlxGamepadAnalogStick(2,3,{ up : 25, down : 26, left : 27, right : 28}); flixel_input_gamepad_id_XInputID.LEFT_TRIGGER = 4; flixel_input_gamepad_id_XInputID.RIGHT_TRIGGER = 5; flixel_input_keyboard_FlxKey.fromStringMap = (function($this) { var $r; var _g = new haxe_ds_StringMap(); _g.h["ANY"] = -2; _g.h["A"] = 65; _g.h["B"] = 66; _g.h["C"] = 67; _g.h["D"] = 68; _g.h["E"] = 69; _g.h["F"] = 70; _g.h["G"] = 71; _g.h["H"] = 72; _g.h["I"] = 73; _g.h["J"] = 74; _g.h["K"] = 75; _g.h["L"] = 76; _g.h["M"] = 77; _g.h["N"] = 78; _g.h["O"] = 79; _g.h["P"] = 80; _g.h["Q"] = 81; _g.h["R"] = 82; _g.h["S"] = 83; _g.h["T"] = 84; _g.h["U"] = 85; _g.h["V"] = 86; _g.h["W"] = 87; _g.h["X"] = 88; _g.h["Y"] = 89; _g.h["Z"] = 90; _g.h["ZERO"] = 48; _g.h["ONE"] = 49; _g.h["TWO"] = 50; _g.h["THREE"] = 51; _g.h["FOUR"] = 52; _g.h["FIVE"] = 53; _g.h["SIX"] = 54; _g.h["SEVEN"] = 55; _g.h["EIGHT"] = 56; _g.h["NINE"] = 57; _g.h["PAGEUP"] = 33; _g.h["PAGEDOWN"] = 34; _g.h["HOME"] = 36; _g.h["END"] = 35; _g.h["INSERT"] = 45; _g.h["ESCAPE"] = 27; _g.h["MINUS"] = 189; _g.h["PLUS"] = 187; _g.h["DELETE"] = 46; _g.h["BACKSPACE"] = 8; _g.h["LBRACKET"] = 219; _g.h["RBRACKET"] = 221; _g.h["BACKSLASH"] = 220; _g.h["CAPSLOCK"] = 20; _g.h["SCROLL_LOCK"] = 145; _g.h["NUMLOCK"] = 144; _g.h["SEMICOLON"] = 186; _g.h["QUOTE"] = 222; _g.h["ENTER"] = 13; _g.h["SHIFT"] = 16; _g.h["COMMA"] = 188; _g.h["PERIOD"] = 190; _g.h["SLASH"] = 191; _g.h["GRAVEACCENT"] = 192; _g.h["CONTROL"] = 17; _g.h["ALT"] = 18; _g.h["SPACE"] = 32; _g.h["UP"] = 38; _g.h["DOWN"] = 40; _g.h["LEFT"] = 37; _g.h["RIGHT"] = 39; _g.h["TAB"] = 9; _g.h["WINDOWS"] = 15; _g.h["MENU"] = 302; _g.h["PRINTSCREEN"] = 301; _g.h["BREAK"] = 19; _g.h["F1"] = 112; _g.h["F2"] = 113; _g.h["F3"] = 114; _g.h["F4"] = 115; _g.h["F5"] = 116; _g.h["F6"] = 117; _g.h["F7"] = 118; _g.h["F8"] = 119; _g.h["F9"] = 120; _g.h["F10"] = 121; _g.h["F11"] = 122; _g.h["F12"] = 123; _g.h["NUMPADZERO"] = 96; _g.h["NUMPADONE"] = 97; _g.h["NUMPADTWO"] = 98; _g.h["NUMPADTHREE"] = 99; _g.h["NUMPADFOUR"] = 100; _g.h["NUMPADFIVE"] = 101; _g.h["NUMPADSIX"] = 102; _g.h["NUMPADSEVEN"] = 103; _g.h["NUMPADEIGHT"] = 104; _g.h["NUMPADNINE"] = 105; _g.h["NUMPADMINUS"] = 109; _g.h["NUMPADPLUS"] = 107; _g.h["NUMPADPERIOD"] = 110; _g.h["NUMPADMULTIPLY"] = 106; _g.h["NUMPADSLASH"] = 111; $r = _g; return $r; }(this)); flixel_input_keyboard_FlxKey.toStringMap = (function($this) { var $r; var _g = new haxe_ds_IntMap(); _g.h[-2] = "ANY"; _g.h[65] = "A"; _g.h[66] = "B"; _g.h[67] = "C"; _g.h[68] = "D"; _g.h[69] = "E"; _g.h[70] = "F"; _g.h[71] = "G"; _g.h[72] = "H"; _g.h[73] = "I"; _g.h[74] = "J"; _g.h[75] = "K"; _g.h[76] = "L"; _g.h[77] = "M"; _g.h[78] = "N"; _g.h[79] = "O"; _g.h[80] = "P"; _g.h[81] = "Q"; _g.h[82] = "R"; _g.h[83] = "S"; _g.h[84] = "T"; _g.h[85] = "U"; _g.h[86] = "V"; _g.h[87] = "W"; _g.h[88] = "X"; _g.h[89] = "Y"; _g.h[90] = "Z"; _g.h[48] = "ZERO"; _g.h[49] = "ONE"; _g.h[50] = "TWO"; _g.h[51] = "THREE"; _g.h[52] = "FOUR"; _g.h[53] = "FIVE"; _g.h[54] = "SIX"; _g.h[55] = "SEVEN"; _g.h[56] = "EIGHT"; _g.h[57] = "NINE"; _g.h[33] = "PAGEUP"; _g.h[34] = "PAGEDOWN"; _g.h[36] = "HOME"; _g.h[35] = "END"; _g.h[45] = "INSERT"; _g.h[27] = "ESCAPE"; _g.h[189] = "MINUS"; _g.h[187] = "PLUS"; _g.h[46] = "DELETE"; _g.h[8] = "BACKSPACE"; _g.h[219] = "LBRACKET"; _g.h[221] = "RBRACKET"; _g.h[220] = "BACKSLASH"; _g.h[20] = "CAPSLOCK"; _g.h[145] = "SCROLL_LOCK"; _g.h[144] = "NUMLOCK"; _g.h[186] = "SEMICOLON"; _g.h[222] = "QUOTE"; _g.h[13] = "ENTER"; _g.h[16] = "SHIFT"; _g.h[188] = "COMMA"; _g.h[190] = "PERIOD"; _g.h[191] = "SLASH"; _g.h[192] = "GRAVEACCENT"; _g.h[17] = "CONTROL"; _g.h[18] = "ALT"; _g.h[32] = "SPACE"; _g.h[38] = "UP"; _g.h[40] = "DOWN"; _g.h[37] = "LEFT"; _g.h[39] = "RIGHT"; _g.h[9] = "TAB"; _g.h[15] = "WINDOWS"; _g.h[302] = "MENU"; _g.h[301] = "PRINTSCREEN"; _g.h[19] = "BREAK"; _g.h[112] = "F1"; _g.h[113] = "F2"; _g.h[114] = "F3"; _g.h[115] = "F4"; _g.h[116] = "F5"; _g.h[117] = "F6"; _g.h[118] = "F7"; _g.h[119] = "F8"; _g.h[120] = "F9"; _g.h[121] = "F10"; _g.h[122] = "F11"; _g.h[123] = "F12"; _g.h[96] = "NUMPADZERO"; _g.h[97] = "NUMPADONE"; _g.h[98] = "NUMPADTWO"; _g.h[99] = "NUMPADTHREE"; _g.h[100] = "NUMPADFOUR"; _g.h[101] = "NUMPADFIVE"; _g.h[102] = "NUMPADSIX"; _g.h[103] = "NUMPADSEVEN"; _g.h[104] = "NUMPADEIGHT"; _g.h[105] = "NUMPADNINE"; _g.h[109] = "NUMPADMINUS"; _g.h[107] = "NUMPADPLUS"; _g.h[110] = "NUMPADPERIOD"; _g.h[106] = "NUMPADMULTIPLY"; _g.h[111] = "NUMPADSLASH"; $r = _g; return $r; }(this)); flixel_input_keyboard_FlxKey.ANY = -2; flixel_input_keyboard_FlxKey.NONE = -1; flixel_input_keyboard_FlxKey.A = 65; flixel_input_keyboard_FlxKey.B = 66; flixel_input_keyboard_FlxKey.C = 67; flixel_input_keyboard_FlxKey.D = 68; flixel_input_keyboard_FlxKey.E = 69; flixel_input_keyboard_FlxKey.F = 70; flixel_input_keyboard_FlxKey.G = 71; flixel_input_keyboard_FlxKey.H = 72; flixel_input_keyboard_FlxKey.I = 73; flixel_input_keyboard_FlxKey.J = 74; flixel_input_keyboard_FlxKey.K = 75; flixel_input_keyboard_FlxKey.L = 76; flixel_input_keyboard_FlxKey.M = 77; flixel_input_keyboard_FlxKey.N = 78; flixel_input_keyboard_FlxKey.O = 79; flixel_input_keyboard_FlxKey.P = 80; flixel_input_keyboard_FlxKey.Q = 81; flixel_input_keyboard_FlxKey.R = 82; flixel_input_keyboard_FlxKey.S = 83; flixel_input_keyboard_FlxKey.T = 84; flixel_input_keyboard_FlxKey.U = 85; flixel_input_keyboard_FlxKey.V = 86; flixel_input_keyboard_FlxKey.W = 87; flixel_input_keyboard_FlxKey.X = 88; flixel_input_keyboard_FlxKey.Y = 89; flixel_input_keyboard_FlxKey.Z = 90; flixel_input_keyboard_FlxKey.ZERO = 48; flixel_input_keyboard_FlxKey.ONE = 49; flixel_input_keyboard_FlxKey.TWO = 50; flixel_input_keyboard_FlxKey.THREE = 51; flixel_input_keyboard_FlxKey.FOUR = 52; flixel_input_keyboard_FlxKey.FIVE = 53; flixel_input_keyboard_FlxKey.SIX = 54; flixel_input_keyboard_FlxKey.SEVEN = 55; flixel_input_keyboard_FlxKey.EIGHT = 56; flixel_input_keyboard_FlxKey.NINE = 57; flixel_input_keyboard_FlxKey.PAGEUP = 33; flixel_input_keyboard_FlxKey.PAGEDOWN = 34; flixel_input_keyboard_FlxKey.HOME = 36; flixel_input_keyboard_FlxKey.END = 35; flixel_input_keyboard_FlxKey.INSERT = 45; flixel_input_keyboard_FlxKey.ESCAPE = 27; flixel_input_keyboard_FlxKey.MINUS = 189; flixel_input_keyboard_FlxKey.PLUS = 187; flixel_input_keyboard_FlxKey.DELETE = 46; flixel_input_keyboard_FlxKey.BACKSPACE = 8; flixel_input_keyboard_FlxKey.LBRACKET = 219; flixel_input_keyboard_FlxKey.RBRACKET = 221; flixel_input_keyboard_FlxKey.BACKSLASH = 220; flixel_input_keyboard_FlxKey.CAPSLOCK = 20; flixel_input_keyboard_FlxKey.SCROLL_LOCK = 145; flixel_input_keyboard_FlxKey.NUMLOCK = 144; flixel_input_keyboard_FlxKey.SEMICOLON = 186; flixel_input_keyboard_FlxKey.QUOTE = 222; flixel_input_keyboard_FlxKey.ENTER = 13; flixel_input_keyboard_FlxKey.SHIFT = 16; flixel_input_keyboard_FlxKey.COMMA = 188; flixel_input_keyboard_FlxKey.PERIOD = 190; flixel_input_keyboard_FlxKey.SLASH = 191; flixel_input_keyboard_FlxKey.GRAVEACCENT = 192; flixel_input_keyboard_FlxKey.CONTROL = 17; flixel_input_keyboard_FlxKey.ALT = 18; flixel_input_keyboard_FlxKey.SPACE = 32; flixel_input_keyboard_FlxKey.UP = 38; flixel_input_keyboard_FlxKey.DOWN = 40; flixel_input_keyboard_FlxKey.LEFT = 37; flixel_input_keyboard_FlxKey.RIGHT = 39; flixel_input_keyboard_FlxKey.TAB = 9; flixel_input_keyboard_FlxKey.WINDOWS = 15; flixel_input_keyboard_FlxKey.MENU = 302; flixel_input_keyboard_FlxKey.PRINTSCREEN = 301; flixel_input_keyboard_FlxKey.BREAK = 19; flixel_input_keyboard_FlxKey.F1 = 112; flixel_input_keyboard_FlxKey.F2 = 113; flixel_input_keyboard_FlxKey.F3 = 114; flixel_input_keyboard_FlxKey.F4 = 115; flixel_input_keyboard_FlxKey.F5 = 116; flixel_input_keyboard_FlxKey.F6 = 117; flixel_input_keyboard_FlxKey.F7 = 118; flixel_input_keyboard_FlxKey.F8 = 119; flixel_input_keyboard_FlxKey.F9 = 120; flixel_input_keyboard_FlxKey.F10 = 121; flixel_input_keyboard_FlxKey.F11 = 122; flixel_input_keyboard_FlxKey.F12 = 123; flixel_input_keyboard_FlxKey.NUMPADZERO = 96; flixel_input_keyboard_FlxKey.NUMPADONE = 97; flixel_input_keyboard_FlxKey.NUMPADTWO = 98; flixel_input_keyboard_FlxKey.NUMPADTHREE = 99; flixel_input_keyboard_FlxKey.NUMPADFOUR = 100; flixel_input_keyboard_FlxKey.NUMPADFIVE = 101; flixel_input_keyboard_FlxKey.NUMPADSIX = 102; flixel_input_keyboard_FlxKey.NUMPADSEVEN = 103; flixel_input_keyboard_FlxKey.NUMPADEIGHT = 104; flixel_input_keyboard_FlxKey.NUMPADNINE = 105; flixel_input_keyboard_FlxKey.NUMPADMINUS = 109; flixel_input_keyboard_FlxKey.NUMPADPLUS = 107; flixel_input_keyboard_FlxKey.NUMPADPERIOD = 110; flixel_input_keyboard_FlxKey.NUMPADMULTIPLY = 106; flixel_input_keyboard_FlxKey.NUMPADSLASH = 111; flixel_input_mouse__$FlxMouse_GraphicCursor.resourceType = "image/png"; flixel_input_mouse__$FlxMouse_GraphicCursor.resourceName = "__ASSET__:bitmap_flixel_input_mouse__FlxMouse_GraphicCursor"; flixel_input_touch_FlxTouchManager.maxTouchPoints = 0; flixel_math_FlxMath.MIN_VALUE_FLOAT = 0.0000000000000001; flixel_math_FlxMath.MAX_VALUE_FLOAT = 1.79e+308; flixel_math_FlxMath.MIN_VALUE_INT = -2147483647; flixel_math_FlxMath.MAX_VALUE_INT = 2147483647; flixel_math_FlxMath.SQUARE_ROOT_OF_TWO = 1.41421356237; flixel_math_FlxMath.EPSILON = 0.0000001; flixel_math_FlxPoint.EPSILON = 0.0000001; flixel_math_FlxPoint.EPSILON_SQUARED = 9.99999999999999841e-15; flixel_math_FlxPoint._point1 = new flixel_math_FlxBasePoint(0,0); flixel_math_FlxPoint._point2 = new flixel_math_FlxBasePoint(0,0); flixel_math_FlxPoint._point3 = new flixel_math_FlxBasePoint(0,0); flixel_path_FlxPath.FORWARD = 0; flixel_path_FlxPath.BACKWARD = 1; flixel_path_FlxPath.LOOP_FORWARD = 16; flixel_path_FlxPath.LOOP_BACKWARD = 256; flixel_path_FlxPath.YOYO = 4096; flixel_path_FlxPath._point = (function($this) { var $r; var x = 0; var y = 0; if(y == null) { y = 0; } if(x == null) { x = 0; } var point = flixel_math_FlxBasePoint.pool.get().set(x,y); point._inPool = false; $r = point; return $r; }(this)); flixel_system_GraphicLogo.resourceType = "image/png"; flixel_system_GraphicLogo.resourceName = "__ASSET__:bitmap_flixel_system_GraphicLogo"; flixel_system_GraphicVirtualInput.resourceType = "image/png"; flixel_system_GraphicVirtualInput.resourceName = "__ASSET__:bitmap_flixel_system_GraphicVirtualInput"; openfl_utils_ByteArrayData.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils_ByteArrayData.defaultObjectEncoding = 10; openfl_utils_ByteArrayData.__defaultEndian = null; flixel_system_VirtualInputData.resourceName = "__ASSET__:file_flixel_system_VirtualInputData"; flixel_system_FlxAssets.defaultSoundExtension = "ogg"; flixel_system_FlxAssets.FONT_DEFAULT = "Nokia Cellphone FC Small"; flixel_system_FlxAssets.FONT_DEBUGGER = "Monsterrat"; flixel_system_FlxBasePreloader.LOCAL = "localhost"; flixel_system_FlxLinkedList._NUM_CACHED_FLX_LIST = 0; flixel_system__$FlxPreloader_GraphicLogoLight.resourceType = "image/png"; flixel_system__$FlxPreloader_GraphicLogoLight.resourceName = "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoLight"; flixel_system__$FlxPreloader_GraphicLogoCorners.resourceType = "image/png"; flixel_system__$FlxPreloader_GraphicLogoCorners.resourceName = "__ASSET__:bitmap_flixel_system__FlxPreloader_GraphicLogoCorners"; flixel_system_FlxQuadTree.A_LIST = 0; flixel_system_FlxQuadTree.B_LIST = 1; flixel_system_FlxQuadTree._NUM_CACHED_QUAD_TREES = 0; flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceType = "image/png"; flixel_system_debug__$FlxDebugger_GraphicFlixel.resourceName = "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicFlixel"; flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceType = "image/png"; flixel_system_debug__$FlxDebugger_GraphicDrawDebug.resourceName = "__ASSET__:bitmap_flixel_system_debug__FlxDebugger_GraphicDrawDebug"; flixel_system_debug_GraphicLog.resourceType = "image/png"; flixel_system_debug_GraphicLog.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicLog"; flixel_system_debug_GraphicStats.resourceType = "image/png"; flixel_system_debug_GraphicStats.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicStats"; flixel_system_debug_GraphicWatch.resourceType = "image/png"; flixel_system_debug_GraphicWatch.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicWatch"; flixel_system_debug_GraphicBitmapLog.resourceType = "image/png"; flixel_system_debug_GraphicBitmapLog.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicBitmapLog"; flixel_system_debug_GraphicConsole.resourceType = "image/png"; flixel_system_debug_GraphicConsole.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicConsole"; flixel_system_debug_GraphicArrowLeft.resourceType = "image/png"; flixel_system_debug_GraphicArrowLeft.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicArrowLeft"; flixel_system_debug_GraphicArrowRight.resourceType = "image/png"; flixel_system_debug_GraphicArrowRight.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicArrowRight"; flixel_system_debug_GraphicCloseButton.resourceType = "image/png"; flixel_system_debug_GraphicCloseButton.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicCloseButton"; flixel_system_debug_GraphicInteractive.resourceType = "image/png"; flixel_system_debug_GraphicInteractive.resourceName = "__ASSET__:bitmap_flixel_system_debug_GraphicInteractive"; flixel_system_debug_Tooltip._tooltips = []; flixel_system_debug_TooltipOverlay.BG_COLOR = -12961222; flixel_system_debug_TooltipOverlay.TEXT_ALPHA = 0.8; flixel_system_debug_TooltipOverlay.MARGIN_X = 10; flixel_system_debug_TooltipOverlay.MARGIN_Y = 10; flixel_system_debug__$Window_GraphicWindowHandle.resourceType = "image/png"; flixel_system_debug__$Window_GraphicWindowHandle.resourceName = "__ASSET__:bitmap_flixel_system_debug__Window_GraphicWindowHandle"; flixel_system_debug_Window.BG_COLOR = -580952225; flixel_system_debug_Window.HEADER_COLOR = -1157627904; flixel_system_debug_Window.HEADER_ALPHA = 0.8; flixel_system_debug_Window.HEADER_HEIGHT = 15; flixel_system_debug_Window.windowAmount = 0; flixel_system_debug_completion_CompletionHandler.ENTRY_VALUE = "Entry Value"; flixel_system_debug_completion_CompletionHandler.ENTRY_TYPE = "Entry Type"; flixel_system_debug_completion_CompletionListEntry.WIDTH = 150; flixel_system_debug_completion_CompletionListEntry.HEIGHT = 20; flixel_system_debug_completion_CompletionListEntry.COLOR_NORMAL = -10526881; flixel_system_debug_completion_CompletionListEntry.COLOR_HIGHLIGHT = -9605779; flixel_system_debug_completion_CompletionListEntry.GUTTER = 4; flixel_system_debug_completion_CompletionListScrollBar.BG_COLOR = -12303292; flixel_system_debug_completion_CompletionListScrollBar.HANDLE_COLOR = -14540254; flixel_system_debug_console_ConsoleHistory.MAX_LENGTH = 50; flixel_system_debug_interaction_Interaction.BUTTONS_PER_LINE = 2; flixel_system_debug_interaction_Interaction.SPACING = 25; flixel_system_debug_interaction_Interaction.PADDING = 10; flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Eraser_GraphicEraserTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Eraser_GraphicEraserTool"; flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Mover_GraphicMoverTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Mover_GraphicMoverTool"; flixel_system_debug_interaction_tools_GraphicCursorCross.resourceType = "image/png"; flixel_system_debug_interaction_tools_GraphicCursorCross.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools_GraphicCursorCross"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformTool.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformTool"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorDefault.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorDefault"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleY.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleY"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleX.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleX"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorScaleXY.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorScaleXY"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceType = "image/png"; flixel_system_debug_interaction_tools__$Transform_GraphicTransformCursorRotate.resourceName = "__ASSET__:bitmap_flixel_system_debug_interaction_tools__Transform_GraphicTransformCursorRotate"; flixel_system_debug_interaction_tools_Transform.OUTLINE_PADDING = 5.0; flixel_system_debug_interaction_tools_Transform.MARKER_SIZE = 3.0; flixel_system_debug_interaction_tools_Transform.MARKER_INTERACTION_DISTANCE = 5.0; flixel_system_debug_interaction_tools_Transform.RESIZE_STEP = 10.0; flixel_system_debug_interaction_tools_Transform.CURSOR_ROTATE = "transformRotate"; flixel_system_debug_interaction_tools_Transform.CURSOR_SCALE_X = "transformScaleX"; flixel_system_debug_interaction_tools_Transform.CURSOR_SCALE_Y = "transformScaleY"; flixel_system_debug_interaction_tools_Transform.CURSOR_SCALE_XY = "transformScaleXY"; flixel_system_debug_interaction_tools_Transform.MARKER_ROTATE = 0; flixel_system_debug_interaction_tools_Transform.MARKER_SCALE_X = 1; flixel_system_debug_interaction_tools_Transform.MARKER_SCALE_XY = 2; flixel_system_debug_interaction_tools_Transform.MARKER_SCALE_Y = 3; flixel_system_debug_log_LogStyle.NORMAL = new flixel_system_debug_log_LogStyle(); flixel_system_debug_log_LogStyle.WARNING = new flixel_system_debug_log_LogStyle("[WARNING] ","D9F85C",12,false,false,false,"flixel/sounds/beep",true); flixel_system_debug_log_LogStyle.ERROR = new flixel_system_debug_log_LogStyle("[ERROR] ","FF8888",12,false,false,false,"flixel/sounds/beep",true); flixel_system_debug_log_LogStyle.NOTICE = new flixel_system_debug_log_LogStyle("[NOTICE] ","5CF878",12,false); flixel_system_debug_log_LogStyle.CONSOLE = new flixel_system_debug_log_LogStyle("> ","5A96FA",12,false); flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceType = "image/png"; flixel_system_debug_stats__$Stats_GraphicMinimizeButton.resourceName = "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMinimizeButton"; flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceType = "image/png"; flixel_system_debug_stats__$Stats_GraphicMaximizeButton.resourceName = "__ASSET__:bitmap_flixel_system_debug_stats__Stats_GraphicMaximizeButton"; flixel_system_debug_watch_WatchEntry.GUTTER = 4; flixel_system_debug_watch_WatchEntry.TEXT_HEIGHT = 20; flixel_system_debug_watch_WatchEntry.MAX_NAME_WIDTH = 125; flixel_text_FlxTextAlign.LEFT = "left"; flixel_text_FlxTextAlign.CENTER = "center"; flixel_text_FlxTextAlign.RIGHT = "right"; flixel_text_FlxTextAlign.JUSTIFY = "justify"; flixel_tile__$FlxTilemap_RawGraphicAuto.resourceType = "image/png"; flixel_tile__$FlxTilemap_RawGraphicAuto.resourceName = "__ASSET__:bitmap_flixel_tile__FlxTilemap_RawGraphicAuto"; flixel_tile_GraphicAuto.WIDTH = 128; flixel_tile_GraphicAuto.HEIGHT = 8; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.resourceType = "image/png"; flixel_tile__$FlxTilemap_RawGraphicAutoAlt.resourceName = "__ASSET__:bitmap_flixel_tile__FlxTilemap_RawGraphicAutoAlt"; flixel_tile_GraphicAutoAlt.WIDTH = 128; flixel_tile_GraphicAutoAlt.HEIGHT = 8; flixel_tile__$FlxTilemap_RawGraphicAutoFull.resourceType = "image/png"; flixel_tile__$FlxTilemap_RawGraphicAutoFull.resourceName = "__ASSET__:bitmap_flixel_tile__FlxTilemap_RawGraphicAutoFull"; flixel_tile_GraphicAutoFull.WIDTH = 256; flixel_tile_GraphicAutoFull.HEIGHT = 48; flixel_tweens_FlxEase.PI2 = Math.PI / 2; flixel_tweens_FlxEase.EL = 2 * Math.PI / .45; flixel_tweens_FlxEase.B1 = 0.363636363636363646; flixel_tweens_FlxEase.B2 = 0.727272727272727293; flixel_tweens_FlxEase.B3 = 0.545454545454545414; flixel_tweens_FlxEase.B4 = 0.909090909090909061; flixel_tweens_FlxEase.B5 = 0.818181818181818232; flixel_tweens_FlxEase.B6 = 0.954545454545454586; flixel_tweens_FlxEase.ELASTIC_AMPLITUDE = 1; flixel_tweens_FlxEase.ELASTIC_PERIOD = 0.4; flixel_tweens_FlxTween.PERSIST = 1; flixel_tweens_FlxTween.LOOPING = 2; flixel_tweens_FlxTween.PINGPONG = 4; flixel_tweens_FlxTween.ONESHOT = 8; flixel_tweens_FlxTween.BACKWARD = 16; flixel_ui_FlxAnalog.NORMAL = 0; flixel_ui_FlxAnalog.HIGHLIGHT = 1; flixel_ui_FlxAnalog.PRESSED = 2; flixel_ui_FlxAnalog._analogs = []; flixel_ui_FlxButton.NORMAL = 0; flixel_ui_FlxButton.HIGHLIGHT = 1; flixel_ui_FlxButton.PRESSED = 2; flixel_util_FlxAxes.X = 1; flixel_util_FlxAxes.Y = 16; flixel_util_FlxAxes.XY = 17; flixel_util_FlxAxes.NONE = 0; flixel_util_FlxBitmapDataPool.maxLength = 8; flixel_util_FlxBitmapDataPool.$length = 0; flixel_util_FlxBitmapDataPool._head = null; flixel_util_FlxBitmapDataPool._tail = null; flixel_util_FlxBitmapDataPool._rect = new openfl_geom_Rectangle(); flixel_util_FlxBitmapDataUtil.matrix = new flixel_math_FlxMatrix(); flixel_util_FlxCollision.pointA = new flixel_math_FlxBasePoint(0,0); flixel_util_FlxCollision.pointB = new flixel_math_FlxBasePoint(0,0); flixel_util_FlxCollision.centerA = new flixel_math_FlxBasePoint(0,0); flixel_util_FlxCollision.centerB = new flixel_math_FlxBasePoint(0,0); flixel_util_FlxCollision.matrixA = new flixel_math_FlxMatrix(); flixel_util_FlxCollision.matrixB = new flixel_math_FlxMatrix(); flixel_util_FlxCollision.testMatrix = new flixel_math_FlxMatrix(); flixel_util_FlxCollision.boundsA = new flixel_math_FlxRect(); flixel_util_FlxCollision.boundsB = new flixel_math_FlxRect(); flixel_util_FlxCollision.intersect = new flixel_math_FlxRect(); flixel_util_FlxCollision.flashRect = new openfl_geom_Rectangle(); flixel_util_FlxColor.TRANSPARENT = 0; flixel_util_FlxColor.WHITE = -1; flixel_util_FlxColor.GRAY = -8355712; flixel_util_FlxColor.BLACK = -16777216; flixel_util_FlxColor.GREEN = -16744448; flixel_util_FlxColor.LIME = -16711936; flixel_util_FlxColor.YELLOW = -256; flixel_util_FlxColor.ORANGE = -23296; flixel_util_FlxColor.RED = -65536; flixel_util_FlxColor.PURPLE = -8388480; flixel_util_FlxColor.BLUE = -16776961; flixel_util_FlxColor.BROWN = -7650029; flixel_util_FlxColor.PINK = -16181; flixel_util_FlxColor.MAGENTA = -65281; flixel_util_FlxColor.CYAN = -16711681; flixel_util_FlxColor.colorLookup = (function($this) { var $r; var _g = new haxe_ds_StringMap(); _g.h["TRANSPARENT"] = 0; _g.h["WHITE"] = -1; _g.h["GRAY"] = -8355712; _g.h["BLACK"] = -16777216; _g.h["GREEN"] = -16744448; _g.h["LIME"] = -16711936; _g.h["YELLOW"] = -256; _g.h["ORANGE"] = -23296; _g.h["RED"] = -65536; _g.h["PURPLE"] = -8388480; _g.h["BLUE"] = -16776961; _g.h["BROWN"] = -7650029; _g.h["PINK"] = -16181; _g.h["MAGENTA"] = -65281; _g.h["CYAN"] = -16711681; $r = _g; return $r; }(this)); flixel_util_FlxColor.COLOR_REGEX = new EReg("^(0x|#)(([A-F0-9]{2}){3,4})$","i"); flixel_util_FlxDirection.LEFT = 1; flixel_util_FlxDirection.RIGHT = 16; flixel_util_FlxDirection.UP = 256; flixel_util_FlxDirection.DOWN = 4096; flixel_util_FlxDirectionFlags.LEFT = 1; flixel_util_FlxDirectionFlags.RIGHT = 16; flixel_util_FlxDirectionFlags.UP = 256; flixel_util_FlxDirectionFlags.DOWN = 4096; flixel_util_FlxDirectionFlags.NONE = 0; flixel_util_FlxDirectionFlags.CEILING = 256; flixel_util_FlxDirectionFlags.FLOOR = 4096; flixel_util_FlxDirectionFlags.WALL = 17; flixel_util_FlxDirectionFlags.ANY = 4369; openfl_net_SharedObject.defaultObjectEncoding = 10; flixel_util_FlxSort.ASCENDING = -1; flixel_util_FlxSort.DESCENDING = 1; flixel_util_FlxSpriteUtil.flashGfxSprite = new openfl_display_Sprite(); flixel_util_FlxSpriteUtil.flashGfx = flixel_util_FlxSpriteUtil.flashGfxSprite.get_graphics(); flixel_util_LabelValuePair._pool = new flixel_util_FlxPool(function() { return new flixel_util_LabelValuePair(); }); flxanimate_FlxAnimate.rMatrix = new flixel_math_FlxMatrix(); flxanimate_animate_FlxElement.matrixNames = ["m00","m01","m10","m11","m30","m31"]; flxanimate_frames_FlxAnimateFrames.data = null; flxanimate_frames_PropertyList._dateRegex = new EReg("(\\d{4}-\\d{2}-\\d{2})(?:T(\\d{2}:\\d{2}:\\d{2})Z)?",""); funkin_Conductor._instance = null; funkin_Conductor.measureHit = new flixel_util__$FlxSignal_FlxSignal0(); funkin_Conductor.beatHit = new flixel_util__$FlxSignal_FlxSignal0(); funkin_Conductor.stepHit = new flixel_util__$FlxSignal_FlxSignal0(); funkin_Highscore.tallies = funkin_Tallies._new(); funkin_Highscore.talliesLevel = funkin_Tallies._new(); funkin_Paths.currentLevel = null; funkin_PlayerSettings.numPlayers = 0; funkin_PlayerSettings.numAvatars = 0; funkin_PlayerSettings.onAvatarAdd = new flixel_util__$FlxSignal_FlxSignal1(); funkin_PlayerSettings.onAvatarRemove = new flixel_util__$FlxSignal_FlxSignal1(); funkin_audio_FunkinSound.MAX_VOLUME = 1.0; funkin_audio_FunkinSound._onVolumeChanged = null; funkin_audio_FunkinSound.pool = new flixel_group_FlxTypedGroup(); funkin_audio_FunkinSound.partialQueue = []; funkin_audio_visualize_dsp_Complex.im = { real : 0, imag : 1}; funkin_audio_visualize_dsp_Complex.zero = { real : 0, imag : 0}; funkin_audio_waveform_WaveformData.DEFAULT_VERSION = 2; funkin_audio_waveform_WaveformDataParser.INT16_MAX = 32767; funkin_audio_waveform_WaveformDataParser.INT16_MIN = -32768; funkin_audio_waveform_WaveformDataParser.INT8_MAX = 127; funkin_audio_waveform_WaveformDataParser.INT8_MIN = -128; funkin_audio_waveform_WaveformSprite.DEFAULT_COLOR = -1; funkin_audio_waveform_WaveformSprite.DEFAULT_DURATION = 5.0; funkin_audio_waveform_WaveformSprite.DEFAULT_ORIENTATION = funkin_audio_waveform_WaveformOrientation.HORIZONTAL; funkin_audio_waveform_WaveformSprite.DEFAULT_X = 0.0; funkin_audio_waveform_WaveformSprite.DEFAULT_Y = 0.0; funkin_audio_waveform_WaveformSprite.DEFAULT_WIDTH = 100.0; funkin_audio_waveform_WaveformSprite.DEFAULT_HEIGHT = 100.0; thx_semver_Version.VERSION = new EReg("^(\\d+)\\.(\\d+)\\.(\\d+)(?:[-]([a-z0-9.-]+))?(?:[+]([a-z0-9.-]+))?$","i"); thx_semver_Version.SANITIZER = new EReg("[^0-9A-Za-z-]","g"); thx_semver_VersionRule.VERSION = new EReg("^(>=|<=|[v=><~^])?(\\d+|[x*])(?:\\.(\\d+|[x*]))?(?:\\.(\\d+|[x*]))?(?:[-]([a-z0-9.-]+))?(?:[+]([a-z0-9.-]+))?$","i"); thx_semver_VersionRule.IS_DIGITS = new EReg("^\\d+$",""); funkin_data_dialogue_conversation_ConversationRegistry.CONVERSATION_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.0"); funkin_data_dialogue_conversation_ConversationRegistry.CONVERSATION_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.0.x"); funkin_data_dialogue_conversation_ConversationRegistry._instance = null; funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.DIALOGUEBOX_DATA_VERSION = thx_semver_Version.stringToVersion("1.1.0"); funkin_data_dialogue_dialoguebox_DialogueBoxRegistry.DIALOGUEBOX_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.1.x"); funkin_data_dialogue_dialoguebox_DialogueBoxRegistry._instance = null; funkin_data_dialogue_speaker_SpeakerRegistry.SPEAKER_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.0"); funkin_data_dialogue_speaker_SpeakerRegistry.SPEAKER_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.0.x"); funkin_data_dialogue_speaker_SpeakerRegistry._instance = null; funkin_util_macro_CompiledClassList.__meta__ = { obj : { classLists : [["package~polymod~recursive","polymod.Polymod","polymod.ModMetadata","polymod.PolymodError","polymod._Polymod.PolymodErrorOrigin_Impl_","polymod._Polymod.PolymodErrorCode_Impl_","polymod.PolymodConfig","polymod.backends.StubBackend","polymod.backends.CastleBackend","polymod.backends.CeramicBackend","polymod.backends.LimeBackend","polymod.backends.OpenFLBackend","polymod.backends.FlixelBackend","polymod.backends.HEAPSBackend","polymod.backends.KhaBackend","polymod.backends.LimeModLibrary","polymod.backends.LimeCoreLibrary","polymod.backends._LimeBackend.IdAndLibrary","polymod.backends.NMEBackend","polymod.backends.OpenFLWithNodeBackend","polymod.backends.PolymodAssetLibrary","polymod.backends.PolymodAssets","polymod.backends._PolymodAssets.PolymodAssetType_Impl_","polymod.format.CSV","polymod.format.JsonHelp","polymod.format.ParseRules","polymod.format.CSVParseFormat","polymod.format.TSVParseFormat","polymod.format.LinesParseFormat","polymod.format.XMLParseFormat","polymod.format.JSONParseFormat","polymod.format.PlainTextParseFormat","polymod.format.TSV","polymod.format.XMLMerge","polymod.fs.MemoryFileSystem","polymod.fs.MemoryZipFileSystem","polymod.fs.PolymodFileSystem","polymod.fs.StubFileSystem","polymod.hscript.HScriptParams","polymod.hscript.ScriptRunner","polymod.hscript.Script","polymod.hscript._internal._PolymodAbstractScriptClass.PolymodAbstractScriptClass_Impl_","polymod.hscript._internal.ErrorEx","polymod.hscript._internal.ErrorExUtil","polymod.hscript._internal.PolymodInterpEx","polymod.hscript._internal._PolymodInterpEx.ArrayIterator","polymod.hscript._internal.PolymodParserEx","polymod.hscript._internal.PolymodPrinterEx","polymod.hscript._internal.PolymodScriptClass","polymod.util.DefineUtil","polymod.util.DependencyUtil","polymod.util.Util","polymod.util.VersionUtil"],["package~sys~recursive"],["extend~funkin.play.event.SongEvent","funkin.play.event.SongEvent","funkin.play.event.FocusCameraSongEvent","funkin.play.event.PlayAnimationSongEvent","funkin.play.event.ScriptedSongEvent","funkin.play.event.ScrollSpeedEvent","funkin.play.event.SetCameraBopSongEvent","funkin.play.event.ZoomCameraSongEvent"]]}}; funkin_data_event_SongEventRegistry.BUILTIN_EVENTS = funkin_util_macro_CompiledClassList.get("extend~funkin.play.event.SongEvent"); funkin_data_event_SongEventRegistry.eventCache = new haxe_ds_StringMap(); funkin_data_event_SongEventSchema.NO_SPACE_UNITS = ["x","°","%"]; funkin_data_freeplay_album_AlbumRegistry.ALBUM_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.0"); funkin_data_freeplay_album_AlbumRegistry.ALBUM_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.0.x"); funkin_data_freeplay_album_AlbumRegistry.instance = new funkin_data_freeplay_album_AlbumRegistry(); funkin_data_notestyle_NoteStyleRegistry.NOTE_STYLE_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.0"); funkin_data_notestyle_NoteStyleRegistry.NOTE_STYLE_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.0.x"); funkin_data_notestyle_NoteStyleRegistry._instance = null; funkin_data_song_SongTimeChange.DEFAULT_SONGTIMECHANGE = new funkin_data_song_SongTimeChange(0,100); funkin_data_song_SongTimeChange.DEFAULT_SONGTIMECHANGES = [funkin_data_song_SongTimeChange.DEFAULT_SONGTIMECHANGE]; funkin_data_song_SongTimeChange.DEFAULT_BEAT_TUPLETS = [4,4,4,4]; funkin_data_song_SongTimeChange.DEFAULT_BEAT_TIME = null; funkin_data_song_SongRegistry.SONG_METADATA_VERSION = thx_semver_Version.stringToVersion("2.2.3"); funkin_data_song_SongRegistry.SONG_METADATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("2.2.x"); funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION = thx_semver_Version.stringToVersion("2.0.0"); funkin_data_song_SongRegistry.SONG_CHART_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("2.0.x"); funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION = thx_semver_Version.stringToVersion("2.0.0"); funkin_data_song_SongRegistry.SONG_MUSIC_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("2.0.x"); funkin_data_song_SongRegistry._instance = null; funkin_data_song_importer_ChartManifestData.CHART_MANIFEST_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.0"); funkin_data_song_importer_FNFLegacyImporter.STRUMLINE_SIZE = 4; funkin_data_stage_StageRegistry.STAGE_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.0"); funkin_data_stage_StageRegistry.STAGE_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.0.x"); funkin_data_stage_StageRegistry._instance = null; funkin_data_story_level_LevelRegistry.LEVEL_DATA_VERSION = thx_semver_Version.stringToVersion("1.0.1"); funkin_data_story_level_LevelRegistry.LEVEL_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("1.0.x"); funkin_data_story_level_LevelRegistry._instance = null; funkin_effects_IntervalShake._pool = new flixel_util_FlxPool(function() { return new funkin_effects_IntervalShake(); }); funkin_effects_IntervalShake._boundObjects = new haxe_ds_ObjectMap(); funkin_graphics_FunkinCamera.squashTo_matrix = new flixel_math_FlxMatrix(); funkin_graphics_FunkinSprite.currentCachedTextures = new haxe_ds_StringMap(); funkin_graphics_FunkinSprite.previousCachedTextures = new haxe_ds_StringMap(); funkin_graphics_adobeanimate_FlxAtlasSprite.SETTINGS = { FrameRate : 24.0, Reversed : false, ShowPivot : false, Antialiasing : true, ScrollFactor : null}; funkin_graphics_framebuffer_BitmapDataUtil.getCache_cache = null; funkin_graphics_shaders_RuntimeRainShader.MAX_LIGHTS = 8; funkin_graphics_video_FlxVideo.FRAME_RATE = 60; funkin_input_Cursor.cursorMode = null; funkin_input_Cursor.CURSOR_DEFAULT_PARAMS = { graphic : "assets/images/cursor/cursor-default.png", scale : 1.0, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorDefault = null; funkin_input_Cursor.CURSOR_CROSS_PARAMS = { graphic : "assets/images/cursor/cursor-cross.png", scale : 1.0, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorCross = null; funkin_input_Cursor.CURSOR_ERASER_PARAMS = { graphic : "assets/images/cursor/cursor-eraser.png", scale : 1.0, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorEraser = null; funkin_input_Cursor.CURSOR_GRABBING_PARAMS = { graphic : "assets/images/cursor/cursor-grabbing.png", scale : 1.0, offsetX : -8, offsetY : 0}; funkin_input_Cursor.assetCursorGrabbing = null; funkin_input_Cursor.CURSOR_HOURGLASS_PARAMS = { graphic : "assets/images/cursor/cursor-hourglass.png", scale : 1.0, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorHourglass = null; funkin_input_Cursor.CURSOR_POINTER_PARAMS = { graphic : "assets/images/cursor/cursor-pointer.png", scale : 1.0, offsetX : -8, offsetY : 0}; funkin_input_Cursor.assetCursorPointer = null; funkin_input_Cursor.CURSOR_TEXT_PARAMS = { graphic : "assets/images/cursor/cursor-text.png", scale : 0.2, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorText = null; funkin_input_Cursor.CURSOR_TEXT_VERTICAL_PARAMS = { graphic : "assets/images/cursor/cursor-text-vertical.png", scale : 0.2, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorTextVertical = null; funkin_input_Cursor.CURSOR_ZOOM_IN_PARAMS = { graphic : "assets/images/cursor/cursor-zoom-in.png", scale : 1.0, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorZoomIn = null; funkin_input_Cursor.CURSOR_ZOOM_OUT_PARAMS = { graphic : "assets/images/cursor/cursor-zoom-out.png", scale : 1.0, offsetX : 0, offsetY : 0}; funkin_input_Cursor.assetCursorZoomOut = null; funkin_input_Cursor.CURSOR_CROSSHAIR_PARAMS = { graphic : "assets/images/cursor/cursor-crosshair.png", scale : 1.0, offsetX : -16, offsetY : -16}; funkin_input_Cursor.assetCursorCrosshair = null; funkin_input_Cursor.CURSOR_CELL_PARAMS = { graphic : "assets/images/cursor/cursor-cell.png", scale : 1.0, offsetX : -16, offsetY : -16}; funkin_input_Cursor.assetCursorCell = null; funkin_input_Cursor.CURSOR_SCROLL_PARAMS = { graphic : "assets/images/cursor/cursor-scroll.png", scale : 0.2, offsetX : -15, offsetY : -15}; funkin_input_Cursor.assetCursorScroll = null; funkin_util_Constants.TITLE = "Friday Night Funkin'"; funkin_util_Constants.VERSION_SUFFIX = ""; funkin_util_Constants.URL_MERCH = "https://needlejuicerecords.com/pages/friday-night-funkin"; funkin_util_Constants.SITE_LOCK = ["https://www.newgrounds.com/portal/view/770371","localhost"]; funkin_util_Constants.URL_ITCH = "https://ninja-muffin24.itch.io/funkin/purchase"; funkin_util_Constants.URL_KICKSTARTER = "https://www.kickstarter.com/projects/funkin/friday-night-funkin-the-full-ass-game/"; funkin_util_Constants.GIT_BRANCH = "main"; funkin_util_Constants.GIT_HASH = "49155b0"; funkin_util_Constants.GIT_HAS_LOCAL_CHANGES = true; funkin_util_Constants.LIBRARY_VERSIONS = ["discord_rpc git(https://github.com/Aidan63/linc_discord-rpc/:2d83fa863ef0c1eace5f1cf67c3ac315d1a3a8a5","flixel git(https://github.com/FunkinCrew/flixel/:a7d8e3bad89a0a3506a4714121f73d8e34522c49","flixel-addons git(https://github.com/FunkinCrew/flixel-addons/:a523c3b56622f0640933944171efed46929e360e","flixel-text-input haxelib(1.1.0)","flixel-ui git(https://github.com/HaxeFlixel/flixel-ui/:719b4f10d94186ed55f6fef1b6618d32abec8c15","flxanimate git(https://github.com/FunkinCrew/flxanimate/:17e0d59fdbc2b6283a5c0e4df41f1c7f27b71c49","FlxPartialSound git(https://github.com/FunkinCrew/FlxPartialSound.git/:f986332ba5ab02abd386ce662578baf04904604a","format haxelib(3.5.0)","funkin.vis git(https://github.com/FunkinCrew/funkVis/:38261833590773cb1de34ac5d11e0825696fc340","grig.audio git(https://gitlab.com/haxe-grig/grig.audio.git/src:57f5d47f2533fd0c3dcd025a86cb86c0dfa0b6d2","hamcrest haxelib(3.0.0)","haxeui-core git(https://github.com/haxeui/haxeui-core/:0212d8fdfcafeb5f0d5a41e1ddba8ff21d0e183b","haxeui-flixel git(https://github.com/haxeui/haxeui-flixel/:63a906a6148958dbfde8c7b48d90b0693767fd95","hscript haxelib(2.5.0)","hxCodec git(https://github.com/FunkinCrew/hxCodec/:61b98a7a353b7f529a8fec84ed9afc919a2dffdd","hxcpp haxelib(4.3.2)","hxcpp-debug-server git(https://github.com/FunkinCrew/hxcpp-debugger/hxcpp-debug-server:147294123f983e35f50a966741474438069a7a8f","hxp haxelib(1.2.2)","json2object git(https://github.com/FunkinCrew/json2object/:a8c26f18463c98da32f744c214fe02273e1823fa","lime git(https://github.com/FunkinCrew/lime/:872ff6db2f2d27c0243d4ff76802121ded550dd7","mconsole git(https://github.com/massive-oss/mconsole/:06c0499ed8f80628a0e6e55ffa32c3cbd688a838","mcover git(https://github.com/massive-oss/mcover/src:c3c47cd682b0b202a41caee95321989391b617ef","mockatoo git(https://github.com/FunkinCrew/mockatoo/src:13d77a0a8eaf5e789ef5dae6cd33eee812deda36","munit git(https://github.com/FunkinCrew/MassiveUnit/src:f61be7f7ba796595f45023ca65164a485aba0e7e","openfl git(https://github.com/FunkinCrew/openfl/:228c1b5063911e2ad75cef6e3168ef0a4b9f9134","polymod git(https://github.com/larsiusprime/polymod/:develop","thx.core git(https://github.com/FunkinCrew/thx.core/:22605ff44f01971d599641790d6bae4869f7d9f4","thx.semver git(https://github.com/FunkinCrew/thx.semver/:cf8d213589a2c7ce4a59b0fdba9e8ff36bc029fa"]; funkin_util_Constants.COLOR_HEALTH_BAR_RED = -65536; funkin_util_Constants.COLOR_HEALTH_BAR_GREEN = -10027213; funkin_util_Constants.COLOR_NOTES = [-56662,-16716033,-16724992,-3403503]; funkin_util_Constants.COLOR_PRELOADER_BG = -16777216; funkin_util_Constants.COLOR_PRELOADER_BAR = -5964015; funkin_util_Constants.COLOR_PRELOADER_LOCK_BG = -15001833; funkin_util_Constants.COLOR_PRELOADER_LOCK_FG = 12152592; funkin_util_Constants.COLOR_PRELOADER_LOCK_FONT = 13421772; funkin_util_Constants.COLOR_PRELOADER_LOCK_LINK = 15643153; funkin_util_Constants.SITE_LOCK_TITLE = "You Loser!"; funkin_util_Constants.SITE_LOCK_DESC = "This isn't Newgrounds!\nGo play Friday Night Funkin' on Newgrounds:"; funkin_util_Constants.DEFAULT_DIFFICULTY = "normal"; funkin_util_Constants.DEFAULT_DIFFICULTY_LIST = ["easy","normal","hard"]; funkin_util_Constants.DEFAULT_DIFFICULTY_LIST_FULL = ["easy","normal","hard","erect","nightmare"]; funkin_util_Constants.DEFAULT_CHARACTER = "bf"; funkin_util_Constants.DEFAULT_HEALTH_ICON = "face"; funkin_util_Constants.DEFAULT_STAGE = "mainStage"; funkin_util_Constants.DEFAULT_SONG = "tutorial"; funkin_util_Constants.DEFAULT_VARIATION = "default"; funkin_util_Constants.DEFAULT_VARIATION_LIST = ["default","erect","pico"]; funkin_util_Constants.DEFAULT_BOP_INTENSITY = 1.015; funkin_util_Constants.DEFAULT_ZOOM_RATE = 4; funkin_util_Constants.DEFAULT_BPM = 100.0; funkin_util_Constants.DEFAULT_SONGNAME = "Unknown"; funkin_util_Constants.DEFAULT_ARTIST = "Unknown"; funkin_util_Constants.DEFAULT_CHARTER = "Unknown"; funkin_util_Constants.DEFAULT_NOTE_STYLE = "funkin"; funkin_util_Constants.DEFAULT_ALBUM_ID = "volume1"; funkin_util_Constants.DEFAULT_TIMEFORMAT = "ms"; funkin_util_Constants.DEFAULT_SCROLLSPEED = 1.0; funkin_util_Constants.DEFAULT_TIME_SIGNATURE_NUM = 4; funkin_util_Constants.DEFAULT_TIME_SIGNATURE_DEN = 4; funkin_util_Constants.PIXELS_PER_MS = 0.45; funkin_util_Constants.HIT_WINDOW_MS = 160.0; funkin_util_Constants.SECS_PER_MIN = 60; funkin_util_Constants.MS_PER_SEC = 1000; funkin_util_Constants.US_PER_MS = 1000; funkin_util_Constants.US_PER_SEC = funkin_util_Constants.US_PER_MS * funkin_util_Constants.MS_PER_SEC; funkin_util_Constants.NS_PER_US = 1000; funkin_util_Constants.NS_PER_MS = funkin_util_Constants.NS_PER_US * funkin_util_Constants.US_PER_MS; funkin_util_Constants.NS_PER_SEC = funkin_util_Constants.NS_PER_US * funkin_util_Constants.US_PER_MS * funkin_util_Constants.MS_PER_SEC; funkin_util_Constants.NOTIFICATION_DISMISS_TIME = 5 * funkin_util_Constants.MS_PER_SEC; funkin_util_Constants.AUTOSAVE_TIMER_DELAY_SEC = 5.0 * funkin_util_Constants.SECS_PER_MIN; funkin_util_Constants.STEPS_PER_BEAT = 4; funkin_util_Constants.MP3_DELAY_MS = 0.0119727891156462592 * funkin_util_Constants.MS_PER_SEC; funkin_util_Constants.PRELOADER_MIN_STAGE_TIME = 0.1; funkin_util_Constants.HEALTH_MAX = 2.0; funkin_util_Constants.HEALTH_STARTING = funkin_util_Constants.HEALTH_MAX / 2.0; funkin_util_Constants.HEALTH_MIN = 0.0; funkin_util_Constants.HEALTH_KILLER_BONUS = 0.02 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_SICK_BONUS = 0.015 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_GOOD_BONUS = 0.0075 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_BAD_BONUS = 0. * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_SHIT_BONUS = -0.01 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_HOLD_BONUS_PER_SECOND = 0.075 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_MISS_PENALTY = 0.04 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_GHOST_MISS_PENALTY = 0.02 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.HEALTH_HOLD_DROP_PENALTY = 0.0; funkin_util_Constants.HEALTH_MINE_PENALTY = 0.15 * funkin_util_Constants.HEALTH_MAX; funkin_util_Constants.SCORE_HOLD_BONUS_PER_SECOND = 250.0; funkin_util_Constants.JUDGEMENT_KILLER_COMBO_BREAK = false; funkin_util_Constants.JUDGEMENT_SICK_COMBO_BREAK = false; funkin_util_Constants.JUDGEMENT_GOOD_COMBO_BREAK = false; funkin_util_Constants.JUDGEMENT_BAD_COMBO_BREAK = true; funkin_util_Constants.JUDGEMENT_SHIT_COMBO_BREAK = true; funkin_util_Constants.RANK_PERFECT_PLAT_THRESHOLD = 1.0; funkin_util_Constants.RANK_PERFECT_GOLD_THRESHOLD = 0.85; funkin_util_Constants.RANK_PERFECT_THRESHOLD = 1.00; funkin_util_Constants.RANK_EXCELLENT_THRESHOLD = 0.90; funkin_util_Constants.RANK_GREAT_THRESHOLD = 0.80; funkin_util_Constants.RANK_GOOD_THRESHOLD = 0.60; funkin_util_Constants.EXT_CHART = "fnfc"; funkin_util_Constants.EXT_SOUND = "mp3"; funkin_util_Constants.EXT_VIDEO = "mp4"; funkin_util_Constants.EXT_IMAGE = "png"; funkin_util_Constants.EXT_DATA = "json"; funkin_util_Constants.GHOST_TAPPING = false; funkin_util_Constants.MAX_PREVIOUS_WORKING_FILES = 10; funkin_util_Constants.LIBRARY_SEPARATOR = ":"; funkin_util_Constants.PIXEL_ART_SCALE = 6; funkin_util_Constants.COUNTDOWN_VOLUME = 0.6; funkin_util_Constants.STRUMLINE_X_OFFSET = 48; funkin_util_Constants.STRUMLINE_Y_OFFSET = 24; funkin_util_Constants.DEFAULT_CAMERA_FOLLOW_RATE = 0.04; funkin_input_PreciseInputManager.DIRECTIONS = [0,1,2,3]; funkin_input_PreciseInputManager.NS_PER_MS = (function($this) { var $r; var x = funkin_util_Constants.NS_PER_MS; $r = new haxe__$Int64__$_$_$Int64(x >> 31,x); return $r; }(this)); funkin_input_TurboActionHandler.DEFAULT_DELAY = 0.4; funkin_input_TurboActionHandler.DEFAULT_INTERVAL = 0.1; funkin_input_TurboButtonHandler.DEFAULT_DELAY = 0.4; funkin_input_TurboButtonHandler.DEFAULT_INTERVAL = 0.1; funkin_input_TurboKeyHandler.DEFAULT_DELAY = 0.4; funkin_input_TurboKeyHandler.DEFAULT_INTERVAL = 0.1; funkin_modding_PolymodHandler.API_VERSION = "0.1.0"; funkin_modding_PolymodHandler.MOD_FOLDER = "mods"; funkin_modding_PolymodHandler.CORE_FOLDER = null; funkin_modding_PolymodHandler.loadedModIds = []; funkin_modding_PolymodHandler.modFileSystem = null; funkin_modding_events_ScriptEventType.CREATE = "CREATE"; funkin_modding_events_ScriptEventType.DESTROY = "DESTROY"; funkin_modding_events_ScriptEventType.ADDED = "ADDED"; funkin_modding_events_ScriptEventType.UPDATE = "UPDATE"; funkin_modding_events_ScriptEventType.PAUSE = "PAUSE"; funkin_modding_events_ScriptEventType.RESUME = "RESUME"; funkin_modding_events_ScriptEventType.SONG_BEAT_HIT = "BEAT_HIT"; funkin_modding_events_ScriptEventType.SONG_STEP_HIT = "STEP_HIT"; funkin_modding_events_ScriptEventType.NOTE_INCOMING = "NOTE_INCOMING"; funkin_modding_events_ScriptEventType.NOTE_HIT = "NOTE_HIT"; funkin_modding_events_ScriptEventType.NOTE_MISS = "NOTE_MISS"; funkin_modding_events_ScriptEventType.NOTE_GHOST_MISS = "NOTE_GHOST_MISS"; funkin_modding_events_ScriptEventType.SONG_EVENT = "SONG_EVENT"; funkin_modding_events_ScriptEventType.SONG_START = "SONG_START"; funkin_modding_events_ScriptEventType.SONG_END = "SONG_END"; funkin_modding_events_ScriptEventType.COUNTDOWN_START = "COUNTDOWN_START"; funkin_modding_events_ScriptEventType.COUNTDOWN_STEP = "COUNTDOWN_STEP"; funkin_modding_events_ScriptEventType.COUNTDOWN_END = "COUNTDOWN_END"; funkin_modding_events_ScriptEventType.GAME_OVER = "GAME_OVER"; funkin_modding_events_ScriptEventType.SONG_RETRY = "SONG_RETRY"; funkin_modding_events_ScriptEventType.KEY_DOWN = "KEY_DOWN"; funkin_modding_events_ScriptEventType.KEY_UP = "KEY_UP"; funkin_modding_events_ScriptEventType.SONG_LOADED = "SONG_LOADED"; funkin_modding_events_ScriptEventType.STATE_CHANGE_BEGIN = "STATE_CHANGE_BEGIN"; funkin_modding_events_ScriptEventType.STATE_CHANGE_END = "STATE_CHANGE_END"; funkin_modding_events_ScriptEventType.SUBSTATE_OPEN_BEGIN = "SUBSTATE_OPEN_BEGIN"; funkin_modding_events_ScriptEventType.SUBSTATE_OPEN_END = "SUBSTATE_OPEN_END"; funkin_modding_events_ScriptEventType.SUBSTATE_CLOSE_BEGIN = "SUBSTATE_CLOSE_BEGIN"; funkin_modding_events_ScriptEventType.SUBSTATE_CLOSE_END = "SUBSTATE_CLOSE_END"; funkin_modding_events_ScriptEventType.DIALOGUE_START = "DIALOGUE_START"; funkin_modding_events_ScriptEventType.DIALOGUE_LINE = "DIALOGUE_LINE"; funkin_modding_events_ScriptEventType.DIALOGUE_COMPLETE_LINE = "DIALOGUE_COMPLETE_LINE"; funkin_modding_events_ScriptEventType.DIALOGUE_SKIP = "DIALOGUE_SKIP"; funkin_modding_events_ScriptEventType.DIALOGUE_END = "DIALOGUE_END"; funkin_modding_module_ModuleHandler.moduleCache = new haxe_ds_StringMap(); funkin_modding_module_ModuleHandler.modulePriorityOrder = []; funkin_play_Countdown.countdownStep = funkin_play_CountdownStep.BEFORE; funkin_play_Countdown.countdownTimer = null; funkin_play_GameOverSubState.instance = null; funkin_play_GameOverSubState.animationSuffix = ""; funkin_play_GameOverSubState.musicSuffix = ""; funkin_play_GameOverSubState.blueBallSuffix = ""; funkin_play_GameOverSubState.blueballed = false; funkin_play_GameOverSubState.CAMERA_ZOOM_DURATION = 0.5; funkin_play_cutscene_VideoCutscene.onVideoStarted = new flixel_util__$FlxSignal_FlxSignal0(); funkin_play_cutscene_VideoCutscene.onVideoPaused = new flixel_util__$FlxSignal_FlxSignal0(); funkin_play_cutscene_VideoCutscene.onVideoResumed = new flixel_util__$FlxSignal_FlxSignal0(); funkin_play_cutscene_VideoCutscene.onVideoRestarted = new flixel_util__$FlxSignal_FlxSignal0(); funkin_play_cutscene_VideoCutscene.onVideoEnded = new flixel_util__$FlxSignal_FlxSignal0(); funkin_play_PlayState.instance = null; funkin_play_PlayState.lastParams = null; funkin_play_PlayState.BACKGROUND_COLOR = -16777216; funkin_play_PlayStatePlaylist.isStoryMode = false; funkin_play_PlayStatePlaylist.playlistSongIds = []; funkin_play_PlayStatePlaylist.campaignScore = 0; funkin_play_PlayStatePlaylist.campaignTitle = "UNKNOWN"; funkin_play_PlayStatePlaylist.campaignId = null; funkin_play_PlayStatePlaylist.campaignDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; funkin_ui_story_StoryMenuState.DEFAULT_BACKGROUND_COLOR = flixel_util_FlxColor.fromString("#F9CF51"); funkin_ui_story_StoryMenuState.BACKGROUND_HEIGHT = 400; funkin_ui_story_StoryMenuState.rememberedLevelId = null; funkin_ui_story_StoryMenuState.rememberedDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; funkin_ui_mainmenu_MainMenuState.rememberedSelectedIndex = 0; openfl_utils_Assets.cache = new openfl_utils_AssetCache(); openfl_utils_Assets.dispatcher = new openfl_events_EventDispatcher(); openfl_utils_Assets.libraryBindings = new haxe_ds_StringMap(); lime_utils_Assets.cache = new lime_utils_AssetCache(); lime_utils_Assets.onChange = new lime_app__$Event_$Void_$Void(); lime_utils_Assets.bundlePaths = new haxe_ds_StringMap(); lime_utils_Assets.libraries = new haxe_ds_StringMap(); lime_utils_Assets.libraryPaths = new haxe_ds_StringMap(); funkin_ui_freeplay_FreeplayState.FADE_IN_DURATION = 0.5; funkin_ui_freeplay_FreeplayState.FADE_OUT_DURATION = 0.25; funkin_ui_freeplay_FreeplayState.FADE_IN_START_VOLUME = 0.25; funkin_ui_freeplay_FreeplayState.FADE_IN_END_VOLUME = 1.0; funkin_ui_freeplay_FreeplayState.FADE_OUT_END_VOLUME = 0.0; funkin_ui_freeplay_FreeplayState.rememberedDifficulty = funkin_util_Constants.DEFAULT_DIFFICULTY; funkin_ui_freeplay_FreeplayState.rememberedSongId = "tutorial"; funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_STANDARD = (function($this) { var $r; var targetMode = funkin_play_PauseMode.Difficulty; var tmp = function(state) { funkin_play_PauseSubState.switchMode(state,targetMode); }; $r = [{ text : "Resume", callback : funkin_play_PauseSubState.resume},{ text : "Restart Song", callback : funkin_play_PauseSubState.restartPlayState},{ text : "Change Difficulty", callback : tmp},{ text : "Enable Practice Mode", callback : funkin_play_PauseSubState.enablePracticeMode, filter : function() { var tmp = funkin_play_PlayState.instance; var tmp1 = tmp != null ? tmp.isPracticeMode : null; return !(tmp1 != null && tmp1); }},{ text : "Exit to Menu", callback : funkin_play_PauseSubState.quitToMenu}]; return $r; }(this)); funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_CHARTING = [{ text : "Resume", callback : funkin_play_PauseSubState.resume},{ text : "Restart Song", callback : funkin_play_PauseSubState.restartPlayState},{ text : "Return to Chart Editor", callback : funkin_play_PauseSubState.quitToChartEditor}]; funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_DIFFICULTY = (function($this) { var $r; var targetMode = funkin_play_PauseMode.Standard; $r = [{ text : "Back", callback : function(state) { funkin_play_PauseSubState.switchMode(state,targetMode); }}]; return $r; }(this)); funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_VIDEO_CUTSCENE = [{ text : "Resume", callback : funkin_play_PauseSubState.resume},{ text : "Skip Cutscene", callback : funkin_play_PauseSubState.skipVideoCutscene},{ text : "Restart Cutscene", callback : funkin_play_PauseSubState.restartVideoCutscene},{ text : "Exit to Menu", callback : funkin_play_PauseSubState.quitToMenu}]; funkin_play_PauseSubState.PAUSE_MENU_ENTRIES_CONVERSATION = [{ text : "Resume", callback : funkin_play_PauseSubState.resume},{ text : "Restart Dialogue", callback : funkin_play_PauseSubState.restartConversation},{ text : "Skip Dialogue", callback : funkin_play_PauseSubState.skipConversation},{ text : "Exit to Menu", callback : funkin_play_PauseSubState.quitToMenu}]; funkin_play_PauseSubState.MUSIC_FADE_IN_TIME = 5; funkin_play_PauseSubState.MUSIC_FINAL_VOLUME = 0.75; funkin_play_PauseSubState.CHARTER_FADE_DELAY = 15.0; funkin_play_PauseSubState.CHARTER_FADE_DURATION = 0.75; funkin_play_PauseSubState.musicSuffix = ""; funkin_play_character_CharacterDataParser.CHARACTER_DATA_VERSION = "1.0.1"; funkin_play_character_CharacterDataParser.CHARACTER_DATA_VERSION_RULE = "1.0.x"; funkin_play_character_CharacterDataParser.characterCache = new haxe_ds_StringMap(); funkin_play_character_CharacterDataParser.characterScriptedClass = new haxe_ds_StringMap(); funkin_play_character_CharacterDataParser.DEFAULT_CHAR_ID = "UNKNOWN"; funkin_play_character_CharacterDataParser.DEFAULT_SINGTIME = 8.0; funkin_play_character_CharacterDataParser.DEFAULT_DANCEEVERY = 1; funkin_play_character_CharacterDataParser.DEFAULT_FLIPX = false; funkin_play_character_CharacterDataParser.DEFAULT_FLIPY = false; funkin_play_character_CharacterDataParser.DEFAULT_FRAMERATE = 24; funkin_play_character_CharacterDataParser.DEFAULT_ISPIXEL = false; funkin_play_character_CharacterDataParser.DEFAULT_LOOP = false; funkin_play_character_CharacterDataParser.DEFAULT_NAME = "Untitled Character"; funkin_play_character_CharacterDataParser.DEFAULT_OFFSETS = [0,0]; funkin_play_character_CharacterDataParser.DEFAULT_HEALTHICON_OFFSETS = [0,25]; funkin_play_character_CharacterDataParser.DEFAULT_RENDERTYPE = "sparrow"; funkin_play_character_CharacterDataParser.DEFAULT_SCALE = 1; funkin_play_character_CharacterDataParser.DEFAULT_SCROLL = [0,0]; funkin_play_character_CharacterDataParser.DEFAULT_STARTINGANIM = "idle"; funkin_play_components_HealthIcon.WINNING_THRESHOLD = 1.6; funkin_play_components_HealthIcon.LOSING_THRESHOLD = 0.4; funkin_play_components_HealthIcon.MAXIMUM_HEALTH = 2; funkin_play_components_HealthIcon.HEALTH_ICON_SIZE = 150; funkin_play_components_HealthIcon.PIXEL_ICON_SIZE = 32; funkin_play_components_HealthIcon.BOP_SCALE = 0.2; funkin_play_components_HealthIcon.POSITION_OFFSET = 26; funkin_play_cutscene_VanillaCutscenes.TWEEN_DURATION = 2.0; funkin_play_event_ScrollSpeedEvent.DEFAULT_SCROLL = 1; funkin_play_event_ScrollSpeedEvent.DEFAULT_DURATION = 4.0; funkin_play_event_ScrollSpeedEvent.DEFAULT_EASE = "linear"; funkin_play_event_ScrollSpeedEvent.DEFAULT_ABSOLUTE = false; funkin_play_event_ScrollSpeedEvent.DEFAULT_STRUMLINE = "both"; funkin_play_event_ZoomCameraSongEvent.DEFAULT_ZOOM = 1.0; funkin_play_event_ZoomCameraSongEvent.DEFAULT_DURATION = 4.0; funkin_play_event_ZoomCameraSongEvent.DEFAULT_MODE = "direct"; funkin_play_event_ZoomCameraSongEvent.DEFAULT_EASE = "linear"; funkin_play_notes_NoteDirection.LEFT = 0; funkin_play_notes_NoteDirection.DOWN = 1; funkin_play_notes_NoteDirection.UP = 2; funkin_play_notes_NoteDirection.RIGHT = 3; funkin_play_notes_NoteHoldCover.FRAMERATE_DEFAULT = 24; funkin_play_notes_NoteSplash.ALPHA = 0.6; funkin_play_notes_NoteSplash.FRAMERATE_DEFAULT = 24; funkin_play_notes_NoteSplash.FRAMERATE_VARIANCE = 2; funkin_play_notes_NoteSprite.DIRECTION_COLORS = ["purple","blue","green","red"]; funkin_play_notes_Strumline.DIRECTIONS = [0,1,2,3]; funkin_play_notes_Strumline.STRUMLINE_SIZE = 104; funkin_play_notes_Strumline.NOTE_SPACING = funkin_play_notes_Strumline.STRUMLINE_SIZE + 8; funkin_play_notes_Strumline.INITIAL_OFFSET = -0.275 * funkin_play_notes_Strumline.STRUMLINE_SIZE; funkin_play_notes_Strumline.NUDGE = 2.0; funkin_play_notes_Strumline.KEY_COUNT = 4; funkin_play_notes_Strumline.NOTE_SPLASH_CAP = 6; funkin_play_notes_StrumlineNote.CONFIRM_HOLD_TIME = 0.1; funkin_play_notes_StrumlineNote.DEFAULT_OFFSET = 13; funkin_play_notes_SustainTrail.TRIANGLE_VERTEX_INDICES = [0,1,2,1,2,3,4,5,6,5,6,7]; funkin_play_scoring_Scoring.PBOT1_MAX_SCORE = 500; funkin_play_scoring_Scoring.PBOT1_SCORING_OFFSET = 54.99; funkin_play_scoring_Scoring.PBOT1_SCORING_SLOPE = 0.080; funkin_play_scoring_Scoring.PBOT1_MIN_SCORE = 9.0; funkin_play_scoring_Scoring.PBOT1_MISS_SCORE = 0; funkin_play_scoring_Scoring.PBOT1_PERFECT_THRESHOLD = 5.0; funkin_play_scoring_Scoring.PBOT1_MISS_THRESHOLD = 160.0; funkin_play_scoring_Scoring.PBOT1_KILLER_THRESHOLD = 12.5; funkin_play_scoring_Scoring.PBOT1_SICK_THRESHOLD = 45.0; funkin_play_scoring_Scoring.PBOT1_GOOD_THRESHOLD = 90.0; funkin_play_scoring_Scoring.PBOT1_BAD_THRESHOLD = 135.0; funkin_play_scoring_Scoring.PBOT1_SHIT_THRESHOLD = 160.0; funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW = 166.666666666666657; funkin_play_scoring_Scoring.LEGACY_SICK_THRESHOLD = 0.2; funkin_play_scoring_Scoring.LEGACY_GOOD_THRESHOLD = 0.75; funkin_play_scoring_Scoring.LEGACY_BAD_THRESHOLD = 0.9; funkin_play_scoring_Scoring.LEGACY_SHIT_THRESHOLD = 1.0; funkin_play_scoring_Scoring.LEGACY_SICK_SCORE = 350; funkin_play_scoring_Scoring.LEGACY_GOOD_SCORE = 200; funkin_play_scoring_Scoring.LEGACY_BAD_SCORE = 100; funkin_play_scoring_Scoring.LEGACY_SHIT_SCORE = 50; funkin_play_scoring_Scoring.WEEK7_HIT_WINDOW = funkin_play_scoring_Scoring.LEGACY_HIT_WINDOW; funkin_play_scoring_Scoring.WEEK7_BAD_THRESHOLD = 0.8; funkin_play_scoring_Scoring.WEEK7_GOOD_THRESHOLD = 0.55; funkin_play_scoring_Scoring.WEEK7_SICK_THRESHOLD = 0.2; funkin_play_scoring_Scoring.WEEK7_SHIT_SCORE = 50; funkin_play_scoring_Scoring.WEEK7_BAD_SCORE = 100; funkin_play_scoring_Scoring.WEEK7_GOOD_SCORE = 200; funkin_play_scoring_Scoring.WEEK7_SICK_SCORE = 350; funkin_play_scoring_ScoringRank.PERFECT_GOLD = "PERFECT_GOLD"; funkin_play_scoring_ScoringRank.PERFECT = "PERFECT"; funkin_play_scoring_ScoringRank.EXCELLENT = "EXCELLENT"; funkin_play_scoring_ScoringRank.GREAT = "GREAT"; funkin_play_scoring_ScoringRank.GOOD = "GOOD"; funkin_play_scoring_ScoringRank.SHIT = "SHIT"; funkin_play_song_Song.DEFAULT_SONGNAME = "Unknown"; funkin_play_song_Song.DEFAULT_ARTIST = "Unknown"; funkin_play_song_Song.DEFAULT_TIMEFORMAT = "ms"; funkin_play_song_Song.DEFAULT_DIVISIONS = null; funkin_play_song_Song.DEFAULT_LOOPED = false; funkin_play_song_Song.DEFAULT_STAGE = "mainStage"; funkin_play_song_Song.DEFAULT_SCROLLSPEED = 1.0; funkin_save_Save.SAVE_DATA_VERSION = thx_semver_Version.stringToVersion("2.0.5"); funkin_save_Save.SAVE_DATA_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("2.0.x"); funkin_save_Save.SAVE_PATH = "FunkinCrew"; funkin_save_Save.SAVE_NAME = "Funkin"; funkin_save_Save.SAVE_PATH_LEGACY = "ninjamuffin99"; funkin_save_Save.SAVE_NAME_LEGACY = "funkin"; funkin_save_Save._instance = null; funkin_ui_AlphaCharacter.alphabet = "abcdefghijklmnopqrstuvwxyz"; funkin_ui_AlphaCharacter.numbers = "1234567890"; funkin_ui_AlphaCharacter.symbols = "|~#$%()*+-:;<=>@[]^_.,'!?"; funkin_ui_AtlasText.fonts = new haxe_ds_StringMap(); funkin_ui_AtlasText.casesAllowed = new haxe_ds_StringMap(); funkin_ui__$AtlasText_AtlasFontData.upperChar = new EReg("^[A-Z]\\d+$",""); funkin_ui__$AtlasText_AtlasFontData.lowerChar = new EReg("^[a-z]\\d+$",""); funkin_ui_Prompt.MARGIN = 100; funkin_ui_credits_CreditsDataHandler.BACKER_PUBLIC_URL = "https://funkin.me/backers"; funkin_ui_credits_CreditsDataHandler.CREDITS_DATA_PATH = "assets/exclude/data/credits.json"; funkin_ui_credits_CreditsDataHandler.CREDITS_DATA = { entries : [{ header : "Friday Night Funkin'", body : [{ line : "A video game created by"},{ line : "The Funkin' Crew Inc."}]},{ header : "The Funkin' Crew Inc. Shareholders", body : [{ line : "ninjamuffin99"},{ line : "PhantomArcade"},{ line : "Kawai Sprite"},{ line : "evilsk8r"}]},{ header : "Direction and Art Lead", body : [{ line : "PhantomArcade"}]},{ header : "Music Lead", body : [{ line : "Isaac “Kawai Sprite” Garcia"}]},{ header : "Co-Direction and Programming Lead", body : [{ line : "ninjamuffin99"}]},{ header : "Producer", body : [{ line : "Kawa Teaño"}]},{ header : "Artists", body : [{ line : "PhantomArcade"},{ line : "evilsk8r"},{ line : "beck"}]},{ header : "Pixel Art", body : [{ line : "moawling"}]},{ header : "Cutscene Storyboards & SFX", body : [{ line : "PhantomArcade"}]},{ header : "Additional Background Design", body : [{ line : "Red Minus"}]},{ header : "Cutscene Animation", body : [{ line : "Figburn"},{ line : "Sade"},{ line : "Topium"},{ line : "BlairTheUnseriousGuy"}]},{ header : "Cutscene Cleanup", body : [{ line : "PennilessRagamuffin"},{ line : "beck"}]},{ header : "Cutscene Background Art", body : [{ line : "beck"}]},{ header : "Additional Art", body : [{ line : "Jeff Bandelin"},{ line : "Mogy64"},{ line : "ChipsGoWoah"},{ line : "Min Ho Kim (Deegeemin)"},{ line : "PKettles"},{ line : "peepo173"}]},{ header : "Music Production", body : [{ line : "Saruky"},{ line : "crisp"}]},{ header : "Featured Guest Musicians (thus far)", body : [{ line : "BassetFilms"},{ line : "Kohta Takahashi"},{ line : "SixImpala"},{ line : "Saster"}]},{ header : "Programming", body : [{ line : "Eric \"EliteMasterEric\" Myllyoja"},{ line : "fabs"}]},{ header : "Additional Programming", body : [{ line : "Jenny Crowe"},{ line : "hazel (ravy)"},{ line : "Mike Welsh"},{ line : "Saharan"},{ line : "Ian Harrigan"},{ line : "Osaka Red LLC: Thomas J Webb"},{ line : "Emma (MtH)"},{ line : "George Kurelic"},{ line : "Will Blanton"},{ line : "Cheemsandfriends - FlxAnimate"}]},{ header : "Devops and Additional Internal Tooling", body : [{ line : "hazel (ravy)"}]},{ header : "Gameplay Design", body : [{ line : "PhantomArcade"},{ line : "Cameron Taylor"},{ line : "Jenny Crowe"},{ line : "Spazkid"},{ line : "fabs"},{ line : "Emma (MtH)"}]},{ header : "Kickstarter Backer Portal Programming", body : [{ line : "Shingai Shamu"}]},{ header : "Merchandise Partners and Designers", body : [{ line : "Needlejuice Records: Jace McLain"},{ line : "Needlejuice Records: Brandon Brown"},{ line : "Type-4: Coby Win"},{ line : "IvanAlmighty"},{ line : "Mogy64"},{ line : "ChipsGoWoah"},{ line : "Min Ho Kim"},{ line : "PKettles"},{ line : "Jeff Bandelin"},{ line : "PhantomArcade"},{ line : "evilsk8r"},{ line : "beck"}]},{ header : "Production and Business Development Partner - Windflower Games", body : [{ line : "Sunni Pavlovic"},{ line : "Kristen Lynch"}]},{ header : "Additional Administrative Assistance", body : [{ line : "moawling"}]},{ header : "Quality Assurance - Indium Play", body : [{ line : "Lead Tester: Mihajlo Vuković"},{ line : "Dajana Dimovska"}]},{ header : "Accounting: Molinari Oswald", body : [{ line : "Francis Molinari"},{ line : "Aaron Hofmann"},{ line : "Katherine Stauffer"},{ line : "Jane Haring"}]},{ header : "US Legal: Odin Law", body : [{ line : "Brandon Huffman"},{ line : "Michele Robichaux"},{ line : "Connor Richards"},{ line : "Pam Driver"},{ line : "Jacob Barefoot"}]},{ header : "CA Legal: DLA Piper", body : [{ line : "Ryan Black"},{ line : "Brian Wong"}]},{ header : "Special Thanks", body : [{ line : "Tom Fulp"},{ line : "Jeff Bandelin"},{ line : "The entire Molinari Oswald Crew"},{ line : "The entire Odin Law function"},{ line : "SrPelo"}]},{ header : "Cameron would like to specially thank", body : [{ line : "wanda, henry, snackers, digi, joemega, caddy, pewpew"},{ line : "milkhead jack"},{ line : "katt"},{ line : "arko, pepe, cashu, ookiyo"},{ line : "Krystin, Kaye-lyn, and Cassidy, Mack, Levi, and Jasmine."},{ line : "Laurel"},{ line : "Clone Hero"},{ line : "Innersloth, Puffballs, Forest and Victoria"},{ line : "StuffedWombat"},{ line : "mmatt_ugh"},{ line : "lucas and jack taterguy and marty emrox"},{ line : "Luis"},{ line : "GeoKureli, Will Blanton, Austin East, Squidly"},{ line : "fizzd"},{ line : "bbpanzu"},{ line : "Etika"},{ line : "Foamymuffin (insert travis scott lyrics here)"},{ line : "SiIvaGunner"},{ line : "Freddie Dredd"}]},{ header : "Kawa would like to specially thank", body : [{ line : "Alexei Pepers"},{ line : "Xalavier Nelson Jr."}]},{ header : "Eric would like to specially thank", body : [{ line : "Rob and Jill Myllyoja"},{ line : "KadeDev"},{ line : "Shadow Mario"}]},{ header : "Hazel (Ravy) would like to specially thank", body : [{ line : "d1ggo"}]}]}; funkin_ui_credits_CreditsState.SCREEN_PAD = 24; funkin_ui_credits_CreditsState.CREDITS_FONT = "Consolas"; funkin_ui_credits_CreditsState.CREDITS_FONT_SIZE = 24; funkin_ui_credits_CreditsState.CREDITS_HEADER_FONT_SIZE = 32; funkin_ui_credits_CreditsState.CREDITS_FONT_COLOR = -1; funkin_ui_credits_CreditsState.CREDITS_FONT_STROKE_COLOR = -16777216; funkin_ui_credits_CreditsState.CREDITS_SCROLL_BASE_SPEED = 100.0; funkin_ui_credits_CreditsState.CREDITS_SCROLL_FAST_SPEED = funkin_ui_credits_CreditsState.CREDITS_SCROLL_BASE_SPEED * 4.0; funkin_ui_debug_MemoryCounter.BYTES_PER_MEG = 1048576; funkin_ui_debug_MemoryCounter.ROUND_TO = 0.01; funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_DIFFICULTY_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/difficulty"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYER_PREVIEW_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/player-preview"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OPPONENT_PREVIEW_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/opponent-preview"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_METADATA_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/metadata"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_OFFSETS_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/offsets"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_NOTE_DATA_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/note-data"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_EVENT_DATA_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/event-data"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_FREEPLAY_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/freeplay"); funkin_ui_debug_charting_ChartEditorState.CHART_EDITOR_TOOLBOX_PLAYTEST_PROPERTIES_LAYOUT = funkin_Paths.ui("chart-editor/toolbox/playtest-properties"); funkin_ui_debug_charting_ChartEditorState.SUPPORTED_MUSIC_FORMATS = ["mp3"]; funkin_ui_debug_charting_ChartEditorState.GRID_SIZE = 40; funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_WIDTH = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE | 0; funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_HEIGHT = funkin_ui_debug_charting_ChartEditorState.GRID_SIZE / 8 | 0; funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH = 6; funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT = 32; funkin_ui_debug_charting_ChartEditorState.PLAYBAR_HEIGHT = 48; funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT = 24; funkin_ui_debug_charting_ChartEditorState.GRID_TOP_PAD = funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT + 12; funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS = funkin_ui_debug_charting_ChartEditorState.MENU_BAR_HEIGHT + funkin_ui_debug_charting_ChartEditorState.GRID_TOP_PAD; funkin_ui_debug_charting_ChartEditorState.NOTE_PREVIEW_X_POS = 320; funkin_ui_debug_charting_ChartEditorState.NOTE_PREVIEW_Y_POS = funkin_ui_debug_charting_ChartEditorState.GRID_INITIAL_Y_POS - funkin_ui_debug_charting_ChartEditorState.NOTE_SELECT_BUTTON_HEIGHT - 4; funkin_ui_debug_charting_ChartEditorState.CURSOR_COLOR = -520093697; funkin_ui_debug_charting_ChartEditorState.PREVIEW_BG_COLOR = -13619152; funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_SCROLL_AREA_COLOR = -9950417; funkin_ui_debug_charting_ChartEditorState.SPECTROGRAM_COLOR = -65536; funkin_ui_debug_charting_ChartEditorState.PLAYHEAD_COLOR = -1061354959; funkin_ui_debug_charting_ChartEditorState.SCROLL_EASE_DURATION = 0.2; funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE = 4; funkin_ui_debug_charting_ChartEditorState.DRAG_THRESHOLD = 16.0; funkin_ui_debug_charting_ChartEditorState.SNAP_QUANTS = [4,8,12,16,20,24,32,48,64,96,192]; funkin_ui_debug_charting_ChartEditorState.BASE_QUANT = 16; funkin_ui_debug_charting_ChartEditorState.BASE_QUANT_INDEX = 3; funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DELAY = 30.0; funkin_ui_debug_charting_ChartEditorState.WELCOME_MUSIC_FADE_IN_DURATION = 10.0; funkin_ui_debug_charting_components_ChartEditorEventSprite.DEFAULT_EVENT = "Default"; funkin_ui_debug_charting_components_ChartEditorEventSprite.eventSpriteBasic = null; funkin_ui_debug_charting_components_ChartEditorEventSprite.eventFrames = null; funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH = 5; funkin_ui_debug_charting_components_ChartEditorNotePreview.WIDTH = funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_WIDTH * 9; funkin_ui_debug_charting_components_ChartEditorNotePreview.NOTE_HEIGHT = 1; funkin_ui_debug_charting_components_ChartEditorNotePreview.BG_COLOR = -10461088; funkin_ui_debug_charting_components_ChartEditorNotePreview.LEFT_COLOR = -56662; funkin_ui_debug_charting_components_ChartEditorNotePreview.DOWN_COLOR = -16716033; funkin_ui_debug_charting_components_ChartEditorNotePreview.UP_COLOR = -16724992; funkin_ui_debug_charting_components_ChartEditorNotePreview.RIGHT_COLOR = -3403503; funkin_ui_debug_charting_components_ChartEditorNotePreview.EVENT_COLOR = -15658735; funkin_ui_debug_charting_components_ChartEditorNotePreview.SELECTED_COLOR = -256; funkin_ui_debug_charting_components_ChartEditorNoteSprite.NOTE_STYLES = ["funkin","pixel"]; funkin_ui_debug_charting_components_ChartEditorNoteSprite.noteFrameCollection = null; haxe_ui_events_UIEvent.READY = haxe_ui_events_EventType.$name("ready"); haxe_ui_events_UIEvent.DESTROY = haxe_ui_events_EventType.$name("destroy"); haxe_ui_events_UIEvent.RESIZE = haxe_ui_events_EventType.$name("resize"); haxe_ui_events_UIEvent.CHANGE = haxe_ui_events_EventType.$name("change"); haxe_ui_events_UIEvent.BEFORE_CHANGE = haxe_ui_events_EventType.$name("beforechange"); haxe_ui_events_UIEvent.MOVE = haxe_ui_events_EventType.$name("move"); haxe_ui_events_UIEvent.INITIALIZE = haxe_ui_events_EventType.$name("initialize"); haxe_ui_events_UIEvent.SUBMIT_START = haxe_ui_events_EventType.$name("submitstart"); haxe_ui_events_UIEvent.SUBMIT = haxe_ui_events_EventType.$name("submit"); haxe_ui_events_UIEvent.RENDERER_CREATED = haxe_ui_events_EventType.$name("renderercreated"); haxe_ui_events_UIEvent.RENDERER_DESTROYED = haxe_ui_events_EventType.$name("rendererdestroyed"); haxe_ui_events_UIEvent.HIDDEN = haxe_ui_events_EventType.$name("hidden"); haxe_ui_events_UIEvent.SHOWN = haxe_ui_events_EventType.$name("shown"); haxe_ui_events_UIEvent.ENABLED = haxe_ui_events_EventType.$name("enabled"); haxe_ui_events_UIEvent.DISABLED = haxe_ui_events_EventType.$name("disabled"); haxe_ui_events_UIEvent.OPEN = haxe_ui_events_EventType.$name("open"); haxe_ui_events_UIEvent.BEFORE_CLOSE = haxe_ui_events_EventType.$name("beforeclose"); haxe_ui_events_UIEvent.CLOSE = haxe_ui_events_EventType.$name("close"); haxe_ui_events_UIEvent.PROPERTY_CHANGE = haxe_ui_events_EventType.$name("propertychange"); haxe_ui_events_UIEvent.COMPONENT_CREATED = haxe_ui_events_EventType.$name("componentcreated"); haxe_ui_events_UIEvent.COMPONENT_ADDED = haxe_ui_events_EventType.$name("componentadded"); haxe_ui_events_UIEvent.COMPONENT_REMOVED = haxe_ui_events_EventType.$name("componentremoved"); haxe_ui_events_UIEvent.COMPONENT_ADDED_TO_PARENT = haxe_ui_events_EventType.$name("componentaddedtoparent"); haxe_ui_events_UIEvent.COMPONENT_REMOVED_FROM_PARENT = haxe_ui_events_EventType.$name("componentremovedfromparent"); haxe_ui_events_MouseEvent.MOUSE_MOVE = haxe_ui_events_EventType.$name("mousemove"); haxe_ui_events_MouseEvent.MOUSE_OVER = haxe_ui_events_EventType.$name("mouseover"); haxe_ui_events_MouseEvent.MOUSE_OUT = haxe_ui_events_EventType.$name("mouseout"); haxe_ui_events_MouseEvent.MOUSE_DOWN = haxe_ui_events_EventType.$name("mousedown"); haxe_ui_events_MouseEvent.MOUSE_UP = haxe_ui_events_EventType.$name("mouseup"); haxe_ui_events_MouseEvent.MOUSE_WHEEL = haxe_ui_events_EventType.$name("mousewheel"); haxe_ui_events_MouseEvent.CLICK = haxe_ui_events_EventType.$name("click"); haxe_ui_events_MouseEvent.DBL_CLICK = haxe_ui_events_EventType.$name("doubleclick"); haxe_ui_events_MouseEvent.RIGHT_CLICK = haxe_ui_events_EventType.$name("rightclick"); haxe_ui_events_MouseEvent.RIGHT_MOUSE_DOWN = haxe_ui_events_EventType.$name("rightmousedown"); haxe_ui_events_MouseEvent.RIGHT_MOUSE_UP = haxe_ui_events_EventType.$name("rightmouseup"); haxe_ui_events_MouseEvent.MIDDLE_CLICK = haxe_ui_events_EventType.$name("middleclick"); haxe_ui_events_MouseEvent.MIDDLE_MOUSE_DOWN = haxe_ui_events_EventType.$name("middlemousedown"); haxe_ui_events_MouseEvent.MIDDLE_MOUSE_UP = haxe_ui_events_EventType.$name("middlemouseup"); haxe_ui_events_KeyboardEvent.KEY_DOWN = haxe_ui_events_EventType.$name("keydown"); haxe_ui_events_KeyboardEvent.KEY_PRESS = haxe_ui_events_EventType.$name("keypress"); haxe_ui_events_KeyboardEvent.KEY_UP = haxe_ui_events_EventType.$name("keyup"); haxe_ui_backend_ComponentBase.__meta__ = { fields : { percentWidth : { clonable : null, bindable : null}, percentHeight : { clonable : null, bindable : null}}}; haxe_ui_backend_ComponentBase.INTERACTIVE_EVENTS = [haxe_ui_events_MouseEvent.MOUSE_MOVE,haxe_ui_events_MouseEvent.MOUSE_OVER,haxe_ui_events_MouseEvent.MOUSE_OUT,haxe_ui_events_MouseEvent.MOUSE_DOWN,haxe_ui_events_MouseEvent.MOUSE_UP,haxe_ui_events_MouseEvent.MOUSE_WHEEL,haxe_ui_events_MouseEvent.CLICK,haxe_ui_events_MouseEvent.DBL_CLICK,haxe_ui_events_KeyboardEvent.KEY_DOWN,haxe_ui_events_KeyboardEvent.KEY_UP]; haxe_ui_core_Component.__meta__ = { fields : { styleNames : { clonable : null}, styleString : { clonable : null}}}; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.OVERLAY_EASE_DURATION = 0.2; funkin_ui_debug_charting_dialogs_ChartEditorBaseDialog.OVERLAY_EASE_TYPE = "easeOut"; funkin_ui_debug_charting_handlers_ChartEditorContextMenuHandler.existingMenus = []; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_UPLOAD_INST_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/upload-inst"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_SONG_METADATA_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/song-metadata"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/open-chart-parts"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_OPEN_CHART_PARTS_ENTRY_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/open-chart-parts-entry"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_IMPORT_CHART_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/import-chart"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_USER_GUIDE_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/user-guide"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_ADD_VARIATION_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/add-variation"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_ADD_DIFFICULTY_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/add-difficulty"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.CHART_EDITOR_DIALOG_BACKUP_AVAILABLE_LAYOUT = funkin_Paths.ui("chart-editor/dialogs/backup-available"); funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.dropHandlers = []; funkin_ui_debug_charting_handlers_ChartEditorDialogHandler.EPSILON = 0.01; funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource.instance = new funkin_ui_debug_charting_handlers_ChartEditorGamepadActionInputSource(); funkin_ui_debug_charting_handlers_ChartEditorImportExportHandler.BACKUPS_PATH = "./backups/"; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.BACKGROUND_COLOR_LIGHT = -10011977; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.BACKGROUND_COLOR_DARK = -13230496; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_1_LIGHT = -1579290; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_1_DARK = -15197927; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_2_LIGHT = -460552; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_2_DARK = -14671840; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_3_LIGHT = -2501163; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_COLOR_3_DARK = -14276054; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_COLOR_LIGHT = -15658735; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_COLOR_DARK = -3881788; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_STRUMLINE_DIVIDER_WIDTH = funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_LIGHT = -15658735; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_COLOR_DARK = -3881788; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_MEASURE_DIVIDER_WIDTH = funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_COLOR_LIGHT = -4079167; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_COLOR_DARK = -8092540; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.GRID_BEAT_DIVIDER_WIDTH = funkin_ui_debug_charting_ChartEditorState.GRID_SELECTION_BORDER_WIDTH; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_COLOR_LIGHT = -13395661; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_COLOR_DARK = -13395661; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_BORDER_WIDTH = 1; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_FILL_COLOR_LIGHT = 1077149491; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.SELECTION_SQUARE_FILL_COLOR_DARK = 1077149491; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_WIDTH = 2; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_BORDER_COLOR = -6488047; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.PLAYHEAD_BLOCK_FILL_COLOR = -4390351; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_BORDER_COLOR_LIGHT = -481705; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_BORDER_COLOR_DARK = -481705; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_FILL_COLOR_LIGHT = -2131188137; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.NOTE_PREVIEW_VIEWPORT_FILL_COLOR_DARK = -2131188137; funkin_ui_debug_charting_handlers_ChartEditorThemeHandler.TOTAL_COLUMN_COUNT = funkin_ui_debug_charting_ChartEditorState.STRUMLINE_SIZE * 2 + 1; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.TICK_LABEL_X_OFFSET = 4.0; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.PLAYHEAD_RIGHT_PAD = 10.0; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.BASE_SCALE = 64.0; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.STARTING_SCALE = 1024.0; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MIN_SCALE = 4.0; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.WAVEFORM_ZOOM_MULT = 1.5; funkin_ui_debug_charting_toolboxes_ChartEditorFreeplayToolbox.MAGIC_SCALE_BASE_TIME = 5.0; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.TICK_LABEL_X_OFFSET = 4.0; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.PLAYHEAD_RIGHT_PAD = 10.0; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.BASE_SCALE = 64.0; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MIN_SCALE = 4.0; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.WAVEFORM_ZOOM_MULT = 1.5; funkin_ui_debug_charting_toolboxes_ChartEditorOffsetsToolbox.MAGIC_SCALE_BASE_TIME = 5.0; funkin_ui_debug_charting_util_ChartEditorDropdowns.NOTE_KINDS = (function($this) { var $r; var _g = new haxe_ds_StringMap(); _g.h[""] = "Default"; _g.h["~CUSTOM~"] = "Custom"; _g.h["mom"] = "Mom Sings (Week 5)"; _g.h["ugh"] = "Ugh (Week 7)"; _g.h["hehPrettyGood"] = "Heh, Pretty Good (Week 7)"; _g.h["weekend-1-punchhigh"] = "Punch High (Blazin')"; _g.h["weekend-1-punchhighdodged"] = "Punch High (Dodge) (Blazin')"; _g.h["weekend-1-punchhighblocked"] = "Punch High (Block) (Blazin')"; _g.h["weekend-1-punchhighspin"] = "Punch High (Spin) (Blazin')"; _g.h["weekend-1-punchlow"] = "Punch Low (Blazin')"; _g.h["weekend-1-punchlowdodged"] = "Punch Low (Dodge) (Blazin')"; _g.h["weekend-1-punchlowblocked"] = "Punch Low (Block) (Blazin')"; _g.h["weekend-1-punchlowspin"] = "Punch High (Spin) (Blazin')"; _g.h["weekend-1-picouppercutprep"] = "Pico Uppercut (Prep) (Blazin')"; _g.h["weekend-1-picouppercut"] = "Pico Uppercut (Blazin')"; _g.h["weekend-1-blockhigh"] = "Block High (Blazin')"; _g.h["weekend-1-blocklow"] = "Block Low (Blazin')"; _g.h["weekend-1-blockspin"] = "Block High (Spin) (Blazin')"; _g.h["weekend-1-dodgehigh"] = "Dodge High (Blazin')"; _g.h["weekend-1-dodgelow"] = "Dodge Low (Blazin')"; _g.h["weekend-1-dodgespin"] = "Dodge High (Spin) (Blazin')"; _g.h["weekend-1-hithigh"] = "Hit High (Blazin')"; _g.h["weekend-1-hitlow"] = "Hit Low (Blazin')"; _g.h["weekend-1-hitspin"] = "Hit High (Spin) (Blazin')"; _g.h["weekend-1-darnelluppercutprep"] = "Darnell Uppercut (Prep) (Blazin')"; _g.h["weekend-1-darnelluppercut"] = "Darnell Uppercut (Blazin')"; _g.h["weekend-1-idle"] = "Idle (Blazin')"; _g.h["weekend-1-fakeout"] = "Fakeout (Blazin')"; _g.h["weekend-1-taunt"] = "Taunt (If Fakeout) (Blazin')"; _g.h["weekend-1-tauntforce"] = "Taunt (Forced) (Blazin')"; _g.h["weekend-1-reversefakeout"] = "Fakeout (Reverse) (Blazin')"; $r = _g; return $r; }(this)); funkin_ui_debug_latency_CoolStatsGraph.AXIS_COLOR = 16777215; funkin_ui_debug_latency_CoolStatsGraph.AXIS_ALPHA = 0.5; funkin_ui_debug_latency_CoolStatsGraph.HISTORY_MAX = 500; funkin_ui_debug_latency_CoolStatsGraph.UPDATE_DELAY = 250; funkin_ui_debug_latency_CoolStatsGraph.INITIAL_WIDTH = 160; funkin_ui_debug_latency_CoolStatsGraph.FPS_COLOR = -6881536; funkin_ui_debug_latency_CoolStatsGraph.MEMORY_COLOR = -16737025; funkin_ui_debug_latency_CoolStatsGraph.DRAW_TIME_COLOR = -5898236; funkin_ui_debug_latency_CoolStatsGraph.UPDATE_TIME_COLOR = -2305024; funkin_ui_debug_latency_CoolStatsGraph.LABEL_COLOR = -1426063361; funkin_ui_debug_latency_CoolStatsGraph.TEXT_SIZE = 11; funkin_ui_debug_latency_CoolStatsGraph.DECIMALS = 1; funkin_ui_debug_stage_StageBuilderState.curTool = funkin_ui_debug_stage_TOOLS.SELECT; funkin_ui_debug_stage_StageOffsetSubState.STAGE_EDITOR_LAYOUT = funkin_Paths.ui("stage-editor/stage-editor-view"); funkin_ui_freeplay_DJBoyfriend.SPOOK_PERIOD = 60.0; funkin_ui_freeplay_DJBoyfriend.TV_PERIOD = 120.0; funkin_ui_options_ControlsMenu.COLUMNS = 2; funkin_ui_options_ControlsMenu.controlList = funkin_input_Control.__empty_constructs__.slice(); funkin_ui_options_ControlsMenu.controlGroups = [[funkin_input_Control.NOTE_UP,funkin_input_Control.NOTE_DOWN,funkin_input_Control.NOTE_LEFT,funkin_input_Control.NOTE_RIGHT],[funkin_input_Control.UI_UP,funkin_input_Control.UI_DOWN,funkin_input_Control.UI_LEFT,funkin_input_Control.UI_RIGHT,funkin_input_Control.ACCEPT,funkin_input_Control.BACK],[funkin_input_Control.CUTSCENE_ADVANCE],[funkin_input_Control.FREEPLAY_FAVORITE,funkin_input_Control.FREEPLAY_LEFT,funkin_input_Control.FREEPLAY_RIGHT],[funkin_input_Control.WINDOW_FULLSCREEN,funkin_input_Control.WINDOW_SCREENSHOT],[funkin_input_Control.VOLUME_UP,funkin_input_Control.VOLUME_DOWN,funkin_input_Control.VOLUME_MUTE],[funkin_input_Control.DEBUG_MENU,funkin_input_Control.DEBUG_CHART]]; funkin_ui_story_LevelTitle.LOCK_PAD = 4; funkin_ui_title_AttractState.ATTRACT_VIDEO_PATH = funkin_Paths.stripLibrary(funkin_Paths.videos("toyCommercial")); funkin_ui_title_TitleState.initialized = false; funkin_ui_transition_LoadingState.MIN_TIME = 1.0; funkin_ui_transition_preload_LogoImage.resourceType = "image/png"; funkin_ui_transition_preload_LogoImage.resourceName = "__ASSET__:bitmap_funkin_ui_transition_preload_LogoImage"; funkin_ui_transition_preload_TouchHereToPlayImage.resourceType = "image/png"; funkin_ui_transition_preload_TouchHereToPlayImage.resourceName = "__ASSET__:bitmap_funkin_ui_transition_preload_TouchHereToPlayImage"; funkin_ui_transition_preload_FunkinPreloader.BASE_WIDTH = 1280; funkin_ui_transition_preload_FunkinPreloader.BAR_PADDING = 20; funkin_ui_transition_preload_FunkinPreloader.BAR_HEIGHT = 12; funkin_ui_transition_preload_FunkinPreloader.LOGO_FADE_TIME = 2.5; funkin_ui_transition_preload_FunkinPreloader.TOTAL_STEPS = 11; funkin_ui_transition_preload_FunkinPreloader.ELLIPSIS_TIME = 0.5; funkin_util_FileUtil.FILE_FILTER_FNFC = new openfl_net_FileFilter("Friday Night Funkin' Chart (.fnfc)","*.fnfc"); funkin_util_FileUtil.FILE_FILTER_JSON = new openfl_net_FileFilter("JSON Data File (.json)","*.json"); funkin_util_FileUtil.FILE_FILTER_ZIP = new openfl_net_FileFilter("ZIP Archive (.zip)","*.zip"); funkin_util_FileUtil.FILE_FILTER_PNG = new openfl_net_FileFilter("PNG Image (.png)","*.png"); funkin_util_FileUtil.FILE_EXTENSION_INFO_FNFC = { extension : "fnfc", label : "Friday Night Funkin' Chart"}; funkin_util_FileUtil.FILE_EXTENSION_INFO_ZIP = { extension : "zip", label : "ZIP Archive"}; funkin_util_FileUtil.FILE_EXTENSION_INFO_PNG = { extension : "png", label : "PNG Image"}; funkin_util_FileUtil.tempDir = null; funkin_util_FileUtil.TEMP_ENV_VARS = ["TEMP","TMPDIR","TEMPDIR","TMP"]; funkin_util_InputUtil.dirReg = new EReg("^(l|r).?-(left|right|down|up)$",""); funkin_util_ControllerName.OUYA = "Ouya"; funkin_util_ControllerName.PS4 = "PS4"; funkin_util_ControllerName.LOGI = "Logi"; funkin_util_ControllerName.XBOX = "XBox"; funkin_util_ControllerName.XINPUT = "XInput"; funkin_util_ControllerName.WII = "Wii"; funkin_util_ControllerName.PRO_CON = "Pro_Con"; funkin_util_ControllerName.JOYCONS = "Joycons"; funkin_util_ControllerName.JOYCON_L = "Joycon_L"; funkin_util_ControllerName.JOYCON_R = "Joycon_R"; funkin_util_ControllerName.MFI = "MFI"; funkin_util_ControllerName.PAD = "Pad"; funkin_util_MathUtil.E = 2.71828182845904523536; funkin_util_MouseUtil.oldCamPos = new flixel_math_FlxBasePoint(0,0); funkin_util_MouseUtil.oldMousePos = new flixel_math_FlxBasePoint(0,0); funkin_util_SerializerUtil.INDENT_CHAR = "\t"; funkin_util_WindowUtil.windowExit = new flixel_util__$FlxSignal_FlxSignal1(); funkin_util_logging_AnsiTrace.colorSupported = false; funkin_util_logging_AnsiTrace.RED = "\x1B[31m"; funkin_util_logging_AnsiTrace.YELLOW = "\x1B[33m"; funkin_util_logging_AnsiTrace.WHITE = "\x1B[37m"; funkin_util_logging_AnsiTrace.NORMAL = "\x1B[0m"; funkin_util_logging_AnsiTrace.BOLD = "\x1B[1m"; funkin_util_logging_AnsiTrace.ITALIC = "\x1B[3m"; funkin_util_logging_AnsiTrace.ansiBF = ["\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[48;2;184;46;83m \x1B[48;2;246;87;102m \x1B[48;2;239;83;100m \x1B[48;2;154;23;70m \x1B[48;2;154;23;69m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[48;2;191;52;87m \x1B[48;2;246;87;102m \x1B[48;2;241;84;100m \x1B[48;2;191;52;87m \x1B[48;2;153;23;69m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[48;2;246;87;102m \x1B[48;2;234;94;114m \x1B[48;2;160;97;151m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;36;35;46m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;47;49;144m \x1B[48;2;246;87;102m \x1B[48;2;80;121;206m \x1B[48;2;193;167;177m \x1B[48;2;246;87;102m \x1B[48;2;184;46;83m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;47;49;144m \x1B[48;2;110;187;236m \x1B[48;2;109;66;125m \x1B[48;2;246;87;102m \x1B[48;2;74;107;200m \x1B[48;2;141;248;252m \x1B[48;2;107;177;226m \x1B[48;2;234;94;114m \x1B[48;2;246;87;102m \x1B[48;2;237;81;99m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;106;196m \x1B[48;2;87;133;210m \x1B[48;2;64;105;174m \x1B[48;2;141;248;252m \x1B[48;2;126;219;244m \x1B[48;2;57;65;148m \x1B[48;2;47;49;144m \x1B[48;2;141;248;252m \x1B[48;2;129;225;245m \x1B[48;2;157;94;147m \x1B[48;2;246;87;102m \x1B[48;2;159;27;72m \x1B[48;2;205;63;93m \x1B[48;2;55;27;43m \x1B[48;2;21;21;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;107;200m \x1B[48;2;125;216;244m \x1B[48;2;141;248;252m \x1B[48;2;126;219;244m \x1B[48;2;60;97;187m \x1B[48;2;141;248;252m \x1B[48;2;126;219;244m \x1B[48;2;104;173;229m \x1B[48;2;146;68;123m \x1B[48;2;246;87;102m \x1B[48;2;180;44;82m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;107;200m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;104;173;229m \x1B[48;2;146;68;123m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;73;106;199m \x1B[48;2;132;230;247m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;78;118;190m \x1B[48;2;239;83;100m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;73;106;199m \x1B[48;2;132;230;247m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;20;19;31m \x1B[48;2;110;187;236m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;78;118;190m \x1B[48;2;239;83;100m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;73;106;199m \x1B[48;2;132;230;247m \x1B[48;2;110;187;236m \x1B[48;2;20;19;31m \x1B[48;2;110;187;236m \x1B[48;2;51;72;160m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;107;200m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;117;138;166m \x1B[48;2;20;19;31m \x1B[48;2;110;187;236m \x1B[48;2;55;134;228m \x1B[48;2;110;187;236m \x1B[48;2;139;244;251m \x1B[48;2;205;63;93m \x1B[48;2;123;4;53m \x1B[48;2;125;6;54m \x1B[48;2;146;23;68m \x1B[48;2;205;63;93m \x1B[48;2;123;4;53m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;107;200m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;20;19;31m \x1B[48;2;103;130;185m \x1B[48;2;240;174;162m \x1B[48;2;74;107;200m \x1B[48;2;110;187;236m \x1B[48;2;141;248;252m \x1B[48;2;107;177;226m \x1B[48;2;74;107;200m \x1B[48;2;20;19;31m \x1B[48;2;205;63;93m \x1B[48;2;20;19;31m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;107;200m \x1B[48;2;110;187;236m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;58;123;219m \x1B[48;2;74;107;200m \x1B[48;2;20;19;31m \x1B[48;2;240;174;162m \x1B[48;2;141;248;252m \x1B[48;2;135;237;249m \x1B[48;2;157;140;181m \x1B[48;2;44;30;46m \x1B[48;2;20;19;31m \x1B[48;2;205;63;93m \x1B[48;2;36;35;46m \x1B[48;2;153;78;112m \x1B[48;2;249;225;202m \x1B[48;2;240;174;162m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;74;107;200m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;74;107;200m \x1B[48;2;20;19;31m \x1B[48;2;240;174;162m \x1B[48;2;93;37;66m \x1B[48;2;240;174;162m \x1B[48;2;74;107;200m \x1B[48;2;240;174;162m \x1B[48;2;130;96;96m \x1B[48;2;20;19;31m \x1B[48;2;240;174;162m \x1B[48;2;74;107;200m \x1B[48;2;141;248;252m \x1B[48;2;110;187;236m \x1B[48;2;20;19;31m \x1B[48;2;205;63;93m \x1B[48;2;170;35;77m \x1B[48;2;196;126;137m \x1B[48;2;249;225;202m \x1B[48;2;132;70;100m \x1B[48;2;20;19;31m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;73;106;199m \x1B[48;2;132;230;247m \x1B[48;2;138;242;250m \x1B[48;2;74;107;200m \x1B[49m \x1B[48;2;20;19;31m \x1B[48;2;240;174;162m \x1B[48;2;20;19;31m \x1B[48;2;175;111;124m \x1B[48;2;235;169;159m \x1B[48;2;240;174;162m \x1B[48;2;227;160;155m \x1B[48;2;20;19;31m \x1B[48;2;232;165;158m \x1B[48;2;240;174;162m \x1B[48;2;85;109;196m \x1B[48;2;138;242;250m \x1B[48;2;112;191;237m \x1B[48;2;104;181;235m \x1B[48;2;110;187;236m \x1B[48;2;23;22;43m \x1B[48;2;26;23;37m \x1B[48;2;249;225;202m \x1B[48;2;248;220;198m \x1B[48;2;249;225;202m \x1B[48;2;137;90;124m \x1B[48;2;51;112;205m \x1B[48;2;53;128;224m \x1B[48;2;23;25;44m \x1B[48;2;18;18;28m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;73;106;199m \x1B[48;2;109;182;229m \x1B[48;2;74;107;200m \x1B[49m \x1B[48;2;151;78;111m \x1B[48;2;194;126;136m \x1B[48;2;110;100;98m \x1B[48;2;244;194;178m \x1B[48;2;72;42;63m \x1B[48;2;103;76;81m \x1B[48;2;191;136;147m \x1B[48;2;240;174;162m \x1B[48;2;206;136;142m \x1B[48;2;20;19;31m \x1B[48;2;232;165;158m \x1B[48;2;240;174;162m \x1B[48;2;65;128;218m \x1B[48;2;141;248;252m \x1B[48;2;74;107;200m \x1B[48;2;85;133;200m \x1B[48;2;88;139;214m \x1B[48;2;84;69;150m \x1B[48;2;211;167;166m \x1B[48;2;187;116;132m \x1B[48;2;213;145;147m \x1B[48;2;245;205;186m \x1B[48;2;135;83;115m \x1B[48;2;43;66;124m \x1B[48;2;47;87;174m \x1B[48;2;51;130;227m \x1B[48;2;28;40;76m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;71;103;199m \x1B[48;2;73;105;197m \x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;196;126;137m \x1B[48;2;246;209;189m \x1B[48;2;249;225;202m \x1B[48;2;226;159;154m \x1B[48;2;244;215;196m \x1B[48;2;249;225;202m \x1B[48;2;240;174;162m \x1B[48;2;226;159;154m \x1B[48;2;142;54;93m \x1B[48;2;245;213;193m \x1B[48;2;249;225;202m \x1B[48;2;213;185;192m \x1B[48;2;85;132;211m \x1B[48;2;222;158;164m \x1B[48;2;183;111;129m \x1B[48;2;110;187;236m \x1B[48;2;171;158;211m \x1B[48;2;153;78;112m \x1B[48;2;196;126;137m \x1B[48;2;240;174;162m \x1B[48;2;166;93;120m \x1B[48;2;130;70;98m \x1B[48;2;19;19;31m \x1B[48;2;29;34;56m \x1B[48;2;55;93;183m \x1B[48;2;68;101;193m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;249;225;202m \x1B[48;2;196;126;137m \x1B[48;2;218;150;149m \x1B[48;2;249;225;202m \x1B[48;2;240;174;162m \x1B[48;2;196;126;137m \x1B[48;2;47;49;144m \x1B[48;2;196;126;137m \x1B[48;2;153;78;112m \x1B[49m \x1B[48;2;20;19;31m \x1B[48;2;41;43;121m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;249;225;202m \x1B[48;2;244;215;196m \x1B[48;2;249;225;202m \x1B[48;2;145;49;90m \x1B[48;2;249;225;202m \x1B[48;2;240;174;162m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;196;126;137m \x1B[48;2;249;225;202m \x1B[48;2;200;131;139m \x1B[48;2;249;225;202m \x1B[48;2;154;63;98m \x1B[48;2;145;49;90m \x1B[48;2;240;174;162m \x1B[48;2;249;225;202m \x1B[48;2;240;174;162m \x1B[48;2;153;78;112m \x1B[48;2;255;224;255m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;210;141;145m \x1B[48;2;241;181;168m \x1B[48;2;249;225;202m \x1B[48;2;196;126;137m \x1B[48;2;195;125;136m \x1B[48;2;170;94;119m \x1B[48;2;237;73;115m \x1B[48;2;244;75;120m \x1B[48;2;145;49;90m \x1B[48;2;249;225;202m \x1B[48;2;241;181;167m \x1B[48;2;181;121;161m \x1B[48;2;255;224;255m \x1B[48;2;178;117;159m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;136;72;102m \x1B[48;2;190;119;133m \x1B[48;2;171;99;123m \x1B[48;2;152;74;109m \x1B[48;2;244;75;120m \x1B[48;2;145;49;90m \x1B[48;2;190;119;133m \x1B[48;2;185;128;172m \x1B[48;2;180;121;164m \x1B[48;2;255;224;255m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;147;80;107m \x1B[48;2;153;78;112m \x1B[49m \x1B[48;2;36;35;46m \x1B[48;2;98;121;155m \x1B[48;2;50;68;111m \x1B[48;2;55;73;115m \x1B[48;2;36;35;46m \x1B[48;2;251;117;129m \x1B[48;2;205;63;93m \x1B[48;2;230;143;174m \x1B[48;2;255;224;255m \x1B[48;2;145;49;90m \x1B[48;2;153;78;112m \x1B[48;2;255;224;255m \x1B[48;2;251;219;252m \x1B[48;2;105;60;85m \x1B[48;2;36;35;46m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;156;82;114m \x1B[48;2;240;174;162m \x1B[48;2;153;78;112m \x1B[49m \x1B[48;2;65;84;125m \x1B[48;2;98;121;155m \x1B[48;2;124;146;175m \x1B[48;2;194;215;238m \x1B[48;2;50;68;111m \x1B[48;2;124;146;175m \x1B[48;2;98;121;155m \x1B[48;2;36;35;46m \x1B[48;2;254;224;245m \x1B[48;2;231;143;176m \x1B[48;2;255;224;255m \x1B[48;2;145;49;90m \x1B[48;2;255;224;255m \x1B[48;2;72;85;110m \x1B[48;2;240;174;162m \x1B[48;2;196;126;137m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;196;126;137m \x1B[48;2;250;227;206m \x1B[48;2;50;68;111m \x1B[48;2;65;84;125m \x1B[48;2;50;68;111m \x1B[48;2;124;146;175m \x1B[48;2;78;99;137m \x1B[48;2;194;215;238m \x1B[48;2;124;146;175m \x1B[48;2;36;35;46m \x1B[48;2;254;224;245m \x1B[48;2;253;170;192m \x1B[48;2;255;224;255m \x1B[48;2;251;117;129m \x1B[48;2;255;224;255m \x1B[48;2;170;105;144m \x1B[48;2;240;174;162m \x1B[48;2;196;126;137m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;76;111m \x1B[48;2;165;91;118m \x1B[48;2;180;108;128m \x1B[48;2;250;227;206m \x1B[48;2;116;138;169m \x1B[48;2;124;146;175m \x1B[48;2;36;35;46m \x1B[48;2;116;138;169m \x1B[48;2;172;193;218m \x1B[48;2;168;206;237m \x1B[48;2;49;62;121m \x1B[48;2;73;92;131m \x1B[48;2;115;137;168m \x1B[48;2;116;138;169m \x1B[48;2;124;146;175m \x1B[48;2;50;40;54m \x1B[48;2;57;43;58m \x1B[48;2;251;170;183m \x1B[48;2;255;206;227m \x1B[48;2;251;117;129m \x1B[48;2;252;132;140m \x1B[48;2;255;224;255m \x1B[48;2;153;78;112m \x1B[48;2;243;190;174m \x1B[48;2;249;226;203m \x1B[48;2;196;126;137m \x1B[48;2;44;70;156m \x1B[48;2;47;86;175m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;239;198;185m \x1B[48;2;250;227;206m \x1B[48;2;244;195;179m \x1B[48;2;250;227;206m \x1B[48;2;50;68;111m \x1B[48;2;166;188;213m \x1B[48;2;36;35;46m \x1B[48;2;46;58;91m \x1B[48;2;79;100;138m \x1B[48;2;71;79;97m \x1B[48;2;60;69;89m \x1B[48;2;136;158;188m \x1B[48;2;117;140;170m \x1B[48;2;36;35;46m \x1B[48;2;71;79;97m \x1B[48;2;79;100;138m \x1B[48;2;62;51;68m \x1B[48;2;246;192;224m \x1B[48;2;253;182;205m \x1B[48;2;255;224;255m \x1B[48;2;144;140;167m \x1B[48;2;82;52;72m \x1B[48;2;120;110;108m \x1B[48;2;250;227;206m \x1B[48;2;229;187;179m \x1B[48;2;169;166;186m \x1B[48;2;47;64;156m \x1B[48;2;46;87;175m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;250;227;206m \x1B[48;2;240;174;162m \x1B[48;2;220;168;164m \x1B[48;2;250;227;206m \x1B[48;2;50;68;111m \x1B[48;2;194;215;238m \x1B[48;2;36;35;46m \x1B[48;2;50;68;111m \x1B[48;2;98;121;155m \x1B[48;2;36;35;46m \x1B[48;2;50;68;111m \x1B[48;2;98;121;155m \x1B[48;2;95;115;147m \x1B[48;2;93;115;150m \x1B[48;2;50;68;111m \x1B[48;2;37;37;48m \x1B[48;2;51;44;59m \x1B[48;2;66;116;206m \x1B[48;2;47;83;172m \x1B[48;2;68;134;227m \x1B[48;2;250;227;206m \x1B[48;2;61;91;174m \x1B[48;2;47;85;173m \x1B[48;2;47;87;175m \x1B[48;2;47;86;175m \x1B[49m \x1B[m","\x1B[48;2;153;78;112m \x1B[48;2;250;227;206m \x1B[48;2;240;174;162m \x1B[48;2;217;165;163m \x1B[48;2;250;227;206m \x1B[48;2;240;174;162m \x1B[48;2;82;52;72m \x1B[48;2;194;215;238m \x1B[48;2;36;35;46m \x1B[48;2;50;68;111m \x1B[48;2;98;121;155m \x1B[48;2;36;35;46m \x1B[48;2;98;121;155m \x1B[48;2;50;68;111m \x1B[48;2;38;41;58m \x1B[48;2;47;87;175m \x1B[48;2;51;130;227m \x1B[48;2;47;87;175m \x1B[48;2;51;130;227m \x1B[48;2;47;49;144m \x1B[48;2;47;87;175m \x1B[48;2;45;85;174m \x1B[49m \x1B[m","\x1B[48;2;153;78;112m \x1B[48;2;250;227;206m \x1B[48;2;242;185;171m \x1B[48;2;250;227;206m \x1B[48;2;240;174;162m \x1B[48;2;217;165;163m \x1B[48;2;250;227;206m \x1B[48;2;240;174;162m \x1B[48;2;36;35;46m \x1B[48;2;124;146;175m \x1B[48;2;36;35;46m \x1B[48;2;50;68;111m \x1B[48;2;98;121;155m \x1B[48;2;50;68;111m \x1B[48;2;36;35;46m \x1B[48;2;98;121;155m \x1B[48;2;36;35;46m \x1B[48;2;38;41;58m \x1B[48;2;47;68;159m \x1B[48;2;47;87;175m \x1B[48;2;51;130;227m \x1B[48;2;47;87;175m \x1B[48;2;51;130;227m \x1B[48;2;47;87;175m \x1B[48;2;45;85;174m \x1B[49m \x1B[m","\x1B[48;2;153;78;112m \x1B[48;2;250;227;206m \x1B[48;2;242;185;171m \x1B[48;2;196;126;137m \x1B[48;2;250;227;206m \x1B[48;2;240;174;162m \x1B[48;2;206;136;142m \x1B[48;2;227;160;155m \x1B[48;2;240;174;162m \x1B[48;2;82;52;72m \x1B[48;2;50;68;111m \x1B[48;2;36;35;46m \x1B[48;2;50;68;111m \x1B[48;2;36;35;46m \x1B[48;2;47;87;175m \x1B[48;2;51;130;227m \x1B[48;2;153;55;95m \x1B[48;2;47;87;175m \x1B[48;2;51;130;227m \x1B[48;2;47;87;175m \x1B[48;2;45;85;174m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;152;77;112m \x1B[48;2;228;161;155m \x1B[48;2;237;171;160m \x1B[48;2;196;126;137m \x1B[48;2;193;123;135m \x1B[48;2;177;105;126m \x1B[48;2;193;123;135m \x1B[48;2;37;37;50m \x1B[48;2;155;69;105m \x1B[48;2;36;35;46m \x1B[48;2;49;66;107m \x1B[48;2;36;35;46m \x1B[48;2;159;83;115m \x1B[48;2;155;67;103m \x1B[48;2;47;69;142m \x1B[48;2;47;87;175m \x1B[48;2;46;73;157m \x1B[48;2;47;85;173m \x1B[48;2;63;77;159m \x1B[48;2;247;97;126m \x1B[48;2;254;165;165m \x1B[48;2;253;160;161m \x1B[48;2;159;79;111m \x1B[48;2;72;106;198m \x1B[48;2;50;67;149m \x1B[48;2;53;69;151m \x1B[48;2;157;77;111m \x1B[48;2;151;22;68m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;147;80;107m \x1B[48;2;176;104;125m \x1B[48;2;240;174;162m \x1B[48;2;66;46;63m \x1B[48;2;36;35;46m \x1B[48;2;170;35;77m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;201;153;202m \x1B[48;2;246;87;102m \x1B[48;2;245;171;163m \x1B[48;2;253;156;159m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;47;87;175m \x1B[48;2;154;23;70m \x1B[48;2;246;170;163m \x1B[48;2;254;165;165m \x1B[48;2;246;87;102m \x1B[48;2;245;79;114m \x1B[48;2;118;0;50m \x1B[48;2;246;87;102m \x1B[48;2;219;68;93m \x1B[48;2;118;0;50m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;147;80;107m \x1B[48;2;187;116;132m \x1B[48;2;240;174;162m \x1B[48;2;153;78;112m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;182;124;167m \x1B[48;2;255;224;255m \x1B[48;2;251;127;141m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;246;87;102m \x1B[48;2;225;75;97m \x1B[48;2;154;23;70m \x1B[48;2;159;27;72m \x1B[48;2;246;87;102m \x1B[48;2;154;23;70m \x1B[48;2;246;87;102m \x1B[48;2;118;0;50m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;151;78;111m \x1B[48;2;153;78;112m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;200;151;200m \x1B[48;2;216;175;226m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;246;85;105m \x1B[48;2;205;63;93m \x1B[48;2;118;0;50m \x1B[48;2;246;87;102m \x1B[48;2;159;27;72m \x1B[48;2;205;63;93m \x1B[48;2;246;87;102m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;144;16;64m \x1B[48;2;118;0;50m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[48;2;246;87;102m \x1B[48;2;182;124;167m \x1B[48;2;255;224;255m \x1B[48;2;153;78;112m \x1B[48;2;182;124;167m \x1B[48;2;255;224;255m \x1B[48;2;205;63;93m \x1B[48;2;159;27;72m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;118;0;50m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;182;124;167m \x1B[48;2;168;74;106m \x1B[48;2;174;39;79m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;154;23;70m \x1B[48;2;246;87;102m \x1B[48;2;211;70;106m \x1B[48;2;233;196;238m \x1B[48;2;255;224;255m \x1B[48;2;178;42;81m \x1B[48;2;205;157;200m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;178;42;81m \x1B[48;2;154;23;70m \x1B[48;2;153;52;92m \x1B[48;2;136;40;82m \x1B[48;2;144;17;63m \x1B[48;2;225;75;97m \x1B[48;2;234;198;240m \x1B[48;2;255;224;255m \x1B[48;2;234;198;240m \x1B[48;2;233;196;238m \x1B[48;2;239;204;243m \x1B[48;2;212;165;204m \x1B[48;2;245;87;103m \x1B[48;2;180;44;82m \x1B[48;2;180;70;102m \x1B[48;2;152;77;112m \x1B[48;2;151;76;110m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;68;104m \x1B[48;2;213;67;95m \x1B[48;2;246;87;102m \x1B[48;2;213;67;95m \x1B[48;2;195;66;97m \x1B[48;2;173;61;105m \x1B[48;2;154;23;70m \x1B[48;2;195;55;89m \x1B[48;2;205;63;93m \x1B[48;2;125;4;54m \x1B[48;2;170;101;145m \x1B[48;2;171;102;146m \x1B[48;2;201;153;202m \x1B[48;2;182;124;167m \x1B[48;2;158;87;122m \x1B[48;2;138;36;79m \x1B[48;2;205;63;93m \x1B[48;2;196;143;183m \x1B[48;2;255;224;255m \x1B[48;2;234;94;114m \x1B[48;2;229;85;104m \x1B[48;2;236;96;117m \x1B[48;2;248;113;131m \x1B[48;2;246;88;103m \x1B[48;2;246;87;102m \x1B[48;2;195;66;97m \x1B[48;2;172;109;148m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;205;63;93m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;182;124;167m \x1B[48;2;197;147;195m \x1B[48;2;212;170;223m \x1B[48;2;182;124;167m \x1B[48;2;212;170;223m \x1B[48;2;153;78;112m \x1B[48;2;142;44;86m \x1B[48;2;154;23;70m \x1B[48;2;205;63;93m \x1B[48;2;255;224;255m \x1B[48;2;225;187;233m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;200;151;200m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;182;124;167m \x1B[48;2;147;64;101m \x1B[48;2;36;35;46m \x1B[48;2;153;78;112m \x1B[49m \x1B[48;2;66;78;122m \x1B[48;2;200;100;119m \x1B[48;2;205;63;93m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;200;151;200m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;182;124;167m \x1B[48;2;36;35;46m \x1B[49m \x1B[48;2;66;78;122m \x1B[48;2;153;55;95m \x1B[48;2;205;63;93m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;255;224;255m \x1B[48;2;176;115;156m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;185;128;172m \x1B[48;2;153;78;112m \x1B[48;2;36;35;46m \x1B[49m \x1B[48;2;66;78;122m \x1B[48;2;153;55;95m \x1B[48;2;154;23;70m \x1B[48;2;246;87;102m \x1B[48;2;205;63;93m \x1B[48;2;154;23;70m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;176;115;156m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[49m \x1B[48;2;87;54;75m \x1B[48;2;207;163;214m \x1B[48;2;190;136;182m \x1B[48;2;202;151;191m \x1B[48;2;244;187;187m \x1B[48;2;241;206;245m \x1B[48;2;243;209;246m \x1B[48;2;212;170;223m \x1B[48;2;153;78;112m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;56;42;57m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;255;224;255m \x1B[48;2;243;208;246m \x1B[48;2;238;203;242m \x1B[48;2;255;224;255m \x1B[48;2;212;170;223m \x1B[48;2;153;78;112m \x1B[48;2;153;77;111m \x1B[49m \x1B[m","\x1B[39m\x1B[49m \x1B[48;2;153;78;112m \x1B[49m \x1B[m"]; funkin_util_logging_CrashHandler.LOG_FOLDER = "logs"; funkin_util_logging_CrashHandler.errorSignal = new flixel_util__$FlxSignal_FlxSignal1(); funkin_util_logging_CrashHandler.criticalErrorSignal = new flixel_util__$FlxSignal_FlxSignal1(); funkin_util_plugins_ScreenshotPlugin.SCREENSHOT_FOLDER = "screenshots"; funkin_util_plugins_ScreenshotPlugin.PREVIEW_INITIAL_DELAY = 0.25; funkin_util_plugins_ScreenshotPlugin.PREVIEW_FADE_IN_DURATION = 0.3; funkin_util_plugins_ScreenshotPlugin.PREVIEW_FADE_OUT_DELAY = 1.25; funkin_util_plugins_ScreenshotPlugin.PREVIEW_FADE_OUT_DURATION = 0.3; funkin_util_tools_Int64Tools.MAX_32_PRECISION = 4294967296.0; funkin_util_tools_StringTools.SANTIZE_REGEX = new EReg("[^-a-zA-Z0-9]","g"); funkin_vis_dsp_Complex.im = { real : 0, imag : 1}; funkin_vis_dsp_Complex.zero = { real : 0, imag : 0}; grig_audio_FFT.TWO_PI = 6.2831853; haxe_Int32._mul = Math.imul != null ? Math.imul : function(a,b) { return a * (b & 65535) + (a * (b >>> 16) << 16 | 0) | 0; }; haxe_Serializer.USE_CACHE = false; haxe_Serializer.USE_ENUM_INDEX = false; haxe_Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; haxe_Serializer.BASE64_CODES = null; haxe_Unserializer.DEFAULT_RESOLVER = new haxe__$Unserializer_DefaultResolver(); 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_crypto_Base64.URL_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; haxe_crypto_Base64.URL_BYTES = haxe_io_Bytes.ofString(haxe_crypto_Base64.URL_CHARS); haxe_display_DisplayMethods.Completion = "display/completion"; haxe_display_DisplayMethods.CompletionItemResolve = "display/completionItem/resolve"; haxe_display_DisplayMethods.FindReferences = "display/references"; haxe_display_DisplayMethods.GotoDefinition = "display/definition"; haxe_display_DisplayMethods.GotoImplementation = "display/implementation"; haxe_display_DisplayMethods.GotoTypeDefinition = "display/typeDefinition"; haxe_display_DisplayMethods.Hover = "display/hover"; haxe_display_DisplayMethods.DeterminePackage = "display/package"; haxe_display_DisplayMethods.SignatureHelp = "display/signatureHelp"; haxe_display_Methods.Initialize = "initialize"; haxe_io_FPHelper.i64tmp = new haxe__$Int64__$_$_$Int64(0,0); haxe_io_FPHelper.LN2 = 0.6931471805599453; haxe_io_FPHelper.helper = new DataView(new ArrayBuffer(8)); haxe_io_UInt8Array.BYTES_PER_ELEMENT = 1; haxe_ui_backend_BackendImpl.id = "flixel"; haxe_ui_backend_CallLaterImpl.added = false; haxe_ui_backend_CallLaterImpl.list1 = []; haxe_ui_backend_CallLaterImpl.list2 = []; haxe_ui_util_GenericConfig.cache = new haxe_ds_StringMap(); haxe_ui_Toolkit.styleSheet = new haxe_ui_styles_CompositeStyleSheet(); haxe_ui_Toolkit.properties = new haxe_ds_StringMap(); haxe_ui_Toolkit.nativeConfig = new haxe_ui_util_GenericConfig(); haxe_ui_Toolkit._theme = "default"; haxe_ui_Toolkit._backendProperties = new haxe_ui_util_Properties(); haxe_ui_Toolkit._built = false; haxe_ui_Toolkit._backendBuilt = false; haxe_ui_Toolkit._initialized = false; haxe_ui_Toolkit.onBeforeInit = null; haxe_ui_Toolkit.onAfterInit = null; haxe_ui_Toolkit.pixelsPerRem = 16; haxe_ui_Toolkit.roundScale = true; haxe_ui_Toolkit.autoScale = true; haxe_ui_Toolkit._scaleX = 0; haxe_ui_Toolkit._scaleY = 0; haxe_ui_backend_PlatformBase.KEY_CODE_TAB = 9; haxe_ui_backend_PlatformBase.KEY_CODE_UP = 38; haxe_ui_backend_PlatformBase.KEY_CODE_DOWN = 40; haxe_ui_backend_PlatformBase.KEY_CODE_LEFT = 37; haxe_ui_backend_PlatformBase.KEY_CODE_RIGHT = 39; haxe_ui_backend_PlatformBase.KEY_CODE_SPACE = 32; haxe_ui_backend_PlatformBase.KEY_CODE_ENTER = 13; haxe_ui_backend_PlatformBase.KEY_CODE_ESCAPE = 27; haxe_ui_backend_PlatformBase.MOBILE_REGEXP = new EReg("(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino","gi"); haxe_ui_backend_TextDisplayImpl.PADDING_X = 2; haxe_ui_backend_TimerImpl.__timers = []; haxe_ui_backend_flixel_CursorHelper.useCustomCursors = true; haxe_ui_backend_flixel_CursorHelper.registeredCursors = new haxe_ds_StringMap(); haxe_ui_backend_flixel_CursorHelper._cursorsPreregistered = false; haxe_ui_backend_flixel_KeyboardHelper._initialized = false; haxe_ui_backend_flixel_KeyboardHelper._callbacks = new haxe_ds_StringMap(); haxe_ui_backend_flixel_MouseHelper.currentMouseX = 0; haxe_ui_backend_flixel_MouseHelper.currentMouseY = 0; haxe_ui_backend_flixel_MouseHelper.currentWorldX = 0; haxe_ui_backend_flixel_MouseHelper.currentWorldY = 0; haxe_ui_backend_flixel_MouseHelper._initialized = false; haxe_ui_backend_flixel_MouseHelper._callbacks = new haxe_ds_StringMap(); haxe_ui_backend_flixel_UIRuntimeState.__rtti = "\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\t\n\t\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ searchType : \"id\", recursive : null, type : null, criteria : null }\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ maxDepth : 5, type : null, styleName : null }\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ searchType : \"id\", type : null, criteria : null }\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ type : null }\n\t\n\t\n\t\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ priority : 0 }\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n"; haxe_ui_backend_flixel_UIRuntimeSubState.__rtti = "\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\t\n\t\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ searchType : \"id\", recursive : null, type : null, criteria : null }\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ maxDepth : 5, type : null, styleName : null }\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ searchType : \"id\", type : null, criteria : null }\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ type : null }\n\t\n\t\n\t\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{ priority : 0 }\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\n"; haxe_ui_backend_flixel_textinputs_FlxTextInput.USE_ON_ADDED = false; haxe_ui_backend_flixel_textinputs_FlxTextInput.USE_ON_REMOVED = false; haxe_ui_components_CalendarEvent.DATE_CHANGE = "datechange"; haxe_ui_components_DropDownBuilder.HANDLER_MAP = new haxe_ds_StringMap(); haxe_ui_components__$TabBar_Builder.SCROLL_INCREMENT = 20; haxe_ui_constants_ScrollMode.DEFAULT = "default"; haxe_ui_constants_ScrollMode.NORMAL = "normal"; haxe_ui_constants_ScrollMode.DRAG = "drag"; haxe_ui_constants_ScrollMode.INERTIAL = "inertial"; haxe_ui_constants_ScrollMode.HYBRID = "hybrid"; haxe_ui_constants_ScrollMode.NATIVE = "native"; haxe_ui_containers_CalendarView.MONTH_NAMES = ["January","February","March","April","May","June","July","August","September","October","November","December"]; haxe_ui_containers_CalendarView.DATE_FORMAT = "%Y-%m-%d"; haxe_ui_containers_ScrollViewEvents.INERTIAL_TIME_CONSTANT = 325; haxe_ui_containers_SideBar.activeSideBar = null; haxe_ui_core_ItemRenderer.__meta__ = { fields : { allowHover : { clonable : null}}}; haxe_ui_containers_dialogs_DialogButton.SAVE = "{{save}}"; haxe_ui_containers_dialogs_DialogButton.YES = "{{yes}}"; haxe_ui_containers_dialogs_DialogButton.NO = "{{no}}"; haxe_ui_containers_dialogs_DialogButton.CLOSE = "{{close}}"; haxe_ui_containers_dialogs_DialogButton.OK = "{{ok}}"; haxe_ui_containers_dialogs_DialogButton.CANCEL = "{{cancel}}"; haxe_ui_containers_dialogs_DialogButton.APPLY = "{{apply}}"; haxe_ui_containers_dialogs_DialogEvent.DIALOG_CLOSED = "dialogClosed"; haxe_ui_containers_dialogs_FileDialogTypes.ANY = null; haxe_ui_containers_dialogs_MessageBoxType.TYPE_INFO = "info"; haxe_ui_containers_dialogs_MessageBoxType.TYPE_QUESTION = "question"; haxe_ui_containers_dialogs_MessageBoxType.TYPE_WARNING = "warning"; haxe_ui_containers_dialogs_MessageBoxType.TYPE_ERROR = "error"; haxe_ui_containers_dialogs_MessageBoxType.TYPE_YESNO = "yesno"; haxe_ui_containers_menus_MenuEvents.TIME_MOUSE_OPENS_MS = 400; haxe_ui_containers_windows_WindowEvent.WINDOW_MINIMIZED = "windowminimized"; haxe_ui_containers_windows_WindowEvent.WINDOW_MAXIMIZED = "windowmaximized"; haxe_ui_containers_windows_WindowEvent.WINDOW_RESTORED = "windowrestored"; haxe_ui_containers_windows_WindowEvent.WINDOW_BEFORE_CLOSED = "windowbeforeclosed"; haxe_ui_containers_windows_WindowEvent.WINDOW_CLOSED = "windowclosed"; haxe_ui_containers_windows_WindowEvent.WINDOW_ACTIVATED = "windowactivated"; haxe_ui_containers_windows_WindowEvent.WINDOW_DEACTIVATED = "windowdeactivated"; haxe_ui_containers_windows_WindowEvent.WINDOW_ADDED = "windowadded"; haxe_ui_containers_windows_WindowEvent.WINDOW_REMOVED = "windowremoved"; haxe_ui_containers_windows_WindowEvent.WINDOW_TITLE_CHANGED = "windowtitlechanged"; haxe_ui_core_ComponentFieldMap.MAP = (function($this) { var $r; var _g = new haxe_ds_StringMap(); _g.h["group"] = "componentGroup"; _g.h["contentLayout"] = "contentLayoutName"; $r = _g; return $r; }(this)); haxe_ui_core_Platform.METRIC_VSCROLL_WIDTH = "patform.metrics.vscroll.width"; haxe_ui_core_Platform.METRIC_HSCROLL_HEIGHT = "patform.metrics.hscroll.height"; haxe_ui_data_DataSource.regexAlpha = new EReg("[^a-zA-Z]","g"); haxe_ui_data_DataSource.regexNumeric = new EReg("[^0-9]","g"); haxe_ui_events_ActionEvent.ACTION_START = haxe_ui_events_EventType.$name("actionstart"); haxe_ui_events_ActionEvent.ACTION_END = haxe_ui_events_EventType.$name("actionend"); haxe_ui_events_AnimationEvent.LOADED = haxe_ui_events_EventType.$name("animationloaded"); haxe_ui_events_AnimationEvent.START = haxe_ui_events_EventType.$name("animationstart"); haxe_ui_events_AnimationEvent.END = haxe_ui_events_EventType.$name("animationend"); haxe_ui_events_AnimationEvent.FRAME = haxe_ui_events_EventType.$name("animationframe"); haxe_ui_events_DragEvent.DRAG_START = haxe_ui_events_EventType.$name("dragstart"); haxe_ui_events_DragEvent.DRAG = haxe_ui_events_EventType.$name("drag"); haxe_ui_events_DragEvent.DRAG_END = haxe_ui_events_EventType.$name("dragend"); haxe_ui_events_FocusEvent.FOCUS_IN = haxe_ui_events_EventType.$name("focusin"); haxe_ui_events_FocusEvent.FOCUS_OUT = haxe_ui_events_EventType.$name("focusout"); haxe_ui_events_ItemEvent.COMPONENT_EVENT = haxe_ui_events_EventType.$name("itemcomponentevent"); haxe_ui_events_ItemEvent.COMPONENT_CLICK_EVENT = haxe_ui_events_EventType.$name("itemcomponentclickevent"); haxe_ui_events_ItemEvent.COMPONENT_CHANGE_EVENT = haxe_ui_events_EventType.$name("itemcomponentchangeevent"); haxe_ui_events_ItemRendererEvent.DATA_CHANGED = haxe_ui_events_EventType.$name("datachanged"); haxe_ui_events_MenuEvent.MENU_SELECTED = haxe_ui_events_EventType.$name("menuselected"); haxe_ui_events_MenuEvent.MENU_OPENED = haxe_ui_events_EventType.$name("menuopened"); haxe_ui_events_MenuEvent.MENU_CLOSED = haxe_ui_events_EventType.$name("menuclosed"); haxe_ui_events_NotificationEvent.SHOWN = haxe_ui_events_EventType.$name("notificationshown"); haxe_ui_events_NotificationEvent.HIDDEN = haxe_ui_events_EventType.$name("notificationhidden"); haxe_ui_events_NotificationEvent.ACTION = haxe_ui_events_EventType.$name("notificationaction"); haxe_ui_events_ScrollEvent.CHANGE = haxe_ui_events_EventType.$name("scrollchange"); haxe_ui_events_ScrollEvent.START = haxe_ui_events_EventType.$name("scrollstart"); haxe_ui_events_ScrollEvent.STOP = haxe_ui_events_EventType.$name("scrollstop"); haxe_ui_events_ScrollEvent.SCROLL = haxe_ui_events_EventType.$name("scrollscroll"); haxe_ui_events_SortEvent.SORT_CHANGED = haxe_ui_events_EventType.$name("sortchanged"); haxe_ui_events_ThemeEvent.THEME_CHANGED = haxe_ui_events_EventType.$name("themechanged"); haxe_ui_events_TreeViewEvent.NODE_EXPANDED = haxe_ui_events_EventType.$name("nodeexpanded"); haxe_ui_events_TreeViewEvent.NODE_COLLAPSED = haxe_ui_events_EventType.$name("nodecollapsed"); haxe_ui_events_ValidationEvent.START = haxe_ui_events_EventType.$name("validationstart"); haxe_ui_events_ValidationEvent.STOP = haxe_ui_events_EventType.$name("validationstop"); haxe_ui_events_ValidatorEvent.VALID_DATA = haxe_ui_events_EventType.$name("validdata"); haxe_ui_events_ValidatorEvent.INVALID_DATA = haxe_ui_events_EventType.$name("invaliddata"); haxe_ui_filters_Blur.DEFAULTS = [1]; haxe_ui_filters_BoxShadow.DEFAULTS = [2,2,0,.1,1,0,false]; haxe_ui_filters_Contrast.DEFAULTS = [1]; haxe_ui_filters_DropShadow.DEFAULTS = [4,45,0,1,4,4,1,1,false,false,false]; haxe_ui_filters_Grayscale.DEFAULTS = [100]; haxe_ui_filters_HueRotate.DEFAULTS = [1]; haxe_ui_filters_Outline.DEFAULTS = [0,1]; haxe_ui_filters_Saturate.DEFAULTS = [1]; haxe_ui_filters_Tint.DEFAULTS = [0,1]; haxe_ui_layouts_LayoutFactory._map = new haxe_ds_StringMap(); haxe_ui_locale_Formats._dateFormatShort = null; haxe_ui_locale_Formats._decimalSeparator = null; haxe_ui_locale_Formats._thousandsSeparator = null; haxe_ui_locale_LocaleEvent.LOCALE_CHANGED = "localeChanged"; haxe_ui_locale_LocaleManager._registeredComponents = new haxe_ds_ObjectMap(); haxe_ui_notifications_NotificationManager.DEFAULT_EXPIRY = 3000; haxe_ui_notifications_NotificationManager.GUTTER_SIZE = 20; haxe_ui_notifications_NotificationManager.SPACING = 10; haxe_ui_parsers_ui_ComponentParser._nextId = 0; haxe_ui_styles_CssFilters._cssFilters = new haxe_ds_StringMap(); haxe_ui_styles_CssFunctions._cssFunctions = new haxe_ds_StringMap(); haxe_ui_styles_DirectiveHandler._directiveHandlers = new haxe_ds_StringMap(); haxe_ui_styles_DirectiveHandler._directiveHandlerInstances = new haxe_ds_StringMap(); haxe_ui_styles_Parser.cssKeyframesRegex = new EReg("@keyframes\\s*(\\w+?)\\s*\\{([\\s\\S]*?\\}\\s*?)\\}","gi"); haxe_ui_styles_Parser.cssKeyframeSelectorRegex = new EReg("([\\w%]+)\\s*\\{\\s*([\\s\\S]*?)\\s*\\}","gi"); haxe_ui_styles_Parser.combinedCSSMediaRegex = new EReg("((\\s*?(?:/\\*[\\s\\S]*?\\*/)?\\s*?@media[\\s\\S]*?)\\{([\\s\\S]*?)\\}\\s*?\\})|(([\\s\\S]*?)\\{([\\s\\S]*?)\\})","gi"); haxe_ui_styles_Parser.cssCommentsRegex = new EReg("(/\\*[\\s\\S]*?\\*/)","gi"); haxe_ui_styles_Parser.cssImportStatementRegex = new EReg("@import .*?;","gi"); haxe_ui_styles_Parser.newlineRegex = new EReg("\n+","g"); haxe_ui_styles_ValueTools.timeEReg = new EReg("^(-?\\d+(?:\\.\\d+)?)(s|ms)$","gi"); haxe_ui_styles_animation_AnimationOptions.DEFAULT_DURATION = 0; haxe_ui_styles_animation_AnimationOptions.DEFAULT_DELAY = 0; haxe_ui_styles_animation_AnimationOptions.DEFAULT_ITERATION_COUNT = 1; haxe_ui_styles_animation_AnimationOptions.DEFAULT_EASING_FUNCTION = "ease"; haxe_ui_styles_animation_AnimationOptions.DEFAULT_DIRECTION = "normal"; haxe_ui_styles_animation_AnimationOptions.DEFAULT_FILL_MODE = "forwards"; haxe_ui_styles_animation_util_Actuator.frameCallbacks = []; haxe_ui_styles_animation_util_Actuator.dispatchingFrameCallbacks = false; haxe_ui_themes_Theme.DEFAULT = "default"; haxe_ui_themes_Theme.DARK = "dark"; haxe_ui_tooltips_ToolTipManager.defaultDelay = 500; haxe_ui_tooltips_ToolTipManager.defaultRenderer = null; haxe_ui_tooltips_ToolTipManager.fade = true; haxe_ui_tooltips_ToolTipManager.followMouse = false; haxe_ui_tooltips_ToolTipManager.calcRect = new haxe_ui_geom_Rectangle(); haxe_ui_util_Color.colors = (function($this) { var $r; var _g = new haxe_ds_StringMap(); _g.h["mediumvioletred"] = 13047173; _g.h["deeppink"] = 16716947; _g.h["palevioletred"] = 14381203; _g.h["hotpink"] = 16738740; _g.h["lightpink"] = 16758465; _g.h["pink"] = 16761035; _g.h["darkred"] = 9109504; _g.h["red"] = 16711680; _g.h["firebrick"] = 11674146; _g.h["crimson"] = 14423100; _g.h["indianred"] = 13458524; _g.h["lightcoral"] = 15761536; _g.h["salmon"] = 16416882; _g.h["darksalmon"] = 15308410; _g.h["lightsalmon"] = 16752762; _g.h["orangered"] = 16729344; _g.h["tomato"] = 16737095; _g.h["darkorange"] = 16747520; _g.h["coral"] = 16744272; _g.h["orange"] = 16753920; _g.h["darkkhaki"] = 12433259; _g.h["gold"] = 16766720; _g.h["khaki"] = 15787660; _g.h["peachpuff"] = 16767673; _g.h["yellow"] = 16776960; _g.h["palegoldenrod"] = 15657130; _g.h["moccasin"] = 16770229; _g.h["papayawhip"] = 16773077; _g.h["lightgoldenrodyellow"] = 16448210; _g.h["lemonchiffon"] = 16775885; _g.h["lightyellow"] = 16777184; _g.h["maroon"] = 8388608; _g.h["brown"] = 10824234; _g.h["saddlebrown"] = 9127187; _g.h["sienna"] = 10506797; _g.h["chocolate"] = 13789470; _g.h["darkgoldenrod"] = 12092939; _g.h["peru"] = 13468991; _g.h["rosybrown"] = 12357519; _g.h["goldenrod"] = 14329120; _g.h["sandybrown"] = 16032864; _g.h["tan"] = 13808780; _g.h["burlywood"] = 14596231; _g.h["wheat"] = 16113331; _g.h["navajowhite"] = 16768685; _g.h["bisque"] = 16770244; _g.h["blanchedalmond"] = 16772045; _g.h["cornsilk"] = 16775388; _g.h["darkgreen"] = 25600; _g.h["green"] = 32768; _g.h["darkolivegreen"] = 5597999; _g.h["forestgreen"] = 2263842; _g.h["seagreen"] = 3050327; _g.h["olive"] = 8421376; _g.h["olivedrab"] = 7048739; _g.h["mediumseagreen"] = 3978097; _g.h["limegreen"] = 3329330; _g.h["lime"] = 65280; _g.h["springgreen"] = 65407; _g.h["mediumspringgreen"] = 64154; _g.h["darkseagreen"] = 9419919; _g.h["mediumaquamarine"] = 6737322; _g.h["yellowgreen"] = 10145074; _g.h["lawngreen"] = 8190976; _g.h["chartreuse"] = 8388352; _g.h["lightgreen"] = 9498256; _g.h["greenyellow"] = 11403055; _g.h["palegreen"] = 10025880; _g.h["teal"] = 32896; _g.h["darkcyan"] = 35723; _g.h["lightseagreen"] = 2142890; _g.h["cadetblue"] = 6266528; _g.h["darkturquoise"] = 52945; _g.h["mediumturquoise"] = 4772300; _g.h["turquoise"] = 4251856; _g.h["aqua"] = 65535; _g.h["cyan"] = 65535; _g.h["aquamarine"] = 8388564; _g.h["paleturquoise"] = 11529966; _g.h["lightcyan"] = 14745599; _g.h["navy"] = 128; _g.h["darkblue"] = 139; _g.h["mediumblue"] = 205; _g.h["blue"] = 255; _g.h["midnightblue"] = 1644912; _g.h["royalblue"] = 4286945; _g.h["steelblue"] = 4620980; _g.h["dodgerblue"] = 2003199; _g.h["deepskyblue"] = 49151; _g.h["cornflowerblue"] = 6591981; _g.h["skyblue"] = 8900331; _g.h["lightskyblue"] = 8900346; _g.h["lightsteelblue"] = 11584734; _g.h["lightblue"] = 11393254; _g.h["powderblue"] = 11591910; _g.h["indigo"] = 4915330; _g.h["purple"] = 8388736; _g.h["darkmagenta"] = 9109643; _g.h["darkviolet"] = 9699539; _g.h["darkslateblue"] = 4734347; _g.h["blueviolet"] = 9055202; _g.h["darkorchid"] = 10040012; _g.h["fuchsia"] = 16711935; _g.h["magenta"] = 16711935; _g.h["slateblue"] = 6970061; _g.h["mediumslateblue"] = 8087790; _g.h["mediumorchid"] = 12211667; _g.h["mediumpurple"] = 9662683; _g.h["orchid"] = 14315734; _g.h["violet"] = 15631086; _g.h["plum"] = 14524637; _g.h["thistle"] = 14204888; _g.h["lavender"] = 15132410; _g.h["mistyrose"] = 16770273; _g.h["antiquewhite"] = 16444375; _g.h["linen"] = 16445670; _g.h["beige"] = 16119260; _g.h["whitesmoke"] = 16119285; _g.h["lavenderblush"] = 16773365; _g.h["oldlace"] = 16643558; _g.h["aliceblue"] = 15792383; _g.h["seashell"] = 16774638; _g.h["ghostwhite"] = 16316671; _g.h["honeydew"] = 15794160; _g.h["floralwhite"] = 16775920; _g.h["azure"] = 15794175; _g.h["mintcream"] = 16121850; _g.h["snow"] = 16775930; _g.h["ivory"] = 16777200; _g.h["white"] = 16777215; _g.h["black"] = 0; _g.h["darkslategray"] = 3100495; _g.h["dimgray"] = 6908265; _g.h["slategray"] = 7372944; _g.h["gray"] = 8421504; _g.h["grey"] = 8421504; _g.h["lightslategray"] = 7833753; _g.h["darkgray"] = 11119017; _g.h["silver"] = 12632256; _g.h["lightgray"] = 13882323; _g.h["gainsboro"] = 14474460; $r = _g; return $r; }(this)); haxe_ui_util_DateUtil.DAYS_IN_MONTH = [31,28,31,30,31,30,31,31,30,31,30,31]; haxe_ui_util_DateUtil.DAY_NAMES = ["{{sunday}}","{{monday}}","{{tuesday}}","{{wednesday}}","{{thursday}}","{{friday}}","{{saturday}}"]; haxe_ui_util_DateUtil.SHORT_DAY_NAMES = ["{{sun}}","{{mon}}","{{tues}}","{{wed}}","{{thur}}","{{fri}}","{{sat}}"]; haxe_ui_util_DateUtil.MONTH_NAMES = ["{{january}}","{{february}}","{{march}}","{{april}}","{{may}}","{{june}}","{{july}}","{{august}}","{{september}}","{{october}}","{{november}}","{{december}}"]; haxe_ui_util_DateUtil.SHORT_MONTH_NAMES = ["{{jan}}","{{feb}}","{{mar}}","{{apr}}","{{may}}","{{jun}}","{{jul}}","{{aug}}","{{sep}}","{{oct}}","{{nov}}","{{dec}}"]; haxe_ui_util_Defines._map = null; haxe_ui_util_MathUtil.MAX_INT = 2147483647; haxe_ui_util_MathUtil.MIN_INT = -2147483648; haxe_ui_util_MathUtil.MAX_FLOAT_DIFFERENCE = 0.0000001; haxe_ui_util_RTTI.classInfo = null; haxe_ui_util_StringUtil.humanReadableRegex = new EReg("\\B(?=(\\d{3})+(?!\\d))","g"); haxe_ui_util_StringUtil.THOUSAND = 1000; haxe_ui_util_StringUtil.MILLION = 1000000; haxe_ui_util_StringUtil.BILLION = 1000000000; haxe_ui_util_StyleUtil.style2ComponentEReg = new EReg("-(\\w)","g"); haxe_ui_util_StyleUtil.component2StyleEReg = new EReg("([A-Z])","g"); haxe_ui_util_html5_ReadMode.None = "none"; haxe_ui_util_html5_ReadMode.Text = "text"; haxe_ui_util_html5_ReadMode.Binary = "binary"; haxe_xml_Parser.escapes = (function($this) { var $r; var h = new haxe_ds_StringMap(); h.h["lt"] = "<"; h.h["gt"] = ">"; h.h["amp"] = "&"; h.h["quot"] = "\""; h.h["apos"] = "'"; $r = h; return $r; }(this)); haxe_zip__$InflateImpl_Window.SIZE = 32768; haxe_zip__$InflateImpl_Window.BUFSIZE = 65536; haxe_zip_InflateImpl.LEN_EXTRA_BITS_TBL = [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,-1,-1]; haxe_zip_InflateImpl.LEN_BASE_VAL_TBL = [3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258]; haxe_zip_InflateImpl.DIST_EXTRA_BITS_TBL = [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,-1,-1]; haxe_zip_InflateImpl.DIST_BASE_VAL_TBL = [1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577]; haxe_zip_InflateImpl.CODE_LENGTHS_POS = [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]; haxe_zip_InflateImpl.FIXED_HUFFMAN = null; haxe_zip_Writer.CENTRAL_DIRECTORY_RECORD_FIELDS_SIZE = 46; haxe_zip_Writer.LOCAL_FILE_HEADER_FIELDS_SIZE = 30; lime__$internal_backend_html5_HTML5HTTPRequest.OPTION_REVOKE_URL = 1; lime__$internal_backend_html5_HTML5HTTPRequest.activeRequests = 0; lime__$internal_backend_html5_HTML5HTTPRequest.requestLimit = 17; lime__$internal_backend_html5_HTML5HTTPRequest.requestQueue = new haxe_ds_List(); lime__$internal_backend_html5_HTML5Window.dummyCharacter = ""; lime__$internal_backend_html5_HTML5Window.windowID = 0; lime__$internal_format_Base64.DICTIONARY = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); lime__$internal_format_Base64.EXTENDED_DICTIONARY = (function($this) { var $r; var result = []; { var _g = 0; var _g1 = lime__$internal_format_Base64.DICTIONARY; while(_g < _g1.length) { var a = _g1[_g]; ++_g; var _g2 = 0; var _g3 = lime__$internal_format_Base64.DICTIONARY; while(_g2 < _g3.length) { var b = _g3[_g2]; ++_g2; result.push(a + b); } } } $r = result; return $r; }(this)); lime__$internal_graphics_StackBlur.MUL_TABLE = [1,171,205,293,57,373,79,137,241,27,391,357,41,19,283,265,497,469,443,421,25,191,365,349,335,161,155,149,9,278,269,261,505,245,475,231,449,437,213,415,405,395,193,377,369,361,353,345,169,331,325,319,313,307,301,37,145,285,281,69,271,267,263,259,509,501,493,243,479,118,465,459,113,446,55,435,429,423,209,413,51,403,199,393,97,3,379,375,371,367,363,359,355,351,347,43,85,337,333,165,327,323,5,317,157,311,77,305,303,75,297,294,73,289,287,71,141,279,277,275,68,135,67,133,33,262,260,129,511,507,503,499,495,491,61,121,481,477,237,235,467,232,115,457,227,451,7,445,221,439,218,433,215,427,425,211,419,417,207,411,409,203,202,401,399,396,197,49,389,387,385,383,95,189,47,187,93,185,23,183,91,181,45,179,89,177,11,175,87,173,345,343,341,339,337,21,167,83,331,329,327,163,81,323,321,319,159,79,315,313,39,155,309,307,153,305,303,151,75,299,149,37,295,147,73,291,145,289,287,143,285,71,141,281,35,279,139,69,275,137,273,17,271,135,269,267,133,265,33,263,131,261,130,259,129,257,1]; lime__$internal_graphics_StackBlur.SHG_TABLE = [0,9,10,11,9,12,10,11,12,9,13,13,10,9,13,13,14,14,14,14,10,13,14,14,14,13,13,13,9,14,14,14,15,14,15,14,15,15,14,15,15,15,14,15,15,15,15,15,14,15,15,15,15,15,15,12,14,15,15,13,15,15,15,15,16,16,16,15,16,14,16,16,14,16,13,16,16,16,15,16,13,16,15,16,14,9,16,16,16,16,16,16,16,16,16,13,14,16,16,15,16,16,10,16,15,16,14,16,16,14,16,16,14,16,16,14,15,16,16,16,14,15,14,15,13,16,16,15,17,17,17,17,17,17,14,15,17,17,16,16,17,16,15,17,16,17,11,17,16,17,16,17,16,17,17,16,17,17,16,17,17,16,16,17,17,17,16,14,17,17,17,17,15,16,14,16,15,16,13,16,15,16,14,16,15,16,12,16,15,16,17,17,17,17,17,13,16,15,17,17,17,16,15,17,17,17,16,15,17,17,14,16,17,17,16,17,17,16,15,17,16,14,17,16,15,17,16,17,17,16,17,15,16,17,14,17,16,15,17,16,17,13,17,16,17,17,16,17,14,17,16,17,16,17,16,17,9]; lime_graphics_cairo_CairoFTFontFace.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.NUM_COMPRESSED_TEXTURE_FORMATS = 34466; 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.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.EXTENSIONS = 7939; 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.IMPLEMENTATION_COLOR_READ_TYPE = 35738; lime_graphics_opengl_GL.IMPLEMENTATION_COLOR_READ_FORMAT = 35739; 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_graphics_opengl_GL.READ_BUFFER = 3074; lime_graphics_opengl_GL.UNPACK_ROW_LENGTH = 3314; lime_graphics_opengl_GL.UNPACK_SKIP_ROWS = 3315; lime_graphics_opengl_GL.UNPACK_SKIP_PIXELS = 3316; lime_graphics_opengl_GL.PACK_ROW_LENGTH = 3330; lime_graphics_opengl_GL.PACK_SKIP_ROWS = 3331; lime_graphics_opengl_GL.PACK_SKIP_PIXELS = 3332; lime_graphics_opengl_GL.TEXTURE_BINDING_3D = 32874; lime_graphics_opengl_GL.UNPACK_SKIP_IMAGES = 32877; lime_graphics_opengl_GL.UNPACK_IMAGE_HEIGHT = 32878; lime_graphics_opengl_GL.MAX_3D_TEXTURE_SIZE = 32883; lime_graphics_opengl_GL.MAX_ELEMENTS_VERTICES = 33000; lime_graphics_opengl_GL.MAX_ELEMENTS_INDICES = 33001; lime_graphics_opengl_GL.MAX_TEXTURE_LOD_BIAS = 34045; lime_graphics_opengl_GL.MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657; lime_graphics_opengl_GL.MAX_VERTEX_UNIFORM_COMPONENTS = 35658; lime_graphics_opengl_GL.MAX_ARRAY_TEXTURE_LAYERS = 35071; lime_graphics_opengl_GL.MIN_PROGRAM_TEXEL_OFFSET = 35076; lime_graphics_opengl_GL.MAX_PROGRAM_TEXEL_OFFSET = 35077; lime_graphics_opengl_GL.MAX_VARYING_COMPONENTS = 35659; lime_graphics_opengl_GL.FRAGMENT_SHADER_DERIVATIVE_HINT = 35723; lime_graphics_opengl_GL.RASTERIZER_DISCARD = 35977; lime_graphics_opengl_GL.VERTEX_ARRAY_BINDING = 34229; lime_graphics_opengl_GL.MAX_VERTEX_OUTPUT_COMPONENTS = 37154; lime_graphics_opengl_GL.MAX_FRAGMENT_INPUT_COMPONENTS = 37157; lime_graphics_opengl_GL.MAX_SERVER_WAIT_TIMEOUT = 37137; lime_graphics_opengl_GL.MAX_ELEMENT_INDEX = 36203; lime_graphics_opengl_GL.RED = 6403; lime_graphics_opengl_GL.RGB8 = 32849; lime_graphics_opengl_GL.RGBA8 = 32856; lime_graphics_opengl_GL.RGB10_A2 = 32857; lime_graphics_opengl_GL.TEXTURE_3D = 32879; lime_graphics_opengl_GL.TEXTURE_WRAP_R = 32882; lime_graphics_opengl_GL.TEXTURE_MIN_LOD = 33082; lime_graphics_opengl_GL.TEXTURE_MAX_LOD = 33083; lime_graphics_opengl_GL.TEXTURE_BASE_LEVEL = 33084; lime_graphics_opengl_GL.TEXTURE_MAX_LEVEL = 33085; lime_graphics_opengl_GL.TEXTURE_COMPARE_MODE = 34892; lime_graphics_opengl_GL.TEXTURE_COMPARE_FUNC = 34893; lime_graphics_opengl_GL.SRGB = 35904; lime_graphics_opengl_GL.SRGB8 = 35905; lime_graphics_opengl_GL.SRGB8_ALPHA8 = 35907; lime_graphics_opengl_GL.COMPARE_REF_TO_TEXTURE = 34894; lime_graphics_opengl_GL.RGBA32F = 34836; lime_graphics_opengl_GL.RGB32F = 34837; lime_graphics_opengl_GL.RGBA16F = 34842; lime_graphics_opengl_GL.RGB16F = 34843; lime_graphics_opengl_GL.TEXTURE_2D_ARRAY = 35866; lime_graphics_opengl_GL.TEXTURE_BINDING_2D_ARRAY = 35869; lime_graphics_opengl_GL.R11F_G11F_B10F = 35898; lime_graphics_opengl_GL.RGB9_E5 = 35901; lime_graphics_opengl_GL.RGBA32UI = 36208; lime_graphics_opengl_GL.RGB32UI = 36209; lime_graphics_opengl_GL.RGBA16UI = 36214; lime_graphics_opengl_GL.RGB16UI = 36215; lime_graphics_opengl_GL.RGBA8UI = 36220; lime_graphics_opengl_GL.RGB8UI = 36221; lime_graphics_opengl_GL.RGBA32I = 36226; lime_graphics_opengl_GL.RGB32I = 36227; lime_graphics_opengl_GL.RGBA16I = 36232; lime_graphics_opengl_GL.RGB16I = 36233; lime_graphics_opengl_GL.RGBA8I = 36238; lime_graphics_opengl_GL.RGB8I = 36239; lime_graphics_opengl_GL.RED_INTEGER = 36244; lime_graphics_opengl_GL.RGB_INTEGER = 36248; lime_graphics_opengl_GL.RGBA_INTEGER = 36249; lime_graphics_opengl_GL.R8 = 33321; lime_graphics_opengl_GL.RG8 = 33323; lime_graphics_opengl_GL.R16F = 33325; lime_graphics_opengl_GL.R32F = 33326; lime_graphics_opengl_GL.RG16F = 33327; lime_graphics_opengl_GL.RG32F = 33328; lime_graphics_opengl_GL.R8I = 33329; lime_graphics_opengl_GL.R8UI = 33330; lime_graphics_opengl_GL.R16I = 33331; lime_graphics_opengl_GL.R16UI = 33332; lime_graphics_opengl_GL.R32I = 33333; lime_graphics_opengl_GL.R32UI = 33334; lime_graphics_opengl_GL.RG8I = 33335; lime_graphics_opengl_GL.RG8UI = 33336; lime_graphics_opengl_GL.RG16I = 33337; lime_graphics_opengl_GL.RG16UI = 33338; lime_graphics_opengl_GL.RG32I = 33339; lime_graphics_opengl_GL.RG32UI = 33340; lime_graphics_opengl_GL.R8_SNORM = 36756; lime_graphics_opengl_GL.RG8_SNORM = 36757; lime_graphics_opengl_GL.RGB8_SNORM = 36758; lime_graphics_opengl_GL.RGBA8_SNORM = 36759; lime_graphics_opengl_GL.RGB10_A2UI = 36975; lime_graphics_opengl_GL.TEXTURE_IMMUTABLE_FORMAT = 37167; lime_graphics_opengl_GL.TEXTURE_IMMUTABLE_LEVELS = 33503; lime_graphics_opengl_GL.UNSIGNED_INT_2_10_10_10_REV = 33640; lime_graphics_opengl_GL.UNSIGNED_INT_10F_11F_11F_REV = 35899; lime_graphics_opengl_GL.UNSIGNED_INT_5_9_9_9_REV = 35902; lime_graphics_opengl_GL.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269; lime_graphics_opengl_GL.UNSIGNED_INT_24_8 = 34042; lime_graphics_opengl_GL.HALF_FLOAT = 5131; lime_graphics_opengl_GL.RG = 33319; lime_graphics_opengl_GL.RG_INTEGER = 33320; lime_graphics_opengl_GL.INT_2_10_10_10_REV = 36255; lime_graphics_opengl_GL.CURRENT_QUERY = 34917; lime_graphics_opengl_GL.QUERY_RESULT = 34918; lime_graphics_opengl_GL.QUERY_RESULT_AVAILABLE = 34919; lime_graphics_opengl_GL.ANY_SAMPLES_PASSED = 35887; lime_graphics_opengl_GL.ANY_SAMPLES_PASSED_CONSERVATIVE = 36202; lime_graphics_opengl_GL.MAX_DRAW_BUFFERS = 34852; lime_graphics_opengl_GL.DRAW_BUFFER0 = 34853; lime_graphics_opengl_GL.DRAW_BUFFER1 = 34854; lime_graphics_opengl_GL.DRAW_BUFFER2 = 34855; lime_graphics_opengl_GL.DRAW_BUFFER3 = 34856; lime_graphics_opengl_GL.DRAW_BUFFER4 = 34857; lime_graphics_opengl_GL.DRAW_BUFFER5 = 34858; lime_graphics_opengl_GL.DRAW_BUFFER6 = 34859; lime_graphics_opengl_GL.DRAW_BUFFER7 = 34860; lime_graphics_opengl_GL.DRAW_BUFFER8 = 34861; lime_graphics_opengl_GL.DRAW_BUFFER9 = 34862; lime_graphics_opengl_GL.DRAW_BUFFER10 = 34863; lime_graphics_opengl_GL.DRAW_BUFFER11 = 34864; lime_graphics_opengl_GL.DRAW_BUFFER12 = 34865; lime_graphics_opengl_GL.DRAW_BUFFER13 = 34866; lime_graphics_opengl_GL.DRAW_BUFFER14 = 34867; lime_graphics_opengl_GL.DRAW_BUFFER15 = 34868; lime_graphics_opengl_GL.MAX_COLOR_ATTACHMENTS = 36063; lime_graphics_opengl_GL.COLOR_ATTACHMENT1 = 36065; lime_graphics_opengl_GL.COLOR_ATTACHMENT2 = 36066; lime_graphics_opengl_GL.COLOR_ATTACHMENT3 = 36067; lime_graphics_opengl_GL.COLOR_ATTACHMENT4 = 36068; lime_graphics_opengl_GL.COLOR_ATTACHMENT5 = 36069; lime_graphics_opengl_GL.COLOR_ATTACHMENT6 = 36070; lime_graphics_opengl_GL.COLOR_ATTACHMENT7 = 36071; lime_graphics_opengl_GL.COLOR_ATTACHMENT8 = 36072; lime_graphics_opengl_GL.COLOR_ATTACHMENT9 = 36073; lime_graphics_opengl_GL.COLOR_ATTACHMENT10 = 36074; lime_graphics_opengl_GL.COLOR_ATTACHMENT11 = 36075; lime_graphics_opengl_GL.COLOR_ATTACHMENT12 = 36076; lime_graphics_opengl_GL.COLOR_ATTACHMENT13 = 36077; lime_graphics_opengl_GL.COLOR_ATTACHMENT14 = 36078; lime_graphics_opengl_GL.COLOR_ATTACHMENT15 = 36079; lime_graphics_opengl_GL.SAMPLER_3D = 35679; lime_graphics_opengl_GL.SAMPLER_2D_SHADOW = 35682; lime_graphics_opengl_GL.SAMPLER_2D_ARRAY = 36289; lime_graphics_opengl_GL.SAMPLER_2D_ARRAY_SHADOW = 36292; lime_graphics_opengl_GL.SAMPLER_CUBE_SHADOW = 36293; lime_graphics_opengl_GL.INT_SAMPLER_2D = 36298; lime_graphics_opengl_GL.INT_SAMPLER_3D = 36299; lime_graphics_opengl_GL.INT_SAMPLER_CUBE = 36300; lime_graphics_opengl_GL.INT_SAMPLER_2D_ARRAY = 36303; lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_2D = 36306; lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_3D = 36307; lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_CUBE = 36308; lime_graphics_opengl_GL.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311; lime_graphics_opengl_GL.MAX_SAMPLES = 36183; lime_graphics_opengl_GL.SAMPLER_BINDING = 35097; lime_graphics_opengl_GL.PIXEL_PACK_BUFFER = 35051; lime_graphics_opengl_GL.PIXEL_UNPACK_BUFFER = 35052; lime_graphics_opengl_GL.PIXEL_PACK_BUFFER_BINDING = 35053; lime_graphics_opengl_GL.PIXEL_UNPACK_BUFFER_BINDING = 35055; lime_graphics_opengl_GL.COPY_READ_BUFFER = 36662; lime_graphics_opengl_GL.COPY_WRITE_BUFFER = 36663; lime_graphics_opengl_GL.COPY_READ_BUFFER_BINDING = 36662; lime_graphics_opengl_GL.COPY_WRITE_BUFFER_BINDING = 36663; lime_graphics_opengl_GL.FLOAT_MAT2x3 = 35685; lime_graphics_opengl_GL.FLOAT_MAT2x4 = 35686; lime_graphics_opengl_GL.FLOAT_MAT3x2 = 35687; lime_graphics_opengl_GL.FLOAT_MAT3x4 = 35688; lime_graphics_opengl_GL.FLOAT_MAT4x2 = 35689; lime_graphics_opengl_GL.FLOAT_MAT4x3 = 35690; lime_graphics_opengl_GL.UNSIGNED_INT_VEC2 = 36294; lime_graphics_opengl_GL.UNSIGNED_INT_VEC3 = 36295; lime_graphics_opengl_GL.UNSIGNED_INT_VEC4 = 36296; lime_graphics_opengl_GL.UNSIGNED_NORMALIZED = 35863; lime_graphics_opengl_GL.SIGNED_NORMALIZED = 36764; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_INTEGER = 35069; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_DIVISOR = 35070; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_MODE = 35967; lime_graphics_opengl_GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_VARYINGS = 35971; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_START = 35972; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976; lime_graphics_opengl_GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978; lime_graphics_opengl_GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979; lime_graphics_opengl_GL.INTERLEAVED_ATTRIBS = 35980; lime_graphics_opengl_GL.SEPARATE_ATTRIBS = 35981; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER = 35982; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK = 36386; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_PAUSED = 36387; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_ACTIVE = 36388; lime_graphics_opengl_GL.TRANSFORM_FEEDBACK_BINDING = 36389; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303; lime_graphics_opengl_GL.FRAMEBUFFER_DEFAULT = 33304; lime_graphics_opengl_GL.DEPTH24_STENCIL8 = 35056; lime_graphics_opengl_GL.DRAW_FRAMEBUFFER_BINDING = 36006; lime_graphics_opengl_GL.READ_FRAMEBUFFER = 36008; lime_graphics_opengl_GL.DRAW_FRAMEBUFFER = 36009; lime_graphics_opengl_GL.READ_FRAMEBUFFER_BINDING = 36010; lime_graphics_opengl_GL.RENDERBUFFER_SAMPLES = 36011; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052; lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182; lime_graphics_opengl_GL.UNIFORM_BUFFER = 35345; lime_graphics_opengl_GL.UNIFORM_BUFFER_BINDING = 35368; lime_graphics_opengl_GL.UNIFORM_BUFFER_START = 35369; lime_graphics_opengl_GL.UNIFORM_BUFFER_SIZE = 35370; lime_graphics_opengl_GL.MAX_VERTEX_UNIFORM_BLOCKS = 35371; lime_graphics_opengl_GL.MAX_FRAGMENT_UNIFORM_BLOCKS = 35373; lime_graphics_opengl_GL.MAX_COMBINED_UNIFORM_BLOCKS = 35374; lime_graphics_opengl_GL.MAX_UNIFORM_BUFFER_BINDINGS = 35375; lime_graphics_opengl_GL.MAX_UNIFORM_BLOCK_SIZE = 35376; lime_graphics_opengl_GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377; lime_graphics_opengl_GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379; lime_graphics_opengl_GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380; lime_graphics_opengl_GL.ACTIVE_UNIFORM_BLOCKS = 35382; lime_graphics_opengl_GL.UNIFORM_TYPE = 35383; lime_graphics_opengl_GL.UNIFORM_SIZE = 35384; lime_graphics_opengl_GL.UNIFORM_BLOCK_INDEX = 35386; lime_graphics_opengl_GL.UNIFORM_OFFSET = 35387; lime_graphics_opengl_GL.UNIFORM_ARRAY_STRIDE = 35388; lime_graphics_opengl_GL.UNIFORM_MATRIX_STRIDE = 35389; lime_graphics_opengl_GL.UNIFORM_IS_ROW_MAJOR = 35390; lime_graphics_opengl_GL.UNIFORM_BLOCK_BINDING = 35391; lime_graphics_opengl_GL.UNIFORM_BLOCK_DATA_SIZE = 35392; lime_graphics_opengl_GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394; lime_graphics_opengl_GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395; lime_graphics_opengl_GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396; lime_graphics_opengl_GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398; lime_graphics_opengl_GL.OBJECT_TYPE = 37138; lime_graphics_opengl_GL.SYNC_CONDITION = 37139; lime_graphics_opengl_GL.SYNC_STATUS = 37140; lime_graphics_opengl_GL.SYNC_FLAGS = 37141; lime_graphics_opengl_GL.SYNC_FENCE = 37142; lime_graphics_opengl_GL.SYNC_GPU_COMMANDS_COMPLETE = 37143; lime_graphics_opengl_GL.UNSIGNALED = 37144; lime_graphics_opengl_GL.SIGNALED = 37145; lime_graphics_opengl_GL.ALREADY_SIGNALED = 37146; lime_graphics_opengl_GL.TIMEOUT_EXPIRED = 37147; lime_graphics_opengl_GL.CONDITION_SATISFIED = 37148; lime_graphics_opengl_GL.WAIT_FAILED = 37149; lime_graphics_opengl_GL.SYNC_FLUSH_COMMANDS_BIT = 1; lime_graphics_opengl_GL.COLOR = 6144; lime_graphics_opengl_GL.DEPTH = 6145; lime_graphics_opengl_GL.STENCIL = 6146; lime_graphics_opengl_GL.MIN = 32775; lime_graphics_opengl_GL.MAX = 32776; lime_graphics_opengl_GL.DEPTH_COMPONENT24 = 33190; lime_graphics_opengl_GL.STREAM_READ = 35041; lime_graphics_opengl_GL.STREAM_COPY = 35042; lime_graphics_opengl_GL.STATIC_READ = 35045; lime_graphics_opengl_GL.STATIC_COPY = 35046; lime_graphics_opengl_GL.DYNAMIC_READ = 35049; lime_graphics_opengl_GL.DYNAMIC_COPY = 35050; lime_graphics_opengl_GL.DEPTH_COMPONENT32F = 36012; lime_graphics_opengl_GL.DEPTH32F_STENCIL8 = 36013; lime_graphics_opengl_GL.INVALID_INDEX = -1; lime_graphics_opengl_GL.TIMEOUT_IGNORED = -1; lime_graphics_opengl_GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447; lime_math_ColorMatrix.__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_Matrix4.__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_media_openal_AL.NONE = 0; lime_media_openal_AL.FALSE = 0; lime_media_openal_AL.TRUE = 1; lime_media_openal_AL.SOURCE_RELATIVE = 514; lime_media_openal_AL.CONE_INNER_ANGLE = 4097; lime_media_openal_AL.CONE_OUTER_ANGLE = 4098; lime_media_openal_AL.PITCH = 4099; lime_media_openal_AL.POSITION = 4100; lime_media_openal_AL.DIRECTION = 4101; lime_media_openal_AL.VELOCITY = 4102; lime_media_openal_AL.LOOPING = 4103; lime_media_openal_AL.BUFFER = 4105; lime_media_openal_AL.GAIN = 4106; lime_media_openal_AL.MIN_GAIN = 4109; lime_media_openal_AL.MAX_GAIN = 4110; lime_media_openal_AL.ORIENTATION = 4111; lime_media_openal_AL.SOURCE_STATE = 4112; lime_media_openal_AL.INITIAL = 4113; lime_media_openal_AL.PLAYING = 4114; lime_media_openal_AL.PAUSED = 4115; lime_media_openal_AL.STOPPED = 4116; lime_media_openal_AL.BUFFERS_QUEUED = 4117; lime_media_openal_AL.BUFFERS_PROCESSED = 4118; lime_media_openal_AL.REFERENCE_DISTANCE = 4128; lime_media_openal_AL.ROLLOFF_FACTOR = 4129; lime_media_openal_AL.CONE_OUTER_GAIN = 4130; lime_media_openal_AL.MAX_DISTANCE = 4131; lime_media_openal_AL.SEC_OFFSET = 4132; lime_media_openal_AL.SAMPLE_OFFSET = 4133; lime_media_openal_AL.BYTE_OFFSET = 4134; lime_media_openal_AL.SOURCE_TYPE = 4135; lime_media_openal_AL.STATIC = 4136; lime_media_openal_AL.STREAMING = 4137; lime_media_openal_AL.UNDETERMINED = 4144; lime_media_openal_AL.FORMAT_MONO8 = 4352; lime_media_openal_AL.FORMAT_MONO16 = 4353; lime_media_openal_AL.FORMAT_STEREO8 = 4354; lime_media_openal_AL.FORMAT_STEREO16 = 4355; lime_media_openal_AL.FREQUENCY = 8193; lime_media_openal_AL.BITS = 8194; lime_media_openal_AL.CHANNELS = 8195; lime_media_openal_AL.SIZE = 8196; lime_media_openal_AL.NO_ERROR = 0; lime_media_openal_AL.INVALID_NAME = 40961; lime_media_openal_AL.INVALID_ENUM = 40962; lime_media_openal_AL.INVALID_VALUE = 40963; lime_media_openal_AL.INVALID_OPERATION = 40964; lime_media_openal_AL.OUT_OF_MEMORY = 40965; lime_media_openal_AL.VENDOR = 45057; lime_media_openal_AL.VERSION = 45058; lime_media_openal_AL.RENDERER = 45059; lime_media_openal_AL.EXTENSIONS = 45060; lime_media_openal_AL.DOPPLER_FACTOR = 49152; lime_media_openal_AL.SPEED_OF_SOUND = 49155; lime_media_openal_AL.DOPPLER_VELOCITY = 49153; lime_media_openal_AL.DISTANCE_MODEL = 53248; lime_media_openal_AL.INVERSE_DISTANCE = 53249; lime_media_openal_AL.INVERSE_DISTANCE_CLAMPED = 53250; lime_media_openal_AL.LINEAR_DISTANCE = 53251; lime_media_openal_AL.LINEAR_DISTANCE_CLAMPED = 53252; lime_media_openal_AL.EXPONENT_DISTANCE = 53253; lime_media_openal_AL.EXPONENT_DISTANCE_CLAMPED = 53254; lime_media_openal_AL.METERS_PER_UNIT = 131076; lime_media_openal_AL.DIRECT_FILTER = 131077; lime_media_openal_AL.AUXILIARY_SEND_FILTER = 131078; lime_media_openal_AL.AIR_ABSORPTION_FACTOR = 131079; lime_media_openal_AL.ROOM_ROLLOFF_FACTOR = 131080; lime_media_openal_AL.CONE_OUTER_GAINHF = 131081; lime_media_openal_AL.DIRECT_FILTER_GAINHF_AUTO = 131082; lime_media_openal_AL.AUXILIARY_SEND_FILTER_GAIN_AUTO = 131083; lime_media_openal_AL.AUXILIARY_SEND_FILTER_GAINHF_AUTO = 131084; lime_media_openal_AL.REVERB_DENSITY = 1; lime_media_openal_AL.REVERB_DIFFUSION = 2; lime_media_openal_AL.REVERB_GAIN = 3; lime_media_openal_AL.REVERB_GAINHF = 4; lime_media_openal_AL.REVERB_DECAY_TIME = 5; lime_media_openal_AL.REVERB_DECAY_HFRATIO = 6; lime_media_openal_AL.REVERB_REFLECTIONS_GAIN = 7; lime_media_openal_AL.REVERB_REFLECTIONS_DELAY = 8; lime_media_openal_AL.REVERB_LATE_REVERB_GAIN = 9; lime_media_openal_AL.REVERB_LATE_REVERB_DELAY = 10; lime_media_openal_AL.REVERB_AIR_ABSORPTION_GAINHF = 11; lime_media_openal_AL.REVERB_ROOM_ROLLOFF_FACTOR = 12; lime_media_openal_AL.REVERB_DECAY_HFLIMIT = 13; lime_media_openal_AL.EAXREVERB_DENSITY = 1; lime_media_openal_AL.EAXREVERB_DIFFUSION = 2; lime_media_openal_AL.EAXREVERB_GAIN = 3; lime_media_openal_AL.EAXREVERB_GAINHF = 4; lime_media_openal_AL.EAXREVERB_GAINLF = 5; lime_media_openal_AL.EAXREVERB_DECAY_TIME = 6; lime_media_openal_AL.EAXREVERB_DECAY_HFRATIO = 7; lime_media_openal_AL.EAXREVERB_DECAY_LFRATIO = 8; lime_media_openal_AL.EAXREVERB_REFLECTIONS_GAIN = 9; lime_media_openal_AL.EAXREVERB_REFLECTIONS_DELAY = 10; lime_media_openal_AL.EAXREVERB_REFLECTIONS_PAN = 11; lime_media_openal_AL.EAXREVERB_LATE_REVERB_GAIN = 12; lime_media_openal_AL.EAXREVERB_LATE_REVERB_DELAY = 13; lime_media_openal_AL.EAXREVERB_LATE_REVERB_PAN = 14; lime_media_openal_AL.EAXREVERB_ECHO_TIME = 15; lime_media_openal_AL.EAXREVERB_ECHO_DEPTH = 16; lime_media_openal_AL.EAXREVERB_MODULATION_TIME = 17; lime_media_openal_AL.EAXREVERB_MODULATION_DEPTH = 18; lime_media_openal_AL.EAXREVERB_AIR_ABSORPTION_GAINHF = 19; lime_media_openal_AL.EAXREVERB_HFREFERENCE = 20; lime_media_openal_AL.EAXREVERB_LFREFERENCE = 21; lime_media_openal_AL.EAXREVERB_ROOM_ROLLOFF_FACTOR = 22; lime_media_openal_AL.EAXREVERB_DECAY_HFLIMIT = 23; lime_media_openal_AL.CHORUS_WAVEFORM = 1; lime_media_openal_AL.CHORUS_PHASE = 2; lime_media_openal_AL.CHORUS_RATE = 3; lime_media_openal_AL.CHORUS_DEPTH = 4; lime_media_openal_AL.CHORUS_FEEDBACK = 5; lime_media_openal_AL.CHORUS_DELAY = 6; lime_media_openal_AL.DISTORTION_EDGE = 1; lime_media_openal_AL.DISTORTION_GAIN = 2; lime_media_openal_AL.DISTORTION_LOWPASS_CUTOFF = 3; lime_media_openal_AL.DISTORTION_EQCENTER = 4; lime_media_openal_AL.DISTORTION_EQBANDWIDTH = 5; lime_media_openal_AL.ECHO_DELAY = 1; lime_media_openal_AL.ECHO_LRDELAY = 2; lime_media_openal_AL.ECHO_DAMPING = 3; lime_media_openal_AL.ECHO_FEEDBACK = 4; lime_media_openal_AL.ECHO_SPREAD = 5; lime_media_openal_AL.FLANGER_WAVEFORM = 1; lime_media_openal_AL.FLANGER_PHASE = 2; lime_media_openal_AL.FLANGER_RATE = 3; lime_media_openal_AL.FLANGER_DEPTH = 4; lime_media_openal_AL.FLANGER_FEEDBACK = 5; lime_media_openal_AL.FLANGER_DELAY = 6; lime_media_openal_AL.FREQUENCY_SHIFTER_FREQUENCY = 1; lime_media_openal_AL.FREQUENCY_SHIFTER_LEFT_DIRECTION = 2; lime_media_openal_AL.FREQUENCY_SHIFTER_RIGHT_DIRECTION = 3; lime_media_openal_AL.VOCAL_MORPHER_PHONEMEA = 1; lime_media_openal_AL.VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 2; lime_media_openal_AL.VOCAL_MORPHER_PHONEMEB = 3; lime_media_openal_AL.VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 4; lime_media_openal_AL.VOCAL_MORPHER_WAVEFORM = 5; lime_media_openal_AL.VOCAL_MORPHER_RATE = 6; lime_media_openal_AL.PITCH_SHIFTER_COARSE_TUNE = 1; lime_media_openal_AL.PITCH_SHIFTER_FINE_TUNE = 2; lime_media_openal_AL.RING_MODULATOR_FREQUENCY = 1; lime_media_openal_AL.RING_MODULATOR_HIGHPASS_CUTOFF = 2; lime_media_openal_AL.RING_MODULATOR_WAVEFORM = 3; lime_media_openal_AL.AUTOWAH_ATTACK_TIME = 1; lime_media_openal_AL.AUTOWAH_RELEASE_TIME = 2; lime_media_openal_AL.AUTOWAH_RESONANCE = 3; lime_media_openal_AL.AUTOWAH_PEAK_GAIN = 4; lime_media_openal_AL.COMPRESSOR_ONOFF = 1; lime_media_openal_AL.EQUALIZER_LOW_GAIN = 1; lime_media_openal_AL.EQUALIZER_LOW_CUTOFF = 2; lime_media_openal_AL.EQUALIZER_MID1_GAIN = 3; lime_media_openal_AL.EQUALIZER_MID1_CENTER = 4; lime_media_openal_AL.EQUALIZER_MID1_WIDTH = 5; lime_media_openal_AL.EQUALIZER_MID2_GAIN = 6; lime_media_openal_AL.EQUALIZER_MID2_CENTER = 7; lime_media_openal_AL.EQUALIZER_MID2_WIDTH = 8; lime_media_openal_AL.EQUALIZER_HIGH_GAIN = 9; lime_media_openal_AL.EQUALIZER_HIGH_CUTOFF = 10; lime_media_openal_AL.EFFECT_FIRST_PARAMETER = 0; lime_media_openal_AL.EFFECT_LAST_PARAMETER = 32768; lime_media_openal_AL.EFFECT_TYPE = 32769; lime_media_openal_AL.EFFECT_NULL = 0; lime_media_openal_AL.EFFECT_EAXREVERB = 32768; lime_media_openal_AL.EFFECT_REVERB = 1; lime_media_openal_AL.EFFECT_CHORUS = 2; lime_media_openal_AL.EFFECT_DISTORTION = 3; lime_media_openal_AL.EFFECT_ECHO = 4; lime_media_openal_AL.EFFECT_FLANGER = 5; lime_media_openal_AL.EFFECT_FREQUENCY_SHIFTER = 6; lime_media_openal_AL.EFFECT_VOCAL_MORPHER = 7; lime_media_openal_AL.EFFECT_PITCH_SHIFTER = 8; lime_media_openal_AL.EFFECT_RING_MODULATOR = 9; lime_media_openal_AL.FFECT_AUTOWAH = 10; lime_media_openal_AL.EFFECT_COMPRESSOR = 11; lime_media_openal_AL.EFFECT_EQUALIZER = 12; lime_media_openal_AL.EFFECTSLOT_EFFECT = 1; lime_media_openal_AL.EFFECTSLOT_GAIN = 2; lime_media_openal_AL.EFFECTSLOT_AUXILIARY_SEND_AUTO = 3; lime_media_openal_AL.LOWPASS_GAIN = 1; lime_media_openal_AL.LOWPASS_GAINHF = 2; lime_media_openal_AL.HIGHPASS_GAIN = 1; lime_media_openal_AL.HIGHPASS_GAINLF = 2; lime_media_openal_AL.BANDPASS_GAIN = 1; lime_media_openal_AL.BANDPASS_GAINLF = 2; lime_media_openal_AL.BANDPASS_GAINHF = 3; lime_media_openal_AL.FILTER_FIRST_PARAMETER = 0; lime_media_openal_AL.FILTER_LAST_PARAMETER = 32768; lime_media_openal_AL.FILTER_TYPE = 32769; lime_media_openal_AL.FILTER_NULL = 0; lime_media_openal_AL.FILTER_LOWPASS = 1; lime_media_openal_AL.FILTER_HIGHPASS = 2; lime_media_openal_AL.FILTER_BANDPASS = 3; lime_media_openal_AL.DEVICE_CLOCK_SOFT = 5632; lime_media_openal_AL.DEVICE_LATENCY_SOFT = 5633; lime_media_openal_AL.DEVICE_CLOCK_LATENCY_SOFT = 5634; lime_media_openal_AL.SEC_OFFSET_LATENCY_SOFT = 4609; lime_media_openal_AL.SEC_OFFSET_CLOCK_SOFT = 4611; lime_media_openal_ALC.FALSE = 0; lime_media_openal_ALC.TRUE = 1; lime_media_openal_ALC.FREQUENCY = 4103; lime_media_openal_ALC.REFRESH = 4104; lime_media_openal_ALC.SYNC = 4105; lime_media_openal_ALC.MONO_SOURCES = 4112; lime_media_openal_ALC.STEREO_SOURCES = 4113; lime_media_openal_ALC.NO_ERROR = 0; lime_media_openal_ALC.INVALID_DEVICE = 40961; lime_media_openal_ALC.INVALID_CONTEXT = 40962; lime_media_openal_ALC.INVALID_ENUM = 40963; lime_media_openal_ALC.INVALID_VALUE = 40964; lime_media_openal_ALC.OUT_OF_MEMORY = 40965; lime_media_openal_ALC.ATTRIBUTES_SIZE = 4098; lime_media_openal_ALC.ALL_ATTRIBUTES = 4099; lime_media_openal_ALC.DEFAULT_DEVICE_SPECIFIER = 4100; lime_media_openal_ALC.DEVICE_SPECIFIER = 4101; lime_media_openal_ALC.EXTENSIONS = 4102; lime_media_openal_ALC.ENUMERATE_ALL_EXT = 1; lime_media_openal_ALC.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; lime_media_openal_ALC.ALL_DEVICES_SPECIFIER = 4115; lime_system_BackgroundWorker.MESSAGE_COMPLETE = "__COMPLETE__"; lime_system_BackgroundWorker.MESSAGE_ERROR = "__ERROR__"; lime_system_CFFI.__moduleNames = null; lime_system_Clipboard.onUpdate = new lime_app__$Event_$Void_$Void(); lime_system_Clipboard.__updated = false; lime_system_JNI.alreadyCreated = new haxe_ds_StringMap(); lime_system_JNI.initialized = false; lime_system_Sensor.sensorByID = new haxe_ds_IntMap(); lime_system_Sensor.sensors = []; lime_system_System.__directories = new haxe_ds_IntMap(); lime_ui_Gamepad.devices = new haxe_ds_IntMap(); lime_ui_Gamepad.onConnect = new lime_app__$Event_$lime_$ui_$Gamepad_$Void(); lime_ui_GamepadAxis.LEFT_X = 0; lime_ui_GamepadAxis.LEFT_Y = 1; lime_ui_GamepadAxis.RIGHT_X = 2; lime_ui_GamepadAxis.RIGHT_Y = 3; lime_ui_GamepadAxis.TRIGGER_LEFT = 4; lime_ui_GamepadAxis.TRIGGER_RIGHT = 5; lime_ui_GamepadButton.A = 0; lime_ui_GamepadButton.B = 1; lime_ui_GamepadButton.X = 2; lime_ui_GamepadButton.Y = 3; lime_ui_GamepadButton.BACK = 4; lime_ui_GamepadButton.GUIDE = 5; lime_ui_GamepadButton.START = 6; lime_ui_GamepadButton.LEFT_STICK = 7; lime_ui_GamepadButton.RIGHT_STICK = 8; lime_ui_GamepadButton.LEFT_SHOULDER = 9; lime_ui_GamepadButton.RIGHT_SHOULDER = 10; lime_ui_GamepadButton.DPAD_UP = 11; lime_ui_GamepadButton.DPAD_DOWN = 12; lime_ui_GamepadButton.DPAD_LEFT = 13; lime_ui_GamepadButton.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.CENTER = 0; lime_ui_JoystickHatPosition.DOWN = 4; lime_ui_JoystickHatPosition.LEFT = 8; lime_ui_JoystickHatPosition.RIGHT = 2; lime_ui_JoystickHatPosition.UP = 1; lime_ui_JoystickHatPosition.DOWN_LEFT = 12; lime_ui_JoystickHatPosition.DOWN_RIGHT = 6; lime_ui_JoystickHatPosition.UP_LEFT = 9; lime_ui_JoystickHatPosition.UP_RIGHT = 3; lime_ui_KeyCode.UNKNOWN = 0; lime_ui_KeyCode.BACKSPACE = 8; lime_ui_KeyCode.TAB = 9; lime_ui_KeyCode.RETURN = 13; lime_ui_KeyCode.ESCAPE = 27; lime_ui_KeyCode.SPACE = 32; lime_ui_KeyCode.EXCLAMATION = 33; lime_ui_KeyCode.QUOTE = 34; lime_ui_KeyCode.HASH = 35; lime_ui_KeyCode.DOLLAR = 36; lime_ui_KeyCode.PERCENT = 37; lime_ui_KeyCode.AMPERSAND = 38; lime_ui_KeyCode.SINGLE_QUOTE = 39; lime_ui_KeyCode.LEFT_PARENTHESIS = 40; lime_ui_KeyCode.RIGHT_PARENTHESIS = 41; lime_ui_KeyCode.ASTERISK = 42; lime_ui_KeyCode.PLUS = 43; lime_ui_KeyCode.COMMA = 44; lime_ui_KeyCode.MINUS = 45; lime_ui_KeyCode.PERIOD = 46; lime_ui_KeyCode.SLASH = 47; lime_ui_KeyCode.NUMBER_0 = 48; lime_ui_KeyCode.NUMBER_1 = 49; lime_ui_KeyCode.NUMBER_2 = 50; lime_ui_KeyCode.NUMBER_3 = 51; lime_ui_KeyCode.NUMBER_4 = 52; lime_ui_KeyCode.NUMBER_5 = 53; lime_ui_KeyCode.NUMBER_6 = 54; lime_ui_KeyCode.NUMBER_7 = 55; lime_ui_KeyCode.NUMBER_8 = 56; lime_ui_KeyCode.NUMBER_9 = 57; lime_ui_KeyCode.COLON = 58; lime_ui_KeyCode.SEMICOLON = 59; lime_ui_KeyCode.LESS_THAN = 60; lime_ui_KeyCode.EQUALS = 61; lime_ui_KeyCode.GREATER_THAN = 62; lime_ui_KeyCode.QUESTION = 63; lime_ui_KeyCode.AT = 64; lime_ui_KeyCode.LEFT_BRACKET = 91; lime_ui_KeyCode.BACKSLASH = 92; lime_ui_KeyCode.RIGHT_BRACKET = 93; lime_ui_KeyCode.CARET = 94; lime_ui_KeyCode.UNDERSCORE = 95; lime_ui_KeyCode.GRAVE = 96; lime_ui_KeyCode.A = 97; lime_ui_KeyCode.B = 98; lime_ui_KeyCode.C = 99; lime_ui_KeyCode.D = 100; lime_ui_KeyCode.E = 101; lime_ui_KeyCode.F = 102; lime_ui_KeyCode.G = 103; lime_ui_KeyCode.H = 104; lime_ui_KeyCode.I = 105; lime_ui_KeyCode.J = 106; lime_ui_KeyCode.K = 107; lime_ui_KeyCode.L = 108; lime_ui_KeyCode.M = 109; lime_ui_KeyCode.N = 110; lime_ui_KeyCode.O = 111; lime_ui_KeyCode.P = 112; lime_ui_KeyCode.Q = 113; lime_ui_KeyCode.R = 114; lime_ui_KeyCode.S = 115; lime_ui_KeyCode.T = 116; lime_ui_KeyCode.U = 117; lime_ui_KeyCode.V = 118; lime_ui_KeyCode.W = 119; lime_ui_KeyCode.X = 120; lime_ui_KeyCode.Y = 121; lime_ui_KeyCode.Z = 122; lime_ui_KeyCode.DELETE = 127; lime_ui_KeyCode.CAPS_LOCK = 1073741881; lime_ui_KeyCode.F1 = 1073741882; lime_ui_KeyCode.F2 = 1073741883; lime_ui_KeyCode.F3 = 1073741884; lime_ui_KeyCode.F4 = 1073741885; lime_ui_KeyCode.F5 = 1073741886; lime_ui_KeyCode.F6 = 1073741887; lime_ui_KeyCode.F7 = 1073741888; lime_ui_KeyCode.F8 = 1073741889; lime_ui_KeyCode.F9 = 1073741890; lime_ui_KeyCode.F10 = 1073741891; lime_ui_KeyCode.F11 = 1073741892; lime_ui_KeyCode.F12 = 1073741893; lime_ui_KeyCode.PRINT_SCREEN = 1073741894; lime_ui_KeyCode.SCROLL_LOCK = 1073741895; lime_ui_KeyCode.PAUSE = 1073741896; lime_ui_KeyCode.INSERT = 1073741897; lime_ui_KeyCode.HOME = 1073741898; lime_ui_KeyCode.PAGE_UP = 1073741899; lime_ui_KeyCode.END = 1073741901; lime_ui_KeyCode.PAGE_DOWN = 1073741902; lime_ui_KeyCode.RIGHT = 1073741903; lime_ui_KeyCode.LEFT = 1073741904; lime_ui_KeyCode.DOWN = 1073741905; lime_ui_KeyCode.UP = 1073741906; lime_ui_KeyCode.NUM_LOCK = 1073741907; lime_ui_KeyCode.NUMPAD_DIVIDE = 1073741908; lime_ui_KeyCode.NUMPAD_MULTIPLY = 1073741909; lime_ui_KeyCode.NUMPAD_MINUS = 1073741910; lime_ui_KeyCode.NUMPAD_PLUS = 1073741911; lime_ui_KeyCode.NUMPAD_ENTER = 1073741912; lime_ui_KeyCode.NUMPAD_1 = 1073741913; lime_ui_KeyCode.NUMPAD_2 = 1073741914; lime_ui_KeyCode.NUMPAD_3 = 1073741915; lime_ui_KeyCode.NUMPAD_4 = 1073741916; lime_ui_KeyCode.NUMPAD_5 = 1073741917; lime_ui_KeyCode.NUMPAD_6 = 1073741918; lime_ui_KeyCode.NUMPAD_7 = 1073741919; lime_ui_KeyCode.NUMPAD_8 = 1073741920; lime_ui_KeyCode.NUMPAD_9 = 1073741921; lime_ui_KeyCode.NUMPAD_0 = 1073741922; lime_ui_KeyCode.NUMPAD_PERIOD = 1073741923; lime_ui_KeyCode.APPLICATION = 1073741925; lime_ui_KeyCode.POWER = 1073741926; lime_ui_KeyCode.NUMPAD_EQUALS = 1073741927; lime_ui_KeyCode.F13 = 1073741928; lime_ui_KeyCode.F14 = 1073741929; lime_ui_KeyCode.F15 = 1073741930; lime_ui_KeyCode.F16 = 1073741931; lime_ui_KeyCode.F17 = 1073741932; lime_ui_KeyCode.F18 = 1073741933; lime_ui_KeyCode.F19 = 1073741934; lime_ui_KeyCode.F20 = 1073741935; lime_ui_KeyCode.F21 = 1073741936; lime_ui_KeyCode.F22 = 1073741937; lime_ui_KeyCode.F23 = 1073741938; lime_ui_KeyCode.F24 = 1073741939; lime_ui_KeyCode.EXECUTE = 1073741940; lime_ui_KeyCode.HELP = 1073741941; lime_ui_KeyCode.MENU = 1073741942; lime_ui_KeyCode.SELECT = 1073741943; lime_ui_KeyCode.STOP = 1073741944; lime_ui_KeyCode.AGAIN = 1073741945; lime_ui_KeyCode.UNDO = 1073741946; lime_ui_KeyCode.CUT = 1073741947; lime_ui_KeyCode.COPY = 1073741948; lime_ui_KeyCode.PASTE = 1073741949; lime_ui_KeyCode.FIND = 1073741950; lime_ui_KeyCode.MUTE = 1073741951; lime_ui_KeyCode.VOLUME_UP = 1073741952; lime_ui_KeyCode.VOLUME_DOWN = 1073741953; lime_ui_KeyCode.NUMPAD_COMMA = 1073741957; lime_ui_KeyCode.ALT_ERASE = 1073741977; lime_ui_KeyCode.SYSTEM_REQUEST = 1073741978; lime_ui_KeyCode.CANCEL = 1073741979; lime_ui_KeyCode.CLEAR = 1073741980; lime_ui_KeyCode.PRIOR = 1073741981; lime_ui_KeyCode.RETURN2 = 1073741982; lime_ui_KeyCode.SEPARATOR = 1073741983; lime_ui_KeyCode.OUT = 1073741984; lime_ui_KeyCode.OPER = 1073741985; lime_ui_KeyCode.CLEAR_AGAIN = 1073741986; lime_ui_KeyCode.CRSEL = 1073741987; lime_ui_KeyCode.EXSEL = 1073741988; lime_ui_KeyCode.NUMPAD_00 = 1073742000; lime_ui_KeyCode.NUMPAD_000 = 1073742001; lime_ui_KeyCode.THOUSAND_SEPARATOR = 1073742002; lime_ui_KeyCode.DECIMAL_SEPARATOR = 1073742003; lime_ui_KeyCode.CURRENCY_UNIT = 1073742004; lime_ui_KeyCode.CURRENCY_SUBUNIT = 1073742005; lime_ui_KeyCode.NUMPAD_LEFT_PARENTHESIS = 1073742006; lime_ui_KeyCode.NUMPAD_RIGHT_PARENTHESIS = 1073742007; lime_ui_KeyCode.NUMPAD_LEFT_BRACE = 1073742008; lime_ui_KeyCode.NUMPAD_RIGHT_BRACE = 1073742009; lime_ui_KeyCode.NUMPAD_TAB = 1073742010; lime_ui_KeyCode.NUMPAD_BACKSPACE = 1073742011; lime_ui_KeyCode.NUMPAD_A = 1073742012; lime_ui_KeyCode.NUMPAD_B = 1073742013; lime_ui_KeyCode.NUMPAD_C = 1073742014; lime_ui_KeyCode.NUMPAD_D = 1073742015; lime_ui_KeyCode.NUMPAD_E = 1073742016; lime_ui_KeyCode.NUMPAD_F = 1073742017; lime_ui_KeyCode.NUMPAD_XOR = 1073742018; lime_ui_KeyCode.NUMPAD_POWER = 1073742019; lime_ui_KeyCode.NUMPAD_PERCENT = 1073742020; lime_ui_KeyCode.NUMPAD_LESS_THAN = 1073742021; lime_ui_KeyCode.NUMPAD_GREATER_THAN = 1073742022; lime_ui_KeyCode.NUMPAD_AMPERSAND = 1073742023; lime_ui_KeyCode.NUMPAD_DOUBLE_AMPERSAND = 1073742024; lime_ui_KeyCode.NUMPAD_VERTICAL_BAR = 1073742025; lime_ui_KeyCode.NUMPAD_DOUBLE_VERTICAL_BAR = 1073742026; lime_ui_KeyCode.NUMPAD_COLON = 1073742027; lime_ui_KeyCode.NUMPAD_HASH = 1073742028; lime_ui_KeyCode.NUMPAD_SPACE = 1073742029; lime_ui_KeyCode.NUMPAD_AT = 1073742030; lime_ui_KeyCode.NUMPAD_EXCLAMATION = 1073742031; lime_ui_KeyCode.NUMPAD_MEM_STORE = 1073742032; lime_ui_KeyCode.NUMPAD_MEM_RECALL = 1073742033; lime_ui_KeyCode.NUMPAD_MEM_CLEAR = 1073742034; lime_ui_KeyCode.NUMPAD_MEM_ADD = 1073742035; lime_ui_KeyCode.NUMPAD_MEM_SUBTRACT = 1073742036; lime_ui_KeyCode.NUMPAD_MEM_MULTIPLY = 1073742037; lime_ui_KeyCode.NUMPAD_MEM_DIVIDE = 1073742038; lime_ui_KeyCode.NUMPAD_PLUS_MINUS = 1073742039; lime_ui_KeyCode.NUMPAD_CLEAR = 1073742040; lime_ui_KeyCode.NUMPAD_CLEAR_ENTRY = 1073742041; lime_ui_KeyCode.NUMPAD_BINARY = 1073742042; lime_ui_KeyCode.NUMPAD_OCTAL = 1073742043; lime_ui_KeyCode.NUMPAD_DECIMAL = 1073742044; lime_ui_KeyCode.NUMPAD_HEXADECIMAL = 1073742045; lime_ui_KeyCode.LEFT_CTRL = 1073742048; lime_ui_KeyCode.LEFT_SHIFT = 1073742049; lime_ui_KeyCode.LEFT_ALT = 1073742050; lime_ui_KeyCode.LEFT_META = 1073742051; lime_ui_KeyCode.RIGHT_CTRL = 1073742052; lime_ui_KeyCode.RIGHT_SHIFT = 1073742053; lime_ui_KeyCode.RIGHT_ALT = 1073742054; lime_ui_KeyCode.RIGHT_META = 1073742055; lime_ui_KeyCode.MODE = 1073742081; lime_ui_KeyCode.AUDIO_NEXT = 1073742082; lime_ui_KeyCode.AUDIO_PREVIOUS = 1073742083; lime_ui_KeyCode.AUDIO_STOP = 1073742084; lime_ui_KeyCode.AUDIO_PLAY = 1073742085; lime_ui_KeyCode.AUDIO_MUTE = 1073742086; lime_ui_KeyCode.MEDIA_SELECT = 1073742087; lime_ui_KeyCode.WWW = 1073742088; lime_ui_KeyCode.MAIL = 1073742089; lime_ui_KeyCode.CALCULATOR = 1073742090; lime_ui_KeyCode.COMPUTER = 1073742091; lime_ui_KeyCode.APP_CONTROL_SEARCH = 1073742092; lime_ui_KeyCode.APP_CONTROL_HOME = 1073742093; lime_ui_KeyCode.APP_CONTROL_BACK = 1073742094; lime_ui_KeyCode.APP_CONTROL_FORWARD = 1073742095; lime_ui_KeyCode.APP_CONTROL_STOP = 1073742096; lime_ui_KeyCode.APP_CONTROL_REFRESH = 1073742097; lime_ui_KeyCode.APP_CONTROL_BOOKMARKS = 1073742098; lime_ui_KeyCode.BRIGHTNESS_DOWN = 1073742099; lime_ui_KeyCode.BRIGHTNESS_UP = 1073742100; lime_ui_KeyCode.DISPLAY_SWITCH = 1073742101; lime_ui_KeyCode.BACKLIGHT_TOGGLE = 1073742102; lime_ui_KeyCode.BACKLIGHT_DOWN = 1073742103; lime_ui_KeyCode.BACKLIGHT_UP = 1073742104; lime_ui_KeyCode.EJECT = 1073742105; lime_ui_KeyCode.SLEEP = 1073742106; lime_ui_KeyModifier.NONE = 0; lime_ui_KeyModifier.LEFT_SHIFT = 1; lime_ui_KeyModifier.RIGHT_SHIFT = 2; lime_ui_KeyModifier.LEFT_CTRL = 64; lime_ui_KeyModifier.RIGHT_CTRL = 128; lime_ui_KeyModifier.LEFT_ALT = 256; lime_ui_KeyModifier.RIGHT_ALT = 512; lime_ui_KeyModifier.LEFT_META = 1024; lime_ui_KeyModifier.RIGHT_META = 2048; lime_ui_KeyModifier.NUM_LOCK = 4096; lime_ui_KeyModifier.CAPS_LOCK = 8192; lime_ui_KeyModifier.MODE = 16384; lime_ui_KeyModifier.CTRL = 192; lime_ui_KeyModifier.SHIFT = 3; lime_ui_KeyModifier.ALT = 768; lime_ui_KeyModifier.META = 3072; lime_ui_ScanCode.UNKNOWN = 0; lime_ui_ScanCode.BACKSPACE = 42; lime_ui_ScanCode.TAB = 43; lime_ui_ScanCode.RETURN = 40; lime_ui_ScanCode.ESCAPE = 41; lime_ui_ScanCode.SPACE = 44; lime_ui_ScanCode.SINGLE_QUOTE = 52; lime_ui_ScanCode.COMMA = 54; lime_ui_ScanCode.MINUS = 45; lime_ui_ScanCode.PERIOD = 55; lime_ui_ScanCode.SLASH = 56; lime_ui_ScanCode.NUMBER_0 = 39; lime_ui_ScanCode.NUMBER_1 = 30; lime_ui_ScanCode.NUMBER_2 = 31; lime_ui_ScanCode.NUMBER_3 = 32; lime_ui_ScanCode.NUMBER_4 = 33; lime_ui_ScanCode.NUMBER_5 = 34; lime_ui_ScanCode.NUMBER_6 = 35; lime_ui_ScanCode.NUMBER_7 = 36; lime_ui_ScanCode.NUMBER_8 = 37; lime_ui_ScanCode.NUMBER_9 = 38; lime_ui_ScanCode.SEMICOLON = 51; lime_ui_ScanCode.EQUALS = 46; lime_ui_ScanCode.LEFT_BRACKET = 47; lime_ui_ScanCode.BACKSLASH = 49; lime_ui_ScanCode.RIGHT_BRACKET = 48; lime_ui_ScanCode.GRAVE = 53; lime_ui_ScanCode.A = 4; lime_ui_ScanCode.B = 5; lime_ui_ScanCode.C = 6; lime_ui_ScanCode.D = 7; lime_ui_ScanCode.E = 8; lime_ui_ScanCode.F = 9; lime_ui_ScanCode.G = 10; lime_ui_ScanCode.H = 11; lime_ui_ScanCode.I = 12; lime_ui_ScanCode.J = 13; lime_ui_ScanCode.K = 14; lime_ui_ScanCode.L = 15; lime_ui_ScanCode.M = 16; lime_ui_ScanCode.N = 17; lime_ui_ScanCode.O = 18; lime_ui_ScanCode.P = 19; lime_ui_ScanCode.Q = 20; lime_ui_ScanCode.R = 21; lime_ui_ScanCode.S = 22; lime_ui_ScanCode.T = 23; lime_ui_ScanCode.U = 24; lime_ui_ScanCode.V = 25; lime_ui_ScanCode.W = 26; lime_ui_ScanCode.X = 27; lime_ui_ScanCode.Y = 28; lime_ui_ScanCode.Z = 29; lime_ui_ScanCode.DELETE = 76; lime_ui_ScanCode.CAPS_LOCK = 57; lime_ui_ScanCode.F1 = 58; lime_ui_ScanCode.F2 = 59; lime_ui_ScanCode.F3 = 60; lime_ui_ScanCode.F4 = 61; lime_ui_ScanCode.F5 = 62; lime_ui_ScanCode.F6 = 63; lime_ui_ScanCode.F7 = 64; lime_ui_ScanCode.F8 = 65; lime_ui_ScanCode.F9 = 66; lime_ui_ScanCode.F10 = 67; lime_ui_ScanCode.F11 = 68; lime_ui_ScanCode.F12 = 69; lime_ui_ScanCode.PRINT_SCREEN = 70; lime_ui_ScanCode.SCROLL_LOCK = 71; lime_ui_ScanCode.PAUSE = 72; lime_ui_ScanCode.INSERT = 73; lime_ui_ScanCode.HOME = 74; lime_ui_ScanCode.PAGE_UP = 75; lime_ui_ScanCode.END = 77; lime_ui_ScanCode.PAGE_DOWN = 78; lime_ui_ScanCode.RIGHT = 79; lime_ui_ScanCode.LEFT = 80; lime_ui_ScanCode.DOWN = 81; lime_ui_ScanCode.UP = 82; lime_ui_ScanCode.NUM_LOCK = 83; lime_ui_ScanCode.NUMPAD_DIVIDE = 84; lime_ui_ScanCode.NUMPAD_MULTIPLY = 85; lime_ui_ScanCode.NUMPAD_MINUS = 86; lime_ui_ScanCode.NUMPAD_PLUS = 87; lime_ui_ScanCode.NUMPAD_ENTER = 88; lime_ui_ScanCode.NUMPAD_1 = 89; lime_ui_ScanCode.NUMPAD_2 = 90; lime_ui_ScanCode.NUMPAD_3 = 91; lime_ui_ScanCode.NUMPAD_4 = 92; lime_ui_ScanCode.NUMPAD_5 = 93; lime_ui_ScanCode.NUMPAD_6 = 94; lime_ui_ScanCode.NUMPAD_7 = 95; lime_ui_ScanCode.NUMPAD_8 = 96; lime_ui_ScanCode.NUMPAD_9 = 97; lime_ui_ScanCode.NUMPAD_0 = 98; lime_ui_ScanCode.NUMPAD_PERIOD = 99; lime_ui_ScanCode.APPLICATION = 101; lime_ui_ScanCode.POWER = 102; lime_ui_ScanCode.NUMPAD_EQUALS = 103; lime_ui_ScanCode.F13 = 104; lime_ui_ScanCode.F14 = 105; lime_ui_ScanCode.F15 = 106; lime_ui_ScanCode.F16 = 107; lime_ui_ScanCode.F17 = 108; lime_ui_ScanCode.F18 = 109; lime_ui_ScanCode.F19 = 110; lime_ui_ScanCode.F20 = 111; lime_ui_ScanCode.F21 = 112; lime_ui_ScanCode.F22 = 113; lime_ui_ScanCode.F23 = 114; lime_ui_ScanCode.F24 = 115; lime_ui_ScanCode.EXECUTE = 116; lime_ui_ScanCode.HELP = 117; lime_ui_ScanCode.MENU = 118; lime_ui_ScanCode.SELECT = 119; lime_ui_ScanCode.STOP = 120; lime_ui_ScanCode.AGAIN = 121; lime_ui_ScanCode.UNDO = 122; lime_ui_ScanCode.CUT = 123; lime_ui_ScanCode.COPY = 124; lime_ui_ScanCode.PASTE = 125; lime_ui_ScanCode.FIND = 126; lime_ui_ScanCode.MUTE = 127; lime_ui_ScanCode.VOLUME_UP = 128; lime_ui_ScanCode.VOLUME_DOWN = 129; lime_ui_ScanCode.NUMPAD_COMMA = 133; lime_ui_ScanCode.ALT_ERASE = 153; lime_ui_ScanCode.SYSTEM_REQUEST = 154; lime_ui_ScanCode.CANCEL = 155; lime_ui_ScanCode.CLEAR = 156; lime_ui_ScanCode.PRIOR = 157; lime_ui_ScanCode.RETURN2 = 158; lime_ui_ScanCode.SEPARATOR = 159; lime_ui_ScanCode.OUT = 160; lime_ui_ScanCode.OPER = 161; lime_ui_ScanCode.CLEAR_AGAIN = 162; lime_ui_ScanCode.CRSEL = 163; lime_ui_ScanCode.EXSEL = 164; lime_ui_ScanCode.NUMPAD_00 = 176; lime_ui_ScanCode.NUMPAD_000 = 177; lime_ui_ScanCode.THOUSAND_SEPARATOR = 178; lime_ui_ScanCode.DECIMAL_SEPARATOR = 179; lime_ui_ScanCode.CURRENCY_UNIT = 180; lime_ui_ScanCode.CURRENCY_SUBUNIT = 181; lime_ui_ScanCode.NUMPAD_LEFT_PARENTHESIS = 182; lime_ui_ScanCode.NUMPAD_RIGHT_PARENTHESIS = 183; lime_ui_ScanCode.NUMPAD_LEFT_BRACE = 184; lime_ui_ScanCode.NUMPAD_RIGHT_BRACE = 185; lime_ui_ScanCode.NUMPAD_TAB = 186; lime_ui_ScanCode.NUMPAD_BACKSPACE = 187; lime_ui_ScanCode.NUMPAD_A = 188; lime_ui_ScanCode.NUMPAD_B = 189; lime_ui_ScanCode.NUMPAD_C = 190; lime_ui_ScanCode.NUMPAD_D = 191; lime_ui_ScanCode.NUMPAD_E = 192; lime_ui_ScanCode.NUMPAD_F = 193; lime_ui_ScanCode.NUMPAD_XOR = 194; lime_ui_ScanCode.NUMPAD_POWER = 195; lime_ui_ScanCode.NUMPAD_PERCENT = 196; lime_ui_ScanCode.NUMPAD_LESS_THAN = 197; lime_ui_ScanCode.NUMPAD_GREATER_THAN = 198; lime_ui_ScanCode.NUMPAD_AMPERSAND = 199; lime_ui_ScanCode.NUMPAD_DOUBLE_AMPERSAND = 200; lime_ui_ScanCode.NUMPAD_VERTICAL_BAR = 201; lime_ui_ScanCode.NUMPAD_DOUBLE_VERTICAL_BAR = 202; lime_ui_ScanCode.NUMPAD_COLON = 203; lime_ui_ScanCode.NUMPAD_HASH = 204; lime_ui_ScanCode.NUMPAD_SPACE = 205; lime_ui_ScanCode.NUMPAD_AT = 206; lime_ui_ScanCode.NUMPAD_EXCLAMATION = 207; lime_ui_ScanCode.NUMPAD_MEM_STORE = 208; lime_ui_ScanCode.NUMPAD_MEM_RECALL = 209; lime_ui_ScanCode.NUMPAD_MEM_CLEAR = 210; lime_ui_ScanCode.NUMPAD_MEM_ADD = 211; lime_ui_ScanCode.NUMPAD_MEM_SUBTRACT = 212; lime_ui_ScanCode.NUMPAD_MEM_MULTIPLY = 213; lime_ui_ScanCode.NUMPAD_MEM_DIVIDE = 214; lime_ui_ScanCode.NUMPAD_PLUS_MINUS = 215; lime_ui_ScanCode.NUMPAD_CLEAR = 216; lime_ui_ScanCode.NUMPAD_CLEAR_ENTRY = 217; lime_ui_ScanCode.NUMPAD_BINARY = 218; lime_ui_ScanCode.NUMPAD_OCTAL = 219; lime_ui_ScanCode.NUMPAD_DECIMAL = 220; lime_ui_ScanCode.NUMPAD_HEXADECIMAL = 221; lime_ui_ScanCode.LEFT_CTRL = 224; lime_ui_ScanCode.LEFT_SHIFT = 225; lime_ui_ScanCode.LEFT_ALT = 226; lime_ui_ScanCode.LEFT_META = 227; lime_ui_ScanCode.RIGHT_CTRL = 228; lime_ui_ScanCode.RIGHT_SHIFT = 229; lime_ui_ScanCode.RIGHT_ALT = 230; lime_ui_ScanCode.RIGHT_META = 231; lime_ui_ScanCode.MODE = 257; lime_ui_ScanCode.AUDIO_NEXT = 258; lime_ui_ScanCode.AUDIO_PREVIOUS = 259; lime_ui_ScanCode.AUDIO_STOP = 260; lime_ui_ScanCode.AUDIO_PLAY = 261; lime_ui_ScanCode.AUDIO_MUTE = 262; lime_ui_ScanCode.MEDIA_SELECT = 263; lime_ui_ScanCode.WWW = 264; lime_ui_ScanCode.MAIL = 265; lime_ui_ScanCode.CALCULATOR = 266; lime_ui_ScanCode.COMPUTER = 267; lime_ui_ScanCode.APP_CONTROL_SEARCH = 268; lime_ui_ScanCode.APP_CONTROL_HOME = 269; lime_ui_ScanCode.APP_CONTROL_BACK = 270; lime_ui_ScanCode.APP_CONTROL_FORWARD = 271; lime_ui_ScanCode.APP_CONTROL_STOP = 272; lime_ui_ScanCode.APP_CONTROL_REFRESH = 273; lime_ui_ScanCode.APP_CONTROL_BOOKMARKS = 274; lime_ui_ScanCode.BRIGHTNESS_DOWN = 275; lime_ui_ScanCode.BRIGHTNESS_UP = 276; lime_ui_ScanCode.DISPLAY_SWITCH = 277; lime_ui_ScanCode.BACKLIGHT_TOGGLE = 278; lime_ui_ScanCode.BACKLIGHT_DOWN = 279; lime_ui_ScanCode.BACKLIGHT_UP = 280; lime_ui_ScanCode.EJECT = 281; lime_ui_ScanCode.SLEEP = 282; lime_ui_Touch.onCancel = new lime_app__$Event_$lime_$ui_$Touch_$Void(); 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_Float32Array.BYTES_PER_ELEMENT = 4; lime_utils_Float64Array.BYTES_PER_ELEMENT = 8; lime_utils_Int16Array.BYTES_PER_ELEMENT = 2; lime_utils_Int32Array.BYTES_PER_ELEMENT = 4; lime_utils_Int8Array.BYTES_PER_ELEMENT = 1; lime_utils_Log.throwErrors = true; lime_utils_LogLevel.NONE = 0; lime_utils_LogLevel.ERROR = 1; lime_utils_LogLevel.WARN = 2; lime_utils_LogLevel.INFO = 3; lime_utils_LogLevel.DEBUG = 4; lime_utils_LogLevel.VERBOSE = 5; lime_utils_UInt16Array.BYTES_PER_ELEMENT = 2; lime_utils_UInt32Array.BYTES_PER_ELEMENT = 4; lime_utils_UInt8Array.BYTES_PER_ELEMENT = 1; lime_utils_UInt8ClampedArray.BYTES_PER_ELEMENT = 1; openfl_Lib.__lastTimerID = 0; openfl_Lib.__sentWarnings = new haxe_ds_StringMap(); openfl_Lib.__timers = new haxe_ds_IntMap(); openfl_Lib.__registeredClassAliases = new haxe_ds_StringMap(); openfl__$Vector_IVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl__$Vector_BoolVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl__$Vector_FloatVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl__$Vector_FunctionVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl__$Vector_IntVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl__$Vector_ObjectVector.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { concat : { SuppressWarnings : ["checkstyle:Dynamic"]}, toJSON : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_Application.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display_BlendMode.ADD = 0; openfl_display_BlendMode.ALPHA = 1; openfl_display_BlendMode.DARKEN = 2; openfl_display_BlendMode.DIFFERENCE = 3; openfl_display_BlendMode.ERASE = 4; openfl_display_BlendMode.HARDLIGHT = 5; openfl_display_BlendMode.INVERT = 6; openfl_display_BlendMode.LAYER = 7; openfl_display_BlendMode.LIGHTEN = 8; openfl_display_BlendMode.MULTIPLY = 9; openfl_display_BlendMode.NORMAL = 10; openfl_display_BlendMode.OVERLAY = 11; openfl_display_BlendMode.SCREEN = 12; openfl_display_BlendMode.SHADER = 13; openfl_display_BlendMode.SUBTRACT = 14; openfl_display_DisplayObjectRenderer.__meta__ = { fields : { __context : { SuppressWarnings : ["checkstyle:Dynamic"]}, __type : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_CairoRenderer.__meta__ = { fields : { cairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, __matrix3 : { SuppressWarnings : ["checkstyle:Dynamic"]}, applyMatrix : { SuppressWarnings : ["checkstyle:Dynamic"]}, __setBlendModeCairo : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_CanvasRenderer.__meta__ = { fields : { context : { SuppressWarnings : ["checkstyle:Dynamic"]}, applySmoothing : { SuppressWarnings : ["checkstyle:Dynamic"]}, setTransform : { SuppressWarnings : ["checkstyle:Dynamic"]}, __setBlendModeContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_CapsStyle.NONE = 0; openfl_display_CapsStyle.ROUND = 1; openfl_display_CapsStyle.SQUARE = 2; openfl_display_DOMElement.__meta__ = { fields : { __element : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_DOMRenderer.__meta__ = { fields : { element : { SuppressWarnings : ["checkstyle:Dynamic"]}, applyStyle : { SuppressWarnings : ["checkstyle:Dynamic"]}, clearStyle : { SuppressWarnings : ["checkstyle:Dynamic"]}, _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_GradientType.LINEAR = 0; openfl_display_GradientType.RADIAL = 1; openfl_display_Graphics.__meta__ = { fields : { overrideBlendMode : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_display_Graphics.maxTextureHeight = null; openfl_display_Graphics.maxTextureWidth = null; openfl_display_GraphicsPath.SIN45 = 0.70710678118654752440084436210485; openfl_display_GraphicsPath.TAN22 = 0.4142135623730950488016887242097; openfl_display_GraphicsPathWinding.EVEN_ODD = 0; openfl_display_GraphicsPathWinding.NON_ZERO = 1; openfl_display_InterpolationMethod.LINEAR_RGB = 0; openfl_display_InterpolationMethod.RGB = 1; openfl_display_JointStyle.BEVEL = 0; openfl_display_JointStyle.MITER = 1; openfl_display_JointStyle.ROUND = 2; openfl_display_LineScaleMode.HORIZONTAL = 0; openfl_display_LineScaleMode.NONE = 1; openfl_display_LineScaleMode.NORMAL = 2; openfl_display_LineScaleMode.VERTICAL = 3; openfl_display_Loader.__meta__ = { fields : { BitmapData_onError : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_LoaderInfo.__meta__ = { statics : { create : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}, fields : { parameters : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_LoaderInfo.__rootURL = js_Browser.get_supported() ? window.document.URL : ""; openfl_display_OpenGLRenderer.__meta__ = { fields : { gl : { SuppressWarnings : ["checkstyle:Dynamic"]}, __gl : { SuppressWarnings : ["checkstyle:Dynamic"]}, __matrix : { SuppressWarnings : ["checkstyle:Dynamic"]}, __projection : { SuppressWarnings : ["checkstyle:Dynamic"]}, __projectionFlipped : { SuppressWarnings : ["checkstyle:Dynamic"]}, getMatrix : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_OpenGLRenderer.__alphaValue = [1]; openfl_display_OpenGLRenderer.__colorMultipliersValue = [0,0,0,0]; openfl_display_OpenGLRenderer.__colorOffsetsValue = [0,0,0,0]; openfl_display_OpenGLRenderer.__defaultColorMultipliersValue = [1,1,1,1]; openfl_display_OpenGLRenderer.__emptyColorValue = [0,0,0,0]; openfl_display_OpenGLRenderer.__emptyAlphaValue = [1]; openfl_display_OpenGLRenderer.__hasColorTransformValue = [false]; openfl_display_OpenGLRenderer.__scissorRectangle = new openfl_geom_Rectangle(); openfl_display_OpenGLRenderer.__textureSizeValue = [0,0]; openfl_display_PixelSnapping.ALWAYS = 0; openfl_display_PixelSnapping.AUTO = 1; openfl_display_PixelSnapping.NEVER = 2; openfl_display_Preloader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { onComplete : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_DefaultPreloader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display_ShaderInput.__meta__ = { fields : { index : { SuppressWarnings : ["checkstyle:Dynamic"]}, name : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_display_ShaderParameter.__meta__ = { fields : { index : { SuppressWarnings : ["checkstyle:Dynamic"]}, name : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_display_ShaderParameterType.BOOL = 0; openfl_display_ShaderParameterType.BOOL2 = 1; openfl_display_ShaderParameterType.BOOL3 = 2; openfl_display_ShaderParameterType.BOOL4 = 3; openfl_display_ShaderParameterType.FLOAT = 4; openfl_display_ShaderParameterType.FLOAT2 = 5; openfl_display_ShaderParameterType.FLOAT3 = 6; openfl_display_ShaderParameterType.FLOAT4 = 7; openfl_display_ShaderParameterType.INT = 8; openfl_display_ShaderParameterType.INT2 = 9; openfl_display_ShaderParameterType.INT3 = 10; openfl_display_ShaderParameterType.INT4 = 11; openfl_display_ShaderParameterType.MATRIX2X2 = 12; openfl_display_ShaderParameterType.MATRIX2X3 = 13; openfl_display_ShaderParameterType.MATRIX2X4 = 14; openfl_display_ShaderParameterType.MATRIX3X2 = 15; openfl_display_ShaderParameterType.MATRIX3X3 = 16; openfl_display_ShaderParameterType.MATRIX3X4 = 17; openfl_display_ShaderParameterType.MATRIX4X2 = 18; openfl_display_ShaderParameterType.MATRIX4X3 = 19; openfl_display_ShaderParameterType.MATRIX4X4 = 20; openfl_display_ShaderPrecision.FAST = 0; openfl_display_ShaderPrecision.FULL = 1; openfl_display_SpreadMethod.PAD = 0; openfl_display_SpreadMethod.REFLECT = 1; openfl_display_SpreadMethod.REPEAT = 2; openfl_display_Stage.__meta__ = { fields : { __broadcastEvent : { SuppressWarnings : ["checkstyle:Dynamic"]}, __dispatchEvent : { SuppressWarnings : [["checkstyle:Dynamic","checkstyle:LeftCurly"]]}, __dispatchStack : { SuppressWarnings : [["checkstyle:Dynamic","checkstyle:LeftCurly"]]}, __dispatchTarget : { SuppressWarnings : ["checkstyle:Dynamic"]}, __handleError : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display_StageAlign.BOTTOM = 0; openfl_display_StageAlign.BOTTOM_LEFT = 1; openfl_display_StageAlign.BOTTOM_RIGHT = 2; openfl_display_StageAlign.LEFT = 3; openfl_display_StageAlign.RIGHT = 4; openfl_display_StageAlign.TOP = 5; openfl_display_StageAlign.TOP_LEFT = 6; openfl_display_StageAlign.TOP_RIGHT = 7; openfl_display_StageDisplayState.FULL_SCREEN = 0; openfl_display_StageDisplayState.FULL_SCREEN_INTERACTIVE = 1; openfl_display_StageDisplayState.NORMAL = 2; openfl_display_StageQuality.BEST = 0; openfl_display_StageQuality.HIGH = 1; openfl_display_StageQuality.LOW = 2; openfl_display_StageQuality.MEDIUM = 3; openfl_display_StageScaleMode.EXACT_FIT = 0; openfl_display_StageScaleMode.NO_BORDER = 1; openfl_display_StageScaleMode.NO_SCALE = 2; openfl_display_StageScaleMode.SHOW_ALL = 3; openfl_display_Tile.__meta__ = { fields : { data : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$Tileset_TileData.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display_TriangleCulling.NEGATIVE = 0; openfl_display_TriangleCulling.NONE = 1; openfl_display_TriangleCulling.POSITIVE = 2; openfl_display_Window.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { _ : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$internal_AbstractNoise.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CairoBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CairoDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CairoGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CairoShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CairoTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CairoTilemap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { renderTileContainer : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$internal_CanvasBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CanvasDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DrawCommandBuffer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { o : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$internal_DrawCommandBuffer.empty = new openfl_display__$internal_DrawCommandBuffer(); openfl_display__$internal_CanvasGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { windingRule : { SuppressWarnings : ["checkstyle:Dynamic"]}, createBitmapFill : { SuppressWarnings : ["checkstyle:Dynamic"]}, createGradientPattern : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$internal_CanvasGraphics.SIN45 = 0.70710678118654752440084436210485; openfl_display__$internal_CanvasGraphics.TAN22 = 0.4142135623730950488016887242097; openfl_display__$internal_CanvasGraphics.fillCommands = new openfl_display__$internal_DrawCommandBuffer(); openfl_display__$internal_CanvasGraphics.strokeCommands = new openfl_display__$internal_DrawCommandBuffer(); openfl_display__$internal_CanvasShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CanvasTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_CanvasTilemap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { renderTileContainer : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$internal_CanvasVideo.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DBuffer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DBuffer.MAX_INDEX_BUFFER_LENGTH = 65535; openfl_display__$internal_Context3DBuffer.MAX_QUADS_PER_INDEX_BUFFER = 10922; openfl_display__$internal_Context3DBuffer.MAX_QUAD_INDEX_BUFFER_LENGTH = 65532; openfl_display__$internal_Context3DDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DGraphics.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DGraphics.blankBitmapData = new openfl_display_BitmapData(1,1,false,0); openfl_display__$internal_Context3DGraphics.tempColorTransform = new openfl_geom_ColorTransform(1,1,1,1,0,0,0,0); openfl_display__$internal_Context3DMaskShader.opaqueBitmapData = new openfl_display_BitmapData(1,1,false,0); openfl_display__$internal_Context3DShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DTilemap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DVideo.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_Context3DVideo.__textureSizeValue = [0,0.]; openfl_display__$internal_DOMBitmap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DOMDisplayObject.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DOMShape.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DOMTextField.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DOMTextField.__regexColor = new EReg("color=(\"#([^\"]+)\"|'#([^']+)')","i"); openfl_display__$internal_DOMTextField.__regexFace = new EReg("face=(\"([^\"]+)\"|'([^']+)')","i"); openfl_display__$internal_DOMTextField.__regexFont = new EReg("]+)>","gi"); openfl_display__$internal_DOMTextField.__regexCloseFont = new EReg("","gi"); openfl_display__$internal_DOMTextField.__regexSize = new EReg("size=(\"([^\"]+)\"|'([^']+)')","i"); openfl_display__$internal_DOMTilemap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DOMVideo.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_DrawCommandReader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { obj : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display__$internal_FlashRenderer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_FlashTilemap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_FlashTilemap.alphaColorTransform = new openfl_geom_ColorTransform(); openfl_display__$internal_FlashTilemap.bitmap = new openfl_display_Bitmap(); openfl_display__$internal_FlashTilemap.destPoint = new openfl_geom_Point(); openfl_display__$internal_FlashTilemap.sourceRect = new openfl_geom_Rectangle(); openfl_display__$internal_PerlinNoise.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { P : { SuppressWarnings : ["checkstyle:ConstantName"]}}}; openfl_display__$internal_PerlinNoise.P = [151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]; openfl_display__$internal_SamplerState.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display__$internal_ShaderBuffer.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { overrideIntValues : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display3D_Context3D.supportsVideoTexture = true; openfl_display3D_Context3D.__glDepthStencil = -1; openfl_display3D_Context3D.__glMaxTextureMaxAnisotropy = -1; openfl_display3D_Context3D.__glMaxViewportDims = -1; openfl_display3D_Context3D.__glMemoryCurrentAvailable = -1; openfl_display3D_Context3D.__glMemoryTotalAvailable = -1; openfl_display3D_Context3D.__glTextureMaxAnisotropy = -1; openfl_display3D_Context3DBlendFactor.DESTINATION_ALPHA = 0; openfl_display3D_Context3DBlendFactor.DESTINATION_COLOR = 1; openfl_display3D_Context3DBlendFactor.ONE = 2; openfl_display3D_Context3DBlendFactor.ONE_MINUS_DESTINATION_ALPHA = 3; openfl_display3D_Context3DBlendFactor.ONE_MINUS_DESTINATION_COLOR = 4; openfl_display3D_Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA = 5; openfl_display3D_Context3DBlendFactor.ONE_MINUS_SOURCE_COLOR = 6; openfl_display3D_Context3DBlendFactor.SOURCE_ALPHA = 7; openfl_display3D_Context3DBlendFactor.SOURCE_COLOR = 8; openfl_display3D_Context3DBlendFactor.ZERO = 9; openfl_display3D_Context3DBufferUsage.DYNAMIC_DRAW = 0; openfl_display3D_Context3DBufferUsage.STATIC_DRAW = 1; openfl_display3D_Context3DCompareMode.ALWAYS = 0; openfl_display3D_Context3DCompareMode.EQUAL = 1; openfl_display3D_Context3DCompareMode.GREATER = 2; openfl_display3D_Context3DCompareMode.GREATER_EQUAL = 3; openfl_display3D_Context3DCompareMode.LESS = 4; openfl_display3D_Context3DCompareMode.LESS_EQUAL = 5; openfl_display3D_Context3DCompareMode.NEVER = 6; openfl_display3D_Context3DCompareMode.NOT_EQUAL = 7; openfl_display3D_Context3DMipFilter.MIPLINEAR = 0; openfl_display3D_Context3DMipFilter.MIPNEAREST = 1; openfl_display3D_Context3DMipFilter.MIPNONE = 2; openfl_display3D_Context3DProfile.BASELINE = 0; openfl_display3D_Context3DProfile.BASELINE_CONSTRAINED = 1; openfl_display3D_Context3DProfile.BASELINE_EXTENDED = 2; openfl_display3D_Context3DProfile.STANDARD = 3; openfl_display3D_Context3DProfile.STANDARD_CONSTRAINED = 4; openfl_display3D_Context3DProfile.STANDARD_EXTENDED = 5; openfl_display3D_Context3DProgramFormat.AGAL = 0; openfl_display3D_Context3DProgramFormat.GLSL = 1; openfl_display3D_Context3DProgramType.FRAGMENT = 0; openfl_display3D_Context3DProgramType.VERTEX = 1; openfl_display3D_Context3DRenderMode.AUTO = 0; openfl_display3D_Context3DRenderMode.SOFTWARE = 1; openfl_display3D_Context3DStencilAction.DECREMENT_SATURATE = 0; openfl_display3D_Context3DStencilAction.DECREMENT_WRAP = 1; openfl_display3D_Context3DStencilAction.INCREMENT_SATURATE = 2; openfl_display3D_Context3DStencilAction.INCREMENT_WRAP = 3; openfl_display3D_Context3DStencilAction.INVERT = 4; openfl_display3D_Context3DStencilAction.KEEP = 5; openfl_display3D_Context3DStencilAction.SET = 6; openfl_display3D_Context3DStencilAction.ZERO = 7; openfl_display3D_Context3DTextureFilter.ANISOTROPIC16X = 0; openfl_display3D_Context3DTextureFilter.ANISOTROPIC2X = 1; openfl_display3D_Context3DTextureFilter.ANISOTROPIC4X = 2; openfl_display3D_Context3DTextureFilter.ANISOTROPIC8X = 3; openfl_display3D_Context3DTextureFilter.LINEAR = 4; openfl_display3D_Context3DTextureFilter.NEAREST = 5; openfl_display3D_Context3DTextureFormat.BGR_PACKED = 0; openfl_display3D_Context3DTextureFormat.BGRA = 1; openfl_display3D_Context3DTextureFormat.BGRA_PACKED = 2; openfl_display3D_Context3DTextureFormat.COMPRESSED = 3; openfl_display3D_Context3DTextureFormat.COMPRESSED_ALPHA = 4; openfl_display3D_Context3DTextureFormat.RGBA_HALF_FLOAT = 5; openfl_display3D_Context3DTriangleFace.BACK = 0; openfl_display3D_Context3DTriangleFace.FRONT = 1; openfl_display3D_Context3DTriangleFace.FRONT_AND_BACK = 2; openfl_display3D_Context3DTriangleFace.NONE = 3; openfl_display3D_Context3DVertexBufferFormat.BYTES_4 = 0; openfl_display3D_Context3DVertexBufferFormat.FLOAT_1 = 1; openfl_display3D_Context3DVertexBufferFormat.FLOAT_2 = 2; openfl_display3D_Context3DVertexBufferFormat.FLOAT_3 = 3; openfl_display3D_Context3DVertexBufferFormat.FLOAT_4 = 4; openfl_display3D_Context3DWrapMode.CLAMP = 0; openfl_display3D_Context3DWrapMode.CLAMP_U_REPEAT_V = 1; openfl_display3D_Context3DWrapMode.REPEAT = 2; openfl_display3D_Context3DWrapMode.REPEAT_U_CLAMP_V = 3; openfl_display3D_Uniform.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D_UniformMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal_AGALConverter.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal_AGALConverter.limitedProfile = true; openfl_display3D__$internal__$AGALConverter_DestRegister.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal_RegisterMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal__$AGALConverter_SamplerRegister.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal__$AGALConverter_SourceRegister.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal_ATFReader.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D__$internal_Context3DState.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_display3D_textures_TextureBase.__meta__ = { fields : { __textureContext : { SuppressWarnings : ["checkstyle:Dynamic"]}, __getGLFramebuffer : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_display3D_textures_TextureBase.__supportsBGRA = null; openfl_display3D_textures_Texture.__lowMemoryMode = false; 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.CLEAR = "clear"; openfl_events_Event.CLOSE = "close"; openfl_events_Event.COMPLETE = "complete"; openfl_events_Event.CONNECT = "connect"; openfl_events_Event.CONTEXT3D_CREATE = "context3DCreate"; openfl_events_Event.COPY = "copy"; openfl_events_Event.CUT = "cut"; openfl_events_Event.DEACTIVATE = "deactivate"; openfl_events_Event.ENTER_FRAME = "enterFrame"; openfl_events_Event.EXIT_FRAME = "exitFrame"; openfl_events_Event.FRAME_CONSTRUCTED = "frameConstructed"; openfl_events_Event.FRAME_LABEL = "frameLabel"; openfl_events_Event.FULLSCREEN = "fullScreen"; openfl_events_Event.ID3 = "id3"; openfl_events_Event.INIT = "init"; openfl_events_Event.MOUSE_LEAVE = "mouseLeave"; openfl_events_Event.OPEN = "open"; openfl_events_Event.PASTE = "paste"; 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.SELECT_ALL = "selectAll"; 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.TEXTURE_READY = "textureReady"; openfl_events_Event.UNLOAD = "unload"; openfl_events_AccelerometerEvent.UPDATE = "update"; openfl_events_ActivityEvent.ACTIVITY = "activity"; openfl_events_TextEvent.LINK = "link"; openfl_events_TextEvent.TEXT_INPUT = "textInput"; openfl_events_ErrorEvent.ERROR = "error"; openfl_events_AsyncErrorEvent.ASYNC_ERROR = "asyncError"; openfl_events__$EventDispatcher_DispatchIterator.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_events__$EventDispatcher_Listener.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; 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.RELEASE_OUTSIDE = "releaseOutside"; 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_RenderEvent.CLEAR_DOM = "clearDOM"; openfl_events_RenderEvent.RENDER_CAIRO = "renderCairo"; openfl_events_RenderEvent.RENDER_CANVAS = "renderCanvas"; openfl_events_RenderEvent.RENDER_DOM = "renderDOM"; openfl_events_RenderEvent.RENDER_OPENGL = "renderOpenGL"; openfl_events_SecurityErrorEvent.SECURITY_ERROR = "securityError"; openfl_events_TouchEvent.__meta__ = { fields : { delta : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; 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_events_UncaughtErrorEvent.UNCAUGHT_ERROR = "uncaughtError"; openfl_filters_BlurFilter.__blurShader = new openfl_filters__$BlurFilter_BlurShader(); openfl_filters_GlowFilter.__invertAlphaShader = new openfl_filters__$GlowFilter_InvertAlphaShader(); openfl_filters_GlowFilter.__blurAlphaShader = new openfl_filters__$GlowFilter_BlurAlphaShader(); openfl_filters_GlowFilter.__combineShader = new openfl_filters__$GlowFilter_CombineShader(); openfl_filters_GlowFilter.__innerCombineShader = new openfl_filters__$GlowFilter_InnerCombineShader(); openfl_filters_GlowFilter.__combineKnockoutShader = new openfl_filters__$GlowFilter_CombineKnockoutShader(); openfl_filters_GlowFilter.__innerCombineKnockoutShader = new openfl_filters__$GlowFilter_InnerCombineKnockoutShader(); openfl_filters_ShaderFilter.__meta__ = { fields : { blendMode : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_geom_Matrix3D.__meta__ = { statics : { create2D : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, createABCD : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, createOrtho : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_geom_Orientation3D.AXIS_ANGLE = 0; openfl_geom_Orientation3D.EULER_ANGLES = 1; openfl_geom_Orientation3D.QUATERNION = 2; openfl_media_SoundTransform.__meta__ = { fields : { clone : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_media_SoundMixer.MAX_ACTIVE_CHANNELS = 32; openfl_media_SoundMixer.__soundChannels = []; openfl_media_SoundMixer.__soundTransform = new openfl_media_SoundTransform(); openfl_media_Video.VERTEX_BUFFER_STRIDE = 5; openfl_net_NetConnection.__meta__ = { statics : { CONNECT_SUCCESS : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_net_NetConnection.CONNECT_SUCCESS = "NetConnection.Connect.Success"; openfl_net_NetStream.__meta__ = { fields : { audioCodec : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, decodedFrames : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, speed : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, requestVideoStatus : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_net_ObjectEncoding.AMF0 = 0; openfl_net_ObjectEncoding.AMF3 = 3; openfl_net_ObjectEncoding.HXSF = 10; openfl_net_ObjectEncoding.JSON = 12; openfl_net_ObjectEncoding.DEFAULT = 10; openfl_net_SharedObjectFlushStatus.FLUSHED = 0; openfl_net_SharedObjectFlushStatus.PENDING = 1; openfl_net_URLLoaderDataFormat.BINARY = 0; openfl_net_URLLoaderDataFormat.TEXT = 1; openfl_net_URLLoaderDataFormat.VARIABLES = 2; openfl_net_URLRequestDefaults.followRedirects = true; openfl_net_URLRequestDefaults.idleTimeout = 0; openfl_net_URLRequestDefaults.manageCookies = true; openfl_sensors_Accelerometer.currentX = 0.0; openfl_sensors_Accelerometer.currentY = 1.0; openfl_sensors_Accelerometer.currentZ = 0.0; openfl_sensors_Accelerometer.defaultInterval = 34; openfl_sensors_Accelerometer.initialized = false; openfl_sensors_Accelerometer.supported = false; openfl_system_ApplicationDomain.currentDomain = new openfl_system_ApplicationDomain(null); openfl_system_SecurityDomain.__meta__ = { obj : { SuppressWarnings : ["checkstyle:UnnecessaryConstructor"]}}; openfl_system_SecurityDomain.currentDomain = new openfl_system_SecurityDomain(); openfl_system_System.useCodePage = false; openfl_text_AntiAliasType.ADVANCED = 0; openfl_text_AntiAliasType.NORMAL = 1; openfl_text_FontStyle.BOLD = 0; openfl_text_FontStyle.BOLD_ITALIC = 1; openfl_text_FontStyle.ITALIC = 2; openfl_text_FontStyle.REGULAR = 3; openfl_text_FontType.DEVICE = 0; openfl_text_FontType.EMBEDDED = 1; openfl_text_FontType.EMBEDDED_CFF = 2; openfl_text_GridFitType.NONE = 0; openfl_text_GridFitType.PIXEL = 1; openfl_text_GridFitType.SUBPIXEL = 2; openfl_text_StyleSheet.__supportedStyles = ["color","display","font-family","font-size","font-style","font-weight","kerning","leading","letter-spacing","margin-left","margin-right","text-align","text-decoration","text-indent"]; openfl_text_TextFieldAutoSize.CENTER = 0; openfl_text_TextFieldAutoSize.LEFT = 1; openfl_text_TextFieldAutoSize.NONE = 2; openfl_text_TextFieldAutoSize.RIGHT = 3; openfl_text_TextFieldType.DYNAMIC = 0; openfl_text_TextFieldType.INPUT = 1; openfl_text_TextFormat.__meta__ = { fields : { clone : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; openfl_text_TextFormatAlign.CENTER = 0; openfl_text_TextFormatAlign.END = 1; openfl_text_TextFormatAlign.JUSTIFY = 2; openfl_text_TextFormatAlign.LEFT = 3; openfl_text_TextFormatAlign.RIGHT = 4; openfl_text_TextFormatAlign.START = 5; openfl_text__$internal_CacheMeasurement.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_text__$internal_GlyphPosition.__meta__ = { obj : { SuppressWarnings : [["checkstyle:FieldDocComment","checkstyle:Dynamic"]]}}; openfl_text__$internal_HTMLParser.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_text__$internal_HTMLParser.__regexAlign = new EReg("align\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexBreakTag = new EReg("","gi"); openfl_text__$internal_HTMLParser.__regexBlockIndent = new EReg("blockindent\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexClass = new EReg("class\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexColor = new EReg("color\\s?=\\s?(\"#([^\"]+)\"|'#([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexEntities = [new EReg(""","g"),new EReg("'","g"),new EReg("&","g"),new EReg("<","g"),new EReg(">","g"),new EReg(" ","g")]; openfl_text__$internal_HTMLParser.__regexCharEntity = new EReg("&#(?:([0-9]+)|(x[0-9a-fA-F]+));","g"); openfl_text__$internal_HTMLParser.__regexFace = new EReg("face\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexHTMLTag = new EReg("<.*?>","g"); openfl_text__$internal_HTMLParser.__regexHref = new EReg("href\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexIndent = new EReg(" indent\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexLeading = new EReg("leading\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexLeftMargin = new EReg("leftmargin\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexRightMargin = new EReg("rightmargin\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexSize = new EReg("size\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_HTMLParser.__regexTabStops = new EReg("tabstops\\s?=\\s?(\"([^\"]+)\"|'([^']+)')","i"); openfl_text__$internal_ShapeCache.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_text__$internal_TextEngine.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { __cairoFont : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_text__$internal_TextEngine.GUTTER = 2; openfl_text__$internal_TextEngine.UTF8_TAB = 9; openfl_text__$internal_TextEngine.UTF8_ENDLINE = 10; openfl_text__$internal_TextEngine.UTF8_SPACE = 32; openfl_text__$internal_TextEngine.UTF8_HYPHEN = 45; openfl_text__$internal_TextLayout.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { glyphs : { SuppressWarnings : ["checkstyle:Dynamic"]}, __handle : { SuppressWarnings : ["checkstyle:Dynamic"]}, __hbBuffer : { SuppressWarnings : ["checkstyle:Dynamic"]}, __hbFont : { SuppressWarnings : ["checkstyle:Dynamic"]}, get_glyphs : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_text__$internal_TextLayout.FT_LOAD_DEFAULT = 0; openfl_text__$internal_TextLayout.FT_LOAD_NO_SCALE = 1; openfl_text__$internal_TextLayout.FT_LOAD_NO_HINTING = 2; openfl_text__$internal_TextLayout.FT_LOAD_RENDER = 4; openfl_text__$internal_TextLayout.FT_LOAD_NO_BITMAP = 8; openfl_text__$internal_TextLayout.FT_LOAD_VERTICAL_LAYOUT = 16; openfl_text__$internal_TextLayout.FT_LOAD_FORCE_AUTOHINT = 32; openfl_text__$internal_TextLayout.FT_LOAD_CROP_BITMAP = 64; openfl_text__$internal_TextLayout.FT_LOAD_PEDANTIC = 128; openfl_text__$internal_TextLayout.FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 256; openfl_text__$internal_TextLayout.FT_LOAD_NO_RECURSE = 512; openfl_text__$internal_TextLayout.FT_LOAD_IGNORE_TRANSFORM = 1024; openfl_text__$internal_TextLayout.FT_LOAD_MONOCHROME = 2048; openfl_text__$internal_TextLayout.FT_LOAD_LINEAR_DESIGN = 4096; openfl_text__$internal_TextLayout.FT_LOAD_NO_AUTOHINT = 8192; openfl_text__$internal_TextLayout.FT_LOAD_COLOR = 16384; openfl_text__$internal_TextLayout.FT_LOAD_COMPUTE_METRICS = 32768; openfl_text__$internal_TextLayout.FT_LOAD_BITMAP_METRICS_ONLY = 65536; openfl_text__$internal_TextLayout.FT_LOAD_TARGET_NORMAL = 0; openfl_text__$internal_TextLayout.FT_LOAD_TARGET_LIGHT = 0; openfl_text__$internal_TextDirection.INVALID = 0; openfl_text__$internal_TextDirection.LEFT_TO_RIGHT = 4; openfl_text__$internal_TextDirection.RIGHT_TO_LEFT = 5; openfl_text__$internal_TextDirection.TOP_TO_BOTTOM = 6; openfl_text__$internal_TextDirection.BOTTOM_TO_TOP = 7; openfl_text__$internal_TextScript.COMMON = "Zyyy"; openfl_text__$internal_TextScript.INHERITED = "Zinh"; openfl_text__$internal_TextScript.UNKNOWN = "Zzzz"; openfl_text__$internal_TextScript.ARABIC = "Arab"; openfl_text__$internal_TextScript.ARMENIAN = "Armn"; openfl_text__$internal_TextScript.BENGALI = "Beng"; openfl_text__$internal_TextScript.CYRILLIC = "Cyrl"; openfl_text__$internal_TextScript.DEVANAGARI = "Deva"; openfl_text__$internal_TextScript.GEORGIAN = "Geor"; openfl_text__$internal_TextScript.GREEK = "Grek"; openfl_text__$internal_TextScript.GUJARATI = "Gujr"; openfl_text__$internal_TextScript.GURMUKHI = "Guru"; openfl_text__$internal_TextScript.HANGUL = "Hang"; openfl_text__$internal_TextScript.HAN = "Hani"; openfl_text__$internal_TextScript.HEBREW = "Hebr"; openfl_text__$internal_TextScript.HIRAGANA = "Hira"; openfl_text__$internal_TextScript.KANNADA = "Knda"; openfl_text__$internal_TextScript.KATAKANA = "Kana"; openfl_text__$internal_TextScript.LAO = "Laoo"; openfl_text__$internal_TextScript.LATIN = "Latn"; openfl_text__$internal_TextScript.MALAYALAM = "Mlym"; openfl_text__$internal_TextScript.ORIYA = "Orya"; openfl_text__$internal_TextScript.TAMIL = "Taml"; openfl_text__$internal_TextScript.TELUGA = "Telu"; openfl_text__$internal_TextScript.THAI = "Thai"; openfl_text__$internal_TextScript.TIBETAN = "Tibt"; openfl_text__$internal_TextScript.BOPOMOFO = "Bopo"; openfl_text__$internal_TextScript.BRAILLE = "Brai"; openfl_text__$internal_TextScript.CANADIAN_SYLLABICS = "Cans"; openfl_text__$internal_TextScript.CHEROKEE = "Cher"; openfl_text__$internal_TextScript.ETHIOPIC = "Ethi"; openfl_text__$internal_TextScript.KHMER = "Khmr"; openfl_text__$internal_TextScript.MONGOLIAN = "Mong"; openfl_text__$internal_TextScript.MYANMAR = "Mymr"; openfl_text__$internal_TextScript.OGHAM = "Ogam"; openfl_text__$internal_TextScript.RUNIC = "Runr"; openfl_text__$internal_TextScript.SINHALA = "Sinh"; openfl_text__$internal_TextScript.SYRIAC = "Syrc"; openfl_text__$internal_TextScript.THAANA = "Thaa"; openfl_text__$internal_TextScript.YI = "Yiii"; openfl_text__$internal_TextScript.DESERET = "Dsrt"; openfl_text__$internal_TextScript.GOTHIC = "Goth"; openfl_text__$internal_TextScript.OLD_ITALIC = "Ital"; openfl_text__$internal_TextScript.BUHID = "Buhd"; openfl_text__$internal_TextScript.HANUNOO = "Hano"; openfl_text__$internal_TextScript.TAGALOG = "Tglg"; openfl_text__$internal_TextScript.TAGBANWA = "Tagb"; openfl_text__$internal_TextScript.CYPRIOT = "Cprt"; openfl_text__$internal_TextScript.LIMBU = "Limb"; openfl_text__$internal_TextScript.LINEAR_B = "Linb"; openfl_text__$internal_TextScript.OSMANYA = "Osma"; openfl_text__$internal_TextScript.SHAVIAN = "Shaw"; openfl_text__$internal_TextScript.TAI_LE = "Tale"; openfl_text__$internal_TextScript.UGARITIC = "Ugar"; openfl_text__$internal_TextScript.BUGINESE = "Bugi"; openfl_text__$internal_TextScript.COPTIC = "Copt"; openfl_text__$internal_TextScript.GLAGOLITIC = "Glag"; openfl_text__$internal_TextScript.KHAROSHTHI = "Khar"; openfl_text__$internal_TextScript.NEW_TAI_LUE = "Talu"; openfl_text__$internal_TextScript.OLD_PERSIAN = "Xpeo"; openfl_text__$internal_TextScript.SYLOTI_NAGRI = "Sylo"; openfl_text__$internal_TextScript.TIFINAGH = "Tfng"; openfl_text__$internal_TextScript.BALINESE = "Bali"; openfl_text__$internal_TextScript.CUNEIFORM = "Xsux"; openfl_text__$internal_TextScript.NKO = "Nkoo"; openfl_text__$internal_TextScript.PHAGS_PA = "Phag"; openfl_text__$internal_TextScript.PHOENICIAN = "Phnx"; openfl_text__$internal_TextScript.CARIAN = "Cari"; openfl_text__$internal_TextScript.CHAM = "Cham"; openfl_text__$internal_TextScript.KAYAH_LI = "Kali"; openfl_text__$internal_TextScript.LEPCHA = "Lepc"; openfl_text__$internal_TextScript.LYCIAN = "Lyci"; openfl_text__$internal_TextScript.LYDIAN = "Lydi"; openfl_text__$internal_TextScript.OL_CHIKI = "Olck"; openfl_text__$internal_TextScript.REJANG = "Rjng"; openfl_text__$internal_TextScript.SAURASHTRA = "Saur"; openfl_text__$internal_TextScript.SUNDANESE = "Sund"; openfl_text__$internal_TextScript.VAI = "Vaii"; openfl_text__$internal_TextScript.AVESTAN = "Avst"; openfl_text__$internal_TextScript.BAMUM = "Bamu"; openfl_text__$internal_TextScript.EGYPTIAN_HIEROGLYPHS = "Egyp"; openfl_text__$internal_TextScript.IMPERIAL_ARAMAIC = "Armi"; openfl_text__$internal_TextScript.INSCRIPTIONAL_PAHLAVI = "Phli"; openfl_text__$internal_TextScript.INSCRIPTIONAL_PARTHIAN = "Prti"; openfl_text__$internal_TextScript.JAVANESE = "Java"; openfl_text__$internal_TextScript.KAITHI = "Kthi"; openfl_text__$internal_TextScript.LISU = "Lisu"; openfl_text__$internal_TextScript.MEETEI_MAYEK = "Mtei"; openfl_text__$internal_TextScript.OLD_SOUTH_ARABIAN = "Sarb"; openfl_text__$internal_TextScript.OLD_TURKIC = "Orkh"; openfl_text__$internal_TextScript.SAMARITAN = "Samr"; openfl_text__$internal_TextScript.TAI_THAM = "Lana"; openfl_text__$internal_TextScript.TAI_VIET = "Tavt"; openfl_text__$internal_TextScript.BATAK = "Batk"; openfl_text__$internal_TextScript.BRAHMI = "Brah"; openfl_text__$internal_TextScript.MANDAIC = "Mand"; openfl_text__$internal_TextScript.CHAKMA = "Cakm"; openfl_text__$internal_TextScript.MEROITIC_CURSIVE = "Merc"; openfl_text__$internal_TextScript.MEROITIC_HIEROGLYPHS = "Mero"; openfl_text__$internal_TextScript.MIAO = "Plrd"; openfl_text__$internal_TextScript.SHARADA = "Shrd"; openfl_text__$internal_TextScript.SORA_SOMPENG = "Sora"; openfl_text__$internal_TextScript.TAKRI = "Takr"; openfl_text__$internal_TextScript.BASSA_VAH = "Bass"; openfl_text__$internal_TextScript.CAUCASIAN_ALBANIAN = "Aghb"; openfl_text__$internal_TextScript.DUPLOYAN = "Dupl"; openfl_text__$internal_TextScript.ELBASAN = "Elba"; openfl_text__$internal_TextScript.GRANTHA = "Gran"; openfl_text__$internal_TextScript.KHOJKI = "Khoj"; openfl_text__$internal_TextScript.KHUDAWADI = "Sind"; openfl_text__$internal_TextScript.LINEAR_A = "Lina"; openfl_text__$internal_TextScript.MAHAJANI = "Mahj"; openfl_text__$internal_TextScript.MANICHAEAN = "Mani"; openfl_text__$internal_TextScript.MENDE_KIKAKUI = "Mend"; openfl_text__$internal_TextScript.MODI = "Modi"; openfl_text__$internal_TextScript.MRO = "Mroo"; openfl_text__$internal_TextScript.NABATAEAN = "Nbat"; openfl_text__$internal_TextScript.OLD_NORTH_ARABIAN = "Narb"; openfl_text__$internal_TextScript.OLD_PERMIC = "Perm"; openfl_text__$internal_TextScript.PAHAWH_HMONG = "Hmng"; openfl_text__$internal_TextScript.PALMYRENE = "Palm"; openfl_text__$internal_TextScript.PAU_CIN_HAU = "Pauc"; openfl_text__$internal_TextScript.PSALTER_PAHLAVI = "Phlp"; openfl_text__$internal_TextScript.SIDDHAM = "Sidd"; openfl_text__$internal_TextScript.TIRHUTA = "Tirh"; openfl_text__$internal_TextScript.WARANG_CITI = "Wara"; openfl_text__$internal_TextLayoutGroup.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_ui_GameInputDevice.MAX_BUFFER_SIZE = 32000; openfl_ui_Keyboard.__meta__ = { statics : { BREAK : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, NUMLOCK : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; 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_ui_Mouse.supportsCursor = true; openfl_ui_Mouse.supportsNativeCursor = true; openfl_ui_Mouse.__cursor = "auto"; openfl_ui_MouseCursor.ARROW = "arrow"; openfl_ui_MouseCursor.AUTO = "auto"; openfl_ui_MouseCursor.BUTTON = "button"; openfl_ui_MouseCursor.HAND = "hand"; openfl_ui_MouseCursor.IBEAM = "ibeam"; openfl_ui_MouseCursor.__CROSSHAIR = "crosshair"; openfl_ui_MouseCursor.__CUSTOM = "custom"; openfl_ui_MouseCursor.__MOVE = "move"; openfl_ui_MouseCursor.__RESIZE_NESW = "resize_nesw"; openfl_ui_MouseCursor.__RESIZE_NS = "resize_ns"; openfl_ui_MouseCursor.__RESIZE_NWSE = "resize_nwse"; openfl_ui_MouseCursor.__RESIZE_WE = "resize_we"; openfl_ui_MouseCursor.__WAIT = "wait"; openfl_ui_MouseCursor.__WAIT_ARROW = "waitarrow"; openfl_ui_MultitouchInputMode.GESTURE = 0; openfl_ui_MultitouchInputMode.NONE = 1; openfl_ui_MultitouchInputMode.TOUCH_POINT = 2; openfl_utils_AGALMiniAssembler.__meta__ = { obj : { SuppressWarnings : [["checkstyle:ConstantName","checkstyle:FieldDocComment"]]}}; openfl_utils_AGALMiniAssembler.OPMAP = new haxe_ds_StringMap(); openfl_utils_AGALMiniAssembler.REGMAP = new haxe_ds_StringMap(); openfl_utils_AGALMiniAssembler.SAMPLEMAP = new haxe_ds_StringMap(); openfl_utils_AGALMiniAssembler.MAX_NESTING = 4; openfl_utils_AGALMiniAssembler.MAX_OPCODES = 4096; openfl_utils_AGALMiniAssembler.FRAGMENT = "fragment"; openfl_utils_AGALMiniAssembler.VERTEX = "vertex"; openfl_utils_AGALMiniAssembler.SAMPLER_TYPE_SHIFT = 8; openfl_utils_AGALMiniAssembler.SAMPLER_DIM_SHIFT = 12; openfl_utils_AGALMiniAssembler.SAMPLER_SPECIAL_SHIFT = 16; openfl_utils_AGALMiniAssembler.SAMPLER_REPEAT_SHIFT = 20; openfl_utils_AGALMiniAssembler.SAMPLER_MIPMAP_SHIFT = 24; openfl_utils_AGALMiniAssembler.SAMPLER_FILTER_SHIFT = 28; openfl_utils_AGALMiniAssembler.REG_WRITE = 1; openfl_utils_AGALMiniAssembler.REG_READ = 2; openfl_utils_AGALMiniAssembler.REG_FRAG = 32; openfl_utils_AGALMiniAssembler.REG_VERT = 64; openfl_utils_AGALMiniAssembler.OP_SCALAR = 1; openfl_utils_AGALMiniAssembler.OP_SPECIAL_TEX = 8; openfl_utils_AGALMiniAssembler.OP_SPECIAL_MATRIX = 16; openfl_utils_AGALMiniAssembler.OP_FRAG_ONLY = 32; openfl_utils_AGALMiniAssembler.OP_VERT_ONLY = 64; openfl_utils_AGALMiniAssembler.OP_NO_DEST = 128; openfl_utils_AGALMiniAssembler.OP_VERSION2 = 256; openfl_utils_AGALMiniAssembler.OP_INCNEST = 512; openfl_utils_AGALMiniAssembler.OP_DECNEST = 1024; openfl_utils_AGALMiniAssembler.MOV = "mov"; openfl_utils_AGALMiniAssembler.ADD = "add"; openfl_utils_AGALMiniAssembler.SUB = "sub"; openfl_utils_AGALMiniAssembler.MUL = "mul"; openfl_utils_AGALMiniAssembler.DIV = "div"; openfl_utils_AGALMiniAssembler.RCP = "rcp"; openfl_utils_AGALMiniAssembler.MIN = "min"; openfl_utils_AGALMiniAssembler.MAX = "max"; openfl_utils_AGALMiniAssembler.FRC = "frc"; openfl_utils_AGALMiniAssembler.SQT = "sqt"; openfl_utils_AGALMiniAssembler.RSQ = "rsq"; openfl_utils_AGALMiniAssembler.POW = "pow"; openfl_utils_AGALMiniAssembler.LOG = "log"; openfl_utils_AGALMiniAssembler.EXP = "exp"; openfl_utils_AGALMiniAssembler.NRM = "nrm"; openfl_utils_AGALMiniAssembler.SIN = "sin"; openfl_utils_AGALMiniAssembler.COS = "cos"; openfl_utils_AGALMiniAssembler.CRS = "crs"; openfl_utils_AGALMiniAssembler.DP3 = "dp3"; openfl_utils_AGALMiniAssembler.DP4 = "dp4"; openfl_utils_AGALMiniAssembler.ABS = "abs"; openfl_utils_AGALMiniAssembler.NEG = "neg"; openfl_utils_AGALMiniAssembler.SAT = "sat"; openfl_utils_AGALMiniAssembler.M33 = "m33"; openfl_utils_AGALMiniAssembler.M44 = "m44"; openfl_utils_AGALMiniAssembler.M34 = "m34"; openfl_utils_AGALMiniAssembler.DDX = "ddx"; openfl_utils_AGALMiniAssembler.DDY = "ddy"; openfl_utils_AGALMiniAssembler.IFE = "ife"; openfl_utils_AGALMiniAssembler.INE = "ine"; openfl_utils_AGALMiniAssembler.IFG = "ifg"; openfl_utils_AGALMiniAssembler.IFL = "ifl"; openfl_utils_AGALMiniAssembler.IEG = "ieg"; openfl_utils_AGALMiniAssembler.IEL = "iel"; openfl_utils_AGALMiniAssembler.ELS = "els"; openfl_utils_AGALMiniAssembler.EIF = "eif"; openfl_utils_AGALMiniAssembler.TED = "ted"; openfl_utils_AGALMiniAssembler.KIL = "kil"; openfl_utils_AGALMiniAssembler.TEX = "tex"; openfl_utils_AGALMiniAssembler.SGE = "sge"; openfl_utils_AGALMiniAssembler.SLT = "slt"; openfl_utils_AGALMiniAssembler.SGN = "sgn"; openfl_utils_AGALMiniAssembler.SEQ = "seq"; openfl_utils_AGALMiniAssembler.SNE = "sne"; openfl_utils_AGALMiniAssembler.VA = "va"; openfl_utils_AGALMiniAssembler.VC = "vc"; openfl_utils_AGALMiniAssembler.VT = "vt"; openfl_utils_AGALMiniAssembler.VO = "vo"; openfl_utils_AGALMiniAssembler.VI = "vi"; openfl_utils_AGALMiniAssembler.FC = "fc"; openfl_utils_AGALMiniAssembler.FT = "ft"; openfl_utils_AGALMiniAssembler.FS = "fs"; openfl_utils_AGALMiniAssembler.FO = "fo"; openfl_utils_AGALMiniAssembler.FD = "fd"; openfl_utils_AGALMiniAssembler.IID = "iid"; openfl_utils_AGALMiniAssembler.D2 = "2d"; openfl_utils_AGALMiniAssembler.D3 = "3d"; openfl_utils_AGALMiniAssembler.CUBE = "cube"; openfl_utils_AGALMiniAssembler.MIPNEAREST = "mipnearest"; openfl_utils_AGALMiniAssembler.MIPLINEAR = "miplinear"; openfl_utils_AGALMiniAssembler.MIPNONE = "mipnone"; openfl_utils_AGALMiniAssembler.NOMIP = "nomip"; openfl_utils_AGALMiniAssembler.NEAREST = "nearest"; openfl_utils_AGALMiniAssembler.LINEAR = "linear"; openfl_utils_AGALMiniAssembler.ANISOTROPIC2X = "anisotropic2x"; openfl_utils_AGALMiniAssembler.ANISOTROPIC4X = "anisotropic4x"; openfl_utils_AGALMiniAssembler.ANISOTROPIC8X = "anisotropic8x"; openfl_utils_AGALMiniAssembler.ANISOTROPIC16X = "anisotropic16x"; openfl_utils_AGALMiniAssembler.CENTROID = "centroid"; openfl_utils_AGALMiniAssembler.SINGLE = "single"; openfl_utils_AGALMiniAssembler.IGNORESAMPLER = "ignoresampler"; openfl_utils_AGALMiniAssembler.REPEAT = "repeat"; openfl_utils_AGALMiniAssembler.WRAP = "wrap"; openfl_utils_AGALMiniAssembler.CLAMP = "clamp"; openfl_utils_AGALMiniAssembler.REPEAT_U_CLAMP_V = "repeat_u_clamp_v"; openfl_utils_AGALMiniAssembler.CLAMP_U_REPEAT_V = "clamp_u_repeat_v"; openfl_utils_AGALMiniAssembler.RGBA = "rgba"; openfl_utils_AGALMiniAssembler.COMPRESSED = "compressed"; openfl_utils_AGALMiniAssembler.COMPRESSEDALPHA = "compressedalpha"; openfl_utils_AGALMiniAssembler.DXT1 = "dxt1"; openfl_utils_AGALMiniAssembler.DXT5 = "dxt5"; openfl_utils_AGALMiniAssembler.VIDEO = "video"; openfl_utils_AGALMiniAssembler.initialized = false; openfl_utils__$AGALMiniAssembler_OpCode.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils__$AGALMiniAssembler_Register.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils__$AGALMiniAssembler_Sampler.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils_ByteArray.__bytePointer = new lime_utils_BytePointerData(null,0); openfl_utils_CompressionAlgorithm.DEFLATE = 0; openfl_utils_CompressionAlgorithm.LZMA = 1; openfl_utils_CompressionAlgorithm.ZLIB = 2; openfl_utils__$Dictionary_ClassMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils__$Dictionary_FloatMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils__$Dictionary_UtilsObjectMap.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils_Endian.BIG_ENDIAN = 0; openfl_utils_Endian.LITTLE_ENDIAN = 1; openfl_utils_Object.__meta__ = { statics : { iterator : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, __get : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, __set : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, __getArray : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, __setArray : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}}; haxe_lang_Iterator.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; haxe_lang_Iterable.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}}; openfl_utils__$internal_Lib.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, statics : { notImplemented : { SuppressWarnings : ["checkstyle:NullableParameter"]}}}; openfl_utils__$internal_Lib.__sentWarnings = new haxe_ds_StringMap(); openfl_utils__$internal_TouchData.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}, fields : { touch : { SuppressWarnings : ["checkstyle:Dynamic"]}}}; openfl_utils__$internal_TouchData.__pool = new lime_utils_ObjectPool(function() { return new openfl_utils__$internal_TouchData(); },function(data) { data.reset(); }); polymod_Polymod.onError = null; polymod_Polymod.assetLibrary = null; polymod_Polymod.prevParams = null; polymod_backends_OpenFLWithNodeBackend.FINISHED_PRELOADING_ASSETS = "OpenFLWithNodeBackend.finishedPreloadingAssets"; polymod_backends_PolymodAssetType.BYTES = "BYTES"; polymod_backends_PolymodAssetType.TEXT = "TEXT"; polymod_backends_PolymodAssetType.IMAGE = "IMAGE"; polymod_backends_PolymodAssetType.VIDEO = "VIDEO"; polymod_backends_PolymodAssetType.FONT = "FONT"; polymod_backends_PolymodAssetType.AUDIO_GENERIC = "AUDIO_GENERIC"; polymod_backends_PolymodAssetType.AUDIO_MUSIC = "AUDIO_MUSIC"; polymod_backends_PolymodAssetType.AUDIO_SOUND = "AUDIO_SOUND"; polymod_backends_PolymodAssetType.MANIFEST = "MANIFEST"; polymod_backends_PolymodAssetType.TEMPLATE = "TEMPLATE"; polymod_backends_PolymodAssetType.UNKNOWN = "UNKNOWN"; polymod_hscript_HScriptParams.CANCELLABLE_DEFAULT = false; polymod_hscript_HScriptParams.RUN_BEFORE_DEFAULT = false; polymod_hscript_HScriptParams.OPTIONAL_DEFAULT = false; polymod_hscript_ScriptRunner.scripts = new haxe_ds_StringMap(); polymod_hscript__$internal_PolymodInterpEx._scriptClassDescriptors = new haxe_ds_StringMap(); polymod_hscript__$internal_PolymodScriptClass.scriptInterp = new polymod_hscript__$internal_PolymodInterpEx(null,null); polymod_hscript__$internal_PolymodScriptClass.scriptClassOverrides = new haxe_ds_StringMap(); polymod_hscript__$internal_PolymodScriptClass.importOverrides = new haxe_ds_StringMap(); polymod_hscript__$internal_PolymodScriptClass.defaultImports = new haxe_ds_StringMap(); polymod_util_VersionUtil.DEFAULT_VERSION = thx_semver_Version.stringToVersion("1.0.0"); polymod_util_VersionUtil.DEFAULT_VERSION_RULE = thx_semver_VersionRule.stringToVersionRule("*.*.*"); thx_Dates.order = thx_Ord.fromIntComparison(thx_Dates.compare); thx_Floats.TOLERANCE = 10e-5; thx_Floats.EPSILON = 1e-9; thx_Floats.pattern_parse = new EReg("^(\\+|-)?(:?\\d+(\\.\\d+)?(e-?\\d+)?|nan|NaN|NAN)$",""); thx_Floats.pattern_inf = new EReg("^\\+?(inf|Inf|INF)$",""); thx_Floats.pattern_neg_inf = new EReg("^-(inf|Inf|INF)$",""); thx_Floats.order = thx_Ord.fromIntComparison(thx_Floats.compare); thx_Floats.monoid = { zero : 0.0, append : function(a,b) { return a + b; }}; thx_Ints.pattern_parse = new EReg("^[ \t\r\n]*[+-]?(\\d+|0x[0-9A-F]+)","i"); thx_Ints.BASE = "0123456789abcdefghijklmnopqrstuvwxyz"; thx_Ints.order = function(i0,i1) { if(i0 > i1) { return thx_OrderingImpl.GT; } else if(i0 == i1) { return thx_OrderingImpl.EQ; } else { return thx_OrderingImpl.LT; } }; thx_Ints.monoid = { zero : 0, append : function(a,b) { return a + b; }}; thx_Orderings.monoid = { zero : thx_OrderingImpl.EQ, append : function(o0,o1) { switch(o0._hx_index) { case 0: return thx_OrderingImpl.LT; case 1: return thx_OrderingImpl.GT; case 2: return o1; } }}; thx_Strings.order = thx_Ord.fromIntComparison(thx_Strings.compare); thx_Strings.HASCODE_MAX = 2147483647; thx_Strings.HASCODE_MUL = 31; thx_Strings.monoid = { zero : "", append : function(a,b) { return a + b; }}; thx_Strings.UCWORDS = new EReg("[^a-zA-Z]([a-z])","g"); thx_Strings.IS_BREAKINGWHITESPACE = new EReg("[^\t\n\r ]",""); thx_Strings.IS_ALPHA = new EReg("[^a-zA-Z]",""); thx_Strings.UCWORDSWS = new EReg("[ \t\r\n][a-z]","g"); thx_Strings.ALPHANUM = new EReg("^[a-z0-9]+$","i"); thx_Strings.DIGITS = new EReg("^[0-9]+$",""); thx_Strings.STRIPTAGS = new EReg("]*>","gi"); thx_Strings.WSG = new EReg("[ \t\r\n]+","g"); thx_Strings.SPLIT_LINES = new EReg("\r\n|\n\r|\n|\r","g"); thx_Strings.CANONICALIZE_LINES = new EReg("\r\n|\n\r|\r","g"); thx_fp_Map.delta = 5; thx_fp_Map.ratio = 2; ApplicationMain.main(); })(typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this); }); $hx_exports.lime = $hx_exports.lime || {}; $hx_exports.lime.$scripts = $hx_exports.lime.$scripts || {}; $hx_exports.lime.$scripts["Funkin"] = $hx_script; $hx_exports.lime.embed = function(projectName) { var exports = {}; var script = $hx_exports.lime.$scripts[projectName]; if (!script) throw Error("Cannot find project name \"" + projectName + "\""); script(exports, $global); for (var key in exports) $hx_exports[key] = $hx_exports[key] || exports[key]; var lime = exports.lime || window.lime; if (lime && lime.embed && this != lime.embed) lime.embed.apply(lime, arguments); return exports; }; if(typeof define == "function" && define.amd) { define([], function() { return $hx_exports.lime; }); define.__amd = define.amd; define.amd = null; } })(typeof exports != "undefined" ? exports : typeof define == "function" && define.amd ? {} : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this); /*! howler.js v2.2.4 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */ !function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator?e._navigator.userAgent:"",a=r.match(/OPR\/(\d+)/g),u=a&&parseInt(a[0].split("/")[1],10)<33,d=-1!==r.indexOf("Safari")&&-1===r.indexOf("Chrome"),i=r.match(/Version\/(.*?) /),_=d&&i&&parseInt(i[1],10)<15;return e._codecs={mp3:!(u||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(o.canPlayType('audio/wav; codecs="1"')||o.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(o.canPlayType("audio/x-m4b;")||o.canPlayType("audio/m4b;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(_||!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(_||!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(;e._html5AudioPool.length0?d._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(d._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;d._sprite=e,d._ended=!1;var p=function(){d._paused=!1,d._seek=_,d._start=c,d._stop=f,d._loop=!(!d._loop&&!t._sprite[e][2])};if(_>=f)return void t._ended(d);var m=d._node;if(t._webAudio){var v=function(){t._playLock=!1,p(),t._refreshBuffer(d);var e=d._muted||t._muted?0:d._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),d._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?d._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):d._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l)),o||setTimeout(function(){t._emit("play",d._id),t._loadQueue()},0)};"running"===n.state&&"interrupted"!==n.ctx.state?v():(t._playLock=!0,t.once("resume",v),t._clearTimer(d._id))}else{var h=function(){m.currentTime=_,m.muted=d._muted||t._muted||n._muted||m.muted,m.volume=d._volume*n.volume(),m.playbackRate=d._rate;try{var r=m.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){t._playLock=!1,m._unlocked=!0,o?t._loadQueue():t._emit("play",d._id)}).catch(function(){t._playLock=!1,t._emit("playerror",d._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),d._ended=!0,d._paused=!0})):o||(t._playLock=!1,p(),t._emit("play",d._id)),m.playbackRate=d._rate,m.paused)return void t._emit("playerror",d._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||d._loop?t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l):(t._endTimers[d._id]=function(){t._ended(d),m.removeEventListener("ended",t._endTimers[d._id],!1)},m.addEventListener("ended",t._endTimers[d._id],!1))}catch(e){t._emit("playerror",d._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{t._playLock=!0,t._state="loading";var g=function(){t._state="loaded",h(),m.removeEventListener(n._canPlayEvent,g,!1)};m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(d._id)}}return d._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),d+=i*r,d=Math.round(100*d)/100,d=i<0?Math.max(o,d):Math.min(o,d),u._webAudio?e._volume=d:u.volume(d,e._id,!0),a&&(u._volume=d),(on&&d>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var d;if("number"!=typeof e)return d=t._soundById(o),d?d._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var i=0;i=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return 0;if("number"==typeof e&&("loaded"!==t._state||t._playLock))return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var d=t._soundById(o);if(d){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var i=t.playing(o)?n.ctx.currentTime-d._playStart:0,_=d._rateSeek?d._rateSeek-d._seek:0;return d._seek+(_+i*Math.abs(d._rate))}return d._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),d._seek=e,d._ended=!1,t._clearTimer(o),t._webAudio||!d._node||isNaN(d._node.duration)||(d._node.currentTime=e);var l=function(){s&&t.play(o,!0),t._emit("seek",o)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t=0&&n._howls.splice(a,1);var u=!0;for(t=0;t=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t=0;if(!e.bufferSource)return o;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?"auto":o._preload,e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,n=e._parent;n._duration===1/0&&(n._duration=Math.ceil(10*e._node.duration)/10,n._sprite.__default[1]===1/0&&(n._sprite.__default[1]=1e3*n._duration),n._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void i(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a0?(r[o._src]=e,i(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},i=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):"undefined"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t)}(); /*! Spatial Plugin */ !function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n},HowlerGlobal.prototype.pos=function(e,n,t){var r=this;return r.ctx&&r.ctx.listener?(n="number"!=typeof n?r._pos[1]:n,t="number"!=typeof t?r._pos[2]:t,"number"!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r},HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var p=a._orientation;return n="number"!=typeof n?p[1]:n,t="number"!=typeof t?p[2]:t,r="number"!=typeof r?p[3]:r,o="number"!=typeof o?p[4]:o,i="number"!=typeof i?p[5]:i,"number"!=typeof e?p:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a)},Howl.prototype.init=function(e){return function(n){var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:"inverse",maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:"HRTF",refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,t){var r=this;if(!r._webAudio)return r;if("loaded"!==r._state)return r._queue.push({event:"stereo",action:function(){r.stereo(n,t)}}),r;var o=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===t){if("number"!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0]}for(var i=r._getSoundIds(t),a=0;a0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=o.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==b)throw new Error(d[a]);if(e.header&&o.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?h.string2buf(e.dictionary):"[object ArrayBuffer]"===_.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=o.deflateSetDictionary(this.strm,n),a!==b)throw new Error(d[a]);this._dict_set=!0}}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg;return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}function s(t,e){return e=e||{},e.gzip=!0,n(t,e)}var o=t("./zlib/deflate"),l=t("./utils/common"),h=t("./utils/strings"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=Object.prototype.toString,u=0,c=4,b=0,g=1,m=2,w=-1,p=0,v=8;i.prototype.push=function(t,e){var a,i,n=this.strm,r=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:e===!0?c:u,"string"==typeof t?n.input=h.string2buf(t):"[object ArrayBuffer]"===_.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new l.Buf8(r),n.next_out=0,n.avail_out=r),a=o.deflate(n,i),a!==g&&a!==b)return this.onEnd(a),this.ended=!0,!1;0!==n.avail_out&&(0!==n.avail_in||i!==c&&i!==m)||("string"===this.options.to?this.onData(h.buf2binstring(l.shrinkBuf(n.output,n.next_out))):this.onData(l.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||0===n.avail_out)&&a!==g);return i===c?(a=o.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===b):i!==m||(this.onEnd(b),n.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===b&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=l.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Deflate=i,a.deflate=n,a.deflateRaw=r,a.gzip=s},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(t,e,a){"use strict";function i(t){if(!(this instanceof i))return new i(t);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=s.inflateInit2(this.strm,e.windowBits);if(a!==h.Z_OK)throw new Error(d[a]);this.header=new _,s.inflateGetHeader(this.strm,this.header)}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg;return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}var s=t("./zlib/inflate"),o=t("./utils/common"),l=t("./utils/strings"),h=t("./zlib/constants"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=t("./zlib/gzheader"),u=Object.prototype.toString;i.prototype.push=function(t,e){var a,i,n,r,d,f,_=this.strm,c=this.options.chunkSize,b=this.options.dictionary,g=!1;if(this.ended)return!1;i=e===~~e?e:e===!0?h.Z_FINISH:h.Z_NO_FLUSH,"string"==typeof t?_.input=l.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?_.input=new Uint8Array(t):_.input=t,_.next_in=0,_.avail_in=_.input.length;do{if(0===_.avail_out&&(_.output=new o.Buf8(c),_.next_out=0,_.avail_out=c),a=s.inflate(_,h.Z_NO_FLUSH),a===h.Z_NEED_DICT&&b&&(f="string"==typeof b?l.string2buf(b):"[object ArrayBuffer]"===u.call(b)?new Uint8Array(b):b,a=s.inflateSetDictionary(this.strm,f)),a===h.Z_BUF_ERROR&&g===!0&&(a=h.Z_OK,g=!1),a!==h.Z_STREAM_END&&a!==h.Z_OK)return this.onEnd(a),this.ended=!0,!1;_.next_out&&(0!==_.avail_out&&a!==h.Z_STREAM_END&&(0!==_.avail_in||i!==h.Z_FINISH&&i!==h.Z_SYNC_FLUSH)||("string"===this.options.to?(n=l.utf8border(_.output,_.next_out),r=_.next_out-n,d=l.buf2string(_.output,n),_.next_out=r,_.avail_out=c-r,r&&o.arraySet(_.output,_.output,n,r,0),this.onData(d)):this.onData(o.shrinkBuf(_.output,_.next_out)))),0===_.avail_in&&0===_.avail_out&&(g=!0)}while((_.avail_in>0||0===_.avail_out)&&a!==h.Z_STREAM_END);return a===h.Z_STREAM_END&&(i=h.Z_FINISH),i===h.Z_FINISH?(a=s.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===h.Z_OK):i!==h.Z_SYNC_FLUSH||(this.onEnd(h.Z_OK),_.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===h.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Inflate=i,a.inflate=n,a.inflateRaw=r,a.ungzip=n},{"./utils/common":3,"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(t,e,a){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;a.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(var i in a)a.hasOwnProperty(i)&&(t[i]=a[i])}}return t},a.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,a,i,n){if(e.subarray&&t.subarray)return void t.set(e.subarray(a,a+i),n);for(var r=0;r=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;o[254]=o[254]=1,a.string2buf=function(t){var e,a,i,r,s,o=t.length,l=0;for(r=0;r>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},a.buf2binstring=function(t){return i(t,t.length)},a.binstring2buf=function(t){for(var e=new n.Buf8(t.length),a=0,i=e.length;a4)h[n++]=65533,a+=s-1;else{for(r&=2===s?31:3===s?15:7;s>1&&a1?h[n++]=65533:r<65536?h[n++]=r:(r-=65536,h[n++]=55296|r>>10&1023,h[n++]=56320|1023&r)}return i(h,n)},a.utf8border=function(t,e){var a;for(e=e||t.length,e>t.length&&(e=t.length),a=e-1;a>=0&&128===(192&t[a]);)a--;return a<0?e:0===a?e:a+o[t[a]]>e?a:e}},{"./common":3}],5:[function(t,e,a){"use strict";function i(t,e,a,i){for(var n=65535&t|0,r=t>>>16&65535|0,s=0;0!==a;){s=a>2e3?2e3:a,a-=s;do n=n+e[i++]|0,r=r+n|0;while(--s);n%=65521,r%=65521}return n|r<<16|0}e.exports=i},{}],6:[function(t,e,a){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(t,e,a){"use strict";function i(){for(var t,e=[],a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}function n(t,e,a,i){var n=r,s=i+a;t^=-1;for(var o=i;o>>8^n[255&(t^e[o])];return t^-1}var r=i();e.exports=n},{}],8:[function(t,e,a){"use strict";function i(t,e){return t.msg=D[e],e}function n(t){return(t<<1)-(t>4?9:0)}function r(t){for(var e=t.length;--e>=0;)t[e]=0}function s(t){var e=t.state,a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(R.arraySet(t.output,e.pending_buf,e.pending_out,a,t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))}function o(t,e){C._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,s(t.strm)}function l(t,e){t.pending_buf[t.pending++]=e}function h(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function d(t,e,a,i){var n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,R.arraySet(e,t.input,t.next_in,n,a),1===t.state.wrap?t.adler=N(t.adler,e,n,a):2===t.state.wrap&&(t.adler=O(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)}function f(t,e){var a,i,n=t.max_chain_length,r=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+dt,u=h[r+s-1],c=h[r+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(a=e,h[a+s]===c&&h[a+s-1]===u&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do;while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=dt-(_-r),r=_-dt,i>s){if(t.match_start=e,s=i,i>=o)break;u=h[r+s-1],c=h[r+s]}}while((e=f[e&d])>l&&0!==--n);return s<=t.lookahead?s:t.lookahead}function _(t){var e,a,i,n,r,s=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-ft)){R.arraySet(t.window,t.window,s,s,0),t.match_start-=s,t.strstart-=s,t.block_start-=s,a=t.hash_size,e=a;do i=t.head[--e],t.head[e]=i>=s?i-s:0;while(--a);a=s,e=a;do i=t.prev[--e],t.prev[e]=i>=s?i-s:0;while(--a);n+=s}if(0===t.strm.avail_in)break;if(a=d(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=a,t.lookahead+t.insert>=ht)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(_(t),0===t.lookahead&&e===I)return vt;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,o(t,!1),0===t.strm.avail_out))return vt;if(t.strstart-t.block_start>=t.w_size-ft&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.strstart>t.block_start&&(o(t,!1),0===t.strm.avail_out)?vt:vt}function c(t,e){for(var a,i;;){if(t.lookahead=ht&&(t.ins_h=(t.ins_h<=ht)if(i=C._tr_tally(t,t.strstart-t.match_start,t.match_length-ht),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=ht){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=ht&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=ht-1)),t.prev_length>=ht&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-ht,i=C._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-ht),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=n&&(t.ins_h=(t.ins_h<=ht&&t.strstart>0&&(n=t.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=t.strstart+dt;do;while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=ht?(a=C._tr_tally(t,1,t.match_length-ht),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function m(t,e){for(var a;;){if(0===t.lookahead&&(_(t),0===t.lookahead)){if(e===I)return vt;break}if(t.match_length=0,a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function w(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}function p(t){t.window_size=2*t.w_size,r(t.head),t.max_lazy_match=Z[t.level].max_lazy,t.good_match=Z[t.level].good_length,t.nice_match=Z[t.level].nice_length,t.max_chain_length=Z[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=ht-1,t.match_available=0,t.ins_h=0}function v(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=V,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new R.Buf16(2*ot),this.dyn_dtree=new R.Buf16(2*(2*rt+1)),this.bl_tree=new R.Buf16(2*(2*st+1)),r(this.dyn_ltree),r(this.dyn_dtree),r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new R.Buf16(lt+1),this.heap=new R.Buf16(2*nt+1),r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new R.Buf16(2*nt+1),r(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function k(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Q,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ut:wt,t.adler=2===e.wrap?0:1,e.last_flush=I,C._tr_init(e),H):i(t,K)}function y(t){var e=k(t);return e===H&&p(t.state),e}function x(t,e){return t&&t.state?2!==t.state.wrap?K:(t.state.gzhead=e,H):K}function z(t,e,a,n,r,s){if(!t)return K;var o=1;if(e===Y&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>$||a!==V||n<8||n>15||e<0||e>9||s<0||s>W)return i(t,K);8===n&&(n=9);var l=new v;return t.state=l,l.strm=t,l.wrap=o,l.gzhead=null,l.w_bits=n,l.w_size=1<L||e<0)return t?i(t,K):K;if(o=t.state,!t.output||!t.input&&0!==t.avail_in||o.status===pt&&e!==F)return i(t,0===t.avail_out?P:K);if(o.strm=t,a=o.last_flush,o.last_flush=e,o.status===ut)if(2===o.wrap)t.adler=0,l(o,31),l(o,139),l(o,8),o.gzhead?(l(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),l(o,255&o.gzhead.time),l(o,o.gzhead.time>>8&255),l(o,o.gzhead.time>>16&255),l(o,o.gzhead.time>>24&255),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(l(o,255&o.gzhead.extra.length),l(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(t.adler=O(t.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=ct):(l(o,0),l(o,0),l(o,0),l(o,0),l(o,0),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,zt),o.status=wt);else{var _=V+(o.w_bits-8<<4)<<8,u=-1;u=o.strategy>=G||o.level<2?0:o.level<6?1:6===o.level?2:3,_|=u<<6,0!==o.strstart&&(_|=_t),_+=31-_%31,o.status=wt,h(o,_),0!==o.strstart&&(h(o,t.adler>>>16),h(o,65535&t.adler)),t.adler=1}if(o.status===ct)if(o.gzhead.extra){for(d=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending!==o.pending_buf_size));)l(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=bt)}else o.status=bt;if(o.status===bt)if(o.gzhead.name){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindexd&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.gzindex=0,o.status=gt)}else o.status=gt;if(o.status===gt)if(o.gzhead.comment){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindexd&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.status=mt)}else o.status=mt;if(o.status===mt&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&s(t),o.pending+2<=o.pending_buf_size&&(l(o,255&t.adler),l(o,t.adler>>8&255),t.adler=0,o.status=wt)):o.status=wt),0!==o.pending){if(s(t),0===t.avail_out)return o.last_flush=-1,H}else if(0===t.avail_in&&n(e)<=n(a)&&e!==F)return i(t,P);if(o.status===pt&&0!==t.avail_in)return i(t,P);if(0!==t.avail_in||0!==o.lookahead||e!==I&&o.status!==pt){var c=o.strategy===G?m(o,e):o.strategy===X?g(o,e):Z[o.level].func(o,e);if(c!==yt&&c!==xt||(o.status=pt),c===vt||c===yt)return 0===t.avail_out&&(o.last_flush=-1),H;if(c===kt&&(e===U?C._tr_align(o):e!==L&&(C._tr_stored_block(o,0,0,!1),e===T&&(r(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),s(t),0===t.avail_out))return o.last_flush=-1,H}return e!==F?H:o.wrap<=0?j:(2===o.wrap?(l(o,255&t.adler),l(o,t.adler>>8&255),l(o,t.adler>>16&255),l(o,t.adler>>24&255),l(o,255&t.total_in),l(o,t.total_in>>8&255),l(o,t.total_in>>16&255),l(o,t.total_in>>24&255)):(h(o,t.adler>>>16),h(o,65535&t.adler)),s(t),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?H:j)}function E(t){var e;return t&&t.state?(e=t.state.status,e!==ut&&e!==ct&&e!==bt&&e!==gt&&e!==mt&&e!==wt&&e!==pt?i(t,K):(t.state=null,e===wt?i(t,M):H)):K}function A(t,e){var a,i,n,s,o,l,h,d,f=e.length;if(!t||!t.state)return K;if(a=t.state,s=a.wrap,2===s||1===s&&a.status!==ut||a.lookahead)return K;for(1===s&&(t.adler=N(t.adler,e,f,0)),a.wrap=0,f>=a.w_size&&(0===s&&(r(a.head),a.strstart=0,a.block_start=0,a.insert=0),d=new R.Buf8(a.w_size),R.arraySet(d,e,f-a.w_size,a.w_size,0),e=d,f=a.w_size),o=t.avail_in,l=t.next_in,h=t.input,t.avail_in=f,t.next_in=0,t.input=e,_(a);a.lookahead>=ht;){i=a.strstart,n=a.lookahead-(ht-1);do a.ins_h=(a.ins_h<>>24,b>>>=y,g-=y,y=k>>>16&255,0===y)A[o++]=65535&k;else{if(!(16&y)){if(0===(64&y)){k=m[(65535&k)+(b&(1<>>=y,g-=y),g<15&&(b+=E[r++]<>>24,b>>>=y,g-=y,y=k>>>16&255,!(16&y)){if(0===(64&y)){k=w[(65535&k)+(b&(1<d){t.msg="invalid distance too far back",a.mode=i;break t}if(b>>>=y,g-=y,y=o-l,z>y){if(y=z-y,y>_&&a.sane){t.msg="invalid distance too far back",a.mode=i;break t}if(B=0,S=c,0===u){if(B+=f-y,y2;)A[o++]=S[B++],A[o++]=S[B++],A[o++]=S[B++],x-=3;x&&(A[o++]=S[B++],x>1&&(A[o++]=S[B++]))}else{B=o-z;do A[o++]=A[B++],A[o++]=A[B++],A[o++]=A[B++],x-=3;while(x>2);x&&(A[o++]=A[B++],x>1&&(A[o++]=A[B++]))}break}}break}}while(r>3,r-=x,g-=x<<3,b&=(1<>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function n(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new w.Buf16(320),this.work=new w.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function r(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=T,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new w.Buf32(bt),e.distcode=e.distdyn=new w.Buf32(gt),e.sane=1,e.back=-1,Z):N}function s(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,r(t)):N}function o(t,e){var a,i;return t&&t.state?(i=t.state,e<0?(a=0,e=-e):(a=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?N:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,s(t))):N}function l(t,e){var a,i;return t?(i=new n,t.state=i,i.window=null,a=o(t,e),a!==Z&&(t.state=null),a):N}function h(t){return l(t,wt)}function d(t){if(pt){var e;for(g=new w.Buf32(512),m=new w.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(y(z,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;y(B,t.lens,0,32,m,0,t.work,{bits:5}),pt=!1}t.lencode=g,t.lenbits=9,t.distcode=m,t.distbits=5}function f(t,e,a,i){var n,r=t.state;return null===r.window&&(r.wsize=1<=r.wsize?(w.arraySet(r.window,e,a-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),w.arraySet(r.window,e,a-i,n,r.wnext),i-=n,i?(w.arraySet(r.window,e,a-i,i,0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave>>8&255,a.check=v(a.check,Et,2,0),_=0,u=0,a.mode=F;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&_)<<8)+(_>>8))%31){t.msg="incorrect header check",a.mode=_t;break}if((15&_)!==U){t.msg="unknown compression method",a.mode=_t;break}if(_>>>=4,u-=4,yt=(15&_)+8,0===a.wbits)a.wbits=yt;else if(yt>a.wbits){t.msg="invalid window size",a.mode=_t;break}a.dmax=1<>8&1),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=L;case L:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<>>8&255,Et[2]=_>>>16&255,Et[3]=_>>>24&255,a.check=v(a.check,Et,4,0)),_=0,u=0,a.mode=H;case H:for(;u<16;){if(0===l)break t;l--,_+=n[s++]<>8),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=j;case j:if(1024&a.flags){for(;u<16;){if(0===l)break t;l--,_+=n[s++]<>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0}else a.head&&(a.head.extra=null);a.mode=K;case K:if(1024&a.flags&&(g=a.length,g>l&&(g=l),g&&(a.head&&(yt=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Array(a.head.extra_len)),w.arraySet(a.head.extra,n,s,g,yt)),512&a.flags&&(a.check=v(a.check,n,g,s)),l-=g,s+=g,a.length-=g),a.length))break t;a.length=0,a.mode=M;case M:if(2048&a.flags){if(0===l)break t;g=0;do yt=n[s+g++],a.head&&yt&&a.length<65536&&(a.head.name+=String.fromCharCode(yt));while(yt&&g>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=X;break;case q:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<>>=7&u,u-=7&u,a.mode=ht;break}for(;u<3;){if(0===l)break t;l--,_+=n[s++]<>>=1,u-=1,3&_){case 0:a.mode=J;break;case 1:if(d(a),a.mode=at,e===A){_>>>=2,u-=2;break t}break;case 2:a.mode=$;break;case 3:t.msg="invalid block type",a.mode=_t}_>>>=2,u-=2;break;case J:for(_>>>=7&u,u-=7&u;u<32;){if(0===l)break t;l--,_+=n[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=_t;break}if(a.length=65535&_,_=0,u=0,a.mode=Q,e===A)break t;case Q:a.mode=V;case V:if(g=a.length){if(g>l&&(g=l),g>h&&(g=h),0===g)break t;w.arraySet(r,n,s,g,o),l-=g,s+=g,h-=g,o+=g,a.length-=g;break}a.mode=X;break;case $:for(;u<14;){if(0===l)break t; l--,_+=n[s++]<>>=5,u-=5,a.ndist=(31&_)+1,_>>>=5,u-=5,a.ncode=(15&_)+4,_>>>=4,u-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=_t;break}a.have=0,a.mode=tt;case tt:for(;a.have>>=3,u-=3}for(;a.have<19;)a.lens[At[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,zt={bits:a.lenbits},xt=y(x,a.lens,0,19,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid code lengths set",a.mode=_t;break}a.have=0,a.mode=et;case et:for(;a.have>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=gt,u-=gt,a.lens[a.have++]=wt;else{if(16===wt){for(Bt=gt+2;u>>=gt,u-=gt,0===a.have){t.msg="invalid bit length repeat",a.mode=_t;break}yt=a.lens[a.have-1],g=3+(3&_),_>>>=2,u-=2}else if(17===wt){for(Bt=gt+3;u>>=gt,u-=gt,yt=0,g=3+(7&_),_>>>=3,u-=3}else{for(Bt=gt+7;u>>=gt,u-=gt,yt=0,g=11+(127&_),_>>>=7,u-=7}if(a.have+g>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=_t;break}for(;g--;)a.lens[a.have++]=yt}}if(a.mode===_t)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=_t;break}if(a.lenbits=9,zt={bits:a.lenbits},xt=y(z,a.lens,0,a.nlen,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid literal/lengths set",a.mode=_t;break}if(a.distbits=6,a.distcode=a.distdyn,zt={bits:a.distbits},xt=y(B,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,zt),a.distbits=zt.bits,xt){t.msg="invalid distances set",a.mode=_t;break}if(a.mode=at,e===A)break t;case at:a.mode=it;case it:if(l>=6&&h>=258){t.next_out=o,t.avail_out=h,t.next_in=s,t.avail_in=l,a.hold=_,a.bits=u,k(t,b),o=t.next_out,r=t.output,h=t.avail_out,s=t.next_in,n=t.input,l=t.avail_in,_=a.hold,u=a.bits,a.mode===X&&(a.back=-1);break}for(a.back=0;St=a.lencode[_&(1<>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,a.length=wt,0===mt){a.mode=lt;break}if(32&mt){a.back=-1,a.mode=X;break}if(64&mt){t.msg="invalid literal/length code",a.mode=_t;break}a.extra=15&mt,a.mode=nt;case nt:if(a.extra){for(Bt=a.extra;u>>=a.extra,u-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=rt;case rt:for(;St=a.distcode[_&(1<>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,64&mt){t.msg="invalid distance code",a.mode=_t;break}a.offset=wt,a.extra=15&mt,a.mode=st;case st:if(a.extra){for(Bt=a.extra;u>>=a.extra,u-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=_t;break}a.mode=ot;case ot:if(0===h)break t;if(g=b-h,a.offset>g){if(g=a.offset-g,g>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=_t;break}g>a.wnext?(g-=a.wnext,m=a.wsize-g):m=a.wnext-g,g>a.length&&(g=a.length),bt=a.window}else bt=r,m=o-a.offset,g=a.length;g>h&&(g=h),h-=g,a.length-=g;do r[o++]=bt[m++];while(--g);0===a.length&&(a.mode=it);break;case lt:if(0===h)break t;r[o++]=a.length,h--,a.mode=it;break;case ht:if(a.wrap){for(;u<32;){if(0===l)break t;l--,_|=n[s++]<=1&&0===j[N];N--);if(O>N&&(O=N),0===N)return b[g++]=20971520,b[g++]=20971520,w.bits=1,0;for(C=1;C0&&(t===o||1!==N))return-1;for(K[1]=0,Z=1;Zr||t===h&&T>s)return 1;for(var Y=0;;){Y++,B=Z-I,m[R]z?(S=M[P+m[R]],E=L[H+m[R]]):(S=96,E=0),p=1<>I)+v]=B<<24|S<<16|E|0;while(0!==v);for(p=1<>=1;if(0!==p?(F&=p-1,F+=p):F=0,R++,0===--j[Z]){if(Z===N)break;Z=e[a+m[R]]}if(Z>O&&(F&y)!==k){for(0===I&&(I=O),x+=C,D=Z-I,U=1<r||t===h&&T>s)return 1;k=F&y,b[k]=O<<24|D<<16|x-g|0}}return 0!==F&&(b[x+F]=Z-I<<24|64<<16|0),w.bits=O,0}},{"../utils/common":3}],13:[function(t,e,a){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(t,e,a){"use strict";function i(t){for(var e=t.length;--e>=0;)t[e]=0}function n(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function r(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function s(t){return t<256?lt[t]:lt[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function l(t,e,a){t.bi_valid>W-a?(t.bi_buf|=e<>W-t.bi_valid,t.bi_valid+=a-W):(t.bi_buf|=e<>>=1,a<<=1;while(--e>0);return a>>>1}function f(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function _(t,e){var a,i,n,r,s,o,l=e.dyn_tree,h=e.max_code,d=e.stat_desc.static_tree,f=e.stat_desc.has_stree,_=e.stat_desc.extra_bits,u=e.stat_desc.extra_base,c=e.stat_desc.max_length,b=0;for(r=0;r<=X;r++)t.bl_count[r]=0;for(l[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;ac&&(r=c,b++),l[2*i+1]=r,i>h||(t.bl_count[r]++,s=0,i>=u&&(s=_[i-u]),o=l[2*i],t.opt_len+=o*(r+s),f&&(t.static_len+=o*(d[2*i+1]+s)));if(0!==b){do{for(r=c-1;0===t.bl_count[r];)r--;t.bl_count[r]--,t.bl_count[r+1]+=2,t.bl_count[c]--,b-=2}while(b>0);for(r=c;0!==r;r--)for(i=t.bl_count[r];0!==i;)n=t.heap[--a],n>h||(l[2*n+1]!==r&&(t.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),i--)}}function u(t,e,a){var i,n,r=new Array(X+1),s=0;for(i=1;i<=X;i++)r[i]=s=s+a[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=d(r[o]++,o))}}function c(){var t,e,a,i,r,s=new Array(X+1);for(a=0,i=0;i>=7;i8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,a,i){g(t),i&&(o(t,a),o(t,~a)),N.arraySet(t.pending_buf,t.window,e,a,t.pending),t.pending+=a}function w(t,e,a,i){var n=2*e,r=2*a;return t[n]>1;a>=1;a--)p(t,r,a);n=l;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],p(t,r,1),i=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=i,r[2*n]=r[2*a]+r[2*i],t.depth[n]=(t.depth[a]>=t.depth[i]?t.depth[a]:t.depth[i])+1,r[2*a+1]=r[2*i+1]=n,t.heap[1]=n++,p(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],_(t,e),u(r,h,t.bl_count)}function y(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=e[2*(i+1)+1],++o=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function B(t,e,a,i){var n;for(l(t,e-257,5),l(t,a-1,5),l(t,i-4,4),n=0;n>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return D;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return I;for(e=32;e0?(t.strm.data_type===U&&(t.strm.data_type=S(t)),k(t,t.l_desc),k(t,t.d_desc),s=z(t),n=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&e!==-1?A(t,e,a,i):t.strategy===O||r===n?(l(t,(F<<1)+(i?1:0),3),v(t,st,ot)):(l(t,(L<<1)+(i?1:0),3),B(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),v(t,t.dyn_ltree,t.dyn_dtree)),b(t),i&&g(t)}function C(t,e,a){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&a,t.last_lit++,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(ht[a]+M+1)]++,t.dyn_dtree[2*s(e)]++),t.last_lit===t.lit_bufsize-1}var N=t("../utils/common"),O=4,D=0,I=1,U=2,T=0,F=1,L=2,H=3,j=258,K=29,M=256,P=M+1+K,Y=30,q=19,G=2*P+1,X=15,W=16,J=7,Q=256,V=16,$=17,tt=18,et=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],at=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],it=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,st=new Array(2*(P+2));i(st);var ot=new Array(2*Y);i(ot);var lt=new Array(rt);i(lt);var ht=new Array(j-H+1);i(ht);var dt=new Array(K);i(dt);var ft=new Array(Y);i(ft);var _t,ut,ct,bt=!1;a._tr_init=E,a._tr_stored_block=A,a._tr_flush_block=R,a._tr_tally=C,a._tr_align=Z},{"../utils/common":3}],15:[function(t,e,a){"use strict";function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=i},{}],"/":[function(t,e,a){"use strict";var i=t("./lib/utils/common").assign,n=t("./lib/deflate"),r=t("./lib/inflate"),s=t("./lib/zlib/constants"),o={};i(o,n,r,s),e.exports=o},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")}); /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,a=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",d=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,d)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(a){u(a)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,d){if(!d){t=p(t)}var v=this,w=t.type,m=w===s,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&i)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;a(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define("FileSaver.js",function(){return saveAs})} if(typeof define == "function" && define.__amd) { define.amd = define.__amd; delete define.__amd; }